Since I have no news from Olivier about this effort, I decided to keep the branch up to date by merging trunk HEAD. 
This is not only in memory of Tom, I believe it's an interesting feature, the current embedded help is crappy...

git-svn-id: https://svn.apache.org/repos/asf/ofbiz/branches/webhelp-2012-12-07@1562048 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/NOTICE b/NOTICE
index b78fc7f..c4996df 100644
--- a/NOTICE
+++ b/NOTICE
@@ -322,28 +322,28 @@
 
 You are free:
 
-    * to Share — to copy, distribute and transmit the work
-    * to Remix — to adapt the work
+    * to Share — to copy, distribute and transmit the work
+    * to Remix — to adapt the work
     * to make commercial use of the work
 
 Under the following conditions:
 
-    * Attribution — You must attribute the work in the manner specified
+    * Attribution — You must attribute the work in the manner specified
       by the author or licensor (but not in any way that suggests that
       they endorse you or your use of the work).
-    * Waiver — Any of the above conditions can be waived if you get
+    * Waiver — Any of the above conditions can be waived if you get
       permission from the copyright holder.
-    * Public Domain — Where the work or any of its elements is in the 
+    * Public Domain — Where the work or any of its elements is in the 
       public domain under applicable law, that status is in no way 
       affected by the license.   
-    * Other Rights — In no way are any of the following rights affected 
+    * Other Rights — In no way are any of the following rights affected 
       by the license:
         * Your fair dealing or fair use rights, or other applicable copyright 
           exceptions and limitations;      
         * The author's moral rights;
         * Rights other persons may have either in the work itself or in how 
           the work is used, such as publicity or privacy rights.    
-    * Notice — For any reuse or distribution, you must make clear to others 
+    * Notice — For any reuse or distribution, you must make clear to others 
       the license terms of this work. The best way to do this is with a link to 
       this web page. 
 =========================================================================
@@ -355,4 +355,32 @@
 This product includes software developed by Matthew Eernisse (mde@fleegix.org)
 and Open Source Applications Foundation. Licensed under the ASL2
 https://github.com/mde/timezone-js
-=========================================================================
\ No newline at end of file
+=========================================================================
+      
+=========================================================================
+==   Web-based Help from DocBook XML Notice                                                       ==
+=========================================================================
+
+This product includes software developed by Kasun Gajasinghe and David Cramer
+This package is maintained by Kasun Gajasinghe, <kasunbg AT gmail DOT com> 
+and David Cramer, <david AT thingbag DOT net>.
+
+This package also includes the following software written and copyrighted by others:
+    * Files in template/common/jquery are copyrighted by JQuery under the MIT License. 
+      The file jquery.cookie.js Copyright (c) 2006 Klaus Hartl under the MIT license.
+    * Some files in the template/content/search and indexer directories were originally 
+      part of N. Quaine's htmlsearch DITA plugin. The htmlsearch DITA plugin is 
+      available from the files page of the DITA-users yahoogroup. 
+      The htmlsearch plugin was released under a BSD-style license. 
+      See indexer/license.txt for details.
+    * Stemmers from the Snowball project released under a BSD license.
+    * Code from the Apache Lucene search engine provides support for tokenizing Chinese, 
+      Japanese, and Korean content released under the Apache 2.0 license.
+    * Code that provides weighted search results and some other improvements was graciously 
+      donated by SyncRO Soft Ltd., the publishers of the oXygen XML Editor.
+    * Cosmetic improvements provided by OpenStack.
+
+Webhelp for DocBook was first developed as a Google Summer of Code project.  
+** Any stylesheet derived from this Software that is publicly distributed will be identified 
+  with a different name and the version strings in any derived Software will be changed so 
+  that no possibility of confusion between the derived package and this Software will exist. **       
\ No newline at end of file
diff --git a/applications/content/data/helpdata/docbookhelp/accounting_en/accounting.xml b/applications/content/data/helpdata/docbookhelp/accounting_en/accounting.xml
new file mode 100644
index 0000000..41a05ba
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/accounting_en/accounting.xml
@@ -0,0 +1,6497 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+<book version="5.0" xmlns="http://docbook.org/ns/docbook"
+      xmlns:xlink="http://www.w3.org/1999/xlink"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      xmlns:svg="http://www.w3.org/2000/svg"
+      xmlns:m="http://www.w3.org/1998/Math/MathML"
+      xmlns:html="http://www.w3.org/1999/xhtml"
+      xmlns:db="http://docbook.org/ns/docbook">
+  <info>
+    <title>OFBiz Documentation</title>
+
+    <author>
+      <personname><firstname/><surname/></personname>
+
+      <affiliation>
+        <orgname/>
+      </affiliation>
+    </author>
+
+    <pubdate/>
+  </info>
+
+  <chapter>
+    <title>OFBiz Accounting Introduction</title>
+
+    <para>The Accounting system is organized according to age old and
+    generally accepted principles such as double-entry accounting, a General
+    Ledger with hierarchical accounts, journals and posting of transactions
+    and corresponding entries.</para>
+
+    <para>The structure is primary based on the OMG GL standard and the work
+    that was done on an AR/AP extension of the OMG GL standard. This
+    correlates well with other standards such as ebXML and OAGIS.</para>
+
+    <para>The Accounting entities are structured such that accounts for
+    multiple organizations can be managed. The multiple organizations could be
+    multiple companies, or departments or other organizations within a
+    company. Each Organization can have various GL Accounts associated with it
+    so that it can operate with its own subset of the Master Chart of
+    Accounts.</para>
+
+    <para>Each Organization can also have its own set of Journals for
+    flexibility, even though the use of Journals should be as minimal as
+    possible in favor of allowing the system to automatically create and post
+    transactions based on business events triggered by standard procedures and
+    documents such as purchase and sales orders, invoices, inventory
+    transfers, payments, receipts, and so forth.</para>
+  </chapter>
+
+  <chapter xml:id="accounting_main">
+    <title>Accounting Main</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../accounting_en_images/main.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>This is the default tab for the Accounting Manager application. The
+    screen currently shows links that will display more detailed screens
+    related to Agreements, Billing Accounts, Invoices and Payments.</para>
+  </chapter>
+
+  <chapter xml:id="accounting_findInvoices">
+    <title>Invoices</title>
+
+    <para>Sales invoices are generated when customers buy something from your
+    business. You will need to provide a detailed list of the items bought and
+    relevant taxes paid. They are often referred to a 'tax invoices' as they
+    contain information relating to the amount of sales tax (eg VAT / GST)
+    charged on the product or service.</para>
+
+    <para>Purchase invoices are generated by your suppliers when you order
+    something from them. You may send them an order in the form of a Purchase
+    Order. They will then send you the products and an invoice for payment.
+    This invoice is the Purchase Invoice and it will contain details of the
+    items bought plus any taxes.</para>
+
+    <para>Both of these documents are used as proof to various tax authorities
+    (eg Inland Revenue, Customs etc) that the required tax has been charged or
+    collected.</para>
+
+    <para>GENERAL NOTE: The following is an extract from Ian McNulty's
+    documentation work on accounting:</para>
+
+    <para>Invoices are created automatically by the system when certain
+    criteria are met for each item on an order. The criteria will vary
+    depending on the type of product associated with the order item, and the
+    type of order (ie purchase/sales).</para>
+
+    <para>For Sales Orders that include digital goods, an invoice will be
+    created when the order is placed, and that invoice will be for all digital
+    goods in the order. If there are non-digital or physical goods they will
+    go in a separate invoice.</para>
+
+    <para>For Sales Orders that include digital goods, an invoice will be
+    created when the order is placed, and that invoice will be for all digital
+    goods in the order. If there are non-digital or physical goods they will
+    go in a separate invoice.</para>
+
+    <para>For Purchase Orders an invoice will be created from a shipment when
+    the shipment goes into the Received status.</para>
+
+    <sect1>
+      <title>Invoice Roles</title>
+
+      <para>The Invoice Roles screen allows parties with specific roles to be
+      associated with and invoice. If the e-commerce or Sales Order entry
+      route has already been used then the invoice generated will already
+      contain the relevant roles from the various parties.</para>
+
+      <para>For a Sales Order examples of roles will include Bill From
+      Customer, Bill To Customer, End User Customer,Ship To Customer
+      etc.</para>
+
+      <sect2>
+        <title>How do I add a party role to an invoice?</title>
+
+        <para>Party roles will automatically be added to an invoices that have
+        been generated as a result of E-Commerce order entry or Sales Order
+        entry. They can also be added be added manually.</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Roles' sub menu</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter or use the lookup to enter the party to be added to
+            the invoice in the 'Party Id' field</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter or use the lookup to enter the party to be added to
+            the invoice in the 'Party Id' field</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Date Time Performed' field blank<note>
+                <para>This field is optional and can be entered if required.
+                This field can be used to indicate the date and time this role
+                was performed by the party for this invoice</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Percentage' field blank<note>
+                <para>This field is optional and can be entered if required.
+                If roles are shared then this field can be used to indicate
+                the assigned percentage for this role</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Submit' button</para>
+          </listitem>
+
+          <listitem>
+            <para>The new role entry will be displayed on the bottom part of
+            the screen <note>
+                <para>If you select a role that is not associated with the
+                party that has been entered an error message will be
+                displayed. To fix it you will need to add the role to the
+                party or choose another party that already has that role
+                associated with it.</para>
+              </note></para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I update a party role on an invoice?</title>
+
+        <para>A party role cannot be updated via the current user interface.
+        It can only be removed. If a party role needs to be updated then the
+        entry must be deleted and then re-created.</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I remove a party role from an invoice?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Locate the entry that needs to be removed</para>
+          </listitem>
+
+          <listitem>
+            <para>Locate the entry that needs to be removed</para>
+          </listitem>
+
+          <listitem>
+            <para>The entry is now removed from the list of invoice
+            roles</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>New Invoice</title>
+
+      <para>This screen allows the user to create a new Sales or Purchase
+      Invoice. Sales Invoices are created when a customer buys something from
+      you. Purchase Invoices are created when you buy something from a
+      supplier.</para>
+
+      <sect2>
+        <title>How do I create a new Sales invoice?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Press the 'Create New' button</para>
+          </listitem>
+
+          <listitem>
+            <para>The New Sales Invoice / New Purchase Invoice screen is
+            displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Using the top part of the screen, leave Invoice type with
+            its default of 'Sales Invoice'</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave 'Organization Party Id' with its default of
+            'Company'</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter or use the lookup to find the 'To Party Id' (eg
+            DemoCustomer)</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Create' button in the top part of the
+            screen</para>
+          </listitem>
+
+          <listitem>
+            <para>The invoice header has been created and the default header
+            screen will be displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Details on the invoice will need to be entered via the other
+            sub menus (eg Items, Time Entries etc)</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I create a new Purchase invoice?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Press the 'Create New' button</para>
+          </listitem>
+
+          <listitem>
+            <para>The New Sales Invoice / New Purchase Invoice screen is
+            displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Using the bottom part of the screen, leave Invoice type with
+            its default of 'Purchase Invoice'</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave 'Organization Party Id' with its default of
+            'Company'</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter or use the lookup to find the 'From Party Id' (eg
+            DemoSupplier)</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Create' button in the bottom part of the
+            screen</para>
+          </listitem>
+
+          <listitem>
+            <para>The invoice header has been created and the default header
+            screen will be displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Details on the invoice will need to be entered via the other
+            sub menus (eg Items, Time Entries etc)</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Invoice Send Per Email</title>
+
+      <para>This is used to send a copy of the invoice details to one or more
+      email addresses. The invoice is included as an attachment and the user
+      can add a simple accompanying email message.</para>
+
+      <sect2>
+        <title>How do I send a copy of an invoice via email?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Send per Email' sub menu</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Send per Email' default screen will be displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the 'From Email Address'<note>
+                <para>CHECK: Shouldnt this be defaulted from the user
+                login.....????</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'To Email Address' as it is as this will be
+            defaulted using the customer details from the invoice</para>
+          </listitem>
+
+          <listitem>
+            <para>If required enter the 'Copy Email address' for anyone that
+            needs to be copied on the email</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Subject' as the default of 'Please find attached
+            invoice'</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Other Currency' box blank<note>
+                <para>CHECK: Investigate what effect this has on the
+                email.....</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Enter a short email message in the 'Email Body'</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Submit' button</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>List Invoice Items</title>
+
+      <para>The Invoice Items screen displays the individual invoice line
+      details and allows the user to update or remove an entry. As each
+      invoice line is created it is allocated a specific sequence (or Item
+      Number) which acts as a unique identifier.</para>
+
+      <sect2>
+        <title>How do I create a new invoice line item?</title>
+
+        <para>Note that only invoices that have specific statuses can have new
+        line items created. This means that if an invoice has already been
+        paid and processed OFBiz will not allow any amendments to it.</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Items' sub menu for the invoice</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Add a new invoice item' screen will be displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Item No' field blank (as it will be automatically
+            generated)</para>
+          </listitem>
+
+          <listitem>
+            <para>Select the 'Invoice Item Type' from the drop down box<note>
+                <para>A typical line using the demo could be 'Invoice Finished
+                Good Item' but ensure that it corresponds with the type of
+                products setup in your catalog</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Enter a description describing what the line item is<note>
+                <para>If you are going to enter a product in the Product Id
+                field from the catalog then leave the 'Description' field
+                blank as it will be used to show the product
+                description</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Override GL Account Id' field blank as it will
+            use the default account based on the Chart of Accounts
+            setup</para>
+          </listitem>
+
+          <listitem>
+            <para>Use the lookup or enter a product code in the 'Product Id'
+            field<note>
+                <para>This can be left blank if your invoice line is not
+                related to a product in the catalog</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Enter a number in the 'Quantity' field</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter a 'Unit Price' only if the Product Id field is
+            blank<note>
+                <para>If a Product Id has been entered then leave the 'Unit
+                Price' field blank as it will pick up the product price from
+                the catalog</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Inventory Item' field blank</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Product Feature Id' field blank</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'UOM' field blank</para>
+          </listitem>
+
+          <listitem>
+            <para>Select 'Yes' for the 'Taxable Flag' field</para>
+          </listitem>
+        </orderedlist>
+
+        <note>
+          <para>CHECK: Need to do some tests to see what line item type needs
+          to be used for 'Sales Tax'. I think that it could be 'Invoice Item
+          Sales Tax' since tax is currently calculated at invoice item line
+          level. Also the automatically generated invoices from Order Entry
+          and E-Commerce show taxes at the invoice item line level (think
+          there may be some work going on - see JIRA on to consolidate
+          entries). Need to do some tests using 'Invoice Sales Tax' to see how
+          it works.........</para>
+        </note>
+      </sect2>
+
+      <sect2>
+        <title>How do I update an invoice line item?</title>
+
+        <para>Not all the fields on the invoice item line can be updated. For
+        example Taxable Flag and Inventory Item cannot be updated. If these
+        fields need to be amended then the invoice item will need to be
+        removed and then re-created.</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Items' sub menu for the invoice</para>
+          </listitem>
+
+          <listitem>
+            <para>Any existing line items will be displayed in the 'Items'
+            box</para>
+          </listitem>
+
+          <listitem>
+            <para>Amend the details in the line item that needs to be updated
+            (eg Quantity, Invoice Item Type, Product Id, Description, Override
+            GL Account, Unit Price)</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Update' button displayed at the end of the line
+            item that has been updated</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I delete an invoice item?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Items' sub menu for the invoice</para>
+          </listitem>
+
+          <listitem>
+            <para>Any existing line items will be displayed in the 'Items'
+            box</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Remove' button displayed at the end of the line
+            item that needs to be deleted</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Edit Invoice Time Entries</title>
+
+      <para>The Time Entries screen displays any time logged against the
+      invoice. For example these time entries can be from employee or external
+      supplier timesheets that are tracked within OFBiz. is used to track any
+      individual work or billable hours against an invoice.</para>
+
+      <sect2>
+        <title>How do I add a new time entry for an invoice?</title>
+
+        <para>There are two options :</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Add time entry to a new invoice and add time entry to an
+            existing invoice.</para>
+          </listitem>
+
+          <listitem>
+            <para>Add time entry to a new invoice and add time entry to an
+            existing invoice.</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I update a time entry for an invoice?</title>
+
+        <note>
+          <para>To check if this can only be done via timesheets.</para>
+        </note>
+      </sect2>
+
+      <sect2>
+        <title>How do I remove a time entry from an invoice?</title>
+
+        <note>
+          <para>To check if this is done via timesheets</para>
+        </note>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Edit Invoice Applications</title>
+
+      <para>The Invoice Applications sub menu is where payments that have been
+      made (or received) can be linked or allocated to an invoice. The phrase
+      'applying' an amount to an invoice is often used to describe this. The
+      screen is divided into 3 main areas as follows.</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Payments Applied (which shows details of the total amount
+          'Applied' and the total amount 'Open'. Note that 'Open' here means
+          outstanding)</para>
+        </listitem>
+
+        <listitem>
+          <para>Possible Payments to Apply (which shows all the payments that
+          have been sent from the same party id as the invoice - for a sales
+          invoice this would be the customer party id)</para>
+        </listitem>
+
+        <listitem>
+          <para>Assign Payment to Invoice (which allows you to manually assign
+          a specific payment id to this invoice)</para>
+        </listitem>
+      </itemizedlist>
+
+      <note>
+        <para>General Ledger accounting transactions are generated during the
+        payment application process but unless your GL is setup with Unapplied
+        Cash and Applied Cash accounts - I'm not sure that there will be any
+        true accounting impact. In the Sales Order process the accounting
+        transaction generated the following GL Accounting transaction is
+        generated for 'Payment Applied' o add some text here.</para>
+      </note>
+
+      <para>DR 120000 Accounts Receivable / CR 120000 Accounts Receivable -
+      This transaction doesnt really do anything!</para>
+
+      <para>It is used to link payments to invoices. It is also used to
+      allocate which part of a payment is allocated or applied to a specific
+      invoice. This is extremely useful if your customers pay multiple
+      invoices with a single payment.</para>
+
+      <para>Example:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>A customer could send a single payment of $1000 that can be
+          used to pay for two invoices (eg $400 and $600)</para>
+        </listitem>
+
+        <listitem>
+          <para>Using this applications sub menu allows you to allocate part
+          of the $400 to one invoice and the balance ($600) to the other
+          invoice</para>
+        </listitem>
+      </itemizedlist>
+
+      <para>By default all 'unapplied' payments that have been entered into
+      OFBiz from the customer will be available for selection even if they
+      have not yet been flagged as formally 'Received'. This means that these
+      are payments that have not already been linked to another invoice. If
+      only part of a payment amount has been linked to an invoice then the
+      remaining amount is left available to be allocated to another invoice.
+      Also note that a single invoice could be paid by multiple payments being
+      applied to it.</para>
+
+      <sect2>
+        <title>How do I apply a payment (or payments) to an invoice?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Applications' sub menu for the invoice</para>
+          </listitem>
+
+          <listitem>
+            <para>A list of unapplied payments for the party id will be
+            displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>A list of unapplied payments for the party id will be
+            displayed<note>
+                <para>More than one entry may be used. Also only part of a
+                larger amount may be used)The Payments Applied total at the
+                top of the screen will be updated with the amount selected.
+                Also the Amount Open will be reduced by the amount
+                selected.</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>More than one entry may be used. Also only part of a larger
+            amount may be used)The Payments Applied total at the top of the
+            screen will be updated with the amount selected. Also the Amount
+            Open will be reduced by the amount selected.</para>
+          </listitem>
+
+          <listitem>
+            <para>More than one entry may be used. Also only part of a larger
+            amount may be used)The Payments Applied total at the top of the
+            screen will be updated with the amount selected. Also the Amount
+            Open will be reduced by the amount selected.</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I update an applied payment for an invoice?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Payments that have been applied to an invoice can be
+            updated. This means that you can change the details of the payment
+            transaction or adjust the amount that was applied to the
+            invoice.</para>
+          </listitem>
+
+          <listitem>
+            <para>Select the 'Applications' sub menu for the invoice</para>
+          </listitem>
+
+          <listitem>
+            <para>A list of payments already applied to the invoice will be
+            displayed in the top part of the screen</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter or use the lookup to change the 'Payment Id' if
+            required</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the updated amount in the 'Amount to Apply' field if
+            required</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Update' button</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I remove an applied payment (or payments) from an
+        invoice?</title>
+
+        <note>
+          <para>CHECK: It can be done before transaction has been posted to GL
+          but also need to check if its can be done if the transaction has
+          been posted.</para>
+        </note>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Applications' sub menu for the invoice</para>
+          </listitem>
+
+          <listitem>
+            <para>Select the 'Applications' sub menu for the invoice</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Remove' button next to the payment entry that
+            needs to be removed</para>
+          </listitem>
+
+          <listitem>
+            <para>The entry will be removed and the top part of the screen
+            will be update the 'Payments Applied' total and 'Amount
+            Open'</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Edit Invoice</title>
+
+      <para>The Invoice Header screen is used to view or update details from
+      the invoice header. Examples of the type of information that can be
+      changed are Due Date, Description, Currency.</para>
+
+      <sect2>
+        <title>How do I update the header details for an Invoice?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Header' sub menu and the header details of the
+            invoice will be displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Update the fields required</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Update' button</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Invoice Overview</title>
+
+      <para>The Invoice Overview screen is used to display the summary of an
+      invoice in a single view. The screen is divided into sections that show
+      various information related to the invoice (eg Roles, Status, Terms,
+      Items, Payments Applied, etc).</para>
+
+      <para>The following options are currently available from this
+      screen:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>The following options are currently available from this
+          screen:</para>
+        </listitem>
+
+        <listitem>
+          <para>Copy (Create a copy of the current invoice)</para>
+        </listitem>
+
+        <listitem>
+          <para>PDF (View a PDF of the current invoice)</para>
+        </listitem>
+
+        <listitem>
+          <para>PDF default currency<note>
+              <para>CHECK: Need to see how this is different from just the PDF
+              view......</para>
+            </note></para>
+        </listitem>
+
+        <listitem>
+          <para>Status to 'Approved' (Change the status of the current invoice
+          to 'Approved)</para>
+        </listitem>
+
+        <listitem>
+          <para>Status to 'Sent' (Change the status of the current invoice to
+          'Sent')</para>
+        </listitem>
+
+        <listitem>
+          <para>Status to 'Ready' (Change the status of the current invoice to
+          'Ready'.<note>
+              <para>This will create the relevant accounting transactions and
+              post them to the general ledger</para>
+            </note></para>
+        </listitem>
+
+        <listitem>
+          <para>Status to 'Cancelled' (Change the status of the current
+          invoice to 'Cancelled')</para>
+        </listitem>
+
+        <listitem>
+          <para>Save as Template (NOTE TO CHECK: Save the current invoice
+          format as a template)</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1>
+      <title>Find Invoices</title>
+
+      <para>The default screen is for the Invoices tab is 'Find Invoices'. It
+      is used to locate existing invoices that have been created automatically
+      by the system or manually by the user. It can also be used to create a
+      new Sales or Purchase Invoice.</para>
+
+      <sect2>
+        <title>How do I view all invoices?</title>
+
+        <para>Press the 'Search' button to view all invoices</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I locate an existing invoice?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Enter the 'Invoice ID' if known</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter a word from the invoice description in the
+            'Description' field if known</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the 'Invoice Type' if known</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the 'From Party Id' if known<note>
+                <para>In most cases for a Sales Invoices this will be Company.
+                For Purchase Invoice it will be the supplier party id</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the 'Billing Account Id' if known</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the invoice status in the 'Status Id' field if
+            known</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the 'To Party Id' if known<note>
+                <para>In most cases for a Purchase Invoice this will be
+                company. For Sales Invoices it will be the customer party
+                id</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Search' button to view all invoices</para>
+          </listitem>
+
+          <listitem>
+            <para>All invoices that meet the search criteria will be
+            displayed.</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I update an invoice?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Locate the invoice using the 'Find Invoices' screen</para>
+          </listitem>
+
+          <listitem>
+            <para>Using the relevant sub menu make the required
+            changes.</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I delete an invoice?</title>
+
+        <para>Invoices cannot be deleted through the user interface. They can
+        only be cancelled (eg if they have been entered or created by
+        mistake). <note>
+            <para>They can probably be deleted using Entity Data Maintenance
+            in the Webtools menu but this is not recommended for 2
+            reasons:<orderedlist>
+                <listitem>
+                  <para>It may cause data integrity problems.</para>
+                </listitem>
+
+                <listitem>
+                  <para>It may cause data integrity problems.</para>
+                </listitem>
+              </orderedlist></para>
+          </note></para>
+      </sect2>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="accounting_findPayments">
+    <title>Payments</title>
+
+    <para>This feature lets the user locate payments by common
+    criteria.</para>
+  </chapter>
+
+  <chapter xml:id="accounting_FindPaymentGroup">
+    <title>Payment Group</title>
+
+    <para>Find payments by group.</para>
+  </chapter>
+
+  <chapter xml:id="accounting_FindGatewayResponses">
+    <title>Transactions</title>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="accounting_FindPaymentGatewayConfig">
+    <title>Payment Gateway Config</title>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="accounting_FindBillingAccount">
+    <title>Billing Accounts</title>
+
+    <para>A billing account is a way of allowing customers to consolidate
+    several invoices into an account that is paid off at a later
+    date.Customers can be allocated a credit limit and orders can be taken up
+    to the value of the credit limit without any payment being made.
+    Statements to the customer can then be generated (eg monthly) and payment
+    is made based on the outstanding amount.</para>
+
+    <note>
+      <para>A billing account does not change the flow of the normal Invoice
+      and Payment processes. It simply allows for a more structured
+      organisation of Invoices and Payments.</para>
+    </note>
+
+    <para>Billing Accounts can be used for the following:</para>
+
+    <itemizedlist>
+      <listitem>
+        <para>Setting credit limits for customers</para>
+      </listitem>
+
+      <listitem>
+        <para>Keeping track of credit available to customer for purchase on
+        account</para>
+      </listitem>
+
+      <listitem>
+        <para>Keeping track of payments made in advance <note>
+            <para>Could also use Financial Account for advance payments but
+            need to understand the differences in functionality and
+            process</para>
+          </note></para>
+      </listitem>
+
+      <listitem>
+        <para>Keeping track of a subset of payments and invoices for a
+        specific client, i.e. allowing them to have multiple billing
+        accounts.</para>
+      </listitem>
+
+      <listitem>
+        <para>Allow multiple authorised parties to bill against the same
+        account which one party is responsible for paying (e.g. different
+        offices of the same organisation may have one single account with a
+        supplier to make use of order volume discounts)</para>
+      </listitem>
+
+      <listitem>
+        <para>Managing and generating customer statements</para>
+      </listitem>
+
+      <listitem>
+        <para>Customer specific order tracking</para>
+      </listitem>
+
+      <listitem>
+        <para>Accounts Receivable / Debt Management</para>
+      </listitem>
+
+      <listitem>
+        <para>Analysis and monitoring customer spending (creditworthiness /
+        discounts / product popularity)</para>
+      </listitem>
+    </itemizedlist>
+
+    <note>
+      <para>A payment that is applied (or matched) to a Billing Account it
+      should still be applied to an invoice. In the case where the payment
+      arrives before the invoice has been generated then once the invoice is
+      generated it should be applied to the payment or payments.</para>
+    </note>
+
+    <sect1>
+      <title>Billing Account Orders</title>
+
+      <para>This sub menu lists the details of any Sales Orders that have been
+      charged to the billing account. A Sales Order is charged to a billing
+      account by selecting the billing account as the Payment Method. <note>
+          <para>The details displayed here in conjunction with the 'Payments'
+          sub menu could also be used to generate a customer statement or
+          account showing details of customer activity during a specified time
+          period.</para>
+        </note></para>
+    </sect1>
+
+    <sect1>
+      <title>Billing Account Payments</title>
+
+      <para>This sub menu allows the creation of a payment that is
+      automatically applied to the billing account.</para>
+
+      <para>It is used when a payment has been received from a customer that
+      is used to pay off the balance (or part balance) of a billing
+      account.</para>
+
+      <para>An example of how this works is similar to a credit card statement
+      where a list of transactions have been incurred over the previous month
+      and one payment is used to settle the outstanding balance.</para>
+
+      <sect2>
+        <title>How do I add a payment to a billing account?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Payments' sub menu</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Create Payment' screen is displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter or use the lookup to enter the 'From Party Id' (NOTE:
+            By default this will be the Bill To Party of the Billing
+            Account)</para>
+          </listitem>
+
+          <listitem>
+            <para>Select the 'Organisation Party Id' from the drop down
+            box</para>
+          </listitem>
+
+          <listitem>
+            <para>Select the 'Payment Type Id' from the drop down box (NOTE:
+            By default this will be set to 'Customer Deposit')</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Payment Method Type' as 'Billing Account' (NOTE
+            TO CHECK: What happens if you do change this....)</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the 'Amount' of the payment</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Create' button</para>
+          </listitem>
+        </orderedlist>
+
+        <para>The new entry is displayed at the bottom of the screen.<note>
+            <para>The total amount of the payment will be applied to the
+            Billing Account. This can be verified by going to Accounting /
+            Payments menu and locating the newly created payment. The 'Amount
+            to Apply' column will be zero.</para>
+          </note></para>
+      </sect2>
+
+      <sect2>
+        <title>How do I update a payment for a billing account?</title>
+
+        <para>A payment can be updated for a billing account by amending the
+        amount of the payment that has been applied to the billing account.
+        For example if a payment of $100 has been applied to a billing account
+        it can be amended so that only $75 will be applied and $25 will be
+        available to be applied elsewhere.</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Click on the 'Payment Id' of the payment that needs to be
+            removed</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Payment Overview' screen is displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Update' button in the 'Payments Applied'
+            box</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Payment Applications' screen is displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Locate the 'Billing Account Id' and 'Amount Applied'</para>
+          </listitem>
+
+          <listitem>
+            <para>Amend the 'Amount Applied' for the billing account</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Update' button next to the entry that refers to
+            the 'Billing Account Id'</para>
+          </listitem>
+        </orderedlist>
+
+        <para>A message will be displayed saying that the payment has been
+        removed from the billing account</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I delete a payment from a billing account?</title>
+
+        <para>A payment can be removed from billing account by removing the
+        link that has applied the payment to the billing account.<orderedlist>
+            <listitem>
+              <para>Click on the 'Payment Id' of the payment that needs to be
+              removed</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Payment Overview' screen is displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Update' button in the 'Payments Applied'
+              box</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Payment Applications' screen is displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Remove' button next to the entry that refers to
+              the 'Billing Account Id'</para>
+            </listitem>
+          </orderedlist></para>
+
+        <para>A message will be displayed saying that the payment has been
+        removed from the billing account<note>
+            <para>The above example was done when the payment status was at
+            'Not Paid' - need to test if it still works if the payment status
+            is at 'Received' or 'Confirmed' too.</para>
+          </note></para>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Billing Account Invoices</title>
+
+      <para>The Billing Account Find Invoices screen displays by default a
+      list of invoices that have been charged to the billing account.</para>
+
+      <para>Any invoice displayed here means that its invoice amount has been
+      deducted from the billing account credit limit.For example: If the
+      Billing Account Credit Limit is $100 and the there are 2 invoices
+      displayed with amounts $10 and $25 then the available credit for the
+      billing account will be $75.</para>
+
+      <para>The invoice can be at various statues and there is an option to
+      locate an invoice by status.</para>
+
+      <para>It is also used to apply any payments that have been made into the
+      Billing Account to an invoice. A 'Capture' button is displayed next to
+      each invoice displayed that has an amount outstanding.</para>
+
+      <para>Example:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Two invoices are charged to a Billing Account (Invoice A $10
+          and Invoice B $25)</para>
+        </listitem>
+
+        <listitem>
+          <para>A payment of $17 has been paid into the Billing Account</para>
+        </listitem>
+
+        <listitem>
+          <para>If the Capture button is pressed for the invoice A then $10 of
+          the $17 payment will be applied to this invoice and a new payment
+          transaction of $7 will be created and available to apply to a
+          different invoice</para>
+        </listitem>
+      </itemizedlist>
+
+      <sect2>
+        <title>How do I locate an invoice by status?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Invoices' sub menu</para>
+          </listitem>
+
+          <listitem>
+            <para>Use the drop down box to select the 'Status Id' for the
+            invoice required</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Submit' button</para>
+          </listitem>
+        </orderedlist>
+
+        <para>A list of invoices with the required status will be
+        displayed</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I capture a payment for an invoice?</title>
+
+        <para><important>
+            <para>In order for this to work a payment needs to have been made
+            to the billing account that has not been completely applied to any
+            other invoices. Payments to a billing account can be done via the
+            'Payments' sub menu for the billing account or by using Accounting
+            / Payments menu.</para>
+          </important></para>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Invoices' sub menu</para>
+          </listitem>
+
+          <listitem>
+            <para>Locate the invoice required <note>
+                <para>The 'Amount to Apply' is the same as the 'Total'
+                column</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Capture' button <note>
+                <para>The 'Amount to Apply' is different to the 'Total'
+                column</para>
+              </note></para>
+          </listitem>
+        </orderedlist>
+
+        <para>The 'Capture' button is no longer displayed next to the invoice
+        and an additional payments transaction will be created for any
+        difference between the invoice total and the amount paid (Eg Invoice
+        Total $100, Payment Amount $125, the new payment transaction amount
+        will be $25)<note>
+            <para>The above example assumes that the payment available will
+            cover the total amount outstanding for the invoice</para>
+          </note></para>
+      </sect2>
+
+      <sect2>
+        <title/>
+
+        <para/>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Billing Account Terms</title>
+
+      <para>This sub menu allows terms to be associated with a billing
+      account. Currently these can be the following:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>payment terms (discounted if paid within specified
+          days)</para>
+        </listitem>
+
+        <listitem>
+          <para>payment terms (due on a specified day per month)</para>
+        </listitem>
+
+        <listitem>
+          <para>payment terms (net days)</para>
+        </listitem>
+
+        <listitem>
+          <para>penalty terms (late fee)</para>
+        </listitem>
+
+        <listitem>
+          <para>penalty terms (collection agency fee)</para>
+        </listitem>
+
+        <listitem>
+          <para>miscellaneous (non returnable sales item)</para>
+        </listitem>
+      </itemizedlist>
+
+      <note>
+        <para>There is an overlap here with the terms that can be specified in
+        an agreement. Would a billing account party also have an agreement for
+        payment terms...? .</para>
+      </note>
+
+      <sect2>
+        <title>How do I add terms to a billing account?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Terms' sub menu</para>
+          </listitem>
+
+          <listitem>
+            <para>Select a 'Term Type' from the drop down box (eg. Payment net
+            days)</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'UOM' field blank</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter a number in the 'Term Value' field (eg. 30 which would
+            mean '30 days' when related to 'Payment net days')</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Save' button</para>
+          </listitem>
+        </orderedlist>
+
+        <para>The term is displayed in the top part of the screen</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I update terms for a billing account?</title>
+
+        <para>Select the 'Terms' sub menu<orderedlist>
+            <listitem>
+              <para>Press the 'Edit' button next to the entry that needs to be
+              amended</para>
+            </listitem>
+
+            <listitem>
+              <para>The details are displayed in the 'Edit Billing Account
+              Terms' box</para>
+            </listitem>
+
+            <listitem>
+              <para>Update the 'Term Type', 'UOM' or 'Term Value' as
+              required</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Save' button</para>
+            </listitem>
+          </orderedlist></para>
+
+        <para>The updated term is displayed in the top part of the
+        screen</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I remove terms from a billing account?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Terms' sub menu</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Delete' button next to the entry that needs to be
+            removed</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Billing Account Roles</title>
+
+      <para>This sub menu allows parties with specific roles to be associated
+      with to a Billing Account. Roles allows you to specify a party
+      role.</para>
+
+      <para>It is used to specify which party should be billed for the billing
+      account. It can be used as follows:<itemizedlist>
+          <listitem>
+            <para>Simple billing account for a single party</para>
+          </listitem>
+
+          <listitem>
+            <para>More complex billing account where multiple parties (eg
+            company subsidiaries) charge invoices to the billing account but a
+            different party (eg head office) will pay the account</para>
+          </listitem>
+        </itemizedlist></para>
+
+      <sect2>
+        <title>How do I add a party role to a billing account?</title>
+
+        <para>Select the 'Roles' sub menu</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Enter or use the lookup to select the 'Party Id'</para>
+          </listitem>
+
+          <listitem>
+            <para>Select the 'Role Type Id' from the drop down box (eg Bill To
+            Customer)</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'From Date' blank (NOTE: If left blank it will
+            default to the current date and time)</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Thru Date' blank</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Add' button</para>
+          </listitem>
+        </orderedlist>
+
+        <para>The new party role is displayed at the bottom of the
+        screen</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I update a party role for a billing account?</title>
+
+        <para>The only field that can be updated for a party role is the 'Thru
+        Date'. If any other details need to be amended then the entry will
+        need to be deleted and then recreated.</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Roles' sub menu</para>
+          </listitem>
+
+          <listitem>
+            <para>Locate the entry that needs to be amended</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter or use the lookup to enter the 'Thru Date'</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Update' button for the entry</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I delete a party role from a billing account?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Locate the entry that needs to be deleted</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Delete' button next to the entry</para>
+          </listitem>
+
+          <listitem>
+            <para>The entry will be removed from the bottom of the
+            screen</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Edit Billing Account</title>
+
+      <para>The 'Account' sub menu is used to enter the basic details required
+      for setting up a new billing account or editing an existing one.</para>
+
+      <para>It can be used to create or update the following details for a
+      Billing Account:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Billing Account Identification</para>
+        </listitem>
+
+        <listitem>
+          <para>Party to be Billed</para>
+        </listitem>
+
+        <listitem>
+          <para>Billing Account Limit (NOTE: This is how much credit the
+          customer will be given eg $5000)</para>
+        </listitem>
+
+        <listitem>
+          <para>Currency to be used for Billing Account</para>
+        </listitem>
+
+        <listitem>
+          <para>Start and End Dates</para>
+        </listitem>
+      </itemizedlist>
+
+      <note>
+        <para>There are currently two ways to add a party to a billing
+        account.</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Enter a party id in the 'Party Billed To' field</para>
+          </listitem>
+
+          <listitem>
+            <para>Use the 'Roles' sub menu to add a party id with the role of
+            'Bill To Customer'</para>
+          </listitem>
+
+          <listitem>
+            <para>If using the first method then when you press the update
+            button this removes the party id from this field and automatically
+            creates the party under the Roles sub menu with the role of 'Bill
+            To Customer'</para>
+          </listitem>
+        </orderedlist>
+      </note>
+
+      <sect2>
+        <title>How do I create a new Billing Account?</title>
+
+        <para>Example: To create a new Billing Account</para>
+
+        <note>
+          <para>Check if the party doesnt have the role 'Bill To Customer' is
+          it automatically added when the billing account is created or will
+          the creation fail?..</para>
+        </note>
+
+        <orderedlist>
+          <listitem>
+            <para>Press the 'New' button and the 'Edit Billing Account' screen
+            is displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter a code or number for the 'Billing Account Id'<note>
+                <para>If this is left blank a number will be automatically
+                generated</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Enter a number for the 'Billing Account Limit' (eg
+            5000)</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Account Currency UOM Id' as it is <note>
+                <para>This should be the default currency for
+                Company...</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Enter a description that can be used to identify the Billing
+            Account (eg Joe Bloggs Builders Billing Account)</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Contact Mech' field as it is<note>
+                <para>This field cannot be filled in until either the 'Party
+                Billed To' has been filled in or a party with the role of
+                'Bill To Customer' has been added under the 'Roles' sub
+                menu.</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the Billing Account start date in the 'From Date'
+            field. <note>
+                <para>If left blank then this will default to the current date
+                and time. NOTE TO CHECK: Can this date be in the
+                future.....?</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Thru date' field blank</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter or use the lookup to select the 'Party Billed
+            To'</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Update' button</para>
+          </listitem>
+        </orderedlist>
+
+        <para>After the 'Update' button has been pressed then the 'Contact
+        Mech Id' field will either be automatically filled in or will allow
+        you to select a contact mech from a drop down list</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I update an existing Billing Account?</title>
+
+        <para>Billing Account details can be updated. A key field that may
+        need to be updated is the actual Billing Account Limit if a customer
+        reduces or improves their credit rating</para>
+
+        <para>Example: To Update a Billing Account</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Click on the 'Billing Account Id' of the Billing Account to
+            updated</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Edit Billing Account' screen is displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the changes required</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Update' button</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I delete a Billing Account?</title>
+
+        <para>Billing Accounts cannot be deleted. They can only be expired.
+        This means that they will no longer be able to be used to associate
+        invoices or payments against.</para>
+
+        <para>Example: To Expire a Billing Account</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Click on the 'Billing Account Id' of the Billing Account to
+            be expired</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Edit Billing Account' screen is displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the current date in the 'Thru date' field</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Update' button</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Find Billing Account</title>
+
+      <para>The default screen is for the Billing Account tab is 'Find Billing
+      Account'. It is used to locate existing billing accounts that have been
+      created.</para>
+
+      <para>The user has the option to select an existing billing account or
+      create a new one by clicking on the 'New' button.</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="accounting_FinAccountMain">
+    <title>Financial Account</title>
+
+    <para>A financial account is a tool (similar to bank account statement)
+    that is used for monitoring monetary transactions. Normally they will be
+    linked to a party and the various transactions details (eg payments or
+    receipts) will be shown as entries.</para>
+
+    <para>The entries for a financial account can be displayed using the
+    'Financial Account' tab in Accounting or in Party Manager if you enter a
+    party as the owner of the financial account.</para>
+
+    <para>Currently in OFBiz financial accounts can have the following
+    types:</para>
+
+    <itemizedlist>
+      <listitem>
+        <para>Bank Account (by default this type will post to 213500 CUSTOMER
+        DEPOSIT ACCOUNTS)</para>
+      </listitem>
+
+      <listitem>
+        <para>Deposit Account (by default this type will post to 213500
+        CUSTOMER DEPOSIT ACCOUNTS)</para>
+      </listitem>
+
+      <listitem>
+        <para>Gift Certificate (by default this type will post to 213200 GIFT
+        CERTIFICATES UNREDEEMED)</para>
+      </listitem>
+
+      <listitem>
+        <para>Investment Account (by default this type will post to 213500
+        CUSTOMER DEPOSIT ACCOUNTS)</para>
+      </listitem>
+
+      <listitem>
+        <para>Replenish Account (no default posting account in demo data
+        setup)</para>
+      </listitem>
+
+      <listitem>
+        <para>Service Credit Account (no default posting account in demo data
+        setup)</para>
+      </listitem>
+    </itemizedlist>
+
+    <note>
+      <para>:</para>
+
+      <orderedlist>
+        <listitem>
+          <para>In GL Account Defaults there is a specific tab 'FinAccount
+          Type Gl Account' for specifying which type of Financial accounts are
+          posted to which general ledger account.</para>
+        </listitem>
+
+        <listitem>
+          <para>In GL Account Defaults there is also a tab 'Payment Method Id
+          / GL Account ID' for specifying the account to post transactions to
+          if 'Financial Account' is selected as the Payment Method instead of
+          (Cash, Cheque, Credit Card, etc). By default the demo setup posts
+          transactions to 111100 GENERAL CHECKING ACCOUNT.</para>
+        </listitem>
+      </orderedlist>
+    </note>
+
+    <para>You can also setup each financial account to post to a specific
+    general ledger account for each party. This is done via a specific field
+    during the creation or update of a financial account. This will override
+    the default setting by type.</para>
+
+    <para>Financial Accounts can be used for the following</para>
+
+    <orderedlist>
+      <listitem>
+        <para>Managing and Tracking Customer Prepaid Accounts</para>
+      </listitem>
+
+      <listitem>
+        <para>Managing and Tracking Customer Credit Limit <note>
+            <para>Need to verify this</para>
+          </note></para>
+      </listitem>
+
+      <listitem>
+        <para>Managing Electronic Gift Certificates / Gift Vouchers/ Gift
+        Card</para>
+      </listitem>
+
+      <listitem>
+        <para>Reload of Electronic Gift Card</para>
+      </listitem>
+
+      <listitem>
+        <para>Company Bank Account Transaction Tracking</para>
+      </listitem>
+    </orderedlist>
+
+    <sect1>
+      <title>Financial Account Main Screen</title>
+
+      <para>The default screen for Financial Accounts displays a list of any
+      bank accounts that have been created. Details listed include the account
+      the following:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>account name</para>
+        </listitem>
+
+        <listitem>
+          <para>organisation the account is linked to</para>
+        </listitem>
+
+        <listitem>
+          <para>account balances (available and actual)</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1>
+      <title>Find Financial Account Reconciliations</title>
+
+      <para>This screen displays the details of any reconciliations in
+      progress for a financial account. Only reconciliations that have actual
+      transactions associated with them will be displayed. If a reconciliation
+      group has no transactions assigned to it then it will not be
+      displayed.</para>
+    </sect1>
+
+    <sect1>
+      <title>View GL Reconciliation</title>
+
+      <para>This screen gives an overview of a reconciliation group / bank
+      reconciliation. Note that a reconciliation must have at least one
+      transaction associated with it for this screen to be displayed. It is
+      used as follows:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>to view transactions associated with a reconciliation group /
+          bank reconciliation</para>
+        </listitem>
+
+        <listitem>
+          <para>to remove transactions from a reconciliation group / bank
+          reconciliation</para>
+        </listitem>
+
+        <listitem>
+          <para>to reconcile the reconciliation group / bank
+          reconciliation</para>
+        </listitem>
+      </itemizedlist>
+
+      <para>The screen displays the current reconciliation details plus
+      details of the previous reconciliation if one exists. This ensures the
+      closing balance of the previous reconciliation is the same as the
+      opening balance for the current one.</para>
+
+      <sect2>
+        <title>How do I edit reconciliation?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Press the 'Edit' button in the 'Current Bank
+            Reconciliation'part of the screen</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Edit Financial Account Reconciliations' screen
+            isdisplayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Update the details required</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Update' button</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I remove a transaction from a bank
+        reconciliation?</title>
+
+        <para>On the lower part of the screen a list of all transactions
+        associated with the reconciliation is displayed.</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Press the 'Remove' button next to the entry that needs to be
+            removed</para>
+          </listitem>
+
+          <listitem>
+            <para>The transaction is removed</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I reconcile a bank reconciliation?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>A total of all transactions associated with the
+            reconciliation is shown in the lower part of the screen</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Reconcile' button next to the total</para>
+          </listitem>
+
+          <listitem>
+            <para>Each transaction status will be changed to 'Approved' and
+            the reconciliation / bank reconciliation status will be changed to
+            'Reconciled'<note>
+                <para>This means that no new transactions can be added to this
+                reconciliation and it will no longer be available to assign
+                transactions to</para>
+              </note></para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Edit Financial Account Reconciliations</title>
+
+      <para>This screen is used to create or update a reconciliation group /
+      bank reconciliation. The following details can be input or updated for
+      the reconciliation:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>GL Reconciliation Name or Identifier</para>
+        </listitem>
+
+        <listitem>
+          <para>Description for the reconciliation</para>
+        </listitem>
+
+        <listitem>
+          <para>Organisation Party Id for the reconciliation</para>
+        </listitem>
+
+        <listitem>
+          <para>Opening Balance for the reconciliation</para>
+        </listitem>
+
+        <listitem>
+          <para>Reconciliation date</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1>
+      <title>Deposit Slips</title>
+
+      <para>This section describes how to create, find, and edit deposit
+      slips.</para>
+
+      <sect2>
+        <title>New Deposit Slip</title>
+
+        <para>This screen allows the user to create an Payment Group and the
+        transactions associated with the Payment Group will generate a deposit
+        slip. .</para>
+
+        <sect3>
+          <title>How do I create a New Deposit Slip?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Press the 'Find' button to list all the available
+              transactions</para>
+            </listitem>
+
+            <listitem>
+              <para>Select the transactions to include in the Payment Group by
+              using the 'Select All' or the check box that corresponds to the
+              transactions required</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter a 'Payment Group Name' if required (If none is
+              entered then by default this will be 'Payment Group
+              Name')</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Create Batch' button</para>
+            </listitem>
+
+            <listitem>
+              <para>A button to print the deposit slip will be displayed as
+              well as the edit screen to make any further changes to the
+              Payment Batch</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>Find Deposit Slips</title>
+
+        <para>This screen is used to locate payment groups and their
+        associated deposit slips that have been created. Deposit slips are
+        created by grouping transactions together into a Payment Group. This
+        can be done using the 'Accounting / Payment Group' tab, the 'Financial
+        Account / Deposit Withdraw' tab or the 'Create New Deposit Slip'
+        button.</para>
+
+        <para>Currently Deposit Slips are created for AR Batch Payments
+        only.</para>
+
+        <para>The deposit slips are available in PDF format and there is an
+        option to cancel the batch that generated the deposit slip if
+        required.</para>
+
+        <sect3>
+          <title>How do I locate an existing Deposit Slip?</title>
+
+          <para>Enter some characters from the 'Payment Group Id' or 'Payment
+          Group Name' if known</para>
+
+          <para>Press the 'Search' button</para>
+        </sect3>
+
+        <sect3>
+          <title>How do I update an existing Deposit Slip?</title>
+
+          <para><orderedlist>
+              <listitem>
+                <para>Locate the Payment Group required</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the Payment Group by clicking on the Payment
+                Group Id</para>
+              </listitem>
+            </orderedlist>The 'Edit Payment Group' screen is displayed Add any
+          new payment deposits or update existing deposits for the Payment
+          Group All changes in the Payment Group will automatically be updated
+          to the Deposit Slip</para>
+        </sect3>
+
+        <sect3>
+          <title>How do I delete an existing Deposit Slip?</title>
+
+          <para>A deposit slip can not be directly deleted but it is removed
+          when a Payment Group is cancelled Press the 'Cancel' button next to
+          the Payment Group required to cancel a payment group The Payment
+          Group is removed from the 'Find Deposits' screen and no deposit
+          slips can be viewed or printed.</para>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>Edit Deposit Slip</title>
+
+        <para>This screen displays the details of a Payment Group and its
+        transactions. The Deposit Slip for the Payment Group can be printed if
+        required and the Payment Group itself can be updated. Details that can
+        be updated include the name of the Payment Group itself and the
+        addition, removal or update of transactions.</para>
+
+        <note>
+          <para>Any changes to the Payment Group will be automatically updated
+          to the Deposit Slip.</para>
+        </note>
+
+        <sect3>
+          <title>How do I update a Deposit Slip?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Select the Payment Group required</para>
+            </listitem>
+
+            <listitem>
+              <para>Update the 'Payment Group Name' if required</para>
+            </listitem>
+
+            <listitem>
+              <para>Use the lookup for 'Payment Id' to add new transactions to
+              the Payment Group if required</para>
+            </listitem>
+
+            <listitem>
+              <para>Use the 'Cancel' button next to a particular transaction
+              to remove it from the Payment Group</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Update' or 'Add' buttons as required</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Print Deposit Slip' button</para>
+            </listitem>
+          </orderedlist>
+
+          <para>The Deposit Slip will be displayed with the latest details of
+          the transactions for the Payment Group</para>
+        </sect3>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Financial Account Deposit / Withdraw</title>
+
+      <para>By default this screen will display all payment transactions both
+      incoming and outgoing that have not already been associated with a
+      financial account that represents one of the company's bank
+      accounts.</para>
+
+      <para>This screen also gives the option to create new deposit or
+      withdrawal payments. The user can select a number of incoming deposit
+      payments (eg Customer Payments etc) and group them together into a
+      payment group (i.e AR Batch of Payments) that will create a 'deposit
+      slip'.</para>
+
+      <para>If you select a number of incoming payments and dont group them
+      then no payment group is created (and therefore not deposit slip either)
+      but the individual transactions will be created for the 'bank account'
+      financial account.</para>
+
+      <para>Note that outgoing payments cannot be grouped together and will
+      not create a 'deposit slip'.</para>
+
+      <sect2>
+        <title>How do I list Deposit or Withdrawal Payments not linked to a
+        Bank Account?</title>
+
+        <para>Press the 'Find' button on the 'Deposit/Withdraw' screen.</para>
+
+        <para>All deposit and withdrawal transactions not associated with a
+        bank 'financial account' will be displayed.</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I group payments and create a deposit slip?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Press 'Find' to list all Deposit or Withdrawal
+            payments</para>
+          </listitem>
+
+          <listitem>
+            <para>Use the 'Select All' or click on the check box associated
+            with the transactions required</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter a name for the Payment Party Group Name (eg XYZ
+            Deposits) to group the transactions together</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Deposit/Withdraw' button</para>
+          </listitem>
+        </orderedlist>
+
+        <para>A deposit will be created that can be viewed under the 'Deposit
+        Slip' tab and grouped transaction will be created under the
+        'Transactions' tab with a link to the deposit slip breakdown</para>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Financial Account Authorizations</title>
+
+      <para>An authorization is a temporary transaction showing a commitment
+      to take money from a financial account. It is like a 'transaction in
+      progress' where there can be delay between when you buy something and
+      the time it actually appears on your statement.</para>
+
+      <para>Authorizations can be time limit specific meaning that they can be
+      controlled by entering a start and end date so that they are only valid
+      for a certain length of time. They can also be expired. When an
+      authorization is expired it removes the commitment from the financial
+      account. The history of expired authorizations are shown on the
+      financial account.</para>
+
+      <note>
+        <para>This could be very useful in ensuring that customers are not
+        overcommitted and keeping within their approved credit limits.</para>
+      </note>
+
+      <sect2>
+        <title>How do I add an authorization?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Enter an amount in the 'Amount' field (Eg 1000)</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Currency' field blank as the default currency
+            will be used</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter a date in the 'Authorisation Date' field</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'From Date' field blank</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Thru Date' field blank</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Add' button<note>
+                <para>When you now view the Financial Account detail the
+                'Actual Balance' and 'Available Balance' fields will be
+                different.</para>
+              </note></para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I update an authorization?</title>
+
+        <para>An authorization cannot be updated. It can only be expired. If
+        you have made a mistake and need to change an authorization then it
+        needs to expired and then re-created correctly.</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I delete an authorization?</title>
+
+        <para>Authorizations are not deleted they are instead expired. This
+        means that the history of the authorizations will remain on the
+        account as an audit trail.</para>
+
+        <para>Example: To expire an authorisation</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Authorizations' tab for the Financial
+            Account</para>
+          </listitem>
+
+          <listitem>
+            <para>Any authorizations will be displayed at the bottom of the
+            screen</para>
+          </listitem>
+
+          <listitem>
+            <para>If the authorization is still current the 'Thru Date' field
+            will be blank<note>
+                <para>CHECK: May not always be true as you can specify a
+                future date for it to expire......!!!</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Select the 'Expire' button next to the authorisation to be
+            expired</para>
+          </listitem>
+        </orderedlist>
+
+        <para>The authorization is removed from the financial account and the
+        screen is redisplayed with the 'Thru Date' field completed</para>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Find Financial Account Transactions</title>
+
+      <para>A transaction is an entry that is shown on the financial account.
+      Transactions can be one of the following types:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Deposits</para>
+        </listitem>
+
+        <listitem>
+          <para>Withdrawals</para>
+        </listitem>
+
+        <listitem>
+          <para>Adjustments</para>
+        </listitem>
+      </itemizedlist>
+
+      <para>Transactions are used to show entries and the financial history of
+      the financial account. Similar to a bank account or credit card
+      statement the transaction will show details of what was spent or paid
+      into the account.</para>
+
+      <para>Some transaction totals have been added to this screen to help as
+      part of the reconciliation processes. Additional details available
+      include number of transactions, transaction totals and status.</para>
+
+      <sect2>
+        <title>How do I find transactions for a Financial Account?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Press the 'Search' button</para>
+          </listitem>
+
+          <listitem>
+            <para>A list of transactions for the financial account will be
+            displayed</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>Financial Account Bank Reconciliation</title>
+
+        <para>Bank Reconciliation is a regular task where transactions from
+        the company bank statement are matched against transactions that have
+        occurred in the General Ledger. This is done based on a specific
+        date(NOTE: This can be done daily, weekly but is usually an end of
+        month). A specific GL account is normally used to represent the
+        company bank account and any accounting transaction that involves the
+        bank account will automatically record and entry in the GL</para>
+
+        <para>The bank reconciliation process ensures that the GL account and
+        the bank statement reconcile to the same amounts. Differences can
+        occur between the GL and the bank statement for a variety of valid
+        reasons including the following:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Payments or Deposits in process (especially cheques)</para>
+          </listitem>
+
+          <listitem>
+            <para>Interest or Bank Charges that are not known in advance but
+            are applied to the bank account</para>
+          </listitem>
+
+          <listitem>
+            <para>Currency or Exchange Rate variations / charges</para>
+          </listitem>
+
+          <listitem>
+            <para>Any outstanding</para>
+          </listitem>
+        </itemizedlist>
+
+        <note>
+          <para>The differences will occur because of timing differences of
+          when and how transactions are recorded. Examples are as
+          follows:</para>
+
+          <orderedlist>
+            <listitem>
+              <para>Bank charges are known to the bank first and only once
+              they have applied the charge to the bank account can the company
+              duplicate the transaction in the GL to make the balance
+              reconcile.</para>
+            </listitem>
+
+            <listitem>
+              <para>A customer cheque payment may be recorded in the GL first
+              before it is paid into the bank account</para>
+            </listitem>
+          </orderedlist>
+        </note>
+
+        <sect3>
+          <title>How do I create a Bank Reconciliation?</title>
+
+          <para>The bank reconciliation process is made up of 3 steps.</para>
+
+          <orderedlist>
+            <listitem>
+              <para>Creating an account reconciliation group</para>
+            </listitem>
+
+            <listitem>
+              <para>Assigning transactions to the reconciliation</para>
+            </listitem>
+
+            <listitem>
+              <para>Validating the figures and confirming the
+              reconciliation</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I create an account reconciliation group for Bank
+          Reconciliation?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Go to the Financial Account 'Reconciliation' sub menu for
+              the bank account to be reconciled</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Create New Financial Account Reconciliations'
+              button</para>
+            </listitem>
+
+            <listitem>
+              <para>Complete the details (eg name, description, organisation
+              and opening balance) required on the 'Add New Financial Account
+              Reconciliations' screen and press the 'Create' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The new account reconciliation group is created and may be
+              used to assign transactions to</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I locate transactions that have not been assigned to a
+          Bank Reconciliation?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Go to the Financial Account 'Transactions' sub menu of the
+              bank account to be reconciled</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Find Transactions For Financial Account: XXXX' is
+              displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Use the dropdown box for 'GL Reconciliation Id' field to
+              select 'Not Assigned' and then press the 'Search' button</para>
+            </listitem>
+
+            <listitem>
+              <para>A list of transactions (deposits, withdrawals or
+              adjustments) that have not been reconciled will be displayed
+              (NOTE: If no transactions are displayed then there are no
+              transactions to reconcile)</para>
+            </listitem>
+
+            <listitem>
+              <para>Click on the 'check box' at the end of the transaction
+              line that corresponds to the entry that needs to be assigned
+              (NOTE:More than one transaction can be selected at a
+              time)</para>
+            </listitem>
+
+            <listitem>
+              <para>Above the 'check box' is the 'Assign to Reconciliation'
+              button and to the left of this is a dropdown box to select the
+              reconciliation that the transaction is to be assigned to.</para>
+            </listitem>
+
+            <listitem>
+              <para>Using the drop down box select the reconciliation required
+              and press the 'Assign to Reconciliation' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The transaction is removed from the 'Not Assigned' status
+              and added to the specified reconciliation group</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I validate and confirm the Bank
+          Reconciliation?</title>
+
+          <para>Validation can be done for individual transactions or for the
+          complete account reconciliation group. The user controls this by the
+          search criteria entered on this screen.</para>
+
+          <orderedlist>
+            <listitem>
+              <para>Go to the 'Transactions' sub menu for the bank account and
+              press the 'Bank Reconciliation' button</para>
+            </listitem>
+
+            <listitem>
+              <para>Select the 'GL Reconciliation Id' that is to be
+              reconciled</para>
+            </listitem>
+
+            <listitem>
+              <para>Click on the 'Select All' check box on the right hand side
+              of the screen. (NOTE: All transactions in this group will be
+              reconciled)</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Reconcile' button above the 'Select All' check
+              box</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I view a Bank Reconciliation?</title>
+
+          <para>Once all the transactions in a reconciliation group have been
+          reconciled then the status of the group is changed to 'Reconciled'.
+          This means that no new transactions can be added to the is group and
+          the reconciled balance is fixed.</para>
+
+          <orderedlist>
+            <listitem>
+              <para>Go to the 'Reconciliation' sub menu for the bank
+              account</para>
+            </listitem>
+
+            <listitem>
+              <para>A list of all the bank reconciliation groups are displayed
+              with details of the status (eg Created or Reconciled)</para>
+            </listitem>
+
+            <listitem>
+              <para>Click on the 'GL Reconciliation Id' of the group and the
+              details are displayed</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I cancel a Bank Reconciliation?</title>
+
+          <para>If a bank reconciliation needs to be cancelled due to a
+          mistake or error then the bank reconciliation can be cancelled as
+          long as it has not been fully reconciled (i.e. the status of the
+          reconciliation has not been changed to 'Reconciled'. This will allow
+          you to start the bank reconcilation again.</para>
+
+          <orderedlist>
+            <listitem>
+              <para>Go to the 'Reconciliation' sub menu for the bank
+              account</para>
+            </listitem>
+
+            <listitem>
+              <para>A list of all the bank reconciliation groups are displayed
+              (NOTE: If no transactions are associated with a reconciliation
+              group then it will not be displayed here)</para>
+            </listitem>
+
+            <listitem>
+              <para>Click on the 'Cancel' button associated with the 'GL
+              Reconciliation Id' of the group that needs to be
+              cancelled</para>
+            </listitem>
+
+            <listitem>
+              <para>All transactions will be removed from the reconciliation
+              group and their status will be changed back to 'Not Assigned' so
+              that they can be re-assigned to this or any other
+              reconciliation.</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>Edit Financial Account Transactions</title>
+
+        <para><emphasis role="bold">How do I add transactions to a financial
+        account?</emphasis></para>
+
+        <para>An example of how to bring in an opening balance is shown
+        below:</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Navigate to the the Financial Account Transactions sub
+            menu</para>
+          </listitem>
+
+          <listitem>
+            <para>Select 'Adjustment' in the Fin Account Trans Type Id
+            field</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Party Id' field blank</para>
+          </listitem>
+
+          <listitem>
+            <para>Fill in the 'Transaction Date' field</para>
+          </listitem>
+
+          <listitem>
+            <para>Fill in the 'Entry Date' field<note>
+                <para>CHECK: This could be useful in identifying transactions
+                to a greater level of detail....</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Fill in the 'Amount' field with the transaction amount (Eg.
+            In our case this is the opening balance such as 353.88 - dont
+            think we need the $ sign)</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Payment Id' field blank</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Order Id' field blank</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Order Item Seq Id' field blank</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Reason Enum Id' field blank<note>
+                <para>CHECK: This could be useful in identifying transactions
+                to a greater level of detail....</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Fill in the 'Comments' field (Eg: Opening Balance from XYZ
+            Statement)</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Add' button and the transaction will be displayed
+            at the bottom of the screen</para>
+          </listitem>
+        </orderedlist>
+
+        <note>
+          <para>When you now view the Financial Account detail the 'Actual
+          Balance' and 'Available Balance' fields will show the entered
+          opening balance (eg 353.88)</para>
+        </note>
+
+        <para><emphasis role="bold">Other ways to add transactions to a
+        financial account?</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>By selecting financial account as a payment method for a
+            customer</para>
+          </listitem>
+
+          <listitem>
+            <para>By selecting financial account as a refund method for a
+            customer</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Edit Financial Account Roles</title>
+
+      <para>The Financial Account Roles sub menu screen allows you specify a
+      party and link them to a role for a particular financial account.</para>
+
+      <para>It can be used to add party roles eg 'Approver' or 'Administrator'
+      for credit limits or updates to the account. If an account belongs to a
+      company then you may want to add a person as a 'Contact' for dealing
+      with the account.</para>
+
+      <para>The roles can also be time bound. This means that you can specify
+      a start and end date for the party role.</para>
+
+      <sect2>
+        <title>How do I add a Party Role to a Financial Account?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Select the 'Roles' sub menu for the Financial Account</para>
+          </listitem>
+
+          <listitem>
+            <para>Fill in the Party Id field by using the field lookup tool or
+            by directly entering the party id (eg flexadmin)</para>
+          </listitem>
+
+          <listitem>
+            <para>Select the role from the drop down list for the Role Type Id
+            field (eg administrator)</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the From Date field</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter if the Thru Date field (optional)</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Add' button</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Create / Edit Financial Account</title>
+
+      <para>This screen allows the user to create a new financial account or
+      to edit an existing one.</para>
+
+      <para>The 'Financial Account' submenu is the first of four submenus used
+      in the creation or update of a Financial Account. On the creation or
+      update of a Financial Account it is the default screen that is
+      displayed.</para>
+
+      <para>It can be used for updating the basic details of a Financial
+      account such as:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Type of Account (eg Deposit, Investment, Gift
+          Certificate)</para>
+        </listitem>
+
+        <listitem>
+          <para>Account Status (Active, Frozen, Cancel, etc)</para>
+        </listitem>
+
+        <listitem>
+          <para>Account Name and Code</para>
+        </listitem>
+
+        <listitem>
+          <para>Currency</para>
+        </listitem>
+
+        <listitem>
+          <para>Owner Party ID</para>
+        </listitem>
+
+        <listitem>
+          <para>Default GL Account for Posting</para>
+        </listitem>
+
+        <listitem>
+          <para>Replenishment Level</para>
+        </listitem>
+      </itemizedlist>
+
+      <sect2>
+        <title>How do I create a new Financial Account?</title>
+
+        <para>Select the 'Create New Financial Account' button from the 'Find
+        Financial Accounts' screen</para>
+
+        <orderedlist>
+          <listitem>
+            <para>The 'Create/Update Financial Account' screen is
+            displayed.</para>
+          </listitem>
+
+          <listitem>
+            <para>Keep the default entry of 'Deposit Account' for the Fin
+            Account Type field</para>
+          </listitem>
+
+          <listitem>
+            <para>Keep the default entry of 'Active' for the status
+            field</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter a description (eg ABC Customer Prepaid Account) for
+            the 'Fin Account Name' field</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the Fin Account Pin field blank<note>
+                <para>CHECK: I think this is only used in creation of Gift
+                Cards and Certificates..)</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the Fin Account Code field blank<note>
+                <para>CHECK: I think this is only used in the creation of Gift
+                Cards and Certificates...</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>The currency field will be the default currency of Company
+            (eg USD). If this account is to be in another currency (eg EUR)
+            then select it from the drop down list.</para>
+          </listitem>
+
+          <listitem>
+            <para>Set the Organization Party ID field to be 'Company'</para>
+          </listitem>
+
+          <listitem>
+            <para>Fill in the Owner Party Id field with the party id of the
+            customer who has the Financial Account (eg DemoCustomer or
+            DemoCustCompany)</para>
+          </listitem>
+
+          <listitem>
+            <para>Fill in the 'Post to Gl Account field' to post the
+            transactions for this financial account to post to a specific GL
+            Account</para>
+          </listitem>
+
+          <listitem>
+            <para>Select the current date from the calendar to fill in the
+            'From date' field<note>
+                <para>It can be left blank and still appears to work</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Thru date' field blank <note>
+                <para>CHECK: I think this could be used to close or stop the
+                use of an account ..</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the default of 'Is Refundable' as 'Y' <note>
+                <para>CHECK: I think this will allow money to be refunded to
+                this account - eg if you have a return or credit for the
+                customer</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Replenish Payment ID' blank<note>
+                <para>CHECK: Not sure what this is - maybe to automatically
+                replenish account if it gets to a certain limit???)Leave the
+                'Replenish Level' blank (NOTE TO CHECK: Not sure what this is
+                but probably linked to Replenish Payment ID where you set the
+                limit - eg $100)</para>
+              </note></para>
+          </listitem>
+        </orderedlist>
+
+        <para>Press the 'Create' button and message appears saying that the
+        account was successfully created</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I update an existing Financial Account?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Press the 'Search' button on the Financial Account main
+            screen</para>
+          </listitem>
+
+          <listitem>
+            <para>A list of all existing Financial Accounts will be
+            displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Create/Update Financial' screen is displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Update the details of the financial account</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Update' button</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Find Financial Accounts</title>
+
+      <para>This screen is used to locate existing financial accounts that
+      have been created.</para>
+
+      <para>It also includes the option to use the 'Advanced Search' button to
+      display additional fields that can be used to locate a specific
+      financial account.</para>
+
+      <para>New Financial Accounts can be created using the 'Create New
+      Financial Account' button.</para>
+
+      <sect2>
+        <title>How do locate an existing Financial Account?</title>
+
+        <para>Press the 'Search' button</para>
+
+        <para>A list of all existing Financial Accounts will be
+        displayed.</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I delete an existing Financial Account?</title>
+
+        <para>Press the 'Search' button on the Financial Account main
+        screen</para>
+
+        <para>A list of all existing Financial Accounts will be
+        displayed</para>
+
+        <para>Press the 'Delete' button next to the Financial Account that
+        needs to be deleted.</para>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Help protlet List Bank Account</title>
+
+      <para>The default display is a list of financial accounts that have the
+      type 'bank account'. A company will have at least one main bank account
+      that will be used to accept payments from customers or to generate
+      payments to suppliers. The financial account will mirror the
+      transactions appearing on a bank statement so that they can be
+      reconciled with the true bank statement when it arrives.</para>
+
+      <para>Click on the bank account to display further information.</para>
+
+      <sect2>
+        <title>How do I remove a bank account?</title>
+
+        <para>Press the 'Delete' button next to the account that needs to be
+        deleted.</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I remove a bank account?</title>
+
+        <para>Press the 'Delete' button next to the account that needs to be
+        deleted.</para>
+      </sect2>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="accounting_FindTaxAuthority">
+    <title>Tax Authorities</title>
+
+    <para>A tax authority is legal body usually the state (country) that
+    imposes a financial levy on business transactions.</para>
+
+    <para>In OFBiz tax authorities are used to calculate where business or
+    related taxes are due.</para>
+
+    <para>Tax setup is very important as it links into the calculated price
+    that you can charge your customers and also flows through into any related
+    legal documents that are generated (eg Sales Order, Sales Invoice,
+    Purchase Order etc).</para>
+
+    <para>Each country or region will have specific rules regarding what
+    should or should not be taxed. There will also be very strict regulations
+    on how taxable transactions should be recorded and tracked in the general
+    ledger or chart of accounts.</para>
+
+    <para>Tax authority setup allows configuration of the following :</para>
+
+    <itemizedlist>
+      <listitem>
+        <para>Income tax</para>
+      </listitem>
+
+      <listitem>
+        <para>Value Added Tax (VAT) / Goods and Services Tax (GST)</para>
+      </listitem>
+
+      <listitem>
+        <para>Import / Export tax /Custom and Excise Duty</para>
+      </listitem>
+
+      <listitem>
+        <para>State, City or County taxes</para>
+      </listitem>
+    </itemizedlist>
+  </chapter>
+
+  <chapter xml:id="accounting_FindAgreement">
+    <title>Agreements</title>
+
+    <sect1>
+      <title>Aggreements</title>
+
+      <para>An agreement is a way of recording a business arrangements or
+      contract that your business makes with other companies or individuals.
+      Common examples include Payment Terms (where you allow a customer up to
+      30 days to pay you) or Prompt Payment Discounts (where you offer a
+      reduction on the amount owing if your customer pays you before a certain
+      date)</para>
+
+      <para>It can be used for the following:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Defining Payment Terms for Customers or Suppliers</para>
+        </listitem>
+
+        <listitem>
+          <para>Defining Sales Commissions</para>
+        </listitem>
+
+        <listitem>
+          <para>Setting up Prompt Payment Discounts</para>
+        </listitem>
+
+        <listitem>
+          <para>Setting up Price Lists (NOTE TO DO: Need to investigate how
+          this logic overlaps with PRICE RULES in Catalog Manager)</para>
+        </listitem>
+
+        <listitem>
+          <para>Defining Late Fee Penalties</para>
+        </listitem>
+
+        <listitem>
+          <para>Defining preferred freight carriers or specific codes to be
+          used</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1>
+      <title>Edit Agreements Roles</title>
+
+      <para>This screen is used to assign a party roles for an
+      agreement.</para>
+
+      <sect2>
+        <title>How do I add a party role to an agreement?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Use the lookup to select the 'Party Id'</para>
+          </listitem>
+
+          <listitem>
+            <para>Use the drop down box to select the 'Party Role Id'</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Add' button (NOTE: If the party does not have
+            this role associated with them then an error will be
+            displayed)</para>
+          </listitem>
+
+          <listitem>
+            <para>The new entry will be displayed in the lower part of the
+            screen</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I update a party role for an agreement?</title>
+
+        <para>Party roles can only be added and deleted. They cannot be
+        updated.</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I delete a party role from an agreement?</title>
+
+        <para>Press the 'Remove' button for the entry that needs to be
+        deleted.</para>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Agreement Work Effort</title>
+
+      <para>This screen is used to link a work effort to the whole agreement
+      or an individual agreement item.</para>
+
+      <sect2>
+        <title>How do I add a work effort to an agreement?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Use the drop down box to select the 'Agreement Item Seq
+            Id'</para>
+          </listitem>
+
+          <listitem>
+            <para>Use the lookup to select the 'Workeffort Id'</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Add' button</para>
+          </listitem>
+
+          <listitem>
+            <para>The new entry is displayed in the lower part of the
+            screen</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I update a work effort for an agreement?</title>
+
+        <para>Work efforts can only be added or deleted. They cannot be
+        updated</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I delete a work effort from an agreement?</title>
+
+        <para>Press the 'Delete' button for the entry that needs to be
+        deleted</para>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Agreement Items</title>
+
+      <para>This section describes the screens that manage different agreement
+      items.</para>
+
+      <sect2>
+        <title>Edit Agreement Geo</title>
+
+        <para>This screen is used to create a geographical location for an
+        agreement item.<note>
+            <para>A new entry can be created or removed but not
+            updated.</para>
+          </note></para>
+      </sect2>
+
+      <sect2>
+        <title>Edit Agreement Item Party</title>
+
+        <para>This screen is used to add or update a party linked to an
+        agreement item. This could be useful for storing specific contact
+        names associated with an agreement item.</para>
+
+        <sect3>
+          <title>How do I update a party for an agreement item?</title>
+
+          <para>Parties for an agreement item cannot be updated. They can only
+          be added or removed.</para>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>Edit Agreement Item Product</title>
+
+        <para>This screen is used to create or update a product entry for an
+        agreement item.</para>
+      </sect2>
+
+      <sect2>
+        <title>Edit Agreement Item Supplier Product</title>
+
+        <para>This screen is used to create or update a product entry for a
+        supplier agreement item. Any updates made in this screen can also be
+        viewed in Catalog Manager for the product under the product
+        'Suppliers' and 'Agreements' tabs.</para>
+      </sect2>
+
+      <sect2>
+        <title>Edit Agreement Item</title>
+
+        <para>This screen allows specific items to be added to agreement.
+        Currently these are limited to the following:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Pricing</para>
+          </listitem>
+
+          <listitem>
+            <para>Commission Rate</para>
+          </listitem>
+
+          <listitem>
+            <para>Sub-Agreement</para>
+          </listitem>
+
+          <listitem>
+            <para>Exhibit</para>
+          </listitem>
+
+          <listitem>
+            <para>Section</para>
+          </listitem>
+        </itemizedlist>
+
+        <sect3>
+          <title>How do I create an agreement item?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Press the 'Create Agreement Item' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Edit Agreement Item' screen is displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Select the 'Agreement Item Type Id' from the drop down
+              box</para>
+            </listitem>
+
+            <listitem>
+              <para>Use the drop down box to select the 'Currency' for the
+              Agreement Item</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter any 'Agreement Text' if required</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter path for 'Agreement Image' if required</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Submit' button</para>
+            </listitem>
+
+            <listitem>
+              <para>A new sub menu will be displayed containing
+              'Promotions','Terms','Products','Party' and 'Geo' for additional
+              details that can be setup for the agreement item</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I edit an agreement item?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Select the agreement item to be updated by clicking on the
+              Agreement Item Id</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Edit Agreement Item' screen is displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Update the fields required (NOTE: Additional details can
+              be updated by selecting the Promotions, Terms, Product, Party or
+              Geo sub menus)</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>Edit Agreement Item Term</title>
+
+        <para>This screen is used to create or update the terms for an
+        agreement item.</para>
+      </sect2>
+
+      <sect2>
+        <title>List Agreement Geo</title>
+
+        <para>This screen is used to display a list of the geographical
+        locations that are valid for the agreement item.</para>
+
+        <sect3>
+          <title>How do I create a new geographical location for an agreement
+          item?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Press the 'New' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Edit Agreement Geographical Application' screen is
+              displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Use the drop down box to select the 'Geo Id'</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Submit' button</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I delete a geographical location for an agreement
+          item?</title>
+
+          <para>Press the 'Delete' button for the entry that needs to be
+          deleted</para>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>Agreement Items Parties</title>
+
+        <para>This screen is used to display any parties that have been linked
+        to this agreement item.</para>
+
+        <sect3>
+          <title>How do I create a party for an agreement item?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Press the 'New' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Edit Agreement Item Party' screen is displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Manually enter or use the lookup to select the 'Party
+              Id'</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Submit' button</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I remove a party for an agreement item?</title>
+
+          <para>Press the 'Delete' button for the entry that needs to be
+          deleted.</para>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>Agreement Item Products</title>
+
+        <para>This screen is used to link a specific product or products to an
+        agreement. This can be useful for restricting a discount or product
+        pricing to a particular product (or range of products) for a specific
+        customer.</para>
+
+        <sect3>
+          <title>How do I add a product to an agreement item?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Press the 'New Product' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Edit Agreement Item Product' screen is
+              displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Manually enter or use the lookup to select the 'Product
+              Id'</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter the 'Price' to be associated to the product for this
+              agreement item</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Submit' button</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I update a product linked to an agreement
+          item?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Select the product required by clicking on the 'Product
+              Id'</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Edit Agreement Item Product' screen is
+              displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Update the 'Price' for the product (NOTE: Only product
+              price is available for update)</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Submit' button</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I delete a product from an agreement item?</title>
+
+          <para>Press the 'Remove' button on the entry that needs to be
+          deleted</para>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>List Agreement Item Supplier Products</title>
+
+        <para>This screen is used to link a specific product (or range of
+        products) to an agreement. This can be useful for restricting a
+        discount or product pricing to a product (or range of products) for a
+        particular supplier.</para>
+
+        <note>
+          <para>Products created here will be linked to the product and can be
+          view using Catalog Manager. Entries can be viewed under the Product
+          'Suppliers' and 'Agreements' tabs.</para>
+        </note>
+
+        <sect3>
+          <title>How do I add a product to an agreement item?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Press the 'New Product' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Edit Agreement Item Product' screen is
+              displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Manually enter or use the lookup to select the 'Product
+              Id'</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter the 'Available From Date'</para>
+            </listitem>
+
+            <listitem>
+              <para>Leave the 'Thru Date' blank</para>
+            </listitem>
+
+            <listitem>
+              <para>Using the drop down box select the 'Supplier Order Pref
+              Id'</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter the 'Last Price'</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter 'Supplier Product Id'</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter any other details as required or leave blank</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Submit' button</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I update a product linked to an agreement
+          item?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Select the product required by clicking on the 'Product
+              Id'</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Edit Agreement Item Product' screen is
+              displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Update the details as required</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Submit' button</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I delete a product from an agreement item?</title>
+
+          <para>Press the 'Remove' button on the entry that needs to be
+          deleted</para>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>Agreements Item Terms</title>
+
+        <para>This screen is used to enter or maintain terms that are specific
+        to an agreement item. The terms available are the same as those found
+        under the 'Agreement Terms' tab and any related terms will be
+        displayed both here and under the 'Agreement Items' tab .</para>
+
+        <sect3>
+          <title>How do I create a term for an agreement item?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Press the 'Create Term' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Edit Agreement Item Term' screen is displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter the term details required</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Submit' button</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I update a term for an agreement item?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Select the term for the agreement item by clicking on the
+              term id</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Edit Agreement Item Term' screen is displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Update the details required</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Submit' button</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I delete a term for an agreement item?</title>
+
+          <para>Press the 'Remove' button on the term entry that needs to be
+          deleted.</para>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>List Agreement Items</title>
+
+        <para>This screen is used to display a list of items that have been
+        created for an agreement.</para>
+      </sect2>
+
+      <sect2>
+        <title>Agreements Item Promotions</title>
+
+        <para>This screen is used to enter or maintain any promotions that are
+        associated with the Agreement Item. This can be useful if you want to
+        limit where a particular promotion is applied. Promotions are setup in
+        Catalog Manager and can be selected here.</para>
+
+        <sect3>
+          <title>How do I add a promotion to an agreement item?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Press the 'Add New Promotion' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Edit Agreement Promo Applications' screen is
+              displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Select the 'Product Promo Id' from the drop down
+              box</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter the 'From Date'</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter the 'Thru Date' if required (NOTE:This can be left
+              blank)</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter the 'Sequence Num' if required</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Submit' button</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I edit an existing promotion for an agreement
+          item?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Select the agreement item promotion by clicking on on the
+              promotion id</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Edit Agreement Promo Applications' screen is
+              displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Update the details required</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Submit' button</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I delete a promotion from an agreement item?</title>
+
+          <para>Press the 'Remove' button on the entry that needs to be
+          deleted.</para>
+        </sect3>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Edit Agreement Terms</title>
+
+      <para>Agreement Terms are the rules that make up the agreement.
+      Agreements may have a one or more terms.</para>
+
+      <para>Examples of agreement terms from a sales and purchase viewpoint
+      include the following:<itemizedlist>
+          <listitem>
+            <para>Payment due within a certain timeframe (eg 30 days)</para>
+          </listitem>
+
+          <listitem>
+            <para>Discounts for early payment</para>
+          </listitem>
+
+          <listitem>
+            <para>Specifying Late fee penalties</para>
+          </listitem>
+
+          <listitem>
+            <para>Purchasing agreements</para>
+          </listitem>
+
+          <listitem>
+            <para>Exclusive Relationship</para>
+          </listitem>
+        </itemizedlist><note>
+          <para>Agreements can also be specified for Employment, Legal, Non
+          Compete etc.</para>
+        </note></para>
+
+      <para>Agreement terms are configured by linking them to the Invoice Item
+      Type.</para>
+
+      <note>
+        <para>The drop down box for 'Invoice Item Type' contains what appears
+        to be duplicates for items such as 'Invoice Fee', 'Invoice Discount',
+        'Invoice Finished Good Item' etc. These are NOT duplicates one of
+        these entries refers to the Sales Invoice and the other refers to the
+        Purchase Invoice. As the descriptions are exactly the same it is
+        impossible to know which refers to which so needs to be done using
+        trial and error</para>
+      </note>
+
+      <sect2>
+        <title>How do I add a payment term for 30 days?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Select 'Payment Net Days' from the 'Term Type Id' drop down
+            box</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter '30' in the 'Term Days' field</para>
+          </listitem>
+
+          <listitem>
+            <para>ress the 'Submit' button</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I add a discount term of 2% if paid within 10
+        days?</title>
+
+        <itemizedlist>
+          <listitem>
+            <para>Select 'Payment Discounted if paid with Specified Days' from
+            the 'Term Type Id' drop down box</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter '2' in the 'Term Value' field</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter '10' in the 'Term Days' field</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Submit' button</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I specify pricing in a specific currency only for this
+        customer or supplier?</title>
+
+        <para>This is done using the 'Agreement Items' sub menu</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I delete a payment term?</title>
+
+        <itemizedlist>
+          <listitem>
+            <para>Locate the payment term required</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Remove'on the entry that needs to be
+            removed</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Edit Agreement</title>
+
+      <para>The 'Agreement' sub menu is used to enter the basic details
+      required for setting up a new agreement or editing an existing
+      one.</para>
+
+      <para>It can be used to create or update the following details for an
+      Agreement:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>The parties the agreement is between and their roles</para>
+        </listitem>
+
+        <listitem>
+          <para>The agreement type (eg Sales, Purchase, Commission, Employment
+          etc)</para>
+        </listitem>
+
+        <listitem>
+          <para>Specific products</para>
+        </listitem>
+
+        <listitem>
+          <para>Start and End Date</para>
+        </listitem>
+
+        <listitem>
+          <para>Description</para>
+        </listitem>
+      </itemizedlist>
+
+      <sect2>
+        <title>How do I edit an agreement?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Find the agreement that needs to be amended</para>
+          </listitem>
+
+          <listitem>
+            <para>Click on Agreement Id</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Edit Agreement' screen will be displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Amend the details required and press the 'Submit' button
+            (NOTE: Additional agreement details can be updated via the other
+            tabs eg Agreement Terms, Agreement Roles, Agreement Items and
+            Agreement Work Effort Appls)</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I copy an existing agreement?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Find the agreement that needs to be copied</para>
+          </listitem>
+
+          <listitem>
+            <para>Click on the Agreement Id</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Edit Agreement' screen will be displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>At the bottom of the screen press the 'Copy' in the 'Copy
+            Agreement' window (NOTE: The default tick boxes will copy the
+            agreement terms, products and party. If not required then click on
+            the boxes to stop them being copied)</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Find Agreements</title>
+
+      <para>The default screen is for the Agreements tab is 'Find Agreements'.
+      It is used to locate existing agreements that have been created. The
+      user has the option to:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>use the 'Find' button to locate an existing agreement
+          or</para>
+        </listitem>
+
+        <listitem>
+          <para>create a new one by clicking on the 'Create Agreement'
+          button.</para>
+        </listitem>
+      </itemizedlist>
+
+      <sect2>
+        <title>How do I locate an existing agreement?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Enter search option details if known</para>
+          </listitem>
+
+          <listitem>
+            <para>Press the 'Find' button</para>
+          </listitem>
+
+          <listitem>
+            <para>A list of existing agreements will be displayed</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I create a new agreement?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Press the 'Create Agreement' button</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Edit Agreement' screen is displayed</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the details required and press the 'Submit'
+            button</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I cancel an agreement?</title>
+
+        <orderedlist>
+          <listitem>
+            <para>Locate the agreement required</para>
+          </listitem>
+        </orderedlist>
+
+        <orderedlist>
+          <listitem>
+            <para>Press the 'Cancel' button on the agreement entry that needs
+            to be cancelled</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="accounting_ListFixedAssets">
+    <title>Fixed Assets</title>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="accounting_FindGlobalGlAccount">
+    <title>Global GL Settings</title>
+
+    <para>The Global GL Settings tab is where a limited global or 'master'
+    accounting configuration can be done. These include:</para>
+
+    <itemizedlist>
+      <listitem>
+        <para>Reviewing the chart of account structure or hierarchy (Navigate
+        Accounts)</para>
+      </listitem>
+
+      <listitem>
+        <para>Adding new accounts</para>
+      </listitem>
+
+      <listitem>
+        <para>Updating an existing account (eg. change the description, change
+        the type of account, change the parent account or hierarchy)</para>
+      </listitem>
+
+      <listitem>
+        <para>Linking an account from the master chart to 'Company' or any
+        other of your company departments, subsidiaries or business
+        units</para>
+      </listitem>
+
+      <listitem>
+        <para>Creating new component costs for products</para>
+      </listitem>
+
+      <listitem>
+        <para>Setting default accounts for different types of payments</para>
+      </listitem>
+
+      <listitem>
+        <para>Setting default accounts for invoice line items</para>
+
+        <note>
+          <para>This includes all types eg: payroll, commission, purchase,
+          return, sales etc</para>
+        </note>
+      </listitem>
+    </itemizedlist>
+
+    <note>
+      <para>Some of the configuration specified here can be over-ridden using
+      the 'Organization GL Settings' tab</para>
+    </note>
+
+    <sect1>
+      <title>Cost Centers</title>
+
+      <para/>
+    </sect1>
+
+    <sect1>
+      <title>Find GL Account Category</title>
+
+      <para/>
+    </sect1>
+
+    <sect1>
+      <title>View Foreign Exchange Rates</title>
+
+      <para>Foreign exchange rates are used to convert from one currency to
+      another. Usually a business will want to work in one main currency (eg
+      GBP) but will allow transactions in other currencies (eg EUR, USD).
+      These currencies will need to be converted to the main currency at some
+      point in order to generate financial reports (eg Balance Sheet or Income
+      Statement) and most importantly to adhere to tax authority
+      regulations.</para>
+
+      <para>OFBiz currently allows you to input to 3 different rates for the
+      same currency using the 'Purpose' field. With this you can specify
+      whether the conversion is to be used internally, externally or leave the
+      field blank. Also the start and end date for a conversion can be
+      specified beforehand.</para>
+
+      <sect2>
+        <title>How do I add a new foreign exchange rate?</title>
+
+        <para>To add a new rate for US Dollars (USD) to Euro (EUR)</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Using the drop down box on the 'From Currency' field, select
+            'American Dollar - USD'</para>
+          </listitem>
+
+          <listitem>
+            <para>Using the drop down box on the 'To Currency' field, select
+            'Euro - EUR'</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Purpose' field can be left blank or you can select
+            'Internal Conversion' or 'External Conversion' from the drop down
+            list</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the exchange rate in the 'Rate' field (eg
+            0.72883)</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter the 'From Date' (NOTE: If left blank then will default
+            to the current date and time)</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the 'Thru Date' blank</para>
+          </listitem>
+
+          <listitem>
+            <para>Click the 'Update Foreign Currency Rates' button</para>
+          </listitem>
+
+          <listitem>
+            <para>The new foreign exchange rate will be displayed</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2>
+        <title>How do I update an existing foreign exchange rate?</title>
+
+        <para>Existing foreign exchange rates cannot be updated - instead the
+        existing rate is expired and a new rate is created. Currently up to 3
+        different exchange rates can be created by using the 'Purpose' field
+        to distinguish them.</para>
+      </sect2>
+
+      <sect2>
+        <title>How do I delete a foreign exchange rate?</title>
+
+        <para>Foreign exchange rates cannot be deleted. Existing rates can be
+        expired by entering a new exchange rate for the same currency and
+        purpose.</para>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>View Rates</title>
+
+      <para/>
+    </sect1>
+
+    <sect1>
+      <title>Edit Invoice Item Type</title>
+
+      <para/>
+    </sect1>
+
+    <sect1>
+      <title>Edit Payment Method Type</title>
+
+      <para/>
+    </sect1>
+
+    <sect1>
+      <title>Edit Cost Calculations</title>
+
+      <para/>
+    </sect1>
+
+    <sect1>
+      <title>Edit Custom Time Period</title>
+
+      <para/>
+    </sect1>
+
+    <sect1>
+      <title>Find Global GL Account</title>
+
+      <para>The default screen is for the Global GL Settings tab is 'List
+      Accounts'. If the demo data has been loaded then the default screen
+      displays a list of the general ledger accounts that form the Global
+      Chart of Accounts template. All general ledger accounts must exist in
+      the global template before it can be assinged to be used at the
+      organisation level (eg Company) It is used to view or edit the details
+      of the general ledger accounts in the global template and there are
+      options to print or export the account details.</para>
+
+      <sect2>
+        <title>How do I view details for an account?</title>
+
+        <itemizedlist>
+          <listitem>
+            <para>Locate the account required</para>
+          </listitem>
+
+          <listitem>
+            <para>Click on account id</para>
+          </listitem>
+
+          <listitem>
+            <para>The account details will be displayed</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="accounting_ListCompanies">
+    <title>Organization GL Settings</title>
+
+    <para><emphasis role="bold">Available Internal
+    Organizations</emphasis></para>
+
+    <para>The default screen shows a list of Party Groups that have the role
+    of 'Internal Organization' associated with them. If you have installed the
+    demo data then the default company 'Company' as well as departments /
+    business units and regional subsidiaries will be displayed.</para>
+
+    <para>The list has two command buttons, Setup and Accounting.</para>
+
+    <sect1>
+      <title>Setup</title>
+
+      <para>In the Demo data the default Company is set up. To setup other
+      organizations:<orderedlist>
+          <listitem>
+            <para>In the Available Internal Organizations list clicke the
+            'Setup' button</para>
+          </listitem>
+
+          <listitem>
+            <para>The Accounting Preferences screen is displayed with defaults
+            copied from the Company record.</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter any changes that are required (eg Invoice Prefix,
+            Error Journal name - as you may want error transactions from
+            separate departments to be handled differently...)</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Add</para>
+          </listitem>
+        </orderedlist></para>
+
+      <para>The Setup menu includes options to manage:<itemizedlist>
+          <listitem>
+            <para>Accounting Preferences</para>
+          </listitem>
+
+          <listitem>
+            <para>Chart of Accounts</para>
+          </listitem>
+
+          <listitem>
+            <para>Journals</para>
+          </listitem>
+
+          <listitem>
+            <para>GL Account Defaults</para>
+          </listitem>
+
+          <listitem>
+            <para>Time Period</para>
+          </listitem>
+        </itemizedlist> The following sections discuss each of these
+      features.</para>
+
+      <sect2>
+        <title>Accounting Preferences</title>
+
+        <para>Accounting Preferences are a set of configuration details that
+        are related to a party. To appear on this screen the party must be
+        setup with the role of 'Internal Organisation'. This means that you
+        can add the internal organisation role to a party and they will be
+        added to this screen and then can be configured.</para>
+
+        <para>The master default party is 'Company' but preferences can also
+        be setup for internal departments as described in the section above.
+        Unless overridden then then all other parties appearing on this screen
+        will take their default setup from 'Company' <note>
+            <para>The majority of the configuration information displayed in
+            Accounting Preferences are taken from the Enumeration
+            entity.</para>
+          </note></para>
+
+        <para>It is used for setting specifying information related to the
+        accounting setup for a specific organisation or parties that exist
+        within an organisation such as business units, cost centres,
+        departments ,subsidiaries etc. Information that can be setup include
+        the following:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>The start date of the Time Periods and Fiscal or Accounting
+            Year (eg 1st April, 1st January, 1st June etc)</para>
+          </listitem>
+
+          <listitem>
+            <para>Tax Return Form<note>
+                <para>Need to check how important this is and where it is
+                used.......possibly some kind of reporting???</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>The method to be used for calculating Cost of Goods Sold
+            (COGS)</para>
+          </listitem>
+
+          <listitem>
+            <para>Base Currency - eg USD, GBP, EUR etc (NOTE: May have main
+            company in USD but a subsidiary in EUR etc)</para>
+          </listitem>
+
+          <listitem>
+            <para>Invoice prefix, numbering and sequencing (eg you may want
+            each business unit / subsidiary to have its own invoice numbering
+            or sequence etc)</para>
+          </listitem>
+
+          <listitem>
+            <para>Quote prefix, number and sequencing</para>
+          </listitem>
+
+          <listitem>
+            <para>Method to be used for refunds (eg cheque, direct bank
+            credit, voucher credit etc...)</para>
+          </listitem>
+
+          <listitem>
+            <para>Specify which journal will be used to store error
+            transactions</para>
+          </listitem>
+        </itemizedlist>
+
+        <note>
+          <para>Key things that are usually need to be amended include the
+          base currency for the company, fiscal year information and invoice
+          numbering prefix or sequencing.</para>
+        </note>
+      </sect2>
+
+      <sect2>
+        <title>About GL Account Defaults</title>
+
+        <para>The GL Account Defaults screens are are method to setup rules
+        that are used to translate business transactions into accounting
+        transactions. It currently is made up of 12 sub menus that can be used
+        to map various transaction type codes to a specific general ledger
+        account Accounting transactions are made up of a Debit Entry and a
+        Credit Entry. The GL Account defaults screens help map which accounts
+        are to be used to generate a each part of the transaction. This means
+        that certain mappings will be used to generate the Debit (or DR) entry
+        part of the transaction and others used to generate the Credit (or CR)
+        entry part of the transaction. <note>
+            <para>Many of the accounting transactions are generated
+            'automatically' (or in the background) using the the accounting
+            services SECAS / EECAS.</para>
+          </note></para>
+
+        <para>The GL Account Type is used to specify the default account that
+        certain transactions (eg Accounts Payable, Accounts Receivable, etc)
+        are posted to. An accounting transaction (or journal entry) is made up
+        of two parts - a Debit Entry and a Credit Entry that balance each
+        other. The GL Account Type is used to translate one side of the
+        journal entry.</para>
+
+        <para>GL Account Types are stored in Entity GLAccountType which can be
+        viewed via Entity Data Maintenance in the Webtools menu. There are
+        currently 57 different GL Account Types that are part of the OFBiz
+        demo data but only 19 of these are setup as mappings How the GL
+        Account Type is used is best shown by an example. A very simple
+        description of an online Sales Order Process could be as
+        follows:</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Customer Orders a Product (and Creates a Sales Order)</para>
+          </listitem>
+
+          <listitem>
+            <para>Customer Pays for Product (via Credit Card, Internet Banking
+            etc)</para>
+          </listitem>
+
+          <listitem>
+            <para>Vendor confirms Payment and Dispatches the Product to the
+            Customer</para>
+          </listitem>
+        </orderedlist>
+
+        <para>Let's focus on the first part step of 3 in more detail.</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>The vendor has checked their bank statement and seen that
+            the customer has paid</para>
+          </listitem>
+
+          <listitem>
+            <para>In OFBiz Order Manager they will then look up the relevant
+            Sales Order and then click the 'Receive Payment' button to log the
+            payment in the system</para>
+          </listitem>
+
+          <listitem>
+            <para>The 'Receive Payment' button is a trigger for an 'automatic'
+            accounting transaction</para>
+          </listitem>
+
+          <listitem>
+            <para>The transaction type that is triggered is called 'Incoming
+            Payment'</para>
+          </listitem>
+
+          <listitem>
+            <para>The accounting entries generated are: DR 112000 Undeposited
+            Funds , CR 120000 Accounts Receivable</para>
+          </listitem>
+        </itemizedlist>
+
+        <para>The CR (or Credit) entry for the transaction is created by the
+        GL Acccount Type mapping for 'Accounts Receivable' (which by using the
+        demo data default will go the 120000 Accounts Receivable)</para>
+
+        <para>The DR (or Debit) entry for the transaction is created by a
+        different GL Account default, the Payment Method Id / GL Account Id
+        mapping (eg Cash is setup as 112000 Undeposited Receipts)</para>
+
+        <sect3>
+          <title>How do I create a new GL Account Type default
+          mapping?</title>
+
+          <para>There are currently 57 different GL Account Types that come as
+          part of the demo data with OFBiz. This should be enough to manage
+          the vast majority of business transactions. These instructions show
+          how to add a mapping using the default data</para>
+
+          <orderedlist>
+            <listitem>
+              <para>Select the 'GL Account Type Id' from the drop down
+              list</para>
+            </listitem>
+
+            <listitem>
+              <para>Select the 'GL Account' to map it to from the drop down
+              list</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Save' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The new GL Account Type mapping is displayed in the list
+              at the bottom of the screen</para>
+            </listitem>
+          </orderedlist>
+
+          <note>
+            <para>If none of the demo data GL Account Types are sufficient
+            then new ones can be added using Entity Data Maintenance and the
+            entity 'GLAccountType' in the Webtools menu.</para>
+          </note>
+        </sect3>
+
+        <sect3>
+          <title>How do I update a GL Account Type default mapping?</title>
+
+          <para>A GL Account Type mapping cannot be updated directly but needs
+          to be removed then re-created. If you try to update an existing
+          entry you will get an 'duplicate key' error message.</para>
+
+          <orderedlist>
+            <listitem>
+              <para>Press the 'Remove' button next to the entry that you want
+              to update</para>
+            </listitem>
+
+            <listitem>
+              <para>The entry is removed from the list of entries
+              displayed</para>
+            </listitem>
+
+            <listitem>
+              <para>Select the 'GL Account Type Id' from the drop down
+              list</para>
+            </listitem>
+
+            <listitem>
+              <para>Select the updated 'GL Account' to map it to from the drop
+              down list</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Save' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The new GL Account mapping is displayed in the list at the
+              bottom of the screen</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I delete a GL Account Type default mapping?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Press the 'Remove' button next to the entry that you want
+              to delete</para>
+            </listitem>
+
+            <listitem>
+              <para>The entry is removed from the list of entries
+              displayed</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>Gl Account Default Screens</title>
+
+        <para>There are thirteen sub-screens underGL Account Defaults. They
+        are discussed in the following sections.</para>
+
+        <sect3>
+          <title>Party GL Accounts</title>
+
+          <para>The Party / GL Account mapping allows the translation of
+          different account types (eg Accounts Receivable, Accounts Payable
+          etc) for a party to be mapped to a separate general ledger account.
+          The party role (eg Bill To Customer) is also used to define the
+          mapping even further. OFBiz demo data setup comes with no entries
+          here. It is used as a way of implementing subledger functionality in
+          OFBiz. Subledger functionality is where a higher level account can
+          be split into lower levels. In this case these lower levels can be
+          by party.</para>
+
+          <para>An example could be that a business may want to use the
+          general ledger to track the Accounts Receivable (AR) by customer so
+          the chart of account would be setup something like as follows:
+          120000 Accounts Receivable</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>120010 Accounts Receivable - Customer A</para>
+            </listitem>
+
+            <listitem>
+              <para>120020 Accounts Receiviable - Customer B</para>
+            </listitem>
+
+            <listitem>
+              <para>120030 Accounts Receivalbe - Customer C</para>
+            </listitem>
+          </itemizedlist>
+
+          <para>This has the main AR account is at the top of the hierarchy
+          and 3 sub accounts below it. Entries for Customers A, B and C would
+          be setup with a role of 'Bill From Customer' as this is a role
+          associated with the customer when the Sales Invoice is
+          generated.When a transaction matching the criteria is processed in
+          the system then these mappings will control where it is posted to.In
+          the case of Customer A any AR transactions with role 'Bill To
+          Customer' are posted to '120010' instead of the standard
+          '120000</para>
+
+          <sect4>
+            <title>How do I add a new Party / GL Account mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Enter or Lookup the party for the 'Party Id'
+                field</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the 'Role Type Id' from the drop down list<note>
+                    <para>Be careful that you select the correct role for the
+                    transactions you want to track......)</para>
+                  </note></para>
+              </listitem>
+
+              <listitem>
+                <para>Select the 'GL Account Type Id' from the drop down
+                list</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the 'GL Account Id' from the drop down
+                list</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Add' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The new entry will be displayed at the bottom of the
+                screen</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I update a Party / GL Account mapping?</title>
+
+            <para>Only the GL Account Id linked to the mapping can be
+            updated.</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Locate the Party / GL Account entry that needs to be
+                updated</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the new 'GL Account Id' from the drop down list
+                next to the entry</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Update' button next to the entry</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I remove a Party / GL Account mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Locate the Party / GL Account entry that needs to be
+                removed</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Delete' button next to the entry</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+        </sect3>
+
+        <sect3>
+          <title>Tax Authority GL Accounts</title>
+
+          <para>The Tax Authority / GL Account default is used to map
+          different tax authorities to different general ledger accounts. This
+          setup will affect one side of a journal entry only. <note>
+              <para>A tax authority is legal body usually the state (country)
+              that imposes a financial levy on business transactions.</para>
+            </note></para>
+
+          <para>Normal business rules require you will to keep track amounts
+          collected or paid to different tax authorities separately. This
+          mapping ensures that money collected or paid to various tax
+          authorities (eg through Sales Orders, Purchase Orders etc) can be
+          separated into specific accounts</para>
+
+          <para>The OFBiz demo data comes with 9 entries to show an example of
+          how this can be setup using the some of the US states as separate
+          tax authorities.</para>
+
+          <sect4>
+            <title>How do I add a Tax Authority / GL Account mapping?</title>
+
+            <para>Unlike the other GL Account defaults you cannot add a Tax
+            Authority / GL mapping through these screens. It needs to be done
+            via the 'GL Accounts' sub menu under the 'Tax Authorities' menu.
+            The method of how to add a mapping using the 'Tax Authorities' is
+            shown below.</para>
+
+            <orderedlist>
+              <listitem>
+                <para>From the Accounting Manager / Tax Authorities Menu press
+                the 'Edit' button next to the Tax Authority required</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the sub menu 'GL Accounts'</para>
+              </listitem>
+
+              <listitem>
+                <para>Enter or Lookup the party for the 'Organisation Party
+                Id' field (NOTE: Use 'Company' as default)</para>
+              </listitem>
+
+              <listitem>
+                <para>Enter or Lookup the GL Account to be mapped to</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Add' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The mapping will be displayed at the bottom of the
+                screen.</para>
+              </listitem>
+
+              <listitem>
+                <para>Return to the Tax Authority / GL Account default and
+                this new mapping will be shown in the list</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I update a Tax Authority / GL Account
+            mapping?</title>
+
+            <para>Only the GL Account Id linked to the mapping can be
+            updated.</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Locate the Tax Authority / GL Account entry that needs
+                to be updated</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the new 'GL Account Id' from the drop down list
+                next to the entry</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Update' button next to the entry</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I remove a Tax Authority / GL Account
+            mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Locate the Tax Authority / GL Account entry that needs
+                to be removed</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Delete' button next to the entry</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+        </sect3>
+
+        <sect3>
+          <title>Credit Card Type GL Accounts</title>
+
+          <para>The Credit Card Type / GL Account default is used to map
+          different types of credit card to different general ledger accounts.
+          <note>
+              <para>This setup will affect one side of a journal entry
+              only.</para>
+            </note></para>
+
+          <para>This type of mapping is useful if you need to track the
+          amounts to be collected from different credit card agents. The OFBiz
+          demo data comes with some setup here<note>
+              <para>The demo entries appear to be duplicated...has something
+              changed in ENUM for defining each credit card
+              type.....?????</para>
+            </note></para>
+
+          <para>Examples are as follows:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>American Express</para>
+            </listitem>
+
+            <listitem>
+              <para>Visa</para>
+            </listitem>
+
+            <listitem>
+              <para>Mastercard</para>
+            </listitem>
+
+            <listitem>
+              <para>Diners Club</para>
+            </listitem>
+          </itemizedlist>
+
+          <sect4>
+            <title>How do I add a Credit Card Type GL Account mapping?</title>
+
+            <para>There are 10 mappings that come as part of the OFBiz demo
+            data but they do appear to be duplicated for some reason.</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Select the 'Card Type' from the drop down list</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the updated 'GL Account Id' to map it to from the
+                drop down list</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Add' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The updated 'Credit Card Type / GL Account' mapping is
+                displayed in the list at the bottom of the screen <note>
+                    <para>Used 'Visa' as an example to update and the
+                    'CCT_VISA' was updated but the 'Visa' one wasnt. This is
+                    probably related to the duplication.</para>
+                  </note></para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I update a Credit Card Type GL Account
+            mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Select the 'Card Type' from the drop down list</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the updated 'GL Account Id' to map it to from the
+                drop down lis</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Add' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The updated 'Credit Card Type / GL Account' mapping is
+                displayed in the list at the bottom of the screen</para>
+              </listitem>
+            </orderedlist>
+
+            <note>
+              <para>Used 'Visa' as an example to update and the 'CCT_VISA' was
+              updated but the 'Visa' one wasnt. This is probably related to
+              the duplication.</para>
+            </note>
+          </sect4>
+
+          <sect4>
+            <title>How do I remove a Credit Card Type GL Account
+            mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Press the 'Remove' button next to the entry that you
+                want to delete</para>
+              </listitem>
+
+              <listitem>
+                <para>The entry is removed from the list of entries
+                displayed</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+        </sect3>
+
+        <sect3>
+          <title>Variance Reason GL Accounts</title>
+
+          <para>The Variance Reason / GL Account default is used for mapping
+          any stock differences to a particular general ledger account. If
+          there are variances in the number of products that are in stock then
+          this affects the value of inventory in the general ledger. By using
+          this GL default you can offset any differences in stock to the
+          relevant general ledger account.</para>
+
+          <para>The number of products (or items) in stock can vary. These
+          differences can be caused by numerous reasons. Some of these could
+          be as follows:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Products have been damaged</para>
+            </listitem>
+
+            <listitem>
+              <para>Products were lost or stolen</para>
+            </listitem>
+
+            <listitem>
+              <para>Products were found</para>
+            </listitem>
+
+            <listitem>
+              <para>Under or over supply of a Product from a Supplier (eg. You
+              have ordered 10 and 11 are delivered....)</para>
+            </listitem>
+
+            <listitem>
+              <para>Free samples or giveaways to potential clients <note>
+                  <para>These mappings are used in Catalog Manager when a
+                  manual inventory adjustment is done through the Inventory
+                  Item screens.</para>
+                </note></para>
+            </listitem>
+          </itemizedlist>
+
+          <sect4>
+            <title>How do I add a new Variance Reason / GL Account
+            mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Select the 'Variance Reason Id' from the drop down
+                list</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the 'GL Account Type Id' to map it to from the
+                drop down list</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Add' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The new 'Variance Reason / GL Account Type' mapping is
+                displayed in the list at the bottom of the screen</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I update a Variance Reason / GL Account
+            mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Select the 'Variance Reason Id' from the drop down
+                list</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the updated 'GL Account Type Id' to map it to
+                from the drop down list</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Add' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The updated 'Variance Reason / GL Account Type' mapping
+                is displayed in the list at the bottom of the screen</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I remove a Variance Reason / GL Account
+            mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Press the 'Remove' button next to the entry that you
+                want to delete</para>
+              </listitem>
+
+              <listitem>
+                <para>The entry is removed from the list of entries
+                displayed</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+        </sect3>
+
+        <sect3>
+          <title>Payment Method GL Account</title>
+
+          <para>The Payment Method GL Account Type Id is used to map the
+          different payment methods (eg Cash, Cheque etc) to a specific GL
+          Account Type Id. This will translate to one side of a GL entry
+          only.</para>
+
+          <para>A Payment Method is just a way to define the ways in which
+          payments can be made. Each payment method can be linked to a
+          different account in the general ledger. A main GL account used
+          would be the one that represents the Company bank account. In the
+          demo data mappings Electronic Funds Transfer, Company Account,
+          Financial Account are all linked to the Company bank account GL
+          account.</para>
+
+          <para>OFBiz demo data defines 15 different payment methods as
+          follows:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Cash</para>
+            </listitem>
+
+            <listitem>
+              <para>Certified Cheque</para>
+            </listitem>
+
+            <listitem>
+              <para>Company Account</para>
+            </listitem>
+
+            <listitem>
+              <para>Company Cheque</para>
+            </listitem>
+
+            <listitem>
+              <para>Electronic Funds Transfer<note>
+                  <para>CHECK: Problem with definition or terminology - is
+                  this a Direct Debit.... ?? A direct debit is controlled by
+                  the payee and an automatic payment via bank account is
+                  controlled by the payer)</para>
+                </note></para>
+            </listitem>
+
+            <listitem>
+              <para>Billing Account</para>
+            </listitem>
+
+            <listitem>
+              <para>Cash on Delivery (COD)</para>
+            </listitem>
+
+            <listitem>
+              <para>eBay</para>
+            </listitem>
+
+            <listitem>
+              <para>Offline Payment<note>
+                  <para>Is this ambiguous - since COD is an offline
+                  payment...</para>
+                </note></para>
+            </listitem>
+
+            <listitem>
+              <para>PayPal</para>
+            </listitem>
+
+            <listitem>
+              <para>WorldPay</para>
+            </listitem>
+
+            <listitem>
+              <para>Financial Account</para>
+            </listitem>
+
+            <listitem>
+              <para>Gift Certificate</para>
+            </listitem>
+
+            <listitem>
+              <para>Money Order</para>
+            </listitem>
+
+            <listitem>
+              <para>Personal Cheque</para>
+            </listitem>
+          </itemizedlist>
+
+          <note>
+            <para>A point to note is that these payment methods don't include
+            Credit Cards....(which I think is on purpose...). The majority of
+            these payment methods are linked to 'Undeposited Receipts' but an
+            additional accounting transaction may be needed once the funds
+            have cleared and are available in the Company bank account.</para>
+          </note>
+
+          <sect4>
+            <title>How do I add a new Payment Method Id / GL Account Id
+            mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Select the 'Payment Method Type' from the drop down
+                list</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the 'GL Account Id' to map it to from the drop
+                down list</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Save' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The new Payment Method Type / GL Account Type mapping is
+                displayed in the list at the bottom of the screen</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I update a Payment Method Id / GL Account Id
+            mapping?</title>
+
+            <para>A Payment Method Type / GL Account Type mapping cannot be
+            updated directly but needs to be removed then re-created. If you
+            try to update an existing entry you will get an 'duplicate key'
+            error message</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Press the 'Remove' button next to the entry that you
+                want to update</para>
+              </listitem>
+
+              <listitem>
+                <para>The entry is removed from the list of entries
+                displayed</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the 'Payment Method Type' from the drop down
+                list</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the updated 'GL Account Type' to map it to from
+                the drop down list</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Save' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The new Payment Method Type / GL Account Type mapping is
+                displayed in the list at the bottom of the screen</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I remove a Payment Method Id / Gl Account Id
+            mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Press the 'Remove' button next to the entry that you
+                want to delete</para>
+              </listitem>
+
+              <listitem>
+                <para>The entry is removed from the list of entries
+                displayed</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+        </sect3>
+
+        <sect3>
+          <title>Payment Type GL Account</title>
+
+          <para>The Payment Type GL Account Type Id is used to translate (or
+          map) the different payment types to a specific GL Account Type Id.
+          The GL Account Type Id is then used via the 'GL Account Type Id'
+          defaults to translate to one side of a journal entry. <note>
+              <para>This GL Account default is used to link to another one of
+              the GL Account defaults. A Payment Type is just a way to
+              categorize transactions.</para>
+            </note></para>
+
+          <para>Examples of Payment Types could be as follows:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Commission Payments</para>
+            </listitem>
+
+            <listitem>
+              <para>Customer Payments</para>
+            </listitem>
+
+            <listitem>
+              <para>Vendor (or Supplier) Payments</para>
+            </listitem>
+
+            <listitem>
+              <para>Customer Refunds</para>
+            </listitem>
+
+            <listitem>
+              <para>Customer Prepayments or Deposits</para>
+            </listitem>
+          </itemizedlist>
+
+          <para>These payment types can then be mapped to the required account
+          type in the Chart of Account. Examples of these type of mappings
+          could be as follows:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Customer Payments are mapped to Account Receivable</para>
+            </listitem>
+
+            <listitem>
+              <para>Vendor (or Supplier) Payment are mapped to Account
+              Payable</para>
+            </listitem>
+
+            <listitem>
+              <para>Customer Refunds are mapped to Customer Credits</para>
+            </listitem>
+          </itemizedlist>
+
+          <sect4>
+            <title>How do I add a Payment Type / GL Account Type Id
+            mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Select the 'Payment Type Id' from the drop down
+                list</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the 'GL Account Type Id' to map it to from the
+                drop down list</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Save' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The new 'Payment Type / GL Account Type' mapping is
+                displayed in the list at the bottom of the screen</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I update a Payment Type / GL Account Type Id
+            mapping?</title>
+
+            <para>A Payment Type / GL Account Type mapping cannot be updated
+            directly but needs to be removed then re-created. If you try to
+            update an existing entry you will get an 'duplicate key' error
+            message.</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Press the 'Remove' button next to the entry that you
+                want to update</para>
+              </listitem>
+
+              <listitem>
+                <para>The entry is removed from the list of entries
+                displayed</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the 'Payment Type Id' from the drop down
+                list</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the updated 'GL Account Type Id' to map it to
+                from the drop down list</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Save' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The new 'Payment Type / GL Account Type' mapping is
+                displayed in the list at the bottom of the screen</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I remove a Payment Type / GL Account Type Id
+            mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Press the 'Remove' button next to the entry that you
+                want to delete</para>
+              </listitem>
+
+              <listitem>
+                <para>The entry is removed from the list of entries
+                displayed</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+        </sect3>
+
+        <sect3>
+          <title>Purchase Invoice</title>
+
+          <para>The Purchase Invoice sub menu is used to specify the default
+          account to be used for the individual line items that appear on a
+          Purchase Invoice. The items are identified by a line description
+          which can be mapped to a specific general ledger account. Purchase
+          invoices can be made up of a variety of items as well as the product
+          that is being bought (eg discounts, promotions, work effort or
+          labour costs etc). The majority of businesses will want to track
+          these type of items separately in the general ledger and this screen
+          will allow this type of setup. This setup will translate to one side
+          of the journal entry only. <important>
+              <para>This screen is one of the screens where the default
+              entries that are displayed here are entered via the Global GL
+              Settings under the sub menu 'Invoice Item Type'. This screen
+              allows users to override the global settings for the Purchase
+              Invoice item type. An example of why this could be necessary
+              could be that a company many want to isolate the sales reporting
+              of a specific department or business unit separately (eg
+              subledgers etc) but still have the option of a 'catch all'
+              global general ledger account.</para>
+
+              <para>Need to do more investigation but the it looks like these
+              Purchase Invoice mappings dont work when used as part of the
+              Purchase Order to Purchase Invoice Process.(Have been doing some
+              tests to try and get it to post to a different account than
+              'Uninvoiced Shipment Receipts' and 'Inventory' but hasnt worked
+              so far.) We need to be able to specify things such as Sales Tax,
+              Freight and any Purchase Order adjustments. These override
+              mappings do work if there is no Purchase Order just a Purchase
+              Invoice as shown in the simple process below.</para>
+            </important></para>
+
+          <para>How the Purchase Invoice mappings are used is best shown by an
+          example. A very simple description of a Purchase Invoice Process
+          could be as follows:</para>
+
+          <orderedlist>
+            <listitem>
+              <para>You have ordered something from a supplier (eg indirect
+              purchasing such as stationery etc via phone)</para>
+            </listitem>
+
+            <listitem>
+              <para>The Supplier ships the products to you<note>
+                  <para>as they are not stored in the Warehouse but in your
+                  offices - so dont need an Inventory Receive.....????</para>
+                </note></para>
+            </listitem>
+
+            <listitem>
+              <para>You receive the product and an invoice from the Supplier
+              (Purchase Invoice)</para>
+            </listitem>
+
+            <listitem>
+              <para>You enter the Purchase Invoice pay the Supplier the amount
+              invoiced</para>
+            </listitem>
+          </orderedlist>
+
+          <para>Let's focus on step of 4 in more detail.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>You have received the product from the supplier with an
+              invoice</para>
+            </listitem>
+
+            <listitem>
+              <para>In OFBiz you enter the Purchase Invoice using 'Create New'
+              in the 'Invoices' menu of Accounting Manager</para>
+            </listitem>
+
+            <listitem>
+              <para>Using the 'Items' sub menu you can create individual items
+              on the Purchase Invoice (eg Paper, Pens, Sales Tax etc and they
+              dont need to have a Product Id associated with them)</para>
+            </listitem>
+
+            <listitem>
+              <para>When you add a new invoice item to the Purchase Invoice it
+              is the 'Invoice Item Type' that is affected by the Purchase
+              Invoice override mappings</para>
+            </listitem>
+
+            <listitem>
+              <para>The Purchase Invoice can then be moved to various statuses
+              (Approved, Received, Ready or Cancelled)</para>
+            </listitem>
+
+            <listitem>
+              <para>When the status is moved to 'Ready' this is a trigger for
+              an 'automatic' accounting transaction</para>
+            </listitem>
+
+            <listitem>
+              <para>The transaction type generated is called 'Purchase
+              Invoice' and it uses the Purchase Invoice override
+              mappings</para>
+            </listitem>
+          </itemizedlist>
+
+          <para>Transaction Type: Purchase Invoice, DR 516100 Purchase Order
+          Adjustments , DR ????? Sales Tax, CR 210000 Accounts Payable</para>
+
+          <sect4>
+            <title>How do I add a new Purchase Invoice override
+            mapping?</title>
+
+            <para>By default there are no Purchase Invoice override mappings
+            that are configured as part of the OFBiz demo data.</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Select the 'Invoice Purchase Item Type' from the drop
+                down list</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the ' Invoice Override Expense GL Account Id' to
+                map it to from the drop down list</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Save' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The new mapping will be displayed in the 'Invoice
+                Override Expense GL Account' column in the list at the bottom
+                of the screen</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I update a Purchase Invoice override
+            mapping?</title>
+
+            <para>An existing Purchase Invoice override mapping cannot be
+            updated but needs to be removed and a new mapping added. If you
+            try to add an override to an item that already has an override you
+            will get a duplicate record error message.</para>
+          </sect4>
+
+          <sect4>
+            <title>How do I remove a Purchase Invoice override
+            mapping?</title>
+
+            <note>
+              <para>Only the override mapping can be deleted. The default
+              mapping record cannot be deleted here (even though the Remove
+              button is displayed next to it!)</para>
+            </note>
+
+            <orderedlist>
+              <listitem>
+                <para>Locate the entry that needs the override deleted in the
+                list of Purchase Invoice override mappings</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Remove' button next to the entry</para>
+              </listitem>
+
+              <listitem>
+                <para>The override mapping will be removed from the 'Invoice
+                Override Expense GL Account' column of the entry</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+        </sect3>
+
+        <sect3>
+          <title>Sales Invoice</title>
+
+          <para>The Sales Invoice sub menu is used to specify the default
+          account to be used for the individual line items that appear on a
+          Sales Invoice. The items are identified by a line description which
+          can be mapped to a specific general ledger account. Sales invoices
+          can be made up of a variety of items as well as the product that is
+          being sold (eg discounts, promotions, work effort or labour costs
+          etc). The majority of businesses will want to track these type of
+          items separately in the general ledger and this screen will allow
+          this type of setup.</para>
+
+          <para>This setup will translate to one side of the journal entry
+          only.</para>
+
+          <para>A key mapping used is linked directly to the Product Type (eg
+          Invoice Digital Good Item, Invoice Finished Good Item, Invoice
+          Finished/Digital Good Item....). This controls where the sales
+          revenue received from the sale of the product is stored in the
+          general ledger</para>
+
+          <para>Only a limited number of general ledger accounts that are
+          available to be mapped. Currently this is 7 and limited to the
+          accounts that have been assigned to the organisation from the Global
+          Chart of Accounts that have a 'GL Account Class Id' = 'Revenue'
+          (NOTE: You will see that Discounts on Sales is not available to be
+          selected because it's GL Account Class Id = 'Cost of Goods Sold
+          Expense'. It appears as a default because it is setup in the Global
+          GL settings that doesnt seem to have any limitations of the
+          account.) <important>
+              <para>This screen is one of the screens where the default
+              entries that are displayed here are entered via the Global GL
+              Settings under the sub menu 'Invoice Item Type'. This screen
+              allows users to override the global settings for the Sales
+              Invoice item type. An example of why this could be necessary
+              could be that a company many want to isolate the sales reporting
+              of a specific department or business unit separately (eg
+              subledgers etc) but still have the option of a 'catch all'
+              global general ledger account.</para>
+            </important></para>
+
+          <para>If an override account is added it will appear in the Override
+          GL Account column on the screen.</para>
+
+          <para>The only mapping that seems a bit out of place here is Sales
+          Tax. It is blank because Sales Tax is setup using Tax Authorities so
+          dont know why you would want to override the Sales Tax account to a
+          Sales Revenue Account. <note>
+              <para>Also need to highlight that in the Global Settings it uses
+              the ENUM description to select the item and there are duplicate
+              descriptions between the Sales Invoice and the Purchase Invoice.
+              Not too much of a problem here but it does cause problems in
+              Agreements when setting up things like Commissions based on line
+              items as you cant tell the difference between the description of
+              a Sales Invoice item called 'Invoice Adjustment' and a Purchase
+              Invoice item called 'Invoice Adjustment' ..... except by trial
+              and error</para>
+            </note></para>
+
+          <para>How the Sales Invoice mappings are used is best shown by an
+          example. A very simple description of an online Sales Order Process
+          could be as follows:</para>
+
+          <orderedlist>
+            <listitem>
+              <para>Customer Orders a Product (and Creates a Sales
+              Order)</para>
+            </listitem>
+
+            <listitem>
+              <para>Customer Pays for Product (via Credit Card, Internet
+              Banking etc)</para>
+            </listitem>
+
+            <listitem>
+              <para>Vendor confirms Payment and Dispatches the Product to the
+              Customer</para>
+            </listitem>
+          </orderedlist>
+
+          <para>Let's focus on the second part step of 3 in more
+          detail.</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>The vendor has verified that the customer payment has been
+              received</para>
+            </listitem>
+
+            <listitem>
+              <para>In OFBiz Order Manager they will then look up the relevant
+              Sales Order and then click the 'Quick Ship Entire Order' button
+              to log the dispatch of the order in the system</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Quick Ship Entire Order' button is a trigger for an
+              'automatic' accounting transaction</para>
+            </listitem>
+
+            <listitem>
+              <para>The transaction type that is triggered is called 'Sales
+              Invoice'</para>
+            </listitem>
+          </itemizedlist>
+
+          <para>Transaction Type: Sales Invoice DR 120000 Accounts Receivable,
+          DR 410000 Discounts on Sales, DR 400000 Sales, CR 22????? Sales Tax
+          Collected</para>
+
+          <para>DR Sales is used for item promotions where product cost is
+          simply reversed. Only order promotions are coded to Discounts. The
+          Sales Tax account will be dependent on your sales tax setup. The
+          demo data posts to tax accounts by US state.</para>
+
+          <para>One of the CR (or Credit) entries for the Sales Invoice
+          transaction is created using the Sales mapping defined here in the
+          Sales Invoice (and the other is created another GL Account default
+          for 'Tax Authority GL Accounts')</para>
+
+          <para>All of the the DR (or Debit) entries for the Sales Invoice
+          transaction (except for Accounts Receivable which is comes from the
+          GL Account Type defaults) are created using the mappings defined
+          here in the Sales Invoice</para>
+
+          <sect4>
+            <title>How do I add a Sales Invoice override mapping?</title>
+
+            <para>By default there are no Sales Invoice override mappings that
+            are configured as part of the OFBiz demo data.</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Select the 'Invoice Item Type' from the drop down
+                list</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the ' Override Revenue GL Account Id' to map it
+                to from the drop down list</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Save' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The new mapping will be displayed in the 'Override GL
+                Account' column in the list at the bottom of the screen</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I update a Sales Invoice override mapping?</title>
+
+            <para>An existing Sales Invoice override mapping cannot be updated
+            but needs to be removed and a new mapping added. If you try to add
+            an override to an item that already has an override you will get a
+            duplicate record error message.</para>
+          </sect4>
+
+          <sect4>
+            <title>How do I remove a Sales Invoice override mapping?</title>
+
+            <note>
+              <para>Only the override mapping can be deleted. The default
+              mapping record cannot be deleted here (even though the Remove
+              button is displayed next to it!)</para>
+            </note>
+
+            <orderedlist>
+              <listitem>
+                <para>Locate the entry that needs the override deleted in the
+                list of Sales Invoice override mappings</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Remove' button next to the entry</para>
+              </listitem>
+
+              <listitem>
+                <para>The override mapping will be removed from the 'Override
+                GL Account' column of the entry</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+        </sect3>
+
+        <sect3>
+          <title>Financial Account GL Account</title>
+
+          <para>The FinAccount Type GL Account (Financial Account Type / GL
+          Account Type) is used to specify the default account to be used for
+          a specific type of Financial Account. This setup will translate to
+          one side of the journal entry only.</para>
+
+          <important>
+            <para>There is a limitation that only one account can be specified
+            per Financial Account type. Currently there are 6 types of
+            Financial Account (Bank, Deposit, Investment, Gift Certificate,
+            Replenish, Service Credit) - so if you have more than one of these
+            type of accounts that you need to track separately then there
+            could be a problem.</para>
+          </important>
+
+          <para>This mapping is normally be triggered if something is paid or
+          uses a Financial Account. Using the demo data this mapping is
+          triggered when someone purchases a gift certificate, or pays money
+          into a financial account.</para>
+
+          <sect4>
+            <title>How do I add a new Financial Account Type / GL Account
+            mapping?</title>
+
+            <para>By default there are 4 Financial Account Type / GL Type
+            mappings that are configured as part of the OFBiz demo
+            data.</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Select the 'FinAccount Type Id' from the drop down
+                list</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the ' GL Account' to map it to from the drop down
+                list</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Add' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The new mapping will be displayed in the list at the
+                bottom of the screen</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I update a Financial Account Type / GL Account
+            mapping?</title>
+
+            <para>A Financial Account Type / GL Account Type mapping can be
+            updated by modifying the GL Account only. Unlike other screens in
+            this area if the GL Account Type needs to be updated then it can
+            be done by creating a new record with the correct GL Account type
+            which will overwrite the existing record.</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Locate the entry that needs to be updated in the list of
+                Financial Account Type / GL Account Type mappings</para>
+              </listitem>
+
+              <listitem>
+                <para>Modify the 'GL Account 'by using the drop down list next
+                to the GL Account field</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Update' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The updated mapping will be displayed</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I remove a Financial Account Type / GL Account
+            mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Locate the entry that needs to be deleted in the list of
+                Financial Account Type / GL Account Type mappings</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Remove' button next to the entry</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+        </sect3>
+
+        <sect3>
+          <title>Product Category / GL Account</title>
+
+          <para>The Product Category GL Account is used to specify the default
+          account to be used for a specific 'Product Category' and 'Account
+          Type' combination. This setup will translate to one side of the
+          journal entry only.</para>
+
+          <para>It is used for tracking product category transactions at a
+          more detailed level. Examples could be as follows:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Tracking Accounts Receivable by Product Category in the
+              General Ledger</para>
+            </listitem>
+
+            <listitem>
+              <para>Tracking Cost of Goods by Product Category in the General
+              Ledger</para>
+            </listitem>
+
+            <listitem>
+              <para>Tracking Commissions paid by Product Category in the
+              General Ledger</para>
+            </listitem>
+          </itemizedlist>
+
+          <para>The demo data gives an idea of the use of product categories
+          to classify or separate different products streams. If specific
+          accounting or management reporting is required at this level then
+          the General Ledger can be setup to provide this detail.</para>
+
+          <sect4>
+            <title>How do I add a new Product Category / GL Account Type
+            mapping?</title>
+
+            <para>By default there are no Product Category / GL Account Type
+            mappings that are configured as part of the OFBiz demo
+            data.</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Select the 'Account Type' from the drop down list (NOTE:
+                In other screens this field is call the 'GL Account Type
+                Id'.....)</para>
+              </listitem>
+
+              <listitem>
+                <para>Select the ' GL Account' to map it to from the drop down
+                list</para>
+              </listitem>
+
+              <listitem>
+                <para>Enter or look up the 'Product Category Id' to be
+                used</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Add' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The new mapping will be displayed in the list at the
+                bottom of the screen</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I update a Product Category / GL Account type
+            mapping?</title>
+
+            <para>A Product Category / GL Account Type mapping can be updated
+            by modifying the GL Account only. If the product category or the
+            Account Type needs to be updated then the mapping will need to be
+            deleted and then re-entered using the new product category or
+            Account Type.</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Locate the entry that needs to be updated in the list of
+                Product Category / GL Account Type mappings</para>
+              </listitem>
+
+              <listitem>
+                <para>Modify the 'GL Account 'by using the drop down list next
+                to the 'GL Account' field</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Update' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The updated mapping will be displayed</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I remove a Product Category / GL Account Type
+            mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Locate the entry that needs to be deleted in the list of
+                Product Category / GL Account Type mappings</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Remove' button next to the entry</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+        </sect3>
+
+        <sect3>
+          <title>Product GL Accounts</title>
+
+          <para>The Product GL Account is used to specify the default account
+          to be used for a specific Product' and 'Account Type' combination.
+          This setup will translate to one side of the journal entry
+          only.</para>
+
+          <note>
+            <para>Duplicate functionality .... This setup for the Product GL
+            Account can also be setup using the 'Accounts' sub menu for the
+            Product in Catalog Manager. Need to confirm whether this default
+            work like a hierarchy....eg Product GL Defaults will override
+            General Account defaults.</para>
+          </note>
+
+          <para>It is used for tracking product transactions at a more
+          detailed level. Examples could be as follows:</para>
+
+          <itemizedlist>
+            <listitem>
+              <para>Tracking Accounts Receivable by Product in the General
+              Ledger</para>
+            </listitem>
+
+            <listitem>
+              <para>Tracking Cost of Goods by product (or product variation)
+              in the General Ledger</para>
+            </listitem>
+
+            <listitem>
+              <para>Tracking Commissions paid by Product in the General
+              Ledger</para>
+            </listitem>
+          </itemizedlist>
+
+          <sect4>
+            <title>How do I add a new Product / GL Account Type
+            mapping?</title>
+
+            <para>By default there are no Product / GL Account Type mappings
+            that are configured as part of the OFBiz demo data.</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Select the 'Account Type' from the drop down list<note>
+                    <para>In other screens this field is call the 'GL Account
+                    Type Id'....</para>
+                  </note></para>
+              </listitem>
+
+              <listitem>
+                <para>Select the ' GL Account' to map it to from the drop down
+                list</para>
+              </listitem>
+
+              <listitem>
+                <para>Enter or look up the 'Product Id' to be used</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Add' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The new mapping will be displayed in the list at the
+                bottom of the screen</para>
+              </listitem>
+            </orderedlist>
+
+            <note>
+              <para>This mapping can also be also be done via the 'Accounts'
+              sub menu for the Product. Any mapping created here will be
+              displayed under the Product 'Accounts' sub menu. Alternatively
+              any mapping created in the Product 'Accounts' sub menu will also
+              be displayed here.</para>
+            </note>
+          </sect4>
+
+          <sect4>
+            <title>How do I update a Product / GL Account Type
+            mapping?</title>
+
+            <para>A Product / GL Account Type mapping can be updated by
+            modifying the GL Account only. If the product needs to be updated
+            then the mapping will need to be deleted and then re-entered using
+            the new product.</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Locate the entry that needs to be updated in the list of
+                Product / GL Account Type mappings</para>
+              </listitem>
+
+              <listitem>
+                <para>Modify the 'GL Account 'by using the drop down list next
+                to the 'GL Account' field</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Update' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The updated mapping will be displayed</para>
+              </listitem>
+            </orderedlist>
+          </sect4>
+
+          <sect4>
+            <title>How do I delete a Product / GL Account Type
+            mapping?</title>
+
+            <orderedlist>
+              <listitem>
+                <para>Locate the entry that needs to be deleted in the list of
+                Product / GL Account Type mappings</para>
+              </listitem>
+
+              <listitem>
+                <para>Locate the entry that needs to be deleted in the list of
+                Product / GL Account Type mappings</para>
+              </listitem>
+            </orderedlist>
+
+            <note>
+              <para>Locate the entry that needs to be deleted in the list of
+              Product / GL Account Type mappings</para>
+            </note>
+          </sect4>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>Time Period</title>
+
+        <para>Time periods are a defined period of time (usually a month,
+        quarter or year) that is used to group business transactions. It is a
+        key part of any general accounting setup.</para>
+
+        <para>Time periods can be used for the definition of :</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Company Financial Year</para>
+          </listitem>
+
+          <listitem>
+            <para>Fiscal / Tax Periods (weeks, months, quarters)</para>
+          </listitem>
+
+          <listitem>
+            <para>VAT / GST Periods</para>
+          </listitem>
+
+          <listitem>
+            <para>Sales Periods</para>
+          </listitem>
+        </itemizedlist>
+
+        <sect3>
+          <title>How do I add a new Financial Year time period?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Using the area at the bottom of the screen labelled
+              'New'</para>
+            </listitem>
+
+            <listitem>
+              <para>Leave the Parent Period Id field blank<note>
+                  <para>The financial year will be the parent of other time
+                  periods eg fiscal months or GST / VAT periods</para>
+                </note></para>
+            </listitem>
+
+            <listitem>
+              <para>Select 'Fiscal Year' from the 'Period Type Id' drop down
+              box</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter '13' in the Period Num field <note>
+                  <para>You can use any number that does not conflict with the
+                  other time periods you want to use. We plan to define 12
+                  fiscal or tax months so will use 13 for the year</para>
+                </note></para>
+            </listitem>
+
+            <listitem>
+              <para>Enter 'FY 2010-2011' in the Period Name field<note>
+                  <para>You can use any name you want but make sure it makes
+                  sense. This example is an abbreviation for Fiscal Year
+                  2010-2011</para>
+                </note></para>
+            </listitem>
+
+            <listitem>
+              <para>Select '1st April 2010' using the calendar lookup in the
+              'From Date' field</para>
+            </listitem>
+
+            <listitem>
+              <para>Select '1st April 2011' using the calendar lookup in the
+              'Thru Date' field<note>
+                  <para>Even though we want our financial year to end on 31st
+                  March 2011 the test used is based on less than not an equal
+                  to</para>
+                </note></para>
+            </listitem>
+
+            <listitem>
+              <para>Leave the 'Is Closed' field at its default of 'No'</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Create' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The new time period will now be displayed in the list of
+              open time periods.</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I add a new GST/ VAT time period?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Using the area at the bottom of the screen labelled
+              'New'</para>
+            </listitem>
+
+            <listitem>
+              <para>Select the previously created financial year 'FY
+              2010-2011' in the Parent Period Id field</para>
+            </listitem>
+
+            <listitem>
+              <para>Select 'Fiscal Month' from the 'Period Type Id' drop down
+              box</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter '1' in the Period Num field <note>
+                  <para>This is the first of 12 periods that we want to
+                  define.</para>
+                </note></para>
+            </listitem>
+
+            <listitem>
+              <para>Enter 'FM April 2010' in the Period Name field <note>
+                  <para>You can use any name you want but make sure it makes
+                  sense. This example is an abbreviation for Fiscal Month
+                  April 2010</para>
+                </note></para>
+            </listitem>
+
+            <listitem>
+              <para>Select '1st April 2010' using the calendar lookup in the
+              'From Date' field</para>
+            </listitem>
+
+            <listitem>
+              <para>Select '1st May 2010' using the calendar lookup in the
+              'Thru Date' field<note>
+                  <para>Even though we want our fiscal month to end on 30th
+                  April 2010 the test is used is based on less than not an
+                  equal to</para>
+                </note></para>
+            </listitem>
+
+            <listitem>
+              <para>Leave the Is Closed field at its default of 'No'</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Create' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The new time period will now be displayed in the list of
+              open time periods.</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I update a time period?</title>
+
+          <para>Time periods cannot be updated via the current time periods
+          screen. If you need to amend time period details then it can be done
+          via Entity Data Maintenance in the Webtools menu.</para>
+        </sect3>
+
+        <sect3>
+          <title>How do I close a time period?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>To close a time period select the 'Close' button next to
+              the time period.</para>
+            </listitem>
+
+            <listitem>
+              <para>The time period will be removed from the current open time
+              periods area and re-displayed in the closed time periods section
+              of the screen.</para>
+            </listitem>
+          </orderedlist>
+
+          <note>
+            <para>Closing a time period is a trigger for an automatic
+            accounting transaction as follows:</para>
+
+            <itemizedlist>
+              <listitem>
+                <para>Transaction Type: Period Closing</para>
+              </listitem>
+
+              <listitem>
+                <para>DR ?????? (based on the GL account type mapping for
+                Profit Loss)</para>
+              </listitem>
+
+              <listitem>
+                <para>CR 336000 Retained Earnings (based on GL account type
+                mapping for Retained Earnings)</para>
+              </listitem>
+            </itemizedlist>
+          </note>
+
+          <note>
+            <para>Both sides of this accounting transaction uses the same GL
+            account type default mapping. The account mapping for 'Profit
+            Loss' is not setup as part of the demo data so this transaction
+            will not automatically post to the general ledger but will instead
+            be put in the ERROR_JOURNAL as an unposted transaction. The
+            transaction value is zero for both sides of journal...Even if it
+            does have a value do we want to move it from P and L to Equity
+            during the financial year? Normally this is done once at the end
+            of the financial year.</para>
+          </note>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>Journals</title>
+
+        <para>A journal is a detailed accounting transaction that is recorded
+        (or posted) to the General Ledger. It is made up of a debit and a
+        credit component.<important>
+            <para>A journal is a detailed accounting transaction that is
+            recorded (or posted) to the General Ledger. It is made up of a
+            debit and a credit component</para>
+          </important></para>
+
+        <note>
+          <para>By default in OFBIZ a journal called 'ERROR_JOURNAL' is
+          created as part of the demo data installation.This 'ERROR_JOURNAL'
+          is referenced in the Accounting Preferences setup for 'Company'. The
+          'ERROR_JOURNAL' is used to store details of any transaction that
+          fails and cannot be posted to a general ledger account. Transactions
+          falling into error can be as the result of incomplete setup or an
+          invalid transaction (eg a transaction that should never
+          occur).</para>
+        </note>
+
+        <sect3>
+          <title>How do I create a journal?</title>
+
+          <para><orderedlist>
+              <listitem>
+                <para>Enter a journal name in the Gl Journal Name field (eg
+                MY_JOURNAL)</para>
+              </listitem>
+
+              <listitem>
+                <para>Press the 'Submit' button</para>
+              </listitem>
+
+              <listitem>
+                <para>The journal is created and will appear in the journal
+                list at the bottom of the screen</para>
+              </listitem>
+            </orderedlist></para>
+
+          <note>
+            <para>The Journal ID is automatically generated</para>
+          </note>
+        </sect3>
+
+        <sect3>
+          <title>How do I update a journal?</title>
+
+          <orderedlist>
+            <listitem>
+              <para>Select the journal to be updated from the list of journals
+              at the bottom of the screen</para>
+            </listitem>
+
+            <listitem>
+              <para>The journal details will be displayed on the screen</para>
+            </listitem>
+
+            <listitem>
+              <para>Update the Gl Journal Name (as this is currently the only
+              field that can be updated)</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Submit' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The updated journal will appear in the journal list at the
+              bottom of the screen</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I delete a journal?</title>
+
+          <para>Be careful if you need to remove an existing journal as it may
+          have transactions associated with it.</para>
+
+          <orderedlist>
+            <listitem>
+              <para>Press the 'Remove' button next to the journal that you
+              want to delete</para>
+            </listitem>
+
+            <listitem>
+              <para>The journal is deleted and the screen is
+              redisplayed</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+      </sect2>
+
+      <sect2>
+        <title>Chart of Accounts</title>
+
+        <para>OFBiz comes with a master template for a very comprehensive
+        chart of accounts. This can be found in 'Global GL Defaults' under the
+        'Accounting' tab.</para>
+
+        <para>A couple of points to note</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>you do not need to use all the accounts defined in this
+            master template (but it may be simpler to look for the accounts
+            that you can use or rename)</para>
+          </listitem>
+
+          <listitem>
+            <para>you can create your own additional accounts if you dont want
+            to use the ones in the master template</para>
+          </listitem>
+        </itemizedlist>
+
+        <para>The chart of accounts for the default organisation (Company) is
+        built up by selecting the accounts that you want to use from the
+        global chart of accounts master template. This means that if you want
+        to create a new account then you need to create it first in the Global
+        Chart of Accounts and then link (or assign) it to the chart of
+        accounts for Company.</para>
+
+        <para>Details of the Chart of Accounts can be exported as a CSV file
+        or PDF using the buttons displayed.</para>
+
+        <important>
+          <para>You need to be careful if you do decide to create your own
+          accounts that they contain all the details required and that they
+          are linked into the relevant configuation for the setup of the GL
+          defaults. This means that if you change an account (eg Inventory) to
+          one of your own - you need to check the GL defaults setup and
+          replace any reference to the Inventory account to the one you have
+          created.</para>
+        </important>
+
+        <para>This Chart of Accounts screen is used to define the list of
+        accounts (or chart) that will be actively used by the company.For
+        example the Global chart of accounts may contain 100 different
+        accounts but only 20 need to be used for your specific business. This
+        means the you need only to create assignments to the accounts that you
+        actively want to use.</para>
+
+        <para>The Chart of Accounts is a mixture of business needs (ie being
+        able to track the information you need for your business) and tax
+        requirements (i.e. legal or government requirements necessary for
+        operating a business). The type of Chart that you setup will be
+        dependent of your business type.</para>
+
+        <sect3>
+          <title>How do I create a Chart of Accounts?</title>
+
+          <para>As mentioned above the chart of accounts for the default
+          organisation (Company) is built up by selecting the accounts that
+          you want to use from the global chart of accounts master template.
+          This means that if you want to create a new account then you need to
+          create it first in the Global Chart of Accounts and then link (or
+          assign) it to the chart of accounts for Company. By creating an
+          assignment to an account it is then added to the Chart of
+          Accounts.</para>
+
+          <orderedlist>
+            <listitem>
+              <para>Select the account Gl Account Id that you need from the
+              drop down box</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Create Assignment' button</para>
+            </listitem>
+
+            <listitem>
+              <para>The account is added to the Chart of Account</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+
+        <sect3>
+          <title>How do I create a Chart of Accounts?</title>
+
+          <para>Updating the Chart of Accounts will involve either creating a
+          new assignment or removing an existing one. A new assignment is
+          created using the instructions above. The added complication may be
+          that the account that you need does not exist in the Global Chart of
+          Accounts. As mentioned above it will need to be created and then
+          linked.</para>
+
+          <para>See the instructions below to remove an existing account
+          assignment.</para>
+
+          <note>
+            <para>If a completely new account is required that does not
+            already exist as part of the Global Chart of Accounts template
+            then it will need to be created as part of the Global template
+            first before it can be used as an assignment in the Organisation
+            Chart of Accounts.</para>
+          </note>
+        </sect3>
+
+        <sect3>
+          <title>How do I delete a Chart of Accounts?</title>
+
+          <para>Accounts are not deleted from the Chart of Accounts - they are
+          simply no longer selected to be used.</para>
+
+          <para>It is important that you do not remove accounts that are
+          active and have already been used for transactions. Even if the net
+          balance of the account is zero then from an audit perspective then
+          you should not be removing accounts.</para>
+
+          <para>You should only be looking to remove accounts that have not
+          been used. To un-link or un-assign accounts from the default company
+          then use the Entity Data Maintenance from the Webtools menu. Look
+          for the entity 'GlAccountOrganization' and delete the record to
+          remove the link.</para>
+        </sect3>
+
+        <sect3>
+          <title>How do I update the details for an account in the Chart of
+          Accounts?</title>
+
+          <para>Details of the accounts that make up the Chart of Accounts can
+          be accessed from this screen.</para>
+
+          <orderedlist>
+            <listitem>
+              <para>Click on the 'GL Account Id' of the account
+              required</para>
+            </listitem>
+
+            <listitem>
+              <para>The 'Edit GL Account' screen is displayed showing the
+              details of the account selected (NOTE:This screen is also
+              accessible via 'Global GL Settings / Chart of Account / Navigate
+              Accounts '</para>
+            </listitem>
+
+            <listitem>
+              <para>Amend the fields required (NOTE: The GL Account Id and
+              Posted Balance fields cannot be amended)</para>
+            </listitem>
+
+            <listitem>
+              <para>Press the 'Update' button</para>
+            </listitem>
+          </orderedlist>
+        </sect3>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Accounting</title>
+
+      <para>Click Accounting in the Available Internal Organizations list to
+      open to go to the Accounting menu. The Accounting menu includes options
+      for:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Accounts Summary</para>
+        </listitem>
+
+        <listitem>
+          <para>Account Reconciliation</para>
+        </listitem>
+
+        <listitem>
+          <para>Account Reconciliations</para>
+        </listitem>
+
+        <listitem>
+          <para>Accounting Transactions</para>
+        </listitem>
+
+        <listitem>
+          <para>Accounting Transactions Entries</para>
+        </listitem>
+
+        <listitem>
+          <para>Reports</para>
+        </listitem>
+
+        <listitem>
+          <para>Checks</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+  </chapter>
+
+  <preface>
+    <title/>
+
+    <para/>
+  </preface>
+</book>
diff --git a/applications/content/data/helpdata/docbookhelp/accounting_en_images/Thumbs.db b/applications/content/data/helpdata/docbookhelp/accounting_en_images/Thumbs.db
new file mode 100644
index 0000000..a5d017d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/accounting_en_images/Thumbs.db
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/accounting_en_images/main.jpg b/applications/content/data/helpdata/docbookhelp/accounting_en_images/main.jpg
new file mode 100644
index 0000000..1cd1bf8
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/accounting_en_images/main.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en/catalog.xml b/applications/content/data/helpdata/docbookhelp/catalog_en/catalog.xml
new file mode 100644
index 0000000..5241df9
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en/catalog.xml
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+<book version="5.0" xmlns="http://docbook.org/ns/docbook"
+      xmlns:xlink="http://www.w3.org/1999/xlink"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      xmlns:svg="http://www.w3.org/2000/svg"
+      xmlns:m="http://www.w3.org/1998/Math/MathML"
+      xmlns:html="http://www.w3.org/1999/xhtml"
+      xmlns:db="http://docbook.org/ns/docbook">
+  <info>
+    <title>OFBiz Catalog Manager Guide</title>
+
+    <author>
+      <personname><firstname/><surname/></personname>
+
+      <affiliation>
+        <orgname/>
+      </affiliation>
+    </author>
+
+    <pubdate/>
+  </info>
+
+  <chapter xml:id="catalog_main">
+    <title>Product Catalog overview</title>
+
+    <section>
+      <title>Introduction</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../catalog_en_images/main.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>The Catalog Manager creates or provides access to a variety of
+      information. Whether Products, Catalogs, or Categories, this screen
+      offers search tools and links to get you to the type of information you
+      need or are working with quickly and accurately.</para>
+
+      <para>Down the left hand column are 4 sections: 1. Search Products, 2.
+      Browse Catalogs, 3. Browse Categories, and 4. Product Categories.</para>
+    </section>
+  </chapter>
+
+  <chapter xml:id="catalog_FindCatalog">
+    <title>Catalogs</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/FindCatalog.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="catalog_FindCategory">
+    <title>Categories</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/FindCategory.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="catalog_FindProduct">
+    <title>Products</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/FindProduct.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="catalog_EditFeatureCategories">
+    <title>Features</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/EditFeatureCategories.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="catalog_FindProductPromo">
+    <title>Promos</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/FindProductPromo.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="catalog_FindPriceRules">
+    <title>Price Rules</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/FindPriceRules.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="catalog_FindProductStore">
+    <title>Stores</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/FindProductStore.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="catalog_ListParentProductStoreGroup">
+    <title>Product Store Groups</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/ListParentProductStoreGroup.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="catalog_EditKeywordThesaurus">
+    <title>Thesaurus</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/EditKeywordThesaurus.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="catalog_FindReviews">
+    <title>Reviews</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/FindReviews.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="catalog_FindProductConfigItems">
+    <title>Configurations</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/FindProductConfigItems.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="catalog_FindSubscription">
+    <title>Subscriptions</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/FindSubscription.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="catalog_ListShipmentMethodTypes">
+    <title>Shipping</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/ListShipmentMethodTypes.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para/>
+  </chapter>
+
+  <chapter xml:id="catalog_Imagemanagement">
+    <title>Image Management</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="left"
+                     fileref="../catalog_en_images/Imagemanagement.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>The Image Management module manages many kind of image what user
+    want. There are various functions including 'Gallery', 'Upload',
+    'Approved', 'Manage' etc.</para>
+
+    <itemizedlist>
+      <listitem>
+        <orderedlist>
+          <listitem>
+            <para>Go to Catalog Component.</para>
+          </listitem>
+
+          <listitem>
+            <para>Go to Image Management.</para>
+          </listitem>
+        </orderedlist>
+      </listitem>
+    </itemizedlist>
+
+    <sect1>
+      <title>Gallery</title>
+
+      <para>Gallery shows all images which have approved.</para>
+
+      <note>
+        <para>Everybody can access Gallery function.</para>
+      </note>
+
+      <orderedlist>
+        <listitem>
+          <para>Go to 'Upload' section, Enter 'Product Id' by type or click a
+          find icon.</para>
+        </listitem>
+
+        <listitem>
+          <para>Optional, you can specify the size of images.</para>
+        </listitem>
+
+        <listitem>
+          <para>Then click 'Browse' button to choose image file(s).</para>
+        </listitem>
+
+        <listitem>
+          <para>Click 'Upload' button.</para>
+
+          <para/>
+        </listitem>
+      </orderedlist>
+    </sect1>
+
+    <sect1>
+      <title>Upload</title>
+
+      <para/>
+    </sect1>
+
+    <sect1>
+      <title>Manage</title>
+
+      <para/>
+    </sect1>
+
+    <sect1>
+      <title>Approve</title>
+
+      <para/>
+    </sect1>
+
+    <sect1>
+      <title>Rejected</title>
+
+      <para/>
+    </sect1>
+
+    <sect1>
+      <title>Recently Approved</title>
+
+      <para/>
+    </sect1>
+
+    <sect1>
+      <title>Replace</title>
+
+      <para/>
+    </sect1>
+
+    <sect1>
+      <title>Resize</title>
+
+      <para/>
+    </sect1>
+  </chapter>
+</book>
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/EditFeatureCategories.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/EditFeatureCategories.jpg
new file mode 100644
index 0000000..496dfbd
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/EditFeatureCategories.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/EditKeywordThesaurus.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/EditKeywordThesaurus.jpg
new file mode 100644
index 0000000..faa5e8b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/EditKeywordThesaurus.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindCatalog.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindCatalog.jpg
new file mode 100644
index 0000000..1163fa2
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindCatalog.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindCategory.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindCategory.jpg
new file mode 100644
index 0000000..9bce1ca
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindCategory.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindPriceRules.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindPriceRules.jpg
new file mode 100644
index 0000000..8f8eeaa
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindPriceRules.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindProduct.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindProduct.jpg
new file mode 100644
index 0000000..b46500d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindProduct.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindProductConfigItems.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindProductConfigItems.jpg
new file mode 100644
index 0000000..ad7ba84
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindProductConfigItems.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindProductPromo.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindProductPromo.jpg
new file mode 100644
index 0000000..3fc2301
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindProductPromo.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindProductStore.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindProductStore.jpg
new file mode 100644
index 0000000..c5fb09b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindProductStore.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindReviews.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindReviews.jpg
new file mode 100644
index 0000000..5dbb5a3
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindReviews.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindSubscription.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindSubscription.jpg
new file mode 100644
index 0000000..d5a688c
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/FindSubscription.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/Imagemanagement.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/Imagemanagement.jpg
new file mode 100644
index 0000000..1fe4c2c
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/Imagemanagement.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/ListParentProductStoreGroup.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/ListParentProductStoreGroup.jpg
new file mode 100644
index 0000000..668c8ff
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/ListParentProductStoreGroup.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/ListShipmentMethodTypes.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/ListShipmentMethodTypes.jpg
new file mode 100644
index 0000000..a356c3f
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/ListShipmentMethodTypes.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/Thumbs.db b/applications/content/data/helpdata/docbookhelp/catalog_en_images/Thumbs.db
new file mode 100644
index 0000000..236f40a
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/Thumbs.db
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/catalog_en_images/main.jpg b/applications/content/data/helpdata/docbookhelp/catalog_en_images/main.jpg
new file mode 100644
index 0000000..e80ef8a
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/catalog_en_images/main.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en/humanres.xml b/applications/content/data/helpdata/docbookhelp/humanres_en/humanres.xml
new file mode 100644
index 0000000..0881db4
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en/humanres.xml
@@ -0,0 +1,9410 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+<book version="5.0" xmlns="http://docbook.org/ns/docbook"
+      xmlns:xlink="http://www.w3.org/1999/xlink"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      xmlns:svg="http://www.w3.org/2000/svg"
+      xmlns:m="http://www.w3.org/1998/Math/MathML"
+      xmlns:html="http://www.w3.org/1999/xhtml"
+      xmlns:db="http://docbook.org/ns/docbook">
+  <info>
+    <title>OFBiz Human Resource Guide</title>
+
+    <pubdate>July 1, 2012</pubdate>
+  </info>
+
+  <chapter xml:id="HUMANRES_about">
+    <title>About OFBiz Human Resources</title>
+
+    <para>The people who work for your company, it's human capital, are it's
+    most important asset. Selecting a software platform that increases the
+    value of your companies human capital and delivers benefits, services and
+    opportunities to your workforce, is critical to your companies success
+    .</para>
+
+    <para>That platform must be able to accurately and reliability process
+    worker transactions, collect decision support information, and communicate
+    between management, workers and outside resources. The OFBiz Human
+    Resource application (HR App) can provide a backbone for building that
+    platform.</para>
+
+    <para>In this chapter you are introduced to the organization of this
+    document and to the key business objects that are the core to HR
+    App.</para>
+
+    <sect1>
+      <title>Document Organization</title>
+
+      <para>Chapter numbers are used here to refer to parts of the document.
+      Chapters numbers are not displayed in the on line help version of the
+      document. Hopefully this will not be to confusing to the online
+      reader.</para>
+
+      <para>Chapter 1 is this introduction chapter. It lays out the purpose of
+      the remaining chapters and introduces some of the core HR App
+      features.</para>
+
+      <para>Chapter 2 has instructions to get you started using HR App. A
+      list, in logical order, describes some activities you can preform to get
+      up and running.</para>
+
+      <para>Chapters 3 thru 15 of provide the help documents that can be
+      invoked from the HR App in a context sensitive manner. When you work in
+      any of the HR App screens you can click on the Help icon in the menu bar
+      and the help browser will open to the relevant page in the
+      document.</para>
+
+      <para>Each feature in the <glossterm linkend="G_HR_APP_MENU">HR App
+      Menu</glossterm> has in it's own chapter, screens within the feature are
+      sections within the chapter. Introductions to the chapters describe how
+      the screens work together to implement an important application feature.
+      Each screen is pictured and documented consistently with:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>A picture of the screen.</para>
+        </listitem>
+
+        <listitem>
+          <para>Breadcrumbs to show where to find the screen.</para>
+        </listitem>
+
+        <listitem>
+          <para>A brief description of the screen usage.</para>
+        </listitem>
+
+        <listitem>
+          <para>A list of fields in the screen.</para>
+        </listitem>
+
+        <listitem>
+          <para>A list of actions that can be performed from the
+          screen.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para>Chapter 16 discuses OFBiz security settings for HR App</para>
+
+      <para>Chapter 17 <link linkend="INTRA_APPL_INTEGRATION">HR App
+      Intra-Application Integration</link> covers usage scenarios for other
+      OFBiz applications. The HR Application is part of the larger OFBiz back
+      office set of administrative applications and is often dependent on
+      these other applications.</para>
+
+      <para>Important terms in the documentation are defined in a Glossary. In
+      order to promote a consistent usage and understanding of terms, links to
+      the Glossary definitions are placed throughout the document.</para>
+
+      <para>Notes in the document describe behavior that is not intuitive.
+      Links between document sections are used liberally tie together concepts
+      that cross chapter boundaries. For example screens that use information
+      managed in Global HR Settings are linked to the screens where they are
+      used.</para>
+    </sect1>
+
+    <sect1>
+      <title>Introduction HR App</title>
+
+      <para>The HR App data design, like most of the OFBiz back office
+      administration applications, was inspired by the data models in The Data
+      Model Resource Books by Len Silverston (see <command
+      xlink:href="http://silverston.wiley.com/index.html"
+      xlink:show="new">Silverston Data Model Resource Companion
+      Site</command>.) The sections below introduces some of the concepts in
+      HR App that were derived from the models.</para>
+
+      <sect2>
+        <title>Positions</title>
+
+        <para>Generally positions are authorized by a budget and fulfilled by
+        people. The person may be a company employee, or contract employee.
+        Positions may be salary or hourly, fulltime or part time. Positions
+        have responsibilities.</para>
+
+        <para>Positions are defined by a type of work.</para>
+
+        <para>For example there may be 20 positions in an organization for a
+        type secretary. Each position is authorized by a budget request from a
+        department in the organization. A position can me thought of as a
+        full-time equivalent employee (FTE). So an FTE may be assigned to one
+        or more positions and position can be assigned to more then one FTEs
+        (job sharing).</para>
+
+        <para>In the HR App you can:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Create positions</para>
+          </listitem>
+
+          <listitem>
+            <para>Fulfill positions</para>
+          </listitem>
+
+          <listitem>
+            <para>Define the responsibilities of a position</para>
+          </listitem>
+
+          <listitem>
+            <para>Define a tree reporting structure between positions</para>
+          </listitem>
+
+          <listitem>
+            <para>Track the positions fulfillments over time</para>
+          </listitem>
+        </itemizedlist>
+
+        <para>See: <link
+        linkend="HUMANRES_FindEmplPositions">Position</link></para>
+      </sect2>
+
+      <sect2>
+        <title>People and Employees</title>
+
+        <para>People may be employees of your Company, a company you do
+        business with, or unaffiliated contract employees. Any of these people
+        may be applicants for and assigned to positions in your
+        Company.</para>
+
+        <para>If OFBiz a <glossterm linkend="G_PERSON">person</glossterm>is a
+        type of <glossterm linkend="G_PARTY">party</glossterm>. One of the
+        strengths of OFBiz is the rich set of features it has build up to
+        manage information and relationships for parties. This makes OFBiz a
+        great platform for HR services because managing people and
+        organizations is a core OFBiz technology.</para>
+
+        <para>In the HR App you can:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>View employee profiles</para>
+          </listitem>
+
+          <listitem>
+            <para>Manage recruitment</para>
+          </listitem>
+
+          <listitem>
+            <para>Create employees</para>
+          </listitem>
+
+          <listitem>
+            <para>Track an employees performance, positions, skills,
+            qualifications, training, and leave</para>
+          </listitem>
+        </itemizedlist>
+
+        <para>See: <link
+        linkend="HUMANRES_FindEmplLeaves">Employees</link></para>
+      </sect2>
+
+      <sect2>
+        <title>Employments</title>
+
+        <para>An employee is a person who works for your company. The terms
+        and history of this relationship between this person and your company
+        are managed in the Employments feature. Employments track the
+        benefits, pay preferences, pay history, unemployment claims and
+        agreements for the employment.</para>
+
+        <para>In the HR App you can:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Create employments</para>
+          </listitem>
+
+          <listitem>
+            <para>Track employment benefits, pay history, unemployment claims
+            and employment agreements</para>
+          </listitem>
+        </itemizedlist>
+
+        <para>See: <link
+        linkend="HUMANRES_FindEmplPositions">Employments</link></para>
+      </sect2>
+
+      <sect2>
+        <title>Department Organization</title>
+
+        <para>Many companies organize departments<footnote>
+            <para>There is no special meaning attached to the word department.
+            It is used to describe any sub-division of a business
+            organization.</para>
+          </footnote> in a tree structure. Your Companies organizational tree
+        is shown on the main page of the HR App.</para>
+
+        <para>In the HR App you can:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Add and remove departments</para>
+          </listitem>
+
+          <listitem>
+            <para>View department profiles</para>
+          </listitem>
+
+          <listitem>
+            <para>Assign positions to departments</para>
+          </listitem>
+
+          <listitem>
+            <para>Manage department employments</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>Getting Started</title>
+
+    <para>The Getting Started chapter discusses the common usage pattern
+    followed in the HR App UI, offers some links to general OFBiz getting
+    started documentation and most importantly provides a list of activities
+    you can perform to get the HR App up and running.</para>
+
+    <sect1>
+      <title>The User Interface</title>
+
+      <para>This guide was written based on the OFBiz trunk in the Summer of
+      2012 using the default Tomahawk theme. The information should be useful
+      for users of earlier versions and other themes. The screen shots may
+      look different from what you see in your version but not so much so that
+      you can not understand the gist of the features.</para>
+
+      <para>With close to 100 screens, some which link to applications outside
+      of the HR App, it is easy for a new user to get lost. Knowing the common
+      UI pattern used in HR App, as described here, will help you stay
+      oriented.</para>
+
+      <para>In OFBiz screens are collection of graphical user interface (GUI)
+      elements that provide an intuitive way to interact with applications. In
+      the back office applications, like Accounting, Marketing and Human
+      Resource, menus are the primary method of navigation between GUI
+      screens. The Application menu is the top level menu and links to a back
+      office administration application. Each application has an application
+      sub menu that is the top level menu within the application.</para>
+
+      <para>The HR App Menu in the diagram, which we will refer as the HR App
+      menu in this document, is such a sub menu. The pattern of navigation
+      from the HR App menu is depicted in the diagram below.</para>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="../humanres_en_images/OFBizMainScreen.gif"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Typically, but not always, HR App Menu items take their name from
+      an important application <glossterm
+      linkend="G_ENTITY">entity</glossterm>. For example you have Employees,
+      Employments, Employee Positions etc. All important information subjects
+      in human resource departments.</para>
+
+      <para>Many of these menu items open a screen, we will call a <glossterm
+      linkend="G_MAIN_SEARCH_SCREEN">Main Search Screen</glossterm>, the top
+      layout in the above diagram. It has three screenlets 1. A link to a
+      screen for creating a new entity 2. A Search Options screenlet for
+      building a search filter 3. A search results screenlet that has columns
+      with navigation widgets to open other application areas.</para>
+
+      <para>One of these navigation columns will open a screen we will call a
+      Feature Menu Screen. It has menu items for displaying / editing the
+      feature entity and it's supporting entities. The lower layout in the
+      diagram is an example of a Feature Menu Screen that shows a default
+      screen with summary information about the entity. The default screen is
+      sometimes an edit screen where the main entity can be edited and
+      updated.</para>
+
+      <para>HR App Features that follow this pattern include:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para><link linkend="HUMANRES_FindEmployee">Employees</link></para>
+        </listitem>
+
+        <listitem>
+          <para><link
+          linkend="HUMANRES_FindEmployments">Employments</link></para>
+        </listitem>
+
+        <listitem>
+          <para><link linkend="HUMANRES_ListEmplPositions">Employee
+          Position</link></para>
+        </listitem>
+
+        <listitem>
+          <para><link linkend="HUMANRES_FindPerfReviews">Performance
+          Review</link></para>
+        </listitem>
+
+        <listitem>
+          <para><link linkend="HUMANRES_FindPartySkills">Skills</link>
+          <footnote>
+              <para>This entity does not link to a Feature Menu Screen. Entity
+              editing and update are done in the Search Results.</para>
+            </footnote></para>
+        </listitem>
+
+        <listitem>
+          <para><link linkend="HUMANRES_FindPartyQuals">Qualifications</link>
+          <superscript>1</superscript></para>
+        </listitem>
+
+        <listitem>
+          <para><link
+          linkend="HUMANRES_FindJobRequisitions">Recruitment</link></para>
+        </listitem>
+
+        <listitem>
+          <para><link linkend="HUMANRES_FindEmploymentApps">Employment
+          Applications</link> <superscript>1</superscript></para>
+        </listitem>
+
+        <listitem>
+          <para><link
+          linkend="HUMANRES_FindPartyResumes">Resumes</link></para>
+        </listitem>
+
+        <listitem>
+          <para><link linkend="HUMANRES_FindEmplLeaves">Leave</link></para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1>
+      <title>Getting Started With OFBiz</title>
+
+      <para>If you are just getting started with OFBiz you will want to read
+      the <command
+      xlink:href="https://cwiki.apache.org/OFBADMIN/demo-and-test-setup-guide.html"
+      xlink:show="new">Demo and Test Setup Guide</command>. If you are
+      reviewing the application you will likely want to run the load-demo ant
+      task for this purpose. This will load the seen HR data for Global HR
+      Settings plus demo users and selected user HR data.</para>
+
+      <para>If you are setting up for production you should have read <command
+      xlink:href="https://cwiki.apache.org/confluence/display/OFBTECH/Apache+OFBiz+Technical+Production+Setup+Guide#ApacheOFBizTechnicalProductionSetupGuide-InitialDataLoading"
+      xlink:show="new">Apache OFBiz Technical Production Setup
+      Guide</command>. Follow the instructions on Initial Data Loading. If you
+      run the ant task load-seed the data for the HR Portlet, <link
+      linkend="HUMANRES_EditSkillType">Global HR2 Settings</link>, and the
+      Human Resource security settings admin, view, create, update, and delete
+      are loaded.</para>
+
+      <para>If you are going to be writing pay checks you will need to set up
+      the Accounting feature, see <command
+      xlink:href="https://cwiki.apache.org/confluence/display/OFBIZ/Quick+Start+-+Basic+Accounting+Setup"
+      xlink:show="new">Quick Start - Basic Accounting Setup.</command></para>
+    </sect1>
+
+    <sect1>
+      <title>Getting Started With HR App</title>
+
+      <para>Here is a list of activities you can follow that will help you get
+      HR App up and running in your company.</para>
+
+      <sect2>
+        <title>Reference Data</title>
+
+        <para>Reference data in the HR App are the items used in
+        drop-down-list for the purpose of classifying other information or
+        limiting user selections. These list are managed in <link
+        linkend="HUMANRES_EditSkillType">Global HR Settings</link>, review all
+        of the information in that feature to make sure the list items make
+        sense for your business. Some list items in HR App are not exposed in
+        Global HR Settings. To customize those list use <link
+        linkend="INTRA_APPL_INTEGRATION_ENTITY_DATA_MAINT">Entity Data
+        Maintenance</link> described in the HR App Intra-Application
+        Integration chapter.</para>
+      </sect2>
+
+      <sect2>
+        <title>People</title>
+
+        <para>In this section we will set up information about people. After
+        completing this section you will be able to answer questions about
+        people and their skills, qualifications and experience.</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Add employees and people who may be applicants or contract
+            employees. You add employees using the <link
+            linkend="HUMANRES_FindEmployee">New Employee</link> screen. Add
+            other people to your system using the Party Manager application.
+            See HR App Intra-Application Integration <link
+            linkend="INTRA_APPL_INTEGRATION_CREATE_PERSON">Create
+            Person</link>.</para>
+          </listitem>
+
+          <listitem>
+            <para>Add the skills and qualifications for the people you added
+            in the prior step. For employees you can use the <link
+            linkend="HUMANRES_EditEmployeeSkills">Skills</link> menu item and
+            <link linkend="HUMANRES_EditEmployeeQuals">Qualifications</link>
+            menu item in the Employees Feature Menu Screen. For non employees
+            (and employees) you can use the <link
+            linkend="HUMANRES_EditEmployeeSkills">Skills</link> and <link
+            linkend="HUMANRES_EditEmployeeQuals">Qualifications</link>
+            features.</para>
+          </listitem>
+
+          <listitem>
+            <para>Add employee resumes using <link
+            linkend="HUMANRES_EditPartyResume">Resume</link> feature.</para>
+          </listitem>
+
+          <listitem>
+            <para>Add training classes in the <link
+            linkend="HUMANRES_TrainingCalendar">Training</link> feature and
+            class participants</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>Department Organization</title>
+
+        <para>In this section we will set up your organization structure using
+        the GUI tree interface in the <link linkend="HUMANRES_main">Main
+        Window</link>.</para>
+
+        <para><itemizedlist>
+            <listitem>
+              <para>In the HR App your organization structure is a tree built
+              of <link linkend="G_INTERNAL_ORGANIZATION">internal
+              organizations.</link> You will create the internal organizations
+              using the Party application and then link them together using
+              the HR App GUI Tree in <link linkend="HUMANRES_main">Main
+              Window</link>. See <link
+              linkend="INTRA_APPL_INTEGRATION_CREATE_INTERNAL_ORG">Create
+              Internal Organization</link> to learn how to create Internal
+              Organizations.</para>
+            </listitem>
+
+            <listitem>
+              <para>After creating your Internal Organizations link them
+              together into an organization structure using the context menu
+              in the tree widget. Right click on an organization icon. Select
+              a internal organization from the drop-down list. The
+              organization is added to the tree beneath the selected
+              node</para>
+            </listitem>
+          </itemizedlist></para>
+      </sect2>
+
+      <sect2>
+        <title>Employments</title>
+
+        <para>Now that we have people and organizations in our application we
+        can bring them together in an employment. An employment is a
+        relationship between person (who must be an employee) to an internal
+        organization. The employment relationship tracks information about
+        employees benefits, preferences and employment agreement.</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Create an employment using the <link
+            linkend="HUMANRES_EditEmployment">Employments</link>
+            feature.</para>
+          </listitem>
+
+          <listitem>
+            <para>Add <link
+            linkend="HUMANRES_EditPartyBenefits">Benefits</link> and <link
+            linkend="HUMANRES_EditPayrollPreferences">Preferences</link></para>
+          </listitem>
+
+          <listitem>
+            <para>You can establish a formal agreement for the employment in
+            the <link
+            linkend="HUMANRES_EditAgreementEmploymentAppls">Agreement
+            Employment Applications</link> screen</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>Positions</title>
+
+        <para>At this point we have people and organizations and an employment
+        agreement that specifies the terms of the employment. It's time to
+        give the employee something to do so in this section you will set up
+        positions (jobs). As you set up your positions you can add
+        responsibilities and reporting structure.</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Add jobs in the <link
+            linkend="HUMANRES_EditEmplPosition">Employee Position</link>
+            feature.</para>
+          </listitem>
+
+          <listitem>
+            <para>You can list the responsibilities of a position over time
+            using the <link
+            linkend="HUMANRES_EditEmplPositionResponsibilities">Responsibilities</link>
+            screen.</para>
+          </listitem>
+
+          <listitem>
+            <para>You can set up a reporting structure for positions using the
+            <link
+            linkend="HUMANRES_EditEmplPositionReportingStructs">Reporting
+            Structure</link> screen.</para>
+          </listitem>
+
+          <listitem>
+            <para>After you have created a job you bind it to a person (who be
+            an employee or a contract employee) using <link
+            linkend="HUMANRES_EditEmplPositionFulfillments">Fulfillments</link></para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>Recruiting</title>
+
+        <para>The business is growing and you need help. Hear is how you can
+        recruit new employees.</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>User the <link
+            linkend="HUMANRES_FindJobRequisitions">Recruitment</link> feature
+            to requisition new jobs.</para>
+          </listitem>
+
+          <listitem>
+            <para>After a requisition is created you post the job using <link
+            linkend="HUMANRES_FindInternalJobPosting">Internal Job
+            Posting</link>.</para>
+          </listitem>
+
+          <listitem>
+            <para>Applicants can apply for positions in the <link
+            linkend="HUMANRES_FindEmploymentApps">Employment
+            Applications.</link></para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>Security</title>
+
+        <para>HR App display and usage is controlled by OFBiz security which
+        depending on a users role allows or prevents a user from seeing
+        information in or taking action on HR App features. General
+        information about Security is discussed in the <link
+        linkend="SECURITY">Security</link> chapter.</para>
+      </sect2>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="HUMANRES_main">
+    <title>Main Window</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../humanres_en_images/MainCompanyTreeView.jpg"
+                     format="jpg" scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para><emphasis role="bold">Breadcrumbs -</emphasis> Applications &gt;
+    HR</para>
+
+    <para>The Main window is the entry point into the HR App and displays the
+    Company tree view for navigating to key HR App items.</para>
+
+    <para><emphasis role="bold"> Nodes In the Company Tree</emphasis></para>
+
+    <para>There are three node types in the tree, each identified by a
+    different icon. The top of the tree represents your Company, the highest
+    level in the HR App organization. The Company and departments under the
+    Company can have children departments or positions. Under positions are
+    the people who fulfill the position.</para>
+
+    <para>See: <command
+    xlink:href="https://cwiki.apache.org/OFBENDUSER/apache-ofbiz-business-setup-guide.html#ApacheOFBizBusinessSetupGuide-generalCompanySetup"
+    xlink:show="new">OFBiz General Company Setup</command> for directions on
+    replacing the root "Your Company Name Here [Company]" with the name of
+    your company.</para>
+
+    <para><emphasis role="bold">Usage</emphasis></para>
+
+    <itemizedlist>
+      <listitem>
+        <para>Navigate the HR Organization to view departments, positions and
+        people</para>
+      </listitem>
+
+      <listitem>
+        <para>Add or remove a department</para>
+      </listitem>
+
+      <listitem>
+        <para>Add a person</para>
+      </listitem>
+
+      <listitem>
+        <para>Quickly open the profile of any item in the tree</para>
+      </listitem>
+
+      <listitem>
+        <para>If the item is a position you can add a person to fulfill the
+        position</para>
+      </listitem>
+    </itemizedlist>
+
+    <para><emphasis role="bold">Actions</emphasis></para>
+
+    <itemizedlist>
+      <listitem>
+        <para>Click on an tree node to open the profile view of the item
+        represented by the node</para>
+      </listitem>
+
+      <listitem>
+        <para>Right click on a node to open a pop up context menu</para>
+      </listitem>
+    </itemizedlist>
+
+    <para><emphasis role="bold">Context Menu Actions</emphasis></para>
+
+    <para>Right click on a node in the Company tree to open the context
+    menu.</para>
+
+    <para><emphasis role="bold">Organization Node Options</emphasis></para>
+
+    <itemizedlist>
+      <listitem>
+        <para>Add Employee Position: Select to open the <link
+        linkend="HUMANRES_EditEmplPosition">Employee Position</link>
+        screenlet</para>
+      </listitem>
+
+      <listitem>
+        <para>Add Internal Organization: Select opens a drop down list of
+        internal organization Id's. Select an id and click create. The
+        organization name is added below the current node.</para>
+      </listitem>
+
+      <listitem>
+        <para>Remove Internal Organization: Select Remove Internal
+        Organization. You are prompted to confirm. Click OK. The organization
+        is remove from the tree.</para>
+      </listitem>
+    </itemizedlist>
+
+    <para><emphasis role="bold">Position Node Option:</emphasis> Add Person:
+    Select to open the <link
+    linkend="HUMANRES_EditEmplPositionFulfillments">Add Position
+    Fulfillment</link> screenlet.</para>
+  </chapter>
+
+  <chapter xml:id="HUMANRES_FindEmployee">
+    <title>Employees</title>
+
+    <para>The Employees feature manages information about people who have an
+    <glossterm linkend="G_EMPLOYMENT">employment</glossterm> relationship with
+    your Company or one of it's departments. This features include an
+    <glossterm linkend="G_EMPLOYEE">employee</glossterm> Profile, a display of
+    all employee related information in a single screen and facilities for
+    managing employee skills, qualifications, training, leave and payroll
+    history.</para>
+
+    <sect1>
+      <title>Find Employee</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmployeesMain.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis> - HR Human Resources
+      &gt; Employees</para>
+
+      <para><emphasis role="bold">Usage</emphasis> - In the Employees screen
+      you can create a new employee, search for an existing employee and view
+      a list of employees. Selecting an employee in the list opens the
+      employees profile and other screens associated with the employee. The
+      Employees screen is divided in three screenlets, they are described in
+      the following sections.</para>
+
+      <sect2 xml:id="HUMANRES_NewEmployee">
+        <title>New Employee</title>
+
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="../humanres_en_images/EmployeeNewEmployee.png"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+
+        <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources
+        &gt; Employees - Click New Employee</para>
+
+        <para><emphasis role="bold">Usage</emphasis> - Create a new
+        Employee.</para>
+
+        <para><emphasis role="bold">Actions</emphasis> - Click so save a new
+        Employee.</para>
+      </sect2>
+
+      <sect2>
+        <title>Find an employee</title>
+
+        <para><emphasis role="bold">Breadcrumbs - </emphasis>Human Resources
+        &gt; Employees</para>
+
+        <para><emphasis role="bold">Usage -</emphasis> Find an employee using
+        search criteria.</para>
+
+        <note>
+          <para>Only Employees Are Found.</para>
+
+          <para>Use the Party Manager application to get information about
+          people who are not employees.</para>
+
+          <para>To do this: In the Applications menu select Party, enter
+          search criteria to search for the person, to return the HR App
+          select HR from the Applications menu.</para>
+        </note>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Party ID - Must be the id of a party who is an
+            employee.</para>
+          </listitem>
+
+          <listitem>
+            <para>User Login - The identifier used to login to OFBiz</para>
+
+            <note>
+              <para>An employee may have zero or more user logins.</para>
+            </note>
+          </listitem>
+
+          <listitem>
+            <para>Last name - Employee last name</para>
+          </listitem>
+
+          <listitem>
+            <para>First name - Employee first name</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <para>Actions are described from the left to right, top to bottom of
+        the Find an employee screen.</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Contact Information radio buttons - Displays or hides
+            additional criteria fields.</para>
+          </listitem>
+
+          <listitem>
+            <para>Lookup Party button (title bar): Opens a list of employees
+            based on the criteria entered.</para>
+          </listitem>
+
+          <listitem>
+            <para>Hide Fields / Show Lookup Fields button (title bar): Hides /
+            shows the filter fields in the "Find an employee"
+            screenlet.</para>
+          </listitem>
+
+          <listitem>
+            <para>Lookup Party icon (right of Party Id field): Opens a pop up
+            search form that finds a Party Id. Use the form to find employees
+            by id or first and last name when you do not know the employee id.
+            Remember the search is only for employees and not all people are
+            employees.</para>
+          </listitem>
+
+          <listitem>
+            <para>Lookup Party button(button center of "Find an employee"
+            footer): Opens a list of employees using the criteria in the "Find
+            an employee" screenlet (same as Lookup Party in the title
+            bar).</para>
+          </listitem>
+
+          <listitem>
+            <para>Show all records button: Opens a list of all employees (same
+            as selecting Lookup Party without entering a criteria).</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>Parties found</title>
+
+        <para>This section list the employees found by the Find an employee
+        search.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>PARTY ID: The unique identifier for the employee.</para>
+          </listitem>
+
+          <listitem>
+            <para>USER LOGIN: The user login for the employee. May be
+            "(None)", "(Many)" in the case where an employee has no or more
+            then one login.</para>
+          </listitem>
+
+          <listitem>
+            <para>NAME: The last name, first name of the employee.</para>
+          </listitem>
+
+          <listitem>
+            <para>TYPE: The party type of the employee. Typically
+            "Person"</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Party Id link (left column in Parties Found list): Opens the
+            employees profile.</para>
+          </listitem>
+
+          <listitem>
+            <para>DETAILS button (right column in Parties Found list): Opens
+            the employees profile (same as clicking the Party Id link).</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EmployeeProfile">
+      <title>Profile (Employee)</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmployeeProfile.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>The Profile screen for an employee is a collection of screenlets
+      each presenting information about a different aspect of the employee. It
+      is the first item on a menu that has screens for other information
+      related to the employee.</para>
+
+      <para>Usage</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>View a summary of information on an employee in a single
+          screen</para>
+        </listitem>
+
+        <listitem>
+          <para>Update Personal Information</para>
+        </listitem>
+
+        <listitem>
+          <para>View, create, update, and expire employee contact
+          information</para>
+        </listitem>
+
+        <listitem>
+          <para>View and create a list of related accounts</para>
+        </listitem>
+
+        <listitem>
+          <para>View training records</para>
+        </listitem>
+
+        <listitem>
+          <para>View employment information</para>
+        </listitem>
+
+        <listitem>
+          <para>View, create, and update login id's, update security
+          group</para>
+        </listitem>
+
+        <listitem>
+          <para>View and create party attributes</para>
+        </listitem>
+
+        <listitem>
+          <para>Upload party content</para>
+        </listitem>
+
+        <listitem>
+          <para>View and create notes</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Each of the Profile screenlets are described
+      in the sections that follow.</emphasis></para>
+
+      <sect2>
+        <title>Personal Information Screenlet</title>
+
+        <para>The Personal Information screenlet has only a few of the fields
+        available in OFBiz for recording information about an employee. You
+        can collect and edit additional information by clicking the Update
+        link in the title bar.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Party Id: The id of a employee associated with the profile
+            information</para>
+          </listitem>
+
+          <listitem>
+            <para>Name: The first and last name of the employee</para>
+          </listitem>
+
+          <listitem>
+            <para>Comments: A comment associated with the employee</para>
+          </listitem>
+
+          <listitem>
+            <para>External Id: The id of an external login system e.g. An LDAP
+            server</para>
+          </listitem>
+
+          <listitem>
+            <para>Status ID: Available status: Enabled, Disabled, and
+            Assigned.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Action </emphasis>Update title bar button:
+        Edit Personal Information</para>
+      </sect2>
+
+      <sect2>
+        <title>Contact Information Screenlet</title>
+
+        <para>The Contact Information screenlet summarizes contact details for
+        multiple channels including:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Electronic Address</para>
+          </listitem>
+
+          <listitem>
+            <para>Postal Address</para>
+          </listitem>
+
+          <listitem>
+            <para>Phone Number</para>
+          </listitem>
+
+          <listitem>
+            <para>Email Address</para>
+          </listitem>
+
+          <listitem>
+            <para>Internet IP Address</para>
+          </listitem>
+
+          <listitem>
+            <para>Internet Domain Name</para>
+          </listitem>
+
+          <listitem>
+            <para>Web URL/Address</para>
+          </listitem>
+
+          <listitem>
+            <para>Internal Party Note</para>
+          </listitem>
+
+          <listitem>
+            <para>LDAP Address</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Create New - Opens the Create New Contact Information
+            screen</para>
+          </listitem>
+
+          <listitem>
+            <para>Update - Click to change information or add a contact
+            purpose. You can add a contact purpose when you create and Email
+            Address, Phone Number or LDAP Address. Use Update to add a contact
+            purpose to Postal Address or Web URL/Address. You can not add a
+            purpose to Electronic Address, Internet IP Address, Internet
+            Domain Name and Internal Party Note</para>
+          </listitem>
+
+          <listitem>
+            <para>Expire - Click to sets the through date (not visible the
+            user) on the contact item. The item is no longer displayed in
+            Contact Information.</para>
+          </listitem>
+
+          <listitem>
+            <para>lookup:anywho.com (only in Phone Number)- Click opens
+            http://www.anywho.com/reverse-lookup in a new browser
+            window</para>
+          </listitem>
+
+          <listitem>
+            <para>Look up White pages (only in Phone Number) - Click opens
+            http://www.whitepages.com/search in a new browser window</para>
+          </listitem>
+
+          <listitem>
+            <para>Send Mail (only in Email Address) - Opens a new
+            communications event. For help see Send Email in the OFBiz Support
+            Apps document.</para>
+          </listitem>
+
+          <listitem>
+            <para>open page in new window (only in Web URL/Address) - Click to
+            open the address in a new browser window.</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>List Related Accounts Screenlet</title>
+
+        <para>Accounts are created in the SFA Manger application See SFA
+        Manager Accounts SFA. Listing an account in the Profile provides a
+        quick link in the HR App to the profile of the account.</para>
+
+        <para><emphasis role="bold"> To Add a Related
+        Account:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>Click Create New to add an account to your Profile</para>
+          </listitem>
+
+          <listitem>
+            <para>Click the Lookup Icon</para>
+          </listitem>
+
+          <listitem>
+            <para>Select from the list of Id's.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Add</para>
+          </listitem>
+
+          <listitem>
+            <para>The Account is added to the list of Related Accounts in your
+            profile.</para>
+          </listitem>
+        </orderedlist>
+
+        <para><emphasis role="bold">Action</emphasis> Click the From Party Id
+        field (in brackets and bold) to open the Related Account
+        profile.</para>
+      </sect2>
+
+      <sect2>
+        <title>Training Screenlet</title>
+
+        <para>The Training screenlet displays a list of classes that have been
+        assigned to this person.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>From Date - Start date time for training</para>
+          </listitem>
+
+          <listitem>
+            <para>Thru Date - End date time for training</para>
+          </listitem>
+
+          <listitem>
+            <para>Training Class Type - Name describing class category. See :
+            <link linkend="HUMANRES_EditTrainingTypes">Training Class
+            Type</link></para>
+          </listitem>
+
+          <listitem>
+            <para>Approver Status - One of Applied, Approved, Assigned,
+            Proposed or Rejected</para>
+          </listitem>
+
+          <listitem>
+            <para>Approver Party - Person with authority to approve
+            training</para>
+          </listitem>
+        </itemizedlist>
+
+        <para>For more information see: <link
+        linkend="HUMANRES_TrainingCalendar">Training</link></para>
+      </sect2>
+
+      <sect2>
+        <title>Current Employment information Screenlet</title>
+
+        <para><emphasis role="bold">Usage -</emphasis> This screenlet shows
+        the employee's department, position and salary.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Company - The organization unit to which the employee is
+            assigned</para>
+          </listitem>
+
+          <listitem>
+            <para>Position - Position(s) held by the employee</para>
+          </listitem>
+
+          <listitem>
+            <para>Salary - Employee salary</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Company [some text]: Click to open Company profile<note>
+                <para>The Profile opened is in the Party Manager application.
+                To return to the HR App select Applications &gt; HR</para>
+              </note></para>
+          </listitem>
+
+          <listitem>
+            <para>Position [some text]: Click to open position Summary
+            screen.</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>User Name(s) Screenlet</title>
+
+        <para><emphasis role="bold">Usage -</emphasis> The User Name(s)
+        screenlet manages user logins and security settings. Logins give a
+        user the ability log into an OFBiz application while security settings
+        control what the user can do while logged on.</para>
+
+        <para>Users with create privileges in the Party Manager application
+        have the ability to create user logins and then to manage the login
+        password and security setting. Others will see a list user login names
+        and status (ENABLED or DISABLED).</para>
+
+        <para>Users may have no user login or multiple logins. Each login has
+        it's own set of security settings so multiple logins provide
+        flexibility in controlling a users connection to OFBiz
+        applications.</para>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Create New text in title bar: Opens the Create User Login
+            screenlet.</para>
+          </listitem>
+
+          <listitem>
+            <para>Edit button: Opens the Edit Login screen where a user can
+            update the login or change the password.</para>
+          </listitem>
+
+          <listitem>
+            <para>Security Groups button: Opens the
+            AddUserLoginToSecurityGroup screenlet where you can add, update or
+            delete <glossterm linkend="G_SKILL_GROUP">Security
+            Groups</glossterm>.</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>Party Attribute(s) Screenlet</title>
+
+        <para><emphasis role="bold">Usage -</emphasis> Party Attributes
+        provide an ability for users to attach arbitrary names and values to
+        people. These name value pairs can be used in different ways to extend
+        the information collected about a person without having to make
+        changes to the database.</para>
+
+        <para>For example, a name could be added "On Company Team" with a
+        value "Football". A report could be created for employees grouped by
+        Company Team.</para>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Create New title bar button: Opens the Party Attribute
+            screenlet where you can create name value pairs for the
+            party.</para>
+          </listitem>
+
+          <listitem>
+            <para>Edit button: Click to open Party Attribute screenlet where
+            you can update name value pairs for the party.</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>Party Content Screenlet</title>
+
+        <para><emphasis role="bold">Usage -</emphasis> The Party Content
+        screenlet provides a means to load content to the OFBiz Content
+        Manager application. You can use this feature to load your picture for
+        display in your profile.</para>
+
+        <para><emphasis role="bold">Action -</emphasis> To load an image for
+        display in the Personal Information screenlet:</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Click Browse and select an image using the native file
+            search</para>
+          </listitem>
+
+          <listitem>
+            <para>In the drop-down list select Logo Image URL</para>
+          </listitem>
+
+          <listitem>
+            <para>In Is Public select Yes</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Upload.</para>
+          </listitem>
+        </orderedlist>
+
+        <para>After a screen refresh the selected image will appear above
+        Party Id in the Personal Information as Personal Image</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Content Id - A unique content identifier linking the
+            employee to the content</para>
+          </listitem>
+
+          <listitem>
+            <para>Content Type - One of Internal Content, User Defined
+            Content, Logo Image URL, or Vendor Shipping Info</para>
+          </listitem>
+
+          <listitem>
+            <para>Content Name - A user defined name for the content</para>
+          </listitem>
+
+          <listitem>
+            <para>Content Description - A user defined description of the
+            content</para>
+          </listitem>
+
+          <listitem>
+            <para>Content mime type - One of application/octet-stream,
+            application/pdf, image/gif, image/jpeg, text/html, text/plain, or
+            text/x-diff</para>
+          </listitem>
+
+          <listitem>
+            <para>Status- One of Available Deactivated, Final Draft, In
+            Progress, Initial Draft, Published, or Revised Draft</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Content Id button: Opens the dedicated Party Content
+            screen.</para>
+          </listitem>
+
+          <listitem>
+            <para>View button: Click to open content. Content will open in a
+            viewer appropriate for the content type.</para>
+          </listitem>
+
+          <listitem>
+            <para>Remove button: Deletes the record</para>
+          </listitem>
+
+          <listitem>
+            <para>Browse button: Opens system file upload</para>
+          </listitem>
+
+          <listitem>
+            <para>Upload button: Uploads file to OFBiz runtime &gt; upload
+            folder. A record is created in Content Manager.</para>
+          </listitem>
+        </itemizedlist>
+
+        <note>
+          <para>You can manage the uploaded content in OFBiz content manager.
+          To find the content:</para>
+
+          <orderedlist>
+            <listitem>
+              <para>In the main Applications menu select Content.</para>
+            </listitem>
+
+            <listitem>
+              <para>In the Content Manager Menu select Content</para>
+            </listitem>
+
+            <listitem>
+              <para>In the content id filed enter the content id as displayed
+              in the Party Content list.</para>
+            </listitem>
+
+            <listitem>
+              <para>Click Find</para>
+            </listitem>
+          </orderedlist>
+        </note>
+      </sect2>
+
+      <sect2>
+        <title>Notes Screenlet</title>
+
+        <para><emphasis role="bold">Usage -</emphasis> In the Notes screenlet
+        you can create and display notes. Notes may not be updated after they
+        are created.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Note Name - Required name for the note. The text of the node
+            is to the right of the name.</para>
+          </listitem>
+
+          <listitem>
+            <para>By - Name of the person who created the note.</para>
+          </listitem>
+
+          <listitem>
+            <para>At - Date time note was entered</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_ListEmployments">
+      <title>Employments</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmployeeEmployments.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employees &gt; Click Lookup Party &gt; Click Details &gt; Click Menu
+      Item Employments</para>
+
+      <para><emphasis role="bold">Usage -</emphasis> This screen displays a
+      convenient list of <glossterm
+      linkend="G_EMPLOYMENT">Employments</glossterm> for an employee, however
+      usually a person will have only a single employment. You can navigate to
+      the employee profile to view summary information on the employee or to
+      the employment edit page in the <link
+      linkend="HUMANRES_FindEmployments">Employments</link> feature to edit
+      the employment.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><glossterm linkend="G_INTERNAL_ORGANIZATION">Internal
+          Organization</glossterm></para>
+        </listitem>
+
+        <listitem>
+          <para>Employee Party Id - The <glossterm linkend="G_PARTY_ID">party
+          Id</glossterm> of the employee.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - Hire date</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - Last day of employment.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_TERMINATION_REASON">Termination
+          Reason</glossterm> Id - The reason for the. Reasons are defined in
+          Global HR Settings <link
+          linkend="HUMANRES_EditTerminationReasons">Termination
+          Reasons</link>.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_TERMINATION_TYPE">Termination
+          Type</glossterm> Id - The type of termination. Types are defied in
+          Global HR Settings <link
+          linkend="HUMANRES_EditTerminationTypes"><link
+          linkend="HUMANRES_EditTerminationTypes">Termination
+          Type</link></link>.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>DemoEmployee button: Opens the PROFILE screen<note>
+              <para>This action is the same as clicking on the Profile menu
+              item adjacent to this item.</para>
+            </note></para>
+        </listitem>
+
+        <listitem>
+          <para>Edit button: Opens the Edit Employment screen in the <link
+          linkend="HUMANRES_FindEmployments">Employments</link>
+          feature.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_ListEmplPositions">
+      <title>Employee Position</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmployeeListEmplPositions.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employees &gt; Click Lookup Party &gt; In Parties Found Click Details
+      &gt; Click Menu Item Employee Position</para>
+
+      <para>Usage - This screen displays a convenient list of <glossterm
+      linkend="G_POSITION">positions</glossterm> for an employee. Employee
+      positions are created and managed in the <link
+      linkend="HUMANRES_EditEmplPosition">Employee Position</link> feature.
+      From this screen you can navigate to the employee position profile
+      screen of the employee to view summary information on the employees
+      position. Click the link button in the party id column to navigate to
+      the profile of the <link linkend="G_INTERNAL_ORGANIZATION">internal
+      organization</link> authorized to fill the position.</para>
+
+      <para>To edit position information see <link
+      linkend="HUMANRES_EditEmplPosition">Edit Employee Position</link></para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Status ID - One of Active/Open, Inactive/Closed or Planed
+          For.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm><glossterm linkend="G_PARTY_ID">Party
+          Id</glossterm></glossterm></para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para><glossterm linkend="G_BUDGET_ID">Budget Id</glossterm></para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para><glossterm linkend="G_BUDGET_SEQUENCE_ID">Budget Item Sequence
+          Id</glossterm></para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para><glossterm linkend="G_EMPLOYEE_POSITION_TYPE">Employee
+          Position Type</glossterm></para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Estimate From Date - May be used for budgeting</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Estimate Thru Date - May be used for budgeting</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para><glossterm linkend="G_SALARY_FLAG">Salary
+          Flag</glossterm></para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para><glossterm linkend="G_EXEMPT_FLAG">Exempt
+          Flag</glossterm></para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para><glossterm linkend="G_FULLTIME_FLAG">Fulltime
+          Flag</glossterm></para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para><glossterm linkend="G_TEMPORY_FLAG">Temporary
+          Flag</glossterm></para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Actual From Data - May be used for financial and regulatory
+          reporting</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Actual Thru Data - May be used for financial and regulatory
+          reporting</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Employee Position Id text link: Click to open the Summary
+          screen (profile) in the Employee Position feature for the employee
+          position</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Party Id button: Click to open profile screen of the
+          organization assigned to the position</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditEmployeeSkills">
+      <title>Skills</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmployeeSkills.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employees &gt; Click Lookup Party &gt; In Parties Found Click Details
+      &gt; Click Menu Item Skills</para>
+
+      <para><emphasis role="bold">Usage -</emphasis> You can assign a skill to
+      an employee or organization in the Skills screen. Assign numeric values
+      to <link linkend="G_YEARS_EXPERIENCE">Years Experience</link>, <link
+      linkend="G_RATING">Rating</link> and <link linkend="G_SKILL_LEVEL">Skill
+      Level</link> to provide objective criteria for discriminating between
+      resources with the same skill. These attributes can be used in the <link
+      linkend="HUMANRES_FindPartySkills">Skills</link> feature to locate
+      resources with a needed skill.</para>
+
+      <para>You manage skill in <link linkend="HUMANRES_EditSkillType">Global
+      HR Settings</link> by creating new skill groups and skills or editing
+      existing skills. You can search for employees skills as well as manage
+      employee skills in the <link
+      linkend="HUMANRES_FindPartySkills">Skills</link> feature.</para>
+
+      <para><emphasis role="bold">. Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Person Id - The unique identifier of the person assigned the
+          skill.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Skill - The skill name from <link
+          linkend="HUMANRES_EditSkillType">Global HR Settings</link></para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para><link linkend="G_YEARS_EXPERIENCE">Years Experience</link> - A
+          numeric value identifying the number of years of experience.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para><link linkend="G_RATING">Rating</link> - A numeric value that
+          can be used as a filter for finding and reporting on skills in the
+          company.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para><link linkend="G_SKILL_LEVEL">Skill Level</link> - A numeric
+          value that can be used as a filter for finding and reporting on
+          skills in the company</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create button - Click to add a skill to an employees list of
+          skills</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Update button - Click to update changes Years Experience,
+          Rating and Skill Level</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Delete button - Click to delete a skill from the employee's
+          skill list. Deleted skills can not</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditEmployeeQuals">
+      <title>Qualifications</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmployeeEditEmployeeQuals.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employees &gt; Click Lookup Party &gt; In Parties Found Click Details
+      &gt; Click Menu Item Qualifications</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>You can assign a <link
+      linkend="G_PARTY_QUALIIFICATION_TYPE">qualification</link> to a person
+      or an organization to track their ability to perform a job.</para>
+
+      <para>You can search and also assign qualifications in the
+      Qualifications feature. You can manage qualification groups and types in
+      Global Settings Qualification Type.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><link
+          linkend="G_PARTY_QUALIIFICATION_TYPE">Qualification</link> - The
+          Qualification name.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - The start date of the qualification.</para>
+        </listitem>
+
+        <listitem>
+          <para>Qualification Desc - A user defined description of the
+          qualification.</para>
+        </listitem>
+
+        <listitem>
+          <para>Title - A user defined title of the qualification</para>
+        </listitem>
+
+        <listitem>
+          <para>Status - One of completed, deferred or incomplete may be used
+          to indicate if state of the qualification for the party.</para>
+        </listitem>
+
+        <listitem>
+          <para>Verify Status - Indicates if the validity of the qualification
+          has be checked.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The end date of the qualification i.e. The
+          expiration date of a drivers license</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Update button: Click to save changes to the
+          qualification.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the qualification. The
+          qualification is deleted and can not be restored.</para>
+
+          <note>
+            <para>Instead of deleting a qualification it is better to set the
+            thru date.</para>
+          </note>
+        </listitem>
+
+        <listitem>
+          <para>Create button: Click to create a new qualification for the
+          party.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditEmployeeTrainings">
+      <title>Training</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmployeeTraining.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employees &gt; Click Lookup Party &gt; In Parties Found Click Details
+      &gt; Click Menu Item Training</para>
+
+      <para><emphasis role="bold">Usage </emphasis>- This screen presents a
+      list of a persons training status. Training is managed in the <link
+      linkend="HUMANRES_FindTrainingStatus">Training Status</link> screen in
+      the Calendar feature. Classes classes can be created and participants
+      assigned in <link linkend="HUMANRES_TrainingCalendar">Training
+      Calendar</link>.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Employee Party Id - The unique identifier for person
+          associated with the training list.</para>
+        </listitem>
+
+        <listitem>
+          <para>Training Request Id - The identifier for the request for this
+          person to attend the training.</para>
+        </listitem>
+
+        <listitem>
+          <para>Training Class Type - The name of the training class.</para>
+        </listitem>
+
+        <listitem>
+          <para>Work Effort Id - This field can be ignored by the user.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - The date and time the training starts</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The date and time the training ends.</para>
+        </listitem>
+
+        <listitem>
+          <para>Status - The approval status for the person for this class.
+          May be one of</para>
+        </listitem>
+
+        <listitem>
+          <para>Reason - Reason for training</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Employee Party Id button: Click to open the employees profile
+          in the OFBiz Party Manager application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party button: Click to open the approvers profile in
+          the OFBiz Party Manager application.</para>
+        </listitem>
+      </itemizedlist>
+
+      <warning>
+        <para>The OFBiz Party Manager application is separate from the HR App.
+        To return to the HR App Select HR from the Applications menu. You will
+        be returned to the main <link linkend="HUMANRES_main">Main</link>
+        screen.</para>
+      </warning>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditEmployeeLeaves">
+      <title>Leave</title>
+
+      <para>Payroll history displays a list of invoices</para>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmployeeEditEmployeeLeaves.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employees &gt; Click Lookup Party &gt; In Parties Found Click Details
+      &gt; Click Menu Item Training Leave</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>An employee can use this
+      screen to request leave. The List Leave screenlet is a list all of the
+      leave records for the employee. An employee can also create a leave
+      request in the Add Employee Leave screenlet.</para>
+
+      <para>Any user with Human Resource Employee permission can view and
+      request leave for any other employee. Only users with Human Resource
+      Approver permission can update or approve a leave request.</para>
+
+      <para>Leave request are managed in the <link
+      linkend="HUMANRES_FindEmplLeaves">Leave</link> feature where in addition
+      to requesting leave an approver may review and approve assigned request.
+      Leave types and reasons are managed by the administrator in the <link
+      linkend="HUMANRES_EditEmplLeaveTypes">Global Settings Employee Leave
+      Type</link> feature.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Leave Type Id - The name of a leave type. Leave types are
+          defined in <link linkend="HUMANRES_EditEmplLeaveTypes">Global
+          Settings</link></para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - The data the leave starts.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The data the leave ends.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party - The <link linkend="G_PARTY_ID">party
+          id</link> of the <link linkend="G_PERSON">person</link> with
+          authority to approve the leave.</para>
+        </listitem>
+
+        <listitem>
+          <para>Description - A user entered description of the leave.</para>
+        </listitem>
+
+        <listitem>
+          <para>Leave Reason Type - The name of a leave type reason. Leave
+          types reasons are defined in <link
+          linkend="HUMANRES_EditEmplLeaveTypes">Global Settings</link></para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Update button: Click to save changes to a leave record.<note>
+              <para>You must have update or administrator permission to update
+              a leave request.</para>
+            </note></para>
+        </listitem>
+
+        <listitem>
+          <para>Create button: Create button: Click to create a leave
+          request.</para>
+        </listitem>
+
+        <listitem>
+          <para>Employee Party Id button: Click to open the employees profile
+          in the OFBiz Party Manager application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party button: Click to open the approvers profile in
+          the OFBiz Party Manager application.</para>
+
+          <warning>
+            <para>The OFBiz Party Manager application is separate from the HR
+            App. To return to the HR App Select HR from the Applications menu.
+            You will be returned to the main Main screen.</para>
+          </warning>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_PayrollHistory">
+      <title>Payroll History</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmployeePayrollHistory.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employees &gt; Click Lookup Party &gt; In Parties Found Click Details
+      &gt; Click Menu Item Payroll History</para>
+
+      <para><emphasis role="bold">Usage -</emphasis> The Payroll History
+      screen displays a list of invoices for the employee. Generally these are
+      payroll or commission invoices. The invoices life cycle from creation
+      through payment is done in the Accounting application.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Invoice ID - The distance identifier of the invoice. This
+          number can be used to find the invoice in the Accounting
+          application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Invoice Type - Identifies the type of invoice. This will
+          typically be Payroll.</para>
+        </listitem>
+
+        <listitem>
+          <para>Invoice Date - Date the invoice was created.</para>
+        </listitem>
+
+        <listitem>
+          <para>Invoice Status - Status may be In-Processes (can be edited),
+          Approved (has been reviewed, can not be edited), Ready (post to GL),
+          Paid (post to GL)</para>
+        </listitem>
+
+        <listitem>
+          <para>Description - A user entered description of the
+          invoice.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Party - The employee identified by the <link
+          linkend="G_PARTY_ID">party id</link> . The invoice is in effect from
+          the employee to the company.</para>
+        </listitem>
+
+        <listitem>
+          <para>To Party - The party the invoice is to. For payroll this will
+          typically by your company identified by the <link
+          linkend="G_PARTY_ID">party id</link> .</para>
+        </listitem>
+
+        <listitem>
+          <para>Total - Amount paid. For a payroll invoice this will typically
+          be less then the gross amount of the invoice due to deductions for
+          taxes and benefits etc</para>
+        </listitem>
+
+        <listitem>
+          <para>Outstanding Amount - Any unpaid amount due on the
+          invoice.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Invoice Id - Click to open the invoices Overview screen in the
+          Accounting application.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Party - Click to open the Fin. History screen for the
+          From Party party id the OFBiz Party Manager application.</para>
+        </listitem>
+
+        <listitem>
+          <para>To Party - Click to open the Fin. History screen for the To
+          Party party id the OFBiz Party Manager application.</para>
+        </listitem>
+      </itemizedlist>
+
+      <warning>
+        <para>The OFBiz Accounting and Party Manager applications are separate
+        from the HR App. To return to the HR App Select HR from the
+        Applications menu. You will be returned to the main Main
+        screen.</para>
+      </warning>
+
+      <sect2>
+        <title>Invoice Overview</title>
+
+        <note>
+          <para>Description of the Invoice Overview screen is outside the
+          scope of this document.</para>
+        </note>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata fileref="../humanres_en_images/AccountingSetInvoiceStatus.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+      </sect2>
+
+      <sect2>
+        <title>Party Financial History</title>
+
+        <note>
+          <para>Description of the Party Financial History screen is outside
+          the scope of this document.</para>
+        </note>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata fileref="../humanres_en_images/PartyManagerPartyFinancialHistory.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+      </sect2>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>Employments</title>
+
+    <para>An employment is a relationship between a person and your Company.
+    The HR App tracks employment benefits, pay history, unemployment claims
+    and employment agreements for each employed person.</para>
+
+    <para>When you create new employee using the <link
+    linkend="HUMANRES_NewEmployee">New Employee</link> screen the employee
+    relationship is created for you automatically. If there is an a person
+    that was entered into the application by some other means you will have to
+    create the employee relationship manually in the Party Manager
+    application.</para>
+
+    <para>The employment record includes the start and end date of the
+    employment. When the employment ends you include the type of termination
+    and reason. For example and employee may have been let go for poor
+    performance. The type would be fired the reason incompetence.</para>
+
+    <sect1 xml:id="HUMANRES_FindEmployments">
+      <title>Search Employments</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmploymentSearch.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employments</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Use the Employments
+      screen to create an <glossterm
+      linkend="G_EMPLOYMENT">employment</glossterm>, search for an existing
+      employments. Use Search Options to refine the search. Selecting an
+      employment from the list opens the Edit Employment screen.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><link linkend="G_INTERNAL_ORGANIZATION">Internal
+          Organization</link></para>
+        </listitem>
+
+        <listitem>
+          <para>Employee Party Id - The <glossterm linkend="G_PARTY_ID">party
+          id</glossterm> of the employee.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - Hire date</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - Last day of employment.</para>
+        </listitem>
+
+        <listitem>
+          <para>Termination Reason Id - The reason for the. Reasons are
+          defined in Global HR Settings <link
+          linkend="HUMANRES_EditTerminationReasons">Termination
+          Reasons</link>.</para>
+        </listitem>
+
+        <listitem>
+          <para>Termination Type Id - The type of termination. Types are
+          defied in Global HR Settings <link
+          linkend="HUMANRES_EditTerminationTypes"><link
+          linkend="HUMANRES_EditTerminationTypes">Termination
+          Type</link></link>.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>New Employment button: Click to open the screen to create a
+          new employment for a person or organization.</para>
+        </listitem>
+
+        <listitem>
+          <para>Find button: Click for a list of employments. Displays a list
+          of employments in the Search Results screenlet.</para>
+        </listitem>
+
+        <listitem>
+          <para>Employee Party Id button: Click to open the employees <link
+          linkend="HUMANRES_EmployeeProfile">Profile</link>.</para>
+        </listitem>
+
+        <listitem>
+          <para>Edit button: Opens the Edit Employment screen. This is a
+          gateway to the other employment screens: benefits, pay history,
+          unemployment claims and employment agreements</para>
+        </listitem>
+      </itemizedlist>
+
+      <sect2>
+        <title>New Employment</title>
+
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="../humanres_en_images/EmploymentNewEmployment.png"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+
+        <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources
+        &gt; Employments Click New Employment</para>
+
+        <para><emphasis role="bold">Usage -</emphasis> Create a New Employment
+        relationship between and <glossterm
+        linkend="G_INTERNAL_ORGANIZATION">internal organization</glossterm>
+        and an <glossterm linkend="G_EMPLOYEE">employee.</glossterm> Sets the
+        start date for the employment.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para><glossterm linkend="G_INTERNAL_ORGANIZATION">internal
+            organization</glossterm></para>
+          </listitem>
+
+          <listitem>
+            <para>Employee Party Id - The <glossterm
+            linkend="G_PARTY_ID">party id</glossterm> of the employee.</para>
+          </listitem>
+
+          <listitem>
+            <para>From Date - Hire date</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Action - </emphasis>Create button: Click
+        to create the employment.</para>
+      </sect2>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditEmployment">
+      <title>Edit Employments</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmploymentEdit.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employments &gt; In the Search Results Click Edit</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>This screen is used to
+      create or edit and update an employment. In the Main Search Screen it is
+      opened in create mode by clicking the New Employment button or update
+      mode by clicking the Edit button in Search Results.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>From Date - Hire date</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - Last day of employment.</para>
+        </listitem>
+
+        <listitem>
+          <para>Termination Reason Id - The reason for the. Reasons are
+          defined in Global HR Settings <link
+          linkend="HUMANRES_EditTerminationReasons">Termination
+          Reasons</link>.</para>
+        </listitem>
+
+        <listitem>
+          <para>Termination Type Id - The type of termination. Types are
+          defied in Global HR Settings <link
+          linkend="HUMANRES_EditTerminationTypes"><link
+          linkend="HUMANRES_EditTerminationTypes">Termination
+          Type</link></link>.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action - </emphasis> Update button: Click to
+      create or update changes to a employment record.</para>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditPartyBenefits">
+      <title>Party Benefits</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmploymentCreatePartyBenefit.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employments &gt; In the Search Results Click Edit &gt; Click Party
+      Benefits</para>
+
+      <para><emphasis role="bold">Usage</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Add an employee benefit</para>
+        </listitem>
+
+        <listitem>
+          <para>Update an employee benefit</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete an employee benefit</para>
+        </listitem>
+      </itemizedlist>
+
+      <note>
+        <para>At this time Party benefits are not integrated with the OFBiz
+        Accounting application.</para>
+      </note>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Benefit Type Id - A name describing the benefit. See <link
+          linkend="INTRA_APPL_INTEGRATION_ENTITY_DATA_MAINT">Entity Data
+          Maintenance</link> to manage Benefit Type Id .</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The date the benefit ends.</para>
+        </listitem>
+
+        <listitem>
+          <para>Period Type Id - The time period covered by the cost.</para>
+        </listitem>
+
+        <listitem>
+          <para>Cost - Cost of the benefit over the Period Type.</para>
+        </listitem>
+
+        <listitem>
+          <para>Actual Employer Paid Percentage</para>
+        </listitem>
+
+        <listitem>
+          <para>Available Time - Use to track time off for vacation, sick
+          leave and other benefits of that nature</para>
+        </listitem>
+      </itemizedlist>
+
+      <note>
+        <para>Use Web Tools <link
+        linkend="INTRA_APPL_INTEGRATION_ENTITY_DATA_MAINT">Entity Data
+        Maintenance</link> to manage Benefit Type Id. The entity name is
+        BenefitType.</para>
+      </note>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Add button: Click to add a benefit.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the benefit. The benefit is
+          deleted and can not be restored.</para>
+        </listitem>
+
+        <listitem>
+          <para>Submit button: Click to save changes in the list above.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditPayrollPreferences">
+      <title>Payroll Preferences</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmploymentPayrollPreferences.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employments &gt; In the Search Results Click Edit &gt; Payroll
+      Preferences</para>
+
+      <para><emphasis role="bold">Usage</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Add a payroll preference</para>
+        </listitem>
+
+        <listitem>
+          <para>Update a payroll preference</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete a payroll preference</para>
+        </listitem>
+      </itemizedlist>
+
+      <note>
+        <para>At this time the Payroll Preferences are not integrated with the
+        OFBiz Accounting application.</para>
+      </note>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Payroll Preference SequenceId - This is an identifier to
+          distinguish between different preference for the same employee.<note>
+              <para>This value is required during data entry but is over
+              written with an OFBiz generated sequential number.</para>
+            </note></para>
+        </listitem>
+
+        <listitem>
+          <para>Deduction Type Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Payment Method Type - Offers options for how the employee
+          would like to be paid.</para>
+
+          <note>
+            <para>HR App demo data contains many payments types that may not
+            be appropriate for paying an employee. Who wants to be paid by
+            Gift Card? Use Web Tools <link
+            linkend="INTRA_APPL_INTEGRATION_ENTITY_DATA_MAINT">Entity Data
+            Maintenance</link> to manage Payment Type. The entity name is
+            PaymentMethodType.</para>
+          </note>
+        </listitem>
+
+        <listitem>
+          <para>Period Type Id - Identifies the frequency of payment.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The date when this preference ends.</para>
+        </listitem>
+
+        <listitem>
+          <para>Percentage - The percentage of total pay to be paid using
+          payment preference.</para>
+        </listitem>
+
+        <listitem>
+          <para>Flat Amount - A flat amount of pay to be paid using payment
+          preference.<note>
+              <para>Percentage and Flat Amount are exclusive. Use one or the
+              other.</para>
+            </note></para>
+        </listitem>
+
+        <listitem>
+          <para>Routing Number - A Bank Routing Number for use in electronic
+          payments.</para>
+        </listitem>
+
+        <listitem>
+          <para>Account Number - A Bank account number for use in electronic
+          payments.</para>
+        </listitem>
+
+        <listitem>
+          <para>Bank Name - The Bank name for use in electronic
+          payments.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create button: Click to add a benefit. - Requires Employee
+          Role permission.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the benefit. The benefit is
+          deleted and can not be restored. Requires HR Delete or HR Admin
+          permission.</para>
+        </listitem>
+
+        <listitem>
+          <para>Submit button: Click to save changes in the list above.
+          Requires HR Delete or HR Admin permission.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_ListPayHistories">
+      <title>Pay Histories</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmploymentPayHistories.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employments &gt; In the Search Results Click Edit &gt; Pay
+      Histories</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Sets the Salary Step, Pay
+      Grade and Amount for a pay period. This form sets properties for using
+      the Pay Grade method for setting employee pay as described in <link
+      linkend="HUMANRES_EditEmplPositionTypeRates">Position Types and
+      Rates</link>.</para>
+
+      <note>
+        <para>At this time the Payroll Preferences are not integrated with the
+        OFBiz Accounting application and the screenlet is not in operation.
+        There should be one pay history for each employment. Currently that
+        pay history is not being displayed.</para>
+      </note>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>From Date - The start date of the employment.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The end date of the pay history</para>
+        </listitem>
+
+        <listitem>
+          <para>Salary Step Sequence Id - Enter to use Pay Grades. This is the
+          Step Sequence Id for a Pay Grade which indicates the Rate
+          Amount.</para>
+        </listitem>
+
+        <listitem>
+          <para>Pay Grad Id - Enter use to Pay Grades. The Pay Grade Id
+          determines the Salary Step Sequence Id used.</para>
+        </listitem>
+
+        <listitem>
+          <para>Period Type - The time period over which payment is
+          made.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Delete button: Click to delete the Pay History. The Pay
+          History is deleted and can not be restored.</para>
+        </listitem>
+
+        <listitem>
+          <para>Update button: Click to save changes to a leave record.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditUnemploymentClaims">
+      <title>Unemployment Claims</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmploymentcreateUnemploymentClaim.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employments &gt; In the Search Results Click Edit &gt; Employment
+      Claims</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Track unemployment claims
+      for an employment.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Unemployment Claim Id - Unique Id for claim. May be user
+          entered of system generated.</para>
+        </listitem>
+
+        <listitem>
+          <para>Unemployment Claim Date</para>
+        </listitem>
+
+        <listitem>
+          <para>Description - User defined description of the claim.</para>
+        </listitem>
+
+        <listitem>
+          <para>Status ID - One of Active/Open, Inactive/Closed or Planned
+          For<note>
+              <para>Use Web Tools <link
+              linkend="INTRA_APPL_INTEGRATION_ENTITY_DATA_MAINT">Entity Data
+              Maintenance</link> to manage Payment Type. The entity name is
+              StatusItem with StatusTypeId set to
+              "EMPL_POSITION_STATUS".</para>
+            </note></para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - Unemployment Claim end date</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create button: Click to create an unemployment claim.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the unemployment claim. The
+          claim is deleted and can not be restored.</para>
+        </listitem>
+
+        <listitem>
+          <para>Submit button: Click to save changes in the list above.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditAgreementEmploymentAppls">
+      <title>Agreement Employment Applications</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmploymentEditAgreementEmploymentAppls.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employments &gt; In the Search Results Click Edit &gt; Agreement
+      Employment Appl</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Creates a record
+      associating the employment to an employment agreement. An employment
+      agreements must be created in the Accounting Application before you can
+      complete this task. See <link
+      linkend="INTRA_APPL_INTEGRATION_EMPL_AGREEMENTS">Employment
+      Agreements</link></para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Agreement Id - Unique identifier for the agreement. Created in
+          the Accounting Application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Agreement Item Seq Id - Sequence Id - A unique identifier for
+          an agreement item created in the Accounting Application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Party Id From - Typically your Company, this is generally the
+          originating party for an employment agreement.</para>
+        </listitem>
+
+        <listitem>
+          <para>Party Id To - The party subject to the terms of the agreement.
+          This defaults to the id of the employments party.</para>
+        </listitem>
+
+        <listitem>
+          <para>Role Type Id From - This defaults to 'Internal Organization',
+          the role of the party id from (Company).</para>
+        </listitem>
+
+        <listitem>
+          <para>Role Type Id To - This defaults to Employee, the role to the
+          Party Id To</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - This is the From Date of the Employment. This date
+          can be found in the Employments screen described above.</para>
+        </listitem>
+
+        <listitem>
+          <para>Agreement Date - The date when the Agreement was originated,
+          accepted, signed, or amended. This is not necessarily the From Date
+          which covers the period of performance for the Agreement.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - Agreements should and usually do have an
+          expiration date, after which the Agreement is no longer in effect
+          unless extended or amended by another Agreement.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>New Employment button: Click to open the New Employment
+          screenlet.</para>
+        </listitem>
+
+        <listitem>
+          <para>Create button: Click to create the association between the
+          employment and an agreement.</para>
+        </listitem>
+
+        <listitem>
+          <para>Submit button: Click to save changes in the list above.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="HUMANRES_FindEmplPositions">
+    <title>Employee Position</title>
+
+    <para>In OFBiz a <glossterm linkend="G_POSITION">position</glossterm> is
+    the authorization, typically from the budget of an internal organization,
+    for the Company to engage one person to do a job. OFBiz handles positions
+    in a flexible manner so you can think of a position as an authorization
+    for a full-time equivalent (FTE).</para>
+
+    <para>This means that you can fulfill a position with a person in a number
+    of different ways. You can Fill a position with one full time person,
+    change the assignment of a position from one person to another over time,
+    or split a position across more then one person at the same a time.</para>
+
+    <note>
+      <para>As implemented a position can be fulfilled by either a person or
+      organization. For discussion here we will assume that positions are only
+      fulfilled by people. The person may or may not be an employee.</para>
+    </note>
+
+    <para>Positions have a status. They can be one of: Planned For,
+    Active/Open, or Inactive/Closed.</para>
+
+    <para>Positions have a type, defined in Global HR Settings, which
+    describes the job and it's pay rates. Some examples types could be
+    secretary, production worker, sales manager, executive vice president or
+    OFBiz programmer. If more then one person is needed for a type of job then
+    a position must be created for each required person i.e. If 10 secretaries
+    are authorized for the Human Resource department then 10 positions are
+    created with type secretary.</para>
+
+    <para>Positions have a reporting structure. Positions report to other
+    positions and not the people who hold the position. You can identify the
+    position a position reports to and/or the positions(s) a position
+    manages.</para>
+
+    <warning>
+      <para>In the HR App it is possible to create circular reporting
+      structures where a Position the reporting to and managed by positions
+      are the same. It is the users responsibility to exercise common sense
+      when creating the reporting structure.</para>
+    </warning>
+
+    <para><emphasis role="bold">Position Features</emphasis><itemizedlist>
+        <listitem>
+          <para>Create Positions</para>
+        </listitem>
+
+        <listitem>
+          <para>Fulfill Positions</para>
+        </listitem>
+
+        <listitem>
+          <para>Assign Position Responsibilities</para>
+        </listitem>
+
+        <listitem>
+          <para>Create a Reporting Structure</para>
+        </listitem>
+
+        <listitem>
+          <para>Administer Position Types, Responsibilities and Rates</para>
+        </listitem>
+      </itemizedlist></para>
+
+    <sect1>
+      <title>Position Search</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/PositionSearch.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employee Position</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Use the position search
+      screen to create a position, search for an existing position and view a
+      list of positions. Use Search Options to refine the search. Selecting a
+      position from the list opens positions Summary screen and provides
+      access the supporting screens Employee Position, Fulfillments,
+      Responsibilities and Reporting Structure.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Empl Position Id - Unique Id for the position. Limits Search
+          Results to id's position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Status ID - One of Active/Open, Inactive/Closed or Planned
+          For</para>
+        </listitem>
+
+        <listitem>
+          <para>Party If - The party id of the <glossterm
+          linkend="G_INTERNAL_ORGANIZATION">internal organization</glossterm>
+          authorized to fill the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Budget Id - Identifies the budget authorizing the
+          position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Budget Item Seq Id - Identifies the item within the budget
+          authorizing the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Empl Position Type Id - The name of the position type.
+          Position types are defined in Global HR Settings <link
+          linkend="HUMANRES_FindEmplPositionTypes">Position Types</link>
+          .</para>
+        </listitem>
+
+        <listitem>
+          <para>Estimated From Date - The date the position is expected to be
+          filled.</para>
+        </listitem>
+
+        <listitem>
+          <para>Estimated Thru Date - The date on which the positions budget
+          authorization is expected to end.</para>
+        </listitem>
+
+        <listitem>
+          <para>Salary Flag - Y if this is a salaried position else N.</para>
+        </listitem>
+
+        <listitem>
+          <para>Exempt Flag - Y if this position exempt from a requirement
+          else N</para>
+        </listitem>
+
+        <listitem>
+          <para>Fulltime Flag - Y if this is a fulltime position else N</para>
+        </listitem>
+
+        <listitem>
+          <para>Temporary Flag - Y if this is a temporary position else
+          N</para>
+        </listitem>
+
+        <listitem>
+          <para>Actual From Date - The date the position is filled.</para>
+        </listitem>
+
+        <listitem>
+          <para>Actual Thru Date - The date the position is no longer
+          authorized.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>New Employee Position button: Click to open the screen to
+          create a new Employee Position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Find button: Click for a list of employee positions. Displays
+          a list of positions in the Search Results screenlet.</para>
+        </listitem>
+
+        <listitem>
+          <para>Employee Position Id text link: Click to open position Summary
+          screen. Summary is the first menu item in a menu list of supporting
+          screens Employee Position, Fulfillments, Responsibilities and
+          Reporting Structure.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_INTERNAL_ORGANIZATION"><glossterm
+          linkend="G_PARTY">Party Id</glossterm> button: Click to open the
+          Profile of the internal organization authorized to fill the
+          position.</glossterm></para>
+        </listitem>
+      </itemizedlist>
+
+      <sect2 xml:id="HUMANRES_EditEmplPosition">
+        <title>New Employee Position</title>
+
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="../humanres_en_images/EmployeePositionEdit.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+
+        <para><emphasis role="bold">Breadcrumbs</emphasis>:</para>
+
+        <para>Human Resources &gt; Employee Position &gt; Click New Employee
+        Position</para>
+
+        <para>Human Resources &gt; Employee Position &gt; In Search Results
+        Click EmployeePosition Id column</para>
+
+        <para><emphasis role="bold">Usage - </emphasis>This screen is used to
+        create or edit and update an employee position. In the Main Search
+        Screen it is opened in create mode by clicking the New Employee
+        Position button or update mode by clicking the EmployeePosition Id
+        column in Search Results.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Employee Position Id - Unique Id for the position. May be
+            user entered or if empty the system will generate sequence
+            number.</para>
+          </listitem>
+
+          <listitem>
+            <para>Status ID - One of Active/Open, Inactive/Closed or Planned
+            For.</para>
+          </listitem>
+
+          <listitem>
+            <para><glossterm linkend="G_INTERNAL_ORGANIZATION"><glossterm
+            linkend="G_PARTY">Party Id</glossterm> - The party id of the
+            internal organization authorized to fill the
+            position.</glossterm></para>
+          </listitem>
+
+          <listitem>
+            <para>Budget Id - A user entered identifier for the budget
+            authorizing the position.</para>
+          </listitem>
+
+          <listitem>
+            <para>Budget Item Seq Id - A user entered identifier for the
+            budget item authorizing the position.</para>
+          </listitem>
+
+          <listitem>
+            <para>Empl Position Type Id - Select a name for the position type.
+            Position types are defined in Global HR Settings <link
+            linkend="HUMANRES_FindEmplPositionTypes">Position Types</link>
+            .</para>
+          </listitem>
+
+          <listitem>
+            <para>Estimated From Date - Enter date the position is expected to
+            be filled.</para>
+          </listitem>
+
+          <listitem>
+            <para>Estimated Thru Date - Enter date on which the positions
+            budget authorization is expected to end.</para>
+          </listitem>
+
+          <listitem>
+            <para>Salary Flag - Enter Y if this is a salaried position else
+            N.</para>
+          </listitem>
+
+          <listitem>
+            <para>Exempt Flag - Enter Y if this position exempt from a
+            requirement else N</para>
+          </listitem>
+
+          <listitem>
+            <para>Fulltime Flag - Enter Y if this is a fulltime position else
+            N</para>
+          </listitem>
+
+          <listitem>
+            <para>Temporary Flag - Enter Y if this is a temporary position
+            else N</para>
+          </listitem>
+
+          <listitem>
+            <para>Actual From Date - Enter the date the position is
+            filled.</para>
+          </listitem>
+
+          <listitem>
+            <para>Actual Thru Date - Enter the date the position is no longer
+            authorized.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions </emphasis>Create button: Click to
+        create the position.</para>
+      </sect2>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EmplPositionView">
+      <title>Position Summary</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmploymentEmplPositionView.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employee Position &gt; In Search Results Click text in column Employee
+      Position Id</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>The Summary screen has a
+      collection of screenlets with information on the different aspects of a
+      position.</para>
+
+      <sect2>
+        <title>Employee Position Information</title>
+
+        <para>Position information list all of the fields the HR App records
+        for a position. These fields can be edited by clicking on the EMPLOYEE
+        POSITION menu item that follows SUMMARY.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Position Id - Unique Id for the position.</para>
+          </listitem>
+
+          <listitem>
+            <para>Status ID - One of Active/Open, Inactive/Closed or Planned
+            For.</para>
+          </listitem>
+
+          <listitem>
+            <para><glossterm linkend="G_INTERNAL_ORGANIZATION"><glossterm
+            linkend="G_PARTY">Party Id</glossterm> - The party id of the
+            internal organization authorized to fill the
+            position.</glossterm></para>
+          </listitem>
+
+          <listitem>
+            <para>Budget Id - A user entered identifier for the budget
+            authorizing the position.</para>
+          </listitem>
+
+          <listitem>
+            <para>Budget Item Seq Id - A user entered identifier for the
+            budget item authorizing the position.</para>
+          </listitem>
+
+          <listitem>
+            <para>Empl Position Type Id - Name for the position type. Position
+            types are defined in Global HR Settings <link
+            linkend="HUMANRES_FindEmplPositionTypes">Position Types</link>
+            .</para>
+          </listitem>
+
+          <listitem>
+            <para>Estimated From Date - Date the position is expected to be
+            filled.</para>
+          </listitem>
+
+          <listitem>
+            <para>Estimated Thru Date - Date on which the positions budget
+            authorization is expected to end.</para>
+          </listitem>
+
+          <listitem>
+            <para>Salary Flag - Y if this is a salaried position else
+            N.</para>
+          </listitem>
+
+          <listitem>
+            <para>Exempt Flag - Y if this position exempt from a requirement
+            else N</para>
+          </listitem>
+
+          <listitem>
+            <para>Fulltime Flag - Y if this is a fulltime position else
+            N</para>
+          </listitem>
+
+          <listitem>
+            <para>Temporary Flag - Y if this is a temporary position else
+            N</para>
+          </listitem>
+
+          <listitem>
+            <para>Actual From Date - Date the position is filled.</para>
+          </listitem>
+
+          <listitem>
+            <para>Actual Thru Date - Date the position is no longer
+            authorized.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Party Id text link: Click to open the Profile of the
+            internal organization authorized to fill the position</para>
+          </listitem>
+
+          <listitem>
+            <para>Empl Position Type Id text link: Click to open Global HR
+            Settings <link linkend="HUMANRES_FindEmplPositionTypes">Position
+            Types</link> for position type.</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>Fulfillments</title>
+
+        <para>A fulfillment is the assignment of people to the position. You
+        can create update and delete fulfillments. See: <link
+        linkend="HUMANRES_EditEmplPositionFulfillments">Fulfillments.</link></para>
+
+        <para><emphasis role="bold">Fields</emphasis><itemizedlist>
+            <listitem>
+              <para><glossterm linkend="G_INTERNAL_ORGANIZATION"><glossterm
+              linkend="G_PARTY">Party Id</glossterm> </glossterm>- The party
+              id of the <glossterm linkend="G_PERSON">person</glossterm>
+              fulfilling the position.</para>
+            </listitem>
+
+            <listitem>
+              <para>From Date - The date the fulfillment starts.</para>
+            </listitem>
+
+            <listitem>
+              <para>Thru Date - The date the fulfillment ends.</para>
+            </listitem>
+
+            <listitem>
+              <para>Comments - User entered comment on the fulfillment.</para>
+            </listitem>
+          </itemizedlist></para>
+      </sect2>
+
+      <sect2>
+        <title>Responsibilities</title>
+
+        <para>The RESPONSIBILITIES screen lets you assign responsibilities to
+        a position. See: <link
+        linkend="HUMANRES_EditEmplPositionResponsibilities">Responsibilities.</link></para>
+
+        <para>The administrator can add and remove responsibilities shown in
+        the Responsibility Type Id drop-down list in <link
+        linkend="HUMANRES_FindPartySkills">Global HR Settings</link>.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Responsibility Type Id - Unique Id for the
+            responsibility.</para>
+          </listitem>
+
+          <listitem>
+            <para>From Date - The date the responsibility starts for the
+            position.</para>
+          </listitem>
+
+          <listitem>
+            <para>Thru Date - The date the responsibility ends for the
+            position</para>
+          </listitem>
+
+          <listitem>
+            <para>Comments - User entered comment about the
+            responsibility</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>Reporting Structure:ReportsTo</title>
+
+        <para>The Reports To screenlet list the position(s) that this position
+        reports to. See: <link
+        linkend="HUMANRES_EditEmplPositionReportingStructs">Reporting
+        Structure.</link></para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Empl Position Id Reporting To - The unique identifier of the
+            position this position reports to.</para>
+          </listitem>
+
+          <listitem>
+            <para>From Date - The date the report to starts for the
+            position.</para>
+          </listitem>
+
+          <listitem>
+            <para>Thru Date - The date the report to ends for the
+            position</para>
+          </listitem>
+
+          <listitem>
+            <para>Comments - User entered comment about the report to.</para>
+          </listitem>
+
+          <listitem>
+            <para>Primary Flag - Identifies the primary report to when there
+            is more then one report to. Y indicates primary, all other reports
+            to should be no.</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>Reporting Structure:ReportedTo</title>
+
+        <para>The Reports To screenlet list the position that the selected
+        position reports to. See: <link
+        linkend="HUMANRES_EditEmplPositionResponsibilities">Reporting
+        Structure.</link></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Empl Position Id Managed By - The unique identifier of the
+            position reporting to this position.</para>
+          </listitem>
+
+          <listitem>
+            <para>From Date - The date the reporting to starts for the
+            position.</para>
+          </listitem>
+
+          <listitem>
+            <para>Thru Date - The date the reporting to ends for the
+            position</para>
+          </listitem>
+
+          <listitem>
+            <para>Comments - User entered comment about the reporting
+            to.</para>
+          </listitem>
+
+          <listitem>
+            <para>Primary Flag - Identifies this as the primary reporting to
+            when the position also reports to other positions. Y indicates
+            primary.</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Employee Position</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/PositionEdit.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employee Position &gt; In Search Results Click text in column Employee
+      Position Id &gt; Click Employee Position menu item.</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Update positions.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Position Id - Unique Id for the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Status ID - One of Active/Open, Inactive/Closed or Planned
+          For.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_INTERNAL_ORGANIZATION"><glossterm
+          linkend="G_PARTY">Party Id</glossterm> - The party id of the
+          internal organization authorized to fill the
+          position.</glossterm></para>
+        </listitem>
+
+        <listitem>
+          <para>Budget Id - A user entered identifier for the budget
+          authorizing the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Budget Item Seq Id - A user entered identifier for the budget
+          item authorizing the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Empl Position Type Id - Name for the position type. Position
+          types are defined in Global HR Settings <link
+          linkend="HUMANRES_FindEmplPositionTypes">Position Types</link>
+          .</para>
+        </listitem>
+
+        <listitem>
+          <para>Estimated From Date - Date the position is expected to be
+          filled.</para>
+        </listitem>
+
+        <listitem>
+          <para>Estimated Thru Date - Date on which the positions budget
+          authorization is expected to end.</para>
+        </listitem>
+
+        <listitem>
+          <para>Salary Flag - Y if this is a salaried position else N.</para>
+        </listitem>
+
+        <listitem>
+          <para>Exempt Flag - Y if this position exempt from a requirement
+          else N</para>
+        </listitem>
+
+        <listitem>
+          <para>Fulltime Flag - Y if this is a fulltime position else N</para>
+        </listitem>
+
+        <listitem>
+          <para>Temporary Flag - Y if this is a temporary position else
+          N</para>
+        </listitem>
+
+        <listitem>
+          <para>Actual From Date - Date the position is filled.</para>
+        </listitem>
+
+        <listitem>
+          <para>Actual Thru Date - Date the position is no longer
+          authorized.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action - </emphasis>Update button: Click to
+      save changes to a position record.</para>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditEmplPositionFulfillments">
+      <title>Fulfillments</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/PositionFulfillments.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employee Position &gt; In Search Results Click text in column Employee
+      Position Id &gt; Click Fulfillments menu item</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Add, update and delete a
+      <glossterm linkend="G_FULFILLMENT">fulfillment.</glossterm></para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><glossterm linkend="G_INTERNAL_ORGANIZATION"><glossterm
+          linkend="G_PARTY">Party Id</glossterm> </glossterm>- Enter the party
+          id of the <glossterm linkend="G_PERSON">person</glossterm>
+          fulfilling the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - Enter the date the fulfillment starts.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - Enter the date the fulfillment ends.</para>
+        </listitem>
+
+        <listitem>
+          <para>Comments - Enter a comment on the fulfillment.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Add button: Click to add a fulfillment.</para>
+        </listitem>
+
+        <listitem>
+          <para>Party Id column button: Click to open the profile of the
+          person filling the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Update column button: Click to save changes to the
+          fulfillment</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the fulfillment. The item is
+          deleted and can not be restored.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditEmplPositionResponsibilities">
+      <title>Responsibilities</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/PositionResponsibilities.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employee Position &gt; In Search Results Click text in column Employee
+      Position Id &gt; Click Responsibilities menu item</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Add, update and delete a
+      <glossterm linkend="G_RESPONSIBILITY">responsibility</glossterm></para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Responsibility Type Id - One of the available responsibility
+          types as, defined in <link
+          linkend="HUMANRES_EditResponsibilityTypes">Global Settings
+          Responsibility Types</link> , describing the duties required of the
+          position</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - The date the when the position became responsible
+          for this type</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - The date the when the position was no longer
+          responsible for this type</para>
+        </listitem>
+
+        <listitem>
+          <para>Comments - User defined comment</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Add button: Click to add a responsibility.</para>
+        </listitem>
+
+        <listitem>
+          <para>Update button: Click to save changes to the
+          responsibility.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the responsibility. The
+          responsibility is deleted and can not be restored.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditEmplPositionReportingStructs">
+      <title>Reporting Structure</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/PositionReportingStruct.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Usage - </emphasis>Add, update and delete a
+      Reports To / Reported To reporting structure.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Empl Position Id Reporting To - Enter the unique identifier of
+          the position this position reports to.</para>
+        </listitem>
+
+        <listitem>
+          <para>Empl Position Id Managed By - Enter the unique identifier of
+          the position reporting to this position.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - The date the reporting to starts for the
+          position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The date the reporting to ends for the
+          position</para>
+        </listitem>
+
+        <listitem>
+          <para>Comments - User entered comment about the reporting to.</para>
+        </listitem>
+
+        <listitem>
+          <para>Primary Flag - Identifies this as the primary reporting to
+          when the position also reports to other positions. Y indicates
+          primary.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Add button: Click to add a Reports / Reported To
+          structure.</para>
+        </listitem>
+
+        <listitem>
+          <para>Update button: Click to save changes to the structure.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the structure. The structure is
+          deleted and can not be restored.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>Performance Review</title>
+
+    <para>Performance Review allows employees to post reviews that can be used
+    by management in evaluating the performance of individual employee. Each
+    review has a list of items that can be rated and commented on. The
+    employee's position is also captured with the review which allows the
+    creation of reports that look at ratings for a review item by
+    position.</para>
+
+    <sect1 xml:id="HUMANRES_FindPerfReviews">
+      <title>Search Performance Review</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/PerformanceReviewSearch.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Performance Review</para>
+
+      <para><emphasis role="bold">Usage</emphasis>: Use the Performance Review
+      screen to create a review, search for an existing review and view a list
+      of reviews. Use Search Options to refine the search. Selecting a review
+      from the list opens the Edit Performance Review screenlet.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Employee Reviewed - Name of the employee being
+          reviewed.</para>
+        </listitem>
+
+        <listitem>
+          <para>Review Id - An automatically created unique identifier for the
+          review.</para>
+        </listitem>
+
+        <listitem>
+          <para>Reviewer - The name of the employee performing the review.
+          Employees may review themselves in a self-assessment review.</para>
+        </listitem>
+
+        <listitem>
+          <para>Payment Id - A review may be associated with a payment when
+          the payment is relevant to the review. When you use the Lookup
+          Payment screen you can filter the payment types that apply to
+          employee compensation e.g. Commission Payment, Paycheck or
+          Payroll.</para>
+        </listitem>
+
+        <listitem>
+          <para>Position Id - The position held by the Employee Reviewed is
+          stored with the review. When entering this item make sure to enter
+          the correct position for the employee. This will help in evaluating
+          reviews grouped by position.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - The start of the period under review.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The end of the period under review.</para>
+        </listitem>
+
+        <listitem>
+          <para>Comments - A user defined description for the review.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>New Perfreview button: Click to open the New Performance
+          Review screenlet.</para>
+        </listitem>
+
+        <listitem>
+          <para>Find button: Click for a list reviews. Displays a list of
+          reviews in the Search Results screenlet.</para>
+        </listitem>
+
+        <listitem>
+          <para>Employee Reviewed column text: Click to open the employee's
+          profile screen.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Review Id column text: Click to open Edit Performance Review
+          screenlet.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Reviewer column text: Click to open reviewers profile
+          screen.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1>
+      <title>New Performance Review</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/PerformanceReviewEditPerfReviewItems.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Performance Review &gt; Click New Perfreview</para>
+
+      <para><emphasis role="bold">Usage:</emphasis> Create a new performance
+      review.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Employee Reviewed - Enter a Name of the employee being
+          reviewed.</para>
+        </listitem>
+
+        <listitem>
+          <para>Reviewer - Enter the name of the employee performing the
+          review. Employees may review themselves in a self-assessment
+          review.</para>
+        </listitem>
+
+        <listitem>
+          <para>Payment Id - A review may be associated with a payment when
+          the payment is relevant to the review. When you use the Lookup
+          Payment screen you can filter the payment types that apply to
+          employee compensation e.g. Commission Payment, Paycheck or
+          Payroll.</para>
+        </listitem>
+
+        <listitem>
+          <para>Position Id - The position held by the Employee Reviewed is
+          stored with the review. When entering this item make sure to enter
+          the correct position for the employee. This will help in evaluating
+          reviews grouped by position.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - Enter the start of the period under review.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - Enter the end of the period under review.</para>
+        </listitem>
+
+        <listitem>
+          <para>Comments - Enter a user defined description for the
+          review.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action</emphasis> Create button: Click to
+      create the a review.</para>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditPerfReviews">
+      <title>Edit Performance Review</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/PerformanceReviewEdit.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs:</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Human Resources &gt; Performance Review &gt; Click New
+          Perfreview</para>
+        </listitem>
+
+        <listitem>
+          <para>Human Resources &gt; Performance Review &gt; In Search Results
+          Click text in Review Id column</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Usage:</emphasis> Usage - This screen is
+      used to create or edit and update an performance review. In the Main
+      Search Screen it is opened in create mode by clicking the New Perfreview
+      button or update mode by clicking the Perf Review Id column in Search
+      Results.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Employee Reviewed - Name of the employee being
+          reviewed.</para>
+        </listitem>
+
+        <listitem>
+          <para>Reviewer - Name of the employee performing the review.
+          Employees may review themselves in a self-assessment review.</para>
+        </listitem>
+
+        <listitem>
+          <para>Payment Id - A review may be associated with a payment when
+          the payment is relevant to the review. When you use the Lookup
+          Payment screen you can filter the payment types that apply to
+          employee compensation e.g. Commission Payment, Paycheck or
+          Payroll.</para>
+        </listitem>
+
+        <listitem>
+          <para>Position Id - The position held by the Employee Reviewed is
+          stored with the review. When entering this item make sure to enter
+          the correct position for the employee. This will help in evaluating
+          reviews grouped by position.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - The start of the period under review.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The end of the period under review.</para>
+        </listitem>
+
+        <listitem>
+          <para>Comments - A user defined description for the review.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action</emphasis> Update button: Click to
+      save changes.</para>
+    </sect1>
+
+    <sect1>
+      <title>Perfreview Items</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="../humanres_en_images/PerformanceReviewItem.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Performance Review &gt; In Search Results Click text in Review Id column
+      &gt; Click Perfreview Items</para>
+
+      <para><emphasis role="bold">Usage:</emphasis> Add or delete a
+      performance review item. <note>
+          <para>Review items can not be changed.</para>
+        </note></para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Review Item drop-down list: Select an item from the list. The
+          items describe a review category.</para>
+        </listitem>
+
+        <listitem>
+          <para>Rating drop-down list: Select a rating for the review
+          item.</para>
+        </listitem>
+
+        <listitem>
+          <para>Comments text: User defined comment on the review item.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Item List Delete button: Click to delete the review item type.
+          The review item is deleted and can not be restored.</para>
+        </listitem>
+
+        <listitem>
+          <para>Create button: Click create to save the review item.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>Skills</title>
+
+    <para>The Skills feature serves two important functions. In Skills you
+    can:</para>
+
+    <itemizedlist>
+      <listitem>
+        <para>Find employees or organizations that have the required skills
+        for a job.</para>
+      </listitem>
+
+      <listitem>
+        <para>Assign skills to an employees and organizations</para>
+      </listitem>
+    </itemizedlist>
+
+    <para>Skills are organized into skill groups. Skills and skill groups are
+    managed in <link linkend="HUMANRES_EditSkillType">Global Settings
+    Skills</link> where they can be created updated and deleted.</para>
+
+    <para>Skills are characterized by the fields Years Experience, R2ating and
+    Sill Level, which are all numeric values. You can apply any meaning that
+    suites your business needs to these values.</para>
+
+    <sect1 xml:id="HUMANRES_FindPartySkills">
+      <title>Search Skills</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/SkillsFindEmployeeSkills.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Skills</para>
+
+      <para><emphasis role="bold">Usage</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Launch a screen to assign a skills to an employee or
+          organization.</para>
+        </listitem>
+
+        <listitem>
+          <para>Look for skills using a variety of criteria. You can search
+          for both people and organizations using the Type drop-down-list,
+          find skills by geography using the Country / State drop-down-list,
+          look by skill or skill group, and your search by experience rating
+          and skill level. Using all of these criteria you an answer a
+          questions like "What companies in CA with over $1,000,000 in revenue
+          have more them 5 years experience in OFBiz Installation".</para>
+        </listitem>
+
+        <listitem>
+          <para>From the Search Results screenlet you can navigate to the
+          profile of people and organizations that meet your criteria,
+          navigate to an update screen or delete a skill.</para>
+        </listitem>
+      </itemizedlist>
+
+      <note>
+        <para>The Search Results will have one row for each skill assigned to
+        a person or group. Some columns in the results only apply to people
+        while others only belong to groups. The list is ordered by the persons
+        last name and then the group name.</para>
+      </note>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><glossterm linkend="G_PARTY_ID">Party Id</glossterm> - Use the
+          Party Id to narrow your search to a single person or
+          organization.</para>
+        </listitem>
+
+        <listitem>
+          <para>Type - Use Type to filter Search Results to only people or
+          organizations.</para>
+        </listitem>
+
+        <listitem>
+          <para>City - Limits the results to one city.</para>
+        </listitem>
+
+        <listitem>
+          <para>State - Limits the results to a single state or providence.
+          The list of states is dependent on the selection in Country.</para>
+        </listitem>
+
+        <listitem>
+          <para>Country - Limits the results to a single country. Changing the
+          country will update the list of states.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_SKILL_GROUP">Skill Group</glossterm> -
+          Limits results to member of the group.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_SKILL">Skill</glossterm> - Limits
+          results to a single skill.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_ANNUAL_REVENUE">Annual
+          Revenue</glossterm> - Limits results to a range of annual
+          revenue.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_NUMBER_OF_EMPLOYEES">Number of
+          Employees</glossterm> - Limits results to an range of the employee
+          count.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_YEARS_EXPERIENCE">Years
+          Experience</glossterm> - Limits results to the range or the years of
+          experience.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_RATING">Rating</glossterm> - Limits
+          results to a range or the ratings.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_SKILL_LEVEL">Skill Level</glossterm> -
+          Limits results to a range or the skill levels.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Fields Search Results</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Group Name - Name of a group applies only if the skill belongs
+          to a group</para>
+        </listitem>
+
+        <listitem>
+          <para>Annual Revenue - Only reported for a group.</para>
+        </listitem>
+
+        <listitem>
+          <para>Number of employees - Only reported for a group.</para>
+        </listitem>
+
+        <listitem>
+          <para>Last Name - Only reported for a person.</para>
+        </listitem>
+
+        <listitem>
+          <para>First Name - Only reported for a person.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>New Party Skill button: Click to open the screen to create a
+          new skill.</para>
+        </listitem>
+
+        <listitem>
+          <para>Party column button: Click to open the parties profile.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Update column button: Click to update the parties skill
+          list.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete column button: Click to delete the item. The item is
+          deleted and can not be restored.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_NewPartySkill">
+      <title>New Skill</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/SkillsNewPartySkill.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Skills &gt; Click button New Party Skill</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Create a new skill.
+      Skills are assigned to a party so a person or organization can have a
+      skill. You can continue to create skills without leaving the screenlet.
+      When finished click return to go back to the main screen.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><glossterm linkend="G_PARTY_ID">Party Id</glossterm> - Unique
+          identifier of the Person or Organization with the skill.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_SKILL">Skill</glossterm> - Skill
+          name</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_YEARS_EXPERIENCE">Years
+          Experience</glossterm> - The years of experience.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_RATING">Rating</glossterm> - A user
+          defined numeric skill rating.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_SKILL_LEVEL">Skill Level</glossterm> - A
+          user defined numeric skill level.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create button: Click to create the party skill.</para>
+        </listitem>
+
+        <listitem>
+          <para>Return button: Click to return the main Skills screen.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1>
+      <title>Update Skills</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/SkillsEditEmployeeSkills.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Skills &gt; In Search Results Click Update button</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>From this screen you can
+      create, update or delete a party skill.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><glossterm linkend="G_SKILL">Skill</glossterm> - Skill
+          name</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_YEARS_EXPERIENCE">Years
+          Experience</glossterm> - The years of experience.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_RATING">Rating</glossterm> - A user
+          defined numeric skill rating.</para>
+        </listitem>
+
+        <listitem>
+          <para><glossterm linkend="G_SKILL_LEVEL">Skill Level</glossterm> - A
+          user defined numeric skill level.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>New Party Skill button: Click to open the screen to create a
+          new skill.</para>
+        </listitem>
+
+        <listitem>
+          <para>Submit button: Click to save changes in the row.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the rows skill. The skill is
+          deleted and can not be restored.</para>
+        </listitem>
+
+        <listitem>
+          <para>Return button: Click to return the main Skills screen.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>Qualifications</title>
+
+    <sect1 xml:id="HUMANRES_FindPartyQuals">
+      <title>Search Qualifications</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/QualificationsFindPartyQuals.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Qualifications</para>
+
+      <para><emphasis role="bold">Usage -</emphasis> Use the Qualifications
+      screen to create or update a <link
+      linkend="G_PARTY_QUALIIFICATION_TYPE">qualification</link>. When the
+      qualification opens the first 20 qualifications are displayed in the
+      Search Results. Use Search Options to refine the search.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><link linkend="G_PARTY_ID">Party Id</link> - Limits the list
+          to a single person or organization.</para>
+        </listitem>
+
+        <listitem>
+          <para><link
+          linkend="G_PARTY_QUALIIFICATION_TYPE">Qualification</link> - The
+          Qualification name.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - The start date of the qualification.</para>
+        </listitem>
+
+        <listitem>
+          <para>Qualification Desc - A user defined description of the
+          qualification.</para>
+        </listitem>
+
+        <listitem>
+          <para>Title - A user defined title for the qualification</para>
+        </listitem>
+
+        <listitem>
+          <para>Status - One of completed, deferred or incomplete may be used
+          to indicate if state of the qualification for the party.</para>
+        </listitem>
+
+        <listitem>
+          <para>Verify Status - Indicates if the validity of the qualification
+          has be checked or not.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The end date of the qualification i.e. The
+          expiration date of a drivers license</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>New Party Qualification button: Click open the screen to
+          create a new qualification for a person or organization.</para>
+        </listitem>
+
+        <listitem>
+          <para>Find button: Click for a list of qualifications. Displays a
+          list of qualifications in the Search Results screenlet.</para>
+        </listitem>
+
+        <listitem>
+          <para>Party Id column button: Click to open the person or
+          organizations profile screen.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the qualification. The
+          qualification is deleted and can not be restored.<note>
+              <para>Instead of deleting a qualification it is better to set
+              the thru date.</para>
+            </note></para>
+        </listitem>
+
+        <listitem>
+          <para>Submit button: Click to save changes in the list above the
+          button.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_NewPartyQual">
+      <title>New Party Qualification</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/QualificationsNewPartyQual.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Qualifications &gt; Click New Party Qualification</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Use this screen to add a
+      <link linkend="G_PARTY_QUALIIFICATION_TYPE">qualification</link> to a
+      person or organization.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><link linkend="G_PARTY_ID">Party Id</link> - Limits the list
+          to a single person or organization.</para>
+        </listitem>
+
+        <listitem>
+          <para><link
+          linkend="G_PARTY_QUALIIFICATION_TYPE">Qualification</link> - The
+          Qualification name.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - The start date of the qualification.</para>
+        </listitem>
+
+        <listitem>
+          <para>Qualification Desc - A user defined description of the
+          qualification.</para>
+        </listitem>
+
+        <listitem>
+          <para>Title - A user defined title of the qualification</para>
+        </listitem>
+
+        <listitem>
+          <para>Status - One of completed, deferred or incomplete may be used
+          to indicate if state of the qualification for the party.</para>
+        </listitem>
+
+        <listitem>
+          <para>Verify Status - Indicates if the validity of the qualification
+          has be checked.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The end date of the qualification i.e. The
+          expiration date of a drivers license</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action</emphasis> Click Create to add a
+      qualification to a person or organization. The qualification will appear
+      in the party <link linkend="HUMANRES_EditEmployeeQuals">Qualities</link>
+      screen and <link linkend="HUMANRES_FindPartyQuals">Qualities</link>
+      Search Results list.</para>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>Recruitment</title>
+
+    <para>In the OFBiz Recruitment feature you can create job requisitions
+    when you are looking for candidates to fill a position. The requisition
+    identifies the skills, qualifications, experience and number of resources
+    needed for a position. You can track job interviews of different types and
+    align them to the requisition. You can post requisitions internally to
+    track the status of applicants for a position.</para>
+
+    <sect1 xml:id="HUMANRES_FindJobRequisitions">
+      <title>Search Job Requisition</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/RecuritmentJobRequisitionSearch.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Recruitment</para>
+
+      <para><emphasis role="bold">Usage</emphasis>: Use the Job Requisition
+      screen to create a requisitions, search for an existing requisitions and
+      view a list of requisitions. Selecting an requisition from the list
+      opens the Edit Job Requisition screen.</para>
+
+      <para><emphasis role="bold">Fields Search Options</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Job Requisition Id - Unique identifier, generated
+          automatically by the system, when the requisition is created.</para>
+        </listitem>
+
+        <listitem>
+          <para>Experience in months - A number (not text) for number of
+          months experience desired for the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Experience in years - A number (not text) for number of years
+          experience desired for the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Location - User defined text describing the location of
+          the job.</para>
+        </listitem>
+
+        <listitem>
+          <para>Skill Type Id - Select one of the Skill Types from the Drop
+          Down list.</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Posting Type - Select one of the Job Types from the Drop
+          Down list</para>
+        </listitem>
+
+        <listitem>
+          <para>Exam Type Enum Id - Select one of the Exam Types from the Drop
+          Down list</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>New Job Requisition button: Click to open the screen to create
+          a new Job Requisition.</para>
+        </listitem>
+
+        <listitem>
+          <para>Find button: Click for a list of requisitions. Displays a list
+          of requisitions in the Search Results screenlet.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1>
+      <title>New Job Requisition</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/RecuritmentJobRequisitionNew.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Recruitment &gt; Click the New Job Requisition Button</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Create a New Job
+      Requisition</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Job Location - Enter text describing the location of the
+          job.</para>
+        </listitem>
+
+        <listitem>
+          <para>Age - Enter desired age of applicant.</para>
+        </listitem>
+
+        <listitem>
+          <para>No Of Resources - Number of people required for this position.
+          You can create an internal job posting for each required resource to
+          an instance of the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Gender - Enter desired gender of applicant.</para>
+        </listitem>
+
+        <listitem>
+          <para>Duration Months</para>
+        </listitem>
+
+        <listitem>
+          <para>Qualification</para>
+        </listitem>
+
+        <listitem>
+          <para>Exam Type Enum Id - Select one of the Exam Types from the Drop
+          Down list</para>
+        </listitem>
+
+        <listitem>
+          <para>Skill Type Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Experience in months - Enter a number (not text) for number of
+          months experience desired for the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Experience in years - Enter a number (not text) for number of
+          years experience desired for the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Skill Type Id - Select one of the Skill Types from the Drop
+          Down list.</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Posting Type - Select one of the Job Types from the Drop
+          Down list</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create button: Click to create a requisition.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1>
+      <title>Edit Job Requisition</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/RecuritmentJobRequisitionEdit.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Recruitment &gt; Click the button In Search Results column Job
+      Requisition Id</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Update a
+      requisition</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Job Location - Enter text describing the location of the
+          job.</para>
+        </listitem>
+
+        <listitem>
+          <para>Age -</para>
+        </listitem>
+
+        <listitem>
+          <para>No Of Resources - Number of people required for this position.
+          You can create an internal job posting for each required resource to
+          an instance of the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Gender</para>
+        </listitem>
+
+        <listitem>
+          <para>Duration Months</para>
+        </listitem>
+
+        <listitem>
+          <para>Qualification</para>
+        </listitem>
+
+        <listitem>
+          <para>Exam Type Enum Id - Select one of the Exam Types from the Drop
+          Down list</para>
+        </listitem>
+
+        <listitem>
+          <para>Skill Type Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Experience in months - Enter a number (not text) for number of
+          months experience desired for the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Experience in years - Enter a number (not text) for number of
+          years experience desired for the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Skill Type Id - Select one of the Skill Types from the Drop
+          Down list.</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Posting Type - Select one of the Job Types from the Drop
+          Down list</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Update button: Click to save changes to the
+          requisition.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_FindInternalJobPosting">
+      <title>Internal Job Posting</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/RecuritmentFindJobInterview.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Recruitment &gt; Click the button In Search Results column Apply</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Create a Job Posting. A
+      posting links a requisition to a position.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Application Date - Date application was submitted.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party - Party Id of application approver.</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Requisition Id - The target requisition or the
+          application.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action </emphasis>Create button: Click to
+      create the application.</para>
+    </sect1>
+
+    <sect1>
+      <title>Search Internal Job Posting</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/RecuritmentInternalJobPostingSearch.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Recruitment &gt; Click Internal Job Posting menu item</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Use the Internal Job
+      Applications screen to create a job posting, search for an existing
+      posting and view a list of postings. Use Search Options to refine the
+      search. Clicking the button in the Application Id column of the Search
+      Results opens the Internal Job Posting screenlet for updating.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Application Id - System generated unique identifier for the
+          application. May not be changed.</para>
+        </listitem>
+
+        <listitem>
+          <para>Application Date - Date the application was submitted.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party - Party Id of person approving the
+          application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Requisition Id - The target requisition or the
+          application.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action</emphasis> Update button: Click to
+      save changes to a leave record.</para>
+    </sect1>
+
+    <sect1>
+      <title>Search for Job Interview</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/RecuritmentFindJobInterview.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Recruitment &gt; Click Internal Job Posting menu item &gt; Click Job
+      Interview menu item</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Use the Job Review screen
+      to create an interview, search for an existing interview and view a list
+      of interviews. Use Search Options to refine the search. Click the button
+      in the Job Interview Id column of the Search Results screenlet to open
+      the Edit Job Interview screenlet.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Job Interview Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interviewee Party Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Requisition Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interviewer Party Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interview Type Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Grade Secured Enum Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interview Result</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interview Date</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>New Job Interview</para>
+        </listitem>
+
+        <listitem>
+          <para>Find</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interview Id</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_FindJobInterview">
+      <title>New Job Interview</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/RecuritmentJobInterviewNew.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Recruitment &gt; Click Internal Job Posting menu item &gt; Click Job
+      Interview menu item &gt; Click button New Job Interview</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Create a new job
+      interview.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Job Interviewee Party Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Requisition Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interviewer Party Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interview Type Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Grade Secured Enum Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interview Result</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interview Date</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action</emphasis> Create button: Click to
+      create the an interview.</para>
+    </sect1>
+
+    <sect1>
+      <title>Update a Job Interview</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/RecuritmentJobInterviewEdit.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Recruitment &gt; Click Internal Job Posting menu item &gt; Click Find
+      &gt; Click the text In Search Results column Job Interview Id</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Update a job
+      interview.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Job Interview Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interviewee Party Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Requisition Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interviewer Party Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interview Type Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Grade Secured Enum Id</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interview Result</para>
+        </listitem>
+
+        <listitem>
+          <para>Job Interview Date</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action</emphasis> Update button:: Click to
+      save changes to a Job Interview</para>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_FindApprovals">
+      <title>Approval</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="../humanres_en_images/RecuritmentFindApprovals.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Defects prevent a description of the feature at this time.</para>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_FindRelocation">
+      <title>Relocation</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="../humanres_en_images/RecuritmentFindRelocation.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Defects prevent a description of the feature at this time.</para>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>Training</title>
+
+    <para>Users with Work Effort User permission and HR Administrator
+    permission can create, assign and approve training classes in the Training
+    feature. Other users can view available classes, their training status and
+    request enrollment to a class. A persons training history is visible in
+    the Employees feature <link
+    linkend="HUMANRES_EditEmployeeTrainings">Training</link> screenlet.
+    Training classes are named and managed in Global HR Settings <link
+    linkend="HUMANRES_EditTrainingTypes">Training Class Type</link>
+    screen.</para>
+
+    <para>The main screen in the Training feature is the Training Calendar.
+    This is where you add classes and class participants. You can navigate the
+    calendar by clicking the navigation text for day, week and month views
+    located in the calendar title bar.</para>
+
+    <para>Training classes are created in the Training Calendar by clicking
+    the Add New text command located in each calendar day cell. This action
+    opens a screenlet above the calendar for entering information about the
+    training class. If you try to create a class and do not have Work Effort
+    User permission, as mentioned above, you will get an error. After a class
+    is created a numeric class identifier and text identifier description
+    appear in the calendar for the day of the class.</para>
+
+    <para>You add participants to a class by clicking on the class identifier.
+    If you are the creator of the class the Participants screenlet above and
+    to the right of the calendar opens. Here you Add participants by entering
+    their party id and clicking the Add button. A list of participants appears
+    in Add screenlet.</para>
+
+    <para>After a participant is added the Training Approvals search screen
+    opens showing the status as Assigned. To add another participant return to
+    the calendar and select the class again then repeat the process of
+    entering the party id.</para>
+
+    <para>If you are not the creator of the class and the administrator did
+    not add you to the class you can request participation in the class. Click
+    on the class identifier and the training request screenlet opens above the
+    calendar on the left of the screen. When a user request a class they enter
+    the Party Id of the person who can authorize the class. The initial status
+    of the request is "Applied ".</para>
+
+    <para>To approve the request the training administrator opens the Training
+    Approvals screen and finds all request with a status of "Applied". They
+    look up the person listed as the approver party. After checking with the
+    approver they click update button to open the approval screen. In the
+    approval screen the administrator sets the Approver Status and adds a
+    reason for the decision. The user can see the status of their training
+    schedule by clicking on the Training Status menu.</para>
+
+    <sect1 xml:id="HUMANRES_TrainingCalendar">
+      <title>Training Calendar</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/TrainingCalendar.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Training</para>
+
+      <para><emphasis role="bold">Usage</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Add New classes</para>
+        </listitem>
+
+        <listitem>
+          <para>Add participants to a class</para>
+        </listitem>
+
+        <listitem>
+          <para>Request to participate in a class</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Field - </emphasis>Each cell in the calendar
+      displays a numeric and text identifier for each class created for the
+      day.</para>
+
+      <para><emphasis role="bold">Action</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Add New text link: Click to open the Add Training
+          screenlet</para>
+        </listitem>
+
+        <listitem>
+          <para>Training Class Id numeric text link: Click to Add Participants
+          to a class (class creator) or Request a class (not the class
+          creator)</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1>
+      <title>Add Training Event</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/TrainingCalendarAdd.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Training &gt; Next to the Date / Time Click Add New</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Add a new training class
+      for a date and time.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Training Name - The name of a training class as defined in
+          Global HR Settings <link
+          linkend="HUMANRES_EditTrainingTypes">Training Class
+          Type.</link></para>
+        </listitem>
+
+        <listitem>
+          <para>Description - User entered description of the class.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - Starting date time for the class.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - Ending date time for the class.<note>
+              <para>Classes spanning more then one day will only appear in the
+              calendar on the day in which the class was started.</para>
+            </note></para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create button: Click to create the training class. The new
+          entry will appear as a calendar entry in the day with the from and
+          thru time, a numeric identifier for the created class and text
+          identifier for the class type i.e. 12:00 AM-11:59 PM 10010
+          ADVAN_TRAINING</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_AssignTraining">
+      <title>Add Training Event Participant</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/TrainingCalendarAddParticipant.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Training &gt; In a Calendar Entry click on the numeric Class identifier
+      (opens screenlet right side of screen above the calendar)</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Used by the Administrator
+      who created the class to add participants to the class.</para>
+
+      <para><emphasis role="bold">Field </emphasis><glossterm
+      linkend="G_PARTY_ID">Party Id</glossterm> - The Party Id of a <glossterm
+      linkend="G_PERSON">person</glossterm> who will participate in the
+      class</para>
+
+      <para><emphasis role="bold">Action - </emphasis>Add button: Click to add
+      the person to the class participant list.</para>
+    </sect1>
+
+    <sect1>
+      <title>Request Training</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="../humanres_en_images/TrainingCalendarTrainingCalendar.jpg"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Training &gt; Click on the numeric Class identifier (opens screenlet
+      left side of screen above the calendar)</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Enables HR App users to
+      request participation in a training class.</para>
+
+      <para><emphasis role="bold">Field </emphasis> Approver Party - The Party
+      Id of a <glossterm linkend="G_PERSON">person</glossterm> who will
+      approver the users participation in a class</para>
+
+      <para><emphasis role="bold">Action - </emphasis>Apply button: Click to
+      add a request for participation in a class.</para>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_FindTrainingApprovals">
+      <title>Approve Training Participant</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/TrainingCalendarApprovals.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Training &gt; Click Training Approvals menu item (visible only to the
+      administrator)</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Find training
+      participation records and update approver status.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Employee Party Id - The <glossterm linkend="G_PARTY_ID">party
+          id</glossterm> of the person assigned to a class. Use to find all
+          classes for a person.</para>
+        </listitem>
+
+        <listitem>
+          <para>Training Request Id - A unique identifier of the request for a
+          person.</para>
+        </listitem>
+
+        <listitem>
+          <para>Training Class Type - The type of class as defined in Global
+          Settings <link linkend="HUMANRES_EditTrainingTypes">Training Class
+          Type.</link></para>
+        </listitem>
+
+        <listitem>
+          <para>Work Effort Id - Another description used internally. Same as
+          the numeric identifier shown in the calendar entry.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - Starting date time for the class.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - Ending date time for the class.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party - The party id of the person with authority to
+          approve training for a participant applying for training.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Status - The status of the request for participation.
+          If request entered by the administrator the default value is
+          Assigned. If the request is from a user then the default value is
+          Applied. If the value is Applied then the Update button will appear
+          in the Update field of the Search Results if not then the text
+          "Update" appears and no further action can be taken.</para>
+        </listitem>
+
+        <listitem>
+          <para>Reason - A user entered reason for a change in Approver
+          Status.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Find button: Click for a list of training class request.
+          Displays a list of request in the Search Results screenlet.</para>
+        </listitem>
+
+        <listitem>
+          <para>Employee Party Id column button: Click to open the
+          participants profile screen.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party column button: Click to open the approvers
+          profile screen.</para>
+        </listitem>
+
+        <listitem>
+          <para>Update button: Click to open the Edit HumanResTrainingApproval
+          screenlet to change the status of a training request.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditTrainingApprovals">
+      <title>Training Approval</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="../humanres_en_images/TrainingCalendarEditTrainingApprovals.jpg"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Training &gt; Click Training Approvals menu item (visible only to the
+      administrator) &gt; In Search Results screenlet Update column click
+      Update button</para>
+
+      <para><emphasis role="bold">Usage - </emphasis> Used by training
+      administrator to update the training Approval Status and Reason.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Employee Party Id - The <glossterm linkend="G_PARTY_ID">party
+          id</glossterm> of the person assigned to a class. Use to find all
+          classes for a person.</para>
+        </listitem>
+
+        <listitem>
+          <para>Training Class Type - The type of class as defined in Global
+          Settings <link linkend="HUMANRES_EditTrainingTypes">Training Class
+          Type.</link></para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - Starting date time for the class</para>
+        </listitem>
+
+        <listitem>
+          <para>Training Request Id - A unique identifier of the request for a
+          person.</para>
+        </listitem>
+
+        <listitem>
+          <para>Work Effort Id - Another description used internally. Same as
+          the numeric identifier shown in the calendar entry.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - Ending date time for the class.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party - The party id of the person with authority to
+          approve training for a participant applying for training.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Status - The status of the request for participation.
+          If request entered by the administrator the default value is
+          Assigned. If the request is from a user then the default value is
+          Applied. If the value is Applied then the Update button will appear
+          in the Update field of the Search Results if not then the text
+          "Update" appears and no further action can be taken.</para>
+        </listitem>
+
+        <listitem>
+          <para>Reason - A user entered description of the reason for a change
+          in Approver Status. e.g. Approver Status Reason Class is required
+          for all new employees.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action</emphasis> Update button: Click to
+      save changes to a leave record</para>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_FindTrainingStatus">
+      <title>Training Status</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="../humanres_en_images/TrainingCalendarFindTrainingStatus.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Training &gt; Click Training Status</para>
+
+      <para><emphasis role="bold">Usage - </emphasis> Users can view status of
+      training assignments. This information is also available to the employee
+      in the <link linkend="HUMANRES_EditEmployeeTrainings">Training</link>
+      screenlet of the Employees feature.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Training Request Id - A unique identifier of the request for a
+          person.</para>
+        </listitem>
+
+        <listitem>
+          <para>Training Class Type - The type of class as defined in Global
+          Settings <link linkend="HUMANRES_EditTrainingTypes">Training Class
+          Type.</link></para>
+        </listitem>
+
+        <listitem>
+          <para>Work Effort Id - This is a unique identifier for the training
+          class.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - Starting date time for the class.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Thru Date - Ending date time for the class.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Approver Party - The party id of the person with authority to
+          approve training for a participant applying for training.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Approver Status - The status of the request for participation.
+          If request entered by the administrator the default value is
+          Assigned.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist>
+        <listitem>
+          <para>Reason - A user entered description of the reason for a change
+          in Approver Status. e.g. Approver Status Reason Class is required
+          for all new employees.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action</emphasis>a</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Search button: Click for a list of training classes with
+          Approver Status. Displays a list of classes in the Search Results
+          section.</para>
+        </listitem>
+
+        <listitem>
+          <para>Employee Party button: Click to open the profile in the Party
+          Manager application of the person participating in the class.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party button: Click to open the profile in the Party
+          Manager application of the person approving participation in the
+          class.</para>
+        </listitem>
+      </itemizedlist>
+
+      <note>
+        <para>The OFBiz Party Manager application is separate from the HR App.
+        To return to the HR App.</para>
+      </note>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>Employment Applications</title>
+
+    <sect1 xml:id="HUMANRES_FindEmploymentApps">
+      <title>Search Employment Applications</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmploymentApplicationSearch.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employment Applications</para>
+
+      <para><emphasis role="bold">Usage</emphasis> Employment Applications
+      allows users to register a persons interest in applying for a position.
+      The application records the person applying for a position, the party
+      who recommended the person (this could be a person from the company or
+      an external organization like a placement service) and the person
+      responsible approving the application. It records the source of the
+      application and maintains a status.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Application Id - Unique Id for the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Empl Position Id - Identifies the position (job) applied for.
+          See <link linkend="HUMANRES_EditEmplPosition">Employee
+          Position</link> for information about a position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Status ID - Status of the application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Employment App Source Type Id - Identifies the channel that
+          delivered the application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Applying Party Id - Party Id of the applicant.</para>
+        </listitem>
+
+        <listitem>
+          <para>Referred By Party Id - Party Id of the person or organization
+          referring the applicant for the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Application Date - Date the application was submitted.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>New Employment Application button: Click to open the screen to
+          create a new employment application for a person</para>
+        </listitem>
+
+        <listitem>
+          <para>Find button: Click for a list of employment applications.
+          Displays a list of employment applications in the Search Results
+          screenlet.</para>
+        </listitem>
+
+        <listitem>
+          <para>Submit button: Click to save changes in the list above.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the employment application. The
+          employment applications is deleted and can not be restored.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_NewEmploymentApp">
+      <title>New Employment Application</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/EmploymentApplicationNew.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Employment Applications &gt; Click button New Employment
+      Application</para>
+
+      <para><emphasis role="bold">Usage</emphasis> Create a new application
+      for a position</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Application Id - Unique Id for the position. May be user
+          entered or if empty the system will generate sequence number</para>
+        </listitem>
+
+        <listitem>
+          <para>Empl Position Id - Identifies the position (job) applied for.
+          See <link linkend="HUMANRES_EditEmplPosition">Employee
+          Position</link> for information about a position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Status ID - Status of the application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Employment App Source Type Id - Identifies the channel that
+          delivered the application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Applying Party Id - Party Id of the applicant.</para>
+        </listitem>
+
+        <listitem>
+          <para>Referred By Party Id - Party Id of the person or organization
+          referring the applicant for the position.</para>
+        </listitem>
+
+        <listitem>
+          <para>Application Date - Date the application was submitted.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis> Create button: Click to
+      create an Employment Application</para>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>Resumes</title>
+
+    <para>The resume feature matches people to a resume(s). Each entry has a
+    unique identifier that can be user entered or a system generated sequence
+    number. The identifier links a person to an instance of their resume. The
+    resume itself can be entered in text in the Resume Text field, identified
+    by a Content Id or both.</para>
+
+    <para>The Content Id is from the Content Manager (CM) application. CM
+    offers a richer set options for tracking resumes. CM was designed for
+    acquiring, storing and retrieving electronic data in varying formats -
+    such as text, images, MS Word, PDF or even web URL's.</para>
+
+    <sect1 xml:id="HUMANRES_FindPartyResumes">
+      <title>Search Resumes</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/ResumeSearch.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Resumes</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Use the Resume screen to
+      create a resume, search for an existing resume and view a list of
+      resumes. Use Search Options to refine the search. Select a resume from
+      the Search Results to update resume information.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Resume Id - Use the Resume Id to narrow your search to a
+          single resume.</para>
+        </listitem>
+
+        <listitem>
+          <para>.Party Id - Use the Party Id to narrow your search to a single
+          person.</para>
+        </listitem>
+
+        <listitem>
+          <para>Content Id - The content identifier for content in the Content
+          Manager application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Resume Date - A date can be entered to suite the business
+          needs. For example the date could be a date a resume was received or
+          the date it was entered into the system. If empty will default to
+          the current date.</para>
+        </listitem>
+
+        <listitem>
+          <para>Resume Text - User entered text of the resume.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>New Party Resume button: Click to open the screen to create a
+          new Party Resume for a person.</para>
+        </listitem>
+
+        <listitem>
+          <para>Find button: Click for a list of resumes. Displays a list of
+          resumes in the Search Results screenlet.</para>
+        </listitem>
+
+        <listitem>
+          <para>Resume Id:</para>
+        </listitem>
+
+        <listitem>
+          <para>Party Id button: Click to open HR App Profile of the subject
+          of the resume.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the item. The item is deleted
+          and can not be restored.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditPartyResume">
+      <title>New Resume</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/ResumeNew.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Resume &gt; Click button New Party Resume</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Create a New Party
+      Resume.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Resume Id - Unique identifier that associates a party with a
+          resume.</para>
+        </listitem>
+
+        <listitem>
+          <para>.Party Id - Party Id of the person who is the subject of the
+          resume.</para>
+        </listitem>
+
+        <listitem>
+          <para>Content Id - The content identifier for content in the Content
+          Manager application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Resume Date - A date can be entered to suite the business
+          needs. For example the date could be a date a resume was received or
+          the date it was entered into the system. If empty will default to
+          the current date.</para>
+        </listitem>
+
+        <listitem>
+          <para>Resume Text - User entered text of the resume.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action </emphasis>Create button: Click to
+      create a Resume</para>
+    </sect1>
+
+    <sect1>
+      <title>Edit Resume</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/ResumeEdit.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Resume &gt; In Search Results Click text link Resume Id</para>
+
+      <para><emphasis role="bold">Usage </emphasis>Edit and update a
+      resume.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Resume Id - Unique identifier that associates a party with a
+          resume. Can not be changed</para>
+        </listitem>
+
+        <listitem>
+          <para>Content Id - The content identifier for content in the Content
+          Manager application. See for additional information</para>
+        </listitem>
+
+        <listitem>
+          <para>Resume Date - A date can be entered to suite the business
+          needs. For example the date could be a date a resume was received or
+          the date it was entered into the system. If empty will default to
+          the current date.</para>
+        </listitem>
+
+        <listitem>
+          <para>Resume Text - User entered text of the resume.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Action</emphasis> Update button: Click to
+      save changes to a resume record.</para>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>Leave</title>
+
+    <para>The HR App Leave feature is the way for your company to manage
+    employ leave in OFBiz. Employees can schedule leave for themselves by
+    using the Leave screen in the Employees feature or it can be done by an
+    administrator in as discussed in the section below.</para>
+
+    <para>Any user with Human Resource Employee permission can view and
+    request leave for themselves or any other employee. Only users with Human
+    Resource Approver or Administration permission can approve a leave
+    request. Only users with Administrator permission can update and delete a
+    leave request.</para>
+
+    <sect1 xml:id="HUMANRES_FindEmplLeaves">
+      <title>Search Leave</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/LeaveApprovalSearch.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Leave</para>
+
+      <para><emphasis role="bold">Usage </emphasis>Use the Leave screen to
+      request leave, search for leave request and view a list of leave
+      requests. When the screen opens the first 20 leave request are displayed
+      in the Search Results. Use Search Options to refine the search.
+      Selecting a update in the Leave request list opens the request for
+      update.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><link linkend="G_PARTY_ID">Party Id</link> - The party id of
+          the employee requesting leave.</para>
+        </listitem>
+
+        <listitem>
+          <para>Leave Type Id - The name of a leave type. Leave types are
+          defined in <link linkend="HUMANRES_EditEmplLeaveTypes">Global
+          Settings</link></para>
+        </listitem>
+
+        <listitem>
+          <para>Leave Reason Type - The name of a leave type reason. Leave
+          types reasons are defined in <link
+          linkend="HUMANRES_EditEmplLeaveTypes">Global Settings</link></para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - The data the leave starts.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The data the leave ends.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party - The <link linkend="G_PARTY_ID">party
+          id</link> of the <link linkend="G_PERSON">person</link> with
+          authority to approve the leave.</para>
+        </listitem>
+
+        <listitem>
+          <para>Leave Status - A leave request may be Created, Approved, or
+          Rejected.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>New Leave button: Click open the screen to create a new leave
+          request for an employee.</para>
+        </listitem>
+
+        <listitem>
+          <para>Find button: Click for a list of leave request. Displays a
+          list of request in the Search Results screenlet.</para>
+        </listitem>
+
+        <listitem>
+          <para>Party Id button: Click to open the employees profile in the
+          OFBiz Party Manager application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party button: Click to open the approvers profile in
+          the OFBiz Party Manager application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Update button: Click to save changes to a leave record.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the leave request. The request
+          item is deleted and can not be restored.</para>
+        </listitem>
+      </itemizedlist>
+
+      <warning>
+        <para>The OFBiz Party Manager application is separate from the HR App.
+        To return to the HR App Select HR from the Applications menu. You will
+        be returned to the main <link linkend="HUMANRES_main">Main</link>
+        screen.</para>
+      </warning>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditEmplLeave">
+      <title>New Employee Leave</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/LeaveEmployeeNew.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Leave &gt; Click New Leave</para>
+
+      <para><emphasis role="bold">Usage -</emphasis> Create a new request for
+      leave for an employee.</para>
+
+      <para><emphasis role="bold">Fields</emphasis><itemizedlist>
+          <listitem>
+            <para><link linkend="G_PARTY_ID">Party Id</link> - The party id of
+            the employee requesting leave.</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave Type Id - The name of a leave type. Leave types are
+            defined in <link linkend="HUMANRES_EditEmplLeaveTypes">Global
+            Settings</link></para>
+          </listitem>
+
+          <listitem>
+            <para>From Date - The data the leave starts.</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave Reason Type - The name of a leave type reason. Leave
+            types reasons are defined in <link
+            linkend="HUMANRES_EditEmplLeaveTypes">Global
+            Settings</link></para>
+          </listitem>
+
+          <listitem>
+            <para>Thru Date - The data the leave ends.</para>
+          </listitem>
+
+          <listitem>
+            <para>Approver Party - The <link linkend="G_PARTY_ID">party
+            id</link> of the <link linkend="G_PERSON">person</link> with
+            authority to approve the leave.</para>
+          </listitem>
+
+          <listitem>
+            <para>Description - A user entered description of the
+            leave.</para>
+          </listitem>
+        </itemizedlist></para>
+
+      <para><emphasis role="bold">Action -</emphasis> Create button: Click
+      create to create a leave request. The request is in edit mode.</para>
+
+      <note>
+        <para>To create another leave you must clear the previous leave from
+        the edit mode. To do this click the Employee Leave menu item. The the
+        Search Leave screen opens. Click the New Leave button, the Add
+        Employee Leave screenlet opens.</para>
+      </note>
+    </sect1>
+
+    <sect1>
+      <title>Update Employee Leave</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/LeaveEmployeeEdit.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Leave &gt; In the Search Results click Update button</para>
+
+      <para><emphasis role="bold">Usage: </emphasis>You can update the
+      information in any of fields listed below in the update leave
+      screenlet.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Leave Reason Type - The name of a leave type reason. Leave
+          types reasons are defined in <link
+          linkend="HUMANRES_EditEmplLeaveTypes">Global Settings</link></para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The data the leave ends.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party - The <link linkend="G_PARTY_ID">party
+          id</link> of the <link linkend="G_PERSON">person</link> with
+          authority to approve the leave.</para>
+        </listitem>
+
+        <listitem>
+          <para>Description - A user entered description of the leave.</para>
+        </listitem>
+      </itemizedlist>
+
+      <warning>
+        <para>If you update Party Id, Leave Type Id or From Date you will get
+        an error message. The Update button will change to Create. You can
+        click create to save your changes as a new record. To update any of
+        update-able fields in the original record, return to the search screen
+        (Click the Employee Leave menu item) and click the update button for
+        the item you wish to update.</para>
+      </warning>
+
+      <para><emphasis role="bold">Action </emphasis>Update button: Click to
+      save changes to the leave request.</para>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_FindLeaveApprovals">
+      <title>Search Leave Approval</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/LeaveApprovalSearch.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Leave &gt; Click Leave Approval menu item</para>
+
+      <note>
+        <para>The Leave Approval menu item is visible only to users with
+        Administrator or Approver permission.</para>
+      </note>
+
+      <para><emphasis role="bold">Usage </emphasis> Use the Leave Approval
+      screen to search for leave request and view a list of leave requests in
+      the same manners as in the Employee Leave screen described in the
+      previous section. Selecting a update in the Leave Approval search
+      results opens the Edit Leave Approval Status screen (where the Leave
+      Approval screen opened the update screen).</para>
+
+      <note>
+        <para>The Leave Approval Search Option Approver Party defaults to the
+        logon user id. This has the effect of only showing request for
+        approval that apply to the current login user. This field can be
+        manually cleared to show all leave request.</para>
+      </note>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><link linkend="G_PARTY_ID">Party Id</link> - The party id of
+          the employee requesting leave.</para>
+        </listitem>
+
+        <listitem>
+          <para>Leave Type Id - The name of a leave type. Leave types are
+          defined in <link linkend="HUMANRES_EditEmplLeaveTypes">2Global
+          Settings</link></para>
+        </listitem>
+
+        <listitem>
+          <para>Leave Reason Type - The name of a leave type reason. Leave
+          types reasons are defined in <link
+          linkend="HUMANRES_EditEmplLeaveTypes">Global Settings</link></para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - The data the leave starts.</para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The data the leave ends.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party - The <link linkend="G_PARTY_ID">party
+          id</link> of the <link linkend="G_PERSON">person</link> with
+          authority to approve the leave. Defaults to the user logon
+          id.</para>
+        </listitem>
+
+        <listitem>
+          <para>Leave Status - A leave request may be Created, Approved, or
+          Rejected.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Find button: Click for a list of leave request. Displays a
+          list of leave request in the Search Results screenlet.</para>
+        </listitem>
+
+        <listitem>
+          <para>Party Id button: Click to open the employees profile in the
+          OFBiz Party Manager application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party button: Click to open the approvers profile in
+          the OFBiz Party Manager application.</para>
+        </listitem>
+
+        <listitem>
+          <para>Update button: Click to open the Edit Leave Approval Status
+          screenlet.</para>
+        </listitem>
+      </itemizedlist>
+
+      <warning>
+        <para>The OFBiz Party Manager application is separate from the HR App.
+        To return to the HR App Select HR from the Applications menu. You will
+        be returned to the main <link linkend="HUMANRES_main">Main</link>
+        screen.</para>
+      </warning>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditEmplLeaveStatus">
+      <title>Edit Leave Approval</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/LeaveApproval.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Leave &gt; Click Leave Approval menu item &gt; Click Update</para>
+
+      <para><emphasis role="bold">Usage - </emphasis>Users with Approver or
+      Administrator may change the Leave status. The default status is
+      Created. Created status can be changed to status Approved or Rejected.
+      Approved status can be changed to Created or Rejected. Rejected status
+      can not be changed.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><link linkend="G_PARTY_ID">Party Id</link> - The party id of
+          the employee requesting leave.</para>
+        </listitem>
+
+        <listitem>
+          <para>Leave Type Id - The name of a leave type. Leave types are
+          defined in <link linkend="HUMANRES_EditEmplLeaveTypes">Global
+          Settings</link></para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - The data the leave starts.</para>
+        </listitem>
+
+        <listitem>
+          <para>Leave Reason Type - The name of a leave type reason. Leave
+          types reasons are defined in <link
+          linkend="HUMANRES_EditEmplLeaveTypes">Global Settings</link></para>
+        </listitem>
+
+        <listitem>
+          <para>Thru Date - The data the leave ends.</para>
+        </listitem>
+
+        <listitem>
+          <para>Approver Party - The <link linkend="G_PARTY_ID">party
+          id</link> of the <link linkend="G_PERSON">person</link> with
+          authority to approve the leave. Defaults to the user logon
+          id.</para>
+        </listitem>
+
+        <listitem>
+          <para>Leave Status - A leave request may be Created, Approved, or
+          Rejected.</para>
+        </listitem>
+
+        <listitem>
+          <para>Description - A user entered description of the leave.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Update button: Click to save changes to a leave status. The
+          new status is displayed. Click Employee Leave to return to the
+          Employee Leave screen or select another menu item as needed.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="HUMANRES_EditSkillTypes">
+    <title>Global HR Settings</title>
+
+    <para>Global HR Settings are a collection of screens you can use to
+    customize some of the drop-down list that appear in the HR App. In
+    general, a user must have "administrator" or "create privileges" to make
+    changes to Global Settings. Data is loaded into the Global HR Settings
+    when you use the ant task load-demo or load-seed.</para>
+
+    <para>Customization of entries in drop-down list that are not supported in
+    the Global HR Settings feature can be made by an administrator using <link
+    linkend="INTRA_APPL_INTEGRATION_ENTITY_DATA_MAINT">Web Tools</link>
+    .</para>
+
+    <sect1 xml:id="HUMANRES_EditSkillType">
+      <title>Skill Groups</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="../humanres_en_images/GlobalHRSettingsEditSkillGroups.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Global HR Settings &gt; Skill Groups</para>
+
+      <para><emphasis role="bold">Usage</emphasis></para>
+
+      <para>This screen is used to create, edit and delete the <link
+      linkend="G_SKILL_GROUP">skill groups</link> used in the <link
+      linkend="HUMANRES_FindPartySkills">Skills</link> feature. Your company
+      employees, contract workers and partners may have hundreds of different
+      of skills. Skill groups let you organize these <link
+      linkend="G_SKILL">skills</link> so they are manageable. This is helpful
+      for reporting on your companies skill inventory or searching for
+      resources with the skills needed for a job. You can search for skills
+      and assign skills to people and organizations in the <link
+      linkend="HUMANRES_FindPartySkills">Skills</link> feature. You can manage
+      the skills of a person or organization in their profile, see the <link
+      linkend="HUMANRES_EditEmployeeSkills">Employee Skills</link>
+      feature.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><link linkend="G_SKILL_GROUP">Skill Group</link> - A name
+          describing a group of skills.</para>
+        </listitem>
+
+        <listitem>
+          <para>Description - A user defined detailed description of the skill
+          group.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create button: Click to save a new skill group. The screen is
+          refreshed and the new skill group is displayed in the Skill Group
+          List.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete a skill group. The skill group
+          is deleted and can not be restored. All skills <emphasis
+          role="bold">must</emphasis> be removed from the skill group before
+          it can be deleted.</para>
+        </listitem>
+
+        <listitem>
+          <para>Update button: Saves any changes made to any of the
+          descriptions in the skill group list.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1>
+      <title>Skills</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="../humanres_en_images/GlobalHRSettingsEditSkills.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Global HR Settings &gt; Skill Groups Click Skills menu item.</para>
+
+      <para><emphasis role="bold">Usage</emphasis></para>
+
+      <para>This screen is used to create, edit and delete <link
+      linkend="G_SKILL">skills</link> used in the <link
+      linkend="HUMANRES_FindPartySkills">Skills</link> feature and <link
+      linkend="HUMANRES_EditSkillTypes">Edit Employees Skills</link>
+      screenlet. Skills are associated with people and organizations. This
+      screen lets you define them so everyone in the company has the same
+      understanding of what is expected a resource that has the skill. Each
+      skill <emphasis role="bold">must</emphasis> belong to a <link
+      linkend="G_SKILL_GROUP">skill group</link>. The skill group "Other" can
+      be used if no group applies to a skill and you do not want to create a
+      new skill group.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para><link linkend="G_SKILL">Skill</link> - A name describing the
+          skill.</para>
+        </listitem>
+
+        <listitem>
+          <para>Description - A user defined detailed description of the
+          skill.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create button: Click to save a new skill. The screen is
+          refreshed.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete a skill. The skill is deleted
+          and can not be restored. A skill can not be deleted if it is
+          assigned to a person or organization.</para>
+        </listitem>
+
+        <listitem>
+          <para>Update button: Saves any changes made to any of the
+          descriptions in the skill list.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditResponsibilityTypes">
+      <title>Responsibility Types</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/GlobalHRSettingsResponsibilitylTypes.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Global HR Settings &gt; Click the Responsibility Types menu item</para>
+
+      <para><emphasis role="bold">Usage</emphasis></para>
+
+      <para>This screen is used to create, edit and delete the responsibility
+      types used to add a responsibility to a <link
+      linkend="HUMANRES_EditEmplPositionResponsibilities">Position</link>.
+      Responsibility is assigned to positions so that stake holders can
+      clearly see the position's scope.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Responsibility Type Id - A required unique identifier for the
+          Responsibility Type. If one is not entered a numeric id will be
+          created.</para>
+        </listitem>
+
+        <listitem>
+          <para>Description - A user defined description of the type.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create button: Click to save the Responsibility Type. The
+          screen is refreshed. If no id was entered the system generated
+          numeric id is created and displayed.<warning>
+              <para>You must clear or change the Responsibility TypeId from
+              the text box before you can create another responsibility. If
+              you do not do this you will get a duplicate id error
+              message.</para>
+            </warning></para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the Responsibility Type. The
+          Responsibility Type is deleted and can not be restored.</para>
+        </listitem>
+
+        <listitem>
+          <para>Submit button: Saves any changes made to any of the
+          descriptions in the list above the Submit button.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditTerminationReasons">
+      <title>Termination Reasons</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/GlobalHRSettingsTerminationReason.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Global HR Settings &gt; Click the Termination Reasons menu item</para>
+
+      <para><emphasis role="bold">Usage</emphasis></para>
+
+      <para>Termination Reasons are used by employments to track terminations
+      for analysis they are used in the <link
+      linkend="HUMANRES_FindEmployments">Employments</link> feature.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Termination Reason Id - A required unique identifier for the
+          Termination Reason. If one is not entered a numeric id will be
+          created.</para>
+        </listitem>
+
+        <listitem>
+          <para>Description - A user defined description of the type.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create button: Click to save the Termination Reason. The
+          screen is refreshed. If no id was entered the system generated
+          numeric id is displayed</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the Termination Reason. The
+          Termination Reason is deleted and can not be restored.</para>
+        </listitem>
+
+        <listitem>
+          <para>Submit button: Saves any changes made to any of the
+          descriptions in the list above the Submit button.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditTerminationTypes">
+      <title>Termination Types</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/GlobalHRSettingsTerminationTypes.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Global HR Settings &gt; Termination Types</para>
+
+      <para><emphasis role="bold">Usage</emphasis></para>
+
+      <para>Termination Types are used by employments to track terminations
+      for analysis see usage in the <link
+      linkend="HUMANRES_FindEmployments">Employments</link> feature for
+      usage.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Termination Type Id - A required unique identifier for the
+          Termination Type. If one is not entered a numeric id will be
+          created.</para>
+        </listitem>
+
+        <listitem>
+          <para>Description - A user defined description of the type.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create button: Click to save the Termination Types. The screen
+          is refreshed. If no id was entered the system generated numeric id
+          is displayed</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the Termination Types. The
+          Termination Reason is deleted and can not be restored.</para>
+        </listitem>
+
+        <listitem>
+          <para>Submit button: Saves any changes made to any of the
+          descriptions in the list above the Submit button.</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1>
+      <title>Position Types and Rates</title>
+
+      <para>The position type is used to categorize <link
+      linkend="HUMANRES_FindEmplPositions">Positions</link> . This is straight
+      forward and the examples Programmer, System Administrator and Business
+      Analyst form the demo data are a good demonstration of the intended
+      usage. Each position type has a schedule of rates that can be offered to
+      a applicant for a position.</para>
+
+      <para>There are two methods for defining the schedule. The first is
+      built around a rate amount. The second uses Pay Grades, which are
+      defined in the <link linkend="HUMANRES_FindPayGrades">Pay Grade</link>
+      feature.</para>
+
+      <para>The two methods are exclusive. If you use one for a position type,
+      you can not use the other.</para>
+
+      <para><emphasis role="bold">Using the Rate Amount
+      Schedule</emphasis></para>
+
+      <para>Each position type may have one or more associated rate types.
+      Rate type is identified by its rate type id, a description of the rate
+      type, time period and from thru dates. Each combination of rate type and
+      time period has a rate amount.</para>
+
+      <para>Available rate types are Standard Rate, Discounted Rate, Overtime
+      Rate, Average Pay Rate, Highest Pay Rate, and Lowest Pay Rate.</para>
+
+      <para>Available time periods are Fiscal Year, Fiscal Quarter, Fiscal
+      Month, Fiscal Week, Fiscal Bi-Week, Sales Quarter, Sales Month, Rate
+      amount per Hour, Rate amount per Week, Rate amount per month, and Rate
+      amount per Quarter.</para>
+
+      <para>This sounds very complex but the example below, of a rate schedule
+      for a business analyst, should help to make it clear:</para>
+
+      <informaltable frame="box" rules="all">
+        <thead>
+          <tr align="center">
+            <th>Position Type</th>
+
+            <th>Rate Type Id</th>
+
+            <th>Period Type Id</th>
+
+            <th>Rate Amount</th>
+          </tr>
+        </thead>
+
+        <tbody>
+          <tr>
+            <td>Business Analyst</td>
+
+            <td>Standard Rate</td>
+
+            <td>Fiscal Year</td>
+
+            <td>65,000</td>
+          </tr>
+
+          <tr>
+            <td/>
+
+            <td>Standard Rate</td>
+
+            <td>Rate amount per Hour</td>
+
+            <td>40.00</td>
+          </tr>
+
+          <tr>
+            <td/>
+
+            <td>Discounted Rate</td>
+
+            <td>Fiscal Year</td>
+
+            <td>60,000</td>
+          </tr>
+
+          <tr>
+            <td/>
+
+            <td>Discounted Rate</td>
+
+            <td>Rate amount per Hour</td>
+
+            <td>38.50</td>
+          </tr>
+
+          <tr>
+            <td/>
+
+            <td>Highest Pay Rate</td>
+
+            <td>Fiscal Year</td>
+
+            <td>75,000</td>
+          </tr>
+
+          <tr>
+            <td/>
+
+            <td>Highest Pay Rate</td>
+
+            <td>Rate amount per Hour</td>
+
+            <td>75.00</td>
+          </tr>
+
+          <tr>
+            <td/>
+
+            <td>Lowest Pay Rate</td>
+
+            <td>Fiscal Year</td>
+
+            <td>55,000</td>
+          </tr>
+
+          <tr>
+            <td/>
+
+            <td>Lowest Pay Rate</td>
+
+            <td>Rate amount per Hour</td>
+
+            <td>35.00</td>
+          </tr>
+        </tbody>
+      </informaltable>
+
+      <para>Any of the rate amounts could be offered to a person taking the
+      position of Business Analyst.</para>
+
+      <para>Only one record from the schedule is used at a time for computing
+      the employees actual pay.</para>
+
+      <para><emphasis role="bold">Using Pay Grades</emphasis></para>
+
+      <para>The pay grade method is more rigidly structured then the rate
+      amount method described above. A pay grade schedule, created in <link
+      linkend="HUMANRES_FindPayGrades">Pay Grades</link> , is used in place of
+      a schedule like the one shown above. There can be one or more pay grade
+      schedules. Each has a name and an ordered set of salary steps. Each step
+      has an amount.</para>
+
+      <para>Here is a sample pay grade schedule:</para>
+
+      <informaltable frame="box" rules="all">
+        <thead>
+          <tr align="center">
+            <th>Pay Grade Name</th>
+
+            <th>Salary Step Sequence Id</th>
+
+            <th/>
+          </tr>
+        </thead>
+
+        <tbody>
+          <tr>
+            <td>Grade 1</td>
+
+            <td>10000</td>
+
+            <td>500</td>
+          </tr>
+
+          <tr>
+            <td/>
+
+            <td>10001</td>
+
+            <td>750</td>
+          </tr>
+
+          <tr>
+            <th align="left"/>
+
+            <th align="left">10002</th>
+
+            <th align="left">1,000</th>
+          </tr>
+
+          <tr align="left">
+            <th/>
+
+            <th>10003</th>
+
+            <th>1,250</th>
+          </tr>
+        </tbody>
+      </informaltable>
+
+      <para>A position type is associated with a single row of the schedule
+      using the Pay Grade Name and Step Sequence Id.</para>
+
+      <para><emphasis role="bold">Usage Difference Between Rate Amount
+      Schedule and Pay Grades</emphasis></para>
+
+      <para>When using Rate Amount enter a value in the Rate Amount field and
+      omit values in the Pay Grade Id and Salary Step Sequence Id
+      fields.</para>
+
+      <para>When using Pay Grades enter values in Pay Grade Id and Salary Step
+      Sequence Id fields but leave the Rate Amount empty.</para>
+
+      <para>Enter values in the Rate Type Id, Period Type Id and Rate Currency
+      Uom Id for both methods.</para>
+
+      <sect2 xml:id="HUMANRES_FindEmplPositionTypes">
+        <title>Search Position Types</title>
+
+        <para>Position Types group positions for reporting.</para>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata align="center"
+                         fileref="../humanres_en_images/GlobalHRSettingsPositionTypeSearch.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+
+        <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources
+        &gt; Global HR Settings &gt; Position Types</para>
+
+        <para><emphasis role="bold">Usage</emphasis></para>
+
+        <para>Position types are used in the <link
+        linkend="HUMANRES_FindEmplPositions">Employee Position</link> feature.
+        Use the Position Types screen to create a Position Type, search for an
+        existing Position Type and delete position types. Selecting a position
+        type from the list opens the Edit Position Type screen.</para>
+
+        <para><emphasis role="bold">Field Search Options</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Empl Position Type Id - The drop-down list displays the
+            descriptions of the position types. The default is to select all
+            position types. If a selection is made only a single position will
+            be returned. (If two position types have the same description the
+            description will appear twice in the list but only the item
+            selected will be returned).</para>
+          </listitem>
+
+          <listitem>
+            <para>Parent Type Id - Enter the parent type id to filter on the
+            children of the parent.</para>
+          </listitem>
+
+          <listitem>
+            <para>Has Table - This field is not used an can be ignored.</para>
+          </listitem>
+
+          <listitem>
+            <para>Description - Enter all or part of the description. Unlike
+            the case in Empl Position Type Id where only one of two or more
+            identical descriptions are returned, here all the records matching
+            the description will be returned.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Field Search Results</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Position Types - This is the Empl Position Type Id, the
+            unique identifier of the type.</para>
+          </listitem>
+
+          <listitem>
+            <para>Description - A user defined description of the type.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Find button: Click for a list of position types. Displays
+            the list of in the Search Results screenlet.</para>
+          </listitem>
+
+          <listitem>
+            <para>Delete button: Click to delete the Employee Position Type.
+            The Employee Position Type is deleted and can not be
+            restored</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2 xml:id="HUMANRES_EditEmplPositionTypes">
+        <title>New Position Type</title>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata align="center"
+                         fileref="../humanres_en_images/GlobalHRSettingsPositionTypeNew.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+
+        <para><emphasis role="bold">Breadcrumbs - Human Resources &gt; Global
+        HR Settings &gt; Position Types</emphasis></para>
+
+        <para><emphasis role="bold">Click New Position Type</emphasis></para>
+
+        <para><emphasis role="bold">Usage:</emphasis> Create a new position
+        type.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Empl Position Type Id - A required unique identifier for the
+            Position Type. If one is not entered a numeric id will be
+            created.</para>
+          </listitem>
+
+          <listitem>
+            <para>Parent Type Id - Enter the Empl Position Type Id of the
+            position type that will be the parent of this entry. This will
+            form a tree structure that could be used for roll up
+            reporting.</para>
+          </listitem>
+
+          <listitem>
+            <para>Has Table - Field is not used and can be ignored.</para>
+          </listitem>
+
+          <listitem>
+            <para>Description - Required. Enter a user defined description for
+            the type.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis>: Click Create to a new
+        Position Type.</para>
+
+        <para>From here you would typically click <link
+        linkend="HUMANRES_EditEmplPositionTypeRates">Position Type Rate</link>
+        on the menu and enter a rate schedule for the position.</para>
+      </sect2>
+
+      <sect2>
+        <title>Edit Position Type</title>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata align="center"
+                         fileref="../humanres_en_images/GlobalHRSettingsPositionTypeEdit.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+
+        <para><emphasis role="bold">Breadcrumbs -</emphasis> Human Resources
+        &gt; Global HR Settings &gt; Position Types</para>
+
+        <para>Using Search Options find a position type</para>
+
+        <para>In Search Results click on a value in the Position Type
+        column.</para>
+
+        <para>The Edit Position Types screen opens</para>
+
+        <para><emphasis role="bold">Usage</emphasis>: Update a position
+        type.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Empl Position Type Id - The unique identifier of the
+            position type. Can not be changed.</para>
+          </listitem>
+
+          <listitem>
+            <para>Parent Type Id - Enter or change the Empl Position Type Id
+            of the position type that will be the parent of this entry.</para>
+          </listitem>
+
+          <listitem>
+            <para>Field is not used and can be ignored.</para>
+          </listitem>
+
+          <listitem>
+            <para>Description - Required. You man change the user defined
+            description for the type. The field can not be made empty.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Action</emphasis> Click Update to save
+        changes.</para>
+
+        <para>To leave the screen without saving changes click on any menu
+        item. The changes will be lost.</para>
+      </sect2>
+
+      <sect2 xml:id="HUMANRES_EditEmplPositionTypeRates">
+        <title>Position Type Rate</title>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata align="center"
+                         fileref="../humanres_en_images/GlobalHRSettingsPositionTypeRates.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+
+        <para><emphasis role="bold">Breadcrumbs -</emphasis> Human Resources
+        &gt; Global HR Settings &gt; Position Types &gt; Click Position Type
+        Rate menu item</para>
+
+        <para><emphasis role="bold">Usage</emphasis></para>
+
+        <para>Create a rate schedule for a Position Type using either the Rate
+        Amount or Pay Grade features (See discussion in <link
+        linkend="HUMANRES_FindEmplPositionTypes">Position Type</link>
+        Introduction).</para>
+
+        <note>
+          <para>When you enter a rate in the HR App it is has its position
+          type field set. Rates can be entered in other OFBiz Apps set to a
+          party id instead of the position.</para>
+
+          <para>In Project Manager &gt; Resources Click the button in the
+          Resource Name column &gt; Rates, rates are assigned to a project
+          member who is a person. These rates are used in calculating invoices
+          to a client in a service organization scenario. Rates are managed in
+          the same way in SCRUM Application &gt; My Profile &gt; Rates</para>
+
+          <para>You can manage rates by people or position types in Accounting
+          &gt; Global GL Settings &gt; Rates.</para>
+        </note>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Rate Type Id - Select one of Standard Rate, Discounted Rate,
+            Overtime Rate, Average Pay Rate, Highest Pay Rate, or Lowest Pay
+            Rate.</para>
+          </listitem>
+
+          <listitem>
+            <para>Period Type Id - Select one of Fiscal Year, Fiscal Quarter,
+            Fiscal Month, Fiscal Week, Fiscal Bi-Week, Sales Quarter, Sales
+            Month, Rate amount per Hour, Rate amount per Week, Rate amount per
+            month, or Rate amount per Quarter</para>
+          </listitem>
+
+          <listitem>
+            <para>Rate Amount - Enter a rate amount if your are creating a
+            Rate Amount schedule. The Rate Amount is the numeric amount to be
+            paid for a Rate Type in a Time Period, in a Currency. Leave this
+            field blank if your are using a Pay Grade schedule</para>
+          </listitem>
+
+          <listitem>
+            <para>Pay Grade Id - The unique identifier for a Pay Grade. Click
+            on the Search Form icon to lookup Pay Grade Ids</para>
+          </listitem>
+
+          <listitem>
+            <para>Salary Step Sequence Id - The sequence identifier that is
+            associated with a Salary Step amount.</para>
+          </listitem>
+
+          <listitem>
+            <para>Rate Currency Uom Id - The currency the employee will be
+            paid in.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Create - Click Update to save changes.</para>
+          </listitem>
+
+          <listitem>
+            <para>Delete - Click to remove the Rate form the rate list. The
+            causes the rates thru date to be set so it is no longer displayed.
+            The rate remains in the data store for reporting and audit.</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Employee Leave Type</title>
+
+      <para>Employee Leave Type has a menu with items for Leave Type and
+      Reason Type.</para>
+
+      <sect2 xml:id="HUMANRES_EditEmplLeaveTypes">
+        <title>Leave Type</title>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata align="center"
+                         fileref="../humanres_en_images/GlobalHRSettingsEmployeeLeaveType.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+
+        <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources
+        &gt; Global HR Settings &gt; Employee Leave Type &gt; Leave
+        Type</para>
+
+        <para><emphasis role="bold">Usage</emphasis></para>
+
+        <para>This screen is used to create, edit and delete the leave types
+        used in the <link linkend="HUMANRES_FindPartySkills">Leave</link>
+        feature. Leave reason types are used to categorize an assigned
+        employee leave request.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Leave Type Id - A required unique identifier for the leave
+            type. If one is not entered a numeric id will be created.</para>
+          </listitem>
+
+          <listitem>
+            <para>Description - A user defined description of the type.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Create button: Click to save the leave type. The screen is
+            refreshed. If no id was enter the system generated numeric id is
+            displayed<warning>
+                <para>You must clear or change the Leave Type Id from the text
+                box before you can create another leave type. If you do not do
+                this you will get a duplicate id error message.</para>
+              </warning></para>
+          </listitem>
+
+          <listitem>
+            <para>Delete button: Click to delete the skill type. The skill
+            type is deleted and can not be restored.</para>
+          </listitem>
+
+          <listitem>
+            <para>Submit button: Saves any changes made to any of the
+            descriptions in the list above the Submit button.</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2 xml:id="HUMANRES_EditEmplLeaveReasonTypes">
+        <title>Reason Type</title>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata fileref="../humanres_en_images/GlobalHRSettingsReasonType.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+
+        <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources
+        &gt; Global HR Settings &gt; Employee Leave Type &gt; Reason
+        Type</para>
+
+        <para><emphasis role="bold">Usage</emphasis></para>
+
+        <para>This screen is used to create, edit and delete the leave reason
+        types used in the <link
+        linkend="HUMANRES_FindPartySkills">Leave</link> feature. Leave types
+        are used to categorize an assigned employee leave request.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Leave Type Id - A required unique identifier for the reason
+            type. If one is not entered a numeric id will be created.</para>
+          </listitem>
+
+          <listitem>
+            <para>Description - A user defined description of the type.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Create button: Click to save the reason type. The screen is
+            refreshed. If no id was entered the system generated numeric id is
+            displayed.</para>
+          </listitem>
+
+          <listitem>
+            <para>Delete button: Click to delete the reason type. The reason
+            type is deleted and can not be restored.</para>
+          </listitem>
+
+          <listitem>
+            <para>Submit button: Saves any changes made to any of the
+            descriptions in the list above the Submit button.</para>
+          </listitem>
+        </itemizedlist>
+
+        <tip>
+          <para>If you create more then one Leave Type you must manually clear
+          the Leave Type Id or you will get an error.</para>
+        </tip>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Pay Grades</title>
+
+      <para>The Pay Grades set up here are used in the <link
+      linkend="HUMANRES_FindEmplPositionTypes">Employee Position Type</link>
+      feature with Pay Grade style position pay schedules.</para>
+
+      <sect2 xml:id="HUMANRES_FindPayGrades">
+        <title>Search Pay Grades</title>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata fileref="../humanres_en_images/GlobalHRSettingsPayGradesSearch.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+
+        <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources
+        &gt; Global HR Settings &gt; Pay Grades</para>
+
+        <para><emphasis role="bold">Usage:</emphasis> Use the Pay Grades
+        screen to create a new Pay Grade, search for an existing Pay Grades
+        and view a list of Pay Grades. When the screen opens the first 20 Pay
+        Grades are displayed in the Search Results. Use Search Options to
+        refine the search.</para>
+
+        <para>Each Pay Grade contains a list of Salary Steps. Each step
+        advances the salary by a fixed amount.</para>
+
+        <para>Typically this method of defining a workers pay is used in
+        highly structured organizations like civil service jobs in the US. A
+        job has a pay grade and the worker rises through the steps of the pay
+        grade by well defined rules. The rules linked to years of service,
+        education level or some other fact based criteria. For example a
+        teacher may start in Pay Grade For Teacher Salary Step 1. After 3 year
+        on the job or completing additional training the teacher is advanced
+        to Salary Step 2.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Pay Grade Id - A unique identifier for the Pay Grade</para>
+          </listitem>
+
+          <listitem>
+            <para>Pay Grade Name - A user created name describing the pay
+            grade.</para>
+          </listitem>
+
+          <listitem>
+            <para>Comments - A user defined description for the pay
+            grade.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>New Pay Grade button: Click open the screen to create a new
+            Pay Grade.</para>
+          </listitem>
+
+          <listitem>
+            <para>Find button: Click for a list of Pay Grades. Displays a list
+            of Pay Grades in the Search Results screenlet.</para>
+          </listitem>
+
+          <listitem>
+            <para>Pay Grade Id text link: Opens the Edit Pay Grade
+            screenlet.</para>
+          </listitem>
+
+          <listitem>
+            <para>Delete button: Click to delete the Pay Grade. The item is
+            deleted and can not be restored.<note>
+                <para>All Salary Steps must be deleted before the Pay Grade
+                can be deleted.</para>
+              </note></para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2 xml:id="HUMANRES_EditPayGrade">
+        <title>New Pay Grade</title>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata fileref="../humanres_en_images/GlobalHRSettingsPayGradesNew.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+
+        <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources
+        &gt; Global HR Settings &gt; Pay Grades &gt; Click New Pay
+        Grade</para>
+
+        <para><emphasis role="bold">Usage - </emphasis>Create a Pay
+        Grade</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Pay Grade Id - Unique Id for the pay grade. May be user
+            entered or if empty the system will generate sequence
+            number.</para>
+          </listitem>
+
+          <listitem>
+            <para>Pay Grade Name - User entered text description of the pay
+            grade.</para>
+          </listitem>
+
+          <listitem>
+            <para>Comments - User entered additional information about the pay
+            grade.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Action</emphasis> Create button: Click to
+        create a Pay Grade. The Salary Steps menu item is displayed. Typically
+        you will click to add steps to the new pay grade.</para>
+      </sect2>
+
+      <sect2>
+        <title>Edit Pay Grade</title>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata fileref="../humanres_en_images/GlobalHRSettingsPayGradesEdit.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+
+        <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources
+        &gt; Click Find &gt; Click Pay GradeID text in Search Results</para>
+
+        <para><emphasis role="bold">Usage </emphasis>Update a pay
+        grade.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Pay Grade Id - Unique Id for the pay grade. Can not be
+            updated.</para>
+          </listitem>
+
+          <listitem>
+            <para>Pay Grade Name - User entered text description of the pay
+            grade.</para>
+          </listitem>
+
+          <listitem>
+            <para>Comments - User entered additional information about the pay
+            grade.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Action </emphasis>Update button: Click to
+        save changes to a pay grade record</para>
+      </sect2>
+
+      <sect2 xml:id="HUMANRES_EditSalarySteps">
+        <title>Salary Steps</title>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata fileref="../humanres_en_images/GlobalHRSettingsPayGradesSalaryStep.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+
+        <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources
+        &gt; Click Find &gt; Click Pay GradeID text in Search Results &gt;
+        Click Salary Steps menu item</para>
+
+        <para><emphasis role="bold">Usage </emphasis>Add, update and delete
+        salary steps for a pay grade.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Date Modified - effective date of a change to a salary
+            step.</para>
+          </listitem>
+
+          <listitem>
+            <para>Amount - Salary amount for the pay grade step</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Create button: Click to create the salary step.</para>
+          </listitem>
+
+          <listitem>
+            <para>Delete button: Click to delete the salary step. The salary
+            step is deleted and can not be restored</para>
+          </listitem>
+
+          <listitem>
+            <para>Submit button: Click to save changes in the list
+            above.</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditJobInterviewType">
+      <title>Job Interview Types</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/GlobalHRSettingsJobInterviewType.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Global HR Settings &gt; Job Interview Type</para>
+
+      <para><emphasis role="bold">Usage</emphasis></para>
+
+      <para>This screen is used to create, edit and delete the job interview
+      types used in the <link linkend="HUMANRES_FindJobInterview">Job
+      Interview</link> screenlet. The job interview records the interviewer
+      and the person being interviewed as well as the date of the interview
+      and some information about the interview like the interview type, a
+      grade and result.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Job Interview Type Id - A required unique identifier for the
+          skill type. If one is not entered a numeric id will be
+          created.</para>
+        </listitem>
+
+        <listitem>
+          <para>Description - A user defined description that categorizes the
+          type of job interview.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create button: Click to save the Job Interview Type. The
+          screen is refreshed. If no id was entered the system generated
+          numeric id is displayed</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the skill type. The skill type
+          is deleted and can not be restored.</para>
+        </listitem>
+
+        <listitem>
+          <para>Submit button: Saves any changes made to any of the
+          descriptions in the list above the Submit button.</para>
+        </listitem>
+      </itemizedlist>
+
+      <tip>
+        <para>If you create more then one Job Interview Type you must manually
+        clear the Job Interview Type Id or you will get an error.</para>
+      </tip>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_EditTrainingTypes">
+      <title>Training Class Type</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/GlobalHRSettingsTraininClassType.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Global HR Settings &gt; Training Class Type</para>
+
+      <para><emphasis role="bold">Usage</emphasis></para>
+
+      <para>This screen is used to create, edit and delete the Training Class
+      Types used in the <link
+      linkend="HUMANRES_TrainingCalendar">Training</link> feature. The
+      Training Class Type is used to categorize Training Classes.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Training Class Type - A required unique identifier for the
+          Training Class Type. You must enter a Training Class Type, the
+          system will display an error if you do not.</para>
+        </listitem>
+
+        <listitem>
+          <para>Prerequisite Skill - A Training Class Type class that should
+          be attended before this class.</para>
+        </listitem>
+
+        <listitem>
+          <para>Description - A user defined description that categorizes the
+          type of training.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create button: Click to save the Training Class Type . The
+          screen is refreshed.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the Training Class Type. The
+          Training Class Type is deleted and can not be restored.</para>
+        </listitem>
+
+        <listitem>
+          <para>Submit button: Saves any changes made to any of the
+          descriptions in the list above the Submit button.</para>
+        </listitem>
+      </itemizedlist>
+
+      <tip>
+        <para>If you create more then one Training Class Type you must
+        manually clear the Training Class Type or you will get an
+        error.</para>
+      </tip>
+    </sect1>
+
+    <sect1 xml:id="HUMANRES_PublicHoliday">
+      <title>Public Holiday</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../humanres_en_images/GlobalHRSettingsPublicHoliday.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources &gt;
+      Global HR Settings &gt; Public Holiday</para>
+
+      <para><emphasis role="bold">Usage</emphasis></para>
+
+      <para>A holiday created here appears as an entry in the <link
+      linkend="HUMANRES_TrainingCalendar">Training</link> and Work Effort
+      Calendar features. To view the entry in Work Effort Calendar:</para>
+
+      <orderedlist>
+        <listitem>
+          <para>In the Applications Menu select Work Effort</para>
+        </listitem>
+
+        <listitem>
+          <para>In the Work Effort Manager menu select Calendar</para>
+        </listitem>
+
+        <listitem>
+          <para>Use the Calendar navigation widgets to find the From Date of
+          the Public Holiday in the Calendar</para>
+        </listitem>
+      </orderedlist>
+
+      <para>The Holiday will appear as an entry under the From Date.</para>
+
+      <para><emphasis role="bold">Fields</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Holiday Name - Name of holiday</para>
+        </listitem>
+
+        <listitem>
+          <para>Description - A user defined description of the
+          holiday.</para>
+        </listitem>
+
+        <listitem>
+          <para>From Date - Date of the Holiday</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Actions</emphasis></para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Submit - Click to save the holiday . A messaged "Successfully
+          created" is displayed. The Add Public Holiday screenlet is cleared
+          and ready for the next entry.</para>
+        </listitem>
+
+        <listitem>
+          <para>Update - On Click holiday is opened in the edit screenlet.
+          Click Update in the screenlet to save changes.</para>
+        </listitem>
+
+        <listitem>
+          <para>Delete button: Click to delete the holiday. The holiday is
+          deleted and can not be restored</para>
+        </listitem>
+      </itemizedlist>
+    </sect1>
+
+    <sect1>
+      <title>Qualifications Type</title>
+
+      <para>You can use the Qualifications Type feature to mange <link
+      linkend="G_PARTY_QUALIIFICATION_TYPE">qualifications</link> to meet the
+      needs of your company. There are two sub screens:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Qualification Type Group - Groups organization <link
+          linkend="G_PARTY_QUALIIFICATION_TYPE">qualifications</link> to make
+          searching and reporting more convenient.</para>
+        </listitem>
+
+        <listitem>
+          <para>Qualification Type - Manages a list of <link
+          linkend="G_PARTY_QUALIIFICATION_TYPE">qualifications</link>.</para>
+        </listitem>
+      </itemizedlist>
+
+      <sect2>
+        <title>Qualification Type Group</title>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata fileref="../humanres_en_images/GlobalHRSettingsEditQualificationGroups.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+
+        <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources
+        &gt; Global HR Settings &gt; Qualification Type &gt; Qualification
+        Type Group</para>
+
+        <para><emphasis role="bold">Usage -</emphasis> This screen is used to
+        create, update and delete Qualification Groups. There are two
+        screenlets: Add Party Qualification Group to create new groups and
+        List Party Qualification Groups, an editable list of all
+        groups.</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Name is a short description suitable for
+            drop-down-list.</para>
+          </listitem>
+
+          <listitem>
+            <para>Description is an optional field for entering a detailed
+            definition of the group.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Create button: Click to save the qualification group. The
+            screen is refreshed and the new group appears in the List Party
+            Qualification Groups screenlet.</para>
+          </listitem>
+
+          <listitem>
+            <para>Delete button: Click to delete the qualification group. The
+            qualification group is deleted and can not be restored.</para>
+          </listitem>
+
+          <listitem>
+            <para>Update button: Saves any changes made to any of the
+            descriptions in the list above the Update button.</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>Qualification Type</title>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata fileref="../humanres_en_images/GlobalHRSettingsEditQualifications.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+
+        <para><emphasis role="bold">Breadcrumbs</emphasis>: Human Resources
+        &gt; Global HR Settings &gt; Qualification Type &gt; Click menu item
+        Qualification Type</para>
+
+        <para><emphasis role="bold">Usage -</emphasis> Qualifications are used
+        in the <link linkend="HUMANRES_FindPartyQuals">Qualifications</link>
+        feature. This screen is used to create, update and delete
+        Qualifications. There are two screenlets: Add Party Qualification to
+        create a new qualification and List Party Qualification, an editable
+        list of all qualifications. Qualifications are grouped by
+        Qualification Type</para>
+
+        <para><emphasis role="bold">Fields</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Qualification Type is a description for grouping
+            qualifications to enhance search and reporting of
+            qualifications.</para>
+          </listitem>
+
+          <listitem>
+            <para>Name is a short description of the qualification suitable
+            for drop-down-list.</para>
+          </listitem>
+
+          <listitem>
+            <para>Description is an optional field for entering a detailed
+            definition of the qualification.</para>
+          </listitem>
+        </itemizedlist>
+
+        <para><emphasis role="bold">Actions</emphasis></para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Create button: Click to save the qualification. The screen
+            is refreshed and the new qualification appears in the List Party
+            Qualifications screenlet.</para>
+          </listitem>
+
+          <listitem>
+            <para>Delete button: Click to delete the qualification. The
+            qualification is deleted and can not be restored.</para>
+          </listitem>
+
+          <listitem>
+            <para>Update button: Saves any changes made to any of the
+            descriptions in the list above the Update button.</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="SECURITY">
+    <title>Security</title>
+
+    <para>OFBiz has a security model that controls access to resources at a
+    very fine grained level. This means that it is possible to manage who has
+    access to view information and perform work from the highest level (i.e.
+    Create or deny access to the application itself) down to the lowest level
+    (i.e. View, create, update or delete a single item of information).</para>
+
+    <para>This chapter covers the security permissions that come with the HR
+    App and how an administrator can assign permissions to a user login using
+    the Party Manager application.</para>
+
+    <note>
+      <para>A person may have one or more login id's. Each login id is
+      assigned to it's own set of Security Groups. This means that the id a
+      user logs in with determines what applications the person can work in
+      and what work can be done in the application. For an example of multiple
+      user logins see the party id admin in the demo data.</para>
+    </note>
+
+    <sect1>
+      <title>Human Resource Permissions</title>
+
+      <para>In OFBiz a Security Group is collection of permissions that allow
+      a members of the group to use the application and it's resources.</para>
+
+      <para>The HR App has three special security groups that can be assigned
+      HR App users. There are also other general administrative security
+      groups that let managers and administrators work in the
+      application.</para>
+
+      <para>You use the Party Manager application to add users to one or more
+      Security Groups.</para>
+
+      <sect2>
+        <title>Special HR App Permissions</title>
+
+        <para>The three special HR App Security Groups are named by
+        role:</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Employee Role - Required to logon into the HR App. This is
+            true even if user has the Approver and Admin Roles, the Employee
+            Role is still needed to get into the HR App. It has the most
+            restrictions on what the user may view and the actions the user
+            may take of all the HR App roles.</para>
+          </listitem>
+
+          <listitem>
+            <para>Approver Role - The approver role gives members of the group
+            the ability to approve Training. The approver has all of the
+            permissions of the Employee Role and in addition may view and
+            update some of the screens that are not available to the Employee
+            role.</para>
+          </listitem>
+
+          <listitem>
+            <para>Administrator Role - A person with the Administrator Role
+            has permission to do everything in the HR App. A person with the
+            Administrator Role is allowed full access to view, create, update
+            and delete throughout the HR App.</para>
+          </listitem>
+        </orderedlist>
+
+        <note>
+          <para>A person with the Administrator Role must also belong to the
+          Work Effort User, My Portal Employee, My Portal Customer or Scrum
+          Team security group to be able to add Training class in the Training
+          feature. This is an exception to the above explanation for
+          Administrator Role.</para>
+        </note>
+      </sect2>
+
+      <sect2>
+        <title>General OFBiz Permissions</title>
+
+        <para>Some users may not have any of the HR App permission but can
+        still access the HR App and perform operations. These include:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Business Admin has permission for all operations in the HR
+            App.</para>
+          </listitem>
+
+          <listitem>
+            <para>Flexible Admin has permission for create, update, delete and
+            view operations on the HR App</para>
+          </listitem>
+
+          <listitem>
+            <para>Full Admin has permission for all operations in the HR
+            App.</para>
+          </listitem>
+
+          <listitem>
+            <para>Super has permission for all operations in the HR App</para>
+          </listitem>
+
+          <listitem>
+            <para>Viewadmin has permission for viewing the HR App</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Security Administration In Party Manager</title>
+
+      <para>A user must be granted permissions to use the HR App. This section
+      describes how to do this in Party Manager. It assumes the user has a
+      user login and Party administration privileges.</para>
+
+      <orderedlist>
+        <listitem>
+          <para>Login to the Party application.</para>
+        </listitem>
+
+        <listitem>
+          <para>User Search Option to find the person who is to be given
+          permission to use HR App.</para>
+        </listitem>
+
+        <listitem>
+          <para>In Search Results click the text in the Party ID
+          column.</para>
+        </listitem>
+
+        <listitem>
+          <para>In the User Name(s) screenlet click the Security Groups button
+          for the User Login that will receive HR App permissions.</para>
+        </listitem>
+
+        <listitem>
+          <para>In the Add User Login to Security Group screenlet select the
+          HUMANRES_EMPLOYEE... from the Group drop-down-list. Click the Add
+          button to use the current date for the From Date or enter dates for
+          From Date and Thru Date as needed then click Add.</para>
+        </listitem>
+
+        <listitem>
+          <para>If the person is to be allowed to approve Training add the
+          HUMANRES_APPROVER permission. As in the previous step enter dates as
+          required.</para>
+        </listitem>
+
+        <listitem>
+          <para>If the person is to be allowed all access then add the
+          HUMANRES_ADMIN permission... As in the previous steps enter dates as
+          required.</para>
+        </listitem>
+      </orderedlist>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="INTRA_APPL_INTEGRATION">
+    <title>HR App Intra-Application Integration</title>
+
+    <para>From time to time you will need to use the features found in other
+    OFBiz applications in support of some HR App features. This section
+    describes these usage scenarios.</para>
+
+    <sect1>
+      <title>Accounting</title>
+
+      <para>In the Accounting application you can setup agreements to define
+      your employments and write checks to pay your employees.</para>
+
+      <sect2>
+        <title>Payroll</title>
+
+        <para>Although managing the payroll is not a part of HR App the task
+        is so important to the basic HR App requirement to process worker
+        transactions that we will cover it here. You write paychecks to an
+        employees in the OFBiz accounting application. In OFBiz pay checks are
+        paid against an invoice type Payrol, so the first thing to do is
+        create an invoice type Payrol. As you progress through the steps to
+        create a Payrol a payment is created for the invoice. You navigate to
+        the payment then return to the invoice to complete the
+        activity.</para>
+
+        <para><emphasis role="bold">To crate a Payrol type
+        invoice:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>Log into the Accounting application and select Invoices from
+            the main menu.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the New Purchase Invoice screenlet Invoice Type
+            drop-down-list select Payrol.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the From Party ID field enter the party id of the
+            employee to be paid.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Create.</para>
+
+            <para>A new invoice is created and header screen is displayed. The
+            status in the Header screenlet is In-Process.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Items.</para>
+
+            <para>The Add a new invoice Item screenlet opens and presents
+            three sets to record types related to payroll: Earnings and Hours,
+            Taxes, and Deductions from Gross. Each type has fields Quantity
+            and Amount. Enter positive number in all fields, the applications
+            will process debits and credits accordingly so it is not necessary
+            to enter a negative amount for a payroll deduction.</para>
+
+            <para>Some examples: Hourly Rate Q 40 A 20 (40 hours at 20 per
+            hour), Federal Withholding Q 1 A 120, 401K Emp Q 1 A 250. Fill in
+            these fields as required and click the Add button.</para>
+
+            <note>
+              <para>There are a large number of fields on this screen and it
+              is important to enter the correct information. A discussion of
+              each fields outside the scope of this document. It is
+              recommended that you throughly examine the outcome of each entry
+              in a test environment and review results with your accountant
+              before using this feature.</para>
+            </note>
+          </listitem>
+
+          <listitem>
+            <para>The records created in the previous step are displayed above
+            in the Items screenlet.</para>
+          </listitem>
+
+          <listitem>
+            <para>Continue to edit and update in the Items screenlet as
+            necessary. You can return to the Add a new invoice Item screenlet
+            to Add additional items if necessary.</para>
+          </listitem>
+
+          <listitem>
+            <para>When all of the invoice items are correct click Status To
+            Approved button in the menu above the Items screenlet. The status
+            in the Header screenlet is Approved. The Applied Payments
+            screenlet displays the record for the associated invoice
+            payment.</para>
+
+            <note>
+              <para>Setting Status to approved locks down the invoice header
+              and invoice items so that no changes can be made. Also note the
+              screenlet Applied Payments. A payment record was created that
+              you will use to write the paycheck. The amount of the payment is
+              net of any deductions from the items entered in step 5. Those
+              items are displayed in the Items screenlet. Here you can see
+              deductions shown as negative amounts.</para>
+            </note>
+          </listitem>
+
+          <listitem>
+            <para>In the Applied Payments screenlet click Payment Id text to
+            navigate to the invoice's Payment record.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Print As Check in the status menu bar. A PDF that can
+            be printed onto a blank check is created. Print and deliver the
+            check to the employee.</para>
+          </listitem>
+
+          <listitem>
+            <para>As an optional step you can click the Update button in the
+            Payment Header screenlet and enter the check number in the
+            Comments section. The comments show in the Search Results, this
+            enables you to search for a check number in the Payments search
+            screen.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the status menu click the Status To Sent button. This
+            triggers the creation of the accounting transactions, they are
+            displayed in the Transactions screenlet. At this point the
+            transactions can set to void.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the status menu click the Status to Confirmed. The void
+            option is no longer available. You will now return to the Invoice
+            to complete it's transactions.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the Payments Applied screenlet click the button Invoice
+            Id. The invoice Overview screen opens.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the status menu click the button Status to Ready. This
+            completes the process.</para>
+          </listitem>
+        </orderedlist>
+
+        <para><emphasis role="bold">Check It Out</emphasis></para>
+
+        <para>After you complete the process if you select Accounting Manager
+        &gt; Invoices filter on Invoice Type = Payrol and click Find you will
+        see your invoice at the top of the list. The status should = Paid and
+        the Outstanding amount = 0.</para>
+
+        <para>If you select Accounting Manager &gt; Payments filter on Payment
+        Type = Payroll Payment and click Find you will see your payment at the
+        top of the list. The status should = Sent and the Amount Applied = the
+        Amount.</para>
+
+        <para><emphasis role="bold">To Copy a Payrol type
+        invoice:</emphasis></para>
+
+        <para>Once you have processed an invoice for an employee you can use
+        the Copy command to duplicate the invoice the next time you need to
+        pay this person.</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Log into the Accounting application and select Invoices from
+            the main menu.</para>
+          </listitem>
+
+          <listitem>
+            <para>In Search Options enter the party id of the payee in the
+            From Party ID and click Find.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the Invoice Id field click the button for the invoice you
+            want to copy. The invoice Overview screen for the selected invoice
+            opens.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the status menu click Copy. The screen is refreshed. The
+            screenlets, where appropriate, have Upstate buttons for modifying
+            the copied information.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click the Update button in the Header screenlet. The Header
+            screenlet opens. Update the Invoice Date and Due Date fields.
+            Click the Update button.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Items in the Feature Menu Screen. The items from the
+            copied invoice are populated in the Items screenlet saving you
+            from duplicating the entry process.</para>
+          </listitem>
+
+          <listitem>
+            <para>Update Items as needed.</para>
+          </listitem>
+
+          <listitem>
+            <para>Add new items using the Add a new invoice Item screenlet if
+            new items are needed.</para>
+          </listitem>
+
+          <listitem>
+            <para>When all of the invoice items are correct click Status To
+            Approved button in the menu above the Items screenlet.</para>
+          </listitem>
+
+          <listitem>
+            <para>The remainder of the process is the same as from step 9 in
+            To crate a Payrol type invoice above.</para>
+          </listitem>
+        </orderedlist>
+
+        <para>The above two process appear complex but after you have done
+        them a few time you will see they can be completed very quickly.
+        Practice using the Employee's DemoEmployee, DemoEmployee1,
+        DemoEmployee2, DemoEmployee3 that are set up by the Ant task
+        load-demo.</para>
+      </sect2>
+
+      <sect2 xml:id="INTRA_APPL_INTEGRATION_EMPL_AGREEMENTS">
+        <title>Employment Agreements</title>
+
+        <para>Agreements are managed in the Accounting application. Employment
+        agreements spell out the terms of employment between a person and your
+        company. This section discusses creating employment agreements and how
+        they are used in the HR App. Additional information about agreements
+        in the Accounting application can be found at Accounting Screens
+        Reference <command
+        xlink:href="https://cwiki.apache.org/OFBIZ/accounting-screens-reference.html"
+        xlink:show="new">Agreements.</command></para>
+
+        <para><emphasis role="bold">To create an Employment
+        agreement:</emphasis></para>
+
+        <orderedlist>
+          <listitem>
+            <para>Log into the Accounting application and select Agreements
+            from the main menu.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Create Agreement</para>
+          </listitem>
+
+          <listitem>
+            <para>Leave the Product Id field empty</para>
+          </listitem>
+
+          <listitem>
+            <para>In Party Id From enter your company's party id.</para>
+          </listitem>
+
+          <listitem>
+            <para>In Party Id To enter the party id of the employee.</para>
+          </listitem>
+
+          <listitem>
+            <para>In Role Type Id From select Internal Organization from the
+            drop-down-list</para>
+          </listitem>
+
+          <listitem>
+            <para>In Role Type Id To select Employment from the
+            drop-down-list.</para>
+          </listitem>
+
+          <listitem>
+            <para>In Agreement Type Id select Employment from the
+            drop-down-list.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the Agreement Date field identify the date when the
+            Agreement was originated, accepted, signed, or amended.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the From Date field enter the start date of the
+            agreement.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the Thru Date field enter the end date of the
+            agreement.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the Description field enter a user defined description of
+            the agreement.</para>
+          </listitem>
+
+          <listitem>
+            <para>Optionally you can enter the text of the agreement in the
+            Text Data field.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Agreement Items in the Agreement Menu bar.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Create Agreement Item.</para>
+          </listitem>
+
+          <listitem>
+            <para>Note the Agreement Id in the refreshed display. You will
+            need to know it when you associate the agreement with your
+            employment in the HR App</para>
+          </listitem>
+
+          <listitem>
+            <para>Select Exhibit from the Agreement Item Type Id
+            drop-down-list.</para>
+          </listitem>
+
+          <listitem>
+            <para>Select a currency from the Currency drop-down-list.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the Agreement Text field type or paste the text
+            description of the agreement.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Submit.</para>
+          </listitem>
+
+          <listitem>
+            <para>Note the Agreement Item Seq Id in the refreshed display. You
+            will need to know it when you associate the agreement with your
+            employment in the HR App.</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Party Manager</title>
+
+      <para>You can use the party manager to perform a number of useful
+      actions including:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Create a Person when you need to track people who are not
+          employees like contract employees.</para>
+        </listitem>
+
+        <listitem>
+          <para>Create a User Login when you need to allow a person to login
+          to OFBiz applications. For example a person applying for a position
+          will need a login.</para>
+        </listitem>
+
+        <listitem>
+          <para>Add security groups when you want to allow a person to login
+          to the HR App.</para>
+        </listitem>
+
+        <listitem>
+          <para>You can use Create Employee Relationship when you have a
+          person who has an id and now needs to become an employee. For
+          example someone who applied for a position and was later
+          hired.</para>
+        </listitem>
+
+        <listitem>
+          <para>User Create Internal Organizations to create an organization
+          that can be added to your organization tree so they can be related
+          to positions.</para>
+        </listitem>
+      </itemizedlist>
+
+      <sect2 xml:id="INTRA_APPL_INTEGRATION_CREATE_PERSON">
+        <title>Create Person</title>
+
+        <para>Persons created following the instructions below can be used as
+        follows:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Fulfill a position. See <link
+            linkend="HUMANRES_EditEmplPositionFulfillments">Employee
+            Position.</link></para>
+          </listitem>
+
+          <listitem>
+            <para>Add skills. See <link
+            linkend="HUMANRES_EditEmployeeSkills">Skills </link></para>
+          </listitem>
+
+          <listitem>
+            <para>Add qualifications. See Qualifications</para>
+          </listitem>
+
+          <listitem>
+            <para>Interview for a job. See <link
+            linkend="HUMANRES_FindJobInterview">Job Interview</link></para>
+          </listitem>
+
+          <listitem>
+            <para>Participate in training. See <link
+            linkend="HUMANRES_AssignTraining">Add Training Event
+            Participant</link></para>
+          </listitem>
+
+          <listitem>
+            <para>Apply for a position. See <link
+            linkend="HUMANRES_NewEmploymentApp">New Employment
+            App</link></para>
+          </listitem>
+
+          <listitem>
+            <para>Post a resume. See <link
+            linkend="HUMANRES_EditPartyResume">Add Resume</link></para>
+          </listitem>
+
+          <listitem>
+            <para>Apply for Leave. See <link
+            linkend="HUMANRES_EditEmplLeave">New Employee Leave</link>.<note>
+                <para>It may not make sense in your business for a person who
+                is not an employee to apply for leave however there may be
+                scenarios for people who are contract employees.</para>
+              </note></para>
+          </listitem>
+        </itemizedlist>
+
+        <para>To create a person record;</para>
+
+        <orderedlist>
+          <listitem>
+            <para>Login to the Party application. You will need create or
+            admin permission to create a new person.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click the button Create New</para>
+          </listitem>
+
+          <listitem>
+            <para>Click the button Create New Person</para>
+          </listitem>
+
+          <listitem>
+            <para>Inter the required First and Last names and other
+            information that is needed for your business.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Save</para>
+          </listitem>
+
+          <listitem>
+            <para>A new person is created. The persons profile is open where
+            you can create a login.</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+
+      <sect2 xml:id="INTRA_APPL_INTEGRATION_USER_LOGIN">
+        <title>User Login</title>
+
+        <para>The following assumes you are starting from step 6 in create
+        person record above.</para>
+
+        <orderedlist>
+          <listitem>
+            <para>In the User Name(s) screenlet click Create New</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter a User Login ID, Current Password and Current Password
+            Verify</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Save</para>
+          </listitem>
+
+          <listitem>
+            <para>In the screenlet click Save</para>
+          </listitem>
+        </orderedlist>
+
+        <para>A generic user login is created that will allow the person to
+        login to the eCommerce application. To login to the HR App you will
+        need to add a security group.</para>
+      </sect2>
+
+      <sect2>
+        <title xml:id="INTRA_APPL_INTEGRATION_SECURITY_GROUPS">Add HR App
+        Security Groups</title>
+
+        <para>The following assumes you are starting from step 4 in User Login
+        above. There are three HR App specific security groups see <link
+        linkend="SECURITY">Security</link></para>
+
+        <orderedlist>
+          <listitem>
+            <para>Click the menu item Profile</para>
+          </listitem>
+
+          <listitem>
+            <para>In User Names(s) click the button Security Groups</para>
+          </listitem>
+
+          <listitem>
+            <para>In the Group drop-down-list select HUMANRES_EMPLOYEE</para>
+          </listitem>
+
+          <listitem>
+            <para>Click the Add button.</para>
+          </listitem>
+        </orderedlist>
+
+        <para>The user now has login permission for the Human Resource
+        application. At this time the user is not an employee of the Company.
+        The user can preform the following operations.</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Fulfill a position. See <link
+            linkend="HUMANRES_EditEmplPositionFulfillments">Employee
+            Position.</link></para>
+          </listitem>
+
+          <listitem>
+            <para>Add skills. See <link
+            linkend="HUMANRES_EditEmployeeSkills">Skills </link></para>
+          </listitem>
+
+          <listitem>
+            <para>Add qualifications. See Qualifications</para>
+          </listitem>
+
+          <listitem>
+            <para>Interview for a job. See <link
+            linkend="HUMANRES_FindJobInterview">Job Interview</link></para>
+          </listitem>
+
+          <listitem>
+            <para>Request training. See <link
+            linkend="HUMANRES_FindTrainingApprovals">Request
+            Training</link></para>
+          </listitem>
+
+          <listitem>
+            <para>Apply for a position. See <link
+            linkend="HUMANRES_NewEmploymentApp">New Employment
+            App</link></para>
+          </listitem>
+
+          <listitem>
+            <para>Post a resume. See <link
+            linkend="HUMANRES_EditPartyResume">Add Resume</link></para>
+          </listitem>
+
+          <listitem>
+            <para>Apply for Leave. See <link
+            linkend="HUMANRES_EditEmplLeave">New Employee Leave</link>.<note>
+                <para>It may not make sense in your business for a person who
+                is not an employee to apply for leave however there may be
+                scenarios for people who are contract employees.</para>
+              </note></para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2 xml:id="INTRA_APPL_INTEGRATION_CREATE_EMPL_RELATIONSHIP">
+        <title>Create Employee Relationship</title>
+
+        <para>You may need to create an employment relationship between your
+        company and a person who is not an employee. Before you can do that
+        you must assign the person the role of employee in the Party Manager
+        application. To to that:</para>
+
+        <orderedlist>
+          <listitem>
+            <para>From the Applications menu select Party</para>
+          </listitem>
+
+          <listitem>
+            <para>Use Search Options to find the person who is to become an
+            employee.</para>
+          </listitem>
+
+          <listitem>
+            <para>Party Manager displays the persons profile under the menu
+            list.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the menu above the profile click Roles.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the Add To Role screenlet select Employee from the Role
+            Type Id drop-down-list</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Add</para>
+          </listitem>
+
+          <listitem>
+            <para>The Employee is displayed in the Member Roles list</para>
+          </listitem>
+
+          <listitem>
+            <para>Return to the HR App and Create the Employment for the new
+            employee.</para>
+          </listitem>
+        </orderedlist>
+
+        <para>People who are employees with Employee permission can perform
+        all of the actions of a person who is not an employee. In addition
+        employees can be found in the <link
+        linkend="HUMANRES_FindEmployee">Find Employee</link> screen, they can
+        be part of an <link linkend="HUMANRES_FindEmployments">New
+        Employment</link> employment relationship</para>
+      </sect2>
+
+      <sect2 xml:id="INTRA_APPL_INTEGRATION_CREATE_INTERNAL_ORG">
+        <title>Create Internal Organizations</title>
+
+        <para><link linkend="G_INTERNAL_ORGANIZATION">Internal
+        organizations</link> are the building blocks for your companies
+        organizational structure. They can be linked together to form an
+        organization tree using the GUI tree in the HR App <link
+        linkend="HUMANRES_main">Main Page</link>. Here are some steps for
+        setting this up.</para>
+
+        <para>If you are building from ant load-demo you can follow the steps
+        below in <link linkend="INTRA_APPL_INTEGRATION_CREATE_ORG_TREE">Create
+        Org Tree</link>.</para>
+
+        <para>If you ran ant load-seed, then first follow <link
+        linkend="INTRA_APPL_INTEGRATION_PRIME_TREE">Prime Company Tree</link>
+        before doing <link
+        linkend="INTRA_APPL_INTEGRATION_CREATE_ORG_TREE">Create Org
+        Tree</link> .</para>
+
+        <sect3 xml:id="INTRA_APPL_INTEGRATION_PRIME_TREE">
+          <title>Prime Company Tree</title>
+
+          <para>If you ran the ant load-seed then you must "prime" the Company
+          tree form in the HR Main Page by adding at least one relationship
+          between your company and a child internal organization. You must
+          also enter a record using Web Tools to initialize a preference for a
+          default organization and set a value in the general.properties file
+          to use your company name as a default organization in
+          drop-down-list.</para>
+
+          <para><emphasis role="bold">Create company seed
+          data</emphasis></para>
+
+          <orderedlist>
+            <listitem>
+              <para>Login to the Party application.</para>
+            </listitem>
+
+            <listitem>
+              <para>Click the button Create New</para>
+            </listitem>
+
+            <listitem>
+              <para>Click the button Create New Party Group</para>
+            </listitem>
+
+            <listitem>
+              <para>In the Group Name field enter the name of an top level
+              internal organization (your company name).</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter any other information about the internal
+              organization that your company would like to track.</para>
+            </listitem>
+
+            <listitem>
+              <para>Click Save</para>
+            </listitem>
+
+            <listitem>
+              <para>Click the Roles menu item to open the Add To Role
+              screenlet.</para>
+            </listitem>
+
+            <listitem>
+              <para>In the Role Type Id drop-down-list select Internal
+              Organization.</para>
+            </listitem>
+
+            <listitem>
+              <para>Click the Add button</para>
+            </listitem>
+
+            <listitem>
+              <para>Return to the main Party screen and click Create
+              New</para>
+            </listitem>
+
+            <listitem>
+              <para>Repeat steps 3-9 using the name of a child organization in
+              step 4 e.g. My Company Name child organization Accounting</para>
+            </listitem>
+
+            <listitem>
+              <para>Click the Relationships menu item.</para>
+            </listitem>
+
+            <listitem>
+              <para>See the screenlet "Add other party relationship"</para>
+
+              <para>In field "in the role of" enter select "Internal
+              Organization"</para>
+
+              <para>In field "is A" enter select "Group Member"</para>
+
+              <para>From Party ID lookup and enter the Party Id of your
+              Company</para>
+
+              <para>In field "in the role of" enter select "Internal
+              Organization"</para>
+            </listitem>
+
+            <listitem>
+              <para>Click the Submit button</para>
+            </listitem>
+          </orderedlist>
+
+          <para><emphasis role="bold">Set
+          PartyAcctgPrefAndGroup</emphasis></para>
+
+          <itemizedlist>
+            <listitem>
+              <para>In the Application Menu select Web Tools</para>
+            </listitem>
+
+            <listitem>
+              <para>In Web Tools Main Page select Entity Data
+              Maintenance</para>
+            </listitem>
+
+            <listitem>
+              <para>Find PartyAcctgPrefAndGroup and click All</para>
+            </listitem>
+
+            <listitem>
+              <para>After the screen refreshes click Create New</para>
+            </listitem>
+
+            <listitem>
+              <para>In the screenlet Edit Value enter your company Id in the
+              partyId field and it's name in the groupName field</para>
+            </listitem>
+
+            <listitem>
+              <para>Click the Create button</para>
+            </listitem>
+          </itemizedlist>
+
+          <para>You are done with Web Tools and can close the
+          application.</para>
+
+          <para><emphasis role="bold">Change general.properties
+          ORGANIZATION_PARTY</emphasis></para>
+
+          <itemizedlist>
+            <listitem>
+              <para>In you OFBiz home directory open the file
+              ofbiz21/framework/common/config/general.properties</para>
+            </listitem>
+
+            <listitem>
+              <para>Change the line ORGANIZATION_PARTY=Company to
+              ORGANIZATION_PARTY=PartyId_Of_Your_Company</para>
+
+              <note>
+                <para>If you created your company following the steps above
+                then OFBiz will have generated a party id 10000 so the entry
+                should read ORGANIZATION_PARTY=10000</para>
+              </note>
+            </listitem>
+
+            <listitem>
+              <para>Restart OFBiz and logon to the HR App</para>
+            </listitem>
+          </itemizedlist>
+
+          <para>You should see your company name and child organization name
+          in the tree widget on the Main HR screen.</para>
+
+          <para>Proceed to Create Org Tree to finish creating your company
+          organization tree.</para>
+        </sect3>
+
+        <sect3 xml:id="INTRA_APPL_INTEGRATION_CREATE_ORG_TREE">
+          <title>Create Org Tree</title>
+
+          <para>In this section you will add internal organizations in the
+          Party application but unlike the process above you will not create
+          the relationships between your internal organizations. This will be
+          done after in the HR App main screen.</para>
+
+          <para>The HR App captures a budget id and party id when you create a
+          position and an internal organization and employee id when you
+          create an employment. As a rule then you will need an internal
+          organization for each part of your companies organization that
+          employs a person or budgets for a position so that those
+          transactions can be reported on correctly.</para>
+
+          <para>Create Internal Organizations in the Party application.</para>
+
+          <orderedlist>
+            <listitem>
+              <para>Login to the Party application. You will need create or
+              admin permission to create a new internal organization.</para>
+            </listitem>
+
+            <listitem>
+              <para>Click the button Create New</para>
+            </listitem>
+
+            <listitem>
+              <para>Click the button Create New Party Group</para>
+            </listitem>
+
+            <listitem>
+              <para>In the Group Name field enter the name of an internal
+              organization.</para>
+            </listitem>
+
+            <listitem>
+              <para>Enter any other information about the internal
+              organization that your company would like to track.</para>
+            </listitem>
+
+            <listitem>
+              <para>Click Save</para>
+            </listitem>
+
+            <listitem>
+              <para>The party group is created and the party profile window
+              opens.</para>
+
+              <note>
+                <para>The system created a sequential numeric id for your new
+                group. Make note of it, you will need it to add your
+                organization to the tree in the HR App</para>
+              </note>
+            </listitem>
+
+            <listitem>
+              <para>Click the Roles menu item to open the Add To Role
+              screenlet.</para>
+            </listitem>
+
+            <listitem>
+              <para>In the Role Type Id drop-down-list select Internal
+              Organization.</para>
+            </listitem>
+
+            <listitem>
+              <para>Click the Add button</para>
+            </listitem>
+
+            <listitem>
+              <para>Repeat these steps for each internal organization in your
+              company.</para>
+            </listitem>
+          </orderedlist>
+
+          <para>The new party groups is now ready to be added to your
+          organization in the HR App.</para>
+        </sect3>
+      </sect2>
+    </sect1>
+
+    <sect1>
+      <title>Web Tools</title>
+
+      <para>The Web Tools application has low level features for the use of
+      experienced administrators. The use of the Entity Data Maintenance
+      feature is described here only because there are times when you will
+      need it to configure your reference data. You should not use Entity Data
+      Maintenance to change any application data that is entered in the HR App
+      features. </para>
+
+      <sect2 xml:id="INTRA_APPL_INTEGRATION_ENTITY_DATA_MAINT">
+        <title>Entity Data Maintenance</title>
+
+        <para>Use Entity Data Maintenance to create and update entities that
+        can not be managed in the HR App Global HR Settings.</para>
+
+        <note>
+          <para>Primary keys must be entered manually. Generally manual
+          primary keys are all upper case with underscores between words and
+          are a meaningful mnemonic i.e. A_PRIMARY_KEY.</para>
+        </note>
+
+        <para>When you have completed your work select HR from the
+        Applications menu to return to the Main screen of the HR App.</para>
+
+        <para>To create a new entity:</para>
+
+        <orderedlist>
+          <listitem>
+            <para>In the Web Tools Main Page select Entity Data
+            Maintenance.</para>
+          </listitem>
+
+          <listitem>
+            <para>Locate the entity in Entities - Alphabetical</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Crt to create a new entity.</para>
+          </listitem>
+
+          <listitem>
+            <para>In the View Value screenlet click Create New</para>
+          </listitem>
+
+          <listitem>
+            <para>In the Edit Value screenlet enter values for your new
+            entity.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Create</para>
+          </listitem>
+        </orderedlist>
+
+        <para>To update an entity:</para>
+
+        <orderedlist>
+          <listitem>
+            <para>In the Web Tools Main Page select Entity Data
+            Maintenance.</para>
+          </listitem>
+
+          <listitem>
+            <para>Locate the entity in Entities - Alphabetical</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Find.</para>
+          </listitem>
+
+          <listitem>
+            <para>Enter criteria in Search Options</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Find.</para>
+          </listitem>
+
+          <listitem>
+            <para>In Search Result click View in the row that displays your
+            entity.</para>
+          </listitem>
+
+          <listitem>
+            <para>In View Value click Edit.</para>
+          </listitem>
+
+          <listitem>
+            <para>In Edit Value make changes as needed.</para>
+          </listitem>
+
+          <listitem>
+            <para>Click Update</para>
+          </listitem>
+        </orderedlist>
+      </sect2>
+    </sect1>
+  </chapter>
+
+  <glossary>
+    <glossentry xml:id="G_ANNUAL_REVENUE">
+      <glossterm>Annual Revenue</glossterm>
+
+      <glossdef>
+        <para>Annual revenue is the amount of revenue for a group that is
+        reported in the Party Group Information screenlet of the groups
+        profile See <link
+        linkend="HUMANRES_EmployeeProfile">Profile</link>.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_BUDGET">
+      <glossterm>Budget</glossterm>
+
+      <glossdef>
+        <para>A budget is used to track spending in the company for a future
+        period of time. The company may have one or more budgets depending on
+        the requirements i.e. Operating Budget, Capital Budget. A budget has a
+        status, type and is composed of budget line items.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_BUDGET_ID">
+      <glossterm>Budget Id</glossterm>
+
+      <glossdef>
+        <para>Uniquely identifies a budget.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_BUDGET_SEQUENCE_ID">
+      <glossterm>Budget Sequence Id</glossterm>
+
+      <glossdef>
+        <para>Sets the display order for items in a budget item.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_BUDGET_ITEM">
+      <glossterm>Budget Item</glossterm>
+
+      <glossdef>
+        <para>Describes an item in a budget. It may have a type, amount and
+        purpose.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_EMPLOYEE">
+      <glossterm>Employee</glossterm>
+
+      <glossdef>
+        <para>An employee is a person who has an employment relationship with
+        your Company.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_EMPLOYEE_POSITION_TYPE">
+      <glossterm>Employee Position Type</glossterm>
+
+      <glossdef>
+        <para>Employee Positions Type is a name that describes a position.
+        Business Analyst, Programmer and System Administrator are position
+        types in the demo data. You can define your own position types in
+        <link linkend="HUMANRES_FindEmplPositionTypes">Global HR Settings &gt;
+        Position Types.</link></para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_EMPLOYMENT">
+      <glossterm>Employment</glossterm>
+
+      <glossdef>
+        <para>In OFBiz an <glossterm>Employment</glossterm> defines the
+        relationship between your Company and a person who is an employee. The
+        employment relationship tracks employee benefits, preferences, pay
+        history, and unemployment claims and agreements.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_ENTITY">
+      <glossterm>Entity</glossterm>
+
+      <glossdef>
+        <para>An entity represents an important business concept that is
+        stored as a record in the database. It is used in the document and
+        OFBiz to generalize about the behavior of persistent information. For
+        example employees and employments are important business concepts
+        stored in the database. We could refer to an action directly on a
+        particular entity by saying "Create a new employee" or "Create a new
+        employment". We could alternately describe a general create action by
+        saying "Create a new entity".</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_EXEMPT_FLAG">
+      <glossterm>Exempt Flag</glossterm>
+
+      <glossdef>
+        <para>May be used to indicate if an employee position is exempt of
+        non-exempt under the fair labor Standards Act (FLSA).</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_FEATURE">
+      <glossterm>Feature</glossterm>
+
+      <glossdef>
+        <para>A feature describes the collection of things you can do in the
+        HR App. Each of the menu items in the HR App Menu is refereed to as a
+        feature. i.e. The Employees feature</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_FULFILLMENT">
+      <glossterm>Fulfillment</glossterm>
+
+      <glossdef>
+        <para>A fulfillment associates a person with a position. A person can
+        fulfill more then one position and a position can have more then one
+        person.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_FULLTIME_FLAG">
+      <glossterm>Fulltime Flag</glossterm>
+
+      <glossdef>
+        <para>May be used to indicate if an employee position is for a full or
+        part time position.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_HR_APP_MENU">
+      <glossterm>HR App Menu</glossterm>
+
+      <glossdef>
+        <para>The main menu that opens the high level features of the HR App
+        i.e. Employees, Employments, Employee Position etc.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_INTERNAL_ORGANIZATION">
+      <glossterm>Internal Organization</glossterm>
+
+      <glossdef>
+        <para>Internal organization is the name of a relationship between a
+        party group and your company. This relationship is used to filter
+        party groups as being part of your company to distinguish them from
+        other groups which are external. For example your marketing department
+        is an internal organization while a suppliers sales department is
+        not.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_MAIN_SEARCH_SCREEN">
+      <glossterm>Main Search Screen</glossterm>
+
+      <glossdef>
+        <para>A common OFBiz presentation is for an HR App Menu to open a
+        screen with three screenlets. The top most holds a button to create a
+        new instance of the major entity in the feature. The middle screenlet
+        has search criteria for finding major entity records. The lower
+        screenlet has the search results with navigation widgets to open
+        editors and sub menus</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_MENUS">
+      <glossterm>Menus</glossterm>
+
+      <glossdef>
+        <para>OFBiz uses menus as the primary navigation element in the back
+        office applications i.e. Accounting, Manufacturing, Marketing etc. The
+        Application menu is the highest level menu where a user selects an
+        OFBiz application. Each application has an application sub menu that
+        is the high level menu within the application. Typically, but not
+        always, the menu takes it's name from an important application entity.
+        In the HR App Menu for example you have Employees, Employments,
+        Employee Positions etc.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_NUMBER_OF_EMPLOYEES">
+      <glossterm>Number of employees</glossterm>
+
+      <glossdef>
+        <para>Number of employees that are reported in the Party Group
+        Information screenlet of the groups profile See <link
+        linkend="HUMANRES_EmployeeProfile">Profile</link>.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_PARTY">
+      <glossterm>Party</glossterm>
+
+      <glossdef>
+        <para>In OFBiz a party is a term used to simplify collecting
+        information that used in a common manner by different people and
+        things. The most common party types are people and groups. Both people
+        and groups have contact information. A party is identified by a unique
+        Party Id. Using this id OFBiz can collect and find contact (and other
+        information and processes) for both people and groups in the same way.
+        This is why you will often see Party Id as a field in a form or a
+        filter as you work in OFBiz.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_PARTY_ID">
+      <glossterm>Party Id</glossterm>
+
+      <glossdef>
+        <para>The unique identifier for a party. The id is text so in some
+        cases you will see an id, created by a user, that caries some meaning
+        i.e. Party Id DemoEmployee. In other cases the id is created by OFBiz
+        and is will be simply a number from a sequence. In either case the id
+        is unique.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_PARTY_QUALIIFICATION_TYPE">
+      <glossterm>Party Qualification Type</glossterm>
+
+      <glossdef>
+        <para>Party qualifications define a person or organizations
+        accomplishments that indicate their fitness to perform a job.
+        Qualifications are organized into qualification groups for the purpose
+        of managing and reporting.</para>
+
+        <para>Qualifications for an individual person or organization are in
+        the <link linkend="HUMANRES_EditEmployeeQuals">Employees
+        Qualifications</link> menu item. To find and update the qualifications
+        of people and organizations see <link
+        linkend="HUMANRES_FindPartyQuals">Qualifications</link>. Qualification
+        groups and types are managed in <link
+        linkend="HUMANRES_EditSkillType">Global Settings Qualification
+        Type</link>.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_PERSON">
+      <glossterm>Person</glossterm>
+
+      <glossdef>
+        <para>In OFBiz a person is a human being as distinguished from a party
+        group which is an organization. Human beings and organizations have
+        different attributes i.e. People have first and last names while
+        groups have group names. Both person and party group are types of
+        parties and share information and processes common to parties.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_POSITION">
+      <glossterm>Position</glossterm>
+
+      <glossdef>
+        <para>A position is a job that can be filled by more then one person
+        over time or at the same time. Positions are defined by a type of
+        work. For example there may be 20 positions in an organization for a
+        secretary. Each position is related to a department in the
+        organization. A position can me thought of as a full-time equivalent
+        employee (FTE). So an FTE may be assigned to one or more positions and
+        position can be assigned to more then one FTEs (job sharing).</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_RATING">
+      <glossterm>Rating</glossterm>
+
+      <glossdef>
+        <para>A user defined numeric rating for a skill. See <link
+        linkend="HUMANRES_EditEmployeeSkills">Skills</link></para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_RESPONSIBILITY">
+      <glossterm>Responsibility</glossterm>
+
+      <glossdef>
+        <para>Responsibilities define duties assigned to a <glossterm
+        linkend="G_POSITION">position</glossterm>. They are defined in<link
+        linkend="HUMANRES_EditEmplPositionResponsibilities">Responsibility
+        Types</link> and assigned in Employee Position <link
+        linkend="HUMANRES_EditEmplPositionResponsibilities">Responsibilities</link>
+        .</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_SALARY_FLAG">
+      <glossterm>Salary Flag</glossterm>
+
+      <glossdef>
+        <para>May be used to indicate if an employee position is for a
+        salaried or hourly worker.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_SECURITY_GROUP">
+      <glossterm>Security Groups</glossterm>
+
+      <glossdef>
+        <para>A collection of application privileges given to a user login.
+        See <link linkend="SECURITY">Security</link> for details.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_SCREEN">
+      <glossterm>Screen</glossterm>
+
+      <glossdef>
+        <para>A screen is a high level GUI element that may contain a
+        collection of menus and one or more screenlets.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_SCREENLET">
+      <glossterm>Screenlet</glossterm>
+
+      <glossdef>
+        <para>A screenlet is a container for a form. It has a header with a
+        title.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_SKILL">
+      <glossterm>Skill</glossterm>
+
+      <glossdef>
+        <para>A name for some ability or knowledge possessed by a person or
+        organization that is needed to perform a job for the company. See
+        <link linkend="HUMANRES_EditEmployeeSkills">Skills</link></para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_SKILL_LEVEL">
+      <glossterm>Skill Level</glossterm>
+
+      <glossdef>
+        <para>A user defined numeric rating a skill. It is up to the user to
+        assign some meaning to the level. For example 1=Entry 2=Intermediate
+        3=Expert. See <link
+        linkend="HUMANRES_EditEmployeeSkills">Skills</link></para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_SKILL_GROUP">
+      <glossterm>Skill Group</glossterm>
+
+      <glossdef>
+        <para>A name that describes a collection of skills that have common
+        attributes. See <link
+        linkend="HUMANRES_EditEmployeeSkills">Skills</link></para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_TEMPORY_FLAG">
+      <glossterm>Temporary Flag</glossterm>
+
+      <glossdef>
+        <para>May be used to indicate if an employee position is permanent or
+        temporary.</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_TERMINATION_REASON">
+      <glossterm>Termination Reason</glossterm>
+
+      <glossdef>
+        <para>A name describing the cause related to a termination type e.g.
+        Type: resigned for reason: found new job</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_TERMINATION_TYPE">
+      <glossterm>Termination Type</glossterm>
+
+      <glossdef>
+        <para>A name for the kind of termination e.g. Resigned, fired,
+        retired, layoff</para>
+      </glossdef>
+    </glossentry>
+
+    <glossentry xml:id="G_YEARS_EXPERIENCE">
+      <glossterm>Years Experience</glossterm>
+
+      <glossdef>
+        <para>User entered number of years a that a person or organization has
+        experience with a skill. See <link
+        linkend="HUMANRES_EditEmployeeSkills">Skills</link></para>
+      </glossdef>
+    </glossentry>
+  </glossary>
+</book>
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/AccountingPayCheck.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/AccountingPayCheck.jpg
new file mode 100644
index 0000000..d2125d5
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/AccountingPayCheck.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/AccountingSetInvoiceStatus.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/AccountingSetInvoiceStatus.jpg
new file mode 100644
index 0000000..5253284
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/AccountingSetInvoiceStatus.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EditTrainingApprovalsTraining.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EditTrainingApprovalsTraining.jpg
new file mode 100644
index 0000000..3cb7cc0
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EditTrainingApprovalsTraining.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeAddSecurityGroup.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeAddSecurityGroup.jpg
new file mode 100644
index 0000000..549ce57
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeAddSecurityGroup.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeCreatePartyAttribute.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeCreatePartyAttribute.jpg
new file mode 100644
index 0000000..b29c7d5
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeCreatePartyAttribute.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeCreateUserLogin.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeCreateUserLogin.jpg
new file mode 100644
index 0000000..c17dc49
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeCreateUserLogin.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditEmployeeLeaves.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditEmployeeLeaves.jpg
new file mode 100644
index 0000000..cca2c04
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditEmployeeLeaves.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditEmployeeQuals.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditEmployeeQuals.jpg
new file mode 100644
index 0000000..6f90158
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditEmployeeQuals.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditEmployeeSkills.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditEmployeeSkills.jpg
new file mode 100644
index 0000000..f582667
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditEmployeeSkills.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditPartyAttribute.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditPartyAttribute.jpg
new file mode 100644
index 0000000..e71c19e
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditPartyAttribute.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditPersonalInformation.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditPersonalInformation.jpg
new file mode 100644
index 0000000..37ea7ff
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditPersonalInformation.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditUserLogin.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditUserLogin.jpg
new file mode 100644
index 0000000..0ef6368
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEditUserLogin.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEmployments.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEmployments.jpg
new file mode 100644
index 0000000..25d3441
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeEmployments.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeFindEmployee.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeFindEmployee.jpg
new file mode 100644
index 0000000..df92f42
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeFindEmployee.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeLeave.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeLeave.jpg
new file mode 100644
index 0000000..5031a6e
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeLeave.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeListEmplPositions.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeListEmplPositions.jpg
new file mode 100644
index 0000000..36b93f4
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeListEmplPositions.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeListEmployments.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeListEmployments.jpg
new file mode 100644
index 0000000..f56791f
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeListEmployments.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeNewEmployee.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeNewEmployee.jpg
new file mode 100644
index 0000000..1fe84b6
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeNewEmployee.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeNewEmployee.png b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeNewEmployee.png
new file mode 100644
index 0000000..5dc563b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeNewEmployee.png
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeePartyPartyContentScreen.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeePartyPartyContentScreen.jpg
new file mode 100644
index 0000000..0b402d4
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeePartyPartyContentScreen.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeePayrollHistory.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeePayrollHistory.jpg
new file mode 100644
index 0000000..a8546d2
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeePayrollHistory.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeePositionEdit.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeePositionEdit.jpg
new file mode 100644
index 0000000..b0e63ea
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeePositionEdit.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeProfile.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeProfile.jpg
new file mode 100644
index 0000000..3d217f3
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeProfile.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeProfileEditPersonalInformation.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeProfileEditPersonalInformation.jpg
new file mode 100644
index 0000000..9f26fd5
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeProfileEditPersonalInformation.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeProfilePerson.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeProfilePerson.jpg
new file mode 100644
index 0000000..5646730
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeProfilePerson.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeProfileTest.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeProfileTest.jpg
new file mode 100644
index 0000000..6da7a3b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeProfileTest.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeQualfication.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeQualfication.jpg
new file mode 100644
index 0000000..7e9e029
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeQualfication.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeSkills.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeSkills.jpg
new file mode 100644
index 0000000..558d8fe
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeSkills.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeTraining.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeTraining.jpg
new file mode 100644
index 0000000..b756030
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeeTraining.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeesFindEmployee.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeesFindEmployee.jpg
new file mode 100644
index 0000000..df92f42
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeesFindEmployee.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeesMain.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeesMain.jpg
new file mode 100644
index 0000000..b9b4cb4
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmployeesMain.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentAgreementEmploymentApp.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentAgreementEmploymentApp.jpg
new file mode 100644
index 0000000..2a7ce5f
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentAgreementEmploymentApp.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentApplicationNew.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentApplicationNew.jpg
new file mode 100644
index 0000000..1e88122
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentApplicationNew.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentApplicationSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentApplicationSearch.jpg
new file mode 100644
index 0000000..4e83220
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentApplicationSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentCreateEmployment.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentCreateEmployment.jpg
new file mode 100644
index 0000000..5e42cdc
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentCreateEmployment.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentCreatePartyBenefit.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentCreatePartyBenefit.jpg
new file mode 100644
index 0000000..49acb79
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentCreatePartyBenefit.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentEdit.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentEdit.jpg
new file mode 100644
index 0000000..2f92672
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentEdit.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentEditAgreementEmploymentAppls.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentEditAgreementEmploymentAppls.jpg
new file mode 100644
index 0000000..919dfc3
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentEditAgreementEmploymentAppls.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentEmplPositionView.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentEmplPositionView.jpg
new file mode 100644
index 0000000..6111d74
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentEmplPositionView.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentMain.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentMain.jpg
new file mode 100644
index 0000000..7a58859
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentMain.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentNew.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentNew.jpg
new file mode 100644
index 0000000..bd8c2ba
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentNew.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentNewEmployment.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentNewEmployment.jpg
new file mode 100644
index 0000000..2493adc
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentNewEmployment.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentNewEmployment.png b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentNewEmployment.png
new file mode 100644
index 0000000..da92cd1
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentNewEmployment.png
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentPartyBenefits.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentPartyBenefits.jpg
new file mode 100644
index 0000000..2d5c1d4
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentPartyBenefits.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentPayHistories.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentPayHistories.jpg
new file mode 100644
index 0000000..9da26df
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentPayHistories.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentPayrollPreferences.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentPayrollPreferences.jpg
new file mode 100644
index 0000000..c6616fd
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentPayrollPreferences.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentSearch.jpg
new file mode 100644
index 0000000..af7b6c2
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentUnemploymentClaims.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentUnemploymentClaims.jpg
new file mode 100644
index 0000000..9d02660
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentUnemploymentClaims.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentcreateUnemploymentClaim.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentcreateUnemploymentClaim.jpg
new file mode 100644
index 0000000..747f20e
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/EmploymentcreateUnemploymentClaim.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/FindEmployeeSkills.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/FindEmployeeSkills.jpg
new file mode 100644
index 0000000..5e75f45
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/FindEmployeeSkills.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditEditSkills.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditEditSkills.jpg
new file mode 100644
index 0000000..644b7a4
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditEditSkills.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditPositionTypes.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditPositionTypes.jpg
new file mode 100644
index 0000000..57dbf87
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditPositionTypes.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditQualificationGroups.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditQualificationGroups.jpg
new file mode 100644
index 0000000..de4818d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditQualificationGroups.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditQualifications.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditQualifications.jpg
new file mode 100644
index 0000000..34018c9
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditQualifications.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditSkillGroups.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditSkillGroups.jpg
new file mode 100644
index 0000000..4227e88
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditSkillGroups.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditSkills.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditSkills.jpg
new file mode 100644
index 0000000..f3bace5
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEditSkills.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEmployeeLeaveType.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEmployeeLeaveType.jpg
new file mode 100644
index 0000000..e0e356f
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsEmployeeLeaveType.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsJobInterviewType.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsJobInterviewType.jpg
new file mode 100644
index 0000000..29da358
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsJobInterviewType.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsMenu.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsMenu.jpg
new file mode 100644
index 0000000..3c8a7f2
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsMenu.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPayGradesEdit.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPayGradesEdit.jpg
new file mode 100644
index 0000000..a15910c
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPayGradesEdit.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPayGradesNew.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPayGradesNew.jpg
new file mode 100644
index 0000000..7a9aaa0
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPayGradesNew.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPayGradesSalaryStep.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPayGradesSalaryStep.jpg
new file mode 100644
index 0000000..67d6520
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPayGradesSalaryStep.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPayGradesSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPayGradesSearch.jpg
new file mode 100644
index 0000000..c984c89
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPayGradesSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPositionTypeEdit.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPositionTypeEdit.jpg
new file mode 100644
index 0000000..084fd5d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPositionTypeEdit.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPositionTypeNew.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPositionTypeNew.jpg
new file mode 100644
index 0000000..707af18
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPositionTypeNew.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPositionTypeRates.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPositionTypeRates.jpg
new file mode 100644
index 0000000..01a886b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPositionTypeRates.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPositionTypeSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPositionTypeSearch.jpg
new file mode 100644
index 0000000..72b12fd
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPositionTypeSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPublicHoliday.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPublicHoliday.jpg
new file mode 100644
index 0000000..08582f1
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsPublicHoliday.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsReasonType.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsReasonType.jpg
new file mode 100644
index 0000000..02df841
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsReasonType.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsResponsibilitylTypes.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsResponsibilitylTypes.jpg
new file mode 100644
index 0000000..7616049
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsResponsibilitylTypes.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsSkillTypes.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsSkillTypes.jpg
new file mode 100644
index 0000000..c1120d1
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsSkillTypes.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsTerminationReason.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsTerminationReason.jpg
new file mode 100644
index 0000000..be3ae99
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsTerminationReason.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsTerminationTypes.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsTerminationTypes.jpg
new file mode 100644
index 0000000..79a6018
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsTerminationTypes.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsTraininClassType.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsTraininClassType.jpg
new file mode 100644
index 0000000..b775819
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/GlobalHRSettingsTraininClassType.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/HROrganizationProfile.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/HROrganizationProfile.jpg
new file mode 100644
index 0000000..95f343b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/HROrganizationProfile.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/HelpPerformanceReview1.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/HelpPerformanceReview1.jpg
new file mode 100644
index 0000000..60c8d3d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/HelpPerformanceReview1.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/HelpPerformanceReview2.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/HelpPerformanceReview2.jpg
new file mode 100644
index 0000000..3e966cc
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/HelpPerformanceReview2.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/HelpRoadmap.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/HelpRoadmap.jpg
new file mode 100644
index 0000000..a181d91
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/HelpRoadmap.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/Introduction.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/Introduction.jpg
new file mode 100644
index 0000000..ec6b0a0
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/Introduction.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveApproval.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveApproval.jpg
new file mode 100644
index 0000000..d323925
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveApproval.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveApprovalSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveApprovalSearch.jpg
new file mode 100644
index 0000000..69232cb
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveApprovalSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveEmployeeEdit.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveEmployeeEdit.jpg
new file mode 100644
index 0000000..cedf37f
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveEmployeeEdit.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveEmployeeNew.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveEmployeeNew.jpg
new file mode 100644
index 0000000..610b881
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveEmployeeNew.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveEmployeeSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveEmployeeSearch.jpg
new file mode 100644
index 0000000..99a27a5
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/LeaveEmployeeSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/MainCompanyTreeView.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/MainCompanyTreeView.jpg
new file mode 100644
index 0000000..2ee49f4
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/MainCompanyTreeView.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/NewEmployee.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/NewEmployee.jpg
new file mode 100644
index 0000000..55504f5
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/NewEmployee.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/OFBizMainScreen.gif b/applications/content/data/helpdata/docbookhelp/humanres_en_images/OFBizMainScreen.gif
new file mode 100644
index 0000000..e06d818
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/OFBizMainScreen.gif
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/OrganizatinMain.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/OrganizatinMain.jpg
new file mode 100644
index 0000000..ddb307e
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/OrganizatinMain.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PartyManagerAddPartyRelationship.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PartyManagerAddPartyRelationship.jpg
new file mode 100644
index 0000000..9423f74
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PartyManagerAddPartyRelationship.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PartyManagerPartyFinancialHistory.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PartyManagerPartyFinancialHistory.jpg
new file mode 100644
index 0000000..9a360d2
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PartyManagerPartyFinancialHistory.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewEdit.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewEdit.jpg
new file mode 100644
index 0000000..2d1d396
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewEdit.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewEditPerfReview.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewEditPerfReview.jpg
new file mode 100644
index 0000000..a1b13a1
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewEditPerfReview.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewEditPerfReviewItems.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewEditPerfReviewItems.jpg
new file mode 100644
index 0000000..4d40d09
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewEditPerfReviewItems.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewHelp1.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewHelp1.jpg
new file mode 100644
index 0000000..f5838f0
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewHelp1.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewItem.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewItem.jpg
new file mode 100644
index 0000000..5ee1de5
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewItem.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewNew.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewNew.jpg
new file mode 100644
index 0000000..51604f0
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewNew.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewNew.png b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewNew.png
new file mode 100644
index 0000000..b88e840
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewNew.png
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewSearch.jpg
new file mode 100644
index 0000000..c7b7abb
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PerformanceReviewSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionEdit.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionEdit.jpg
new file mode 100644
index 0000000..1c629be
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionEdit.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionFulfillments.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionFulfillments.jpg
new file mode 100644
index 0000000..5e26448
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionFulfillments.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionMain.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionMain.jpg
new file mode 100644
index 0000000..44dd317
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionMain.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionNew.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionNew.jpg
new file mode 100644
index 0000000..300450a
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionNew.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionReportingStruct.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionReportingStruct.jpg
new file mode 100644
index 0000000..8c71b55
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionReportingStruct.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionResponsibilities.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionResponsibilities.jpg
new file mode 100644
index 0000000..c3220ee
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionResponsibilities.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionSearch.jpg
new file mode 100644
index 0000000..cd08d81
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionSummary.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionSummary.jpg
new file mode 100644
index 0000000..f6649ea
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionSummary.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionSummaryReportingStruct.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionSummaryReportingStruct.jpg
new file mode 100644
index 0000000..401ccd8
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/PositionSummaryReportingStruct.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsCreatePartyQual.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsCreatePartyQual.jpg
new file mode 100644
index 0000000..ff48f20
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsCreatePartyQual.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsEdit.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsEdit.jpg
new file mode 100644
index 0000000..1c1e392
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsEdit.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsFindPartyQuals.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsFindPartyQuals.jpg
new file mode 100644
index 0000000..caf37d6
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsFindPartyQuals.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsNew.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsNew.jpg
new file mode 100644
index 0000000..14800c2
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsNew.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsNewPartyQual.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsNewPartyQual.jpg
new file mode 100644
index 0000000..14800c2
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsNewPartyQual.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsSearch.jpg
new file mode 100644
index 0000000..caf37d6
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/QualificationsSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentFindApprovals.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentFindApprovals.jpg
new file mode 100644
index 0000000..918ed96
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentFindApprovals.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentFindInternalJobPosting.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentFindInternalJobPosting.jpg
new file mode 100644
index 0000000..d9f2843
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentFindInternalJobPosting.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentFindJobInterview.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentFindJobInterview.jpg
new file mode 100644
index 0000000..d9f2843
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentFindJobInterview.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentFindRelocation.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentFindRelocation.jpg
new file mode 100644
index 0000000..b05c27e
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentFindRelocation.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentInternalJobPostingNew.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentInternalJobPostingNew.jpg
new file mode 100644
index 0000000..0bbb20e
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentInternalJobPostingNew.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentInternalJobPostingSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentInternalJobPostingSearch.jpg
new file mode 100644
index 0000000..cf4a67c
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentInternalJobPostingSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobApprovalSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobApprovalSearch.jpg
new file mode 100644
index 0000000..ff25fa3
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobApprovalSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobInterviewEdit.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobInterviewEdit.jpg
new file mode 100644
index 0000000..9f4b5f6
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobInterviewEdit.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobInterviewNew.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobInterviewNew.jpg
new file mode 100644
index 0000000..4820be8
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobInterviewNew.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobInterviewSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobInterviewSearch.jpg
new file mode 100644
index 0000000..fe519da
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobInterviewSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobPostingSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobPostingSearch.jpg
new file mode 100644
index 0000000..60a4057
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobPostingSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRelocationSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRelocationSearch.jpg
new file mode 100644
index 0000000..ba4472d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRelocationSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRequisitionApply.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRequisitionApply.jpg
new file mode 100644
index 0000000..d9f2843
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRequisitionApply.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRequisitionEdit.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRequisitionEdit.jpg
new file mode 100644
index 0000000..5f547bd
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRequisitionEdit.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRequisitionNew.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRequisitionNew.jpg
new file mode 100644
index 0000000..b8e8c92
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRequisitionNew.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRequisitionSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRequisitionSearch.jpg
new file mode 100644
index 0000000..a7f65db
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/RecuritmentJobRequisitionSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/ResumeEdit.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/ResumeEdit.jpg
new file mode 100644
index 0000000..4407953
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/ResumeEdit.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/ResumeNew.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/ResumeNew.jpg
new file mode 100644
index 0000000..dc05ade
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/ResumeNew.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/ResumeSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/ResumeSearch.jpg
new file mode 100644
index 0000000..281dacc
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/ResumeSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsAddEmployeeSkills.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsAddEmployeeSkills.jpg
new file mode 100644
index 0000000..3f518be
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsAddEmployeeSkills.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsEdit.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsEdit.jpg
new file mode 100644
index 0000000..cd880bd
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsEdit.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsEditEmployeeSkills.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsEditEmployeeSkills.jpg
new file mode 100644
index 0000000..907a07d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsEditEmployeeSkills.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsFindEmployeeSkills.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsFindEmployeeSkills.jpg
new file mode 100644
index 0000000..936f919
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsFindEmployeeSkills.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsFindPartySkills.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsFindPartySkills.jpg
new file mode 100644
index 0000000..0647a92
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsFindPartySkills.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsNew.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsNew.jpg
new file mode 100644
index 0000000..31f3f8a
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsNew.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsNewPartySkill.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsNewPartySkill.jpg
new file mode 100644
index 0000000..3f518be
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsNewPartySkill.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsSearch.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsSearch.jpg
new file mode 100644
index 0000000..9715dab
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/SkillsSearch.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/Thumbs.db b/applications/content/data/helpdata/docbookhelp/humanres_en_images/Thumbs.db
new file mode 100644
index 0000000..47e668f
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/Thumbs.db
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendar.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendar.jpg
new file mode 100644
index 0000000..bbbe65a
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendar.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarAdd.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarAdd.jpg
new file mode 100644
index 0000000..5708104
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarAdd.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarAddParticipant.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarAddParticipant.jpg
new file mode 100644
index 0000000..d80858a
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarAddParticipant.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarApprovals.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarApprovals.jpg
new file mode 100644
index 0000000..199f6f1
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarApprovals.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarEditTrainingApprovals.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarEditTrainingApprovals.jpg
new file mode 100644
index 0000000..3cb7cc0
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarEditTrainingApprovals.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarFindTrainingStatus.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarFindTrainingStatus.jpg
new file mode 100644
index 0000000..9cae36f
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarFindTrainingStatus.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarTrainingCalendar.jpg b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarTrainingCalendar.jpg
new file mode 100644
index 0000000..149c024
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/TrainingCalendarTrainingCalendar.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/humanres_en_images/ofbiz_logo.gif b/applications/content/data/helpdata/docbookhelp/humanres_en_images/ofbiz_logo.gif
new file mode 100644
index 0000000..b5c7cf1
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/humanres_en_images/ofbiz_logo.gif
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de/manufacturing.xml b/applications/content/data/helpdata/docbookhelp/manufacturing_de/manufacturing.xml
new file mode 100644
index 0000000..499479a
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de/manufacturing.xml
@@ -0,0 +1,769 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+<book version="5.0" xmlns="http://docbook.org/ns/docbook"
+      xmlns:xlink="http://www.w3.org/1999/xlink"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      xmlns:svg="http://www.w3.org/2000/svg"
+      xmlns:m="http://www.w3.org/1998/Math/MathML"
+      xmlns:html="http://www.w3.org/1999/xhtml"
+      xmlns:db="http://docbook.org/ns/docbook">
+  <info>
+    <title>Manufacturing</title>
+
+    <author>
+      <personname><firstname/><surname/></personname>
+
+      <affiliation>
+        <orgname/>
+      </affiliation>
+    </author>
+
+    <pubdate/>
+  </info>
+
+  <chapter>
+    <title>Einführung</title>
+
+    <para>MFG ist die OFBiz Anwendung, die Fertigungsprozesse
+    unterstützt.</para>
+  </chapter>
+
+  <chapter xml:id="manufacturing_main">
+    <title>Startseite</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_de_images/main.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>Dies ist der Startbildschrim von OFBiz:MFG.</para>
+  </chapter>
+
+  <chapter xml:id="manufacturing_FindProductionRun">
+    <title>Produktionsverwaltung</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_de_images/FindProductionRun.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>In diesem Bildschirm können Sie suchen nach bestehenden Produktion
+    läuft. Sie können auch neue Produktion läuft durch Klicken auf "Neuer
+    Produktion ausführen'.</para>
+
+    <sect1 xml:id="manufacturing_CreateProductionRun">
+      <title>Produktionsauftrag Erstellen</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/CreateProductionRun.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditProductionRun">
+      <title>Produktionsauftrag Bearbeiten</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/EditProductionRun.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Schirm zeigt einen Fertigungslauf. Hier können Sie:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Abbrechen - den Fertigungslauf abbrechen.</para>
+        </listitem>
+
+        <listitem>
+          <para>Schnelles Beenden - den Fertigungslauf beenden.</para>
+        </listitem>
+
+        <listitem>
+          <para>Schnelles Abschließen - den Fertigungslauf als 'vollständig'
+          abschließen</para>
+        </listitem>
+
+        <listitem>
+          <para>Bestätigen - den Fertigungslauf bestätigen</para>
+        </listitem>
+
+        <listitem>
+          <para>Planen - den Fertigungslauf in den Kalender einplanen</para>
+        </listitem>
+
+        <listitem>
+          <para>Drucken - eine PDF-Datei des Fertigungslaufs erstellen</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Auftragspositionen</emphasis></para>
+
+      <para>Dieser Abschnitt zeigt eine Übersicht der verknüpften
+      Auftragselemente.</para>
+
+      <para><emphasis role="bold">Arbeitsschritte</emphasis></para>
+
+      <para>Dieser Abschnitt zeigt eine Übersicht der verknüpften
+      Arbeitsschritte.</para>
+
+      <para><emphasis role="bold">Material</emphasis></para>
+
+      <para>Dieser Abschnitt zeigt eine Übersicht des benötigten Materials
+      (Stückliste).</para>
+
+      <para><emphasis role="bold">Werkzeuge/Anlagen</emphasis></para>
+
+      <para>Dieser Abschnitt zeigt das benötigte Werkzeug und die notwendigen
+      Anlagen(zeiten).</para>
+
+      <para><emphasis role="bold">Notizen</emphasis></para>
+
+      <para>Dieser Abschnitt zeigt die zugehörigen Notizen.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunTasks">
+      <title>Arbeitsgänge</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="char"
+                       fileref="../manufacturing_de_images/ProductionRunTasks.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Schirm zeigt eine Übersicht aller zugehörigen Arbeitsgänge.
+      Hier können Sie auch neue Arbeitsgänge hinzufügen oder bestehende
+      Arbeitsgänge bearbeiten.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunComponents">
+      <title>Materialien</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/ProductionRunComponents.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Schirm zeigt eine Übersicht der Materialien (Stückliste),
+      die für den Fertigungslauf benötigt werden. Hier können Sie auch weitere
+      Materialien mit dem Fertigungslauf verknüpfen.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunFixedAssets">
+      <title>Anlagen</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/ProductionRunFixedAssets.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Schirm zeigt eine Übersicht der Ausrüstungsgegenstände und
+      Anlagen, die für den Fertigungslauf benötigt werden. Hier können Sie
+      auch weitere Komponenten mit dem Fertigungslauf verknüpfen.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunAssocs">
+      <title>Zuordnungen</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/ProductionRunAssocs.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Schirm zeigt eine Übersicht der erforderlichen und
+      abhängigen Fertigungsläufe.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunContent">
+      <title>Inhalte</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/ProductionRunContent.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Schirm zeigt einen Überblick über alle mit dem
+      Fertigungslauf verknüpften Inhalte und Dokumente.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunCosts">
+      <title>Ist-Kosten</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/ProductionRunCosts.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Schirm zeigt eine Übersicht der Kosten der Arbeitsgänge und
+      Abläufe des Fertigungslaufs.</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="manufacturing_FindRouting">
+    <title>Arbeitsplan</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_de_images/FindRouting.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>Dieser Bildschirm zeigt eine Übersicht aller verfügbaren
+    Arbeitspläne. Auch einen neuen Arbeitsplan können Sie hier mit einem Klick
+    auf 'Neuer Arbeitsplan' erstellen.</para>
+
+    <sect1 xml:id="manufacturing_EditRouting">
+      <title>Arbeitsplan Bearbeiten</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/EditRouting.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In this screen you can create new a new routing and edit an
+      existing routing.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditRoutingTaskAssoc">
+      <title>Arbeitsgang-Zuordnung Bearbeiten</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/EditRoutingTaskAssoc.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Koppeling werkplan-taak
+      wijzigen</emphasis></para>
+
+      <para>Dit scherm toont gekoppelde werkplan taken en biedt de
+      mogelijkheid werkplan taken te koppelen.</para>
+
+      <para><emphasis role="bold">Koppelen</emphasis></para>
+
+      <para>Selecteer de werkplan taak, geef het een volgnummer en zet de van-
+      en tot-datum.</para>
+
+      <para><emphasis role="bold">Overzicht</emphasis></para>
+
+      <para>Onder het formulier wordt het overzicht van gekoppelde werkplan
+      taken getoond. Klik op een werkplan taak om deze te openen. Klik op de
+      'Wis'-knop om de koppeling te verwijderen.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditRoutingProductLink">
+      <title>Arbeitsplan-Produkt-Verbindung Bearbeiten</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="char"
+                       fileref="../manufacturing_de_images/EditRoutingProductLink.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Auf diesem Schirm können Sie ein Produkt mit dem Arbeitsgang
+      verknüpfen.</para>
+
+      <para>Sie können auch eine bestehende Verknüpfung bearbeiten.</para>
+
+      <para>Ein Überblick der mit dem Arbeitsgang bereits verknüpften Produkte
+      wird im unteren Bildschirmabschnitt gezeigt.</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="manufacturing_FindRoutingTask">
+    <title>Arbeitsgang</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_de_images/FindRoutingTask.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>Dieser Schirm zeigt eine Übersicht aller Arbeitsgänge. Einen neuen
+    Arbeitsgang erstellen Sie durch einen Klick auf 'Neuer
+    Arbeitsgang'.</para>
+
+    <sect1 xml:id="manufacturing_EditRoutingTask">
+      <title>Arbeitsgang Bearbeiten</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/EditRoutingTask.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Auf diesem Schirm erstellen Sie einen neuen oder bearbeiten einen
+      bestehenden Arbeitsgang.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditRoutingTaskCosts">
+      <title>Arbeitsgang-Kosten</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/EditRoutingTaskCosts.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Auf diesem Schirm verknüpfen Sie ein Kosten-Element und die
+      Berechnungsmethod mit dem Arbeitsgang. Sie können auch ein bereits
+      verknüpftes Kosten-Element entfernen.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ListRoutingTaskProducts">
+      <title>Produkte Auflisten</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="left"
+                       fileref="../manufacturing_de_images/EditRoutingTaskProduct.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Auf diesem Schirm können Sie Produkte als Ergebnis eines
+      Arbeitsgangs verknüpfen sowie bestehende Verknüpfungen zu Produkten
+      bearbeiten</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditRoutingTaskFixedAssets">
+      <title>Anlagen</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/EditRoutingTaskFixedAssets.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Auf diesem Schirm können Sie Werkzeug und Anlagen mit dem
+      Arbeitsgang verknüpfen. Im unteren Bildschirmabschnitt werden alle
+      benötigten Werkzeuge und Anlagen gelistet.</para>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>Kalender</title>
+
+    <sect1 xml:id="manufacturing_FindCalendar">
+      <title>Kalender</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/FindCalendar.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Bildschirm zeigt eine Übersicht aller Produktions-Kalender.
+      Einen neuen Kalender erstellen Sie mit einem Klick auf 'Neuer
+      Kalender'.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ListCalendarWeek">
+      <title>Wochen</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/ListCalendarWeek.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Schirm zeigt eine Übersicht aller Kalenderwochen für die
+      Fertigung. Hier können auch neue Kalenderwochen angelegt werden.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditCalendarWeek">
+      <title> Woche Bearbeiten </title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/EditCalendarWeek.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Auf diesem Schirm können Sie neue Kalenderwochen erstellen und
+      bestehende Wochen bearbeiten.</para>
+
+      <para>Für eine neue Kalenderwoche vergeben Sie einen Namen und eine
+      Beschreibung.</para>
+
+      <para>Für jeden Tag der Woche legen Sie dann eine Anfangszeit und eine
+      Kapazität fest.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditCalendar">
+      <title>Bearbeiten</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/EditCalendar.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Auf diesem Schirm können Sie neue Kalender erstellen und
+      bestehende Kalender bearbeiten.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditCalendarExceptionDay">
+      <title>Ausnahme-Datum</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/EditCalendarExceptionDay.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Schirm zeigt eine Liste der Feier- und Pausentage im
+      Kalender.</para>
+
+      <para>Hier können auch neue Sonder-Tage zum Kalender hinzu gefügt
+      werden.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditCalendarExceptionWeek">
+      <title>Ausnahme-Woche</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/EditCalendarExceptionWeek.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Schirm zeigt die Liste der Sonderwochen im Kalender.</para>
+
+      <para>Hier können auch neue Sonder-Wochen zum Kalender hinzu gefügt
+      werden.</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="manufacturing_EditCostCalcs">
+    <title>Kosten</title>
+
+    <para><screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/EditCostCalcs.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot></para>
+
+    <para><emphasis role="bold">Kosten-Berechnungs-Elemente
+    bearbeiten</emphasis></para>
+
+    <para>Auf diesem Schirm können Sie neue Kosten-Berechnungs-Elemente
+    eingeben und bestehende Elemente bearbeiten.</para>
+
+    <para><emphasis role="bold">Kostenberechnung Bearbeiten</emphasis></para>
+
+    <para>Der erste Teil des Bildschirms betrifft die Erstellung einer neuen
+    bzw. die Bearbeitung einer bestehenden Kostenberechnung. Klicken Sie den
+    'abschicken'-Knopf um Änderungen zu speichern. Anschließend wird der
+    Bildschirm neu aufgebaut und die geänderten Details werden im unteren
+    Bildschirmabschnitt angezeigt.</para>
+
+    <para><emphasis role="bold">Übersicht der
+    Kostenberechnungen</emphasis></para>
+
+    <para>Dieser Teil des Schirms zeigt die angelegten Kostenberechnungen.
+    Klicken Sie auf die ID-Nummer einer Berechnung um sie zu bearbeiten.
+    Klicken Sie auf 'löschen' um eine Kostenberechnung zu löschen.</para>
+  </chapter>
+
+  <chapter>
+    <title>Stückliste</title>
+
+    <sect1 xml:id="manufacturing_FindBom">
+      <title> Suchoptionen</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/FindBom.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Schirm zeigt eine Übersicht der verfügbaren Stücklisten.
+      Sie können auch eine neue Stückliste erstellen, indem Sie auf den Knopf
+      'Stückliste erstellen' klicken.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_BomSimulation">
+      <title>Stücklistensimulation</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/BomSimulation.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Bildschirm zeigt die Auswirkungen einer simulierten
+      Stückliste.</para>
+
+      <para><emphasis role="bold">Simulations-Parameter</emphasis></para>
+
+      <para>Wählen Sie das Produkt aus der Stückliste, die Sie simulieren
+      wollen. Legen Sie den Stücklisten-Typ fest und setzen Sie die Menge auf
+      'simulieren'.</para>
+
+      <para>Legen Sie die Simulations-Art fest und setzen das Lager auf 'QoH'
+      (Quantity on Hand).</para>
+
+      <para>Anschließen klicken Sie den 'abschicken'-Knopf um die Simulation
+      aus zu führen. Das Ergebnis der Simulation wird dann unterhalb des
+      Formulars ausgegeben.</para>
+
+      <para><emphasis role="bold">Simulations-Übersicht</emphasis></para>
+
+      <para>Nachdem der Knopf 'abschicken' gedrückt worden ist, wird sie
+      Simulation ausgeführt und ein Überblick wird gezeigt.</para>
+
+      <para>Der erste Abschnitt zeigt die Details der Stückliste. Der zweite
+      Abschnitt zeigt die erforderlichen Mengen und Kosten der
+      Komponenten.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditProductBom">
+      <title>Stückliste Bearbeiten</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/EditProductBom.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Auf diesem Schirm können Sie eine neue Stückliste erstellen oder
+      eine bestehende Liste bearbeiten.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditProductManufacturingRules">
+      <title>Fertigungsregeln</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/EditProductManufacturingRules.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Schirm bietet einen Überblick der angelegten Regeln, die
+      für einen Fertigungsablauf zur Verfügung stehen. Eine Fertigungsregel
+      zeigt den Austausch einer Komponente an. Sie können hier auch neue
+      Fertigungsregeln anlegen.</para>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>MRP</title>
+
+    <sect1 xml:id="manufacturing_MrpExecution">
+      <title>MRP Ausführen</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/MrpExecution.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dieser Bildschirm ermöglicht Ihnen das Ausführen einer
+      Materialbedarfsplanung.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_FindMrpPlannedEvents">
+      <title>MRP Log</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_de_images/manufacturing_FindMrpPlannedEvents.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Diese Schirm zeigt eine Übersicht der abgeschlossenen MRP-Läufe.
+      Ein zweiter Abschnitt zeigt die geplanten MRP Läufe. Hier können Sie
+      auch MRP-Läufe suchen..</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="manufacturing_WorkWithShipmentPlans">
+    <title>Versand Pläne</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_de_images/WorkWithShipmentPlans.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>Dieser Bildschirm bietet eine Übersicht über alle Versand
+    Pläne.</para>
+  </chapter>
+
+  <chapter xml:id="manufacturing_ManufacturingReports">
+    <title>Berichte</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_de_images/ManufacturingReports.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>Dieser Schirm erlaubt es, Berichte für einen MRP zu
+    erstellen.</para>
+  </chapter>
+</book>
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/BomSimulation.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/BomSimulation.jpg
new file mode 100644
index 0000000..accecd3
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/BomSimulation.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/CreateProductionRun.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/CreateProductionRun.jpg
new file mode 100644
index 0000000..2f8dd31
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/CreateProductionRun.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCalendar.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCalendar.jpg
new file mode 100644
index 0000000..a23c5c5
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCalendar.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCalendarExceptionDay.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCalendarExceptionDay.jpg
new file mode 100644
index 0000000..8fea6ca
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCalendarExceptionDay.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCalendarExceptionWeek.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCalendarExceptionWeek.jpg
new file mode 100644
index 0000000..070abaa
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCalendarExceptionWeek.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCalendarWeek.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCalendarWeek.jpg
new file mode 100644
index 0000000..c47de28
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCalendarWeek.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCostCalcs.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCostCalcs.jpg
new file mode 100644
index 0000000..b3fa792
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditCostCalcs.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditProductBom.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditProductBom.jpg
new file mode 100644
index 0000000..2b9c025
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditProductBom.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditProductManufacturingRules.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditProductManufacturingRules.jpg
new file mode 100644
index 0000000..61e324b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditProductManufacturingRules.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditProductionRun.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditProductionRun.jpg
new file mode 100644
index 0000000..a13acac
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditProductionRun.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRouting.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRouting.jpg
new file mode 100644
index 0000000..c71d788
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRouting.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingProductLink.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingProductLink.jpg
new file mode 100644
index 0000000..8fac920
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingProductLink.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTask.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTask.jpg
new file mode 100644
index 0000000..7a0422c
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTask.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTaskAssoc.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTaskAssoc.jpg
new file mode 100644
index 0000000..579b584
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTaskAssoc.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTaskCosts.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTaskCosts.jpg
new file mode 100644
index 0000000..b2faf65
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTaskCosts.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTaskFixedAssets.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTaskFixedAssets.jpg
new file mode 100644
index 0000000..ae59226
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTaskFixedAssets.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTaskProduct.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTaskProduct.jpg
new file mode 100644
index 0000000..d46ff05
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/EditRoutingTaskProduct.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindBom.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindBom.jpg
new file mode 100644
index 0000000..300fb40
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindBom.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindCalendar.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindCalendar.jpg
new file mode 100644
index 0000000..a85cef2
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindCalendar.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindMrpPlannedEvents.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindMrpPlannedEvents.jpg
new file mode 100644
index 0000000..178408a
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindMrpPlannedEvents.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindProductionRun.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindProductionRun.jpg
new file mode 100644
index 0000000..6378644
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindProductionRun.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindRouting.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindRouting.jpg
new file mode 100644
index 0000000..7d5d9e7
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindRouting.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindRoutingTask.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindRoutingTask.jpg
new file mode 100644
index 0000000..e732a8b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/FindRoutingTask.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ListCalendarWeek.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ListCalendarWeek.jpg
new file mode 100644
index 0000000..91c5709
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ListCalendarWeek.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ManufacturingReports.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ManufacturingReports.jpg
new file mode 100644
index 0000000..b61dd67
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ManufacturingReports.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/MrpExecution.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/MrpExecution.jpg
new file mode 100644
index 0000000..78415d2
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/MrpExecution.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunAssocs.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunAssocs.jpg
new file mode 100644
index 0000000..e3204d1
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunAssocs.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunComponents.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunComponents.jpg
new file mode 100644
index 0000000..4a1dbbc
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunComponents.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunContent.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunContent.jpg
new file mode 100644
index 0000000..ff10ee1
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunContent.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunCosts.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunCosts.jpg
new file mode 100644
index 0000000..78d4cbd
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunCosts.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunFixedAssets.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunFixedAssets.jpg
new file mode 100644
index 0000000..a08c705
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunFixedAssets.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunTasks.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunTasks.jpg
new file mode 100644
index 0000000..6f155cd
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/ProductionRunTasks.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/WorkWithShipmentPlans.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/WorkWithShipmentPlans.jpg
new file mode 100644
index 0000000..185e74b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/WorkWithShipmentPlans.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/main.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/main.jpg
new file mode 100644
index 0000000..fa75e3e
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/main.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/manufacturing_FindMrpPlannedEvents.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/manufacturing_FindMrpPlannedEvents.jpg
new file mode 100644
index 0000000..04c7c73
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/manufacturing_FindMrpPlannedEvents.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/manufacturing_MrpExecution.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/manufacturing_MrpExecution.jpg
new file mode 100644
index 0000000..bed676a
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_de_images/manufacturing_MrpExecution.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en/manufacturing.xml b/applications/content/data/helpdata/docbookhelp/manufacturing_en/manufacturing.xml
new file mode 100644
index 0000000..6d7193a
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en/manufacturing.xml
@@ -0,0 +1,817 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+<book version="5.0" xmlns="http://docbook.org/ns/docbook"
+      xmlns:xlink="http://www.w3.org/1999/xlink"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      xmlns:svg="http://www.w3.org/2000/svg"
+      xmlns:m="http://www.w3.org/1998/Math/MathML"
+      xmlns:html="http://www.w3.org/1999/xhtml"
+      xmlns:db="http://docbook.org/ns/docbook">
+  <info>
+    <title>Manufacturing</title>
+
+    <author>
+      <personname><firstname/><surname/></personname>
+
+      <affiliation>
+        <orgname/>
+      </affiliation>
+    </author>
+
+    <pubdate/>
+  </info>
+
+  <chapter>
+    <title>Introduction</title>
+
+    <para>MFG is the application to assist in manufacturing processes.</para>
+  </chapter>
+
+  <chapter xml:id="manufacturing_main">
+    <title>Main</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_en_images/main.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>This is the start screen of the application.</para>
+  </chapter>
+
+  <chapter xml:id="manufacturing_FindProductionRun">
+    <title>Job Shop</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_en_images/FindProductionRun.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>In this screen you can search for existing production runs. You can
+    also create new production runs by clicking 'Create new production
+    run'</para>
+
+    <sect1 xml:id="manufacturing_CreateProductionRun">
+      <title>Create a Production Run</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/CreateProductionRun.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunDeclaration">
+      <title>Production Run Declaration</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/ProductionRunDeclaration.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunActualComponents">
+      <title>Actual Materials</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/ProductionRunActualComponents.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditProductionRun">
+      <title>Edit Production Run</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/EditProductionRun.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen displays the production run. Through this screen you
+      can:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Edit the base details of the production run</para>
+        </listitem>
+
+        <listitem>
+          <para>Create tasks - Click 'Taksks'</para>
+        </listitem>
+
+        <listitem>
+          <para>Add materials - Click 'Materials'</para>
+        </listitem>
+
+        <listitem>
+          <para>Associate equipment - Click 'Equipment'</para>
+        </listitem>
+
+        <listitem>
+          <para>View associated (dependent) productie runs - click
+          'Assocs'</para>
+        </listitem>
+
+        <listitem>
+          <para>View associated content - Click 'Content'</para>
+        </listitem>
+
+        <listitem>
+          <para>View actual cost of the production run - Click 'Actual
+          Costs'</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Base details production
+      run</emphasis></para>
+
+      <para>This section displays the base details of the production run.
+      Additionally you can edit the details.</para>
+
+      <para>In this section following action can be performed:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Cancel - to cancel the production run.</para>
+        </listitem>
+
+        <listitem>
+          <para>Quick close - to close the production run</para>
+        </listitem>
+
+        <listitem>
+          <para>Quick complete - to mark the production run as
+          'complete'</para>
+        </listitem>
+
+        <listitem>
+          <para>Confirm - to confirm the production run</para>
+        </listitem>
+
+        <listitem>
+          <para>Schedule -to schedule the production run in the
+          calendar</para>
+        </listitem>
+
+        <listitem>
+          <para>Print - to create a pdf file of the production run</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Order items</emphasis></para>
+
+      <para>This section displays an overview of associated order
+      items.</para>
+
+      <para><emphasis role="bold">Tasks</emphasis></para>
+
+      <para>This section displays an overview of associated tasks</para>
+
+      <para><emphasis role="bold">Materials</emphasis></para>
+
+      <para>This section displays an overview of the required materials</para>
+
+      <para><emphasis role="bold">Equipment</emphasis></para>
+
+      <para>This section displays the required equimpent to be used in the
+      productionn run.</para>
+
+      <para><emphasis role="bold">Notes</emphasis></para>
+
+      <para>This sections displays an overview of associated notes.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunTasks">
+      <title>Tasks</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="char"
+                       fileref="../manufacturing_en_images/ProductionRunTasks.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen provides an overview of all routing tasks connected to
+      the production run. From here you can also add a new or modify an
+      existing routing task to the production run.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunComponents">
+      <title>Materials</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/ProductionRunComponents.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunFixedAssets">
+      <title>Fixed Assets</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/ProductionRunFixedAssets.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen provides an overview of the equipment related to the
+      production run. From here you can also connect new equipment to the
+      production run.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunAssocs">
+      <title>Assocs</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/ProductionRunAssocs.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen provides overviews of mandatory and dependent
+      associated production runs.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunContent">
+      <title>Content</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/ProductionRunContent.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen provides an overview of all connected content to the
+      production run.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunCosts">
+      <title>Actual Costs</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/ProductionRunCosts.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen provides overviews of the costs of routing tasks of
+      the production run and the cost of routings of the production
+      run.</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="manufacturing_FindRouting">
+    <title>Routing</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_en_images/FindRouting.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>This screen displays an overview of all routings available. From
+    here you can also create a new routing by clicking 'New routing'.</para>
+
+    <sect1 xml:id="manufacturing_EditRouting">
+      <title>Edit Routing</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/EditRouting.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In this screen you can create new a new routing and edit an
+      existing routing.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditRoutingTaskAssoc">
+      <title>Edit Routing Task Assoc</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/EditRoutingTaskAssoc.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In this screen you can connect a task to a routing and modify an
+      existing routing task.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditRoutingProductLink">
+      <title>Edit Routing Production Link</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="char"
+                       fileref="../manufacturing_en_images/EditRoutingProductLink.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In this screen can you create a link to a product for the route.
+      You can also edit a existing product link. An overview of the associated
+      products is displayed in the lower section of the screen.</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="manufacturing_FindRoutingTask">
+    <title>Routing Task</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_en_images/FindRoutingTask.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>This screen displays an overview of all available routing tasks.
+    From here you can also create a new routing task.</para>
+
+    <sect1 xml:id="manufacturing_EditRoutingTask">
+      <title>Edit Routing Task</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/EditRoutingTask.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In this screen you can create a new routing task and modify an
+      existing routing task.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditRoutingTaskCosts">
+      <title>Routing Task Cost</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/EditRoutingTaskCosts.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In this screen you can associate a cost component and the related
+      calculation method to the routing task. You can also remove an existing
+      associated cost component.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ListRoutingTaskProducts">
+      <title>Deliverable Products</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/ListRoutingTaskProducts.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In this screen you can add deliverable products to the routing
+      task and modify existing deliverable products.</para>
+
+      <sect2 xml:id="manufacturing_EditRoutingTaskProduct">
+        <title>Edit Routing Task Product</title>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata align="center"
+                         fileref="../manufacturing_en_images/EditRoutingTaskProduct.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+      </sect2>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditRoutingTaskFixedAssets">
+      <title>Fixed Assets</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/EditRoutingTaskFixedAssets.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>Calendar</title>
+
+    <sect1 xml:id="manufacturing_FindCalendar">
+      <title>Calendars</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/FindCalendar.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen displays an overview of exisiting production
+      calendars. From this screen you can also create a new calendar by
+      clicking 'New Calendar'</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ListCalendarWeek">
+      <title>Weeks</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/ListCalendarWeek.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen displays an overview all calendar weeks From here you
+      can create new calendar weeks.</para>
+
+      <para>In this screen you can define a new calendar week and modify an
+      existing calendar week.</para>
+
+      <para>For a new calendar week give it a name and a description. Set for
+      each day the start time and the capacity.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditCalendarWeek">
+      <title>Edit Week</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/EditCalendarWeek.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In this screen you can define a new calendar week and modify an
+      existing calendar week.</para>
+
+      <para>For a new calendar week give it a name and a description. Set for
+      each day the start time and the capacity.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditCalendar">
+      <title>Edit</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/EditCalendar.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In this screen you can create new calendars and change existing
+      calendars.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditCalendarExceptionDay">
+      <title>Exception Day</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/EditCalendarExceptionDay.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen displays a list of the exception days of the
+      calendar.</para>
+
+      <para>In this screen you can also add a new exception day to the
+      overview.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditCalendarExceptionWeek">
+      <title>Exception Week</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/EditCalendarExceptionWeek.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen displays a list of the exception weekks of the
+      calendar.</para>
+
+      <para>In this screen you can also add a new exception week to the
+      overview.</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="manufacturing_EditCostCalcs">
+    <title>Cost</title>
+
+    <para><screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/EditCostCalcs.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot></para>
+
+    <para><emphasis role="bold">Manage Cost Component Calc
+    Entries</emphasis></para>
+
+    <para>In this screen you can create new cost calculations and modify
+    existing calculations.</para>
+
+    <para><emphasis role="bold">Modify cost calculation</emphasis></para>
+
+    <para>The first part of the screen is to create a new cost calculation, or
+    to modify an existing calculation. Click the 'Submit'-button to save the
+    changes. Subsequently, the screen will be refreshed and the the modified
+    details are shown in the lower part of the screen.</para>
+
+    <para><emphasis role="bold">Cost calculations overview</emphasis></para>
+
+    <para>This part of the screen shows the available cost calculations. Click
+    the ID of cost calculation to modify it. Click the 'Delete'-button to
+    remove a cost calculation.</para>
+  </chapter>
+
+  <chapter>
+    <title>Bill Of Materails</title>
+
+    <sect1 xml:id="manufacturing_FindBom">
+      <title>Find</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/FindBom.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen displays an overview of the BoM's available. You can
+      also click the button 'Create BOM' to create a new BoM.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_BomSimulation">
+      <title>Bom Simulation</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/BomSimulation.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen shows the effects of a simulated BoM.</para>
+
+      <para><emphasis role="bold">The parameters form</emphasis></para>
+
+      <para>Select the product of the BoM you want to simulate. Choose the
+      BoM-type and set the quantity to simulate</para>
+
+      <para>Set the simulation type and select the warehouse to get the QoH
+      (Quantity on Hand).</para>
+
+      <para>Subsequently click the 'Submit'-button to execute the simulation.
+      The output of the simulation is shown below the form.</para>
+
+      <para><emphasis role="bold">The simulation overview</emphasis></para>
+
+      <para>The simulation will be executed and an overview will be shown
+      after the button has been pressed.</para>
+
+      <para>The first section will show the details of the BoM. The second
+      part will show the required quantities and costs of the
+      components.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditProductBom">
+      <title>Edit BOM</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/EditProductBom.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In this screen you can create a new BoM or modify an existing
+      BoM.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditProductManufacturingRules">
+      <title>Manufacturing Rules</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/EditProductManufacturingRules.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen displays an overview of the manufacturing rules that
+      are applicable to produce a product. A manufacturing rule displays the
+      replacements of a component. In this screen you can also create new
+      manufacturing rules.</para>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>MRP</title>
+
+    <sect1 xml:id="manufacturing_MrpExecution">
+      <title>Run MRP</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/WorkWithShipmentPlans.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen enables you to run an MRP.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_FindMrpPlannedEvents">
+      <title>MRP Log</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_en_images/MrpExecution.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This screen displays an overview of the MRPs that ran. The second
+      overview in this screen displays the MRPs that are scheduled to run.
+      From here you can also search for MRPs .</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="manufacturing_WorkWithShipmentPlans">
+    <title>Shipment Plans</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_en_images/WorkWithShipmentPlans.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>This screen provides an overview of all shipment plans.</para>
+  </chapter>
+
+  <chapter xml:id="manufacturing_ManufacturingReports">
+    <title>Reports</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_en_images/ManufacturingReports.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>This screen enables you to get a report on an MRP.</para>
+  </chapter>
+</book>
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/BomSimulation.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/BomSimulation.jpg
new file mode 100644
index 0000000..2f40521
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/BomSimulation.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/CreateProductionRun.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/CreateProductionRun.jpg
new file mode 100644
index 0000000..45b44f8
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/CreateProductionRun.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCalendar.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCalendar.jpg
new file mode 100644
index 0000000..63a9d79
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCalendar.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCalendarExceptionDay.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCalendarExceptionDay.jpg
new file mode 100644
index 0000000..5d2fde4
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCalendarExceptionDay.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCalendarExceptionWeek.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCalendarExceptionWeek.jpg
new file mode 100644
index 0000000..18520e2
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCalendarExceptionWeek.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCalendarWeek.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCalendarWeek.jpg
new file mode 100644
index 0000000..591a575
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCalendarWeek.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCostCalcs.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCostCalcs.jpg
new file mode 100644
index 0000000..9d66fc6
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditCostCalcs.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditProductBom.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditProductBom.jpg
new file mode 100644
index 0000000..bcaa640
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditProductBom.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditProductManufacturingRules.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditProductManufacturingRules.jpg
new file mode 100644
index 0000000..dfe3330
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditProductManufacturingRules.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditProductionRun.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditProductionRun.jpg
new file mode 100644
index 0000000..14d931d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditProductionRun.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRouting.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRouting.jpg
new file mode 100644
index 0000000..23981d3
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRouting.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingProductLink.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingProductLink.jpg
new file mode 100644
index 0000000..f5a8db0
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingProductLink.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTask.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTask.jpg
new file mode 100644
index 0000000..b5dece6
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTask.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTaskAssoc.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTaskAssoc.jpg
new file mode 100644
index 0000000..2c0671d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTaskAssoc.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTaskCosts.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTaskCosts.jpg
new file mode 100644
index 0000000..b86a9f9
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTaskCosts.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTaskFixedAssets.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTaskFixedAssets.jpg
new file mode 100644
index 0000000..6f991b6
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTaskFixedAssets.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTaskProduct.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTaskProduct.jpg
new file mode 100644
index 0000000..03d3790
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/EditRoutingTaskProduct.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindBom.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindBom.jpg
new file mode 100644
index 0000000..6712233
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindBom.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindCalendar.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindCalendar.jpg
new file mode 100644
index 0000000..e7d9690
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindCalendar.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindMrpPlannedEvents.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindMrpPlannedEvents.jpg
new file mode 100644
index 0000000..ebe113d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindMrpPlannedEvents.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindProductionRun.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindProductionRun.jpg
new file mode 100644
index 0000000..d92a9c9
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindProductionRun.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindRouting.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindRouting.jpg
new file mode 100644
index 0000000..806b104
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindRouting.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindRoutingTask.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindRoutingTask.jpg
new file mode 100644
index 0000000..cbb70c0
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/FindRoutingTask.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ListCalendarWeek.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ListCalendarWeek.jpg
new file mode 100644
index 0000000..49012b7
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ListCalendarWeek.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ListRoutingTaskProducts.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ListRoutingTaskProducts.jpg
new file mode 100644
index 0000000..37bcfce
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ListRoutingTaskProducts.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ManufacturingReports.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ManufacturingReports.jpg
new file mode 100644
index 0000000..889e54d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ManufacturingReports.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/MrpExecution.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/MrpExecution.jpg
new file mode 100644
index 0000000..0083a17
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/MrpExecution.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunActualComponents.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunActualComponents.jpg
new file mode 100644
index 0000000..85b09c0
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunActualComponents.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunAssocs.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunAssocs.jpg
new file mode 100644
index 0000000..c33ddd8
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunAssocs.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunComponents.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunComponents.jpg
new file mode 100644
index 0000000..d2530a8
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunComponents.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunContent.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunContent.jpg
new file mode 100644
index 0000000..dfc7341
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunContent.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunCosts.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunCosts.jpg
new file mode 100644
index 0000000..8dbc2ed
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunCosts.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunDeclaration.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunDeclaration.jpg
new file mode 100644
index 0000000..d2a3002
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunDeclaration.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunFixedAssets.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunFixedAssets.jpg
new file mode 100644
index 0000000..fabbf42
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunFixedAssets.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunTasks.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunTasks.jpg
new file mode 100644
index 0000000..56db383
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/ProductionRunTasks.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/WorkWithShipmentPlans.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/WorkWithShipmentPlans.jpg
new file mode 100644
index 0000000..a94627a
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/WorkWithShipmentPlans.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/main.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/main.jpg
new file mode 100644
index 0000000..b78b51e
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_en_images/main.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl/manufacturing.xml b/applications/content/data/helpdata/docbookhelp/manufacturing_nl/manufacturing.xml
new file mode 100644
index 0000000..247df65
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl/manufacturing.xml
@@ -0,0 +1,930 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+<book version="5.0" xmlns="http://docbook.org/ns/docbook"
+      xmlns:xlink="http://www.w3.org/1999/xlink"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      xmlns:svg="http://www.w3.org/2000/svg"
+      xmlns:m="http://www.w3.org/1998/Math/MathML"
+      xmlns:html="http://www.w3.org/1999/xhtml"
+      xmlns:db="http://docbook.org/ns/docbook">
+  <info>
+    <title>Manufacturing</title>
+
+    <author>
+      <personname><firstname/><surname/></personname>
+
+      <affiliation>
+        <orgname/>
+      </affiliation>
+    </author>
+
+    <pubdate/>
+  </info>
+
+  <chapter>
+    <title>Introduction</title>
+
+    <para>MFG is the application to assist in manufacturing processes.</para>
+  </chapter>
+
+  <chapter xml:id="manufacturing_main">
+    <title>Hoofdmenu</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_nl_images/main.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>This is the start screen of the application.</para>
+  </chapter>
+
+  <chapter xml:id="manufacturing_FindProductionRun">
+    <title>Job Shop</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_nl_images/FindProductionRun.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>In this screen you can search for existing production runs. You can
+    also create new production runs by clicking 'Create new production
+    run'</para>
+
+    <sect1 xml:id="manufacturing_CreateProductionRun">
+      <title>Create a Production Run</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/CreateProductionRun.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunDeclaration">
+      <title>Production Run Declaration</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/ProductionRunDeclaration.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunActualComponents">
+      <title>Actual Materials</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/ProductionRunActualComponents.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditProductionRun">
+      <title>Edit Production Run</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/EditProductionRun.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Tonen production run</emphasis></para>
+
+      <para>Dit scherm toont de productierun. Via dit scherm kun je:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Basisgegevens van de productierun wijzigen</para>
+        </listitem>
+
+        <listitem>
+          <para>Taken aanmaken - klik op 'Taken'</para>
+        </listitem>
+
+        <listitem>
+          <para>Materialen toevoegen - klik op 'Materialen'</para>
+        </listitem>
+
+        <listitem>
+          <para>Productiemiddelen koppelen - klik op
+          'Productiemiddelen'</para>
+        </listitem>
+
+        <listitem>
+          <para>De gekoppelde (afhankelijke) productieruns bekijken - klik op
+          'Associaties'</para>
+        </listitem>
+
+        <listitem>
+          <para>De gekoppelde content document bekijken - klik op
+          'Content'</para>
+        </listitem>
+
+        <listitem>
+          <para>De werkelijke kosten van de productierun bekijken - klik op
+          'Kosten'</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Gegevens productierun</emphasis></para>
+
+      <para>Deze sectie toont de basisgegevens van de productie run. Tevens
+      kun je de basisgegevens bijwerken.</para>
+
+      <para>In deze sectie kun je volgende acties uitvoeren:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Annuleren - om de taak te annuleren</para>
+        </listitem>
+
+        <listitem>
+          <para>Quick close - om de taak af te sluiten</para>
+        </listitem>
+
+        <listitem>
+          <para>Quick complete - 0m de taak als uitgevoerd aan te
+          merken</para>
+        </listitem>
+
+        <listitem>
+          <para>Bevestigen - om de taak te bevestigen</para>
+        </listitem>
+
+        <listitem>
+          <para>Agenderen -om de taak te agenderen in de kalender</para>
+        </listitem>
+
+        <listitem>
+          <para>Afdrukken - om een pdf van de productierun aan te maken</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Orderregels</emphasis></para>
+
+      <para>Deze sectie toont de gekoppelde orderregels</para>
+
+      <para><emphasis role="bold">Taken</emphasis></para>
+
+      <para>Deze sectie toont de gekoppelde taken</para>
+
+      <para><emphasis role="bold">Materialen</emphasis></para>
+
+      <para>Deze sectie toont de benodigde materialen voor de
+      productierun</para>
+
+      <para><emphasis role="bold">Productiemiddelen</emphasis></para>
+
+      <para>Deze sectie toont de benodigde productiemiddelen voor de
+      productierun</para>
+
+      <para><emphasis role="bold">Notities</emphasis></para>
+
+      <para>Deze sectie toont de gekoppelde notities inzake de
+      productierun</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunTasks">
+      <title>Tasks</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/ProductionRunTasks.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Aanmaken en tonen taken
+      productierun</emphasis></para>
+
+      <para>In dit scherm kun je (werkplan) taken koppelen aan de
+      productierun. Het scherm toont tevens de gekoppelde (werkplan)
+      taken.</para>
+
+      <para><emphasis role="bold">Werkplan taak
+      toevoegen/wijzigen</emphasis></para>
+
+      <para>In deze sectie selecteer je een beschikbare werkplan taak en vult
+      de gegevens voor de productierun aan.</para>
+
+      <para><emphasis role="bold">Overzicht gekoppelde werkplan
+      taken</emphasis></para>
+
+      <para>Dit overzicht toont de gekoppelde werkplan taken.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunComponents">
+      <title>Materials</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/ProductionRunComponents.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunFixedAssets">
+      <title>Vaste Activa</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/ProductionRunFixedAssets.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dit scherm biedt de mogelijk productiemiddelen te koppelen
+      gekoppeld aan de productierun. Tevens toont het de gekoppelde
+      productiemiddelen.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunAssocs">
+      <title>Assocs</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="char"
+                       fileref="../manufacturing_nl_images/ProductionRunAssocs.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Gekoppelde (afhankelijke)
+      productieruns</emphasis></para>
+
+      <para>Dit scherm toont de verplichte en de afhankelijke
+      productieruns.</para>
+
+      <para><emphasis role="bold">Verplichte productieruns</emphasis></para>
+
+      <para>Deze sectie toont een overzicht van de verplichte
+      productieruns.</para>
+
+      <para><emphasis role="bold">Afhankelijke productieruns</emphasis></para>
+
+      <para>Deze sectie toont een overzicht van de afhankelijke
+      productieruns.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunContent">
+      <title>Content</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/ProductionRunContent.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dit scherm toont de content die gekoppeld is aan
+      productierun.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ProductionRunCosts">
+      <title>Actual Costs</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/ProductionRunCosts.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para><emphasis role="bold">Tonen kosten productierun</emphasis></para>
+
+      <para>Dit scherm toont de kosten van de productierun.</para>
+
+      <para><emphasis role="bold">Kosten route(s)</emphasis></para>
+
+      <para>Deze sectie toont de routes en de daarbijhorende kosten.</para>
+
+      <para><emphasis role="bold">Kosten productierun</emphasis></para>
+
+      <para>Deze sectie toont kosten van de productierun.</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="manufacturing_FindRouting">
+    <title>Routing</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_nl_images/FindRouting.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para><emphasis role="bold">Werkplan aanmaken</emphasis></para>
+
+    <para>Klik op de knop 'Nieuw werkplan' om een nieuw werkplan aan te
+    maken.</para>
+
+    <para><emphasis role="bold">Werkplan zoeken en vinden</emphasis></para>
+
+    <para>Vul de parameters in en klik op de 'zoek' knop. Worden resultaten
+    gevonden, dan worden deze getoond in de sectie onder het zoek deel.</para>
+
+    <sect1 xml:id="manufacturing_EditRouting">
+      <title>Edit Routing</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/EditRouting.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In dit scherm kun je een nieuwe route aanmaken en een bestaande
+      wijzigen.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditRoutingTaskAssoc">
+      <title>Edit Routing Task Assoc</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/EditRoutingTaskAssoc.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In this screen you can connect a task to a routing and modify an
+      existing routing task.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditRoutingProductLink">
+      <title>Edit Routing Production Link</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="char"
+                       fileref="../manufacturing_nl_images/EditRoutingProductLink.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In this screen can you create a link to a product for the route.
+      You can also edit a existing product link. An overview of the associated
+      products is displayed in the lower section of the screen.</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="manufacturing_FindRoutingTask">
+    <title>Routing Task</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_nl_images/FindRoutingTask.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para><emphasis role="bold">Werkplan taken aanmaken en
+    vinden</emphasis></para>
+
+    <para>Dit scherm biedt de mogelijkheid om werkplan taken aan te maken en
+    te vinden.</para>
+
+    <para><emphasis role="bold">Werkplan taak aanmaken</emphasis></para>
+
+    <para>Klik op de knop 'Nieuwe werkplan taak' om een nieuwe taak voor een
+    werkplan aan te maken.</para>
+
+    <para><emphasis role="bold">Werkplan taak zoeken en
+    vinden</emphasis></para>
+
+    <para>Vul de parameters in en klik op de 'zoek' knop. Worden resultaten
+    gevonden, dan worden deze getoond in de sectie onder het zoek deel.</para>
+
+    <sect1 xml:id="manufacturing_EditRoutingTask">
+      <title>Edit Routing Task</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/EditRoutingTask.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Geef de werkplan taak een beschrijvende naam en
+      omschrijving.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditRoutingTaskCosts">
+      <title>Routing Task Cost</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/EditRoutingTaskCosts.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Met dit scherm kunnen bestaande kosten definities voor een
+      werkplan taak aangepast worden en nieuwe gedefinieerd.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ListRoutingTaskProducts">
+      <title>Deliverable Products</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/ListRoutingTaskProducts.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In dit scherm kun je een product aan een werkplan taak koppelen en
+      een bestaande koppeling aanpassen.</para>
+
+      <sect2 xml:id="manufacturing_EditRoutingTaskProduct">
+        <title>Edit Routing Task Product</title>
+
+        <screenshot>
+          <mediaobject>
+            <imageobject>
+              <imagedata align="center"
+                         fileref="../manufacturing_nl_images/EditRoutingTaskProduct.jpg"
+                         scalefit="1" width="100%"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+      </sect2>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditRoutingTaskFixedAssets">
+      <title>Fixed Assets</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/EditRoutingTaskFixedAssets.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>Calendar</title>
+
+    <para>Dit schermt stelt je in staat nieuwe productiekalenders te
+    definieren. Tevens worden hier de beschikbare kalenders getoond.</para>
+
+    <para>Vanaf hier kun je doorklikken naar:</para>
+
+    <itemizedlist>
+      <listitem>
+        <para>kalenders</para>
+      </listitem>
+
+      <listitem>
+        <para>kalenderweken</para>
+      </listitem>
+    </itemizedlist>
+
+    <para><emphasis role="bold">Nieuwe kalender aanmaken</emphasis></para>
+
+    <para>Klik op de knop 'Nieuwe kalender' om een nieuwe kalender te
+    definieren.</para>
+
+    <para><emphasis role="bold">Overzicht kalenders</emphasis></para>
+
+    <para>Dit overzicht toont de beschikbare kalenders. Klik op de kalender ID
+    (in de eerste kolom) om een kalender aan te passen. Klik op de knop 'Wis'
+    om een kalender te verwijderen.</para>
+
+    <sect1 xml:id="manufacturing_FindCalendar">
+      <title>Calendars</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/FindCalendar.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In dit scherm kun je de omschrijving en de gekoppelde kalenderweek
+      definitie van de kalender wijzigen.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_ListCalendarWeek">
+      <title>Weeks</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/ListCalendarWeek.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dit scherm toont de kalenderweken die opgenomen kunnen worden in
+      een productiekalender. Het scherm stelt je tevens in staat een
+      kalenderweek toe te voegen en te wijzigen.</para>
+
+      <para>In this screen you can define a new calendar week and modify an
+      existing calendar week.</para>
+
+      <para>For a new calendar week give it a name and a description. Set for
+      each day the start time and the capacity.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditCalendarWeek">
+      <title>Edit Week</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/EditCalendarWeek.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In dit scherm kun je nieuwe kalenderweken aanmaken en bestaande
+      wijzigen.</para>
+
+      <para>Geef de nieuwe kalenderweek een naam en een omschrijving. Zet voor
+      iedere dag de starttijd en de capaciteit.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditCalendar">
+      <title>Wijzign</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/EditCalendar.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In dit scherm kun je de omschrijving en de gekoppelde kalenderweek
+      definitie van de kalender wijzigen.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditCalendarExceptionDay">
+      <title>Exception Day</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/EditCalendarExceptionDay.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dit scherm toont de uitzonderingsdagen van een productiekalender.
+      Het scherm stelt je tevens in staat een uitzonderingsdag toe te voegen
+      en te wijzigen.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditCalendarExceptionWeek">
+      <title>Exception Week</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/EditCalendarExceptionWeek.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dit scherm toont de uitzonderingsweken van een productiekalender.
+      Het scherm stelt je tevens in staat een uitzonderingsweek toe te voegen
+      en te wijzigen.</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="manufacturing_EditCostCalcs">
+    <title>Cost</title>
+
+    <para><screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/EditCostCalcs.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot></para>
+
+    <para><emphasis role="bold">Manage Cost Component Calc
+    Entries</emphasis></para>
+
+    <para>Dit scherm biedt de mogelijkheid om nieuwe kostencalculaties aan te
+    maken en te wijzigen.</para>
+
+    <para><emphasis role="bold">Kostencalculatie wijzigen</emphasis></para>
+
+    <para>Vul het eerste deel van het scherm in om de kostencalculatie aan te
+    maken. Klik vervolgens op 'Opslaan' om de gegevens vast te leggen. Het
+    scherm wordt ververst en de ingevoerde gegevens worden in het onderste
+    deel getoond.</para>
+
+    <para><emphasis role="bold">Overzicht kostencalculaties</emphasis></para>
+
+    <para>Dit deel van het scherm toont de beschikbare kostencalculaties. Klik
+    op de ID van de kostencalculatie (in de eerste kolom) om deze te wijzigen.
+    Klik op de knop 'Verwijderen' om een kostencalculatie te
+    verwijderen.</para>
+  </chapter>
+
+  <chapter>
+    <title>Bill Of Materails</title>
+
+    <sect1 xml:id="manufacturing_FindBom">
+      <title>Find</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/FindBom.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dit scherm biedt je de mogelijkheid om nieuwe BoM's aan te maken
+      en om ze te vinden en te bekijken. Vanaf hier kun je doorklikken
+      naar:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>kalenders</para>
+        </listitem>
+
+        <listitem>
+          <para>kalenderweken</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Nieuwe BoM aanmaken</emphasis></para>
+
+      <para>Klik op de knop 'BoM aanmaken' om een nieuwe BoM te
+      definieren.</para>
+
+      <para><emphasis role="bold">Overzicht Bom's</emphasis></para>
+
+      <para>Dit overzicht toont de beschikbare BoM's. Klik op de ID van de BoM
+      om die te bekijken.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_BomSimulation">
+      <title>Bom Simulation</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/BomSimulation.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dit scherm toont de effecten van een simulatie van een BoM.</para>
+
+      <para><emphasis role="bold">Het invulscherm</emphasis></para>
+
+      <para>Selecteer het product van de te simuleren BoM. Kies vervolgens het
+      BoM-type en zet het aantal.</para>
+
+      <para>Kies de type simulatie en selecteer het magazijn, om de vooraad
+      van de componenten op te halen.</para>
+
+      <para>Klik vervolgens op de 'Uitvoeren'-knop om de simulatie uit te
+      voeren. De gegevens van de simulatie worden onder het invulformulier
+      getoond.</para>
+
+      <para><emphasis role="bold">Het simulatie overzicht</emphasis></para>
+
+      <para>Nadat op de knop is gedrukt wordt het simulatie overzicht
+      getoond.</para>
+
+      <para>Het eerste deel toont de BoM. Het tweede deel toont de benodigde
+      hoeveelheden, en de kosten.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditProductBom">
+      <title>Edit BOM</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/EditProductBom.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>In dit scherm kun je een bestaande BoM aanpassen of een nieuwe
+      definieren.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_EditProductManufacturingRules">
+      <title>Manufacturing Rules</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/EditProductManufacturingRules.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dit scherm toont de productie regels die van toepassing zijn op
+      een te produceren product. Een productie regel geeft aan welke
+      componenten vervangen kunnen worden door een ander component. In dit
+      scherm kun je tevens nieuwe productie regels definieren.</para>
+
+      <para><emphasis role="bold">Nieuwe productie regel
+      definieren</emphasis></para>
+
+      <para>Dit formulier stelt je in staat vervangende componenten te
+      definieren voor BoM componenten. In het tweede deel van het scherm
+      worden de vervangingsregels getoond.</para>
+    </sect1>
+  </chapter>
+
+  <chapter>
+    <title>MRP</title>
+
+    <sect1 xml:id="manufacturing_MrpExecution">
+      <title>Run MRP</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/WorkWithShipmentPlans.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Met dit scherm kunnen MRP's opgestart worden.</para>
+
+      <para><emphasis role="bold">Nieuwe MRP opstarten</emphasis></para>
+
+      <para>Geef de MRP naam op, selecteer de magazijngroep en het warehouse
+      om de MRP te starten.</para>
+    </sect1>
+
+    <sect1 xml:id="manufacturing_FindMrpPlannedEvents">
+      <title>MRP Log</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../manufacturing_nl_images/MrpExecution.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>Dit scherm toont de uitgevoerde MRP's en de MRP's die nog
+      uitgevoerd moeten worden.</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="manufacturing_WorkWithShipmentPlans">
+    <title>Shipment Plans</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_nl_images/WorkWithShipmentPlans.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>Dit scherm toont de plannen voor de zendingen inzake gefabriceerde
+    goederen.</para>
+  </chapter>
+
+  <chapter xml:id="manufacturing_ManufacturingReports">
+    <title>Reports</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../manufacturing_nl_images/ManufacturingReports.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>Dit scherm toont de fabricage rapporten.</para>
+  </chapter>
+</book>
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/BomSimulation.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/BomSimulation.jpg
new file mode 100644
index 0000000..188007b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/BomSimulation.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/CreateProductionRun.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/CreateProductionRun.jpg
new file mode 100644
index 0000000..720310b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/CreateProductionRun.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCalendar.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCalendar.jpg
new file mode 100644
index 0000000..de3a5b6
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCalendar.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCalendarExceptionDay.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCalendarExceptionDay.jpg
new file mode 100644
index 0000000..6a9b496
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCalendarExceptionDay.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCalendarExceptionWeek.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCalendarExceptionWeek.jpg
new file mode 100644
index 0000000..f9dfbc6
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCalendarExceptionWeek.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCalendarWeek.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCalendarWeek.jpg
new file mode 100644
index 0000000..0cd838c
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCalendarWeek.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCostCalcs.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCostCalcs.jpg
new file mode 100644
index 0000000..e0d6c47
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditCostCalcs.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditProductBom.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditProductBom.jpg
new file mode 100644
index 0000000..4d256ec
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditProductBom.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditProductManufacturingRules.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditProductManufacturingRules.jpg
new file mode 100644
index 0000000..6a5f90c
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditProductManufacturingRules.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditProductionRun.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditProductionRun.jpg
new file mode 100644
index 0000000..2250530
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditProductionRun.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRouting.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRouting.jpg
new file mode 100644
index 0000000..3410d97
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRouting.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingProductLink.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingProductLink.jpg
new file mode 100644
index 0000000..a4ffa7c
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingProductLink.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTask.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTask.jpg
new file mode 100644
index 0000000..c7e5094
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTask.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTaskAssoc.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTaskAssoc.jpg
new file mode 100644
index 0000000..1fb4f8b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTaskAssoc.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTaskCosts.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTaskCosts.jpg
new file mode 100644
index 0000000..5715f34
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTaskCosts.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTaskFixedAssets.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTaskFixedAssets.jpg
new file mode 100644
index 0000000..3c0f7df
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTaskFixedAssets.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTaskProduct.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTaskProduct.jpg
new file mode 100644
index 0000000..7cb3e6d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/EditRoutingTaskProduct.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindBom.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindBom.jpg
new file mode 100644
index 0000000..82abc81
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindBom.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindCalendar.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindCalendar.jpg
new file mode 100644
index 0000000..2389936
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindCalendar.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindMrpPlannedEvents.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindMrpPlannedEvents.jpg
new file mode 100644
index 0000000..3f1c90b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindMrpPlannedEvents.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindProductionRun.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindProductionRun.jpg
new file mode 100644
index 0000000..1916bf5
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindProductionRun.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindRouting.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindRouting.jpg
new file mode 100644
index 0000000..2963063
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindRouting.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindRoutingTask.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindRoutingTask.jpg
new file mode 100644
index 0000000..7ee1dce
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/FindRoutingTask.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ListCalendarWeek.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ListCalendarWeek.jpg
new file mode 100644
index 0000000..8fb7080
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ListCalendarWeek.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ListRoutingTaskProducts.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ListRoutingTaskProducts.jpg
new file mode 100644
index 0000000..bf361c1
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ListRoutingTaskProducts.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ManufacturingReports.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ManufacturingReports.jpg
new file mode 100644
index 0000000..96380c2
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ManufacturingReports.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/MrpExecution.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/MrpExecution.jpg
new file mode 100644
index 0000000..a6d3452
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/MrpExecution.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunActualComponents.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunActualComponents.jpg
new file mode 100644
index 0000000..f291b69
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunActualComponents.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunAssocs.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunAssocs.jpg
new file mode 100644
index 0000000..f14ed19
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunAssocs.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunComponents.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunComponents.jpg
new file mode 100644
index 0000000..7a8edd1
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunComponents.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunContent.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunContent.jpg
new file mode 100644
index 0000000..06ee79d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunContent.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunCosts.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunCosts.jpg
new file mode 100644
index 0000000..5b92340
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunCosts.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunDeclaration.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunDeclaration.jpg
new file mode 100644
index 0000000..053dd91
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunDeclaration.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunFixedAssets.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunFixedAssets.jpg
new file mode 100644
index 0000000..5880822
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunFixedAssets.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunTasks.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunTasks.jpg
new file mode 100644
index 0000000..0601896
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/ProductionRunTasks.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/WorkWithShipmentPlans.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/WorkWithShipmentPlans.jpg
new file mode 100644
index 0000000..22c21e1
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/WorkWithShipmentPlans.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/main.jpg b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/main.jpg
new file mode 100644
index 0000000..39e875d
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/manufacturing_nl_images/main.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/projectmgr_en/projectmgr.xml b/applications/content/data/helpdata/docbookhelp/projectmgr_en/projectmgr.xml
new file mode 100644
index 0000000..2bff668
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/projectmgr_en/projectmgr.xml
@@ -0,0 +1,476 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+<book version="5.0" xmlns="http://docbook.org/ns/docbook"
+      xmlns:xlink="http://www.w3.org/1999/xlink"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      xmlns:svg="http://www.w3.org/2000/svg"
+      xmlns:m="http://www.w3.org/1998/Math/MathML"
+      xmlns:html="http://www.w3.org/1999/xhtml"
+      xmlns:db="http://docbook.org/ns/docbook">
+  <info>
+    <title>Project Manager</title>
+
+    <author>
+      <personname><firstname/><surname/></personname>
+
+      <affiliation>
+        <orgname/>
+      </affiliation>
+    </author>
+
+    <pubdate/>
+  </info>
+
+  <chapter>
+    <title>Introduction</title>
+
+    <para>The project manager allows you to manage a project which in its
+    simplest form consists out of phases and tasks. A project consists out of
+    one or more phases of which each phase can have one or more tasks. A task
+    always has a single parentPhase. Time registration is only done on a task
+    level.</para>
+
+    <para>Estimated and actual dates are only maintained at the task level.
+    For reporting they are calculated to the higher levels. Project views are
+    created to support this.</para>
+
+    <section>
+      <title>Status management</title>
+
+      <para>Status is managed at task level, Project and Phase statuses shown
+      on screen are tasks status compilation. Task statuses are :</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>PTS_CREATED, ...Created : after task creation</para>
+        </listitem>
+
+        <listitem>
+          <para>PTS_CREATED_UA, Unassigned : currently not used by an
+          automatic process</para>
+        </listitem>
+
+        <listitem>
+          <para>PTS_CREATED_AS, Assigned : after a resource is assigned</para>
+        </listitem>
+
+        <listitem>
+          <para>PTS_CREATED_IP, In Progress : after a time entry is created on
+          the task</para>
+        </listitem>
+
+        <listitem>
+          <para>PTS_COMPLETED, .Completed : Manually changed by button</para>
+        </listitem>
+
+        <listitem>
+          <para>PTS_ON_HOLD, ...On Hold :</para>
+        </listitem>
+
+        <listitem>
+          <para>PTS_CANCELLED, .Cancelled :</para>
+        </listitem>
+      </itemizedlist>
+
+      <para>Project or Phase is completed if all included tasks are completed
+      (or cancelled)</para>
+    </section>
+
+    <section>
+      <title>Resources</title>
+
+      <para>You can describe a customer (company and contact) and who provides
+      the task (named provider) in the resource portlet. To be able to
+      associate someone to a project he should have, two (or more) project
+      roleType, first PROJECT_TEAM to appear in Party drop-down, and at least
+      one of the PROJECT_TEAM sub-roles for the second drop-down. Look at
+      parameters section to have the complete project roletypes list. Go to
+      the party profile to associate a role type to a party.</para>
+    </section>
+
+    <section>
+      <title>Parameters</title>
+
+      <itemizedlist>
+        <listitem>
+          <para>RoleType with PROJECT_TEAM as parentTypeId, used in a lot of
+          screens; default proposed roleTypes are :</para>
+        </listitem>
+
+        <listitem>
+          <para>CLIENT% : used to select parties which appears in Projects
+          Parties info, client side</para>
+        </listitem>
+
+        <listitem>
+          <para>CLIENT_MANAGER : user login associated to a project with this
+          roleType view it in ListCustomerProjects</para>
+        </listitem>
+
+        <listitem>
+          <para>CLIENT_ANALYST : same as CLIENT_MANAGER for
+          ListCustomerProjects</para>
+        </listitem>
+
+        <listitem>
+          <para>CLIENT_BILLING : partyId which will be invoiced; same as
+          CLIENT_MANAGER for ListCustomerProjects; appears in Company part of
+          Project Parties info, other CLIENT% role appears in contact
+          part</para>
+        </listitem>
+
+        <listitem>
+          <para>PROVIDER% : all parties which provide the project. In Projects
+          Parties info, provider part, all roleType not equals to CLIENT% will
+          appear</para>
+        </listitem>
+
+        <listitem>
+          <para>PROVIDER_MANAGER : currently no process or specific
+          selection</para>
+        </listitem>
+
+        <listitem>
+          <para>PROVIDER_ACCOUNTING : currently no process or specific
+          selection</para>
+        </listitem>
+
+        <listitem>
+          <para>PROVIDER_ANALYST : currently no process or specific
+          selection</para>
+        </listitem>
+
+        <listitem>
+          <para>PROVIDER_FUNCTIONAL : currently no process or specific
+          selection</para>
+        </listitem>
+
+        <listitem>
+          <para>PROVIDER_VALIDATOR or PROVIDER_TESTER: used to define at
+          project level who will validate a task, used when assigning a party
+          to a task with status not equals to "PAS_COMPLETED", if the party
+          has not this role, all parties with this role at the project level
+          will be added to this task (this action is done by ECA, commented in
+          default configuration, if you want it un-comment it)</para>
+        </listitem>
+      </itemizedlist>
+    </section>
+  </chapter>
+
+  <chapter xml:id="projectmgr_main">
+    <title>Main</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../projectmgr_en_images/main.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>This is the startup screen of the project manager. It will show all
+    active projects with some statistical data.</para>
+  </chapter>
+
+  <chapter xml:id="projectmgr_MyTasks">
+    <title>My Tasks</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../projectmgr_en_images/MyTasks.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>This screen provides an overview of all tasks in the module</para>
+  </chapter>
+
+  <chapter xml:id="projectmgr_MyTimesheet">
+    <title>My Time</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../projectmgr_en_images/MyTimesheet.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>Here the user enters the hours worked on tasks.</para>
+
+    <para>It also provides an overview of all timesheets the user has filled
+    out. It also shows the status of the timesheets.</para>
+  </chapter>
+
+  <chapter xml:id="projectmgr_FindProject">
+    <title>Projects</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../projectmgr_en_images/FindProject.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>This is the startup screen of the project manager. It will show all
+    active projects with some statistical data.</para>
+
+    <sect1 xml:id="projectmgr_projectView">
+      <title>Project Summary</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../projectmgr_en_images/projectView.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>This dashboard gives a one page overview of project details,
+      resources, phases and task. It is also the starting point to navigate to
+      the various sub screens related to a project.</para>
+
+      <para><emphasis role="bold">Sub Screens</emphasis></para>
+
+      <para>Following sub screens are provided:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Gantt Chart</para>
+        </listitem>
+
+        <listitem>
+          <para>Mailing List</para>
+        </listitem>
+
+        <listitem>
+          <para>Phases</para>
+        </listitem>
+
+        <listitem>
+          <para>Tasks</para>
+        </listitem>
+
+        <listitem>
+          <para>Orders</para>
+        </listitem>
+
+        <listitem>
+          <para>Resources</para>
+        </listitem>
+
+        <listitem>
+          <para>Content</para>
+        </listitem>
+
+        <listitem>
+          <para>Notes</para>
+        </listitem>
+
+        <listitem>
+          <para>Sub Projects</para>
+        </listitem>
+
+        <listitem>
+          <para>Billing</para>
+        </listitem>
+      </itemizedlist>
+
+      <para><emphasis role="bold">Project Information</emphasis></para>
+
+      <para>This section provides detailed information about the project, e.g.
+      the type and scope, the description and planned and actual start and end
+      dates and planned and actual hours</para>
+
+      <para><emphasis role="bold">Resources</emphasis></para>
+
+      <para>This section provides detailed information about the participants
+      (organizations and persons) of the project. For the participating
+      persons this section provides information regarding the role in the
+      project and the hours registered and processed.</para>
+
+      <para><emphasis role="bold">Sub Projects</emphasis></para>
+
+      <para>This section provides detailed information about the project that
+      are registered as sub projects of the project.</para>
+
+      <para><emphasis role="bold">Phases</emphasis></para>
+
+      <para>This section provides an overview of the phases of the project,
+      incl. status, priority, start and end date and the hours planned and
+      registered.</para>
+
+      <para><emphasis role="bold">Tasks</emphasis></para>
+
+      <para>This section provides provides an overview of the tasks of the
+      project, incl. status, priority, start and end date, the first assigned
+      resource and hours planned and registered.</para>
+
+      <para><emphasis role="bold">Notes</emphasis></para>
+
+      <para>This section provides detailed information about notes registered
+      with the project.</para>
+
+      <para><emphasis role="bold">Content</emphasis></para>
+
+      <para>This section provides an overview of content (documents and other
+      files)registered with the project.</para>
+
+      <para><emphasis role="bold">Orders</emphasis></para>
+
+      <para>This section provides an overview of orders linked to the
+      project.</para>
+    </sect1>
+
+    <sect1 xml:id="projectmgr_EditProject">
+      <title>Edit Project</title>
+
+      <screenshot>
+        <mediaobject>
+          <imageobject>
+            <imagedata align="center"
+                       fileref="../projectmgr_en_images/EditProject.jpg"
+                       scalefit="1" width="100%"/>
+          </imageobject>
+        </mediaobject>
+      </screenshot>
+
+      <para>The Project Manager can edit various details regarding the
+      project.</para>
+    </sect1>
+  </chapter>
+
+  <chapter xml:id="projectmgr_FindTask">
+    <title>Tasks</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../projectmgr_en_images/FindTask.jpg"
+                     format="jpg" scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>This overview outlines all tasks the user has been assigned
+    to.</para>
+  </chapter>
+
+  <chapter xml:id="projectmgr_FindResource">
+    <title>Resources</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../projectmgr_en_images/FindResource.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>The project manager allows you to manage a project which in its
+    simplest form consists out of phases and tasks.</para>
+
+    <para>A project consists out of one or more phases of which each phase can
+    have one or more tasks. A task always has a single parentPhase. Time
+    registration is only done on a task level.</para>
+
+    <para>Estimated and actual dates are only maintained at the task level.
+    For reporting they are calculated to the higher levels. Project views are
+    created to support this.</para>
+  </chapter>
+
+  <chapter xml:id="projectmgr_FindTimeSheet">
+    <title>Timesheet</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../projectmgr_en_images/MyTimesheet.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>Here the user enters the hours worked on tasks.</para>
+
+    <para>It also provides an overview of all timesheets the user has filled
+    out. It also shows the status of the timesheets.</para>
+  </chapter>
+
+  <chapter xml:id="projectmgr_EditSkillTypes">
+    <title>Skill Type</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../projectmgr_en_images/EditSkillTypes.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>The project manager allows you to manage a project which in its
+    simplest form consists out of phases and tasks.</para>
+
+    <para>A project consists out of one or more phases of which each phase can
+    have one or more tasks. A task always has a single parentPhase. Time
+    registration is only done on a task level.</para>
+
+    <para>Estimated and actual dates are only maintained at the task level.
+    For reporting they are calculated to the higher levels. Project views are
+    created to support this.</para>
+  </chapter>
+
+  <chapter xml:id="projectmgr_RequestList">
+    <title>Request List</title>
+
+    <screenshot>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center"
+                     fileref="../projectmgr_en_images/RequestList.jpg"
+                     scalefit="1" width="100%"/>
+        </imageobject>
+      </mediaobject>
+    </screenshot>
+
+    <para>This screen provides an overview of all customer request regarding
+    projects.</para>
+  </chapter>
+</book>
diff --git a/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/EditProject.jpg b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/EditProject.jpg
new file mode 100644
index 0000000..4c0057e
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/EditProject.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/EditSkillTypes.jpg b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/EditSkillTypes.jpg
new file mode 100644
index 0000000..ecc6fda
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/EditSkillTypes.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/FindProject.jpg b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/FindProject.jpg
new file mode 100644
index 0000000..3b1b215
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/FindProject.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/FindResource.jpg b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/FindResource.jpg
new file mode 100644
index 0000000..bfebb66
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/FindResource.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/FindTask.jpg b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/FindTask.jpg
new file mode 100644
index 0000000..ee7a204
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/FindTask.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/FindTimeSheet.jpg b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/FindTimeSheet.jpg
new file mode 100644
index 0000000..b850a31
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/FindTimeSheet.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/MyTasks.jpg b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/MyTasks.jpg
new file mode 100644
index 0000000..1b0fc61
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/MyTasks.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/MyTimesheet.jpg b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/MyTimesheet.jpg
new file mode 100644
index 0000000..a217e9b
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/MyTimesheet.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/RequestList.jpg b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/RequestList.jpg
new file mode 100644
index 0000000..dedb5ba
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/RequestList.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/main.jpg b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/main.jpg
new file mode 100644
index 0000000..d400a32
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/main.jpg
Binary files differ
diff --git a/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/projectView.jpg b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/projectView.jpg
new file mode 100644
index 0000000..5bc6695
--- /dev/null
+++ b/applications/content/data/helpdata/docbookhelp/projectmgr_en_images/projectView.jpg
Binary files differ
diff --git a/applications/content/ofbiz-component.xml b/applications/content/ofbiz-component.xml
index 5d5e7a7..297f011 100644
--- a/applications/content/ofbiz-component.xml
+++ b/applications/content/ofbiz-component.xml
@@ -78,4 +78,12 @@
         mount-point="/contentimages/"
         app-bar-display="false"/>
 
+    <webapp name="ofbizhelp"
+        title="OFBiz Help"
+        server="default-server"
+        location="webapp/ofbizhelp"
+        base-permission="OFBTOOLS"
+        app-bar-display="false"
+        mount-point="/ofbizhelp"/>
+
 </ofbiz-component>
diff --git a/applications/content/template/docbook/AUTHORS b/applications/content/template/docbook/AUTHORS
new file mode 100644
index 0000000..9c3dcdc
--- /dev/null
+++ b/applications/content/template/docbook/AUTHORS
@@ -0,0 +1,4 @@
+The DocBook XSL stylesheets are maintained by Norman Walsh,
+<ndw@nwalsh.com>, and members of the DocBook Project,
+<docbook-developers@sf.net>
+
diff --git a/applications/content/template/docbook/BUGS b/applications/content/template/docbook/BUGS
new file mode 100644
index 0000000..b3c7867
--- /dev/null
+++ b/applications/content/template/docbook/BUGS
@@ -0,0 +1,21 @@
+To view a list of all open DocBook Project XSL stylesheet bugs:
+
+  http://docbook.sf.net/tracker/xsl/bugs
+
+To submit a bug report against the stylesheets:
+
+  http://docbook.sf.net/tracker/submit/bug
+
+To do a full-text search of all DocBook Project issues:
+
+  http://docbook.sf.net/tracker/search
+
+Discussion about the DocBook Project XSL stylesheets takes place
+on the docbook-apps mailing list:
+
+  http://wiki.docbook.org/topic/DocBookAppsMailingList
+
+Real-time discussion takes place on IRC:
+
+  http://wiki.docbook.org/topic/DocBookIrcChannel
+  irc://irc.freenode.net/docbook
diff --git a/applications/content/template/docbook/COPYING b/applications/content/template/docbook/COPYING
new file mode 100644
index 0000000..0a82d60c
--- /dev/null
+++ b/applications/content/template/docbook/COPYING
@@ -0,0 +1,48 @@
+Copyright
+---------
+Copyright (C) 1999-2007 Norman Walsh
+Copyright (C) 2003 Jiří Kosek
+Copyright (C) 2004-2007 Steve Ball
+Copyright (C) 2005-2008 The DocBook Project
+Copyright (C) 2011-2012 O'Reilly Media
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the ``Software''), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+Except as contained in this notice, the names of individuals
+credited with contribution to this software shall not be used in
+advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization
+from the individuals in question.
+
+Any stylesheet derived from this Software that is publically
+distributed will be identified with a different name and the
+version strings in any derived Software will be changed so that
+no possibility of confusion between the derived package and this
+Software will exist.
+
+Warranty
+--------
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT.  IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
+CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Contacting the Author
+---------------------
+The DocBook XSL stylesheets are maintained by Norman Walsh,
+<ndw@nwalsh.com>, and members of the DocBook Project,
+<docbook-developers@sf.net>
diff --git a/applications/content/template/docbook/INSTALL b/applications/content/template/docbook/INSTALL
new file mode 100644
index 0000000..72cb82b
--- /dev/null
+++ b/applications/content/template/docbook/INSTALL
@@ -0,0 +1,88 @@
+$Id: INSTALL 6145 2006-08-06 13:13:03Z xmldoc $
+
+INSTALL file for the DocBook XSL stylesheets distribution
+
+----------------------------------------------------------------------
+Case #1: Installation using a package management system
+----------------------------------------------------------------------
+If you have installed the DocBook XSL distribution using "apt-get",
+"yum", "urpmi", or some similar package-management front-end,
+then, as part of the package installation, the stylesheets have
+already been automatically installed in the appropriate location
+for your system, and your XML catalog environment has probably
+been updated to use that location.
+
+----------------------------------------------------------------------
+Case #2: Installing manually
+----------------------------------------------------------------------
+If you have downloaded a docbook-xsl zip, tar.gz, or tar.bz2
+file, use the following steps to install it.
+
+  1. Move the zip, tar.gz, or tar.bz2 file to the directory where
+     you'd like to install it (not to a temporary directory).
+
+  2. unzip or untar/uncompress the file
+
+     That will create a docbook-xsl-$VERSION directory (where
+     $VERSION is the version number for the release).
+
+The remaining steps are all OPTIONAL. They are intended to
+automatically update your user environment with XML Catalog
+information about the DocBook XSL distribution. You are NOT
+REQUIRED to complete these remaining steps. However, if you do
+not, and you want to use XML catalogs with the DocBook XSL
+stylesheets, you will need to manually update your XML catalog
+environment
+
+  3. Change to the docbook-xsl-$VERSION directory and execute the
+     install.sh script:
+
+       ./install.sh
+
+     That will launch an interactive installer, which will emit a
+     series of prompts for you to respond to.
+
+     To instead run it non-interactively without being prompted
+     for confirmation of the changes it makes, invoke it with the
+     "--batch" switch, like this:
+
+       ./install.sh --batch
+
+     After the process is complete, the installer will emit a
+     message with a command you need to run in order to source
+     your environment for use with the stylesheets.
+
+  4. To test that he installation has updated your environment
+     correctly, execute the test.sh script:
+
+       ./test.sh
+
+     That will test your XML catalog environment, using both the
+     xmlcatalog application and the Apache XML Commons Resolver.
+
+     NOTE: The test.sh file is not created until the install.sh
+           file is run for the first time.
+
+  5. (UNINSTALLING) If/when you want to uninstall the release,
+     execute the uninstall.sh script.
+
+       ./uninstall.sh
+
+     To instead run it non-interactively without being prompted
+     for confirmation of the changes it makes, invoke it with the
+     "--batch" switch, like this:
+
+       ./uninstall.sh --batch
+
+     NOTE: The uninstall.sh file is not created until the install.sh
+           file is run for the first time.
+
+
+----------------------------------------------------------------------
+Note to packagers
+----------------------------------------------------------------------
+The install.sh, .CatalogManager.properties.example, and .urilist
+files should not be packaged. They are useful only to users who
+are installing the stylesheets manually.
+
+The catalog.xml file should be packaged.
diff --git a/applications/content/template/docbook/Makefile b/applications/content/template/docbook/Makefile
new file mode 100644
index 0000000..a87d60b
--- /dev/null
+++ b/applications/content/template/docbook/Makefile
@@ -0,0 +1,89 @@
+# $Id: Makefile.tests 8481 2009-07-13 20:18:41Z abdelazer $
+#
+# This makefile does a "smoketest" of stylesheets for various
+# output formats in the DocBook XSL Stylesheets release package.
+# It doesn't actually check the output -- it's just useful for
+# confirming whether each XSLT transformation actually executes
+# successfully without any errors.
+#
+# To use it, run "make check" or just "make"
+
+XSLTPROC=xsltproc
+XSLTPROC_FLAGS=
+
+TESTFILE=tests/refentry.007.xml
+TESTFILE_NS=tests/refentry.007.ns.xml
+
+NORMAL_STYLES=fo/docbook.xsl html/docbook.xsl xhtml/docbook.xsl
+NORMAL_PROFILE_STYLES=fo/profile-docbook.xsl html/profile-docbook.xsl xhtml/profile-docbook.xsl
+CHUNK_STYLES=html/chunk.xsl html/onechunk.xsl xhtml/chunk.xsl xhtml/onechunk.xsl
+HELP_STYLES=htmlhelp/htmlhelp.xsl javahelp/javahelp.xsl eclipse/eclipse.xsl
+MULTIFILE_STYLES=$(CHUNK_STYLES) $(HELP_STYLES)
+CHUNK_PROFILE_STYLES=html/profile-chunk.xsl html/profile-onechunk.xsl xhtml/profile-chunk.xsl xhtml/profile-onechunk.xsl
+HELP_PROFILE_STYLES=htmlhelp/profile-htmlhelp.xsl eclipse/profile-eclipse.xsl javahelp/profile-javahelp.xsl
+MULTIFILE_PROFILE_STYLES=$(CHUNK_PROFILE_STYLES) $(HELP_PROFILE_STYLES)
+
+MAN_STYLE=manpages/docbook.xsl
+MAN_PROFILE_STYLE=manpages/profile-docbook.xsl
+
+TWO_PROFILE_STYLE=profiling/profile.xsl 
+
+ROUNDTRIP_STYLES=roundtrip/dbk2ooo.xsl roundtrip/dbk2pages.xsl roundtrip/dbk2wordml.xsl
+SLIDES_STYLES=slides/html/default.xsl slides/xhtml/default.xsl slides/fo/plain.xsl
+WEBSITE_STYLES=website/website.xsl
+WEBSITE_CHUNK_STYLES=website/chunk-website.xsl
+
+# chunked output gets written to TMP_OUTPUT_DIR
+TMP_OUTPUT_DIR=/tmp/smoketest-output/
+# if you don't want TMP_OUTPUT_DIR and its contents deleted, unset
+# SMOKETEST_CLEAN_TARGET; e.g. "make check SMOKETEST_CLEAN_TARGET=''"
+SMOKETEST_CLEAN_TARGET=smoketest-clean
+
+check: smoketest-make-tmp-dir smoketest-normal smoketest-normal-profile smoketest-chunk smoketest-chunk-profile smoketest-man smoketest-man-profile smoketest-two-profile $(SMOKETEST_CLEAN_TARGET)
+
+smoketest-make-tmp-dir:
+	$(RM) -r $(TMP_OUTPUT_DIR)
+	mkdir '$(TMP_OUTPUT_DIR)'
+
+smoketest-normal:
+	for stylesheet in $(NORMAL_STYLES); do \
+	echo "$(XSLT) $(TESTFILE) $$stylesheet > /dev/null"; \
+	$(XSLT) $(TESTFILE) $$stylesheet > /dev/null; \
+	echo "$(XSLT) $(TESTFILE_NS) $$stylesheet > /dev/null"; \
+	$(XSLT) $(TESTFILE_NS) $$stylesheet > /dev/null; \
+	done
+
+smoketest-normal-profile:
+	for stylesheet in $(NORMAL_PROFILE_STYLES); do \
+	echo "$(XSLT) $(TESTFILE) $$stylesheet > /dev/null"; \
+	$(XSLT) $(TESTFILE) $$stylesheet > /dev/null; \
+	echo "$(XSLT) $(TESTFILE_NS) $$stylesheet > /dev/null"; \
+	$(XSLT) $(TESTFILE_NS) $$stylesheet > /dev/null; \
+	done
+
+smoketest-chunk:
+	for stylesheet in $(MULTIFILE_STYLES) ; do \
+	$(XSLT) $(TESTFILE) $$stylesheet manifest.in.base.dir=1 base.dir=$(TMP_OUTPUT_DIR) ; \
+	$(XSLT) $(TESTFILE_NS) $$stylesheet manifest.in.base.dir=1 base.dir=$(TMP_OUTPUT_DIR) ; \
+	done;
+
+smoketest-chunk-profile:
+	for stylesheet in $(MULTIFILE_PROFILE_STYLES) ; do \
+	$(XSLT) $(TESTFILE) $$stylesheet manifest.in.base.dir=1 base.dir=$(TMP_OUTPUT_DIR) ; \
+	$(XSLT) $(TESTFILE_NS) $$stylesheet manifest.in.base.dir=1 base.dir=$(TMP_OUTPUT_DIR) ; \
+	done;
+
+smoketest-man:
+	$(XSLT) $(TESTFILE) $(MAN_STYLE) man.output.in.separate.dir=1 man.output.base.dir=$(TMP_OUTPUT_DIR) ; \
+	$(XSLT) $(TESTFILE_NS) $(MAN_STYLE) man.output.in.separate.dir=1 man.output.base.dir=$(TMP_OUTPUT_DIR) ; 
+
+smoketest-man-profile:
+	$(XSLT) $(TESTFILE) $(MAN_PROFILE_STYLE) man.output.in.separate.dir=1 man.output.base.dir=$(TMP_OUTPUT_DIR) ; \
+	$(XSLT) $(TESTFILE_NS) $(MAN_PROFILE_STYLE) man.output.in.separate.dir=1 man.output.base.dir=$(TMP_OUTPUT_DIR) ; 
+
+smoketest-two-profile:
+	$(XSLT) $(TESTFILE_NS) $(TWO_PROFILE_STYLE) > /dev/null ; 
+
+smoketest-clean:
+	$(RM) -r $(TMP_OUTPUT_DIR)
+
diff --git a/applications/content/template/docbook/NEWS b/applications/content/template/docbook/NEWS
new file mode 100644
index 0000000..7aa707e
--- /dev/null
+++ b/applications/content/template/docbook/NEWS
@@ -0,0 +1,151 @@
+Changes since the 1.77.0 release
+
+Note: This document lists changes only since the 1.77.0 release. If you instead
+want a record of the complete list of changes for the codebase over its entire
+history, you can obtain one by running the following commands:
+
+  svn checkout https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/xsl
+  svn log --xml --verbose xsl > ChangeHistory.xml
+
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+
+Table of Contents
+
+Release Notes: 1.77.1
+
+    FO
+    HTML
+    Roundtrip
+    Slides
+    Website
+    Webhelp
+    Template
+
+Release Notes: 1.77.1
+
+The following is a list of changes that have been made since the 1.77.0
+release.
+
+FO
+
+The following changes have been made to the fo code since the 1.77.0 release.
+
+  • Robert Stayton: docbook.xsl
+
+    Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+    from the filename.
+
+  • Robert Stayton: block.xsl
+
+    In sidebar, turn off space before first para if there is no title.
+
+  • Robert Stayton: math.xsl
+
+    Restored templates for mml:* elements that were accidentally deleted.
+
+HTML
+
+The following changes have been made to the html code since the 1.77.0 release.
+
+  • Robert Stayton: docbook.xsl
+
+    Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+    from the filename.
+
+  • Robert Stayton: sections.xsl
+
+    Use $div.element variable in place of div to support html5 section element.
+    output
+
+  • Robert Stayton: autoidx.xsl
+
+    Fix bug 3528673, missing "separator" param on template with
+    match="indexterm" mode="reference".  That param is passed
+    for endofrange processing to output the range separator.
+
+Roundtrip
+
+The following changes have been made to the roundtrip code since the 1.77.0
+release.
+
+  • Robert Stayton: dbk2ooo.xsl; dbk2pages.xsl; dbk2wordml.xsl; dbk2wp.xsl
+
+    Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+    from the filename.
+
+Slides
+
+The following changes have been made to the slides code since the 1.77.0
+release.
+
+  • Robert Stayton: html/slides-common.xsl
+
+    Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+    from the filename.
+
+Website
+
+The following changes have been made to the website code since the 1.77.0
+release.
+
+  • Robert Stayton: website-common.xsl
+
+    Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+    from the filename.
+
+Webhelp
+
+The following changes have been made to the webhelp code since the 1.77.0
+release.
+
+  • David Cramer: xsl/webhelp-common.xsl
+
+    Webhelp: Increase default value for chunk.section.depth
+
+  • kasunbg: docsrc/readme.xml
+
+    updated webhelp documentation
+
+  • kasunbg: template/content/search/nwSearchFnt.js; xsl/webhelp-common.xsl
+
+    Removed the script htmlFileList.js since it's content is in htmlFileInfoList.js
+
+  • Robert Stayton: xsl/webhelp-common.xsl
+
+    In the <h1> output, replace call to 'get.doc.title' with
+    mode="title.markup" because get.doc.title returns only
+    the string value of the title, losing any markup such
+    as <trademark> or <superscript>.
+
+  • kasunbg: template/common/css/positioning.css; template/content/search/
+    nwSearchFnt.js
+
+    Remove unnecessary bits of code from webhelp
+
+  • David Cramer: docsrc/readme.xml
+
+    Webhelp: Minor edits to the readme
+
+  • David Cramer: xsl/webhelp.xsl; xsl/titlepage.templates.xsl; xsl/
+    titlepage.templates.xml
+
+    Webhelp: Suppress abstracts from titlepages. These are used to create the search result summary sentence and should not be shown
+
+  • David Cramer: build.xml
+
+    Webhelp: calculate path to profile.xsl from main build.xml file
+
+Template
+
+The following changes have been made to the template code since the 1.77.0
+release.
+
+  • Robert Stayton: titlepage.xsl
+
+    Undo last change because not implemented correctly.
+
+  • Robert Stayton: titlepage.xsl
+
+    Fix xsl:element to not overwrite the incoming fo: namespace
+    if the $ns param is not set.
+
diff --git a/applications/content/template/docbook/NEWS.html b/applications/content/template/docbook/NEWS.html
new file mode 100644
index 0000000..589d7d8
--- /dev/null
+++ b/applications/content/template/docbook/NEWS.html
@@ -0,0 +1,36 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Changes since the 1.77.0 release</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"><meta name="description" content="Note: This document lists changes only since the 1.77.0 release. If you instead want a record of the complete list of changes for the codebase over its entire history, you can obtain one by running the following commands: svn checkout https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/xsl svn log --xml --verbose xsl &gt; ChangeHistory.xml"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><div><h2 class="title"><a name="id548516"></a>Changes since the 1.77.0 release</h2></div><div><div class="abstract"><p><span class="strong"><strong>Note:</strong></span> This
+            document lists changes only since the 1.77.0 release.
+            If you instead want a record of the complete list of
+            changes for the codebase over its entire history, you
+            can obtain one by running the following commands:
+            
+</p><pre class="screen">  <code class="code">svn checkout https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/xsl</code>
+  <code class="code">svn log --xml --verbose xsl &gt; ChangeHistory.xml</code></pre></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#V1.77.1">Release Notes: 1.77.1</a></span></dt><dd><dl><dt><span class="sect2"><a href="#V1.77.1_FO">FO</a></span></dt><dt><span class="sect2"><a href="#V1.77.1_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#V1.77.1_Roundtrip">Roundtrip</a></span></dt><dt><span class="sect2"><a href="#V1.77.1_Slides">Slides</a></span></dt><dt><span class="sect2"><a href="#V1.77.1_Website">Website</a></span></dt><dt><span class="sect2"><a href="#V1.77.1_Webhelp">Webhelp</a></span></dt><dt><span class="sect2"><a href="#V1.77.1_Template">Template</a></span></dt></dl></dd></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.77.1"></a>Release Notes: 1.77.1</h2></div></div></div><p>The following is a list of changes that have been made
+        since the 1.77.0 release.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.77.1_FO"></a>FO</h3></div></div></div><p>The following changes have been made to the
+            <code class="filename">fo</code> code
+            since the 1.77.0 release.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="literal">Robert Stayton: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a>.</span></pre></li><li class="listitem"><p><code class="literal">Robert Stayton: block.xsl</code></p><pre class="screen"><span class="commit-message">In <a href="http://docbook.org/tdg5/en/html/sidebar.html"><code class="sgmltag-element">sidebar</code></a>, turn off space before first <a href="http://docbook.org/tdg5/en/html/para.html"><code class="sgmltag-element">para</code></a> if there is no <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>.</span></pre></li><li class="listitem"><p><code class="literal">Robert Stayton: math.xsl</code></p><pre class="screen"><span class="commit-message">Restored templates for mml:* elements that were accidentally deleted.</span></pre></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.77.1_HTML"></a>HTML</h3></div></div></div><p>The following changes have been made to the
+            <code class="filename">html</code> code
+            since the 1.77.0 release.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="literal">Robert Stayton: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a>.</span></pre></li><li class="listitem"><p><code class="literal">Robert Stayton: sections.xsl</code></p><pre class="screen"><span class="commit-message">Use $div.element variable in place of div to support html5 <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> element.
+output</span></pre></li><li class="listitem"><p><code class="literal">Robert Stayton: autoidx.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug 3528673, missing "separator" param on template with
+match="<a href="http://docbook.org/tdg5/en/html/indexterm.html"><code class="sgmltag-element">indexterm</code></a>" mode="<a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a>".  That param is passed 
+for endofrange processing to output the range separator.</span></pre></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.77.1_Roundtrip"></a>Roundtrip</h3></div></div></div><p>The following changes have been made to the
+            <code class="filename">roundtrip</code> code
+            since the 1.77.0 release.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="literal">Robert Stayton: dbk2ooo.xsl; dbk2pages.xsl; dbk2wordml.xsl; dbk2wp.xsl</code></p><pre class="screen"><span class="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a>.</span></pre></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.77.1_Slides"></a>Slides</h3></div></div></div><p>The following changes have been made to the
+            <code class="filename">slides</code> code
+            since the 1.77.0 release.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="literal">Robert Stayton: html/slides-common.xsl</code></p><pre class="screen"><span class="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a>.</span></pre></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.77.1_Website"></a>Website</h3></div></div></div><p>The following changes have been made to the
+            <code class="filename">website</code> code
+            since the 1.77.0 release.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="literal">Robert Stayton: website-common.xsl</code></p><pre class="screen"><span class="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a>.</span></pre></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.77.1_Webhelp"></a>Webhelp</h3></div></div></div><p>The following changes have been made to the
+            <code class="filename">webhelp</code> code
+            since the 1.77.0 release.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="literal">David Cramer: xsl/webhelp-common.xsl</code></p><pre class="screen"><span class="commit-message">Webhelp: Increase default value for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/chunk.section.depth.html"><em class="parameter"><code>chunk.section.depth</code></em></a></span></pre></li><li class="listitem"><p><code class="literal">kasunbg: docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">updated webhelp documentation</span></pre></li><li class="listitem"><p><code class="literal">kasunbg: template/content/search/nwSearchFnt.js; xsl/webhelp-common.xsl</code></p><pre class="screen"><span class="commit-message">Removed the script htmlFileList.js since it's content is in htmlFileInfoList.js</span></pre></li><li class="listitem"><p><code class="literal">Robert Stayton: xsl/webhelp-common.xsl</code></p><pre class="screen"><span class="commit-message">In the &lt;h1&gt; output, replace call to 'get.doc.title' with
+mode="title.markup" because get.doc.title returns only
+the string value of the <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>, losing any markup such
+as &lt;<a href="http://docbook.org/tdg5/en/html/trademark.html"><code class="sgmltag-element">trademark</code></a>&gt; or &lt;<a href="http://docbook.org/tdg5/en/html/superscript.html"><code class="sgmltag-element">superscript</code></a>&gt;.</span></pre></li><li class="listitem"><p><code class="literal">kasunbg: template/common/css/positioning.css; template/content/search/nwSearchFnt.js</code></p><pre class="screen"><span class="commit-message">Remove unnecessary bits of code from webhelp</span></pre></li><li class="listitem"><p><code class="literal">David Cramer: docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: Minor edits to the readme</span></pre></li><li class="listitem"><p><code class="literal">David Cramer: xsl/webhelp.xsl; xsl/titlepage.templates.xsl; xsl/titlepage.templates.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: Suppress abstracts from titlepages. These are used to create the search result summary sentence and should not be shown</span></pre></li><li class="listitem"><p><code class="literal">David Cramer: build.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: calculate path to profile.xsl from main build.xml file</span></pre></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.77.1_Template"></a>Template</h3></div></div></div><p>The following changes have been made to the
+            <code class="filename">template</code> code
+            since the 1.77.0 release.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="literal">Robert Stayton: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Undo last change because not implemented correctly.</span></pre></li><li class="listitem"><p><code class="literal">Robert Stayton: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Fix xsl:element to not overwrite the incoming fo: namespace
+if the $ns param is not set.</span></pre></li></ul></div></div></div></div></body></html>
+
diff --git a/applications/content/template/docbook/NEWS.xml b/applications/content/template/docbook/NEWS.xml
new file mode 100644
index 0000000..9fec1e1
--- /dev/null
+++ b/applications/content/template/docbook/NEWS.xml
@@ -0,0 +1,156 @@
+<?xml version="1.0"?>
+
+<article>
+<info>
+<abstract>
+<para><emphasis role="strong">Note:</emphasis> This
+            document lists changes only since the 1.77.0 release.
+            If you instead want a record of the complete list of
+            changes for the codebase over its entire history, you
+            can obtain one by running the following commands:
+            
+<screen>  <code>svn checkout https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/xsl</code>
+  <code>svn log --xml --verbose xsl &gt; ChangeHistory.xml</code></screen></para>
+</abstract>
+</info><title>Changes since the 1.77.0 release</title>
+
+<sect1 xml:id="V1.77.1">
+<title>Release Notes: 1.77.1</title>
+<para>The following is a list of changes that have been made
+        since the 1.77.0 release.</para>
+
+<sect2 xml:id="V1.77.1_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: block.xsl</literal></para><screen><phrase role="commit-message">In <tag>sidebar</tag>, turn off space before first <tag>para</tag> if there is no <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: math.xsl</literal></para><screen><phrase role="commit-message">Restored templates for mml:* elements that were accidentally deleted.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.77.1-->
+
+<sect2 xml:id="V1.77.1_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: sections.xsl</literal></para><screen><phrase role="commit-message">Use $div.element variable in place of div to support html5 <tag>section</tag> element.
+output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autoidx.xsl</literal></para><screen><phrase role="commit-message">Fix bug 3528673, missing "separator" param on template with
+match="<tag>indexterm</tag>" mode="<tag>reference</tag>".  That param is passed 
+for endofrange processing to output the range separator.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.77.1-->
+
+<sect2 xml:id="V1.77.1_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: dbk2ooo.xsl; dbk2pages.xsl; dbk2wordml.xsl; dbk2wp.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Roundtrip changes for 1.77.1-->
+
+<sect2 xml:id="V1.77.1_Slides">
+<title>Slides</title>
+<para>The following changes have been made to the
+            <filename>slides</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: html/slides-common.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Slides changes for 1.77.1-->
+
+<sect2 xml:id="V1.77.1_Website">
+<title>Website</title>
+<para>The following changes have been made to the
+            <filename>website</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: website-common.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Website changes for 1.77.1-->
+
+<sect2 xml:id="V1.77.1_Webhelp">
+<title>Webhelp</title>
+<para>The following changes have been made to the
+            <filename>webhelp</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">Webhelp: Increase default value for <parameter>chunk.section.depth</parameter></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">updated webhelp documentation</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/content/search/nwSearchFnt.js; xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">Removed the script htmlFileList.js since it's content is in htmlFileInfoList.js</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">In the &lt;h1&gt; output, replace call to 'get.doc.title' with
+mode="title.markup" because get.doc.title returns only
+the string value of the <tag>title</tag>, losing any markup such
+as &lt;<tag>trademark</tag>&gt; or &lt;<tag>superscript</tag>&gt;.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css; template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">Remove unnecessary bits of code from webhelp</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Webhelp: Minor edits to the readme</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; xsl/titlepage.templates.xsl; xsl/titlepage.templates.xml</literal></para><screen><phrase role="commit-message">Webhelp: Suppress abstracts from titlepages. These are used to create the search result summary sentence and should not be shown</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: build.xml</literal></para><screen><phrase role="commit-message">Webhelp: calculate path to profile.xsl from main build.xml file</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Webhelp changes for 1.77.1-->
+
+<sect2 xml:id="V1.77.1_Template">
+<title>Template</title>
+<para>The following changes have been made to the
+            <filename>template</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: titlepage.xsl</literal></para><screen><phrase role="commit-message">Undo last change because not implemented correctly.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titlepage.xsl</literal></para><screen><phrase role="commit-message">Fix xsl:element to not overwrite the incoming fo: namespace
+if the $ns param is not set.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Template changes for 1.77.1-->
+
+</sect1>
+</article>
+
diff --git a/applications/content/template/docbook/README b/applications/content/template/docbook/README
new file mode 100644
index 0000000..539bdd6
--- /dev/null
+++ b/applications/content/template/docbook/README
@@ -0,0 +1,173 @@
+----------------------------------------------------------------------
+              README file for the DocBook XSL Stylesheets
+----------------------------------------------------------------------
+$Id: README 9397 2012-06-02 22:35:07Z bobstayton $
+
+These are XSL stylesheets for transforming DocBook XML document
+instances into various output formats.
+
+This README file provides only very minimal documentation on using
+the stylesheets. For more complete information, see Bob Stayton's
+book "DocBook XSL: The Complete Guide", available online at:
+
+  http://www.sagehill.net/docbookxsl/
+
+----------------------------------------------------------------------
+Installation
+----------------------------------------------------------------------
+See the INSTALL file for information about installing this release.
+
+----------------------------------------------------------------------
+How to use the stylesheets
+----------------------------------------------------------------------
+The base canonical URI for these stylesheets is:
+
+  http://docbook.sourceforge.net/release/xsl/current/
+
+You call any of the stylesheets in this distribution by doing one
+of the following:
+
+  - Use the base canonical URI in combination with one of the
+    pathnames below. For example, for "chunked" HTML, output:
+
+    http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl
+
+    If your system has a working XML Catalog or SGML Catalog setup
+    (most Linux systems do), then that URI will automatically be
+    resolved and replaced with a local pathname on your system.
+
+  - Use a "real" local system base path in combination with one of
+    the pathnames below. For example, for "chunked" HTML, output:
+
+    /usr/share/xml/docbook/stylesheet/nwalsh/html/chunk.xsl
+
+To transform documents created with the standard DocBook
+schema/DTD, use one of the following stylesheets:
+
+  fo/docbook.xsl              - for XSL-FO
+
+  html/docbook.xsl            - for HTML (as a single file)
+  html/chunk.xsl              - for HTML (chunked into multiple files)
+  html/onechunk.xsl           - for HTML (chunked output in single file)
+
+  xhtml/*.xsl                 - for XHTML versions of the above
+
+  xhtml-1_1/*.xsl             - for XHTML 1.1 versions of the above
+
+  xhtml5/*.xsl                 - for XHTML5 versions of the above
+
+  epub/docbook.xsl            - for .epub version 2 and earlier
+  epub3/docbook.xsl           - for .epub version 3 and later
+
+  htmlhelp/htmlhelp.xsl       - for HTML Help
+  javahelp/javahelp.xsl       - for JavaHelp
+  eclipse/eclipse.xsl         - for Eclipse Help
+
+  manpages/docbook.xsl        - for groff/nroff man pages
+
+  */profile-*                 - single-pass-profiling versions of all above
+
+  roundtrip/*.xsl             - for DocBook to WordML, etc., to DocBook
+
+  assembly/assemble.xsl       - converts an assembly into a DocBook document
+  assembly/topic-maker-chunk.xsl
+                              - converts a DocBook document into an assembly
+                                with topic files.
+
+To transform documents created with the DocBook Slides schema/DTD,
+use one of the following stylesheets:
+
+  slides/html/*.xsl           - for HTML slides of various kinds
+  slides/xhtml/*.xsl          - for XHTML slides of various kinds
+  slides/fo/plain.xsl         - for XSL-FO slides
+  slides/htmlhelp/...         - for HTML Help slides
+
+To transform documents created with the DocBook Website
+schema/DTD, use one of the following stylesheets:
+
+  website/website.xsl         - for non-tabular, non-chunked output
+  website/tabular.xsl         - for tabular, non-chunked output
+  website/chunk-*             - for chunked output
+
+To generate a titlepage customization layer from a titlepage spec:
+
+  template/titlepage.xsl
+
+For fo titlepage customizations, set the stylesheet parameter named 'ns'
+to 'http://www.w3.org/1999/XSL/Format' when using this stylesheet.
+For xhtml titlepage customizations, set the stylesheet parameter named 'ns'
+to 'http://www.w3.org/1999/xhtml' when using this stylesheet.
+
+For details about creating titlepage spec files and generating and
+using titlepage customization layers, see "DocBook XSL: The
+Complete Guide" <http://www.sagehill.net/docbookxsl/>
+
+----------------------------------------------------------------------
+Manifest
+----------------------------------------------------------------------
+AUTHORS       contact information
+BUGS          about known problems
+COPYING       copyright information
+INSTALL       installation instructions
+README        this file
+RELEASE.*     per-release cumulative summaries of user-visible changes
+TODO          about planned features not yet implemented
+VERSION       release metadata, including the current version
+              number (note that the VERSION file is an XSL stylesheet)
+NEWS          changes since the last public release (for a cumulative list of
+              changes, see the ChangeHistory.xml file)
+
+assembly/     for making and processing DocBook assemblies.
+common/       code used among several output formats (HTML, FO, manpages,...)
+docsrc/       documentation sources
+eclipse/      for producing Eclipse Help
+epub/         for producing .epub version 2.
+epub3/        for producing .epub version 3 and beyond.
+extensions/   DocBook XSL Java extensions
+fo/           for producing XSL-FO
+highlighting  files used for adding source-code syntax highlighting in output
+html/         for producing HTML
+htmlhelp/     for producing HTML Help
+images/       images used in callouts and graphical admonitions
+javahelp/     for producing Java Help
+lib/          utility stylesheets with schema-independent functions
+manpages/     for producing groff/troff man pages
+profiling/    for profiling (omitting/including conditional text)
+roundtrip/    for "round trip" conversion among DocBook and
+              various word-processor formats (WordML, etc.)
+slides/       for producing slides output (from Slides source)
+template/     templates for building stylesheet customization layers
+tools/        assorted supplementary tools
+website/      for producing website output (from Website source)
+xhtml/        for producing XHTML
+xhtml-1_1/    for producing (stricter) XHTML 1.1
+xhtml5/       for producing XHTML5
+
+----------------------------------------------------------------------
+Changes
+----------------------------------------------------------------------
+See the NEWS file for changes made since the previous release.
+
+See the RELEASE-NOTES.html or RELEASE-NOTES.txt or RELEASE-NOTES.pdf
+files for per-release cumulative summaries of significant
+user-visible changes.
+
+For online access to a hyperlinked view of all changes made over
+the entire history of the codebase, see the following:
+
+  http://docbook.svn.sourceforge.net/viewvc/docbook/trunk/xsl/?view=log
+
+WARNING: That above change history is a very long list and may
+take a long time to load/download.
+
+You can also create an XML-formatted "ChangeHistory.xml" copy of
+the complete change history for the codebase by running the
+following commands:
+
+  svn checkout https://docbook.svn.sf.net/svnroot/docbook/trunk/xsl
+  svn log --xml --verbose xsl > ChangeHistory.xml
+
+----------------------------------------------------------------------
+Copyright information
+----------------------------------------------------------------------
+See the accompanying file named COPYING.
diff --git a/applications/content/template/docbook/RELEASE-NOTES-TMP.xml b/applications/content/template/docbook/RELEASE-NOTES-TMP.xml
new file mode 100644
index 0000000..331ce97
--- /dev/null
+++ b/applications/content/template/docbook/RELEASE-NOTES-TMP.xml
@@ -0,0 +1,11505 @@
+<?xml version="1.0"?>
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:lang="en" xml:id="releasenotes" version="5.0">
+
+<info>
+  <title>Release Notes for the DocBook XSL Stylesheets</title>
+  <pubdate><?dbtimestamp format="Y-m-d"?></pubdate>
+  <releaseinfo role="cvs">$Revision$ $Date$</releaseinfo>
+  <!-- * <author><orgname>DocBook Project Development Team</orgname></author> -->
+<abstract>
+<para condition="dot-zero;dot-one-plus">This release-notes
+  document is available in the following formats:
+  <link xlink:href="http://docbook.sourceforge.net/release/xsl/current/RELEASE-NOTES.html">HTML</link>,
+  <link xlink:href="http://docbook.sourceforge.net/release/xsl/current/RELEASE-NOTES.pdf">PDF</link>,
+  <link xlink:href="http://docbook.sourceforge.net/release/xsl/current/RELEASE-NOTES.txt">plain text</link>; it provides a per-release list
+of enhancements and changes to the stylesheets&#x2019; public APIs
+(user-configurable parameters) and excludes descriptions of most
+bug fixes. For a complete list of all changes (including all bug
+fixes) that have been made since the previous release, see the
+separate <link xlink:href="NEWS">NEWS</link> (plain text) or <link xlink:href="NEWS.html">NEWS.html</link> files. Also available:
+An online <link xlink:href="http://docbook.svn.sourceforge.net/viewvc/docbook/trunk/xsl/?view=log">hyperlinked change history</link> (warning: big file) of all
+changes made over the entire history of the codebase.</para>
+<para condition="dot-zero">As with all DocBook Project <link linkend="dot0">dot-zero</link> releases, this is an
+  experimental release. It will be followed shortly by a stable
+  release.</para>
+<para condition="dot-one-plus">As with all DocBook Project &#x201C;dot
+  one plus&#x201D; releases, this release aspires to be stable (in
+  contrast to <link linkend="dot0">dot-zero</link> releases, which
+  are experimental).</para>
+<para condition="snapshot">This is a pre-release &#x201C;snapshot&#x201D; of the
+DocBook XSL Stylesheets. The change information in the first
+section of this file 
+(for &#x201C;Release Notes: 1.77.1&#x201D;) is
+auto-generated from change descriptions stored in the project
+source-code repository.</para>
+<para condition="snapshot">That means the first section contains
+descriptions both of bug fixes and of feature changes. The
+remaining sections are manually edited changelog subsets that
+exclude bug-fix descriptions &#x2013; that is, trimmed down to just those
+those descriptions that document enhancements and changes to the
+public APIs (user-configurable parameters).</para>
+</abstract>
+</info>
+
+<sect1 condition="snapshot" xml:id="current">
+  <title>Release Notes: 1.77.1</title><para>The following is a list of changes that have been made
+        since the 1.77.0 release.</para><sect2 xml:id="V1.77.1_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: block.xsl</literal></para><screen><phrase role="commit-message">In <tag>sidebar</tag>, turn off space before first <tag>para</tag> if there is no <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: math.xsl</literal></para><screen><phrase role="commit-message">Restored templates for mml:* elements that were accidentally deleted.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><sect2 xml:id="V1.77.1_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: sections.xsl</literal></para><screen><phrase role="commit-message">Use $div.element variable in place of div to support html5 <tag>section</tag> element.
+output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autoidx.xsl</literal></para><screen><phrase role="commit-message">Fix bug 3528673, missing "separator" param on template with
+match="<tag>indexterm</tag>" mode="<tag>reference</tag>".  That param is passed 
+for endofrange processing to output the range separator.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><sect2 xml:id="V1.77.1_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: dbk2ooo.xsl; dbk2pages.xsl; dbk2wordml.xsl; dbk2wp.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><sect2 xml:id="V1.77.1_Slides">
+<title>Slides</title>
+<para>The following changes have been made to the
+            <filename>slides</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: html/slides-common.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><sect2 xml:id="V1.77.1_Website">
+<title>Website</title>
+<para>The following changes have been made to the
+            <filename>website</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: website-common.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><sect2 xml:id="V1.77.1_Webhelp">
+<title>Webhelp</title>
+<para>The following changes have been made to the
+            <filename>webhelp</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">Webhelp: Increase default value for <parameter>chunk.section.depth</parameter></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">updated webhelp documentation</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/content/search/nwSearchFnt.js; xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">Removed the script htmlFileList.js since it's content is in htmlFileInfoList.js</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">In the &lt;h1&gt; output, replace call to 'get.doc.title' with
+mode="title.markup" because get.doc.title returns only
+the string value of the <tag>title</tag>, losing any markup such
+as &lt;<tag>trademark</tag>&gt; or &lt;<tag>superscript</tag>&gt;.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css; template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">Remove unnecessary bits of code from webhelp</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Webhelp: Minor edits to the readme</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; xsl/titlepage.templates.xsl; xsl/titlepage.templates.xml</literal></para><screen><phrase role="commit-message">Webhelp: Suppress abstracts from titlepages. These are used to create the search result summary sentence and should not be shown</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: build.xml</literal></para><screen><phrase role="commit-message">Webhelp: calculate path to profile.xsl from main build.xml file</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><sect2 xml:id="V1.77.1_Template">
+<title>Template</title>
+<para>The following changes have been made to the
+            <filename>template</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: titlepage.xsl</literal></para><screen><phrase role="commit-message">Undo last change because not implemented correctly.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titlepage.xsl</literal></para><screen><phrase role="commit-message">Fix xsl:element to not overwrite the incoming fo: namespace
+if the $ns param is not set.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2>
+</sect1>
+<sect1 xml:id="V1.77.0">
+<title>Release Notes: 1.77.1</title>
+<para>The following list summarizes the major changes that have been made
+        since the 1.76.1 release.  It is followed by sections detailing changes to individual files
+from the SVN checkin logs, edited to remove housekeeping changes and bug fixes.
+See the NEWS.xml file for a complete unedited  list of SVN changes.</para>
+<itemizedlist>
+  <listitem><para>Gentext</para>
+<variablelist><varlistentry>
+            <term>webhelp</term>
+            <listitem>
+                <para>Many improvements to the generated text for webhelp output.</para>
+            </listitem>
+        </varlistentry></variablelist>
+  </listitem>
+  <listitem><para>Common</para><variablelist>
+                    <varlistentry>
+                        <term>Support more media types</term>
+                        <listitem>
+                            <para>Expanded list of supported filename extensions for media to include video and audio, mostly for HTML5 and EPUB3 outputs.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Topic element</term>
+                        <listitem>
+                            <para>Add basic support for new <literal>topic</literal> element, which is available in DocBook 5.1. Generally a topic element will be used with <literal>assembly</literal> and may be transformed to some other hierarchical element during processing, but it can also be formatted as a plain topic.</para>
+                        </listitem>
+                    </varlistentry>
+                </variablelist></listitem>      
+
+                
+<listitem><para>FO</para><variablelist>
+                    <varlistentry>
+                        <term>Add para.properties attribute-set</term>
+                        <listitem>
+                            <para>Add a <literal>para.properties</literal> attribute-set that applies only to para elements. That allows still using <literal>normal.para.spacing</literal> attribute-set for many block elements for uniform spacing, but allows separate formatting of para elements.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>List of titles in article</term>
+                        <listitem>
+                            <para>Add support for List of Tables, List of Figures, etc. for articles and other component-level elements. Includes a new template for each in <filename>autotoc.xsl</filename>, new attribute-sets in <filename>titlepage.xsl</filename>, and new entries in the <filename>titlepage.templates.xml</filename> file tu support customization.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Customizing links in FO</term>
+                        <listitem>
+                            <para>Add template mode <literal>simple.xlink.properties</literal> to allow
+easy customization of formatting of links generated
+from elements  that use 
+the xlink attributes. This extends link formatting beyond that of <literal>xref</literal>, <literal>link</literal>, and <literal>olink</literal> which use <literal>xref.properties</literal> attribute-set.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Table caption</term>
+                        <listitem>
+                            <para>The caption element in an HTML table is now handled like a title in a CALS table, using the <literal>formal.object.title</literal> template with all its features, including placement.  Now <literal>caption</literal> template in <literal>mode="htmlTable"</literal> does nothing, because
+caption handled by <literal>formal.object.title</literal> template.  Also adds support for table <literal>caption</literal> element in a CALS table, placing it after the table.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Graphics attribute handling</term>
+                        <listitem>
+                            <para>Refactored the big <literal>process.image</literal> template to use individual templates such as <literal>image.width</literal> for most attributes to allow easier customization of individual properties.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Side regions</term>
+                        <listitem>
+                            <para>Add support for side page regions in addition to header and footer regions. This feature lets you add running content to the side margins, and by default the content is rotated 90 degrees.  Adds new templates named <literal>running.side.content</literal>, <literal>region.inner</literal> and <literal>region.outer</literal>; new template modes <literal><literal>region.inner.mode</literal> and <literal>region.outer.mode</literal>; </literal>new parameters named <literal>region.inner.extent</literal>, <literal>region.outer.extent</literal>, <literal>body.margin.inner</literal>, <literal>body.margin.outer</literal>,  and <literal>side.region.precedence</literal>; and new attribute-sets named <literal>inner.region.content.properties</literal>, <literal>outer.region.content.properties</literal>, <literal>region.inner.properties</literal>, and <literal>region.outer.properties</literal>.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Callout formatting</term>
+                        <listitem>
+                            <para>Add new attribute-sets for <literal>calloutlist</literal>.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Topic element</term>
+                        <listitem>
+                            <para>Add basic support for formatting a topic element, which is available in DocBook 5.1.</para>
+                        </listitem>
+                    </varlistentry>
+                </variablelist></listitem>     
+ 
+            <listitem><para>HTML</para>
+              
+                <variablelist><varlistentry>
+                        <term>HTML5</term>
+                        <listitem>
+                            <para>Add variables to the base HTML stylesheets that can be adjusted for the HTML5 stylesheets.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Insert Javascript reference</term>
+                        <listitem>
+                            <para>Add support for <literal>html.script</literal> param to insert reference to a Javascript file.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Namespace for titlepage mechanism.</term>
+                        <listitem>
+                            <para>Titlepage mechanism is now namespace aware to support XHTML.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Chunked filename prefix</term>
+                        <listitem>
+                            <para>New param named <literal>chunked.filename.prefix</literal> lets you add a filename prefix to each chunked file. This replaces the buggy practice of adding such a prefix to the <literal>base.dir</literal> param.  Now the <literal>base.dir</literal> param will always have a trailing slash added if it is not present, so you no longer have to remember to add it to the param value.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Generate id attributes</term>
+                        <listitem>
+                            <para>The stylesheet param <literal>generate.id.attributes</literal> already existed but was incompletely implemented.  Now when it is set to 1, only <literal>id</literal> attributes should be output, not <literal>&lt;a name&gt;</literal> named anchors.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Generate consistent id attributes</term>
+                        <listitem>
+                            <para>New  <literal>generate.consistent.ids</literal> parameter which allows generating a more stable id values based on XPath rather than the <literal>generate-id()</literal> function, which may not produce consistent values between runs.  Stable output ids allow you to make stable links to generated content from the outside.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Topic element</term>
+                        <listitem>
+                            <para>Add basic support for formatting a topic element, which is available in DocBook 5.1. Generally a topic element will be used with assembly and may be transformed to some other hierarchical element during processing, but it can also be formatted as a plain topic.</para>
+                        </listitem>
+                    </varlistentry>
+                </variablelist>
+            </listitem>
+            
+            <listitem><para>Webhelp</para>
+                <variablelist>
+                    <varlistentry>
+                        <term>Webhelp refactored</term>
+                        <listitem>
+                            <para>Webhelp templates refactored to better support customization.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Added documentation.</term>
+                        <listitem>
+                            <para>More and better documentation added.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Webhelp generated text</term>
+                        <listitem>
+                            <para>Many improvements to the generated text for webhelp output.</para>
+                        </listitem>
+                    </varlistentry>
+                </variablelist>
+            </listitem>
+            <listitem><para>XHTML5</para>
+                <para>New stylesheets to generate HTML5 output, in an  XML serialization. These templates are a customization layer on top of the XHTML stylesheet files.</para>
+            </listitem>
+ 
+           <listitem><para>EPUB3</para>
+                <para>New stylesheets to generate EPUB3 output. These templates are a customization layer on top of the xhtml5 stylesheet files.</para>
+            </listitem>
+
+            <listitem><para>Assembly</para>
+                <para>New <literal>assembly.xsl</literal> stylesheet to convert a DocBook 5.1 assembly into a standard DocBook 5 document.  Also includes a <literal>topic-maker-chunk.xsl</literal> stylesheet that can convert a DocBook 5 book or article document into an assembly with a collection of modular files, including converting some elements to topic files.</para>
+            </listitem>
+    </itemizedlist>
+<sect2 xml:id="rnV1.77_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the
+            <filename>gentext</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>stefanhinz: locale/de.xml</literal></para><screen><phrase role="commit-message">Translated German WebHelp strings</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: locale/zh.xml; locale/en.xml; locale/fr.xml; locale/de.xml; locale/ja.xml</literal></para><screen><phrase role="commit-message">Webhelp: Update non-en gentext strings</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/en.xml</literal></para><screen><phrase role="commit-message">Add topic to title-numbered context.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/en.xml</literal></para><screen><phrase role="commit-message">Add basic topic element templates.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: locale/el.xml</literal></para><screen><phrase role="commit-message">Updated gentext for quotation marks. Fixes bug #3512440.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: locale/cs.xml</literal></para><screen><phrase role="commit-message">Adding missing context for webhelp</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: locale/en.xml</literal></para><screen><phrase role="commit-message">Fixing syntax of webhelp gentext entries</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: locale/en.xml</literal></para><screen><phrase role="commit-message">Moving webhelp gentext strings into a context</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>tom_schr: locale/zh.xml; locale/en.xml; locale/cs.xml; locale/fr.xml; locale/de.xml; local&#x22EF;</literal></para><screen><phrase role="commit-message">Moved language specific of WebHelp to gentext/locale/ as discussed with
+Stefan following the "minimal intrusive approach". :)
+In the long run, maybe moving the text into a context, not sure.</phrase></screen>
+</listitem>
+
+<listitem>
+<para><literal>Jirka Kosek: locale/ru.xml</literal></para><screen><phrase role="commit-message">Aligned capitalization of first letters with English original</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for snapshot_-->
+
+<sect2 xml:id="VrnV1.77_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: common.xsl</literal></para><screen><phrase role="commit-message">In "select.mediaobject.index" template, add selection of <tag>videoobject</tag>
+and <tag>audioobject</tag> since now supported in HTML5.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: labels.xsl; titles.xsl; entities.ent; targets.xsl; subtitles.xsl; gentext.&#x22EF;</literal></para><screen><phrase role="commit-message">Add basic support for new &lt;topic&gt; element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: common.xsl</literal></para><screen><phrase role="commit-message">Fix handling of mediatypes for video and audio files, mostly for HTML5 and EPUB3 outputs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: olink.xsl</literal></para><screen><phrase role="commit-message">Generate error message if <tag>olink</tag> data in targetset is in a namespace.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: common.xsl</literal></para><screen><phrase role="commit-message">Add support for <parameter>generate.consistent.ids</parameter> parameter.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: subtitles.xsl</literal></para><screen><phrase role="commit-message">Add verbose param to subtitle.markup templates to allow its
+error message to be ignored. 
+Add that param to fop1.xsl <tag>application</tag> of subtitle.markup
+to avoid unnecessary error message in document information.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: labels.xsl</literal></para><screen><phrase role="commit-message">Add empty templates for <tag>glossdiv</tag>, <tag>glosslist</tag>, and <tag>glossentry</tag> in
+mode="label.markup".</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl</literal></para><screen><phrase role="commit-message">qualify <tag>caption</tag> template to <tag>mediaobject</tag>/<tag>caption</tag> so not confused with <tag>table</tag>/<tag>caption</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Add template to process <tag>table</tag>/<tag>caption</tag> element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titlepage.xsl; autotoc.xsl; component.xsl; xref.xsl; titlepage.templates.x&#x22EF;</literal></para><screen><phrase role="commit-message">Add basic support for new &lt;topic&gt; element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl</literal></para><screen><phrase role="commit-message">Fix handling of mediatypes for video and audio files, mostly for HTML5 and EPUB3 outputs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titlepage.xsl</literal></para><screen><phrase role="commit-message">Add default style att-sets for component.list.of.titles, etc.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl; component.xsl; titlepage.templates.xml</literal></para><screen><phrase role="commit-message">Add make.component.tocs to support lists of tables, etc. for
+<tag>article</tag> and other components.  Added component.list.of.tables to
+titlepage.templates.xml to format the <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add new <parameter>para.properties</parameter> attribute-set for paragraphs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl</literal></para><screen><phrase role="commit-message">Add template mode 'simple.xlink.properties' to allow
+easy customization of formatting of links generated
+from elements other than <tag>xref</tag>, <tag>link</tag>, and <tag>olink</tag> using
+the xlink attributes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add <parameter>table.caption.properties</parameter> to format <tag>table</tag> captions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Add support for <tag>caption</tag> in a CALS <tag>table</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl; math.xsl</literal></para><screen><phrase role="commit-message">Refactored the 'process.image' template to create modular
+templates for each attribute so they can be individually
+customized.  Also merged in support for embedded svg and
+mml content so they can have image attributes too.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Check in new params for FO side regions in page masters.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titlepage.xsl; titlepage.templates.xml</literal></para><screen><phrase role="commit-message">Add support for <tag>itermset</tag> in <tag>info</tag> elements, using titlepage mechanism
+to ensure entries are placed inside page-sequence.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: pagesetup.xsl</literal></para><screen><phrase role="commit-message">Add support for side body margins and side static content regions.
+Fixes bug 3389931.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent; task.xsl</literal></para><screen><phrase role="commit-message">Add attribute-set <parameter>task.properties</parameter> to <tag>task</tag> element to
+support customization.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add new attribute-sets <parameter>calloutlist.properties</parameter> and <parameter>callout.properties</parameter>
+to  better support customization of calloutlists, fixing bug 3160341.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: Makefile</literal></para><screen><phrase role="commit-message">Titlepage mechanism is now namespace aware to support XHTML. Please note that when generating titlepage template stylesheets you have to pass FO or XHTML namespace inside ns parameter. For HTML parameter should be empty.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl</literal></para><screen><phrase role="commit-message">Allow selection by role for multiple <tag>imageobject</tag> elements
+within an <tag>imageobjectco</tag>, which since Docbook 5 allows multiple imageobjects.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Added template for collabname. Fixes bug #3414436.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: verbatim.xsl</literal></para><screen><phrase role="commit-message">Support the keep-together processing-instruction on <tag>programlisting</tag>, <tag>screen</tag>, <tag>synopsis</tag>, and <tag>literallayout</tag>. Tracker id #3396906.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: pagesetup.xsl</literal></para><screen><phrase role="commit-message">Pass the pageclass, sequence, and gentext-key to the template
+named header.footer.widths to enable further customization
+based on page master.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: xref.xsl</literal></para><screen><phrase role="commit-message">hyphenation of URL content must be disabled for <tag>link</tag>, not only for ulink because od DB5</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: xref.xsl</literal></para><screen><phrase role="commit-message">URLs shouldn't be hyphenated as normal text</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: callout.xsl</literal></para><screen><phrase role="commit-message">Added support for alternative circled numbers</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: axf.xsl; fop1.xsl; xep.xsl</literal></para><screen><phrase role="commit-message">Added support for <tag>author</tag>/<tag>orgname</tag> in document metadata. Closes bug #3132862.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: component.xsl</literal></para><screen><phrase role="commit-message">Add template for <tag>article</tag>/<tag>colophon</tag> to avoid nested page-sequence.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Add support for using <tag>info</tag>/<tag>title</tag> as well as <tag>title</tag> in target element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: component.xsl</literal></para><screen><phrase role="commit-message">Enable support for html5 features, including using &lt;<tag>section</tag>&gt; instead of
+&lt;div&gt; for certain elements, and setting heading level to &lt;h1&gt; for chapters.
+These features are not changed in the base html stylesheet for backwards
+compatibility.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: docbook.css.xml</literal></para><screen><phrase role="commit-message">Add style for <tag>footnote</tag> rule.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: biblio-iso690.xsl</literal></para><screen><phrase role="commit-message">Add support for <tag>subtitle</tag> inside <tag>info</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Add call to new 'root.attributes' placeholder template to allow
+adding attributes to the &lt;html&gt; output element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl; titlepage.xsl; formal.xsl; division.xsl; toc.xsl; sections.xsl&#x22EF;</literal></para><screen><phrase role="commit-message">Finish implementation of <parameter>generate.id.attributes</parameter> for all elements
+using the template named id.attribute.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl; chunktoc.xsl; titlepage.xsl; chunk-code.xsl; changebars.xsl; &#x22EF;</literal></para><screen><phrase role="commit-message">Add basic support for new &lt;topic&gt; element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl</literal></para><screen><phrase role="commit-message">Fix handling of mediatypes for video and audio files, mostly for HTML5 and EPUB3 outputs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: callout.xsl; verbatim.xsl</literal></para><screen><phrase role="commit-message">Restore <tag>programlisting</tag> to use &lt;pre&gt; instead of &lt;div&gt; and instead
+wrap <tag>callout</tag> img elements in &lt;span&gt; to make valid HTML.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl</literal></para><screen><phrase role="commit-message">Turn off img longdesc attribute because not supported by browsers.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: footnote.xsl</literal></para><screen><phrase role="commit-message">Move square brackets and &lt;sup&gt; inside &lt;a&gt; element for <tag>footnote</tag>
+marks to fix display problems in some browsers.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add new params <parameter>html.script</parameter> and <parameter>html.script.type</parameter> to support
+Javascript references.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunk-common.xsl; chunktoc.xsl; titlepage.xsl; chunker.xsl; chunk-code.xsl&#x22EF;</literal></para><screen><phrase role="commit-message">Add support for <parameter>chunked.filename.prefix</parameter> param.
+Make sure <parameter>base.dir</parameter> value has a trailing slash in
+the chunk.base.dir internal param used by the templates.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: formal.xsl; htmltbl.xsl</literal></para><screen><phrase role="commit-message">Now handles <tag>caption</tag> in html markup <tag>table</tag> like <tag>title</tag>,
+so formal.object.title is used with all its features, including 
+formatting and placement.
+Added htmlTable.with.caption template to handle the wrapper, and
+left htmlTable template unchanged.
+Now <tag>caption</tag> template in mode="htmlTable" does nothing, because
+<tag>caption</tag> handled by formal.object.title template.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: html.xsl</literal></para><screen><phrase role="commit-message">Turn off generating the <tag>title</tag> attribute for block and hierarchical elements.
+Should only be used for inline elements, usually using the <tag>alt</tag> element.
+Also used for links to show the target <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">The spacing="compact" attribute on lists in HTML no longer outputs compact="compact"
+(or just "compact" in the case of Saxon 6), since that attribute is
+deprecated and improperly supported.  Instead, the output uses a 
+multiple class attribute such as class="<tag>orderedlist</tag> compact".
+Use CSS to style such lists without margin above.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl</literal></para><screen><phrase role="commit-message">Allow selection by role for multiple <tag>imageobject</tag> elements
+within an <tag>imageobjectco</tag>, which since Docbook 5 allows multiple imageobjects.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: pi.xsl</literal></para><screen><phrase role="commit-message">Improve doc descriptions of dbhtml <tag>filename</tag> and dir.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autoidx.xsl</literal></para><screen><phrase role="commit-message">Add <tag>setindex</tag> to context param in mode="<tag>reference</tag>" to better 
+support <tag>setindex</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl</literal></para><screen><phrase role="commit-message">Support set as child of set in set.toc template.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qandaset.xsl</literal></para><screen><phrase role="commit-message">Change <tag>question</tag> and <tag>title</tag> templates to replace hard-coded
+class="local-name()" with mode="class.attribute" to support customization
+of class values.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Norman Walsh: chunktoc.xsl</literal></para><screen><phrase role="commit-message">Separate <tag>book</tag> appendixes from <tag>article</tag> appendixes (so that they can be customized independently)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: graphics.xsl</literal></para><screen><phrase role="commit-message">Added condition to prevent "Failed to interpret image" messages (SVG is not supported 
+by the graphic size extension).</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for snapshot_-->
+
+
+<sect2 xml:id="rnV1.77_Epub">
+<title>Epub</title>
+<para>The following changes have been made to the
+            <filename>epub</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Replace $base.dir with $chunk.base.dir to ensure trailing slash in place.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Epub changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_HTMLHelp">
+<title>HTMLHelp</title>
+<para>The following changes have been made to the
+            <filename>htmlhelp</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: htmlhelp-common.xsl</literal></para><screen><phrase role="commit-message">Change $base.dir to $chunk.base.dir to ensure trailing slash in place.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTMLHelp changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Eclipse">
+<title>Eclipse</title>
+<para>The following changes have been made to the
+            <filename>eclipse</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: eclipse.xsl; eclipse3.xsl</literal></para><screen><phrase role="commit-message">Use $chunk.base.dir instead of $base.dir to ensure trailing slash is in place.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Eclipse changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_">
+<title>JavaHelp</title>
+<para>The following changes have been made to the
+            <filename>javahelp</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: javahelp.xsl</literal></para><screen><phrase role="commit-message">Change $base.dir to $chunk.base.dir to ensure trailing slash is present.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: javahelp.xsl</literal></para><screen><phrase role="commit-message">Replaced empty header.navigation and footer.navigation templates with parameter <parameter>suppress.navigation</parameter>=1,
+which simplifies customization. See bug #3310904.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of JavaHelp changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Webhelp">
+<title>Webhelp</title>
+<para>The following changes have been made to the
+            <filename>webhelp</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>David Cramer: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Webhelp: Adding print-only css rules</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/main.js</literal></para><screen><phrase role="commit-message">Webhelp: Arun's fix for bug where heading was partially hidden by header in some situations.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">Webhelp: turn off autolabeling by default</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Webhelp: Import xhtml base stylesheets</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Webhelp: <tag>Link</tag> to the DocBook <tag>reference</tag> docs from the webhelp readme</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">Webhelp: Use gentext value for noscript warning</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: Makefile</literal></para><screen><phrase role="commit-message">Webhelp: Delete tempfile after DocBook xsl build</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Webhelp: moving parameters into the standard location so they will be part of the parameter <tag>reference</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">Webhelp: moving parameters into the standard location so they will be part of the parameter <tag>reference</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/main.js</literal></para><screen><phrase role="commit-message">Webhelp: tweaking scrolldown offset for anchors</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/images; docsrc/images/sample.jpg; docsrc/readme.xml; template/content&#x22EF;</literal></para><screen><phrase role="commit-message">Webhelp: updating docs. Ant version, install instructions, handling of images.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Patch from Arun Bharadwaj to display message if JavaScript is disabled</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">Patch from Arun Bharadwaj to strip quotes from search query strings</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Add basic support for new &lt;topic&gt; element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Put back old extensibility point.
+
+Guys, please don't remove existing extensibility points like named templates, it will break existing customizations.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Moving webhelp gentext strings into a context</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>tom_schr: param.ent</literal></para><screen><phrase role="commit-message">Disabled branding and brandname entities for the time being</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>tom_schr: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Prepared WebHelp <tag>reference</tag> documentation :)
+Not clear about parameters brandname and branding: Should they renamed
+to "webhelp.branding" and "webhelp.brandname"?
+Currently, docsrc/reference.xml contains only a comment for the WebHelp
+ref doc to be non-intrusive.
+Idea is to enable it when it is ready</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>tom_schr: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Moved language specific of WebHelp to gentext/locale/ as discussed with
+Stefan following the "minimal intrusive approach". :)
+In the long run, maybe moving the text into a context, not sure.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Webhelp: Lower the minimum width of content pane</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/main.js</literal></para><screen><phrase role="commit-message">If an user moved to another page by clicking on a <tag>toc</tag> <tag>link</tag>, and then clicked on #searchDiv,
+search should be performed if the cookie textToSearch is not empty.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Webhelp: Left align titles in nav header. Display  for all but the topmost page</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/stemmers/en_stemmer.js; docsrc/xinclude-test.xml</literal></para><screen><phrase role="commit-message">Webhelp: Cleanup related to en_stemmer.js changes</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Webhelp: Don't put borders around <tag>qandaset</tag> list</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/main.js</literal></para><screen><phrase role="commit-message">Webhelp: Avoid unnecessary scroll ups when <tag>anchor</tag> is clicked on</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: build.properties</literal></para><screen><phrase role="commit-message">Webhelp: Show footer nav by default</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: build.properties; build.xml</literal></para><screen><phrase role="commit-message">Webhelp: Support setting <parameter>suppress.footer.navigation</parameter> from build.properties</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: build.properties; build.xml</literal></para><screen><phrase role="commit-message">Webhelp: Support <parameter>admon.graphics</parameter> param in build.properties</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/xinclude-test.xml; docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Webhelp: Adding xinclude example to the demo/readme doc</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Webhelp: Remove border around <tag>table</tag> used to format <tag>callout</tag> list</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; template/common/images/admon/tip.png; template/common/image&#x22EF;</literal></para><screen><phrase role="commit-message">Webhelp: Support admon graphics (still off by default)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Webhelp: Turn on navfooter and fix related css</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Webhelp: Fix error about undeclared doc.title param</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Webhelp: Adding some test search terms to the readme</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/stemmers/en_stemmer.js</literal></para><screen><phrase role="commit-message">Handle exceptional cases listed in the Porter 2 stemming algo</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/stemmers/en_stemmer.js</literal></para><screen><phrase role="commit-message">Webhelp: adding special case word 'say' to en js stemmer</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/stemmers/en_stemmer.js</literal></para><screen><phrase role="commit-message">Webhelp: Refine stemming of terms that end in (only stem if there's a consonant before the -y)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/stemmers/en_stemmer.js; template/content/search/nwSe&#x22EF;</literal></para><screen><phrase role="commit-message">Webhelp: fixed bug where words like key, day, and nucleus, were not found due to differences in the way the client stemmer and indexer stemmed words</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: build.xml</literal></para><screen><phrase role="commit-message">Webhelp: Support xinclude and two-pass profiling in build.xml</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Fix bad <tag>link</tag> to default topic.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Automatically limit the size of the search description to something 140 characters</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">removing outline in 'contents' and 'search' buttons that is visible when clicked. tabindex for <tag>SIDEBAR</tag> button.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; build.xml</literal></para><screen><phrase role="commit-message">Webhelp ant script changes - HTML transformation support for WebHelp - Uses Tagsoup for parsing the bad html.
+tagsoup-1.2.1.jar is added to trunk/xsl-webhelpindexer/lib/</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">proper support for saxon xhtml transformation.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/images/callouts/10.png; template/common/images/callouts/11.png; t&#x22EF;</literal></para><screen><phrase role="commit-message">webhelp - adding callouts</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/main.js; template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">webhelp - animations for show/hide <tag>Sidebar</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: build.properties</literal></para><screen><phrase role="commit-message">commenting about brand and brandname</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: Makefile</literal></para><screen><phrase role="commit-message">parameterized MAKE for webhelp</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css; build.properties; build.xml</literal></para><screen><phrase role="commit-message">webhelp xsl customization - logo</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">remove some JS warninings</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">Fix for missing "No results found for..." bug</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">commented about the importance of the order of css contents. Order is <tag>important</tag> between the in-html-file css and the linked css files. Some css declarations in jquery-ui-1.8.2.custom.css are over-ridden. If that's a concern, just remove the additional css contents inside these default jquery css files. I thought of keeping them intact for easier maintenance.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: xsl/webhelp.xsl; template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Minor cleanup, added extensibility hook, some styling moved into CSS for easier customization</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">Removing onclick that came from Oxygen's dita stuff</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">webhelp - documenting about features</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">webhelp search text box</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">adding header background image</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/images/header-bg.png</literal></para><screen><phrase role="commit-message">new header background image</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">fix left navigation</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">some css</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: build.xml</literal></para><screen><phrase role="commit-message">Adding html.extension property</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css; build.properties; build.xml</literal></para><screen><phrase role="commit-message">webhelp - Adding enable.stemming, toc.file build properties</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Make the webhelp banner slightly larger.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/main.js; template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Adjust colors and positioning of header and search/<tag>toc</tag> tabs</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Only put doc <tag>title</tag> in header</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/css/positioning.css; template/common/images/main_bg_fade.png</literal></para><screen><phrase role="commit-message">Adjusting default color of the header</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">adjustments to header <tag>title</tag>. Now output in Opera looks good.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/images/sidebar.png; template/content/search/punctuation.props; te&#x22EF;</literal></para><screen><phrase role="commit-message">deleting svn:executable flag from webhelp files</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css; template/common/images/sear&#x22EF;</literal></para><screen><phrase role="commit-message">Customized the left navagation headers; Contents and Search.
+Adding custom css for the current redmond ui of jquery-ui. These override jquery-ui's default css customizations. These are supposed to take precedence.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">typo fix</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/images/next-arrow.png; xsl/webhelp.xsl; template/common/main.js; &#x22EF;</literal></para><screen><phrase role="commit-message">UI improvements. 
+	Moved search highligher to search tab.
+	Added nice icons for navigation buttons etc.
+	Removed footer navigation
+	Corrected tree colorings
+	Overall, some css magic</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Added <tag>listitem</tag> thinking SyncRO Soft for their contributions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: build.xml</literal></para><screen><phrase role="commit-message">support for default classpath for Gentoo Linux</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">webhelp - some updates to the documentation about search</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Fix for issue 'Keep "search" &amp; "contents" titles always visible in webhelp - ID: 3403438'</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/images/starsSmall.png</literal></para><screen><phrase role="commit-message">Changed icons used to show search weightings from stars to boxes so they won't look like user ratings</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; template/common/main.js; template/common/images/starsSmall.&#x22EF;</literal></para><screen><phrase role="commit-message">Merged Oxygen webhelp improvements (search weightings etc) into trunk: -r9031:9039</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">webhelp documentation - search indexing, faq</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">update webhelp documentation</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Fixed bug where <parameter>webhelp.default.topic</parameter> was not being used if it was set</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">Localize string in nwSearchFnt.js file</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Added tabindex attributes to make tab order in UI more logical in webhelp.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/main.js</literal></para><screen><phrase role="commit-message">Fixed bug where anchors in pages landed beneath the banner.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Added more comments to the xsl/webhelp/xsl/webhelp.xsl file. Removed some clutter.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/main.js</literal></para><screen><phrase role="commit-message">Fixed problem reported in IE 8. See tracker id # 373747.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Addressed tracker #3247166 by removing hard-coded <tag>reference</tag> to ch01.html.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: build.xml</literal></para><screen><phrase role="commit-message">Changed the webhelp build.xml to reflect the changes to xsl-webhelpindexer.
+Added classpaths for xercesImpl and xml-api jars to the indexer. Paths added for *nix environments, need to look at how the current system behaves in Windows. Discussion: http://lists.oasis-open.org/archives/docbook-apps/201011/msg00116.html</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/images/loading.gif; template/common/jquery/treeview/jquery.treevi&#x22EF;</literal></para><screen><phrase role="commit-message">webhelp: Removing some unnecessary JQuery JS files</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/main.js</literal></para><screen><phrase role="commit-message">webhelp: Usability improvement - when click on a node in the <tag>TOC</tag> tree, the child nodes will auto populate now.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Added google translated localizations for Japanese, German, French, and Chinese. The translations might not be pretty accurate. 
+Better translations are appreciated.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml; template/content/images; template/content/images/sample.jpg</literal></para><screen><phrase role="commit-message">Added documentation for how to add images to WebHelp</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Added more customization hooks
+Search code output only when search tab is active
+Added cs localization</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Added parameter <parameter>webhelp.common.dir</parameter> for specifying location of common files (JS+CSS)
+Added hooks for adding additional user defined tabs</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Webhelp changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>David Cramer: webhelp.indexer.language.xml</literal></para><screen><phrase role="commit-message">Webhelp: Fixing list of supported languages</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: webhelp.indexer.language.xml</literal></para><screen><phrase role="commit-message">Webhelp: Correct language code in docs for Chinese</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: admon.graphics.extension.xml</literal></para><screen><phrase role="commit-message">Added list of graphics formats.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: passivetex.extensions.xml</literal></para><screen><phrase role="commit-message">Updated <tag>link</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>tom_schr: webhelp.indexer.language.xml; webhelp.default.topic.xml; webhelp.tree.cookie.id.&#x22EF;</literal></para><screen><phrase role="commit-message">Prepared WebHelp <tag>reference</tag> documentation :)
+Not clear about parameters brandname and branding: Should they renamed
+to "webhelp.branding" and "webhelp.brandname"?
+Currently, docsrc/reference.xml contains only a comment for the WebHelp
+ref doc to be non-intrusive.
+Idea is to enable it when it is ready</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossary.collection.xml</literal></para><screen><phrase role="commit-message">Add <tag>info</tag> about relative paths.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: para.properties.xml</literal></para><screen><phrase role="commit-message">Special attribute-set for <tag>para</tag> only.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.caption.properties.xml</literal></para><screen><phrase role="commit-message">To format <tag>table</tag> captions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: html.script.type.xml; html.script.xml</literal></para><screen><phrase role="commit-message">Add support for specifying javascript references like css references.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: body.margin.outer.xml; region.outer.extent.xml; body.margin.inner.xml; reg&#x22EF;</literal></para><screen><phrase role="commit-message">Add support for side regions in FO output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunked.filename.prefix.xml</literal></para><screen><phrase role="commit-message">New param <parameter>chunked.filename.prefix</parameter> to separate any such prefix from
+the <parameter>base.dir</parameter> param, which helps fix bug 3087359.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: generate.consistent.ids.xml</literal></para><screen><phrase role="commit-message">New param to support replacing generate-id() with xsl:number
+for more consistent id values.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: task.properties.xml</literal></para><screen><phrase role="commit-message">Allow <tag>task</tag> to be customized more easily.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: calloutlist.properties.xml; callout.properties.xml</literal></para><screen><phrase role="commit-message">Support better customization of <tag>callout</tag> lists.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: callout.unicode.start.character.xml</literal></para><screen><phrase role="commit-message">Added support for alternative circled numbers</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: example.properties.xml</literal></para><screen><phrase role="commit-message">Made <parameter>example.properties</parameter> use keep-together='auto' like table.properies to avoid problems where example/<tag>programlisting</tag> takes more than one page</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: graphicsize.extension.xml</literal></para><screen><phrase role="commit-message">Added <tag>info</tag> about supported image formats.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Highlighting">
+<title>Highlighting</title>
+<para>The following changes have been made to the
+            <filename>highlighting</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: csharp-hl.xml</literal></para><screen><phrase role="commit-message">Added LINQ keywords</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: delphi-hl.xml</literal></para><screen><phrase role="commit-message">Additional keywords from Yuri Zhilin</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Highlighting changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Profiling">
+<title>Profiling</title>
+<para>The following changes have been made to the
+            <filename>profiling</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>David Cramer: profile-mode.xsl</literal></para><screen><phrase role="commit-message">When profile.* params only consist of space characters, then ignore them.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Profiling changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Lib">
+<title>Lib</title>
+<para>The following changes have been made to the
+            <filename>lib</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: lib.xweb</literal></para><screen><phrase role="commit-message">Added two utility templates to make lib.xsl work
+without <tag>reference</tag> to other modules since it is used
+that way with profiling/xsl2profile.xsl.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lib.xweb</literal></para><screen><phrase role="commit-message">Fix trim.common.uri.paths to first resolve any ../ in
+the paths.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Lib changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Template">
+<title>Template</title>
+<para>The following changes have been made to the
+            <filename>template</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: titlepage.xsl</literal></para><screen><phrase role="commit-message">Titlepage mechanism is now namespace aware to support XHTML. Please note that when generating titlepage template stylesheets you have to pass FO or XHTML namespace inside ns parameter. For HTML parameter should be empty.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Template changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Extensions">
+<title>Extensions</title>
+<para>The following changes have been made to the
+            <filename>extensions</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>kasunbg: Makefile</literal></para><screen><phrase role="commit-message">webhelp - Adding enable.stemming, toc.file build properties</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: Makefile</literal></para><screen><phrase role="commit-message">Attempt to convince Makefile that webhelpindexer is dirty</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Extensions changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_XSL-Saxon">
+<title>XSL-Saxon</title>
+<para>The following changes have been made to the
+            <filename>xsl-saxon</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: src/com/nwalsh/saxon/Verbatim.java; src/com/nwalsh/saxon/FormatGraphicCal&#x22EF;</literal></para><screen><phrase role="commit-message">Added fixes to ensure that generated XHTML markup for callouts is in the proper namespace.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Saxon changes for snapshot_-->
+
+</sect1>
+<sect1 xml:id="V1.77.1">
+<title>Release Notes: 1.77.1</title>
+<para>The following is a list of changes that have been made
+        since the 1.77.0 release.</para>
+
+<sect2 xml:id="Vsnapshot_9396_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: block.xsl</literal></para><screen><phrase role="commit-message">In <tag>sidebar</tag>, turn off space before first <tag>para</tag> if there is no <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: math.xsl</literal></para><screen><phrase role="commit-message">Restored templates for mml:* elements that were accidentally deleted.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for snapshot_9396-->
+
+<sect2 xml:id="Vsnapshot_9396_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: sections.xsl</literal></para><screen><phrase role="commit-message">Use $div.element variable in place of div to support html5 <tag>section</tag> element.
+output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autoidx.xsl</literal></para><screen><phrase role="commit-message">Fix bug 3528673, missing "separator" param on template with
+match="<tag>indexterm</tag>" mode="<tag>reference</tag>".  That param is passed 
+for endofrange processing to output the range separator.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for snapshot_9396-->
+
+<sect2 xml:id="Vsnapshot_9396_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: dbk2ooo.xsl; dbk2pages.xsl; dbk2wordml.xsl; dbk2wp.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Roundtrip changes for snapshot_9396-->
+
+<sect2 xml:id="Vsnapshot_9396_Slides">
+<title>Slides</title>
+<para>The following changes have been made to the
+            <filename>slides</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: html/slides-common.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Slides changes for snapshot_9396-->
+
+<sect2 xml:id="Vsnapshot_9396_Website">
+<title>Website</title>
+<para>The following changes have been made to the
+            <filename>website</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: website-common.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Website changes for snapshot_9396-->
+
+<sect2 xml:id="Vsnapshot_9396_Webhelp">
+<title>Webhelp</title>
+<para>The following changes have been made to the
+            <filename>webhelp</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">updated webhelp documentation</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/content/search/nwSearchFnt.js; xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">Removed the script htmlFileList.js since it's content is in htmlFileInfoList.js</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">In the &lt;h1&gt; output, replace call to 'get.doc.title' with
+mode="title.markup" because get.doc.title returns only
+the string value of the <tag>title</tag>, losing any markup such
+as &lt;<tag>trademark</tag>&gt; or &lt;<tag>superscript</tag>&gt;.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css; template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">Remove unnecessary bits of code from webhelp</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Webhelp: Minor edits to the readme</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; xsl/titlepage.templates.xsl; xsl/titlepage.templates.xml</literal></para><screen><phrase role="commit-message">Webhelp: Suppress abstracts from titlepages. These are used to create the search result summary sentence and should not be shown</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: build.xml</literal></para><screen><phrase role="commit-message">Webhelp: calculate path to profile.xsl from main build.xml file</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Webhelp changes for snapshot_9396-->
+
+</sect1>
+<sect1 xml:id="V1.76.1">
+<title>Release Notes: 1.76.1</title>
+<para>The following is a list of changes that have been made
+        since the 1.76.0 release.</para>
+
+<sect2 xml:id="rnV1.76.1_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.76.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl; xref.xsl; fop1.xsl</literal></para><screen><phrase role="commit-message">Apply patch to support named destination in fop1.xsl, per Sourceforge
+bug report #3029845.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.76.1-->
+
+<sect2 xml:id="rnV1.76.1_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the <filename>html</filename> code since the 1.76.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: highlight.xsl</literal></para><screen><phrase role="commit-message">Implementing handling for &lt;b&gt; and &lt;i&gt;: transform to &lt;strong&gt; and &lt;em&gt; for XHTML outputs and do not use in the highliting output (per Mauritz Jeanson)</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.76.1-->
+
+<sect2 xml:id="rnV1.76.1_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.76.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: draft.mode.xml</literal></para><screen><phrase role="commit-message">Change default for <parameter>draft.mode</parameter> to 'no'.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.76.1-->
+
+
+</sect1>
+  <sect1 xml:id="V1.76.0">
+    <title>Release Notes: 1.76.0</title>
+<para>This release includes important bug fixes and adds the following
+significant feature changes:</para>
+<variablelist>
+<varlistentry>
+<term>Webhelp</term>
+<listitem><para>A new browser-based, cross-platform help format with full-text search and other features typically found in help systems. See <filename>webhelp/docs/content/ch01.html</filename> for more information and a demo. </para></listitem>
+
+</varlistentry>
+
+<varlistentry>
+<term>Gentext</term>
+<listitem><para>Many updates and additions to translation/locales thanks to Red Hat, the Fedora Project, and other contributors.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>Common</term>
+<listitem><para>Faster localization support, as language files are loaded on demand.</para></listitem>
+
+</varlistentry>
+            <varlistentry>
+            <term>FO</term>
+            <listitem><para>Support for SVG content in <tag>imagedata</tag> added.</para></listitem>
+</varlistentry>
+            <varlistentry>
+            <term>HTML</term>
+            <listitem><para>Output improved when using '<parameter>make.clean.html</parameter>' and a stock CSS file is now provided.</para></listitem> 
+</varlistentry>
+<varlistentry>
+<term>EPUB</term>
+<listitem><para>A number of improvements to NCX, cover and image selection, and XHTML 1.1 element choices</para></listitem>
+</varlistentry>
+
+</variablelist>
+
+    <para>The following is a list of changes that have been made since the 1.75.2 release.</para>
+    <sect2 xml:id="rnV1.76.0_Gentext">
+      <title>Gentext</title>
+      <para>The following changes have been made to the <filename>gentext</filename> code since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/fa.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Update to Persian translation from the Fedora Project</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/nds.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Locale for Low German</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: locale/ka.xml; Makefile</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added support for Georgian based on patch #2917147.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/nl.xml; locale/ja.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Updated translations from Red Hat and the Fedora Project</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/bs.xml; locale/ru.xml; locale/hr.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Updated locales from Red Hat and the Fedora Project</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/pt.xml; locale/cs.xml; locale/es.xml; locale/bg.xml; locale/nl.xml; loca&#x22EF;</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Updated translations from Red Hat and the Fedora Project</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/as.xml; locale/bn_IN.xml; locale/ast.xml; locale/ml.xml; locale/te.xml; &#x22EF;</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">New translations from Red Hat and the Fedora Project</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/pt.xml; locale/ca.xml; locale/da.xml; locale/sr.xml; locale/ru.xml; loca&#x22EF;</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Updated translations from Red Hat and the Fedora Project</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of Gentext changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_Common">
+      <title>Common</title>
+      <para>The following changes have been made to the <filename>common</filename> code since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: common.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fixed bug in output-orderedlist-starting-number template (@startingnumber did not work for FO).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: gentext.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added fix to catch ID also of descendants of <tag>listitem</tag>. Closes bug #2955077.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: l10n.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Stripped down, faster version of gentext.template is used when there is no localization customization.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: stripns.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added fix that preserves <tag>link</tag>/@role (makes links in the <tag>reference</tag> documentation
+with @role="tcg" work).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: l10n.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fixed bugs related to manpages and L10n.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: entities.ent; autoidx-kosek.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: l10n.xsl; l10n.dtd; l10n.xml; autoidx-kosek.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Refactored localization support. Language files are loaded on demand. Speedup is about 30%.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: l10n.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added xsl:keys for improved performance of localization texts look up. Performance gain around 15%.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: titles.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fixed bug #2912677 (error with <tag>xref</tag> in <tag>title</tag>).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: olink.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug in xrefstyle "<tag>title</tag>" handling introduced with 
+the 'insert.targetdb.data' template.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: gentext.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug in <tag>xref</tag> to <tag>equation</tag> without <tag>title</tag> to use context="xref-number" instead
+of "xref-number-and-title".</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: labels.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Number all equations in one sequence, with or without <tag>title</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: entities.ent</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug #2896909 where duplicate @sortas on indexterms caused 
+some indexterms to drop out of <tag>index</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: stripns.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Expand the "Stripping namespace ..." message to advise users to
+use the namespaced stylesheets.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: stripns.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">need a local version of $exsl.node.set.available variable because
+this module imported many places.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: olink.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added /node() to the select expression that is used to compute the <tag>title</tag> text
+so that no &lt;ttl&gt; elements end up in the output. Closes bug #2830119.</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of Common changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_FO">
+      <title>FO</title>
+      <para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: table.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2979166 able - Attribute @rowheader not working</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: inline.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Improved <tag>glossterm</tag> auto-linking by using keys. The old code was inefficient when processing documents
+with many inline glossterms.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: titlepage.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2805530 <tag>author</tag>/<tag>orgname</tag> not appearing on <tag>title</tag> page.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: graphics.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added support for SVG content in <tag>imagedata</tag> (inspired by patch #2909154).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: table.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Removed superfluous test used when computing column-width. Closes bug #3000898.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: inline.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added missing &lt;xsl:call-template name="<tag>anchor</tag>"/&gt;. Closes bug #2998567.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: lists.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added table-layout="fixed" on <tag>segmentedlist</tag> <tag>table</tag> (required by XSL spec when  proportional-column-width() is used).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: autoidx-kosek.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: index.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: xref.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug in <tag>olink</tag> template when an <tag>olink</tag> has an id.
+Add warning message with id value when trying to <tag>link</tag>
+to an element that has no generated text.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: refentry.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fixed bug #2930968 (<tag>indexterm</tag> in <tag>refmeta</tag> not handled correctly).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: block.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">fix bug 2949567 <tag>title</tag> in <tag>revhistory</tag> breaks FO transform.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: glossary.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Output id attributes on <tag>glossdiv</tag> blocks so they can be added to
+xrefs or <tag>TOC</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: xref.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Enabled hyphenation of URLs when ulink content is the same as <tag>link</tag> target</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: table.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Apply patch to turn off <tag>row</tag> recursion if no @morerows attributes present.
+This will enable very large tables without <tag>row</tag> spanning to 
+process without running into recursion limits.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: formal.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Format <tag>equation</tag> without <tag>title</tag> using <tag>table</tag> layout with <tag>equation</tag> number
+next to the <tag>equation</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: param.xweb; param.ent</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Add <parameter>equation.number.properties</parameter>.</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of FO changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_HTML">
+      <title>HTML</title>
+      <para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: block.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Modified <tag>acknowledgements</tag> template to avoid invalid output (&lt;p&gt; in &lt;p&gt;).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: titlepage.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added default <tag>sidebar</tag> attribute-sets.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: table.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2979166 able - Attribute @rowheader not working</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: footnote.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 3033191 footnotes in html tables.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: inline.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Improved <tag>glossterm</tag> auto-linking by using keys. The old code was inefficient when processing documents
+with many inline glossterms.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: docbook.css.xml; verbatim.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2844927 Validity error for <tag>callout</tag> bugs.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: formal.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Convert formal.object.heading to respect <parameter>make.clean.html</parameter> param.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: titlepage.templates.xml; block.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2840768 <tag>sidebar</tag> without <tag>title</tag> inserts empty b <tag>tag</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Moved the template that outputs &lt;base&gt; so that the base URI also applies to relative CSS paths that come later.
+See patch #2896121.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: autoidx-kosek.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: chunk-code.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">fix bug 2948363 generated <tag>filename</tag> for <tag>refentry</tag> not unique, when
+used in a set.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: component.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix missing "<tag>Chapter</tag> n" <tag>label</tag> when use <tag>chapter</tag>/<tag>info</tag>/<tag>title</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: table.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message"><tag>Row</tag> recursion turned off if no @morerows attributes in the <tag>table</tag>.
+This will prevent failure on long <tag>table</tag> (with no @morerows) due
+to excessive depth of recursion.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: autotoc.xsl; docbook.css.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Support <parameter>make.clean.html</parameter> in autotoc.xsl.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: docbook.css.xml; block.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Add support for <parameter>make.clean.html</parameter> setting in block elements.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: docbook.css.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Stock CSS styles for DocBook HTML output when '<parameter>make.clean.html</parameter>' is non-zero.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: html.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Add templates for generating CSS files and links to them.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: param.xweb</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bugs in new entity references.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: chunk-common.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">List of Equations now includes on equations with titles.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: table.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">If a <tag>colspec</tag> has a colname attribute, add it to the HTML <tag>col</tag>
+element as a class attribute so it can be styled.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: formal.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2825842 where <tag>table</tag> footnotes not appearing in HTML-coded <tag>table</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: chunktoc.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug #2834826 where <tag>appendix</tag> inside part was not chunked as it should be.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: chunktoc.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added missing namespace declarations. Closes bug #2890069.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: footnote.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Updated the template for <tag>footnote</tag> paras to use the 'paragraph' template. Closes bug #2803739.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: inline.xsl; lists.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Remove &lt;b&gt; and &lt;i&gt; elements "discouraged in favor of style sheets" from
+XHTML, XHTML 1.1 (and therefore EPUB) outputs by changing html2xhtml.xsl.
+
+Fixes bug #2873153: No &lt;b&gt; and &lt;i&gt; tags in XHTML/EPUB
+
+Added regression to EPUB specs:</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: inline.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fixed bug #2844916 (don't output @target if <parameter>ulink.target</parameter> is empty).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: autoidx.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix a bug when using <parameter>index.on.type</parameter>: an '<tag>index</tag> symbols' <tag>section</tag> was created 
+even if that typed <tag>index</tag> didn't include any symbols (they were in the other types).</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of HTML changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_Manpages">
+      <title>Manpages</title>
+      <para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: other.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Modified the write.stubs template so that the <tag>section</tag> directory name is not output twice. Should fix bug #2831602.
+Also ensured that $lang is added to the .so path (when <parameter>man.output.lang.in.name.enabled</parameter>=1).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: docbook.xsl; other.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fixed bug #2412738 (apostrophe escaping) by applying the submitted patch.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Norman Walsh: block.xsl; endnotes.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug where <tag>simpara</tag> in <tag>footnote</tag> didn't work. Patch by Jonathan Nieder, jrnieder@gmail.com</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>dleidert: lists.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix two indentation issues: In the first case there is no corresponding .RS
+macro (Debian #519438, sf.net 2793873). In the second case an .RS instead of
+the probably intended .sp leads to an indentation bug (Debian #527309,
+sf.net #2642139).</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of Manpages changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_Epub">
+      <title>Epub</title>
+      <para>The following changes have been made to the
+            <filename>epub</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/spec/examples/AMasqueOfDays.epub; docbook.xsl; bin/spec/epub_spec.rb</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Resolve some actual regressions in <tag>date</tag> output spotted by more recent versions of epubcheck</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Updated <tag>mediaobject</tag> selection code that better uses roles (when available); based on contributons by  Glenn McDonald</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Ensure that NCX documents are always outputted with a default namespace
+to prevent problems with the kindlegen machinery</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/partintro.xml; docbook.x&#x22EF;</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Adding support for partintros with sect2s, 3s, etc</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Adding param to workaround horrific ADE bug with the inability to process &lt;br&gt;</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Add support for <tag>authorgroup</tag>/<tag>author</tag> in OPF metadata (via Michael Wiedmann)</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Remove &lt;b&gt; and &lt;i&gt; elements "discouraged in favor of style sheets" from
+XHTML, XHTML 1.1 (and therefore EPUB) outputs by changing html2xhtml.xsl.
+
+Fixes bug #2873153: No &lt;b&gt; and &lt;i&gt; tags in XHTML/EPUB
+
+Added regression to EPUB specs:</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/lib/docbook.rb; bin/spec/files/DejaVuSerif-Italic.otf; docbook.xsl; bi&#x22EF;</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">This resolves bug #2873142, Please add support for multiple embedded fonts
+
+
+If you navigate to a checkout of DocBook-XSL and go to:
+xsl/epub/bin/spec/files
+You can now run the following <tag>command</tag>:
+
+../../dbtoepub -f DejaVuSerif.otf -f DejaVuSerif-Italic.otf -c test.css
+-s test_cust.xsl orm.book.001.xml
+
+In dbtoepub, the following option can be used more than once:
+-f, --font [OTF FILE] Embed OTF FILE in .epub.
+
+The underlying stylesheet now accepts a comma-separated list of font file
+names rather than just one as the RENAMED epub.embedded.fonts ('s' added).
+
+The runnable EPUB spec now includes:
+- should be valid .epub after including more than one embedded font</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Improve the selection of <tag>cover</tag> images when working in DocBook 4.x land (work in progress)</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Improve the quality of the OPF spine regression by ensuring that the spine
+elements for deeply nested refentries are in order and adjacent to their
+opening wrapper XHTML chunk.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl; bin/spec/files/orm.book.00&#x22EF;</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Add more careful handling of refentries to ensure that they always appear in the opf:spine.
+This was only a problem when refentries were pushed deep into the hierarchy (like inside
+a <tag>sect2</tag>), but presented navigational problems for many reading systems (despite the
+correct NCX references). This may *not* be the best solution, but attacking a better
+chunking strategy for refentries was too big a nut to crack at this time.</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of Epub changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_Eclipse">
+      <title>Eclipse</title>
+      <para>The following changes have been made to the
+            <filename>eclipse</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: eclipse3.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added a stylesheet module that generates plug-ins conforming to the standard (OSGi-based) Eclipse 3.x 
+architecture. The main difference to the older format is that metadata is stored in a separate 
+<parameter>manifest</parameter> file. The module imports and extends the existing eclipse.xsl module. Based on code 
+contributed in patch #2624668.</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of Eclipse changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_Params">
+      <title>Params</title>
+      <para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: draft.watermark.image.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2922488 <parameter>draft.watermark.image</parameter> pointing to web resource.
+Now the value is images/draft.png, and may require customization
+for local resolution.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: equation.number.properties.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Corrected <tag>refpurpose</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Norman Walsh: paper.type.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added USlegal and USlegallandscape paper types.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: highlight.xslthl.config.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added note about specifying location as URL</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: docbook.css.source.xml; generate.css.header.xml; custom.css.source.xml; ma&#x22EF;</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Params to support generated CSS files.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: equation.number.properties.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">New attribute set for numbers appearing next to equations.</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of Params changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_XSL-Xalan">
+      <title>XSL-Xalan</title>
+      <para>The following changes have been made to the
+            <filename>xsl-xalan</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>dleidert: nbproject/genfiles.properties; nbproject/build-impl.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Rebuild netbeans build files after adding missing Netbeans configuration to allow easier packaging for Debian.</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of XSL-Xalan changes for 1.76.0-->
+  </sect1>
+<sect1 xml:id="rn_V1.75.2">
+<title>Release Notes: 1.75.2</title>
+<para>The following is a list of changes that have been made
+        since the 1.75.1 release.</para>
+
+<sect2 xml:id="rn_V1.75.2_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the
+            <filename>gentext</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>dleidert: locale/ja.xml</literal></para><screen><phrase role="commit-message">Improved Japanese translation for Note(s). Closes bug #2823965.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>dleidert: locale/pl.xml</literal></para><screen><phrase role="commit-message">Polish alphabet contains O with acute accent, not with grave accent. Closes bug #2823964.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/ja.xml</literal></para><screen><phrase role="commit-message">Fix translation of "<tag>index</tag>", per bug report 2796064.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/is.xml</literal></para><screen><phrase role="commit-message">New Icelandic locale file.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Norman Walsh: stripns.xsl</literal></para><screen><phrase role="commit-message">Support more downconvert cases</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titles.xsl</literal></para><screen><phrase role="commit-message">Make sure <tag>title</tag> inside <tag>info</tag> is used if no other <tag>title</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: pi.xsl</literal></para><screen><phrase role="commit-message">Turn off dbfo-need for <parameter>fop1.extensions</parameter> also, per bug #2816141.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Output "<tag>Copyright</tag>" heading in XHTML too.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Added stylesheet.result.type test for <tag>copyright</tag>. Closes bug #2813289.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Norman Walsh: htmltbl.xsl</literal></para><screen><phrase role="commit-message">Remove ambiguity wrt @span, @rowspan, and @colspan</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: endnotes.xsl</literal></para><screen><phrase role="commit-message">Added normalize-space() for ulink content. Closes bug #2793877.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: docbook.xsl</literal></para><screen><phrase role="commit-message">Added stylesheet.result.type test for <tag>copyright</tag>. Closes bug #2813289.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_Epub">
+<title>Epub</title>
+<para>The following changes have been made to the
+            <filename>epub</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: bin/dbtoepub; bin/lib/docbook.rb</literal></para><screen><phrase role="commit-message">Corrected bugs caused by path and file assumptions were not met</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/lib/docbook.rb; docbook.xsl</literal></para><screen><phrase role="commit-message">Cleaning up hardcoded values into parameters and fixing Ruby library to pass them properly; all thanks to patch from Liza Daly</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Epub changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_Profiling">
+<title>Profiling</title>
+<para>The following changes have been made to the
+            <filename>profiling</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: profile.xsl</literal></para><screen><phrase role="commit-message">Fix bug 2815493 missing <parameter>exsl.node.set.available</parameter> parameter.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Profiling changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_XSL-Saxon">
+<title>XSL-Saxon</title>
+<para>The following changes have been made to the
+            <filename>xsl-saxon</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: src/com/nwalsh/saxon/ColumnUpdateEmitter.java; src/com/nwalsh/saxon/Colum&#x22EF;</literal></para><screen><phrase role="commit-message">Added fixes so that colgroups in the XHTML namespace are processed properly.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Saxon changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_XSL-Xalan">
+<title>XSL-Xalan</title>
+<para>The following changes have been made to the
+            <filename>xsl-xalan</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: nbproject/project.xml</literal></para><screen><phrase role="commit-message">Added missing NetBeans configuration.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Xalan changes for 1.75.2-->
+
+</sect1>
+
+
+<sect1 xml:id="rn_V1.75.1">
+<title>Release Notes: 1.75.1</title>
+<para>This release includes bug fixes.</para>
+
+<para>The following is a list of changes that have been made since the 1.75.0 release.</para>
+
+
+<sect2 xml:id="rn_V1.75.1_FO">
+<title>FO</title>
+<para>The following changes have been made to the <filename>fo</filename> code since the 1.75.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: block.xsl</literal></para><screen><phrase role="commit-message">Switching to em dash for character before <tag>attribution</tag> in <tag>epigraph</tag>; resolves Bug #2793878</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Fixed bug 2789947, id attribute missing on <tag>simplelist</tag> fo output.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.75.1-->
+
+<sect2 xml:id="rn_V1.75.1_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.75.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: block.xsl</literal></para><screen><phrase role="commit-message">Switching to em dash for character before <tag>attribution</tag> in <tag>epigraph</tag>; resolves Bug #2793878</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Fixed bug 2789678: apply-templates line accidentally deleted.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.75.1-->
+
+<sect2 xml:id="rn_V1.75.1_Epub">
+<title>Epub</title>
+<para>The following changes have been made to the
+            <filename>epub</filename> code
+            since the 1.75.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl</literal></para><screen><phrase role="commit-message">Added regression and fix to correct "bug" with namespace-prefixed container elements in META-INF/container.xml ; resolves Issue #2790017</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/onegraphic.xinclude.xml;&#x22EF;</literal></para><screen><phrase role="commit-message">Another attempt at flexible named entity and XInclude processing</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/lib/docbook.rb</literal></para><screen><phrase role="commit-message">Tweaking solution to Bug #2750442 following regression reported by Michael Wiedmann.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Epub changes for 1.75.1-->
+
+<sect2 xml:id="rn_V1.75.1_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.75.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: highlight.source.xml</literal></para><screen><phrase role="commit-message">Updated documentation to reflect changes made in r8419.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.75.1-->
+
+</sect1>
+
+
+<sect1 xml:id="V1.75.0">
+<title>Release Notes: 1.75.0</title>
+<para>This release includes important bug fixes and adds the following
+significant feature changes:
+<variablelist>
+<varlistentry>
+<term>Gentext</term>
+<listitem><para>Modifications to translations have been made. </para></listitem>
+
+</varlistentry>
+<varlistentry>
+<term>Common</term>
+<listitem>
+<para>Added support for some format properties on tables using
+HTML <tag>table</tag> markup.  </para>
+<para>Added two new <parameter>qanda.defaultlabel</parameter> values so that numbered sections
+and numbered questions can be distinguished.  Satisfies
+Feature Request #1539045.</para>
+<para>Added code to handle <tag>acknowledgements</tag> in <tag>book</tag> and part. The element is processed
+similarly to <tag>dedication</tag>. All <tag>acknowledgements</tag> will appear as front matter, after
+any dedications.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>FO</term>
+<listitem>
+<para>The inclusion of highlighting code has been simplified.</para>
+<para>Add support for pgwide on informal objects.</para>
+<para>Added a new parameter, <parameter>bookmarks.collapse</parameter>, that controls the initial <tag>state</tag> of the bookmark tree. Closes FR #1792326.</para>
+<para>Add support for more dbfo processing instructions.</para>
+<para>Add new <parameter>variablelist.term.properties</parameter> to format terms, per request # 1968513.</para>
+<para>Add support for @width on <tag>screen</tag> and <tag>programlisting</tag>, fixes bug #2012736.</para>
+<para>Add support for writing-mode="rl-tb" (right-to-left) in FO outputs.  </para>
+<para>Add <parameter>writing.mode</parameter> param for FO output.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>HTML</term>
+<listitem>
+<para>Convert all calls to class.attribute to calls to common.html.attributes to support dir, lang, and <tag>title</tag> attributes in html output for all elements.  Fulfills feature request #1993833.</para>
+<para>Inclusion of highlighting code was simplified. Only one import is now necessary.</para>
+<para>Add new param <parameter>index.links.to.section</parameter>.</para>
+<para>Add support for the new <parameter>index.links.to.section</parameter> param which permits precise links to indexterms in HTML output rather than to the <tag>section</tag> <tag>title</tag>.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>ePub</term>
+<listitem>
+<para>Slightly more nuanced handling of <tag>imageobject</tag> alternatives and better support in dbtoepub for XIncludes and ENTITYs to resolve Issue #2750442 reported by Raphael Hertzog.</para>
+<para>Added a colon after an <tag>abstract</tag>/<tag>title</tag> when mapping into the dc:description for OPF metadata in ePub output to help the flat text have more pseudo-semantics (sugestions from Michael Wiedmann)</para>
+<para>Added DocBook <tag>subjectset</tag> -&gt; OPF dc:<tag>subject</tag> mapping and tests</para>
+<para>Added DocBook <tag>date</tag> -&gt; OPF dc:date mapping and tests</para>
+<para>Added DocBook <tag>abstract</tag> -&gt; OPF dc:description mapping and tests</para>
+<para>Added --output option to dbtoepub based on user request</para>
+</listitem>
+
+</varlistentry>
+<varlistentry>
+<term>HTMLHelp</term>
+<listitem>
+<para>Add support for generating <tag>olink</tag> target <tag>database</tag> for htmlhelp files.</para></listitem>
+
+</varlistentry>
+
+<varlistentry>
+<term>Params</term>
+<listitem>
+<para>Add default setting for @rules attribute on HTML markup tables.</para>
+<para>Added a new parameter, <parameter>bookmarks.collapse</parameter>, that controls the initial <tag>state</tag> of the bookmark tree. When the parameter has a non-zero value (the default), only the top-level bookmarks are displayed initially. Otherwise, the whole tree of bookmarks is displayed.  This is implemented for FOP 0.9X. Closes FR #1792326.</para>
+<para>Add new <parameter>variablelist.term.properties</parameter> to format terms, per request # 1968513.</para>
+<para>Add two new <parameter>qanda.defaultlabel</parameter> values so that numbered sections and numbered questions can be distinguished.  Satisfies Feature Request #1539045.</para>
+<para>Add param to control whether an <tag>index</tag> <tag>entry</tag> links to a <tag>section</tag> <tag>title</tag> or to the precise location of the <tag>indexterm</tag>.</para>
+<para>New attribute list for <tag>glossentry</tag> in <tag>glossary</tag>.</para>
+<para>New parameter to support @width on <tag>programlisting</tag> and <tag>screen</tag>.</para>
+<para>Add attribute-sets for formatting <tag>glossary</tag> terms and defs.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Highlighting</term>
+<listitem>
+<para>Inclusion of highlighting code was simplified. Only one import is now necessary.</para>
+</listitem>
+
+</varlistentry>
+</variablelist>
+
+
+</para>
+<para>The following is a list of changes that have been made
+        since the 1.74.3 release.</para>
+
+<sect2 xml:id="rn_V1.75.0_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the
+            <filename>gentext</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: locale/sv.xml; locale/ja.xml; locale/pl.xml</literal></para><screen><phrase role="commit-message">Check in translations of <tag>Legalnotice</tag> submitted on mailing list.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/es.xml</literal></para><screen><phrase role="commit-message">Fix spelling errors in <tag>Acknowledgements</tag> entries.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/es.xml</literal></para><screen><phrase role="commit-message">Check in translations for 4 elements submitted through docbook-apps
+message of 14 April 2009.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: locale/zh.xml; locale/ca.xml; locale/ru.xml; locale/ga.xml; locale/gl.xml; l&#x22EF;</literal></para><screen><phrase role="commit-message">Internationalized punctuation in <tag>glosssee</tag> and <tag>glossseealso</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: Makefile</literal></para><screen><phrase role="commit-message">Check in fixes for DSSSL gentext targets from submitted patch #1689633.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/uk.xml</literal></para><screen><phrase role="commit-message">Check in major update submitted with bug report #2008524.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/zh_tw.xml</literal></para><screen><phrase role="commit-message">Check in fix to Note string submitted in bug #2441051.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/ru.xml</literal></para><screen><phrase role="commit-message">Checkin typo fix submitted in bug #2453406.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: gentext.xsl</literal></para><screen><phrase role="commit-message">Fix extra generated space when xrefstyle includes 'nopage'.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Add support for some format properties on tables using
+HTML <tag>table</tag> markup.  These include:
+  - frame attribute on <tag>table</tag> (or uses $default.table.frame parameter).
+  - rules attribute on <tag>table</tag> (or uses $default.table.rules parameter).
+  - align attribute on <tag>td</tag> and <tag>th</tag>
+  - valign attribute on <tag>td</tag> and <tag>th</tag>
+  - colspan on <tag>td</tag> and <tag>th</tag>
+  - rowspan on <tag>td</tag> and <tag>th</tag>
+  - bgcolor on <tag>td</tag> and <tag>th</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: olink.xsl</literal></para><screen><phrase role="commit-message">Add placeholder template to massage <tag>olink</tag> hot text to make
+customization easier, per Feature Request 1828608.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: targets.xsl</literal></para><screen><phrase role="commit-message">Add support for collecting <tag>olink</tag> targets from a <tag>glossary</tag>
+generated from a <parameter>glossary.collection</parameter>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titles.xsl</literal></para><screen><phrase role="commit-message">Handle <tag>firstterm</tag> like <tag>glossterm</tag> in mode="title.markup".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titles.xsl</literal></para><screen><phrase role="commit-message">Add match on <tag>info</tag>/<tag>title</tag> in title.markup templates where missing.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Changed "ancestor::<tag>title</tag>" to "(ancestor::<tag>title</tag> and (@id or @xml:id))".
+This enables proper formatting of inline elements in titles in TOCs, 
+as long as these inlines don't have id or xml:id attributes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: labels.xsl</literal></para><screen><phrase role="commit-message">Add two new <parameter>qanda.defaultlabel</parameter> values so that numbered sections
+and numbered questions can be distinguished.  Satisfies
+Feature Request #1539045.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: stripns.xsl; pi.xsl</literal></para><screen><phrase role="commit-message">Convert function-available(exsl:node-set) to use the new param
+so Xalan bug is isolated.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Added fixes for bugs #2112656 and #1759205:
+1. Reverted mistaken commits r7485 and r7523. 
+2. Updated the template with match="<tag>link</tag>" and mode="no.anchor.mode" so that 
+@endterm is used if it exists and if the <tag>link</tag> has no content.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Added code to handle <tag>acknowledgements</tag> in <tag>book</tag> and part. The element is processed
+similarly to <tag>dedication</tag>. All <tag>acknowledgements</tag> will appear as front matter, after
+any dedications.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: olink.xsl</literal></para><screen><phrase role="commit-message">Fix bug #2018717 <parameter>use.local.olink.style</parameter> uses wrong gentext context.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: olink.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1787167 incorrect hot text for some olinks.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: common.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1669654 Broken output if <tag>copyright</tag> &lt;<tag>year</tag>&gt; contains a range.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: labels.xsl</literal></para><screen><phrase role="commit-message">Fix bug in labelling <tag>figure</tag> inside <tag>appendix</tag> inside <tag>article</tag> inside <tag>book</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: highlight.xsl</literal></para><screen><phrase role="commit-message">Inclusion of highlighting code was simplified. Only one import is now necessary.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: fop1.xsl</literal></para><screen><phrase role="commit-message">Add the new fop extensions namespace declaration, in case FOP
+extension functions are used.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: formal.xsl</literal></para><screen><phrase role="commit-message">Add support for pgwide on informal objects.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Fixed spurious closing <tag>quote</tag> on line 134.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl; autoidx-kosek.xsl; autoidx.xsl</literal></para><screen><phrase role="commit-message">Convert function-available for node-set() to use
+new $exsl.node.set.available param in test.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xref.xsl</literal></para><screen><phrase role="commit-message">Suppress extra space after <tag>xref</tag> when xrefstyle='select: <tag>label</tag> nopage' (#2740472)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Fixed doc bug for row-height.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: glossary.xsl</literal></para><screen><phrase role="commit-message">Internationalized punctuation in <tag>glosssee</tag> and <tag>glossseealso</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent; htmltbl.xsl; table.xsl</literal></para><screen><phrase role="commit-message">Add support for some format properties on tables using
+HTML <tag>table</tag> markup.  These include:
+  - frame attribute on <tag>table</tag> (or uses $default.table.frame parameter).
+  - rules attribute on <tag>table</tag> (or uses $default.table.rules parameter).
+  - align attribute on <tag>td</tag> and <tag>th</tag>
+  - valign attribute on <tag>td</tag> and <tag>th</tag>
+  - colspan on <tag>td</tag> and <tag>th</tag>
+  - rowspan on <tag>td</tag> and <tag>th</tag>
+  - bgcolor on <tag>td</tag> and <tag>th</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Add support bgcolor in <tag>td</tag> and <tag>th</tag>
+elements in HTML <tag>table</tag> markup.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: htmltbl.xsl</literal></para><screen><phrase role="commit-message">Add support for colspan and rowspan and bgcolor in <tag>td</tag> and <tag>th</tag>
+elements in HTML <tag>table</tag> markup.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb</literal></para><screen><phrase role="commit-message">Fix working of page-master left and right margins.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: param.xweb; param.ent; fop1.xsl</literal></para><screen><phrase role="commit-message">Added a new parameter, <parameter>bookmarks.collapse</parameter>, that controls the initial <tag>state</tag> of the bookmark tree. When the parameter has a non-zero value (the default), only the top-level bookmarks are displayed initially. Otherwise, the whole tree of bookmarks is displayed.  This is implemented for FOP 0.9X. Closes FR #1792326.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl; pi.xsl</literal></para><screen><phrase role="commit-message">Add support for dbfo row-height processing instruction, like that in dbhtml.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Add support for dbfo keep-together processing instruction for
+entire list instances.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl; block.xsl</literal></para><screen><phrase role="commit-message">Add support fo dbfo keep-together processing instruction to
+more blocks like list items and paras.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add new <parameter>variablelist.term.properties</parameter> to format terms, per request # 1968513.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl</literal></para><screen><phrase role="commit-message">In simple.xlink, rearrange order of processing.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Handle <tag>firstterm</tag> like <tag>glossterm</tag> in mode="xref-to".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossary.xsl; xref.xsl; pi.xsl; footnote.xsl</literal></para><screen><phrase role="commit-message">Implement simple.xlink for <tag>glosssee</tag> and <tag>glossseealso</tag> so they can use
+other types of linking besides otherterm.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qandaset.xsl</literal></para><screen><phrase role="commit-message">Add two new <parameter>qanda.defaultlabel</parameter> values so that numbered sections and numbered questions can be distinguished.  Satisfies Feature Request #1539045.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titlepage.xsl</literal></para><screen><phrase role="commit-message">For the <tag>book</tag> <tag>title</tag> templates, I changed <tag>info</tag>/<tag>title</tag> to <tag>book</tag>/<tag>info</tag>/<tag>title</tag>
+so other element's titles will not be affected.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl; verbatim.xsl</literal></para><screen><phrase role="commit-message">Use param <parameter>exsl.node.set.available</parameter> to test for <tag>function</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent; footnote.xsl</literal></para><screen><phrase role="commit-message">Start using new param <parameter>exsl.node.set.available</parameter> to work around Xalan bug.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titlepage.templates.xml</literal></para><screen><phrase role="commit-message">Add comment on use of t:predicate for <tag>editor</tag> to prevent
+extra processing of multiple editors. Fixes bug 2687842.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl; autoidx.xsl</literal></para><screen><phrase role="commit-message">An <tag>indexterm</tag> <tag>primary</tag>, <tag>secondary</tag>, or <tag>tertiary</tag> element with an id or xml:id
+now outputs that ID, so that <tag>index</tag> entries can be cross referenced to.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: synop.xsl</literal></para><screen><phrase role="commit-message">Added modeless template for ooclass|oointerface|ooexception.
+Closes bug #1623468.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Add template with match on <tag>indexterm</tag> in mode="xref-to" to fix bug 2102592.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Now <tag>xref</tag> to <tag>qandaentry</tag> will use the <tag>label</tag> element in a <tag>question</tag> for
+the <tag>link</tag> text if it has one.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl</literal></para><screen><phrase role="commit-message">Add id if specified from @id to output for <tag>quote</tag> and <tag>phrase</tag> so
+they can be <tag>xref</tag>'ed to.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Add support for <tag>xref</tag> to <tag>phrase</tag>, <tag>simpara</tag>, <tag>anchor</tag>, and <tag>quote</tag>.
+This assumes the <tag>author</tag> specifies something using xrefstyle since
+the elements don't have ordinary <tag>link</tag> text.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: toc.xsl</literal></para><screen><phrase role="commit-message">Fix bug in new <tag>toc</tag> templates.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl; component.xsl; division.xsl; xref.xsl; titlepage.templates&#x22EF;</literal></para><screen><phrase role="commit-message">Added code to handle <tag>acknowledgements</tag> in <tag>book</tag> and part. The element is processed
+similarly to <tag>dedication</tag>. All <tag>acknowledgements</tag> will appear as front matter, after
+any dedications.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: toc.xsl</literal></para><screen><phrase role="commit-message">Rewrite <tag>toc</tag> templates to support an empty <tag>toc</tag> or populated <tag>toc</tag>
+in all permitted contexts.  Same for lot elements.
+This fixes bug #1595969 for FO outputs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: index.xsl</literal></para><screen><phrase role="commit-message">Fix indents for <tag>seealsoie</tag> so they are consistent.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: param.xweb</literal></para><screen><phrase role="commit-message">Removed duplicate (<parameter>monospace.font.family</parameter>).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add <parameter>glossentry.list.item.properties</parameter>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add <parameter>monospace.verbatim.font.width</parameter> param to support @width on <tag>programlisting</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: verbatim.xsl</literal></para><screen><phrase role="commit-message">Put <tag>programlisting</tag> in fo:block-container with writing-mode="lr-tb"
+when text direction is right to left because all program languages
+are left-to-right.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: verbatim.xsl</literal></para><screen><phrase role="commit-message">Add support for @width on <tag>screen</tag> and <tag>programlisting</tag>, fixes bug #2012736.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1973585 <tag>xref</tag> to <tag>para</tag> with xrefstyle not handled correctly.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: block.xsl</literal></para><screen><phrase role="commit-message">Added support for <tag>acknowledgements</tag> in <tag>article</tag>.
+Support in <tag>book</tag>/part remains to be added.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1787167 incorrect hot text for some olinks.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: fo.xsl</literal></para><screen><phrase role="commit-message">Add writing-mode="tb-rl" as well since some XSL-FO processors support it.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl; lists.xsl; glossary.xsl; fo.xsl; table.xsl; pagesetup.xsl</literal></para><screen><phrase role="commit-message">Add support for writing-mode="rl-tb" (right-to-left) in FO outputs.
+Changed instances of margin-left to margin-{$direction.align.start}
+and margin-right to margin-{$direction.align.end}. Those direction.align
+params are computed from the writing mode value in each locale's
+gentext key named 'writing-mode', introduced in 1.74.3 to add
+right-to-left support to HTML outputs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add attribute-sets for formatting <tag>glossary</tag> terms and defs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add <parameter>writing.mode</parameter> param for FO output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl</literal></para><screen><phrase role="commit-message">Fix bug 1546008: in <tag>qandaentry</tag> in a <tag>TOC</tag>, use its blockinfo/<tag>titleabbrev</tag> or blockinfo/<tag>title</tag>
+instead of <tag>question</tag>, if available. For DocBook 5, use the <tag>info</tag> versions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">Add better pointer to README for XSLTHL</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">More tweaking the way that XSLTHL does or does not get called</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">Alternate attempt at sanely including/excluding XSLTHT code</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Removed redundant lang and <tag>title</tag> attributes on list element inside
+div element for lists.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl; titlepage.xsl; division.xsl; toc.xsl; sections.xsl; table.xsl;&#x22EF;</literal></para><screen><phrase role="commit-message">Convert all calls to class.attribute to calls to common.html.attributes
+to support dir, lang, and <tag>title</tag> attributes in html output for all elements.
+Fulfills feature request #1993833.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunk-common.xsl</literal></para><screen><phrase role="commit-message">Fix bug #2750253 wrong links in list of figures in chunk.html
+when target html is in a subdirectory and dbhtml <tag>filename</tag> used.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: highlight.xsl</literal></para><screen><phrase role="commit-message">Inclusion of highlighting code was simplified. Only one import is now necessary.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunk-common.xsl; chunktoc.xsl; docbook.xsl; chunk-changebars.xsl; autoidx&#x22EF;</literal></para><screen><phrase role="commit-message">Convert function-available for node-set() to use
+new $exsl.node.set.available param in test.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Fixed doc bug for row-height.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: glossary.xsl</literal></para><screen><phrase role="commit-message">Internationalized punctuation in <tag>glosssee</tag> and <tag>glossseealso</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl; html.xsl; block.xsl</literal></para><screen><phrase role="commit-message">More elements get common.html.attributes.
+Added locale.html.attributes template which does the lang,
+dir, and <tag>title</tag> attributes, but not the class attribute
+(used on <tag>para</tag>, for example).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Replace more <tag>literal</tag> class atts with mode="class.attribute" to support
+easier customization.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossary.xsl</literal></para><screen><phrase role="commit-message">Support olinking in <tag>glosssee</tag> and <tag>glossseealso</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl</literal></para><screen><phrase role="commit-message">In simple.xlink, rearrange order of processing.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Handle <tag>firstterm</tag> like <tag>glossterm</tag> in mode="xref-to".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl; html.xsl; block.xsl</literal></para><screen><phrase role="commit-message">Added template named common.html.attributes to output
+class, <tag>title</tag>, lang, and dir for most elements.
+Started adding it to some list and block elements.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qandaset.xsl</literal></para><screen><phrase role="commit-message">Add two new <parameter>qanda.defaultlabel</parameter> values so that numbered sections
+and numbered questions can be distinguished.  Satisfies
+Feature Request #1539045.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; chunk-code.xsl; param.ent; xref.xsl; chunkfast.xsl; verbatim.x&#x22EF;</literal></para><screen><phrase role="commit-message">Use new param <parameter>exsl.node.set.available</parameter> to test, handles Xalan bug.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autoidx.xsl</literal></para><screen><phrase role="commit-message">Use named anchors for <tag>primary</tag>, <tag>secondary</tag>, and <tag>tertiary</tag> ids so
+duplicate entries with different ids can still have an id output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add new param <parameter>index.links.to.section</parameter>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl; autoidx.xsl</literal></para><screen><phrase role="commit-message">Pass through an id on <tag>primary</tag>, <tag>secondary</tag>, or <tag>tertiary</tag> to 
+the <tag>index</tag> <tag>entry</tag>, so that one could <tag>link</tag> to an <tag>index</tag> <tag>entry</tag>.
+You can't <tag>link</tag> to the id on an <tag>indexterm</tag> because that is
+used to place the main <tag>anchor</tag> in the text flow.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autoidx.xsl</literal></para><screen><phrase role="commit-message">Add support for the new <parameter>index.links.to.section</parameter> param which permits
+precise links to indexterms in HTML output rather than to
+the <tag>section</tag> <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: synop.xsl</literal></para><screen><phrase role="commit-message">Added modeless template for ooclass|oointerface|ooexception.
+Closes bug #1623468.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qandaset.xsl</literal></para><screen><phrase role="commit-message">Make sure a <tag>qandaset</tag> has an <tag>anchor</tag>, even when it has no <tag>title</tag>, 
+because it may be referenced in a <tag>TOC</tag> or <tag>xref</tag>.
+Before, the <tag>anchor</tag> was output by the <tag>title</tag>, but there was no
+<tag>anchor</tag> if there was no <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Add a template for <tag>indexterm</tag> with mode="xref-to" to fix bug 2102592.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Now <tag>xref</tag> to <tag>qandaentry</tag> will use the <tag>label</tag> element in a <tag>question</tag> for
+the <tag>link</tag> text if it has one.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qandaset.xsl; html.xsl</literal></para><screen><phrase role="commit-message">Create separate templates for computing <tag>label</tag> of <tag>question</tag> and <tag>answer</tag>
+in a <tag>qandaentry</tag>, so such can be used for the <tag>alt</tag> text of an <tag>xref</tag>
+to a <tag>qandaentry</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl; xref.xsl</literal></para><screen><phrase role="commit-message">Now support <tag>xref</tag> to <tag>phrase</tag>, <tag>simpara</tag>, <tag>anchor</tag>, and <tag>quote</tag>,
+most useful when an xrefstyle is used.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: toc.xsl</literal></para><screen><phrase role="commit-message">Rewrite <tag>toc</tag> templates to support an empty <tag>toc</tag> or populated <tag>toc</tag>
+in all permitted contexts.  Same for lot elements.
+This fixes bug #1595969 for HTML outputs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl; component.xsl; division.xsl; xref.xsl; titlepage.templates&#x22EF;</literal></para><screen><phrase role="commit-message">Added code to handle <tag>acknowledgements</tag> in <tag>book</tag> and part. The element is processed
+similarly to <tag>dedication</tag>. All <tag>acknowledgements</tag> will appear as front matter, after
+any dedications.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: index.xsl</literal></para><screen><phrase role="commit-message">Rewrote <tag>primaryie</tag>, <tag>secondaryie</tag> and <tag>tertiaryie</tag> templates to handle
+nesting of elements and <tag>seeie</tag> and <tag>seealsoie</tag>, as reported in
+bug # 1168912.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl</literal></para><screen><phrase role="commit-message">Fix <tag>simplesect</tag> in <tag>toc</tag> problem.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: verbatim.xsl</literal></para><screen><phrase role="commit-message">Add support for @width per bug report #2012736.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: formal.xsl; htmltbl.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1787140 HTML tables not handling attributes correctly.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb</literal></para><screen><phrase role="commit-message">Move writing-mode param.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: refentry.xsl</literal></para><screen><phrase role="commit-message">Remove a nesting of &lt;p&gt; inside &lt;p&gt; for <tag>refclass</tag> (made XHTML* invalid, made HTML silly)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1945872 to allow passthrough of colwidth values to
+HTML <tag>table</tag> when no <parameter>tablecolumns.extension</parameter> is available and
+when no instance of * appears in the <tag>table</tag>'s colspecs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: block.xsl</literal></para><screen><phrase role="commit-message">Added support for <tag>acknowledgements</tag> in <tag>article</tag>.
+Support in <tag>book</tag>/part remains to be added.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunk-common.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1787167 incorrect hot text for some olinks.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qandaset.xsl</literal></para><screen><phrase role="commit-message">Fix bug 1546008: in <tag>qandaentry</tag> in a <tag>TOC</tag>, use its blockinfo/<tag>titleabbrev</tag> or blockinfo/<tag>title</tag>
+instead of <tag>question</tag>, if available. For DocBook 5, use the <tag>info</tag> versions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunktoc.xsl</literal></para><screen><phrase role="commit-message">Add support for generating <tag>olink</tag> <tag>database</tag> when using chunktoc.xsl.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">Add better pointer to README for XSLTHL</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">Another stab at fixing the stupid XSLTHT includes across processors (Saxon regression reported by Sorin Ristache)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">More tweaking the way that XSLTHL does or does not get called</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">Alternate attempt at sanely including/excluding XSLTHT code</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Convert function-available test for node-set() <tag>function</tag> to
+test of $exsl.node.set.available param.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: lists.xsl</literal></para><screen><phrase role="commit-message">Added a template for <tag>bibliolist</tag>. Closes bug #1815916.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_Epub">
+<title>ePub</title>
+<para>The following changes have been made to the
+            <filename>epub</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/onegraphic.xinclude.xml;&#x22EF;</literal></para><screen><phrase role="commit-message">Slightly more nuanced handling of <tag>imageobject</tag> alternatives and better support in dbtoepub for XIncludes and ENTITYs to resolve Issue #2750442 reported by Raphael Hertzog.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl</literal></para><screen><phrase role="commit-message">Add a colon after an <tag>abstract</tag>/<tag>title</tag> when mapping into the dc:description for OPF metadata in ePub output to help the flat text have more pseudo-semantics (sugestions from Michael Wiedmann)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl; bin/spec/files/de.xml</literal></para><screen><phrase role="commit-message">Correctly set dc:language in OPF metadata when i18nizing. Closes Bug #2755150</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl</literal></para><screen><phrase role="commit-message">Corrected namespace declarations for <tag>literal</tag> XHTML elements to make them serialize "normally"</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl</literal></para><screen><phrase role="commit-message">Be a little bit more nuanced about dates</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files/orm.book.001.x&#x22EF;</literal></para><screen><phrase role="commit-message">Add DocBook <tag>subjectset</tag> -&gt; OPF dc:<tag>subject</tag> mapping and tests</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files/orm.book.001.x&#x22EF;</literal></para><screen><phrase role="commit-message">Add DocBook <tag>date</tag> -&gt; OPF dc:date mapping and tests</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files/orm.book.001.x&#x22EF;</literal></para><screen><phrase role="commit-message">Add DocBook <tag>abstract</tag> -&gt; OPF dc:description mapping and tests</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Check in patch submitted by user to add opf:file-as attribute
+to dc:creator element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/dbtoepub</literal></para><screen><phrase role="commit-message">Adding --output option to dbtoepub based on user request</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl; bin/spec/epub_spec.rb</literal></para><screen><phrase role="commit-message">Cleaning and regularizing the generation of namespaced nodes for OPF, NCX, XHTML and other outputted filetypes (hat <tag>tip</tag> to bobstayton for pointing out the silly, incorrect code)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/refclass.xml</literal></para><screen><phrase role="commit-message">Remove a nesting of &lt;p&gt; inside &lt;p&gt; for <tag>refclass</tag> (made XHTML* invalid, made HTML silly)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/blockquotepre.xml</literal></para><screen><phrase role="commit-message">Added regression test and fix for XHTML validation problem with &lt;a&gt;s added inside &lt;<tag>blockquote</tag>&gt;; This potentially causes another problem (where something is referenced by has no <tag>anchor</tag>, but someone reporting that should cause the whole &lt;a id='thing'/&gt; thing to be reconsidered with modern browsers in mind.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Epub changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_HTMLHelp">
+<title>HTMLHelp</title>
+<para>The following changes have been made to the
+            <filename>htmlhelp</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: htmlhelp-common.xsl</literal></para><screen><phrase role="commit-message">Add support for generating <tag>olink</tag> target <tag>database</tag> for htmlhelp files.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTMLHelp changes for 1.75.0-->
+
+
+<sect2 xml:id="rn_V1.75.0_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: default.table.rules.xml</literal></para><screen><phrase role="commit-message">Add default setting for @rules attribute on HTML markup tables.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: bookmarks.collapse.xml</literal></para><screen><phrase role="commit-message">Added a new parameter, <parameter>bookmarks.collapse</parameter>, that controls the initial <tag>state</tag> 
+of the bookmark tree. When the parameter has a non-zero value (the default), 
+only the top-level bookmarks are displayed initially. Otherwise, the whole 
+tree of bookmarks is displayed. 
+
+This is implemented for FOP 0.9X. Closes FR #1792326.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: variablelist.term.properties.xml</literal></para><screen><phrase role="commit-message">Add new <parameter>variablelist.term.properties</parameter> to format terms, per 
+request # 1968513.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qanda.defaultlabel.xml</literal></para><screen><phrase role="commit-message">Add two new <parameter>qanda.defaultlabel</parameter> values so that numbered sections
+and numbered questions can be distinguished.  Satisfies
+Feature Request #1539045.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: index.links.to.section.xml</literal></para><screen><phrase role="commit-message">Change default to 1 to match past behavior.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: exsl.node.set.available.xml</literal></para><screen><phrase role="commit-message">Isolate this text for Xalan bug regarding exsl:node-set available.
+If it is ever fixed in Xalan, just fix it here.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: index.links.to.section.xml</literal></para><screen><phrase role="commit-message">Add param to control whether an <tag>index</tag> <tag>entry</tag> links to
+a <tag>section</tag> <tag>title</tag> or to the precise location of the
+<tag>indexterm</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossentry.list.item.properties.xml</literal></para><screen><phrase role="commit-message">New attribute list for <tag>glossentry</tag> in <tag>glossary</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: monospace.verbatim.font.width.xml</literal></para><screen><phrase role="commit-message">New parameter to support @width on <tag>programlisting</tag> and <tag>screen</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: highlight.source.xml</literal></para><screen><phrase role="commit-message">Updated and reorganized the description.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: page.margin.outer.xml; page.margin.inner.xml</literal></para><screen><phrase role="commit-message">Add caveat about XEP bug when writing-mode is right-to-left.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: article.appendix.title.properties.xml; writing.mode.xml; body.start.indent&#x22EF;</literal></para><screen><phrase role="commit-message">Change 'left' to 'start' and 'right' to 'end' to support right-to-left
+writing mode.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossdef.block.properties.xml; glossdef.list.properties.xml; glossterm.blo&#x22EF;</literal></para><screen><phrase role="commit-message">Add attribute-sets for formatting <tag>glossary</tag> terms and defs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossterm.separation.xml</literal></para><screen><phrase role="commit-message">Clarify the description.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: make.year.ranges.xml</literal></para><screen><phrase role="commit-message">Now handles <tag>year</tag> element containing a comma or dash without error.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_Highlighting">
+<title>Highlighting</title>
+<para>The following changes have been made to the
+            <filename>highlighting</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: README</literal></para><screen><phrase role="commit-message">Inclusion of highlighting code was simplified. Only one import is now necessary.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: README</literal></para><screen><phrase role="commit-message">Adding XSLTHL readme</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: common.xsl</literal></para><screen><phrase role="commit-message">Alternate attempt at sanely including/excluding XSLTHT code</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Highlighting changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_XSL-Saxon">
+<title>XSL-Saxon</title>
+<para>The following changes have been made to the
+            <filename>xsl-saxon</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: src/com/nwalsh/saxon/Text.java</literal></para><screen><phrase role="commit-message">Added a fix that prevents output of extra blank line.
+Hopefully this closes bug #894805.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Saxon changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_XSL-Xalan">
+<title>XSL-Xalan</title>
+<para>The following changes have been made to the
+            <filename>xsl-xalan</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: src/com/nwalsh/xalan/Text.java</literal></para><screen><phrase role="commit-message">Added a fix that prevents output of extra blank line.
+Hopefully this closes bug #894805.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Xalan changes for 1.75.0-->
+
+
+</sect1>
+
+<sect1 xml:id="V1.74.3">
+<title>Release Notes: 1.74.3</title>
+<para>This release fixes some bugs in the 1.74.2 release.</para>
+<para>See <filename>highlighting/README</filename> for XSLTHL usage instructions.</para>
+</sect1>
+<sect1 xml:id="V1.74.2">
+<title>Release Notes: 1.74.2</title>
+<para>This release fixes some bugs in the 1.74.1 release.</para>
+</sect1>
+
+<sect1 xml:id="V1.74.1">
+<title>Release Notes: 1.74.1</title>
+<para>This release includes important bug fixes and adds the following
+significant feature changes:
+<variablelist>
+<varlistentry>
+<term>Gentext</term>
+<listitem><para>Kirghiz locale added and Chinese translations have been simplified.</para></listitem>
+<listitem><para>Somme support for gentext and right-to-left languages has been added.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>FO</term>
+<listitem><para>Various bugs have been resolved. </para> </listitem>
+<listitem><para>Support for a new processing instruction: <markup>dbfo funcsynopsis-style</markup> has been added.  </para> </listitem>
+<listitem><para>Added new param <parameter>email.mailto.enabled</parameter> for FO output. Patch from Paolo Borelli.  </para>
+</listitem>
+<listitem><para>Support for documented metadata in fop1 mode has been added. </para>
+</listitem>
+
+</varlistentry>
+<varlistentry>
+<term>Highlighting</term>
+<listitem><para>Support for the latest version of XSLTHL 2.0 and some new language syntaxes have been added to a variety of outputs.</para></listitem>
+
+</varlistentry>
+
+<varlistentry>
+<term>Manpages</term>
+<listitem><para>Added man.output.better.ps.enabled param (zero default). It non-zero, no such
+markup is embedded in generated man pages, and no enhancements are
+included in the PostScript output generated from those man pages
+by the man -Tps <tag>command</tag>.</para></listitem>
+
+</varlistentry>
+
+
+<varlistentry>
+<term>HTML</term>
+<listitem><para>Support for <parameter>writing.mode</parameter> to set text direction and <parameter>alignment</parameter> based on document locale has been added.</para></listitem>
+<listitem>
+<para>Added a new top-level stylesheet module, chunk-changebars.xsl, to be 
+used for generating chunked output with highlighting based on change 
+(@revisionflag) markup. The module imports/includes the standard chunking 
+and changebars templates and contains additional logic for chunked output.
+See FRs #1015180 and #1819915.</para>
+</listitem>
+
+</varlistentry>
+<varlistentry>
+<term>ePub</term>
+<listitem>
+<para>Covers now look better in Adobe Digital Editions thanks to a patch from Paul Norton of Adobe</para>
+</listitem>
+<listitem><para>Cover handling now more generic (including limited DocBook 5.0 <markup>cover</markup> support thanks to patch contributed by Liza Daly.</para> </listitem>
+<listitem><para>Cover markup now carries more reliably into files destined for .mobi and the Kindle.</para> </listitem>
+<listitem><para><markup>dc:identifiers</markup> are now generated from more types of numbering schemes. </para></listitem>
+<listitem><para>Both SEO and semantic structure of chunked ePub output by ensuring that we always send out one and only one h1 in each XHTML chunk.</para></listitem>
+<listitem>
+<para>Primitive support for embedding a single font added.</para>
+</listitem>
+<listitem>
+<para>Support for embedding a CSS customizations added.</para>
+</listitem>
+
+</varlistentry>
+
+<varlistentry>
+<term>Roundtrip</term>
+
+<listitem>
+<para>Support for imagedata-metadata and <tag>table</tag> as images added.</para>
+</listitem>
+<listitem>
+<para>Support for imagedata-metadata and <tag>legalnotice</tag> as images added.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>Params</term>
+<listitem><para><parameter>man.output.better.ps.enabled</parameter> added for Manpages output </para></listitem>
+<listitem>
+<para><parameter>writing.mode.xml</parameter> added to set text direction.</para>
+</listitem>
+<listitem>
+<para>Added new param <parameter>email.mailto.enabled</parameter> for FO output.
+Patch from Paolo Borelli. Closes #2086321.</para>
+</listitem>
+<listitem>
+<para><parameter>highlight.source</parameter> upgraded to support the latest version of XSLTHL 2.0.</para>
+</listitem>
+
+</varlistentry>
+
+
+
+</variablelist>
+</para>
+<para>The following is a list of changes that have been made since the 1.74.0 release.</para>
+
+
+<sect2 xml:id="summary_V1.74.1_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the <filename>gentext</filename> code since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/ky.xml; Makefile</literal></para><screen><phrase role="commit-message">new Kirghiz locale from Ilyas Bakirov</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: locale/en.xml</literal></para><screen><phrase role="commit-message">Added "<tag>Acknowledgements</tag>".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Dongsheng Song: locale/zh_cn.xml</literal></para><screen><phrase role="commit-message">Simplified Chinese translation.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/lv.xml; locale/ca.xml; locale/pt.xml; locale/tr.xml; locale/af.xml;&#x22EF;</literal></para><screen><phrase role="commit-message">Add writing-mode gentext string to support right-to-left languages.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_FO">
+<title>FO</title>
+<para>The following changes have been made to the <filename>fo</filename> code since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>David Cramer: footnote.xsl</literal></para><screen><phrase role="commit-message">Added a check to confirm that a <tag>footnoteref</tag>'s linkend points to a <tag>footnote</tag>. Stylesheets stop processing if not and provide a useful error message.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: spaces.xsl</literal></para><screen><phrase role="commit-message">Convert spaces to fo:leader also in elements in the DB 5 namespace.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl; synop.xsl</literal></para><screen><phrase role="commit-message">Added support for a new processing instruction: dbfo funcsynopsis-style. 
+Closes bug #1838213.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Added new param <parameter>email.mailto.enabled</parameter> for FO output.
+Patch from Paolo Borelli. Closes #2086321.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: docbook.xsl</literal></para><screen><phrase role="commit-message">Added support for document metadata for fop1 (patch #2067318).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: param.ent; param.xweb; highlight.xsl</literal></para><screen><phrase role="commit-message">Upgraded to support the latest version of XSLTHL 2.0
+ -- nested markup in highlited code is now processed
+ -- it is no longer needed to specify path XSLTHL configuration file using Java property
+ -- support for new languages, including Perl, Python and Ruby was added</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the <filename>html</filename> code since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; docbook.xsl; param.ent; html.xsl</literal></para><screen><phrase role="commit-message">Add support for <parameter>writing.mode</parameter> to set text direction and <parameter>alignment</parameter> based on document locale.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: chunk-changebars.xsl</literal></para><screen><phrase role="commit-message">Added a new top-level stylesheet module, chunk-changebars.xsl, to be 
+used for generating chunked output with highlighting based on change 
+(@revisionflag) markup. The module imports/includes the standard chunking 
+and changebars templates and contains additional logic for chunked output.
+See FRs #1015180 and #1819915.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the <filename>manpages</filename> code since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: docbook.xsl</literal></para><screen><phrase role="commit-message">Put the following at the top of generated roff for each page:
+  \" t
+purpose is to explicitly tell AT&amp;T troff that the page needs to be
+pre-processed through tbl(1); groff can <tag>figure</tag> it out
+automatically, but apparently AT&amp;T troff needs to be explicitly told</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_Epub">
+<title>ePub</title>
+<para>The following changes have been made to the <filename>epub</filename> code since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl</literal></para><screen><phrase role="commit-message">Patch from Paul Norton of Adobe to get covers to look better in Adobe Digital Editions</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/v5cover.xml; bin/spec/sp&#x22EF;</literal></para><screen><phrase role="commit-message">Patch contributed by Liza Daly to make ePub <tag>cover</tag> handling more generic. Additionally
+DocBook 5.0's &lt;<tag>cover</tag>&gt; now has some limited support:
+
+- should <tag>reference</tag> a <tag>cover</tag> in the OPF guide for a DocBook 5.0 test document</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/files/isbn.xml; bin/spec/files/issn.xml; bin/spec/files/biblioid.&#x22EF;</literal></para><screen><phrase role="commit-message">Liza Daly reported that the dc:identifer-generation code was garbage (she was right).
+
+Added new tests:
+- should include at least one dc:identifier
+- should include an ISBN as URN for dc:identifier if an ISBN was in the metadata
+- should include an ISSN as URN for dc:identifier if an ISSN was in the metadata
+- should include an <tag>biblioid</tag> as a dc:identifier if an <tag>biblioid</tag> was in the metadata
+- should include a URN for a <tag>biblioid</tag> with @class attribute as a dc:identifier if an <tag>biblioid</tag> was in the metadata</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl; bin/spec/epub_spec.rb</literal></para><screen><phrase role="commit-message">Improve both SEO and  semantic structure of chunked ePub output by ensuring that
+we always send out one and only one h1 in each XHTML chunk.
+
+DocBook::Epub
+- should include one and only one &lt;h1&gt; in each HTML file in rendered ePub files
+for &lt;<tag>book</tag>&gt;s
+- should include one and only one &lt;h1&gt; in each HTML file in rendered ePub files
+for &lt;<tag>book</tag>&gt;s even if they do not have <tag>section</tag> markup</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files/orm.book.001.x&#x22EF;</literal></para><screen><phrase role="commit-message">Adding better support for covers in epub files destined for .mobi and the Kindle</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/dbtoepub; bin/lib/docbook.rb; bin/spec/files/DejaVuSerif.otf; docbook.&#x22EF;</literal></para><screen><phrase role="commit-message">Adding primitive support for embedding a single font</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/dbtoepub; bin/lib/docbook.rb; bin/spec/files/test_cust.xsl; bin/spec/e&#x22EF;</literal></para><screen><phrase role="commit-message">Adding support for user-specified customization layers in dbtoepub</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/dbtoepub; bin/spec/epub_regressions_spec.rb; bin/lib/docbook.rb; bin/s&#x22EF;</literal></para><screen><phrase role="commit-message">Adding CSS support to .epub target &amp; dbtoepub:
+    -c, --css [FILE]                 Use FILE for CSS on generated XHTML.
+
+
+DocBook::Epub
+...
+- should include a CSS <tag>link</tag> in HTML files when a CSS file has been provided
+- should include CSS file in .epub when a CSS file has been provided
+- should include a CSS <tag>link</tag> in OPF file when a CSS file has been provided</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Epub changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; template.xml; template.dot</literal></para><screen><phrase role="commit-message">added support for imagedata-metadata
+added support for <tag>table</tag> as images</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; normalise2sections.xsl; sections2blocks.xsl</literal></para><screen><phrase role="commit-message">Improved support for <tag>personname</tag> inlines.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; blocks2dbk.dtd; template.xml</literal></para><screen><phrase role="commit-message">Added support for <tag>legalnotice</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; wordml2normalise.xsl</literal></para><screen><phrase role="commit-message">added support for <tag>orgname</tag> in <tag>author</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: specifications.xml; supported.xml; blocks2dbk.xsl; wordml2normalise.xsl; dbk2w&#x22EF;</literal></para><screen><phrase role="commit-message">Updated specification.
+to-DocBook: add cols attribute to <tag>tgroup</tag>
+from-DocBook: fix for <tag>blockquote</tag> <tag>title</tag></phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Roundtrip changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_Params">
+<title>Params</title>
+<para>The following changes have been made to the <filename>params</filename> since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para>The change was to add man.output.better.ps.enabled parameter, with
+its default value set to zero.
+
+If the value of the man.output.better.ps.enabled parameter is
+non-zero, certain markup is embedded in each generated man page
+such that PostScript output from the man -Tps <tag>command</tag> for that
+page will include a number of enhancements designed to improve the
+quality of that output.
+
+If man.output.better.ps.enabled is zero (the default), no such
+markup is embedded in generated man pages, and no enhancements are
+included in the PostScript output generated from those man pages
+by the man -Tps <tag>command</tag>.
+
+WARNING: The enhancements provided by this parameter rely on
+features that are specific to groff (GNU troff) and that are not
+part of "classic" AT&amp;T troff or any of its derivatives. Therefore,
+any man pages you generate with this parameter enabled will be
+readable only on systems on which the groff (GNU troff) program is
+installed, such as GNU/Linux systems.  The pages will not not be
+readable on systems on with the classic troff (AT&amp;T troff) <tag>command</tag>
+is installed.
+
+NOTE: The value of this parameter only affects PostScript output
+generated from the man <tag>command</tag>. It has no effect on output
+generated using the FO backend.
+
+<tag>TIP</tag>: You can generate PostScript output for any man page by
+running the following <tag>command</tag>:
+
+man FOO -Tps &gt; FOO.ps
+
+You can then generate PDF output by running the following <tag>command</tag>:
+
+ps2pdf FOO.ps</para>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: writing.mode.xml</literal></para><screen><phrase role="commit-message">writing mode param used to set text direction.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: email.mailto.enabled.xml</literal></para><screen><phrase role="commit-message">Added new param <parameter>email.mailto.enabled</parameter> for FO output.
+Patch from Paolo Borelli. Closes #2086321.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: highlight.source.xml; highlight.xslthl.config.xml</literal></para><screen><phrase role="commit-message">Upgraded to support the latest version of XSLTHL 2.0
+ -- nested markup in highlited code is now processed
+ -- it is no longer needed to specify path XSLTHL configuration file using Java property
+ -- support for new languages, including Perl, Python and Ruby was added</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_Highlighting">
+<title>Highlighting</title>
+<para>The following changes have been made to the
+            <filename>highlighting</filename> code
+            since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: cpp-hl.xml; c-hl.xml; tcl-hl.xml; php-hl.xml; common.xsl; perl-hl.xml; delphi&#x22EF;</literal></para><screen><phrase role="commit-message">Upgraded to support the latest version of XSLTHL 2.0
+ -- nested markup in highlited code is now processed
+ -- it is no longer needed to specify path XSLTHL configuration file using Java property
+ -- support for new languages, including Perl, Python and Ruby was added</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Highlighting changes for 1.74.1-->
+
+</sect1>
+
+
+<sect1 xml:id="V1.74.0">
+<title>Release Notes: 1.74.0</title>
+<para>This release includes important bug fixes and adds the following
+significant feature changes:
+<variablelist>
+<varlistentry>
+<term>.epub target</term>
+<listitem><para>Paul Norton (Adobe) and Keith Fahlgren(O'Reilly Media) have donated code that generates <filename>.epub</filename> documents from
+DocBook input. An alpha-reference implementation in Ruby has also been provided.</para>
+<para>.epub is an open standard of the The International Digital Publishing Forum (IDPF), 
+a the trade and standards association for the digital publishing industry. </para> 
+<para>Read more about this target in <filename>epub/README</filename>
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>XHTML 1.1 target</term>
+<listitem><para>To support .epub output, a strict XHTML 1.1 target has been added. The stylesheets for this output are
+generated and are quite similar to the XHTML target.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>Gentext updates</term>
+<listitem><para>A number of locales have been updated.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>Roundtrip improvements</term>
+<listitem><para>Table, figure, template syncronization, and character style improvements have been made for WordML &amp; Pages. Support added for OpenOffice.org.</para></listitem>
+
+</varlistentry>
+
+<varlistentry>
+    <term>First implementation of a libxslt extension</term>
+    <listitem>
+      <para>A stylesheet extension for libxslt, written in Python, has been added. 
+      The extension is a function for adjusting column widths in CALS tables. See 
+      <filename>extensions/README.LIBXSLT</filename> for more information.</para>
+    </listitem>
+ </varlistentry>
+
+</variablelist>
+</para>
+<para>The following is a list of changes that have been made
+        since the 1.73.2 release.</para>
+
+<sect2 xml:id="V1.74.0_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the
+            <filename>gentext</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/id.xml</literal></para><screen><phrase role="commit-message">Checked in changes to Indonesion locale submitted by Euis Luhuanam a long time ago.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/lt.xml</literal></para><screen><phrase role="commit-message">Added changes to Lithuanian locate submitted a long time back by Nikolajus Krauklis.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/hu.xml</literal></para><screen><phrase role="commit-message">fixed error in lowercase.alpha definition in Hungarian locale</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/nb.xml</literal></para><screen><phrase role="commit-message">Corrected language code for nb locale, and restored missing "startquote" key.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/ja.xml</literal></para><screen><phrase role="commit-message">Committed changes to ja locale file, from Akagi Kobayashi. Adds bracket quotes around many xref instances that did not have them
+before.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile</literal></para><screen><phrase role="commit-message">"no" locale is now "nb"</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/nb.xml</literal></para><screen><phrase role="commit-message">Update Norwegian Bokm&#xE5;l translation. Thanks to Hans F. Nordhaug.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/no.xml; locale/nb.xml</literal></para><screen><phrase role="commit-message">per message from Hans F. Nordhaug, correct identifier for
+Norwegian Bokm&#xE5;l is "nb" (not "no") and has been for quite some
+time now...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/ja.xml</literal></para><screen><phrase role="commit-message">Converted ja.xml source file to use real unicode characters so
+that the actual glyphs so up when you edit it in a text editor
+(instead of the character references).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/ja.xml</literal></para><screen><phrase role="commit-message">Checked in changes to ja.xml locale file. Thanks to Akagi Kobayashi.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/it.xml</literal></para><screen><phrase role="commit-message">Changes from Federico Zenith</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Dongsheng Song: locale/zh_cn.xml</literal></para><screen><phrase role="commit-message">Added missing translations.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: l10n.xsl</literal></para><screen><phrase role="commit-message">Added new template "l10.language.name" for retrieving the
+English-language name of the lang setting of the current document.
+Closes #1916837. Thanks to Simon Kennedy.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">fixed syntax error</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">fixed a couple of typos</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">refined handling of cases where refentry "source" or "manual"
+metadata is missing or when we use fallback content instead. We
+now report a Warning if we use fallback content.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">don't use refmiscinfo@class=date value as fallback for refentry
+"source" or "manual" metadata fields</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">Made reporting of missing refentry metadata more quiet:
+
+  - we no longer report anything if usable-but-not-preferred
+    metadata is found; we just quietly use whatever we manage to
+    find
+
+  - we now only report missing "source" metadata if the refentry
+    is missing BOTH "source name" and "version" metadata; if it
+    has one but not the other, we use whichever one it has and
+    don't report anything as missing
+
+The above changes were made because testing with some "real world"
+source reveals that some authors are intentionally choosing to use
+"non preferred" markup for some metadata, and also choosing to
+omit "source name" or "version" metadata in there DocBook XML. So
+it does no good to give them pedantic reminders about what they
+already know...
+
+Also, changed code to cause "fixme" text to be inserted in output
+in particular cases:
+
+  - if we can't manage to find any "source" metadata at all, we
+    now put fixme text into the output
+
+  - if we can't manage to find any "manual" metadata a all, we 
+    now put fixme text into the output
+
+The "source" and "manual" metadata is necessary information, so
+buy putting the fixme stuff in the output, we alert users to the
+need problem of it being missing.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">When generating manpages output, we no longer report anything if
+the refentry source is missing date or pubdate content. In
+practice, many users intentionally omit the date from the source
+because they explicitly want it to be generated.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: l10n.xml</literal></para><screen><phrase role="commit-message">further change needed for switch from no locale to nb.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: common.xsl</literal></para><screen><phrase role="commit-message">Added support for orgname in authorgroup. Thanks to Camille
+B&#xE9;gnis.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile</literal></para><screen><phrase role="commit-message">"no" locale is now "nb"</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: stripns.xsl</literal></para><screen><phrase role="commit-message">Removed the template matching "ng:link|db:link" (in order to make @xlink:show 
+work with &lt;link&gt; elements). As far as I can tell, this template is no longer needed.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: entities.ent</literal></para><screen><phrase role="commit-message">Moved declaration of comment.block.parents entity to common/entities.ent.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Added an update the fix made in revision 7528 (handling of xref/link in no.anchor.mode mode).
+Having xref in title is not a problem as long as the target is not an ancestor element. 
+Closes bug #1838136.
+
+Note that an xref that is in a title and whose target is an ancestor element is still not 
+rendered in the TOC. This could be considered a bug, but on the other hand I cannot really
+see the point in having such an xref in a document.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Added a "not(ancestor::title)" test to work around "too many nested 
+apply-templates" problems when processing xrefs or links in no.anchor.mode mode.
+Hopefully, this closes bug #1811721.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Removed old template matching "link" in no.anchor.mode mode.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Process &lt;link&gt; in no.anchor.mode mode with the same template as &lt;xref&gt;. 
+Closes bug #1759205 (Empty link in no.anchor.mode mode).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">In no.anchor.mode mode, do not output anchors for elements that are descendants 
+of &lt;title&gt;. Previously, having inline elements with @id/@xml:id in &lt;title&gt;s 
+resulted in anchors both in the TOC and in the main flow. Closes bug #1797492.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem> <para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Updated documentation for keep-together.</phrase></screen> </listitem>
+<listitem> <para><literal>Mauritz Jeanson: task.xsl</literal></para><screen><phrase role="commit-message">Enabled use of the keep-together PI on <tag>task</tag> elements.</phrase></screen> </listitem>
+<listitem>
+<para><literal>Robert Stayton: index.xsl</literal></para><screen><phrase role="commit-message">FOP1 requires fo:wrapper for inline index entries, not fo:inline.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: index.xsl</literal></para><screen><phrase role="commit-message">Fixed non-working inline.or.block template for indexterm wrappers.
+Add fop1 to list of processors using inline.or.block.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: table.xsl</literal></para><screen><phrase role="commit-message">Fixed bug #1891965 (colsep in entytbl not working).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Added support for title in revhistory. Closes bug #1842847.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Small doc cleanup (dbfo float-type).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Insert commas between multiple copyright holders.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: autotoc.xsl; division.xsl</literal></para><screen><phrase role="commit-message">Added modifications to support nested set elements. See bug #1853172.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: glossary.xsl</literal></para><screen><phrase role="commit-message">Added normalize-space to xsl:sorts to avoid missorting of glossterms due to stray leading spaces.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: glossary.xsl</literal></para><screen><phrase role="commit-message">Fixed bug #1854199: glossary.xsl should use the sortas attribute on glossentry</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Added a template for citebiblioid. The hyperlink target is the parent of the referenced biblioid,
+and the "hot text" is the biblioid itself enclosed in brackets.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Moved declaration of comment.block.parents entity to common/entities.ent.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: docbook.xsl</literal></para><screen><phrase role="commit-message">Updated message about unmatched element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: param.xweb</literal></para><screen><phrase role="commit-message">Added link to profiling chapter of TCG.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: refentry.xsl</literal></para><screen><phrase role="commit-message">Fixed typo (refsynopsysdiv -&gt; refsynopsisdiv).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: fop.xsl; fop1.xsl; ptc.xsl; xep.xsl</literal></para><screen><phrase role="commit-message">Added test to check generate.index param when generating pdf bookmarks</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: graphics.xsl</literal></para><screen><phrase role="commit-message">Added support for MathML in imagedata.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: math.xsl</literal></para><screen><phrase role="commit-message">Removed unnecessary extra test condition in test express that
+checks for passivetex.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: math.xsl</literal></para><screen><phrase role="commit-message">Don't use fo:instream-foreign-object if we are processing with
+passivetex. Closes #1806899. Thanks to Justus Piater.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: component.xsl</literal></para><screen><phrase role="commit-message">Added code to output a TOC for an appendix in an article when 
+generate.toc='article/appendix toc'. Closes bug #1669658.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Dongsheng Song: biblio-iso690.xsl</literal></para><screen><phrase role="commit-message">Change encoding from "windows-1250" to "UTF-8".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Updated documentation for dbfo_label-width.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: lists.xsl</literal></para><screen><phrase role="commit-message">Added support for the dbfo_label-width PI in calloutlists.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: biblio.xsl</literal></para><screen><phrase role="commit-message">Support finding glossary database entries inside bibliodivs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: formal.xsl</literal></para><screen><phrase role="commit-message">Complete support for &lt;?dbfo pgwide="1"?&gt; for informal
+elements too.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: table.xsl</literal></para><screen><phrase role="commit-message">In the table.block template, added a check for the dbfo_keep-together PI, so that 
+a table may break (depending on the PI value) at a page break. This was needed 
+since the outer fo:block that surrounds fo:table has keep-together.within-column="always" 
+by default, which prevents the table from breaking. Closes bug #1740964 (Titled 
+table does not respect dbfo PI).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Added a few missing @role="tcg".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Use normalize-space() in glossterm comparisons (as in html/inline.xsl).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: autoidx.xsl</literal></para><screen><phrase role="commit-message">Removed the [&amp;scope;] predicate from the target variable in the template with name="reference".
+This filter was the cause of missing index backlinks when @zone and @type were used on indexterms,
+with index.on.type=1. Closes bug #1680836.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl; xref.xsl; footnote.xsl</literal></para><screen><phrase role="commit-message">Added capability in FO output for displaying URLs for all
+hyperlinks (elements marked up with xlink:href attributes) in the
+same way as URLs for ulinks are already handled (which is to say,
+either inline or as numbered footnotes).
+
+Background on this change:
+DocBook 5 allows "ubiquitous" linking, which means you can make
+any element a hyperlink just by adding an xlink:href attribute to
+it, with the value set to an external URL. That's in contrast to
+DocBook 4, which only allows you to use specific elements (e.g.,
+the link and ulink elements) to mark up hyperlinks.
+
+The existing FO stylesheets have a mechanism for handling display
+of URLs for hyperlinks that are marked up with ulink, but they did
+not handle display of URLs for elements that were marked up with
+xlink:href attributes. This change adds handling for those other
+elements, enabling the URLs they link to be displayed either
+inline or as numbered footnotes (depending on what values the user
+has the ulink.show and ulink.footnotes params set to).
+
+Note that this change only adds URL display support for elements
+that call the simple.xlink template -- which currently is most
+(but not all) inline elements.
+
+This change also moves the URL display handling out of the ulink
+template and into a new "hyperlink.url.display" named template;
+the ulink template and the simple.xlink named template now both
+call the hyperlink.url.display template.
+
+Warning: In the stylesheet code that determines what footnote
+number to assign to each footnote or external hyperlink, there is
+an XPath expression for determining whether a particular
+xlink:href instance is an external hyperlink; that expression is
+necessarily a bit complicated and further testing may reveal that
+it doesn't handle all cases as expected -- so some refinements to
+it may need to be done later.
+
+Closes #1785519. Thanks to Ken Morse for reporting and
+troubleshooting the problem.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem> <para><literal>Keith Fahlgren: inline.xsl; synop.xsl</literal></para><screen><phrase role="commit-message">Work to make HTML and XHTML targets more valid</phrase></screen> </listitem>
+<listitem> <para><literal>Keith Fahlgren: table.xsl</literal></para><screen><phrase role="commit-message">Add better handling for tables that have footnotes in the titles</phrase></screen> </listitem>
+<listitem> <para><literal>Keith Fahlgren: biblio.xsl</literal></para><screen><phrase role="commit-message">Add anchors to bibliodivs</phrase></screen> </listitem>
+<listitem>
+<para><literal>Keith Fahlgren: formal.xsl; Makefile; htmltbl.xsl</literal></para><screen><phrase role="commit-message">Initial checkin/merge of epub target from work provided by Paul Norton of Adobe
+and Keith Fahlgren of O'Reilly.</phrase></screen>
+<para>This change includes new code for generating the XHTML 1.1 target sanely.</para>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: biblio.xsl</literal></para><screen><phrase role="commit-message">Added code for creating URLs from biblioids with @class="doi" (representing Digital 
+Object Identifiers). See FR #1934434 and http://doi.org.
+
+To do: 1) Add support for FO output. 2) Figure out how @class="doi" should be handled 
+for bibliorelation, bibliosource and citebiblioid.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Norman Walsh: formal.xsl</literal></para><screen><phrase role="commit-message">Don't use xsl:copy because it forces the resulting element to be in the same namespace as the source element; in the XHTML stylesheets, that's wrong. But the HTML-to-XHTML converter does the right thing with literal result elements, so use one of them.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile</literal></para><screen><phrase role="commit-message">Added checks and hacks to various makefiles to enable building
+under Cygwin. This stuff is ugly and maybe not worth the mess and
+trouble, but does seem to work as expected and not break anything
+else.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: docbook.xsl</literal></para><screen><phrase role="commit-message">added "exslt" namespace binding to html/docbook.xsl file (in
+addition to existing "exsl" binding. reason is because lack of it
+seems to cause processing problems when using the profiled
+version of the stylsheet</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Norman Walsh: chunk-common.xsl</literal></para><screen><phrase role="commit-message">Rename link</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: table.xsl</literal></para><screen><phrase role="commit-message">Added a fix to make rowsep apply to the last row of thead in entrytbl.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl</literal></para><screen><phrase role="commit-message">Simplified and streamlined handling of output for ANSI-style
+funcprototype output, to correct a problem that was causing type
+data to be lost in the output parameter definitions. For example,
+for an instance like this:
+  &lt;paramdef&gt;void *&lt;parameter&gt;dataptr&lt;/parameter&gt;[]&lt;/paramdef&gt;
+... the brackets (indicating an array type) were being dropped.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl</literal></para><screen><phrase role="commit-message">Changed HTML handling of K&amp;R-style paramdef output. The parameter
+definitions are no longer output in a table (though the prototype
+still is). The reason for the change is that the
+kr-tabular-funcsynopsis-mode template was causing type data to be
+lost in the output parameter definitions. For example, for an
+instance like this:
+  &lt;paramdef&gt;void *&lt;parameter&gt;dataptr&lt;/parameter&gt;[]&lt;/paramdef&gt;
+... the brackets (indicating an array type) were being dropped.
+The easiest way to deal with the problem is to not try to chop up
+the parameter definitions and display them in table format, but to
+instead just output them as-is. May not look quite as pretty, but
+at least we can be sure no information is being lost...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: pi.xsl</literal></para><screen><phrase role="commit-message">updated wording of doc for funcsynopsis-style PI</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: param.xweb; param.ent; synop.xsl</literal></para><screen><phrase role="commit-message">Removed the funcsynopsis.tabular.threshold param. It's no longer
+being used in the code and hasn't been since mid 2006.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: graphics.xsl</literal></para><screen><phrase role="commit-message">Added support for the img.src.path parameter for SVG graphics. Closes bug #1888169.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: chunk-common.xsl</literal></para><screen><phrase role="commit-message">Added missing space.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Norman Walsh: component.xsl</literal></para><screen><phrase role="commit-message">Fix bug where component titles inside info elements were not handled properly</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: pi.xsl</literal></para><screen><phrase role="commit-message">Moved dbhtml_stop-chunking embedded doc into alphabetical order,
+fixed text of TCG section it see-also'ed.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: pi.xsl</literal></para><screen><phrase role="commit-message">Added support for &lt;?dbhtml stop-chunking?&gt; processing instruction</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: chunk-common.xsl; pi.xsl</literal></para><screen><phrase role="commit-message">Added support for &lt;?dbhtml stop-chunking?&gt; processing instruction</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: glossary.xsl</literal></para><screen><phrase role="commit-message">Fixed bug #1854199: glossary.xsl should use the sortas attribute on glossentry. Also added normalize-space to avoid missorting due to stray leading spaces.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Added a template for citebiblioid. The hyperlink target is the parent of the referenced biblioid,
+and the "hot text" is the biblioid itself enclosed in brackets.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Added support for @xlink:show in the simple.xlink template. The "new" and "replace" 
+values are supported (corresponding to values of "_blank" and "_top" for the 
+ulink.target parameter). I have assumed that @xlink:show should override ulink.target
+for external URI links. This closes bugs #1762023 and #1727498.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Moved declaration of comment.block.parents entity to common/entities.ent.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: param.xweb</literal></para><screen><phrase role="commit-message">Added link to profiling chapter of TCG.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Dongsheng Song: biblio-iso690.xsl</literal></para><screen><phrase role="commit-message">Change encoding from "windows-1250" to "UTF-8".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: biblio.xsl</literal></para><screen><phrase role="commit-message">Add support in biblio collection to entries in bibliodivs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Added missing @role="tcg".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: chunk-common.xsl; titlepage.xsl</literal></para><screen><phrase role="commit-message">Refactored legalnotice/revhistory chunking, so that the use.id.as.filename 
+parameter as well as the dbhtml_filename PI are taken into account. A new named
+template in titlepage.xsl is used to compute the filename.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: chunk-common.xsl; titlepage.xsl</literal></para><screen><phrase role="commit-message">An update to the fix for bug #1790495 (r7433):
+The "ln-" prefix is output only when the legalnotice doesn't have an
+@id/@xml:id, in which case the stylesheets generate an ID value, 
+resulting in a filename like "ln-7e0fwgj.html". This is useful because 
+without the prefix, you wouldn't know that the file contained a legalnotice. 
+The same logic is also applied to revhistory, using an "rh-" prefix.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: autoidx.xsl</literal></para><screen><phrase role="commit-message">Removed the [&amp;scope;] predicate from the target variable in the template with name="reference".
+This filter was the cause of missing index backlinks when @zone and @type were used on indexterms,
+with index.on.type=1. Closes bug #1680836.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Added 'ln-' prefix to the name of the legalnotice chunk, in order to match the 
+&lt;link href"..."&gt; that is output by make.legalnotice.head.links (chunk-common.xsl).
+Modified the href attribute on the legalnotice link.
+Closes bug #1790495.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">slightly adjusted spacing around admonition markers</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl; utility.xsl</literal></para><screen><phrase role="commit-message">make sure refsect3 titles are preceded by a line of space, and
+make the indenting of their child content less severe</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">only indent verbatim environments in TTY output, not in non-TTY/PS</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">made another adjustment to correct vertical alignment of admonition marker</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl; other.xsl</literal></para><screen><phrase role="commit-message">Adjusted/corrected alignment of adominition marker in PS/non-TTY output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl</literal></para><screen><phrase role="commit-message">For PS/non-TTY output, display footnote/endnote numbers in
+superscript.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: table.xsl; synop.xsl; utility.xsl</literal></para><screen><phrase role="commit-message">Changed handling of hanging indents for cmdsynopsis, funcsynopsis,
+and synopfragment such that they now look correct in non-TTY/PS
+output. We now use the groff \w escape to hang by the actual width
+-- in the current font -- of the command, funcdef, or
+synopfragment references number (as opposed to hanging by the
+number of characters). This rendering in TTY output remains the
+same, since the width in monospaced TTY output is the same as the
+number of characters.
+
+Also, created new synopsis-block-start and synopsis-block-end
+templates to use for cmdsynopsis and funcsynopsis instead of the
+corresponding verbatim-* templates.
+
+Along with those changes, also corrected a problem that caused the
+content of synopfragment to be dropped, and made a
+vertical-spacing change to adjust spacing around table titles and
+among sibling synopfragment instances.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">use common l10.language.name template to retrieve English-language name</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl; inline.xsl</literal></para><screen><phrase role="commit-message">added comment in code explaining why we don't put filename output
+in italic (despite the fact that man guidelines say we should)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl</literal></para><screen><phrase role="commit-message">put filename output in monospace instead of italic</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl</literal></para><screen><phrase role="commit-message">put cmdsynopsis in monospace</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl</literal></para><screen><phrase role="commit-message">removed template match for literal. template matches for monospace
+inlines are all imported from the HTML stylesheet</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">don't indent verbatim environments that are descendants of
+refsynopsisdiv, not put backgrounds behind them</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl</literal></para><screen><phrase role="commit-message">set output of the literal element in monospace. this causes all
+inline monospace instances in the git man pages to be set in
+monospace (since DocBook XML source for git docs is generated with
+asciidoc and asciidoc consistently outputs only &lt;literal&gt; for
+inline monospace (not &lt;command&gt; or &lt;code&gt; or anything else).
+Of course this only affects non-TTY output...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">Added inline.monoseq named template.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">don't bother using a custom register to store the previous
+font-family value when setting blocks of text in code font; just
+use \F[] .fam with no arg to switch back</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl</literal></para><screen><phrase role="commit-message">put links in blue in PS output (note that this matches how groff
+renders content marked up with the .URL macro)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">removed man.links.are.underlined and added man.font.links. Also,
+changed the default font formatting for links to bold.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Added new param man.base.url.for.relative.links .. specifies a
+base URL for relative links (for ulink, @xlink:href, imagedata,
+audiodata, videodata) shown in the generated NOTES section of
+man-page output. The value of man.base.url.for.relative.links is
+prepended to any relative URI that is a value of ulink url,
+xlink:href, or fileref attribute.
+
+If you use relative URIs in link sources in your DocBook refentry
+source, and you leave man.base.url.for.relative.links unset, the
+relative links will appear "as is" in the NOTES section of any
+man-page output generated from your source. That's probably not
+what you want, because such relative links are only usable in the
+context of HTML output. So, to make the links meaningful and
+usable in the context of man-page output, set a value for
+man.base.url.for.relative.links that points
+to the online version of HTML output generated from your DocBook
+refentry source. For example:
+
+  &lt;xsl:param name="man.base.url.for.relative.links"
+  &gt;http://www.kernel.org/pub/software/scm/git/docs/&lt;/xsl:param&gt;</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">If a source refentry contains a Documentation or DOCUMENTATION
+section, don't report it as having missing AUTHOR information.
+Also, if missing a contrib/personblurb for a person or org, report
+pointers to http://docbook.sf.net/el/personblurb and to
+http://docbook.sf.net/el/contrib</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">If we encounter an author|editor|othercredit instance that lacks a
+personblurb or contrib, report it to the user (because that means
+we have no information about that author|editor|othercredit to
+display in the generated AUTHOR|AUTHORS section...)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl; docbook.xsl; other.xsl</literal></para><screen><phrase role="commit-message">if we can't find any usable author data, emit a warning and insert
+a fixme in the output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">fixed bug in indenting of output for contrib instances in AUTHORS
+section. Thanks to Daniel Leidert and the fglrx docs for exposing
+the bug.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">for a para or simpara that is the first child of a callout,
+suppress the .sp or .PP that would normally be output (because in
+those cases, the output goes into a table cell, and the .sp or .PP
+markup causes a spurious linebreak before it when displayed</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Added support for rendering co callouts and calloutlist instances.
+So you can now use simple callouts -- marking up programlisting
+and such with co instances -- and have the callouts displayed in
+man-page output. ("simple callouts" means using co@id and
+callout@arearefs pointing to co@id instances; in man/roff output,
+we can't/don't support markup that uses areaset and area)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">only put a line of space after a verbatim if it's followed by a
+text node or a paragraph</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">put verbatim environments in slightly smaller font in non-TTY
+output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">minor whitespace-only reformatting of lists.xsl source</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Made refinements/fixes to output of orderedlist and itemizedlist
+-- in part, to get mysql man pages to display correctly. This
+change causes a "\c" continuation marker to be added between
+listitem markers and contents (to ensure that the content remains
+on the same line as the marker when displayed)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">put a line of vertical space after all verbatim output that has
+sibling content following it (not just if that sibling content is
+a text node)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">refined spacing around titles for admonitions</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl; other.xsl</literal></para><screen><phrase role="commit-message">Deal with case of verbatim environments that have a linebreak
+after the opening tag. Assumption is that users generally don't
+want that linebreak to appear in output, so we do some groff
+hackery to mess with vertical spacing and close the space.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl</literal></para><screen><phrase role="commit-message">indexterm instances now produce groff comments like this:
+
+  .\" primary: secondary: tertiary
+
+remark instances, if non-empty, now produce groff comments</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: charmap.groff.xsl; other.xsl</literal></para><screen><phrase role="commit-message">convert no-break space character to groff "\ \&amp;" (instead of just
+"\ "). the reason is that if a space occurs at the end of a line,
+our processing causes it to be eaten. a real-world case of this is
+the mysql(1) man page. appending the "\&amp;" prevents that</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">output "sp" before simpara output, not after it (outputting it
+after results in undesirable whitespace in particular cases; for
+example, in the hg/mercurial docs</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: table.xsl; synop.xsl; utility.xsl</literal></para><screen><phrase role="commit-message">renamed from title-preamble to pinch.together and replaced "sp -1"
+between synopsis fragments with call to pinch.together instead</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: table.xsl</literal></para><screen><phrase role="commit-message">use title-preamble template for table titles (instead of "sp -1"
+hack), and "sp 1" after all tables (instead of just "sp"</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">created title-preamble template for suppressing line spacing after
+headings</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">further refinement of indenting in AUTHORS section</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl; other.xsl</literal></para><screen><phrase role="commit-message">refined handling of admonitions</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Use RS/RE in another place where we had IP ""</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">Replace (ab)use of IP with "sp -1" in AUTHORS section with RS/RE
+instead.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: table.xsl; synop.xsl; info.xsl</literal></para><screen><phrase role="commit-message">changed all instances of ".sp -1n" to ".sp -1"</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">add extra line before SH heads only in non-TTY output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">Reworked output for admonitions (caution, important, note, tip,
+warning). In TTY output, admonitions now get indented. In non-TTY
+output, a colored marker (yellow) is displayed next to them.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">Added BM/EM macros for putting a colored marker in margin next to
+a block of text.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">created make.bold.title template by moving title-bolding part out
+from nested-section-title template. This allows the bolding to
+also be used by the template for formatting admonitions</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">put .br before copyright contents to prevent them from getting run in</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl; other.xsl; utility.xsl</literal></para><screen><phrase role="commit-message">made point size of output for Refsect2 and Refsect3 heads bigger</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">put slightly more space between SH head and underline in non-TTY
+output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: param.xweb; param.ent; other.xsl</literal></para><screen><phrase role="commit-message">Added the man.charmap.subset.profile.english parameter and refined
+the handling of charmap subsets to differentiate between English
+and non-English source.
+
+This way charmap subsets are now handled is this:
+
+If the value of the man.charmap.use.subset parameter is non-zero,
+and your DocBook source is not written in English (that is, if its
+lang or xml:lang attribute has a value other than en), then the
+character-map subset specified by the man.charmap.subset.profile
+parameter is used instead of the full roff character map.
+
+Otherwise, if the lang or xml:lang attribute on the root element
+in your DocBook source or on the first refentry element in your
+source has the value en or if it has no lang or xml:lang
+attribute, then the character-map subset specified by the
+man.charmap.subset.profile.english parameter is used instead of
+man.charmap.subset.profile.
+
+The difference between the two subsets is that
+man.charmap.subset.profile provides mappings for characters in
+Western European languages that are not part of the Roman
+(English) alphabet (ASCII character set).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">Various updates, mainly related to uppercasing SH titles:
+
+  - added a "Language: " metadata line to the top comment area of
+    output man pages, to indicate the language the page is in
+
+  - added a "toupper" macro of doing locale-aware uppercasing of
+    SH titles and cross-references to SH titles; the mechanism
+    relies on the uppercase.alpha and lowercase.alpha DocBook
+    gentext keys to do locale-aware uppercasing based on the
+    language the page is written in
+
+  - added a "string.shuffle" template, which provides a library
+    function for "shuffling" two strings together into a single
+    string; it takes the first character for the first string, the
+    first character from second string, etc. The only current use
+    for it is to generate the argument for the groff tr request
+    that does string uppercasing.
+
+  - added make.tr.uppercase.arg and make.tr.normalcase.arg named
+    templates for use in generating groff code for uppercasing and
+    "normal"-casing SH titles
+
+  - made the BB/BE "background drawing" macros have effect only in
+    non-TTY output
+
+  - output a few comments in the top part of source</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">removed some leftover kruft</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">To create the name(s) for each man page, we now replace any spaces
+in the refname(s) with underscores. This ensures that tools like
+lexgrog(1) will be able to parse the name (lexgrog won't parse
+names that contain spaces).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: docbook.xsl</literal></para><screen><phrase role="commit-message">Put a comment into source of man page to indicate where the main
+content starts. (We now have a few of macro definitions at the
+start of the source, so putting this comment in helps those that
+might be viewing the source.)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">refined mechanism for generating SH titles</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: charmap.groff.xsl</literal></para><screen><phrase role="commit-message">Added zcaron, Zcaron, scaron, and Scaron to the groff character map.
+This means that generated Finnish man pages will no longer contain
+any raw accented characters -- they'll instead by marked up with
+groff escapes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl; utility.xsl</literal></para><screen><phrase role="commit-message">corrected a regression I introduced about a year ago that caused
+dots to be output just as "\." -- instead needs to be "\&amp;." (which
+is what it will be now, after this change)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">Changed backend handling for generating titles for SH sections and
+for cross-references to those sections. This should have no effect
+on TTY output (behavior should remain the same hopefully) but
+results in titles in normal case (instead of uppercase) in PS
+output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">use make.subheading template to make subheadings for AUTHORS and
+COPYRIGHT sections (instead of harcoding roff markup)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">put code font around programlisting etc.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl; docbook.xsl</literal></para><screen><phrase role="commit-message">embed custom macro definitions in man pages, plus wrap synopsis in
+code font</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl</literal></para><screen><phrase role="commit-message">use the make.subheading template to generated SH subheading for
+endnotes section.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Added some templates for generating if-then-else conditional
+markup in groff, so let's use those instead of hard-coding it in
+multiple places...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl; utility.xsl</literal></para><screen><phrase role="commit-message">Initial checkin of some changes related to making PS/PDF output
+from "man -l -Tps" look better. The current changes:
+
+  - render synopsis and verbatim sections in a monospace/code font
+
+  - put a light-grey background behind all programlisting, screen,
+    and literallayout instances
+
+  - prevent SH heads in PS output from being rendered in uppercase
+    (as they are in console output)
+
+  - also display xrefs to SH heads in PS output in normal case
+    (instead of uppercase)
+
+  - draw a line under SH heads in PS output
+
+The changes made to the code to support the above features were:
+
+  - added some embedded/custom macros: one for conditionally
+    upper-casing SH x-refs, one for redefining the SH macro
+    itself, with some conditional handling for PS output, and
+    finally a macro for putting a background/screen (filled box)
+    around a block of text (e.g., a program listing) in PS output
+
+  - added utility templates for wrapping blocks of text in code
+    font; also templates for inline code font</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: refentry.xsl</literal></para><screen><phrase role="commit-message">refpurpose nodes now get apply-templates instead of just normalize-space().</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Fixed alignment of first lined of text for each listitem in
+orderedlist output for TTY. Existing code seemed to have been
+causing an extra undesirable space to appear.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Wrapped some roff conditionals around roff markup for orderedlist
+and itemizedlist output, so that the lists look acceptable in PS
+output as well as TTY.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: pi.xsl; synop.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Added the man.funcsynopsis.style parameter. Has the same effect in
+manpages output as the funcsynopsis.style parameter has in HTML
+output -- except that its default value is 'ansi' instead of 'kr'.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl</literal></para><screen><phrase role="commit-message">Reworked handling of K&amp;R funcprototype output. It no longer relies
+on the HTML kr-tabular templates, but instead just does direct
+transformation to roff. For K&amp;R output, it displays the paramdef
+output in an indented list following the prototype.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl</literal></para><screen><phrase role="commit-message">Properly integrated handling for K&amp;R output into manpages
+stylesheet. The choice between K&amp;R output and ANSI output is
+currently controlled through use of the (HTML) funcsynopsis.style
+parameter. Note that because the mechanism does currently rely on
+funcsynopsis.style, the default in manpages output is now K&amp;R
+(because that's the default of that param). But I suppose I ought
+to create a man.funcsynopsis.style and make the default for that
+ANSI (to preserve the existing default behavior).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: docbook.xsl</literal></para><screen><phrase role="commit-message">added manpages/pi.xsl file</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: .cvsignore; pi.xsl</literal></para><screen><phrase role="commit-message">Added "dbman funcsynopsis-style" PI and incorporated it into the
+doc build.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">Fixed regression that caused an unescaped dash to be output
+between refname and refpurpose content. Closes bug #1894244.
+Thanks to Daniel Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">Fixed problem with dots being escaped in filenames of generated
+man files. Closes #1827195. Thanks to Daniel Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl</literal></para><screen><phrase role="commit-message">Added support for processing structfield (was appearing in roff
+output surrounded by HTML &lt;em&gt; tags; fixed so that it gets roff
+ital markup). Closes bug #1858329.  Thanks to Sam Varshavchik.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Epub">
+<title>Epub</title>
+<para>The following changes have been made to the
+            <filename>epub</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem> <para><literal>Keith Fahlgren: bin/spec/README; bin/spec/epub_realbook_spec.rb</literal></para><screen><phrase role="commit-message">'Realbook' spec now passes</phrase></screen> </listitem>
+<listitem> <para><literal>Keith Fahlgren: bin/dbtoepub; README; bin/spec/README; bin/lib/docbook.rb; bin/spec/epub_r&#x22EF;</literal></para><screen><phrase role="commit-message">Very primitive Windows support for dbtoepub <tag>reference</tag> implementation; README for running tests and for the .epub target in general; shorter realbook test document (still fails for now)</phrase></screen> </listitem>
+<listitem> <para><literal>Keith Fahlgren: bin/dbtoepub; bin/spec/epub_regressions_spec.rb; bin/lib/docbook.rb; bin/s&#x22EF;</literal></para><screen><phrase role="commit-message">Changes to OPF spine to not duplicate idrefs for documents with parts not at the root; regression specs for same</phrase></screen> </listitem>
+<listitem> <para><literal>Keith Fahlgren: docbook.xsl</literal></para><screen><phrase role="commit-message">Fixing linking to <tag>cover</tag> @id, distinct from other needs of cover-image-id (again, thanks to Martin Goerner)</phrase></screen> </listitem>
+<listitem> <para><literal>Keith Fahlgren: docbook.xsl</literal></para><screen><phrase role="commit-message">Updating the <tag>title</tag> of the <tag>toc</tag> element in the guide to be more explicit (thanks to Martin Goerner)</phrase></screen> </listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/examples/amasque_exploded/content.opf; bin/spec/examples/amasque_&#x22EF;</literal></para><screen><phrase role="commit-message">Initial checkin/merge of epub target from work provided by Paul Norton of Adobe
+and Keith Fahlgren of O'Reilly.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl</literal></para><screen><phrase role="commit-message">== General epub test support
+
+$ spec -O ~/.spec.opts spec/epub_spec.rb 
+
+DocBook::Epub
+- should be able to be created
+- should fail on a nonexistent file
+- should be able to render to a file
+- should create a file after rendering
+- should have the correct mimetype after rendering
+- should be valid .epub after rendering an article
+- should be valid .epub after rendering an article without sections
+- should be valid .epub after rendering a book
+- should be valid .epub after rendering a book even if it has one graphic
+- should be valid .epub after rendering a book even if it has many graphics
+- should be valid .epub after rendering a book even if it has many duplicated graphics
+- should report an empty file as invalid
+- should confirm that a valid .epub file is valid
+- should not include PDFs in rendered epub files as valid image inclusions
+- should include a TOC link in rendered epub files for &lt;book&gt;s
+
+Finished in 20.608395 seconds
+
+15 examples, 0 failures
+
+
+== Verbose epub test coverage against _all_ of the testdocs 
+
+Fails on only (errors truncated):
+1)
+'DocBook::Epub should be able to render a valid .epub for the test document /Users/keith/work/docbook-dev/trunk/xsl/epub/bin/spec/testdocs/calloutlist.003.xml [30]' FAILED
+'DocBook::Epub should be able to render a valid .epub for the test document /Users/keith/work/docbook-dev/trunk/xsl/epub/bin/spec/testdocs/cmdsynopsis.001.xml [35]' FAILED
+....
+
+Finished in 629.89194 seconds
+
+224 examples, 15 failures
+
+224 examples, 15 failures yields 6% failure rate</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Epub changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_HTMLHelp">
+<title>HTMLHelp</title>
+<para>The following changes have been made to the
+            <filename>htmlhelp</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: htmlhelp-common.xsl</literal></para><screen><phrase role="commit-message">Added &lt;xsl:with-param name="quiet" select="$chunk.quietly"/&gt; to calls to
+the write.chunk, write.chunk.with.doctype, and write.text.chunk templates.
+This makes chunk.quietly=1 suppress chunk filename messages also for help 
+support files (which seems to be what one would expect). See bug #1648360.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTMLHelp changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Eclipse">
+<title>Eclipse</title>
+<para>The following changes have been made to the
+            <filename>eclipse</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>David Cramer: eclipse.xsl</literal></para><screen><phrase role="commit-message">Use sortas attributes (if they exist) when sorting indexterms</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: eclipse.xsl</literal></para><screen><phrase role="commit-message">Added support for indexterm/see in eclipse index.xml</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: eclipse.xsl</literal></para><screen><phrase role="commit-message">Added &lt;xsl:with-param name="quiet" select="$chunk.quietly"/&gt;
+to helpidx template.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: eclipse.xsl</literal></para><screen><phrase role="commit-message">Generate index.xml file and add related goo to plugin.xml file. Does not yet support see and seealso.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: eclipse.xsl</literal></para><screen><phrase role="commit-message">Added &lt;xsl:with-param name="quiet" select="$chunk.quietly"/&gt; to calls to
+the write.chunk, write.chunk.with.doctype, and write.text.chunk templates.
+This makes chunk.quietly=1 suppress chunk filename messages also for help 
+support files (which seems to be what one would expect). See bug #1648360.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Eclipse changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_JavaHelp">
+<title>JavaHelp</title>
+<para>The following changes have been made to the
+            <filename>javahelp</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: javahelp.xsl</literal></para><screen><phrase role="commit-message">Added &lt;xsl:with-param name="quiet" select="$chunk.quietly"/&gt; to calls to
+the write.chunk, write.chunk.with.doctype, and write.text.chunk templates.
+This makes chunk.quietly=1 suppress chunk filename messages also for help 
+support files (which seems to be what one would expect). See bug #1648360.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of JavaHelp changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; wordml2normalise.xsl</literal></para><screen><phrase role="commit-message">fix table/cell borders for wordml, fix formal figure, add emphasis-strong</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: supported.xml</literal></para><screen><phrase role="commit-message">Changed @cols to 5.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; blocks2dbk.dtd; template.xml</literal></para><screen><phrase role="commit-message">added pubdate, fixed metadata handling in biblioentry</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: supported.xml</literal></para><screen><phrase role="commit-message">Added support for edition.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: docbook-pages.xsl; wordml-blocks.xsl; docbook.xsl; wordml.xsl; pages-normalise&#x22EF;</literal></para><screen><phrase role="commit-message">Removed stylesheets for old, deprecated conversion method.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: specifications.xml; dbk2ooo.xsl; blocks2dbk.xsl; dbk2pages.xsl; blocks2dbk.dtd&#x22EF;</literal></para><screen><phrase role="commit-message">Added support for Open Office, added edition element, improved list and table support in Word and Pages</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: normalise-common.xsl; blocks2dbk.xsl; dbk2pages.xsl; template-pages.xml; templ&#x22EF;</literal></para><screen><phrase role="commit-message">Fixed bug in WordML table handling, improved table handling for Pages 08, synchronised WordML and Pages templates.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: normalise-common.xsl; blocks2dbk.xsl; wordml2normalise.xsl; dbk2wp.xsl</literal></para><screen><phrase role="commit-message">fix caption, attributes</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: specifications.xml; blocks2dbk.xsl; wordml2normalise.xsl; blocks2dbk.dtd; temp&#x22EF;</literal></para><screen><phrase role="commit-message">Fixes to table and list handling</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl</literal></para><screen><phrase role="commit-message">added support for explicit emphasis character styles</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: wordml2normalise.xsl</literal></para><screen><phrase role="commit-message">added support for customisation in image handling</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl</literal></para><screen><phrase role="commit-message">Added inlinemediaobject support for metadata.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: normalise-common.xsl; blocks2dbk.xsl; template.xml; dbk2wordml.xsl; dbk2wp.xsl</literal></para><screen><phrase role="commit-message">Added support file. Added style locking. Conversion bug fixes.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Roundtrip changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Slides">
+<title>Slides</title>
+<para>The following changes have been made to the
+            <filename>slides</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: fo/Makefile; html/Makefile</literal></para><screen><phrase role="commit-message">Added checks and hacks to various makefiles to enable building
+under Cygwin. This stuff is ugly and maybe not worth the mess and
+trouble, but does seem to work as expected and not break anything
+else.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: html/plain.xsl</literal></para><screen><phrase role="commit-message">Added support for showing foil number</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Slides changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Website">
+<title>Website</title>
+<para>The following changes have been made to the
+            <filename>website</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: extensions/saxon64/.classes/.gitignore; extensions/xalan2/.classes/com/&#x22EF;</literal></para><screen><phrase role="commit-message">renamed a bunch more .cvsignore files to .gitignore (to facilitate use of git-svn)</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Website changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem> <para><literal>Keith Fahlgren: epub.autolabel.xml</literal></para><screen><phrase role="commit-message">New parameter for epub, epub.autolabel</phrase></screen> </listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: table.frame.border.color.xml; table.cell.padding.xml; table.cell.border.t&#x22EF;</literal></para><screen><phrase role="commit-message">Added missing refpurposes and descriptions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: ade.extensions.xml</literal></para><screen><phrase role="commit-message">Extensions to support Adobe Digital Editions extensions in .epub output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: fop.extensions.xml; fop1.extensions.xml</literal></para><screen><phrase role="commit-message">Clarified that fop1.extensions is for FOP 0.90 and later. Version 1 is not here yet...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.links.are.underlined.xml; man.endnotes.list.enabled.xml; man.font.l&#x22EF;</literal></para><screen><phrase role="commit-message">removed man.links.are.underlined and added man.font.links. Also,
+changed the default font formatting for links to bold.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.base.url.for.relative.links.xml</literal></para><screen><phrase role="commit-message">Added new param man.base.url.for.relative.links .. specifies a
+base URL for relative links (for ulink, @xlink:href, imagedata,
+audiodata, videodata) shown in the generated NOTES section of
+man-page output. The value of man.base.url.for.relative.links is
+prepended to any relative URI that is a value of ulink url,
+xlink:href, or fileref attribute.
+
+If you use relative URIs in link sources in your DocBook refentry
+source, and you leave man.base.url.for.relative.links unset, the
+relative links will appear "as is" in the NOTES section of any
+man-page output generated from your source. That's probably not
+what you want, because such relative links are only usable in the
+context of HTML output. So, to make the links meaningful and
+usable in the context of man-page output, set a value for
+man.base.url.for.relative.links that points
+to the online version of HTML output generated from your DocBook
+refentry source. For example:
+
+  &lt;xsl:param name="man.base.url.for.relative.links"
+  &gt;http://www.kernel.org/pub/software/scm/git/docs/&lt;/xsl:param&gt;</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.string.subst.map.xml</literal></para><screen><phrase role="commit-message">squeeze .sp\n.sp into a single .sp (to prevent a extra, spurious
+line of whitespace from being inserted after programlisting etc.
+in certain cases)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.manual.fallback.profile.xml; refentry.source.fallback.profile.&#x22EF;</literal></para><screen><phrase role="commit-message">don't use refmiscinfo@class=date value as fallback for refentry
+"source" or "manual" metadata fields</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.charmap.subset.profile.xml; man.charmap.enabled.xml; man.charmap.su&#x22EF;</literal></para><screen><phrase role="commit-message">made some further doc tweaks related to the
+man.charmap.subset.profile.english param</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.charmap.subset.profile.xml; man.charmap.enabled.xml; man.charmap.su&#x22EF;</literal></para><screen><phrase role="commit-message">Added the man.charmap.subset.profile.english parameter and refined
+the handling of charmap subsets to differentiate between English
+and non-English source.
+
+This way charmap subsets are now handled is this:
+
+If the value of the man.charmap.use.subset parameter is non-zero,
+and your DocBook source is not written in English (that is, if its
+lang or xml:lang attribute has a value other than en), then the
+character-map subset specified by the man.charmap.subset.profile
+parameter is used instead of the full roff character map.
+
+Otherwise, if the lang or xml:lang attribute on the root element
+in your DocBook source or on the first refentry element in your
+source has the value en or if it has no lang or xml:lang
+attribute, then the character-map subset specified by the
+man.charmap.subset.profile.english parameter is used instead of
+man.charmap.subset.profile.
+
+The difference between the two subsets is that
+man.charmap.subset.profile provides mappings for characters in
+Western European languages that are not part of the Roman
+(English) alphabet (ASCII character set).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.charmap.subset.profile.xml</literal></para><screen><phrase role="commit-message">Added to default charmap used by manpages:
+
+  - the "letters" part of the 'C1 Controls And Latin-1 Supplement
+    (Latin-1 Supplement)' Unicode block
+  - Latin Extended-A block (but not all of the characters from
+    that block have mappings in groff, so some of them are still
+    passed through as-is)
+
+The effects of this change are that in man pages generated for
+most Western European languages and for Finnish, all characters
+not part of the Roman alphabet are (e.g., "accented" characters)
+are converted to groff escapes.
+
+Previously, by default we passed through those characters as is
+(and users needed to use the full charmap if they wanted to have
+those characters converted).
+
+As a result of this change, man pages generated for Western
+European languages will be viewable in some environments in which
+they are not viewable if the "raw" non-Roman characters are in them.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: generate.legalnotice.link.xml; generate.revhistory.link.xml</literal></para><screen><phrase role="commit-message">Added information on how the filename is computed.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: default.table.width.xml</literal></para><screen><phrase role="commit-message">Clarified PI usage.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.funcsynopsis.style.xml</literal></para><screen><phrase role="commit-message">Added the man.funcsynopsis.style parameter. Has the same effect in
+manpages output as the funcsynopsis.style parameter has in HTML
+output -- except that its default value is 'ansi' instead of 'kr'.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: funcsynopsis.tabular.threshold.xml</literal></para><screen><phrase role="commit-message">Removed the funcsynopsis.tabular.threshold param. It's no longer
+being used in the code and hasn't been since mid 2006.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: table.properties.xml</literal></para><screen><phrase role="commit-message">Set keep-together.within-column to "auto". This seems to be the most sensible
+default value for tables.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: informal.object.properties.xml; admon.graphics.extension.xml; informalequ&#x22EF;</literal></para><screen><phrase role="commit-message">Several small documentation fixes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: manifest.in.base.dir.xml</literal></para><screen><phrase role="commit-message">Wording fixes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: header.content.properties.xml; footer.content.properties.xml</literal></para><screen><phrase role="commit-message">Added refpurpose.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: ulink.footnotes.xml; ulink.show.xml</literal></para><screen><phrase role="commit-message">Updated for DocBook 5.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: index.method.xml; glossterm.auto.link.xml</literal></para><screen><phrase role="commit-message">Spelling and wording fixes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: callout.graphics.extension.xml</literal></para><screen><phrase role="commit-message">Clarifed available graphics formats and extensions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: footnote.sep.leader.properties.xml</literal></para><screen><phrase role="commit-message">Corrected refpurpose.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: footnote.properties.xml</literal></para><screen><phrase role="commit-message">Added more properties which make it possible to render correctly footnotes placed inside verbatim elements.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: img.src.path.xml</literal></para><screen><phrase role="commit-message">img.src.path works with inlinegraphic too.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: saxon.character.representation.xml</literal></para><screen><phrase role="commit-message">Added TCG link.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: img.src.path.xml</literal></para><screen><phrase role="commit-message">Updated description of img.src.path. Bug #1785224 revealed that 
+there was a risk of misunderstanding how it works.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Profiling">
+<title>Profiling</title>
+<para>The following changes have been made to the
+            <filename>profiling</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: xsl2profile.xsl</literal></para><screen><phrase role="commit-message">Added new rules to profile all content generated by HTML Help (including alias files)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: profile-mode.xsl</literal></para><screen><phrase role="commit-message">use mode="profile" instead of xsl:copy-of for attributes so
+they can be more easily customized.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Profiling changes for 1.74.0-->
+
+
+<sect2 xml:id="V1.74.0_Tools">
+<title>Tools</title>
+<para>The following changes have been made to the
+            <filename>tools</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: make/Makefile.DocBook</literal></para><screen><phrase role="commit-message">various changes and additions to support making with asciidoc as
+an input format</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: make/Makefile.DocBook</literal></para><screen><phrase role="commit-message">make dblatex the default PDF maker for the example makefile</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: xsl/build/html2roff.xsl</literal></para><screen><phrase role="commit-message">Reworked handling of K&amp;R funcprototype output. It no longer relies
+on the HTML kr-tabular templates, but instead just does direct
+transformation to roff. For K&amp;R output, it displays the paramdef
+output in an indented list following the prototype.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: xsl/build/make-xsl-params.xsl</literal></para><screen><phrase role="commit-message">Made attribute-sets members of the param list. This enables links to attribute-sets in the
+reference documentation.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: xsl/build/html2roff.xsl</literal></para><screen><phrase role="commit-message">use .BI handling in K&amp;R funsynopsis output for manpages, just as
+we do already of ANSI output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: xsl/build/html2roff.xsl</literal></para><screen><phrase role="commit-message">Implemented initial support for handling tabular K&amp;R output of
+funcprototype in manpages output. Accomplished by adding more
+templates to the intermediate HTML-to-roff stylesheet that the
+build uses to create the manpages/html-synop.xsl stylesheet.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: xsl/build/doc-link-docbook.xsl</literal></para><screen><phrase role="commit-message">Made the xsl/tools/xsl/build/doc-link-docbook.xsl stylesheet
+import profile-docbook.xsl, so that we can do profiling of release
+notes. Corrected some problems in the target for the release-notes
+HTML build.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Tools changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Extensions">
+<title>Extensions</title>
+<para>The following changes have been made to the
+            <filename>extensions</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem> <para><literal>Keith Fahlgren: Makefile</literal></para><screen><phrase role="commit-message">Use DOCBOOK_SVN variable everywhere, please; build with PDF_MAKER</phrase></screen> </listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile</literal></para><screen><phrase role="commit-message">moved extensions build targets from master xsl/Makefile to
+xsl/extensions/Makefile</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: .cvsignore</literal></para><screen><phrase role="commit-message">re-adding empty extensions subdir</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Extensions changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_XSL-Saxon">
+<title>XSL-Saxon</title>
+<para>The following changes have been made to the
+            <filename>xsl-saxon</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: VERSION</literal></para><screen><phrase role="commit-message">bring xsl2, xsl-saxon, and xsl-xalan VERSION files up-to-date with
+recent change to snapshot build infrastructure</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: nbproject/build-impl.xml; nbproject/project.properties</literal></para><screen><phrase role="commit-message">Changed hard-coded file references in "clean" target to variable
+references. Closes #1792043. Thanks to Daniel Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: VERSION; Makefile</literal></para><screen><phrase role="commit-message">Did post-release wrap-up of xsl-saxon and xsl-xalan dirs</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: nbproject/build-impl.xml; VERSION; Makefile; test</literal></para><screen><phrase role="commit-message">More tweaks to get release-ready</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Saxon changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_XSL-Xalan">
+<title>XSL-Xalan</title>
+<para>The following changes have been made to the
+            <filename>xsl-xalan</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: VERSION</literal></para><screen><phrase role="commit-message">bring xsl2, xsl-saxon, and xsl-xalan VERSION files up-to-date with
+recent change to snapshot build infrastructure</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: nbproject/build-impl.xml</literal></para><screen><phrase role="commit-message">Changed hard-coded file references in "clean" target to variable
+references. Closes #1792043. Thanks to Daniel Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile; VERSION</literal></para><screen><phrase role="commit-message">Did post-release wrap-up of xsl-saxon and xsl-xalan dirs</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile; nbproject/build-impl.xml; VERSION</literal></para><screen><phrase role="commit-message">More tweaks to get release-ready</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Xalan changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_XSL-libxslt">
+<title>XSL-libxslt</title>
+<para>The following changes have been made to the
+            <filename>xsl-libxslt</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: python/xslt.py</literal></para><screen><phrase role="commit-message">Print the result to stdout if no outfile has been given.
+Some unnecessary semicolons removed.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: python/xslt.py</literal></para><screen><phrase role="commit-message">Added a function that quotes parameter values (to ensure that they are interpreted as strings).
+Replaced deprecated functions from the string module with string methods.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: python/README; python/README.LIBXSLT</literal></para><screen><phrase role="commit-message">renamed xsl-libxslt/python/README to xsl-libxslt/python/README.LIBXSLT</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: python/README</literal></para><screen><phrase role="commit-message">Tweaked the text a little.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-libxslt changes for 1.74.0-->
+
+</sect1>
+
+<sect1 xml:id="V1.73.2">
+<title>Release Notes: 1.73.2</title>
+<para>This is solely a minor bug-fix update to the 1.73.1 release.
+  It fixes a packaging error in the 1.73.1 package, as well as a
+  bug in footnote handling in FO output.</para>
+</sect1>
+
+<sect1 xml:id="V1.73.1">
+<title>Release: 1.73.1</title>
+<para>This is mostly a bug-fix update to the 1.73.0 release.</para>
+
+<sect2 xml:id="V1.73.1_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the
+            <filename>gentext</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: locale/de.xml</literal></para><screen><phrase role="commit-message">Applied patch #1766009.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/lv.xml</literal></para><screen><phrase role="commit-message">Added localization for <tag>ProductionSet</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: table.xsl</literal></para><screen><phrase role="commit-message">Modified the <tag>tgroup</tag> template so that, for tables with multiple tgroups, 
+a width attribute is output on all corresponding fo:tables. Previously, 
+there was a test prohibiting this (and a comment saying that outputting more
+than one width attribute will cause an error). But this seems to be no longer 
+relevant; it is not a problem with FOP 0.93 or XEP 4.10. Closes bug #1760559.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: graphics.xsl</literal></para><screen><phrase role="commit-message">Replaced useless &lt;a&gt; elements with warning messages (textinsert extension).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: admon.xsl</literal></para><screen><phrase role="commit-message">Enabled generation of ids (on fo:wrapper) for indexterms in admonition titles, so that page
+references in the <tag>index</tag> can be created. Closes bug #1775086.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Added &lt;xsl:call-template name="process.footnotes"/&gt; to <tag>abstract</tag> template
+so that footnotes in <tag>info</tag>/<tag>abstract</tag> are processed. Closes bug #1760907.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: pi.xsl; synop.xsl</literal></para><screen><phrase role="commit-message">Changed handling of HTML output for the <tag>cmdsynopsis</tag> and
+<tag>funcsynopsis</tag> elements, such that a@id instances are generated for
+them if they are descendants of any element containing a dbcmdlist
+or dbfunclist PI. Also, update the embedded <tag>reference</tag> docs for the
+dbcmdlist and dbfunclist PIs to make it clear that they can be
+used within any element for which <tag>cmdsynopsis</tag> or <tag>funcsynopsis</tag> are
+valid children.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: formal.xsl</literal></para><screen><phrase role="commit-message">Reverted the part of <tag>revision</tag> 6952 that caused a@id anchors to be
+generated for output of informal objects. Thanks to Sam Steingold
+for reporting.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossary.xsl</literal></para><screen><phrase role="commit-message">Account for a <tag>glossary</tag> with no <tag>glossdiv</tag> or <tag>glossentry</tag> children.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Modified <tag>legalnotice</tag> template so that the base.name parameter is calculated 
+in the same way as for <tag>revhistory</tag> chunks. Using &lt;xsl:apply-templates 
+mode="chunk-filename" select="."/&gt; did not work for single-page output since
+the template with that mode is in chunk-code.xsl.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: graphics.xsl</literal></para><screen><phrase role="commit-message">Updated support for SVG (must be a child of <tag>imagedata</tag> in DB 5).
+Added support for MathML in <tag>imagedata</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Added documentation for the dbhh PI (used for context-sensitive HTML Help).
+(The two templates matching 'dbhh' are still in htmlhelp-common.xsl).</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl</literal></para><screen><phrase role="commit-message">In manpages output, generate warnings about notesources with
+non-para children only if the notesource is a <tag>footnote</tag> or
+<tag>annotation</tag>. Thanks to Sam Steingold for reporting problems with
+the existing handling.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_HTMLHelp">
+<title>HTMLHelp</title>
+<para>The following changes have been made to the
+            <filename>htmlhelp</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: htmlhelp-common.xsl</literal></para><screen><phrase role="commit-message">Added single-pass namespace-stripping support to the htmlhelp,
+eclipse, and javahelp stylesheets.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTMLHelp changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_Eclipse">
+<title>Eclipse</title>
+<para>The following changes have been made to the
+            <filename>eclipse</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: eclipse.xsl</literal></para><screen><phrase role="commit-message">Added single-pass namespace-stripping support to the htmlhelp,
+eclipse, and javahelp stylesheets.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Eclipse changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_JavaHelp">
+<title>JavaHelp</title>
+<para>The following changes have been made to the
+            <filename>javahelp</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: javahelp.xsl</literal></para><screen><phrase role="commit-message">Added single-pass namespace-stripping support to the htmlhelp,
+eclipse, and javahelp stylesheets.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of JavaHelp changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; blocks2dbk.dtd; pages2normalise.xsl</literal></para><screen><phrase role="commit-message">Modularised blocks2dbk to allow customisation,
+Added support for tables to pages2normalise</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Roundtrip changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: procedure.properties.xml</literal></para><screen><phrase role="commit-message"><tag>procedure</tag> was inheriting keep-together from formal.object.properties, but
+a <tag>procedure</tag> does not need to be kept together by default.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Dave Pawson: title.font.family.xml; component.label.includes.part.label.xml; table.frame.b&#x22EF;</literal></para><screen><phrase role="commit-message">Regular formatting re-org.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.73.1-->
+</sect1>
+
+<sect1 xml:id="V1.73.0">
+<title>Release: 1.73.0</title>
+<para>This release includes important bug fixes and adds the following
+significant feature changes:
+<variablelist>
+  <varlistentry>
+    <term>New localizations and localization updates</term>
+    <listitem>
+      <para>We added two new localizations: Latvian and
+        Esperanto, and made updates to the Czech, Chinese
+        Simplified, Mongolian, Serbian, Italian, and Ukrainian
+        localizations.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>ISO690 citation style for bibliography output.</term>
+    <listitem>
+      <para>Set the
+        <parameter>bibliography.style</parameter> parameter to
+        <literal>iso690</literal> to use ISO690 style.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>New documentation for processing instructions (PI)</term>
+    <listitem>
+      <para>The reference documentation that ships with the
+        release now includes <link xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/pi/">documentation on all PIs</link> that you can use to
+        control output from the stylesheets.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>New profiling parameters for <literal>audience</literal> and <literal>wordsize</literal></term>
+    <listitem>
+      <para>You can now do profiling based on the values of the
+        <literal>audience</literal> and
+        <literal>wordsize</literal> attributes.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Changes to man-page output</term>
+    <listitem>
+      <para>The manpages stylesheet now supports single-pass
+        profiling and single-pass DocBook 5 namespace stripping
+        (just as the HTML and FO stylesheets also do). Also, added
+        handling for <tag>mediaobject</tag> &amp;
+        <tag>inlinemediaobject</tag>. (Each <tag>imagedata</tag>,
+        <tag>audiodata</tag>, or <tag>videodata</tag> element
+        within a <tag>mediaobject</tag> or inline
+        <tag>mediaobject</tag> is now treated as a "notesource"
+        and so handled in much the same way as links and
+        <tag>annotation</tag>/<tag>alt</tag>/<tag>footnote</tag>
+        are in manpages output.) And added the
+        <parameter>man.authors.section.enabled</parameter> and
+        <parameter>man.copyright.section.enabled</parameter>
+        parameters to enable control over whether output includes
+        auto-generated <literal>AUTHORS</literal> and
+        <literal>COPYRIGHT</literal> sections.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Highlighting support for C</term>
+    <listitem>
+      <para>The highlighting mechanism for generating
+        syntax-highlighted code snippets in output now supports C
+        code listings (along with Java, PHP, XSLT, and others).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Experimental <literal>docbook-xsl-update script</literal></term>
+    <listitem>
+      <para>We added an experimental <literal>docbook-xsl-update
+          script</literal>, the purpose of which is to facilitate
+        easy sync-up to the latest docbook-xsl snapshot (by means
+        of rsync).</para>
+    </listitem>
+  </varlistentry>
+</variablelist> 
+</para>
+
+<sect2 xml:id="V1.73.0_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the
+<filename>gentext</filename> code
+since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/lv.xml; Makefile</literal></para><screen><phrase role="commit-message">Added Latvian localization file, from Girts Ziemelis.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Dongsheng Song: locale/zh_cn.xml</literal></para><screen><phrase role="commit-message">Brought up to <tag>date</tag> with en.xml in terms of items. A few strings marked for translation.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: locale/cs.xml</literal></para><screen><phrase role="commit-message">Added missing translations</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/eo.xml</literal></para><screen><phrase role="commit-message">New locale for Esperanto.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/mn.xml</literal></para><screen><phrase role="commit-message">Update from Ganbold Tsagaankhuu.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: locale/en.xml; locale/cs.xml</literal></para><screen><phrase role="commit-message">Rules for normalizing <tag>glossary</tag> entries before they are sorted can be now different for each language.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/sr_Latn.xml; locale/sr.xml</literal></para><screen><phrase role="commit-message">Committed changes from Milo&#x161; Komar&#x10D;evi&#x107; to Serbian files.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/ja.xml</literal></para><screen><phrase role="commit-message">Fix <tag>chapter</tag> in context xref-number-and-title</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/it.xml</literal></para><screen><phrase role="commit-message">Improved version from contributor.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: locale/uk.xml</literal></para><screen><phrase role="commit-message">Applied patch 1592083.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+<filename>common</filename> code
+since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: labels.xsl</literal></para><screen><phrase role="commit-message">Changed handling of <tag>reference</tag> auto-labeling such that <tag>reference</tag>
+(when it appears at the component level) is now affected by the
+<parameter>label.from.part</parameter> param, just as <tag>preface</tag>, <tag>chapter</tag>, and <tag>appendix</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: common.xsl</literal></para><screen><phrase role="commit-message">Added support to the HTML stylesheets for proper processing of
+<tag>orgname</tag> as a child of <tag>author</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">Refined logging output of <tag>refentry</tag> metadata-gathering template;
+for some cases of "missing" elements (<tag>refmiscinfo</tag> stuff, etc.),
+the log messages now include URL to corresponding page in the
+Definitive Guide (TDG).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titles.xsl</literal></para><screen><phrase role="commit-message">Add <tag>refsection</tag>/<tag>info</tag>/<tag>title</tag> support.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: titles.xsl</literal></para><screen><phrase role="commit-message">Added support for correct handling of <tag>xref</tag> to elements that
+contain <tag>info</tag>/<tag>title</tag> descendants but no <tag>title</tag> children.
+
+This should be further refined so that it handles any *<tag>info</tag>
+elements. And there are probably some other places where similar
+handling for *<tag>info</tag>/<tag>title</tag> should be added.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Modified &lt;xsl:when&gt; in datetime.format template to work
+around Xalan bug.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+<filename>fo</filename> code
+since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: component.xsl</literal></para><screen><phrase role="commit-message">Add parameters to the page.sequence utility template.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: xref.xsl</literal></para><screen><phrase role="commit-message">Added template for <tag>xref</tag> to <tag>area</tag>/<tag>areaset</tag>.
+Part of fix for bug #1675513 (<tag>xref</tag> to <tag>area</tag> broken).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl</literal></para><screen><phrase role="commit-message">Added template match for <tag>person</tag> element to fo stylesheet.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Added support for spacing="compact" in <tag>variablelist</tag>, per bug report #1722540.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message"><tag>table</tag> pgwide="1" should also use pgwide.properties attribute-set.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Make citations numbered if <parameter>bibliography.numbered</parameter> != 0.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add new profiling parameters for audience and wordsize.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Added <parameter>callout.icon.size</parameter> parameter.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl; xref.xsl</literal></para><screen><phrase role="commit-message">Add support for xlink as <tag>olink</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add support for <parameter>qanda.in.toc</parameter> to fo <tag>TOC</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: component.xsl</literal></para><screen><phrase role="commit-message">Improved the page.sequence utility template for use with <tag>book</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: division.xsl</literal></para><screen><phrase role="commit-message">Refactored the big <tag>book</tag> template into smaller pieces.
+Used the "page.sequence" utility template in
+component.xsl to shorten the <tag>toc</tag> piece.
+Added placeholder templates for front.cover and back.cover.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent; sections.xsl</literal></para><screen><phrase role="commit-message">Add <parameter>section.container.element</parameter> parameter to enable
+pgwide spans inside sections.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent; component.xsl</literal></para><screen><phrase role="commit-message">Add component.titlepage.properties attribute-set to
+support span="all" and other properties.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: htmltbl.xsl; table.xsl</literal></para><screen><phrase role="commit-message">Apply table.row.properties template to html <tag>tr</tag> rows too.
+Add keep-with-next to table.row.properties when <tag>row</tag> is in <tag>thead</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Add support for <parameter>default.table.frame</parameter> parameter.
+Fix bug 1575446 rowsep last check for @morerows.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: refentry.xsl</literal></para><screen><phrase role="commit-message">Add support for <tag>info</tag>/<tag>title</tag> in refsections.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: qandaset.xsl</literal></para><screen><phrase role="commit-message">Make fo questions and answers behave the same way as html</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: lists.xsl</literal></para><screen><phrase role="commit-message">Added missing attribute set for <tag>procedure</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: param.xweb; biblio.xsl; docbook.xsl; param.ent; biblio-iso690.xsl</literal></para><screen><phrase role="commit-message">Added support for formatting biblioentries according to ISO690 <tag>citation</tag> style.
+New <tag>bibliography</tag> style can be turned on by setting parameter <parameter>bibliography.style</parameter> to "iso690"
+The code was provided by Jana Dvorakova</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent; pagesetup.xsl</literal></para><screen><phrase role="commit-message">Add header.table.properties and footer.table.properties attribute-sets.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl</literal></para><screen><phrase role="commit-message">Add <parameter>fop1.extensions</parameter> for <tag>menuchoice</tag> arrow handling exception.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Moved declaration and documentation of <parameter>javahelp.encoding</parameter> from javahelp.xsl to the
+regular "parameter machinery".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: admon.xsl</literal></para><screen><phrase role="commit-message">Changed handling of titles for note, warning, <tag>caution</tag>, <tag>important</tag>,
+<tag>tip</tag> admonitions: We now output and HTML h3 head only if
+<parameter>admon.textlabel</parameter> is non-zero or if the admonition actually contains
+a <tag>title</tag>; otherwise, we don't output an h3 head at all.
+(Previously, we were outputting an empty h3 if the <parameter>admon.textlabel</parameter>
+was zero and if the admonition had no title.)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: xref.xsl</literal></para><screen><phrase role="commit-message">Added template for <tag>xref</tag> to <tag>area</tag>/<tag>areaset</tag>.
+Part of fix for bug #1675513 (<tag>xref</tag> to <tag>area</tag> broken).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl; component.xsl; division.xsl; sections.xsl</literal></para><screen><phrase role="commit-message">Added fixes to avoid duplicate ids when <parameter>generate.id.attributes</parameter> = 1.
+This (hopefully) closes bug #1671052.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: formal.xsl; pi.xsl</literal></para><screen><phrase role="commit-message">Made the dbfunclist PI work as intended. Also added doc for
+dbfunclist and dbcmdlist PIs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: pi.xsl; synop.xsl</literal></para><screen><phrase role="commit-message">Made the dbcmdlist work the way it appears to have been intended
+to work. Restored dbhtml-dir template back to pi.xsl.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: titlepage.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Added new param <parameter>abstract.notitle.enabled</parameter>.
+If non-zero, in output of the <tag>abstract</tag> element on titlepages,
+display of the <tag>abstract</tag> <tag>title</tag> is suppressed.
+Because sometimes you really don't want or need that <tag>title</tag>
+there...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: chunk-code.xsl; graphics.xsl</literal></para><screen><phrase role="commit-message">When we are chunking long descriptions for <tag>mediaobject</tag> instances
+into separate HTML output files, and <parameter>use.id.as.filename</parameter> is
+non-zero, if a <tag>mediaobject</tag> has an ID, use that ID as the basename
+for the long-description file (otherwise, we generate an ID for it
+and use that ID as the basename for the file).
+The parallels the recent change made to cause IDs for <tag>legalnotice</tag>
+instances to be used as basenames for <tag>legalnotice</tag> chunks.
+Also, made some minor refinements to the recent changes for
+<tag>legalnotice</tag> chunk handling.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: titlepage.xsl</literal></para><screen><phrase role="commit-message">Added support to the HTML stylesheets for proper processing of
+<tag>orgname</tag> as a child of <tag>author</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: chunk-code.xsl</literal></para><screen><phrase role="commit-message">When $generate.legalnotice.link is non-zero and
+$use.id.as.filename is also non-zero, if a <tag>legalnotice</tag> has an ID,
+then instead of assigning the "ln-&lt;generatedID&gt;" basename to the
+output file for that <tag>legalnotice</tag>, just use its real ID as the
+basename for the file -- as we do when chunking other elements
+that have IDs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xref.xsl</literal></para><screen><phrase role="commit-message">Handle <tag>alt</tag> text on xrefs to steps when the step doesn't have a <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: lists.xsl</literal></para><screen><phrase role="commit-message">Added &lt;p&gt; element around <tag>term</tag> in <tag>variablelist</tag> when formatted as <tag>table</tag> to avoid misalignment of <tag>term</tag> and <tag>listitem</tag> in xhtml (non-quirks mode) output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: qandaset.xsl</literal></para><screen><phrase role="commit-message">Added &lt;p&gt; element around <tag>question</tag> and <tag>answer</tag> labels to avoid misalignment of <tag>label</tag> and <tag>listitem</tag> in xhtml (non-quirks mode) output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: lists.xsl</literal></para><screen><phrase role="commit-message">Added &lt;p&gt; element around callouts to avoid misalignment of <tag>callout</tag> and <tag>listitem</tag> in xhtml (non-quirks mode) output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Make citations numbered if <parameter>bibliography.numbered</parameter> != 0.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add support for new profiling attributes audience and wordsize.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl; xref.xsl</literal></para><screen><phrase role="commit-message">Add support for xlink olinks.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: glossary.xsl</literal></para><screen><phrase role="commit-message">Rules for normalizing <tag>glossary</tag> entries before they are sorted can be now different for each language.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunk-common.xsl; chunk-code.xsl; manifest.xsl; chunk.xsl</literal></para><screen><phrase role="commit-message">Refactored the chunking modules to move all named templates to
+chunk-common.xsl and all match templates to chunk-code.xsl, in
+order to enable better chunk customization.
+See the comments in chunk.xsl for more details.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Add <tag>anchor</tag> for xml:id for <tag>listitem</tag> in <tag>varlistentry</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: refentry.xsl</literal></para><screen><phrase role="commit-message">Add support for <tag>info</tag>/<tag>title</tag> in refsections for db5.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: param.xweb; biblio.xsl; docbook.xsl; param.ent; biblio-iso690.xsl</literal></para><screen><phrase role="commit-message">Added support for formatting biblioentries according to ISO690 <tag>citation</tag> style.
+New <tag>bibliography</tag> style can be turned on by setting parameter <parameter>bibliography.style</parameter> to "iso690"
+The code was provided by Jana Dvorakova</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl; xref.xsl</literal></para><screen><phrase role="commit-message">Add call to class.attribute to &lt;a&gt; output elements so they can
+have a class value too.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: glossary.xsl</literal></para><screen><phrase role="commit-message">Fixed bug #1644881:
+* Added curly braces around all $language attribute values. 
+* Moved declaration of language variable to top level of stylesheet.
+Tested with Xalan, Saxon, and xsltproc.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: param.xweb; docbook.xsl; param.ent</literal></para><screen><phrase role="commit-message">Added the <parameter>man.authors.section.enabled</parameter> and
+<parameter>man.copyright.section.enabled</parameter> parameters. Set those to zero when
+you want to suppress display of the auto-generated AUTHORS and
+<tag>COPYRIGHT</tag> sections. Closes request #1467806. Thanks to Daniel
+Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: docbook.xsl</literal></para><screen><phrase role="commit-message">Took the test that the manpages stylesheet does to see if there
+are any <tag>Refentry</tag> chilren in current doc, and made it
+namespace-agnostic. Reason for that is because the test otherwise
+won't work when it is copied over into the generated
+profile-docbook.xsl stylesheet.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile</literal></para><screen><phrase role="commit-message">Added a manpages/profile-docbook.xsl file to enable single-pass
+profiling for manpages output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">Output <tag>copyright</tag> and <tag>legalnotice</tag> in man-page output in whatever
+place they are in in document order. Closes #1690539. Thanks to
+Daniel Leidert for reporting.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: docbook.xsl</literal></para><screen><phrase role="commit-message">Restored support for single-pass namespace stripping to manpages
+stylesheet.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl; block.xsl; info.xsl; inline.xsl; lists.xsl; endnotes.xsl; ut&#x22EF;</literal></para><screen><phrase role="commit-message">Changed handling of bold and italic/underline output in manpages
+output. Should be transparent to users, but...
+
+This touches handling of all bold and italic/underline output. The
+exact change is that the mode="bold" and mode="italic" utility
+templates were changed to named templates. (I think maybe I've
+changed it back and forth from mode to named before, so this is
+maybe re-reverting it yet again).
+
+Anyway, the reason for the change is that the templates are
+sometimes call on dynamically node-sets, and using modes to format
+those doesn't allow passing <tag>info</tag> about the current/real context
+node from the source (not the node-set created by the stylesheet)
+to that formatting stage.
+
+The named templates allow the context to be passed in as a
+parameter, so that the bold/ital formatting template can use
+context-aware condition checking.
+
+This was basically necessary in order to suppress bold formatting
+in titles, which otherwise gets screwed up because of the numbnut
+way that roff handles nested bold/ital.
+
+Closes #1674534). Much thanks to Daniel Leidert, whose in his
+docbook-xsl bug-finding kung-fu has achieved Grand Master status.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">Fixed handling of example instances by adding the example element
+to the same template we use for processing <tag>figure</tag>. Closes
+#1674538. Thanks to Daniel Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">Don't include lang in manpages <tag>filename</tag>/pathname if lang=en (that
+is, only generate lang-qualified file-/pathnames for non-English).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl</literal></para><screen><phrase role="commit-message">In manpages output, emit warnings for notesources (<tag>footnote</tag>, etc.)
+that have something other than <tag>para</tag> as a child.
+
+The numbered-with-hanging-indent formatting that's used for
+rendering endnotes in the NOTES <tag>section</tag> of man pages places some
+limits/assumptions on how the DocBook source is marked up; namely,
+for notesources (<tag>footnote</tag>, <tag>annotation</tag>, etc.) that can contain
+block-level children, if the they have a block-level child such as
+a <tag>table</tag> or <tag>itemizedlist</tag> or <tag>orderedlist</tag> that is the first child of
+a <tag>footnote</tag>, we have no way of rendering/indenting its content
+properly in the endnotes list.
+
+Thus, the manpages stylesheet not emits a warning message for that
+case, and suggests the "fix" (which is to wrap the <tag>table</tag> or
+<tag>itemizedlist</tag> or whatever in a <tag>para</tag> that has some preferatory text.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">Added support to mixed-block template for handling tables in
+mixed-blocks (e.g., as child of <tag>para</tag>) correctly.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: table.xsl; synop.xsl; block.xsl; info.xsl; lists.xsl; refentry.xsl; end&#x22EF;</literal></para><screen><phrase role="commit-message">Reverted necessary escaping of backslash, dot, and dash
+out of the well-intentioned (but it now appears,
+misguided) "marker" mechanism (introduced in the 1.72.0
+release) -- which made use of alternative "marker"
+characters as internal representations of those
+characters, and then replaced them just prior to
+serialization -- and back into what's basically the
+system that was used prior to the 1.69.0 release; that
+is, into a part of stylesheet code that gets executed
+at the beginning of processing -- before any other roff
+markup up is. This change obviates the need for the
+marker system. It also requires a lot less RAM during
+processing (for large files, the marker mechanism
+ending up requiring gigabytes of memory).
+
+Closes bug #1661177. Thanks to Scott Smedley for
+providing a test case (the fvwm man page) that exposed
+the problem with the marker mechanism.
+
+Also moved the mechanism for converting non-breaking
+spaces back into the same <tag>area</tag> of the stylesheet code.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Fixed problem with incorrect formatting of nested <tag>variablelist</tag>.
+Closes bug #1650931. Thanks to Daniel "Eagle Eye" Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Make sure that all listitems in <tag>itemizedlist</tag> and <tag>orderedlist</tag> are
+preceded by a blank line. This fixes a regression that occurred
+when instances of the TP macro that were use in a previous
+versions of the list-handling code were switched to RS/RE (because
+TP doesn't support nesting). TP automatically generates a blank
+line, but RS doesn't. So I added a .sp before each .RS</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl; inline.xsl; param.xweb; docbook.xsl; links.xsl; param.ent</literal></para><screen><phrase role="commit-message">Made a number of changes related to elements with
+out-of-line content:
+
+- Added handling for <tag>mediaobject</tag> &amp; <tag>inlinemediaobject</tag>.
+  Each <tag>imagedata</tag>, <tag>audiodata</tag>, or <tag>videodata</tag> element
+  within a <tag>mediaobject</tag> or inline <tag>mediaobject</tag> is now
+  treated as a "notesource" and so handled in much the
+  same way as links and <tag>annotation</tag>/<tag>alt</tag>/footnotes.
+
+  That means a numbered marker is generated inline to
+  mark the place in the main flow where the <tag>imagedata</tag>,
+  <tag>audiodata</tag>, or <tag>videodata</tag> element occurs, and a
+  corresponding numbered endnote for it is generated in
+  the endnotes list at the end of the man page; the
+  endnote contains the URL from the fileref attribute
+  of the <tag>imagedata</tag>, <tag>audiodata</tag>, or <tag>videodata</tag> element.
+
+  For mediobject and <tag>inlinemediaobject</tag> instances that
+  have a <tag>textobject</tag> child, the <tag>textobject</tag> is displayed
+  within the main text flow.
+
+- Renamed several man.link.* params to man.endnotes.*,
+  to reflect that fact that the endnotes list now
+  contains more than just links. Also did similar
+  renaming for a number of stylesheet-internal vars.
+
+- Added support for xlink:href (along with existing
+  support for the legacy ulink element).
+
+- Cleaned up and streamlined the endnotes-handling
+  code. It's still messy and klunky and the basic
+  mechanism it uses is very inefficent for documents
+  that contain a lot of notesources, but at least it's
+  a bit better than it was.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Eclipse">
+<title>Eclipse</title>
+<para>The following changes have been made to the
+            <filename>eclipse</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: Makefile</literal></para><screen><phrase role="commit-message">Fixed bug #1715093: Makefile for creating profiled version of eclipse.xsl added.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: eclipse.xsl</literal></para><screen><phrase role="commit-message">Added normalize-space around  to avoid leading whitespace from appearing in the output if there's extra leading whitespace (e.g. &lt;<tag>title</tag>&gt; Foo&lt;/<tag>title</tag>&gt;) in the source</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Eclipse changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_JavaHelp">
+<title>JavaHelp</title>
+<para>The following changes have been made to the
+            <filename>javahelp</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: javahelp.xsl</literal></para><screen><phrase role="commit-message">Implemented FR #1230233 (sorted <tag>index</tag> in javahelp).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: javahelp.xsl</literal></para><screen><phrase role="commit-message">Added normalize-space() around titles and <tag>index</tag> entries to work around whitespace problems.
+Added support for <tag>glossary</tag> and <tag>bibliography</tag> in <tag>toc</tag> and map files.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of JavaHelp changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; wordml2normalise.xsl; normalise2sections.xsl; sections2blocks.&#x22EF;</literal></para><screen><phrase role="commit-message">new stylesheets for better word processor support and easier maintenance</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: template-pages.xml; dbk2wp.xsl; sections-spec.xml</literal></para><screen><phrase role="commit-message">fixed bugs</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Roundtrip changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: htmlhelp.button.back.xml; htmlhelp.button.forward.xml; htmlhelp.button.zo&#x22EF;</literal></para><screen><phrase role="commit-message">Modified <tag>refpurpose</tag> text.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: htmlhelp.map.file.xml; htmlhelp.force.map.and.alias.xml; htmlhelp.alias.f&#x22EF;</literal></para><screen><phrase role="commit-message">Fixed typos, made some small changes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: javahelp.encoding.xml</literal></para><screen><phrase role="commit-message">Moved declaration and documentation of <parameter>javahelp.encoding</parameter> from javahelp.xsl to the
+regular "parameter machinery".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: generate.id.attributes.xml</literal></para><screen><phrase role="commit-message">Added <tag>refpurpose</tag> text.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: annotation.js.xml; annotation.graphic.open.xml; annotation.graphic.close.&#x22EF;</literal></para><screen><phrase role="commit-message">Added better <tag>refpurpose</tag> texts.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: chunker.output.cdata-section-elements.xml; chunker.output.standalone.xm&#x22EF;</literal></para><screen><phrase role="commit-message">Fixed some broken formatting in source files for chunker.* params,
+as pointed out by Dave Pawson.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: label.from.part.xml</literal></para><screen><phrase role="commit-message">Changed handling of <tag>reference</tag> auto-labeling such that <tag>reference</tag>
+(when it appears at the component level) is now affected by the
+<parameter>label.from.part</parameter> param, just as <tag>preface</tag>, <tag>chapter</tag>, and <tag>appendix</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: callout.graphics.extension.xml</literal></para><screen><phrase role="commit-message">Clarified that 'extension' refers to file names.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: abstract.notitle.enabled.xml</literal></para><screen><phrase role="commit-message">Added new param <parameter>abstract.notitle.enabled</parameter>.
+If non-zero, in output of the <tag>abstract</tag> element on titlepages,
+display of the <tag>abstract</tag> <tag>title</tag> is suppressed.
+Because sometimes you really don't want or need that <tag>title</tag>
+there...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.string.subst.map.xml</literal></para><screen><phrase role="commit-message">Updated manpages string-substitute map to reflect fact that
+because of another recent change to suppress bold markup in .SH
+output, we no longer need to add a workaround for the accidental
+uppercasing of roff escapes that occurred previously.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: margin.note.float.type.xml; title.font.family.xml; table.frame.border.color.x&#x22EF;</literal></para><screen><phrase role="commit-message">Improved parameter metadata</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: profile.wordsize.xml; profile.audience.xml</literal></para><screen><phrase role="commit-message">Add support for profiling on new attributes audience and wordsize.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: callout.graphics.number.limit.xml; callout.graphics.extension.xml</literal></para><screen><phrase role="commit-message">Added SVG graphics for fo output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: callout.icon.size.xml</literal></para><screen><phrase role="commit-message">Set size of <tag>callout</tag> graphics.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: default.units.xml; chunker.output.method.xml; toc.list.type.xml; output.inden&#x22EF;</literal></para><screen><phrase role="commit-message">Updated parameter metadata to the new format.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: man.output.quietly.xml; title.font.family.xml; footnote.sep.leader.properties&#x22EF;</literal></para><screen><phrase role="commit-message">Added type annotations into parameter definition files.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: section.container.element.xml</literal></para><screen><phrase role="commit-message">Support spans in sections for certain processors.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: component.titlepage.properties.xml</literal></para><screen><phrase role="commit-message">Empty attribute set for top level component titlepage block.
+Allows setting a span on <tag>title</tag> <tag>info</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: bibliography.style.xml</literal></para><screen><phrase role="commit-message">Added <tag>link</tag> to WiKi page with description of special markup needed for ISO690 biblioentries</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: make.year.ranges.xml</literal></para><screen><phrase role="commit-message">Clarify that multiple <tag>year</tag> elements are required.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: id.warnings.xml</literal></para><screen><phrase role="commit-message">Turn off <parameter>id.warnings</parameter> by default.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: bibliography.style.xml</literal></para><screen><phrase role="commit-message">Added support for formatting biblioentries according to ISO690 <tag>citation</tag> style.
+New <tag>bibliography</tag> style can be turned on by setting parameter <parameter>bibliography.style</parameter> to "iso690"
+The code was provided by Jana Dvorakova</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: header.table.properties.xml; footer.table.properties.xml</literal></para><screen><phrase role="commit-message">Support adding <tag>table</tag> properties to header and footer tables.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Highlighting">
+<title>Highlighting</title>
+<para>The following changes have been made to the
+            <filename>highlighting</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: c-hl.xml; xslthl-config.xml</literal></para><screen><phrase role="commit-message">Added support for C language. Provided by Bruno Guegan.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Highlighting changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Profiling">
+<title>Profiling</title>
+<para>The following changes have been made to the
+            <filename>profiling</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: profile-mode.xsl</literal></para><screen><phrase role="commit-message">Add support for new profiling attributes audience and wordsize.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Profiling changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Lib">
+<title>Lib</title>
+<para>The following changes have been made to the
+            <filename>lib</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: lib.xweb</literal></para><screen><phrase role="commit-message">Changed name of prepend-pad template to pad-string and twheeked so
+it can do both right/left padding.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Lib changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Tools">
+<title>Tools</title>
+<para>The following changes have been made to the
+            <filename>tools</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: bin; bin/docbook-xsl-update</literal></para><screen><phrase role="commit-message">Did some cleanup to the install.sh source and added a
+docbook-xsl-update script to the docbook-xsl distro, the purpose
+of which is to facilitate easy sync-up to the latest docbook-xsl
+snapshot (by means of rsync).</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Tools changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_XSL-Saxon">
+<title>XSL-Saxon</title>
+<para>The following changes have been made to the
+            <filename>xsl-saxon</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: xalan27/src/com/nwalsh/xalan/Verbatim.java; xalan27/src/com/nwalsh/xalan/&#x22EF;</literal></para><screen><phrase role="commit-message">Added modifications so that the new <parameter>callout.icon.size</parameter> parameter is taken into account. This 
+parameter is used for FO output (where SVG now is the default graphics format for callouts).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: saxon65/src/com/nwalsh/saxon/FormatCallout.java; xalan27/src/com/nwalsh/x&#x22EF;</literal></para><screen><phrase role="commit-message">Added code for generating id attributes on callouts in HTML and FO output.
+These patches enable cross-references to callouts placed by <tag>area</tag> coordinates.
+It works for graphic, unicode and text callouts. 
+Part of fix for bug #1675513 (<tag>xref</tag> to <tag>area</tag> broken).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: saxon65/src/com/nwalsh/saxon/Website.java; xalan27/src/com/nwalsh/xalan&#x22EF;</literal></para><screen><phrase role="commit-message">Copied over Website XSL Java extensions.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Saxon changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_XSL-Xalan">
+<title>XSL-Xalan</title>
+<para>The following changes have been made to the
+            <filename>xsl-xalan</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile; xalan2</literal></para><screen><phrase role="commit-message">Turned off xalan2.jar build. This removes DocBook XSL
+Java extensions support for versions of Xalan prior to
+Xalan 2.7. If you are currently using the extensions
+with an earlier version of Xalan, you need to upgrade
+to Xalan 2.7.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: xalan27/src/com/nwalsh/xalan/Verbatim.java; xalan27/src/com/nwalsh/xalan/&#x22EF;</literal></para><screen><phrase role="commit-message">Added modifications so that the new <parameter>callout.icon.size</parameter> parameter is taken into account. This 
+parameter is used for FO output (where SVG now is the default graphics format for callouts).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: saxon65/src/com/nwalsh/saxon/FormatCallout.java; xalan27/src/com/nwalsh/x&#x22EF;</literal></para><screen><phrase role="commit-message">Added code for generating id attributes on callouts in HTML and FO output.
+These patches enable cross-references to callouts placed by <tag>area</tag> coordinates.
+It works for graphic, unicode and text callouts. 
+Part of fix for bug #1675513 (<tag>xref</tag> to <tag>area</tag> broken).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: saxon65/src/com/nwalsh/saxon/Website.java; xalan27/src/com/nwalsh/xalan&#x22EF;</literal></para><screen><phrase role="commit-message">Copied over Website XSL Java extensions.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Saxon changes for 1.73.0-->
+</sect1><!--end of changes for the 1.73.0 release-->
+
+<sect1 xml:id="V1.72.0">
+<title>Release: 1.72.0</title>
+<para>This release includes important bug fixes and adds the following
+significant feature changes:
+<variablelist>
+  <varlistentry>
+    <term>Automatic sorting of glossary entries</term>
+    <listitem>
+      <para>The HTML and FO stylesheets now support automatic sorting
+      of <tag>glossary</tag> entries. To enable glossary sorting, set
+      the value of the <parameter>glossary.sort </parameter> parameter
+      to <code>1</code> (by default, it&#x2019;s value is
+      <code>0</code>). When you enable glossary sorting,
+      <tag>glossentry</tag> elements within a <tag> glossary</tag>,
+      <tag>glossdiv</tag>, or <tag>glosslist</tag> are sorted on the
+      <tag>glossterm</tag>, using the current language setting. If you
+      don&#x2019;t enable glossary sorting, then the order of
+      <tag>glossentry</tag> elements is left &#x201C;as is&#x201D; &#x2014; that is, they
+      are not sorted but are instead just displayed in document
+      order.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>WordML renamed to Roundtrip, OpenOffice support added</term>
+    <listitem>
+    <para>Stylesheets for &#x201C;roundtrip&#x201D; conversion between documents in
+    OpenOffice format (ODF) and DocBook XML have been added to the set
+    of stylesheets that formerly had the collective title
+    <wordasword>WordML</wordasword>, and that set of stylesheets has
+    been renamed to <wordasword>Roundtrip</wordasword> to better
+    reflect the actual scope and purpose of its contents.</para>
+    <para>So the DocBook XSL Stylesheets now support roundtrip
+    conversion (with certain limitations) of WordML, OpenOffice, and
+    Apple Pages documents to and from DocBook XML.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Including QandASet questions in TOCs</term>
+    <listitem>
+      <para>The HTML stylesheet now provides support for including
+      <tag>QandASet</tag> <tag>question</tag>s in the document TOC. To
+      enable display of <tag>question</tag>s in the document TOC, set
+      the value of the <parameter>qanda.in.toc</parameter> to
+      <code>1</code> (by default, it&#x2019;s <code>0</code>). When you
+      enable <parameter>qanda.in.toc</parameter>, then the generated
+      table of contents for a document will include
+      <tag>qandaset</tag> titles, <tag>qandadiv</tag> titles, and
+      <tag>question</tag> elements. The default value of zero
+      excludes them from the TOC.
+      <note>
+        <para>The <parameter>qanda.in.toc</parameter> parameter does
+        not affect any tables of contents that may be generated
+        <emphasis>within</emphasis> a <tag>qandaset</tag> or
+        <tag>qandadiv</tag> (only in the document TOC).</para>
+      </note>
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Language identifier in man-page filenames and pathnames</term>
+    <listitem>
+      <para>Added new parameter <parameter>man.output.lang.in.name.enabled</parameter>, which controls whether
+      a language identifier is included in man-page filenames and
+      pathnames. It works like this:</para>
+
+      <para>If the value of <parameter>man.output.lang.in.name.enabled</parameter> is non-zero,
+      man-page files are output with a language identifier included in
+      their filenames or pathnames as follows:</para>
+
+      <itemizedlist>
+        <listitem><para>if
+        <parameter>man.output.subdirs.enabled</parameter> is non-zero,
+        each file is output to, e.g., a
+        <filename>/$lang/man8/foo.8</filename> pathname</para></listitem>
+
+        <listitem><para>if
+        <parameter>man.output.subdirs.enabled</parameter> is zero,
+        each file is output with a <tag>foo.$lang.8</tag>
+        filename</para></listitem>
+      </itemizedlist>
+
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><parameter>index.page.number.properties</parameter> property set</term>
+    <listitem>
+      <para>For FO output, use the
+      <parameter>index.page.number.properties</parameter> to control
+      formatting of page numbers in <tag>index</tag> output &#x2014; to (for
+      example) to display page numbers in <tag>index</tag> output in a
+      different color (to indicate that they are links).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Crop marks in output from Antenna House XSL Formatter</term>
+    <listitem>
+      <para>Support has been added for generating crop marks in
+      print/PDF output generated using Antenna House XSL Formatter</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>More string-substitution hooks in manpages output</term>
+    <listitem>
+      <para>The <parameter>man.string.subst.map.local.pre</parameter>
+      and <parameter>man.string.subst.map.local.post</parameter>
+      parameters have been added to enable easier control over
+      custom string substitutions.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Moved verbatim properties to attribute-set</term>
+    <listitem>
+      <para>The hardcoded properties used in verbatim elements (literallayout,
+      programlisting, screen) were moved to the verbatim.properties 
+      attribute-set so they can be more easily customized.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>enhanced simple.xlink template</term>
+    <listitem>
+      <para>Now the simple.xlink template in inline.xsl works with
+      cross reference elements xref and link as well.  Also, more elements
+      call simple.xlink, which enables DB5 xlink functionality.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>DocBook 5 compatibility</term>
+    <listitem>
+      <para>Stylesheets now consistently support DocBook 5 attributes
+      (such as xml:id). Also, DocBook 5 info elements are now checked
+      along with other *info elements, and the use of name() function
+      was replaced by local-name() so it also matches on DocBook 5 elements.
+      These changes enable reusing the stylesheets with DocBook 5 
+      documents with minimal fixup.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>HTML class attributes now handled in class.attribute mode </term>
+    <listitem>
+      <para>The HTML class attributes were formerly hardcoded to the 
+      element name.  Now the class attribute is generated by applying
+      templates in class.attribute mode so class attribute names
+      can be customized. The default is still the element name.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>arabic-indic numbering enabled in autolabels</term>
+    <listitem>
+      <para>Numbering of chapter, sections, and pages can now use
+      arabic-indic numbering when number format is set to 'arabicindic' or
+      to &#x661;.</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+The following is a detailed list of changes (not
+including bug fixes) that have been made since the 1.71.1
+release.</para>
+
+<sect2 xml:id="V1.72.0_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for arabicindic numbering to autolabel.format template.<alt>M: /trunk/xsl/common/labels.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Finish support for @xml:id everywhere @id is used.<alt>M: /trunk/xsl/common/gentext.xsl; M: /trunk/xsl/common/titles.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">replace name() with local-name() in most cases.<alt>M: /trunk/xsl/common/l10n.xsl; M: /trunk/xsl/common/olink.xsl; M: /trunk/xsl/common/subtitles.xsl; M: /trunk/xsl/common/labels.xsl; M: /trunk/xsl/common/titles.xsl; M: /trunk/xsl/common/common.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for <tag>info</tag>.<alt>M: /trunk/xsl/common/subtitles.xsl; M: /trunk/xsl/common/labels.xsl; M: /trunk/xsl/common/titles.xsl; M: /trunk/xsl/common/common.xsl; M: /trunk/xsl/common/targets.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add utility template tabstyle to return the tabstyle from
+any <tag>table</tag> element.<alt>M: /trunk/xsl/common/table.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.72.0-->
+
+<sect2 xml:id="V1.72.0_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for sorting <tag>glossary</tag> entries<alt>M: /trunk/xsl/fo/param.xweb; M: /trunk/xsl/fo/param.ent; M: /trunk/xsl/fo/glossary.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add table.row.properties template to customize <tag>table</tag> rows.<alt>M: /trunk/xsl/fo/table.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Moved all properties to attribute-sets so can be customized more easily.<alt>M: /trunk/xsl/fo/verbatim.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add index.page.number.properties attribute-set to format page numbers.<alt>M: /trunk/xsl/fo/autoidx.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message"><tag>xref</tag> now supports xlink:href, using simple.xlink template.<alt>M: /trunk/xsl/fo/xref.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Rewrote simple.xlink, and call it with all charseq templates.<alt>M: /trunk/xsl/fo/inline.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add simple.xlink processing to <tag>term</tag> and <tag>member</tag> elements.<alt>M: /trunk/xsl/fo/lists.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for crop marks in Antenna House.<alt>M: /trunk/xsl/fo/axf.xsl; M: /trunk/xsl/fo/pagesetup.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.72.0-->
+
+<sect2 xml:id="V1.72.0_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for sorting <tag>glossary</tag> entries<alt>M: /trunk/xsl/html/glossary.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for <parameter>qanda.in.toc</parameter> to add <tag>qandaentry</tag> questions to document <tag>TOC</tag>.<alt>M: /trunk/xsl/html/autotoc.xsl; M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/param.ent - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">add simple.xlink support to <tag>variablelist</tag> <tag>term</tag> and <tag>simplelist</tag> <tag>member</tag>.<alt>M: /trunk/xsl/html/lists.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">*.propagates.style now handled in class.attribute mode.<alt>M: /trunk/xsl/html/inline.xsl; M: /trunk/xsl/html/lists.xsl; M: /trunk/xsl/html/table.xsl; M: /trunk/xsl/html/block.xsl; M: /trunk/xsl/html/footnote.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">add class parameter to class.attribute mode to set default class.<alt>M: /trunk/xsl/html/html.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Convert all class attributes to use the class.attribute mode
+so class names can be customized more easily.<alt>M: /trunk/xsl/html/titlepage.xsl; M: /trunk/xsl/html/chunk-code.xsl; M: /trunk/xsl/html/division.xsl; M: /trunk/xsl/html/sections.xsl; M: /trunk/xsl/html/math.xsl; M: /trunk/xsl/html/block.xsl; M: /trunk/xsl/html/info.xsl; M: /trunk/xsl/html/footnote.xsl; M: /trunk/xsl/html/lists.xsl; M: /trunk/xsl/html/admon.xsl; M: /trunk/xsl/html/refentry.xsl; M: /trunk/xsl/html/qandaset.xsl; M: /trunk/xsl/html/graphics.xsl; M: /trunk/xsl/html/biblio.xsl; M: /trunk/xsl/html/task.xsl; M: /trunk/xsl/html/component.xsl; M: /trunk/xsl/html/glossary.xsl; M: /trunk/xsl/html/callout.xsl; M: /trunk/xsl/html/index.xsl; M: /trunk/xsl/html/synop.xsl; M: /trunk/xsl/html/verbatim.xsl; M: /trunk/xsl/html/ebnf.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add class.attribute mode to generate class attributes.<alt>M: /trunk/xsl/html/html.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added simple.xlink to most remaining inlines.
+Changed class attributes to applying class.attributes mode.<alt>M: /trunk/xsl/html/inline.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Changed <tag>xref</tag> template to use simple.xlink tempalte.<alt>M: /trunk/xsl/html/xref.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Improve generate.html.title to work with <tag>link</tag> targets too.<alt>M: /trunk/xsl/html/html.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Improved simple.xlink to support <tag>link</tag> and <tag>xref</tag>.<alt>M: /trunk/xsl/html/inline.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Use new link.title.attribute now.<alt>M: /trunk/xsl/html/xref.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Rewrote simple.xlink to handle linkend also.
+Better computation of <tag>title</tag> attribute on <tag>link</tag> too.<alt>M: /trunk/xsl/html/inline.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Handle Xalan quirk as special case.<alt>M: /trunk/xsl/html/db5strip.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for <tag>info</tag>.<alt>M: /trunk/xsl/html/admon.xsl; M: /trunk/xsl/html/autotoc.xsl; M: /trunk/xsl/html/lists.xsl; M: /trunk/xsl/html/refentry.xsl; M: /trunk/xsl/html/biblio.xsl; M: /trunk/xsl/html/qandaset.xsl; M: /trunk/xsl/html/component.xsl; M: /trunk/xsl/html/glossary.xsl; M: /trunk/xsl/html/division.xsl; M: /trunk/xsl/html/index.xsl; M: /trunk/xsl/html/sections.xsl; M: /trunk/xsl/html/table.xsl; M: /trunk/xsl/html/block.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Fixed imagemaps so they work properly going from calspair coords
+to HTML <tag>area</tag> coords.<alt>M: /trunk/xsl/html/graphics.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.72.0-->
+
+<sect2 xml:id="V1.72.0_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added doc for <parameter>man.output.lang.in.name.enabled</parameter> parameter. This
+checkin completes support for writing file/pathnames for man-pages
+with $lang include in the names. Closes #1585967. knightly
+accolades to Daniel Leidert for providing the feature request.<alt>M: /trunk/xsl/manpages/param.xweb; M: /trunk/xsl/manpages/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added new param <parameter>man.output.lang.in.name.enabled</parameter>, which
+controls whether $LANG value is included in manpages
+filenames and pathnames. It works like this:
+
+If the value of <parameter>man.output.lang.in.name.enabled</parameter> is non-zero,
+man-page files are output with the $lang value included in
+their filenames or pathnames as follows;
+
+- if <parameter>man.output.subdirs.enabled</parameter> is non-zero, each file is
+  output to, e.g., a /$lang/man8/foo.8 pathname
+
+- if <parameter>man.output.subdirs.enabled</parameter> is zero, each file is output
+  with a foo.$lang.8 <tag>filename</tag><alt>M: /trunk/xsl/manpages/docbook.xsl; M: /trunk/xsl/manpages/other.xsl; M: /trunk/xsl/manpages/utility.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Use "\e" instead of "\\" for backslash output, because the
+groff docs say that's the correct thing to do; also because
+testing (thanks, Paul Dubois) shows that "\\" doesn't always
+work as expected; for example, "\\" within a <tag>table</tag> seems to
+mess things up.<alt>M: /trunk/xsl/manpages/charmap.groff.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added the <parameter>man.string.subst.map.local.pre</parameter> and
+<parameter>man.string.subst.map.local.post</parameter> parameters. Those parameters
+enable local additions and changes to string-substitution mappings
+without the need to change the value of <parameter>man.string.subst.map</parameter>
+parameter (which is for standard system mappings). Closes
+#1456738. Thanks to Sam Steingold for constructing a true
+stylesheet torture test (the clisp docs) that exposed the need for
+these params.<alt>M: /trunk/xsl/manpages/param.xweb; M: /trunk/xsl/manpages/param.ent; M: /trunk/xsl/manpages/other.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added the Markup element to the list of elements that get output
+in bold. Thanks to Eric S. Raymond.<alt>M: /trunk/xsl/manpages/inline.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Replaced all dots in roff requests with U+2302 ("house"
+character), and added escaping in output for all instances of dot
+that are not in roff requests. This fixes the problem case where a
+string beginning with a dot (for example, the string ".bashrc")
+might occur at the beginning of a line in output, in which case 
+would mistakenly get interpreted as a roff request. Thanks to Eric
+S. Raymond for pushing to fix this.<alt>M: /trunk/xsl/manpages/table.xsl; M: /trunk/xsl/manpages/synop.xsl; M: /trunk/xsl/manpages/block.xsl; M: /trunk/xsl/manpages/info.xsl; M: /trunk/xsl/manpages/lists.xsl; M: /trunk/xsl/manpages/refentry.xsl; M: /trunk/xsl/manpages/links.xsl; M: /trunk/xsl/manpages/other.xsl; M: /trunk/xsl/manpages/utility.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Made change to ensure that list content nested in
+<tag>itemizedlist</tag> and <tag>orderedlist</tag> instances is properly indented. This
+is a switch from using .TP to format those lists to using .RS/.RE
+to format them instead (because .TP does not allow nesting). Closes bug #1602616.
+Thanks to Daniel Leidert.<alt>M: /trunk/xsl/manpages/lists.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.72.0-->
+
+<sect2 xml:id="V1.72.0_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added doc for <parameter>man.output.lang.in.name.enabled</parameter> parameter. This
+checkin completes support for writing file/pathnames for man-pages
+with $lang include in the names. Closes #1585967. knightly
+accolades to Daniel Leidert for providing the feature request.<alt>A: /trunk/xsl/params/man.output.lang.in.name.enabled.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added new param <parameter>man.output.lang.in.name.enabled</parameter>, which
+controls whether $LANG value is included in manpages
+filenames and pathnames. It works like this:
+
+If the value of <parameter>man.output.lang.in.name.enabled</parameter> is non-zero,
+man-page files are output with the $lang value included in
+their filenames or pathnames as follows;
+
+- if <parameter>man.output.subdirs.enabled</parameter> is non-zero, each file is
+  output to, e.g., a /$lang/man8/foo.8 pathname
+
+- if <parameter>man.output.subdirs.enabled</parameter> is zero, each file is output
+  with a foo.$lang.8 <tag>filename</tag><alt>M: /trunk/xsl/manpages/docbook.xsl; M: /trunk/xsl/manpages/other.xsl; M: /trunk/xsl/manpages/utility.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added the <parameter>man.string.subst.map.local.pre</parameter> and
+<parameter>man.string.subst.map.local.post</parameter> parameters. Those parameters
+enable local additions and changes to string-substitution mappings
+without the need to change the value of <parameter>man.string.subst.map</parameter>
+parameter (which is for standard system mappings). Closes
+#1456738. Thanks to Sam Steingold for constructing a true
+stylesheet torture test (the clisp docs) that exposed the need for
+these params.<alt>A: /trunk/xsl/params/man.string.subst.map.local.post.xml; A: /trunk/xsl/params/man.string.subst.map.local.pre.xml; M: /trunk/xsl/params/man.string.subst.map.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add index.page.number.properties by default.<alt>M: /trunk/xsl/params/xep.index.item.properties.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added <parameter>index.page.number.properties</parameter> to allow customizations of page numbers in indexes.<alt>A: /trunk/xsl/params/index.page.number.properties.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Move show-destination="replace" property from template to attribute-set
+so it can be customized.<alt>M: /trunk/xsl/params/olink.properties.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for sorting <tag>glossary</tag> entries<alt>A: /trunk/xsl/params/glossary.sort.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add option to include qanda in tables of contents.<alt>A: /trunk/xsl/params/qanda.in.toc.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Moved all properties to attribute-sets so can be customized more easily.<alt>M: /trunk/xsl/params/verbatim.properties.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.72.0-->
+
+<sect2 xml:id="V1.72.0_Template">
+<title>Template</title>
+<para>The following changes have been made to the
+            <filename>template</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added workaround for Xalan bug: use for-each and copy instead of copy-of (#1604770).<alt>M: /trunk/xsl/template/titlepage.xsl - Mauritz Jeanson</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Template changes for 1.72.0-->
+
+<sect2 xml:id="V1.72.0_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">rename to roundtrip, add OpenOffice support<alt>M: /trunk/xsl/roundtrip/docbook-pages.xsl; M: /trunk/xsl/roundtrip/specifications.xml; A: /trunk/xsl/roundtrip/dbk2ooo.xsl; M: /trunk/xsl/roundtrip/docbook.xsl; A: /trunk/xsl/roundtrip/dbk2pages.xsl; M: /trunk/xsl/roundtrip/template.xml; A: /trunk/xsl/roundtrip/dbk2wordml.xsl; A: /trunk/xsl/roundtrip/dbk2wp.xsl; M: /trunk/xsl/roundtrip/template.dot; M: /trunk/xsl/roundtrip/wordml-final.xsl - Steve Ball</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Roundtrip changes for 1.72.0-->
+</sect1><!--end of V1.72.0-->
+
+<sect1 xml:id="V1.71.1">
+<title>Release: 1.71.1</title>
+<para>This is a minor update to the 1.71.0 release. Along with a
+number of bug fixes, it includes two feature changes:
+
+<itemizedlist>
+  <listitem>
+    <para>Added support for profiling based on <tag class="attribute">xml:lang</tag> and <tag class="attribute">status</tag> attributes.</para>
+  </listitem>
+  <listitem>
+    <para>Added initial support in manpages output for
+    <tag>footnote</tag>, <tag>annotation</tag>, and <tag>alt</tag>
+    instances. Basically, they all now get handled the same way
+    <tag>ulink</tag> instances are. They are treated as a class as
+    "note sources": A numbered marker is generated at the place in the
+    main text flow where they occur, then their contents are displayed
+    in an endnotes section at the end of the man page.</para>
+  </listitem>
+</itemizedlist>
+</para>
+
+<sect2 xml:id="V1.71.1_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">For backward compatability autoidx-ng.xsl is invoking "kosek" indexing method again.<alt>D: /trunk/xsl/common/autoidx-ng.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for Xalan generating a root xml:base like saxon.<alt>M: /trunk/xsl/common/stripns.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.71.1-->
+
+<sect2 xml:id="V1.71.1_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">For backward compatability autoidx-ng.xsl is invoking "kosek" indexing method again.<alt>M: /trunk/xsl/fo/autoidx-ng.xsl; M: /trunk/xsl/fo/autoidx-kosek.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for Xalan to add root node xml:base for db5 docs.<alt>M: /trunk/xsl/fo/docbook.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added support for profiling based on xml:lang and status attributes.<alt>M: /trunk/xsl/fo/param.xweb; M: /trunk/xsl/fo/param.ent - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.71.1-->
+
+<sect2 xml:id="V1.71.1_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">For backward compatability autoidx-ng.xsl is invoking "kosek" indexing method again.<alt>M: /trunk/xsl/html/autoidx-ng.xsl; M: /trunk/xsl/html/autoidx-kosek.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for Xalan to add root node xml:base for db5 docs.<alt>M: /trunk/xsl/html/chunk-code.xsl; M: /trunk/xsl/html/docbook.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added support for profiling based on xml:lang and status attributes.<alt>M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/param.ent - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Made changes in namespace declarations to prevent xmllint's
+canonicalizer from treating them as relative namespace URIs.
+
+  - Changed xmlns:k="java:com.isogen.saxoni18n.Saxoni18nService"
+    to xmlns:k="http://www.isogen.com/functions/com.isogen.saxoni18n.Saxoni18nService";
+    Saxon accepts either form
+    (see http://www.saxonica.com/documentation/extensibility/functions.html);
+    to Saxon, "the part of the URI before the final '/' is immaterial".
+
+  - Changed, e.g. xmlns:xverb="com.nwalsh.xalan.Verbatim" to
+    xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim"; Xalan accepts
+    either form
+    (see http://xml.apache.org/xalan-j/extensions.html#java-namespace-declare);
+    just as Saxon does, it will "simply use the string to the
+    right of the rightmost forward slash as the Java class name".
+
+  - Changed xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+    to xmlns:redirect="http://xml.apache.org/xalan/redirect", and
+    adjusted associated code to make the current Xalan redirect spec.
+    (see http://xml.apache.org/xalan-j/apidocs/org/apache/xalan/lib/Redirect.html)<alt>M: /trunk/xsl/html/oldchunker.xsl; M: /trunk/xsl/html/chunker.xsl; M: /trunk/xsl/html/graphics.xsl; M: /trunk/xsl/html/callout.xsl; M: /trunk/xsl/html/autoidx-kimber.xsl; M: /trunk/xsl/html/autoidx-kosek.xsl; M: /trunk/xsl/html/table.xsl; M: /trunk/xsl/html/verbatim.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added the <parameter>html.append</parameter> and <parameter>chunk.append</parameter> parameters. By default, the
+value of both is empty; but the internal DocBook XSL stylesheets
+build sets their value to "&lt;xsl:text&gt;&amp;#x0a;&lt;/xsl:text&gt;", in order
+to ensure that all files in the docbook-xsl-doc package end in a
+newline character. (Because diff and some other tools may emit
+error messages and/or not behave as expected when processing
+files that are not newline-terminated.)<alt>M: /trunk/xsl/html/chunk-common.xsl; M: /trunk/xsl/html/titlepage.xsl; M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/docbook.xsl; M: /trunk/xsl/html/graphics.xsl; M: /trunk/xsl/html/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.71.1-->
+
+<sect2 xml:id="V1.71.1_Highlighting">
+<title>Highlighting</title>
+<para>The following changes have been made to the
+            <filename>highlighting</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added license information<alt>M: /trunk/xsl/highlighting/delphi-hl.xml; M: /trunk/xsl/highlighting/myxml-hl.xml; M: /trunk/xsl/highlighting/php-hl.xml; M: /trunk/xsl/highlighting/m2-hl.xml; M: /trunk/xsl/highlighting/ini-hl.xml; M: /trunk/xsl/highlighting/xslthl-config.xml; M: /trunk/xsl/highlighting/java-hl.xml - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Highlighting changes for 1.71.1-->
+
+<sect2 xml:id="V1.71.1_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added initial support in manpages output for <tag>footnote</tag>, <tag>annotation</tag>,
+and <tag>alt</tag> instances. Basically, they all now get handled the same
+way ulink instances are. They are treated as a class as "note
+sources": A numbered marker is generated at the place in the main
+text flow where they occur, then their contents are displayed in
+an endnotes <tag>section</tag> at the end of the man page (currently titled
+REFERENCES, for English output, but will be changed to NOTES).
+
+This support is not yet complete. It works for most "normal"
+cases, but probably mishandles a good number of cases. More
+testing will be needed to expose the problems. It may well also
+introduce some bugs and regressions in other areas, including
+basic paragraph handling, handling of "mixed block" content,
+handling of other indented content, and handling of authorblurb
+and <tag>personblurb</tag> in the AUTHORS <tag>section</tag>.<alt>M: /trunk/xsl/manpages/table.xsl; M: /trunk/xsl/manpages/block.xsl; M: /trunk/xsl/manpages/docbook.xsl; M: /trunk/xsl/manpages/links.xsl; M: /trunk/xsl/manpages/other.xsl; M: /trunk/xsl/manpages/utility.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.71.1-->
+
+<sect2 xml:id="V1.71.1_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added support for profiling based on xml:lang and status attributes.<alt>A: /trunk/xsl/params/profile.status.xml - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added the <parameter>html.append</parameter> and <parameter>chunk.append</parameter> parameters. By default, the
+value of both is empty; but the internal DocBook XSL stylesheets
+build sets their value to "&lt;xsl:text&gt;&amp;#x0a;&lt;/xsl:text&gt;", in order
+to ensure that all files in the docbook-xsl-doc <tag>package</tag> end in a
+newline character. (Because diff and some other tools may emit
+error messages and/or not behave as expected when processing
+files that are not newline-terminated.)<alt>A: /trunk/xsl/params/html.append.xml; A: /trunk/xsl/params/chunk.append.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.71.1-->
+
+<sect2 xml:id="V1.71.1_Profiling">
+<title>Profiling</title>
+<para>The following changes have been made to the
+            <filename>profiling</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added support for profiling based on xml:lang and status attributes.<alt>M: /trunk/xsl/profiling/profile.xsl; M: /trunk/xsl/profiling/profile-mode.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Profiling changes for 1.71.1-->
+
+</sect1>
+
+<sect1 xml:id="V1.71.0">
+<title>Release: 1.71.0</title>
+<para>This is mainly a bug fix release, but it also includes two
+significant feature changes:
+<variablelist>
+  <varlistentry>
+    <term>Highlighting support added</term>
+    <listitem>
+      <para>The stylesheets now include support for source-code
+      highlighting in output of programlisting instances (controlled
+      through the <parameter>highlight.source</parameter>
+      parameter). The Java-based implementation requires Saxon and
+      makes use of <link xlink:href="http://molhanec.net/"><person><personname><firstname>Michal</firstname><surname>Molhanec</surname></personname></person></link>&#x2019;s <link xlink:href="http://sourceforge.net/projects/xslthl">XSLTHL</link>. More details are available at Jirka Kosek&#x2019;s
+      website: <blockquote><simpara><link xlink:href="http://xmlguru.cz/2006/07/docbook-syntax-highlighting"/></simpara></blockquote> The support is currently limited to highlighting
+      of XML, Java, PHP, Delphi, Modula-2 sources, and INI
+      files.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Changes to autoindexing</term>
+    <listitem>
+      <para>The templates that handle alternative indexing methods
+      were reworked to avoid errors produced by certain processors not
+      being able to tolerate the presence of unused functions.  With
+      this release, none of the code for the 'kimber' or 'kosek'
+      methods is included in the default stylesheets.  In order to use
+      one of those methods, your customization layer must import one
+      of the optional stylesheet modules:</para>
+      <para>
+        <itemizedlist>
+           <listitem>
+             <simpara>html/autoidx-kosek.xsl</simpara>
+           </listitem>
+           <listitem>
+             <simpara>html/autoidx-kimber.xsl</simpara>
+           </listitem>
+           <listitem>
+             <simpara>fo/autoidx-kosek.xsl</simpara>
+           </listitem>
+           <listitem>
+             <simpara>fo/autoidx-kimber.xsl</simpara>
+           </listitem>
+        </itemizedlist>
+        See the <parameter>index.method</parameter> parameter
+        reference page for more information.
+      </para>
+      <para>Two other changes to note:
+      <itemizedlist>
+        <listitem>
+          <simpara>The default indexing method now can handle accented
+          characters in latin-based alphabets, not just English. This
+          means accented latin letters will group and sort with their
+          unaccented counterpart.</simpara>
+        </listitem>
+        <listitem>
+          <simpara>The default value for the
+          <parameter>index.method</parameter> parameter was changed
+          from 'english' to 'basic' because now the default method can
+          handle latin-based alphabets, not just English.</simpara>
+        </listitem>
+      </itemizedlist>
+      </para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+The following is a list of changes that have
+been made since the 1.70.1 release.</para>
+
+<sect2 xml:id="V1.71.0_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added <parameter>reference.autolabel</parameter> parameter for controlling labels on
+<tag>reference</tag> output.<alt>M: /trunk/xsl/common/labels.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support <tag>row</tag>s that are *completely* overlapped by the preceding <tag>row</tag><alt>M: /trunk/xsl/common/table.xsl - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">New modules for supporting indexing extensions.<alt>A: /trunk/xsl/common/autoidx-kimber.xsl; A: /trunk/xsl/common/autoidx-kosek.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support startinglinenumber on <tag>orderedlist</tag><alt>M: /trunk/xsl/common/common.xsl - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_Extensions">
+<title>Extensions</title>
+<para>The following changes have been made to the
+            <filename>extensions</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Completely reworked extensions build system; now uses NetBeans and ant<alt>D: /trunk/xsl/extensions/xalan27/.cvsignore; A: /trunk/xsl/extensions/saxon65/nbproject; A: /trunk/xsl/extensions/saxon65/nbproject/project.properties; D: /trunk/xsl/extensions/prj.el; A: /trunk/xsl/extensions/saxon65/src; A: /trunk/xsl/extensions/xalan2/src/com; M: /trunk/xsl/extensions/xalan2/src/com/nwalsh/xalan/Text.java; A: /trunk/xsl/extensions/saxon65/nbproject/project.xml; D: /trunk/xsl/extensions/build.xml; A: /trunk/xsl/extensions/saxon65/build.xml; A: /trunk/xsl/extensions/xalan2/nbproject/genfiles.properties; A: /trunk/xsl/extensions/saxon65; D: /trunk/xsl/extensions/xalan2/com; M: /trunk/xsl/extensions/xalan2/src/com/nwalsh/xalan/Func.java; A: /trunk/xsl/extensions/xalan2/test; A: /trunk/xsl/extensions/saxon65/src/com; A: /trunk/xsl/extensions/xalan2/nbproject/build-impl.xml; A: /trunk/xsl/extensions/xalan2/nbproject; A: /trunk/xsl/extensions/xalan2/src; A: /trunk/xsl/extensions/xalan2/nbproject/project.properties; D: /trunk/xsl/extensions/.cvsignore; M: /trunk/xsl/extensions/Makefile; D: /trunk/xsl/extensions/saxon8; A: /trunk/xsl/extensions/saxon65/nbproject/genfiles.properties; A: /trunk/xsl/extensions/xalan2/nbproject/project.xml; A: /trunk/xsl/extensions/saxon65/test; M: /trunk/xsl/extensions/xalan2/src/com/nwalsh/xalan/Verbatim.java; A: /trunk/xsl/extensions/xalan2/build.xml; M: /trunk/xsl/extensions/xalan2; D: /trunk/xsl/extensions/saxon643; A: /trunk/xsl/extensions/saxon65/nbproject/build-impl.xml - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Extensions changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+
+<listitem>
+<literallayout><phrase role="commit-message">xsl:sort lang attribute now uses two-char substring of lang attribute.<alt>M: /trunk/xsl/fo/autoidx-kimber.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Support titlecase "Java", "Perl", and "IDL" as values for the
+language attribute on <tag>classsynopsis</tag>, etc. (instead of just
+lowercase "java", "perl", and "idl"). Also support "c++" and "C++"
+(instead of just "cpp").
+
+Affects HTML, FO, and manpages output. Closes bug 1552332. Thanks
+to "Brian A. Vanderburg II".<alt>M: /trunk/xsl/fo/synop.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added support for the <parameter>reference.autolabel</parameter> param in (X)HTML and FO
+output.<alt>M: /trunk/xsl/fo/param.xweb; M: /trunk/xsl/fo/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Support <tag>row</tag>s that are *completely* overlapped by the preceding <tag>row</tag><alt>M: /trunk/xsl/fo/table.xsl - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Rearranged templates for the 3 indexing methods
+and changed method named 'english' to 'basic'.<alt>M: /trunk/xsl/fo/autoidx.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">New modules for supporting indexing extensions.<alt>A: /trunk/xsl/fo/autoidx-kimber.xsl; A: /trunk/xsl/fo/autoidx-kosek.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Turn off blank-body for <parameter>fop1.extensions</parameter> too since fop 0.92
+does not support it either.<alt>M: /trunk/xsl/fo/pagesetup.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Add Xalan variant to test for exslt:node-set <tag>function</tag>.
+Xalan can use <tag>function</tag> named node-set(), but doesn't
+recognize it using function-available().<alt>M: /trunk/xsl/fo/autoidx.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added support to FO stylesheets for handling instances of <tag>Org</tag>
+where it occurs outside of *<tag>info</tag> content. In HTML stylesheets,
+moved handling of <tag>Org</tag> out of info.xsl and into inline.xsl. In both
+FO and HTML stylesheets, added support for correctly processing
+<tag>Affiliation</tag> and <tag>Jobtitle</tag>.<alt>M: /trunk/xsl/fo/inline.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Don't output punctuation between <tag>Refname</tag> and <tag>Refpurpose</tag> if
+<tag>Refpurpose</tag> is empty. Also corrected handling of <tag>Refsect2</tag>/<tag>title</tag>
+instances, and removed some debugging stuff that was generated in
+manpages output to mark the ends of sections.<alt>M: /trunk/xsl/fo/refentry.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added new <parameter>email.delimiters.enabled</parameter> param. If non-zero (the
+default), delimiters are generated around e-mail addresses (output
+of the <tag>email</tag> element). If zero, the delimiters are suppressed.<alt>M: /trunk/xsl/fo/inline.xsl; M: /trunk/xsl/fo/param.xweb; M: /trunk/xsl/fo/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Initial support of syntax highlighting of programlistings.<alt>M: /trunk/xsl/fo/param.ent; M: /trunk/xsl/fo/param.xweb; A: /trunk/xsl/fo/highlight.xsl; M: /trunk/xsl/fo/verbatim.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message"><tag>Chapter</tag> after <tag>preface</tag> should restart numbering of pages.<alt>M: /trunk/xsl/fo/pagesetup.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+
+<listitem>
+<literallayout><phrase role="commit-message">xsl:sort lang attribute now uses two-char substring of lang attribute.<alt>M: /trunk/xsl/html/autoidx-kimber.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support titlecase "Java", "Perl", and "IDL" as values for the
+language attribute on <tag>classsynopsis</tag>, etc. (instead of just
+lowercase "java", "perl", and "idl"). Also support "c++" and "C++"
+(instead of just "cpp").
+
+Affects HTML, FO, and manpages output. Closes bug 1552332. Thanks
+to "Brian A. Vanderburg II".<alt>M: /trunk/xsl/html/synop.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added support for the <parameter>reference.autolabel</parameter> param in (X)HTML and FO
+output.<alt>M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support <tag>row</tag>s that are *completely* overlapped by the preceding <tag>row</tag><alt>M: /trunk/xsl/html/table.xsl - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Rearranged templates for the 3 indexing methods
+and changed method named 'english' to 'basic'.<alt>M: /trunk/xsl/html/autoidx.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">New modules for supporting indexing extensions.<alt>A: /trunk/xsl/html/autoidx-kimber.xsl; A: /trunk/xsl/html/autoidx-kosek.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added several new HTML parameters for controlling appearance of
+content on HTML <tag>title</tag> pages:
+
+<parameter>contrib.inline.enabled</parameter>:
+  If non-zero (the default), output of the <tag>contrib</tag> element is
+  displayed as inline content rather than as block content.
+
+<parameter>othercredit.like.author.enabled</parameter>:
+  If non-zero, output of the <tag>othercredit</tag> element on titlepages is
+  displayed in the same style as <tag>author</tag> and <tag>editor</tag> output. If zero
+  (the default), <tag>othercredit</tag> output is displayed using a style
+  different than that of <tag>author</tag> and <tag>editor</tag>.
+
+<parameter>blurb.on.titlepage.enabled</parameter>:
+  If non-zero, output from authorblurb and <tag>personblurb</tag> elements is
+  displayed on <tag>title</tag> pages. If zero (the default), output from
+  those elements is suppressed on <tag>title</tag> pages (unless you are
+  using a titlepage customization that causes them to be included).
+
+<parameter>editedby.enabled</parameter>
+  If non-zero (the default), a localized Edited by heading is
+  displayed above <tag>editor</tag> names in output of the <tag>editor</tag> element.<alt>M: /trunk/xsl/html/titlepage.xsl; M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Add Xalan variant to test for exslt:node-set <tag>function</tag>.
+Xalan can use <tag>function</tag> named node-set(), but doesn't
+recognize it using function-available().<alt>M: /trunk/xsl/html/autoidx.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added support to FO stylesheets for handling instances of <tag>Org</tag>
+where it occurs outside of *<tag>info</tag> content. In HTML stylesheets,
+moved handling of <tag>Org</tag> out of info.xsl and into inline.xsl. In both
+FO and HTML stylesheets, added support for correctly processing
+<tag>Affiliation</tag> and <tag>Jobtitle</tag>.<alt>M: /trunk/xsl/html/inline.xsl; M: /trunk/xsl/html/info.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Don't output punctuation between <tag>Refname</tag> and <tag>Refpurpose</tag> if
+<tag>Refpurpose</tag> is empty. Also corrected handling of <tag>Refsect2</tag>/<tag>title</tag>
+instances, and removed some debugging stuff that was generated in
+manpages output to mark the ends of sections.<alt>M: /trunk/xsl/html/refentry.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added new <parameter>email.delimiters.enabled</parameter> param. If non-zero (the
+default), delimiters are generated around e-mail addresses (output
+of the <tag>email</tag> element). If zero, the delimiters are suppressed.<alt>M: /trunk/xsl/html/inline.xsl; M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added <parameter>qanda.nested.in.toc</parameter> param. Default value is zero. If
+non-zero, instances of "nested" <tag>Qandaentry</tag> (ones that are children
+of <tag>Answer</tag> elements) are displayed in the <tag>TOC</tag>. Closes patch 1509018
+(from Daniel Leidert). Currently on affects HTML output (no patch
+for FO output provided).<alt>M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/param.ent; M: /trunk/xsl/html/qandaset.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+
+<listitem>
+<literallayout><phrase role="commit-message">Improved handling of relative locations generated files<alt>M: /trunk/xsl/html/html.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Initial support of syntax highlighting of programlistings.<alt>M: /trunk/xsl/html/param.ent; M: /trunk/xsl/html/param.xweb; A: /trunk/xsl/html/highlight.xsl; M: /trunk/xsl/html/verbatim.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support <tag>org</tag><alt>M: /trunk/xsl/html/info.xsl - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support <tag>person</tag><alt>M: /trunk/xsl/html/inline.xsl - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support $keep.relative.image.uris also when chunking<alt>M: /trunk/xsl/html/chunk-code.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_Highlighting">
+<title>Highlighting</title>
+<para>The following changes have been made to the
+            <filename>highlighting</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+
+<listitem>
+<literallayout><phrase role="commit-message">Initial support of syntax highlighting of programlistings.<alt>A: /trunk/xsl/highlighting/php-hl.xml; A: /trunk/xsl/highlighting/common.xsl; A: /trunk/xsl/highlighting/delphi-hl.xml; A: /trunk/xsl/highlighting/myxml-hl.xml; A: /trunk/xsl/highlighting/m2-hl.xml; A: /trunk/xsl/highlighting/ini-hl.xml; A: /trunk/xsl/highlighting/xslthl-config.xml; A: /trunk/xsl/highlighting/java-hl.xml - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Highlighting changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+
+<listitem>
+<literallayout><phrase role="commit-message">Suppress <tag>footnote</tag> markers and output warning that footnotes are
+not yet supported.<alt>M: /trunk/xsl/manpages/docbook.xsl; M: /trunk/xsl/manpages/links.xsl; M: /trunk/xsl/manpages/other.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Handle instances of <tag>address</tag>/<tag>otheraddr</tag>/ulink in <tag>author</tag> et al in the
+same way as <tag>email</tag> instances; that is, display them on the same
+linke as the <tag>author</tag>, <tag>editor</tag>, etc., name.<alt>M: /trunk/xsl/manpages/info.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Don't number or link-list any Ulink instance whose string value is
+identical to the value of its url attribute. Just display it inline.<alt>M: /trunk/xsl/manpages/links.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Don't output punctuation between <tag>Refname</tag> and <tag>Refpurpose</tag> if
+<tag>Refpurpose</tag> is empty. Also corrected handling of <tag>Refsect2</tag>/<tag>title</tag>
+instances, and removed some debugging stuff that was generated in
+manpages output to mark the ends of sections.<alt>M: /trunk/xsl/manpages/refentry.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added new <parameter>email.delimiters.enabled</parameter> param. If non-zero (the
+default), delimiters are generated around e-mail addresses (output
+of the <tag>email</tag> element). If zero, the delimiters are suppressed.<alt>M: /trunk/xsl/manpages/param.xweb; M: /trunk/xsl/manpages/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">In manpages output, if the last/nearest *<tag>info</tag> element for
+particular <tag>Refentry</tag> has multiple <tag>Copyright</tag> and/or <tag>Legalnotice</tag>
+children, process them all (not just the first ones). Closes bug
+1524576. Thanks to Sam Steingold for the report and to Daniel
+Leidert for providing a patch.<alt>M: /trunk/xsl/manpages/info.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added <parameter>reference.autolabel</parameter> parameter for controlling labels on
+<tag>reference</tag> output.<alt>A: /trunk/xsl/params/reference.autolabel.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added namespace declarations to document elements for all param files.<alt>M: /trunk/xsl/params/toc.line.properties.xml; M: /trunk/xsl/params/title.font.family.xml; M: /trunk/xsl/params/component.label.includes.part.label.xml; M: /trunk/xsl/params/refentry.manual.profile.xml; M: /trunk/xsl/params/orderedlist.properties.xml; M: /trunk/xsl/params/olink.pubid.xml; M: /trunk/xsl/params/informalexample.properties.xml; M: /trunk/xsl/params/appendix.autolabel.xml; M: /trunk/xsl/params/htmlhelp.show.toolbar.text.xml; M: /trunk/xsl/params/index.on.role.xml; M: /trunk/xsl/params/htmlhelp.button.jump2.url.xml; M: /trunk/xsl/params/variablelist.term.separator.xml; M: /trunk/xsl/params/para.propagates.style.xml; M: /trunk/xsl/params/html.stylesheet.xml; M: /trunk/xsl/params/qanda.nested.in.toc.xml; M: /trunk/xsl/params/annotation.css.xml; M: /trunk/xsl/params/funcsynopsis.style.xml; M: /trunk/xsl/params/htmlhelp.encoding.xml; M: /trunk/xsl/params/footer.content.properties.xml; M: /trunk/xsl/params/verbatim.properties.xml; M: /trunk/xsl/params/autotoc.label.in.hyperlink.xml; M: /trunk/xsl/params/body.margin.top.xml; M: /trunk/xsl/params/bibliography.numbered.xml; M: /trunk/xsl/params/figure.properties.xml; M: /trunk/xsl/params/variablelist.max.termlength.xml; M: /trunk/xsl/params/table.cell.border.style.xml; M: /trunk/xsl/params/htmlhelp.button.options.xml; M: /trunk/xsl/params/preferred.mediaobject.role.xml; M: /trunk/xsl/params/htmlhelp.chm.xml; M: /trunk/xsl/params/man.charmap.subset.profile.xml; M: /trunk/xsl/params/qanda.title.level3.properties.xml; M: /trunk/xsl/params/page.width.xml; M: /trunk/xsl/params/firstterm.only.link.xml; M: /trunk/xsl/params/section.level6.properties.xml; M: /trunk/xsl/params/htmlhelp.button.locate.xml; M: /trunk/xsl/params/chunk.sections.xml; M: /trunk/xsl/params/use.local.olink.style.xml; M: /trunk/xsl/params/refentry.date.profile.enabled.xml; M: /trunk/xsl/params/refentry.version.suppress.xml; M: /trunk/xsl/params/refentry.generate.title.xml; M: /trunk/xsl/params/punct.honorific.xml; M: /trunk/xsl/params/column.gap.index.xml; M: /trunk/xsl/params/body.start.indent.xml; M: /trunk/xsl/params/crop.mark.width.xml; M: /trunk/xsl/params/refentry.version.profile.enabled.xml; M: /trunk/xsl/params/superscript.properties.xml; M: /trunk/xsl/params/chunker.output.doctype-public.xml; M: /trunk/xsl/params/saxon.character.representation.xml; M: /trunk/xsl/params/saxon.linenumbering.xml; M: /trunk/xsl/params/shade.verbatim.style.xml; M: /trunk/xsl/params/annotate.toc.xml; M: /trunk/xsl/params/profile.attribute.xml; M: /trunk/xsl/params/callout.graphics.number.limit.xml; M: /trunk/xsl/params/profile.arch.xml; M: /trunk/xsl/params/saxon.tablecolumns.xml; M: /trunk/xsl/params/glossterm.auto.link.xml; M: /trunk/xsl/params/default.units.xml; M: /trunk/xsl/params/qanda.title.level1.properties.xml; M: /trunk/xsl/params/list.block.spacing.xml; M: /trunk/xsl/params/section.level4.properties.xml; M: /trunk/xsl/params/spacing.paras.xml; M: /trunk/xsl/params/column.count.index.xml; M: /trunk/xsl/params/dingbat.font.family.xml; M: /trunk/xsl/params/citerefentry.link.xml; M: /trunk/xsl/params/keep.relative.image.uris.xml; M: /trunk/xsl/params/ulink.footnotes.xml; M: /trunk/xsl/params/prefer.internal.olink.xml; M: /trunk/xsl/params/refentry.title.properties.xml; M: /trunk/xsl/params/variablelist.term.break.after.xml; M: /trunk/xsl/params/use.id.function.xml; M: /trunk/xsl/params/callout.unicode.start.character.xml; M: /trunk/xsl/params/column.gap.titlepage.xml; M: /trunk/xsl/params/editedby.enabled.xml; M: /trunk/xsl/params/funcsynopsis.tabular.threshold.xml; M: /trunk/xsl/params/use.extensions.xml; M: /trunk/xsl/params/index.preferred.page.properties.xml; M: /trunk/xsl/params/man.th.extra3.max.length.xml; M: /trunk/xsl/params/column.gap.back.xml; M: /trunk/xsl/params/tex.math.delims.xml; M: /trunk/xsl/params/article.appendix.title.properties.xml; M: /trunk/xsl/params/ulink.target.xml; M: /trunk/xsl/params/suppress.header.navigation.xml; M: /trunk/xsl/params/olink.resolver.xml; M: /trunk/xsl/params/admon.textlabel.xml; M: /trunk/xsl/params/procedure.properties.xml; M: /trunk/xsl/params/blurb.on.titlepage.enabled.xml; M: /trunk/xsl/params/section.level2.properties.xml; M: /trunk/xsl/params/column.gap.front.xml; M: /trunk/xsl/params/margin.note.title.properties.xml; M: /trunk/xsl/params/glossary.collection.xml; M: /trunk/xsl/params/admon.graphics.xml; M: /trunk/xsl/params/current.docid.xml; M: /trunk/xsl/params/qanda.inherit.numeration.xml; M: /trunk/xsl/params/table.cell.padding.xml; M: /trunk/xsl/params/preface.autolabel.xml; M: /trunk/xsl/params/man.th.extra3.suppress.xml; M: /trunk/xsl/params/wordml.template.xml; M: /trunk/xsl/params/htmlhelp.use.hhk.xml; M: /trunk/xsl/params/textinsert.extension.xml; M: /trunk/xsl/params/ebnf.table.bgcolor.xml; M: /trunk/xsl/params/refentry.source.fallback.profile.xml; M: /trunk/xsl/params/body.font.master.xml; M: /trunk/xsl/params/l10n.gentext.default.language.xml; M: /trunk/xsl/params/list.block.properties.xml; M: /trunk/xsl/params/refentry.source.name.suppress.xml; M: /trunk/xsl/params/htmlhelp.hhp.window.xml; M: /trunk/xsl/params/sidebar.properties.xml; M: /trunk/xsl/params/tex.math.file.xml; M: /trunk/xsl/params/man.justify.xml; M: /trunk/xsl/params/subscript.properties.xml; M: /trunk/xsl/params/column.count.front.xml; M: /trunk/xsl/params/index.term.separator.xml; M: /trunk/xsl/params/biblioentry.properties.xml; M: /trunk/xsl/params/biblioentry.item.separator.xml; M: /trunk/xsl/params/htmlhelp.button.home.url.xml; M: /trunk/xsl/params/column.count.body.xml; M: /trunk/xsl/params/suppress.navigation.xml; M: /trunk/xsl/params/htmlhelp.remember.window.position.xml; M: /trunk/xsl/params/htmlhelp.hhc.section.depth.xml; M: /trunk/xsl/params/xref.with.number.and.title.xml; M: /trunk/xsl/params/make.year.ranges.xml; M: /trunk/xsl/params/region.before.extent.xml; M: /trunk/xsl/params/xref.label-page.separator.xml; M: /trunk/xsl/params/html.longdesc.link.xml; M: /trunk/xsl/params/man.subheading.divider.enabled.xml; M: /trunk/xsl/params/index.entry.properties.xml; M: /trunk/xsl/params/generate.legalnotice.link.xml; M: /trunk/xsl/params/section.autolabel.xml; M: /trunk/xsl/params/html.base.xml; M: /trunk/xsl/params/suppress.footer.navigation.xml; M: /trunk/xsl/params/nominal.image.depth.xml; M: /trunk/xsl/params/table.footnote.number.symbols.xml; M: /trunk/xsl/params/table.footnote.number.format.xml; M: /trunk/xsl/params/callout.graphics.xml; M: /trunk/xsl/params/man.break.after.slash.xml; M: /trunk/xsl/params/function.parens.xml; M: /trunk/xsl/params/part.autolabel.xml; M: /trunk/xsl/params/saxon.callouts.xml; M: /trunk/xsl/params/css.decoration.xml; M: /trunk/xsl/params/htmlhelp.button.home.xml; M: /trunk/xsl/params/email.delimiters.enabled.xml; M: /trunk/xsl/params/column.count.lot.xml; M: /trunk/xsl/params/draft.mode.xml; M: /trunk/xsl/params/use.role.for.mediaobject.xml; M: /trunk/xsl/params/refentry.separator.xml; M: /trunk/xsl/params/man.font.funcsynopsisinfo.xml; M: /trunk/xsl/params/man.output.manifest.filename.xml; M: /trunk/xsl/params/process.empty.source.toc.xml; M: /trunk/xsl/params/man.output.in.separate.dir.xml; M: /trunk/xsl/params/graphicsize.use.img.src.path.xml; M: /trunk/xsl/params/man.output.encoding.xml; M: /trunk/xsl/params/column.gap.lot.xml; M: /trunk/xsl/params/profile.role.xml; M: /trunk/xsl/params/column.count.titlepage.xml; M: /trunk/xsl/params/show.comments.xml; M: /trunk/xsl/params/informalfigure.properties.xml; M: /trunk/xsl/params/entry.propagates.style.xml; M: /trunk/xsl/params/bibliography.collection.xml; M: /trunk/xsl/params/contrib.inline.enabled.xml; M: /trunk/xsl/params/section.title.level5.properties.xml; M: /trunk/xsl/params/fop.extensions.xml; M: /trunk/xsl/params/htmlhelp.button.jump1.xml; M: /trunk/xsl/params/man.hyphenate.urls.xml; M: /trunk/xsl/params/profile.condition.xml; M: /trunk/xsl/params/header.column.widths.xml; M: /trunk/xsl/params/annotation.js.xml; M: /trunk/xsl/params/chunker.output.standalone.xml; M: /trunk/xsl/params/targets.filename.xml; M: /trunk/xsl/params/default.float.class.xml; M: /trunk/xsl/params/chapter.autolabel.xml; M: /trunk/xsl/params/sidebar.float.type.xml; M: /trunk/xsl/params/profile.separator.xml; M: /trunk/xsl/params/generate.index.xml; M: /trunk/xsl/params/nongraphical.admonition.properties.xml; M: /trunk/xsl/params/navig.graphics.xml; M: /trunk/xsl/params/htmlhelp.button.next.xml; M: /trunk/xsl/params/insert.olink.pdf.frag.xml; M: /trunk/xsl/params/htmlhelp.button.stop.xml; M: /trunk/xsl/params/footnote.font.size.xml; M: /trunk/xsl/params/profile.value.xml; M: /trunk/xsl/params/ebnf.table.border.xml; M: /trunk/xsl/params/htmlhelp.hhc.folders.instead.books.xml; M: /trunk/xsl/params/glossary.as.blocks.xml; M: /trunk/xsl/params/body.end.indent.xml; M: /trunk/xsl/params/use.role.as.xrefstyle.xml; M: /trunk/xsl/params/man.indent.blurbs.xml; M: /trunk/xsl/params/chunker.output.encoding.xml; M: /trunk/xsl/params/chunker.output.omit-xml-declaration.xml; M: /trunk/xsl/params/sans.font.family.xml; M: /trunk/xsl/params/html.cleanup.xml; M: /trunk/xsl/params/htmlhelp.hhp.xml; M: /trunk/xsl/params/htmlhelp.only.xml; M: /trunk/xsl/params/eclipse.plugin.name.xml; M: /trunk/xsl/params/section.title.level3.properties.xml; M: /trunk/xsl/params/man.th.extra1.suppress.xml; M: /trunk/xsl/params/chunk.section.depth.xml; M: /trunk/xsl/params/htmlhelp.hhp.tail.xml; M: /trunk/xsl/params/sidebar.title.properties.xml; M: /trunk/xsl/params/hyphenate.xml; M: /trunk/xsl/params/paper.type.xml; M: /trunk/xsl/params/chunk.tocs.and.lots.has.title.xml; M: /trunk/xsl/params/symbol.font.family.xml; M: /trunk/xsl/params/page.margin.bottom.xml; M: /trunk/xsl/params/callout.unicode.number.limit.xml; M: /trunk/xsl/params/itemizedlist.properties.xml; M: /trunk/xsl/params/root.filename.xml; M: /trunk/xsl/params/tablecolumns.extension.xml; M: /trunk/xsl/params/htmlhelp.show.favorities.xml; M: /trunk/xsl/params/informaltable.properties.xml; M: /trunk/xsl/params/revhistory.table.cell.properties.xml; M: /trunk/xsl/params/htmlhelp.default.topic.xml; M: /trunk/xsl/params/compact.list.item.spacing.xml; M: /trunk/xsl/params/page.height.portrait.xml; M: /trunk/xsl/params/html.head.legalnotice.link.types.xml; M: /trunk/xsl/params/passivetex.extensions.xml; M: /trunk/xsl/params/orderedlist.label.properties.xml; M: /trunk/xsl/params/othercredit.like.author.enabled.xml; M: /trunk/xsl/params/header.content.properties.xml; M: /trunk/xsl/params/refentry.meta.get.quietly.xml; M: /trunk/xsl/params/section.properties.xml; M: /trunk/xsl/params/htmlhelp.button.hideshow.xml; M: /trunk/xsl/params/simplesect.in.toc.xml; M: /trunk/xsl/params/chunk.quietly.xml; M: /trunk/xsl/params/htmlhelp.enumerate.images.xml; M: /trunk/xsl/params/section.title.level1.properties.xml; M: /trunk/xsl/params/qanda.defaultlabel.xml; M: /trunk/xsl/params/htmlhelp.enhanced.decompilation.xml; M: /trunk/xsl/params/man.th.title.max.length.xml; M: /trunk/xsl/params/footnote.number.format.xml; M: /trunk/xsl/params/body.margin.bottom.xml; M: /trunk/xsl/params/htmlhelp.window.geometry.xml; M: /trunk/xsl/params/htmlhelp.button.jump2.xml; M: /trunk/xsl/params/use.svg.xml; M: /trunk/xsl/params/qanda.title.level6.properties.xml; M: /trunk/xsl/params/collect.xref.targets.xml; M: /trunk/xsl/params/html.extra.head.links.xml; M: /trunk/xsl/params/variablelist.as.table.xml; M: /trunk/xsl/params/man.indent.width.xml; M: /trunk/xsl/params/eclipse.plugin.id.xml; M: /trunk/xsl/params/linenumbering.width.xml; M: /trunk/xsl/params/axf.extensions.xml; M: /trunk/xsl/params/menuchoice.separator.xml; M: /trunk/xsl/params/glossterm.separation.xml; M: /trunk/xsl/params/htmlhelp.autolabel.xml; M: /trunk/xsl/params/chunk.separate.lots.xml; M: /trunk/xsl/params/man.hyphenate.computer.inlines.xml; M: /trunk/xsl/params/linenumbering.separator.xml; M: /trunk/xsl/params/htmlhelp.title.xml; M: /trunk/xsl/params/index.number.separator.xml; M: /trunk/xsl/params/htmlhelp.button.prev.xml; M: /trunk/xsl/params/refentry.manual.fallback.profile.xml; M: /trunk/xsl/params/table.frame.border.color.xml; M: /trunk/xsl/params/footnote.sep.leader.properties.xml; M: /trunk/xsl/params/hyphenate.verbatim.characters.xml; M: /trunk/xsl/params/table.cell.border.thickness.xml; M: /trunk/xsl/params/template.xml; M: /trunk/xsl/params/margin.note.properties.xml; M: /trunk/xsl/params/man.segtitle.suppress.xml; M: /trunk/xsl/params/generate.toc.xml; M: /trunk/xsl/params/formal.object.properties.xml; M: /trunk/xsl/params/footnote.mark.properties.xml; M: /trunk/xsl/params/header.table.height.xml; M: /trunk/xsl/params/htmlhelp.button.back.xml; M: /trunk/xsl/params/qanda.title.level4.properties.xml; M: /trunk/xsl/params/man.links.are.numbered.xml; M: /trunk/xsl/params/manual.toc.xml; M: /trunk/xsl/params/olink.lang.fallback.sequence.xml; M: /trunk/xsl/params/refentry.manual.profile.enabled.xml; M: /trunk/xsl/params/ulink.hyphenate.chars.xml; M: /trunk/xsl/params/manifest.xml; M: /trunk/xsl/params/olink.fragid.xml; M: /trunk/xsl/params/refentry.date.profile.xml; M: /trunk/xsl/params/linenumbering.extension.xml; M: /trunk/xsl/params/component.title.properties.xml; M: /trunk/xsl/params/alignment.xml; M: /trunk/xsl/params/refentry.version.profile.xml; M: /trunk/xsl/params/ebnf.assignment.xml; M: /trunk/xsl/params/htmlhelp.button.print.xml; M: /trunk/xsl/params/annotation.support.xml; M: /trunk/xsl/params/sidebar.float.width.xml; M: /trunk/xsl/params/normal.para.spacing.xml; M: /trunk/xsl/params/xref.title-page.separator.xml; M: /trunk/xsl/params/callout.unicode.font.xml; M: /trunk/xsl/params/default.table.frame.xml; M: /trunk/xsl/params/pages.template.xml; M: /trunk/xsl/params/htmlhelp.button.zoom.xml; M: /trunk/xsl/params/admonition.title.properties.xml; M: /trunk/xsl/params/callout.graphics.extension.xml; M: /trunk/xsl/params/make.valid.html.xml; M: /trunk/xsl/params/qanda.title.level2.properties.xml; M: /trunk/xsl/params/page.margin.top.xml; M: /trunk/xsl/params/xep.index.item.properties.xml; M: /trunk/xsl/params/section.level5.properties.xml; M: /trunk/xsl/params/line-height.xml; M: /trunk/xsl/params/table.cell.border.color.xml; M: /trunk/xsl/params/qandadiv.autolabel.xml; M: /trunk/xsl/params/xref.label-title.separator.xml; M: /trunk/xsl/params/chunk.tocs.and.lots.xml; M: /trunk/xsl/params/man.font.funcprototype.xml; M: /trunk/xsl/params/process.source.toc.xml; M: /trunk/xsl/params/page.orientation.xml; M: /trunk/xsl/params/refentry.generate.name.xml; M: /trunk/xsl/params/navig.showtitles.xml; M: /trunk/xsl/params/table.table.properties.xml; M: /trunk/xsl/params/arbortext.extensions.xml; M: /trunk/xsl/params/informalequation.properties.xml; M: /trunk/xsl/params/headers.on.blank.pages.xml; M: /trunk/xsl/params/table.footnote.properties.xml; M: /trunk/xsl/params/root.properties.xml; M: /trunk/xsl/params/htmlhelp.display.progress.xml; M: /trunk/xsl/params/htmlhelp.hhp.windows.xml; M: /trunk/xsl/params/graphical.admonition.properties.xml; M: /trunk/xsl/params/refclass.suppress.xml; M: /trunk/xsl/params/profile.conformance.xml; M: /trunk/xsl/params/htmlhelp.button.forward.xml; M: /trunk/xsl/params/segmentedlist.as.table.xml; M: /trunk/xsl/params/margin.note.float.type.xml; M: /trunk/xsl/params/man.table.footnotes.divider.xml; M: /trunk/xsl/params/man.output.quietly.xml; M: /trunk/xsl/params/htmlhelp.hhc.show.root.xml; M: /trunk/xsl/params/footers.on.blank.pages.xml; M: /trunk/xsl/params/crop.mark.offset.xml; M: /trunk/xsl/params/olink.doctitle.xml; M: /trunk/xsl/params/section.level3.properties.xml; M: /trunk/xsl/params/callout.unicode.xml; M: /trunk/xsl/params/formal.procedures.xml; M: /trunk/xsl/params/toc.section.depth.xml; M: /trunk/xsl/params/index.prefer.titleabbrev.xml; M: /trunk/xsl/params/nominal.image.width.xml; M: /trunk/xsl/params/htmlhelp.show.menu.xml; M: /trunk/xsl/params/linenumbering.everyNth.xml; M: /trunk/xsl/params/double.sided.xml; M: /trunk/xsl/params/generate.revhistory.link.xml; M: /trunk/xsl/params/olink.properties.xml; M: /trunk/xsl/params/tex.math.in.alt.xml; M: /trunk/xsl/params/man.output.subdirs.enabled.xml; M: /trunk/xsl/params/section.title.properties.xml; M: /trunk/xsl/params/column.count.back.xml; M: /trunk/xsl/params/toc.indent.width.xml; M: /trunk/xsl/params/man.charmap.uri.xml; M: /trunk/xsl/params/index.method.xml; M: /trunk/xsl/params/generate.section.toc.level.xml; M: /trunk/xsl/params/page.width.portrait.xml; M: /trunk/xsl/params/man.th.extra2.max.length.xml; M: /trunk/xsl/params/abstract.properties.xml; M: /trunk/xsl/params/revhistory.table.properties.xml; M: /trunk/xsl/params/nominal.table.width.xml; M: /trunk/xsl/params/ulink.show.xml; M: /trunk/xsl/params/htmlhelp.button.jump1.title.xml; M: /trunk/xsl/params/index.div.title.properties.xml; M: /trunk/xsl/params/profile.userlevel.xml; M: /trunk/xsl/params/html.cellpadding.xml; M: /trunk/xsl/params/orderedlist.label.width.xml; M: /trunk/xsl/params/crop.marks.xml; M: /trunk/xsl/params/menuchoice.menu.separator.xml; M: /trunk/xsl/params/author.othername.in.middle.xml; M: /trunk/xsl/params/section.level1.properties.xml; M: /trunk/xsl/params/textdata.default.encoding.xml; M: /trunk/xsl/params/label.from.part.xml; M: /trunk/xsl/params/use.embed.for.svg.xml; M: /trunk/xsl/params/list.item.spacing.xml; M: /trunk/xsl/params/htmlhelp.hhc.width.xml; M: /trunk/xsl/params/column.gap.body.xml; M: /trunk/xsl/params/rootid.xml; M: /trunk/xsl/params/glosslist.as.blocks.xml; M: /trunk/xsl/params/index.range.separator.xml; M: /trunk/xsl/params/html.ext.xml; M: /trunk/xsl/params/callout.list.table.xml; M: /trunk/xsl/params/highlight.source.xml; M: /trunk/xsl/params/show.revisionflag.xml; M: /trunk/xsl/params/man.output.manifest.enabled.xml; M: /trunk/xsl/params/make.single.year.ranges.xml; M: /trunk/xsl/params/pgwide.properties.xml; M: /trunk/xsl/params/generate.id.attributes.xml; M: /trunk/xsl/params/emphasis.propagates.style.xml; M: /trunk/xsl/params/abstract.title.properties.xml; M: /trunk/xsl/params/htmlhelp.hhc.xml; M: /trunk/xsl/params/monospace.properties.xml; M: /trunk/xsl/params/htmlhelp.hhk.xml; M: /trunk/xsl/params/table.borders.with.css.xml; M: /trunk/xsl/params/man.links.are.underlined.xml; M: /trunk/xsl/params/profile.vendor.xml; M: /trunk/xsl/params/shade.verbatim.xml; M: /trunk/xsl/params/callout.graphics.path.xml; M: /trunk/xsl/params/olink.debug.xml; M: /trunk/xsl/params/make.graphic.viewport.xml; M: /trunk/xsl/params/footnote.number.symbols.xml; M: /trunk/xsl/params/man.charmap.enabled.xml; M: /trunk/xsl/params/page.height.xml; M: /trunk/xsl/params/htmlhelp.button.jump1.url.xml; M: /trunk/xsl/params/man.font.table.title.xml; M: /trunk/xsl/params/revhistory.title.properties.xml; M: /trunk/xsl/params/chunker.output.media-type.xml; M: /trunk/xsl/params/glossterm.width.xml; M: /trunk/xsl/params/points.per.em.xml; M: /trunk/xsl/params/page.margin.inner.xml; M: /trunk/xsl/params/itemizedlist.label.width.xml; M: /trunk/xsl/params/ulink.hyphenate.xml; M: /trunk/xsl/params/crop.mark.bleed.xml; M: /trunk/xsl/params/use.id.as.filename.xml; M: /trunk/xsl/params/section.title.level6.properties.xml; M: /trunk/xsl/params/highlight.default.language.xml; M: /trunk/xsl/params/man.th.extra2.suppress.xml; M: /trunk/xsl/params/id.warnings.xml; M: /trunk/xsl/params/title.margin.left.xml; M: /trunk/xsl/params/chunker.output.doctype-system.xml; M: /trunk/xsl/params/man.indent.verbatims.xml; M: /trunk/xsl/params/table.frame.border.thickness.xml; M: /trunk/xsl/params/monospace.verbatim.properties.xml; M: /trunk/xsl/params/formal.title.properties.xml; M: /trunk/xsl/params/margin.note.width.xml; M: /trunk/xsl/params/man.hyphenate.filenames.xml; M: /trunk/xsl/params/blockquote.properties.xml; M: /trunk/xsl/params/callout.defaultcolumn.xml; M: /trunk/xsl/params/profile.security.xml; M: /trunk/xsl/params/informal.object.properties.xml; M: /trunk/xsl/params/formal.title.placement.xml; M: /trunk/xsl/params/draft.watermark.image.xml; M: /trunk/xsl/params/equation.properties.xml; M: /trunk/xsl/params/body.font.family.xml; M: /trunk/xsl/params/ignore.image.scaling.xml; M: /trunk/xsl/params/chunk.first.sections.xml; M: /trunk/xsl/params/base.dir.xml; M: /trunk/xsl/params/footnote.properties.xml; M: /trunk/xsl/params/olink.outline.ext.xml; M: /trunk/xsl/params/img.src.path.xml; M: /trunk/xsl/params/qanda.title.properties.xml; M: /trunk/xsl/params/ebnf.statement.terminator.xml; M: /trunk/xsl/params/callouts.extension.xml; M: /trunk/xsl/params/manifest.in.base.dir.xml; M: /trunk/xsl/params/fop1.extensions.xml; M: /trunk/xsl/params/olink.sysid.xml; M: /trunk/xsl/params/section.title.level4.properties.xml; M: /trunk/xsl/params/monospace.font.family.xml; M: /trunk/xsl/params/l10n.gentext.language.xml; M: /trunk/xsl/params/graphic.default.extension.xml; M: /trunk/xsl/params/default.image.width.xml; M: /trunk/xsl/params/htmlhelp.button.refresh.xml; M: /trunk/xsl/params/chunker.output.cdata-section-elements.xml; M: /trunk/xsl/params/admon.graphics.path.xml; M: /trunk/xsl/params/admon.style.xml; M: /trunk/xsl/params/profile.revision.xml; M: /trunk/xsl/params/generate.manifest.xml; M: /trunk/xsl/params/html.longdesc.xml; M: /trunk/xsl/params/footer.rule.xml; M: /trunk/xsl/params/eclipse.plugin.provider.xml; M: /trunk/xsl/params/refentry.source.name.profile.xml; M: /trunk/xsl/params/toc.max.depth.xml; M: /trunk/xsl/params/chunker.output.indent.xml; M: /trunk/xsl/params/html.head.legalnotice.link.multiple.xml; M: /trunk/xsl/params/toc.list.type.xml; M: /trunk/xsl/params/link.mailto.url.xml; M: /trunk/xsl/params/table.properties.xml; M: /trunk/xsl/params/side.float.properties.xml; M: /trunk/xsl/params/man.charmap.use.subset.xml; M: /trunk/xsl/params/annotation.graphic.open.xml; M: /trunk/xsl/params/html.cellspacing.xml; M: /trunk/xsl/params/default.table.width.xml; M: /trunk/xsl/params/xep.extensions.xml; M: /trunk/xsl/params/admonition.properties.xml; M: /trunk/xsl/params/toc.margin.properties.xml; M: /trunk/xsl/params/chunk.toc.xml; M: /trunk/xsl/params/table.entry.padding.xml; M: /trunk/xsl/params/header.rule.xml; M: /trunk/xsl/params/glossentry.show.acronym.xml; M: /trunk/xsl/params/variablelist.as.blocks.xml; M: /trunk/xsl/params/man.hyphenate.xml; M: /trunk/xsl/params/refentry.source.name.profile.enabled.xml; M: /trunk/xsl/params/section.label.includes.component.label.xml; M: /trunk/xsl/params/bridgehead.in.toc.xml; M: /trunk/xsl/params/section.title.level2.properties.xml; M: /trunk/xsl/params/admon.graphics.extension.xml; M: /trunk/xsl/params/inherit.keywords.xml; M: /trunk/xsl/params/insert.xref.page.number.xml; M: /trunk/xsl/params/pixels.per.inch.xml; M: /trunk/xsl/params/refentry.pagebreak.xml; M: /trunk/xsl/params/profile.lang.xml; M: /trunk/xsl/params/insert.olink.page.number.xml; M: /trunk/xsl/params/generate.meta.abstract.xml; M: /trunk/xsl/params/graphicsize.extension.xml; M: /trunk/xsl/params/man.indent.lists.xml; M: /trunk/xsl/params/funcsynopsis.decoration.xml; M: /trunk/xsl/params/runinhead.title.end.punct.xml; M: /trunk/xsl/params/man.string.subst.map.xml; M: /trunk/xsl/params/man.links.list.enabled.xml; M: /trunk/xsl/params/section.autolabel.max.depth.xml; M: /trunk/xsl/params/htmlhelp.show.advanced.search.xml; M: /trunk/xsl/params/htmlhelp.map.file.xml; M: /trunk/xsl/params/l10n.gentext.use.xref.language.xml; M: /trunk/xsl/params/body.font.size.xml; M: /trunk/xsl/params/html.stylesheet.type.xml; M: /trunk/xsl/params/refentry.xref.manvolnum.xml; M: /trunk/xsl/params/runinhead.default.title.end.punct.xml; M: /trunk/xsl/params/navig.graphics.extension.xml; M: /trunk/xsl/params/itemizedlist.label.properties.xml; M: /trunk/xsl/params/htmlhelp.force.map.and.alias.xml; M: /trunk/xsl/params/profile.os.xml; M: /trunk/xsl/params/htmlhelp.alias.file.xml; M: /trunk/xsl/params/page.margin.outer.xml; M: /trunk/xsl/params/annotation.graphic.close.xml; M: /trunk/xsl/params/eclipse.autolabel.xml; M: /trunk/xsl/params/table.frame.border.style.xml; M: /trunk/xsl/params/navig.graphics.path.xml; M: /trunk/xsl/params/htmlhelp.hhc.binary.xml; M: /trunk/xsl/params/index.on.type.xml; M: /trunk/xsl/params/target.database.document.xml; M: /trunk/xsl/params/man.subheading.divider.xml; M: /trunk/xsl/params/chunker.output.method.xml; M: /trunk/xsl/params/make.index.markup.xml; M: /trunk/xsl/params/olink.base.uri.xml; M: /trunk/xsl/params/phrase.propagates.style.xml; M: /trunk/xsl/params/man.indent.refsect.xml; M: /trunk/xsl/params/example.properties.xml; M: /trunk/xsl/params/man.font.table.headings.xml; M: /trunk/xsl/params/profile.revisionflag.xml; M: /trunk/xsl/params/region.after.extent.xml; M: /trunk/xsl/params/qanda.title.level5.properties.xml; M: /trunk/xsl/params/marker.section.level.xml; M: /trunk/xsl/params/footer.table.height.xml; M: /trunk/xsl/params/autotoc.label.separator.xml; M: /trunk/xsl/params/footer.column.widths.xml; M: /trunk/xsl/params/hyphenate.verbatim.xml; M: /trunk/xsl/params/xref.properties.xml; M: /trunk/xsl/params/man.output.base.dir.xml; M: /trunk/xsl/params/man.links.list.heading.xml; M: /trunk/xsl/params/insert.link.page.number.xml; M: /trunk/xsl/params/htmlhelp.button.jump2.title.xml; M: /trunk/xsl/params/l10n.lang.value.rfc.compliant.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Updated index.method doc to describe revised setup for importing <tag>index</tag> extensions.<alt>M: /trunk/xsl/params/index.method.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added several new HTML parameters for controlling appearance of
+content on HTML <tag>title</tag> pages:
+
+<parameter>contrib.inline.enabled</parameter>:
+  If non-zero (the default), output of the <tag>contrib</tag> element is
+  displayed as inline content rather than as block content.
+
+<parameter>othercredit.like.author.enabled</parameter>:
+  If non-zero, output of the <tag>othercredit</tag> element on titlepages is
+  displayed in the same style as <tag>author</tag> and <tag>editor</tag> output. If zero
+  (the default), <tag>othercredit</tag> output is displayed using a style
+  different than that of <tag>author</tag> and <tag>editor</tag>.
+
+<parameter>blurb.on.titlepage.enabled</parameter>:
+  If non-zero, output from authorblurb and <tag>personblurb</tag> elements is
+  displayed on <tag>title</tag> pages. If zero (the default), output from
+  those elements is suppressed on <tag>title</tag> pages (unless you are
+  using a titlepage customization that causes them to be included).
+
+<parameter>editedby.enabled</parameter>
+  If non-zero (the default), a localized Edited by heading is
+  displayed above <tag>editor</tag> names in output of the <tag>editor</tag> element.<alt>A: /trunk/xsl/params/contrib.inline.enabled.xml; A: /trunk/xsl/params/blurb.on.titlepage.enabled.xml; A: /trunk/xsl/params/othercredit.like.author.enabled.xml; A: /trunk/xsl/params/editedby.enabled.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added new <parameter>email.delimiters.enabled</parameter> param. If non-zero (the
+default), delimiters are generated around e-mail addresses (output
+of the <tag>email</tag> element). If zero, the delimiters are suppressed.<alt>A: /trunk/xsl/params/email.delimiters.enabled.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added <parameter>qanda.nested.in.toc</parameter> param. Default value is zero. If
+non-zero, instances of "nested" <tag>Qandaentry</tag> (ones that are children
+of <tag>Answer</tag> elements) are displayed in the <tag>TOC</tag>. Closes patch 1509018
+(from Daniel Leidert). Currently on affects HTML output (no patch
+for FO output provided).<alt>A: /trunk/xsl/params/qanda.nested.in.toc.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Initial support of syntax highlighting of programlistings.<alt>A: /trunk/xsl/params/highlight.source.xml; A: /trunk/xsl/params/highlight.default.language.xml - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_Tools">
+<title>Tools</title>
+<para>The following changes have been made to the
+            <filename>tools</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+
+<listitem>
+<literallayout><phrase role="commit-message">Racheted down font sizes of headings in example makefile FO output.<alt>M: /trunk/xsl/tools/make/Makefile.DocBook - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added param and attribute set to example makefile, for getting
+wrapping in verbatims in FO output.<alt>M: /trunk/xsl/tools/make/Makefile.DocBook - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Renamed Makefile.paramDoc to Makefile.docParam.<alt>A: /trunk/xsl/tools/make/Makefile.docParam; D: /trunk/xsl/tools/make/Makefile.paramDoc - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added Makefile.paramDoc file, for creating versions of param.xsl
+files with doc embedded.<alt>A: /trunk/xsl/tools/make/Makefile.paramDoc - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added variable to example makefile for controlling whether HTML or
+XHTML is generated.<alt>M: /trunk/xsl/tools/make/Makefile.DocBook - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+</itemizedlist>
+</sect2><!--end of Tools changes for 1.71.0-->
+</sect1>
+
+<sect1 xml:id="V1701">
+<title>Release: 1.70.1</title>
+
+<para>This is a stable release of the 1.70 stylesheets. It includes only a
+few small changes from 1.70.0.</para>
+
+<para>The following is a list of changes that have been made
+        since the 1.70.0 release.</para>
+
+<sect2 xml:id="V1701_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+        <filename>fo</filename> code
+        since the 1.70.0 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Added three new attribute sets (revhistory.title.properties, revhistory.table.properties and revhistory.table.cell.properties) for controlling appearance of revhistory in FO output.</para>
+<para role="commit-changes">Modified: fo/block.xsl,1.34; fo/param.ent,1.101; fo/param.xweb,1.114; fo/titlepage.xsl,1.41; params/revhistory.table.cell.properties.xml,1.1; params/revhistory.table.properties.xml,1.1; params/revhistory.title.properties.xml,1.1 - Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support DBv5 revisions with full author name (not only authorinitials)</para>
+<para role="commit-changes">Modified: fo/block.xsl,1.33; fo/titlepage.xsl,1.40 - Jirka Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.70.1-->
+
+<sect2 xml:id="V1701_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+        <filename>html</filename> code
+        since the 1.70.0 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Support DBv5 revisions with full author name (not only authorinitials)</para>
+<para role="commit-changes">Modified: html/block.xsl,1.23; html/titlepage.xsl,1.34 - Jirka Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.70.1-->
+
+<sect2 xml:id="V1701_HTMLHelp">
+<title>HTMLHelp</title>
+<para>The following changes have been made to the
+        <filename>htmlhelp</filename> code
+        since the 1.70.0 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>htmlhelp.generate.index is now param, not variable. This means that you can override its setting from outside. This is useful when you generate indexterms on the fly (see http://www.xml.com/pub/a/2004/07/14/dbndx.html?page=3).</para>
+<para role="commit-changes">Modified: htmlhelp/htmlhelp-common.xsl,1.38 - Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support chunk.tocs.and.lots in HTML Help</para>
+<para role="commit-changes">Modified: htmlhelp/htmlhelp-common.xsl,1.37 - Jirka Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTMLHelp changes for 1.70.1-->
+
+<sect2 xml:id="V1701_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+        <filename>params</filename> code
+        since the 1.70.0 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Added three new attribute sets (revhistory.title.properties, revhistory.table.properties and revhistory.table.cell.properties) for controlling appearance of revhistory in FO output.</para>
+<para role="commit-changes">Modified: fo/block.xsl,1.34; fo/param.ent,1.101; fo/param.xweb,1.114; fo/titlepage.xsl,1.41; params/revhistory.table.cell.properties.xml,1.1; params/revhistory.table.properties.xml,1.1; params/revhistory.title.properties.xml,1.1 - Jirka Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.70.1-->
+
+</sect1>
+
+<sect1 xml:id="V1700">
+<title>Release: 1.70.0</title>
+<para>As with all DocBook Project <link linkend="dot0">dot-zero</link>
+releases, this is an experimental release. It will be followed shortly
+by a stable release.</para>
+
+<para>This release adds a number of new features,
+including:</para>
+
+<itemizedlist>
+  <listitem>
+    <para>support for selecting alternative index-collation methods
+    (in particular, support for using a collation library developed by
+    Eliot Kimber)</para>
+  </listitem>
+  <listitem>
+    <para>improved handling of DocBook 5 document instances (through a
+    namespace-stripping mechanism)</para>
+  </listitem>
+  <listitem>
+    <para>full support for CALS and HTML tables in manpages
+    output</para>
+  </listitem>
+  <listitem>
+    <para>a mechanism for preserving relative URIs in documents that
+    make use of XInclude</para>
+  </listitem>
+  <listitem>
+    <para>support for the "new" <literal>.90</literal> version of
+    FOP</para>
+  </listitem>
+  <listitem>
+    <para>enhanced capabilities for controlling formatting of lists in HTML
+    and FO output</para>
+  </listitem>
+  <listitem>
+    <para>autogeneration of AUTHOR and COPYRIGHT sections in manpages
+    output</para>
+  </listitem>
+  <listitem>
+    <para>support for generating crop marks in FO/PDF output</para>
+  </listitem>
+  <listitem>
+    <para>support for qandaset as a root element in FO output</para>
+  </listitem>
+  <listitem>
+    <para>support for floatstyle and orient on all table types</para>
+  </listitem>
+  <listitem>
+    <para>support for floatstyle in figure, and example</para>
+  </listitem>
+  <listitem>
+    <para>pgwide.properties attribute-set supports extending figure,
+      example and table into the left indent area instead of spanning
+      multiple columns.</para>
+  </listitem>
+</itemizedlist>
+    <para>The following is a detailed list of enhancements and API
+    changes that have been made since the 1.69.1 release.</para>
+
+<sect2 xml:id="V1700_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+        <filename>common</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Add the xsl:key for the kimber
+indexing method.</para>
+<para role="commit-changes">Modified: common/autoidx-ng.xsl,1.2 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for
+<tag>qandaset</tag>.</para>
+<para role="commit-changes">Modified: common/labels.xsl,1.37;
+common/subtitles.xsl,1.7; common/titles.xsl,1.35 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support dbhtml/dbfo start PI for
+<tag>orderedlist</tag> numbering in both HTML and
+FO</para>
+<para role="commit-changes">Modified: common/common.xsl,1.61; html/lists.xsl,1.50 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added CVS
+header.</para>
+<para role="commit-changes">Modified: common/stripns.xsl,1.12 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Changed content model of text
+element to ANY rather than #PCDATA because they could contain
+markup.</para>
+<para role="commit-changes">Modified: common/targetdatabase.dtd,1.7 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+<tag>refentry</tag>.meta.get.quietly param.</para>
+<para>If zero (the
+default), notes and warnings about "missing" markup are generated
+during gathering of <tag>refentry</tag> metadata. If
+non-zero, the metadata is gathered "quietly" -- that is, the
+notes and warnings are suppressed.</para>
+<para>NOTE: If you are
+processing a large amount of <tag>refentry</tag> content,  you
+may be able to speed up processing significantly by  setting a
+non-zero value for
+<tag>refentry</tag>.meta.get.quietly.</para>
+<para role="commit-changes">Modified: common/refentry.xsl,1.17;
+manpages/param.ent,1.15; manpages/param.xweb,1.17;
+params/refentry.meta.get.quietly.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>After namespace stripping, the
+source document is the temporary tree created by the stripping
+process and it has the wrong base <tag>URI</tag> for relative
+references. Earlier versions of this code used to try to fix that
+by patching the elements with relative @fileref attributes. That
+was inadequate because it calculated an absolute base <tag>URI</tag>
+without considering that there might be xml:base attributes
+already in effect. It seems obvious now that the right thing to
+do is simply to put the xml:base on the root of the document. And
+that seems to work.</para>
+<para role="commit-changes">Modified: common/stripns.xsl,1.7 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for "software" and
+"sectdesc" class values on <tag>refmiscinfo</tag>; "software" is
+treated identically to "source", and "setdesc" is treated
+identically to "manual".</para>
+<para role="commit-changes">Modified: common/refentry.xsl,1.10;
+params/man.th.extra2.max.length.xml,1.3;
+params/refentry.source.name.profile.xml,1.4 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for DocBook 5
+namespace-stripping in manpages stylesheet. Closes request
+#1210692.</para>
+<para role="commit-changes">Modified: common/common.xsl,1.56; manpages/docbook.xsl,1.57 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added &lt;xsl:template
+match="/"&gt; to make stripns.xsl usable as a standalone
+stylesheet for stripping out DocBook 5/NG to DocBook 4. Note that
+DocBook XSLT drivers that include this stylesheet all override
+the match="/" template.</para>
+<para role="commit-changes">Modified: common/stripns.xsl,1.4 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Number figures, examples, and
+tables from <tag>book</tag> if there is no prefix (i.e. if
+<parameter>chapter.autolabel</parameter> is set to 0). This avoids
+having the list of figures where the figures mysteriously restart
+their numeration periodically when
+<parameter>chapter.autolabel</parameter> is set to
+0.</para>
+<para role="commit-changes">Modified: common/labels.xsl,1.36 - David Cramer</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add <tag>task</tag> template in
+<tag>title</tag>.markup mode.</para>
+<para role="commit-changes">Modified: common/titles.xsl,1.34 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add children (with ids) of formal
+objects to target data.</para>
+<para role="commit-changes">Modified: common/targets.xsl,1.10 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for case when
+<tag>personname</tag> doesn't contain specific name markup (as allowed
+in DocBook 5.0)</para>
+<para role="commit-changes">Modified: common/common.xsl,1.54 - Jirka
+Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_Extensions">
+<title>Extensions</title>
+<para>The following changes have been made to the
+        <filename>extensions</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Support Xalan
+2.7</para>
+<para role="commit-changes">Modified: extensions/xalan27/.cvsignore,1.1;
+extensions/xalan27/build.xml,1.1;
+extensions/xalan27/nbproject/.cvsignore,1.1;
+extensions/xalan27/nbproject/build-impl.xml,1.1;
+extensions/xalan27/nbproject/genfiles.properties,1.1;
+extensions/xalan27/nbproject/project.properties,1.1;
+extensions/xalan27/nbproject/project.xml,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/CVS.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Callout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatDingbatCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatGraphicCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatTextCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatUnicodeCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Func.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/ImageIntrinsics.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Params.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Table.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Text.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Verbatim.java,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Handle the case where the imageFn
+is actually a <tag>URI</tag>. This still needs
+work.</para>
+<para role="commit-changes">Modified: extensions/saxon643/com/nwalsh/saxon/ImageIntrinsics.java,1.4
+- Norman Walsh</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Extensions changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+        <filename>fo</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Adapted to the new indexing
+code. Now works just like a wrapper that calls kosek indexing method,
+originally implemented here.</para>
+<para role="commit-changes">Modified: fo/autoidx-ng.xsl,1.5 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added parameters for header/footer
+<tag>table</tag> minimum height.</para>
+<para role="commit-changes">Modified: fo/pagesetup.xsl,1.60;
+fo/param.ent,1.100; fo/param.xweb,1.113 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add the <tag>index</tag>.method
+parameter.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.99; fo/param.xweb,1.112 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Integrate support for three
+indexing methods: - the original English-only method. -
+Jirka Kosek's method using EXSLT extensions. - Eliot Kimber's
+method using Saxon extensions. Use the '<tag>index</tag>.method'
+parameter to select.</para>
+<para role="commit-changes">Modified: fo/autoidx.xsl,1.38 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for <tag>TOC</tag> for
+<tag>qandaset</tag> in fo output.</para>
+<para role="commit-changes">Modified: fo/autotoc.xsl,1.30;
+fo/qandaset.xsl,1.20 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added parameter
+<parameter>ulink.hyphenate</parameter>.chars. Added parameter
+insert.<tag>link</tag>.page.number.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.98;
+fo/param.xweb,1.111 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented feature request
+#942524 to add insert.<tag>link</tag>.page.number to allow link
+element cross references to have a page number.</para>
+<para role="commit-changes">Modified: fo/xref.xsl,1.67 -
+Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for
+<parameter>ulink.hyphenate</parameter>.chars so more characters
+can be break points in urls.</para>
+<para role="commit-changes">Modified: fo/xref.xsl,1.66 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented patch #1075144 to make
+the url text in a ulink in FO output an active <tag>link</tag> as
+well.</para>
+<para role="commit-changes">Modified: fo/xref.xsl,1.65 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para><tag>table</tag> footnotes now
+have their own <tag>table</tag>.<tag>footnote</tag>.properties
+attribute set.</para>
+<para role="commit-changes">Modified: fo/footnote.xsl,1.23 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add <tag>qandaset</tag> to
+root.elements.</para>
+<para role="commit-changes">Modified: fo/docbook.xsl,1.41 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added mode="page.sequence" to make
+it easier to put content into a page sequence.  First used for
+<tag>qandaset</tag>.</para>
+<para role="commit-changes">Modified: fo/component.xsl,1.37 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented feature request
+#1434408 to support formatting
+of <tag>biblioentry</tag>.</para>
+<para role="commit-changes">Modified: fo/biblio.xsl,1.35 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+<tag>biblioentry</tag>.properties.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.97;
+fo/param.xweb,1.110 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support PTC/Arbortext
+bookmarks</para>
+<para role="commit-changes">Modified: fo/docbook.xsl,1.40; fo/ptc.xsl,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+<tag>table</tag>.<tag>footnote</tag>.properties to permit
+<tag>table</tag> footnotes to format differently from regular
+footnotes.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.96; fo/param.xweb,1.109 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Refactored <tag>table</tag>
+templates to unify their processing and support all options in
+all types.  Now <tag>table</tag> and <tag>informaltable</tag>, in
+both Cals and Html markup, use the same templates where possible,
+and all support pgwide, rotation, and floats. There is also a
+placeholder <tag>table</tag>.container template to
+support wrapping a <tag>table</tag> in a layout <tag>table</tag>,
+so the XEP <tag>table</tag> <tag>title</tag> "continued"
+extension can be more easily implemented.</para>
+<para role="commit-changes">Modified: fo/formal.xsl,1.52;
+fo/htmltbl.xsl,1.9; fo/table.xsl,1.48 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new attribute set
+<tag>toc</tag>.line.properties for controlling appearance of lines in
+ToC/LoT</para>
+<para role="commit-changes">Modified: fo/autotoc.xsl,1.29; fo/param.ent,1.95;
+fo/param.xweb,1.108 - Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for float to example
+and <tag>equation</tag>. Added support for pgwide to
+<tag>figure</tag>, example, and <tag>equation</tag> (the latter
+two via a dbfo pgwide="1" processing
+instruction).</para>
+<para role="commit-changes">Modified: fo/formal.xsl,1.51 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add pgwide.properties
+attribute-set.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.94; fo/param.xweb,1.107 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added <tag>refclass</tag>.suppress
+param.</para>
+<para>If the value of <tag>refclass</tag>.suppress is
+non-zero, then display <tag>refclass</tag> contents is suppressed
+in output. Affects HTML and FO output
+only.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.93; fo/param.xweb,1.106; html/param.ent,1.90;
+html/param.xweb,1.99; params/refclass.suppress.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Improved support for
+<tag>task</tag> subelements</para>
+<para role="commit-changes">Modified: fo/task.xsl,1.3; html/task.xsl,1.3 -
+Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Adjusted spacing around
+K&amp;R-formatted <tag>Funcdef</tag> and <tag>Paramdef</tag>
+output such that it can more easily be discerned where one ends
+and the other begins. Closes #1213264.</para>
+<para role="commit-changes">Modified: fo/synop.xsl,1.18 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Made handling of
+paramdef/parameter in FO output consistent with that in HTML and
+manpages output. Closes #1213259.</para>
+<para role="commit-changes">Modified: fo/synop.xsl,1.17 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Made handling of
+<tag>Refnamediv</tag> consistent with formatting in HTML
+and manpages output; specifically, changed so that
+<tag>Refname</tag> (comma-separated list of multiple instances
+found) is used (instead of <tag>Refentrytitle</tag> as
+previously), then em-dash, then the <tag>Refpurpose</tag>. Closes
+#1212562.</para>
+<para role="commit-changes">Modified: fo/refentry.xsl,1.30 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added output of
+<tag>Releaseinfo</tag> to recto titlepage ("<tag>copyright</tag>"
+page) for <tag>Book</tag> in FO output. This makes it consistent
+with HTML output. Closes #1327034. Thanks to Paul DuBois for
+reporting.</para>
+<para role="commit-changes">Modified: fo/titlepage.templates.xml,1.28 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added condition for setting
+block-progression-dimension.minimum on table-row, instead of
+height, when <parameter>fop1.extensions</parameter> is
+non-zero. For an explanation of the reason for the change,
+<tag>see</tag>: http://wiki.apache.org/xmlgraphics-fop/Troubleshooting/CommonLogMessages</para>
+<para role="commit-changes">Modified: fo/pagesetup.xsl,1.59
+- Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new
+<tag>refclass</tag>.suppress param for suppressing display
+of <tag>Refclass</tag> in HTML and FO output. Did not add it to
+manpages because manpages stylesheet is currently just silently
+ignoring <tag>Refclass</tag> anyway. Closes request
+#1461065. Thanks to Davor Ocelic (docelic) for
+reporting.</para>
+<para role="commit-changes">Modified: fo/refentry.xsl,1.29; html/refentry.xsl,1.23 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for keep-together PI
+to informal objects.</para>
+<para role="commit-changes">Modified: fo/formal.xsl,1.50 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for
+<parameter>fop1.extensions</parameter>.</para>
+<para role="commit-changes">Modified: fo/formal.xsl,1.49;
+fo/graphics.xsl,1.44; fo/table.xsl,1.47 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for fop1
+bookmarks.</para>
+<para role="commit-changes">Modified: fo/docbook.xsl,1.39 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add fop1.extentions parameter to
+add support for fop development version.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.92;
+fo/param.xweb,1.105 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Start supporting fop development
+version, which will become fop version 1.</para>
+<para role="commit-changes">Modified: fo/fop1.xsl,1.1 -
+Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add template for <tag>task</tag>
+in mode="xref-to".</para>
+<para role="commit-changes">Modified: fo/xref.xsl,1.63; html/xref.xsl,1.57 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para><tag>table</tag> footnotes now
+also get <tag>footnote</tag>.properties
+attribute-set.</para>
+<para role="commit-changes">Modified: fo/footnote.xsl,1.22 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added <tag>index</tag>.separator
+named template to compute the separator punctuation based on
+locale.</para>
+<para role="commit-changes">Modified: fo/autoidx.xsl,1.36 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for <tag>link</tag>,
+<tag>olink</tag>, and <tag>xref</tag> within OO
+<tag>Classsynopsis</tag> and children. (Because DocBook NG/5
+allows it).</para>
+<para role="commit-changes">Modified: fo/synop.xsl,1.15; html/synop.xsl,1.19 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support <tag>date</tag> as an
+inline</para>
+<para role="commit-changes">Modified: fo/inline.xsl,1.43; html/inline.xsl,1.46 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new parameter
+<parameter>keep.relative.image.uris</parameter></para>
+<para role="commit-changes">Modified: fo/param.ent,1.91;
+fo/param.xweb,1.104; html/param.ent,1.87; html/param.xweb,1.96;
+params/keep.relative.image.uris.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Map Unicode space characters
+U+2000-U+200A to fo:leaders.</para>
+<para role="commit-changes">Modified: fo/docbook.xsl,1.38;
+fo/passivetex.xsl,1.4; fo/spaces.xsl,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Output a real em dash for em-dash
+dingbat (instead of two hypens).</para>
+<para role="commit-changes">Modified: fo/fo.xsl,1.7 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support default <tag>label</tag>
+width parameters for itemized and ordered lists</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.64;
+fo/param.ent,1.90; fo/param.xweb,1.103;
+params/itemizedlist.label.width.xml,1.1;
+params/orderedlist.label.width.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Generate localized
+<tag>title</tag> for <tag>Refsynopsisdiv</tag> if no
+appropriate <tag>Title</tag> descendant found in source. Closes
+#1212398. This change makes behavior for the <tag>Synopsis</tag>
+<tag>title</tag> consistent with the behavior of HTML and
+manpages output.</para>
+<para>Also, added
+xsl:use-attribute-sets="normal.<tag>para</tag>.spacing" to
+block generated for <tag>Cmdsynopsis</tag> output. Previously,
+that block had no spacing at all specified, which resulted it
+being crammed up to closely to the <tag>Synopsis</tag>
+head.</para>
+<para role="commit-changes">Modified: fo/refentry.xsl,1.28; fo/synop.xsl,1.13 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added parameters to support
+localization of <tag>index</tag>
+item punctuation.</para>
+<para role="commit-changes">Modified: fo/autoidx.xsl,1.35 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+<parameter>index.number.separator</parameter>,
+<parameter>index.range.separator</parameter>,
+and <parameter>index.term.separator</parameter> parameters to
+support localization of punctuation in <tag>index</tag>
+entries.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.89; fo/param.xweb,1.102 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added "Cross References"
+<tag>section</tag> in HTML doc (for consistency with the FO
+doc). Also, moved the existing FO "Cross
+References" <tag>section</tag> to follow the "Linking"
+<tag>section</tag>.</para>
+<para role="commit-changes">Modified: fo/param.xweb,1.101; html/param.xweb,1.95 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added ID attribues to all
+<tag>Reference</tag> elements (e.g., id="tables" for the doc for
+<tag>section</tag> on <tag>Table</tag> params). So pages for
+all subsections of ref docs now have stable filenames instead
+of arbitrary generated filenames.</para>
+<para role="commit-changes">Modified: fo/param.xweb,1.100;
+html/param.xweb,1.94 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added two new parameters for
+handling of multi-term
+<tag>varlistentry</tag> elements:</para>
+<para><parameter>variablelist.term.break.after</parameter>: 
+When the <parameter>variablelist.term.break.after</parameter> is
+non-zero, it will  generate a line break after each
+<tag>term</tag> multi-term
+<tag>varlistentry</tag>.</para>
+<para><parameter>variablelist.term.separator</parameter>: 
+When a <tag>varlistentry</tag> contains multiple <tag>term</tag>
+elements, the string  specified in the value of the
+<parameter>variablelist.term.separator</parameter>  parameter is
+placed after each <tag>term</tag> except the last. The default 
+is ", " (a comma followed by a space). To suppress rendering of 
+the separator, set the value of
+<parameter>variablelist.term.separator</parameter> to  the empty
+string ("").</para>
+<para>These parameters are primarily intended to be
+useful if you have multi-term varlistentries that have long
+terms.</para>
+<para>Closes #1306676. Thanks to Sam Steingold for
+providing an example "lots of long terms" doc that demonstrated
+the value of having these options.</para>
+<para>Also, added
+normalize-space() call to processing of each
+<tag>term</tag>.</para>
+<para>This change affects all output formats
+(HTML, PDF, manpages). The default behavior should pretty much
+remain the same as before, but it is possible (as always) that
+the change may introduce some
+new bugginess.</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.62; fo/param.ent,1.88;
+fo/param.xweb,1.99; html/lists.xsl,1.48; html/param.ent,1.86;
+html/param.xweb,1.93; manpages/lists.xsl,1.22;
+manpages/param.ent,1.14; manpages/param.xweb,1.16;
+params/variablelist.term.break.after.xml,1.1;
+params/variablelist.term.separator.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add <tag>sidebar</tag> titlepage
+placeholder attset for styles.</para>
+<para role="commit-changes">Modified: fo/titlepage.xsl,1.37 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add titlepage for
+<tag>sidebar</tag>.</para>
+<para role="commit-changes">Modified: fo/titlepage.templates.xml,1.27 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented RFE
+#1292615.</para>
+<para>Added bunch of new parameters (attribute sets)
+that affect list presentation: list.block.properties,
+<tag>itemizedlist</tag>.properties, <tag>orderedlist</tag>.properties,
+<tag>itemizedlist</tag>.<tag>label</tag>.properties and
+<tag>orderedlist</tag>.<tag>label</tag>.properties. Default behaviour
+of stylesheets has not been changed but further customizations will be
+much more easier.</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.61; fo/param.ent,1.87;
+fo/param.xweb,1.98; params/itemizedlist.label.properties.xml,1.1;
+params/itemizedlist.properties.xml,1.1;
+params/list.block.properties.xml,1.1;
+params/orderedlist.label.properties.xml,1.1;
+params/orderedlist.properties.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented RFE
+#1242092.</para>
+<para>You can enable crop marks in your document by
+setting crop.marks=1 and xep.extensions=1. Appearance of crop
+marks can be controlled by parameters
+<parameter>crop.mark.bleed</parameter> (6pt),
+<parameter>crop.mark.offset</parameter> (24pt) and
+<parameter>crop.mark.width</parameter> (0.5pt).</para>
+<para>Also there
+is new named template called user-xep-pis. You can overwrite it in
+order to produce some PIs that can control XEP as described in
+http://www.renderx.com/reference.html#Output_Formats</para>
+<para role="commit-changes">Modified: fo/docbook.xsl,1.36;
+fo/param.ent,1.86; fo/param.xweb,1.97; fo/xep.xsl,1.23;
+params/crop.mark.bleed.xml,1.1; params/crop.mark.offset.xml,1.1;
+params/crop.mark.width.xml,1.1; params/crop.marks.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+        <filename>html</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>implemented
+<tag>index</tag>.method parameter and three
+methods.</para>
+<para role="commit-changes">Modified: html/autoidx.xsl,1.28 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>added <tag>index</tag>.method
+parameter to support 3 indexing methods.</para>
+<para role="commit-changes">Modified: html/param.ent,1.94;
+html/param.xweb,1.103 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented feature request
+#1072510 as a processing instruction to permit including external
+HTML content into HTML output.</para>
+<para role="commit-changes">Modified: html/pi.xsl,1.9 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new parameter
+<parameter>chunk.tocs.and.lots</parameter>.has.<tag>title</tag> which
+controls presence of <tag>title</tag> in a separate chunk with
+ToC/LoT. Disabling <tag>title</tag> can be very useful if you are
+generating frameset output (well, yes those frames, but some customers
+really want them ;-).</para>
+<para role="commit-changes">Modified: html/chunk-code.xsl,1.15;
+html/param.ent,1.93; html/param.xweb,1.102;
+params/chunk.tocs.and.lots.has.title.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support dbhtml/dbfo start PI for
+<tag>orderedlist</tag> numbering in both HTML and
+FO</para>
+<para role="commit-changes">Modified: common/common.xsl,1.61; html/lists.xsl,1.50 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Allow <tag>ToC</tag> without
+<tag>title</tag> also for set and
+<tag>book</tag>.</para>
+<para role="commit-changes">Modified: html/autotoc.xsl,1.37; html/division.xsl,1.12 -
+Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented floats uniformly for
+<tag>figure</tag>, example, <tag>equation</tag>
+and <tag>informalfigure</tag>, <tag>informalexample</tag>, and
+<tag>informalequation</tag>.</para>
+<para role="commit-changes">Modified: html/formal.xsl,1.22 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added the
+autotoc.<tag>label</tag>.in.hyperlink param.</para>
+<para>If the value
+of autotoc.<tag>label</tag>.in.hyperlink is non-zero, labels
+are included in hyperlinked titles in the <tag>TOC</tag>. If it
+is instead zero, labels are still displayed prior to the
+hyperlinked titles, but are not hyperlinked along with the
+titles.</para>
+<para>Closes patch #1065868. Thanks to anatoly techtonik
+for the patch.</para>
+<para role="commit-changes">Modified: html/autotoc.xsl,1.36; html/param.ent,1.92;
+html/param.xweb,1.101; params/autotoc.label.in.hyperlink.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added two new params:
+html.head.<tag>legalnotice</tag>.<tag>link</tag>.types
+and html.head.<tag>legalnotice</tag>.<tag>link</tag>.multiple.</para>
+<para>If
+the value of the <parameter>generate.legalnotice.link</parameter> is
+non-zero, then the stylesheet generates (in the head
+<tag>section</tag> of the HTML source) either a single HTML
+<tag>link</tag> element or, if the value of
+the html.head.<tag>legalnotice</tag>.<tag>link</tag>.multiple is
+non-zero, one <tag>link</tag> element for each <tag>link</tag>
+type specified. Each <tag>link</tag> has the
+following attributes:</para>
+<para> - a rel attribute whose value
+is derived from the value of 
+html.head.<tag>legalnotice</tag>.<tag>link</tag>.types</para>
+<para> -
+an href attribute whose value is set to the URL of the file 
+containing the <tag>legalnotice</tag></para>
+<para> - a <tag>title</tag>
+attribute whose value is set to the <tag>title</tag> of the 
+corresponding <tag>legalnotice</tag> (or a <tag>title</tag>
+programatically  determined by the stylesheet)</para>
+<para>For
+example:</para>
+<para> &lt;<tag>link</tag> rel="<tag>copyright</tag>"
+href="ln-id2524073.html" title="Legal Notice"&gt;</para>
+<para>Closes
+#1476450. Thanks to Sam Steingold.</para>
+<para role="commit-changes">Modified: html/chunk-common.xsl,1.45;
+html/param.ent,1.91; html/param.xweb,1.100;
+params/generate.legalnotice.link.xml,1.4;
+params/html.head.legalnotice.link.multiple.xml,1.1;
+params/html.head.legalnotice.link.types.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added <tag>refclass</tag>.suppress
+param.</para>
+<para>If the value of <tag>refclass</tag>.suppress is
+non-zero, then display <tag>refclass</tag> contents is suppressed
+in output. Affects HTML and FO output
+only.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.93; fo/param.xweb,1.106; html/param.ent,1.90;
+html/param.xweb,1.99; params/refclass.suppress.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Improved support for
+<tag>task</tag> subelements</para>
+<para role="commit-changes">Modified: fo/task.xsl,1.3; html/task.xsl,1.3 -
+Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new
+<tag>refclass</tag>.suppress param for suppressing display
+of <tag>Refclass</tag> in HTML and FO output. Did not add it to
+manpages because manpages stylesheet is currently just silently
+ignoring <tag>Refclass</tag> anyway. Closes request
+#1461065. Thanks to Davor Ocelic (docelic) for
+reporting.</para>
+<para role="commit-changes">Modified: fo/refentry.xsl,1.29; html/refentry.xsl,1.23 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Process <tag>alt</tag> text with
+normalize-space(). Replace tab indents with
+spaces.</para>
+<para role="commit-changes">Modified: html/graphics.xsl,1.57 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Content of <tag>citation</tag>
+element is automatically linked to the bibliographic <tag>entry</tag>
+with the corresponding <tag>abbrev</tag>.</para>
+<para role="commit-changes">Modified: html/biblio.xsl,1.26;
+html/inline.xsl,1.47; html/xref.xsl,1.58 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add template for <tag>task</tag>
+in mode="xref-to".</para>
+<para role="commit-changes">Modified: fo/xref.xsl,1.63; html/xref.xsl,1.57 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Suppress ID warnings if the
+.warnings parameter is 0</para>
+<para role="commit-changes">Modified: html/html.xsl,1.17 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for floatstyle to
+<tag>figure</tag>.</para>
+<para role="commit-changes">Modified: html/formal.xsl,1.21 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Handling of <tag>xref</tag> to
+area/areaset need support in extensions code also. I currently have no
+time to touch extensions code, so code is here to be enabled when
+extension is fixed also.</para>
+<para role="commit-changes">Modified: html/xref.xsl,1.56 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added 3 parameters for overriding
+gentext for <tag>index</tag>
+punctuation.</para>
+<para role="commit-changes">Modified: html/param.ent,1.89; html/param.xweb,1.98 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added parameters to support
+localization of <tag>index</tag> item punctuation. Added
+<tag>index</tag>.separator named template to compute
+the separator punctuation based on
+locale.</para>
+<para role="commit-changes">Modified: html/autoidx.xsl,1.27 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added a &lt;div
+class="{$class}-contents"&gt; wrapper around output of contents
+of all formal objects. Also, added an optional &lt;br
+class="{class}-break"/&gt; linebreak after all formal
+objects.</para>
+<para>WARNING: Because this change places an additional
+DIV between the DIV wrapper for the <tag>equation</tag> and the
+<tag>equation</tag> contents, it may break some existing CSS
+stylesheets that have been created with the assumption that there
+would never be an intervening DIV there.</para>
+<para>The following is
+an example of what <tag>Equation</tag> output looks like as a
+result of the changes described above.</para>
+<para> &lt;div
+class="<tag>equation</tag>"&gt;  &lt;a name="three"
+id="three"&gt;&lt;/a&gt;</para>
+<para> &lt;p
+class="<tag>title</tag>"&gt;&lt;b&gt;(1.3)&lt;/b&gt;&lt;/p&gt;</para>
+<para>
+&lt;div class="equation-contents"&gt;  &lt;span
+class="<tag>mathphrase</tag>"&gt;1+1=3&lt;/span&gt; 
+&lt;/div&gt;  &lt;/div&gt;&lt;br
+class="equation-break"&gt;</para>
+<para>Rationale: These changes allow
+CSS control of the placement of the formal-object
+<tag>title</tag> relative to the formal-object
+contents. For example, using the CSS "float" <tag>property</tag>
+enables the <tag>title</tag> and contents to be rendered on the
+same line. Example stylesheet:</para>
+<para> .<tag>equation</tag>
+{  margin-top: 20px;  margin-bottom: 20px;  } 
+.equation-contents {  float: left;  }</para>
+<para>
+.<tag>equation</tag> .<tag>title</tag> {  margin-top: 0; 
+float: right;  margin-right: 200px;  }</para>
+<para>
+.<tag>equation</tag> .<tag>title</tag> b {  font-weight:
+normal;  }</para>
+<para> .equation-break {  clear: both; 
+}</para>
+<para>Note that the purpose of the ".equation-break" class is
+to provide a way to clear off the floats.</para>
+<para>If you want
+to instead have the <tag>equation</tag> <tag>title</tag> rendered to
+the left of the <tag>equation</tag> contents, you can do
+something like this:</para>
+<para> .<tag>equation</tag> { 
+margin-top: 20px;  width: 300px;  margin-bottom: 20px; 
+}  .equation-contents {  float: right;  }</para>
+<para>
+.<tag>equation</tag> .<tag>title</tag> {  margin-top: 0; 
+float: left;  margin-right: 200px;  }</para>
+<para>
+.<tag>equation</tag> .<tag>title</tag> b {  font-weight:
+normal;  }</para>
+<para> .equation-break {  clear: both; 
+}</para>
+<para role="commit-changes">Modified: html/formal.xsl,1.20 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added a chunker.output.quiet
+top-level parameter so that the chunker can be made quiet by
+default</para>
+<para role="commit-changes">Modified: html/chunker.xsl,1.26 - Norman Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for <tag>link</tag>,
+<tag>olink</tag>, and <tag>xref</tag> within OO
+<tag>Classsynopsis</tag> and children. (Because DocBook NG/5
+allows it).</para>
+<para role="commit-changes">Modified: fo/synop.xsl,1.15; html/synop.xsl,1.19 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>New parameter:
+<parameter>id.warnings</parameter>. If non-zero, warnings are
+generated for titled objects that don't have titles. True by default;
+I wonder if this will be too aggressive?</para>
+<para role="commit-changes">Modified: html/biblio.xsl,1.25;
+html/component.xsl,1.27; html/division.xsl,1.11; html/formal.xsl,1.19;
+html/glossary.xsl,1.20; html/html.xsl,1.13; html/index.xsl,1.16;
+html/param.ent,1.88; html/param.xweb,1.97; html/refentry.xsl,1.22;
+html/sections.xsl,1.30; params/id.warnings.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>If the
+<parameter>keep.relative.image.uris</parameter> parameter is true,
+don't use the absolute <tag>URI</tag> (as calculated from xml:base) in
+the img src attribute, us the value the <tag>author</tag>
+specified. Note that we still have to calculate the absolute
+<tag>filename</tag> for use in the image intrinsics
+extension.</para>
+<para role="commit-changes">Modified: html/graphics.xsl,1.56 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support <tag>date</tag> as an
+inline</para>
+<para role="commit-changes">Modified: fo/inline.xsl,1.43; html/inline.xsl,1.46 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new parameter
+<parameter>keep.relative.image.uris</parameter></para>
+<para role="commit-changes">Modified: fo/param.ent,1.91;
+fo/param.xweb,1.104; html/param.ent,1.87; html/param.xweb,1.96;
+params/keep.relative.image.uris.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added two new parameters for
+handling of multi-term
+<tag>varlistentry</tag> elements:</para>
+<para><parameter>variablelist.term.break.after</parameter>: 
+When the <parameter>variablelist.term.break.after</parameter> is
+non-zero, it will  generate a line break after each
+<tag>term</tag> multi-term
+<tag>varlistentry</tag>.</para>
+<para><parameter>variablelist.term.separator</parameter>: 
+When a <tag>varlistentry</tag> contains multiple <tag>term</tag>
+elements, the string  specified in the value of the
+<parameter>variablelist.term.separator</parameter>  parameter is
+placed after each <tag>term</tag> except the last. The default 
+is ", " (a comma followed by a space). To suppress rendering of 
+the separator, set the value of
+<parameter>variablelist.term.separator</parameter> to  the empty
+string ("").</para>
+<para>These parameters are primarily intended to be
+useful if you have multi-term varlistentries that have long
+terms.</para>
+<para>Closes #1306676. Thanks to Sam Steingold for
+providing an example "lots of long terms" doc that demonstrated
+the value of having these options.</para>
+<para>Also, added
+normalize-space() call to processing of each
+<tag>term</tag>.</para>
+<para>This change affects all output formats
+(HTML, PDF, manpages). The default behavior should pretty much
+remain the same as before, but it is possible (as always) that
+the change may introduce some
+new bugginess.</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.62; fo/param.ent,1.88;
+fo/param.xweb,1.99; html/lists.xsl,1.48; html/param.ent,1.86;
+html/param.xweb,1.93; manpages/lists.xsl,1.22;
+manpages/param.ent,1.14; manpages/param.xweb,1.16;
+params/variablelist.term.break.after.xml,1.1;
+params/variablelist.term.separator.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added "wrapper-name" param to
+inline.charseq named template, enabling it to output inlines
+other than just "span". <tag>Acronym</tag> and <tag>Abbrev</tag>
+templates now use inline.charseq to output HTML
+"<tag>acronym</tag>" and "abbr" elements (instead of
+"span"). Closes #1305468. Thanks to Sam Steingold for suggesting
+the change.</para>
+<para role="commit-changes">Modified: html/inline.xsl,1.45 - Michael(tm)
+Smith</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+        <filename>manpages</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Added the following
+params:</para>
+<para> - man.indent.width (string-valued)  -
+man.indent.refsect (boolean)  - man.indent.blurbs (boolean) 
+- man.indent.lists (boolean)  - man.indent.verbatims
+(boolean)</para>
+<para>Note that in earlier snapshots, man.indent.width
+was named man.indentation.default.value and the boolean params
+had names like man.indentation.*.adjust. Also the
+man.indent.blurbs param was called man.indentation.authors.adjust
+(or something).</para>
+<para>The behavior now is: If the value of a
+particular man.indent.* boolean param is non-zero, the
+corresponding contents (refsect*, list items,
+authorblurb/personblurb, vervatims) are displayed with a left
+margin indented by a width equal to the value
+of man.indent.width.</para>
+<para role="commit-changes">Modified: params/man.indent.blurbs.xml,1.1;
+manpages/docbook.xsl,1.74; manpages/info.xsl,1.20;
+manpages/lists.xsl,1.30; manpages/other.xsl,1.20;
+manpages/param.ent,1.22; manpages/param.xweb,1.24;
+manpages/refentry.xsl,1.14; params/man.indent.lists.xml,1.1;
+params/man.indent.refsect.xml,1.1;
+params/man.indent.verbatims.xml,1.1; params/man.indent.width.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.<tag>table</tag>.footnotes.divider param.</para>
+<para>In each
+<tag>table</tag> that contains footenotes, the string specified
+by the man.<tag>table</tag>.footnotes.divider parameter is output
+before the list of footnotes for the
+<tag>table</tag>.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.73;
+manpages/links.xsl,1.6; manpages/param.ent,1.21;
+manpages/param.xweb,1.23; params/man.table.footnotes.divider.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added the
+man.output.in.separate.dir,
+man.output.<parameter>base.dir</parameter>,
+and man.output.subdirs.enabled parameters.</para>
+<para>The
+man.output.<parameter>base.dir</parameter> parameter specifies the
+base directory into which man-page files are
+output. The man.output.subdirs.enabled parameter controls whether
+the files are output in subdirectories within the base
+directory.</para>
+<para>The values of the
+man.output.<parameter>base.dir</parameter>
+and man.output.subdirs.enabled parameters are used only if the
+value of man.output.in.separate.dir parameter is non-zero. If the
+value of man.output.in.separate.dir is zero, man-page files are
+not output in a separate
+directory.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.72; manpages/param.ent,1.20;
+manpages/param.xweb,1.22; params/man.output.base.dir.xml,1.1;
+params/man.output.in.separate.dir.xml,1.1;
+params/man.output.subdirs.enabled.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.font.<tag>table</tag>.headings and
+man.font.<tag>table</tag>.<tag>title</tag> params, for
+controlling font in <tag>table</tag> headings and
+titles.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.71; manpages/param.ent,1.19;
+manpages/param.xweb,1.21; params/man.font.table.headings.xml,1.1;
+params/man.font.table.title.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.font.<tag>funcsynopsisinfo</tag> and
+man.font.<tag>funcprototype</tag> params, for specifying the roff
+font (for example, BI, B, I) for <tag>funcsynopsisinfo</tag> and
+<tag>funcprototype</tag> output.</para>
+<para role="commit-changes">Modified: manpages/block.xsl,1.19;
+manpages/docbook.xsl,1.69; manpages/param.ent,1.18;
+manpages/param.xweb,1.20; manpages/synop.xsl,1.29;
+manpages/table.xsl,1.21; params/man.font.funcprototype.xml,1.1;
+params/man.font.funcsynopsisinfo.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.<tag>segtitle</tag>.suppress param.</para>
+<para>If the value of
+man.<tag>segtitle</tag>.suppress is non-zero, then display
+of <tag>segtitle</tag> contents is suppressed in
+output.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.68; manpages/param.ent,1.17;
+manpages/param.xweb,1.19; params/man.segtitle.suppress.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.output.<parameter>manifest</parameter>.enabled and
+man.output.manifest.<tag>filename</tag> params.</para>
+<para>If
+man.output.<parameter>manifest</parameter>.enabled is non-zero, a list
+of filenames for man pages generated by the stylesheet
+transformation is written to the file named by
+man.output.<parameter>manifest</parameter>.<tag>filename</tag></para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.67;
+manpages/other.xsl,1.19; manpages/param.ent,1.16;
+manpages/param.xweb,1.18; params/man.output.manifest.enabled.xml,1.1;
+params/man.output.manifest.filename.xml,1.1;
+tools/make/Makefile.DocBook,1.4 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+<tag>refentry</tag>.meta.get.quietly param.</para>
+<para>If zero (the
+default), notes and warnings about "missing" markup are generated
+during gathering of <tag>refentry</tag> metadata. If
+non-zero, the metadata is gathered "quietly" -- that is, the
+notes and warnings are suppressed.</para>
+<para>NOTE: If you are
+processing a large amount of <tag>refentry</tag> content,  you
+may be able to speed up processing significantly by  setting a
+non-zero value for
+<tag>refentry</tag>.meta.get.quietly.</para>
+<para role="commit-changes">Modified: common/refentry.xsl,1.17;
+manpages/param.ent,1.15; manpages/param.xweb,1.17;
+params/refentry.meta.get.quietly.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Changed names of all boolean
+indentation params to man.indent.* Also discarded individual
+man.indent.*.value params and switched to just using a common
+man.indent.width param (3n by default).</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.66;
+manpages/info.xsl,1.19; manpages/lists.xsl,1.29;
+manpages/other.xsl,1.18; manpages/refentry.xsl,1.13 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added boolean
+man.output.in.separate.dir param, to control whether or not man
+files are output in separate directory.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.65;
+manpages/utility.xsl,1.14 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added options for controlling
+indentation of verbatim output. Controlled through the
+man.indentation.verbatims.adjust
+and man.indentation.verbatims.value params. Closes
+#1242997</para>
+<para role="commit-changes">Modified: manpages/block.xsl,1.15; manpages/docbook.xsl,1.64 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added options for controlling
+indentation in lists and in *blurb output in the AUTHORS
+<tag>section</tag>. Controlled through
+the man.indentation.lists.adjust,
+man.indentation.lists.value, man.indentation.authors.adjust, and
+man.indentation.authors.value parameters. Default is 3 characters
+(instead of the roff default of 8 characters). Closes
+#1449369.</para>
+<para>Also, removed the indent that was being set on
+<tag>informalexample</tag> outuput. I will instead add an option
+for indenting verbatims, which I think is what the
+<tag>informalexample</tag> indent was intended
+for originally.</para>
+<para role="commit-changes">Modified: manpages/block.xsl,1.14;
+manpages/docbook.xsl,1.63; manpages/info.xsl,1.18;
+manpages/lists.xsl,1.28 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Changed line-spacing call before
+<tag>synopfragment</tag> to use ".sp -1n" ("n" units specified)
+instead of plain ".sp -1"</para>
+<para role="commit-changes">Modified: manpages/synop.xsl,1.28 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for writing man
+files into a specific output directory and into appropriate
+subdirectories within that output directory. Controlled through
+the man.<parameter>base.dir</parameter> parameter (similar to the
+<parameter>base.dir</parameter> support in the HTML stylesheet) and
+the man.subdirs.enabled parameter, which automatically determines
+the name of an appropriate subdir (for example, man/man7,
+man/man1, etc.) based on the <tag>section</tag> number/manvolnum
+of the source <tag>Refentry</tag>.</para>
+<para>Closes #1255036 and
+#1170317. Thanks to Denis Bradford for the original feature
+request, and to Costin Stroie for submitting a patch that was
+very helpful in implementing the
+support.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.62; manpages/utility.xsl,1.13 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Refined XPath statements and
+notification messages for <tag>refentry</tag> metadata
+handling.</para>
+<para role="commit-changes">Modified: common/common.xsl,1.59; common/refentry.xsl,1.14;
+manpages/docbook.xsl,1.61; manpages/other.xsl,1.17 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for
+<tag>copyright</tag> and <tag>legalnotice</tag>. The manpages
+stylesheets now output a <tag>COPYRIGHT</tag> <tag>section</tag>,
+after the AUTHORS <tag>section</tag>, if a <tag>copyright</tag>
+or <tag>legalnotice</tag> is found in the source. The
+<tag>section</tag> contains the <tag>copyright</tag> contents followed
+by the <tag>legalnotice</tag> contents. Closes
+#1450209.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.59; manpages/info.xsl,1.17 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Drastically reworked all of the
+XPath expressions used in <tag>refentry</tag> metadata gathering
+-- completely removed $parentinfo and turned $info into a set of
+nodes that includes the *info contents of the <tag>Refentry</tag>
+plus the *info contents all all of its ancestor elements. The
+basic XPath expression now used throughout is (using the example
+of checking for a <tag>date</tag>):</para>
+<para>
+(($info[//date])[last()]/date)[1].</para>
+<para>That selects the "last"
+*info/date <tag>date</tag> in document order -- that is, the one
+eitther on the <tag>Refentry</tag> itself or on the
+closest ancestor to the <tag>Refentry</tag>.</para>
+<para>It's
+likely this change may break some things; may need to pick up
+some pieces later.</para>
+<para>Also, changed the default value for the
+<parameter>man.th.extra2.max.length</parameter> from 40 to
+30.</para>
+<para role="commit-changes">Modified: common/common.xsl,1.58; common/refentry.xsl,1.7;
+params/man.th.extra2.max.length.xml,1.2;
+params/refentry.date.profile.xml,1.2;
+params/refentry.manual.profile.xml,1.2;
+params/refentry.source.name.profile.xml,1.2;
+params/refentry.version.profile.xml,1.2; manpages/docbook.xsl,1.58;
+manpages/other.xsl,1.15 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for DocBook 5
+namespace-stripping in manpages stylesheet. Closes request
+#1210692.</para>
+<para role="commit-changes">Modified: common/common.xsl,1.56; manpages/docbook.xsl,1.57 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Fixed handling of <tag>table</tag>
+footnotes. With this checkin, the <tag>table</tag> support in the
+manpages stylesheet is now basically feature complete. So this
+change closes request #619532, "No support for tables" -- the
+oldest currently open manpages feature request, submitted by Ben
+Secrest (blsecres) on 2002-10-07. Congratulations to me [patting
+myself on the back].</para>
+<para role="commit-changes">Modified: manpages/block.xsl,1.11;
+manpages/docbook.xsl,1.55; manpages/table.xsl,1.15 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added handling for
+<tag>table</tag> titles. Also fixed handling of nested tables;
+nest tables are now "extracted" and displayed just after their
+parent tables.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.54; manpages/table.xsl,1.14
+- Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added option for turning off bold
+formatting in <tag>Funcsynopsis</tag>. Boldface formatting in
+<tag>function</tag> <tag>synopsis</tag> is mandated in the
+man(7) man page and is used almost universally in existing man
+pages. Despite that, it really does look like crap to have an
+entire <tag>Funcsynopsis</tag> output in bold, so I added params
+for turning off the bold formatting and/or replacing it with a
+different roff special font (e.g., "RI" for alternating
+roman/italic instead of the default "BI" for alternating
+bold/italic). The new params
+are "man.<tag>funcprototype</tag>.font" and
+"man.<tag>funcsynopsisinfo</tag>.font". To be documented
+later.</para>
+<para>Closes #1452247. Thanks to Joe Orton for the feature
+request.</para>
+<para role="commit-changes">Modified: params/man.string.subst.map.xml,1.16;
+manpages/block.xsl,1.10; manpages/docbook.xsl,1.51;
+manpages/inline.xsl,1.16; manpages/synop.xsl,1.27 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Use AUTHORS instead of
+<tag>AUTHOR</tag> if we have multiple people to attribute. Also,
+fixed checking such that we generate
+<tag>author</tag> <tag>section</tag> even if we don't have an
+<tag>author</tag> (as long as there is at least one other
+person/entity we can put in the
+<tag>section</tag>). Also adjusted assembly of content for
+<tag>Author</tag> metainfo field such that we now not only use
+<tag>author</tag>, but try to find a "best match" if we can't
+find an <tag>author</tag> name to put there.</para>
+<para>Closes
+#1233592. Thanks to Sam Steingold for the
+request.</para>
+<para role="commit-changes">Modified: manpages/info.xsl,1.12 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Changes for request #1243027,
+"Impove handling of <tag>AUTHOR</tag> <tag>section</tag>." This
+adds support for <tag>Collab</tag>, Corpauthor, Corpcredt,
+<tag>Orgname</tag>, <tag>Publishername</tag>, and
+<tag>Publisher</tag>. Also adds support for output
+of <tag>Affiliation</tag> and its children, and support for using
+gentext strings for auto-attributing roles (<tag>Author</tag>,
+<tag>Editor</tag>, <tag>Publisher</tag>, Translator, etc.). Also
+did a lot of code cleanup and modularization of all the
+<tag>AUTHOR</tag> handling code. And fixed a bug that was causing
+<tag>Author</tag> <tag>info</tag> to not be picked up correctly
+for metainfo comment we embed in man-page
+source.</para>
+<para role="commit-changes">Modified: manpages/info.xsl,1.11 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support bold output for
+"<tag>emphasis</tag> remap='B'". (because Eric Raymond's
+doclifter(1) tool converts groff source marked up with ".B"
+request or "\fB" escapes to DocBook "<tag>emphasis</tag>
+remap='B'".)</para>
+<para role="commit-changes">Modified: manpages/inline.xsl,1.14 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for
+<tag>Segmentedlist</tag>. Details: Output is tabular, with no
+option for "list" type output. Output for <tag>Segtitle</tag>
+elements can be supressed by
+setting man.<tag>segtitle</tag>.suppress. If <tag>Segtitle</tag>
+content is output, it is rendered in italic type (not bold
+because not all terminals support bold and so italic ensures the
+stand out on those terminals). Extra space (.sp line) at end of
+<tag>table</tag> code ensures that it gets handled correctly in
+the case where its source is the child of a <tag>Para</tag>.
+Closes feature-request #1400097. Thanks to Daniel Leidert for the
+patch and push, and to Alastair Rankine for filing the original
+feature request.</para>
+<para role="commit-changes">Modified: manpages/lists.xsl,1.23;
+manpages/utility.xsl,1.10 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Improved handling or
+Author/Editor/Othercredit.</para>
+<para>Reworked content of
+(non-visible) comment added at top of each page (metadata
+stuff).</para>
+<para>Added support for generating a
+<parameter>manifest</parameter> file (useful for cleaning up
+after builds, etc.)</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.46;
+manpages/info.xsl,1.9; manpages/other.xsl,1.12;
+manpages/utility.xsl,1.6 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added two new parameters for
+handling of multi-term
+<tag>varlistentry</tag> elements:</para>
+<para><parameter>variablelist.term.break.after</parameter>: 
+When the <parameter>variablelist.term.break.after</parameter> is
+non-zero, it will  generate a line break after each
+<tag>term</tag> multi-term
+<tag>varlistentry</tag>.</para>
+<para><parameter>variablelist.term.separator</parameter>: 
+When a <tag>varlistentry</tag> contains multiple <tag>term</tag>
+elements, the string  specified in the value of the
+<parameter>variablelist.term.separator</parameter>  parameter is
+placed after each <tag>term</tag> except the last. The default 
+is ", " (a comma followed by a space). To suppress rendering of 
+the separator, set the value of
+<parameter>variablelist.term.separator</parameter> to  the empty
+string ("").</para>
+<para>These parameters are primarily intended to be
+useful if you have multi-term varlistentries that have long
+terms.</para>
+<para>Closes #1306676. Thanks to Sam Steingold for
+providing an example "lots of long terms" doc that demonstrated
+the value of having these options.</para>
+<para>Also, added
+normalize-space() call to processing of each
+<tag>term</tag>.</para>
+<para>This change affects all output formats
+(HTML, PDF, manpages). The default behavior should pretty much
+remain the same as before, but it is possible (as always) that
+the change may introduce some
+new bugginess.</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.62; fo/param.ent,1.88;
+fo/param.xweb,1.99; html/lists.xsl,1.48; html/param.ent,1.86;
+html/param.xweb,1.93; manpages/lists.xsl,1.22;
+manpages/param.ent,1.14; manpages/param.xweb,1.16;
+params/variablelist.term.break.after.xml,1.1;
+params/variablelist.term.separator.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+        <filename>params</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>New parameters to set
+header/footer <tag>table</tag> minimum
+height.</para>
+<para role="commit-changes">Modified: params/footer.table.height.xml,1.1;
+params/header.table.height.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support multiple indexing methods
+for different languages.</para>
+<para role="commit-changes">Modified: params/index.method.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Remove <tag>qandaset</tag> and
+<tag>qandadiv</tag> from <parameter>generate.toc</parameter> for fo
+output because formerly it wasn't working, but now it is and
+the default behavior should stay the
+same.</para>
+<para role="commit-changes">Modified: params/generate.toc.xml,1.8 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>add support for page number
+references to <tag>link</tag> element
+too.</para>
+<para role="commit-changes">Modified: params/insert.link.page.number.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for more characters to
+hyphen on when <parameter>ulink.hyphenate</parameter> is turned
+on.</para>
+<para role="commit-changes">Modified: params/ulink.hyphenate.chars.xml,1.1;
+params/ulink.hyphenate.xml,1.3 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>New attribute-set to format
+<tag>biblioentry</tag> and
+<tag>bibliomixed</tag>.</para>
+<para role="commit-changes">Modified: params/biblioentry.properties.xml,1.1 -
+Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new parameter
+<parameter>chunk.tocs.and.lots</parameter>.has.<tag>title</tag> which
+controls presence of <tag>title</tag> in a separate chunk with
+ToC/LoT. Disabling <tag>title</tag> can be very useful if you are
+generating frameset output (well, yes those frames, but some customers
+really want them ;-).</para>
+<para role="commit-changes">Modified: html/chunk-code.xsl,1.15;
+html/param.ent,1.93; html/param.xweb,1.102;
+params/chunk.tocs.and.lots.has.title.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new attribute set
+<tag>toc</tag>.line.properties for controlling appearance of lines in
+ToC/LoT</para>
+<para role="commit-changes">Modified: params/toc.line.properties.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Allow <tag>table</tag> footnotes
+to have different properties from regular
+footnotes.</para>
+<para role="commit-changes">Modified: params/table.footnote.properties.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Set properties for pgwide="1"
+objects.</para>
+<para role="commit-changes">Modified: params/pgwide.properties.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added the
+autotoc.<tag>label</tag>.in.hyperlink param.</para>
+<para>If the value
+of autotoc.<tag>label</tag>.in.hyperlink is non-zero, labels
+are included in hyperlinked titles in the <tag>TOC</tag>. If it
+is instead zero, labels are still displayed prior to the
+hyperlinked titles, but are not hyperlinked along with the
+titles.</para>
+<para>Closes patch #1065868. Thanks to anatoly techtonik
+for the patch.</para>
+<para role="commit-changes">Modified: html/autotoc.xsl,1.36; html/param.ent,1.92;
+html/param.xweb,1.101; params/autotoc.label.in.hyperlink.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added two new params:
+html.head.<tag>legalnotice</tag>.<tag>link</tag>.types
+and html.head.<tag>legalnotice</tag>.<tag>link</tag>.multiple.</para>
+<para>If
+the value of the <parameter>generate.legalnotice.link</parameter> is
+non-zero, then the stylesheet generates (in the head
+<tag>section</tag> of the HTML source) either a single HTML
+<tag>link</tag> element or, if the value of
+the html.head.<tag>legalnotice</tag>.<tag>link</tag>.multiple is
+non-zero, one <tag>link</tag> element for each <tag>link</tag>
+type specified. Each <tag>link</tag> has the
+following attributes:</para>
+<para> - a rel attribute whose value
+is derived from the value of 
+html.head.<tag>legalnotice</tag>.<tag>link</tag>.types</para>
+<para> -
+an href attribute whose value is set to the URL of the file 
+containing the <tag>legalnotice</tag></para>
+<para> - a <tag>title</tag>
+attribute whose value is set to the <tag>title</tag> of the 
+corresponding <tag>legalnotice</tag> (or a <tag>title</tag>
+programatically  determined by the stylesheet)</para>
+<para>For
+example:</para>
+<para> &lt;<tag>link</tag> rel="<tag>copyright</tag>"
+href="ln-id2524073.html" title="Legal Notice"&gt;</para>
+<para>Closes
+#1476450. Thanks to Sam Steingold.</para>
+<para role="commit-changes">Modified: html/chunk-common.xsl,1.45;
+html/param.ent,1.91; html/param.xweb,1.100;
+params/generate.legalnotice.link.xml,1.4;
+params/html.head.legalnotice.link.multiple.xml,1.1;
+params/html.head.legalnotice.link.types.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added the following
+params:</para>
+<para> - man.indent.width (string-valued)  -
+man.indent.refsect (boolean)  - man.indent.blurbs (boolean) 
+- man.indent.lists (boolean)  - man.indent.verbatims
+(boolean)</para>
+<para>Note that in earlier snapshots, man.indent.width
+was named man.indentation.default.value and the boolean params
+had names like man.indentation.*.adjust. Also the
+man.indent.blurbs param was called man.indentation.authors.adjust
+(or something).</para>
+<para>The behavior now is: If the value of a
+particular man.indent.* boolean param is non-zero, the
+corresponding contents (refsect*, list items,
+authorblurb/personblurb, vervatims) are displayed with a left
+margin indented by a width equal to the value
+of man.indent.width.</para>
+<para role="commit-changes">Modified: params/man.indent.blurbs.xml,1.1;
+manpages/docbook.xsl,1.74; manpages/info.xsl,1.20;
+manpages/lists.xsl,1.30; manpages/other.xsl,1.20;
+manpages/param.ent,1.22; manpages/param.xweb,1.24;
+manpages/refentry.xsl,1.14; params/man.indent.lists.xml,1.1;
+params/man.indent.refsect.xml,1.1;
+params/man.indent.verbatims.xml,1.1; params/man.indent.width.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.<tag>table</tag>.footnotes.divider param.</para>
+<para>In each
+<tag>table</tag> that contains footenotes, the string specified
+by the man.<tag>table</tag>.footnotes.divider parameter is output
+before the list of footnotes for the
+<tag>table</tag>.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.73;
+manpages/links.xsl,1.6; manpages/param.ent,1.21;
+manpages/param.xweb,1.23; params/man.table.footnotes.divider.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added the
+man.output.in.separate.dir,
+man.output.<parameter>base.dir</parameter>,
+and man.output.subdirs.enabled parameters.</para>
+<para>The
+man.output.<parameter>base.dir</parameter> parameter specifies the
+base directory into which man-page files are
+output. The man.output.subdirs.enabled parameter controls whether
+the files are output in subdirectories within the base
+directory.</para>
+<para>The values of the
+man.output.<parameter>base.dir</parameter>
+and man.output.subdirs.enabled parameters are used only if the
+value of man.output.in.separate.dir parameter is non-zero. If the
+value of man.output.in.separate.dir is zero, man-page files are
+not output in a separate
+directory.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.72; manpages/param.ent,1.20;
+manpages/param.xweb,1.22; params/man.output.base.dir.xml,1.1;
+params/man.output.in.separate.dir.xml,1.1;
+params/man.output.subdirs.enabled.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.font.<tag>table</tag>.headings and
+man.font.<tag>table</tag>.<tag>title</tag> params, for
+controlling font in <tag>table</tag> headings and
+titles.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.71; manpages/param.ent,1.19;
+manpages/param.xweb,1.21; params/man.font.table.headings.xml,1.1;
+params/man.font.table.title.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.font.<tag>funcsynopsisinfo</tag> and
+man.font.<tag>funcprototype</tag> params, for specifying the roff
+font (for example, BI, B, I) for <tag>funcsynopsisinfo</tag> and
+<tag>funcprototype</tag> output.</para>
+<para role="commit-changes">Modified: manpages/block.xsl,1.19;
+manpages/docbook.xsl,1.69; manpages/param.ent,1.18;
+manpages/param.xweb,1.20; manpages/synop.xsl,1.29;
+manpages/table.xsl,1.21; params/man.font.funcprototype.xml,1.1;
+params/man.font.funcsynopsisinfo.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Changed to select="0" in
+<tag>refclass</tag>.suppress (instead of
+..&gt;0&lt;/..)</para>
+<para role="commit-changes">Modified: params/refclass.suppress.xml,1.3 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.<tag>segtitle</tag>.suppress param.</para>
+<para>If the value of
+man.<tag>segtitle</tag>.suppress is non-zero, then display
+of <tag>segtitle</tag> contents is suppressed in
+output.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.68; manpages/param.ent,1.17;
+manpages/param.xweb,1.19; params/man.segtitle.suppress.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.output.<parameter>manifest</parameter>.enabled and
+man.output.manifest.<tag>filename</tag> params.</para>
+<para>If
+man.output.<parameter>manifest</parameter>.enabled is non-zero, a list
+of filenames for man pages generated by the stylesheet
+transformation is written to the file named by
+man.output.<parameter>manifest</parameter>.<tag>filename</tag></para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.67;
+manpages/other.xsl,1.19; manpages/param.ent,1.16;
+manpages/param.xweb,1.18; params/man.output.manifest.enabled.xml,1.1;
+params/man.output.manifest.filename.xml,1.1;
+tools/make/Makefile.DocBook,1.4 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added <tag>refclass</tag>.suppress
+param.</para>
+<para>If the value of <tag>refclass</tag>.suppress is
+non-zero, then display <tag>refclass</tag> contents is suppressed
+in output. Affects HTML and FO output
+only.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.93; fo/param.xweb,1.106; html/param.ent,1.90;
+html/param.xweb,1.99; params/refclass.suppress.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+<tag>refentry</tag>.meta.get.quietly param.</para>
+<para>If zero (the
+default), notes and warnings about "missing" markup are generated
+during gathering of <tag>refentry</tag> metadata. If
+non-zero, the metadata is gathered "quietly" -- that is, the
+notes and warnings are suppressed.</para>
+<para>NOTE: If you are
+processing a large amount of <tag>refentry</tag> content,  you
+may be able to speed up processing significantly by  setting a
+non-zero value for
+<tag>refentry</tag>.meta.get.quietly.</para>
+<para role="commit-changes">Modified: common/refentry.xsl,1.17;
+manpages/param.ent,1.15; manpages/param.xweb,1.17;
+params/refentry.meta.get.quietly.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for "software" and
+"sectdesc" class values on <tag>refmiscinfo</tag>; "software" is
+treated identically to "source", and "setdesc" is treated
+identically to "manual".</para>
+<para role="commit-changes">Modified: common/refentry.xsl,1.10;
+params/man.th.extra2.max.length.xml,1.3;
+params/refentry.source.name.profile.xml,1.4 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Drastically reworked all of the
+XPath expressions used in <tag>refentry</tag> metadata gathering
+-- completely removed $parentinfo and turned $info into a set of
+nodes that includes the *info contents of the <tag>Refentry</tag>
+plus the *info contents all all of its ancestor elements. The
+basic XPath expression now used throughout is (using the example
+of checking for a <tag>date</tag>):</para>
+<para>
+(($info[//date])[last()]/date)[1].</para>
+<para>That selects the "last"
+*info/date <tag>date</tag> in document order -- that is, the one
+eitther on the <tag>Refentry</tag> itself or on the
+closest ancestor to the <tag>Refentry</tag>.</para>
+<para>It's
+likely this change may break some things; may need to pick up
+some pieces later.</para>
+<para>Also, changed the default value for the
+<parameter>man.th.extra2.max.length</parameter> from 40 to
+30.</para>
+<para role="commit-changes">Modified: common/common.xsl,1.58; common/refentry.xsl,1.7;
+params/man.th.extra2.max.length.xml,1.2;
+params/refentry.date.profile.xml,1.2;
+params/refentry.manual.profile.xml,1.2;
+params/refentry.source.name.profile.xml,1.2;
+params/refentry.version.profile.xml,1.2; manpages/docbook.xsl,1.58;
+manpages/other.xsl,1.15 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added option for turning off bold
+formatting in <tag>Funcsynopsis</tag>. Boldface formatting in
+<tag>function</tag> <tag>synopsis</tag> is mandated in the
+man(7) man page and is used almost universally in existing man
+pages. Despite that, it really does look like crap to have an
+entire <tag>Funcsynopsis</tag> output in bold, so I added params
+for turning off the bold formatting and/or replacing it with a
+different roff special font (e.g., "RI" for alternating
+roman/italic instead of the default "BI" for alternating
+bold/italic). The new params
+are "man.<tag>funcprototype</tag>.font" and
+"man.<tag>funcsynopsisinfo</tag>.font". To be documented
+later.</para>
+<para>Closes #1452247. Thanks to Joe Orton for the feature
+request.</para>
+<para role="commit-changes">Modified: params/man.string.subst.map.xml,1.16;
+manpages/block.xsl,1.10; manpages/docbook.xsl,1.51;
+manpages/inline.xsl,1.16; manpages/synop.xsl,1.27 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para><parameter>fop.extensions</parameter> now only
+for FOP version 0.20.5 and earlier.</para>
+<para role="commit-changes">Modified: params/fop.extensions.xml,1.4
+- Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support for fop1 different from
+fop 0.20.5 and earlier.</para>
+<para role="commit-changes">Modified: params/fop1.extensions.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Reset default value to empty
+string so template uses gentext first, then the parameter value
+if not empty.</para>
+<para role="commit-changes">Modified: params/index.number.separator.xml,1.2;
+params/index.range.separator.xml,1.2;
+params/index.term.separator.xml,1.2 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>New parameter:
+<parameter>id.warnings</parameter>. If non-zero, warnings are
+generated for titled objects that don't have titles. True by default;
+I wonder if this will be too aggressive?</para>
+<para role="commit-changes">Modified: html/biblio.xsl,1.25;
+html/component.xsl,1.27; html/division.xsl,1.11; html/formal.xsl,1.19;
+html/glossary.xsl,1.20; html/html.xsl,1.13; html/index.xsl,1.16;
+html/param.ent,1.88; html/param.xweb,1.97; html/refentry.xsl,1.22;
+html/sections.xsl,1.30; params/id.warnings.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new parameter
+<parameter>keep.relative.image.uris</parameter></para>
+<para role="commit-changes">Modified: fo/param.ent,1.91;
+fo/param.xweb,1.104; html/param.ent,1.87; html/param.xweb,1.96;
+params/keep.relative.image.uris.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support default <tag>label</tag>
+width parameters for itemized and ordered lists</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.64;
+fo/param.ent,1.90; fo/param.xweb,1.103;
+params/itemizedlist.label.width.xml,1.1;
+params/orderedlist.label.width.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added parameters to localize
+punctuation in indexes.</para>
+<para role="commit-changes">Modified: params/index.number.separator.xml,1.1;
+params/index.range.separator.xml,1.1;
+params/index.term.separator.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added two new parameters for
+handling of multi-term
+<tag>varlistentry</tag> elements:</para>
+<para><parameter>variablelist.term.break.after</parameter>: 
+When the <parameter>variablelist.term.break.after</parameter> is
+non-zero, it will  generate a line break after each
+<tag>term</tag> multi-term
+<tag>varlistentry</tag>.</para>
+<para><parameter>variablelist.term.separator</parameter>: 
+When a <tag>varlistentry</tag> contains multiple <tag>term</tag>
+elements, the string  specified in the value of the
+<parameter>variablelist.term.separator</parameter>  parameter is
+placed after each <tag>term</tag> except the last. The default 
+is ", " (a comma followed by a space). To suppress rendering of 
+the separator, set the value of
+<parameter>variablelist.term.separator</parameter> to  the empty
+string ("").</para>
+<para>These parameters are primarily intended to be
+useful if you have multi-term varlistentries that have long
+terms.</para>
+<para>Closes #1306676. Thanks to Sam Steingold for
+providing an example "lots of long terms" doc that demonstrated
+the value of having these options.</para>
+<para>Also, added
+normalize-space() call to processing of each
+<tag>term</tag>.</para>
+<para>This change affects all output formats
+(HTML, PDF, manpages). The default behavior should pretty much
+remain the same as before, but it is possible (as always) that
+the change may introduce some
+new bugginess.</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.62; fo/param.ent,1.88;
+fo/param.xweb,1.99; html/lists.xsl,1.48; html/param.ent,1.86;
+html/param.xweb,1.93; manpages/lists.xsl,1.22;
+manpages/param.ent,1.14; manpages/param.xweb,1.16;
+params/variablelist.term.break.after.xml,1.1;
+params/variablelist.term.separator.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Convert 'no' to string in default
+value.</para>
+<para role="commit-changes">Modified: params/olink.doctitle.xml,1.4 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented RFE
+#1292615.</para>
+<para>Added bunch of new parameters (attribute sets)
+that affect list presentation: list.block.properties,
+<tag>itemizedlist</tag>.properties, <tag>orderedlist</tag>.properties,
+<tag>itemizedlist</tag>.<tag>label</tag>.properties and
+<tag>orderedlist</tag>.<tag>label</tag>.properties. Default behaviour
+of stylesheets has not been changed but further customizations will be
+much more easier.</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.61; fo/param.ent,1.87;
+fo/param.xweb,1.98; params/itemizedlist.label.properties.xml,1.1;
+params/itemizedlist.properties.xml,1.1;
+params/list.block.properties.xml,1.1;
+params/orderedlist.label.properties.xml,1.1;
+params/orderedlist.properties.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented RFE
+#1242092.</para>
+<para>You can enable crop marks in your document by
+setting crop.marks=1 and xep.extensions=1. Appearance of crop
+marks can be controlled by parameters
+<parameter>crop.mark.bleed</parameter> (6pt),
+<parameter>crop.mark.offset</parameter> (24pt) and
+<parameter>crop.mark.width</parameter> (0.5pt).</para>
+<para>Also there
+is new named template called user-xep-pis. You can overwrite it in
+order to produce some PIs that can control XEP as described in
+http://www.renderx.com/reference.html#Output_Formats</para>
+<para role="commit-changes">Modified: fo/docbook.xsl,1.36;
+fo/param.ent,1.86; fo/param.xweb,1.97; fo/xep.xsl,1.23;
+params/crop.mark.bleed.xml,1.1; params/crop.mark.offset.xml,1.1;
+params/crop.mark.width.xml,1.1; params/crop.marks.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Changed short descriptions in doc
+for *autolabel* params to match new autolabel
+behavior.</para>
+<para role="commit-changes">Modified: params/appendix.autolabel.xml,1.5;
+params/chapter.autolabel.xml,1.4; params/part.autolabel.xml,1.5;
+params/preface.autolabel.xml,1.4 - Michael(tm)
+Smith</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_Profiling">
+<title>Profiling</title>
+<para>The following changes have been made to the
+        <filename>profiling</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Profiling now works together with
+namespace stripping (V5 documents). Namespace striping should work
+with all stylesheets named profile-, even if they are not supporting
+namespace stripping in a non-profiling
+variant.</para>
+<para role="commit-changes">Modified: profiling/profile-mode.xsl,1.4;
+profiling/xsl2profile.xsl,1.7 - Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Moved profiling stage out of
+templates. This make possible to reuse profiled content by several
+templates and still maintaing node indentity (needed for example for
+HTML Help where content is processed multiple times).</para>
+<para>I
+don't know why this was not on the top level before. Maybe some XSLT
+processors choked on it. I hope this will be OK
+now.</para>
+<para role="commit-changes">Modified: profiling/xsl2profile.xsl,1.5 - Jirka
+Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Profiling changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_Tools">
+<title>Tools</title>
+<para>The following changes have been made to the
+        <filename>tools</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Moved Makefile.DocBook from
+<tag>contrib</tag> module to xsl
+module.</para>
+<para role="commit-changes">Modified: tools/make/Makefile.DocBook,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Tools changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_WordML">
+<title>WordML</title>
+<para>The following changes have been made to the
+        <filename>wordml</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>added <tag>contrib</tag> element,
+better handling of default paragraph
+style</para>
+<para role="commit-changes">Modified: wordml/pages-normalise.xsl,1.6; wordml/supported.xml,1.2;
+wordml/wordml-final.xsl,1.14 - Steve Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>added
+<tag>bridgehead</tag></para>
+<para role="commit-changes">Modified: wordml/docbook-pages.xsl,1.6;
+wordml/docbook.xsl,1.17; wordml/pages-normalise.xsl,1.5;
+wordml/template-pages.xml,1.7; wordml/template.dot,1.4;
+wordml/template.xml,1.14; wordml/wordml-final.xsl,1.13 - Steve
+Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>added blocks stylesheet to support
+bibliographies, glossaries and qandasets</para>
+<para role="commit-changes">Modified: wordml/Makefile,1.4;
+wordml/README,1.3; wordml/blocks-spec.xml,1.1;
+wordml/docbook-pages.xsl,1.5; wordml/docbook.xsl,1.16;
+wordml/pages-normalise.xsl,1.4; wordml/sections-spec.xml,1.3;
+wordml/specifications.xml,1.13; wordml/template-pages.xml,1.6;
+wordml/template.dot,1.3; wordml/template.xml,1.13;
+wordml/wordml-blocks.xsl,1.1; wordml/wordml-final.xsl,1.12;
+wordml/wordml-sections.xsl,1.3 - Steve Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>added <tag>mediaobject</tag>
+<tag>caption</tag></para>
+<para role="commit-changes">Modified: wordml/docbook-pages.xsl,1.4;
+wordml/docbook.xsl,1.15; wordml/specifications.xml,1.12;
+wordml/template-pages.xml,1.5; wordml/template.dot,1.2;
+wordml/template.xml,1.12; wordml/wordml-final.xsl,1.11 - Steve
+Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>added
+callouts</para>
+<para role="commit-changes">Modified: wordml/docbook-pages.xsl,1.3; wordml/docbook.xsl,1.14;
+wordml/pages-normalise.xsl,1.3; wordml/specifications.xml,1.11;
+wordml/template-pages.xml,1.4; wordml/wordml-final.xsl,1.10 - Steve
+Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>added Word template
+file</para>
+<para role="commit-changes">Modified: wordml/template.dot,1.1 - Steve Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>added <tag>abstract</tag>, fixed
+<tag>itemizedlist</tag>, ulink</para>
+<para role="commit-changes">Modified: wordml/specifications.xml,1.10;
+wordml/wordml-final.xsl,1.9 - Steve Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>fixed Makefile added many
+features to Pages support added <tag>revhistory</tag>, inlines,
+highlights, <tag>abstract</tag></para>
+<para role="commit-changes">Modified: wordml/Makefile,1.2;
+wordml/docbook-pages.xsl,1.2; wordml/pages-normalise.xsl,1.2;
+wordml/sections-spec.xml,1.2; wordml/specifications.xml,1.9;
+wordml/template-pages.xml,1.3; wordml/template.xml,1.11;
+wordml/wordml-final.xsl,1.8; wordml/wordml-sections.xsl,1.2 - Steve
+Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>fixed handling linebreaks when
+generating WordML added Apple Pages
+support</para>
+<para role="commit-changes">Modified: wordml/docbook.xsl,1.13; wordml/template-pages.xml,1.2 -
+Steve Ball</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of WordML changes for snapshot_2006-05-15_0803-->
+</sect1>
+
+  <sect1 xml:id="V1691">
+    <title>Release 1.69.1</title>
+    <para>This release is a minor bug-fix update to the 1.69.0
+    release. Along with bug fixes, it includes one
+    configuration-parameter change: The default value of the
+    <parameter>annotation.support</parameter> parameter is now
+    <literal>0</literal> (off). The reason for that change is that
+    there have been reports that <tag>annotation</tag> handling is
+    causing a significant performance degradation in processing of
+    large documents with <command>xsltproc</command>.</para>
+  </sect1>
+  <!-- end of notes for 1.69.1 release -->
+
+  <sect1 xml:id="V1690">
+    <title>Release 1.69.0</title>
+    <para>The release includes major feature changes,
+    particularly in the <link linkend="V1690_MAN">manpages
+    stylesheets</link>, as well as a large number of bug fixes.</para>
+
+    <para>As with all DocBook Project <quote>dot zero</quote> releases, this is an
+    <link linkend="dot0">experimental release </link>.</para>
+   
+    <sect2 xml:id="V1690_COMMON">
+      <title>Common</title>
+      <itemizedlist>
+        <listitem>
+          <para>This release adds localizations for the following
+          languages:
+            <simplelist type="inline">
+              <?dbchoice choice="and"?>
+              <member>Albanian</member>
+              <member>Amharic</member>
+              <member>Azerbaijani</member>
+              <member>Hindi</member>
+              <member>Irish (Gaelic)</member>
+              <member>Gujarati</member>
+              <member>Kannada</member>
+              <member>Mongolian</member>
+              <member>Oriya</member>
+              <member>Punjabi</member>
+              <member>Tagalog</member>
+              <member>Tamil</member>
+              <member>Welsh</member>
+          </simplelist>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for specifying number format for auto
+          labels for <tag>chapter</tag>, <tag>appendix</tag>,
+          <tag>part</tag>, and <tag>preface</tag>. Contolled with the
+          <parameter>appendix.autolabel</parameter>,
+          <parameter>chapter.autolabel</parameter>,
+          <parameter>part.autolabel</parameter>, and
+          <parameter>preface.autolabel</parameter> parameters.</para>
+        </listitem>
+        <listitem>
+          <para>Added basic support for <tag>biblioref</tag> cross
+          referencing.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag class="attribute">align</tag>
+          on <tag>caption</tag> in <tag>mediaobject</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for processing documents that use the
+          DocBook V5 namespace.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag>termdef</tag> and
+          <tag>mathphrase</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>EXPERIMENTAL: Incorporated the Slides and Website
+          stylesheets into the DocBook XSL stylesheets package. So,
+          for example, Website documents can now be processed using
+          the following URI for the driver Website
+          <filename>tabular.xsl</filename> file: <literallayout class="monospaced"><uri>http://docbook.sourceforge.net/release/xsl/current/website/tabular.xsl</uri></literallayout></para>
+        </listitem>
+        <listitem>
+          <para>A <tag>procedure</tag> without a <tag>title</tag> is
+          now treated as an <quote>informal</quote> procedure (meaning
+          that it is not added to any generated <quote>list of
+          procedures</quote> and has no affect on numbering of
+          generated labels for other procedures).</para>
+        </listitem>
+        <listitem>
+          <para><tag>docname</tag> is no longer added to
+          <tag>olink</tag> when pointing to a root element.</para>
+        </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Added support for generation of choice separator in
+        inline simplelist. This enables auto-generation of an
+        appropriate localized <quote>choice separator</quote> (for
+        example, <quote>and</quote> or <quote>or</quote>) before the
+        final item in an inline <tag>simplelist</tag>.</para>
+        <para>To indicate that you want a choice separator
+        generated for a particular list, you need to put a processing
+        instruction (PI) of the form
+        <tag class="xmlpi">dbchoice&#xA0;choice="foo"</tag> as a
+        child of the list. For example:
+        <literallayout class="monospaced">  &lt;para&gt;Choose from
+  ONE and ONLY ONE of the following: 
+  &lt;simplelist type="inline"&gt;
+  &lt;?dbchoice choice="or" ?&gt;
+  &lt;member&gt;A&lt;/member&gt;
+  &lt;member&gt;B&lt;/member&gt;
+  &lt;member&gt;C&lt;/member&gt;.&lt;/simplelist&gt;&lt;/para&gt;</literallayout>
+
+        Output (for English):
+        <blockquote>
+          <para>Choose from ONE and only ONE of the
+          following choices: A, B, or C.</para>
+        </blockquote>
+        As a temporary workaround for the fact that most of the
+        DocBook non-English locale files don't have a localization for
+        the word <quote>or</quote>, you can put in a literal string to
+        be used; example for French: <tag class="pi">dbchoice&#xA0;choice="ou"</tag>.  That is, use
+        <quote>ou</quote> instead of <quote>or</quote>.</para>
+      </listitem>
+      </itemizedlist>
+    </sect2>
+    <sect2 xml:id="V1690_FO">
+      <title>FO</title>
+      <itemizedlist>
+        <listitem>
+          <para> Added <literal>content-type</literal> property to
+          <literal>external-graphic</literal> element, based on
+          <tag>imagedata</tag> <tag class="attribute">format</tag>
+          attribute.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for generating
+          <literal>&lt;rx:meta-field&#xA0;creator="$VERSION"/&gt;</literal>
+          field for XEP output. This makes the DocBook XSL
+          stylesheet version information available through the
+          <guimenu>Document Properties</guimenu> menu in Acrobat
+          Reader and other PDF viewers.</para>
+        </listitem>
+        <listitem>
+          <para>Trademark symbol handling made consistent with
+          handling of same in HTML stylesheets. Prior to this change,
+          if you processed a document that contained no value for the
+          <tag class="attribute">class</tag> attribute on the
+          <tag>trademark</tag> element, the HTML stylesheets would
+          default to rendering a superscript <literal>TM
+          </literal>symbol after the <tag>trademark</tag> contents,
+          but the FO stylesheets would render nothing.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for generating XEP bookmarks for
+          <tag>refentry</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for HTML markup <tag>table</tag> <tag class="attribute">border</tag> attribute, applied to each
+          table cell.</para>
+        </listitem>
+        <listitem>
+          <para>The <function>table.width</function> template can now
+          sum column specs if none use <literal>%</literal> or
+          <literal>*</literal>.</para>
+        </listitem>
+        <listitem>
+          <para>Added <literal>fox:destination</literal> extension
+          inside <literal>fox:outline</literal> to support linking to
+          internal destinations.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for customizing
+          <literal>abstract</literal> with property sets. Controlled
+          with the <parameter>abstract.properties</parameter> and
+          <parameter>abstract.title.properties</parameter>
+          parameters.</para>
+        </listitem>
+        <listitem>
+          <para>Add <tag>footnote</tag>s in <tag>table</tag> title to
+          table footnote set, and add support for table footnotes to
+          HTML table markup.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag>title</tag> in
+          <tag>glosslist</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag>itemizedlist</tag> symbol
+          <literal>none</literal>.</para>
+        </listitem>
+        <listitem>
+          <para>Implemented the new
+          <parameter>graphical.admonition.properties</parameter> and
+          <parameter>nongraphical.admonition.properties</parameter>
+          attribute sets.</para>
+        </listitem>
+        <listitem>
+          <para>Added <tag class="attribute">id</tag> to
+          <tag>formalpara</tag> and some other blocks that were
+          missing it.</para>
+        </listitem>
+        <listitem>
+          <para>Changed the anchor template to output
+          <literal>fo:inline</literal> instead of
+          <literal>fo:wrapper</literal>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <parameter>toc.max.depth</parameter>
+          parameter.</para>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    
+    <sect2 xml:id="V1690_HELP">
+      <title>Help</title>
+      <itemizedlist>
+        <listitem>
+          <para>Eclipse Help: Added support for generating olink
+          database.</para>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+
+    <sect2 xml:id="V1690_HTML">
+      <title>HTML</title>
+      <itemizedlist>
+        <listitem>
+          <para>Added a first cut at support in HTML output for
+          DocBook 5 style <tag>annotation</tag>s. Controlled using the
+          <parameter>annotation.support</parameter> parameter, and
+          implemented using JavaScript and CSS styling. For more
+          details, see the documentation for the
+          <parameter>annotation.js</parameter>,
+          <parameter>annotation.css</parameter>,
+          <parameter>annotation.graphic.open</parameter>, and
+          <parameter>annotation.graphic.close</parameter>
+          parameters.</para>
+        </listitem>
+        <listitem>
+          <para>Generate client-side image map for
+          <tag>imageobjectco</tag> with areas using
+          <literal>calspair</literal> units</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag class="xmlpi">img.src.path</tag> PI.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for passing
+          <parameter>img.src.path</parameter> to DocBook Java XSLT
+          image extensions when appropriate. Controlled using the
+          <parameter>graphicsize.use.img.src.path</parameter>
+          parameter.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for (not
+          valid for DocBook 4) <tag class="attribute">xlink:href</tag>
+          on <tag>area</tag> and (not valid for DocBook 4)
+          <tag>alt</tag> in <tag>area</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added new parameter
+          <parameter>default.table.frame</parameter> to control table
+          framing if there is no <tag class="attribute">frame</tag>
+          attribute on a table.</para>
+        </listitem>
+        <listitem>
+          <para>Added initial, experimental support for generating
+          content for the HTML <literal>title</literal> attribute from
+          content of the <tag>alt</tag> element. This change adds
+          support for the following inline elements only (none of them
+          are block elements):
+          <simplelist type="inline">
+            <?dbchoice choice="and"?>
+            <member><tag>abbrev</tag></member>
+            <member><tag>accel</tag></member>
+            <member><tag>acronym</tag></member>
+            <member><tag>action</tag></member>
+            <member><tag>application</tag></member>
+            <member><tag>authorinitials</tag></member>
+            <member><tag>beginpage</tag></member>
+            <member><tag>citation</tag></member>
+            <member><tag>citerefentry</tag></member>
+            <member><tag>citetitle</tag></member>
+            <member><tag>city</tag></member>
+            <member><tag>classname</tag></member>
+            <member><tag>code</tag></member>
+            <member><tag>command</tag></member>
+            <member><tag>computeroutput</tag></member>
+            <member><tag>constant</tag></member>
+            <member><tag>country</tag></member>
+            <member><tag>database</tag></member>
+            <member><tag>email</tag></member>
+            <member><tag>envar</tag></member>
+            <member><tag>errorcode</tag></member>
+            <member><tag>errorname</tag></member>
+            <member><tag>errortext</tag></member>
+            <member><tag>errortype</tag></member>
+            <member><tag>exceptionname</tag></member>
+            <member><tag>fax</tag></member>
+            <member><tag>filename</tag></member>
+            <member><tag>firstname</tag></member>
+            <member><tag>firstterm</tag></member>
+            <member><tag>foreignphrase</tag></member>
+            <member><tag>function</tag></member>
+            <member><tag>glossterm</tag></member>
+            <member><tag>guibutton</tag></member>
+            <member><tag>guiicon</tag></member>
+            <member><tag>guilabel</tag></member>
+            <member><tag>guimenu</tag></member>
+            <member><tag>guimenuitem</tag></member>
+            <member><tag>guisubmenu</tag></member>
+            <member><tag>hardware</tag></member>
+            <member><tag>honorific</tag></member>
+            <member><tag>interface</tag></member>
+            <member><tag>interfacename</tag></member>
+            <member><tag>keycap</tag></member>
+            <member><tag>keycode</tag></member>
+            <member><tag>keysym</tag></member>
+            <member><tag>lineage</tag></member>
+            <member><tag>lineannotation</tag></member>
+            <member><tag>literal</tag></member>
+            <member><tag>markup</tag></member>
+            <member><tag>medialabel</tag></member>
+            <member><tag>methodname</tag></member>
+            <member><tag>mousebutton</tag></member>
+            <member><tag>option</tag></member>
+            <member><tag>optional</tag></member>
+            <member><tag>otheraddr</tag></member>
+            <member><tag>othername</tag></member>
+            <member><tag>package</tag></member>
+            <member><tag>parameter</tag></member>
+            <member><tag>personname</tag></member>
+            <member><tag>phone</tag></member>
+            <member><tag>pob</tag></member>
+            <member><tag>postcode</tag></member>
+            <member><tag>productname</tag></member>
+            <member><tag>productnumber</tag></member>
+            <member><tag>prompt</tag></member>
+            <member><tag>property</tag></member>
+            <member><tag>quote</tag></member>
+            <member><tag>refentrytitle</tag></member>
+            <member><tag>remark</tag></member>
+            <member><tag>replaceable</tag></member>
+            <member><tag>returnvalue</tag></member>
+            <member><tag>tag</tag></member>
+            <member><tag>shortcut</tag></member>
+            <member><tag>state</tag></member>
+            <member><tag>street</tag></member>
+            <member><tag>structfield</tag></member>
+            <member><tag>structname</tag></member>
+            <member><tag>subscript</tag></member>
+            <member><tag>superscript</tag></member>
+            <member><tag>surname</tag></member>
+            <member><tag>symbol</tag></member>
+            <member><tag>systemitem</tag></member>
+            <member><tag>tag</tag></member>
+            <member><tag>termdef</tag></member>
+            <member><tag>token</tag></member>
+            <member><tag>trademark</tag></member>
+            <member><tag>type</tag></member>
+            <member><tag>uri</tag></member>
+            <member><tag>userinput</tag></member>
+            <member><tag>varname</tag></member>
+            <member><tag>wordasword</tag></member>
+          </simplelist>
+        </para>
+        </listitem>
+        <listitem>
+          <para>Added support for chunking <tag>revhistory</tag> into
+          separate file (similar to the support for doing same with
+          <tag>legalnotice</tag>). Patch from Thomas
+          Schraitle. Controlled through <parameter>new
+          generate.revhistory.link</parameter> parameter.</para>
+        </listitem>
+        <listitem>
+          <para>l10n.xsl: Made language codes RFC compliant. Added a
+          new boolean config parameter,
+          <parameter>l10n.lang.value.rfc.compliant</parameter>. If it
+          is non-zero (the default), any underscore in a language code
+          will be converted to a hyphen in HTML output. If it is zero,
+          the language code will be left as-is.</para>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <sect2 xml:id="V1690_MAN">
+      <title>man</title>
+      <para>This release closes out 44 manpages stylesheet bug reports
+      and feature requests. It adds more than 35 new configuration
+      parameters for controlling aspects of man-page output --
+      including hyphenation and justification, handling of links,
+      conversion of Unicode characters, and contents of man-page
+      headers and footers.</para>
+      <itemizedlist>
+        <!-- ======================================================= -->
+        <listitem>
+          <para>New options for globally disabling/enabling
+          hyphenation and justification:
+          <parameter>man.justify</parameter> and
+          <parameter>man.hyphenate</parameter>.</para>
+          <para>Note that the default
+          for the both of those is zero (off), because justified text
+          looks good only when it is also hyphenated; to quote the
+          <quote>Hyphenation</quote> node from the groff info page:
+          <blockquote>
+            <para><emphasis>Since the odds are not great for finding a
+            set of words, for every output line, which fit nicely on a
+            line without inserting excessive amounts of space between
+            words, `gtroff' hyphenates words so that it can justify
+            lines without inserting too much space between
+            words.</emphasis></para>
+          </blockquote>
+          The problem is that groff can end up hyphenating a lot of
+          things that you don't want hyphenated (variable names and
+          command names, for example). Keeping both justification and
+          hyphenation disabled ensures that hyphens won't get inserted
+          where you don't want to them, and you don't end up with
+          lines containing excessive amounts of space between
+          words. These default settings run counter to how most
+          existing man pages are formatted. But there are some notable
+          exceptions, such as the perl man pages.</para>
+        </listitem>
+        <listitem>
+          <para> Added parameters for controlling hyphenation of
+          computer inlines, filenames, and URLs. By default, even when
+          hyphenation is enabled (globally), hyphenation is now
+          suppressed for "computer inlines" (currently, just
+          <tag>classname</tag>, <tag>constant</tag>, <tag>envar</tag>,
+          <tag>errorcode</tag>, <tag>option</tag>,
+          <tag>replaceable</tag>, <tag>userinput</tag>,
+          <tag>type</tag>, and <tag>varname</tag>, and for
+          <tag>filenames</tag>, and for URLs from <tag>link</tag>. It
+          can be (re)enabled using the
+          <parameter>man.hyphenate.computer.inlines</parameter>,
+          <parameter>man.hyphenate.filenames</parameter>, and
+          <parameter>man.hyphenate.urls parameters</parameter>.</para>
+        </listitem>
+        <!-- ======================================================= -->
+        <listitem>
+          <para>Implemented a new system for replacing Unicode
+          characters. There are two parts to the new system: a
+          <quote>string substitution map</quote> for doing
+          <quote>essential</quote> replacements, and a
+          <quote>character map</quote> that can optionally be disabled
+          and enabled.</para>
+          <para>The new system fixes all open bugs that had to do with
+          literal Unicode numbered entities such as &amp;#8220; and
+          &amp;#8221; showing up in output, and greatly expands the
+          ability of the stylesheets to generate <quote>good</quote> roff
+          equivalents for Unicode symbols and special
+          characters.</para>
+          <para>Here are some details...</para>
+          <para>The previous manpages mechanism for replacing Unicode
+          symbols and special characters with roff equivalents (the
+          <function>replace-entities</function> template) was not
+          scalable and not complete. The mechanism handled a somewhat
+          arbitrary selection of less than 20 or so Unicode
+          characters. But there are potentially more than
+          <emphasis>800</emphasis> Unicode special characters that
+          have some groff equivalent they can be mapped to. And there
+          are about 34 symbols in the Latin-1 (ISO-8859-1) block
+          alone. Users might reasonably expect that if they include
+          any of those Latin-1 characters in their DocBook source
+          documents, they will get correctly converted to known roff
+          equivalents in output.</para>
+          <para>In addition to those common symbols, certain users may
+          have a need to use symbols from other Unicode blocks. Say,
+          somebody who is documenting an application related to math
+          might need to use a bunch of symbols from the
+          <quote>Mathematical Operators</quote> Unicode block (there
+          are about 65 characters in that block that have reasonable
+          roff equivalents). Or somebody else might really like
+          Dingbats -- such as the checkmark character -- and so might
+          use a bunch of things from the <quote>Dingbat</quote> block
+          (141 characters in that that have roff equivalents or that
+          can at least be <quote>degraded</quote> somewhat gracefully
+          into roff).</para>
+          <para>So, the old <function>replace-entities</function>
+          mechanism was replaced with a completely different mechanism
+          that is based on use of two <quote>maps</quote>: a
+          <quote>substitution map</quote> and a <quote>character
+          map</quote> (the latter in a format compliant with the XSLT
+          2.0 spec and therefore completely <quote>forward
+          compatible</quote> with XSLT 2.0).</para>
+          <para>The substitution map is controlled through the
+          <parameter>man.string.subst.map</parameter> parameter, and
+          is used to replace things like the backslash character
+          (which needs special handling to prevent it from being
+          interpreted as a roff escape). The substitution map cannot
+          be disabled, because disabling it will cause the output to
+          be broken. However, you can add to it and change it if
+          needed.</para>
+
+          <para>The <quote>character map</quote> mechanism, on the
+          other hand, can be completely disabled. It is enabled by
+          default, and, by default, does replacement of all Latin-1
+          symbols, along with most special spaces, dashes, and quotes
+          (about 75 characters by default). Also, you can optionally
+          enable a <quote>full</quote> character map that provides
+          support for converting all 800 or so of the characters that
+          have some reasonable groff equivalent.</para>
+
+          <para>The character-map mechanism is controlled through the
+          following parameters:
+          <variablelist>
+            <varlistentry>
+              <term><parameter>man.charmap.enabled</parameter></term>
+              <listitem><para>turns character-map support
+              on/off</para></listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><parameter>man.charmap.use.subset</parameter></term>
+              <listitem><para>specifies that a subset of the character
+              map is used instead of the full map</para></listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><parameter>man.charmap.subset.profile</parameter></term>
+              <listitem><para>specifies profile of character-map
+              subset</para></listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><parameter>man.charmap.uri</parameter></term>
+              <listitem><para>specifies an alternate character map to
+              use instead of the <quote>standard</quote> character map
+              provided in the distribution</para></listitem>
+            </varlistentry>
+          </variablelist>
+          </para>
+        </listitem>
+        <!-- ======================================================= -->
+        <listitem>
+          <para>Implemented out-of-line handling of display of URLs
+          for links (currently, only for <tag>ulink</tag>). This gives
+          you three choices for handling of links:
+          <orderedlist>
+            <listitem>
+              <para>Number and list links. Each link is numbered
+              inline, with a number in square brackets preceding the
+              link contents, and a numbered list of all links is added
+              to the end of the document.</para>
+            </listitem>
+            <listitem>
+              <para>Only list links. Links are not numbered, but an
+              (unnumbered) list of links is added to the end of the
+              document.</para>
+            </listitem>
+            <listitem>
+              <para>Suppress links. Don't number links and don't add
+              any list of links to the end of the document.</para>
+            </listitem>
+          </orderedlist>
+          You can also choose whether links should be underlined. The
+          default is <quote>the works</quote> -- list, number, and
+          underline links. You can use the
+          <parameter>man.links.list.enabled</parameter>, <parameter>
+          man.links.are.numbered</parameter>, and
+          <parameter>man.links.are.underlined</parameter> parameters
+          to change the defaults. The default heading for the link
+          list is REFERENCES. You can be change that using the
+          <parameter>man.links.list.heading</parameter>
+          parameter.</para>
+        </listitem>
+        <listitem>
+          <para>Changed default output encoding to UTF-8. <emphasis role="bold">This does not mean that man pages are output in
+          raw UTF-8</emphasis>, because the character map is applied
+          before final output, causing all UTF-8 characters covered in
+          the map to be converted to roff equivalents.</para>
+        </listitem>
+        <!-- ======================================================= -->
+        <listitem>
+          <para>Added support for processing <tag>refsect3</tag> and
+          <tag>formalpara</tag> and nested <tag>refsection</tag>
+          elements, down to any arbitrary level of nesting.</para>
+        </listitem>
+        <!-- ======================================================= -->
+        <listitem>
+          <para>Output of the <literal>NAME</literal> and
+          <literal>SYNOPSIS</literal> and <literal>AUTHOR</literal>
+          headings and the headings for admonitions (<tag>note</tag>,
+          <tag>caution</tag>, etc.) are no longer hard-coded for
+          English. Instead, headings are generated for those in the
+          correct locale (just as the FO and HTML stylesheets
+          do).</para>
+        </listitem>
+        <!-- ======================================================= -->
+        <listitem>
+          <para>Re-worked mechanism for assembling page
+          headers/footers (the contents of the <literal>.TH</literal>
+          macro <quote>title line</quote>).</para>
+
+          <para>Here are some details...</para>
+
+          <para>All man pages contain a <literal>.TH</literal> roff
+          macro whose contents are used for rendering the <quote>title
+          line</quote> displayed in the header and footer of each
+          page. Here are a couple of examples of real-world man pages
+          that have useful page headers/footers: <literallayout class="monospaced">
+  gtk-options(7)    GTK+ User's Manual   gtk-options(7) &lt;-- header
+  GTK+ 1.2              2003-10-20       gtk-options(7) &lt;-- footer
+
+  svgalib(7)       Svgalib User Manual       svgalib(7) &lt;-- header
+  Svgalib 1.4.1      16 December 1999        svgalib(7) &lt;-- footer</literallayout></para>
+
+          <para>And here are the terms with which the
+          <literal>groff_man(7)</literal> man page refers to the
+          various parts of the header/footer: <literallayout class="monospaced">
+  title(section)  extra3  title(section)  &lt;- header
+  extra2          extra1  title(section)  &lt;- footer</literallayout></para>
+  <para> Or, using the names with which the <literal>man(7)</literal>
+   man page refers to those same fields: <literallayout class="monospaced">
+  title(section)  manual  title(section)  &lt;- page header
+  source          date    title(section)  &lt;- page footer</literallayout></para>
+  
+            <para>The easiest way to control the contents of those
+            fields is to mark up your <tag>refentry</tag> content like
+            the following (note that this is a <quote>minimal</quote>
+            example). <programlisting>
+  &lt;refentry&gt;
+    &lt;info&gt;
+      &lt;date&gt;2003-10-20&lt;/date&gt; <co xml:id="V1690_date-co" linkends="V1690_date"/>
+    &lt;/info&gt;
+    &lt;refmeta&gt;
+      &lt;refentrytitle&gt;gtk-options&lt;/refentrytitle&gt; <co xml:id="V1690_title-co" linkends="V1690_title"/>
+      &lt;manvolnum&gt;7&lt;/manvolnum&gt; <co xml:id="V1690_manvolnum-co" linkends="V1690_manvolnum"/>
+      &lt;refmiscinfo class="source-name"&gt;GTK+&lt;/refmiscinfo&gt; <co xml:id="V1690_source-name-co" linkends="V1690_source-name"/>
+      &lt;refmiscinfo class="version"&gt;1.2&lt;/refmiscinfo&gt; <co xml:id="V1690_version-co" linkends="V1690_version"/>
+      &lt;refmiscinfo class="manual"&gt;GTK+ User's Manual&lt;/refmiscinfo&gt; <co xml:id="V1690_manual-co" linkends="V1690_manual"/>
+    &lt;/refmeta&gt;
+    &lt;refnamediv&gt;
+      &lt;refname&gt;gtk-options&lt;/refname&gt;
+      &lt;refpurpose&gt;Standard Command Line Options for GTK+ Programs&lt;/refpurpose&gt;
+    &lt;/refnamediv&gt;
+    &lt;refsect1&gt;
+      &lt;title&gt;Description&lt;/title&gt;
+      &lt;para&gt;This manual page describes the command line options, which
+      are common to all GTK+ based applications.&lt;/para&gt;
+    &lt;/refsect1&gt;
+  &lt;/refentry&gt;</programlisting>
+  <calloutlist>
+    <callout arearefs="V1690_date-co" xml:id="V1690_date">
+      <para>Sets the <quote>date</quote> part of the header/footer.</para>
+    </callout>
+    <callout arearefs="V1690_title-co" xml:id="V1690_title">
+      <para>Sets the <quote>title</quote> part.</para>
+    </callout>
+    <callout arearefs="V1690_manvolnum-co" xml:id="V1690_manvolnum">
+      <para>Sets the <quote>section</quote> part.</para>
+    </callout>
+    <callout arearefs="V1690_source-name-co" xml:id="V1690_source-name">
+      <para>Sets the <quote>source name</quote> part.</para>
+    </callout>
+    <callout arearefs="V1690_version-co" xml:id="V1690_version">
+      <para>Sets the <quote>version</quote> part.</para>
+    </callout>
+    <callout arearefs="V1690_manual-co" xml:id="V1690_manual">
+      <para>Sets the <quote>manual</quote> part.</para>
+    </callout>
+  </calloutlist>
+            </para>
+            <para>Below are explanations of the steps the stylesheets
+            take to attempt to assemble and display
+            <quote>good</quote> headers and footer. [In the
+            descriptions, note that <replaceable>*info</replaceable>
+            is the <tag>refentry</tag> <quote>info</quote> child
+            (whatever its name), and
+            <replaceable>parentinfo</replaceable> is the
+            <quote>info</quote> child of its parent (again, whatever
+            its name).]
+          <variablelist>
+            <varlistentry>
+              <term>extra1 field (date)</term>
+              <listitem>
+                <para>Content of the <quote>extra1</quote> field is
+                what shows up in the <emphasis role="bold">center
+                footer</emphasis> position of each page. The
+                <literal>man(7)</literal> man page describes it as
+                <quote>the date of the last revision</quote>.</para>
+                <para>To provide this content, if the
+                <parameter>refentry.date.profile.enabled</parameter>
+                is non-zero, the stylesheets check the value of
+                <parameter>refentry.date.profile</parameter>.</para>
+                <para>Otherwise, by default, they check for a
+                <tag>date</tag> or <tag>pubdate</tag> not only in the
+                <replaceable>*info</replaceable> contents, but also in
+                the <replaceable>parentinfo</replaceable>
+                contents.</para>
+                <para>If a date cannot be found, the stylesheets now
+                automatically generate a localized <quote>long
+                format</quote> date, ensuring that this field always
+                has content in output.</para>
+                <para>However, if for some reason you want to suppress
+                this field, you can do so by setting a non-zero value
+                for <parameter>man.th.extra1.suppress</parameter>.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term>extra2 field (source)</term>
+              <listitem>
+                <para>On Linux systems and on systems with a modern
+                groff, the content of the <quote>extra2</quote> field
+                are what shows up in the <emphasis role="bold">left
+                footer</emphasis> position of each page.</para>
+
+                <para>The <literal>man(7)</literal> man page describes
+                this as <quote>the source of the command</quote>, and
+                provides the following examples:
+                <itemizedlist>
+                  <listitem>
+                    <para>For binaries, use somwething like: GNU,
+                    NET-2, SLS Distribution, MCC Distribution.</para>
+                  </listitem>
+                  <listitem>
+                    <para>For system calls, use the version of the
+                    kernel that you are currently looking at: Linux
+                    0.99.11.</para>
+                  </listitem>
+                  <listitem>
+                    <para>For library calls, use the source of the
+                    function: GNU, BSD 4.3, Linux DLL 4.4.1.</para>
+                  </listitem>
+                </itemizedlist>
+                </para>
+
+                <para>In practice, there are many pages that simply
+                have a version number in the <quote>source</quote>
+                field. So, it looks like what we have is a two-part
+                field,
+                <replaceable>Name</replaceable>&#xA0;<replaceable>Version</replaceable>,
+                where:
+                <variablelist>
+                  <varlistentry>
+                    <term>Name</term>
+                    <listitem>
+                      <para>product name (e.g., BSD) or org. name
+                      (e.g., GNU)</para>
+                    </listitem>
+                  </varlistentry>
+                  <varlistentry>
+                    <term>Version</term>
+                    <listitem>
+                      <para>version name</para>
+                    </listitem>
+                  </varlistentry>
+                </variablelist>
+                Each part is optional. If the
+                <replaceable>Name</replaceable> is a product name,
+                then the <replaceable>Version</replaceable> is
+                probably the version of the product. Or there may be
+                no <replaceable>Name</replaceable>, in which case, if
+                there is a <replaceable>Version</replaceable>, it is
+                probably the version of the item itself, not the
+                product it is part of. Or, if the
+                <replaceable>Name</replaceable> is an organization
+                name, then there probably will be no
+                <replaceable>Version</replaceable>.
+                </para>
+                <para>To provide this content, if the
+                <parameter>refentry.source.name.profile.enabled</parameter>
+                and
+                <parameter>refentry.version.profile.enabled</parameter>
+                parameter are non-zero, the stylesheets check the
+                value of <parameter>refentry.source.name.profile</parameter>
+                <parameter>refentry.version.profile</parameter>.</para>
+
+                <para>Otherwise, by default, they check the following
+                places, in the following order:
+                <orderedlist>
+                  <listitem>
+                    <literallayout class="monospaced"><replaceable>*info</replaceable>/<tag>productnumber</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><replaceable>*info</replaceable>/<tag>productnumber</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><tag>refmeta</tag>/<tag>refmiscinfo</tag>[@class = 'version']</literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><replaceable>parentinfo</replaceable>/<tag>productnumber</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><replaceable>*info</replaceable>/<tag>productname</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><replaceable>parentinfo</replaceable>/<tag>productname</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><tag>refmeta</tag>/<tag>refmiscinfo</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <para>[nothing found, so leave it empty]</para>
+                  </listitem>
+                </orderedlist>
+                </para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term>extra3 field</term>
+              <listitem>
+                <para>On Linux systems and on systems with a modern
+                groff, the content of the <quote>extra3</quote> field
+                are what shows up in the <emphasis role="bold">center
+                header</emphasis> position of each page. Some man
+                pages have <quote>extra2</quote> content, some
+                don't. If a particular man page has it, it is most
+                often <quote>context</quote> data about some larger
+                system the documented item belongs to (for example,
+                the name or description of a group of related
+                applications). The stylesheets now check the following
+                places, in the following order, to look for content to
+                add to the <quote>extra3</quote> field.</para>
+                <orderedlist>
+                  <listitem>
+                    <literallayout class="monospaced"><replaceable>parentinfo</replaceable>/<tag>title</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced">parent's <tag>title</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><tag>refmeta</tag>/<tag>refmiscinfo</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <para>[nothing found, so leave it empty]</para>
+                  </listitem>
+                </orderedlist>
+              </listitem>
+            </varlistentry>
+          </variablelist>
+        </para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Reworked <replaceable>*info</replaceable> gathering. For
+        each <tag>refentry</tag> found, the stylesheets now cache its
+        <replaceable>*info</replaceable> content, then check for any
+        valid parent of it that might have metainfo content and cache
+        that, if found; they then then do all further matches against
+        those node-sets (rather than re-selecting the original
+        <replaceable>*info</replaceable> nodes each time they are
+        needed).</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>New option for breaking strings after forward
+        slashes. This enables long URLs and pathnames to be broken
+        across lines. Controlled through
+        <parameter>man.break.after.slash</parameter> parameter.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Output for servicemark and trademark are now
+        <literal>(SM)</literal> and <literal>(TM)</literal>. There is
+        a groff <literal>"\(tm"</literal> escape, but output from that
+        is not acceptable.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>New option for controlling the length of the title
+        part of the <literal>.TH</literal> title line. Controlled
+        through the <parameter>man.th.title.max.length</parameter>
+        parameter.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>New option for specifying output encoding of each man
+        page; controlled with
+        <parameter>man.output.encoding</parameter> (similar to the
+        HTML <parameter>chunker.output.encoding </parameter>
+        parameter).</para>
+      </listitem> 
+      <!-- ======================================================= -->
+     <listitem>
+        <para>New option for suppressing filename messages when
+        generating output; controlled with
+        <parameter>man.output.quietly</parameter> (similar to the HTML
+        <parameter>chunk.quietly</parameter> parameter).</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>The text of cross-references to first-level
+        <tag>refentry</tag> (<tag>refsect1</tag>, top-level
+        <tag>refsection</tag>, <tag>refnamediv</tag>, and
+        <tag>refsynopsisdiv</tag>) are now capitalized.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Cross-references to <tag>refnamediv</tag> now use the
+        localized <literal>NAME</literal> title instead of using the
+        first <tag>refname</tag> child. This makes the output
+        inconsistent with HTML and FO output, but for man-page output,
+        it seems to make better sense to have the
+        <literal>NAME</literal>. (It may actually make better sense to
+        do it that way in HTML and FO output as well...)</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Added support for processing <tag>funcparams</tag>.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Removed the space that was being output between
+        <tag>funcdef</tag> and <tag>paramdef</tag>; example: was:
+        <literal>float&#xA0;rand&#xA0;(void)</literal>; now:
+        <literal>float&#xA0;rand(void)</literal></para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Turned off bold formatting for the <tag>type</tag>
+        element when it occurs within a <tag>funcdef</tag> or
+        <tag>paramdef</tag></para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Corrected rendering of <tag>simplelist</tag>. Any
+        <literal>&lt;simplelist&#xA0;type="inline"</literal> instance
+        is now rendered as a comma-separated list (also with an
+        optional localized <quote>and</quote> or <quote>or</quote> before the last item -- see
+        description elsewhere in these release notes). Any simplelist
+        instance whose <tag class="attribute">type</tag> is not
+        <literal>inline</literal> is rendered as a one-column vertical
+        list (ignoring the values of the <tag class="attribute">type</tag> and <tag class="attribute">columns</tag> attributes if present)</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Comment added at top of roff source for each page now
+        includes DocBook XSL stylesheets version number (as in the
+        HTML stylesheets)</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Made change to prevent <quote>sticky</quote> fonts
+        changes. Now, when the manpages stylesheets encounter node
+        sets that need to be boldfaced or italicized, they put the
+        <literal>\fBfoo\fR</literal> and <literal>\fIbar\fR</literal>
+        groff bold/italic instructions separately around each node in
+        the set.</para>
+      </listitem>
+      <listitem>
+        <para>synop.xsl: Boldface everything in
+        <tag>funcsynopsis</tag> output except parameters (which are in
+        ital). The <literal>man(7)</literal> man page says:
+        <blockquote>
+          <para>For functions, the arguments are always specified
+          using italics, even in the SYNOPSIS section, where the rest
+          of the function is specified in bold.</para>
+          </blockquote>
+          A look through the contents of the
+          <filename>man/man2</filename> directory shows that most
+          (all) existing pages do follow this <quote>everything in
+          funcsynopsis bold</quote> rule. That means the
+          <tag>type</tag> content and any punctuation (parens,
+          semicolons, <tag>vararg</tag>s) also must be bolded.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Removed code for adding backslashes before periods/dots
+        in roff source, because backslashes in front of periods/dots
+        in roff source are needed only in the very rare case where a
+        period is the very first character in a line, without any
+        space in front of it. A better way to deal with that rare case
+        is for you to add a zero-width space in front of the offending
+        dot(s) in your source</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Removed special handling of the <tag>quote</tag>
+        element. That was hard-coded to cause anything marked up with
+        the <tag>quote</tag> element to be output preceded by two
+        backticks and followed by two apostrophes -- that is, that
+        old-school kludge for generating <quote>curly</quote> quotes in Emacs and
+        in X-Windows fonts. While Emacs still seems to support that, I
+        don't think X-Windows has for a long time now. And, anyway, it
+        looks (and has always looked) like crap when viewed on a
+        normal tty/console. In addition, it breaks localiztion of
+        <tag>quote</tag>. By default, <tag>quote</tag> content is
+        output with localized quotation marks, which, depending on the
+        locale, may or may not be left and right double quotation
+        marks.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Changed mappings for left and right single quotation
+        marks. Those had previously been incorrectly mapped to the
+        backtick (&amp;#96;) and apostrophe (&amp;39;) characters (for
+        kludgy reasons -- see above). They are now correctly mapped to
+        the <literal>\(oq</literal> and <literal>\(cq</literal> roff
+        escapes. If you want the old (broken) behavior, you need to
+        manually change the mappings for those in the value of the
+        <parameter>man.string.subst.map</parameter> parameter.</para>
+      </listitem>
+      <listitem>
+        <para>Removed <filename>xref.xsl</filename> file. Now, of the
+        various cross-reference elements, only the <tag>ulink</tag>
+        element is handled differently; the rest are handled exactly
+        as the HTML stylesheets handle them, except that no hypertext
+        links are generated. (Because there is no equivalent hypertext
+        mechanism is man pages.)</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>New option for making <quote>subheading dividers</quote> in generated
+        roff source. The dividers are not visible in the rendered man
+        page; they are just there to make the source
+        readable. Controlled using
+        <parameter>man.subheading.divider</parameter>.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Fixed many places where too much space was being added
+        between lines.</para>
+      </listitem>
+    </itemizedlist>
+    <!-- end of MAN changes for 1.69.0 release -->
+  </sect2>
+</sect1>
+  <!-- end of notes for 1.69.0 release -->
+
+  <sect1 xml:id="V1681">
+    <title>Release 1.68.1</title>
+    <para>The release adds localization support for Farsi (thanks to
+    Sina Heshmati) and improved support for the XLink-based DocBook NG
+    <tag>db:link</tag> element. Other than that, it is a minor
+    bug-fix update to the 1.68.0 release. The main thing it fixes is a
+    build error that caused the XSLT Java extensions to be jarred up
+    with the wrong package structure. Thanks to Jens Stavnstrup for
+    quickly reporting the problem, and to Mauritz Jeanson for
+    investigating and finding the cause.</para>
+  </sect1>
+  <!-- end of notes for 1.68.1 release -->
+
+  <sect1 xml:id="V1680">
+    <title>Release 1.68.0</title>
+    <para>This release includes some features changes, particularly
+    for FO/PDF output, and a number of bug fixes.
+      <itemizedlist xml:id="V1680_FO">
+        <title>FO</title>
+        <listitem>
+          <para>Moved footnote properties to attribute-sets.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for side floats, margin notes, and
+   	  custom floats.</para>
+        </listitem>
+        <listitem>
+          <para>Added new parameters
+          <parameter>body.start.indent</parameter> and
+          <parameter>body.end.indent</parameter> to the
+          <parameter>set.flow.properties template</parameter>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag class="attribute">xml:id</tag></para>
+        </listitem>
+        <listitem>
+          <para>Added support for
+          <tag>refdescriptor</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for multiple <tag>refnamediv</tag>s.</para>
+        </listitem>
+        <listitem>
+          <para>Added <parameter>index.entry.properties</parameter>
+          attribute-set to support customization of index
+          entries.</para>
+        </listitem>
+        <listitem>
+          <para>Added <parameter>set.flow.properties
+          template</parameter> call to each <tag>fo:flow</tag>
+          to support customizations entry point.</para>
+        </listitem>
+        <listitem>
+          <para>Add support for <literal>@floatstyle</literal> in
+          <tag>figure</tag></para>
+        </listitem>
+        <listitem>
+          <para>Moved hardcoded properties for index division titles
+          to the <parameter>index.div.title.properties</parameter>
+          attribute-set.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for
+          <tag>table-layout</tag>="<tag class="attvalue">auto</tag>" for XEP.</para>
+        </listitem>
+        <listitem>
+          <para>Added <parameter>index.div.title.properties</parameter>
+   	  attribute-set.</para>
+        </listitem>
+        <listitem>
+          <para><parameter>$verbose</parameter> parameter is now
+          passed to most elements.</para>
+        </listitem>
+        <listitem>
+          <para>Added <tag>refentry</tag> to
+          <tag>toc</tag> in <tag>part</tag>, as it is
+          permitted by the DocBook schema/DTD.</para>
+        </listitem>
+        <listitem>
+          <para>Added backmatter elements and
+          <tag>article</tag> to <tag>toc</tag> in
+          <tag>part</tag>, since they are permitted by the
+          DocBook schema/DTD.</para>
+        </listitem>
+        <listitem>
+          <para>Added <tag class="attribute">mode</tag>="<tag class="attvalue">toc</tag>" for
+          <tag>simplesect</tag>, since it is now permitted in
+          the <tag>toc</tag> if
+          <parameter>simplesect.in.toc</parameter> is set.</para>
+        </listitem>
+        <listitem>
+          <para>Moved hard-coded properties to
+          <parameter>nongraphical.admonintion.properties</parameter>
+          and <parameter>graphical.admonition.properties</parameter>
+          attribute sets.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <literal>sidebar-width</literal> and
+          <literal>float-type</literal> processing instructions in
+          <tag>sidebar</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>For tables with HTML markup elements, added support
+          for <literal>dbfo bgcolor</literal> PI, the attribute-sets
+          named <parameter>table.properties</parameter>,
+          <parameter>informaltable.properties</parameter>,
+          <parameter>table.table.properties</parameter>, and
+          <parameter>table.cell.padding</parameter>. Also added
+          support for the templates named
+          <parameter>table.cell.properties</parameter> and
+          <parameter>table.cell.block.properties</parameter> so that
+          tabstyles can be implemented. Also added support for tables
+          containing only <tag>tr</tag> instead of
+          <tag>tbody</tag> with <tag>tr</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added new paramater
+          <parameter>hyphenate.verbatim.characters</parameter> which
+          can specify characters after which a line break can occur in
+          verbatim environments.  This parameter can be used to extend
+          the initial set of characters which contain only space and
+          non-breakable space.</para>
+        </listitem>
+        <listitem>
+          <para>Added <parameter>itemizedlist.label.markup</parameter> to enable
+ 	  selection of different bullet symbol. Also added several
+   	  potential bullet characters, commented out by default.</para>
+        </listitem>
+        <listitem>
+          <para>Enabled all id's in XEP output for external olinking.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist xml:id="V1680_HTML">
+        <title>HTML</title>
+        <listitem>
+          <para>Added support for
+          <tag>refdescriptor</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for multiple <tag>refnamediv</tag>s.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag class="attribute">xml:id</tag></para>
+        </listitem>
+        <listitem>
+          <para><tag>refsynopsisdiv</tag> as a section for
+          counting section levels</para>
+        </listitem>
+      </itemizedlist>
+      <itemizedlist xml:id="V1680_images">
+        <title>Images</title>
+        <listitem>
+          <para>Added new SVG admonition graphics and navigation images.</para>
+        </listitem>
+      </itemizedlist>
+    </para>
+  </sect1>
+  <!-- end of notes for 1.68.0 release -->
+
+  <sect1 xml:id="V1672">
+    <title>Release 1.67.2</title>
+    <para>This release fixes a table bug introduced in the 1.67.1
+    release.</para>
+  </sect1>
+  <sect1 xml:id="V1671">
+    <title>Release 1.67.1</title>
+    <para>This release includes a number of bug fixes.</para>
+     <para>The following lists provide details about API and feature changes.
+      <itemizedlist xml:id="V1671_FO">
+        <title>FO</title>
+        <listitem>
+          <para>Tables: Inherited cell properties are now passed to the
+          <literal>table.cell.properties</literal> template so they can
+          be overridden by a customization.</para>
+        </listitem>
+        <listitem>
+          <para>Tables: Added support for bgcolor PI on table row
+          element.</para>
+        </listitem>
+        <listitem>
+          <para>TOCs: Added new parameter
+          <parameter>simplesect.in.toc</parameter>; default value of
+          <literal>0</literal> causes simplesect to be omitted from TOCs; to
+          cause <tag>simplesect</tag> to be included in TOCs, you
+          must set the value of <parameter>simplesect.in.toc</parameter> to
+          <literal>1</literal>.Comment from Norm:
+
+            <blockquote>
+              <para><emphasis>Simplesect elements aren't supposed to
+              appear in the ToC at all... The use case for simplesect
+              is when, for example, every chapter in a book ends with
+              "Exercises" or "For More Information" sections and you
+              don't want those to appear in the ToC.</emphasis></para>
+            </blockquote>
+            </para>
+        </listitem>
+        <listitem>
+          <para>Sections: Reverted change that caused a variable reference
+          to be used in a template match and rewrote code to preserve
+          intended semantics.</para>
+        </listitem>
+        <listitem>
+          <para>Lists: Added workaround to prevent "* 0.60 + 1em" garbage in
+          list output from PassiveTeX</para>
+        </listitem>
+        <listitem>
+          <para>Moved the literal attributes from
+          <parameter>component.title</parameter> to the
+          <parameter>component.title.properties</parameter> attribute-set so
+          they can be customized.</para>
+        </listitem>
+        <listitem>
+          <para>Lists: Added <tag>glossdef</tag>'s first
+          <tag>para</tag> to special handling in
+          <literal>fo:list-item-body</literal>.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist xml:id="V1671_HTML">
+        <title>HTML</title>
+        <listitem>
+          <para>TOCs: Added new parameter
+          <parameter>simplesect.in.toc</parameter>; for details, see
+          the list of <xref linkend="V1671_FO"/> changes for this
+          release.</para>
+        </listitem>
+        <listitem>
+          <para>Indexing: Added new parameter
+          <parameter>index.prefer.titleabbrev</parameter>; when set to
+          <literal>1</literal>, index references will use
+          <tag>titleabbrev</tag> instead of
+          <tag>title</tag> when available.</para>
+        </listitem>
+      </itemizedlist>
+      <itemizedlist xml:id="V1671_HELP">
+        <title>HTML Help</title>
+        <listitem>
+          <para>Added support for generating windows-1252-encoded
+          output using Saxon; for more details, see the list of <xref linkend="V1671_EXT"/> changes for this release.</para>
+        </listitem>
+      </itemizedlist>
+      <itemizedlist xml:id="V1671_MAN">
+        <title>man pages</title>
+        <listitem>
+          <para>Replaced named/numeric character-entity references for
+          non-breaking space with groff equivalent (backslash-tilde).</para>
+        </listitem>
+      </itemizedlist>
+      <itemizedlist xml:id="V1671_EXT">
+        <title>XSL Java extensions</title>
+        <listitem>
+          <para>Saxon extensions: Added the
+          <classname>Windows1252</classname> class.  It extends Saxon
+          6.5.x with the windows-1252 character set, which is
+          particularly useful when generating HTML Help for Western
+          European Languages (code from
+          <personname><firstname>Pontus</firstname>
+          <surname>Haglund</surname></personname> and contributed to the
+          DocBook community by Sectra AB, Sweden).</para>
+          <para>To use:
+          <orderedlist>
+            <listitem>
+              <para>Make sure that the Saxon 6.5.x jar file and the jar file for
+              the DocBook XSL Java extensions are in your <envar>CLASSPATH</envar></para>
+            </listitem>
+            <listitem>
+              <para>Create a DocBook XSL customization layer -- a file named
+              <filename>mystylesheet.xsl</filename> or whatever -- that, at a
+              minimum, contains the following:
+              <screen>  &lt;xsl:stylesheet
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    version='1.0'&gt;
+    &lt;xsl:import href="http://docbook.sourceforge.net/release/xsl/current/htmlhelp/htmlhelp.xsl"/&gt;
+    &lt;xsl:output method="html" encoding="WINDOWS-1252" indent="no"/&gt;
+    &lt;xsl:param name="htmlhelp.encoding" select="'WINDOWS-1252'"&gt;&lt;/xsl:param&gt;
+    &lt;xsl:param name="chunker.output.encoding" select="'WINDOWS-1252'"&gt;&lt;/xsl:param&gt;
+    &lt;xsl:param name="saxon.character.representation" select="'native'"&gt;&lt;/xsl:param&gt;
+  &lt;/xsl:stylesheet&gt;</screen>
+              </para>
+              <para>Invoke Saxon with the
+              <literal>encoding.windows-1252</literal> Java system property set
+              to <literal>com.nwalsh.saxon.Windows1252</literal>; for example
+              <screen>  java \
+    -Dencoding.windows-1252=com.nwalsh.saxon.Windows1252 \
+  com.icl.saxon.StyleSheet \
+  mydoc.xml mystylesheet.xsl</screen>
+
+              Or, for a more complete "real world" case showing other
+              options you'll typically want to use:
+              <screen>  java \
+    -Dencoding.windows-1252=com.nwalsh.saxon.Windows1252 \
+    -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl \
+    -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl \
+    -Djavax.xml.transform.TransformerFactory=com.icl.saxon.TransformerFactoryImpl \
+  com.icl.saxon.StyleSheet \
+    -x org.apache.xml.resolver.tools.ResolvingXMLReader \
+    -y org.apache.xml.resolver.tools.ResolvingXMLReader \
+    -r org.apache.xml.resolver.tools.CatalogResolver \
+  mydoc.xml mystylesheet.xsl</screen>
+
+              In both cases, the "mystylesheet.xsl" file should be a
+              DocBook customization layer containing the parameters
+              show in step 2.</para>
+            </listitem>
+          </orderedlist>
+          </para>
+        </listitem>
+        <listitem>
+          <para>Saxon extensions: Removed Saxon 8 extensions from release package</para>
+        </listitem>
+      </itemizedlist>
+    </para>
+  </sect1>
+<sect1 xml:id="V1670">
+  <title>Release 1.67.0</title>
+  <itemizedlist>
+  <listitem>
+    <para>A number of important bug fixes.</para>
+  </listitem>
+  <listitem>
+    <para>Added Saxon8 extensions</para>
+  </listitem>
+  <listitem>
+    <para>Enabled <literal>dbfo table-width</literal> on
+    <tag>entrytbl</tag> in FO output</para>
+  </listitem>
+  <listitem>
+    <para>Added support for <literal>role=strong</literal> on
+    <tag>emphasis</tag> in FO output</para>
+  </listitem>
+  <listitem>
+    <para>Added new FO parameter
+    <parameter>hyphenate.verbatim</parameter> that can be used to turn
+    on "intelligent" wrapping of verbatim environments.</para>
+  </listitem>
+  <listitem>
+    <para>Replaced all <literal>&lt;tt&gt;&lt;/tt&gt;</literal> output with
+    <literal>&lt;code&gt;&lt;/code&gt;</literal></para>
+  </listitem>
+  <listitem>
+    <para>Changed <literal>admon.graphic.width</literal> template to a
+    mode so that different admonitions can have different graphical
+    widths.</para>
+  </listitem>
+  <listitem>
+    <para>Deprecated the HTML <parameter>shade.verbatim</parameter>
+    parameter (use CSS instead)</para>
+  </listitem>
+  <listitem>
+    <para>Wrapped ToC
+    <tag>refentrytitle</tag>/<tag>refname</tag> and
+    <tag>refpurpose</tag> in span with class values. This
+    makes it possible to style them using a CSS stylesheet.</para>
+  </listitem>
+  <listitem>
+    <para>Use <literal>strong/em</literal> instead of
+    <literal>b/i</literal> in HTML output</para>
+  </listitem>
+  <listitem>
+    <para>Added support for converting <tag>Emphasis</tag> to
+    groff italic and <tag>Emphasis role='bold'</tag> to
+    bold. Controlled by
+    <parameter>emphasis.propagates.style</parameter> param, but not
+    documented yet using litprog system. Will do that next (planning
+    to add some other parameter-controllable options for hyphenation
+    and handling of line spacing).</para>
+  </listitem>
+  <listitem>
+    <para><parameter>callout.graphics.number.limit.xml</parameter>
+    param: Changed the default from <literal>10</literal> to
+    <literal>15</literal>.</para>
+  </listitem>
+  <listitem>
+    <para><parameter>verbatim.properties</parameter>: Added
+    <literal>hyphenate=false</literal></para>
+  </listitem>
+  <listitem>
+    <para>Saxon and Xalan Text.java extensions: Added support for
+    <methodname>URIResolver()</methodname> on insertfile href's</para>
+  </listitem>
+  <listitem>
+    <para>Added generated <filename>RELEASE-NOTES.txt</filename>
+    file.</para>
+  </listitem>
+  <listitem>
+    <para>Added <filename>INSTALL</filename> file (executable file for
+    generating catalog.xml)</para>
+  </listitem>
+  <listitem>
+    <para>Removed obsolete <filename>tools</filename> directory from
+    package</para>
+  </listitem>
+</itemizedlist>
+</sect1>
+<sect1 xml:id="V1661">
+<title>Release 1.66.1</title>
+  <itemizedlist>
+<listitem>
+<para>A number of important bug fixes.
+</para>
+</listitem>
+<listitem>
+<para>
+Now <literal>xml:base</literal> attributes that are generated by an
+XInclude processor are resolved for image files.
+</para>
+</listitem>
+<listitem>
+<para>
+Rewrote olink templates to support several new features.
+</para>
+<itemizedlist>
+<listitem>
+<para>
+Extended full olink support to FO output.
+</para>
+</listitem>
+<listitem>
+<para>
+Add support for <literal>xrefstyle</literal> attribute in olinks.
+</para>
+</listitem>
+<listitem>
+<para>
+New parameters to support new olink features:
+<parameter>insert.olink.page.number</parameter>, <parameter>insert.olink.pdf.frag</parameter>,
+<parameter>olink.debug</parameter>, <parameter>olink.lang.fallback.sequence</parameter>, <parameter>olink.properties</parameter>,
+<parameter>prefer.internal.olink</parameter>.
+See the reference page for each parameter for more
+information.</para>
+</listitem>
+</itemizedlist>
+</listitem> 
+<listitem>
+<para>
+Added  <parameter>index.on.type</parameter> parameter for new <tag class="attribute">type</tag>
+attribute introduced in DocBook 4.3 for indexterms and index.
+This allows you to create multiple indices containing
+different categories of entries.
+For users of 4.2 and earlier, you can use the new parameter <parameter>index.on.role</parameter>
+instead.
+</para>
+</listitem>
+<listitem>
+<para>
+Added new
+<parameter>section.autolabel.max.depth</parameter> parameter to turn off section numbering
+below a certain depth.
+This permits you to number major section levels and leave minor
+section levels unnumbered.</para>
+</listitem> 
+<listitem>
+<para>
+Added <parameter>footnote.sep.leader.properties</parameter> attribute set to format
+the line separating footnotes in printed output.
+</para>
+</listitem>
+<listitem>
+<para>
+Added parameter <parameter>img.src.path</parameter> as a prefix to HTML img src
+attributes.
+The prefix is added to whatever path is already generated by the
+stylesheet for each image file.</para>
+</listitem> 
+<listitem>
+<para>
+Added new attribute-sets
+<parameter>informalequation.properties</parameter>,
+<parameter>informalexample.properties</parameter>,
+<parameter>informalfigure.properties</parameter>, and <parameter>informaltable.properties</parameter>,
+so each such element type can be formatted
+individually if needed.
+</para>
+</listitem>
+<listitem>
+<para>
+Add <parameter>component.label.includes.part.label</parameter>
+parameter to add any  part number to chapter, appendix
+and other component labels when
+the <parameter>label.from.part</parameter> parameter  is nonzero.
+This permits you to distinguish multiple chapters with the same
+chapter number in cross references and the TOC.</para>
+</listitem>
+<listitem>
+<para>
+Added <parameter>chunk.separate.lots</parameter> parameter for HTML output.
+This parameter lets you generate separate chunk files for each LOT
+(list of tables, list of figures, etc.).</para>
+</listitem>
+<listitem>
+<para>Added several table features:</para>
+<itemizedlist>
+<listitem>
+<para>
+Added <parameter>table.table.properties</parameter> attribute set to add
+properties to the fo:table element.
+</para>
+</listitem>
+<listitem>
+<para>
+Added placeholder templates named <literal>table.cell.properties</literal>
+and <literal>table.cell.block.properties</literal> to enable adding properties
+to any <tag>fo:table-cell</tag> or the cell's <tag>fo:block</tag>, respectively.
+ These templates are a start for implementing table styles.</para>
+</listitem>
+</itemizedlist>
+</listitem>
+<listitem>
+<para>
+Added new attribute
+set <parameter>component.title.properties</parameter> for easy modifications of
+component's title formatting in FO output.
+</para>
+</listitem>
+<listitem>
+<para>
+Added Saxon support for an <tag class="attribute">encoding</tag> attribute on the <tag class="element">textdata</tag> element. Added new parameter
+<parameter>textdata.default.encoding</parameter> which specifies encoding when
+<tag class="attribute">encoding</tag> attribute on
+<tag class="element">textdata</tag> is missing.
+</para>
+</listitem>
+<listitem>
+<para>
+Template <literal>label.this.section</literal> now controls whole
+section label, not only sub-label which corresponds to
+particular label. Former behaviour was IMHO bug as it was
+not usable.
+</para>
+</listitem>
+<listitem>
+<para>
+Formatting in titleabbrev for TOC and headers
+is preserved when there are no hotlink elements in the title. Formerly the title showed only the text of the title, no font changes or other markup.
+</para>
+</listitem>
+<listitem>
+<para>
+Added <literal>intial.page.number</literal> template to set the <literal>initial-page-number
+property</literal> for page sequences in print output.
+Customizing this template lets you change when page numbering restarts. This is similar to the <literal>format.page.number</literal> template that lets you change how the page number formatting changes in the output.
+</para>
+</listitem>
+<listitem>
+<para>
+Added <literal>force.page.count</literal> template to set the force-page-count
+property for page sequences in print output.
+This is similar to the <literal>format.page.number</literal> template.
+</para>
+</listitem>
+<listitem>
+<para>
+Sort language for localized index sorting in <filename>autoidx-ng.xsl</filename> is now taken from document 
+lang, not from system environment.
+</para>
+</listitem>
+<listitem>
+<para>
+Numbering and formatting of normal
+and ulink footnotes (if turned on) has been unified.
+Now ulink footnotes are mixed in with any other footnotes.</para>
+</listitem> 
+<listitem>
+<para>
+Added support for <tag>renderas</tag> attribute in section and
+sect1 et al.
+This permits you to render a given section title as if it were a different level.</para>
+</listitem>
+<listitem>
+<para>
+Added support for <tag>label</tag> attribute in footnote to manually
+supply the footnote mark.
+</para>
+</listitem>
+<listitem>
+<para>
+Added support for DocBook 4.3 <tag>corpcredit</tag> element.
+</para>
+</listitem>
+<listitem>
+<para>
+Added support for a <literal>dbfo keep-together</literal> PI for
+formal objects (table, figure, example, equation, programlisting).  That permits a formal object to be kept together if it is not already, or to be broken if it
+is very long and the
+default keep-together is not appropriate.
+</para>
+</listitem>
+<listitem>
+<para>
+For graphics files, made file extension matching case
+insensitive, and updated the list of graphics extensions.
+</para>
+</listitem>
+<listitem>
+<para>
+Allow <tag>calloutlist</tag> to have block content before
+the first callout
+</para>
+</listitem>
+<listitem>
+<para>
+Added <literal>dbfo-need</literal> processing instruction to provide
+soft page breaks.
+</para>
+</listitem> 
+<listitem>
+<para>
+Added implementation of existing but unused
+<parameter>default.image.width</parameter> parameter for graphics.
+</para>
+</listitem>
+<listitem>
+<para>
+Support DocBook NG <tag>tag</tag> inline element.
+</para>
+</listitem> 
+<listitem>
+<para>
+It appears that XEP now supports Unicode characters in
+bookmarks. There is no further need to strip accents from
+characters.
+</para>
+</listitem>
+<listitem>
+<para>
+Make <tag>segmentedlist</tag> HTML markup
+more semantic and available to CSS styles.
+</para>
+</listitem>
+<listitem>
+<para>
+Added <literal>user.preroot</literal> placeholder template to
+permit xsl-stylesheet and other PIs and comments to be
+output before the HTML root element.
+</para>
+</listitem>
+<listitem>
+<para>
+Non-chunked legalnotice now gets an &lt;a
+name="id"&gt; element in HTML output
+so it can be referenced with xref or link.
+</para>
+</listitem>
+<listitem>
+<para>
+In chunked HTML output, changed <literal>link rel="home"</literal> to <literal>rel="start"</literal>,
+and <literal>link rel="previous"</literal> to <literal>rel="prev"</literal>, per W3C HTML 4.01
+spec.
+</para>
+</listitem>
+<listitem>
+<para>
+Added several patches to htmlhelp from W. Borgert
+</para>
+</listitem> 
+<listitem>
+<para>
+Added Bosnian locale file as common/bs.xml.
+</para>
+</listitem> 
+</itemizedlist>
+</sect1>
+<sect1 xml:id="V1650">
+<title>Release 1.65.0</title> 
+<itemizedlist>
+<listitem>
+<para>A number of important bug fixes.
+</para>
+</listitem> 
+<listitem>
+<para>Added a workaround to allow these stylesheets to process DocBook NG
+documents. (It&#x2019;s a hack that pre-processes the document to strip off the
+namespace and then uses <function>exsl:node-set</function> to process
+the result.)
+</para>
+</listitem> 
+<listitem>
+<para>Added alternative indexing mechanism which has better
+internationalization support. New indexing method allows grouping of
+accented letters like e, &#xE9;, &#xEB; into the same group under letter "e". It
+can also treat special letters (e.g. "ch") as one character and place
+them in the correct position (e.g. between "h" and "i" in Czech
+language).</para> 
+<para>In order to use this mechanism you must create customization
+layer which imports some base stylesheet (like
+<filename>fo/docbook.xsl</filename>,
+<filename>html/chunk.xsl</filename>) and then includes appropriate
+stylesheet with new indexing code
+(<filename>fo/autoidx-ng.xsl</filename> or
+<filename>html/autoidx-ng.xsl</filename>). For example:</para> 
+<programlisting>&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0"&gt;
+
+&lt;xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/&gt;
+&lt;xsl:include href="http://docbook.sourceforge.net/release/xsl/current/fo/autoidx-ng.xsl"/&gt;
+
+&lt;/xsl:stylesheet&gt;</programlisting>
+<para>New method is known to work with Saxon and it should also work
+with xsltproc 1.1.1 and later. Currently supported languages are
+English, Czech, German, French, Spanish and Danish.</para> 
+</listitem> 
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1641">
+<title>Release 1.64.1</title> 
+<itemizedlist>
+<para>General bug fixes and improvements. Sorry about the failure to produce
+an updated release notes file for 1.62.0&#x2014;1.63.2</para> 
+<listitem>
+<para>In the course of fixing bug #849787, wrapping Unicode callouts
+with an appropriate font change in the Xalan extensions, I discovered
+that the Xalan APIs have changed a bit. So <filename>xalan2.jar</filename>
+will work with older Xalan 2 implementations, <filename>xalan25.jar</filename>
+works with Xalan 2.5.</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1610">
+<title>Release 1.61.0</title> 
+<itemizedlist>
+<para>Lots of bug fixes and improvements.</para> 
+<listitem>
+<para>Initial support for timestamp PI. From now you
+  can use &lt;?dbtimestamp format="Y-m-d H:M:S"?&gt; to get current
+  datetime in your document. Added localization support for datetime PI
+</para>
+</listitem> 
+<listitem>
+<para>Added level 6 to test for <tag>section</tag> depth in
+section.level template so that
+section.title.level6.properties will be used for sections
+that are 6 deep or deeper. This should also cause a h6 to be
+created in html output.
+</para>
+</listitem> 
+<listitem>
+<para>Don't use SVG graphics if <parameter>use.svg</parameter>=0
+</para>
+</listitem> 
+<listitem>
+<para>Now uses number-and-title-template for sections
+  only if <parameter>section.autolabel</parameter> is not zero.
+</para>
+</listitem> 
+<listitem>
+<para>Added missing 'english-language-name' attribute to
+the l10n element, and the missing 'style' attribute to the
+template element so the current gentext documents will
+validate.
+</para>
+</listitem> 
+<listitem>
+<para>Corrected several references to parameter
+  <parameter>qanda.defaultlabel</parameter> that were missing the "$".
+</para>
+</listitem> 
+<listitem>
+<para>Now accepts <parameter>admon.textlabel</parameter> parameter to turn off
+  Note, Warning, etc. label.
+</para>
+</listitem> 
+<listitem>
+<para>FeatReq #684561: support more XEP metadata
+</para>
+</listitem> 
+<listitem>
+<para>Added hyphenation support. Added support for <tag>coref</tag>.
+Added <tag>beginpage</tag> support. (does nothing; see TDG).
+</para>
+</listitem> 
+<listitem>
+<para>Added support for
+hyphenation-character, hyphenation-push-character-count, and
+hyphenation-remain-character-count
+</para>
+</listitem> 
+<listitem>
+<para>Added <parameter>root.properties</parameter>,
+<parameter>ebnf.assignment</parameter>,
+and <parameter>ebnf.statement.terminator</parameter>
+</para>
+</listitem> 
+<listitem>
+<para>Support bgcolor PI in table cells; make sure
+rowsep and colsep don't have any effect on the last row or
+column
+</para>
+</listitem> 
+<listitem>
+<para>Handle <tag>othercredit</tag> on titlepage a little
+better
+</para>
+</listitem> 
+<listitem>
+<para>Applied fix from Jeff Beal that fixed the bug
+that put secondary page numbers on primary entries. Same
+with tertiary page numbers on secondary entries.
+</para>
+</listitem> 
+<listitem>
+<para>Added definition of missing variable
+<parameter>collection</parameter>.
+</para>
+</listitem> 
+<listitem>
+<para>Make <tag>footnote</tag> formatting 'normal' even when it
+occurs in a context that has special formatting
+</para>
+</listitem> 
+<listitem>
+<para>Added warning when <parameter>glossary.collection</parameter> is not
+blank, but it cannot open the specified file.
+</para>
+</listitem> 
+<listitem>
+<para>Pick up the frame attribute on <tag>table</tag> and
+<tag>informaltable</tag>.
+</para>
+</listitem> 
+<listitem>
+<para><tag>indexdiv</tag>/<tag>title</tag>
+in non-autogenerated indexes are
+now picked up.
+</para>
+</listitem> 
+<listitem>
+<para>Removed (unused)
+component.title.properties
+</para>
+</listitem> 
+<listitem>
+<para>Move IDs from
+page-sequences down to titlepage blocks
+</para>
+</listitem> 
+<listitem>
+<para>Use
+proportional-column-width(1) on more <tag>table</tag>s.
+</para>
+<para>Use proportional-column-width() for
+header/footer tables; suppress relative-align when when
+using FOP
+</para>
+</listitem> 
+<listitem>
+<para>Check for <parameter>glossterm.auto.link</parameter> when linking
+firstterms; don't output gl. prefix on glossterm links
+</para>
+</listitem> 
+<listitem>
+<para>Generate Part ToCs
+</para>
+</listitem> 
+<listitem>
+<para>Support <tag>glossary</tag>, <tag>bibliography</tag>,
+and <tag>index</tag> in component ToCs.
+</para>
+</listitem> 
+<listitem>
+<para>Refactored chunking code so that
+customization of chunk algorithm and chunk elements is more
+practical
+</para>
+</listitem> 
+<listitem>
+<para>Support <tag>textobject</tag>/<tag>phrase</tag>
+on <tag>inlinemediaobject</tag>.
+</para>
+</listitem> 
+<listitem>
+<para>Support 'start' PI on ordered lists
+</para>
+</listitem> 
+<listitem>
+<para>Fixed test of $toc PI to turn on qandaset TOC.
+</para>
+</listitem> 
+<listitem>
+<para>Added process.chunk.footnotes to sect2 through
+5 to fix bug of missing footnotes when chunk level greater
+than 1.
+</para>
+</listitem> 
+<listitem>
+<para>Added
+paramater <parameter>toc.max.depth</parameter> which controls maximal depth of ToC
+as requested by PHP-DOC group.
+</para>
+</listitem> 
+<listitem>
+<para>Exempted <tag>titleabbrev</tag> from preamble processing in
+lists, and fixed variablelist preamble code to use the same
+syntax as the other lists.
+</para>
+</listitem> 
+<listitem>
+<para>Added support for elements between variablelist
+and first varlistentry since DocBook 4.2 supports that now.
+</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1601">
+<title>Release 1.60.1</title> 
+<itemizedlist>
+<para>Lots of bug fixes.</para> 
+<listitem>
+<para>The format of the <filename>titlepage.templates.xml</filename> files and
+the stylesheet that transforms them have been significantly changed. All of the
+attributes used to control the templates are now namespace qualified. So what
+used to be:</para> 
+<programlisting>&lt;t:titlepage element="article" wrapper="fo:block"&gt;</programlisting>
+<para>is now:</para> 
+<programlisting>&lt;t:titlepage t:element="article" t:wrapper="fo:block"&gt;</programlisting>
+<para>Attributes from other namespaces (including those that are unqualified) are
+now copied directly through. In practice, this means that the names that used
+to be <quote>fo:</quote> qualified:</para> 
+<programlisting>&lt;title named-template="component.title"
+       param:node="ancestor-or-self::article[1]"
+       fo:text-align="center"
+       fo:keep-with-next="always"
+       fo:font-size="&amp;hsize5;"
+       fo:font-weight="bold"
+       fo:font-family="{$title.font.family}"/&gt;</programlisting>
+<para>are now unqualified:</para> 
+<programlisting>&lt;title t:named-template="component.title"
+       param:node="ancestor-or-self::article[1]"
+       text-align="center"
+       keep-with-next="always"
+       font-size="&amp;hsize5;"
+       font-weight="bold"
+       font-family="{$title.font.family}"/&gt;</programlisting>
+<para>The <tag>t:titlepage</tag> and <tag>t:titlepage-content</tag>
+elements both generate wrappers now. And unqualified attributes on those elements
+are passed through. This means that you can now make the title font apply to
+ane entire titlepage and make the entire <quote>recto</quote>
+titlepage centered by specifying the font and alignment on the those elements:</para> 
+<programlisting>&lt;t:titlepage t:element="article" t:wrapper="fo:block"
+             font-family="{$title.font.family}"&gt;
+
+  &lt;t:titlepage-content t:side="recto"
+             text-align="center"&gt;</programlisting>
+
+
+
+
+
+</listitem> 
+<listitem>
+<para>Support use of <tag>titleabbrev</tag> in running
+headers and footers.
+</para>
+</listitem> 
+<listitem>
+<para>Added (experimental) <parameter>xref.with.number.and.title</parameter>
+parameter to enable number/title cross references even when the
+default would
+be just the number.
+</para>
+</listitem> 
+<listitem>
+<para>Generate <tag>part</tag> ToCs if they're requested.
+</para>
+</listitem> 
+<listitem>
+<para>Use proportional-column-width() in header/footer tables.
+</para>
+</listitem> 
+<listitem>
+<para>Handle alignment correctly when <tag>screenshot</tag>
+wraps a graphic in a <tag>figure</tag>.
+</para>
+</listitem> 
+<listitem>
+<para>Format <tag>chapter</tag> and <tag>appendix</tag>
+cross references consistently.
+</para>
+</listitem> 
+<listitem>
+<para>Attempt to support tables with multiple <tag>tgroup</tag>s
+in FO.
+</para>
+</listitem> 
+<listitem>
+<para>Output <tag>fo:table-columns</tag> in
+<tag>simplelist</tag> tables.
+</para>
+</listitem> 
+<listitem>
+<para>Use <filename>titlepage.templates.xml</filename> for
+<tag>indexdiv</tag> and <tag>glossdiv</tag> formatting.
+</para>
+</listitem> 
+<listitem>
+<para>Improve support for new bibliography elements.
+</para>
+</listitem> 
+<listitem>
+<para>Added
+<parameter>footnote.number.format</parameter>,
+<parameter>table.footnote.number.format</parameter>,
+<parameter>footnote.number.symbols</parameter>, and
+<parameter>table.footnote.number.symbols</parameter> for better control of
+footnote markers.
+</para>
+</listitem> 
+<listitem>
+<para>Added <tag>glossentry.show.acronyms</tag>.
+</para>
+</listitem> 
+<listitem>
+<para>Suppress the draft-mode page masters when
+<parameter>draft-mode</parameter> is <quote>no</quote>.
+</para>
+</listitem> 
+<listitem>
+<para>Make blank pages verso not recto. D'Oh!
+</para>
+</listitem> 
+<listitem>
+<para>Improved formatting of <tag>ulink</tag> footnotes.
+</para>
+</listitem> 
+<listitem>
+<para>Fixed bugs in graphic width/height calculations.
+</para>
+</listitem> 
+<listitem>
+<para>Added class attributes to inline elements.
+</para>
+</listitem> 
+<listitem>
+<para>Don't add <quote>.html</quote> to the filenames identified
+with the <quote>dbhtml</quote> PI.
+</para>
+</listitem> 
+<listitem>
+<para>Don't force a ToC when sections contain <tag>refentry</tag>s.
+</para>
+</listitem> 
+<listitem>
+<para>Make section title sizes a function of the
+<parameter>body.master.size</parameter>.
+</para>
+</listitem> 
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1592">
+<title>Release 1.59.2</title> 
+<itemizedlist>
+<para>The 1.59.2 fixes an FO bug in the page masters that causes FOP to fail.
+</para> 
+<listitem>
+<para>Removed the region-name from the region-body of blank pages. There's
+no reason to give the body of blank pages a unique name and doing so causes
+a mismatch that FOP detects.
+</para>
+</listitem> 
+<listitem>
+<para>Output IDs for the first paragraphs in listitems.
+</para>
+</listitem> 
+<listitem>
+<para>Fixed some small bugs in the handling of page numbers in double-sided mode.
+</para>
+</listitem> 
+<listitem>
+<para>Attempt to prevent duplicated IDs from being produced when
+<tag class="attribute">endterm</tag> on <tag>xref</tag> points
+to something with nested structure.
+</para>
+</listitem> 
+<listitem>
+<para>Fix aligment problems in <tag>equation</tag>s.
+</para>
+</listitem> 
+<listitem>
+<para>Output the type attribute on unordered lists (UL) in HTML only if
+the css.decoration parameter is true.
+</para>
+</listitem> 
+<listitem>
+<para>Calculate the font size in formal.title.properties so that it's 1.2 times
+the base font size, not a fixed "12pt".
+</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1591">
+<title>Release 1.59.1</title> 
+<itemizedlist>
+<para>The 1.59.1 fixes a few bugs.
+</para> 
+<listitem>
+<para>Added Bulgarian localization.
+</para>
+</listitem> 
+<listitem>
+<para>Indexing improvements; localize book indexes to books but allow setindex
+to index an entire set.
+</para>
+</listitem> 
+<listitem>
+<para>The default value for rowsep and colsep is now "1" as per CALS.
+</para>
+</listitem> 
+<listitem>
+<para>Added support for <tag>titleabbrev</tag> (use them for cross
+references).
+</para>
+</listitem> 
+<listitem>
+<para>Improvements to <tag>mediaobject</tag> for selecting print vs. online
+images.
+</para>
+</listitem> 
+<listitem>
+<para>Added seperate property sets for <tag>figure</tag>s,
+<tag>example</tag>s, <tag>equation</tag>s, <tag>tables</tag>s,
+and <tag>procedure</tag>s.
+</para>
+</listitem> 
+<listitem>
+<para>Make <tag>lineannotation</tag>s italic.
+</para>
+</listitem> 
+<listitem>
+<para>Support <tag class="attribute">xrefstyle</tag> attribute.
+</para>
+</listitem> 
+<listitem>
+<para>Make <tag class="attribute">endterm</tag> on
+<tag>xref</tag> higher priority than
+<tag class="attribute">xreflabel</tag> target.
+</para>
+</listitem> 
+<listitem>
+<para>Glossary formatting improvements.
+</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1580">
+<title>Release 1.58.0</title> 
+<itemizedlist>
+<para>The 1.58.0 adds some initial support for extensions in xsltproc, adds
+a few features, and fixes bugs.
+</para> 
+<listitem>
+<para>This release contains the first attempt at extension support for xsltproc.
+The only extension available to date is the one that adjusts table column widths.
+Run <filename>extensions/xsltproc/python/xslt.py</filename>.
+</para>
+</listitem> 
+<listitem>
+<para>Fixed bugs in calculation of adjusted column widths to correct for rounding
+errors.
+</para>
+</listitem> 
+<listitem>
+<para>Support nested <tag>refsection</tag> elements correctly.
+</para>
+</listitem> 
+<listitem>
+<para>Reworked <literal>gentext.template</literal> to take context into consideration.
+The name of elements in localization files is now an xpath-like context list, not
+just a simple name.
+</para>
+</listitem> 
+<listitem>
+<para>Made some improvements to bibliography formatting.
+</para>
+</listitem> 
+<listitem>
+<para>Improved graphical formatting of admonitions.
+</para>
+</listitem> 
+<listitem>
+<para>Added support for <tag>entrytbl</tag>.
+</para>
+</listitem> 
+<listitem>
+<para>Support spanning index terms.
+</para>
+</listitem> 
+<listitem>
+<para>Support <tag>bibliosource</tag>.
+</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1570">
+<title>Release 1.57.0</title>
+<itemizedlist>
+<listitem>
+<para>The 1.57.0 release wasn't documented here. Oops.
+</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1560">
+<title>Release 1.56.0</title> 
+<itemizedlist>
+<para>The 1.56.0 release fixes bugs.
+</para> 
+<listitem>
+<para>Reworked chunking. <emphasis>This will break all existing customizations
+layers that change the chunking algorithm.</emphasis> If you're customizing chunking,
+look at the new <quote>content</quote> parameter that's passed to
+<literal>process-chunk-element</literal> and friends.
+</para>
+</listitem> 
+<listitem>
+<para>Support continued and inherited numeration in <tag>orderedlist</tag>
+formatting for FOs.
+</para>
+</listitem> 
+<listitem>
+<para>Added Thai localization.
+</para>
+</listitem> 
+<listitem>
+<para>Tweaked stylesheet documentation stylesheets to link to TDG and
+the parameter references.
+</para>
+</listitem> 
+<listitem>
+<para>Allow title on tables of contents ("Table of Contents") to be optional.
+Added new keyword to <parameter>generate.toc</parameter>.
+Support tables of contents on sections.
+</para>
+</listitem> 
+<listitem>
+<para>Made separate parameters for table borders and table cell borders:
+<parameter>table.frame.border.color</parameter>,
+<parameter>table.frame.border.style</parameter>,
+<parameter>table.frame.border.thickness</parameter>,
+<parameter>table.cell.border.color</parameter>,
+<parameter>table.cell.border.style</parameter>, and
+<parameter>table.cell.border.thickness</parameter>.
+</para>
+</listitem> 
+<listitem>
+<para>Suppress formatting of <quote>endofrange</quote> <tag>indexterm</tag>s.
+This is only half-right. They should generate a range, but I haven't figured out how
+to do that yet.
+</para>
+</listitem> 
+<listitem>
+<para>Support <tag>revdescription</tag>. (Bug #582192)
+</para>
+</listitem> 
+<listitem>
+<para>Added <parameter>default.float.class</parameter> and fixed figure
+floats. (Bug #497603)
+</para>
+</listitem> 
+<listitem>
+<para>Fixed formatting of <tag>sbr</tag> in FOs.
+</para>
+</listitem> 
+<listitem>
+<para>Added context to the <quote>missing template</quote> error message.
+</para>
+</listitem> 
+<listitem>
+<para>Process <tag>arg</tag> correctly in a <tag>group</tag>.
+(Bug #605150)
+</para>
+</listitem> 
+<listitem>
+<para>Removed 'keep-with-next' from <parameter>formal.title.properties</parameter>
+attribute set now that the stylesheets support the option of putting
+such titles below the object. Now the $placement value determines if
+'keep-with-next' or 'keep-with-previous' is used in the title block.
+</para>
+</listitem> 
+<listitem>
+<para>Wrap <quote>url()</quote> around external-destinations when appropriate.
+</para>
+</listitem> 
+<listitem>
+<para>Fixed typo in compact list spacing. (Bug #615464)
+</para>
+</listitem> 
+<listitem>
+<para>Removed spurious hash in anchor name. (Bug #617717)
+</para>
+</listitem> 
+<listitem>
+<para>Address is now displayed verbatim on title pages. (Bug #618600)
+</para>
+</listitem> 
+<listitem>
+<para>The <parameter>bridgehead.in.toc</parameter> parameter is now properly
+supported.
+</para>
+</listitem> 
+<listitem>
+<para>Improved effectiveness of HTML cleanup by increasing the number
+of places where it is used. Improve use of HTML cleanup in XHTML stylesheets.
+</para>
+</listitem> 
+<listitem>
+<para>Support table of contents for <tag>appendix</tag> in
+<tag>article</tag>. (Bug #596599)
+</para>
+</listitem> 
+<listitem>
+<para>Don't duplicate footnotes in <tag>bibliography</tag>s and
+<tag>glossary</tag>s. (Bug #583282)
+</para>
+</listitem> 
+<listitem>
+<para>Added <parameter>default.image.width</parameter>. (Bug #516859)
+</para>
+</listitem> 
+<listitem>
+<para>Totally reworked <tag>funcsynopsis</tag> code; it now
+supports a 'tabular' presentation style for 'wide' prototypes; see
+<parameter>funcsynopsis.tabular.threshold</parameter>. (HTML only
+right now, I think, FO support, uh, real soon now.)
+</para>
+</listitem> 
+<listitem>
+<para>Reworked support for difference marking; toned down the colors a bit
+and added a <quote>system.head.content</quote> template so that the diff CSS
+wasn't overriding <quote>user.head.content</quote>. (Bug #610660)
+</para>
+</listitem> 
+<listitem>
+<para>Added call to the <quote>*.head.content</quote> elements when writing
+out long description chunks.
+</para>
+</listitem> 
+<listitem>
+<para>Make sure <tag>legalnotice</tag> link is correct even when
+chunking to a different <parameter>base.dir</parameter>.
+</para>
+</listitem> 
+<listitem>
+<para>Use CSS to set viewport characteristics if
+<parameter>css.decoration</parameter> is non-zero, use div instead of p for making
+graphic a block element; make figure <tag>title</tag>s the
+default alt
+text for images in a <tag>figure</tag>.</para>
+</listitem> 
+<listitem>
+<para>Added space-after to <parameter>list.block.spacing</parameter>.
+</para>
+</listitem> 
+<listitem>
+<para>Reworked section.level template to give <quote>correct</quote> answer
+instead of being off by one.
+</para>
+</listitem> 
+<listitem>
+<para>When processing tables, use the <tag class="attribute">tabstyle</tag>
+attribute as the division class.
+</para>
+</listitem> 
+<listitem>
+<para>Fixed bug in <filename>html2xhtml.xsl</filename> that was causing the
+XHTML chunker to output HTML instead of XHTML.
+</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="VOlder">
+  <title>Older releases</title>
+  <para>To view the release notes for older releases, see <uri xlink:href="http://cvs.sourceforge.net/viewcvs.py/docbook/xsl/RELEASE-NOTES.xml">http://cvs.sourceforge.net/viewcvs.py/docbook/xsl/RELEASE-NOTES.xml</uri>. Be
+  aware that there were no release notes for releases prior to the
+  1.50.0 release.</para>
+</sect1>
+<sect1 xml:id="dot0">
+  <title>About dot-zero releases</title>
+    <para>DocBook Project &#x201C;dot zero&#x201D; releases should be
+    considered <emphasis>experimental</emphasis> and are always
+    followed by stable &#x201C;dot one plus&#x201D; releases, usually within
+    two or three weeks. Please help to ensure the stability of
+    &#x201C;dot one plus&#x201D; releases by carefully testing each
+    &#x201C;dot zero&#x201D; release and reporting back about any
+    problems you find. </para>
+    <para>It is not recommended that you use a &#x201C;dot zero&#x201D;
+    release in a production system. Instead, you should wait for
+    the &#x201C;dot one&#x201D; or greater versions.</para>
+  </sect1>
+</article>
diff --git a/applications/content/template/docbook/RELEASE-NOTES.html b/applications/content/template/docbook/RELEASE-NOTES.html
new file mode 100644
index 0000000..77cef5c
--- /dev/null
+++ b/applications/content/template/docbook/RELEASE-NOTES.html
@@ -0,0 +1,9108 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Release Notes for the DocBook XSL Stylesheets</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"><meta name="description" content="This release-notes document is available in the following formats: HTML, PDF, plain text; it provides a per-release list of enhancements and changes to the stylesheets&#8217; public APIs (user-configurable parameters) and excludes descriptions of most bug fixes. For a complete list of all changes (including all bug fixes) that have been made since the previous release, see the separate NEWS (plain text) or NEWS.html files. Also available: An online hyperlinked change history (warning: big file) of all changes made over the entire history of the codebase. As with all DocBook Project &#8220;dot one plus&#8221; releases, this release aspires to be stable (in contrast to dot-zero releases, which are experimental)."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="article"><div class="titlepage"><div><div><h2 class="title"><a name="releasenotes"></a>Release Notes for the DocBook XSL Stylesheets</h2></div><div><p class="releaseinfo">$Revision$ $Date$</p></div><div><p class="pubdate">2012-06-04</p></div><div><div class="abstract">
+<p>This release-notes
+  document is available in the following formats:
+  <a class="ulink" href="http://docbook.sourceforge.net/release/xsl/current/RELEASE-NOTES.html" target="_top">HTML</a>,
+  <a class="ulink" href="http://docbook.sourceforge.net/release/xsl/current/RELEASE-NOTES.pdf" target="_top">PDF</a>,
+  <a class="ulink" href="http://docbook.sourceforge.net/release/xsl/current/RELEASE-NOTES.txt" target="_top">plain text</a>; it provides a per-release list
+of enhancements and changes to the stylesheets&#8217; public APIs
+(user-configurable parameters) and excludes descriptions of most
+bug fixes. For a complete list of all changes (including all bug
+fixes) that have been made since the previous release, see the
+separate <a class="ulink" href="NEWS" target="_top">NEWS</a> (plain text) or <a class="ulink" href="NEWS.html" target="_top">NEWS.html</a> files. Also available:
+An online <a class="ulink" href="http://docbook.svn.sourceforge.net/viewvc/docbook/trunk/xsl/?view=log" target="_top">hyperlinked change history</a> (warning: big file) of all
+changes made over the entire history of the codebase.</p>
+
+<p>As with all DocBook Project &#8220;dot
+  one plus&#8221; releases, this release aspires to be stable (in
+  contrast to <a class="link" href="#dot0" title="About dot-zero releases">dot-zero</a> releases, which
+  are experimental).</p>
+
+
+</div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#V1.77.0">Release Notes: 1.77.1</a></span></dt><dd><dl><dt><span class="sect2"><a href="#rnV1.77_Gentext">Gentext</a></span></dt><dt><span class="sect2"><a href="#VrnV1.77_Common">Common</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_FO">FO</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_Epub">Epub</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_HTMLHelp">HTMLHelp</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_Eclipse">Eclipse</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_">JavaHelp</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_Webhelp">Webhelp</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_Params">Params</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_Highlighting">Highlighting</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_Profiling">Profiling</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_Lib">Lib</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_Template">Template</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_Extensions">Extensions</a></span></dt><dt><span class="sect2"><a href="#rnV1.77_XSL-Saxon">XSL-Saxon</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1.77.1">Release Notes: 1.77.1</a></span></dt><dd><dl><dt><span class="sect2"><a href="#Vsnapshot_9396_FO">FO</a></span></dt><dt><span class="sect2"><a href="#Vsnapshot_9396_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#Vsnapshot_9396_Roundtrip">Roundtrip</a></span></dt><dt><span class="sect2"><a href="#Vsnapshot_9396_Slides">Slides</a></span></dt><dt><span class="sect2"><a href="#Vsnapshot_9396_Website">Website</a></span></dt><dt><span class="sect2"><a href="#Vsnapshot_9396_Webhelp">Webhelp</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1.76.1">Release Notes: 1.76.1</a></span></dt><dd><dl><dt><span class="sect2"><a href="#rnV1.76.1_FO">FO</a></span></dt><dt><span class="sect2"><a href="#rnV1.76.1_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#rnV1.76.1_Params">Params</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1.76.0">Release Notes: 1.76.0</a></span></dt><dd><dl><dt><span class="sect2"><a href="#rnV1.76.0_Gentext">Gentext</a></span></dt><dt><span class="sect2"><a href="#rnV1.76.0_Common">Common</a></span></dt><dt><span class="sect2"><a href="#rnV1.76.0_FO">FO</a></span></dt><dt><span class="sect2"><a href="#rnV1.76.0_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#rnV1.76.0_Manpages">Manpages</a></span></dt><dt><span class="sect2"><a href="#rnV1.76.0_Epub">Epub</a></span></dt><dt><span class="sect2"><a href="#rnV1.76.0_Eclipse">Eclipse</a></span></dt><dt><span class="sect2"><a href="#rnV1.76.0_Params">Params</a></span></dt><dt><span class="sect2"><a href="#rnV1.76.0_XSL-Xalan">XSL-Xalan</a></span></dt></dl></dd><dt><span class="sect1"><a href="#rn_V1.75.2">Release Notes: 1.75.2</a></span></dt><dd><dl><dt><span class="sect2"><a href="#rn_V1.75.2_Gentext">Gentext</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.2_Common">Common</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.2_FO">FO</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.2_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.2_Manpages">Manpages</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.2_Epub">Epub</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.2_Profiling">Profiling</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.2_XSL-Saxon">XSL-Saxon</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.2_XSL-Xalan">XSL-Xalan</a></span></dt></dl></dd><dt><span class="sect1"><a href="#rn_V1.75.1">Release Notes: 1.75.1</a></span></dt><dd><dl><dt><span class="sect2"><a href="#rn_V1.75.1_FO">FO</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.1_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.1_Epub">Epub</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.1_Params">Params</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1.75.0">Release Notes: 1.75.0</a></span></dt><dd><dl><dt><span class="sect2"><a href="#rn_V1.75.0_Gentext">Gentext</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.0_Common">Common</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.0_FO">FO</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.0_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.0_Manpages">Manpages</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.0_Epub">ePub</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.0_HTMLHelp">HTMLHelp</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.0_Params">Params</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.0_Highlighting">Highlighting</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.0_XSL-Saxon">XSL-Saxon</a></span></dt><dt><span class="sect2"><a href="#rn_V1.75.0_XSL-Xalan">XSL-Xalan</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1.74.3">Release Notes: 1.74.3</a></span></dt><dt><span class="sect1"><a href="#V1.74.2">Release Notes: 1.74.2</a></span></dt><dt><span class="sect1"><a href="#V1.74.1">Release Notes: 1.74.1</a></span></dt><dd><dl><dt><span class="sect2"><a href="#summary_V1.74.1_Gentext">Gentext</a></span></dt><dt><span class="sect2"><a href="#summary_V1.74.1_FO">FO</a></span></dt><dt><span class="sect2"><a href="#summary_V1.74.1_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#summary_V1.74.1_Manpages">Manpages</a></span></dt><dt><span class="sect2"><a href="#summary_V1.74.1_Epub">ePub</a></span></dt><dt><span class="sect2"><a href="#summary_V1.74.1_Roundtrip">Roundtrip</a></span></dt><dt><span class="sect2"><a href="#summary_V1.74.1_Params">Params</a></span></dt><dt><span class="sect2"><a href="#summary_V1.74.1_Highlighting">Highlighting</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1.74.0">Release Notes: 1.74.0</a></span></dt><dd><dl><dt><span class="sect2"><a href="#V1.74.0_Gentext">Gentext</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_Common">Common</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_FO">FO</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_Manpages">Manpages</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_Epub">Epub</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_HTMLHelp">HTMLHelp</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_Eclipse">Eclipse</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_JavaHelp">JavaHelp</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_Roundtrip">Roundtrip</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_Slides">Slides</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_Website">Website</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_Params">Params</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_Profiling">Profiling</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_Tools">Tools</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_Extensions">Extensions</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_XSL-Saxon">XSL-Saxon</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_XSL-Xalan">XSL-Xalan</a></span></dt><dt><span class="sect2"><a href="#V1.74.0_XSL-libxslt">XSL-libxslt</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1.73.2">Release Notes: 1.73.2</a></span></dt><dt><span class="sect1"><a href="#V1.73.1">Release: 1.73.1</a></span></dt><dd><dl><dt><span class="sect2"><a href="#V1.73.1_Gentext">Gentext</a></span></dt><dt><span class="sect2"><a href="#V1.73.1_FO">FO</a></span></dt><dt><span class="sect2"><a href="#V1.73.1_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#V1.73.1_Manpages">Manpages</a></span></dt><dt><span class="sect2"><a href="#V1.73.1_HTMLHelp">HTMLHelp</a></span></dt><dt><span class="sect2"><a href="#V1.73.1_Eclipse">Eclipse</a></span></dt><dt><span class="sect2"><a href="#V1.73.1_JavaHelp">JavaHelp</a></span></dt><dt><span class="sect2"><a href="#V1.73.1_Roundtrip">Roundtrip</a></span></dt><dt><span class="sect2"><a href="#V1.73.1_Params">Params</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1.73.0">Release: 1.73.0</a></span></dt><dd><dl><dt><span class="sect2"><a href="#V1.73.0_Gentext">Gentext</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_Common">Common</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_FO">FO</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_Manpages">Manpages</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_Eclipse">Eclipse</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_JavaHelp">JavaHelp</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_Roundtrip">Roundtrip</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_Params">Params</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_Highlighting">Highlighting</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_Profiling">Profiling</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_Lib">Lib</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_Tools">Tools</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_XSL-Saxon">XSL-Saxon</a></span></dt><dt><span class="sect2"><a href="#V1.73.0_XSL-Xalan">XSL-Xalan</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1.72.0">Release: 1.72.0</a></span></dt><dd><dl><dt><span class="sect2"><a href="#V1.72.0_Common">Common</a></span></dt><dt><span class="sect2"><a href="#V1.72.0_FO">FO</a></span></dt><dt><span class="sect2"><a href="#V1.72.0_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#V1.72.0_Manpages">Manpages</a></span></dt><dt><span class="sect2"><a href="#V1.72.0_Params">Params</a></span></dt><dt><span class="sect2"><a href="#V1.72.0_Template">Template</a></span></dt><dt><span class="sect2"><a href="#V1.72.0_Roundtrip">Roundtrip</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1.71.1">Release: 1.71.1</a></span></dt><dd><dl><dt><span class="sect2"><a href="#V1.71.1_Common">Common</a></span></dt><dt><span class="sect2"><a href="#V1.71.1_FO">FO</a></span></dt><dt><span class="sect2"><a href="#V1.71.1_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#V1.71.1_Highlighting">Highlighting</a></span></dt><dt><span class="sect2"><a href="#V1.71.1_Manpages">Manpages</a></span></dt><dt><span class="sect2"><a href="#V1.71.1_Params">Params</a></span></dt><dt><span class="sect2"><a href="#V1.71.1_Profiling">Profiling</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1.71.0">Release: 1.71.0</a></span></dt><dd><dl><dt><span class="sect2"><a href="#V1.71.0_Common">Common</a></span></dt><dt><span class="sect2"><a href="#V1.71.0_Extensions">Extensions</a></span></dt><dt><span class="sect2"><a href="#V1.71.0_FO">FO</a></span></dt><dt><span class="sect2"><a href="#V1.71.0_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#V1.71.0_Highlighting">Highlighting</a></span></dt><dt><span class="sect2"><a href="#V1.71.0_Manpages">Manpages</a></span></dt><dt><span class="sect2"><a href="#V1.71.0_Params">Params</a></span></dt><dt><span class="sect2"><a href="#V1.71.0_Tools">Tools</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1701">Release: 1.70.1</a></span></dt><dd><dl><dt><span class="sect2"><a href="#V1701_FO">FO</a></span></dt><dt><span class="sect2"><a href="#V1701_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#V1701_HTMLHelp">HTMLHelp</a></span></dt><dt><span class="sect2"><a href="#V1701_Params">Params</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1700">Release: 1.70.0</a></span></dt><dd><dl><dt><span class="sect2"><a href="#V1700_Common">Common</a></span></dt><dt><span class="sect2"><a href="#V1700_Extensions">Extensions</a></span></dt><dt><span class="sect2"><a href="#V1700_FO">FO</a></span></dt><dt><span class="sect2"><a href="#V1700_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#V1700_Manpages">Manpages</a></span></dt><dt><span class="sect2"><a href="#V1700_Params">Params</a></span></dt><dt><span class="sect2"><a href="#V1700_Profiling">Profiling</a></span></dt><dt><span class="sect2"><a href="#V1700_Tools">Tools</a></span></dt><dt><span class="sect2"><a href="#V1700_WordML">WordML</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1691">Release 1.69.1</a></span></dt><dt><span class="sect1"><a href="#V1690">Release 1.69.0</a></span></dt><dd><dl><dt><span class="sect2"><a href="#V1690_COMMON">Common</a></span></dt><dt><span class="sect2"><a href="#V1690_FO">FO</a></span></dt><dt><span class="sect2"><a href="#V1690_HELP">Help</a></span></dt><dt><span class="sect2"><a href="#V1690_HTML">HTML</a></span></dt><dt><span class="sect2"><a href="#V1690_MAN">man</a></span></dt></dl></dd><dt><span class="sect1"><a href="#V1681">Release 1.68.1</a></span></dt><dt><span class="sect1"><a href="#V1680">Release 1.68.0</a></span></dt><dt><span class="sect1"><a href="#V1672">Release 1.67.2</a></span></dt><dt><span class="sect1"><a href="#V1671">Release 1.67.1</a></span></dt><dt><span class="sect1"><a href="#V1670">Release 1.67.0</a></span></dt><dt><span class="sect1"><a href="#V1661">Release 1.66.1</a></span></dt><dt><span class="sect1"><a href="#V1650">Release 1.65.0</a></span></dt><dt><span class="sect1"><a href="#V1641">Release 1.64.1</a></span></dt><dt><span class="sect1"><a href="#V1610">Release 1.61.0</a></span></dt><dt><span class="sect1"><a href="#V1601">Release 1.60.1</a></span></dt><dt><span class="sect1"><a href="#V1592">Release 1.59.2</a></span></dt><dt><span class="sect1"><a href="#V1591">Release 1.59.1</a></span></dt><dt><span class="sect1"><a href="#V1580">Release 1.58.0</a></span></dt><dt><span class="sect1"><a href="#V1570">Release 1.57.0</a></span></dt><dt><span class="sect1"><a href="#V1560">Release 1.56.0</a></span></dt><dt><span class="sect1"><a href="#VOlder">Older releases</a></span></dt><dt><span class="sect1"><a href="#dot0">About dot-zero releases</a></span></dt></dl></div>
+
+
+
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.77.0"></a>Release Notes: 1.77.1</h2></div></div></div>
+
+<p>The following list summarizes the major changes that have been made
+        since the 1.76.1 release.  It is followed by sections detailing changes to individual files
+from the SVN checkin logs, edited to remove housekeeping changes and bug fixes.
+See the NEWS.xml file for a complete unedited  list of SVN changes.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Gentext</p>
+<div class="variablelist"><dl class="variablelist"><dt><span class="term">webhelp</span></dt><dd>
+                <p>Many improvements to the generated text for webhelp output.</p>
+            </dd></dl></div>
+  </li><li class="listitem"><p>Common</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Support more media types</span></dt><dd>
+                            <p>Expanded list of supported filename extensions for media to include video and audio, mostly for HTML5 and EPUB3 outputs.</p>
+                        </dd><dt><span class="term">Topic element</span></dt><dd>
+                            <p>Add basic support for new <code class="literal">topic</code> element, which is available in DocBook 5.1. Generally a topic element will be used with <code class="literal">assembly</code> and may be transformed to some other hierarchical element during processing, but it can also be formatted as a plain topic.</p>
+                        </dd></dl></div></li><li class="listitem"><p>FO</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Add para.properties attribute-set</span></dt><dd>
+                            <p>Add a <code class="literal">para.properties</code> attribute-set that applies only to para elements. That allows still using <code class="literal">normal.para.spacing</code> attribute-set for many block elements for uniform spacing, but allows separate formatting of para elements.</p>
+                        </dd><dt><span class="term">List of titles in article</span></dt><dd>
+                            <p>Add support for List of Tables, List of Figures, etc. for articles and other component-level elements. Includes a new template for each in <code class="filename">autotoc.xsl</code>, new attribute-sets in <code class="filename">titlepage.xsl</code>, and new entries in the <code class="filename">titlepage.templates.xml</code> file tu support customization.</p>
+                        </dd><dt><span class="term">Customizing links in FO</span></dt><dd>
+                            <p>Add template mode <code class="literal">simple.xlink.properties</code> to allow
+easy customization of formatting of links generated
+from elements  that use 
+the xlink attributes. This extends link formatting beyond that of <code class="literal">xref</code>, <code class="literal">link</code>, and <code class="literal">olink</code> which use <code class="literal">xref.properties</code> attribute-set.</p>
+                        </dd><dt><span class="term">Table caption</span></dt><dd>
+                            <p>The caption element in an HTML table is now handled like a title in a CALS table, using the <code class="literal">formal.object.title</code> template with all its features, including placement.  Now <code class="literal">caption</code> template in <code class="literal">mode="htmlTable"</code> does nothing, because
+caption handled by <code class="literal">formal.object.title</code> template.  Also adds support for table <code class="literal">caption</code> element in a CALS table, placing it after the table.</p>
+                        </dd><dt><span class="term">Graphics attribute handling</span></dt><dd>
+                            <p>Refactored the big <code class="literal">process.image</code> template to use individual templates such as <code class="literal">image.width</code> for most attributes to allow easier customization of individual properties.</p>
+                        </dd><dt><span class="term">Side regions</span></dt><dd>
+                            <p>Add support for side page regions in addition to header and footer regions. This feature lets you add running content to the side margins, and by default the content is rotated 90 degrees.  Adds new templates named <code class="literal">running.side.content</code>, <code class="literal">region.inner</code> and <code class="literal">region.outer</code>; new template modes <code class="literal"><code class="literal">region.inner.mode</code> and <code class="literal">region.outer.mode</code>; </code>new parameters named <code class="literal">region.inner.extent</code>, <code class="literal">region.outer.extent</code>, <code class="literal">body.margin.inner</code>, <code class="literal">body.margin.outer</code>,  and <code class="literal">side.region.precedence</code>; and new attribute-sets named <code class="literal">inner.region.content.properties</code>, <code class="literal">outer.region.content.properties</code>, <code class="literal">region.inner.properties</code>, and <code class="literal">region.outer.properties</code>.</p>
+                        </dd><dt><span class="term">Callout formatting</span></dt><dd>
+                            <p>Add new attribute-sets for <code class="literal">calloutlist</code>.</p>
+                        </dd><dt><span class="term">Topic element</span></dt><dd>
+                            <p>Add basic support for formatting a topic element, which is available in DocBook 5.1.</p>
+                        </dd></dl></div></li><li class="listitem"><p>HTML</p>
+              
+                <div class="variablelist"><dl class="variablelist"><dt><span class="term">HTML5</span></dt><dd>
+                            <p>Add variables to the base HTML stylesheets that can be adjusted for the HTML5 stylesheets.</p>
+                        </dd><dt><span class="term">Insert Javascript reference</span></dt><dd>
+                            <p>Add support for <code class="literal">html.script</code> param to insert reference to a Javascript file.</p>
+                        </dd><dt><span class="term">Namespace for titlepage mechanism.</span></dt><dd>
+                            <p>Titlepage mechanism is now namespace aware to support XHTML.</p>
+                        </dd><dt><span class="term">Chunked filename prefix</span></dt><dd>
+                            <p>New param named <code class="literal">chunked.filename.prefix</code> lets you add a filename prefix to each chunked file. This replaces the buggy practice of adding such a prefix to the <code class="literal">base.dir</code> param.  Now the <code class="literal">base.dir</code> param will always have a trailing slash added if it is not present, so you no longer have to remember to add it to the param value.</p>
+                        </dd><dt><span class="term">Generate id attributes</span></dt><dd>
+                            <p>The stylesheet param <code class="literal">generate.id.attributes</code> already existed but was incompletely implemented.  Now when it is set to 1, only <code class="literal">id</code> attributes should be output, not <code class="literal">&lt;a name&gt;</code> named anchors.</p>
+                        </dd><dt><span class="term">Generate consistent id attributes</span></dt><dd>
+                            <p>New  <code class="literal">generate.consistent.ids</code> parameter which allows generating a more stable id values based on XPath rather than the <code class="literal">generate-id()</code> function, which may not produce consistent values between runs.  Stable output ids allow you to make stable links to generated content from the outside.</p>
+                        </dd><dt><span class="term">Topic element</span></dt><dd>
+                            <p>Add basic support for formatting a topic element, which is available in DocBook 5.1. Generally a topic element will be used with assembly and may be transformed to some other hierarchical element during processing, but it can also be formatted as a plain topic.</p>
+                        </dd></dl></div>
+            </li><li class="listitem"><p>Webhelp</p>
+                <div class="variablelist"><dl class="variablelist"><dt><span class="term">Webhelp refactored</span></dt><dd>
+                            <p>Webhelp templates refactored to better support customization.</p>
+                        </dd><dt><span class="term">Added documentation.</span></dt><dd>
+                            <p>More and better documentation added.</p>
+                        </dd><dt><span class="term">Webhelp generated text</span></dt><dd>
+                            <p>Many improvements to the generated text for webhelp output.</p>
+                        </dd></dl></div>
+            </li><li class="listitem"><p>XHTML5</p>
+                <p>New stylesheets to generate HTML5 output, in an  XML serialization. These templates are a customization layer on top of the XHTML stylesheet files.</p>
+            </li><li class="listitem"><p>EPUB3</p>
+                <p>New stylesheets to generate EPUB3 output. These templates are a customization layer on top of the xhtml5 stylesheet files.</p>
+            </li><li class="listitem"><p>Assembly</p>
+                <p>New <code class="literal">assembly.xsl</code> stylesheet to convert a DocBook 5.1 assembly into a standard DocBook 5 document.  Also includes a <code class="literal">topic-maker-chunk.xsl</code> stylesheet that can convert a DocBook 5 book or article document into an assembly with a collection of modular files, including converting some elements to topic files.</p>
+            </li></ul></div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_Gentext"></a>Gentext</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">gentext</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">stefanhinz: locale/de.xml</code></p><pre class="screen"><span class="commit-message">Translated German WebHelp strings</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: locale/zh.xml; locale/en.xml; locale/fr.xml; locale/de.xml; locale/ja.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: Update non-en gentext strings</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/en.xml</code></p><pre class="screen"><span class="commit-message">Add topic to title-numbered context.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/en.xml</code></p><pre class="screen"><span class="commit-message">Add basic topic element templates.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: locale/el.xml</code></p><pre class="screen"><span class="commit-message">Updated gentext for quotation marks. Fixes bug #3512440.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: locale/cs.xml</code></p><pre class="screen"><span class="commit-message">Adding missing context for webhelp</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: locale/en.xml</code></p><pre class="screen"><span class="commit-message">Fixing syntax of webhelp gentext entries</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: locale/en.xml</code></p><pre class="screen"><span class="commit-message">Moving webhelp gentext strings into a context</span></pre>
+</li><li class="listitem">
+<p><code class="literal">tom_schr: locale/zh.xml; locale/en.xml; locale/cs.xml; locale/fr.xml; locale/de.xml; local&#8943;</code></p><pre class="screen"><span class="commit-message">Moved language specific of WebHelp to gentext/locale/ as discussed with
+Stefan following the "minimal intrusive approach". :)
+In the long run, maybe moving the text into a context, not sure.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: locale/ru.xml</code></p><pre class="screen"><span class="commit-message">Aligned capitalization of first letters with English original</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="VrnV1.77_Common"></a>Common</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">common</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: common.xsl</code></p><pre class="screen"><span class="commit-message">In "select.mediaobject.index" template, add selection of <a href="http://docbook.org/tdg5/en/html/videoobject.html"><code class="sgmltag-element">videoobject</code></a>
+and <a href="http://docbook.org/tdg5/en/html/audioobject.html"><code class="sgmltag-element">audioobject</code></a> since now supported in HTML5.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: labels.xsl; titles.xsl; entities.ent; targets.xsl; subtitles.xsl; gentext.&#8943;</code></p><pre class="screen"><span class="commit-message">Add basic support for new &lt;topic&gt; element.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: common.xsl</code></p><pre class="screen"><span class="commit-message">Fix handling of mediatypes for video and audio files, mostly for HTML5 and EPUB3 outputs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: olink.xsl</code></p><pre class="screen"><span class="commit-message">Generate error message if <a href="http://docbook.org/tdg5/en/html/olink.html"><code class="sgmltag-element">olink</code></a> data in targetset is in a namespace.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: common.xsl</code></p><pre class="screen"><span class="commit-message">Add support for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/generate.consistent.ids.html"><em class="parameter"><code>generate.consistent.ids</code></em></a> parameter.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: subtitles.xsl</code></p><pre class="screen"><span class="commit-message">Add verbose param to subtitle.markup templates to allow its
+error message to be ignored. 
+Add that param to fop1.xsl <a href="http://docbook.org/tdg5/en/html/application.html"><code class="sgmltag-element">application</code></a> of subtitle.markup
+to avoid unnecessary error message in document information.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: labels.xsl</code></p><pre class="screen"><span class="commit-message">Add empty templates for <a href="http://docbook.org/tdg5/en/html/glossdiv.html"><code class="sgmltag-element">glossdiv</code></a>, <a href="http://docbook.org/tdg5/en/html/glosslist.html"><code class="sgmltag-element">glosslist</code></a>, and <a href="http://docbook.org/tdg5/en/html/glossentry.html"><code class="sgmltag-element">glossentry</code></a> in
+mode="label.markup".</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">fo</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: graphics.xsl</code></p><pre class="screen"><span class="commit-message">qualify <a href="http://docbook.org/tdg5/en/html/caption.html"><code class="sgmltag-element">caption</code></a> template to <a href="http://docbook.org/tdg5/en/html/mediaobject.html"><code class="sgmltag-element">mediaobject</code></a>/<a href="http://docbook.org/tdg5/en/html/caption.html"><code class="sgmltag-element">caption</code></a> so not confused with <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>/<a href="http://docbook.org/tdg5/en/html/caption.html"><code class="sgmltag-element">caption</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: table.xsl</code></p><pre class="screen"><span class="commit-message">Add template to process <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>/<a href="http://docbook.org/tdg5/en/html/caption.html"><code class="sgmltag-element">caption</code></a> element.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: titlepage.xsl; autotoc.xsl; component.xsl; xref.xsl; titlepage.templates.x&#8943;</code></p><pre class="screen"><span class="commit-message">Add basic support for new &lt;topic&gt; element.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: graphics.xsl</code></p><pre class="screen"><span class="commit-message">Fix handling of mediatypes for video and audio files, mostly for HTML5 and EPUB3 outputs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Add default style att-sets for component.list.of.titles, etc.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: autotoc.xsl; component.xsl; titlepage.templates.xml</code></p><pre class="screen"><span class="commit-message">Add make.component.tocs to support lists of tables, etc. for
+<a href="http://docbook.org/tdg5/en/html/article.html"><code class="sgmltag-element">article</code></a> and other components.  Added component.list.of.tables to
+titlepage.templates.xml to format the <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Add new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/para.properties.html"><em class="parameter"><code>para.properties</code></em></a> attribute-set for paragraphs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: inline.xsl</code></p><pre class="screen"><span class="commit-message">Add template mode 'simple.xlink.properties' to allow
+easy customization of formatting of links generated
+from elements other than <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a>, <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>, and <a href="http://docbook.org/tdg5/en/html/olink.html"><code class="sgmltag-element">olink</code></a> using
+the xlink attributes.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Add <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/table.caption.properties.html"><em class="parameter"><code>table.caption.properties</code></em></a> to format <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> captions.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: table.xsl</code></p><pre class="screen"><span class="commit-message">Add support for <a href="http://docbook.org/tdg5/en/html/caption.html"><code class="sgmltag-element">caption</code></a> in a CALS <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: graphics.xsl; math.xsl</code></p><pre class="screen"><span class="commit-message">Refactored the 'process.image' template to create modular
+templates for each attribute so they can be individually
+customized.  Also merged in support for embedded svg and
+mml content so they can have image attributes too.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Check in new params for FO side regions in page masters.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: titlepage.xsl; titlepage.templates.xml</code></p><pre class="screen"><span class="commit-message">Add support for <a href="http://docbook.org/tdg5/en/html/itermset.html"><code class="sgmltag-element">itermset</code></a> in <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a> elements, using titlepage mechanism
+to ensure entries are placed inside page-sequence.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: pagesetup.xsl</code></p><pre class="screen"><span class="commit-message">Add support for side body margins and side static content regions.
+Fixes bug 3389931.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent; task.xsl</code></p><pre class="screen"><span class="commit-message">Add attribute-set <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/task.properties.html"><em class="parameter"><code>task.properties</code></em></a> to <a href="http://docbook.org/tdg5/en/html/task.html"><code class="sgmltag-element">task</code></a> element to
+support customization.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: lists.xsl; param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Add new attribute-sets <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/calloutlist.properties.html"><em class="parameter"><code>calloutlist.properties</code></em></a> and <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/callout.properties.html"><em class="parameter"><code>callout.properties</code></em></a>
+to  better support customization of calloutlists, fixing bug 3160341.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: Makefile</code></p><pre class="screen"><span class="commit-message">Titlepage mechanism is now namespace aware to support XHTML. Please note that when generating titlepage template stylesheets you have to pass FO or XHTML namespace inside ns parameter. For HTML parameter should be empty.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: graphics.xsl</code></p><pre class="screen"><span class="commit-message">Allow selection by role for multiple <a href="http://docbook.org/tdg5/en/html/imageobject.html"><code class="sgmltag-element">imageobject</code></a> elements
+within an <a href="http://docbook.org/tdg5/en/html/imageobjectco.html"><code class="sgmltag-element">imageobjectco</code></a>, which since Docbook 5 allows multiple imageobjects.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Added template for collabname. Fixes bug #3414436.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: verbatim.xsl</code></p><pre class="screen"><span class="commit-message">Support the keep-together processing-instruction on <a href="http://docbook.org/tdg5/en/html/programlisting.html"><code class="sgmltag-element">programlisting</code></a>, <a href="http://docbook.org/tdg5/en/html/screen.html"><code class="sgmltag-element">screen</code></a>, <a href="http://docbook.org/tdg5/en/html/synopsis.html"><code class="sgmltag-element">synopsis</code></a>, and <a href="http://docbook.org/tdg5/en/html/literallayout.html"><code class="sgmltag-element">literallayout</code></a>. Tracker id #3396906.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: pagesetup.xsl</code></p><pre class="screen"><span class="commit-message">Pass the pageclass, sequence, and gentext-key to the template
+named header.footer.widths to enable further customization
+based on page master.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: xref.xsl</code></p><pre class="screen"><span class="commit-message">hyphenation of URL content must be disabled for <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>, not only for ulink because od DB5</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: xref.xsl</code></p><pre class="screen"><span class="commit-message">URLs shouldn't be hyphenated as normal text</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: callout.xsl</code></p><pre class="screen"><span class="commit-message">Added support for alternative circled numbers</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: axf.xsl; fop1.xsl; xep.xsl</code></p><pre class="screen"><span class="commit-message">Added support for <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a>/<a href="http://docbook.org/tdg5/en/html/orgname.html"><code class="sgmltag-element">orgname</code></a> in document metadata. Closes bug #3132862.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: component.xsl</code></p><pre class="screen"><span class="commit-message">Add template for <a href="http://docbook.org/tdg5/en/html/article.html"><code class="sgmltag-element">article</code></a>/<a href="http://docbook.org/tdg5/en/html/colophon.html"><code class="sgmltag-element">colophon</code></a> to avoid nested page-sequence.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">html</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: xref.xsl</code></p><pre class="screen"><span class="commit-message">Add support for using <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> as well as <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> in target element.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: component.xsl</code></p><pre class="screen"><span class="commit-message">Enable support for html5 features, including using &lt;<a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a>&gt; instead of
+&lt;div&gt; for certain elements, and setting heading level to &lt;h1&gt; for chapters.
+These features are not changed in the base html stylesheet for backwards
+compatibility.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: docbook.css.xml</code></p><pre class="screen"><span class="commit-message">Add style for <a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a> rule.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: biblio-iso690.xsl</code></p><pre class="screen"><span class="commit-message">Add support for <a href="http://docbook.org/tdg5/en/html/subtitle.html"><code class="sgmltag-element">subtitle</code></a> inside <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Add call to new 'root.attributes' placeholder template to allow
+adding attributes to the &lt;html&gt; output element.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: inline.xsl; titlepage.xsl; formal.xsl; division.xsl; toc.xsl; sections.xsl&#8943;</code></p><pre class="screen"><span class="commit-message">Finish implementation of <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/generate.id.attributes.html"><em class="parameter"><code>generate.id.attributes</code></em></a> for all elements
+using the template named id.attribute.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: autotoc.xsl; chunktoc.xsl; titlepage.xsl; chunk-code.xsl; changebars.xsl; &#8943;</code></p><pre class="screen"><span class="commit-message">Add basic support for new &lt;topic&gt; element.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: graphics.xsl</code></p><pre class="screen"><span class="commit-message">Fix handling of mediatypes for video and audio files, mostly for HTML5 and EPUB3 outputs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: callout.xsl; verbatim.xsl</code></p><pre class="screen"><span class="commit-message">Restore <a href="http://docbook.org/tdg5/en/html/programlisting.html"><code class="sgmltag-element">programlisting</code></a> to use &lt;pre&gt; instead of &lt;div&gt; and instead
+wrap <a href="http://docbook.org/tdg5/en/html/callout.html"><code class="sgmltag-element">callout</code></a> img elements in &lt;span&gt; to make valid HTML.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: graphics.xsl</code></p><pre class="screen"><span class="commit-message">Turn off img longdesc attribute because not supported by browsers.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: footnote.xsl</code></p><pre class="screen"><span class="commit-message">Move square brackets and &lt;sup&gt; inside &lt;a&gt; element for <a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a>
+marks to fix display problems in some browsers.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Add new params <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/html.script.html"><em class="parameter"><code>html.script</code></em></a> and <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/html.script.type.html"><em class="parameter"><code>html.script.type</code></em></a> to support
+Javascript references.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: chunk-common.xsl; chunktoc.xsl; titlepage.xsl; chunker.xsl; chunk-code.xsl&#8943;</code></p><pre class="screen"><span class="commit-message">Add support for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/chunked.filename.prefix.html"><em class="parameter"><code>chunked.filename.prefix</code></em></a> param.
+Make sure <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/base.dir.html"><em class="parameter"><code>base.dir</code></em></a> value has a trailing slash in
+the chunk.base.dir internal param used by the templates.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: formal.xsl; htmltbl.xsl</code></p><pre class="screen"><span class="commit-message">Now handles <a href="http://docbook.org/tdg5/en/html/caption.html"><code class="sgmltag-element">caption</code></a> in html markup <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> like <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>,
+so formal.object.title is used with all its features, including 
+formatting and placement.
+Added htmlTable.with.caption template to handle the wrapper, and
+left htmlTable template unchanged.
+Now <a href="http://docbook.org/tdg5/en/html/caption.html"><code class="sgmltag-element">caption</code></a> template in mode="htmlTable" does nothing, because
+<a href="http://docbook.org/tdg5/en/html/caption.html"><code class="sgmltag-element">caption</code></a> handled by formal.object.title template.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: html.xsl</code></p><pre class="screen"><span class="commit-message">Turn off generating the <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> attribute for block and hierarchical elements.
+Should only be used for inline elements, usually using the <a href="http://docbook.org/tdg5/en/html/alt.html"><code class="sgmltag-element">alt</code></a> element.
+Also used for links to show the target <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: lists.xsl</code></p><pre class="screen"><span class="commit-message">The spacing="compact" attribute on lists in HTML no longer outputs compact="compact"
+(or just "compact" in the case of Saxon 6), since that attribute is
+deprecated and improperly supported.  Instead, the output uses a 
+multiple class attribute such as class="<a href="http://docbook.org/tdg5/en/html/orderedlist.html"><code class="sgmltag-element">orderedlist</code></a> compact".
+Use CSS to style such lists without margin above.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: graphics.xsl</code></p><pre class="screen"><span class="commit-message">Allow selection by role for multiple <a href="http://docbook.org/tdg5/en/html/imageobject.html"><code class="sgmltag-element">imageobject</code></a> elements
+within an <a href="http://docbook.org/tdg5/en/html/imageobjectco.html"><code class="sgmltag-element">imageobjectco</code></a>, which since Docbook 5 allows multiple imageobjects.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: pi.xsl</code></p><pre class="screen"><span class="commit-message">Improve doc descriptions of dbhtml <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a> and dir.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: autoidx.xsl</code></p><pre class="screen"><span class="commit-message">Add <a href="http://docbook.org/tdg5/en/html/setindex.html"><code class="sgmltag-element">setindex</code></a> to context param in mode="<a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a>" to better 
+support <a href="http://docbook.org/tdg5/en/html/setindex.html"><code class="sgmltag-element">setindex</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: autotoc.xsl</code></p><pre class="screen"><span class="commit-message">Support set as child of set in set.toc template.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: qandaset.xsl</code></p><pre class="screen"><span class="commit-message">Change <a href="http://docbook.org/tdg5/en/html/question.html"><code class="sgmltag-element">question</code></a> and <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> templates to replace hard-coded
+class="local-name()" with mode="class.attribute" to support customization
+of class values.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Norman Walsh: chunktoc.xsl</code></p><pre class="screen"><span class="commit-message">Separate <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a> appendixes from <a href="http://docbook.org/tdg5/en/html/article.html"><code class="sgmltag-element">article</code></a> appendixes (so that they can be customized independently)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: graphics.xsl</code></p><pre class="screen"><span class="commit-message">Added condition to prevent "Failed to interpret image" messages (SVG is not supported 
+by the graphic size extension).</span></pre>
+</li></ul></div>
+</div>
+
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_Epub"></a>Epub</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">epub</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Replace $base.dir with $chunk.base.dir to ensure trailing slash in place.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_HTMLHelp"></a>HTMLHelp</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">htmlhelp</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: htmlhelp-common.xsl</code></p><pre class="screen"><span class="commit-message">Change $base.dir to $chunk.base.dir to ensure trailing slash in place.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_Eclipse"></a>Eclipse</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">eclipse</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: eclipse.xsl; eclipse3.xsl</code></p><pre class="screen"><span class="commit-message">Use $chunk.base.dir instead of $base.dir to ensure trailing slash is in place.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_"></a>JavaHelp</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">javahelp</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: javahelp.xsl</code></p><pre class="screen"><span class="commit-message">Change $base.dir to $chunk.base.dir to ensure trailing slash is present.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: javahelp.xsl</code></p><pre class="screen"><span class="commit-message">Replaced empty header.navigation and footer.navigation templates with parameter <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/suppress.navigation.html"><em class="parameter"><code>suppress.navigation</code></em></a>=1,
+which simplifies customization. See bug #3310904.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_Webhelp"></a>Webhelp</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">webhelp</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">David Cramer: template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">Webhelp: Adding print-only css rules</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/common/main.js</code></p><pre class="screen"><span class="commit-message">Webhelp: Arun's fix for bug where heading was partially hidden by header in some situations.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp-common.xsl</code></p><pre class="screen"><span class="commit-message">Webhelp: turn off autolabeling by default</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Webhelp: Import xhtml base stylesheets</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">Link</code></a> to the DocBook <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a> docs from the webhelp readme</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp-common.xsl</code></p><pre class="screen"><span class="commit-message">Webhelp: Use gentext value for noscript warning</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: Makefile</code></p><pre class="screen"><span class="commit-message">Webhelp: Delete tempfile after DocBook xsl build</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Webhelp: moving parameters into the standard location so they will be part of the parameter <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a></span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl; xsl/webhelp-common.xsl</code></p><pre class="screen"><span class="commit-message">Webhelp: moving parameters into the standard location so they will be part of the parameter <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a></span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/common/main.js</code></p><pre class="screen"><span class="commit-message">Webhelp: tweaking scrolldown offset for anchors</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: docsrc/images; docsrc/images/sample.jpg; docsrc/readme.xml; template/content&#8943;</code></p><pre class="screen"><span class="commit-message">Webhelp: updating docs. Ant version, install instructions, handling of images.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Patch from Arun Bharadwaj to display message if JavaScript is disabled</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/content/search/nwSearchFnt.js</code></p><pre class="screen"><span class="commit-message">Patch from Arun Bharadwaj to strip quotes from search query strings</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Add basic support for new &lt;topic&gt; element.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Put back old extensibility point.
+
+Guys, please don't remove existing extensibility points like named templates, it will break existing customizations.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Moving webhelp gentext strings into a context</span></pre>
+</li><li class="listitem">
+<p><code class="literal">tom_schr: param.ent</code></p><pre class="screen"><span class="commit-message">Disabled branding and brandname entities for the time being</span></pre>
+</li><li class="listitem">
+<p><code class="literal">tom_schr: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Prepared WebHelp <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a> documentation :)
+Not clear about parameters brandname and branding: Should they renamed
+to "webhelp.branding" and "webhelp.brandname"?
+Currently, docsrc/reference.xml contains only a comment for the WebHelp
+ref doc to be non-intrusive.
+Idea is to enable it when it is ready</span></pre>
+</li><li class="listitem">
+<p><code class="literal">tom_schr: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Moved language specific of WebHelp to gentext/locale/ as discussed with
+Stefan following the "minimal intrusive approach". :)
+In the long run, maybe moving the text into a context, not sure.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">Webhelp: Lower the minimum width of content pane</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: xsl/webhelp.xsl; template/common/main.js</code></p><pre class="screen"><span class="commit-message">If an user moved to another page by clicking on a <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>, and then clicked on #searchDiv,
+search should be performed if the cookie textToSearch is not empty.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Webhelp: Left align titles in nav header. Display  for all but the topmost page</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/content/search/stemmers/en_stemmer.js; docsrc/xinclude-test.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: Cleanup related to en_stemmer.js changes</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">Webhelp: Don't put borders around <a href="http://docbook.org/tdg5/en/html/qandaset.html"><code class="sgmltag-element">qandaset</code></a> list</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/common/main.js</code></p><pre class="screen"><span class="commit-message">Webhelp: Avoid unnecessary scroll ups when <a href="http://docbook.org/tdg5/en/html/anchor.html"><code class="sgmltag-element">anchor</code></a> is clicked on</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: build.properties</code></p><pre class="screen"><span class="commit-message">Webhelp: Show footer nav by default</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: build.properties; build.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: Support setting <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/suppress.footer.navigation.html"><em class="parameter"><code>suppress.footer.navigation</code></em></a> from build.properties</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: build.properties; build.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: Support <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/admon.graphics.html"><em class="parameter"><code>admon.graphics</code></em></a> param in build.properties</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: docsrc/xinclude-test.xml; docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: Adding xinclude example to the demo/readme doc</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">Webhelp: Remove border around <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> used to format <a href="http://docbook.org/tdg5/en/html/callout.html"><code class="sgmltag-element">callout</code></a> list</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl; template/common/images/admon/tip.png; template/common/image&#8943;</code></p><pre class="screen"><span class="commit-message">Webhelp: Support admon graphics (still off by default)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl; template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">Webhelp: Turn on navfooter and fix related css</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Webhelp: Fix error about undeclared doc.title param</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: Adding some test search terms to the readme</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/content/search/stemmers/en_stemmer.js</code></p><pre class="screen"><span class="commit-message">Handle exceptional cases listed in the Porter 2 stemming algo</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/content/search/stemmers/en_stemmer.js</code></p><pre class="screen"><span class="commit-message">Webhelp: adding special case word 'say' to en js stemmer</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/content/search/stemmers/en_stemmer.js</code></p><pre class="screen"><span class="commit-message">Webhelp: Refine stemming of terms that end in (only stem if there's a consonant before the -y)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/content/search/stemmers/en_stemmer.js; template/content/search/nwSe&#8943;</code></p><pre class="screen"><span class="commit-message">Webhelp: fixed bug where words like key, day, and nucleus, were not found due to differences in the way the client stemmer and indexer stemmed words</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: build.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: Support xinclude and two-pass profiling in build.xml</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Fix bad <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> to default topic.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">Automatically limit the size of the search description to something 140 characters</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">removing outline in 'contents' and 'search' buttons that is visible when clicked. tabindex for <a href="http://docbook.org/tdg5/en/html/sidebar.html"><code class="sgmltag-element">SIDEBAR</code></a> button.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: xsl/webhelp.xsl; build.xml</code></p><pre class="screen"><span class="commit-message">Webhelp ant script changes - HTML transformation support for WebHelp - Uses Tagsoup for parsing the bad html.
+tagsoup-1.2.1.jar is added to trunk/xsl-webhelpindexer/lib/</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">proper support for saxon xhtml transformation.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/common/images/callouts/10.png; template/common/images/callouts/11.png; t&#8943;</code></p><pre class="screen"><span class="commit-message">webhelp - adding callouts</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: xsl/webhelp.xsl; template/common/main.js; template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">webhelp - animations for show/hide <a href="http://docbook.org/tdg5/en/html/sidebar.html"><code class="sgmltag-element">Sidebar</code></a></span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: build.properties</code></p><pre class="screen"><span class="commit-message">commenting about brand and brandname</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: Makefile</code></p><pre class="screen"><span class="commit-message">parameterized MAKE for webhelp</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css; build.properties; build.xml</code></p><pre class="screen"><span class="commit-message">webhelp xsl customization - logo</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/content/search/nwSearchFnt.js</code></p><pre class="screen"><span class="commit-message">remove some JS warninings</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/content/search/nwSearchFnt.js</code></p><pre class="screen"><span class="commit-message">Fix for missing "No results found for..." bug</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">commented about the importance of the order of css contents. Order is <a href="http://docbook.org/tdg5/en/html/important.html"><code class="sgmltag-element">important</code></a> between the in-html-file css and the linked css files. Some css declarations in jquery-ui-1.8.2.custom.css are over-ridden. If that's a concern, just remove the additional css contents inside these default jquery css files. I thought of keeping them intact for easier maintenance.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: xsl/webhelp.xsl; template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">Minor cleanup, added extensibility hook, some styling moved into CSS for easier customization</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/content/search/nwSearchFnt.js</code></p><pre class="screen"><span class="commit-message">Removing onclick that came from Oxygen's dita stuff</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">webhelp - documenting about features</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">webhelp search text box</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">adding header background image</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: xsl/webhelp.xsl; template/common/images/header-bg.png</code></p><pre class="screen"><span class="commit-message">new header background image</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">fix left navigation</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">some css</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: build.xml</code></p><pre class="screen"><span class="commit-message">Adding html.extension property</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/common/css/positioning.css; build.properties; build.xml</code></p><pre class="screen"><span class="commit-message">webhelp - Adding enable.stemming, toc.file build properties</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">Make the webhelp banner slightly larger.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/common/main.js; template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">Adjust colors and positioning of header and search/<a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> tabs</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Only put doc <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> in header</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/common/css/positioning.css; template/common/images/main_bg_fade.png</code></p><pre class="screen"><span class="commit-message">Adjusting default color of the header</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">adjustments to header <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>. Now output in Opera looks good.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/common/images/sidebar.png; template/content/search/punctuation.props; te&#8943;</code></p><pre class="screen"><span class="commit-message">deleting svn:executable flag from webhelp files</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css; template/common/images/sear&#8943;</code></p><pre class="screen"><span class="commit-message">Customized the left navagation headers; Contents and Search.
+Adding custom css for the current redmond ui of jquery-ui. These override jquery-ui's default css customizations. These are supposed to take precedence.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">typo fix</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/common/images/next-arrow.png; xsl/webhelp.xsl; template/common/main.js; &#8943;</code></p><pre class="screen"><span class="commit-message">UI improvements. 
+	Moved search highligher to search tab.
+	Added nice icons for navigation buttons etc.
+	Removed footer navigation
+	Corrected tree colorings
+	Overall, some css magic</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">Added <a href="http://docbook.org/tdg5/en/html/listitem.html"><code class="sgmltag-element">listitem</code></a> thinking SyncRO Soft for their contributions.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: build.xml</code></p><pre class="screen"><span class="commit-message">support for default classpath for Gentoo Linux</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">webhelp - some updates to the documentation about search</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/common/css/positioning.css</code></p><pre class="screen"><span class="commit-message">Fix for issue 'Keep "search" &amp; "contents" titles always visible in webhelp - ID: 3403438'</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/common/images/starsSmall.png</code></p><pre class="screen"><span class="commit-message">Changed icons used to show search weightings from stars to boxes so they won't look like user ratings</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl; template/common/main.js; template/common/images/starsSmall.&#8943;</code></p><pre class="screen"><span class="commit-message">Merged Oxygen webhelp improvements (search weightings etc) into trunk: -r9031:9039</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">webhelp documentation - search indexing, faq</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">update webhelp documentation</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Fixed bug where <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/webhelp.default.topic.html"><em class="parameter"><code>webhelp.default.topic</code></em></a> was not being used if it was set</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl; template/content/search/nwSearchFnt.js</code></p><pre class="screen"><span class="commit-message">Localize string in nwSearchFnt.js file</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Added tabindex attributes to make tab order in UI more logical in webhelp.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/common/main.js</code></p><pre class="screen"><span class="commit-message">Fixed bug where anchors in pages landed beneath the banner.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Added more comments to the xsl/webhelp/xsl/webhelp.xsl file. Removed some clutter.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: template/common/main.js</code></p><pre class="screen"><span class="commit-message">Fixed problem reported in IE 8. See tracker id # 373747.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Addressed tracker #3247166 by removing hard-coded <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a> to ch01.html.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: build.xml</code></p><pre class="screen"><span class="commit-message">Changed the webhelp build.xml to reflect the changes to xsl-webhelpindexer.
+Added classpaths for xercesImpl and xml-api jars to the indexer. Paths added for *nix environments, need to look at how the current system behaves in Windows. Discussion: http://lists.oasis-open.org/archives/docbook-apps/201011/msg00116.html</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/common/images/loading.gif; template/common/jquery/treeview/jquery.treevi&#8943;</code></p><pre class="screen"><span class="commit-message">webhelp: Removing some unnecessary JQuery JS files</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/common/main.js</code></p><pre class="screen"><span class="commit-message">webhelp: Usability improvement - when click on a node in the <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">TOC</code></a> tree, the child nodes will auto populate now.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Added google translated localizations for Japanese, German, French, and Chinese. The translations might not be pretty accurate. 
+Better translations are appreciated.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: docsrc/readme.xml; template/content/images; template/content/images/sample.jpg</code></p><pre class="screen"><span class="commit-message">Added documentation for how to add images to WebHelp</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Added more customization hooks
+Search code output only when search tab is active
+Added cs localization</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: xsl/webhelp.xsl</code></p><pre class="screen"><span class="commit-message">Added parameter <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/webhelp.common.dir.html"><em class="parameter"><code>webhelp.common.dir</code></em></a> for specifying location of common files (JS+CSS)
+Added hooks for adding additional user defined tabs</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_Params"></a>Params</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">params</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">David Cramer: webhelp.indexer.language.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: Fixing list of supported languages</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: webhelp.indexer.language.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: Correct language code in docs for Chinese</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: admon.graphics.extension.xml</code></p><pre class="screen"><span class="commit-message">Added list of graphics formats.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: passivetex.extensions.xml</code></p><pre class="screen"><span class="commit-message">Updated <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">tom_schr: webhelp.indexer.language.xml; webhelp.default.topic.xml; webhelp.tree.cookie.id.&#8943;</code></p><pre class="screen"><span class="commit-message">Prepared WebHelp <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a> documentation :)
+Not clear about parameters brandname and branding: Should they renamed
+to "webhelp.branding" and "webhelp.brandname"?
+Currently, docsrc/reference.xml contains only a comment for the WebHelp
+ref doc to be non-intrusive.
+Idea is to enable it when it is ready</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: glossary.collection.xml</code></p><pre class="screen"><span class="commit-message">Add <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a> about relative paths.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: para.properties.xml</code></p><pre class="screen"><span class="commit-message">Special attribute-set for <a href="http://docbook.org/tdg5/en/html/para.html"><code class="sgmltag-element">para</code></a> only.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: table.caption.properties.xml</code></p><pre class="screen"><span class="commit-message">To format <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> captions.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: html.script.type.xml; html.script.xml</code></p><pre class="screen"><span class="commit-message">Add support for specifying javascript references like css references.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: body.margin.outer.xml; region.outer.extent.xml; body.margin.inner.xml; reg&#8943;</code></p><pre class="screen"><span class="commit-message">Add support for side regions in FO output.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: chunked.filename.prefix.xml</code></p><pre class="screen"><span class="commit-message">New param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/chunked.filename.prefix.html"><em class="parameter"><code>chunked.filename.prefix</code></em></a> to separate any such prefix from
+the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/base.dir.html"><em class="parameter"><code>base.dir</code></em></a> param, which helps fix bug 3087359.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: generate.consistent.ids.xml</code></p><pre class="screen"><span class="commit-message">New param to support replacing generate-id() with xsl:number
+for more consistent id values.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: task.properties.xml</code></p><pre class="screen"><span class="commit-message">Allow <a href="http://docbook.org/tdg5/en/html/task.html"><code class="sgmltag-element">task</code></a> to be customized more easily.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: calloutlist.properties.xml; callout.properties.xml</code></p><pre class="screen"><span class="commit-message">Support better customization of <a href="http://docbook.org/tdg5/en/html/callout.html"><code class="sgmltag-element">callout</code></a> lists.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: callout.unicode.start.character.xml</code></p><pre class="screen"><span class="commit-message">Added support for alternative circled numbers</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: example.properties.xml</code></p><pre class="screen"><span class="commit-message">Made <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/example.properties.html"><em class="parameter"><code>example.properties</code></em></a> use keep-together='auto' like table.properies to avoid problems where example/<a href="http://docbook.org/tdg5/en/html/programlisting.html"><code class="sgmltag-element">programlisting</code></a> takes more than one page</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: graphicsize.extension.xml</code></p><pre class="screen"><span class="commit-message">Added <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a> about supported image formats.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_Highlighting"></a>Highlighting</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">highlighting</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Jirka Kosek: csharp-hl.xml</code></p><pre class="screen"><span class="commit-message">Added LINQ keywords</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: delphi-hl.xml</code></p><pre class="screen"><span class="commit-message">Additional keywords from Yuri Zhilin</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_Profiling"></a>Profiling</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">profiling</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">David Cramer: profile-mode.xsl</code></p><pre class="screen"><span class="commit-message">When profile.* params only consist of space characters, then ignore them.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_Lib"></a>Lib</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">lib</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: lib.xweb</code></p><pre class="screen"><span class="commit-message">Added two utility templates to make lib.xsl work
+without <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a> to other modules since it is used
+that way with profiling/xsl2profile.xsl.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: lib.xweb</code></p><pre class="screen"><span class="commit-message">Fix trim.common.uri.paths to first resolve any ../ in
+the paths.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_Template"></a>Template</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">template</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Jirka Kosek: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Titlepage mechanism is now namespace aware to support XHTML. Please note that when generating titlepage template stylesheets you have to pass FO or XHTML namespace inside ns parameter. For HTML parameter should be empty.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_Extensions"></a>Extensions</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">extensions</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">kasunbg: Makefile</code></p><pre class="screen"><span class="commit-message">webhelp - Adding enable.stemming, toc.file build properties</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: Makefile</code></p><pre class="screen"><span class="commit-message">Attempt to convince Makefile that webhelpindexer is dirty</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.77_XSL-Saxon"></a>XSL-Saxon</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">xsl-saxon</code> code
+            since the 1.76.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: src/com/nwalsh/saxon/Verbatim.java; src/com/nwalsh/saxon/FormatGraphicCal&#8943;</code></p><pre class="screen"><span class="commit-message">Added fixes to ensure that generated XHTML markup for callouts is in the proper namespace.</span></pre>
+</li></ul></div>
+</div>
+
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.77.1"></a>Release Notes: 1.77.1</h2></div></div></div>
+
+<p>The following is a list of changes that have been made
+        since the 1.77.0 release.</p>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="Vsnapshot_9396_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">fo</code> code
+            since the 1.77.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: block.xsl</code></p><pre class="screen"><span class="commit-message">In <a href="http://docbook.org/tdg5/en/html/sidebar.html"><code class="sgmltag-element">sidebar</code></a>, turn off space before first <a href="http://docbook.org/tdg5/en/html/para.html"><code class="sgmltag-element">para</code></a> if there is no <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: math.xsl</code></p><pre class="screen"><span class="commit-message">Restored templates for mml:* elements that were accidentally deleted.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="Vsnapshot_9396_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">html</code> code
+            since the 1.77.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: sections.xsl</code></p><pre class="screen"><span class="commit-message">Use $div.element variable in place of div to support html5 <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> element.
+output</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: autoidx.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug 3528673, missing "separator" param on template with
+match="<a href="http://docbook.org/tdg5/en/html/indexterm.html"><code class="sgmltag-element">indexterm</code></a>" mode="<a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a>".  That param is passed 
+for endofrange processing to output the range separator.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="Vsnapshot_9396_Roundtrip"></a>Roundtrip</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">roundtrip</code> code
+            since the 1.77.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: dbk2ooo.xsl; dbk2pages.xsl; dbk2wordml.xsl; dbk2wp.xsl</code></p><pre class="screen"><span class="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a>.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="Vsnapshot_9396_Slides"></a>Slides</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">slides</code> code
+            since the 1.77.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: html/slides-common.xsl</code></p><pre class="screen"><span class="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a>.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="Vsnapshot_9396_Website"></a>Website</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">website</code> code
+            since the 1.77.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: website-common.xsl</code></p><pre class="screen"><span class="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a>.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="Vsnapshot_9396_Webhelp"></a>Webhelp</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">webhelp</code> code
+            since the 1.77.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">kasunbg: docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">updated webhelp documentation</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/content/search/nwSearchFnt.js; xsl/webhelp-common.xsl</code></p><pre class="screen"><span class="commit-message">Removed the script htmlFileList.js since it's content is in htmlFileInfoList.js</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xsl/webhelp-common.xsl</code></p><pre class="screen"><span class="commit-message">In the &lt;h1&gt; output, replace call to 'get.doc.title' with
+mode="title.markup" because get.doc.title returns only
+the string value of the <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>, losing any markup such
+as &lt;<a href="http://docbook.org/tdg5/en/html/trademark.html"><code class="sgmltag-element">trademark</code></a>&gt; or &lt;<a href="http://docbook.org/tdg5/en/html/superscript.html"><code class="sgmltag-element">superscript</code></a>&gt;.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">kasunbg: template/common/css/positioning.css; template/content/search/nwSearchFnt.js</code></p><pre class="screen"><span class="commit-message">Remove unnecessary bits of code from webhelp</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: docsrc/readme.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: Minor edits to the readme</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xsl/webhelp.xsl; xsl/titlepage.templates.xsl; xsl/titlepage.templates.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: Suppress abstracts from titlepages. These are used to create the search result summary sentence and should not be shown</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: build.xml</code></p><pre class="screen"><span class="commit-message">Webhelp: calculate path to profile.xsl from main build.xml file</span></pre>
+</li></ul></div>
+</div>
+
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.76.1"></a>Release Notes: 1.76.1</h2></div></div></div>
+
+<p>The following is a list of changes that have been made
+        since the 1.76.0 release.</p>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.76.1_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">fo</code> code
+            since the 1.76.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: docbook.xsl; xref.xsl; fop1.xsl</code></p><pre class="screen"><span class="commit-message">Apply patch to support named destination in fop1.xsl, per Sourceforge
+bug report #3029845.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.76.1_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the <code class="filename">html</code> code since the 1.76.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Keith Fahlgren: highlight.xsl</code></p><pre class="screen"><span class="commit-message">Implementing handling for &lt;b&gt; and &lt;i&gt;: transform to &lt;strong&gt; and &lt;em&gt; for XHTML outputs and do not use in the highliting output (per Mauritz Jeanson)</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.76.1_Params"></a>Params</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">params</code> code
+            since the 1.76.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: draft.mode.xml</code></p><pre class="screen"><span class="commit-message">Change default for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/draft.mode.html"><em class="parameter"><code>draft.mode</code></em></a> to 'no'.</span></pre>
+</li></ul></div>
+</div>
+
+
+</div>
+  <div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.76.0"></a>Release Notes: 1.76.0</h2></div></div></div>
+    
+<p>This release includes important bug fixes and adds the following
+significant feature changes:</p>
+<div class="variablelist"><dl class="variablelist"><dt><span class="term">Webhelp</span></dt><dd><p>A new browser-based, cross-platform help format with full-text search and other features typically found in help systems. See <code class="filename">webhelp/docs/content/ch01.html</code> for more information and a demo. </p></dd><dt><span class="term">Gentext</span></dt><dd><p>Many updates and additions to translation/locales thanks to Red Hat, the Fedora Project, and other contributors.</p></dd><dt><span class="term">Common</span></dt><dd><p>Faster localization support, as language files are loaded on demand.</p></dd><dt><span class="term">FO</span></dt><dd><p>Support for SVG content in <a href="http://docbook.org/tdg5/en/html/imagedata.html"><code class="sgmltag-element">imagedata</code></a> added.</p></dd><dt><span class="term">HTML</span></dt><dd><p>Output improved when using '<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/make.clean.html.html"><em class="parameter"><code>make.clean.html</code></em></a>' and a stock CSS file is now provided.</p></dd><dt><span class="term">EPUB</span></dt><dd><p>A number of improvements to NCX, cover and image selection, and XHTML 1.1 element choices</p></dd></dl></div>
+
+    <p>The following is a list of changes that have been made since the 1.75.2 release.</p>
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.76.0_Gentext"></a>Gentext</h3></div></div></div>
+      
+      <p>The following changes have been made to the <code class="filename">gentext</code> code since the 1.75.2 release.</p>
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>
+            <code class="literal">rlandmann: locale/fa.xml</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Update to Persian translation from the Fedora Project</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">rlandmann: locale/nds.xml</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Locale for Low German</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: locale/ka.xml; Makefile</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Added support for Georgian based on patch #2917147.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">rlandmann: locale/nl.xml; locale/ja.xml</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Updated translations from Red Hat and the Fedora Project</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">rlandmann: locale/bs.xml; locale/ru.xml; locale/hr.xml</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Updated locales from Red Hat and the Fedora Project</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">rlandmann: locale/pt.xml; locale/cs.xml; locale/es.xml; locale/bg.xml; locale/nl.xml; loca&#8943;</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Updated translations from Red Hat and the Fedora Project</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">rlandmann: locale/as.xml; locale/bn_IN.xml; locale/ast.xml; locale/ml.xml; locale/te.xml; &#8943;</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">New translations from Red Hat and the Fedora Project</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">rlandmann: locale/pt.xml; locale/ca.xml; locale/da.xml; locale/sr.xml; locale/ru.xml; loca&#8943;</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Updated translations from Red Hat and the Fedora Project</span>
+          </pre>
+        </li></ul></div>
+    </div>
+    
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.76.0_Common"></a>Common</h3></div></div></div>
+      
+      <p>The following changes have been made to the <code class="filename">common</code> code since the 1.75.2 release.</p>
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: common.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fixed bug in output-orderedlist-starting-number template (@startingnumber did not work for FO).</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: gentext.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Added fix to catch ID also of descendants of <a href="http://docbook.org/tdg5/en/html/listitem.html"><code class="sgmltag-element">listitem</code></a>. Closes bug #2955077.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Jirka Kosek: l10n.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Stripped down, faster version of gentext.template is used when there is no localization customization.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: stripns.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Added fix that preserves <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>/@role (makes links in the <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a> documentation
+with @role="tcg" work).</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: l10n.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fixed bugs related to manpages and L10n.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Jirka Kosek: entities.ent; autoidx-kosek.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Jirka Kosek: l10n.xsl; l10n.dtd; l10n.xml; autoidx-kosek.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Refactored localization support. Language files are loaded on demand. Speedup is about 30%.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Jirka Kosek: l10n.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Added xsl:keys for improved performance of localization texts look up. Performance gain around 15%.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: titles.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fixed bug #2912677 (error with <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> in <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>).</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: olink.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug in xrefstyle "<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>" handling introduced with 
+the 'insert.targetdb.data' template.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: gentext.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug in <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to <a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a> without <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> to use context="xref-number" instead
+of "xref-number-and-title".</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: labels.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Number all equations in one sequence, with or without <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: entities.ent</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug #2896909 where duplicate @sortas on indexterms caused 
+some indexterms to drop out of <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a>.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: stripns.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Expand the "Stripping namespace ..." message to advise users to
+use the namespaced stylesheets.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: stripns.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">need a local version of $exsl.node.set.available variable because
+this module imported many places.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: olink.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Added /node() to the select expression that is used to compute the <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> text
+so that no &lt;ttl&gt; elements end up in the output. Closes bug #2830119.</span>
+          </pre>
+        </li></ul></div>
+    </div>
+    
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.76.0_FO"></a>FO</h3></div></div></div>
+      
+      <p>The following changes have been made to the
+            <code class="filename">fo</code> code
+            since the 1.75.2 release.</p>
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: table.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug 2979166 able - Attribute @rowheader not working</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: inline.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Improved <a href="http://docbook.org/tdg5/en/html/glossterm.html"><code class="sgmltag-element">glossterm</code></a> auto-linking by using keys. The old code was inefficient when processing documents
+with many inline glossterms.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: titlepage.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug 2805530 <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a>/<a href="http://docbook.org/tdg5/en/html/orgname.html"><code class="sgmltag-element">orgname</code></a> not appearing on <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> page.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: graphics.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Added support for SVG content in <a href="http://docbook.org/tdg5/en/html/imagedata.html"><code class="sgmltag-element">imagedata</code></a> (inspired by patch #2909154).</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: table.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Removed superfluous test used when computing column-width. Closes bug #3000898.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: inline.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Added missing &lt;xsl:call-template name="<a href="http://docbook.org/tdg5/en/html/anchor.html"><code class="sgmltag-element">anchor</code></a>"/&gt;. Closes bug #2998567.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: lists.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Added table-layout="fixed" on <a href="http://docbook.org/tdg5/en/html/segmentedlist.html"><code class="sgmltag-element">segmentedlist</code></a> <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> (required by XSL spec when  proportional-column-width() is used).</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Jirka Kosek: autoidx-kosek.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Jirka Kosek: index.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: xref.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug in <a href="http://docbook.org/tdg5/en/html/olink.html"><code class="sgmltag-element">olink</code></a> template when an <a href="http://docbook.org/tdg5/en/html/olink.html"><code class="sgmltag-element">olink</code></a> has an id.
+Add warning message with id value when trying to <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>
+to an element that has no generated text.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: refentry.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fixed bug #2930968 (<a href="http://docbook.org/tdg5/en/html/indexterm.html"><code class="sgmltag-element">indexterm</code></a> in <a href="http://docbook.org/tdg5/en/html/refmeta.html"><code class="sgmltag-element">refmeta</code></a> not handled correctly).</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: block.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">fix bug 2949567 <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> in <a href="http://docbook.org/tdg5/en/html/revhistory.html"><code class="sgmltag-element">revhistory</code></a> breaks FO transform.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: glossary.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Output id attributes on <a href="http://docbook.org/tdg5/en/html/glossdiv.html"><code class="sgmltag-element">glossdiv</code></a> blocks so they can be added to
+xrefs or <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">TOC</code></a>.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Jirka Kosek: xref.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Enabled hyphenation of URLs when ulink content is the same as <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> target</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: table.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Apply patch to turn off <a href="http://docbook.org/tdg5/en/html/row.html"><code class="sgmltag-element">row</code></a> recursion if no @morerows attributes present.
+This will enable very large tables without <a href="http://docbook.org/tdg5/en/html/row.html"><code class="sgmltag-element">row</code></a> spanning to 
+process without running into recursion limits.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: formal.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Format <a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a> without <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> using <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> layout with <a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a> number
+next to the <a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a>.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: param.xweb; param.ent</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Add <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/equation.number.properties.html"><em class="parameter"><code>equation.number.properties</code></em></a>.</span>
+          </pre>
+        </li></ul></div>
+    </div>
+    
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.76.0_HTML"></a>HTML</h3></div></div></div>
+      
+      <p>The following changes have been made to the
+            <code class="filename">html</code> code
+            since the 1.75.2 release.</p>
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: block.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Modified <a href="http://docbook.org/tdg5/en/html/acknowledgements.html"><code class="sgmltag-element">acknowledgements</code></a> template to avoid invalid output (&lt;p&gt; in &lt;p&gt;).</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: titlepage.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Added default <a href="http://docbook.org/tdg5/en/html/sidebar.html"><code class="sgmltag-element">sidebar</code></a> attribute-sets.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: table.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug 2979166 able - Attribute @rowheader not working</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: footnote.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug 3033191 footnotes in html tables.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: inline.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Improved <a href="http://docbook.org/tdg5/en/html/glossterm.html"><code class="sgmltag-element">glossterm</code></a> auto-linking by using keys. The old code was inefficient when processing documents
+with many inline glossterms.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: docbook.css.xml; verbatim.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug 2844927 Validity error for <a href="http://docbook.org/tdg5/en/html/callout.html"><code class="sgmltag-element">callout</code></a> bugs.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: formal.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Convert formal.object.heading to respect <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/make.clean.html.html"><em class="parameter"><code>make.clean.html</code></em></a> param.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: titlepage.templates.xml; block.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug 2840768 <a href="http://docbook.org/tdg5/en/html/sidebar.html"><code class="sgmltag-element">sidebar</code></a> without <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> inserts empty b <a href="http://docbook.org/tdg5/en/html/tag.html"><code class="sgmltag-element">tag</code></a>.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: docbook.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Moved the template that outputs &lt;base&gt; so that the base URI also applies to relative CSS paths that come later.
+See patch #2896121.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Jirka Kosek: autoidx-kosek.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: chunk-code.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">fix bug 2948363 generated <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a> for <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> not unique, when
+used in a set.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: component.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix missing "<a href="http://docbook.org/tdg5/en/html/chapter.html"><code class="sgmltag-element">Chapter</code></a> n" <a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a> when use <a href="http://docbook.org/tdg5/en/html/chapter.html"><code class="sgmltag-element">chapter</code></a>/<a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: table.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message"><a href="http://docbook.org/tdg5/en/html/row.html"><code class="sgmltag-element">Row</code></a> recursion turned off if no @morerows attributes in the <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.
+This will prevent failure on long <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> (with no @morerows) due
+to excessive depth of recursion.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: autotoc.xsl; docbook.css.xml</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Support <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/make.clean.html.html"><em class="parameter"><code>make.clean.html</code></em></a> in autotoc.xsl.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: docbook.css.xml; block.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Add support for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/make.clean.html.html"><em class="parameter"><code>make.clean.html</code></em></a> setting in block elements.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: docbook.css.xml</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Stock CSS styles for DocBook HTML output when '<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/make.clean.html.html"><em class="parameter"><code>make.clean.html</code></em></a>' is non-zero.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: html.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Add templates for generating CSS files and links to them.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: param.xweb</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bugs in new entity references.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: chunk-common.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">List of Equations now includes on equations with titles.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: table.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">If a <a href="http://docbook.org/tdg5/en/html/colspec.html"><code class="sgmltag-element">colspec</code></a> has a colname attribute, add it to the HTML <a href="http://docbook.org/tdg5/en/html/col.html"><code class="sgmltag-element">col</code></a>
+element as a class attribute so it can be styled.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: formal.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug 2825842 where <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> footnotes not appearing in HTML-coded <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: chunktoc.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug #2834826 where <a href="http://docbook.org/tdg5/en/html/appendix.html"><code class="sgmltag-element">appendix</code></a> inside part was not chunked as it should be.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: chunktoc.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Added missing namespace declarations. Closes bug #2890069.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: footnote.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Updated the template for <a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a> paras to use the 'paragraph' template. Closes bug #2803739.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Keith Fahlgren: inline.xsl; lists.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Remove &lt;b&gt; and &lt;i&gt; elements "discouraged in favor of style sheets" from
+XHTML, XHTML 1.1 (and therefore EPUB) outputs by changing html2xhtml.xsl.
+
+Fixes bug #2873153: No &lt;b&gt; and &lt;i&gt; tags in XHTML/EPUB
+
+Added regression to EPUB specs:</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: inline.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fixed bug #2844916 (don't output @target if <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/ulink.target.html"><em class="parameter"><code>ulink.target</code></em></a> is empty).</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Keith Fahlgren: autoidx.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix a bug when using <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/index.on.type.html"><em class="parameter"><code>index.on.type</code></em></a>: an '<a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> symbols' <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> was created 
+even if that typed <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> didn't include any symbols (they were in the other types).</span>
+          </pre>
+        </li></ul></div>
+    </div>
+    
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.76.0_Manpages"></a>Manpages</h3></div></div></div>
+      
+      <p>The following changes have been made to the
+            <code class="filename">manpages</code> code
+            since the 1.75.2 release.</p>
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: other.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Modified the write.stubs template so that the <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> directory name is not output twice. Should fix bug #2831602.
+Also ensured that $lang is added to the .so path (when <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.lang.in.name.enabled.html"><em class="parameter"><code>man.output.lang.in.name.enabled</code></em></a>=1).</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: docbook.xsl; other.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fixed bug #2412738 (apostrophe escaping) by applying the submitted patch.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Norman Walsh: block.xsl; endnotes.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug where <a href="http://docbook.org/tdg5/en/html/simpara.html"><code class="sgmltag-element">simpara</code></a> in <a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a> didn't work. Patch by Jonathan Nieder, jrnieder@gmail.com</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">dleidert: lists.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix two indentation issues: In the first case there is no corresponding .RS
+macro (Debian #519438, sf.net 2793873). In the second case an .RS instead of
+the probably intended .sp leads to an indentation bug (Debian #527309,
+sf.net #2642139).</span>
+          </pre>
+        </li></ul></div>
+    </div>
+    
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.76.0_Epub"></a>Epub</h3></div></div></div>
+      
+      <p>The following changes have been made to the
+            <code class="filename">epub</code> code
+            since the 1.75.2 release.</p>
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>
+            <code class="literal">Keith Fahlgren: bin/spec/examples/AMasqueOfDays.epub; docbook.xsl; bin/spec/epub_spec.rb</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Resolve some actual regressions in <a href="http://docbook.org/tdg5/en/html/date.html"><code class="sgmltag-element">date</code></a> output spotted by more recent versions of epubcheck</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Keith Fahlgren: docbook.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Updated <a href="http://docbook.org/tdg5/en/html/mediaobject.html"><code class="sgmltag-element">mediaobject</code></a> selection code that better uses roles (when available); based on contributons by  Glenn McDonald</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Ensure that NCX documents are always outputted with a default namespace
+to prevent problems with the kindlegen machinery</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/partintro.xml; docbook.x&#8943;</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Adding support for partintros with sect2s, 3s, etc</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Keith Fahlgren: docbook.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Adding param to workaround horrific ADE bug with the inability to process &lt;br&gt;</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Keith Fahlgren: docbook.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Add support for <a href="http://docbook.org/tdg5/en/html/authorgroup.html"><code class="sgmltag-element">authorgroup</code></a>/<a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a> in OPF metadata (via Michael Wiedmann)</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Keith Fahlgren: bin/spec/epub_regressions_spec.rb</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Remove &lt;b&gt; and &lt;i&gt; elements "discouraged in favor of style sheets" from
+XHTML, XHTML 1.1 (and therefore EPUB) outputs by changing html2xhtml.xsl.
+
+Fixes bug #2873153: No &lt;b&gt; and &lt;i&gt; tags in XHTML/EPUB
+
+Added regression to EPUB specs:</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Keith Fahlgren: bin/lib/docbook.rb; bin/spec/files/DejaVuSerif-Italic.otf; docbook.xsl; bi&#8943;</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">This resolves bug #2873142, Please add support for multiple embedded fonts
+
+
+If you navigate to a checkout of DocBook-XSL and go to:
+xsl/epub/bin/spec/files
+You can now run the following <a href="http://docbook.org/tdg5/en/html/command.html"><code class="sgmltag-element">command</code></a>:
+
+../../dbtoepub -f DejaVuSerif.otf -f DejaVuSerif-Italic.otf -c test.css
+-s test_cust.xsl orm.book.001.xml
+
+In dbtoepub, the following option can be used more than once:
+-f, --font [OTF FILE] Embed OTF FILE in .epub.
+
+The underlying stylesheet now accepts a comma-separated list of font file
+names rather than just one as the RENAMED epub.embedded.fonts ('s' added).
+
+The runnable EPUB spec now includes:
+- should be valid .epub after including more than one embedded font</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Keith Fahlgren: docbook.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Improve the selection of <a href="http://docbook.org/tdg5/en/html/cover.html"><code class="sgmltag-element">cover</code></a> images when working in DocBook 4.x land (work in progress)</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Improve the quality of the OPF spine regression by ensuring that the spine
+elements for deeply nested refentries are in order and adjacent to their
+opening wrapper XHTML chunk.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl; bin/spec/files/orm.book.00&#8943;</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Add more careful handling of refentries to ensure that they always appear in the opf:spine.
+This was only a problem when refentries were pushed deep into the hierarchy (like inside
+a <a href="http://docbook.org/tdg5/en/html/sect2.html"><code class="sgmltag-element">sect2</code></a>), but presented navigational problems for many reading systems (despite the
+correct NCX references). This may *not* be the best solution, but attacking a better
+chunking strategy for refentries was too big a nut to crack at this time.</span>
+          </pre>
+        </li></ul></div>
+    </div>
+    
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.76.0_Eclipse"></a>Eclipse</h3></div></div></div>
+      
+      <p>The following changes have been made to the
+            <code class="filename">eclipse</code> code
+            since the 1.75.2 release.</p>
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: eclipse3.xsl</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Added a stylesheet module that generates plug-ins conforming to the standard (OSGi-based) Eclipse 3.x 
+architecture. The main difference to the older format is that metadata is stored in a separate 
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/manifest.html"><em class="parameter"><code>manifest</code></em></a> file. The module imports and extends the existing eclipse.xsl module. Based on code 
+contributed in patch #2624668.</span>
+          </pre>
+        </li></ul></div>
+    </div>
+    
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.76.0_Params"></a>Params</h3></div></div></div>
+      
+      <p>The following changes have been made to the
+            <code class="filename">params</code> code
+            since the 1.75.2 release.</p>
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: draft.watermark.image.xml</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Fix bug 2922488 <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/draft.watermark.image.html"><em class="parameter"><code>draft.watermark.image</code></em></a> pointing to web resource.
+Now the value is images/draft.png, and may require customization
+for local resolution.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Mauritz Jeanson: equation.number.properties.xml</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Corrected <a href="http://docbook.org/tdg5/en/html/refpurpose.html"><code class="sgmltag-element">refpurpose</code></a>.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Norman Walsh: paper.type.xml</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Added USlegal and USlegallandscape paper types.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Jirka Kosek: highlight.xslthl.config.xml</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Added note about specifying location as URL</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: docbook.css.source.xml; generate.css.header.xml; custom.css.source.xml; ma&#8943;</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Params to support generated CSS files.</span>
+          </pre>
+        </li><li class="listitem">
+          <p>
+            <code class="literal">Robert Stayton: equation.number.properties.xml</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">New attribute set for numbers appearing next to equations.</span>
+          </pre>
+        </li></ul></div>
+    </div>
+    
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rnV1.76.0_XSL-Xalan"></a>XSL-Xalan</h3></div></div></div>
+      
+      <p>The following changes have been made to the
+            <code class="filename">xsl-xalan</code> code
+            since the 1.75.2 release.</p>
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>
+            <code class="literal">dleidert: nbproject/genfiles.properties; nbproject/build-impl.xml</code>
+          </p>
+          <pre class="screen">
+            <span class="commit-message">Rebuild netbeans build files after adding missing Netbeans configuration to allow easier packaging for Debian.</span>
+          </pre>
+        </li></ul></div>
+    </div>
+    
+  </div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="rn_V1.75.2"></a>Release Notes: 1.75.2</h2></div></div></div>
+
+<p>The following is a list of changes that have been made
+        since the 1.75.1 release.</p>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.2_Gentext"></a>Gentext</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">gentext</code> code
+            since the 1.75.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">dleidert: locale/ja.xml</code></p><pre class="screen"><span class="commit-message">Improved Japanese translation for Note(s). Closes bug #2823965.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">dleidert: locale/pl.xml</code></p><pre class="screen"><span class="commit-message">Polish alphabet contains O with acute accent, not with grave accent. Closes bug #2823964.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/ja.xml</code></p><pre class="screen"><span class="commit-message">Fix translation of "<a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a>", per bug report 2796064.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/is.xml</code></p><pre class="screen"><span class="commit-message">New Icelandic locale file.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.2_Common"></a>Common</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">common</code> code
+            since the 1.75.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Norman Walsh: stripns.xsl</code></p><pre class="screen"><span class="commit-message">Support more downconvert cases</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: titles.xsl</code></p><pre class="screen"><span class="commit-message">Make sure <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> inside <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a> is used if no other <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.2_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">fo</code> code
+            since the 1.75.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: pi.xsl</code></p><pre class="screen"><span class="commit-message">Turn off dbfo-need for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/fop1.extensions.html"><em class="parameter"><code>fop1.extensions</code></em></a> also, per bug #2816141.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.2_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">html</code> code
+            since the 1.75.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Output "<a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">Copyright</code></a>" heading in XHTML too.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Added stylesheet.result.type test for <a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">copyright</code></a>. Closes bug #2813289.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Norman Walsh: htmltbl.xsl</code></p><pre class="screen"><span class="commit-message">Remove ambiguity wrt @span, @rowspan, and @colspan</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.2_Manpages"></a>Manpages</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">manpages</code> code
+            since the 1.75.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: endnotes.xsl</code></p><pre class="screen"><span class="commit-message">Added normalize-space() for ulink content. Closes bug #2793877.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Added stylesheet.result.type test for <a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">copyright</code></a>. Closes bug #2813289.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.2_Epub"></a>Epub</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">epub</code> code
+            since the 1.75.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/dbtoepub; bin/lib/docbook.rb</code></p><pre class="screen"><span class="commit-message">Corrected bugs caused by path and file assumptions were not met</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/lib/docbook.rb; docbook.xsl</code></p><pre class="screen"><span class="commit-message">Cleaning up hardcoded values into parameters and fixing Ruby library to pass them properly; all thanks to patch from Liza Daly</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.2_Profiling"></a>Profiling</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">profiling</code> code
+            since the 1.75.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: profile.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug 2815493 missing <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/exsl.node.set.available.html"><em class="parameter"><code>exsl.node.set.available</code></em></a> parameter.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.2_XSL-Saxon"></a>XSL-Saxon</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">xsl-saxon</code> code
+            since the 1.75.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: src/com/nwalsh/saxon/ColumnUpdateEmitter.java; src/com/nwalsh/saxon/Colum&#8943;</code></p><pre class="screen"><span class="commit-message">Added fixes so that colgroups in the XHTML namespace are processed properly.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.2_XSL-Xalan"></a>XSL-Xalan</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">xsl-xalan</code> code
+            since the 1.75.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: nbproject/project.xml</code></p><pre class="screen"><span class="commit-message">Added missing NetBeans configuration.</span></pre>
+</li></ul></div>
+</div>
+
+</div>
+
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="rn_V1.75.1"></a>Release Notes: 1.75.1</h2></div></div></div>
+
+<p>This release includes bug fixes.</p>
+
+<p>The following is a list of changes that have been made since the 1.75.0 release.</p>
+
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.1_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the <code class="filename">fo</code> code since the 1.75.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Keith Fahlgren: block.xsl</code></p><pre class="screen"><span class="commit-message">Switching to em dash for character before <a href="http://docbook.org/tdg5/en/html/attribution.html"><code class="sgmltag-element">attribution</code></a> in <a href="http://docbook.org/tdg5/en/html/epigraph.html"><code class="sgmltag-element">epigraph</code></a>; resolves Bug #2793878</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: lists.xsl</code></p><pre class="screen"><span class="commit-message">Fixed bug 2789947, id attribute missing on <a href="http://docbook.org/tdg5/en/html/simplelist.html"><code class="sgmltag-element">simplelist</code></a> fo output.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.1_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">html</code> code
+            since the 1.75.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Keith Fahlgren: block.xsl</code></p><pre class="screen"><span class="commit-message">Switching to em dash for character before <a href="http://docbook.org/tdg5/en/html/attribution.html"><code class="sgmltag-element">attribution</code></a> in <a href="http://docbook.org/tdg5/en/html/epigraph.html"><code class="sgmltag-element">epigraph</code></a>; resolves Bug #2793878</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: lists.xsl</code></p><pre class="screen"><span class="commit-message">Fixed bug 2789678: apply-templates line accidentally deleted.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.1_Epub"></a>Epub</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">epub</code> code
+            since the 1.75.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl</code></p><pre class="screen"><span class="commit-message">Added regression and fix to correct "bug" with namespace-prefixed container elements in META-INF/container.xml ; resolves Issue #2790017</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/onegraphic.xinclude.xml;&#8943;</code></p><pre class="screen"><span class="commit-message">Another attempt at flexible named entity and XInclude processing</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/lib/docbook.rb</code></p><pre class="screen"><span class="commit-message">Tweaking solution to Bug #2750442 following regression reported by Michael Wiedmann.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.1_Params"></a>Params</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">params</code> code
+            since the 1.75.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: highlight.source.xml</code></p><pre class="screen"><span class="commit-message">Updated documentation to reflect changes made in r8419.</span></pre>
+</li></ul></div>
+</div>
+
+</div>
+
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.75.0"></a>Release Notes: 1.75.0</h2></div></div></div>
+
+<p>This release includes important bug fixes and adds the following
+significant feature changes:
+</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Gentext</span></dt><dd><p>Modifications to translations have been made. </p></dd><dt><span class="term">Common</span></dt><dd>
+<p>Added support for some format properties on tables using
+HTML <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> markup.  </p>
+<p>Added two new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.defaultlabel.html"><em class="parameter"><code>qanda.defaultlabel</code></em></a> values so that numbered sections
+and numbered questions can be distinguished.  Satisfies
+Feature Request #1539045.</p>
+<p>Added code to handle <a href="http://docbook.org/tdg5/en/html/acknowledgements.html"><code class="sgmltag-element">acknowledgements</code></a> in <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a> and part. The element is processed
+similarly to <a href="http://docbook.org/tdg5/en/html/dedication.html"><code class="sgmltag-element">dedication</code></a>. All <a href="http://docbook.org/tdg5/en/html/acknowledgements.html"><code class="sgmltag-element">acknowledgements</code></a> will appear as front matter, after
+any dedications.</p>
+</dd><dt><span class="term">FO</span></dt><dd>
+<p>The inclusion of highlighting code has been simplified.</p>
+<p>Add support for pgwide on informal objects.</p>
+<p>Added a new parameter, <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/bookmarks.collapse.html"><em class="parameter"><code>bookmarks.collapse</code></em></a>, that controls the initial <a href="http://docbook.org/tdg5/en/html/state.html"><code class="sgmltag-element">state</code></a> of the bookmark tree. Closes FR #1792326.</p>
+<p>Add support for more dbfo processing instructions.</p>
+<p>Add new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/variablelist.term.properties.html"><em class="parameter"><code>variablelist.term.properties</code></em></a> to format terms, per request # 1968513.</p>
+<p>Add support for @width on <a href="http://docbook.org/tdg5/en/html/screen.html"><code class="sgmltag-element">screen</code></a> and <a href="http://docbook.org/tdg5/en/html/programlisting.html"><code class="sgmltag-element">programlisting</code></a>, fixes bug #2012736.</p>
+<p>Add support for writing-mode="rl-tb" (right-to-left) in FO outputs.  </p>
+<p>Add <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/writing.mode.html"><em class="parameter"><code>writing.mode</code></em></a> param for FO output.</p>
+</dd><dt><span class="term">HTML</span></dt><dd>
+<p>Convert all calls to class.attribute to calls to common.html.attributes to support dir, lang, and <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> attributes in html output for all elements.  Fulfills feature request #1993833.</p>
+<p>Inclusion of highlighting code was simplified. Only one import is now necessary.</p>
+<p>Add new param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/index.links.to.section.html"><em class="parameter"><code>index.links.to.section</code></em></a>.</p>
+<p>Add support for the new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/index.links.to.section.html"><em class="parameter"><code>index.links.to.section</code></em></a> param which permits precise links to indexterms in HTML output rather than to the <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>.</p>
+</dd><dt><span class="term">ePub</span></dt><dd>
+<p>Slightly more nuanced handling of <a href="http://docbook.org/tdg5/en/html/imageobject.html"><code class="sgmltag-element">imageobject</code></a> alternatives and better support in dbtoepub for XIncludes and ENTITYs to resolve Issue #2750442 reported by Raphael Hertzog.</p>
+<p>Added a colon after an <a href="http://docbook.org/tdg5/en/html/abstract.html"><code class="sgmltag-element">abstract</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> when mapping into the dc:description for OPF metadata in ePub output to help the flat text have more pseudo-semantics (sugestions from Michael Wiedmann)</p>
+<p>Added DocBook <a href="http://docbook.org/tdg5/en/html/subjectset.html"><code class="sgmltag-element">subjectset</code></a> -&gt; OPF dc:<a href="http://docbook.org/tdg5/en/html/subject.html"><code class="sgmltag-element">subject</code></a> mapping and tests</p>
+<p>Added DocBook <a href="http://docbook.org/tdg5/en/html/date.html"><code class="sgmltag-element">date</code></a> -&gt; OPF dc:date mapping and tests</p>
+<p>Added DocBook <a href="http://docbook.org/tdg5/en/html/abstract.html"><code class="sgmltag-element">abstract</code></a> -&gt; OPF dc:description mapping and tests</p>
+<p>Added --output option to dbtoepub based on user request</p>
+</dd><dt><span class="term">HTMLHelp</span></dt><dd>
+<p>Add support for generating <a href="http://docbook.org/tdg5/en/html/olink.html"><code class="sgmltag-element">olink</code></a> target <a href="http://docbook.org/tdg5/en/html/database.html"><code class="sgmltag-element">database</code></a> for htmlhelp files.</p></dd><dt><span class="term">Params</span></dt><dd>
+<p>Add default setting for @rules attribute on HTML markup tables.</p>
+<p>Added a new parameter, <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/bookmarks.collapse.html"><em class="parameter"><code>bookmarks.collapse</code></em></a>, that controls the initial <a href="http://docbook.org/tdg5/en/html/state.html"><code class="sgmltag-element">state</code></a> of the bookmark tree. When the parameter has a non-zero value (the default), only the top-level bookmarks are displayed initially. Otherwise, the whole tree of bookmarks is displayed.  This is implemented for FOP 0.9X. Closes FR #1792326.</p>
+<p>Add new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/variablelist.term.properties.html"><em class="parameter"><code>variablelist.term.properties</code></em></a> to format terms, per request # 1968513.</p>
+<p>Add two new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.defaultlabel.html"><em class="parameter"><code>qanda.defaultlabel</code></em></a> values so that numbered sections and numbered questions can be distinguished.  Satisfies Feature Request #1539045.</p>
+<p>Add param to control whether an <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> <a href="http://docbook.org/tdg5/en/html/entry.html"><code class="sgmltag-element">entry</code></a> links to a <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> or to the precise location of the <a href="http://docbook.org/tdg5/en/html/indexterm.html"><code class="sgmltag-element">indexterm</code></a>.</p>
+<p>New attribute list for <a href="http://docbook.org/tdg5/en/html/glossentry.html"><code class="sgmltag-element">glossentry</code></a> in <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a>.</p>
+<p>New parameter to support @width on <a href="http://docbook.org/tdg5/en/html/programlisting.html"><code class="sgmltag-element">programlisting</code></a> and <a href="http://docbook.org/tdg5/en/html/screen.html"><code class="sgmltag-element">screen</code></a>.</p>
+<p>Add attribute-sets for formatting <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a> terms and defs.</p>
+</dd><dt><span class="term">Highlighting</span></dt><dd>
+<p>Inclusion of highlighting code was simplified. Only one import is now necessary.</p>
+</dd></dl></div><p>
+
+
+</p>
+<p>The following is a list of changes that have been made
+        since the 1.74.3 release.</p>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.0_Gentext"></a>Gentext</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">gentext</code> code
+            since the 1.74.3 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/sv.xml; locale/ja.xml; locale/pl.xml</code></p><pre class="screen"><span class="commit-message">Check in translations of <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">Legalnotice</code></a> submitted on mailing list.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/es.xml</code></p><pre class="screen"><span class="commit-message">Fix spelling errors in <a href="http://docbook.org/tdg5/en/html/acknowledgements.html"><code class="sgmltag-element">Acknowledgements</code></a> entries.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/es.xml</code></p><pre class="screen"><span class="commit-message">Check in translations for 4 elements submitted through docbook-apps
+message of 14 April 2009.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: locale/zh.xml; locale/ca.xml; locale/ru.xml; locale/ga.xml; locale/gl.xml; l&#8943;</code></p><pre class="screen"><span class="commit-message">Internationalized punctuation in <a href="http://docbook.org/tdg5/en/html/glosssee.html"><code class="sgmltag-element">glosssee</code></a> and <a href="http://docbook.org/tdg5/en/html/glossseealso.html"><code class="sgmltag-element">glossseealso</code></a></span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: Makefile</code></p><pre class="screen"><span class="commit-message">Check in fixes for DSSSL gentext targets from submitted patch #1689633.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/uk.xml</code></p><pre class="screen"><span class="commit-message">Check in major update submitted with bug report #2008524.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/zh_tw.xml</code></p><pre class="screen"><span class="commit-message">Check in fix to Note string submitted in bug #2441051.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/ru.xml</code></p><pre class="screen"><span class="commit-message">Checkin typo fix submitted in bug #2453406.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.0_Common"></a>Common</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">common</code> code
+            since the 1.74.3 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: gentext.xsl</code></p><pre class="screen"><span class="commit-message">Fix extra generated space when xrefstyle includes 'nopage'.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: table.xsl</code></p><pre class="screen"><span class="commit-message">Add support for some format properties on tables using
+HTML <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> markup.  These include:
+  - frame attribute on <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> (or uses $default.table.frame parameter).
+  - rules attribute on <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> (or uses $default.table.rules parameter).
+  - align attribute on <a href="http://docbook.org/tdg5/en/html/td.html"><code class="sgmltag-element">td</code></a> and <a href="http://docbook.org/tdg5/en/html/th.html"><code class="sgmltag-element">th</code></a>
+  - valign attribute on <a href="http://docbook.org/tdg5/en/html/td.html"><code class="sgmltag-element">td</code></a> and <a href="http://docbook.org/tdg5/en/html/th.html"><code class="sgmltag-element">th</code></a>
+  - colspan on <a href="http://docbook.org/tdg5/en/html/td.html"><code class="sgmltag-element">td</code></a> and <a href="http://docbook.org/tdg5/en/html/th.html"><code class="sgmltag-element">th</code></a>
+  - rowspan on <a href="http://docbook.org/tdg5/en/html/td.html"><code class="sgmltag-element">td</code></a> and <a href="http://docbook.org/tdg5/en/html/th.html"><code class="sgmltag-element">th</code></a>
+  - bgcolor on <a href="http://docbook.org/tdg5/en/html/td.html"><code class="sgmltag-element">td</code></a> and <a href="http://docbook.org/tdg5/en/html/th.html"><code class="sgmltag-element">th</code></a></span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: olink.xsl</code></p><pre class="screen"><span class="commit-message">Add placeholder template to massage <a href="http://docbook.org/tdg5/en/html/olink.html"><code class="sgmltag-element">olink</code></a> hot text to make
+customization easier, per Feature Request 1828608.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: targets.xsl</code></p><pre class="screen"><span class="commit-message">Add support for collecting <a href="http://docbook.org/tdg5/en/html/olink.html"><code class="sgmltag-element">olink</code></a> targets from a <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a>
+generated from a <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/glossary.collection.html"><em class="parameter"><code>glossary.collection</code></em></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: titles.xsl</code></p><pre class="screen"><span class="commit-message">Handle <a href="http://docbook.org/tdg5/en/html/firstterm.html"><code class="sgmltag-element">firstterm</code></a> like <a href="http://docbook.org/tdg5/en/html/glossterm.html"><code class="sgmltag-element">glossterm</code></a> in mode="title.markup".</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: titles.xsl</code></p><pre class="screen"><span class="commit-message">Add match on <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> in title.markup templates where missing.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titles.xsl</code></p><pre class="screen"><span class="commit-message">Changed "ancestor::<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>" to "(ancestor::<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> and (@id or @xml:id))".
+This enables proper formatting of inline elements in titles in TOCs, 
+as long as these inlines don't have id or xml:id attributes.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: labels.xsl</code></p><pre class="screen"><span class="commit-message">Add two new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.defaultlabel.html"><em class="parameter"><code>qanda.defaultlabel</code></em></a> values so that numbered sections
+and numbered questions can be distinguished.  Satisfies
+Feature Request #1539045.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: stripns.xsl; pi.xsl</code></p><pre class="screen"><span class="commit-message">Convert function-available(exsl:node-set) to use the new param
+so Xalan bug is isolated.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titles.xsl</code></p><pre class="screen"><span class="commit-message">Added fixes for bugs #2112656 and #1759205:
+1. Reverted mistaken commits r7485 and r7523. 
+2. Updated the template with match="<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>" and mode="no.anchor.mode" so that 
+@endterm is used if it exists and if the <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> has no content.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titles.xsl</code></p><pre class="screen"><span class="commit-message">Added code to handle <a href="http://docbook.org/tdg5/en/html/acknowledgements.html"><code class="sgmltag-element">acknowledgements</code></a> in <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a> and part. The element is processed
+similarly to <a href="http://docbook.org/tdg5/en/html/dedication.html"><code class="sgmltag-element">dedication</code></a>. All <a href="http://docbook.org/tdg5/en/html/acknowledgements.html"><code class="sgmltag-element">acknowledgements</code></a> will appear as front matter, after
+any dedications.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: olink.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug #2018717 <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/use.local.olink.style.html"><em class="parameter"><code>use.local.olink.style</code></em></a> uses wrong gentext context.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: olink.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug #1787167 incorrect hot text for some olinks.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: common.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug #1669654 Broken output if <a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">copyright</code></a> &lt;<a href="http://docbook.org/tdg5/en/html/year.html"><code class="sgmltag-element">year</code></a>&gt; contains a range.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: labels.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug in labelling <a href="http://docbook.org/tdg5/en/html/figure.html"><code class="sgmltag-element">figure</code></a> inside <a href="http://docbook.org/tdg5/en/html/appendix.html"><code class="sgmltag-element">appendix</code></a> inside <a href="http://docbook.org/tdg5/en/html/article.html"><code class="sgmltag-element">article</code></a> inside <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a>.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.0_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">fo</code> code
+            since the 1.74.3 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Jirka Kosek: highlight.xsl</code></p><pre class="screen"><span class="commit-message">Inclusion of highlighting code was simplified. Only one import is now necessary.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: fop1.xsl</code></p><pre class="screen"><span class="commit-message">Add the new fop extensions namespace declaration, in case FOP
+extension functions are used.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: formal.xsl</code></p><pre class="screen"><span class="commit-message">Add support for pgwide on informal objects.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Fixed spurious closing <a href="http://docbook.org/tdg5/en/html/quote.html"><code class="sgmltag-element">quote</code></a> on line 134.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: docbook.xsl; autoidx-kosek.xsl; autoidx.xsl</code></p><pre class="screen"><span class="commit-message">Convert function-available for node-set() to use
+new $exsl.node.set.available param in test.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xref.xsl</code></p><pre class="screen"><span class="commit-message">Suppress extra space after <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> when xrefstyle='select: <a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a> nopage' (#2740472)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: pi.xsl</code></p><pre class="screen"><span class="commit-message">Fixed doc bug for row-height.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: glossary.xsl</code></p><pre class="screen"><span class="commit-message">Internationalized punctuation in <a href="http://docbook.org/tdg5/en/html/glosssee.html"><code class="sgmltag-element">glosssee</code></a> and <a href="http://docbook.org/tdg5/en/html/glossseealso.html"><code class="sgmltag-element">glossseealso</code></a></span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent; htmltbl.xsl; table.xsl</code></p><pre class="screen"><span class="commit-message">Add support for some format properties on tables using
+HTML <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> markup.  These include:
+  - frame attribute on <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> (or uses $default.table.frame parameter).
+  - rules attribute on <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> (or uses $default.table.rules parameter).
+  - align attribute on <a href="http://docbook.org/tdg5/en/html/td.html"><code class="sgmltag-element">td</code></a> and <a href="http://docbook.org/tdg5/en/html/th.html"><code class="sgmltag-element">th</code></a>
+  - valign attribute on <a href="http://docbook.org/tdg5/en/html/td.html"><code class="sgmltag-element">td</code></a> and <a href="http://docbook.org/tdg5/en/html/th.html"><code class="sgmltag-element">th</code></a>
+  - colspan on <a href="http://docbook.org/tdg5/en/html/td.html"><code class="sgmltag-element">td</code></a> and <a href="http://docbook.org/tdg5/en/html/th.html"><code class="sgmltag-element">th</code></a>
+  - rowspan on <a href="http://docbook.org/tdg5/en/html/td.html"><code class="sgmltag-element">td</code></a> and <a href="http://docbook.org/tdg5/en/html/th.html"><code class="sgmltag-element">th</code></a>
+  - bgcolor on <a href="http://docbook.org/tdg5/en/html/td.html"><code class="sgmltag-element">td</code></a> and <a href="http://docbook.org/tdg5/en/html/th.html"><code class="sgmltag-element">th</code></a></span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: table.xsl</code></p><pre class="screen"><span class="commit-message">Add support bgcolor in <a href="http://docbook.org/tdg5/en/html/td.html"><code class="sgmltag-element">td</code></a> and <a href="http://docbook.org/tdg5/en/html/th.html"><code class="sgmltag-element">th</code></a>
+elements in HTML <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> markup.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: htmltbl.xsl</code></p><pre class="screen"><span class="commit-message">Add support for colspan and rowspan and bgcolor in <a href="http://docbook.org/tdg5/en/html/td.html"><code class="sgmltag-element">td</code></a> and <a href="http://docbook.org/tdg5/en/html/th.html"><code class="sgmltag-element">th</code></a>
+elements in HTML <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> markup.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb</code></p><pre class="screen"><span class="commit-message">Fix working of page-master left and right margins.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: param.xweb; param.ent; fop1.xsl</code></p><pre class="screen"><span class="commit-message">Added a new parameter, <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/bookmarks.collapse.html"><em class="parameter"><code>bookmarks.collapse</code></em></a>, that controls the initial <a href="http://docbook.org/tdg5/en/html/state.html"><code class="sgmltag-element">state</code></a> of the bookmark tree. When the parameter has a non-zero value (the default), only the top-level bookmarks are displayed initially. Otherwise, the whole tree of bookmarks is displayed.  This is implemented for FOP 0.9X. Closes FR #1792326.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: table.xsl; pi.xsl</code></p><pre class="screen"><span class="commit-message">Add support for dbfo row-height processing instruction, like that in dbhtml.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: lists.xsl</code></p><pre class="screen"><span class="commit-message">Add support for dbfo keep-together processing instruction for
+entire list instances.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: lists.xsl; block.xsl</code></p><pre class="screen"><span class="commit-message">Add support fo dbfo keep-together processing instruction to
+more blocks like list items and paras.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: lists.xsl; param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Add new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/variablelist.term.properties.html"><em class="parameter"><code>variablelist.term.properties</code></em></a> to format terms, per request # 1968513.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: inline.xsl</code></p><pre class="screen"><span class="commit-message">In simple.xlink, rearrange order of processing.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xref.xsl</code></p><pre class="screen"><span class="commit-message">Handle <a href="http://docbook.org/tdg5/en/html/firstterm.html"><code class="sgmltag-element">firstterm</code></a> like <a href="http://docbook.org/tdg5/en/html/glossterm.html"><code class="sgmltag-element">glossterm</code></a> in mode="xref-to".</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: glossary.xsl; xref.xsl; pi.xsl; footnote.xsl</code></p><pre class="screen"><span class="commit-message">Implement simple.xlink for <a href="http://docbook.org/tdg5/en/html/glosssee.html"><code class="sgmltag-element">glosssee</code></a> and <a href="http://docbook.org/tdg5/en/html/glossseealso.html"><code class="sgmltag-element">glossseealso</code></a> so they can use
+other types of linking besides otherterm.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: qandaset.xsl</code></p><pre class="screen"><span class="commit-message">Add two new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.defaultlabel.html"><em class="parameter"><code>qanda.defaultlabel</code></em></a> values so that numbered sections and numbered questions can be distinguished.  Satisfies Feature Request #1539045.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">For the <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a> <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> templates, I changed <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> to <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a>/<a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>
+so other element's titles will not be affected.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xref.xsl; verbatim.xsl</code></p><pre class="screen"><span class="commit-message">Use param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/exsl.node.set.available.html"><em class="parameter"><code>exsl.node.set.available</code></em></a> to test for <a href="http://docbook.org/tdg5/en/html/function.html"><code class="sgmltag-element">function</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent; footnote.xsl</code></p><pre class="screen"><span class="commit-message">Start using new param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/exsl.node.set.available.html"><em class="parameter"><code>exsl.node.set.available</code></em></a> to work around Xalan bug.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: titlepage.templates.xml</code></p><pre class="screen"><span class="commit-message">Add comment on use of t:predicate for <a href="http://docbook.org/tdg5/en/html/editor.html"><code class="sgmltag-element">editor</code></a> to prevent
+extra processing of multiple editors. Fixes bug 2687842.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xref.xsl; autoidx.xsl</code></p><pre class="screen"><span class="commit-message">An <a href="http://docbook.org/tdg5/en/html/indexterm.html"><code class="sgmltag-element">indexterm</code></a> <a href="http://docbook.org/tdg5/en/html/primary.html"><code class="sgmltag-element">primary</code></a>, <a href="http://docbook.org/tdg5/en/html/secondary.html"><code class="sgmltag-element">secondary</code></a>, or <a href="http://docbook.org/tdg5/en/html/tertiary.html"><code class="sgmltag-element">tertiary</code></a> element with an id or xml:id
+now outputs that ID, so that <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> entries can be cross referenced to.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: synop.xsl</code></p><pre class="screen"><span class="commit-message">Added modeless template for ooclass|oointerface|ooexception.
+Closes bug #1623468.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xref.xsl</code></p><pre class="screen"><span class="commit-message">Add template with match on <a href="http://docbook.org/tdg5/en/html/indexterm.html"><code class="sgmltag-element">indexterm</code></a> in mode="xref-to" to fix bug 2102592.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xref.xsl</code></p><pre class="screen"><span class="commit-message">Now <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to <a href="http://docbook.org/tdg5/en/html/qandaentry.html"><code class="sgmltag-element">qandaentry</code></a> will use the <a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a> element in a <a href="http://docbook.org/tdg5/en/html/question.html"><code class="sgmltag-element">question</code></a> for
+the <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> text if it has one.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: inline.xsl</code></p><pre class="screen"><span class="commit-message">Add id if specified from @id to output for <a href="http://docbook.org/tdg5/en/html/quote.html"><code class="sgmltag-element">quote</code></a> and <a href="http://docbook.org/tdg5/en/html/phrase.html"><code class="sgmltag-element">phrase</code></a> so
+they can be <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a>'ed to.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xref.xsl</code></p><pre class="screen"><span class="commit-message">Add support for <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to <a href="http://docbook.org/tdg5/en/html/phrase.html"><code class="sgmltag-element">phrase</code></a>, <a href="http://docbook.org/tdg5/en/html/simpara.html"><code class="sgmltag-element">simpara</code></a>, <a href="http://docbook.org/tdg5/en/html/anchor.html"><code class="sgmltag-element">anchor</code></a>, and <a href="http://docbook.org/tdg5/en/html/quote.html"><code class="sgmltag-element">quote</code></a>.
+This assumes the <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a> specifies something using xrefstyle since
+the elements don't have ordinary <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> text.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: toc.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug in new <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> templates.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titlepage.xsl; component.xsl; division.xsl; xref.xsl; titlepage.templates&#8943;</code></p><pre class="screen"><span class="commit-message">Added code to handle <a href="http://docbook.org/tdg5/en/html/acknowledgements.html"><code class="sgmltag-element">acknowledgements</code></a> in <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a> and part. The element is processed
+similarly to <a href="http://docbook.org/tdg5/en/html/dedication.html"><code class="sgmltag-element">dedication</code></a>. All <a href="http://docbook.org/tdg5/en/html/acknowledgements.html"><code class="sgmltag-element">acknowledgements</code></a> will appear as front matter, after
+any dedications.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: toc.xsl</code></p><pre class="screen"><span class="commit-message">Rewrite <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> templates to support an empty <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> or populated <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a>
+in all permitted contexts.  Same for lot elements.
+This fixes bug #1595969 for FO outputs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: index.xsl</code></p><pre class="screen"><span class="commit-message">Fix indents for <a href="http://docbook.org/tdg5/en/html/seealsoie.html"><code class="sgmltag-element">seealsoie</code></a> so they are consistent.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: param.xweb</code></p><pre class="screen"><span class="commit-message">Removed duplicate (<a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/monospace.font.family.html"><em class="parameter"><code>monospace.font.family</code></em></a>).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Add <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/glossentry.list.item.properties.html"><em class="parameter"><code>glossentry.list.item.properties</code></em></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Add <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/monospace.verbatim.font.width.html"><em class="parameter"><code>monospace.verbatim.font.width</code></em></a> param to support @width on <a href="http://docbook.org/tdg5/en/html/programlisting.html"><code class="sgmltag-element">programlisting</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: verbatim.xsl</code></p><pre class="screen"><span class="commit-message">Put <a href="http://docbook.org/tdg5/en/html/programlisting.html"><code class="sgmltag-element">programlisting</code></a> in fo:block-container with writing-mode="lr-tb"
+when text direction is right to left because all program languages
+are left-to-right.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: verbatim.xsl</code></p><pre class="screen"><span class="commit-message">Add support for @width on <a href="http://docbook.org/tdg5/en/html/screen.html"><code class="sgmltag-element">screen</code></a> and <a href="http://docbook.org/tdg5/en/html/programlisting.html"><code class="sgmltag-element">programlisting</code></a>, fixes bug #2012736.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xref.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug #1973585 <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to <a href="http://docbook.org/tdg5/en/html/para.html"><code class="sgmltag-element">para</code></a> with xrefstyle not handled correctly.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: block.xsl</code></p><pre class="screen"><span class="commit-message">Added support for <a href="http://docbook.org/tdg5/en/html/acknowledgements.html"><code class="sgmltag-element">acknowledgements</code></a> in <a href="http://docbook.org/tdg5/en/html/article.html"><code class="sgmltag-element">article</code></a>.
+Support in <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a>/part remains to be added.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xref.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug #1787167 incorrect hot text for some olinks.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: fo.xsl</code></p><pre class="screen"><span class="commit-message">Add writing-mode="tb-rl" as well since some XSL-FO processors support it.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: autotoc.xsl; lists.xsl; glossary.xsl; fo.xsl; table.xsl; pagesetup.xsl</code></p><pre class="screen"><span class="commit-message">Add support for writing-mode="rl-tb" (right-to-left) in FO outputs.
+Changed instances of margin-left to margin-{$direction.align.start}
+and margin-right to margin-{$direction.align.end}. Those direction.align
+params are computed from the writing mode value in each locale's
+gentext key named 'writing-mode', introduced in 1.74.3 to add
+right-to-left support to HTML outputs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Add attribute-sets for formatting <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a> terms and defs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Add <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/writing.mode.html"><em class="parameter"><code>writing.mode</code></em></a> param for FO output.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: autotoc.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug 1546008: in <a href="http://docbook.org/tdg5/en/html/qandaentry.html"><code class="sgmltag-element">qandaentry</code></a> in a <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">TOC</code></a>, use its blockinfo/<a href="http://docbook.org/tdg5/en/html/titleabbrev.html"><code class="sgmltag-element">titleabbrev</code></a> or blockinfo/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>
+instead of <a href="http://docbook.org/tdg5/en/html/question.html"><code class="sgmltag-element">question</code></a>, if available. For DocBook 5, use the <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a> versions.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: verbatim.xsl</code></p><pre class="screen"><span class="commit-message">Add better pointer to README for XSLTHL</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: verbatim.xsl</code></p><pre class="screen"><span class="commit-message">More tweaking the way that XSLTHL does or does not get called</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: verbatim.xsl</code></p><pre class="screen"><span class="commit-message">Alternate attempt at sanely including/excluding XSLTHT code</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.0_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">html</code> code
+            since the 1.74.3 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: lists.xsl</code></p><pre class="screen"><span class="commit-message">Removed redundant lang and <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> attributes on list element inside
+div element for lists.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: inline.xsl; titlepage.xsl; division.xsl; toc.xsl; sections.xsl; table.xsl;&#8943;</code></p><pre class="screen"><span class="commit-message">Convert all calls to class.attribute to calls to common.html.attributes
+to support dir, lang, and <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> attributes in html output for all elements.
+Fulfills feature request #1993833.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: chunk-common.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug #2750253 wrong links in list of figures in chunk.html
+when target html is in a subdirectory and dbhtml <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a> used.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: highlight.xsl</code></p><pre class="screen"><span class="commit-message">Inclusion of highlighting code was simplified. Only one import is now necessary.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: chunk-common.xsl; chunktoc.xsl; docbook.xsl; chunk-changebars.xsl; autoidx&#8943;</code></p><pre class="screen"><span class="commit-message">Convert function-available for node-set() to use
+new $exsl.node.set.available param in test.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: pi.xsl</code></p><pre class="screen"><span class="commit-message">Fixed doc bug for row-height.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: glossary.xsl</code></p><pre class="screen"><span class="commit-message">Internationalized punctuation in <a href="http://docbook.org/tdg5/en/html/glosssee.html"><code class="sgmltag-element">glosssee</code></a> and <a href="http://docbook.org/tdg5/en/html/glossseealso.html"><code class="sgmltag-element">glossseealso</code></a></span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: lists.xsl; html.xsl; block.xsl</code></p><pre class="screen"><span class="commit-message">More elements get common.html.attributes.
+Added locale.html.attributes template which does the lang,
+dir, and <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> attributes, but not the class attribute
+(used on <a href="http://docbook.org/tdg5/en/html/para.html"><code class="sgmltag-element">para</code></a>, for example).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: lists.xsl</code></p><pre class="screen"><span class="commit-message">Replace more <a href="http://docbook.org/tdg5/en/html/literal.html"><code class="sgmltag-element">literal</code></a> class atts with mode="class.attribute" to support
+easier customization.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: glossary.xsl</code></p><pre class="screen"><span class="commit-message">Support olinking in <a href="http://docbook.org/tdg5/en/html/glosssee.html"><code class="sgmltag-element">glosssee</code></a> and <a href="http://docbook.org/tdg5/en/html/glossseealso.html"><code class="sgmltag-element">glossseealso</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: inline.xsl</code></p><pre class="screen"><span class="commit-message">In simple.xlink, rearrange order of processing.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xref.xsl</code></p><pre class="screen"><span class="commit-message">Handle <a href="http://docbook.org/tdg5/en/html/firstterm.html"><code class="sgmltag-element">firstterm</code></a> like <a href="http://docbook.org/tdg5/en/html/glossterm.html"><code class="sgmltag-element">glossterm</code></a> in mode="xref-to".</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: lists.xsl; html.xsl; block.xsl</code></p><pre class="screen"><span class="commit-message">Added template named common.html.attributes to output
+class, <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>, lang, and dir for most elements.
+Started adding it to some list and block elements.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: qandaset.xsl</code></p><pre class="screen"><span class="commit-message">Add two new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.defaultlabel.html"><em class="parameter"><code>qanda.defaultlabel</code></em></a> values so that numbered sections
+and numbered questions can be distinguished.  Satisfies
+Feature Request #1539045.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; chunk-code.xsl; param.ent; xref.xsl; chunkfast.xsl; verbatim.x&#8943;</code></p><pre class="screen"><span class="commit-message">Use new param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/exsl.node.set.available.html"><em class="parameter"><code>exsl.node.set.available</code></em></a> to test, handles Xalan bug.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: autoidx.xsl</code></p><pre class="screen"><span class="commit-message">Use named anchors for <a href="http://docbook.org/tdg5/en/html/primary.html"><code class="sgmltag-element">primary</code></a>, <a href="http://docbook.org/tdg5/en/html/secondary.html"><code class="sgmltag-element">secondary</code></a>, and <a href="http://docbook.org/tdg5/en/html/tertiary.html"><code class="sgmltag-element">tertiary</code></a> ids so
+duplicate entries with different ids can still have an id output.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Add new param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/index.links.to.section.html"><em class="parameter"><code>index.links.to.section</code></em></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xref.xsl; autoidx.xsl</code></p><pre class="screen"><span class="commit-message">Pass through an id on <a href="http://docbook.org/tdg5/en/html/primary.html"><code class="sgmltag-element">primary</code></a>, <a href="http://docbook.org/tdg5/en/html/secondary.html"><code class="sgmltag-element">secondary</code></a>, or <a href="http://docbook.org/tdg5/en/html/tertiary.html"><code class="sgmltag-element">tertiary</code></a> to 
+the <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> <a href="http://docbook.org/tdg5/en/html/entry.html"><code class="sgmltag-element">entry</code></a>, so that one could <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> to an <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> <a href="http://docbook.org/tdg5/en/html/entry.html"><code class="sgmltag-element">entry</code></a>.
+You can't <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> to the id on an <a href="http://docbook.org/tdg5/en/html/indexterm.html"><code class="sgmltag-element">indexterm</code></a> because that is
+used to place the main <a href="http://docbook.org/tdg5/en/html/anchor.html"><code class="sgmltag-element">anchor</code></a> in the text flow.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: autoidx.xsl</code></p><pre class="screen"><span class="commit-message">Add support for the new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/index.links.to.section.html"><em class="parameter"><code>index.links.to.section</code></em></a> param which permits
+precise links to indexterms in HTML output rather than to
+the <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: synop.xsl</code></p><pre class="screen"><span class="commit-message">Added modeless template for ooclass|oointerface|ooexception.
+Closes bug #1623468.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: qandaset.xsl</code></p><pre class="screen"><span class="commit-message">Make sure a <a href="http://docbook.org/tdg5/en/html/qandaset.html"><code class="sgmltag-element">qandaset</code></a> has an <a href="http://docbook.org/tdg5/en/html/anchor.html"><code class="sgmltag-element">anchor</code></a>, even when it has no <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>, 
+because it may be referenced in a <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">TOC</code></a> or <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a>.
+Before, the <a href="http://docbook.org/tdg5/en/html/anchor.html"><code class="sgmltag-element">anchor</code></a> was output by the <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>, but there was no
+<a href="http://docbook.org/tdg5/en/html/anchor.html"><code class="sgmltag-element">anchor</code></a> if there was no <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xref.xsl</code></p><pre class="screen"><span class="commit-message">Add a template for <a href="http://docbook.org/tdg5/en/html/indexterm.html"><code class="sgmltag-element">indexterm</code></a> with mode="xref-to" to fix bug 2102592.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: xref.xsl</code></p><pre class="screen"><span class="commit-message">Now <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to <a href="http://docbook.org/tdg5/en/html/qandaentry.html"><code class="sgmltag-element">qandaentry</code></a> will use the <a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a> element in a <a href="http://docbook.org/tdg5/en/html/question.html"><code class="sgmltag-element">question</code></a> for
+the <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> text if it has one.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: qandaset.xsl; html.xsl</code></p><pre class="screen"><span class="commit-message">Create separate templates for computing <a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a> of <a href="http://docbook.org/tdg5/en/html/question.html"><code class="sgmltag-element">question</code></a> and <a href="http://docbook.org/tdg5/en/html/answer.html"><code class="sgmltag-element">answer</code></a>
+in a <a href="http://docbook.org/tdg5/en/html/qandaentry.html"><code class="sgmltag-element">qandaentry</code></a>, so such can be used for the <a href="http://docbook.org/tdg5/en/html/alt.html"><code class="sgmltag-element">alt</code></a> text of an <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a>
+to a <a href="http://docbook.org/tdg5/en/html/qandaentry.html"><code class="sgmltag-element">qandaentry</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: inline.xsl; xref.xsl</code></p><pre class="screen"><span class="commit-message">Now support <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to <a href="http://docbook.org/tdg5/en/html/phrase.html"><code class="sgmltag-element">phrase</code></a>, <a href="http://docbook.org/tdg5/en/html/simpara.html"><code class="sgmltag-element">simpara</code></a>, <a href="http://docbook.org/tdg5/en/html/anchor.html"><code class="sgmltag-element">anchor</code></a>, and <a href="http://docbook.org/tdg5/en/html/quote.html"><code class="sgmltag-element">quote</code></a>,
+most useful when an xrefstyle is used.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: toc.xsl</code></p><pre class="screen"><span class="commit-message">Rewrite <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> templates to support an empty <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> or populated <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a>
+in all permitted contexts.  Same for lot elements.
+This fixes bug #1595969 for HTML outputs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titlepage.xsl; component.xsl; division.xsl; xref.xsl; titlepage.templates&#8943;</code></p><pre class="screen"><span class="commit-message">Added code to handle <a href="http://docbook.org/tdg5/en/html/acknowledgements.html"><code class="sgmltag-element">acknowledgements</code></a> in <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a> and part. The element is processed
+similarly to <a href="http://docbook.org/tdg5/en/html/dedication.html"><code class="sgmltag-element">dedication</code></a>. All <a href="http://docbook.org/tdg5/en/html/acknowledgements.html"><code class="sgmltag-element">acknowledgements</code></a> will appear as front matter, after
+any dedications.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: index.xsl</code></p><pre class="screen"><span class="commit-message">Rewrote <a href="http://docbook.org/tdg5/en/html/primaryie.html"><code class="sgmltag-element">primaryie</code></a>, <a href="http://docbook.org/tdg5/en/html/secondaryie.html"><code class="sgmltag-element">secondaryie</code></a> and <a href="http://docbook.org/tdg5/en/html/tertiaryie.html"><code class="sgmltag-element">tertiaryie</code></a> templates to handle
+nesting of elements and <a href="http://docbook.org/tdg5/en/html/seeie.html"><code class="sgmltag-element">seeie</code></a> and <a href="http://docbook.org/tdg5/en/html/seealsoie.html"><code class="sgmltag-element">seealsoie</code></a>, as reported in
+bug # 1168912.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: autotoc.xsl</code></p><pre class="screen"><span class="commit-message">Fix <a href="http://docbook.org/tdg5/en/html/simplesect.html"><code class="sgmltag-element">simplesect</code></a> in <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> problem.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: verbatim.xsl</code></p><pre class="screen"><span class="commit-message">Add support for @width per bug report #2012736.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: formal.xsl; htmltbl.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug #1787140 HTML tables not handling attributes correctly.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb</code></p><pre class="screen"><span class="commit-message">Move writing-mode param.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: refentry.xsl</code></p><pre class="screen"><span class="commit-message">Remove a nesting of &lt;p&gt; inside &lt;p&gt; for <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a> (made XHTML* invalid, made HTML silly)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: table.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug #1945872 to allow passthrough of colwidth values to
+HTML <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> when no <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/tablecolumns.extension.html"><em class="parameter"><code>tablecolumns.extension</code></em></a> is available and
+when no instance of * appears in the <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>'s colspecs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: block.xsl</code></p><pre class="screen"><span class="commit-message">Added support for <a href="http://docbook.org/tdg5/en/html/acknowledgements.html"><code class="sgmltag-element">acknowledgements</code></a> in <a href="http://docbook.org/tdg5/en/html/article.html"><code class="sgmltag-element">article</code></a>.
+Support in <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a>/part remains to be added.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: chunk-common.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug #1787167 incorrect hot text for some olinks.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: qandaset.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug 1546008: in <a href="http://docbook.org/tdg5/en/html/qandaentry.html"><code class="sgmltag-element">qandaentry</code></a> in a <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">TOC</code></a>, use its blockinfo/<a href="http://docbook.org/tdg5/en/html/titleabbrev.html"><code class="sgmltag-element">titleabbrev</code></a> or blockinfo/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>
+instead of <a href="http://docbook.org/tdg5/en/html/question.html"><code class="sgmltag-element">question</code></a>, if available. For DocBook 5, use the <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a> versions.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: chunktoc.xsl</code></p><pre class="screen"><span class="commit-message">Add support for generating <a href="http://docbook.org/tdg5/en/html/olink.html"><code class="sgmltag-element">olink</code></a> <a href="http://docbook.org/tdg5/en/html/database.html"><code class="sgmltag-element">database</code></a> when using chunktoc.xsl.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: verbatim.xsl</code></p><pre class="screen"><span class="commit-message">Add better pointer to README for XSLTHL</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: verbatim.xsl</code></p><pre class="screen"><span class="commit-message">Another stab at fixing the stupid XSLTHT includes across processors (Saxon regression reported by Sorin Ristache)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: verbatim.xsl</code></p><pre class="screen"><span class="commit-message">More tweaking the way that XSLTHL does or does not get called</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: verbatim.xsl</code></p><pre class="screen"><span class="commit-message">Alternate attempt at sanely including/excluding XSLTHT code</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.0_Manpages"></a>Manpages</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">manpages</code> code
+            since the 1.74.3 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: table.xsl</code></p><pre class="screen"><span class="commit-message">Convert function-available test for node-set() <a href="http://docbook.org/tdg5/en/html/function.html"><code class="sgmltag-element">function</code></a> to
+test of $exsl.node.set.available param.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: lists.xsl</code></p><pre class="screen"><span class="commit-message">Added a template for <a href="http://docbook.org/tdg5/en/html/bibliolist.html"><code class="sgmltag-element">bibliolist</code></a>. Closes bug #1815916.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.0_Epub"></a>ePub</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">epub</code> code
+            since the 1.74.3 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/onegraphic.xinclude.xml;&#8943;</code></p><pre class="screen"><span class="commit-message">Slightly more nuanced handling of <a href="http://docbook.org/tdg5/en/html/imageobject.html"><code class="sgmltag-element">imageobject</code></a> alternatives and better support in dbtoepub for XIncludes and ENTITYs to resolve Issue #2750442 reported by Raphael Hertzog.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Add a colon after an <a href="http://docbook.org/tdg5/en/html/abstract.html"><code class="sgmltag-element">abstract</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> when mapping into the dc:description for OPF metadata in ePub output to help the flat text have more pseudo-semantics (sugestions from Michael Wiedmann)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl; bin/spec/files/de.xml</code></p><pre class="screen"><span class="commit-message">Correctly set dc:language in OPF metadata when i18nizing. Closes Bug #2755150</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl</code></p><pre class="screen"><span class="commit-message">Corrected namespace declarations for <a href="http://docbook.org/tdg5/en/html/literal.html"><code class="sgmltag-element">literal</code></a> XHTML elements to make them serialize "normally"</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Be a little bit more nuanced about dates</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files/orm.book.001.x&#8943;</code></p><pre class="screen"><span class="commit-message">Add DocBook <a href="http://docbook.org/tdg5/en/html/subjectset.html"><code class="sgmltag-element">subjectset</code></a> -&gt; OPF dc:<a href="http://docbook.org/tdg5/en/html/subject.html"><code class="sgmltag-element">subject</code></a> mapping and tests</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files/orm.book.001.x&#8943;</code></p><pre class="screen"><span class="commit-message">Add DocBook <a href="http://docbook.org/tdg5/en/html/date.html"><code class="sgmltag-element">date</code></a> -&gt; OPF dc:date mapping and tests</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files/orm.book.001.x&#8943;</code></p><pre class="screen"><span class="commit-message">Add DocBook <a href="http://docbook.org/tdg5/en/html/abstract.html"><code class="sgmltag-element">abstract</code></a> -&gt; OPF dc:description mapping and tests</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Check in patch submitted by user to add opf:file-as attribute
+to dc:creator element.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/dbtoepub</code></p><pre class="screen"><span class="commit-message">Adding --output option to dbtoepub based on user request</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: docbook.xsl; bin/spec/epub_spec.rb</code></p><pre class="screen"><span class="commit-message">Cleaning and regularizing the generation of namespaced nodes for OPF, NCX, XHTML and other outputted filetypes (hat <a href="http://docbook.org/tdg5/en/html/tip.html"><code class="sgmltag-element">tip</code></a> to bobstayton for pointing out the silly, incorrect code)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/refclass.xml</code></p><pre class="screen"><span class="commit-message">Remove a nesting of &lt;p&gt; inside &lt;p&gt; for <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a> (made XHTML* invalid, made HTML silly)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/blockquotepre.xml</code></p><pre class="screen"><span class="commit-message">Added regression test and fix for XHTML validation problem with &lt;a&gt;s added inside &lt;<a href="http://docbook.org/tdg5/en/html/blockquote.html"><code class="sgmltag-element">blockquote</code></a>&gt;; This potentially causes another problem (where something is referenced by has no <a href="http://docbook.org/tdg5/en/html/anchor.html"><code class="sgmltag-element">anchor</code></a>, but someone reporting that should cause the whole &lt;a id='thing'/&gt; thing to be reconsidered with modern browsers in mind.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.0_HTMLHelp"></a>HTMLHelp</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">htmlhelp</code> code
+            since the 1.74.3 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: htmlhelp-common.xsl</code></p><pre class="screen"><span class="commit-message">Add support for generating <a href="http://docbook.org/tdg5/en/html/olink.html"><code class="sgmltag-element">olink</code></a> target <a href="http://docbook.org/tdg5/en/html/database.html"><code class="sgmltag-element">database</code></a> for htmlhelp files.</span></pre>
+</li></ul></div>
+</div>
+
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.0_Params"></a>Params</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">params</code> code
+            since the 1.74.3 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: default.table.rules.xml</code></p><pre class="screen"><span class="commit-message">Add default setting for @rules attribute on HTML markup tables.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: bookmarks.collapse.xml</code></p><pre class="screen"><span class="commit-message">Added a new parameter, <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/bookmarks.collapse.html"><em class="parameter"><code>bookmarks.collapse</code></em></a>, that controls the initial <a href="http://docbook.org/tdg5/en/html/state.html"><code class="sgmltag-element">state</code></a> 
+of the bookmark tree. When the parameter has a non-zero value (the default), 
+only the top-level bookmarks are displayed initially. Otherwise, the whole 
+tree of bookmarks is displayed. 
+
+This is implemented for FOP 0.9X. Closes FR #1792326.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: variablelist.term.properties.xml</code></p><pre class="screen"><span class="commit-message">Add new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/variablelist.term.properties.html"><em class="parameter"><code>variablelist.term.properties</code></em></a> to format terms, per 
+request # 1968513.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: qanda.defaultlabel.xml</code></p><pre class="screen"><span class="commit-message">Add two new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.defaultlabel.html"><em class="parameter"><code>qanda.defaultlabel</code></em></a> values so that numbered sections
+and numbered questions can be distinguished.  Satisfies
+Feature Request #1539045.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: index.links.to.section.xml</code></p><pre class="screen"><span class="commit-message">Change default to 1 to match past behavior.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: exsl.node.set.available.xml</code></p><pre class="screen"><span class="commit-message">Isolate this text for Xalan bug regarding exsl:node-set available.
+If it is ever fixed in Xalan, just fix it here.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: index.links.to.section.xml</code></p><pre class="screen"><span class="commit-message">Add param to control whether an <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> <a href="http://docbook.org/tdg5/en/html/entry.html"><code class="sgmltag-element">entry</code></a> links to
+a <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> or to the precise location of the
+<a href="http://docbook.org/tdg5/en/html/indexterm.html"><code class="sgmltag-element">indexterm</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: glossentry.list.item.properties.xml</code></p><pre class="screen"><span class="commit-message">New attribute list for <a href="http://docbook.org/tdg5/en/html/glossentry.html"><code class="sgmltag-element">glossentry</code></a> in <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: monospace.verbatim.font.width.xml</code></p><pre class="screen"><span class="commit-message">New parameter to support @width on <a href="http://docbook.org/tdg5/en/html/programlisting.html"><code class="sgmltag-element">programlisting</code></a> and <a href="http://docbook.org/tdg5/en/html/screen.html"><code class="sgmltag-element">screen</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: highlight.source.xml</code></p><pre class="screen"><span class="commit-message">Updated and reorganized the description.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: page.margin.outer.xml; page.margin.inner.xml</code></p><pre class="screen"><span class="commit-message">Add caveat about XEP bug when writing-mode is right-to-left.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: article.appendix.title.properties.xml; writing.mode.xml; body.start.indent&#8943;</code></p><pre class="screen"><span class="commit-message">Change 'left' to 'start' and 'right' to 'end' to support right-to-left
+writing mode.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: glossdef.block.properties.xml; glossdef.list.properties.xml; glossterm.blo&#8943;</code></p><pre class="screen"><span class="commit-message">Add attribute-sets for formatting <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a> terms and defs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: glossterm.separation.xml</code></p><pre class="screen"><span class="commit-message">Clarify the description.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: make.year.ranges.xml</code></p><pre class="screen"><span class="commit-message">Now handles <a href="http://docbook.org/tdg5/en/html/year.html"><code class="sgmltag-element">year</code></a> element containing a comma or dash without error.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.0_Highlighting"></a>Highlighting</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">highlighting</code> code
+            since the 1.74.3 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Jirka Kosek: README</code></p><pre class="screen"><span class="commit-message">Inclusion of highlighting code was simplified. Only one import is now necessary.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: README</code></p><pre class="screen"><span class="commit-message">Adding XSLTHL readme</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: common.xsl</code></p><pre class="screen"><span class="commit-message">Alternate attempt at sanely including/excluding XSLTHT code</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.0_XSL-Saxon"></a>XSL-Saxon</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">xsl-saxon</code> code
+            since the 1.74.3 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: src/com/nwalsh/saxon/Text.java</code></p><pre class="screen"><span class="commit-message">Added a fix that prevents output of extra blank line.
+Hopefully this closes bug #894805.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rn_V1.75.0_XSL-Xalan"></a>XSL-Xalan</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">xsl-xalan</code> code
+            since the 1.74.3 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: src/com/nwalsh/xalan/Text.java</code></p><pre class="screen"><span class="commit-message">Added a fix that prevents output of extra blank line.
+Hopefully this closes bug #894805.</span></pre>
+</li></ul></div>
+</div>
+
+
+</div>
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.74.3"></a>Release Notes: 1.74.3</h2></div></div></div>
+
+<p>This release fixes some bugs in the 1.74.2 release.</p>
+<p>See <code class="filename">highlighting/README</code> for XSLTHL usage instructions.</p>
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.74.2"></a>Release Notes: 1.74.2</h2></div></div></div>
+
+<p>This release fixes some bugs in the 1.74.1 release.</p>
+</div>
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.74.1"></a>Release Notes: 1.74.1</h2></div></div></div>
+
+<p>This release includes important bug fixes and adds the following
+significant feature changes:
+</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Gentext</span></dt><dd><p>Kirghiz locale added and Chinese translations have been simplified.</p><p>Somme support for gentext and right-to-left languages has been added.</p></dd><dt><span class="term">FO</span></dt><dd><p>Various bugs have been resolved. </p> <p>Support for a new processing instruction: <span class="markup">dbfo funcsynopsis-style</span> has been added.  </p> <p>Added new param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/email.mailto.enabled.html"><em class="parameter"><code>email.mailto.enabled</code></em></a> for FO output. Patch from Paolo Borelli.  </p>
+<p>Support for documented metadata in fop1 mode has been added. </p>
+</dd><dt><span class="term">Highlighting</span></dt><dd><p>Support for the latest version of XSLTHL 2.0 and some new language syntaxes have been added to a variety of outputs.</p></dd><dt><span class="term">Manpages</span></dt><dd><p>Added man.output.better.ps.enabled param (zero default). It non-zero, no such
+markup is embedded in generated man pages, and no enhancements are
+included in the PostScript output generated from those man pages
+by the man -Tps <a href="http://docbook.org/tdg5/en/html/command.html"><code class="sgmltag-element">command</code></a>.</p></dd><dt><span class="term">HTML</span></dt><dd><p>Support for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/writing.mode.html"><em class="parameter"><code>writing.mode</code></em></a> to set text direction and <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/alignment.html"><em class="parameter"><code>alignment</code></em></a> based on document locale has been added.</p>
+<p>Added a new top-level stylesheet module, chunk-changebars.xsl, to be 
+used for generating chunked output with highlighting based on change 
+(@revisionflag) markup. The module imports/includes the standard chunking 
+and changebars templates and contains additional logic for chunked output.
+See FRs #1015180 and #1819915.</p>
+</dd><dt><span class="term">ePub</span></dt><dd>
+<p>Covers now look better in Adobe Digital Editions thanks to a patch from Paul Norton of Adobe</p>
+<p>Cover handling now more generic (including limited DocBook 5.0 <span class="markup">cover</span> support thanks to patch contributed by Liza Daly.</p> <p>Cover markup now carries more reliably into files destined for .mobi and the Kindle.</p> <p><span class="markup">dc:identifiers</span> are now generated from more types of numbering schemes. </p><p>Both SEO and semantic structure of chunked ePub output by ensuring that we always send out one and only one h1 in each XHTML chunk.</p>
+<p>Primitive support for embedding a single font added.</p>
+
+<p>Support for embedding a CSS customizations added.</p>
+</dd><dt><span class="term">Roundtrip</span></dt><dd>
+<p>Support for imagedata-metadata and <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> as images added.</p>
+
+<p>Support for imagedata-metadata and <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a> as images added.</p>
+</dd><dt><span class="term">Params</span></dt><dd><p><a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.better.ps.enabled.html"><em class="parameter"><code>man.output.better.ps.enabled</code></em></a> added for Manpages output </p>
+<p><em class="parameter"><code>writing.mode.xml</code></em> added to set text direction.</p>
+
+<p>Added new param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/email.mailto.enabled.html"><em class="parameter"><code>email.mailto.enabled</code></em></a> for FO output.
+Patch from Paolo Borelli. Closes #2086321.</p>
+
+<p><a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/highlight.source.html"><em class="parameter"><code>highlight.source</code></em></a> upgraded to support the latest version of XSLTHL 2.0.</p>
+</dd></dl></div><p>
+</p>
+<p>The following is a list of changes that have been made since the 1.74.0 release.</p>
+
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="summary_V1.74.1_Gentext"></a>Gentext</h3></div></div></div>
+
+<p>The following changes have been made to the <code class="filename">gentext</code> code since the 1.74.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/ky.xml; Makefile</code></p><pre class="screen"><span class="commit-message">new Kirghiz locale from Ilyas Bakirov</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: locale/en.xml</code></p><pre class="screen"><span class="commit-message">Added "<a href="http://docbook.org/tdg5/en/html/acknowledgements.html"><code class="sgmltag-element">Acknowledgements</code></a>".</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Dongsheng Song: locale/zh_cn.xml</code></p><pre class="screen"><span class="commit-message">Simplified Chinese translation.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/lv.xml; locale/ca.xml; locale/pt.xml; locale/tr.xml; locale/af.xml;&#8943;</code></p><pre class="screen"><span class="commit-message">Add writing-mode gentext string to support right-to-left languages.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="summary_V1.74.1_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the <code class="filename">fo</code> code since the 1.74.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">David Cramer: footnote.xsl</code></p><pre class="screen"><span class="commit-message">Added a check to confirm that a <a href="http://docbook.org/tdg5/en/html/footnoteref.html"><code class="sgmltag-element">footnoteref</code></a>'s linkend points to a <a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a>. Stylesheets stop processing if not and provide a useful error message.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: spaces.xsl</code></p><pre class="screen"><span class="commit-message">Convert spaces to fo:leader also in elements in the DB 5 namespace.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: pi.xsl; synop.xsl</code></p><pre class="screen"><span class="commit-message">Added support for a new processing instruction: dbfo funcsynopsis-style. 
+Closes bug #1838213.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: inline.xsl; param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Added new param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/email.mailto.enabled.html"><em class="parameter"><code>email.mailto.enabled</code></em></a> for FO output.
+Patch from Paolo Borelli. Closes #2086321.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Added support for document metadata for fop1 (patch #2067318).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: param.ent; param.xweb; highlight.xsl</code></p><pre class="screen"><span class="commit-message">Upgraded to support the latest version of XSLTHL 2.0
+ -- nested markup in highlited code is now processed
+ -- it is no longer needed to specify path XSLTHL configuration file using Java property
+ -- support for new languages, including Perl, Python and Ruby was added</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="summary_V1.74.1_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the <code class="filename">html</code> code since the 1.74.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; docbook.xsl; param.ent; html.xsl</code></p><pre class="screen"><span class="commit-message">Add support for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/writing.mode.html"><em class="parameter"><code>writing.mode</code></em></a> to set text direction and <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/alignment.html"><em class="parameter"><code>alignment</code></em></a> based on document locale.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: chunk-changebars.xsl</code></p><pre class="screen"><span class="commit-message">Added a new top-level stylesheet module, chunk-changebars.xsl, to be 
+used for generating chunked output with highlighting based on change 
+(@revisionflag) markup. The module imports/includes the standard chunking 
+and changebars templates and contains additional logic for chunked output.
+See FRs #1015180 and #1819915.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="summary_V1.74.1_Manpages"></a>Manpages</h3></div></div></div>
+
+<p>The following changes have been made to the <code class="filename">manpages</code> code since the 1.74.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Put the following at the top of generated roff for each page:
+  \" t
+purpose is to explicitly tell AT&amp;T troff that the page needs to be
+pre-processed through tbl(1); groff can <a href="http://docbook.org/tdg5/en/html/figure.html"><code class="sgmltag-element">figure</code></a> it out
+automatically, but apparently AT&amp;T troff needs to be explicitly told</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="summary_V1.74.1_Epub"></a>ePub</h3></div></div></div>
+
+<p>The following changes have been made to the <code class="filename">epub</code> code since the 1.74.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Keith Fahlgren: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Patch from Paul Norton of Adobe to get covers to look better in Adobe Digital Editions</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/v5cover.xml; bin/spec/sp&#8943;</code></p><pre class="screen"><span class="commit-message">Patch contributed by Liza Daly to make ePub <a href="http://docbook.org/tdg5/en/html/cover.html"><code class="sgmltag-element">cover</code></a> handling more generic. Additionally
+DocBook 5.0's &lt;<a href="http://docbook.org/tdg5/en/html/cover.html"><code class="sgmltag-element">cover</code></a>&gt; now has some limited support:
+
+- should <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a> a <a href="http://docbook.org/tdg5/en/html/cover.html"><code class="sgmltag-element">cover</code></a> in the OPF guide for a DocBook 5.0 test document</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/spec/files/isbn.xml; bin/spec/files/issn.xml; bin/spec/files/biblioid.&#8943;</code></p><pre class="screen"><span class="commit-message">Liza Daly reported that the dc:identifer-generation code was garbage (she was right).
+
+Added new tests:
+- should include at least one dc:identifier
+- should include an ISBN as URN for dc:identifier if an ISBN was in the metadata
+- should include an ISSN as URN for dc:identifier if an ISSN was in the metadata
+- should include an <a href="http://docbook.org/tdg5/en/html/biblioid.html"><code class="sgmltag-element">biblioid</code></a> as a dc:identifier if an <a href="http://docbook.org/tdg5/en/html/biblioid.html"><code class="sgmltag-element">biblioid</code></a> was in the metadata
+- should include a URN for a <a href="http://docbook.org/tdg5/en/html/biblioid.html"><code class="sgmltag-element">biblioid</code></a> with @class attribute as a dc:identifier if an <a href="http://docbook.org/tdg5/en/html/biblioid.html"><code class="sgmltag-element">biblioid</code></a> was in the metadata</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: docbook.xsl; bin/spec/epub_spec.rb</code></p><pre class="screen"><span class="commit-message">Improve both SEO and  semantic structure of chunked ePub output by ensuring that
+we always send out one and only one h1 in each XHTML chunk.
+
+DocBook::Epub
+- should include one and only one &lt;h1&gt; in each HTML file in rendered ePub files
+for &lt;<a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a>&gt;s
+- should include one and only one &lt;h1&gt; in each HTML file in rendered ePub files
+for &lt;<a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a>&gt;s even if they do not have <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> markup</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files/orm.book.001.x&#8943;</code></p><pre class="screen"><span class="commit-message">Adding better support for covers in epub files destined for .mobi and the Kindle</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/dbtoepub; bin/lib/docbook.rb; bin/spec/files/DejaVuSerif.otf; docbook.&#8943;</code></p><pre class="screen"><span class="commit-message">Adding primitive support for embedding a single font</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/dbtoepub; bin/lib/docbook.rb; bin/spec/files/test_cust.xsl; bin/spec/e&#8943;</code></p><pre class="screen"><span class="commit-message">Adding support for user-specified customization layers in dbtoepub</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/dbtoepub; bin/spec/epub_regressions_spec.rb; bin/lib/docbook.rb; bin/s&#8943;</code></p><pre class="screen"><span class="commit-message">Adding CSS support to .epub target &amp; dbtoepub:
+    -c, --css [FILE]                 Use FILE for CSS on generated XHTML.
+
+
+DocBook::Epub
+...
+- should include a CSS <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> in HTML files when a CSS file has been provided
+- should include CSS file in .epub when a CSS file has been provided
+- should include a CSS <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> in OPF file when a CSS file has been provided</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="summary_V1.74.1_Roundtrip"></a>Roundtrip</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">roundtrip</code> code
+            since the 1.74.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Steve Ball: blocks2dbk.xsl; template.xml; template.dot</code></p><pre class="screen"><span class="commit-message">added support for imagedata-metadata
+added support for <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> as images</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: blocks2dbk.xsl; normalise2sections.xsl; sections2blocks.xsl</code></p><pre class="screen"><span class="commit-message">Improved support for <a href="http://docbook.org/tdg5/en/html/personname.html"><code class="sgmltag-element">personname</code></a> inlines.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: blocks2dbk.xsl; blocks2dbk.dtd; template.xml</code></p><pre class="screen"><span class="commit-message">Added support for <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: blocks2dbk.xsl; wordml2normalise.xsl</code></p><pre class="screen"><span class="commit-message">added support for <a href="http://docbook.org/tdg5/en/html/orgname.html"><code class="sgmltag-element">orgname</code></a> in <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a></span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: specifications.xml; supported.xml; blocks2dbk.xsl; wordml2normalise.xsl; dbk2w&#8943;</code></p><pre class="screen"><span class="commit-message">Updated specification.
+to-DocBook: add cols attribute to <a href="http://docbook.org/tdg5/en/html/tgroup.html"><code class="sgmltag-element">tgroup</code></a>
+from-DocBook: fix for <a href="http://docbook.org/tdg5/en/html/blockquote.html"><code class="sgmltag-element">blockquote</code></a> <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a></span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="summary_V1.74.1_Params"></a>Params</h3></div></div></div>
+
+<p>The following changes have been made to the <code class="filename">params</code> since the 1.74.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>The change was to add man.output.better.ps.enabled parameter, with
+its default value set to zero.
+
+If the value of the man.output.better.ps.enabled parameter is
+non-zero, certain markup is embedded in each generated man page
+such that PostScript output from the man -Tps <a href="http://docbook.org/tdg5/en/html/command.html"><code class="sgmltag-element">command</code></a> for that
+page will include a number of enhancements designed to improve the
+quality of that output.
+
+If man.output.better.ps.enabled is zero (the default), no such
+markup is embedded in generated man pages, and no enhancements are
+included in the PostScript output generated from those man pages
+by the man -Tps <a href="http://docbook.org/tdg5/en/html/command.html"><code class="sgmltag-element">command</code></a>.
+
+WARNING: The enhancements provided by this parameter rely on
+features that are specific to groff (GNU troff) and that are not
+part of "classic" AT&amp;T troff or any of its derivatives. Therefore,
+any man pages you generate with this parameter enabled will be
+readable only on systems on which the groff (GNU troff) program is
+installed, such as GNU/Linux systems.  The pages will not not be
+readable on systems on with the classic troff (AT&amp;T troff) <a href="http://docbook.org/tdg5/en/html/command.html"><code class="sgmltag-element">command</code></a>
+is installed.
+
+NOTE: The value of this parameter only affects PostScript output
+generated from the man <a href="http://docbook.org/tdg5/en/html/command.html"><code class="sgmltag-element">command</code></a>. It has no effect on output
+generated using the FO backend.
+
+<a href="http://docbook.org/tdg5/en/html/tip.html"><code class="sgmltag-element">TIP</code></a>: You can generate PostScript output for any man page by
+running the following <a href="http://docbook.org/tdg5/en/html/command.html"><code class="sgmltag-element">command</code></a>:
+
+man FOO -Tps &gt; FOO.ps
+
+You can then generate PDF output by running the following <a href="http://docbook.org/tdg5/en/html/command.html"><code class="sgmltag-element">command</code></a>:
+
+ps2pdf FOO.ps</p>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: writing.mode.xml</code></p><pre class="screen"><span class="commit-message">writing mode param used to set text direction.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: email.mailto.enabled.xml</code></p><pre class="screen"><span class="commit-message">Added new param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/email.mailto.enabled.html"><em class="parameter"><code>email.mailto.enabled</code></em></a> for FO output.
+Patch from Paolo Borelli. Closes #2086321.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: highlight.source.xml; highlight.xslthl.config.xml</code></p><pre class="screen"><span class="commit-message">Upgraded to support the latest version of XSLTHL 2.0
+ -- nested markup in highlited code is now processed
+ -- it is no longer needed to specify path XSLTHL configuration file using Java property
+ -- support for new languages, including Perl, Python and Ruby was added</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="summary_V1.74.1_Highlighting"></a>Highlighting</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">highlighting</code> code
+            since the 1.74.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Jirka Kosek: cpp-hl.xml; c-hl.xml; tcl-hl.xml; php-hl.xml; common.xsl; perl-hl.xml; delphi&#8943;</code></p><pre class="screen"><span class="commit-message">Upgraded to support the latest version of XSLTHL 2.0
+ -- nested markup in highlited code is now processed
+ -- it is no longer needed to specify path XSLTHL configuration file using Java property
+ -- support for new languages, including Perl, Python and Ruby was added</span></pre>
+</li></ul></div>
+</div>
+
+</div>
+
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.74.0"></a>Release Notes: 1.74.0</h2></div></div></div>
+
+<p>This release includes important bug fixes and adds the following
+significant feature changes:
+</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">.epub target</span></dt><dd><p>Paul Norton (Adobe) and Keith Fahlgren(O'Reilly Media) have donated code that generates <code class="filename">.epub</code> documents from
+DocBook input. An alpha-reference implementation in Ruby has also been provided.</p>
+<p>.epub is an open standard of the The International Digital Publishing Forum (IDPF), 
+a the trade and standards association for the digital publishing industry. </p> 
+<p>Read more about this target in <code class="filename">epub/README</code>
+</p></dd><dt><span class="term">XHTML 1.1 target</span></dt><dd><p>To support .epub output, a strict XHTML 1.1 target has been added. The stylesheets for this output are
+generated and are quite similar to the XHTML target.</p></dd><dt><span class="term">Gentext updates</span></dt><dd><p>A number of locales have been updated.</p></dd><dt><span class="term">Roundtrip improvements</span></dt><dd><p>Table, figure, template syncronization, and character style improvements have been made for WordML &amp; Pages. Support added for OpenOffice.org.</p></dd><dt><span class="term">First implementation of a libxslt extension</span></dt><dd>
+      <p>A stylesheet extension for libxslt, written in Python, has been added. 
+      The extension is a function for adjusting column widths in CALS tables. See 
+      <code class="filename">extensions/README.LIBXSLT</code> for more information.</p>
+    </dd></dl></div><p>
+</p>
+<p>The following is a list of changes that have been made
+        since the 1.73.2 release.</p>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_Gentext"></a>Gentext</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">gentext</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/id.xml</code></p><pre class="screen"><span class="commit-message">Checked in changes to Indonesion locale submitted by Euis Luhuanam a long time ago.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/lt.xml</code></p><pre class="screen"><span class="commit-message">Added changes to Lithuanian locate submitted a long time back by Nikolajus Krauklis.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/hu.xml</code></p><pre class="screen"><span class="commit-message">fixed error in lowercase.alpha definition in Hungarian locale</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/nb.xml</code></p><pre class="screen"><span class="commit-message">Corrected language code for nb locale, and restored missing "startquote" key.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/ja.xml</code></p><pre class="screen"><span class="commit-message">Committed changes to ja locale file, from Akagi Kobayashi. Adds bracket quotes around many xref instances that did not have them
+before.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: Makefile</code></p><pre class="screen"><span class="commit-message">"no" locale is now "nb"</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/nb.xml</code></p><pre class="screen"><span class="commit-message">Update Norwegian Bokmål translation. Thanks to Hans F. Nordhaug.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/no.xml; locale/nb.xml</code></p><pre class="screen"><span class="commit-message">per message from Hans F. Nordhaug, correct identifier for
+Norwegian Bokmål is "nb" (not "no") and has been for quite some
+time now...</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/ja.xml</code></p><pre class="screen"><span class="commit-message">Converted ja.xml source file to use real unicode characters so
+that the actual glyphs so up when you edit it in a text editor
+(instead of the character references).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/ja.xml</code></p><pre class="screen"><span class="commit-message">Checked in changes to ja.xml locale file. Thanks to Akagi Kobayashi.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/it.xml</code></p><pre class="screen"><span class="commit-message">Changes from Federico Zenith</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Dongsheng Song: locale/zh_cn.xml</code></p><pre class="screen"><span class="commit-message">Added missing translations.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_Common"></a>Common</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">common</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: l10n.xsl</code></p><pre class="screen"><span class="commit-message">Added new template "l10.language.name" for retrieving the
+English-language name of the lang setting of the current document.
+Closes #1916837. Thanks to Simon Kennedy.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.xsl</code></p><pre class="screen"><span class="commit-message">fixed syntax error</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.xsl</code></p><pre class="screen"><span class="commit-message">fixed a couple of typos</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.xsl</code></p><pre class="screen"><span class="commit-message">refined handling of cases where refentry "source" or "manual"
+metadata is missing or when we use fallback content instead. We
+now report a Warning if we use fallback content.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.xsl</code></p><pre class="screen"><span class="commit-message">don't use refmiscinfo@class=date value as fallback for refentry
+"source" or "manual" metadata fields</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.xsl</code></p><pre class="screen"><span class="commit-message">Made reporting of missing refentry metadata more quiet:
+
+  - we no longer report anything if usable-but-not-preferred
+    metadata is found; we just quietly use whatever we manage to
+    find
+
+  - we now only report missing "source" metadata if the refentry
+    is missing BOTH "source name" and "version" metadata; if it
+    has one but not the other, we use whichever one it has and
+    don't report anything as missing
+
+The above changes were made because testing with some "real world"
+source reveals that some authors are intentionally choosing to use
+"non preferred" markup for some metadata, and also choosing to
+omit "source name" or "version" metadata in there DocBook XML. So
+it does no good to give them pedantic reminders about what they
+already know...
+
+Also, changed code to cause "fixme" text to be inserted in output
+in particular cases:
+
+  - if we can't manage to find any "source" metadata at all, we
+    now put fixme text into the output
+
+  - if we can't manage to find any "manual" metadata a all, we 
+    now put fixme text into the output
+
+The "source" and "manual" metadata is necessary information, so
+buy putting the fixme stuff in the output, we alert users to the
+need problem of it being missing.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.xsl</code></p><pre class="screen"><span class="commit-message">When generating manpages output, we no longer report anything if
+the refentry source is missing date or pubdate content. In
+practice, many users intentionally omit the date from the source
+because they explicitly want it to be generated.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: l10n.xml</code></p><pre class="screen"><span class="commit-message">further change needed for switch from no locale to nb.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: common.xsl</code></p><pre class="screen"><span class="commit-message">Added support for orgname in authorgroup. Thanks to Camille
+Bégnis.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: Makefile</code></p><pre class="screen"><span class="commit-message">"no" locale is now "nb"</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: stripns.xsl</code></p><pre class="screen"><span class="commit-message">Removed the template matching "ng:link|db:link" (in order to make @xlink:show 
+work with &lt;link&gt; elements). As far as I can tell, this template is no longer needed.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: entities.ent</code></p><pre class="screen"><span class="commit-message">Moved declaration of comment.block.parents entity to common/entities.ent.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titles.xsl</code></p><pre class="screen"><span class="commit-message">Added an update the fix made in revision 7528 (handling of xref/link in no.anchor.mode mode).
+Having xref in title is not a problem as long as the target is not an ancestor element. 
+Closes bug #1838136.
+
+Note that an xref that is in a title and whose target is an ancestor element is still not 
+rendered in the TOC. This could be considered a bug, but on the other hand I cannot really
+see the point in having such an xref in a document.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titles.xsl</code></p><pre class="screen"><span class="commit-message">Added a "not(ancestor::title)" test to work around "too many nested 
+apply-templates" problems when processing xrefs or links in no.anchor.mode mode.
+Hopefully, this closes bug #1811721.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titles.xsl</code></p><pre class="screen"><span class="commit-message">Removed old template matching "link" in no.anchor.mode mode.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titles.xsl</code></p><pre class="screen"><span class="commit-message">Process &lt;link&gt; in no.anchor.mode mode with the same template as &lt;xref&gt;. 
+Closes bug #1759205 (Empty link in no.anchor.mode mode).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titles.xsl</code></p><pre class="screen"><span class="commit-message">In no.anchor.mode mode, do not output anchors for elements that are descendants 
+of &lt;title&gt;. Previously, having inline elements with @id/@xml:id in &lt;title&gt;s 
+resulted in anchors both in the TOC and in the main flow. Closes bug #1797492.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">fo</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> <p><code class="literal">Mauritz Jeanson: pi.xsl</code></p><pre class="screen"><span class="commit-message">Updated documentation for keep-together.</span></pre> </li><li class="listitem"> <p><code class="literal">Mauritz Jeanson: task.xsl</code></p><pre class="screen"><span class="commit-message">Enabled use of the keep-together PI on <a href="http://docbook.org/tdg5/en/html/task.html"><code class="sgmltag-element">task</code></a> elements.</span></pre> </li><li class="listitem">
+<p><code class="literal">Robert Stayton: index.xsl</code></p><pre class="screen"><span class="commit-message">FOP1 requires fo:wrapper for inline index entries, not fo:inline.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: index.xsl</code></p><pre class="screen"><span class="commit-message">Fixed non-working inline.or.block template for indexterm wrappers.
+Add fop1 to list of processors using inline.or.block.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: table.xsl</code></p><pre class="screen"><span class="commit-message">Fixed bug #1891965 (colsep in entytbl not working).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Added support for title in revhistory. Closes bug #1842847.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: pi.xsl</code></p><pre class="screen"><span class="commit-message">Small doc cleanup (dbfo float-type).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Insert commas between multiple copyright holders.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: autotoc.xsl; division.xsl</code></p><pre class="screen"><span class="commit-message">Added modifications to support nested set elements. See bug #1853172.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: glossary.xsl</code></p><pre class="screen"><span class="commit-message">Added normalize-space to xsl:sorts to avoid missorting of glossterms due to stray leading spaces.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: glossary.xsl</code></p><pre class="screen"><span class="commit-message">Fixed bug #1854199: glossary.xsl should use the sortas attribute on glossentry</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: inline.xsl</code></p><pre class="screen"><span class="commit-message">Added a template for citebiblioid. The hyperlink target is the parent of the referenced biblioid,
+and the "hot text" is the biblioid itself enclosed in brackets.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: inline.xsl</code></p><pre class="screen"><span class="commit-message">Moved declaration of comment.block.parents entity to common/entities.ent.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Updated message about unmatched element.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: param.xweb</code></p><pre class="screen"><span class="commit-message">Added link to profiling chapter of TCG.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: refentry.xsl</code></p><pre class="screen"><span class="commit-message">Fixed typo (refsynopsysdiv -&gt; refsynopsisdiv).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: fop.xsl; fop1.xsl; ptc.xsl; xep.xsl</code></p><pre class="screen"><span class="commit-message">Added test to check generate.index param when generating pdf bookmarks</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: graphics.xsl</code></p><pre class="screen"><span class="commit-message">Added support for MathML in imagedata.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: math.xsl</code></p><pre class="screen"><span class="commit-message">Removed unnecessary extra test condition in test express that
+checks for passivetex.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: math.xsl</code></p><pre class="screen"><span class="commit-message">Don't use fo:instream-foreign-object if we are processing with
+passivetex. Closes #1806899. Thanks to Justus Piater.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: component.xsl</code></p><pre class="screen"><span class="commit-message">Added code to output a TOC for an appendix in an article when 
+generate.toc='article/appendix toc'. Closes bug #1669658.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Dongsheng Song: biblio-iso690.xsl</code></p><pre class="screen"><span class="commit-message">Change encoding from "windows-1250" to "UTF-8".</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: pi.xsl</code></p><pre class="screen"><span class="commit-message">Updated documentation for dbfo_label-width.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: lists.xsl</code></p><pre class="screen"><span class="commit-message">Added support for the dbfo_label-width PI in calloutlists.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: biblio.xsl</code></p><pre class="screen"><span class="commit-message">Support finding glossary database entries inside bibliodivs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: formal.xsl</code></p><pre class="screen"><span class="commit-message">Complete support for &lt;?dbfo pgwide="1"?&gt; for informal
+elements too.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: table.xsl</code></p><pre class="screen"><span class="commit-message">In the table.block template, added a check for the dbfo_keep-together PI, so that 
+a table may break (depending on the PI value) at a page break. This was needed 
+since the outer fo:block that surrounds fo:table has keep-together.within-column="always" 
+by default, which prevents the table from breaking. Closes bug #1740964 (Titled 
+table does not respect dbfo PI).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: pi.xsl</code></p><pre class="screen"><span class="commit-message">Added a few missing @role="tcg".</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: inline.xsl</code></p><pre class="screen"><span class="commit-message">Use normalize-space() in glossterm comparisons (as in html/inline.xsl).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: autoidx.xsl</code></p><pre class="screen"><span class="commit-message">Removed the [&amp;scope;] predicate from the target variable in the template with name="reference".
+This filter was the cause of missing index backlinks when @zone and @type were used on indexterms,
+with index.on.type=1. Closes bug #1680836.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: inline.xsl; xref.xsl; footnote.xsl</code></p><pre class="screen"><span class="commit-message">Added capability in FO output for displaying URLs for all
+hyperlinks (elements marked up with xlink:href attributes) in the
+same way as URLs for ulinks are already handled (which is to say,
+either inline or as numbered footnotes).
+
+Background on this change:
+DocBook 5 allows "ubiquitous" linking, which means you can make
+any element a hyperlink just by adding an xlink:href attribute to
+it, with the value set to an external URL. That's in contrast to
+DocBook 4, which only allows you to use specific elements (e.g.,
+the link and ulink elements) to mark up hyperlinks.
+
+The existing FO stylesheets have a mechanism for handling display
+of URLs for hyperlinks that are marked up with ulink, but they did
+not handle display of URLs for elements that were marked up with
+xlink:href attributes. This change adds handling for those other
+elements, enabling the URLs they link to be displayed either
+inline or as numbered footnotes (depending on what values the user
+has the ulink.show and ulink.footnotes params set to).
+
+Note that this change only adds URL display support for elements
+that call the simple.xlink template -- which currently is most
+(but not all) inline elements.
+
+This change also moves the URL display handling out of the ulink
+template and into a new "hyperlink.url.display" named template;
+the ulink template and the simple.xlink named template now both
+call the hyperlink.url.display template.
+
+Warning: In the stylesheet code that determines what footnote
+number to assign to each footnote or external hyperlink, there is
+an XPath expression for determining whether a particular
+xlink:href instance is an external hyperlink; that expression is
+necessarily a bit complicated and further testing may reveal that
+it doesn't handle all cases as expected -- so some refinements to
+it may need to be done later.
+
+Closes #1785519. Thanks to Ken Morse for reporting and
+troubleshooting the problem.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">html</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> <p><code class="literal">Keith Fahlgren: inline.xsl; synop.xsl</code></p><pre class="screen"><span class="commit-message">Work to make HTML and XHTML targets more valid</span></pre> </li><li class="listitem"> <p><code class="literal">Keith Fahlgren: table.xsl</code></p><pre class="screen"><span class="commit-message">Add better handling for tables that have footnotes in the titles</span></pre> </li><li class="listitem"> <p><code class="literal">Keith Fahlgren: biblio.xsl</code></p><pre class="screen"><span class="commit-message">Add anchors to bibliodivs</span></pre> </li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: formal.xsl; Makefile; htmltbl.xsl</code></p><pre class="screen"><span class="commit-message">Initial checkin/merge of epub target from work provided by Paul Norton of Adobe
+and Keith Fahlgren of O'Reilly.</span></pre>
+<p>This change includes new code for generating the XHTML 1.1 target sanely.</p>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: biblio.xsl</code></p><pre class="screen"><span class="commit-message">Added code for creating URLs from biblioids with @class="doi" (representing Digital 
+Object Identifiers). See FR #1934434 and http://doi.org.
+
+To do: 1) Add support for FO output. 2) Figure out how @class="doi" should be handled 
+for bibliorelation, bibliosource and citebiblioid.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Norman Walsh: formal.xsl</code></p><pre class="screen"><span class="commit-message">Don't use xsl:copy because it forces the resulting element to be in the same namespace as the source element; in the XHTML stylesheets, that's wrong. But the HTML-to-XHTML converter does the right thing with literal result elements, so use one of them.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: Makefile</code></p><pre class="screen"><span class="commit-message">Added checks and hacks to various makefiles to enable building
+under Cygwin. This stuff is ugly and maybe not worth the mess and
+trouble, but does seem to work as expected and not break anything
+else.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: docbook.xsl</code></p><pre class="screen"><span class="commit-message">added "exslt" namespace binding to html/docbook.xsl file (in
+addition to existing "exsl" binding. reason is because lack of it
+seems to cause processing problems when using the profiled
+version of the stylsheet</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Norman Walsh: chunk-common.xsl</code></p><pre class="screen"><span class="commit-message">Rename link</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: table.xsl</code></p><pre class="screen"><span class="commit-message">Added a fix to make rowsep apply to the last row of thead in entrytbl.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: synop.xsl</code></p><pre class="screen"><span class="commit-message">Simplified and streamlined handling of output for ANSI-style
+funcprototype output, to correct a problem that was causing type
+data to be lost in the output parameter definitions. For example,
+for an instance like this:
+  &lt;paramdef&gt;void *&lt;parameter&gt;dataptr&lt;/parameter&gt;[]&lt;/paramdef&gt;
+... the brackets (indicating an array type) were being dropped.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: synop.xsl</code></p><pre class="screen"><span class="commit-message">Changed HTML handling of K&amp;R-style paramdef output. The parameter
+definitions are no longer output in a table (though the prototype
+still is). The reason for the change is that the
+kr-tabular-funcsynopsis-mode template was causing type data to be
+lost in the output parameter definitions. For example, for an
+instance like this:
+  &lt;paramdef&gt;void *&lt;parameter&gt;dataptr&lt;/parameter&gt;[]&lt;/paramdef&gt;
+... the brackets (indicating an array type) were being dropped.
+The easiest way to deal with the problem is to not try to chop up
+the parameter definitions and display them in table format, but to
+instead just output them as-is. May not look quite as pretty, but
+at least we can be sure no information is being lost...</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: pi.xsl</code></p><pre class="screen"><span class="commit-message">updated wording of doc for funcsynopsis-style PI</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: param.xweb; param.ent; synop.xsl</code></p><pre class="screen"><span class="commit-message">Removed the funcsynopsis.tabular.threshold param. It's no longer
+being used in the code and hasn't been since mid 2006.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: graphics.xsl</code></p><pre class="screen"><span class="commit-message">Added support for the img.src.path parameter for SVG graphics. Closes bug #1888169.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: chunk-common.xsl</code></p><pre class="screen"><span class="commit-message">Added missing space.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Norman Walsh: component.xsl</code></p><pre class="screen"><span class="commit-message">Fix bug where component titles inside info elements were not handled properly</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: pi.xsl</code></p><pre class="screen"><span class="commit-message">Moved dbhtml_stop-chunking embedded doc into alphabetical order,
+fixed text of TCG section it see-also'ed.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: pi.xsl</code></p><pre class="screen"><span class="commit-message">Added support for &lt;?dbhtml stop-chunking?&gt; processing instruction</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: chunk-common.xsl; pi.xsl</code></p><pre class="screen"><span class="commit-message">Added support for &lt;?dbhtml stop-chunking?&gt; processing instruction</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: glossary.xsl</code></p><pre class="screen"><span class="commit-message">Fixed bug #1854199: glossary.xsl should use the sortas attribute on glossentry. Also added normalize-space to avoid missorting due to stray leading spaces.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: inline.xsl</code></p><pre class="screen"><span class="commit-message">Added a template for citebiblioid. The hyperlink target is the parent of the referenced biblioid,
+and the "hot text" is the biblioid itself enclosed in brackets.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: inline.xsl</code></p><pre class="screen"><span class="commit-message">Added support for @xlink:show in the simple.xlink template. The "new" and "replace" 
+values are supported (corresponding to values of "_blank" and "_top" for the 
+ulink.target parameter). I have assumed that @xlink:show should override ulink.target
+for external URI links. This closes bugs #1762023 and #1727498.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: inline.xsl</code></p><pre class="screen"><span class="commit-message">Moved declaration of comment.block.parents entity to common/entities.ent.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: param.xweb</code></p><pre class="screen"><span class="commit-message">Added link to profiling chapter of TCG.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Dongsheng Song: biblio-iso690.xsl</code></p><pre class="screen"><span class="commit-message">Change encoding from "windows-1250" to "UTF-8".</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: biblio.xsl</code></p><pre class="screen"><span class="commit-message">Add support in biblio collection to entries in bibliodivs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: pi.xsl</code></p><pre class="screen"><span class="commit-message">Added missing @role="tcg".</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: chunk-common.xsl; titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Refactored legalnotice/revhistory chunking, so that the use.id.as.filename 
+parameter as well as the dbhtml_filename PI are taken into account. A new named
+template in titlepage.xsl is used to compute the filename.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: chunk-common.xsl; titlepage.xsl</code></p><pre class="screen"><span class="commit-message">An update to the fix for bug #1790495 (r7433):
+The "ln-" prefix is output only when the legalnotice doesn't have an
+@id/@xml:id, in which case the stylesheets generate an ID value, 
+resulting in a filename like "ln-7e0fwgj.html". This is useful because 
+without the prefix, you wouldn't know that the file contained a legalnotice. 
+The same logic is also applied to revhistory, using an "rh-" prefix.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: autoidx.xsl</code></p><pre class="screen"><span class="commit-message">Removed the [&amp;scope;] predicate from the target variable in the template with name="reference".
+This filter was the cause of missing index backlinks when @zone and @type were used on indexterms,
+with index.on.type=1. Closes bug #1680836.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Added 'ln-' prefix to the name of the legalnotice chunk, in order to match the 
+&lt;link href"..."&gt; that is output by make.legalnotice.head.links (chunk-common.xsl).
+Modified the href attribute on the legalnotice link.
+Closes bug #1790495.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_Manpages"></a>Manpages</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">manpages</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: other.xsl</code></p><pre class="screen"><span class="commit-message">slightly adjusted spacing around admonition markers</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.xsl; utility.xsl</code></p><pre class="screen"><span class="commit-message">make sure refsect3 titles are preceded by a line of space, and
+make the indenting of their child content less severe</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl</code></p><pre class="screen"><span class="commit-message">only indent verbatim environments in TTY output, not in non-TTY/PS</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl</code></p><pre class="screen"><span class="commit-message">made another adjustment to correct vertical alignment of admonition marker</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl; other.xsl</code></p><pre class="screen"><span class="commit-message">Adjusted/corrected alignment of adominition marker in PS/non-TTY output.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: endnotes.xsl</code></p><pre class="screen"><span class="commit-message">For PS/non-TTY output, display footnote/endnote numbers in
+superscript.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: table.xsl; synop.xsl; utility.xsl</code></p><pre class="screen"><span class="commit-message">Changed handling of hanging indents for cmdsynopsis, funcsynopsis,
+and synopfragment such that they now look correct in non-TTY/PS
+output. We now use the groff \w escape to hang by the actual width
+-- in the current font -- of the command, funcdef, or
+synopfragment references number (as opposed to hanging by the
+number of characters). This rendering in TTY output remains the
+same, since the width in monospaced TTY output is the same as the
+number of characters.
+
+Also, created new synopsis-block-start and synopsis-block-end
+templates to use for cmdsynopsis and funcsynopsis instead of the
+corresponding verbatim-* templates.
+
+Along with those changes, also corrected a problem that caused the
+content of synopfragment to be dropped, and made a
+vertical-spacing change to adjust spacing around table titles and
+among sibling synopfragment instances.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: other.xsl</code></p><pre class="screen"><span class="commit-message">use common l10.language.name template to retrieve English-language name</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: synop.xsl; inline.xsl</code></p><pre class="screen"><span class="commit-message">added comment in code explaining why we don't put filename output
+in italic (despite the fact that man guidelines say we should)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: inline.xsl</code></p><pre class="screen"><span class="commit-message">put filename output in monospace instead of italic</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: synop.xsl</code></p><pre class="screen"><span class="commit-message">put cmdsynopsis in monospace</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: inline.xsl</code></p><pre class="screen"><span class="commit-message">removed template match for literal. template matches for monospace
+inlines are all imported from the HTML stylesheet</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl</code></p><pre class="screen"><span class="commit-message">don't indent verbatim environments that are descendants of
+refsynopsisdiv, not put backgrounds behind them</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: inline.xsl</code></p><pre class="screen"><span class="commit-message">set output of the literal element in monospace. this causes all
+inline monospace instances in the git man pages to be set in
+monospace (since DocBook XML source for git docs is generated with
+asciidoc and asciidoc consistently outputs only &lt;literal&gt; for
+inline monospace (not &lt;command&gt; or &lt;code&gt; or anything else).
+Of course this only affects non-TTY output...</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: utility.xsl</code></p><pre class="screen"><span class="commit-message">Added inline.monoseq named template.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: utility.xsl</code></p><pre class="screen"><span class="commit-message">don't bother using a custom register to store the previous
+font-family value when setting blocks of text in code font; just
+use \F[] .fam with no arg to switch back</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: endnotes.xsl</code></p><pre class="screen"><span class="commit-message">put links in blue in PS output (note that this matches how groff
+renders content marked up with the .URL macro)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: endnotes.xsl; param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">removed man.links.are.underlined and added man.font.links. Also,
+changed the default font formatting for links to bold.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: endnotes.xsl; param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Added new param man.base.url.for.relative.links .. specifies a
+base URL for relative links (for ulink, @xlink:href, imagedata,
+audiodata, videodata) shown in the generated NOTES section of
+man-page output. The value of man.base.url.for.relative.links is
+prepended to any relative URI that is a value of ulink url,
+xlink:href, or fileref attribute.
+
+If you use relative URIs in link sources in your DocBook refentry
+source, and you leave man.base.url.for.relative.links unset, the
+relative links will appear "as is" in the NOTES section of any
+man-page output generated from your source. That's probably not
+what you want, because such relative links are only usable in the
+context of HTML output. So, to make the links meaningful and
+usable in the context of man-page output, set a value for
+man.base.url.for.relative.links that points
+to the online version of HTML output generated from your DocBook
+refentry source. For example:
+
+  &lt;xsl:param name="man.base.url.for.relative.links"
+  &gt;http://www.kernel.org/pub/software/scm/git/docs/&lt;/xsl:param&gt;</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: info.xsl</code></p><pre class="screen"><span class="commit-message">If a source refentry contains a Documentation or DOCUMENTATION
+section, don't report it as having missing AUTHOR information.
+Also, if missing a contrib/personblurb for a person or org, report
+pointers to http://docbook.sf.net/el/personblurb and to
+http://docbook.sf.net/el/contrib</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: info.xsl</code></p><pre class="screen"><span class="commit-message">If we encounter an author|editor|othercredit instance that lacks a
+personblurb or contrib, report it to the user (because that means
+we have no information about that author|editor|othercredit to
+display in the generated AUTHOR|AUTHORS section...)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: info.xsl; docbook.xsl; other.xsl</code></p><pre class="screen"><span class="commit-message">if we can't find any usable author data, emit a warning and insert
+a fixme in the output</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: info.xsl</code></p><pre class="screen"><span class="commit-message">fixed bug in indenting of output for contrib instances in AUTHORS
+section. Thanks to Daniel Leidert and the fglrx docs for exposing
+the bug.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl</code></p><pre class="screen"><span class="commit-message">for a para or simpara that is the first child of a callout,
+suppress the .sp or .PP that would normally be output (because in
+those cases, the output goes into a table cell, and the .sp or .PP
+markup causes a spurious linebreak before it when displayed</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: lists.xsl</code></p><pre class="screen"><span class="commit-message">Added support for rendering co callouts and calloutlist instances.
+So you can now use simple callouts -- marking up programlisting
+and such with co instances -- and have the callouts displayed in
+man-page output. ("simple callouts" means using co@id and
+callout@arearefs pointing to co@id instances; in man/roff output,
+we can't/don't support markup that uses areaset and area)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl</code></p><pre class="screen"><span class="commit-message">only put a line of space after a verbatim if it's followed by a
+text node or a paragraph</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: utility.xsl</code></p><pre class="screen"><span class="commit-message">put verbatim environments in slightly smaller font in non-TTY
+output</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: lists.xsl</code></p><pre class="screen"><span class="commit-message">minor whitespace-only reformatting of lists.xsl source</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: lists.xsl</code></p><pre class="screen"><span class="commit-message">Made refinements/fixes to output of orderedlist and itemizedlist
+-- in part, to get mysql man pages to display correctly. This
+change causes a "\c" continuation marker to be added between
+listitem markers and contents (to ensure that the content remains
+on the same line as the marker when displayed)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl</code></p><pre class="screen"><span class="commit-message">put a line of vertical space after all verbatim output that has
+sibling content following it (not just if that sibling content is
+a text node)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl</code></p><pre class="screen"><span class="commit-message">refined spacing around titles for admonitions</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl; other.xsl</code></p><pre class="screen"><span class="commit-message">Deal with case of verbatim environments that have a linebreak
+after the opening tag. Assumption is that users generally don't
+want that linebreak to appear in output, so we do some groff
+hackery to mess with vertical spacing and close the space.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: inline.xsl</code></p><pre class="screen"><span class="commit-message">indexterm instances now produce groff comments like this:
+
+  .\" primary: secondary: tertiary
+
+remark instances, if non-empty, now produce groff comments</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: charmap.groff.xsl; other.xsl</code></p><pre class="screen"><span class="commit-message">convert no-break space character to groff "\ \&amp;" (instead of just
+"\ "). the reason is that if a space occurs at the end of a line,
+our processing causes it to be eaten. a real-world case of this is
+the mysql(1) man page. appending the "\&amp;" prevents that</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl</code></p><pre class="screen"><span class="commit-message">output "sp" before simpara output, not after it (outputting it
+after results in undesirable whitespace in particular cases; for
+example, in the hg/mercurial docs</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: table.xsl; synop.xsl; utility.xsl</code></p><pre class="screen"><span class="commit-message">renamed from title-preamble to pinch.together and replaced "sp -1"
+between synopsis fragments with call to pinch.together instead</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: table.xsl</code></p><pre class="screen"><span class="commit-message">use title-preamble template for table titles (instead of "sp -1"
+hack), and "sp 1" after all tables (instead of just "sp"</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: utility.xsl</code></p><pre class="screen"><span class="commit-message">created title-preamble template for suppressing line spacing after
+headings</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: info.xsl</code></p><pre class="screen"><span class="commit-message">further refinement of indenting in AUTHORS section</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl; other.xsl</code></p><pre class="screen"><span class="commit-message">refined handling of admonitions</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: lists.xsl</code></p><pre class="screen"><span class="commit-message">Use RS/RE in another place where we had IP ""</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: info.xsl</code></p><pre class="screen"><span class="commit-message">Replace (ab)use of IP with "sp -1" in AUTHORS section with RS/RE
+instead.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: table.xsl; synop.xsl; info.xsl</code></p><pre class="screen"><span class="commit-message">changed all instances of ".sp -1n" to ".sp -1"</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: other.xsl</code></p><pre class="screen"><span class="commit-message">add extra line before SH heads only in non-TTY output</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl</code></p><pre class="screen"><span class="commit-message">Reworked output for admonitions (caution, important, note, tip,
+warning). In TTY output, admonitions now get indented. In non-TTY
+output, a colored marker (yellow) is displayed next to them.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: other.xsl</code></p><pre class="screen"><span class="commit-message">Added BM/EM macros for putting a colored marker in margin next to
+a block of text.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: utility.xsl</code></p><pre class="screen"><span class="commit-message">created make.bold.title template by moving title-bolding part out
+from nested-section-title template. This allows the bolding to
+also be used by the template for formatting admonitions</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: info.xsl</code></p><pre class="screen"><span class="commit-message">put .br before copyright contents to prevent them from getting run in</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.xsl; other.xsl; utility.xsl</code></p><pre class="screen"><span class="commit-message">made point size of output for Refsect2 and Refsect3 heads bigger</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: other.xsl</code></p><pre class="screen"><span class="commit-message">put slightly more space between SH head and underline in non-TTY
+output</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: param.xweb; param.ent; other.xsl</code></p><pre class="screen"><span class="commit-message">Added the man.charmap.subset.profile.english parameter and refined
+the handling of charmap subsets to differentiate between English
+and non-English source.
+
+This way charmap subsets are now handled is this:
+
+If the value of the man.charmap.use.subset parameter is non-zero,
+and your DocBook source is not written in English (that is, if its
+lang or xml:lang attribute has a value other than en), then the
+character-map subset specified by the man.charmap.subset.profile
+parameter is used instead of the full roff character map.
+
+Otherwise, if the lang or xml:lang attribute on the root element
+in your DocBook source or on the first refentry element in your
+source has the value en or if it has no lang or xml:lang
+attribute, then the character-map subset specified by the
+man.charmap.subset.profile.english parameter is used instead of
+man.charmap.subset.profile.
+
+The difference between the two subsets is that
+man.charmap.subset.profile provides mappings for characters in
+Western European languages that are not part of the Roman
+(English) alphabet (ASCII character set).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: other.xsl</code></p><pre class="screen"><span class="commit-message">Various updates, mainly related to uppercasing SH titles:
+
+  - added a "Language: " metadata line to the top comment area of
+    output man pages, to indicate the language the page is in
+
+  - added a "toupper" macro of doing locale-aware uppercasing of
+    SH titles and cross-references to SH titles; the mechanism
+    relies on the uppercase.alpha and lowercase.alpha DocBook
+    gentext keys to do locale-aware uppercasing based on the
+    language the page is written in
+
+  - added a "string.shuffle" template, which provides a library
+    function for "shuffling" two strings together into a single
+    string; it takes the first character for the first string, the
+    first character from second string, etc. The only current use
+    for it is to generate the argument for the groff tr request
+    that does string uppercasing.
+
+  - added make.tr.uppercase.arg and make.tr.normalcase.arg named
+    templates for use in generating groff code for uppercasing and
+    "normal"-casing SH titles
+
+  - made the BB/BE "background drawing" macros have effect only in
+    non-TTY output
+
+  - output a few comments in the top part of source</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: utility.xsl</code></p><pre class="screen"><span class="commit-message">removed some leftover kruft</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.xsl</code></p><pre class="screen"><span class="commit-message">To create the name(s) for each man page, we now replace any spaces
+in the refname(s) with underscores. This ensures that tools like
+lexgrog(1) will be able to parse the name (lexgrog won't parse
+names that contain spaces).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Put a comment into source of man page to indicate where the main
+content starts. (We now have a few of macro definitions at the
+start of the source, so putting this comment in helps those that
+might be viewing the source.)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.xsl</code></p><pre class="screen"><span class="commit-message">refined mechanism for generating SH titles</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: charmap.groff.xsl</code></p><pre class="screen"><span class="commit-message">Added zcaron, Zcaron, scaron, and Scaron to the groff character map.
+This means that generated Finnish man pages will no longer contain
+any raw accented characters -- they'll instead by marked up with
+groff escapes.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: other.xsl; utility.xsl</code></p><pre class="screen"><span class="commit-message">corrected a regression I introduced about a year ago that caused
+dots to be output just as "\." -- instead needs to be "\&amp;." (which
+is what it will be now, after this change)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.xsl</code></p><pre class="screen"><span class="commit-message">Changed backend handling for generating titles for SH sections and
+for cross-references to those sections. This should have no effect
+on TTY output (behavior should remain the same hopefully) but
+results in titles in normal case (instead of uppercase) in PS
+output.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: info.xsl</code></p><pre class="screen"><span class="commit-message">use make.subheading template to make subheadings for AUTHORS and
+COPYRIGHT sections (instead of harcoding roff markup)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl</code></p><pre class="screen"><span class="commit-message">put code font around programlisting etc.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: synop.xsl; docbook.xsl</code></p><pre class="screen"><span class="commit-message">embed custom macro definitions in man pages, plus wrap synopsis in
+code font</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: endnotes.xsl</code></p><pre class="screen"><span class="commit-message">use the make.subheading template to generated SH subheading for
+endnotes section.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: lists.xsl</code></p><pre class="screen"><span class="commit-message">Added some templates for generating if-then-else conditional
+markup in groff, so let's use those instead of hard-coding it in
+multiple places...</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: other.xsl; utility.xsl</code></p><pre class="screen"><span class="commit-message">Initial checkin of some changes related to making PS/PDF output
+from "man -l -Tps" look better. The current changes:
+
+  - render synopsis and verbatim sections in a monospace/code font
+
+  - put a light-grey background behind all programlisting, screen,
+    and literallayout instances
+
+  - prevent SH heads in PS output from being rendered in uppercase
+    (as they are in console output)
+
+  - also display xrefs to SH heads in PS output in normal case
+    (instead of uppercase)
+
+  - draw a line under SH heads in PS output
+
+The changes made to the code to support the above features were:
+
+  - added some embedded/custom macros: one for conditionally
+    upper-casing SH x-refs, one for redefining the SH macro
+    itself, with some conditional handling for PS output, and
+    finally a macro for putting a background/screen (filled box)
+    around a block of text (e.g., a program listing) in PS output
+
+  - added utility templates for wrapping blocks of text in code
+    font; also templates for inline code font</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: refentry.xsl</code></p><pre class="screen"><span class="commit-message">refpurpose nodes now get apply-templates instead of just normalize-space().</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: lists.xsl</code></p><pre class="screen"><span class="commit-message">Fixed alignment of first lined of text for each listitem in
+orderedlist output for TTY. Existing code seemed to have been
+causing an extra undesirable space to appear.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: lists.xsl</code></p><pre class="screen"><span class="commit-message">Wrapped some roff conditionals around roff markup for orderedlist
+and itemizedlist output, so that the lists look acceptable in PS
+output as well as TTY.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: pi.xsl; synop.xsl; param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Added the man.funcsynopsis.style parameter. Has the same effect in
+manpages output as the funcsynopsis.style parameter has in HTML
+output -- except that its default value is 'ansi' instead of 'kr'.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: synop.xsl</code></p><pre class="screen"><span class="commit-message">Reworked handling of K&amp;R funcprototype output. It no longer relies
+on the HTML kr-tabular templates, but instead just does direct
+transformation to roff. For K&amp;R output, it displays the paramdef
+output in an indented list following the prototype.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: synop.xsl</code></p><pre class="screen"><span class="commit-message">Properly integrated handling for K&amp;R output into manpages
+stylesheet. The choice between K&amp;R output and ANSI output is
+currently controlled through use of the (HTML) funcsynopsis.style
+parameter. Note that because the mechanism does currently rely on
+funcsynopsis.style, the default in manpages output is now K&amp;R
+(because that's the default of that param). But I suppose I ought
+to create a man.funcsynopsis.style and make the default for that
+ANSI (to preserve the existing default behavior).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: docbook.xsl</code></p><pre class="screen"><span class="commit-message">added manpages/pi.xsl file</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: .cvsignore; pi.xsl</code></p><pre class="screen"><span class="commit-message">Added "dbman funcsynopsis-style" PI and incorporated it into the
+doc build.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.xsl</code></p><pre class="screen"><span class="commit-message">Fixed regression that caused an unescaped dash to be output
+between refname and refpurpose content. Closes bug #1894244.
+Thanks to Daniel Leidert.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: other.xsl</code></p><pre class="screen"><span class="commit-message">Fixed problem with dots being escaped in filenames of generated
+man files. Closes #1827195. Thanks to Daniel Leidert.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: inline.xsl</code></p><pre class="screen"><span class="commit-message">Added support for processing structfield (was appearing in roff
+output surrounded by HTML &lt;em&gt; tags; fixed so that it gets roff
+ital markup). Closes bug #1858329.  Thanks to Sam Varshavchik.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_Epub"></a>Epub</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">epub</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> <p><code class="literal">Keith Fahlgren: bin/spec/README; bin/spec/epub_realbook_spec.rb</code></p><pre class="screen"><span class="commit-message">'Realbook' spec now passes</span></pre> </li><li class="listitem"> <p><code class="literal">Keith Fahlgren: bin/dbtoepub; README; bin/spec/README; bin/lib/docbook.rb; bin/spec/epub_r&#8943;</code></p><pre class="screen"><span class="commit-message">Very primitive Windows support for dbtoepub <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a> implementation; README for running tests and for the .epub target in general; shorter realbook test document (still fails for now)</span></pre> </li><li class="listitem"> <p><code class="literal">Keith Fahlgren: bin/dbtoepub; bin/spec/epub_regressions_spec.rb; bin/lib/docbook.rb; bin/s&#8943;</code></p><pre class="screen"><span class="commit-message">Changes to OPF spine to not duplicate idrefs for documents with parts not at the root; regression specs for same</span></pre> </li><li class="listitem"> <p><code class="literal">Keith Fahlgren: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Fixing linking to <a href="http://docbook.org/tdg5/en/html/cover.html"><code class="sgmltag-element">cover</code></a> @id, distinct from other needs of cover-image-id (again, thanks to Martin Goerner)</span></pre> </li><li class="listitem"> <p><code class="literal">Keith Fahlgren: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Updating the <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> of the <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> element in the guide to be more explicit (thanks to Martin Goerner)</span></pre> </li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: bin/spec/examples/amasque_exploded/content.opf; bin/spec/examples/amasque_&#8943;</code></p><pre class="screen"><span class="commit-message">Initial checkin/merge of epub target from work provided by Paul Norton of Adobe
+and Keith Fahlgren of O'Reilly.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: docbook.xsl</code></p><pre class="screen"><span class="commit-message">== General epub test support
+
+$ spec -O ~/.spec.opts spec/epub_spec.rb 
+
+DocBook::Epub
+- should be able to be created
+- should fail on a nonexistent file
+- should be able to render to a file
+- should create a file after rendering
+- should have the correct mimetype after rendering
+- should be valid .epub after rendering an article
+- should be valid .epub after rendering an article without sections
+- should be valid .epub after rendering a book
+- should be valid .epub after rendering a book even if it has one graphic
+- should be valid .epub after rendering a book even if it has many graphics
+- should be valid .epub after rendering a book even if it has many duplicated graphics
+- should report an empty file as invalid
+- should confirm that a valid .epub file is valid
+- should not include PDFs in rendered epub files as valid image inclusions
+- should include a TOC link in rendered epub files for &lt;book&gt;s
+
+Finished in 20.608395 seconds
+
+15 examples, 0 failures
+
+
+== Verbose epub test coverage against _all_ of the testdocs 
+
+Fails on only (errors truncated):
+1)
+'DocBook::Epub should be able to render a valid .epub for the test document /Users/keith/work/docbook-dev/trunk/xsl/epub/bin/spec/testdocs/calloutlist.003.xml [30]' FAILED
+'DocBook::Epub should be able to render a valid .epub for the test document /Users/keith/work/docbook-dev/trunk/xsl/epub/bin/spec/testdocs/cmdsynopsis.001.xml [35]' FAILED
+....
+
+Finished in 629.89194 seconds
+
+224 examples, 15 failures
+
+224 examples, 15 failures yields 6% failure rate</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_HTMLHelp"></a>HTMLHelp</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">htmlhelp</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: htmlhelp-common.xsl</code></p><pre class="screen"><span class="commit-message">Added &lt;xsl:with-param name="quiet" select="$chunk.quietly"/&gt; to calls to
+the write.chunk, write.chunk.with.doctype, and write.text.chunk templates.
+This makes chunk.quietly=1 suppress chunk filename messages also for help 
+support files (which seems to be what one would expect). See bug #1648360.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_Eclipse"></a>Eclipse</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">eclipse</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">David Cramer: eclipse.xsl</code></p><pre class="screen"><span class="commit-message">Use sortas attributes (if they exist) when sorting indexterms</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: eclipse.xsl</code></p><pre class="screen"><span class="commit-message">Added support for indexterm/see in eclipse index.xml</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: eclipse.xsl</code></p><pre class="screen"><span class="commit-message">Added &lt;xsl:with-param name="quiet" select="$chunk.quietly"/&gt;
+to helpidx template.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: eclipse.xsl</code></p><pre class="screen"><span class="commit-message">Generate index.xml file and add related goo to plugin.xml file. Does not yet support see and seealso.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: eclipse.xsl</code></p><pre class="screen"><span class="commit-message">Added &lt;xsl:with-param name="quiet" select="$chunk.quietly"/&gt; to calls to
+the write.chunk, write.chunk.with.doctype, and write.text.chunk templates.
+This makes chunk.quietly=1 suppress chunk filename messages also for help 
+support files (which seems to be what one would expect). See bug #1648360.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_JavaHelp"></a>JavaHelp</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">javahelp</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: javahelp.xsl</code></p><pre class="screen"><span class="commit-message">Added &lt;xsl:with-param name="quiet" select="$chunk.quietly"/&gt; to calls to
+the write.chunk, write.chunk.with.doctype, and write.text.chunk templates.
+This makes chunk.quietly=1 suppress chunk filename messages also for help 
+support files (which seems to be what one would expect). See bug #1648360.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_Roundtrip"></a>Roundtrip</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">roundtrip</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Steve Ball: blocks2dbk.xsl; wordml2normalise.xsl</code></p><pre class="screen"><span class="commit-message">fix table/cell borders for wordml, fix formal figure, add emphasis-strong</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: supported.xml</code></p><pre class="screen"><span class="commit-message">Changed @cols to 5.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: blocks2dbk.xsl; blocks2dbk.dtd; template.xml</code></p><pre class="screen"><span class="commit-message">added pubdate, fixed metadata handling in biblioentry</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: supported.xml</code></p><pre class="screen"><span class="commit-message">Added support for edition.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: docbook-pages.xsl; wordml-blocks.xsl; docbook.xsl; wordml.xsl; pages-normalise&#8943;</code></p><pre class="screen"><span class="commit-message">Removed stylesheets for old, deprecated conversion method.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: specifications.xml; dbk2ooo.xsl; blocks2dbk.xsl; dbk2pages.xsl; blocks2dbk.dtd&#8943;</code></p><pre class="screen"><span class="commit-message">Added support for Open Office, added edition element, improved list and table support in Word and Pages</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: normalise-common.xsl; blocks2dbk.xsl; dbk2pages.xsl; template-pages.xml; templ&#8943;</code></p><pre class="screen"><span class="commit-message">Fixed bug in WordML table handling, improved table handling for Pages 08, synchronised WordML and Pages templates.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: normalise-common.xsl; blocks2dbk.xsl; wordml2normalise.xsl; dbk2wp.xsl</code></p><pre class="screen"><span class="commit-message">fix caption, attributes</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: specifications.xml; blocks2dbk.xsl; wordml2normalise.xsl; blocks2dbk.dtd; temp&#8943;</code></p><pre class="screen"><span class="commit-message">Fixes to table and list handling</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: blocks2dbk.xsl</code></p><pre class="screen"><span class="commit-message">added support for explicit emphasis character styles</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: wordml2normalise.xsl</code></p><pre class="screen"><span class="commit-message">added support for customisation in image handling</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: blocks2dbk.xsl</code></p><pre class="screen"><span class="commit-message">Added inlinemediaobject support for metadata.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: normalise-common.xsl; blocks2dbk.xsl; template.xml; dbk2wordml.xsl; dbk2wp.xsl</code></p><pre class="screen"><span class="commit-message">Added support file. Added style locking. Conversion bug fixes.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_Slides"></a>Slides</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">slides</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: fo/Makefile; html/Makefile</code></p><pre class="screen"><span class="commit-message">Added checks and hacks to various makefiles to enable building
+under Cygwin. This stuff is ugly and maybe not worth the mess and
+trouble, but does seem to work as expected and not break anything
+else.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: html/plain.xsl</code></p><pre class="screen"><span class="commit-message">Added support for showing foil number</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_Website"></a>Website</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">website</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: extensions/saxon64/.classes/.gitignore; extensions/xalan2/.classes/com/&#8943;</code></p><pre class="screen"><span class="commit-message">renamed a bunch more .cvsignore files to .gitignore (to facilitate use of git-svn)</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_Params"></a>Params</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">params</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> <p><code class="literal">Keith Fahlgren: epub.autolabel.xml</code></p><pre class="screen"><span class="commit-message">New parameter for epub, epub.autolabel</span></pre> </li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: table.frame.border.color.xml; table.cell.padding.xml; table.cell.border.t&#8943;</code></p><pre class="screen"><span class="commit-message">Added missing refpurposes and descriptions.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Keith Fahlgren: ade.extensions.xml</code></p><pre class="screen"><span class="commit-message">Extensions to support Adobe Digital Editions extensions in .epub output.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: fop.extensions.xml; fop1.extensions.xml</code></p><pre class="screen"><span class="commit-message">Clarified that fop1.extensions is for FOP 0.90 and later. Version 1 is not here yet...</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: man.links.are.underlined.xml; man.endnotes.list.enabled.xml; man.font.l&#8943;</code></p><pre class="screen"><span class="commit-message">removed man.links.are.underlined and added man.font.links. Also,
+changed the default font formatting for links to bold.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: man.base.url.for.relative.links.xml</code></p><pre class="screen"><span class="commit-message">Added new param man.base.url.for.relative.links .. specifies a
+base URL for relative links (for ulink, @xlink:href, imagedata,
+audiodata, videodata) shown in the generated NOTES section of
+man-page output. The value of man.base.url.for.relative.links is
+prepended to any relative URI that is a value of ulink url,
+xlink:href, or fileref attribute.
+
+If you use relative URIs in link sources in your DocBook refentry
+source, and you leave man.base.url.for.relative.links unset, the
+relative links will appear "as is" in the NOTES section of any
+man-page output generated from your source. That's probably not
+what you want, because such relative links are only usable in the
+context of HTML output. So, to make the links meaningful and
+usable in the context of man-page output, set a value for
+man.base.url.for.relative.links that points
+to the online version of HTML output generated from your DocBook
+refentry source. For example:
+
+  &lt;xsl:param name="man.base.url.for.relative.links"
+  &gt;http://www.kernel.org/pub/software/scm/git/docs/&lt;/xsl:param&gt;</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: man.string.subst.map.xml</code></p><pre class="screen"><span class="commit-message">squeeze .sp\n.sp into a single .sp (to prevent a extra, spurious
+line of whitespace from being inserted after programlisting etc.
+in certain cases)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.manual.fallback.profile.xml; refentry.source.fallback.profile.&#8943;</code></p><pre class="screen"><span class="commit-message">don't use refmiscinfo@class=date value as fallback for refentry
+"source" or "manual" metadata fields</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: man.charmap.subset.profile.xml; man.charmap.enabled.xml; man.charmap.su&#8943;</code></p><pre class="screen"><span class="commit-message">made some further doc tweaks related to the
+man.charmap.subset.profile.english param</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: man.charmap.subset.profile.xml; man.charmap.enabled.xml; man.charmap.su&#8943;</code></p><pre class="screen"><span class="commit-message">Added the man.charmap.subset.profile.english parameter and refined
+the handling of charmap subsets to differentiate between English
+and non-English source.
+
+This way charmap subsets are now handled is this:
+
+If the value of the man.charmap.use.subset parameter is non-zero,
+and your DocBook source is not written in English (that is, if its
+lang or xml:lang attribute has a value other than en), then the
+character-map subset specified by the man.charmap.subset.profile
+parameter is used instead of the full roff character map.
+
+Otherwise, if the lang or xml:lang attribute on the root element
+in your DocBook source or on the first refentry element in your
+source has the value en or if it has no lang or xml:lang
+attribute, then the character-map subset specified by the
+man.charmap.subset.profile.english parameter is used instead of
+man.charmap.subset.profile.
+
+The difference between the two subsets is that
+man.charmap.subset.profile provides mappings for characters in
+Western European languages that are not part of the Roman
+(English) alphabet (ASCII character set).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: man.charmap.subset.profile.xml</code></p><pre class="screen"><span class="commit-message">Added to default charmap used by manpages:
+
+  - the "letters" part of the 'C1 Controls And Latin-1 Supplement
+    (Latin-1 Supplement)' Unicode block
+  - Latin Extended-A block (but not all of the characters from
+    that block have mappings in groff, so some of them are still
+    passed through as-is)
+
+The effects of this change are that in man pages generated for
+most Western European languages and for Finnish, all characters
+not part of the Roman alphabet are (e.g., "accented" characters)
+are converted to groff escapes.
+
+Previously, by default we passed through those characters as is
+(and users needed to use the full charmap if they wanted to have
+those characters converted).
+
+As a result of this change, man pages generated for Western
+European languages will be viewable in some environments in which
+they are not viewable if the "raw" non-Roman characters are in them.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: generate.legalnotice.link.xml; generate.revhistory.link.xml</code></p><pre class="screen"><span class="commit-message">Added information on how the filename is computed.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: default.table.width.xml</code></p><pre class="screen"><span class="commit-message">Clarified PI usage.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: man.funcsynopsis.style.xml</code></p><pre class="screen"><span class="commit-message">Added the man.funcsynopsis.style parameter. Has the same effect in
+manpages output as the funcsynopsis.style parameter has in HTML
+output -- except that its default value is 'ansi' instead of 'kr'.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: funcsynopsis.tabular.threshold.xml</code></p><pre class="screen"><span class="commit-message">Removed the funcsynopsis.tabular.threshold param. It's no longer
+being used in the code and hasn't been since mid 2006.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: table.properties.xml</code></p><pre class="screen"><span class="commit-message">Set keep-together.within-column to "auto". This seems to be the most sensible
+default value for tables.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: informal.object.properties.xml; admon.graphics.extension.xml; informalequ&#8943;</code></p><pre class="screen"><span class="commit-message">Several small documentation fixes.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: manifest.in.base.dir.xml</code></p><pre class="screen"><span class="commit-message">Wording fixes.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: header.content.properties.xml; footer.content.properties.xml</code></p><pre class="screen"><span class="commit-message">Added refpurpose.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: ulink.footnotes.xml; ulink.show.xml</code></p><pre class="screen"><span class="commit-message">Updated for DocBook 5.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: index.method.xml; glossterm.auto.link.xml</code></p><pre class="screen"><span class="commit-message">Spelling and wording fixes.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: callout.graphics.extension.xml</code></p><pre class="screen"><span class="commit-message">Clarifed available graphics formats and extensions.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: footnote.sep.leader.properties.xml</code></p><pre class="screen"><span class="commit-message">Corrected refpurpose.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: footnote.properties.xml</code></p><pre class="screen"><span class="commit-message">Added more properties which make it possible to render correctly footnotes placed inside verbatim elements.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: img.src.path.xml</code></p><pre class="screen"><span class="commit-message">img.src.path works with inlinegraphic too.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: saxon.character.representation.xml</code></p><pre class="screen"><span class="commit-message">Added TCG link.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: img.src.path.xml</code></p><pre class="screen"><span class="commit-message">Updated description of img.src.path. Bug #1785224 revealed that 
+there was a risk of misunderstanding how it works.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_Profiling"></a>Profiling</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">profiling</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Jirka Kosek: xsl2profile.xsl</code></p><pre class="screen"><span class="commit-message">Added new rules to profile all content generated by HTML Help (including alias files)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: profile-mode.xsl</code></p><pre class="screen"><span class="commit-message">use mode="profile" instead of xsl:copy-of for attributes so
+they can be more easily customized.</span></pre>
+</li></ul></div>
+</div>
+
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_Tools"></a>Tools</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">tools</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: make/Makefile.DocBook</code></p><pre class="screen"><span class="commit-message">various changes and additions to support making with asciidoc as
+an input format</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: make/Makefile.DocBook</code></p><pre class="screen"><span class="commit-message">make dblatex the default PDF maker for the example makefile</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: xsl/build/html2roff.xsl</code></p><pre class="screen"><span class="commit-message">Reworked handling of K&amp;R funcprototype output. It no longer relies
+on the HTML kr-tabular templates, but instead just does direct
+transformation to roff. For K&amp;R output, it displays the paramdef
+output in an indented list following the prototype.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: xsl/build/make-xsl-params.xsl</code></p><pre class="screen"><span class="commit-message">Made attribute-sets members of the param list. This enables links to attribute-sets in the
+reference documentation.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: xsl/build/html2roff.xsl</code></p><pre class="screen"><span class="commit-message">use .BI handling in K&amp;R funsynopsis output for manpages, just as
+we do already of ANSI output</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: xsl/build/html2roff.xsl</code></p><pre class="screen"><span class="commit-message">Implemented initial support for handling tabular K&amp;R output of
+funcprototype in manpages output. Accomplished by adding more
+templates to the intermediate HTML-to-roff stylesheet that the
+build uses to create the manpages/html-synop.xsl stylesheet.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: xsl/build/doc-link-docbook.xsl</code></p><pre class="screen"><span class="commit-message">Made the xsl/tools/xsl/build/doc-link-docbook.xsl stylesheet
+import profile-docbook.xsl, so that we can do profiling of release
+notes. Corrected some problems in the target for the release-notes
+HTML build.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_Extensions"></a>Extensions</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">extensions</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> <p><code class="literal">Keith Fahlgren: Makefile</code></p><pre class="screen"><span class="commit-message">Use DOCBOOK_SVN variable everywhere, please; build with PDF_MAKER</span></pre> </li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: Makefile</code></p><pre class="screen"><span class="commit-message">moved extensions build targets from master xsl/Makefile to
+xsl/extensions/Makefile</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: .cvsignore</code></p><pre class="screen"><span class="commit-message">re-adding empty extensions subdir</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_XSL-Saxon"></a>XSL-Saxon</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">xsl-saxon</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: VERSION</code></p><pre class="screen"><span class="commit-message">bring xsl2, xsl-saxon, and xsl-xalan VERSION files up-to-date with
+recent change to snapshot build infrastructure</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: nbproject/build-impl.xml; nbproject/project.properties</code></p><pre class="screen"><span class="commit-message">Changed hard-coded file references in "clean" target to variable
+references. Closes #1792043. Thanks to Daniel Leidert.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: VERSION; Makefile</code></p><pre class="screen"><span class="commit-message">Did post-release wrap-up of xsl-saxon and xsl-xalan dirs</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: nbproject/build-impl.xml; VERSION; Makefile; test</code></p><pre class="screen"><span class="commit-message">More tweaks to get release-ready</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_XSL-Xalan"></a>XSL-Xalan</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">xsl-xalan</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: VERSION</code></p><pre class="screen"><span class="commit-message">bring xsl2, xsl-saxon, and xsl-xalan VERSION files up-to-date with
+recent change to snapshot build infrastructure</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: nbproject/build-impl.xml</code></p><pre class="screen"><span class="commit-message">Changed hard-coded file references in "clean" target to variable
+references. Closes #1792043. Thanks to Daniel Leidert.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: Makefile; VERSION</code></p><pre class="screen"><span class="commit-message">Did post-release wrap-up of xsl-saxon and xsl-xalan dirs</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: Makefile; nbproject/build-impl.xml; VERSION</code></p><pre class="screen"><span class="commit-message">More tweaks to get release-ready</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.74.0_XSL-libxslt"></a>XSL-libxslt</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">xsl-libxslt</code> code
+            since the 1.73.2 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: python/xslt.py</code></p><pre class="screen"><span class="commit-message">Print the result to stdout if no outfile has been given.
+Some unnecessary semicolons removed.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: python/xslt.py</code></p><pre class="screen"><span class="commit-message">Added a function that quotes parameter values (to ensure that they are interpreted as strings).
+Replaced deprecated functions from the string module with string methods.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: python/README; python/README.LIBXSLT</code></p><pre class="screen"><span class="commit-message">renamed xsl-libxslt/python/README to xsl-libxslt/python/README.LIBXSLT</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: python/README</code></p><pre class="screen"><span class="commit-message">Tweaked the text a little.</span></pre>
+</li></ul></div>
+</div>
+
+</div>
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.73.2"></a>Release Notes: 1.73.2</h2></div></div></div>
+
+<p>This is solely a minor bug-fix update to the 1.73.1 release.
+  It fixes a packaging error in the 1.73.1 package, as well as a
+  bug in footnote handling in FO output.</p>
+</div>
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.73.1"></a>Release: 1.73.1</h2></div></div></div>
+
+<p>This is mostly a bug-fix update to the 1.73.0 release.</p>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.1_Gentext"></a>Gentext</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">gentext</code> code
+            since the 1.73.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: locale/de.xml</code></p><pre class="screen"><span class="commit-message">Applied patch #1766009.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/lv.xml</code></p><pre class="screen"><span class="commit-message">Added localization for <a href="http://docbook.org/tdg5/en/html/productionset.html"><code class="sgmltag-element">ProductionSet</code></a>.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.1_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">fo</code> code
+            since the 1.73.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: table.xsl</code></p><pre class="screen"><span class="commit-message">Modified the <a href="http://docbook.org/tdg5/en/html/tgroup.html"><code class="sgmltag-element">tgroup</code></a> template so that, for tables with multiple tgroups, 
+a width attribute is output on all corresponding fo:tables. Previously, 
+there was a test prohibiting this (and a comment saying that outputting more
+than one width attribute will cause an error). But this seems to be no longer 
+relevant; it is not a problem with FOP 0.93 or XEP 4.10. Closes bug #1760559.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: graphics.xsl</code></p><pre class="screen"><span class="commit-message">Replaced useless &lt;a&gt; elements with warning messages (textinsert extension).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: admon.xsl</code></p><pre class="screen"><span class="commit-message">Enabled generation of ids (on fo:wrapper) for indexterms in admonition titles, so that page
+references in the <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> can be created. Closes bug #1775086.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.1_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">html</code> code
+            since the 1.73.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Added &lt;xsl:call-template name="process.footnotes"/&gt; to <a href="http://docbook.org/tdg5/en/html/abstract.html"><code class="sgmltag-element">abstract</code></a> template
+so that footnotes in <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>/<a href="http://docbook.org/tdg5/en/html/abstract.html"><code class="sgmltag-element">abstract</code></a> are processed. Closes bug #1760907.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: pi.xsl; synop.xsl</code></p><pre class="screen"><span class="commit-message">Changed handling of HTML output for the <a href="http://docbook.org/tdg5/en/html/cmdsynopsis.html"><code class="sgmltag-element">cmdsynopsis</code></a> and
+<a href="http://docbook.org/tdg5/en/html/funcsynopsis.html"><code class="sgmltag-element">funcsynopsis</code></a> elements, such that a@id instances are generated for
+them if they are descendants of any element containing a dbcmdlist
+or dbfunclist PI. Also, update the embedded <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a> docs for the
+dbcmdlist and dbfunclist PIs to make it clear that they can be
+used within any element for which <a href="http://docbook.org/tdg5/en/html/cmdsynopsis.html"><code class="sgmltag-element">cmdsynopsis</code></a> or <a href="http://docbook.org/tdg5/en/html/funcsynopsis.html"><code class="sgmltag-element">funcsynopsis</code></a> are
+valid children.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: formal.xsl</code></p><pre class="screen"><span class="commit-message">Reverted the part of <a href="http://docbook.org/tdg5/en/html/revision.html"><code class="sgmltag-element">revision</code></a> 6952 that caused a@id anchors to be
+generated for output of informal objects. Thanks to Sam Steingold
+for reporting.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: glossary.xsl</code></p><pre class="screen"><span class="commit-message">Account for a <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a> with no <a href="http://docbook.org/tdg5/en/html/glossdiv.html"><code class="sgmltag-element">glossdiv</code></a> or <a href="http://docbook.org/tdg5/en/html/glossentry.html"><code class="sgmltag-element">glossentry</code></a> children.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Modified <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a> template so that the base.name parameter is calculated 
+in the same way as for <a href="http://docbook.org/tdg5/en/html/revhistory.html"><code class="sgmltag-element">revhistory</code></a> chunks. Using &lt;xsl:apply-templates 
+mode="chunk-filename" select="."/&gt; did not work for single-page output since
+the template with that mode is in chunk-code.xsl.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: graphics.xsl</code></p><pre class="screen"><span class="commit-message">Updated support for SVG (must be a child of <a href="http://docbook.org/tdg5/en/html/imagedata.html"><code class="sgmltag-element">imagedata</code></a> in DB 5).
+Added support for MathML in <a href="http://docbook.org/tdg5/en/html/imagedata.html"><code class="sgmltag-element">imagedata</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: pi.xsl</code></p><pre class="screen"><span class="commit-message">Added documentation for the dbhh PI (used for context-sensitive HTML Help).
+(The two templates matching 'dbhh' are still in htmlhelp-common.xsl).</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.1_Manpages"></a>Manpages</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">manpages</code> code
+            since the 1.73.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: endnotes.xsl</code></p><pre class="screen"><span class="commit-message">In manpages output, generate warnings about notesources with
+non-para children only if the notesource is a <a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a> or
+<a href="http://docbook.org/tdg5/en/html/annotation.html"><code class="sgmltag-element">annotation</code></a>. Thanks to Sam Steingold for reporting problems with
+the existing handling.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.1_HTMLHelp"></a>HTMLHelp</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">htmlhelp</code> code
+            since the 1.73.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: htmlhelp-common.xsl</code></p><pre class="screen"><span class="commit-message">Added single-pass namespace-stripping support to the htmlhelp,
+eclipse, and javahelp stylesheets.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.1_Eclipse"></a>Eclipse</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">eclipse</code> code
+            since the 1.73.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: eclipse.xsl</code></p><pre class="screen"><span class="commit-message">Added single-pass namespace-stripping support to the htmlhelp,
+eclipse, and javahelp stylesheets.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.1_JavaHelp"></a>JavaHelp</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">javahelp</code> code
+            since the 1.73.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: javahelp.xsl</code></p><pre class="screen"><span class="commit-message">Added single-pass namespace-stripping support to the htmlhelp,
+eclipse, and javahelp stylesheets.</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.1_Roundtrip"></a>Roundtrip</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">roundtrip</code> code
+            since the 1.73.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Steve Ball: blocks2dbk.xsl; blocks2dbk.dtd; pages2normalise.xsl</code></p><pre class="screen"><span class="commit-message">Modularised blocks2dbk to allow customisation,
+Added support for tables to pages2normalise</span></pre>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.1_Params"></a>Params</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">params</code> code
+            since the 1.73.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: procedure.properties.xml</code></p><pre class="screen"><span class="commit-message"><a href="http://docbook.org/tdg5/en/html/procedure.html"><code class="sgmltag-element">procedure</code></a> was inheriting keep-together from formal.object.properties, but
+a <a href="http://docbook.org/tdg5/en/html/procedure.html"><code class="sgmltag-element">procedure</code></a> does not need to be kept together by default.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Dave Pawson: title.font.family.xml; component.label.includes.part.label.xml; table.frame.b&#8943;</code></p><pre class="screen"><span class="commit-message">Regular formatting re-org.</span></pre>
+</li></ul></div>
+</div>
+</div>
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.73.0"></a>Release: 1.73.0</h2></div></div></div>
+
+<p>This release includes important bug fixes and adds the following
+significant feature changes:
+</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">New localizations and localization updates</span></dt><dd>
+      <p>We added two new localizations: Latvian and
+        Esperanto, and made updates to the Czech, Chinese
+        Simplified, Mongolian, Serbian, Italian, and Ukrainian
+        localizations.</p>
+    </dd><dt><span class="term">ISO690 citation style for bibliography output.</span></dt><dd>
+      <p>Set the
+        <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/bibliography.style.html"><em class="parameter"><code>bibliography.style</code></em></a> parameter to
+        <code class="literal">iso690</code> to use ISO690 style.</p>
+    </dd><dt><span class="term">New documentation for processing instructions (PI)</span></dt><dd>
+      <p>The reference documentation that ships with the
+        release now includes <a class="ulink" href="http://docbook.sourceforge.net/release/xsl/current/doc/pi/" target="_top">documentation on all PIs</a> that you can use to
+        control output from the stylesheets.</p>
+    </dd><dt><span class="term">New profiling parameters for <code class="literal">audience</code> and <code class="literal">wordsize</code></span></dt><dd>
+      <p>You can now do profiling based on the values of the
+        <code class="literal">audience</code> and
+        <code class="literal">wordsize</code> attributes.</p>
+    </dd><dt><span class="term">Changes to man-page output</span></dt><dd>
+      <p>The manpages stylesheet now supports single-pass
+        profiling and single-pass DocBook 5 namespace stripping
+        (just as the HTML and FO stylesheets also do). Also, added
+        handling for <a href="http://docbook.org/tdg5/en/html/mediaobject.html"><code class="sgmltag-element">mediaobject</code></a> &amp;
+        <a href="http://docbook.org/tdg5/en/html/inlinemediaobject.html"><code class="sgmltag-element">inlinemediaobject</code></a>. (Each <a href="http://docbook.org/tdg5/en/html/imagedata.html"><code class="sgmltag-element">imagedata</code></a>,
+        <a href="http://docbook.org/tdg5/en/html/audiodata.html"><code class="sgmltag-element">audiodata</code></a>, or <a href="http://docbook.org/tdg5/en/html/videodata.html"><code class="sgmltag-element">videodata</code></a> element
+        within a <a href="http://docbook.org/tdg5/en/html/mediaobject.html"><code class="sgmltag-element">mediaobject</code></a> or inline
+        <a href="http://docbook.org/tdg5/en/html/mediaobject.html"><code class="sgmltag-element">mediaobject</code></a> is now treated as a "notesource"
+        and so handled in much the same way as links and
+        <a href="http://docbook.org/tdg5/en/html/annotation.html"><code class="sgmltag-element">annotation</code></a>/<a href="http://docbook.org/tdg5/en/html/alt.html"><code class="sgmltag-element">alt</code></a>/<a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a>
+        are in manpages output.) And added the
+        <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.authors.section.enabled.html"><em class="parameter"><code>man.authors.section.enabled</code></em></a> and
+        <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.copyright.section.enabled.html"><em class="parameter"><code>man.copyright.section.enabled</code></em></a>
+        parameters to enable control over whether output includes
+        auto-generated <code class="literal">AUTHORS</code> and
+        <code class="literal">COPYRIGHT</code> sections.</p>
+    </dd><dt><span class="term">Highlighting support for C</span></dt><dd>
+      <p>The highlighting mechanism for generating
+        syntax-highlighted code snippets in output now supports C
+        code listings (along with Java, PHP, XSLT, and others).</p>
+    </dd><dt><span class="term">Experimental <code class="literal">docbook-xsl-update script</code></span></dt><dd>
+      <p>We added an experimental <code class="literal">docbook-xsl-update
+          script</code>, the purpose of which is to facilitate
+        easy sync-up to the latest docbook-xsl snapshot (by means
+        of rsync).</p>
+    </dd></dl></div><p> 
+</p>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_Gentext"></a>Gentext</h3></div></div></div>
+
+<p>The following changes have been made to the
+<code class="filename">gentext</code> code
+since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/lv.xml; Makefile</code></p><pre class="screen"><span class="commit-message">Added Latvian localization file, from Girts Ziemelis.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Dongsheng Song: locale/zh_cn.xml</code></p><pre class="screen"><span class="commit-message">Brought up to <a href="http://docbook.org/tdg5/en/html/date.html"><code class="sgmltag-element">date</code></a> with en.xml in terms of items. A few strings marked for translation.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: locale/cs.xml</code></p><pre class="screen"><span class="commit-message">Added missing translations</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/eo.xml</code></p><pre class="screen"><span class="commit-message">New locale for Esperanto.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/mn.xml</code></p><pre class="screen"><span class="commit-message">Update from Ganbold Tsagaankhuu.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: locale/en.xml; locale/cs.xml</code></p><pre class="screen"><span class="commit-message">Rules for normalizing <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a> entries before they are sorted can be now different for each language.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: locale/sr_Latn.xml; locale/sr.xml</code></p><pre class="screen"><span class="commit-message">Committed changes from Milo&#353; Komar&#269;evi&#263; to Serbian files.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/ja.xml</code></p><pre class="screen"><span class="commit-message">Fix <a href="http://docbook.org/tdg5/en/html/chapter.html"><code class="sgmltag-element">chapter</code></a> in context xref-number-and-title</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: locale/it.xml</code></p><pre class="screen"><span class="commit-message">Improved version from contributor.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: locale/uk.xml</code></p><pre class="screen"><span class="commit-message">Applied patch 1592083.</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_Common"></a>Common</h3></div></div></div>
+
+<p>The following changes have been made to the
+<code class="filename">common</code> code
+since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: labels.xsl</code></p><pre class="screen"><span class="commit-message">Changed handling of <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a> auto-labeling such that <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a>
+(when it appears at the component level) is now affected by the
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/label.from.part.html"><em class="parameter"><code>label.from.part</code></em></a> param, just as <a href="http://docbook.org/tdg5/en/html/preface.html"><code class="sgmltag-element">preface</code></a>, <a href="http://docbook.org/tdg5/en/html/chapter.html"><code class="sgmltag-element">chapter</code></a>, and <a href="http://docbook.org/tdg5/en/html/appendix.html"><code class="sgmltag-element">appendix</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: common.xsl</code></p><pre class="screen"><span class="commit-message">Added support to the HTML stylesheets for proper processing of
+<a href="http://docbook.org/tdg5/en/html/orgname.html"><code class="sgmltag-element">orgname</code></a> as a child of <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: refentry.xsl</code></p><pre class="screen"><span class="commit-message">Refined logging output of <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> metadata-gathering template;
+for some cases of "missing" elements (<a href="http://docbook.org/tdg5/en/html/refmiscinfo.html"><code class="sgmltag-element">refmiscinfo</code></a> stuff, etc.),
+the log messages now include URL to corresponding page in the
+Definitive Guide (TDG).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: titles.xsl</code></p><pre class="screen"><span class="commit-message">Add <a href="http://docbook.org/tdg5/en/html/refsection.html"><code class="sgmltag-element">refsection</code></a>/<a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> support.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: titles.xsl</code></p><pre class="screen"><span class="commit-message">Added support for correct handling of <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to elements that
+contain <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> descendants but no <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> children.
+
+This should be further refined so that it handles any *<a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>
+elements. And there are probably some other places where similar
+handling for *<a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> should be added.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: pi.xsl</code></p><pre class="screen"><span class="commit-message">Modified &lt;xsl:when&gt; in datetime.format template to work
+around Xalan bug.</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the
+<code class="filename">fo</code> code
+since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: component.xsl</code></p><pre class="screen"><span class="commit-message">Add parameters to the page.sequence utility template.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: xref.xsl</code></p><pre class="screen"><span class="commit-message">Added template for <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to <a href="http://docbook.org/tdg5/en/html/area.html"><code class="sgmltag-element">area</code></a>/<a href="http://docbook.org/tdg5/en/html/areaset.html"><code class="sgmltag-element">areaset</code></a>.
+Part of fix for bug #1675513 (<a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to <a href="http://docbook.org/tdg5/en/html/area.html"><code class="sgmltag-element">area</code></a> broken).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: inline.xsl</code></p><pre class="screen"><span class="commit-message">Added template match for <a href="http://docbook.org/tdg5/en/html/person.html"><code class="sgmltag-element">person</code></a> element to fo stylesheet.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: lists.xsl</code></p><pre class="screen"><span class="commit-message">Added support for spacing="compact" in <a href="http://docbook.org/tdg5/en/html/variablelist.html"><code class="sgmltag-element">variablelist</code></a>, per bug report #1722540.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: table.xsl</code></p><pre class="screen"><span class="commit-message"><a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> pgwide="1" should also use pgwide.properties attribute-set.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: inline.xsl</code></p><pre class="screen"><span class="commit-message">Make citations numbered if <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/bibliography.numbered.html"><em class="parameter"><code>bibliography.numbered</code></em></a> != 0.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Add new profiling parameters for audience and wordsize.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/callout.icon.size.html"><em class="parameter"><code>callout.icon.size</code></em></a> parameter.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: inline.xsl; xref.xsl</code></p><pre class="screen"><span class="commit-message">Add support for xlink as <a href="http://docbook.org/tdg5/en/html/olink.html"><code class="sgmltag-element">olink</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: autotoc.xsl; param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Add support for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.in.toc.html"><em class="parameter"><code>qanda.in.toc</code></em></a> to fo <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">TOC</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: component.xsl</code></p><pre class="screen"><span class="commit-message">Improved the page.sequence utility template for use with <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: division.xsl</code></p><pre class="screen"><span class="commit-message">Refactored the big <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a> template into smaller pieces.
+Used the "page.sequence" utility template in
+component.xsl to shorten the <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> piece.
+Added placeholder templates for front.cover and back.cover.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent; sections.xsl</code></p><pre class="screen"><span class="commit-message">Add <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/section.container.element.html"><em class="parameter"><code>section.container.element</code></em></a> parameter to enable
+pgwide spans inside sections.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent; component.xsl</code></p><pre class="screen"><span class="commit-message">Add component.titlepage.properties attribute-set to
+support span="all" and other properties.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: htmltbl.xsl; table.xsl</code></p><pre class="screen"><span class="commit-message">Apply table.row.properties template to html <a href="http://docbook.org/tdg5/en/html/tr.html"><code class="sgmltag-element">tr</code></a> rows too.
+Add keep-with-next to table.row.properties when <a href="http://docbook.org/tdg5/en/html/row.html"><code class="sgmltag-element">row</code></a> is in <a href="http://docbook.org/tdg5/en/html/thead.html"><code class="sgmltag-element">thead</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: table.xsl</code></p><pre class="screen"><span class="commit-message">Add support for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/default.table.frame.html"><em class="parameter"><code>default.table.frame</code></em></a> parameter.
+Fix bug 1575446 rowsep last check for @morerows.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: refentry.xsl</code></p><pre class="screen"><span class="commit-message">Add support for <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> in refsections.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: qandaset.xsl</code></p><pre class="screen"><span class="commit-message">Make fo questions and answers behave the same way as html</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: lists.xsl</code></p><pre class="screen"><span class="commit-message">Added missing attribute set for <a href="http://docbook.org/tdg5/en/html/procedure.html"><code class="sgmltag-element">procedure</code></a></span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: param.xweb; biblio.xsl; docbook.xsl; param.ent; biblio-iso690.xsl</code></p><pre class="screen"><span class="commit-message">Added support for formatting biblioentries according to ISO690 <a href="http://docbook.org/tdg5/en/html/citation.html"><code class="sgmltag-element">citation</code></a> style.
+New <a href="http://docbook.org/tdg5/en/html/bibliography.html"><code class="sgmltag-element">bibliography</code></a> style can be turned on by setting parameter <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/bibliography.style.html"><em class="parameter"><code>bibliography.style</code></em></a> to "iso690"
+The code was provided by Jana Dvorakova</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent; pagesetup.xsl</code></p><pre class="screen"><span class="commit-message">Add header.table.properties and footer.table.properties attribute-sets.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: inline.xsl</code></p><pre class="screen"><span class="commit-message">Add <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/fop1.extensions.html"><em class="parameter"><code>fop1.extensions</code></em></a> for <a href="http://docbook.org/tdg5/en/html/menuchoice.html"><code class="sgmltag-element">menuchoice</code></a> arrow handling exception.</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">html</code> code
+            since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Moved declaration and documentation of <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/javahelp.encoding.html"><em class="parameter"><code>javahelp.encoding</code></em></a> from javahelp.xsl to the
+regular "parameter machinery".</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: admon.xsl</code></p><pre class="screen"><span class="commit-message">Changed handling of titles for note, warning, <a href="http://docbook.org/tdg5/en/html/caution.html"><code class="sgmltag-element">caution</code></a>, <a href="http://docbook.org/tdg5/en/html/important.html"><code class="sgmltag-element">important</code></a>,
+<a href="http://docbook.org/tdg5/en/html/tip.html"><code class="sgmltag-element">tip</code></a> admonitions: We now output and HTML h3 head only if
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/admon.textlabel.html"><em class="parameter"><code>admon.textlabel</code></em></a> is non-zero or if the admonition actually contains
+a <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>; otherwise, we don't output an h3 head at all.
+(Previously, we were outputting an empty h3 if the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/admon.textlabel.html"><em class="parameter"><code>admon.textlabel</code></em></a>
+was zero and if the admonition had no title.)</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: xref.xsl</code></p><pre class="screen"><span class="commit-message">Added template for <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to <a href="http://docbook.org/tdg5/en/html/area.html"><code class="sgmltag-element">area</code></a>/<a href="http://docbook.org/tdg5/en/html/areaset.html"><code class="sgmltag-element">areaset</code></a>.
+Part of fix for bug #1675513 (<a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to <a href="http://docbook.org/tdg5/en/html/area.html"><code class="sgmltag-element">area</code></a> broken).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: titlepage.xsl; component.xsl; division.xsl; sections.xsl</code></p><pre class="screen"><span class="commit-message">Added fixes to avoid duplicate ids when <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/generate.id.attributes.html"><em class="parameter"><code>generate.id.attributes</code></em></a> = 1.
+This (hopefully) closes bug #1671052.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: formal.xsl; pi.xsl</code></p><pre class="screen"><span class="commit-message">Made the dbfunclist PI work as intended. Also added doc for
+dbfunclist and dbcmdlist PIs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: pi.xsl; synop.xsl</code></p><pre class="screen"><span class="commit-message">Made the dbcmdlist work the way it appears to have been intended
+to work. Restored dbhtml-dir template back to pi.xsl.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: titlepage.xsl; param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Added new param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/abstract.notitle.enabled.html"><em class="parameter"><code>abstract.notitle.enabled</code></em></a>.
+If non-zero, in output of the <a href="http://docbook.org/tdg5/en/html/abstract.html"><code class="sgmltag-element">abstract</code></a> element on titlepages,
+display of the <a href="http://docbook.org/tdg5/en/html/abstract.html"><code class="sgmltag-element">abstract</code></a> <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> is suppressed.
+Because sometimes you really don't want or need that <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>
+there...</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: chunk-code.xsl; graphics.xsl</code></p><pre class="screen"><span class="commit-message">When we are chunking long descriptions for <a href="http://docbook.org/tdg5/en/html/mediaobject.html"><code class="sgmltag-element">mediaobject</code></a> instances
+into separate HTML output files, and <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/use.id.as.filename.html"><em class="parameter"><code>use.id.as.filename</code></em></a> is
+non-zero, if a <a href="http://docbook.org/tdg5/en/html/mediaobject.html"><code class="sgmltag-element">mediaobject</code></a> has an ID, use that ID as the basename
+for the long-description file (otherwise, we generate an ID for it
+and use that ID as the basename for the file).
+The parallels the recent change made to cause IDs for <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a>
+instances to be used as basenames for <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a> chunks.
+Also, made some minor refinements to the recent changes for
+<a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a> chunk handling.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: titlepage.xsl</code></p><pre class="screen"><span class="commit-message">Added support to the HTML stylesheets for proper processing of
+<a href="http://docbook.org/tdg5/en/html/orgname.html"><code class="sgmltag-element">orgname</code></a> as a child of <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: chunk-code.xsl</code></p><pre class="screen"><span class="commit-message">When $generate.legalnotice.link is non-zero and
+$use.id.as.filename is also non-zero, if a <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a> has an ID,
+then instead of assigning the "ln-&lt;generatedID&gt;" basename to the
+output file for that <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a>, just use its real ID as the
+basename for the file -- as we do when chunking other elements
+that have IDs.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: xref.xsl</code></p><pre class="screen"><span class="commit-message">Handle <a href="http://docbook.org/tdg5/en/html/alt.html"><code class="sgmltag-element">alt</code></a> text on xrefs to steps when the step doesn't have a <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: lists.xsl</code></p><pre class="screen"><span class="commit-message">Added &lt;p&gt; element around <a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a> in <a href="http://docbook.org/tdg5/en/html/variablelist.html"><code class="sgmltag-element">variablelist</code></a> when formatted as <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> to avoid misalignment of <a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a> and <a href="http://docbook.org/tdg5/en/html/listitem.html"><code class="sgmltag-element">listitem</code></a> in xhtml (non-quirks mode) output</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: qandaset.xsl</code></p><pre class="screen"><span class="commit-message">Added &lt;p&gt; element around <a href="http://docbook.org/tdg5/en/html/question.html"><code class="sgmltag-element">question</code></a> and <a href="http://docbook.org/tdg5/en/html/answer.html"><code class="sgmltag-element">answer</code></a> labels to avoid misalignment of <a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a> and <a href="http://docbook.org/tdg5/en/html/listitem.html"><code class="sgmltag-element">listitem</code></a> in xhtml (non-quirks mode) output</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: lists.xsl</code></p><pre class="screen"><span class="commit-message">Added &lt;p&gt; element around callouts to avoid misalignment of <a href="http://docbook.org/tdg5/en/html/callout.html"><code class="sgmltag-element">callout</code></a> and <a href="http://docbook.org/tdg5/en/html/listitem.html"><code class="sgmltag-element">listitem</code></a> in xhtml (non-quirks mode) output</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: inline.xsl</code></p><pre class="screen"><span class="commit-message">Make citations numbered if <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/bibliography.numbered.html"><em class="parameter"><code>bibliography.numbered</code></em></a> != 0.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: param.xweb; param.ent</code></p><pre class="screen"><span class="commit-message">Add support for new profiling attributes audience and wordsize.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: inline.xsl; xref.xsl</code></p><pre class="screen"><span class="commit-message">Add support for xlink olinks.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: glossary.xsl</code></p><pre class="screen"><span class="commit-message">Rules for normalizing <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a> entries before they are sorted can be now different for each language.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: chunk-common.xsl; chunk-code.xsl; manifest.xsl; chunk.xsl</code></p><pre class="screen"><span class="commit-message">Refactored the chunking modules to move all named templates to
+chunk-common.xsl and all match templates to chunk-code.xsl, in
+order to enable better chunk customization.
+See the comments in chunk.xsl for more details.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: lists.xsl</code></p><pre class="screen"><span class="commit-message">Add <a href="http://docbook.org/tdg5/en/html/anchor.html"><code class="sgmltag-element">anchor</code></a> for xml:id for <a href="http://docbook.org/tdg5/en/html/listitem.html"><code class="sgmltag-element">listitem</code></a> in <a href="http://docbook.org/tdg5/en/html/varlistentry.html"><code class="sgmltag-element">varlistentry</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: refentry.xsl</code></p><pre class="screen"><span class="commit-message">Add support for <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> in refsections for db5.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: param.xweb; biblio.xsl; docbook.xsl; param.ent; biblio-iso690.xsl</code></p><pre class="screen"><span class="commit-message">Added support for formatting biblioentries according to ISO690 <a href="http://docbook.org/tdg5/en/html/citation.html"><code class="sgmltag-element">citation</code></a> style.
+New <a href="http://docbook.org/tdg5/en/html/bibliography.html"><code class="sgmltag-element">bibliography</code></a> style can be turned on by setting parameter <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/bibliography.style.html"><em class="parameter"><code>bibliography.style</code></em></a> to "iso690"
+The code was provided by Jana Dvorakova</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: inline.xsl; xref.xsl</code></p><pre class="screen"><span class="commit-message">Add call to class.attribute to &lt;a&gt; output elements so they can
+have a class value too.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: glossary.xsl</code></p><pre class="screen"><span class="commit-message">Fixed bug #1644881:
+* Added curly braces around all $language attribute values. 
+* Moved declaration of language variable to top level of stylesheet.
+Tested with Xalan, Saxon, and xsltproc.</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_Manpages"></a>Manpages</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">manpages</code> code
+            since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: param.xweb; docbook.xsl; param.ent</code></p><pre class="screen"><span class="commit-message">Added the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.authors.section.enabled.html"><em class="parameter"><code>man.authors.section.enabled</code></em></a> and
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.copyright.section.enabled.html"><em class="parameter"><code>man.copyright.section.enabled</code></em></a> parameters. Set those to zero when
+you want to suppress display of the auto-generated AUTHORS and
+<a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">COPYRIGHT</code></a> sections. Closes request #1467806. Thanks to Daniel
+Leidert.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Took the test that the manpages stylesheet does to see if there
+are any <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">Refentry</code></a> chilren in current doc, and made it
+namespace-agnostic. Reason for that is because the test otherwise
+won't work when it is copied over into the generated
+profile-docbook.xsl stylesheet.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: Makefile</code></p><pre class="screen"><span class="commit-message">Added a manpages/profile-docbook.xsl file to enable single-pass
+profiling for manpages output.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: info.xsl</code></p><pre class="screen"><span class="commit-message">Output <a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">copyright</code></a> and <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a> in man-page output in whatever
+place they are in in document order. Closes #1690539. Thanks to
+Daniel Leidert for reporting.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: docbook.xsl</code></p><pre class="screen"><span class="commit-message">Restored support for single-pass namespace stripping to manpages
+stylesheet.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: synop.xsl; block.xsl; info.xsl; inline.xsl; lists.xsl; endnotes.xsl; ut&#8943;</code></p><pre class="screen"><span class="commit-message">Changed handling of bold and italic/underline output in manpages
+output. Should be transparent to users, but...
+
+This touches handling of all bold and italic/underline output. The
+exact change is that the mode="bold" and mode="italic" utility
+templates were changed to named templates. (I think maybe I've
+changed it back and forth from mode to named before, so this is
+maybe re-reverting it yet again).
+
+Anyway, the reason for the change is that the templates are
+sometimes call on dynamically node-sets, and using modes to format
+those doesn't allow passing <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a> about the current/real context
+node from the source (not the node-set created by the stylesheet)
+to that formatting stage.
+
+The named templates allow the context to be passed in as a
+parameter, so that the bold/ital formatting template can use
+context-aware condition checking.
+
+This was basically necessary in order to suppress bold formatting
+in titles, which otherwise gets screwed up because of the numbnut
+way that roff handles nested bold/ital.
+
+Closes #1674534). Much thanks to Daniel Leidert, whose in his
+docbook-xsl bug-finding kung-fu has achieved Grand Master status.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl</code></p><pre class="screen"><span class="commit-message">Fixed handling of example instances by adding the example element
+to the same template we use for processing <a href="http://docbook.org/tdg5/en/html/figure.html"><code class="sgmltag-element">figure</code></a>. Closes
+#1674538. Thanks to Daniel Leidert.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: utility.xsl</code></p><pre class="screen"><span class="commit-message">Don't include lang in manpages <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a>/pathname if lang=en (that
+is, only generate lang-qualified file-/pathnames for non-English).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: endnotes.xsl</code></p><pre class="screen"><span class="commit-message">In manpages output, emit warnings for notesources (<a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a>, etc.)
+that have something other than <a href="http://docbook.org/tdg5/en/html/para.html"><code class="sgmltag-element">para</code></a> as a child.
+
+The numbered-with-hanging-indent formatting that's used for
+rendering endnotes in the NOTES <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> of man pages places some
+limits/assumptions on how the DocBook source is marked up; namely,
+for notesources (<a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a>, <a href="http://docbook.org/tdg5/en/html/annotation.html"><code class="sgmltag-element">annotation</code></a>, etc.) that can contain
+block-level children, if the they have a block-level child such as
+a <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> or <a href="http://docbook.org/tdg5/en/html/itemizedlist.html"><code class="sgmltag-element">itemizedlist</code></a> or <a href="http://docbook.org/tdg5/en/html/orderedlist.html"><code class="sgmltag-element">orderedlist</code></a> that is the first child of
+a <a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a>, we have no way of rendering/indenting its content
+properly in the endnotes list.
+
+Thus, the manpages stylesheet not emits a warning message for that
+case, and suggests the "fix" (which is to wrap the <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> or
+<a href="http://docbook.org/tdg5/en/html/itemizedlist.html"><code class="sgmltag-element">itemizedlist</code></a> or whatever in a <a href="http://docbook.org/tdg5/en/html/para.html"><code class="sgmltag-element">para</code></a> that has some preferatory text.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: utility.xsl</code></p><pre class="screen"><span class="commit-message">Added support to mixed-block template for handling tables in
+mixed-blocks (e.g., as child of <a href="http://docbook.org/tdg5/en/html/para.html"><code class="sgmltag-element">para</code></a>) correctly.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: table.xsl; synop.xsl; block.xsl; info.xsl; lists.xsl; refentry.xsl; end&#8943;</code></p><pre class="screen"><span class="commit-message">Reverted necessary escaping of backslash, dot, and dash
+out of the well-intentioned (but it now appears,
+misguided) "marker" mechanism (introduced in the 1.72.0
+release) -- which made use of alternative "marker"
+characters as internal representations of those
+characters, and then replaced them just prior to
+serialization -- and back into what's basically the
+system that was used prior to the 1.69.0 release; that
+is, into a part of stylesheet code that gets executed
+at the beginning of processing -- before any other roff
+markup up is. This change obviates the need for the
+marker system. It also requires a lot less RAM during
+processing (for large files, the marker mechanism
+ending up requiring gigabytes of memory).
+
+Closes bug #1661177. Thanks to Scott Smedley for
+providing a test case (the fvwm man page) that exposed
+the problem with the marker mechanism.
+
+Also moved the mechanism for converting non-breaking
+spaces back into the same <a href="http://docbook.org/tdg5/en/html/area.html"><code class="sgmltag-element">area</code></a> of the stylesheet code.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: lists.xsl</code></p><pre class="screen"><span class="commit-message">Fixed problem with incorrect formatting of nested <a href="http://docbook.org/tdg5/en/html/variablelist.html"><code class="sgmltag-element">variablelist</code></a>.
+Closes bug #1650931. Thanks to Daniel "Eagle Eye" Leidert.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: lists.xsl</code></p><pre class="screen"><span class="commit-message">Make sure that all listitems in <a href="http://docbook.org/tdg5/en/html/itemizedlist.html"><code class="sgmltag-element">itemizedlist</code></a> and <a href="http://docbook.org/tdg5/en/html/orderedlist.html"><code class="sgmltag-element">orderedlist</code></a> are
+preceded by a blank line. This fixes a regression that occurred
+when instances of the TP macro that were use in a previous
+versions of the list-handling code were switched to RS/RE (because
+TP doesn't support nesting). TP automatically generates a blank
+line, but RS doesn't. So I added a .sp before each .RS</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: block.xsl; inline.xsl; param.xweb; docbook.xsl; links.xsl; param.ent</code></p><pre class="screen"><span class="commit-message">Made a number of changes related to elements with
+out-of-line content:
+
+- Added handling for <a href="http://docbook.org/tdg5/en/html/mediaobject.html"><code class="sgmltag-element">mediaobject</code></a> &amp; <a href="http://docbook.org/tdg5/en/html/inlinemediaobject.html"><code class="sgmltag-element">inlinemediaobject</code></a>.
+  Each <a href="http://docbook.org/tdg5/en/html/imagedata.html"><code class="sgmltag-element">imagedata</code></a>, <a href="http://docbook.org/tdg5/en/html/audiodata.html"><code class="sgmltag-element">audiodata</code></a>, or <a href="http://docbook.org/tdg5/en/html/videodata.html"><code class="sgmltag-element">videodata</code></a> element
+  within a <a href="http://docbook.org/tdg5/en/html/mediaobject.html"><code class="sgmltag-element">mediaobject</code></a> or inline <a href="http://docbook.org/tdg5/en/html/mediaobject.html"><code class="sgmltag-element">mediaobject</code></a> is now
+  treated as a "notesource" and so handled in much the
+  same way as links and <a href="http://docbook.org/tdg5/en/html/annotation.html"><code class="sgmltag-element">annotation</code></a>/<a href="http://docbook.org/tdg5/en/html/alt.html"><code class="sgmltag-element">alt</code></a>/footnotes.
+
+  That means a numbered marker is generated inline to
+  mark the place in the main flow where the <a href="http://docbook.org/tdg5/en/html/imagedata.html"><code class="sgmltag-element">imagedata</code></a>,
+  <a href="http://docbook.org/tdg5/en/html/audiodata.html"><code class="sgmltag-element">audiodata</code></a>, or <a href="http://docbook.org/tdg5/en/html/videodata.html"><code class="sgmltag-element">videodata</code></a> element occurs, and a
+  corresponding numbered endnote for it is generated in
+  the endnotes list at the end of the man page; the
+  endnote contains the URL from the fileref attribute
+  of the <a href="http://docbook.org/tdg5/en/html/imagedata.html"><code class="sgmltag-element">imagedata</code></a>, <a href="http://docbook.org/tdg5/en/html/audiodata.html"><code class="sgmltag-element">audiodata</code></a>, or <a href="http://docbook.org/tdg5/en/html/videodata.html"><code class="sgmltag-element">videodata</code></a> element.
+
+  For mediobject and <a href="http://docbook.org/tdg5/en/html/inlinemediaobject.html"><code class="sgmltag-element">inlinemediaobject</code></a> instances that
+  have a <a href="http://docbook.org/tdg5/en/html/textobject.html"><code class="sgmltag-element">textobject</code></a> child, the <a href="http://docbook.org/tdg5/en/html/textobject.html"><code class="sgmltag-element">textobject</code></a> is displayed
+  within the main text flow.
+
+- Renamed several man.link.* params to man.endnotes.*,
+  to reflect that fact that the endnotes list now
+  contains more than just links. Also did similar
+  renaming for a number of stylesheet-internal vars.
+
+- Added support for xlink:href (along with existing
+  support for the legacy ulink element).
+
+- Cleaned up and streamlined the endnotes-handling
+  code. It's still messy and klunky and the basic
+  mechanism it uses is very inefficent for documents
+  that contain a lot of notesources, but at least it's
+  a bit better than it was.</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_Eclipse"></a>Eclipse</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">eclipse</code> code
+            since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: Makefile</code></p><pre class="screen"><span class="commit-message">Fixed bug #1715093: Makefile for creating profiled version of eclipse.xsl added.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">David Cramer: eclipse.xsl</code></p><pre class="screen"><span class="commit-message">Added normalize-space around  to avoid leading whitespace from appearing in the output if there's extra leading whitespace (e.g. &lt;<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>&gt; Foo&lt;/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>&gt;) in the source</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_JavaHelp"></a>JavaHelp</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">javahelp</code> code
+            since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: javahelp.xsl</code></p><pre class="screen"><span class="commit-message">Implemented FR #1230233 (sorted <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> in javahelp).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: javahelp.xsl</code></p><pre class="screen"><span class="commit-message">Added normalize-space() around titles and <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> entries to work around whitespace problems.
+Added support for <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a> and <a href="http://docbook.org/tdg5/en/html/bibliography.html"><code class="sgmltag-element">bibliography</code></a> in <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> and map files.</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_Roundtrip"></a>Roundtrip</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">roundtrip</code> code
+            since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Steve Ball: blocks2dbk.xsl; wordml2normalise.xsl; normalise2sections.xsl; sections2blocks.&#8943;</code></p><pre class="screen"><span class="commit-message">new stylesheets for better word processor support and easier maintenance</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Steve Ball: template-pages.xml; dbk2wp.xsl; sections-spec.xml</code></p><pre class="screen"><span class="commit-message">fixed bugs</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_Params"></a>Params</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">params</code> code
+            since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: htmlhelp.button.back.xml; htmlhelp.button.forward.xml; htmlhelp.button.zo&#8943;</code></p><pre class="screen"><span class="commit-message">Modified <a href="http://docbook.org/tdg5/en/html/refpurpose.html"><code class="sgmltag-element">refpurpose</code></a> text.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: htmlhelp.map.file.xml; htmlhelp.force.map.and.alias.xml; htmlhelp.alias.f&#8943;</code></p><pre class="screen"><span class="commit-message">Fixed typos, made some small changes.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: javahelp.encoding.xml</code></p><pre class="screen"><span class="commit-message">Moved declaration and documentation of <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/javahelp.encoding.html"><em class="parameter"><code>javahelp.encoding</code></em></a> from javahelp.xsl to the
+regular "parameter machinery".</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: generate.id.attributes.xml</code></p><pre class="screen"><span class="commit-message">Added <a href="http://docbook.org/tdg5/en/html/refpurpose.html"><code class="sgmltag-element">refpurpose</code></a> text.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: annotation.js.xml; annotation.graphic.open.xml; annotation.graphic.close.&#8943;</code></p><pre class="screen"><span class="commit-message">Added better <a href="http://docbook.org/tdg5/en/html/refpurpose.html"><code class="sgmltag-element">refpurpose</code></a> texts.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: chunker.output.cdata-section-elements.xml; chunker.output.standalone.xm&#8943;</code></p><pre class="screen"><span class="commit-message">Fixed some broken formatting in source files for chunker.* params,
+as pointed out by Dave Pawson.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: label.from.part.xml</code></p><pre class="screen"><span class="commit-message">Changed handling of <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a> auto-labeling such that <a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a>
+(when it appears at the component level) is now affected by the
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/label.from.part.html"><em class="parameter"><code>label.from.part</code></em></a> param, just as <a href="http://docbook.org/tdg5/en/html/preface.html"><code class="sgmltag-element">preface</code></a>, <a href="http://docbook.org/tdg5/en/html/chapter.html"><code class="sgmltag-element">chapter</code></a>, and <a href="http://docbook.org/tdg5/en/html/appendix.html"><code class="sgmltag-element">appendix</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: callout.graphics.extension.xml</code></p><pre class="screen"><span class="commit-message">Clarified that 'extension' refers to file names.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: abstract.notitle.enabled.xml</code></p><pre class="screen"><span class="commit-message">Added new param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/abstract.notitle.enabled.html"><em class="parameter"><code>abstract.notitle.enabled</code></em></a>.
+If non-zero, in output of the <a href="http://docbook.org/tdg5/en/html/abstract.html"><code class="sgmltag-element">abstract</code></a> element on titlepages,
+display of the <a href="http://docbook.org/tdg5/en/html/abstract.html"><code class="sgmltag-element">abstract</code></a> <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> is suppressed.
+Because sometimes you really don't want or need that <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>
+there...</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: man.string.subst.map.xml</code></p><pre class="screen"><span class="commit-message">Updated manpages string-substitute map to reflect fact that
+because of another recent change to suppress bold markup in .SH
+output, we no longer need to add a workaround for the accidental
+uppercasing of roff escapes that occurred previously.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: margin.note.float.type.xml; title.font.family.xml; table.frame.border.color.x&#8943;</code></p><pre class="screen"><span class="commit-message">Improved parameter metadata</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: profile.wordsize.xml; profile.audience.xml</code></p><pre class="screen"><span class="commit-message">Add support for profiling on new attributes audience and wordsize.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: callout.graphics.number.limit.xml; callout.graphics.extension.xml</code></p><pre class="screen"><span class="commit-message">Added SVG graphics for fo output.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: callout.icon.size.xml</code></p><pre class="screen"><span class="commit-message">Set size of <a href="http://docbook.org/tdg5/en/html/callout.html"><code class="sgmltag-element">callout</code></a> graphics.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: default.units.xml; chunker.output.method.xml; toc.list.type.xml; output.inden&#8943;</code></p><pre class="screen"><span class="commit-message">Updated parameter metadata to the new format.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: man.output.quietly.xml; title.font.family.xml; footnote.sep.leader.properties&#8943;</code></p><pre class="screen"><span class="commit-message">Added type annotations into parameter definition files.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: section.container.element.xml</code></p><pre class="screen"><span class="commit-message">Support spans in sections for certain processors.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: component.titlepage.properties.xml</code></p><pre class="screen"><span class="commit-message">Empty attribute set for top level component titlepage block.
+Allows setting a span on <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: bibliography.style.xml</code></p><pre class="screen"><span class="commit-message">Added <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> to WiKi page with description of special markup needed for ISO690 biblioentries</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: make.year.ranges.xml</code></p><pre class="screen"><span class="commit-message">Clarify that multiple <a href="http://docbook.org/tdg5/en/html/year.html"><code class="sgmltag-element">year</code></a> elements are required.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: id.warnings.xml</code></p><pre class="screen"><span class="commit-message">Turn off <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/id.warnings.html"><em class="parameter"><code>id.warnings</code></em></a> by default.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Jirka Kosek: bibliography.style.xml</code></p><pre class="screen"><span class="commit-message">Added support for formatting biblioentries according to ISO690 <a href="http://docbook.org/tdg5/en/html/citation.html"><code class="sgmltag-element">citation</code></a> style.
+New <a href="http://docbook.org/tdg5/en/html/bibliography.html"><code class="sgmltag-element">bibliography</code></a> style can be turned on by setting parameter <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/bibliography.style.html"><em class="parameter"><code>bibliography.style</code></em></a> to "iso690"
+The code was provided by Jana Dvorakova</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Robert Stayton: header.table.properties.xml; footer.table.properties.xml</code></p><pre class="screen"><span class="commit-message">Support adding <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> properties to header and footer tables.</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_Highlighting"></a>Highlighting</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">highlighting</code> code
+            since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Jirka Kosek: c-hl.xml; xslthl-config.xml</code></p><pre class="screen"><span class="commit-message">Added support for C language. Provided by Bruno Guegan.</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_Profiling"></a>Profiling</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">profiling</code> code
+            since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Robert Stayton: profile-mode.xsl</code></p><pre class="screen"><span class="commit-message">Add support for new profiling attributes audience and wordsize.</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_Lib"></a>Lib</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">lib</code> code
+            since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: lib.xweb</code></p><pre class="screen"><span class="commit-message">Changed name of prepend-pad template to pad-string and twheeked so
+it can do both right/left padding.</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_Tools"></a>Tools</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">tools</code> code
+            since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: bin; bin/docbook-xsl-update</code></p><pre class="screen"><span class="commit-message">Did some cleanup to the install.sh source and added a
+docbook-xsl-update script to the docbook-xsl distro, the purpose
+of which is to facilitate easy sync-up to the latest docbook-xsl
+snapshot (by means of rsync).</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_XSL-Saxon"></a>XSL-Saxon</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">xsl-saxon</code> code
+            since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: xalan27/src/com/nwalsh/xalan/Verbatim.java; xalan27/src/com/nwalsh/xalan/&#8943;</code></p><pre class="screen"><span class="commit-message">Added modifications so that the new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/callout.icon.size.html"><em class="parameter"><code>callout.icon.size</code></em></a> parameter is taken into account. This 
+parameter is used for FO output (where SVG now is the default graphics format for callouts).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: saxon65/src/com/nwalsh/saxon/FormatCallout.java; xalan27/src/com/nwalsh/x&#8943;</code></p><pre class="screen"><span class="commit-message">Added code for generating id attributes on callouts in HTML and FO output.
+These patches enable cross-references to callouts placed by <a href="http://docbook.org/tdg5/en/html/area.html"><code class="sgmltag-element">area</code></a> coordinates.
+It works for graphic, unicode and text callouts. 
+Part of fix for bug #1675513 (<a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to <a href="http://docbook.org/tdg5/en/html/area.html"><code class="sgmltag-element">area</code></a> broken).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: saxon65/src/com/nwalsh/saxon/Website.java; xalan27/src/com/nwalsh/xalan&#8943;</code></p><pre class="screen"><span class="commit-message">Copied over Website XSL Java extensions.</span></pre>
+</li></ul></div>
+</div>
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.73.0_XSL-Xalan"></a>XSL-Xalan</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">xsl-xalan</code> code
+            since the 1.72.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: Makefile; xalan2</code></p><pre class="screen"><span class="commit-message">Turned off xalan2.jar build. This removes DocBook XSL
+Java extensions support for versions of Xalan prior to
+Xalan 2.7. If you are currently using the extensions
+with an earlier version of Xalan, you need to upgrade
+to Xalan 2.7.</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: xalan27/src/com/nwalsh/xalan/Verbatim.java; xalan27/src/com/nwalsh/xalan/&#8943;</code></p><pre class="screen"><span class="commit-message">Added modifications so that the new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/callout.icon.size.html"><em class="parameter"><code>callout.icon.size</code></em></a> parameter is taken into account. This 
+parameter is used for FO output (where SVG now is the default graphics format for callouts).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Mauritz Jeanson: saxon65/src/com/nwalsh/saxon/FormatCallout.java; xalan27/src/com/nwalsh/x&#8943;</code></p><pre class="screen"><span class="commit-message">Added code for generating id attributes on callouts in HTML and FO output.
+These patches enable cross-references to callouts placed by <a href="http://docbook.org/tdg5/en/html/area.html"><code class="sgmltag-element">area</code></a> coordinates.
+It works for graphic, unicode and text callouts. 
+Part of fix for bug #1675513 (<a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to <a href="http://docbook.org/tdg5/en/html/area.html"><code class="sgmltag-element">area</code></a> broken).</span></pre>
+</li><li class="listitem">
+<p><code class="literal">Michael(tm) Smith: saxon65/src/com/nwalsh/saxon/Website.java; xalan27/src/com/nwalsh/xalan&#8943;</code></p><pre class="screen"><span class="commit-message">Copied over Website XSL Java extensions.</span></pre>
+</li></ul></div>
+</div>
+</div>
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.72.0"></a>Release: 1.72.0</h2></div></div></div>
+
+<p>This release includes important bug fixes and adds the following
+significant feature changes:
+</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Automatic sorting of glossary entries</span></dt><dd>
+      <p>The HTML and FO stylesheets now support automatic sorting
+      of <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a> entries. To enable glossary sorting, set
+      the value of the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/glossary.sort.html"><em class="parameter"><code>glossary.sort </code></em></a> parameter
+      to <code class="code">1</code> (by default, it&#8217;s value is
+      <code class="code">0</code>). When you enable glossary sorting,
+      <a href="http://docbook.org/tdg5/en/html/glossentry.html"><code class="sgmltag-element">glossentry</code></a> elements within a <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element"> glossary</code></a>,
+      <a href="http://docbook.org/tdg5/en/html/glossdiv.html"><code class="sgmltag-element">glossdiv</code></a>, or <a href="http://docbook.org/tdg5/en/html/glosslist.html"><code class="sgmltag-element">glosslist</code></a> are sorted on the
+      <a href="http://docbook.org/tdg5/en/html/glossterm.html"><code class="sgmltag-element">glossterm</code></a>, using the current language setting. If you
+      don&#8217;t enable glossary sorting, then the order of
+      <a href="http://docbook.org/tdg5/en/html/glossentry.html"><code class="sgmltag-element">glossentry</code></a> elements is left &#8220;as is&#8221; &#8212; that is, they
+      are not sorted but are instead just displayed in document
+      order.</p>
+    </dd><dt><span class="term">WordML renamed to Roundtrip, OpenOffice support added</span></dt><dd>
+    <p>Stylesheets for &#8220;roundtrip&#8221; conversion between documents in
+    OpenOffice format (ODF) and DocBook XML have been added to the set
+    of stylesheets that formerly had the collective title
+    <em class="wordasword">WordML</em>, and that set of stylesheets has
+    been renamed to <em class="wordasword">Roundtrip</em> to better
+    reflect the actual scope and purpose of its contents.</p>
+    <p>So the DocBook XSL Stylesheets now support roundtrip
+    conversion (with certain limitations) of WordML, OpenOffice, and
+    Apple Pages documents to and from DocBook XML.</p>
+    </dd><dt><span class="term">Including QandASet questions in TOCs</span></dt><dd>
+      <p>The HTML stylesheet now provides support for including
+      <a href="http://docbook.org/tdg5/en/html/qandaset.html"><code class="sgmltag-element">QandASet</code></a> <a href="http://docbook.org/tdg5/en/html/question.html"><code class="sgmltag-element">question</code></a>s in the document TOC. To
+      enable display of <a href="http://docbook.org/tdg5/en/html/question.html"><code class="sgmltag-element">question</code></a>s in the document TOC, set
+      the value of the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.in.toc.html"><em class="parameter"><code>qanda.in.toc</code></em></a> to
+      <code class="code">1</code> (by default, it&#8217;s <code class="code">0</code>). When you
+      enable <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.in.toc.html"><em class="parameter"><code>qanda.in.toc</code></em></a>, then the generated
+      table of contents for a document will include
+      <a href="http://docbook.org/tdg5/en/html/qandaset.html"><code class="sgmltag-element">qandaset</code></a> titles, <a href="http://docbook.org/tdg5/en/html/qandadiv.html"><code class="sgmltag-element">qandadiv</code></a> titles, and
+      <a href="http://docbook.org/tdg5/en/html/question.html"><code class="sgmltag-element">question</code></a> elements. The default value of zero
+      excludes them from the TOC.
+      </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
+        <p>The <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.in.toc.html"><em class="parameter"><code>qanda.in.toc</code></em></a> parameter does
+        not affect any tables of contents that may be generated
+        <span class="emphasis"><em>within</em></span> a <a href="http://docbook.org/tdg5/en/html/qandaset.html"><code class="sgmltag-element">qandaset</code></a> or
+        <a href="http://docbook.org/tdg5/en/html/qandadiv.html"><code class="sgmltag-element">qandadiv</code></a> (only in the document TOC).</p>
+      </div><p>
+      </p>
+    </dd><dt><span class="term">Language identifier in man-page filenames and pathnames</span></dt><dd>
+      <p>Added new parameter <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.lang.in.name.enabled.html"><em class="parameter"><code>man.output.lang.in.name.enabled</code></em></a>, which controls whether
+      a language identifier is included in man-page filenames and
+      pathnames. It works like this:</p>
+
+      <p>If the value of <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.lang.in.name.enabled.html"><em class="parameter"><code>man.output.lang.in.name.enabled</code></em></a> is non-zero,
+      man-page files are output with a language identifier included in
+      their filenames or pathnames as follows:</p>
+
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>if
+        <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.subdirs.enabled.html"><em class="parameter"><code>man.output.subdirs.enabled</code></em></a> is non-zero,
+        each file is output to, e.g., a
+        <code class="filename">/$lang/man8/foo.8</code> pathname</p></li><li class="listitem"><p>if
+        <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.subdirs.enabled.html"><em class="parameter"><code>man.output.subdirs.enabled</code></em></a> is zero,
+        each file is output with a <code class="sgmltag-element">foo.$lang.8</code>
+        filename</p></li></ul></div>
+
+    </dd><dt><span class="term"><a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/index.page.number.properties.html"><em class="parameter"><code>index.page.number.properties</code></em></a> property set</span></dt><dd>
+      <p>For FO output, use the
+      <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/index.page.number.properties.html"><em class="parameter"><code>index.page.number.properties</code></em></a> to control
+      formatting of page numbers in <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> output &#8212; to (for
+      example) to display page numbers in <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> output in a
+      different color (to indicate that they are links).</p>
+    </dd><dt><span class="term">Crop marks in output from Antenna House XSL Formatter</span></dt><dd>
+      <p>Support has been added for generating crop marks in
+      print/PDF output generated using Antenna House XSL Formatter</p>
+    </dd><dt><span class="term">More string-substitution hooks in manpages output</span></dt><dd>
+      <p>The <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.string.subst.map.local.pre.html"><em class="parameter"><code>man.string.subst.map.local.pre</code></em></a>
+      and <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.string.subst.map.local.post.html"><em class="parameter"><code>man.string.subst.map.local.post</code></em></a>
+      parameters have been added to enable easier control over
+      custom string substitutions.</p>
+    </dd><dt><span class="term">Moved verbatim properties to attribute-set</span></dt><dd>
+      <p>The hardcoded properties used in verbatim elements (literallayout,
+      programlisting, screen) were moved to the verbatim.properties 
+      attribute-set so they can be more easily customized.</p>
+    </dd><dt><span class="term">enhanced simple.xlink template</span></dt><dd>
+      <p>Now the simple.xlink template in inline.xsl works with
+      cross reference elements xref and link as well.  Also, more elements
+      call simple.xlink, which enables DB5 xlink functionality.
+      </p>
+    </dd><dt><span class="term">DocBook 5 compatibility</span></dt><dd>
+      <p>Stylesheets now consistently support DocBook 5 attributes
+      (such as xml:id). Also, DocBook 5 info elements are now checked
+      along with other *info elements, and the use of name() function
+      was replaced by local-name() so it also matches on DocBook 5 elements.
+      These changes enable reusing the stylesheets with DocBook 5 
+      documents with minimal fixup.
+      </p>
+    </dd><dt><span class="term">HTML class attributes now handled in class.attribute mode </span></dt><dd>
+      <p>The HTML class attributes were formerly hardcoded to the 
+      element name.  Now the class attribute is generated by applying
+      templates in class.attribute mode so class attribute names
+      can be customized. The default is still the element name.</p>
+    </dd><dt><span class="term">arabic-indic numbering enabled in autolabels</span></dt><dd>
+      <p>Numbering of chapter, sections, and pages can now use
+      arabic-indic numbering when number format is set to 'arabicindic' or
+      to &#1633;.</p>
+    </dd></dl></div><p>
+The following is a detailed list of changes (not
+including bug fixes) that have been made since the 1.71.1
+release.</p>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.72.0_Common"></a>Common</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">common</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add support for arabicindic numbering to autolabel.format template.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Finish support for @xml:id everywhere @id is used.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">replace name() with local-name() in most cases.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add support for <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add utility template tabstyle to return the tabstyle from<br>
+any <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> element.</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.72.0_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">fo</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add support for sorting <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a> entries</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add table.row.properties template to customize <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> rows.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Moved all properties to attribute-sets so can be customized more easily.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add index.page.number.properties attribute-set to format page numbers.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message"><a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> now supports xlink:href, using simple.xlink template.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Rewrote simple.xlink, and call it with all charseq templates.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add simple.xlink processing to <a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a> and <a href="http://docbook.org/tdg5/en/html/member.html"><code class="sgmltag-element">member</code></a> elements.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add support for crop marks in Antenna House.</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.72.0_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">html</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add support for sorting <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a> entries</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add support for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.in.toc.html"><em class="parameter"><code>qanda.in.toc</code></em></a> to add <a href="http://docbook.org/tdg5/en/html/qandaentry.html"><code class="sgmltag-element">qandaentry</code></a> questions to document <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">TOC</code></a>.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">add simple.xlink support to <a href="http://docbook.org/tdg5/en/html/variablelist.html"><code class="sgmltag-element">variablelist</code></a> <a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a> and <a href="http://docbook.org/tdg5/en/html/simplelist.html"><code class="sgmltag-element">simplelist</code></a> <a href="http://docbook.org/tdg5/en/html/member.html"><code class="sgmltag-element">member</code></a>.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">*.propagates.style now handled in class.attribute mode.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">add class parameter to class.attribute mode to set default class.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Convert all class attributes to use the class.attribute mode<br>
+so class names can be customized more easily.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add class.attribute mode to generate class attributes.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added simple.xlink to most remaining inlines.<br>
+Changed class attributes to applying class.attributes mode.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Changed <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> template to use simple.xlink tempalte.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Improve generate.html.title to work with <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> targets too.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Improved simple.xlink to support <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> and <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a>.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Use new link.title.attribute now.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Rewrote simple.xlink to handle linkend also.<br>
+Better computation of <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> attribute on <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> too.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Handle Xalan quirk as special case.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add support for <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a>.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Fixed imagemaps so they work properly going from calspair coords<br>
+to HTML <a href="http://docbook.org/tdg5/en/html/area.html"><code class="sgmltag-element">area</code></a> coords.</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.72.0_Manpages"></a>Manpages</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">manpages</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added doc for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.lang.in.name.enabled.html"><em class="parameter"><code>man.output.lang.in.name.enabled</code></em></a> parameter. This<br>
+checkin completes support for writing file/pathnames for man-pages<br>
+with $lang include in the names. Closes #1585967. knightly<br>
+accolades to Daniel Leidert for providing the feature request.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added new param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.lang.in.name.enabled.html"><em class="parameter"><code>man.output.lang.in.name.enabled</code></em></a>, which<br>
+controls whether $LANG value is included in manpages<br>
+filenames and pathnames. It works like this:<br>
+<br>
+If the value of <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.lang.in.name.enabled.html"><em class="parameter"><code>man.output.lang.in.name.enabled</code></em></a> is non-zero,<br>
+man-page files are output with the $lang value included in<br>
+their filenames or pathnames as follows;<br>
+<br>
+- if <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.subdirs.enabled.html"><em class="parameter"><code>man.output.subdirs.enabled</code></em></a> is non-zero, each file is<br>
+  output to, e.g., a /$lang/man8/foo.8 pathname<br>
+<br>
+- if <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.subdirs.enabled.html"><em class="parameter"><code>man.output.subdirs.enabled</code></em></a> is zero, each file is output<br>
+  with a foo.$lang.8 <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a></span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Use "\e" instead of "\\" for backslash output, because the<br>
+groff docs say that's the correct thing to do; also because<br>
+testing (thanks, Paul Dubois) shows that "\\" doesn't always<br>
+work as expected; for example, "\\" within a <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> seems to<br>
+mess things up.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.string.subst.map.local.pre.html"><em class="parameter"><code>man.string.subst.map.local.pre</code></em></a> and<br>
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.string.subst.map.local.post.html"><em class="parameter"><code>man.string.subst.map.local.post</code></em></a> parameters. Those parameters<br>
+enable local additions and changes to string-substitution mappings<br>
+without the need to change the value of <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.string.subst.map.html"><em class="parameter"><code>man.string.subst.map</code></em></a><br>
+parameter (which is for standard system mappings). Closes<br>
+#1456738. Thanks to Sam Steingold for constructing a true<br>
+stylesheet torture test (the clisp docs) that exposed the need for<br>
+these params.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added the Markup element to the list of elements that get output<br>
+in bold. Thanks to Eric S. Raymond.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Replaced all dots in roff requests with U+2302 ("house"<br>
+character), and added escaping in output for all instances of dot<br>
+that are not in roff requests. This fixes the problem case where a<br>
+string beginning with a dot (for example, the string ".bashrc")<br>
+might occur at the beginning of a line in output, in which case <br>
+would mistakenly get interpreted as a roff request. Thanks to Eric<br>
+S. Raymond for pushing to fix this.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Made change to ensure that list content nested in<br>
+<a href="http://docbook.org/tdg5/en/html/itemizedlist.html"><code class="sgmltag-element">itemizedlist</code></a> and <a href="http://docbook.org/tdg5/en/html/orderedlist.html"><code class="sgmltag-element">orderedlist</code></a> instances is properly indented. This<br>
+is a switch from using .TP to format those lists to using .RS/.RE<br>
+to format them instead (because .TP does not allow nesting). Closes bug #1602616.<br>
+Thanks to Daniel Leidert.</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.72.0_Params"></a>Params</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">params</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added doc for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.lang.in.name.enabled.html"><em class="parameter"><code>man.output.lang.in.name.enabled</code></em></a> parameter. This<br>
+checkin completes support for writing file/pathnames for man-pages<br>
+with $lang include in the names. Closes #1585967. knightly<br>
+accolades to Daniel Leidert for providing the feature request.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added new param <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.lang.in.name.enabled.html"><em class="parameter"><code>man.output.lang.in.name.enabled</code></em></a>, which<br>
+controls whether $LANG value is included in manpages<br>
+filenames and pathnames. It works like this:<br>
+<br>
+If the value of <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.lang.in.name.enabled.html"><em class="parameter"><code>man.output.lang.in.name.enabled</code></em></a> is non-zero,<br>
+man-page files are output with the $lang value included in<br>
+their filenames or pathnames as follows;<br>
+<br>
+- if <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.subdirs.enabled.html"><em class="parameter"><code>man.output.subdirs.enabled</code></em></a> is non-zero, each file is<br>
+  output to, e.g., a /$lang/man8/foo.8 pathname<br>
+<br>
+- if <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.subdirs.enabled.html"><em class="parameter"><code>man.output.subdirs.enabled</code></em></a> is zero, each file is output<br>
+  with a foo.$lang.8 <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a></span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.string.subst.map.local.pre.html"><em class="parameter"><code>man.string.subst.map.local.pre</code></em></a> and<br>
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.string.subst.map.local.post.html"><em class="parameter"><code>man.string.subst.map.local.post</code></em></a> parameters. Those parameters<br>
+enable local additions and changes to string-substitution mappings<br>
+without the need to change the value of <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.string.subst.map.html"><em class="parameter"><code>man.string.subst.map</code></em></a><br>
+parameter (which is for standard system mappings). Closes<br>
+#1456738. Thanks to Sam Steingold for constructing a true<br>
+stylesheet torture test (the clisp docs) that exposed the need for<br>
+these params.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add index.page.number.properties by default.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/index.page.number.properties.html"><em class="parameter"><code>index.page.number.properties</code></em></a> to allow customizations of page numbers in indexes.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Move show-destination="replace" property from template to attribute-set<br>
+so it can be customized.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add support for sorting <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a> entries</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add option to include qanda in tables of contents.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Moved all properties to attribute-sets so can be customized more easily.</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.72.0_Template"></a>Template</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">template</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added workaround for Xalan bug: use for-each and copy instead of copy-of (#1604770).</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.72.0_Roundtrip"></a>Roundtrip</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">roundtrip</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">rename to roundtrip, add OpenOffice support</span></p></div>
+</li></ul></div>
+</div>
+</div>
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.71.1"></a>Release: 1.71.1</h2></div></div></div>
+
+<p>This is a minor update to the 1.71.0 release. Along with a
+number of bug fixes, it includes two feature changes:
+
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+    <p>Added support for profiling based on <code class="sgmltag-attribute">xml:lang</code> and <code class="sgmltag-attribute">status</code> attributes.</p>
+  </li><li class="listitem">
+    <p>Added initial support in manpages output for
+    <a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a>, <a href="http://docbook.org/tdg5/en/html/annotation.html"><code class="sgmltag-element">annotation</code></a>, and <a href="http://docbook.org/tdg5/en/html/alt.html"><code class="sgmltag-element">alt</code></a>
+    instances. Basically, they all now get handled the same way
+    <code class="sgmltag-element">ulink</code> instances are. They are treated as a class as
+    "note sources": A numbered marker is generated at the place in the
+    main text flow where they occur, then their contents are displayed
+    in an endnotes section at the end of the man page.</p>
+  </li></ul></div><p>
+</p>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.1_Common"></a>Common</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">common</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">For backward compatability autoidx-ng.xsl is invoking "kosek" indexing method again.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add support for Xalan generating a root xml:base like saxon.</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.1_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">fo</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">For backward compatability autoidx-ng.xsl is invoking "kosek" indexing method again.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add support for Xalan to add root node xml:base for db5 docs.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added support for profiling based on xml:lang and status attributes.</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.1_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">html</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">For backward compatability autoidx-ng.xsl is invoking "kosek" indexing method again.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add support for Xalan to add root node xml:base for db5 docs.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added support for profiling based on xml:lang and status attributes.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Made changes in namespace declarations to prevent xmllint's<br>
+canonicalizer from treating them as relative namespace URIs.<br>
+<br>
+  - Changed xmlns:k="java:com.isogen.saxoni18n.Saxoni18nService"<br>
+    to xmlns:k="http://www.isogen.com/functions/com.isogen.saxoni18n.Saxoni18nService";<br>
+    Saxon accepts either form<br>
+    (see http://www.saxonica.com/documentation/extensibility/functions.html);<br>
+    to Saxon, "the part of the URI before the final '/' is immaterial".<br>
+<br>
+  - Changed, e.g. xmlns:xverb="com.nwalsh.xalan.Verbatim" to<br>
+    xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim"; Xalan accepts<br>
+    either form<br>
+    (see http://xml.apache.org/xalan-j/extensions.html#java-namespace-declare);<br>
+    just as Saxon does, it will "simply use the string to the<br>
+    right of the rightmost forward slash as the Java class name".<br>
+<br>
+  - Changed xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"<br>
+    to xmlns:redirect="http://xml.apache.org/xalan/redirect", and<br>
+    adjusted associated code to make the current Xalan redirect spec.<br>
+    (see http://xml.apache.org/xalan-j/apidocs/org/apache/xalan/lib/Redirect.html)</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/html.append.html"><em class="parameter"><code>html.append</code></em></a> and <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/chunk.append.html"><em class="parameter"><code>chunk.append</code></em></a> parameters. By default, the<br>
+value of both is empty; but the internal DocBook XSL stylesheets<br>
+build sets their value to "&lt;xsl:text&gt;&amp;#x0a;&lt;/xsl:text&gt;", in order<br>
+to ensure that all files in the docbook-xsl-doc package end in a<br>
+newline character. (Because diff and some other tools may emit<br>
+error messages and/or not behave as expected when processing<br>
+files that are not newline-terminated.)</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.1_Highlighting"></a>Highlighting</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">highlighting</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added license information</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.1_Manpages"></a>Manpages</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">manpages</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added initial support in manpages output for <a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a>, <a href="http://docbook.org/tdg5/en/html/annotation.html"><code class="sgmltag-element">annotation</code></a>,<br>
+and <a href="http://docbook.org/tdg5/en/html/alt.html"><code class="sgmltag-element">alt</code></a> instances. Basically, they all now get handled the same<br>
+way ulink instances are. They are treated as a class as "note<br>
+sources": A numbered marker is generated at the place in the main<br>
+text flow where they occur, then their contents are displayed in<br>
+an endnotes <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> at the end of the man page (currently titled<br>
+REFERENCES, for English output, but will be changed to NOTES).<br>
+<br>
+This support is not yet complete. It works for most "normal"<br>
+cases, but probably mishandles a good number of cases. More<br>
+testing will be needed to expose the problems. It may well also<br>
+introduce some bugs and regressions in other areas, including<br>
+basic paragraph handling, handling of "mixed block" content,<br>
+handling of other indented content, and handling of authorblurb<br>
+and <a href="http://docbook.org/tdg5/en/html/personblurb.html"><code class="sgmltag-element">personblurb</code></a> in the AUTHORS <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a>.</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.1_Params"></a>Params</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">params</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added support for profiling based on xml:lang and status attributes.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/html.append.html"><em class="parameter"><code>html.append</code></em></a> and <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/chunk.append.html"><em class="parameter"><code>chunk.append</code></em></a> parameters. By default, the<br>
+value of both is empty; but the internal DocBook XSL stylesheets<br>
+build sets their value to "&lt;xsl:text&gt;&amp;#x0a;&lt;/xsl:text&gt;", in order<br>
+to ensure that all files in the docbook-xsl-doc <a href="http://docbook.org/tdg5/en/html/package.html"><code class="sgmltag-element">package</code></a> end in a<br>
+newline character. (Because diff and some other tools may emit<br>
+error messages and/or not behave as expected when processing<br>
+files that are not newline-terminated.)</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.1_Profiling"></a>Profiling</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">profiling</code> code
+            since the 1.71.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added support for profiling based on xml:lang and status attributes.</span></p></div>
+</li></ul></div>
+</div>
+
+</div>
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1.71.0"></a>Release: 1.71.0</h2></div></div></div>
+
+<p>This is mainly a bug fix release, but it also includes two
+significant feature changes:
+</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Highlighting support added</span></dt><dd>
+      <p>The stylesheets now include support for source-code
+      highlighting in output of programlisting instances (controlled
+      through the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/highlight.source.html"><em class="parameter"><code>highlight.source</code></em></a>
+      parameter). The Java-based implementation requires Saxon and
+      makes use of <a class="ulink" href="http://molhanec.net/" target="_top"><span class="person"><span class="personname"><span class="firstname">Michal</span> <span class="surname">Molhanec</span></span></span></a>&#8217;s <a class="ulink" href="http://sourceforge.net/projects/xslthl" target="_top">XSLTHL</a>. More details are available at Jirka Kosek&#8217;s
+      website: </p><div class="blockquote"><blockquote class="blockquote"><p><a class="ulink" href="http://xmlguru.cz/2006/07/docbook-syntax-highlighting" target="_top">http://xmlguru.cz/2006/07/docbook-syntax-highlighting</a></p></blockquote></div><p> The support is currently limited to highlighting
+      of XML, Java, PHP, Delphi, Modula-2 sources, and INI
+      files.</p>
+    </dd><dt><span class="term">Changes to autoindexing</span></dt><dd>
+      <p>The templates that handle alternative indexing methods
+      were reworked to avoid errors produced by certain processors not
+      being able to tolerate the presence of unused functions.  With
+      this release, none of the code for the 'kimber' or 'kosek'
+      methods is included in the default stylesheets.  In order to use
+      one of those methods, your customization layer must import one
+      of the optional stylesheet modules:</p>
+      <p>
+        </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+             html/autoidx-kosek.xsl
+           </li><li class="listitem">
+             html/autoidx-kimber.xsl
+           </li><li class="listitem">
+             fo/autoidx-kosek.xsl
+           </li><li class="listitem">
+             fo/autoidx-kimber.xsl
+           </li></ul></div><p>
+        See the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/index.method.html"><em class="parameter"><code>index.method</code></em></a> parameter
+        reference page for more information.
+      </p>
+      <p>Two other changes to note:
+      </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          The default indexing method now can handle accented
+          characters in latin-based alphabets, not just English. This
+          means accented latin letters will group and sort with their
+          unaccented counterpart.
+        </li><li class="listitem">
+          The default value for the
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/index.method.html"><em class="parameter"><code>index.method</code></em></a> parameter was changed
+          from 'english' to 'basic' because now the default method can
+          handle latin-based alphabets, not just English.
+        </li></ul></div><p>
+      </p>
+    </dd></dl></div><p>
+The following is a list of changes that have
+been made since the 1.70.1 release.</p>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.0_Common"></a>Common</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">common</code> code
+            since the 1.70.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/reference.autolabel.html"><em class="parameter"><code>reference.autolabel</code></em></a> parameter for controlling labels on<br>
+<a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a> output.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Support <a href="http://docbook.org/tdg5/en/html/row.html"><code class="sgmltag-element">row</code></a>s that are *completely* overlapped by the preceding <a href="http://docbook.org/tdg5/en/html/row.html"><code class="sgmltag-element">row</code></a></span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">New modules for supporting indexing extensions.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Support startinglinenumber on <a href="http://docbook.org/tdg5/en/html/orderedlist.html"><code class="sgmltag-element">orderedlist</code></a></span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.0_Extensions"></a>Extensions</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">extensions</code> code
+            since the 1.70.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Completely reworked extensions build system; now uses NetBeans and ant</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.0_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">fo</code> code
+            since the 1.70.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">xsl:sort lang attribute now uses two-char substring of lang attribute.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Support titlecase "Java", "Perl", and "IDL" as values for the<br>
+language attribute on <a href="http://docbook.org/tdg5/en/html/classsynopsis.html"><code class="sgmltag-element">classsynopsis</code></a>, etc. (instead of just<br>
+lowercase "java", "perl", and "idl"). Also support "c++" and "C++"<br>
+(instead of just "cpp").<br>
+<br>
+Affects HTML, FO, and manpages output. Closes bug 1552332. Thanks<br>
+to "Brian A. Vanderburg II".</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added support for the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/reference.autolabel.html"><em class="parameter"><code>reference.autolabel</code></em></a> param in (X)HTML and FO<br>
+output.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Support <a href="http://docbook.org/tdg5/en/html/row.html"><code class="sgmltag-element">row</code></a>s that are *completely* overlapped by the preceding <a href="http://docbook.org/tdg5/en/html/row.html"><code class="sgmltag-element">row</code></a></span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Rearranged templates for the 3 indexing methods<br>
+and changed method named 'english' to 'basic'.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">New modules for supporting indexing extensions.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Turn off blank-body for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/fop1.extensions.html"><em class="parameter"><code>fop1.extensions</code></em></a> too since fop 0.92<br>
+does not support it either.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add Xalan variant to test for exslt:node-set <a href="http://docbook.org/tdg5/en/html/function.html"><code class="sgmltag-element">function</code></a>.<br>
+Xalan can use <a href="http://docbook.org/tdg5/en/html/function.html"><code class="sgmltag-element">function</code></a> named node-set(), but doesn't<br>
+recognize it using function-available().</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added support to FO stylesheets for handling instances of <a href="http://docbook.org/tdg5/en/html/org.html"><code class="sgmltag-element">Org</code></a><br>
+where it occurs outside of *<a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a> content. In HTML stylesheets,<br>
+moved handling of <a href="http://docbook.org/tdg5/en/html/org.html"><code class="sgmltag-element">Org</code></a> out of info.xsl and into inline.xsl. In both<br>
+FO and HTML stylesheets, added support for correctly processing<br>
+<a href="http://docbook.org/tdg5/en/html/affiliation.html"><code class="sgmltag-element">Affiliation</code></a> and <a href="http://docbook.org/tdg5/en/html/jobtitle.html"><code class="sgmltag-element">Jobtitle</code></a>.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Don't output punctuation between <a href="http://docbook.org/tdg5/en/html/refname.html"><code class="sgmltag-element">Refname</code></a> and <a href="http://docbook.org/tdg5/en/html/refpurpose.html"><code class="sgmltag-element">Refpurpose</code></a> if<br>
+<a href="http://docbook.org/tdg5/en/html/refpurpose.html"><code class="sgmltag-element">Refpurpose</code></a> is empty. Also corrected handling of <a href="http://docbook.org/tdg5/en/html/refsect2.html"><code class="sgmltag-element">Refsect2</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a><br>
+instances, and removed some debugging stuff that was generated in<br>
+manpages output to mark the ends of sections.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/email.delimiters.enabled.html"><em class="parameter"><code>email.delimiters.enabled</code></em></a> param. If non-zero (the<br>
+default), delimiters are generated around e-mail addresses (output<br>
+of the <a href="http://docbook.org/tdg5/en/html/email.html"><code class="sgmltag-element">email</code></a> element). If zero, the delimiters are suppressed.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Initial support of syntax highlighting of programlistings.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message"><a href="http://docbook.org/tdg5/en/html/chapter.html"><code class="sgmltag-element">Chapter</code></a> after <a href="http://docbook.org/tdg5/en/html/preface.html"><code class="sgmltag-element">preface</code></a> should restart numbering of pages.</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.0_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">html</code> code
+            since the 1.70.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">xsl:sort lang attribute now uses two-char substring of lang attribute.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Support titlecase "Java", "Perl", and "IDL" as values for the<br>
+language attribute on <a href="http://docbook.org/tdg5/en/html/classsynopsis.html"><code class="sgmltag-element">classsynopsis</code></a>, etc. (instead of just<br>
+lowercase "java", "perl", and "idl"). Also support "c++" and "C++"<br>
+(instead of just "cpp").<br>
+<br>
+Affects HTML, FO, and manpages output. Closes bug 1552332. Thanks<br>
+to "Brian A. Vanderburg II".</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added support for the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/reference.autolabel.html"><em class="parameter"><code>reference.autolabel</code></em></a> param in (X)HTML and FO<br>
+output.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Support <a href="http://docbook.org/tdg5/en/html/row.html"><code class="sgmltag-element">row</code></a>s that are *completely* overlapped by the preceding <a href="http://docbook.org/tdg5/en/html/row.html"><code class="sgmltag-element">row</code></a></span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Rearranged templates for the 3 indexing methods<br>
+and changed method named 'english' to 'basic'.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">New modules for supporting indexing extensions.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added several new HTML parameters for controlling appearance of<br>
+content on HTML <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> pages:<br>
+<br>
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/contrib.inline.enabled.html"><em class="parameter"><code>contrib.inline.enabled</code></em></a>:<br>
+  If non-zero (the default), output of the <a href="http://docbook.org/tdg5/en/html/contrib.html"><code class="sgmltag-element">contrib</code></a> element is<br>
+  displayed as inline content rather than as block content.<br>
+<br>
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/othercredit.like.author.enabled.html"><em class="parameter"><code>othercredit.like.author.enabled</code></em></a>:<br>
+  If non-zero, output of the <a href="http://docbook.org/tdg5/en/html/othercredit.html"><code class="sgmltag-element">othercredit</code></a> element on titlepages is<br>
+  displayed in the same style as <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a> and <a href="http://docbook.org/tdg5/en/html/editor.html"><code class="sgmltag-element">editor</code></a> output. If zero<br>
+  (the default), <a href="http://docbook.org/tdg5/en/html/othercredit.html"><code class="sgmltag-element">othercredit</code></a> output is displayed using a style<br>
+  different than that of <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a> and <a href="http://docbook.org/tdg5/en/html/editor.html"><code class="sgmltag-element">editor</code></a>.<br>
+<br>
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/blurb.on.titlepage.enabled.html"><em class="parameter"><code>blurb.on.titlepage.enabled</code></em></a>:<br>
+  If non-zero, output from authorblurb and <a href="http://docbook.org/tdg5/en/html/personblurb.html"><code class="sgmltag-element">personblurb</code></a> elements is<br>
+  displayed on <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> pages. If zero (the default), output from<br>
+  those elements is suppressed on <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> pages (unless you are<br>
+  using a titlepage customization that causes them to be included).<br>
+<br>
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/editedby.enabled.html"><em class="parameter"><code>editedby.enabled</code></em></a><br>
+  If non-zero (the default), a localized Edited by heading is<br>
+  displayed above <a href="http://docbook.org/tdg5/en/html/editor.html"><code class="sgmltag-element">editor</code></a> names in output of the <a href="http://docbook.org/tdg5/en/html/editor.html"><code class="sgmltag-element">editor</code></a> element.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Add Xalan variant to test for exslt:node-set <a href="http://docbook.org/tdg5/en/html/function.html"><code class="sgmltag-element">function</code></a>.<br>
+Xalan can use <a href="http://docbook.org/tdg5/en/html/function.html"><code class="sgmltag-element">function</code></a> named node-set(), but doesn't<br>
+recognize it using function-available().</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added support to FO stylesheets for handling instances of <a href="http://docbook.org/tdg5/en/html/org.html"><code class="sgmltag-element">Org</code></a><br>
+where it occurs outside of *<a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a> content. In HTML stylesheets,<br>
+moved handling of <a href="http://docbook.org/tdg5/en/html/org.html"><code class="sgmltag-element">Org</code></a> out of info.xsl and into inline.xsl. In both<br>
+FO and HTML stylesheets, added support for correctly processing<br>
+<a href="http://docbook.org/tdg5/en/html/affiliation.html"><code class="sgmltag-element">Affiliation</code></a> and <a href="http://docbook.org/tdg5/en/html/jobtitle.html"><code class="sgmltag-element">Jobtitle</code></a>.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Don't output punctuation between <a href="http://docbook.org/tdg5/en/html/refname.html"><code class="sgmltag-element">Refname</code></a> and <a href="http://docbook.org/tdg5/en/html/refpurpose.html"><code class="sgmltag-element">Refpurpose</code></a> if<br>
+<a href="http://docbook.org/tdg5/en/html/refpurpose.html"><code class="sgmltag-element">Refpurpose</code></a> is empty. Also corrected handling of <a href="http://docbook.org/tdg5/en/html/refsect2.html"><code class="sgmltag-element">Refsect2</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a><br>
+instances, and removed some debugging stuff that was generated in<br>
+manpages output to mark the ends of sections.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/email.delimiters.enabled.html"><em class="parameter"><code>email.delimiters.enabled</code></em></a> param. If non-zero (the<br>
+default), delimiters are generated around e-mail addresses (output<br>
+of the <a href="http://docbook.org/tdg5/en/html/email.html"><code class="sgmltag-element">email</code></a> element). If zero, the delimiters are suppressed.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.nested.in.toc.html"><em class="parameter"><code>qanda.nested.in.toc</code></em></a> param. Default value is zero. If<br>
+non-zero, instances of "nested" <a href="http://docbook.org/tdg5/en/html/qandaentry.html"><code class="sgmltag-element">Qandaentry</code></a> (ones that are children<br>
+of <a href="http://docbook.org/tdg5/en/html/answer.html"><code class="sgmltag-element">Answer</code></a> elements) are displayed in the <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">TOC</code></a>. Closes patch 1509018<br>
+(from Daniel Leidert). Currently on affects HTML output (no patch<br>
+for FO output provided).</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Improved handling of relative locations generated files</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Initial support of syntax highlighting of programlistings.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Support <a href="http://docbook.org/tdg5/en/html/org.html"><code class="sgmltag-element">org</code></a></span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Support <a href="http://docbook.org/tdg5/en/html/person.html"><code class="sgmltag-element">person</code></a></span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Support $keep.relative.image.uris also when chunking</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.0_Highlighting"></a>Highlighting</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">highlighting</code> code
+            since the 1.70.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Initial support of syntax highlighting of programlistings.</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.0_Manpages"></a>Manpages</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">manpages</code> code
+            since the 1.70.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Suppress <a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a> markers and output warning that footnotes are<br>
+not yet supported.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Handle instances of <a href="http://docbook.org/tdg5/en/html/address.html"><code class="sgmltag-element">address</code></a>/<a href="http://docbook.org/tdg5/en/html/otheraddr.html"><code class="sgmltag-element">otheraddr</code></a>/ulink in <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a> et al in the<br>
+same way as <a href="http://docbook.org/tdg5/en/html/email.html"><code class="sgmltag-element">email</code></a> instances; that is, display them on the same<br>
+linke as the <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a>, <a href="http://docbook.org/tdg5/en/html/editor.html"><code class="sgmltag-element">editor</code></a>, etc., name.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Don't number or link-list any Ulink instance whose string value is<br>
+identical to the value of its url attribute. Just display it inline.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Don't output punctuation between <a href="http://docbook.org/tdg5/en/html/refname.html"><code class="sgmltag-element">Refname</code></a> and <a href="http://docbook.org/tdg5/en/html/refpurpose.html"><code class="sgmltag-element">Refpurpose</code></a> if<br>
+<a href="http://docbook.org/tdg5/en/html/refpurpose.html"><code class="sgmltag-element">Refpurpose</code></a> is empty. Also corrected handling of <a href="http://docbook.org/tdg5/en/html/refsect2.html"><code class="sgmltag-element">Refsect2</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a><br>
+instances, and removed some debugging stuff that was generated in<br>
+manpages output to mark the ends of sections.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/email.delimiters.enabled.html"><em class="parameter"><code>email.delimiters.enabled</code></em></a> param. If non-zero (the<br>
+default), delimiters are generated around e-mail addresses (output<br>
+of the <a href="http://docbook.org/tdg5/en/html/email.html"><code class="sgmltag-element">email</code></a> element). If zero, the delimiters are suppressed.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">In manpages output, if the last/nearest *<a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a> element for<br>
+particular <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">Refentry</code></a> has multiple <a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">Copyright</code></a> and/or <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">Legalnotice</code></a><br>
+children, process them all (not just the first ones). Closes bug<br>
+1524576. Thanks to Sam Steingold for the report and to Daniel<br>
+Leidert for providing a patch.</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.0_Params"></a>Params</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">params</code> code
+            since the 1.70.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/reference.autolabel.html"><em class="parameter"><code>reference.autolabel</code></em></a> parameter for controlling labels on<br>
+<a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">reference</code></a> output.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added namespace declarations to document elements for all param files.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Updated index.method doc to describe revised setup for importing <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> extensions.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added several new HTML parameters for controlling appearance of<br>
+content on HTML <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> pages:<br>
+<br>
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/contrib.inline.enabled.html"><em class="parameter"><code>contrib.inline.enabled</code></em></a>:<br>
+  If non-zero (the default), output of the <a href="http://docbook.org/tdg5/en/html/contrib.html"><code class="sgmltag-element">contrib</code></a> element is<br>
+  displayed as inline content rather than as block content.<br>
+<br>
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/othercredit.like.author.enabled.html"><em class="parameter"><code>othercredit.like.author.enabled</code></em></a>:<br>
+  If non-zero, output of the <a href="http://docbook.org/tdg5/en/html/othercredit.html"><code class="sgmltag-element">othercredit</code></a> element on titlepages is<br>
+  displayed in the same style as <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a> and <a href="http://docbook.org/tdg5/en/html/editor.html"><code class="sgmltag-element">editor</code></a> output. If zero<br>
+  (the default), <a href="http://docbook.org/tdg5/en/html/othercredit.html"><code class="sgmltag-element">othercredit</code></a> output is displayed using a style<br>
+  different than that of <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a> and <a href="http://docbook.org/tdg5/en/html/editor.html"><code class="sgmltag-element">editor</code></a>.<br>
+<br>
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/blurb.on.titlepage.enabled.html"><em class="parameter"><code>blurb.on.titlepage.enabled</code></em></a>:<br>
+  If non-zero, output from authorblurb and <a href="http://docbook.org/tdg5/en/html/personblurb.html"><code class="sgmltag-element">personblurb</code></a> elements is<br>
+  displayed on <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> pages. If zero (the default), output from<br>
+  those elements is suppressed on <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> pages (unless you are<br>
+  using a titlepage customization that causes them to be included).<br>
+<br>
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/editedby.enabled.html"><em class="parameter"><code>editedby.enabled</code></em></a><br>
+  If non-zero (the default), a localized Edited by heading is<br>
+  displayed above <a href="http://docbook.org/tdg5/en/html/editor.html"><code class="sgmltag-element">editor</code></a> names in output of the <a href="http://docbook.org/tdg5/en/html/editor.html"><code class="sgmltag-element">editor</code></a> element.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added new <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/email.delimiters.enabled.html"><em class="parameter"><code>email.delimiters.enabled</code></em></a> param. If non-zero (the<br>
+default), delimiters are generated around e-mail addresses (output<br>
+of the <a href="http://docbook.org/tdg5/en/html/email.html"><code class="sgmltag-element">email</code></a> element). If zero, the delimiters are suppressed.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.nested.in.toc.html"><em class="parameter"><code>qanda.nested.in.toc</code></em></a> param. Default value is zero. If<br>
+non-zero, instances of "nested" <a href="http://docbook.org/tdg5/en/html/qandaentry.html"><code class="sgmltag-element">Qandaentry</code></a> (ones that are children<br>
+of <a href="http://docbook.org/tdg5/en/html/answer.html"><code class="sgmltag-element">Answer</code></a> elements) are displayed in the <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">TOC</code></a>. Closes patch 1509018<br>
+(from Daniel Leidert). Currently on affects HTML output (no patch<br>
+for FO output provided).</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Initial support of syntax highlighting of programlistings.</span></p></div>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1.71.0_Tools"></a>Tools</h3></div></div></div>
+
+<p>The following changes have been made to the
+            <code class="filename">tools</code> code
+            since the 1.70.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Racheted down font sizes of headings in example makefile FO output.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added param and attribute set to example makefile, for getting<br>
+wrapping in verbatims in FO output.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Renamed Makefile.paramDoc to Makefile.docParam.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added Makefile.paramDoc file, for creating versions of param.xsl<br>
+files with doc embedded.</span></p></div>
+</li><li class="listitem">
+<div class="literallayout"><p><span class="commit-message">Added variable to example makefile for controlling whether HTML or<br>
+XHTML is generated.</span></p></div>
+</li></ul></div>
+</div>
+</div>
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1701"></a>Release: 1.70.1</h2></div></div></div>
+
+
+<p>This is a stable release of the 1.70 stylesheets. It includes only a
+few small changes from 1.70.0.</p>
+
+<p>The following is a list of changes that have been made
+        since the 1.70.0 release.</p>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1701_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the
+        <code class="filename">fo</code> code
+        since the 1.70.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>Added three new attribute sets (revhistory.title.properties, revhistory.table.properties and revhistory.table.cell.properties) for controlling appearance of revhistory in FO output.</p>
+<p class="commit-changes">Modified: fo/block.xsl,1.34; fo/param.ent,1.101; fo/param.xweb,1.114; fo/titlepage.xsl,1.41; params/revhistory.table.cell.properties.xml,1.1; params/revhistory.table.properties.xml,1.1; params/revhistory.title.properties.xml,1.1 - Jirka Kosek</p>
+</li><li class="listitem">
+<p>Support DBv5 revisions with full author name (not only authorinitials)</p>
+<p class="commit-changes">Modified: fo/block.xsl,1.33; fo/titlepage.xsl,1.40 - Jirka Kosek</p>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1701_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the
+        <code class="filename">html</code> code
+        since the 1.70.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>Support DBv5 revisions with full author name (not only authorinitials)</p>
+<p class="commit-changes">Modified: html/block.xsl,1.23; html/titlepage.xsl,1.34 - Jirka Kosek</p>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1701_HTMLHelp"></a>HTMLHelp</h3></div></div></div>
+
+<p>The following changes have been made to the
+        <code class="filename">htmlhelp</code> code
+        since the 1.70.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>htmlhelp.generate.index is now param, not variable. This means that you can override its setting from outside. This is useful when you generate indexterms on the fly (see http://www.xml.com/pub/a/2004/07/14/dbndx.html?page=3).</p>
+<p class="commit-changes">Modified: htmlhelp/htmlhelp-common.xsl,1.38 - Jirka Kosek</p>
+</li><li class="listitem">
+<p>Support chunk.tocs.and.lots in HTML Help</p>
+<p class="commit-changes">Modified: htmlhelp/htmlhelp-common.xsl,1.37 - Jirka Kosek</p>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1701_Params"></a>Params</h3></div></div></div>
+
+<p>The following changes have been made to the
+        <code class="filename">params</code> code
+        since the 1.70.0 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>Added three new attribute sets (revhistory.title.properties, revhistory.table.properties and revhistory.table.cell.properties) for controlling appearance of revhistory in FO output.</p>
+<p class="commit-changes">Modified: fo/block.xsl,1.34; fo/param.ent,1.101; fo/param.xweb,1.114; fo/titlepage.xsl,1.41; params/revhistory.table.cell.properties.xml,1.1; params/revhistory.table.properties.xml,1.1; params/revhistory.title.properties.xml,1.1 - Jirka Kosek</p>
+</li></ul></div>
+</div>
+
+</div>
+
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1700"></a>Release: 1.70.0</h2></div></div></div>
+
+<p>As with all DocBook Project <a class="link" href="#dot0" title="About dot-zero releases">dot-zero</a>
+releases, this is an experimental release. It will be followed shortly
+by a stable release.</p>
+
+<p>This release adds a number of new features,
+including:</p>
+
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+    <p>support for selecting alternative index-collation methods
+    (in particular, support for using a collation library developed by
+    Eliot Kimber)</p>
+  </li><li class="listitem">
+    <p>improved handling of DocBook 5 document instances (through a
+    namespace-stripping mechanism)</p>
+  </li><li class="listitem">
+    <p>full support for CALS and HTML tables in manpages
+    output</p>
+  </li><li class="listitem">
+    <p>a mechanism for preserving relative URIs in documents that
+    make use of XInclude</p>
+  </li><li class="listitem">
+    <p>support for the "new" <code class="literal">.90</code> version of
+    FOP</p>
+  </li><li class="listitem">
+    <p>enhanced capabilities for controlling formatting of lists in HTML
+    and FO output</p>
+  </li><li class="listitem">
+    <p>autogeneration of AUTHOR and COPYRIGHT sections in manpages
+    output</p>
+  </li><li class="listitem">
+    <p>support for generating crop marks in FO/PDF output</p>
+  </li><li class="listitem">
+    <p>support for qandaset as a root element in FO output</p>
+  </li><li class="listitem">
+    <p>support for floatstyle and orient on all table types</p>
+  </li><li class="listitem">
+    <p>support for floatstyle in figure, and example</p>
+  </li><li class="listitem">
+    <p>pgwide.properties attribute-set supports extending figure,
+      example and table into the left indent area instead of spanning
+      multiple columns.</p>
+  </li></ul></div>
+    <p>The following is a detailed list of enhancements and API
+    changes that have been made since the 1.69.1 release.</p>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1700_Common"></a>Common</h3></div></div></div>
+
+<p>The following changes have been made to the
+        <code class="filename">common</code> code
+        since the 1.69.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>Add the xsl:key for the kimber
+indexing method.</p>
+<p class="commit-changes">Modified: common/autoidx-ng.xsl,1.2 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Add support for
+<a href="http://docbook.org/tdg5/en/html/qandaset.html"><code class="sgmltag-element">qandaset</code></a>.</p>
+<p class="commit-changes">Modified: common/labels.xsl,1.37;
+common/subtitles.xsl,1.7; common/titles.xsl,1.35 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Support dbhtml/dbfo start PI for
+<a href="http://docbook.org/tdg5/en/html/orderedlist.html"><code class="sgmltag-element">orderedlist</code></a> numbering in both HTML and
+FO</p>
+<p class="commit-changes">Modified: common/common.xsl,1.61; html/lists.xsl,1.50 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Added CVS
+header.</p>
+<p class="commit-changes">Modified: common/stripns.xsl,1.12 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Changed content model of text
+element to ANY rather than #PCDATA because they could contain
+markup.</p>
+<p class="commit-changes">Modified: common/targetdatabase.dtd,1.7 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added
+<a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a>.meta.get.quietly param.</p>
+<p>If zero (the
+default), notes and warnings about "missing" markup are generated
+during gathering of <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> metadata. If
+non-zero, the metadata is gathered "quietly" -- that is, the
+notes and warnings are suppressed.</p>
+<p>NOTE: If you are
+processing a large amount of <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> content,  you
+may be able to speed up processing significantly by  setting a
+non-zero value for
+<a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a>.meta.get.quietly.</p>
+<p class="commit-changes">Modified: common/refentry.xsl,1.17;
+manpages/param.ent,1.15; manpages/param.xweb,1.17;
+params/refentry.meta.get.quietly.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>After namespace stripping, the
+source document is the temporary tree created by the stripping
+process and it has the wrong base <a href="http://docbook.org/tdg5/en/html/uri.html"><code class="sgmltag-element">URI</code></a> for relative
+references. Earlier versions of this code used to try to fix that
+by patching the elements with relative @fileref attributes. That
+was inadequate because it calculated an absolute base <a href="http://docbook.org/tdg5/en/html/uri.html"><code class="sgmltag-element">URI</code></a>
+without considering that there might be xml:base attributes
+already in effect. It seems obvious now that the right thing to
+do is simply to put the xml:base on the root of the document. And
+that seems to work.</p>
+<p class="commit-changes">Modified: common/stripns.xsl,1.7 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Added support for "software" and
+"sectdesc" class values on <a href="http://docbook.org/tdg5/en/html/refmiscinfo.html"><code class="sgmltag-element">refmiscinfo</code></a>; "software" is
+treated identically to "source", and "setdesc" is treated
+identically to "manual".</p>
+<p class="commit-changes">Modified: common/refentry.xsl,1.10;
+params/man.th.extra2.max.length.xml,1.3;
+params/refentry.source.name.profile.xml,1.4 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added support for DocBook 5
+namespace-stripping in manpages stylesheet. Closes request
+#1210692.</p>
+<p class="commit-changes">Modified: common/common.xsl,1.56; manpages/docbook.xsl,1.57 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added &lt;xsl:template
+match="/"&gt; to make stripns.xsl usable as a standalone
+stylesheet for stripping out DocBook 5/NG to DocBook 4. Note that
+DocBook XSLT drivers that include this stylesheet all override
+the match="/" template.</p>
+<p class="commit-changes">Modified: common/stripns.xsl,1.4 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Number figures, examples, and
+tables from <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a> if there is no prefix (i.e. if
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/chapter.autolabel.html"><em class="parameter"><code>chapter.autolabel</code></em></a> is set to 0). This avoids
+having the list of figures where the figures mysteriously restart
+their numeration periodically when
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/chapter.autolabel.html"><em class="parameter"><code>chapter.autolabel</code></em></a> is set to
+0.</p>
+<p class="commit-changes">Modified: common/labels.xsl,1.36 - David Cramer</p>
+</li><li class="listitem">
+<p>Add <a href="http://docbook.org/tdg5/en/html/task.html"><code class="sgmltag-element">task</code></a> template in
+<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>.markup mode.</p>
+<p class="commit-changes">Modified: common/titles.xsl,1.34 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Add children (with ids) of formal
+objects to target data.</p>
+<p class="commit-changes">Modified: common/targets.xsl,1.10 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added support for case when
+<a href="http://docbook.org/tdg5/en/html/personname.html"><code class="sgmltag-element">personname</code></a> doesn't contain specific name markup (as allowed
+in DocBook 5.0)</p>
+<p class="commit-changes">Modified: common/common.xsl,1.54 - Jirka
+Kosek</p>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1700_Extensions"></a>Extensions</h3></div></div></div>
+
+<p>The following changes have been made to the
+        <code class="filename">extensions</code> code
+        since the 1.69.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>Support Xalan
+2.7</p>
+<p class="commit-changes">Modified: extensions/xalan27/.cvsignore,1.1;
+extensions/xalan27/build.xml,1.1;
+extensions/xalan27/nbproject/.cvsignore,1.1;
+extensions/xalan27/nbproject/build-impl.xml,1.1;
+extensions/xalan27/nbproject/genfiles.properties,1.1;
+extensions/xalan27/nbproject/project.properties,1.1;
+extensions/xalan27/nbproject/project.xml,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/CVS.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Callout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatDingbatCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatGraphicCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatTextCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatUnicodeCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Func.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/ImageIntrinsics.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Params.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Table.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Text.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Verbatim.java,1.1 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Handle the case where the imageFn
+is actually a <a href="http://docbook.org/tdg5/en/html/uri.html"><code class="sgmltag-element">URI</code></a>. This still needs
+work.</p>
+<p class="commit-changes">Modified: extensions/saxon643/com/nwalsh/saxon/ImageIntrinsics.java,1.4
+- Norman Walsh</p>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1700_FO"></a>FO</h3></div></div></div>
+
+<p>The following changes have been made to the
+        <code class="filename">fo</code> code
+        since the 1.69.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>Adapted to the new indexing
+code. Now works just like a wrapper that calls kosek indexing method,
+originally implemented here.</p>
+<p class="commit-changes">Modified: fo/autoidx-ng.xsl,1.5 - Jirka
+Kosek</p>
+</li><li class="listitem">
+<p>Added parameters for header/footer
+<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> minimum height.</p>
+<p class="commit-changes">Modified: fo/pagesetup.xsl,1.60;
+fo/param.ent,1.100; fo/param.xweb,1.113 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Add the <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a>.method
+parameter.</p>
+<p class="commit-changes">Modified: fo/param.ent,1.99; fo/param.xweb,1.112 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Integrate support for three
+indexing methods: - the original English-only method. -
+Jirka Kosek's method using EXSLT extensions. - Eliot Kimber's
+method using Saxon extensions. Use the '<a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a>.method'
+parameter to select.</p>
+<p class="commit-changes">Modified: fo/autoidx.xsl,1.38 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Add support for <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">TOC</code></a> for
+<a href="http://docbook.org/tdg5/en/html/qandaset.html"><code class="sgmltag-element">qandaset</code></a> in fo output.</p>
+<p class="commit-changes">Modified: fo/autotoc.xsl,1.30;
+fo/qandaset.xsl,1.20 - Robert Stayton</p>
+</li><li class="listitem">
+<p>Added parameter
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/ulink.hyphenate.html"><em class="parameter"><code>ulink.hyphenate</code></em></a>.chars. Added parameter
+insert.<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>.page.number.</p>
+<p class="commit-changes">Modified: fo/param.ent,1.98;
+fo/param.xweb,1.111 - Robert Stayton</p>
+</li><li class="listitem">
+<p>Implemented feature request
+#942524 to add insert.<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>.page.number to allow link
+element cross references to have a page number.</p>
+<p class="commit-changes">Modified: fo/xref.xsl,1.67 -
+Robert Stayton</p>
+</li><li class="listitem">
+<p>Add support for
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/ulink.hyphenate.html"><em class="parameter"><code>ulink.hyphenate</code></em></a>.chars so more characters
+can be break points in urls.</p>
+<p class="commit-changes">Modified: fo/xref.xsl,1.66 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Implemented patch #1075144 to make
+the url text in a ulink in FO output an active <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> as
+well.</p>
+<p class="commit-changes">Modified: fo/xref.xsl,1.65 - Robert Stayton</p>
+</li><li class="listitem">
+<p><a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> footnotes now
+have their own <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.<a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a>.properties
+attribute set.</p>
+<p class="commit-changes">Modified: fo/footnote.xsl,1.23 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Add <a href="http://docbook.org/tdg5/en/html/qandaset.html"><code class="sgmltag-element">qandaset</code></a> to
+root.elements.</p>
+<p class="commit-changes">Modified: fo/docbook.xsl,1.41 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added mode="page.sequence" to make
+it easier to put content into a page sequence.  First used for
+<a href="http://docbook.org/tdg5/en/html/qandaset.html"><code class="sgmltag-element">qandaset</code></a>.</p>
+<p class="commit-changes">Modified: fo/component.xsl,1.37 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Implemented feature request
+#1434408 to support formatting
+of <a href="http://docbook.org/tdg5/en/html/biblioentry.html"><code class="sgmltag-element">biblioentry</code></a>.</p>
+<p class="commit-changes">Modified: fo/biblio.xsl,1.35 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added
+<a href="http://docbook.org/tdg5/en/html/biblioentry.html"><code class="sgmltag-element">biblioentry</code></a>.properties.</p>
+<p class="commit-changes">Modified: fo/param.ent,1.97;
+fo/param.xweb,1.110 - Robert Stayton</p>
+</li><li class="listitem">
+<p>Support PTC/Arbortext
+bookmarks</p>
+<p class="commit-changes">Modified: fo/docbook.xsl,1.40; fo/ptc.xsl,1.1 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Added
+<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.<a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a>.properties to permit
+<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> footnotes to format differently from regular
+footnotes.</p>
+<p class="commit-changes">Modified: fo/param.ent,1.96; fo/param.xweb,1.109 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Refactored <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>
+templates to unify their processing and support all options in
+all types.  Now <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> and <a href="http://docbook.org/tdg5/en/html/informaltable.html"><code class="sgmltag-element">informaltable</code></a>, in
+both Cals and Html markup, use the same templates where possible,
+and all support pgwide, rotation, and floats. There is also a
+placeholder <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.container template to
+support wrapping a <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> in a layout <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>,
+so the XEP <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> "continued"
+extension can be more easily implemented.</p>
+<p class="commit-changes">Modified: fo/formal.xsl,1.52;
+fo/htmltbl.xsl,1.9; fo/table.xsl,1.48 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added new attribute set
+<a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a>.line.properties for controlling appearance of lines in
+ToC/LoT</p>
+<p class="commit-changes">Modified: fo/autotoc.xsl,1.29; fo/param.ent,1.95;
+fo/param.xweb,1.108 - Jirka Kosek</p>
+</li><li class="listitem">
+<p>Added support for float to example
+and <a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a>. Added support for pgwide to
+<a href="http://docbook.org/tdg5/en/html/figure.html"><code class="sgmltag-element">figure</code></a>, example, and <a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a> (the latter
+two via a dbfo pgwide="1" processing
+instruction).</p>
+<p class="commit-changes">Modified: fo/formal.xsl,1.51 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Add pgwide.properties
+attribute-set.</p>
+<p class="commit-changes">Modified: fo/param.ent,1.94; fo/param.xweb,1.107 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a>.suppress
+param.</p>
+<p>If the value of <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a>.suppress is
+non-zero, then display <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a> contents is suppressed
+in output. Affects HTML and FO output
+only.</p>
+<p class="commit-changes">Modified: fo/param.ent,1.93; fo/param.xweb,1.106; html/param.ent,1.90;
+html/param.xweb,1.99; params/refclass.suppress.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Improved support for
+<a href="http://docbook.org/tdg5/en/html/task.html"><code class="sgmltag-element">task</code></a> subelements</p>
+<p class="commit-changes">Modified: fo/task.xsl,1.3; html/task.xsl,1.3 -
+Jirka Kosek</p>
+</li><li class="listitem">
+<p>Adjusted spacing around
+K&amp;R-formatted <a href="http://docbook.org/tdg5/en/html/funcdef.html"><code class="sgmltag-element">Funcdef</code></a> and <a href="http://docbook.org/tdg5/en/html/paramdef.html"><code class="sgmltag-element">Paramdef</code></a>
+output such that it can more easily be discerned where one ends
+and the other begins. Closes #1213264.</p>
+<p class="commit-changes">Modified: fo/synop.xsl,1.18 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Made handling of
+paramdef/parameter in FO output consistent with that in HTML and
+manpages output. Closes #1213259.</p>
+<p class="commit-changes">Modified: fo/synop.xsl,1.17 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Made handling of
+<a href="http://docbook.org/tdg5/en/html/refnamediv.html"><code class="sgmltag-element">Refnamediv</code></a> consistent with formatting in HTML
+and manpages output; specifically, changed so that
+<a href="http://docbook.org/tdg5/en/html/refname.html"><code class="sgmltag-element">Refname</code></a> (comma-separated list of multiple instances
+found) is used (instead of <a href="http://docbook.org/tdg5/en/html/refentrytitle.html"><code class="sgmltag-element">Refentrytitle</code></a> as
+previously), then em-dash, then the <a href="http://docbook.org/tdg5/en/html/refpurpose.html"><code class="sgmltag-element">Refpurpose</code></a>. Closes
+#1212562.</p>
+<p class="commit-changes">Modified: fo/refentry.xsl,1.30 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added output of
+<a href="http://docbook.org/tdg5/en/html/releaseinfo.html"><code class="sgmltag-element">Releaseinfo</code></a> to recto titlepage ("<a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">copyright</code></a>"
+page) for <a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">Book</code></a> in FO output. This makes it consistent
+with HTML output. Closes #1327034. Thanks to Paul DuBois for
+reporting.</p>
+<p class="commit-changes">Modified: fo/titlepage.templates.xml,1.28 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added condition for setting
+block-progression-dimension.minimum on table-row, instead of
+height, when <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/fop1.extensions.html"><em class="parameter"><code>fop1.extensions</code></em></a> is
+non-zero. For an explanation of the reason for the change,
+<a href="http://docbook.org/tdg5/en/html/see.html"><code class="sgmltag-element">see</code></a>: http://wiki.apache.org/xmlgraphics-fop/Troubleshooting/CommonLogMessages</p>
+<p class="commit-changes">Modified: fo/pagesetup.xsl,1.59
+- Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added new
+<a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a>.suppress param for suppressing display
+of <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">Refclass</code></a> in HTML and FO output. Did not add it to
+manpages because manpages stylesheet is currently just silently
+ignoring <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">Refclass</code></a> anyway. Closes request
+#1461065. Thanks to Davor Ocelic (docelic) for
+reporting.</p>
+<p class="commit-changes">Modified: fo/refentry.xsl,1.29; html/refentry.xsl,1.23 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Add support for keep-together PI
+to informal objects.</p>
+<p class="commit-changes">Modified: fo/formal.xsl,1.50 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Add support for
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/fop1.extensions.html"><em class="parameter"><code>fop1.extensions</code></em></a>.</p>
+<p class="commit-changes">Modified: fo/formal.xsl,1.49;
+fo/graphics.xsl,1.44; fo/table.xsl,1.47 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Add support for fop1
+bookmarks.</p>
+<p class="commit-changes">Modified: fo/docbook.xsl,1.39 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Add fop1.extentions parameter to
+add support for fop development version.</p>
+<p class="commit-changes">Modified: fo/param.ent,1.92;
+fo/param.xweb,1.105 - Robert Stayton</p>
+</li><li class="listitem">
+<p>Start supporting fop development
+version, which will become fop version 1.</p>
+<p class="commit-changes">Modified: fo/fop1.xsl,1.1 -
+Robert Stayton</p>
+</li><li class="listitem">
+<p>Add template for <a href="http://docbook.org/tdg5/en/html/task.html"><code class="sgmltag-element">task</code></a>
+in mode="xref-to".</p>
+<p class="commit-changes">Modified: fo/xref.xsl,1.63; html/xref.xsl,1.57 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p><a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> footnotes now
+also get <a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a>.properties
+attribute-set.</p>
+<p class="commit-changes">Modified: fo/footnote.xsl,1.22 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a>.separator
+named template to compute the separator punctuation based on
+locale.</p>
+<p class="commit-changes">Modified: fo/autoidx.xsl,1.36 - Robert Stayton</p>
+</li><li class="listitem">
+<p>Added support for <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>,
+<a href="http://docbook.org/tdg5/en/html/olink.html"><code class="sgmltag-element">olink</code></a>, and <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> within OO
+<a href="http://docbook.org/tdg5/en/html/classsynopsis.html"><code class="sgmltag-element">Classsynopsis</code></a> and children. (Because DocBook NG/5
+allows it).</p>
+<p class="commit-changes">Modified: fo/synop.xsl,1.15; html/synop.xsl,1.19 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Support <a href="http://docbook.org/tdg5/en/html/date.html"><code class="sgmltag-element">date</code></a> as an
+inline</p>
+<p class="commit-changes">Modified: fo/inline.xsl,1.43; html/inline.xsl,1.46 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Added new parameter
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/keep.relative.image.uris.html"><em class="parameter"><code>keep.relative.image.uris</code></em></a></p>
+<p class="commit-changes">Modified: fo/param.ent,1.91;
+fo/param.xweb,1.104; html/param.ent,1.87; html/param.xweb,1.96;
+params/keep.relative.image.uris.xml,1.1 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Map Unicode space characters
+U+2000-U+200A to fo:leaders.</p>
+<p class="commit-changes">Modified: fo/docbook.xsl,1.38;
+fo/passivetex.xsl,1.4; fo/spaces.xsl,1.1 - Jirka
+Kosek</p>
+</li><li class="listitem">
+<p>Output a real em dash for em-dash
+dingbat (instead of two hypens).</p>
+<p class="commit-changes">Modified: fo/fo.xsl,1.7 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Support default <a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a>
+width parameters for itemized and ordered lists</p>
+<p class="commit-changes">Modified: fo/lists.xsl,1.64;
+fo/param.ent,1.90; fo/param.xweb,1.103;
+params/itemizedlist.label.width.xml,1.1;
+params/orderedlist.label.width.xml,1.1 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Generate localized
+<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> for <a href="http://docbook.org/tdg5/en/html/refsynopsisdiv.html"><code class="sgmltag-element">Refsynopsisdiv</code></a> if no
+appropriate <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">Title</code></a> descendant found in source. Closes
+#1212398. This change makes behavior for the <a href="http://docbook.org/tdg5/en/html/synopsis.html"><code class="sgmltag-element">Synopsis</code></a>
+<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> consistent with the behavior of HTML and
+manpages output.</p>
+<p>Also, added
+xsl:use-attribute-sets="normal.<a href="http://docbook.org/tdg5/en/html/para.html"><code class="sgmltag-element">para</code></a>.spacing" to
+block generated for <a href="http://docbook.org/tdg5/en/html/cmdsynopsis.html"><code class="sgmltag-element">Cmdsynopsis</code></a> output. Previously,
+that block had no spacing at all specified, which resulted it
+being crammed up to closely to the <a href="http://docbook.org/tdg5/en/html/synopsis.html"><code class="sgmltag-element">Synopsis</code></a>
+head.</p>
+<p class="commit-changes">Modified: fo/refentry.xsl,1.28; fo/synop.xsl,1.13 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added parameters to support
+localization of <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a>
+item punctuation.</p>
+<p class="commit-changes">Modified: fo/autoidx.xsl,1.35 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/index.number.separator.html"><em class="parameter"><code>index.number.separator</code></em></a>,
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/index.range.separator.html"><em class="parameter"><code>index.range.separator</code></em></a>,
+and <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/index.term.separator.html"><em class="parameter"><code>index.term.separator</code></em></a> parameters to
+support localization of punctuation in <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a>
+entries.</p>
+<p class="commit-changes">Modified: fo/param.ent,1.89; fo/param.xweb,1.102 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added "Cross References"
+<a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> in HTML doc (for consistency with the FO
+doc). Also, moved the existing FO "Cross
+References" <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> to follow the "Linking"
+<a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a>.</p>
+<p class="commit-changes">Modified: fo/param.xweb,1.101; html/param.xweb,1.95 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added ID attribues to all
+<a href="http://docbook.org/tdg5/en/html/reference.html"><code class="sgmltag-element">Reference</code></a> elements (e.g., id="tables" for the doc for
+<a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> on <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">Table</code></a> params). So pages for
+all subsections of ref docs now have stable filenames instead
+of arbitrary generated filenames.</p>
+<p class="commit-changes">Modified: fo/param.xweb,1.100;
+html/param.xweb,1.94 - Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added two new parameters for
+handling of multi-term
+<a href="http://docbook.org/tdg5/en/html/varlistentry.html"><code class="sgmltag-element">varlistentry</code></a> elements:</p>
+<p><a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.break.after.html"><em class="parameter"><code>variablelist.term.break.after</code></em></a>: 
+When the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.break.after.html"><em class="parameter"><code>variablelist.term.break.after</code></em></a> is
+non-zero, it will  generate a line break after each
+<a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a> multi-term
+<a href="http://docbook.org/tdg5/en/html/varlistentry.html"><code class="sgmltag-element">varlistentry</code></a>.</p>
+<p><a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.separator.html"><em class="parameter"><code>variablelist.term.separator</code></em></a>: 
+When a <a href="http://docbook.org/tdg5/en/html/varlistentry.html"><code class="sgmltag-element">varlistentry</code></a> contains multiple <a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a>
+elements, the string  specified in the value of the
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.separator.html"><em class="parameter"><code>variablelist.term.separator</code></em></a>  parameter is
+placed after each <a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a> except the last. The default 
+is ", " (a comma followed by a space). To suppress rendering of 
+the separator, set the value of
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.separator.html"><em class="parameter"><code>variablelist.term.separator</code></em></a> to  the empty
+string ("").</p>
+<p>These parameters are primarily intended to be
+useful if you have multi-term varlistentries that have long
+terms.</p>
+<p>Closes #1306676. Thanks to Sam Steingold for
+providing an example "lots of long terms" doc that demonstrated
+the value of having these options.</p>
+<p>Also, added
+normalize-space() call to processing of each
+<a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a>.</p>
+<p>This change affects all output formats
+(HTML, PDF, manpages). The default behavior should pretty much
+remain the same as before, but it is possible (as always) that
+the change may introduce some
+new bugginess.</p>
+<p class="commit-changes">Modified: fo/lists.xsl,1.62; fo/param.ent,1.88;
+fo/param.xweb,1.99; html/lists.xsl,1.48; html/param.ent,1.86;
+html/param.xweb,1.93; manpages/lists.xsl,1.22;
+manpages/param.ent,1.14; manpages/param.xweb,1.16;
+params/variablelist.term.break.after.xml,1.1;
+params/variablelist.term.separator.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Add <a href="http://docbook.org/tdg5/en/html/sidebar.html"><code class="sgmltag-element">sidebar</code></a> titlepage
+placeholder attset for styles.</p>
+<p class="commit-changes">Modified: fo/titlepage.xsl,1.37 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Add titlepage for
+<a href="http://docbook.org/tdg5/en/html/sidebar.html"><code class="sgmltag-element">sidebar</code></a>.</p>
+<p class="commit-changes">Modified: fo/titlepage.templates.xml,1.27 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Implemented RFE
+#1292615.</p>
+<p>Added bunch of new parameters (attribute sets)
+that affect list presentation: list.block.properties,
+<a href="http://docbook.org/tdg5/en/html/itemizedlist.html"><code class="sgmltag-element">itemizedlist</code></a>.properties, <a href="http://docbook.org/tdg5/en/html/orderedlist.html"><code class="sgmltag-element">orderedlist</code></a>.properties,
+<a href="http://docbook.org/tdg5/en/html/itemizedlist.html"><code class="sgmltag-element">itemizedlist</code></a>.<a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a>.properties and
+<a href="http://docbook.org/tdg5/en/html/orderedlist.html"><code class="sgmltag-element">orderedlist</code></a>.<a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a>.properties. Default behaviour
+of stylesheets has not been changed but further customizations will be
+much more easier.</p>
+<p class="commit-changes">Modified: fo/lists.xsl,1.61; fo/param.ent,1.87;
+fo/param.xweb,1.98; params/itemizedlist.label.properties.xml,1.1;
+params/itemizedlist.properties.xml,1.1;
+params/list.block.properties.xml,1.1;
+params/orderedlist.label.properties.xml,1.1;
+params/orderedlist.properties.xml,1.1 - Jirka
+Kosek</p>
+</li><li class="listitem">
+<p>Implemented RFE
+#1242092.</p>
+<p>You can enable crop marks in your document by
+setting crop.marks=1 and xep.extensions=1. Appearance of crop
+marks can be controlled by parameters
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/crop.mark.bleed.html"><em class="parameter"><code>crop.mark.bleed</code></em></a> (6pt),
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/crop.mark.offset.html"><em class="parameter"><code>crop.mark.offset</code></em></a> (24pt) and
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/crop.mark.width.html"><em class="parameter"><code>crop.mark.width</code></em></a> (0.5pt).</p>
+<p>Also there
+is new named template called user-xep-pis. You can overwrite it in
+order to produce some PIs that can control XEP as described in
+http://www.renderx.com/reference.html#Output_Formats</p>
+<p class="commit-changes">Modified: fo/docbook.xsl,1.36;
+fo/param.ent,1.86; fo/param.xweb,1.97; fo/xep.xsl,1.23;
+params/crop.mark.bleed.xml,1.1; params/crop.mark.offset.xml,1.1;
+params/crop.mark.width.xml,1.1; params/crop.marks.xml,1.1 - Jirka
+Kosek</p>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1700_HTML"></a>HTML</h3></div></div></div>
+
+<p>The following changes have been made to the
+        <code class="filename">html</code> code
+        since the 1.69.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>implemented
+<a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a>.method parameter and three
+methods.</p>
+<p class="commit-changes">Modified: html/autoidx.xsl,1.28 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>added <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a>.method
+parameter to support 3 indexing methods.</p>
+<p class="commit-changes">Modified: html/param.ent,1.94;
+html/param.xweb,1.103 - Robert Stayton</p>
+</li><li class="listitem">
+<p>Implemented feature request
+#1072510 as a processing instruction to permit including external
+HTML content into HTML output.</p>
+<p class="commit-changes">Modified: html/pi.xsl,1.9 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added new parameter
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/chunk.tocs.and.lots.html"><em class="parameter"><code>chunk.tocs.and.lots</code></em></a>.has.<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> which
+controls presence of <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> in a separate chunk with
+ToC/LoT. Disabling <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> can be very useful if you are
+generating frameset output (well, yes those frames, but some customers
+really want them ;-).</p>
+<p class="commit-changes">Modified: html/chunk-code.xsl,1.15;
+html/param.ent,1.93; html/param.xweb,1.102;
+params/chunk.tocs.and.lots.has.title.xml,1.1 - Jirka
+Kosek</p>
+</li><li class="listitem">
+<p>Support dbhtml/dbfo start PI for
+<a href="http://docbook.org/tdg5/en/html/orderedlist.html"><code class="sgmltag-element">orderedlist</code></a> numbering in both HTML and
+FO</p>
+<p class="commit-changes">Modified: common/common.xsl,1.61; html/lists.xsl,1.50 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Allow <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">ToC</code></a> without
+<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> also for set and
+<a href="http://docbook.org/tdg5/en/html/book.html"><code class="sgmltag-element">book</code></a>.</p>
+<p class="commit-changes">Modified: html/autotoc.xsl,1.37; html/division.xsl,1.12 -
+Jirka Kosek</p>
+</li><li class="listitem">
+<p>Implemented floats uniformly for
+<a href="http://docbook.org/tdg5/en/html/figure.html"><code class="sgmltag-element">figure</code></a>, example, <a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a>
+and <a href="http://docbook.org/tdg5/en/html/informalfigure.html"><code class="sgmltag-element">informalfigure</code></a>, <a href="http://docbook.org/tdg5/en/html/informalexample.html"><code class="sgmltag-element">informalexample</code></a>, and
+<a href="http://docbook.org/tdg5/en/html/informalequation.html"><code class="sgmltag-element">informalequation</code></a>.</p>
+<p class="commit-changes">Modified: html/formal.xsl,1.22 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added the
+autotoc.<a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a>.in.hyperlink param.</p>
+<p>If the value
+of autotoc.<a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a>.in.hyperlink is non-zero, labels
+are included in hyperlinked titles in the <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">TOC</code></a>. If it
+is instead zero, labels are still displayed prior to the
+hyperlinked titles, but are not hyperlinked along with the
+titles.</p>
+<p>Closes patch #1065868. Thanks to anatoly techtonik
+for the patch.</p>
+<p class="commit-changes">Modified: html/autotoc.xsl,1.36; html/param.ent,1.92;
+html/param.xweb,1.101; params/autotoc.label.in.hyperlink.xml,1.1 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added two new params:
+html.head.<a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a>.<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>.types
+and html.head.<a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a>.<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>.multiple.</p>
+<p>If
+the value of the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/generate.legalnotice.link.html"><em class="parameter"><code>generate.legalnotice.link</code></em></a> is
+non-zero, then the stylesheet generates (in the head
+<a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> of the HTML source) either a single HTML
+<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> element or, if the value of
+the html.head.<a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a>.<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>.multiple is
+non-zero, one <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> element for each <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>
+type specified. Each <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> has the
+following attributes:</p>
+<p> - a rel attribute whose value
+is derived from the value of 
+html.head.<a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a>.<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>.types</p>
+<p> -
+an href attribute whose value is set to the URL of the file 
+containing the <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a></p>
+<p> - a <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>
+attribute whose value is set to the <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> of the 
+corresponding <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a> (or a <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>
+programatically  determined by the stylesheet)</p>
+<p>For
+example:</p>
+<p> &lt;<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> rel="<a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">copyright</code></a>"
+href="ln-id2524073.html" title="Legal Notice"&gt;</p>
+<p>Closes
+#1476450. Thanks to Sam Steingold.</p>
+<p class="commit-changes">Modified: html/chunk-common.xsl,1.45;
+html/param.ent,1.91; html/param.xweb,1.100;
+params/generate.legalnotice.link.xml,1.4;
+params/html.head.legalnotice.link.multiple.xml,1.1;
+params/html.head.legalnotice.link.types.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a>.suppress
+param.</p>
+<p>If the value of <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a>.suppress is
+non-zero, then display <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a> contents is suppressed
+in output. Affects HTML and FO output
+only.</p>
+<p class="commit-changes">Modified: fo/param.ent,1.93; fo/param.xweb,1.106; html/param.ent,1.90;
+html/param.xweb,1.99; params/refclass.suppress.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Improved support for
+<a href="http://docbook.org/tdg5/en/html/task.html"><code class="sgmltag-element">task</code></a> subelements</p>
+<p class="commit-changes">Modified: fo/task.xsl,1.3; html/task.xsl,1.3 -
+Jirka Kosek</p>
+</li><li class="listitem">
+<p>Added new
+<a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a>.suppress param for suppressing display
+of <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">Refclass</code></a> in HTML and FO output. Did not add it to
+manpages because manpages stylesheet is currently just silently
+ignoring <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">Refclass</code></a> anyway. Closes request
+#1461065. Thanks to Davor Ocelic (docelic) for
+reporting.</p>
+<p class="commit-changes">Modified: fo/refentry.xsl,1.29; html/refentry.xsl,1.23 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Process <a href="http://docbook.org/tdg5/en/html/alt.html"><code class="sgmltag-element">alt</code></a> text with
+normalize-space(). Replace tab indents with
+spaces.</p>
+<p class="commit-changes">Modified: html/graphics.xsl,1.57 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Content of <a href="http://docbook.org/tdg5/en/html/citation.html"><code class="sgmltag-element">citation</code></a>
+element is automatically linked to the bibliographic <a href="http://docbook.org/tdg5/en/html/entry.html"><code class="sgmltag-element">entry</code></a>
+with the corresponding <a href="http://docbook.org/tdg5/en/html/abbrev.html"><code class="sgmltag-element">abbrev</code></a>.</p>
+<p class="commit-changes">Modified: html/biblio.xsl,1.26;
+html/inline.xsl,1.47; html/xref.xsl,1.58 - Jirka
+Kosek</p>
+</li><li class="listitem">
+<p>Add template for <a href="http://docbook.org/tdg5/en/html/task.html"><code class="sgmltag-element">task</code></a>
+in mode="xref-to".</p>
+<p class="commit-changes">Modified: fo/xref.xsl,1.63; html/xref.xsl,1.57 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Suppress ID warnings if the
+.warnings parameter is 0</p>
+<p class="commit-changes">Modified: html/html.xsl,1.17 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Add support for floatstyle to
+<a href="http://docbook.org/tdg5/en/html/figure.html"><code class="sgmltag-element">figure</code></a>.</p>
+<p class="commit-changes">Modified: html/formal.xsl,1.21 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Handling of <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> to
+area/areaset need support in extensions code also. I currently have no
+time to touch extensions code, so code is here to be enabled when
+extension is fixed also.</p>
+<p class="commit-changes">Modified: html/xref.xsl,1.56 - Jirka
+Kosek</p>
+</li><li class="listitem">
+<p>Added 3 parameters for overriding
+gentext for <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a>
+punctuation.</p>
+<p class="commit-changes">Modified: html/param.ent,1.89; html/param.xweb,1.98 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added parameters to support
+localization of <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> item punctuation. Added
+<a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a>.separator named template to compute
+the separator punctuation based on
+locale.</p>
+<p class="commit-changes">Modified: html/autoidx.xsl,1.27 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added a &lt;div
+class="{$class}-contents"&gt; wrapper around output of contents
+of all formal objects. Also, added an optional &lt;br
+class="{class}-break"/&gt; linebreak after all formal
+objects.</p>
+<p>WARNING: Because this change places an additional
+DIV between the DIV wrapper for the <a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a> and the
+<a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a> contents, it may break some existing CSS
+stylesheets that have been created with the assumption that there
+would never be an intervening DIV there.</p>
+<p>The following is
+an example of what <a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">Equation</code></a> output looks like as a
+result of the changes described above.</p>
+<p> &lt;div
+class="<a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a>"&gt;  &lt;a name="three"
+id="three"&gt;&lt;/a&gt;</p>
+<p> &lt;p
+class="<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>"&gt;&lt;b&gt;(1.3)&lt;/b&gt;&lt;/p&gt;</p>
+<p>
+&lt;div class="equation-contents"&gt;  &lt;span
+class="<a href="http://docbook.org/tdg5/en/html/mathphrase.html"><code class="sgmltag-element">mathphrase</code></a>"&gt;1+1=3&lt;/span&gt; 
+&lt;/div&gt;  &lt;/div&gt;&lt;br
+class="equation-break"&gt;</p>
+<p>Rationale: These changes allow
+CSS control of the placement of the formal-object
+<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> relative to the formal-object
+contents. For example, using the CSS "float" <a href="http://docbook.org/tdg5/en/html/property.html"><code class="sgmltag-element">property</code></a>
+enables the <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> and contents to be rendered on the
+same line. Example stylesheet:</p>
+<p> .<a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a>
+{  margin-top: 20px;  margin-bottom: 20px;  } 
+.equation-contents {  float: left;  }</p>
+<p>
+.<a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a> .<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> {  margin-top: 0; 
+float: right;  margin-right: 200px;  }</p>
+<p>
+.<a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a> .<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> b {  font-weight:
+normal;  }</p>
+<p> .equation-break {  clear: both; 
+}</p>
+<p>Note that the purpose of the ".equation-break" class is
+to provide a way to clear off the floats.</p>
+<p>If you want
+to instead have the <a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a> <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> rendered to
+the left of the <a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a> contents, you can do
+something like this:</p>
+<p> .<a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a> { 
+margin-top: 20px;  width: 300px;  margin-bottom: 20px; 
+}  .equation-contents {  float: right;  }</p>
+<p>
+.<a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a> .<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> {  margin-top: 0; 
+float: left;  margin-right: 200px;  }</p>
+<p>
+.<a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a> .<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> b {  font-weight:
+normal;  }</p>
+<p> .equation-break {  clear: both; 
+}</p>
+<p class="commit-changes">Modified: html/formal.xsl,1.20 - Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added a chunker.output.quiet
+top-level parameter so that the chunker can be made quiet by
+default</p>
+<p class="commit-changes">Modified: html/chunker.xsl,1.26 - Norman Walsh</p>
+</li><li class="listitem">
+<p>Added support for <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>,
+<a href="http://docbook.org/tdg5/en/html/olink.html"><code class="sgmltag-element">olink</code></a>, and <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> within OO
+<a href="http://docbook.org/tdg5/en/html/classsynopsis.html"><code class="sgmltag-element">Classsynopsis</code></a> and children. (Because DocBook NG/5
+allows it).</p>
+<p class="commit-changes">Modified: fo/synop.xsl,1.15; html/synop.xsl,1.19 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>New parameter:
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/id.warnings.html"><em class="parameter"><code>id.warnings</code></em></a>. If non-zero, warnings are
+generated for titled objects that don't have titles. True by default;
+I wonder if this will be too aggressive?</p>
+<p class="commit-changes">Modified: html/biblio.xsl,1.25;
+html/component.xsl,1.27; html/division.xsl,1.11; html/formal.xsl,1.19;
+html/glossary.xsl,1.20; html/html.xsl,1.13; html/index.xsl,1.16;
+html/param.ent,1.88; html/param.xweb,1.97; html/refentry.xsl,1.22;
+html/sections.xsl,1.30; params/id.warnings.xml,1.1 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>If the
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/keep.relative.image.uris.html"><em class="parameter"><code>keep.relative.image.uris</code></em></a> parameter is true,
+don't use the absolute <a href="http://docbook.org/tdg5/en/html/uri.html"><code class="sgmltag-element">URI</code></a> (as calculated from xml:base) in
+the img src attribute, us the value the <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a>
+specified. Note that we still have to calculate the absolute
+<a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a> for use in the image intrinsics
+extension.</p>
+<p class="commit-changes">Modified: html/graphics.xsl,1.56 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Support <a href="http://docbook.org/tdg5/en/html/date.html"><code class="sgmltag-element">date</code></a> as an
+inline</p>
+<p class="commit-changes">Modified: fo/inline.xsl,1.43; html/inline.xsl,1.46 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Added new parameter
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/keep.relative.image.uris.html"><em class="parameter"><code>keep.relative.image.uris</code></em></a></p>
+<p class="commit-changes">Modified: fo/param.ent,1.91;
+fo/param.xweb,1.104; html/param.ent,1.87; html/param.xweb,1.96;
+params/keep.relative.image.uris.xml,1.1 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Added two new parameters for
+handling of multi-term
+<a href="http://docbook.org/tdg5/en/html/varlistentry.html"><code class="sgmltag-element">varlistentry</code></a> elements:</p>
+<p><a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.break.after.html"><em class="parameter"><code>variablelist.term.break.after</code></em></a>: 
+When the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.break.after.html"><em class="parameter"><code>variablelist.term.break.after</code></em></a> is
+non-zero, it will  generate a line break after each
+<a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a> multi-term
+<a href="http://docbook.org/tdg5/en/html/varlistentry.html"><code class="sgmltag-element">varlistentry</code></a>.</p>
+<p><a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.separator.html"><em class="parameter"><code>variablelist.term.separator</code></em></a>: 
+When a <a href="http://docbook.org/tdg5/en/html/varlistentry.html"><code class="sgmltag-element">varlistentry</code></a> contains multiple <a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a>
+elements, the string  specified in the value of the
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.separator.html"><em class="parameter"><code>variablelist.term.separator</code></em></a>  parameter is
+placed after each <a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a> except the last. The default 
+is ", " (a comma followed by a space). To suppress rendering of 
+the separator, set the value of
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.separator.html"><em class="parameter"><code>variablelist.term.separator</code></em></a> to  the empty
+string ("").</p>
+<p>These parameters are primarily intended to be
+useful if you have multi-term varlistentries that have long
+terms.</p>
+<p>Closes #1306676. Thanks to Sam Steingold for
+providing an example "lots of long terms" doc that demonstrated
+the value of having these options.</p>
+<p>Also, added
+normalize-space() call to processing of each
+<a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a>.</p>
+<p>This change affects all output formats
+(HTML, PDF, manpages). The default behavior should pretty much
+remain the same as before, but it is possible (as always) that
+the change may introduce some
+new bugginess.</p>
+<p class="commit-changes">Modified: fo/lists.xsl,1.62; fo/param.ent,1.88;
+fo/param.xweb,1.99; html/lists.xsl,1.48; html/param.ent,1.86;
+html/param.xweb,1.93; manpages/lists.xsl,1.22;
+manpages/param.ent,1.14; manpages/param.xweb,1.16;
+params/variablelist.term.break.after.xml,1.1;
+params/variablelist.term.separator.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added "wrapper-name" param to
+inline.charseq named template, enabling it to output inlines
+other than just "span". <a href="http://docbook.org/tdg5/en/html/acronym.html"><code class="sgmltag-element">Acronym</code></a> and <a href="http://docbook.org/tdg5/en/html/abbrev.html"><code class="sgmltag-element">Abbrev</code></a>
+templates now use inline.charseq to output HTML
+"<a href="http://docbook.org/tdg5/en/html/acronym.html"><code class="sgmltag-element">acronym</code></a>" and "abbr" elements (instead of
+"span"). Closes #1305468. Thanks to Sam Steingold for suggesting
+the change.</p>
+<p class="commit-changes">Modified: html/inline.xsl,1.45 - Michael(tm)
+Smith</p>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1700_Manpages"></a>Manpages</h3></div></div></div>
+
+<p>The following changes have been made to the
+        <code class="filename">manpages</code> code
+        since the 1.69.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>Added the following
+params:</p>
+<p> - man.indent.width (string-valued)  -
+man.indent.refsect (boolean)  - man.indent.blurbs (boolean) 
+- man.indent.lists (boolean)  - man.indent.verbatims
+(boolean)</p>
+<p>Note that in earlier snapshots, man.indent.width
+was named man.indentation.default.value and the boolean params
+had names like man.indentation.*.adjust. Also the
+man.indent.blurbs param was called man.indentation.authors.adjust
+(or something).</p>
+<p>The behavior now is: If the value of a
+particular man.indent.* boolean param is non-zero, the
+corresponding contents (refsect*, list items,
+authorblurb/personblurb, vervatims) are displayed with a left
+margin indented by a width equal to the value
+of man.indent.width.</p>
+<p class="commit-changes">Modified: params/man.indent.blurbs.xml,1.1;
+manpages/docbook.xsl,1.74; manpages/info.xsl,1.20;
+manpages/lists.xsl,1.30; manpages/other.xsl,1.20;
+manpages/param.ent,1.22; manpages/param.xweb,1.24;
+manpages/refentry.xsl,1.14; params/man.indent.lists.xml,1.1;
+params/man.indent.refsect.xml,1.1;
+params/man.indent.verbatims.xml,1.1; params/man.indent.width.xml,1.1 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added
+man.<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.footnotes.divider param.</p>
+<p>In each
+<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> that contains footenotes, the string specified
+by the man.<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.footnotes.divider parameter is output
+before the list of footnotes for the
+<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.73;
+manpages/links.xsl,1.6; manpages/param.ent,1.21;
+manpages/param.xweb,1.23; params/man.table.footnotes.divider.xml,1.1 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added the
+man.output.in.separate.dir,
+man.output.<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/base.dir.html"><em class="parameter"><code>base.dir</code></em></a>,
+and man.output.subdirs.enabled parameters.</p>
+<p>The
+man.output.<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/base.dir.html"><em class="parameter"><code>base.dir</code></em></a> parameter specifies the
+base directory into which man-page files are
+output. The man.output.subdirs.enabled parameter controls whether
+the files are output in subdirectories within the base
+directory.</p>
+<p>The values of the
+man.output.<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/base.dir.html"><em class="parameter"><code>base.dir</code></em></a>
+and man.output.subdirs.enabled parameters are used only if the
+value of man.output.in.separate.dir parameter is non-zero. If the
+value of man.output.in.separate.dir is zero, man-page files are
+not output in a separate
+directory.</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.72; manpages/param.ent,1.20;
+manpages/param.xweb,1.22; params/man.output.base.dir.xml,1.1;
+params/man.output.in.separate.dir.xml,1.1;
+params/man.output.subdirs.enabled.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added
+man.font.<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.headings and
+man.font.<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> params, for
+controlling font in <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> headings and
+titles.</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.71; manpages/param.ent,1.19;
+manpages/param.xweb,1.21; params/man.font.table.headings.xml,1.1;
+params/man.font.table.title.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added
+man.font.<a href="http://docbook.org/tdg5/en/html/funcsynopsisinfo.html"><code class="sgmltag-element">funcsynopsisinfo</code></a> and
+man.font.<a href="http://docbook.org/tdg5/en/html/funcprototype.html"><code class="sgmltag-element">funcprototype</code></a> params, for specifying the roff
+font (for example, BI, B, I) for <a href="http://docbook.org/tdg5/en/html/funcsynopsisinfo.html"><code class="sgmltag-element">funcsynopsisinfo</code></a> and
+<a href="http://docbook.org/tdg5/en/html/funcprototype.html"><code class="sgmltag-element">funcprototype</code></a> output.</p>
+<p class="commit-changes">Modified: manpages/block.xsl,1.19;
+manpages/docbook.xsl,1.69; manpages/param.ent,1.18;
+manpages/param.xweb,1.20; manpages/synop.xsl,1.29;
+manpages/table.xsl,1.21; params/man.font.funcprototype.xml,1.1;
+params/man.font.funcsynopsisinfo.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added
+man.<a href="http://docbook.org/tdg5/en/html/segtitle.html"><code class="sgmltag-element">segtitle</code></a>.suppress param.</p>
+<p>If the value of
+man.<a href="http://docbook.org/tdg5/en/html/segtitle.html"><code class="sgmltag-element">segtitle</code></a>.suppress is non-zero, then display
+of <a href="http://docbook.org/tdg5/en/html/segtitle.html"><code class="sgmltag-element">segtitle</code></a> contents is suppressed in
+output.</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.68; manpages/param.ent,1.17;
+manpages/param.xweb,1.19; params/man.segtitle.suppress.xml,1.1 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added
+man.output.<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/manifest.html"><em class="parameter"><code>manifest</code></em></a>.enabled and
+man.output.manifest.<a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a> params.</p>
+<p>If
+man.output.<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/manifest.html"><em class="parameter"><code>manifest</code></em></a>.enabled is non-zero, a list
+of filenames for man pages generated by the stylesheet
+transformation is written to the file named by
+man.output.<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/manifest.html"><em class="parameter"><code>manifest</code></em></a>.<a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a></p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.67;
+manpages/other.xsl,1.19; manpages/param.ent,1.16;
+manpages/param.xweb,1.18; params/man.output.manifest.enabled.xml,1.1;
+params/man.output.manifest.filename.xml,1.1;
+tools/make/Makefile.DocBook,1.4 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added
+<a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a>.meta.get.quietly param.</p>
+<p>If zero (the
+default), notes and warnings about "missing" markup are generated
+during gathering of <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> metadata. If
+non-zero, the metadata is gathered "quietly" -- that is, the
+notes and warnings are suppressed.</p>
+<p>NOTE: If you are
+processing a large amount of <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> content,  you
+may be able to speed up processing significantly by  setting a
+non-zero value for
+<a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a>.meta.get.quietly.</p>
+<p class="commit-changes">Modified: common/refentry.xsl,1.17;
+manpages/param.ent,1.15; manpages/param.xweb,1.17;
+params/refentry.meta.get.quietly.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Changed names of all boolean
+indentation params to man.indent.* Also discarded individual
+man.indent.*.value params and switched to just using a common
+man.indent.width param (3n by default).</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.66;
+manpages/info.xsl,1.19; manpages/lists.xsl,1.29;
+manpages/other.xsl,1.18; manpages/refentry.xsl,1.13 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added boolean
+man.output.in.separate.dir param, to control whether or not man
+files are output in separate directory.</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.65;
+manpages/utility.xsl,1.14 - Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added options for controlling
+indentation of verbatim output. Controlled through the
+man.indentation.verbatims.adjust
+and man.indentation.verbatims.value params. Closes
+#1242997</p>
+<p class="commit-changes">Modified: manpages/block.xsl,1.15; manpages/docbook.xsl,1.64 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added options for controlling
+indentation in lists and in *blurb output in the AUTHORS
+<a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a>. Controlled through
+the man.indentation.lists.adjust,
+man.indentation.lists.value, man.indentation.authors.adjust, and
+man.indentation.authors.value parameters. Default is 3 characters
+(instead of the roff default of 8 characters). Closes
+#1449369.</p>
+<p>Also, removed the indent that was being set on
+<a href="http://docbook.org/tdg5/en/html/informalexample.html"><code class="sgmltag-element">informalexample</code></a> outuput. I will instead add an option
+for indenting verbatims, which I think is what the
+<a href="http://docbook.org/tdg5/en/html/informalexample.html"><code class="sgmltag-element">informalexample</code></a> indent was intended
+for originally.</p>
+<p class="commit-changes">Modified: manpages/block.xsl,1.14;
+manpages/docbook.xsl,1.63; manpages/info.xsl,1.18;
+manpages/lists.xsl,1.28 - Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Changed line-spacing call before
+<a href="http://docbook.org/tdg5/en/html/synopfragment.html"><code class="sgmltag-element">synopfragment</code></a> to use ".sp -1n" ("n" units specified)
+instead of plain ".sp -1"</p>
+<p class="commit-changes">Modified: manpages/synop.xsl,1.28 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added support for writing man
+files into a specific output directory and into appropriate
+subdirectories within that output directory. Controlled through
+the man.<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/base.dir.html"><em class="parameter"><code>base.dir</code></em></a> parameter (similar to the
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/base.dir.html"><em class="parameter"><code>base.dir</code></em></a> support in the HTML stylesheet) and
+the man.subdirs.enabled parameter, which automatically determines
+the name of an appropriate subdir (for example, man/man7,
+man/man1, etc.) based on the <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> number/manvolnum
+of the source <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">Refentry</code></a>.</p>
+<p>Closes #1255036 and
+#1170317. Thanks to Denis Bradford for the original feature
+request, and to Costin Stroie for submitting a patch that was
+very helpful in implementing the
+support.</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.62; manpages/utility.xsl,1.13 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Refined XPath statements and
+notification messages for <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> metadata
+handling.</p>
+<p class="commit-changes">Modified: common/common.xsl,1.59; common/refentry.xsl,1.14;
+manpages/docbook.xsl,1.61; manpages/other.xsl,1.17 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added support for
+<a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">copyright</code></a> and <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a>. The manpages
+stylesheets now output a <a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">COPYRIGHT</code></a> <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a>,
+after the AUTHORS <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a>, if a <a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">copyright</code></a>
+or <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a> is found in the source. The
+<a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> contains the <a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">copyright</code></a> contents followed
+by the <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a> contents. Closes
+#1450209.</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.59; manpages/info.xsl,1.17 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Drastically reworked all of the
+XPath expressions used in <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> metadata gathering
+-- completely removed $parentinfo and turned $info into a set of
+nodes that includes the *info contents of the <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">Refentry</code></a>
+plus the *info contents all all of its ancestor elements. The
+basic XPath expression now used throughout is (using the example
+of checking for a <a href="http://docbook.org/tdg5/en/html/date.html"><code class="sgmltag-element">date</code></a>):</p>
+<p>
+(($info[//date])[last()]/date)[1].</p>
+<p>That selects the "last"
+*info/date <a href="http://docbook.org/tdg5/en/html/date.html"><code class="sgmltag-element">date</code></a> in document order -- that is, the one
+eitther on the <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">Refentry</code></a> itself or on the
+closest ancestor to the <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">Refentry</code></a>.</p>
+<p>It's
+likely this change may break some things; may need to pick up
+some pieces later.</p>
+<p>Also, changed the default value for the
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.th.extra2.max.length.html"><em class="parameter"><code>man.th.extra2.max.length</code></em></a> from 40 to
+30.</p>
+<p class="commit-changes">Modified: common/common.xsl,1.58; common/refentry.xsl,1.7;
+params/man.th.extra2.max.length.xml,1.2;
+params/refentry.date.profile.xml,1.2;
+params/refentry.manual.profile.xml,1.2;
+params/refentry.source.name.profile.xml,1.2;
+params/refentry.version.profile.xml,1.2; manpages/docbook.xsl,1.58;
+manpages/other.xsl,1.15 - Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added support for DocBook 5
+namespace-stripping in manpages stylesheet. Closes request
+#1210692.</p>
+<p class="commit-changes">Modified: common/common.xsl,1.56; manpages/docbook.xsl,1.57 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Fixed handling of <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>
+footnotes. With this checkin, the <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> support in the
+manpages stylesheet is now basically feature complete. So this
+change closes request #619532, "No support for tables" -- the
+oldest currently open manpages feature request, submitted by Ben
+Secrest (blsecres) on 2002-10-07. Congratulations to me [patting
+myself on the back].</p>
+<p class="commit-changes">Modified: manpages/block.xsl,1.11;
+manpages/docbook.xsl,1.55; manpages/table.xsl,1.15 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added handling for
+<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> titles. Also fixed handling of nested tables;
+nest tables are now "extracted" and displayed just after their
+parent tables.</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.54; manpages/table.xsl,1.14
+- Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added option for turning off bold
+formatting in <a href="http://docbook.org/tdg5/en/html/funcsynopsis.html"><code class="sgmltag-element">Funcsynopsis</code></a>. Boldface formatting in
+<a href="http://docbook.org/tdg5/en/html/function.html"><code class="sgmltag-element">function</code></a> <a href="http://docbook.org/tdg5/en/html/synopsis.html"><code class="sgmltag-element">synopsis</code></a> is mandated in the
+man(7) man page and is used almost universally in existing man
+pages. Despite that, it really does look like crap to have an
+entire <a href="http://docbook.org/tdg5/en/html/funcsynopsis.html"><code class="sgmltag-element">Funcsynopsis</code></a> output in bold, so I added params
+for turning off the bold formatting and/or replacing it with a
+different roff special font (e.g., "RI" for alternating
+roman/italic instead of the default "BI" for alternating
+bold/italic). The new params
+are "man.<a href="http://docbook.org/tdg5/en/html/funcprototype.html"><code class="sgmltag-element">funcprototype</code></a>.font" and
+"man.<a href="http://docbook.org/tdg5/en/html/funcsynopsisinfo.html"><code class="sgmltag-element">funcsynopsisinfo</code></a>.font". To be documented
+later.</p>
+<p>Closes #1452247. Thanks to Joe Orton for the feature
+request.</p>
+<p class="commit-changes">Modified: params/man.string.subst.map.xml,1.16;
+manpages/block.xsl,1.10; manpages/docbook.xsl,1.51;
+manpages/inline.xsl,1.16; manpages/synop.xsl,1.27 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Use AUTHORS instead of
+<a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">AUTHOR</code></a> if we have multiple people to attribute. Also,
+fixed checking such that we generate
+<a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a> <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> even if we don't have an
+<a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a> (as long as there is at least one other
+person/entity we can put in the
+<a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a>). Also adjusted assembly of content for
+<a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">Author</code></a> metainfo field such that we now not only use
+<a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a>, but try to find a "best match" if we can't
+find an <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">author</code></a> name to put there.</p>
+<p>Closes
+#1233592. Thanks to Sam Steingold for the
+request.</p>
+<p class="commit-changes">Modified: manpages/info.xsl,1.12 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Changes for request #1243027,
+"Impove handling of <a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">AUTHOR</code></a> <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a>." This
+adds support for <a href="http://docbook.org/tdg5/en/html/collab.html"><code class="sgmltag-element">Collab</code></a>, Corpauthor, Corpcredt,
+<a href="http://docbook.org/tdg5/en/html/orgname.html"><code class="sgmltag-element">Orgname</code></a>, <a href="http://docbook.org/tdg5/en/html/publishername.html"><code class="sgmltag-element">Publishername</code></a>, and
+<a href="http://docbook.org/tdg5/en/html/publisher.html"><code class="sgmltag-element">Publisher</code></a>. Also adds support for output
+of <a href="http://docbook.org/tdg5/en/html/affiliation.html"><code class="sgmltag-element">Affiliation</code></a> and its children, and support for using
+gentext strings for auto-attributing roles (<a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">Author</code></a>,
+<a href="http://docbook.org/tdg5/en/html/editor.html"><code class="sgmltag-element">Editor</code></a>, <a href="http://docbook.org/tdg5/en/html/publisher.html"><code class="sgmltag-element">Publisher</code></a>, Translator, etc.). Also
+did a lot of code cleanup and modularization of all the
+<a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">AUTHOR</code></a> handling code. And fixed a bug that was causing
+<a href="http://docbook.org/tdg5/en/html/author.html"><code class="sgmltag-element">Author</code></a> <a href="http://docbook.org/tdg5/en/html/info.html"><code class="sgmltag-element">info</code></a> to not be picked up correctly
+for metainfo comment we embed in man-page
+source.</p>
+<p class="commit-changes">Modified: manpages/info.xsl,1.11 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Support bold output for
+"<a href="http://docbook.org/tdg5/en/html/emphasis.html"><code class="sgmltag-element">emphasis</code></a> remap='B'". (because Eric Raymond's
+doclifter(1) tool converts groff source marked up with ".B"
+request or "\fB" escapes to DocBook "<a href="http://docbook.org/tdg5/en/html/emphasis.html"><code class="sgmltag-element">emphasis</code></a>
+remap='B'".)</p>
+<p class="commit-changes">Modified: manpages/inline.xsl,1.14 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added support for
+<a href="http://docbook.org/tdg5/en/html/segmentedlist.html"><code class="sgmltag-element">Segmentedlist</code></a>. Details: Output is tabular, with no
+option for "list" type output. Output for <a href="http://docbook.org/tdg5/en/html/segtitle.html"><code class="sgmltag-element">Segtitle</code></a>
+elements can be supressed by
+setting man.<a href="http://docbook.org/tdg5/en/html/segtitle.html"><code class="sgmltag-element">segtitle</code></a>.suppress. If <a href="http://docbook.org/tdg5/en/html/segtitle.html"><code class="sgmltag-element">Segtitle</code></a>
+content is output, it is rendered in italic type (not bold
+because not all terminals support bold and so italic ensures the
+stand out on those terminals). Extra space (.sp line) at end of
+<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> code ensures that it gets handled correctly in
+the case where its source is the child of a <a href="http://docbook.org/tdg5/en/html/para.html"><code class="sgmltag-element">Para</code></a>.
+Closes feature-request #1400097. Thanks to Daniel Leidert for the
+patch and push, and to Alastair Rankine for filing the original
+feature request.</p>
+<p class="commit-changes">Modified: manpages/lists.xsl,1.23;
+manpages/utility.xsl,1.10 - Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Improved handling or
+Author/Editor/Othercredit.</p>
+<p>Reworked content of
+(non-visible) comment added at top of each page (metadata
+stuff).</p>
+<p>Added support for generating a
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/manifest.html"><em class="parameter"><code>manifest</code></em></a> file (useful for cleaning up
+after builds, etc.)</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.46;
+manpages/info.xsl,1.9; manpages/other.xsl,1.12;
+manpages/utility.xsl,1.6 - Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added two new parameters for
+handling of multi-term
+<a href="http://docbook.org/tdg5/en/html/varlistentry.html"><code class="sgmltag-element">varlistentry</code></a> elements:</p>
+<p><a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.break.after.html"><em class="parameter"><code>variablelist.term.break.after</code></em></a>: 
+When the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.break.after.html"><em class="parameter"><code>variablelist.term.break.after</code></em></a> is
+non-zero, it will  generate a line break after each
+<a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a> multi-term
+<a href="http://docbook.org/tdg5/en/html/varlistentry.html"><code class="sgmltag-element">varlistentry</code></a>.</p>
+<p><a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.separator.html"><em class="parameter"><code>variablelist.term.separator</code></em></a>: 
+When a <a href="http://docbook.org/tdg5/en/html/varlistentry.html"><code class="sgmltag-element">varlistentry</code></a> contains multiple <a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a>
+elements, the string  specified in the value of the
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.separator.html"><em class="parameter"><code>variablelist.term.separator</code></em></a>  parameter is
+placed after each <a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a> except the last. The default 
+is ", " (a comma followed by a space). To suppress rendering of 
+the separator, set the value of
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.separator.html"><em class="parameter"><code>variablelist.term.separator</code></em></a> to  the empty
+string ("").</p>
+<p>These parameters are primarily intended to be
+useful if you have multi-term varlistentries that have long
+terms.</p>
+<p>Closes #1306676. Thanks to Sam Steingold for
+providing an example "lots of long terms" doc that demonstrated
+the value of having these options.</p>
+<p>Also, added
+normalize-space() call to processing of each
+<a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a>.</p>
+<p>This change affects all output formats
+(HTML, PDF, manpages). The default behavior should pretty much
+remain the same as before, but it is possible (as always) that
+the change may introduce some
+new bugginess.</p>
+<p class="commit-changes">Modified: fo/lists.xsl,1.62; fo/param.ent,1.88;
+fo/param.xweb,1.99; html/lists.xsl,1.48; html/param.ent,1.86;
+html/param.xweb,1.93; manpages/lists.xsl,1.22;
+manpages/param.ent,1.14; manpages/param.xweb,1.16;
+params/variablelist.term.break.after.xml,1.1;
+params/variablelist.term.separator.xml,1.1 - Michael(tm)
+Smith</p>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1700_Params"></a>Params</h3></div></div></div>
+
+<p>The following changes have been made to the
+        <code class="filename">params</code> code
+        since the 1.69.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>New parameters to set
+header/footer <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> minimum
+height.</p>
+<p class="commit-changes">Modified: params/footer.table.height.xml,1.1;
+params/header.table.height.xml,1.1 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Support multiple indexing methods
+for different languages.</p>
+<p class="commit-changes">Modified: params/index.method.xml,1.1 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Remove <a href="http://docbook.org/tdg5/en/html/qandaset.html"><code class="sgmltag-element">qandaset</code></a> and
+<a href="http://docbook.org/tdg5/en/html/qandadiv.html"><code class="sgmltag-element">qandadiv</code></a> from <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/generate.toc.html"><em class="parameter"><code>generate.toc</code></em></a> for fo
+output because formerly it wasn't working, but now it is and
+the default behavior should stay the
+same.</p>
+<p class="commit-changes">Modified: params/generate.toc.xml,1.8 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>add support for page number
+references to <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> element
+too.</p>
+<p class="commit-changes">Modified: params/insert.link.page.number.xml,1.1 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Add support for more characters to
+hyphen on when <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/ulink.hyphenate.html"><em class="parameter"><code>ulink.hyphenate</code></em></a> is turned
+on.</p>
+<p class="commit-changes">Modified: params/ulink.hyphenate.chars.xml,1.1;
+params/ulink.hyphenate.xml,1.3 - Robert Stayton</p>
+</li><li class="listitem">
+<p>New attribute-set to format
+<a href="http://docbook.org/tdg5/en/html/biblioentry.html"><code class="sgmltag-element">biblioentry</code></a> and
+<a href="http://docbook.org/tdg5/en/html/bibliomixed.html"><code class="sgmltag-element">bibliomixed</code></a>.</p>
+<p class="commit-changes">Modified: params/biblioentry.properties.xml,1.1 -
+Robert Stayton</p>
+</li><li class="listitem">
+<p>Added new parameter
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/chunk.tocs.and.lots.html"><em class="parameter"><code>chunk.tocs.and.lots</code></em></a>.has.<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> which
+controls presence of <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> in a separate chunk with
+ToC/LoT. Disabling <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> can be very useful if you are
+generating frameset output (well, yes those frames, but some customers
+really want them ;-).</p>
+<p class="commit-changes">Modified: html/chunk-code.xsl,1.15;
+html/param.ent,1.93; html/param.xweb,1.102;
+params/chunk.tocs.and.lots.has.title.xml,1.1 - Jirka
+Kosek</p>
+</li><li class="listitem">
+<p>Added new attribute set
+<a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a>.line.properties for controlling appearance of lines in
+ToC/LoT</p>
+<p class="commit-changes">Modified: params/toc.line.properties.xml,1.1 - Jirka
+Kosek</p>
+</li><li class="listitem">
+<p>Allow <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> footnotes
+to have different properties from regular
+footnotes.</p>
+<p class="commit-changes">Modified: params/table.footnote.properties.xml,1.1 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Set properties for pgwide="1"
+objects.</p>
+<p class="commit-changes">Modified: params/pgwide.properties.xml,1.1 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added the
+autotoc.<a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a>.in.hyperlink param.</p>
+<p>If the value
+of autotoc.<a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a>.in.hyperlink is non-zero, labels
+are included in hyperlinked titles in the <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">TOC</code></a>. If it
+is instead zero, labels are still displayed prior to the
+hyperlinked titles, but are not hyperlinked along with the
+titles.</p>
+<p>Closes patch #1065868. Thanks to anatoly techtonik
+for the patch.</p>
+<p class="commit-changes">Modified: html/autotoc.xsl,1.36; html/param.ent,1.92;
+html/param.xweb,1.101; params/autotoc.label.in.hyperlink.xml,1.1 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added two new params:
+html.head.<a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a>.<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>.types
+and html.head.<a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a>.<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>.multiple.</p>
+<p>If
+the value of the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/generate.legalnotice.link.html"><em class="parameter"><code>generate.legalnotice.link</code></em></a> is
+non-zero, then the stylesheet generates (in the head
+<a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> of the HTML source) either a single HTML
+<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> element or, if the value of
+the html.head.<a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a>.<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>.multiple is
+non-zero, one <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> element for each <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>
+type specified. Each <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> has the
+following attributes:</p>
+<p> - a rel attribute whose value
+is derived from the value of 
+html.head.<a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a>.<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>.types</p>
+<p> -
+an href attribute whose value is set to the URL of the file 
+containing the <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a></p>
+<p> - a <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>
+attribute whose value is set to the <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> of the 
+corresponding <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a> (or a <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>
+programatically  determined by the stylesheet)</p>
+<p>For
+example:</p>
+<p> &lt;<a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a> rel="<a href="http://docbook.org/tdg5/en/html/copyright.html"><code class="sgmltag-element">copyright</code></a>"
+href="ln-id2524073.html" title="Legal Notice"&gt;</p>
+<p>Closes
+#1476450. Thanks to Sam Steingold.</p>
+<p class="commit-changes">Modified: html/chunk-common.xsl,1.45;
+html/param.ent,1.91; html/param.xweb,1.100;
+params/generate.legalnotice.link.xml,1.4;
+params/html.head.legalnotice.link.multiple.xml,1.1;
+params/html.head.legalnotice.link.types.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added the following
+params:</p>
+<p> - man.indent.width (string-valued)  -
+man.indent.refsect (boolean)  - man.indent.blurbs (boolean) 
+- man.indent.lists (boolean)  - man.indent.verbatims
+(boolean)</p>
+<p>Note that in earlier snapshots, man.indent.width
+was named man.indentation.default.value and the boolean params
+had names like man.indentation.*.adjust. Also the
+man.indent.blurbs param was called man.indentation.authors.adjust
+(or something).</p>
+<p>The behavior now is: If the value of a
+particular man.indent.* boolean param is non-zero, the
+corresponding contents (refsect*, list items,
+authorblurb/personblurb, vervatims) are displayed with a left
+margin indented by a width equal to the value
+of man.indent.width.</p>
+<p class="commit-changes">Modified: params/man.indent.blurbs.xml,1.1;
+manpages/docbook.xsl,1.74; manpages/info.xsl,1.20;
+manpages/lists.xsl,1.30; manpages/other.xsl,1.20;
+manpages/param.ent,1.22; manpages/param.xweb,1.24;
+manpages/refentry.xsl,1.14; params/man.indent.lists.xml,1.1;
+params/man.indent.refsect.xml,1.1;
+params/man.indent.verbatims.xml,1.1; params/man.indent.width.xml,1.1 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added
+man.<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.footnotes.divider param.</p>
+<p>In each
+<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> that contains footenotes, the string specified
+by the man.<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.footnotes.divider parameter is output
+before the list of footnotes for the
+<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.73;
+manpages/links.xsl,1.6; manpages/param.ent,1.21;
+manpages/param.xweb,1.23; params/man.table.footnotes.divider.xml,1.1 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added the
+man.output.in.separate.dir,
+man.output.<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/base.dir.html"><em class="parameter"><code>base.dir</code></em></a>,
+and man.output.subdirs.enabled parameters.</p>
+<p>The
+man.output.<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/base.dir.html"><em class="parameter"><code>base.dir</code></em></a> parameter specifies the
+base directory into which man-page files are
+output. The man.output.subdirs.enabled parameter controls whether
+the files are output in subdirectories within the base
+directory.</p>
+<p>The values of the
+man.output.<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/base.dir.html"><em class="parameter"><code>base.dir</code></em></a>
+and man.output.subdirs.enabled parameters are used only if the
+value of man.output.in.separate.dir parameter is non-zero. If the
+value of man.output.in.separate.dir is zero, man-page files are
+not output in a separate
+directory.</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.72; manpages/param.ent,1.20;
+manpages/param.xweb,1.22; params/man.output.base.dir.xml,1.1;
+params/man.output.in.separate.dir.xml,1.1;
+params/man.output.subdirs.enabled.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added
+man.font.<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.headings and
+man.font.<a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>.<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> params, for
+controlling font in <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> headings and
+titles.</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.71; manpages/param.ent,1.19;
+manpages/param.xweb,1.21; params/man.font.table.headings.xml,1.1;
+params/man.font.table.title.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added
+man.font.<a href="http://docbook.org/tdg5/en/html/funcsynopsisinfo.html"><code class="sgmltag-element">funcsynopsisinfo</code></a> and
+man.font.<a href="http://docbook.org/tdg5/en/html/funcprototype.html"><code class="sgmltag-element">funcprototype</code></a> params, for specifying the roff
+font (for example, BI, B, I) for <a href="http://docbook.org/tdg5/en/html/funcsynopsisinfo.html"><code class="sgmltag-element">funcsynopsisinfo</code></a> and
+<a href="http://docbook.org/tdg5/en/html/funcprototype.html"><code class="sgmltag-element">funcprototype</code></a> output.</p>
+<p class="commit-changes">Modified: manpages/block.xsl,1.19;
+manpages/docbook.xsl,1.69; manpages/param.ent,1.18;
+manpages/param.xweb,1.20; manpages/synop.xsl,1.29;
+manpages/table.xsl,1.21; params/man.font.funcprototype.xml,1.1;
+params/man.font.funcsynopsisinfo.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Changed to select="0" in
+<a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a>.suppress (instead of
+..&gt;0&lt;/..)</p>
+<p class="commit-changes">Modified: params/refclass.suppress.xml,1.3 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added
+man.<a href="http://docbook.org/tdg5/en/html/segtitle.html"><code class="sgmltag-element">segtitle</code></a>.suppress param.</p>
+<p>If the value of
+man.<a href="http://docbook.org/tdg5/en/html/segtitle.html"><code class="sgmltag-element">segtitle</code></a>.suppress is non-zero, then display
+of <a href="http://docbook.org/tdg5/en/html/segtitle.html"><code class="sgmltag-element">segtitle</code></a> contents is suppressed in
+output.</p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.68; manpages/param.ent,1.17;
+manpages/param.xweb,1.19; params/man.segtitle.suppress.xml,1.1 -
+Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added
+man.output.<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/manifest.html"><em class="parameter"><code>manifest</code></em></a>.enabled and
+man.output.manifest.<a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a> params.</p>
+<p>If
+man.output.<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/manifest.html"><em class="parameter"><code>manifest</code></em></a>.enabled is non-zero, a list
+of filenames for man pages generated by the stylesheet
+transformation is written to the file named by
+man.output.<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/manifest.html"><em class="parameter"><code>manifest</code></em></a>.<a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a></p>
+<p class="commit-changes">Modified: manpages/docbook.xsl,1.67;
+manpages/other.xsl,1.19; manpages/param.ent,1.16;
+manpages/param.xweb,1.18; params/man.output.manifest.enabled.xml,1.1;
+params/man.output.manifest.filename.xml,1.1;
+tools/make/Makefile.DocBook,1.4 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a>.suppress
+param.</p>
+<p>If the value of <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a>.suppress is
+non-zero, then display <a href="http://docbook.org/tdg5/en/html/refclass.html"><code class="sgmltag-element">refclass</code></a> contents is suppressed
+in output. Affects HTML and FO output
+only.</p>
+<p class="commit-changes">Modified: fo/param.ent,1.93; fo/param.xweb,1.106; html/param.ent,1.90;
+html/param.xweb,1.99; params/refclass.suppress.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added
+<a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a>.meta.get.quietly param.</p>
+<p>If zero (the
+default), notes and warnings about "missing" markup are generated
+during gathering of <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> metadata. If
+non-zero, the metadata is gathered "quietly" -- that is, the
+notes and warnings are suppressed.</p>
+<p>NOTE: If you are
+processing a large amount of <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> content,  you
+may be able to speed up processing significantly by  setting a
+non-zero value for
+<a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a>.meta.get.quietly.</p>
+<p class="commit-changes">Modified: common/refentry.xsl,1.17;
+manpages/param.ent,1.15; manpages/param.xweb,1.17;
+params/refentry.meta.get.quietly.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Added support for "software" and
+"sectdesc" class values on <a href="http://docbook.org/tdg5/en/html/refmiscinfo.html"><code class="sgmltag-element">refmiscinfo</code></a>; "software" is
+treated identically to "source", and "setdesc" is treated
+identically to "manual".</p>
+<p class="commit-changes">Modified: common/refentry.xsl,1.10;
+params/man.th.extra2.max.length.xml,1.3;
+params/refentry.source.name.profile.xml,1.4 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Drastically reworked all of the
+XPath expressions used in <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> metadata gathering
+-- completely removed $parentinfo and turned $info into a set of
+nodes that includes the *info contents of the <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">Refentry</code></a>
+plus the *info contents all all of its ancestor elements. The
+basic XPath expression now used throughout is (using the example
+of checking for a <a href="http://docbook.org/tdg5/en/html/date.html"><code class="sgmltag-element">date</code></a>):</p>
+<p>
+(($info[//date])[last()]/date)[1].</p>
+<p>That selects the "last"
+*info/date <a href="http://docbook.org/tdg5/en/html/date.html"><code class="sgmltag-element">date</code></a> in document order -- that is, the one
+eitther on the <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">Refentry</code></a> itself or on the
+closest ancestor to the <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">Refentry</code></a>.</p>
+<p>It's
+likely this change may break some things; may need to pick up
+some pieces later.</p>
+<p>Also, changed the default value for the
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.th.extra2.max.length.html"><em class="parameter"><code>man.th.extra2.max.length</code></em></a> from 40 to
+30.</p>
+<p class="commit-changes">Modified: common/common.xsl,1.58; common/refentry.xsl,1.7;
+params/man.th.extra2.max.length.xml,1.2;
+params/refentry.date.profile.xml,1.2;
+params/refentry.manual.profile.xml,1.2;
+params/refentry.source.name.profile.xml,1.2;
+params/refentry.version.profile.xml,1.2; manpages/docbook.xsl,1.58;
+manpages/other.xsl,1.15 - Michael(tm) Smith</p>
+</li><li class="listitem">
+<p>Added option for turning off bold
+formatting in <a href="http://docbook.org/tdg5/en/html/funcsynopsis.html"><code class="sgmltag-element">Funcsynopsis</code></a>. Boldface formatting in
+<a href="http://docbook.org/tdg5/en/html/function.html"><code class="sgmltag-element">function</code></a> <a href="http://docbook.org/tdg5/en/html/synopsis.html"><code class="sgmltag-element">synopsis</code></a> is mandated in the
+man(7) man page and is used almost universally in existing man
+pages. Despite that, it really does look like crap to have an
+entire <a href="http://docbook.org/tdg5/en/html/funcsynopsis.html"><code class="sgmltag-element">Funcsynopsis</code></a> output in bold, so I added params
+for turning off the bold formatting and/or replacing it with a
+different roff special font (e.g., "RI" for alternating
+roman/italic instead of the default "BI" for alternating
+bold/italic). The new params
+are "man.<a href="http://docbook.org/tdg5/en/html/funcprototype.html"><code class="sgmltag-element">funcprototype</code></a>.font" and
+"man.<a href="http://docbook.org/tdg5/en/html/funcsynopsisinfo.html"><code class="sgmltag-element">funcsynopsisinfo</code></a>.font". To be documented
+later.</p>
+<p>Closes #1452247. Thanks to Joe Orton for the feature
+request.</p>
+<p class="commit-changes">Modified: params/man.string.subst.map.xml,1.16;
+manpages/block.xsl,1.10; manpages/docbook.xsl,1.51;
+manpages/inline.xsl,1.16; manpages/synop.xsl,1.27 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p><a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/fop.extensions.html"><em class="parameter"><code>fop.extensions</code></em></a> now only
+for FOP version 0.20.5 and earlier.</p>
+<p class="commit-changes">Modified: params/fop.extensions.xml,1.4
+- Robert Stayton</p>
+</li><li class="listitem">
+<p>Support for fop1 different from
+fop 0.20.5 and earlier.</p>
+<p class="commit-changes">Modified: params/fop1.extensions.xml,1.1 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Reset default value to empty
+string so template uses gentext first, then the parameter value
+if not empty.</p>
+<p class="commit-changes">Modified: params/index.number.separator.xml,1.2;
+params/index.range.separator.xml,1.2;
+params/index.term.separator.xml,1.2 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>New parameter:
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/id.warnings.html"><em class="parameter"><code>id.warnings</code></em></a>. If non-zero, warnings are
+generated for titled objects that don't have titles. True by default;
+I wonder if this will be too aggressive?</p>
+<p class="commit-changes">Modified: html/biblio.xsl,1.25;
+html/component.xsl,1.27; html/division.xsl,1.11; html/formal.xsl,1.19;
+html/glossary.xsl,1.20; html/html.xsl,1.13; html/index.xsl,1.16;
+html/param.ent,1.88; html/param.xweb,1.97; html/refentry.xsl,1.22;
+html/sections.xsl,1.30; params/id.warnings.xml,1.1 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Added new parameter
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/keep.relative.image.uris.html"><em class="parameter"><code>keep.relative.image.uris</code></em></a></p>
+<p class="commit-changes">Modified: fo/param.ent,1.91;
+fo/param.xweb,1.104; html/param.ent,1.87; html/param.xweb,1.96;
+params/keep.relative.image.uris.xml,1.1 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Support default <a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a>
+width parameters for itemized and ordered lists</p>
+<p class="commit-changes">Modified: fo/lists.xsl,1.64;
+fo/param.ent,1.90; fo/param.xweb,1.103;
+params/itemizedlist.label.width.xml,1.1;
+params/orderedlist.label.width.xml,1.1 - Norman
+Walsh</p>
+</li><li class="listitem">
+<p>Added parameters to localize
+punctuation in indexes.</p>
+<p class="commit-changes">Modified: params/index.number.separator.xml,1.1;
+params/index.range.separator.xml,1.1;
+params/index.term.separator.xml,1.1 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Added two new parameters for
+handling of multi-term
+<a href="http://docbook.org/tdg5/en/html/varlistentry.html"><code class="sgmltag-element">varlistentry</code></a> elements:</p>
+<p><a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.break.after.html"><em class="parameter"><code>variablelist.term.break.after</code></em></a>: 
+When the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.break.after.html"><em class="parameter"><code>variablelist.term.break.after</code></em></a> is
+non-zero, it will  generate a line break after each
+<a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a> multi-term
+<a href="http://docbook.org/tdg5/en/html/varlistentry.html"><code class="sgmltag-element">varlistentry</code></a>.</p>
+<p><a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.separator.html"><em class="parameter"><code>variablelist.term.separator</code></em></a>: 
+When a <a href="http://docbook.org/tdg5/en/html/varlistentry.html"><code class="sgmltag-element">varlistentry</code></a> contains multiple <a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a>
+elements, the string  specified in the value of the
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.separator.html"><em class="parameter"><code>variablelist.term.separator</code></em></a>  parameter is
+placed after each <a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a> except the last. The default 
+is ", " (a comma followed by a space). To suppress rendering of 
+the separator, set the value of
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/variablelist.term.separator.html"><em class="parameter"><code>variablelist.term.separator</code></em></a> to  the empty
+string ("").</p>
+<p>These parameters are primarily intended to be
+useful if you have multi-term varlistentries that have long
+terms.</p>
+<p>Closes #1306676. Thanks to Sam Steingold for
+providing an example "lots of long terms" doc that demonstrated
+the value of having these options.</p>
+<p>Also, added
+normalize-space() call to processing of each
+<a href="http://docbook.org/tdg5/en/html/term.html"><code class="sgmltag-element">term</code></a>.</p>
+<p>This change affects all output formats
+(HTML, PDF, manpages). The default behavior should pretty much
+remain the same as before, but it is possible (as always) that
+the change may introduce some
+new bugginess.</p>
+<p class="commit-changes">Modified: fo/lists.xsl,1.62; fo/param.ent,1.88;
+fo/param.xweb,1.99; html/lists.xsl,1.48; html/param.ent,1.86;
+html/param.xweb,1.93; manpages/lists.xsl,1.22;
+manpages/param.ent,1.14; manpages/param.xweb,1.16;
+params/variablelist.term.break.after.xml,1.1;
+params/variablelist.term.separator.xml,1.1 - Michael(tm)
+Smith</p>
+</li><li class="listitem">
+<p>Convert 'no' to string in default
+value.</p>
+<p class="commit-changes">Modified: params/olink.doctitle.xml,1.4 - Robert
+Stayton</p>
+</li><li class="listitem">
+<p>Implemented RFE
+#1292615.</p>
+<p>Added bunch of new parameters (attribute sets)
+that affect list presentation: list.block.properties,
+<a href="http://docbook.org/tdg5/en/html/itemizedlist.html"><code class="sgmltag-element">itemizedlist</code></a>.properties, <a href="http://docbook.org/tdg5/en/html/orderedlist.html"><code class="sgmltag-element">orderedlist</code></a>.properties,
+<a href="http://docbook.org/tdg5/en/html/itemizedlist.html"><code class="sgmltag-element">itemizedlist</code></a>.<a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a>.properties and
+<a href="http://docbook.org/tdg5/en/html/orderedlist.html"><code class="sgmltag-element">orderedlist</code></a>.<a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a>.properties. Default behaviour
+of stylesheets has not been changed but further customizations will be
+much more easier.</p>
+<p class="commit-changes">Modified: fo/lists.xsl,1.61; fo/param.ent,1.87;
+fo/param.xweb,1.98; params/itemizedlist.label.properties.xml,1.1;
+params/itemizedlist.properties.xml,1.1;
+params/list.block.properties.xml,1.1;
+params/orderedlist.label.properties.xml,1.1;
+params/orderedlist.properties.xml,1.1 - Jirka
+Kosek</p>
+</li><li class="listitem">
+<p>Implemented RFE
+#1242092.</p>
+<p>You can enable crop marks in your document by
+setting crop.marks=1 and xep.extensions=1. Appearance of crop
+marks can be controlled by parameters
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/crop.mark.bleed.html"><em class="parameter"><code>crop.mark.bleed</code></em></a> (6pt),
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/crop.mark.offset.html"><em class="parameter"><code>crop.mark.offset</code></em></a> (24pt) and
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/crop.mark.width.html"><em class="parameter"><code>crop.mark.width</code></em></a> (0.5pt).</p>
+<p>Also there
+is new named template called user-xep-pis. You can overwrite it in
+order to produce some PIs that can control XEP as described in
+http://www.renderx.com/reference.html#Output_Formats</p>
+<p class="commit-changes">Modified: fo/docbook.xsl,1.36;
+fo/param.ent,1.86; fo/param.xweb,1.97; fo/xep.xsl,1.23;
+params/crop.mark.bleed.xml,1.1; params/crop.mark.offset.xml,1.1;
+params/crop.mark.width.xml,1.1; params/crop.marks.xml,1.1 - Jirka
+Kosek</p>
+</li><li class="listitem">
+<p>Changed short descriptions in doc
+for *autolabel* params to match new autolabel
+behavior.</p>
+<p class="commit-changes">Modified: params/appendix.autolabel.xml,1.5;
+params/chapter.autolabel.xml,1.4; params/part.autolabel.xml,1.5;
+params/preface.autolabel.xml,1.4 - Michael(tm)
+Smith</p>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1700_Profiling"></a>Profiling</h3></div></div></div>
+
+<p>The following changes have been made to the
+        <code class="filename">profiling</code> code
+        since the 1.69.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>Profiling now works together with
+namespace stripping (V5 documents). Namespace striping should work
+with all stylesheets named profile-, even if they are not supporting
+namespace stripping in a non-profiling
+variant.</p>
+<p class="commit-changes">Modified: profiling/profile-mode.xsl,1.4;
+profiling/xsl2profile.xsl,1.7 - Jirka Kosek</p>
+</li><li class="listitem">
+<p>Moved profiling stage out of
+templates. This make possible to reuse profiled content by several
+templates and still maintaing node indentity (needed for example for
+HTML Help where content is processed multiple times).</p>
+<p>I
+don't know why this was not on the top level before. Maybe some XSLT
+processors choked on it. I hope this will be OK
+now.</p>
+<p class="commit-changes">Modified: profiling/xsl2profile.xsl,1.5 - Jirka
+Kosek</p>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1700_Tools"></a>Tools</h3></div></div></div>
+
+<p>The following changes have been made to the
+        <code class="filename">tools</code> code
+        since the 1.69.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>Moved Makefile.DocBook from
+<a href="http://docbook.org/tdg5/en/html/contrib.html"><code class="sgmltag-element">contrib</code></a> module to xsl
+module.</p>
+<p class="commit-changes">Modified: tools/make/Makefile.DocBook,1.1 - Michael(tm)
+Smith</p>
+</li></ul></div>
+</div>
+
+<div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1700_WordML"></a>WordML</h3></div></div></div>
+
+<p>The following changes have been made to the
+        <code class="filename">wordml</code> code
+        since the 1.69.1 release.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>added <a href="http://docbook.org/tdg5/en/html/contrib.html"><code class="sgmltag-element">contrib</code></a> element,
+better handling of default paragraph
+style</p>
+<p class="commit-changes">Modified: wordml/pages-normalise.xsl,1.6; wordml/supported.xml,1.2;
+wordml/wordml-final.xsl,1.14 - Steve Ball</p>
+</li><li class="listitem">
+<p>added
+<a href="http://docbook.org/tdg5/en/html/bridgehead.html"><code class="sgmltag-element">bridgehead</code></a></p>
+<p class="commit-changes">Modified: wordml/docbook-pages.xsl,1.6;
+wordml/docbook.xsl,1.17; wordml/pages-normalise.xsl,1.5;
+wordml/template-pages.xml,1.7; wordml/template.dot,1.4;
+wordml/template.xml,1.14; wordml/wordml-final.xsl,1.13 - Steve
+Ball</p>
+</li><li class="listitem">
+<p>added blocks stylesheet to support
+bibliographies, glossaries and qandasets</p>
+<p class="commit-changes">Modified: wordml/Makefile,1.4;
+wordml/README,1.3; wordml/blocks-spec.xml,1.1;
+wordml/docbook-pages.xsl,1.5; wordml/docbook.xsl,1.16;
+wordml/pages-normalise.xsl,1.4; wordml/sections-spec.xml,1.3;
+wordml/specifications.xml,1.13; wordml/template-pages.xml,1.6;
+wordml/template.dot,1.3; wordml/template.xml,1.13;
+wordml/wordml-blocks.xsl,1.1; wordml/wordml-final.xsl,1.12;
+wordml/wordml-sections.xsl,1.3 - Steve Ball</p>
+</li><li class="listitem">
+<p>added <a href="http://docbook.org/tdg5/en/html/mediaobject.html"><code class="sgmltag-element">mediaobject</code></a>
+<a href="http://docbook.org/tdg5/en/html/caption.html"><code class="sgmltag-element">caption</code></a></p>
+<p class="commit-changes">Modified: wordml/docbook-pages.xsl,1.4;
+wordml/docbook.xsl,1.15; wordml/specifications.xml,1.12;
+wordml/template-pages.xml,1.5; wordml/template.dot,1.2;
+wordml/template.xml,1.12; wordml/wordml-final.xsl,1.11 - Steve
+Ball</p>
+</li><li class="listitem">
+<p>added
+callouts</p>
+<p class="commit-changes">Modified: wordml/docbook-pages.xsl,1.3; wordml/docbook.xsl,1.14;
+wordml/pages-normalise.xsl,1.3; wordml/specifications.xml,1.11;
+wordml/template-pages.xml,1.4; wordml/wordml-final.xsl,1.10 - Steve
+Ball</p>
+</li><li class="listitem">
+<p>added Word template
+file</p>
+<p class="commit-changes">Modified: wordml/template.dot,1.1 - Steve Ball</p>
+</li><li class="listitem">
+<p>added <a href="http://docbook.org/tdg5/en/html/abstract.html"><code class="sgmltag-element">abstract</code></a>, fixed
+<a href="http://docbook.org/tdg5/en/html/itemizedlist.html"><code class="sgmltag-element">itemizedlist</code></a>, ulink</p>
+<p class="commit-changes">Modified: wordml/specifications.xml,1.10;
+wordml/wordml-final.xsl,1.9 - Steve Ball</p>
+</li><li class="listitem">
+<p>fixed Makefile added many
+features to Pages support added <a href="http://docbook.org/tdg5/en/html/revhistory.html"><code class="sgmltag-element">revhistory</code></a>, inlines,
+highlights, <a href="http://docbook.org/tdg5/en/html/abstract.html"><code class="sgmltag-element">abstract</code></a></p>
+<p class="commit-changes">Modified: wordml/Makefile,1.2;
+wordml/docbook-pages.xsl,1.2; wordml/pages-normalise.xsl,1.2;
+wordml/sections-spec.xml,1.2; wordml/specifications.xml,1.9;
+wordml/template-pages.xml,1.3; wordml/template.xml,1.11;
+wordml/wordml-final.xsl,1.8; wordml/wordml-sections.xsl,1.2 - Steve
+Ball</p>
+</li><li class="listitem">
+<p>fixed handling linebreaks when
+generating WordML added Apple Pages
+support</p>
+<p class="commit-changes">Modified: wordml/docbook.xsl,1.13; wordml/template-pages.xml,1.2 -
+Steve Ball</p>
+</li></ul></div>
+</div>
+</div>
+
+  <div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1691"></a>Release 1.69.1</h2></div></div></div>
+    
+    <p>This release is a minor bug-fix update to the 1.69.0
+    release. Along with bug fixes, it includes one
+    configuration-parameter change: The default value of the
+    <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/annotation.support.html"><em class="parameter"><code>annotation.support</code></em></a> parameter is now
+    <code class="literal">0</code> (off). The reason for that change is that
+    there have been reports that <a href="http://docbook.org/tdg5/en/html/annotation.html"><code class="sgmltag-element">annotation</code></a> handling is
+    causing a significant performance degradation in processing of
+    large documents with <span class="command"><strong>xsltproc</strong></span>.</p>
+  </div>
+  
+
+  <div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1690"></a>Release 1.69.0</h2></div></div></div>
+    
+    <p>The release includes major feature changes,
+    particularly in the <a class="link" href="#V1690_MAN" title="man">manpages
+    stylesheets</a>, as well as a large number of bug fixes.</p>
+
+    <p>As with all DocBook Project <span class="quote">&#8220;<span class="quote">dot zero</span>&#8221;</span> releases, this is an
+    <a class="link" href="#dot0" title="About dot-zero releases">experimental release </a>.</p>
+   
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1690_COMMON"></a>Common</h3></div></div></div>
+      
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>This release adds localizations for the following
+          languages:
+            <span class="simplelist">Albanian, Amharic, Azerbaijani, Hindi, Irish (Gaelic), Gujarati, Kannada, Mongolian, Oriya, Punjabi, Tagalog, Tamil, and Welsh</span>.</p>
+        </li><li class="listitem">
+          <p>Added support for specifying number format for auto
+          labels for <a href="http://docbook.org/tdg5/en/html/chapter.html"><code class="sgmltag-element">chapter</code></a>, <a href="http://docbook.org/tdg5/en/html/appendix.html"><code class="sgmltag-element">appendix</code></a>,
+          <a href="http://docbook.org/tdg5/en/html/part.html"><code class="sgmltag-element">part</code></a>, and <a href="http://docbook.org/tdg5/en/html/preface.html"><code class="sgmltag-element">preface</code></a>. Contolled with the
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/appendix.autolabel.html"><em class="parameter"><code>appendix.autolabel</code></em></a>,
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/chapter.autolabel.html"><em class="parameter"><code>chapter.autolabel</code></em></a>,
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/part.autolabel.html"><em class="parameter"><code>part.autolabel</code></em></a>, and
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/preface.autolabel.html"><em class="parameter"><code>preface.autolabel</code></em></a> parameters.</p>
+        </li><li class="listitem">
+          <p>Added basic support for <a href="http://docbook.org/tdg5/en/html/biblioref.html"><code class="sgmltag-element">biblioref</code></a> cross
+          referencing.</p>
+        </li><li class="listitem">
+          <p>Added support for <code class="sgmltag-attribute">align</code>
+          on <a href="http://docbook.org/tdg5/en/html/caption.html"><code class="sgmltag-element">caption</code></a> in <a href="http://docbook.org/tdg5/en/html/mediaobject.html"><code class="sgmltag-element">mediaobject</code></a>.</p>
+        </li><li class="listitem">
+          <p>Added support for processing documents that use the
+          DocBook V5 namespace.</p>
+        </li><li class="listitem">
+          <p>Added support for <a href="http://docbook.org/tdg5/en/html/termdef.html"><code class="sgmltag-element">termdef</code></a> and
+          <a href="http://docbook.org/tdg5/en/html/mathphrase.html"><code class="sgmltag-element">mathphrase</code></a>.</p>
+        </li><li class="listitem">
+          <p>EXPERIMENTAL: Incorporated the Slides and Website
+          stylesheets into the DocBook XSL stylesheets package. So,
+          for example, Website documents can now be processed using
+          the following URI for the driver Website
+          <code class="filename">tabular.xsl</code> file: </p><pre class="literallayout"><code class="uri">http://docbook.sourceforge.net/release/xsl/current/website/tabular.xsl</code></pre>
+        </li><li class="listitem">
+          <p>A <a href="http://docbook.org/tdg5/en/html/procedure.html"><code class="sgmltag-element">procedure</code></a> without a <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> is
+          now treated as an <span class="quote">&#8220;<span class="quote">informal</span>&#8221;</span> procedure (meaning
+          that it is not added to any generated <span class="quote">&#8220;<span class="quote">list of
+          procedures</span>&#8221;</span> and has no affect on numbering of
+          generated labels for other procedures).</p>
+        </li><li class="listitem">
+          <p><code class="sgmltag-element">docname</code> is no longer added to
+          <a href="http://docbook.org/tdg5/en/html/olink.html"><code class="sgmltag-element">olink</code></a> when pointing to a root element.</p>
+        </li><li class="listitem">
+        <p>Added support for generation of choice separator in
+        inline simplelist. This enables auto-generation of an
+        appropriate localized <span class="quote">&#8220;<span class="quote">choice separator</span>&#8221;</span> (for
+        example, <span class="quote">&#8220;<span class="quote">and</span>&#8221;</span> or <span class="quote">&#8220;<span class="quote">or</span>&#8221;</span>) before the
+        final item in an inline <a href="http://docbook.org/tdg5/en/html/simplelist.html"><code class="sgmltag-element">simplelist</code></a>.</p>
+        <p>To indicate that you want a choice separator
+        generated for a particular list, you need to put a processing
+        instruction (PI) of the form
+        <code class="sgmltag-xmlpi">&lt;?dbchoice choice="foo"?&gt;</code> as a
+        child of the list. For example:
+        </p><pre class="literallayout">  &lt;para&gt;Choose from
+  ONE and ONLY ONE of the following: 
+  &lt;simplelist type="inline"&gt;
+  &lt;?dbchoice choice="or" ?&gt;
+  &lt;member&gt;A&lt;/member&gt;
+  &lt;member&gt;B&lt;/member&gt;
+  &lt;member&gt;C&lt;/member&gt;.&lt;/simplelist&gt;&lt;/para&gt;</pre><p>
+
+        Output (for English):
+        </p><div class="blockquote"><blockquote class="blockquote">
+          <p>Choose from ONE and only ONE of the
+          following choices: A, B, or C.</p>
+        </blockquote></div><p>
+        As a temporary workaround for the fact that most of the
+        DocBook non-English locale files don't have a localization for
+        the word <span class="quote">&#8220;<span class="quote">or</span>&#8221;</span>, you can put in a literal string to
+        be used; example for French: <code class="sgmltag-pi">&lt;?dbchoice choice="ou"&gt;</code>.  That is, use
+        <span class="quote">&#8220;<span class="quote">ou</span>&#8221;</span> instead of <span class="quote">&#8220;<span class="quote">or</span>&#8221;</span>.</p>
+      </li></ul></div>
+    </div>
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1690_FO"></a>FO</h3></div></div></div>
+      
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p> Added <code class="literal">content-type</code> property to
+          <code class="literal">external-graphic</code> element, based on
+          <a href="http://docbook.org/tdg5/en/html/imagedata.html"><code class="sgmltag-element">imagedata</code></a> <code class="sgmltag-attribute">format</code>
+          attribute.</p>
+        </li><li class="listitem">
+          <p>Added support for generating
+          <code class="literal">&lt;rx:meta-field creator="$VERSION"/&gt;</code>
+          field for XEP output. This makes the DocBook XSL
+          stylesheet version information available through the
+          <span class="guimenu">Document Properties</span> menu in Acrobat
+          Reader and other PDF viewers.</p>
+        </li><li class="listitem">
+          <p>Trademark symbol handling made consistent with
+          handling of same in HTML stylesheets. Prior to this change,
+          if you processed a document that contained no value for the
+          <code class="sgmltag-attribute">class</code> attribute on the
+          <a href="http://docbook.org/tdg5/en/html/trademark.html"><code class="sgmltag-element">trademark</code></a> element, the HTML stylesheets would
+          default to rendering a superscript <code class="literal">TM
+          </code>symbol after the <a href="http://docbook.org/tdg5/en/html/trademark.html"><code class="sgmltag-element">trademark</code></a> contents,
+          but the FO stylesheets would render nothing.</p>
+        </li><li class="listitem">
+          <p>Added support for generating XEP bookmarks for
+          <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a>.</p>
+        </li><li class="listitem">
+          <p>Added support for HTML markup <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> <code class="sgmltag-attribute">border</code> attribute, applied to each
+          table cell.</p>
+        </li><li class="listitem">
+          <p>The <code class="function">table.width</code> template can now
+          sum column specs if none use <code class="literal">%</code> or
+          <code class="literal">*</code>.</p>
+        </li><li class="listitem">
+          <p>Added <code class="literal">fox:destination</code> extension
+          inside <code class="literal">fox:outline</code> to support linking to
+          internal destinations.</p>
+        </li><li class="listitem">
+          <p>Added support for customizing
+          <code class="literal">abstract</code> with property sets. Controlled
+          with the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/abstract.properties.html"><em class="parameter"><code>abstract.properties</code></em></a> and
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/abstract.title.properties.html"><em class="parameter"><code>abstract.title.properties</code></em></a>
+          parameters.</p>
+        </li><li class="listitem">
+          <p>Add <a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a>s in <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> title to
+          table footnote set, and add support for table footnotes to
+          HTML table markup.</p>
+        </li><li class="listitem">
+          <p>Added support for <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> in
+          <a href="http://docbook.org/tdg5/en/html/glosslist.html"><code class="sgmltag-element">glosslist</code></a>.</p>
+        </li><li class="listitem">
+          <p>Added support for <a href="http://docbook.org/tdg5/en/html/itemizedlist.html"><code class="sgmltag-element">itemizedlist</code></a> symbol
+          <code class="literal">none</code>.</p>
+        </li><li class="listitem">
+          <p>Implemented the new
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/graphical.admonition.properties.html"><em class="parameter"><code>graphical.admonition.properties</code></em></a> and
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/nongraphical.admonition.properties.html"><em class="parameter"><code>nongraphical.admonition.properties</code></em></a>
+          attribute sets.</p>
+        </li><li class="listitem">
+          <p>Added <code class="sgmltag-attribute">id</code> to
+          <a href="http://docbook.org/tdg5/en/html/formalpara.html"><code class="sgmltag-element">formalpara</code></a> and some other blocks that were
+          missing it.</p>
+        </li><li class="listitem">
+          <p>Changed the anchor template to output
+          <code class="literal">fo:inline</code> instead of
+          <code class="literal">fo:wrapper</code>.</p>
+        </li><li class="listitem">
+          <p>Added support for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/toc.max.depth.html"><em class="parameter"><code>toc.max.depth</code></em></a>
+          parameter.</p>
+        </li></ul></div>
+    </div>
+    
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1690_HELP"></a>Help</h3></div></div></div>
+      
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>Eclipse Help: Added support for generating olink
+          database.</p>
+        </li></ul></div>
+    </div>
+
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1690_HTML"></a>HTML</h3></div></div></div>
+      
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>Added a first cut at support in HTML output for
+          DocBook 5 style <a href="http://docbook.org/tdg5/en/html/annotation.html"><code class="sgmltag-element">annotation</code></a>s. Controlled using the
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/annotation.support.html"><em class="parameter"><code>annotation.support</code></em></a> parameter, and
+          implemented using JavaScript and CSS styling. For more
+          details, see the documentation for the
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/annotation.js.html"><em class="parameter"><code>annotation.js</code></em></a>,
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/annotation.css.html"><em class="parameter"><code>annotation.css</code></em></a>,
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/annotation.graphic.open.html"><em class="parameter"><code>annotation.graphic.open</code></em></a>, and
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/annotation.graphic.close.html"><em class="parameter"><code>annotation.graphic.close</code></em></a>
+          parameters.</p>
+        </li><li class="listitem">
+          <p>Generate client-side image map for
+          <a href="http://docbook.org/tdg5/en/html/imageobjectco.html"><code class="sgmltag-element">imageobjectco</code></a> with areas using
+          <code class="literal">calspair</code> units</p>
+        </li><li class="listitem">
+          <p>Added support for <code class="sgmltag-xmlpi">&lt;?img.src.path?&gt;</code> PI.</p>
+        </li><li class="listitem">
+          <p>Added support for passing
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/img.src.path.html"><em class="parameter"><code>img.src.path</code></em></a> to DocBook Java XSLT
+          image extensions when appropriate. Controlled using the
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/graphicsize.use.img.src.path.html"><em class="parameter"><code>graphicsize.use.img.src.path</code></em></a>
+          parameter.</p>
+        </li><li class="listitem">
+          <p>Added support for (not
+          valid for DocBook 4) <code class="sgmltag-attribute">xlink:href</code>
+          on <a href="http://docbook.org/tdg5/en/html/area.html"><code class="sgmltag-element">area</code></a> and (not valid for DocBook 4)
+          <a href="http://docbook.org/tdg5/en/html/alt.html"><code class="sgmltag-element">alt</code></a> in <a href="http://docbook.org/tdg5/en/html/area.html"><code class="sgmltag-element">area</code></a>.</p>
+        </li><li class="listitem">
+          <p>Added new parameter
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/default.table.frame.html"><em class="parameter"><code>default.table.frame</code></em></a> to control table
+          framing if there is no <code class="sgmltag-attribute">frame</code>
+          attribute on a table.</p>
+        </li><li class="listitem">
+          <p>Added initial, experimental support for generating
+          content for the HTML <code class="literal">title</code> attribute from
+          content of the <a href="http://docbook.org/tdg5/en/html/alt.html"><code class="sgmltag-element">alt</code></a> element. This change adds
+          support for the following inline elements only (none of them
+          are block elements):
+          <span class="simplelist"><a href="http://docbook.org/tdg5/en/html/abbrev.html"><code class="sgmltag-element">abbrev</code></a>, <a href="http://docbook.org/tdg5/en/html/accel.html"><code class="sgmltag-element">accel</code></a>, <a href="http://docbook.org/tdg5/en/html/acronym.html"><code class="sgmltag-element">acronym</code></a>, <code class="sgmltag-element">action</code>, <a href="http://docbook.org/tdg5/en/html/application.html"><code class="sgmltag-element">application</code></a>, <a href="http://docbook.org/tdg5/en/html/authorinitials.html"><code class="sgmltag-element">authorinitials</code></a>, <code class="sgmltag-element">beginpage</code>, <a href="http://docbook.org/tdg5/en/html/citation.html"><code class="sgmltag-element">citation</code></a>, <a href="http://docbook.org/tdg5/en/html/citerefentry.html"><code class="sgmltag-element">citerefentry</code></a>, <a href="http://docbook.org/tdg5/en/html/citetitle.html"><code class="sgmltag-element">citetitle</code></a>, <a href="http://docbook.org/tdg5/en/html/city.html"><code class="sgmltag-element">city</code></a>, <a href="http://docbook.org/tdg5/en/html/classname.html"><code class="sgmltag-element">classname</code></a>, <a href="http://docbook.org/tdg5/en/html/code.html"><code class="sgmltag-element">code</code></a>, <a href="http://docbook.org/tdg5/en/html/command.html"><code class="sgmltag-element">command</code></a>, <a href="http://docbook.org/tdg5/en/html/computeroutput.html"><code class="sgmltag-element">computeroutput</code></a>, <a href="http://docbook.org/tdg5/en/html/constant.html"><code class="sgmltag-element">constant</code></a>, <a href="http://docbook.org/tdg5/en/html/country.html"><code class="sgmltag-element">country</code></a>, <a href="http://docbook.org/tdg5/en/html/database.html"><code class="sgmltag-element">database</code></a>, <a href="http://docbook.org/tdg5/en/html/email.html"><code class="sgmltag-element">email</code></a>, <a href="http://docbook.org/tdg5/en/html/envar.html"><code class="sgmltag-element">envar</code></a>, <a href="http://docbook.org/tdg5/en/html/errorcode.html"><code class="sgmltag-element">errorcode</code></a>, <a href="http://docbook.org/tdg5/en/html/errorname.html"><code class="sgmltag-element">errorname</code></a>, <a href="http://docbook.org/tdg5/en/html/errortext.html"><code class="sgmltag-element">errortext</code></a>, <a href="http://docbook.org/tdg5/en/html/errortype.html"><code class="sgmltag-element">errortype</code></a>, <a href="http://docbook.org/tdg5/en/html/exceptionname.html"><code class="sgmltag-element">exceptionname</code></a>, <a href="http://docbook.org/tdg5/en/html/fax.html"><code class="sgmltag-element">fax</code></a>, <a href="http://docbook.org/tdg5/en/html/filename.html"><code class="sgmltag-element">filename</code></a>, <a href="http://docbook.org/tdg5/en/html/firstname.html"><code class="sgmltag-element">firstname</code></a>, <a href="http://docbook.org/tdg5/en/html/firstterm.html"><code class="sgmltag-element">firstterm</code></a>, <a href="http://docbook.org/tdg5/en/html/foreignphrase.html"><code class="sgmltag-element">foreignphrase</code></a>, <a href="http://docbook.org/tdg5/en/html/function.html"><code class="sgmltag-element">function</code></a>, <a href="http://docbook.org/tdg5/en/html/glossterm.html"><code class="sgmltag-element">glossterm</code></a>, <a href="http://docbook.org/tdg5/en/html/guibutton.html"><code class="sgmltag-element">guibutton</code></a>, <a href="http://docbook.org/tdg5/en/html/guiicon.html"><code class="sgmltag-element">guiicon</code></a>, <a href="http://docbook.org/tdg5/en/html/guilabel.html"><code class="sgmltag-element">guilabel</code></a>, <a href="http://docbook.org/tdg5/en/html/guimenu.html"><code class="sgmltag-element">guimenu</code></a>, <a href="http://docbook.org/tdg5/en/html/guimenuitem.html"><code class="sgmltag-element">guimenuitem</code></a>, <a href="http://docbook.org/tdg5/en/html/guisubmenu.html"><code class="sgmltag-element">guisubmenu</code></a>, <a href="http://docbook.org/tdg5/en/html/hardware.html"><code class="sgmltag-element">hardware</code></a>, <a href="http://docbook.org/tdg5/en/html/honorific.html"><code class="sgmltag-element">honorific</code></a>, <code class="sgmltag-element">interface</code>, <a href="http://docbook.org/tdg5/en/html/interfacename.html"><code class="sgmltag-element">interfacename</code></a>, <a href="http://docbook.org/tdg5/en/html/keycap.html"><code class="sgmltag-element">keycap</code></a>, <a href="http://docbook.org/tdg5/en/html/keycode.html"><code class="sgmltag-element">keycode</code></a>, <a href="http://docbook.org/tdg5/en/html/keysym.html"><code class="sgmltag-element">keysym</code></a>, <a href="http://docbook.org/tdg5/en/html/lineage.html"><code class="sgmltag-element">lineage</code></a>, <a href="http://docbook.org/tdg5/en/html/lineannotation.html"><code class="sgmltag-element">lineannotation</code></a>, <a href="http://docbook.org/tdg5/en/html/literal.html"><code class="sgmltag-element">literal</code></a>, <a href="http://docbook.org/tdg5/en/html/markup.html"><code class="sgmltag-element">markup</code></a>, <code class="sgmltag-element">medialabel</code>, <a href="http://docbook.org/tdg5/en/html/methodname.html"><code class="sgmltag-element">methodname</code></a>, <a href="http://docbook.org/tdg5/en/html/mousebutton.html"><code class="sgmltag-element">mousebutton</code></a>, <a href="http://docbook.org/tdg5/en/html/option.html"><code class="sgmltag-element">option</code></a>, <a href="http://docbook.org/tdg5/en/html/optional.html"><code class="sgmltag-element">optional</code></a>, <a href="http://docbook.org/tdg5/en/html/otheraddr.html"><code class="sgmltag-element">otheraddr</code></a>, <a href="http://docbook.org/tdg5/en/html/othername.html"><code class="sgmltag-element">othername</code></a>, <a href="http://docbook.org/tdg5/en/html/package.html"><code class="sgmltag-element">package</code></a>, <a href="http://docbook.org/tdg5/en/html/parameter.html"><code class="sgmltag-element">parameter</code></a>, <a href="http://docbook.org/tdg5/en/html/personname.html"><code class="sgmltag-element">personname</code></a>, <a href="http://docbook.org/tdg5/en/html/phone.html"><code class="sgmltag-element">phone</code></a>, <a href="http://docbook.org/tdg5/en/html/pob.html"><code class="sgmltag-element">pob</code></a>, <a href="http://docbook.org/tdg5/en/html/postcode.html"><code class="sgmltag-element">postcode</code></a>, <a href="http://docbook.org/tdg5/en/html/productname.html"><code class="sgmltag-element">productname</code></a>, <a href="http://docbook.org/tdg5/en/html/productnumber.html"><code class="sgmltag-element">productnumber</code></a>, <a href="http://docbook.org/tdg5/en/html/prompt.html"><code class="sgmltag-element">prompt</code></a>, <a href="http://docbook.org/tdg5/en/html/property.html"><code class="sgmltag-element">property</code></a>, <a href="http://docbook.org/tdg5/en/html/quote.html"><code class="sgmltag-element">quote</code></a>, <a href="http://docbook.org/tdg5/en/html/refentrytitle.html"><code class="sgmltag-element">refentrytitle</code></a>, <a href="http://docbook.org/tdg5/en/html/remark.html"><code class="sgmltag-element">remark</code></a>, <a href="http://docbook.org/tdg5/en/html/replaceable.html"><code class="sgmltag-element">replaceable</code></a>, <a href="http://docbook.org/tdg5/en/html/returnvalue.html"><code class="sgmltag-element">returnvalue</code></a>, <a href="http://docbook.org/tdg5/en/html/tag.html"><code class="sgmltag-element">tag</code></a>, <a href="http://docbook.org/tdg5/en/html/shortcut.html"><code class="sgmltag-element">shortcut</code></a>, <a href="http://docbook.org/tdg5/en/html/state.html"><code class="sgmltag-element">state</code></a>, <a href="http://docbook.org/tdg5/en/html/street.html"><code class="sgmltag-element">street</code></a>, <code class="sgmltag-element">structfield</code>, <code class="sgmltag-element">structname</code>, <a href="http://docbook.org/tdg5/en/html/subscript.html"><code class="sgmltag-element">subscript</code></a>, <a href="http://docbook.org/tdg5/en/html/superscript.html"><code class="sgmltag-element">superscript</code></a>, <a href="http://docbook.org/tdg5/en/html/surname.html"><code class="sgmltag-element">surname</code></a>, <a href="http://docbook.org/tdg5/en/html/symbol.html"><code class="sgmltag-element">symbol</code></a>, <a href="http://docbook.org/tdg5/en/html/systemitem.html"><code class="sgmltag-element">systemitem</code></a>, <a href="http://docbook.org/tdg5/en/html/tag.html"><code class="sgmltag-element">tag</code></a>, <a href="http://docbook.org/tdg5/en/html/termdef.html"><code class="sgmltag-element">termdef</code></a>, <a href="http://docbook.org/tdg5/en/html/token.html"><code class="sgmltag-element">token</code></a>, <a href="http://docbook.org/tdg5/en/html/trademark.html"><code class="sgmltag-element">trademark</code></a>, <a href="http://docbook.org/tdg5/en/html/type.html"><code class="sgmltag-element">type</code></a>, <a href="http://docbook.org/tdg5/en/html/uri.html"><code class="sgmltag-element">uri</code></a>, <a href="http://docbook.org/tdg5/en/html/userinput.html"><code class="sgmltag-element">userinput</code></a>, <a href="http://docbook.org/tdg5/en/html/varname.html"><code class="sgmltag-element">varname</code></a>, and <a href="http://docbook.org/tdg5/en/html/wordasword.html"><code class="sgmltag-element">wordasword</code></a></span>
+        </p>
+        </li><li class="listitem">
+          <p>Added support for chunking <a href="http://docbook.org/tdg5/en/html/revhistory.html"><code class="sgmltag-element">revhistory</code></a> into
+          separate file (similar to the support for doing same with
+          <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a>). Patch from Thomas
+          Schraitle. Controlled through <em class="parameter"><code>new
+          generate.revhistory.link</code></em> parameter.</p>
+        </li><li class="listitem">
+          <p>l10n.xsl: Made language codes RFC compliant. Added a
+          new boolean config parameter,
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/l10n.lang.value.rfc.compliant.html"><em class="parameter"><code>l10n.lang.value.rfc.compliant</code></em></a>. If it
+          is non-zero (the default), any underscore in a language code
+          will be converted to a hyphen in HTML output. If it is zero,
+          the language code will be left as-is.</p>
+        </li></ul></div>
+    </div>
+    <div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="V1690_MAN"></a>man</h3></div></div></div>
+      
+      <p>This release closes out 44 manpages stylesheet bug reports
+      and feature requests. It adds more than 35 new configuration
+      parameters for controlling aspects of man-page output --
+      including hyphenation and justification, handling of links,
+      conversion of Unicode characters, and contents of man-page
+      headers and footers.</p>
+      <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>New options for globally disabling/enabling
+          hyphenation and justification:
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.justify.html"><em class="parameter"><code>man.justify</code></em></a> and
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.hyphenate.html"><em class="parameter"><code>man.hyphenate</code></em></a>.</p>
+          <p>Note that the default
+          for the both of those is zero (off), because justified text
+          looks good only when it is also hyphenated; to quote the
+          <span class="quote">&#8220;<span class="quote">Hyphenation</span>&#8221;</span> node from the groff info page:
+          </p><div class="blockquote"><blockquote class="blockquote">
+            <p><span class="emphasis"><em>Since the odds are not great for finding a
+            set of words, for every output line, which fit nicely on a
+            line without inserting excessive amounts of space between
+            words, `gtroff' hyphenates words so that it can justify
+            lines without inserting too much space between
+            words.</em></span></p>
+          </blockquote></div><p>
+          The problem is that groff can end up hyphenating a lot of
+          things that you don't want hyphenated (variable names and
+          command names, for example). Keeping both justification and
+          hyphenation disabled ensures that hyphens won't get inserted
+          where you don't want to them, and you don't end up with
+          lines containing excessive amounts of space between
+          words. These default settings run counter to how most
+          existing man pages are formatted. But there are some notable
+          exceptions, such as the perl man pages.</p>
+        </li><li class="listitem">
+          <p> Added parameters for controlling hyphenation of
+          computer inlines, filenames, and URLs. By default, even when
+          hyphenation is enabled (globally), hyphenation is now
+          suppressed for "computer inlines" (currently, just
+          <a href="http://docbook.org/tdg5/en/html/classname.html"><code class="sgmltag-element">classname</code></a>, <a href="http://docbook.org/tdg5/en/html/constant.html"><code class="sgmltag-element">constant</code></a>, <a href="http://docbook.org/tdg5/en/html/envar.html"><code class="sgmltag-element">envar</code></a>,
+          <a href="http://docbook.org/tdg5/en/html/errorcode.html"><code class="sgmltag-element">errorcode</code></a>, <a href="http://docbook.org/tdg5/en/html/option.html"><code class="sgmltag-element">option</code></a>,
+          <a href="http://docbook.org/tdg5/en/html/replaceable.html"><code class="sgmltag-element">replaceable</code></a>, <a href="http://docbook.org/tdg5/en/html/userinput.html"><code class="sgmltag-element">userinput</code></a>,
+          <a href="http://docbook.org/tdg5/en/html/type.html"><code class="sgmltag-element">type</code></a>, and <a href="http://docbook.org/tdg5/en/html/varname.html"><code class="sgmltag-element">varname</code></a>, and for
+          <code class="sgmltag-element">filenames</code>, and for URLs from <a href="http://docbook.org/tdg5/en/html/link.html"><code class="sgmltag-element">link</code></a>. It
+          can be (re)enabled using the
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.hyphenate.computer.inlines.html"><em class="parameter"><code>man.hyphenate.computer.inlines</code></em></a>,
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.hyphenate.filenames.html"><em class="parameter"><code>man.hyphenate.filenames</code></em></a>, and
+          <em class="parameter"><code>man.hyphenate.urls parameters</code></em>.</p>
+        </li><li class="listitem">
+          <p>Implemented a new system for replacing Unicode
+          characters. There are two parts to the new system: a
+          <span class="quote">&#8220;<span class="quote">string substitution map</span>&#8221;</span> for doing
+          <span class="quote">&#8220;<span class="quote">essential</span>&#8221;</span> replacements, and a
+          <span class="quote">&#8220;<span class="quote">character map</span>&#8221;</span> that can optionally be disabled
+          and enabled.</p>
+          <p>The new system fixes all open bugs that had to do with
+          literal Unicode numbered entities such as &amp;#8220; and
+          &amp;#8221; showing up in output, and greatly expands the
+          ability of the stylesheets to generate <span class="quote">&#8220;<span class="quote">good</span>&#8221;</span> roff
+          equivalents for Unicode symbols and special
+          characters.</p>
+          <p>Here are some details...</p>
+          <p>The previous manpages mechanism for replacing Unicode
+          symbols and special characters with roff equivalents (the
+          <code class="function">replace-entities</code> template) was not
+          scalable and not complete. The mechanism handled a somewhat
+          arbitrary selection of less than 20 or so Unicode
+          characters. But there are potentially more than
+          <span class="emphasis"><em>800</em></span> Unicode special characters that
+          have some groff equivalent they can be mapped to. And there
+          are about 34 symbols in the Latin-1 (ISO-8859-1) block
+          alone. Users might reasonably expect that if they include
+          any of those Latin-1 characters in their DocBook source
+          documents, they will get correctly converted to known roff
+          equivalents in output.</p>
+          <p>In addition to those common symbols, certain users may
+          have a need to use symbols from other Unicode blocks. Say,
+          somebody who is documenting an application related to math
+          might need to use a bunch of symbols from the
+          <span class="quote">&#8220;<span class="quote">Mathematical Operators</span>&#8221;</span> Unicode block (there
+          are about 65 characters in that block that have reasonable
+          roff equivalents). Or somebody else might really like
+          Dingbats -- such as the checkmark character -- and so might
+          use a bunch of things from the <span class="quote">&#8220;<span class="quote">Dingbat</span>&#8221;</span> block
+          (141 characters in that that have roff equivalents or that
+          can at least be <span class="quote">&#8220;<span class="quote">degraded</span>&#8221;</span> somewhat gracefully
+          into roff).</p>
+          <p>So, the old <code class="function">replace-entities</code>
+          mechanism was replaced with a completely different mechanism
+          that is based on use of two <span class="quote">&#8220;<span class="quote">maps</span>&#8221;</span>: a
+          <span class="quote">&#8220;<span class="quote">substitution map</span>&#8221;</span> and a <span class="quote">&#8220;<span class="quote">character
+          map</span>&#8221;</span> (the latter in a format compliant with the XSLT
+          2.0 spec and therefore completely <span class="quote">&#8220;<span class="quote">forward
+          compatible</span>&#8221;</span> with XSLT 2.0).</p>
+          <p>The substitution map is controlled through the
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.string.subst.map.html"><em class="parameter"><code>man.string.subst.map</code></em></a> parameter, and
+          is used to replace things like the backslash character
+          (which needs special handling to prevent it from being
+          interpreted as a roff escape). The substitution map cannot
+          be disabled, because disabling it will cause the output to
+          be broken. However, you can add to it and change it if
+          needed.</p>
+
+          <p>The <span class="quote">&#8220;<span class="quote">character map</span>&#8221;</span> mechanism, on the
+          other hand, can be completely disabled. It is enabled by
+          default, and, by default, does replacement of all Latin-1
+          symbols, along with most special spaces, dashes, and quotes
+          (about 75 characters by default). Also, you can optionally
+          enable a <span class="quote">&#8220;<span class="quote">full</span>&#8221;</span> character map that provides
+          support for converting all 800 or so of the characters that
+          have some reasonable groff equivalent.</p>
+
+          <p>The character-map mechanism is controlled through the
+          following parameters:
+          </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.charmap.enabled.html"><em class="parameter"><code>man.charmap.enabled</code></em></a></span></dt><dd><p>turns character-map support
+              on/off</p></dd><dt><span class="term"><a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.charmap.use.subset.html"><em class="parameter"><code>man.charmap.use.subset</code></em></a></span></dt><dd><p>specifies that a subset of the character
+              map is used instead of the full map</p></dd><dt><span class="term"><a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.charmap.subset.profile.html"><em class="parameter"><code>man.charmap.subset.profile</code></em></a></span></dt><dd><p>specifies profile of character-map
+              subset</p></dd><dt><span class="term"><a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.charmap.uri.html"><em class="parameter"><code>man.charmap.uri</code></em></a></span></dt><dd><p>specifies an alternate character map to
+              use instead of the <span class="quote">&#8220;<span class="quote">standard</span>&#8221;</span> character map
+              provided in the distribution</p></dd></dl></div><p>
+          </p>
+        </li><li class="listitem">
+          <p>Implemented out-of-line handling of display of URLs
+          for links (currently, only for <code class="sgmltag-element">ulink</code>). This gives
+          you three choices for handling of links:
+          </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
+              <p>Number and list links. Each link is numbered
+              inline, with a number in square brackets preceding the
+              link contents, and a numbered list of all links is added
+              to the end of the document.</p>
+            </li><li class="listitem">
+              <p>Only list links. Links are not numbered, but an
+              (unnumbered) list of links is added to the end of the
+              document.</p>
+            </li><li class="listitem">
+              <p>Suppress links. Don't number links and don't add
+              any list of links to the end of the document.</p>
+            </li></ol></div><p>
+          You can also choose whether links should be underlined. The
+          default is <span class="quote">&#8220;<span class="quote">the works</span>&#8221;</span> -- list, number, and
+          underline links. You can use the
+          <em class="parameter"><code>man.links.list.enabled</code></em>, <em class="parameter"><code>
+          man.links.are.numbered</code></em>, and
+          <em class="parameter"><code>man.links.are.underlined</code></em> parameters
+          to change the defaults. The default heading for the link
+          list is REFERENCES. You can be change that using the
+          <em class="parameter"><code>man.links.list.heading</code></em>
+          parameter.</p>
+        </li><li class="listitem">
+          <p>Changed default output encoding to UTF-8. <span class="bold"><strong>This does not mean that man pages are output in
+          raw UTF-8</strong></span>, because the character map is applied
+          before final output, causing all UTF-8 characters covered in
+          the map to be converted to roff equivalents.</p>
+        </li><li class="listitem">
+          <p>Added support for processing <a href="http://docbook.org/tdg5/en/html/refsect3.html"><code class="sgmltag-element">refsect3</code></a> and
+          <a href="http://docbook.org/tdg5/en/html/formalpara.html"><code class="sgmltag-element">formalpara</code></a> and nested <a href="http://docbook.org/tdg5/en/html/refsection.html"><code class="sgmltag-element">refsection</code></a>
+          elements, down to any arbitrary level of nesting.</p>
+        </li><li class="listitem">
+          <p>Output of the <code class="literal">NAME</code> and
+          <code class="literal">SYNOPSIS</code> and <code class="literal">AUTHOR</code>
+          headings and the headings for admonitions (<a href="http://docbook.org/tdg5/en/html/note.html"><code class="sgmltag-element">note</code></a>,
+          <a href="http://docbook.org/tdg5/en/html/caution.html"><code class="sgmltag-element">caution</code></a>, etc.) are no longer hard-coded for
+          English. Instead, headings are generated for those in the
+          correct locale (just as the FO and HTML stylesheets
+          do).</p>
+        </li><li class="listitem">
+          <p>Re-worked mechanism for assembling page
+          headers/footers (the contents of the <code class="literal">.TH</code>
+          macro <span class="quote">&#8220;<span class="quote">title line</span>&#8221;</span>).</p>
+
+          <p>Here are some details...</p>
+
+          <p>All man pages contain a <code class="literal">.TH</code> roff
+          macro whose contents are used for rendering the <span class="quote">&#8220;<span class="quote">title
+          line</span>&#8221;</span> displayed in the header and footer of each
+          page. Here are a couple of examples of real-world man pages
+          that have useful page headers/footers: </p><pre class="literallayout">
+  gtk-options(7)    GTK+ User's Manual   gtk-options(7) &lt;-- header
+  GTK+ 1.2              2003-10-20       gtk-options(7) &lt;-- footer
+
+  svgalib(7)       Svgalib User Manual       svgalib(7) &lt;-- header
+  Svgalib 1.4.1      16 December 1999        svgalib(7) &lt;-- footer</pre>
+
+          <p>And here are the terms with which the
+          <code class="literal">groff_man(7)</code> man page refers to the
+          various parts of the header/footer: </p><pre class="literallayout">
+  title(section)  extra3  title(section)  &lt;- header
+  extra2          extra1  title(section)  &lt;- footer</pre>
+  <p> Or, using the names with which the <code class="literal">man(7)</code>
+   man page refers to those same fields: </p><pre class="literallayout">
+  title(section)  manual  title(section)  &lt;- page header
+  source          date    title(section)  &lt;- page footer</pre>
+  
+            <p>The easiest way to control the contents of those
+            fields is to mark up your <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> content like
+            the following (note that this is a <span class="quote">&#8220;<span class="quote">minimal</span>&#8221;</span>
+            example). </p><pre class="programlisting">
+  &lt;refentry&gt;
+    &lt;info&gt;
+      &lt;date&gt;2003-10-20&lt;/date&gt; <a class="co" name="V1690_date-co" href="#V1690_date"><span><img src="images/callouts/1.png" alt="1" border="0"></span></a>
+    &lt;/info&gt;
+    &lt;refmeta&gt;
+      &lt;refentrytitle&gt;gtk-options&lt;/refentrytitle&gt; <a class="co" name="V1690_title-co" href="#V1690_title"><span><img src="images/callouts/2.png" alt="2" border="0"></span></a>
+      &lt;manvolnum&gt;7&lt;/manvolnum&gt; <a class="co" name="V1690_manvolnum-co" href="#V1690_manvolnum"><span><img src="images/callouts/3.png" alt="3" border="0"></span></a>
+      &lt;refmiscinfo class="source-name"&gt;GTK+&lt;/refmiscinfo&gt; <a class="co" name="V1690_source-name-co" href="#V1690_source-name"><span><img src="images/callouts/4.png" alt="4" border="0"></span></a>
+      &lt;refmiscinfo class="version"&gt;1.2&lt;/refmiscinfo&gt; <a class="co" name="V1690_version-co" href="#V1690_version"><span><img src="images/callouts/5.png" alt="5" border="0"></span></a>
+      &lt;refmiscinfo class="manual"&gt;GTK+ User's Manual&lt;/refmiscinfo&gt; <a class="co" name="V1690_manual-co" href="#V1690_manual"><span><img src="images/callouts/6.png" alt="6" border="0"></span></a>
+    &lt;/refmeta&gt;
+    &lt;refnamediv&gt;
+      &lt;refname&gt;gtk-options&lt;/refname&gt;
+      &lt;refpurpose&gt;Standard Command Line Options for GTK+ Programs&lt;/refpurpose&gt;
+    &lt;/refnamediv&gt;
+    &lt;refsect1&gt;
+      &lt;title&gt;Description&lt;/title&gt;
+      &lt;para&gt;This manual page describes the command line options, which
+      are common to all GTK+ based applications.&lt;/para&gt;
+    &lt;/refsect1&gt;
+  &lt;/refentry&gt;</pre><p>
+  </p><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><p><a name="V1690_date"></a><a href="#V1690_date-co"><span><img src="images/callouts/1.png" alt="1" border="0"></span></a> </p></td><td valign="top" align="left">
+      <p>Sets the <span class="quote">&#8220;<span class="quote">date</span>&#8221;</span> part of the header/footer.</p>
+    </td></tr><tr><td width="5%" valign="top" align="left"><p><a name="V1690_title"></a><a href="#V1690_title-co"><span><img src="images/callouts/2.png" alt="2" border="0"></span></a> </p></td><td valign="top" align="left">
+      <p>Sets the <span class="quote">&#8220;<span class="quote">title</span>&#8221;</span> part.</p>
+    </td></tr><tr><td width="5%" valign="top" align="left"><p><a name="V1690_manvolnum"></a><a href="#V1690_manvolnum-co"><span><img src="images/callouts/3.png" alt="3" border="0"></span></a> </p></td><td valign="top" align="left">
+      <p>Sets the <span class="quote">&#8220;<span class="quote">section</span>&#8221;</span> part.</p>
+    </td></tr><tr><td width="5%" valign="top" align="left"><p><a name="V1690_source-name"></a><a href="#V1690_source-name-co"><span><img src="images/callouts/4.png" alt="4" border="0"></span></a> </p></td><td valign="top" align="left">
+      <p>Sets the <span class="quote">&#8220;<span class="quote">source name</span>&#8221;</span> part.</p>
+    </td></tr><tr><td width="5%" valign="top" align="left"><p><a name="V1690_version"></a><a href="#V1690_version-co"><span><img src="images/callouts/5.png" alt="5" border="0"></span></a> </p></td><td valign="top" align="left">
+      <p>Sets the <span class="quote">&#8220;<span class="quote">version</span>&#8221;</span> part.</p>
+    </td></tr><tr><td width="5%" valign="top" align="left"><p><a name="V1690_manual"></a><a href="#V1690_manual-co"><span><img src="images/callouts/6.png" alt="6" border="0"></span></a> </p></td><td valign="top" align="left">
+      <p>Sets the <span class="quote">&#8220;<span class="quote">manual</span>&#8221;</span> part.</p>
+    </td></tr></table></div><p>
+            </p>
+            <p>Below are explanations of the steps the stylesheets
+            take to attempt to assemble and display
+            <span class="quote">&#8220;<span class="quote">good</span>&#8221;</span> headers and footer. [In the
+            descriptions, note that <em class="replaceable"><code>*info</code></em>
+            is the <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> <span class="quote">&#8220;<span class="quote">info</span>&#8221;</span> child
+            (whatever its name), and
+            <em class="replaceable"><code>parentinfo</code></em> is the
+            <span class="quote">&#8220;<span class="quote">info</span>&#8221;</span> child of its parent (again, whatever
+            its name).]
+          </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">extra1 field (date)</span></dt><dd>
+                <p>Content of the <span class="quote">&#8220;<span class="quote">extra1</span>&#8221;</span> field is
+                what shows up in the <span class="bold"><strong>center
+                footer</strong></span> position of each page. The
+                <code class="literal">man(7)</code> man page describes it as
+                <span class="quote">&#8220;<span class="quote">the date of the last revision</span>&#8221;</span>.</p>
+                <p>To provide this content, if the
+                <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/refentry.date.profile.enabled.html"><em class="parameter"><code>refentry.date.profile.enabled</code></em></a>
+                is non-zero, the stylesheets check the value of
+                <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/refentry.date.profile.html"><em class="parameter"><code>refentry.date.profile</code></em></a>.</p>
+                <p>Otherwise, by default, they check for a
+                <a href="http://docbook.org/tdg5/en/html/date.html"><code class="sgmltag-element">date</code></a> or <a href="http://docbook.org/tdg5/en/html/pubdate.html"><code class="sgmltag-element">pubdate</code></a> not only in the
+                <em class="replaceable"><code>*info</code></em> contents, but also in
+                the <em class="replaceable"><code>parentinfo</code></em>
+                contents.</p>
+                <p>If a date cannot be found, the stylesheets now
+                automatically generate a localized <span class="quote">&#8220;<span class="quote">long
+                format</span>&#8221;</span> date, ensuring that this field always
+                has content in output.</p>
+                <p>However, if for some reason you want to suppress
+                this field, you can do so by setting a non-zero value
+                for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.th.extra1.suppress.html"><em class="parameter"><code>man.th.extra1.suppress</code></em></a>.</p>
+              </dd><dt><span class="term">extra2 field (source)</span></dt><dd>
+                <p>On Linux systems and on systems with a modern
+                groff, the content of the <span class="quote">&#8220;<span class="quote">extra2</span>&#8221;</span> field
+                are what shows up in the <span class="bold"><strong>left
+                footer</strong></span> position of each page.</p>
+
+                <p>The <code class="literal">man(7)</code> man page describes
+                this as <span class="quote">&#8220;<span class="quote">the source of the command</span>&#8221;</span>, and
+                provides the following examples:
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
+                    <p>For binaries, use somwething like: GNU,
+                    NET-2, SLS Distribution, MCC Distribution.</p>
+                  </li><li class="listitem">
+                    <p>For system calls, use the version of the
+                    kernel that you are currently looking at: Linux
+                    0.99.11.</p>
+                  </li><li class="listitem">
+                    <p>For library calls, use the source of the
+                    function: GNU, BSD 4.3, Linux DLL 4.4.1.</p>
+                  </li></ul></div><p>
+                </p>
+
+                <p>In practice, there are many pages that simply
+                have a version number in the <span class="quote">&#8220;<span class="quote">source</span>&#8221;</span>
+                field. So, it looks like what we have is a two-part
+                field,
+                <em class="replaceable"><code>Name</code></em> <em class="replaceable"><code>Version</code></em>,
+                where:
+                </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Name</span></dt><dd>
+                      <p>product name (e.g., BSD) or org. name
+                      (e.g., GNU)</p>
+                    </dd><dt><span class="term">Version</span></dt><dd>
+                      <p>version name</p>
+                    </dd></dl></div><p>
+                Each part is optional. If the
+                <em class="replaceable"><code>Name</code></em> is a product name,
+                then the <em class="replaceable"><code>Version</code></em> is
+                probably the version of the product. Or there may be
+                no <em class="replaceable"><code>Name</code></em>, in which case, if
+                there is a <em class="replaceable"><code>Version</code></em>, it is
+                probably the version of the item itself, not the
+                product it is part of. Or, if the
+                <em class="replaceable"><code>Name</code></em> is an organization
+                name, then there probably will be no
+                <em class="replaceable"><code>Version</code></em>.
+                </p>
+                <p>To provide this content, if the
+                <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/refentry.source.name.profile.enabled.html"><em class="parameter"><code>refentry.source.name.profile.enabled</code></em></a>
+                and
+                <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/refentry.version.profile.enabled.html"><em class="parameter"><code>refentry.version.profile.enabled</code></em></a>
+                parameter are non-zero, the stylesheets check the
+                value of <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/refentry.source.name.profile.html"><em class="parameter"><code>refentry.source.name.profile</code></em></a>
+                <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/refentry.version.profile.html"><em class="parameter"><code>refentry.version.profile</code></em></a>.</p>
+
+                <p>Otherwise, by default, they check the following
+                places, in the following order:
+                </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
+                    <pre class="literallayout"><em class="replaceable"><code>*info</code></em>/<a href="http://docbook.org/tdg5/en/html/productnumber.html"><code class="sgmltag-element">productnumber</code></a></pre>
+                  </li><li class="listitem">
+                    <pre class="literallayout"><em class="replaceable"><code>*info</code></em>/<a href="http://docbook.org/tdg5/en/html/productnumber.html"><code class="sgmltag-element">productnumber</code></a></pre>
+                  </li><li class="listitem">
+                    <pre class="literallayout"><a href="http://docbook.org/tdg5/en/html/refmeta.html"><code class="sgmltag-element">refmeta</code></a>/<a href="http://docbook.org/tdg5/en/html/refmiscinfo.html"><code class="sgmltag-element">refmiscinfo</code></a>[@class = 'version']</pre>
+                  </li><li class="listitem">
+                    <pre class="literallayout"><em class="replaceable"><code>parentinfo</code></em>/<a href="http://docbook.org/tdg5/en/html/productnumber.html"><code class="sgmltag-element">productnumber</code></a></pre>
+                  </li><li class="listitem">
+                    <pre class="literallayout"><em class="replaceable"><code>*info</code></em>/<a href="http://docbook.org/tdg5/en/html/productname.html"><code class="sgmltag-element">productname</code></a></pre>
+                  </li><li class="listitem">
+                    <pre class="literallayout"><em class="replaceable"><code>parentinfo</code></em>/<a href="http://docbook.org/tdg5/en/html/productname.html"><code class="sgmltag-element">productname</code></a></pre>
+                  </li><li class="listitem">
+                    <pre class="literallayout"><a href="http://docbook.org/tdg5/en/html/refmeta.html"><code class="sgmltag-element">refmeta</code></a>/<a href="http://docbook.org/tdg5/en/html/refmiscinfo.html"><code class="sgmltag-element">refmiscinfo</code></a></pre>
+                  </li><li class="listitem">
+                    <p>[nothing found, so leave it empty]</p>
+                  </li></ol></div><p>
+                </p>
+              </dd><dt><span class="term">extra3 field</span></dt><dd>
+                <p>On Linux systems and on systems with a modern
+                groff, the content of the <span class="quote">&#8220;<span class="quote">extra3</span>&#8221;</span> field
+                are what shows up in the <span class="bold"><strong>center
+                header</strong></span> position of each page. Some man
+                pages have <span class="quote">&#8220;<span class="quote">extra2</span>&#8221;</span> content, some
+                don't. If a particular man page has it, it is most
+                often <span class="quote">&#8220;<span class="quote">context</span>&#8221;</span> data about some larger
+                system the documented item belongs to (for example,
+                the name or description of a group of related
+                applications). The stylesheets now check the following
+                places, in the following order, to look for content to
+                add to the <span class="quote">&#8220;<span class="quote">extra3</span>&#8221;</span> field.</p>
+                <div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
+                    <pre class="literallayout"><em class="replaceable"><code>parentinfo</code></em>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a></pre>
+                  </li><li class="listitem">
+                    <pre class="literallayout">parent's <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a></pre>
+                  </li><li class="listitem">
+                    <pre class="literallayout"><a href="http://docbook.org/tdg5/en/html/refmeta.html"><code class="sgmltag-element">refmeta</code></a>/<a href="http://docbook.org/tdg5/en/html/refmiscinfo.html"><code class="sgmltag-element">refmiscinfo</code></a></pre>
+                  </li><li class="listitem">
+                    <p>[nothing found, so leave it empty]</p>
+                  </li></ol></div>
+              </dd></dl></div><p>
+        </p>
+      </li><li class="listitem">
+        <p>Reworked <em class="replaceable"><code>*info</code></em> gathering. For
+        each <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> found, the stylesheets now cache its
+        <em class="replaceable"><code>*info</code></em> content, then check for any
+        valid parent of it that might have metainfo content and cache
+        that, if found; they then then do all further matches against
+        those node-sets (rather than re-selecting the original
+        <em class="replaceable"><code>*info</code></em> nodes each time they are
+        needed).</p>
+      </li><li class="listitem">
+        <p>New option for breaking strings after forward
+        slashes. This enables long URLs and pathnames to be broken
+        across lines. Controlled through
+        <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.break.after.slash.html"><em class="parameter"><code>man.break.after.slash</code></em></a> parameter.</p>
+      </li><li class="listitem">
+        <p>Output for servicemark and trademark are now
+        <code class="literal">(SM)</code> and <code class="literal">(TM)</code>. There is
+        a groff <code class="literal">"\(tm"</code> escape, but output from that
+        is not acceptable.</p>
+      </li><li class="listitem">
+        <p>New option for controlling the length of the title
+        part of the <code class="literal">.TH</code> title line. Controlled
+        through the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.th.title.max.length.html"><em class="parameter"><code>man.th.title.max.length</code></em></a>
+        parameter.</p>
+      </li><li class="listitem">
+        <p>New option for specifying output encoding of each man
+        page; controlled with
+        <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.encoding.html"><em class="parameter"><code>man.output.encoding</code></em></a> (similar to the
+        HTML <em class="parameter"><code>chunker.output.encoding </code></em>
+        parameter).</p>
+      </li><li class="listitem">
+        <p>New option for suppressing filename messages when
+        generating output; controlled with
+        <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.output.quietly.html"><em class="parameter"><code>man.output.quietly</code></em></a> (similar to the HTML
+        <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/chunk.quietly.html"><em class="parameter"><code>chunk.quietly</code></em></a> parameter).</p>
+      </li><li class="listitem">
+        <p>The text of cross-references to first-level
+        <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> (<a href="http://docbook.org/tdg5/en/html/refsect1.html"><code class="sgmltag-element">refsect1</code></a>, top-level
+        <a href="http://docbook.org/tdg5/en/html/refsection.html"><code class="sgmltag-element">refsection</code></a>, <a href="http://docbook.org/tdg5/en/html/refnamediv.html"><code class="sgmltag-element">refnamediv</code></a>, and
+        <a href="http://docbook.org/tdg5/en/html/refsynopsisdiv.html"><code class="sgmltag-element">refsynopsisdiv</code></a>) are now capitalized.</p>
+      </li><li class="listitem">
+        <p>Cross-references to <a href="http://docbook.org/tdg5/en/html/refnamediv.html"><code class="sgmltag-element">refnamediv</code></a> now use the
+        localized <code class="literal">NAME</code> title instead of using the
+        first <a href="http://docbook.org/tdg5/en/html/refname.html"><code class="sgmltag-element">refname</code></a> child. This makes the output
+        inconsistent with HTML and FO output, but for man-page output,
+        it seems to make better sense to have the
+        <code class="literal">NAME</code>. (It may actually make better sense to
+        do it that way in HTML and FO output as well...)</p>
+      </li><li class="listitem">
+        <p>Added support for processing <a href="http://docbook.org/tdg5/en/html/funcparams.html"><code class="sgmltag-element">funcparams</code></a>.</p>
+      </li><li class="listitem">
+        <p>Removed the space that was being output between
+        <a href="http://docbook.org/tdg5/en/html/funcdef.html"><code class="sgmltag-element">funcdef</code></a> and <a href="http://docbook.org/tdg5/en/html/paramdef.html"><code class="sgmltag-element">paramdef</code></a>; example: was:
+        <code class="literal">float rand (void)</code>; now:
+        <code class="literal">float rand(void)</code></p>
+      </li><li class="listitem">
+        <p>Turned off bold formatting for the <a href="http://docbook.org/tdg5/en/html/type.html"><code class="sgmltag-element">type</code></a>
+        element when it occurs within a <a href="http://docbook.org/tdg5/en/html/funcdef.html"><code class="sgmltag-element">funcdef</code></a> or
+        <a href="http://docbook.org/tdg5/en/html/paramdef.html"><code class="sgmltag-element">paramdef</code></a></p>
+      </li><li class="listitem">
+        <p>Corrected rendering of <a href="http://docbook.org/tdg5/en/html/simplelist.html"><code class="sgmltag-element">simplelist</code></a>. Any
+        <code class="literal">&lt;simplelist type="inline"</code> instance
+        is now rendered as a comma-separated list (also with an
+        optional localized <span class="quote">&#8220;<span class="quote">and</span>&#8221;</span> or <span class="quote">&#8220;<span class="quote">or</span>&#8221;</span> before the last item -- see
+        description elsewhere in these release notes). Any simplelist
+        instance whose <code class="sgmltag-attribute">type</code> is not
+        <code class="literal">inline</code> is rendered as a one-column vertical
+        list (ignoring the values of the <code class="sgmltag-attribute">type</code> and <code class="sgmltag-attribute">columns</code> attributes if present)</p>
+      </li><li class="listitem">
+        <p>Comment added at top of roff source for each page now
+        includes DocBook XSL stylesheets version number (as in the
+        HTML stylesheets)</p>
+      </li><li class="listitem">
+        <p>Made change to prevent <span class="quote">&#8220;<span class="quote">sticky</span>&#8221;</span> fonts
+        changes. Now, when the manpages stylesheets encounter node
+        sets that need to be boldfaced or italicized, they put the
+        <code class="literal">\fBfoo\fR</code> and <code class="literal">\fIbar\fR</code>
+        groff bold/italic instructions separately around each node in
+        the set.</p>
+      </li><li class="listitem">
+        <p>synop.xsl: Boldface everything in
+        <a href="http://docbook.org/tdg5/en/html/funcsynopsis.html"><code class="sgmltag-element">funcsynopsis</code></a> output except parameters (which are in
+        ital). The <code class="literal">man(7)</code> man page says:
+        </p><div class="blockquote"><blockquote class="blockquote">
+          <p>For functions, the arguments are always specified
+          using italics, even in the SYNOPSIS section, where the rest
+          of the function is specified in bold.</p>
+          </blockquote></div><p>
+          A look through the contents of the
+          <code class="filename">man/man2</code> directory shows that most
+          (all) existing pages do follow this <span class="quote">&#8220;<span class="quote">everything in
+          funcsynopsis bold</span>&#8221;</span> rule. That means the
+          <a href="http://docbook.org/tdg5/en/html/type.html"><code class="sgmltag-element">type</code></a> content and any punctuation (parens,
+          semicolons, <code class="sgmltag-element">vararg</code>s) also must be bolded.</p>
+      </li><li class="listitem">
+        <p>Removed code for adding backslashes before periods/dots
+        in roff source, because backslashes in front of periods/dots
+        in roff source are needed only in the very rare case where a
+        period is the very first character in a line, without any
+        space in front of it. A better way to deal with that rare case
+        is for you to add a zero-width space in front of the offending
+        dot(s) in your source</p>
+      </li><li class="listitem">
+        <p>Removed special handling of the <a href="http://docbook.org/tdg5/en/html/quote.html"><code class="sgmltag-element">quote</code></a>
+        element. That was hard-coded to cause anything marked up with
+        the <a href="http://docbook.org/tdg5/en/html/quote.html"><code class="sgmltag-element">quote</code></a> element to be output preceded by two
+        backticks and followed by two apostrophes -- that is, that
+        old-school kludge for generating <span class="quote">&#8220;<span class="quote">curly</span>&#8221;</span> quotes in Emacs and
+        in X-Windows fonts. While Emacs still seems to support that, I
+        don't think X-Windows has for a long time now. And, anyway, it
+        looks (and has always looked) like crap when viewed on a
+        normal tty/console. In addition, it breaks localiztion of
+        <a href="http://docbook.org/tdg5/en/html/quote.html"><code class="sgmltag-element">quote</code></a>. By default, <a href="http://docbook.org/tdg5/en/html/quote.html"><code class="sgmltag-element">quote</code></a> content is
+        output with localized quotation marks, which, depending on the
+        locale, may or may not be left and right double quotation
+        marks.</p>
+      </li><li class="listitem">
+        <p>Changed mappings for left and right single quotation
+        marks. Those had previously been incorrectly mapped to the
+        backtick (&amp;#96;) and apostrophe (&amp;39;) characters (for
+        kludgy reasons -- see above). They are now correctly mapped to
+        the <code class="literal">\(oq</code> and <code class="literal">\(cq</code> roff
+        escapes. If you want the old (broken) behavior, you need to
+        manually change the mappings for those in the value of the
+        <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.string.subst.map.html"><em class="parameter"><code>man.string.subst.map</code></em></a> parameter.</p>
+      </li><li class="listitem">
+        <p>Removed <code class="filename">xref.xsl</code> file. Now, of the
+        various cross-reference elements, only the <code class="sgmltag-element">ulink</code>
+        element is handled differently; the rest are handled exactly
+        as the HTML stylesheets handle them, except that no hypertext
+        links are generated. (Because there is no equivalent hypertext
+        mechanism is man pages.)</p>
+      </li><li class="listitem">
+        <p>New option for making <span class="quote">&#8220;<span class="quote">subheading dividers</span>&#8221;</span> in generated
+        roff source. The dividers are not visible in the rendered man
+        page; they are just there to make the source
+        readable. Controlled using
+        <a href="http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.subheading.divider.html"><em class="parameter"><code>man.subheading.divider</code></em></a>.</p>
+      </li><li class="listitem">
+        <p>Fixed many places where too much space was being added
+        between lines.</p>
+      </li></ul></div>
+    
+  </div>
+</div>
+  
+
+  <div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1681"></a>Release 1.68.1</h2></div></div></div>
+    
+    <p>The release adds localization support for Farsi (thanks to
+    Sina Heshmati) and improved support for the XLink-based DocBook NG
+    <code class="sgmltag-element">db:link</code> element. Other than that, it is a minor
+    bug-fix update to the 1.68.0 release. The main thing it fixes is a
+    build error that caused the XSLT Java extensions to be jarred up
+    with the wrong package structure. Thanks to Jens Stavnstrup for
+    quickly reporting the problem, and to Mauritz Jeanson for
+    investigating and finding the cause.</p>
+  </div>
+  
+
+  <div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1680"></a>Release 1.68.0</h2></div></div></div>
+    
+    <p>This release includes some features changes, particularly
+    for FO/PDF output, and a number of bug fixes.
+      </p><div class="itemizedlist"><a name="V1680_FO"></a><p class="title"><b>FO</b></p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>Moved footnote properties to attribute-sets.</p>
+        </li><li class="listitem">
+          <p>Added support for side floats, margin notes, and
+   	  custom floats.</p>
+        </li><li class="listitem">
+          <p>Added new parameters
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/body.start.indent.html"><em class="parameter"><code>body.start.indent</code></em></a> and
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/body.end.indent.html"><em class="parameter"><code>body.end.indent</code></em></a> to the
+          <em class="parameter"><code>set.flow.properties template</code></em>.</p>
+        </li><li class="listitem">
+          <p>Added support for <code class="sgmltag-attribute">xml:id</code></p>
+        </li><li class="listitem">
+          <p>Added support for
+          <a href="http://docbook.org/tdg5/en/html/refdescriptor.html"><code class="sgmltag-element">refdescriptor</code></a>.</p>
+        </li><li class="listitem">
+          <p>Added support for multiple <a href="http://docbook.org/tdg5/en/html/refnamediv.html"><code class="sgmltag-element">refnamediv</code></a>s.</p>
+        </li><li class="listitem">
+          <p>Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/index.entry.properties.html"><em class="parameter"><code>index.entry.properties</code></em></a>
+          attribute-set to support customization of index
+          entries.</p>
+        </li><li class="listitem">
+          <p>Added <em class="parameter"><code>set.flow.properties
+          template</code></em> call to each <code class="sgmltag-element">fo:flow</code>
+          to support customizations entry point.</p>
+        </li><li class="listitem">
+          <p>Add support for <code class="literal">@floatstyle</code> in
+          <a href="http://docbook.org/tdg5/en/html/figure.html"><code class="sgmltag-element">figure</code></a></p>
+        </li><li class="listitem">
+          <p>Moved hardcoded properties for index division titles
+          to the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/index.div.title.properties.html"><em class="parameter"><code>index.div.title.properties</code></em></a>
+          attribute-set.</p>
+        </li><li class="listitem">
+          <p>Added support for
+          <code class="sgmltag-element">table-layout</code>="<code class="sgmltag-attvalue">auto</code>" for XEP.</p>
+        </li><li class="listitem">
+          <p>Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/index.div.title.properties.html"><em class="parameter"><code>index.div.title.properties</code></em></a>
+   	  attribute-set.</p>
+        </li><li class="listitem">
+          <p><em class="parameter"><code>$verbose</code></em> parameter is now
+          passed to most elements.</p>
+        </li><li class="listitem">
+          <p>Added <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a> to
+          <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> in <a href="http://docbook.org/tdg5/en/html/part.html"><code class="sgmltag-element">part</code></a>, as it is
+          permitted by the DocBook schema/DTD.</p>
+        </li><li class="listitem">
+          <p>Added backmatter elements and
+          <a href="http://docbook.org/tdg5/en/html/article.html"><code class="sgmltag-element">article</code></a> to <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> in
+          <a href="http://docbook.org/tdg5/en/html/part.html"><code class="sgmltag-element">part</code></a>, since they are permitted by the
+          DocBook schema/DTD.</p>
+        </li><li class="listitem">
+          <p>Added <code class="sgmltag-attribute">mode</code>="<code class="sgmltag-attvalue">toc</code>" for
+          <a href="http://docbook.org/tdg5/en/html/simplesect.html"><code class="sgmltag-element">simplesect</code></a>, since it is now permitted in
+          the <a href="http://docbook.org/tdg5/en/html/toc.html"><code class="sgmltag-element">toc</code></a> if
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/simplesect.in.toc.html"><em class="parameter"><code>simplesect.in.toc</code></em></a> is set.</p>
+        </li><li class="listitem">
+          <p>Moved hard-coded properties to
+          <em class="parameter"><code>nongraphical.admonintion.properties</code></em>
+          and <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/graphical.admonition.properties.html"><em class="parameter"><code>graphical.admonition.properties</code></em></a>
+          attribute sets.</p>
+        </li><li class="listitem">
+          <p>Added support for <code class="literal">sidebar-width</code> and
+          <code class="literal">float-type</code> processing instructions in
+          <a href="http://docbook.org/tdg5/en/html/sidebar.html"><code class="sgmltag-element">sidebar</code></a>.</p>
+        </li><li class="listitem">
+          <p>For tables with HTML markup elements, added support
+          for <code class="literal">dbfo bgcolor</code> PI, the attribute-sets
+          named <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/table.properties.html"><em class="parameter"><code>table.properties</code></em></a>,
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/informaltable.properties.html"><em class="parameter"><code>informaltable.properties</code></em></a>,
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/table.table.properties.html"><em class="parameter"><code>table.table.properties</code></em></a>, and
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/table.cell.padding.html"><em class="parameter"><code>table.cell.padding</code></em></a>. Also added
+          support for the templates named
+          <em class="parameter"><code>table.cell.properties</code></em> and
+          <em class="parameter"><code>table.cell.block.properties</code></em> so that
+          tabstyles can be implemented. Also added support for tables
+          containing only <a href="http://docbook.org/tdg5/en/html/tr.html"><code class="sgmltag-element">tr</code></a> instead of
+          <a href="http://docbook.org/tdg5/en/html/tbody.html"><code class="sgmltag-element">tbody</code></a> with <a href="http://docbook.org/tdg5/en/html/tr.html"><code class="sgmltag-element">tr</code></a>.</p>
+        </li><li class="listitem">
+          <p>Added new paramater
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/hyphenate.verbatim.characters.html"><em class="parameter"><code>hyphenate.verbatim.characters</code></em></a> which
+          can specify characters after which a line break can occur in
+          verbatim environments.  This parameter can be used to extend
+          the initial set of characters which contain only space and
+          non-breakable space.</p>
+        </li><li class="listitem">
+          <p>Added <em class="parameter"><code>itemizedlist.label.markup</code></em> to enable
+ 	  selection of different bullet symbol. Also added several
+   	  potential bullet characters, commented out by default.</p>
+        </li><li class="listitem">
+          <p>Enabled all id's in XEP output for external olinking.</p>
+        </li></ul></div><p>
+
+      </p><div class="itemizedlist"><a name="V1680_HTML"></a><p class="title"><b>HTML</b></p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>Added support for
+          <a href="http://docbook.org/tdg5/en/html/refdescriptor.html"><code class="sgmltag-element">refdescriptor</code></a>.</p>
+        </li><li class="listitem">
+          <p>Added support for multiple <a href="http://docbook.org/tdg5/en/html/refnamediv.html"><code class="sgmltag-element">refnamediv</code></a>s.</p>
+        </li><li class="listitem">
+          <p>Added support for <code class="sgmltag-attribute">xml:id</code></p>
+        </li><li class="listitem">
+          <p><a href="http://docbook.org/tdg5/en/html/refsynopsisdiv.html"><code class="sgmltag-element">refsynopsisdiv</code></a> as a section for
+          counting section levels</p>
+        </li></ul></div><p>
+      </p><div class="itemizedlist"><a name="V1680_images"></a><p class="title"><b>Images</b></p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>Added new SVG admonition graphics and navigation images.</p>
+        </li></ul></div><p>
+    </p>
+  </div>
+  
+
+  <div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1672"></a>Release 1.67.2</h2></div></div></div>
+    
+    <p>This release fixes a table bug introduced in the 1.67.1
+    release.</p>
+  </div>
+  <div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1671"></a>Release 1.67.1</h2></div></div></div>
+    
+    <p>This release includes a number of bug fixes.</p>
+     <p>The following lists provide details about API and feature changes.
+      </p><div class="itemizedlist"><a name="V1671_FO"></a><p class="title"><b>FO</b></p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>Tables: Inherited cell properties are now passed to the
+          <code class="literal">table.cell.properties</code> template so they can
+          be overridden by a customization.</p>
+        </li><li class="listitem">
+          <p>Tables: Added support for bgcolor PI on table row
+          element.</p>
+        </li><li class="listitem">
+          <p>TOCs: Added new parameter
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/simplesect.in.toc.html"><em class="parameter"><code>simplesect.in.toc</code></em></a>; default value of
+          <code class="literal">0</code> causes simplesect to be omitted from TOCs; to
+          cause <a href="http://docbook.org/tdg5/en/html/simplesect.html"><code class="sgmltag-element">simplesect</code></a> to be included in TOCs, you
+          must set the value of <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/simplesect.in.toc.html"><em class="parameter"><code>simplesect.in.toc</code></em></a> to
+          <code class="literal">1</code>.Comment from Norm:
+
+            </p><div class="blockquote"><blockquote class="blockquote">
+              <p><span class="emphasis"><em>Simplesect elements aren't supposed to
+              appear in the ToC at all... The use case for simplesect
+              is when, for example, every chapter in a book ends with
+              "Exercises" or "For More Information" sections and you
+              don't want those to appear in the ToC.</em></span></p>
+            </blockquote></div><p>
+            </p>
+        </li><li class="listitem">
+          <p>Sections: Reverted change that caused a variable reference
+          to be used in a template match and rewrote code to preserve
+          intended semantics.</p>
+        </li><li class="listitem">
+          <p>Lists: Added workaround to prevent "* 0.60 + 1em" garbage in
+          list output from PassiveTeX</p>
+        </li><li class="listitem">
+          <p>Moved the literal attributes from
+          <em class="parameter"><code>component.title</code></em> to the
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/component.title.properties.html"><em class="parameter"><code>component.title.properties</code></em></a> attribute-set so
+          they can be customized.</p>
+        </li><li class="listitem">
+          <p>Lists: Added <a href="http://docbook.org/tdg5/en/html/glossdef.html"><code class="sgmltag-element">glossdef</code></a>'s first
+          <a href="http://docbook.org/tdg5/en/html/para.html"><code class="sgmltag-element">para</code></a> to special handling in
+          <code class="literal">fo:list-item-body</code>.</p>
+        </li></ul></div><p>
+
+      </p><div class="itemizedlist"><a name="V1671_HTML"></a><p class="title"><b>HTML</b></p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>TOCs: Added new parameter
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/simplesect.in.toc.html"><em class="parameter"><code>simplesect.in.toc</code></em></a>; for details, see
+          the list of <a class="xref" href="#V1671_FO" title="FO">FO</a> changes for this
+          release.</p>
+        </li><li class="listitem">
+          <p>Indexing: Added new parameter
+          <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/index.prefer.titleabbrev.html"><em class="parameter"><code>index.prefer.titleabbrev</code></em></a>; when set to
+          <code class="literal">1</code>, index references will use
+          <a href="http://docbook.org/tdg5/en/html/titleabbrev.html"><code class="sgmltag-element">titleabbrev</code></a> instead of
+          <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a> when available.</p>
+        </li></ul></div><p>
+      </p><div class="itemizedlist"><a name="V1671_HELP"></a><p class="title"><b>HTML Help</b></p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>Added support for generating windows-1252-encoded
+          output using Saxon; for more details, see the list of <a class="xref" href="#V1671_EXT" title="XSL Java extensions">XSL Java extensions</a> changes for this release.</p>
+        </li></ul></div><p>
+      </p><div class="itemizedlist"><a name="V1671_MAN"></a><p class="title"><b>man pages</b></p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>Replaced named/numeric character-entity references for
+          non-breaking space with groff equivalent (backslash-tilde).</p>
+        </li></ul></div><p>
+      </p><div class="itemizedlist"><a name="V1671_EXT"></a><p class="title"><b>XSL Java extensions</b></p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          <p>Saxon extensions: Added the
+          <code class="classname">Windows1252</code> class.  It extends Saxon
+          6.5.x with the windows-1252 character set, which is
+          particularly useful when generating HTML Help for Western
+          European Languages (code from
+          <span class="personname"><span class="firstname">Pontus</span> <span class="surname">Haglund</span></span> and contributed to the
+          DocBook community by Sectra AB, Sweden).</p>
+          <p>To use:
+          </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
+              <p>Make sure that the Saxon 6.5.x jar file and the jar file for
+              the DocBook XSL Java extensions are in your <code class="envar">CLASSPATH</code></p>
+            </li><li class="listitem">
+              <p>Create a DocBook XSL customization layer -- a file named
+              <code class="filename">mystylesheet.xsl</code> or whatever -- that, at a
+              minimum, contains the following:
+              </p><pre class="screen">  &lt;xsl:stylesheet
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    version='1.0'&gt;
+    &lt;xsl:import href="http://docbook.sourceforge.net/release/xsl/current/htmlhelp/htmlhelp.xsl"/&gt;
+    &lt;xsl:output method="html" encoding="WINDOWS-1252" indent="no"/&gt;
+    &lt;xsl:param name="htmlhelp.encoding" select="'WINDOWS-1252'"&gt;&lt;/xsl:param&gt;
+    &lt;xsl:param name="chunker.output.encoding" select="'WINDOWS-1252'"&gt;&lt;/xsl:param&gt;
+    &lt;xsl:param name="saxon.character.representation" select="'native'"&gt;&lt;/xsl:param&gt;
+  &lt;/xsl:stylesheet&gt;</pre><p>
+              </p>
+              <p>Invoke Saxon with the
+              <code class="literal">encoding.windows-1252</code> Java system property set
+              to <code class="literal">com.nwalsh.saxon.Windows1252</code>; for example
+              </p><pre class="screen">  java \
+    -Dencoding.windows-1252=com.nwalsh.saxon.Windows1252 \
+  com.icl.saxon.StyleSheet \
+  mydoc.xml mystylesheet.xsl</pre><p>
+
+              Or, for a more complete "real world" case showing other
+              options you'll typically want to use:
+              </p><pre class="screen">  java \
+    -Dencoding.windows-1252=com.nwalsh.saxon.Windows1252 \
+    -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl \
+    -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl \
+    -Djavax.xml.transform.TransformerFactory=com.icl.saxon.TransformerFactoryImpl \
+  com.icl.saxon.StyleSheet \
+    -x org.apache.xml.resolver.tools.ResolvingXMLReader \
+    -y org.apache.xml.resolver.tools.ResolvingXMLReader \
+    -r org.apache.xml.resolver.tools.CatalogResolver \
+  mydoc.xml mystylesheet.xsl</pre><p>
+
+              In both cases, the "mystylesheet.xsl" file should be a
+              DocBook customization layer containing the parameters
+              show in step 2.</p>
+            </li></ol></div><p>
+          </p>
+        </li><li class="listitem">
+          <p>Saxon extensions: Removed Saxon 8 extensions from release package</p>
+        </li></ul></div><p>
+    </p>
+  </div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1670"></a>Release 1.67.0</h2></div></div></div>
+  
+  <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+    <p>A number of important bug fixes.</p>
+  </li><li class="listitem">
+    <p>Added Saxon8 extensions</p>
+  </li><li class="listitem">
+    <p>Enabled <code class="literal">dbfo table-width</code> on
+    <a href="http://docbook.org/tdg5/en/html/entrytbl.html"><code class="sgmltag-element">entrytbl</code></a> in FO output</p>
+  </li><li class="listitem">
+    <p>Added support for <code class="literal">role=strong</code> on
+    <a href="http://docbook.org/tdg5/en/html/emphasis.html"><code class="sgmltag-element">emphasis</code></a> in FO output</p>
+  </li><li class="listitem">
+    <p>Added new FO parameter
+    <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/hyphenate.verbatim.html"><em class="parameter"><code>hyphenate.verbatim</code></em></a> that can be used to turn
+    on "intelligent" wrapping of verbatim environments.</p>
+  </li><li class="listitem">
+    <p>Replaced all <code class="literal">&lt;tt&gt;&lt;/tt&gt;</code> output with
+    <code class="literal">&lt;code&gt;&lt;/code&gt;</code></p>
+  </li><li class="listitem">
+    <p>Changed <code class="literal">admon.graphic.width</code> template to a
+    mode so that different admonitions can have different graphical
+    widths.</p>
+  </li><li class="listitem">
+    <p>Deprecated the HTML <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/shade.verbatim.html"><em class="parameter"><code>shade.verbatim</code></em></a>
+    parameter (use CSS instead)</p>
+  </li><li class="listitem">
+    <p>Wrapped ToC
+    <a href="http://docbook.org/tdg5/en/html/refentrytitle.html"><code class="sgmltag-element">refentrytitle</code></a>/<a href="http://docbook.org/tdg5/en/html/refname.html"><code class="sgmltag-element">refname</code></a> and
+    <a href="http://docbook.org/tdg5/en/html/refpurpose.html"><code class="sgmltag-element">refpurpose</code></a> in span with class values. This
+    makes it possible to style them using a CSS stylesheet.</p>
+  </li><li class="listitem">
+    <p>Use <code class="literal">strong/em</code> instead of
+    <code class="literal">b/i</code> in HTML output</p>
+  </li><li class="listitem">
+    <p>Added support for converting <a href="http://docbook.org/tdg5/en/html/emphasis.html"><code class="sgmltag-element">Emphasis</code></a> to
+    groff italic and <a href="http://docbook.org/tdg5/en/html/emphasis.html"><code class="sgmltag-element">Emphasis role='bold'</code></a> to
+    bold. Controlled by
+    <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/emphasis.propagates.style.html"><em class="parameter"><code>emphasis.propagates.style</code></em></a> param, but not
+    documented yet using litprog system. Will do that next (planning
+    to add some other parameter-controllable options for hyphenation
+    and handling of line spacing).</p>
+  </li><li class="listitem">
+    <p><em class="parameter"><code>callout.graphics.number.limit.xml</code></em>
+    param: Changed the default from <code class="literal">10</code> to
+    <code class="literal">15</code>.</p>
+  </li><li class="listitem">
+    <p><a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/verbatim.properties.html"><em class="parameter"><code>verbatim.properties</code></em></a>: Added
+    <code class="literal">hyphenate=false</code></p>
+  </li><li class="listitem">
+    <p>Saxon and Xalan Text.java extensions: Added support for
+    <code class="methodname">URIResolver()</code> on insertfile href's</p>
+  </li><li class="listitem">
+    <p>Added generated <code class="filename">RELEASE-NOTES.txt</code>
+    file.</p>
+  </li><li class="listitem">
+    <p>Added <code class="filename">INSTALL</code> file (executable file for
+    generating catalog.xml)</p>
+  </li><li class="listitem">
+    <p>Removed obsolete <code class="filename">tools</code> directory from
+    package</p>
+  </li></ul></div>
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1661"></a>Release 1.66.1</h2></div></div></div>
+
+  <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>A number of important bug fixes.
+</p>
+</li><li class="listitem">
+<p>
+Now <code class="literal">xml:base</code> attributes that are generated by an
+XInclude processor are resolved for image files.
+</p>
+</li><li class="listitem">
+<p>
+Rewrote olink templates to support several new features.
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
+<p>
+Extended full olink support to FO output.
+</p>
+</li><li class="listitem">
+<p>
+Add support for <code class="literal">xrefstyle</code> attribute in olinks.
+</p>
+</li><li class="listitem">
+<p>
+New parameters to support new olink features:
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/insert.olink.page.number.html"><em class="parameter"><code>insert.olink.page.number</code></em></a>, <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/insert.olink.pdf.frag.html"><em class="parameter"><code>insert.olink.pdf.frag</code></em></a>,
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/olink.debug.html"><em class="parameter"><code>olink.debug</code></em></a>, <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/olink.lang.fallback.sequence.html"><em class="parameter"><code>olink.lang.fallback.sequence</code></em></a>, <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/olink.properties.html"><em class="parameter"><code>olink.properties</code></em></a>,
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/prefer.internal.olink.html"><em class="parameter"><code>prefer.internal.olink</code></em></a>.
+See the reference page for each parameter for more
+information.</p>
+</li></ul></div>
+</li><li class="listitem">
+<p>
+Added  <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/index.on.type.html"><em class="parameter"><code>index.on.type</code></em></a> parameter for new <code class="sgmltag-attribute">type</code>
+attribute introduced in DocBook 4.3 for indexterms and index.
+This allows you to create multiple indices containing
+different categories of entries.
+For users of 4.2 and earlier, you can use the new parameter <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/index.on.role.html"><em class="parameter"><code>index.on.role</code></em></a>
+instead.
+</p>
+</li><li class="listitem">
+<p>
+Added new
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/section.autolabel.max.depth.html"><em class="parameter"><code>section.autolabel.max.depth</code></em></a> parameter to turn off section numbering
+below a certain depth.
+This permits you to number major section levels and leave minor
+section levels unnumbered.</p>
+</li><li class="listitem">
+<p>
+Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/footnote.sep.leader.properties.html"><em class="parameter"><code>footnote.sep.leader.properties</code></em></a> attribute set to format
+the line separating footnotes in printed output.
+</p>
+</li><li class="listitem">
+<p>
+Added parameter <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/img.src.path.html"><em class="parameter"><code>img.src.path</code></em></a> as a prefix to HTML img src
+attributes.
+The prefix is added to whatever path is already generated by the
+stylesheet for each image file.</p>
+</li><li class="listitem">
+<p>
+Added new attribute-sets
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/informalequation.properties.html"><em class="parameter"><code>informalequation.properties</code></em></a>,
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/informalexample.properties.html"><em class="parameter"><code>informalexample.properties</code></em></a>,
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/informalfigure.properties.html"><em class="parameter"><code>informalfigure.properties</code></em></a>, and <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/informaltable.properties.html"><em class="parameter"><code>informaltable.properties</code></em></a>,
+so each such element type can be formatted
+individually if needed.
+</p>
+</li><li class="listitem">
+<p>
+Add <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/component.label.includes.part.label.html"><em class="parameter"><code>component.label.includes.part.label</code></em></a>
+parameter to add any  part number to chapter, appendix
+and other component labels when
+the <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/label.from.part.html"><em class="parameter"><code>label.from.part</code></em></a> parameter  is nonzero.
+This permits you to distinguish multiple chapters with the same
+chapter number in cross references and the TOC.</p>
+</li><li class="listitem">
+<p>
+Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/chunk.separate.lots.html"><em class="parameter"><code>chunk.separate.lots</code></em></a> parameter for HTML output.
+This parameter lets you generate separate chunk files for each LOT
+(list of tables, list of figures, etc.).</p>
+</li><li class="listitem">
+<p>Added several table features:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
+<p>
+Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/table.table.properties.html"><em class="parameter"><code>table.table.properties</code></em></a> attribute set to add
+properties to the fo:table element.
+</p>
+</li><li class="listitem">
+<p>
+Added placeholder templates named <code class="literal">table.cell.properties</code>
+and <code class="literal">table.cell.block.properties</code> to enable adding properties
+to any <code class="sgmltag-element">fo:table-cell</code> or the cell's <code class="sgmltag-element">fo:block</code>, respectively.
+ These templates are a start for implementing table styles.</p>
+</li></ul></div>
+</li><li class="listitem">
+<p>
+Added new attribute
+set <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/component.title.properties.html"><em class="parameter"><code>component.title.properties</code></em></a> for easy modifications of
+component's title formatting in FO output.
+</p>
+</li><li class="listitem">
+<p>
+Added Saxon support for an <code class="sgmltag-attribute">encoding</code> attribute on the <a href="http://docbook.org/tdg5/en/html/textdata.html"><code class="sgmltag-element">textdata</code></a> element. Added new parameter
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/textdata.default.encoding.html"><em class="parameter"><code>textdata.default.encoding</code></em></a> which specifies encoding when
+<code class="sgmltag-attribute">encoding</code> attribute on
+<a href="http://docbook.org/tdg5/en/html/textdata.html"><code class="sgmltag-element">textdata</code></a> is missing.
+</p>
+</li><li class="listitem">
+<p>
+Template <code class="literal">label.this.section</code> now controls whole
+section label, not only sub-label which corresponds to
+particular label. Former behaviour was IMHO bug as it was
+not usable.
+</p>
+</li><li class="listitem">
+<p>
+Formatting in titleabbrev for TOC and headers
+is preserved when there are no hotlink elements in the title. Formerly the title showed only the text of the title, no font changes or other markup.
+</p>
+</li><li class="listitem">
+<p>
+Added <code class="literal">intial.page.number</code> template to set the <code class="literal">initial-page-number
+property</code> for page sequences in print output.
+Customizing this template lets you change when page numbering restarts. This is similar to the <code class="literal">format.page.number</code> template that lets you change how the page number formatting changes in the output.
+</p>
+</li><li class="listitem">
+<p>
+Added <code class="literal">force.page.count</code> template to set the force-page-count
+property for page sequences in print output.
+This is similar to the <code class="literal">format.page.number</code> template.
+</p>
+</li><li class="listitem">
+<p>
+Sort language for localized index sorting in <code class="filename">autoidx-ng.xsl</code> is now taken from document 
+lang, not from system environment.
+</p>
+</li><li class="listitem">
+<p>
+Numbering and formatting of normal
+and ulink footnotes (if turned on) has been unified.
+Now ulink footnotes are mixed in with any other footnotes.</p>
+</li><li class="listitem">
+<p>
+Added support for <code class="sgmltag-element">renderas</code> attribute in section and
+sect1 et al.
+This permits you to render a given section title as if it were a different level.</p>
+</li><li class="listitem">
+<p>
+Added support for <a href="http://docbook.org/tdg5/en/html/label.html"><code class="sgmltag-element">label</code></a> attribute in footnote to manually
+supply the footnote mark.
+</p>
+</li><li class="listitem">
+<p>
+Added support for DocBook 4.3 <code class="sgmltag-element">corpcredit</code> element.
+</p>
+</li><li class="listitem">
+<p>
+Added support for a <code class="literal">dbfo keep-together</code> PI for
+formal objects (table, figure, example, equation, programlisting).  That permits a formal object to be kept together if it is not already, or to be broken if it
+is very long and the
+default keep-together is not appropriate.
+</p>
+</li><li class="listitem">
+<p>
+For graphics files, made file extension matching case
+insensitive, and updated the list of graphics extensions.
+</p>
+</li><li class="listitem">
+<p>
+Allow <a href="http://docbook.org/tdg5/en/html/calloutlist.html"><code class="sgmltag-element">calloutlist</code></a> to have block content before
+the first callout
+</p>
+</li><li class="listitem">
+<p>
+Added <code class="literal">dbfo-need</code> processing instruction to provide
+soft page breaks.
+</p>
+</li><li class="listitem">
+<p>
+Added implementation of existing but unused
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/default.image.width.html"><em class="parameter"><code>default.image.width</code></em></a> parameter for graphics.
+</p>
+</li><li class="listitem">
+<p>
+Support DocBook NG <a href="http://docbook.org/tdg5/en/html/tag.html"><code class="sgmltag-element">tag</code></a> inline element.
+</p>
+</li><li class="listitem">
+<p>
+It appears that XEP now supports Unicode characters in
+bookmarks. There is no further need to strip accents from
+characters.
+</p>
+</li><li class="listitem">
+<p>
+Make <a href="http://docbook.org/tdg5/en/html/segmentedlist.html"><code class="sgmltag-element">segmentedlist</code></a> HTML markup
+more semantic and available to CSS styles.
+</p>
+</li><li class="listitem">
+<p>
+Added <code class="literal">user.preroot</code> placeholder template to
+permit xsl-stylesheet and other PIs and comments to be
+output before the HTML root element.
+</p>
+</li><li class="listitem">
+<p>
+Non-chunked legalnotice now gets an &lt;a
+name="id"&gt; element in HTML output
+so it can be referenced with xref or link.
+</p>
+</li><li class="listitem">
+<p>
+In chunked HTML output, changed <code class="literal">link rel="home"</code> to <code class="literal">rel="start"</code>,
+and <code class="literal">link rel="previous"</code> to <code class="literal">rel="prev"</code>, per W3C HTML 4.01
+spec.
+</p>
+</li><li class="listitem">
+<p>
+Added several patches to htmlhelp from W. Borgert
+</p>
+</li><li class="listitem">
+<p>
+Added Bosnian locale file as common/bs.xml.
+</p>
+</li></ul></div>
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1650"></a>Release 1.65.0</h2></div></div></div>
+ 
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>A number of important bug fixes.
+</p>
+</li><li class="listitem">
+<p>Added a workaround to allow these stylesheets to process DocBook NG
+documents. (It&#8217;s a hack that pre-processes the document to strip off the
+namespace and then uses <code class="function">exsl:node-set</code> to process
+the result.)
+</p>
+</li><li class="listitem">
+<p>Added alternative indexing mechanism which has better
+internationalization support. New indexing method allows grouping of
+accented letters like e, é, ë into the same group under letter "e". It
+can also treat special letters (e.g. "ch") as one character and place
+them in the correct position (e.g. between "h" and "i" in Czech
+language).</p> 
+<p>In order to use this mechanism you must create customization
+layer which imports some base stylesheet (like
+<code class="filename">fo/docbook.xsl</code>,
+<code class="filename">html/chunk.xsl</code>) and then includes appropriate
+stylesheet with new indexing code
+(<code class="filename">fo/autoidx-ng.xsl</code> or
+<code class="filename">html/autoidx-ng.xsl</code>). For example:</p> 
+<pre class="programlisting">&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0"&gt;
+
+&lt;xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/&gt;
+&lt;xsl:include href="http://docbook.sourceforge.net/release/xsl/current/fo/autoidx-ng.xsl"/&gt;
+
+&lt;/xsl:stylesheet&gt;</pre>
+<p>New method is known to work with Saxon and it should also work
+with xsltproc 1.1.1 and later. Currently supported languages are
+English, Czech, German, French, Spanish and Danish.</p> 
+</li></ul></div> 
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1641"></a>Release 1.64.1</h2></div></div></div>
+ 
+<div class="itemizedlist"><p>General bug fixes and improvements. Sorry about the failure to produce
+an updated release notes file for 1.62.0&#8212;1.63.2</p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>In the course of fixing bug #849787, wrapping Unicode callouts
+with an appropriate font change in the Xalan extensions, I discovered
+that the Xalan APIs have changed a bit. So <code class="filename">xalan2.jar</code>
+will work with older Xalan 2 implementations, <code class="filename">xalan25.jar</code>
+works with Xalan 2.5.</p>
+</li></ul></div> 
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1610"></a>Release 1.61.0</h2></div></div></div>
+ 
+<div class="itemizedlist"><p>Lots of bug fixes and improvements.</p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>Initial support for timestamp PI. From now you
+  can use &lt;?dbtimestamp format="Y-m-d H:M:S"?&gt; to get current
+  datetime in your document. Added localization support for datetime PI
+</p>
+</li><li class="listitem">
+<p>Added level 6 to test for <a href="http://docbook.org/tdg5/en/html/section.html"><code class="sgmltag-element">section</code></a> depth in
+section.level template so that
+section.title.level6.properties will be used for sections
+that are 6 deep or deeper. This should also cause a h6 to be
+created in html output.
+</p>
+</li><li class="listitem">
+<p>Don't use SVG graphics if <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/use.svg.html"><em class="parameter"><code>use.svg</code></em></a>=0
+</p>
+</li><li class="listitem">
+<p>Now uses number-and-title-template for sections
+  only if <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/section.autolabel.html"><em class="parameter"><code>section.autolabel</code></em></a> is not zero.
+</p>
+</li><li class="listitem">
+<p>Added missing 'english-language-name' attribute to
+the l10n element, and the missing 'style' attribute to the
+template element so the current gentext documents will
+validate.
+</p>
+</li><li class="listitem">
+<p>Corrected several references to parameter
+  <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/qanda.defaultlabel.html"><em class="parameter"><code>qanda.defaultlabel</code></em></a> that were missing the "$".
+</p>
+</li><li class="listitem">
+<p>Now accepts <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/admon.textlabel.html"><em class="parameter"><code>admon.textlabel</code></em></a> parameter to turn off
+  Note, Warning, etc. label.
+</p>
+</li><li class="listitem">
+<p>FeatReq #684561: support more XEP metadata
+</p>
+</li><li class="listitem">
+<p>Added hyphenation support. Added support for <a href="http://docbook.org/tdg5/en/html/coref.html"><code class="sgmltag-element">coref</code></a>.
+Added <code class="sgmltag-element">beginpage</code> support. (does nothing; see TDG).
+</p>
+</li><li class="listitem">
+<p>Added support for
+hyphenation-character, hyphenation-push-character-count, and
+hyphenation-remain-character-count
+</p>
+</li><li class="listitem">
+<p>Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/root.properties.html"><em class="parameter"><code>root.properties</code></em></a>,
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/ebnf.assignment.html"><em class="parameter"><code>ebnf.assignment</code></em></a>,
+and <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/ebnf.statement.terminator.html"><em class="parameter"><code>ebnf.statement.terminator</code></em></a>
+</p>
+</li><li class="listitem">
+<p>Support bgcolor PI in table cells; make sure
+rowsep and colsep don't have any effect on the last row or
+column
+</p>
+</li><li class="listitem">
+<p>Handle <a href="http://docbook.org/tdg5/en/html/othercredit.html"><code class="sgmltag-element">othercredit</code></a> on titlepage a little
+better
+</p>
+</li><li class="listitem">
+<p>Applied fix from Jeff Beal that fixed the bug
+that put secondary page numbers on primary entries. Same
+with tertiary page numbers on secondary entries.
+</p>
+</li><li class="listitem">
+<p>Added definition of missing variable
+<em class="parameter"><code>collection</code></em>.
+</p>
+</li><li class="listitem">
+<p>Make <a href="http://docbook.org/tdg5/en/html/footnote.html"><code class="sgmltag-element">footnote</code></a> formatting 'normal' even when it
+occurs in a context that has special formatting
+</p>
+</li><li class="listitem">
+<p>Added warning when <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/glossary.collection.html"><em class="parameter"><code>glossary.collection</code></em></a> is not
+blank, but it cannot open the specified file.
+</p>
+</li><li class="listitem">
+<p>Pick up the frame attribute on <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a> and
+<a href="http://docbook.org/tdg5/en/html/informaltable.html"><code class="sgmltag-element">informaltable</code></a>.
+</p>
+</li><li class="listitem">
+<p><a href="http://docbook.org/tdg5/en/html/indexdiv.html"><code class="sgmltag-element">indexdiv</code></a>/<a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>
+in non-autogenerated indexes are
+now picked up.
+</p>
+</li><li class="listitem">
+<p>Removed (unused)
+component.title.properties
+</p>
+</li><li class="listitem">
+<p>Move IDs from
+page-sequences down to titlepage blocks
+</p>
+</li><li class="listitem">
+<p>Use
+proportional-column-width(1) on more <a href="http://docbook.org/tdg5/en/html/table.html"><code class="sgmltag-element">table</code></a>s.
+</p>
+<p>Use proportional-column-width() for
+header/footer tables; suppress relative-align when when
+using FOP
+</p>
+</li><li class="listitem">
+<p>Check for <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/glossterm.auto.link.html"><em class="parameter"><code>glossterm.auto.link</code></em></a> when linking
+firstterms; don't output gl. prefix on glossterm links
+</p>
+</li><li class="listitem">
+<p>Generate Part ToCs
+</p>
+</li><li class="listitem">
+<p>Support <a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a>, <a href="http://docbook.org/tdg5/en/html/bibliography.html"><code class="sgmltag-element">bibliography</code></a>,
+and <a href="http://docbook.org/tdg5/en/html/index.html"><code class="sgmltag-element">index</code></a> in component ToCs.
+</p>
+</li><li class="listitem">
+<p>Refactored chunking code so that
+customization of chunk algorithm and chunk elements is more
+practical
+</p>
+</li><li class="listitem">
+<p>Support <a href="http://docbook.org/tdg5/en/html/textobject.html"><code class="sgmltag-element">textobject</code></a>/<a href="http://docbook.org/tdg5/en/html/phrase.html"><code class="sgmltag-element">phrase</code></a>
+on <a href="http://docbook.org/tdg5/en/html/inlinemediaobject.html"><code class="sgmltag-element">inlinemediaobject</code></a>.
+</p>
+</li><li class="listitem">
+<p>Support 'start' PI on ordered lists
+</p>
+</li><li class="listitem">
+<p>Fixed test of $toc PI to turn on qandaset TOC.
+</p>
+</li><li class="listitem">
+<p>Added process.chunk.footnotes to sect2 through
+5 to fix bug of missing footnotes when chunk level greater
+than 1.
+</p>
+</li><li class="listitem">
+<p>Added
+paramater <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/toc.max.depth.html"><em class="parameter"><code>toc.max.depth</code></em></a> which controls maximal depth of ToC
+as requested by PHP-DOC group.
+</p>
+</li><li class="listitem">
+<p>Exempted <a href="http://docbook.org/tdg5/en/html/titleabbrev.html"><code class="sgmltag-element">titleabbrev</code></a> from preamble processing in
+lists, and fixed variablelist preamble code to use the same
+syntax as the other lists.
+</p>
+</li><li class="listitem">
+<p>Added support for elements between variablelist
+and first varlistentry since DocBook 4.2 supports that now.
+</p>
+</li></ul></div> 
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1601"></a>Release 1.60.1</h2></div></div></div>
+ 
+<div class="itemizedlist"><p>Lots of bug fixes.</p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>The format of the <code class="filename">titlepage.templates.xml</code> files and
+the stylesheet that transforms them have been significantly changed. All of the
+attributes used to control the templates are now namespace qualified. So what
+used to be:</p> 
+<pre class="programlisting">&lt;t:titlepage element="article" wrapper="fo:block"&gt;</pre>
+<p>is now:</p> 
+<pre class="programlisting">&lt;t:titlepage t:element="article" t:wrapper="fo:block"&gt;</pre>
+<p>Attributes from other namespaces (including those that are unqualified) are
+now copied directly through. In practice, this means that the names that used
+to be <span class="quote">&#8220;<span class="quote">fo:</span>&#8221;</span> qualified:</p> 
+<pre class="programlisting">&lt;title named-template="component.title"
+       param:node="ancestor-or-self::article[1]"
+       fo:text-align="center"
+       fo:keep-with-next="always"
+       fo:font-size="&amp;hsize5;"
+       fo:font-weight="bold"
+       fo:font-family="{$title.font.family}"/&gt;</pre>
+<p>are now unqualified:</p> 
+<pre class="programlisting">&lt;title t:named-template="component.title"
+       param:node="ancestor-or-self::article[1]"
+       text-align="center"
+       keep-with-next="always"
+       font-size="&amp;hsize5;"
+       font-weight="bold"
+       font-family="{$title.font.family}"/&gt;</pre>
+<p>The <code class="sgmltag-element">t:titlepage</code> and <code class="sgmltag-element">t:titlepage-content</code>
+elements both generate wrappers now. And unqualified attributes on those elements
+are passed through. This means that you can now make the title font apply to
+ane entire titlepage and make the entire <span class="quote">&#8220;<span class="quote">recto</span>&#8221;</span>
+titlepage centered by specifying the font and alignment on the those elements:</p> 
+<pre class="programlisting">&lt;t:titlepage t:element="article" t:wrapper="fo:block"
+             font-family="{$title.font.family}"&gt;
+
+  &lt;t:titlepage-content t:side="recto"
+             text-align="center"&gt;</pre>
+
+
+
+
+
+</li><li class="listitem">
+<p>Support use of <a href="http://docbook.org/tdg5/en/html/titleabbrev.html"><code class="sgmltag-element">titleabbrev</code></a> in running
+headers and footers.
+</p>
+</li><li class="listitem">
+<p>Added (experimental) <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/xref.with.number.and.title.html"><em class="parameter"><code>xref.with.number.and.title</code></em></a>
+parameter to enable number/title cross references even when the
+default would
+be just the number.
+</p>
+</li><li class="listitem">
+<p>Generate <a href="http://docbook.org/tdg5/en/html/part.html"><code class="sgmltag-element">part</code></a> ToCs if they're requested.
+</p>
+</li><li class="listitem">
+<p>Use proportional-column-width() in header/footer tables.
+</p>
+</li><li class="listitem">
+<p>Handle alignment correctly when <a href="http://docbook.org/tdg5/en/html/screenshot.html"><code class="sgmltag-element">screenshot</code></a>
+wraps a graphic in a <a href="http://docbook.org/tdg5/en/html/figure.html"><code class="sgmltag-element">figure</code></a>.
+</p>
+</li><li class="listitem">
+<p>Format <a href="http://docbook.org/tdg5/en/html/chapter.html"><code class="sgmltag-element">chapter</code></a> and <a href="http://docbook.org/tdg5/en/html/appendix.html"><code class="sgmltag-element">appendix</code></a>
+cross references consistently.
+</p>
+</li><li class="listitem">
+<p>Attempt to support tables with multiple <a href="http://docbook.org/tdg5/en/html/tgroup.html"><code class="sgmltag-element">tgroup</code></a>s
+in FO.
+</p>
+</li><li class="listitem">
+<p>Output <code class="sgmltag-element">fo:table-columns</code> in
+<a href="http://docbook.org/tdg5/en/html/simplelist.html"><code class="sgmltag-element">simplelist</code></a> tables.
+</p>
+</li><li class="listitem">
+<p>Use <code class="filename">titlepage.templates.xml</code> for
+<a href="http://docbook.org/tdg5/en/html/indexdiv.html"><code class="sgmltag-element">indexdiv</code></a> and <a href="http://docbook.org/tdg5/en/html/glossdiv.html"><code class="sgmltag-element">glossdiv</code></a> formatting.
+</p>
+</li><li class="listitem">
+<p>Improve support for new bibliography elements.
+</p>
+</li><li class="listitem">
+<p>Added
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/footnote.number.format.html"><em class="parameter"><code>footnote.number.format</code></em></a>,
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/table.footnote.number.format.html"><em class="parameter"><code>table.footnote.number.format</code></em></a>,
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/footnote.number.symbols.html"><em class="parameter"><code>footnote.number.symbols</code></em></a>, and
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/table.footnote.number.symbols.html"><em class="parameter"><code>table.footnote.number.symbols</code></em></a> for better control of
+footnote markers.
+</p>
+</li><li class="listitem">
+<p>Added <code class="sgmltag-element">glossentry.show.acronyms</code>.
+</p>
+</li><li class="listitem">
+<p>Suppress the draft-mode page masters when
+<em class="parameter"><code>draft-mode</code></em> is <span class="quote">&#8220;<span class="quote">no</span>&#8221;</span>.
+</p>
+</li><li class="listitem">
+<p>Make blank pages verso not recto. D'Oh!
+</p>
+</li><li class="listitem">
+<p>Improved formatting of <code class="sgmltag-element">ulink</code> footnotes.
+</p>
+</li><li class="listitem">
+<p>Fixed bugs in graphic width/height calculations.
+</p>
+</li><li class="listitem">
+<p>Added class attributes to inline elements.
+</p>
+</li><li class="listitem">
+<p>Don't add <span class="quote">&#8220;<span class="quote">.html</span>&#8221;</span> to the filenames identified
+with the <span class="quote">&#8220;<span class="quote">dbhtml</span>&#8221;</span> PI.
+</p>
+</li><li class="listitem">
+<p>Don't force a ToC when sections contain <a href="http://docbook.org/tdg5/en/html/refentry.html"><code class="sgmltag-element">refentry</code></a>s.
+</p>
+</li><li class="listitem">
+<p>Make section title sizes a function of the
+<em class="parameter"><code>body.master.size</code></em>.
+</p>
+</li></ul></div> 
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1592"></a>Release 1.59.2</h2></div></div></div>
+ 
+<div class="itemizedlist"><p>The 1.59.2 fixes an FO bug in the page masters that causes FOP to fail.
+</p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>Removed the region-name from the region-body of blank pages. There's
+no reason to give the body of blank pages a unique name and doing so causes
+a mismatch that FOP detects.
+</p>
+</li><li class="listitem">
+<p>Output IDs for the first paragraphs in listitems.
+</p>
+</li><li class="listitem">
+<p>Fixed some small bugs in the handling of page numbers in double-sided mode.
+</p>
+</li><li class="listitem">
+<p>Attempt to prevent duplicated IDs from being produced when
+<code class="sgmltag-attribute">endterm</code> on <a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> points
+to something with nested structure.
+</p>
+</li><li class="listitem">
+<p>Fix aligment problems in <a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a>s.
+</p>
+</li><li class="listitem">
+<p>Output the type attribute on unordered lists (UL) in HTML only if
+the css.decoration parameter is true.
+</p>
+</li><li class="listitem">
+<p>Calculate the font size in formal.title.properties so that it's 1.2 times
+the base font size, not a fixed "12pt".
+</p>
+</li></ul></div> 
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1591"></a>Release 1.59.1</h2></div></div></div>
+ 
+<div class="itemizedlist"><p>The 1.59.1 fixes a few bugs.
+</p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>Added Bulgarian localization.
+</p>
+</li><li class="listitem">
+<p>Indexing improvements; localize book indexes to books but allow setindex
+to index an entire set.
+</p>
+</li><li class="listitem">
+<p>The default value for rowsep and colsep is now "1" as per CALS.
+</p>
+</li><li class="listitem">
+<p>Added support for <a href="http://docbook.org/tdg5/en/html/titleabbrev.html"><code class="sgmltag-element">titleabbrev</code></a> (use them for cross
+references).
+</p>
+</li><li class="listitem">
+<p>Improvements to <a href="http://docbook.org/tdg5/en/html/mediaobject.html"><code class="sgmltag-element">mediaobject</code></a> for selecting print vs. online
+images.
+</p>
+</li><li class="listitem">
+<p>Added seperate property sets for <a href="http://docbook.org/tdg5/en/html/figure.html"><code class="sgmltag-element">figure</code></a>s,
+<a href="http://docbook.org/tdg5/en/html/example.html"><code class="sgmltag-element">example</code></a>s, <a href="http://docbook.org/tdg5/en/html/equation.html"><code class="sgmltag-element">equation</code></a>s, <code class="sgmltag-element">tables</code>s,
+and <a href="http://docbook.org/tdg5/en/html/procedure.html"><code class="sgmltag-element">procedure</code></a>s.
+</p>
+</li><li class="listitem">
+<p>Make <a href="http://docbook.org/tdg5/en/html/lineannotation.html"><code class="sgmltag-element">lineannotation</code></a>s italic.
+</p>
+</li><li class="listitem">
+<p>Support <code class="sgmltag-attribute">xrefstyle</code> attribute.
+</p>
+</li><li class="listitem">
+<p>Make <code class="sgmltag-attribute">endterm</code> on
+<a href="http://docbook.org/tdg5/en/html/xref.html"><code class="sgmltag-element">xref</code></a> higher priority than
+<code class="sgmltag-attribute">xreflabel</code> target.
+</p>
+</li><li class="listitem">
+<p>Glossary formatting improvements.
+</p>
+</li></ul></div> 
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1580"></a>Release 1.58.0</h2></div></div></div>
+ 
+<div class="itemizedlist"><p>The 1.58.0 adds some initial support for extensions in xsltproc, adds
+a few features, and fixes bugs.
+</p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>This release contains the first attempt at extension support for xsltproc.
+The only extension available to date is the one that adjusts table column widths.
+Run <code class="filename">extensions/xsltproc/python/xslt.py</code>.
+</p>
+</li><li class="listitem">
+<p>Fixed bugs in calculation of adjusted column widths to correct for rounding
+errors.
+</p>
+</li><li class="listitem">
+<p>Support nested <a href="http://docbook.org/tdg5/en/html/refsection.html"><code class="sgmltag-element">refsection</code></a> elements correctly.
+</p>
+</li><li class="listitem">
+<p>Reworked <code class="literal">gentext.template</code> to take context into consideration.
+The name of elements in localization files is now an xpath-like context list, not
+just a simple name.
+</p>
+</li><li class="listitem">
+<p>Made some improvements to bibliography formatting.
+</p>
+</li><li class="listitem">
+<p>Improved graphical formatting of admonitions.
+</p>
+</li><li class="listitem">
+<p>Added support for <a href="http://docbook.org/tdg5/en/html/entrytbl.html"><code class="sgmltag-element">entrytbl</code></a>.
+</p>
+</li><li class="listitem">
+<p>Support spanning index terms.
+</p>
+</li><li class="listitem">
+<p>Support <a href="http://docbook.org/tdg5/en/html/bibliosource.html"><code class="sgmltag-element">bibliosource</code></a>.
+</p>
+</li></ul></div> 
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1570"></a>Release 1.57.0</h2></div></div></div>
+
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>The 1.57.0 release wasn't documented here. Oops.
+</p>
+</li></ul></div> 
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="V1560"></a>Release 1.56.0</h2></div></div></div>
+ 
+<div class="itemizedlist"><p>The 1.56.0 release fixes bugs.
+</p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<p>Reworked chunking. <span class="emphasis"><em>This will break all existing customizations
+layers that change the chunking algorithm.</em></span> If you're customizing chunking,
+look at the new <span class="quote">&#8220;<span class="quote">content</span>&#8221;</span> parameter that's passed to
+<code class="literal">process-chunk-element</code> and friends.
+</p>
+</li><li class="listitem">
+<p>Support continued and inherited numeration in <a href="http://docbook.org/tdg5/en/html/orderedlist.html"><code class="sgmltag-element">orderedlist</code></a>
+formatting for FOs.
+</p>
+</li><li class="listitem">
+<p>Added Thai localization.
+</p>
+</li><li class="listitem">
+<p>Tweaked stylesheet documentation stylesheets to link to TDG and
+the parameter references.
+</p>
+</li><li class="listitem">
+<p>Allow title on tables of contents ("Table of Contents") to be optional.
+Added new keyword to <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/generate.toc.html"><em class="parameter"><code>generate.toc</code></em></a>.
+Support tables of contents on sections.
+</p>
+</li><li class="listitem">
+<p>Made separate parameters for table borders and table cell borders:
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/table.frame.border.color.html"><em class="parameter"><code>table.frame.border.color</code></em></a>,
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/table.frame.border.style.html"><em class="parameter"><code>table.frame.border.style</code></em></a>,
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/table.frame.border.thickness.html"><em class="parameter"><code>table.frame.border.thickness</code></em></a>,
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/table.cell.border.color.html"><em class="parameter"><code>table.cell.border.color</code></em></a>,
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/table.cell.border.style.html"><em class="parameter"><code>table.cell.border.style</code></em></a>, and
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/table.cell.border.thickness.html"><em class="parameter"><code>table.cell.border.thickness</code></em></a>.
+</p>
+</li><li class="listitem">
+<p>Suppress formatting of <span class="quote">&#8220;<span class="quote">endofrange</span>&#8221;</span> <a href="http://docbook.org/tdg5/en/html/indexterm.html"><code class="sgmltag-element">indexterm</code></a>s.
+This is only half-right. They should generate a range, but I haven't figured out how
+to do that yet.
+</p>
+</li><li class="listitem">
+<p>Support <a href="http://docbook.org/tdg5/en/html/revdescription.html"><code class="sgmltag-element">revdescription</code></a>. (Bug #582192)
+</p>
+</li><li class="listitem">
+<p>Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/default.float.class.html"><em class="parameter"><code>default.float.class</code></em></a> and fixed figure
+floats. (Bug #497603)
+</p>
+</li><li class="listitem">
+<p>Fixed formatting of <a href="http://docbook.org/tdg5/en/html/sbr.html"><code class="sgmltag-element">sbr</code></a> in FOs.
+</p>
+</li><li class="listitem">
+<p>Added context to the <span class="quote">&#8220;<span class="quote">missing template</span>&#8221;</span> error message.
+</p>
+</li><li class="listitem">
+<p>Process <a href="http://docbook.org/tdg5/en/html/arg.html"><code class="sgmltag-element">arg</code></a> correctly in a <a href="http://docbook.org/tdg5/en/html/group.html"><code class="sgmltag-element">group</code></a>.
+(Bug #605150)
+</p>
+</li><li class="listitem">
+<p>Removed 'keep-with-next' from <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/formal.title.properties.html"><em class="parameter"><code>formal.title.properties</code></em></a>
+attribute set now that the stylesheets support the option of putting
+such titles below the object. Now the $placement value determines if
+'keep-with-next' or 'keep-with-previous' is used in the title block.
+</p>
+</li><li class="listitem">
+<p>Wrap <span class="quote">&#8220;<span class="quote">url()</span>&#8221;</span> around external-destinations when appropriate.
+</p>
+</li><li class="listitem">
+<p>Fixed typo in compact list spacing. (Bug #615464)
+</p>
+</li><li class="listitem">
+<p>Removed spurious hash in anchor name. (Bug #617717)
+</p>
+</li><li class="listitem">
+<p>Address is now displayed verbatim on title pages. (Bug #618600)
+</p>
+</li><li class="listitem">
+<p>The <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/bridgehead.in.toc.html"><em class="parameter"><code>bridgehead.in.toc</code></em></a> parameter is now properly
+supported.
+</p>
+</li><li class="listitem">
+<p>Improved effectiveness of HTML cleanup by increasing the number
+of places where it is used. Improve use of HTML cleanup in XHTML stylesheets.
+</p>
+</li><li class="listitem">
+<p>Support table of contents for <a href="http://docbook.org/tdg5/en/html/appendix.html"><code class="sgmltag-element">appendix</code></a> in
+<a href="http://docbook.org/tdg5/en/html/article.html"><code class="sgmltag-element">article</code></a>. (Bug #596599)
+</p>
+</li><li class="listitem">
+<p>Don't duplicate footnotes in <a href="http://docbook.org/tdg5/en/html/bibliography.html"><code class="sgmltag-element">bibliography</code></a>s and
+<a href="http://docbook.org/tdg5/en/html/glossary.html"><code class="sgmltag-element">glossary</code></a>s. (Bug #583282)
+</p>
+</li><li class="listitem">
+<p>Added <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/default.image.width.html"><em class="parameter"><code>default.image.width</code></em></a>. (Bug #516859)
+</p>
+</li><li class="listitem">
+<p>Totally reworked <a href="http://docbook.org/tdg5/en/html/funcsynopsis.html"><code class="sgmltag-element">funcsynopsis</code></a> code; it now
+supports a 'tabular' presentation style for 'wide' prototypes; see
+<em class="parameter"><code>funcsynopsis.tabular.threshold</code></em>. (HTML only
+right now, I think, FO support, uh, real soon now.)
+</p>
+</li><li class="listitem">
+<p>Reworked support for difference marking; toned down the colors a bit
+and added a <span class="quote">&#8220;<span class="quote">system.head.content</span>&#8221;</span> template so that the diff CSS
+wasn't overriding <span class="quote">&#8220;<span class="quote">user.head.content</span>&#8221;</span>. (Bug #610660)
+</p>
+</li><li class="listitem">
+<p>Added call to the <span class="quote">&#8220;<span class="quote">*.head.content</span>&#8221;</span> elements when writing
+out long description chunks.
+</p>
+</li><li class="listitem">
+<p>Make sure <a href="http://docbook.org/tdg5/en/html/legalnotice.html"><code class="sgmltag-element">legalnotice</code></a> link is correct even when
+chunking to a different <a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/base.dir.html"><em class="parameter"><code>base.dir</code></em></a>.
+</p>
+</li><li class="listitem">
+<p>Use CSS to set viewport characteristics if
+<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/css.decoration.html"><em class="parameter"><code>css.decoration</code></em></a> is non-zero, use div instead of p for making
+graphic a block element; make figure <a href="http://docbook.org/tdg5/en/html/title.html"><code class="sgmltag-element">title</code></a>s the
+default alt
+text for images in a <a href="http://docbook.org/tdg5/en/html/figure.html"><code class="sgmltag-element">figure</code></a>.</p>
+</li><li class="listitem">
+<p>Added space-after to <a href="http://docbook.sourceforge.net/release/xsl/current/doc/fo/list.block.spacing.html"><em class="parameter"><code>list.block.spacing</code></em></a>.
+</p>
+</li><li class="listitem">
+<p>Reworked section.level template to give <span class="quote">&#8220;<span class="quote">correct</span>&#8221;</span> answer
+instead of being off by one.
+</p>
+</li><li class="listitem">
+<p>When processing tables, use the <code class="sgmltag-attribute">tabstyle</code>
+attribute as the division class.
+</p>
+</li><li class="listitem">
+<p>Fixed bug in <code class="filename">html2xhtml.xsl</code> that was causing the
+XHTML chunker to output HTML instead of XHTML.
+</p>
+</li></ul></div> 
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="VOlder"></a>Older releases</h2></div></div></div>
+  
+  <p>To view the release notes for older releases, see <code class="uri"><a class="uri" href="http://cvs.sourceforge.net/viewcvs.py/docbook/xsl/RELEASE-NOTES.xml" target="_top">http://cvs.sourceforge.net/viewcvs.py/docbook/xsl/RELEASE-NOTES.xml</a></code>. Be
+  aware that there were no release notes for releases prior to the
+  1.50.0 release.</p>
+</div>
+<div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="dot0"></a>About dot-zero releases</h2></div></div></div>
+  
+    <p>DocBook Project &#8220;dot zero&#8221; releases should be
+    considered <span class="emphasis"><em>experimental</em></span> and are always
+    followed by stable &#8220;dot one plus&#8221; releases, usually within
+    two or three weeks. Please help to ensure the stability of
+    &#8220;dot one plus&#8221; releases by carefully testing each
+    &#8220;dot zero&#8221; release and reporting back about any
+    problems you find. </p>
+    <p>It is not recommended that you use a &#8220;dot zero&#8221;
+    release in a production system. Instead, you should wait for
+    the &#8220;dot one&#8221; or greater versions.</p>
+  </div>
+</div></body></html>
+
diff --git a/applications/content/template/docbook/RELEASE-NOTES.pdf b/applications/content/template/docbook/RELEASE-NOTES.pdf
new file mode 100644
index 0000000..75c2d21
--- /dev/null
+++ b/applications/content/template/docbook/RELEASE-NOTES.pdf
Binary files differ
diff --git a/applications/content/template/docbook/RELEASE-NOTES.txt b/applications/content/template/docbook/RELEASE-NOTES.txt
new file mode 100644
index 0000000..56f67ab
--- /dev/null
+++ b/applications/content/template/docbook/RELEASE-NOTES.txt
@@ -0,0 +1,9817 @@
+Release Notes for the DocBook XSL Stylesheets
+
+$Revision$ $Date$
+
+2012-06-04
+
+This release-notes document is available in the following formats: HTML, PDF,
+plain text; it provides a per-release list of enhancements and changes to the
+stylesheets’ public APIs (user-configurable parameters) and excludes
+descriptions of most bug fixes. For a complete list of all changes (including
+all bug fixes) that have been made since the previous release, see the separate
+NEWS (plain text) or NEWS.html files. Also available: An online hyperlinked
+change history (warning: big file) of all changes made over the entire history
+of the codebase.
+
+As with all DocBook Project “dot one plus” releases, this release aspires to be
+stable (in contrast to dot-zero releases, which are experimental).
+
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+
+Table of Contents
+
+Release Notes: 1.77.1
+
+    Gentext
+    Common
+    FO
+    HTML
+    Epub
+    HTMLHelp
+    Eclipse
+    JavaHelp
+    Webhelp
+    Params
+    Highlighting
+    Profiling
+    Lib
+    Template
+    Extensions
+    XSL-Saxon
+
+Release Notes: 1.77.1
+
+    FO
+    HTML
+    Roundtrip
+    Slides
+    Website
+    Webhelp
+
+Release Notes: 1.76.1
+
+    FO
+    HTML
+    Params
+
+Release Notes: 1.76.0
+
+    Gentext
+    Common
+    FO
+    HTML
+    Manpages
+    Epub
+    Eclipse
+    Params
+    XSL-Xalan
+
+Release Notes: 1.75.2
+
+    Gentext
+    Common
+    FO
+    HTML
+    Manpages
+    Epub
+    Profiling
+    XSL-Saxon
+    XSL-Xalan
+
+Release Notes: 1.75.1
+
+    FO
+    HTML
+    Epub
+    Params
+
+Release Notes: 1.75.0
+
+    Gentext
+    Common
+    FO
+    HTML
+    Manpages
+    ePub
+    HTMLHelp
+    Params
+    Highlighting
+    XSL-Saxon
+    XSL-Xalan
+
+Release Notes: 1.74.3
+Release Notes: 1.74.2
+Release Notes: 1.74.1
+
+    Gentext
+    FO
+    HTML
+    Manpages
+    ePub
+    Roundtrip
+    Params
+    Highlighting
+
+Release Notes: 1.74.0
+
+    Gentext
+    Common
+    FO
+    HTML
+    Manpages
+    Epub
+    HTMLHelp
+    Eclipse
+    JavaHelp
+    Roundtrip
+    Slides
+    Website
+    Params
+    Profiling
+    Tools
+    Extensions
+    XSL-Saxon
+    XSL-Xalan
+    XSL-libxslt
+
+Release Notes: 1.73.2
+Release: 1.73.1
+
+    Gentext
+    FO
+    HTML
+    Manpages
+    HTMLHelp
+    Eclipse
+    JavaHelp
+    Roundtrip
+    Params
+
+Release: 1.73.0
+
+    Gentext
+    Common
+    FO
+    HTML
+    Manpages
+    Eclipse
+    JavaHelp
+    Roundtrip
+    Params
+    Highlighting
+    Profiling
+    Lib
+    Tools
+    XSL-Saxon
+    XSL-Xalan
+
+Release: 1.72.0
+
+    Common
+    FO
+    HTML
+    Manpages
+    Params
+    Template
+    Roundtrip
+
+Release: 1.71.1
+
+    Common
+    FO
+    HTML
+    Highlighting
+    Manpages
+    Params
+    Profiling
+
+Release: 1.71.0
+
+    Common
+    Extensions
+    FO
+    HTML
+    Highlighting
+    Manpages
+    Params
+    Tools
+
+Release: 1.70.1
+
+    FO
+    HTML
+    HTMLHelp
+    Params
+
+Release: 1.70.0
+
+    Common
+    Extensions
+    FO
+    HTML
+    Manpages
+    Params
+    Profiling
+    Tools
+    WordML
+
+Release 1.69.1
+Release 1.69.0
+
+    Common
+    FO
+    Help
+    HTML
+    man
+
+Release 1.68.1
+Release 1.68.0
+Release 1.67.2
+Release 1.67.1
+Release 1.67.0
+Release 1.66.1
+Release 1.65.0
+Release 1.64.1
+Release 1.61.0
+Release 1.60.1
+Release 1.59.2
+Release 1.59.1
+Release 1.58.0
+Release 1.57.0
+Release 1.56.0
+Older releases
+About dot-zero releases
+
+Release Notes: 1.77.1
+
+The following list summarizes the major changes that have been made since the
+1.76.1 release. It is followed by sections detailing changes to individual
+files from the SVN checkin logs, edited to remove housekeeping changes and bug
+fixes. See the NEWS.xml file for a complete unedited list of SVN changes.
+
+  • Gentext
+
+    webhelp
+
+        Many improvements to the generated text for webhelp output.
+
+  • Common
+
+    Support more media types
+
+        Expanded list of supported filename extensions for media to include
+        video and audio, mostly for HTML5 and EPUB3 outputs.
+
+    Topic element
+
+        Add basic support for new topic element, which is available in DocBook
+        5.1. Generally a topic element will be used with assembly and may be
+        transformed to some other hierarchical element during processing, but
+        it can also be formatted as a plain topic.
+
+  • FO
+
+    Add para.properties attribute-set
+
+        Add a para.properties attribute-set that applies only to para elements.
+        That allows still using normal.para.spacing attribute-set for many
+        block elements for uniform spacing, but allows separate formatting of
+        para elements.
+
+    List of titles in article
+
+        Add support for List of Tables, List of Figures, etc. for articles and
+        other component-level elements. Includes a new template for each in
+        autotoc.xsl, new attribute-sets in titlepage.xsl, and new entries in
+        the titlepage.templates.xml file tu support customization.
+
+    Customizing links in FO
+
+        Add template mode simple.xlink.properties to allow easy customization
+        of formatting of links generated from elements that use the xlink
+        attributes. This extends link formatting beyond that of xref, link, and
+        olink which use xref.properties attribute-set.
+
+    Table caption
+
+        The caption element in an HTML table is now handled like a title in a
+        CALS table, using the formal.object.title template with all its
+        features, including placement. Now caption template in mode="htmlTable"
+        does nothing, because caption handled by formal.object.title template.
+        Also adds support for table caption element in a CALS table, placing it
+        after the table.
+
+    Graphics attribute handling
+
+        Refactored the big process.image template to use individual templates
+        such as image.width for most attributes to allow easier customization
+        of individual properties.
+
+    Side regions
+
+        Add support for side page regions in addition to header and footer
+        regions. This feature lets you add running content to the side margins,
+        and by default the content is rotated 90 degrees. Adds new templates
+        named running.side.content, region.inner and region.outer; new template
+        modes region.inner.mode and region.outer.mode; new parameters named
+        region.inner.extent, region.outer.extent, body.margin.inner,
+        body.margin.outer, and side.region.precedence; and new attribute-sets
+        named inner.region.content.properties, outer.region.content.properties,
+        region.inner.properties, and region.outer.properties.
+
+    Callout formatting
+
+        Add new attribute-sets for calloutlist.
+
+    Topic element
+
+        Add basic support for formatting a topic element, which is available in
+        DocBook 5.1.
+
+  • HTML
+
+    HTML5
+
+        Add variables to the base HTML stylesheets that can be adjusted for the
+        HTML5 stylesheets.
+
+    Insert Javascript reference
+
+        Add support for html.script param to insert reference to a Javascript
+        file.
+
+    Namespace for titlepage mechanism.
+
+        Titlepage mechanism is now namespace aware to support XHTML.
+
+    Chunked filename prefix
+
+        New param named chunked.filename.prefix lets you add a filename prefix
+        to each chunked file. This replaces the buggy practice of adding such a
+        prefix to the base.dir param. Now the base.dir param will always have a
+        trailing slash added if it is not present, so you no longer have to
+        remember to add it to the param value.
+
+    Generate id attributes
+
+        The stylesheet param generate.id.attributes already existed but was
+        incompletely implemented. Now when it is set to 1, only id attributes
+        should be output, not <a name> named anchors.
+
+    Generate consistent id attributes
+
+        New generate.consistent.ids parameter which allows generating a more
+        stable id values based on XPath rather than the generate-id() function,
+        which may not produce consistent values between runs. Stable output ids
+        allow you to make stable links to generated content from the outside.
+
+    Topic element
+
+        Add basic support for formatting a topic element, which is available in
+        DocBook 5.1. Generally a topic element will be used with assembly and
+        may be transformed to some other hierarchical element during
+        processing, but it can also be formatted as a plain topic.
+
+  • Webhelp
+
+    Webhelp refactored
+
+        Webhelp templates refactored to better support customization.
+
+    Added documentation.
+
+        More and better documentation added.
+
+    Webhelp generated text
+
+        Many improvements to the generated text for webhelp output.
+
+  • XHTML5
+
+    New stylesheets to generate HTML5 output, in an XML serialization. These
+    templates are a customization layer on top of the XHTML stylesheet files.
+
+  • EPUB3
+
+    New stylesheets to generate EPUB3 output. These templates are a
+    customization layer on top of the xhtml5 stylesheet files.
+
+  • Assembly
+
+    New assembly.xsl stylesheet to convert a DocBook 5.1 assembly into a
+    standard DocBook 5 document. Also includes a topic-maker-chunk.xsl
+    stylesheet that can convert a DocBook 5 book or article document into an
+    assembly with a collection of modular files, including converting some
+    elements to topic files.
+
+Gentext
+
+The following changes have been made to the gentext code since the 1.76.1
+release.
+
+  • stefanhinz: locale/de.xml
+
+    Translated German WebHelp strings
+
+  • David Cramer: locale/zh.xml; locale/en.xml; locale/fr.xml; locale/de.xml;
+    locale/ja.xml
+
+    Webhelp: Update non-en gentext strings
+
+  • Robert Stayton: locale/en.xml
+
+    Add topic to title-numbered context.
+
+  • Robert Stayton: locale/en.xml
+
+    Add basic topic element templates.
+
+  • Mauritz Jeanson: locale/el.xml
+
+    Updated gentext for quotation marks. Fixes bug #3512440.
+
+  • Jirka Kosek: locale/cs.xml
+
+    Adding missing context for webhelp
+
+  • David Cramer: locale/en.xml
+
+    Fixing syntax of webhelp gentext entries
+
+  • David Cramer: locale/en.xml
+
+    Moving webhelp gentext strings into a context
+
+  • tom_schr: locale/zh.xml; locale/en.xml; locale/cs.xml; locale/fr.xml;
+    locale/de.xml; local⋯
+
+    Moved language specific of WebHelp to gentext/locale/ as discussed with
+    Stefan following the "minimal intrusive approach". :)
+    In the long run, maybe moving the text into a context, not sure.
+
+  • Jirka Kosek: locale/ru.xml
+
+    Aligned capitalization of first letters with English original
+
+Common
+
+The following changes have been made to the common code since the 1.76.1
+release.
+
+  • Robert Stayton: common.xsl
+
+    In "select.mediaobject.index" template, add selection of videoobject
+    and audioobject since now supported in HTML5.
+
+  • Robert Stayton: labels.xsl; titles.xsl; entities.ent; targets.xsl;
+    subtitles.xsl; gentext.⋯
+
+    Add basic support for new <topic> element.
+
+  • Robert Stayton: common.xsl
+
+    Fix handling of mediatypes for video and audio files, mostly for HTML5 and EPUB3 outputs.
+
+  • Robert Stayton: olink.xsl
+
+    Generate error message if olink data in targetset is in a namespace.
+
+  • Robert Stayton: common.xsl
+
+    Add support for generate.consistent.ids parameter.
+
+  • Robert Stayton: subtitles.xsl
+
+    Add verbose param to subtitle.markup templates to allow its
+    error message to be ignored.
+    Add that param to fop1.xsl application of subtitle.markup
+    to avoid unnecessary error message in document information.
+
+  • Robert Stayton: labels.xsl
+
+    Add empty templates for glossdiv, glosslist, and glossentry in
+    mode="label.markup".
+
+FO
+
+The following changes have been made to the fo code since the 1.76.1 release.
+
+  • Robert Stayton: graphics.xsl
+
+    qualify caption template to mediaobject/caption so not confused with table/caption.
+
+  • Robert Stayton: table.xsl
+
+    Add template to process table/caption element.
+
+  • Robert Stayton: titlepage.xsl; autotoc.xsl; component.xsl; xref.xsl;
+    titlepage.templates.x⋯
+
+    Add basic support for new <topic> element.
+
+  • Robert Stayton: graphics.xsl
+
+    Fix handling of mediatypes for video and audio files, mostly for HTML5 and EPUB3 outputs.
+
+  • Robert Stayton: titlepage.xsl
+
+    Add default style att-sets for component.list.of.titles, etc.
+
+  • Robert Stayton: autotoc.xsl; component.xsl; titlepage.templates.xml
+
+    Add make.component.tocs to support lists of tables, etc. for
+    article and other components.  Added component.list.of.tables to
+    titlepage.templates.xml to format the title.
+
+  • Robert Stayton: param.xweb; param.ent
+
+    Add new para.properties attribute-set for paragraphs.
+
+  • Robert Stayton: inline.xsl
+
+    Add template mode 'simple.xlink.properties' to allow
+    easy customization of formatting of links generated
+    from elements other than xref, link, and olink using
+    the xlink attributes.
+
+  • Robert Stayton: param.xweb; param.ent
+
+    Add table.caption.properties to format table captions.
+
+  • Robert Stayton: table.xsl
+
+    Add support for caption in a CALS table.
+
+  • Robert Stayton: graphics.xsl; math.xsl
+
+    Refactored the 'process.image' template to create modular
+    templates for each attribute so they can be individually
+    customized.  Also merged in support for embedded svg and
+    mml content so they can have image attributes too.
+
+  • Robert Stayton: param.xweb; param.ent
+
+    Check in new params for FO side regions in page masters.
+
+  • Robert Stayton: titlepage.xsl; titlepage.templates.xml
+
+    Add support for itermset in info elements, using titlepage mechanism
+    to ensure entries are placed inside page-sequence.
+
+  • Robert Stayton: pagesetup.xsl
+
+    Add support for side body margins and side static content regions.
+    Fixes bug 3389931.
+
+  • Robert Stayton: param.xweb; param.ent; task.xsl
+
+    Add attribute-set task.properties to task element to
+    support customization.
+
+  • Robert Stayton: lists.xsl; param.xweb; param.ent
+
+    Add new attribute-sets calloutlist.properties and callout.properties
+    to  better support customization of calloutlists, fixing bug 3160341.
+
+  • Jirka Kosek: Makefile
+
+    Titlepage mechanism is now namespace aware to support XHTML. Please note that when generating titlepage template stylesheets you have to pass FO or XHTML namespace inside ns parameter. For HTML parameter should be empty.
+
+  • Robert Stayton: graphics.xsl
+
+    Allow selection by role for multiple imageobject elements
+    within an imageobjectco, which since Docbook 5 allows multiple imageobjects.
+
+  • Mauritz Jeanson: titlepage.xsl
+
+    Added template for collabname. Fixes bug #3414436.
+
+  • David Cramer: verbatim.xsl
+
+    Support the keep-together processing-instruction on programlisting, screen, synopsis, and literallayout. Tracker id #3396906.
+
+  • Robert Stayton: pagesetup.xsl
+
+    Pass the pageclass, sequence, and gentext-key to the template
+    named header.footer.widths to enable further customization
+    based on page master.
+
+  • Jirka Kosek: xref.xsl
+
+    hyphenation of URL content must be disabled for link, not only for ulink because od DB5
+
+  • Jirka Kosek: xref.xsl
+
+    URLs shouldn't be hyphenated as normal text
+
+  • Jirka Kosek: callout.xsl
+
+    Added support for alternative circled numbers
+
+  • Mauritz Jeanson: axf.xsl; fop1.xsl; xep.xsl
+
+    Added support for author/orgname in document metadata. Closes bug #3132862.
+
+  • Robert Stayton: component.xsl
+
+    Add template for article/colophon to avoid nested page-sequence.
+
+HTML
+
+The following changes have been made to the html code since the 1.76.1 release.
+
+  • Robert Stayton: xref.xsl
+
+    Add support for using info/title as well as title in target element.
+
+  • Robert Stayton: component.xsl
+
+    Enable support for html5 features, including using <section> instead of
+    <div> for certain elements, and setting heading level to <h1> for chapters.
+    These features are not changed in the base html stylesheet for backwards
+    compatibility.
+
+  • Robert Stayton: docbook.css.xml
+
+    Add style for footnote rule.
+
+  • Robert Stayton: biblio-iso690.xsl
+
+    Add support for subtitle inside info.
+
+  • Robert Stayton: docbook.xsl
+
+    Add call to new 'root.attributes' placeholder template to allow
+    adding attributes to the <html> output element.
+
+  • Robert Stayton: inline.xsl; titlepage.xsl; formal.xsl; division.xsl;
+    toc.xsl; sections.xsl⋯
+
+    Finish implementation of generate.id.attributes for all elements
+    using the template named id.attribute.
+
+  • Robert Stayton: autotoc.xsl; chunktoc.xsl; titlepage.xsl; chunk-code.xsl;
+    changebars.xsl; ⋯
+
+    Add basic support for new <topic> element.
+
+  • Robert Stayton: graphics.xsl
+
+    Fix handling of mediatypes for video and audio files, mostly for HTML5 and EPUB3 outputs.
+
+  • Robert Stayton: callout.xsl; verbatim.xsl
+
+    Restore programlisting to use <pre> instead of <div> and instead
+    wrap callout img elements in <span> to make valid HTML.
+
+  • Robert Stayton: graphics.xsl
+
+    Turn off img longdesc attribute because not supported by browsers.
+
+  • Robert Stayton: footnote.xsl
+
+    Move square brackets and <sup> inside <a> element for footnote
+    marks to fix display problems in some browsers.
+
+  • Robert Stayton: param.xweb; param.ent
+
+    Add new params html.script and html.script.type to support
+    Javascript references.
+
+  • Robert Stayton: chunk-common.xsl; chunktoc.xsl; titlepage.xsl; chunker.xsl;
+    chunk-code.xsl⋯
+
+    Add support for chunked.filename.prefix param.
+    Make sure base.dir value has a trailing slash in
+    the chunk.base.dir internal param used by the templates.
+
+  • Robert Stayton: formal.xsl; htmltbl.xsl
+
+    Now handles caption in html markup table like title,
+    so formal.object.title is used with all its features, including
+    formatting and placement.
+    Added htmlTable.with.caption template to handle the wrapper, and
+    left htmlTable template unchanged.
+    Now caption template in mode="htmlTable" does nothing, because
+    caption handled by formal.object.title template.
+
+  • Robert Stayton: html.xsl
+
+    Turn off generating the title attribute for block and hierarchical elements.
+    Should only be used for inline elements, usually using the alt element.
+    Also used for links to show the target title.
+
+  • Robert Stayton: lists.xsl
+
+    The spacing="compact" attribute on lists in HTML no longer outputs compact="compact"
+    (or just "compact" in the case of Saxon 6), since that attribute is
+    deprecated and improperly supported.  Instead, the output uses a
+    multiple class attribute such as class="orderedlist compact".
+    Use CSS to style such lists without margin above.
+
+  • Robert Stayton: graphics.xsl
+
+    Allow selection by role for multiple imageobject elements
+    within an imageobjectco, which since Docbook 5 allows multiple imageobjects.
+
+  • Robert Stayton: pi.xsl
+
+    Improve doc descriptions of dbhtml filename and dir.
+
+  • Robert Stayton: autoidx.xsl
+
+    Add setindex to context param in mode="reference" to better
+    support setindex.
+
+  • Robert Stayton: autotoc.xsl
+
+    Support set as child of set in set.toc template.
+
+  • Robert Stayton: qandaset.xsl
+
+    Change question and title templates to replace hard-coded
+    class="local-name()" with mode="class.attribute" to support customization
+    of class values.
+
+  • Norman Walsh: chunktoc.xsl
+
+    Separate book appendixes from article appendixes (so that they can be customized independently)
+
+  • Mauritz Jeanson: graphics.xsl
+
+    Added condition to prevent "Failed to interpret image" messages (SVG is not supported
+    by the graphic size extension).
+
+Epub
+
+The following changes have been made to the epub code since the 1.76.1 release.
+
+  • Robert Stayton: docbook.xsl
+
+    Replace $base.dir with $chunk.base.dir to ensure trailing slash in place.
+
+HTMLHelp
+
+The following changes have been made to the htmlhelp code since the 1.76.1
+release.
+
+  • Robert Stayton: htmlhelp-common.xsl
+
+    Change $base.dir to $chunk.base.dir to ensure trailing slash in place.
+
+Eclipse
+
+The following changes have been made to the eclipse code since the 1.76.1
+release.
+
+  • Robert Stayton: eclipse.xsl; eclipse3.xsl
+
+    Use $chunk.base.dir instead of $base.dir to ensure trailing slash is in place.
+
+JavaHelp
+
+The following changes have been made to the javahelp code since the 1.76.1
+release.
+
+  • Robert Stayton: javahelp.xsl
+
+    Change $base.dir to $chunk.base.dir to ensure trailing slash is present.
+
+  • Mauritz Jeanson: javahelp.xsl
+
+    Replaced empty header.navigation and footer.navigation templates with parameter suppress.navigation=1,
+    which simplifies customization. See bug #3310904.
+
+Webhelp
+
+The following changes have been made to the webhelp code since the 1.76.1
+release.
+
+  • David Cramer: template/common/css/positioning.css
+
+    Webhelp: Adding print-only css rules
+
+  • David Cramer: template/common/main.js
+
+    Webhelp: Arun's fix for bug where heading was partially hidden by header in some situations.
+
+  • David Cramer: xsl/webhelp-common.xsl
+
+    Webhelp: turn off autolabeling by default
+
+  • David Cramer: xsl/webhelp.xsl
+
+    Webhelp: Import xhtml base stylesheets
+
+  • David Cramer: docsrc/readme.xml
+
+    Webhelp: Link to the DocBook reference docs from the webhelp readme
+
+  • David Cramer: xsl/webhelp-common.xsl
+
+    Webhelp: Use gentext value for noscript warning
+
+  • David Cramer: Makefile
+
+    Webhelp: Delete tempfile after DocBook xsl build
+
+  • David Cramer: xsl/webhelp.xsl
+
+    Webhelp: moving parameters into the standard location so they will be part of the parameter reference
+
+  • David Cramer: xsl/webhelp.xsl; xsl/webhelp-common.xsl
+
+    Webhelp: moving parameters into the standard location so they will be part of the parameter reference
+
+  • David Cramer: template/common/main.js
+
+    Webhelp: tweaking scrolldown offset for anchors
+
+  • David Cramer: docsrc/images; docsrc/images/sample.jpg; docsrc/readme.xml;
+    template/content⋯
+
+    Webhelp: updating docs. Ant version, install instructions, handling of images.
+
+  • David Cramer: xsl/webhelp.xsl
+
+    Patch from Arun Bharadwaj to display message if JavaScript is disabled
+
+  • David Cramer: template/content/search/nwSearchFnt.js
+
+    Patch from Arun Bharadwaj to strip quotes from search query strings
+
+  • Robert Stayton: xsl/webhelp.xsl
+
+    Add basic support for new <topic> element.
+
+  • Jirka Kosek: xsl/webhelp.xsl
+
+    Put back old extensibility point.
+
+    Guys, please don't remove existing extensibility points like named templates, it will break existing customizations.
+
+  • David Cramer: xsl/webhelp.xsl
+
+    Moving webhelp gentext strings into a context
+
+  • tom_schr: param.ent
+
+    Disabled branding and brandname entities for the time being
+
+  • tom_schr: param.xweb; param.ent
+
+    Prepared WebHelp reference documentation :)
+    Not clear about parameters brandname and branding: Should they renamed
+    to "webhelp.branding" and "webhelp.brandname"?
+    Currently, docsrc/reference.xml contains only a comment for the WebHelp
+    ref doc to be non-intrusive.
+    Idea is to enable it when it is ready
+
+  • tom_schr: xsl/webhelp.xsl
+
+    Moved language specific of WebHelp to gentext/locale/ as discussed with
+    Stefan following the "minimal intrusive approach". :)
+    In the long run, maybe moving the text into a context, not sure.
+
+  • David Cramer: template/common/css/positioning.css
+
+    Webhelp: Lower the minimum width of content pane
+
+  • kasunbg: xsl/webhelp.xsl; template/common/main.js
+
+    If an user moved to another page by clicking on a toc link, and then clicked on #searchDiv,
+    search should be performed if the cookie textToSearch is not empty.
+
+  • David Cramer: xsl/webhelp.xsl
+
+    Webhelp: Left align titles in nav header. Display  for all but the topmost page
+
+  • David Cramer: template/content/search/stemmers/en_stemmer.js; docsrc/
+    xinclude-test.xml
+
+    Webhelp: Cleanup related to en_stemmer.js changes
+
+  • David Cramer: template/common/css/positioning.css
+
+    Webhelp: Don't put borders around qandaset list
+
+  • David Cramer: template/common/main.js
+
+    Webhelp: Avoid unnecessary scroll ups when anchor is clicked on
+
+  • David Cramer: build.properties
+
+    Webhelp: Show footer nav by default
+
+  • David Cramer: build.properties; build.xml
+
+    Webhelp: Support setting suppress.footer.navigation from build.properties
+
+  • David Cramer: build.properties; build.xml
+
+    Webhelp: Support admon.graphics param in build.properties
+
+  • David Cramer: docsrc/xinclude-test.xml; docsrc/readme.xml
+
+    Webhelp: Adding xinclude example to the demo/readme doc
+
+  • David Cramer: template/common/css/positioning.css
+
+    Webhelp: Remove border around table used to format callout list
+
+  • David Cramer: xsl/webhelp.xsl; template/common/images/admon/tip.png;
+    template/common/image⋯
+
+    Webhelp: Support admon graphics (still off by default)
+
+  • David Cramer: xsl/webhelp.xsl; template/common/css/positioning.css
+
+    Webhelp: Turn on navfooter and fix related css
+
+  • David Cramer: xsl/webhelp.xsl
+
+    Webhelp: Fix error about undeclared doc.title param
+
+  • David Cramer: docsrc/readme.xml
+
+    Webhelp: Adding some test search terms to the readme
+
+  • David Cramer: template/content/search/stemmers/en_stemmer.js
+
+    Handle exceptional cases listed in the Porter 2 stemming algo
+
+  • David Cramer: template/content/search/stemmers/en_stemmer.js
+
+    Webhelp: adding special case word 'say' to en js stemmer
+
+  • David Cramer: template/content/search/stemmers/en_stemmer.js
+
+    Webhelp: Refine stemming of terms that end in (only stem if there's a consonant before the -y)
+
+  • David Cramer: template/content/search/stemmers/en_stemmer.js; template/
+    content/search/nwSe⋯
+
+    Webhelp: fixed bug where words like key, day, and nucleus, were not found due to differences in the way the client stemmer and indexer stemmed words
+
+  • David Cramer: build.xml
+
+    Webhelp: Support xinclude and two-pass profiling in build.xml
+
+  • David Cramer: xsl/webhelp.xsl
+
+    Fix bad link to default topic.
+
+  • kasunbg: docsrc/readme.xml
+
+    Automatically limit the size of the search description to something 140 characters
+
+  • kasunbg: xsl/webhelp.xsl
+
+    removing outline in 'contents' and 'search' buttons that is visible when clicked. tabindex for SIDEBAR button.
+
+  • kasunbg: xsl/webhelp.xsl; build.xml
+
+    Webhelp ant script changes - HTML transformation support for WebHelp - Uses Tagsoup for parsing the bad html.
+    tagsoup-1.2.1.jar is added to trunk/xsl-webhelpindexer/lib/
+
+  • kasunbg: xsl/webhelp.xsl
+
+    proper support for saxon xhtml transformation.
+
+  • kasunbg: template/common/images/callouts/10.png; template/common/images/
+    callouts/11.png; t⋯
+
+    webhelp - adding callouts
+
+  • kasunbg: xsl/webhelp.xsl; template/common/main.js; template/common/css/
+    positioning.css
+
+    webhelp - animations for show/hide Sidebar
+
+  • kasunbg: build.properties
+
+    commenting about brand and brandname
+
+  • kasunbg: Makefile
+
+    parameterized MAKE for webhelp
+
+  • kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css;
+    build.properties; build.xml
+
+    webhelp xsl customization - logo
+
+  • kasunbg: template/content/search/nwSearchFnt.js
+
+    remove some JS warninings
+
+  • kasunbg: template/content/search/nwSearchFnt.js
+
+    Fix for missing "No results found for..." bug
+
+  • kasunbg: xsl/webhelp.xsl
+
+    commented about the importance of the order of css contents. Order is important between the in-html-file css and the linked css files. Some css declarations in jquery-ui-1.8.2.custom.css are over-ridden. If that's a concern, just remove the additional css contents inside these default jquery css files. I thought of keeping them intact for easier maintenance.
+
+  • Jirka Kosek: xsl/webhelp.xsl; template/common/css/positioning.css
+
+    Minor cleanup, added extensibility hook, some styling moved into CSS for easier customization
+
+  • David Cramer: template/content/search/nwSearchFnt.js
+
+    Removing onclick that came from Oxygen's dita stuff
+
+  • kasunbg: docsrc/readme.xml
+
+    webhelp - documenting about features
+
+  • kasunbg: template/common/css/positioning.css
+
+    webhelp search text box
+
+  • kasunbg: template/common/css/positioning.css
+
+    adding header background image
+
+  • kasunbg: xsl/webhelp.xsl; template/common/images/header-bg.png
+
+    new header background image
+
+  • kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css
+
+    fix left navigation
+
+  • kasunbg: template/common/css/positioning.css
+
+    some css
+
+  • kasunbg: build.xml
+
+    Adding html.extension property
+
+  • kasunbg: template/common/css/positioning.css; build.properties; build.xml
+
+    webhelp - Adding enable.stemming, toc.file build properties
+
+  • David Cramer: template/common/css/positioning.css
+
+    Make the webhelp banner slightly larger.
+
+  • David Cramer: template/common/main.js; template/common/css/positioning.css
+
+    Adjust colors and positioning of header and search/toc tabs
+
+  • David Cramer: xsl/webhelp.xsl
+
+    Only put doc title in header
+
+  • David Cramer: template/common/css/positioning.css; template/common/images/
+    main_bg_fade.png
+
+    Adjusting default color of the header
+
+  • kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css
+
+    adjustments to header title. Now output in Opera looks good.
+
+  • kasunbg: template/common/images/sidebar.png; template/content/search/
+    punctuation.props; te⋯
+
+    deleting svn:executable flag from webhelp files
+
+  • kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css; template/
+    common/images/sear⋯
+
+    Customized the left navagation headers; Contents and Search.
+    Adding custom css for the current redmond ui of jquery-ui. These override jquery-ui's default css customizations. These are supposed to take precedence.
+
+  • kasunbg: docsrc/readme.xml
+
+    typo fix
+
+  • kasunbg: template/common/images/next-arrow.png; xsl/webhelp.xsl; template/
+    common/main.js; ⋯
+
+    UI improvements.
+            Moved search highligher to search tab.
+            Added nice icons for navigation buttons etc.
+            Removed footer navigation
+            Corrected tree colorings
+            Overall, some css magic
+
+  • David Cramer: docsrc/readme.xml
+
+    Added listitem thinking SyncRO Soft for their contributions.
+
+  • kasunbg: build.xml
+
+    support for default classpath for Gentoo Linux
+
+  • kasunbg: docsrc/readme.xml
+
+    webhelp - some updates to the documentation about search
+
+  • kasunbg: template/common/css/positioning.css
+
+    Fix for issue 'Keep "search" & "contents" titles always visible in webhelp - ID: 3403438'
+
+  • David Cramer: template/common/images/starsSmall.png
+
+    Changed icons used to show search weightings from stars to boxes so they won't look like user ratings
+
+  • David Cramer: xsl/webhelp.xsl; template/common/main.js; template/common/
+    images/starsSmall.⋯
+
+    Merged Oxygen webhelp improvements (search weightings etc) into trunk: -r9031:9039
+
+  • kasunbg: docsrc/readme.xml
+
+    webhelp documentation - search indexing, faq
+
+  • kasunbg: docsrc/readme.xml
+
+    update webhelp documentation
+
+  • David Cramer: xsl/webhelp.xsl
+
+    Fixed bug where webhelp.default.topic was not being used if it was set
+
+  • David Cramer: xsl/webhelp.xsl; template/content/search/nwSearchFnt.js
+
+    Localize string in nwSearchFnt.js file
+
+  • David Cramer: xsl/webhelp.xsl
+
+    Added tabindex attributes to make tab order in UI more logical in webhelp.
+
+  • David Cramer: template/common/main.js
+
+    Fixed bug where anchors in pages landed beneath the banner.
+
+  • kasunbg: xsl/webhelp.xsl
+
+    Added more comments to the xsl/webhelp/xsl/webhelp.xsl file. Removed some clutter.
+
+  • David Cramer: template/common/main.js
+
+    Fixed problem reported in IE 8. See tracker id # 373747.
+
+  • David Cramer: xsl/webhelp.xsl
+
+    Addressed tracker #3247166 by removing hard-coded reference to ch01.html.
+
+  • kasunbg: build.xml
+
+    Changed the webhelp build.xml to reflect the changes to xsl-webhelpindexer.
+    Added classpaths for xercesImpl and xml-api jars to the indexer. Paths added for *nix environments, need to look at how the current system behaves in Windows. Discussion: http://lists.oasis-open.org/archives/docbook-apps/201011/msg00116.html
+
+  • kasunbg: template/common/images/loading.gif; template/common/jquery/
+    treeview/jquery.treevi⋯
+
+    webhelp: Removing some unnecessary JQuery JS files
+
+  • kasunbg: template/common/main.js
+
+    webhelp: Usability improvement - when click on a node in the TOC tree, the child nodes will auto populate now.
+
+  • kasunbg: xsl/webhelp.xsl
+
+    Added google translated localizations for Japanese, German, French, and Chinese. The translations might not be pretty accurate.
+    Better translations are appreciated.
+
+  • kasunbg: docsrc/readme.xml; template/content/images; template/content/
+    images/sample.jpg
+
+    Added documentation for how to add images to WebHelp
+
+  • Jirka Kosek: xsl/webhelp.xsl
+
+    Added more customization hooks
+    Search code output only when search tab is active
+    Added cs localization
+
+  • Jirka Kosek: xsl/webhelp.xsl
+
+    Added parameter webhelp.common.dir for specifying location of common files (JS+CSS)
+    Added hooks for adding additional user defined tabs
+
+Params
+
+The following changes have been made to the params code since the 1.76.1
+release.
+
+  • David Cramer: webhelp.indexer.language.xml
+
+    Webhelp: Fixing list of supported languages
+
+  • David Cramer: webhelp.indexer.language.xml
+
+    Webhelp: Correct language code in docs for Chinese
+
+  • Mauritz Jeanson: admon.graphics.extension.xml
+
+    Added list of graphics formats.
+
+  • Mauritz Jeanson: passivetex.extensions.xml
+
+    Updated link.
+
+  • tom_schr: webhelp.indexer.language.xml; webhelp.default.topic.xml;
+    webhelp.tree.cookie.id.⋯
+
+    Prepared WebHelp reference documentation :)
+    Not clear about parameters brandname and branding: Should they renamed
+    to "webhelp.branding" and "webhelp.brandname"?
+    Currently, docsrc/reference.xml contains only a comment for the WebHelp
+    ref doc to be non-intrusive.
+    Idea is to enable it when it is ready
+
+  • Robert Stayton: glossary.collection.xml
+
+    Add info about relative paths.
+
+  • Robert Stayton: para.properties.xml
+
+    Special attribute-set for para only.
+
+  • Robert Stayton: table.caption.properties.xml
+
+    To format table captions.
+
+  • Robert Stayton: html.script.type.xml; html.script.xml
+
+    Add support for specifying javascript references like css references.
+
+  • Robert Stayton: body.margin.outer.xml; region.outer.extent.xml;
+    body.margin.inner.xml; reg⋯
+
+    Add support for side regions in FO output.
+
+  • Robert Stayton: chunked.filename.prefix.xml
+
+    New param chunked.filename.prefix to separate any such prefix from
+    the base.dir param, which helps fix bug 3087359.
+
+  • Robert Stayton: generate.consistent.ids.xml
+
+    New param to support replacing generate-id() with xsl:number
+    for more consistent id values.
+
+  • Robert Stayton: task.properties.xml
+
+    Allow task to be customized more easily.
+
+  • Robert Stayton: calloutlist.properties.xml; callout.properties.xml
+
+    Support better customization of callout lists.
+
+  • Jirka Kosek: callout.unicode.start.character.xml
+
+    Added support for alternative circled numbers
+
+  • David Cramer: example.properties.xml
+
+    Made example.properties use keep-together='auto' like table.properies to avoid problems where example/programlisting takes more than one page
+
+  • Mauritz Jeanson: graphicsize.extension.xml
+
+    Added info about supported image formats.
+
+Highlighting
+
+The following changes have been made to the highlighting code since the 1.76.1
+release.
+
+  • Jirka Kosek: csharp-hl.xml
+
+    Added LINQ keywords
+
+  • Jirka Kosek: delphi-hl.xml
+
+    Additional keywords from Yuri Zhilin
+
+Profiling
+
+The following changes have been made to the profiling code since the 1.76.1
+release.
+
+  • David Cramer: profile-mode.xsl
+
+    When profile.* params only consist of space characters, then ignore them.
+
+Lib
+
+The following changes have been made to the lib code since the 1.76.1 release.
+
+  • Robert Stayton: lib.xweb
+
+    Added two utility templates to make lib.xsl work
+    without reference to other modules since it is used
+    that way with profiling/xsl2profile.xsl.
+
+  • Robert Stayton: lib.xweb
+
+    Fix trim.common.uri.paths to first resolve any ../ in
+    the paths.
+
+Template
+
+The following changes have been made to the template code since the 1.76.1
+release.
+
+  • Jirka Kosek: titlepage.xsl
+
+    Titlepage mechanism is now namespace aware to support XHTML. Please note that when generating titlepage template stylesheets you have to pass FO or XHTML namespace inside ns parameter. For HTML parameter should be empty.
+
+Extensions
+
+The following changes have been made to the extensions code since the 1.76.1
+release.
+
+  • kasunbg: Makefile
+
+    webhelp - Adding enable.stemming, toc.file build properties
+
+  • David Cramer: Makefile
+
+    Attempt to convince Makefile that webhelpindexer is dirty
+
+XSL-Saxon
+
+The following changes have been made to the xsl-saxon code since the 1.76.1
+release.
+
+  • Mauritz Jeanson: src/com/nwalsh/saxon/Verbatim.java; src/com/nwalsh/saxon/
+    FormatGraphicCal⋯
+
+    Added fixes to ensure that generated XHTML markup for callouts is in the proper namespace.
+
+Release Notes: 1.77.1
+
+The following is a list of changes that have been made since the 1.77.0
+release.
+
+FO
+
+The following changes have been made to the fo code since the 1.77.0 release.
+
+  • Robert Stayton: docbook.xsl
+
+    Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+    from the filename.
+
+  • Robert Stayton: block.xsl
+
+    In sidebar, turn off space before first para if there is no title.
+
+  • Robert Stayton: math.xsl
+
+    Restored templates for mml:* elements that were accidentally deleted.
+
+HTML
+
+The following changes have been made to the html code since the 1.77.0 release.
+
+  • Robert Stayton: docbook.xsl
+
+    Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+    from the filename.
+
+  • Robert Stayton: sections.xsl
+
+    Use $div.element variable in place of div to support html5 section element.
+    output
+
+  • Robert Stayton: autoidx.xsl
+
+    Fix bug 3528673, missing "separator" param on template with
+    match="indexterm" mode="reference".  That param is passed
+    for endofrange processing to output the range separator.
+
+Roundtrip
+
+The following changes have been made to the roundtrip code since the 1.77.0
+release.
+
+  • Robert Stayton: dbk2ooo.xsl; dbk2pages.xsl; dbk2wordml.xsl; dbk2wp.xsl
+
+    Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+    from the filename.
+
+Slides
+
+The following changes have been made to the slides code since the 1.77.0
+release.
+
+  • Robert Stayton: html/slides-common.xsl
+
+    Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+    from the filename.
+
+Website
+
+The following changes have been made to the website code since the 1.77.0
+release.
+
+  • Robert Stayton: website-common.xsl
+
+    Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+    from the filename.
+
+Webhelp
+
+The following changes have been made to the webhelp code since the 1.77.0
+release.
+
+  • kasunbg: docsrc/readme.xml
+
+    updated webhelp documentation
+
+  • kasunbg: template/content/search/nwSearchFnt.js; xsl/webhelp-common.xsl
+
+    Removed the script htmlFileList.js since it's content is in htmlFileInfoList.js
+
+  • Robert Stayton: xsl/webhelp-common.xsl
+
+    In the <h1> output, replace call to 'get.doc.title' with
+    mode="title.markup" because get.doc.title returns only
+    the string value of the title, losing any markup such
+    as <trademark> or <superscript>.
+
+  • kasunbg: template/common/css/positioning.css; template/content/search/
+    nwSearchFnt.js
+
+    Remove unnecessary bits of code from webhelp
+
+  • David Cramer: docsrc/readme.xml
+
+    Webhelp: Minor edits to the readme
+
+  • David Cramer: xsl/webhelp.xsl; xsl/titlepage.templates.xsl; xsl/
+    titlepage.templates.xml
+
+    Webhelp: Suppress abstracts from titlepages. These are used to create the search result summary sentence and should not be shown
+
+  • David Cramer: build.xml
+
+    Webhelp: calculate path to profile.xsl from main build.xml file
+
+Release Notes: 1.76.1
+
+The following is a list of changes that have been made since the 1.76.0
+release.
+
+FO
+
+The following changes have been made to the fo code since the 1.76.0 release.
+
+  • Robert Stayton: docbook.xsl; xref.xsl; fop1.xsl
+
+    Apply patch to support named destination in fop1.xsl, per Sourceforge
+    bug report #3029845.
+
+HTML
+
+The following changes have been made to the html code since the 1.76.0 release.
+
+  • Keith Fahlgren: highlight.xsl
+
+    Implementing handling for <b> and <i>: transform to <strong> and <em> for XHTML outputs and do not use in the highliting output (per Mauritz Jeanson)
+
+Params
+
+The following changes have been made to the params code since the 1.76.0
+release.
+
+  • Robert Stayton: draft.mode.xml
+
+    Change default for draft.mode to 'no'.
+
+Release Notes: 1.76.0
+
+This release includes important bug fixes and adds the following significant
+feature changes:
+
+Webhelp
+
+    A new browser-based, cross-platform help format with full-text search and
+    other features typically found in help systems. See webhelp/docs/content/
+    ch01.html for more information and a demo.
+
+Gentext
+
+    Many updates and additions to translation/locales thanks to Red Hat, the
+    Fedora Project, and other contributors.
+
+Common
+
+    Faster localization support, as language files are loaded on demand.
+
+FO
+
+    Support for SVG content in imagedata added.
+
+HTML
+
+    Output improved when using 'make.clean.html' and a stock CSS file is now
+    provided.
+
+EPUB
+
+    A number of improvements to NCX, cover and image selection, and XHTML 1.1
+    element choices
+
+The following is a list of changes that have been made since the 1.75.2
+release.
+
+Gentext
+
+The following changes have been made to the gentext code since the 1.75.2
+release.
+
+  • rlandmann: locale/fa.xml
+
+                Update to Persian translation from the Fedora Project
+
+
+  • rlandmann: locale/nds.xml
+
+                Locale for Low German
+
+
+  • Mauritz Jeanson: locale/ka.xml; Makefile
+
+                Added support for Georgian based on patch #2917147.
+
+
+  • rlandmann: locale/nl.xml; locale/ja.xml
+
+                Updated translations from Red Hat and the Fedora Project
+
+
+  • rlandmann: locale/bs.xml; locale/ru.xml; locale/hr.xml
+
+                Updated locales from Red Hat and the Fedora Project
+
+
+  • rlandmann: locale/pt.xml; locale/cs.xml; locale/es.xml; locale/bg.xml;
+    locale/nl.xml; loca⋯
+
+                Updated translations from Red Hat and the Fedora Project
+
+
+  • rlandmann: locale/as.xml; locale/bn_IN.xml; locale/ast.xml; locale/ml.xml;
+    locale/te.xml; ⋯
+
+                New translations from Red Hat and the Fedora Project
+
+
+  • rlandmann: locale/pt.xml; locale/ca.xml; locale/da.xml; locale/sr.xml;
+    locale/ru.xml; loca⋯
+
+                Updated translations from Red Hat and the Fedora Project
+
+
+Common
+
+The following changes have been made to the common code since the 1.75.2
+release.
+
+  • Mauritz Jeanson: common.xsl
+
+                Fixed bug in output-orderedlist-starting-number template (@startingnumber did not work for FO).
+
+
+  • Mauritz Jeanson: gentext.xsl
+
+                Added fix to catch ID also of descendants of listitem. Closes bug #2955077.
+
+
+  • Jirka Kosek: l10n.xsl
+
+                Stripped down, faster version of gentext.template is used when there is no localization customization.
+
+
+  • Mauritz Jeanson: stripns.xsl
+
+                Added fix that preserves link/@role (makes links in the reference documentation
+    with @role="tcg" work).
+
+
+  • Mauritz Jeanson: l10n.xsl
+
+                Fixed bugs related to manpages and L10n.
+
+
+  • Jirka Kosek: entities.ent; autoidx-kosek.xsl
+
+                Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.
+
+
+  • Jirka Kosek: l10n.xsl; l10n.dtd; l10n.xml; autoidx-kosek.xsl
+
+                Refactored localization support. Language files are loaded on demand. Speedup is about 30%.
+
+
+  • Jirka Kosek: l10n.xsl
+
+                Added xsl:keys for improved performance of localization texts look up. Performance gain around 15%.
+
+
+  • Mauritz Jeanson: titles.xsl
+
+                Fixed bug #2912677 (error with xref in title).
+
+
+  • Robert Stayton: olink.xsl
+
+                Fix bug in xrefstyle "title" handling introduced with
+    the 'insert.targetdb.data' template.
+
+
+  • Robert Stayton: gentext.xsl
+
+                Fix bug in xref to equation without title to use context="xref-number" instead
+    of "xref-number-and-title".
+
+
+  • Robert Stayton: labels.xsl
+
+                Number all equations in one sequence, with or without title.
+
+
+  • Robert Stayton: entities.ent
+
+                Fix bug #2896909 where duplicate @sortas on indexterms caused
+    some indexterms to drop out of index.
+
+
+  • Robert Stayton: stripns.xsl
+
+                Expand the "Stripping namespace ..." message to advise users to
+    use the namespaced stylesheets.
+
+
+  • Robert Stayton: stripns.xsl
+
+                need a local version of $exsl.node.set.available variable because
+    this module imported many places.
+
+
+  • Mauritz Jeanson: olink.xsl
+
+                Added /node() to the select expression that is used to compute the title text
+    so that no <ttl> elements end up in the output. Closes bug #2830119.
+
+
+FO
+
+The following changes have been made to the fo code since the 1.75.2 release.
+
+  • Robert Stayton: table.xsl
+
+                Fix bug 2979166 able - Attribute @rowheader not working
+
+
+  • Mauritz Jeanson: inline.xsl
+
+                Improved glossterm auto-linking by using keys. The old code was inefficient when processing documents
+    with many inline glossterms.
+
+
+  • Robert Stayton: titlepage.xsl
+
+                Fix bug 2805530 author/orgname not appearing on title page.
+
+
+  • Mauritz Jeanson: graphics.xsl
+
+                Added support for SVG content in imagedata (inspired by patch #2909154).
+
+
+  • Mauritz Jeanson: table.xsl
+
+                Removed superfluous test used when computing column-width. Closes bug #3000898.
+
+
+  • Mauritz Jeanson: inline.xsl
+
+                Added missing <xsl:call-template name="anchor"/>. Closes bug #2998567.
+
+
+  • Mauritz Jeanson: lists.xsl
+
+                Added table-layout="fixed" on segmentedlist table (required by XSL spec when  proportional-column-width() is used).
+
+
+  • Jirka Kosek: autoidx-kosek.xsl
+
+                Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.
+
+
+  • Jirka Kosek: index.xsl
+
+                Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.
+
+
+  • Robert Stayton: xref.xsl
+
+                Fix bug in olink template when an olink has an id.
+    Add warning message with id value when trying to link
+    to an element that has no generated text.
+
+
+  • Mauritz Jeanson: refentry.xsl
+
+                Fixed bug #2930968 (indexterm in refmeta not handled correctly).
+
+
+  • Robert Stayton: block.xsl
+
+                fix bug 2949567 title in revhistory breaks FO transform.
+
+
+  • Robert Stayton: glossary.xsl
+
+                Output id attributes on glossdiv blocks so they can be added to
+    xrefs or TOC.
+
+
+  • Jirka Kosek: xref.xsl
+
+                Enabled hyphenation of URLs when ulink content is the same as link target
+
+
+  • Robert Stayton: table.xsl
+
+                Apply patch to turn off row recursion if no @morerows attributes present.
+    This will enable very large tables without row spanning to
+    process without running into recursion limits.
+
+
+  • Robert Stayton: formal.xsl
+
+                Format equation without title using table layout with equation number
+    next to the equation.
+
+
+  • Robert Stayton: param.xweb; param.ent
+
+                Add equation.number.properties.
+
+
+HTML
+
+The following changes have been made to the html code since the 1.75.2 release.
+
+  • Mauritz Jeanson: block.xsl
+
+                Modified acknowledgements template to avoid invalid output (<p> in <p>).
+
+
+  • Mauritz Jeanson: titlepage.xsl
+
+                Added default sidebar attribute-sets.
+
+
+  • Robert Stayton: table.xsl
+
+                Fix bug 2979166 able - Attribute @rowheader not working
+
+
+  • Robert Stayton: footnote.xsl
+
+                Fix bug 3033191 footnotes in html tables.
+
+
+  • Mauritz Jeanson: inline.xsl
+
+                Improved glossterm auto-linking by using keys. The old code was inefficient when processing documents
+    with many inline glossterms.
+
+
+  • Robert Stayton: docbook.css.xml; verbatim.xsl
+
+                Fix bug 2844927 Validity error for callout bugs.
+
+
+  • Robert Stayton: formal.xsl
+
+                Convert formal.object.heading to respect make.clean.html param.
+
+
+  • Robert Stayton: titlepage.templates.xml; block.xsl
+
+                Fix bug 2840768 sidebar without title inserts empty b tag.
+
+
+  • Mauritz Jeanson: docbook.xsl
+
+                Moved the template that outputs <base> so that the base URI also applies to relative CSS paths that come later.
+    See patch #2896121.
+
+
+  • Jirka Kosek: autoidx-kosek.xsl
+
+                Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.
+
+
+  • Robert Stayton: chunk-code.xsl
+
+                fix bug 2948363 generated filename for refentry not unique, when
+    used in a set.
+
+
+  • Robert Stayton: component.xsl
+
+                Fix missing "Chapter n" label when use chapter/info/title.
+
+
+  • Robert Stayton: table.xsl
+
+                Row recursion turned off if no @morerows attributes in the table.
+    This will prevent failure on long table (with no @morerows) due
+    to excessive depth of recursion.
+
+
+  • Robert Stayton: autotoc.xsl; docbook.css.xml
+
+                Support make.clean.html in autotoc.xsl.
+
+
+  • Robert Stayton: docbook.css.xml; block.xsl
+
+                Add support for make.clean.html setting in block elements.
+
+
+  • Robert Stayton: docbook.css.xml
+
+                Stock CSS styles for DocBook HTML output when 'make.clean.html' is non-zero.
+
+
+  • Robert Stayton: html.xsl
+
+                Add templates for generating CSS files and links to them.
+
+
+  • Robert Stayton: param.xweb
+
+                Fix bugs in new entity references.
+
+
+  • Robert Stayton: chunk-common.xsl
+
+                List of Equations now includes on equations with titles.
+
+
+  • Robert Stayton: table.xsl
+
+                If a colspec has a colname attribute, add it to the HTML col
+    element as a class attribute so it can be styled.
+
+
+  • Robert Stayton: formal.xsl
+
+                Fix bug 2825842 where table footnotes not appearing in HTML-coded table.
+
+
+  • Robert Stayton: chunktoc.xsl
+
+                Fix bug #2834826 where appendix inside part was not chunked as it should be.
+
+
+  • Mauritz Jeanson: chunktoc.xsl
+
+                Added missing namespace declarations. Closes bug #2890069.
+
+
+  • Mauritz Jeanson: footnote.xsl
+
+                Updated the template for footnote paras to use the 'paragraph' template. Closes bug #2803739.
+
+
+  • Keith Fahlgren: inline.xsl; lists.xsl
+
+                Remove <b> and <i> elements "discouraged in favor of style sheets" from
+    XHTML, XHTML 1.1 (and therefore EPUB) outputs by changing html2xhtml.xsl.
+
+    Fixes bug #2873153: No <b> and <i> tags in XHTML/EPUB
+
+    Added regression to EPUB specs:
+
+
+  • Mauritz Jeanson: inline.xsl
+
+                Fixed bug #2844916 (don't output @target if ulink.target is empty).
+
+
+  • Keith Fahlgren: autoidx.xsl
+
+                Fix a bug when using index.on.type: an 'index symbols' section was created
+    even if that typed index didn't include any symbols (they were in the other types).
+
+
+Manpages
+
+The following changes have been made to the manpages code since the 1.75.2
+release.
+
+  • Mauritz Jeanson: other.xsl
+
+                Modified the write.stubs template so that the section directory name is not output twice. Should fix bug #2831602.
+    Also ensured that $lang is added to the .so path (when man.output.lang.in.name.enabled=1).
+
+
+  • Mauritz Jeanson: docbook.xsl; other.xsl
+
+                Fixed bug #2412738 (apostrophe escaping) by applying the submitted patch.
+
+
+  • Norman Walsh: block.xsl; endnotes.xsl
+
+                Fix bug where simpara in footnote didn't work. Patch by Jonathan Nieder, jrnieder@gmail.com
+
+
+  • dleidert: lists.xsl
+
+                Fix two indentation issues: In the first case there is no corresponding .RS
+    macro (Debian #519438, sf.net 2793873). In the second case an .RS instead of
+    the probably intended .sp leads to an indentation bug (Debian #527309,
+    sf.net #2642139).
+
+
+Epub
+
+The following changes have been made to the epub code since the 1.75.2 release.
+
+  • Keith Fahlgren: bin/spec/examples/AMasqueOfDays.epub; docbook.xsl; bin/spec
+    /epub_spec.rb
+
+                Resolve some actual regressions in date output spotted by more recent versions of epubcheck
+
+
+  • Keith Fahlgren: docbook.xsl
+
+                Updated mediaobject selection code that better uses roles (when available); based on contributons by  Glenn McDonald
+
+
+  • Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl
+
+                Ensure that NCX documents are always outputted with a default namespace
+    to prevent problems with the kindlegen machinery
+
+
+  • Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/
+    partintro.xml; docbook.x⋯
+
+                Adding support for partintros with sect2s, 3s, etc
+
+
+  • Keith Fahlgren: docbook.xsl
+
+                Adding param to workaround horrific ADE bug with the inability to process <br>
+
+
+  • Keith Fahlgren: docbook.xsl
+
+                Add support for authorgroup/author in OPF metadata (via Michael Wiedmann)
+
+
+  • Keith Fahlgren: bin/spec/epub_regressions_spec.rb
+
+                Remove <b> and <i> elements "discouraged in favor of style sheets" from
+    XHTML, XHTML 1.1 (and therefore EPUB) outputs by changing html2xhtml.xsl.
+
+    Fixes bug #2873153: No <b> and <i> tags in XHTML/EPUB
+
+    Added regression to EPUB specs:
+
+
+  • Keith Fahlgren: bin/lib/docbook.rb; bin/spec/files/DejaVuSerif-Italic.otf;
+    docbook.xsl; bi⋯
+
+                This resolves bug #2873142, Please add support for multiple embedded fonts
+
+
+    If you navigate to a checkout of DocBook-XSL and go to:
+    xsl/epub/bin/spec/files
+    You can now run the following command:
+
+    ../../dbtoepub -f DejaVuSerif.otf -f DejaVuSerif-Italic.otf -c test.css
+    -s test_cust.xsl orm.book.001.xml
+
+    In dbtoepub, the following option can be used more than once:
+    -f, --font [OTF FILE] Embed OTF FILE in .epub.
+
+    The underlying stylesheet now accepts a comma-separated list of font file
+    names rather than just one as the RENAMED epub.embedded.fonts ('s' added).
+
+    The runnable EPUB spec now includes:
+    - should be valid .epub after including more than one embedded font
+
+
+  • Keith Fahlgren: docbook.xsl
+
+                Improve the selection of cover images when working in DocBook 4.x land (work in progress)
+
+
+  • Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl
+
+                Improve the quality of the OPF spine regression by ensuring that the spine
+    elements for deeply nested refentries are in order and adjacent to their
+    opening wrapper XHTML chunk.
+
+
+  • Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl; bin/spec/
+    files/orm.book.00⋯
+
+                Add more careful handling of refentries to ensure that they always appear in the opf:spine.
+    This was only a problem when refentries were pushed deep into the hierarchy (like inside
+    a sect2), but presented navigational problems for many reading systems (despite the
+    correct NCX references). This may *not* be the best solution, but attacking a better
+    chunking strategy for refentries was too big a nut to crack at this time.
+
+
+Eclipse
+
+The following changes have been made to the eclipse code since the 1.75.2
+release.
+
+  • Mauritz Jeanson: eclipse3.xsl
+
+                Added a stylesheet module that generates plug-ins conforming to the standard (OSGi-based) Eclipse 3.x
+    architecture. The main difference to the older format is that metadata is stored in a separate
+    manifest file. The module imports and extends the existing eclipse.xsl module. Based on code
+    contributed in patch #2624668.
+
+
+Params
+
+The following changes have been made to the params code since the 1.75.2
+release.
+
+  • Robert Stayton: draft.watermark.image.xml
+
+                Fix bug 2922488 draft.watermark.image pointing to web resource.
+    Now the value is images/draft.png, and may require customization
+    for local resolution.
+
+
+  • Mauritz Jeanson: equation.number.properties.xml
+
+                Corrected refpurpose.
+
+
+  • Norman Walsh: paper.type.xml
+
+                Added USlegal and USlegallandscape paper types.
+
+
+  • Jirka Kosek: highlight.xslthl.config.xml
+
+                Added note about specifying location as URL
+
+
+  • Robert Stayton: docbook.css.source.xml; generate.css.header.xml;
+    custom.css.source.xml; ma⋯
+
+                Params to support generated CSS files.
+
+
+  • Robert Stayton: equation.number.properties.xml
+
+                New attribute set for numbers appearing next to equations.
+
+
+XSL-Xalan
+
+The following changes have been made to the xsl-xalan code since the 1.75.2
+release.
+
+  • dleidert: nbproject/genfiles.properties; nbproject/build-impl.xml
+
+                Rebuild netbeans build files after adding missing Netbeans configuration to allow easier packaging for Debian.
+
+
+Release Notes: 1.75.2
+
+The following is a list of changes that have been made since the 1.75.1
+release.
+
+Gentext
+
+The following changes have been made to the gentext code since the 1.75.1
+release.
+
+  • dleidert: locale/ja.xml
+
+    Improved Japanese translation for Note(s). Closes bug #2823965.
+
+  • dleidert: locale/pl.xml
+
+    Polish alphabet contains O with acute accent, not with grave accent. Closes bug #2823964.
+
+  • Robert Stayton: locale/ja.xml
+
+    Fix translation of "index", per bug report 2796064.
+
+  • Robert Stayton: locale/is.xml
+
+    New Icelandic locale file.
+
+Common
+
+The following changes have been made to the common code since the 1.75.1
+release.
+
+  • Norman Walsh: stripns.xsl
+
+    Support more downconvert cases
+
+  • Robert Stayton: titles.xsl
+
+    Make sure title inside info is used if no other title.
+
+FO
+
+The following changes have been made to the fo code since the 1.75.1 release.
+
+  • Robert Stayton: pi.xsl
+
+    Turn off dbfo-need for fop1.extensions also, per bug #2816141.
+
+HTML
+
+The following changes have been made to the html code since the 1.75.1 release.
+
+  • Mauritz Jeanson: titlepage.xsl
+
+    Output "Copyright" heading in XHTML too.
+
+  • Mauritz Jeanson: titlepage.xsl
+
+    Added stylesheet.result.type test for copyright. Closes bug #2813289.
+
+  • Norman Walsh: htmltbl.xsl
+
+    Remove ambiguity wrt @span, @rowspan, and @colspan
+
+Manpages
+
+The following changes have been made to the manpages code since the 1.75.1
+release.
+
+  • Mauritz Jeanson: endnotes.xsl
+
+    Added normalize-space() for ulink content. Closes bug #2793877.
+
+  • Mauritz Jeanson: docbook.xsl
+
+    Added stylesheet.result.type test for copyright. Closes bug #2813289.
+
+Epub
+
+The following changes have been made to the epub code since the 1.75.1 release.
+
+  • Keith Fahlgren: bin/dbtoepub; bin/lib/docbook.rb
+
+    Corrected bugs caused by path and file assumptions were not met
+
+  • Keith Fahlgren: bin/lib/docbook.rb; docbook.xsl
+
+    Cleaning up hardcoded values into parameters and fixing Ruby library to pass them properly; all thanks to patch from Liza Daly
+
+Profiling
+
+The following changes have been made to the profiling code since the 1.75.1
+release.
+
+  • Robert Stayton: profile.xsl
+
+    Fix bug 2815493 missing exsl.node.set.available parameter.
+
+XSL-Saxon
+
+The following changes have been made to the xsl-saxon code since the 1.75.1
+release.
+
+  • Mauritz Jeanson: src/com/nwalsh/saxon/ColumnUpdateEmitter.java; src/com/
+    nwalsh/saxon/Colum⋯
+
+    Added fixes so that colgroups in the XHTML namespace are processed properly.
+
+XSL-Xalan
+
+The following changes have been made to the xsl-xalan code since the 1.75.1
+release.
+
+  • Mauritz Jeanson: nbproject/project.xml
+
+    Added missing NetBeans configuration.
+
+Release Notes: 1.75.1
+
+This release includes bug fixes.
+
+The following is a list of changes that have been made since the 1.75.0
+release.
+
+FO
+
+The following changes have been made to the fo code since the 1.75.0 release.
+
+  • Keith Fahlgren: block.xsl
+
+    Switching to em dash for character before attribution in epigraph; resolves Bug #2793878
+
+  • Robert Stayton: lists.xsl
+
+    Fixed bug 2789947, id attribute missing on simplelist fo output.
+
+HTML
+
+The following changes have been made to the html code since the 1.75.0 release.
+
+  • Keith Fahlgren: block.xsl
+
+    Switching to em dash for character before attribution in epigraph; resolves Bug #2793878
+
+  • Robert Stayton: lists.xsl
+
+    Fixed bug 2789678: apply-templates line accidentally deleted.
+
+Epub
+
+The following changes have been made to the epub code since the 1.75.0 release.
+
+  • Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl
+
+    Added regression and fix to correct "bug" with namespace-prefixed container elements in META-INF/container.xml ; resolves Issue #2790017
+
+  • Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/
+    onegraphic.xinclude.xml;⋯
+
+    Another attempt at flexible named entity and XInclude processing
+
+  • Keith Fahlgren: bin/lib/docbook.rb
+
+    Tweaking solution to Bug #2750442 following regression reported by Michael Wiedmann.
+
+Params
+
+The following changes have been made to the params code since the 1.75.0
+release.
+
+  • Mauritz Jeanson: highlight.source.xml
+
+    Updated documentation to reflect changes made in r8419.
+
+Release Notes: 1.75.0
+
+This release includes important bug fixes and adds the following significant
+feature changes:
+
+Gentext
+
+    Modifications to translations have been made.
+
+Common
+
+    Added support for some format properties on tables using HTML table markup.
+
+    Added two new qanda.defaultlabel values so that numbered sections and
+    numbered questions can be distinguished. Satisfies Feature Request #
+    1539045.
+
+    Added code to handle acknowledgements in book and part. The element is
+    processed similarly to dedication. All acknowledgements will appear as
+    front matter, after any dedications.
+
+FO
+
+    The inclusion of highlighting code has been simplified.
+
+    Add support for pgwide on informal objects.
+
+    Added a new parameter, bookmarks.collapse, that controls the initial state
+    of the bookmark tree. Closes FR #1792326.
+
+    Add support for more dbfo processing instructions.
+
+    Add new variablelist.term.properties to format terms, per request #
+    1968513.
+
+    Add support for @width on screen and programlisting, fixes bug #2012736.
+
+    Add support for writing-mode="rl-tb" (right-to-left) in FO outputs.
+
+    Add writing.mode param for FO output.
+
+HTML
+
+    Convert all calls to class.attribute to calls to common.html.attributes to
+    support dir, lang, and title attributes in html output for all elements.
+    Fulfills feature request #1993833.
+
+    Inclusion of highlighting code was simplified. Only one import is now
+    necessary.
+
+    Add new param index.links.to.section.
+
+    Add support for the new index.links.to.section param which permits precise
+    links to indexterms in HTML output rather than to the section title.
+
+ePub
+
+    Slightly more nuanced handling of imageobject alternatives and better
+    support in dbtoepub for XIncludes and ENTITYs to resolve Issue #2750442
+    reported by Raphael Hertzog.
+
+    Added a colon after an abstract/title when mapping into the dc:description
+    for OPF metadata in ePub output to help the flat text have more
+    pseudo-semantics (sugestions from Michael Wiedmann)
+
+    Added DocBook subjectset -> OPF dc:subject mapping and tests
+
+    Added DocBook date -> OPF dc:date mapping and tests
+
+    Added DocBook abstract -> OPF dc:description mapping and tests
+
+    Added --output option to dbtoepub based on user request
+
+HTMLHelp
+
+    Add support for generating olink target database for htmlhelp files.
+
+Params
+
+    Add default setting for @rules attribute on HTML markup tables.
+
+    Added a new parameter, bookmarks.collapse, that controls the initial state
+    of the bookmark tree. When the parameter has a non-zero value (the
+    default), only the top-level bookmarks are displayed initially. Otherwise,
+    the whole tree of bookmarks is displayed. This is implemented for FOP 0.9X.
+    Closes FR #1792326.
+
+    Add new variablelist.term.properties to format terms, per request #
+    1968513.
+
+    Add two new qanda.defaultlabel values so that numbered sections and
+    numbered questions can be distinguished. Satisfies Feature Request #
+    1539045.
+
+    Add param to control whether an index entry links to a section title or to
+    the precise location of the indexterm.
+
+    New attribute list for glossentry in glossary.
+
+    New parameter to support @width on programlisting and screen.
+
+    Add attribute-sets for formatting glossary terms and defs.
+
+Highlighting
+
+    Inclusion of highlighting code was simplified. Only one import is now
+    necessary.
+
+The following is a list of changes that have been made since the 1.74.3
+release.
+
+Gentext
+
+The following changes have been made to the gentext code since the 1.74.3
+release.
+
+  • Robert Stayton: locale/sv.xml; locale/ja.xml; locale/pl.xml
+
+    Check in translations of Legalnotice submitted on mailing list.
+
+  • Robert Stayton: locale/es.xml
+
+    Fix spelling errors in Acknowledgements entries.
+
+  • Robert Stayton: locale/es.xml
+
+    Check in translations for 4 elements submitted through docbook-apps
+    message of 14 April 2009.
+
+  • David Cramer: locale/zh.xml; locale/ca.xml; locale/ru.xml; locale/ga.xml;
+    locale/gl.xml; l⋯
+
+    Internationalized punctuation in glosssee and glossseealso
+
+  • Robert Stayton: Makefile
+
+    Check in fixes for DSSSL gentext targets from submitted patch #1689633.
+
+  • Robert Stayton: locale/uk.xml
+
+    Check in major update submitted with bug report #2008524.
+
+  • Robert Stayton: locale/zh_tw.xml
+
+    Check in fix to Note string submitted in bug #2441051.
+
+  • Robert Stayton: locale/ru.xml
+
+    Checkin typo fix submitted in bug #2453406.
+
+Common
+
+The following changes have been made to the common code since the 1.74.3
+release.
+
+  • Robert Stayton: gentext.xsl
+
+    Fix extra generated space when xrefstyle includes 'nopage'.
+
+  • Robert Stayton: table.xsl
+
+    Add support for some format properties on tables using
+    HTML table markup.  These include:
+      - frame attribute on table (or uses $default.table.frame parameter).
+      - rules attribute on table (or uses $default.table.rules parameter).
+      - align attribute on td and th
+      - valign attribute on td and th
+      - colspan on td and th
+      - rowspan on td and th
+      - bgcolor on td and th
+
+  • Robert Stayton: olink.xsl
+
+    Add placeholder template to massage olink hot text to make
+    customization easier, per Feature Request 1828608.
+
+  • Robert Stayton: targets.xsl
+
+    Add support for collecting olink targets from a glossary
+    generated from a glossary.collection.
+
+  • Robert Stayton: titles.xsl
+
+    Handle firstterm like glossterm in mode="title.markup".
+
+  • Robert Stayton: titles.xsl
+
+    Add match on info/title in title.markup templates where missing.
+
+  • Mauritz Jeanson: titles.xsl
+
+    Changed "ancestor::title" to "(ancestor::title and (@id or @xml:id))".
+    This enables proper formatting of inline elements in titles in TOCs,
+    as long as these inlines don't have id or xml:id attributes.
+
+  • Robert Stayton: labels.xsl
+
+    Add two new qanda.defaultlabel values so that numbered sections
+    and numbered questions can be distinguished.  Satisfies
+    Feature Request #1539045.
+
+  • Robert Stayton: stripns.xsl; pi.xsl
+
+    Convert function-available(exsl:node-set) to use the new param
+    so Xalan bug is isolated.
+
+  • Mauritz Jeanson: titles.xsl
+
+    Added fixes for bugs #2112656 and #1759205:
+    1. Reverted mistaken commits r7485 and r7523.
+    2. Updated the template with match="link" and mode="no.anchor.mode" so that
+    @endterm is used if it exists and if the link has no content.
+
+  • Mauritz Jeanson: titles.xsl
+
+    Added code to handle acknowledgements in book and part. The element is processed
+    similarly to dedication. All acknowledgements will appear as front matter, after
+    any dedications.
+
+  • Robert Stayton: olink.xsl
+
+    Fix bug #2018717 use.local.olink.style uses wrong gentext context.
+
+  • Robert Stayton: olink.xsl
+
+    Fix bug #1787167 incorrect hot text for some olinks.
+
+  • Robert Stayton: common.xsl
+
+    Fix bug #1669654 Broken output if copyright <year> contains a range.
+
+  • Robert Stayton: labels.xsl
+
+    Fix bug in labelling figure inside appendix inside article inside book.
+
+FO
+
+The following changes have been made to the fo code since the 1.74.3 release.
+
+  • Jirka Kosek: highlight.xsl
+
+    Inclusion of highlighting code was simplified. Only one import is now necessary.
+
+  • Robert Stayton: fop1.xsl
+
+    Add the new fop extensions namespace declaration, in case FOP
+    extension functions are used.
+
+  • Robert Stayton: formal.xsl
+
+    Add support for pgwide on informal objects.
+
+  • Robert Stayton: docbook.xsl
+
+    Fixed spurious closing quote on line 134.
+
+  • Robert Stayton: docbook.xsl; autoidx-kosek.xsl; autoidx.xsl
+
+    Convert function-available for node-set() to use
+    new $exsl.node.set.available param in test.
+
+  • David Cramer: xref.xsl
+
+    Suppress extra space after xref when xrefstyle='select: label nopage' (#2740472)
+
+  • Mauritz Jeanson: pi.xsl
+
+    Fixed doc bug for row-height.
+
+  • David Cramer: glossary.xsl
+
+    Internationalized punctuation in glosssee and glossseealso
+
+  • Robert Stayton: param.xweb; param.ent; htmltbl.xsl; table.xsl
+
+    Add support for some format properties on tables using
+    HTML table markup.  These include:
+      - frame attribute on table (or uses $default.table.frame parameter).
+      - rules attribute on table (or uses $default.table.rules parameter).
+      - align attribute on td and th
+      - valign attribute on td and th
+      - colspan on td and th
+      - rowspan on td and th
+      - bgcolor on td and th
+
+  • Robert Stayton: table.xsl
+
+    Add support bgcolor in td and th
+    elements in HTML table markup.
+
+  • Robert Stayton: htmltbl.xsl
+
+    Add support for colspan and rowspan and bgcolor in td and th
+    elements in HTML table markup.
+
+  • Robert Stayton: param.xweb
+
+    Fix working of page-master left and right margins.
+
+  • Mauritz Jeanson: param.xweb; param.ent; fop1.xsl
+
+    Added a new parameter, bookmarks.collapse, that controls the initial state of the bookmark tree. When the parameter has a non-zero value (the default), only the top-level bookmarks are displayed initially. Otherwise, the whole tree of bookmarks is displayed.  This is implemented for FOP 0.9X. Closes FR #1792326.
+
+  • Robert Stayton: table.xsl; pi.xsl
+
+    Add support for dbfo row-height processing instruction, like that in dbhtml.
+
+  • Robert Stayton: lists.xsl
+
+    Add support for dbfo keep-together processing instruction for
+    entire list instances.
+
+  • Robert Stayton: lists.xsl; block.xsl
+
+    Add support fo dbfo keep-together processing instruction to
+    more blocks like list items and paras.
+
+  • Robert Stayton: lists.xsl; param.xweb; param.ent
+
+    Add new variablelist.term.properties to format terms, per request # 1968513.
+
+  • Robert Stayton: inline.xsl
+
+    In simple.xlink, rearrange order of processing.
+
+  • Robert Stayton: xref.xsl
+
+    Handle firstterm like glossterm in mode="xref-to".
+
+  • Robert Stayton: glossary.xsl; xref.xsl; pi.xsl; footnote.xsl
+
+    Implement simple.xlink for glosssee and glossseealso so they can use
+    other types of linking besides otherterm.
+
+  • Robert Stayton: qandaset.xsl
+
+    Add two new qanda.defaultlabel values so that numbered sections and numbered questions can be distinguished.  Satisfies Feature Request #1539045.
+
+  • Robert Stayton: titlepage.xsl
+
+    For the book title templates, I changed info/title to book/info/title
+    so other element's titles will not be affected.
+
+  • Robert Stayton: xref.xsl; verbatim.xsl
+
+    Use param exsl.node.set.available to test for function.
+
+  • Robert Stayton: param.xweb; param.ent; footnote.xsl
+
+    Start using new param exsl.node.set.available to work around Xalan bug.
+
+  • Robert Stayton: titlepage.templates.xml
+
+    Add comment on use of t:predicate for editor to prevent
+    extra processing of multiple editors. Fixes bug 2687842.
+
+  • Robert Stayton: xref.xsl; autoidx.xsl
+
+    An indexterm primary, secondary, or tertiary element with an id or xml:id
+    now outputs that ID, so that index entries can be cross referenced to.
+
+  • Mauritz Jeanson: synop.xsl
+
+    Added modeless template for ooclass|oointerface|ooexception.
+    Closes bug #1623468.
+
+  • Robert Stayton: xref.xsl
+
+    Add template with match on indexterm in mode="xref-to" to fix bug 2102592.
+
+  • Robert Stayton: xref.xsl
+
+    Now xref to qandaentry will use the label element in a question for
+    the link text if it has one.
+
+  • Robert Stayton: inline.xsl
+
+    Add id if specified from @id to output for quote and phrase so
+    they can be xref'ed to.
+
+  • Robert Stayton: xref.xsl
+
+    Add support for xref to phrase, simpara, anchor, and quote.
+    This assumes the author specifies something using xrefstyle since
+    the elements don't have ordinary link text.
+
+  • Robert Stayton: toc.xsl
+
+    Fix bug in new toc templates.
+
+  • Mauritz Jeanson: titlepage.xsl; component.xsl; division.xsl; xref.xsl;
+    titlepage.templates⋯
+
+    Added code to handle acknowledgements in book and part. The element is processed
+    similarly to dedication. All acknowledgements will appear as front matter, after
+    any dedications.
+
+  • Robert Stayton: toc.xsl
+
+    Rewrite toc templates to support an empty toc or populated toc
+    in all permitted contexts.  Same for lot elements.
+    This fixes bug #1595969 for FO outputs.
+
+  • Robert Stayton: index.xsl
+
+    Fix indents for seealsoie so they are consistent.
+
+  • Mauritz Jeanson: param.xweb
+
+    Removed duplicate (monospace.font.family).
+
+  • Robert Stayton: param.xweb; param.ent
+
+    Add glossentry.list.item.properties.
+
+  • Robert Stayton: param.xweb; param.ent
+
+    Add monospace.verbatim.font.width param to support @width on programlisting.
+
+  • Robert Stayton: verbatim.xsl
+
+    Put programlisting in fo:block-container with writing-mode="lr-tb"
+    when text direction is right to left because all program languages
+    are left-to-right.
+
+  • Robert Stayton: verbatim.xsl
+
+    Add support for @width on screen and programlisting, fixes bug #2012736.
+
+  • Robert Stayton: xref.xsl
+
+    Fix bug #1973585 xref to para with xrefstyle not handled correctly.
+
+  • Mauritz Jeanson: block.xsl
+
+    Added support for acknowledgements in article.
+    Support in book/part remains to be added.
+
+  • Robert Stayton: xref.xsl
+
+    Fix bug #1787167 incorrect hot text for some olinks.
+
+  • Robert Stayton: fo.xsl
+
+    Add writing-mode="tb-rl" as well since some XSL-FO processors support it.
+
+  • Robert Stayton: autotoc.xsl; lists.xsl; glossary.xsl; fo.xsl; table.xsl;
+    pagesetup.xsl
+
+    Add support for writing-mode="rl-tb" (right-to-left) in FO outputs.
+    Changed instances of margin-left to margin-{$direction.align.start}
+    and margin-right to margin-{$direction.align.end}. Those direction.align
+    params are computed from the writing mode value in each locale's
+    gentext key named 'writing-mode', introduced in 1.74.3 to add
+    right-to-left support to HTML outputs.
+
+  • Robert Stayton: param.xweb; param.ent
+
+    Add attribute-sets for formatting glossary terms and defs.
+
+  • Robert Stayton: param.xweb; param.ent
+
+    Add writing.mode param for FO output.
+
+  • Robert Stayton: autotoc.xsl
+
+    Fix bug 1546008: in qandaentry in a TOC, use its blockinfo/titleabbrev or blockinfo/title
+    instead of question, if available. For DocBook 5, use the info versions.
+
+  • Keith Fahlgren: verbatim.xsl
+
+    Add better pointer to README for XSLTHL
+
+  • Keith Fahlgren: verbatim.xsl
+
+    More tweaking the way that XSLTHL does or does not get called
+
+  • Keith Fahlgren: verbatim.xsl
+
+    Alternate attempt at sanely including/excluding XSLTHT code
+
+HTML
+
+The following changes have been made to the html code since the 1.74.3 release.
+
+  • Robert Stayton: lists.xsl
+
+    Removed redundant lang and title attributes on list element inside
+    div element for lists.
+
+  • Robert Stayton: inline.xsl; titlepage.xsl; division.xsl; toc.xsl;
+    sections.xsl; table.xsl;⋯
+
+    Convert all calls to class.attribute to calls to common.html.attributes
+    to support dir, lang, and title attributes in html output for all elements.
+    Fulfills feature request #1993833.
+
+  • Robert Stayton: chunk-common.xsl
+
+    Fix bug #2750253 wrong links in list of figures in chunk.html
+    when target html is in a subdirectory and dbhtml filename used.
+
+  • Jirka Kosek: highlight.xsl
+
+    Inclusion of highlighting code was simplified. Only one import is now necessary.
+
+  • Robert Stayton: chunk-common.xsl; chunktoc.xsl; docbook.xsl;
+    chunk-changebars.xsl; autoidx⋯
+
+    Convert function-available for node-set() to use
+    new $exsl.node.set.available param in test.
+
+  • Mauritz Jeanson: pi.xsl
+
+    Fixed doc bug for row-height.
+
+  • David Cramer: glossary.xsl
+
+    Internationalized punctuation in glosssee and glossseealso
+
+  • Robert Stayton: lists.xsl; html.xsl; block.xsl
+
+    More elements get common.html.attributes.
+    Added locale.html.attributes template which does the lang,
+    dir, and title attributes, but not the class attribute
+    (used on para, for example).
+
+  • Robert Stayton: lists.xsl
+
+    Replace more literal class atts with mode="class.attribute" to support
+    easier customization.
+
+  • Robert Stayton: glossary.xsl
+
+    Support olinking in glosssee and glossseealso.
+
+  • Robert Stayton: inline.xsl
+
+    In simple.xlink, rearrange order of processing.
+
+  • Robert Stayton: xref.xsl
+
+    Handle firstterm like glossterm in mode="xref-to".
+
+  • Robert Stayton: lists.xsl; html.xsl; block.xsl
+
+    Added template named common.html.attributes to output
+    class, title, lang, and dir for most elements.
+    Started adding it to some list and block elements.
+
+  • Robert Stayton: qandaset.xsl
+
+    Add two new qanda.defaultlabel values so that numbered sections
+    and numbered questions can be distinguished.  Satisfies
+    Feature Request #1539045.
+
+  • Robert Stayton: param.xweb; chunk-code.xsl; param.ent; xref.xsl;
+    chunkfast.xsl; verbatim.x⋯
+
+    Use new param exsl.node.set.available to test, handles Xalan bug.
+
+  • Robert Stayton: autoidx.xsl
+
+    Use named anchors for primary, secondary, and tertiary ids so
+    duplicate entries with different ids can still have an id output.
+
+  • Robert Stayton: param.xweb; param.ent
+
+    Add new param index.links.to.section.
+
+  • Robert Stayton: xref.xsl; autoidx.xsl
+
+    Pass through an id on primary, secondary, or tertiary to
+    the index entry, so that one could link to an index entry.
+    You can't link to the id on an indexterm because that is
+    used to place the main anchor in the text flow.
+
+  • Robert Stayton: autoidx.xsl
+
+    Add support for the new index.links.to.section param which permits
+    precise links to indexterms in HTML output rather than to
+    the section title.
+
+  • Mauritz Jeanson: synop.xsl
+
+    Added modeless template for ooclass|oointerface|ooexception.
+    Closes bug #1623468.
+
+  • Robert Stayton: qandaset.xsl
+
+    Make sure a qandaset has an anchor, even when it has no title,
+    because it may be referenced in a TOC or xref.
+    Before, the anchor was output by the title, but there was no
+    anchor if there was no title.
+
+  • Robert Stayton: xref.xsl
+
+    Add a template for indexterm with mode="xref-to" to fix bug 2102592.
+
+  • Robert Stayton: xref.xsl
+
+    Now xref to qandaentry will use the label element in a question for
+    the link text if it has one.
+
+  • Robert Stayton: qandaset.xsl; html.xsl
+
+    Create separate templates for computing label of question and answer
+    in a qandaentry, so such can be used for the alt text of an xref
+    to a qandaentry.
+
+  • Robert Stayton: inline.xsl; xref.xsl
+
+    Now support xref to phrase, simpara, anchor, and quote,
+    most useful when an xrefstyle is used.
+
+  • Robert Stayton: toc.xsl
+
+    Rewrite toc templates to support an empty toc or populated toc
+    in all permitted contexts.  Same for lot elements.
+    This fixes bug #1595969 for HTML outputs.
+
+  • Mauritz Jeanson: titlepage.xsl; component.xsl; division.xsl; xref.xsl;
+    titlepage.templates⋯
+
+    Added code to handle acknowledgements in book and part. The element is processed
+    similarly to dedication. All acknowledgements will appear as front matter, after
+    any dedications.
+
+  • Robert Stayton: index.xsl
+
+    Rewrote primaryie, secondaryie and tertiaryie templates to handle
+    nesting of elements and seeie and seealsoie, as reported in
+    bug # 1168912.
+
+  • Robert Stayton: autotoc.xsl
+
+    Fix simplesect in toc problem.
+
+  • Robert Stayton: verbatim.xsl
+
+    Add support for @width per bug report #2012736.
+
+  • Robert Stayton: formal.xsl; htmltbl.xsl
+
+    Fix bug #1787140 HTML tables not handling attributes correctly.
+
+  • Robert Stayton: param.xweb
+
+    Move writing-mode param.
+
+  • Keith Fahlgren: refentry.xsl
+
+    Remove a nesting of <p> inside <p> for refclass (made XHTML* invalid, made HTML silly)
+
+  • Robert Stayton: table.xsl
+
+    Fix bug #1945872 to allow passthrough of colwidth values to
+    HTML table when no tablecolumns.extension is available and
+    when no instance of * appears in the table's colspecs.
+
+  • Mauritz Jeanson: block.xsl
+
+    Added support for acknowledgements in article.
+    Support in book/part remains to be added.
+
+  • Robert Stayton: chunk-common.xsl
+
+    Fix bug #1787167 incorrect hot text for some olinks.
+
+  • Robert Stayton: qandaset.xsl
+
+    Fix bug 1546008: in qandaentry in a TOC, use its blockinfo/titleabbrev or blockinfo/title
+    instead of question, if available. For DocBook 5, use the info versions.
+
+  • Robert Stayton: chunktoc.xsl
+
+    Add support for generating olink database when using chunktoc.xsl.
+
+  • Keith Fahlgren: verbatim.xsl
+
+    Add better pointer to README for XSLTHL
+
+  • Keith Fahlgren: verbatim.xsl
+
+    Another stab at fixing the stupid XSLTHT includes across processors (Saxon regression reported by Sorin Ristache)
+
+  • Keith Fahlgren: verbatim.xsl
+
+    More tweaking the way that XSLTHL does or does not get called
+
+  • Keith Fahlgren: verbatim.xsl
+
+    Alternate attempt at sanely including/excluding XSLTHT code
+
+Manpages
+
+The following changes have been made to the manpages code since the 1.74.3
+release.
+
+  • Robert Stayton: table.xsl
+
+    Convert function-available test for node-set() function to
+    test of $exsl.node.set.available param.
+
+  • Mauritz Jeanson: lists.xsl
+
+    Added a template for bibliolist. Closes bug #1815916.
+
+ePub
+
+The following changes have been made to the epub code since the 1.74.3 release.
+
+  • Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/
+    onegraphic.xinclude.xml;⋯
+
+    Slightly more nuanced handling of imageobject alternatives and better support in dbtoepub for XIncludes and ENTITYs to resolve Issue #2750442 reported by Raphael Hertzog.
+
+  • Keith Fahlgren: docbook.xsl
+
+    Add a colon after an abstract/title when mapping into the dc:description for OPF metadata in ePub output to help the flat text have more pseudo-semantics (sugestions from Michael Wiedmann)
+
+  • Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl; bin/spec/
+    files/de.xml
+
+    Correctly set dc:language in OPF metadata when i18nizing. Closes Bug #2755150
+
+  • Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl
+
+    Corrected namespace declarations for literal XHTML elements to make them serialize "normally"
+
+  • Keith Fahlgren: docbook.xsl
+
+    Be a little bit more nuanced about dates
+
+  • Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files
+    /orm.book.001.x⋯
+
+    Add DocBook subjectset -> OPF dc:subject mapping and tests
+
+  • Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files
+    /orm.book.001.x⋯
+
+    Add DocBook date -> OPF dc:date mapping and tests
+
+  • Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files
+    /orm.book.001.x⋯
+
+    Add DocBook abstract -> OPF dc:description mapping and tests
+
+  • Robert Stayton: docbook.xsl
+
+    Check in patch submitted by user to add opf:file-as attribute
+    to dc:creator element.
+
+  • Keith Fahlgren: bin/dbtoepub
+
+    Adding --output option to dbtoepub based on user request
+
+  • Keith Fahlgren: docbook.xsl; bin/spec/epub_spec.rb
+
+    Cleaning and regularizing the generation of namespaced nodes for OPF, NCX, XHTML and other outputted filetypes (hat tip to bobstayton for pointing out the silly, incorrect code)
+
+  • Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/
+    refclass.xml
+
+    Remove a nesting of <p> inside <p> for refclass (made XHTML* invalid, made HTML silly)
+
+  • Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/
+    blockquotepre.xml
+
+    Added regression test and fix for XHTML validation problem with <a>s added inside <blockquote>; This potentially causes another problem (where something is referenced by has no anchor, but someone reporting that should cause the whole <a id='thing'/> thing to be reconsidered with modern browsers in mind.
+
+HTMLHelp
+
+The following changes have been made to the htmlhelp code since the 1.74.3
+release.
+
+  • Robert Stayton: htmlhelp-common.xsl
+
+    Add support for generating olink target database for htmlhelp files.
+
+Params
+
+The following changes have been made to the params code since the 1.74.3
+release.
+
+  • Robert Stayton: default.table.rules.xml
+
+    Add default setting for @rules attribute on HTML markup tables.
+
+  • Mauritz Jeanson: bookmarks.collapse.xml
+
+    Added a new parameter, bookmarks.collapse, that controls the initial state
+    of the bookmark tree. When the parameter has a non-zero value (the default),
+    only the top-level bookmarks are displayed initially. Otherwise, the whole
+    tree of bookmarks is displayed.
+
+    This is implemented for FOP 0.9X. Closes FR #1792326.
+
+  • Robert Stayton: variablelist.term.properties.xml
+
+    Add new variablelist.term.properties to format terms, per
+    request # 1968513.
+
+  • Robert Stayton: qanda.defaultlabel.xml
+
+    Add two new qanda.defaultlabel values so that numbered sections
+    and numbered questions can be distinguished.  Satisfies
+    Feature Request #1539045.
+
+  • Robert Stayton: index.links.to.section.xml
+
+    Change default to 1 to match past behavior.
+
+  • Robert Stayton: exsl.node.set.available.xml
+
+    Isolate this text for Xalan bug regarding exsl:node-set available.
+    If it is ever fixed in Xalan, just fix it here.
+
+  • Robert Stayton: index.links.to.section.xml
+
+    Add param to control whether an index entry links to
+    a section title or to the precise location of the
+    indexterm.
+
+  • Robert Stayton: glossentry.list.item.properties.xml
+
+    New attribute list for glossentry in glossary.
+
+  • Robert Stayton: monospace.verbatim.font.width.xml
+
+    New parameter to support @width on programlisting and screen.
+
+  • Mauritz Jeanson: highlight.source.xml
+
+    Updated and reorganized the description.
+
+  • Robert Stayton: page.margin.outer.xml; page.margin.inner.xml
+
+    Add caveat about XEP bug when writing-mode is right-to-left.
+
+  • Robert Stayton: article.appendix.title.properties.xml; writing.mode.xml;
+    body.start.indent⋯
+
+    Change 'left' to 'start' and 'right' to 'end' to support right-to-left
+    writing mode.
+
+  • Robert Stayton: glossdef.block.properties.xml;
+    glossdef.list.properties.xml; glossterm.blo⋯
+
+    Add attribute-sets for formatting glossary terms and defs.
+
+  • Robert Stayton: glossterm.separation.xml
+
+    Clarify the description.
+
+  • Robert Stayton: make.year.ranges.xml
+
+    Now handles year element containing a comma or dash without error.
+
+Highlighting
+
+The following changes have been made to the highlighting code since the 1.74.3
+release.
+
+  • Jirka Kosek: README
+
+    Inclusion of highlighting code was simplified. Only one import is now necessary.
+
+  • Keith Fahlgren: README
+
+    Adding XSLTHL readme
+
+  • Keith Fahlgren: common.xsl
+
+    Alternate attempt at sanely including/excluding XSLTHT code
+
+XSL-Saxon
+
+The following changes have been made to the xsl-saxon code since the 1.74.3
+release.
+
+  • Mauritz Jeanson: src/com/nwalsh/saxon/Text.java
+
+    Added a fix that prevents output of extra blank line.
+    Hopefully this closes bug #894805.
+
+XSL-Xalan
+
+The following changes have been made to the xsl-xalan code since the 1.74.3
+release.
+
+  • Mauritz Jeanson: src/com/nwalsh/xalan/Text.java
+
+    Added a fix that prevents output of extra blank line.
+    Hopefully this closes bug #894805.
+
+Release Notes: 1.74.3
+
+This release fixes some bugs in the 1.74.2 release.
+
+See highlighting/README for XSLTHL usage instructions.
+
+Release Notes: 1.74.2
+
+This release fixes some bugs in the 1.74.1 release.
+
+Release Notes: 1.74.1
+
+This release includes important bug fixes and adds the following significant
+feature changes:
+
+Gentext
+
+    Kirghiz locale added and Chinese translations have been simplified.
+
+    Somme support for gentext and right-to-left languages has been added.
+
+FO
+
+    Various bugs have been resolved.
+
+    Support for a new processing instruction: dbfo funcsynopsis-style has been
+    added.
+
+    Added new param email.mailto.enabled for FO output. Patch from Paolo
+    Borelli.
+
+    Support for documented metadata in fop1 mode has been added.
+
+Highlighting
+
+    Support for the latest version of XSLTHL 2.0 and some new language syntaxes
+    have been added to a variety of outputs.
+
+Manpages
+
+    Added man.output.better.ps.enabled param (zero default). It non-zero, no
+    such markup is embedded in generated man pages, and no enhancements are
+    included in the PostScript output generated from those man pages by the man
+    -Tps command.
+
+HTML
+
+    Support for writing.mode to set text direction and alignment based on
+    document locale has been added.
+
+    Added a new top-level stylesheet module, chunk-changebars.xsl, to be used
+    for generating chunked output with highlighting based on change
+    (@revisionflag) markup. The module imports/includes the standard chunking
+    and changebars templates and contains additional logic for chunked output.
+    See FRs #1015180 and #1819915.
+
+ePub
+
+    Covers now look better in Adobe Digital Editions thanks to a patch from
+    Paul Norton of Adobe
+
+    Cover handling now more generic (including limited DocBook 5.0 cover
+    support thanks to patch contributed by Liza Daly.
+
+    Cover markup now carries more reliably into files destined for .mobi and
+    the Kindle.
+
+    dc:identifiers are now generated from more types of numbering schemes.
+
+    Both SEO and semantic structure of chunked ePub output by ensuring that we
+    always send out one and only one h1 in each XHTML chunk.
+
+    Primitive support for embedding a single font added.
+
+    Support for embedding a CSS customizations added.
+
+Roundtrip
+
+    Support for imagedata-metadata and table as images added.
+
+    Support for imagedata-metadata and legalnotice as images added.
+
+Params
+
+    man.output.better.ps.enabled added for Manpages output
+
+    writing.mode.xml added to set text direction.
+
+    Added new param email.mailto.enabled for FO output. Patch from Paolo
+    Borelli. Closes #2086321.
+
+    highlight.source upgraded to support the latest version of XSLTHL 2.0.
+
+The following is a list of changes that have been made since the 1.74.0
+release.
+
+Gentext
+
+The following changes have been made to the gentext code since the 1.74.0
+release.
+
+  • Michael(tm) Smith: locale/ky.xml; Makefile
+
+    new Kirghiz locale from Ilyas Bakirov
+
+  • Mauritz Jeanson: locale/en.xml
+
+    Added "Acknowledgements".
+
+  • Dongsheng Song: locale/zh_cn.xml
+
+    Simplified Chinese translation.
+
+  • Robert Stayton: locale/lv.xml; locale/ca.xml; locale/pt.xml; locale/tr.xml;
+    locale/af.xml;⋯
+
+    Add writing-mode gentext string to support right-to-left languages.
+
+FO
+
+The following changes have been made to the fo code since the 1.74.0 release.
+
+  • David Cramer: footnote.xsl
+
+    Added a check to confirm that a footnoteref's linkend points to a footnote. Stylesheets stop processing if not and provide a useful error message.
+
+  • Mauritz Jeanson: spaces.xsl
+
+    Convert spaces to fo:leader also in elements in the DB 5 namespace.
+
+  • Mauritz Jeanson: pi.xsl; synop.xsl
+
+    Added support for a new processing instruction: dbfo funcsynopsis-style.
+    Closes bug #1838213.
+
+  • Michael(tm) Smith: inline.xsl; param.xweb; param.ent
+
+    Added new param email.mailto.enabled for FO output.
+    Patch from Paolo Borelli. Closes #2086321.
+
+  • Mauritz Jeanson: docbook.xsl
+
+    Added support for document metadata for fop1 (patch #2067318).
+
+  • Jirka Kosek: param.ent; param.xweb; highlight.xsl
+
+    Upgraded to support the latest version of XSLTHL 2.0
+     -- nested markup in highlited code is now processed
+     -- it is no longer needed to specify path XSLTHL configuration file using Java property
+     -- support for new languages, including Perl, Python and Ruby was added
+
+HTML
+
+The following changes have been made to the html code since the 1.74.0 release.
+
+  • Robert Stayton: param.xweb; docbook.xsl; param.ent; html.xsl
+
+    Add support for writing.mode to set text direction and alignment based on document locale.
+
+  • Mauritz Jeanson: chunk-changebars.xsl
+
+    Added a new top-level stylesheet module, chunk-changebars.xsl, to be
+    used for generating chunked output with highlighting based on change
+    (@revisionflag) markup. The module imports/includes the standard chunking
+    and changebars templates and contains additional logic for chunked output.
+    See FRs #1015180 and #1819915.
+
+Manpages
+
+The following changes have been made to the manpages code since the 1.74.0
+release.
+
+  • Michael(tm) Smith: docbook.xsl
+
+    Put the following at the top of generated roff for each page:
+      \" t
+    purpose is to explicitly tell AT&T troff that the page needs to be
+    pre-processed through tbl(1); groff can figure it out
+    automatically, but apparently AT&T troff needs to be explicitly told
+
+ePub
+
+The following changes have been made to the epub code since the 1.74.0 release.
+
+  • Keith Fahlgren: docbook.xsl
+
+    Patch from Paul Norton of Adobe to get covers to look better in Adobe Digital Editions
+
+  • Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/
+    v5cover.xml; bin/spec/sp⋯
+
+    Patch contributed by Liza Daly to make ePub cover handling more generic. Additionally
+    DocBook 5.0's <cover> now has some limited support:
+
+    - should reference a cover in the OPF guide for a DocBook 5.0 test document
+
+  • Keith Fahlgren: bin/spec/files/isbn.xml; bin/spec/files/issn.xml; bin/spec/
+    files/biblioid.⋯
+
+    Liza Daly reported that the dc:identifer-generation code was garbage (she was right).
+
+    Added new tests:
+    - should include at least one dc:identifier
+    - should include an ISBN as URN for dc:identifier if an ISBN was in the metadata
+    - should include an ISSN as URN for dc:identifier if an ISSN was in the metadata
+    - should include an biblioid as a dc:identifier if an biblioid was in the metadata
+    - should include a URN for a biblioid with @class attribute as a dc:identifier if an biblioid was in the metadata
+
+  • Keith Fahlgren: docbook.xsl; bin/spec/epub_spec.rb
+
+    Improve both SEO and  semantic structure of chunked ePub output by ensuring that
+    we always send out one and only one h1 in each XHTML chunk.
+
+    DocBook::Epub
+    - should include one and only one <h1> in each HTML file in rendered ePub files
+    for <book>s
+    - should include one and only one <h1> in each HTML file in rendered ePub files
+    for <book>s even if they do not have section markup
+
+  • Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files
+    /orm.book.001.x⋯
+
+    Adding better support for covers in epub files destined for .mobi and the Kindle
+
+  • Keith Fahlgren: bin/dbtoepub; bin/lib/docbook.rb; bin/spec/files/
+    DejaVuSerif.otf; docbook.⋯
+
+    Adding primitive support for embedding a single font
+
+  • Keith Fahlgren: bin/dbtoepub; bin/lib/docbook.rb; bin/spec/files/
+    test_cust.xsl; bin/spec/e⋯
+
+    Adding support for user-specified customization layers in dbtoepub
+
+  • Keith Fahlgren: bin/dbtoepub; bin/spec/epub_regressions_spec.rb; bin/lib/
+    docbook.rb; bin/s⋯
+
+    Adding CSS support to .epub target & dbtoepub:
+        -c, --css [FILE]                 Use FILE for CSS on generated XHTML.
+
+
+    DocBook::Epub
+    ...
+    - should include a CSS link in HTML files when a CSS file has been provided
+    - should include CSS file in .epub when a CSS file has been provided
+    - should include a CSS link in OPF file when a CSS file has been provided
+
+Roundtrip
+
+The following changes have been made to the roundtrip code since the 1.74.0
+release.
+
+  • Steve Ball: blocks2dbk.xsl; template.xml; template.dot
+
+    added support for imagedata-metadata
+    added support for table as images
+
+  • Steve Ball: blocks2dbk.xsl; normalise2sections.xsl; sections2blocks.xsl
+
+    Improved support for personname inlines.
+
+  • Steve Ball: blocks2dbk.xsl; blocks2dbk.dtd; template.xml
+
+    Added support for legalnotice.
+
+  • Steve Ball: blocks2dbk.xsl; wordml2normalise.xsl
+
+    added support for orgname in author
+
+  • Steve Ball: specifications.xml; supported.xml; blocks2dbk.xsl;
+    wordml2normalise.xsl; dbk2w⋯
+
+    Updated specification.
+    to-DocBook: add cols attribute to tgroup
+    from-DocBook: fix for blockquote title
+
+Params
+
+The following changes have been made to the params since the 1.74.0 release.
+
+  • The change was to add man.output.better.ps.enabled parameter, with its
+    default value set to zero. If the value of the man.output.better.ps.enabled
+    parameter is non-zero, certain markup is embedded in each generated man
+    page such that PostScript output from the man -Tps command for that page
+    will include a number of enhancements designed to improve the quality of
+    that output. If man.output.better.ps.enabled is zero (the default), no such
+    markup is embedded in generated man pages, and no enhancements are included
+    in the PostScript output generated from those man pages by the man -Tps
+    command. WARNING: The enhancements provided by this parameter rely on
+    features that are specific to groff (GNU troff) and that are not part of
+    "classic" AT&T troff or any of its derivatives. Therefore, any man pages
+    you generate with this parameter enabled will be readable only on systems
+    on which the groff (GNU troff) program is installed, such as GNU/Linux
+    systems. The pages will not not be readable on systems on with the classic
+    troff (AT&T troff) command is installed. NOTE: The value of this parameter
+    only affects PostScript output generated from the man command. It has no
+    effect on output generated using the FO backend. TIP: You can generate
+    PostScript output for any man page by running the following command: man
+    FOO -Tps > FOO.ps You can then generate PDF output by running the following
+    command: ps2pdf FOO.ps
+
+  • Robert Stayton: writing.mode.xml
+
+    writing mode param used to set text direction.
+
+  • Michael(tm) Smith: email.mailto.enabled.xml
+
+    Added new param email.mailto.enabled for FO output.
+    Patch from Paolo Borelli. Closes #2086321.
+
+  • Jirka Kosek: highlight.source.xml; highlight.xslthl.config.xml
+
+    Upgraded to support the latest version of XSLTHL 2.0
+     -- nested markup in highlited code is now processed
+     -- it is no longer needed to specify path XSLTHL configuration file using Java property
+     -- support for new languages, including Perl, Python and Ruby was added
+
+Highlighting
+
+The following changes have been made to the highlighting code since the 1.74.0
+release.
+
+  • Jirka Kosek: cpp-hl.xml; c-hl.xml; tcl-hl.xml; php-hl.xml; common.xsl;
+    perl-hl.xml; delphi⋯
+
+    Upgraded to support the latest version of XSLTHL 2.0
+     -- nested markup in highlited code is now processed
+     -- it is no longer needed to specify path XSLTHL configuration file using Java property
+     -- support for new languages, including Perl, Python and Ruby was added
+
+Release Notes: 1.74.0
+
+This release includes important bug fixes and adds the following significant
+feature changes:
+
+.epub target
+
+    Paul Norton (Adobe) and Keith Fahlgren(O'Reilly Media) have donated code
+    that generates .epub documents from DocBook input. An alpha-reference
+    implementation in Ruby has also been provided.
+
+    .epub is an open standard of the The International Digital Publishing Forum
+    (IDPF), a the trade and standards association for the digital publishing
+    industry.
+
+    Read more about this target in epub/README
+
+XHTML 1.1 target
+
+    To support .epub output, a strict XHTML 1.1 target has been added. The
+    stylesheets for this output are generated and are quite similar to the
+    XHTML target.
+
+Gentext updates
+
+    A number of locales have been updated.
+
+Roundtrip improvements
+
+    Table, figure, template syncronization, and character style improvements
+    have been made for WordML & Pages. Support added for OpenOffice.org.
+
+First implementation of a libxslt extension
+
+    A stylesheet extension for libxslt, written in Python, has been added. The
+    extension is a function for adjusting column widths in CALS tables. See
+    extensions/README.LIBXSLT for more information.
+
+The following is a list of changes that have been made since the 1.73.2
+release.
+
+Gentext
+
+The following changes have been made to the gentext code since the 1.73.2
+release.
+
+  • Michael(tm) Smith: locale/id.xml
+
+    Checked in changes to Indonesion locale submitted by Euis Luhuanam a long time ago.
+
+  • Michael(tm) Smith: locale/lt.xml
+
+    Added changes to Lithuanian locate submitted a long time back by Nikolajus Krauklis.
+
+  • Michael(tm) Smith: locale/hu.xml
+
+    fixed error in lowercase.alpha definition in Hungarian locale
+
+  • Michael(tm) Smith: locale/nb.xml
+
+    Corrected language code for nb locale, and restored missing "startquote" key.
+
+  • Michael(tm) Smith: locale/ja.xml
+
+    Committed changes to ja locale file, from Akagi Kobayashi. Adds bracket quotes around many xref instances that did not have them
+    before.
+
+  • Michael(tm) Smith: Makefile
+
+    "no" locale is now "nb"
+
+  • Michael(tm) Smith: locale/nb.xml
+
+    Update Norwegian Bokmål translation. Thanks to Hans F. Nordhaug.
+
+  • Michael(tm) Smith: locale/no.xml; locale/nb.xml
+
+    per message from Hans F. Nordhaug, correct identifier for
+    Norwegian Bokmål is "nb" (not "no") and has been for quite some
+    time now...
+
+  • Michael(tm) Smith: locale/ja.xml
+
+    Converted ja.xml source file to use real unicode characters so
+    that the actual glyphs so up when you edit it in a text editor
+    (instead of the character references).
+
+  • Michael(tm) Smith: locale/ja.xml
+
+    Checked in changes to ja.xml locale file. Thanks to Akagi Kobayashi.
+
+  • Michael(tm) Smith: locale/it.xml
+
+    Changes from Federico Zenith
+
+  • Dongsheng Song: locale/zh_cn.xml
+
+    Added missing translations.
+
+Common
+
+The following changes have been made to the common code since the 1.73.2
+release.
+
+  • Michael(tm) Smith: l10n.xsl
+
+    Added new template "l10.language.name" for retrieving the
+    English-language name of the lang setting of the current document.
+    Closes #1916837. Thanks to Simon Kennedy.
+
+  • Michael(tm) Smith: refentry.xsl
+
+    fixed syntax error
+
+  • Michael(tm) Smith: refentry.xsl
+
+    fixed a couple of typos
+
+  • Michael(tm) Smith: refentry.xsl
+
+    refined handling of cases where refentry "source" or "manual"
+    metadata is missing or when we use fallback content instead. We
+    now report a Warning if we use fallback content.
+
+  • Michael(tm) Smith: refentry.xsl
+
+    don't use refmiscinfo@class=date value as fallback for refentry
+    "source" or "manual" metadata fields
+
+  • Michael(tm) Smith: refentry.xsl
+
+    Made reporting of missing refentry metadata more quiet:
+
+      - we no longer report anything if usable-but-not-preferred
+        metadata is found; we just quietly use whatever we manage to
+        find
+
+      - we now only report missing "source" metadata if the refentry
+        is missing BOTH "source name" and "version" metadata; if it
+        has one but not the other, we use whichever one it has and
+        don't report anything as missing
+
+    The above changes were made because testing with some "real world"
+    source reveals that some authors are intentionally choosing to use
+    "non preferred" markup for some metadata, and also choosing to
+    omit "source name" or "version" metadata in there DocBook XML. So
+    it does no good to give them pedantic reminders about what they
+    already know...
+
+    Also, changed code to cause "fixme" text to be inserted in output
+    in particular cases:
+
+      - if we can't manage to find any "source" metadata at all, we
+        now put fixme text into the output
+
+      - if we can't manage to find any "manual" metadata a all, we
+        now put fixme text into the output
+
+    The "source" and "manual" metadata is necessary information, so
+    buy putting the fixme stuff in the output, we alert users to the
+    need problem of it being missing.
+
+  • Michael(tm) Smith: refentry.xsl
+
+    When generating manpages output, we no longer report anything if
+    the refentry source is missing date or pubdate content. In
+    practice, many users intentionally omit the date from the source
+    because they explicitly want it to be generated.
+
+  • Michael(tm) Smith: l10n.xml
+
+    further change needed for switch from no locale to nb.
+
+  • Michael(tm) Smith: common.xsl
+
+    Added support for orgname in authorgroup. Thanks to Camille
+    Bégnis.
+
+  • Michael(tm) Smith: Makefile
+
+    "no" locale is now "nb"
+
+  • Mauritz Jeanson: stripns.xsl
+
+    Removed the template matching "ng:link|db:link" (in order to make @xlink:show
+    work with <link> elements). As far as I can tell, this template is no longer needed.
+
+  • Mauritz Jeanson: entities.ent
+
+    Moved declaration of comment.block.parents entity to common/entities.ent.
+
+  • Mauritz Jeanson: titles.xsl
+
+    Added an update the fix made in revision 7528 (handling of xref/link in no.anchor.mode mode).
+    Having xref in title is not a problem as long as the target is not an ancestor element.
+    Closes bug #1838136.
+
+    Note that an xref that is in a title and whose target is an ancestor element is still not
+    rendered in the TOC. This could be considered a bug, but on the other hand I cannot really
+    see the point in having such an xref in a document.
+
+  • Mauritz Jeanson: titles.xsl
+
+    Added a "not(ancestor::title)" test to work around "too many nested
+    apply-templates" problems when processing xrefs or links in no.anchor.mode mode.
+    Hopefully, this closes bug #1811721.
+
+  • Mauritz Jeanson: titles.xsl
+
+    Removed old template matching "link" in no.anchor.mode mode.
+
+  • Mauritz Jeanson: titles.xsl
+
+    Process <link> in no.anchor.mode mode with the same template as <xref>.
+    Closes bug #1759205 (Empty link in no.anchor.mode mode).
+
+  • Mauritz Jeanson: titles.xsl
+
+    In no.anchor.mode mode, do not output anchors for elements that are descendants
+    of <title>. Previously, having inline elements with @id/@xml:id in <title>s
+    resulted in anchors both in the TOC and in the main flow. Closes bug #1797492.
+
+FO
+
+The following changes have been made to the fo code since the 1.73.2 release.
+
+  • Mauritz Jeanson: pi.xsl
+
+    Updated documentation for keep-together.
+
+  • Mauritz Jeanson: task.xsl
+
+    Enabled use of the keep-together PI on task elements.
+
+  • Robert Stayton: index.xsl
+
+    FOP1 requires fo:wrapper for inline index entries, not fo:inline.
+
+  • Robert Stayton: index.xsl
+
+    Fixed non-working inline.or.block template for indexterm wrappers.
+    Add fop1 to list of processors using inline.or.block.
+
+  • Mauritz Jeanson: table.xsl
+
+    Fixed bug #1891965 (colsep in entytbl not working).
+
+  • Mauritz Jeanson: titlepage.xsl
+
+    Added support for title in revhistory. Closes bug #1842847.
+
+  • Mauritz Jeanson: pi.xsl
+
+    Small doc cleanup (dbfo float-type).
+
+  • Mauritz Jeanson: titlepage.xsl
+
+    Insert commas between multiple copyright holders.
+
+  • Mauritz Jeanson: autotoc.xsl; division.xsl
+
+    Added modifications to support nested set elements. See bug #1853172.
+
+  • David Cramer: glossary.xsl
+
+    Added normalize-space to xsl:sorts to avoid missorting of glossterms due to stray leading spaces.
+
+  • David Cramer: glossary.xsl
+
+    Fixed bug #1854199: glossary.xsl should use the sortas attribute on glossentry
+
+  • Mauritz Jeanson: inline.xsl
+
+    Added a template for citebiblioid. The hyperlink target is the parent of the referenced biblioid,
+    and the "hot text" is the biblioid itself enclosed in brackets.
+
+  • Mauritz Jeanson: inline.xsl
+
+    Moved declaration of comment.block.parents entity to common/entities.ent.
+
+  • Mauritz Jeanson: docbook.xsl
+
+    Updated message about unmatched element.
+
+  • Mauritz Jeanson: param.xweb
+
+    Added link to profiling chapter of TCG.
+
+  • Mauritz Jeanson: refentry.xsl
+
+    Fixed typo (refsynopsysdiv -> refsynopsisdiv).
+
+  • David Cramer: fop.xsl; fop1.xsl; ptc.xsl; xep.xsl
+
+    Added test to check generate.index param when generating pdf bookmarks
+
+  • Mauritz Jeanson: graphics.xsl
+
+    Added support for MathML in imagedata.
+
+  • Michael(tm) Smith: math.xsl
+
+    Removed unnecessary extra test condition in test express that
+    checks for passivetex.
+
+  • Michael(tm) Smith: math.xsl
+
+    Don't use fo:instream-foreign-object if we are processing with
+    passivetex. Closes #1806899. Thanks to Justus Piater.
+
+  • Mauritz Jeanson: component.xsl
+
+    Added code to output a TOC for an appendix in an article when
+    generate.toc='article/appendix toc'. Closes bug #1669658.
+
+  • Dongsheng Song: biblio-iso690.xsl
+
+    Change encoding from "windows-1250" to "UTF-8".
+
+  • Mauritz Jeanson: pi.xsl
+
+    Updated documentation for dbfo_label-width.
+
+  • Mauritz Jeanson: lists.xsl
+
+    Added support for the dbfo_label-width PI in calloutlists.
+
+  • Robert Stayton: biblio.xsl
+
+    Support finding glossary database entries inside bibliodivs.
+
+  • Robert Stayton: formal.xsl
+
+    Complete support for <?dbfo pgwide="1"?> for informal
+    elements too.
+
+  • Mauritz Jeanson: table.xsl
+
+    In the table.block template, added a check for the dbfo_keep-together PI, so that
+    a table may break (depending on the PI value) at a page break. This was needed
+    since the outer fo:block that surrounds fo:table has keep-together.within-column="always"
+    by default, which prevents the table from breaking. Closes bug #1740964 (Titled
+    table does not respect dbfo PI).
+
+  • Mauritz Jeanson: pi.xsl
+
+    Added a few missing @role="tcg".
+
+  • Mauritz Jeanson: inline.xsl
+
+    Use normalize-space() in glossterm comparisons (as in html/inline.xsl).
+
+  • Mauritz Jeanson: autoidx.xsl
+
+    Removed the [&scope;] predicate from the target variable in the template with name="reference".
+    This filter was the cause of missing index backlinks when @zone and @type were used on indexterms,
+    with index.on.type=1. Closes bug #1680836.
+
+  • Michael(tm) Smith: inline.xsl; xref.xsl; footnote.xsl
+
+    Added capability in FO output for displaying URLs for all
+    hyperlinks (elements marked up with xlink:href attributes) in the
+    same way as URLs for ulinks are already handled (which is to say,
+    either inline or as numbered footnotes).
+
+    Background on this change:
+    DocBook 5 allows "ubiquitous" linking, which means you can make
+    any element a hyperlink just by adding an xlink:href attribute to
+    it, with the value set to an external URL. That's in contrast to
+    DocBook 4, which only allows you to use specific elements (e.g.,
+    the link and ulink elements) to mark up hyperlinks.
+
+    The existing FO stylesheets have a mechanism for handling display
+    of URLs for hyperlinks that are marked up with ulink, but they did
+    not handle display of URLs for elements that were marked up with
+    xlink:href attributes. This change adds handling for those other
+    elements, enabling the URLs they link to be displayed either
+    inline or as numbered footnotes (depending on what values the user
+    has the ulink.show and ulink.footnotes params set to).
+
+    Note that this change only adds URL display support for elements
+    that call the simple.xlink template -- which currently is most
+    (but not all) inline elements.
+
+    This change also moves the URL display handling out of the ulink
+    template and into a new "hyperlink.url.display" named template;
+    the ulink template and the simple.xlink named template now both
+    call the hyperlink.url.display template.
+
+    Warning: In the stylesheet code that determines what footnote
+    number to assign to each footnote or external hyperlink, there is
+    an XPath expression for determining whether a particular
+    xlink:href instance is an external hyperlink; that expression is
+    necessarily a bit complicated and further testing may reveal that
+    it doesn't handle all cases as expected -- so some refinements to
+    it may need to be done later.
+
+    Closes #1785519. Thanks to Ken Morse for reporting and
+    troubleshooting the problem.
+
+HTML
+
+The following changes have been made to the html code since the 1.73.2 release.
+
+  • Keith Fahlgren: inline.xsl; synop.xsl
+
+    Work to make HTML and XHTML targets more valid
+
+  • Keith Fahlgren: table.xsl
+
+    Add better handling for tables that have footnotes in the titles
+
+  • Keith Fahlgren: biblio.xsl
+
+    Add anchors to bibliodivs
+
+  • Keith Fahlgren: formal.xsl; Makefile; htmltbl.xsl
+
+    Initial checkin/merge of epub target from work provided by Paul Norton of Adobe
+    and Keith Fahlgren of O'Reilly.
+
+    This change includes new code for generating the XHTML 1.1 target sanely.
+
+  • Mauritz Jeanson: biblio.xsl
+
+    Added code for creating URLs from biblioids with @class="doi" (representing Digital
+    Object Identifiers). See FR #1934434 and http://doi.org.
+
+    To do: 1) Add support for FO output. 2) Figure out how @class="doi" should be handled
+    for bibliorelation, bibliosource and citebiblioid.
+
+  • Norman Walsh: formal.xsl
+
+    Don't use xsl:copy because it forces the resulting element to be in the same namespace as the source element; in the XHTML stylesheets, that's wrong. But the HTML-to-XHTML converter does the right thing with literal result elements, so use one of them.
+
+  • Michael(tm) Smith: Makefile
+
+    Added checks and hacks to various makefiles to enable building
+    under Cygwin. This stuff is ugly and maybe not worth the mess and
+    trouble, but does seem to work as expected and not break anything
+    else.
+
+  • Michael(tm) Smith: docbook.xsl
+
+    added "exslt" namespace binding to html/docbook.xsl file (in
+    addition to existing "exsl" binding. reason is because lack of it
+    seems to cause processing problems when using the profiled
+    version of the stylsheet
+
+  • Norman Walsh: chunk-common.xsl
+
+    Rename link
+
+  • Mauritz Jeanson: table.xsl
+
+    Added a fix to make rowsep apply to the last row of thead in entrytbl.
+
+  • Michael(tm) Smith: synop.xsl
+
+    Simplified and streamlined handling of output for ANSI-style
+    funcprototype output, to correct a problem that was causing type
+    data to be lost in the output parameter definitions. For example,
+    for an instance like this:
+      <paramdef>void *<parameter>dataptr</parameter>[]</paramdef>
+    ... the brackets (indicating an array type) were being dropped.
+
+  • Michael(tm) Smith: synop.xsl
+
+    Changed HTML handling of K&R-style paramdef output. The parameter
+    definitions are no longer output in a table (though the prototype
+    still is). The reason for the change is that the
+    kr-tabular-funcsynopsis-mode template was causing type data to be
+    lost in the output parameter definitions. For example, for an
+    instance like this:
+      <paramdef>void *<parameter>dataptr</parameter>[]</paramdef>
+    ... the brackets (indicating an array type) were being dropped.
+    The easiest way to deal with the problem is to not try to chop up
+    the parameter definitions and display them in table format, but to
+    instead just output them as-is. May not look quite as pretty, but
+    at least we can be sure no information is being lost...
+
+  • Michael(tm) Smith: pi.xsl
+
+    updated wording of doc for funcsynopsis-style PI
+
+  • Michael(tm) Smith: param.xweb; param.ent; synop.xsl
+
+    Removed the funcsynopsis.tabular.threshold param. It's no longer
+    being used in the code and hasn't been since mid 2006.
+
+  • Mauritz Jeanson: graphics.xsl
+
+    Added support for the img.src.path parameter for SVG graphics. Closes bug #1888169.
+
+  • Mauritz Jeanson: chunk-common.xsl
+
+    Added missing space.
+
+  • Norman Walsh: component.xsl
+
+    Fix bug where component titles inside info elements were not handled properly
+
+  • Michael(tm) Smith: pi.xsl
+
+    Moved dbhtml_stop-chunking embedded doc into alphabetical order,
+    fixed text of TCG section it see-also'ed.
+
+  • David Cramer: pi.xsl
+
+    Added support for <?dbhtml stop-chunking?> processing instruction
+
+  • David Cramer: chunk-common.xsl; pi.xsl
+
+    Added support for <?dbhtml stop-chunking?> processing instruction
+
+  • David Cramer: glossary.xsl
+
+    Fixed bug #1854199: glossary.xsl should use the sortas attribute on glossentry. Also added normalize-space to avoid missorting due to stray leading spaces.
+
+  • Mauritz Jeanson: inline.xsl
+
+    Added a template for citebiblioid. The hyperlink target is the parent of the referenced biblioid,
+    and the "hot text" is the biblioid itself enclosed in brackets.
+
+  • Mauritz Jeanson: inline.xsl
+
+    Added support for @xlink:show in the simple.xlink template. The "new" and "replace"
+    values are supported (corresponding to values of "_blank" and "_top" for the
+    ulink.target parameter). I have assumed that @xlink:show should override ulink.target
+    for external URI links. This closes bugs #1762023 and #1727498.
+
+  • Mauritz Jeanson: inline.xsl
+
+    Moved declaration of comment.block.parents entity to common/entities.ent.
+
+  • Mauritz Jeanson: param.xweb
+
+    Added link to profiling chapter of TCG.
+
+  • Dongsheng Song: biblio-iso690.xsl
+
+    Change encoding from "windows-1250" to "UTF-8".
+
+  • Robert Stayton: biblio.xsl
+
+    Add support in biblio collection to entries in bibliodivs.
+
+  • Mauritz Jeanson: pi.xsl
+
+    Added missing @role="tcg".
+
+  • Mauritz Jeanson: chunk-common.xsl; titlepage.xsl
+
+    Refactored legalnotice/revhistory chunking, so that the use.id.as.filename
+    parameter as well as the dbhtml_filename PI are taken into account. A new named
+    template in titlepage.xsl is used to compute the filename.
+
+  • Mauritz Jeanson: chunk-common.xsl; titlepage.xsl
+
+    An update to the fix for bug #1790495 (r7433):
+    The "ln-" prefix is output only when the legalnotice doesn't have an
+    @id/@xml:id, in which case the stylesheets generate an ID value,
+    resulting in a filename like "ln-7e0fwgj.html". This is useful because
+    without the prefix, you wouldn't know that the file contained a legalnotice.
+    The same logic is also applied to revhistory, using an "rh-" prefix.
+
+  • Mauritz Jeanson: autoidx.xsl
+
+    Removed the [&scope;] predicate from the target variable in the template with name="reference".
+    This filter was the cause of missing index backlinks when @zone and @type were used on indexterms,
+    with index.on.type=1. Closes bug #1680836.
+
+  • Mauritz Jeanson: titlepage.xsl
+
+    Added 'ln-' prefix to the name of the legalnotice chunk, in order to match the
+    <link href"..."> that is output by make.legalnotice.head.links (chunk-common.xsl).
+    Modified the href attribute on the legalnotice link.
+    Closes bug #1790495.
+
+Manpages
+
+The following changes have been made to the manpages code since the 1.73.2
+release.
+
+  • Michael(tm) Smith: other.xsl
+
+    slightly adjusted spacing around admonition markers
+
+  • Michael(tm) Smith: refentry.xsl; utility.xsl
+
+    make sure refsect3 titles are preceded by a line of space, and
+    make the indenting of their child content less severe
+
+  • Michael(tm) Smith: block.xsl
+
+    only indent verbatim environments in TTY output, not in non-TTY/PS
+
+  • Michael(tm) Smith: block.xsl
+
+    made another adjustment to correct vertical alignment of admonition marker
+
+  • Michael(tm) Smith: block.xsl; other.xsl
+
+    Adjusted/corrected alignment of adominition marker in PS/non-TTY output.
+
+  • Michael(tm) Smith: endnotes.xsl
+
+    For PS/non-TTY output, display footnote/endnote numbers in
+    superscript.
+
+  • Michael(tm) Smith: table.xsl; synop.xsl; utility.xsl
+
+    Changed handling of hanging indents for cmdsynopsis, funcsynopsis,
+    and synopfragment such that they now look correct in non-TTY/PS
+    output. We now use the groff \w escape to hang by the actual width
+    -- in the current font -- of the command, funcdef, or
+    synopfragment references number (as opposed to hanging by the
+    number of characters). This rendering in TTY output remains the
+    same, since the width in monospaced TTY output is the same as the
+    number of characters.
+
+    Also, created new synopsis-block-start and synopsis-block-end
+    templates to use for cmdsynopsis and funcsynopsis instead of the
+    corresponding verbatim-* templates.
+
+    Along with those changes, also corrected a problem that caused the
+    content of synopfragment to be dropped, and made a
+    vertical-spacing change to adjust spacing around table titles and
+    among sibling synopfragment instances.
+
+  • Michael(tm) Smith: other.xsl
+
+    use common l10.language.name template to retrieve English-language name
+
+  • Michael(tm) Smith: synop.xsl; inline.xsl
+
+    added comment in code explaining why we don't put filename output
+    in italic (despite the fact that man guidelines say we should)
+
+  • Michael(tm) Smith: inline.xsl
+
+    put filename output in monospace instead of italic
+
+  • Michael(tm) Smith: synop.xsl
+
+    put cmdsynopsis in monospace
+
+  • Michael(tm) Smith: inline.xsl
+
+    removed template match for literal. template matches for monospace
+    inlines are all imported from the HTML stylesheet
+
+  • Michael(tm) Smith: block.xsl
+
+    don't indent verbatim environments that are descendants of
+    refsynopsisdiv, not put backgrounds behind them
+
+  • Michael(tm) Smith: inline.xsl
+
+    set output of the literal element in monospace. this causes all
+    inline monospace instances in the git man pages to be set in
+    monospace (since DocBook XML source for git docs is generated with
+    asciidoc and asciidoc consistently outputs only <literal> for
+    inline monospace (not <command> or <code> or anything else).
+    Of course this only affects non-TTY output...
+
+  • Michael(tm) Smith: utility.xsl
+
+    Added inline.monoseq named template.
+
+  • Michael(tm) Smith: utility.xsl
+
+    don't bother using a custom register to store the previous
+    font-family value when setting blocks of text in code font; just
+    use \F[] .fam with no arg to switch back
+
+  • Michael(tm) Smith: endnotes.xsl
+
+    put links in blue in PS output (note that this matches how groff
+    renders content marked up with the .URL macro)
+
+  • Michael(tm) Smith: endnotes.xsl; param.xweb; param.ent
+
+    removed man.links.are.underlined and added man.font.links. Also,
+    changed the default font formatting for links to bold.
+
+  • Michael(tm) Smith: endnotes.xsl; param.xweb; param.ent
+
+    Added new param man.base.url.for.relative.links .. specifies a
+    base URL for relative links (for ulink, @xlink:href, imagedata,
+    audiodata, videodata) shown in the generated NOTES section of
+    man-page output. The value of man.base.url.for.relative.links is
+    prepended to any relative URI that is a value of ulink url,
+    xlink:href, or fileref attribute.
+
+    If you use relative URIs in link sources in your DocBook refentry
+    source, and you leave man.base.url.for.relative.links unset, the
+    relative links will appear "as is" in the NOTES section of any
+    man-page output generated from your source. That's probably not
+    what you want, because such relative links are only usable in the
+    context of HTML output. So, to make the links meaningful and
+    usable in the context of man-page output, set a value for
+    man.base.url.for.relative.links that points
+    to the online version of HTML output generated from your DocBook
+    refentry source. For example:
+
+      <xsl:param name="man.base.url.for.relative.links"
+      >http://www.kernel.org/pub/software/scm/git/docs/</xsl:param>
+
+  • Michael(tm) Smith: info.xsl
+
+    If a source refentry contains a Documentation or DOCUMENTATION
+    section, don't report it as having missing AUTHOR information.
+    Also, if missing a contrib/personblurb for a person or org, report
+    pointers to http://docbook.sf.net/el/personblurb and to
+    http://docbook.sf.net/el/contrib
+
+  • Michael(tm) Smith: info.xsl
+
+    If we encounter an author|editor|othercredit instance that lacks a
+    personblurb or contrib, report it to the user (because that means
+    we have no information about that author|editor|othercredit to
+    display in the generated AUTHOR|AUTHORS section...)
+
+  • Michael(tm) Smith: info.xsl; docbook.xsl; other.xsl
+
+    if we can't find any usable author data, emit a warning and insert
+    a fixme in the output
+
+  • Michael(tm) Smith: info.xsl
+
+    fixed bug in indenting of output for contrib instances in AUTHORS
+    section. Thanks to Daniel Leidert and the fglrx docs for exposing
+    the bug.
+
+  • Michael(tm) Smith: block.xsl
+
+    for a para or simpara that is the first child of a callout,
+    suppress the .sp or .PP that would normally be output (because in
+    those cases, the output goes into a table cell, and the .sp or .PP
+    markup causes a spurious linebreak before it when displayed
+
+  • Michael(tm) Smith: lists.xsl
+
+    Added support for rendering co callouts and calloutlist instances.
+    So you can now use simple callouts -- marking up programlisting
+    and such with co instances -- and have the callouts displayed in
+    man-page output. ("simple callouts" means using co@id and
+    callout@arearefs pointing to co@id instances; in man/roff output,
+    we can't/don't support markup that uses areaset and area)
+
+  • Michael(tm) Smith: block.xsl
+
+    only put a line of space after a verbatim if it's followed by a
+    text node or a paragraph
+
+  • Michael(tm) Smith: utility.xsl
+
+    put verbatim environments in slightly smaller font in non-TTY
+    output
+
+  • Michael(tm) Smith: lists.xsl
+
+    minor whitespace-only reformatting of lists.xsl source
+
+  • Michael(tm) Smith: lists.xsl
+
+    Made refinements/fixes to output of orderedlist and itemizedlist
+    -- in part, to get mysql man pages to display correctly. This
+    change causes a "\c" continuation marker to be added between
+    listitem markers and contents (to ensure that the content remains
+    on the same line as the marker when displayed)
+
+  • Michael(tm) Smith: block.xsl
+
+    put a line of vertical space after all verbatim output that has
+    sibling content following it (not just if that sibling content is
+    a text node)
+
+  • Michael(tm) Smith: block.xsl
+
+    refined spacing around titles for admonitions
+
+  • Michael(tm) Smith: block.xsl; other.xsl
+
+    Deal with case of verbatim environments that have a linebreak
+    after the opening tag. Assumption is that users generally don't
+    want that linebreak to appear in output, so we do some groff
+    hackery to mess with vertical spacing and close the space.
+
+  • Michael(tm) Smith: inline.xsl
+
+    indexterm instances now produce groff comments like this:
+
+      .\" primary: secondary: tertiary
+
+    remark instances, if non-empty, now produce groff comments
+
+  • Michael(tm) Smith: charmap.groff.xsl; other.xsl
+
+    convert no-break space character to groff "\ \&" (instead of just
+    "\ "). the reason is that if a space occurs at the end of a line,
+    our processing causes it to be eaten. a real-world case of this is
+    the mysql(1) man page. appending the "\&" prevents that
+
+  • Michael(tm) Smith: block.xsl
+
+    output "sp" before simpara output, not after it (outputting it
+    after results in undesirable whitespace in particular cases; for
+    example, in the hg/mercurial docs
+
+  • Michael(tm) Smith: table.xsl; synop.xsl; utility.xsl
+
+    renamed from title-preamble to pinch.together and replaced "sp -1"
+    between synopsis fragments with call to pinch.together instead
+
+  • Michael(tm) Smith: table.xsl
+
+    use title-preamble template for table titles (instead of "sp -1"
+    hack), and "sp 1" after all tables (instead of just "sp"
+
+  • Michael(tm) Smith: utility.xsl
+
+    created title-preamble template for suppressing line spacing after
+    headings
+
+  • Michael(tm) Smith: info.xsl
+
+    further refinement of indenting in AUTHORS section
+
+  • Michael(tm) Smith: block.xsl; other.xsl
+
+    refined handling of admonitions
+
+  • Michael(tm) Smith: lists.xsl
+
+    Use RS/RE in another place where we had IP ""
+
+  • Michael(tm) Smith: info.xsl
+
+    Replace (ab)use of IP with "sp -1" in AUTHORS section with RS/RE
+    instead.
+
+  • Michael(tm) Smith: table.xsl; synop.xsl; info.xsl
+
+    changed all instances of ".sp -1n" to ".sp -1"
+
+  • Michael(tm) Smith: other.xsl
+
+    add extra line before SH heads only in non-TTY output
+
+  • Michael(tm) Smith: block.xsl
+
+    Reworked output for admonitions (caution, important, note, tip,
+    warning). In TTY output, admonitions now get indented. In non-TTY
+    output, a colored marker (yellow) is displayed next to them.
+
+  • Michael(tm) Smith: other.xsl
+
+    Added BM/EM macros for putting a colored marker in margin next to
+    a block of text.
+
+  • Michael(tm) Smith: utility.xsl
+
+    created make.bold.title template by moving title-bolding part out
+    from nested-section-title template. This allows the bolding to
+    also be used by the template for formatting admonitions
+
+  • Michael(tm) Smith: info.xsl
+
+    put .br before copyright contents to prevent them from getting run in
+
+  • Michael(tm) Smith: refentry.xsl; other.xsl; utility.xsl
+
+    made point size of output for Refsect2 and Refsect3 heads bigger
+
+  • Michael(tm) Smith: other.xsl
+
+    put slightly more space between SH head and underline in non-TTY
+    output
+
+  • Michael(tm) Smith: param.xweb; param.ent; other.xsl
+
+    Added the man.charmap.subset.profile.english parameter and refined
+    the handling of charmap subsets to differentiate between English
+    and non-English source.
+
+    This way charmap subsets are now handled is this:
+
+    If the value of the man.charmap.use.subset parameter is non-zero,
+    and your DocBook source is not written in English (that is, if its
+    lang or xml:lang attribute has a value other than en), then the
+    character-map subset specified by the man.charmap.subset.profile
+    parameter is used instead of the full roff character map.
+
+    Otherwise, if the lang or xml:lang attribute on the root element
+    in your DocBook source or on the first refentry element in your
+    source has the value en or if it has no lang or xml:lang
+    attribute, then the character-map subset specified by the
+    man.charmap.subset.profile.english parameter is used instead of
+    man.charmap.subset.profile.
+
+    The difference between the two subsets is that
+    man.charmap.subset.profile provides mappings for characters in
+    Western European languages that are not part of the Roman
+    (English) alphabet (ASCII character set).
+
+  • Michael(tm) Smith: other.xsl
+
+    Various updates, mainly related to uppercasing SH titles:
+
+      - added a "Language: " metadata line to the top comment area of
+        output man pages, to indicate the language the page is in
+
+      - added a "toupper" macro of doing locale-aware uppercasing of
+        SH titles and cross-references to SH titles; the mechanism
+        relies on the uppercase.alpha and lowercase.alpha DocBook
+        gentext keys to do locale-aware uppercasing based on the
+        language the page is written in
+
+      - added a "string.shuffle" template, which provides a library
+        function for "shuffling" two strings together into a single
+        string; it takes the first character for the first string, the
+        first character from second string, etc. The only current use
+        for it is to generate the argument for the groff tr request
+        that does string uppercasing.
+
+      - added make.tr.uppercase.arg and make.tr.normalcase.arg named
+        templates for use in generating groff code for uppercasing and
+        "normal"-casing SH titles
+
+      - made the BB/BE "background drawing" macros have effect only in
+        non-TTY output
+
+      - output a few comments in the top part of source
+
+  • Michael(tm) Smith: utility.xsl
+
+    removed some leftover kruft
+
+  • Michael(tm) Smith: refentry.xsl
+
+    To create the name(s) for each man page, we now replace any spaces
+    in the refname(s) with underscores. This ensures that tools like
+    lexgrog(1) will be able to parse the name (lexgrog won't parse
+    names that contain spaces).
+
+  • Michael(tm) Smith: docbook.xsl
+
+    Put a comment into source of man page to indicate where the main
+    content starts. (We now have a few of macro definitions at the
+    start of the source, so putting this comment in helps those that
+    might be viewing the source.)
+
+  • Michael(tm) Smith: refentry.xsl
+
+    refined mechanism for generating SH titles
+
+  • Michael(tm) Smith: charmap.groff.xsl
+
+    Added zcaron, Zcaron, scaron, and Scaron to the groff character map.
+    This means that generated Finnish man pages will no longer contain
+    any raw accented characters -- they'll instead by marked up with
+    groff escapes.
+
+  • Michael(tm) Smith: other.xsl; utility.xsl
+
+    corrected a regression I introduced about a year ago that caused
+    dots to be output just as "\." -- instead needs to be "\&." (which
+    is what it will be now, after this change)
+
+  • Michael(tm) Smith: refentry.xsl
+
+    Changed backend handling for generating titles for SH sections and
+    for cross-references to those sections. This should have no effect
+    on TTY output (behavior should remain the same hopefully) but
+    results in titles in normal case (instead of uppercase) in PS
+    output.
+
+  • Michael(tm) Smith: info.xsl
+
+    use make.subheading template to make subheadings for AUTHORS and
+    COPYRIGHT sections (instead of harcoding roff markup)
+
+  • Michael(tm) Smith: block.xsl
+
+    put code font around programlisting etc.
+
+  • Michael(tm) Smith: synop.xsl; docbook.xsl
+
+    embed custom macro definitions in man pages, plus wrap synopsis in
+    code font
+
+  • Michael(tm) Smith: endnotes.xsl
+
+    use the make.subheading template to generated SH subheading for
+    endnotes section.
+
+  • Michael(tm) Smith: lists.xsl
+
+    Added some templates for generating if-then-else conditional
+    markup in groff, so let's use those instead of hard-coding it in
+    multiple places...
+
+  • Michael(tm) Smith: other.xsl; utility.xsl
+
+    Initial checkin of some changes related to making PS/PDF output
+    from "man -l -Tps" look better. The current changes:
+
+      - render synopsis and verbatim sections in a monospace/code font
+
+      - put a light-grey background behind all programlisting, screen,
+        and literallayout instances
+
+      - prevent SH heads in PS output from being rendered in uppercase
+        (as they are in console output)
+
+      - also display xrefs to SH heads in PS output in normal case
+        (instead of uppercase)
+
+      - draw a line under SH heads in PS output
+
+    The changes made to the code to support the above features were:
+
+      - added some embedded/custom macros: one for conditionally
+        upper-casing SH x-refs, one for redefining the SH macro
+        itself, with some conditional handling for PS output, and
+        finally a macro for putting a background/screen (filled box)
+        around a block of text (e.g., a program listing) in PS output
+
+      - added utility templates for wrapping blocks of text in code
+        font; also templates for inline code font
+
+  • Robert Stayton: refentry.xsl
+
+    refpurpose nodes now get apply-templates instead of just normalize-space().
+
+  • Michael(tm) Smith: lists.xsl
+
+    Fixed alignment of first lined of text for each listitem in
+    orderedlist output for TTY. Existing code seemed to have been
+    causing an extra undesirable space to appear.
+
+  • Michael(tm) Smith: lists.xsl
+
+    Wrapped some roff conditionals around roff markup for orderedlist
+    and itemizedlist output, so that the lists look acceptable in PS
+    output as well as TTY.
+
+  • Michael(tm) Smith: pi.xsl; synop.xsl; param.xweb; param.ent
+
+    Added the man.funcsynopsis.style parameter. Has the same effect in
+    manpages output as the funcsynopsis.style parameter has in HTML
+    output -- except that its default value is 'ansi' instead of 'kr'.
+
+  • Michael(tm) Smith: synop.xsl
+
+    Reworked handling of K&R funcprototype output. It no longer relies
+    on the HTML kr-tabular templates, but instead just does direct
+    transformation to roff. For K&R output, it displays the paramdef
+    output in an indented list following the prototype.
+
+  • Michael(tm) Smith: synop.xsl
+
+    Properly integrated handling for K&R output into manpages
+    stylesheet. The choice between K&R output and ANSI output is
+    currently controlled through use of the (HTML) funcsynopsis.style
+    parameter. Note that because the mechanism does currently rely on
+    funcsynopsis.style, the default in manpages output is now K&R
+    (because that's the default of that param). But I suppose I ought
+    to create a man.funcsynopsis.style and make the default for that
+    ANSI (to preserve the existing default behavior).
+
+  • Michael(tm) Smith: docbook.xsl
+
+    added manpages/pi.xsl file
+
+  • Michael(tm) Smith: .cvsignore; pi.xsl
+
+    Added "dbman funcsynopsis-style" PI and incorporated it into the
+    doc build.
+
+  • Michael(tm) Smith: refentry.xsl
+
+    Fixed regression that caused an unescaped dash to be output
+    between refname and refpurpose content. Closes bug #1894244.
+    Thanks to Daniel Leidert.
+
+  • Michael(tm) Smith: other.xsl
+
+    Fixed problem with dots being escaped in filenames of generated
+    man files. Closes #1827195. Thanks to Daniel Leidert.
+
+  • Michael(tm) Smith: inline.xsl
+
+    Added support for processing structfield (was appearing in roff
+    output surrounded by HTML <em> tags; fixed so that it gets roff
+    ital markup). Closes bug #1858329.  Thanks to Sam Varshavchik.
+
+Epub
+
+The following changes have been made to the epub code since the 1.73.2 release.
+
+  • Keith Fahlgren: bin/spec/README; bin/spec/epub_realbook_spec.rb
+
+    'Realbook' spec now passes
+
+  • Keith Fahlgren: bin/dbtoepub; README; bin/spec/README; bin/lib/docbook.rb;
+    bin/spec/epub_r⋯
+
+    Very primitive Windows support for dbtoepub reference implementation; README for running tests and for the .epub target in general; shorter realbook test document (still fails for now)
+
+  • Keith Fahlgren: bin/dbtoepub; bin/spec/epub_regressions_spec.rb; bin/lib/
+    docbook.rb; bin/s⋯
+
+    Changes to OPF spine to not duplicate idrefs for documents with parts not at the root; regression specs for same
+
+  • Keith Fahlgren: docbook.xsl
+
+    Fixing linking to cover @id, distinct from other needs of cover-image-id (again, thanks to Martin Goerner)
+
+  • Keith Fahlgren: docbook.xsl
+
+    Updating the title of the toc element in the guide to be more explicit (thanks to Martin Goerner)
+
+  • Keith Fahlgren: bin/spec/examples/amasque_exploded/content.opf; bin/spec/
+    examples/amasque_⋯
+
+    Initial checkin/merge of epub target from work provided by Paul Norton of Adobe
+    and Keith Fahlgren of O'Reilly.
+
+  • Keith Fahlgren: docbook.xsl
+
+    == General epub test support
+
+    $ spec -O ~/.spec.opts spec/epub_spec.rb
+
+    DocBook::Epub
+    - should be able to be created
+    - should fail on a nonexistent file
+    - should be able to render to a file
+    - should create a file after rendering
+    - should have the correct mimetype after rendering
+    - should be valid .epub after rendering an article
+    - should be valid .epub after rendering an article without sections
+    - should be valid .epub after rendering a book
+    - should be valid .epub after rendering a book even if it has one graphic
+    - should be valid .epub after rendering a book even if it has many graphics
+    - should be valid .epub after rendering a book even if it has many duplicated graphics
+    - should report an empty file as invalid
+    - should confirm that a valid .epub file is valid
+    - should not include PDFs in rendered epub files as valid image inclusions
+    - should include a TOC link in rendered epub files for <book>s
+
+    Finished in 20.608395 seconds
+
+    15 examples, 0 failures
+
+
+    == Verbose epub test coverage against _all_ of the testdocs
+
+    Fails on only (errors truncated):
+    1)
+    'DocBook::Epub should be able to render a valid .epub for the test document /Users/keith/work/docbook-dev/trunk/xsl/epub/bin/spec/testdocs/calloutlist.003.xml [30]' FAILED
+    'DocBook::Epub should be able to render a valid .epub for the test document /Users/keith/work/docbook-dev/trunk/xsl/epub/bin/spec/testdocs/cmdsynopsis.001.xml [35]' FAILED
+    ....
+
+    Finished in 629.89194 seconds
+
+    224 examples, 15 failures
+
+    224 examples, 15 failures yields 6% failure rate
+
+HTMLHelp
+
+The following changes have been made to the htmlhelp code since the 1.73.2
+release.
+
+  • Mauritz Jeanson: htmlhelp-common.xsl
+
+    Added <xsl:with-param name="quiet" select="$chunk.quietly"/> to calls to
+    the write.chunk, write.chunk.with.doctype, and write.text.chunk templates.
+    This makes chunk.quietly=1 suppress chunk filename messages also for help
+    support files (which seems to be what one would expect). See bug #1648360.
+
+Eclipse
+
+The following changes have been made to the eclipse code since the 1.73.2
+release.
+
+  • David Cramer: eclipse.xsl
+
+    Use sortas attributes (if they exist) when sorting indexterms
+
+  • David Cramer: eclipse.xsl
+
+    Added support for indexterm/see in eclipse index.xml
+
+  • Mauritz Jeanson: eclipse.xsl
+
+    Added <xsl:with-param name="quiet" select="$chunk.quietly"/>
+    to helpidx template.
+
+  • David Cramer: eclipse.xsl
+
+    Generate index.xml file and add related goo to plugin.xml file. Does not yet support see and seealso.
+
+  • Mauritz Jeanson: eclipse.xsl
+
+    Added <xsl:with-param name="quiet" select="$chunk.quietly"/> to calls to
+    the write.chunk, write.chunk.with.doctype, and write.text.chunk templates.
+    This makes chunk.quietly=1 suppress chunk filename messages also for help
+    support files (which seems to be what one would expect). See bug #1648360.
+
+JavaHelp
+
+The following changes have been made to the javahelp code since the 1.73.2
+release.
+
+  • Mauritz Jeanson: javahelp.xsl
+
+    Added <xsl:with-param name="quiet" select="$chunk.quietly"/> to calls to
+    the write.chunk, write.chunk.with.doctype, and write.text.chunk templates.
+    This makes chunk.quietly=1 suppress chunk filename messages also for help
+    support files (which seems to be what one would expect). See bug #1648360.
+
+Roundtrip
+
+The following changes have been made to the roundtrip code since the 1.73.2
+release.
+
+  • Steve Ball: blocks2dbk.xsl; wordml2normalise.xsl
+
+    fix table/cell borders for wordml, fix formal figure, add emphasis-strong
+
+  • Mauritz Jeanson: supported.xml
+
+    Changed @cols to 5.
+
+  • Steve Ball: blocks2dbk.xsl; blocks2dbk.dtd; template.xml
+
+    added pubdate, fixed metadata handling in biblioentry
+
+  • Steve Ball: supported.xml
+
+    Added support for edition.
+
+  • Steve Ball: docbook-pages.xsl; wordml-blocks.xsl; docbook.xsl; wordml.xsl;
+    pages-normalise⋯
+
+    Removed stylesheets for old, deprecated conversion method.
+
+  • Steve Ball: specifications.xml; dbk2ooo.xsl; blocks2dbk.xsl; dbk2pages.xsl;
+    blocks2dbk.dtd⋯
+
+    Added support for Open Office, added edition element, improved list and table support in Word and Pages
+
+  • Steve Ball: normalise-common.xsl; blocks2dbk.xsl; dbk2pages.xsl;
+    template-pages.xml; templ⋯
+
+    Fixed bug in WordML table handling, improved table handling for Pages 08, synchronised WordML and Pages templates.
+
+  • Steve Ball: normalise-common.xsl; blocks2dbk.xsl; wordml2normalise.xsl;
+    dbk2wp.xsl
+
+    fix caption, attributes
+
+  • Steve Ball: specifications.xml; blocks2dbk.xsl; wordml2normalise.xsl;
+    blocks2dbk.dtd; temp⋯
+
+    Fixes to table and list handling
+
+  • Steve Ball: blocks2dbk.xsl
+
+    added support for explicit emphasis character styles
+
+  • Steve Ball: wordml2normalise.xsl
+
+    added support for customisation in image handling
+
+  • Steve Ball: blocks2dbk.xsl
+
+    Added inlinemediaobject support for metadata.
+
+  • Steve Ball: normalise-common.xsl; blocks2dbk.xsl; template.xml;
+    dbk2wordml.xsl; dbk2wp.xsl
+
+    Added support file. Added style locking. Conversion bug fixes.
+
+Slides
+
+The following changes have been made to the slides code since the 1.73.2
+release.
+
+  • Michael(tm) Smith: fo/Makefile; html/Makefile
+
+    Added checks and hacks to various makefiles to enable building
+    under Cygwin. This stuff is ugly and maybe not worth the mess and
+    trouble, but does seem to work as expected and not break anything
+    else.
+
+  • Jirka Kosek: html/plain.xsl
+
+    Added support for showing foil number
+
+Website
+
+The following changes have been made to the website code since the 1.73.2
+release.
+
+  • Michael(tm) Smith: extensions/saxon64/.classes/.gitignore; extensions/
+    xalan2/.classes/com/⋯
+
+    renamed a bunch more .cvsignore files to .gitignore (to facilitate use of git-svn)
+
+Params
+
+The following changes have been made to the params code since the 1.73.2
+release.
+
+  • Keith Fahlgren: epub.autolabel.xml
+
+    New parameter for epub, epub.autolabel
+
+  • Mauritz Jeanson: table.frame.border.color.xml; table.cell.padding.xml;
+    table.cell.border.t⋯
+
+    Added missing refpurposes and descriptions.
+
+  • Keith Fahlgren: ade.extensions.xml
+
+    Extensions to support Adobe Digital Editions extensions in .epub output.
+
+  • Mauritz Jeanson: fop.extensions.xml; fop1.extensions.xml
+
+    Clarified that fop1.extensions is for FOP 0.90 and later. Version 1 is not here yet...
+
+  • Michael(tm) Smith: man.links.are.underlined.xml;
+    man.endnotes.list.enabled.xml; man.font.l⋯
+
+    removed man.links.are.underlined and added man.font.links. Also,
+    changed the default font formatting for links to bold.
+
+  • Michael(tm) Smith: man.base.url.for.relative.links.xml
+
+    Added new param man.base.url.for.relative.links .. specifies a
+    base URL for relative links (for ulink, @xlink:href, imagedata,
+    audiodata, videodata) shown in the generated NOTES section of
+    man-page output. The value of man.base.url.for.relative.links is
+    prepended to any relative URI that is a value of ulink url,
+    xlink:href, or fileref attribute.
+
+    If you use relative URIs in link sources in your DocBook refentry
+    source, and you leave man.base.url.for.relative.links unset, the
+    relative links will appear "as is" in the NOTES section of any
+    man-page output generated from your source. That's probably not
+    what you want, because such relative links are only usable in the
+    context of HTML output. So, to make the links meaningful and
+    usable in the context of man-page output, set a value for
+    man.base.url.for.relative.links that points
+    to the online version of HTML output generated from your DocBook
+    refentry source. For example:
+
+      <xsl:param name="man.base.url.for.relative.links"
+      >http://www.kernel.org/pub/software/scm/git/docs/</xsl:param>
+
+  • Michael(tm) Smith: man.string.subst.map.xml
+
+    squeeze .sp\n.sp into a single .sp (to prevent a extra, spurious
+    line of whitespace from being inserted after programlisting etc.
+    in certain cases)
+
+  • Michael(tm) Smith: refentry.manual.fallback.profile.xml;
+    refentry.source.fallback.profile.⋯
+
+    don't use refmiscinfo@class=date value as fallback for refentry
+    "source" or "manual" metadata fields
+
+  • Michael(tm) Smith: man.charmap.subset.profile.xml; man.charmap.enabled.xml;
+    man.charmap.su⋯
+
+    made some further doc tweaks related to the
+    man.charmap.subset.profile.english param
+
+  • Michael(tm) Smith: man.charmap.subset.profile.xml; man.charmap.enabled.xml;
+    man.charmap.su⋯
+
+    Added the man.charmap.subset.profile.english parameter and refined
+    the handling of charmap subsets to differentiate between English
+    and non-English source.
+
+    This way charmap subsets are now handled is this:
+
+    If the value of the man.charmap.use.subset parameter is non-zero,
+    and your DocBook source is not written in English (that is, if its
+    lang or xml:lang attribute has a value other than en), then the
+    character-map subset specified by the man.charmap.subset.profile
+    parameter is used instead of the full roff character map.
+
+    Otherwise, if the lang or xml:lang attribute on the root element
+    in your DocBook source or on the first refentry element in your
+    source has the value en or if it has no lang or xml:lang
+    attribute, then the character-map subset specified by the
+    man.charmap.subset.profile.english parameter is used instead of
+    man.charmap.subset.profile.
+
+    The difference between the two subsets is that
+    man.charmap.subset.profile provides mappings for characters in
+    Western European languages that are not part of the Roman
+    (English) alphabet (ASCII character set).
+
+  • Michael(tm) Smith: man.charmap.subset.profile.xml
+
+    Added to default charmap used by manpages:
+
+      - the "letters" part of the 'C1 Controls And Latin-1 Supplement
+        (Latin-1 Supplement)' Unicode block
+      - Latin Extended-A block (but not all of the characters from
+        that block have mappings in groff, so some of them are still
+        passed through as-is)
+
+    The effects of this change are that in man pages generated for
+    most Western European languages and for Finnish, all characters
+    not part of the Roman alphabet are (e.g., "accented" characters)
+    are converted to groff escapes.
+
+    Previously, by default we passed through those characters as is
+    (and users needed to use the full charmap if they wanted to have
+    those characters converted).
+
+    As a result of this change, man pages generated for Western
+    European languages will be viewable in some environments in which
+    they are not viewable if the "raw" non-Roman characters are in them.
+
+  • Mauritz Jeanson: generate.legalnotice.link.xml;
+    generate.revhistory.link.xml
+
+    Added information on how the filename is computed.
+
+  • Mauritz Jeanson: default.table.width.xml
+
+    Clarified PI usage.
+
+  • Michael(tm) Smith: man.funcsynopsis.style.xml
+
+    Added the man.funcsynopsis.style parameter. Has the same effect in
+    manpages output as the funcsynopsis.style parameter has in HTML
+    output -- except that its default value is 'ansi' instead of 'kr'.
+
+  • Michael(tm) Smith: funcsynopsis.tabular.threshold.xml
+
+    Removed the funcsynopsis.tabular.threshold param. It's no longer
+    being used in the code and hasn't been since mid 2006.
+
+  • Mauritz Jeanson: table.properties.xml
+
+    Set keep-together.within-column to "auto". This seems to be the most sensible
+    default value for tables.
+
+  • Mauritz Jeanson: informal.object.properties.xml;
+    admon.graphics.extension.xml; informalequ⋯
+
+    Several small documentation fixes.
+
+  • Mauritz Jeanson: manifest.in.base.dir.xml
+
+    Wording fixes.
+
+  • Mauritz Jeanson: header.content.properties.xml;
+    footer.content.properties.xml
+
+    Added refpurpose.
+
+  • Mauritz Jeanson: ulink.footnotes.xml; ulink.show.xml
+
+    Updated for DocBook 5.
+
+  • Mauritz Jeanson: index.method.xml; glossterm.auto.link.xml
+
+    Spelling and wording fixes.
+
+  • Mauritz Jeanson: callout.graphics.extension.xml
+
+    Clarifed available graphics formats and extensions.
+
+  • Mauritz Jeanson: footnote.sep.leader.properties.xml
+
+    Corrected refpurpose.
+
+  • Jirka Kosek: footnote.properties.xml
+
+    Added more properties which make it possible to render correctly footnotes placed inside verbatim elements.
+
+  • Mauritz Jeanson: img.src.path.xml
+
+    img.src.path works with inlinegraphic too.
+
+  • Mauritz Jeanson: saxon.character.representation.xml
+
+    Added TCG link.
+
+  • Mauritz Jeanson: img.src.path.xml
+
+    Updated description of img.src.path. Bug #1785224 revealed that
+    there was a risk of misunderstanding how it works.
+
+Profiling
+
+The following changes have been made to the profiling code since the 1.73.2
+release.
+
+  • Jirka Kosek: xsl2profile.xsl
+
+    Added new rules to profile all content generated by HTML Help (including alias files)
+
+  • Robert Stayton: profile-mode.xsl
+
+    use mode="profile" instead of xsl:copy-of for attributes so
+    they can be more easily customized.
+
+Tools
+
+The following changes have been made to the tools code since the 1.73.2
+release.
+
+  • Michael(tm) Smith: make/Makefile.DocBook
+
+    various changes and additions to support making with asciidoc as
+    an input format
+
+  • Michael(tm) Smith: make/Makefile.DocBook
+
+    make dblatex the default PDF maker for the example makefile
+
+  • Michael(tm) Smith: xsl/build/html2roff.xsl
+
+    Reworked handling of K&R funcprototype output. It no longer relies
+    on the HTML kr-tabular templates, but instead just does direct
+    transformation to roff. For K&R output, it displays the paramdef
+    output in an indented list following the prototype.
+
+  • Mauritz Jeanson: xsl/build/make-xsl-params.xsl
+
+    Made attribute-sets members of the param list. This enables links to attribute-sets in the
+    reference documentation.
+
+  • Michael(tm) Smith: xsl/build/html2roff.xsl
+
+    use .BI handling in K&R funsynopsis output for manpages, just as
+    we do already of ANSI output
+
+  • Michael(tm) Smith: xsl/build/html2roff.xsl
+
+    Implemented initial support for handling tabular K&R output of
+    funcprototype in manpages output. Accomplished by adding more
+    templates to the intermediate HTML-to-roff stylesheet that the
+    build uses to create the manpages/html-synop.xsl stylesheet.
+
+  • Michael(tm) Smith: xsl/build/doc-link-docbook.xsl
+
+    Made the xsl/tools/xsl/build/doc-link-docbook.xsl stylesheet
+    import profile-docbook.xsl, so that we can do profiling of release
+    notes. Corrected some problems in the target for the release-notes
+    HTML build.
+
+Extensions
+
+The following changes have been made to the extensions code since the 1.73.2
+release.
+
+  • Keith Fahlgren: Makefile
+
+    Use DOCBOOK_SVN variable everywhere, please; build with PDF_MAKER
+
+  • Michael(tm) Smith: Makefile
+
+    moved extensions build targets from master xsl/Makefile to
+    xsl/extensions/Makefile
+
+  • Michael(tm) Smith: .cvsignore
+
+    re-adding empty extensions subdir
+
+XSL-Saxon
+
+The following changes have been made to the xsl-saxon code since the 1.73.2
+release.
+
+  • Michael(tm) Smith: VERSION
+
+    bring xsl2, xsl-saxon, and xsl-xalan VERSION files up-to-date with
+    recent change to snapshot build infrastructure
+
+  • Michael(tm) Smith: nbproject/build-impl.xml; nbproject/project.properties
+
+    Changed hard-coded file references in "clean" target to variable
+    references. Closes #1792043. Thanks to Daniel Leidert.
+
+  • Michael(tm) Smith: VERSION; Makefile
+
+    Did post-release wrap-up of xsl-saxon and xsl-xalan dirs
+
+  • Michael(tm) Smith: nbproject/build-impl.xml; VERSION; Makefile; test
+
+    More tweaks to get release-ready
+
+XSL-Xalan
+
+The following changes have been made to the xsl-xalan code since the 1.73.2
+release.
+
+  • Michael(tm) Smith: VERSION
+
+    bring xsl2, xsl-saxon, and xsl-xalan VERSION files up-to-date with
+    recent change to snapshot build infrastructure
+
+  • Michael(tm) Smith: nbproject/build-impl.xml
+
+    Changed hard-coded file references in "clean" target to variable
+    references. Closes #1792043. Thanks to Daniel Leidert.
+
+  • Michael(tm) Smith: Makefile; VERSION
+
+    Did post-release wrap-up of xsl-saxon and xsl-xalan dirs
+
+  • Michael(tm) Smith: Makefile; nbproject/build-impl.xml; VERSION
+
+    More tweaks to get release-ready
+
+XSL-libxslt
+
+The following changes have been made to the xsl-libxslt code since the 1.73.2
+release.
+
+  • Mauritz Jeanson: python/xslt.py
+
+    Print the result to stdout if no outfile has been given.
+    Some unnecessary semicolons removed.
+
+  • Mauritz Jeanson: python/xslt.py
+
+    Added a function that quotes parameter values (to ensure that they are interpreted as strings).
+    Replaced deprecated functions from the string module with string methods.
+
+  • Michael(tm) Smith: python/README; python/README.LIBXSLT
+
+    renamed xsl-libxslt/python/README to xsl-libxslt/python/README.LIBXSLT
+
+  • Mauritz Jeanson: python/README
+
+    Tweaked the text a little.
+
+Release Notes: 1.73.2
+
+This is solely a minor bug-fix update to the 1.73.1 release. It fixes a
+packaging error in the 1.73.1 package, as well as a bug in footnote handling in
+FO output.
+
+Release: 1.73.1
+
+This is mostly a bug-fix update to the 1.73.0 release.
+
+Gentext
+
+The following changes have been made to the gentext code since the 1.73.0
+release.
+
+  • Mauritz Jeanson: locale/de.xml
+
+    Applied patch #1766009.
+
+  • Michael(tm) Smith: locale/lv.xml
+
+    Added localization for ProductionSet.
+
+FO
+
+The following changes have been made to the fo code since the 1.73.0 release.
+
+  • Mauritz Jeanson: table.xsl
+
+    Modified the tgroup template so that, for tables with multiple tgroups,
+    a width attribute is output on all corresponding fo:tables. Previously,
+    there was a test prohibiting this (and a comment saying that outputting more
+    than one width attribute will cause an error). But this seems to be no longer
+    relevant; it is not a problem with FOP 0.93 or XEP 4.10. Closes bug #1760559.
+
+  • Mauritz Jeanson: graphics.xsl
+
+    Replaced useless <a> elements with warning messages (textinsert extension).
+
+  • Mauritz Jeanson: admon.xsl
+
+    Enabled generation of ids (on fo:wrapper) for indexterms in admonition titles, so that page
+    references in the index can be created. Closes bug #1775086.
+
+HTML
+
+The following changes have been made to the html code since the 1.73.0 release.
+
+  • Mauritz Jeanson: titlepage.xsl
+
+    Added <xsl:call-template name="process.footnotes"/> to abstract template
+    so that footnotes in info/abstract are processed. Closes bug #1760907.
+
+  • Michael(tm) Smith: pi.xsl; synop.xsl
+
+    Changed handling of HTML output for the cmdsynopsis and
+    funcsynopsis elements, such that a@id instances are generated for
+    them if they are descendants of any element containing a dbcmdlist
+    or dbfunclist PI. Also, update the embedded reference docs for the
+    dbcmdlist and dbfunclist PIs to make it clear that they can be
+    used within any element for which cmdsynopsis or funcsynopsis are
+    valid children.
+
+  • Michael(tm) Smith: formal.xsl
+
+    Reverted the part of revision 6952 that caused a@id anchors to be
+    generated for output of informal objects. Thanks to Sam Steingold
+    for reporting.
+
+  • Robert Stayton: glossary.xsl
+
+    Account for a glossary with no glossdiv or glossentry children.
+
+  • Mauritz Jeanson: titlepage.xsl
+
+    Modified legalnotice template so that the base.name parameter is calculated
+    in the same way as for revhistory chunks. Using <xsl:apply-templates
+    mode="chunk-filename" select="."/> did not work for single-page output since
+    the template with that mode is in chunk-code.xsl.
+
+  • Mauritz Jeanson: graphics.xsl
+
+    Updated support for SVG (must be a child of imagedata in DB 5).
+    Added support for MathML in imagedata.
+
+  • Mauritz Jeanson: pi.xsl
+
+    Added documentation for the dbhh PI (used for context-sensitive HTML Help).
+    (The two templates matching 'dbhh' are still in htmlhelp-common.xsl).
+
+Manpages
+
+The following changes have been made to the manpages code since the 1.73.0
+release.
+
+  • Michael(tm) Smith: endnotes.xsl
+
+    In manpages output, generate warnings about notesources with
+    non-para children only if the notesource is a footnote or
+    annotation. Thanks to Sam Steingold for reporting problems with
+    the existing handling.
+
+HTMLHelp
+
+The following changes have been made to the htmlhelp code since the 1.73.0
+release.
+
+  • Michael(tm) Smith: htmlhelp-common.xsl
+
+    Added single-pass namespace-stripping support to the htmlhelp,
+    eclipse, and javahelp stylesheets.
+
+Eclipse
+
+The following changes have been made to the eclipse code since the 1.73.0
+release.
+
+  • Michael(tm) Smith: eclipse.xsl
+
+    Added single-pass namespace-stripping support to the htmlhelp,
+    eclipse, and javahelp stylesheets.
+
+JavaHelp
+
+The following changes have been made to the javahelp code since the 1.73.0
+release.
+
+  • Michael(tm) Smith: javahelp.xsl
+
+    Added single-pass namespace-stripping support to the htmlhelp,
+    eclipse, and javahelp stylesheets.
+
+Roundtrip
+
+The following changes have been made to the roundtrip code since the 1.73.0
+release.
+
+  • Steve Ball: blocks2dbk.xsl; blocks2dbk.dtd; pages2normalise.xsl
+
+    Modularised blocks2dbk to allow customisation,
+    Added support for tables to pages2normalise
+
+Params
+
+The following changes have been made to the params code since the 1.73.0
+release.
+
+  • Robert Stayton: procedure.properties.xml
+
+    procedure was inheriting keep-together from formal.object.properties, but
+    a procedure does not need to be kept together by default.
+
+  • Dave Pawson: title.font.family.xml;
+    component.label.includes.part.label.xml; table.frame.b⋯
+
+    Regular formatting re-org.
+
+Release: 1.73.0
+
+This release includes important bug fixes and adds the following significant
+feature changes:
+
+New localizations and localization updates
+
+    We added two new localizations: Latvian and Esperanto, and made updates to
+    the Czech, Chinese Simplified, Mongolian, Serbian, Italian, and Ukrainian
+    localizations.
+
+ISO690 citation style for bibliography output.
+
+    Set the bibliography.style parameter to iso690 to use ISO690 style.
+
+New documentation for processing instructions (PI)
+
+    The reference documentation that ships with the release now includes
+    documentation on all PIs that you can use to control output from the
+    stylesheets.
+
+New profiling parameters for audience and wordsize
+
+    You can now do profiling based on the values of the audience and wordsize
+    attributes.
+
+Changes to man-page output
+
+    The manpages stylesheet now supports single-pass profiling and single-pass
+    DocBook 5 namespace stripping (just as the HTML and FO stylesheets also
+    do). Also, added handling for mediaobject & inlinemediaobject. (Each
+    imagedata, audiodata, or videodata element within a mediaobject or inline
+    mediaobject is now treated as a "notesource" and so handled in much the
+    same way as links and annotation/alt/footnote are in manpages output.) And
+    added the man.authors.section.enabled and man.copyright.section.enabled
+    parameters to enable control over whether output includes auto-generated
+    AUTHORS and COPYRIGHT sections.
+
+Highlighting support for C
+
+    The highlighting mechanism for generating syntax-highlighted code snippets
+    in output now supports C code listings (along with Java, PHP, XSLT, and
+    others).
+
+Experimental docbook-xsl-update script
+
+    We added an experimental docbook-xsl-update script, the purpose of which is
+    to facilitate easy sync-up to the latest docbook-xsl snapshot (by means of
+    rsync).
+
+Gentext
+
+The following changes have been made to the gentext code since the 1.72.0
+release.
+
+  • Michael(tm) Smith: locale/lv.xml; Makefile
+
+    Added Latvian localization file, from Girts Ziemelis.
+
+  • Dongsheng Song: locale/zh_cn.xml
+
+    Brought up to date with en.xml in terms of items. A few strings marked for translation.
+
+  • Jirka Kosek: locale/cs.xml
+
+    Added missing translations
+
+  • Robert Stayton: locale/eo.xml
+
+    New locale for Esperanto.
+
+  • Robert Stayton: locale/mn.xml
+
+    Update from Ganbold Tsagaankhuu.
+
+  • Jirka Kosek: locale/en.xml; locale/cs.xml
+
+    Rules for normalizing glossary entries before they are sorted can be now different for each language.
+
+  • Michael(tm) Smith: locale/sr_Latn.xml; locale/sr.xml
+
+    Committed changes from Miloš Komarčević to Serbian files.
+
+  • Robert Stayton: locale/ja.xml
+
+    Fix chapter in context xref-number-and-title
+
+  • Robert Stayton: locale/it.xml
+
+    Improved version from contributor.
+
+  • Mauritz Jeanson: locale/uk.xml
+
+    Applied patch 1592083.
+
+Common
+
+The following changes have been made to the common code since the 1.72.0
+release.
+
+  • Michael(tm) Smith: labels.xsl
+
+    Changed handling of reference auto-labeling such that reference
+    (when it appears at the component level) is now affected by the
+    label.from.part param, just as preface, chapter, and appendix.
+
+  • Michael(tm) Smith: common.xsl
+
+    Added support to the HTML stylesheets for proper processing of
+    orgname as a child of author.
+
+  • Michael(tm) Smith: refentry.xsl
+
+    Refined logging output of refentry metadata-gathering template;
+    for some cases of "missing" elements (refmiscinfo stuff, etc.),
+    the log messages now include URL to corresponding page in the
+    Definitive Guide (TDG).
+
+  • Robert Stayton: titles.xsl
+
+    Add refsection/info/title support.
+
+  • Michael(tm) Smith: titles.xsl
+
+    Added support for correct handling of xref to elements that
+    contain info/title descendants but no title children.
+
+    This should be further refined so that it handles any *info
+    elements. And there are probably some other places where similar
+    handling for *info/title should be added.
+
+  • Mauritz Jeanson: pi.xsl
+
+    Modified <xsl:when> in datetime.format template to work
+    around Xalan bug.
+
+FO
+
+The following changes have been made to the fo code since the 1.72.0 release.
+
+  • Robert Stayton: component.xsl
+
+    Add parameters to the page.sequence utility template.
+
+  • Mauritz Jeanson: xref.xsl
+
+    Added template for xref to area/areaset.
+    Part of fix for bug #1675513 (xref to area broken).
+
+  • Michael(tm) Smith: inline.xsl
+
+    Added template match for person element to fo stylesheet.
+
+  • Robert Stayton: lists.xsl
+
+    Added support for spacing="compact" in variablelist, per bug report #1722540.
+
+  • Robert Stayton: table.xsl
+
+    table pgwide="1" should also use pgwide.properties attribute-set.
+
+  • Mauritz Jeanson: inline.xsl
+
+    Make citations numbered if bibliography.numbered != 0.
+
+  • Robert Stayton: param.xweb; param.ent
+
+    Add new profiling parameters for audience and wordsize.
+
+  • Robert Stayton: param.xweb; param.ent
+
+    Added callout.icon.size parameter.
+
+  • Robert Stayton: inline.xsl; xref.xsl
+
+    Add support for xlink as olink.
+
+  • Robert Stayton: autotoc.xsl; param.xweb; param.ent
+
+    Add support for qanda.in.toc to fo TOC.
+
+  • Robert Stayton: component.xsl
+
+    Improved the page.sequence utility template for use with book.
+
+  • Robert Stayton: division.xsl
+
+    Refactored the big book template into smaller pieces.
+    Used the "page.sequence" utility template in
+    component.xsl to shorten the toc piece.
+    Added placeholder templates for front.cover and back.cover.
+
+  • Robert Stayton: param.xweb; param.ent; sections.xsl
+
+    Add section.container.element parameter to enable
+    pgwide spans inside sections.
+
+  • Robert Stayton: param.xweb; param.ent; component.xsl
+
+    Add component.titlepage.properties attribute-set to
+    support span="all" and other properties.
+
+  • Robert Stayton: htmltbl.xsl; table.xsl
+
+    Apply table.row.properties template to html tr rows too.
+    Add keep-with-next to table.row.properties when row is in thead.
+
+  • Robert Stayton: table.xsl
+
+    Add support for default.table.frame parameter.
+    Fix bug 1575446 rowsep last check for @morerows.
+
+  • Robert Stayton: refentry.xsl
+
+    Add support for info/title in refsections.
+
+  • David Cramer: qandaset.xsl
+
+    Make fo questions and answers behave the same way as html
+
+  • Jirka Kosek: lists.xsl
+
+    Added missing attribute set for procedure
+
+  • Jirka Kosek: param.xweb; biblio.xsl; docbook.xsl; param.ent;
+    biblio-iso690.xsl
+
+    Added support for formatting biblioentries according to ISO690 citation style.
+    New bibliography style can be turned on by setting parameter bibliography.style to "iso690"
+    The code was provided by Jana Dvorakova
+
+  • Robert Stayton: param.xweb; param.ent; pagesetup.xsl
+
+    Add header.table.properties and footer.table.properties attribute-sets.
+
+  • Robert Stayton: inline.xsl
+
+    Add fop1.extensions for menuchoice arrow handling exception.
+
+HTML
+
+The following changes have been made to the html code since the 1.72.0 release.
+
+  • Mauritz Jeanson: param.xweb; param.ent
+
+    Moved declaration and documentation of javahelp.encoding from javahelp.xsl to the
+    regular "parameter machinery".
+
+  • Michael(tm) Smith: admon.xsl
+
+    Changed handling of titles for note, warning, caution, important,
+    tip admonitions: We now output and HTML h3 head only if
+    admon.textlabel is non-zero or if the admonition actually contains
+    a title; otherwise, we don't output an h3 head at all.
+    (Previously, we were outputting an empty h3 if the admon.textlabel
+    was zero and if the admonition had no title.)
+
+  • Mauritz Jeanson: xref.xsl
+
+    Added template for xref to area/areaset.
+    Part of fix for bug #1675513 (xref to area broken).
+
+  • Mauritz Jeanson: titlepage.xsl; component.xsl; division.xsl; sections.xsl
+
+    Added fixes to avoid duplicate ids when generate.id.attributes = 1.
+    This (hopefully) closes bug #1671052.
+
+  • Michael(tm) Smith: formal.xsl; pi.xsl
+
+    Made the dbfunclist PI work as intended. Also added doc for
+    dbfunclist and dbcmdlist PIs.
+
+  • Michael(tm) Smith: pi.xsl; synop.xsl
+
+    Made the dbcmdlist work the way it appears to have been intended
+    to work. Restored dbhtml-dir template back to pi.xsl.
+
+  • Michael(tm) Smith: titlepage.xsl; param.xweb; param.ent
+
+    Added new param abstract.notitle.enabled.
+    If non-zero, in output of the abstract element on titlepages,
+    display of the abstract title is suppressed.
+    Because sometimes you really don't want or need that title
+    there...
+
+  • Michael(tm) Smith: chunk-code.xsl; graphics.xsl
+
+    When we are chunking long descriptions for mediaobject instances
+    into separate HTML output files, and use.id.as.filename is
+    non-zero, if a mediaobject has an ID, use that ID as the basename
+    for the long-description file (otherwise, we generate an ID for it
+    and use that ID as the basename for the file).
+    The parallels the recent change made to cause IDs for legalnotice
+    instances to be used as basenames for legalnotice chunks.
+    Also, made some minor refinements to the recent changes for
+    legalnotice chunk handling.
+
+  • Michael(tm) Smith: titlepage.xsl
+
+    Added support to the HTML stylesheets for proper processing of
+    orgname as a child of author.
+
+  • Michael(tm) Smith: chunk-code.xsl
+
+    When $generate.legalnotice.link is non-zero and
+    $use.id.as.filename is also non-zero, if a legalnotice has an ID,
+    then instead of assigning the "ln-<generatedID>" basename to the
+    output file for that legalnotice, just use its real ID as the
+    basename for the file -- as we do when chunking other elements
+    that have IDs.
+
+  • David Cramer: xref.xsl
+
+    Handle alt text on xrefs to steps when the step doesn't have a title.
+
+  • David Cramer: lists.xsl
+
+    Added <p> element around term in variablelist when formatted as table to avoid misalignment of term and listitem in xhtml (non-quirks mode) output
+
+  • David Cramer: qandaset.xsl
+
+    Added <p> element around question and answer labels to avoid misalignment of label and listitem in xhtml (non-quirks mode) output
+
+  • David Cramer: lists.xsl
+
+    Added <p> element around callouts to avoid misalignment of callout and listitem in xhtml (non-quirks mode) output
+
+  • Mauritz Jeanson: inline.xsl
+
+    Make citations numbered if bibliography.numbered != 0.
+
+  • Robert Stayton: param.xweb; param.ent
+
+    Add support for new profiling attributes audience and wordsize.
+
+  • Robert Stayton: inline.xsl; xref.xsl
+
+    Add support for xlink olinks.
+
+  • Jirka Kosek: glossary.xsl
+
+    Rules for normalizing glossary entries before they are sorted can be now different for each language.
+
+  • Robert Stayton: chunk-common.xsl; chunk-code.xsl; manifest.xsl; chunk.xsl
+
+    Refactored the chunking modules to move all named templates to
+    chunk-common.xsl and all match templates to chunk-code.xsl, in
+    order to enable better chunk customization.
+    See the comments in chunk.xsl for more details.
+
+  • Robert Stayton: lists.xsl
+
+    Add anchor for xml:id for listitem in varlistentry.
+
+  • Robert Stayton: refentry.xsl
+
+    Add support for info/title in refsections for db5.
+
+  • Jirka Kosek: param.xweb; biblio.xsl; docbook.xsl; param.ent;
+    biblio-iso690.xsl
+
+    Added support for formatting biblioentries according to ISO690 citation style.
+    New bibliography style can be turned on by setting parameter bibliography.style to "iso690"
+    The code was provided by Jana Dvorakova
+
+  • Robert Stayton: inline.xsl; xref.xsl
+
+    Add call to class.attribute to <a> output elements so they can
+    have a class value too.
+
+  • Mauritz Jeanson: glossary.xsl
+
+    Fixed bug #1644881:
+    * Added curly braces around all $language attribute values.
+    * Moved declaration of language variable to top level of stylesheet.
+    Tested with Xalan, Saxon, and xsltproc.
+
+Manpages
+
+The following changes have been made to the manpages code since the 1.72.0
+release.
+
+  • Michael(tm) Smith: param.xweb; docbook.xsl; param.ent
+
+    Added the man.authors.section.enabled and
+    man.copyright.section.enabled parameters. Set those to zero when
+    you want to suppress display of the auto-generated AUTHORS and
+    COPYRIGHT sections. Closes request #1467806. Thanks to Daniel
+    Leidert.
+
+  • Michael(tm) Smith: docbook.xsl
+
+    Took the test that the manpages stylesheet does to see if there
+    are any Refentry chilren in current doc, and made it
+    namespace-agnostic. Reason for that is because the test otherwise
+    won't work when it is copied over into the generated
+    profile-docbook.xsl stylesheet.
+
+  • Michael(tm) Smith: Makefile
+
+    Added a manpages/profile-docbook.xsl file to enable single-pass
+    profiling for manpages output.
+
+  • Michael(tm) Smith: info.xsl
+
+    Output copyright and legalnotice in man-page output in whatever
+    place they are in in document order. Closes #1690539. Thanks to
+    Daniel Leidert for reporting.
+
+  • Michael(tm) Smith: docbook.xsl
+
+    Restored support for single-pass namespace stripping to manpages
+    stylesheet.
+
+  • Michael(tm) Smith: synop.xsl; block.xsl; info.xsl; inline.xsl; lists.xsl;
+    endnotes.xsl; ut⋯
+
+    Changed handling of bold and italic/underline output in manpages
+    output. Should be transparent to users, but...
+
+    This touches handling of all bold and italic/underline output. The
+    exact change is that the mode="bold" and mode="italic" utility
+    templates were changed to named templates. (I think maybe I've
+    changed it back and forth from mode to named before, so this is
+    maybe re-reverting it yet again).
+
+    Anyway, the reason for the change is that the templates are
+    sometimes call on dynamically node-sets, and using modes to format
+    those doesn't allow passing info about the current/real context
+    node from the source (not the node-set created by the stylesheet)
+    to that formatting stage.
+
+    The named templates allow the context to be passed in as a
+    parameter, so that the bold/ital formatting template can use
+    context-aware condition checking.
+
+    This was basically necessary in order to suppress bold formatting
+    in titles, which otherwise gets screwed up because of the numbnut
+    way that roff handles nested bold/ital.
+
+    Closes #1674534). Much thanks to Daniel Leidert, whose in his
+    docbook-xsl bug-finding kung-fu has achieved Grand Master status.
+
+  • Michael(tm) Smith: block.xsl
+
+    Fixed handling of example instances by adding the example element
+    to the same template we use for processing figure. Closes
+    #1674538. Thanks to Daniel Leidert.
+
+  • Michael(tm) Smith: utility.xsl
+
+    Don't include lang in manpages filename/pathname if lang=en (that
+    is, only generate lang-qualified file-/pathnames for non-English).
+
+  • Michael(tm) Smith: endnotes.xsl
+
+    In manpages output, emit warnings for notesources (footnote, etc.)
+    that have something other than para as a child.
+
+    The numbered-with-hanging-indent formatting that's used for
+    rendering endnotes in the NOTES section of man pages places some
+    limits/assumptions on how the DocBook source is marked up; namely,
+    for notesources (footnote, annotation, etc.) that can contain
+    block-level children, if the they have a block-level child such as
+    a table or itemizedlist or orderedlist that is the first child of
+    a footnote, we have no way of rendering/indenting its content
+    properly in the endnotes list.
+
+    Thus, the manpages stylesheet not emits a warning message for that
+    case, and suggests the "fix" (which is to wrap the table or
+    itemizedlist or whatever in a para that has some preferatory text.
+
+  • Michael(tm) Smith: utility.xsl
+
+    Added support to mixed-block template for handling tables in
+    mixed-blocks (e.g., as child of para) correctly.
+
+  • Michael(tm) Smith: table.xsl; synop.xsl; block.xsl; info.xsl; lists.xsl;
+    refentry.xsl; end⋯
+
+    Reverted necessary escaping of backslash, dot, and dash
+    out of the well-intentioned (but it now appears,
+    misguided) "marker" mechanism (introduced in the 1.72.0
+    release) -- which made use of alternative "marker"
+    characters as internal representations of those
+    characters, and then replaced them just prior to
+    serialization -- and back into what's basically the
+    system that was used prior to the 1.69.0 release; that
+    is, into a part of stylesheet code that gets executed
+    at the beginning of processing -- before any other roff
+    markup up is. This change obviates the need for the
+    marker system. It also requires a lot less RAM during
+    processing (for large files, the marker mechanism
+    ending up requiring gigabytes of memory).
+
+    Closes bug #1661177. Thanks to Scott Smedley for
+    providing a test case (the fvwm man page) that exposed
+    the problem with the marker mechanism.
+
+    Also moved the mechanism for converting non-breaking
+    spaces back into the same area of the stylesheet code.
+
+  • Michael(tm) Smith: lists.xsl
+
+    Fixed problem with incorrect formatting of nested variablelist.
+    Closes bug #1650931. Thanks to Daniel "Eagle Eye" Leidert.
+
+  • Michael(tm) Smith: lists.xsl
+
+    Make sure that all listitems in itemizedlist and orderedlist are
+    preceded by a blank line. This fixes a regression that occurred
+    when instances of the TP macro that were use in a previous
+    versions of the list-handling code were switched to RS/RE (because
+    TP doesn't support nesting). TP automatically generates a blank
+    line, but RS doesn't. So I added a .sp before each .RS
+
+  • Michael(tm) Smith: block.xsl; inline.xsl; param.xweb; docbook.xsl;
+    links.xsl; param.ent
+
+    Made a number of changes related to elements with
+    out-of-line content:
+
+    - Added handling for mediaobject & inlinemediaobject.
+      Each imagedata, audiodata, or videodata element
+      within a mediaobject or inline mediaobject is now
+      treated as a "notesource" and so handled in much the
+      same way as links and annotation/alt/footnotes.
+
+      That means a numbered marker is generated inline to
+      mark the place in the main flow where the imagedata,
+      audiodata, or videodata element occurs, and a
+      corresponding numbered endnote for it is generated in
+      the endnotes list at the end of the man page; the
+      endnote contains the URL from the fileref attribute
+      of the imagedata, audiodata, or videodata element.
+
+      For mediobject and inlinemediaobject instances that
+      have a textobject child, the textobject is displayed
+      within the main text flow.
+
+    - Renamed several man.link.* params to man.endnotes.*,
+      to reflect that fact that the endnotes list now
+      contains more than just links. Also did similar
+      renaming for a number of stylesheet-internal vars.
+
+    - Added support for xlink:href (along with existing
+      support for the legacy ulink element).
+
+    - Cleaned up and streamlined the endnotes-handling
+      code. It's still messy and klunky and the basic
+      mechanism it uses is very inefficent for documents
+      that contain a lot of notesources, but at least it's
+      a bit better than it was.
+
+Eclipse
+
+The following changes have been made to the eclipse code since the 1.72.0
+release.
+
+  • Mauritz Jeanson: Makefile
+
+    Fixed bug #1715093: Makefile for creating profiled version of eclipse.xsl added.
+
+  • David Cramer: eclipse.xsl
+
+    Added normalize-space around  to avoid leading whitespace from appearing in the output if there's extra leading whitespace (e.g. <title> Foo</title>) in the source
+
+JavaHelp
+
+The following changes have been made to the javahelp code since the 1.72.0
+release.
+
+  • Mauritz Jeanson: javahelp.xsl
+
+    Implemented FR #1230233 (sorted index in javahelp).
+
+  • Mauritz Jeanson: javahelp.xsl
+
+    Added normalize-space() around titles and index entries to work around whitespace problems.
+    Added support for glossary and bibliography in toc and map files.
+
+Roundtrip
+
+The following changes have been made to the roundtrip code since the 1.72.0
+release.
+
+  • Steve Ball: blocks2dbk.xsl; wordml2normalise.xsl; normalise2sections.xsl;
+    sections2blocks.⋯
+
+    new stylesheets for better word processor support and easier maintenance
+
+  • Steve Ball: template-pages.xml; dbk2wp.xsl; sections-spec.xml
+
+    fixed bugs
+
+Params
+
+The following changes have been made to the params code since the 1.72.0
+release.
+
+  • Mauritz Jeanson: htmlhelp.button.back.xml; htmlhelp.button.forward.xml;
+    htmlhelp.button.zo⋯
+
+    Modified refpurpose text.
+
+  • Mauritz Jeanson: htmlhelp.map.file.xml; htmlhelp.force.map.and.alias.xml;
+    htmlhelp.alias.f⋯
+
+    Fixed typos, made some small changes.
+
+  • Mauritz Jeanson: javahelp.encoding.xml
+
+    Moved declaration and documentation of javahelp.encoding from javahelp.xsl to the
+    regular "parameter machinery".
+
+  • Mauritz Jeanson: generate.id.attributes.xml
+
+    Added refpurpose text.
+
+  • Mauritz Jeanson: annotation.js.xml; annotation.graphic.open.xml;
+    annotation.graphic.close.⋯
+
+    Added better refpurpose texts.
+
+  • Michael(tm) Smith: chunker.output.cdata-section-elements.xml;
+    chunker.output.standalone.xm⋯
+
+    Fixed some broken formatting in source files for chunker.* params,
+    as pointed out by Dave Pawson.
+
+  • Michael(tm) Smith: label.from.part.xml
+
+    Changed handling of reference auto-labeling such that reference
+    (when it appears at the component level) is now affected by the
+    label.from.part param, just as preface, chapter, and appendix.
+
+  • Mauritz Jeanson: callout.graphics.extension.xml
+
+    Clarified that 'extension' refers to file names.
+
+  • Michael(tm) Smith: abstract.notitle.enabled.xml
+
+    Added new param abstract.notitle.enabled.
+    If non-zero, in output of the abstract element on titlepages,
+    display of the abstract title is suppressed.
+    Because sometimes you really don't want or need that title
+    there...
+
+  • Michael(tm) Smith: man.string.subst.map.xml
+
+    Updated manpages string-substitute map to reflect fact that
+    because of another recent change to suppress bold markup in .SH
+    output, we no longer need to add a workaround for the accidental
+    uppercasing of roff escapes that occurred previously.
+
+  • Jirka Kosek: margin.note.float.type.xml; title.font.family.xml;
+    table.frame.border.color.x⋯
+
+    Improved parameter metadata
+
+  • Robert Stayton: profile.wordsize.xml; profile.audience.xml
+
+    Add support for profiling on new attributes audience and wordsize.
+
+  • Robert Stayton: callout.graphics.number.limit.xml;
+    callout.graphics.extension.xml
+
+    Added SVG graphics for fo output.
+
+  • Robert Stayton: callout.icon.size.xml
+
+    Set size of callout graphics.
+
+  • Jirka Kosek: default.units.xml; chunker.output.method.xml;
+    toc.list.type.xml; output.inden⋯
+
+    Updated parameter metadata to the new format.
+
+  • Jirka Kosek: man.output.quietly.xml; title.font.family.xml;
+    footnote.sep.leader.properties⋯
+
+    Added type annotations into parameter definition files.
+
+  • Robert Stayton: section.container.element.xml
+
+    Support spans in sections for certain processors.
+
+  • Robert Stayton: component.titlepage.properties.xml
+
+    Empty attribute set for top level component titlepage block.
+    Allows setting a span on title info.
+
+  • Jirka Kosek: bibliography.style.xml
+
+    Added link to WiKi page with description of special markup needed for ISO690 biblioentries
+
+  • Robert Stayton: make.year.ranges.xml
+
+    Clarify that multiple year elements are required.
+
+  • Robert Stayton: id.warnings.xml
+
+    Turn off id.warnings by default.
+
+  • Jirka Kosek: bibliography.style.xml
+
+    Added support for formatting biblioentries according to ISO690 citation style.
+    New bibliography style can be turned on by setting parameter bibliography.style to "iso690"
+    The code was provided by Jana Dvorakova
+
+  • Robert Stayton: header.table.properties.xml; footer.table.properties.xml
+
+    Support adding table properties to header and footer tables.
+
+Highlighting
+
+The following changes have been made to the highlighting code since the 1.72.0
+release.
+
+  • Jirka Kosek: c-hl.xml; xslthl-config.xml
+
+    Added support for C language. Provided by Bruno Guegan.
+
+Profiling
+
+The following changes have been made to the profiling code since the 1.72.0
+release.
+
+  • Robert Stayton: profile-mode.xsl
+
+    Add support for new profiling attributes audience and wordsize.
+
+Lib
+
+The following changes have been made to the lib code since the 1.72.0 release.
+
+  • Michael(tm) Smith: lib.xweb
+
+    Changed name of prepend-pad template to pad-string and twheeked so
+    it can do both right/left padding.
+
+Tools
+
+The following changes have been made to the tools code since the 1.72.0
+release.
+
+  • Michael(tm) Smith: bin; bin/docbook-xsl-update
+
+    Did some cleanup to the install.sh source and added a
+    docbook-xsl-update script to the docbook-xsl distro, the purpose
+    of which is to facilitate easy sync-up to the latest docbook-xsl
+    snapshot (by means of rsync).
+
+XSL-Saxon
+
+The following changes have been made to the xsl-saxon code since the 1.72.0
+release.
+
+  • Mauritz Jeanson: xalan27/src/com/nwalsh/xalan/Verbatim.java; xalan27/src/
+    com/nwalsh/xalan/⋯
+
+    Added modifications so that the new callout.icon.size parameter is taken into account. This
+    parameter is used for FO output (where SVG now is the default graphics format for callouts).
+
+  • Mauritz Jeanson: saxon65/src/com/nwalsh/saxon/FormatCallout.java; xalan27/
+    src/com/nwalsh/x⋯
+
+    Added code for generating id attributes on callouts in HTML and FO output.
+    These patches enable cross-references to callouts placed by area coordinates.
+    It works for graphic, unicode and text callouts.
+    Part of fix for bug #1675513 (xref to area broken).
+
+  • Michael(tm) Smith: saxon65/src/com/nwalsh/saxon/Website.java; xalan27/src/
+    com/nwalsh/xalan⋯
+
+    Copied over Website XSL Java extensions.
+
+XSL-Xalan
+
+The following changes have been made to the xsl-xalan code since the 1.72.0
+release.
+
+  • Michael(tm) Smith: Makefile; xalan2
+
+    Turned off xalan2.jar build. This removes DocBook XSL
+    Java extensions support for versions of Xalan prior to
+    Xalan 2.7. If you are currently using the extensions
+    with an earlier version of Xalan, you need to upgrade
+    to Xalan 2.7.
+
+  • Mauritz Jeanson: xalan27/src/com/nwalsh/xalan/Verbatim.java; xalan27/src/
+    com/nwalsh/xalan/⋯
+
+    Added modifications so that the new callout.icon.size parameter is taken into account. This
+    parameter is used for FO output (where SVG now is the default graphics format for callouts).
+
+  • Mauritz Jeanson: saxon65/src/com/nwalsh/saxon/FormatCallout.java; xalan27/
+    src/com/nwalsh/x⋯
+
+    Added code for generating id attributes on callouts in HTML and FO output.
+    These patches enable cross-references to callouts placed by area coordinates.
+    It works for graphic, unicode and text callouts.
+    Part of fix for bug #1675513 (xref to area broken).
+
+  • Michael(tm) Smith: saxon65/src/com/nwalsh/saxon/Website.java; xalan27/src/
+    com/nwalsh/xalan⋯
+
+    Copied over Website XSL Java extensions.
+
+Release: 1.72.0
+
+This release includes important bug fixes and adds the following significant
+feature changes:
+
+Automatic sorting of glossary entries
+
+    The HTML and FO stylesheets now support automatic sorting of glossary
+    entries. To enable glossary sorting, set the value of the glossary.sort 
+    parameter to 1 (by default, it’s value is 0). When you enable glossary
+    sorting, glossentry elements within a glossary, glossdiv, or glosslist are
+    sorted on the glossterm, using the current language setting. If you don’t
+    enable glossary sorting, then the order of glossentry elements is left “as
+    is” — that is, they are not sorted but are instead just displayed in
+    document order.
+
+WordML renamed to Roundtrip, OpenOffice support added
+
+    Stylesheets for “roundtrip” conversion between documents in OpenOffice
+    format (ODF) and DocBook XML have been added to the set of stylesheets that
+    formerly had the collective title WordML, and that set of stylesheets has
+    been renamed to Roundtrip to better reflect the actual scope and purpose of
+    its contents.
+
+    So the DocBook XSL Stylesheets now support roundtrip conversion (with
+    certain limitations) of WordML, OpenOffice, and Apple Pages documents to
+    and from DocBook XML.
+
+Including QandASet questions in TOCs
+
+    The HTML stylesheet now provides support for including QandASet questions
+    in the document TOC. To enable display of questions in the document TOC,
+    set the value of the qanda.in.toc to 1 (by default, it’s 0). When you
+    enable qanda.in.toc, then the generated table of contents for a document
+    will include qandaset titles, qandadiv titles, and question elements. The
+    default value of zero excludes them from the TOC.
+
+    Note
+
+    The qanda.in.toc parameter does not affect any tables of contents that may
+    be generated within a qandaset or qandadiv (only in the document TOC).
+
+Language identifier in man-page filenames and pathnames
+
+    Added new parameter man.output.lang.in.name.enabled, which controls whether
+    a language identifier is included in man-page filenames and pathnames. It
+    works like this:
+
+    If the value of man.output.lang.in.name.enabled is non-zero, man-page files
+    are output with a language identifier included in their filenames or
+    pathnames as follows:
+
+      □ if man.output.subdirs.enabled is non-zero, each file is output to,
+        e.g., a /$lang/man8/foo.8 pathname
+
+      □ if man.output.subdirs.enabled is zero, each file is output with a
+        foo.$lang.8 filename
+
+index.page.number.properties property set
+
+    For FO output, use the index.page.number.properties to control formatting
+    of page numbers in index output — to (for example) to display page numbers
+    in index output in a different color (to indicate that they are links).
+
+Crop marks in output from Antenna House XSL Formatter
+
+    Support has been added for generating crop marks in print/PDF output
+    generated using Antenna House XSL Formatter
+
+More string-substitution hooks in manpages output
+
+    The man.string.subst.map.local.pre and man.string.subst.map.local.post
+    parameters have been added to enable easier control over custom string
+    substitutions.
+
+Moved verbatim properties to attribute-set
+
+    The hardcoded properties used in verbatim elements (literallayout,
+    programlisting, screen) were moved to the verbatim.properties attribute-set
+    so they can be more easily customized.
+
+enhanced simple.xlink template
+
+    Now the simple.xlink template in inline.xsl works with cross reference
+    elements xref and link as well. Also, more elements call simple.xlink,
+    which enables DB5 xlink functionality.
+
+DocBook 5 compatibility
+
+    Stylesheets now consistently support DocBook 5 attributes (such as xml:id).
+    Also, DocBook 5 info elements are now checked along with other *info
+    elements, and the use of name() function was replaced by local-name() so it
+    also matches on DocBook 5 elements. These changes enable reusing the
+    stylesheets with DocBook 5 documents with minimal fixup.
+
+HTML class attributes now handled in class.attribute mode
+
+    The HTML class attributes were formerly hardcoded to the element name. Now
+    the class attribute is generated by applying templates in class.attribute
+    mode so class attribute names can be customized. The default is still the
+    element name.
+
+arabic-indic numbering enabled in autolabels
+
+    Numbering of chapter, sections, and pages can now use arabic-indic
+    numbering when number format is set to 'arabicindic' or to ١.
+
+The following is a detailed list of changes (not including bug fixes) that have
+been made since the 1.71.1 release.
+
+Common
+
+The following changes have been made to the common code since the 1.71.1
+release.
+
+  • Add support for arabicindic numbering to autolabel.format template.
+
+  • Finish support for @xml:id everywhere @id is used.
+
+  • replace name() with local-name() in most cases.
+
+  • Add support for info.
+
+  • Add utility template tabstyle to return the tabstyle from
+    any table element.
+
+FO
+
+The following changes have been made to the fo code since the 1.71.1 release.
+
+  • Add support for sorting glossary entries
+
+  • Add table.row.properties template to customize table rows.
+
+  • Moved all properties to attribute-sets so can be customized more easily.
+
+  • Add index.page.number.properties attribute-set to format page numbers.
+
+  • xref now supports xlink:href, using simple.xlink template.
+
+  • Rewrote simple.xlink, and call it with all charseq templates.
+
+  • Add simple.xlink processing to term and member elements.
+
+  • Add support for crop marks in Antenna House.
+
+HTML
+
+The following changes have been made to the html code since the 1.71.1 release.
+
+  • Add support for sorting glossary entries
+
+  • Add support for qanda.in.toc to add qandaentry questions to document TOC.
+
+  • add simple.xlink support to variablelist term and simplelist member.
+
+  • *.propagates.style now handled in class.attribute mode.
+
+  • add class parameter to class.attribute mode to set default class.
+
+  • Convert all class attributes to use the class.attribute mode
+    so class names can be customized more easily.
+
+  • Add class.attribute mode to generate class attributes.
+
+  • Added simple.xlink to most remaining inlines.
+    Changed class attributes to applying class.attributes mode.
+
+  • Changed xref template to use simple.xlink tempalte.
+
+  • Improve generate.html.title to work with link targets too.
+
+  • Improved simple.xlink to support link and xref.
+
+  • Use new link.title.attribute now.
+
+  • Rewrote simple.xlink to handle linkend also.
+    Better computation of title attribute on link too.
+
+  • Handle Xalan quirk as special case.
+
+  • Add support for info.
+
+  • Fixed imagemaps so they work properly going from calspair coords
+    to HTML area coords.
+
+Manpages
+
+The following changes have been made to the manpages code since the 1.71.1
+release.
+
+  • Added doc for man.output.lang.in.name.enabled parameter. This
+    checkin completes support for writing file/pathnames for man-pages
+    with $lang include in the names. Closes #1585967. knightly
+    accolades to Daniel Leidert for providing the feature request.
+
+  • Added new param man.output.lang.in.name.enabled, which
+    controls whether $LANG value is included in manpages
+    filenames and pathnames. It works like this:
+
+    If the value of man.output.lang.in.name.enabled is non-zero,
+    man-page files are output with the $lang value included in
+    their filenames or pathnames as follows;
+
+    - if man.output.subdirs.enabled is non-zero, each file is
+      output to, e.g., a /$lang/man8/foo.8 pathname
+
+    - if man.output.subdirs.enabled is zero, each file is output
+      with a foo.$lang.8 filename
+
+  • Use "\e" instead of "\\" for backslash output, because the
+    groff docs say that's the correct thing to do; also because
+    testing (thanks, Paul Dubois) shows that "\\" doesn't always
+    work as expected; for example, "\\" within a table seems to
+    mess things up.
+
+  • Added the man.string.subst.map.local.pre and
+    man.string.subst.map.local.post parameters. Those parameters
+    enable local additions and changes to string-substitution mappings
+    without the need to change the value of man.string.subst.map
+    parameter (which is for standard system mappings). Closes
+    #1456738. Thanks to Sam Steingold for constructing a true
+    stylesheet torture test (the clisp docs) that exposed the need for
+    these params.
+
+  • Added the Markup element to the list of elements that get output
+    in bold. Thanks to Eric S. Raymond.
+
+  • Replaced all dots in roff requests with U+2302 ("house"
+    character), and added escaping in output for all instances of dot
+    that are not in roff requests. This fixes the problem case where a
+    string beginning with a dot (for example, the string ".bashrc")
+    might occur at the beginning of a line in output, in which case 
+    would mistakenly get interpreted as a roff request. Thanks to Eric
+    S. Raymond for pushing to fix this.
+
+  • Made change to ensure that list content nested in
+    itemizedlist and orderedlist instances is properly indented. This
+    is a switch from using .TP to format those lists to using .RS/.RE
+    to format them instead (because .TP does not allow nesting). Closes bug #
+    1602616.
+    Thanks to Daniel Leidert.
+
+Params
+
+The following changes have been made to the params code since the 1.71.1
+release.
+
+  • Added doc for man.output.lang.in.name.enabled parameter. This
+    checkin completes support for writing file/pathnames for man-pages
+    with $lang include in the names. Closes #1585967. knightly
+    accolades to Daniel Leidert for providing the feature request.
+
+  • Added new param man.output.lang.in.name.enabled, which
+    controls whether $LANG value is included in manpages
+    filenames and pathnames. It works like this:
+
+    If the value of man.output.lang.in.name.enabled is non-zero,
+    man-page files are output with the $lang value included in
+    their filenames or pathnames as follows;
+
+    - if man.output.subdirs.enabled is non-zero, each file is
+      output to, e.g., a /$lang/man8/foo.8 pathname
+
+    - if man.output.subdirs.enabled is zero, each file is output
+      with a foo.$lang.8 filename
+
+  • Added the man.string.subst.map.local.pre and
+    man.string.subst.map.local.post parameters. Those parameters
+    enable local additions and changes to string-substitution mappings
+    without the need to change the value of man.string.subst.map
+    parameter (which is for standard system mappings). Closes
+    #1456738. Thanks to Sam Steingold for constructing a true
+    stylesheet torture test (the clisp docs) that exposed the need for
+    these params.
+
+  • Add index.page.number.properties by default.
+
+  • Added index.page.number.properties
+     to allow customizations of page numbers in indexes.
+
+  • Move show-destination="replace" property from template to attribute-set
+    so it can be customized.
+
+  • Add support for sorting glossary entries
+
+  • Add option to include qanda in tables of contents.
+
+  • Moved all properties to attribute-sets so can be customized more easily.
+
+Template
+
+The following changes have been made to the template code since the 1.71.1
+release.
+
+  • Added workaround for Xalan bug: use for-each and copy instead of copy-of (#
+    1604770).
+
+Roundtrip
+
+The following changes have been made to the roundtrip code since the 1.71.1
+release.
+
+  • rename to roundtrip, add OpenOffice support
+
+Release: 1.71.1
+
+This is a minor update to the 1.71.0 release. Along with a number of bug fixes,
+it includes two feature changes:
+
+  • Added support for profiling based on xml:lang and status attributes.
+
+  • Added initial support in manpages output for footnote, annotation, and alt
+    instances. Basically, they all now get handled the same way ulink instances
+    are. They are treated as a class as "note sources": A numbered marker is
+    generated at the place in the main text flow where they occur, then their
+    contents are displayed in an endnotes section at the end of the man page.
+
+Common
+
+The following changes have been made to the common code since the 1.71.1
+release.
+
+  • For backward compatability autoidx-ng.xsl is invoking "kosek" indexing method again.
+
+  • Add support for Xalan generating a root xml:base like saxon.
+
+FO
+
+The following changes have been made to the fo code since the 1.71.1 release.
+
+  • For backward compatability autoidx-ng.xsl is invoking "kosek" indexing method again.
+
+  • Add support for Xalan to add root node xml:base for db5 docs.
+
+  • Added support for profiling based on xml:lang and status attributes.
+
+HTML
+
+The following changes have been made to the html code since the 1.71.1 release.
+
+  • For backward compatability autoidx-ng.xsl is invoking "kosek" indexing method again.
+
+  • Add support for Xalan to add root node xml:base for db5 docs.
+
+  • Added support for profiling based on xml:lang and status attributes.
+
+  • Made changes in namespace declarations to prevent xmllint's
+    canonicalizer from treating them as relative namespace URIs.
+
+      - Changed xmlns:k="java:com.isogen.saxoni18n.Saxoni18nService"
+        to xmlns:k="http://www.isogen.com/functions/
+    com.isogen.saxoni18n.Saxoni18nService";
+        Saxon accepts either form
+        (see http://www.saxonica.com/documentation/extensibility/
+    functions.html);
+        to Saxon, "the part of the URI before the final '/' is immaterial".
+
+      - Changed, e.g. xmlns:xverb="com.nwalsh.xalan.Verbatim" to
+        xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim"; Xalan accepts
+        either form
+        (see http://xml.apache.org/xalan-j/extensions.html#
+    java-namespace-declare);
+        just as Saxon does, it will "simply use the string to the
+        right of the rightmost forward slash as the Java class name".
+
+      - Changed xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+        to xmlns:redirect="http://xml.apache.org/xalan/redirect", and
+        adjusted associated code to make the current Xalan redirect spec.
+        (see http://xml.apache.org/xalan-j/apidocs/org/apache/xalan/lib/
+    Redirect.html)
+
+  • Added the html.append and chunk.append parameters. By default, the
+    value of both is empty; but the internal DocBook XSL stylesheets
+    build sets their value to "<xsl:text>&#x0a;</xsl:text>", in order
+    to ensure that all files in the docbook-xsl-doc package end in a
+    newline character. (Because diff and some other tools may emit
+    error messages and/or not behave as expected when processing
+    files that are not newline-terminated.)
+
+Highlighting
+
+The following changes have been made to the highlighting code since the 1.71.1
+release.
+
+  • Added license information
+
+Manpages
+
+The following changes have been made to the manpages code since the 1.71.1
+release.
+
+  • Added initial support in manpages output for footnote, annotation,
+    and alt instances. Basically, they all now get handled the same
+    way ulink instances are. They are treated as a class as "note
+    sources": A numbered marker is generated at the place in the main
+    text flow where they occur, then their contents are displayed in
+    an endnotes section at the end of the man page (currently titled
+    REFERENCES, for English output, but will be changed to NOTES).
+
+    This support is not yet complete. It works for most "normal"
+    cases, but probably mishandles a good number of cases. More
+    testing will be needed to expose the problems. It may well also
+    introduce some bugs and regressions in other areas, including
+    basic paragraph handling, handling of "mixed block" content,
+    handling of other indented content, and handling of authorblurb
+    and personblurb in the AUTHORS section.
+
+Params
+
+The following changes have been made to the params code since the 1.71.1
+release.
+
+  • Added support for profiling based on xml:lang and status attributes.
+
+  • Added the html.append and chunk.append parameters. By default, the
+    value of both is empty; but the internal DocBook XSL stylesheets
+    build sets their value to "<xsl:text>&#x0a;</xsl:text>", in order
+    to ensure that all files in the docbook-xsl-doc package end in a
+    newline character. (Because diff and some other tools may emit
+    error messages and/or not behave as expected when processing
+    files that are not newline-terminated.)
+
+Profiling
+
+The following changes have been made to the profiling code since the 1.71.1
+release.
+
+  • Added support for profiling based on xml:lang and status attributes.
+
+Release: 1.71.0
+
+This is mainly a bug fix release, but it also includes two significant feature
+changes:
+
+Highlighting support added
+
+    The stylesheets now include support for source-code highlighting in output
+    of programlisting instances (controlled through the highlight.source
+    parameter). The Java-based implementation requires Saxon and makes use of
+    Michal Molhanec’s XSLTHL. More details are available at Jirka Kosek’s
+    website:
+
+        http://xmlguru.cz/2006/07/docbook-syntax-highlighting
+
+    The support is currently limited to highlighting of XML, Java, PHP, Delphi,
+    Modula-2 sources, and INI files.
+
+Changes to autoindexing
+
+    The templates that handle alternative indexing methods were reworked to
+    avoid errors produced by certain processors not being able to tolerate the
+    presence of unused functions. With this release, none of the code for the
+    'kimber' or 'kosek' methods is included in the default stylesheets. In
+    order to use one of those methods, your customization layer must import one
+    of the optional stylesheet modules:
+
+      □ html/autoidx-kosek.xsl
+      □ html/autoidx-kimber.xsl
+      □ fo/autoidx-kosek.xsl
+      □ fo/autoidx-kimber.xsl
+
+    See the index.method parameter reference page for more information.
+
+    Two other changes to note:
+
+      □ The default indexing method now can handle accented characters in
+        latin-based alphabets, not just English. This means accented latin
+        letters will group and sort with their unaccented counterpart.
+      □ The default value for the index.method parameter was changed from
+        'english' to 'basic' because now the default method can handle
+        latin-based alphabets, not just English.
+
+The following is a list of changes that have been made since the 1.70.1
+release.
+
+Common
+
+The following changes have been made to the common code since the 1.70.1
+release.
+
+  • Added reference.autolabel parameter for controlling labels on
+    reference output.
+
+  • Support rows that are *completely* overlapped by the preceding row
+
+  • New modules for supporting indexing extensions.
+
+  • Support startinglinenumber on orderedlist
+
+Extensions
+
+The following changes have been made to the extensions code since the 1.70.1
+release.
+
+  • Completely reworked extensions build system; now uses NetBeans and ant
+
+FO
+
+The following changes have been made to the fo code since the 1.70.1 release.
+
+  • xsl:sort lang attribute now uses two-char substring of lang attribute.
+
+  • Support titlecase "Java", "Perl", and "IDL" as values for the
+    language attribute on classsynopsis, etc. (instead of just
+    lowercase "java", "perl", and "idl"). Also support "c++" and "C++"
+    (instead of just "cpp").
+
+    Affects HTML, FO, and manpages output. Closes bug 1552332. Thanks
+    to "Brian A. Vanderburg II".
+
+  • Added support for the reference.autolabel param in (X)HTML and FO
+    output.
+
+  • Support rows that are *completely* overlapped by the preceding row
+
+  • Rearranged templates for the 3 indexing methods
+    and changed method named 'english' to 'basic'.
+
+  • New modules for supporting indexing extensions.
+
+  • Turn off blank-body for fop1.extensions too since fop 0.92
+    does not support it either.
+
+  • Add Xalan variant to test for exslt:node-set function.
+    Xalan can use function named node-set(), but doesn't
+    recognize it using function-available().
+
+  • Added support to FO stylesheets for handling instances of Org
+    where it occurs outside of *info content. In HTML stylesheets,
+    moved handling of Org out of info.xsl and into inline.xsl. In both
+    FO and HTML stylesheets, added support for correctly processing
+    Affiliation and Jobtitle.
+
+  • Don't output punctuation between Refname and Refpurpose if
+    Refpurpose is empty. Also corrected handling of Refsect2/title
+    instances, and removed some debugging stuff that was generated in
+    manpages output to mark the ends of sections.
+
+  • Added new email.delimiters.enabled param. If non-zero (the
+    default), delimiters are generated around e-mail addresses (output
+    of the email element). If zero, the delimiters are suppressed.
+
+  • Initial support of syntax highlighting of programlistings.
+
+  • Chapter after preface should restart numbering of pages.
+
+HTML
+
+The following changes have been made to the html code since the 1.70.1 release.
+
+  • xsl:sort lang attribute now uses two-char substring of lang attribute.
+
+  • Support titlecase "Java", "Perl", and "IDL" as values for the
+    language attribute on classsynopsis, etc. (instead of just
+    lowercase "java", "perl", and "idl"). Also support "c++" and "C++"
+    (instead of just "cpp").
+
+    Affects HTML, FO, and manpages output. Closes bug 1552332. Thanks
+    to "Brian A. Vanderburg II".
+
+  • Added support for the reference.autolabel param in (X)HTML and FO
+    output.
+
+  • Support rows that are *completely* overlapped by the preceding row
+
+  • Rearranged templates for the 3 indexing methods
+    and changed method named 'english' to 'basic'.
+
+  • New modules for supporting indexing extensions.
+
+  • Added several new HTML parameters for controlling appearance of
+    content on HTML title pages:
+
+    contrib.inline.enabled:
+      If non-zero (the default), output of the contrib element is
+      displayed as inline content rather than as block content.
+
+    othercredit.like.author.enabled:
+      If non-zero, output of the othercredit element on titlepages is
+      displayed in the same style as author and editor output. If zero
+      (the default), othercredit output is displayed using a style
+      different than that of author and editor.
+
+    blurb.on.titlepage.enabled:
+      If non-zero, output from authorblurb and personblurb elements is
+      displayed on title pages. If zero (the default), output from
+      those elements is suppressed on title pages (unless you are
+      using a titlepage customization that causes them to be included).
+
+    editedby.enabled
+      If non-zero (the default), a localized Edited by heading is
+      displayed above editor names in output of the editor element.
+
+  • Add Xalan variant to test for exslt:node-set function.
+    Xalan can use function named node-set(), but doesn't
+    recognize it using function-available().
+
+  • Added support to FO stylesheets for handling instances of Org
+    where it occurs outside of *info content. In HTML stylesheets,
+    moved handling of Org out of info.xsl and into inline.xsl. In both
+    FO and HTML stylesheets, added support for correctly processing
+    Affiliation and Jobtitle.
+
+  • Don't output punctuation between Refname and Refpurpose if
+    Refpurpose is empty. Also corrected handling of Refsect2/title
+    instances, and removed some debugging stuff that was generated in
+    manpages output to mark the ends of sections.
+
+  • Added new email.delimiters.enabled param. If non-zero (the
+    default), delimiters are generated around e-mail addresses (output
+    of the email element). If zero, the delimiters are suppressed.
+
+  • Added qanda.nested.in.toc param. Default value is zero. If
+    non-zero, instances of "nested" Qandaentry (ones that are children
+    of Answer elements) are displayed in the TOC. Closes patch 1509018
+    (from Daniel Leidert). Currently on affects HTML output (no patch
+    for FO output provided).
+
+  • Improved handling of relative locations generated files
+
+  • Initial support of syntax highlighting of programlistings.
+
+  • Support org
+
+  • Support person
+
+  • Support $keep.relative.image.uris also when chunking
+
+Highlighting
+
+The following changes have been made to the highlighting code since the 1.70.1
+release.
+
+  • Initial support of syntax highlighting of programlistings.
+
+Manpages
+
+The following changes have been made to the manpages code since the 1.70.1
+release.
+
+  • Suppress footnote markers and output warning that footnotes are
+    not yet supported.
+
+  • Handle instances of address/otheraddr/ulink in author et al in the
+    same way as email instances; that is, display them on the same
+    linke as the author, editor, etc., name.
+
+  • Don't number or link-list any Ulink instance whose string value is
+    identical to the value of its url attribute. Just display it inline.
+
+  • Don't output punctuation between Refname and Refpurpose if
+    Refpurpose is empty. Also corrected handling of Refsect2/title
+    instances, and removed some debugging stuff that was generated in
+    manpages output to mark the ends of sections.
+
+  • Added new email.delimiters.enabled param. If non-zero (the
+    default), delimiters are generated around e-mail addresses (output
+    of the email element). If zero, the delimiters are suppressed.
+
+  • In manpages output, if the last/nearest *info element for
+    particular Refentry has multiple Copyright and/or Legalnotice
+    children, process them all (not just the first ones). Closes bug
+    1524576. Thanks to Sam Steingold for the report and to Daniel
+    Leidert for providing a patch.
+
+Params
+
+The following changes have been made to the params code since the 1.70.1
+release.
+
+  • Added reference.autolabel parameter for controlling labels on
+    reference output.
+
+  • Added namespace declarations to document elements for all param files.
+
+  • Updated index.method doc to describe revised setup for importing index
+     extensions.
+
+  • Added several new HTML parameters for controlling appearance of
+    content on HTML title pages:
+
+    contrib.inline.enabled:
+      If non-zero (the default), output of the contrib element is
+      displayed as inline content rather than as block content.
+
+    othercredit.like.author.enabled:
+      If non-zero, output of the othercredit element on titlepages is
+      displayed in the same style as author and editor output. If zero
+      (the default), othercredit output is displayed using a style
+      different than that of author and editor.
+
+    blurb.on.titlepage.enabled:
+      If non-zero, output from authorblurb and personblurb elements is
+      displayed on title pages. If zero (the default), output from
+      those elements is suppressed on title pages (unless you are
+      using a titlepage customization that causes them to be included).
+
+    editedby.enabled
+      If non-zero (the default), a localized Edited by heading is
+      displayed above editor names in output of the editor element.
+
+  • Added new email.delimiters.enabled param. If non-zero (the
+    default), delimiters are generated around e-mail addresses (output
+    of the email element). If zero, the delimiters are suppressed.
+
+  • Added qanda.nested.in.toc param. Default value is zero. If
+    non-zero, instances of "nested" Qandaentry (ones that are children
+    of Answer elements) are displayed in the TOC. Closes patch 1509018
+    (from Daniel Leidert). Currently on affects HTML output (no patch
+    for FO output provided).
+
+  • Initial support of syntax highlighting of programlistings.
+
+Tools
+
+The following changes have been made to the tools code since the 1.70.1
+release.
+
+  • Racheted down font sizes of headings in example makefile FO output.
+
+  • Added param and attribute set to example makefile, for getting
+    wrapping in verbatims in FO output.
+
+  • Renamed Makefile.paramDoc to Makefile.docParam.
+
+  • Added Makefile.paramDoc file, for creating versions of param.xsl
+    files with doc embedded.
+
+  • Added variable to example makefile for controlling whether HTML or
+    XHTML is generated.
+
+Release: 1.70.1
+
+This is a stable release of the 1.70 stylesheets. It includes only a few small
+changes from 1.70.0.
+
+The following is a list of changes that have been made since the 1.70.0
+release.
+
+FO
+
+The following changes have been made to the fo code since the 1.70.0 release.
+
+  • Added three new attribute sets (revhistory.title.properties,
+    revhistory.table.properties and revhistory.table.cell.properties) for
+    controlling appearance of revhistory in FO output.
+
+    Modified: fo/block.xsl,1.34; fo/param.ent,1.101; fo/param.xweb,1.114; fo/
+    titlepage.xsl,1.41; params/revhistory.table.cell.properties.xml,1.1; params
+    /revhistory.table.properties.xml,1.1; params/
+    revhistory.title.properties.xml,1.1 - Jirka Kosek
+
+  • Support DBv5 revisions with full author name (not only authorinitials)
+
+    Modified: fo/block.xsl,1.33; fo/titlepage.xsl,1.40 - Jirka Kosek
+
+HTML
+
+The following changes have been made to the html code since the 1.70.0 release.
+
+  • Support DBv5 revisions with full author name (not only authorinitials)
+
+    Modified: html/block.xsl,1.23; html/titlepage.xsl,1.34 - Jirka Kosek
+
+HTMLHelp
+
+The following changes have been made to the htmlhelp code since the 1.70.0
+release.
+
+  • htmlhelp.generate.index is now param, not variable. This means that you can
+    override its setting from outside. This is useful when you generate
+    indexterms on the fly (see http://www.xml.com/pub/a/2004/07/14/dbndx.html?
+    page=3).
+
+    Modified: htmlhelp/htmlhelp-common.xsl,1.38 - Jirka Kosek
+
+  • Support chunk.tocs.and.lots in HTML Help
+
+    Modified: htmlhelp/htmlhelp-common.xsl,1.37 - Jirka Kosek
+
+Params
+
+The following changes have been made to the params code since the 1.70.0
+release.
+
+  • Added three new attribute sets (revhistory.title.properties,
+    revhistory.table.properties and revhistory.table.cell.properties) for
+    controlling appearance of revhistory in FO output.
+
+    Modified: fo/block.xsl,1.34; fo/param.ent,1.101; fo/param.xweb,1.114; fo/
+    titlepage.xsl,1.41; params/revhistory.table.cell.properties.xml,1.1; params
+    /revhistory.table.properties.xml,1.1; params/
+    revhistory.title.properties.xml,1.1 - Jirka Kosek
+
+Release: 1.70.0
+
+As with all DocBook Project dot-zero releases, this is an experimental release.
+It will be followed shortly by a stable release.
+
+This release adds a number of new features, including:
+
+  • support for selecting alternative index-collation methods (in particular,
+    support for using a collation library developed by Eliot Kimber)
+
+  • improved handling of DocBook 5 document instances (through a
+    namespace-stripping mechanism)
+
+  • full support for CALS and HTML tables in manpages output
+
+  • a mechanism for preserving relative URIs in documents that make use of
+    XInclude
+
+  • support for the "new" .90 version of FOP
+
+  • enhanced capabilities for controlling formatting of lists in HTML and FO
+    output
+
+  • autogeneration of AUTHOR and COPYRIGHT sections in manpages output
+
+  • support for generating crop marks in FO/PDF output
+
+  • support for qandaset as a root element in FO output
+
+  • support for floatstyle and orient on all table types
+
+  • support for floatstyle in figure, and example
+
+  • pgwide.properties attribute-set supports extending figure, example and
+    table into the left indent area instead of spanning multiple columns.
+
+The following is a detailed list of enhancements and API changes that have been
+made since the 1.69.1 release.
+
+Common
+
+The following changes have been made to the common code since the 1.69.1
+release.
+
+  • Add the xsl:key for the kimber indexing method.
+
+    Modified: common/autoidx-ng.xsl,1.2 - Robert Stayton
+
+  • Add support for qandaset.
+
+    Modified: common/labels.xsl,1.37; common/subtitles.xsl,1.7; common/
+    titles.xsl,1.35 - Robert Stayton
+
+  • Support dbhtml/dbfo start PI for orderedlist numbering in both HTML and FO
+
+    Modified: common/common.xsl,1.61; html/lists.xsl,1.50 - Norman Walsh
+
+  • Added CVS header.
+
+    Modified: common/stripns.xsl,1.12 - Robert Stayton
+
+  • Changed content model of text element to ANY rather than #PCDATA because
+    they could contain markup.
+
+    Modified: common/targetdatabase.dtd,1.7 - Robert Stayton
+
+  • Added refentry.meta.get.quietly param.
+
+    If zero (the default), notes and warnings about "missing" markup are
+    generated during gathering of refentry metadata. If non-zero, the metadata
+    is gathered "quietly" -- that is, the notes and warnings are suppressed.
+
+    NOTE: If you are processing a large amount of refentry content, you may be
+    able to speed up processing significantly by setting a non-zero value for
+    refentry.meta.get.quietly.
+
+    Modified: common/refentry.xsl,1.17; manpages/param.ent,1.15; manpages/
+    param.xweb,1.17; params/refentry.meta.get.quietly.xml,1.1 - Michael(tm)
+    Smith
+
+  • After namespace stripping, the source document is the temporary tree
+    created by the stripping process and it has the wrong base URI for relative
+    references. Earlier versions of this code used to try to fix that by
+    patching the elements with relative @fileref attributes. That was
+    inadequate because it calculated an absolute base URI without considering
+    that there might be xml:base attributes already in effect. It seems obvious
+    now that the right thing to do is simply to put the xml:base on the root of
+    the document. And that seems to work.
+
+    Modified: common/stripns.xsl,1.7 - Norman Walsh
+
+  • Added support for "software" and "sectdesc" class values on refmiscinfo;
+    "software" is treated identically to "source", and "setdesc" is treated
+    identically to "manual".
+
+    Modified: common/refentry.xsl,1.10; params/
+    man.th.extra2.max.length.xml,1.3; params/
+    refentry.source.name.profile.xml,1.4 - Michael(tm) Smith
+
+  • Added support for DocBook 5 namespace-stripping in manpages stylesheet.
+    Closes request #1210692.
+
+    Modified: common/common.xsl,1.56; manpages/docbook.xsl,1.57 - Michael(tm)
+    Smith
+
+  • Added <xsl:template match="/"> to make stripns.xsl usable as a standalone
+    stylesheet for stripping out DocBook 5/NG to DocBook 4. Note that DocBook
+    XSLT drivers that include this stylesheet all override the match="/"
+    template.
+
+    Modified: common/stripns.xsl,1.4 - Michael(tm) Smith
+
+  • Number figures, examples, and tables from book if there is no prefix (i.e.
+    if chapter.autolabel is set to 0). This avoids having the list of figures
+    where the figures mysteriously restart their numeration periodically when
+    chapter.autolabel is set to 0.
+
+    Modified: common/labels.xsl,1.36 - David Cramer
+
+  • Add task template in title.markup mode.
+
+    Modified: common/titles.xsl,1.34 - Robert Stayton
+
+  • Add children (with ids) of formal objects to target data.
+
+    Modified: common/targets.xsl,1.10 - Robert Stayton
+
+  • Added support for case when personname doesn't contain specific name markup
+    (as allowed in DocBook 5.0)
+
+    Modified: common/common.xsl,1.54 - Jirka Kosek
+
+Extensions
+
+The following changes have been made to the extensions code since the 1.69.1
+release.
+
+  • Support Xalan 2.7
+
+    Modified: extensions/xalan27/.cvsignore,1.1; extensions/xalan27/
+    build.xml,1.1; extensions/xalan27/nbproject/.cvsignore,1.1; extensions/
+    xalan27/nbproject/build-impl.xml,1.1; extensions/xalan27/nbproject/
+    genfiles.properties,1.1; extensions/xalan27/nbproject/
+    project.properties,1.1; extensions/xalan27/nbproject/project.xml,1.1;
+    extensions/xalan27/src/com/nwalsh/xalan/CVS.java,1.1; extensions/xalan27/
+    src/com/nwalsh/xalan/Callout.java,1.1; extensions/xalan27/src/com/nwalsh/
+    xalan/FormatCallout.java,1.1; extensions/xalan27/src/com/nwalsh/xalan/
+    FormatDingbatCallout.java,1.1; extensions/xalan27/src/com/nwalsh/xalan/
+    FormatGraphicCallout.java,1.1; extensions/xalan27/src/com/nwalsh/xalan/
+    FormatTextCallout.java,1.1; extensions/xalan27/src/com/nwalsh/xalan/
+    FormatUnicodeCallout.java,1.1; extensions/xalan27/src/com/nwalsh/xalan/
+    Func.java,1.1; extensions/xalan27/src/com/nwalsh/xalan/
+    ImageIntrinsics.java,1.1; extensions/xalan27/src/com/nwalsh/xalan/
+    Params.java,1.1; extensions/xalan27/src/com/nwalsh/xalan/Table.java,1.1;
+    extensions/xalan27/src/com/nwalsh/xalan/Text.java,1.1; extensions/xalan27/
+    src/com/nwalsh/xalan/Verbatim.java,1.1 - Norman Walsh
+
+  • Handle the case where the imageFn is actually a URI. This still needs work.
+
+    Modified: extensions/saxon643/com/nwalsh/saxon/ImageIntrinsics.java,1.4 -
+    Norman Walsh
+
+FO
+
+The following changes have been made to the fo code since the 1.69.1 release.
+
+  • Adapted to the new indexing code. Now works just like a wrapper that calls
+    kosek indexing method, originally implemented here.
+
+    Modified: fo/autoidx-ng.xsl,1.5 - Jirka Kosek
+
+  • Added parameters for header/footer table minimum height.
+
+    Modified: fo/pagesetup.xsl,1.60; fo/param.ent,1.100; fo/param.xweb,1.113 -
+    Robert Stayton
+
+  • Add the index.method parameter.
+
+    Modified: fo/param.ent,1.99; fo/param.xweb,1.112 - Robert Stayton
+
+  • Integrate support for three indexing methods: - the original English-only
+    method. - Jirka Kosek's method using EXSLT extensions. - Eliot Kimber's
+    method using Saxon extensions. Use the 'index.method' parameter to select.
+
+    Modified: fo/autoidx.xsl,1.38 - Robert Stayton
+
+  • Add support for TOC for qandaset in fo output.
+
+    Modified: fo/autotoc.xsl,1.30; fo/qandaset.xsl,1.20 - Robert Stayton
+
+  • Added parameter ulink.hyphenate.chars. Added parameter insert.link
+    .page.number.
+
+    Modified: fo/param.ent,1.98; fo/param.xweb,1.111 - Robert Stayton
+
+  • Implemented feature request #942524 to add insert.link.page.number to allow
+    link element cross references to have a page number.
+
+    Modified: fo/xref.xsl,1.67 - Robert Stayton
+
+  • Add support for ulink.hyphenate.chars so more characters can be break
+    points in urls.
+
+    Modified: fo/xref.xsl,1.66 - Robert Stayton
+
+  • Implemented patch #1075144 to make the url text in a ulink in FO output an
+    active link as well.
+
+    Modified: fo/xref.xsl,1.65 - Robert Stayton
+
+  • table footnotes now have their own table.footnote.properties attribute set.
+
+    Modified: fo/footnote.xsl,1.23 - Robert Stayton
+
+  • Add qandaset to root.elements.
+
+    Modified: fo/docbook.xsl,1.41 - Robert Stayton
+
+  • Added mode="page.sequence" to make it easier to put content into a page
+    sequence. First used for qandaset.
+
+    Modified: fo/component.xsl,1.37 - Robert Stayton
+
+  • Implemented feature request #1434408 to support formatting of biblioentry.
+
+    Modified: fo/biblio.xsl,1.35 - Robert Stayton
+
+  • Added biblioentry.properties.
+
+    Modified: fo/param.ent,1.97; fo/param.xweb,1.110 - Robert Stayton
+
+  • Support PTC/Arbortext bookmarks
+
+    Modified: fo/docbook.xsl,1.40; fo/ptc.xsl,1.1 - Norman Walsh
+
+  • Added table.footnote.properties to permit table footnotes to format
+    differently from regular footnotes.
+
+    Modified: fo/param.ent,1.96; fo/param.xweb,1.109 - Robert Stayton
+
+  • Refactored table templates to unify their processing and support all
+    options in all types. Now table and informaltable, in both Cals and Html
+    markup, use the same templates where possible, and all support pgwide,
+    rotation, and floats. There is also a placeholder table.container template
+    to support wrapping a table in a layout table, so the XEP table title
+    "continued" extension can be more easily implemented.
+
+    Modified: fo/formal.xsl,1.52; fo/htmltbl.xsl,1.9; fo/table.xsl,1.48 -
+    Robert Stayton
+
+  • Added new attribute set toc.line.properties for controlling appearance of
+    lines in ToC/LoT
+
+    Modified: fo/autotoc.xsl,1.29; fo/param.ent,1.95; fo/param.xweb,1.108 -
+    Jirka Kosek
+
+  • Added support for float to example and equation. Added support for pgwide
+    to figure, example, and equation (the latter two via a dbfo pgwide="1"
+    processing instruction).
+
+    Modified: fo/formal.xsl,1.51 - Robert Stayton
+
+  • Add pgwide.properties attribute-set.
+
+    Modified: fo/param.ent,1.94; fo/param.xweb,1.107 - Robert Stayton
+
+  • Added refclass.suppress param.
+
+    If the value of refclass.suppress is non-zero, then display refclass
+    contents is suppressed in output. Affects HTML and FO output only.
+
+    Modified: fo/param.ent,1.93; fo/param.xweb,1.106; html/param.ent,1.90; html
+    /param.xweb,1.99; params/refclass.suppress.xml,1.1 - Michael(tm) Smith
+
+  • Improved support for task subelements
+
+    Modified: fo/task.xsl,1.3; html/task.xsl,1.3 - Jirka Kosek
+
+  • Adjusted spacing around K&R-formatted Funcdef and Paramdef output such that
+    it can more easily be discerned where one ends and the other begins. Closes
+    #1213264.
+
+    Modified: fo/synop.xsl,1.18 - Michael(tm) Smith
+
+  • Made handling of paramdef/parameter in FO output consistent with that in
+    HTML and manpages output. Closes #1213259.
+
+    Modified: fo/synop.xsl,1.17 - Michael(tm) Smith
+
+  • Made handling of Refnamediv consistent with formatting in HTML and manpages
+    output; specifically, changed so that Refname (comma-separated list of
+    multiple instances found) is used (instead of Refentrytitle as previously),
+    then em-dash, then the Refpurpose. Closes #1212562.
+
+    Modified: fo/refentry.xsl,1.30 - Michael(tm) Smith
+
+  • Added output of Releaseinfo to recto titlepage ("copyright" page) for Book
+    in FO output. This makes it consistent with HTML output. Closes #1327034.
+    Thanks to Paul DuBois for reporting.
+
+    Modified: fo/titlepage.templates.xml,1.28 - Michael(tm) Smith
+
+  • Added condition for setting block-progression-dimension.minimum on
+    table-row, instead of height, when fop1.extensions is non-zero. For an
+    explanation of the reason for the change, see: http://wiki.apache.org/
+    xmlgraphics-fop/Troubleshooting/CommonLogMessages
+
+    Modified: fo/pagesetup.xsl,1.59 - Michael(tm) Smith
+
+  • Added new refclass.suppress param for suppressing display of Refclass in
+    HTML and FO output. Did not add it to manpages because manpages stylesheet
+    is currently just silently ignoring Refclass anyway. Closes request #
+    1461065. Thanks to Davor Ocelic (docelic) for reporting.
+
+    Modified: fo/refentry.xsl,1.29; html/refentry.xsl,1.23 - Michael(tm) Smith
+
+  • Add support for keep-together PI to informal objects.
+
+    Modified: fo/formal.xsl,1.50 - Robert Stayton
+
+  • Add support for fop1.extensions.
+
+    Modified: fo/formal.xsl,1.49; fo/graphics.xsl,1.44; fo/table.xsl,1.47 -
+    Robert Stayton
+
+  • Add support for fop1 bookmarks.
+
+    Modified: fo/docbook.xsl,1.39 - Robert Stayton
+
+  • Add fop1.extentions parameter to add support for fop development version.
+
+    Modified: fo/param.ent,1.92; fo/param.xweb,1.105 - Robert Stayton
+
+  • Start supporting fop development version, which will become fop version 1.
+
+    Modified: fo/fop1.xsl,1.1 - Robert Stayton
+
+  • Add template for task in mode="xref-to".
+
+    Modified: fo/xref.xsl,1.63; html/xref.xsl,1.57 - Robert Stayton
+
+  • table footnotes now also get footnote.properties attribute-set.
+
+    Modified: fo/footnote.xsl,1.22 - Robert Stayton
+
+  • Added index.separator named template to compute the separator punctuation
+    based on locale.
+
+    Modified: fo/autoidx.xsl,1.36 - Robert Stayton
+
+  • Added support for link, olink, and xref within OO Classsynopsis and
+    children. (Because DocBook NG/5 allows it).
+
+    Modified: fo/synop.xsl,1.15; html/synop.xsl,1.19 - Michael(tm) Smith
+
+  • Support date as an inline
+
+    Modified: fo/inline.xsl,1.43; html/inline.xsl,1.46 - Norman Walsh
+
+  • Added new parameter keep.relative.image.uris
+
+    Modified: fo/param.ent,1.91; fo/param.xweb,1.104; html/param.ent,1.87; html
+    /param.xweb,1.96; params/keep.relative.image.uris.xml,1.1 - Norman Walsh
+
+  • Map Unicode space characters U+2000-U+200A to fo:leaders.
+
+    Modified: fo/docbook.xsl,1.38; fo/passivetex.xsl,1.4; fo/spaces.xsl,1.1 -
+    Jirka Kosek
+
+  • Output a real em dash for em-dash dingbat (instead of two hypens).
+
+    Modified: fo/fo.xsl,1.7 - Michael(tm) Smith
+
+  • Support default label width parameters for itemized and ordered lists
+
+    Modified: fo/lists.xsl,1.64; fo/param.ent,1.90; fo/param.xweb,1.103; params
+    /itemizedlist.label.width.xml,1.1; params/orderedlist.label.width.xml,1.1 -
+    Norman Walsh
+
+  • Generate localized title for Refsynopsisdiv if no appropriate Title
+    descendant found in source. Closes #1212398. This change makes behavior for
+    the Synopsis title consistent with the behavior of HTML and manpages
+    output.
+
+    Also, added xsl:use-attribute-sets="normal.para.spacing" to block generated
+    for Cmdsynopsis output. Previously, that block had no spacing at all
+    specified, which resulted it being crammed up to closely to the Synopsis
+    head.
+
+    Modified: fo/refentry.xsl,1.28; fo/synop.xsl,1.13 - Michael(tm) Smith
+
+  • Added parameters to support localization of index item punctuation.
+
+    Modified: fo/autoidx.xsl,1.35 - Robert Stayton
+
+  • Added index.number.separator, index.range.separator, and
+    index.term.separator parameters to support localization of punctuation in
+    index entries.
+
+    Modified: fo/param.ent,1.89; fo/param.xweb,1.102 - Robert Stayton
+
+  • Added "Cross References" section in HTML doc (for consistency with the FO
+    doc). Also, moved the existing FO "Cross References" section to follow the
+    "Linking" section.
+
+    Modified: fo/param.xweb,1.101; html/param.xweb,1.95 - Michael(tm) Smith
+
+  • Added ID attribues to all Reference elements (e.g., id="tables" for the doc
+    for section on Table params). So pages for all subsections of ref docs now
+    have stable filenames instead of arbitrary generated filenames.
+
+    Modified: fo/param.xweb,1.100; html/param.xweb,1.94 - Michael(tm) Smith
+
+  • Added two new parameters for handling of multi-term varlistentry elements:
+
+    variablelist.term.break.after: When the variablelist.term.break.after is
+    non-zero, it will generate a line break after each term multi-term
+    varlistentry.
+
+    variablelist.term.separator: When a varlistentry contains multiple term
+    elements, the string specified in the value of the
+    variablelist.term.separator parameter is placed after each term except the
+    last. The default is ", " (a comma followed by a space). To suppress
+    rendering of the separator, set the value of variablelist.term.separator to
+    the empty string ("").
+
+    These parameters are primarily intended to be useful if you have multi-term
+    varlistentries that have long terms.
+
+    Closes #1306676. Thanks to Sam Steingold for providing an example "lots of
+    long terms" doc that demonstrated the value of having these options.
+
+    Also, added normalize-space() call to processing of each term.
+
+    This change affects all output formats (HTML, PDF, manpages). The default
+    behavior should pretty much remain the same as before, but it is possible
+    (as always) that the change may introduce some new bugginess.
+
+    Modified: fo/lists.xsl,1.62; fo/param.ent,1.88; fo/param.xweb,1.99; html/
+    lists.xsl,1.48; html/param.ent,1.86; html/param.xweb,1.93; manpages/
+    lists.xsl,1.22; manpages/param.ent,1.14; manpages/param.xweb,1.16; params/
+    variablelist.term.break.after.xml,1.1; params/
+    variablelist.term.separator.xml,1.1 - Michael(tm) Smith
+
+  • Add sidebar titlepage placeholder attset for styles.
+
+    Modified: fo/titlepage.xsl,1.37 - Robert Stayton
+
+  • Add titlepage for sidebar.
+
+    Modified: fo/titlepage.templates.xml,1.27 - Robert Stayton
+
+  • Implemented RFE #1292615.
+
+    Added bunch of new parameters (attribute sets) that affect list
+    presentation: list.block.properties, itemizedlist.properties, orderedlist
+    .properties, itemizedlist.label.properties and orderedlist.label
+    .properties. Default behaviour of stylesheets has not been changed but
+    further customizations will be much more easier.
+
+    Modified: fo/lists.xsl,1.61; fo/param.ent,1.87; fo/param.xweb,1.98; params/
+    itemizedlist.label.properties.xml,1.1; params/
+    itemizedlist.properties.xml,1.1; params/list.block.properties.xml,1.1;
+    params/orderedlist.label.properties.xml,1.1; params/
+    orderedlist.properties.xml,1.1 - Jirka Kosek
+
+  • Implemented RFE #1242092.
+
+    You can enable crop marks in your document by setting crop.marks=1 and
+    xep.extensions=1. Appearance of crop marks can be controlled by parameters
+    crop.mark.bleed (6pt), crop.mark.offset (24pt) and crop.mark.width (0.5pt).
+
+    Also there is new named template called user-xep-pis. You can overwrite it
+    in order to produce some PIs that can control XEP as described in http://
+    www.renderx.com/reference.html#Output_Formats
+
+    Modified: fo/docbook.xsl,1.36; fo/param.ent,1.86; fo/param.xweb,1.97; fo/
+    xep.xsl,1.23; params/crop.mark.bleed.xml,1.1; params/
+    crop.mark.offset.xml,1.1; params/crop.mark.width.xml,1.1; params/
+    crop.marks.xml,1.1 - Jirka Kosek
+
+HTML
+
+The following changes have been made to the html code since the 1.69.1 release.
+
+  • implemented index.method parameter and three methods.
+
+    Modified: html/autoidx.xsl,1.28 - Robert Stayton
+
+  • added index.method parameter to support 3 indexing methods.
+
+    Modified: html/param.ent,1.94; html/param.xweb,1.103 - Robert Stayton
+
+  • Implemented feature request #1072510 as a processing instruction to permit
+    including external HTML content into HTML output.
+
+    Modified: html/pi.xsl,1.9 - Robert Stayton
+
+  • Added new parameter chunk.tocs.and.lots.has.title which controls presence
+    of title in a separate chunk with ToC/LoT. Disabling title can be very
+    useful if you are generating frameset output (well, yes those frames, but
+    some customers really want them ;-).
+
+    Modified: html/chunk-code.xsl,1.15; html/param.ent,1.93; html/
+    param.xweb,1.102; params/chunk.tocs.and.lots.has.title.xml,1.1 - Jirka
+    Kosek
+
+  • Support dbhtml/dbfo start PI for orderedlist numbering in both HTML and FO
+
+    Modified: common/common.xsl,1.61; html/lists.xsl,1.50 - Norman Walsh
+
+  • Allow ToC without title also for set and book.
+
+    Modified: html/autotoc.xsl,1.37; html/division.xsl,1.12 - Jirka Kosek
+
+  • Implemented floats uniformly for figure, example, equation and
+    informalfigure, informalexample, and informalequation.
+
+    Modified: html/formal.xsl,1.22 - Robert Stayton
+
+  • Added the autotoc.label.in.hyperlink param.
+
+    If the value of autotoc.label.in.hyperlink is non-zero, labels are included
+    in hyperlinked titles in the TOC. If it is instead zero, labels are still
+    displayed prior to the hyperlinked titles, but are not hyperlinked along
+    with the titles.
+
+    Closes patch #1065868. Thanks to anatoly techtonik for the patch.
+
+    Modified: html/autotoc.xsl,1.36; html/param.ent,1.92; html/
+    param.xweb,1.101; params/autotoc.label.in.hyperlink.xml,1.1 - Michael(tm)
+    Smith
+
+  • Added two new params: html.head.legalnotice.link.types and html.head.
+    legalnotice.link.multiple.
+
+    If the value of the generate.legalnotice.link is non-zero, then the
+    stylesheet generates (in the head section of the HTML source) either a
+    single HTML link element or, if the value of the html.head.legalnotice.link
+    .multiple is non-zero, one link element for each link type specified. Each
+    link has the following attributes:
+
+    - a rel attribute whose value is derived from the value of html.head.
+    legalnotice.link.types
+
+    - an href attribute whose value is set to the URL of the file containing
+    the legalnotice
+
+    - a title attribute whose value is set to the title of the corresponding
+    legalnotice (or a title programatically determined by the stylesheet)
+
+    For example:
+
+    <link rel="copyright" href="ln-id2524073.html" title="Legal Notice">
+
+    Closes #1476450. Thanks to Sam Steingold.
+
+    Modified: html/chunk-common.xsl,1.45; html/param.ent,1.91; html/
+    param.xweb,1.100; params/generate.legalnotice.link.xml,1.4; params/
+    html.head.legalnotice.link.multiple.xml,1.1; params/
+    html.head.legalnotice.link.types.xml,1.1 - Michael(tm) Smith
+
+  • Added refclass.suppress param.
+
+    If the value of refclass.suppress is non-zero, then display refclass
+    contents is suppressed in output. Affects HTML and FO output only.
+
+    Modified: fo/param.ent,1.93; fo/param.xweb,1.106; html/param.ent,1.90; html
+    /param.xweb,1.99; params/refclass.suppress.xml,1.1 - Michael(tm) Smith
+
+  • Improved support for task subelements
+
+    Modified: fo/task.xsl,1.3; html/task.xsl,1.3 - Jirka Kosek
+
+  • Added new refclass.suppress param for suppressing display of Refclass in
+    HTML and FO output. Did not add it to manpages because manpages stylesheet
+    is currently just silently ignoring Refclass anyway. Closes request #
+    1461065. Thanks to Davor Ocelic (docelic) for reporting.
+
+    Modified: fo/refentry.xsl,1.29; html/refentry.xsl,1.23 - Michael(tm) Smith
+
+  • Process alt text with normalize-space(). Replace tab indents with spaces.
+
+    Modified: html/graphics.xsl,1.57 - Robert Stayton
+
+  • Content of citation element is automatically linked to the bibliographic
+    entry with the corresponding abbrev.
+
+    Modified: html/biblio.xsl,1.26; html/inline.xsl,1.47; html/xref.xsl,1.58 -
+    Jirka Kosek
+
+  • Add template for task in mode="xref-to".
+
+    Modified: fo/xref.xsl,1.63; html/xref.xsl,1.57 - Robert Stayton
+
+  • Suppress ID warnings if the .warnings parameter is 0
+
+    Modified: html/html.xsl,1.17 - Norman Walsh
+
+  • Add support for floatstyle to figure.
+
+    Modified: html/formal.xsl,1.21 - Robert Stayton
+
+  • Handling of xref to area/areaset need support in extensions code also. I
+    currently have no time to touch extensions code, so code is here to be
+    enabled when extension is fixed also.
+
+    Modified: html/xref.xsl,1.56 - Jirka Kosek
+
+  • Added 3 parameters for overriding gentext for index punctuation.
+
+    Modified: html/param.ent,1.89; html/param.xweb,1.98 - Robert Stayton
+
+  • Added parameters to support localization of index item punctuation. Added
+    index.separator named template to compute the separator punctuation based
+    on locale.
+
+    Modified: html/autoidx.xsl,1.27 - Robert Stayton
+
+  • Added a <div class="{$class}-contents"> wrapper around output of contents
+    of all formal objects. Also, added an optional <br class="{class}-break"/>
+    linebreak after all formal objects.
+
+    WARNING: Because this change places an additional DIV between the DIV
+    wrapper for the equation and the equation contents, it may break some
+    existing CSS stylesheets that have been created with the assumption that
+    there would never be an intervening DIV there.
+
+    The following is an example of what Equation output looks like as a result
+    of the changes described above.
+
+    <div class="equation"> <a name="three" id="three"></a>
+
+    <p class="title"><b>(1.3)</b></p>
+
+    <div class="equation-contents"> <span class="mathphrase">1+1=3</span> </
+    div> </div><br class="equation-break">
+
+    Rationale: These changes allow CSS control of the placement of the
+    formal-object title relative to the formal-object contents. For example,
+    using the CSS "float" property enables the title and contents to be
+    rendered on the same line. Example stylesheet:
+
+    .equation { margin-top: 20px; margin-bottom: 20px; } .equation-contents {
+    float: left; }
+
+    .equation .title { margin-top: 0; float: right; margin-right: 200px; }
+
+    .equation .title b { font-weight: normal; }
+
+    .equation-break { clear: both; }
+
+    Note that the purpose of the ".equation-break" class is to provide a way to
+    clear off the floats.
+
+    If you want to instead have the equation title rendered to the left of the
+    equation contents, you can do something like this:
+
+    .equation { margin-top: 20px; width: 300px; margin-bottom: 20px; }
+    .equation-contents { float: right; }
+
+    .equation .title { margin-top: 0; float: left; margin-right: 200px; }
+
+    .equation .title b { font-weight: normal; }
+
+    .equation-break { clear: both; }
+
+    Modified: html/formal.xsl,1.20 - Michael(tm) Smith
+
+  • Added a chunker.output.quiet top-level parameter so that the chunker can be
+    made quiet by default
+
+    Modified: html/chunker.xsl,1.26 - Norman Walsh
+
+  • Added support for link, olink, and xref within OO Classsynopsis and
+    children. (Because DocBook NG/5 allows it).
+
+    Modified: fo/synop.xsl,1.15; html/synop.xsl,1.19 - Michael(tm) Smith
+
+  • New parameter: id.warnings. If non-zero, warnings are generated for titled
+    objects that don't have titles. True by default; I wonder if this will be
+    too aggressive?
+
+    Modified: html/biblio.xsl,1.25; html/component.xsl,1.27; html/
+    division.xsl,1.11; html/formal.xsl,1.19; html/glossary.xsl,1.20; html/
+    html.xsl,1.13; html/index.xsl,1.16; html/param.ent,1.88; html/
+    param.xweb,1.97; html/refentry.xsl,1.22; html/sections.xsl,1.30; params/
+    id.warnings.xml,1.1 - Norman Walsh
+
+  • If the keep.relative.image.uris parameter is true, don't use the absolute
+    URI (as calculated from xml:base) in the img src attribute, us the value
+    the author specified. Note that we still have to calculate the absolute
+    filename for use in the image intrinsics extension.
+
+    Modified: html/graphics.xsl,1.56 - Norman Walsh
+
+  • Support date as an inline
+
+    Modified: fo/inline.xsl,1.43; html/inline.xsl,1.46 - Norman Walsh
+
+  • Added new parameter keep.relative.image.uris
+
+    Modified: fo/param.ent,1.91; fo/param.xweb,1.104; html/param.ent,1.87; html
+    /param.xweb,1.96; params/keep.relative.image.uris.xml,1.1 - Norman Walsh
+
+  • Added two new parameters for handling of multi-term varlistentry elements:
+
+    variablelist.term.break.after: When the variablelist.term.break.after is
+    non-zero, it will generate a line break after each term multi-term
+    varlistentry.
+
+    variablelist.term.separator: When a varlistentry contains multiple term
+    elements, the string specified in the value of the
+    variablelist.term.separator parameter is placed after each term except the
+    last. The default is ", " (a comma followed by a space). To suppress
+    rendering of the separator, set the value of variablelist.term.separator to
+    the empty string ("").
+
+    These parameters are primarily intended to be useful if you have multi-term
+    varlistentries that have long terms.
+
+    Closes #1306676. Thanks to Sam Steingold for providing an example "lots of
+    long terms" doc that demonstrated the value of having these options.
+
+    Also, added normalize-space() call to processing of each term.
+
+    This change affects all output formats (HTML, PDF, manpages). The default
+    behavior should pretty much remain the same as before, but it is possible
+    (as always) that the change may introduce some new bugginess.
+
+    Modified: fo/lists.xsl,1.62; fo/param.ent,1.88; fo/param.xweb,1.99; html/
+    lists.xsl,1.48; html/param.ent,1.86; html/param.xweb,1.93; manpages/
+    lists.xsl,1.22; manpages/param.ent,1.14; manpages/param.xweb,1.16; params/
+    variablelist.term.break.after.xml,1.1; params/
+    variablelist.term.separator.xml,1.1 - Michael(tm) Smith
+
+  • Added "wrapper-name" param to inline.charseq named template, enabling it to
+    output inlines other than just "span". Acronym and Abbrev templates now use
+    inline.charseq to output HTML "acronym" and "abbr" elements (instead of
+    "span"). Closes #1305468. Thanks to Sam Steingold for suggesting the
+    change.
+
+    Modified: html/inline.xsl,1.45 - Michael(tm) Smith
+
+Manpages
+
+The following changes have been made to the manpages code since the 1.69.1
+release.
+
+  • Added the following params:
+
+    - man.indent.width (string-valued) - man.indent.refsect (boolean) -
+    man.indent.blurbs (boolean) - man.indent.lists (boolean) -
+    man.indent.verbatims (boolean)
+
+    Note that in earlier snapshots, man.indent.width was named
+    man.indentation.default.value and the boolean params had names like
+    man.indentation.*.adjust. Also the man.indent.blurbs param was called
+    man.indentation.authors.adjust (or something).
+
+    The behavior now is: If the value of a particular man.indent.* boolean
+    param is non-zero, the corresponding contents (refsect*, list items,
+    authorblurb/personblurb, vervatims) are displayed with a left margin
+    indented by a width equal to the value of man.indent.width.
+
+    Modified: params/man.indent.blurbs.xml,1.1; manpages/docbook.xsl,1.74;
+    manpages/info.xsl,1.20; manpages/lists.xsl,1.30; manpages/other.xsl,1.20;
+    manpages/param.ent,1.22; manpages/param.xweb,1.24; manpages/
+    refentry.xsl,1.14; params/man.indent.lists.xml,1.1; params/
+    man.indent.refsect.xml,1.1; params/man.indent.verbatims.xml,1.1; params/
+    man.indent.width.xml,1.1 - Michael(tm) Smith
+
+  • Added man.table.footnotes.divider param.
+
+    In each table that contains footenotes, the string specified by the man.
+    table.footnotes.divider parameter is output before the list of footnotes
+    for the table.
+
+    Modified: manpages/docbook.xsl,1.73; manpages/links.xsl,1.6; manpages/
+    param.ent,1.21; manpages/param.xweb,1.23; params/
+    man.table.footnotes.divider.xml,1.1 - Michael(tm) Smith
+
+  • Added the man.output.in.separate.dir, man.output.base.dir, and
+    man.output.subdirs.enabled parameters.
+
+    The man.output.base.dir parameter specifies the base directory into which
+    man-page files are output. The man.output.subdirs.enabled parameter
+    controls whether the files are output in subdirectories within the base
+    directory.
+
+    The values of the man.output.base.dir and man.output.subdirs.enabled
+    parameters are used only if the value of man.output.in.separate.dir
+    parameter is non-zero. If the value of man.output.in.separate.dir is zero,
+    man-page files are not output in a separate directory.
+
+    Modified: manpages/docbook.xsl,1.72; manpages/param.ent,1.20; manpages/
+    param.xweb,1.22; params/man.output.base.dir.xml,1.1; params/
+    man.output.in.separate.dir.xml,1.1; params/
+    man.output.subdirs.enabled.xml,1.1 - Michael(tm) Smith
+
+  • Added man.font.table.headings and man.font.table.title params, for
+    controlling font in table headings and titles.
+
+    Modified: manpages/docbook.xsl,1.71; manpages/param.ent,1.19; manpages/
+    param.xweb,1.21; params/man.font.table.headings.xml,1.1; params/
+    man.font.table.title.xml,1.1 - Michael(tm) Smith
+
+  • Added man.font.funcsynopsisinfo and man.font.funcprototype params, for
+    specifying the roff font (for example, BI, B, I) for funcsynopsisinfo and
+    funcprototype output.
+
+    Modified: manpages/block.xsl,1.19; manpages/docbook.xsl,1.69; manpages/
+    param.ent,1.18; manpages/param.xweb,1.20; manpages/synop.xsl,1.29; manpages
+    /table.xsl,1.21; params/man.font.funcprototype.xml,1.1; params/
+    man.font.funcsynopsisinfo.xml,1.1 - Michael(tm) Smith
+
+  • Added man.segtitle.suppress param.
+
+    If the value of man.segtitle.suppress is non-zero, then display of segtitle
+    contents is suppressed in output.
+
+    Modified: manpages/docbook.xsl,1.68; manpages/param.ent,1.17; manpages/
+    param.xweb,1.19; params/man.segtitle.suppress.xml,1.1 - Michael(tm) Smith
+
+  • Added man.output.manifest.enabled and man.output.manifest.filename params.
+
+    If man.output.manifest.enabled is non-zero, a list of filenames for man
+    pages generated by the stylesheet transformation is written to the file
+    named by man.output.manifest.filename
+
+    Modified: manpages/docbook.xsl,1.67; manpages/other.xsl,1.19; manpages/
+    param.ent,1.16; manpages/param.xweb,1.18; params/
+    man.output.manifest.enabled.xml,1.1; params/
+    man.output.manifest.filename.xml,1.1; tools/make/Makefile.DocBook,1.4 -
+    Michael(tm) Smith
+
+  • Added refentry.meta.get.quietly param.
+
+    If zero (the default), notes and warnings about "missing" markup are
+    generated during gathering of refentry metadata. If non-zero, the metadata
+    is gathered "quietly" -- that is, the notes and warnings are suppressed.
+
+    NOTE: If you are processing a large amount of refentry content, you may be
+    able to speed up processing significantly by setting a non-zero value for
+    refentry.meta.get.quietly.
+
+    Modified: common/refentry.xsl,1.17; manpages/param.ent,1.15; manpages/
+    param.xweb,1.17; params/refentry.meta.get.quietly.xml,1.1 - Michael(tm)
+    Smith
+
+  • Changed names of all boolean indentation params to man.indent.* Also
+    discarded individual man.indent.*.value params and switched to just using a
+    common man.indent.width param (3n by default).
+
+    Modified: manpages/docbook.xsl,1.66; manpages/info.xsl,1.19; manpages/
+    lists.xsl,1.29; manpages/other.xsl,1.18; manpages/refentry.xsl,1.13 -
+    Michael(tm) Smith
+
+  • Added boolean man.output.in.separate.dir param, to control whether or not
+    man files are output in separate directory.
+
+    Modified: manpages/docbook.xsl,1.65; manpages/utility.xsl,1.14 - Michael
+    (tm) Smith
+
+  • Added options for controlling indentation of verbatim output. Controlled
+    through the man.indentation.verbatims.adjust and
+    man.indentation.verbatims.value params. Closes #1242997
+
+    Modified: manpages/block.xsl,1.15; manpages/docbook.xsl,1.64 - Michael(tm)
+    Smith
+
+  • Added options for controlling indentation in lists and in *blurb output in
+    the AUTHORS section. Controlled through the man.indentation.lists.adjust,
+    man.indentation.lists.value, man.indentation.authors.adjust, and
+    man.indentation.authors.value parameters. Default is 3 characters (instead
+    of the roff default of 8 characters). Closes #1449369.
+
+    Also, removed the indent that was being set on informalexample outuput. I
+    will instead add an option for indenting verbatims, which I think is what
+    the informalexample indent was intended for originally.
+
+    Modified: manpages/block.xsl,1.14; manpages/docbook.xsl,1.63; manpages/
+    info.xsl,1.18; manpages/lists.xsl,1.28 - Michael(tm) Smith
+
+  • Changed line-spacing call before synopfragment to use ".sp -1n" ("n" units
+    specified) instead of plain ".sp -1"
+
+    Modified: manpages/synop.xsl,1.28 - Michael(tm) Smith
+
+  • Added support for writing man files into a specific output directory and
+    into appropriate subdirectories within that output directory. Controlled
+    through the man.base.dir parameter (similar to the base.dir support in the
+    HTML stylesheet) and the man.subdirs.enabled parameter, which automatically
+    determines the name of an appropriate subdir (for example, man/man7, man/
+    man1, etc.) based on the section number/manvolnum of the source Refentry.
+
+    Closes #1255036 and #1170317. Thanks to Denis Bradford for the original
+    feature request, and to Costin Stroie for submitting a patch that was very
+    helpful in implementing the support.
+
+    Modified: manpages/docbook.xsl,1.62; manpages/utility.xsl,1.13 - Michael
+    (tm) Smith
+
+  • Refined XPath statements and notification messages for refentry metadata
+    handling.
+
+    Modified: common/common.xsl,1.59; common/refentry.xsl,1.14; manpages/
+    docbook.xsl,1.61; manpages/other.xsl,1.17 - Michael(tm) Smith
+
+  • Added support for copyright and legalnotice. The manpages stylesheets now
+    output a COPYRIGHT section, after the AUTHORS section, if a copyright or
+    legalnotice is found in the source. The section contains the copyright
+    contents followed by the legalnotice contents. Closes #1450209.
+
+    Modified: manpages/docbook.xsl,1.59; manpages/info.xsl,1.17 - Michael(tm)
+    Smith
+
+  • Drastically reworked all of the XPath expressions used in refentry metadata
+    gathering -- completely removed $parentinfo and turned $info into a set of
+    nodes that includes the *info contents of the Refentry plus the *info
+    contents all all of its ancestor elements. The basic XPath expression now
+    used throughout is (using the example of checking for a date):
+
+    (($info[//date])[last()]/date)[1].
+
+    That selects the "last" *info/date date in document order -- that is, the
+    one eitther on the Refentry itself or on the closest ancestor to the
+    Refentry.
+
+    It's likely this change may break some things; may need to pick up some
+    pieces later.
+
+    Also, changed the default value for the man.th.extra2.max.length from 40 to
+    30.
+
+    Modified: common/common.xsl,1.58; common/refentry.xsl,1.7; params/
+    man.th.extra2.max.length.xml,1.2; params/refentry.date.profile.xml,1.2;
+    params/refentry.manual.profile.xml,1.2; params/
+    refentry.source.name.profile.xml,1.2; params/
+    refentry.version.profile.xml,1.2; manpages/docbook.xsl,1.58; manpages/
+    other.xsl,1.15 - Michael(tm) Smith
+
+  • Added support for DocBook 5 namespace-stripping in manpages stylesheet.
+    Closes request #1210692.
+
+    Modified: common/common.xsl,1.56; manpages/docbook.xsl,1.57 - Michael(tm)
+    Smith
+
+  • Fixed handling of table footnotes. With this checkin, the table support in
+    the manpages stylesheet is now basically feature complete. So this change
+    closes request #619532, "No support for tables" -- the oldest currently
+    open manpages feature request, submitted by Ben Secrest (blsecres) on
+    2002-10-07. Congratulations to me [patting myself on the back].
+
+    Modified: manpages/block.xsl,1.11; manpages/docbook.xsl,1.55; manpages/
+    table.xsl,1.15 - Michael(tm) Smith
+
+  • Added handling for table titles. Also fixed handling of nested tables; nest
+    tables are now "extracted" and displayed just after their parent tables.
+
+    Modified: manpages/docbook.xsl,1.54; manpages/table.xsl,1.14 - Michael(tm)
+    Smith
+
+  • Added option for turning off bold formatting in Funcsynopsis. Boldface
+    formatting in function synopsis is mandated in the man(7) man page and is
+    used almost universally in existing man pages. Despite that, it really does
+    look like crap to have an entire Funcsynopsis output in bold, so I added
+    params for turning off the bold formatting and/or replacing it with a
+    different roff special font (e.g., "RI" for alternating roman/italic
+    instead of the default "BI" for alternating bold/italic). The new params
+    are "man.funcprototype.font" and "man.funcsynopsisinfo.font". To be
+    documented later.
+
+    Closes #1452247. Thanks to Joe Orton for the feature request.
+
+    Modified: params/man.string.subst.map.xml,1.16; manpages/block.xsl,1.10;
+    manpages/docbook.xsl,1.51; manpages/inline.xsl,1.16; manpages/
+    synop.xsl,1.27 - Michael(tm) Smith
+
+  • Use AUTHORS instead of AUTHOR if we have multiple people to attribute.
+    Also, fixed checking such that we generate author section even if we don't
+    have an author (as long as there is at least one other person/entity we can
+    put in the section). Also adjusted assembly of content for Author metainfo
+    field such that we now not only use author, but try to find a "best match"
+    if we can't find an author name to put there.
+
+    Closes #1233592. Thanks to Sam Steingold for the request.
+
+    Modified: manpages/info.xsl,1.12 - Michael(tm) Smith
+
+  • Changes for request #1243027, "Impove handling of AUTHOR section." This
+    adds support for Collab, Corpauthor, Corpcredt, Orgname, Publishername, and
+    Publisher. Also adds support for output of Affiliation and its children,
+    and support for using gentext strings for auto-attributing roles (Author,
+    Editor, Publisher, Translator, etc.). Also did a lot of code cleanup and
+    modularization of all the AUTHOR handling code. And fixed a bug that was
+    causing Author info to not be picked up correctly for metainfo comment we
+    embed in man-page source.
+
+    Modified: manpages/info.xsl,1.11 - Michael(tm) Smith
+
+  • Support bold output for "emphasis remap='B'". (because Eric Raymond's
+    doclifter(1) tool converts groff source marked up with ".B" request or "\
+    fB" escapes to DocBook "emphasis remap='B'".)
+
+    Modified: manpages/inline.xsl,1.14 - Michael(tm) Smith
+
+  • Added support for Segmentedlist. Details: Output is tabular, with no option
+    for "list" type output. Output for Segtitle elements can be supressed by
+    setting man.segtitle.suppress. If Segtitle content is output, it is
+    rendered in italic type (not bold because not all terminals support bold
+    and so italic ensures the stand out on those terminals). Extra space (.sp
+    line) at end of table code ensures that it gets handled correctly in the
+    case where its source is the child of a Para. Closes feature-request #
+    1400097. Thanks to Daniel Leidert for the patch and push, and to Alastair
+    Rankine for filing the original feature request.
+
+    Modified: manpages/lists.xsl,1.23; manpages/utility.xsl,1.10 - Michael(tm)
+    Smith
+
+  • Improved handling or Author/Editor/Othercredit.
+
+    Reworked content of (non-visible) comment added at top of each page
+    (metadata stuff).
+
+    Added support for generating a manifest file (useful for cleaning up after
+    builds, etc.)
+
+    Modified: manpages/docbook.xsl,1.46; manpages/info.xsl,1.9; manpages/
+    other.xsl,1.12; manpages/utility.xsl,1.6 - Michael(tm) Smith
+
+  • Added two new parameters for handling of multi-term varlistentry elements:
+
+    variablelist.term.break.after: When the variablelist.term.break.after is
+    non-zero, it will generate a line break after each term multi-term
+    varlistentry.
+
+    variablelist.term.separator: When a varlistentry contains multiple term
+    elements, the string specified in the value of the
+    variablelist.term.separator parameter is placed after each term except the
+    last. The default is ", " (a comma followed by a space). To suppress
+    rendering of the separator, set the value of variablelist.term.separator to
+    the empty string ("").
+
+    These parameters are primarily intended to be useful if you have multi-term
+    varlistentries that have long terms.
+
+    Closes #1306676. Thanks to Sam Steingold for providing an example "lots of
+    long terms" doc that demonstrated the value of having these options.
+
+    Also, added normalize-space() call to processing of each term.
+
+    This change affects all output formats (HTML, PDF, manpages). The default
+    behavior should pretty much remain the same as before, but it is possible
+    (as always) that the change may introduce some new bugginess.
+
+    Modified: fo/lists.xsl,1.62; fo/param.ent,1.88; fo/param.xweb,1.99; html/
+    lists.xsl,1.48; html/param.ent,1.86; html/param.xweb,1.93; manpages/
+    lists.xsl,1.22; manpages/param.ent,1.14; manpages/param.xweb,1.16; params/
+    variablelist.term.break.after.xml,1.1; params/
+    variablelist.term.separator.xml,1.1 - Michael(tm) Smith
+
+Params
+
+The following changes have been made to the params code since the 1.69.1
+release.
+
+  • New parameters to set header/footer table minimum height.
+
+    Modified: params/footer.table.height.xml,1.1; params/
+    header.table.height.xml,1.1 - Robert Stayton
+
+  • Support multiple indexing methods for different languages.
+
+    Modified: params/index.method.xml,1.1 - Robert Stayton
+
+  • Remove qandaset and qandadiv from generate.toc for fo output because
+    formerly it wasn't working, but now it is and the default behavior should
+    stay the same.
+
+    Modified: params/generate.toc.xml,1.8 - Robert Stayton
+
+  • add support for page number references to link element too.
+
+    Modified: params/insert.link.page.number.xml,1.1 - Robert Stayton
+
+  • Add support for more characters to hyphen on when ulink.hyphenate is turned
+    on.
+
+    Modified: params/ulink.hyphenate.chars.xml,1.1; params/
+    ulink.hyphenate.xml,1.3 - Robert Stayton
+
+  • New attribute-set to format biblioentry and bibliomixed.
+
+    Modified: params/biblioentry.properties.xml,1.1 - Robert Stayton
+
+  • Added new parameter chunk.tocs.and.lots.has.title which controls presence
+    of title in a separate chunk with ToC/LoT. Disabling title can be very
+    useful if you are generating frameset output (well, yes those frames, but
+    some customers really want them ;-).
+
+    Modified: html/chunk-code.xsl,1.15; html/param.ent,1.93; html/
+    param.xweb,1.102; params/chunk.tocs.and.lots.has.title.xml,1.1 - Jirka
+    Kosek
+
+  • Added new attribute set toc.line.properties for controlling appearance of
+    lines in ToC/LoT
+
+    Modified: params/toc.line.properties.xml,1.1 - Jirka Kosek
+
+  • Allow table footnotes to have different properties from regular footnotes.
+
+    Modified: params/table.footnote.properties.xml,1.1 - Robert Stayton
+
+  • Set properties for pgwide="1" objects.
+
+    Modified: params/pgwide.properties.xml,1.1 - Robert Stayton
+
+  • Added the autotoc.label.in.hyperlink param.
+
+    If the value of autotoc.label.in.hyperlink is non-zero, labels are included
+    in hyperlinked titles in the TOC. If it is instead zero, labels are still
+    displayed prior to the hyperlinked titles, but are not hyperlinked along
+    with the titles.
+
+    Closes patch #1065868. Thanks to anatoly techtonik for the patch.
+
+    Modified: html/autotoc.xsl,1.36; html/param.ent,1.92; html/
+    param.xweb,1.101; params/autotoc.label.in.hyperlink.xml,1.1 - Michael(tm)
+    Smith
+
+  • Added two new params: html.head.legalnotice.link.types and html.head.
+    legalnotice.link.multiple.
+
+    If the value of the generate.legalnotice.link is non-zero, then the
+    stylesheet generates (in the head section of the HTML source) either a
+    single HTML link element or, if the value of the html.head.legalnotice.link
+    .multiple is non-zero, one link element for each link type specified. Each
+    link has the following attributes:
+
+    - a rel attribute whose value is derived from the value of html.head.
+    legalnotice.link.types
+
+    - an href attribute whose value is set to the URL of the file containing
+    the legalnotice
+
+    - a title attribute whose value is set to the title of the corresponding
+    legalnotice (or a title programatically determined by the stylesheet)
+
+    For example:
+
+    <link rel="copyright" href="ln-id2524073.html" title="Legal Notice">
+
+    Closes #1476450. Thanks to Sam Steingold.
+
+    Modified: html/chunk-common.xsl,1.45; html/param.ent,1.91; html/
+    param.xweb,1.100; params/generate.legalnotice.link.xml,1.4; params/
+    html.head.legalnotice.link.multiple.xml,1.1; params/
+    html.head.legalnotice.link.types.xml,1.1 - Michael(tm) Smith
+
+  • Added the following params:
+
+    - man.indent.width (string-valued) - man.indent.refsect (boolean) -
+    man.indent.blurbs (boolean) - man.indent.lists (boolean) -
+    man.indent.verbatims (boolean)
+
+    Note that in earlier snapshots, man.indent.width was named
+    man.indentation.default.value and the boolean params had names like
+    man.indentation.*.adjust. Also the man.indent.blurbs param was called
+    man.indentation.authors.adjust (or something).
+
+    The behavior now is: If the value of a particular man.indent.* boolean
+    param is non-zero, the corresponding contents (refsect*, list items,
+    authorblurb/personblurb, vervatims) are displayed with a left margin
+    indented by a width equal to the value of man.indent.width.
+
+    Modified: params/man.indent.blurbs.xml,1.1; manpages/docbook.xsl,1.74;
+    manpages/info.xsl,1.20; manpages/lists.xsl,1.30; manpages/other.xsl,1.20;
+    manpages/param.ent,1.22; manpages/param.xweb,1.24; manpages/
+    refentry.xsl,1.14; params/man.indent.lists.xml,1.1; params/
+    man.indent.refsect.xml,1.1; params/man.indent.verbatims.xml,1.1; params/
+    man.indent.width.xml,1.1 - Michael(tm) Smith
+
+  • Added man.table.footnotes.divider param.
+
+    In each table that contains footenotes, the string specified by the man.
+    table.footnotes.divider parameter is output before the list of footnotes
+    for the table.
+
+    Modified: manpages/docbook.xsl,1.73; manpages/links.xsl,1.6; manpages/
+    param.ent,1.21; manpages/param.xweb,1.23; params/
+    man.table.footnotes.divider.xml,1.1 - Michael(tm) Smith
+
+  • Added the man.output.in.separate.dir, man.output.base.dir, and
+    man.output.subdirs.enabled parameters.
+
+    The man.output.base.dir parameter specifies the base directory into which
+    man-page files are output. The man.output.subdirs.enabled parameter
+    controls whether the files are output in subdirectories within the base
+    directory.
+
+    The values of the man.output.base.dir and man.output.subdirs.enabled
+    parameters are used only if the value of man.output.in.separate.dir
+    parameter is non-zero. If the value of man.output.in.separate.dir is zero,
+    man-page files are not output in a separate directory.
+
+    Modified: manpages/docbook.xsl,1.72; manpages/param.ent,1.20; manpages/
+    param.xweb,1.22; params/man.output.base.dir.xml,1.1; params/
+    man.output.in.separate.dir.xml,1.1; params/
+    man.output.subdirs.enabled.xml,1.1 - Michael(tm) Smith
+
+  • Added man.font.table.headings and man.font.table.title params, for
+    controlling font in table headings and titles.
+
+    Modified: manpages/docbook.xsl,1.71; manpages/param.ent,1.19; manpages/
+    param.xweb,1.21; params/man.font.table.headings.xml,1.1; params/
+    man.font.table.title.xml,1.1 - Michael(tm) Smith
+
+  • Added man.font.funcsynopsisinfo and man.font.funcprototype params, for
+    specifying the roff font (for example, BI, B, I) for funcsynopsisinfo and
+    funcprototype output.
+
+    Modified: manpages/block.xsl,1.19; manpages/docbook.xsl,1.69; manpages/
+    param.ent,1.18; manpages/param.xweb,1.20; manpages/synop.xsl,1.29; manpages
+    /table.xsl,1.21; params/man.font.funcprototype.xml,1.1; params/
+    man.font.funcsynopsisinfo.xml,1.1 - Michael(tm) Smith
+
+  • Changed to select="0" in refclass.suppress (instead of ..>0</..)
+
+    Modified: params/refclass.suppress.xml,1.3 - Michael(tm) Smith
+
+  • Added man.segtitle.suppress param.
+
+    If the value of man.segtitle.suppress is non-zero, then display of segtitle
+    contents is suppressed in output.
+
+    Modified: manpages/docbook.xsl,1.68; manpages/param.ent,1.17; manpages/
+    param.xweb,1.19; params/man.segtitle.suppress.xml,1.1 - Michael(tm) Smith
+
+  • Added man.output.manifest.enabled and man.output.manifest.filename params.
+
+    If man.output.manifest.enabled is non-zero, a list of filenames for man
+    pages generated by the stylesheet transformation is written to the file
+    named by man.output.manifest.filename
+
+    Modified: manpages/docbook.xsl,1.67; manpages/other.xsl,1.19; manpages/
+    param.ent,1.16; manpages/param.xweb,1.18; params/
+    man.output.manifest.enabled.xml,1.1; params/
+    man.output.manifest.filename.xml,1.1; tools/make/Makefile.DocBook,1.4 -
+    Michael(tm) Smith
+
+  • Added refclass.suppress param.
+
+    If the value of refclass.suppress is non-zero, then display refclass
+    contents is suppressed in output. Affects HTML and FO output only.
+
+    Modified: fo/param.ent,1.93; fo/param.xweb,1.106; html/param.ent,1.90; html
+    /param.xweb,1.99; params/refclass.suppress.xml,1.1 - Michael(tm) Smith
+
+  • Added refentry.meta.get.quietly param.
+
+    If zero (the default), notes and warnings about "missing" markup are
+    generated during gathering of refentry metadata. If non-zero, the metadata
+    is gathered "quietly" -- that is, the notes and warnings are suppressed.
+
+    NOTE: If you are processing a large amount of refentry content, you may be
+    able to speed up processing significantly by setting a non-zero value for
+    refentry.meta.get.quietly.
+
+    Modified: common/refentry.xsl,1.17; manpages/param.ent,1.15; manpages/
+    param.xweb,1.17; params/refentry.meta.get.quietly.xml,1.1 - Michael(tm)
+    Smith
+
+  • Added support for "software" and "sectdesc" class values on refmiscinfo;
+    "software" is treated identically to "source", and "setdesc" is treated
+    identically to "manual".
+
+    Modified: common/refentry.xsl,1.10; params/
+    man.th.extra2.max.length.xml,1.3; params/
+    refentry.source.name.profile.xml,1.4 - Michael(tm) Smith
+
+  • Drastically reworked all of the XPath expressions used in refentry metadata
+    gathering -- completely removed $parentinfo and turned $info into a set of
+    nodes that includes the *info contents of the Refentry plus the *info
+    contents all all of its ancestor elements. The basic XPath expression now
+    used throughout is (using the example of checking for a date):
+
+    (($info[//date])[last()]/date)[1].
+
+    That selects the "last" *info/date date in document order -- that is, the
+    one eitther on the Refentry itself or on the closest ancestor to the
+    Refentry.
+
+    It's likely this change may break some things; may need to pick up some
+    pieces later.
+
+    Also, changed the default value for the man.th.extra2.max.length from 40 to
+    30.
+
+    Modified: common/common.xsl,1.58; common/refentry.xsl,1.7; params/
+    man.th.extra2.max.length.xml,1.2; params/refentry.date.profile.xml,1.2;
+    params/refentry.manual.profile.xml,1.2; params/
+    refentry.source.name.profile.xml,1.2; params/
+    refentry.version.profile.xml,1.2; manpages/docbook.xsl,1.58; manpages/
+    other.xsl,1.15 - Michael(tm) Smith
+
+  • Added option for turning off bold formatting in Funcsynopsis. Boldface
+    formatting in function synopsis is mandated in the man(7) man page and is
+    used almost universally in existing man pages. Despite that, it really does
+    look like crap to have an entire Funcsynopsis output in bold, so I added
+    params for turning off the bold formatting and/or replacing it with a
+    different roff special font (e.g., "RI" for alternating roman/italic
+    instead of the default "BI" for alternating bold/italic). The new params
+    are "man.funcprototype.font" and "man.funcsynopsisinfo.font". To be
+    documented later.
+
+    Closes #1452247. Thanks to Joe Orton for the feature request.
+
+    Modified: params/man.string.subst.map.xml,1.16; manpages/block.xsl,1.10;
+    manpages/docbook.xsl,1.51; manpages/inline.xsl,1.16; manpages/
+    synop.xsl,1.27 - Michael(tm) Smith
+
+  • fop.extensions now only for FOP version 0.20.5 and earlier.
+
+    Modified: params/fop.extensions.xml,1.4 - Robert Stayton
+
+  • Support for fop1 different from fop 0.20.5 and earlier.
+
+    Modified: params/fop1.extensions.xml,1.1 - Robert Stayton
+
+  • Reset default value to empty string so template uses gentext first, then
+    the parameter value if not empty.
+
+    Modified: params/index.number.separator.xml,1.2; params/
+    index.range.separator.xml,1.2; params/index.term.separator.xml,1.2 - Robert
+    Stayton
+
+  • New parameter: id.warnings. If non-zero, warnings are generated for titled
+    objects that don't have titles. True by default; I wonder if this will be
+    too aggressive?
+
+    Modified: html/biblio.xsl,1.25; html/component.xsl,1.27; html/
+    division.xsl,1.11; html/formal.xsl,1.19; html/glossary.xsl,1.20; html/
+    html.xsl,1.13; html/index.xsl,1.16; html/param.ent,1.88; html/
+    param.xweb,1.97; html/refentry.xsl,1.22; html/sections.xsl,1.30; params/
+    id.warnings.xml,1.1 - Norman Walsh
+
+  • Added new parameter keep.relative.image.uris
+
+    Modified: fo/param.ent,1.91; fo/param.xweb,1.104; html/param.ent,1.87; html
+    /param.xweb,1.96; params/keep.relative.image.uris.xml,1.1 - Norman Walsh
+
+  • Support default label width parameters for itemized and ordered lists
+
+    Modified: fo/lists.xsl,1.64; fo/param.ent,1.90; fo/param.xweb,1.103; params
+    /itemizedlist.label.width.xml,1.1; params/orderedlist.label.width.xml,1.1 -
+    Norman Walsh
+
+  • Added parameters to localize punctuation in indexes.
+
+    Modified: params/index.number.separator.xml,1.1; params/
+    index.range.separator.xml,1.1; params/index.term.separator.xml,1.1 - Robert
+    Stayton
+
+  • Added two new parameters for handling of multi-term varlistentry elements:
+
+    variablelist.term.break.after: When the variablelist.term.break.after is
+    non-zero, it will generate a line break after each term multi-term
+    varlistentry.
+
+    variablelist.term.separator: When a varlistentry contains multiple term
+    elements, the string specified in the value of the
+    variablelist.term.separator parameter is placed after each term except the
+    last. The default is ", " (a comma followed by a space). To suppress
+    rendering of the separator, set the value of variablelist.term.separator to
+    the empty string ("").
+
+    These parameters are primarily intended to be useful if you have multi-term
+    varlistentries that have long terms.
+
+    Closes #1306676. Thanks to Sam Steingold for providing an example "lots of
+    long terms" doc that demonstrated the value of having these options.
+
+    Also, added normalize-space() call to processing of each term.
+
+    This change affects all output formats (HTML, PDF, manpages). The default
+    behavior should pretty much remain the same as before, but it is possible
+    (as always) that the change may introduce some new bugginess.
+
+    Modified: fo/lists.xsl,1.62; fo/param.ent,1.88; fo/param.xweb,1.99; html/
+    lists.xsl,1.48; html/param.ent,1.86; html/param.xweb,1.93; manpages/
+    lists.xsl,1.22; manpages/param.ent,1.14; manpages/param.xweb,1.16; params/
+    variablelist.term.break.after.xml,1.1; params/
+    variablelist.term.separator.xml,1.1 - Michael(tm) Smith
+
+  • Convert 'no' to string in default value.
+
+    Modified: params/olink.doctitle.xml,1.4 - Robert Stayton
+
+  • Implemented RFE #1292615.
+
+    Added bunch of new parameters (attribute sets) that affect list
+    presentation: list.block.properties, itemizedlist.properties, orderedlist
+    .properties, itemizedlist.label.properties and orderedlist.label
+    .properties. Default behaviour of stylesheets has not been changed but
+    further customizations will be much more easier.
+
+    Modified: fo/lists.xsl,1.61; fo/param.ent,1.87; fo/param.xweb,1.98; params/
+    itemizedlist.label.properties.xml,1.1; params/
+    itemizedlist.properties.xml,1.1; params/list.block.properties.xml,1.1;
+    params/orderedlist.label.properties.xml,1.1; params/
+    orderedlist.properties.xml,1.1 - Jirka Kosek
+
+  • Implemented RFE #1242092.
+
+    You can enable crop marks in your document by setting crop.marks=1 and
+    xep.extensions=1. Appearance of crop marks can be controlled by parameters
+    crop.mark.bleed (6pt), crop.mark.offset (24pt) and crop.mark.width (0.5pt).
+
+    Also there is new named template called user-xep-pis. You can overwrite it
+    in order to produce some PIs that can control XEP as described in http://
+    www.renderx.com/reference.html#Output_Formats
+
+    Modified: fo/docbook.xsl,1.36; fo/param.ent,1.86; fo/param.xweb,1.97; fo/
+    xep.xsl,1.23; params/crop.mark.bleed.xml,1.1; params/
+    crop.mark.offset.xml,1.1; params/crop.mark.width.xml,1.1; params/
+    crop.marks.xml,1.1 - Jirka Kosek
+
+  • Changed short descriptions in doc for *autolabel* params to match new
+    autolabel behavior.
+
+    Modified: params/appendix.autolabel.xml,1.5; params/
+    chapter.autolabel.xml,1.4; params/part.autolabel.xml,1.5; params/
+    preface.autolabel.xml,1.4 - Michael(tm) Smith
+
+Profiling
+
+The following changes have been made to the profiling code since the 1.69.1
+release.
+
+  • Profiling now works together with namespace stripping (V5 documents).
+    Namespace striping should work with all stylesheets named profile-, even if
+    they are not supporting namespace stripping in a non-profiling variant.
+
+    Modified: profiling/profile-mode.xsl,1.4; profiling/xsl2profile.xsl,1.7 -
+    Jirka Kosek
+
+  • Moved profiling stage out of templates. This make possible to reuse
+    profiled content by several templates and still maintaing node indentity
+    (needed for example for HTML Help where content is processed multiple
+    times).
+
+    I don't know why this was not on the top level before. Maybe some XSLT
+    processors choked on it. I hope this will be OK now.
+
+    Modified: profiling/xsl2profile.xsl,1.5 - Jirka Kosek
+
+Tools
+
+The following changes have been made to the tools code since the 1.69.1
+release.
+
+  • Moved Makefile.DocBook from contrib module to xsl module.
+
+    Modified: tools/make/Makefile.DocBook,1.1 - Michael(tm) Smith
+
+WordML
+
+The following changes have been made to the wordml code since the 1.69.1
+release.
+
+  • added contrib element, better handling of default paragraph style
+
+    Modified: wordml/pages-normalise.xsl,1.6; wordml/supported.xml,1.2; wordml/
+    wordml-final.xsl,1.14 - Steve Ball
+
+  • added bridgehead
+
+    Modified: wordml/docbook-pages.xsl,1.6; wordml/docbook.xsl,1.17; wordml/
+    pages-normalise.xsl,1.5; wordml/template-pages.xml,1.7; wordml/
+    template.dot,1.4; wordml/template.xml,1.14; wordml/wordml-final.xsl,1.13 -
+    Steve Ball
+
+  • added blocks stylesheet to support bibliographies, glossaries and qandasets
+
+    Modified: wordml/Makefile,1.4; wordml/README,1.3; wordml/
+    blocks-spec.xml,1.1; wordml/docbook-pages.xsl,1.5; wordml/docbook.xsl,1.16;
+    wordml/pages-normalise.xsl,1.4; wordml/sections-spec.xml,1.3; wordml/
+    specifications.xml,1.13; wordml/template-pages.xml,1.6; wordml/
+    template.dot,1.3; wordml/template.xml,1.13; wordml/wordml-blocks.xsl,1.1;
+    wordml/wordml-final.xsl,1.12; wordml/wordml-sections.xsl,1.3 - Steve Ball
+
+  • added mediaobject caption
+
+    Modified: wordml/docbook-pages.xsl,1.4; wordml/docbook.xsl,1.15; wordml/
+    specifications.xml,1.12; wordml/template-pages.xml,1.5; wordml/
+    template.dot,1.2; wordml/template.xml,1.12; wordml/wordml-final.xsl,1.11 -
+    Steve Ball
+
+  • added callouts
+
+    Modified: wordml/docbook-pages.xsl,1.3; wordml/docbook.xsl,1.14; wordml/
+    pages-normalise.xsl,1.3; wordml/specifications.xml,1.11; wordml/
+    template-pages.xml,1.4; wordml/wordml-final.xsl,1.10 - Steve Ball
+
+  • added Word template file
+
+    Modified: wordml/template.dot,1.1 - Steve Ball
+
+  • added abstract, fixed itemizedlist, ulink
+
+    Modified: wordml/specifications.xml,1.10; wordml/wordml-final.xsl,1.9 -
+    Steve Ball
+
+  • fixed Makefile added many features to Pages support added revhistory,
+    inlines, highlights, abstract
+
+    Modified: wordml/Makefile,1.2; wordml/docbook-pages.xsl,1.2; wordml/
+    pages-normalise.xsl,1.2; wordml/sections-spec.xml,1.2; wordml/
+    specifications.xml,1.9; wordml/template-pages.xml,1.3; wordml/
+    template.xml,1.11; wordml/wordml-final.xsl,1.8; wordml/
+    wordml-sections.xsl,1.2 - Steve Ball
+
+  • fixed handling linebreaks when generating WordML added Apple Pages support
+
+    Modified: wordml/docbook.xsl,1.13; wordml/template-pages.xml,1.2 - Steve
+    Ball
+
+Release 1.69.1
+
+This release is a minor bug-fix update to the 1.69.0 release. Along with bug
+fixes, it includes one configuration-parameter change: The default value of the
+annotation.support parameter is now 0 (off). The reason for that change is that
+there have been reports that annotation handling is causing a significant
+performance degradation in processing of large documents with xsltproc.
+
+Release 1.69.0
+
+The release includes major feature changes, particularly in the manpages
+stylesheets, as well as a large number of bug fixes.
+
+As with all DocBook Project “dot zero” releases, this is an experimental
+release .
+
+Common
+
+  • This release adds localizations for the following languages: Albanian,
+    Amharic, Azerbaijani, Hindi, Irish (Gaelic), Gujarati, Kannada, Mongolian,
+    Oriya, Punjabi, Tagalog, Tamil, and Welsh.
+
+  • Added support for specifying number format for auto labels for chapter,
+    appendix, part, and preface. Contolled with the appendix.autolabel,
+    chapter.autolabel, part.autolabel, and preface.autolabel parameters.
+
+  • Added basic support for biblioref cross referencing.
+
+  • Added support for align on caption in mediaobject.
+
+  • Added support for processing documents that use the DocBook V5 namespace.
+
+  • Added support for termdef and mathphrase.
+
+  • EXPERIMENTAL: Incorporated the Slides and Website stylesheets into the
+    DocBook XSL stylesheets package. So, for example, Website documents can now
+    be processed using the following URI for the driver Website tabular.xsl
+    file:
+
+    http://docbook.sourceforge.net/release/xsl/current/website/tabular.xsl
+
+  • A procedure without a title is now treated as an “informal” procedure
+    (meaning that it is not added to any generated “list of procedures” and has
+    no affect on numbering of generated labels for other procedures).
+
+  • docname is no longer added to olink when pointing to a root element.
+
+  • Added support for generation of choice separator in inline simplelist. This
+    enables auto-generation of an appropriate localized “choice separator” (for
+    example, “and” or “or”) before the final item in an inline simplelist.
+
+    To indicate that you want a choice separator generated for a particular
+    list, you need to put a processing instruction (PI) of the form <?
+    dbchoice choice="foo"?> as a child of the list. For example:
+
+      <para>Choose from
+      ONE and ONLY ONE of the following:
+      <simplelist type="inline">
+      <?dbchoice choice="or" ?>
+      <member>A</member>
+      <member>B</member>
+      <member>C</member>.</simplelist></para>
+
+    Output (for English):
+
+        Choose from ONE and only ONE of the following choices: A, B, or C.
+
+    As a temporary workaround for the fact that most of the DocBook non-English
+    locale files don't have a localization for the word “or”, you can put in a
+    literal string to be used; example for French: <?dbchoice choice="ou">.
+    That is, use “ou” instead of “or”.
+
+FO
+
+  • Added content-type property to external-graphic element, based on imagedata
+    format attribute.
+
+  • Added support for generating <rx:meta-field creator="$VERSION"/> field for
+    XEP output. This makes the DocBook XSL stylesheet version information
+    available through the Document Properties menu in Acrobat Reader and other
+    PDF viewers.
+
+  • Trademark symbol handling made consistent with handling of same in HTML
+    stylesheets. Prior to this change, if you processed a document that
+    contained no value for the class attribute on the trademark element, the
+    HTML stylesheets would default to rendering a superscript TM symbol after
+    the trademark contents, but the FO stylesheets would render nothing.
+
+  • Added support for generating XEP bookmarks for refentry.
+
+  • Added support for HTML markup table border attribute, applied to each table
+    cell.
+
+  • The table.width template can now sum column specs if none use % or *.
+
+  • Added fox:destination extension inside fox:outline to support linking to
+    internal destinations.
+
+  • Added support for customizing abstract with property sets. Controlled with
+    the abstract.properties and abstract.title.properties parameters.
+
+  • Add footnotes in table title to table footnote set, and add support for
+    table footnotes to HTML table markup.
+
+  • Added support for title in glosslist.
+
+  • Added support for itemizedlist symbol none.
+
+  • Implemented the new graphical.admonition.properties and
+    nongraphical.admonition.properties attribute sets.
+
+  • Added id to formalpara and some other blocks that were missing it.
+
+  • Changed the anchor template to output fo:inline instead of fo:wrapper.
+
+  • Added support for toc.max.depth parameter.
+
+Help
+
+  • Eclipse Help: Added support for generating olink database.
+
+HTML
+
+  • Added a first cut at support in HTML output for DocBook 5 style annotation
+    s. Controlled using the annotation.support parameter, and implemented using
+    JavaScript and CSS styling. For more details, see the documentation for the
+    annotation.js, annotation.css, annotation.graphic.open, and
+    annotation.graphic.close parameters.
+
+  • Generate client-side image map for imageobjectco with areas using calspair
+    units
+
+  • Added support for <?img.src.path?> PI.
+
+  • Added support for passing img.src.path to DocBook Java XSLT image
+    extensions when appropriate. Controlled using the
+    graphicsize.use.img.src.path parameter.
+
+  • Added support for (not valid for DocBook 4) xlink:href on area and (not
+    valid for DocBook 4) alt in area.
+
+  • Added new parameter default.table.frame to control table framing if there
+    is no frame attribute on a table.
+
+  • Added initial, experimental support for generating content for the HTML
+    title attribute from content of the alt element. This change adds support
+    for the following inline elements only (none of them are block elements):
+    abbrev, accel, acronym, action, application, authorinitials, beginpage,
+    citation, citerefentry, citetitle, city, classname, code, command,
+    computeroutput, constant, country, database, email, envar, errorcode,
+    errorname, errortext, errortype, exceptionname, fax, filename, firstname,
+    firstterm, foreignphrase, function, glossterm, guibutton, guiicon, guilabel
+    , guimenu, guimenuitem, guisubmenu, hardware, honorific, interface,
+    interfacename, keycap, keycode, keysym, lineage, lineannotation, literal,
+    markup, medialabel, methodname, mousebutton, option, optional, otheraddr,
+    othername, package, parameter, personname, phone, pob, postcode,
+    productname, productnumber, prompt, property, quote, refentrytitle, remark,
+    replaceable, returnvalue, tag, shortcut, state, street, structfield,
+    structname, subscript, superscript, surname, symbol, systemitem, tag,
+    termdef, token, trademark, type, uri, userinput, varname, and wordasword
+
+  • Added support for chunking revhistory into separate file (similar to the
+    support for doing same with legalnotice). Patch from Thomas Schraitle.
+    Controlled through new generate.revhistory.link parameter.
+
+  • l10n.xsl: Made language codes RFC compliant. Added a new boolean config
+    parameter, l10n.lang.value.rfc.compliant. If it is non-zero (the default),
+    any underscore in a language code will be converted to a hyphen in HTML
+    output. If it is zero, the language code will be left as-is.
+
+man
+
+This release closes out 44 manpages stylesheet bug reports and feature
+requests. It adds more than 35 new configuration parameters for controlling
+aspects of man-page output -- including hyphenation and justification, handling
+of links, conversion of Unicode characters, and contents of man-page headers
+and footers.
+
+  • New options for globally disabling/enabling hyphenation and justification:
+    man.justify and man.hyphenate.
+
+    Note that the default for the both of those is zero (off), because
+    justified text looks good only when it is also hyphenated; to quote the
+    “Hyphenation” node from the groff info page:
+
+        Since the odds are not great for finding a set of words, for every
+        output line, which fit nicely on a line without inserting excessive
+        amounts of space between words, `gtroff' hyphenates words so that it
+        can justify lines without inserting too much space between words.
+
+    The problem is that groff can end up hyphenating a lot of things that you
+    don't want hyphenated (variable names and command names, for example).
+    Keeping both justification and hyphenation disabled ensures that hyphens
+    won't get inserted where you don't want to them, and you don't end up with
+    lines containing excessive amounts of space between words. These default
+    settings run counter to how most existing man pages are formatted. But
+    there are some notable exceptions, such as the perl man pages.
+
+  • Added parameters for controlling hyphenation of computer inlines,
+    filenames, and URLs. By default, even when hyphenation is enabled
+    (globally), hyphenation is now suppressed for "computer inlines"
+    (currently, just classname, constant, envar, errorcode, option, replaceable
+    , userinput, type, and varname, and for filenames, and for URLs from link.
+    It can be (re)enabled using the man.hyphenate.computer.inlines,
+    man.hyphenate.filenames, and man.hyphenate.urls parameters.
+
+  • Implemented a new system for replacing Unicode characters. There are two
+    parts to the new system: a “string substitution map” for doing “essential”
+    replacements, and a “character map” that can optionally be disabled and
+    enabled.
+
+    The new system fixes all open bugs that had to do with literal Unicode
+    numbered entities such as &#8220; and &#8221; showing up in output, and
+    greatly expands the ability of the stylesheets to generate “good” roff
+    equivalents for Unicode symbols and special characters.
+
+    Here are some details...
+
+    The previous manpages mechanism for replacing Unicode symbols and special
+    characters with roff equivalents (the replace-entities template) was not
+    scalable and not complete. The mechanism handled a somewhat arbitrary
+    selection of less than 20 or so Unicode characters. But there are
+    potentially more than 800 Unicode special characters that have some groff
+    equivalent they can be mapped to. And there are about 34 symbols in the
+    Latin-1 (ISO-8859-1) block alone. Users might reasonably expect that if
+    they include any of those Latin-1 characters in their DocBook source
+    documents, they will get correctly converted to known roff equivalents in
+    output.
+
+    In addition to those common symbols, certain users may have a need to use
+    symbols from other Unicode blocks. Say, somebody who is documenting an
+    application related to math might need to use a bunch of symbols from the
+    “Mathematical Operators” Unicode block (there are about 65 characters in
+    that block that have reasonable roff equivalents). Or somebody else might
+    really like Dingbats -- such as the checkmark character -- and so might use
+    a bunch of things from the “Dingbat” block (141 characters in that that
+    have roff equivalents or that can at least be “degraded” somewhat
+    gracefully into roff).
+
+    So, the old replace-entities mechanism was replaced with a completely
+    different mechanism that is based on use of two “maps”: a “substitution
+    map” and a “character map” (the latter in a format compliant with the XSLT
+    2.0 spec and therefore completely “forward compatible” with XSLT 2.0).
+
+    The substitution map is controlled through the man.string.subst.map
+    parameter, and is used to replace things like the backslash character
+    (which needs special handling to prevent it from being interpreted as a
+    roff escape). The substitution map cannot be disabled, because disabling it
+    will cause the output to be broken. However, you can add to it and change
+    it if needed.
+
+    The “character map” mechanism, on the other hand, can be completely
+    disabled. It is enabled by default, and, by default, does replacement of
+    all Latin-1 symbols, along with most special spaces, dashes, and quotes
+    (about 75 characters by default). Also, you can optionally enable a “full”
+    character map that provides support for converting all 800 or so of the
+    characters that have some reasonable groff equivalent.
+
+    The character-map mechanism is controlled through the following parameters:
+
+    man.charmap.enabled
+
+        turns character-map support on/off
+
+    man.charmap.use.subset
+
+        specifies that a subset of the character map is used instead of the
+        full map
+
+    man.charmap.subset.profile
+
+        specifies profile of character-map subset
+
+    man.charmap.uri
+
+        specifies an alternate character map to use instead of the “standard”
+        character map provided in the distribution
+
+  • Implemented out-of-line handling of display of URLs for links (currently,
+    only for ulink). This gives you three choices for handling of links:
+
+     1. Number and list links. Each link is numbered inline, with a number in
+        square brackets preceding the link contents, and a numbered list of all
+        links is added to the end of the document.
+
+     2. Only list links. Links are not numbered, but an (unnumbered) list of
+        links is added to the end of the document.
+
+     3. Suppress links. Don't number links and don't add any list of links to
+        the end of the document.
+
+    You can also choose whether links should be underlined. The default is “the
+    works” -- list, number, and underline links. You can use the
+    man.links.list.enabled, man.links.are.numbered, and
+    man.links.are.underlined parameters to change the defaults. The default
+    heading for the link list is REFERENCES. You can be change that using the
+    man.links.list.heading parameter.
+
+  • Changed default output encoding to UTF-8. This does not mean that man pages
+    are output in raw UTF-8, because the character map is applied before final
+    output, causing all UTF-8 characters covered in the map to be converted to
+    roff equivalents.
+
+  • Added support for processing refsect3 and formalpara and nested refsection
+    elements, down to any arbitrary level of nesting.
+
+  • Output of the NAME and SYNOPSIS and AUTHOR headings and the headings for
+    admonitions (note, caution, etc.) are no longer hard-coded for English.
+    Instead, headings are generated for those in the correct locale (just as
+    the FO and HTML stylesheets do).
+
+  • Re-worked mechanism for assembling page headers/footers (the contents of
+    the .TH macro “title line”).
+
+    Here are some details...
+
+    All man pages contain a .TH roff macro whose contents are used for
+    rendering the “title line” displayed in the header and footer of each page.
+    Here are a couple of examples of real-world man pages that have useful page
+    headers/footers:
+
+      gtk-options(7)    GTK+ User's Manual   gtk-options(7) <-- header
+      GTK+ 1.2              2003-10-20       gtk-options(7) <-- footer
+
+      svgalib(7)       Svgalib User Manual       svgalib(7) <-- header
+      Svgalib 1.4.1      16 December 1999        svgalib(7) <-- footer
+
+    And here are the terms with which the groff_man(7) man page refers to the
+    various parts of the header/footer:
+
+      title(section)  extra3  title(section)  <- header
+      extra2          extra1  title(section)  <- footer
+
+    Or, using the names with which the man(7) man page refers to those same
+    fields:
+
+      title(section)  manual  title(section)  <- page header
+      source          date    title(section)  <- page footer
+
+    The easiest way to control the contents of those fields is to mark up your
+    refentry content like the following (note that this is a “minimal”
+    example).
+
+      <refentry>
+        <info>
+          <date>2003-10-20</date> 1
+        </info>
+        <refmeta>
+          <refentrytitle>gtk-options</refentrytitle> 2
+          <manvolnum>7</manvolnum> 3
+          <refmiscinfo class="source-name">GTK+</refmiscinfo> 4
+          <refmiscinfo class="version">1.2</refmiscinfo> 5
+          <refmiscinfo class="manual">GTK+ User's Manual</refmiscinfo> 6
+        </refmeta>
+        <refnamediv>
+          <refname>gtk-options</refname>
+          <refpurpose>Standard Command Line Options for GTK+ Programs</refpurpose>
+        </refnamediv>
+        <refsect1>
+          <title>Description</title>
+          <para>This manual page describes the command line options, which
+          are common to all GTK+ based applications.</para>
+        </refsect1>
+      </refentry>
+
+    1  Sets the “date” part of the header/footer.
+
+    2  Sets the “title” part.
+
+    3  Sets the “section” part.
+
+    4  Sets the “source name” part.
+
+    5  Sets the “version” part.
+
+    6  Sets the “manual” part.
+
+    Below are explanations of the steps the stylesheets take to attempt to
+    assemble and display “good” headers and footer. [In the descriptions, note
+    that *info is the refentry “info” child (whatever its name), and parentinfo
+    is the “info” child of its parent (again, whatever its name).]
+
+    extra1 field (date)
+
+        Content of the “extra1” field is what shows up in the center footer
+        position of each page. The man(7) man page describes it as “the date of
+        the last revision”.
+
+        To provide this content, if the refentry.date.profile.enabled is
+        non-zero, the stylesheets check the value of refentry.date.profile.
+
+        Otherwise, by default, they check for a date or pubdate not only in the
+        *info contents, but also in the parentinfo contents.
+
+        If a date cannot be found, the stylesheets now automatically generate a
+        localized “long format” date, ensuring that this field always has
+        content in output.
+
+        However, if for some reason you want to suppress this field, you can do
+        so by setting a non-zero value for man.th.extra1.suppress.
+
+    extra2 field (source)
+
+        On Linux systems and on systems with a modern groff, the content of the
+        “extra2” field are what shows up in the left footer position of each
+        page.
+
+        The man(7) man page describes this as “the source of the command”, and
+        provides the following examples:
+
+          ☆ For binaries, use somwething like: GNU, NET-2, SLS Distribution,
+            MCC Distribution.
+
+          ☆ For system calls, use the version of the kernel that you are
+            currently looking at: Linux 0.99.11.
+
+          ☆ For library calls, use the source of the function: GNU, BSD 4.3,
+            Linux DLL 4.4.1.
+
+        In practice, there are many pages that simply have a version number in
+        the “source” field. So, it looks like what we have is a two-part field,
+        Name Version, where:
+
+        Name
+
+            product name (e.g., BSD) or org. name (e.g., GNU)
+
+        Version
+
+            version name
+
+        Each part is optional. If the Name is a product name, then the Version
+        is probably the version of the product. Or there may be no Name, in
+        which case, if there is a Version, it is probably the version of the
+        item itself, not the product it is part of. Or, if the Name is an
+        organization name, then there probably will be no Version.
+
+        To provide this content, if the refentry.source.name.profile.enabled
+        and refentry.version.profile.enabled parameter are non-zero, the
+        stylesheets check the value of refentry.source.name.profile
+        refentry.version.profile.
+
+        Otherwise, by default, they check the following places, in the
+        following order:
+
+         1. *info/productnumber
+
+         2. *info/productnumber
+
+         3. refmeta/refmiscinfo[@class = 'version']
+
+         4. parentinfo/productnumber
+
+         5. *info/productname
+
+         6. parentinfo/productname
+
+         7. refmeta/refmiscinfo
+
+         8. [nothing found, so leave it empty]
+
+    extra3 field
+
+        On Linux systems and on systems with a modern groff, the content of the
+        “extra3” field are what shows up in the center header position of each
+        page. Some man pages have “extra2” content, some don't. If a particular
+        man page has it, it is most often “context” data about some larger
+        system the documented item belongs to (for example, the name or
+        description of a group of related applications). The stylesheets now
+        check the following places, in the following order, to look for content
+        to add to the “extra3” field.
+
+         1. parentinfo/title
+
+         2. parent's title
+
+         3. refmeta/refmiscinfo
+
+         4. [nothing found, so leave it empty]
+
+  • Reworked *info gathering. For each refentry found, the stylesheets now
+    cache its *info content, then check for any valid parent of it that might
+    have metainfo content and cache that, if found; they then then do all
+    further matches against those node-sets (rather than re-selecting the
+    original *info nodes each time they are needed).
+
+  • New option for breaking strings after forward slashes. This enables long
+    URLs and pathnames to be broken across lines. Controlled through
+    man.break.after.slash parameter.
+
+  • Output for servicemark and trademark are now (SM) and (TM). There is a
+    groff "\(tm" escape, but output from that is not acceptable.
+
+  • New option for controlling the length of the title part of the .TH title
+    line. Controlled through the man.th.title.max.length parameter.
+
+  • New option for specifying output encoding of each man page; controlled with
+    man.output.encoding (similar to the HTML chunker.output.encoding 
+    parameter).
+
+  • New option for suppressing filename messages when generating output;
+    controlled with man.output.quietly (similar to the HTML chunk.quietly
+    parameter).
+
+  • The text of cross-references to first-level refentry (refsect1, top-level
+    refsection, refnamediv, and refsynopsisdiv) are now capitalized.
+
+  • Cross-references to refnamediv now use the localized NAME title instead of
+    using the first refname child. This makes the output inconsistent with HTML
+    and FO output, but for man-page output, it seems to make better sense to
+    have the NAME. (It may actually make better sense to do it that way in HTML
+    and FO output as well...)
+
+  • Added support for processing funcparams.
+
+  • Removed the space that was being output between funcdef and paramdef;
+    example: was: float rand (void); now: float rand(void)
+
+  • Turned off bold formatting for the type element when it occurs within a
+    funcdef or paramdef
+
+  • Corrected rendering of simplelist. Any <simplelist type="inline" instance
+    is now rendered as a comma-separated list (also with an optional localized
+    “and” or “or” before the last item -- see description elsewhere in these
+    release notes). Any simplelist instance whose type is not inline is
+    rendered as a one-column vertical list (ignoring the values of the type and
+    columns attributes if present)
+
+  • Comment added at top of roff source for each page now includes DocBook XSL
+    stylesheets version number (as in the HTML stylesheets)
+
+  • Made change to prevent “sticky” fonts changes. Now, when the manpages
+    stylesheets encounter node sets that need to be boldfaced or italicized,
+    they put the \fBfoo\fR and \fIbar\fR groff bold/italic instructions
+    separately around each node in the set.
+
+  • synop.xsl: Boldface everything in funcsynopsis output except parameters
+    (which are in ital). The man(7) man page says:
+
+        For functions, the arguments are always specified using italics, even
+        in the SYNOPSIS section, where the rest of the function is specified in
+        bold.
+
+    A look through the contents of the man/man2 directory shows that most (all)
+    existing pages do follow this “everything in funcsynopsis bold” rule. That
+    means the type content and any punctuation (parens, semicolons, varargs)
+    also must be bolded.
+
+  • Removed code for adding backslashes before periods/dots in roff source,
+    because backslashes in front of periods/dots in roff source are needed only
+    in the very rare case where a period is the very first character in a line,
+    without any space in front of it. A better way to deal with that rare case
+    is for you to add a zero-width space in front of the offending dot(s) in
+    your source
+
+  • Removed special handling of the quote element. That was hard-coded to cause
+    anything marked up with the quote element to be output preceded by two
+    backticks and followed by two apostrophes -- that is, that old-school
+    kludge for generating “curly” quotes in Emacs and in X-Windows fonts. While
+    Emacs still seems to support that, I don't think X-Windows has for a long
+    time now. And, anyway, it looks (and has always looked) like crap when
+    viewed on a normal tty/console. In addition, it breaks localiztion of quote
+    . By default, quote content is output with localized quotation marks,
+    which, depending on the locale, may or may not be left and right double
+    quotation marks.
+
+  • Changed mappings for left and right single quotation marks. Those had
+    previously been incorrectly mapped to the backtick (&#96;) and apostrophe
+    (&39;) characters (for kludgy reasons -- see above). They are now correctly
+    mapped to the \(oq and \(cq roff escapes. If you want the old (broken)
+    behavior, you need to manually change the mappings for those in the value
+    of the man.string.subst.map parameter.
+
+  • Removed xref.xsl file. Now, of the various cross-reference elements, only
+    the ulink element is handled differently; the rest are handled exactly as
+    the HTML stylesheets handle them, except that no hypertext links are
+    generated. (Because there is no equivalent hypertext mechanism is man
+    pages.)
+
+  • New option for making “subheading dividers” in generated roff source. The
+    dividers are not visible in the rendered man page; they are just there to
+    make the source readable. Controlled using man.subheading.divider.
+
+  • Fixed many places where too much space was being added between lines.
+
+Release 1.68.1
+
+The release adds localization support for Farsi (thanks to Sina Heshmati) and
+improved support for the XLink-based DocBook NG db:link element. Other than
+that, it is a minor bug-fix update to the 1.68.0 release. The main thing it
+fixes is a build error that caused the XSLT Java extensions to be jarred up
+with the wrong package structure. Thanks to Jens Stavnstrup for quickly
+reporting the problem, and to Mauritz Jeanson for investigating and finding the
+cause.
+
+Release 1.68.0
+
+This release includes some features changes, particularly for FO/PDF output,
+and a number of bug fixes.
+
+FO
+
+  • Moved footnote properties to attribute-sets.
+
+  • Added support for side floats, margin notes, and custom floats.
+
+  • Added new parameters body.start.indent and body.end.indent to the
+    set.flow.properties template.
+
+  • Added support for xml:id
+
+  • Added support for refdescriptor.
+
+  • Added support for multiple refnamedivs.
+
+  • Added index.entry.properties attribute-set to support customization of
+    index entries.
+
+  • Added set.flow.properties template call to each fo:flow to support
+    customizations entry point.
+
+  • Add support for @floatstyle in figure
+
+  • Moved hardcoded properties for index division titles to the
+    index.div.title.properties attribute-set.
+
+  • Added support for table-layout="auto" for XEP.
+
+  • Added index.div.title.properties attribute-set.
+
+  • $verbose parameter is now passed to most elements.
+
+  • Added refentry to toc in part, as it is permitted by the DocBook schema/
+    DTD.
+
+  • Added backmatter elements and article to toc in part, since they are
+    permitted by the DocBook schema/DTD.
+
+  • Added mode="toc" for simplesect, since it is now permitted in the toc if
+    simplesect.in.toc is set.
+
+  • Moved hard-coded properties to nongraphical.admonintion.properties and
+    graphical.admonition.properties attribute sets.
+
+  • Added support for sidebar-width and float-type processing instructions in
+    sidebar.
+
+  • For tables with HTML markup elements, added support for dbfo bgcolor PI,
+    the attribute-sets named table.properties, informaltable.properties,
+    table.table.properties, and table.cell.padding. Also added support for the
+    templates named table.cell.properties and table.cell.block.properties so
+    that tabstyles can be implemented. Also added support for tables containing
+    only tr instead of tbody with tr.
+
+  • Added new paramater hyphenate.verbatim.characters which can specify
+    characters after which a line break can occur in verbatim environments.
+    This parameter can be used to extend the initial set of characters which
+    contain only space and non-breakable space.
+
+  • Added itemizedlist.label.markup to enable selection of different bullet
+    symbol. Also added several potential bullet characters, commented out by
+    default.
+
+  • Enabled all id's in XEP output for external olinking.
+
+HTML
+
+  • Added support for refdescriptor.
+
+  • Added support for multiple refnamedivs.
+
+  • Added support for xml:id
+
+  • refsynopsisdiv as a section for counting section levels
+
+Images
+
+  • Added new SVG admonition graphics and navigation images.
+
+Release 1.67.2
+
+This release fixes a table bug introduced in the 1.67.1 release.
+
+Release 1.67.1
+
+This release includes a number of bug fixes.
+
+The following lists provide details about API and feature changes.
+
+FO
+
+  • Tables: Inherited cell properties are now passed to the
+    table.cell.properties template so they can be overridden by a
+    customization.
+
+  • Tables: Added support for bgcolor PI on table row element.
+
+  • TOCs: Added new parameter simplesect.in.toc; default value of 0 causes
+    simplesect to be omitted from TOCs; to cause simplesect to be included in
+    TOCs, you must set the value of simplesect.in.toc to 1.Comment from Norm:
+
+        Simplesect elements aren't supposed to appear in the ToC at all... The
+        use case for simplesect is when, for example, every chapter in a book
+        ends with "Exercises" or "For More Information" sections and you don't
+        want those to appear in the ToC.
+
+  • Sections: Reverted change that caused a variable reference to be used in a
+    template match and rewrote code to preserve intended semantics.
+
+  • Lists: Added workaround to prevent "* 0.60 + 1em" garbage in list output
+    from PassiveTeX
+
+  • Moved the literal attributes from component.title to the
+    component.title.properties attribute-set so they can be customized.
+
+  • Lists: Added glossdef's first para to special handling in
+    fo:list-item-body.
+
+HTML
+
+  • TOCs: Added new parameter simplesect.in.toc; for details, see the list of
+    FO changes for this release.
+
+  • Indexing: Added new parameter index.prefer.titleabbrev; when set to 1,
+    index references will use titleabbrev instead of title when available.
+
+HTML Help
+
+  • Added support for generating windows-1252-encoded output using Saxon; for
+    more details, see the list of XSL Java extensions changes for this release.
+
+man pages
+
+  • Replaced named/numeric character-entity references for non-breaking space
+    with groff equivalent (backslash-tilde).
+
+XSL Java extensions
+
+  • Saxon extensions: Added the Windows1252 class. It extends Saxon 6.5.x with
+    the windows-1252 character set, which is particularly useful when
+    generating HTML Help for Western European Languages (code from Pontus
+    Haglund and contributed to the DocBook community by Sectra AB, Sweden).
+
+    To use:
+
+     1. Make sure that the Saxon 6.5.x jar file and the jar file for the
+        DocBook XSL Java extensions are in your CLASSPATH
+
+     2. Create a DocBook XSL customization layer -- a file named
+        mystylesheet.xsl or whatever -- that, at a minimum, contains the
+        following:
+
+          <xsl:stylesheet
+            xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+            version='1.0'>
+            <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/htmlhelp/htmlhelp.xsl"/>
+            <xsl:output method="html" encoding="WINDOWS-1252" indent="no"/>
+            <xsl:param name="htmlhelp.encoding" select="'WINDOWS-1252'"></xsl:param>
+            <xsl:param name="chunker.output.encoding" select="'WINDOWS-1252'"></xsl:param>
+            <xsl:param name="saxon.character.representation" select="'native'"></xsl:param>
+          </xsl:stylesheet>
+
+        Invoke Saxon with the encoding.windows-1252 Java system property set to
+        com.nwalsh.saxon.Windows1252; for example
+
+          java \
+            -Dencoding.windows-1252=com.nwalsh.saxon.Windows1252 \
+          com.icl.saxon.StyleSheet \
+          mydoc.xml mystylesheet.xsl
+
+        Or, for a more complete "real world" case showing other options you'll
+        typically want to use:
+
+          java \
+            -Dencoding.windows-1252=com.nwalsh.saxon.Windows1252 \
+            -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl \
+            -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl \
+            -Djavax.xml.transform.TransformerFactory=com.icl.saxon.TransformerFactoryImpl \
+          com.icl.saxon.StyleSheet \
+            -x org.apache.xml.resolver.tools.ResolvingXMLReader \
+            -y org.apache.xml.resolver.tools.ResolvingXMLReader \
+            -r org.apache.xml.resolver.tools.CatalogResolver \
+          mydoc.xml mystylesheet.xsl
+
+        In both cases, the "mystylesheet.xsl" file should be a DocBook
+        customization layer containing the parameters show in step 2.
+
+  • Saxon extensions: Removed Saxon 8 extensions from release package
+
+Release 1.67.0
+
+  • A number of important bug fixes.
+
+  • Added Saxon8 extensions
+
+  • Enabled dbfo table-width on entrytbl in FO output
+
+  • Added support for role=strong on emphasis in FO output
+
+  • Added new FO parameter hyphenate.verbatim that can be used to turn on
+    "intelligent" wrapping of verbatim environments.
+
+  • Replaced all <tt></tt> output with <code></code>
+
+  • Changed admon.graphic.width template to a mode so that different
+    admonitions can have different graphical widths.
+
+  • Deprecated the HTML shade.verbatim parameter (use CSS instead)
+
+  • Wrapped ToC refentrytitle/refname and refpurpose in span with class values.
+    This makes it possible to style them using a CSS stylesheet.
+
+  • Use strong/em instead of b/i in HTML output
+
+  • Added support for converting Emphasis to groff italic and Emphasis role=
+    'bold' to bold. Controlled by emphasis.propagates.style param, but not
+    documented yet using litprog system. Will do that next (planning to add
+    some other parameter-controllable options for hyphenation and handling of
+    line spacing).
+
+  • callout.graphics.number.limit.xml param: Changed the default from 10 to 15.
+
+  • verbatim.properties: Added hyphenate=false
+
+  • Saxon and Xalan Text.java extensions: Added support for URIResolver() on
+    insertfile href's
+
+  • Added generated RELEASE-NOTES.txt file.
+
+  • Added INSTALL file (executable file for generating catalog.xml)
+
+  • Removed obsolete tools directory from package
+
+Release 1.66.1
+
+  • A number of important bug fixes.
+
+  • Now xml:base attributes that are generated by an XInclude processor are
+    resolved for image files.
+
+  • Rewrote olink templates to support several new features.
+
+      □ Extended full olink support to FO output.
+
+      □ Add support for xrefstyle attribute in olinks.
+
+      □ New parameters to support new olink features: insert.olink.page.number,
+        insert.olink.pdf.frag, olink.debug, olink.lang.fallback.sequence,
+        olink.properties, prefer.internal.olink. See the reference page for
+        each parameter for more information.
+
+  • Added index.on.type parameter for new type attribute introduced in DocBook
+    4.3 for indexterms and index. This allows you to create multiple indices
+    containing different categories of entries. For users of 4.2 and earlier,
+    you can use the new parameter index.on.role instead.
+
+  • Added new section.autolabel.max.depth parameter to turn off section
+    numbering below a certain depth. This permits you to number major section
+    levels and leave minor section levels unnumbered.
+
+  • Added footnote.sep.leader.properties attribute set to format the line
+    separating footnotes in printed output.
+
+  • Added parameter img.src.path as a prefix to HTML img src attributes. The
+    prefix is added to whatever path is already generated by the stylesheet for
+    each image file.
+
+  • Added new attribute-sets informalequation.properties,
+    informalexample.properties, informalfigure.properties, and
+    informaltable.properties, so each such element type can be formatted
+    individually if needed.
+
+  • Add component.label.includes.part.label parameter to add any part number to
+    chapter, appendix and other component labels when the label.from.part
+    parameter is nonzero. This permits you to distinguish multiple chapters
+    with the same chapter number in cross references and the TOC.
+
+  • Added chunk.separate.lots parameter for HTML output. This parameter lets
+    you generate separate chunk files for each LOT (list of tables, list of
+    figures, etc.).
+
+  • Added several table features:
+
+      □ Added table.table.properties attribute set to add properties to the
+        fo:table element.
+
+      □ Added placeholder templates named table.cell.properties and
+        table.cell.block.properties to enable adding properties to any
+        fo:table-cell or the cell's fo:block, respectively. These templates are
+        a start for implementing table styles.
+
+  • Added new attribute set component.title.properties for easy modifications
+    of component's title formatting in FO output.
+
+  • Added Saxon support for an encoding attribute on the textdata element.
+    Added new parameter textdata.default.encoding which specifies encoding when
+    encoding attribute on textdata is missing.
+
+  • Template label.this.section now controls whole section label, not only
+    sub-label which corresponds to particular label. Former behaviour was IMHO
+    bug as it was not usable.
+
+  • Formatting in titleabbrev for TOC and headers is preserved when there are
+    no hotlink elements in the title. Formerly the title showed only the text
+    of the title, no font changes or other markup.
+
+  • Added intial.page.number template to set the initial-page-number property
+    for page sequences in print output. Customizing this template lets you
+    change when page numbering restarts. This is similar to the
+    format.page.number template that lets you change how the page number
+    formatting changes in the output.
+
+  • Added force.page.count template to set the force-page-count property for
+    page sequences in print output. This is similar to the format.page.number
+    template.
+
+  • Sort language for localized index sorting in autoidx-ng.xsl is now taken
+    from document lang, not from system environment.
+
+  • Numbering and formatting of normal and ulink footnotes (if turned on) has
+    been unified. Now ulink footnotes are mixed in with any other footnotes.
+
+  • Added support for renderas attribute in section and sect1 et al. This
+    permits you to render a given section title as if it were a different
+    level.
+
+  • Added support for label attribute in footnote to manually supply the
+    footnote mark.
+
+  • Added support for DocBook 4.3 corpcredit element.
+
+  • Added support for a dbfo keep-together PI for formal objects (table,
+    figure, example, equation, programlisting). That permits a formal object to
+    be kept together if it is not already, or to be broken if it is very long
+    and the default keep-together is not appropriate.
+
+  • For graphics files, made file extension matching case insensitive, and
+    updated the list of graphics extensions.
+
+  • Allow calloutlist to have block content before the first callout
+
+  • Added dbfo-need processing instruction to provide soft page breaks.
+
+  • Added implementation of existing but unused default.image.width parameter
+    for graphics.
+
+  • Support DocBook NG tag inline element.
+
+  • It appears that XEP now supports Unicode characters in bookmarks. There is
+    no further need to strip accents from characters.
+
+  • Make segmentedlist HTML markup more semantic and available to CSS styles.
+
+  • Added user.preroot placeholder template to permit xsl-stylesheet and other
+    PIs and comments to be output before the HTML root element.
+
+  • Non-chunked legalnotice now gets an <a name="id"> element in HTML output so
+    it can be referenced with xref or link.
+
+  • In chunked HTML output, changed link rel="home" to rel="start", and link
+    rel="previous" to rel="prev", per W3C HTML 4.01 spec.
+
+  • Added several patches to htmlhelp from W. Borgert
+
+  • Added Bosnian locale file as common/bs.xml.
+
+Release 1.65.0
+
+  • A number of important bug fixes.
+
+  • Added a workaround to allow these stylesheets to process DocBook NG
+    documents. (It’s a hack that pre-processes the document to strip off the
+    namespace and then uses exsl:node-set to process the result.)
+
+  • Added alternative indexing mechanism which has better internationalization
+    support. New indexing method allows grouping of accented letters like e, é,
+    ë into the same group under letter "e". It can also treat special letters
+    (e.g. "ch") as one character and place them in the correct position (e.g.
+    between "h" and "i" in Czech language).
+
+    In order to use this mechanism you must create customization layer which
+    imports some base stylesheet (like fo/docbook.xsl, html/chunk.xsl) and then
+    includes appropriate stylesheet with new indexing code (fo/autoidx-ng.xsl
+    or html/autoidx-ng.xsl). For example:
+
+    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                    version="1.0">
+
+    <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/>
+    <xsl:include href="http://docbook.sourceforge.net/release/xsl/current/fo/autoidx-ng.xsl"/>
+
+    </xsl:stylesheet>
+
+    New method is known to work with Saxon and it should also work with
+    xsltproc 1.1.1 and later. Currently supported languages are English, Czech,
+    German, French, Spanish and Danish.
+
+Release 1.64.1
+
+General bug fixes and improvements. Sorry about the failure to produce an
+updated release notes file for 1.62.0—1.63.2
+
+  • In the course of fixing bug #849787, wrapping Unicode callouts with an
+    appropriate font change in the Xalan extensions, I discovered that the
+    Xalan APIs have changed a bit. So xalan2.jar will work with older Xalan 2
+    implementations, xalan25.jar works with Xalan 2.5.
+
+Release 1.61.0
+
+Lots of bug fixes and improvements.
+
+  • Initial support for timestamp PI. From now you can use <?dbtimestamp format
+    ="Y-m-d H:M:S"?> to get current datetime in your document. Added
+    localization support for datetime PI
+
+  • Added level 6 to test for section depth in section.level template so that
+    section.title.level6.properties will be used for sections that are 6 deep
+    or deeper. This should also cause a h6 to be created in html output.
+
+  • Don't use SVG graphics if use.svg=0
+
+  • Now uses number-and-title-template for sections only if section.autolabel
+    is not zero.
+
+  • Added missing 'english-language-name' attribute to the l10n element, and
+    the missing 'style' attribute to the template element so the current
+    gentext documents will validate.
+
+  • Corrected several references to parameter qanda.defaultlabel that were
+    missing the "$".
+
+  • Now accepts admon.textlabel parameter to turn off Note, Warning, etc.
+    label.
+
+  • FeatReq #684561: support more XEP metadata
+
+  • Added hyphenation support. Added support for coref. Added beginpage
+    support. (does nothing; see TDG).
+
+  • Added support for hyphenation-character, hyphenation-push-character-count,
+    and hyphenation-remain-character-count
+
+  • Added root.properties, ebnf.assignment, and ebnf.statement.terminator
+
+  • Support bgcolor PI in table cells; make sure rowsep and colsep don't have
+    any effect on the last row or column
+
+  • Handle othercredit on titlepage a little better
+
+  • Applied fix from Jeff Beal that fixed the bug that put secondary page
+    numbers on primary entries. Same with tertiary page numbers on secondary
+    entries.
+
+  • Added definition of missing variable collection.
+
+  • Make footnote formatting 'normal' even when it occurs in a context that has
+    special formatting
+
+  • Added warning when glossary.collection is not blank, but it cannot open the
+    specified file.
+
+  • Pick up the frame attribute on table and informaltable.
+
+  • indexdiv/title in non-autogenerated indexes are now picked up.
+
+  • Removed (unused) component.title.properties
+
+  • Move IDs from page-sequences down to titlepage blocks
+
+  • Use proportional-column-width(1) on more tables.
+
+    Use proportional-column-width() for header/footer tables; suppress
+    relative-align when when using FOP
+
+  • Check for glossterm.auto.link when linking firstterms; don't output gl.
+    prefix on glossterm links
+
+  • Generate Part ToCs
+
+  • Support glossary, bibliography, and index in component ToCs.
+
+  • Refactored chunking code so that customization of chunk algorithm and chunk
+    elements is more practical
+
+  • Support textobject/phrase on inlinemediaobject.
+
+  • Support 'start' PI on ordered lists
+
+  • Fixed test of $toc PI to turn on qandaset TOC.
+
+  • Added process.chunk.footnotes to sect2 through 5 to fix bug of missing
+    footnotes when chunk level greater than 1.
+
+  • Added paramater toc.max.depth which controls maximal depth of ToC as
+    requested by PHP-DOC group.
+
+  • Exempted titleabbrev from preamble processing in lists, and fixed
+    variablelist preamble code to use the same syntax as the other lists.
+
+  • Added support for elements between variablelist and first varlistentry
+    since DocBook 4.2 supports that now.
+
+Release 1.60.1
+
+Lots of bug fixes.
+
+  • The format of the titlepage.templates.xml files and the stylesheet that
+    transforms them have been significantly changed. All of the attributes used
+    to control the templates are now namespace qualified. So what used to be:
+
+    <t:titlepage element="article" wrapper="fo:block">
+
+    is now:
+
+    <t:titlepage t:element="article" t:wrapper="fo:block">
+
+    Attributes from other namespaces (including those that are unqualified) are
+    now copied directly through. In practice, this means that the names that
+    used to be “fo:” qualified:
+
+    <title named-template="component.title"
+           param:node="ancestor-or-self::article[1]"
+           fo:text-align="center"
+           fo:keep-with-next="always"
+           fo:font-size="&hsize5;"
+           fo:font-weight="bold"
+           fo:font-family="{$title.font.family}"/>
+
+    are now unqualified:
+
+    <title t:named-template="component.title"
+           param:node="ancestor-or-self::article[1]"
+           text-align="center"
+           keep-with-next="always"
+           font-size="&hsize5;"
+           font-weight="bold"
+           font-family="{$title.font.family}"/>
+
+    The t:titlepage and t:titlepage-content elements both generate wrappers
+    now. And unqualified attributes on those elements are passed through. This
+    means that you can now make the title font apply to ane entire titlepage
+    and make the entire “recto” titlepage centered by specifying the font and
+    alignment on the those elements:
+
+    <t:titlepage t:element="article" t:wrapper="fo:block"
+                 font-family="{$title.font.family}">
+
+      <t:titlepage-content t:side="recto"
+                 text-align="center">
+
+  • Support use of titleabbrev in running headers and footers.
+
+  • Added (experimental) xref.with.number.and.title parameter to enable number/
+    title cross references even when the default would be just the number.
+
+  • Generate part ToCs if they're requested.
+
+  • Use proportional-column-width() in header/footer tables.
+
+  • Handle alignment correctly when screenshot wraps a graphic in a figure.
+
+  • Format chapter and appendix cross references consistently.
+
+  • Attempt to support tables with multiple tgroups in FO.
+
+  • Output fo:table-columns in simplelist tables.
+
+  • Use titlepage.templates.xml for indexdiv and glossdiv formatting.
+
+  • Improve support for new bibliography elements.
+
+  • Added footnote.number.format, table.footnote.number.format,
+    footnote.number.symbols, and table.footnote.number.symbols for better
+    control of footnote markers.
+
+  • Added glossentry.show.acronyms.
+
+  • Suppress the draft-mode page masters when draft-mode is “no”.
+
+  • Make blank pages verso not recto. D'Oh!
+
+  • Improved formatting of ulink footnotes.
+
+  • Fixed bugs in graphic width/height calculations.
+
+  • Added class attributes to inline elements.
+
+  • Don't add “.html” to the filenames identified with the “dbhtml” PI.
+
+  • Don't force a ToC when sections contain refentrys.
+
+  • Make section title sizes a function of the body.master.size.
+
+Release 1.59.2
+
+The 1.59.2 fixes an FO bug in the page masters that causes FOP to fail.
+
+  • Removed the region-name from the region-body of blank pages. There's no
+    reason to give the body of blank pages a unique name and doing so causes a
+    mismatch that FOP detects.
+
+  • Output IDs for the first paragraphs in listitems.
+
+  • Fixed some small bugs in the handling of page numbers in double-sided mode.
+
+  • Attempt to prevent duplicated IDs from being produced when endterm on xref
+    points to something with nested structure.
+
+  • Fix aligment problems in equations.
+
+  • Output the type attribute on unordered lists (UL) in HTML only if the
+    css.decoration parameter is true.
+
+  • Calculate the font size in formal.title.properties so that it's 1.2 times
+    the base font size, not a fixed "12pt".
+
+Release 1.59.1
+
+The 1.59.1 fixes a few bugs.
+
+  • Added Bulgarian localization.
+
+  • Indexing improvements; localize book indexes to books but allow setindex to
+    index an entire set.
+
+  • The default value for rowsep and colsep is now "1" as per CALS.
+
+  • Added support for titleabbrev (use them for cross references).
+
+  • Improvements to mediaobject for selecting print vs. online images.
+
+  • Added seperate property sets for figures, examples, equations, tabless, and
+    procedures.
+
+  • Make lineannotations italic.
+
+  • Support xrefstyle attribute.
+
+  • Make endterm on xref higher priority than xreflabel target.
+
+  • Glossary formatting improvements.
+
+Release 1.58.0
+
+The 1.58.0 adds some initial support for extensions in xsltproc, adds a few
+features, and fixes bugs.
+
+  • This release contains the first attempt at extension support for xsltproc.
+    The only extension available to date is the one that adjusts table column
+    widths. Run extensions/xsltproc/python/xslt.py.
+
+  • Fixed bugs in calculation of adjusted column widths to correct for rounding
+    errors.
+
+  • Support nested refsection elements correctly.
+
+  • Reworked gentext.template to take context into consideration. The name of
+    elements in localization files is now an xpath-like context list, not just
+    a simple name.
+
+  • Made some improvements to bibliography formatting.
+
+  • Improved graphical formatting of admonitions.
+
+  • Added support for entrytbl.
+
+  • Support spanning index terms.
+
+  • Support bibliosource.
+
+Release 1.57.0
+
+  • The 1.57.0 release wasn't documented here. Oops.
+
+Release 1.56.0
+
+The 1.56.0 release fixes bugs.
+
+  • Reworked chunking. This will break all existing customizations layers that
+    change the chunking algorithm. If you're customizing chunking, look at the
+    new “content” parameter that's passed to process-chunk-element and friends.
+
+  • Support continued and inherited numeration in orderedlist formatting for
+    FOs.
+
+  • Added Thai localization.
+
+  • Tweaked stylesheet documentation stylesheets to link to TDG and the
+    parameter references.
+
+  • Allow title on tables of contents ("Table of Contents") to be optional.
+    Added new keyword to generate.toc. Support tables of contents on sections.
+
+  • Made separate parameters for table borders and table cell borders:
+    table.frame.border.color, table.frame.border.style,
+    table.frame.border.thickness, table.cell.border.color,
+    table.cell.border.style, and table.cell.border.thickness.
+
+  • Suppress formatting of “endofrange” indexterms. This is only half-right.
+    They should generate a range, but I haven't figured out how to do that yet.
+
+  • Support revdescription. (Bug #582192)
+
+  • Added default.float.class and fixed figure floats. (Bug #497603)
+
+  • Fixed formatting of sbr in FOs.
+
+  • Added context to the “missing template” error message.
+
+  • Process arg correctly in a group. (Bug #605150)
+
+  • Removed 'keep-with-next' from formal.title.properties attribute set now
+    that the stylesheets support the option of putting such titles below the
+    object. Now the $placement value determines if 'keep-with-next' or
+    'keep-with-previous' is used in the title block.
+
+  • Wrap “url()” around external-destinations when appropriate.
+
+  • Fixed typo in compact list spacing. (Bug #615464)
+
+  • Removed spurious hash in anchor name. (Bug #617717)
+
+  • Address is now displayed verbatim on title pages. (Bug #618600)
+
+  • The bridgehead.in.toc parameter is now properly supported.
+
+  • Improved effectiveness of HTML cleanup by increasing the number of places
+    where it is used. Improve use of HTML cleanup in XHTML stylesheets.
+
+  • Support table of contents for appendix in article. (Bug #596599)
+
+  • Don't duplicate footnotes in bibliographys and glossarys. (Bug #583282)
+
+  • Added default.image.width. (Bug #516859)
+
+  • Totally reworked funcsynopsis code; it now supports a 'tabular'
+    presentation style for 'wide' prototypes; see
+    funcsynopsis.tabular.threshold. (HTML only right now, I think, FO support,
+    uh, real soon now.)
+
+  • Reworked support for difference marking; toned down the colors a bit and
+    added a “system.head.content” template so that the diff CSS wasn't
+    overriding “user.head.content”. (Bug #610660)
+
+  • Added call to the “*.head.content” elements when writing out long
+    description chunks.
+
+  • Make sure legalnotice link is correct even when chunking to a different
+    base.dir.
+
+  • Use CSS to set viewport characteristics if css.decoration is non-zero, use
+    div instead of p for making graphic a block element; make figure titles the
+    default alt text for images in a figure.
+
+  • Added space-after to list.block.spacing.
+
+  • Reworked section.level template to give “correct” answer instead of being
+    off by one.
+
+  • When processing tables, use the tabstyle attribute as the division class.
+
+  • Fixed bug in html2xhtml.xsl that was causing the XHTML chunker to output
+    HTML instead of XHTML.
+
+Older releases
+
+To view the release notes for older releases, see http://cvs.sourceforge.net/
+viewcvs.py/docbook/xsl/RELEASE-NOTES.xml. Be aware that there were no release
+notes for releases prior to the 1.50.0 release.
+
+About dot-zero releases
+
+DocBook Project “dot zero” releases should be considered experimental and are
+always followed by stable “dot one plus” releases, usually within two or three
+weeks. Please help to ensure the stability of “dot one plus” releases by
+carefully testing each “dot zero” release and reporting back about any problems
+you find.
+
+It is not recommended that you use a “dot zero” release in a production system.
+Instead, you should wait for the “dot one” or greater versions.
+
diff --git a/applications/content/template/docbook/RELEASE-NOTES.xml b/applications/content/template/docbook/RELEASE-NOTES.xml
new file mode 100644
index 0000000..88609f5
--- /dev/null
+++ b/applications/content/template/docbook/RELEASE-NOTES.xml
@@ -0,0 +1,11412 @@
+<article xmlns="http://docbook.org/ns/docbook"
+  xmlns:xlink="http://www.w3.org/1999/xlink"
+  xmlns:xi="http://www.w3.org/2001/XInclude"
+  xml:lang="en" xml:id="releasenotes"
+  version="5.0">
+
+<info>
+  <title>Release Notes for the DocBook XSL Stylesheets</title>
+  <pubdate><?dbtimestamp format="Y-m-d"?></pubdate>
+  <releaseinfo role="cvs">$Revision$ $Date$</releaseinfo>
+  <!-- * <author><orgname>DocBook Project Development Team</orgname></author> -->
+<abstract>
+<para condition="dot-zero;dot-one-plus">This release-notes
+  document is available in the following formats:
+  <link
+    xlink:href="http://docbook.sourceforge.net/release/xsl/current/RELEASE-NOTES.html"
+    >HTML</link>,
+  <link
+    xlink:href="http://docbook.sourceforge.net/release/xsl/current/RELEASE-NOTES.pdf"
+    >PDF</link>,
+  <link
+    xlink:href="http://docbook.sourceforge.net/release/xsl/current/RELEASE-NOTES.txt"
+    >plain text</link>; it provides a per-release list
+of enhancements and changes to the stylesheets’ public APIs
+(user-configurable parameters) and excludes descriptions of most
+bug fixes. For a complete list of all changes (including all bug
+fixes) that have been made since the previous release, see the
+separate <link xlink:href="NEWS">NEWS</link> (plain text) or <link
+  xlink:href="NEWS.html">NEWS.html</link> files. Also available:
+An online <link
+  xlink:href="http://docbook.svn.sourceforge.net/viewvc/docbook/trunk/xsl/?view=log"
+  >hyperlinked change history</link> (warning: big file) of all
+changes made over the entire history of the codebase.</para>
+<para condition="dot-zero">As with all DocBook Project <link
+    linkend="dot0">dot-zero</link> releases, this is an
+  experimental release. It will be followed shortly by a stable
+  release.</para>
+<para condition="dot-one-plus">As with all DocBook Project “dot
+  one plus” releases, this release aspires to be stable (in
+  contrast to <link linkend="dot0">dot-zero</link> releases, which
+  are experimental).</para>
+<para condition="snapshot">This is a pre-release “snapshot” of the
+DocBook XSL Stylesheets. The change information in the first
+section of this file 
+(for “<xi:include href="NEWS.xml" xpointer="xpointer(/article/sect1/title/text())"/>”) is
+auto-generated from change descriptions stored in the project
+source-code repository.</para>
+<para condition="snapshot">That means the first section contains
+descriptions both of bug fixes and of feature changes. The
+remaining sections are manually edited changelog subsets that
+exclude bug-fix descriptions – that is, trimmed down to just those
+those descriptions that document enhancements and changes to the
+public APIs (user-configurable parameters).</para>
+</abstract>
+</info>
+
+<sect1 condition="snapshot" xml:id="current">
+  <xi:include href="NEWS.xml" xpointer="xpointer(/article/sect1/*)"/>
+</sect1>
+<sect1 xml:id="V1.77.0">
+<title>Release Notes: 1.77.1</title>
+<para>The following list summarizes the major changes that have been made
+        since the 1.76.1 release.  It is followed by sections detailing changes to individual files
+from the SVN checkin logs, edited to remove housekeeping changes and bug fixes.
+See the NEWS.xml file for a complete unedited  list of SVN changes.</para>
+<itemizedlist>
+  <listitem><para>Gentext</para>
+<variablelist><varlistentry>
+            <term>webhelp</term>
+            <listitem>
+                <para>Many improvements to the generated text for webhelp output.</para>
+            </listitem>
+        </varlistentry></variablelist>
+  </listitem>
+  <listitem><para>Common</para><variablelist>
+                    <varlistentry>
+                        <term>Support more media types</term>
+                        <listitem>
+                            <para>Expanded list of supported filename extensions for media to include video and audio, mostly for HTML5 and EPUB3 outputs.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Topic element</term>
+                        <listitem>
+                            <para>Add basic support for new <literal>topic</literal> element, which is available in DocBook 5.1. Generally a topic element will be used with <literal>assembly</literal> and may be transformed to some other hierarchical element during processing, but it can also be formatted as a plain topic.</para>
+                        </listitem>
+                    </varlistentry>
+                </variablelist></listitem>      
+
+                
+<listitem><para>FO</para><variablelist>
+                    <varlistentry>
+                        <term>Add para.properties attribute-set</term>
+                        <listitem>
+                            <para>Add a <literal>para.properties</literal> attribute-set that applies only to para elements. That allows still using <literal>normal.para.spacing</literal> attribute-set for many block elements for uniform spacing, but allows separate formatting of para elements.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>List of titles in article</term>
+                        <listitem>
+                            <para>Add support for List of Tables, List of Figures, etc. for articles and other component-level elements. Includes a new template for each in <filename>autotoc.xsl</filename>, new attribute-sets in <filename>titlepage.xsl</filename>, and new entries in the <filename>titlepage.templates.xml</filename> file tu support customization.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Customizing links in FO</term>
+                        <listitem>
+                            <para>Add template mode <literal>simple.xlink.properties</literal> to allow
+easy customization of formatting of links generated
+from elements  that use 
+the xlink attributes. This extends link formatting beyond that of <literal>xref</literal>, <literal>link</literal>, and <literal>olink</literal> which use <literal>xref.properties</literal> attribute-set.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Table caption</term>
+                        <listitem>
+                            <para>The caption element in an HTML table is now handled like a title in a CALS table, using the <literal>formal.object.title</literal> template with all its features, including placement.  Now <literal>caption</literal> template in <literal>mode="htmlTable"</literal> does nothing, because
+caption handled by <literal>formal.object.title</literal> template.  Also adds support for table <literal>caption</literal> element in a CALS table, placing it after the table.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Graphics attribute handling</term>
+                        <listitem>
+                            <para>Refactored the big <literal>process.image</literal> template to use individual templates such as <literal>image.width</literal> for most attributes to allow easier customization of individual properties.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Side regions</term>
+                        <listitem>
+                            <para>Add support for side page regions in addition to header and footer regions. This feature lets you add running content to the side margins, and by default the content is rotated 90 degrees.  Adds new templates named <literal>running.side.content</literal>, <literal>region.inner</literal> and <literal>region.outer</literal>; new template modes <literal><literal>region.inner.mode</literal> and <literal>region.outer.mode</literal>; </literal>new parameters named <literal>region.inner.extent</literal>, <literal>region.outer.extent</literal>, <literal>body.margin.inner</literal>, <literal>body.margin.outer</literal>,  and <literal>side.region.precedence</literal>; and new attribute-sets named <literal>inner.region.content.properties</literal>, <literal>outer.region.content.properties</literal>, <literal>region.inner.properties</literal>, and <literal>region.outer.properties</literal>.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Callout formatting</term>
+                        <listitem>
+                            <para>Add new attribute-sets for <literal>calloutlist</literal>.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Topic element</term>
+                        <listitem>
+                            <para>Add basic support for formatting a topic element, which is available in DocBook 5.1.</para>
+                        </listitem>
+                    </varlistentry>
+                </variablelist></listitem>     
+ 
+            <listitem><para>HTML</para>
+              
+                <variablelist><varlistentry>
+                        <term>HTML5</term>
+                        <listitem>
+                            <para>Add variables to the base HTML stylesheets that can be adjusted for the HTML5 stylesheets.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Insert Javascript reference</term>
+                        <listitem>
+                            <para>Add support for <literal>html.script</literal> param to insert reference to a Javascript file.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Namespace for titlepage mechanism.</term>
+                        <listitem>
+                            <para>Titlepage mechanism is now namespace aware to support XHTML.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Chunked filename prefix</term>
+                        <listitem>
+                            <para>New param named <literal>chunked.filename.prefix</literal> lets you add a filename prefix to each chunked file. This replaces the buggy practice of adding such a prefix to the <literal>base.dir</literal> param.  Now the <literal>base.dir</literal> param will always have a trailing slash added if it is not present, so you no longer have to remember to add it to the param value.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Generate id attributes</term>
+                        <listitem>
+                            <para>The stylesheet param <literal>generate.id.attributes</literal> already existed but was incompletely implemented.  Now when it is set to 1, only <literal>id</literal> attributes should be output, not <literal>&lt;a name&gt;</literal> named anchors.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Generate consistent id attributes</term>
+                        <listitem>
+                            <para>New  <literal>generate.consistent.ids</literal> parameter which allows generating a more stable id values based on XPath rather than the <literal>generate-id()</literal> function, which may not produce consistent values between runs.  Stable output ids allow you to make stable links to generated content from the outside.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Topic element</term>
+                        <listitem>
+                            <para>Add basic support for formatting a topic element, which is available in DocBook 5.1. Generally a topic element will be used with assembly and may be transformed to some other hierarchical element during processing, but it can also be formatted as a plain topic.</para>
+                        </listitem>
+                    </varlistentry>
+                </variablelist>
+            </listitem>
+            
+            <listitem><para>Webhelp</para>
+                <variablelist>
+                    <varlistentry>
+                        <term>Webhelp refactored</term>
+                        <listitem>
+                            <para>Webhelp templates refactored to better support customization.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Added documentation.</term>
+                        <listitem>
+                            <para>More and better documentation added.</para>
+                        </listitem>
+                    </varlistentry>
+                    <varlistentry>
+                        <term>Webhelp generated text</term>
+                        <listitem>
+                            <para>Many improvements to the generated text for webhelp output.</para>
+                        </listitem>
+                    </varlistentry>
+                </variablelist>
+            </listitem>
+            <listitem><para>XHTML5</para>
+                <para>New stylesheets to generate HTML5 output, in an  XML serialization. These templates are a customization layer on top of the XHTML stylesheet files.</para>
+            </listitem>
+ 
+           <listitem><para>EPUB3</para>
+                <para>New stylesheets to generate EPUB3 output. These templates are a customization layer on top of the xhtml5 stylesheet files.</para>
+            </listitem>
+
+            <listitem><para>Assembly</para>
+                <para>New <literal>assembly.xsl</literal> stylesheet to convert a DocBook 5.1 assembly into a standard DocBook 5 document.  Also includes a <literal>topic-maker-chunk.xsl</literal> stylesheet that can convert a DocBook 5 book or article document into an assembly with a collection of modular files, including converting some elements to topic files.</para>
+            </listitem>
+    </itemizedlist>
+<sect2 xml:id="rnV1.77_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the
+            <filename>gentext</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>stefanhinz: locale/de.xml</literal></para><screen><phrase role="commit-message">Translated German WebHelp strings</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: locale/zh.xml; locale/en.xml; locale/fr.xml; locale/de.xml; locale/ja.xml</literal></para><screen><phrase role="commit-message">Webhelp: Update non-en gentext strings</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/en.xml</literal></para><screen><phrase role="commit-message">Add topic to title-numbered context.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/en.xml</literal></para><screen><phrase role="commit-message">Add basic topic element templates.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: locale/el.xml</literal></para><screen><phrase role="commit-message">Updated gentext for quotation marks. Fixes bug #3512440.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: locale/cs.xml</literal></para><screen><phrase role="commit-message">Adding missing context for webhelp</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: locale/en.xml</literal></para><screen><phrase role="commit-message">Fixing syntax of webhelp gentext entries</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: locale/en.xml</literal></para><screen><phrase role="commit-message">Moving webhelp gentext strings into a context</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>tom_schr: locale/zh.xml; locale/en.xml; locale/cs.xml; locale/fr.xml; locale/de.xml; local⋯</literal></para><screen><phrase role="commit-message">Moved language specific of WebHelp to gentext/locale/ as discussed with
+Stefan following the "minimal intrusive approach". :)
+In the long run, maybe moving the text into a context, not sure.</phrase></screen>
+</listitem>
+
+<listitem>
+<para><literal>Jirka Kosek: locale/ru.xml</literal></para><screen><phrase role="commit-message">Aligned capitalization of first letters with English original</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for snapshot_-->
+
+<sect2 xml:id="VrnV1.77_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: common.xsl</literal></para><screen><phrase role="commit-message">In "select.mediaobject.index" template, add selection of <tag>videoobject</tag>
+and <tag>audioobject</tag> since now supported in HTML5.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: labels.xsl; titles.xsl; entities.ent; targets.xsl; subtitles.xsl; gentext.⋯</literal></para><screen><phrase role="commit-message">Add basic support for new &lt;topic&gt; element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: common.xsl</literal></para><screen><phrase role="commit-message">Fix handling of mediatypes for video and audio files, mostly for HTML5 and EPUB3 outputs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: olink.xsl</literal></para><screen><phrase role="commit-message">Generate error message if <tag>olink</tag> data in targetset is in a namespace.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: common.xsl</literal></para><screen><phrase role="commit-message">Add support for <parameter>generate.consistent.ids</parameter> parameter.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: subtitles.xsl</literal></para><screen><phrase role="commit-message">Add verbose param to subtitle.markup templates to allow its
+error message to be ignored. 
+Add that param to fop1.xsl <tag>application</tag> of subtitle.markup
+to avoid unnecessary error message in document information.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: labels.xsl</literal></para><screen><phrase role="commit-message">Add empty templates for <tag>glossdiv</tag>, <tag>glosslist</tag>, and <tag>glossentry</tag> in
+mode="label.markup".</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl</literal></para><screen><phrase role="commit-message">qualify <tag>caption</tag> template to <tag>mediaobject</tag>/<tag>caption</tag> so not confused with <tag>table</tag>/<tag>caption</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Add template to process <tag>table</tag>/<tag>caption</tag> element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titlepage.xsl; autotoc.xsl; component.xsl; xref.xsl; titlepage.templates.x⋯</literal></para><screen><phrase role="commit-message">Add basic support for new &lt;topic&gt; element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl</literal></para><screen><phrase role="commit-message">Fix handling of mediatypes for video and audio files, mostly for HTML5 and EPUB3 outputs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titlepage.xsl</literal></para><screen><phrase role="commit-message">Add default style att-sets for component.list.of.titles, etc.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl; component.xsl; titlepage.templates.xml</literal></para><screen><phrase role="commit-message">Add make.component.tocs to support lists of tables, etc. for
+<tag>article</tag> and other components.  Added component.list.of.tables to
+titlepage.templates.xml to format the <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add new <parameter>para.properties</parameter> attribute-set for paragraphs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl</literal></para><screen><phrase role="commit-message">Add template mode 'simple.xlink.properties' to allow
+easy customization of formatting of links generated
+from elements other than <tag>xref</tag>, <tag>link</tag>, and <tag>olink</tag> using
+the xlink attributes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add <parameter>table.caption.properties</parameter> to format <tag>table</tag> captions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Add support for <tag>caption</tag> in a CALS <tag>table</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl; math.xsl</literal></para><screen><phrase role="commit-message">Refactored the 'process.image' template to create modular
+templates for each attribute so they can be individually
+customized.  Also merged in support for embedded svg and
+mml content so they can have image attributes too.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Check in new params for FO side regions in page masters.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titlepage.xsl; titlepage.templates.xml</literal></para><screen><phrase role="commit-message">Add support for <tag>itermset</tag> in <tag>info</tag> elements, using titlepage mechanism
+to ensure entries are placed inside page-sequence.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: pagesetup.xsl</literal></para><screen><phrase role="commit-message">Add support for side body margins and side static content regions.
+Fixes bug 3389931.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent; task.xsl</literal></para><screen><phrase role="commit-message">Add attribute-set <parameter>task.properties</parameter> to <tag>task</tag> element to
+support customization.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add new attribute-sets <parameter>calloutlist.properties</parameter> and <parameter>callout.properties</parameter>
+to  better support customization of calloutlists, fixing bug 3160341.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: Makefile</literal></para><screen><phrase role="commit-message">Titlepage mechanism is now namespace aware to support XHTML. Please note that when generating titlepage template stylesheets you have to pass FO or XHTML namespace inside ns parameter. For HTML parameter should be empty.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl</literal></para><screen><phrase role="commit-message">Allow selection by role for multiple <tag>imageobject</tag> elements
+within an <tag>imageobjectco</tag>, which since Docbook 5 allows multiple imageobjects.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Added template for collabname. Fixes bug #3414436.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: verbatim.xsl</literal></para><screen><phrase role="commit-message">Support the keep-together processing-instruction on <tag>programlisting</tag>, <tag>screen</tag>, <tag>synopsis</tag>, and <tag>literallayout</tag>. Tracker id #3396906.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: pagesetup.xsl</literal></para><screen><phrase role="commit-message">Pass the pageclass, sequence, and gentext-key to the template
+named header.footer.widths to enable further customization
+based on page master.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: xref.xsl</literal></para><screen><phrase role="commit-message">hyphenation of URL content must be disabled for <tag>link</tag>, not only for ulink because od DB5</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: xref.xsl</literal></para><screen><phrase role="commit-message">URLs shouldn't be hyphenated as normal text</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: callout.xsl</literal></para><screen><phrase role="commit-message">Added support for alternative circled numbers</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: axf.xsl; fop1.xsl; xep.xsl</literal></para><screen><phrase role="commit-message">Added support for <tag>author</tag>/<tag>orgname</tag> in document metadata. Closes bug #3132862.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: component.xsl</literal></para><screen><phrase role="commit-message">Add template for <tag>article</tag>/<tag>colophon</tag> to avoid nested page-sequence.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Add support for using <tag>info</tag>/<tag>title</tag> as well as <tag>title</tag> in target element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: component.xsl</literal></para><screen><phrase role="commit-message">Enable support for html5 features, including using &lt;<tag>section</tag>&gt; instead of
+&lt;div&gt; for certain elements, and setting heading level to &lt;h1&gt; for chapters.
+These features are not changed in the base html stylesheet for backwards
+compatibility.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: docbook.css.xml</literal></para><screen><phrase role="commit-message">Add style for <tag>footnote</tag> rule.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: biblio-iso690.xsl</literal></para><screen><phrase role="commit-message">Add support for <tag>subtitle</tag> inside <tag>info</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Add call to new 'root.attributes' placeholder template to allow
+adding attributes to the &lt;html&gt; output element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl; titlepage.xsl; formal.xsl; division.xsl; toc.xsl; sections.xsl⋯</literal></para><screen><phrase role="commit-message">Finish implementation of <parameter>generate.id.attributes</parameter> for all elements
+using the template named id.attribute.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl; chunktoc.xsl; titlepage.xsl; chunk-code.xsl; changebars.xsl; ⋯</literal></para><screen><phrase role="commit-message">Add basic support for new &lt;topic&gt; element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl</literal></para><screen><phrase role="commit-message">Fix handling of mediatypes for video and audio files, mostly for HTML5 and EPUB3 outputs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: callout.xsl; verbatim.xsl</literal></para><screen><phrase role="commit-message">Restore <tag>programlisting</tag> to use &lt;pre&gt; instead of &lt;div&gt; and instead
+wrap <tag>callout</tag> img elements in &lt;span&gt; to make valid HTML.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl</literal></para><screen><phrase role="commit-message">Turn off img longdesc attribute because not supported by browsers.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: footnote.xsl</literal></para><screen><phrase role="commit-message">Move square brackets and &lt;sup&gt; inside &lt;a&gt; element for <tag>footnote</tag>
+marks to fix display problems in some browsers.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add new params <parameter>html.script</parameter> and <parameter>html.script.type</parameter> to support
+Javascript references.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunk-common.xsl; chunktoc.xsl; titlepage.xsl; chunker.xsl; chunk-code.xsl⋯</literal></para><screen><phrase role="commit-message">Add support for <parameter>chunked.filename.prefix</parameter> param.
+Make sure <parameter>base.dir</parameter> value has a trailing slash in
+the chunk.base.dir internal param used by the templates.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: formal.xsl; htmltbl.xsl</literal></para><screen><phrase role="commit-message">Now handles <tag>caption</tag> in html markup <tag>table</tag> like <tag>title</tag>,
+so formal.object.title is used with all its features, including 
+formatting and placement.
+Added htmlTable.with.caption template to handle the wrapper, and
+left htmlTable template unchanged.
+Now <tag>caption</tag> template in mode="htmlTable" does nothing, because
+<tag>caption</tag> handled by formal.object.title template.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: html.xsl</literal></para><screen><phrase role="commit-message">Turn off generating the <tag>title</tag> attribute for block and hierarchical elements.
+Should only be used for inline elements, usually using the <tag>alt</tag> element.
+Also used for links to show the target <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">The spacing="compact" attribute on lists in HTML no longer outputs compact="compact"
+(or just "compact" in the case of Saxon 6), since that attribute is
+deprecated and improperly supported.  Instead, the output uses a 
+multiple class attribute such as class="<tag>orderedlist</tag> compact".
+Use CSS to style such lists without margin above.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: graphics.xsl</literal></para><screen><phrase role="commit-message">Allow selection by role for multiple <tag>imageobject</tag> elements
+within an <tag>imageobjectco</tag>, which since Docbook 5 allows multiple imageobjects.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: pi.xsl</literal></para><screen><phrase role="commit-message">Improve doc descriptions of dbhtml <tag>filename</tag> and dir.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autoidx.xsl</literal></para><screen><phrase role="commit-message">Add <tag>setindex</tag> to context param in mode="<tag>reference</tag>" to better 
+support <tag>setindex</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl</literal></para><screen><phrase role="commit-message">Support set as child of set in set.toc template.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qandaset.xsl</literal></para><screen><phrase role="commit-message">Change <tag>question</tag> and <tag>title</tag> templates to replace hard-coded
+class="local-name()" with mode="class.attribute" to support customization
+of class values.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Norman Walsh: chunktoc.xsl</literal></para><screen><phrase role="commit-message">Separate <tag>book</tag> appendixes from <tag>article</tag> appendixes (so that they can be customized independently)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: graphics.xsl</literal></para><screen><phrase role="commit-message">Added condition to prevent "Failed to interpret image" messages (SVG is not supported 
+by the graphic size extension).</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for snapshot_-->
+
+
+<sect2 xml:id="rnV1.77_Epub">
+<title>Epub</title>
+<para>The following changes have been made to the
+            <filename>epub</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Replace $base.dir with $chunk.base.dir to ensure trailing slash in place.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Epub changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_HTMLHelp">
+<title>HTMLHelp</title>
+<para>The following changes have been made to the
+            <filename>htmlhelp</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: htmlhelp-common.xsl</literal></para><screen><phrase role="commit-message">Change $base.dir to $chunk.base.dir to ensure trailing slash in place.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTMLHelp changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Eclipse">
+<title>Eclipse</title>
+<para>The following changes have been made to the
+            <filename>eclipse</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: eclipse.xsl; eclipse3.xsl</literal></para><screen><phrase role="commit-message">Use $chunk.base.dir instead of $base.dir to ensure trailing slash is in place.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Eclipse changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_">
+<title>JavaHelp</title>
+<para>The following changes have been made to the
+            <filename>javahelp</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: javahelp.xsl</literal></para><screen><phrase role="commit-message">Change $base.dir to $chunk.base.dir to ensure trailing slash is present.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: javahelp.xsl</literal></para><screen><phrase role="commit-message">Replaced empty header.navigation and footer.navigation templates with parameter <parameter>suppress.navigation</parameter>=1,
+which simplifies customization. See bug #3310904.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of JavaHelp changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Webhelp">
+<title>Webhelp</title>
+<para>The following changes have been made to the
+            <filename>webhelp</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>David Cramer: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Webhelp: Adding print-only css rules</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/main.js</literal></para><screen><phrase role="commit-message">Webhelp: Arun's fix for bug where heading was partially hidden by header in some situations.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">Webhelp: turn off autolabeling by default</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Webhelp: Import xhtml base stylesheets</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Webhelp: <tag>Link</tag> to the DocBook <tag>reference</tag> docs from the webhelp readme</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">Webhelp: Use gentext value for noscript warning</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: Makefile</literal></para><screen><phrase role="commit-message">Webhelp: Delete tempfile after DocBook xsl build</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Webhelp: moving parameters into the standard location so they will be part of the parameter <tag>reference</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">Webhelp: moving parameters into the standard location so they will be part of the parameter <tag>reference</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/main.js</literal></para><screen><phrase role="commit-message">Webhelp: tweaking scrolldown offset for anchors</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/images; docsrc/images/sample.jpg; docsrc/readme.xml; template/content⋯</literal></para><screen><phrase role="commit-message">Webhelp: updating docs. Ant version, install instructions, handling of images.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Patch from Arun Bharadwaj to display message if JavaScript is disabled</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">Patch from Arun Bharadwaj to strip quotes from search query strings</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Add basic support for new &lt;topic&gt; element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Put back old extensibility point.
+
+Guys, please don't remove existing extensibility points like named templates, it will break existing customizations.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Moving webhelp gentext strings into a context</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>tom_schr: param.ent</literal></para><screen><phrase role="commit-message">Disabled branding and brandname entities for the time being</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>tom_schr: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Prepared WebHelp <tag>reference</tag> documentation :)
+Not clear about parameters brandname and branding: Should they renamed
+to "webhelp.branding" and "webhelp.brandname"?
+Currently, docsrc/reference.xml contains only a comment for the WebHelp
+ref doc to be non-intrusive.
+Idea is to enable it when it is ready</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>tom_schr: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Moved language specific of WebHelp to gentext/locale/ as discussed with
+Stefan following the "minimal intrusive approach". :)
+In the long run, maybe moving the text into a context, not sure.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Webhelp: Lower the minimum width of content pane</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/main.js</literal></para><screen><phrase role="commit-message">If an user moved to another page by clicking on a <tag>toc</tag> <tag>link</tag>, and then clicked on #searchDiv,
+search should be performed if the cookie textToSearch is not empty.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Webhelp: Left align titles in nav header. Display  for all but the topmost page</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/stemmers/en_stemmer.js; docsrc/xinclude-test.xml</literal></para><screen><phrase role="commit-message">Webhelp: Cleanup related to en_stemmer.js changes</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Webhelp: Don't put borders around <tag>qandaset</tag> list</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/main.js</literal></para><screen><phrase role="commit-message">Webhelp: Avoid unnecessary scroll ups when <tag>anchor</tag> is clicked on</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: build.properties</literal></para><screen><phrase role="commit-message">Webhelp: Show footer nav by default</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: build.properties; build.xml</literal></para><screen><phrase role="commit-message">Webhelp: Support setting <parameter>suppress.footer.navigation</parameter> from build.properties</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: build.properties; build.xml</literal></para><screen><phrase role="commit-message">Webhelp: Support <parameter>admon.graphics</parameter> param in build.properties</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/xinclude-test.xml; docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Webhelp: Adding xinclude example to the demo/readme doc</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Webhelp: Remove border around <tag>table</tag> used to format <tag>callout</tag> list</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; template/common/images/admon/tip.png; template/common/image⋯</literal></para><screen><phrase role="commit-message">Webhelp: Support admon graphics (still off by default)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Webhelp: Turn on navfooter and fix related css</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Webhelp: Fix error about undeclared doc.title param</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Webhelp: Adding some test search terms to the readme</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/stemmers/en_stemmer.js</literal></para><screen><phrase role="commit-message">Handle exceptional cases listed in the Porter 2 stemming algo</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/stemmers/en_stemmer.js</literal></para><screen><phrase role="commit-message">Webhelp: adding special case word 'say' to en js stemmer</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/stemmers/en_stemmer.js</literal></para><screen><phrase role="commit-message">Webhelp: Refine stemming of terms that end in (only stem if there's a consonant before the -y)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/stemmers/en_stemmer.js; template/content/search/nwSe⋯</literal></para><screen><phrase role="commit-message">Webhelp: fixed bug where words like key, day, and nucleus, were not found due to differences in the way the client stemmer and indexer stemmed words</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: build.xml</literal></para><screen><phrase role="commit-message">Webhelp: Support xinclude and two-pass profiling in build.xml</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Fix bad <tag>link</tag> to default topic.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Automatically limit the size of the search description to something 140 characters</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">removing outline in 'contents' and 'search' buttons that is visible when clicked. tabindex for <tag>SIDEBAR</tag> button.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; build.xml</literal></para><screen><phrase role="commit-message">Webhelp ant script changes - HTML transformation support for WebHelp - Uses Tagsoup for parsing the bad html.
+tagsoup-1.2.1.jar is added to trunk/xsl-webhelpindexer/lib/</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">proper support for saxon xhtml transformation.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/images/callouts/10.png; template/common/images/callouts/11.png; t⋯</literal></para><screen><phrase role="commit-message">webhelp - adding callouts</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/main.js; template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">webhelp - animations for show/hide <tag>Sidebar</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: build.properties</literal></para><screen><phrase role="commit-message">commenting about brand and brandname</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: Makefile</literal></para><screen><phrase role="commit-message">parameterized MAKE for webhelp</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css; build.properties; build.xml</literal></para><screen><phrase role="commit-message">webhelp xsl customization - logo</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">remove some JS warninings</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">Fix for missing "No results found for..." bug</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">commented about the importance of the order of css contents. Order is <tag>important</tag> between the in-html-file css and the linked css files. Some css declarations in jquery-ui-1.8.2.custom.css are over-ridden. If that's a concern, just remove the additional css contents inside these default jquery css files. I thought of keeping them intact for easier maintenance.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: xsl/webhelp.xsl; template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Minor cleanup, added extensibility hook, some styling moved into CSS for easier customization</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">Removing onclick that came from Oxygen's dita stuff</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">webhelp - documenting about features</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">webhelp search text box</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">adding header background image</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/images/header-bg.png</literal></para><screen><phrase role="commit-message">new header background image</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">fix left navigation</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">some css</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: build.xml</literal></para><screen><phrase role="commit-message">Adding html.extension property</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css; build.properties; build.xml</literal></para><screen><phrase role="commit-message">webhelp - Adding enable.stemming, toc.file build properties</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Make the webhelp banner slightly larger.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/main.js; template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Adjust colors and positioning of header and search/<tag>toc</tag> tabs</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Only put doc <tag>title</tag> in header</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/css/positioning.css; template/common/images/main_bg_fade.png</literal></para><screen><phrase role="commit-message">Adjusting default color of the header</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">adjustments to header <tag>title</tag>. Now output in Opera looks good.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/images/sidebar.png; template/content/search/punctuation.props; te⋯</literal></para><screen><phrase role="commit-message">deleting svn:executable flag from webhelp files</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl; template/common/css/positioning.css; template/common/images/sear⋯</literal></para><screen><phrase role="commit-message">Customized the left navagation headers; Contents and Search.
+Adding custom css for the current redmond ui of jquery-ui. These override jquery-ui's default css customizations. These are supposed to take precedence.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">typo fix</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/images/next-arrow.png; xsl/webhelp.xsl; template/common/main.js; ⋯</literal></para><screen><phrase role="commit-message">UI improvements. 
+	Moved search highligher to search tab.
+	Added nice icons for navigation buttons etc.
+	Removed footer navigation
+	Corrected tree colorings
+	Overall, some css magic</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Added <tag>listitem</tag> thinking SyncRO Soft for their contributions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: build.xml</literal></para><screen><phrase role="commit-message">support for default classpath for Gentoo Linux</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">webhelp - some updates to the documentation about search</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css</literal></para><screen><phrase role="commit-message">Fix for issue 'Keep "search" &amp; "contents" titles always visible in webhelp - ID: 3403438'</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/images/starsSmall.png</literal></para><screen><phrase role="commit-message">Changed icons used to show search weightings from stars to boxes so they won't look like user ratings</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; template/common/main.js; template/common/images/starsSmall.⋯</literal></para><screen><phrase role="commit-message">Merged Oxygen webhelp improvements (search weightings etc) into trunk: -r9031:9039</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">webhelp documentation - search indexing, faq</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">update webhelp documentation</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Fixed bug where <parameter>webhelp.default.topic</parameter> was not being used if it was set</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">Localize string in nwSearchFnt.js file</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Added tabindex attributes to make tab order in UI more logical in webhelp.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/main.js</literal></para><screen><phrase role="commit-message">Fixed bug where anchors in pages landed beneath the banner.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Added more comments to the xsl/webhelp/xsl/webhelp.xsl file. Removed some clutter.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: template/common/main.js</literal></para><screen><phrase role="commit-message">Fixed problem reported in IE 8. See tracker id # 373747.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Addressed tracker #3247166 by removing hard-coded <tag>reference</tag> to ch01.html.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: build.xml</literal></para><screen><phrase role="commit-message">Changed the webhelp build.xml to reflect the changes to xsl-webhelpindexer.
+Added classpaths for xercesImpl and xml-api jars to the indexer. Paths added for *nix environments, need to look at how the current system behaves in Windows. Discussion: http://lists.oasis-open.org/archives/docbook-apps/201011/msg00116.html</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/images/loading.gif; template/common/jquery/treeview/jquery.treevi⋯</literal></para><screen><phrase role="commit-message">webhelp: Removing some unnecessary JQuery JS files</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/main.js</literal></para><screen><phrase role="commit-message">webhelp: Usability improvement - when click on a node in the <tag>TOC</tag> tree, the child nodes will auto populate now.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Added google translated localizations for Japanese, German, French, and Chinese. The translations might not be pretty accurate. 
+Better translations are appreciated.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml; template/content/images; template/content/images/sample.jpg</literal></para><screen><phrase role="commit-message">Added documentation for how to add images to WebHelp</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Added more customization hooks
+Search code output only when search tab is active
+Added cs localization</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: xsl/webhelp.xsl</literal></para><screen><phrase role="commit-message">Added parameter <parameter>webhelp.common.dir</parameter> for specifying location of common files (JS+CSS)
+Added hooks for adding additional user defined tabs</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Webhelp changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>David Cramer: webhelp.indexer.language.xml</literal></para><screen><phrase role="commit-message">Webhelp: Fixing list of supported languages</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: webhelp.indexer.language.xml</literal></para><screen><phrase role="commit-message">Webhelp: Correct language code in docs for Chinese</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: admon.graphics.extension.xml</literal></para><screen><phrase role="commit-message">Added list of graphics formats.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: passivetex.extensions.xml</literal></para><screen><phrase role="commit-message">Updated <tag>link</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>tom_schr: webhelp.indexer.language.xml; webhelp.default.topic.xml; webhelp.tree.cookie.id.⋯</literal></para><screen><phrase role="commit-message">Prepared WebHelp <tag>reference</tag> documentation :)
+Not clear about parameters brandname and branding: Should they renamed
+to "webhelp.branding" and "webhelp.brandname"?
+Currently, docsrc/reference.xml contains only a comment for the WebHelp
+ref doc to be non-intrusive.
+Idea is to enable it when it is ready</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossary.collection.xml</literal></para><screen><phrase role="commit-message">Add <tag>info</tag> about relative paths.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: para.properties.xml</literal></para><screen><phrase role="commit-message">Special attribute-set for <tag>para</tag> only.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.caption.properties.xml</literal></para><screen><phrase role="commit-message">To format <tag>table</tag> captions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: html.script.type.xml; html.script.xml</literal></para><screen><phrase role="commit-message">Add support for specifying javascript references like css references.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: body.margin.outer.xml; region.outer.extent.xml; body.margin.inner.xml; reg⋯</literal></para><screen><phrase role="commit-message">Add support for side regions in FO output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunked.filename.prefix.xml</literal></para><screen><phrase role="commit-message">New param <parameter>chunked.filename.prefix</parameter> to separate any such prefix from
+the <parameter>base.dir</parameter> param, which helps fix bug 3087359.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: generate.consistent.ids.xml</literal></para><screen><phrase role="commit-message">New param to support replacing generate-id() with xsl:number
+for more consistent id values.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: task.properties.xml</literal></para><screen><phrase role="commit-message">Allow <tag>task</tag> to be customized more easily.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: calloutlist.properties.xml; callout.properties.xml</literal></para><screen><phrase role="commit-message">Support better customization of <tag>callout</tag> lists.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: callout.unicode.start.character.xml</literal></para><screen><phrase role="commit-message">Added support for alternative circled numbers</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: example.properties.xml</literal></para><screen><phrase role="commit-message">Made <parameter>example.properties</parameter> use keep-together='auto' like table.properies to avoid problems where example/<tag>programlisting</tag> takes more than one page</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: graphicsize.extension.xml</literal></para><screen><phrase role="commit-message">Added <tag>info</tag> about supported image formats.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Highlighting">
+<title>Highlighting</title>
+<para>The following changes have been made to the
+            <filename>highlighting</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: csharp-hl.xml</literal></para><screen><phrase role="commit-message">Added LINQ keywords</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: delphi-hl.xml</literal></para><screen><phrase role="commit-message">Additional keywords from Yuri Zhilin</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Highlighting changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Profiling">
+<title>Profiling</title>
+<para>The following changes have been made to the
+            <filename>profiling</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>David Cramer: profile-mode.xsl</literal></para><screen><phrase role="commit-message">When profile.* params only consist of space characters, then ignore them.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Profiling changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Lib">
+<title>Lib</title>
+<para>The following changes have been made to the
+            <filename>lib</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: lib.xweb</literal></para><screen><phrase role="commit-message">Added two utility templates to make lib.xsl work
+without <tag>reference</tag> to other modules since it is used
+that way with profiling/xsl2profile.xsl.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lib.xweb</literal></para><screen><phrase role="commit-message">Fix trim.common.uri.paths to first resolve any ../ in
+the paths.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Lib changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Template">
+<title>Template</title>
+<para>The following changes have been made to the
+            <filename>template</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: titlepage.xsl</literal></para><screen><phrase role="commit-message">Titlepage mechanism is now namespace aware to support XHTML. Please note that when generating titlepage template stylesheets you have to pass FO or XHTML namespace inside ns parameter. For HTML parameter should be empty.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Template changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_Extensions">
+<title>Extensions</title>
+<para>The following changes have been made to the
+            <filename>extensions</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>kasunbg: Makefile</literal></para><screen><phrase role="commit-message">webhelp - Adding enable.stemming, toc.file build properties</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: Makefile</literal></para><screen><phrase role="commit-message">Attempt to convince Makefile that webhelpindexer is dirty</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Extensions changes for snapshot_-->
+
+<sect2 xml:id="rnV1.77_XSL-Saxon">
+<title>XSL-Saxon</title>
+<para>The following changes have been made to the
+            <filename>xsl-saxon</filename> code
+            since the 1.76.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: src/com/nwalsh/saxon/Verbatim.java; src/com/nwalsh/saxon/FormatGraphicCal⋯</literal></para><screen><phrase role="commit-message">Added fixes to ensure that generated XHTML markup for callouts is in the proper namespace.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Saxon changes for snapshot_-->
+
+</sect1>
+<sect1 xml:id="V1.77.1">
+<title>Release Notes: 1.77.1</title>
+<para>The following is a list of changes that have been made
+        since the 1.77.0 release.</para>
+
+<sect2 xml:id="Vsnapshot_9396_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: block.xsl</literal></para><screen><phrase role="commit-message">In <tag>sidebar</tag>, turn off space before first <tag>para</tag> if there is no <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: math.xsl</literal></para><screen><phrase role="commit-message">Restored templates for mml:* elements that were accidentally deleted.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for snapshot_9396-->
+
+<sect2 xml:id="Vsnapshot_9396_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: sections.xsl</literal></para><screen><phrase role="commit-message">Use $div.element variable in place of div to support html5 <tag>section</tag> element.
+output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autoidx.xsl</literal></para><screen><phrase role="commit-message">Fix bug 3528673, missing "separator" param on template with
+match="<tag>indexterm</tag>" mode="<tag>reference</tag>".  That param is passed 
+for endofrange processing to output the range separator.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for snapshot_9396-->
+
+<sect2 xml:id="Vsnapshot_9396_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: dbk2ooo.xsl; dbk2pages.xsl; dbk2wordml.xsl; dbk2wp.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Roundtrip changes for snapshot_9396-->
+
+<sect2 xml:id="Vsnapshot_9396_Slides">
+<title>Slides</title>
+<para>The following changes have been made to the
+            <filename>slides</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: html/slides-common.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Slides changes for snapshot_9396-->
+
+<sect2 xml:id="Vsnapshot_9396_Website">
+<title>Website</title>
+<para>The following changes have been made to the
+            <filename>website</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: website-common.xsl</literal></para><screen><phrase role="commit-message">Import the VERSION.xsl file instead of VERSION so mimetype is interpreted correctly
+from the <tag>filename</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Website changes for snapshot_9396-->
+
+<sect2 xml:id="Vsnapshot_9396_Webhelp">
+<title>Webhelp</title>
+<para>The following changes have been made to the
+            <filename>webhelp</filename> code
+            since the 1.77.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>kasunbg: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">updated webhelp documentation</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/content/search/nwSearchFnt.js; xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">Removed the script htmlFileList.js since it's content is in htmlFileInfoList.js</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xsl/webhelp-common.xsl</literal></para><screen><phrase role="commit-message">In the &lt;h1&gt; output, replace call to 'get.doc.title' with
+mode="title.markup" because get.doc.title returns only
+the string value of the <tag>title</tag>, losing any markup such
+as &lt;<tag>trademark</tag>&gt; or &lt;<tag>superscript</tag>&gt;.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>kasunbg: template/common/css/positioning.css; template/content/search/nwSearchFnt.js</literal></para><screen><phrase role="commit-message">Remove unnecessary bits of code from webhelp</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: docsrc/readme.xml</literal></para><screen><phrase role="commit-message">Webhelp: Minor edits to the readme</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xsl/webhelp.xsl; xsl/titlepage.templates.xsl; xsl/titlepage.templates.xml</literal></para><screen><phrase role="commit-message">Webhelp: Suppress abstracts from titlepages. These are used to create the search result summary sentence and should not be shown</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: build.xml</literal></para><screen><phrase role="commit-message">Webhelp: calculate path to profile.xsl from main build.xml file</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Webhelp changes for snapshot_9396-->
+
+</sect1>
+<sect1 xml:id="V1.76.1">
+<title>Release Notes: 1.76.1</title>
+<para>The following is a list of changes that have been made
+        since the 1.76.0 release.</para>
+
+<sect2 xml:id="rnV1.76.1_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.76.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl; xref.xsl; fop1.xsl</literal></para><screen><phrase role="commit-message">Apply patch to support named destination in fop1.xsl, per Sourceforge
+bug report #3029845.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.76.1-->
+
+<sect2 xml:id="rnV1.76.1_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the <filename>html</filename> code since the 1.76.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: highlight.xsl</literal></para><screen><phrase role="commit-message">Implementing handling for &lt;b&gt; and &lt;i&gt;: transform to &lt;strong&gt; and &lt;em&gt; for XHTML outputs and do not use in the highliting output (per Mauritz Jeanson)</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.76.1-->
+
+<sect2 xml:id="rnV1.76.1_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.76.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: draft.mode.xml</literal></para><screen><phrase role="commit-message">Change default for <parameter>draft.mode</parameter> to 'no'.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.76.1-->
+
+
+</sect1>
+  <sect1 xml:id="V1.76.0">
+    <title>Release Notes: 1.76.0</title>
+<para>This release includes important bug fixes and adds the following
+significant feature changes:</para>
+<variablelist>
+<varlistentry>
+<term>Webhelp</term>
+<listitem><para>A new browser-based, cross-platform help format with full-text search and other features typically found in help systems. See <filename>webhelp/docs/content/ch01.html</filename> for more information and a demo. </para></listitem>
+
+</varlistentry>
+
+<varlistentry>
+<term>Gentext</term>
+<listitem><para>Many updates and additions to translation/locales thanks to Red Hat, the Fedora Project, and other contributors.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>Common</term>
+<listitem><para>Faster localization support, as language files are loaded on demand.</para></listitem>
+
+</varlistentry>
+            <varlistentry>
+            <term>FO</term>
+            <listitem><para>Support for SVG content in <tag>imagedata</tag> added.</para></listitem>
+</varlistentry>
+            <varlistentry>
+            <term>HTML</term>
+            <listitem><para>Output improved when using '<parameter>make.clean.html</parameter>' and a stock CSS file is now provided.</para></listitem> 
+</varlistentry>
+<varlistentry>
+<term>EPUB</term>
+<listitem><para>A number of improvements to NCX, cover and image selection, and XHTML 1.1 element choices</para></listitem>
+</varlistentry>
+
+</variablelist>
+
+    <para>The following is a list of changes that have been made since the 1.75.2 release.</para>
+    <sect2 xml:id="rnV1.76.0_Gentext">
+      <title>Gentext</title>
+      <para>The following changes have been made to the <filename>gentext</filename> code since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/fa.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Update to Persian translation from the Fedora Project</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/nds.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Locale for Low German</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: locale/ka.xml; Makefile</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added support for Georgian based on patch #2917147.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/nl.xml; locale/ja.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Updated translations from Red Hat and the Fedora Project</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/bs.xml; locale/ru.xml; locale/hr.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Updated locales from Red Hat and the Fedora Project</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/pt.xml; locale/cs.xml; locale/es.xml; locale/bg.xml; locale/nl.xml; loca⋯</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Updated translations from Red Hat and the Fedora Project</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/as.xml; locale/bn_IN.xml; locale/ast.xml; locale/ml.xml; locale/te.xml; ⋯</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">New translations from Red Hat and the Fedora Project</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>rlandmann: locale/pt.xml; locale/ca.xml; locale/da.xml; locale/sr.xml; locale/ru.xml; loca⋯</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Updated translations from Red Hat and the Fedora Project</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of Gentext changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_Common">
+      <title>Common</title>
+      <para>The following changes have been made to the <filename>common</filename> code since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: common.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fixed bug in output-orderedlist-starting-number template (@startingnumber did not work for FO).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: gentext.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added fix to catch ID also of descendants of <tag>listitem</tag>. Closes bug #2955077.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: l10n.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Stripped down, faster version of gentext.template is used when there is no localization customization.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: stripns.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added fix that preserves <tag>link</tag>/@role (makes links in the <tag>reference</tag> documentation
+with @role="tcg" work).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: l10n.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fixed bugs related to manpages and L10n.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: entities.ent; autoidx-kosek.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: l10n.xsl; l10n.dtd; l10n.xml; autoidx-kosek.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Refactored localization support. Language files are loaded on demand. Speedup is about 30%.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: l10n.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added xsl:keys for improved performance of localization texts look up. Performance gain around 15%.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: titles.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fixed bug #2912677 (error with <tag>xref</tag> in <tag>title</tag>).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: olink.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug in xrefstyle "<tag>title</tag>" handling introduced with 
+the 'insert.targetdb.data' template.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: gentext.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug in <tag>xref</tag> to <tag>equation</tag> without <tag>title</tag> to use context="xref-number" instead
+of "xref-number-and-title".</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: labels.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Number all equations in one sequence, with or without <tag>title</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: entities.ent</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug #2896909 where duplicate @sortas on indexterms caused 
+some indexterms to drop out of <tag>index</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: stripns.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Expand the "Stripping namespace ..." message to advise users to
+use the namespaced stylesheets.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: stripns.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">need a local version of $exsl.node.set.available variable because
+this module imported many places.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: olink.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added /node() to the select expression that is used to compute the <tag>title</tag> text
+so that no &lt;ttl&gt; elements end up in the output. Closes bug #2830119.</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of Common changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_FO">
+      <title>FO</title>
+      <para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: table.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2979166 able - Attribute @rowheader not working</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: inline.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Improved <tag>glossterm</tag> auto-linking by using keys. The old code was inefficient when processing documents
+with many inline glossterms.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: titlepage.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2805530 <tag>author</tag>/<tag>orgname</tag> not appearing on <tag>title</tag> page.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: graphics.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added support for SVG content in <tag>imagedata</tag> (inspired by patch #2909154).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: table.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Removed superfluous test used when computing column-width. Closes bug #3000898.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: inline.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added missing &lt;xsl:call-template name="<tag>anchor</tag>"/&gt;. Closes bug #2998567.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: lists.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added table-layout="fixed" on <tag>segmentedlist</tag> <tag>table</tag> (required by XSL spec when  proportional-column-width() is used).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: autoidx-kosek.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: index.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: xref.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug in <tag>olink</tag> template when an <tag>olink</tag> has an id.
+Add warning message with id value when trying to <tag>link</tag>
+to an element that has no generated text.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: refentry.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fixed bug #2930968 (<tag>indexterm</tag> in <tag>refmeta</tag> not handled correctly).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: block.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">fix bug 2949567 <tag>title</tag> in <tag>revhistory</tag> breaks FO transform.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: glossary.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Output id attributes on <tag>glossdiv</tag> blocks so they can be added to
+xrefs or <tag>TOC</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: xref.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Enabled hyphenation of URLs when ulink content is the same as <tag>link</tag> target</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: table.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Apply patch to turn off <tag>row</tag> recursion if no @morerows attributes present.
+This will enable very large tables without <tag>row</tag> spanning to 
+process without running into recursion limits.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: formal.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Format <tag>equation</tag> without <tag>title</tag> using <tag>table</tag> layout with <tag>equation</tag> number
+next to the <tag>equation</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: param.xweb; param.ent</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Add <parameter>equation.number.properties</parameter>.</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of FO changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_HTML">
+      <title>HTML</title>
+      <para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: block.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Modified <tag>acknowledgements</tag> template to avoid invalid output (&lt;p&gt; in &lt;p&gt;).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: titlepage.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added default <tag>sidebar</tag> attribute-sets.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: table.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2979166 able - Attribute @rowheader not working</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: footnote.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 3033191 footnotes in html tables.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: inline.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Improved <tag>glossterm</tag> auto-linking by using keys. The old code was inefficient when processing documents
+with many inline glossterms.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: docbook.css.xml; verbatim.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2844927 Validity error for <tag>callout</tag> bugs.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: formal.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Convert formal.object.heading to respect <parameter>make.clean.html</parameter> param.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: titlepage.templates.xml; block.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2840768 <tag>sidebar</tag> without <tag>title</tag> inserts empty b <tag>tag</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Moved the template that outputs &lt;base&gt; so that the base URI also applies to relative CSS paths that come later.
+See patch #2896121.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: autoidx-kosek.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Upgraded to use common entities. Fixed bug when some code used @sortas and some not for grouping/sorting of indexterms.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: chunk-code.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">fix bug 2948363 generated <tag>filename</tag> for <tag>refentry</tag> not unique, when
+used in a set.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: component.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix missing "<tag>Chapter</tag> n" <tag>label</tag> when use <tag>chapter</tag>/<tag>info</tag>/<tag>title</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: table.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message"><tag>Row</tag> recursion turned off if no @morerows attributes in the <tag>table</tag>.
+This will prevent failure on long <tag>table</tag> (with no @morerows) due
+to excessive depth of recursion.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: autotoc.xsl; docbook.css.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Support <parameter>make.clean.html</parameter> in autotoc.xsl.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: docbook.css.xml; block.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Add support for <parameter>make.clean.html</parameter> setting in block elements.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: docbook.css.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Stock CSS styles for DocBook HTML output when '<parameter>make.clean.html</parameter>' is non-zero.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: html.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Add templates for generating CSS files and links to them.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: param.xweb</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bugs in new entity references.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: chunk-common.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">List of Equations now includes on equations with titles.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: table.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">If a <tag>colspec</tag> has a colname attribute, add it to the HTML <tag>col</tag>
+element as a class attribute so it can be styled.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: formal.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2825842 where <tag>table</tag> footnotes not appearing in HTML-coded <tag>table</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: chunktoc.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug #2834826 where <tag>appendix</tag> inside part was not chunked as it should be.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: chunktoc.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added missing namespace declarations. Closes bug #2890069.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: footnote.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Updated the template for <tag>footnote</tag> paras to use the 'paragraph' template. Closes bug #2803739.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: inline.xsl; lists.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Remove &lt;b&gt; and &lt;i&gt; elements "discouraged in favor of style sheets" from
+XHTML, XHTML 1.1 (and therefore EPUB) outputs by changing html2xhtml.xsl.
+
+Fixes bug #2873153: No &lt;b&gt; and &lt;i&gt; tags in XHTML/EPUB
+
+Added regression to EPUB specs:</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: inline.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fixed bug #2844916 (don't output @target if <parameter>ulink.target</parameter> is empty).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: autoidx.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix a bug when using <parameter>index.on.type</parameter>: an '<tag>index</tag> symbols' <tag>section</tag> was created 
+even if that typed <tag>index</tag> didn't include any symbols (they were in the other types).</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of HTML changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_Manpages">
+      <title>Manpages</title>
+      <para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: other.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Modified the write.stubs template so that the <tag>section</tag> directory name is not output twice. Should fix bug #2831602.
+Also ensured that $lang is added to the .so path (when <parameter>man.output.lang.in.name.enabled</parameter>=1).</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: docbook.xsl; other.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fixed bug #2412738 (apostrophe escaping) by applying the submitted patch.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Norman Walsh: block.xsl; endnotes.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug where <tag>simpara</tag> in <tag>footnote</tag> didn't work. Patch by Jonathan Nieder, jrnieder@gmail.com</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>dleidert: lists.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix two indentation issues: In the first case there is no corresponding .RS
+macro (Debian #519438, sf.net 2793873). In the second case an .RS instead of
+the probably intended .sp leads to an indentation bug (Debian #527309,
+sf.net #2642139).</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of Manpages changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_Epub">
+      <title>Epub</title>
+      <para>The following changes have been made to the
+            <filename>epub</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/spec/examples/AMasqueOfDays.epub; docbook.xsl; bin/spec/epub_spec.rb</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Resolve some actual regressions in <tag>date</tag> output spotted by more recent versions of epubcheck</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Updated <tag>mediaobject</tag> selection code that better uses roles (when available); based on contributons by  Glenn McDonald</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Ensure that NCX documents are always outputted with a default namespace
+to prevent problems with the kindlegen machinery</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/partintro.xml; docbook.x⋯</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Adding support for partintros with sect2s, 3s, etc</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Adding param to workaround horrific ADE bug with the inability to process &lt;br&gt;</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Add support for <tag>authorgroup</tag>/<tag>author</tag> in OPF metadata (via Michael Wiedmann)</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Remove &lt;b&gt; and &lt;i&gt; elements "discouraged in favor of style sheets" from
+XHTML, XHTML 1.1 (and therefore EPUB) outputs by changing html2xhtml.xsl.
+
+Fixes bug #2873153: No &lt;b&gt; and &lt;i&gt; tags in XHTML/EPUB
+
+Added regression to EPUB specs:</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/lib/docbook.rb; bin/spec/files/DejaVuSerif-Italic.otf; docbook.xsl; bi⋯</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">This resolves bug #2873142, Please add support for multiple embedded fonts
+
+
+If you navigate to a checkout of DocBook-XSL and go to:
+xsl/epub/bin/spec/files
+You can now run the following <tag>command</tag>:
+
+../../dbtoepub -f DejaVuSerif.otf -f DejaVuSerif-Italic.otf -c test.css
+-s test_cust.xsl orm.book.001.xml
+
+In dbtoepub, the following option can be used more than once:
+-f, --font [OTF FILE] Embed OTF FILE in .epub.
+
+The underlying stylesheet now accepts a comma-separated list of font file
+names rather than just one as the RENAMED epub.embedded.fonts ('s' added).
+
+The runnable EPUB spec now includes:
+- should be valid .epub after including more than one embedded font</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Improve the selection of <tag>cover</tag> images when working in DocBook 4.x land (work in progress)</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Improve the quality of the OPF spine regression by ensuring that the spine
+elements for deeply nested refentries are in order and adjacent to their
+opening wrapper XHTML chunk.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl; bin/spec/files/orm.book.00⋯</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Add more careful handling of refentries to ensure that they always appear in the opf:spine.
+This was only a problem when refentries were pushed deep into the hierarchy (like inside
+a <tag>sect2</tag>), but presented navigational problems for many reading systems (despite the
+correct NCX references). This may *not* be the best solution, but attacking a better
+chunking strategy for refentries was too big a nut to crack at this time.</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of Epub changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_Eclipse">
+      <title>Eclipse</title>
+      <para>The following changes have been made to the
+            <filename>eclipse</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: eclipse3.xsl</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added a stylesheet module that generates plug-ins conforming to the standard (OSGi-based) Eclipse 3.x 
+architecture. The main difference to the older format is that metadata is stored in a separate 
+<parameter>manifest</parameter> file. The module imports and extends the existing eclipse.xsl module. Based on code 
+contributed in patch #2624668.</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of Eclipse changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_Params">
+      <title>Params</title>
+      <para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: draft.watermark.image.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Fix bug 2922488 <parameter>draft.watermark.image</parameter> pointing to web resource.
+Now the value is images/draft.png, and may require customization
+for local resolution.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Mauritz Jeanson: equation.number.properties.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Corrected <tag>refpurpose</tag>.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Norman Walsh: paper.type.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added USlegal and USlegallandscape paper types.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Jirka Kosek: highlight.xslthl.config.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Added note about specifying location as URL</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: docbook.css.source.xml; generate.css.header.xml; custom.css.source.xml; ma⋯</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Params to support generated CSS files.</phrase>
+          </screen>
+        </listitem>
+        <listitem>
+          <para>
+            <literal>Robert Stayton: equation.number.properties.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">New attribute set for numbers appearing next to equations.</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of Params changes for 1.76.0-->
+    <sect2 xml:id="rnV1.76.0_XSL-Xalan">
+      <title>XSL-Xalan</title>
+      <para>The following changes have been made to the
+            <filename>xsl-xalan</filename> code
+            since the 1.75.2 release.</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <literal>dleidert: nbproject/genfiles.properties; nbproject/build-impl.xml</literal>
+          </para>
+          <screen>
+            <phrase role="commit-message">Rebuild netbeans build files after adding missing Netbeans configuration to allow easier packaging for Debian.</phrase>
+          </screen>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <!--end of XSL-Xalan changes for 1.76.0-->
+  </sect1>
+<sect1 xml:id="rn_V1.75.2">
+<title>Release Notes: 1.75.2</title>
+<para>The following is a list of changes that have been made
+        since the 1.75.1 release.</para>
+
+<sect2 xml:id="rn_V1.75.2_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the
+            <filename>gentext</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>dleidert: locale/ja.xml</literal></para><screen><phrase role="commit-message">Improved Japanese translation for Note(s). Closes bug #2823965.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>dleidert: locale/pl.xml</literal></para><screen><phrase role="commit-message">Polish alphabet contains O with acute accent, not with grave accent. Closes bug #2823964.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/ja.xml</literal></para><screen><phrase role="commit-message">Fix translation of "<tag>index</tag>", per bug report 2796064.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/is.xml</literal></para><screen><phrase role="commit-message">New Icelandic locale file.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Norman Walsh: stripns.xsl</literal></para><screen><phrase role="commit-message">Support more downconvert cases</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titles.xsl</literal></para><screen><phrase role="commit-message">Make sure <tag>title</tag> inside <tag>info</tag> is used if no other <tag>title</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: pi.xsl</literal></para><screen><phrase role="commit-message">Turn off dbfo-need for <parameter>fop1.extensions</parameter> also, per bug #2816141.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Output "<tag>Copyright</tag>" heading in XHTML too.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Added stylesheet.result.type test for <tag>copyright</tag>. Closes bug #2813289.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Norman Walsh: htmltbl.xsl</literal></para><screen><phrase role="commit-message">Remove ambiguity wrt @span, @rowspan, and @colspan</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: endnotes.xsl</literal></para><screen><phrase role="commit-message">Added normalize-space() for ulink content. Closes bug #2793877.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: docbook.xsl</literal></para><screen><phrase role="commit-message">Added stylesheet.result.type test for <tag>copyright</tag>. Closes bug #2813289.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_Epub">
+<title>Epub</title>
+<para>The following changes have been made to the
+            <filename>epub</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: bin/dbtoepub; bin/lib/docbook.rb</literal></para><screen><phrase role="commit-message">Corrected bugs caused by path and file assumptions were not met</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/lib/docbook.rb; docbook.xsl</literal></para><screen><phrase role="commit-message">Cleaning up hardcoded values into parameters and fixing Ruby library to pass them properly; all thanks to patch from Liza Daly</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Epub changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_Profiling">
+<title>Profiling</title>
+<para>The following changes have been made to the
+            <filename>profiling</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: profile.xsl</literal></para><screen><phrase role="commit-message">Fix bug 2815493 missing <parameter>exsl.node.set.available</parameter> parameter.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Profiling changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_XSL-Saxon">
+<title>XSL-Saxon</title>
+<para>The following changes have been made to the
+            <filename>xsl-saxon</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: src/com/nwalsh/saxon/ColumnUpdateEmitter.java; src/com/nwalsh/saxon/Colum⋯</literal></para><screen><phrase role="commit-message">Added fixes so that colgroups in the XHTML namespace are processed properly.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Saxon changes for 1.75.2-->
+
+<sect2 xml:id="rn_V1.75.2_XSL-Xalan">
+<title>XSL-Xalan</title>
+<para>The following changes have been made to the
+            <filename>xsl-xalan</filename> code
+            since the 1.75.1 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: nbproject/project.xml</literal></para><screen><phrase role="commit-message">Added missing NetBeans configuration.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Xalan changes for 1.75.2-->
+
+</sect1>
+
+
+<sect1 xml:id="rn_V1.75.1">
+<title>Release Notes: 1.75.1</title>
+<para>This release includes bug fixes.</para>
+
+<para>The following is a list of changes that have been made since the 1.75.0 release.</para>
+
+
+<sect2 xml:id="rn_V1.75.1_FO">
+<title>FO</title>
+<para>The following changes have been made to the <filename>fo</filename> code since the 1.75.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: block.xsl</literal></para><screen><phrase role="commit-message">Switching to em dash for character before <tag>attribution</tag> in <tag>epigraph</tag>; resolves Bug #2793878</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Fixed bug 2789947, id attribute missing on <tag>simplelist</tag> fo output.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.75.1-->
+
+<sect2 xml:id="rn_V1.75.1_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.75.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: block.xsl</literal></para><screen><phrase role="commit-message">Switching to em dash for character before <tag>attribution</tag> in <tag>epigraph</tag>; resolves Bug #2793878</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Fixed bug 2789678: apply-templates line accidentally deleted.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.75.1-->
+
+<sect2 xml:id="rn_V1.75.1_Epub">
+<title>Epub</title>
+<para>The following changes have been made to the
+            <filename>epub</filename> code
+            since the 1.75.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl</literal></para><screen><phrase role="commit-message">Added regression and fix to correct "bug" with namespace-prefixed container elements in META-INF/container.xml ; resolves Issue #2790017</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/onegraphic.xinclude.xml;⋯</literal></para><screen><phrase role="commit-message">Another attempt at flexible named entity and XInclude processing</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/lib/docbook.rb</literal></para><screen><phrase role="commit-message">Tweaking solution to Bug #2750442 following regression reported by Michael Wiedmann.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Epub changes for 1.75.1-->
+
+<sect2 xml:id="rn_V1.75.1_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.75.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: highlight.source.xml</literal></para><screen><phrase role="commit-message">Updated documentation to reflect changes made in r8419.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.75.1-->
+
+</sect1>
+
+
+<sect1 xml:id="V1.75.0">
+<title>Release Notes: 1.75.0</title>
+<para>This release includes important bug fixes and adds the following
+significant feature changes:
+<variablelist>
+<varlistentry>
+<term>Gentext</term>
+<listitem><para>Modifications to translations have been made. </para></listitem>
+
+</varlistentry>
+<varlistentry>
+<term>Common</term>
+<listitem>
+<para>Added support for some format properties on tables using
+HTML <tag>table</tag> markup.  </para>
+<para>Added two new <parameter>qanda.defaultlabel</parameter> values so that numbered sections
+and numbered questions can be distinguished.  Satisfies
+Feature Request #1539045.</para>
+<para>Added code to handle <tag>acknowledgements</tag> in <tag>book</tag> and part. The element is processed
+similarly to <tag>dedication</tag>. All <tag>acknowledgements</tag> will appear as front matter, after
+any dedications.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>FO</term>
+<listitem>
+<para>The inclusion of highlighting code has been simplified.</para>
+<para>Add support for pgwide on informal objects.</para>
+<para>Added a new parameter, <parameter>bookmarks.collapse</parameter>, that controls the initial <tag>state</tag> of the bookmark tree. Closes FR #1792326.</para>
+<para>Add support for more dbfo processing instructions.</para>
+<para>Add new <parameter>variablelist.term.properties</parameter> to format terms, per request # 1968513.</para>
+<para>Add support for @width on <tag>screen</tag> and <tag>programlisting</tag>, fixes bug #2012736.</para>
+<para>Add support for writing-mode="rl-tb" (right-to-left) in FO outputs.  </para>
+<para>Add <parameter>writing.mode</parameter> param for FO output.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>HTML</term>
+<listitem>
+<para>Convert all calls to class.attribute to calls to common.html.attributes to support dir, lang, and <tag>title</tag> attributes in html output for all elements.  Fulfills feature request #1993833.</para>
+<para>Inclusion of highlighting code was simplified. Only one import is now necessary.</para>
+<para>Add new param <parameter>index.links.to.section</parameter>.</para>
+<para>Add support for the new <parameter>index.links.to.section</parameter> param which permits precise links to indexterms in HTML output rather than to the <tag>section</tag> <tag>title</tag>.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>ePub</term>
+<listitem>
+<para>Slightly more nuanced handling of <tag>imageobject</tag> alternatives and better support in dbtoepub for XIncludes and ENTITYs to resolve Issue #2750442 reported by Raphael Hertzog.</para>
+<para>Added a colon after an <tag>abstract</tag>/<tag>title</tag> when mapping into the dc:description for OPF metadata in ePub output to help the flat text have more pseudo-semantics (sugestions from Michael Wiedmann)</para>
+<para>Added DocBook <tag>subjectset</tag> -&gt; OPF dc:<tag>subject</tag> mapping and tests</para>
+<para>Added DocBook <tag>date</tag> -&gt; OPF dc:date mapping and tests</para>
+<para>Added DocBook <tag>abstract</tag> -&gt; OPF dc:description mapping and tests</para>
+<para>Added --output option to dbtoepub based on user request</para>
+</listitem>
+
+</varlistentry>
+<varlistentry>
+<term>HTMLHelp</term>
+<listitem>
+<para>Add support for generating <tag>olink</tag> target <tag>database</tag> for htmlhelp files.</para></listitem>
+
+</varlistentry>
+
+<varlistentry>
+<term>Params</term>
+<listitem>
+<para>Add default setting for @rules attribute on HTML markup tables.</para>
+<para>Added a new parameter, <parameter>bookmarks.collapse</parameter>, that controls the initial <tag>state</tag> of the bookmark tree. When the parameter has a non-zero value (the default), only the top-level bookmarks are displayed initially. Otherwise, the whole tree of bookmarks is displayed.  This is implemented for FOP 0.9X. Closes FR #1792326.</para>
+<para>Add new <parameter>variablelist.term.properties</parameter> to format terms, per request # 1968513.</para>
+<para>Add two new <parameter>qanda.defaultlabel</parameter> values so that numbered sections and numbered questions can be distinguished.  Satisfies Feature Request #1539045.</para>
+<para>Add param to control whether an <tag>index</tag> <tag>entry</tag> links to a <tag>section</tag> <tag>title</tag> or to the precise location of the <tag>indexterm</tag>.</para>
+<para>New attribute list for <tag>glossentry</tag> in <tag>glossary</tag>.</para>
+<para>New parameter to support @width on <tag>programlisting</tag> and <tag>screen</tag>.</para>
+<para>Add attribute-sets for formatting <tag>glossary</tag> terms and defs.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Highlighting</term>
+<listitem>
+<para>Inclusion of highlighting code was simplified. Only one import is now necessary.</para>
+</listitem>
+
+</varlistentry>
+</variablelist>
+
+
+</para>
+<para>The following is a list of changes that have been made
+        since the 1.74.3 release.</para>
+
+<sect2 xml:id="rn_V1.75.0_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the
+            <filename>gentext</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: locale/sv.xml; locale/ja.xml; locale/pl.xml</literal></para><screen><phrase role="commit-message">Check in translations of <tag>Legalnotice</tag> submitted on mailing list.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/es.xml</literal></para><screen><phrase role="commit-message">Fix spelling errors in <tag>Acknowledgements</tag> entries.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/es.xml</literal></para><screen><phrase role="commit-message">Check in translations for 4 elements submitted through docbook-apps
+message of 14 April 2009.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: locale/zh.xml; locale/ca.xml; locale/ru.xml; locale/ga.xml; locale/gl.xml; l⋯</literal></para><screen><phrase role="commit-message">Internationalized punctuation in <tag>glosssee</tag> and <tag>glossseealso</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: Makefile</literal></para><screen><phrase role="commit-message">Check in fixes for DSSSL gentext targets from submitted patch #1689633.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/uk.xml</literal></para><screen><phrase role="commit-message">Check in major update submitted with bug report #2008524.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/zh_tw.xml</literal></para><screen><phrase role="commit-message">Check in fix to Note string submitted in bug #2441051.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/ru.xml</literal></para><screen><phrase role="commit-message">Checkin typo fix submitted in bug #2453406.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: gentext.xsl</literal></para><screen><phrase role="commit-message">Fix extra generated space when xrefstyle includes 'nopage'.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Add support for some format properties on tables using
+HTML <tag>table</tag> markup.  These include:
+  - frame attribute on <tag>table</tag> (or uses $default.table.frame parameter).
+  - rules attribute on <tag>table</tag> (or uses $default.table.rules parameter).
+  - align attribute on <tag>td</tag> and <tag>th</tag>
+  - valign attribute on <tag>td</tag> and <tag>th</tag>
+  - colspan on <tag>td</tag> and <tag>th</tag>
+  - rowspan on <tag>td</tag> and <tag>th</tag>
+  - bgcolor on <tag>td</tag> and <tag>th</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: olink.xsl</literal></para><screen><phrase role="commit-message">Add placeholder template to massage <tag>olink</tag> hot text to make
+customization easier, per Feature Request 1828608.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: targets.xsl</literal></para><screen><phrase role="commit-message">Add support for collecting <tag>olink</tag> targets from a <tag>glossary</tag>
+generated from a <parameter>glossary.collection</parameter>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titles.xsl</literal></para><screen><phrase role="commit-message">Handle <tag>firstterm</tag> like <tag>glossterm</tag> in mode="title.markup".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titles.xsl</literal></para><screen><phrase role="commit-message">Add match on <tag>info</tag>/<tag>title</tag> in title.markup templates where missing.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Changed "ancestor::<tag>title</tag>" to "(ancestor::<tag>title</tag> and (@id or @xml:id))".
+This enables proper formatting of inline elements in titles in TOCs, 
+as long as these inlines don't have id or xml:id attributes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: labels.xsl</literal></para><screen><phrase role="commit-message">Add two new <parameter>qanda.defaultlabel</parameter> values so that numbered sections
+and numbered questions can be distinguished.  Satisfies
+Feature Request #1539045.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: stripns.xsl; pi.xsl</literal></para><screen><phrase role="commit-message">Convert function-available(exsl:node-set) to use the new param
+so Xalan bug is isolated.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Added fixes for bugs #2112656 and #1759205:
+1. Reverted mistaken commits r7485 and r7523. 
+2. Updated the template with match="<tag>link</tag>" and mode="no.anchor.mode" so that 
+@endterm is used if it exists and if the <tag>link</tag> has no content.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Added code to handle <tag>acknowledgements</tag> in <tag>book</tag> and part. The element is processed
+similarly to <tag>dedication</tag>. All <tag>acknowledgements</tag> will appear as front matter, after
+any dedications.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: olink.xsl</literal></para><screen><phrase role="commit-message">Fix bug #2018717 <parameter>use.local.olink.style</parameter> uses wrong gentext context.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: olink.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1787167 incorrect hot text for some olinks.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: common.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1669654 Broken output if <tag>copyright</tag> &lt;<tag>year</tag>&gt; contains a range.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: labels.xsl</literal></para><screen><phrase role="commit-message">Fix bug in labelling <tag>figure</tag> inside <tag>appendix</tag> inside <tag>article</tag> inside <tag>book</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: highlight.xsl</literal></para><screen><phrase role="commit-message">Inclusion of highlighting code was simplified. Only one import is now necessary.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: fop1.xsl</literal></para><screen><phrase role="commit-message">Add the new fop extensions namespace declaration, in case FOP
+extension functions are used.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: formal.xsl</literal></para><screen><phrase role="commit-message">Add support for pgwide on informal objects.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Fixed spurious closing <tag>quote</tag> on line 134.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl; autoidx-kosek.xsl; autoidx.xsl</literal></para><screen><phrase role="commit-message">Convert function-available for node-set() to use
+new $exsl.node.set.available param in test.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xref.xsl</literal></para><screen><phrase role="commit-message">Suppress extra space after <tag>xref</tag> when xrefstyle='select: <tag>label</tag> nopage' (#2740472)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Fixed doc bug for row-height.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: glossary.xsl</literal></para><screen><phrase role="commit-message">Internationalized punctuation in <tag>glosssee</tag> and <tag>glossseealso</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent; htmltbl.xsl; table.xsl</literal></para><screen><phrase role="commit-message">Add support for some format properties on tables using
+HTML <tag>table</tag> markup.  These include:
+  - frame attribute on <tag>table</tag> (or uses $default.table.frame parameter).
+  - rules attribute on <tag>table</tag> (or uses $default.table.rules parameter).
+  - align attribute on <tag>td</tag> and <tag>th</tag>
+  - valign attribute on <tag>td</tag> and <tag>th</tag>
+  - colspan on <tag>td</tag> and <tag>th</tag>
+  - rowspan on <tag>td</tag> and <tag>th</tag>
+  - bgcolor on <tag>td</tag> and <tag>th</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Add support bgcolor in <tag>td</tag> and <tag>th</tag>
+elements in HTML <tag>table</tag> markup.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: htmltbl.xsl</literal></para><screen><phrase role="commit-message">Add support for colspan and rowspan and bgcolor in <tag>td</tag> and <tag>th</tag>
+elements in HTML <tag>table</tag> markup.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb</literal></para><screen><phrase role="commit-message">Fix working of page-master left and right margins.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: param.xweb; param.ent; fop1.xsl</literal></para><screen><phrase role="commit-message">Added a new parameter, <parameter>bookmarks.collapse</parameter>, that controls the initial <tag>state</tag> of the bookmark tree. When the parameter has a non-zero value (the default), only the top-level bookmarks are displayed initially. Otherwise, the whole tree of bookmarks is displayed.  This is implemented for FOP 0.9X. Closes FR #1792326.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl; pi.xsl</literal></para><screen><phrase role="commit-message">Add support for dbfo row-height processing instruction, like that in dbhtml.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Add support for dbfo keep-together processing instruction for
+entire list instances.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl; block.xsl</literal></para><screen><phrase role="commit-message">Add support fo dbfo keep-together processing instruction to
+more blocks like list items and paras.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add new <parameter>variablelist.term.properties</parameter> to format terms, per request # 1968513.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl</literal></para><screen><phrase role="commit-message">In simple.xlink, rearrange order of processing.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Handle <tag>firstterm</tag> like <tag>glossterm</tag> in mode="xref-to".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossary.xsl; xref.xsl; pi.xsl; footnote.xsl</literal></para><screen><phrase role="commit-message">Implement simple.xlink for <tag>glosssee</tag> and <tag>glossseealso</tag> so they can use
+other types of linking besides otherterm.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qandaset.xsl</literal></para><screen><phrase role="commit-message">Add two new <parameter>qanda.defaultlabel</parameter> values so that numbered sections and numbered questions can be distinguished.  Satisfies Feature Request #1539045.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titlepage.xsl</literal></para><screen><phrase role="commit-message">For the <tag>book</tag> <tag>title</tag> templates, I changed <tag>info</tag>/<tag>title</tag> to <tag>book</tag>/<tag>info</tag>/<tag>title</tag>
+so other element's titles will not be affected.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl; verbatim.xsl</literal></para><screen><phrase role="commit-message">Use param <parameter>exsl.node.set.available</parameter> to test for <tag>function</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent; footnote.xsl</literal></para><screen><phrase role="commit-message">Start using new param <parameter>exsl.node.set.available</parameter> to work around Xalan bug.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titlepage.templates.xml</literal></para><screen><phrase role="commit-message">Add comment on use of t:predicate for <tag>editor</tag> to prevent
+extra processing of multiple editors. Fixes bug 2687842.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl; autoidx.xsl</literal></para><screen><phrase role="commit-message">An <tag>indexterm</tag> <tag>primary</tag>, <tag>secondary</tag>, or <tag>tertiary</tag> element with an id or xml:id
+now outputs that ID, so that <tag>index</tag> entries can be cross referenced to.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: synop.xsl</literal></para><screen><phrase role="commit-message">Added modeless template for ooclass|oointerface|ooexception.
+Closes bug #1623468.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Add template with match on <tag>indexterm</tag> in mode="xref-to" to fix bug 2102592.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Now <tag>xref</tag> to <tag>qandaentry</tag> will use the <tag>label</tag> element in a <tag>question</tag> for
+the <tag>link</tag> text if it has one.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl</literal></para><screen><phrase role="commit-message">Add id if specified from @id to output for <tag>quote</tag> and <tag>phrase</tag> so
+they can be <tag>xref</tag>'ed to.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Add support for <tag>xref</tag> to <tag>phrase</tag>, <tag>simpara</tag>, <tag>anchor</tag>, and <tag>quote</tag>.
+This assumes the <tag>author</tag> specifies something using xrefstyle since
+the elements don't have ordinary <tag>link</tag> text.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: toc.xsl</literal></para><screen><phrase role="commit-message">Fix bug in new <tag>toc</tag> templates.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl; component.xsl; division.xsl; xref.xsl; titlepage.templates⋯</literal></para><screen><phrase role="commit-message">Added code to handle <tag>acknowledgements</tag> in <tag>book</tag> and part. The element is processed
+similarly to <tag>dedication</tag>. All <tag>acknowledgements</tag> will appear as front matter, after
+any dedications.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: toc.xsl</literal></para><screen><phrase role="commit-message">Rewrite <tag>toc</tag> templates to support an empty <tag>toc</tag> or populated <tag>toc</tag>
+in all permitted contexts.  Same for lot elements.
+This fixes bug #1595969 for FO outputs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: index.xsl</literal></para><screen><phrase role="commit-message">Fix indents for <tag>seealsoie</tag> so they are consistent.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: param.xweb</literal></para><screen><phrase role="commit-message">Removed duplicate (<parameter>monospace.font.family</parameter>).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add <parameter>glossentry.list.item.properties</parameter>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add <parameter>monospace.verbatim.font.width</parameter> param to support @width on <tag>programlisting</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: verbatim.xsl</literal></para><screen><phrase role="commit-message">Put <tag>programlisting</tag> in fo:block-container with writing-mode="lr-tb"
+when text direction is right to left because all program languages
+are left-to-right.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: verbatim.xsl</literal></para><screen><phrase role="commit-message">Add support for @width on <tag>screen</tag> and <tag>programlisting</tag>, fixes bug #2012736.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1973585 <tag>xref</tag> to <tag>para</tag> with xrefstyle not handled correctly.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: block.xsl</literal></para><screen><phrase role="commit-message">Added support for <tag>acknowledgements</tag> in <tag>article</tag>.
+Support in <tag>book</tag>/part remains to be added.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1787167 incorrect hot text for some olinks.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: fo.xsl</literal></para><screen><phrase role="commit-message">Add writing-mode="tb-rl" as well since some XSL-FO processors support it.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl; lists.xsl; glossary.xsl; fo.xsl; table.xsl; pagesetup.xsl</literal></para><screen><phrase role="commit-message">Add support for writing-mode="rl-tb" (right-to-left) in FO outputs.
+Changed instances of margin-left to margin-{$direction.align.start}
+and margin-right to margin-{$direction.align.end}. Those direction.align
+params are computed from the writing mode value in each locale's
+gentext key named 'writing-mode', introduced in 1.74.3 to add
+right-to-left support to HTML outputs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add attribute-sets for formatting <tag>glossary</tag> terms and defs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add <parameter>writing.mode</parameter> param for FO output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl</literal></para><screen><phrase role="commit-message">Fix bug 1546008: in <tag>qandaentry</tag> in a <tag>TOC</tag>, use its blockinfo/<tag>titleabbrev</tag> or blockinfo/<tag>title</tag>
+instead of <tag>question</tag>, if available. For DocBook 5, use the <tag>info</tag> versions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">Add better pointer to README for XSLTHL</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">More tweaking the way that XSLTHL does or does not get called</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">Alternate attempt at sanely including/excluding XSLTHT code</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Removed redundant lang and <tag>title</tag> attributes on list element inside
+div element for lists.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl; titlepage.xsl; division.xsl; toc.xsl; sections.xsl; table.xsl;⋯</literal></para><screen><phrase role="commit-message">Convert all calls to class.attribute to calls to common.html.attributes
+to support dir, lang, and <tag>title</tag> attributes in html output for all elements.
+Fulfills feature request #1993833.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunk-common.xsl</literal></para><screen><phrase role="commit-message">Fix bug #2750253 wrong links in list of figures in chunk.html
+when target html is in a subdirectory and dbhtml <tag>filename</tag> used.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: highlight.xsl</literal></para><screen><phrase role="commit-message">Inclusion of highlighting code was simplified. Only one import is now necessary.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunk-common.xsl; chunktoc.xsl; docbook.xsl; chunk-changebars.xsl; autoidx⋯</literal></para><screen><phrase role="commit-message">Convert function-available for node-set() to use
+new $exsl.node.set.available param in test.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Fixed doc bug for row-height.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: glossary.xsl</literal></para><screen><phrase role="commit-message">Internationalized punctuation in <tag>glosssee</tag> and <tag>glossseealso</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl; html.xsl; block.xsl</literal></para><screen><phrase role="commit-message">More elements get common.html.attributes.
+Added locale.html.attributes template which does the lang,
+dir, and <tag>title</tag> attributes, but not the class attribute
+(used on <tag>para</tag>, for example).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Replace more <tag>literal</tag> class atts with mode="class.attribute" to support
+easier customization.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossary.xsl</literal></para><screen><phrase role="commit-message">Support olinking in <tag>glosssee</tag> and <tag>glossseealso</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl</literal></para><screen><phrase role="commit-message">In simple.xlink, rearrange order of processing.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Handle <tag>firstterm</tag> like <tag>glossterm</tag> in mode="xref-to".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl; html.xsl; block.xsl</literal></para><screen><phrase role="commit-message">Added template named common.html.attributes to output
+class, <tag>title</tag>, lang, and dir for most elements.
+Started adding it to some list and block elements.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qandaset.xsl</literal></para><screen><phrase role="commit-message">Add two new <parameter>qanda.defaultlabel</parameter> values so that numbered sections
+and numbered questions can be distinguished.  Satisfies
+Feature Request #1539045.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; chunk-code.xsl; param.ent; xref.xsl; chunkfast.xsl; verbatim.x⋯</literal></para><screen><phrase role="commit-message">Use new param <parameter>exsl.node.set.available</parameter> to test, handles Xalan bug.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autoidx.xsl</literal></para><screen><phrase role="commit-message">Use named anchors for <tag>primary</tag>, <tag>secondary</tag>, and <tag>tertiary</tag> ids so
+duplicate entries with different ids can still have an id output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add new param <parameter>index.links.to.section</parameter>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl; autoidx.xsl</literal></para><screen><phrase role="commit-message">Pass through an id on <tag>primary</tag>, <tag>secondary</tag>, or <tag>tertiary</tag> to 
+the <tag>index</tag> <tag>entry</tag>, so that one could <tag>link</tag> to an <tag>index</tag> <tag>entry</tag>.
+You can't <tag>link</tag> to the id on an <tag>indexterm</tag> because that is
+used to place the main <tag>anchor</tag> in the text flow.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autoidx.xsl</literal></para><screen><phrase role="commit-message">Add support for the new <parameter>index.links.to.section</parameter> param which permits
+precise links to indexterms in HTML output rather than to
+the <tag>section</tag> <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: synop.xsl</literal></para><screen><phrase role="commit-message">Added modeless template for ooclass|oointerface|ooexception.
+Closes bug #1623468.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qandaset.xsl</literal></para><screen><phrase role="commit-message">Make sure a <tag>qandaset</tag> has an <tag>anchor</tag>, even when it has no <tag>title</tag>, 
+because it may be referenced in a <tag>TOC</tag> or <tag>xref</tag>.
+Before, the <tag>anchor</tag> was output by the <tag>title</tag>, but there was no
+<tag>anchor</tag> if there was no <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Add a template for <tag>indexterm</tag> with mode="xref-to" to fix bug 2102592.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: xref.xsl</literal></para><screen><phrase role="commit-message">Now <tag>xref</tag> to <tag>qandaentry</tag> will use the <tag>label</tag> element in a <tag>question</tag> for
+the <tag>link</tag> text if it has one.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qandaset.xsl; html.xsl</literal></para><screen><phrase role="commit-message">Create separate templates for computing <tag>label</tag> of <tag>question</tag> and <tag>answer</tag>
+in a <tag>qandaentry</tag>, so such can be used for the <tag>alt</tag> text of an <tag>xref</tag>
+to a <tag>qandaentry</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl; xref.xsl</literal></para><screen><phrase role="commit-message">Now support <tag>xref</tag> to <tag>phrase</tag>, <tag>simpara</tag>, <tag>anchor</tag>, and <tag>quote</tag>,
+most useful when an xrefstyle is used.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: toc.xsl</literal></para><screen><phrase role="commit-message">Rewrite <tag>toc</tag> templates to support an empty <tag>toc</tag> or populated <tag>toc</tag>
+in all permitted contexts.  Same for lot elements.
+This fixes bug #1595969 for HTML outputs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl; component.xsl; division.xsl; xref.xsl; titlepage.templates⋯</literal></para><screen><phrase role="commit-message">Added code to handle <tag>acknowledgements</tag> in <tag>book</tag> and part. The element is processed
+similarly to <tag>dedication</tag>. All <tag>acknowledgements</tag> will appear as front matter, after
+any dedications.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: index.xsl</literal></para><screen><phrase role="commit-message">Rewrote <tag>primaryie</tag>, <tag>secondaryie</tag> and <tag>tertiaryie</tag> templates to handle
+nesting of elements and <tag>seeie</tag> and <tag>seealsoie</tag>, as reported in
+bug # 1168912.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl</literal></para><screen><phrase role="commit-message">Fix <tag>simplesect</tag> in <tag>toc</tag> problem.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: verbatim.xsl</literal></para><screen><phrase role="commit-message">Add support for @width per bug report #2012736.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: formal.xsl; htmltbl.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1787140 HTML tables not handling attributes correctly.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb</literal></para><screen><phrase role="commit-message">Move writing-mode param.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: refentry.xsl</literal></para><screen><phrase role="commit-message">Remove a nesting of &lt;p&gt; inside &lt;p&gt; for <tag>refclass</tag> (made XHTML* invalid, made HTML silly)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1945872 to allow passthrough of colwidth values to
+HTML <tag>table</tag> when no <parameter>tablecolumns.extension</parameter> is available and
+when no instance of * appears in the <tag>table</tag>'s colspecs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: block.xsl</literal></para><screen><phrase role="commit-message">Added support for <tag>acknowledgements</tag> in <tag>article</tag>.
+Support in <tag>book</tag>/part remains to be added.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunk-common.xsl</literal></para><screen><phrase role="commit-message">Fix bug #1787167 incorrect hot text for some olinks.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qandaset.xsl</literal></para><screen><phrase role="commit-message">Fix bug 1546008: in <tag>qandaentry</tag> in a <tag>TOC</tag>, use its blockinfo/<tag>titleabbrev</tag> or blockinfo/<tag>title</tag>
+instead of <tag>question</tag>, if available. For DocBook 5, use the <tag>info</tag> versions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunktoc.xsl</literal></para><screen><phrase role="commit-message">Add support for generating <tag>olink</tag> <tag>database</tag> when using chunktoc.xsl.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">Add better pointer to README for XSLTHL</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">Another stab at fixing the stupid XSLTHT includes across processors (Saxon regression reported by Sorin Ristache)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">More tweaking the way that XSLTHL does or does not get called</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: verbatim.xsl</literal></para><screen><phrase role="commit-message">Alternate attempt at sanely including/excluding XSLTHT code</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Convert function-available test for node-set() <tag>function</tag> to
+test of $exsl.node.set.available param.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: lists.xsl</literal></para><screen><phrase role="commit-message">Added a template for <tag>bibliolist</tag>. Closes bug #1815916.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_Epub">
+<title>ePub</title>
+<para>The following changes have been made to the
+            <filename>epub</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/onegraphic.xinclude.xml;⋯</literal></para><screen><phrase role="commit-message">Slightly more nuanced handling of <tag>imageobject</tag> alternatives and better support in dbtoepub for XIncludes and ENTITYs to resolve Issue #2750442 reported by Raphael Hertzog.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl</literal></para><screen><phrase role="commit-message">Add a colon after an <tag>abstract</tag>/<tag>title</tag> when mapping into the dc:description for OPF metadata in ePub output to help the flat text have more pseudo-semantics (sugestions from Michael Wiedmann)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl; bin/spec/files/de.xml</literal></para><screen><phrase role="commit-message">Correctly set dc:language in OPF metadata when i18nizing. Closes Bug #2755150</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; docbook.xsl</literal></para><screen><phrase role="commit-message">Corrected namespace declarations for <tag>literal</tag> XHTML elements to make them serialize "normally"</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl</literal></para><screen><phrase role="commit-message">Be a little bit more nuanced about dates</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files/orm.book.001.x⋯</literal></para><screen><phrase role="commit-message">Add DocBook <tag>subjectset</tag> -&gt; OPF dc:<tag>subject</tag> mapping and tests</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files/orm.book.001.x⋯</literal></para><screen><phrase role="commit-message">Add DocBook <tag>date</tag> -&gt; OPF dc:date mapping and tests</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files/orm.book.001.x⋯</literal></para><screen><phrase role="commit-message">Add DocBook <tag>abstract</tag> -&gt; OPF dc:description mapping and tests</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: docbook.xsl</literal></para><screen><phrase role="commit-message">Check in patch submitted by user to add opf:file-as attribute
+to dc:creator element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/dbtoepub</literal></para><screen><phrase role="commit-message">Adding --output option to dbtoepub based on user request</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl; bin/spec/epub_spec.rb</literal></para><screen><phrase role="commit-message">Cleaning and regularizing the generation of namespaced nodes for OPF, NCX, XHTML and other outputted filetypes (hat <tag>tip</tag> to bobstayton for pointing out the silly, incorrect code)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/refclass.xml</literal></para><screen><phrase role="commit-message">Remove a nesting of &lt;p&gt; inside &lt;p&gt; for <tag>refclass</tag> (made XHTML* invalid, made HTML silly)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/blockquotepre.xml</literal></para><screen><phrase role="commit-message">Added regression test and fix for XHTML validation problem with &lt;a&gt;s added inside &lt;<tag>blockquote</tag>&gt;; This potentially causes another problem (where something is referenced by has no <tag>anchor</tag>, but someone reporting that should cause the whole &lt;a id='thing'/&gt; thing to be reconsidered with modern browsers in mind.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Epub changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_HTMLHelp">
+<title>HTMLHelp</title>
+<para>The following changes have been made to the
+            <filename>htmlhelp</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: htmlhelp-common.xsl</literal></para><screen><phrase role="commit-message">Add support for generating <tag>olink</tag> target <tag>database</tag> for htmlhelp files.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTMLHelp changes for 1.75.0-->
+
+
+<sect2 xml:id="rn_V1.75.0_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: default.table.rules.xml</literal></para><screen><phrase role="commit-message">Add default setting for @rules attribute on HTML markup tables.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: bookmarks.collapse.xml</literal></para><screen><phrase role="commit-message">Added a new parameter, <parameter>bookmarks.collapse</parameter>, that controls the initial <tag>state</tag> 
+of the bookmark tree. When the parameter has a non-zero value (the default), 
+only the top-level bookmarks are displayed initially. Otherwise, the whole 
+tree of bookmarks is displayed. 
+
+This is implemented for FOP 0.9X. Closes FR #1792326.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: variablelist.term.properties.xml</literal></para><screen><phrase role="commit-message">Add new <parameter>variablelist.term.properties</parameter> to format terms, per 
+request # 1968513.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: qanda.defaultlabel.xml</literal></para><screen><phrase role="commit-message">Add two new <parameter>qanda.defaultlabel</parameter> values so that numbered sections
+and numbered questions can be distinguished.  Satisfies
+Feature Request #1539045.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: index.links.to.section.xml</literal></para><screen><phrase role="commit-message">Change default to 1 to match past behavior.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: exsl.node.set.available.xml</literal></para><screen><phrase role="commit-message">Isolate this text for Xalan bug regarding exsl:node-set available.
+If it is ever fixed in Xalan, just fix it here.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: index.links.to.section.xml</literal></para><screen><phrase role="commit-message">Add param to control whether an <tag>index</tag> <tag>entry</tag> links to
+a <tag>section</tag> <tag>title</tag> or to the precise location of the
+<tag>indexterm</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossentry.list.item.properties.xml</literal></para><screen><phrase role="commit-message">New attribute list for <tag>glossentry</tag> in <tag>glossary</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: monospace.verbatim.font.width.xml</literal></para><screen><phrase role="commit-message">New parameter to support @width on <tag>programlisting</tag> and <tag>screen</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: highlight.source.xml</literal></para><screen><phrase role="commit-message">Updated and reorganized the description.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: page.margin.outer.xml; page.margin.inner.xml</literal></para><screen><phrase role="commit-message">Add caveat about XEP bug when writing-mode is right-to-left.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: article.appendix.title.properties.xml; writing.mode.xml; body.start.indent⋯</literal></para><screen><phrase role="commit-message">Change 'left' to 'start' and 'right' to 'end' to support right-to-left
+writing mode.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossdef.block.properties.xml; glossdef.list.properties.xml; glossterm.blo⋯</literal></para><screen><phrase role="commit-message">Add attribute-sets for formatting <tag>glossary</tag> terms and defs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossterm.separation.xml</literal></para><screen><phrase role="commit-message">Clarify the description.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: make.year.ranges.xml</literal></para><screen><phrase role="commit-message">Now handles <tag>year</tag> element containing a comma or dash without error.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_Highlighting">
+<title>Highlighting</title>
+<para>The following changes have been made to the
+            <filename>highlighting</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: README</literal></para><screen><phrase role="commit-message">Inclusion of highlighting code was simplified. Only one import is now necessary.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: README</literal></para><screen><phrase role="commit-message">Adding XSLTHL readme</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: common.xsl</literal></para><screen><phrase role="commit-message">Alternate attempt at sanely including/excluding XSLTHT code</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Highlighting changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_XSL-Saxon">
+<title>XSL-Saxon</title>
+<para>The following changes have been made to the
+            <filename>xsl-saxon</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: src/com/nwalsh/saxon/Text.java</literal></para><screen><phrase role="commit-message">Added a fix that prevents output of extra blank line.
+Hopefully this closes bug #894805.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Saxon changes for 1.75.0-->
+
+<sect2 xml:id="rn_V1.75.0_XSL-Xalan">
+<title>XSL-Xalan</title>
+<para>The following changes have been made to the
+            <filename>xsl-xalan</filename> code
+            since the 1.74.3 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: src/com/nwalsh/xalan/Text.java</literal></para><screen><phrase role="commit-message">Added a fix that prevents output of extra blank line.
+Hopefully this closes bug #894805.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Xalan changes for 1.75.0-->
+
+
+</sect1>
+
+<sect1 xml:id="V1.74.3">
+<title>Release Notes: 1.74.3</title>
+<para>This release fixes some bugs in the 1.74.2 release.</para>
+<para>See <filename>highlighting/README</filename> for XSLTHL usage instructions.</para>
+</sect1>
+<sect1 xml:id="V1.74.2">
+<title>Release Notes: 1.74.2</title>
+<para>This release fixes some bugs in the 1.74.1 release.</para>
+</sect1>
+
+<sect1 xml:id="V1.74.1">
+<title>Release Notes: 1.74.1</title>
+<para>This release includes important bug fixes and adds the following
+significant feature changes:
+<variablelist>
+<varlistentry>
+<term>Gentext</term>
+<listitem><para>Kirghiz locale added and Chinese translations have been simplified.</para></listitem>
+<listitem><para>Somme support for gentext and right-to-left languages has been added.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>FO</term>
+<listitem><para>Various bugs have been resolved. </para> </listitem>
+<listitem><para>Support for a new processing instruction: <markup>dbfo funcsynopsis-style</markup> has been added.  </para> </listitem>
+<listitem><para>Added new param <parameter>email.mailto.enabled</parameter> for FO output. Patch from Paolo Borelli.  </para>
+</listitem>
+<listitem><para>Support for documented metadata in fop1 mode has been added. </para>
+</listitem>
+
+</varlistentry>
+<varlistentry>
+<term>Highlighting</term>
+<listitem><para>Support for the latest version of XSLTHL 2.0 and some new language syntaxes have been added to a variety of outputs.</para></listitem>
+
+</varlistentry>
+
+<varlistentry>
+<term>Manpages</term>
+<listitem><para>Added man.output.better.ps.enabled param (zero default). It non-zero, no such
+markup is embedded in generated man pages, and no enhancements are
+included in the PostScript output generated from those man pages
+by the man -Tps <tag>command</tag>.</para></listitem>
+
+</varlistentry>
+
+
+<varlistentry>
+<term>HTML</term>
+<listitem><para>Support for <parameter>writing.mode</parameter> to set text direction and <parameter>alignment</parameter> based on document locale has been added.</para></listitem>
+<listitem>
+<para>Added a new top-level stylesheet module, chunk-changebars.xsl, to be 
+used for generating chunked output with highlighting based on change 
+(@revisionflag) markup. The module imports/includes the standard chunking 
+and changebars templates and contains additional logic for chunked output.
+See FRs #1015180 and #1819915.</para>
+</listitem>
+
+</varlistentry>
+<varlistentry>
+<term>ePub</term>
+<listitem>
+<para>Covers now look better in Adobe Digital Editions thanks to a patch from Paul Norton of Adobe</para>
+</listitem>
+<listitem><para>Cover handling now more generic (including limited DocBook 5.0 <markup>cover</markup> support thanks to patch contributed by Liza Daly.</para> </listitem>
+<listitem><para>Cover markup now carries more reliably into files destined for .mobi and the Kindle.</para> </listitem>
+<listitem><para><markup>dc:identifiers</markup> are now generated from more types of numbering schemes. </para></listitem>
+<listitem><para>Both SEO and semantic structure of chunked ePub output by ensuring that we always send out one and only one h1 in each XHTML chunk.</para></listitem>
+<listitem>
+<para>Primitive support for embedding a single font added.</para>
+</listitem>
+<listitem>
+<para>Support for embedding a CSS customizations added.</para>
+</listitem>
+
+</varlistentry>
+
+<varlistentry>
+<term>Roundtrip</term>
+
+<listitem>
+<para>Support for imagedata-metadata and <tag>table</tag> as images added.</para>
+</listitem>
+<listitem>
+<para>Support for imagedata-metadata and <tag>legalnotice</tag> as images added.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>Params</term>
+<listitem><para><parameter>man.output.better.ps.enabled</parameter> added for Manpages output </para></listitem>
+<listitem>
+<para><parameter>writing.mode.xml</parameter> added to set text direction.</para>
+</listitem>
+<listitem>
+<para>Added new param <parameter>email.mailto.enabled</parameter> for FO output.
+Patch from Paolo Borelli. Closes #2086321.</para>
+</listitem>
+<listitem>
+<para><parameter>highlight.source</parameter> upgraded to support the latest version of XSLTHL 2.0.</para>
+</listitem>
+
+</varlistentry>
+
+
+
+</variablelist>
+</para>
+<para>The following is a list of changes that have been made since the 1.74.0 release.</para>
+
+
+<sect2 xml:id="summary_V1.74.1_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the <filename>gentext</filename> code since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/ky.xml; Makefile</literal></para><screen><phrase role="commit-message">new Kirghiz locale from Ilyas Bakirov</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: locale/en.xml</literal></para><screen><phrase role="commit-message">Added "<tag>Acknowledgements</tag>".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Dongsheng Song: locale/zh_cn.xml</literal></para><screen><phrase role="commit-message">Simplified Chinese translation.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/lv.xml; locale/ca.xml; locale/pt.xml; locale/tr.xml; locale/af.xml;⋯</literal></para><screen><phrase role="commit-message">Add writing-mode gentext string to support right-to-left languages.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_FO">
+<title>FO</title>
+<para>The following changes have been made to the <filename>fo</filename> code since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>David Cramer: footnote.xsl</literal></para><screen><phrase role="commit-message">Added a check to confirm that a <tag>footnoteref</tag>'s linkend points to a <tag>footnote</tag>. Stylesheets stop processing if not and provide a useful error message.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: spaces.xsl</literal></para><screen><phrase role="commit-message">Convert spaces to fo:leader also in elements in the DB 5 namespace.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl; synop.xsl</literal></para><screen><phrase role="commit-message">Added support for a new processing instruction: dbfo funcsynopsis-style. 
+Closes bug #1838213.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Added new param <parameter>email.mailto.enabled</parameter> for FO output.
+Patch from Paolo Borelli. Closes #2086321.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: docbook.xsl</literal></para><screen><phrase role="commit-message">Added support for document metadata for fop1 (patch #2067318).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: param.ent; param.xweb; highlight.xsl</literal></para><screen><phrase role="commit-message">Upgraded to support the latest version of XSLTHL 2.0
+ -- nested markup in highlited code is now processed
+ -- it is no longer needed to specify path XSLTHL configuration file using Java property
+ -- support for new languages, including Perl, Python and Ruby was added</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the <filename>html</filename> code since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; docbook.xsl; param.ent; html.xsl</literal></para><screen><phrase role="commit-message">Add support for <parameter>writing.mode</parameter> to set text direction and <parameter>alignment</parameter> based on document locale.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: chunk-changebars.xsl</literal></para><screen><phrase role="commit-message">Added a new top-level stylesheet module, chunk-changebars.xsl, to be 
+used for generating chunked output with highlighting based on change 
+(@revisionflag) markup. The module imports/includes the standard chunking 
+and changebars templates and contains additional logic for chunked output.
+See FRs #1015180 and #1819915.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the <filename>manpages</filename> code since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: docbook.xsl</literal></para><screen><phrase role="commit-message">Put the following at the top of generated roff for each page:
+  \" t
+purpose is to explicitly tell AT&amp;T troff that the page needs to be
+pre-processed through tbl(1); groff can <tag>figure</tag> it out
+automatically, but apparently AT&amp;T troff needs to be explicitly told</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_Epub">
+<title>ePub</title>
+<para>The following changes have been made to the <filename>epub</filename> code since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl</literal></para><screen><phrase role="commit-message">Patch from Paul Norton of Adobe to get covers to look better in Adobe Digital Editions</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/epub_regressions_spec.rb; bin/spec/files/v5cover.xml; bin/spec/sp⋯</literal></para><screen><phrase role="commit-message">Patch contributed by Liza Daly to make ePub <tag>cover</tag> handling more generic. Additionally
+DocBook 5.0's &lt;<tag>cover</tag>&gt; now has some limited support:
+
+- should <tag>reference</tag> a <tag>cover</tag> in the OPF guide for a DocBook 5.0 test document</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/files/isbn.xml; bin/spec/files/issn.xml; bin/spec/files/biblioid.⋯</literal></para><screen><phrase role="commit-message">Liza Daly reported that the dc:identifer-generation code was garbage (she was right).
+
+Added new tests:
+- should include at least one dc:identifier
+- should include an ISBN as URN for dc:identifier if an ISBN was in the metadata
+- should include an ISSN as URN for dc:identifier if an ISSN was in the metadata
+- should include an <tag>biblioid</tag> as a dc:identifier if an <tag>biblioid</tag> was in the metadata
+- should include a URN for a <tag>biblioid</tag> with @class attribute as a dc:identifier if an <tag>biblioid</tag> was in the metadata</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl; bin/spec/epub_spec.rb</literal></para><screen><phrase role="commit-message">Improve both SEO and  semantic structure of chunked ePub output by ensuring that
+we always send out one and only one h1 in each XHTML chunk.
+
+DocBook::Epub
+- should include one and only one &lt;h1&gt; in each HTML file in rendered ePub files
+for &lt;<tag>book</tag>&gt;s
+- should include one and only one &lt;h1&gt; in each HTML file in rendered ePub files
+for &lt;<tag>book</tag>&gt;s even if they do not have <tag>section</tag> markup</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl; bin/spec/epub_realbook_spec.rb; bin/spec/files/orm.book.001.x⋯</literal></para><screen><phrase role="commit-message">Adding better support for covers in epub files destined for .mobi and the Kindle</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/dbtoepub; bin/lib/docbook.rb; bin/spec/files/DejaVuSerif.otf; docbook.⋯</literal></para><screen><phrase role="commit-message">Adding primitive support for embedding a single font</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/dbtoepub; bin/lib/docbook.rb; bin/spec/files/test_cust.xsl; bin/spec/e⋯</literal></para><screen><phrase role="commit-message">Adding support for user-specified customization layers in dbtoepub</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/dbtoepub; bin/spec/epub_regressions_spec.rb; bin/lib/docbook.rb; bin/s⋯</literal></para><screen><phrase role="commit-message">Adding CSS support to .epub target &amp; dbtoepub:
+    -c, --css [FILE]                 Use FILE for CSS on generated XHTML.
+
+
+DocBook::Epub
+...
+- should include a CSS <tag>link</tag> in HTML files when a CSS file has been provided
+- should include CSS file in .epub when a CSS file has been provided
+- should include a CSS <tag>link</tag> in OPF file when a CSS file has been provided</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Epub changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; template.xml; template.dot</literal></para><screen><phrase role="commit-message">added support for imagedata-metadata
+added support for <tag>table</tag> as images</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; normalise2sections.xsl; sections2blocks.xsl</literal></para><screen><phrase role="commit-message">Improved support for <tag>personname</tag> inlines.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; blocks2dbk.dtd; template.xml</literal></para><screen><phrase role="commit-message">Added support for <tag>legalnotice</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; wordml2normalise.xsl</literal></para><screen><phrase role="commit-message">added support for <tag>orgname</tag> in <tag>author</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: specifications.xml; supported.xml; blocks2dbk.xsl; wordml2normalise.xsl; dbk2w⋯</literal></para><screen><phrase role="commit-message">Updated specification.
+to-DocBook: add cols attribute to <tag>tgroup</tag>
+from-DocBook: fix for <tag>blockquote</tag> <tag>title</tag></phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Roundtrip changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_Params">
+<title>Params</title>
+<para>The following changes have been made to the <filename>params</filename> since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para>The change was to add man.output.better.ps.enabled parameter, with
+its default value set to zero.
+
+If the value of the man.output.better.ps.enabled parameter is
+non-zero, certain markup is embedded in each generated man page
+such that PostScript output from the man -Tps <tag>command</tag> for that
+page will include a number of enhancements designed to improve the
+quality of that output.
+
+If man.output.better.ps.enabled is zero (the default), no such
+markup is embedded in generated man pages, and no enhancements are
+included in the PostScript output generated from those man pages
+by the man -Tps <tag>command</tag>.
+
+WARNING: The enhancements provided by this parameter rely on
+features that are specific to groff (GNU troff) and that are not
+part of "classic" AT&amp;T troff or any of its derivatives. Therefore,
+any man pages you generate with this parameter enabled will be
+readable only on systems on which the groff (GNU troff) program is
+installed, such as GNU/Linux systems.  The pages will not not be
+readable on systems on with the classic troff (AT&amp;T troff) <tag>command</tag>
+is installed.
+
+NOTE: The value of this parameter only affects PostScript output
+generated from the man <tag>command</tag>. It has no effect on output
+generated using the FO backend.
+
+<tag>TIP</tag>: You can generate PostScript output for any man page by
+running the following <tag>command</tag>:
+
+man FOO -Tps &gt; FOO.ps
+
+You can then generate PDF output by running the following <tag>command</tag>:
+
+ps2pdf FOO.ps</para>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: writing.mode.xml</literal></para><screen><phrase role="commit-message">writing mode param used to set text direction.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: email.mailto.enabled.xml</literal></para><screen><phrase role="commit-message">Added new param <parameter>email.mailto.enabled</parameter> for FO output.
+Patch from Paolo Borelli. Closes #2086321.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: highlight.source.xml; highlight.xslthl.config.xml</literal></para><screen><phrase role="commit-message">Upgraded to support the latest version of XSLTHL 2.0
+ -- nested markup in highlited code is now processed
+ -- it is no longer needed to specify path XSLTHL configuration file using Java property
+ -- support for new languages, including Perl, Python and Ruby was added</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.74.1-->
+
+<sect2 xml:id="summary_V1.74.1_Highlighting">
+<title>Highlighting</title>
+<para>The following changes have been made to the
+            <filename>highlighting</filename> code
+            since the 1.74.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: cpp-hl.xml; c-hl.xml; tcl-hl.xml; php-hl.xml; common.xsl; perl-hl.xml; delphi⋯</literal></para><screen><phrase role="commit-message">Upgraded to support the latest version of XSLTHL 2.0
+ -- nested markup in highlited code is now processed
+ -- it is no longer needed to specify path XSLTHL configuration file using Java property
+ -- support for new languages, including Perl, Python and Ruby was added</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Highlighting changes for 1.74.1-->
+
+</sect1>
+
+
+<sect1 xml:id="V1.74.0">
+<title>Release Notes: 1.74.0</title>
+<para>This release includes important bug fixes and adds the following
+significant feature changes:
+<variablelist>
+<varlistentry>
+<term>.epub target</term>
+<listitem><para>Paul Norton (Adobe) and Keith Fahlgren(O'Reilly Media) have donated code that generates <filename>.epub</filename> documents from
+DocBook input. An alpha-reference implementation in Ruby has also been provided.</para>
+<para>.epub is an open standard of the The International Digital Publishing Forum (IDPF), 
+a the trade and standards association for the digital publishing industry. </para> 
+<para>Read more about this target in <filename>epub/README</filename>
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>XHTML 1.1 target</term>
+<listitem><para>To support .epub output, a strict XHTML 1.1 target has been added. The stylesheets for this output are
+generated and are quite similar to the XHTML target.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>Gentext updates</term>
+<listitem><para>A number of locales have been updated.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>Roundtrip improvements</term>
+<listitem><para>Table, figure, template syncronization, and character style improvements have been made for WordML &amp; Pages. Support added for OpenOffice.org.</para></listitem>
+
+</varlistentry>
+
+<varlistentry>
+    <term>First implementation of a libxslt extension</term>
+    <listitem>
+      <para>A stylesheet extension for libxslt, written in Python, has been added. 
+      The extension is a function for adjusting column widths in CALS tables. See 
+      <filename>extensions/README.LIBXSLT</filename> for more information.</para>
+    </listitem>
+ </varlistentry>
+
+</variablelist>
+</para>
+<para>The following is a list of changes that have been made
+        since the 1.73.2 release.</para>
+
+<sect2 xml:id="V1.74.0_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the
+            <filename>gentext</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/id.xml</literal></para><screen><phrase role="commit-message">Checked in changes to Indonesion locale submitted by Euis Luhuanam a long time ago.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/lt.xml</literal></para><screen><phrase role="commit-message">Added changes to Lithuanian locate submitted a long time back by Nikolajus Krauklis.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/hu.xml</literal></para><screen><phrase role="commit-message">fixed error in lowercase.alpha definition in Hungarian locale</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/nb.xml</literal></para><screen><phrase role="commit-message">Corrected language code for nb locale, and restored missing "startquote" key.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/ja.xml</literal></para><screen><phrase role="commit-message">Committed changes to ja locale file, from Akagi Kobayashi. Adds bracket quotes around many xref instances that did not have them
+before.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile</literal></para><screen><phrase role="commit-message">"no" locale is now "nb"</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/nb.xml</literal></para><screen><phrase role="commit-message">Update Norwegian Bokmål translation. Thanks to Hans F. Nordhaug.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/no.xml; locale/nb.xml</literal></para><screen><phrase role="commit-message">per message from Hans F. Nordhaug, correct identifier for
+Norwegian Bokmål is "nb" (not "no") and has been for quite some
+time now...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/ja.xml</literal></para><screen><phrase role="commit-message">Converted ja.xml source file to use real unicode characters so
+that the actual glyphs so up when you edit it in a text editor
+(instead of the character references).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/ja.xml</literal></para><screen><phrase role="commit-message">Checked in changes to ja.xml locale file. Thanks to Akagi Kobayashi.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/it.xml</literal></para><screen><phrase role="commit-message">Changes from Federico Zenith</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Dongsheng Song: locale/zh_cn.xml</literal></para><screen><phrase role="commit-message">Added missing translations.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: l10n.xsl</literal></para><screen><phrase role="commit-message">Added new template "l10.language.name" for retrieving the
+English-language name of the lang setting of the current document.
+Closes #1916837. Thanks to Simon Kennedy.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">fixed syntax error</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">fixed a couple of typos</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">refined handling of cases where refentry "source" or "manual"
+metadata is missing or when we use fallback content instead. We
+now report a Warning if we use fallback content.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">don't use refmiscinfo@class=date value as fallback for refentry
+"source" or "manual" metadata fields</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">Made reporting of missing refentry metadata more quiet:
+
+  - we no longer report anything if usable-but-not-preferred
+    metadata is found; we just quietly use whatever we manage to
+    find
+
+  - we now only report missing "source" metadata if the refentry
+    is missing BOTH "source name" and "version" metadata; if it
+    has one but not the other, we use whichever one it has and
+    don't report anything as missing
+
+The above changes were made because testing with some "real world"
+source reveals that some authors are intentionally choosing to use
+"non preferred" markup for some metadata, and also choosing to
+omit "source name" or "version" metadata in there DocBook XML. So
+it does no good to give them pedantic reminders about what they
+already know...
+
+Also, changed code to cause "fixme" text to be inserted in output
+in particular cases:
+
+  - if we can't manage to find any "source" metadata at all, we
+    now put fixme text into the output
+
+  - if we can't manage to find any "manual" metadata a all, we 
+    now put fixme text into the output
+
+The "source" and "manual" metadata is necessary information, so
+buy putting the fixme stuff in the output, we alert users to the
+need problem of it being missing.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">When generating manpages output, we no longer report anything if
+the refentry source is missing date or pubdate content. In
+practice, many users intentionally omit the date from the source
+because they explicitly want it to be generated.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: l10n.xml</literal></para><screen><phrase role="commit-message">further change needed for switch from no locale to nb.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: common.xsl</literal></para><screen><phrase role="commit-message">Added support for orgname in authorgroup. Thanks to Camille
+Bégnis.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile</literal></para><screen><phrase role="commit-message">"no" locale is now "nb"</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: stripns.xsl</literal></para><screen><phrase role="commit-message">Removed the template matching "ng:link|db:link" (in order to make @xlink:show 
+work with &lt;link&gt; elements). As far as I can tell, this template is no longer needed.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: entities.ent</literal></para><screen><phrase role="commit-message">Moved declaration of comment.block.parents entity to common/entities.ent.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Added an update the fix made in revision 7528 (handling of xref/link in no.anchor.mode mode).
+Having xref in title is not a problem as long as the target is not an ancestor element. 
+Closes bug #1838136.
+
+Note that an xref that is in a title and whose target is an ancestor element is still not 
+rendered in the TOC. This could be considered a bug, but on the other hand I cannot really
+see the point in having such an xref in a document.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Added a "not(ancestor::title)" test to work around "too many nested 
+apply-templates" problems when processing xrefs or links in no.anchor.mode mode.
+Hopefully, this closes bug #1811721.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Removed old template matching "link" in no.anchor.mode mode.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">Process &lt;link&gt; in no.anchor.mode mode with the same template as &lt;xref&gt;. 
+Closes bug #1759205 (Empty link in no.anchor.mode mode).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titles.xsl</literal></para><screen><phrase role="commit-message">In no.anchor.mode mode, do not output anchors for elements that are descendants 
+of &lt;title&gt;. Previously, having inline elements with @id/@xml:id in &lt;title&gt;s 
+resulted in anchors both in the TOC and in the main flow. Closes bug #1797492.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem> <para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Updated documentation for keep-together.</phrase></screen> </listitem>
+<listitem> <para><literal>Mauritz Jeanson: task.xsl</literal></para><screen><phrase role="commit-message">Enabled use of the keep-together PI on <tag>task</tag> elements.</phrase></screen> </listitem>
+<listitem>
+<para><literal>Robert Stayton: index.xsl</literal></para><screen><phrase role="commit-message">FOP1 requires fo:wrapper for inline index entries, not fo:inline.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: index.xsl</literal></para><screen><phrase role="commit-message">Fixed non-working inline.or.block template for indexterm wrappers.
+Add fop1 to list of processors using inline.or.block.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: table.xsl</literal></para><screen><phrase role="commit-message">Fixed bug #1891965 (colsep in entytbl not working).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Added support for title in revhistory. Closes bug #1842847.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Small doc cleanup (dbfo float-type).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Insert commas between multiple copyright holders.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: autotoc.xsl; division.xsl</literal></para><screen><phrase role="commit-message">Added modifications to support nested set elements. See bug #1853172.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: glossary.xsl</literal></para><screen><phrase role="commit-message">Added normalize-space to xsl:sorts to avoid missorting of glossterms due to stray leading spaces.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: glossary.xsl</literal></para><screen><phrase role="commit-message">Fixed bug #1854199: glossary.xsl should use the sortas attribute on glossentry</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Added a template for citebiblioid. The hyperlink target is the parent of the referenced biblioid,
+and the "hot text" is the biblioid itself enclosed in brackets.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Moved declaration of comment.block.parents entity to common/entities.ent.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: docbook.xsl</literal></para><screen><phrase role="commit-message">Updated message about unmatched element.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: param.xweb</literal></para><screen><phrase role="commit-message">Added link to profiling chapter of TCG.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: refentry.xsl</literal></para><screen><phrase role="commit-message">Fixed typo (refsynopsysdiv -&gt; refsynopsisdiv).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: fop.xsl; fop1.xsl; ptc.xsl; xep.xsl</literal></para><screen><phrase role="commit-message">Added test to check generate.index param when generating pdf bookmarks</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: graphics.xsl</literal></para><screen><phrase role="commit-message">Added support for MathML in imagedata.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: math.xsl</literal></para><screen><phrase role="commit-message">Removed unnecessary extra test condition in test express that
+checks for passivetex.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: math.xsl</literal></para><screen><phrase role="commit-message">Don't use fo:instream-foreign-object if we are processing with
+passivetex. Closes #1806899. Thanks to Justus Piater.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: component.xsl</literal></para><screen><phrase role="commit-message">Added code to output a TOC for an appendix in an article when 
+generate.toc='article/appendix toc'. Closes bug #1669658.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Dongsheng Song: biblio-iso690.xsl</literal></para><screen><phrase role="commit-message">Change encoding from "windows-1250" to "UTF-8".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Updated documentation for dbfo_label-width.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: lists.xsl</literal></para><screen><phrase role="commit-message">Added support for the dbfo_label-width PI in calloutlists.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: biblio.xsl</literal></para><screen><phrase role="commit-message">Support finding glossary database entries inside bibliodivs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: formal.xsl</literal></para><screen><phrase role="commit-message">Complete support for &lt;?dbfo pgwide="1"?&gt; for informal
+elements too.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: table.xsl</literal></para><screen><phrase role="commit-message">In the table.block template, added a check for the dbfo_keep-together PI, so that 
+a table may break (depending on the PI value) at a page break. This was needed 
+since the outer fo:block that surrounds fo:table has keep-together.within-column="always" 
+by default, which prevents the table from breaking. Closes bug #1740964 (Titled 
+table does not respect dbfo PI).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Added a few missing @role="tcg".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Use normalize-space() in glossterm comparisons (as in html/inline.xsl).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: autoidx.xsl</literal></para><screen><phrase role="commit-message">Removed the [&amp;scope;] predicate from the target variable in the template with name="reference".
+This filter was the cause of missing index backlinks when @zone and @type were used on indexterms,
+with index.on.type=1. Closes bug #1680836.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl; xref.xsl; footnote.xsl</literal></para><screen><phrase role="commit-message">Added capability in FO output for displaying URLs for all
+hyperlinks (elements marked up with xlink:href attributes) in the
+same way as URLs for ulinks are already handled (which is to say,
+either inline or as numbered footnotes).
+
+Background on this change:
+DocBook 5 allows "ubiquitous" linking, which means you can make
+any element a hyperlink just by adding an xlink:href attribute to
+it, with the value set to an external URL. That's in contrast to
+DocBook 4, which only allows you to use specific elements (e.g.,
+the link and ulink elements) to mark up hyperlinks.
+
+The existing FO stylesheets have a mechanism for handling display
+of URLs for hyperlinks that are marked up with ulink, but they did
+not handle display of URLs for elements that were marked up with
+xlink:href attributes. This change adds handling for those other
+elements, enabling the URLs they link to be displayed either
+inline or as numbered footnotes (depending on what values the user
+has the ulink.show and ulink.footnotes params set to).
+
+Note that this change only adds URL display support for elements
+that call the simple.xlink template -- which currently is most
+(but not all) inline elements.
+
+This change also moves the URL display handling out of the ulink
+template and into a new "hyperlink.url.display" named template;
+the ulink template and the simple.xlink named template now both
+call the hyperlink.url.display template.
+
+Warning: In the stylesheet code that determines what footnote
+number to assign to each footnote or external hyperlink, there is
+an XPath expression for determining whether a particular
+xlink:href instance is an external hyperlink; that expression is
+necessarily a bit complicated and further testing may reveal that
+it doesn't handle all cases as expected -- so some refinements to
+it may need to be done later.
+
+Closes #1785519. Thanks to Ken Morse for reporting and
+troubleshooting the problem.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem> <para><literal>Keith Fahlgren: inline.xsl; synop.xsl</literal></para><screen><phrase role="commit-message">Work to make HTML and XHTML targets more valid</phrase></screen> </listitem>
+<listitem> <para><literal>Keith Fahlgren: table.xsl</literal></para><screen><phrase role="commit-message">Add better handling for tables that have footnotes in the titles</phrase></screen> </listitem>
+<listitem> <para><literal>Keith Fahlgren: biblio.xsl</literal></para><screen><phrase role="commit-message">Add anchors to bibliodivs</phrase></screen> </listitem>
+<listitem>
+<para><literal>Keith Fahlgren: formal.xsl; Makefile; htmltbl.xsl</literal></para><screen><phrase role="commit-message">Initial checkin/merge of epub target from work provided by Paul Norton of Adobe
+and Keith Fahlgren of O'Reilly.</phrase></screen>
+<para>This change includes new code for generating the XHTML 1.1 target sanely.</para>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: biblio.xsl</literal></para><screen><phrase role="commit-message">Added code for creating URLs from biblioids with @class="doi" (representing Digital 
+Object Identifiers). See FR #1934434 and http://doi.org.
+
+To do: 1) Add support for FO output. 2) Figure out how @class="doi" should be handled 
+for bibliorelation, bibliosource and citebiblioid.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Norman Walsh: formal.xsl</literal></para><screen><phrase role="commit-message">Don't use xsl:copy because it forces the resulting element to be in the same namespace as the source element; in the XHTML stylesheets, that's wrong. But the HTML-to-XHTML converter does the right thing with literal result elements, so use one of them.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile</literal></para><screen><phrase role="commit-message">Added checks and hacks to various makefiles to enable building
+under Cygwin. This stuff is ugly and maybe not worth the mess and
+trouble, but does seem to work as expected and not break anything
+else.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: docbook.xsl</literal></para><screen><phrase role="commit-message">added "exslt" namespace binding to html/docbook.xsl file (in
+addition to existing "exsl" binding. reason is because lack of it
+seems to cause processing problems when using the profiled
+version of the stylsheet</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Norman Walsh: chunk-common.xsl</literal></para><screen><phrase role="commit-message">Rename link</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: table.xsl</literal></para><screen><phrase role="commit-message">Added a fix to make rowsep apply to the last row of thead in entrytbl.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl</literal></para><screen><phrase role="commit-message">Simplified and streamlined handling of output for ANSI-style
+funcprototype output, to correct a problem that was causing type
+data to be lost in the output parameter definitions. For example,
+for an instance like this:
+  &lt;paramdef&gt;void *&lt;parameter&gt;dataptr&lt;/parameter&gt;[]&lt;/paramdef&gt;
+... the brackets (indicating an array type) were being dropped.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl</literal></para><screen><phrase role="commit-message">Changed HTML handling of K&amp;R-style paramdef output. The parameter
+definitions are no longer output in a table (though the prototype
+still is). The reason for the change is that the
+kr-tabular-funcsynopsis-mode template was causing type data to be
+lost in the output parameter definitions. For example, for an
+instance like this:
+  &lt;paramdef&gt;void *&lt;parameter&gt;dataptr&lt;/parameter&gt;[]&lt;/paramdef&gt;
+... the brackets (indicating an array type) were being dropped.
+The easiest way to deal with the problem is to not try to chop up
+the parameter definitions and display them in table format, but to
+instead just output them as-is. May not look quite as pretty, but
+at least we can be sure no information is being lost...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: pi.xsl</literal></para><screen><phrase role="commit-message">updated wording of doc for funcsynopsis-style PI</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: param.xweb; param.ent; synop.xsl</literal></para><screen><phrase role="commit-message">Removed the funcsynopsis.tabular.threshold param. It's no longer
+being used in the code and hasn't been since mid 2006.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: graphics.xsl</literal></para><screen><phrase role="commit-message">Added support for the img.src.path parameter for SVG graphics. Closes bug #1888169.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: chunk-common.xsl</literal></para><screen><phrase role="commit-message">Added missing space.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Norman Walsh: component.xsl</literal></para><screen><phrase role="commit-message">Fix bug where component titles inside info elements were not handled properly</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: pi.xsl</literal></para><screen><phrase role="commit-message">Moved dbhtml_stop-chunking embedded doc into alphabetical order,
+fixed text of TCG section it see-also'ed.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: pi.xsl</literal></para><screen><phrase role="commit-message">Added support for &lt;?dbhtml stop-chunking?&gt; processing instruction</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: chunk-common.xsl; pi.xsl</literal></para><screen><phrase role="commit-message">Added support for &lt;?dbhtml stop-chunking?&gt; processing instruction</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: glossary.xsl</literal></para><screen><phrase role="commit-message">Fixed bug #1854199: glossary.xsl should use the sortas attribute on glossentry. Also added normalize-space to avoid missorting due to stray leading spaces.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Added a template for citebiblioid. The hyperlink target is the parent of the referenced biblioid,
+and the "hot text" is the biblioid itself enclosed in brackets.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Added support for @xlink:show in the simple.xlink template. The "new" and "replace" 
+values are supported (corresponding to values of "_blank" and "_top" for the 
+ulink.target parameter). I have assumed that @xlink:show should override ulink.target
+for external URI links. This closes bugs #1762023 and #1727498.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Moved declaration of comment.block.parents entity to common/entities.ent.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: param.xweb</literal></para><screen><phrase role="commit-message">Added link to profiling chapter of TCG.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Dongsheng Song: biblio-iso690.xsl</literal></para><screen><phrase role="commit-message">Change encoding from "windows-1250" to "UTF-8".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: biblio.xsl</literal></para><screen><phrase role="commit-message">Add support in biblio collection to entries in bibliodivs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Added missing @role="tcg".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: chunk-common.xsl; titlepage.xsl</literal></para><screen><phrase role="commit-message">Refactored legalnotice/revhistory chunking, so that the use.id.as.filename 
+parameter as well as the dbhtml_filename PI are taken into account. A new named
+template in titlepage.xsl is used to compute the filename.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: chunk-common.xsl; titlepage.xsl</literal></para><screen><phrase role="commit-message">An update to the fix for bug #1790495 (r7433):
+The "ln-" prefix is output only when the legalnotice doesn't have an
+@id/@xml:id, in which case the stylesheets generate an ID value, 
+resulting in a filename like "ln-7e0fwgj.html". This is useful because 
+without the prefix, you wouldn't know that the file contained a legalnotice. 
+The same logic is also applied to revhistory, using an "rh-" prefix.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: autoidx.xsl</literal></para><screen><phrase role="commit-message">Removed the [&amp;scope;] predicate from the target variable in the template with name="reference".
+This filter was the cause of missing index backlinks when @zone and @type were used on indexterms,
+with index.on.type=1. Closes bug #1680836.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Added 'ln-' prefix to the name of the legalnotice chunk, in order to match the 
+&lt;link href"..."&gt; that is output by make.legalnotice.head.links (chunk-common.xsl).
+Modified the href attribute on the legalnotice link.
+Closes bug #1790495.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">slightly adjusted spacing around admonition markers</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl; utility.xsl</literal></para><screen><phrase role="commit-message">make sure refsect3 titles are preceded by a line of space, and
+make the indenting of their child content less severe</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">only indent verbatim environments in TTY output, not in non-TTY/PS</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">made another adjustment to correct vertical alignment of admonition marker</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl; other.xsl</literal></para><screen><phrase role="commit-message">Adjusted/corrected alignment of adominition marker in PS/non-TTY output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl</literal></para><screen><phrase role="commit-message">For PS/non-TTY output, display footnote/endnote numbers in
+superscript.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: table.xsl; synop.xsl; utility.xsl</literal></para><screen><phrase role="commit-message">Changed handling of hanging indents for cmdsynopsis, funcsynopsis,
+and synopfragment such that they now look correct in non-TTY/PS
+output. We now use the groff \w escape to hang by the actual width
+-- in the current font -- of the command, funcdef, or
+synopfragment references number (as opposed to hanging by the
+number of characters). This rendering in TTY output remains the
+same, since the width in monospaced TTY output is the same as the
+number of characters.
+
+Also, created new synopsis-block-start and synopsis-block-end
+templates to use for cmdsynopsis and funcsynopsis instead of the
+corresponding verbatim-* templates.
+
+Along with those changes, also corrected a problem that caused the
+content of synopfragment to be dropped, and made a
+vertical-spacing change to adjust spacing around table titles and
+among sibling synopfragment instances.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">use common l10.language.name template to retrieve English-language name</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl; inline.xsl</literal></para><screen><phrase role="commit-message">added comment in code explaining why we don't put filename output
+in italic (despite the fact that man guidelines say we should)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl</literal></para><screen><phrase role="commit-message">put filename output in monospace instead of italic</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl</literal></para><screen><phrase role="commit-message">put cmdsynopsis in monospace</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl</literal></para><screen><phrase role="commit-message">removed template match for literal. template matches for monospace
+inlines are all imported from the HTML stylesheet</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">don't indent verbatim environments that are descendants of
+refsynopsisdiv, not put backgrounds behind them</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl</literal></para><screen><phrase role="commit-message">set output of the literal element in monospace. this causes all
+inline monospace instances in the git man pages to be set in
+monospace (since DocBook XML source for git docs is generated with
+asciidoc and asciidoc consistently outputs only &lt;literal&gt; for
+inline monospace (not &lt;command&gt; or &lt;code&gt; or anything else).
+Of course this only affects non-TTY output...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">Added inline.monoseq named template.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">don't bother using a custom register to store the previous
+font-family value when setting blocks of text in code font; just
+use \F[] .fam with no arg to switch back</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl</literal></para><screen><phrase role="commit-message">put links in blue in PS output (note that this matches how groff
+renders content marked up with the .URL macro)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">removed man.links.are.underlined and added man.font.links. Also,
+changed the default font formatting for links to bold.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Added new param man.base.url.for.relative.links .. specifies a
+base URL for relative links (for ulink, @xlink:href, imagedata,
+audiodata, videodata) shown in the generated NOTES section of
+man-page output. The value of man.base.url.for.relative.links is
+prepended to any relative URI that is a value of ulink url,
+xlink:href, or fileref attribute.
+
+If you use relative URIs in link sources in your DocBook refentry
+source, and you leave man.base.url.for.relative.links unset, the
+relative links will appear "as is" in the NOTES section of any
+man-page output generated from your source. That's probably not
+what you want, because such relative links are only usable in the
+context of HTML output. So, to make the links meaningful and
+usable in the context of man-page output, set a value for
+man.base.url.for.relative.links that points
+to the online version of HTML output generated from your DocBook
+refentry source. For example:
+
+  &lt;xsl:param name="man.base.url.for.relative.links"
+  &gt;http://www.kernel.org/pub/software/scm/git/docs/&lt;/xsl:param&gt;</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">If a source refentry contains a Documentation or DOCUMENTATION
+section, don't report it as having missing AUTHOR information.
+Also, if missing a contrib/personblurb for a person or org, report
+pointers to http://docbook.sf.net/el/personblurb and to
+http://docbook.sf.net/el/contrib</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">If we encounter an author|editor|othercredit instance that lacks a
+personblurb or contrib, report it to the user (because that means
+we have no information about that author|editor|othercredit to
+display in the generated AUTHOR|AUTHORS section...)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl; docbook.xsl; other.xsl</literal></para><screen><phrase role="commit-message">if we can't find any usable author data, emit a warning and insert
+a fixme in the output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">fixed bug in indenting of output for contrib instances in AUTHORS
+section. Thanks to Daniel Leidert and the fglrx docs for exposing
+the bug.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">for a para or simpara that is the first child of a callout,
+suppress the .sp or .PP that would normally be output (because in
+those cases, the output goes into a table cell, and the .sp or .PP
+markup causes a spurious linebreak before it when displayed</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Added support for rendering co callouts and calloutlist instances.
+So you can now use simple callouts -- marking up programlisting
+and such with co instances -- and have the callouts displayed in
+man-page output. ("simple callouts" means using co@id and
+callout@arearefs pointing to co@id instances; in man/roff output,
+we can't/don't support markup that uses areaset and area)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">only put a line of space after a verbatim if it's followed by a
+text node or a paragraph</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">put verbatim environments in slightly smaller font in non-TTY
+output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">minor whitespace-only reformatting of lists.xsl source</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Made refinements/fixes to output of orderedlist and itemizedlist
+-- in part, to get mysql man pages to display correctly. This
+change causes a "\c" continuation marker to be added between
+listitem markers and contents (to ensure that the content remains
+on the same line as the marker when displayed)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">put a line of vertical space after all verbatim output that has
+sibling content following it (not just if that sibling content is
+a text node)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">refined spacing around titles for admonitions</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl; other.xsl</literal></para><screen><phrase role="commit-message">Deal with case of verbatim environments that have a linebreak
+after the opening tag. Assumption is that users generally don't
+want that linebreak to appear in output, so we do some groff
+hackery to mess with vertical spacing and close the space.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl</literal></para><screen><phrase role="commit-message">indexterm instances now produce groff comments like this:
+
+  .\" primary: secondary: tertiary
+
+remark instances, if non-empty, now produce groff comments</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: charmap.groff.xsl; other.xsl</literal></para><screen><phrase role="commit-message">convert no-break space character to groff "\ \&amp;" (instead of just
+"\ "). the reason is that if a space occurs at the end of a line,
+our processing causes it to be eaten. a real-world case of this is
+the mysql(1) man page. appending the "\&amp;" prevents that</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">output "sp" before simpara output, not after it (outputting it
+after results in undesirable whitespace in particular cases; for
+example, in the hg/mercurial docs</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: table.xsl; synop.xsl; utility.xsl</literal></para><screen><phrase role="commit-message">renamed from title-preamble to pinch.together and replaced "sp -1"
+between synopsis fragments with call to pinch.together instead</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: table.xsl</literal></para><screen><phrase role="commit-message">use title-preamble template for table titles (instead of "sp -1"
+hack), and "sp 1" after all tables (instead of just "sp"</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">created title-preamble template for suppressing line spacing after
+headings</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">further refinement of indenting in AUTHORS section</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl; other.xsl</literal></para><screen><phrase role="commit-message">refined handling of admonitions</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Use RS/RE in another place where we had IP ""</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">Replace (ab)use of IP with "sp -1" in AUTHORS section with RS/RE
+instead.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: table.xsl; synop.xsl; info.xsl</literal></para><screen><phrase role="commit-message">changed all instances of ".sp -1n" to ".sp -1"</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">add extra line before SH heads only in non-TTY output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">Reworked output for admonitions (caution, important, note, tip,
+warning). In TTY output, admonitions now get indented. In non-TTY
+output, a colored marker (yellow) is displayed next to them.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">Added BM/EM macros for putting a colored marker in margin next to
+a block of text.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">created make.bold.title template by moving title-bolding part out
+from nested-section-title template. This allows the bolding to
+also be used by the template for formatting admonitions</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">put .br before copyright contents to prevent them from getting run in</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl; other.xsl; utility.xsl</literal></para><screen><phrase role="commit-message">made point size of output for Refsect2 and Refsect3 heads bigger</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">put slightly more space between SH head and underline in non-TTY
+output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: param.xweb; param.ent; other.xsl</literal></para><screen><phrase role="commit-message">Added the man.charmap.subset.profile.english parameter and refined
+the handling of charmap subsets to differentiate between English
+and non-English source.
+
+This way charmap subsets are now handled is this:
+
+If the value of the man.charmap.use.subset parameter is non-zero,
+and your DocBook source is not written in English (that is, if its
+lang or xml:lang attribute has a value other than en), then the
+character-map subset specified by the man.charmap.subset.profile
+parameter is used instead of the full roff character map.
+
+Otherwise, if the lang or xml:lang attribute on the root element
+in your DocBook source or on the first refentry element in your
+source has the value en or if it has no lang or xml:lang
+attribute, then the character-map subset specified by the
+man.charmap.subset.profile.english parameter is used instead of
+man.charmap.subset.profile.
+
+The difference between the two subsets is that
+man.charmap.subset.profile provides mappings for characters in
+Western European languages that are not part of the Roman
+(English) alphabet (ASCII character set).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">Various updates, mainly related to uppercasing SH titles:
+
+  - added a "Language: " metadata line to the top comment area of
+    output man pages, to indicate the language the page is in
+
+  - added a "toupper" macro of doing locale-aware uppercasing of
+    SH titles and cross-references to SH titles; the mechanism
+    relies on the uppercase.alpha and lowercase.alpha DocBook
+    gentext keys to do locale-aware uppercasing based on the
+    language the page is written in
+
+  - added a "string.shuffle" template, which provides a library
+    function for "shuffling" two strings together into a single
+    string; it takes the first character for the first string, the
+    first character from second string, etc. The only current use
+    for it is to generate the argument for the groff tr request
+    that does string uppercasing.
+
+  - added make.tr.uppercase.arg and make.tr.normalcase.arg named
+    templates for use in generating groff code for uppercasing and
+    "normal"-casing SH titles
+
+  - made the BB/BE "background drawing" macros have effect only in
+    non-TTY output
+
+  - output a few comments in the top part of source</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">removed some leftover kruft</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">To create the name(s) for each man page, we now replace any spaces
+in the refname(s) with underscores. This ensures that tools like
+lexgrog(1) will be able to parse the name (lexgrog won't parse
+names that contain spaces).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: docbook.xsl</literal></para><screen><phrase role="commit-message">Put a comment into source of man page to indicate where the main
+content starts. (We now have a few of macro definitions at the
+start of the source, so putting this comment in helps those that
+might be viewing the source.)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">refined mechanism for generating SH titles</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: charmap.groff.xsl</literal></para><screen><phrase role="commit-message">Added zcaron, Zcaron, scaron, and Scaron to the groff character map.
+This means that generated Finnish man pages will no longer contain
+any raw accented characters -- they'll instead by marked up with
+groff escapes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl; utility.xsl</literal></para><screen><phrase role="commit-message">corrected a regression I introduced about a year ago that caused
+dots to be output just as "\." -- instead needs to be "\&amp;." (which
+is what it will be now, after this change)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">Changed backend handling for generating titles for SH sections and
+for cross-references to those sections. This should have no effect
+on TTY output (behavior should remain the same hopefully) but
+results in titles in normal case (instead of uppercase) in PS
+output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">use make.subheading template to make subheadings for AUTHORS and
+COPYRIGHT sections (instead of harcoding roff markup)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">put code font around programlisting etc.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl; docbook.xsl</literal></para><screen><phrase role="commit-message">embed custom macro definitions in man pages, plus wrap synopsis in
+code font</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl</literal></para><screen><phrase role="commit-message">use the make.subheading template to generated SH subheading for
+endnotes section.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Added some templates for generating if-then-else conditional
+markup in groff, so let's use those instead of hard-coding it in
+multiple places...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl; utility.xsl</literal></para><screen><phrase role="commit-message">Initial checkin of some changes related to making PS/PDF output
+from "man -l -Tps" look better. The current changes:
+
+  - render synopsis and verbatim sections in a monospace/code font
+
+  - put a light-grey background behind all programlisting, screen,
+    and literallayout instances
+
+  - prevent SH heads in PS output from being rendered in uppercase
+    (as they are in console output)
+
+  - also display xrefs to SH heads in PS output in normal case
+    (instead of uppercase)
+
+  - draw a line under SH heads in PS output
+
+The changes made to the code to support the above features were:
+
+  - added some embedded/custom macros: one for conditionally
+    upper-casing SH x-refs, one for redefining the SH macro
+    itself, with some conditional handling for PS output, and
+    finally a macro for putting a background/screen (filled box)
+    around a block of text (e.g., a program listing) in PS output
+
+  - added utility templates for wrapping blocks of text in code
+    font; also templates for inline code font</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: refentry.xsl</literal></para><screen><phrase role="commit-message">refpurpose nodes now get apply-templates instead of just normalize-space().</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Fixed alignment of first lined of text for each listitem in
+orderedlist output for TTY. Existing code seemed to have been
+causing an extra undesirable space to appear.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Wrapped some roff conditionals around roff markup for orderedlist
+and itemizedlist output, so that the lists look acceptable in PS
+output as well as TTY.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: pi.xsl; synop.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Added the man.funcsynopsis.style parameter. Has the same effect in
+manpages output as the funcsynopsis.style parameter has in HTML
+output -- except that its default value is 'ansi' instead of 'kr'.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl</literal></para><screen><phrase role="commit-message">Reworked handling of K&amp;R funcprototype output. It no longer relies
+on the HTML kr-tabular templates, but instead just does direct
+transformation to roff. For K&amp;R output, it displays the paramdef
+output in an indented list following the prototype.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl</literal></para><screen><phrase role="commit-message">Properly integrated handling for K&amp;R output into manpages
+stylesheet. The choice between K&amp;R output and ANSI output is
+currently controlled through use of the (HTML) funcsynopsis.style
+parameter. Note that because the mechanism does currently rely on
+funcsynopsis.style, the default in manpages output is now K&amp;R
+(because that's the default of that param). But I suppose I ought
+to create a man.funcsynopsis.style and make the default for that
+ANSI (to preserve the existing default behavior).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: docbook.xsl</literal></para><screen><phrase role="commit-message">added manpages/pi.xsl file</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: .cvsignore; pi.xsl</literal></para><screen><phrase role="commit-message">Added "dbman funcsynopsis-style" PI and incorporated it into the
+doc build.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">Fixed regression that caused an unescaped dash to be output
+between refname and refpurpose content. Closes bug #1894244.
+Thanks to Daniel Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: other.xsl</literal></para><screen><phrase role="commit-message">Fixed problem with dots being escaped in filenames of generated
+man files. Closes #1827195. Thanks to Daniel Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl</literal></para><screen><phrase role="commit-message">Added support for processing structfield (was appearing in roff
+output surrounded by HTML &lt;em&gt; tags; fixed so that it gets roff
+ital markup). Closes bug #1858329.  Thanks to Sam Varshavchik.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Epub">
+<title>Epub</title>
+<para>The following changes have been made to the
+            <filename>epub</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem> <para><literal>Keith Fahlgren: bin/spec/README; bin/spec/epub_realbook_spec.rb</literal></para><screen><phrase role="commit-message">'Realbook' spec now passes</phrase></screen> </listitem>
+<listitem> <para><literal>Keith Fahlgren: bin/dbtoepub; README; bin/spec/README; bin/lib/docbook.rb; bin/spec/epub_r⋯</literal></para><screen><phrase role="commit-message">Very primitive Windows support for dbtoepub <tag>reference</tag> implementation; README for running tests and for the .epub target in general; shorter realbook test document (still fails for now)</phrase></screen> </listitem>
+<listitem> <para><literal>Keith Fahlgren: bin/dbtoepub; bin/spec/epub_regressions_spec.rb; bin/lib/docbook.rb; bin/s⋯</literal></para><screen><phrase role="commit-message">Changes to OPF spine to not duplicate idrefs for documents with parts not at the root; regression specs for same</phrase></screen> </listitem>
+<listitem> <para><literal>Keith Fahlgren: docbook.xsl</literal></para><screen><phrase role="commit-message">Fixing linking to <tag>cover</tag> @id, distinct from other needs of cover-image-id (again, thanks to Martin Goerner)</phrase></screen> </listitem>
+<listitem> <para><literal>Keith Fahlgren: docbook.xsl</literal></para><screen><phrase role="commit-message">Updating the <tag>title</tag> of the <tag>toc</tag> element in the guide to be more explicit (thanks to Martin Goerner)</phrase></screen> </listitem>
+<listitem>
+<para><literal>Keith Fahlgren: bin/spec/examples/amasque_exploded/content.opf; bin/spec/examples/amasque_⋯</literal></para><screen><phrase role="commit-message">Initial checkin/merge of epub target from work provided by Paul Norton of Adobe
+and Keith Fahlgren of O'Reilly.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: docbook.xsl</literal></para><screen><phrase role="commit-message">== General epub test support
+
+$ spec -O ~/.spec.opts spec/epub_spec.rb 
+
+DocBook::Epub
+- should be able to be created
+- should fail on a nonexistent file
+- should be able to render to a file
+- should create a file after rendering
+- should have the correct mimetype after rendering
+- should be valid .epub after rendering an article
+- should be valid .epub after rendering an article without sections
+- should be valid .epub after rendering a book
+- should be valid .epub after rendering a book even if it has one graphic
+- should be valid .epub after rendering a book even if it has many graphics
+- should be valid .epub after rendering a book even if it has many duplicated graphics
+- should report an empty file as invalid
+- should confirm that a valid .epub file is valid
+- should not include PDFs in rendered epub files as valid image inclusions
+- should include a TOC link in rendered epub files for &lt;book&gt;s
+
+Finished in 20.608395 seconds
+
+15 examples, 0 failures
+
+
+== Verbose epub test coverage against _all_ of the testdocs 
+
+Fails on only (errors truncated):
+1)
+'DocBook::Epub should be able to render a valid .epub for the test document /Users/keith/work/docbook-dev/trunk/xsl/epub/bin/spec/testdocs/calloutlist.003.xml [30]' FAILED
+'DocBook::Epub should be able to render a valid .epub for the test document /Users/keith/work/docbook-dev/trunk/xsl/epub/bin/spec/testdocs/cmdsynopsis.001.xml [35]' FAILED
+....
+
+Finished in 629.89194 seconds
+
+224 examples, 15 failures
+
+224 examples, 15 failures yields 6% failure rate</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Epub changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_HTMLHelp">
+<title>HTMLHelp</title>
+<para>The following changes have been made to the
+            <filename>htmlhelp</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: htmlhelp-common.xsl</literal></para><screen><phrase role="commit-message">Added &lt;xsl:with-param name="quiet" select="$chunk.quietly"/&gt; to calls to
+the write.chunk, write.chunk.with.doctype, and write.text.chunk templates.
+This makes chunk.quietly=1 suppress chunk filename messages also for help 
+support files (which seems to be what one would expect). See bug #1648360.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTMLHelp changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Eclipse">
+<title>Eclipse</title>
+<para>The following changes have been made to the
+            <filename>eclipse</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>David Cramer: eclipse.xsl</literal></para><screen><phrase role="commit-message">Use sortas attributes (if they exist) when sorting indexterms</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: eclipse.xsl</literal></para><screen><phrase role="commit-message">Added support for indexterm/see in eclipse index.xml</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: eclipse.xsl</literal></para><screen><phrase role="commit-message">Added &lt;xsl:with-param name="quiet" select="$chunk.quietly"/&gt;
+to helpidx template.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: eclipse.xsl</literal></para><screen><phrase role="commit-message">Generate index.xml file and add related goo to plugin.xml file. Does not yet support see and seealso.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: eclipse.xsl</literal></para><screen><phrase role="commit-message">Added &lt;xsl:with-param name="quiet" select="$chunk.quietly"/&gt; to calls to
+the write.chunk, write.chunk.with.doctype, and write.text.chunk templates.
+This makes chunk.quietly=1 suppress chunk filename messages also for help 
+support files (which seems to be what one would expect). See bug #1648360.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Eclipse changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_JavaHelp">
+<title>JavaHelp</title>
+<para>The following changes have been made to the
+            <filename>javahelp</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: javahelp.xsl</literal></para><screen><phrase role="commit-message">Added &lt;xsl:with-param name="quiet" select="$chunk.quietly"/&gt; to calls to
+the write.chunk, write.chunk.with.doctype, and write.text.chunk templates.
+This makes chunk.quietly=1 suppress chunk filename messages also for help 
+support files (which seems to be what one would expect). See bug #1648360.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of JavaHelp changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; wordml2normalise.xsl</literal></para><screen><phrase role="commit-message">fix table/cell borders for wordml, fix formal figure, add emphasis-strong</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: supported.xml</literal></para><screen><phrase role="commit-message">Changed @cols to 5.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; blocks2dbk.dtd; template.xml</literal></para><screen><phrase role="commit-message">added pubdate, fixed metadata handling in biblioentry</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: supported.xml</literal></para><screen><phrase role="commit-message">Added support for edition.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: docbook-pages.xsl; wordml-blocks.xsl; docbook.xsl; wordml.xsl; pages-normalise⋯</literal></para><screen><phrase role="commit-message">Removed stylesheets for old, deprecated conversion method.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: specifications.xml; dbk2ooo.xsl; blocks2dbk.xsl; dbk2pages.xsl; blocks2dbk.dtd⋯</literal></para><screen><phrase role="commit-message">Added support for Open Office, added edition element, improved list and table support in Word and Pages</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: normalise-common.xsl; blocks2dbk.xsl; dbk2pages.xsl; template-pages.xml; templ⋯</literal></para><screen><phrase role="commit-message">Fixed bug in WordML table handling, improved table handling for Pages 08, synchronised WordML and Pages templates.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: normalise-common.xsl; blocks2dbk.xsl; wordml2normalise.xsl; dbk2wp.xsl</literal></para><screen><phrase role="commit-message">fix caption, attributes</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: specifications.xml; blocks2dbk.xsl; wordml2normalise.xsl; blocks2dbk.dtd; temp⋯</literal></para><screen><phrase role="commit-message">Fixes to table and list handling</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl</literal></para><screen><phrase role="commit-message">added support for explicit emphasis character styles</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: wordml2normalise.xsl</literal></para><screen><phrase role="commit-message">added support for customisation in image handling</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl</literal></para><screen><phrase role="commit-message">Added inlinemediaobject support for metadata.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: normalise-common.xsl; blocks2dbk.xsl; template.xml; dbk2wordml.xsl; dbk2wp.xsl</literal></para><screen><phrase role="commit-message">Added support file. Added style locking. Conversion bug fixes.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Roundtrip changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Slides">
+<title>Slides</title>
+<para>The following changes have been made to the
+            <filename>slides</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: fo/Makefile; html/Makefile</literal></para><screen><phrase role="commit-message">Added checks and hacks to various makefiles to enable building
+under Cygwin. This stuff is ugly and maybe not worth the mess and
+trouble, but does seem to work as expected and not break anything
+else.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: html/plain.xsl</literal></para><screen><phrase role="commit-message">Added support for showing foil number</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Slides changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Website">
+<title>Website</title>
+<para>The following changes have been made to the
+            <filename>website</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: extensions/saxon64/.classes/.gitignore; extensions/xalan2/.classes/com/⋯</literal></para><screen><phrase role="commit-message">renamed a bunch more .cvsignore files to .gitignore (to facilitate use of git-svn)</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Website changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem> <para><literal>Keith Fahlgren: epub.autolabel.xml</literal></para><screen><phrase role="commit-message">New parameter for epub, epub.autolabel</phrase></screen> </listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: table.frame.border.color.xml; table.cell.padding.xml; table.cell.border.t⋯</literal></para><screen><phrase role="commit-message">Added missing refpurposes and descriptions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Keith Fahlgren: ade.extensions.xml</literal></para><screen><phrase role="commit-message">Extensions to support Adobe Digital Editions extensions in .epub output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: fop.extensions.xml; fop1.extensions.xml</literal></para><screen><phrase role="commit-message">Clarified that fop1.extensions is for FOP 0.90 and later. Version 1 is not here yet...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.links.are.underlined.xml; man.endnotes.list.enabled.xml; man.font.l⋯</literal></para><screen><phrase role="commit-message">removed man.links.are.underlined and added man.font.links. Also,
+changed the default font formatting for links to bold.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.base.url.for.relative.links.xml</literal></para><screen><phrase role="commit-message">Added new param man.base.url.for.relative.links .. specifies a
+base URL for relative links (for ulink, @xlink:href, imagedata,
+audiodata, videodata) shown in the generated NOTES section of
+man-page output. The value of man.base.url.for.relative.links is
+prepended to any relative URI that is a value of ulink url,
+xlink:href, or fileref attribute.
+
+If you use relative URIs in link sources in your DocBook refentry
+source, and you leave man.base.url.for.relative.links unset, the
+relative links will appear "as is" in the NOTES section of any
+man-page output generated from your source. That's probably not
+what you want, because such relative links are only usable in the
+context of HTML output. So, to make the links meaningful and
+usable in the context of man-page output, set a value for
+man.base.url.for.relative.links that points
+to the online version of HTML output generated from your DocBook
+refentry source. For example:
+
+  &lt;xsl:param name="man.base.url.for.relative.links"
+  &gt;http://www.kernel.org/pub/software/scm/git/docs/&lt;/xsl:param&gt;</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.string.subst.map.xml</literal></para><screen><phrase role="commit-message">squeeze .sp\n.sp into a single .sp (to prevent a extra, spurious
+line of whitespace from being inserted after programlisting etc.
+in certain cases)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.manual.fallback.profile.xml; refentry.source.fallback.profile.⋯</literal></para><screen><phrase role="commit-message">don't use refmiscinfo@class=date value as fallback for refentry
+"source" or "manual" metadata fields</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.charmap.subset.profile.xml; man.charmap.enabled.xml; man.charmap.su⋯</literal></para><screen><phrase role="commit-message">made some further doc tweaks related to the
+man.charmap.subset.profile.english param</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.charmap.subset.profile.xml; man.charmap.enabled.xml; man.charmap.su⋯</literal></para><screen><phrase role="commit-message">Added the man.charmap.subset.profile.english parameter and refined
+the handling of charmap subsets to differentiate between English
+and non-English source.
+
+This way charmap subsets are now handled is this:
+
+If the value of the man.charmap.use.subset parameter is non-zero,
+and your DocBook source is not written in English (that is, if its
+lang or xml:lang attribute has a value other than en), then the
+character-map subset specified by the man.charmap.subset.profile
+parameter is used instead of the full roff character map.
+
+Otherwise, if the lang or xml:lang attribute on the root element
+in your DocBook source or on the first refentry element in your
+source has the value en or if it has no lang or xml:lang
+attribute, then the character-map subset specified by the
+man.charmap.subset.profile.english parameter is used instead of
+man.charmap.subset.profile.
+
+The difference between the two subsets is that
+man.charmap.subset.profile provides mappings for characters in
+Western European languages that are not part of the Roman
+(English) alphabet (ASCII character set).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.charmap.subset.profile.xml</literal></para><screen><phrase role="commit-message">Added to default charmap used by manpages:
+
+  - the "letters" part of the 'C1 Controls And Latin-1 Supplement
+    (Latin-1 Supplement)' Unicode block
+  - Latin Extended-A block (but not all of the characters from
+    that block have mappings in groff, so some of them are still
+    passed through as-is)
+
+The effects of this change are that in man pages generated for
+most Western European languages and for Finnish, all characters
+not part of the Roman alphabet are (e.g., "accented" characters)
+are converted to groff escapes.
+
+Previously, by default we passed through those characters as is
+(and users needed to use the full charmap if they wanted to have
+those characters converted).
+
+As a result of this change, man pages generated for Western
+European languages will be viewable in some environments in which
+they are not viewable if the "raw" non-Roman characters are in them.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: generate.legalnotice.link.xml; generate.revhistory.link.xml</literal></para><screen><phrase role="commit-message">Added information on how the filename is computed.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: default.table.width.xml</literal></para><screen><phrase role="commit-message">Clarified PI usage.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.funcsynopsis.style.xml</literal></para><screen><phrase role="commit-message">Added the man.funcsynopsis.style parameter. Has the same effect in
+manpages output as the funcsynopsis.style parameter has in HTML
+output -- except that its default value is 'ansi' instead of 'kr'.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: funcsynopsis.tabular.threshold.xml</literal></para><screen><phrase role="commit-message">Removed the funcsynopsis.tabular.threshold param. It's no longer
+being used in the code and hasn't been since mid 2006.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: table.properties.xml</literal></para><screen><phrase role="commit-message">Set keep-together.within-column to "auto". This seems to be the most sensible
+default value for tables.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: informal.object.properties.xml; admon.graphics.extension.xml; informalequ⋯</literal></para><screen><phrase role="commit-message">Several small documentation fixes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: manifest.in.base.dir.xml</literal></para><screen><phrase role="commit-message">Wording fixes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: header.content.properties.xml; footer.content.properties.xml</literal></para><screen><phrase role="commit-message">Added refpurpose.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: ulink.footnotes.xml; ulink.show.xml</literal></para><screen><phrase role="commit-message">Updated for DocBook 5.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: index.method.xml; glossterm.auto.link.xml</literal></para><screen><phrase role="commit-message">Spelling and wording fixes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: callout.graphics.extension.xml</literal></para><screen><phrase role="commit-message">Clarifed available graphics formats and extensions.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: footnote.sep.leader.properties.xml</literal></para><screen><phrase role="commit-message">Corrected refpurpose.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: footnote.properties.xml</literal></para><screen><phrase role="commit-message">Added more properties which make it possible to render correctly footnotes placed inside verbatim elements.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: img.src.path.xml</literal></para><screen><phrase role="commit-message">img.src.path works with inlinegraphic too.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: saxon.character.representation.xml</literal></para><screen><phrase role="commit-message">Added TCG link.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: img.src.path.xml</literal></para><screen><phrase role="commit-message">Updated description of img.src.path. Bug #1785224 revealed that 
+there was a risk of misunderstanding how it works.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Profiling">
+<title>Profiling</title>
+<para>The following changes have been made to the
+            <filename>profiling</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: xsl2profile.xsl</literal></para><screen><phrase role="commit-message">Added new rules to profile all content generated by HTML Help (including alias files)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: profile-mode.xsl</literal></para><screen><phrase role="commit-message">use mode="profile" instead of xsl:copy-of for attributes so
+they can be more easily customized.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Profiling changes for 1.74.0-->
+
+
+<sect2 xml:id="V1.74.0_Tools">
+<title>Tools</title>
+<para>The following changes have been made to the
+            <filename>tools</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: make/Makefile.DocBook</literal></para><screen><phrase role="commit-message">various changes and additions to support making with asciidoc as
+an input format</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: make/Makefile.DocBook</literal></para><screen><phrase role="commit-message">make dblatex the default PDF maker for the example makefile</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: xsl/build/html2roff.xsl</literal></para><screen><phrase role="commit-message">Reworked handling of K&amp;R funcprototype output. It no longer relies
+on the HTML kr-tabular templates, but instead just does direct
+transformation to roff. For K&amp;R output, it displays the paramdef
+output in an indented list following the prototype.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: xsl/build/make-xsl-params.xsl</literal></para><screen><phrase role="commit-message">Made attribute-sets members of the param list. This enables links to attribute-sets in the
+reference documentation.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: xsl/build/html2roff.xsl</literal></para><screen><phrase role="commit-message">use .BI handling in K&amp;R funsynopsis output for manpages, just as
+we do already of ANSI output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: xsl/build/html2roff.xsl</literal></para><screen><phrase role="commit-message">Implemented initial support for handling tabular K&amp;R output of
+funcprototype in manpages output. Accomplished by adding more
+templates to the intermediate HTML-to-roff stylesheet that the
+build uses to create the manpages/html-synop.xsl stylesheet.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: xsl/build/doc-link-docbook.xsl</literal></para><screen><phrase role="commit-message">Made the xsl/tools/xsl/build/doc-link-docbook.xsl stylesheet
+import profile-docbook.xsl, so that we can do profiling of release
+notes. Corrected some problems in the target for the release-notes
+HTML build.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Tools changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_Extensions">
+<title>Extensions</title>
+<para>The following changes have been made to the
+            <filename>extensions</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem> <para><literal>Keith Fahlgren: Makefile</literal></para><screen><phrase role="commit-message">Use DOCBOOK_SVN variable everywhere, please; build with PDF_MAKER</phrase></screen> </listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile</literal></para><screen><phrase role="commit-message">moved extensions build targets from master xsl/Makefile to
+xsl/extensions/Makefile</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: .cvsignore</literal></para><screen><phrase role="commit-message">re-adding empty extensions subdir</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Extensions changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_XSL-Saxon">
+<title>XSL-Saxon</title>
+<para>The following changes have been made to the
+            <filename>xsl-saxon</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: VERSION</literal></para><screen><phrase role="commit-message">bring xsl2, xsl-saxon, and xsl-xalan VERSION files up-to-date with
+recent change to snapshot build infrastructure</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: nbproject/build-impl.xml; nbproject/project.properties</literal></para><screen><phrase role="commit-message">Changed hard-coded file references in "clean" target to variable
+references. Closes #1792043. Thanks to Daniel Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: VERSION; Makefile</literal></para><screen><phrase role="commit-message">Did post-release wrap-up of xsl-saxon and xsl-xalan dirs</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: nbproject/build-impl.xml; VERSION; Makefile; test</literal></para><screen><phrase role="commit-message">More tweaks to get release-ready</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Saxon changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_XSL-Xalan">
+<title>XSL-Xalan</title>
+<para>The following changes have been made to the
+            <filename>xsl-xalan</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: VERSION</literal></para><screen><phrase role="commit-message">bring xsl2, xsl-saxon, and xsl-xalan VERSION files up-to-date with
+recent change to snapshot build infrastructure</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: nbproject/build-impl.xml</literal></para><screen><phrase role="commit-message">Changed hard-coded file references in "clean" target to variable
+references. Closes #1792043. Thanks to Daniel Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile; VERSION</literal></para><screen><phrase role="commit-message">Did post-release wrap-up of xsl-saxon and xsl-xalan dirs</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile; nbproject/build-impl.xml; VERSION</literal></para><screen><phrase role="commit-message">More tweaks to get release-ready</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Xalan changes for 1.74.0-->
+
+<sect2 xml:id="V1.74.0_XSL-libxslt">
+<title>XSL-libxslt</title>
+<para>The following changes have been made to the
+            <filename>xsl-libxslt</filename> code
+            since the 1.73.2 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: python/xslt.py</literal></para><screen><phrase role="commit-message">Print the result to stdout if no outfile has been given.
+Some unnecessary semicolons removed.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: python/xslt.py</literal></para><screen><phrase role="commit-message">Added a function that quotes parameter values (to ensure that they are interpreted as strings).
+Replaced deprecated functions from the string module with string methods.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: python/README; python/README.LIBXSLT</literal></para><screen><phrase role="commit-message">renamed xsl-libxslt/python/README to xsl-libxslt/python/README.LIBXSLT</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: python/README</literal></para><screen><phrase role="commit-message">Tweaked the text a little.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-libxslt changes for 1.74.0-->
+
+</sect1>
+
+<sect1 xml:id="V1.73.2">
+<title>Release Notes: 1.73.2</title>
+<para>This is solely a minor bug-fix update to the 1.73.1 release.
+  It fixes a packaging error in the 1.73.1 package, as well as a
+  bug in footnote handling in FO output.</para>
+</sect1>
+
+<sect1 xml:id="V1.73.1">
+<title>Release: 1.73.1</title>
+<para>This is mostly a bug-fix update to the 1.73.0 release.</para>
+
+<sect2 xml:id="V1.73.1_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the
+            <filename>gentext</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: locale/de.xml</literal></para><screen><phrase role="commit-message">Applied patch #1766009.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/lv.xml</literal></para><screen><phrase role="commit-message">Added localization for <tag>ProductionSet</tag>.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: table.xsl</literal></para><screen><phrase role="commit-message">Modified the <tag>tgroup</tag> template so that, for tables with multiple tgroups, 
+a width attribute is output on all corresponding fo:tables. Previously, 
+there was a test prohibiting this (and a comment saying that outputting more
+than one width attribute will cause an error). But this seems to be no longer 
+relevant; it is not a problem with FOP 0.93 or XEP 4.10. Closes bug #1760559.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: graphics.xsl</literal></para><screen><phrase role="commit-message">Replaced useless &lt;a&gt; elements with warning messages (textinsert extension).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: admon.xsl</literal></para><screen><phrase role="commit-message">Enabled generation of ids (on fo:wrapper) for indexterms in admonition titles, so that page
+references in the <tag>index</tag> can be created. Closes bug #1775086.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Added &lt;xsl:call-template name="process.footnotes"/&gt; to <tag>abstract</tag> template
+so that footnotes in <tag>info</tag>/<tag>abstract</tag> are processed. Closes bug #1760907.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: pi.xsl; synop.xsl</literal></para><screen><phrase role="commit-message">Changed handling of HTML output for the <tag>cmdsynopsis</tag> and
+<tag>funcsynopsis</tag> elements, such that a@id instances are generated for
+them if they are descendants of any element containing a dbcmdlist
+or dbfunclist PI. Also, update the embedded <tag>reference</tag> docs for the
+dbcmdlist and dbfunclist PIs to make it clear that they can be
+used within any element for which <tag>cmdsynopsis</tag> or <tag>funcsynopsis</tag> are
+valid children.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: formal.xsl</literal></para><screen><phrase role="commit-message">Reverted the part of <tag>revision</tag> 6952 that caused a@id anchors to be
+generated for output of informal objects. Thanks to Sam Steingold
+for reporting.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: glossary.xsl</literal></para><screen><phrase role="commit-message">Account for a <tag>glossary</tag> with no <tag>glossdiv</tag> or <tag>glossentry</tag> children.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl</literal></para><screen><phrase role="commit-message">Modified <tag>legalnotice</tag> template so that the base.name parameter is calculated 
+in the same way as for <tag>revhistory</tag> chunks. Using &lt;xsl:apply-templates 
+mode="chunk-filename" select="."/&gt; did not work for single-page output since
+the template with that mode is in chunk-code.xsl.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: graphics.xsl</literal></para><screen><phrase role="commit-message">Updated support for SVG (must be a child of <tag>imagedata</tag> in DB 5).
+Added support for MathML in <tag>imagedata</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Added documentation for the dbhh PI (used for context-sensitive HTML Help).
+(The two templates matching 'dbhh' are still in htmlhelp-common.xsl).</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl</literal></para><screen><phrase role="commit-message">In manpages output, generate warnings about notesources with
+non-para children only if the notesource is a <tag>footnote</tag> or
+<tag>annotation</tag>. Thanks to Sam Steingold for reporting problems with
+the existing handling.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_HTMLHelp">
+<title>HTMLHelp</title>
+<para>The following changes have been made to the
+            <filename>htmlhelp</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: htmlhelp-common.xsl</literal></para><screen><phrase role="commit-message">Added single-pass namespace-stripping support to the htmlhelp,
+eclipse, and javahelp stylesheets.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTMLHelp changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_Eclipse">
+<title>Eclipse</title>
+<para>The following changes have been made to the
+            <filename>eclipse</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: eclipse.xsl</literal></para><screen><phrase role="commit-message">Added single-pass namespace-stripping support to the htmlhelp,
+eclipse, and javahelp stylesheets.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Eclipse changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_JavaHelp">
+<title>JavaHelp</title>
+<para>The following changes have been made to the
+            <filename>javahelp</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: javahelp.xsl</literal></para><screen><phrase role="commit-message">Added single-pass namespace-stripping support to the htmlhelp,
+eclipse, and javahelp stylesheets.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of JavaHelp changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; blocks2dbk.dtd; pages2normalise.xsl</literal></para><screen><phrase role="commit-message">Modularised blocks2dbk to allow customisation,
+Added support for tables to pages2normalise</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Roundtrip changes for 1.73.1-->
+
+<sect2 xml:id="V1.73.1_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.73.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: procedure.properties.xml</literal></para><screen><phrase role="commit-message"><tag>procedure</tag> was inheriting keep-together from formal.object.properties, but
+a <tag>procedure</tag> does not need to be kept together by default.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Dave Pawson: title.font.family.xml; component.label.includes.part.label.xml; table.frame.b⋯</literal></para><screen><phrase role="commit-message">Regular formatting re-org.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.73.1-->
+</sect1>
+
+<sect1 xml:id="V1.73.0">
+<title>Release: 1.73.0</title>
+<para>This release includes important bug fixes and adds the following
+significant feature changes:
+<variablelist>
+  <varlistentry>
+    <term>New localizations and localization updates</term>
+    <listitem>
+      <para>We added two new localizations: Latvian and
+        Esperanto, and made updates to the Czech, Chinese
+        Simplified, Mongolian, Serbian, Italian, and Ukrainian
+        localizations.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>ISO690 citation style for bibliography output.</term>
+    <listitem>
+      <para>Set the
+        <parameter>bibliography.style</parameter> parameter to
+        <literal>iso690</literal> to use ISO690 style.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>New documentation for processing instructions (PI)</term>
+    <listitem>
+      <para>The reference documentation that ships with the
+        release now includes <link
+          xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/pi/"
+          >documentation on all PIs</link> that you can use to
+        control output from the stylesheets.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>New profiling parameters for <literal>audience</literal> and <literal>wordsize</literal></term>
+    <listitem>
+      <para>You can now do profiling based on the values of the
+        <literal>audience</literal> and
+        <literal>wordsize</literal> attributes.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Changes to man-page output</term>
+    <listitem>
+      <para>The manpages stylesheet now supports single-pass
+        profiling and single-pass DocBook 5 namespace stripping
+        (just as the HTML and FO stylesheets also do). Also, added
+        handling for <tag>mediaobject</tag> &amp;
+        <tag>inlinemediaobject</tag>. (Each <tag>imagedata</tag>,
+        <tag>audiodata</tag>, or <tag>videodata</tag> element
+        within a <tag>mediaobject</tag> or inline
+        <tag>mediaobject</tag> is now treated as a "notesource"
+        and so handled in much the same way as links and
+        <tag>annotation</tag>/<tag>alt</tag>/<tag>footnote</tag>
+        are in manpages output.) And added the
+        <parameter>man.authors.section.enabled</parameter> and
+        <parameter>man.copyright.section.enabled</parameter>
+        parameters to enable control over whether output includes
+        auto-generated <literal>AUTHORS</literal> and
+        <literal>COPYRIGHT</literal> sections.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Highlighting support for C</term>
+    <listitem>
+      <para>The highlighting mechanism for generating
+        syntax-highlighted code snippets in output now supports C
+        code listings (along with Java, PHP, XSLT, and others).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Experimental <literal>docbook-xsl-update script</literal></term>
+    <listitem>
+      <para>We added an experimental <literal>docbook-xsl-update
+          script</literal>, the purpose of which is to facilitate
+        easy sync-up to the latest docbook-xsl snapshot (by means
+        of rsync).</para>
+    </listitem>
+  </varlistentry>
+</variablelist> 
+</para>
+
+<sect2 xml:id="V1.73.0_Gentext">
+<title>Gentext</title>
+<para>The following changes have been made to the
+<filename>gentext</filename> code
+since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/lv.xml; Makefile</literal></para><screen><phrase role="commit-message">Added Latvian localization file, from Girts Ziemelis.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Dongsheng Song: locale/zh_cn.xml</literal></para><screen><phrase role="commit-message">Brought up to <tag>date</tag> with en.xml in terms of items. A few strings marked for translation.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: locale/cs.xml</literal></para><screen><phrase role="commit-message">Added missing translations</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/eo.xml</literal></para><screen><phrase role="commit-message">New locale for Esperanto.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/mn.xml</literal></para><screen><phrase role="commit-message">Update from Ganbold Tsagaankhuu.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: locale/en.xml; locale/cs.xml</literal></para><screen><phrase role="commit-message">Rules for normalizing <tag>glossary</tag> entries before they are sorted can be now different for each language.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: locale/sr_Latn.xml; locale/sr.xml</literal></para><screen><phrase role="commit-message">Committed changes from Miloš Komarčević to Serbian files.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/ja.xml</literal></para><screen><phrase role="commit-message">Fix <tag>chapter</tag> in context xref-number-and-title</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: locale/it.xml</literal></para><screen><phrase role="commit-message">Improved version from contributor.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: locale/uk.xml</literal></para><screen><phrase role="commit-message">Applied patch 1592083.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Gentext changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+<filename>common</filename> code
+since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: labels.xsl</literal></para><screen><phrase role="commit-message">Changed handling of <tag>reference</tag> auto-labeling such that <tag>reference</tag>
+(when it appears at the component level) is now affected by the
+<parameter>label.from.part</parameter> param, just as <tag>preface</tag>, <tag>chapter</tag>, and <tag>appendix</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: common.xsl</literal></para><screen><phrase role="commit-message">Added support to the HTML stylesheets for proper processing of
+<tag>orgname</tag> as a child of <tag>author</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: refentry.xsl</literal></para><screen><phrase role="commit-message">Refined logging output of <tag>refentry</tag> metadata-gathering template;
+for some cases of "missing" elements (<tag>refmiscinfo</tag> stuff, etc.),
+the log messages now include URL to corresponding page in the
+Definitive Guide (TDG).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: titles.xsl</literal></para><screen><phrase role="commit-message">Add <tag>refsection</tag>/<tag>info</tag>/<tag>title</tag> support.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: titles.xsl</literal></para><screen><phrase role="commit-message">Added support for correct handling of <tag>xref</tag> to elements that
+contain <tag>info</tag>/<tag>title</tag> descendants but no <tag>title</tag> children.
+
+This should be further refined so that it handles any *<tag>info</tag>
+elements. And there are probably some other places where similar
+handling for *<tag>info</tag>/<tag>title</tag> should be added.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: pi.xsl</literal></para><screen><phrase role="commit-message">Modified &lt;xsl:when&gt; in datetime.format template to work
+around Xalan bug.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+<filename>fo</filename> code
+since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: component.xsl</literal></para><screen><phrase role="commit-message">Add parameters to the page.sequence utility template.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: xref.xsl</literal></para><screen><phrase role="commit-message">Added template for <tag>xref</tag> to <tag>area</tag>/<tag>areaset</tag>.
+Part of fix for bug #1675513 (<tag>xref</tag> to <tag>area</tag> broken).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: inline.xsl</literal></para><screen><phrase role="commit-message">Added template match for <tag>person</tag> element to fo stylesheet.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Added support for spacing="compact" in <tag>variablelist</tag>, per bug report #1722540.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message"><tag>table</tag> pgwide="1" should also use pgwide.properties attribute-set.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Make citations numbered if <parameter>bibliography.numbered</parameter> != 0.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add new profiling parameters for audience and wordsize.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Added <parameter>callout.icon.size</parameter> parameter.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl; xref.xsl</literal></para><screen><phrase role="commit-message">Add support for xlink as <tag>olink</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: autotoc.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add support for <parameter>qanda.in.toc</parameter> to fo <tag>TOC</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: component.xsl</literal></para><screen><phrase role="commit-message">Improved the page.sequence utility template for use with <tag>book</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: division.xsl</literal></para><screen><phrase role="commit-message">Refactored the big <tag>book</tag> template into smaller pieces.
+Used the "page.sequence" utility template in
+component.xsl to shorten the <tag>toc</tag> piece.
+Added placeholder templates for front.cover and back.cover.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent; sections.xsl</literal></para><screen><phrase role="commit-message">Add <parameter>section.container.element</parameter> parameter to enable
+pgwide spans inside sections.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent; component.xsl</literal></para><screen><phrase role="commit-message">Add component.titlepage.properties attribute-set to
+support span="all" and other properties.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: htmltbl.xsl; table.xsl</literal></para><screen><phrase role="commit-message">Apply table.row.properties template to html <tag>tr</tag> rows too.
+Add keep-with-next to table.row.properties when <tag>row</tag> is in <tag>thead</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: table.xsl</literal></para><screen><phrase role="commit-message">Add support for <parameter>default.table.frame</parameter> parameter.
+Fix bug 1575446 rowsep last check for @morerows.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: refentry.xsl</literal></para><screen><phrase role="commit-message">Add support for <tag>info</tag>/<tag>title</tag> in refsections.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: qandaset.xsl</literal></para><screen><phrase role="commit-message">Make fo questions and answers behave the same way as html</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: lists.xsl</literal></para><screen><phrase role="commit-message">Added missing attribute set for <tag>procedure</tag></phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: param.xweb; biblio.xsl; docbook.xsl; param.ent; biblio-iso690.xsl</literal></para><screen><phrase role="commit-message">Added support for formatting biblioentries according to ISO690 <tag>citation</tag> style.
+New <tag>bibliography</tag> style can be turned on by setting parameter <parameter>bibliography.style</parameter> to "iso690"
+The code was provided by Jana Dvorakova</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent; pagesetup.xsl</literal></para><screen><phrase role="commit-message">Add header.table.properties and footer.table.properties attribute-sets.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl</literal></para><screen><phrase role="commit-message">Add <parameter>fop1.extensions</parameter> for <tag>menuchoice</tag> arrow handling exception.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Moved declaration and documentation of <parameter>javahelp.encoding</parameter> from javahelp.xsl to the
+regular "parameter machinery".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: admon.xsl</literal></para><screen><phrase role="commit-message">Changed handling of titles for note, warning, <tag>caution</tag>, <tag>important</tag>,
+<tag>tip</tag> admonitions: We now output and HTML h3 head only if
+<parameter>admon.textlabel</parameter> is non-zero or if the admonition actually contains
+a <tag>title</tag>; otherwise, we don't output an h3 head at all.
+(Previously, we were outputting an empty h3 if the <parameter>admon.textlabel</parameter>
+was zero and if the admonition had no title.)</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: xref.xsl</literal></para><screen><phrase role="commit-message">Added template for <tag>xref</tag> to <tag>area</tag>/<tag>areaset</tag>.
+Part of fix for bug #1675513 (<tag>xref</tag> to <tag>area</tag> broken).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: titlepage.xsl; component.xsl; division.xsl; sections.xsl</literal></para><screen><phrase role="commit-message">Added fixes to avoid duplicate ids when <parameter>generate.id.attributes</parameter> = 1.
+This (hopefully) closes bug #1671052.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: formal.xsl; pi.xsl</literal></para><screen><phrase role="commit-message">Made the dbfunclist PI work as intended. Also added doc for
+dbfunclist and dbcmdlist PIs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: pi.xsl; synop.xsl</literal></para><screen><phrase role="commit-message">Made the dbcmdlist work the way it appears to have been intended
+to work. Restored dbhtml-dir template back to pi.xsl.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: titlepage.xsl; param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Added new param <parameter>abstract.notitle.enabled</parameter>.
+If non-zero, in output of the <tag>abstract</tag> element on titlepages,
+display of the <tag>abstract</tag> <tag>title</tag> is suppressed.
+Because sometimes you really don't want or need that <tag>title</tag>
+there...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: chunk-code.xsl; graphics.xsl</literal></para><screen><phrase role="commit-message">When we are chunking long descriptions for <tag>mediaobject</tag> instances
+into separate HTML output files, and <parameter>use.id.as.filename</parameter> is
+non-zero, if a <tag>mediaobject</tag> has an ID, use that ID as the basename
+for the long-description file (otherwise, we generate an ID for it
+and use that ID as the basename for the file).
+The parallels the recent change made to cause IDs for <tag>legalnotice</tag>
+instances to be used as basenames for <tag>legalnotice</tag> chunks.
+Also, made some minor refinements to the recent changes for
+<tag>legalnotice</tag> chunk handling.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: titlepage.xsl</literal></para><screen><phrase role="commit-message">Added support to the HTML stylesheets for proper processing of
+<tag>orgname</tag> as a child of <tag>author</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: chunk-code.xsl</literal></para><screen><phrase role="commit-message">When $generate.legalnotice.link is non-zero and
+$use.id.as.filename is also non-zero, if a <tag>legalnotice</tag> has an ID,
+then instead of assigning the "ln-&lt;generatedID&gt;" basename to the
+output file for that <tag>legalnotice</tag>, just use its real ID as the
+basename for the file -- as we do when chunking other elements
+that have IDs.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: xref.xsl</literal></para><screen><phrase role="commit-message">Handle <tag>alt</tag> text on xrefs to steps when the step doesn't have a <tag>title</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: lists.xsl</literal></para><screen><phrase role="commit-message">Added &lt;p&gt; element around <tag>term</tag> in <tag>variablelist</tag> when formatted as <tag>table</tag> to avoid misalignment of <tag>term</tag> and <tag>listitem</tag> in xhtml (non-quirks mode) output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: qandaset.xsl</literal></para><screen><phrase role="commit-message">Added &lt;p&gt; element around <tag>question</tag> and <tag>answer</tag> labels to avoid misalignment of <tag>label</tag> and <tag>listitem</tag> in xhtml (non-quirks mode) output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: lists.xsl</literal></para><screen><phrase role="commit-message">Added &lt;p&gt; element around callouts to avoid misalignment of <tag>callout</tag> and <tag>listitem</tag> in xhtml (non-quirks mode) output</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: inline.xsl</literal></para><screen><phrase role="commit-message">Make citations numbered if <parameter>bibliography.numbered</parameter> != 0.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: param.xweb; param.ent</literal></para><screen><phrase role="commit-message">Add support for new profiling attributes audience and wordsize.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl; xref.xsl</literal></para><screen><phrase role="commit-message">Add support for xlink olinks.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: glossary.xsl</literal></para><screen><phrase role="commit-message">Rules for normalizing <tag>glossary</tag> entries before they are sorted can be now different for each language.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: chunk-common.xsl; chunk-code.xsl; manifest.xsl; chunk.xsl</literal></para><screen><phrase role="commit-message">Refactored the chunking modules to move all named templates to
+chunk-common.xsl and all match templates to chunk-code.xsl, in
+order to enable better chunk customization.
+See the comments in chunk.xsl for more details.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: lists.xsl</literal></para><screen><phrase role="commit-message">Add <tag>anchor</tag> for xml:id for <tag>listitem</tag> in <tag>varlistentry</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: refentry.xsl</literal></para><screen><phrase role="commit-message">Add support for <tag>info</tag>/<tag>title</tag> in refsections for db5.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: param.xweb; biblio.xsl; docbook.xsl; param.ent; biblio-iso690.xsl</literal></para><screen><phrase role="commit-message">Added support for formatting biblioentries according to ISO690 <tag>citation</tag> style.
+New <tag>bibliography</tag> style can be turned on by setting parameter <parameter>bibliography.style</parameter> to "iso690"
+The code was provided by Jana Dvorakova</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: inline.xsl; xref.xsl</literal></para><screen><phrase role="commit-message">Add call to class.attribute to &lt;a&gt; output elements so they can
+have a class value too.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: glossary.xsl</literal></para><screen><phrase role="commit-message">Fixed bug #1644881:
+* Added curly braces around all $language attribute values. 
+* Moved declaration of language variable to top level of stylesheet.
+Tested with Xalan, Saxon, and xsltproc.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: param.xweb; docbook.xsl; param.ent</literal></para><screen><phrase role="commit-message">Added the <parameter>man.authors.section.enabled</parameter> and
+<parameter>man.copyright.section.enabled</parameter> parameters. Set those to zero when
+you want to suppress display of the auto-generated AUTHORS and
+<tag>COPYRIGHT</tag> sections. Closes request #1467806. Thanks to Daniel
+Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: docbook.xsl</literal></para><screen><phrase role="commit-message">Took the test that the manpages stylesheet does to see if there
+are any <tag>Refentry</tag> chilren in current doc, and made it
+namespace-agnostic. Reason for that is because the test otherwise
+won't work when it is copied over into the generated
+profile-docbook.xsl stylesheet.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile</literal></para><screen><phrase role="commit-message">Added a manpages/profile-docbook.xsl file to enable single-pass
+profiling for manpages output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: info.xsl</literal></para><screen><phrase role="commit-message">Output <tag>copyright</tag> and <tag>legalnotice</tag> in man-page output in whatever
+place they are in in document order. Closes #1690539. Thanks to
+Daniel Leidert for reporting.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: docbook.xsl</literal></para><screen><phrase role="commit-message">Restored support for single-pass namespace stripping to manpages
+stylesheet.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: synop.xsl; block.xsl; info.xsl; inline.xsl; lists.xsl; endnotes.xsl; ut⋯</literal></para><screen><phrase role="commit-message">Changed handling of bold and italic/underline output in manpages
+output. Should be transparent to users, but...
+
+This touches handling of all bold and italic/underline output. The
+exact change is that the mode="bold" and mode="italic" utility
+templates were changed to named templates. (I think maybe I've
+changed it back and forth from mode to named before, so this is
+maybe re-reverting it yet again).
+
+Anyway, the reason for the change is that the templates are
+sometimes call on dynamically node-sets, and using modes to format
+those doesn't allow passing <tag>info</tag> about the current/real context
+node from the source (not the node-set created by the stylesheet)
+to that formatting stage.
+
+The named templates allow the context to be passed in as a
+parameter, so that the bold/ital formatting template can use
+context-aware condition checking.
+
+This was basically necessary in order to suppress bold formatting
+in titles, which otherwise gets screwed up because of the numbnut
+way that roff handles nested bold/ital.
+
+Closes #1674534). Much thanks to Daniel Leidert, whose in his
+docbook-xsl bug-finding kung-fu has achieved Grand Master status.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl</literal></para><screen><phrase role="commit-message">Fixed handling of example instances by adding the example element
+to the same template we use for processing <tag>figure</tag>. Closes
+#1674538. Thanks to Daniel Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">Don't include lang in manpages <tag>filename</tag>/pathname if lang=en (that
+is, only generate lang-qualified file-/pathnames for non-English).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: endnotes.xsl</literal></para><screen><phrase role="commit-message">In manpages output, emit warnings for notesources (<tag>footnote</tag>, etc.)
+that have something other than <tag>para</tag> as a child.
+
+The numbered-with-hanging-indent formatting that's used for
+rendering endnotes in the NOTES <tag>section</tag> of man pages places some
+limits/assumptions on how the DocBook source is marked up; namely,
+for notesources (<tag>footnote</tag>, <tag>annotation</tag>, etc.) that can contain
+block-level children, if the they have a block-level child such as
+a <tag>table</tag> or <tag>itemizedlist</tag> or <tag>orderedlist</tag> that is the first child of
+a <tag>footnote</tag>, we have no way of rendering/indenting its content
+properly in the endnotes list.
+
+Thus, the manpages stylesheet not emits a warning message for that
+case, and suggests the "fix" (which is to wrap the <tag>table</tag> or
+<tag>itemizedlist</tag> or whatever in a <tag>para</tag> that has some preferatory text.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: utility.xsl</literal></para><screen><phrase role="commit-message">Added support to mixed-block template for handling tables in
+mixed-blocks (e.g., as child of <tag>para</tag>) correctly.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: table.xsl; synop.xsl; block.xsl; info.xsl; lists.xsl; refentry.xsl; end⋯</literal></para><screen><phrase role="commit-message">Reverted necessary escaping of backslash, dot, and dash
+out of the well-intentioned (but it now appears,
+misguided) "marker" mechanism (introduced in the 1.72.0
+release) -- which made use of alternative "marker"
+characters as internal representations of those
+characters, and then replaced them just prior to
+serialization -- and back into what's basically the
+system that was used prior to the 1.69.0 release; that
+is, into a part of stylesheet code that gets executed
+at the beginning of processing -- before any other roff
+markup up is. This change obviates the need for the
+marker system. It also requires a lot less RAM during
+processing (for large files, the marker mechanism
+ending up requiring gigabytes of memory).
+
+Closes bug #1661177. Thanks to Scott Smedley for
+providing a test case (the fvwm man page) that exposed
+the problem with the marker mechanism.
+
+Also moved the mechanism for converting non-breaking
+spaces back into the same <tag>area</tag> of the stylesheet code.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Fixed problem with incorrect formatting of nested <tag>variablelist</tag>.
+Closes bug #1650931. Thanks to Daniel "Eagle Eye" Leidert.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: lists.xsl</literal></para><screen><phrase role="commit-message">Make sure that all listitems in <tag>itemizedlist</tag> and <tag>orderedlist</tag> are
+preceded by a blank line. This fixes a regression that occurred
+when instances of the TP macro that were use in a previous
+versions of the list-handling code were switched to RS/RE (because
+TP doesn't support nesting). TP automatically generates a blank
+line, but RS doesn't. So I added a .sp before each .RS</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: block.xsl; inline.xsl; param.xweb; docbook.xsl; links.xsl; param.ent</literal></para><screen><phrase role="commit-message">Made a number of changes related to elements with
+out-of-line content:
+
+- Added handling for <tag>mediaobject</tag> &amp; <tag>inlinemediaobject</tag>.
+  Each <tag>imagedata</tag>, <tag>audiodata</tag>, or <tag>videodata</tag> element
+  within a <tag>mediaobject</tag> or inline <tag>mediaobject</tag> is now
+  treated as a "notesource" and so handled in much the
+  same way as links and <tag>annotation</tag>/<tag>alt</tag>/footnotes.
+
+  That means a numbered marker is generated inline to
+  mark the place in the main flow where the <tag>imagedata</tag>,
+  <tag>audiodata</tag>, or <tag>videodata</tag> element occurs, and a
+  corresponding numbered endnote for it is generated in
+  the endnotes list at the end of the man page; the
+  endnote contains the URL from the fileref attribute
+  of the <tag>imagedata</tag>, <tag>audiodata</tag>, or <tag>videodata</tag> element.
+
+  For mediobject and <tag>inlinemediaobject</tag> instances that
+  have a <tag>textobject</tag> child, the <tag>textobject</tag> is displayed
+  within the main text flow.
+
+- Renamed several man.link.* params to man.endnotes.*,
+  to reflect that fact that the endnotes list now
+  contains more than just links. Also did similar
+  renaming for a number of stylesheet-internal vars.
+
+- Added support for xlink:href (along with existing
+  support for the legacy ulink element).
+
+- Cleaned up and streamlined the endnotes-handling
+  code. It's still messy and klunky and the basic
+  mechanism it uses is very inefficent for documents
+  that contain a lot of notesources, but at least it's
+  a bit better than it was.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Eclipse">
+<title>Eclipse</title>
+<para>The following changes have been made to the
+            <filename>eclipse</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: Makefile</literal></para><screen><phrase role="commit-message">Fixed bug #1715093: Makefile for creating profiled version of eclipse.xsl added.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>David Cramer: eclipse.xsl</literal></para><screen><phrase role="commit-message">Added normalize-space around  to avoid leading whitespace from appearing in the output if there's extra leading whitespace (e.g. &lt;<tag>title</tag>&gt; Foo&lt;/<tag>title</tag>&gt;) in the source</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Eclipse changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_JavaHelp">
+<title>JavaHelp</title>
+<para>The following changes have been made to the
+            <filename>javahelp</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: javahelp.xsl</literal></para><screen><phrase role="commit-message">Implemented FR #1230233 (sorted <tag>index</tag> in javahelp).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: javahelp.xsl</literal></para><screen><phrase role="commit-message">Added normalize-space() around titles and <tag>index</tag> entries to work around whitespace problems.
+Added support for <tag>glossary</tag> and <tag>bibliography</tag> in <tag>toc</tag> and map files.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of JavaHelp changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Steve Ball: blocks2dbk.xsl; wordml2normalise.xsl; normalise2sections.xsl; sections2blocks.⋯</literal></para><screen><phrase role="commit-message">new stylesheets for better word processor support and easier maintenance</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Steve Ball: template-pages.xml; dbk2wp.xsl; sections-spec.xml</literal></para><screen><phrase role="commit-message">fixed bugs</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Roundtrip changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: htmlhelp.button.back.xml; htmlhelp.button.forward.xml; htmlhelp.button.zo⋯</literal></para><screen><phrase role="commit-message">Modified <tag>refpurpose</tag> text.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: htmlhelp.map.file.xml; htmlhelp.force.map.and.alias.xml; htmlhelp.alias.f⋯</literal></para><screen><phrase role="commit-message">Fixed typos, made some small changes.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: javahelp.encoding.xml</literal></para><screen><phrase role="commit-message">Moved declaration and documentation of <parameter>javahelp.encoding</parameter> from javahelp.xsl to the
+regular "parameter machinery".</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: generate.id.attributes.xml</literal></para><screen><phrase role="commit-message">Added <tag>refpurpose</tag> text.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: annotation.js.xml; annotation.graphic.open.xml; annotation.graphic.close.⋯</literal></para><screen><phrase role="commit-message">Added better <tag>refpurpose</tag> texts.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: chunker.output.cdata-section-elements.xml; chunker.output.standalone.xm⋯</literal></para><screen><phrase role="commit-message">Fixed some broken formatting in source files for chunker.* params,
+as pointed out by Dave Pawson.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: label.from.part.xml</literal></para><screen><phrase role="commit-message">Changed handling of <tag>reference</tag> auto-labeling such that <tag>reference</tag>
+(when it appears at the component level) is now affected by the
+<parameter>label.from.part</parameter> param, just as <tag>preface</tag>, <tag>chapter</tag>, and <tag>appendix</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: callout.graphics.extension.xml</literal></para><screen><phrase role="commit-message">Clarified that 'extension' refers to file names.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: abstract.notitle.enabled.xml</literal></para><screen><phrase role="commit-message">Added new param <parameter>abstract.notitle.enabled</parameter>.
+If non-zero, in output of the <tag>abstract</tag> element on titlepages,
+display of the <tag>abstract</tag> <tag>title</tag> is suppressed.
+Because sometimes you really don't want or need that <tag>title</tag>
+there...</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: man.string.subst.map.xml</literal></para><screen><phrase role="commit-message">Updated manpages string-substitute map to reflect fact that
+because of another recent change to suppress bold markup in .SH
+output, we no longer need to add a workaround for the accidental
+uppercasing of roff escapes that occurred previously.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: margin.note.float.type.xml; title.font.family.xml; table.frame.border.color.x⋯</literal></para><screen><phrase role="commit-message">Improved parameter metadata</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: profile.wordsize.xml; profile.audience.xml</literal></para><screen><phrase role="commit-message">Add support for profiling on new attributes audience and wordsize.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: callout.graphics.number.limit.xml; callout.graphics.extension.xml</literal></para><screen><phrase role="commit-message">Added SVG graphics for fo output.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: callout.icon.size.xml</literal></para><screen><phrase role="commit-message">Set size of <tag>callout</tag> graphics.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: default.units.xml; chunker.output.method.xml; toc.list.type.xml; output.inden⋯</literal></para><screen><phrase role="commit-message">Updated parameter metadata to the new format.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: man.output.quietly.xml; title.font.family.xml; footnote.sep.leader.properties⋯</literal></para><screen><phrase role="commit-message">Added type annotations into parameter definition files.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: section.container.element.xml</literal></para><screen><phrase role="commit-message">Support spans in sections for certain processors.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: component.titlepage.properties.xml</literal></para><screen><phrase role="commit-message">Empty attribute set for top level component titlepage block.
+Allows setting a span on <tag>title</tag> <tag>info</tag>.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: bibliography.style.xml</literal></para><screen><phrase role="commit-message">Added <tag>link</tag> to WiKi page with description of special markup needed for ISO690 biblioentries</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: make.year.ranges.xml</literal></para><screen><phrase role="commit-message">Clarify that multiple <tag>year</tag> elements are required.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: id.warnings.xml</literal></para><screen><phrase role="commit-message">Turn off <parameter>id.warnings</parameter> by default.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Jirka Kosek: bibliography.style.xml</literal></para><screen><phrase role="commit-message">Added support for formatting biblioentries according to ISO690 <tag>citation</tag> style.
+New <tag>bibliography</tag> style can be turned on by setting parameter <parameter>bibliography.style</parameter> to "iso690"
+The code was provided by Jana Dvorakova</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Robert Stayton: header.table.properties.xml; footer.table.properties.xml</literal></para><screen><phrase role="commit-message">Support adding <tag>table</tag> properties to header and footer tables.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Highlighting">
+<title>Highlighting</title>
+<para>The following changes have been made to the
+            <filename>highlighting</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Jirka Kosek: c-hl.xml; xslthl-config.xml</literal></para><screen><phrase role="commit-message">Added support for C language. Provided by Bruno Guegan.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Highlighting changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Profiling">
+<title>Profiling</title>
+<para>The following changes have been made to the
+            <filename>profiling</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Robert Stayton: profile-mode.xsl</literal></para><screen><phrase role="commit-message">Add support for new profiling attributes audience and wordsize.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Profiling changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Lib">
+<title>Lib</title>
+<para>The following changes have been made to the
+            <filename>lib</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: lib.xweb</literal></para><screen><phrase role="commit-message">Changed name of prepend-pad template to pad-string and twheeked so
+it can do both right/left padding.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Lib changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_Tools">
+<title>Tools</title>
+<para>The following changes have been made to the
+            <filename>tools</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: bin; bin/docbook-xsl-update</literal></para><screen><phrase role="commit-message">Did some cleanup to the install.sh source and added a
+docbook-xsl-update script to the docbook-xsl distro, the purpose
+of which is to facilitate easy sync-up to the latest docbook-xsl
+snapshot (by means of rsync).</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Tools changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_XSL-Saxon">
+<title>XSL-Saxon</title>
+<para>The following changes have been made to the
+            <filename>xsl-saxon</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Mauritz Jeanson: xalan27/src/com/nwalsh/xalan/Verbatim.java; xalan27/src/com/nwalsh/xalan/⋯</literal></para><screen><phrase role="commit-message">Added modifications so that the new <parameter>callout.icon.size</parameter> parameter is taken into account. This 
+parameter is used for FO output (where SVG now is the default graphics format for callouts).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: saxon65/src/com/nwalsh/saxon/FormatCallout.java; xalan27/src/com/nwalsh/x⋯</literal></para><screen><phrase role="commit-message">Added code for generating id attributes on callouts in HTML and FO output.
+These patches enable cross-references to callouts placed by <tag>area</tag> coordinates.
+It works for graphic, unicode and text callouts. 
+Part of fix for bug #1675513 (<tag>xref</tag> to <tag>area</tag> broken).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: saxon65/src/com/nwalsh/saxon/Website.java; xalan27/src/com/nwalsh/xalan⋯</literal></para><screen><phrase role="commit-message">Copied over Website XSL Java extensions.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Saxon changes for 1.73.0-->
+<sect2 xml:id="V1.73.0_XSL-Xalan">
+<title>XSL-Xalan</title>
+<para>The following changes have been made to the
+            <filename>xsl-xalan</filename> code
+            since the 1.72.0 release.</para>
+<itemizedlist>
+<listitem>
+<para><literal>Michael(tm) Smith: Makefile; xalan2</literal></para><screen><phrase role="commit-message">Turned off xalan2.jar build. This removes DocBook XSL
+Java extensions support for versions of Xalan prior to
+Xalan 2.7. If you are currently using the extensions
+with an earlier version of Xalan, you need to upgrade
+to Xalan 2.7.</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: xalan27/src/com/nwalsh/xalan/Verbatim.java; xalan27/src/com/nwalsh/xalan/⋯</literal></para><screen><phrase role="commit-message">Added modifications so that the new <parameter>callout.icon.size</parameter> parameter is taken into account. This 
+parameter is used for FO output (where SVG now is the default graphics format for callouts).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Mauritz Jeanson: saxon65/src/com/nwalsh/saxon/FormatCallout.java; xalan27/src/com/nwalsh/x⋯</literal></para><screen><phrase role="commit-message">Added code for generating id attributes on callouts in HTML and FO output.
+These patches enable cross-references to callouts placed by <tag>area</tag> coordinates.
+It works for graphic, unicode and text callouts. 
+Part of fix for bug #1675513 (<tag>xref</tag> to <tag>area</tag> broken).</phrase></screen>
+</listitem>
+<listitem>
+<para><literal>Michael(tm) Smith: saxon65/src/com/nwalsh/saxon/Website.java; xalan27/src/com/nwalsh/xalan⋯</literal></para><screen><phrase role="commit-message">Copied over Website XSL Java extensions.</phrase></screen>
+</listitem>
+</itemizedlist>
+</sect2><!--end of XSL-Saxon changes for 1.73.0-->
+</sect1><!--end of changes for the 1.73.0 release-->
+
+<sect1 xml:id="V1.72.0">
+<title>Release: 1.72.0</title>
+<para>This release includes important bug fixes and adds the following
+significant feature changes:
+<variablelist>
+  <varlistentry>
+    <term>Automatic sorting of glossary entries</term>
+    <listitem>
+      <para>The HTML and FO stylesheets now support automatic sorting
+      of <tag>glossary</tag> entries. To enable glossary sorting, set
+      the value of the <parameter>glossary.sort </parameter> parameter
+      to <code>1</code> (by default, it’s value is
+      <code>0</code>). When you enable glossary sorting,
+      <tag>glossentry</tag> elements within a <tag> glossary</tag>,
+      <tag>glossdiv</tag>, or <tag>glosslist</tag> are sorted on the
+      <tag>glossterm</tag>, using the current language setting. If you
+      don’t enable glossary sorting, then the order of
+      <tag>glossentry</tag> elements is left “as is” — that is, they
+      are not sorted but are instead just displayed in document
+      order.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>WordML renamed to Roundtrip, OpenOffice support added</term>
+    <listitem>
+    <para>Stylesheets for “roundtrip” conversion between documents in
+    OpenOffice format (ODF) and DocBook XML have been added to the set
+    of stylesheets that formerly had the collective title
+    <wordasword>WordML</wordasword>, and that set of stylesheets has
+    been renamed to <wordasword>Roundtrip</wordasword> to better
+    reflect the actual scope and purpose of its contents.</para>
+    <para>So the DocBook XSL Stylesheets now support roundtrip
+    conversion (with certain limitations) of WordML, OpenOffice, and
+    Apple Pages documents to and from DocBook XML.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Including QandASet questions in TOCs</term>
+    <listitem>
+      <para>The HTML stylesheet now provides support for including
+      <tag>QandASet</tag> <tag>question</tag>s in the document TOC. To
+      enable display of <tag>question</tag>s in the document TOC, set
+      the value of the <parameter>qanda.in.toc</parameter> to
+      <code>1</code> (by default, it’s <code>0</code>). When you
+      enable <parameter>qanda.in.toc</parameter>, then the generated
+      table of contents for a document will include
+      <tag>qandaset</tag> titles, <tag>qandadiv</tag> titles, and
+      <tag>question</tag> elements. The default value of zero
+      excludes them from the TOC.
+      <note>
+        <para>The <parameter>qanda.in.toc</parameter> parameter does
+        not affect any tables of contents that may be generated
+        <emphasis>within</emphasis> a <tag>qandaset</tag> or
+        <tag>qandadiv</tag> (only in the document TOC).</para>
+      </note>
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Language identifier in man-page filenames and pathnames</term>
+    <listitem>
+      <para>Added new parameter <parameter
+      >man.output.lang.in.name.enabled</parameter>, which controls whether
+      a language identifier is included in man-page filenames and
+      pathnames. It works like this:</para>
+
+      <para>If the value of <parameter
+      >man.output.lang.in.name.enabled</parameter> is non-zero,
+      man-page files are output with a language identifier included in
+      their filenames or pathnames as follows:</para>
+
+      <itemizedlist>
+        <listitem><para>if
+        <parameter>man.output.subdirs.enabled</parameter> is non-zero,
+        each file is output to, e.g., a
+        <filename>/$lang/man8/foo.8</filename> pathname</para></listitem>
+
+        <listitem><para>if
+        <parameter>man.output.subdirs.enabled</parameter> is zero,
+        each file is output with a <tag>foo.$lang.8</tag>
+        filename</para></listitem>
+      </itemizedlist>
+
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term><parameter>index.page.number.properties</parameter> property set</term>
+    <listitem>
+      <para>For FO output, use the
+      <parameter>index.page.number.properties</parameter> to control
+      formatting of page numbers in <tag>index</tag> output — to (for
+      example) to display page numbers in <tag>index</tag> output in a
+      different color (to indicate that they are links).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Crop marks in output from Antenna House XSL Formatter</term>
+    <listitem>
+      <para>Support has been added for generating crop marks in
+      print/PDF output generated using Antenna House XSL Formatter</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>More string-substitution hooks in manpages output</term>
+    <listitem>
+      <para>The <parameter>man.string.subst.map.local.pre</parameter>
+      and <parameter>man.string.subst.map.local.post</parameter>
+      parameters have been added to enable easier control over
+      custom string substitutions.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Moved verbatim properties to attribute-set</term>
+    <listitem>
+      <para>The hardcoded properties used in verbatim elements (literallayout,
+      programlisting, screen) were moved to the verbatim.properties 
+      attribute-set so they can be more easily customized.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>enhanced simple.xlink template</term>
+    <listitem>
+      <para>Now the simple.xlink template in inline.xsl works with
+      cross reference elements xref and link as well.  Also, more elements
+      call simple.xlink, which enables DB5 xlink functionality.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>DocBook 5 compatibility</term>
+    <listitem>
+      <para>Stylesheets now consistently support DocBook 5 attributes
+      (such as xml:id). Also, DocBook 5 info elements are now checked
+      along with other *info elements, and the use of name() function
+      was replaced by local-name() so it also matches on DocBook 5 elements.
+      These changes enable reusing the stylesheets with DocBook 5 
+      documents with minimal fixup.
+      </para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>HTML class attributes now handled in class.attribute mode </term>
+    <listitem>
+      <para>The HTML class attributes were formerly hardcoded to the 
+      element name.  Now the class attribute is generated by applying
+      templates in class.attribute mode so class attribute names
+      can be customized. The default is still the element name.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>arabic-indic numbering enabled in autolabels</term>
+    <listitem>
+      <para>Numbering of chapter, sections, and pages can now use
+      arabic-indic numbering when number format is set to 'arabicindic' or
+      to &#x661;.</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+The following is a detailed list of changes (not
+including bug fixes) that have been made since the 1.71.1
+release.</para>
+
+<sect2 xml:id="V1.72.0_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for arabicindic numbering to autolabel.format template.<alt>M: /trunk/xsl/common/labels.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Finish support for @xml:id everywhere @id is used.<alt>M: /trunk/xsl/common/gentext.xsl; M: /trunk/xsl/common/titles.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">replace name() with local-name() in most cases.<alt>M: /trunk/xsl/common/l10n.xsl; M: /trunk/xsl/common/olink.xsl; M: /trunk/xsl/common/subtitles.xsl; M: /trunk/xsl/common/labels.xsl; M: /trunk/xsl/common/titles.xsl; M: /trunk/xsl/common/common.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for <tag>info</tag>.<alt>M: /trunk/xsl/common/subtitles.xsl; M: /trunk/xsl/common/labels.xsl; M: /trunk/xsl/common/titles.xsl; M: /trunk/xsl/common/common.xsl; M: /trunk/xsl/common/targets.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add utility template tabstyle to return the tabstyle from
+any <tag>table</tag> element.<alt>M: /trunk/xsl/common/table.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.72.0-->
+
+<sect2 xml:id="V1.72.0_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for sorting <tag>glossary</tag> entries<alt>M: /trunk/xsl/fo/param.xweb; M: /trunk/xsl/fo/param.ent; M: /trunk/xsl/fo/glossary.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add table.row.properties template to customize <tag>table</tag> rows.<alt>M: /trunk/xsl/fo/table.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Moved all properties to attribute-sets so can be customized more easily.<alt>M: /trunk/xsl/fo/verbatim.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add index.page.number.properties attribute-set to format page numbers.<alt>M: /trunk/xsl/fo/autoidx.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message"><tag>xref</tag> now supports xlink:href, using simple.xlink template.<alt>M: /trunk/xsl/fo/xref.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Rewrote simple.xlink, and call it with all charseq templates.<alt>M: /trunk/xsl/fo/inline.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add simple.xlink processing to <tag>term</tag> and <tag>member</tag> elements.<alt>M: /trunk/xsl/fo/lists.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for crop marks in Antenna House.<alt>M: /trunk/xsl/fo/axf.xsl; M: /trunk/xsl/fo/pagesetup.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.72.0-->
+
+<sect2 xml:id="V1.72.0_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for sorting <tag>glossary</tag> entries<alt>M: /trunk/xsl/html/glossary.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for <parameter>qanda.in.toc</parameter> to add <tag>qandaentry</tag> questions to document <tag>TOC</tag>.<alt>M: /trunk/xsl/html/autotoc.xsl; M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/param.ent - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">add simple.xlink support to <tag>variablelist</tag> <tag>term</tag> and <tag>simplelist</tag> <tag>member</tag>.<alt>M: /trunk/xsl/html/lists.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">*.propagates.style now handled in class.attribute mode.<alt>M: /trunk/xsl/html/inline.xsl; M: /trunk/xsl/html/lists.xsl; M: /trunk/xsl/html/table.xsl; M: /trunk/xsl/html/block.xsl; M: /trunk/xsl/html/footnote.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">add class parameter to class.attribute mode to set default class.<alt>M: /trunk/xsl/html/html.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Convert all class attributes to use the class.attribute mode
+so class names can be customized more easily.<alt>M: /trunk/xsl/html/titlepage.xsl; M: /trunk/xsl/html/chunk-code.xsl; M: /trunk/xsl/html/division.xsl; M: /trunk/xsl/html/sections.xsl; M: /trunk/xsl/html/math.xsl; M: /trunk/xsl/html/block.xsl; M: /trunk/xsl/html/info.xsl; M: /trunk/xsl/html/footnote.xsl; M: /trunk/xsl/html/lists.xsl; M: /trunk/xsl/html/admon.xsl; M: /trunk/xsl/html/refentry.xsl; M: /trunk/xsl/html/qandaset.xsl; M: /trunk/xsl/html/graphics.xsl; M: /trunk/xsl/html/biblio.xsl; M: /trunk/xsl/html/task.xsl; M: /trunk/xsl/html/component.xsl; M: /trunk/xsl/html/glossary.xsl; M: /trunk/xsl/html/callout.xsl; M: /trunk/xsl/html/index.xsl; M: /trunk/xsl/html/synop.xsl; M: /trunk/xsl/html/verbatim.xsl; M: /trunk/xsl/html/ebnf.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add class.attribute mode to generate class attributes.<alt>M: /trunk/xsl/html/html.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added simple.xlink to most remaining inlines.
+Changed class attributes to applying class.attributes mode.<alt>M: /trunk/xsl/html/inline.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Changed <tag>xref</tag> template to use simple.xlink tempalte.<alt>M: /trunk/xsl/html/xref.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Improve generate.html.title to work with <tag>link</tag> targets too.<alt>M: /trunk/xsl/html/html.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Improved simple.xlink to support <tag>link</tag> and <tag>xref</tag>.<alt>M: /trunk/xsl/html/inline.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Use new link.title.attribute now.<alt>M: /trunk/xsl/html/xref.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Rewrote simple.xlink to handle linkend also.
+Better computation of <tag>title</tag> attribute on <tag>link</tag> too.<alt>M: /trunk/xsl/html/inline.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Handle Xalan quirk as special case.<alt>M: /trunk/xsl/html/db5strip.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for <tag>info</tag>.<alt>M: /trunk/xsl/html/admon.xsl; M: /trunk/xsl/html/autotoc.xsl; M: /trunk/xsl/html/lists.xsl; M: /trunk/xsl/html/refentry.xsl; M: /trunk/xsl/html/biblio.xsl; M: /trunk/xsl/html/qandaset.xsl; M: /trunk/xsl/html/component.xsl; M: /trunk/xsl/html/glossary.xsl; M: /trunk/xsl/html/division.xsl; M: /trunk/xsl/html/index.xsl; M: /trunk/xsl/html/sections.xsl; M: /trunk/xsl/html/table.xsl; M: /trunk/xsl/html/block.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Fixed imagemaps so they work properly going from calspair coords
+to HTML <tag>area</tag> coords.<alt>M: /trunk/xsl/html/graphics.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.72.0-->
+
+<sect2 xml:id="V1.72.0_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added doc for <parameter>man.output.lang.in.name.enabled</parameter> parameter. This
+checkin completes support for writing file/pathnames for man-pages
+with $lang include in the names. Closes #1585967. knightly
+accolades to Daniel Leidert for providing the feature request.<alt>M: /trunk/xsl/manpages/param.xweb; M: /trunk/xsl/manpages/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added new param <parameter>man.output.lang.in.name.enabled</parameter>, which
+controls whether $LANG value is included in manpages
+filenames and pathnames. It works like this:
+
+If the value of <parameter>man.output.lang.in.name.enabled</parameter> is non-zero,
+man-page files are output with the $lang value included in
+their filenames or pathnames as follows;
+
+- if <parameter>man.output.subdirs.enabled</parameter> is non-zero, each file is
+  output to, e.g., a /$lang/man8/foo.8 pathname
+
+- if <parameter>man.output.subdirs.enabled</parameter> is zero, each file is output
+  with a foo.$lang.8 <tag>filename</tag><alt>M: /trunk/xsl/manpages/docbook.xsl; M: /trunk/xsl/manpages/other.xsl; M: /trunk/xsl/manpages/utility.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Use "\e" instead of "\\" for backslash output, because the
+groff docs say that's the correct thing to do; also because
+testing (thanks, Paul Dubois) shows that "\\" doesn't always
+work as expected; for example, "\\" within a <tag>table</tag> seems to
+mess things up.<alt>M: /trunk/xsl/manpages/charmap.groff.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added the <parameter>man.string.subst.map.local.pre</parameter> and
+<parameter>man.string.subst.map.local.post</parameter> parameters. Those parameters
+enable local additions and changes to string-substitution mappings
+without the need to change the value of <parameter>man.string.subst.map</parameter>
+parameter (which is for standard system mappings). Closes
+#1456738. Thanks to Sam Steingold for constructing a true
+stylesheet torture test (the clisp docs) that exposed the need for
+these params.<alt>M: /trunk/xsl/manpages/param.xweb; M: /trunk/xsl/manpages/param.ent; M: /trunk/xsl/manpages/other.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added the Markup element to the list of elements that get output
+in bold. Thanks to Eric S. Raymond.<alt>M: /trunk/xsl/manpages/inline.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Replaced all dots in roff requests with U+2302 ("house"
+character), and added escaping in output for all instances of dot
+that are not in roff requests. This fixes the problem case where a
+string beginning with a dot (for example, the string ".bashrc")
+might occur at the beginning of a line in output, in which case 
+would mistakenly get interpreted as a roff request. Thanks to Eric
+S. Raymond for pushing to fix this.<alt>M: /trunk/xsl/manpages/table.xsl; M: /trunk/xsl/manpages/synop.xsl; M: /trunk/xsl/manpages/block.xsl; M: /trunk/xsl/manpages/info.xsl; M: /trunk/xsl/manpages/lists.xsl; M: /trunk/xsl/manpages/refentry.xsl; M: /trunk/xsl/manpages/links.xsl; M: /trunk/xsl/manpages/other.xsl; M: /trunk/xsl/manpages/utility.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Made change to ensure that list content nested in
+<tag>itemizedlist</tag> and <tag>orderedlist</tag> instances is properly indented. This
+is a switch from using .TP to format those lists to using .RS/.RE
+to format them instead (because .TP does not allow nesting). Closes bug #1602616.
+Thanks to Daniel Leidert.<alt>M: /trunk/xsl/manpages/lists.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.72.0-->
+
+<sect2 xml:id="V1.72.0_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added doc for <parameter>man.output.lang.in.name.enabled</parameter> parameter. This
+checkin completes support for writing file/pathnames for man-pages
+with $lang include in the names. Closes #1585967. knightly
+accolades to Daniel Leidert for providing the feature request.<alt>A: /trunk/xsl/params/man.output.lang.in.name.enabled.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added new param <parameter>man.output.lang.in.name.enabled</parameter>, which
+controls whether $LANG value is included in manpages
+filenames and pathnames. It works like this:
+
+If the value of <parameter>man.output.lang.in.name.enabled</parameter> is non-zero,
+man-page files are output with the $lang value included in
+their filenames or pathnames as follows;
+
+- if <parameter>man.output.subdirs.enabled</parameter> is non-zero, each file is
+  output to, e.g., a /$lang/man8/foo.8 pathname
+
+- if <parameter>man.output.subdirs.enabled</parameter> is zero, each file is output
+  with a foo.$lang.8 <tag>filename</tag><alt>M: /trunk/xsl/manpages/docbook.xsl; M: /trunk/xsl/manpages/other.xsl; M: /trunk/xsl/manpages/utility.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added the <parameter>man.string.subst.map.local.pre</parameter> and
+<parameter>man.string.subst.map.local.post</parameter> parameters. Those parameters
+enable local additions and changes to string-substitution mappings
+without the need to change the value of <parameter>man.string.subst.map</parameter>
+parameter (which is for standard system mappings). Closes
+#1456738. Thanks to Sam Steingold for constructing a true
+stylesheet torture test (the clisp docs) that exposed the need for
+these params.<alt>A: /trunk/xsl/params/man.string.subst.map.local.post.xml; A: /trunk/xsl/params/man.string.subst.map.local.pre.xml; M: /trunk/xsl/params/man.string.subst.map.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add index.page.number.properties by default.<alt>M: /trunk/xsl/params/xep.index.item.properties.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added <parameter>index.page.number.properties</parameter> to allow customizations of page numbers in indexes.<alt>A: /trunk/xsl/params/index.page.number.properties.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Move show-destination="replace" property from template to attribute-set
+so it can be customized.<alt>M: /trunk/xsl/params/olink.properties.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for sorting <tag>glossary</tag> entries<alt>A: /trunk/xsl/params/glossary.sort.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add option to include qanda in tables of contents.<alt>A: /trunk/xsl/params/qanda.in.toc.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Moved all properties to attribute-sets so can be customized more easily.<alt>M: /trunk/xsl/params/verbatim.properties.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.72.0-->
+
+<sect2 xml:id="V1.72.0_Template">
+<title>Template</title>
+<para>The following changes have been made to the
+            <filename>template</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added workaround for Xalan bug: use for-each and copy instead of copy-of (#1604770).<alt>M: /trunk/xsl/template/titlepage.xsl - Mauritz Jeanson</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Template changes for 1.72.0-->
+
+<sect2 xml:id="V1.72.0_Roundtrip">
+<title>Roundtrip</title>
+<para>The following changes have been made to the
+            <filename>roundtrip</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">rename to roundtrip, add OpenOffice support<alt>M: /trunk/xsl/roundtrip/docbook-pages.xsl; M: /trunk/xsl/roundtrip/specifications.xml; A: /trunk/xsl/roundtrip/dbk2ooo.xsl; M: /trunk/xsl/roundtrip/docbook.xsl; A: /trunk/xsl/roundtrip/dbk2pages.xsl; M: /trunk/xsl/roundtrip/template.xml; A: /trunk/xsl/roundtrip/dbk2wordml.xsl; A: /trunk/xsl/roundtrip/dbk2wp.xsl; M: /trunk/xsl/roundtrip/template.dot; M: /trunk/xsl/roundtrip/wordml-final.xsl - Steve Ball</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Roundtrip changes for 1.72.0-->
+</sect1><!--end of V1.72.0-->
+
+<sect1 xml:id="V1.71.1">
+<title>Release: 1.71.1</title>
+<para>This is a minor update to the 1.71.0 release. Along with a
+number of bug fixes, it includes two feature changes:
+
+<itemizedlist>
+  <listitem>
+    <para>Added support for profiling based on <tag
+    class="attribute">xml:lang</tag> and <tag
+    class="attribute">status</tag> attributes.</para>
+  </listitem>
+  <listitem>
+    <para>Added initial support in manpages output for
+    <tag>footnote</tag>, <tag>annotation</tag>, and <tag>alt</tag>
+    instances. Basically, they all now get handled the same way
+    <tag>ulink</tag> instances are. They are treated as a class as
+    "note sources": A numbered marker is generated at the place in the
+    main text flow where they occur, then their contents are displayed
+    in an endnotes section at the end of the man page.</para>
+  </listitem>
+</itemizedlist>
+</para>
+
+<sect2 xml:id="V1.71.1_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">For backward compatability autoidx-ng.xsl is invoking "kosek" indexing method again.<alt>D: /trunk/xsl/common/autoidx-ng.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for Xalan generating a root xml:base like saxon.<alt>M: /trunk/xsl/common/stripns.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.71.1-->
+
+<sect2 xml:id="V1.71.1_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">For backward compatability autoidx-ng.xsl is invoking "kosek" indexing method again.<alt>M: /trunk/xsl/fo/autoidx-ng.xsl; M: /trunk/xsl/fo/autoidx-kosek.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for Xalan to add root node xml:base for db5 docs.<alt>M: /trunk/xsl/fo/docbook.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added support for profiling based on xml:lang and status attributes.<alt>M: /trunk/xsl/fo/param.xweb; M: /trunk/xsl/fo/param.ent - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.71.1-->
+
+<sect2 xml:id="V1.71.1_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">For backward compatability autoidx-ng.xsl is invoking "kosek" indexing method again.<alt>M: /trunk/xsl/html/autoidx-ng.xsl; M: /trunk/xsl/html/autoidx-kosek.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Add support for Xalan to add root node xml:base for db5 docs.<alt>M: /trunk/xsl/html/chunk-code.xsl; M: /trunk/xsl/html/docbook.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added support for profiling based on xml:lang and status attributes.<alt>M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/param.ent - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Made changes in namespace declarations to prevent xmllint's
+canonicalizer from treating them as relative namespace URIs.
+
+  - Changed xmlns:k="java:com.isogen.saxoni18n.Saxoni18nService"
+    to xmlns:k="http://www.isogen.com/functions/com.isogen.saxoni18n.Saxoni18nService";
+    Saxon accepts either form
+    (see http://www.saxonica.com/documentation/extensibility/functions.html);
+    to Saxon, "the part of the URI before the final '/' is immaterial".
+
+  - Changed, e.g. xmlns:xverb="com.nwalsh.xalan.Verbatim" to
+    xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim"; Xalan accepts
+    either form
+    (see http://xml.apache.org/xalan-j/extensions.html#java-namespace-declare);
+    just as Saxon does, it will "simply use the string to the
+    right of the rightmost forward slash as the Java class name".
+
+  - Changed xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+    to xmlns:redirect="http://xml.apache.org/xalan/redirect", and
+    adjusted associated code to make the current Xalan redirect spec.
+    (see http://xml.apache.org/xalan-j/apidocs/org/apache/xalan/lib/Redirect.html)<alt>M: /trunk/xsl/html/oldchunker.xsl; M: /trunk/xsl/html/chunker.xsl; M: /trunk/xsl/html/graphics.xsl; M: /trunk/xsl/html/callout.xsl; M: /trunk/xsl/html/autoidx-kimber.xsl; M: /trunk/xsl/html/autoidx-kosek.xsl; M: /trunk/xsl/html/table.xsl; M: /trunk/xsl/html/verbatim.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added the <parameter>html.append</parameter> and <parameter>chunk.append</parameter> parameters. By default, the
+value of both is empty; but the internal DocBook XSL stylesheets
+build sets their value to "&lt;xsl:text&gt;&amp;#x0a;&lt;/xsl:text&gt;", in order
+to ensure that all files in the docbook-xsl-doc package end in a
+newline character. (Because diff and some other tools may emit
+error messages and/or not behave as expected when processing
+files that are not newline-terminated.)<alt>M: /trunk/xsl/html/chunk-common.xsl; M: /trunk/xsl/html/titlepage.xsl; M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/docbook.xsl; M: /trunk/xsl/html/graphics.xsl; M: /trunk/xsl/html/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.71.1-->
+
+<sect2 xml:id="V1.71.1_Highlighting">
+<title>Highlighting</title>
+<para>The following changes have been made to the
+            <filename>highlighting</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added license information<alt>M: /trunk/xsl/highlighting/delphi-hl.xml; M: /trunk/xsl/highlighting/myxml-hl.xml; M: /trunk/xsl/highlighting/php-hl.xml; M: /trunk/xsl/highlighting/m2-hl.xml; M: /trunk/xsl/highlighting/ini-hl.xml; M: /trunk/xsl/highlighting/xslthl-config.xml; M: /trunk/xsl/highlighting/java-hl.xml - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Highlighting changes for 1.71.1-->
+
+<sect2 xml:id="V1.71.1_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added initial support in manpages output for <tag>footnote</tag>, <tag>annotation</tag>,
+and <tag>alt</tag> instances. Basically, they all now get handled the same
+way ulink instances are. They are treated as a class as "note
+sources": A numbered marker is generated at the place in the main
+text flow where they occur, then their contents are displayed in
+an endnotes <tag>section</tag> at the end of the man page (currently titled
+REFERENCES, for English output, but will be changed to NOTES).
+
+This support is not yet complete. It works for most "normal"
+cases, but probably mishandles a good number of cases. More
+testing will be needed to expose the problems. It may well also
+introduce some bugs and regressions in other areas, including
+basic paragraph handling, handling of "mixed block" content,
+handling of other indented content, and handling of authorblurb
+and <tag>personblurb</tag> in the AUTHORS <tag>section</tag>.<alt>M: /trunk/xsl/manpages/table.xsl; M: /trunk/xsl/manpages/block.xsl; M: /trunk/xsl/manpages/docbook.xsl; M: /trunk/xsl/manpages/links.xsl; M: /trunk/xsl/manpages/other.xsl; M: /trunk/xsl/manpages/utility.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.71.1-->
+
+<sect2 xml:id="V1.71.1_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added support for profiling based on xml:lang and status attributes.<alt>A: /trunk/xsl/params/profile.status.xml - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added the <parameter>html.append</parameter> and <parameter>chunk.append</parameter> parameters. By default, the
+value of both is empty; but the internal DocBook XSL stylesheets
+build sets their value to "&lt;xsl:text&gt;&amp;#x0a;&lt;/xsl:text&gt;", in order
+to ensure that all files in the docbook-xsl-doc <tag>package</tag> end in a
+newline character. (Because diff and some other tools may emit
+error messages and/or not behave as expected when processing
+files that are not newline-terminated.)<alt>A: /trunk/xsl/params/html.append.xml; A: /trunk/xsl/params/chunk.append.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.71.1-->
+
+<sect2 xml:id="V1.71.1_Profiling">
+<title>Profiling</title>
+<para>The following changes have been made to the
+            <filename>profiling</filename> code
+            since the 1.71.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added support for profiling based on xml:lang and status attributes.<alt>M: /trunk/xsl/profiling/profile.xsl; M: /trunk/xsl/profiling/profile-mode.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Profiling changes for 1.71.1-->
+
+</sect1>
+
+<sect1 xml:id="V1.71.0">
+<title>Release: 1.71.0</title>
+<para>This is mainly a bug fix release, but it also includes two
+significant feature changes:
+<variablelist>
+  <varlistentry>
+    <term>Highlighting support added</term>
+    <listitem>
+      <para>The stylesheets now include support for source-code
+      highlighting in output of programlisting instances (controlled
+      through the <parameter>highlight.source</parameter>
+      parameter). The Java-based implementation requires Saxon and
+      makes use of <link
+      xlink:href="http://molhanec.net/"><person><personname
+      ><firstname>Michal</firstname><surname
+      >Molhanec</surname></personname></person></link>’s <link
+      xlink:href="http://sourceforge.net/projects/xslthl"
+      >XSLTHL</link>. More details are available at Jirka Kosek’s
+      website: <blockquote ><simpara ><link
+      xlink:href="http://xmlguru.cz/2006/07/docbook-syntax-highlighting"/></simpara
+      ></blockquote> The support is currently limited to highlighting
+      of XML, Java, PHP, Delphi, Modula-2 sources, and INI
+      files.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Changes to autoindexing</term>
+    <listitem>
+      <para>The templates that handle alternative indexing methods
+      were reworked to avoid errors produced by certain processors not
+      being able to tolerate the presence of unused functions.  With
+      this release, none of the code for the 'kimber' or 'kosek'
+      methods is included in the default stylesheets.  In order to use
+      one of those methods, your customization layer must import one
+      of the optional stylesheet modules:</para>
+      <para>
+        <itemizedlist>
+           <listitem>
+             <simpara>html/autoidx-kosek.xsl</simpara>
+           </listitem>
+           <listitem>
+             <simpara>html/autoidx-kimber.xsl</simpara>
+           </listitem>
+           <listitem>
+             <simpara>fo/autoidx-kosek.xsl</simpara>
+           </listitem>
+           <listitem>
+             <simpara>fo/autoidx-kimber.xsl</simpara>
+           </listitem>
+        </itemizedlist>
+        See the <parameter>index.method</parameter> parameter
+        reference page for more information.
+      </para>
+      <para>Two other changes to note:
+      <itemizedlist>
+        <listitem>
+          <simpara>The default indexing method now can handle accented
+          characters in latin-based alphabets, not just English. This
+          means accented latin letters will group and sort with their
+          unaccented counterpart.</simpara>
+        </listitem>
+        <listitem>
+          <simpara>The default value for the
+          <parameter>index.method</parameter> parameter was changed
+          from 'english' to 'basic' because now the default method can
+          handle latin-based alphabets, not just English.</simpara>
+        </listitem>
+      </itemizedlist>
+      </para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+The following is a list of changes that have
+been made since the 1.70.1 release.</para>
+
+<sect2 xml:id="V1.71.0_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+            <filename>common</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added <parameter>reference.autolabel</parameter> parameter for controlling labels on
+<tag>reference</tag> output.<alt>M: /trunk/xsl/common/labels.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support <tag>row</tag>s that are *completely* overlapped by the preceding <tag>row</tag><alt>M: /trunk/xsl/common/table.xsl - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">New modules for supporting indexing extensions.<alt>A: /trunk/xsl/common/autoidx-kimber.xsl; A: /trunk/xsl/common/autoidx-kosek.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support startinglinenumber on <tag>orderedlist</tag><alt>M: /trunk/xsl/common/common.xsl - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_Extensions">
+<title>Extensions</title>
+<para>The following changes have been made to the
+            <filename>extensions</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Completely reworked extensions build system; now uses NetBeans and ant<alt>D: /trunk/xsl/extensions/xalan27/.cvsignore; A: /trunk/xsl/extensions/saxon65/nbproject; A: /trunk/xsl/extensions/saxon65/nbproject/project.properties; D: /trunk/xsl/extensions/prj.el; A: /trunk/xsl/extensions/saxon65/src; A: /trunk/xsl/extensions/xalan2/src/com; M: /trunk/xsl/extensions/xalan2/src/com/nwalsh/xalan/Text.java; A: /trunk/xsl/extensions/saxon65/nbproject/project.xml; D: /trunk/xsl/extensions/build.xml; A: /trunk/xsl/extensions/saxon65/build.xml; A: /trunk/xsl/extensions/xalan2/nbproject/genfiles.properties; A: /trunk/xsl/extensions/saxon65; D: /trunk/xsl/extensions/xalan2/com; M: /trunk/xsl/extensions/xalan2/src/com/nwalsh/xalan/Func.java; A: /trunk/xsl/extensions/xalan2/test; A: /trunk/xsl/extensions/saxon65/src/com; A: /trunk/xsl/extensions/xalan2/nbproject/build-impl.xml; A: /trunk/xsl/extensions/xalan2/nbproject; A: /trunk/xsl/extensions/xalan2/src; A: /trunk/xsl/extensions/xalan2/nbproject/project.properties; D: /trunk/xsl/extensions/.cvsignore; M: /trunk/xsl/extensions/Makefile; D: /trunk/xsl/extensions/saxon8; A: /trunk/xsl/extensions/saxon65/nbproject/genfiles.properties; A: /trunk/xsl/extensions/xalan2/nbproject/project.xml; A: /trunk/xsl/extensions/saxon65/test; M: /trunk/xsl/extensions/xalan2/src/com/nwalsh/xalan/Verbatim.java; A: /trunk/xsl/extensions/xalan2/build.xml; M: /trunk/xsl/extensions/xalan2; D: /trunk/xsl/extensions/saxon643; A: /trunk/xsl/extensions/saxon65/nbproject/build-impl.xml - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Extensions changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+            <filename>fo</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+
+<listitem>
+<literallayout><phrase role="commit-message">xsl:sort lang attribute now uses two-char substring of lang attribute.<alt>M: /trunk/xsl/fo/autoidx-kimber.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Support titlecase "Java", "Perl", and "IDL" as values for the
+language attribute on <tag>classsynopsis</tag>, etc. (instead of just
+lowercase "java", "perl", and "idl"). Also support "c++" and "C++"
+(instead of just "cpp").
+
+Affects HTML, FO, and manpages output. Closes bug 1552332. Thanks
+to "Brian A. Vanderburg II".<alt>M: /trunk/xsl/fo/synop.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added support for the <parameter>reference.autolabel</parameter> param in (X)HTML and FO
+output.<alt>M: /trunk/xsl/fo/param.xweb; M: /trunk/xsl/fo/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Support <tag>row</tag>s that are *completely* overlapped by the preceding <tag>row</tag><alt>M: /trunk/xsl/fo/table.xsl - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Rearranged templates for the 3 indexing methods
+and changed method named 'english' to 'basic'.<alt>M: /trunk/xsl/fo/autoidx.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">New modules for supporting indexing extensions.<alt>A: /trunk/xsl/fo/autoidx-kimber.xsl; A: /trunk/xsl/fo/autoidx-kosek.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Turn off blank-body for <parameter>fop1.extensions</parameter> too since fop 0.92
+does not support it either.<alt>M: /trunk/xsl/fo/pagesetup.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Add Xalan variant to test for exslt:node-set <tag>function</tag>.
+Xalan can use <tag>function</tag> named node-set(), but doesn't
+recognize it using function-available().<alt>M: /trunk/xsl/fo/autoidx.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added support to FO stylesheets for handling instances of <tag>Org</tag>
+where it occurs outside of *<tag>info</tag> content. In HTML stylesheets,
+moved handling of <tag>Org</tag> out of info.xsl and into inline.xsl. In both
+FO and HTML stylesheets, added support for correctly processing
+<tag>Affiliation</tag> and <tag>Jobtitle</tag>.<alt>M: /trunk/xsl/fo/inline.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Don't output punctuation between <tag>Refname</tag> and <tag>Refpurpose</tag> if
+<tag>Refpurpose</tag> is empty. Also corrected handling of <tag>Refsect2</tag>/<tag>title</tag>
+instances, and removed some debugging stuff that was generated in
+manpages output to mark the ends of sections.<alt>M: /trunk/xsl/fo/refentry.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added new <parameter>email.delimiters.enabled</parameter> param. If non-zero (the
+default), delimiters are generated around e-mail addresses (output
+of the <tag>email</tag> element). If zero, the delimiters are suppressed.<alt>M: /trunk/xsl/fo/inline.xsl; M: /trunk/xsl/fo/param.xweb; M: /trunk/xsl/fo/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Initial support of syntax highlighting of programlistings.<alt>M: /trunk/xsl/fo/param.ent; M: /trunk/xsl/fo/param.xweb; A: /trunk/xsl/fo/highlight.xsl; M: /trunk/xsl/fo/verbatim.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message"><tag>Chapter</tag> after <tag>preface</tag> should restart numbering of pages.<alt>M: /trunk/xsl/fo/pagesetup.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+            <filename>html</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+
+<listitem>
+<literallayout><phrase role="commit-message">xsl:sort lang attribute now uses two-char substring of lang attribute.<alt>M: /trunk/xsl/html/autoidx-kimber.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support titlecase "Java", "Perl", and "IDL" as values for the
+language attribute on <tag>classsynopsis</tag>, etc. (instead of just
+lowercase "java", "perl", and "idl"). Also support "c++" and "C++"
+(instead of just "cpp").
+
+Affects HTML, FO, and manpages output. Closes bug 1552332. Thanks
+to "Brian A. Vanderburg II".<alt>M: /trunk/xsl/html/synop.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added support for the <parameter>reference.autolabel</parameter> param in (X)HTML and FO
+output.<alt>M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support <tag>row</tag>s that are *completely* overlapped by the preceding <tag>row</tag><alt>M: /trunk/xsl/html/table.xsl - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Rearranged templates for the 3 indexing methods
+and changed method named 'english' to 'basic'.<alt>M: /trunk/xsl/html/autoidx.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">New modules for supporting indexing extensions.<alt>A: /trunk/xsl/html/autoidx-kimber.xsl; A: /trunk/xsl/html/autoidx-kosek.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added several new HTML parameters for controlling appearance of
+content on HTML <tag>title</tag> pages:
+
+<parameter>contrib.inline.enabled</parameter>:
+  If non-zero (the default), output of the <tag>contrib</tag> element is
+  displayed as inline content rather than as block content.
+
+<parameter>othercredit.like.author.enabled</parameter>:
+  If non-zero, output of the <tag>othercredit</tag> element on titlepages is
+  displayed in the same style as <tag>author</tag> and <tag>editor</tag> output. If zero
+  (the default), <tag>othercredit</tag> output is displayed using a style
+  different than that of <tag>author</tag> and <tag>editor</tag>.
+
+<parameter>blurb.on.titlepage.enabled</parameter>:
+  If non-zero, output from authorblurb and <tag>personblurb</tag> elements is
+  displayed on <tag>title</tag> pages. If zero (the default), output from
+  those elements is suppressed on <tag>title</tag> pages (unless you are
+  using a titlepage customization that causes them to be included).
+
+<parameter>editedby.enabled</parameter>
+  If non-zero (the default), a localized Edited by heading is
+  displayed above <tag>editor</tag> names in output of the <tag>editor</tag> element.<alt>M: /trunk/xsl/html/titlepage.xsl; M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Add Xalan variant to test for exslt:node-set <tag>function</tag>.
+Xalan can use <tag>function</tag> named node-set(), but doesn't
+recognize it using function-available().<alt>M: /trunk/xsl/html/autoidx.xsl - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added support to FO stylesheets for handling instances of <tag>Org</tag>
+where it occurs outside of *<tag>info</tag> content. In HTML stylesheets,
+moved handling of <tag>Org</tag> out of info.xsl and into inline.xsl. In both
+FO and HTML stylesheets, added support for correctly processing
+<tag>Affiliation</tag> and <tag>Jobtitle</tag>.<alt>M: /trunk/xsl/html/inline.xsl; M: /trunk/xsl/html/info.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Don't output punctuation between <tag>Refname</tag> and <tag>Refpurpose</tag> if
+<tag>Refpurpose</tag> is empty. Also corrected handling of <tag>Refsect2</tag>/<tag>title</tag>
+instances, and removed some debugging stuff that was generated in
+manpages output to mark the ends of sections.<alt>M: /trunk/xsl/html/refentry.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added new <parameter>email.delimiters.enabled</parameter> param. If non-zero (the
+default), delimiters are generated around e-mail addresses (output
+of the <tag>email</tag> element). If zero, the delimiters are suppressed.<alt>M: /trunk/xsl/html/inline.xsl; M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added <parameter>qanda.nested.in.toc</parameter> param. Default value is zero. If
+non-zero, instances of "nested" <tag>Qandaentry</tag> (ones that are children
+of <tag>Answer</tag> elements) are displayed in the <tag>TOC</tag>. Closes patch 1509018
+(from Daniel Leidert). Currently on affects HTML output (no patch
+for FO output provided).<alt>M: /trunk/xsl/html/param.xweb; M: /trunk/xsl/html/param.ent; M: /trunk/xsl/html/qandaset.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+
+<listitem>
+<literallayout><phrase role="commit-message">Improved handling of relative locations generated files<alt>M: /trunk/xsl/html/html.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Initial support of syntax highlighting of programlistings.<alt>M: /trunk/xsl/html/param.ent; M: /trunk/xsl/html/param.xweb; A: /trunk/xsl/html/highlight.xsl; M: /trunk/xsl/html/verbatim.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support <tag>org</tag><alt>M: /trunk/xsl/html/info.xsl - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support <tag>person</tag><alt>M: /trunk/xsl/html/inline.xsl - Norman Walsh</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Support $keep.relative.image.uris also when chunking<alt>M: /trunk/xsl/html/chunk-code.xsl - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_Highlighting">
+<title>Highlighting</title>
+<para>The following changes have been made to the
+            <filename>highlighting</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+
+<listitem>
+<literallayout><phrase role="commit-message">Initial support of syntax highlighting of programlistings.<alt>A: /trunk/xsl/highlighting/php-hl.xml; A: /trunk/xsl/highlighting/common.xsl; A: /trunk/xsl/highlighting/delphi-hl.xml; A: /trunk/xsl/highlighting/myxml-hl.xml; A: /trunk/xsl/highlighting/m2-hl.xml; A: /trunk/xsl/highlighting/ini-hl.xml; A: /trunk/xsl/highlighting/xslthl-config.xml; A: /trunk/xsl/highlighting/java-hl.xml - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Highlighting changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+            <filename>manpages</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+
+<listitem>
+<literallayout><phrase role="commit-message">Suppress <tag>footnote</tag> markers and output warning that footnotes are
+not yet supported.<alt>M: /trunk/xsl/manpages/docbook.xsl; M: /trunk/xsl/manpages/links.xsl; M: /trunk/xsl/manpages/other.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Handle instances of <tag>address</tag>/<tag>otheraddr</tag>/ulink in <tag>author</tag> et al in the
+same way as <tag>email</tag> instances; that is, display them on the same
+linke as the <tag>author</tag>, <tag>editor</tag>, etc., name.<alt>M: /trunk/xsl/manpages/info.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Don't number or link-list any Ulink instance whose string value is
+identical to the value of its url attribute. Just display it inline.<alt>M: /trunk/xsl/manpages/links.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Don't output punctuation between <tag>Refname</tag> and <tag>Refpurpose</tag> if
+<tag>Refpurpose</tag> is empty. Also corrected handling of <tag>Refsect2</tag>/<tag>title</tag>
+instances, and removed some debugging stuff that was generated in
+manpages output to mark the ends of sections.<alt>M: /trunk/xsl/manpages/refentry.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added new <parameter>email.delimiters.enabled</parameter> param. If non-zero (the
+default), delimiters are generated around e-mail addresses (output
+of the <tag>email</tag> element). If zero, the delimiters are suppressed.<alt>M: /trunk/xsl/manpages/param.xweb; M: /trunk/xsl/manpages/param.ent - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">In manpages output, if the last/nearest *<tag>info</tag> element for
+particular <tag>Refentry</tag> has multiple <tag>Copyright</tag> and/or <tag>Legalnotice</tag>
+children, process them all (not just the first ones). Closes bug
+1524576. Thanks to Sam Steingold for the report and to Daniel
+Leidert for providing a patch.<alt>M: /trunk/xsl/manpages/info.xsl - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+</itemizedlist>
+</sect2><!--end of Manpages changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+            <filename>params</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+<listitem>
+<literallayout><phrase role="commit-message">Added <parameter>reference.autolabel</parameter> parameter for controlling labels on
+<tag>reference</tag> output.<alt>A: /trunk/xsl/params/reference.autolabel.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added namespace declarations to document elements for all param files.<alt>M: /trunk/xsl/params/toc.line.properties.xml; M: /trunk/xsl/params/title.font.family.xml; M: /trunk/xsl/params/component.label.includes.part.label.xml; M: /trunk/xsl/params/refentry.manual.profile.xml; M: /trunk/xsl/params/orderedlist.properties.xml; M: /trunk/xsl/params/olink.pubid.xml; M: /trunk/xsl/params/informalexample.properties.xml; M: /trunk/xsl/params/appendix.autolabel.xml; M: /trunk/xsl/params/htmlhelp.show.toolbar.text.xml; M: /trunk/xsl/params/index.on.role.xml; M: /trunk/xsl/params/htmlhelp.button.jump2.url.xml; M: /trunk/xsl/params/variablelist.term.separator.xml; M: /trunk/xsl/params/para.propagates.style.xml; M: /trunk/xsl/params/html.stylesheet.xml; M: /trunk/xsl/params/qanda.nested.in.toc.xml; M: /trunk/xsl/params/annotation.css.xml; M: /trunk/xsl/params/funcsynopsis.style.xml; M: /trunk/xsl/params/htmlhelp.encoding.xml; M: /trunk/xsl/params/footer.content.properties.xml; M: /trunk/xsl/params/verbatim.properties.xml; M: /trunk/xsl/params/autotoc.label.in.hyperlink.xml; M: /trunk/xsl/params/body.margin.top.xml; M: /trunk/xsl/params/bibliography.numbered.xml; M: /trunk/xsl/params/figure.properties.xml; M: /trunk/xsl/params/variablelist.max.termlength.xml; M: /trunk/xsl/params/table.cell.border.style.xml; M: /trunk/xsl/params/htmlhelp.button.options.xml; M: /trunk/xsl/params/preferred.mediaobject.role.xml; M: /trunk/xsl/params/htmlhelp.chm.xml; M: /trunk/xsl/params/man.charmap.subset.profile.xml; M: /trunk/xsl/params/qanda.title.level3.properties.xml; M: /trunk/xsl/params/page.width.xml; M: /trunk/xsl/params/firstterm.only.link.xml; M: /trunk/xsl/params/section.level6.properties.xml; M: /trunk/xsl/params/htmlhelp.button.locate.xml; M: /trunk/xsl/params/chunk.sections.xml; M: /trunk/xsl/params/use.local.olink.style.xml; M: /trunk/xsl/params/refentry.date.profile.enabled.xml; M: /trunk/xsl/params/refentry.version.suppress.xml; M: /trunk/xsl/params/refentry.generate.title.xml; M: /trunk/xsl/params/punct.honorific.xml; M: /trunk/xsl/params/column.gap.index.xml; M: /trunk/xsl/params/body.start.indent.xml; M: /trunk/xsl/params/crop.mark.width.xml; M: /trunk/xsl/params/refentry.version.profile.enabled.xml; M: /trunk/xsl/params/superscript.properties.xml; M: /trunk/xsl/params/chunker.output.doctype-public.xml; M: /trunk/xsl/params/saxon.character.representation.xml; M: /trunk/xsl/params/saxon.linenumbering.xml; M: /trunk/xsl/params/shade.verbatim.style.xml; M: /trunk/xsl/params/annotate.toc.xml; M: /trunk/xsl/params/profile.attribute.xml; M: /trunk/xsl/params/callout.graphics.number.limit.xml; M: /trunk/xsl/params/profile.arch.xml; M: /trunk/xsl/params/saxon.tablecolumns.xml; M: /trunk/xsl/params/glossterm.auto.link.xml; M: /trunk/xsl/params/default.units.xml; M: /trunk/xsl/params/qanda.title.level1.properties.xml; M: /trunk/xsl/params/list.block.spacing.xml; M: /trunk/xsl/params/section.level4.properties.xml; M: /trunk/xsl/params/spacing.paras.xml; M: /trunk/xsl/params/column.count.index.xml; M: /trunk/xsl/params/dingbat.font.family.xml; M: /trunk/xsl/params/citerefentry.link.xml; M: /trunk/xsl/params/keep.relative.image.uris.xml; M: /trunk/xsl/params/ulink.footnotes.xml; M: /trunk/xsl/params/prefer.internal.olink.xml; M: /trunk/xsl/params/refentry.title.properties.xml; M: /trunk/xsl/params/variablelist.term.break.after.xml; M: /trunk/xsl/params/use.id.function.xml; M: /trunk/xsl/params/callout.unicode.start.character.xml; M: /trunk/xsl/params/column.gap.titlepage.xml; M: /trunk/xsl/params/editedby.enabled.xml; M: /trunk/xsl/params/funcsynopsis.tabular.threshold.xml; M: /trunk/xsl/params/use.extensions.xml; M: /trunk/xsl/params/index.preferred.page.properties.xml; M: /trunk/xsl/params/man.th.extra3.max.length.xml; M: /trunk/xsl/params/column.gap.back.xml; M: /trunk/xsl/params/tex.math.delims.xml; M: /trunk/xsl/params/article.appendix.title.properties.xml; M: /trunk/xsl/params/ulink.target.xml; M: /trunk/xsl/params/suppress.header.navigation.xml; M: /trunk/xsl/params/olink.resolver.xml; M: /trunk/xsl/params/admon.textlabel.xml; M: /trunk/xsl/params/procedure.properties.xml; M: /trunk/xsl/params/blurb.on.titlepage.enabled.xml; M: /trunk/xsl/params/section.level2.properties.xml; M: /trunk/xsl/params/column.gap.front.xml; M: /trunk/xsl/params/margin.note.title.properties.xml; M: /trunk/xsl/params/glossary.collection.xml; M: /trunk/xsl/params/admon.graphics.xml; M: /trunk/xsl/params/current.docid.xml; M: /trunk/xsl/params/qanda.inherit.numeration.xml; M: /trunk/xsl/params/table.cell.padding.xml; M: /trunk/xsl/params/preface.autolabel.xml; M: /trunk/xsl/params/man.th.extra3.suppress.xml; M: /trunk/xsl/params/wordml.template.xml; M: /trunk/xsl/params/htmlhelp.use.hhk.xml; M: /trunk/xsl/params/textinsert.extension.xml; M: /trunk/xsl/params/ebnf.table.bgcolor.xml; M: /trunk/xsl/params/refentry.source.fallback.profile.xml; M: /trunk/xsl/params/body.font.master.xml; M: /trunk/xsl/params/l10n.gentext.default.language.xml; M: /trunk/xsl/params/list.block.properties.xml; M: /trunk/xsl/params/refentry.source.name.suppress.xml; M: /trunk/xsl/params/htmlhelp.hhp.window.xml; M: /trunk/xsl/params/sidebar.properties.xml; M: /trunk/xsl/params/tex.math.file.xml; M: /trunk/xsl/params/man.justify.xml; M: /trunk/xsl/params/subscript.properties.xml; M: /trunk/xsl/params/column.count.front.xml; M: /trunk/xsl/params/index.term.separator.xml; M: /trunk/xsl/params/biblioentry.properties.xml; M: /trunk/xsl/params/biblioentry.item.separator.xml; M: /trunk/xsl/params/htmlhelp.button.home.url.xml; M: /trunk/xsl/params/column.count.body.xml; M: /trunk/xsl/params/suppress.navigation.xml; M: /trunk/xsl/params/htmlhelp.remember.window.position.xml; M: /trunk/xsl/params/htmlhelp.hhc.section.depth.xml; M: /trunk/xsl/params/xref.with.number.and.title.xml; M: /trunk/xsl/params/make.year.ranges.xml; M: /trunk/xsl/params/region.before.extent.xml; M: /trunk/xsl/params/xref.label-page.separator.xml; M: /trunk/xsl/params/html.longdesc.link.xml; M: /trunk/xsl/params/man.subheading.divider.enabled.xml; M: /trunk/xsl/params/index.entry.properties.xml; M: /trunk/xsl/params/generate.legalnotice.link.xml; M: /trunk/xsl/params/section.autolabel.xml; M: /trunk/xsl/params/html.base.xml; M: /trunk/xsl/params/suppress.footer.navigation.xml; M: /trunk/xsl/params/nominal.image.depth.xml; M: /trunk/xsl/params/table.footnote.number.symbols.xml; M: /trunk/xsl/params/table.footnote.number.format.xml; M: /trunk/xsl/params/callout.graphics.xml; M: /trunk/xsl/params/man.break.after.slash.xml; M: /trunk/xsl/params/function.parens.xml; M: /trunk/xsl/params/part.autolabel.xml; M: /trunk/xsl/params/saxon.callouts.xml; M: /trunk/xsl/params/css.decoration.xml; M: /trunk/xsl/params/htmlhelp.button.home.xml; M: /trunk/xsl/params/email.delimiters.enabled.xml; M: /trunk/xsl/params/column.count.lot.xml; M: /trunk/xsl/params/draft.mode.xml; M: /trunk/xsl/params/use.role.for.mediaobject.xml; M: /trunk/xsl/params/refentry.separator.xml; M: /trunk/xsl/params/man.font.funcsynopsisinfo.xml; M: /trunk/xsl/params/man.output.manifest.filename.xml; M: /trunk/xsl/params/process.empty.source.toc.xml; M: /trunk/xsl/params/man.output.in.separate.dir.xml; M: /trunk/xsl/params/graphicsize.use.img.src.path.xml; M: /trunk/xsl/params/man.output.encoding.xml; M: /trunk/xsl/params/column.gap.lot.xml; M: /trunk/xsl/params/profile.role.xml; M: /trunk/xsl/params/column.count.titlepage.xml; M: /trunk/xsl/params/show.comments.xml; M: /trunk/xsl/params/informalfigure.properties.xml; M: /trunk/xsl/params/entry.propagates.style.xml; M: /trunk/xsl/params/bibliography.collection.xml; M: /trunk/xsl/params/contrib.inline.enabled.xml; M: /trunk/xsl/params/section.title.level5.properties.xml; M: /trunk/xsl/params/fop.extensions.xml; M: /trunk/xsl/params/htmlhelp.button.jump1.xml; M: /trunk/xsl/params/man.hyphenate.urls.xml; M: /trunk/xsl/params/profile.condition.xml; M: /trunk/xsl/params/header.column.widths.xml; M: /trunk/xsl/params/annotation.js.xml; M: /trunk/xsl/params/chunker.output.standalone.xml; M: /trunk/xsl/params/targets.filename.xml; M: /trunk/xsl/params/default.float.class.xml; M: /trunk/xsl/params/chapter.autolabel.xml; M: /trunk/xsl/params/sidebar.float.type.xml; M: /trunk/xsl/params/profile.separator.xml; M: /trunk/xsl/params/generate.index.xml; M: /trunk/xsl/params/nongraphical.admonition.properties.xml; M: /trunk/xsl/params/navig.graphics.xml; M: /trunk/xsl/params/htmlhelp.button.next.xml; M: /trunk/xsl/params/insert.olink.pdf.frag.xml; M: /trunk/xsl/params/htmlhelp.button.stop.xml; M: /trunk/xsl/params/footnote.font.size.xml; M: /trunk/xsl/params/profile.value.xml; M: /trunk/xsl/params/ebnf.table.border.xml; M: /trunk/xsl/params/htmlhelp.hhc.folders.instead.books.xml; M: /trunk/xsl/params/glossary.as.blocks.xml; M: /trunk/xsl/params/body.end.indent.xml; M: /trunk/xsl/params/use.role.as.xrefstyle.xml; M: /trunk/xsl/params/man.indent.blurbs.xml; M: /trunk/xsl/params/chunker.output.encoding.xml; M: /trunk/xsl/params/chunker.output.omit-xml-declaration.xml; M: /trunk/xsl/params/sans.font.family.xml; M: /trunk/xsl/params/html.cleanup.xml; M: /trunk/xsl/params/htmlhelp.hhp.xml; M: /trunk/xsl/params/htmlhelp.only.xml; M: /trunk/xsl/params/eclipse.plugin.name.xml; M: /trunk/xsl/params/section.title.level3.properties.xml; M: /trunk/xsl/params/man.th.extra1.suppress.xml; M: /trunk/xsl/params/chunk.section.depth.xml; M: /trunk/xsl/params/htmlhelp.hhp.tail.xml; M: /trunk/xsl/params/sidebar.title.properties.xml; M: /trunk/xsl/params/hyphenate.xml; M: /trunk/xsl/params/paper.type.xml; M: /trunk/xsl/params/chunk.tocs.and.lots.has.title.xml; M: /trunk/xsl/params/symbol.font.family.xml; M: /trunk/xsl/params/page.margin.bottom.xml; M: /trunk/xsl/params/callout.unicode.number.limit.xml; M: /trunk/xsl/params/itemizedlist.properties.xml; M: /trunk/xsl/params/root.filename.xml; M: /trunk/xsl/params/tablecolumns.extension.xml; M: /trunk/xsl/params/htmlhelp.show.favorities.xml; M: /trunk/xsl/params/informaltable.properties.xml; M: /trunk/xsl/params/revhistory.table.cell.properties.xml; M: /trunk/xsl/params/htmlhelp.default.topic.xml; M: /trunk/xsl/params/compact.list.item.spacing.xml; M: /trunk/xsl/params/page.height.portrait.xml; M: /trunk/xsl/params/html.head.legalnotice.link.types.xml; M: /trunk/xsl/params/passivetex.extensions.xml; M: /trunk/xsl/params/orderedlist.label.properties.xml; M: /trunk/xsl/params/othercredit.like.author.enabled.xml; M: /trunk/xsl/params/header.content.properties.xml; M: /trunk/xsl/params/refentry.meta.get.quietly.xml; M: /trunk/xsl/params/section.properties.xml; M: /trunk/xsl/params/htmlhelp.button.hideshow.xml; M: /trunk/xsl/params/simplesect.in.toc.xml; M: /trunk/xsl/params/chunk.quietly.xml; M: /trunk/xsl/params/htmlhelp.enumerate.images.xml; M: /trunk/xsl/params/section.title.level1.properties.xml; M: /trunk/xsl/params/qanda.defaultlabel.xml; M: /trunk/xsl/params/htmlhelp.enhanced.decompilation.xml; M: /trunk/xsl/params/man.th.title.max.length.xml; M: /trunk/xsl/params/footnote.number.format.xml; M: /trunk/xsl/params/body.margin.bottom.xml; M: /trunk/xsl/params/htmlhelp.window.geometry.xml; M: /trunk/xsl/params/htmlhelp.button.jump2.xml; M: /trunk/xsl/params/use.svg.xml; M: /trunk/xsl/params/qanda.title.level6.properties.xml; M: /trunk/xsl/params/collect.xref.targets.xml; M: /trunk/xsl/params/html.extra.head.links.xml; M: /trunk/xsl/params/variablelist.as.table.xml; M: /trunk/xsl/params/man.indent.width.xml; M: /trunk/xsl/params/eclipse.plugin.id.xml; M: /trunk/xsl/params/linenumbering.width.xml; M: /trunk/xsl/params/axf.extensions.xml; M: /trunk/xsl/params/menuchoice.separator.xml; M: /trunk/xsl/params/glossterm.separation.xml; M: /trunk/xsl/params/htmlhelp.autolabel.xml; M: /trunk/xsl/params/chunk.separate.lots.xml; M: /trunk/xsl/params/man.hyphenate.computer.inlines.xml; M: /trunk/xsl/params/linenumbering.separator.xml; M: /trunk/xsl/params/htmlhelp.title.xml; M: /trunk/xsl/params/index.number.separator.xml; M: /trunk/xsl/params/htmlhelp.button.prev.xml; M: /trunk/xsl/params/refentry.manual.fallback.profile.xml; M: /trunk/xsl/params/table.frame.border.color.xml; M: /trunk/xsl/params/footnote.sep.leader.properties.xml; M: /trunk/xsl/params/hyphenate.verbatim.characters.xml; M: /trunk/xsl/params/table.cell.border.thickness.xml; M: /trunk/xsl/params/template.xml; M: /trunk/xsl/params/margin.note.properties.xml; M: /trunk/xsl/params/man.segtitle.suppress.xml; M: /trunk/xsl/params/generate.toc.xml; M: /trunk/xsl/params/formal.object.properties.xml; M: /trunk/xsl/params/footnote.mark.properties.xml; M: /trunk/xsl/params/header.table.height.xml; M: /trunk/xsl/params/htmlhelp.button.back.xml; M: /trunk/xsl/params/qanda.title.level4.properties.xml; M: /trunk/xsl/params/man.links.are.numbered.xml; M: /trunk/xsl/params/manual.toc.xml; M: /trunk/xsl/params/olink.lang.fallback.sequence.xml; M: /trunk/xsl/params/refentry.manual.profile.enabled.xml; M: /trunk/xsl/params/ulink.hyphenate.chars.xml; M: /trunk/xsl/params/manifest.xml; M: /trunk/xsl/params/olink.fragid.xml; M: /trunk/xsl/params/refentry.date.profile.xml; M: /trunk/xsl/params/linenumbering.extension.xml; M: /trunk/xsl/params/component.title.properties.xml; M: /trunk/xsl/params/alignment.xml; M: /trunk/xsl/params/refentry.version.profile.xml; M: /trunk/xsl/params/ebnf.assignment.xml; M: /trunk/xsl/params/htmlhelp.button.print.xml; M: /trunk/xsl/params/annotation.support.xml; M: /trunk/xsl/params/sidebar.float.width.xml; M: /trunk/xsl/params/normal.para.spacing.xml; M: /trunk/xsl/params/xref.title-page.separator.xml; M: /trunk/xsl/params/callout.unicode.font.xml; M: /trunk/xsl/params/default.table.frame.xml; M: /trunk/xsl/params/pages.template.xml; M: /trunk/xsl/params/htmlhelp.button.zoom.xml; M: /trunk/xsl/params/admonition.title.properties.xml; M: /trunk/xsl/params/callout.graphics.extension.xml; M: /trunk/xsl/params/make.valid.html.xml; M: /trunk/xsl/params/qanda.title.level2.properties.xml; M: /trunk/xsl/params/page.margin.top.xml; M: /trunk/xsl/params/xep.index.item.properties.xml; M: /trunk/xsl/params/section.level5.properties.xml; M: /trunk/xsl/params/line-height.xml; M: /trunk/xsl/params/table.cell.border.color.xml; M: /trunk/xsl/params/qandadiv.autolabel.xml; M: /trunk/xsl/params/xref.label-title.separator.xml; M: /trunk/xsl/params/chunk.tocs.and.lots.xml; M: /trunk/xsl/params/man.font.funcprototype.xml; M: /trunk/xsl/params/process.source.toc.xml; M: /trunk/xsl/params/page.orientation.xml; M: /trunk/xsl/params/refentry.generate.name.xml; M: /trunk/xsl/params/navig.showtitles.xml; M: /trunk/xsl/params/table.table.properties.xml; M: /trunk/xsl/params/arbortext.extensions.xml; M: /trunk/xsl/params/informalequation.properties.xml; M: /trunk/xsl/params/headers.on.blank.pages.xml; M: /trunk/xsl/params/table.footnote.properties.xml; M: /trunk/xsl/params/root.properties.xml; M: /trunk/xsl/params/htmlhelp.display.progress.xml; M: /trunk/xsl/params/htmlhelp.hhp.windows.xml; M: /trunk/xsl/params/graphical.admonition.properties.xml; M: /trunk/xsl/params/refclass.suppress.xml; M: /trunk/xsl/params/profile.conformance.xml; M: /trunk/xsl/params/htmlhelp.button.forward.xml; M: /trunk/xsl/params/segmentedlist.as.table.xml; M: /trunk/xsl/params/margin.note.float.type.xml; M: /trunk/xsl/params/man.table.footnotes.divider.xml; M: /trunk/xsl/params/man.output.quietly.xml; M: /trunk/xsl/params/htmlhelp.hhc.show.root.xml; M: /trunk/xsl/params/footers.on.blank.pages.xml; M: /trunk/xsl/params/crop.mark.offset.xml; M: /trunk/xsl/params/olink.doctitle.xml; M: /trunk/xsl/params/section.level3.properties.xml; M: /trunk/xsl/params/callout.unicode.xml; M: /trunk/xsl/params/formal.procedures.xml; M: /trunk/xsl/params/toc.section.depth.xml; M: /trunk/xsl/params/index.prefer.titleabbrev.xml; M: /trunk/xsl/params/nominal.image.width.xml; M: /trunk/xsl/params/htmlhelp.show.menu.xml; M: /trunk/xsl/params/linenumbering.everyNth.xml; M: /trunk/xsl/params/double.sided.xml; M: /trunk/xsl/params/generate.revhistory.link.xml; M: /trunk/xsl/params/olink.properties.xml; M: /trunk/xsl/params/tex.math.in.alt.xml; M: /trunk/xsl/params/man.output.subdirs.enabled.xml; M: /trunk/xsl/params/section.title.properties.xml; M: /trunk/xsl/params/column.count.back.xml; M: /trunk/xsl/params/toc.indent.width.xml; M: /trunk/xsl/params/man.charmap.uri.xml; M: /trunk/xsl/params/index.method.xml; M: /trunk/xsl/params/generate.section.toc.level.xml; M: /trunk/xsl/params/page.width.portrait.xml; M: /trunk/xsl/params/man.th.extra2.max.length.xml; M: /trunk/xsl/params/abstract.properties.xml; M: /trunk/xsl/params/revhistory.table.properties.xml; M: /trunk/xsl/params/nominal.table.width.xml; M: /trunk/xsl/params/ulink.show.xml; M: /trunk/xsl/params/htmlhelp.button.jump1.title.xml; M: /trunk/xsl/params/index.div.title.properties.xml; M: /trunk/xsl/params/profile.userlevel.xml; M: /trunk/xsl/params/html.cellpadding.xml; M: /trunk/xsl/params/orderedlist.label.width.xml; M: /trunk/xsl/params/crop.marks.xml; M: /trunk/xsl/params/menuchoice.menu.separator.xml; M: /trunk/xsl/params/author.othername.in.middle.xml; M: /trunk/xsl/params/section.level1.properties.xml; M: /trunk/xsl/params/textdata.default.encoding.xml; M: /trunk/xsl/params/label.from.part.xml; M: /trunk/xsl/params/use.embed.for.svg.xml; M: /trunk/xsl/params/list.item.spacing.xml; M: /trunk/xsl/params/htmlhelp.hhc.width.xml; M: /trunk/xsl/params/column.gap.body.xml; M: /trunk/xsl/params/rootid.xml; M: /trunk/xsl/params/glosslist.as.blocks.xml; M: /trunk/xsl/params/index.range.separator.xml; M: /trunk/xsl/params/html.ext.xml; M: /trunk/xsl/params/callout.list.table.xml; M: /trunk/xsl/params/highlight.source.xml; M: /trunk/xsl/params/show.revisionflag.xml; M: /trunk/xsl/params/man.output.manifest.enabled.xml; M: /trunk/xsl/params/make.single.year.ranges.xml; M: /trunk/xsl/params/pgwide.properties.xml; M: /trunk/xsl/params/generate.id.attributes.xml; M: /trunk/xsl/params/emphasis.propagates.style.xml; M: /trunk/xsl/params/abstract.title.properties.xml; M: /trunk/xsl/params/htmlhelp.hhc.xml; M: /trunk/xsl/params/monospace.properties.xml; M: /trunk/xsl/params/htmlhelp.hhk.xml; M: /trunk/xsl/params/table.borders.with.css.xml; M: /trunk/xsl/params/man.links.are.underlined.xml; M: /trunk/xsl/params/profile.vendor.xml; M: /trunk/xsl/params/shade.verbatim.xml; M: /trunk/xsl/params/callout.graphics.path.xml; M: /trunk/xsl/params/olink.debug.xml; M: /trunk/xsl/params/make.graphic.viewport.xml; M: /trunk/xsl/params/footnote.number.symbols.xml; M: /trunk/xsl/params/man.charmap.enabled.xml; M: /trunk/xsl/params/page.height.xml; M: /trunk/xsl/params/htmlhelp.button.jump1.url.xml; M: /trunk/xsl/params/man.font.table.title.xml; M: /trunk/xsl/params/revhistory.title.properties.xml; M: /trunk/xsl/params/chunker.output.media-type.xml; M: /trunk/xsl/params/glossterm.width.xml; M: /trunk/xsl/params/points.per.em.xml; M: /trunk/xsl/params/page.margin.inner.xml; M: /trunk/xsl/params/itemizedlist.label.width.xml; M: /trunk/xsl/params/ulink.hyphenate.xml; M: /trunk/xsl/params/crop.mark.bleed.xml; M: /trunk/xsl/params/use.id.as.filename.xml; M: /trunk/xsl/params/section.title.level6.properties.xml; M: /trunk/xsl/params/highlight.default.language.xml; M: /trunk/xsl/params/man.th.extra2.suppress.xml; M: /trunk/xsl/params/id.warnings.xml; M: /trunk/xsl/params/title.margin.left.xml; M: /trunk/xsl/params/chunker.output.doctype-system.xml; M: /trunk/xsl/params/man.indent.verbatims.xml; M: /trunk/xsl/params/table.frame.border.thickness.xml; M: /trunk/xsl/params/monospace.verbatim.properties.xml; M: /trunk/xsl/params/formal.title.properties.xml; M: /trunk/xsl/params/margin.note.width.xml; M: /trunk/xsl/params/man.hyphenate.filenames.xml; M: /trunk/xsl/params/blockquote.properties.xml; M: /trunk/xsl/params/callout.defaultcolumn.xml; M: /trunk/xsl/params/profile.security.xml; M: /trunk/xsl/params/informal.object.properties.xml; M: /trunk/xsl/params/formal.title.placement.xml; M: /trunk/xsl/params/draft.watermark.image.xml; M: /trunk/xsl/params/equation.properties.xml; M: /trunk/xsl/params/body.font.family.xml; M: /trunk/xsl/params/ignore.image.scaling.xml; M: /trunk/xsl/params/chunk.first.sections.xml; M: /trunk/xsl/params/base.dir.xml; M: /trunk/xsl/params/footnote.properties.xml; M: /trunk/xsl/params/olink.outline.ext.xml; M: /trunk/xsl/params/img.src.path.xml; M: /trunk/xsl/params/qanda.title.properties.xml; M: /trunk/xsl/params/ebnf.statement.terminator.xml; M: /trunk/xsl/params/callouts.extension.xml; M: /trunk/xsl/params/manifest.in.base.dir.xml; M: /trunk/xsl/params/fop1.extensions.xml; M: /trunk/xsl/params/olink.sysid.xml; M: /trunk/xsl/params/section.title.level4.properties.xml; M: /trunk/xsl/params/monospace.font.family.xml; M: /trunk/xsl/params/l10n.gentext.language.xml; M: /trunk/xsl/params/graphic.default.extension.xml; M: /trunk/xsl/params/default.image.width.xml; M: /trunk/xsl/params/htmlhelp.button.refresh.xml; M: /trunk/xsl/params/chunker.output.cdata-section-elements.xml; M: /trunk/xsl/params/admon.graphics.path.xml; M: /trunk/xsl/params/admon.style.xml; M: /trunk/xsl/params/profile.revision.xml; M: /trunk/xsl/params/generate.manifest.xml; M: /trunk/xsl/params/html.longdesc.xml; M: /trunk/xsl/params/footer.rule.xml; M: /trunk/xsl/params/eclipse.plugin.provider.xml; M: /trunk/xsl/params/refentry.source.name.profile.xml; M: /trunk/xsl/params/toc.max.depth.xml; M: /trunk/xsl/params/chunker.output.indent.xml; M: /trunk/xsl/params/html.head.legalnotice.link.multiple.xml; M: /trunk/xsl/params/toc.list.type.xml; M: /trunk/xsl/params/link.mailto.url.xml; M: /trunk/xsl/params/table.properties.xml; M: /trunk/xsl/params/side.float.properties.xml; M: /trunk/xsl/params/man.charmap.use.subset.xml; M: /trunk/xsl/params/annotation.graphic.open.xml; M: /trunk/xsl/params/html.cellspacing.xml; M: /trunk/xsl/params/default.table.width.xml; M: /trunk/xsl/params/xep.extensions.xml; M: /trunk/xsl/params/admonition.properties.xml; M: /trunk/xsl/params/toc.margin.properties.xml; M: /trunk/xsl/params/chunk.toc.xml; M: /trunk/xsl/params/table.entry.padding.xml; M: /trunk/xsl/params/header.rule.xml; M: /trunk/xsl/params/glossentry.show.acronym.xml; M: /trunk/xsl/params/variablelist.as.blocks.xml; M: /trunk/xsl/params/man.hyphenate.xml; M: /trunk/xsl/params/refentry.source.name.profile.enabled.xml; M: /trunk/xsl/params/section.label.includes.component.label.xml; M: /trunk/xsl/params/bridgehead.in.toc.xml; M: /trunk/xsl/params/section.title.level2.properties.xml; M: /trunk/xsl/params/admon.graphics.extension.xml; M: /trunk/xsl/params/inherit.keywords.xml; M: /trunk/xsl/params/insert.xref.page.number.xml; M: /trunk/xsl/params/pixels.per.inch.xml; M: /trunk/xsl/params/refentry.pagebreak.xml; M: /trunk/xsl/params/profile.lang.xml; M: /trunk/xsl/params/insert.olink.page.number.xml; M: /trunk/xsl/params/generate.meta.abstract.xml; M: /trunk/xsl/params/graphicsize.extension.xml; M: /trunk/xsl/params/man.indent.lists.xml; M: /trunk/xsl/params/funcsynopsis.decoration.xml; M: /trunk/xsl/params/runinhead.title.end.punct.xml; M: /trunk/xsl/params/man.string.subst.map.xml; M: /trunk/xsl/params/man.links.list.enabled.xml; M: /trunk/xsl/params/section.autolabel.max.depth.xml; M: /trunk/xsl/params/htmlhelp.show.advanced.search.xml; M: /trunk/xsl/params/htmlhelp.map.file.xml; M: /trunk/xsl/params/l10n.gentext.use.xref.language.xml; M: /trunk/xsl/params/body.font.size.xml; M: /trunk/xsl/params/html.stylesheet.type.xml; M: /trunk/xsl/params/refentry.xref.manvolnum.xml; M: /trunk/xsl/params/runinhead.default.title.end.punct.xml; M: /trunk/xsl/params/navig.graphics.extension.xml; M: /trunk/xsl/params/itemizedlist.label.properties.xml; M: /trunk/xsl/params/htmlhelp.force.map.and.alias.xml; M: /trunk/xsl/params/profile.os.xml; M: /trunk/xsl/params/htmlhelp.alias.file.xml; M: /trunk/xsl/params/page.margin.outer.xml; M: /trunk/xsl/params/annotation.graphic.close.xml; M: /trunk/xsl/params/eclipse.autolabel.xml; M: /trunk/xsl/params/table.frame.border.style.xml; M: /trunk/xsl/params/navig.graphics.path.xml; M: /trunk/xsl/params/htmlhelp.hhc.binary.xml; M: /trunk/xsl/params/index.on.type.xml; M: /trunk/xsl/params/target.database.document.xml; M: /trunk/xsl/params/man.subheading.divider.xml; M: /trunk/xsl/params/chunker.output.method.xml; M: /trunk/xsl/params/make.index.markup.xml; M: /trunk/xsl/params/olink.base.uri.xml; M: /trunk/xsl/params/phrase.propagates.style.xml; M: /trunk/xsl/params/man.indent.refsect.xml; M: /trunk/xsl/params/example.properties.xml; M: /trunk/xsl/params/man.font.table.headings.xml; M: /trunk/xsl/params/profile.revisionflag.xml; M: /trunk/xsl/params/region.after.extent.xml; M: /trunk/xsl/params/qanda.title.level5.properties.xml; M: /trunk/xsl/params/marker.section.level.xml; M: /trunk/xsl/params/footer.table.height.xml; M: /trunk/xsl/params/autotoc.label.separator.xml; M: /trunk/xsl/params/footer.column.widths.xml; M: /trunk/xsl/params/hyphenate.verbatim.xml; M: /trunk/xsl/params/xref.properties.xml; M: /trunk/xsl/params/man.output.base.dir.xml; M: /trunk/xsl/params/man.links.list.heading.xml; M: /trunk/xsl/params/insert.link.page.number.xml; M: /trunk/xsl/params/htmlhelp.button.jump2.title.xml; M: /trunk/xsl/params/l10n.lang.value.rfc.compliant.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Updated index.method doc to describe revised setup for importing <tag>index</tag> extensions.<alt>M: /trunk/xsl/params/index.method.xml - Robert Stayton</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added several new HTML parameters for controlling appearance of
+content on HTML <tag>title</tag> pages:
+
+<parameter>contrib.inline.enabled</parameter>:
+  If non-zero (the default), output of the <tag>contrib</tag> element is
+  displayed as inline content rather than as block content.
+
+<parameter>othercredit.like.author.enabled</parameter>:
+  If non-zero, output of the <tag>othercredit</tag> element on titlepages is
+  displayed in the same style as <tag>author</tag> and <tag>editor</tag> output. If zero
+  (the default), <tag>othercredit</tag> output is displayed using a style
+  different than that of <tag>author</tag> and <tag>editor</tag>.
+
+<parameter>blurb.on.titlepage.enabled</parameter>:
+  If non-zero, output from authorblurb and <tag>personblurb</tag> elements is
+  displayed on <tag>title</tag> pages. If zero (the default), output from
+  those elements is suppressed on <tag>title</tag> pages (unless you are
+  using a titlepage customization that causes them to be included).
+
+<parameter>editedby.enabled</parameter>
+  If non-zero (the default), a localized Edited by heading is
+  displayed above <tag>editor</tag> names in output of the <tag>editor</tag> element.<alt>A: /trunk/xsl/params/contrib.inline.enabled.xml; A: /trunk/xsl/params/blurb.on.titlepage.enabled.xml; A: /trunk/xsl/params/othercredit.like.author.enabled.xml; A: /trunk/xsl/params/editedby.enabled.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added new <parameter>email.delimiters.enabled</parameter> param. If non-zero (the
+default), delimiters are generated around e-mail addresses (output
+of the <tag>email</tag> element). If zero, the delimiters are suppressed.<alt>A: /trunk/xsl/params/email.delimiters.enabled.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Added <parameter>qanda.nested.in.toc</parameter> param. Default value is zero. If
+non-zero, instances of "nested" <tag>Qandaentry</tag> (ones that are children
+of <tag>Answer</tag> elements) are displayed in the <tag>TOC</tag>. Closes patch 1509018
+(from Daniel Leidert). Currently on affects HTML output (no patch
+for FO output provided).<alt>A: /trunk/xsl/params/qanda.nested.in.toc.xml - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+<listitem>
+<literallayout><phrase role="commit-message">Initial support of syntax highlighting of programlistings.<alt>A: /trunk/xsl/params/highlight.source.xml; A: /trunk/xsl/params/highlight.default.language.xml - Jirka Kosek</alt></phrase></literallayout>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.71.0-->
+
+<sect2 xml:id="V1.71.0_Tools">
+<title>Tools</title>
+<para>The following changes have been made to the
+            <filename>tools</filename> code
+            since the 1.70.1 release.</para>
+<itemizedlist>
+
+<listitem>
+<literallayout><phrase role="commit-message">Racheted down font sizes of headings in example makefile FO output.<alt>M: /trunk/xsl/tools/make/Makefile.DocBook - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added param and attribute set to example makefile, for getting
+wrapping in verbatims in FO output.<alt>M: /trunk/xsl/tools/make/Makefile.DocBook - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Renamed Makefile.paramDoc to Makefile.docParam.<alt>A: /trunk/xsl/tools/make/Makefile.docParam; D: /trunk/xsl/tools/make/Makefile.paramDoc - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added Makefile.paramDoc file, for creating versions of param.xsl
+files with doc embedded.<alt>A: /trunk/xsl/tools/make/Makefile.paramDoc - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+<listitem>
+<literallayout><phrase role="commit-message">Added variable to example makefile for controlling whether HTML or
+XHTML is generated.<alt>M: /trunk/xsl/tools/make/Makefile.DocBook - Michael(tm) Smith</alt></phrase></literallayout>
+</listitem>
+
+</itemizedlist>
+</sect2><!--end of Tools changes for 1.71.0-->
+</sect1>
+
+<sect1 xml:id="V1701">
+<title>Release: 1.70.1</title>
+
+<para>This is a stable release of the 1.70 stylesheets. It includes only a
+few small changes from 1.70.0.</para>
+
+<para>The following is a list of changes that have been made
+        since the 1.70.0 release.</para>
+
+<sect2 xml:id="V1701_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+        <filename>fo</filename> code
+        since the 1.70.0 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Added three new attribute sets (revhistory.title.properties, revhistory.table.properties and revhistory.table.cell.properties) for controlling appearance of revhistory in FO output.</para>
+<para role="commit-changes">Modified: fo/block.xsl,1.34; fo/param.ent,1.101; fo/param.xweb,1.114; fo/titlepage.xsl,1.41; params/revhistory.table.cell.properties.xml,1.1; params/revhistory.table.properties.xml,1.1; params/revhistory.title.properties.xml,1.1 - Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support DBv5 revisions with full author name (not only authorinitials)</para>
+<para role="commit-changes">Modified: fo/block.xsl,1.33; fo/titlepage.xsl,1.40 - Jirka Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for 1.70.1-->
+
+<sect2 xml:id="V1701_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+        <filename>html</filename> code
+        since the 1.70.0 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Support DBv5 revisions with full author name (not only authorinitials)</para>
+<para role="commit-changes">Modified: html/block.xsl,1.23; html/titlepage.xsl,1.34 - Jirka Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for 1.70.1-->
+
+<sect2 xml:id="V1701_HTMLHelp">
+<title>HTMLHelp</title>
+<para>The following changes have been made to the
+        <filename>htmlhelp</filename> code
+        since the 1.70.0 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>htmlhelp.generate.index is now param, not variable. This means that you can override its setting from outside. This is useful when you generate indexterms on the fly (see http://www.xml.com/pub/a/2004/07/14/dbndx.html?page=3).</para>
+<para role="commit-changes">Modified: htmlhelp/htmlhelp-common.xsl,1.38 - Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support chunk.tocs.and.lots in HTML Help</para>
+<para role="commit-changes">Modified: htmlhelp/htmlhelp-common.xsl,1.37 - Jirka Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTMLHelp changes for 1.70.1-->
+
+<sect2 xml:id="V1701_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+        <filename>params</filename> code
+        since the 1.70.0 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Added three new attribute sets (revhistory.title.properties, revhistory.table.properties and revhistory.table.cell.properties) for controlling appearance of revhistory in FO output.</para>
+<para role="commit-changes">Modified: fo/block.xsl,1.34; fo/param.ent,1.101; fo/param.xweb,1.114; fo/titlepage.xsl,1.41; params/revhistory.table.cell.properties.xml,1.1; params/revhistory.table.properties.xml,1.1; params/revhistory.title.properties.xml,1.1 - Jirka Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for 1.70.1-->
+
+</sect1>
+
+<sect1 xml:id="V1700">
+<title>Release: 1.70.0</title>
+<para>As with all DocBook Project <link linkend="dot0">dot-zero</link>
+releases, this is an experimental release. It will be followed shortly
+by a stable release.</para>
+
+<para>This release adds a number of new features,
+including:</para>
+
+<itemizedlist>
+  <listitem>
+    <para>support for selecting alternative index-collation methods
+    (in particular, support for using a collation library developed by
+    Eliot Kimber)</para>
+  </listitem>
+  <listitem>
+    <para>improved handling of DocBook 5 document instances (through a
+    namespace-stripping mechanism)</para>
+  </listitem>
+  <listitem>
+    <para>full support for CALS and HTML tables in manpages
+    output</para>
+  </listitem>
+  <listitem>
+    <para>a mechanism for preserving relative URIs in documents that
+    make use of XInclude</para>
+  </listitem>
+  <listitem>
+    <para>support for the "new" <literal>.90</literal> version of
+    FOP</para>
+  </listitem>
+  <listitem>
+    <para>enhanced capabilities for controlling formatting of lists in HTML
+    and FO output</para>
+  </listitem>
+  <listitem>
+    <para>autogeneration of AUTHOR and COPYRIGHT sections in manpages
+    output</para>
+  </listitem>
+  <listitem>
+    <para>support for generating crop marks in FO/PDF output</para>
+  </listitem>
+  <listitem>
+    <para>support for qandaset as a root element in FO output</para>
+  </listitem>
+  <listitem>
+    <para>support for floatstyle and orient on all table types</para>
+  </listitem>
+  <listitem>
+    <para>support for floatstyle in figure, and example</para>
+  </listitem>
+  <listitem>
+    <para>pgwide.properties attribute-set supports extending figure,
+      example and table into the left indent area instead of spanning
+      multiple columns.</para>
+  </listitem>
+</itemizedlist>
+    <para>The following is a detailed list of enhancements and API
+    changes that have been made since the 1.69.1 release.</para>
+
+<sect2 xml:id="V1700_Common">
+<title>Common</title>
+<para>The following changes have been made to the
+        <filename>common</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Add the xsl:key for the kimber
+indexing method.</para>
+<para role="commit-changes">Modified: common/autoidx-ng.xsl,1.2 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for
+<tag>qandaset</tag>.</para>
+<para role="commit-changes">Modified: common/labels.xsl,1.37;
+common/subtitles.xsl,1.7; common/titles.xsl,1.35 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support dbhtml/dbfo start PI for
+<tag>orderedlist</tag> numbering in both HTML and
+FO</para>
+<para role="commit-changes">Modified: common/common.xsl,1.61; html/lists.xsl,1.50 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added CVS
+header.</para>
+<para role="commit-changes">Modified: common/stripns.xsl,1.12 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Changed content model of text
+element to ANY rather than #PCDATA because they could contain
+markup.</para>
+<para role="commit-changes">Modified: common/targetdatabase.dtd,1.7 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+<tag>refentry</tag>.meta.get.quietly param.</para>
+<para>If zero (the
+default), notes and warnings about "missing" markup are generated
+during gathering of <tag>refentry</tag> metadata. If
+non-zero, the metadata is gathered "quietly" -- that is, the
+notes and warnings are suppressed.</para>
+<para>NOTE: If you are
+processing a large amount of <tag>refentry</tag> content,  you
+may be able to speed up processing significantly by  setting a
+non-zero value for
+<tag>refentry</tag>.meta.get.quietly.</para>
+<para role="commit-changes">Modified: common/refentry.xsl,1.17;
+manpages/param.ent,1.15; manpages/param.xweb,1.17;
+params/refentry.meta.get.quietly.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>After namespace stripping, the
+source document is the temporary tree created by the stripping
+process and it has the wrong base <tag>URI</tag> for relative
+references. Earlier versions of this code used to try to fix that
+by patching the elements with relative @fileref attributes. That
+was inadequate because it calculated an absolute base <tag>URI</tag>
+without considering that there might be xml:base attributes
+already in effect. It seems obvious now that the right thing to
+do is simply to put the xml:base on the root of the document. And
+that seems to work.</para>
+<para role="commit-changes">Modified: common/stripns.xsl,1.7 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for "software" and
+"sectdesc" class values on <tag>refmiscinfo</tag>; "software" is
+treated identically to "source", and "setdesc" is treated
+identically to "manual".</para>
+<para role="commit-changes">Modified: common/refentry.xsl,1.10;
+params/man.th.extra2.max.length.xml,1.3;
+params/refentry.source.name.profile.xml,1.4 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for DocBook 5
+namespace-stripping in manpages stylesheet. Closes request
+#1210692.</para>
+<para role="commit-changes">Modified: common/common.xsl,1.56; manpages/docbook.xsl,1.57 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added &lt;xsl:template
+match="/"&gt; to make stripns.xsl usable as a standalone
+stylesheet for stripping out DocBook 5/NG to DocBook 4. Note that
+DocBook XSLT drivers that include this stylesheet all override
+the match="/" template.</para>
+<para role="commit-changes">Modified: common/stripns.xsl,1.4 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Number figures, examples, and
+tables from <tag>book</tag> if there is no prefix (i.e. if
+<parameter>chapter.autolabel</parameter> is set to 0). This avoids
+having the list of figures where the figures mysteriously restart
+their numeration periodically when
+<parameter>chapter.autolabel</parameter> is set to
+0.</para>
+<para role="commit-changes">Modified: common/labels.xsl,1.36 - David Cramer</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add <tag>task</tag> template in
+<tag>title</tag>.markup mode.</para>
+<para role="commit-changes">Modified: common/titles.xsl,1.34 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add children (with ids) of formal
+objects to target data.</para>
+<para role="commit-changes">Modified: common/targets.xsl,1.10 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for case when
+<tag>personname</tag> doesn't contain specific name markup (as allowed
+in DocBook 5.0)</para>
+<para role="commit-changes">Modified: common/common.xsl,1.54 - Jirka
+Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Common changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_Extensions">
+<title>Extensions</title>
+<para>The following changes have been made to the
+        <filename>extensions</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Support Xalan
+2.7</para>
+<para role="commit-changes">Modified: extensions/xalan27/.cvsignore,1.1;
+extensions/xalan27/build.xml,1.1;
+extensions/xalan27/nbproject/.cvsignore,1.1;
+extensions/xalan27/nbproject/build-impl.xml,1.1;
+extensions/xalan27/nbproject/genfiles.properties,1.1;
+extensions/xalan27/nbproject/project.properties,1.1;
+extensions/xalan27/nbproject/project.xml,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/CVS.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Callout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatDingbatCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatGraphicCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatTextCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/FormatUnicodeCallout.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Func.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/ImageIntrinsics.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Params.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Table.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Text.java,1.1;
+extensions/xalan27/src/com/nwalsh/xalan/Verbatim.java,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Handle the case where the imageFn
+is actually a <tag>URI</tag>. This still needs
+work.</para>
+<para role="commit-changes">Modified: extensions/saxon643/com/nwalsh/saxon/ImageIntrinsics.java,1.4
+- Norman Walsh</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Extensions changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_FO">
+<title>FO</title>
+<para>The following changes have been made to the
+        <filename>fo</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Adapted to the new indexing
+code. Now works just like a wrapper that calls kosek indexing method,
+originally implemented here.</para>
+<para role="commit-changes">Modified: fo/autoidx-ng.xsl,1.5 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added parameters for header/footer
+<tag>table</tag> minimum height.</para>
+<para role="commit-changes">Modified: fo/pagesetup.xsl,1.60;
+fo/param.ent,1.100; fo/param.xweb,1.113 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add the <tag>index</tag>.method
+parameter.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.99; fo/param.xweb,1.112 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Integrate support for three
+indexing methods: - the original English-only method. -
+Jirka Kosek's method using EXSLT extensions. - Eliot Kimber's
+method using Saxon extensions. Use the '<tag>index</tag>.method'
+parameter to select.</para>
+<para role="commit-changes">Modified: fo/autoidx.xsl,1.38 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for <tag>TOC</tag> for
+<tag>qandaset</tag> in fo output.</para>
+<para role="commit-changes">Modified: fo/autotoc.xsl,1.30;
+fo/qandaset.xsl,1.20 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added parameter
+<parameter>ulink.hyphenate</parameter>.chars. Added parameter
+insert.<tag>link</tag>.page.number.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.98;
+fo/param.xweb,1.111 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented feature request
+#942524 to add insert.<tag>link</tag>.page.number to allow link
+element cross references to have a page number.</para>
+<para role="commit-changes">Modified: fo/xref.xsl,1.67 -
+Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for
+<parameter>ulink.hyphenate</parameter>.chars so more characters
+can be break points in urls.</para>
+<para role="commit-changes">Modified: fo/xref.xsl,1.66 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented patch #1075144 to make
+the url text in a ulink in FO output an active <tag>link</tag> as
+well.</para>
+<para role="commit-changes">Modified: fo/xref.xsl,1.65 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para><tag>table</tag> footnotes now
+have their own <tag>table</tag>.<tag>footnote</tag>.properties
+attribute set.</para>
+<para role="commit-changes">Modified: fo/footnote.xsl,1.23 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add <tag>qandaset</tag> to
+root.elements.</para>
+<para role="commit-changes">Modified: fo/docbook.xsl,1.41 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added mode="page.sequence" to make
+it easier to put content into a page sequence.  First used for
+<tag>qandaset</tag>.</para>
+<para role="commit-changes">Modified: fo/component.xsl,1.37 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented feature request
+#1434408 to support formatting
+of <tag>biblioentry</tag>.</para>
+<para role="commit-changes">Modified: fo/biblio.xsl,1.35 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+<tag>biblioentry</tag>.properties.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.97;
+fo/param.xweb,1.110 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support PTC/Arbortext
+bookmarks</para>
+<para role="commit-changes">Modified: fo/docbook.xsl,1.40; fo/ptc.xsl,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+<tag>table</tag>.<tag>footnote</tag>.properties to permit
+<tag>table</tag> footnotes to format differently from regular
+footnotes.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.96; fo/param.xweb,1.109 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Refactored <tag>table</tag>
+templates to unify their processing and support all options in
+all types.  Now <tag>table</tag> and <tag>informaltable</tag>, in
+both Cals and Html markup, use the same templates where possible,
+and all support pgwide, rotation, and floats. There is also a
+placeholder <tag>table</tag>.container template to
+support wrapping a <tag>table</tag> in a layout <tag>table</tag>,
+so the XEP <tag>table</tag> <tag>title</tag> "continued"
+extension can be more easily implemented.</para>
+<para role="commit-changes">Modified: fo/formal.xsl,1.52;
+fo/htmltbl.xsl,1.9; fo/table.xsl,1.48 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new attribute set
+<tag>toc</tag>.line.properties for controlling appearance of lines in
+ToC/LoT</para>
+<para role="commit-changes">Modified: fo/autotoc.xsl,1.29; fo/param.ent,1.95;
+fo/param.xweb,1.108 - Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for float to example
+and <tag>equation</tag>. Added support for pgwide to
+<tag>figure</tag>, example, and <tag>equation</tag> (the latter
+two via a dbfo pgwide="1" processing
+instruction).</para>
+<para role="commit-changes">Modified: fo/formal.xsl,1.51 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add pgwide.properties
+attribute-set.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.94; fo/param.xweb,1.107 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added <tag>refclass</tag>.suppress
+param.</para>
+<para>If the value of <tag>refclass</tag>.suppress is
+non-zero, then display <tag>refclass</tag> contents is suppressed
+in output. Affects HTML and FO output
+only.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.93; fo/param.xweb,1.106; html/param.ent,1.90;
+html/param.xweb,1.99; params/refclass.suppress.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Improved support for
+<tag>task</tag> subelements</para>
+<para role="commit-changes">Modified: fo/task.xsl,1.3; html/task.xsl,1.3 -
+Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Adjusted spacing around
+K&amp;R-formatted <tag>Funcdef</tag> and <tag>Paramdef</tag>
+output such that it can more easily be discerned where one ends
+and the other begins. Closes #1213264.</para>
+<para role="commit-changes">Modified: fo/synop.xsl,1.18 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Made handling of
+paramdef/parameter in FO output consistent with that in HTML and
+manpages output. Closes #1213259.</para>
+<para role="commit-changes">Modified: fo/synop.xsl,1.17 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Made handling of
+<tag>Refnamediv</tag> consistent with formatting in HTML
+and manpages output; specifically, changed so that
+<tag>Refname</tag> (comma-separated list of multiple instances
+found) is used (instead of <tag>Refentrytitle</tag> as
+previously), then em-dash, then the <tag>Refpurpose</tag>. Closes
+#1212562.</para>
+<para role="commit-changes">Modified: fo/refentry.xsl,1.30 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added output of
+<tag>Releaseinfo</tag> to recto titlepage ("<tag>copyright</tag>"
+page) for <tag>Book</tag> in FO output. This makes it consistent
+with HTML output. Closes #1327034. Thanks to Paul DuBois for
+reporting.</para>
+<para role="commit-changes">Modified: fo/titlepage.templates.xml,1.28 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added condition for setting
+block-progression-dimension.minimum on table-row, instead of
+height, when <parameter>fop1.extensions</parameter> is
+non-zero. For an explanation of the reason for the change,
+<tag>see</tag>: http://wiki.apache.org/xmlgraphics-fop/Troubleshooting/CommonLogMessages</para>
+<para role="commit-changes">Modified: fo/pagesetup.xsl,1.59
+- Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new
+<tag>refclass</tag>.suppress param for suppressing display
+of <tag>Refclass</tag> in HTML and FO output. Did not add it to
+manpages because manpages stylesheet is currently just silently
+ignoring <tag>Refclass</tag> anyway. Closes request
+#1461065. Thanks to Davor Ocelic (docelic) for
+reporting.</para>
+<para role="commit-changes">Modified: fo/refentry.xsl,1.29; html/refentry.xsl,1.23 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for keep-together PI
+to informal objects.</para>
+<para role="commit-changes">Modified: fo/formal.xsl,1.50 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for
+<parameter>fop1.extensions</parameter>.</para>
+<para role="commit-changes">Modified: fo/formal.xsl,1.49;
+fo/graphics.xsl,1.44; fo/table.xsl,1.47 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for fop1
+bookmarks.</para>
+<para role="commit-changes">Modified: fo/docbook.xsl,1.39 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add fop1.extentions parameter to
+add support for fop development version.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.92;
+fo/param.xweb,1.105 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Start supporting fop development
+version, which will become fop version 1.</para>
+<para role="commit-changes">Modified: fo/fop1.xsl,1.1 -
+Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add template for <tag>task</tag>
+in mode="xref-to".</para>
+<para role="commit-changes">Modified: fo/xref.xsl,1.63; html/xref.xsl,1.57 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para><tag>table</tag> footnotes now
+also get <tag>footnote</tag>.properties
+attribute-set.</para>
+<para role="commit-changes">Modified: fo/footnote.xsl,1.22 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added <tag>index</tag>.separator
+named template to compute the separator punctuation based on
+locale.</para>
+<para role="commit-changes">Modified: fo/autoidx.xsl,1.36 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for <tag>link</tag>,
+<tag>olink</tag>, and <tag>xref</tag> within OO
+<tag>Classsynopsis</tag> and children. (Because DocBook NG/5
+allows it).</para>
+<para role="commit-changes">Modified: fo/synop.xsl,1.15; html/synop.xsl,1.19 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support <tag>date</tag> as an
+inline</para>
+<para role="commit-changes">Modified: fo/inline.xsl,1.43; html/inline.xsl,1.46 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new parameter
+<parameter>keep.relative.image.uris</parameter></para>
+<para role="commit-changes">Modified: fo/param.ent,1.91;
+fo/param.xweb,1.104; html/param.ent,1.87; html/param.xweb,1.96;
+params/keep.relative.image.uris.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Map Unicode space characters
+U+2000-U+200A to fo:leaders.</para>
+<para role="commit-changes">Modified: fo/docbook.xsl,1.38;
+fo/passivetex.xsl,1.4; fo/spaces.xsl,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Output a real em dash for em-dash
+dingbat (instead of two hypens).</para>
+<para role="commit-changes">Modified: fo/fo.xsl,1.7 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support default <tag>label</tag>
+width parameters for itemized and ordered lists</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.64;
+fo/param.ent,1.90; fo/param.xweb,1.103;
+params/itemizedlist.label.width.xml,1.1;
+params/orderedlist.label.width.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Generate localized
+<tag>title</tag> for <tag>Refsynopsisdiv</tag> if no
+appropriate <tag>Title</tag> descendant found in source. Closes
+#1212398. This change makes behavior for the <tag>Synopsis</tag>
+<tag>title</tag> consistent with the behavior of HTML and
+manpages output.</para>
+<para>Also, added
+xsl:use-attribute-sets="normal.<tag>para</tag>.spacing" to
+block generated for <tag>Cmdsynopsis</tag> output. Previously,
+that block had no spacing at all specified, which resulted it
+being crammed up to closely to the <tag>Synopsis</tag>
+head.</para>
+<para role="commit-changes">Modified: fo/refentry.xsl,1.28; fo/synop.xsl,1.13 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added parameters to support
+localization of <tag>index</tag>
+item punctuation.</para>
+<para role="commit-changes">Modified: fo/autoidx.xsl,1.35 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+<parameter>index.number.separator</parameter>,
+<parameter>index.range.separator</parameter>,
+and <parameter>index.term.separator</parameter> parameters to
+support localization of punctuation in <tag>index</tag>
+entries.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.89; fo/param.xweb,1.102 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added "Cross References"
+<tag>section</tag> in HTML doc (for consistency with the FO
+doc). Also, moved the existing FO "Cross
+References" <tag>section</tag> to follow the "Linking"
+<tag>section</tag>.</para>
+<para role="commit-changes">Modified: fo/param.xweb,1.101; html/param.xweb,1.95 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added ID attribues to all
+<tag>Reference</tag> elements (e.g., id="tables" for the doc for
+<tag>section</tag> on <tag>Table</tag> params). So pages for
+all subsections of ref docs now have stable filenames instead
+of arbitrary generated filenames.</para>
+<para role="commit-changes">Modified: fo/param.xweb,1.100;
+html/param.xweb,1.94 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added two new parameters for
+handling of multi-term
+<tag>varlistentry</tag> elements:</para>
+<para><parameter>variablelist.term.break.after</parameter>: 
+When the <parameter>variablelist.term.break.after</parameter> is
+non-zero, it will  generate a line break after each
+<tag>term</tag> multi-term
+<tag>varlistentry</tag>.</para>
+<para><parameter>variablelist.term.separator</parameter>: 
+When a <tag>varlistentry</tag> contains multiple <tag>term</tag>
+elements, the string  specified in the value of the
+<parameter>variablelist.term.separator</parameter>  parameter is
+placed after each <tag>term</tag> except the last. The default 
+is ", " (a comma followed by a space). To suppress rendering of 
+the separator, set the value of
+<parameter>variablelist.term.separator</parameter> to  the empty
+string ("").</para>
+<para>These parameters are primarily intended to be
+useful if you have multi-term varlistentries that have long
+terms.</para>
+<para>Closes #1306676. Thanks to Sam Steingold for
+providing an example "lots of long terms" doc that demonstrated
+the value of having these options.</para>
+<para>Also, added
+normalize-space() call to processing of each
+<tag>term</tag>.</para>
+<para>This change affects all output formats
+(HTML, PDF, manpages). The default behavior should pretty much
+remain the same as before, but it is possible (as always) that
+the change may introduce some
+new bugginess.</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.62; fo/param.ent,1.88;
+fo/param.xweb,1.99; html/lists.xsl,1.48; html/param.ent,1.86;
+html/param.xweb,1.93; manpages/lists.xsl,1.22;
+manpages/param.ent,1.14; manpages/param.xweb,1.16;
+params/variablelist.term.break.after.xml,1.1;
+params/variablelist.term.separator.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add <tag>sidebar</tag> titlepage
+placeholder attset for styles.</para>
+<para role="commit-changes">Modified: fo/titlepage.xsl,1.37 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add titlepage for
+<tag>sidebar</tag>.</para>
+<para role="commit-changes">Modified: fo/titlepage.templates.xml,1.27 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented RFE
+#1292615.</para>
+<para>Added bunch of new parameters (attribute sets)
+that affect list presentation: list.block.properties,
+<tag>itemizedlist</tag>.properties, <tag>orderedlist</tag>.properties,
+<tag>itemizedlist</tag>.<tag>label</tag>.properties and
+<tag>orderedlist</tag>.<tag>label</tag>.properties. Default behaviour
+of stylesheets has not been changed but further customizations will be
+much more easier.</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.61; fo/param.ent,1.87;
+fo/param.xweb,1.98; params/itemizedlist.label.properties.xml,1.1;
+params/itemizedlist.properties.xml,1.1;
+params/list.block.properties.xml,1.1;
+params/orderedlist.label.properties.xml,1.1;
+params/orderedlist.properties.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented RFE
+#1242092.</para>
+<para>You can enable crop marks in your document by
+setting crop.marks=1 and xep.extensions=1. Appearance of crop
+marks can be controlled by parameters
+<parameter>crop.mark.bleed</parameter> (6pt),
+<parameter>crop.mark.offset</parameter> (24pt) and
+<parameter>crop.mark.width</parameter> (0.5pt).</para>
+<para>Also there
+is new named template called user-xep-pis. You can overwrite it in
+order to produce some PIs that can control XEP as described in
+http://www.renderx.com/reference.html#Output_Formats</para>
+<para role="commit-changes">Modified: fo/docbook.xsl,1.36;
+fo/param.ent,1.86; fo/param.xweb,1.97; fo/xep.xsl,1.23;
+params/crop.mark.bleed.xml,1.1; params/crop.mark.offset.xml,1.1;
+params/crop.mark.width.xml,1.1; params/crop.marks.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of FO changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_HTML">
+<title>HTML</title>
+<para>The following changes have been made to the
+        <filename>html</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>implemented
+<tag>index</tag>.method parameter and three
+methods.</para>
+<para role="commit-changes">Modified: html/autoidx.xsl,1.28 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>added <tag>index</tag>.method
+parameter to support 3 indexing methods.</para>
+<para role="commit-changes">Modified: html/param.ent,1.94;
+html/param.xweb,1.103 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented feature request
+#1072510 as a processing instruction to permit including external
+HTML content into HTML output.</para>
+<para role="commit-changes">Modified: html/pi.xsl,1.9 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new parameter
+<parameter>chunk.tocs.and.lots</parameter>.has.<tag>title</tag> which
+controls presence of <tag>title</tag> in a separate chunk with
+ToC/LoT. Disabling <tag>title</tag> can be very useful if you are
+generating frameset output (well, yes those frames, but some customers
+really want them ;-).</para>
+<para role="commit-changes">Modified: html/chunk-code.xsl,1.15;
+html/param.ent,1.93; html/param.xweb,1.102;
+params/chunk.tocs.and.lots.has.title.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support dbhtml/dbfo start PI for
+<tag>orderedlist</tag> numbering in both HTML and
+FO</para>
+<para role="commit-changes">Modified: common/common.xsl,1.61; html/lists.xsl,1.50 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Allow <tag>ToC</tag> without
+<tag>title</tag> also for set and
+<tag>book</tag>.</para>
+<para role="commit-changes">Modified: html/autotoc.xsl,1.37; html/division.xsl,1.12 -
+Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented floats uniformly for
+<tag>figure</tag>, example, <tag>equation</tag>
+and <tag>informalfigure</tag>, <tag>informalexample</tag>, and
+<tag>informalequation</tag>.</para>
+<para role="commit-changes">Modified: html/formal.xsl,1.22 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added the
+autotoc.<tag>label</tag>.in.hyperlink param.</para>
+<para>If the value
+of autotoc.<tag>label</tag>.in.hyperlink is non-zero, labels
+are included in hyperlinked titles in the <tag>TOC</tag>. If it
+is instead zero, labels are still displayed prior to the
+hyperlinked titles, but are not hyperlinked along with the
+titles.</para>
+<para>Closes patch #1065868. Thanks to anatoly techtonik
+for the patch.</para>
+<para role="commit-changes">Modified: html/autotoc.xsl,1.36; html/param.ent,1.92;
+html/param.xweb,1.101; params/autotoc.label.in.hyperlink.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added two new params:
+html.head.<tag>legalnotice</tag>.<tag>link</tag>.types
+and html.head.<tag>legalnotice</tag>.<tag>link</tag>.multiple.</para>
+<para>If
+the value of the <parameter>generate.legalnotice.link</parameter> is
+non-zero, then the stylesheet generates (in the head
+<tag>section</tag> of the HTML source) either a single HTML
+<tag>link</tag> element or, if the value of
+the html.head.<tag>legalnotice</tag>.<tag>link</tag>.multiple is
+non-zero, one <tag>link</tag> element for each <tag>link</tag>
+type specified. Each <tag>link</tag> has the
+following attributes:</para>
+<para> - a rel attribute whose value
+is derived from the value of 
+html.head.<tag>legalnotice</tag>.<tag>link</tag>.types</para>
+<para> -
+an href attribute whose value is set to the URL of the file 
+containing the <tag>legalnotice</tag></para>
+<para> - a <tag>title</tag>
+attribute whose value is set to the <tag>title</tag> of the 
+corresponding <tag>legalnotice</tag> (or a <tag>title</tag>
+programatically  determined by the stylesheet)</para>
+<para>For
+example:</para>
+<para> &lt;<tag>link</tag> rel="<tag>copyright</tag>"
+href="ln-id2524073.html" title="Legal Notice"&gt;</para>
+<para>Closes
+#1476450. Thanks to Sam Steingold.</para>
+<para role="commit-changes">Modified: html/chunk-common.xsl,1.45;
+html/param.ent,1.91; html/param.xweb,1.100;
+params/generate.legalnotice.link.xml,1.4;
+params/html.head.legalnotice.link.multiple.xml,1.1;
+params/html.head.legalnotice.link.types.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added <tag>refclass</tag>.suppress
+param.</para>
+<para>If the value of <tag>refclass</tag>.suppress is
+non-zero, then display <tag>refclass</tag> contents is suppressed
+in output. Affects HTML and FO output
+only.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.93; fo/param.xweb,1.106; html/param.ent,1.90;
+html/param.xweb,1.99; params/refclass.suppress.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Improved support for
+<tag>task</tag> subelements</para>
+<para role="commit-changes">Modified: fo/task.xsl,1.3; html/task.xsl,1.3 -
+Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new
+<tag>refclass</tag>.suppress param for suppressing display
+of <tag>Refclass</tag> in HTML and FO output. Did not add it to
+manpages because manpages stylesheet is currently just silently
+ignoring <tag>Refclass</tag> anyway. Closes request
+#1461065. Thanks to Davor Ocelic (docelic) for
+reporting.</para>
+<para role="commit-changes">Modified: fo/refentry.xsl,1.29; html/refentry.xsl,1.23 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Process <tag>alt</tag> text with
+normalize-space(). Replace tab indents with
+spaces.</para>
+<para role="commit-changes">Modified: html/graphics.xsl,1.57 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Content of <tag>citation</tag>
+element is automatically linked to the bibliographic <tag>entry</tag>
+with the corresponding <tag>abbrev</tag>.</para>
+<para role="commit-changes">Modified: html/biblio.xsl,1.26;
+html/inline.xsl,1.47; html/xref.xsl,1.58 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add template for <tag>task</tag>
+in mode="xref-to".</para>
+<para role="commit-changes">Modified: fo/xref.xsl,1.63; html/xref.xsl,1.57 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Suppress ID warnings if the
+.warnings parameter is 0</para>
+<para role="commit-changes">Modified: html/html.xsl,1.17 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for floatstyle to
+<tag>figure</tag>.</para>
+<para role="commit-changes">Modified: html/formal.xsl,1.21 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Handling of <tag>xref</tag> to
+area/areaset need support in extensions code also. I currently have no
+time to touch extensions code, so code is here to be enabled when
+extension is fixed also.</para>
+<para role="commit-changes">Modified: html/xref.xsl,1.56 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added 3 parameters for overriding
+gentext for <tag>index</tag>
+punctuation.</para>
+<para role="commit-changes">Modified: html/param.ent,1.89; html/param.xweb,1.98 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added parameters to support
+localization of <tag>index</tag> item punctuation. Added
+<tag>index</tag>.separator named template to compute
+the separator punctuation based on
+locale.</para>
+<para role="commit-changes">Modified: html/autoidx.xsl,1.27 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added a &lt;div
+class="{$class}-contents"&gt; wrapper around output of contents
+of all formal objects. Also, added an optional &lt;br
+class="{class}-break"/&gt; linebreak after all formal
+objects.</para>
+<para>WARNING: Because this change places an additional
+DIV between the DIV wrapper for the <tag>equation</tag> and the
+<tag>equation</tag> contents, it may break some existing CSS
+stylesheets that have been created with the assumption that there
+would never be an intervening DIV there.</para>
+<para>The following is
+an example of what <tag>Equation</tag> output looks like as a
+result of the changes described above.</para>
+<para> &lt;div
+class="<tag>equation</tag>"&gt;  &lt;a name="three"
+id="three"&gt;&lt;/a&gt;</para>
+<para> &lt;p
+class="<tag>title</tag>"&gt;&lt;b&gt;(1.3)&lt;/b&gt;&lt;/p&gt;</para>
+<para>
+&lt;div class="equation-contents"&gt;  &lt;span
+class="<tag>mathphrase</tag>"&gt;1+1=3&lt;/span&gt; 
+&lt;/div&gt;  &lt;/div&gt;&lt;br
+class="equation-break"&gt;</para>
+<para>Rationale: These changes allow
+CSS control of the placement of the formal-object
+<tag>title</tag> relative to the formal-object
+contents. For example, using the CSS "float" <tag>property</tag>
+enables the <tag>title</tag> and contents to be rendered on the
+same line. Example stylesheet:</para>
+<para> .<tag>equation</tag>
+{  margin-top: 20px;  margin-bottom: 20px;  } 
+.equation-contents {  float: left;  }</para>
+<para>
+.<tag>equation</tag> .<tag>title</tag> {  margin-top: 0; 
+float: right;  margin-right: 200px;  }</para>
+<para>
+.<tag>equation</tag> .<tag>title</tag> b {  font-weight:
+normal;  }</para>
+<para> .equation-break {  clear: both; 
+}</para>
+<para>Note that the purpose of the ".equation-break" class is
+to provide a way to clear off the floats.</para>
+<para>If you want
+to instead have the <tag>equation</tag> <tag>title</tag> rendered to
+the left of the <tag>equation</tag> contents, you can do
+something like this:</para>
+<para> .<tag>equation</tag> { 
+margin-top: 20px;  width: 300px;  margin-bottom: 20px; 
+}  .equation-contents {  float: right;  }</para>
+<para>
+.<tag>equation</tag> .<tag>title</tag> {  margin-top: 0; 
+float: left;  margin-right: 200px;  }</para>
+<para>
+.<tag>equation</tag> .<tag>title</tag> b {  font-weight:
+normal;  }</para>
+<para> .equation-break {  clear: both; 
+}</para>
+<para role="commit-changes">Modified: html/formal.xsl,1.20 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added a chunker.output.quiet
+top-level parameter so that the chunker can be made quiet by
+default</para>
+<para role="commit-changes">Modified: html/chunker.xsl,1.26 - Norman Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for <tag>link</tag>,
+<tag>olink</tag>, and <tag>xref</tag> within OO
+<tag>Classsynopsis</tag> and children. (Because DocBook NG/5
+allows it).</para>
+<para role="commit-changes">Modified: fo/synop.xsl,1.15; html/synop.xsl,1.19 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>New parameter:
+<parameter>id.warnings</parameter>. If non-zero, warnings are
+generated for titled objects that don't have titles. True by default;
+I wonder if this will be too aggressive?</para>
+<para role="commit-changes">Modified: html/biblio.xsl,1.25;
+html/component.xsl,1.27; html/division.xsl,1.11; html/formal.xsl,1.19;
+html/glossary.xsl,1.20; html/html.xsl,1.13; html/index.xsl,1.16;
+html/param.ent,1.88; html/param.xweb,1.97; html/refentry.xsl,1.22;
+html/sections.xsl,1.30; params/id.warnings.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>If the
+<parameter>keep.relative.image.uris</parameter> parameter is true,
+don't use the absolute <tag>URI</tag> (as calculated from xml:base) in
+the img src attribute, us the value the <tag>author</tag>
+specified. Note that we still have to calculate the absolute
+<tag>filename</tag> for use in the image intrinsics
+extension.</para>
+<para role="commit-changes">Modified: html/graphics.xsl,1.56 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support <tag>date</tag> as an
+inline</para>
+<para role="commit-changes">Modified: fo/inline.xsl,1.43; html/inline.xsl,1.46 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new parameter
+<parameter>keep.relative.image.uris</parameter></para>
+<para role="commit-changes">Modified: fo/param.ent,1.91;
+fo/param.xweb,1.104; html/param.ent,1.87; html/param.xweb,1.96;
+params/keep.relative.image.uris.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added two new parameters for
+handling of multi-term
+<tag>varlistentry</tag> elements:</para>
+<para><parameter>variablelist.term.break.after</parameter>: 
+When the <parameter>variablelist.term.break.after</parameter> is
+non-zero, it will  generate a line break after each
+<tag>term</tag> multi-term
+<tag>varlistentry</tag>.</para>
+<para><parameter>variablelist.term.separator</parameter>: 
+When a <tag>varlistentry</tag> contains multiple <tag>term</tag>
+elements, the string  specified in the value of the
+<parameter>variablelist.term.separator</parameter>  parameter is
+placed after each <tag>term</tag> except the last. The default 
+is ", " (a comma followed by a space). To suppress rendering of 
+the separator, set the value of
+<parameter>variablelist.term.separator</parameter> to  the empty
+string ("").</para>
+<para>These parameters are primarily intended to be
+useful if you have multi-term varlistentries that have long
+terms.</para>
+<para>Closes #1306676. Thanks to Sam Steingold for
+providing an example "lots of long terms" doc that demonstrated
+the value of having these options.</para>
+<para>Also, added
+normalize-space() call to processing of each
+<tag>term</tag>.</para>
+<para>This change affects all output formats
+(HTML, PDF, manpages). The default behavior should pretty much
+remain the same as before, but it is possible (as always) that
+the change may introduce some
+new bugginess.</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.62; fo/param.ent,1.88;
+fo/param.xweb,1.99; html/lists.xsl,1.48; html/param.ent,1.86;
+html/param.xweb,1.93; manpages/lists.xsl,1.22;
+manpages/param.ent,1.14; manpages/param.xweb,1.16;
+params/variablelist.term.break.after.xml,1.1;
+params/variablelist.term.separator.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added "wrapper-name" param to
+inline.charseq named template, enabling it to output inlines
+other than just "span". <tag>Acronym</tag> and <tag>Abbrev</tag>
+templates now use inline.charseq to output HTML
+"<tag>acronym</tag>" and "abbr" elements (instead of
+"span"). Closes #1305468. Thanks to Sam Steingold for suggesting
+the change.</para>
+<para role="commit-changes">Modified: html/inline.xsl,1.45 - Michael(tm)
+Smith</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of HTML changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_Manpages">
+<title>Manpages</title>
+<para>The following changes have been made to the
+        <filename>manpages</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Added the following
+params:</para>
+<para> - man.indent.width (string-valued)  -
+man.indent.refsect (boolean)  - man.indent.blurbs (boolean) 
+- man.indent.lists (boolean)  - man.indent.verbatims
+(boolean)</para>
+<para>Note that in earlier snapshots, man.indent.width
+was named man.indentation.default.value and the boolean params
+had names like man.indentation.*.adjust. Also the
+man.indent.blurbs param was called man.indentation.authors.adjust
+(or something).</para>
+<para>The behavior now is: If the value of a
+particular man.indent.* boolean param is non-zero, the
+corresponding contents (refsect*, list items,
+authorblurb/personblurb, vervatims) are displayed with a left
+margin indented by a width equal to the value
+of man.indent.width.</para>
+<para role="commit-changes">Modified: params/man.indent.blurbs.xml,1.1;
+manpages/docbook.xsl,1.74; manpages/info.xsl,1.20;
+manpages/lists.xsl,1.30; manpages/other.xsl,1.20;
+manpages/param.ent,1.22; manpages/param.xweb,1.24;
+manpages/refentry.xsl,1.14; params/man.indent.lists.xml,1.1;
+params/man.indent.refsect.xml,1.1;
+params/man.indent.verbatims.xml,1.1; params/man.indent.width.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.<tag>table</tag>.footnotes.divider param.</para>
+<para>In each
+<tag>table</tag> that contains footenotes, the string specified
+by the man.<tag>table</tag>.footnotes.divider parameter is output
+before the list of footnotes for the
+<tag>table</tag>.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.73;
+manpages/links.xsl,1.6; manpages/param.ent,1.21;
+manpages/param.xweb,1.23; params/man.table.footnotes.divider.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added the
+man.output.in.separate.dir,
+man.output.<parameter>base.dir</parameter>,
+and man.output.subdirs.enabled parameters.</para>
+<para>The
+man.output.<parameter>base.dir</parameter> parameter specifies the
+base directory into which man-page files are
+output. The man.output.subdirs.enabled parameter controls whether
+the files are output in subdirectories within the base
+directory.</para>
+<para>The values of the
+man.output.<parameter>base.dir</parameter>
+and man.output.subdirs.enabled parameters are used only if the
+value of man.output.in.separate.dir parameter is non-zero. If the
+value of man.output.in.separate.dir is zero, man-page files are
+not output in a separate
+directory.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.72; manpages/param.ent,1.20;
+manpages/param.xweb,1.22; params/man.output.base.dir.xml,1.1;
+params/man.output.in.separate.dir.xml,1.1;
+params/man.output.subdirs.enabled.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.font.<tag>table</tag>.headings and
+man.font.<tag>table</tag>.<tag>title</tag> params, for
+controlling font in <tag>table</tag> headings and
+titles.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.71; manpages/param.ent,1.19;
+manpages/param.xweb,1.21; params/man.font.table.headings.xml,1.1;
+params/man.font.table.title.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.font.<tag>funcsynopsisinfo</tag> and
+man.font.<tag>funcprototype</tag> params, for specifying the roff
+font (for example, BI, B, I) for <tag>funcsynopsisinfo</tag> and
+<tag>funcprototype</tag> output.</para>
+<para role="commit-changes">Modified: manpages/block.xsl,1.19;
+manpages/docbook.xsl,1.69; manpages/param.ent,1.18;
+manpages/param.xweb,1.20; manpages/synop.xsl,1.29;
+manpages/table.xsl,1.21; params/man.font.funcprototype.xml,1.1;
+params/man.font.funcsynopsisinfo.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.<tag>segtitle</tag>.suppress param.</para>
+<para>If the value of
+man.<tag>segtitle</tag>.suppress is non-zero, then display
+of <tag>segtitle</tag> contents is suppressed in
+output.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.68; manpages/param.ent,1.17;
+manpages/param.xweb,1.19; params/man.segtitle.suppress.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.output.<parameter>manifest</parameter>.enabled and
+man.output.manifest.<tag>filename</tag> params.</para>
+<para>If
+man.output.<parameter>manifest</parameter>.enabled is non-zero, a list
+of filenames for man pages generated by the stylesheet
+transformation is written to the file named by
+man.output.<parameter>manifest</parameter>.<tag>filename</tag></para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.67;
+manpages/other.xsl,1.19; manpages/param.ent,1.16;
+manpages/param.xweb,1.18; params/man.output.manifest.enabled.xml,1.1;
+params/man.output.manifest.filename.xml,1.1;
+tools/make/Makefile.DocBook,1.4 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+<tag>refentry</tag>.meta.get.quietly param.</para>
+<para>If zero (the
+default), notes and warnings about "missing" markup are generated
+during gathering of <tag>refentry</tag> metadata. If
+non-zero, the metadata is gathered "quietly" -- that is, the
+notes and warnings are suppressed.</para>
+<para>NOTE: If you are
+processing a large amount of <tag>refentry</tag> content,  you
+may be able to speed up processing significantly by  setting a
+non-zero value for
+<tag>refentry</tag>.meta.get.quietly.</para>
+<para role="commit-changes">Modified: common/refentry.xsl,1.17;
+manpages/param.ent,1.15; manpages/param.xweb,1.17;
+params/refentry.meta.get.quietly.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Changed names of all boolean
+indentation params to man.indent.* Also discarded individual
+man.indent.*.value params and switched to just using a common
+man.indent.width param (3n by default).</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.66;
+manpages/info.xsl,1.19; manpages/lists.xsl,1.29;
+manpages/other.xsl,1.18; manpages/refentry.xsl,1.13 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added boolean
+man.output.in.separate.dir param, to control whether or not man
+files are output in separate directory.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.65;
+manpages/utility.xsl,1.14 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added options for controlling
+indentation of verbatim output. Controlled through the
+man.indentation.verbatims.adjust
+and man.indentation.verbatims.value params. Closes
+#1242997</para>
+<para role="commit-changes">Modified: manpages/block.xsl,1.15; manpages/docbook.xsl,1.64 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added options for controlling
+indentation in lists and in *blurb output in the AUTHORS
+<tag>section</tag>. Controlled through
+the man.indentation.lists.adjust,
+man.indentation.lists.value, man.indentation.authors.adjust, and
+man.indentation.authors.value parameters. Default is 3 characters
+(instead of the roff default of 8 characters). Closes
+#1449369.</para>
+<para>Also, removed the indent that was being set on
+<tag>informalexample</tag> outuput. I will instead add an option
+for indenting verbatims, which I think is what the
+<tag>informalexample</tag> indent was intended
+for originally.</para>
+<para role="commit-changes">Modified: manpages/block.xsl,1.14;
+manpages/docbook.xsl,1.63; manpages/info.xsl,1.18;
+manpages/lists.xsl,1.28 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Changed line-spacing call before
+<tag>synopfragment</tag> to use ".sp -1n" ("n" units specified)
+instead of plain ".sp -1"</para>
+<para role="commit-changes">Modified: manpages/synop.xsl,1.28 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for writing man
+files into a specific output directory and into appropriate
+subdirectories within that output directory. Controlled through
+the man.<parameter>base.dir</parameter> parameter (similar to the
+<parameter>base.dir</parameter> support in the HTML stylesheet) and
+the man.subdirs.enabled parameter, which automatically determines
+the name of an appropriate subdir (for example, man/man7,
+man/man1, etc.) based on the <tag>section</tag> number/manvolnum
+of the source <tag>Refentry</tag>.</para>
+<para>Closes #1255036 and
+#1170317. Thanks to Denis Bradford for the original feature
+request, and to Costin Stroie for submitting a patch that was
+very helpful in implementing the
+support.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.62; manpages/utility.xsl,1.13 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Refined XPath statements and
+notification messages for <tag>refentry</tag> metadata
+handling.</para>
+<para role="commit-changes">Modified: common/common.xsl,1.59; common/refentry.xsl,1.14;
+manpages/docbook.xsl,1.61; manpages/other.xsl,1.17 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for
+<tag>copyright</tag> and <tag>legalnotice</tag>. The manpages
+stylesheets now output a <tag>COPYRIGHT</tag> <tag>section</tag>,
+after the AUTHORS <tag>section</tag>, if a <tag>copyright</tag>
+or <tag>legalnotice</tag> is found in the source. The
+<tag>section</tag> contains the <tag>copyright</tag> contents followed
+by the <tag>legalnotice</tag> contents. Closes
+#1450209.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.59; manpages/info.xsl,1.17 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Drastically reworked all of the
+XPath expressions used in <tag>refentry</tag> metadata gathering
+-- completely removed $parentinfo and turned $info into a set of
+nodes that includes the *info contents of the <tag>Refentry</tag>
+plus the *info contents all all of its ancestor elements. The
+basic XPath expression now used throughout is (using the example
+of checking for a <tag>date</tag>):</para>
+<para>
+(($info[//date])[last()]/date)[1].</para>
+<para>That selects the "last"
+*info/date <tag>date</tag> in document order -- that is, the one
+eitther on the <tag>Refentry</tag> itself or on the
+closest ancestor to the <tag>Refentry</tag>.</para>
+<para>It's
+likely this change may break some things; may need to pick up
+some pieces later.</para>
+<para>Also, changed the default value for the
+<parameter>man.th.extra2.max.length</parameter> from 40 to
+30.</para>
+<para role="commit-changes">Modified: common/common.xsl,1.58; common/refentry.xsl,1.7;
+params/man.th.extra2.max.length.xml,1.2;
+params/refentry.date.profile.xml,1.2;
+params/refentry.manual.profile.xml,1.2;
+params/refentry.source.name.profile.xml,1.2;
+params/refentry.version.profile.xml,1.2; manpages/docbook.xsl,1.58;
+manpages/other.xsl,1.15 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for DocBook 5
+namespace-stripping in manpages stylesheet. Closes request
+#1210692.</para>
+<para role="commit-changes">Modified: common/common.xsl,1.56; manpages/docbook.xsl,1.57 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Fixed handling of <tag>table</tag>
+footnotes. With this checkin, the <tag>table</tag> support in the
+manpages stylesheet is now basically feature complete. So this
+change closes request #619532, "No support for tables" -- the
+oldest currently open manpages feature request, submitted by Ben
+Secrest (blsecres) on 2002-10-07. Congratulations to me [patting
+myself on the back].</para>
+<para role="commit-changes">Modified: manpages/block.xsl,1.11;
+manpages/docbook.xsl,1.55; manpages/table.xsl,1.15 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added handling for
+<tag>table</tag> titles. Also fixed handling of nested tables;
+nest tables are now "extracted" and displayed just after their
+parent tables.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.54; manpages/table.xsl,1.14
+- Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added option for turning off bold
+formatting in <tag>Funcsynopsis</tag>. Boldface formatting in
+<tag>function</tag> <tag>synopsis</tag> is mandated in the
+man(7) man page and is used almost universally in existing man
+pages. Despite that, it really does look like crap to have an
+entire <tag>Funcsynopsis</tag> output in bold, so I added params
+for turning off the bold formatting and/or replacing it with a
+different roff special font (e.g., "RI" for alternating
+roman/italic instead of the default "BI" for alternating
+bold/italic). The new params
+are "man.<tag>funcprototype</tag>.font" and
+"man.<tag>funcsynopsisinfo</tag>.font". To be documented
+later.</para>
+<para>Closes #1452247. Thanks to Joe Orton for the feature
+request.</para>
+<para role="commit-changes">Modified: params/man.string.subst.map.xml,1.16;
+manpages/block.xsl,1.10; manpages/docbook.xsl,1.51;
+manpages/inline.xsl,1.16; manpages/synop.xsl,1.27 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Use AUTHORS instead of
+<tag>AUTHOR</tag> if we have multiple people to attribute. Also,
+fixed checking such that we generate
+<tag>author</tag> <tag>section</tag> even if we don't have an
+<tag>author</tag> (as long as there is at least one other
+person/entity we can put in the
+<tag>section</tag>). Also adjusted assembly of content for
+<tag>Author</tag> metainfo field such that we now not only use
+<tag>author</tag>, but try to find a "best match" if we can't
+find an <tag>author</tag> name to put there.</para>
+<para>Closes
+#1233592. Thanks to Sam Steingold for the
+request.</para>
+<para role="commit-changes">Modified: manpages/info.xsl,1.12 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Changes for request #1243027,
+"Impove handling of <tag>AUTHOR</tag> <tag>section</tag>." This
+adds support for <tag>Collab</tag>, Corpauthor, Corpcredt,
+<tag>Orgname</tag>, <tag>Publishername</tag>, and
+<tag>Publisher</tag>. Also adds support for output
+of <tag>Affiliation</tag> and its children, and support for using
+gentext strings for auto-attributing roles (<tag>Author</tag>,
+<tag>Editor</tag>, <tag>Publisher</tag>, Translator, etc.). Also
+did a lot of code cleanup and modularization of all the
+<tag>AUTHOR</tag> handling code. And fixed a bug that was causing
+<tag>Author</tag> <tag>info</tag> to not be picked up correctly
+for metainfo comment we embed in man-page
+source.</para>
+<para role="commit-changes">Modified: manpages/info.xsl,1.11 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support bold output for
+"<tag>emphasis</tag> remap='B'". (because Eric Raymond's
+doclifter(1) tool converts groff source marked up with ".B"
+request or "\fB" escapes to DocBook "<tag>emphasis</tag>
+remap='B'".)</para>
+<para role="commit-changes">Modified: manpages/inline.xsl,1.14 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for
+<tag>Segmentedlist</tag>. Details: Output is tabular, with no
+option for "list" type output. Output for <tag>Segtitle</tag>
+elements can be supressed by
+setting man.<tag>segtitle</tag>.suppress. If <tag>Segtitle</tag>
+content is output, it is rendered in italic type (not bold
+because not all terminals support bold and so italic ensures the
+stand out on those terminals). Extra space (.sp line) at end of
+<tag>table</tag> code ensures that it gets handled correctly in
+the case where its source is the child of a <tag>Para</tag>.
+Closes feature-request #1400097. Thanks to Daniel Leidert for the
+patch and push, and to Alastair Rankine for filing the original
+feature request.</para>
+<para role="commit-changes">Modified: manpages/lists.xsl,1.23;
+manpages/utility.xsl,1.10 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Improved handling or
+Author/Editor/Othercredit.</para>
+<para>Reworked content of
+(non-visible) comment added at top of each page (metadata
+stuff).</para>
+<para>Added support for generating a
+<parameter>manifest</parameter> file (useful for cleaning up
+after builds, etc.)</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.46;
+manpages/info.xsl,1.9; manpages/other.xsl,1.12;
+manpages/utility.xsl,1.6 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added two new parameters for
+handling of multi-term
+<tag>varlistentry</tag> elements:</para>
+<para><parameter>variablelist.term.break.after</parameter>: 
+When the <parameter>variablelist.term.break.after</parameter> is
+non-zero, it will  generate a line break after each
+<tag>term</tag> multi-term
+<tag>varlistentry</tag>.</para>
+<para><parameter>variablelist.term.separator</parameter>: 
+When a <tag>varlistentry</tag> contains multiple <tag>term</tag>
+elements, the string  specified in the value of the
+<parameter>variablelist.term.separator</parameter>  parameter is
+placed after each <tag>term</tag> except the last. The default 
+is ", " (a comma followed by a space). To suppress rendering of 
+the separator, set the value of
+<parameter>variablelist.term.separator</parameter> to  the empty
+string ("").</para>
+<para>These parameters are primarily intended to be
+useful if you have multi-term varlistentries that have long
+terms.</para>
+<para>Closes #1306676. Thanks to Sam Steingold for
+providing an example "lots of long terms" doc that demonstrated
+the value of having these options.</para>
+<para>Also, added
+normalize-space() call to processing of each
+<tag>term</tag>.</para>
+<para>This change affects all output formats
+(HTML, PDF, manpages). The default behavior should pretty much
+remain the same as before, but it is possible (as always) that
+the change may introduce some
+new bugginess.</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.62; fo/param.ent,1.88;
+fo/param.xweb,1.99; html/lists.xsl,1.48; html/param.ent,1.86;
+html/param.xweb,1.93; manpages/lists.xsl,1.22;
+manpages/param.ent,1.14; manpages/param.xweb,1.16;
+params/variablelist.term.break.after.xml,1.1;
+params/variablelist.term.separator.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Manpages changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_Params">
+<title>Params</title>
+<para>The following changes have been made to the
+        <filename>params</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>New parameters to set
+header/footer <tag>table</tag> minimum
+height.</para>
+<para role="commit-changes">Modified: params/footer.table.height.xml,1.1;
+params/header.table.height.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support multiple indexing methods
+for different languages.</para>
+<para role="commit-changes">Modified: params/index.method.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Remove <tag>qandaset</tag> and
+<tag>qandadiv</tag> from <parameter>generate.toc</parameter> for fo
+output because formerly it wasn't working, but now it is and
+the default behavior should stay the
+same.</para>
+<para role="commit-changes">Modified: params/generate.toc.xml,1.8 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>add support for page number
+references to <tag>link</tag> element
+too.</para>
+<para role="commit-changes">Modified: params/insert.link.page.number.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Add support for more characters to
+hyphen on when <parameter>ulink.hyphenate</parameter> is turned
+on.</para>
+<para role="commit-changes">Modified: params/ulink.hyphenate.chars.xml,1.1;
+params/ulink.hyphenate.xml,1.3 - Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>New attribute-set to format
+<tag>biblioentry</tag> and
+<tag>bibliomixed</tag>.</para>
+<para role="commit-changes">Modified: params/biblioentry.properties.xml,1.1 -
+Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new parameter
+<parameter>chunk.tocs.and.lots</parameter>.has.<tag>title</tag> which
+controls presence of <tag>title</tag> in a separate chunk with
+ToC/LoT. Disabling <tag>title</tag> can be very useful if you are
+generating frameset output (well, yes those frames, but some customers
+really want them ;-).</para>
+<para role="commit-changes">Modified: html/chunk-code.xsl,1.15;
+html/param.ent,1.93; html/param.xweb,1.102;
+params/chunk.tocs.and.lots.has.title.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new attribute set
+<tag>toc</tag>.line.properties for controlling appearance of lines in
+ToC/LoT</para>
+<para role="commit-changes">Modified: params/toc.line.properties.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Allow <tag>table</tag> footnotes
+to have different properties from regular
+footnotes.</para>
+<para role="commit-changes">Modified: params/table.footnote.properties.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Set properties for pgwide="1"
+objects.</para>
+<para role="commit-changes">Modified: params/pgwide.properties.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added the
+autotoc.<tag>label</tag>.in.hyperlink param.</para>
+<para>If the value
+of autotoc.<tag>label</tag>.in.hyperlink is non-zero, labels
+are included in hyperlinked titles in the <tag>TOC</tag>. If it
+is instead zero, labels are still displayed prior to the
+hyperlinked titles, but are not hyperlinked along with the
+titles.</para>
+<para>Closes patch #1065868. Thanks to anatoly techtonik
+for the patch.</para>
+<para role="commit-changes">Modified: html/autotoc.xsl,1.36; html/param.ent,1.92;
+html/param.xweb,1.101; params/autotoc.label.in.hyperlink.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added two new params:
+html.head.<tag>legalnotice</tag>.<tag>link</tag>.types
+and html.head.<tag>legalnotice</tag>.<tag>link</tag>.multiple.</para>
+<para>If
+the value of the <parameter>generate.legalnotice.link</parameter> is
+non-zero, then the stylesheet generates (in the head
+<tag>section</tag> of the HTML source) either a single HTML
+<tag>link</tag> element or, if the value of
+the html.head.<tag>legalnotice</tag>.<tag>link</tag>.multiple is
+non-zero, one <tag>link</tag> element for each <tag>link</tag>
+type specified. Each <tag>link</tag> has the
+following attributes:</para>
+<para> - a rel attribute whose value
+is derived from the value of 
+html.head.<tag>legalnotice</tag>.<tag>link</tag>.types</para>
+<para> -
+an href attribute whose value is set to the URL of the file 
+containing the <tag>legalnotice</tag></para>
+<para> - a <tag>title</tag>
+attribute whose value is set to the <tag>title</tag> of the 
+corresponding <tag>legalnotice</tag> (or a <tag>title</tag>
+programatically  determined by the stylesheet)</para>
+<para>For
+example:</para>
+<para> &lt;<tag>link</tag> rel="<tag>copyright</tag>"
+href="ln-id2524073.html" title="Legal Notice"&gt;</para>
+<para>Closes
+#1476450. Thanks to Sam Steingold.</para>
+<para role="commit-changes">Modified: html/chunk-common.xsl,1.45;
+html/param.ent,1.91; html/param.xweb,1.100;
+params/generate.legalnotice.link.xml,1.4;
+params/html.head.legalnotice.link.multiple.xml,1.1;
+params/html.head.legalnotice.link.types.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added the following
+params:</para>
+<para> - man.indent.width (string-valued)  -
+man.indent.refsect (boolean)  - man.indent.blurbs (boolean) 
+- man.indent.lists (boolean)  - man.indent.verbatims
+(boolean)</para>
+<para>Note that in earlier snapshots, man.indent.width
+was named man.indentation.default.value and the boolean params
+had names like man.indentation.*.adjust. Also the
+man.indent.blurbs param was called man.indentation.authors.adjust
+(or something).</para>
+<para>The behavior now is: If the value of a
+particular man.indent.* boolean param is non-zero, the
+corresponding contents (refsect*, list items,
+authorblurb/personblurb, vervatims) are displayed with a left
+margin indented by a width equal to the value
+of man.indent.width.</para>
+<para role="commit-changes">Modified: params/man.indent.blurbs.xml,1.1;
+manpages/docbook.xsl,1.74; manpages/info.xsl,1.20;
+manpages/lists.xsl,1.30; manpages/other.xsl,1.20;
+manpages/param.ent,1.22; manpages/param.xweb,1.24;
+manpages/refentry.xsl,1.14; params/man.indent.lists.xml,1.1;
+params/man.indent.refsect.xml,1.1;
+params/man.indent.verbatims.xml,1.1; params/man.indent.width.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.<tag>table</tag>.footnotes.divider param.</para>
+<para>In each
+<tag>table</tag> that contains footenotes, the string specified
+by the man.<tag>table</tag>.footnotes.divider parameter is output
+before the list of footnotes for the
+<tag>table</tag>.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.73;
+manpages/links.xsl,1.6; manpages/param.ent,1.21;
+manpages/param.xweb,1.23; params/man.table.footnotes.divider.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added the
+man.output.in.separate.dir,
+man.output.<parameter>base.dir</parameter>,
+and man.output.subdirs.enabled parameters.</para>
+<para>The
+man.output.<parameter>base.dir</parameter> parameter specifies the
+base directory into which man-page files are
+output. The man.output.subdirs.enabled parameter controls whether
+the files are output in subdirectories within the base
+directory.</para>
+<para>The values of the
+man.output.<parameter>base.dir</parameter>
+and man.output.subdirs.enabled parameters are used only if the
+value of man.output.in.separate.dir parameter is non-zero. If the
+value of man.output.in.separate.dir is zero, man-page files are
+not output in a separate
+directory.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.72; manpages/param.ent,1.20;
+manpages/param.xweb,1.22; params/man.output.base.dir.xml,1.1;
+params/man.output.in.separate.dir.xml,1.1;
+params/man.output.subdirs.enabled.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.font.<tag>table</tag>.headings and
+man.font.<tag>table</tag>.<tag>title</tag> params, for
+controlling font in <tag>table</tag> headings and
+titles.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.71; manpages/param.ent,1.19;
+manpages/param.xweb,1.21; params/man.font.table.headings.xml,1.1;
+params/man.font.table.title.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.font.<tag>funcsynopsisinfo</tag> and
+man.font.<tag>funcprototype</tag> params, for specifying the roff
+font (for example, BI, B, I) for <tag>funcsynopsisinfo</tag> and
+<tag>funcprototype</tag> output.</para>
+<para role="commit-changes">Modified: manpages/block.xsl,1.19;
+manpages/docbook.xsl,1.69; manpages/param.ent,1.18;
+manpages/param.xweb,1.20; manpages/synop.xsl,1.29;
+manpages/table.xsl,1.21; params/man.font.funcprototype.xml,1.1;
+params/man.font.funcsynopsisinfo.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Changed to select="0" in
+<tag>refclass</tag>.suppress (instead of
+..&gt;0&lt;/..)</para>
+<para role="commit-changes">Modified: params/refclass.suppress.xml,1.3 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.<tag>segtitle</tag>.suppress param.</para>
+<para>If the value of
+man.<tag>segtitle</tag>.suppress is non-zero, then display
+of <tag>segtitle</tag> contents is suppressed in
+output.</para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.68; manpages/param.ent,1.17;
+manpages/param.xweb,1.19; params/man.segtitle.suppress.xml,1.1 -
+Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+man.output.<parameter>manifest</parameter>.enabled and
+man.output.manifest.<tag>filename</tag> params.</para>
+<para>If
+man.output.<parameter>manifest</parameter>.enabled is non-zero, a list
+of filenames for man pages generated by the stylesheet
+transformation is written to the file named by
+man.output.<parameter>manifest</parameter>.<tag>filename</tag></para>
+<para role="commit-changes">Modified: manpages/docbook.xsl,1.67;
+manpages/other.xsl,1.19; manpages/param.ent,1.16;
+manpages/param.xweb,1.18; params/man.output.manifest.enabled.xml,1.1;
+params/man.output.manifest.filename.xml,1.1;
+tools/make/Makefile.DocBook,1.4 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added <tag>refclass</tag>.suppress
+param.</para>
+<para>If the value of <tag>refclass</tag>.suppress is
+non-zero, then display <tag>refclass</tag> contents is suppressed
+in output. Affects HTML and FO output
+only.</para>
+<para role="commit-changes">Modified: fo/param.ent,1.93; fo/param.xweb,1.106; html/param.ent,1.90;
+html/param.xweb,1.99; params/refclass.suppress.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added
+<tag>refentry</tag>.meta.get.quietly param.</para>
+<para>If zero (the
+default), notes and warnings about "missing" markup are generated
+during gathering of <tag>refentry</tag> metadata. If
+non-zero, the metadata is gathered "quietly" -- that is, the
+notes and warnings are suppressed.</para>
+<para>NOTE: If you are
+processing a large amount of <tag>refentry</tag> content,  you
+may be able to speed up processing significantly by  setting a
+non-zero value for
+<tag>refentry</tag>.meta.get.quietly.</para>
+<para role="commit-changes">Modified: common/refentry.xsl,1.17;
+manpages/param.ent,1.15; manpages/param.xweb,1.17;
+params/refentry.meta.get.quietly.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added support for "software" and
+"sectdesc" class values on <tag>refmiscinfo</tag>; "software" is
+treated identically to "source", and "setdesc" is treated
+identically to "manual".</para>
+<para role="commit-changes">Modified: common/refentry.xsl,1.10;
+params/man.th.extra2.max.length.xml,1.3;
+params/refentry.source.name.profile.xml,1.4 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Drastically reworked all of the
+XPath expressions used in <tag>refentry</tag> metadata gathering
+-- completely removed $parentinfo and turned $info into a set of
+nodes that includes the *info contents of the <tag>Refentry</tag>
+plus the *info contents all all of its ancestor elements. The
+basic XPath expression now used throughout is (using the example
+of checking for a <tag>date</tag>):</para>
+<para>
+(($info[//date])[last()]/date)[1].</para>
+<para>That selects the "last"
+*info/date <tag>date</tag> in document order -- that is, the one
+eitther on the <tag>Refentry</tag> itself or on the
+closest ancestor to the <tag>Refentry</tag>.</para>
+<para>It's
+likely this change may break some things; may need to pick up
+some pieces later.</para>
+<para>Also, changed the default value for the
+<parameter>man.th.extra2.max.length</parameter> from 40 to
+30.</para>
+<para role="commit-changes">Modified: common/common.xsl,1.58; common/refentry.xsl,1.7;
+params/man.th.extra2.max.length.xml,1.2;
+params/refentry.date.profile.xml,1.2;
+params/refentry.manual.profile.xml,1.2;
+params/refentry.source.name.profile.xml,1.2;
+params/refentry.version.profile.xml,1.2; manpages/docbook.xsl,1.58;
+manpages/other.xsl,1.15 - Michael(tm) Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added option for turning off bold
+formatting in <tag>Funcsynopsis</tag>. Boldface formatting in
+<tag>function</tag> <tag>synopsis</tag> is mandated in the
+man(7) man page and is used almost universally in existing man
+pages. Despite that, it really does look like crap to have an
+entire <tag>Funcsynopsis</tag> output in bold, so I added params
+for turning off the bold formatting and/or replacing it with a
+different roff special font (e.g., "RI" for alternating
+roman/italic instead of the default "BI" for alternating
+bold/italic). The new params
+are "man.<tag>funcprototype</tag>.font" and
+"man.<tag>funcsynopsisinfo</tag>.font". To be documented
+later.</para>
+<para>Closes #1452247. Thanks to Joe Orton for the feature
+request.</para>
+<para role="commit-changes">Modified: params/man.string.subst.map.xml,1.16;
+manpages/block.xsl,1.10; manpages/docbook.xsl,1.51;
+manpages/inline.xsl,1.16; manpages/synop.xsl,1.27 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para><parameter>fop.extensions</parameter> now only
+for FOP version 0.20.5 and earlier.</para>
+<para role="commit-changes">Modified: params/fop.extensions.xml,1.4
+- Robert Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support for fop1 different from
+fop 0.20.5 and earlier.</para>
+<para role="commit-changes">Modified: params/fop1.extensions.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Reset default value to empty
+string so template uses gentext first, then the parameter value
+if not empty.</para>
+<para role="commit-changes">Modified: params/index.number.separator.xml,1.2;
+params/index.range.separator.xml,1.2;
+params/index.term.separator.xml,1.2 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>New parameter:
+<parameter>id.warnings</parameter>. If non-zero, warnings are
+generated for titled objects that don't have titles. True by default;
+I wonder if this will be too aggressive?</para>
+<para role="commit-changes">Modified: html/biblio.xsl,1.25;
+html/component.xsl,1.27; html/division.xsl,1.11; html/formal.xsl,1.19;
+html/glossary.xsl,1.20; html/html.xsl,1.13; html/index.xsl,1.16;
+html/param.ent,1.88; html/param.xweb,1.97; html/refentry.xsl,1.22;
+html/sections.xsl,1.30; params/id.warnings.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added new parameter
+<parameter>keep.relative.image.uris</parameter></para>
+<para role="commit-changes">Modified: fo/param.ent,1.91;
+fo/param.xweb,1.104; html/param.ent,1.87; html/param.xweb,1.96;
+params/keep.relative.image.uris.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Support default <tag>label</tag>
+width parameters for itemized and ordered lists</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.64;
+fo/param.ent,1.90; fo/param.xweb,1.103;
+params/itemizedlist.label.width.xml,1.1;
+params/orderedlist.label.width.xml,1.1 - Norman
+Walsh</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added parameters to localize
+punctuation in indexes.</para>
+<para role="commit-changes">Modified: params/index.number.separator.xml,1.1;
+params/index.range.separator.xml,1.1;
+params/index.term.separator.xml,1.1 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Added two new parameters for
+handling of multi-term
+<tag>varlistentry</tag> elements:</para>
+<para><parameter>variablelist.term.break.after</parameter>: 
+When the <parameter>variablelist.term.break.after</parameter> is
+non-zero, it will  generate a line break after each
+<tag>term</tag> multi-term
+<tag>varlistentry</tag>.</para>
+<para><parameter>variablelist.term.separator</parameter>: 
+When a <tag>varlistentry</tag> contains multiple <tag>term</tag>
+elements, the string  specified in the value of the
+<parameter>variablelist.term.separator</parameter>  parameter is
+placed after each <tag>term</tag> except the last. The default 
+is ", " (a comma followed by a space). To suppress rendering of 
+the separator, set the value of
+<parameter>variablelist.term.separator</parameter> to  the empty
+string ("").</para>
+<para>These parameters are primarily intended to be
+useful if you have multi-term varlistentries that have long
+terms.</para>
+<para>Closes #1306676. Thanks to Sam Steingold for
+providing an example "lots of long terms" doc that demonstrated
+the value of having these options.</para>
+<para>Also, added
+normalize-space() call to processing of each
+<tag>term</tag>.</para>
+<para>This change affects all output formats
+(HTML, PDF, manpages). The default behavior should pretty much
+remain the same as before, but it is possible (as always) that
+the change may introduce some
+new bugginess.</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.62; fo/param.ent,1.88;
+fo/param.xweb,1.99; html/lists.xsl,1.48; html/param.ent,1.86;
+html/param.xweb,1.93; manpages/lists.xsl,1.22;
+manpages/param.ent,1.14; manpages/param.xweb,1.16;
+params/variablelist.term.break.after.xml,1.1;
+params/variablelist.term.separator.xml,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+<listitem role="commit-message">
+<para>Convert 'no' to string in default
+value.</para>
+<para role="commit-changes">Modified: params/olink.doctitle.xml,1.4 - Robert
+Stayton</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented RFE
+#1292615.</para>
+<para>Added bunch of new parameters (attribute sets)
+that affect list presentation: list.block.properties,
+<tag>itemizedlist</tag>.properties, <tag>orderedlist</tag>.properties,
+<tag>itemizedlist</tag>.<tag>label</tag>.properties and
+<tag>orderedlist</tag>.<tag>label</tag>.properties. Default behaviour
+of stylesheets has not been changed but further customizations will be
+much more easier.</para>
+<para role="commit-changes">Modified: fo/lists.xsl,1.61; fo/param.ent,1.87;
+fo/param.xweb,1.98; params/itemizedlist.label.properties.xml,1.1;
+params/itemizedlist.properties.xml,1.1;
+params/list.block.properties.xml,1.1;
+params/orderedlist.label.properties.xml,1.1;
+params/orderedlist.properties.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Implemented RFE
+#1242092.</para>
+<para>You can enable crop marks in your document by
+setting crop.marks=1 and xep.extensions=1. Appearance of crop
+marks can be controlled by parameters
+<parameter>crop.mark.bleed</parameter> (6pt),
+<parameter>crop.mark.offset</parameter> (24pt) and
+<parameter>crop.mark.width</parameter> (0.5pt).</para>
+<para>Also there
+is new named template called user-xep-pis. You can overwrite it in
+order to produce some PIs that can control XEP as described in
+http://www.renderx.com/reference.html#Output_Formats</para>
+<para role="commit-changes">Modified: fo/docbook.xsl,1.36;
+fo/param.ent,1.86; fo/param.xweb,1.97; fo/xep.xsl,1.23;
+params/crop.mark.bleed.xml,1.1; params/crop.mark.offset.xml,1.1;
+params/crop.mark.width.xml,1.1; params/crop.marks.xml,1.1 - Jirka
+Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Changed short descriptions in doc
+for *autolabel* params to match new autolabel
+behavior.</para>
+<para role="commit-changes">Modified: params/appendix.autolabel.xml,1.5;
+params/chapter.autolabel.xml,1.4; params/part.autolabel.xml,1.5;
+params/preface.autolabel.xml,1.4 - Michael(tm)
+Smith</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Params changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_Profiling">
+<title>Profiling</title>
+<para>The following changes have been made to the
+        <filename>profiling</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Profiling now works together with
+namespace stripping (V5 documents). Namespace striping should work
+with all stylesheets named profile-, even if they are not supporting
+namespace stripping in a non-profiling
+variant.</para>
+<para role="commit-changes">Modified: profiling/profile-mode.xsl,1.4;
+profiling/xsl2profile.xsl,1.7 - Jirka Kosek</para>
+</listitem>
+<listitem role="commit-message">
+<para>Moved profiling stage out of
+templates. This make possible to reuse profiled content by several
+templates and still maintaing node indentity (needed for example for
+HTML Help where content is processed multiple times).</para>
+<para>I
+don't know why this was not on the top level before. Maybe some XSLT
+processors choked on it. I hope this will be OK
+now.</para>
+<para role="commit-changes">Modified: profiling/xsl2profile.xsl,1.5 - Jirka
+Kosek</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Profiling changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_Tools">
+<title>Tools</title>
+<para>The following changes have been made to the
+        <filename>tools</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>Moved Makefile.DocBook from
+<tag>contrib</tag> module to xsl
+module.</para>
+<para role="commit-changes">Modified: tools/make/Makefile.DocBook,1.1 - Michael(tm)
+Smith</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of Tools changes for snapshot_2006-05-15_0803-->
+
+<sect2 xml:id="V1700_WordML">
+<title>WordML</title>
+<para>The following changes have been made to the
+        <filename>wordml</filename> code
+        since the 1.69.1 release.</para>
+<itemizedlist>
+<listitem role="commit-message">
+<para>added <tag>contrib</tag> element,
+better handling of default paragraph
+style</para>
+<para role="commit-changes">Modified: wordml/pages-normalise.xsl,1.6; wordml/supported.xml,1.2;
+wordml/wordml-final.xsl,1.14 - Steve Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>added
+<tag>bridgehead</tag></para>
+<para role="commit-changes">Modified: wordml/docbook-pages.xsl,1.6;
+wordml/docbook.xsl,1.17; wordml/pages-normalise.xsl,1.5;
+wordml/template-pages.xml,1.7; wordml/template.dot,1.4;
+wordml/template.xml,1.14; wordml/wordml-final.xsl,1.13 - Steve
+Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>added blocks stylesheet to support
+bibliographies, glossaries and qandasets</para>
+<para role="commit-changes">Modified: wordml/Makefile,1.4;
+wordml/README,1.3; wordml/blocks-spec.xml,1.1;
+wordml/docbook-pages.xsl,1.5; wordml/docbook.xsl,1.16;
+wordml/pages-normalise.xsl,1.4; wordml/sections-spec.xml,1.3;
+wordml/specifications.xml,1.13; wordml/template-pages.xml,1.6;
+wordml/template.dot,1.3; wordml/template.xml,1.13;
+wordml/wordml-blocks.xsl,1.1; wordml/wordml-final.xsl,1.12;
+wordml/wordml-sections.xsl,1.3 - Steve Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>added <tag>mediaobject</tag>
+<tag>caption</tag></para>
+<para role="commit-changes">Modified: wordml/docbook-pages.xsl,1.4;
+wordml/docbook.xsl,1.15; wordml/specifications.xml,1.12;
+wordml/template-pages.xml,1.5; wordml/template.dot,1.2;
+wordml/template.xml,1.12; wordml/wordml-final.xsl,1.11 - Steve
+Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>added
+callouts</para>
+<para role="commit-changes">Modified: wordml/docbook-pages.xsl,1.3; wordml/docbook.xsl,1.14;
+wordml/pages-normalise.xsl,1.3; wordml/specifications.xml,1.11;
+wordml/template-pages.xml,1.4; wordml/wordml-final.xsl,1.10 - Steve
+Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>added Word template
+file</para>
+<para role="commit-changes">Modified: wordml/template.dot,1.1 - Steve Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>added <tag>abstract</tag>, fixed
+<tag>itemizedlist</tag>, ulink</para>
+<para role="commit-changes">Modified: wordml/specifications.xml,1.10;
+wordml/wordml-final.xsl,1.9 - Steve Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>fixed Makefile added many
+features to Pages support added <tag>revhistory</tag>, inlines,
+highlights, <tag>abstract</tag></para>
+<para role="commit-changes">Modified: wordml/Makefile,1.2;
+wordml/docbook-pages.xsl,1.2; wordml/pages-normalise.xsl,1.2;
+wordml/sections-spec.xml,1.2; wordml/specifications.xml,1.9;
+wordml/template-pages.xml,1.3; wordml/template.xml,1.11;
+wordml/wordml-final.xsl,1.8; wordml/wordml-sections.xsl,1.2 - Steve
+Ball</para>
+</listitem>
+<listitem role="commit-message">
+<para>fixed handling linebreaks when
+generating WordML added Apple Pages
+support</para>
+<para role="commit-changes">Modified: wordml/docbook.xsl,1.13; wordml/template-pages.xml,1.2 -
+Steve Ball</para>
+</listitem>
+</itemizedlist>
+</sect2><!--end of WordML changes for snapshot_2006-05-15_0803-->
+</sect1>
+
+  <sect1 xml:id="V1691">
+    <title>Release 1.69.1</title>
+    <para>This release is a minor bug-fix update to the 1.69.0
+    release. Along with bug fixes, it includes one
+    configuration-parameter change: The default value of the
+    <parameter>annotation.support</parameter> parameter is now
+    <literal>0</literal> (off). The reason for that change is that
+    there have been reports that <tag>annotation</tag> handling is
+    causing a significant performance degradation in processing of
+    large documents with <command>xsltproc</command>.</para>
+  </sect1>
+  <!-- end of notes for 1.69.1 release -->
+
+  <sect1 xml:id="V1690">
+    <title>Release 1.69.0</title>
+    <para>The release includes major feature changes,
+    particularly in the <link linkend="V1690_MAN">manpages
+    stylesheets</link>, as well as a large number of bug fixes.</para>
+
+    <para>As with all DocBook Project <quote>dot zero</quote> releases, this is an
+    <link linkend="dot0">experimental release </link>.</para>
+   
+    <sect2 xml:id="V1690_COMMON">
+      <title>Common</title>
+      <itemizedlist>
+        <listitem>
+          <para>This release adds localizations for the following
+          languages:
+            <simplelist type="inline">
+              <?dbchoice choice="and"?>
+              <member>Albanian</member>
+              <member>Amharic</member>
+              <member>Azerbaijani</member>
+              <member>Hindi</member>
+              <member>Irish (Gaelic)</member>
+              <member>Gujarati</member>
+              <member>Kannada</member>
+              <member>Mongolian</member>
+              <member>Oriya</member>
+              <member>Punjabi</member>
+              <member>Tagalog</member>
+              <member>Tamil</member>
+              <member>Welsh</member>
+          </simplelist>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for specifying number format for auto
+          labels for <tag>chapter</tag>, <tag>appendix</tag>,
+          <tag>part</tag>, and <tag>preface</tag>. Contolled with the
+          <parameter>appendix.autolabel</parameter>,
+          <parameter>chapter.autolabel</parameter>,
+          <parameter>part.autolabel</parameter>, and
+          <parameter>preface.autolabel</parameter> parameters.</para>
+        </listitem>
+        <listitem>
+          <para>Added basic support for <tag>biblioref</tag> cross
+          referencing.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag class="attribute">align</tag>
+          on <tag>caption</tag> in <tag>mediaobject</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for processing documents that use the
+          DocBook V5 namespace.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag>termdef</tag> and
+          <tag>mathphrase</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>EXPERIMENTAL: Incorporated the Slides and Website
+          stylesheets into the DocBook XSL stylesheets package. So,
+          for example, Website documents can now be processed using
+          the following URI for the driver Website
+          <filename>tabular.xsl</filename> file: <literallayout class="monospaced"><uri>http://docbook.sourceforge.net/release/xsl/current/website/tabular.xsl</uri></literallayout></para>
+        </listitem>
+        <listitem>
+          <para>A <tag>procedure</tag> without a <tag>title</tag> is
+          now treated as an <quote>informal</quote> procedure (meaning
+          that it is not added to any generated <quote>list of
+          procedures</quote> and has no affect on numbering of
+          generated labels for other procedures).</para>
+        </listitem>
+        <listitem>
+          <para><tag>docname</tag> is no longer added to
+          <tag>olink</tag> when pointing to a root element.</para>
+        </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Added support for generation of choice separator in
+        inline simplelist. This enables auto-generation of an
+        appropriate localized <quote>choice separator</quote> (for
+        example, <quote>and</quote> or <quote>or</quote>) before the
+        final item in an inline <tag>simplelist</tag>.</para>
+        <para>To indicate that you want a choice separator
+        generated for a particular list, you need to put a processing
+        instruction (PI) of the form
+        <tag class="xmlpi">dbchoice choice="foo"</tag> as a
+        child of the list. For example:
+        <literallayout class="monospaced">  &lt;para&gt;Choose from
+  ONE and ONLY ONE of the following: 
+  &lt;simplelist type="inline"&gt;
+  &lt;?dbchoice choice="or" ?&gt;
+  &lt;member&gt;A&lt;/member&gt;
+  &lt;member&gt;B&lt;/member&gt;
+  &lt;member&gt;C&lt;/member&gt;.&lt;/simplelist&gt;&lt;/para&gt;</literallayout>
+
+        Output (for English):
+        <blockquote>
+          <para>Choose from ONE and only ONE of the
+          following choices: A, B, or C.</para>
+        </blockquote>
+        As a temporary workaround for the fact that most of the
+        DocBook non-English locale files don't have a localization for
+        the word <quote>or</quote>, you can put in a literal string to
+        be used; example for French: <tag class="pi">dbchoice choice="ou"</tag>.  That is, use
+        <quote>ou</quote> instead of <quote>or</quote>.</para>
+      </listitem>
+      </itemizedlist>
+    </sect2>
+    <sect2 xml:id="V1690_FO">
+      <title>FO</title>
+      <itemizedlist>
+        <listitem>
+          <para> Added <literal>content-type</literal> property to
+          <literal>external-graphic</literal> element, based on
+          <tag>imagedata</tag> <tag class="attribute">format</tag>
+          attribute.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for generating
+          <literal>&lt;rx:meta-field creator="$VERSION"/&gt;</literal>
+          field for XEP output. This makes the DocBook XSL
+          stylesheet version information available through the
+          <guimenu>Document Properties</guimenu> menu in Acrobat
+          Reader and other PDF viewers.</para>
+        </listitem>
+        <listitem>
+          <para>Trademark symbol handling made consistent with
+          handling of same in HTML stylesheets. Prior to this change,
+          if you processed a document that contained no value for the
+          <tag class="attribute">class</tag> attribute on the
+          <tag>trademark</tag> element, the HTML stylesheets would
+          default to rendering a superscript <literal>TM
+          </literal>symbol after the <tag>trademark</tag> contents,
+          but the FO stylesheets would render nothing.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for generating XEP bookmarks for
+          <tag>refentry</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for HTML markup <tag>table</tag> <tag class="attribute">border</tag> attribute, applied to each
+          table cell.</para>
+        </listitem>
+        <listitem>
+          <para>The <function>table.width</function> template can now
+          sum column specs if none use <literal>%</literal> or
+          <literal>*</literal>.</para>
+        </listitem>
+        <listitem>
+          <para>Added <literal>fox:destination</literal> extension
+          inside <literal>fox:outline</literal> to support linking to
+          internal destinations.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for customizing
+          <literal>abstract</literal> with property sets. Controlled
+          with the <parameter>abstract.properties</parameter> and
+          <parameter>abstract.title.properties</parameter>
+          parameters.</para>
+        </listitem>
+        <listitem>
+          <para>Add <tag>footnote</tag>s in <tag>table</tag> title to
+          table footnote set, and add support for table footnotes to
+          HTML table markup.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag>title</tag> in
+          <tag>glosslist</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag>itemizedlist</tag> symbol
+          <literal>none</literal>.</para>
+        </listitem>
+        <listitem>
+          <para>Implemented the new
+          <parameter>graphical.admonition.properties</parameter> and
+          <parameter>nongraphical.admonition.properties</parameter>
+          attribute sets.</para>
+        </listitem>
+        <listitem>
+          <para>Added <tag class="attribute">id</tag> to
+          <tag>formalpara</tag> and some other blocks that were
+          missing it.</para>
+        </listitem>
+        <listitem>
+          <para>Changed the anchor template to output
+          <literal>fo:inline</literal> instead of
+          <literal>fo:wrapper</literal>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <parameter>toc.max.depth</parameter>
+          parameter.</para>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    
+    <sect2 xml:id="V1690_HELP">
+      <title>Help</title>
+      <itemizedlist>
+        <listitem>
+          <para>Eclipse Help: Added support for generating olink
+          database.</para>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+
+    <sect2 xml:id="V1690_HTML">
+      <title>HTML</title>
+      <itemizedlist>
+        <listitem>
+          <para>Added a first cut at support in HTML output for
+          DocBook 5 style <tag>annotation</tag>s. Controlled using the
+          <parameter>annotation.support</parameter> parameter, and
+          implemented using JavaScript and CSS styling. For more
+          details, see the documentation for the
+          <parameter>annotation.js</parameter>,
+          <parameter>annotation.css</parameter>,
+          <parameter>annotation.graphic.open</parameter>, and
+          <parameter>annotation.graphic.close</parameter>
+          parameters.</para>
+        </listitem>
+        <listitem>
+          <para>Generate client-side image map for
+          <tag>imageobjectco</tag> with areas using
+          <literal>calspair</literal> units</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag class="xmlpi">img.src.path</tag> PI.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for passing
+          <parameter>img.src.path</parameter> to DocBook Java XSLT
+          image extensions when appropriate. Controlled using the
+          <parameter>graphicsize.use.img.src.path</parameter>
+          parameter.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for (not
+          valid for DocBook 4) <tag class="attribute">xlink:href</tag>
+          on <tag>area</tag> and (not valid for DocBook 4)
+          <tag>alt</tag> in <tag>area</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added new parameter
+          <parameter>default.table.frame</parameter> to control table
+          framing if there is no <tag class="attribute">frame</tag>
+          attribute on a table.</para>
+        </listitem>
+        <listitem>
+          <para>Added initial, experimental support for generating
+          content for the HTML <literal>title</literal> attribute from
+          content of the <tag>alt</tag> element. This change adds
+          support for the following inline elements only (none of them
+          are block elements):
+          <simplelist type="inline">
+            <?dbchoice choice="and"?>
+            <member><tag>abbrev</tag></member>
+            <member><tag>accel</tag></member>
+            <member><tag>acronym</tag></member>
+            <member><tag>action</tag></member>
+            <member><tag>application</tag></member>
+            <member><tag>authorinitials</tag></member>
+            <member><tag>beginpage</tag></member>
+            <member><tag>citation</tag></member>
+            <member><tag>citerefentry</tag></member>
+            <member><tag>citetitle</tag></member>
+            <member><tag>city</tag></member>
+            <member><tag>classname</tag></member>
+            <member><tag>code</tag></member>
+            <member><tag>command</tag></member>
+            <member><tag>computeroutput</tag></member>
+            <member><tag>constant</tag></member>
+            <member><tag>country</tag></member>
+            <member><tag>database</tag></member>
+            <member><tag>email</tag></member>
+            <member><tag>envar</tag></member>
+            <member><tag>errorcode</tag></member>
+            <member><tag>errorname</tag></member>
+            <member><tag>errortext</tag></member>
+            <member><tag>errortype</tag></member>
+            <member><tag>exceptionname</tag></member>
+            <member><tag>fax</tag></member>
+            <member><tag>filename</tag></member>
+            <member><tag>firstname</tag></member>
+            <member><tag>firstterm</tag></member>
+            <member><tag>foreignphrase</tag></member>
+            <member><tag>function</tag></member>
+            <member><tag>glossterm</tag></member>
+            <member><tag>guibutton</tag></member>
+            <member><tag>guiicon</tag></member>
+            <member><tag>guilabel</tag></member>
+            <member><tag>guimenu</tag></member>
+            <member><tag>guimenuitem</tag></member>
+            <member><tag>guisubmenu</tag></member>
+            <member><tag>hardware</tag></member>
+            <member><tag>honorific</tag></member>
+            <member><tag>interface</tag></member>
+            <member><tag>interfacename</tag></member>
+            <member><tag>keycap</tag></member>
+            <member><tag>keycode</tag></member>
+            <member><tag>keysym</tag></member>
+            <member><tag>lineage</tag></member>
+            <member><tag>lineannotation</tag></member>
+            <member><tag>literal</tag></member>
+            <member><tag>markup</tag></member>
+            <member><tag>medialabel</tag></member>
+            <member><tag>methodname</tag></member>
+            <member><tag>mousebutton</tag></member>
+            <member><tag>option</tag></member>
+            <member><tag>optional</tag></member>
+            <member><tag>otheraddr</tag></member>
+            <member><tag>othername</tag></member>
+            <member><tag>package</tag></member>
+            <member><tag>parameter</tag></member>
+            <member><tag>personname</tag></member>
+            <member><tag>phone</tag></member>
+            <member><tag>pob</tag></member>
+            <member><tag>postcode</tag></member>
+            <member><tag>productname</tag></member>
+            <member><tag>productnumber</tag></member>
+            <member><tag>prompt</tag></member>
+            <member><tag>property</tag></member>
+            <member><tag>quote</tag></member>
+            <member><tag>refentrytitle</tag></member>
+            <member><tag>remark</tag></member>
+            <member><tag>replaceable</tag></member>
+            <member><tag>returnvalue</tag></member>
+            <member><tag>tag</tag></member>
+            <member><tag>shortcut</tag></member>
+            <member><tag>state</tag></member>
+            <member><tag>street</tag></member>
+            <member><tag>structfield</tag></member>
+            <member><tag>structname</tag></member>
+            <member><tag>subscript</tag></member>
+            <member><tag>superscript</tag></member>
+            <member><tag>surname</tag></member>
+            <member><tag>symbol</tag></member>
+            <member><tag>systemitem</tag></member>
+            <member><tag>tag</tag></member>
+            <member><tag>termdef</tag></member>
+            <member><tag>token</tag></member>
+            <member><tag>trademark</tag></member>
+            <member><tag>type</tag></member>
+            <member><tag>uri</tag></member>
+            <member><tag>userinput</tag></member>
+            <member><tag>varname</tag></member>
+            <member><tag>wordasword</tag></member>
+          </simplelist>
+        </para>
+        </listitem>
+        <listitem>
+          <para>Added support for chunking <tag>revhistory</tag> into
+          separate file (similar to the support for doing same with
+          <tag>legalnotice</tag>). Patch from Thomas
+          Schraitle. Controlled through <parameter>new
+          generate.revhistory.link</parameter> parameter.</para>
+        </listitem>
+        <listitem>
+          <para>l10n.xsl: Made language codes RFC compliant. Added a
+          new boolean config parameter,
+          <parameter>l10n.lang.value.rfc.compliant</parameter>. If it
+          is non-zero (the default), any underscore in a language code
+          will be converted to a hyphen in HTML output. If it is zero,
+          the language code will be left as-is.</para>
+        </listitem>
+      </itemizedlist>
+    </sect2>
+    <sect2 xml:id="V1690_MAN">
+      <title>man</title>
+      <para>This release closes out 44 manpages stylesheet bug reports
+      and feature requests. It adds more than 35 new configuration
+      parameters for controlling aspects of man-page output --
+      including hyphenation and justification, handling of links,
+      conversion of Unicode characters, and contents of man-page
+      headers and footers.</para>
+      <itemizedlist>
+        <!-- ======================================================= -->
+        <listitem>
+          <para>New options for globally disabling/enabling
+          hyphenation and justification:
+          <parameter>man.justify</parameter> and
+          <parameter>man.hyphenate</parameter>.</para>
+          <para>Note that the default
+          for the both of those is zero (off), because justified text
+          looks good only when it is also hyphenated; to quote the
+          <quote>Hyphenation</quote> node from the groff info page:
+          <blockquote>
+            <para><emphasis>Since the odds are not great for finding a
+            set of words, for every output line, which fit nicely on a
+            line without inserting excessive amounts of space between
+            words, `gtroff' hyphenates words so that it can justify
+            lines without inserting too much space between
+            words.</emphasis></para>
+          </blockquote>
+          The problem is that groff can end up hyphenating a lot of
+          things that you don't want hyphenated (variable names and
+          command names, for example). Keeping both justification and
+          hyphenation disabled ensures that hyphens won't get inserted
+          where you don't want to them, and you don't end up with
+          lines containing excessive amounts of space between
+          words. These default settings run counter to how most
+          existing man pages are formatted. But there are some notable
+          exceptions, such as the perl man pages.</para>
+        </listitem>
+        <listitem>
+          <para> Added parameters for controlling hyphenation of
+          computer inlines, filenames, and URLs. By default, even when
+          hyphenation is enabled (globally), hyphenation is now
+          suppressed for "computer inlines" (currently, just
+          <tag>classname</tag>, <tag>constant</tag>, <tag>envar</tag>,
+          <tag>errorcode</tag>, <tag>option</tag>,
+          <tag>replaceable</tag>, <tag>userinput</tag>,
+          <tag>type</tag>, and <tag>varname</tag>, and for
+          <tag>filenames</tag>, and for URLs from <tag>link</tag>. It
+          can be (re)enabled using the
+          <parameter>man.hyphenate.computer.inlines</parameter>,
+          <parameter>man.hyphenate.filenames</parameter>, and
+          <parameter>man.hyphenate.urls parameters</parameter>.</para>
+        </listitem>
+        <!-- ======================================================= -->
+        <listitem>
+          <para>Implemented a new system for replacing Unicode
+          characters. There are two parts to the new system: a
+          <quote>string substitution map</quote> for doing
+          <quote>essential</quote> replacements, and a
+          <quote>character map</quote> that can optionally be disabled
+          and enabled.</para>
+          <para>The new system fixes all open bugs that had to do with
+          literal Unicode numbered entities such as &amp;#8220; and
+          &amp;#8221; showing up in output, and greatly expands the
+          ability of the stylesheets to generate <quote>good</quote> roff
+          equivalents for Unicode symbols and special
+          characters.</para>
+          <para>Here are some details...</para>
+          <para>The previous manpages mechanism for replacing Unicode
+          symbols and special characters with roff equivalents (the
+          <function>replace-entities</function> template) was not
+          scalable and not complete. The mechanism handled a somewhat
+          arbitrary selection of less than 20 or so Unicode
+          characters. But there are potentially more than
+          <emphasis>800</emphasis> Unicode special characters that
+          have some groff equivalent they can be mapped to. And there
+          are about 34 symbols in the Latin-1 (ISO-8859-1) block
+          alone. Users might reasonably expect that if they include
+          any of those Latin-1 characters in their DocBook source
+          documents, they will get correctly converted to known roff
+          equivalents in output.</para>
+          <para>In addition to those common symbols, certain users may
+          have a need to use symbols from other Unicode blocks. Say,
+          somebody who is documenting an application related to math
+          might need to use a bunch of symbols from the
+          <quote>Mathematical Operators</quote> Unicode block (there
+          are about 65 characters in that block that have reasonable
+          roff equivalents). Or somebody else might really like
+          Dingbats -- such as the checkmark character -- and so might
+          use a bunch of things from the <quote>Dingbat</quote> block
+          (141 characters in that that have roff equivalents or that
+          can at least be <quote>degraded</quote> somewhat gracefully
+          into roff).</para>
+          <para>So, the old <function>replace-entities</function>
+          mechanism was replaced with a completely different mechanism
+          that is based on use of two <quote>maps</quote>: a
+          <quote>substitution map</quote> and a <quote>character
+          map</quote> (the latter in a format compliant with the XSLT
+          2.0 spec and therefore completely <quote>forward
+          compatible</quote> with XSLT 2.0).</para>
+          <para>The substitution map is controlled through the
+          <parameter>man.string.subst.map</parameter> parameter, and
+          is used to replace things like the backslash character
+          (which needs special handling to prevent it from being
+          interpreted as a roff escape). The substitution map cannot
+          be disabled, because disabling it will cause the output to
+          be broken. However, you can add to it and change it if
+          needed.</para>
+
+          <para>The <quote>character map</quote> mechanism, on the
+          other hand, can be completely disabled. It is enabled by
+          default, and, by default, does replacement of all Latin-1
+          symbols, along with most special spaces, dashes, and quotes
+          (about 75 characters by default). Also, you can optionally
+          enable a <quote>full</quote> character map that provides
+          support for converting all 800 or so of the characters that
+          have some reasonable groff equivalent.</para>
+
+          <para>The character-map mechanism is controlled through the
+          following parameters:
+          <variablelist>
+            <varlistentry>
+              <term><parameter>man.charmap.enabled</parameter></term>
+              <listitem><para>turns character-map support
+              on/off</para></listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><parameter>man.charmap.use.subset</parameter></term>
+              <listitem><para>specifies that a subset of the character
+              map is used instead of the full map</para></listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><parameter>man.charmap.subset.profile</parameter></term>
+              <listitem><para>specifies profile of character-map
+              subset</para></listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><parameter>man.charmap.uri</parameter></term>
+              <listitem><para>specifies an alternate character map to
+              use instead of the <quote>standard</quote> character map
+              provided in the distribution</para></listitem>
+            </varlistentry>
+          </variablelist>
+          </para>
+        </listitem>
+        <!-- ======================================================= -->
+        <listitem>
+          <para>Implemented out-of-line handling of display of URLs
+          for links (currently, only for <tag>ulink</tag>). This gives
+          you three choices for handling of links:
+          <orderedlist>
+            <listitem>
+              <para>Number and list links. Each link is numbered
+              inline, with a number in square brackets preceding the
+              link contents, and a numbered list of all links is added
+              to the end of the document.</para>
+            </listitem>
+            <listitem>
+              <para>Only list links. Links are not numbered, but an
+              (unnumbered) list of links is added to the end of the
+              document.</para>
+            </listitem>
+            <listitem>
+              <para>Suppress links. Don't number links and don't add
+              any list of links to the end of the document.</para>
+            </listitem>
+          </orderedlist>
+          You can also choose whether links should be underlined. The
+          default is <quote>the works</quote> -- list, number, and
+          underline links. You can use the
+          <parameter>man.links.list.enabled</parameter>, <parameter>
+          man.links.are.numbered</parameter>, and
+          <parameter>man.links.are.underlined</parameter> parameters
+          to change the defaults. The default heading for the link
+          list is REFERENCES. You can be change that using the
+          <parameter>man.links.list.heading</parameter>
+          parameter.</para>
+        </listitem>
+        <listitem>
+          <para>Changed default output encoding to UTF-8. <emphasis role="bold">This does not mean that man pages are output in
+          raw UTF-8</emphasis>, because the character map is applied
+          before final output, causing all UTF-8 characters covered in
+          the map to be converted to roff equivalents.</para>
+        </listitem>
+        <!-- ======================================================= -->
+        <listitem>
+          <para>Added support for processing <tag>refsect3</tag> and
+          <tag>formalpara</tag> and nested <tag>refsection</tag>
+          elements, down to any arbitrary level of nesting.</para>
+        </listitem>
+        <!-- ======================================================= -->
+        <listitem>
+          <para>Output of the <literal>NAME</literal> and
+          <literal>SYNOPSIS</literal> and <literal>AUTHOR</literal>
+          headings and the headings for admonitions (<tag>note</tag>,
+          <tag>caution</tag>, etc.) are no longer hard-coded for
+          English. Instead, headings are generated for those in the
+          correct locale (just as the FO and HTML stylesheets
+          do).</para>
+        </listitem>
+        <!-- ======================================================= -->
+        <listitem>
+          <para>Re-worked mechanism for assembling page
+          headers/footers (the contents of the <literal>.TH</literal>
+          macro <quote>title line</quote>).</para>
+
+          <para>Here are some details...</para>
+
+          <para>All man pages contain a <literal>.TH</literal> roff
+          macro whose contents are used for rendering the <quote>title
+          line</quote> displayed in the header and footer of each
+          page. Here are a couple of examples of real-world man pages
+          that have useful page headers/footers: <literallayout class="monospaced">
+  gtk-options(7)    GTK+ User's Manual   gtk-options(7) &lt;-- header
+  GTK+ 1.2              2003-10-20       gtk-options(7) &lt;-- footer
+
+  svgalib(7)       Svgalib User Manual       svgalib(7) &lt;-- header
+  Svgalib 1.4.1      16 December 1999        svgalib(7) &lt;-- footer</literallayout></para>
+
+          <para>And here are the terms with which the
+          <literal>groff_man(7)</literal> man page refers to the
+          various parts of the header/footer: <literallayout class="monospaced">
+  title(section)  extra3  title(section)  &lt;- header
+  extra2          extra1  title(section)  &lt;- footer</literallayout></para>
+  <para> Or, using the names with which the <literal>man(7)</literal>
+   man page refers to those same fields: <literallayout class="monospaced">
+  title(section)  manual  title(section)  &lt;- page header
+  source          date    title(section)  &lt;- page footer</literallayout></para>
+  
+            <para>The easiest way to control the contents of those
+            fields is to mark up your <tag>refentry</tag> content like
+            the following (note that this is a <quote>minimal</quote>
+            example). <programlisting>
+  &lt;refentry&gt;
+    &lt;info&gt;
+      &lt;date&gt;2003-10-20&lt;/date&gt; <co xml:id="V1690_date-co" linkends="V1690_date"/>
+    &lt;/info&gt;
+    &lt;refmeta&gt;
+      &lt;refentrytitle&gt;gtk-options&lt;/refentrytitle&gt; <co xml:id="V1690_title-co" linkends="V1690_title"/>
+      &lt;manvolnum&gt;7&lt;/manvolnum&gt; <co xml:id="V1690_manvolnum-co" linkends="V1690_manvolnum"/>
+      &lt;refmiscinfo class="source-name"&gt;GTK+&lt;/refmiscinfo&gt; <co xml:id="V1690_source-name-co" linkends="V1690_source-name"/>
+      &lt;refmiscinfo class="version"&gt;1.2&lt;/refmiscinfo&gt; <co xml:id="V1690_version-co" linkends="V1690_version"/>
+      &lt;refmiscinfo class="manual"&gt;GTK+ User's Manual&lt;/refmiscinfo&gt; <co xml:id="V1690_manual-co" linkends="V1690_manual"/>
+    &lt;/refmeta&gt;
+    &lt;refnamediv&gt;
+      &lt;refname&gt;gtk-options&lt;/refname&gt;
+      &lt;refpurpose&gt;Standard Command Line Options for GTK+ Programs&lt;/refpurpose&gt;
+    &lt;/refnamediv&gt;
+    &lt;refsect1&gt;
+      &lt;title&gt;Description&lt;/title&gt;
+      &lt;para&gt;This manual page describes the command line options, which
+      are common to all GTK+ based applications.&lt;/para&gt;
+    &lt;/refsect1&gt;
+  &lt;/refentry&gt;</programlisting>
+  <calloutlist>
+    <callout arearefs="V1690_date-co" xml:id="V1690_date">
+      <para>Sets the <quote>date</quote> part of the header/footer.</para>
+    </callout>
+    <callout arearefs="V1690_title-co" xml:id="V1690_title">
+      <para>Sets the <quote>title</quote> part.</para>
+    </callout>
+    <callout arearefs="V1690_manvolnum-co" xml:id="V1690_manvolnum">
+      <para>Sets the <quote>section</quote> part.</para>
+    </callout>
+    <callout arearefs="V1690_source-name-co" xml:id="V1690_source-name">
+      <para>Sets the <quote>source name</quote> part.</para>
+    </callout>
+    <callout arearefs="V1690_version-co" xml:id="V1690_version">
+      <para>Sets the <quote>version</quote> part.</para>
+    </callout>
+    <callout arearefs="V1690_manual-co" xml:id="V1690_manual">
+      <para>Sets the <quote>manual</quote> part.</para>
+    </callout>
+  </calloutlist>
+            </para>
+            <para>Below are explanations of the steps the stylesheets
+            take to attempt to assemble and display
+            <quote>good</quote> headers and footer. [In the
+            descriptions, note that <replaceable>*info</replaceable>
+            is the <tag>refentry</tag> <quote>info</quote> child
+            (whatever its name), and
+            <replaceable>parentinfo</replaceable> is the
+            <quote>info</quote> child of its parent (again, whatever
+            its name).]
+          <variablelist>
+            <varlistentry>
+              <term>extra1 field (date)</term>
+              <listitem>
+                <para>Content of the <quote>extra1</quote> field is
+                what shows up in the <emphasis role="bold">center
+                footer</emphasis> position of each page. The
+                <literal>man(7)</literal> man page describes it as
+                <quote>the date of the last revision</quote>.</para>
+                <para>To provide this content, if the
+                <parameter>refentry.date.profile.enabled</parameter>
+                is non-zero, the stylesheets check the value of
+                <parameter>refentry.date.profile</parameter>.</para>
+                <para>Otherwise, by default, they check for a
+                <tag>date</tag> or <tag>pubdate</tag> not only in the
+                <replaceable>*info</replaceable> contents, but also in
+                the <replaceable>parentinfo</replaceable>
+                contents.</para>
+                <para>If a date cannot be found, the stylesheets now
+                automatically generate a localized <quote>long
+                format</quote> date, ensuring that this field always
+                has content in output.</para>
+                <para>However, if for some reason you want to suppress
+                this field, you can do so by setting a non-zero value
+                for <parameter>man.th.extra1.suppress</parameter>.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term>extra2 field (source)</term>
+              <listitem>
+                <para>On Linux systems and on systems with a modern
+                groff, the content of the <quote>extra2</quote> field
+                are what shows up in the <emphasis role="bold">left
+                footer</emphasis> position of each page.</para>
+
+                <para>The <literal>man(7)</literal> man page describes
+                this as <quote>the source of the command</quote>, and
+                provides the following examples:
+                <itemizedlist>
+                  <listitem>
+                    <para>For binaries, use somwething like: GNU,
+                    NET-2, SLS Distribution, MCC Distribution.</para>
+                  </listitem>
+                  <listitem>
+                    <para>For system calls, use the version of the
+                    kernel that you are currently looking at: Linux
+                    0.99.11.</para>
+                  </listitem>
+                  <listitem>
+                    <para>For library calls, use the source of the
+                    function: GNU, BSD 4.3, Linux DLL 4.4.1.</para>
+                  </listitem>
+                </itemizedlist>
+                </para>
+
+                <para>In practice, there are many pages that simply
+                have a version number in the <quote>source</quote>
+                field. So, it looks like what we have is a two-part
+                field,
+                <replaceable>Name</replaceable> <replaceable>Version</replaceable>,
+                where:
+                <variablelist>
+                  <varlistentry>
+                    <term>Name</term>
+                    <listitem>
+                      <para>product name (e.g., BSD) or org. name
+                      (e.g., GNU)</para>
+                    </listitem>
+                  </varlistentry>
+                  <varlistentry>
+                    <term>Version</term>
+                    <listitem>
+                      <para>version name</para>
+                    </listitem>
+                  </varlistentry>
+                </variablelist>
+                Each part is optional. If the
+                <replaceable>Name</replaceable> is a product name,
+                then the <replaceable>Version</replaceable> is
+                probably the version of the product. Or there may be
+                no <replaceable>Name</replaceable>, in which case, if
+                there is a <replaceable>Version</replaceable>, it is
+                probably the version of the item itself, not the
+                product it is part of. Or, if the
+                <replaceable>Name</replaceable> is an organization
+                name, then there probably will be no
+                <replaceable>Version</replaceable>.
+                </para>
+                <para>To provide this content, if the
+                <parameter>refentry.source.name.profile.enabled</parameter>
+                and
+                <parameter>refentry.version.profile.enabled</parameter>
+                parameter are non-zero, the stylesheets check the
+                value of <parameter>refentry.source.name.profile</parameter>
+                <parameter>refentry.version.profile</parameter>.</para>
+
+                <para>Otherwise, by default, they check the following
+                places, in the following order:
+                <orderedlist>
+                  <listitem>
+                    <literallayout class="monospaced"><replaceable>*info</replaceable>/<tag>productnumber</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><replaceable>*info</replaceable>/<tag>productnumber</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><tag>refmeta</tag>/<tag>refmiscinfo</tag>[@class = 'version']</literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><replaceable>parentinfo</replaceable>/<tag>productnumber</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><replaceable>*info</replaceable>/<tag>productname</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><replaceable>parentinfo</replaceable>/<tag>productname</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><tag>refmeta</tag>/<tag>refmiscinfo</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <para>[nothing found, so leave it empty]</para>
+                  </listitem>
+                </orderedlist>
+                </para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term>extra3 field</term>
+              <listitem>
+                <para>On Linux systems and on systems with a modern
+                groff, the content of the <quote>extra3</quote> field
+                are what shows up in the <emphasis role="bold">center
+                header</emphasis> position of each page. Some man
+                pages have <quote>extra2</quote> content, some
+                don't. If a particular man page has it, it is most
+                often <quote>context</quote> data about some larger
+                system the documented item belongs to (for example,
+                the name or description of a group of related
+                applications). The stylesheets now check the following
+                places, in the following order, to look for content to
+                add to the <quote>extra3</quote> field.</para>
+                <orderedlist>
+                  <listitem>
+                    <literallayout class="monospaced"><replaceable>parentinfo</replaceable>/<tag>title</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced">parent's <tag>title</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <literallayout class="monospaced"><tag>refmeta</tag>/<tag>refmiscinfo</tag></literallayout>
+                  </listitem>
+                  <listitem>
+                    <para>[nothing found, so leave it empty]</para>
+                  </listitem>
+                </orderedlist>
+              </listitem>
+            </varlistentry>
+          </variablelist>
+        </para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Reworked <replaceable>*info</replaceable> gathering. For
+        each <tag>refentry</tag> found, the stylesheets now cache its
+        <replaceable>*info</replaceable> content, then check for any
+        valid parent of it that might have metainfo content and cache
+        that, if found; they then then do all further matches against
+        those node-sets (rather than re-selecting the original
+        <replaceable>*info</replaceable> nodes each time they are
+        needed).</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>New option for breaking strings after forward
+        slashes. This enables long URLs and pathnames to be broken
+        across lines. Controlled through
+        <parameter>man.break.after.slash</parameter> parameter.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Output for servicemark and trademark are now
+        <literal>(SM)</literal> and <literal>(TM)</literal>. There is
+        a groff <literal>"\(tm"</literal> escape, but output from that
+        is not acceptable.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>New option for controlling the length of the title
+        part of the <literal>.TH</literal> title line. Controlled
+        through the <parameter>man.th.title.max.length</parameter>
+        parameter.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>New option for specifying output encoding of each man
+        page; controlled with
+        <parameter>man.output.encoding</parameter> (similar to the
+        HTML <parameter>chunker.output.encoding </parameter>
+        parameter).</para>
+      </listitem> 
+      <!-- ======================================================= -->
+     <listitem>
+        <para>New option for suppressing filename messages when
+        generating output; controlled with
+        <parameter>man.output.quietly</parameter> (similar to the HTML
+        <parameter>chunk.quietly</parameter> parameter).</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>The text of cross-references to first-level
+        <tag>refentry</tag> (<tag>refsect1</tag>, top-level
+        <tag>refsection</tag>, <tag>refnamediv</tag>, and
+        <tag>refsynopsisdiv</tag>) are now capitalized.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Cross-references to <tag>refnamediv</tag> now use the
+        localized <literal>NAME</literal> title instead of using the
+        first <tag>refname</tag> child. This makes the output
+        inconsistent with HTML and FO output, but for man-page output,
+        it seems to make better sense to have the
+        <literal>NAME</literal>. (It may actually make better sense to
+        do it that way in HTML and FO output as well...)</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Added support for processing <tag>funcparams</tag>.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Removed the space that was being output between
+        <tag>funcdef</tag> and <tag>paramdef</tag>; example: was:
+        <literal>float rand (void)</literal>; now:
+        <literal>float rand(void)</literal></para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Turned off bold formatting for the <tag>type</tag>
+        element when it occurs within a <tag>funcdef</tag> or
+        <tag>paramdef</tag></para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Corrected rendering of <tag>simplelist</tag>. Any
+        <literal>&lt;simplelist type="inline"</literal> instance
+        is now rendered as a comma-separated list (also with an
+        optional localized <quote>and</quote> or <quote>or</quote> before the last item -- see
+        description elsewhere in these release notes). Any simplelist
+        instance whose <tag class="attribute">type</tag> is not
+        <literal>inline</literal> is rendered as a one-column vertical
+        list (ignoring the values of the <tag class="attribute">type</tag> and <tag class="attribute">columns</tag> attributes if present)</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Comment added at top of roff source for each page now
+        includes DocBook XSL stylesheets version number (as in the
+        HTML stylesheets)</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Made change to prevent <quote>sticky</quote> fonts
+        changes. Now, when the manpages stylesheets encounter node
+        sets that need to be boldfaced or italicized, they put the
+        <literal>\fBfoo\fR</literal> and <literal>\fIbar\fR</literal>
+        groff bold/italic instructions separately around each node in
+        the set.</para>
+      </listitem>
+      <listitem>
+        <para>synop.xsl: Boldface everything in
+        <tag>funcsynopsis</tag> output except parameters (which are in
+        ital). The <literal>man(7)</literal> man page says:
+        <blockquote>
+          <para>For functions, the arguments are always specified
+          using italics, even in the SYNOPSIS section, where the rest
+          of the function is specified in bold.</para>
+          </blockquote>
+          A look through the contents of the
+          <filename>man/man2</filename> directory shows that most
+          (all) existing pages do follow this <quote>everything in
+          funcsynopsis bold</quote> rule. That means the
+          <tag>type</tag> content and any punctuation (parens,
+          semicolons, <tag>vararg</tag>s) also must be bolded.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Removed code for adding backslashes before periods/dots
+        in roff source, because backslashes in front of periods/dots
+        in roff source are needed only in the very rare case where a
+        period is the very first character in a line, without any
+        space in front of it. A better way to deal with that rare case
+        is for you to add a zero-width space in front of the offending
+        dot(s) in your source</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Removed special handling of the <tag>quote</tag>
+        element. That was hard-coded to cause anything marked up with
+        the <tag>quote</tag> element to be output preceded by two
+        backticks and followed by two apostrophes -- that is, that
+        old-school kludge for generating <quote>curly</quote> quotes in Emacs and
+        in X-Windows fonts. While Emacs still seems to support that, I
+        don't think X-Windows has for a long time now. And, anyway, it
+        looks (and has always looked) like crap when viewed on a
+        normal tty/console. In addition, it breaks localiztion of
+        <tag>quote</tag>. By default, <tag>quote</tag> content is
+        output with localized quotation marks, which, depending on the
+        locale, may or may not be left and right double quotation
+        marks.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Changed mappings for left and right single quotation
+        marks. Those had previously been incorrectly mapped to the
+        backtick (&amp;#96;) and apostrophe (&amp;39;) characters (for
+        kludgy reasons -- see above). They are now correctly mapped to
+        the <literal>\(oq</literal> and <literal>\(cq</literal> roff
+        escapes. If you want the old (broken) behavior, you need to
+        manually change the mappings for those in the value of the
+        <parameter>man.string.subst.map</parameter> parameter.</para>
+      </listitem>
+      <listitem>
+        <para>Removed <filename>xref.xsl</filename> file. Now, of the
+        various cross-reference elements, only the <tag>ulink</tag>
+        element is handled differently; the rest are handled exactly
+        as the HTML stylesheets handle them, except that no hypertext
+        links are generated. (Because there is no equivalent hypertext
+        mechanism is man pages.)</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>New option for making <quote>subheading dividers</quote> in generated
+        roff source. The dividers are not visible in the rendered man
+        page; they are just there to make the source
+        readable. Controlled using
+        <parameter>man.subheading.divider</parameter>.</para>
+      </listitem>
+      <!-- ======================================================= -->
+      <listitem>
+        <para>Fixed many places where too much space was being added
+        between lines.</para>
+      </listitem>
+    </itemizedlist>
+    <!-- end of MAN changes for 1.69.0 release -->
+  </sect2>
+</sect1>
+  <!-- end of notes for 1.69.0 release -->
+
+  <sect1 xml:id="V1681">
+    <title>Release 1.68.1</title>
+    <para>The release adds localization support for Farsi (thanks to
+    Sina Heshmati) and improved support for the XLink-based DocBook NG
+    <tag>db:link</tag> element. Other than that, it is a minor
+    bug-fix update to the 1.68.0 release. The main thing it fixes is a
+    build error that caused the XSLT Java extensions to be jarred up
+    with the wrong package structure. Thanks to Jens Stavnstrup for
+    quickly reporting the problem, and to Mauritz Jeanson for
+    investigating and finding the cause.</para>
+  </sect1>
+  <!-- end of notes for 1.68.1 release -->
+
+  <sect1 xml:id="V1680">
+    <title>Release 1.68.0</title>
+    <para>This release includes some features changes, particularly
+    for FO/PDF output, and a number of bug fixes.
+      <itemizedlist xml:id="V1680_FO">
+        <title>FO</title>
+        <listitem>
+          <para>Moved footnote properties to attribute-sets.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for side floats, margin notes, and
+   	  custom floats.</para>
+        </listitem>
+        <listitem>
+          <para>Added new parameters
+          <parameter>body.start.indent</parameter> and
+          <parameter>body.end.indent</parameter> to the
+          <parameter>set.flow.properties template</parameter>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag class="attribute">xml:id</tag></para>
+        </listitem>
+        <listitem>
+          <para>Added support for
+          <tag>refdescriptor</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for multiple <tag>refnamediv</tag>s.</para>
+        </listitem>
+        <listitem>
+          <para>Added <parameter>index.entry.properties</parameter>
+          attribute-set to support customization of index
+          entries.</para>
+        </listitem>
+        <listitem>
+          <para>Added <parameter>set.flow.properties
+          template</parameter> call to each <tag>fo:flow</tag>
+          to support customizations entry point.</para>
+        </listitem>
+        <listitem>
+          <para>Add support for <literal>@floatstyle</literal> in
+          <tag>figure</tag></para>
+        </listitem>
+        <listitem>
+          <para>Moved hardcoded properties for index division titles
+          to the <parameter>index.div.title.properties</parameter>
+          attribute-set.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for
+          <tag>table-layout</tag>="<tag class="attvalue">auto</tag>" for XEP.</para>
+        </listitem>
+        <listitem>
+          <para>Added <parameter>index.div.title.properties</parameter>
+   	  attribute-set.</para>
+        </listitem>
+        <listitem>
+          <para><parameter>$verbose</parameter> parameter is now
+          passed to most elements.</para>
+        </listitem>
+        <listitem>
+          <para>Added <tag>refentry</tag> to
+          <tag>toc</tag> in <tag>part</tag>, as it is
+          permitted by the DocBook schema/DTD.</para>
+        </listitem>
+        <listitem>
+          <para>Added backmatter elements and
+          <tag>article</tag> to <tag>toc</tag> in
+          <tag>part</tag>, since they are permitted by the
+          DocBook schema/DTD.</para>
+        </listitem>
+        <listitem>
+          <para>Added <tag class="attribute">mode</tag>="<tag class="attvalue">toc</tag>" for
+          <tag>simplesect</tag>, since it is now permitted in
+          the <tag>toc</tag> if
+          <parameter>simplesect.in.toc</parameter> is set.</para>
+        </listitem>
+        <listitem>
+          <para>Moved hard-coded properties to
+          <parameter>nongraphical.admonintion.properties</parameter>
+          and <parameter>graphical.admonition.properties</parameter>
+          attribute sets.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <literal>sidebar-width</literal> and
+          <literal>float-type</literal> processing instructions in
+          <tag>sidebar</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>For tables with HTML markup elements, added support
+          for <literal>dbfo bgcolor</literal> PI, the attribute-sets
+          named <parameter>table.properties</parameter>,
+          <parameter>informaltable.properties</parameter>,
+          <parameter>table.table.properties</parameter>, and
+          <parameter>table.cell.padding</parameter>. Also added
+          support for the templates named
+          <parameter>table.cell.properties</parameter> and
+          <parameter>table.cell.block.properties</parameter> so that
+          tabstyles can be implemented. Also added support for tables
+          containing only <tag>tr</tag> instead of
+          <tag>tbody</tag> with <tag>tr</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added new paramater
+          <parameter>hyphenate.verbatim.characters</parameter> which
+          can specify characters after which a line break can occur in
+          verbatim environments.  This parameter can be used to extend
+          the initial set of characters which contain only space and
+          non-breakable space.</para>
+        </listitem>
+        <listitem>
+          <para>Added <parameter>itemizedlist.label.markup</parameter> to enable
+ 	  selection of different bullet symbol. Also added several
+   	  potential bullet characters, commented out by default.</para>
+        </listitem>
+        <listitem>
+          <para>Enabled all id's in XEP output for external olinking.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist xml:id="V1680_HTML">
+        <title>HTML</title>
+        <listitem>
+          <para>Added support for
+          <tag>refdescriptor</tag>.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for multiple <tag>refnamediv</tag>s.</para>
+        </listitem>
+        <listitem>
+          <para>Added support for <tag class="attribute">xml:id</tag></para>
+        </listitem>
+        <listitem>
+          <para><tag>refsynopsisdiv</tag> as a section for
+          counting section levels</para>
+        </listitem>
+      </itemizedlist>
+      <itemizedlist xml:id="V1680_images">
+        <title>Images</title>
+        <listitem>
+          <para>Added new SVG admonition graphics and navigation images.</para>
+        </listitem>
+      </itemizedlist>
+    </para>
+  </sect1>
+  <!-- end of notes for 1.68.0 release -->
+
+  <sect1 xml:id="V1672">
+    <title>Release 1.67.2</title>
+    <para>This release fixes a table bug introduced in the 1.67.1
+    release.</para>
+  </sect1>
+  <sect1 xml:id="V1671">
+    <title>Release 1.67.1</title>
+    <para>This release includes a number of bug fixes.</para>
+     <para>The following lists provide details about API and feature changes.
+      <itemizedlist xml:id="V1671_FO">
+        <title>FO</title>
+        <listitem>
+          <para>Tables: Inherited cell properties are now passed to the
+          <literal>table.cell.properties</literal> template so they can
+          be overridden by a customization.</para>
+        </listitem>
+        <listitem>
+          <para>Tables: Added support for bgcolor PI on table row
+          element.</para>
+        </listitem>
+        <listitem>
+          <para>TOCs: Added new parameter
+          <parameter>simplesect.in.toc</parameter>; default value of
+          <literal>0</literal> causes simplesect to be omitted from TOCs; to
+          cause <tag>simplesect</tag> to be included in TOCs, you
+          must set the value of <parameter>simplesect.in.toc</parameter> to
+          <literal>1</literal>.Comment from Norm:
+
+            <blockquote>
+              <para><emphasis>Simplesect elements aren't supposed to
+              appear in the ToC at all... The use case for simplesect
+              is when, for example, every chapter in a book ends with
+              "Exercises" or "For More Information" sections and you
+              don't want those to appear in the ToC.</emphasis></para>
+            </blockquote>
+            </para>
+        </listitem>
+        <listitem>
+          <para>Sections: Reverted change that caused a variable reference
+          to be used in a template match and rewrote code to preserve
+          intended semantics.</para>
+        </listitem>
+        <listitem>
+          <para>Lists: Added workaround to prevent "* 0.60 + 1em" garbage in
+          list output from PassiveTeX</para>
+        </listitem>
+        <listitem>
+          <para>Moved the literal attributes from
+          <parameter>component.title</parameter> to the
+          <parameter>component.title.properties</parameter> attribute-set so
+          they can be customized.</para>
+        </listitem>
+        <listitem>
+          <para>Lists: Added <tag>glossdef</tag>'s first
+          <tag>para</tag> to special handling in
+          <literal>fo:list-item-body</literal>.</para>
+        </listitem>
+      </itemizedlist>
+
+      <itemizedlist xml:id="V1671_HTML">
+        <title>HTML</title>
+        <listitem>
+          <para>TOCs: Added new parameter
+          <parameter>simplesect.in.toc</parameter>; for details, see
+          the list of <xref linkend="V1671_FO"/> changes for this
+          release.</para>
+        </listitem>
+        <listitem>
+          <para>Indexing: Added new parameter
+          <parameter>index.prefer.titleabbrev</parameter>; when set to
+          <literal>1</literal>, index references will use
+          <tag>titleabbrev</tag> instead of
+          <tag>title</tag> when available.</para>
+        </listitem>
+      </itemizedlist>
+      <itemizedlist xml:id="V1671_HELP">
+        <title>HTML Help</title>
+        <listitem>
+          <para>Added support for generating windows-1252-encoded
+          output using Saxon; for more details, see the list of <xref linkend="V1671_EXT"/> changes for this release.</para>
+        </listitem>
+      </itemizedlist>
+      <itemizedlist xml:id="V1671_MAN">
+        <title>man pages</title>
+        <listitem>
+          <para>Replaced named/numeric character-entity references for
+          non-breaking space with groff equivalent (backslash-tilde).</para>
+        </listitem>
+      </itemizedlist>
+      <itemizedlist xml:id="V1671_EXT">
+        <title>XSL Java extensions</title>
+        <listitem>
+          <para>Saxon extensions: Added the
+          <classname>Windows1252</classname> class.  It extends Saxon
+          6.5.x with the windows-1252 character set, which is
+          particularly useful when generating HTML Help for Western
+          European Languages (code from
+          <personname><firstname>Pontus</firstname>
+          <surname>Haglund</surname></personname> and contributed to the
+          DocBook community by Sectra AB, Sweden).</para>
+          <para>To use:
+          <orderedlist>
+            <listitem>
+              <para>Make sure that the Saxon 6.5.x jar file and the jar file for
+              the DocBook XSL Java extensions are in your <envar>CLASSPATH</envar></para>
+            </listitem>
+            <listitem>
+              <para>Create a DocBook XSL customization layer -- a file named
+              <filename>mystylesheet.xsl</filename> or whatever -- that, at a
+              minimum, contains the following:
+              <screen>  &lt;xsl:stylesheet
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    version='1.0'&gt;
+    &lt;xsl:import href="http://docbook.sourceforge.net/release/xsl/current/htmlhelp/htmlhelp.xsl"/&gt;
+    &lt;xsl:output method="html" encoding="WINDOWS-1252" indent="no"/&gt;
+    &lt;xsl:param name="htmlhelp.encoding" select="'WINDOWS-1252'"&gt;&lt;/xsl:param&gt;
+    &lt;xsl:param name="chunker.output.encoding" select="'WINDOWS-1252'"&gt;&lt;/xsl:param&gt;
+    &lt;xsl:param name="saxon.character.representation" select="'native'"&gt;&lt;/xsl:param&gt;
+  &lt;/xsl:stylesheet&gt;</screen>
+              </para>
+              <para>Invoke Saxon with the
+              <literal>encoding.windows-1252</literal> Java system property set
+              to <literal>com.nwalsh.saxon.Windows1252</literal>; for example
+              <screen>  java \
+    -Dencoding.windows-1252=com.nwalsh.saxon.Windows1252 \
+  com.icl.saxon.StyleSheet \
+  mydoc.xml mystylesheet.xsl</screen>
+
+              Or, for a more complete "real world" case showing other
+              options you'll typically want to use:
+              <screen>  java \
+    -Dencoding.windows-1252=com.nwalsh.saxon.Windows1252 \
+    -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl \
+    -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl \
+    -Djavax.xml.transform.TransformerFactory=com.icl.saxon.TransformerFactoryImpl \
+  com.icl.saxon.StyleSheet \
+    -x org.apache.xml.resolver.tools.ResolvingXMLReader \
+    -y org.apache.xml.resolver.tools.ResolvingXMLReader \
+    -r org.apache.xml.resolver.tools.CatalogResolver \
+  mydoc.xml mystylesheet.xsl</screen>
+
+              In both cases, the "mystylesheet.xsl" file should be a
+              DocBook customization layer containing the parameters
+              show in step 2.</para>
+            </listitem>
+          </orderedlist>
+          </para>
+        </listitem>
+        <listitem>
+          <para>Saxon extensions: Removed Saxon 8 extensions from release package</para>
+        </listitem>
+      </itemizedlist>
+    </para>
+  </sect1>
+<sect1 xml:id="V1670">
+  <title>Release 1.67.0</title>
+  <itemizedlist>
+  <listitem>
+    <para>A number of important bug fixes.</para>
+  </listitem>
+  <listitem>
+    <para>Added Saxon8 extensions</para>
+  </listitem>
+  <listitem>
+    <para>Enabled <literal>dbfo table-width</literal> on
+    <tag>entrytbl</tag> in FO output</para>
+  </listitem>
+  <listitem>
+    <para>Added support for <literal>role=strong</literal> on
+    <tag>emphasis</tag> in FO output</para>
+  </listitem>
+  <listitem>
+    <para>Added new FO parameter
+    <parameter>hyphenate.verbatim</parameter> that can be used to turn
+    on "intelligent" wrapping of verbatim environments.</para>
+  </listitem>
+  <listitem>
+    <para>Replaced all <literal>&lt;tt&gt;&lt;/tt&gt;</literal> output with
+    <literal>&lt;code&gt;&lt;/code&gt;</literal></para>
+  </listitem>
+  <listitem>
+    <para>Changed <literal>admon.graphic.width</literal> template to a
+    mode so that different admonitions can have different graphical
+    widths.</para>
+  </listitem>
+  <listitem>
+    <para>Deprecated the HTML <parameter>shade.verbatim</parameter>
+    parameter (use CSS instead)</para>
+  </listitem>
+  <listitem>
+    <para>Wrapped ToC
+    <tag>refentrytitle</tag>/<tag>refname</tag> and
+    <tag>refpurpose</tag> in span with class values. This
+    makes it possible to style them using a CSS stylesheet.</para>
+  </listitem>
+  <listitem>
+    <para>Use <literal>strong/em</literal> instead of
+    <literal>b/i</literal> in HTML output</para>
+  </listitem>
+  <listitem>
+    <para>Added support for converting <tag>Emphasis</tag> to
+    groff italic and <tag>Emphasis role='bold'</tag> to
+    bold. Controlled by
+    <parameter>emphasis.propagates.style</parameter> param, but not
+    documented yet using litprog system. Will do that next (planning
+    to add some other parameter-controllable options for hyphenation
+    and handling of line spacing).</para>
+  </listitem>
+  <listitem>
+    <para><parameter>callout.graphics.number.limit.xml</parameter>
+    param: Changed the default from <literal>10</literal> to
+    <literal>15</literal>.</para>
+  </listitem>
+  <listitem>
+    <para><parameter>verbatim.properties</parameter>: Added
+    <literal>hyphenate=false</literal></para>
+  </listitem>
+  <listitem>
+    <para>Saxon and Xalan Text.java extensions: Added support for
+    <methodname>URIResolver()</methodname> on insertfile href's</para>
+  </listitem>
+  <listitem>
+    <para>Added generated <filename>RELEASE-NOTES.txt</filename>
+    file.</para>
+  </listitem>
+  <listitem>
+    <para>Added <filename>INSTALL</filename> file (executable file for
+    generating catalog.xml)</para>
+  </listitem>
+  <listitem>
+    <para>Removed obsolete <filename>tools</filename> directory from
+    package</para>
+  </listitem>
+</itemizedlist>
+</sect1>
+<sect1 xml:id="V1661">
+<title>Release 1.66.1</title>
+  <itemizedlist>
+<listitem>
+<para>A number of important bug fixes.
+</para>
+</listitem>
+<listitem>
+<para>
+Now <literal>xml:base</literal> attributes that are generated by an
+XInclude processor are resolved for image files.
+</para>
+</listitem>
+<listitem>
+<para>
+Rewrote olink templates to support several new features.
+</para>
+<itemizedlist>
+<listitem>
+<para>
+Extended full olink support to FO output.
+</para>
+</listitem>
+<listitem>
+<para>
+Add support for <literal>xrefstyle</literal> attribute in olinks.
+</para>
+</listitem>
+<listitem>
+<para>
+New parameters to support new olink features:
+<parameter>insert.olink.page.number</parameter>, <parameter>insert.olink.pdf.frag</parameter>,
+<parameter>olink.debug</parameter>, <parameter>olink.lang.fallback.sequence</parameter>, <parameter>olink.properties</parameter>,
+<parameter>prefer.internal.olink</parameter>.
+See the reference page for each parameter for more
+information.</para>
+</listitem>
+</itemizedlist>
+</listitem> 
+<listitem>
+<para>
+Added  <parameter>index.on.type</parameter> parameter for new <tag class="attribute">type</tag>
+attribute introduced in DocBook 4.3 for indexterms and index.
+This allows you to create multiple indices containing
+different categories of entries.
+For users of 4.2 and earlier, you can use the new parameter <parameter>index.on.role</parameter>
+instead.
+</para>
+</listitem>
+<listitem>
+<para>
+Added new
+<parameter>section.autolabel.max.depth</parameter> parameter to turn off section numbering
+below a certain depth.
+This permits you to number major section levels and leave minor
+section levels unnumbered.</para>
+</listitem> 
+<listitem>
+<para>
+Added <parameter>footnote.sep.leader.properties</parameter> attribute set to format
+the line separating footnotes in printed output.
+</para>
+</listitem>
+<listitem>
+<para>
+Added parameter <parameter>img.src.path</parameter> as a prefix to HTML img src
+attributes.
+The prefix is added to whatever path is already generated by the
+stylesheet for each image file.</para>
+</listitem> 
+<listitem>
+<para>
+Added new attribute-sets
+<parameter>informalequation.properties</parameter>,
+<parameter>informalexample.properties</parameter>,
+<parameter>informalfigure.properties</parameter>, and <parameter>informaltable.properties</parameter>,
+so each such element type can be formatted
+individually if needed.
+</para>
+</listitem>
+<listitem>
+<para>
+Add <parameter>component.label.includes.part.label</parameter>
+parameter to add any  part number to chapter, appendix
+and other component labels when
+the <parameter>label.from.part</parameter> parameter  is nonzero.
+This permits you to distinguish multiple chapters with the same
+chapter number in cross references and the TOC.</para>
+</listitem>
+<listitem>
+<para>
+Added <parameter>chunk.separate.lots</parameter> parameter for HTML output.
+This parameter lets you generate separate chunk files for each LOT
+(list of tables, list of figures, etc.).</para>
+</listitem>
+<listitem>
+<para>Added several table features:</para>
+<itemizedlist>
+<listitem>
+<para>
+Added <parameter>table.table.properties</parameter> attribute set to add
+properties to the fo:table element.
+</para>
+</listitem>
+<listitem>
+<para>
+Added placeholder templates named <literal>table.cell.properties</literal>
+and <literal>table.cell.block.properties</literal> to enable adding properties
+to any <tag>fo:table-cell</tag> or the cell's <tag>fo:block</tag>, respectively.
+ These templates are a start for implementing table styles.</para>
+</listitem>
+</itemizedlist>
+</listitem>
+<listitem>
+<para>
+Added new attribute
+set <parameter>component.title.properties</parameter> for easy modifications of
+component's title formatting in FO output.
+</para>
+</listitem>
+<listitem>
+<para>
+Added Saxon support for an <tag class="attribute">encoding</tag> attribute on the <tag class="element">textdata</tag> element. Added new parameter
+<parameter>textdata.default.encoding</parameter> which specifies encoding when
+<tag class="attribute">encoding</tag> attribute on
+<tag class="element">textdata</tag> is missing.
+</para>
+</listitem>
+<listitem>
+<para>
+Template <literal>label.this.section</literal> now controls whole
+section label, not only sub-label which corresponds to
+particular label. Former behaviour was IMHO bug as it was
+not usable.
+</para>
+</listitem>
+<listitem>
+<para>
+Formatting in titleabbrev for TOC and headers
+is preserved when there are no hotlink elements in the title. Formerly the title showed only the text of the title, no font changes or other markup.
+</para>
+</listitem>
+<listitem>
+<para>
+Added <literal>intial.page.number</literal> template to set the <literal>initial-page-number
+property</literal> for page sequences in print output.
+Customizing this template lets you change when page numbering restarts. This is similar to the <literal>format.page.number</literal> template that lets you change how the page number formatting changes in the output.
+</para>
+</listitem>
+<listitem>
+<para>
+Added <literal>force.page.count</literal> template to set the force-page-count
+property for page sequences in print output.
+This is similar to the <literal>format.page.number</literal> template.
+</para>
+</listitem>
+<listitem>
+<para>
+Sort language for localized index sorting in <filename>autoidx-ng.xsl</filename> is now taken from document 
+lang, not from system environment.
+</para>
+</listitem>
+<listitem>
+<para>
+Numbering and formatting of normal
+and ulink footnotes (if turned on) has been unified.
+Now ulink footnotes are mixed in with any other footnotes.</para>
+</listitem> 
+<listitem>
+<para>
+Added support for <tag>renderas</tag> attribute in section and
+sect1 et al.
+This permits you to render a given section title as if it were a different level.</para>
+</listitem>
+<listitem>
+<para>
+Added support for <tag>label</tag> attribute in footnote to manually
+supply the footnote mark.
+</para>
+</listitem>
+<listitem>
+<para>
+Added support for DocBook 4.3 <tag>corpcredit</tag> element.
+</para>
+</listitem>
+<listitem>
+<para>
+Added support for a <literal>dbfo keep-together</literal> PI for
+formal objects (table, figure, example, equation, programlisting).  That permits a formal object to be kept together if it is not already, or to be broken if it
+is very long and the
+default keep-together is not appropriate.
+</para>
+</listitem>
+<listitem>
+<para>
+For graphics files, made file extension matching case
+insensitive, and updated the list of graphics extensions.
+</para>
+</listitem>
+<listitem>
+<para>
+Allow <tag>calloutlist</tag> to have block content before
+the first callout
+</para>
+</listitem>
+<listitem>
+<para>
+Added <literal>dbfo-need</literal> processing instruction to provide
+soft page breaks.
+</para>
+</listitem> 
+<listitem>
+<para>
+Added implementation of existing but unused
+<parameter>default.image.width</parameter> parameter for graphics.
+</para>
+</listitem>
+<listitem>
+<para>
+Support DocBook NG <tag>tag</tag> inline element.
+</para>
+</listitem> 
+<listitem>
+<para>
+It appears that XEP now supports Unicode characters in
+bookmarks. There is no further need to strip accents from
+characters.
+</para>
+</listitem>
+<listitem>
+<para>
+Make <tag>segmentedlist</tag> HTML markup
+more semantic and available to CSS styles.
+</para>
+</listitem>
+<listitem>
+<para>
+Added <literal>user.preroot</literal> placeholder template to
+permit xsl-stylesheet and other PIs and comments to be
+output before the HTML root element.
+</para>
+</listitem>
+<listitem>
+<para>
+Non-chunked legalnotice now gets an &lt;a
+name="id"&gt; element in HTML output
+so it can be referenced with xref or link.
+</para>
+</listitem>
+<listitem>
+<para>
+In chunked HTML output, changed <literal>link rel="home"</literal> to <literal>rel="start"</literal>,
+and <literal>link rel="previous"</literal> to <literal>rel="prev"</literal>, per W3C HTML 4.01
+spec.
+</para>
+</listitem>
+<listitem>
+<para>
+Added several patches to htmlhelp from W. Borgert
+</para>
+</listitem> 
+<listitem>
+<para>
+Added Bosnian locale file as common/bs.xml.
+</para>
+</listitem> 
+</itemizedlist>
+</sect1>
+<sect1 xml:id="V1650">
+<title>Release 1.65.0</title> 
+<itemizedlist>
+<listitem>
+<para>A number of important bug fixes.
+</para>
+</listitem> 
+<listitem>
+<para>Added a workaround to allow these stylesheets to process DocBook NG
+documents. (It’s a hack that pre-processes the document to strip off the
+namespace and then uses <function>exsl:node-set</function> to process
+the result.)
+</para>
+</listitem> 
+<listitem>
+<para>Added alternative indexing mechanism which has better
+internationalization support. New indexing method allows grouping of
+accented letters like e, é, ë into the same group under letter "e". It
+can also treat special letters (e.g. "ch") as one character and place
+them in the correct position (e.g. between "h" and "i" in Czech
+language).</para> 
+<para>In order to use this mechanism you must create customization
+layer which imports some base stylesheet (like
+<filename>fo/docbook.xsl</filename>,
+<filename>html/chunk.xsl</filename>) and then includes appropriate
+stylesheet with new indexing code
+(<filename>fo/autoidx-ng.xsl</filename> or
+<filename>html/autoidx-ng.xsl</filename>). For example:</para> 
+<programlisting>&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0"&gt;
+
+&lt;xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/&gt;
+&lt;xsl:include href="http://docbook.sourceforge.net/release/xsl/current/fo/autoidx-ng.xsl"/&gt;
+
+&lt;/xsl:stylesheet&gt;</programlisting>
+<para>New method is known to work with Saxon and it should also work
+with xsltproc 1.1.1 and later. Currently supported languages are
+English, Czech, German, French, Spanish and Danish.</para> 
+</listitem> 
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1641">
+<title>Release 1.64.1</title> 
+<itemizedlist>
+<para>General bug fixes and improvements. Sorry about the failure to produce
+an updated release notes file for 1.62.0—1.63.2</para> 
+<listitem>
+<para>In the course of fixing bug #849787, wrapping Unicode callouts
+with an appropriate font change in the Xalan extensions, I discovered
+that the Xalan APIs have changed a bit. So <filename>xalan2.jar</filename>
+will work with older Xalan 2 implementations, <filename>xalan25.jar</filename>
+works with Xalan 2.5.</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1610">
+<title>Release 1.61.0</title> 
+<itemizedlist>
+<para>Lots of bug fixes and improvements.</para> 
+<listitem>
+<para>Initial support for timestamp PI. From now you
+  can use &lt;?dbtimestamp format="Y-m-d H:M:S"?&gt; to get current
+  datetime in your document. Added localization support for datetime PI
+</para>
+</listitem> 
+<listitem>
+<para>Added level 6 to test for <tag>section</tag> depth in
+section.level template so that
+section.title.level6.properties will be used for sections
+that are 6 deep or deeper. This should also cause a h6 to be
+created in html output.
+</para>
+</listitem> 
+<listitem>
+<para>Don't use SVG graphics if <parameter>use.svg</parameter>=0
+</para>
+</listitem> 
+<listitem>
+<para>Now uses number-and-title-template for sections
+  only if <parameter>section.autolabel</parameter> is not zero.
+</para>
+</listitem> 
+<listitem>
+<para>Added missing 'english-language-name' attribute to
+the l10n element, and the missing 'style' attribute to the
+template element so the current gentext documents will
+validate.
+</para>
+</listitem> 
+<listitem>
+<para>Corrected several references to parameter
+  <parameter>qanda.defaultlabel</parameter> that were missing the "$".
+</para>
+</listitem> 
+<listitem>
+<para>Now accepts <parameter>admon.textlabel</parameter> parameter to turn off
+  Note, Warning, etc. label.
+</para>
+</listitem> 
+<listitem>
+<para>FeatReq #684561: support more XEP metadata
+</para>
+</listitem> 
+<listitem>
+<para>Added hyphenation support. Added support for <tag>coref</tag>.
+Added <tag>beginpage</tag> support. (does nothing; see TDG).
+</para>
+</listitem> 
+<listitem>
+<para>Added support for
+hyphenation-character, hyphenation-push-character-count, and
+hyphenation-remain-character-count
+</para>
+</listitem> 
+<listitem>
+<para>Added <parameter>root.properties</parameter>,
+<parameter>ebnf.assignment</parameter>,
+and <parameter>ebnf.statement.terminator</parameter>
+</para>
+</listitem> 
+<listitem>
+<para>Support bgcolor PI in table cells; make sure
+rowsep and colsep don't have any effect on the last row or
+column
+</para>
+</listitem> 
+<listitem>
+<para>Handle <tag>othercredit</tag> on titlepage a little
+better
+</para>
+</listitem> 
+<listitem>
+<para>Applied fix from Jeff Beal that fixed the bug
+that put secondary page numbers on primary entries. Same
+with tertiary page numbers on secondary entries.
+</para>
+</listitem> 
+<listitem>
+<para>Added definition of missing variable
+<parameter>collection</parameter>.
+</para>
+</listitem> 
+<listitem>
+<para>Make <tag>footnote</tag> formatting 'normal' even when it
+occurs in a context that has special formatting
+</para>
+</listitem> 
+<listitem>
+<para>Added warning when <parameter>glossary.collection</parameter> is not
+blank, but it cannot open the specified file.
+</para>
+</listitem> 
+<listitem>
+<para>Pick up the frame attribute on <tag>table</tag> and
+<tag>informaltable</tag>.
+</para>
+</listitem> 
+<listitem>
+<para><tag>indexdiv</tag>/<tag>title</tag>
+in non-autogenerated indexes are
+now picked up.
+</para>
+</listitem> 
+<listitem>
+<para>Removed (unused)
+component.title.properties
+</para>
+</listitem> 
+<listitem>
+<para>Move IDs from
+page-sequences down to titlepage blocks
+</para>
+</listitem> 
+<listitem>
+<para>Use
+proportional-column-width(1) on more <tag>table</tag>s.
+</para>
+<para>Use proportional-column-width() for
+header/footer tables; suppress relative-align when when
+using FOP
+</para>
+</listitem> 
+<listitem>
+<para>Check for <parameter>glossterm.auto.link</parameter> when linking
+firstterms; don't output gl. prefix on glossterm links
+</para>
+</listitem> 
+<listitem>
+<para>Generate Part ToCs
+</para>
+</listitem> 
+<listitem>
+<para>Support <tag>glossary</tag>, <tag>bibliography</tag>,
+and <tag>index</tag> in component ToCs.
+</para>
+</listitem> 
+<listitem>
+<para>Refactored chunking code so that
+customization of chunk algorithm and chunk elements is more
+practical
+</para>
+</listitem> 
+<listitem>
+<para>Support <tag>textobject</tag>/<tag>phrase</tag>
+on <tag>inlinemediaobject</tag>.
+</para>
+</listitem> 
+<listitem>
+<para>Support 'start' PI on ordered lists
+</para>
+</listitem> 
+<listitem>
+<para>Fixed test of $toc PI to turn on qandaset TOC.
+</para>
+</listitem> 
+<listitem>
+<para>Added process.chunk.footnotes to sect2 through
+5 to fix bug of missing footnotes when chunk level greater
+than 1.
+</para>
+</listitem> 
+<listitem>
+<para>Added
+paramater <parameter>toc.max.depth</parameter> which controls maximal depth of ToC
+as requested by PHP-DOC group.
+</para>
+</listitem> 
+<listitem>
+<para>Exempted <tag>titleabbrev</tag> from preamble processing in
+lists, and fixed variablelist preamble code to use the same
+syntax as the other lists.
+</para>
+</listitem> 
+<listitem>
+<para>Added support for elements between variablelist
+and first varlistentry since DocBook 4.2 supports that now.
+</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1601">
+<title>Release 1.60.1</title> 
+<itemizedlist>
+<para>Lots of bug fixes.</para> 
+<listitem>
+<para>The format of the <filename>titlepage.templates.xml</filename> files and
+the stylesheet that transforms them have been significantly changed. All of the
+attributes used to control the templates are now namespace qualified. So what
+used to be:</para> 
+<programlisting>&lt;t:titlepage element="article" wrapper="fo:block"&gt;</programlisting>
+<para>is now:</para> 
+<programlisting>&lt;t:titlepage t:element="article" t:wrapper="fo:block"&gt;</programlisting>
+<para>Attributes from other namespaces (including those that are unqualified) are
+now copied directly through. In practice, this means that the names that used
+to be <quote>fo:</quote> qualified:</para> 
+<programlisting>&lt;title named-template="component.title"
+       param:node="ancestor-or-self::article[1]"
+       fo:text-align="center"
+       fo:keep-with-next="always"
+       fo:font-size="&amp;hsize5;"
+       fo:font-weight="bold"
+       fo:font-family="{$title.font.family}"/&gt;</programlisting>
+<para>are now unqualified:</para> 
+<programlisting>&lt;title t:named-template="component.title"
+       param:node="ancestor-or-self::article[1]"
+       text-align="center"
+       keep-with-next="always"
+       font-size="&amp;hsize5;"
+       font-weight="bold"
+       font-family="{$title.font.family}"/&gt;</programlisting>
+<para>The <tag>t:titlepage</tag> and <tag>t:titlepage-content</tag>
+elements both generate wrappers now. And unqualified attributes on those elements
+are passed through. This means that you can now make the title font apply to
+ane entire titlepage and make the entire <quote>recto</quote>
+titlepage centered by specifying the font and alignment on the those elements:</para> 
+<programlisting>&lt;t:titlepage t:element="article" t:wrapper="fo:block"
+             font-family="{$title.font.family}"&gt;
+
+  &lt;t:titlepage-content t:side="recto"
+             text-align="center"&gt;</programlisting>
+
+
+
+
+
+</listitem> 
+<listitem>
+<para>Support use of <tag>titleabbrev</tag> in running
+headers and footers.
+</para>
+</listitem> 
+<listitem>
+<para>Added (experimental) <parameter>xref.with.number.and.title</parameter>
+parameter to enable number/title cross references even when the
+default would
+be just the number.
+</para>
+</listitem> 
+<listitem>
+<para>Generate <tag>part</tag> ToCs if they're requested.
+</para>
+</listitem> 
+<listitem>
+<para>Use proportional-column-width() in header/footer tables.
+</para>
+</listitem> 
+<listitem>
+<para>Handle alignment correctly when <tag>screenshot</tag>
+wraps a graphic in a <tag>figure</tag>.
+</para>
+</listitem> 
+<listitem>
+<para>Format <tag>chapter</tag> and <tag>appendix</tag>
+cross references consistently.
+</para>
+</listitem> 
+<listitem>
+<para>Attempt to support tables with multiple <tag>tgroup</tag>s
+in FO.
+</para>
+</listitem> 
+<listitem>
+<para>Output <tag>fo:table-columns</tag> in
+<tag>simplelist</tag> tables.
+</para>
+</listitem> 
+<listitem>
+<para>Use <filename>titlepage.templates.xml</filename> for
+<tag>indexdiv</tag> and <tag>glossdiv</tag> formatting.
+</para>
+</listitem> 
+<listitem>
+<para>Improve support for new bibliography elements.
+</para>
+</listitem> 
+<listitem>
+<para>Added
+<parameter>footnote.number.format</parameter>,
+<parameter>table.footnote.number.format</parameter>,
+<parameter>footnote.number.symbols</parameter>, and
+<parameter>table.footnote.number.symbols</parameter> for better control of
+footnote markers.
+</para>
+</listitem> 
+<listitem>
+<para>Added <tag>glossentry.show.acronyms</tag>.
+</para>
+</listitem> 
+<listitem>
+<para>Suppress the draft-mode page masters when
+<parameter>draft-mode</parameter> is <quote>no</quote>.
+</para>
+</listitem> 
+<listitem>
+<para>Make blank pages verso not recto. D'Oh!
+</para>
+</listitem> 
+<listitem>
+<para>Improved formatting of <tag>ulink</tag> footnotes.
+</para>
+</listitem> 
+<listitem>
+<para>Fixed bugs in graphic width/height calculations.
+</para>
+</listitem> 
+<listitem>
+<para>Added class attributes to inline elements.
+</para>
+</listitem> 
+<listitem>
+<para>Don't add <quote>.html</quote> to the filenames identified
+with the <quote>dbhtml</quote> PI.
+</para>
+</listitem> 
+<listitem>
+<para>Don't force a ToC when sections contain <tag>refentry</tag>s.
+</para>
+</listitem> 
+<listitem>
+<para>Make section title sizes a function of the
+<parameter>body.master.size</parameter>.
+</para>
+</listitem> 
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1592">
+<title>Release 1.59.2</title> 
+<itemizedlist>
+<para>The 1.59.2 fixes an FO bug in the page masters that causes FOP to fail.
+</para> 
+<listitem>
+<para>Removed the region-name from the region-body of blank pages. There's
+no reason to give the body of blank pages a unique name and doing so causes
+a mismatch that FOP detects.
+</para>
+</listitem> 
+<listitem>
+<para>Output IDs for the first paragraphs in listitems.
+</para>
+</listitem> 
+<listitem>
+<para>Fixed some small bugs in the handling of page numbers in double-sided mode.
+</para>
+</listitem> 
+<listitem>
+<para>Attempt to prevent duplicated IDs from being produced when
+<tag class="attribute">endterm</tag> on <tag>xref</tag> points
+to something with nested structure.
+</para>
+</listitem> 
+<listitem>
+<para>Fix aligment problems in <tag>equation</tag>s.
+</para>
+</listitem> 
+<listitem>
+<para>Output the type attribute on unordered lists (UL) in HTML only if
+the css.decoration parameter is true.
+</para>
+</listitem> 
+<listitem>
+<para>Calculate the font size in formal.title.properties so that it's 1.2 times
+the base font size, not a fixed "12pt".
+</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1591">
+<title>Release 1.59.1</title> 
+<itemizedlist>
+<para>The 1.59.1 fixes a few bugs.
+</para> 
+<listitem>
+<para>Added Bulgarian localization.
+</para>
+</listitem> 
+<listitem>
+<para>Indexing improvements; localize book indexes to books but allow setindex
+to index an entire set.
+</para>
+</listitem> 
+<listitem>
+<para>The default value for rowsep and colsep is now "1" as per CALS.
+</para>
+</listitem> 
+<listitem>
+<para>Added support for <tag>titleabbrev</tag> (use them for cross
+references).
+</para>
+</listitem> 
+<listitem>
+<para>Improvements to <tag>mediaobject</tag> for selecting print vs. online
+images.
+</para>
+</listitem> 
+<listitem>
+<para>Added seperate property sets for <tag>figure</tag>s,
+<tag>example</tag>s, <tag>equation</tag>s, <tag>tables</tag>s,
+and <tag>procedure</tag>s.
+</para>
+</listitem> 
+<listitem>
+<para>Make <tag>lineannotation</tag>s italic.
+</para>
+</listitem> 
+<listitem>
+<para>Support <tag class="attribute">xrefstyle</tag> attribute.
+</para>
+</listitem> 
+<listitem>
+<para>Make <tag class="attribute">endterm</tag> on
+<tag>xref</tag> higher priority than
+<tag class="attribute">xreflabel</tag> target.
+</para>
+</listitem> 
+<listitem>
+<para>Glossary formatting improvements.
+</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1580">
+<title>Release 1.58.0</title> 
+<itemizedlist>
+<para>The 1.58.0 adds some initial support for extensions in xsltproc, adds
+a few features, and fixes bugs.
+</para> 
+<listitem>
+<para>This release contains the first attempt at extension support for xsltproc.
+The only extension available to date is the one that adjusts table column widths.
+Run <filename>extensions/xsltproc/python/xslt.py</filename>.
+</para>
+</listitem> 
+<listitem>
+<para>Fixed bugs in calculation of adjusted column widths to correct for rounding
+errors.
+</para>
+</listitem> 
+<listitem>
+<para>Support nested <tag>refsection</tag> elements correctly.
+</para>
+</listitem> 
+<listitem>
+<para>Reworked <literal>gentext.template</literal> to take context into consideration.
+The name of elements in localization files is now an xpath-like context list, not
+just a simple name.
+</para>
+</listitem> 
+<listitem>
+<para>Made some improvements to bibliography formatting.
+</para>
+</listitem> 
+<listitem>
+<para>Improved graphical formatting of admonitions.
+</para>
+</listitem> 
+<listitem>
+<para>Added support for <tag>entrytbl</tag>.
+</para>
+</listitem> 
+<listitem>
+<para>Support spanning index terms.
+</para>
+</listitem> 
+<listitem>
+<para>Support <tag>bibliosource</tag>.
+</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1570">
+<title>Release 1.57.0</title>
+<itemizedlist>
+<listitem>
+<para>The 1.57.0 release wasn't documented here. Oops.
+</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="V1560">
+<title>Release 1.56.0</title> 
+<itemizedlist>
+<para>The 1.56.0 release fixes bugs.
+</para> 
+<listitem>
+<para>Reworked chunking. <emphasis>This will break all existing customizations
+layers that change the chunking algorithm.</emphasis> If you're customizing chunking,
+look at the new <quote>content</quote> parameter that's passed to
+<literal>process-chunk-element</literal> and friends.
+</para>
+</listitem> 
+<listitem>
+<para>Support continued and inherited numeration in <tag>orderedlist</tag>
+formatting for FOs.
+</para>
+</listitem> 
+<listitem>
+<para>Added Thai localization.
+</para>
+</listitem> 
+<listitem>
+<para>Tweaked stylesheet documentation stylesheets to link to TDG and
+the parameter references.
+</para>
+</listitem> 
+<listitem>
+<para>Allow title on tables of contents ("Table of Contents") to be optional.
+Added new keyword to <parameter>generate.toc</parameter>.
+Support tables of contents on sections.
+</para>
+</listitem> 
+<listitem>
+<para>Made separate parameters for table borders and table cell borders:
+<parameter>table.frame.border.color</parameter>,
+<parameter>table.frame.border.style</parameter>,
+<parameter>table.frame.border.thickness</parameter>,
+<parameter>table.cell.border.color</parameter>,
+<parameter>table.cell.border.style</parameter>, and
+<parameter>table.cell.border.thickness</parameter>.
+</para>
+</listitem> 
+<listitem>
+<para>Suppress formatting of <quote>endofrange</quote> <tag>indexterm</tag>s.
+This is only half-right. They should generate a range, but I haven't figured out how
+to do that yet.
+</para>
+</listitem> 
+<listitem>
+<para>Support <tag>revdescription</tag>. (Bug #582192)
+</para>
+</listitem> 
+<listitem>
+<para>Added <parameter>default.float.class</parameter> and fixed figure
+floats. (Bug #497603)
+</para>
+</listitem> 
+<listitem>
+<para>Fixed formatting of <tag>sbr</tag> in FOs.
+</para>
+</listitem> 
+<listitem>
+<para>Added context to the <quote>missing template</quote> error message.
+</para>
+</listitem> 
+<listitem>
+<para>Process <tag>arg</tag> correctly in a <tag>group</tag>.
+(Bug #605150)
+</para>
+</listitem> 
+<listitem>
+<para>Removed 'keep-with-next' from <parameter>formal.title.properties</parameter>
+attribute set now that the stylesheets support the option of putting
+such titles below the object. Now the $placement value determines if
+'keep-with-next' or 'keep-with-previous' is used in the title block.
+</para>
+</listitem> 
+<listitem>
+<para>Wrap <quote>url()</quote> around external-destinations when appropriate.
+</para>
+</listitem> 
+<listitem>
+<para>Fixed typo in compact list spacing. (Bug #615464)
+</para>
+</listitem> 
+<listitem>
+<para>Removed spurious hash in anchor name. (Bug #617717)
+</para>
+</listitem> 
+<listitem>
+<para>Address is now displayed verbatim on title pages. (Bug #618600)
+</para>
+</listitem> 
+<listitem>
+<para>The <parameter>bridgehead.in.toc</parameter> parameter is now properly
+supported.
+</para>
+</listitem> 
+<listitem>
+<para>Improved effectiveness of HTML cleanup by increasing the number
+of places where it is used. Improve use of HTML cleanup in XHTML stylesheets.
+</para>
+</listitem> 
+<listitem>
+<para>Support table of contents for <tag>appendix</tag> in
+<tag>article</tag>. (Bug #596599)
+</para>
+</listitem> 
+<listitem>
+<para>Don't duplicate footnotes in <tag>bibliography</tag>s and
+<tag>glossary</tag>s. (Bug #583282)
+</para>
+</listitem> 
+<listitem>
+<para>Added <parameter>default.image.width</parameter>. (Bug #516859)
+</para>
+</listitem> 
+<listitem>
+<para>Totally reworked <tag>funcsynopsis</tag> code; it now
+supports a 'tabular' presentation style for 'wide' prototypes; see
+<parameter>funcsynopsis.tabular.threshold</parameter>. (HTML only
+right now, I think, FO support, uh, real soon now.)
+</para>
+</listitem> 
+<listitem>
+<para>Reworked support for difference marking; toned down the colors a bit
+and added a <quote>system.head.content</quote> template so that the diff CSS
+wasn't overriding <quote>user.head.content</quote>. (Bug #610660)
+</para>
+</listitem> 
+<listitem>
+<para>Added call to the <quote>*.head.content</quote> elements when writing
+out long description chunks.
+</para>
+</listitem> 
+<listitem>
+<para>Make sure <tag>legalnotice</tag> link is correct even when
+chunking to a different <parameter>base.dir</parameter>.
+</para>
+</listitem> 
+<listitem>
+<para>Use CSS to set viewport characteristics if
+<parameter>css.decoration</parameter> is non-zero, use div instead of p for making
+graphic a block element; make figure <tag>title</tag>s the
+default alt
+text for images in a <tag>figure</tag>.</para>
+</listitem> 
+<listitem>
+<para>Added space-after to <parameter>list.block.spacing</parameter>.
+</para>
+</listitem> 
+<listitem>
+<para>Reworked section.level template to give <quote>correct</quote> answer
+instead of being off by one.
+</para>
+</listitem> 
+<listitem>
+<para>When processing tables, use the <tag class="attribute">tabstyle</tag>
+attribute as the division class.
+</para>
+</listitem> 
+<listitem>
+<para>Fixed bug in <filename>html2xhtml.xsl</filename> that was causing the
+XHTML chunker to output HTML instead of XHTML.
+</para>
+</listitem>
+</itemizedlist> 
+</sect1>
+<sect1 xml:id="VOlder">
+  <title>Older releases</title>
+  <para>To view the release notes for older releases, see <uri xlink:href="http://cvs.sourceforge.net/viewcvs.py/docbook/xsl/RELEASE-NOTES.xml">http://cvs.sourceforge.net/viewcvs.py/docbook/xsl/RELEASE-NOTES.xml</uri>. Be
+  aware that there were no release notes for releases prior to the
+  1.50.0 release.</para>
+</sect1>
+<sect1 xml:id="dot0">
+  <title>About dot-zero releases</title>
+    <para>DocBook Project “dot zero” releases should be
+    considered <emphasis>experimental</emphasis> and are always
+    followed by stable “dot one plus” releases, usually within
+    two or three weeks. Please help to ensure the stability of
+    “dot one plus” releases by carefully testing each
+    “dot zero” release and reporting back about any
+    problems you find. </para>
+    <para>It is not recommended that you use a “dot zero”
+    release in a production system. Instead, you should wait for
+    the “dot one” or greater versions.</para>
+  </sect1>
+</article>
diff --git a/applications/content/template/docbook/REVISION b/applications/content/template/docbook/REVISION
new file mode 100644
index 0000000..1437369
--- /dev/null
+++ b/applications/content/template/docbook/REVISION
@@ -0,0 +1 @@
+9401
diff --git a/applications/content/template/docbook/TODO b/applications/content/template/docbook/TODO
new file mode 100644
index 0000000..1f421cd
--- /dev/null
+++ b/applications/content/template/docbook/TODO
@@ -0,0 +1,23 @@
+The "to do" list for the DocBook Project XSL stylesheets is
+maintained at Sourceforge. To view a list of all open feature
+requests for the stylesheets:
+
+  http://docbook.sf.net/tracker/xsl/requests
+
+To submit a feature request against the stylesheets:
+
+  http://docbook.sf.net/tracker/submit/request
+
+To do a full-text search of all DocBook Project issues:
+
+  http://docbook.sf.net/tracker/search
+
+Discussion about the DocBook Project XSL stylesheets takes place
+on the docbook-apps mailing list:
+
+  http://wiki.docbook.org/topic/DocBookAppsMailingList
+
+Real-time discussion takes place on IRC:
+
+  http://wiki.docbook.org/topic/DocBookIrcChannel
+  irc://irc.freenode.net/docbook
diff --git a/applications/content/template/docbook/VERSION b/applications/content/template/docbook/VERSION
new file mode 100644
index 0000000..d94ded5
--- /dev/null
+++ b/applications/content/template/docbook/VERSION
@@ -0,0 +1,115 @@
+<?xml version='1.0'?> <!-- -*- nxml -*- vim: set foldlevel=2: -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:fm="http://freshmeat.net/projects/freshmeat-submit/"
+  xmlns:sf="http://sourceforge.net/"
+  xmlns:dyn="http://exslt.org/dynamic"
+  xmlns:saxon="http://icl.com/saxon"
+  exclude-result-prefixes="fm sf"
+  version='1.0'>
+
+<xsl:param name="get"/>
+<xsl:param name="VERSION" select="string(document('')//fm:Version[1])"/>
+<xsl:param name="Tag" select="concat('V',translate(string(document('')//fm:Version[1]),'.',''))"/>
+<xsl:param name="DistroTitle" select="string(document('')//fm:Branch[1])"/>
+<xsl:param name="sf-relid" select="0"/>
+
+<xsl:param name="DistroName">docbook-xsl</xsl:param>
+<xsl:param name="PreviousRelease">1.77.0</xsl:param>
+<xsl:param name="PreviousReleaseRevision">9371</xsl:param>
+<xsl:param name="Revision">$Revision: 9399 $</xsl:param>
+<xsl:param name="VersionFileURL">$URL: https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/xsl/VERSION $</xsl:param>
+
+<xsl:strip-space elements="fm:*"/>
+
+<fm:project>
+  <fm:Project>DocBook</fm:Project>
+  <fm:Branch>XSL Stylesheets</fm:Branch>
+  <!-- * set/keep fm:version as N.NN.N-pre except for official releases, -->
+  <!-- * then after the release, revert it to N.NN.N-pre & check back in -->
+  <fm:Version>1.77.1</fm:Version>
+<!--
+  <fm:License>MIT/X Consortium License</fm:License>
+-->
+  <fm:Release-Focus>
+<!-- * Initial freshmeat announcement -->
+<!-- * Documentation -->
+<!-- * Code cleanup -->
+<!-- * Minor feature enhancements  -->
+* Major feature enhancements 
+<!-- * Minor bugfixes  -->
+<!-- * Major bugfixes -->
+<!-- * Minor security fixes -->
+<!-- * Major security fixes -->
+  </fm:Release-Focus>
+  <fm:Home-Page-URL>http://sourceforge.net/projects/docbook/</fm:Home-Page-URL>
+  <fm:Gzipped-Tar-URL>http://prdownloads.sourceforge.net/docbook/{DISTRONAME-VERSION}.tar.gz?download</fm:Gzipped-Tar-URL>
+  <fm:Zipped-Tar-URL>http://prdownloads.sourceforge.net/docbook/{DISTRONAME-VERSION}.zip?download</fm:Zipped-Tar-URL>
+  <fm:Bzipped-Tar-URL>http://prdownloads.sourceforge.net/docbook/{DISTRONAME-VERSION}.bz2?download</fm:Bzipped-Tar-URL>
+  <fm:Changelog-URL>http://sourceforge.net/project/shownotes.php?release_id={SFRELID}</fm:Changelog-URL>
+  <fm:CVS-URL>http://docbook.svn.sourceforge.net/viewvc/docbook/</fm:CVS-URL>
+  <fm:Mailing-List-URL>http://lists.oasis-open.org/archives/docbook-apps/</fm:Mailing-List-URL>
+  <fm:Changes>This is a release with bugfixes and some enhancements.</fm:Changes>
+</fm:project>
+
+<xsl:template match="/" priority="-100">
+  <xsl:choose>
+    <xsl:when test="$get = 'Tag'">
+      <xsl:value-of select="$Tag"/>
+    </xsl:when>
+    <xsl:when test="$get = 'PreviousRelease'">
+      <xsl:value-of select="$PreviousRelease"/>
+    </xsl:when>
+    <xsl:when test="$get = 'PreviousReleaseRevision'">
+      <xsl:value-of select="$PreviousReleaseRevision"/>
+    </xsl:when>
+    <xsl:when test="$get = 'DistroTitle'">
+      <xsl:value-of select="$DistroTitle"/>
+    </xsl:when>
+    <xsl:when test="$get = 'VERSION'">
+      <xsl:value-of select="$VERSION"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$sf-relid = 0">
+        <xsl:message terminate="yes">
+         <xsl:text>You must specify the sf-relid as a parameter.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+      <xsl:apply-templates select="//fm:project"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="fm:project">
+  <xsl:apply-templates/>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:apply-templates select="fm:Changes" mode="text"/>
+</xsl:template>
+
+<xsl:template match="fm:Changes"/>
+
+<xsl:template match="fm:Gzipped-Tar-URL|fm:Zipped-Tar-URL|fm:Bzipped-Tar-URL">
+  <xsl:value-of select="local-name(.)"/>
+  <xsl:text>: </xsl:text>
+  <xsl:value-of select="substring-before(., '{DISTRONAME-VERSION}')"/>
+  <xsl:value-of select="concat($DistroName, '-', $VERSION)"/>
+  <xsl:value-of select="substring-after(., '{DISTRONAME-VERSION}')"/>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="fm:Changelog-URL">
+  <xsl:value-of select="local-name(.)"/>
+  <xsl:text>: </xsl:text>
+  <xsl:value-of select="substring-before(., '{SFRELID}')"/>
+  <xsl:value-of select="$sf-relid"/>
+  <xsl:value-of select="substring-after(., '{SFRELID}')"/>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="fm:*">
+  <xsl:value-of select="local-name(.)"/>
+  <xsl:text>: </xsl:text>
+  <xsl:value-of select="normalize-space(.)"/>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/VERSION.xsl b/applications/content/template/docbook/VERSION.xsl
new file mode 100644
index 0000000..995fb5a
--- /dev/null
+++ b/applications/content/template/docbook/VERSION.xsl
@@ -0,0 +1,115 @@
+<?xml version='1.0'?> <!-- -*- nxml -*- vim: set foldlevel=2: -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:fm="http://freshmeat.net/projects/freshmeat-submit/"
+  xmlns:sf="http://sourceforge.net/"
+  xmlns:dyn="http://exslt.org/dynamic"
+  xmlns:saxon="http://icl.com/saxon"
+  exclude-result-prefixes="fm sf"
+  version='1.0'>
+
+<xsl:param name="get"/>
+<xsl:param name="VERSION" select="string(document('')//fm:Version[1])"/>
+<xsl:param name="Tag" select="concat('V',translate(string(document('')//fm:Version[1]),'.',''))"/>
+<xsl:param name="DistroTitle" select="string(document('')//fm:Branch[1])"/>
+<xsl:param name="sf-relid" select="0"/>
+
+<xsl:param name="DistroName">docbook-xsl</xsl:param>
+<xsl:param name="PreviousRelease">1.77.0</xsl:param>
+<xsl:param name="PreviousReleaseRevision">9371</xsl:param>
+<xsl:param name="Revision">$Revision$</xsl:param>
+<xsl:param name="VersionFileURL">$URL$</xsl:param>
+
+<xsl:strip-space elements="fm:*"/>
+
+<fm:project>
+  <fm:Project>DocBook</fm:Project>
+  <fm:Branch>XSL Stylesheets</fm:Branch>
+  <!-- * set/keep fm:version as N.NN.N-pre except for official releases, -->
+  <!-- * then after the release, revert it to N.NN.N-pre & check back in -->
+  <fm:Version>1.77.1</fm:Version>
+<!--
+  <fm:License>MIT/X Consortium License</fm:License>
+-->
+  <fm:Release-Focus>
+<!-- * Initial freshmeat announcement -->
+<!-- * Documentation -->
+<!-- * Code cleanup -->
+<!-- * Minor feature enhancements  -->
+* Major feature enhancements 
+<!-- * Minor bugfixes  -->
+<!-- * Major bugfixes -->
+<!-- * Minor security fixes -->
+<!-- * Major security fixes -->
+  </fm:Release-Focus>
+  <fm:Home-Page-URL>http://sourceforge.net/projects/docbook/</fm:Home-Page-URL>
+  <fm:Gzipped-Tar-URL>http://prdownloads.sourceforge.net/docbook/{DISTRONAME-VERSION}.tar.gz?download</fm:Gzipped-Tar-URL>
+  <fm:Zipped-Tar-URL>http://prdownloads.sourceforge.net/docbook/{DISTRONAME-VERSION}.zip?download</fm:Zipped-Tar-URL>
+  <fm:Bzipped-Tar-URL>http://prdownloads.sourceforge.net/docbook/{DISTRONAME-VERSION}.bz2?download</fm:Bzipped-Tar-URL>
+  <fm:Changelog-URL>http://sourceforge.net/project/shownotes.php?release_id={SFRELID}</fm:Changelog-URL>
+  <fm:CVS-URL>http://docbook.svn.sourceforge.net/viewvc/docbook/</fm:CVS-URL>
+  <fm:Mailing-List-URL>http://lists.oasis-open.org/archives/docbook-apps/</fm:Mailing-List-URL>
+  <fm:Changes>This is a release with bugfixes and some enhancements.</fm:Changes>
+</fm:project>
+
+<xsl:template match="/" priority="-100">
+  <xsl:choose>
+    <xsl:when test="$get = 'Tag'">
+      <xsl:value-of select="$Tag"/>
+    </xsl:when>
+    <xsl:when test="$get = 'PreviousRelease'">
+      <xsl:value-of select="$PreviousRelease"/>
+    </xsl:when>
+    <xsl:when test="$get = 'PreviousReleaseRevision'">
+      <xsl:value-of select="$PreviousReleaseRevision"/>
+    </xsl:when>
+    <xsl:when test="$get = 'DistroTitle'">
+      <xsl:value-of select="$DistroTitle"/>
+    </xsl:when>
+    <xsl:when test="$get = 'VERSION'">
+      <xsl:value-of select="$VERSION"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$sf-relid = 0">
+        <xsl:message terminate="yes">
+         <xsl:text>You must specify the sf-relid as a parameter.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+      <xsl:apply-templates select="//fm:project"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="fm:project">
+  <xsl:apply-templates/>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:apply-templates select="fm:Changes" mode="text"/>
+</xsl:template>
+
+<xsl:template match="fm:Changes"/>
+
+<xsl:template match="fm:Gzipped-Tar-URL|fm:Zipped-Tar-URL|fm:Bzipped-Tar-URL">
+  <xsl:value-of select="local-name(.)"/>
+  <xsl:text>: </xsl:text>
+  <xsl:value-of select="substring-before(., '{DISTRONAME-VERSION}')"/>
+  <xsl:value-of select="concat($DistroName, '-', $VERSION)"/>
+  <xsl:value-of select="substring-after(., '{DISTRONAME-VERSION}')"/>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="fm:Changelog-URL">
+  <xsl:value-of select="local-name(.)"/>
+  <xsl:text>: </xsl:text>
+  <xsl:value-of select="substring-before(., '{SFRELID}')"/>
+  <xsl:value-of select="$sf-relid"/>
+  <xsl:value-of select="substring-after(., '{SFRELID}')"/>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="fm:*">
+  <xsl:value-of select="local-name(.)"/>
+  <xsl:text>: </xsl:text>
+  <xsl:value-of select="normalize-space(.)"/>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/assembly/README b/applications/content/template/docbook/assembly/README
new file mode 100644
index 0000000..2ef9fed
--- /dev/null
+++ b/applications/content/template/docbook/assembly/README
@@ -0,0 +1,195 @@
+DocBook Assembly Stylesheets
+==============================
+bobs@sagehill.net
+
+This directory provides XSL stylesheets for working with
+DocBook assemblies.  It is intended to enable working with
+<topic> and <assembly> elements, as defined in DocBook 5.1
+and later.
+
+This kit currently supports most features of an assembly.
+See the "Unsupported Features" section below for details
+of what is not currently supported.  These more advanced
+features will be supported as it is further developed.
+
+
+Content of this directory:
+--------------------------
+topic-maker-chunk.xsl        - stylesheet to modularize an existing DB5 document.
+topic-maker.xsl              - imported by topic-maker-chunk.xsl.
+assemble.xsl                 - stylesheet to process an <assembly> into a document.
+
+
+The toolkit consists of an assemble.xsl XSL stylesheet
+to process a DocBook <assembly> element to convert it
+to an assembled DocBook 5 document ready to be formatted.
+This stylesheet will enable users to structure a book from
+modular files.
+
+To make it easy to initially create a modular book, this
+kit also includes a topic-maker-chunk.xsl XSL stylesheet
+to break apart an existing DocBook 5 book into modular
+files, and also create the associated <assembly> document.
+Then you can run the assemble.xsl stylesheet to put it
+back together as a single DocBook document.
+
+
+To create an assembly and topic files from a book or article document
+=======================================================================
+
+If you have an existing DocBook 5 book or article document,
+you can convert it to an assembly and a collection of
+modular topic files.  If you want to convert a DocBook 4
+document, you must first convert it to version 5.
+
+For example, to disassemble a DocBook 5 book document named book.xml:
+
+xsltproc --xinclude \
+         --stringparam assembly.filename myassembly.xml \
+         --stringparam base.dir topics/  \
+         topic-maker-chunk.xsl  \
+         mybook.xml
+
+This command will result in a master assembly file named
+'myassembly.xml' with a root element of <assembly>, containing
+a single <structure> element. It will also break up the
+content of the book into modular chunks that are output
+to the 'topics/' subdirectory as specified in the 'base.dir'
+parameter.
+
+Options
+----------
+The name of the assembly file is set by the stylesheet param
+named 'assembly.filename', which should include the filename suffix.
+
+Modular files are output to the directory location specified
+by the 'base.dir' parameter.  If you want them in the current
+directory, then don't set that  param.
+
+By default the assembly element is output to the current
+directory, *not* into base.dir with the modular files.
+The <resources> element in the assembly has its xml:base
+attribute set to the value of 'base.dir', so that it is
+added to the paths to the modular files when processed.
+If you set the stylesheet param 'manifest.in.base.dir'
+to 1, then the assembly file is created in the base.dir
+directory and the xml:base attribute is omitted (since
+they are together in the same directory).
+
+If you want the assembly file in 'base.dir' instead of
+the current directory, then set the stylesheet param
+'manifest.in.base.dir' to 1.
+
+The stylesheet chunks a document into modules at the
+same boundaries as the chunking XHTML stylesheet, because
+it reuses many of the chunking stylesheet templates.
+You can alter the chunking behavior with the same options
+as for XHTML chunking.
+
+For example, the stylesheet will chunk sections into topics
+down to section level 3 by default.  To change that level,
+change the stylesheet param 'chunk.section.depth' to
+another value.
+
+Finer control of chunking can be achieved by using
+the <?dbhtml stop-chunking?> processing instruction in
+the source file.
+
+Many modular elements retain their original element name,
+such as glossary, bibliography, index, and such.  By default, the
+stylesheet converts chapter, article, preface and section elements
+into <topic> modules.  To change that list of
+converted element names, alter the stylesheet param named
+'topic.elements'.  If that param is empty, then no elements
+will be converted to <topic>, so they will all retain their
+original element names.
+
+Modular filenames use the same naming scheme as the chunking
+XHTML stylesheet, and supports the same file naming options such as
+the param 'use.id.as.filename', which is set to 1 by default.
+Note that the stylesheet param 'html.ext' is set to '.xml'
+because it is producing modular XML files, not HTML files.
+
+Root element conversion
+------------------------
+By default, the root element of the original document is 
+also converted to a module, and <structure> gets a resourceref
+attribute to reference it.  If you set the stylesheet
+param 'root.as.resourceref' to zero, then the root element
+is handled differently, as described as follows.
+
+If the structure element does not have a resourcref
+attribute, the root element is constructed rather
+than copied from a resource. The structure element must
+have a renderas attribute (or its child output element must
+have such) to select the output root element name.  
+
+Any content between the root element start tag and the
+first module is put into a resource with the original
+root element.  To pull this content in, the first
+module in the structure points to this resource but
+uses a contentonly="yes" attribute. The effect of
+that attribute is to pull in all content *except*
+the root element of that resource.
+
+In general, if you have content that does not logically
+have its own container element, you can put the content
+into a suitable container element and then deselect the
+container element upon assembly with the contentonly="yes"
+attribute.  That attribute can also be used to avoid
+pulling in a resource's xml:id when you want to change it.
+
+
+To process an <assembly> into an assembled DocBook document
+==============================================================
+
+To convert an <assembly> and its associated modular
+files into a single DocBook document, process
+your assembly document with the assemble.xsl stylesheet.
+You should then be able to process the resulting
+document with a DocBook XSL formatting stylesheet.
+
+
+
+
+Useful params in assemble.xsl
+-----------------------------
+The $root.default.renderas param sets the name of the
+root element of the assembled document, if it is not
+otherwise specified with @renderas.  Its default value
+is 'book'.
+
+The $topic.default.renderas param sets the name of the
+output element for any topic element included in the
+assembly, if it is not otherwise specified with
+@renderas.  It's default value is 'section'.
+
+The $structure.id param lets you specify at runtime
+the id value of the structure you want to reassemble.
+This is only necessary if you have more than one
+structure element in your assembly.
+
+The $output.type param also lets you specify at runtime
+which structure element to process.  In this case,
+the value should match on an @type attribute on
+the structure element.
+
+The $output.format param lets you specify at runtime
+which of several possible output formats are being generated.
+The param value is compared to the @format
+attribute on <output> elements to select specific properties
+for a module.
+
+
+
+Unsupported Features
+-----------------------
+
+The transforms and transform elements are currently ignored
+by the assembly stylesheet.
+
+The relationships and relationship elements are currently
+ignored by the assembly stylesheet.
+
+The filterin and filterout elements are not currently
+supported.
diff --git a/applications/content/template/docbook/assembly/assemble.xsl b/applications/content/template/docbook/assembly/assemble.xsl
new file mode 100644
index 0000000..16c46b6
--- /dev/null
+++ b/applications/content/template/docbook/assembly/assemble.xsl
@@ -0,0 +1,655 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+  xmlns:exsl="http://exslt.org/common"
+  xmlns:xlink="http://www.w3.org/1999/xlink"
+  xmlns="http://docbook.org/ns/docbook"
+  exclude-result-prefixes="exsl d xlink"
+  version="1.0">
+
+<!-- $Id$ -->
+
+<xsl:preserve-space elements="*"/>
+<xsl:strip-space elements="d:assembly d:structure d:module d:resources d:resource"/>
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+
+
+<xsl:param name="docbook.version">5.0</xsl:param>
+<xsl:param name="root.default.renderas">book</xsl:param>
+<xsl:param name="topic.default.renderas">section</xsl:param>
+
+<xsl:param name="output.type" select="''"/>
+<xsl:param name="output.format" select="''"/>
+<!-- May be used to select one structure among several to  process -->
+<xsl:param name="structure.id" select="''"/>
+
+
+<!-- default mode is to copy all content nodes -->
+<xsl:template match="node()|@*" priority="-5" mode="copycontent">
+  <xsl:param name="omittitles"/>
+    <xsl:copy>
+      <xsl:apply-templates select="@*" mode="copycontent"/>
+      <xsl:apply-templates mode="copycontent">
+        <xsl:with-param name="omittitles" select="$omittitles"/>
+      </xsl:apply-templates>
+   </xsl:copy>
+</xsl:template>
+
+<xsl:template match="processing-instruction('oxygen')"/>
+
+<!-- skip assembly info elements -->
+<xsl:template match="d:info"/>
+
+<!-- including for structure info element -->
+<xsl:template match="d:structure/d:info"/>
+
+<!-- handle omittitles, but only top level title of resource -->
+<xsl:template match="/*/d:title 
+                   | /*/d:info/d:title 
+                   | /*/d:subtitle  
+                   | /*/d:info/d:subtitle
+                   | /*/d:titleabbrev  
+                   | /*/d:info/d:titleabbrev"
+              mode="copycontent">
+  <xsl:param name="omittitles"/>
+
+  <xsl:choose>
+    <xsl:when test="$omittitles = 'yes' or $omittitles = 'true' or $omittitles = '1'">
+      <!-- omit it -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy>
+        <xsl:apply-templates select="@*" mode="copycontent"/>
+        <xsl:apply-templates mode="copycontent"/>
+      </xsl:copy>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- handled in a mode -->
+<xsl:template match="d:resources"/>
+<xsl:template match="d:output|d:filterin|d:filterout|d:merge|d:revhistory"/>
+<xsl:template match="d:output|d:filterin|d:filterout|d:merge|d:revhistory"
+              mode="copycontent"/>
+
+<xsl:template match="d:assembly">
+  <xsl:choose>
+    <xsl:when test="$structure.id != ''">
+      <xsl:variable name="id.structure" select="key('id', $structure.id)"/>
+      <xsl:choose>
+        <xsl:when test="count($id.structure) = 0">
+          <xsl:message terminate="yes">
+            <xsl:text>ERROR: structure.id param set to '</xsl:text>
+            <xsl:value-of select="$structure.id"/>
+            <xsl:text>' but no element with that xml:id exists in assembly.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:when test="local-name($id.structure) != 'structure'">
+          <xsl:message terminate="yes">
+            <xsl:text>ERROR: structure.id param set to '</xsl:text>
+            <xsl:value-of select="$structure.id"/>
+            <xsl:text>' but no structure with that xml:id exists in assembly.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="key('id', $structure.id)"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$output.type != '' and not(d:structure[@type = $output.type])">
+      <xsl:message terminate="yes">
+        <xsl:text>ERROR: output.type param set to '</xsl:text>
+        <xsl:value-of select="$output.type"/>
+        <xsl:text> but no structure element has that type attribute. Exiting.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:when test="$output.type != '' and d:structure[@type = $output.type]">
+      <xsl:apply-templates select="d:structure[@type = $output.type][1]"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- otherwise process the first structure -->
+      <xsl:apply-templates select="d:structure[1]"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="d:structure[not(@resourceref)]">
+
+  <xsl:variable name="output.root.element">
+    <xsl:apply-templates select="." mode="compute.element.name"/>
+  </xsl:variable>
+
+  <xsl:element name="{$output.root.element}" namespace="http://docbook.org/ns/docbook">
+    <xsl:attribute name="version">
+      <xsl:value-of select="$docbook.version"/>
+    </xsl:attribute>
+    <xsl:copy-of select="@xml:id"/>
+
+    <xsl:apply-templates> 
+      <xsl:with-param name="parent" select="$output.root.element"/>
+    </xsl:apply-templates>
+
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="d:glossary|d:bibliography|d:index|d:toc">
+   <xsl:param name="parent" select="''"/>
+  <xsl:apply-templates select="." mode="copycontent"/>
+</xsl:template>
+
+<xsl:template match="d:title|d:titleabbrev|d:subtitle">
+   <xsl:param name="parent" select="''"/>
+  <xsl:apply-templates select="." mode="copycontent"/>
+</xsl:template>
+
+<!-- module without a resourceref creates an element -->
+<xsl:template match="d:module[not(@resourceref)]">
+  <xsl:param name="parent" select="''"/>
+  
+  <xsl:variable name="module" select="."/>
+
+  <xsl:variable name="element.name">
+    <xsl:apply-templates select="." mode="compute.element.name"/>
+  </xsl:variable>
+
+  <xsl:element name="{$element.name}" namespace="http://docbook.org/ns/docbook">
+    <xsl:choose>
+      <!-- Use the module's xml:id if it has one -->
+      <xsl:when test="@xml:id">
+        <xsl:attribute name="xml:id">
+          <xsl:value-of select="@xml:id"/>
+        </xsl:attribute>
+      </xsl:when>
+    </xsl:choose>
+
+    <xsl:call-template name="merge.info">
+      <xsl:with-param name="merge.element" select="$module/d:merge"/>
+    </xsl:call-template>
+      
+    <xsl:apply-templates>
+      <xsl:with-param name="parent" select="$element.name"/>
+    </xsl:apply-templates>
+
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="compute.renderas">
+  <xsl:variable name="output.value">
+    <xsl:call-template name="compute.output.value">
+      <xsl:with-param name="property">renderas</xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:value-of select="$output.value"/>
+
+</xsl:template>
+
+<!-- This utility template is passed a value for output format
+     and the name of a property and computes the value
+     of the property from output children of context element -->
+<xsl:template name="compute.output.value">
+  <xsl:param name="property" select="''"/>
+  
+  <xsl:variable name="default.format"
+                select="ancestor::d:structure/@defaultformat"/>
+
+  <xsl:variable name="property.value">
+    <xsl:choose>
+      <!-- if a child output element has a format that matches the param value 
+           and it has that property -->
+      <!-- The format attribute can be multivalued -->
+      <xsl:when test="$output.format != '' and 
+                      d:output[contains(concat(' ', normalize-space(@format), ' '),  
+                                 $output.format)]
+                        [@*[local-name() = $property]]">
+        <xsl:value-of 
+           select="d:output[contains(concat(' ', normalize-space(@format), ' '), 
+                              $output.format)]
+                           [@*[local-name() = $property]][1]
+                           /@*[local-name() = $property]"/>
+      </xsl:when>
+      <!-- try with the structure's @defaultformat -->
+      <xsl:when test="$default.format != '' and 
+                      d:output[contains(concat(' ', normalize-space(@format), ' '),  
+                                 $default.format)]
+                        [@*[local-name() = $property]]">
+        <xsl:value-of 
+           select="d:output[contains(concat(' ', normalize-space(@format), ' '), 
+                              $default.format)]
+                           [@*[local-name() = $property]][1]
+                           /@*[local-name() = $property]"/>
+      </xsl:when>
+      <!-- try the first output with the property-->
+      <xsl:when test="d:output[@*[local-name() = $property]]">
+        <xsl:value-of 
+           select="d:output[@*[local-name() = $property]][1]
+                           /@*[local-name() = $property]"/>
+      </xsl:when>
+      <!-- and try the module element itself -->
+      <xsl:when test="@*[local-name() = $property]">
+        <xsl:value-of 
+           select="@*[local-name() = $property]"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:value-of select="$property.value"/>
+</xsl:template>
+
+<xsl:template match="d:module[not(@resourceref)]" mode="compute.element.name">
+
+  <xsl:variable name="renderas">
+    <xsl:call-template name="compute.renderas"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string-length($renderas) != 0">
+      <xsl:value-of select="$renderas"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>ERROR: cannot determine output element name for </xsl:text>
+        <xsl:text>module with no @resourceref and no @renderas. Exiting.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="d:module[@resourceref]" mode="compute.element.name">
+  <xsl:param name="ref.name" select="''"/>
+
+  <xsl:variable name="renderas">
+    <xsl:call-template name="compute.renderas"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string-length($renderas) != 0">
+      <xsl:value-of select="$renderas"/>
+    </xsl:when>
+    <xsl:when test="$ref.name = 'topic' and 
+                    string-length($topic.default.renderas) != 0"> 
+      <xsl:value-of select="$topic.default.renderas"/>
+    </xsl:when>
+    <xsl:when test="string-length($ref.name) != 0">
+      <xsl:value-of select="$ref.name"/> 
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>ERROR: cannot determine output element name for </xsl:text>
+        <xsl:text>@resourceref="</xsl:text>
+        <xsl:value-of select="@resourceref"/>
+        <xsl:text>". Exiting.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="d:structure" mode="compute.element.name">
+  <xsl:param name="ref.name" select="''"/>
+
+  <xsl:variable name="renderas">
+    <xsl:call-template name="compute.renderas"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string-length($renderas) != 0">
+      <xsl:value-of select="$renderas"/>
+    </xsl:when>
+    <xsl:when test="string-length($ref.name) != 0">
+      <xsl:value-of select="$ref.name"/> 
+    </xsl:when>
+    <xsl:when test="string-length($root.default.renderas) != 0">
+      <xsl:value-of select="$root.default.renderas"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>ERROR: cannot determine output element name for </xsl:text>
+        <xsl:text>structure with no @renderas and no $root.default.renderas. </xsl:text>
+        <xsl:text>Exiting.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="d:module[@resourceref] | d:structure[@resourceref]">
+  <xsl:param name="parent" select="''"/>
+
+  <xsl:variable name="module" select="."/>
+  <xsl:variable name="resourceref" select="@resourceref"/>
+  <xsl:variable name="resource" select="key('id', $resourceref)"/>
+
+  <xsl:choose>
+    <xsl:when test="not($resource)">
+      <xsl:message terminate="yes">
+        <xsl:text>ERROR: no xml:id matches @resourceref = '</xsl:text>
+        <xsl:value-of select="$resourceref"/>
+        <xsl:text>'.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:when test="not($resource/self::d:resource)">
+      <xsl:message terminate="yes">
+        <xsl:text>ERROR: xml:id matching @resourceref = '</xsl:text>
+        <xsl:value-of select="$resourceref"/>
+        <xsl:text> is not a resource element'.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:variable name="fileref.att" select="$resource/@fileref"/>
+  <xsl:variable name="fileref">
+    <xsl:choose>
+      <xsl:when test="$resource/ancestor::d:resources/@xml:base">
+        <xsl:value-of 
+            select="concat($resource/ancestor::d:resources[@xml:base][1]/@xml:base,
+                                 '/', $fileref.att)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$fileref.att"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string-length($fileref) = 0">
+      <!-- A resource without @fileref gets its content copied -->
+      <xsl:apply-templates select="$resource/node()" mode="copycontent"/>
+    </xsl:when>
+    <xsl:otherwise>
+
+      <xsl:variable name="ref.content" select="document($fileref,/)"/>
+    
+      <xsl:variable name="ref.root" select="$ref.content/*[1]"/>
+
+      <xsl:if test="count($ref.root) = 0">
+        <xsl:message terminate="yes">
+          <xsl:text>ERROR: @fileref = '</xsl:text>
+          <xsl:value-of select="$fileref"/>
+          <xsl:text>' has no content or is unresolved.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+    
+      <xsl:variable name="element.name">
+        <xsl:apply-templates select="." mode="compute.element.name">
+          <xsl:with-param name="ref.name" select="local-name($ref.content/*[1])"/>
+        </xsl:apply-templates>
+      </xsl:variable>
+
+      <xsl:variable name="omittitles.property">
+        <xsl:call-template name="compute.output.value">
+          <xsl:with-param name="property">omittitles</xsl:with-param>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:variable name="contentonly.property">
+        <xsl:call-template name="compute.output.value">
+          <xsl:with-param name="property">contentonly</xsl:with-param>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:choose>
+        <xsl:when test="$contentonly.property = 'true' or 
+                        $contentonly.property = 'yes' or
+                        $contentonly.property = '1'">
+          <xsl:apply-templates select="$ref.content/*[1]/node()" mode="copycontent">
+            <xsl:with-param name="omittitles" select="$omittitles.property"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <!-- use xsl:copy if using the ref element to get its namespaces -->
+        <xsl:when test="$element.name = local-name($ref.root)">
+          <!-- must use for-each to set context node for xsl:copy -->
+          <xsl:for-each select="$ref.root">
+            <xsl:copy>
+              <xsl:copy-of select="@*[not(name = 'xml:id')]"/>
+              <xsl:choose>
+                <!-- Use the module's xml:id if it has one -->
+                <xsl:when test="$module/@xml:id">
+                  <xsl:attribute name="xml:id">
+                    <xsl:value-of select="$module/@xml:id"/>
+                  </xsl:attribute>
+                </xsl:when>
+                <!-- otherwise use the resource's id -->
+                <xsl:otherwise>
+                  <xsl:copy-of select="@xml:id"/>
+                </xsl:otherwise>
+              </xsl:choose>
+          
+              <xsl:call-template name="merge.info">
+                <xsl:with-param name="merge.element" select="$module/d:merge"/>
+                <xsl:with-param name="ref.content" select="$ref.content"/>
+                <xsl:with-param name="omittitles" select="$omittitles.property"/>
+              </xsl:call-template>
+      
+              <!-- copy through all but titles, which moved to info -->
+              <xsl:apply-templates select="node()
+                       [not(local-name() = 'title') and
+                        not(local-name() = 'subtitle') and
+                        not(local-name() = 'info') and
+                        not(local-name() = 'titleabbrev')]" mode="copycontent"/>
+          
+              <xsl:apply-templates select="$module/node()"> 
+                <xsl:with-param name="parent" select="$element.name"/>
+              </xsl:apply-templates>
+            </xsl:copy>
+          </xsl:for-each>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- create the element instead of copying it -->
+          <xsl:element name="{$element.name}" namespace="http://docbook.org/ns/docbook">
+            <xsl:copy-of select="$ref.content/*[1]/@*[not(name = 'xml:id')]"/>
+            <xsl:choose>
+              <!-- Use the module's xml:id if it has one -->
+              <xsl:when test="@xml:id">
+                <xsl:attribute name="xml:id">
+                  <xsl:value-of select="@xml:id"/>
+                </xsl:attribute>
+              </xsl:when>
+              <!-- otherwise use the resource's id -->
+              <xsl:when test="$ref.content/*[1]/@xml:id">
+                <xsl:attribute name="xml:id">
+                  <xsl:value-of select="$ref.content/*[1]/@xml:id"/>
+                </xsl:attribute>
+              </xsl:when>
+            </xsl:choose>
+        
+            <xsl:call-template name="merge.info">
+              <xsl:with-param name="merge.element" select="d:merge"/>
+              <xsl:with-param name="ref.content" select="$ref.content"/>
+              <xsl:with-param name="omittitles" select="$omittitles.property"/>
+            </xsl:call-template>
+    
+            <!-- copy through all but titles, which moved to info -->
+            <xsl:apply-templates select="$ref.content/*[1]/node()
+                     [not(local-name() = 'title') and
+                      not(local-name() = 'subtitle') and
+                      not(local-name() = 'info') and
+                      not(local-name() = 'titleabbrev')]" mode="copycontent"/>
+        
+            <xsl:apply-templates> 
+              <xsl:with-param name="parent" select="$element.name"/>
+            </xsl:apply-templates>
+          </xsl:element>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="merge.info">
+  <xsl:param name="merge.element" select="NOTANODE"/>
+  <xsl:param name="ref.content" select="NOTANODE"/>
+  <xsl:param name="omittitles"/> 
+
+  <!-- a merge element may use resourceref as well as literal content -->
+  <!-- any literal content overrides the merge resourceref content -->
+  <xsl:variable name="merge.ref.content">
+    <xsl:if test="$merge.element/@resourceref">
+      <xsl:variable name="resourceref" select="$merge.element/@resourceref"/>
+      <xsl:variable name="resource" select="key('id', $resourceref)"/>
+
+      <xsl:choose>
+        <xsl:when test="not($resource)">
+          <xsl:message terminate="yes">
+            <xsl:text>ERROR: no xml:id matches @resourceref = '</xsl:text>
+            <xsl:value-of select="$resourceref"/>
+            <xsl:text>'.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:when test="not($resource/self::d:resource)">
+          <xsl:message terminate="yes">
+            <xsl:text>ERROR: xml:id matching @resourceref = '</xsl:text>
+            <xsl:value-of select="$resourceref"/>
+            <xsl:text> is not a resource element'.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+      </xsl:choose>
+
+      <xsl:variable name="fileref.att" select="$resource/@fileref"/>
+
+      <xsl:variable name="fileref">
+        <xsl:choose>
+          <xsl:when test="$resource/ancestor::d:resources/@xml:base">
+            <xsl:value-of 
+                select="concat($resource/ancestor::d:resources[@xml:base][1]/@xml:base,
+                               '/', $fileref.att)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$fileref.att"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:if test="string-length($fileref) != 0">
+        <xsl:copy-of select="document($fileref,/)"/>
+      </xsl:if>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="merge.ref.info" 
+                select="exsl:node-set($merge.ref.content)//d:info[1]"/>
+
+  <xsl:if test="$merge.element/@resourceref and not($merge.ref.info)">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: merge element with resourceref '</xsl:text>
+      <xsl:value-of select="$merge.element/@resourceref"/>
+      <xsl:text>' must point to something with an info element.'</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="omittitles.boolean">
+    <xsl:choose>
+      <xsl:when test="$omittitles = 'yes' or $omittitles = 'true' or omittitles = '1'">
+        <xsl:value-of select="1"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="0"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <!-- output info if there is any -->
+  <xsl:if test="$merge.element/node() or 
+                $merge.ref.info/node() or
+                $ref.content/*/d:info/node() or
+                $ref.content/*/d:title[$omittitles.boolean = 0] or
+                $ref.content/*/d:subtitle[$omittitles.boolean = 0] or
+                $ref.content/*/d:titleabbrev[$omittitles.boolean = 0]">
+
+    <xsl:variable name="ref.info" select="$ref.content/*/d:info"/>
+    <xsl:variable name="ref.title" select="$ref.content/*/d:title"/>
+    <xsl:variable name="ref.subtitle" select="$ref.content/*/d:subtitle"/>
+    <xsl:variable name="ref.titleabbrev" select="$ref.content/*/d:titleabbrev"/>
+    <xsl:variable name="ref.info.title" select="$ref.content/*/d:info/d:title"/>
+    <xsl:variable name="ref.info.subtitle" select="$ref.content/*/d:info/d:subtitle"/>
+    <xsl:variable name="ref.info.titleabbrev" select="$ref.content/*/d:info/d:titleabbrev"/>
+
+    <info>
+      <!-- First copy through any merge attributes and elements and comments -->
+      <xsl:copy-of select="$merge.element/@*[not(local-name(.) = 'resourceref')]"/>
+
+      <!-- And copy any resource info attributes not in merge-->
+      <xsl:for-each select="$ref.info/@*">
+        <xsl:variable name="resource.att" select="local-name(.)"/>
+        <xsl:choose>
+          <xsl:when test="$merge.element/@*[local-name(.) = $resource.att]">
+            <!-- do nothing because overridden -->
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- copy through if not overridden -->
+            <xsl:copy-of select="."/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:for-each>
+
+      <!-- Copy through the merge children as they have highest priority -->
+      <xsl:copy-of select="$merge.element/node()"/>
+
+      <!-- and copy through those merge resource elements not in merge element -->
+      <xsl:for-each select="$merge.ref.info/node()">
+        <xsl:variable name="resource.node" select="local-name(.)"/>
+        <xsl:choose>
+          <xsl:when test="$merge.element/node()[local-name(.) = $resource.node]">
+            <!-- do nothing because overridden -->
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- copy through -->
+            <xsl:copy-of select="."/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:for-each>
+
+      <!-- And copy any module's resource info node not in merge or merge.ref -->
+      <xsl:for-each select="$ref.info/node() | 
+                            $ref.title[$omittitles.boolean = 0] |
+                            $ref.subtitle[$omittitles.boolean = 0] |
+                            $ref.titleabbrev[$omittitles.boolean = 0] |
+                            $ref.info.title[$omittitles.boolean = 0] |
+                            $ref.info.subtitle[$omittitles.boolean = 0] |
+                            $ref.info.titleabbrev[$omittitles.boolean = 0]">
+        <xsl:variable name="resource.node" select="local-name(.)"/>
+        <xsl:choose>
+          <xsl:when test="$merge.element/node()[local-name(.) = $resource.node]">
+            <!-- do nothing because overridden -->
+          </xsl:when>
+          <xsl:when test="$merge.ref.info/node()[local-name(.) = $resource.node]">
+            <!-- do nothing because overridden -->
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- copy through -->
+            <xsl:copy-of select="."/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:for-each>
+
+    </info>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="d:relationships">
+  <xsl:message>
+    <xsl:text>WARNING: the &lt;relationships&gt; element is not currently </xsl:text>
+    <xsl:text>supported by this stylesheet.</xsl:text>
+  </xsl:message>
+</xsl:template>
+
+<xsl:template match="d:transforms">
+  <xsl:message>
+    <xsl:text>WARNING: the &lt;transforms&gt; element is not currently </xsl:text>
+    <xsl:text>supported by this stylesheet.</xsl:text>
+  </xsl:message>
+</xsl:template>
+
+<xsl:template match="d:filterin">
+  <xsl:message>
+    <xsl:text>WARNING: the &lt;filterin&gt; element is not currently </xsl:text>
+    <xsl:text>supported by this stylesheet.</xsl:text>
+  </xsl:message>
+</xsl:template>
+
+<xsl:template match="d:filterout">
+  <xsl:message>
+    <xsl:text>WARNING: the &lt;filterin&gt; element is not currently </xsl:text>
+    <xsl:text>supported by this stylesheet.</xsl:text>
+  </xsl:message>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/assembly/schema/assembly51b7.rnc b/applications/content/template/docbook/assembly/schema/assembly51b7.rnc
new file mode 100644
index 0000000..0a26290
--- /dev/null
+++ b/applications/content/template/docbook/assembly/schema/assembly51b7.rnc
@@ -0,0 +1,11035 @@
+namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
+namespace ctrl = "http://nwalsh.com/xmlns/schema-control/"
+default namespace db = "http://docbook.org/ns/docbook"
+namespace html = "http://www.w3.org/1999/xhtml"
+namespace mml = "http://www.w3.org/1998/Math/MathML"
+namespace rng = "http://relaxng.org/ns/structure/1.0"
+namespace s = "http://purl.oclc.org/dsdl/schematron"
+namespace svg = "http://www.w3.org/2000/svg"
+namespace xlink = "http://www.w3.org/1999/xlink"
+
+# This file is part of DocBook Assembly V5.1b7
+# 
+# Copyright 2008-2011 HaL Computer Systems, Inc.,
+# O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+# Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+# Organization for the Advancement of Structured Information
+# Standards (OASIS).
+# 
+# Permission to use, copy, modify and distribute the DocBook schema
+# and its accompanying documentation for any purpose and without fee
+# is hereby granted in perpetuity, provided that the above copyright
+# notice and this paragraph appear in all copies. The copyright
+# holders make no representation about the suitability of the schema
+# for any purpose. It is provided "as is" without expressed or implied
+# warranty.
+# 
+# If you modify the DocBook schema in any way, label your schema as a
+# variant of DocBook. See the reference documentation
+# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook)
+# for more information.
+# 
+# Please direct all questions, bug reports, or suggestions for changes
+# to the docbook@lists.oasis-open.org mailing list. For more
+# information, see http://www.oasis-open.org/docbook/.
+# 
+# ======================================================================
+div {
+  db._any.attribute =
+    
+    ## Any attribute, including any attribute in any namespace.
+    attribute * { text }
+  db._any =
+    
+    ## Any element from almost any namespace
+    element * - (db:* | html:*) {
+      (db._any.attribute | text | db._any)*
+    }
+}
+db.arch.attribute =
+  
+  ## Designates the computer or chip architecture to which the element applies
+  attribute arch { text }
+db.audience.attribute =
+  
+  ## Designates the intended audience to which the element applies, for example, system administrators, programmers, or new users.
+  attribute audience { text }
+db.condition.attribute =
+  
+  ## provides a standard place for application-specific effectivity
+  attribute condition { text }
+db.conformance.attribute =
+  
+  ## Indicates standards conformance characteristics of the element
+  attribute conformance { text }
+db.os.attribute =
+  
+  ## Indicates the operating system to which the element is applicable
+  attribute os { text }
+db.revision.attribute =
+  
+  ## Indicates the editorial revision to which the element belongs
+  attribute revision { text }
+db.security.attribute =
+  
+  ## Indicates something about the security level associated with the element to which it applies
+  attribute security { text }
+db.userlevel.attribute =
+  
+  ## Indicates the level of user experience for which the element applies
+  attribute userlevel { text }
+db.vendor.attribute =
+  
+  ## Indicates the computer vendor to which the element applies.
+  attribute vendor { text }
+db.wordsize.attribute =
+  
+  ## Indicates the word size (width in bits) of the computer architecture to which the element applies
+  attribute wordsize { text }
+db.effectivity.attributes =
+  db.arch.attribute?
+  & db.audience.attribute?
+  & db.condition.attribute?
+  & db.conformance.attribute?
+  & db.os.attribute?
+  & db.revision.attribute?
+  & db.security.attribute?
+  & db.userlevel.attribute?
+  & db.vendor.attribute?
+  & db.wordsize.attribute?
+db.endterm.attribute =
+  
+  ## Points to the element whose content is to be used as the text of the link
+  attribute endterm { xsd:IDREF }
+db.linkend.attribute =
+  
+  ## Points to an internal link target by identifying the value of its xml:id attribute
+  attribute linkend { xsd:IDREF }
+db.linkends.attribute =
+  
+  ## Points to one or more internal link targets by identifying the value of their xml:id attributes
+  attribute linkends { xsd:IDREFS }
+db.xlink.href.attribute =
+  
+  ## Identifies a link target with a URI
+  attribute xlink:href { xsd:anyURI }
+db.xlink.simple.type.attribute =
+  
+  ## Identifies the XLink link type
+  attribute xlink:type {
+    
+    ## An XLink simple link type
+    "simple"
+  }
+db.xlink.role.attribute =
+  
+  ## Identifies the XLink role of the link
+  attribute xlink:role { xsd:anyURI }
+db.xlink.arcrole.attribute =
+  
+  ## Identifies the XLink arcrole of the link
+  attribute xlink:arcrole { xsd:anyURI }
+db.xlink.title.attribute =
+  
+  ## Identifies the XLink title of the link
+  attribute xlink:title { text }
+db.xlink.show.enumeration =
+  
+  ## An application traversing to the ending resource should load it in a new window, frame, pane, or other relevant presentation context.
+  "new"
+  | 
+    ## An application traversing to the ending resource should load the resource in the same window, frame, pane, or other relevant presentation context in which the starting resource was loaded.
+    "replace"
+  | 
+    ## An application traversing to the ending resource should load its presentation in place of the presentation of the starting resource.
+    "embed"
+  | 
+    ## The behavior of an application traversing to the ending resource is unconstrained by XLink. The application should look for other markup present in the link to determine the appropriate behavior.
+    "other"
+  | 
+    ## The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.
+    "none"
+db.xlink.show.attribute =
+  
+  ## Identifies the XLink show behavior of the link
+  attribute xlink:show { db.xlink.show.enumeration }
+db.xlink.actuate.enumeration =
+  
+  ## An application should traverse to the ending resource immediately on loading the starting resource.
+  "onLoad"
+  | 
+    ## An application should traverse from the starting resource to the ending resource only on a post-loading event triggered for the purpose of traversal.
+    "onRequest"
+  | 
+    ## The behavior of an application traversing to the ending resource is unconstrained by this specification. The application should look for other markup present in the link to determine the appropriate behavior.
+    "other"
+  | 
+    ## The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.
+    "none"
+db.xlink.actuate.attribute =
+  
+  ## Identifies the XLink actuate behavior of the link
+  attribute xlink:actuate { db.xlink.actuate.enumeration }
+db.xlink.simple.link.attributes =
+  db.xlink.simple.type.attribute?
+  & db.xlink.href.attribute?
+  & db.xlink.role.attribute?
+  & db.xlink.arcrole.attribute?
+  & db.xlink.title.attribute?
+  & db.xlink.show.attribute?
+  & db.xlink.actuate.attribute?
+db.xlink.attributes =
+  db.xlink.simple.link.attributes
+  | (db.xlink.extended.link.attributes
+     | db.xlink.locator.link.attributes
+     | db.xlink.arc.link.attributes
+     | db.xlink.resource.link.attributes
+     | db.xlink.title.link.attributes)
+db.xml.id.attribute =
+  
+  ## Identifies the unique ID value of the element
+  attribute xml:id { xsd:ID }
+db.version.attribute =
+  
+  ## Specifies the DocBook version of the element and its descendants
+  attribute version { text }
+db.xml.lang.attribute =
+  
+  ## Specifies the natural language of the element and its descendants
+  attribute xml:lang { text }
+db.xml.base.attribute =
+  
+  ## Specifies the base URI of the element and its descendants
+  attribute xml:base { xsd:anyURI }
+db.remap.attribute =
+  
+  ## Provides the name or similar semantic identifier assigned to the content in some previous markup scheme
+  attribute remap { text }
+db.xreflabel.attribute =
+  
+  ## Provides the text that is to be generated for a cross reference to the element
+  attribute xreflabel { text }
+db.xrefstyle.attribute =
+  
+  ## Specifies a keyword or keywords identifying additional style information
+  attribute xrefstyle { text }
+db.revisionflag.enumeration =
+  
+  ## The element has been changed.
+  "changed"
+  | 
+    ## The element is new (has been added to the document).
+    "added"
+  | 
+    ## The element has been deleted.
+    "deleted"
+  | 
+    ## Explicitly turns off revision markup for this element.
+    "off"
+db.revisionflag.attribute =
+  
+  ## Identifies the revision status of the element
+  attribute revisionflag { db.revisionflag.enumeration }
+db.dir.enumeration =
+  
+  ## Left-to-right text
+  "ltr"
+  | 
+    ## Right-to-left text
+    "rtl"
+  | 
+    ## Left-to-right override
+    "lro"
+  | 
+    ## Right-to-left override
+    "rlo"
+db.dir.attribute =
+  
+  ## Identifies the direction of text in an element
+  attribute dir { db.dir.enumeration }
+db.common.base.attributes =
+  db.version.attribute?
+  & db.xml.lang.attribute?
+  & db.xml.base.attribute?
+  & db.remap.attribute?
+  & db.xreflabel.attribute?
+  & db.revisionflag.attribute?
+  & db.dir.attribute?
+  & db.effectivity.attributes
+db.common.attributes =
+  db.xml.id.attribute?
+  & db.common.base.attributes
+  & db.annotations.attribute?
+db.common.idreq.attributes =
+  db.xml.id.attribute
+  & db.common.base.attributes
+  & db.annotations.attribute?
+db.common.linking.attributes =
+  (db.linkend.attribute | db.xlink.attributes)?
+db.common.req.linking.attributes =
+  db.linkend.attribute | db.xlink.attributes
+db.common.data.attributes =
+  
+  ## Specifies the format of the data
+  attribute format { text }?,
+  (
+   ## Indentifies the location of the data by URI
+   attribute fileref { xsd:anyURI }
+   | 
+     ## Identifies the location of the data by external identifier (entity name)
+     attribute entityref { xsd:ENTITY })
+db.verbatim.continuation.enumeration =
+  
+  ## Line numbering continues from the immediately preceding element with the same name.
+  "continues"
+  | 
+    ## Line numbering restarts (begins at 1, usually).
+    "restarts"
+db.verbatim.continuation.attribute =
+  
+  ## Determines whether line numbering continues from the previous element or restarts.
+  attribute continuation { db.verbatim.continuation.enumeration }
+db.verbatim.linenumbering.enumeration =
+  
+  ## Lines are numbered.
+  "numbered"
+  | 
+    ## Lines are not numbered.
+    "unnumbered"
+db.verbatim.linenumbering.attribute =
+  
+  ## Determines whether lines are numbered.
+  attribute linenumbering { db.verbatim.linenumbering.enumeration }
+db.verbatim.startinglinenumber.attribute =
+  
+  ## Specifies the initial line number.
+  attribute startinglinenumber { xsd:integer }
+db.verbatim.language.attribute =
+  
+  ## Identifies the language (i.e. programming language) of the verbatim content.
+  attribute language { text }
+db.verbatim.xml.space.attribute =
+  
+  ## Can be used to indicate explicitly that whitespace in the verbatim environment is preserved. Whitespace must always be preserved in verbatim environments whether this attribute is specified or not.
+  attribute xml:space {
+    
+    ## Whitespace must be preserved.
+    "preserve"
+  }
+db.verbatim.common.attributes =
+  db.verbatim.continuation.attribute?
+  & db.verbatim.linenumbering.attribute?
+  & db.verbatim.startinglinenumber.attribute?
+  & db.verbatim.xml.space.attribute?
+db.verbatim.attributes =
+  db.verbatim.common.attributes & db.verbatim.language.attribute?
+db.label.attribute =
+  
+  ## Specifies an identifying string for presentation purposes
+  attribute label { text }
+db.width.characters.attribute =
+  
+  ## Specifies the width (in characters) of the element
+  attribute width { xsd:nonNegativeInteger }
+db.spacing.enumeration =
+  
+  ## The spacing should be "compact".
+  "compact"
+  | 
+    ## The spacing should be "normal".
+    "normal"
+db.spacing.attribute =
+  
+  ## Specifies (a hint about) the spacing of the content
+  attribute spacing { db.spacing.enumeration }
+db.pgwide.enumeration =
+  
+  ## The element should be rendered in the current text flow (with the flow column width).
+  "0"
+  | 
+    ## The element should be rendered across the full text page.
+    "1"
+db.pgwide.attribute =
+  
+  ## Indicates if the element is rendered across the column or the page
+  attribute pgwide { db.pgwide.enumeration }
+db.language.attribute =
+  
+  ## Identifies the language (i.e. programming language) of the content.
+  attribute language { text }
+db.performance.enumeration =
+  
+  ## The content describes an optional step or steps.
+  "optional"
+  | 
+    ## The content describes a required step or steps.
+    "required"
+db.performance.attribute =
+  
+  ## Specifies if the content is required or optional.
+  attribute performance { db.performance.enumeration }
+db.floatstyle.attribute =
+  
+  ## Specifies style information to be used when rendering the float
+  attribute floatstyle { text }
+db.width.attribute =
+  
+  ## Specifies the width of the element
+  attribute width { text }
+db.depth.attribute =
+  
+  ## Specifies the depth of the element
+  attribute depth { text }
+db.contentwidth.attribute =
+  
+  ## Specifies the width of the content rectangle
+  attribute contentwidth { text }
+db.contentdepth.attribute =
+  
+  ## Specifies the depth of the content rectangle
+  attribute contentdepth { text }
+db.scalefit.enumeration =
+  
+  ## False (do not scale-to-fit; anamorphic scaling may occur)
+  "0"
+  | 
+    ## True (scale-to-fit; anamorphic scaling is forbidden)
+    "1"
+db.scale.attribute =
+  
+  ## Specifies the scaling factor
+  attribute scale { xsd:positiveInteger }
+db.classid.attribute =
+  
+  ## Specifies a classid for a media object player
+  attribute classid { text }
+db.autoplay.attribute =
+  
+  ## Specifies the autoplay setting for a media object player
+  attribute autoplay { text }
+db.halign.enumeration =
+  
+  ## Centered horizontally
+  "center"
+  | 
+    ## Aligned horizontally on the specified character
+    "char"
+  | 
+    ## Fully justified (left and right margins or edges)
+    "justify"
+  | 
+    ## Left aligned
+    "left"
+  | 
+    ## Right aligned
+    "right"
+db.valign.enumeration =
+  
+  ## Aligned on the bottom of the region
+  "bottom"
+  | 
+    ## Centered vertically
+    "middle"
+  | 
+    ## Aligned on the top of the region
+    "top"
+db.biblio.class.enumeration =
+  
+  ## A digital object identifier.
+  "doi"
+  | 
+    ## An international standard book number.
+    "isbn"
+  | 
+    ## An international standard technical report number (ISO 10444).
+    "isrn"
+  | 
+    ## An international standard serial number.
+    "issn"
+  | 
+    ## An international standard text code.
+    "istc"
+  | 
+    ## A Library of Congress reference number.
+    "libraryofcongress"
+  | 
+    ## A publication number (an internal number or possibly organizational standard).
+    "pubsnumber"
+  | 
+    ## A Uniform Resource Identifier
+    "uri"
+db.biblio.class-enum.attribute =
+  
+  ## Identifies the kind of bibliographic identifier
+  attribute class { db.biblio.class.enumeration }?
+db.biblio.class-other.attribute =
+  
+  ## Identifies the nature of the non-standard bibliographic identifier
+  attribute otherclass { xsd:NMTOKEN }
+db.biblio.class-other.attributes =
+  
+  ## Identifies the kind of bibliographic identifier
+  attribute class {
+    
+    ## Indicates that the identifier is some 'other' kind.
+    "other"
+  }
+  & db.biblio.class-other.attribute
+db.biblio.class.attribute =
+  db.biblio.class-enum.attribute | db.biblio.class-other.attributes
+db.ubiq.inlines =
+  (db.inlinemediaobject
+   | db.remark
+   | db.link.inlines
+   | db.alt
+   | db.trademark
+   | # below, effectively the publishing inlines (as of 5.0)
+     db.abbrev
+   | db.acronym
+   | db.date
+   | db._emphasis
+   | db.footnote
+   | db.footnoteref
+   | db._foreignphrase
+   | db._phrase
+   | db._quote
+   | db.subscript
+   | db.superscript
+   | db.wordasword)
+  | db.annotation
+  | (db._firstterm | db._glossterm)
+  | db.indexterm
+  | db.coref
+db._text = (text | db.ubiq.inlines | db._phrase | db.replaceable)*
+db._title = db.title? & db.titleabbrev? & db.subtitle?
+db._title.req = db.title & db.titleabbrev? & db.subtitle?
+db._title.only = db.title? & db.titleabbrev?
+db._title.onlyreq = db.title & db.titleabbrev?
+db._info = (db._title, db.titleforbidden.info?) | db.info?
+db._info.title.req =
+  (db._title.req, db.titleforbidden.info?) | db.titlereq.info
+db._info.title.only =
+  (db._title.only, db.titleforbidden.info?) | db.titleonly.info
+db._info.title.onlyreq =
+  (db._title.onlyreq, db.titleforbidden.info?) | db.titleonlyreq.info
+db._info.title.forbidden = db.titleforbidden.info?
+db.all.inlines =
+  text | db.ubiq.inlines | db.general.inlines | db.domain.inlines
+db.general.inlines =
+  db.publishing.inlines
+  | db.product.inlines
+  | db.bibliography.inlines
+  | db.graphic.inlines
+  | db.indexing.inlines
+  | db.link.inlines
+db.domain.inlines =
+  db.technical.inlines
+  | db.math.inlines
+  | db.markup.inlines
+  | db.gui.inlines
+  | db.keyboard.inlines
+  | db.os.inlines
+  | db.programming.inlines
+  | db.error.inlines
+db.technical.inlines =
+  (db.replaceable | db.package | db.parameter)
+  | db.termdef
+  | db.nonterminal
+  | (db.systemitem | db.option | db.optional | db.property)
+db.product.inlines =
+  db.trademark
+  | (db.productnumber
+     | db.productname
+     | db.database
+     | db.application
+     | db.hardware)
+db.bibliography.inlines =
+  db.citation
+  | db.citerefentry
+  | db.citetitle
+  | db.citebiblioid
+  | db.author
+  | db.person
+  | db.personname
+  | db.org
+  | db.orgname
+  | db.editor
+  | db.jobtitle
+db.publishing.inlines =
+  (db.abbrev
+   | db.acronym
+   | db.date
+   | db.emphasis
+   | db.footnote
+   | db.footnoteref
+   | db.foreignphrase
+   | db.phrase
+   | db.quote
+   | db.subscript
+   | db.superscript
+   | db.wordasword)
+  | db.glossary.inlines
+  | db.coref
+db.graphic.inlines = db.inlinemediaobject
+db.indexing.inlines = notAllowed | db.indexterm
+db.link.inlines =
+  (db.xref | db.link | db.olink | db.anchor) | db.biblioref
+db.nopara.blocks =
+  (db.list.blocks
+   | db.formal.blocks
+   | db.informal.blocks
+   | db.publishing.blocks
+   | db.graphic.blocks
+   | db.technical.blocks
+   | db.verbatim.blocks
+   | db.bridgehead
+   | db.remark
+   | db.revhistory)
+  | db.indexterm
+  | db.synopsis.blocks
+  | db.admonition.blocks
+db.para.blocks = db.anchor | db.para | db.formalpara | db.simpara
+db.all.blocks = (db.nopara.blocks | db.para.blocks) | db.annotation
+db.formal.blocks = (db.example | db.figure | db.table) | db.equation
+db.informal.blocks =
+  (db.informalexample | db.informalfigure | db.informaltable)
+  | db.informalequation
+db.publishing.blocks =
+  db.sidebar | db.blockquote | db.address | db.epigraph
+db.graphic.blocks = db.mediaobject | db.screenshot
+db.technical.blocks =
+  db.procedure
+  | db.task
+  | (db.productionset | db.constraintdef)
+  | db.msgset
+db.list.blocks =
+  (db.itemizedlist
+   | db.orderedlist
+   | db.procedure
+   | db.simplelist
+   | db.variablelist
+   | db.segmentedlist)
+  | db.glosslist
+  | db.bibliolist
+  | db.calloutlist
+  | db.qandaset
+db.verbatim.blocks =
+  (db.screen | db.literallayout)
+  | (db.programlistingco | db.screenco)
+  | (db.programlisting | db.synopsis)
+db.info.extension = db._any
+db.info.elements =
+  (db.abstract
+   | db.address
+   | db.artpagenums
+   | db.author
+   | db.authorgroup
+   | db.authorinitials
+   | db.bibliocoverage
+   | db.biblioid
+   | db.bibliosource
+   | db.collab
+   | db.confgroup
+   | db.contractsponsor
+   | db.contractnum
+   | db.copyright
+   | db.cover
+   | db.date
+   | db.edition
+   | db.editor
+   | db.issuenum
+   | db.keywordset
+   | db.legalnotice
+   | db.mediaobject
+   | db.org
+   | db.orgname
+   | db.othercredit
+   | db.pagenums
+   | db.printhistory
+   | db.pubdate
+   | db.publisher
+   | db.publishername
+   | db.releaseinfo
+   | db.revhistory
+   | db.seriesvolnums
+   | db.subjectset
+   | db.volumenum
+   | db.info.extension)
+  | db.annotation
+  | db.extendedlink
+  | (db.bibliomisc | db.bibliomset | db.bibliorelation | db.biblioset)
+  | db.itermset
+  | (db.productname | db.productnumber)
+db.bibliographic.elements =
+  db.info.elements
+  | db.publishing.inlines
+  | db.citerefentry
+  | db.citetitle
+  | db.citebiblioid
+  | db.person
+  | db.personblurb
+  | db.personname
+  | db.subtitle
+  | db.title
+  | db.titleabbrev
+div {
+  db.title.role.attribute = attribute role { text }
+  db.title.attlist =
+    db.title.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.title =
+    
+    ## The text of the title of a section of a document or of a formal block-level element
+    element title { db.title.attlist, db.all.inlines* }
+}
+div {
+  db.titleabbrev.role.attribute = attribute role { text }
+  db.titleabbrev.attlist =
+    db.titleabbrev.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.titleabbrev =
+    
+    ## The abbreviation of a title
+    element titleabbrev { db.titleabbrev.attlist, db.all.inlines* }
+}
+div {
+  db.subtitle.role.attribute = attribute role { text }
+  db.subtitle.attlist =
+    db.subtitle.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.subtitle =
+    
+    ## The subtitle of a document
+    element subtitle { db.subtitle.attlist, db.all.inlines* }
+}
+div {
+  db.info.role.attribute = attribute role { text }
+  db.info.attlist = db.info.role.attribute? & db.common.attributes
+  db.info =
+    
+    ## A wrapper for information about a component or other block
+    element info { db.info.attlist, (db._title & db.info.elements*) }
+}
+div {
+  db.titlereq.info.role.attribute = attribute role { text }
+  db.titlereq.info.attlist =
+    db.titlereq.info.role.attribute? & db.common.attributes
+  db.titlereq.info =
+    
+    ## A wrapper for information about a component or other block with a required title
+    element info {
+      db.titlereq.info.attlist, (db._title.req & db.info.elements*)
+    }
+}
+div {
+  db.titleonly.info.role.attribute = attribute role { text }
+  db.titleonly.info.attlist =
+    db.titleonly.info.role.attribute? & db.common.attributes
+  db.titleonly.info =
+    
+    ## A wrapper for information about a component or other block with only a title
+    element info {
+      db.titleonly.info.attlist, (db._title.only & db.info.elements*)
+    }
+}
+div {
+  db.titleonlyreq.info.role.attribute = attribute role { text }
+  db.titleonlyreq.info.attlist =
+    db.titleonlyreq.info.role.attribute? & db.common.attributes
+  db.titleonlyreq.info =
+    
+    ## A wrapper for information about a component or other block with only a required title
+    element info {
+      db.titleonlyreq.info.attlist,
+      (db._title.onlyreq & db.info.elements*)
+    }
+}
+div {
+  db.titleforbidden.info.role.attribute = attribute role { text }
+  db.titleforbidden.info.attlist =
+    db.titleforbidden.info.role.attribute? & db.common.attributes
+  db.titleforbidden.info =
+    
+    ## A wrapper for information about a component or other block without a title
+    element info { db.titleforbidden.info.attlist, db.info.elements* }
+}
+div {
+  db.subjectset.role.attribute = attribute role { text }
+  db.subjectset.scheme.attribute =
+    
+    ## Identifies the controlled vocabulary used by this set's terms
+    attribute scheme { xsd:NMTOKEN }
+  db.subjectset.attlist =
+    db.subjectset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.subjectset.scheme.attribute?
+  db.subjectset =
+    
+    ## A set of terms describing the subject matter of a document
+    element subjectset { db.subjectset.attlist, db.subject+ }
+}
+div {
+  db.subject.role.attribute = attribute role { text }
+  db.subject.weight.attribute =
+    
+    ## Specifies a ranking for this subject relative to other subjects in the same set
+    attribute weight { text }
+  db.subject.attlist =
+    db.subject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.subject.weight.attribute?
+  db.subject =
+    
+    ## One of a group of terms describing the subject matter of a document
+    element subject { db.subject.attlist, db.subjectterm+ }
+}
+div {
+  db.subjectterm.role.attribute = attribute role { text }
+  db.subjectterm.attlist =
+    db.subjectterm.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.subjectterm =
+    
+    ## A term in a group of terms describing the subject matter of a document
+    element subjectterm { db.subjectterm.attlist, text }
+}
+div {
+  db.keywordset.role.attribute = attribute role { text }
+  db.keywordset.attlist =
+    db.keywordset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.keywordset =
+    
+    ## A set of keywords describing the content of a document
+    element keywordset { db.keywordset.attlist, db.keyword+ }
+}
+div {
+  db.keyword.role.attribute = attribute role { text }
+  db.keyword.attlist =
+    db.keyword.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.keyword =
+    
+    ## One of a set of keywords describing the content of a document
+    element keyword { db.keyword.attlist, text }
+}
+db.table.choice = notAllowed | db.cals.table | db.html.table
+db.informaltable.choice =
+  notAllowed | db.cals.informaltable | db.html.informaltable
+db.table = db.table.choice
+db.informaltable = db.informaltable.choice
+div {
+  db.procedure.role.attribute = attribute role { text }
+  db.procedure.attlist =
+    db.procedure.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.procedure.info = db._info.title.only
+  db.procedure =
+    
+    ## A list of operations to be performed in a well-defined sequence
+    element procedure {
+      db.procedure.attlist, db.procedure.info, db.all.blocks*, db.step+
+    }
+}
+div {
+  db.step.role.attribute = attribute role { text }
+  db.step.attlist =
+    db.step.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.performance.attribute?
+  db.step.info = db._info.title.only
+  # This content model is blocks*, step|stepalternatives, blocks* but
+  # expressed this way it avoids UPA issues in XSD and DTD versions
+  db.step =
+    
+    ## A unit of action in a procedure
+    element step {
+      db.step.attlist,
+      db.step.info,
+      ((db.all.blocks+,
+        ((db.substeps | db.stepalternatives), db.all.blocks*)?)
+       | ((db.substeps | db.stepalternatives), db.all.blocks*))
+    }
+}
+div {
+  db.stepalternatives.role.attribute = attribute role { text }
+  db.stepalternatives.attlist =
+    db.stepalternatives.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.performance.attribute?
+  db.stepalternatives.info = db._info.title.forbidden
+  db.stepalternatives =
+    
+    ## Alternative steps in a procedure
+    element stepalternatives {
+      db.stepalternatives.attlist, db.stepalternatives.info, db.step+
+    }
+}
+div {
+  db.substeps.role.attribute = attribute role { text }
+  db.substeps.attlist =
+    db.substeps.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.performance.attribute?
+  db.substeps =
+    
+    ## A wrapper for steps that occur within steps in a procedure
+    element substeps { db.substeps.attlist, db.step+ }
+}
+div {
+  db.sidebar.floatstyle.attribute = db.floatstyle.attribute
+  db.sidebar.role.attribute = attribute role { text }
+  db.sidebar.attlist =
+    db.sidebar.role.attribute?
+    & db.sidebar.floatstyle.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.sidebar.info = db._info
+  db.sidebar =
+    
+    ## A portion of a document that is isolated from the main narrative flow
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:sidebar"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:sidebar)"
+            "sidebar must not occur among the children or descendants of sidebar"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element sidebar {
+      db.sidebar.attlist, db.sidebar.info, db.all.blocks+
+    }
+}
+div {
+  db.abstract.role.attribute = attribute role { text }
+  db.abstract.attlist =
+    db.abstract.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.abstract.info = db._info.title.only
+  db.abstract =
+    
+    ## A summary
+    element abstract {
+      db.abstract.attlist, db.abstract.info, db.para.blocks+
+    }
+}
+div {
+  db.personblurb.role.attribute = attribute role { text }
+  db.personblurb.attlist =
+    db.personblurb.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.personblurb.info = db._info.title.only
+  db.personblurb =
+    
+    ## A short description or note about a person
+    element personblurb {
+      db.personblurb.attlist, db.personblurb.info, db.para.blocks+
+    }
+}
+div {
+  db.blockquote.role.attribute = attribute role { text }
+  db.blockquote.attlist =
+    db.blockquote.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.blockquote.info = db._info.title.only
+  db.blockquote =
+    
+    ## A quotation set off from the main text
+    element blockquote {
+      db.blockquote.attlist,
+      db.blockquote.info,
+      db.attribution?,
+      db.all.blocks+
+    }
+}
+div {
+  db.attribution.role.attribute = attribute role { text }
+  db.attribution.attlist =
+    db.attribution.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.attribution =
+    
+    ## The source of a block quote or epigraph
+    element attribution {
+      db.attribution.attlist,
+      (db._text
+       | db.person
+       | db.personname
+       | db.citetitle
+       | db.citation)*
+    }
+}
+div {
+  db.bridgehead.renderas.enumeration =
+    
+    ## Render as a first-level section
+    "sect1"
+    | 
+      ## Render as a second-level section
+      "sect2"
+    | 
+      ## Render as a third-level section
+      "sect3"
+    | 
+      ## Render as a fourth-level section
+      "sect4"
+    | 
+      ## Render as a fifth-level section
+      "sect5"
+  db.bridgehead.renderas-enum.attribute =
+    
+    ## Indicates how the bridge head should be rendered
+    attribute renderas { db.bridgehead.renderas.enumeration }?
+  db.bridgehead.renderas-other.attribute =
+    
+    ## Identifies the nature of the non-standard rendering
+    attribute otherrenderas { xsd:NMTOKEN }
+  db.bridgehead.renderas-other.attributes =
+    
+    ## Indicates how the bridge head should be rendered
+    attribute renderas {
+      
+      ## Identifies a non-standard rendering
+      "other"
+    }
+    & db.bridgehead.renderas-other.attribute
+  db.bridgehead.renderas.attribute =
+    db.bridgehead.renderas-enum.attribute
+    | db.bridgehead.renderas-other.attributes
+  db.bridgehead.role.attribute = attribute role { text }
+  db.bridgehead.attlist =
+    db.bridgehead.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.bridgehead.renderas.attribute?
+  db.bridgehead =
+    
+    ## A free-floating heading
+    element bridgehead { db.bridgehead.attlist, db.all.inlines* }
+}
+div {
+  db.remark.role.attribute = attribute role { text }
+  db.remark.attlist =
+    db.remark.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.remark =
+    
+    ## A remark (or comment) intended for presentation in a draft manuscript
+    element remark { db.remark.attlist, db.all.inlines* }
+}
+div {
+  db.epigraph.role.attribute = attribute role { text }
+  db.epigraph.attlist =
+    db.epigraph.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.epigraph.info = db._info.title.forbidden
+  db.epigraph =
+    
+    ## A short inscription at the beginning of a document or component
+    element epigraph {
+      db.epigraph.attlist,
+      db.epigraph.info,
+      db.attribution?,
+      (db.para.blocks | db.literallayout)+
+    }
+}
+div {
+  db.footnote.role.attribute = attribute role { text }
+  db.footnote.label.attribute =
+    
+    ## Identifies the desired footnote mark
+    attribute label { xsd:NMTOKEN }
+  db.footnote.attlist =
+    db.footnote.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.footnote.label.attribute?
+  db.footnote =
+    
+    ## A footnote
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:footnote)"
+            "footnote must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:sidebar)"
+            "sidebar must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:task)"
+            "task must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:epigraph)"
+            "epigraph must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element footnote { db.footnote.attlist, db.all.blocks+ }
+}
+div {
+  db.formalpara.role.attribute = attribute role { text }
+  db.formalpara.attlist =
+    db.formalpara.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.formalpara.info = db._info.title.onlyreq
+  db.formalpara =
+    
+    ## A paragraph with a title
+    element formalpara {
+      db.formalpara.attlist,
+      db.formalpara.info,
+      db.indexing.inlines*,
+      db.para
+    }
+}
+div {
+  db.para.role.attribute = attribute role { text }
+  db.para.attlist =
+    db.para.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.para.info = db._info.title.forbidden
+  db.para =
+    
+    ## A paragraph
+    element para {
+      db.para.attlist,
+      db.para.info,
+      (db.all.inlines | db.nopara.blocks)*
+    }
+}
+div {
+  db.simpara.role.attribute = attribute role { text }
+  db.simpara.attlist =
+    db.simpara.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.simpara.info = db._info.title.forbidden
+  db.simpara =
+    
+    ## A paragraph that contains only text and inline markup, no block elements
+    element simpara {
+      db.simpara.attlist, db.simpara.info, db.all.inlines*
+    }
+}
+div {
+  db.itemizedlist.role.attribute = attribute role { text }
+  db.itemizedlist.mark.attribute =
+    
+    ## Identifies the type of mark to be used on items in this list
+    attribute mark { xsd:NMTOKEN }
+  db.itemizedlist.attlist =
+    db.itemizedlist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.spacing.attribute?
+    & db.itemizedlist.mark.attribute?
+  db.itemizedlist.info = db._info.title.only
+  db.itemizedlist =
+    
+    ## A list in which each entry is marked with a bullet or other dingbat
+    element itemizedlist {
+      db.itemizedlist.attlist,
+      db.itemizedlist.info,
+      db.all.blocks*,
+      db.listitem+
+    }
+}
+div {
+  db.orderedlist.role.attribute = attribute role { text }
+  db.orderedlist.continuation.enumeration =
+    
+    ## Specifies that numbering should begin where the preceding list left off
+    "continues"
+    | 
+      ## Specifies that numbering should begin again at 1
+      "restarts"
+  db.orderedlist.continuation.attribute =
+    
+    ## Indicates how list numbering should begin relative to the immediately preceding list
+    attribute continuation { db.orderedlist.continuation.enumeration }
+  db.orderedlist.startingnumber.attribute =
+    
+    ## Specifies the initial line number.
+    attribute startingnumber { xsd:integer }
+  db.orderedlist.inheritnum.enumeration =
+    
+    ## Specifies that numbering should ignore list nesting
+    "ignore"
+    | 
+      ## Specifies that numbering should inherit from outer-level lists
+      "inherit"
+  db.orderedlist.inheritnum.attribute =
+    
+    ## Indicates whether or not item numbering should be influenced by list nesting
+    attribute inheritnum { db.orderedlist.inheritnum.enumeration }
+  db.orderedlist.numeration.enumeration =
+    
+    ## Specifies Arabic numeration (1, 2, 3, …)
+    "arabic"
+    | 
+      ## Specifies upper-case alphabetic numeration (A, B, C, …)
+      "upperalpha"
+    | 
+      ## Specifies lower-case alphabetic numeration (a, b, c, …)
+      "loweralpha"
+    | 
+      ## Specifies upper-case Roman numeration (I, II, III, …)
+      "upperroman"
+    | 
+      ## Specifies lower-case Roman numeration (i, ii, iii …)
+      "lowerroman"
+  db.orderedlist.numeration.attribute =
+    
+    ## Indicates the desired numeration
+    attribute numeration { db.orderedlist.numeration.enumeration }
+  db.orderedlist.attlist =
+    db.orderedlist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.spacing.attribute?
+    & (db.orderedlist.continuation.attribute
+       | db.orderedlist.startingnumber.attribute)?
+    & db.orderedlist.inheritnum.attribute?
+    & db.orderedlist.numeration.attribute?
+  db.orderedlist.info = db._info.title.only
+  db.orderedlist =
+    
+    ## A list in which each entry is marked with a sequentially incremented label
+    element orderedlist {
+      db.orderedlist.attlist,
+      db.orderedlist.info,
+      db.all.blocks*,
+      db.listitem+
+    }
+}
+div {
+  db.listitem.role.attribute = attribute role { text }
+  db.listitem.override.attribute =
+    
+    ## Specifies the keyword for the type of mark that should be used on this
+    ##  item, instead of the mark that would be used by default
+    attribute override { xsd:NMTOKEN }
+  db.listitem.attlist =
+    db.listitem.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.listitem.override.attribute?
+  db.listitem =
+    
+    ## A wrapper for the elements of a list item
+    element listitem { db.listitem.attlist, db.all.blocks+ }
+}
+div {
+  db.segmentedlist.role.attribute = attribute role { text }
+  db.segmentedlist.attlist =
+    db.segmentedlist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.segmentedlist.info = db._info.title.only
+  db.segmentedlist =
+    
+    ## A segmented list, a list of sets of elements
+    element segmentedlist {
+      db.segmentedlist.attlist,
+      db.segmentedlist.info,
+      db.segtitle+,
+      db.seglistitem+
+    }
+}
+div {
+  db.segtitle.role.attribute = attribute role { text }
+  db.segtitle.attlist =
+    db.segtitle.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.segtitle =
+    
+    ## The title of an element of a list item in a segmented list
+    element segtitle { db.segtitle.attlist, db.all.inlines* }
+}
+div {
+  db.seglistitem.role.attribute = attribute role { text }
+  db.seglistitem.attlist =
+    db.seglistitem.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.seglistitem =
+    
+    ## A list item in a segmented list
+    [
+      s:pattern [
+        name = "Cardinality of segments and titles"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:seglistitem"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "count(db:seg) = count(../db:segtitle)"
+            "The number of seg elements must be the same as the number of segtitle elements in the parent segmentedlist"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element seglistitem { db.seglistitem.attlist, db.seg+ }
+}
+div {
+  db.seg.role.attribute = attribute role { text }
+  db.seg.attlist =
+    db.seg.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.seg =
+    
+    ## An element of a list item in a segmented list
+    element seg { db.seg.attlist, db.all.inlines* }
+}
+div {
+  db.simplelist.role.attribute = attribute role { text }
+  db.simplelist.type.enumeration =
+    
+    ## A tabular presentation in row-major order.
+    "horiz"
+    | 
+      ## A tabular presentation in column-major order.
+      "vert"
+    | 
+      ## An inline presentation, usually a comma-delimited list.
+      "inline"
+  db.simplelist.type.attribute =
+    
+    ## Specifies the type of list presentation.
+    [ a:defaultValue = "vert" ]
+    attribute type { db.simplelist.type.enumeration }
+  db.simplelist.columns.attribute =
+    
+    ## Specifies the number of columns for horizontal or vertical presentation
+    attribute columns { xsd:integer }
+  db.simplelist.attlist =
+    db.simplelist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.simplelist.type.attribute?
+    & db.simplelist.columns.attribute?
+  db.simplelist =
+    
+    ## An undecorated list of single words or short phrases
+    element simplelist { db.simplelist.attlist, db.member+ }
+}
+div {
+  db.member.role.attribute = attribute role { text }
+  db.member.attlist =
+    db.member.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.member =
+    
+    ## An element of a simple list
+    element member { db.member.attlist, db.all.inlines* }
+}
+div {
+  db.variablelist.role.attribute = attribute role { text }
+  db.variablelist.termlength.attribute =
+    
+    ## Indicates a length beyond which the presentation system may consider a term too long and select an alternate presentation for that term, item, or list
+    attribute termlength { text }
+  db.variablelist.attlist =
+    db.variablelist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.spacing.attribute?
+    & db.variablelist.termlength.attribute?
+  db.variablelist.info = db._info.title.only
+  db.variablelist =
+    
+    ## A list in which each entry is composed of a set of one or more terms and an associated description
+    element variablelist {
+      db.variablelist.attlist,
+      db.variablelist.info,
+      db.all.blocks*,
+      db.varlistentry+
+    }
+}
+div {
+  db.varlistentry.role.attribute = attribute role { text }
+  db.varlistentry.attlist =
+    db.varlistentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.varlistentry =
+    
+    ## A wrapper for a set of terms and the associated description in a variable list
+    element varlistentry {
+      db.varlistentry.attlist, db.term+, db.listitem
+    }
+}
+div {
+  db.term.role.attribute = attribute role { text }
+  db.term.attlist =
+    db.term.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.term =
+    
+    ## The word or phrase being defined or described in a variable list
+    element term { db.term.attlist, db.all.inlines* }
+}
+div {
+  db.example.role.attribute = attribute role { text }
+  db.example.label.attribute = db.label.attribute
+  db.example.width.attribute = db.width.characters.attribute
+  db.example.pgwide.attribute = db.pgwide.attribute
+  db.example.floatstyle.attribute = db.floatstyle.attribute
+  db.example.attlist =
+    db.example.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.example.label.attribute?
+    & db.example.floatstyle.attribute?
+    & (db.example.width.attribute | db.example.pgwide.attribute)?
+  db.example.info = db._info.title.onlyreq
+  db.example =
+    
+    ## A formal example, with a title
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element example {
+      db.example.attlist, db.example.info, db.all.blocks+, db.caption?
+    }
+}
+div {
+  db.informalexample.role.attribute = attribute role { text }
+  db.informalexample.width.attribute = db.width.characters.attribute
+  db.informalexample.pgwide.attribute = db.pgwide.attribute
+  db.informalexample.floatstyle.attribute = db.floatstyle.attribute
+  db.informalexample.attlist =
+    db.informalexample.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.informalexample.floatstyle.attribute?
+    & (db.informalexample.width.attribute
+       | db.informalexample.pgwide.attribute)?
+  db.informalexample.info = db._info.title.forbidden
+  db.informalexample =
+    
+    ## A displayed example without a title
+    element informalexample {
+      db.informalexample.attlist,
+      db.informalexample.info,
+      db.all.blocks+,
+      db.caption?
+    }
+}
+db.verbatim.inlines = (db.all.inlines | db.lineannotation) | db.co
+db.verbatim.contentmodel =
+  db._info.title.forbidden, (db.textobject | db.verbatim.inlines*)
+div {
+  db.literallayout.role.attribute = attribute role { text }
+  db.literallayout.class.enumeration =
+    
+    ## The literal layout should be formatted with a monospaced font
+    "monospaced"
+    | 
+      ## The literal layout should be formatted with the current font
+      "normal"
+  db.literallayout.class.attribute =
+    
+    ## Specifies the class of literal layout
+    attribute class { db.literallayout.class.enumeration }
+  db.literallayout.attlist =
+    db.literallayout.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+    & db.literallayout.class.attribute?
+  db.literallayout =
+    
+    ## A block of text in which line breaks and white space are to be reproduced faithfully
+    element literallayout {
+      db.literallayout.attlist, db.verbatim.contentmodel
+    }
+}
+div {
+  db.screen.role.attribute = attribute role { text }
+  db.screen.width.attribute = db.width.characters.attribute
+  db.screen.attlist =
+    db.screen.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+    & db.screen.width.attribute?
+  db.screen =
+    
+    ## Text that a user sees or might see on a computer screen
+    element screen { db.screen.attlist, db.verbatim.contentmodel }
+}
+div {
+  db.screenshot.role.attribute = attribute role { text }
+  db.screenshot.attlist =
+    db.screenshot.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.screenshot.info = db._info
+  db.screenshot =
+    
+    ## A representation of what the user sees or might see on a computer screen
+    element screenshot {
+      db.screenshot.attlist, db.screenshot.info, db.mediaobject
+    }
+}
+div {
+  db.figure.role.attribute = attribute role { text }
+  db.figure.label.attribute = db.label.attribute
+  db.figure.pgwide.attribute = db.pgwide.attribute
+  db.figure.floatstyle.attribute = db.floatstyle.attribute
+  db.figure.attlist =
+    db.figure.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.figure.label.attribute?
+    & db.figure.pgwide.attribute?
+    & db.figure.floatstyle.attribute?
+  db.figure.info = db._info.title.onlyreq
+  db.figure =
+    
+    ## A formal figure, generally an illustration, with a title
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element figure {
+      db.figure.attlist, db.figure.info, db.all.blocks+, db.caption?
+    }
+}
+div {
+  db.informalfigure.role.attribute = attribute role { text }
+  db.informalfigure.label.attribute = db.label.attribute
+  db.informalfigure.pgwide.attribute = db.pgwide.attribute
+  db.informalfigure.floatstyle.attribute = db.floatstyle.attribute
+  db.informalfigure.attlist =
+    db.informalfigure.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.informalfigure.label.attribute?
+    & db.informalfigure.pgwide.attribute?
+    & db.informalfigure.floatstyle.attribute?
+  db.informalfigure.info = db._info.title.forbidden
+  db.informalfigure =
+    
+    ## A untitled figure
+    element informalfigure {
+      db.informalfigure.attlist,
+      db.informalfigure.info,
+      db.all.blocks+,
+      db.caption?
+    }
+}
+db.mediaobject.content =
+  (db.videoobject | db.audioobject | db.imageobject | db.textobject)
+  | db.imageobjectco
+div {
+  db.mediaobject.role.attribute = attribute role { text }
+  db.mediaobject.attlist =
+    db.mediaobject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.mediaobject.info = db._info.title.forbidden
+  db.mediaobject =
+    
+    ## A displayed media object (video, audio, image, etc.)
+    element mediaobject {
+      db.mediaobject.attlist,
+      db.mediaobject.info,
+      db.alt?,
+      db.mediaobject.content+,
+      db.caption?
+    }
+}
+div {
+  db.inlinemediaobject.role.attribute = attribute role { text }
+  db.inlinemediaobject.attlist =
+    db.inlinemediaobject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.inlinemediaobject.info = db._info.title.forbidden
+  db.inlinemediaobject =
+    
+    ## An inline media object (video, audio, image, and so on)
+    element inlinemediaobject {
+      db.inlinemediaobject.attlist,
+      db.inlinemediaobject.info,
+      db.alt?,
+      db.mediaobject.content+
+    }
+}
+div {
+  db.videoobject.role.attribute = attribute role { text }
+  db.videoobject.attlist =
+    db.videoobject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.videoobject.info = db._info.title.forbidden
+  db.videoobject =
+    
+    ## A wrapper for video data and its associated meta-information
+    element videoobject {
+      db.videoobject.attlist,
+      db.videoobject.info,
+      db.videodata,
+      db.multimediaparam*
+    }
+}
+div {
+  db.audioobject.role.attribute = attribute role { text }
+  db.audioobject.attlist =
+    db.audioobject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.audioobject.info = db._info.title.forbidden
+  db.audioobject =
+    
+    ## A wrapper for audio data and its associated meta-information
+    element audioobject {
+      db.audioobject.attlist,
+      db.audioobject.info,
+      db.audiodata,
+      db.multimediaparam*
+    }
+}
+db.imageobject.content =
+  db.imagedata | db.imagedata.mathml | db.imagedata.svg
+div {
+  db.imageobject.role.attribute = attribute role { text }
+  db.imageobject.attlist =
+    db.imageobject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.imageobject.info = db._info.title.forbidden
+  db.imageobject =
+    
+    ## A wrapper for image data and its associated meta-information
+    element imageobject {
+      db.imageobject.attlist,
+      db.imageobject.info,
+      db.imageobject.content
+    }
+}
+div {
+  db.textobject.role.attribute = attribute role { text }
+  db.textobject.attlist =
+    db.textobject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.textobject.info = db._info.title.forbidden
+  db.textobject =
+    
+    ## A wrapper for a text description of an object and its associated meta-information
+    element textobject {
+      db.textobject.attlist,
+      db.textobject.info,
+      (db.phrase | db.textdata | db.all.blocks+)
+    }
+}
+div {
+  db.videodata.role.attribute = attribute role { text }
+  db.videodata.align.enumeration = db.halign.enumeration
+  db.videodata.align.attribute =
+    
+    ## Specifies the (horizontal) alignment of the video data
+    attribute align { db.videodata.align.enumeration }
+  db.videodata.autoplay.attribute = db.autoplay.attribute
+  db.videodata.classid.attribute = db.classid.attribute
+  db.videodata.valign.enumeration = db.valign.enumeration
+  db.videodata.valign.attribute =
+    
+    ## Specifies the vertical alignment of the video data
+    attribute valign { db.videodata.valign.enumeration }
+  db.videodata.width.attribute = db.width.attribute
+  db.videodata.depth.attribute = db.depth.attribute
+  db.videodata.contentwidth.attribute = db.contentwidth.attribute
+  db.videodata.contentdepth.attribute = db.contentdepth.attribute
+  db.videodata.scalefit.enumeration = db.scalefit.enumeration
+  db.videodata.scalefit.attribute =
+    
+    ## Determines if anamorphic scaling is forbidden
+    attribute scalefit { db.videodata.scalefit.enumeration }
+  db.videodata.scale.attribute = db.scale.attribute
+  db.videodata.attlist =
+    db.videodata.role.attribute?
+    & db.common.attributes
+    & db.common.data.attributes
+    & db.videodata.align.attribute?
+    & db.videodata.valign.attribute?
+    & db.videodata.width.attribute?
+    & db.videodata.contentwidth.attribute?
+    & db.videodata.scalefit.attribute?
+    & db.videodata.scale.attribute?
+    & db.videodata.depth.attribute?
+    & db.videodata.contentdepth.attribute?
+    & db.videodata.autoplay.attribute?
+    & db.videodata.classid.attribute?
+  db.videodata.info = db._info.title.forbidden
+  db.videodata =
+    
+    ## Pointer to external video data
+    element videodata { db.videodata.attlist, db.videodata.info }
+}
+div {
+  db.audiodata.role.attribute = attribute role { text }
+  db.audiodata.align.enumeration = db.halign.enumeration
+  db.audiodata.align.attribute =
+    
+    ## Specifies the (horizontal) alignment of the video data
+    attribute align { db.audiodata.align.enumeration }
+  db.audiodata.autoplay.attribute = db.autoplay.attribute
+  db.audiodata.classid.attribute = db.classid.attribute
+  db.audiodata.contentwidth.attribute = db.contentwidth.attribute
+  db.audiodata.contentdepth.attribute = db.contentdepth.attribute
+  db.audiodata.depth.attribute = db.depth.attribute
+  db.audiodata.scale.attribute = db.scale.attribute
+  db.audiodata.scalefit.enumeration = db.scalefit.enumeration
+  db.audiodata.scalefit.attribute =
+    
+    ## Determines if anamorphic scaling is forbidden
+    attribute scalefit { db.audiodata.scalefit.enumeration }
+  db.audiodata.valign.enumeration = db.valign.enumeration
+  db.audiodata.valign.attribute =
+    
+    ## Specifies the vertical alignment of the video data
+    attribute valign { db.audiodata.valign.enumeration }
+  db.audiodata.width.attribute = db.width.attribute
+  db.audiodata.attlist =
+    db.audiodata.role.attribute?
+    & db.common.attributes
+    & db.common.data.attributes
+    & db.audiodata.align.attribute?
+    & db.audiodata.autoplay.attribute?
+    & db.audiodata.classid.attribute?
+    & db.audiodata.contentdepth.attribute?
+    & db.audiodata.contentwidth.attribute?
+    & db.audiodata.depth.attribute?
+    & db.audiodata.scale.attribute?
+    & db.audiodata.scalefit.attribute?
+    & db.audiodata.valign.attribute?
+    & db.audiodata.width.attribute?
+  db.audiodata.info = db._info.title.forbidden
+  db.audiodata =
+    
+    ## Pointer to external audio data
+    element audiodata { db.audiodata.attlist, db.audiodata.info }
+}
+div {
+  db.imagedata.role.attribute = attribute role { text }
+  db.imagedata.align.enumeration = db.halign.enumeration
+  db.imagedata.align.attribute =
+    
+    ## Specifies the (horizontal) alignment of the image data
+    attribute align { db.imagedata.align.enumeration }
+  db.imagedata.valign.enumeration = db.valign.enumeration
+  db.imagedata.valign.attribute =
+    
+    ## Specifies the vertical alignment of the image data
+    attribute valign { db.imagedata.valign.enumeration }
+  db.imagedata.width.attribute = db.width.attribute
+  db.imagedata.depth.attribute = db.depth.attribute
+  db.imagedata.contentwidth.attribute = db.contentwidth.attribute
+  db.imagedata.contentdepth.attribute = db.contentdepth.attribute
+  db.imagedata.scalefit.enumeration = db.scalefit.enumeration
+  db.imagedata.scalefit.attribute =
+    
+    ## Determines if anamorphic scaling is forbidden
+    attribute scalefit { db.imagedata.scalefit.enumeration }
+  db.imagedata.scale.attribute = db.scale.attribute
+  db.imagedata.attlist =
+    db.imagedata.role.attribute?
+    & db.common.attributes
+    & db.common.data.attributes
+    & db.imagedata.align.attribute?
+    & db.imagedata.valign.attribute?
+    & db.imagedata.width.attribute?
+    & db.imagedata.contentwidth.attribute?
+    & db.imagedata.scalefit.attribute?
+    & db.imagedata.scale.attribute?
+    & db.imagedata.depth.attribute?
+    & db.imagedata.contentdepth.attribute?
+  db.imagedata.info = db._info.title.forbidden
+  db.imagedata =
+    
+    ## Pointer to external image data
+    element imagedata { db.imagedata.attlist, db.imagedata.info }
+}
+div {
+  db.textdata.role.attribute = attribute role { text }
+  db.textdata.encoding.attribute =
+    
+    ## Identifies the encoding of the text in the external file
+    attribute encoding { text }
+  db.textdata.attlist =
+    db.textdata.role.attribute?
+    & db.common.attributes
+    & db.common.data.attributes
+    & db.textdata.encoding.attribute?
+  db.textdata.info = db._info.title.forbidden
+  db.textdata =
+    
+    ## Pointer to external text data
+    element textdata { db.textdata.attlist, db.textdata.info }
+}
+div {
+  db.multimediaparam.role.attribute = attribute role { text }
+  db.multimediaparam.name.attribute =
+    
+    ## Specifies the name of the parameter
+    attribute name { text }
+  db.multimediaparam.value.attribute =
+    
+    ## Specifies the value of the parameter
+    attribute value { text }
+  db.multimediaparam.valuetype.attribute =
+    
+    ## Specifies the type of the value of the parameter
+    attribute valuetype { text }
+  db.multimediaparam.attlist =
+    db.multimediaparam.role.attribute?
+    & db.common.attributes
+    & db.multimediaparam.name.attribute
+    & db.multimediaparam.value.attribute
+    & db.multimediaparam.valuetype.attribute?
+  db.multimediaparam =
+    
+    ## Application specific parameters for a media player
+    element multimediaparam { db.multimediaparam.attlist, empty }
+}
+div {
+  db.caption.role.attribute = attribute role { text }
+  db.caption.attlist =
+    db.caption.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.caption.info = db._info.title.forbidden
+  db.caption =
+    
+    ## A caption
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:sidebar)"
+            "sidebar must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:task)"
+            "task must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element caption {
+      db.caption.attlist, db.caption.info, db.all.blocks+
+    }
+}
+div {
+  db.address.role.attribute = attribute role { text }
+  db.address.attlist =
+    db.address.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+  db.address =
+    
+    ## A real-world address, generally a postal address
+    element address {
+      db.address.attlist,
+      (db._text
+       | db.personname
+       | db.orgname
+       | db.pob
+       | db.street
+       | db.city
+       | db.state
+       | db.postcode
+       | db.country
+       | db.phone
+       | db.fax
+       | db.email
+       | db.uri
+       | db.otheraddr)*
+    }
+}
+div {
+  db.street.role.attribute = attribute role { text }
+  db.street.attlist =
+    db.street.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.street =
+    
+    ## A street address in an address
+    element street { db.street.attlist, db._text }
+}
+div {
+  db.pob.role.attribute = attribute role { text }
+  db.pob.attlist =
+    db.pob.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.pob =
+    
+    ## A post office box in an address
+    element pob { db.pob.attlist, db._text }
+}
+div {
+  db.postcode.role.attribute = attribute role { text }
+  db.postcode.attlist =
+    db.postcode.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.postcode =
+    
+    ## A postal code in an address
+    element postcode { db.postcode.attlist, db._text }
+}
+div {
+  db.city.role.attribute = attribute role { text }
+  db.city.attlist =
+    db.city.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.city =
+    
+    ## The name of a city in an address
+    element city { db.city.attlist, db._text }
+}
+div {
+  db.state.role.attribute = attribute role { text }
+  db.state.attlist =
+    db.state.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.state =
+    
+    ## A state or province in an address
+    element state { db.state.attlist, db._text }
+}
+div {
+  db.country.role.attribute = attribute role { text }
+  db.country.attlist =
+    db.country.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.country =
+    
+    ## The name of a country
+    element country { db.country.attlist, db._text }
+}
+div {
+  db.phone.role.attribute = attribute role { text }
+  db.phone.attlist =
+    db.phone.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.phone =
+    
+    ## A telephone number
+    element phone { db.phone.attlist, db._text }
+}
+div {
+  db.fax.role.attribute = attribute role { text }
+  db.fax.attlist =
+    db.fax.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.fax =
+    
+    ## A fax number
+    element fax { db.fax.attlist, db._text }
+}
+div {
+  db.otheraddr.role.attribute = attribute role { text }
+  db.otheraddr.attlist =
+    db.otheraddr.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.otheraddr =
+    
+    ## Uncategorized information in address
+    element otheraddr { db.otheraddr.attlist, db._text }
+}
+div {
+  db.affiliation.role.attribute = attribute role { text }
+  db.affiliation.attlist =
+    db.affiliation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.affiliation =
+    
+    ## The institutional affiliation of an individual
+    element affiliation {
+      db.affiliation.attlist,
+      db.shortaffil?,
+      db.jobtitle*,
+      (db.org? | (db.orgname?, db.orgdiv*, db.address*))
+    }
+}
+div {
+  db.shortaffil.role.attribute = attribute role { text }
+  db.shortaffil.attlist =
+    db.shortaffil.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.shortaffil =
+    
+    ## A brief description of an affiliation
+    element shortaffil { db.shortaffil.attlist, db._text }
+}
+div {
+  db.jobtitle.role.attribute = attribute role { text }
+  db.jobtitle.attlist =
+    db.jobtitle.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.jobtitle =
+    
+    ## The title of an individual in an organization
+    element jobtitle { db.jobtitle.attlist, db._text }
+}
+div {
+  db.orgname.class.enumeration =
+    
+    ## A consortium
+    "consortium"
+    | 
+      ## A corporation
+      "corporation"
+    | 
+      ## An informal organization
+      "informal"
+    | 
+      ## A non-profit organization
+      "nonprofit"
+  db.orgname.class-enum.attribute =
+    
+    ## Specifies the nature of the organization
+    attribute class { db.orgname.class.enumeration }
+  db.orgname.class-other.attributes =
+    
+    ## Specifies the nature of the organization
+    attribute class {
+      
+      ## Indicates a non-standard organization class
+      "other"
+    },
+    
+    ## Identifies the non-standard nature of the organization
+    attribute otherclass { text }
+  db.orgname.class.attribute =
+    db.orgname.class-enum.attribute | db.orgname.class-other.attributes
+  db.orgname.role.attribute = attribute role { text }
+  db.orgname.attlist =
+    db.orgname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.orgname.class.attribute?
+  db.orgname =
+    
+    ## The name of an organization
+    element orgname { db.orgname.attlist, db._text }
+}
+div {
+  db.orgdiv.role.attribute = attribute role { text }
+  db.orgdiv.attlist =
+    db.orgdiv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.orgdiv =
+    
+    ## A division of an organization
+    element orgdiv { db.orgdiv.attlist, db.all.inlines* }
+}
+div {
+  db.artpagenums.role.attribute = attribute role { text }
+  db.artpagenums.attlist =
+    db.artpagenums.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.artpagenums =
+    
+    ## The page numbers of an article as published
+    element artpagenums { db.artpagenums.attlist, db._text }
+}
+div {
+  db.personname.role.attribute = attribute role { text }
+  db.personname.attlist =
+    db.personname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.personname =
+    
+    ## The personal name of an individual
+    element personname {
+      db.personname.attlist,
+      (db._text
+       | (db.honorific
+          | db.firstname
+          | db.surname
+          | db.lineage
+          | db.othername)+
+       | (db.honorific
+          | db.givenname
+          | db.surname
+          | db.lineage
+          | db.othername)+)
+    }
+}
+db.person.author.contentmodel =
+  db.personname,
+  (db.personblurb
+   | db.affiliation
+   | db.email
+   | db.uri
+   | db.address
+   | db.contrib)*
+db.org.author.contentmodel =
+  db.orgname,
+  (db.orgdiv
+   | db.affiliation
+   | db.email
+   | db.uri
+   | db.address
+   | db.contrib)*
+db.credit.contentmodel =
+  db.person.author.contentmodel | db.org.author.contentmodel
+div {
+  db.author.role.attribute = attribute role { text }
+  db.author.attlist =
+    db.author.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.author =
+    
+    ## The name of an individual author
+    element author { db.author.attlist, db.credit.contentmodel }
+}
+div {
+  db.authorgroup.role.attribute = attribute role { text }
+  db.authorgroup.attlist =
+    db.authorgroup.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.authorgroup =
+    
+    ## Wrapper for author information when a document has multiple authors or collaborators
+    element authorgroup {
+      db.authorgroup.attlist, (db.author | db.editor | db.othercredit)+
+    }
+}
+div {
+  db.collab.role.attribute = attribute role { text }
+  db.collab.attlist =
+    db.collab.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.collab =
+    
+    ## Identifies a collaborator
+    element collab {
+      db.collab.attlist,
+      (db.person | db.personname | db.org | db.orgname)+,
+      db.affiliation*
+    }
+}
+div {
+  db.authorinitials.role.attribute = attribute role { text }
+  db.authorinitials.attlist =
+    db.authorinitials.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.authorinitials =
+    
+    ## The initials or other short identifier for an author
+    element authorinitials { db.authorinitials.attlist, db._text }
+}
+div {
+  db.person.role.attribute = attribute role { text }
+  db.person.attlist =
+    db.person.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.person =
+    
+    ## A person and associated metadata
+    element person {
+      db.person.attlist,
+      db.personname,
+      (db.address
+       | db.affiliation
+       | db.email
+       | db.uri
+       | db.personblurb)*
+    }
+}
+div {
+  db.org.role.attribute = attribute role { text }
+  db.org.attlist =
+    db.org.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.org =
+    
+    ## An organization and associated metadata
+    element org {
+      db.org.attlist,
+      db.orgname,
+      (db.address | db.affiliation | db.email | db.uri | db.orgdiv)*
+    }
+}
+div {
+  db.confgroup.role.attribute = attribute role { text }
+  db.confgroup.attlist =
+    db.confgroup.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.confgroup =
+    
+    ## A wrapper for document meta-information about a conference
+    element confgroup {
+      db.confgroup.attlist,
+      (db.confdates
+       | db.conftitle
+       | db.confnum
+       | db.confsponsor
+       | db.address)*
+    }
+}
+div {
+  db.confdates.role.attribute = attribute role { text }
+  db.confdates.attlist =
+    db.confdates.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.confdates =
+    
+    ## The dates of a conference for which a document was written
+    element confdates { db.confdates.attlist, db._text }
+}
+div {
+  db.conftitle.role.attribute = attribute role { text }
+  db.conftitle.attlist =
+    db.conftitle.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.conftitle =
+    
+    ## The title of a conference for which a document was written
+    element conftitle { db.conftitle.attlist, db._text }
+}
+div {
+  db.confnum.role.attribute = attribute role { text }
+  db.confnum.attlist =
+    db.confnum.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.confnum =
+    
+    ## An identifier, frequently numerical, associated with a conference for which a document was written
+    element confnum { db.confnum.attlist, db._text }
+}
+div {
+  db.confsponsor.role.attribute = attribute role { text }
+  db.confsponsor.attlist =
+    db.confsponsor.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.confsponsor =
+    
+    ## The sponsor of a conference for which a document was written
+    element confsponsor { db.confsponsor.attlist, db._text }
+}
+div {
+  db.contractnum.role.attribute = attribute role { text }
+  db.contractnum.attlist =
+    db.contractnum.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.contractnum =
+    
+    ## The contract number of a document
+    element contractnum { db.contractnum.attlist, db._text }
+}
+div {
+  db.contractsponsor.role.attribute = attribute role { text }
+  db.contractsponsor.attlist =
+    db.contractsponsor.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.contractsponsor =
+    
+    ## The sponsor of a contract
+    element contractsponsor { db.contractsponsor.attlist, db._text }
+}
+div {
+  db.copyright.role.attribute = attribute role { text }
+  db.copyright.attlist =
+    db.copyright.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.copyright =
+    
+    ## Copyright information about a document
+    element copyright { db.copyright.attlist, db.year+, db.holder* }
+}
+div {
+  db.year.role.attribute = attribute role { text }
+  db.year.attlist =
+    db.year.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.year =
+    
+    ## The year of publication of a document
+    element year { db.year.attlist, db._text }
+}
+div {
+  db.holder.role.attribute = attribute role { text }
+  db.holder.attlist =
+    db.holder.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.holder =
+    
+    ## The name of the individual or organization that holds a copyright
+    element holder { db.holder.attlist, db._text }
+}
+db.cover.contentmodel =
+  (db.para.blocks
+   | db.list.blocks
+   | db.informal.blocks
+   | db.publishing.blocks
+   | db.graphic.blocks
+   | db.technical.blocks
+   | db.verbatim.blocks
+   | db.bridgehead
+   | db.remark
+   | db.revhistory)
+  | db.synopsis.blocks
+div {
+  db.cover.role.attribute = attribute role { text }
+  db.cover.attlist =
+    db.cover.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.cover =
+    
+    ## Additional content for the cover of a publication
+    element cover { db.cover.attlist, db.cover.contentmodel+ }
+}
+db.date.contentmodel =
+  xsd:date | xsd:dateTime | xsd:gYearMonth | xsd:gYear | text
+div {
+  db.date.role.attribute = attribute role { text }
+  db.date.attlist =
+    db.date.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.date =
+    
+    ## The date of publication or revision of a document
+    element date { db.date.attlist, db.date.contentmodel }
+}
+div {
+  db.edition.role.attribute = attribute role { text }
+  db.edition.attlist =
+    db.edition.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.edition =
+    
+    ## The name or number of an edition of a document
+    element edition { db.edition.attlist, db._text }
+}
+div {
+  db.editor.role.attribute = attribute role { text }
+  db.editor.attlist =
+    db.editor.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.editor =
+    
+    ## The name of the editor of a document
+    element editor { db.editor.attlist, db.credit.contentmodel }
+}
+div {
+  db.biblioid.role.attribute = attribute role { text }
+  db.biblioid.attlist =
+    db.biblioid.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.biblio.class.attribute
+  db.biblioid =
+    
+    ## An identifier for a document
+    element biblioid { db.biblioid.attlist, db._text }
+}
+div {
+  db.citebiblioid.role.attribute = attribute role { text }
+  db.citebiblioid.attlist =
+    db.citebiblioid.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.biblio.class.attribute
+  db.citebiblioid =
+    
+    ## A citation of a bibliographic identifier
+    element citebiblioid { db.citebiblioid.attlist, db._text }
+}
+div {
+  db.bibliosource.role.attribute = attribute role { text }
+  db.bibliosource.attlist =
+    db.bibliosource.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.biblio.class.attribute
+  db.bibliosource =
+    
+    ## The source of a document
+    element bibliosource { db.bibliosource.attlist, db._text }
+}
+div {
+  db.bibliorelation.type.enumeration =
+    
+    ## The described resource pre-existed the referenced resource, which is essentially the same intellectual content presented in another format
+    "hasformat"
+    | 
+      ## The described resource includes the referenced resource either physically or logically
+      "haspart"
+    | 
+      ## The described resource has a version, edition, or adaptation, namely, the referenced resource
+      "hasversion"
+    | 
+      ## The described resource is the same intellectual content of the referenced resource, but presented in another format
+      "isformatof"
+    | 
+      ## The described resource is a physical or logical part of the referenced resource
+      "ispartof"
+    | 
+      ## The described resource is referenced, cited, or otherwise pointed to by the referenced resource
+      "isreferencedby"
+    | 
+      ## The described resource is supplanted, displaced, or superceded by the referenced resource
+      "isreplacedby"
+    | 
+      ## The described resource is required by the referenced resource, either physically or logically
+      "isrequiredby"
+    | 
+      ## The described resource is a version, edition, or adaptation of the referenced resource; changes in version imply substantive changes in content rather than differences in format
+      "isversionof"
+    | 
+      ## The described resource references, cites, or otherwise points to the referenced resource
+      "references"
+    | 
+      ## The described resource supplants, displaces, or supersedes the referenced resource
+      "replaces"
+    | 
+      ## The described resource requires the referenced resource to support its function, delivery, or coherence of content
+      "requires"
+  db.bibliorelation.type-enum.attribute =
+    
+    ## Identifies the type of relationship
+    attribute type { db.bibliorelation.type.enumeration }?
+  db.bibliorelation.type-other.attributes =
+    
+    ## Identifies the type of relationship
+    attribute type {
+      
+      ## The described resource has a non-standard relationship with the referenced resource
+      "othertype"
+    }?,
+    
+    ## A keyword that identififes the type of the non-standard relationship
+    attribute othertype { xsd:NMTOKEN }
+  db.bibliorelation.type.attribute =
+    db.bibliorelation.type-enum.attribute
+    | db.bibliorelation.type-other.attributes
+  db.bibliorelation.role.attribute = attribute role { text }
+  db.bibliorelation.attlist =
+    db.bibliorelation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.biblio.class.attribute
+    & db.bibliorelation.type.attribute
+  db.bibliorelation =
+    
+    ## The relationship of a document to another
+    element bibliorelation { db.bibliorelation.attlist, db._text }
+}
+div {
+  db.bibliocoverage.spacial.enumeration =
+    
+    ## The DCMI Point identifies a point in space using its geographic coordinates
+    "dcmipoint"
+    | 
+      ## ISO 3166 Codes for the representation of names of countries
+      "iso3166"
+    | 
+      ## The DCMI Box identifies a region of space using its geographic limits
+      "dcmibox"
+    | 
+      ## The Getty Thesaurus of Geographic Names
+      "tgn"
+  db.bibliocoverage.spatial-enum.attribute =
+    
+    ## Specifies the type of spatial coverage
+    attribute spatial { db.bibliocoverage.spacial.enumeration }?
+  db.bibliocoverage.spatial-other.attributes =
+    
+    ## Specifies the type of spatial coverage
+    attribute spatial {
+      
+      ## Identifies a non-standard type of coverage
+      "otherspatial"
+    }?,
+    
+    ## A keyword that identifies the type of non-standard coverage
+    attribute otherspatial { xsd:NMTOKEN }
+  db.bibliocoverage.spatial.attribute =
+    db.bibliocoverage.spatial-enum.attribute
+    | db.bibliocoverage.spatial-other.attributes
+  db.bibliocoverage.temporal.enumeration =
+    
+    ## A specification of the limits of a time interval
+    "dcmiperiod"
+    | 
+      ## W3C Encoding rules for dates and times—a profile based on ISO 8601
+      "w3c-dtf"
+  db.bibliocoverage.temporal-enum.attribute =
+    
+    ## Specifies the type of temporal coverage
+    attribute temporal { db.bibliocoverage.temporal.enumeration }?
+  db.bibliocoverage.temporal-other.attributes =
+    
+    ## Specifies the type of temporal coverage
+    attribute temporal {
+      
+      ## Specifies a non-standard type of coverage
+      "othertemporal"
+    }?,
+    
+    ## A keyword that identifies the type of non-standard coverage
+    attribute othertemporal { xsd:NMTOKEN }
+  db.bibliocoverage.temporal.attribute =
+    db.bibliocoverage.temporal-enum.attribute
+    | db.bibliocoverage.temporal-other.attributes
+  db.bibliocoverage.coverage.attrib =
+    db.bibliocoverage.spatial.attribute
+    & db.bibliocoverage.temporal.attribute
+  db.bibliocoverage.role.attribute = attribute role { text }
+  db.bibliocoverage.attlist =
+    db.bibliocoverage.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.bibliocoverage.coverage.attrib
+  db.bibliocoverage =
+    
+    ## The spatial or temporal coverage of a document
+    element bibliocoverage { db.bibliocoverage.attlist, db._text }
+}
+div {
+  db.legalnotice.role.attribute = attribute role { text }
+  db.legalnotice.attlist =
+    db.legalnotice.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.legalnotice.info = db._info.title.only
+  db.legalnotice =
+    
+    ## A statement of legal obligations or requirements
+    element legalnotice {
+      db.legalnotice.attlist, db.legalnotice.info, db.all.blocks+
+    }
+}
+div {
+  db.othercredit.class.enumeration =
+    
+    ## A copy editor
+    "copyeditor"
+    | 
+      ## A graphic designer
+      "graphicdesigner"
+    | 
+      ## Some other contributor
+      "other"
+    | 
+      ## A production editor
+      "productioneditor"
+    | 
+      ## A technical editor
+      "technicaleditor"
+    | 
+      ## A translator
+      "translator"
+    | 
+      ## An indexer
+      "indexer"
+    | 
+      ## A proof-reader
+      "proofreader"
+    | 
+      ## A cover designer
+      "coverdesigner"
+    | 
+      ## An interior designer
+      "interiordesigner"
+    | 
+      ## An illustrator
+      "illustrator"
+    | 
+      ## A reviewer
+      "reviewer"
+    | 
+      ## A typesetter
+      "typesetter"
+    | 
+      ## A converter (a persons responsible for conversion, not an application)
+      "conversion"
+  db.othercredit.class-enum.attribute =
+    
+    ## Identifies the nature of the contributor
+    attribute class { db.othercredit.class.enumeration }?
+  db.othercredit.class-other.attribute =
+    
+    ## Identifies the nature of the non-standard contribution
+    attribute otherclass { xsd:NMTOKEN }
+  db.othercredit.class-other.attributes =
+    
+    ## Identifies the nature of the contributor
+    attribute class {
+      
+      ## Identifies a non-standard contribution
+      "other"
+    }
+    & db.othercredit.class-other.attribute
+  db.othercredit.class.attribute =
+    db.othercredit.class-enum.attribute
+    | db.othercredit.class-other.attributes
+  db.othercredit.role.attribute = attribute role { text }
+  db.othercredit.attlist =
+    db.othercredit.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.othercredit.class.attribute
+  db.othercredit =
+    
+    ## A person or entity, other than an author or editor, credited in a document
+    element othercredit {
+      db.othercredit.attlist, db.credit.contentmodel
+    }
+}
+div {
+  db.pagenums.role.attribute = attribute role { text }
+  db.pagenums.attlist =
+    db.pagenums.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.pagenums =
+    
+    ## The numbers of the pages in a book, for use in a bibliographic entry
+    element pagenums { db.pagenums.attlist, db._text }
+}
+div {
+  db.contrib.role.attribute = attribute role { text }
+  db.contrib.attlist =
+    db.contrib.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.contrib =
+    
+    ## A summary of the contributions made to a document by a credited source
+    element contrib { db.contrib.attlist, db.all.inlines* }
+}
+div {
+  db.honorific.role.attribute = attribute role { text }
+  db.honorific.attlist =
+    db.honorific.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.honorific =
+    
+    ## The title of a person
+    element honorific { db.honorific.attlist, db._text }
+}
+div {
+  db.firstname.role.attribute = attribute role { text }
+  db.firstname.attlist =
+    db.firstname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.firstname =
+    
+    ## A given name of a person
+    element firstname { db.firstname.attlist, db._text }
+}
+div {
+  db.givenname.role.attribute = attribute role { text }
+  db.givenname.attlist =
+    db.givenname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.givenname =
+    
+    ## The given name of a person
+    element givenname { db.givenname.attlist, db._text }
+}
+div {
+  db.surname.role.attribute = attribute role { text }
+  db.surname.attlist =
+    db.surname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.surname =
+    
+    ## An inherited or family name; in western cultures the last name
+    element surname { db.surname.attlist, db._text }
+}
+div {
+  db.lineage.role.attribute = attribute role { text }
+  db.lineage.attlist =
+    db.lineage.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.lineage =
+    
+    ## The portion of a person's name indicating a relationship to ancestors
+    element lineage { db.lineage.attlist, db._text }
+}
+div {
+  db.othername.role.attribute = attribute role { text }
+  db.othername.attlist =
+    db.othername.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.othername =
+    
+    ## A component of a person's name that is not a first name, surname, or lineage
+    element othername { db.othername.attlist, db._text }
+}
+div {
+  db.printhistory.role.attribute = attribute role { text }
+  db.printhistory.attlist =
+    db.printhistory.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.printhistory =
+    
+    ## The printing history of a document
+    element printhistory { db.printhistory.attlist, db.para.blocks+ }
+}
+div {
+  db.pubdate.role.attribute = attribute role { text }
+  db.pubdate.attlist =
+    db.pubdate.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.pubdate =
+    
+    ## The date of publication of a document
+    element pubdate { db.pubdate.attlist, db.date.contentmodel }
+}
+div {
+  db.publisher.role.attribute = attribute role { text }
+  db.publisher.attlist =
+    db.publisher.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.publisher =
+    
+    ## The publisher of a document
+    element publisher {
+      db.publisher.attlist, db.publishername, db.address*
+    }
+}
+div {
+  db.publishername.role.attribute = attribute role { text }
+  db.publishername.attlist =
+    db.publishername.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.publishername =
+    
+    ## The name of the publisher of a document
+    element publishername { db.publishername.attlist, db._text }
+}
+div {
+  db.releaseinfo.role.attribute = attribute role { text }
+  db.releaseinfo.attlist =
+    db.releaseinfo.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.releaseinfo =
+    
+    ## Information about a particular release of a document
+    element releaseinfo { db.releaseinfo.attlist, db._text }
+}
+div {
+  db.revhistory.role.attribute = attribute role { text }
+  db.revhistory.attlist =
+    db.revhistory.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.revhistory.info = db._info.title.only
+  db.revhistory =
+    
+    ## A history of the revisions to a document
+    element revhistory {
+      db.revhistory.attlist, db.revhistory.info, db.revision+
+    }
+}
+div {
+  db.revision.role.attribute = attribute role { text }
+  db.revision.attlist =
+    db.revision.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.revision =
+    
+    ## An entry describing a single revision in the history of the revisions to a document
+    element revision {
+      db.revision.attlist,
+      db.revnumber?,
+      db.date,
+      (db.authorinitials | db.author)*,
+      (db.revremark | db.revdescription)?
+    }
+}
+div {
+  db.revnumber.role.attribute = attribute role { text }
+  db.revnumber.attlist =
+    db.revnumber.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.revnumber =
+    
+    ## A document revision number
+    element revnumber { db.revnumber.attlist, db._text }
+}
+div {
+  db.revremark.role.attribute = attribute role { text }
+  db.revremark.attlist =
+    db.revremark.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.revremark =
+    
+    ## A description of a revision to a document
+    element revremark { db.revremark.attlist, db._text }
+}
+div {
+  db.revdescription.role.attribute = attribute role { text }
+  db.revdescription.attlist =
+    db.revdescription.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.revdescription =
+    
+    ## A extended description of a revision to a document
+    element revdescription { db.revdescription.attlist, db.all.blocks* }
+}
+div {
+  db.seriesvolnums.role.attribute = attribute role { text }
+  db.seriesvolnums.attlist =
+    db.seriesvolnums.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.seriesvolnums =
+    
+    ## Numbers of the volumes in a series of books
+    element seriesvolnums { db.seriesvolnums.attlist, db._text }
+}
+div {
+  db.volumenum.role.attribute = attribute role { text }
+  db.volumenum.attlist =
+    db.volumenum.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.volumenum =
+    
+    ## The volume number of a document in a set (as of books in a set or articles in a journal)
+    element volumenum { db.volumenum.attlist, db._text }
+}
+div {
+  db.issuenum.role.attribute = attribute role { text }
+  db.issuenum.attlist =
+    db.issuenum.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.issuenum =
+    
+    ## The number of an issue of a journal
+    element issuenum { db.issuenum.attlist, db._text }
+}
+div {
+  db.package.role.attribute = attribute role { text }
+  db.package.attlist =
+    db.package.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.package =
+    
+    ## A software or application package
+    element package { db.package.attlist, db._text }
+}
+div {
+  db.email.role.attribute = attribute role { text }
+  db.email.attlist =
+    db.email.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.email =
+    
+    ## An email address
+    element email { db.email.attlist, db._text }
+}
+div {
+  db.lineannotation.role.attribute = attribute role { text }
+  db.lineannotation.attlist =
+    db.lineannotation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.lineannotation =
+    
+    ## A comment on a line in a verbatim listing
+    element lineannotation { db.lineannotation.attlist, db._text }
+}
+div {
+  db.parameter.class.enumeration =
+    
+    ## A command
+    "command"
+    | 
+      ## A function
+      "function"
+    | 
+      ## An option
+      "option"
+  db.parameter.class.attribute =
+    
+    ## Identifies the class of parameter
+    attribute class { db.parameter.class.enumeration }
+  db.parameter.role.attribute = attribute role { text }
+  db.parameter.attlist =
+    db.parameter.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.parameter.class.attribute?
+  db.parameter =
+    
+    ## A value or a symbolic reference to a value
+    element parameter { db.parameter.attlist, db._text }
+}
+db.replaceable.inlines = db._text | db.co
+div {
+  db.replaceable.class.enumeration =
+    
+    ## A command
+    "command"
+    | 
+      ## A function
+      "function"
+    | 
+      ## An option
+      "option"
+    | 
+      ## A parameter
+      "parameter"
+  db.replaceable.class.attribute =
+    
+    ## Identifies the nature of the replaceable text
+    attribute class { db.replaceable.class.enumeration }
+  db.replaceable.role.attribute = attribute role { text }
+  db.replaceable.attlist =
+    db.replaceable.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.replaceable.class.attribute?
+  db.replaceable =
+    
+    ## Content that may or must be replaced by the user
+    element replaceable {
+      db.replaceable.attlist, db.replaceable.inlines*
+    }
+}
+div {
+  db.uri.type.attribute =
+    
+    ## Identifies the type of URI specified
+    attribute type { text }?
+  db.uri.role.attribute = attribute role { text }
+  db.uri.attlist =
+    db.uri.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.uri.type.attribute
+  db.uri =
+    
+    ## A Uniform Resource Identifier
+    element uri { db.uri.attlist, db._text }
+}
+div {
+  db.abbrev.role.attribute = attribute role { text }
+  db.abbrev.attlist =
+    db.abbrev.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.abbrev =
+    
+    ## An abbreviation, especially one followed by a period
+    element abbrev {
+      db.abbrev.attlist,
+      (db._text | db.superscript | db.subscript | db.trademark)*
+    }
+}
+div {
+  db.acronym.role.attribute = attribute role { text }
+  db.acronym.attlist =
+    db.acronym.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.acronym =
+    
+    ## An often pronounceable word made from the initial (or selected) letters of a name or phrase
+    element acronym {
+      db.acronym.attlist,
+      (db._text | db.superscript | db.subscript | db.trademark)*
+    }
+}
+div {
+  db.citation.role.attribute = attribute role { text }
+  db.citation.attlist =
+    db.citation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.citation =
+    
+    ## An inline bibliographic reference to another published work
+    element citation { db.citation.attlist, db.all.inlines* }
+}
+div {
+  db.citerefentry.role.attribute = attribute role { text }
+  db.citerefentry.attlist =
+    db.citerefentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.citerefentry =
+    
+    ## A citation to a reference page
+    element citerefentry {
+      db.citerefentry.attlist, db.refentrytitle, db.manvolnum?
+    }
+}
+div {
+  db.refentrytitle.role.attribute = attribute role { text }
+  db.refentrytitle.attlist =
+    db.refentrytitle.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refentrytitle =
+    
+    ## The title of a reference page
+    element refentrytitle { db.refentrytitle.attlist, db.all.inlines* }
+}
+div {
+  db.manvolnum.role.attribute = attribute role { text }
+  db.manvolnum.attlist =
+    db.manvolnum.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.manvolnum =
+    
+    ## A reference volume number
+    element manvolnum { db.manvolnum.attlist, db._text }
+}
+div {
+  db.citetitle.pubwork.enumeration =
+    
+    ## An article
+    "article"
+    | 
+      ## A bulletin board system
+      "bbs"
+    | 
+      ## A book
+      "book"
+    | 
+      ## A CD-ROM
+      "cdrom"
+    | 
+      ## A chapter (as of a book)
+      "chapter"
+    | 
+      ## A DVD
+      "dvd"
+    | 
+      ## An email message
+      "emailmessage"
+    | 
+      ## A gopher page
+      "gopher"
+    | 
+      ## A journal
+      "journal"
+    | 
+      ## A manuscript
+      "manuscript"
+    | 
+      ## A posting to a newsgroup
+      "newsposting"
+    | 
+      ## A part (as of a book)
+      "part"
+    | 
+      ## A reference entry
+      "refentry"
+    | 
+      ## A section (as of a book or article)
+      "section"
+    | 
+      ## A series
+      "series"
+    | 
+      ## A set (as of books)
+      "set"
+    | 
+      ## A web page
+      "webpage"
+    | 
+      ## A wiki page
+      "wiki"
+  db.citetitle.pubwork.attribute =
+    
+    ## Identifies the nature of the publication being cited
+    attribute pubwork { db.citetitle.pubwork.enumeration }
+  db.citetitle.role.attribute = attribute role { text }
+  db.citetitle.attlist =
+    db.citetitle.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.citetitle.pubwork.attribute?
+  db.citetitle =
+    
+    ## The title of a cited work
+    element citetitle { db.citetitle.attlist, db.all.inlines* }
+}
+div {
+  db.emphasis.role.attribute = attribute role { text }
+  db.emphasis.attlist =
+    db.emphasis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.emphasis =
+    
+    ## Emphasized text
+    element emphasis { db.emphasis.attlist, db.all.inlines* }
+}
+div {
+  db._emphasis =
+    
+    ## A limited span of emphasized text
+    element emphasis { db.emphasis.attlist, db._text }
+}
+div {
+  db.foreignphrase.role.attribute = attribute role { text }
+  db.foreignphrase.attlist =
+    db.foreignphrase.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.foreignphrase =
+    
+    ## A word or phrase in a language other than the primary language of the document
+    element foreignphrase {
+      db.foreignphrase.attlist, (text | db.general.inlines)*
+    }
+}
+div {
+  db._foreignphrase.role.attribute = attribute role { text }
+  db._foreignphrase.attlist =
+    db._foreignphrase.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db._foreignphrase =
+    
+    ## A limited word or phrase in a language other than the primary language of the document
+    element foreignphrase { db._foreignphrase.attlist, db._text }
+}
+div {
+  db.phrase.role.attribute = attribute role { text }
+  db.phrase.attlist =
+    db.phrase.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.phrase =
+    
+    ## A span of text
+    element phrase { db.phrase.attlist, db.all.inlines* }
+}
+div {
+  db._phrase =
+    
+    ## A limited span of text
+    element phrase { db.phrase.attlist, db._text }
+}
+div {
+  db.quote.role.attribute = attribute role { text }
+  db.quote.attlist =
+    db.quote.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.quote =
+    
+    ## An inline quotation
+    element quote { db.quote.attlist, db.all.inlines* }
+}
+div {
+  db._quote.role.attribute = attribute role { text }
+  db._quote.attlist =
+    db._quote.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db._quote =
+    
+    ## A limited inline quotation
+    element quote { db._quote.attlist, db._text }
+}
+div {
+  db.subscript.role.attribute = attribute role { text }
+  db.subscript.attlist =
+    db.subscript.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.subscript =
+    
+    ## A subscript (as in H2
+    ## O, the molecular formula for water)
+    element subscript { db.subscript.attlist, db._text }
+}
+div {
+  db.superscript.role.attribute = attribute role { text }
+  db.superscript.attlist =
+    db.superscript.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.superscript =
+    
+    ## A superscript (as in x2
+    ## , the mathematical notation for x multiplied by itself)
+    element superscript { db.superscript.attlist, db._text }
+}
+div {
+  db.trademark.class.enumeration =
+    
+    ## A copyright
+    "copyright"
+    | 
+      ## A registered copyright
+      "registered"
+    | 
+      ## A service
+      "service"
+    | 
+      ## A trademark
+      "trade"
+  db.trademark.class.attribute =
+    
+    ## Identifies the class of trade mark
+    attribute class { db.trademark.class.enumeration }
+  db.trademark.role.attribute = attribute role { text }
+  db.trademark.attlist =
+    db.trademark.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.trademark.class.attribute?
+  db.trademark =
+    
+    ## A trademark
+    element trademark { db.trademark.attlist, db._text }
+}
+div {
+  db.wordasword.role.attribute = attribute role { text }
+  db.wordasword.attlist =
+    db.wordasword.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.wordasword =
+    
+    ## A word meant specifically as a word and not representing anything else
+    element wordasword { db.wordasword.attlist, db._text }
+}
+div {
+  db.footnoteref.role.attribute = attribute role { text }
+  db.footnoteref.label.attribute = db.label.attribute
+  db.footnoteref.attlist =
+    db.footnoteref.role.attribute?
+    & db.common.attributes
+    & db.linkend.attribute
+    & db.footnoteref.label.attribute?
+  db.footnoteref =
+    
+    ## A cross reference to a footnote (a footnote mark)
+    [
+      s:pattern [
+        name = "Footnote reference type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnoteref"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@linkend]) = 'footnote' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
+            "@linkend on footnoteref must point to a footnote."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element footnoteref { db.footnoteref.attlist, empty }
+}
+div {
+  db.xref.role.attribute = attribute role { text }
+  db.xref.xrefstyle.attribute = db.xrefstyle.attribute
+  db.xref.endterm.attribute = db.endterm.attribute
+  db.xref.attlist =
+    db.xref.role.attribute?
+    & db.common.attributes
+    & db.common.req.linking.attributes
+    & db.xref.xrefstyle.attribute?
+    & db.xref.endterm.attribute?
+  db.xref =
+    
+    ## A cross reference to another part of the document
+    element xref { db.xref.attlist, empty }
+}
+div {
+  db.link.role.attribute = attribute role { text }
+  db.link.xrefstyle.attribute = db.xrefstyle.attribute
+  db.link.endterm.attribute = db.endterm.attribute
+  db.link.attlist =
+    db.link.role.attribute?
+    & db.common.attributes
+    & db.common.req.linking.attributes
+    & db.link.xrefstyle.attribute?
+    & db.link.endterm.attribute?
+  db.link =
+    
+    ## A hypertext link
+    element link { db.link.attlist, db.all.inlines* }
+}
+div {
+  db.olink.role.attribute = attribute role { text }
+  db.olink.xrefstyle.attribute = db.xrefstyle.attribute
+  db.olink.localinfo.attribute =
+    
+    ## Holds additional information that may be used by the application when resolving the link
+    attribute localinfo { text }
+  db.olink.targetdoc.attribute =
+    
+    ## Specifies the URI of the document in which the link target appears
+    attribute targetdoc { xsd:anyURI }
+  db.olink.targetptr.attribute =
+    
+    ## Specifies the location of the link target in the document
+    attribute targetptr { text }
+  db.olink.type.attribute =
+    
+    ## Identifies application-specific customization of the link behavior
+    attribute type { text }
+  db.olink.attlist =
+    db.common.attributes
+    & db.olink.targetdoc.attribute?
+    & db.olink.role.attribute?
+    & db.olink.xrefstyle.attribute?
+    & db.olink.localinfo.attribute?
+    & db.olink.targetptr.attribute?
+    & db.olink.type.attribute?
+  db.olink =
+    
+    ## A link that addresses its target indirectly
+    element olink { db.olink.attlist, db.all.inlines* }
+}
+div {
+  db.anchor.role.attribute = attribute role { text }
+  db.anchor.attlist =
+    db.anchor.role.attribute? & db.common.idreq.attributes
+  db.anchor =
+    
+    ## A spot in the document
+    element anchor { db.anchor.attlist, empty }
+}
+div {
+  db.alt.role.attribute = attribute role { text }
+  db.alt.attlist = db.alt.role.attribute? & db.common.attributes
+  db.alt =
+    
+    ## A text-only annotation, often used for accessibility
+    element alt { db.alt.attlist, (text | db.inlinemediaobject)* }
+}
+db.status.attribute =
+  
+  ## Identifies the editorial or publication status of the element on which it occurs
+  attribute status { text }
+db.toplevel.sections =
+  ((db.section+, db.simplesect*) | db.simplesect+)
+  | (db.sect1+, db.simplesect*)
+  | db.refentry+
+db.toplevel.blocks.or.sections =
+  (db.all.blocks+, db.toplevel.sections?) | db.toplevel.sections
+db.recursive.sections =
+  ((db.section+, db.simplesect*) | db.simplesect+)
+  | db.refentry+
+db.recursive.blocks.or.sections =
+  (db.all.blocks+, db.recursive.sections?) | db.recursive.sections
+db.divisions = db.part | db.reference
+db.components =
+  db.dedication
+  | db.acknowledgements
+  | db.preface
+  | db.chapter
+  | db.appendix
+  | db.article
+  | db.colophon
+db.navigation.components =
+  notAllowed | db.glossary | db.bibliography | db.index | db.toc
+db.component.contentmodel =
+  db.navigation.components*,
+  db.toplevel.blocks.or.sections,
+  db.navigation.components*
+db.setindex.components = notAllowed | db.setindex
+db.toc.components = notAllowed | db.toc
+db.set.components = db.set | db.book
+div {
+  db.set.status.attribute = db.status.attribute
+  db.set.role.attribute = attribute role { text }
+  db.set.attlist =
+    db.set.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.set.status.attribute?
+  db.set.info = db._info.title.req
+  db.set =
+    
+    ## A collection of books
+    element set {
+      db.set.attlist,
+      db.set.info,
+      db.toc.components?,
+      db.set.components+,
+      db.setindex.components?
+    }
+}
+db.book.components =
+  (db.navigation.components | db.components | db.divisions)* | db.topic*
+div {
+  db.book.status.attribute = db.status.attribute
+  db.book.role.attribute = attribute role { text }
+  db.book.attlist =
+    db.book.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.book.status.attribute?
+  db.book.info = db._info
+  db.book =
+    
+    ## A book
+    element book { db.book.attlist, db.book.info, db.book.components }
+}
+div {
+  db.dedication.status.attribute = db.status.attribute
+  db.dedication.role.attribute = attribute role { text }
+  db.dedication.attlist =
+    db.dedication.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.dedication.status.attribute?
+  db.dedication.info = db._info
+  db.dedication =
+    
+    ## The dedication of a book or other component
+    element dedication {
+      db.dedication.attlist, db.dedication.info, db.all.blocks+
+    }
+}
+div {
+  db.acknowledgements.status.attribute = db.status.attribute
+  db.acknowledgements.role.attribute = attribute role { text }
+  db.acknowledgements.attlist =
+    db.acknowledgements.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.acknowledgements.status.attribute?
+  db.acknowledgements.info = db._info
+  db.acknowledgements =
+    
+    ## Acknowledgements of a book or other component
+    element acknowledgements {
+      db.acknowledgements.attlist,
+      db.acknowledgements.info,
+      db.all.blocks+
+    }
+}
+div {
+  db.colophon.status.attribute = db.status.attribute
+  db.colophon.role.attribute = attribute role { text }
+  db.colophon.attlist =
+    db.colophon.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.colophon.status.attribute?
+  db.colophon.info = db._info
+  db.colophon =
+    
+    ## Text at the back of a book describing facts about its production
+    element colophon {
+      db.colophon.attlist,
+      db.colophon.info,
+      ((db.all.blocks+, db.simplesect*)
+       | (db.all.blocks*, db.simplesect+))
+    }
+}
+db.appendix.contentmodel = db.component.contentmodel | db.topic+
+div {
+  db.appendix.status.attribute = db.status.attribute
+  db.appendix.role.attribute = attribute role { text }
+  db.appendix.attlist =
+    db.appendix.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.appendix.status.attribute?
+  db.appendix.info = db._info.title.req
+  db.appendix =
+    
+    ## An appendix in a book or article
+    element appendix {
+      db.appendix.attlist, db.appendix.info, db.appendix.contentmodel?
+    }
+}
+db.chapter.contentmodel = db.component.contentmodel | db.topic+
+div {
+  db.chapter.status.attribute = db.status.attribute
+  db.chapter.role.attribute = attribute role { text }
+  db.chapter.attlist =
+    db.chapter.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.chapter.status.attribute?
+  db.chapter.info = db._info.title.req
+  db.chapter =
+    
+    ## A chapter, as of a book
+    element chapter {
+      db.chapter.attlist, db.chapter.info, db.chapter.contentmodel?
+    }
+}
+db.part.components =
+  (db.navigation.components | db.components)
+  | (db.refentry | db.reference)
+db.part.contentmodel = db.part.components+ | db.topic+
+div {
+  db.part.status.attribute = db.status.attribute
+  db.part.role.attribute = attribute role { text }
+  db.part.attlist =
+    db.part.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.part.status.attribute?
+  db.part.info = db._info.title.req
+  db.part =
+    
+    ## A division in a book
+    element part {
+      db.part.attlist,
+      db.part.info,
+      db.partintro?,
+      db.part.contentmodel?
+    }
+}
+div {
+  db.preface.status.attribute = db.status.attribute
+  db.preface.role.attribute = attribute role { text }
+  db.preface.attlist =
+    db.preface.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.preface.status.attribute?
+  db.preface.info = db._info.title.req
+  db.preface =
+    
+    ## Introductory matter preceding the first chapter of a book
+    element preface {
+      db.preface.attlist, db.preface.info, db.component.contentmodel?
+    }
+}
+div {
+  db.partintro.status.attribute = db.status.attribute
+  db.partintro.role.attribute = attribute role { text }
+  db.partintro.attlist =
+    db.partintro.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.partintro.status.attribute?
+  db.partintro.info = db._info
+  db.partintro =
+    
+    ## An introduction to the contents of a part
+    element partintro {
+      db.partintro.attlist,
+      db.partintro.info,
+      db.toplevel.blocks.or.sections?
+    }
+}
+div {
+  db.section.status.attribute = db.status.attribute
+  db.section.role.attribute = attribute role { text }
+  db.section.attlist =
+    db.section.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.section.status.attribute?
+  db.section.info = db._info.title.req
+  db.section =
+    
+    ## A recursive section
+    element section {
+      db.section.attlist,
+      db.section.info,
+      db.recursive.blocks.or.sections?,
+      db.navigation.components*
+    }
+}
+div {
+  db.simplesect.status.attribute = db.status.attribute
+  db.simplesect.role.attribute = attribute role { text }
+  db.simplesect.attlist =
+    db.simplesect.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.simplesect.status.attribute?
+  db.simplesect.info = db._info.title.req
+  db.simplesect =
+    
+    ## A section of a document with no subdivisions
+    element simplesect {
+      db.simplesect.attlist, db.simplesect.info, db.all.blocks*
+    }
+}
+db.article.components = db.toplevel.sections
+db.article.navcomponents =
+  db.navigation.components
+  | db.acknowledgements
+  | db.dedication
+  | db.appendix
+  | db.colophon
+div {
+  db.article.status.attribute = db.status.attribute
+  db.article.class.enumeration =
+    
+    ## A collection of frequently asked questions.
+    "faq"
+    | 
+      ## An article in a journal or other periodical.
+      "journalarticle"
+    | 
+      ## A description of a product.
+      "productsheet"
+    | 
+      ## A specification.
+      "specification"
+    | 
+      ## A technical report.
+      "techreport"
+    | 
+      ## A white paper.
+      "whitepaper"
+  db.article.class.attribute =
+    
+    ## Identifies the nature of the article
+    attribute class { db.article.class.enumeration }
+  db.article.role.attribute = attribute role { text }
+  db.article.attlist =
+    db.article.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.article.status.attribute?
+    & db.article.class.attribute?
+  db.article.info = db._info.title.req
+  db.article =
+    
+    ## An article
+    element article {
+      db.article.attlist,
+      db.article.info,
+      db.article.navcomponents*,
+      ((db.all.blocks+, db.article.components?)
+       | db.article.components),
+      db.article.navcomponents*
+    }
+}
+db.annotations.attribute =
+  
+  ## Identifies one or more annotations that apply to this element
+  attribute annotations { text }
+div {
+  db.annotation.role.attribute = attribute role { text }
+  db.annotation.annotates.attribute =
+    
+    ## Identifies one ore more elements to which this annotation applies
+    attribute annotates { text }
+  db.annotation.attlist =
+    db.annotation.role.attribute?
+    & db.annotation.annotates.attribute?
+    & db.common.attributes
+  db.annotation.info = db._info.title.only
+  db.annotation =
+    
+    ## An annotation
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:annotation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:annotation)"
+            "annotation must not occur among the children or descendants of annotation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element annotation {
+      db.annotation.attlist, db.annotation.info, db.all.blocks+
+    }
+}
+db.xlink.extended.type.attribute =
+  
+  ## Identifies the XLink extended link type
+  [
+    s:pattern [
+      name = "XLink extended placement"
+      "\x{a}" ~
+      "            "
+      s:rule [
+        context = "*[@xlink:type='extended']"
+        "\x{a}" ~
+        "               "
+        s:assert [
+          test = "not(parent::*[@xlink:type='extended'])"
+          "An XLink extended type element may not occur as the direct child of an XLink extended type element."
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      "\x{a}" ~
+      "         "
+    ]
+  ]
+  attribute xlink:type {
+    
+    ## An XLink extended link type
+    "extended"
+  }
+db.xlink.locator.type.attribute =
+  
+  ## Identifies the XLink locator link type
+  [
+    s:pattern [
+      name = "XLink locator placement"
+      "\x{a}" ~
+      "            "
+      s:rule [
+        context = "*[@xlink:type='locator']"
+        "\x{a}" ~
+        "               "
+        s:assert [
+          test = "not(parent::*[@xlink:type='extended'])"
+          "An XLink locator type element must occur as the direct child of an XLink extended type element."
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      "\x{a}" ~
+      "         "
+    ]
+  ]
+  attribute xlink:type {
+    
+    ## An XLink locator link type
+    "locator"
+  }
+db.xlink.arc.type.attribute =
+  
+  ## Identifies the XLink arc link type
+  [
+    s:pattern [
+      name = "XLink arc placement"
+      "\x{a}" ~
+      "            "
+      s:rule [
+        context = "*[@xlink:type='arc']"
+        "\x{a}" ~
+        "               "
+        s:assert [
+          test = "parent::*[@xlink:type='extended']"
+          "An XLink arc type element must occur as the direct child of an XLink extended type element."
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      "\x{a}" ~
+      "         "
+    ]
+  ]
+  attribute xlink:type {
+    
+    ## An XLink arc link type
+    "arc"
+  }
+db.xlink.resource.type.attribute =
+  
+  ## Identifies the XLink resource link type
+  [
+    s:pattern [
+      name = "XLink resource placement"
+      "\x{a}" ~
+      "            "
+      s:rule [
+        context = "*[@xlink:type='resource']"
+        "\x{a}" ~
+        "               "
+        s:assert [
+          test = "not(parent::*[@xlink:type='extended'])"
+          "An XLink resource type element must occur as the direct child of an XLink extended type element."
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      "\x{a}" ~
+      "         "
+    ]
+  ]
+  attribute xlink:type {
+    
+    ## An XLink resource link type
+    "resource"
+  }
+db.xlink.title.type.attribute =
+  
+  ## Identifies the XLink title link type
+  [
+    s:pattern [
+      name = "XLink title placement"
+      "\x{a}" ~
+      "            "
+      s:rule [
+        context = "*[@xlink:type='title']"
+        "\x{a}" ~
+        "               "
+        s:assert [
+          test =
+            "not(parent::*[@xlink:type='extended']) and not(parent::*[@xlink:type='locator']) and not(parent::*[@xlink:type='arc'])"
+          "An XLink title type element must occur as the direct child of an XLink extended, locator, or arc type element."
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      "\x{a}" ~
+      "         "
+    ]
+  ]
+  attribute xlink:type {
+    
+    ## An XLink title link type
+    "title"
+  }
+db.xlink.extended.link.attributes =
+  db.xlink.extended.type.attribute
+  & db.xlink.role.attribute?
+  & db.xlink.title.attribute?
+db.xlink.locator.link.attributes =
+  db.xlink.locator.type.attribute
+  & db.xlink.href.attribute
+  & db.xlink.role.attribute?
+  & db.xlink.title.attribute?
+  & db.xlink.label.attribute?
+db.xlink.arc.link.attributes =
+  db.xlink.arc.type.attribute
+  & db.xlink.arcrole.attribute?
+  & db.xlink.title.attribute?
+  & db.xlink.show.attribute?
+  & db.xlink.actuate.attribute?
+  & db.xlink.from.attribute?
+  & db.xlink.to.attribute?
+db.xlink.resource.link.attributes =
+  db.xlink.resource.type.attribute
+  & db.xlink.role.attribute?
+  & db.xlink.title.attribute?
+  & db.xlink.label.attribute?
+db.xlink.title.link.attributes = db.xlink.title.type.attribute
+db.xlink.from.attribute =
+  
+  ## Specifies the XLink traversal-from
+  attribute xlink:from { xsd:NMTOKEN }
+db.xlink.label.attribute =
+  
+  ## Specifies the XLink label
+  attribute xlink:label { xsd:NMTOKEN }
+db.xlink.to.attribute =
+  
+  ## Specifies the XLink traversal-to
+  attribute xlink:to { xsd:NMTOKEN }
+div {
+  db.extendedlink.role.attribute = attribute role { text }
+  db.extendedlink.attlist =
+    db.extendedlink.role.attribute?
+    & db.common.attributes
+    & 
+      ## Identifies the XLink link type 
+      [ a:defaultValue = "extended" ]
+      attribute xlink:type {
+        
+        ## An XLink extended link
+        "extended"
+      }?
+    & db.xlink.role.attribute?
+    & db.xlink.title.attribute?
+  db.extendedlink =
+    
+    ## An XLink extended link
+    element extendedlink {
+      db.extendedlink.attlist, (db.locator | db.arc | db.link)+
+    }
+}
+div {
+  db.locator.role.attribute = attribute role { text }
+  db.locator.attlist =
+    db.locator.role.attribute?
+    & db.common.attributes
+    & 
+      ## Identifies the XLink link type 
+      [ a:defaultValue = "locator" ]
+      attribute xlink:type {
+        
+        ## An XLink locator link
+        "locator"
+      }?
+    & db.xlink.href.attribute
+    & db.xlink.role.attribute?
+    & db.xlink.title.attribute?
+    & db.xlink.label.attribute?
+  db.locator =
+    
+    ## An XLink locator in an extendedlink
+    element locator { db.locator.attlist, empty }
+}
+div {
+  db.arc.role.attribute = attribute role { text }
+  db.arc.attlist =
+    db.arc.role.attribute?
+    & db.common.attributes
+    & 
+      ## Identifies the XLink link type 
+      [ a:defaultValue = "arc" ]
+      attribute xlink:type {
+        
+        ## An XLink arc link
+        "arc"
+      }?
+    & db.xlink.arcrole.attribute?
+    & db.xlink.title.attribute?
+    & db.xlink.show.attribute?
+    & db.xlink.actuate.attribute?
+    & db.xlink.from.attribute?
+    & db.xlink.to.attribute?
+  db.arc =
+    
+    ## An XLink arc in an extendedlink
+    element arc { db.arc.attlist, empty }
+}
+db.sect1.sections = (db.sect2+, db.simplesect*) | db.simplesect+
+div {
+  db.sect1.status.attribute = db.status.attribute
+  db.sect1.role.attribute = attribute role { text }
+  db.sect1.attlist =
+    db.sect1.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.sect1.status.attribute?
+  db.sect1.info = db._info.title.req
+  db.sect1 =
+    
+    ## A top-level section of document
+    element sect1 {
+      db.sect1.attlist,
+      db.sect1.info,
+      ((db.all.blocks+, db.sect1.sections?) | db.sect1.sections)?,
+      db.navigation.components*
+    }
+}
+db.sect2.sections = (db.sect3+, db.simplesect*) | db.simplesect+
+div {
+  db.sect2.status.attribute = db.status.attribute
+  db.sect2.role.attribute = attribute role { text }
+  db.sect2.attlist =
+    db.sect2.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.sect2.status.attribute?
+  db.sect2.info = db._info.title.req
+  db.sect2 =
+    
+    ## A subsection within a sect1
+    element sect2 {
+      db.sect2.attlist,
+      db.sect2.info,
+      ((db.all.blocks+, db.sect2.sections?) | db.sect2.sections)?,
+      db.navigation.components*
+    }
+}
+db.sect3.sections = (db.sect4+, db.simplesect*) | db.simplesect+
+div {
+  db.sect3.status.attribute = db.status.attribute
+  db.sect3.role.attribute = attribute role { text }
+  db.sect3.attlist =
+    db.sect3.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.sect3.status.attribute?
+  db.sect3.info = db._info.title.req
+  db.sect3 =
+    
+    ## A subsection within a sect2
+    element sect3 {
+      db.sect3.attlist,
+      db.sect3.info,
+      ((db.all.blocks+, db.sect3.sections?) | db.sect3.sections)?,
+      db.navigation.components*
+    }
+}
+db.sect4.sections = (db.sect5+, db.simplesect*) | db.simplesect+
+div {
+  db.sect4.status.attribute = db.status.attribute
+  db.sect4.role.attribute = attribute role { text }
+  db.sect4.attlist =
+    db.sect4.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.sect4.status.attribute?
+  db.sect4.info = db._info.title.req
+  db.sect4 =
+    
+    ## A subsection within a sect3
+    element sect4 {
+      db.sect4.attlist,
+      db.sect4.info,
+      ((db.all.blocks+, db.sect4.sections?) | db.sect4.sections)?,
+      db.navigation.components*
+    }
+}
+db.sect5.sections = db.simplesect+
+div {
+  db.sect5.status.attribute = db.status.attribute
+  db.sect5.role.attribute = attribute role { text }
+  db.sect5.attlist =
+    db.sect5.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.sect5.status.attribute?
+  db.sect5.info = db._info.title.req
+  db.sect5 =
+    
+    ## A subsection within a sect4
+    element sect5 {
+      db.sect5.attlist,
+      db.sect5.info,
+      ((db.all.blocks+, db.sect5.sections?) | db.sect5.sections)?,
+      db.navigation.components*
+    }
+}
+db.toplevel.refsection = db.refsection+ | db.refsect1+
+db.secondlevel.refsection = db.refsection+ | db.refsect2+
+db.reference.components = db.refentry
+div {
+  db.reference.status.attribute = db.status.attribute
+  db.reference.role.attribute = attribute role { text }
+  db.reference.attlist =
+    db.reference.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.reference.status.attribute?
+    & db.label.attribute?
+  db.reference.info = db._info.title.req
+  db.reference =
+    
+    ## A collection of reference entries
+    element reference {
+      db.reference.attlist,
+      db.reference.info,
+      db.partintro?,
+      db.reference.components*
+    }
+}
+div {
+  db.refentry.status.attribute = db.status.attribute
+  db.refentry.role.attribute = attribute role { text }
+  db.refentry.attlist =
+    db.refentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.refentry.status.attribute?
+    & db.label.attribute?
+  db.refentry.info = db._info.title.forbidden
+  db.refentry =
+    
+    ## A reference page (originally a UNIX man-style reference page)
+    element refentry {
+      db.refentry.attlist,
+      db.indexterm*,
+      db.refentry.info,
+      db.refmeta?,
+      db.refnamediv+,
+      db.refsynopsisdiv?,
+      db.toplevel.refsection
+    }
+}
+div {
+  db.refmeta.role.attribute = attribute role { text }
+  db.refmeta.attlist =
+    db.refmeta.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refmeta =
+    
+    ## Meta-information for a reference entry
+    element refmeta {
+      db.refmeta.attlist,
+      db.indexterm*,
+      db.refentrytitle,
+      db.manvolnum?,
+      db.refmiscinfo*,
+      db.indexterm*
+    }
+}
+db.refmiscinfo.class.enumeration =
+  
+  ## The name of the software product or component to which this topic applies
+  "source"
+  | 
+    ## The version of the software product or component to which this topic applies
+    "version"
+  | 
+    ## The section title of the reference page (e.g., User Commands)
+    "manual"
+  | 
+    ## The section title of the reference page (believed synonymous with "manual" but in wide use)
+    "sectdesc"
+  | 
+    ## The name of the software product or component to which this topic applies (e.g., SunOS x.y; believed synonymous with "source" but in wide use)
+    "software"
+db.refmiscinfo.class-enum.attribute =
+  
+  ## Identifies the kind of miscellaneous information
+  attribute class { db.refmiscinfo.class.enumeration }?
+db.refmiscinfo.class-other.attribute =
+  
+  ## Identifies the nature of non-standard miscellaneous information
+  attribute otherclass { text }
+db.refmiscinfo.class-other.attributes =
+  
+  ## Identifies the kind of miscellaneious information
+  attribute class {
+    
+    ## Indicates that the information is some 'other' kind.
+    "other"
+  }
+  & db.refmiscinfo.class-other.attribute
+db.refmiscinfo.class.attribute =
+  db.refmiscinfo.class-enum.attribute
+  | db.refmiscinfo.class-other.attributes
+div {
+  db.refmiscinfo.role.attribute = attribute role { text }
+  db.refmiscinfo.attlist =
+    db.refmiscinfo.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.refmiscinfo.class.attribute?
+  db.refmiscinfo =
+    
+    ## Meta-information for a reference entry other than the title and volume number
+    element refmiscinfo { db.refmiscinfo.attlist, db._text }
+}
+div {
+  db.refnamediv.role.attribute = attribute role { text }
+  db.refnamediv.attlist =
+    db.refnamediv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refnamediv =
+    
+    ## The name, purpose, and classification of a reference page
+    element refnamediv {
+      db.refnamediv.attlist,
+      db.refdescriptor?,
+      db.refname+,
+      db.refpurpose,
+      db.refclass*
+    }
+}
+div {
+  db.refdescriptor.role.attribute = attribute role { text }
+  db.refdescriptor.attlist =
+    db.refdescriptor.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refdescriptor =
+    
+    ## A description of the topic of a reference page
+    element refdescriptor { db.refdescriptor.attlist, db.all.inlines* }
+}
+div {
+  db.refname.role.attribute = attribute role { text }
+  db.refname.attlist =
+    db.refname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refname =
+    
+    ## The name of (one of) the subject(s) of a reference page
+    element refname { db.refname.attlist, db.all.inlines* }
+}
+div {
+  db.refpurpose.role.attribute = attribute role { text }
+  db.refpurpose.attlist =
+    db.refpurpose.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refpurpose =
+    
+    ## A short (one sentence) synopsis of the topic of a reference page
+    element refpurpose { db.refpurpose.attlist, db.all.inlines* }
+}
+div {
+  db.refclass.role.attribute = attribute role { text }
+  db.refclass.attlist =
+    db.refclass.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refclass =
+    
+    ## The scope or other indication of applicability of a reference entry
+    element refclass { db.refclass.attlist, (text | db.application)* }
+}
+div {
+  db.refsynopsisdiv.role.attribute = attribute role { text }
+  db.refsynopsisdiv.attlist =
+    db.refsynopsisdiv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refsynopsisdiv.info = db._info
+  db.refsynopsisdiv =
+    
+    ## A syntactic synopsis of the subject of the reference page
+    element refsynopsisdiv {
+      db.refsynopsisdiv.attlist,
+      db.refsynopsisdiv.info,
+      ((db.all.blocks+, db.secondlevel.refsection?)
+       | db.secondlevel.refsection)
+    }
+}
+div {
+  db.refsection.status.attribute = db.status.attribute
+  db.refsection.role.attribute = attribute role { text }
+  db.refsection.attlist =
+    db.refsection.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.refsection.status.attribute?
+    & db.label.attribute?
+  db.refsection.info = db._info.title.req
+  db.refsection =
+    
+    ## A recursive section in a refentry
+    element refsection {
+      db.refsection.attlist,
+      db.refsection.info,
+      ((db.all.blocks+, db.refsection*) | db.refsection+)
+    }
+}
+db.refsect1.sections = db.refsect2+
+div {
+  db.refsect1.status.attribute = db.status.attribute
+  db.refsect1.role.attribute = attribute role { text }
+  db.refsect1.attlist =
+    db.refsect1.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.refsect1.status.attribute?
+  db.refsect1.info = db._info.title.req
+  db.refsect1 =
+    
+    ## A major subsection of a reference entry
+    element refsect1 {
+      db.refsect1.attlist,
+      db.refsect1.info,
+      ((db.all.blocks+, db.refsect1.sections?) | db.refsect1.sections)
+    }
+}
+db.refsect2.sections = db.refsect3+
+div {
+  db.refsect2.status.attribute = db.status.attribute
+  db.refsect2.role.attribute = attribute role { text }
+  db.refsect2.attlist =
+    db.refsect2.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.refsect2.status.attribute?
+  db.refsect2.info = db._info.title.req
+  db.refsect2 =
+    
+    ## A subsection of a refsect1
+    element refsect2 {
+      db.refsect2.attlist,
+      db.refsect2.info,
+      ((db.all.blocks+, db.refsect2.sections?) | db.refsect2.sections)
+    }
+}
+div {
+  db.refsect3.status.attribute = db.status.attribute
+  db.refsect3.role.attribute = attribute role { text }
+  db.refsect3.attlist =
+    db.refsect3.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.refsect3.status.attribute?
+  db.refsect3.info = db._info.title.req
+  db.refsect3 =
+    
+    ## A subsection of a refsect2
+    element refsect3 {
+      db.refsect3.attlist, db.refsect3.info, db.all.blocks+
+    }
+}
+db.glossary.inlines =
+  db.firstterm | db.glossterm | db._firstterm | db._glossterm
+db.baseform.attribute =
+  
+  ## Specifies the base form of the term, the one that appears in the glossary. This allows adjectival, plural, and other variations of the term to appear in the element. The element content is the default base form.
+  attribute baseform { text }?
+div {
+  db.glosslist.role.attribute = attribute role { text }
+  db.glosslist.attlist =
+    db.glosslist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.glosslist.info = db._info.title.only
+  db.glosslist =
+    
+    ## A wrapper for a list of glossary entries
+    element glosslist {
+      db.glosslist.attlist,
+      db.glosslist.info?,
+      db.all.blocks*,
+      db.glossentry+
+    }
+}
+div {
+  db.glossentry.role.attribute = attribute role { text }
+  db.glossentry.sortas.attribute =
+    
+    ## Specifies the string by which the element's content is to be sorted; if unspecified, the content is used
+    attribute sortas { text }
+  db.glossentry.attlist =
+    db.glossentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.glossentry.sortas.attribute?
+  db.glossentry =
+    
+    ## An entry in a glossary or glosslist
+    element glossentry {
+      db.glossentry.attlist,
+      db.glossterm,
+      db.acronym?,
+      db.abbrev?,
+      db.indexterm*,
+      (db.glosssee | db.glossdef+)
+    }
+}
+div {
+  db.glossdef.role.attribute = attribute role { text }
+  db.glossdef.subject.attribute =
+    
+    ## Specifies a list of keywords for the definition
+    attribute subject { text }
+  db.glossdef.attlist =
+    db.glossdef.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.glossdef.subject.attribute?
+  db.glossdef =
+    
+    ## A definition in a glossentry
+    element glossdef {
+      db.glossdef.attlist, db.all.blocks+, db.glossseealso*
+    }
+}
+div {
+  db.glosssee.role.attribute = attribute role { text }
+  db.glosssee.otherterm.attribute =
+    
+    ## Identifies the other term
+    attribute otherterm { xsd:IDREF }
+  db.glosssee.attlist =
+    db.glosssee.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.glosssee.otherterm.attribute?
+  db.glosssee =
+    
+    ## A cross-reference from one glossentry
+    ##  to another
+    [
+      s:pattern [
+        name = "Glosssary 'see' type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:glosssee[@otherterm]"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'"
+            "@otherterm on glosssee must point to a glossentry."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element glosssee { db.glosssee.attlist, db.all.inlines* }
+}
+div {
+  db.glossseealso.role.attribute = attribute role { text }
+  db.glossseealso.otherterm.attribute =
+    
+    ## Identifies the other term
+    attribute otherterm { xsd:IDREF }
+  db.glossseealso.attlist =
+    db.glossseealso.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.glossseealso.otherterm.attribute?
+  db.glossseealso =
+    
+    ## A cross-reference from one glossentry to another
+    [
+      s:pattern [
+        name = "Glossary 'seealso' type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:glossseealso[@otherterm]"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'"
+            "@otherterm on glossseealso must point to a glossentry."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element glossseealso { db.glossseealso.attlist, db.all.inlines* }
+}
+div {
+  db.firstterm.role.attribute = attribute role { text }
+  db.firstterm.attlist =
+    db.firstterm.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.baseform.attribute
+  db.firstterm =
+    
+    ## The first occurrence of a term
+    [
+      s:pattern [
+        name = "Glossary 'firstterm' type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:firstterm[@linkend]"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
+            "@linkend on firstterm must point to a glossentry."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element firstterm { db.firstterm.attlist, db.all.inlines* }
+}
+div {
+  db._firstterm.role.attribute = attribute role { text }
+  db._firstterm.attlist =
+    db._firstterm.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.baseform.attribute
+  db._firstterm =
+    
+    ## The first occurrence of a term, with limited content
+    [
+      s:pattern [
+        name = "Glossary 'firstterm' type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:firstterm[@linkend]"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
+            "@linkend on firstterm must point to a glossentry."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element firstterm { db._firstterm.attlist, db._text }
+}
+div {
+  db.glossterm.role.attribute = attribute role { text }
+  db.glossterm.attlist =
+    db.glossterm.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.baseform.attribute
+  db.glossterm =
+    
+    ## A glossary term
+    [
+      s:pattern [
+        name = "Glossary 'glossterm' type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:glossterm[@linkend]"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
+            "@linkend on glossterm must point to a glossentry."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element glossterm { db.glossterm.attlist, db.all.inlines* }
+}
+div {
+  db._glossterm.role.attribute = attribute role { text }
+  db._glossterm.attlist =
+    db._glossterm.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.baseform.attribute
+  db._glossterm =
+    
+    ## A glossary term
+    [
+      s:pattern [
+        name = "Glossary 'glossterm' type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:glossterm[@linkend]"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
+            "@linkend on glossterm must point to a glossentry."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element glossterm { db._glossterm.attlist, db._text }
+}
+div {
+  db.glossary.status.attribute = db.status.attribute
+  db.glossary.role.attribute = attribute role { text }
+  db.glossary.attlist =
+    db.glossary.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.glossary.status.attribute?
+  db.glossary.info = db._info
+  db.glossary =
+    
+    ## A glossary
+    element glossary {
+      db.glossary.attlist,
+      db.glossary.info,
+      db.all.blocks*,
+      (db.glossdiv* | db.glossentry*),
+      db.bibliography?
+    }
+}
+div {
+  db.glossdiv.status.attribute = db.status.attribute
+  db.glossdiv.role.attribute = attribute role { text }
+  db.glossdiv.attlist =
+    db.glossdiv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.glossdiv.status.attribute?
+  db.glossdiv.info = db._info.title.req
+  db.glossdiv =
+    
+    ## A division in a glossary
+    element glossdiv {
+      db.glossdiv.attlist,
+      db.glossdiv.info,
+      db.all.blocks*,
+      db.glossentry+
+    }
+}
+div {
+  db.termdef.role.attribute = attribute role { text }
+  db.termdef.attlist =
+    db.termdef.role.attribute?
+    & db.glossentry.sortas.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.baseform.attribute
+  db.termdef =
+    
+    ## An inline definition of a term
+    [
+      s:pattern [
+        name = "Glossary term definition constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:termdef"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "count(db:firstterm) = 1"
+            "A termdef must contain exactly one firstterm"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element termdef { db.termdef.attlist, db.all.inlines* }
+}
+db.relation.attribute =
+  
+  ## Identifies the relationship between the bibliographic elemnts
+  attribute relation { text }
+div {
+  db.biblioentry.role.attribute = attribute role { text }
+  db.biblioentry.attlist =
+    db.biblioentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.biblioentry =
+    
+    ## A raw entry in a bibliography
+    element biblioentry {
+      db.biblioentry.attlist, db.bibliographic.elements+
+    }
+}
+div {
+  db.bibliomixed.role.attribute = attribute role { text }
+  db.bibliomixed.attlist =
+    db.bibliomixed.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.bibliomixed =
+    
+    ## A cooked entry in a bibliography
+    element bibliomixed {
+      db.bibliomixed.attlist,
+      ((db._text
+        | db.honorific
+        | db.firstname
+        | db.surname
+        | db.lineage
+        | db.othername
+        | db.bibliographic.elements)*
+       | (db._text
+          | db.honorific
+          | db.givenname
+          | db.surname
+          | db.lineage
+          | db.othername
+          | db.bibliographic.elements)*)
+    }
+}
+div {
+  db.biblioset.relation.attribute = db.relation.attribute
+  db.biblioset.role.attribute = attribute role { text }
+  db.biblioset.attlist =
+    db.biblioset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.biblioset.relation.attribute?
+  db.biblioset =
+    
+    ## A raw container for related bibliographic information
+    element biblioset {
+      db.biblioset.attlist, db.bibliographic.elements+
+    }
+}
+div {
+  db.bibliomset.relation.attribute = db.relation.attribute
+  db.bibliomset.role.attribute = attribute role { text }
+  db.bibliomset.attlist =
+    db.bibliomset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.bibliomset.relation.attribute?
+  db.bibliomset =
+    
+    ## A cooked container for related bibliographic information
+    element bibliomset {
+      db.bibliomset.attlist,
+      ((db._text
+        | db.honorific
+        | db.firstname
+        | db.surname
+        | db.lineage
+        | db.othername
+        | db.bibliographic.elements)*
+       | (db._text
+          | db.honorific
+          | db.givenname
+          | db.surname
+          | db.lineage
+          | db.othername
+          | db.bibliographic.elements)*)
+    }
+}
+div {
+  db.bibliomisc.role.attribute = attribute role { text }
+  db.bibliomisc.attlist =
+    db.bibliomisc.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.bibliomisc =
+    
+    ## Untyped bibliographic information
+    element bibliomisc { db.bibliomisc.attlist, db._text }
+}
+div {
+  db.bibliography.status.attrib = db.status.attribute
+  db.bibliography.role.attribute = attribute role { text }
+  db.bibliography.attlist =
+    db.bibliography.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.bibliography.status.attrib?
+  db.bibliography.info = db._info
+  db.bibliography =
+    
+    ## A bibliography
+    element bibliography {
+      db.bibliography.attlist,
+      db.bibliography.info,
+      db.all.blocks*,
+      (db.bibliodiv+ | (db.biblioentry | db.bibliomixed)+)
+    }
+}
+div {
+  db.bibliodiv.status.attrib = db.status.attribute
+  db.bibliodiv.role.attribute = attribute role { text }
+  db.bibliodiv.attlist =
+    db.bibliodiv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.bibliodiv.status.attrib?
+  db.bibliodiv.info = db._info.title.req
+  db.bibliodiv =
+    
+    ## A section of a bibliography
+    element bibliodiv {
+      db.bibliodiv.attlist,
+      db.bibliodiv.info,
+      db.all.blocks*,
+      (db.biblioentry | db.bibliomixed)+
+    }
+}
+div {
+  db.bibliolist.role.attribute = attribute role { text }
+  db.bibliolist.attlist =
+    db.bibliolist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.bibliolist.info = db._info.title.only
+  db.bibliolist =
+    
+    ## A wrapper for a list of bibliography entries
+    element bibliolist {
+      db.bibliolist.attlist,
+      db.bibliolist.info?,
+      db.all.blocks*,
+      (db.biblioentry | db.bibliomixed)+
+    }
+}
+div {
+  db.biblioref.role.attribute = attribute role { text }
+  db.biblioref.xrefstyle.attribute = db.xrefstyle.attribute
+  db.biblioref.endterm.attribute = db.endterm.attribute
+  db.biblioref.units.attribute =
+    
+    ## The units (for example, pages) used to identify the beginning and ending of a reference.
+    attribute units { xsd:token }
+  db.biblioref.begin.attribute =
+    
+    ## Identifies the beginning of a reference; the location within the work that is being referenced.
+    attribute begin { xsd:token }
+  db.biblioref.end.attribute =
+    
+    ## Identifies the end of a reference.
+    attribute end { xsd:token }
+  db.biblioref.attlist =
+    db.biblioref.role.attribute?
+    & db.common.attributes
+    & db.common.req.linking.attributes
+    & db.biblioref.xrefstyle.attribute?
+    & db.biblioref.endterm.attribute?
+    & db.biblioref.units.attribute?
+    & db.biblioref.begin.attribute?
+    & db.biblioref.end.attribute?
+  db.biblioref =
+    
+    ## A cross-reference to a bibliographic entry
+    element biblioref { db.biblioref.attlist, empty }
+}
+db.significance.enumeration =
+  
+  ## Normal
+  "normal"
+  | 
+    ## Preferred
+    "preferred"
+db.significance.attribute =
+  
+  ## Specifies the significance of the term
+  attribute significance { db.significance.enumeration }
+db.zone.attribute =
+  
+  ## Specifies the IDs of the elements to which this term applies
+  attribute zone { xsd:IDREFS }
+db.indexterm.pagenum.attribute =
+  
+  ## Indicates the page on which this index term occurs in some version of the printed document
+  attribute pagenum { text }
+db.scope.enumeration =
+  
+  ## All indexes
+  "all"
+  | 
+    ## The global index (as for a combined index of a set of books)
+    "global"
+  | 
+    ## The local index (the index for this document only)
+    "local"
+db.scope.attribute =
+  
+  ## Specifies the scope of the index term
+  attribute scope { db.scope.enumeration }
+db.sortas.attribute =
+  
+  ## Specifies the string by which the term is to be sorted; if unspecified, the term content is used
+  attribute sortas { text }
+db.index.type.attribute =
+  
+  ## Specifies the target index for this term
+  attribute type { text }
+div {
+  db.itermset.role.attribute = attribute role { text }
+  db.itermset.attlist =
+    db.itermset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.itermset =
+    
+    ## A set of index terms in the meta-information of a document
+    element itermset { db.itermset.attlist, db.indexterm.singular+ }
+}
+db.indexterm.contentmodel =
+  db.primary?,
+  ((db.secondary,
+    ((db.tertiary, (db.see | db.seealso+)?)
+     | db.see
+     | db.seealso+)?)
+   | db.see
+   | db.seealso+)?
+div {
+  db.indexterm.singular.role.attribute = attribute role { text }
+  db.indexterm.singular.class.attribute =
+    
+    ## Identifies the class of index term
+    attribute class {
+      
+      ## A singular index term
+      "singular"
+    }
+  db.indexterm.singular.attlist =
+    db.indexterm.singular.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.significance.attribute?
+    & db.zone.attribute?
+    & db.indexterm.pagenum.attribute?
+    & db.scope.attribute?
+    & db.index.type.attribute?
+    & db.indexterm.singular.class.attribute?
+  db.indexterm.singular =
+    
+    ## A wrapper for an indexed term
+    element indexterm {
+      db.indexterm.singular.attlist, db.indexterm.contentmodel
+    }
+}
+div {
+  db.indexterm.startofrange.role.attribute = attribute role { text }
+  db.indexterm.startofrange.class.attribute =
+    
+    ## Identifies the class of index term
+    attribute class {
+      
+      ## The start of a range
+      "startofrange"
+    }
+  db.indexterm.startofrange.attlist =
+    db.indexterm.startofrange.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.significance.attribute?
+    & db.zone.attribute?
+    & db.indexterm.pagenum.attribute?
+    & db.scope.attribute?
+    & db.index.type.attribute?
+    & db.indexterm.startofrange.class.attribute
+  db.indexterm.startofrange =
+    
+    ## A wrapper for an indexed term that covers a range
+    element indexterm {
+      db.indexterm.startofrange.attlist, db.indexterm.contentmodel
+    }
+}
+div {
+  db.indexterm.endofrange.role.attribute = attribute role { text }
+  db.indexterm.endofrange.class.attribute =
+    
+    ## Identifies the class of index term
+    attribute class {
+      
+      ## The end of a range
+      "endofrange"
+    }
+  db.indexterm.endofrange.startref.attribute =
+    
+    ## Points to the start of the range
+    attribute startref { xsd:IDREF }
+  db.indexterm.endofrange.attlist =
+    db.indexterm.endofrange.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.indexterm.endofrange.class.attribute
+    & db.indexterm.endofrange.startref.attribute
+  db.indexterm.endofrange =
+    
+    ## Identifies the end of a range associated with an indexed term
+    element indexterm { db.indexterm.endofrange.attlist, empty }
+}
+div {
+  db.indexterm =
+    db.indexterm.singular
+    | db.indexterm.startofrange
+    | db.indexterm.endofrange
+}
+div {
+  db.primary.role.attribute = attribute role { text }
+  db.primary.attlist =
+    db.primary.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.sortas.attribute?
+  db.primary =
+    
+    ## The primary word or phrase under which an index term should be sorted
+    element primary { db.primary.attlist, db.all.inlines* }
+}
+div {
+  db.secondary.role.attribute = attribute role { text }
+  db.secondary.attlist =
+    db.secondary.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.sortas.attribute?
+  db.secondary =
+    
+    ## A secondary word or phrase in an index term
+    element secondary { db.secondary.attlist, db.all.inlines* }
+}
+div {
+  db.tertiary.role.attribute = attribute role { text }
+  db.tertiary.attlist =
+    db.tertiary.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.sortas.attribute?
+  db.tertiary =
+    
+    ## A tertiary word or phrase in an index term
+    element tertiary { db.tertiary.attlist, db.all.inlines* }
+}
+div {
+  db.see.role.attribute = attribute role { text }
+  db.see.attlist =
+    db.see.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.see =
+    
+    ## Part of an index term directing the reader instead to another entry in the index
+    element see { db.see.attlist, db.all.inlines* }
+}
+div {
+  db.seealso.role.attribute = attribute role { text }
+  db.seealso.attlist =
+    db.seealso.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.seealso =
+    
+    ## Part of an index term directing the reader also to another entry in the index
+    element seealso { db.seealso.attlist, db.all.inlines* }
+}
+div {
+  db.index.status.attribute = db.status.attribute
+  db.index.role.attribute = attribute role { text }
+  db.index.attlist =
+    db.index.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.index.status.attribute?
+    & db.index.type.attribute?
+  db.index.info = db._info
+  # Yes, db.indexdiv* and db.indexentry*; that way an <index/> is valid.
+  # Authors can use an empty index to indicate where a generated index should
+  # appear.
+  db.index =
+    
+    ## An index to a book or part of a book
+    element index {
+      db.index.attlist,
+      db.index.info,
+      db.all.blocks*,
+      (db.indexdiv* | db.indexentry* | db.segmentedlist)
+    }
+}
+div {
+  db.setindex.status.attribute = db.status.attribute
+  db.setindex.role.attribute = attribute role { text }
+  db.setindex.attlist =
+    db.setindex.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.setindex.status.attribute?
+    & db.index.type.attribute?
+  db.setindex.info = db._info
+  db.setindex =
+    
+    ## An index to a set of books
+    element setindex {
+      db.setindex.attlist,
+      db.setindex.info,
+      db.all.blocks*,
+      (db.indexdiv* | db.indexentry*)
+    }
+}
+div {
+  db.indexdiv.status.attribute = db.status.attribute
+  db.indexdiv.role.attribute = attribute role { text }
+  db.indexdiv.attlist =
+    db.indexdiv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.indexdiv.status.attribute?
+  db.indexdiv.info = db._info.title.req
+  db.indexdiv =
+    
+    ## A division in an index
+    element indexdiv {
+      db.indexdiv.attlist,
+      db.indexdiv.info,
+      db.all.blocks*,
+      (db.indexentry+ | db.segmentedlist)
+    }
+}
+div {
+  db.indexentry.role.attribute = attribute role { text }
+  db.indexentry.attlist =
+    db.indexentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.indexentry =
+    
+    ## An entry in an index
+    element indexentry {
+      db.indexentry.attlist,
+      db.primaryie,
+      (db.seeie | db.seealsoie)*,
+      (db.secondaryie, (db.seeie | db.seealsoie | db.tertiaryie)*)*
+    }
+}
+div {
+  db.primaryie.role.attribute = attribute role { text }
+  db.primaryie.attlist =
+    db.primaryie.role.attribute?
+    & db.common.attributes
+    & db.linkends.attribute?
+  db.primaryie =
+    
+    ## A primary term in an index entry, not in the text
+    element primaryie { db.primaryie.attlist, db.all.inlines* }
+}
+div {
+  db.secondaryie.role.attribute = attribute role { text }
+  db.secondaryie.attlist =
+    db.secondaryie.role.attribute?
+    & db.common.attributes
+    & db.linkends.attribute?
+  db.secondaryie =
+    
+    ## A secondary term in an index entry, rather than in the text
+    element secondaryie { db.secondaryie.attlist, db.all.inlines* }
+}
+div {
+  db.tertiaryie.role.attribute = attribute role { text }
+  db.tertiaryie.attlist =
+    db.tertiaryie.role.attribute?
+    & db.common.attributes
+    & db.linkends.attribute?
+  db.tertiaryie =
+    
+    ## A tertiary term in an index entry, rather than in the text
+    element tertiaryie { db.tertiaryie.attlist, db.all.inlines* }
+}
+div {
+  db.seeie.role.attribute = attribute role { text }
+  db.seeie.attlist =
+    db.seeie.role.attribute?
+    & db.common.attributes
+    & db.linkend.attribute?
+  db.seeie =
+    
+    ## A See
+    ## entry in an index, rather than in the text
+    element seeie { db.seeie.attlist, db.all.inlines* }
+}
+div {
+  db.seealsoie.role.attribute = attribute role { text }
+  db.seealsoie.attlist =
+    db.seealsoie.role.attribute?
+    & db.common.attributes
+    & db.linkends.attribute?
+  db.seealsoie =
+    
+    ## A See also
+    ##  entry in an index, rather than in the text
+    element seealsoie { db.seealsoie.attlist, db.all.inlines* }
+}
+db.toc.pagenum.attribute =
+  
+  ## Indicates the page on which this element occurs in some version of the printed document
+  attribute pagenum { text }
+div {
+  db.toc.role.attribute = attribute role { text }
+  db.toc.attlist =
+    db.toc.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.toc.info = db._info.title.only
+  db.toc =
+    
+    ## A table of contents
+    element toc {
+      db.toc.attlist,
+      db.toc.info,
+      db.all.blocks*,
+      (db.tocdiv | db.tocentry)*
+    }
+}
+div {
+  db.tocdiv.role.attribute = attribute role { text }
+  db.tocdiv.pagenum.attribute = db.toc.pagenum.attribute
+  db.tocdiv.attlist =
+    db.tocdiv.role.attribute?
+    & db.common.attributes
+    & db.tocdiv.pagenum.attribute?
+    & db.linkend.attribute?
+  db.tocdiv.info = db._info
+  db.tocdiv =
+    
+    ## A division in a table of contents
+    element tocdiv {
+      db.tocdiv.attlist,
+      db.tocdiv.info,
+      db.all.blocks*,
+      (db.tocdiv | db.tocentry)+
+    }
+}
+div {
+  db.tocentry.role.attribute = attribute role { text }
+  db.tocentry.pagenum.attribute = db.toc.pagenum.attribute
+  db.tocentry.attlist =
+    db.tocentry.role.attribute?
+    & db.common.attributes
+    & db.tocentry.pagenum.attribute?
+    & db.linkend.attribute?
+  db.tocentry =
+    
+    ## A component title in a table of contents
+    element tocentry { db.tocentry.attlist, db.all.inlines* }
+}
+db.task.info = db._info.title.req
+div {
+  db.task.role.attribute = attribute role { text }
+  db.task.attlist =
+    db.task.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.task =
+    
+    ## A task to be completed
+    element task {
+      db.task.attlist,
+      db.task.info,
+      db.tasksummary?,
+      db.taskprerequisites?,
+      db.procedure+,
+      db.example*,
+      db.taskrelated?
+    }
+}
+div {
+  db.tasksummary.role.attribute = attribute role { text }
+  db.tasksummary.attlist =
+    db.tasksummary.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.tasksummary.info = db._info.title.only
+  db.tasksummary =
+    
+    ## A summary of a task
+    element tasksummary {
+      db.tasksummary.attlist, db.tasksummary.info, db.all.blocks+
+    }
+}
+div {
+  db.taskprerequisites.role.attribute = attribute role { text }
+  db.taskprerequisites.attlist =
+    db.taskprerequisites.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.taskprerequisites.info = db._info.title.only
+  db.taskprerequisites =
+    
+    ## The prerequisites for a task
+    element taskprerequisites {
+      db.taskprerequisites.attlist,
+      db.taskprerequisites.info,
+      db.all.blocks+
+    }
+}
+div {
+  db.taskrelated.role.attribute = attribute role { text }
+  db.taskrelated.attlist =
+    db.taskrelated.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.taskrelated.info = db._info.title.only
+  db.taskrelated =
+    
+    ## Information related to a task
+    element taskrelated {
+      db.taskrelated.attlist, db.taskrelated.info, db.all.blocks+
+    }
+}
+db.area.units.enumeration =
+  
+  ## Coordinates expressed as a pair of CALS graphic coordinates.
+  "calspair"
+  | 
+    ## Coordinates expressed as a line and column.
+    "linecolumn"
+  | 
+    ## Coordinates expressed as a pair of lines and columns.
+    "linecolumnpair"
+  | 
+    ## Coordinates expressed as a line range.
+    "linerange"
+db.area.units-enum.attribute =
+  
+  ## Identifies the units used in the coords attribute. The default units vary according to the type of callout specified: calspair
+  ##  for graphics and linecolumn
+  ##  for line-oriented elements.
+  attribute units { db.area.units.enumeration }?
+db.area.units-other.attributes =
+  
+  ## Indicates that non-standard units are used for this area
+  ## . In this case otherunits
+  ##  must be specified.
+  attribute units {
+    
+    ## Coordinates expressed in some non-standard units.
+    "other"
+  }?,
+  
+  ## Identifies the units used in the coords
+  ##  attribute when the units
+  ##  attribute is other
+  ## . This attribute is forbidden otherwise.
+  attribute otherunits { xsd:NMTOKEN }
+db.area.units.attribute =
+  db.area.units-enum.attribute | db.area.units-other.attributes
+div {
+  db.calloutlist.role.attribute = attribute role { text }
+  db.calloutlist.attlist =
+    db.calloutlist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.calloutlist.info = db._info.title.only
+  db.calloutlist =
+    
+    ## A list of callout
+    ## s
+    element calloutlist {
+      db.calloutlist.attlist,
+      db.calloutlist.info,
+      db.all.blocks*,
+      db.callout+
+    }
+}
+div {
+  db.callout.role.attribute = attribute role { text }
+  db.callout.arearefs.attribute =
+    
+    ## Identifies the areas described by this callout.
+    attribute arearefs { xsd:IDREFS }
+  db.callout.attlist =
+    db.callout.role.attribute?
+    & db.common.attributes
+    & db.callout.arearefs.attribute
+  db.callout =
+    
+    ## A called out
+    ##  description of a marked area
+    element callout { db.callout.attlist, db.all.blocks+ }
+}
+div {
+  db.programlistingco.role.attribute = attribute role { text }
+  db.programlistingco.attlist =
+    db.programlistingco.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.programlistingco.info = db._info.title.forbidden
+  db.programlistingco =
+    
+    ## A program listing with associated areas used in callouts
+    element programlistingco {
+      db.programlistingco.attlist,
+      db.programlistingco.info,
+      db.areaspec,
+      db.programlisting,
+      db.calloutlist*
+    }
+}
+div {
+  db.areaspec.role.attribute = attribute role { text }
+  db.areaspec.attlist =
+    db.areaspec.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.area.units.attribute
+  db.areaspec =
+    
+    ## A collection of regions in a graphic or code example
+    element areaspec { db.areaspec.attlist, (db.area | db.areaset)+ }
+}
+div {
+  db.area.role.attribute = attribute role { text }
+  db.area.linkends.attribute =
+    
+    ## Point to the callout
+    ## s which refer to this area. (This provides bidirectional linking which may be useful in online presentation.)
+    attribute linkends { xsd:IDREFS }
+  db.area.label.attribute =
+    
+    ## Specifies an identifying number or string that may be used in presentation. The area label might be drawn on top of the figure, for example, at the position indicated by the coords attribute.
+    attribute label { text }
+  db.area.coords.attribute =
+    
+    ## Provides the coordinates of the area. The coordinates must be interpreted using the units
+    ##  specified.
+    attribute coords { text }
+  db.area.attlist =
+    db.area.role.attribute?
+    & db.common.idreq.attributes
+    & db.area.units.attribute
+    & (db.area.linkends.attribute | db.xlink.simple.link.attributes)?
+    & db.area.label.attribute?
+    & db.area.coords.attribute
+  db.area =
+    
+    ## A region defined for a callout in a graphic or code example
+    element area { db.area.attlist, db.alt? }
+}
+div {
+  # The only difference is that xml:id is optional
+  db.area.inareaset.attlist =
+    db.area.role.attribute?
+    & db.common.attributes
+    & db.area.units.attribute
+    & (db.area.linkends.attribute | db.xlink.simple.link.attributes)?
+    & db.area.label.attribute?
+    & db.area.coords.attribute
+  db.area.inareaset =
+    
+    ## A region defined for a callout in a graphic or code example
+    element area { db.area.inareaset.attlist, db.alt? }
+}
+div {
+  db.areaset.role.attribute = attribute role { text }
+  db.areaset.linkends.attribute = db.linkends.attribute
+  db.areaset.label.attribute = db.label.attribute
+  db.areaset.attlist =
+    db.areaset.role.attribute?
+    & db.common.idreq.attributes
+    & db.area.units.attribute
+    & (db.areaset.linkends.attribute | db.xlink.simple.link.attributes)?
+    & db.areaset.label.attribute?
+  db.areaset =
+    
+    ## A set of related areas in a graphic or code example
+    element areaset { db.areaset.attlist, db.area.inareaset+ }
+}
+div {
+  db.screenco.role.attribute = attribute role { text }
+  db.screenco.attlist =
+    db.screenco.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.screenco.info = db._info.title.forbidden
+  db.screenco =
+    
+    ## A screen with associated areas used in callouts
+    element screenco {
+      db.screenco.attlist,
+      db.screenco.info,
+      db.areaspec,
+      db.screen,
+      db.calloutlist*
+    }
+}
+div {
+  db.imageobjectco.role.attribute = attribute role { text }
+  db.imageobjectco.attlist =
+    db.imageobjectco.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.imageobjectco.info = db._info.title.forbidden
+  db.imageobjectco =
+    
+    ## A wrapper for an image object with callouts
+    element imageobjectco {
+      db.imageobjectco.attlist,
+      db.imageobjectco.info,
+      db.areaspec,
+      db.imageobject+,
+      db.calloutlist*
+    }
+}
+div {
+  db.co.role.attribute = attribute role { text }
+  db.co.linkends.attribute = db.linkends.attribute
+  db.co.label.attribute = db.label.attribute
+  db.co.attlist =
+    db.co.role.attribute?
+    & db.common.idreq.attributes
+    & db.co.linkends.attribute?
+    & db.co.label.attribute?
+  db.co =
+    
+    ## The location of a callout embedded in text
+    element co { db.co.attlist, empty }
+}
+div {
+  db.coref.role.attribute = attribute role { text }
+  db.coref.label.attribute = db.label.attribute
+  db.coref.attlist =
+    db.coref.role.attribute?
+    & db.common.attributes
+    & db.linkend.attribute
+    & db.coref.label.attribute?
+  db.coref =
+    
+    ## A cross reference to a co
+    element coref { db.coref.attlist, empty }
+}
+div {
+  db.productionset.role.attribute = attribute role { text }
+  db.productionset.attlist =
+    db.productionset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.productionset.info = db._info.title.only
+  db.productionset =
+    
+    ## A set of EBNF productions
+    element productionset {
+      db.productionset.attlist,
+      db.productionset.info,
+      (db.production | db.productionrecap)+
+    }
+}
+div {
+  db.production.role.attribute = attribute role { text }
+  db.production.attlist =
+    db.production.role.attribute?
+    & db.common.idreq.attributes
+    & db.common.linking.attributes
+  db.production =
+    
+    ## A production in a set of EBNF productions
+    element production {
+      db.production.attlist, db.lhs, db.rhs+, db.constraint*
+    }
+}
+div {
+  db.lhs.role.attribute = attribute role { text }
+  db.lhs.attlist =
+    db.lhs.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.lhs =
+    
+    ## The left-hand side of an EBNF production
+    element lhs { db.lhs.attlist, text }
+}
+div {
+  db.rhs.role.attribute = attribute role { text }
+  db.rhs.attlist =
+    db.rhs.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.rhs =
+    
+    ## The right-hand side of an EBNF production
+    element rhs {
+      db.rhs.attlist,
+      (text | db.nonterminal | db.lineannotation | db.sbr)*
+    }
+}
+div {
+  db.nonterminal.role.attribute = attribute role { text }
+  db.nonterminal.def.attribute =
+    
+    ## Specifies a URI that points to a production
+    ## where the nonterminal
+    ##  is defined
+    attribute def { xsd:anyURI }
+  db.nonterminal.attlist =
+    db.nonterminal.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.nonterminal.def.attribute
+  db.nonterminal =
+    
+    ## A non-terminal in an EBNF production
+    element nonterminal { db.nonterminal.attlist, text }
+}
+div {
+  db.constraint.role.attribute = attribute role { text }
+  db.constraint.attlist =
+    db.constraint.role.attribute?
+    & db.common.attributes
+    & db.common.req.linking.attributes
+  db.constraint =
+    
+    ## A constraint in an EBNF production
+    element constraint { db.constraint.attlist, empty }
+}
+div {
+  db.productionrecap.role.attribute = attribute role { text }
+  db.productionrecap.attlist =
+    db.productionrecap.role.attribute?
+    & db.common.attributes
+    & db.common.req.linking.attributes
+  db.productionrecap =
+    
+    ## A cross-reference to an EBNF production
+    element productionrecap { db.productionrecap.attlist, empty }
+}
+div {
+  db.constraintdef.role.attribute = attribute role { text }
+  db.constraintdef.attlist =
+    db.constraintdef.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.constraintdef.info = db._info.title.only
+  db.constraintdef =
+    
+    ## The definition of a constraint in an EBNF production
+    element constraintdef {
+      db.constraintdef.attlist, db.constraintdef.info, db.all.blocks+
+    }
+}
+db.char.attribute =
+  
+  ## Specifies the alignment character when align
+  ##  is set to char
+  ## .
+  attribute char { text }
+db.charoff.attribute =
+  
+  ## Specifies the percentage of the column's total width that should appear to the left of the first occurance of the character identified in char
+  ##  when align
+  ##  is set to char
+  ## .
+  attribute charoff {
+    xsd:decimal { minExclusive = "0" maxExclusive = "100" }
+  }
+db.frame.attribute =
+  
+  ## Specifies how the table is to be framed. Note that there is no way to obtain a border on only the starting edge (left, in left-to-right writing systems) of the table.
+  attribute frame {
+    
+    ## Frame all four sides of the table. In some environments with limited control over table border formatting, such as HTML, this may imply additional borders.
+    "all"
+    | 
+      ## Frame only the bottom of the table.
+      "bottom"
+    | 
+      ## Place no border on the table. In some environments with limited control over table border formatting, such as HTML, this may disable other borders as well.
+      "none"
+    | 
+      ## Frame the left and right sides of the table.
+      "sides"
+    | 
+      ## Frame the top of the table.
+      "top"
+    | 
+      ## Frame the top and bottom of the table.
+      "topbot"
+  }
+db.colsep.attribute =
+  
+  ## Specifies the presence or absence of the column separator
+  attribute colsep {
+    
+    ## No column separator rule.
+    "0"
+    | 
+      ## Provide a column separator rule on the right
+      "1"
+  }
+db.rowsep.attribute =
+  
+  ## Specifies the presence or absence of the row separator
+  attribute rowsep {
+    
+    ## No row separator rule.
+    "0"
+    | 
+      ## Provide a row separator rule below
+      "1"
+  }
+db.orient.attribute =
+  
+  ## Specifies the orientation of the table
+  attribute orient {
+    
+    ## 90 degrees counter-clockwise from the rest of the text flow.
+    "land"
+    | 
+      ## The same orientation as the rest of the text flow.
+      "port"
+  }
+db.tabstyle.attribute =
+  
+  ## Specifies the table style
+  attribute tabstyle { text }
+db.rowheader.attribute =
+  
+  ## Indicates whether or not the entries in the first column should be considered row headers
+  attribute rowheader {
+    
+    ## Indicates that entries in the first column of the table are functionally row headers (analogous to the way that a thead provides column headers).
+    "firstcol"
+    | 
+      ## Indicates that entries in the first column have no special significance with respect to column headers.
+      "norowheader"
+  }
+db.align.attribute =
+  
+  ## Specifies the horizontal alignment of text in an entry.
+  attribute align {
+    
+    ## Centered.
+    "center"
+    | 
+      ## Aligned on a particular character.
+      "char"
+    | 
+      ## Left and right justified.
+      "justify"
+    | 
+      ## Left justified.
+      "left"
+    | 
+      ## Right justified.
+      "right"
+  }
+db.valign.attribute =
+  
+  ## Specifies the vertical alignment of text in an entry.
+  attribute valign {
+    
+    ## Aligned on the bottom of the entry.
+    "bottom"
+    | 
+      ## Aligned in the middle.
+      "middle"
+    | 
+      ## Aligned at the top of the entry.
+      "top"
+  }
+db.specify-col-by-colname.attributes =
+  
+  ## Specifies a column specification by name.
+  attribute colname { text }
+db.specify-col-by-namest.attributes =
+  
+  ## Specifies a starting column by name.
+  attribute namest { text }
+db.specify-span-by-spanspec.attributes =
+  
+  ## Specifies a span by name.
+  attribute spanname { text }
+db.specify-span-directly.attributes =
+  
+  ## Specifies a starting column by name.
+  attribute namest { text }
+  & 
+    ## Specifies an ending column by name.
+    attribute nameend { text }
+db.column-spec.attributes =
+  db.specify-col-by-colname.attributes
+  | db.specify-col-by-namest.attributes
+  | db.specify-span-by-spanspec.attributes
+  | db.specify-span-directly.attributes
+db.colname.attribute =
+  
+  ## Provides a name for a column specification.
+  attribute colname { text }
+db.spanname.attribute =
+  
+  ## Provides a name for a span specification.
+  attribute spanname { text }
+div {
+  db.tgroup.role.attribute = attribute role { text }
+  db.tgroup.tgroupstyle.attribute =
+    
+    ## Additional style information for downstream processing; typically the name of a style.
+    attribute tgroupstyle { text }
+  db.tgroup.cols.attribute =
+    
+    ## The number of columns in the table. Must be an integer greater than zero.
+    attribute cols { xsd:positiveInteger }
+  db.tgroup.attlist =
+    db.tgroup.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.char.attribute?
+    & db.charoff.attribute?
+    & db.tgroup.tgroupstyle.attribute?
+    & db.tgroup.cols.attribute
+    & db.colsep.attribute?
+    & db.rowsep.attribute?
+    & db.align.attribute?
+  db.tgroup =
+    
+    ## A wrapper for the main content of a table, or part of a table
+    element tgroup {
+      db.tgroup.attlist,
+      db.colspec*,
+      db.spanspec*,
+      db.cals.thead?,
+      db.cals.tfoot?,
+      db.cals.tbody
+    }
+}
+div {
+  db.colspec.role.attribute = attribute role { text }
+  db.colspec.colnum.attribute =
+    
+    ## The number of the column to which this specification applies. Must be greater than any preceding column number. Defaults to one more than the number of the preceding column, if there is one, or one.
+    attribute colnum { xsd:positiveInteger }
+  db.colspec.colwidth.attribute =
+    
+    ## Specifies the width of the column.
+    attribute colwidth { text }
+  db.colspec.attlist =
+    db.colspec.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.colspec.colnum.attribute?
+    & db.char.attribute?
+    & db.colsep.attribute?
+    & db.colspec.colwidth.attribute?
+    & db.charoff.attribute?
+    & db.colname.attribute?
+    & db.rowsep.attribute?
+    & db.align.attribute?
+  db.colspec =
+    
+    ## Specifications for a column in a table
+    element colspec { db.colspec.attlist, empty }
+}
+div {
+  db.spanspec.role.attribute = attribute role { text }
+  db.spanspec.namest.attribute =
+    
+    ## Specifies a starting column by name.
+    attribute namest { text }
+  db.spanspec.nameend.attribute =
+    
+    ## Specifies an ending column by name.
+    attribute nameend { text }
+  db.spanspec.attlist =
+    db.spanspec.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.spanname.attribute
+    & db.spanspec.namest.attribute
+    & db.spanspec.nameend.attribute
+    & db.char.attribute?
+    & db.colsep.attribute?
+    & db.charoff.attribute?
+    & db.rowsep.attribute?
+    & db.align.attribute?
+  db.spanspec =
+    
+    ## Formatting information for a spanned column in a table
+    element spanspec { db.spanspec.attlist, empty }
+}
+div {
+  db.cals.thead.role.attribute = attribute role { text }
+  db.cals.thead.attlist =
+    db.cals.thead.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.valign.attribute?
+  db.cals.thead =
+    
+    ## A table header consisting of one or more rows
+    element thead { db.cals.thead.attlist, db.colspec*, db.row+ }
+}
+div {
+  db.cals.tfoot.role.attribute = attribute role { text }
+  db.cals.tfoot.attlist =
+    db.cals.tfoot.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.valign.attribute?
+  db.cals.tfoot =
+    
+    ## A table footer consisting of one or more rows
+    element tfoot { db.cals.tfoot.attlist, db.colspec*, db.row+ }
+}
+div {
+  db.cals.tbody.role.attribute = attribute role { text }
+  db.cals.tbody.attlist =
+    db.cals.tbody.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.valign.attribute?
+  db.cals.tbody =
+    
+    ## A wrapper for the rows of a table or informal table
+    element tbody { db.cals.tbody.attlist, db.row+ }
+}
+div {
+  db.row.role.attribute = attribute role { text }
+  db.row.attlist =
+    db.row.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.rowsep.attribute?
+    & db.valign.attribute?
+  db.row =
+    
+    ## A row in a table
+    element row { db.row.attlist, (db.entry | db.entrytbl)+ }
+}
+div {
+  db.entry.role.attribute = attribute role { text }
+  db.entry.morerows.attribute =
+    
+    ## Specifies the number of additional rows which this entry occupies. Defaults to zero.
+    attribute morerows { xsd:integer }
+  db.entry.rotate.attribute =
+    
+    ## Specifies the rotation of this entry. A value of 1 (true) rotates the cell 90 degrees counter-clockwise. A value of 0 (false) leaves the cell unrotated.
+    attribute rotate {
+      
+      ## Do not rotate the cell.
+      "0"
+      | 
+        ## Rotate the cell 90 degrees counter-clockwise.
+        "1"
+    }
+  db.entry.attlist =
+    db.entry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.valign.attribute?
+    & db.char.attribute?
+    & db.colsep.attribute?
+    & db.charoff.attribute?
+    & db.entry.morerows.attribute?
+    & db.column-spec.attributes?
+    & db.rowsep.attribute?
+    & db.entry.rotate.attribute?
+    & db.align.attribute?
+  db.entry =
+    
+    ## A cell in a table
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:entry"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of entry"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:entry"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:informaltable)"
+            "informaltable must not occur among the children or descendants of entry"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element entry {
+      db.entry.attlist, (db.all.inlines* | db.all.blocks*)
+    }
+}
+div {
+  db.entrytbl.role.attribute = attribute role { text }
+  db.entrytbl.tgroupstyle.attribute =
+    
+    ## Additional style information for downstream processing; typically the name of a style.
+    attribute tgroupstyle { text }
+  db.entrytbl.cols.attribute =
+    
+    ## The number of columns in the entry table. Must be an integer greater than zero.
+    attribute cols { xsd:positiveInteger }
+  db.entrytbl.attlist =
+    db.entrytbl.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.char.attribute?
+    & db.charoff.attribute?
+    & db.column-spec.attributes?
+    & db.entrytbl.tgroupstyle.attribute?
+    & db.entrytbl.cols.attribute?
+    & db.colsep.attribute?
+    & db.rowsep.attribute?
+    & db.align.attribute?
+  db.entrytbl =
+    
+    ## A subtable appearing in place of an entry in a table
+    element entrytbl {
+      db.entrytbl.attlist,
+      db.colspec*,
+      db.spanspec*,
+      db.cals.entrytbl.thead?,
+      db.cals.entrytbl.tbody
+    }
+}
+div {
+  db.cals.entrytbl.thead.role.attribute = attribute role { text }
+  db.cals.entrytbl.thead.attlist =
+    db.cals.entrytbl.thead.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.valign.attribute?
+  db.cals.entrytbl.thead =
+    
+    ## A table header consisting of one or more rows
+    element thead {
+      db.cals.entrytbl.thead.attlist, db.colspec*, db.entrytbl.row+
+    }
+}
+div {
+  db.cals.entrytbl.tbody.role.attribute = attribute role { text }
+  db.cals.entrytbl.tbody.attlist =
+    db.cals.entrytbl.tbody.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.valign.attribute?
+  db.cals.entrytbl.tbody =
+    
+    ## A wrapper for the rows of a table or informal table
+    element tbody { db.cals.entrytbl.tbody.attlist, db.entrytbl.row+ }
+}
+div {
+  db.entrytbl.row.role.attribute = attribute role { text }
+  db.entrytbl.row.attlist =
+    db.entrytbl.row.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.rowsep.attribute?
+    & db.valign.attribute?
+  db.entrytbl.row =
+    
+    ## A row in a table
+    element row { db.entrytbl.row.attlist, db.entry+ }
+}
+div {
+  db.cals.table.role.attribute = attribute role { text }
+  db.cals.table.label.attribute = db.label.attribute
+  db.cals.table.attlist =
+    db.cals.table.role.attribute?
+    & db.cals.table.label.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.tabstyle.attribute?
+    & db.floatstyle.attribute?
+    & db.orient.attribute?
+    & db.colsep.attribute?
+    & db.rowsep.attribute?
+    & db.frame.attribute?
+    & db.pgwide.attribute?
+    & 
+      ## Indicates if the short or long title should be used in a List of Tables
+      attribute shortentry {
+        
+        ## Indicates that the full title should be used.
+        "0"
+        | 
+          ## Indicates that the short short title (titleabbrev) should be used.
+          "1"
+      }?
+    & 
+      ## Indicates if the table should appear in a List of Tables
+      attribute tocentry {
+        
+        ## Indicates that the table should not occur in the List of Tables.
+        "0"
+        | 
+          ## Indicates that the table should appear in the List of Tables.
+          "1"
+      }?
+    & db.rowheader.attribute?
+  db.cals.table.info = db._info.title.onlyreq
+  db.cals.table =
+    
+    ## A formal table in a document
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element table {
+      db.cals.table.attlist,
+      db.cals.table.info,
+      (db.alt? & db.indexing.inlines* & db.textobject*),
+      (db.mediaobject+ | db.tgroup+),
+      db.caption?
+    }
+}
+div {
+  db.cals.informaltable.role.attribute = attribute role { text }
+  db.cals.informaltable.attlist =
+    db.cals.informaltable.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.tabstyle.attribute?
+    & db.floatstyle.attribute?
+    & db.orient.attribute?
+    & db.colsep.attribute?
+    & db.rowsep.attribute?
+    & db.frame.attribute?
+    & db.pgwide.attribute?
+    & db.rowheader.attribute?
+  db.cals.informaltable.info = db._info.title.forbidden
+  db.cals.informaltable =
+    
+    ## A table without a title
+    element informaltable {
+      db.cals.informaltable.attlist,
+      db.cals.informaltable.info,
+      (db.alt? & db.indexing.inlines* & db.textobject*),
+      (db.mediaobject+ | db.tgroup+),
+      db.caption?
+    }
+}
+db.html.coreattrs =
+  
+  ## This attribute assigns a class name or set of class names to an element. Any number of elements may be assigned the same class name or names. Multiple class names must be separated by white space characters.
+  attribute class { text }?
+  & 
+    ## This attribute specifies style information for the current element.
+    attribute style { text }?
+  & 
+    ## This attribute offers advisory information about the element for which it is set.
+    attribute title { text }?
+db.html.i18n =
+  
+  ## This attribute specifies the base language of an element's attribute values and text content. The default value of this attribute is unknown.
+  attribute lang { text }?
+db.html.events =
+  
+  ## Occurs when the pointing device button is clicked over an element.
+  attribute onclick { text }?
+  & 
+    ## Occurs when the pointing device button is double clicked over an element.
+    attribute ondblclick { text }?
+  & 
+    ## Occurs when the pointing device button is pressed over an element.
+    attribute onmousedown { text }?
+  & 
+    ## Occurs when the pointing device button is released over an element.
+    attribute onmouseup { text }?
+  & 
+    ## Occurs when the pointing device is moved onto an element.
+    attribute onmouseover { text }?
+  & 
+    ## Occurs when the pointing device is moved while it is over an element.
+    attribute onmousemove { text }?
+  & 
+    ## Occurs when the pointing device is moved away from an element.
+    attribute onmouseout { text }?
+  & 
+    ## Occurs when a key is pressed and released over an element.
+    attribute onkeypress { text }?
+  & 
+    ## Occurs when a key is pressed down over an element.
+    attribute onkeydown { text }?
+  & 
+    ## Occurs when a key is released over an element.
+    attribute onkeyup { text }?
+db.html.attrs =
+  db.common.attributes
+  & db.html.coreattrs
+  & db.html.i18n
+  & db.html.events
+db.html.cellhalign =
+  
+  ## Specifies the alignment of data and the justification of text in a cell.
+  attribute align {
+    
+    ## Left-flush data/Left-justify text. This is the default value for table data.
+    "left"
+    | 
+      ## Center data/Center-justify text. This is the default value for table headers.
+      "center"
+    | 
+      ## Right-flush data/Right-justify text.
+      "right"
+    | 
+      ## Double-justify text.
+      "justify"
+    | 
+      ## Align text around a specific character. If a user agent doesn't support character alignment, behavior in the presence of this value is unspecified.
+      "char"
+  }?
+  & 
+    ## This attribute specifies a single character within a text fragment to act as an axis for alignment. The default value for this attribute is the decimal point character for the current language as set by the lang attribute (e.g., the period in English and the comma in French). User agents are not required to support this attribute.
+    attribute char { text }?
+  & 
+    ## When present, this attribute specifies the offset to the first occurrence of the alignment character on each line. If a line doesn't include the alignment character, it should be horizontally shifted to end at the alignment position. When charoff is used to set the offset of an alignment character, the direction of offset is determined by the current text direction (set by the dir attribute). In left-to-right texts (the default), offset is from the left margin. In right-to-left texts, offset is from the right margin. User agents are not required to support this attribute.
+    attribute charoff {
+      xsd:integer >> a:documentation [ "An explicit offset." ]
+      | xsd:string { pattern = "[0-9]+%" }
+        >> a:documentation [ "A percentage offset." ]
+    }?
+db.html.cellvalign =
+  
+  ## Specifies the vertical position of data within a cell.
+  attribute valign {
+    
+    ## Cell data is flush with the top of the cell.
+    "top"
+    | 
+      ## Cell data is centered vertically within the cell. This is the default value.
+      "middle"
+    | 
+      ## Cell data is flush with the bottom of the cell.
+      "bottom"
+    | 
+      ## All cells in the same row as a cell whose valign attribute has this value should have their textual data positioned so that the first text line occurs on a baseline common to all cells in the row. This constraint does not apply to subsequent text lines in these cells.
+      "baseline"
+  }?
+db.html.table.attributes =
+  
+  ## Provides a summary of the table's purpose and structure for user agents rendering to non-visual media such as speech and Braille.
+  attribute summary { text }?
+  & 
+    ## Specifies the desired width of the entire table and is intended for visual user agents. When the value is a percentage value, the value is relative to the user agent's available horizontal space. In the absence of any width specification, table width is determined by the user agent.
+    attribute width {
+      xsd:integer >> a:documentation [ "An explicit width." ]
+      | xsd:string { pattern = "[0-9]+%" }
+        >> a:documentation [ "A percentage width." ]
+    }?
+  & 
+    ## Specifies the width (in pixels only) of the frame around a table.
+    attribute border { xsd:nonNegativeInteger }?
+  & 
+    ## Specifies which sides of the frame surrounding a table will be visible.
+    attribute frame {
+      
+      ## No sides. This is the default value.
+      "void"
+      | 
+        ## The top side only.
+        "above"
+      | 
+        ## The bottom side only.
+        "below"
+      | 
+        ## The top and bottom sides only.
+        "hsides"
+      | 
+        ## The left-hand side only.
+        "lhs"
+      | 
+        ## The right-hand side only.
+        "rhs"
+      | 
+        ## The right and left sides only.
+        "vsides"
+      | 
+        ## All four sides.
+        "box"
+      | 
+        ## All four sides.
+        "border"
+    }?
+  & 
+    ## Specifies which rules will appear between cells within a table. The rendering of rules is user agent dependent.
+    attribute rules {
+      
+      ## No rules. This is the default value.
+      "none"
+      | 
+        ## Rules will appear between row groups (see thead, tfoot, and tbody) and column groups (see colgroup and col) only.
+        "groups"
+      | 
+        ## Rules will appear between rows only.
+        "rows"
+      | 
+        ## Rules will appear between columns only.
+        "cols"
+      | 
+        ## Rules will appear between all rows and columns.
+        "all"
+    }?
+  & 
+    ## Specifies how much space the user agent should leave between the left side of the table and the left-hand side of the leftmost column, the top of the table and the top side of the topmost row, and so on for the right and bottom of the table. The attribute also specifies the amount of space to leave between cells.
+    attribute cellspacing {
+      xsd:integer >> a:documentation [ "An explicit spacing." ]
+      | xsd:string { pattern = "[0-9]+%" }
+        >> a:documentation [ "A percentage spacing." ]
+    }?
+  & 
+    ## Specifies the amount of space between the border of the cell and its contents. If the value of this attribute is a pixel length, all four margins should be this distance from the contents. If the value of the attribute is a percentage length, the top and bottom margins should be equally separated from the content based on a percentage of the available vertical space, and the left and right margins should be equally separated from the content based on a percentage of the available horizontal space.
+    attribute cellpadding {
+      xsd:integer >> a:documentation [ "An explicit padding." ]
+      | xsd:string { pattern = "[0-9]+%" }
+        >> a:documentation [ "A percentage padding." ]
+    }?
+db.html.tablecell.attributes =
+  
+  ## Provides an abbreviated form of the cell's content and may be rendered by user agents when appropriate in place of the cell's content. Abbreviated names should be short since user agents may render them repeatedly. For instance, speech synthesizers may render the abbreviated headers relating to a particular cell before rendering that cell's content.
+  attribute abbr { text }?
+  & 
+    ## This attribute may be used to place a cell into conceptual categories that can be considered to form axes in an n-dimensional space. User agents may give users access to these categories (e.g., the user may query the user agent for all cells that belong to certain categories, the user agent may present a table in the form of a table of contents, etc.). Please consult an HTML reference for more details.
+    attribute axis { text }?
+  & 
+    ## Specifies the list of header cells that provide header information for the current data cell. The value of this attribute is a space-separated list of cell names; those cells must be named by setting their id attribute. Authors generally use the headers attribute to help non-visual user agents render header information about data cells (e.g., header information is spoken prior to the cell data), but the attribute may also be used in conjunction with style sheets.
+    attribute headers { text }?
+  & 
+    ## Specifies the set of data cells for which the current header cell provides header information. This attribute may be used in place of the headers attribute, particularly for simple tables.
+    attribute scope {
+      
+      ## The current cell provides header information for the rest of the row that contains it
+      "row"
+      | 
+        ## The current cell provides header information for the rest of the column that contains it.
+        "col"
+      | 
+        ## The header cell provides header information for the rest of the row group that contains it.
+        "rowgroup"
+      | 
+        ## The header cell provides header information for the rest of the column group that contains it.
+        "colgroup"
+    }?
+  & 
+    ## Specifies the number of rows spanned by the current cell. The default value of this attribute is one (1
+    ## ). The value zero (0
+    ## ) means that the cell spans all rows from the current row to the last row of the table section (thead
+    ## , tbody
+    ## , or tfoot
+    ## ) in which the cell is defined.
+    attribute rowspan { xsd:nonNegativeInteger }?
+  & 
+    ## Specifies the number of columns spanned by the current cell. The default value of this attribute is one (1
+    ## ). The value zero (0
+    ## ) means that the cell spans all columns from the current column to the last column of the column group (colgroup
+    ## ) in which the cell is defined.
+    attribute colspan { xsd:nonNegativeInteger }?
+db.html.table.info = db._info.title.forbidden
+db.html.table.model =
+  db.html.table.info?,
+  db.html.caption,
+  (db.html.col* | db.html.colgroup*),
+  db.html.thead?,
+  db.html.tfoot?,
+  (db.html.tbody+ | db.html.tr+)
+db.html.informaltable.info = db._info.title.forbidden
+db.html.informaltable.model =
+  db.html.informaltable.info?,
+  (db.html.col* | db.html.colgroup*),
+  db.html.thead?,
+  db.html.tfoot?,
+  (db.html.tbody+ | db.html.tr+)
+div {
+  db.html.table.role.attribute = attribute role { text }
+  db.html.table.label.attribute = db.label.attribute
+  db.html.table.attlist =
+    db.html.attrs
+    & db.html.table.attributes
+    & db.html.table.role.attribute?
+    & db.html.table.label.attribute?
+    & db.orient.attribute?
+    & db.pgwide.attribute?
+    & db.tabstyle.attribute?
+    & db.floatstyle.attribute?
+  db.html.table =
+    
+    ## A formal (captioned) HTML table in a document
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element table { db.html.table.attlist, db.html.table.model }
+}
+div {
+  db.html.informaltable.role.attribute = attribute role { text }
+  db.html.informaltable.label.attribute = db.label.attribute
+  db.html.informaltable.attlist =
+    db.html.attrs
+    & db.html.table.attributes
+    & db.html.informaltable.role.attribute?
+    & db.html.informaltable.label.attribute?
+    & db.orient.attribute?
+    & db.pgwide.attribute?
+    & db.tabstyle.attribute?
+    & db.floatstyle.attribute?
+  db.html.informaltable =
+    
+    ## An HTML table without a title
+    element informaltable {
+      db.html.informaltable.attlist, db.html.informaltable.model
+    }
+}
+div {
+  db.html.caption.attlist = db.html.attrs
+  db.html.caption =
+    
+    ## An HTML table caption
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:sidebar)"
+            "sidebar must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:task)"
+            "task must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element caption { db.html.caption.attlist, db.all.inlines* }
+}
+div {
+  db.html.col.attlist =
+    db.html.attrs
+    & 
+      ## This attribute, whose value must be an integer > 0, specifies the number of columns spanned
+      ##  by the col
+      ##  element; the col
+      ##  element shares its attributes with all the columns it spans. The default value for this attribute is 1 (i.e., a single column). If the span attribute is set to N > 1, the current col
+      ##  element shares its attributes with the next N-1 columns.
+      attribute span { xsd:nonNegativeInteger }?
+    & 
+      ## Specifies a default width for each column spanned by the current col
+      ##  element. It has the same meaning as the width
+      ##  attribute for the colgroup
+      ##  element and overrides it.
+      attribute width { text }?
+    & db.html.cellhalign
+    & db.html.cellvalign
+  db.html.col =
+    
+    ## Specifications for a column in an HTML table
+    element col { db.html.col.attlist, empty }
+}
+div {
+  db.html.colgroup.attlist =
+    db.html.attrs
+    & 
+      ## This attribute, which must be an integer > 0, specifies the number of columns in a column group. In the absence of a span attribute, each colgroup
+      ##  defines a column group containing one column. If the span attribute is set to N > 0, the current colgroup
+      ##  element defines a column group containing N columns. User agents must ignore this attribute if the colgroup
+      ##  element contains one or more col
+      ##  elements.
+      attribute span { xsd:nonNegativeInteger }?
+    & 
+      ## This attribute specifies a default width for each column in the current column group. In addition to the standard pixel, percentage, and relative values, this attribute allows the special form 0*
+      ##  (zero asterisk) which means that the width of the each column in the group should be the minimum width necessary to hold the column's contents. This implies that a column's entire contents must be known before its width may be correctly computed. Authors should be aware that specifying 0*
+      ##  will prevent visual user agents from rendering a table incrementally. This attribute is overridden for any column in the column group whose width is specified via a col
+      ##  element.
+      attribute width { text }?
+    & db.html.cellhalign
+    & db.html.cellvalign
+  db.html.colgroup =
+    
+    ## A group of columns in an HTML table
+    element colgroup { db.html.colgroup.attlist, db.html.col* }
+}
+div {
+  db.html.thead.attlist =
+    db.html.attrs & db.html.cellhalign & db.html.cellvalign
+  db.html.thead =
+    
+    ## A table header consisting of one or more rows in an HTML table
+    element thead { db.html.thead.attlist, db.html.tr+ }
+}
+div {
+  db.html.tfoot.attlist =
+    db.html.attrs & db.html.cellhalign & db.html.cellvalign
+  db.html.tfoot =
+    
+    ## A table footer consisting of one or more rows in an HTML table
+    element tfoot { db.html.tfoot.attlist, db.html.tr+ }
+}
+div {
+  db.html.tbody.attlist =
+    db.html.attrs & db.html.cellhalign & db.html.cellvalign
+  db.html.tbody =
+    
+    ## A wrapper for the rows of an HTML table or informal HTML table
+    element tbody { db.html.tbody.attlist, db.html.tr+ }
+}
+div {
+  db.html.tr.attlist =
+    db.html.attrs & db.html.cellhalign & db.html.cellvalign
+  db.html.tr =
+    
+    ## A row in an HTML table
+    element tr { db.html.tr.attlist, (db.html.th | db.html.td)+ }
+}
+div {
+  db.html.th.attlist =
+    db.html.attrs
+    & db.html.tablecell.attributes
+    & db.html.cellhalign
+    & db.html.cellvalign
+  db.html.th =
+    
+    ## A table header entry in an HTML table
+    element th {
+      db.html.th.attlist, (db.all.inlines* | db.all.blocks*)
+    }
+}
+div {
+  db.html.td.attlist =
+    db.html.attrs
+    & db.html.tablecell.attributes
+    & db.html.cellhalign
+    & db.html.cellvalign
+  db.html.td =
+    
+    ## A table entry in an HTML table
+    element td {
+      db.html.td.attlist, (db.all.inlines* | db.all.blocks*)
+    }
+}
+div {
+  db.msgset.role.attribute = attribute role { text }
+  db.msgset.attlist =
+    db.msgset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgset.info = db._info.title.only
+  db.msgset =
+    
+    ## A detailed set of messages, usually error messages
+    element msgset {
+      db.msgset.attlist,
+      db.msgset.info,
+      (db.msgentry+ | db.simplemsgentry+)
+    }
+}
+div {
+  db.msgentry.role.attribute = attribute role { text }
+  db.msgentry.attlist =
+    db.msgentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgentry =
+    
+    ## A wrapper for an entry in a message set
+    element msgentry {
+      db.msgentry.attlist, db.msg+, db.msginfo?, db.msgexplan*
+    }
+}
+div {
+  db.simplemsgentry.role.attribute = attribute role { text }
+  db.simplemsgentry.msgaud.attribute =
+    
+    ## The audience to which the message relevant
+    attribute msgaud { text }
+  db.simplemsgentry.msgorig.attribute =
+    
+    ## The origin of the message
+    attribute msgorig { text }
+  db.simplemsgentry.msglevel.attribute =
+    
+    ## The level of importance or severity of a message
+    attribute msglevel { text }
+  db.simplemsgentry.attlist =
+    db.simplemsgentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.simplemsgentry.msgaud.attribute?
+    & db.simplemsgentry.msgorig.attribute?
+    & db.simplemsgentry.msglevel.attribute?
+  db.simplemsgentry =
+    
+    ## A wrapper for a simpler entry in a message set
+    element simplemsgentry {
+      db.simplemsgentry.attlist, db.msgtext, db.msgexplan+
+    }
+}
+div {
+  db.msg.role.attribute = attribute role { text }
+  db.msg.attlist =
+    db.msg.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msg.info = db._info.title.only
+  db.msg =
+    
+    ## A message in a message set
+    element msg {
+      db.msg.attlist, db.msg.info, db.msgmain, (db.msgsub | db.msgrel)*
+    }
+}
+div {
+  db.msgmain.role.attribute = attribute role { text }
+  db.msgmain.attlist =
+    db.msgmain.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgmain.info = db._info.title.only
+  db.msgmain =
+    
+    ## The primary component of a message in a message set 
+    element msgmain { db.msgmain.attlist, db.msgmain.info, db.msgtext }
+}
+div {
+  db.msgsub.role.attribute = attribute role { text }
+  db.msgsub.attlist =
+    db.msgsub.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgsub.info = db._info.title.only
+  db.msgsub =
+    
+    ## A subcomponent of a message in a message set
+    element msgsub { db.msgsub.attlist, db.msgsub.info, db.msgtext }
+}
+div {
+  db.msgrel.role.attribute = attribute role { text }
+  db.msgrel.attlist =
+    db.msgrel.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgrel.info = db._info.title.only
+  db.msgrel =
+    
+    ## A related component of a message in a message set
+    element msgrel { db.msgrel.attlist, db.msgrel.info, db.msgtext }
+}
+div {
+  db.msgtext.role.attribute = attribute role { text }
+  db.msgtext.attlist =
+    db.msgtext.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgtext =
+    
+    ## The actual text of a message component in a message set
+    element msgtext { db.msgtext.attlist, db.all.blocks+ }
+}
+div {
+  db.msginfo.role.attribute = attribute role { text }
+  db.msginfo.attlist =
+    db.msginfo.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msginfo =
+    
+    ## Information about a message in a message set
+    element msginfo {
+      db.msginfo.attlist, (db.msglevel | db.msgorig | db.msgaud)*
+    }
+}
+div {
+  db.msglevel.role.attribute = attribute role { text }
+  db.msglevel.attlist =
+    db.msglevel.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msglevel =
+    
+    ## The level of importance or severity of a message in a message set
+    element msglevel { db.msglevel.attlist, db._text }
+}
+div {
+  db.msgorig.role.attribute = attribute role { text }
+  db.msgorig.attlist =
+    db.msgorig.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgorig =
+    
+    ## The origin of a message in a message set
+    element msgorig { db.msgorig.attlist, db._text }
+}
+div {
+  db.msgaud.role.attribute = attribute role { text }
+  db.msgaud.attlist =
+    db.msgaud.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgaud =
+    
+    ## The audience to which a message in a message set is relevant
+    element msgaud { db.msgaud.attlist, db._text }
+}
+div {
+  db.msgexplan.role.attribute = attribute role { text }
+  db.msgexplan.attlist =
+    db.msgexplan.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgexplan.info = db._info.title.only
+  db.msgexplan =
+    
+    ## Explanatory material relating to a message in a message set
+    element msgexplan {
+      db.msgexplan.attlist, db.msgexplan.info, db.all.blocks+
+    }
+}
+div {
+  db.qandaset.role.attribute = attribute role { text }
+  db.qandaset.defaultlabel.enumeration =
+    
+    ## No labels
+    "none"
+    | 
+      ## Numeric labels
+      "number"
+    | 
+      ## "Q:" and "A:" labels
+      "qanda"
+  db.qandaset.defaultlabel.attribute =
+    
+    ## Specifies the default labelling
+    attribute defaultlabel { db.qandaset.defaultlabel.enumeration }
+  db.qandaset.attlist =
+    db.qandaset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.qandaset.defaultlabel.attribute?
+  db.qandaset.info = db._info.title.only
+  db.qandaset =
+    
+    ## A question-and-answer set
+    element qandaset {
+      db.qandaset.attlist,
+      db.qandaset.info,
+      db.all.blocks*,
+      (db.qandadiv+ | db.qandaentry+)
+    }
+}
+div {
+  db.qandadiv.role.attribute = attribute role { text }
+  db.qandadiv.attlist =
+    db.qandadiv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.qandadiv.info = db._info.title.only
+  db.qandadiv =
+    
+    ## A titled division in a qandaset
+    element qandadiv {
+      db.qandadiv.attlist,
+      db.qandadiv.info,
+      db.all.blocks*,
+      (db.qandadiv+ | db.qandaentry+)
+    }
+}
+div {
+  db.qandaentry.role.attribute = attribute role { text }
+  db.qandaentry.attlist =
+    db.qandaentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.qandaentry.info = db._info.title.only
+  db.qandaentry =
+    
+    ## A question/answer set within a qandaset
+    element qandaentry {
+      db.qandaentry.attlist, db.qandaentry.info, db.question, db.answer*
+    }
+}
+div {
+  db.question.role.attribute = attribute role { text }
+  db.question.attlist =
+    db.question.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.question =
+    
+    ## A question in a qandaset
+    element question { db.question.attlist, db.label?, db.all.blocks+ }
+}
+div {
+  db.answer.role.attribute = attribute role { text }
+  db.answer.attlist =
+    db.answer.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.answer =
+    
+    ## An answer to a question posed in a qandaset
+    element answer { db.answer.attlist, db.label?, db.all.blocks+ }
+}
+div {
+  db.label.role.attribute = attribute role { text }
+  db.label.attlist =
+    db.label.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.label =
+    
+    ## A label on a question or answer
+    element label { db.label.attlist, db._text }
+}
+db.math.inlines = db.inlineequation
+db.equation.content = (db.mediaobject+ | db.mathphrase+) | db._any.mml+
+db.inlineequation.content =
+  (db.inlinemediaobject+ | db.mathphrase+) | db._any.mml+
+div {
+  db.equation.role.attribute = attribute role { text }
+  db.equation.label.attribute = db.label.attribute
+  db.equation.attlist =
+    db.equation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.equation.label.attribute?
+    & db.pgwide.attribute?
+    & db.floatstyle.attribute?
+  db.equation.info = db._info.title.only
+  db.equation =
+    
+    ## A displayed mathematical equation
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element equation {
+      db.equation.attlist,
+      db.equation.info,
+      db.alt?,
+      db.equation.content,
+      db.caption?
+    }
+}
+div {
+  db.informalequation.role.attribute = attribute role { text }
+  db.informalequation.attlist =
+    db.informalequation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.pgwide.attribute?
+    & db.floatstyle.attribute?
+  db.informalequation.info = db._info.title.forbidden
+  db.informalequation =
+    
+    ## A displayed mathematical equation without a title
+    element informalequation {
+      db.informalequation.attlist,
+      db.informalequation.info,
+      db.alt?,
+      db.equation.content,
+      db.caption?
+    }
+}
+div {
+  db.inlineequation.role.attribute = attribute role { text }
+  db.inlineequation.attlist =
+    db.inlineequation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.inlineequation =
+    
+    ## A mathematical equation or expression occurring inline
+    element inlineequation {
+      db.inlineequation.attlist, db.alt?, db.inlineequation.content
+    }
+}
+div {
+  db.mathphrase.role.attribute = attribute role { text }
+  db.mathphrase.attlist =
+    db.mathphrase.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.mathphrase =
+    
+    ## A mathematical phrase that can be represented with ordinary text and a small amount of markup
+    element mathphrase {
+      db.mathphrase.attlist,
+      (db._text | db.ubiq.inlines | db._emphasis)*
+    }
+}
+db.imagedata.mathml.content = db._any.mml
+div {
+  db.imagedata.mathml.role.attribute = attribute role { text }
+  db.imagedata.mathml.attlist =
+    db.imagedata.mathml.role.attribute?
+    & db.common.attributes
+    & 
+      ## Specifies that the format of the data is MathML
+      attribute format {
+        
+        ## Specifies MathML.
+        "mathml"
+      }?
+    & db.imagedata.align.attribute?
+    & db.imagedata.valign.attribute?
+    & db.imagedata.width.attribute?
+    & db.imagedata.contentwidth.attribute?
+    & db.imagedata.scalefit.attribute?
+    & db.imagedata.scale.attribute?
+    & db.imagedata.depth.attribute?
+    & db.imagedata.contentdepth.attribute?
+  db.imagedata.mathml.info = db._info.title.forbidden
+  db.imagedata.mathml =
+    
+    ## A MathML expression in a media object
+    element imagedata {
+      db.imagedata.mathml.attlist,
+      db.imagedata.mathml.info,
+      db.imagedata.mathml.content+
+    }
+}
+div {
+  db._any.mml =
+    
+    ## Any element from the MathML namespace
+    element mml:* { (db._any.attribute | text | db._any)* }
+}
+db.imagedata.svg.content = db._any.svg
+div {
+  db.imagedata.svg.role.attribute = attribute role { text }
+  db.imagedata.svg.attlist =
+    db.imagedata.svg.role.attribute?
+    & db.common.attributes
+    & 
+      ## Specifies that the format of the data is SVG
+      attribute format {
+        
+        ## Specifies SVG.
+        "svg"
+      }?
+    & db.imagedata.align.attribute?
+    & db.imagedata.valign.attribute?
+    & db.imagedata.width.attribute?
+    & db.imagedata.contentwidth.attribute?
+    & db.imagedata.scalefit.attribute?
+    & db.imagedata.scale.attribute?
+    & db.imagedata.depth.attribute?
+    & db.imagedata.contentdepth.attribute?
+  db.imagedata.svg.info = db._info.title.forbidden
+  db.imagedata.svg =
+    
+    ## An SVG drawing in a media object
+    element imagedata {
+      db.imagedata.svg.attlist,
+      db.imagedata.svg.info,
+      db.imagedata.svg.content+
+    }
+}
+div {
+  db._any.svg =
+    
+    ## Any element from the SVG namespace
+    element svg:* { (db._any.attribute | text | db._any)* }
+}
+db.markup.inlines =
+  db.tag
+  | db.markup
+  | db.token
+  | db.symbol
+  | db.literal
+  | db.code
+  | db.constant
+  | db.email
+  | db.uri
+div {
+  db.markup.role.attribute = attribute role { text }
+  db.markup.attlist =
+    db.markup.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.markup =
+    
+    ## A string of formatting markup in text that is to be represented literally
+    element markup { db.markup.attlist, db._text }
+}
+div {
+  db.tag.role.attribute = attribute role { text }
+  db.tag.class.enumeration =
+    
+    ## An attribute
+    "attribute"
+    | 
+      ## An attribute value
+      "attvalue"
+    | 
+      ## An element
+      "element"
+    | 
+      ## An empty element tag
+      "emptytag"
+    | 
+      ## An end tag
+      "endtag"
+    | 
+      ## A general entity
+      "genentity"
+    | 
+      ## The local name part of a qualified name
+      "localname"
+    | 
+      ## A namespace
+      "namespace"
+    | 
+      ## A numeric character reference
+      "numcharref"
+    | 
+      ## A parameter entity
+      "paramentity"
+    | 
+      ## A processing instruction
+      "pi"
+    | 
+      ## The prefix part of a qualified name
+      "prefix"
+    | 
+      ## An SGML comment
+      "comment"
+    | 
+      ## A start tag
+      "starttag"
+    | 
+      ## An XML processing instruction
+      "xmlpi"
+  db.tag.class.attribute =
+    
+    ## Identifies the nature of the tag content
+    attribute class { db.tag.class.enumeration }
+  db.tag.namespace.attribute =
+    
+    ## Identifies the namespace of the tag content
+    attribute namespace { xsd:anyURI }
+  db.tag.attlist =
+    db.tag.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.tag.class.attribute?
+    & db.tag.namespace.attribute?
+  db.tag =
+    
+    ## A component of XML (or SGML) markup
+    element tag { db.tag.attlist, (db._text | db.tag)* }
+}
+div {
+  db.symbol.class.attribute =
+    
+    ## Identifies the class of symbol
+    attribute class {
+      
+      ## The value is a limit of some kind
+      "limit"
+    }
+  db.symbol.role.attribute = attribute role { text }
+  db.symbol.attlist =
+    db.symbol.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.symbol.class.attribute?
+  db.symbol =
+    
+    ## A name that is replaced by a value before processing
+    element symbol { db.symbol.attlist, db._text }
+}
+div {
+  db.token.role.attribute = attribute role { text }
+  db.token.attlist =
+    db.token.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.token =
+    
+    ## A unit of information
+    element token { db.token.attlist, db._text }
+}
+div {
+  db.literal.role.attribute = attribute role { text }
+  db.literal.attlist =
+    db.literal.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.literal =
+    
+    ## Inline text that is some literal value
+    element literal { db.literal.attlist, db._text }
+}
+div {
+  code.language.attribute =
+    
+    ## Identifies the (computer) language of the code fragment
+    attribute language { text }
+  db.code.role.attribute = attribute role { text }
+  db.code.attlist =
+    db.code.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & code.language.attribute?
+  db.code =
+    
+    ## An inline code fragment
+    element code {
+      db.code.attlist, (db.programming.inlines | db._text)*
+    }
+}
+div {
+  db.constant.class.attribute =
+    
+    ## Identifies the class of constant
+    attribute class {
+      
+      ## The value is a limit of some kind
+      "limit"
+    }
+  db.constant.role.attribute = attribute role { text }
+  db.constant.attlist =
+    db.constant.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.constant.class.attribute?
+  db.constant =
+    
+    ## A programming or system constant
+    element constant { db.constant.attlist, db._text }
+}
+div {
+  db.productname.role.attribute = attribute role { text }
+  db.productname.class.enumeration =
+    
+    ## A name with a copyright
+    "copyright"
+    | 
+      ## A name with a registered copyright
+      "registered"
+    | 
+      ## A name of a service
+      "service"
+    | 
+      ## A name which is trademarked
+      "trade"
+  db.productname.class.attribute =
+    
+    ## Specifies the class of product name
+    attribute class { db.productname.class.enumeration }
+  db.productname.attlist =
+    db.productname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.productname.class.attribute?
+  db.productname =
+    
+    ## The formal name of a product
+    element productname { db.productname.attlist, db._text }
+}
+div {
+  db.productnumber.role.attribute = attribute role { text }
+  db.productnumber.attlist =
+    db.productnumber.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.productnumber =
+    
+    ## A number assigned to a product
+    element productnumber { db.productnumber.attlist, db._text }
+}
+div {
+  db.database.class.enumeration =
+    
+    ## An alternate or secondary key
+    "altkey"
+    | 
+      ## A constraint
+      "constraint"
+    | 
+      ## A data type
+      "datatype"
+    | 
+      ## A field
+      "field"
+    | 
+      ## A foreign key
+      "foreignkey"
+    | 
+      ## A group
+      "group"
+    | 
+      ## An index
+      "index"
+    | 
+      ## The first or primary key
+      "key1"
+    | 
+      ## An alternate or secondary key
+      "key2"
+    | 
+      ## A name
+      "name"
+    | 
+      ## The primary key
+      "primarykey"
+    | 
+      ## A (stored) procedure
+      "procedure"
+    | 
+      ## A record
+      "record"
+    | 
+      ## A rule
+      "rule"
+    | 
+      ## The secondary key
+      "secondarykey"
+    | 
+      ## A table
+      "table"
+    | 
+      ## A user
+      "user"
+    | 
+      ## A view
+      "view"
+  db.database.class.attribute =
+    
+    ## Identifies the class of database artifact
+    attribute class { db.database.class.enumeration }
+  db.database.role.attribute = attribute role { text }
+  db.database.attlist =
+    db.database.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.database.class.attribute?
+  db.database =
+    
+    ## The name of a database, or part of a database
+    element database { db.database.attlist, db._text }
+}
+div {
+  db.application.class.enumeration =
+    
+    ## A hardware application
+    "hardware"
+    | 
+      ## A software application
+      "software"
+  db.application.class.attribute =
+    
+    ## Identifies the class of application
+    attribute class { db.application.class.enumeration }
+  db.application.role.attribute = attribute role { text }
+  db.application.attlist =
+    db.application.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.application.class.attribute?
+  db.application =
+    
+    ## The name of a software program
+    element application { db.application.attlist, db._text }
+}
+div {
+  db.hardware.role.attribute = attribute role { text }
+  db.hardware.attlist =
+    db.hardware.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.hardware =
+    
+    ## A physical part of a computer system
+    element hardware { db.hardware.attlist, db._text }
+}
+db.gui.inlines =
+  db.guiicon
+  | db.guibutton
+  | db.guimenuitem
+  | db.guimenu
+  | db.guisubmenu
+  | db.guilabel
+  | db.menuchoice
+  | db.mousebutton
+div {
+  db.guibutton.role.attribute = attribute role { text }
+  db.guibutton.attlist =
+    db.guibutton.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.guibutton =
+    
+    ## The text on a button in a GUI
+    element guibutton {
+      db.guibutton.attlist,
+      (db._text | db.accel | db.superscript | db.subscript)*
+    }
+}
+div {
+  db.guiicon.role.attribute = attribute role { text }
+  db.guiicon.attlist =
+    db.guiicon.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.guiicon =
+    
+    ## Graphic and/or text appearing as a icon in a GUI
+    element guiicon {
+      db.guiicon.attlist,
+      (db._text | db.accel | db.superscript | db.subscript)*
+    }
+}
+div {
+  db.guilabel.role.attribute = attribute role { text }
+  db.guilabel.attlist =
+    db.guilabel.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.guilabel =
+    
+    ## The text of a label in a GUI
+    element guilabel {
+      db.guilabel.attlist,
+      (db._text | db.accel | db.superscript | db.subscript)*
+    }
+}
+div {
+  db.guimenu.role.attribute = attribute role { text }
+  db.guimenu.attlist =
+    db.guimenu.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.guimenu =
+    
+    ## The name of a menu in a GUI
+    element guimenu {
+      db.guimenu.attlist,
+      (db._text | db.accel | db.superscript | db.subscript)*
+    }
+}
+div {
+  db.guimenuitem.role.attribute = attribute role { text }
+  db.guimenuitem.attlist =
+    db.guimenuitem.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.guimenuitem =
+    
+    ## The name of a terminal menu item in a GUI
+    element guimenuitem {
+      db.guimenuitem.attlist,
+      (db._text | db.accel | db.superscript | db.subscript)*
+    }
+}
+div {
+  db.guisubmenu.role.attribute = attribute role { text }
+  db.guisubmenu.attlist =
+    db.guisubmenu.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.guisubmenu =
+    
+    ## The name of a submenu in a GUI
+    element guisubmenu {
+      db.guisubmenu.attlist,
+      (db._text | db.accel | db.superscript | db.subscript)*
+    }
+}
+div {
+  db.menuchoice.role.attribute = attribute role { text }
+  db.menuchoice.attlist =
+    db.menuchoice.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.menuchoice =
+    
+    ## A selection or series of selections from a menu
+    element menuchoice {
+      db.menuchoice.attlist,
+      db.shortcut?,
+      (db.guibutton
+       | db.guiicon
+       | db.guilabel
+       | db.guimenu
+       | db.guimenuitem
+       | db.guisubmenu)+
+    }
+}
+div {
+  db.mousebutton.role.attribute = attribute role { text }
+  db.mousebutton.attlist =
+    db.mousebutton.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.mousebutton =
+    
+    ## The conventional name of a mouse button
+    element mousebutton { db.mousebutton.attlist, db._text }
+}
+db.keyboard.inlines =
+  db.keycombo
+  | db.keycap
+  | db.keycode
+  | db.keysym
+  | db.shortcut
+  | db.accel
+div {
+  db.keycap.function.enumeration =
+    
+    ## The "Alt" key
+    "alt"
+    | 
+      ## The "Backspace" key
+      "backspace"
+    | 
+      ## The "Command" key
+      "command"
+    | 
+      ## The "Control" key
+      "control"
+    | 
+      ## The "Delete" key
+      "delete"
+    | 
+      ## The down arrow
+      "down"
+    | 
+      ## The "End" key
+      "end"
+    | 
+      ## The "Enter" or "Return" key
+      "enter"
+    | 
+      ## The "Escape" key
+      "escape"
+    | 
+      ## The "Home" key
+      "home"
+    | 
+      ## The "Insert" key
+      "insert"
+    | 
+      ## The left arrow
+      "left"
+    | 
+      ## The "Meta" key
+      "meta"
+    | 
+      ## The "Option" key
+      "option"
+    | 
+      ## The page down key
+      "pagedown"
+    | 
+      ## The page up key
+      "pageup"
+    | 
+      ## The right arrow
+      "right"
+    | 
+      ## The "Shift" key
+      "shift"
+    | 
+      ## The spacebar
+      "space"
+    | 
+      ## The "Tab" key
+      "tab"
+    | 
+      ## The up arrow
+      "up"
+  db.keycap.function-enum.attribute =
+    
+    ## Identifies the function key
+    attribute function { db.keycap.function.enumeration }?
+  db.keycap.function-other.attributes =
+    
+    ## Identifies the function key
+    attribute function {
+      
+      ## Indicates a non-standard function key
+      "other"
+    }?,
+    
+    ## Specifies a keyword that identifies the non-standard key
+    attribute otherfunction { text }
+  db.keycap.function.attrib =
+    db.keycap.function-enum.attribute
+    | db.keycap.function-other.attributes
+  db.keycap.role.attribute = attribute role { text }
+  db.keycap.attlist =
+    db.keycap.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.keycap.function.attrib
+  db.keycap =
+    
+    ## The text printed on a key on a keyboard
+    element keycap { db.keycap.attlist, db._text }
+}
+div {
+  db.keycode.role.attribute = attribute role { text }
+  db.keycode.attlist =
+    db.keycode.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.keycode =
+    
+    ## The internal, frequently numeric, identifier for a key on a keyboard
+    element keycode { db.keycode.attlist, db._text }
+}
+db.keycombination.contentmodel =
+  (db.keycap | db.keycombo | db.keysym) | db.mousebutton
+div {
+  db.keycombo.action.enumeration =
+    
+    ## A (single) mouse click.
+    "click"
+    | 
+      ## A double mouse click.
+      "double-click"
+    | 
+      ## A mouse or key press.
+      "press"
+    | 
+      ## Sequential clicks or presses.
+      "seq"
+    | 
+      ## Simultaneous clicks or presses.
+      "simul"
+  db.keycombo.action-enum.attribute =
+    
+    ## Identifies the nature of the action taken. If keycombo
+    ##  contains more than one element, simul
+    ##  is the default, otherwise there is no default.
+    attribute action { db.keycombo.action.enumeration }?
+  db.keycombo.action-other.attributes =
+    
+    ## Identifies the nature of the action taken
+    attribute action {
+      
+      ## Indicates a non-standard action
+      "other"
+    }?,
+    
+    ## Identifies the non-standard action in some unspecified way.
+    attribute otheraction { text }
+  db.keycombo.action.attrib =
+    db.keycombo.action-enum.attribute
+    | db.keycombo.action-other.attributes
+  db.keycombo.role.attribute = attribute role { text }
+  db.keycombo.attlist =
+    db.keycombo.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.keycombo.action.attrib
+  db.keycombo =
+    
+    ## A combination of input actions
+    element keycombo {
+      db.keycombo.attlist, db.keycombination.contentmodel+
+    }
+}
+div {
+  db.keysym.role.attribute = attribute role { text }
+  db.keysym.attlist =
+    db.keysym.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.keysym =
+    
+    ## The symbolic name of a key on a keyboard
+    element keysym { db.keysym.attlist, db._text }
+}
+div {
+  db.accel.role.attribute = attribute role { text }
+  db.accel.attlist =
+    db.accel.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.accel =
+    
+    ## A graphical user interface (GUI) keyboard shortcut
+    element accel { db.accel.attlist, db._text }
+}
+div {
+  db.shortcut.action.attrib = db.keycombo.action.attrib
+  db.shortcut.role.attribute = attribute role { text }
+  db.shortcut.attlist =
+    db.shortcut.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.shortcut.action.attrib
+  db.shortcut =
+    
+    ## A key combination for an action that is also accessible through a menu
+    element shortcut {
+      db.shortcut.attlist, db.keycombination.contentmodel+
+    }
+}
+db.os.inlines =
+  db.prompt
+  | db.envar
+  | db.filename
+  | db.command
+  | db.computeroutput
+  | db.userinput
+db.computeroutput.inlines =
+  (text | db.ubiq.inlines | db.os.inlines | db.technical.inlines)
+  | db.co
+  | db.markup.inlines
+db.userinput.inlines =
+  (text | db.ubiq.inlines | db.os.inlines | db.technical.inlines)
+  | db.co
+  | db.markup.inlines
+  | db.gui.inlines
+  | db.keyboard.inlines
+db.prompt.inlines = db._text | db.co
+div {
+  db.prompt.role.attribute = attribute role { text }
+  db.prompt.attlist =
+    db.prompt.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.prompt =
+    
+    ## A character or string indicating the start of an input field in a  computer display
+    element prompt { db.prompt.attlist, db.prompt.inlines* }
+}
+div {
+  db.envar.role.attribute = attribute role { text }
+  db.envar.attlist =
+    db.envar.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.envar =
+    
+    ## A software environment variable
+    element envar { db.envar.attlist, db._text }
+}
+div {
+  db.filename.class.enumeration =
+    
+    ## A device
+    "devicefile"
+    | 
+      ## A directory
+      "directory"
+    | 
+      ## A filename extension
+      "extension"
+    | 
+      ## A header file (as for a programming language)
+      "headerfile"
+    | 
+      ## A library file
+      "libraryfile"
+    | 
+      ## A partition (as of a hard disk)
+      "partition"
+    | 
+      ## A symbolic link
+      "symlink"
+  db.filename.class.attribute =
+    
+    ## Identifies the class of filename
+    attribute class { db.filename.class.enumeration }
+  db.filename.path.attribute =
+    
+    ## Specifies the path of the filename
+    attribute path { text }
+  db.filename.role.attribute = attribute role { text }
+  db.filename.attlist =
+    db.filename.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.filename.path.attribute?
+    & db.filename.class.attribute?
+  db.filename =
+    
+    ## The name of a file
+    element filename { db.filename.attlist, db._text }
+}
+div {
+  db.command.role.attribute = attribute role { text }
+  db.command.attlist =
+    db.command.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.command =
+    
+    ## The name of an executable program or other software command
+    element command { db.command.attlist, db._text }
+}
+div {
+  db.computeroutput.role.attribute = attribute role { text }
+  db.computeroutput.attlist =
+    db.computeroutput.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.computeroutput =
+    
+    ## Data, generally text, displayed or presented by a computer
+    element computeroutput {
+      db.computeroutput.attlist, db.computeroutput.inlines*
+    }
+}
+div {
+  db.userinput.role.attribute = attribute role { text }
+  db.userinput.attlist =
+    db.userinput.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.userinput =
+    
+    ## Data entered by the user
+    element userinput { db.userinput.attlist, db.userinput.inlines* }
+}
+div {
+  db.cmdsynopsis.role.attribute = attribute role { text }
+  db.cmdsynopsis.sepchar.attribute =
+    
+    ## Specifies the character that should separate the command and its top-level arguments
+    attribute sepchar { text }
+  db.cmdsynopsis.cmdlength.attribute =
+    
+    ## Indicates the displayed length of the command; this information may be used to intelligently indent command synopses which extend beyond one line
+    attribute cmdlength { text }
+  db.cmdsynopsis.label.attribute = db.label.attribute
+  db.cmdsynopsis.attlist =
+    db.cmdsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.cmdsynopsis.sepchar.attribute?
+    & db.cmdsynopsis.cmdlength.attribute?
+    & db.cmdsynopsis.label.attribute?
+  db.cmdsynopsis.info = db._info.title.forbidden
+  db.cmdsynopsis =
+    
+    ## A syntax summary for a software command
+    element cmdsynopsis {
+      db.cmdsynopsis.attlist,
+      db.cmdsynopsis.info,
+      (db.command | db.arg | db.group | db.sbr)+,
+      db.synopfragment*
+    }
+}
+db.rep.enumeration =
+  
+  ## Can not be repeated.
+  "norepeat"
+  | 
+    ## Can be repeated.
+    "repeat"
+db.rep.attribute =
+  
+  ## Indicates whether or not repetition is possible.
+  [ a:defaultValue = "norepeat" ] attribute rep { db.rep.enumeration }
+db.choice.enumeration =
+  
+  ## Formatted to indicate that it is optional.
+  "opt"
+  | 
+    ## Formatted without indication.
+    "plain"
+  | 
+    ## Formatted to indicate that it is required.
+    "req"
+db.choice.opt.attribute =
+  
+  ## Indicates optionality.
+  [ a:defaultValue = "opt" ] attribute choice { db.choice.enumeration }
+db.choice.req.attribute =
+  
+  ## Indicates optionality.
+  [ a:defaultValue = "req" ] attribute choice { db.choice.enumeration }
+div {
+  db.arg.role.attribute = attribute role { text }
+  db.arg.rep.attribute = db.rep.attribute
+  db.arg.choice.attribute = db.choice.opt.attribute
+  db.arg.attlist =
+    db.arg.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.arg.rep.attribute?
+    & db.arg.choice.attribute?
+  db.arg =
+    
+    ## An argument in a cmdsynopsis
+    element arg {
+      db.arg.attlist,
+      (db._text
+       | db.arg
+       | db.group
+       | db.option
+       | db.synopfragmentref
+       | db.sbr)*
+    }
+}
+div {
+  db.group.role.attribute = attribute role { text }
+  db.group.rep.attribute = db.rep.attribute
+  db.group.choice.attribute = db.choice.opt.attribute
+  db.group.attlist =
+    db.group.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.group.rep.attribute?
+    & db.group.choice.attribute?
+  db.group =
+    
+    ## A group of elements in a cmdsynopsis
+    element group {
+      db.group.attlist,
+      (db.arg
+       | db.group
+       | db.option
+       | db.synopfragmentref
+       | db.replaceable
+       | db.sbr)+
+    }
+}
+div {
+  db.sbr.role.attribute = attribute role { text }
+  db.sbr.attlist = db.sbr.role.attribute? & db.common.attributes
+  db.sbr =
+    
+    ## An explicit line break in a command synopsis
+    element sbr { db.sbr.attlist, empty }
+}
+div {
+  db.synopfragment.role.attribute = attribute role { text }
+  db.synopfragment.attlist =
+    db.synopfragment.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.synopfragment =
+    
+    ## A portion of a cmdsynopsis broken out from the main body of the synopsis
+    element synopfragment {
+      db.synopfragment.attlist, (db.arg | db.group)+
+    }
+}
+div {
+  db.synopfragmentref.role.attribute = attribute role { text }
+  db.synopfragmentref.attlist =
+    db.synopfragmentref.role.attribute?
+    & db.common.attributes
+    & db.linkend.attribute
+  db.synopfragmentref =
+    
+    ## A reference to a fragment of a command synopsis
+    [
+      s:pattern [
+        name = "Synopsis fragment type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:synopfragmentref"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@linkend]) = 'synopfragment' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
+            "@linkend on synopfragmentref must point to a synopfragment."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element synopfragmentref { db.synopfragmentref.attlist, text }
+}
+db.programming.inlines =
+  db.function
+  | db.parameter
+  | db.varname
+  | db.returnvalue
+  | db.type
+  | db.classname
+  | db.exceptionname
+  | db.interfacename
+  | db.methodname
+  | db.modifier
+  | db.initializer
+  | db.oo.inlines
+db.oo.inlines = db.ooclass | db.ooexception | db.oointerface
+db.synopsis.blocks =
+  (db.funcsynopsis
+   | db.classsynopsis
+   | db.methodsynopsis
+   | db.constructorsynopsis
+   | db.destructorsynopsis
+   | db.fieldsynopsis)
+  | db.cmdsynopsis
+div {
+  db.synopsis.role.attribute = attribute role { text }
+  db.synopsis.label.attribute = db.label.attribute
+  db.synopsis.attlist =
+    db.synopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+    & db.synopsis.label.attribute?
+  db.synopsis =
+    
+    ## A general-purpose element for representing the syntax of commands or functions
+    element synopsis { db.synopsis.attlist, db.verbatim.contentmodel }
+}
+div {
+  db.funcsynopsis.role.attribute = attribute role { text }
+  db.funcsynopsis.attlist =
+    db.funcsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.language.attribute?
+  db.funcsynopsis.info = db._info.title.forbidden
+  db.funcsynopsis =
+    
+    ## The syntax summary for a function definition
+    element funcsynopsis {
+      db.funcsynopsis.attlist,
+      db.funcsynopsis.info,
+      (db.funcsynopsisinfo | db.funcprototype)+
+    }
+}
+div {
+  db.funcsynopsisinfo.role.attribute = attribute role { text }
+  db.funcsynopsisinfo.attlist =
+    db.funcsynopsisinfo.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+  db.funcsynopsisinfo =
+    
+    ## Information supplementing the funcdefs of a funcsynopsis
+    element funcsynopsisinfo {
+      db.funcsynopsisinfo.attlist, db.verbatim.contentmodel
+    }
+}
+div {
+  db.funcprototype.role.attribute = attribute role { text }
+  db.funcprototype.attlist =
+    db.funcprototype.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.funcprototype =
+    
+    ## The prototype of a function
+    element funcprototype {
+      db.funcprototype.attlist,
+      db.modifier*,
+      db.funcdef,
+      (db.void
+       | db.varargs
+       | ((db.paramdef | db.group.paramdef)+, db.varargs?)),
+      db.modifier*
+    }
+}
+div {
+  db.funcdef.role.attribute = attribute role { text }
+  db.funcdef.attlist =
+    db.funcdef.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.funcdef =
+    
+    ## A function (subroutine) name and its return type
+    element funcdef {
+      db.funcdef.attlist, (db._text | db.type | db.function)*
+    }
+}
+div {
+  db.function.role.attribute = attribute role { text }
+  db.function.attlist =
+    db.function.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.function =
+    
+    ## The name of a function or subroutine, as in a programming language
+    element function { db.function.attlist, db._text }
+}
+div {
+  db.void.role.attribute = attribute role { text }
+  db.void.attlist =
+    db.void.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.void =
+    
+    ## An empty element in a function synopsis indicating that the function in question takes no arguments
+    element void { db.void.attlist, empty }
+}
+div {
+  db.varargs.role.attribute = attribute role { text }
+  db.varargs.attlist =
+    db.varargs.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.varargs =
+    
+    ## An empty element in a function synopsis indicating a variable number of arguments
+    element varargs { db.varargs.attlist, empty }
+}
+div {
+  db.group.paramdef.role.attribute = attribute role { text }
+  db.group.paramdef.choice.attribute = db.choice.opt.attribute
+  db.group.paramdef.attlist =
+    db.group.paramdef.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.group.paramdef.choice.attribute?
+  db.group.paramdef =
+    
+    ## A group of parameters
+    element group {
+      db.group.paramdef.attlist, (db.paramdef | db.group.paramdef)+
+    }
+}
+div {
+  db.paramdef.role.attribute = attribute role { text }
+  db.paramdef.choice.enumeration =
+    
+    ## Formatted to indicate that it is optional.
+    "opt"
+    | 
+      ## Formatted to indicate that it is required.
+      "req"
+  db.paramdef.choice.attribute =
+    
+    ## Indicates optionality.
+    [ a:defaultValue = "opt" ]
+    attribute choice { db.paramdef.choice.enumeration }
+  db.paramdef.attlist =
+    db.paramdef.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.paramdef.choice.attribute?
+  db.paramdef =
+    
+    ## Information about a function parameter in a programming language
+    element paramdef {
+      db.paramdef.attlist,
+      (db._text
+       | db.initializer
+       | db.type
+       | db.parameter
+       | db.funcparams)*
+    }
+}
+div {
+  db.funcparams.role.attribute = attribute role { text }
+  db.funcparams.attlist =
+    db.funcparams.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.funcparams =
+    
+    ## Parameters for a function referenced through a function pointer in a synopsis
+    element funcparams { db.funcparams.attlist, db._text }
+}
+div {
+  db.classsynopsis.role.attribute = attribute role { text }
+  db.classsynopsis.class.enumeration =
+    
+    ## This is the synopsis of a class
+    "class"
+    | 
+      ## This is the synopsis of an interface
+      "interface"
+  db.classsynopsis.class.attribute =
+    
+    ## Specifies the nature of the synopsis
+    attribute class { db.classsynopsis.class.enumeration }
+  db.classsynopsis.attlist =
+    db.classsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.language.attribute?
+    & db.classsynopsis.class.attribute?
+  db.classsynopsis =
+    
+    ## The syntax summary for a class definition
+    element classsynopsis {
+      db.classsynopsis.attlist,
+      db.oo.inlines+,
+      (db.classsynopsisinfo
+       | db.methodsynopsis
+       | db.constructorsynopsis
+       | db.destructorsynopsis
+       | db.fieldsynopsis)*
+    }
+}
+div {
+  db.classsynopsisinfo.role.attribute = attribute role { text }
+  db.classsynopsisinfo.attlist =
+    db.classsynopsisinfo.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+  db.classsynopsisinfo =
+    
+    ## Information supplementing the contents of a classsynopsis
+    element classsynopsisinfo {
+      db.classsynopsisinfo.attlist, db.verbatim.contentmodel
+    }
+}
+div {
+  db.ooclass.role.attribute = attribute role { text }
+  db.ooclass.attlist =
+    db.ooclass.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.ooclass =
+    
+    ## A class in an object-oriented programming language
+    element ooclass {
+      db.ooclass.attlist, (db.package | db.modifier)*, db.classname
+    }
+}
+div {
+  db.oointerface.role.attribute = attribute role { text }
+  db.oointerface.attlist =
+    db.oointerface.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.oointerface =
+    
+    ## An interface in an object-oriented programming language
+    element oointerface {
+      db.oointerface.attlist,
+      (db.package | db.modifier)*,
+      db.interfacename
+    }
+}
+div {
+  db.ooexception.role.attribute = attribute role { text }
+  db.ooexception.attlist =
+    db.ooexception.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.ooexception =
+    
+    ## An exception in an object-oriented programming language
+    element ooexception {
+      db.ooexception.attlist,
+      (db.package | db.modifier)*,
+      db.exceptionname
+    }
+}
+db.modifier.xml.space.attribute =
+  
+  ## Can be used to indicate that whitespace in the modifier should be preserved (for multi-line annotations, for example).
+  attribute xml:space {
+    
+    ## Extra whitespace and line breaks must be preserved.
+    [
+      # Ideally the definition of xml:space used on modifier would be
+      # different from the definition used on the verbatim elements. The
+      # verbatim elements forbid the use of xml:space="default" which
+      # wouldn't be a problem on modifier. But doing that causes the
+      # generated XSD schemas to be broken so I'm just reusing the existing
+      # definition for now. It won't be backwards incompatible to fix this
+      # problem in the future.
+      #    | ## Extra whitespace and line breaks are not preserved.
+      #      "default"
+      
+    ]
+    "preserve"
+  }
+div {
+  db.modifier.role.attribute = attribute role { text }
+  db.modifier.attlist =
+    db.modifier.xml.space.attribute?
+    & db.modifier.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.modifier =
+    
+    ## Modifiers in a synopsis
+    element modifier { db.modifier.attlist, db._text }
+}
+div {
+  db.interfacename.role.attribute = attribute role { text }
+  db.interfacename.attlist =
+    db.interfacename.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.interfacename =
+    
+    ## The name of an interface
+    element interfacename { db.interfacename.attlist, db._text }
+}
+div {
+  db.exceptionname.role.attribute = attribute role { text }
+  db.exceptionname.attlist =
+    db.exceptionname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.exceptionname =
+    
+    ## The name of an exception
+    element exceptionname { db.exceptionname.attlist, db._text }
+}
+div {
+  db.fieldsynopsis.role.attribute = attribute role { text }
+  db.fieldsynopsis.attlist =
+    db.fieldsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.language.attribute?
+  db.fieldsynopsis =
+    
+    ## The name of a field in a class definition
+    element fieldsynopsis {
+      db.fieldsynopsis.attlist,
+      db.modifier*,
+      db.type?,
+      db.varname,
+      db.initializer?
+    }
+}
+div {
+  db.initializer.role.attribute = attribute role { text }
+  db.initializer.attlist =
+    db.initializer.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.initializer.inlines = db._text | db.mathphrase | db.markup.inlines
+  db.initializer =
+    
+    ## The initializer for a fieldsynopsis
+    element initializer {
+      db.initializer.attlist, db.initializer.inlines*
+    }
+}
+div {
+  db.constructorsynopsis.role.attribute = attribute role { text }
+  db.constructorsynopsis.attlist =
+    db.constructorsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.language.attribute?
+  db.constructorsynopsis =
+    
+    ## A syntax summary for a constructor
+    element constructorsynopsis {
+      db.constructorsynopsis.attlist,
+      db.modifier*,
+      db.methodname?,
+      ((db.methodparam | db.group.methodparam)+ | db.void?),
+      db.exceptionname*
+    }
+}
+div {
+  db.destructorsynopsis.role.attribute = attribute role { text }
+  db.destructorsynopsis.attlist =
+    db.destructorsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.language.attribute?
+  db.destructorsynopsis =
+    
+    ## A syntax summary for a destructor
+    element destructorsynopsis {
+      db.destructorsynopsis.attlist,
+      db.modifier*,
+      db.methodname?,
+      ((db.methodparam | db.group.methodparam)+ | db.void?),
+      db.exceptionname*
+    }
+}
+div {
+  db.methodsynopsis.role.attribute = attribute role { text }
+  db.methodsynopsis.attlist =
+    db.methodsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.language.attribute?
+  db.methodsynopsis =
+    
+    ## A syntax summary for a method
+    element methodsynopsis {
+      db.methodsynopsis.attlist,
+      db.modifier*,
+      (db.type | db.void)?,
+      db.methodname,
+      ((db.methodparam | db.group.methodparam)+ | db.void),
+      db.exceptionname*,
+      db.modifier*
+    }
+}
+div {
+  db.methodname.role.attribute = attribute role { text }
+  db.methodname.attlist =
+    db.methodname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.methodname =
+    
+    ## The name of a method
+    element methodname { db.methodname.attlist, db._text }
+}
+div {
+  db.methodparam.role.attribute = attribute role { text }
+  db.methodparam.rep.attribute = db.rep.attribute
+  db.methodparam.choice.attribute = db.choice.req.attribute
+  db.methodparam.attlist =
+    db.methodparam.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.methodparam.rep.attribute?
+    & db.methodparam.choice.attribute?
+  db.methodparam =
+    
+    ## Parameters to a method
+    element methodparam {
+      db.methodparam.attlist,
+      db.modifier*,
+      db.type?,
+      ((db.modifier*, db.parameter, db.initializer?) | db.funcparams),
+      db.modifier*
+    }
+}
+div {
+  db.group.methodparam.role.attribute = attribute role { text }
+  db.group.methodparam.choice.attribute = db.choice.opt.attribute
+  db.group.methodparam.attlist =
+    db.group.methodparam.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.group.methodparam.choice.attribute?
+  db.group.methodparam =
+    
+    ## A group of method parameters
+    element group {
+      db.group.methodparam.attlist,
+      (db.methodparam | db.group.methodparam)+
+    }
+}
+div {
+  db.varname.role.attribute = attribute role { text }
+  db.varname.attlist =
+    db.varname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.varname =
+    
+    ## The name of a variable
+    element varname { db.varname.attlist, db._text }
+}
+div {
+  db.returnvalue.role.attribute = attribute role { text }
+  db.returnvalue.attlist =
+    db.returnvalue.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.returnvalue =
+    
+    ## The value returned by a function
+    element returnvalue { db.returnvalue.attlist, db._text }
+}
+div {
+  db.type.role.attribute = attribute role { text }
+  db.type.attlist =
+    db.type.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.type =
+    
+    ## The classification of a value
+    element type { db.type.attlist, db._text }
+}
+div {
+  db.classname.role.attribute = attribute role { text }
+  db.classname.attlist =
+    db.classname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.classname =
+    
+    ## The name of a class, in the object-oriented programming sense
+    element classname { db.classname.attlist, db._text }
+}
+div {
+  db.programlisting.role.attribute = attribute role { text }
+  db.programlisting.width.attribute = db.width.characters.attribute
+  db.programlisting.attlist =
+    db.programlisting.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+    & db.programlisting.width.attribute?
+  db.programlisting =
+    
+    ## A literal listing of all or part of a program
+    element programlisting {
+      db.programlisting.attlist, db.verbatim.contentmodel
+    }
+}
+db.admonition.blocks =
+  db.caution | db.important | db.note | db.tip | db.warning
+db.admonition.contentmodel = db._info.title.only, db.all.blocks+
+div {
+  db.caution.role.attribute = attribute role { text }
+  db.caution.attlist =
+    db.caution.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.caution =
+    
+    ## A note of caution
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caution"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of caution"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caution"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of caution"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caution"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of caution"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caution"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of caution"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caution"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of caution"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element caution { db.caution.attlist, db.admonition.contentmodel }
+}
+div {
+  db.important.role.attribute = attribute role { text }
+  db.important.attlist =
+    db.important.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.important =
+    
+    ## An admonition set off from the text
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:important"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of important"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:important"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of important"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:important"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of important"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:important"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of important"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:important"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of important"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element important {
+      db.important.attlist, db.admonition.contentmodel
+    }
+}
+div {
+  db.note.role.attribute = attribute role { text }
+  db.note.attlist =
+    db.note.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.note =
+    
+    ## A message set off from the text
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:note"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of note"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:note"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of note"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:note"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of note"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:note"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of note"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:note"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of note"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element note { db.note.attlist, db.admonition.contentmodel }
+}
+div {
+  db.tip.role.attribute = attribute role { text }
+  db.tip.attlist =
+    db.tip.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.tip =
+    
+    ## A suggestion to the user, set off from the text
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:tip"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of tip"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:tip"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of tip"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:tip"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of tip"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:tip"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of tip"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:tip"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of tip"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element tip { db.tip.attlist, db.admonition.contentmodel }
+}
+div {
+  db.warning.role.attribute = attribute role { text }
+  db.warning.attlist =
+    db.warning.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.warning =
+    
+    ## An admonition set off from the text
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:warning"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of warning"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:warning"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of warning"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:warning"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of warning"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:warning"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of warning"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:warning"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of warning"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element warning { db.warning.attlist, db.admonition.contentmodel }
+}
+db.error.inlines =
+  db.errorcode | db.errortext | db.errorname | db.errortype
+div {
+  db.errorcode.role.attribute = attribute role { text }
+  db.errorcode.attlist =
+    db.errorcode.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.errorcode =
+    
+    ## An error code
+    element errorcode { db.errorcode.attlist, db._text }
+}
+div {
+  db.errorname.role.attribute = attribute role { text }
+  db.errorname.attlist =
+    db.errorname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.errorname =
+    
+    ## An error name
+    element errorname { db.errorname.attlist, db._text }
+}
+div {
+  db.errortext.role.attribute = attribute role { text }
+  db.errortext.attlist =
+    db.errortext.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.errortext =
+    
+    ## An error message.
+    element errortext { db.errortext.attlist, db._text }
+}
+div {
+  db.errortype.role.attribute = attribute role { text }
+  db.errortype.attlist =
+    db.errortype.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.errortype =
+    
+    ## The classification of an error message
+    element errortype { db.errortype.attlist, db._text }
+}
+db.systemitem.inlines = db._text | db.co
+div {
+  db.systemitem.class.enumeration =
+    
+    ## A daemon or other system process (syslogd)
+    "daemon"
+    | 
+      ## A domain name (example.com)
+      "domainname"
+    | 
+      ## An ethernet address (00:05:4E:49:FD:8E)
+      "etheraddress"
+    | 
+      ## An event of some sort (SIGHUP)
+      "event"
+    | 
+      ## An event handler of some sort (hangup)
+      "eventhandler"
+    | 
+      ## A filesystem (ext3)
+      "filesystem"
+    | 
+      ## A fully qualified domain name (my.example.com)
+      "fqdomainname"
+    | 
+      ## A group name (wheel)
+      "groupname"
+    | 
+      ## An IP address (127.0.0.1)
+      "ipaddress"
+    | 
+      ## A library (libncurses)
+      "library"
+    | 
+      ## A macro
+      "macro"
+    | 
+      ## A netmask (255.255.255.192)
+      "netmask"
+    | 
+      ## A newsgroup (comp.text.xml)
+      "newsgroup"
+    | 
+      ## An operating system name (Hurd)
+      "osname"
+    | 
+      ## A process (gnome-cups-icon)
+      "process"
+    | 
+      ## A protocol (ftp)
+      "protocol"
+    | 
+      ## A resource
+      "resource"
+    | 
+      ## A security context (a role, permission, or security token, for example)
+      "securitycontext"
+    | 
+      ## A server (mail.example.com)
+      "server"
+    | 
+      ## A service (ppp)
+      "service"
+    | 
+      ## A system name (hephaistos)
+      "systemname"
+    | 
+      ## A user name (ndw)
+      "username"
+  db.systemitem.class-enum.attribute =
+    
+    ## Identifies the nature of the system item
+    attribute class { db.systemitem.class.enumeration }?
+  db.systemitem.class-other.attribute =
+    
+    ## Identifies the nature of the non-standard system item
+    attribute otherclass { xsd:NMTOKEN }
+  db.systemitem.class-other.attributes =
+    
+    ## Identifies the kind of systemitemgraphic identifier
+    attribute class {
+      
+      ## Indicates that the system item is some 'other' kind.
+      "other"
+    }
+    & db.systemitem.class-other.attribute
+  db.systemitem.class.attribute =
+    db.systemitem.class-enum.attribute
+    | db.systemitem.class-other.attributes
+  db.systemitem.role.attribute = attribute role { text }
+  db.systemitem.attlist =
+    db.systemitem.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.systemitem.class.attribute?
+  db.systemitem =
+    
+    ## A system-related item or term
+    element systemitem { db.systemitem.attlist, db.systemitem.inlines* }
+}
+div {
+  db.option.role.attribute = attribute role { text }
+  db.option.attlist =
+    db.option.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.option =
+    
+    ## An option for a software command
+    element option { db.option.attlist, db._text }
+}
+div {
+  db.optional.role.attribute = attribute role { text }
+  db.optional.attlist =
+    db.optional.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.optional =
+    
+    ## Optional information
+    element optional { db.optional.attlist, db._text }
+}
+div {
+  db.property.role.attribute = attribute role { text }
+  db.property.attlist =
+    db.property.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.property =
+    
+    ## A unit of data associated with some part of a computer system
+    element property { db.property.attlist, db._text }
+}
+div {
+  db.topic.status.attribute = db.status.attribute
+  db.topic.role.attribute = attribute role { text }
+  db.topic.type.attribute =
+    
+    ## Identifies the topic type
+    attribute type { text }
+  db.topic.attlist =
+    db.topic.role.attribute?
+    & db.topic.type.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.topic.status.attribute?
+  db.topic.info = db._info.title.req
+  db.topic =
+    
+    ## A modular unit of documentation not part of any particular narrative flow
+    element topic {
+      db.topic.attlist,
+      db.topic.info,
+      db.navigation.components*,
+      db.toplevel.blocks.or.sections,
+      db.navigation.components*
+    }
+}
+start =
+  db.assembly
+  | db.resources
+  | db.relationships
+  | db.transforms
+  | db.module
+db.grammar.attribute =
+  
+  ## Identifies the markup grammar of a resource
+  attribute grammar { text }
+div {
+  db.assembly.role.attribute = attribute role { text }
+  db.assembly.attlist =
+    db.assembly.role.attribute? & db.common.attributes
+  db.assembly.info = db._info
+  db.assembly =
+    
+    ## Defines the hierarchy and relationships for a collection of resources
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:assembly"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element assembly {
+      db.assembly.attlist,
+      db.assembly.info,
+      db.resources+,
+      db.structure*,
+      db.relationships*,
+      db.transforms?
+    }
+}
+div {
+  db.resources.role.attribute = attribute role { text }
+  db.resources.grammar.attribute = db.grammar.attribute
+  db.resources.attlist =
+    db.resources.role.attribute?
+    & db.resources.grammar.attribute?
+    & db.common.attributes
+  db.resources.info = db._info.title.forbidden
+  db.resources =
+    
+    ## Contains one or more resource objects that are managed by the assembly
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:resources"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element resources {
+      db.resources.attlist,
+      db.resources.info?,
+      (db.description*, db.resource+)
+    }
+}
+div {
+  db.resource.role.attribute = attribute role { text }
+  db.resource.fileref.attribute =
+    
+    ## Indentifies the location of the data by URI
+    attribute fileref { xsd:anyURI }
+  db.resource.grammar.attribute = db.grammar.attribute
+  db.resource.attlist =
+    db.resource.role.attribute?
+    & db.resource.grammar.attribute?
+    & db.common.attributes
+  db.resource =
+    
+    ## Identifies an object managed within the assembly
+    element resource {
+      db.resource.attlist,
+      db.resource.fileref.attribute,
+      db.description*
+    }
+}
+div {
+  db.structure.role.attribute = attribute role { text }
+  db.structure.type.attribute =
+    
+    ## Identifies the structure type of the structure
+    attribute type { xsd:NMTOKEN }
+  db.structure.resourceref.attribute =
+    
+    ## Indicates a single resource from which to construct this structure
+    attribute resourceref { xsd:IDREF }
+  db.structure.defaultformat.attribute =
+    
+    ## Identifies the default format of the structure
+    attribute defaultformat { xsd:NMTOKEN }
+  db.structure.renderas.attribute =
+    
+    ## Specifies the DocBook element to which this unit should be renamed
+    attribute renderas { xsd:QName }
+  db.structure.attlist =
+    db.structure.role.attribute?
+    & db.structure.type.attribute?
+    & db.structure.resourceref.attribute?
+    & db.structure.renderas.attribute?
+    & db.structure.defaultformat.attribute?
+    & db.common.attributes
+  db.structure.info = db.info?
+  db.structure =
+    
+    ## Describes the structure of a document
+    [
+      s:pattern [
+        name = "Specification of renderas"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:structure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@renderas and db:output/@renderas"
+            "The renderas attribute can be specified on either the structure or output, but not both."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element structure {
+      db.structure.attlist,
+      (db.output* & db.filterin? & db.filterout? & db.structure.info),
+      db.merge?,
+      db.revhistory?,
+      db.module+
+    }
+}
+div {
+  db.output.role.attribute = attribute role { text }
+  db.output.chunk.attribute =
+    
+    ## Specifies chunking for this module
+    [ a:defaultValue = "auto" ]
+    attribute chunk { db.module.chunk.enumeration }
+  db.output.format.attribute =
+    
+    ## Identifies the format of the module or structure
+    attribute format { xsd:NMTOKENS }
+  db.output.file.attribute =
+    
+    ## Specifies the output file for this module or structure
+    attribute file { xsd:anyURI }
+  db.output.renderas.attribute =
+    
+    ## Specifies the DocBook element to which this unit should be renamed
+    attribute renderas { xsd:QName }
+  db.output.grammar.attribute = db.grammar.attribute
+  db.output.transform.attribute =
+    
+    ## Specifies the transformation that should be applied to this unit
+    attribute transform { xsd:NMTOKEN }
+  db.output.suppress.attribute =
+    
+    ## Indicates whether or not this unit should be suppressed
+    attribute suppress { xsd:boolean }
+  db.output.attlist =
+    db.output.role.attribute?
+    & db.common.attributes
+    & db.output.chunk.attribute?
+    & db.output.format.attribute?
+    & db.output.file.attribute?
+    & db.output.renderas.attribute?
+    & db.output.grammar.attribute?
+    & db.output.transform.attribute?
+    & db.output.suppress.attribute?
+  db.output =
+    
+    ## Specify an output format and/or file name and/or renderas
+    element output { db.output.attlist, empty }
+}
+div {
+  db.merge.role.attribute = attribute role { text }
+  db.merge.resourceref.attribute =
+    
+    ## Indicates a single resource from which to read merged info
+    attribute resourceref { xsd:IDREF }
+  db.merge.attlist =
+    db.merge.role.attribute?
+    & db.merge.resourceref.attribute?
+    & db.common.attributes
+  db.merge =
+    
+    ## A wrapper for information that a module overrides in the resource it includes
+    element merge { db.merge.attlist, (db._title & db.info.elements*) }
+}
+div {
+  db.module.role.attribute = attribute role { text }
+  db.module.chunk.enumeration =
+    
+    ## This module will be in a chunk
+    "true"
+    | 
+      ## This module will not be in a chunk
+      "false"
+    | 
+      ## Chunking of this module depends on the overall chunking algorithm
+      "auto"
+  db.module.chunk.attribute =
+    
+    ## Specifies chunking for this module
+    [ a:defaultValue = "auto" ]
+    attribute chunk { db.module.chunk.enumeration }
+  db.module.resourceref.attribute =
+    
+    ## Indicates a single resource from which to construct this module
+    attribute resourceref { xsd:IDREF }
+  db.module.omittitles.attribute =
+    
+    ## Indicates if titles should be omitted when including a resource
+    attribute omittitles { xsd:boolean }?
+  db.module.contentonly.attribute =
+    
+    ## Indicates if only the content should be copied when including a resource
+    attribute contentonly { xsd:boolean }?
+  db.module.renderas.attribute =
+    
+    ## Specifies the DocBook element to which this unit should be renamed
+    attribute renderas { xsd:QName }
+  db.module.attlist =
+    db.module.role.attribute?
+    & db.module.chunk.attribute?
+    & db.module.resourceref.attribute?
+    & db.module.omittitles.attribute?
+    & db.module.contentonly.attribute?
+    & db.module.renderas.attribute?
+    & db.common.attributes
+  db.module.info = db.info?
+  db.module =
+    
+    ## A modular component within a structure
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:module"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Specification of renderas"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:module"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@renderas and db:output/@renderas"
+            "The renderas attribute can be specified on either the structure or output, but not both."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element module {
+      db.module.attlist,
+      ((db.output | db.filterin | db.filterout)*,
+       db.module.info,
+       db.merge?,
+       db.module*)
+    }
+}
+div {
+  db.filterout.role.attribute = attribute role { text }
+  db.filterout.attlist =
+    db.filterout.role.attribute? & db.common.attributes
+  db.filterout =
+    
+    ## Elements with effectivity attributes matching this element are suppressed
+    element filterout { db.filterout.attlist, empty }
+}
+div {
+  db.filterin.role.attribute = attribute role { text }
+  db.filterin.attlist =
+    db.filterin.role.attribute? & db.common.attributes
+  db.filterin =
+    
+    ## Elements with effectivity attributes matching this element are allowed
+    element filterin { db.filterin.attlist, empty }
+}
+div {
+  db.relationships.role.attribute = attribute role { text }
+  db.relationships.type.attribute =
+    
+    ## Identifies the type of the contained relationships
+    attribute type { xsd:NMTOKENS }
+  db.relationships.attlist =
+    db.relationships.role.attribute?
+    & db.relationships.type.attribute?
+    & db.common.attributes
+  db.relationships.info = db._info
+  db.relationships =
+    
+    ## Groups relationship elements to define associations between resources
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:relationships"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element relationships {
+      db.relationships.attlist,
+      db.relationships.info,
+      (db.relationship | db.instance)+
+    }
+}
+div {
+  db.relationship.role.attribute = attribute role { text }
+  db.relationship.type.attribute =
+    
+    ## Identifies the type of the relationship
+    attribute type { xsd:NMTOKEN }
+  db.relationship.attlist =
+    db.relationship.role.attribute?
+    & db.relationship.type.attribute?
+    & db.linkend.attribute?
+    & db.common.attributes
+  db.relationship =
+    
+    ## A relationship associates one or more resources
+    element relationship {
+      db.relationship.attlist, db.association, db.instance+
+    }
+}
+div {
+  db.association.role.attribute = attribute role { text }
+  db.association.attlist =
+    db.association.role.attribute?
+    & db.linkend.attribute?
+    & db.common.attributes
+  db.association =
+    
+    ## Identifies the type of relationship between one or more resources
+    element association { db.association.attlist, text? }
+}
+div {
+  db.instance.role.attribute = attribute role { text }
+  db.instance.linking.attribute =
+    
+    ## Specifies the type of link for this instance
+    attribute linking { xsd:NMTOKENS }
+  db.instance.attlist =
+    db.instance.role.attribute?
+    & db.instance.linking.attribute?
+    & db.common.attributes
+  db.instance =
+    
+    ## Identifies a resource that is part of a relationship
+    element instance {
+      db.instance.attlist, db.linkend.attribute, empty
+    }
+}
+div {
+  db.transforms.role.attribute = attribute role { text }
+  db.transforms.attlist =
+    db.transforms.role.attribute? & db.common.attributes
+  db.transforms.info = db._info
+  db.transforms =
+    
+    ## List of transforms for converting from non-DocBook schemas
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:transforms"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element transforms {
+      db.transforms.attlist, db.transforms.info, db.transform+
+    }
+}
+div {
+  db.transform.role.attribute = attribute role { text }
+  db.transform.grammar.attribute = db.grammar.attribute
+  db.transform.fileref.attribute =
+    
+    ## Indentifies the location of the data by URI
+    attribute fileref { xsd:anyURI }
+  db.transform.name.attribute =
+    
+    ## Identifies the location of the data by reference
+    attribute name { xsd:NMTOKEN }
+  db.transform.attlist =
+    db.transform.role.attribute?
+    & (db.transform.grammar.attribute | db.transform.name.attribute)
+    & db.transform.fileref.attribute
+    & db.common.attributes
+  db.transform =
+    
+    ## Identifies a transform for converting from a non-DocBook schema
+    element transform { db.transform.attlist, empty }
+}
+div {
+  db.description.role.attribute = attribute role { text }
+  db.description.attlist =
+    db.description.role.attribute? & db.common.attributes
+  db.description =
+    
+    ## A description of a resource or resources
+    element description { db.description.attlist, db._text }
+}
diff --git a/applications/content/template/docbook/assembly/schema/docbook51b7.rnc b/applications/content/template/docbook/assembly/schema/docbook51b7.rnc
new file mode 100644
index 0000000..3c396cf
--- /dev/null
+++ b/applications/content/template/docbook/assembly/schema/docbook51b7.rnc
@@ -0,0 +1,12976 @@
+namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
+namespace ctrl = "http://nwalsh.com/xmlns/schema-control/"
+default namespace db = "http://docbook.org/ns/docbook"
+namespace html = "http://www.w3.org/1999/xhtml"
+namespace mml = "http://www.w3.org/1998/Math/MathML"
+namespace rng = "http://relaxng.org/ns/structure/1.0"
+namespace s = "http://purl.oclc.org/dsdl/schematron"
+namespace svg = "http://www.w3.org/2000/svg"
+namespace xlink = "http://www.w3.org/1999/xlink"
+
+# This file is part of DocBook V5.1b7
+# 
+# Copyright 1992-2011 HaL Computer Systems, Inc.,
+# O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+# Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+# Organization for the Advancement of Structured Information
+# Standards (OASIS).
+# 
+# Permission to use, copy, modify and distribute the DocBook schema
+# and its accompanying documentation for any purpose and without fee
+# is hereby granted in perpetuity, provided that the above copyright
+# notice and this paragraph appear in all copies. The copyright
+# holders make no representation about the suitability of the schema
+# for any purpose. It is provided "as is" without expressed or implied
+# warranty.
+# 
+# If you modify the DocBook schema in any way, label your schema as a
+# variant of DocBook. See the reference documentation
+# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook)
+# for more information.
+# 
+# Please direct all questions, bug reports, or suggestions for changes
+# to the docbook@lists.oasis-open.org mailing list. For more
+# information, see http://www.oasis-open.org/docbook/.
+# 
+# ======================================================================
+start =
+  (db.set
+   | db.book
+   | db.divisions
+   | db.components
+   | db.navigation.components
+   | db.section
+   | db.para)
+  | (db.abstract
+     | db.mediaobject.content
+     | db.audiodata
+     | db.imagedata
+     | db.textdata
+     | db.videodata
+     | db.caption
+     | db.publishing.blocks
+     | db.formal.blocks
+     | db.informal.blocks
+     | db.formalpara
+     | db.inlinemediaobject
+     | db.list.blocks
+     | db.legalnotice
+     | db.verbatim.blocks
+     | db.graphic.blocks
+     | db.personblurb
+     | db.revhistory
+     | db.simpara
+     | db.step
+     | db.stepalternatives)
+  | (db.partintro | db.simplesect)
+  | db.annotation
+  | (db.sect1 | db.sect2 | db.sect3 | db.sect4 | db.sect5)
+  | (db.refentry | db.refsection | db.refsynopsisdiv)
+  | (db.refsect1 | db.refsect2 | db.refsect3)
+  | (db.glossary | db.glossdiv | db.glosslist)
+  | (db.bibliodiv | db.bibliolist)
+  | (db.setindex | db.index | db.indexdiv)
+  | (db.toc | db.tocdiv)
+  | (db.task | db.taskprerequisites | db.taskrelated | db.tasksummary)
+  | (db.calloutlist
+     | db.programlistingco
+     | db.screenco
+     | db.imageobjectco)
+  | (db.productionset | db.constraintdef)
+  | (db.msg
+     | db.msgexplan
+     | db.msgmain
+     | db.msgrel
+     | db.msgset
+     | db.msgsub)
+  | (db.qandadiv | db.qandaentry | db.qandaset)
+  | (db.equation | db.informalequation)
+  | db.cmdsynopsis
+  | (db.synopsis.blocks | db.funcsynopsisinfo | db.classsynopsisinfo)
+  | db.admonition.blocks
+  | db.topic
+div {
+  db._any.attribute =
+    
+    ## Any attribute, including any attribute in any namespace.
+    attribute * { text }
+  db._any =
+    
+    ## Any element from almost any namespace
+    element * - (db:* | html:*) {
+      (db._any.attribute | text | db._any)*
+    }
+}
+db.arch.attribute =
+  
+  ## Designates the computer or chip architecture to which the element applies
+  attribute arch { text }
+db.audience.attribute =
+  
+  ## Designates the intended audience to which the element applies, for example, system administrators, programmers, or new users.
+  attribute audience { text }
+db.condition.attribute =
+  
+  ## provides a standard place for application-specific effectivity
+  attribute condition { text }
+db.conformance.attribute =
+  
+  ## Indicates standards conformance characteristics of the element
+  attribute conformance { text }
+db.os.attribute =
+  
+  ## Indicates the operating system to which the element is applicable
+  attribute os { text }
+db.revision.attribute =
+  
+  ## Indicates the editorial revision to which the element belongs
+  attribute revision { text }
+db.security.attribute =
+  
+  ## Indicates something about the security level associated with the element to which it applies
+  attribute security { text }
+db.userlevel.attribute =
+  
+  ## Indicates the level of user experience for which the element applies
+  attribute userlevel { text }
+db.vendor.attribute =
+  
+  ## Indicates the computer vendor to which the element applies.
+  attribute vendor { text }
+db.wordsize.attribute =
+  
+  ## Indicates the word size (width in bits) of the computer architecture to which the element applies
+  attribute wordsize { text }
+db.effectivity.attributes =
+  db.arch.attribute?
+  & db.audience.attribute?
+  & db.condition.attribute?
+  & db.conformance.attribute?
+  & db.os.attribute?
+  & db.revision.attribute?
+  & db.security.attribute?
+  & db.userlevel.attribute?
+  & db.vendor.attribute?
+  & db.wordsize.attribute?
+db.endterm.attribute =
+  
+  ## Points to the element whose content is to be used as the text of the link
+  attribute endterm { xsd:IDREF }
+db.linkend.attribute =
+  
+  ## Points to an internal link target by identifying the value of its xml:id attribute
+  attribute linkend { xsd:IDREF }
+db.linkends.attribute =
+  
+  ## Points to one or more internal link targets by identifying the value of their xml:id attributes
+  attribute linkends { xsd:IDREFS }
+db.xlink.href.attribute =
+  
+  ## Identifies a link target with a URI
+  attribute xlink:href { xsd:anyURI }
+db.xlink.simple.type.attribute =
+  
+  ## Identifies the XLink link type
+  attribute xlink:type {
+    
+    ## An XLink simple link type
+    "simple"
+  }
+db.xlink.role.attribute =
+  
+  ## Identifies the XLink role of the link
+  attribute xlink:role { xsd:anyURI }
+db.xlink.arcrole.attribute =
+  
+  ## Identifies the XLink arcrole of the link
+  attribute xlink:arcrole { xsd:anyURI }
+db.xlink.title.attribute =
+  
+  ## Identifies the XLink title of the link
+  attribute xlink:title { text }
+db.xlink.show.enumeration =
+  
+  ## An application traversing to the ending resource should load it in a new window, frame, pane, or other relevant presentation context.
+  "new"
+  | 
+    ## An application traversing to the ending resource should load the resource in the same window, frame, pane, or other relevant presentation context in which the starting resource was loaded.
+    "replace"
+  | 
+    ## An application traversing to the ending resource should load its presentation in place of the presentation of the starting resource.
+    "embed"
+  | 
+    ## The behavior of an application traversing to the ending resource is unconstrained by XLink. The application should look for other markup present in the link to determine the appropriate behavior.
+    "other"
+  | 
+    ## The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.
+    "none"
+db.xlink.show.attribute =
+  
+  ## Identifies the XLink show behavior of the link
+  attribute xlink:show { db.xlink.show.enumeration }
+db.xlink.actuate.enumeration =
+  
+  ## An application should traverse to the ending resource immediately on loading the starting resource.
+  "onLoad"
+  | 
+    ## An application should traverse from the starting resource to the ending resource only on a post-loading event triggered for the purpose of traversal.
+    "onRequest"
+  | 
+    ## The behavior of an application traversing to the ending resource is unconstrained by this specification. The application should look for other markup present in the link to determine the appropriate behavior.
+    "other"
+  | 
+    ## The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.
+    "none"
+db.xlink.actuate.attribute =
+  
+  ## Identifies the XLink actuate behavior of the link
+  attribute xlink:actuate { db.xlink.actuate.enumeration }
+db.xlink.simple.link.attributes =
+  db.xlink.simple.type.attribute?
+  & db.xlink.href.attribute?
+  & db.xlink.role.attribute?
+  & db.xlink.arcrole.attribute?
+  & db.xlink.title.attribute?
+  & db.xlink.show.attribute?
+  & db.xlink.actuate.attribute?
+db.xlink.attributes =
+  db.xlink.simple.link.attributes
+  | (db.xlink.extended.link.attributes
+     | db.xlink.locator.link.attributes
+     | db.xlink.arc.link.attributes
+     | db.xlink.resource.link.attributes
+     | db.xlink.title.link.attributes)
+db.xml.id.attribute =
+  
+  ## Identifies the unique ID value of the element
+  attribute xml:id { xsd:ID }
+db.version.attribute =
+  
+  ## Specifies the DocBook version of the element and its descendants
+  attribute version { text }
+db.xml.lang.attribute =
+  
+  ## Specifies the natural language of the element and its descendants
+  attribute xml:lang { text }
+db.xml.base.attribute =
+  
+  ## Specifies the base URI of the element and its descendants
+  attribute xml:base { xsd:anyURI }
+db.remap.attribute =
+  
+  ## Provides the name or similar semantic identifier assigned to the content in some previous markup scheme
+  attribute remap { text }
+db.xreflabel.attribute =
+  
+  ## Provides the text that is to be generated for a cross reference to the element
+  attribute xreflabel { text }
+db.xrefstyle.attribute =
+  
+  ## Specifies a keyword or keywords identifying additional style information
+  attribute xrefstyle { text }
+db.revisionflag.enumeration =
+  
+  ## The element has been changed.
+  "changed"
+  | 
+    ## The element is new (has been added to the document).
+    "added"
+  | 
+    ## The element has been deleted.
+    "deleted"
+  | 
+    ## Explicitly turns off revision markup for this element.
+    "off"
+db.revisionflag.attribute =
+  
+  ## Identifies the revision status of the element
+  attribute revisionflag { db.revisionflag.enumeration }
+db.dir.enumeration =
+  
+  ## Left-to-right text
+  "ltr"
+  | 
+    ## Right-to-left text
+    "rtl"
+  | 
+    ## Left-to-right override
+    "lro"
+  | 
+    ## Right-to-left override
+    "rlo"
+db.dir.attribute =
+  
+  ## Identifies the direction of text in an element
+  attribute dir { db.dir.enumeration }
+db.common.base.attributes =
+  db.version.attribute?
+  & db.xml.lang.attribute?
+  & db.xml.base.attribute?
+  & db.remap.attribute?
+  & db.xreflabel.attribute?
+  & db.revisionflag.attribute?
+  & db.dir.attribute?
+  & db.effectivity.attributes
+db.common.attributes =
+  db.xml.id.attribute?
+  & db.common.base.attributes
+  & db.annotations.attribute?
+db.common.idreq.attributes =
+  db.xml.id.attribute
+  & db.common.base.attributes
+  & db.annotations.attribute?
+db.common.linking.attributes =
+  (db.linkend.attribute | db.xlink.attributes)?
+db.common.req.linking.attributes =
+  db.linkend.attribute | db.xlink.attributes
+db.common.data.attributes =
+  
+  ## Specifies the format of the data
+  attribute format { text }?,
+  (
+   ## Indentifies the location of the data by URI
+   attribute fileref { xsd:anyURI }
+   | 
+     ## Identifies the location of the data by external identifier (entity name)
+     attribute entityref { xsd:ENTITY })
+db.verbatim.continuation.enumeration =
+  
+  ## Line numbering continues from the immediately preceding element with the same name.
+  "continues"
+  | 
+    ## Line numbering restarts (begins at 1, usually).
+    "restarts"
+db.verbatim.continuation.attribute =
+  
+  ## Determines whether line numbering continues from the previous element or restarts.
+  attribute continuation { db.verbatim.continuation.enumeration }
+db.verbatim.linenumbering.enumeration =
+  
+  ## Lines are numbered.
+  "numbered"
+  | 
+    ## Lines are not numbered.
+    "unnumbered"
+db.verbatim.linenumbering.attribute =
+  
+  ## Determines whether lines are numbered.
+  attribute linenumbering { db.verbatim.linenumbering.enumeration }
+db.verbatim.startinglinenumber.attribute =
+  
+  ## Specifies the initial line number.
+  attribute startinglinenumber { xsd:integer }
+db.verbatim.language.attribute =
+  
+  ## Identifies the language (i.e. programming language) of the verbatim content.
+  attribute language { text }
+db.verbatim.xml.space.attribute =
+  
+  ## Can be used to indicate explicitly that whitespace in the verbatim environment is preserved. Whitespace must always be preserved in verbatim environments whether this attribute is specified or not.
+  attribute xml:space {
+    
+    ## Whitespace must be preserved.
+    "preserve"
+  }
+db.verbatim.common.attributes =
+  db.verbatim.continuation.attribute?
+  & db.verbatim.linenumbering.attribute?
+  & db.verbatim.startinglinenumber.attribute?
+  & db.verbatim.xml.space.attribute?
+db.verbatim.attributes =
+  db.verbatim.common.attributes & db.verbatim.language.attribute?
+db.label.attribute =
+  
+  ## Specifies an identifying string for presentation purposes
+  attribute label { text }
+db.width.characters.attribute =
+  
+  ## Specifies the width (in characters) of the element
+  attribute width { xsd:nonNegativeInteger }
+db.spacing.enumeration =
+  
+  ## The spacing should be "compact".
+  "compact"
+  | 
+    ## The spacing should be "normal".
+    "normal"
+db.spacing.attribute =
+  
+  ## Specifies (a hint about) the spacing of the content
+  attribute spacing { db.spacing.enumeration }
+db.pgwide.enumeration =
+  
+  ## The element should be rendered in the current text flow (with the flow column width).
+  "0"
+  | 
+    ## The element should be rendered across the full text page.
+    "1"
+db.pgwide.attribute =
+  
+  ## Indicates if the element is rendered across the column or the page
+  attribute pgwide { db.pgwide.enumeration }
+db.language.attribute =
+  
+  ## Identifies the language (i.e. programming language) of the content.
+  attribute language { text }
+db.performance.enumeration =
+  
+  ## The content describes an optional step or steps.
+  "optional"
+  | 
+    ## The content describes a required step or steps.
+    "required"
+db.performance.attribute =
+  
+  ## Specifies if the content is required or optional.
+  attribute performance { db.performance.enumeration }
+db.floatstyle.attribute =
+  
+  ## Specifies style information to be used when rendering the float
+  attribute floatstyle { text }
+db.width.attribute =
+  
+  ## Specifies the width of the element
+  attribute width { text }
+db.depth.attribute =
+  
+  ## Specifies the depth of the element
+  attribute depth { text }
+db.contentwidth.attribute =
+  
+  ## Specifies the width of the content rectangle
+  attribute contentwidth { text }
+db.contentdepth.attribute =
+  
+  ## Specifies the depth of the content rectangle
+  attribute contentdepth { text }
+db.scalefit.enumeration =
+  
+  ## False (do not scale-to-fit; anamorphic scaling may occur)
+  "0"
+  | 
+    ## True (scale-to-fit; anamorphic scaling is forbidden)
+    "1"
+db.scale.attribute =
+  
+  ## Specifies the scaling factor
+  attribute scale { xsd:positiveInteger }
+db.classid.attribute =
+  
+  ## Specifies a classid for a media object player
+  attribute classid { text }
+db.autoplay.attribute =
+  
+  ## Specifies the autoplay setting for a media object player
+  attribute autoplay { text }
+db.halign.enumeration =
+  
+  ## Centered horizontally
+  "center"
+  | 
+    ## Aligned horizontally on the specified character
+    "char"
+  | 
+    ## Fully justified (left and right margins or edges)
+    "justify"
+  | 
+    ## Left aligned
+    "left"
+  | 
+    ## Right aligned
+    "right"
+db.valign.enumeration =
+  
+  ## Aligned on the bottom of the region
+  "bottom"
+  | 
+    ## Centered vertically
+    "middle"
+  | 
+    ## Aligned on the top of the region
+    "top"
+db.biblio.class.enumeration =
+  
+  ## A digital object identifier.
+  "doi"
+  | 
+    ## An international standard book number.
+    "isbn"
+  | 
+    ## An international standard technical report number (ISO 10444).
+    "isrn"
+  | 
+    ## An international standard serial number.
+    "issn"
+  | 
+    ## An international standard text code.
+    "istc"
+  | 
+    ## A Library of Congress reference number.
+    "libraryofcongress"
+  | 
+    ## A publication number (an internal number or possibly organizational standard).
+    "pubsnumber"
+  | 
+    ## A Uniform Resource Identifier
+    "uri"
+db.biblio.class-enum.attribute =
+  
+  ## Identifies the kind of bibliographic identifier
+  attribute class { db.biblio.class.enumeration }?
+db.biblio.class-other.attribute =
+  
+  ## Identifies the nature of the non-standard bibliographic identifier
+  attribute otherclass { xsd:NMTOKEN }
+db.biblio.class-other.attributes =
+  
+  ## Identifies the kind of bibliographic identifier
+  attribute class {
+    
+    ## Indicates that the identifier is some 'other' kind.
+    "other"
+  }
+  & db.biblio.class-other.attribute
+db.biblio.class.attribute =
+  db.biblio.class-enum.attribute | db.biblio.class-other.attributes
+db.ubiq.inlines =
+  (db.inlinemediaobject
+   | db.remark
+   | db.link.inlines
+   | db.alt
+   | db.trademark
+   | # below, effectively the publishing inlines (as of 5.0)
+     db.abbrev
+   | db.acronym
+   | db.date
+   | db._emphasis
+   | db.footnote
+   | db.footnoteref
+   | db._foreignphrase
+   | db._phrase
+   | db._quote
+   | db.subscript
+   | db.superscript
+   | db.wordasword)
+  | db.annotation
+  | (db._firstterm | db._glossterm)
+  | db.indexterm
+  | db.coref
+db._text = (text | db.ubiq.inlines | db._phrase | db.replaceable)*
+db._title = db.title? & db.titleabbrev? & db.subtitle?
+db._title.req = db.title & db.titleabbrev? & db.subtitle?
+db._title.only = db.title? & db.titleabbrev?
+db._title.onlyreq = db.title & db.titleabbrev?
+db._info = (db._title, db.titleforbidden.info?) | db.info?
+db._info.title.req =
+  (db._title.req, db.titleforbidden.info?) | db.titlereq.info
+db._info.title.only =
+  (db._title.only, db.titleforbidden.info?) | db.titleonly.info
+db._info.title.onlyreq =
+  (db._title.onlyreq, db.titleforbidden.info?) | db.titleonlyreq.info
+db._info.title.forbidden = db.titleforbidden.info?
+db.all.inlines =
+  text
+  | db.ubiq.inlines
+  | db.general.inlines
+  | db.domain.inlines
+  | db.extension.inlines
+db.general.inlines =
+  db.publishing.inlines
+  | db.product.inlines
+  | db.bibliography.inlines
+  | db.graphic.inlines
+  | db.indexing.inlines
+  | db.link.inlines
+db.domain.inlines =
+  db.technical.inlines
+  | db.math.inlines
+  | db.markup.inlines
+  | db.gui.inlines
+  | db.keyboard.inlines
+  | db.os.inlines
+  | db.programming.inlines
+  | db.error.inlines
+db.technical.inlines =
+  (db.replaceable | db.package | db.parameter)
+  | db.termdef
+  | db.nonterminal
+  | (db.systemitem | db.option | db.optional | db.property)
+db.product.inlines =
+  db.trademark
+  | (db.productnumber
+     | db.productname
+     | db.database
+     | db.application
+     | db.hardware)
+db.bibliography.inlines =
+  db.citation
+  | db.citerefentry
+  | db.citetitle
+  | db.citebiblioid
+  | db.author
+  | db.person
+  | db.personname
+  | db.org
+  | db.orgname
+  | db.editor
+  | db.jobtitle
+db.publishing.inlines =
+  (db.abbrev
+   | db.acronym
+   | db.date
+   | db.emphasis
+   | db.footnote
+   | db.footnoteref
+   | db.foreignphrase
+   | db.phrase
+   | db.quote
+   | db.subscript
+   | db.superscript
+   | db.wordasword)
+  | db.glossary.inlines
+  | db.coref
+db.graphic.inlines = db.inlinemediaobject
+db.indexing.inlines = notAllowed | db.indexterm
+db.link.inlines =
+  (db.xref | db.link | db.olink | db.anchor) | db.biblioref
+db.extension.inlines = notAllowed
+db.nopara.blocks =
+  (db.list.blocks
+   | db.formal.blocks
+   | db.informal.blocks
+   | db.publishing.blocks
+   | db.graphic.blocks
+   | db.technical.blocks
+   | db.verbatim.blocks
+   | db.bridgehead
+   | db.remark
+   | db.revhistory)
+  | db.indexterm
+  | db.synopsis.blocks
+  | db.admonition.blocks
+db.para.blocks = db.anchor | db.para | db.formalpara | db.simpara
+db.all.blocks =
+  (db.nopara.blocks | db.para.blocks | db.extension.blocks)
+  | db.annotation
+db.formal.blocks = (db.example | db.figure | db.table) | db.equation
+db.informal.blocks =
+  (db.informalexample | db.informalfigure | db.informaltable)
+  | db.informalequation
+db.publishing.blocks =
+  db.sidebar | db.blockquote | db.address | db.epigraph
+db.graphic.blocks = db.mediaobject | db.screenshot
+db.technical.blocks =
+  db.procedure
+  | db.task
+  | (db.productionset | db.constraintdef)
+  | db.msgset
+db.list.blocks =
+  (db.itemizedlist
+   | db.orderedlist
+   | db.procedure
+   | db.simplelist
+   | db.variablelist
+   | db.segmentedlist)
+  | db.glosslist
+  | db.bibliolist
+  | db.calloutlist
+  | db.qandaset
+db.verbatim.blocks =
+  (db.screen | db.literallayout)
+  | (db.programlistingco | db.screenco)
+  | (db.programlisting | db.synopsis)
+db.extension.blocks = notAllowed
+db.info.extension = db._any
+db.info.elements =
+  (db.abstract
+   | db.address
+   | db.artpagenums
+   | db.author
+   | db.authorgroup
+   | db.authorinitials
+   | db.bibliocoverage
+   | db.biblioid
+   | db.bibliosource
+   | db.collab
+   | db.confgroup
+   | db.contractsponsor
+   | db.contractnum
+   | db.copyright
+   | db.cover
+   | db.date
+   | db.edition
+   | db.editor
+   | db.issuenum
+   | db.keywordset
+   | db.legalnotice
+   | db.mediaobject
+   | db.org
+   | db.orgname
+   | db.othercredit
+   | db.pagenums
+   | db.printhistory
+   | db.pubdate
+   | db.publisher
+   | db.publishername
+   | db.releaseinfo
+   | db.revhistory
+   | db.seriesvolnums
+   | db.subjectset
+   | db.volumenum
+   | db.info.extension)
+  | db.annotation
+  | db.extendedlink
+  | (db.bibliomisc | db.bibliomset | db.bibliorelation | db.biblioset)
+  | db.itermset
+  | (db.productname | db.productnumber)
+db.bibliographic.elements =
+  db.info.elements
+  | db.publishing.inlines
+  | db.citerefentry
+  | db.citetitle
+  | db.citebiblioid
+  | db.person
+  | db.personblurb
+  | db.personname
+  | db.subtitle
+  | db.title
+  | db.titleabbrev
+div {
+  db.title.role.attribute = attribute role { text }
+  db.title.attlist =
+    db.title.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.title =
+    
+    ## The text of the title of a section of a document or of a formal block-level element
+    element title { db.title.attlist, db.all.inlines* }
+}
+div {
+  db.titleabbrev.role.attribute = attribute role { text }
+  db.titleabbrev.attlist =
+    db.titleabbrev.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.titleabbrev =
+    
+    ## The abbreviation of a title
+    element titleabbrev { db.titleabbrev.attlist, db.all.inlines* }
+}
+div {
+  db.subtitle.role.attribute = attribute role { text }
+  db.subtitle.attlist =
+    db.subtitle.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.subtitle =
+    
+    ## The subtitle of a document
+    element subtitle { db.subtitle.attlist, db.all.inlines* }
+}
+div {
+  db.info.role.attribute = attribute role { text }
+  db.info.attlist = db.info.role.attribute? & db.common.attributes
+  db.info =
+    
+    ## A wrapper for information about a component or other block
+    element info { db.info.attlist, (db._title & db.info.elements*) }
+}
+div {
+  db.titlereq.info.role.attribute = attribute role { text }
+  db.titlereq.info.attlist =
+    db.titlereq.info.role.attribute? & db.common.attributes
+  db.titlereq.info =
+    
+    ## A wrapper for information about a component or other block with a required title
+    element info {
+      db.titlereq.info.attlist, (db._title.req & db.info.elements*)
+    }
+}
+div {
+  db.titleonly.info.role.attribute = attribute role { text }
+  db.titleonly.info.attlist =
+    db.titleonly.info.role.attribute? & db.common.attributes
+  db.titleonly.info =
+    
+    ## A wrapper for information about a component or other block with only a title
+    element info {
+      db.titleonly.info.attlist, (db._title.only & db.info.elements*)
+    }
+}
+div {
+  db.titleonlyreq.info.role.attribute = attribute role { text }
+  db.titleonlyreq.info.attlist =
+    db.titleonlyreq.info.role.attribute? & db.common.attributes
+  db.titleonlyreq.info =
+    
+    ## A wrapper for information about a component or other block with only a required title
+    element info {
+      db.titleonlyreq.info.attlist,
+      (db._title.onlyreq & db.info.elements*)
+    }
+}
+div {
+  db.titleforbidden.info.role.attribute = attribute role { text }
+  db.titleforbidden.info.attlist =
+    db.titleforbidden.info.role.attribute? & db.common.attributes
+  db.titleforbidden.info =
+    
+    ## A wrapper for information about a component or other block without a title
+    element info { db.titleforbidden.info.attlist, db.info.elements* }
+}
+div {
+  db.subjectset.role.attribute = attribute role { text }
+  db.subjectset.scheme.attribute =
+    
+    ## Identifies the controlled vocabulary used by this set's terms
+    attribute scheme { xsd:NMTOKEN }
+  db.subjectset.attlist =
+    db.subjectset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.subjectset.scheme.attribute?
+  db.subjectset =
+    
+    ## A set of terms describing the subject matter of a document
+    element subjectset { db.subjectset.attlist, db.subject+ }
+}
+div {
+  db.subject.role.attribute = attribute role { text }
+  db.subject.weight.attribute =
+    
+    ## Specifies a ranking for this subject relative to other subjects in the same set
+    attribute weight { text }
+  db.subject.attlist =
+    db.subject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.subject.weight.attribute?
+  db.subject =
+    
+    ## One of a group of terms describing the subject matter of a document
+    element subject { db.subject.attlist, db.subjectterm+ }
+}
+div {
+  db.subjectterm.role.attribute = attribute role { text }
+  db.subjectterm.attlist =
+    db.subjectterm.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.subjectterm =
+    
+    ## A term in a group of terms describing the subject matter of a document
+    element subjectterm { db.subjectterm.attlist, text }
+}
+div {
+  db.keywordset.role.attribute = attribute role { text }
+  db.keywordset.attlist =
+    db.keywordset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.keywordset =
+    
+    ## A set of keywords describing the content of a document
+    element keywordset { db.keywordset.attlist, db.keyword+ }
+}
+div {
+  db.keyword.role.attribute = attribute role { text }
+  db.keyword.attlist =
+    db.keyword.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.keyword =
+    
+    ## One of a set of keywords describing the content of a document
+    element keyword { db.keyword.attlist, text }
+}
+db.table.choice = notAllowed | db.cals.table | db.html.table
+db.informaltable.choice =
+  notAllowed | db.cals.informaltable | db.html.informaltable
+db.table = db.table.choice
+db.informaltable = db.informaltable.choice
+div {
+  db.procedure.role.attribute = attribute role { text }
+  db.procedure.attlist =
+    db.procedure.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.procedure.info = db._info.title.only
+  db.procedure =
+    
+    ## A list of operations to be performed in a well-defined sequence
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:procedure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element procedure {
+      db.procedure.attlist, db.procedure.info, db.all.blocks*, db.step+
+    }
+}
+div {
+  db.step.role.attribute = attribute role { text }
+  db.step.attlist =
+    db.step.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.performance.attribute?
+  db.step.info = db._info.title.only
+  # This content model is blocks*, step|stepalternatives, blocks* but
+  # expressed this way it avoids UPA issues in XSD and DTD versions
+  db.step =
+    
+    ## A unit of action in a procedure
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:step"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element step {
+      db.step.attlist,
+      db.step.info,
+      ((db.all.blocks+,
+        ((db.substeps | db.stepalternatives), db.all.blocks*)?)
+       | ((db.substeps | db.stepalternatives), db.all.blocks*))
+    }
+}
+div {
+  db.stepalternatives.role.attribute = attribute role { text }
+  db.stepalternatives.attlist =
+    db.stepalternatives.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.performance.attribute?
+  db.stepalternatives.info = db._info.title.forbidden
+  db.stepalternatives =
+    
+    ## Alternative steps in a procedure
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:stepalternatives"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element stepalternatives {
+      db.stepalternatives.attlist, db.stepalternatives.info, db.step+
+    }
+}
+div {
+  db.substeps.role.attribute = attribute role { text }
+  db.substeps.attlist =
+    db.substeps.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.performance.attribute?
+  db.substeps =
+    
+    ## A wrapper for steps that occur within steps in a procedure
+    element substeps { db.substeps.attlist, db.step+ }
+}
+div {
+  db.sidebar.floatstyle.attribute = db.floatstyle.attribute
+  db.sidebar.role.attribute = attribute role { text }
+  db.sidebar.attlist =
+    db.sidebar.role.attribute?
+    & db.sidebar.floatstyle.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.sidebar.info = db._info
+  db.sidebar =
+    
+    ## A portion of a document that is isolated from the main narrative flow
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:sidebar"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:sidebar)"
+            "sidebar must not occur among the children or descendants of sidebar"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:sidebar"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element sidebar {
+      db.sidebar.attlist, db.sidebar.info, db.all.blocks+
+    }
+}
+div {
+  db.abstract.role.attribute = attribute role { text }
+  db.abstract.attlist =
+    db.abstract.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.abstract.info = db._info.title.only
+  db.abstract =
+    
+    ## A summary
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:abstract"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element abstract {
+      db.abstract.attlist, db.abstract.info, db.para.blocks+
+    }
+}
+div {
+  db.personblurb.role.attribute = attribute role { text }
+  db.personblurb.attlist =
+    db.personblurb.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.personblurb.info = db._info.title.only
+  db.personblurb =
+    
+    ## A short description or note about a person
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:personblurb"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element personblurb {
+      db.personblurb.attlist, db.personblurb.info, db.para.blocks+
+    }
+}
+div {
+  db.blockquote.role.attribute = attribute role { text }
+  db.blockquote.attlist =
+    db.blockquote.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.blockquote.info = db._info.title.only
+  db.blockquote =
+    
+    ## A quotation set off from the main text
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:blockquote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element blockquote {
+      db.blockquote.attlist,
+      db.blockquote.info,
+      db.attribution?,
+      db.all.blocks+
+    }
+}
+div {
+  db.attribution.role.attribute = attribute role { text }
+  db.attribution.attlist =
+    db.attribution.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.attribution =
+    
+    ## The source of a block quote or epigraph
+    element attribution {
+      db.attribution.attlist,
+      (db._text
+       | db.person
+       | db.personname
+       | db.citetitle
+       | db.citation)*
+    }
+}
+div {
+  db.bridgehead.renderas.enumeration =
+    
+    ## Render as a first-level section
+    "sect1"
+    | 
+      ## Render as a second-level section
+      "sect2"
+    | 
+      ## Render as a third-level section
+      "sect3"
+    | 
+      ## Render as a fourth-level section
+      "sect4"
+    | 
+      ## Render as a fifth-level section
+      "sect5"
+  db.bridgehead.renderas-enum.attribute =
+    
+    ## Indicates how the bridge head should be rendered
+    attribute renderas { db.bridgehead.renderas.enumeration }?
+  db.bridgehead.renderas-other.attribute =
+    
+    ## Identifies the nature of the non-standard rendering
+    attribute otherrenderas { xsd:NMTOKEN }
+  db.bridgehead.renderas-other.attributes =
+    
+    ## Indicates how the bridge head should be rendered
+    attribute renderas {
+      
+      ## Identifies a non-standard rendering
+      "other"
+    }
+    & db.bridgehead.renderas-other.attribute
+  db.bridgehead.renderas.attribute =
+    db.bridgehead.renderas-enum.attribute
+    | db.bridgehead.renderas-other.attributes
+  db.bridgehead.role.attribute = attribute role { text }
+  db.bridgehead.attlist =
+    db.bridgehead.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.bridgehead.renderas.attribute?
+  db.bridgehead =
+    
+    ## A free-floating heading
+    element bridgehead { db.bridgehead.attlist, db.all.inlines* }
+}
+div {
+  db.remark.role.attribute = attribute role { text }
+  db.remark.attlist =
+    db.remark.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.remark =
+    
+    ## A remark (or comment) intended for presentation in a draft manuscript
+    element remark { db.remark.attlist, db.all.inlines* }
+}
+div {
+  db.epigraph.role.attribute = attribute role { text }
+  db.epigraph.attlist =
+    db.epigraph.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.epigraph.info = db._info.title.forbidden
+  db.epigraph =
+    
+    ## A short inscription at the beginning of a document or component
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:epigraph"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element epigraph {
+      db.epigraph.attlist,
+      db.epigraph.info,
+      db.attribution?,
+      (db.para.blocks | db.literallayout)+
+    }
+}
+div {
+  db.footnote.role.attribute = attribute role { text }
+  db.footnote.label.attribute =
+    
+    ## Identifies the desired footnote mark
+    attribute label { xsd:NMTOKEN }
+  db.footnote.attlist =
+    db.footnote.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.footnote.label.attribute?
+  db.footnote =
+    
+    ## A footnote
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:footnote)"
+            "footnote must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:sidebar)"
+            "sidebar must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:task)"
+            "task must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:epigraph)"
+            "epigraph must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnote"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of footnote"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element footnote { db.footnote.attlist, db.all.blocks+ }
+}
+div {
+  db.formalpara.role.attribute = attribute role { text }
+  db.formalpara.attlist =
+    db.formalpara.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.formalpara.info = db._info.title.onlyreq
+  db.formalpara =
+    
+    ## A paragraph with a title
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:formalpara"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element formalpara {
+      db.formalpara.attlist,
+      db.formalpara.info,
+      db.indexing.inlines*,
+      db.para
+    }
+}
+div {
+  db.para.role.attribute = attribute role { text }
+  db.para.attlist =
+    db.para.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.para.info = db._info.title.forbidden
+  db.para =
+    
+    ## A paragraph
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:para"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element para {
+      db.para.attlist,
+      db.para.info,
+      (db.all.inlines | db.nopara.blocks)*
+    }
+}
+div {
+  db.simpara.role.attribute = attribute role { text }
+  db.simpara.attlist =
+    db.simpara.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.simpara.info = db._info.title.forbidden
+  db.simpara =
+    
+    ## A paragraph that contains only text and inline markup, no block elements
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:simpara"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element simpara {
+      db.simpara.attlist, db.simpara.info, db.all.inlines*
+    }
+}
+div {
+  db.itemizedlist.role.attribute = attribute role { text }
+  db.itemizedlist.mark.attribute =
+    
+    ## Identifies the type of mark to be used on items in this list
+    attribute mark { xsd:NMTOKEN }
+  db.itemizedlist.attlist =
+    db.itemizedlist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.spacing.attribute?
+    & db.itemizedlist.mark.attribute?
+  db.itemizedlist.info = db._info.title.only
+  db.itemizedlist =
+    
+    ## A list in which each entry is marked with a bullet or other dingbat
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:itemizedlist"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element itemizedlist {
+      db.itemizedlist.attlist,
+      db.itemizedlist.info,
+      db.all.blocks*,
+      db.listitem+
+    }
+}
+div {
+  db.orderedlist.role.attribute = attribute role { text }
+  db.orderedlist.continuation.enumeration =
+    
+    ## Specifies that numbering should begin where the preceding list left off
+    "continues"
+    | 
+      ## Specifies that numbering should begin again at 1
+      "restarts"
+  db.orderedlist.continuation.attribute =
+    
+    ## Indicates how list numbering should begin relative to the immediately preceding list
+    attribute continuation { db.orderedlist.continuation.enumeration }
+  db.orderedlist.startingnumber.attribute =
+    
+    ## Specifies the initial line number.
+    attribute startingnumber { xsd:integer }
+  db.orderedlist.inheritnum.enumeration =
+    
+    ## Specifies that numbering should ignore list nesting
+    "ignore"
+    | 
+      ## Specifies that numbering should inherit from outer-level lists
+      "inherit"
+  db.orderedlist.inheritnum.attribute =
+    
+    ## Indicates whether or not item numbering should be influenced by list nesting
+    attribute inheritnum { db.orderedlist.inheritnum.enumeration }
+  db.orderedlist.numeration.enumeration =
+    
+    ## Specifies Arabic numeration (1, 2, 3, …)
+    "arabic"
+    | 
+      ## Specifies upper-case alphabetic numeration (A, B, C, …)
+      "upperalpha"
+    | 
+      ## Specifies lower-case alphabetic numeration (a, b, c, …)
+      "loweralpha"
+    | 
+      ## Specifies upper-case Roman numeration (I, II, III, …)
+      "upperroman"
+    | 
+      ## Specifies lower-case Roman numeration (i, ii, iii …)
+      "lowerroman"
+  db.orderedlist.numeration.attribute =
+    
+    ## Indicates the desired numeration
+    attribute numeration { db.orderedlist.numeration.enumeration }
+  db.orderedlist.attlist =
+    db.orderedlist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.spacing.attribute?
+    & (db.orderedlist.continuation.attribute
+       | db.orderedlist.startingnumber.attribute)?
+    & db.orderedlist.inheritnum.attribute?
+    & db.orderedlist.numeration.attribute?
+  db.orderedlist.info = db._info.title.only
+  db.orderedlist =
+    
+    ## A list in which each entry is marked with a sequentially incremented label
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:orderedlist"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element orderedlist {
+      db.orderedlist.attlist,
+      db.orderedlist.info,
+      db.all.blocks*,
+      db.listitem+
+    }
+}
+div {
+  db.listitem.role.attribute = attribute role { text }
+  db.listitem.override.attribute =
+    
+    ## Specifies the keyword for the type of mark that should be used on this
+    ##  item, instead of the mark that would be used by default
+    attribute override { xsd:NMTOKEN }
+  db.listitem.attlist =
+    db.listitem.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.listitem.override.attribute?
+  db.listitem =
+    
+    ## A wrapper for the elements of a list item
+    element listitem { db.listitem.attlist, db.all.blocks+ }
+}
+div {
+  db.segmentedlist.role.attribute = attribute role { text }
+  db.segmentedlist.attlist =
+    db.segmentedlist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.segmentedlist.info = db._info.title.only
+  db.segmentedlist =
+    
+    ## A segmented list, a list of sets of elements
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:segmentedlist"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element segmentedlist {
+      db.segmentedlist.attlist,
+      db.segmentedlist.info,
+      db.segtitle+,
+      db.seglistitem+
+    }
+}
+div {
+  db.segtitle.role.attribute = attribute role { text }
+  db.segtitle.attlist =
+    db.segtitle.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.segtitle =
+    
+    ## The title of an element of a list item in a segmented list
+    element segtitle { db.segtitle.attlist, db.all.inlines* }
+}
+div {
+  db.seglistitem.role.attribute = attribute role { text }
+  db.seglistitem.attlist =
+    db.seglistitem.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.seglistitem =
+    
+    ## A list item in a segmented list
+    [
+      s:pattern [
+        name = "Cardinality of segments and titles"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:seglistitem"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "count(db:seg) = count(../db:segtitle)"
+            "The number of seg elements must be the same as the number of segtitle elements in the parent segmentedlist"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element seglistitem { db.seglistitem.attlist, db.seg+ }
+}
+div {
+  db.seg.role.attribute = attribute role { text }
+  db.seg.attlist =
+    db.seg.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.seg =
+    
+    ## An element of a list item in a segmented list
+    element seg { db.seg.attlist, db.all.inlines* }
+}
+div {
+  db.simplelist.role.attribute = attribute role { text }
+  db.simplelist.type.enumeration =
+    
+    ## A tabular presentation in row-major order.
+    "horiz"
+    | 
+      ## A tabular presentation in column-major order.
+      "vert"
+    | 
+      ## An inline presentation, usually a comma-delimited list.
+      "inline"
+  db.simplelist.type.attribute =
+    
+    ## Specifies the type of list presentation.
+    [ a:defaultValue = "vert" ]
+    attribute type { db.simplelist.type.enumeration }
+  db.simplelist.columns.attribute =
+    
+    ## Specifies the number of columns for horizontal or vertical presentation
+    attribute columns { xsd:integer }
+  db.simplelist.attlist =
+    db.simplelist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.simplelist.type.attribute?
+    & db.simplelist.columns.attribute?
+  db.simplelist =
+    
+    ## An undecorated list of single words or short phrases
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:simplelist"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element simplelist { db.simplelist.attlist, db.member+ }
+}
+div {
+  db.member.role.attribute = attribute role { text }
+  db.member.attlist =
+    db.member.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.member =
+    
+    ## An element of a simple list
+    element member { db.member.attlist, db.all.inlines* }
+}
+div {
+  db.variablelist.role.attribute = attribute role { text }
+  db.variablelist.termlength.attribute =
+    
+    ## Indicates a length beyond which the presentation system may consider a term too long and select an alternate presentation for that term, item, or list
+    attribute termlength { text }
+  db.variablelist.attlist =
+    db.variablelist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.spacing.attribute?
+    & db.variablelist.termlength.attribute?
+  db.variablelist.info = db._info.title.only
+  db.variablelist =
+    
+    ## A list in which each entry is composed of a set of one or more terms and an associated description
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:variablelist"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element variablelist {
+      db.variablelist.attlist,
+      db.variablelist.info,
+      db.all.blocks*,
+      db.varlistentry+
+    }
+}
+div {
+  db.varlistentry.role.attribute = attribute role { text }
+  db.varlistentry.attlist =
+    db.varlistentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.varlistentry =
+    
+    ## A wrapper for a set of terms and the associated description in a variable list
+    element varlistentry {
+      db.varlistentry.attlist, db.term+, db.listitem
+    }
+}
+div {
+  db.term.role.attribute = attribute role { text }
+  db.term.attlist =
+    db.term.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.term =
+    
+    ## The word or phrase being defined or described in a variable list
+    element term { db.term.attlist, db.all.inlines* }
+}
+div {
+  db.example.role.attribute = attribute role { text }
+  db.example.label.attribute = db.label.attribute
+  db.example.width.attribute = db.width.characters.attribute
+  db.example.pgwide.attribute = db.pgwide.attribute
+  db.example.floatstyle.attribute = db.floatstyle.attribute
+  db.example.attlist =
+    db.example.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.example.label.attribute?
+    & db.example.floatstyle.attribute?
+    & (db.example.width.attribute | db.example.pgwide.attribute)?
+  db.example.info = db._info.title.onlyreq
+  db.example =
+    
+    ## A formal example, with a title
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of example"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:example"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element example {
+      db.example.attlist, db.example.info, db.all.blocks+, db.caption?
+    }
+}
+div {
+  db.informalexample.role.attribute = attribute role { text }
+  db.informalexample.width.attribute = db.width.characters.attribute
+  db.informalexample.pgwide.attribute = db.pgwide.attribute
+  db.informalexample.floatstyle.attribute = db.floatstyle.attribute
+  db.informalexample.attlist =
+    db.informalexample.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.informalexample.floatstyle.attribute?
+    & (db.informalexample.width.attribute
+       | db.informalexample.pgwide.attribute)?
+  db.informalexample.info = db._info.title.forbidden
+  db.informalexample =
+    
+    ## A displayed example without a title
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:informalexample"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element informalexample {
+      db.informalexample.attlist,
+      db.informalexample.info,
+      db.all.blocks+,
+      db.caption?
+    }
+}
+db.verbatim.inlines = (db.all.inlines | db.lineannotation) | db.co
+db.verbatim.contentmodel =
+  db._info.title.forbidden, (db.textobject | db.verbatim.inlines*)
+div {
+  db.literallayout.role.attribute = attribute role { text }
+  db.literallayout.class.enumeration =
+    
+    ## The literal layout should be formatted with a monospaced font
+    "monospaced"
+    | 
+      ## The literal layout should be formatted with the current font
+      "normal"
+  db.literallayout.class.attribute =
+    
+    ## Specifies the class of literal layout
+    attribute class { db.literallayout.class.enumeration }
+  db.literallayout.attlist =
+    db.literallayout.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+    & db.literallayout.class.attribute?
+  db.literallayout =
+    
+    ## A block of text in which line breaks and white space are to be reproduced faithfully
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:literallayout"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element literallayout {
+      db.literallayout.attlist, db.verbatim.contentmodel
+    }
+}
+div {
+  db.screen.role.attribute = attribute role { text }
+  db.screen.width.attribute = db.width.characters.attribute
+  db.screen.attlist =
+    db.screen.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+    & db.screen.width.attribute?
+  db.screen =
+    
+    ## Text that a user sees or might see on a computer screen
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:screen"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element screen { db.screen.attlist, db.verbatim.contentmodel }
+}
+div {
+  db.screenshot.role.attribute = attribute role { text }
+  db.screenshot.attlist =
+    db.screenshot.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.screenshot.info = db._info
+  db.screenshot =
+    
+    ## A representation of what the user sees or might see on a computer screen
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:screenshot"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element screenshot {
+      db.screenshot.attlist, db.screenshot.info, db.mediaobject
+    }
+}
+div {
+  db.figure.role.attribute = attribute role { text }
+  db.figure.label.attribute = db.label.attribute
+  db.figure.pgwide.attribute = db.pgwide.attribute
+  db.figure.floatstyle.attribute = db.floatstyle.attribute
+  db.figure.attlist =
+    db.figure.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.figure.label.attribute?
+    & db.figure.pgwide.attribute?
+    & db.figure.floatstyle.attribute?
+  db.figure.info = db._info.title.onlyreq
+  db.figure =
+    
+    ## A formal figure, generally an illustration, with a title
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of figure"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:figure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element figure {
+      db.figure.attlist, db.figure.info, db.all.blocks+, db.caption?
+    }
+}
+div {
+  db.informalfigure.role.attribute = attribute role { text }
+  db.informalfigure.label.attribute = db.label.attribute
+  db.informalfigure.pgwide.attribute = db.pgwide.attribute
+  db.informalfigure.floatstyle.attribute = db.floatstyle.attribute
+  db.informalfigure.attlist =
+    db.informalfigure.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.informalfigure.label.attribute?
+    & db.informalfigure.pgwide.attribute?
+    & db.informalfigure.floatstyle.attribute?
+  db.informalfigure.info = db._info.title.forbidden
+  db.informalfigure =
+    
+    ## A untitled figure
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:informalfigure"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element informalfigure {
+      db.informalfigure.attlist,
+      db.informalfigure.info,
+      db.all.blocks+,
+      db.caption?
+    }
+}
+db.mediaobject.content =
+  (db.videoobject | db.audioobject | db.imageobject | db.textobject)
+  | db.imageobjectco
+div {
+  db.mediaobject.role.attribute = attribute role { text }
+  db.mediaobject.attlist =
+    db.mediaobject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.mediaobject.info = db._info.title.forbidden
+  db.mediaobject =
+    
+    ## A displayed media object (video, audio, image, etc.)
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:mediaobject"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element mediaobject {
+      db.mediaobject.attlist,
+      db.mediaobject.info,
+      db.alt?,
+      db.mediaobject.content+,
+      db.caption?
+    }
+}
+div {
+  db.inlinemediaobject.role.attribute = attribute role { text }
+  db.inlinemediaobject.attlist =
+    db.inlinemediaobject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.inlinemediaobject.info = db._info.title.forbidden
+  db.inlinemediaobject =
+    
+    ## An inline media object (video, audio, image, and so on)
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:inlinemediaobject"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element inlinemediaobject {
+      db.inlinemediaobject.attlist,
+      db.inlinemediaobject.info,
+      db.alt?,
+      db.mediaobject.content+
+    }
+}
+div {
+  db.videoobject.role.attribute = attribute role { text }
+  db.videoobject.attlist =
+    db.videoobject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.videoobject.info = db._info.title.forbidden
+  db.videoobject =
+    
+    ## A wrapper for video data and its associated meta-information
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:videoobject"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element videoobject {
+      db.videoobject.attlist,
+      db.videoobject.info,
+      db.videodata,
+      db.multimediaparam*
+    }
+}
+div {
+  db.audioobject.role.attribute = attribute role { text }
+  db.audioobject.attlist =
+    db.audioobject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.audioobject.info = db._info.title.forbidden
+  db.audioobject =
+    
+    ## A wrapper for audio data and its associated meta-information
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:audioobject"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element audioobject {
+      db.audioobject.attlist,
+      db.audioobject.info,
+      db.audiodata,
+      db.multimediaparam*
+    }
+}
+db.imageobject.content =
+  db.imagedata | db.imagedata.mathml | db.imagedata.svg
+div {
+  db.imageobject.role.attribute = attribute role { text }
+  db.imageobject.attlist =
+    db.imageobject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.imageobject.info = db._info.title.forbidden
+  db.imageobject =
+    
+    ## A wrapper for image data and its associated meta-information
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:imageobject"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element imageobject {
+      db.imageobject.attlist,
+      db.imageobject.info,
+      db.imageobject.content
+    }
+}
+div {
+  db.textobject.role.attribute = attribute role { text }
+  db.textobject.attlist =
+    db.textobject.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.textobject.info = db._info.title.forbidden
+  db.textobject =
+    
+    ## A wrapper for a text description of an object and its associated meta-information
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:textobject"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element textobject {
+      db.textobject.attlist,
+      db.textobject.info,
+      (db.phrase | db.textdata | db.all.blocks+)
+    }
+}
+div {
+  db.videodata.role.attribute = attribute role { text }
+  db.videodata.align.enumeration = db.halign.enumeration
+  db.videodata.align.attribute =
+    
+    ## Specifies the (horizontal) alignment of the video data
+    attribute align { db.videodata.align.enumeration }
+  db.videodata.autoplay.attribute = db.autoplay.attribute
+  db.videodata.classid.attribute = db.classid.attribute
+  db.videodata.valign.enumeration = db.valign.enumeration
+  db.videodata.valign.attribute =
+    
+    ## Specifies the vertical alignment of the video data
+    attribute valign { db.videodata.valign.enumeration }
+  db.videodata.width.attribute = db.width.attribute
+  db.videodata.depth.attribute = db.depth.attribute
+  db.videodata.contentwidth.attribute = db.contentwidth.attribute
+  db.videodata.contentdepth.attribute = db.contentdepth.attribute
+  db.videodata.scalefit.enumeration = db.scalefit.enumeration
+  db.videodata.scalefit.attribute =
+    
+    ## Determines if anamorphic scaling is forbidden
+    attribute scalefit { db.videodata.scalefit.enumeration }
+  db.videodata.scale.attribute = db.scale.attribute
+  db.videodata.attlist =
+    db.videodata.role.attribute?
+    & db.common.attributes
+    & db.common.data.attributes
+    & db.videodata.align.attribute?
+    & db.videodata.valign.attribute?
+    & db.videodata.width.attribute?
+    & db.videodata.contentwidth.attribute?
+    & db.videodata.scalefit.attribute?
+    & db.videodata.scale.attribute?
+    & db.videodata.depth.attribute?
+    & db.videodata.contentdepth.attribute?
+    & db.videodata.autoplay.attribute?
+    & db.videodata.classid.attribute?
+  db.videodata.info = db._info.title.forbidden
+  db.videodata =
+    
+    ## Pointer to external video data
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:videodata"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element videodata { db.videodata.attlist, db.videodata.info }
+}
+div {
+  db.audiodata.role.attribute = attribute role { text }
+  db.audiodata.align.enumeration = db.halign.enumeration
+  db.audiodata.align.attribute =
+    
+    ## Specifies the (horizontal) alignment of the video data
+    attribute align { db.audiodata.align.enumeration }
+  db.audiodata.autoplay.attribute = db.autoplay.attribute
+  db.audiodata.classid.attribute = db.classid.attribute
+  db.audiodata.contentwidth.attribute = db.contentwidth.attribute
+  db.audiodata.contentdepth.attribute = db.contentdepth.attribute
+  db.audiodata.depth.attribute = db.depth.attribute
+  db.audiodata.scale.attribute = db.scale.attribute
+  db.audiodata.scalefit.enumeration = db.scalefit.enumeration
+  db.audiodata.scalefit.attribute =
+    
+    ## Determines if anamorphic scaling is forbidden
+    attribute scalefit { db.audiodata.scalefit.enumeration }
+  db.audiodata.valign.enumeration = db.valign.enumeration
+  db.audiodata.valign.attribute =
+    
+    ## Specifies the vertical alignment of the video data
+    attribute valign { db.audiodata.valign.enumeration }
+  db.audiodata.width.attribute = db.width.attribute
+  db.audiodata.attlist =
+    db.audiodata.role.attribute?
+    & db.common.attributes
+    & db.common.data.attributes
+    & db.audiodata.align.attribute?
+    & db.audiodata.autoplay.attribute?
+    & db.audiodata.classid.attribute?
+    & db.audiodata.contentdepth.attribute?
+    & db.audiodata.contentwidth.attribute?
+    & db.audiodata.depth.attribute?
+    & db.audiodata.scale.attribute?
+    & db.audiodata.scalefit.attribute?
+    & db.audiodata.valign.attribute?
+    & db.audiodata.width.attribute?
+  db.audiodata.info = db._info.title.forbidden
+  db.audiodata =
+    
+    ## Pointer to external audio data
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:audiodata"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element audiodata { db.audiodata.attlist, db.audiodata.info }
+}
+div {
+  db.imagedata.role.attribute = attribute role { text }
+  db.imagedata.align.enumeration = db.halign.enumeration
+  db.imagedata.align.attribute =
+    
+    ## Specifies the (horizontal) alignment of the image data
+    attribute align { db.imagedata.align.enumeration }
+  db.imagedata.valign.enumeration = db.valign.enumeration
+  db.imagedata.valign.attribute =
+    
+    ## Specifies the vertical alignment of the image data
+    attribute valign { db.imagedata.valign.enumeration }
+  db.imagedata.width.attribute = db.width.attribute
+  db.imagedata.depth.attribute = db.depth.attribute
+  db.imagedata.contentwidth.attribute = db.contentwidth.attribute
+  db.imagedata.contentdepth.attribute = db.contentdepth.attribute
+  db.imagedata.scalefit.enumeration = db.scalefit.enumeration
+  db.imagedata.scalefit.attribute =
+    
+    ## Determines if anamorphic scaling is forbidden
+    attribute scalefit { db.imagedata.scalefit.enumeration }
+  db.imagedata.scale.attribute = db.scale.attribute
+  db.imagedata.attlist =
+    db.imagedata.role.attribute?
+    & db.common.attributes
+    & db.common.data.attributes
+    & db.imagedata.align.attribute?
+    & db.imagedata.valign.attribute?
+    & db.imagedata.width.attribute?
+    & db.imagedata.contentwidth.attribute?
+    & db.imagedata.scalefit.attribute?
+    & db.imagedata.scale.attribute?
+    & db.imagedata.depth.attribute?
+    & db.imagedata.contentdepth.attribute?
+  db.imagedata.info = db._info.title.forbidden
+  db.imagedata =
+    
+    ## Pointer to external image data
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:imagedata"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element imagedata { db.imagedata.attlist, db.imagedata.info }
+}
+div {
+  db.textdata.role.attribute = attribute role { text }
+  db.textdata.encoding.attribute =
+    
+    ## Identifies the encoding of the text in the external file
+    attribute encoding { text }
+  db.textdata.attlist =
+    db.textdata.role.attribute?
+    & db.common.attributes
+    & db.common.data.attributes
+    & db.textdata.encoding.attribute?
+  db.textdata.info = db._info.title.forbidden
+  db.textdata =
+    
+    ## Pointer to external text data
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:textdata"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element textdata { db.textdata.attlist, db.textdata.info }
+}
+div {
+  db.multimediaparam.role.attribute = attribute role { text }
+  db.multimediaparam.name.attribute =
+    
+    ## Specifies the name of the parameter
+    attribute name { text }
+  db.multimediaparam.value.attribute =
+    
+    ## Specifies the value of the parameter
+    attribute value { text }
+  db.multimediaparam.valuetype.attribute =
+    
+    ## Specifies the type of the value of the parameter
+    attribute valuetype { text }
+  db.multimediaparam.attlist =
+    db.multimediaparam.role.attribute?
+    & db.common.attributes
+    & db.multimediaparam.name.attribute
+    & db.multimediaparam.value.attribute
+    & db.multimediaparam.valuetype.attribute?
+  db.multimediaparam =
+    
+    ## Application specific parameters for a media player
+    element multimediaparam { db.multimediaparam.attlist, empty }
+}
+div {
+  db.caption.role.attribute = attribute role { text }
+  db.caption.attlist =
+    db.caption.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.caption.info = db._info.title.forbidden
+  db.caption =
+    
+    ## A caption
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:sidebar)"
+            "sidebar must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:task)"
+            "task must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element caption {
+      db.caption.attlist, db.caption.info, db.all.blocks+
+    }
+}
+div {
+  db.address.role.attribute = attribute role { text }
+  db.address.attlist =
+    db.address.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+  db.address =
+    
+    ## A real-world address, generally a postal address
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:address"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element address {
+      db.address.attlist,
+      (db._text
+       | db.personname
+       | db.orgname
+       | db.pob
+       | db.street
+       | db.city
+       | db.state
+       | db.postcode
+       | db.country
+       | db.phone
+       | db.fax
+       | db.email
+       | db.uri
+       | db.otheraddr)*
+    }
+}
+div {
+  db.street.role.attribute = attribute role { text }
+  db.street.attlist =
+    db.street.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.street =
+    
+    ## A street address in an address
+    element street { db.street.attlist, db._text }
+}
+div {
+  db.pob.role.attribute = attribute role { text }
+  db.pob.attlist =
+    db.pob.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.pob =
+    
+    ## A post office box in an address
+    element pob { db.pob.attlist, db._text }
+}
+div {
+  db.postcode.role.attribute = attribute role { text }
+  db.postcode.attlist =
+    db.postcode.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.postcode =
+    
+    ## A postal code in an address
+    element postcode { db.postcode.attlist, db._text }
+}
+div {
+  db.city.role.attribute = attribute role { text }
+  db.city.attlist =
+    db.city.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.city =
+    
+    ## The name of a city in an address
+    element city { db.city.attlist, db._text }
+}
+div {
+  db.state.role.attribute = attribute role { text }
+  db.state.attlist =
+    db.state.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.state =
+    
+    ## A state or province in an address
+    element state { db.state.attlist, db._text }
+}
+div {
+  db.country.role.attribute = attribute role { text }
+  db.country.attlist =
+    db.country.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.country =
+    
+    ## The name of a country
+    element country { db.country.attlist, db._text }
+}
+div {
+  db.phone.role.attribute = attribute role { text }
+  db.phone.attlist =
+    db.phone.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.phone =
+    
+    ## A telephone number
+    element phone { db.phone.attlist, db._text }
+}
+div {
+  db.fax.role.attribute = attribute role { text }
+  db.fax.attlist =
+    db.fax.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.fax =
+    
+    ## A fax number
+    element fax { db.fax.attlist, db._text }
+}
+div {
+  db.otheraddr.role.attribute = attribute role { text }
+  db.otheraddr.attlist =
+    db.otheraddr.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.otheraddr =
+    
+    ## Uncategorized information in address
+    element otheraddr { db.otheraddr.attlist, db._text }
+}
+div {
+  db.affiliation.role.attribute = attribute role { text }
+  db.affiliation.attlist =
+    db.affiliation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.affiliation =
+    
+    ## The institutional affiliation of an individual
+    element affiliation {
+      db.affiliation.attlist,
+      db.shortaffil?,
+      db.jobtitle*,
+      (db.org? | (db.orgname?, db.orgdiv*, db.address*))
+    }
+}
+div {
+  db.shortaffil.role.attribute = attribute role { text }
+  db.shortaffil.attlist =
+    db.shortaffil.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.shortaffil =
+    
+    ## A brief description of an affiliation
+    element shortaffil { db.shortaffil.attlist, db._text }
+}
+div {
+  db.jobtitle.role.attribute = attribute role { text }
+  db.jobtitle.attlist =
+    db.jobtitle.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.jobtitle =
+    
+    ## The title of an individual in an organization
+    element jobtitle { db.jobtitle.attlist, db._text }
+}
+div {
+  db.orgname.class.enumeration =
+    
+    ## A consortium
+    "consortium"
+    | 
+      ## A corporation
+      "corporation"
+    | 
+      ## An informal organization
+      "informal"
+    | 
+      ## A non-profit organization
+      "nonprofit"
+  db.orgname.class-enum.attribute =
+    
+    ## Specifies the nature of the organization
+    attribute class { db.orgname.class.enumeration }
+  db.orgname.class-other.attributes =
+    
+    ## Specifies the nature of the organization
+    attribute class {
+      
+      ## Indicates a non-standard organization class
+      "other"
+    },
+    
+    ## Identifies the non-standard nature of the organization
+    attribute otherclass { text }
+  db.orgname.class.attribute =
+    db.orgname.class-enum.attribute | db.orgname.class-other.attributes
+  db.orgname.role.attribute = attribute role { text }
+  db.orgname.attlist =
+    db.orgname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.orgname.class.attribute?
+  db.orgname =
+    
+    ## The name of an organization
+    element orgname { db.orgname.attlist, db._text }
+}
+div {
+  db.orgdiv.role.attribute = attribute role { text }
+  db.orgdiv.attlist =
+    db.orgdiv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.orgdiv =
+    
+    ## A division of an organization
+    element orgdiv { db.orgdiv.attlist, db.all.inlines* }
+}
+div {
+  db.artpagenums.role.attribute = attribute role { text }
+  db.artpagenums.attlist =
+    db.artpagenums.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.artpagenums =
+    
+    ## The page numbers of an article as published
+    element artpagenums { db.artpagenums.attlist, db._text }
+}
+div {
+  db.personname.role.attribute = attribute role { text }
+  db.personname.attlist =
+    db.personname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.personname =
+    
+    ## The personal name of an individual
+    element personname {
+      db.personname.attlist,
+      (db._text
+       | (db.honorific
+          | db.firstname
+          | db.surname
+          | db.lineage
+          | db.othername)+
+       | (db.honorific
+          | db.givenname
+          | db.surname
+          | db.lineage
+          | db.othername)+)
+    }
+}
+db.person.author.contentmodel =
+  db.personname,
+  (db.personblurb
+   | db.affiliation
+   | db.email
+   | db.uri
+   | db.address
+   | db.contrib)*
+db.org.author.contentmodel =
+  db.orgname,
+  (db.orgdiv
+   | db.affiliation
+   | db.email
+   | db.uri
+   | db.address
+   | db.contrib)*
+db.credit.contentmodel =
+  db.person.author.contentmodel | db.org.author.contentmodel
+div {
+  db.author.role.attribute = attribute role { text }
+  db.author.attlist =
+    db.author.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.author =
+    
+    ## The name of an individual author
+    element author { db.author.attlist, db.credit.contentmodel }
+}
+div {
+  db.authorgroup.role.attribute = attribute role { text }
+  db.authorgroup.attlist =
+    db.authorgroup.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.authorgroup =
+    
+    ## Wrapper for author information when a document has multiple authors or collaborators
+    element authorgroup {
+      db.authorgroup.attlist, (db.author | db.editor | db.othercredit)+
+    }
+}
+div {
+  db.collab.role.attribute = attribute role { text }
+  db.collab.attlist =
+    db.collab.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.collab =
+    
+    ## Identifies a collaborator
+    element collab {
+      db.collab.attlist,
+      (db.person | db.personname | db.org | db.orgname)+,
+      db.affiliation*
+    }
+}
+div {
+  db.authorinitials.role.attribute = attribute role { text }
+  db.authorinitials.attlist =
+    db.authorinitials.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.authorinitials =
+    
+    ## The initials or other short identifier for an author
+    element authorinitials { db.authorinitials.attlist, db._text }
+}
+div {
+  db.person.role.attribute = attribute role { text }
+  db.person.attlist =
+    db.person.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.person =
+    
+    ## A person and associated metadata
+    element person {
+      db.person.attlist,
+      db.personname,
+      (db.address
+       | db.affiliation
+       | db.email
+       | db.uri
+       | db.personblurb)*
+    }
+}
+div {
+  db.org.role.attribute = attribute role { text }
+  db.org.attlist =
+    db.org.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.org =
+    
+    ## An organization and associated metadata
+    element org {
+      db.org.attlist,
+      db.orgname,
+      (db.address | db.affiliation | db.email | db.uri | db.orgdiv)*
+    }
+}
+div {
+  db.confgroup.role.attribute = attribute role { text }
+  db.confgroup.attlist =
+    db.confgroup.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.confgroup =
+    
+    ## A wrapper for document meta-information about a conference
+    element confgroup {
+      db.confgroup.attlist,
+      (db.confdates
+       | db.conftitle
+       | db.confnum
+       | db.confsponsor
+       | db.address)*
+    }
+}
+div {
+  db.confdates.role.attribute = attribute role { text }
+  db.confdates.attlist =
+    db.confdates.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.confdates =
+    
+    ## The dates of a conference for which a document was written
+    element confdates { db.confdates.attlist, db._text }
+}
+div {
+  db.conftitle.role.attribute = attribute role { text }
+  db.conftitle.attlist =
+    db.conftitle.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.conftitle =
+    
+    ## The title of a conference for which a document was written
+    element conftitle { db.conftitle.attlist, db._text }
+}
+div {
+  db.confnum.role.attribute = attribute role { text }
+  db.confnum.attlist =
+    db.confnum.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.confnum =
+    
+    ## An identifier, frequently numerical, associated with a conference for which a document was written
+    element confnum { db.confnum.attlist, db._text }
+}
+div {
+  db.confsponsor.role.attribute = attribute role { text }
+  db.confsponsor.attlist =
+    db.confsponsor.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.confsponsor =
+    
+    ## The sponsor of a conference for which a document was written
+    element confsponsor { db.confsponsor.attlist, db._text }
+}
+div {
+  db.contractnum.role.attribute = attribute role { text }
+  db.contractnum.attlist =
+    db.contractnum.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.contractnum =
+    
+    ## The contract number of a document
+    element contractnum { db.contractnum.attlist, db._text }
+}
+div {
+  db.contractsponsor.role.attribute = attribute role { text }
+  db.contractsponsor.attlist =
+    db.contractsponsor.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.contractsponsor =
+    
+    ## The sponsor of a contract
+    element contractsponsor { db.contractsponsor.attlist, db._text }
+}
+div {
+  db.copyright.role.attribute = attribute role { text }
+  db.copyright.attlist =
+    db.copyright.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.copyright =
+    
+    ## Copyright information about a document
+    element copyright { db.copyright.attlist, db.year+, db.holder* }
+}
+div {
+  db.year.role.attribute = attribute role { text }
+  db.year.attlist =
+    db.year.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.year =
+    
+    ## The year of publication of a document
+    element year { db.year.attlist, db._text }
+}
+div {
+  db.holder.role.attribute = attribute role { text }
+  db.holder.attlist =
+    db.holder.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.holder =
+    
+    ## The name of the individual or organization that holds a copyright
+    element holder { db.holder.attlist, db._text }
+}
+db.cover.contentmodel =
+  (db.para.blocks
+   | db.extension.blocks
+   | db.list.blocks
+   | db.informal.blocks
+   | db.publishing.blocks
+   | db.graphic.blocks
+   | db.technical.blocks
+   | db.verbatim.blocks
+   | db.bridgehead
+   | db.remark
+   | db.revhistory)
+  | db.synopsis.blocks
+div {
+  db.cover.role.attribute = attribute role { text }
+  db.cover.attlist =
+    db.cover.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.cover =
+    
+    ## Additional content for the cover of a publication
+    element cover { db.cover.attlist, db.cover.contentmodel+ }
+}
+db.date.contentmodel =
+  xsd:date | xsd:dateTime | xsd:gYearMonth | xsd:gYear | text
+div {
+  db.date.role.attribute = attribute role { text }
+  db.date.attlist =
+    db.date.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.date =
+    
+    ## The date of publication or revision of a document
+    element date { db.date.attlist, db.date.contentmodel }
+}
+div {
+  db.edition.role.attribute = attribute role { text }
+  db.edition.attlist =
+    db.edition.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.edition =
+    
+    ## The name or number of an edition of a document
+    element edition { db.edition.attlist, db._text }
+}
+div {
+  db.editor.role.attribute = attribute role { text }
+  db.editor.attlist =
+    db.editor.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.editor =
+    
+    ## The name of the editor of a document
+    element editor { db.editor.attlist, db.credit.contentmodel }
+}
+div {
+  db.biblioid.role.attribute = attribute role { text }
+  db.biblioid.attlist =
+    db.biblioid.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.biblio.class.attribute
+  db.biblioid =
+    
+    ## An identifier for a document
+    element biblioid { db.biblioid.attlist, db._text }
+}
+div {
+  db.citebiblioid.role.attribute = attribute role { text }
+  db.citebiblioid.attlist =
+    db.citebiblioid.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.biblio.class.attribute
+  db.citebiblioid =
+    
+    ## A citation of a bibliographic identifier
+    element citebiblioid { db.citebiblioid.attlist, db._text }
+}
+div {
+  db.bibliosource.role.attribute = attribute role { text }
+  db.bibliosource.attlist =
+    db.bibliosource.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.biblio.class.attribute
+  db.bibliosource =
+    
+    ## The source of a document
+    element bibliosource { db.bibliosource.attlist, db._text }
+}
+div {
+  db.bibliorelation.type.enumeration =
+    
+    ## The described resource pre-existed the referenced resource, which is essentially the same intellectual content presented in another format
+    "hasformat"
+    | 
+      ## The described resource includes the referenced resource either physically or logically
+      "haspart"
+    | 
+      ## The described resource has a version, edition, or adaptation, namely, the referenced resource
+      "hasversion"
+    | 
+      ## The described resource is the same intellectual content of the referenced resource, but presented in another format
+      "isformatof"
+    | 
+      ## The described resource is a physical or logical part of the referenced resource
+      "ispartof"
+    | 
+      ## The described resource is referenced, cited, or otherwise pointed to by the referenced resource
+      "isreferencedby"
+    | 
+      ## The described resource is supplanted, displaced, or superceded by the referenced resource
+      "isreplacedby"
+    | 
+      ## The described resource is required by the referenced resource, either physically or logically
+      "isrequiredby"
+    | 
+      ## The described resource is a version, edition, or adaptation of the referenced resource; changes in version imply substantive changes in content rather than differences in format
+      "isversionof"
+    | 
+      ## The described resource references, cites, or otherwise points to the referenced resource
+      "references"
+    | 
+      ## The described resource supplants, displaces, or supersedes the referenced resource
+      "replaces"
+    | 
+      ## The described resource requires the referenced resource to support its function, delivery, or coherence of content
+      "requires"
+  db.bibliorelation.type-enum.attribute =
+    
+    ## Identifies the type of relationship
+    attribute type { db.bibliorelation.type.enumeration }?
+  db.bibliorelation.type-other.attributes =
+    
+    ## Identifies the type of relationship
+    attribute type {
+      
+      ## The described resource has a non-standard relationship with the referenced resource
+      "othertype"
+    }?,
+    
+    ## A keyword that identififes the type of the non-standard relationship
+    attribute othertype { xsd:NMTOKEN }
+  db.bibliorelation.type.attribute =
+    db.bibliorelation.type-enum.attribute
+    | db.bibliorelation.type-other.attributes
+  db.bibliorelation.role.attribute = attribute role { text }
+  db.bibliorelation.attlist =
+    db.bibliorelation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.biblio.class.attribute
+    & db.bibliorelation.type.attribute
+  db.bibliorelation =
+    
+    ## The relationship of a document to another
+    element bibliorelation { db.bibliorelation.attlist, db._text }
+}
+div {
+  db.bibliocoverage.spacial.enumeration =
+    
+    ## The DCMI Point identifies a point in space using its geographic coordinates
+    "dcmipoint"
+    | 
+      ## ISO 3166 Codes for the representation of names of countries
+      "iso3166"
+    | 
+      ## The DCMI Box identifies a region of space using its geographic limits
+      "dcmibox"
+    | 
+      ## The Getty Thesaurus of Geographic Names
+      "tgn"
+  db.bibliocoverage.spatial-enum.attribute =
+    
+    ## Specifies the type of spatial coverage
+    attribute spatial { db.bibliocoverage.spacial.enumeration }?
+  db.bibliocoverage.spatial-other.attributes =
+    
+    ## Specifies the type of spatial coverage
+    attribute spatial {
+      
+      ## Identifies a non-standard type of coverage
+      "otherspatial"
+    }?,
+    
+    ## A keyword that identifies the type of non-standard coverage
+    attribute otherspatial { xsd:NMTOKEN }
+  db.bibliocoverage.spatial.attribute =
+    db.bibliocoverage.spatial-enum.attribute
+    | db.bibliocoverage.spatial-other.attributes
+  db.bibliocoverage.temporal.enumeration =
+    
+    ## A specification of the limits of a time interval
+    "dcmiperiod"
+    | 
+      ## W3C Encoding rules for dates and times—a profile based on ISO 8601
+      "w3c-dtf"
+  db.bibliocoverage.temporal-enum.attribute =
+    
+    ## Specifies the type of temporal coverage
+    attribute temporal { db.bibliocoverage.temporal.enumeration }?
+  db.bibliocoverage.temporal-other.attributes =
+    
+    ## Specifies the type of temporal coverage
+    attribute temporal {
+      
+      ## Specifies a non-standard type of coverage
+      "othertemporal"
+    }?,
+    
+    ## A keyword that identifies the type of non-standard coverage
+    attribute othertemporal { xsd:NMTOKEN }
+  db.bibliocoverage.temporal.attribute =
+    db.bibliocoverage.temporal-enum.attribute
+    | db.bibliocoverage.temporal-other.attributes
+  db.bibliocoverage.coverage.attrib =
+    db.bibliocoverage.spatial.attribute
+    & db.bibliocoverage.temporal.attribute
+  db.bibliocoverage.role.attribute = attribute role { text }
+  db.bibliocoverage.attlist =
+    db.bibliocoverage.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.bibliocoverage.coverage.attrib
+  db.bibliocoverage =
+    
+    ## The spatial or temporal coverage of a document
+    element bibliocoverage { db.bibliocoverage.attlist, db._text }
+}
+div {
+  db.legalnotice.role.attribute = attribute role { text }
+  db.legalnotice.attlist =
+    db.legalnotice.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.legalnotice.info = db._info.title.only
+  db.legalnotice =
+    
+    ## A statement of legal obligations or requirements
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:legalnotice"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element legalnotice {
+      db.legalnotice.attlist, db.legalnotice.info, db.all.blocks+
+    }
+}
+div {
+  db.othercredit.class.enumeration =
+    
+    ## A copy editor
+    "copyeditor"
+    | 
+      ## A graphic designer
+      "graphicdesigner"
+    | 
+      ## Some other contributor
+      "other"
+    | 
+      ## A production editor
+      "productioneditor"
+    | 
+      ## A technical editor
+      "technicaleditor"
+    | 
+      ## A translator
+      "translator"
+    | 
+      ## An indexer
+      "indexer"
+    | 
+      ## A proof-reader
+      "proofreader"
+    | 
+      ## A cover designer
+      "coverdesigner"
+    | 
+      ## An interior designer
+      "interiordesigner"
+    | 
+      ## An illustrator
+      "illustrator"
+    | 
+      ## A reviewer
+      "reviewer"
+    | 
+      ## A typesetter
+      "typesetter"
+    | 
+      ## A converter (a persons responsible for conversion, not an application)
+      "conversion"
+  db.othercredit.class-enum.attribute =
+    
+    ## Identifies the nature of the contributor
+    attribute class { db.othercredit.class.enumeration }?
+  db.othercredit.class-other.attribute =
+    
+    ## Identifies the nature of the non-standard contribution
+    attribute otherclass { xsd:NMTOKEN }
+  db.othercredit.class-other.attributes =
+    
+    ## Identifies the nature of the contributor
+    attribute class {
+      
+      ## Identifies a non-standard contribution
+      "other"
+    }
+    & db.othercredit.class-other.attribute
+  db.othercredit.class.attribute =
+    db.othercredit.class-enum.attribute
+    | db.othercredit.class-other.attributes
+  db.othercredit.role.attribute = attribute role { text }
+  db.othercredit.attlist =
+    db.othercredit.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.othercredit.class.attribute
+  db.othercredit =
+    
+    ## A person or entity, other than an author or editor, credited in a document
+    element othercredit {
+      db.othercredit.attlist, db.credit.contentmodel
+    }
+}
+div {
+  db.pagenums.role.attribute = attribute role { text }
+  db.pagenums.attlist =
+    db.pagenums.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.pagenums =
+    
+    ## The numbers of the pages in a book, for use in a bibliographic entry
+    element pagenums { db.pagenums.attlist, db._text }
+}
+div {
+  db.contrib.role.attribute = attribute role { text }
+  db.contrib.attlist =
+    db.contrib.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.contrib =
+    
+    ## A summary of the contributions made to a document by a credited source
+    element contrib { db.contrib.attlist, db.all.inlines* }
+}
+div {
+  db.honorific.role.attribute = attribute role { text }
+  db.honorific.attlist =
+    db.honorific.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.honorific =
+    
+    ## The title of a person
+    element honorific { db.honorific.attlist, db._text }
+}
+div {
+  db.firstname.role.attribute = attribute role { text }
+  db.firstname.attlist =
+    db.firstname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.firstname =
+    
+    ## A given name of a person
+    element firstname { db.firstname.attlist, db._text }
+}
+div {
+  db.givenname.role.attribute = attribute role { text }
+  db.givenname.attlist =
+    db.givenname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.givenname =
+    
+    ## The given name of a person
+    element givenname { db.givenname.attlist, db._text }
+}
+div {
+  db.surname.role.attribute = attribute role { text }
+  db.surname.attlist =
+    db.surname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.surname =
+    
+    ## An inherited or family name; in western cultures the last name
+    element surname { db.surname.attlist, db._text }
+}
+div {
+  db.lineage.role.attribute = attribute role { text }
+  db.lineage.attlist =
+    db.lineage.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.lineage =
+    
+    ## The portion of a person's name indicating a relationship to ancestors
+    element lineage { db.lineage.attlist, db._text }
+}
+div {
+  db.othername.role.attribute = attribute role { text }
+  db.othername.attlist =
+    db.othername.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.othername =
+    
+    ## A component of a person's name that is not a first name, surname, or lineage
+    element othername { db.othername.attlist, db._text }
+}
+div {
+  db.printhistory.role.attribute = attribute role { text }
+  db.printhistory.attlist =
+    db.printhistory.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.printhistory =
+    
+    ## The printing history of a document
+    element printhistory { db.printhistory.attlist, db.para.blocks+ }
+}
+div {
+  db.pubdate.role.attribute = attribute role { text }
+  db.pubdate.attlist =
+    db.pubdate.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.pubdate =
+    
+    ## The date of publication of a document
+    element pubdate { db.pubdate.attlist, db.date.contentmodel }
+}
+div {
+  db.publisher.role.attribute = attribute role { text }
+  db.publisher.attlist =
+    db.publisher.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.publisher =
+    
+    ## The publisher of a document
+    element publisher {
+      db.publisher.attlist, db.publishername, db.address*
+    }
+}
+div {
+  db.publishername.role.attribute = attribute role { text }
+  db.publishername.attlist =
+    db.publishername.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.publishername =
+    
+    ## The name of the publisher of a document
+    element publishername { db.publishername.attlist, db._text }
+}
+div {
+  db.releaseinfo.role.attribute = attribute role { text }
+  db.releaseinfo.attlist =
+    db.releaseinfo.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.releaseinfo =
+    
+    ## Information about a particular release of a document
+    element releaseinfo { db.releaseinfo.attlist, db._text }
+}
+div {
+  db.revhistory.role.attribute = attribute role { text }
+  db.revhistory.attlist =
+    db.revhistory.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.revhistory.info = db._info.title.only
+  db.revhistory =
+    
+    ## A history of the revisions to a document
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:revhistory"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element revhistory {
+      db.revhistory.attlist, db.revhistory.info, db.revision+
+    }
+}
+div {
+  db.revision.role.attribute = attribute role { text }
+  db.revision.attlist =
+    db.revision.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.revision =
+    
+    ## An entry describing a single revision in the history of the revisions to a document
+    element revision {
+      db.revision.attlist,
+      db.revnumber?,
+      db.date,
+      (db.authorinitials | db.author)*,
+      (db.revremark | db.revdescription)?
+    }
+}
+div {
+  db.revnumber.role.attribute = attribute role { text }
+  db.revnumber.attlist =
+    db.revnumber.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.revnumber =
+    
+    ## A document revision number
+    element revnumber { db.revnumber.attlist, db._text }
+}
+div {
+  db.revremark.role.attribute = attribute role { text }
+  db.revremark.attlist =
+    db.revremark.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.revremark =
+    
+    ## A description of a revision to a document
+    element revremark { db.revremark.attlist, db._text }
+}
+div {
+  db.revdescription.role.attribute = attribute role { text }
+  db.revdescription.attlist =
+    db.revdescription.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.revdescription =
+    
+    ## A extended description of a revision to a document
+    element revdescription { db.revdescription.attlist, db.all.blocks* }
+}
+div {
+  db.seriesvolnums.role.attribute = attribute role { text }
+  db.seriesvolnums.attlist =
+    db.seriesvolnums.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.seriesvolnums =
+    
+    ## Numbers of the volumes in a series of books
+    element seriesvolnums { db.seriesvolnums.attlist, db._text }
+}
+div {
+  db.volumenum.role.attribute = attribute role { text }
+  db.volumenum.attlist =
+    db.volumenum.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.volumenum =
+    
+    ## The volume number of a document in a set (as of books in a set or articles in a journal)
+    element volumenum { db.volumenum.attlist, db._text }
+}
+div {
+  db.issuenum.role.attribute = attribute role { text }
+  db.issuenum.attlist =
+    db.issuenum.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.issuenum =
+    
+    ## The number of an issue of a journal
+    element issuenum { db.issuenum.attlist, db._text }
+}
+div {
+  db.package.role.attribute = attribute role { text }
+  db.package.attlist =
+    db.package.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.package =
+    
+    ## A software or application package
+    element package { db.package.attlist, db._text }
+}
+div {
+  db.email.role.attribute = attribute role { text }
+  db.email.attlist =
+    db.email.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.email =
+    
+    ## An email address
+    element email { db.email.attlist, db._text }
+}
+div {
+  db.lineannotation.role.attribute = attribute role { text }
+  db.lineannotation.attlist =
+    db.lineannotation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.lineannotation =
+    
+    ## A comment on a line in a verbatim listing
+    element lineannotation { db.lineannotation.attlist, db._text }
+}
+div {
+  db.parameter.class.enumeration =
+    
+    ## A command
+    "command"
+    | 
+      ## A function
+      "function"
+    | 
+      ## An option
+      "option"
+  db.parameter.class.attribute =
+    
+    ## Identifies the class of parameter
+    attribute class { db.parameter.class.enumeration }
+  db.parameter.role.attribute = attribute role { text }
+  db.parameter.attlist =
+    db.parameter.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.parameter.class.attribute?
+  db.parameter =
+    
+    ## A value or a symbolic reference to a value
+    element parameter { db.parameter.attlist, db._text }
+}
+db.replaceable.inlines = db._text | db.co
+div {
+  db.replaceable.class.enumeration =
+    
+    ## A command
+    "command"
+    | 
+      ## A function
+      "function"
+    | 
+      ## An option
+      "option"
+    | 
+      ## A parameter
+      "parameter"
+  db.replaceable.class.attribute =
+    
+    ## Identifies the nature of the replaceable text
+    attribute class { db.replaceable.class.enumeration }
+  db.replaceable.role.attribute = attribute role { text }
+  db.replaceable.attlist =
+    db.replaceable.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.replaceable.class.attribute?
+  db.replaceable =
+    
+    ## Content that may or must be replaced by the user
+    element replaceable {
+      db.replaceable.attlist, db.replaceable.inlines*
+    }
+}
+div {
+  db.uri.type.attribute =
+    
+    ## Identifies the type of URI specified
+    attribute type { text }?
+  db.uri.role.attribute = attribute role { text }
+  db.uri.attlist =
+    db.uri.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.uri.type.attribute
+  db.uri =
+    
+    ## A Uniform Resource Identifier
+    element uri { db.uri.attlist, db._text }
+}
+div {
+  db.abbrev.role.attribute = attribute role { text }
+  db.abbrev.attlist =
+    db.abbrev.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.abbrev =
+    
+    ## An abbreviation, especially one followed by a period
+    element abbrev {
+      db.abbrev.attlist,
+      (db._text | db.superscript | db.subscript | db.trademark)*
+    }
+}
+div {
+  db.acronym.role.attribute = attribute role { text }
+  db.acronym.attlist =
+    db.acronym.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.acronym =
+    
+    ## An often pronounceable word made from the initial (or selected) letters of a name or phrase
+    element acronym {
+      db.acronym.attlist,
+      (db._text | db.superscript | db.subscript | db.trademark)*
+    }
+}
+div {
+  db.citation.role.attribute = attribute role { text }
+  db.citation.attlist =
+    db.citation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.citation =
+    
+    ## An inline bibliographic reference to another published work
+    element citation { db.citation.attlist, db.all.inlines* }
+}
+div {
+  db.citerefentry.role.attribute = attribute role { text }
+  db.citerefentry.attlist =
+    db.citerefentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.citerefentry =
+    
+    ## A citation to a reference page
+    element citerefentry {
+      db.citerefentry.attlist, db.refentrytitle, db.manvolnum?
+    }
+}
+div {
+  db.refentrytitle.role.attribute = attribute role { text }
+  db.refentrytitle.attlist =
+    db.refentrytitle.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refentrytitle =
+    
+    ## The title of a reference page
+    element refentrytitle { db.refentrytitle.attlist, db.all.inlines* }
+}
+div {
+  db.manvolnum.role.attribute = attribute role { text }
+  db.manvolnum.attlist =
+    db.manvolnum.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.manvolnum =
+    
+    ## A reference volume number
+    element manvolnum { db.manvolnum.attlist, db._text }
+}
+div {
+  db.citetitle.pubwork.enumeration =
+    
+    ## An article
+    "article"
+    | 
+      ## A bulletin board system
+      "bbs"
+    | 
+      ## A book
+      "book"
+    | 
+      ## A CD-ROM
+      "cdrom"
+    | 
+      ## A chapter (as of a book)
+      "chapter"
+    | 
+      ## A DVD
+      "dvd"
+    | 
+      ## An email message
+      "emailmessage"
+    | 
+      ## A gopher page
+      "gopher"
+    | 
+      ## A journal
+      "journal"
+    | 
+      ## A manuscript
+      "manuscript"
+    | 
+      ## A posting to a newsgroup
+      "newsposting"
+    | 
+      ## A part (as of a book)
+      "part"
+    | 
+      ## A reference entry
+      "refentry"
+    | 
+      ## A section (as of a book or article)
+      "section"
+    | 
+      ## A series
+      "series"
+    | 
+      ## A set (as of books)
+      "set"
+    | 
+      ## A web page
+      "webpage"
+    | 
+      ## A wiki page
+      "wiki"
+  db.citetitle.pubwork.attribute =
+    
+    ## Identifies the nature of the publication being cited
+    attribute pubwork { db.citetitle.pubwork.enumeration }
+  db.citetitle.role.attribute = attribute role { text }
+  db.citetitle.attlist =
+    db.citetitle.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.citetitle.pubwork.attribute?
+  db.citetitle =
+    
+    ## The title of a cited work
+    element citetitle { db.citetitle.attlist, db.all.inlines* }
+}
+div {
+  db.emphasis.role.attribute = attribute role { text }
+  db.emphasis.attlist =
+    db.emphasis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.emphasis =
+    
+    ## Emphasized text
+    element emphasis { db.emphasis.attlist, db.all.inlines* }
+}
+div {
+  db._emphasis =
+    
+    ## A limited span of emphasized text
+    element emphasis { db.emphasis.attlist, db._text }
+}
+div {
+  db.foreignphrase.role.attribute = attribute role { text }
+  db.foreignphrase.attlist =
+    db.foreignphrase.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.foreignphrase =
+    
+    ## A word or phrase in a language other than the primary language of the document
+    element foreignphrase {
+      db.foreignphrase.attlist, (text | db.general.inlines)*
+    }
+}
+div {
+  db._foreignphrase.role.attribute = attribute role { text }
+  db._foreignphrase.attlist =
+    db._foreignphrase.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db._foreignphrase =
+    
+    ## A limited word or phrase in a language other than the primary language of the document
+    element foreignphrase { db._foreignphrase.attlist, db._text }
+}
+div {
+  db.phrase.role.attribute = attribute role { text }
+  db.phrase.attlist =
+    db.phrase.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.phrase =
+    
+    ## A span of text
+    element phrase { db.phrase.attlist, db.all.inlines* }
+}
+div {
+  db._phrase =
+    
+    ## A limited span of text
+    element phrase { db.phrase.attlist, db._text }
+}
+div {
+  db.quote.role.attribute = attribute role { text }
+  db.quote.attlist =
+    db.quote.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.quote =
+    
+    ## An inline quotation
+    element quote { db.quote.attlist, db.all.inlines* }
+}
+div {
+  db._quote.role.attribute = attribute role { text }
+  db._quote.attlist =
+    db._quote.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db._quote =
+    
+    ## A limited inline quotation
+    element quote { db._quote.attlist, db._text }
+}
+div {
+  db.subscript.role.attribute = attribute role { text }
+  db.subscript.attlist =
+    db.subscript.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.subscript =
+    
+    ## A subscript (as in H2
+    ## O, the molecular formula for water)
+    element subscript { db.subscript.attlist, db._text }
+}
+div {
+  db.superscript.role.attribute = attribute role { text }
+  db.superscript.attlist =
+    db.superscript.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.superscript =
+    
+    ## A superscript (as in x2
+    ## , the mathematical notation for x multiplied by itself)
+    element superscript { db.superscript.attlist, db._text }
+}
+div {
+  db.trademark.class.enumeration =
+    
+    ## A copyright
+    "copyright"
+    | 
+      ## A registered copyright
+      "registered"
+    | 
+      ## A service
+      "service"
+    | 
+      ## A trademark
+      "trade"
+  db.trademark.class.attribute =
+    
+    ## Identifies the class of trade mark
+    attribute class { db.trademark.class.enumeration }
+  db.trademark.role.attribute = attribute role { text }
+  db.trademark.attlist =
+    db.trademark.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.trademark.class.attribute?
+  db.trademark =
+    
+    ## A trademark
+    element trademark { db.trademark.attlist, db._text }
+}
+div {
+  db.wordasword.role.attribute = attribute role { text }
+  db.wordasword.attlist =
+    db.wordasword.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.wordasword =
+    
+    ## A word meant specifically as a word and not representing anything else
+    element wordasword { db.wordasword.attlist, db._text }
+}
+div {
+  db.footnoteref.role.attribute = attribute role { text }
+  db.footnoteref.label.attribute = db.label.attribute
+  db.footnoteref.attlist =
+    db.footnoteref.role.attribute?
+    & db.common.attributes
+    & db.linkend.attribute
+    & db.footnoteref.label.attribute?
+  db.footnoteref =
+    
+    ## A cross reference to a footnote (a footnote mark)
+    [
+      s:pattern [
+        name = "Footnote reference type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:footnoteref"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@linkend]) = 'footnote' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
+            "@linkend on footnoteref must point to a footnote."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element footnoteref { db.footnoteref.attlist, empty }
+}
+div {
+  db.xref.role.attribute = attribute role { text }
+  db.xref.xrefstyle.attribute = db.xrefstyle.attribute
+  db.xref.endterm.attribute = db.endterm.attribute
+  db.xref.attlist =
+    db.xref.role.attribute?
+    & db.common.attributes
+    & db.common.req.linking.attributes
+    & db.xref.xrefstyle.attribute?
+    & db.xref.endterm.attribute?
+  db.xref =
+    
+    ## A cross reference to another part of the document
+    element xref { db.xref.attlist, empty }
+}
+div {
+  db.link.role.attribute = attribute role { text }
+  db.link.xrefstyle.attribute = db.xrefstyle.attribute
+  db.link.endterm.attribute = db.endterm.attribute
+  db.link.attlist =
+    db.link.role.attribute?
+    & db.common.attributes
+    & db.common.req.linking.attributes
+    & db.link.xrefstyle.attribute?
+    & db.link.endterm.attribute?
+  db.link =
+    
+    ## A hypertext link
+    element link { db.link.attlist, db.all.inlines* }
+}
+div {
+  db.olink.role.attribute = attribute role { text }
+  db.olink.xrefstyle.attribute = db.xrefstyle.attribute
+  db.olink.localinfo.attribute =
+    
+    ## Holds additional information that may be used by the application when resolving the link
+    attribute localinfo { text }
+  db.olink.targetdoc.attribute =
+    
+    ## Specifies the URI of the document in which the link target appears
+    attribute targetdoc { xsd:anyURI }
+  db.olink.targetptr.attribute =
+    
+    ## Specifies the location of the link target in the document
+    attribute targetptr { text }
+  db.olink.type.attribute =
+    
+    ## Identifies application-specific customization of the link behavior
+    attribute type { text }
+  db.olink.attlist =
+    db.common.attributes
+    & db.olink.targetdoc.attribute?
+    & db.olink.role.attribute?
+    & db.olink.xrefstyle.attribute?
+    & db.olink.localinfo.attribute?
+    & db.olink.targetptr.attribute?
+    & db.olink.type.attribute?
+  db.olink =
+    
+    ## A link that addresses its target indirectly
+    element olink { db.olink.attlist, db.all.inlines* }
+}
+div {
+  db.anchor.role.attribute = attribute role { text }
+  db.anchor.attlist =
+    db.anchor.role.attribute? & db.common.idreq.attributes
+  db.anchor =
+    
+    ## A spot in the document
+    element anchor { db.anchor.attlist, empty }
+}
+div {
+  db.alt.role.attribute = attribute role { text }
+  db.alt.attlist = db.alt.role.attribute? & db.common.attributes
+  db.alt =
+    
+    ## A text-only annotation, often used for accessibility
+    element alt { db.alt.attlist, (text | db.inlinemediaobject)* }
+}
+db.status.attribute =
+  
+  ## Identifies the editorial or publication status of the element on which it occurs
+  attribute status { text }
+db.toplevel.sections =
+  ((db.section+, db.simplesect*) | db.simplesect+)
+  | (db.sect1+, db.simplesect*)
+  | db.refentry+
+db.toplevel.blocks.or.sections =
+  (db.all.blocks+, db.toplevel.sections?) | db.toplevel.sections
+db.recursive.sections =
+  ((db.section+, db.simplesect*) | db.simplesect+)
+  | db.refentry+
+db.recursive.blocks.or.sections =
+  (db.all.blocks+, db.recursive.sections?) | db.recursive.sections
+db.divisions = db.part | db.reference
+db.components =
+  db.dedication
+  | db.acknowledgements
+  | db.preface
+  | db.chapter
+  | db.appendix
+  | db.article
+  | db.colophon
+db.navigation.components =
+  notAllowed | db.glossary | db.bibliography | db.index | db.toc
+db.component.contentmodel =
+  db.navigation.components*,
+  db.toplevel.blocks.or.sections,
+  db.navigation.components*
+db.setindex.components = notAllowed | db.setindex
+db.toc.components = notAllowed | db.toc
+db.set.components = db.set | db.book
+div {
+  db.set.status.attribute = db.status.attribute
+  db.set.role.attribute = attribute role { text }
+  db.set.attlist =
+    db.set.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.set.status.attribute?
+  db.set.info = db._info.title.req
+  db.set =
+    
+    ## A collection of books
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:set"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element set {
+      db.set.attlist,
+      db.set.info,
+      db.toc.components?,
+      db.set.components+,
+      db.setindex.components?
+    }
+}
+db.book.components =
+  (db.navigation.components | db.components | db.divisions)* | db.topic*
+div {
+  db.book.status.attribute = db.status.attribute
+  db.book.role.attribute = attribute role { text }
+  db.book.attlist =
+    db.book.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.book.status.attribute?
+  db.book.info = db._info
+  db.book =
+    
+    ## A book
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:book"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element book { db.book.attlist, db.book.info, db.book.components }
+}
+div {
+  db.dedication.status.attribute = db.status.attribute
+  db.dedication.role.attribute = attribute role { text }
+  db.dedication.attlist =
+    db.dedication.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.dedication.status.attribute?
+  db.dedication.info = db._info
+  db.dedication =
+    
+    ## The dedication of a book or other component
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:dedication"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element dedication {
+      db.dedication.attlist, db.dedication.info, db.all.blocks+
+    }
+}
+div {
+  db.acknowledgements.status.attribute = db.status.attribute
+  db.acknowledgements.role.attribute = attribute role { text }
+  db.acknowledgements.attlist =
+    db.acknowledgements.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.acknowledgements.status.attribute?
+  db.acknowledgements.info = db._info
+  db.acknowledgements =
+    
+    ## Acknowledgements of a book or other component
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:acknowledgements"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element acknowledgements {
+      db.acknowledgements.attlist,
+      db.acknowledgements.info,
+      db.all.blocks+
+    }
+}
+div {
+  db.colophon.status.attribute = db.status.attribute
+  db.colophon.role.attribute = attribute role { text }
+  db.colophon.attlist =
+    db.colophon.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.colophon.status.attribute?
+  db.colophon.info = db._info
+  db.colophon =
+    
+    ## Text at the back of a book describing facts about its production
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:colophon"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element colophon {
+      db.colophon.attlist,
+      db.colophon.info,
+      ((db.all.blocks+, db.simplesect*)
+       | (db.all.blocks*, db.simplesect+))
+    }
+}
+db.appendix.contentmodel = db.component.contentmodel | db.topic+
+div {
+  db.appendix.status.attribute = db.status.attribute
+  db.appendix.role.attribute = attribute role { text }
+  db.appendix.attlist =
+    db.appendix.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.appendix.status.attribute?
+  db.appendix.info = db._info.title.req
+  db.appendix =
+    
+    ## An appendix in a book or article
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:appendix"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element appendix {
+      db.appendix.attlist, db.appendix.info, db.appendix.contentmodel?
+    }
+}
+db.chapter.contentmodel = db.component.contentmodel | db.topic+
+div {
+  db.chapter.status.attribute = db.status.attribute
+  db.chapter.role.attribute = attribute role { text }
+  db.chapter.attlist =
+    db.chapter.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.chapter.status.attribute?
+  db.chapter.info = db._info.title.req
+  db.chapter =
+    
+    ## A chapter, as of a book
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:chapter"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element chapter {
+      db.chapter.attlist, db.chapter.info, db.chapter.contentmodel?
+    }
+}
+db.part.components =
+  (db.navigation.components | db.components)
+  | (db.refentry | db.reference)
+db.part.contentmodel = db.part.components+ | db.topic+
+div {
+  db.part.status.attribute = db.status.attribute
+  db.part.role.attribute = attribute role { text }
+  db.part.attlist =
+    db.part.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.part.status.attribute?
+  db.part.info = db._info.title.req
+  db.part =
+    
+    ## A division in a book
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:part"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element part {
+      db.part.attlist,
+      db.part.info,
+      db.partintro?,
+      db.part.contentmodel?
+    }
+}
+div {
+  db.preface.status.attribute = db.status.attribute
+  db.preface.role.attribute = attribute role { text }
+  db.preface.attlist =
+    db.preface.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.preface.status.attribute?
+  db.preface.info = db._info.title.req
+  db.preface =
+    
+    ## Introductory matter preceding the first chapter of a book
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:preface"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element preface {
+      db.preface.attlist, db.preface.info, db.component.contentmodel?
+    }
+}
+div {
+  db.partintro.status.attribute = db.status.attribute
+  db.partintro.role.attribute = attribute role { text }
+  db.partintro.attlist =
+    db.partintro.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.partintro.status.attribute?
+  db.partintro.info = db._info
+  db.partintro =
+    
+    ## An introduction to the contents of a part
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:partintro"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element partintro {
+      db.partintro.attlist,
+      db.partintro.info,
+      db.toplevel.blocks.or.sections?
+    }
+}
+div {
+  db.section.status.attribute = db.status.attribute
+  db.section.role.attribute = attribute role { text }
+  db.section.attlist =
+    db.section.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.section.status.attribute?
+  db.section.info = db._info.title.req
+  db.section =
+    
+    ## A recursive section
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:section"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element section {
+      db.section.attlist,
+      db.section.info,
+      db.recursive.blocks.or.sections?,
+      db.navigation.components*
+    }
+}
+div {
+  db.simplesect.status.attribute = db.status.attribute
+  db.simplesect.role.attribute = attribute role { text }
+  db.simplesect.attlist =
+    db.simplesect.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.simplesect.status.attribute?
+  db.simplesect.info = db._info.title.req
+  db.simplesect =
+    
+    ## A section of a document with no subdivisions
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:simplesect"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element simplesect {
+      db.simplesect.attlist, db.simplesect.info, db.all.blocks*
+    }
+}
+db.article.components = db.toplevel.sections
+db.article.navcomponents =
+  db.navigation.components
+  | db.acknowledgements
+  | db.dedication
+  | db.appendix
+  | db.colophon
+div {
+  db.article.status.attribute = db.status.attribute
+  db.article.class.enumeration =
+    
+    ## A collection of frequently asked questions.
+    "faq"
+    | 
+      ## An article in a journal or other periodical.
+      "journalarticle"
+    | 
+      ## A description of a product.
+      "productsheet"
+    | 
+      ## A specification.
+      "specification"
+    | 
+      ## A technical report.
+      "techreport"
+    | 
+      ## A white paper.
+      "whitepaper"
+  db.article.class.attribute =
+    
+    ## Identifies the nature of the article
+    attribute class { db.article.class.enumeration }
+  db.article.role.attribute = attribute role { text }
+  db.article.attlist =
+    db.article.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.article.status.attribute?
+    & db.article.class.attribute?
+  db.article.info = db._info.title.req
+  db.article =
+    
+    ## An article
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:article"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element article {
+      db.article.attlist,
+      db.article.info,
+      db.article.navcomponents*,
+      ((db.all.blocks+, db.article.components?)
+       | db.article.components),
+      db.article.navcomponents*
+    }
+}
+db.annotations.attribute =
+  
+  ## Identifies one or more annotations that apply to this element
+  attribute annotations { text }
+div {
+  db.annotation.role.attribute = attribute role { text }
+  db.annotation.annotates.attribute =
+    
+    ## Identifies one ore more elements to which this annotation applies
+    attribute annotates { text }
+  db.annotation.attlist =
+    db.annotation.role.attribute?
+    & db.annotation.annotates.attribute?
+    & db.common.attributes
+  db.annotation.info = db._info.title.only
+  db.annotation =
+    
+    ## An annotation
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:annotation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:annotation)"
+            "annotation must not occur among the children or descendants of annotation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:annotation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element annotation {
+      db.annotation.attlist, db.annotation.info, db.all.blocks+
+    }
+}
+db.xlink.extended.type.attribute =
+  
+  ## Identifies the XLink extended link type
+  [
+    s:pattern [
+      name = "XLink extended placement"
+      "\x{a}" ~
+      "            "
+      s:rule [
+        context = "*[@xlink:type='extended']"
+        "\x{a}" ~
+        "               "
+        s:assert [
+          test = "not(parent::*[@xlink:type='extended'])"
+          "An XLink extended type element may not occur as the direct child of an XLink extended type element."
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      "\x{a}" ~
+      "         "
+    ]
+  ]
+  attribute xlink:type {
+    
+    ## An XLink extended link type
+    "extended"
+  }
+db.xlink.locator.type.attribute =
+  
+  ## Identifies the XLink locator link type
+  [
+    s:pattern [
+      name = "XLink locator placement"
+      "\x{a}" ~
+      "            "
+      s:rule [
+        context = "*[@xlink:type='locator']"
+        "\x{a}" ~
+        "               "
+        s:assert [
+          test = "not(parent::*[@xlink:type='extended'])"
+          "An XLink locator type element must occur as the direct child of an XLink extended type element."
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      "\x{a}" ~
+      "         "
+    ]
+  ]
+  attribute xlink:type {
+    
+    ## An XLink locator link type
+    "locator"
+  }
+db.xlink.arc.type.attribute =
+  
+  ## Identifies the XLink arc link type
+  [
+    s:pattern [
+      name = "XLink arc placement"
+      "\x{a}" ~
+      "            "
+      s:rule [
+        context = "*[@xlink:type='arc']"
+        "\x{a}" ~
+        "               "
+        s:assert [
+          test = "parent::*[@xlink:type='extended']"
+          "An XLink arc type element must occur as the direct child of an XLink extended type element."
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      "\x{a}" ~
+      "         "
+    ]
+  ]
+  attribute xlink:type {
+    
+    ## An XLink arc link type
+    "arc"
+  }
+db.xlink.resource.type.attribute =
+  
+  ## Identifies the XLink resource link type
+  [
+    s:pattern [
+      name = "XLink resource placement"
+      "\x{a}" ~
+      "            "
+      s:rule [
+        context = "*[@xlink:type='resource']"
+        "\x{a}" ~
+        "               "
+        s:assert [
+          test = "not(parent::*[@xlink:type='extended'])"
+          "An XLink resource type element must occur as the direct child of an XLink extended type element."
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      "\x{a}" ~
+      "         "
+    ]
+  ]
+  attribute xlink:type {
+    
+    ## An XLink resource link type
+    "resource"
+  }
+db.xlink.title.type.attribute =
+  
+  ## Identifies the XLink title link type
+  [
+    s:pattern [
+      name = "XLink title placement"
+      "\x{a}" ~
+      "            "
+      s:rule [
+        context = "*[@xlink:type='title']"
+        "\x{a}" ~
+        "               "
+        s:assert [
+          test =
+            "not(parent::*[@xlink:type='extended']) and not(parent::*[@xlink:type='locator']) and not(parent::*[@xlink:type='arc'])"
+          "An XLink title type element must occur as the direct child of an XLink extended, locator, or arc type element."
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      "\x{a}" ~
+      "         "
+    ]
+  ]
+  attribute xlink:type {
+    
+    ## An XLink title link type
+    "title"
+  }
+db.xlink.extended.link.attributes =
+  db.xlink.extended.type.attribute
+  & db.xlink.role.attribute?
+  & db.xlink.title.attribute?
+db.xlink.locator.link.attributes =
+  db.xlink.locator.type.attribute
+  & db.xlink.href.attribute
+  & db.xlink.role.attribute?
+  & db.xlink.title.attribute?
+  & db.xlink.label.attribute?
+db.xlink.arc.link.attributes =
+  db.xlink.arc.type.attribute
+  & db.xlink.arcrole.attribute?
+  & db.xlink.title.attribute?
+  & db.xlink.show.attribute?
+  & db.xlink.actuate.attribute?
+  & db.xlink.from.attribute?
+  & db.xlink.to.attribute?
+db.xlink.resource.link.attributes =
+  db.xlink.resource.type.attribute
+  & db.xlink.role.attribute?
+  & db.xlink.title.attribute?
+  & db.xlink.label.attribute?
+db.xlink.title.link.attributes = db.xlink.title.type.attribute
+db.xlink.from.attribute =
+  
+  ## Specifies the XLink traversal-from
+  attribute xlink:from { xsd:NMTOKEN }
+db.xlink.label.attribute =
+  
+  ## Specifies the XLink label
+  attribute xlink:label { xsd:NMTOKEN }
+db.xlink.to.attribute =
+  
+  ## Specifies the XLink traversal-to
+  attribute xlink:to { xsd:NMTOKEN }
+div {
+  db.extendedlink.role.attribute = attribute role { text }
+  db.extendedlink.attlist =
+    db.extendedlink.role.attribute?
+    & db.common.attributes
+    & 
+      ## Identifies the XLink link type 
+      [ a:defaultValue = "extended" ]
+      attribute xlink:type {
+        
+        ## An XLink extended link
+        "extended"
+      }?
+    & db.xlink.role.attribute?
+    & db.xlink.title.attribute?
+  db.extendedlink =
+    
+    ## An XLink extended link
+    element extendedlink {
+      db.extendedlink.attlist, (db.locator | db.arc | db.link)+
+    }
+}
+div {
+  db.locator.role.attribute = attribute role { text }
+  db.locator.attlist =
+    db.locator.role.attribute?
+    & db.common.attributes
+    & 
+      ## Identifies the XLink link type 
+      [ a:defaultValue = "locator" ]
+      attribute xlink:type {
+        
+        ## An XLink locator link
+        "locator"
+      }?
+    & db.xlink.href.attribute
+    & db.xlink.role.attribute?
+    & db.xlink.title.attribute?
+    & db.xlink.label.attribute?
+  db.locator =
+    
+    ## An XLink locator in an extendedlink
+    element locator { db.locator.attlist, empty }
+}
+div {
+  db.arc.role.attribute = attribute role { text }
+  db.arc.attlist =
+    db.arc.role.attribute?
+    & db.common.attributes
+    & 
+      ## Identifies the XLink link type 
+      [ a:defaultValue = "arc" ]
+      attribute xlink:type {
+        
+        ## An XLink arc link
+        "arc"
+      }?
+    & db.xlink.arcrole.attribute?
+    & db.xlink.title.attribute?
+    & db.xlink.show.attribute?
+    & db.xlink.actuate.attribute?
+    & db.xlink.from.attribute?
+    & db.xlink.to.attribute?
+  db.arc =
+    
+    ## An XLink arc in an extendedlink
+    element arc { db.arc.attlist, empty }
+}
+db.sect1.sections = (db.sect2+, db.simplesect*) | db.simplesect+
+div {
+  db.sect1.status.attribute = db.status.attribute
+  db.sect1.role.attribute = attribute role { text }
+  db.sect1.attlist =
+    db.sect1.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.sect1.status.attribute?
+  db.sect1.info = db._info.title.req
+  db.sect1 =
+    
+    ## A top-level section of document
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:sect1"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element sect1 {
+      db.sect1.attlist,
+      db.sect1.info,
+      ((db.all.blocks+, db.sect1.sections?) | db.sect1.sections)?,
+      db.navigation.components*
+    }
+}
+db.sect2.sections = (db.sect3+, db.simplesect*) | db.simplesect+
+div {
+  db.sect2.status.attribute = db.status.attribute
+  db.sect2.role.attribute = attribute role { text }
+  db.sect2.attlist =
+    db.sect2.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.sect2.status.attribute?
+  db.sect2.info = db._info.title.req
+  db.sect2 =
+    
+    ## A subsection within a sect1
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:sect2"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element sect2 {
+      db.sect2.attlist,
+      db.sect2.info,
+      ((db.all.blocks+, db.sect2.sections?) | db.sect2.sections)?,
+      db.navigation.components*
+    }
+}
+db.sect3.sections = (db.sect4+, db.simplesect*) | db.simplesect+
+div {
+  db.sect3.status.attribute = db.status.attribute
+  db.sect3.role.attribute = attribute role { text }
+  db.sect3.attlist =
+    db.sect3.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.sect3.status.attribute?
+  db.sect3.info = db._info.title.req
+  db.sect3 =
+    
+    ## A subsection within a sect2
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:sect3"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element sect3 {
+      db.sect3.attlist,
+      db.sect3.info,
+      ((db.all.blocks+, db.sect3.sections?) | db.sect3.sections)?,
+      db.navigation.components*
+    }
+}
+db.sect4.sections = (db.sect5+, db.simplesect*) | db.simplesect+
+div {
+  db.sect4.status.attribute = db.status.attribute
+  db.sect4.role.attribute = attribute role { text }
+  db.sect4.attlist =
+    db.sect4.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.sect4.status.attribute?
+  db.sect4.info = db._info.title.req
+  db.sect4 =
+    
+    ## A subsection within a sect3
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:sect4"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element sect4 {
+      db.sect4.attlist,
+      db.sect4.info,
+      ((db.all.blocks+, db.sect4.sections?) | db.sect4.sections)?,
+      db.navigation.components*
+    }
+}
+db.sect5.sections = db.simplesect+
+div {
+  db.sect5.status.attribute = db.status.attribute
+  db.sect5.role.attribute = attribute role { text }
+  db.sect5.attlist =
+    db.sect5.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.sect5.status.attribute?
+  db.sect5.info = db._info.title.req
+  db.sect5 =
+    
+    ## A subsection within a sect4
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:sect5"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element sect5 {
+      db.sect5.attlist,
+      db.sect5.info,
+      ((db.all.blocks+, db.sect5.sections?) | db.sect5.sections)?,
+      db.navigation.components*
+    }
+}
+db.toplevel.refsection = db.refsection+ | db.refsect1+
+db.secondlevel.refsection = db.refsection+ | db.refsect2+
+db.reference.components = db.refentry
+div {
+  db.reference.status.attribute = db.status.attribute
+  db.reference.role.attribute = attribute role { text }
+  db.reference.attlist =
+    db.reference.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.reference.status.attribute?
+    & db.label.attribute?
+  db.reference.info = db._info.title.req
+  db.reference =
+    
+    ## A collection of reference entries
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:reference"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element reference {
+      db.reference.attlist,
+      db.reference.info,
+      db.partintro?,
+      db.reference.components*
+    }
+}
+div {
+  db.refentry.status.attribute = db.status.attribute
+  db.refentry.role.attribute = attribute role { text }
+  db.refentry.attlist =
+    db.refentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.refentry.status.attribute?
+    & db.label.attribute?
+  db.refentry.info = db._info.title.forbidden
+  db.refentry =
+    
+    ## A reference page (originally a UNIX man-style reference page)
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:refentry"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element refentry {
+      db.refentry.attlist,
+      db.indexterm*,
+      db.refentry.info,
+      db.refmeta?,
+      db.refnamediv+,
+      db.refsynopsisdiv?,
+      db.toplevel.refsection
+    }
+}
+div {
+  db.refmeta.role.attribute = attribute role { text }
+  db.refmeta.attlist =
+    db.refmeta.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refmeta =
+    
+    ## Meta-information for a reference entry
+    element refmeta {
+      db.refmeta.attlist,
+      db.indexterm*,
+      db.refentrytitle,
+      db.manvolnum?,
+      db.refmiscinfo*,
+      db.indexterm*
+    }
+}
+db.refmiscinfo.class.enumeration =
+  
+  ## The name of the software product or component to which this topic applies
+  "source"
+  | 
+    ## The version of the software product or component to which this topic applies
+    "version"
+  | 
+    ## The section title of the reference page (e.g., User Commands)
+    "manual"
+  | 
+    ## The section title of the reference page (believed synonymous with "manual" but in wide use)
+    "sectdesc"
+  | 
+    ## The name of the software product or component to which this topic applies (e.g., SunOS x.y; believed synonymous with "source" but in wide use)
+    "software"
+db.refmiscinfo.class-enum.attribute =
+  
+  ## Identifies the kind of miscellaneous information
+  attribute class { db.refmiscinfo.class.enumeration }?
+db.refmiscinfo.class-other.attribute =
+  
+  ## Identifies the nature of non-standard miscellaneous information
+  attribute otherclass { text }
+db.refmiscinfo.class-other.attributes =
+  
+  ## Identifies the kind of miscellaneious information
+  attribute class {
+    
+    ## Indicates that the information is some 'other' kind.
+    "other"
+  }
+  & db.refmiscinfo.class-other.attribute
+db.refmiscinfo.class.attribute =
+  db.refmiscinfo.class-enum.attribute
+  | db.refmiscinfo.class-other.attributes
+div {
+  db.refmiscinfo.role.attribute = attribute role { text }
+  db.refmiscinfo.attlist =
+    db.refmiscinfo.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.refmiscinfo.class.attribute?
+  db.refmiscinfo =
+    
+    ## Meta-information for a reference entry other than the title and volume number
+    element refmiscinfo { db.refmiscinfo.attlist, db._text }
+}
+div {
+  db.refnamediv.role.attribute = attribute role { text }
+  db.refnamediv.attlist =
+    db.refnamediv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refnamediv =
+    
+    ## The name, purpose, and classification of a reference page
+    element refnamediv {
+      db.refnamediv.attlist,
+      db.refdescriptor?,
+      db.refname+,
+      db.refpurpose,
+      db.refclass*
+    }
+}
+div {
+  db.refdescriptor.role.attribute = attribute role { text }
+  db.refdescriptor.attlist =
+    db.refdescriptor.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refdescriptor =
+    
+    ## A description of the topic of a reference page
+    element refdescriptor { db.refdescriptor.attlist, db.all.inlines* }
+}
+div {
+  db.refname.role.attribute = attribute role { text }
+  db.refname.attlist =
+    db.refname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refname =
+    
+    ## The name of (one of) the subject(s) of a reference page
+    element refname { db.refname.attlist, db.all.inlines* }
+}
+div {
+  db.refpurpose.role.attribute = attribute role { text }
+  db.refpurpose.attlist =
+    db.refpurpose.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refpurpose =
+    
+    ## A short (one sentence) synopsis of the topic of a reference page
+    element refpurpose { db.refpurpose.attlist, db.all.inlines* }
+}
+div {
+  db.refclass.role.attribute = attribute role { text }
+  db.refclass.attlist =
+    db.refclass.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refclass =
+    
+    ## The scope or other indication of applicability of a reference entry
+    element refclass { db.refclass.attlist, (text | db.application)* }
+}
+div {
+  db.refsynopsisdiv.role.attribute = attribute role { text }
+  db.refsynopsisdiv.attlist =
+    db.refsynopsisdiv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.refsynopsisdiv.info = db._info
+  db.refsynopsisdiv =
+    
+    ## A syntactic synopsis of the subject of the reference page
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:refsynopsisdiv"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element refsynopsisdiv {
+      db.refsynopsisdiv.attlist,
+      db.refsynopsisdiv.info,
+      ((db.all.blocks+, db.secondlevel.refsection?)
+       | db.secondlevel.refsection)
+    }
+}
+div {
+  db.refsection.status.attribute = db.status.attribute
+  db.refsection.role.attribute = attribute role { text }
+  db.refsection.attlist =
+    db.refsection.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.refsection.status.attribute?
+    & db.label.attribute?
+  db.refsection.info = db._info.title.req
+  db.refsection =
+    
+    ## A recursive section in a refentry
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:refsection"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element refsection {
+      db.refsection.attlist,
+      db.refsection.info,
+      ((db.all.blocks+, db.refsection*) | db.refsection+)
+    }
+}
+db.refsect1.sections = db.refsect2+
+div {
+  db.refsect1.status.attribute = db.status.attribute
+  db.refsect1.role.attribute = attribute role { text }
+  db.refsect1.attlist =
+    db.refsect1.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.refsect1.status.attribute?
+  db.refsect1.info = db._info.title.req
+  db.refsect1 =
+    
+    ## A major subsection of a reference entry
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:refsect1"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element refsect1 {
+      db.refsect1.attlist,
+      db.refsect1.info,
+      ((db.all.blocks+, db.refsect1.sections?) | db.refsect1.sections)
+    }
+}
+db.refsect2.sections = db.refsect3+
+div {
+  db.refsect2.status.attribute = db.status.attribute
+  db.refsect2.role.attribute = attribute role { text }
+  db.refsect2.attlist =
+    db.refsect2.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.refsect2.status.attribute?
+  db.refsect2.info = db._info.title.req
+  db.refsect2 =
+    
+    ## A subsection of a refsect1
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:refsect2"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element refsect2 {
+      db.refsect2.attlist,
+      db.refsect2.info,
+      ((db.all.blocks+, db.refsect2.sections?) | db.refsect2.sections)
+    }
+}
+div {
+  db.refsect3.status.attribute = db.status.attribute
+  db.refsect3.role.attribute = attribute role { text }
+  db.refsect3.attlist =
+    db.refsect3.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.refsect3.status.attribute?
+  db.refsect3.info = db._info.title.req
+  db.refsect3 =
+    
+    ## A subsection of a refsect2
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:refsect3"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element refsect3 {
+      db.refsect3.attlist, db.refsect3.info, db.all.blocks+
+    }
+}
+db.glossary.inlines =
+  db.firstterm | db.glossterm | db._firstterm | db._glossterm
+db.baseform.attribute =
+  
+  ## Specifies the base form of the term, the one that appears in the glossary. This allows adjectival, plural, and other variations of the term to appear in the element. The element content is the default base form.
+  attribute baseform { text }?
+div {
+  db.glosslist.role.attribute = attribute role { text }
+  db.glosslist.attlist =
+    db.glosslist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.glosslist.info = db._info.title.only
+  db.glosslist =
+    
+    ## A wrapper for a list of glossary entries
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:glosslist"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element glosslist {
+      db.glosslist.attlist,
+      db.glosslist.info?,
+      db.all.blocks*,
+      db.glossentry+
+    }
+}
+div {
+  db.glossentry.role.attribute = attribute role { text }
+  db.glossentry.sortas.attribute =
+    
+    ## Specifies the string by which the element's content is to be sorted; if unspecified, the content is used
+    attribute sortas { text }
+  db.glossentry.attlist =
+    db.glossentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.glossentry.sortas.attribute?
+  db.glossentry =
+    
+    ## An entry in a glossary or glosslist
+    element glossentry {
+      db.glossentry.attlist,
+      db.glossterm,
+      db.acronym?,
+      db.abbrev?,
+      db.indexterm*,
+      (db.glosssee | db.glossdef+)
+    }
+}
+div {
+  db.glossdef.role.attribute = attribute role { text }
+  db.glossdef.subject.attribute =
+    
+    ## Specifies a list of keywords for the definition
+    attribute subject { text }
+  db.glossdef.attlist =
+    db.glossdef.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.glossdef.subject.attribute?
+  db.glossdef =
+    
+    ## A definition in a glossentry
+    element glossdef {
+      db.glossdef.attlist, db.all.blocks+, db.glossseealso*
+    }
+}
+div {
+  db.glosssee.role.attribute = attribute role { text }
+  db.glosssee.otherterm.attribute =
+    
+    ## Identifies the other term
+    attribute otherterm { xsd:IDREF }
+  db.glosssee.attlist =
+    db.glosssee.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.glosssee.otherterm.attribute?
+  db.glosssee =
+    
+    ## A cross-reference from one glossentry
+    ##  to another
+    [
+      s:pattern [
+        name = "Glosssary 'see' type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:glosssee[@otherterm]"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'"
+            "@otherterm on glosssee must point to a glossentry."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element glosssee { db.glosssee.attlist, db.all.inlines* }
+}
+div {
+  db.glossseealso.role.attribute = attribute role { text }
+  db.glossseealso.otherterm.attribute =
+    
+    ## Identifies the other term
+    attribute otherterm { xsd:IDREF }
+  db.glossseealso.attlist =
+    db.glossseealso.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.glossseealso.otherterm.attribute?
+  db.glossseealso =
+    
+    ## A cross-reference from one glossentry to another
+    [
+      s:pattern [
+        name = "Glossary 'seealso' type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:glossseealso[@otherterm]"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'"
+            "@otherterm on glossseealso must point to a glossentry."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element glossseealso { db.glossseealso.attlist, db.all.inlines* }
+}
+div {
+  db.firstterm.role.attribute = attribute role { text }
+  db.firstterm.attlist =
+    db.firstterm.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.baseform.attribute
+  db.firstterm =
+    
+    ## The first occurrence of a term
+    [
+      s:pattern [
+        name = "Glossary 'firstterm' type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:firstterm[@linkend]"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
+            "@linkend on firstterm must point to a glossentry."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element firstterm { db.firstterm.attlist, db.all.inlines* }
+}
+div {
+  db._firstterm.role.attribute = attribute role { text }
+  db._firstterm.attlist =
+    db._firstterm.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.baseform.attribute
+  db._firstterm =
+    
+    ## The first occurrence of a term, with limited content
+    [
+      s:pattern [
+        name = "Glossary 'firstterm' type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:firstterm[@linkend]"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
+            "@linkend on firstterm must point to a glossentry."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element firstterm { db._firstterm.attlist, db._text }
+}
+div {
+  db.glossterm.role.attribute = attribute role { text }
+  db.glossterm.attlist =
+    db.glossterm.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.baseform.attribute
+  db.glossterm =
+    
+    ## A glossary term
+    [
+      s:pattern [
+        name = "Glossary 'glossterm' type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:glossterm[@linkend]"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
+            "@linkend on glossterm must point to a glossentry."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element glossterm { db.glossterm.attlist, db.all.inlines* }
+}
+div {
+  db._glossterm.role.attribute = attribute role { text }
+  db._glossterm.attlist =
+    db._glossterm.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.baseform.attribute
+  db._glossterm =
+    
+    ## A glossary term
+    [
+      s:pattern [
+        name = "Glossary 'glossterm' type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:glossterm[@linkend]"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
+            "@linkend on glossterm must point to a glossentry."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element glossterm { db._glossterm.attlist, db._text }
+}
+div {
+  db.glossary.status.attribute = db.status.attribute
+  db.glossary.role.attribute = attribute role { text }
+  db.glossary.attlist =
+    db.glossary.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.glossary.status.attribute?
+  db.glossary.info = db._info
+  db.glossary =
+    
+    ## A glossary
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:glossary"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element glossary {
+      db.glossary.attlist,
+      db.glossary.info,
+      db.all.blocks*,
+      (db.glossdiv* | db.glossentry*),
+      db.bibliography?
+    }
+}
+div {
+  db.glossdiv.status.attribute = db.status.attribute
+  db.glossdiv.role.attribute = attribute role { text }
+  db.glossdiv.attlist =
+    db.glossdiv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.glossdiv.status.attribute?
+  db.glossdiv.info = db._info.title.req
+  db.glossdiv =
+    
+    ## A division in a glossary
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:glossdiv"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element glossdiv {
+      db.glossdiv.attlist,
+      db.glossdiv.info,
+      db.all.blocks*,
+      db.glossentry+
+    }
+}
+div {
+  db.termdef.role.attribute = attribute role { text }
+  db.termdef.attlist =
+    db.termdef.role.attribute?
+    & db.glossentry.sortas.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.baseform.attribute
+  db.termdef =
+    
+    ## An inline definition of a term
+    [
+      s:pattern [
+        name = "Glossary term definition constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:termdef"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "count(db:firstterm) = 1"
+            "A termdef must contain exactly one firstterm"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element termdef { db.termdef.attlist, db.all.inlines* }
+}
+db.relation.attribute =
+  
+  ## Identifies the relationship between the bibliographic elemnts
+  attribute relation { text }
+div {
+  db.biblioentry.role.attribute = attribute role { text }
+  db.biblioentry.attlist =
+    db.biblioentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.biblioentry =
+    
+    ## A raw entry in a bibliography
+    element biblioentry {
+      db.biblioentry.attlist, db.bibliographic.elements+
+    }
+}
+div {
+  db.bibliomixed.role.attribute = attribute role { text }
+  db.bibliomixed.attlist =
+    db.bibliomixed.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.bibliomixed =
+    
+    ## A cooked entry in a bibliography
+    element bibliomixed {
+      db.bibliomixed.attlist,
+      ((db._text
+        | db.honorific
+        | db.firstname
+        | db.surname
+        | db.lineage
+        | db.othername
+        | db.bibliographic.elements)*
+       | (db._text
+          | db.honorific
+          | db.givenname
+          | db.surname
+          | db.lineage
+          | db.othername
+          | db.bibliographic.elements)*)
+    }
+}
+div {
+  db.biblioset.relation.attribute = db.relation.attribute
+  db.biblioset.role.attribute = attribute role { text }
+  db.biblioset.attlist =
+    db.biblioset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.biblioset.relation.attribute?
+  db.biblioset =
+    
+    ## A raw container for related bibliographic information
+    element biblioset {
+      db.biblioset.attlist, db.bibliographic.elements+
+    }
+}
+div {
+  db.bibliomset.relation.attribute = db.relation.attribute
+  db.bibliomset.role.attribute = attribute role { text }
+  db.bibliomset.attlist =
+    db.bibliomset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.bibliomset.relation.attribute?
+  db.bibliomset =
+    
+    ## A cooked container for related bibliographic information
+    element bibliomset {
+      db.bibliomset.attlist,
+      ((db._text
+        | db.honorific
+        | db.firstname
+        | db.surname
+        | db.lineage
+        | db.othername
+        | db.bibliographic.elements)*
+       | (db._text
+          | db.honorific
+          | db.givenname
+          | db.surname
+          | db.lineage
+          | db.othername
+          | db.bibliographic.elements)*)
+    }
+}
+div {
+  db.bibliomisc.role.attribute = attribute role { text }
+  db.bibliomisc.attlist =
+    db.bibliomisc.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.bibliomisc =
+    
+    ## Untyped bibliographic information
+    element bibliomisc { db.bibliomisc.attlist, db._text }
+}
+div {
+  db.bibliography.status.attrib = db.status.attribute
+  db.bibliography.role.attribute = attribute role { text }
+  db.bibliography.attlist =
+    db.bibliography.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.bibliography.status.attrib?
+  db.bibliography.info = db._info
+  db.bibliography =
+    
+    ## A bibliography
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:bibliography"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element bibliography {
+      db.bibliography.attlist,
+      db.bibliography.info,
+      db.all.blocks*,
+      (db.bibliodiv+ | (db.biblioentry | db.bibliomixed)+)
+    }
+}
+div {
+  db.bibliodiv.status.attrib = db.status.attribute
+  db.bibliodiv.role.attribute = attribute role { text }
+  db.bibliodiv.attlist =
+    db.bibliodiv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.bibliodiv.status.attrib?
+  db.bibliodiv.info = db._info.title.req
+  db.bibliodiv =
+    
+    ## A section of a bibliography
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:bibliodiv"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element bibliodiv {
+      db.bibliodiv.attlist,
+      db.bibliodiv.info,
+      db.all.blocks*,
+      (db.biblioentry | db.bibliomixed)+
+    }
+}
+div {
+  db.bibliolist.role.attribute = attribute role { text }
+  db.bibliolist.attlist =
+    db.bibliolist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.bibliolist.info = db._info.title.only
+  db.bibliolist =
+    
+    ## A wrapper for a list of bibliography entries
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:bibliolist"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element bibliolist {
+      db.bibliolist.attlist,
+      db.bibliolist.info?,
+      db.all.blocks*,
+      (db.biblioentry | db.bibliomixed)+
+    }
+}
+div {
+  db.biblioref.role.attribute = attribute role { text }
+  db.biblioref.xrefstyle.attribute = db.xrefstyle.attribute
+  db.biblioref.endterm.attribute = db.endterm.attribute
+  db.biblioref.units.attribute =
+    
+    ## The units (for example, pages) used to identify the beginning and ending of a reference.
+    attribute units { xsd:token }
+  db.biblioref.begin.attribute =
+    
+    ## Identifies the beginning of a reference; the location within the work that is being referenced.
+    attribute begin { xsd:token }
+  db.biblioref.end.attribute =
+    
+    ## Identifies the end of a reference.
+    attribute end { xsd:token }
+  db.biblioref.attlist =
+    db.biblioref.role.attribute?
+    & db.common.attributes
+    & db.common.req.linking.attributes
+    & db.biblioref.xrefstyle.attribute?
+    & db.biblioref.endterm.attribute?
+    & db.biblioref.units.attribute?
+    & db.biblioref.begin.attribute?
+    & db.biblioref.end.attribute?
+  db.biblioref =
+    
+    ## A cross-reference to a bibliographic entry
+    element biblioref { db.biblioref.attlist, empty }
+}
+db.significance.enumeration =
+  
+  ## Normal
+  "normal"
+  | 
+    ## Preferred
+    "preferred"
+db.significance.attribute =
+  
+  ## Specifies the significance of the term
+  attribute significance { db.significance.enumeration }
+db.zone.attribute =
+  
+  ## Specifies the IDs of the elements to which this term applies
+  attribute zone { xsd:IDREFS }
+db.indexterm.pagenum.attribute =
+  
+  ## Indicates the page on which this index term occurs in some version of the printed document
+  attribute pagenum { text }
+db.scope.enumeration =
+  
+  ## All indexes
+  "all"
+  | 
+    ## The global index (as for a combined index of a set of books)
+    "global"
+  | 
+    ## The local index (the index for this document only)
+    "local"
+db.scope.attribute =
+  
+  ## Specifies the scope of the index term
+  attribute scope { db.scope.enumeration }
+db.sortas.attribute =
+  
+  ## Specifies the string by which the term is to be sorted; if unspecified, the term content is used
+  attribute sortas { text }
+db.index.type.attribute =
+  
+  ## Specifies the target index for this term
+  attribute type { text }
+div {
+  db.itermset.role.attribute = attribute role { text }
+  db.itermset.attlist =
+    db.itermset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.itermset =
+    
+    ## A set of index terms in the meta-information of a document
+    element itermset { db.itermset.attlist, db.indexterm.singular+ }
+}
+db.indexterm.contentmodel =
+  db.primary?,
+  ((db.secondary,
+    ((db.tertiary, (db.see | db.seealso+)?)
+     | db.see
+     | db.seealso+)?)
+   | db.see
+   | db.seealso+)?
+div {
+  db.indexterm.singular.role.attribute = attribute role { text }
+  db.indexterm.singular.class.attribute =
+    
+    ## Identifies the class of index term
+    attribute class {
+      
+      ## A singular index term
+      "singular"
+    }
+  db.indexterm.singular.attlist =
+    db.indexterm.singular.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.significance.attribute?
+    & db.zone.attribute?
+    & db.indexterm.pagenum.attribute?
+    & db.scope.attribute?
+    & db.index.type.attribute?
+    & db.indexterm.singular.class.attribute?
+  db.indexterm.singular =
+    
+    ## A wrapper for an indexed term
+    element indexterm {
+      db.indexterm.singular.attlist, db.indexterm.contentmodel
+    }
+}
+div {
+  db.indexterm.startofrange.role.attribute = attribute role { text }
+  db.indexterm.startofrange.class.attribute =
+    
+    ## Identifies the class of index term
+    attribute class {
+      
+      ## The start of a range
+      "startofrange"
+    }
+  db.indexterm.startofrange.attlist =
+    db.indexterm.startofrange.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.significance.attribute?
+    & db.zone.attribute?
+    & db.indexterm.pagenum.attribute?
+    & db.scope.attribute?
+    & db.index.type.attribute?
+    & db.indexterm.startofrange.class.attribute
+  db.indexterm.startofrange =
+    
+    ## A wrapper for an indexed term that covers a range
+    element indexterm {
+      db.indexterm.startofrange.attlist, db.indexterm.contentmodel
+    }
+}
+div {
+  db.indexterm.endofrange.role.attribute = attribute role { text }
+  db.indexterm.endofrange.class.attribute =
+    
+    ## Identifies the class of index term
+    attribute class {
+      
+      ## The end of a range
+      "endofrange"
+    }
+  db.indexterm.endofrange.startref.attribute =
+    
+    ## Points to the start of the range
+    attribute startref { xsd:IDREF }
+  db.indexterm.endofrange.attlist =
+    db.indexterm.endofrange.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.indexterm.endofrange.class.attribute
+    & db.indexterm.endofrange.startref.attribute
+  db.indexterm.endofrange =
+    
+    ## Identifies the end of a range associated with an indexed term
+    element indexterm { db.indexterm.endofrange.attlist, empty }
+}
+div {
+  db.indexterm =
+    db.indexterm.singular
+    | db.indexterm.startofrange
+    | db.indexterm.endofrange
+}
+div {
+  db.primary.role.attribute = attribute role { text }
+  db.primary.attlist =
+    db.primary.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.sortas.attribute?
+  db.primary =
+    
+    ## The primary word or phrase under which an index term should be sorted
+    element primary { db.primary.attlist, db.all.inlines* }
+}
+div {
+  db.secondary.role.attribute = attribute role { text }
+  db.secondary.attlist =
+    db.secondary.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.sortas.attribute?
+  db.secondary =
+    
+    ## A secondary word or phrase in an index term
+    element secondary { db.secondary.attlist, db.all.inlines* }
+}
+div {
+  db.tertiary.role.attribute = attribute role { text }
+  db.tertiary.attlist =
+    db.tertiary.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.sortas.attribute?
+  db.tertiary =
+    
+    ## A tertiary word or phrase in an index term
+    element tertiary { db.tertiary.attlist, db.all.inlines* }
+}
+div {
+  db.see.role.attribute = attribute role { text }
+  db.see.attlist =
+    db.see.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.see =
+    
+    ## Part of an index term directing the reader instead to another entry in the index
+    element see { db.see.attlist, db.all.inlines* }
+}
+div {
+  db.seealso.role.attribute = attribute role { text }
+  db.seealso.attlist =
+    db.seealso.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.seealso =
+    
+    ## Part of an index term directing the reader also to another entry in the index
+    element seealso { db.seealso.attlist, db.all.inlines* }
+}
+div {
+  db.index.status.attribute = db.status.attribute
+  db.index.role.attribute = attribute role { text }
+  db.index.attlist =
+    db.index.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.index.status.attribute?
+    & db.index.type.attribute?
+  db.index.info = db._info
+  # Yes, db.indexdiv* and db.indexentry*; that way an <index/> is valid.
+  # Authors can use an empty index to indicate where a generated index should
+  # appear.
+  db.index =
+    
+    ## An index to a book or part of a book
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:index"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element index {
+      db.index.attlist,
+      db.index.info,
+      db.all.blocks*,
+      (db.indexdiv* | db.indexentry* | db.segmentedlist)
+    }
+}
+div {
+  db.setindex.status.attribute = db.status.attribute
+  db.setindex.role.attribute = attribute role { text }
+  db.setindex.attlist =
+    db.setindex.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.setindex.status.attribute?
+    & db.index.type.attribute?
+  db.setindex.info = db._info
+  db.setindex =
+    
+    ## An index to a set of books
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:setindex"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element setindex {
+      db.setindex.attlist,
+      db.setindex.info,
+      db.all.blocks*,
+      (db.indexdiv* | db.indexentry*)
+    }
+}
+div {
+  db.indexdiv.status.attribute = db.status.attribute
+  db.indexdiv.role.attribute = attribute role { text }
+  db.indexdiv.attlist =
+    db.indexdiv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.indexdiv.status.attribute?
+  db.indexdiv.info = db._info.title.req
+  db.indexdiv =
+    
+    ## A division in an index
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:indexdiv"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element indexdiv {
+      db.indexdiv.attlist,
+      db.indexdiv.info,
+      db.all.blocks*,
+      (db.indexentry+ | db.segmentedlist)
+    }
+}
+div {
+  db.indexentry.role.attribute = attribute role { text }
+  db.indexentry.attlist =
+    db.indexentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.indexentry =
+    
+    ## An entry in an index
+    element indexentry {
+      db.indexentry.attlist,
+      db.primaryie,
+      (db.seeie | db.seealsoie)*,
+      (db.secondaryie, (db.seeie | db.seealsoie | db.tertiaryie)*)*
+    }
+}
+div {
+  db.primaryie.role.attribute = attribute role { text }
+  db.primaryie.attlist =
+    db.primaryie.role.attribute?
+    & db.common.attributes
+    & db.linkends.attribute?
+  db.primaryie =
+    
+    ## A primary term in an index entry, not in the text
+    element primaryie { db.primaryie.attlist, db.all.inlines* }
+}
+div {
+  db.secondaryie.role.attribute = attribute role { text }
+  db.secondaryie.attlist =
+    db.secondaryie.role.attribute?
+    & db.common.attributes
+    & db.linkends.attribute?
+  db.secondaryie =
+    
+    ## A secondary term in an index entry, rather than in the text
+    element secondaryie { db.secondaryie.attlist, db.all.inlines* }
+}
+div {
+  db.tertiaryie.role.attribute = attribute role { text }
+  db.tertiaryie.attlist =
+    db.tertiaryie.role.attribute?
+    & db.common.attributes
+    & db.linkends.attribute?
+  db.tertiaryie =
+    
+    ## A tertiary term in an index entry, rather than in the text
+    element tertiaryie { db.tertiaryie.attlist, db.all.inlines* }
+}
+div {
+  db.seeie.role.attribute = attribute role { text }
+  db.seeie.attlist =
+    db.seeie.role.attribute?
+    & db.common.attributes
+    & db.linkend.attribute?
+  db.seeie =
+    
+    ## A See
+    ## entry in an index, rather than in the text
+    element seeie { db.seeie.attlist, db.all.inlines* }
+}
+div {
+  db.seealsoie.role.attribute = attribute role { text }
+  db.seealsoie.attlist =
+    db.seealsoie.role.attribute?
+    & db.common.attributes
+    & db.linkends.attribute?
+  db.seealsoie =
+    
+    ## A See also
+    ##  entry in an index, rather than in the text
+    element seealsoie { db.seealsoie.attlist, db.all.inlines* }
+}
+db.toc.pagenum.attribute =
+  
+  ## Indicates the page on which this element occurs in some version of the printed document
+  attribute pagenum { text }
+div {
+  db.toc.role.attribute = attribute role { text }
+  db.toc.attlist =
+    db.toc.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.toc.info = db._info.title.only
+  db.toc =
+    
+    ## A table of contents
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:toc"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element toc {
+      db.toc.attlist,
+      db.toc.info,
+      db.all.blocks*,
+      (db.tocdiv | db.tocentry)*
+    }
+}
+div {
+  db.tocdiv.role.attribute = attribute role { text }
+  db.tocdiv.pagenum.attribute = db.toc.pagenum.attribute
+  db.tocdiv.attlist =
+    db.tocdiv.role.attribute?
+    & db.common.attributes
+    & db.tocdiv.pagenum.attribute?
+    & db.linkend.attribute?
+  db.tocdiv.info = db._info
+  db.tocdiv =
+    
+    ## A division in a table of contents
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:tocdiv"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element tocdiv {
+      db.tocdiv.attlist,
+      db.tocdiv.info,
+      db.all.blocks*,
+      (db.tocdiv | db.tocentry)+
+    }
+}
+div {
+  db.tocentry.role.attribute = attribute role { text }
+  db.tocentry.pagenum.attribute = db.toc.pagenum.attribute
+  db.tocentry.attlist =
+    db.tocentry.role.attribute?
+    & db.common.attributes
+    & db.tocentry.pagenum.attribute?
+    & db.linkend.attribute?
+  db.tocentry =
+    
+    ## A component title in a table of contents
+    element tocentry { db.tocentry.attlist, db.all.inlines* }
+}
+db.task.info = db._info.title.req
+div {
+  db.task.role.attribute = attribute role { text }
+  db.task.attlist =
+    db.task.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.task =
+    
+    ## A task to be completed
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:task"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element task {
+      db.task.attlist,
+      db.task.info,
+      db.tasksummary?,
+      db.taskprerequisites?,
+      db.procedure+,
+      db.example*,
+      db.taskrelated?
+    }
+}
+div {
+  db.tasksummary.role.attribute = attribute role { text }
+  db.tasksummary.attlist =
+    db.tasksummary.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.tasksummary.info = db._info.title.only
+  db.tasksummary =
+    
+    ## A summary of a task
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:tasksummary"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element tasksummary {
+      db.tasksummary.attlist, db.tasksummary.info, db.all.blocks+
+    }
+}
+div {
+  db.taskprerequisites.role.attribute = attribute role { text }
+  db.taskprerequisites.attlist =
+    db.taskprerequisites.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.taskprerequisites.info = db._info.title.only
+  db.taskprerequisites =
+    
+    ## The prerequisites for a task
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:taskprerequisites"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element taskprerequisites {
+      db.taskprerequisites.attlist,
+      db.taskprerequisites.info,
+      db.all.blocks+
+    }
+}
+div {
+  db.taskrelated.role.attribute = attribute role { text }
+  db.taskrelated.attlist =
+    db.taskrelated.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.taskrelated.info = db._info.title.only
+  db.taskrelated =
+    
+    ## Information related to a task
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:taskrelated"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element taskrelated {
+      db.taskrelated.attlist, db.taskrelated.info, db.all.blocks+
+    }
+}
+db.area.units.enumeration =
+  
+  ## Coordinates expressed as a pair of CALS graphic coordinates.
+  "calspair"
+  | 
+    ## Coordinates expressed as a line and column.
+    "linecolumn"
+  | 
+    ## Coordinates expressed as a pair of lines and columns.
+    "linecolumnpair"
+  | 
+    ## Coordinates expressed as a line range.
+    "linerange"
+db.area.units-enum.attribute =
+  
+  ## Identifies the units used in the coords attribute. The default units vary according to the type of callout specified: calspair
+  ##  for graphics and linecolumn
+  ##  for line-oriented elements.
+  attribute units { db.area.units.enumeration }?
+db.area.units-other.attributes =
+  
+  ## Indicates that non-standard units are used for this area
+  ## . In this case otherunits
+  ##  must be specified.
+  attribute units {
+    
+    ## Coordinates expressed in some non-standard units.
+    "other"
+  }?,
+  
+  ## Identifies the units used in the coords
+  ##  attribute when the units
+  ##  attribute is other
+  ## . This attribute is forbidden otherwise.
+  attribute otherunits { xsd:NMTOKEN }
+db.area.units.attribute =
+  db.area.units-enum.attribute | db.area.units-other.attributes
+div {
+  db.calloutlist.role.attribute = attribute role { text }
+  db.calloutlist.attlist =
+    db.calloutlist.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.calloutlist.info = db._info.title.only
+  db.calloutlist =
+    
+    ## A list of callout
+    ## s
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:calloutlist"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element calloutlist {
+      db.calloutlist.attlist,
+      db.calloutlist.info,
+      db.all.blocks*,
+      db.callout+
+    }
+}
+div {
+  db.callout.role.attribute = attribute role { text }
+  db.callout.arearefs.attribute =
+    
+    ## Identifies the areas described by this callout.
+    attribute arearefs { xsd:IDREFS }
+  db.callout.attlist =
+    db.callout.role.attribute?
+    & db.common.attributes
+    & db.callout.arearefs.attribute
+  db.callout =
+    
+    ## A called out
+    ##  description of a marked area
+    element callout { db.callout.attlist, db.all.blocks+ }
+}
+div {
+  db.programlistingco.role.attribute = attribute role { text }
+  db.programlistingco.attlist =
+    db.programlistingco.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.programlistingco.info = db._info.title.forbidden
+  db.programlistingco =
+    
+    ## A program listing with associated areas used in callouts
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:programlistingco"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element programlistingco {
+      db.programlistingco.attlist,
+      db.programlistingco.info,
+      db.areaspec,
+      db.programlisting,
+      db.calloutlist*
+    }
+}
+div {
+  db.areaspec.role.attribute = attribute role { text }
+  db.areaspec.attlist =
+    db.areaspec.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.area.units.attribute
+  db.areaspec =
+    
+    ## A collection of regions in a graphic or code example
+    element areaspec { db.areaspec.attlist, (db.area | db.areaset)+ }
+}
+div {
+  db.area.role.attribute = attribute role { text }
+  db.area.linkends.attribute =
+    
+    ## Point to the callout
+    ## s which refer to this area. (This provides bidirectional linking which may be useful in online presentation.)
+    attribute linkends { xsd:IDREFS }
+  db.area.label.attribute =
+    
+    ## Specifies an identifying number or string that may be used in presentation. The area label might be drawn on top of the figure, for example, at the position indicated by the coords attribute.
+    attribute label { text }
+  db.area.coords.attribute =
+    
+    ## Provides the coordinates of the area. The coordinates must be interpreted using the units
+    ##  specified.
+    attribute coords { text }
+  db.area.attlist =
+    db.area.role.attribute?
+    & db.common.idreq.attributes
+    & db.area.units.attribute
+    & (db.area.linkends.attribute | db.xlink.simple.link.attributes)?
+    & db.area.label.attribute?
+    & db.area.coords.attribute
+  db.area =
+    
+    ## A region defined for a callout in a graphic or code example
+    element area { db.area.attlist, db.alt? }
+}
+div {
+  # The only difference is that xml:id is optional
+  db.area.inareaset.attlist =
+    db.area.role.attribute?
+    & db.common.attributes
+    & db.area.units.attribute
+    & (db.area.linkends.attribute | db.xlink.simple.link.attributes)?
+    & db.area.label.attribute?
+    & db.area.coords.attribute
+  db.area.inareaset =
+    
+    ## A region defined for a callout in a graphic or code example
+    element area { db.area.inareaset.attlist, db.alt? }
+}
+div {
+  db.areaset.role.attribute = attribute role { text }
+  db.areaset.linkends.attribute = db.linkends.attribute
+  db.areaset.label.attribute = db.label.attribute
+  db.areaset.attlist =
+    db.areaset.role.attribute?
+    & db.common.idreq.attributes
+    & db.area.units.attribute
+    & (db.areaset.linkends.attribute | db.xlink.simple.link.attributes)?
+    & db.areaset.label.attribute?
+  db.areaset =
+    
+    ## A set of related areas in a graphic or code example
+    element areaset { db.areaset.attlist, db.area.inareaset+ }
+}
+div {
+  db.screenco.role.attribute = attribute role { text }
+  db.screenco.attlist =
+    db.screenco.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.screenco.info = db._info.title.forbidden
+  db.screenco =
+    
+    ## A screen with associated areas used in callouts
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:screenco"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element screenco {
+      db.screenco.attlist,
+      db.screenco.info,
+      db.areaspec,
+      db.screen,
+      db.calloutlist*
+    }
+}
+div {
+  db.imageobjectco.role.attribute = attribute role { text }
+  db.imageobjectco.attlist =
+    db.imageobjectco.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.imageobjectco.info = db._info.title.forbidden
+  db.imageobjectco =
+    
+    ## A wrapper for an image object with callouts
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:imageobjectco"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element imageobjectco {
+      db.imageobjectco.attlist,
+      db.imageobjectco.info,
+      db.areaspec,
+      db.imageobject+,
+      db.calloutlist*
+    }
+}
+div {
+  db.co.role.attribute = attribute role { text }
+  db.co.linkends.attribute = db.linkends.attribute
+  db.co.label.attribute = db.label.attribute
+  db.co.attlist =
+    db.co.role.attribute?
+    & db.common.idreq.attributes
+    & db.co.linkends.attribute?
+    & db.co.label.attribute?
+  db.co =
+    
+    ## The location of a callout embedded in text
+    element co { db.co.attlist, empty }
+}
+div {
+  db.coref.role.attribute = attribute role { text }
+  db.coref.label.attribute = db.label.attribute
+  db.coref.attlist =
+    db.coref.role.attribute?
+    & db.common.attributes
+    & db.linkend.attribute
+    & db.coref.label.attribute?
+  db.coref =
+    
+    ## A cross reference to a co
+    element coref { db.coref.attlist, empty }
+}
+div {
+  db.productionset.role.attribute = attribute role { text }
+  db.productionset.attlist =
+    db.productionset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.productionset.info = db._info.title.only
+  db.productionset =
+    
+    ## A set of EBNF productions
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:productionset"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element productionset {
+      db.productionset.attlist,
+      db.productionset.info,
+      (db.production | db.productionrecap)+
+    }
+}
+div {
+  db.production.role.attribute = attribute role { text }
+  db.production.attlist =
+    db.production.role.attribute?
+    & db.common.idreq.attributes
+    & db.common.linking.attributes
+  db.production =
+    
+    ## A production in a set of EBNF productions
+    element production {
+      db.production.attlist, db.lhs, db.rhs+, db.constraint*
+    }
+}
+div {
+  db.lhs.role.attribute = attribute role { text }
+  db.lhs.attlist =
+    db.lhs.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.lhs =
+    
+    ## The left-hand side of an EBNF production
+    element lhs { db.lhs.attlist, text }
+}
+div {
+  db.rhs.role.attribute = attribute role { text }
+  db.rhs.attlist =
+    db.rhs.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.rhs =
+    
+    ## The right-hand side of an EBNF production
+    element rhs {
+      db.rhs.attlist,
+      (text | db.nonterminal | db.lineannotation | db.sbr)*
+    }
+}
+div {
+  db.nonterminal.role.attribute = attribute role { text }
+  db.nonterminal.def.attribute =
+    
+    ## Specifies a URI that points to a production
+    ## where the nonterminal
+    ##  is defined
+    attribute def { xsd:anyURI }
+  db.nonterminal.attlist =
+    db.nonterminal.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.nonterminal.def.attribute
+  db.nonterminal =
+    
+    ## A non-terminal in an EBNF production
+    element nonterminal { db.nonterminal.attlist, text }
+}
+div {
+  db.constraint.role.attribute = attribute role { text }
+  db.constraint.attlist =
+    db.constraint.role.attribute?
+    & db.common.attributes
+    & db.common.req.linking.attributes
+  db.constraint =
+    
+    ## A constraint in an EBNF production
+    element constraint { db.constraint.attlist, empty }
+}
+div {
+  db.productionrecap.role.attribute = attribute role { text }
+  db.productionrecap.attlist =
+    db.productionrecap.role.attribute?
+    & db.common.attributes
+    & db.common.req.linking.attributes
+  db.productionrecap =
+    
+    ## A cross-reference to an EBNF production
+    element productionrecap { db.productionrecap.attlist, empty }
+}
+div {
+  db.constraintdef.role.attribute = attribute role { text }
+  db.constraintdef.attlist =
+    db.constraintdef.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.constraintdef.info = db._info.title.only
+  db.constraintdef =
+    
+    ## The definition of a constraint in an EBNF production
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:constraintdef"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element constraintdef {
+      db.constraintdef.attlist, db.constraintdef.info, db.all.blocks+
+    }
+}
+db.char.attribute =
+  
+  ## Specifies the alignment character when align
+  ##  is set to char
+  ## .
+  attribute char { text }
+db.charoff.attribute =
+  
+  ## Specifies the percentage of the column's total width that should appear to the left of the first occurance of the character identified in char
+  ##  when align
+  ##  is set to char
+  ## .
+  attribute charoff {
+    xsd:decimal { minExclusive = "0" maxExclusive = "100" }
+  }
+db.frame.attribute =
+  
+  ## Specifies how the table is to be framed. Note that there is no way to obtain a border on only the starting edge (left, in left-to-right writing systems) of the table.
+  attribute frame {
+    
+    ## Frame all four sides of the table. In some environments with limited control over table border formatting, such as HTML, this may imply additional borders.
+    "all"
+    | 
+      ## Frame only the bottom of the table.
+      "bottom"
+    | 
+      ## Place no border on the table. In some environments with limited control over table border formatting, such as HTML, this may disable other borders as well.
+      "none"
+    | 
+      ## Frame the left and right sides of the table.
+      "sides"
+    | 
+      ## Frame the top of the table.
+      "top"
+    | 
+      ## Frame the top and bottom of the table.
+      "topbot"
+  }
+db.colsep.attribute =
+  
+  ## Specifies the presence or absence of the column separator
+  attribute colsep {
+    
+    ## No column separator rule.
+    "0"
+    | 
+      ## Provide a column separator rule on the right
+      "1"
+  }
+db.rowsep.attribute =
+  
+  ## Specifies the presence or absence of the row separator
+  attribute rowsep {
+    
+    ## No row separator rule.
+    "0"
+    | 
+      ## Provide a row separator rule below
+      "1"
+  }
+db.orient.attribute =
+  
+  ## Specifies the orientation of the table
+  attribute orient {
+    
+    ## 90 degrees counter-clockwise from the rest of the text flow.
+    "land"
+    | 
+      ## The same orientation as the rest of the text flow.
+      "port"
+  }
+db.tabstyle.attribute =
+  
+  ## Specifies the table style
+  attribute tabstyle { text }
+db.rowheader.attribute =
+  
+  ## Indicates whether or not the entries in the first column should be considered row headers
+  attribute rowheader {
+    
+    ## Indicates that entries in the first column of the table are functionally row headers (analogous to the way that a thead provides column headers).
+    "firstcol"
+    | 
+      ## Indicates that entries in the first column have no special significance with respect to column headers.
+      "norowheader"
+  }
+db.align.attribute =
+  
+  ## Specifies the horizontal alignment of text in an entry.
+  attribute align {
+    
+    ## Centered.
+    "center"
+    | 
+      ## Aligned on a particular character.
+      "char"
+    | 
+      ## Left and right justified.
+      "justify"
+    | 
+      ## Left justified.
+      "left"
+    | 
+      ## Right justified.
+      "right"
+  }
+db.valign.attribute =
+  
+  ## Specifies the vertical alignment of text in an entry.
+  attribute valign {
+    
+    ## Aligned on the bottom of the entry.
+    "bottom"
+    | 
+      ## Aligned in the middle.
+      "middle"
+    | 
+      ## Aligned at the top of the entry.
+      "top"
+  }
+db.specify-col-by-colname.attributes =
+  
+  ## Specifies a column specification by name.
+  attribute colname { text }
+db.specify-col-by-namest.attributes =
+  
+  ## Specifies a starting column by name.
+  attribute namest { text }
+db.specify-span-by-spanspec.attributes =
+  
+  ## Specifies a span by name.
+  attribute spanname { text }
+db.specify-span-directly.attributes =
+  
+  ## Specifies a starting column by name.
+  attribute namest { text }
+  & 
+    ## Specifies an ending column by name.
+    attribute nameend { text }
+db.column-spec.attributes =
+  db.specify-col-by-colname.attributes
+  | db.specify-col-by-namest.attributes
+  | db.specify-span-by-spanspec.attributes
+  | db.specify-span-directly.attributes
+db.colname.attribute =
+  
+  ## Provides a name for a column specification.
+  attribute colname { text }
+db.spanname.attribute =
+  
+  ## Provides a name for a span specification.
+  attribute spanname { text }
+div {
+  db.tgroup.role.attribute = attribute role { text }
+  db.tgroup.tgroupstyle.attribute =
+    
+    ## Additional style information for downstream processing; typically the name of a style.
+    attribute tgroupstyle { text }
+  db.tgroup.cols.attribute =
+    
+    ## The number of columns in the table. Must be an integer greater than zero.
+    attribute cols { xsd:positiveInteger }
+  db.tgroup.attlist =
+    db.tgroup.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.char.attribute?
+    & db.charoff.attribute?
+    & db.tgroup.tgroupstyle.attribute?
+    & db.tgroup.cols.attribute
+    & db.colsep.attribute?
+    & db.rowsep.attribute?
+    & db.align.attribute?
+  db.tgroup =
+    
+    ## A wrapper for the main content of a table, or part of a table
+    element tgroup {
+      db.tgroup.attlist,
+      db.colspec*,
+      db.spanspec*,
+      db.cals.thead?,
+      db.cals.tfoot?,
+      db.cals.tbody
+    }
+}
+div {
+  db.colspec.role.attribute = attribute role { text }
+  db.colspec.colnum.attribute =
+    
+    ## The number of the column to which this specification applies. Must be greater than any preceding column number. Defaults to one more than the number of the preceding column, if there is one, or one.
+    attribute colnum { xsd:positiveInteger }
+  db.colspec.colwidth.attribute =
+    
+    ## Specifies the width of the column.
+    attribute colwidth { text }
+  db.colspec.attlist =
+    db.colspec.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.colspec.colnum.attribute?
+    & db.char.attribute?
+    & db.colsep.attribute?
+    & db.colspec.colwidth.attribute?
+    & db.charoff.attribute?
+    & db.colname.attribute?
+    & db.rowsep.attribute?
+    & db.align.attribute?
+  db.colspec =
+    
+    ## Specifications for a column in a table
+    element colspec { db.colspec.attlist, empty }
+}
+div {
+  db.spanspec.role.attribute = attribute role { text }
+  db.spanspec.namest.attribute =
+    
+    ## Specifies a starting column by name.
+    attribute namest { text }
+  db.spanspec.nameend.attribute =
+    
+    ## Specifies an ending column by name.
+    attribute nameend { text }
+  db.spanspec.attlist =
+    db.spanspec.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.spanname.attribute
+    & db.spanspec.namest.attribute
+    & db.spanspec.nameend.attribute
+    & db.char.attribute?
+    & db.colsep.attribute?
+    & db.charoff.attribute?
+    & db.rowsep.attribute?
+    & db.align.attribute?
+  db.spanspec =
+    
+    ## Formatting information for a spanned column in a table
+    element spanspec { db.spanspec.attlist, empty }
+}
+div {
+  db.cals.thead.role.attribute = attribute role { text }
+  db.cals.thead.attlist =
+    db.cals.thead.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.valign.attribute?
+  db.cals.thead =
+    
+    ## A table header consisting of one or more rows
+    element thead { db.cals.thead.attlist, db.colspec*, db.row+ }
+}
+div {
+  db.cals.tfoot.role.attribute = attribute role { text }
+  db.cals.tfoot.attlist =
+    db.cals.tfoot.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.valign.attribute?
+  db.cals.tfoot =
+    
+    ## A table footer consisting of one or more rows
+    element tfoot { db.cals.tfoot.attlist, db.colspec*, db.row+ }
+}
+div {
+  db.cals.tbody.role.attribute = attribute role { text }
+  db.cals.tbody.attlist =
+    db.cals.tbody.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.valign.attribute?
+  db.cals.tbody =
+    
+    ## A wrapper for the rows of a table or informal table
+    element tbody { db.cals.tbody.attlist, db.row+ }
+}
+div {
+  db.row.role.attribute = attribute role { text }
+  db.row.attlist =
+    db.row.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.rowsep.attribute?
+    & db.valign.attribute?
+  db.row =
+    
+    ## A row in a table
+    element row { db.row.attlist, (db.entry | db.entrytbl)+ }
+}
+div {
+  db.entry.role.attribute = attribute role { text }
+  db.entry.morerows.attribute =
+    
+    ## Specifies the number of additional rows which this entry occupies. Defaults to zero.
+    attribute morerows { xsd:integer }
+  db.entry.rotate.attribute =
+    
+    ## Specifies the rotation of this entry. A value of 1 (true) rotates the cell 90 degrees counter-clockwise. A value of 0 (false) leaves the cell unrotated.
+    attribute rotate {
+      
+      ## Do not rotate the cell.
+      "0"
+      | 
+        ## Rotate the cell 90 degrees counter-clockwise.
+        "1"
+    }
+  db.entry.attlist =
+    db.entry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.valign.attribute?
+    & db.char.attribute?
+    & db.colsep.attribute?
+    & db.charoff.attribute?
+    & db.entry.morerows.attribute?
+    & db.column-spec.attributes?
+    & db.rowsep.attribute?
+    & db.entry.rotate.attribute?
+    & db.align.attribute?
+  db.entry =
+    
+    ## A cell in a table
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:entry"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of entry"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:entry"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:informaltable)"
+            "informaltable must not occur among the children or descendants of entry"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element entry {
+      db.entry.attlist, (db.all.inlines* | db.all.blocks*)
+    }
+}
+div {
+  db.entrytbl.role.attribute = attribute role { text }
+  db.entrytbl.tgroupstyle.attribute =
+    
+    ## Additional style information for downstream processing; typically the name of a style.
+    attribute tgroupstyle { text }
+  db.entrytbl.cols.attribute =
+    
+    ## The number of columns in the entry table. Must be an integer greater than zero.
+    attribute cols { xsd:positiveInteger }
+  db.entrytbl.attlist =
+    db.entrytbl.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.char.attribute?
+    & db.charoff.attribute?
+    & db.column-spec.attributes?
+    & db.entrytbl.tgroupstyle.attribute?
+    & db.entrytbl.cols.attribute?
+    & db.colsep.attribute?
+    & db.rowsep.attribute?
+    & db.align.attribute?
+  db.entrytbl =
+    
+    ## A subtable appearing in place of an entry in a table
+    element entrytbl {
+      db.entrytbl.attlist,
+      db.colspec*,
+      db.spanspec*,
+      db.cals.entrytbl.thead?,
+      db.cals.entrytbl.tbody
+    }
+}
+div {
+  db.cals.entrytbl.thead.role.attribute = attribute role { text }
+  db.cals.entrytbl.thead.attlist =
+    db.cals.entrytbl.thead.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.valign.attribute?
+  db.cals.entrytbl.thead =
+    
+    ## A table header consisting of one or more rows
+    element thead {
+      db.cals.entrytbl.thead.attlist, db.colspec*, db.entrytbl.row+
+    }
+}
+div {
+  db.cals.entrytbl.tbody.role.attribute = attribute role { text }
+  db.cals.entrytbl.tbody.attlist =
+    db.cals.entrytbl.tbody.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.valign.attribute?
+  db.cals.entrytbl.tbody =
+    
+    ## A wrapper for the rows of a table or informal table
+    element tbody { db.cals.entrytbl.tbody.attlist, db.entrytbl.row+ }
+}
+div {
+  db.entrytbl.row.role.attribute = attribute role { text }
+  db.entrytbl.row.attlist =
+    db.entrytbl.row.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.rowsep.attribute?
+    & db.valign.attribute?
+  db.entrytbl.row =
+    
+    ## A row in a table
+    element row { db.entrytbl.row.attlist, db.entry+ }
+}
+div {
+  db.cals.table.role.attribute = attribute role { text }
+  db.cals.table.label.attribute = db.label.attribute
+  db.cals.table.attlist =
+    db.cals.table.role.attribute?
+    & db.cals.table.label.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.tabstyle.attribute?
+    & db.floatstyle.attribute?
+    & db.orient.attribute?
+    & db.colsep.attribute?
+    & db.rowsep.attribute?
+    & db.frame.attribute?
+    & db.pgwide.attribute?
+    & 
+      ## Indicates if the short or long title should be used in a List of Tables
+      attribute shortentry {
+        
+        ## Indicates that the full title should be used.
+        "0"
+        | 
+          ## Indicates that the short short title (titleabbrev) should be used.
+          "1"
+      }?
+    & 
+      ## Indicates if the table should appear in a List of Tables
+      attribute tocentry {
+        
+        ## Indicates that the table should not occur in the List of Tables.
+        "0"
+        | 
+          ## Indicates that the table should appear in the List of Tables.
+          "1"
+      }?
+    & db.rowheader.attribute?
+  db.cals.table.info = db._info.title.onlyreq
+  db.cals.table =
+    
+    ## A formal table in a document
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element table {
+      db.cals.table.attlist,
+      db.cals.table.info,
+      (db.alt? & db.indexing.inlines* & db.textobject*),
+      (db.mediaobject+ | db.tgroup+),
+      db.caption?
+    }
+}
+div {
+  db.cals.informaltable.role.attribute = attribute role { text }
+  db.cals.informaltable.attlist =
+    db.cals.informaltable.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.tabstyle.attribute?
+    & db.floatstyle.attribute?
+    & db.orient.attribute?
+    & db.colsep.attribute?
+    & db.rowsep.attribute?
+    & db.frame.attribute?
+    & db.pgwide.attribute?
+    & db.rowheader.attribute?
+  db.cals.informaltable.info = db._info.title.forbidden
+  db.cals.informaltable =
+    
+    ## A table without a title
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:informaltable"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element informaltable {
+      db.cals.informaltable.attlist,
+      db.cals.informaltable.info,
+      (db.alt? & db.indexing.inlines* & db.textobject*),
+      (db.mediaobject+ | db.tgroup+),
+      db.caption?
+    }
+}
+db.html.coreattrs =
+  
+  ## This attribute assigns a class name or set of class names to an element. Any number of elements may be assigned the same class name or names. Multiple class names must be separated by white space characters.
+  attribute class { text }?
+  & 
+    ## This attribute specifies style information for the current element.
+    attribute style { text }?
+  & 
+    ## This attribute offers advisory information about the element for which it is set.
+    attribute title { text }?
+db.html.i18n =
+  
+  ## This attribute specifies the base language of an element's attribute values and text content. The default value of this attribute is unknown.
+  attribute lang { text }?
+db.html.events =
+  
+  ## Occurs when the pointing device button is clicked over an element.
+  attribute onclick { text }?
+  & 
+    ## Occurs when the pointing device button is double clicked over an element.
+    attribute ondblclick { text }?
+  & 
+    ## Occurs when the pointing device button is pressed over an element.
+    attribute onmousedown { text }?
+  & 
+    ## Occurs when the pointing device button is released over an element.
+    attribute onmouseup { text }?
+  & 
+    ## Occurs when the pointing device is moved onto an element.
+    attribute onmouseover { text }?
+  & 
+    ## Occurs when the pointing device is moved while it is over an element.
+    attribute onmousemove { text }?
+  & 
+    ## Occurs when the pointing device is moved away from an element.
+    attribute onmouseout { text }?
+  & 
+    ## Occurs when a key is pressed and released over an element.
+    attribute onkeypress { text }?
+  & 
+    ## Occurs when a key is pressed down over an element.
+    attribute onkeydown { text }?
+  & 
+    ## Occurs when a key is released over an element.
+    attribute onkeyup { text }?
+db.html.attrs =
+  db.common.attributes
+  & db.html.coreattrs
+  & db.html.i18n
+  & db.html.events
+db.html.cellhalign =
+  
+  ## Specifies the alignment of data and the justification of text in a cell.
+  attribute align {
+    
+    ## Left-flush data/Left-justify text. This is the default value for table data.
+    "left"
+    | 
+      ## Center data/Center-justify text. This is the default value for table headers.
+      "center"
+    | 
+      ## Right-flush data/Right-justify text.
+      "right"
+    | 
+      ## Double-justify text.
+      "justify"
+    | 
+      ## Align text around a specific character. If a user agent doesn't support character alignment, behavior in the presence of this value is unspecified.
+      "char"
+  }?
+  & 
+    ## This attribute specifies a single character within a text fragment to act as an axis for alignment. The default value for this attribute is the decimal point character for the current language as set by the lang attribute (e.g., the period in English and the comma in French). User agents are not required to support this attribute.
+    attribute char { text }?
+  & 
+    ## When present, this attribute specifies the offset to the first occurrence of the alignment character on each line. If a line doesn't include the alignment character, it should be horizontally shifted to end at the alignment position. When charoff is used to set the offset of an alignment character, the direction of offset is determined by the current text direction (set by the dir attribute). In left-to-right texts (the default), offset is from the left margin. In right-to-left texts, offset is from the right margin. User agents are not required to support this attribute.
+    attribute charoff {
+      xsd:integer >> a:documentation [ "An explicit offset." ]
+      | xsd:string { pattern = "[0-9]+%" }
+        >> a:documentation [ "A percentage offset." ]
+    }?
+db.html.cellvalign =
+  
+  ## Specifies the vertical position of data within a cell.
+  attribute valign {
+    
+    ## Cell data is flush with the top of the cell.
+    "top"
+    | 
+      ## Cell data is centered vertically within the cell. This is the default value.
+      "middle"
+    | 
+      ## Cell data is flush with the bottom of the cell.
+      "bottom"
+    | 
+      ## All cells in the same row as a cell whose valign attribute has this value should have their textual data positioned so that the first text line occurs on a baseline common to all cells in the row. This constraint does not apply to subsequent text lines in these cells.
+      "baseline"
+  }?
+db.html.table.attributes =
+  
+  ## Provides a summary of the table's purpose and structure for user agents rendering to non-visual media such as speech and Braille.
+  attribute summary { text }?
+  & 
+    ## Specifies the desired width of the entire table and is intended for visual user agents. When the value is a percentage value, the value is relative to the user agent's available horizontal space. In the absence of any width specification, table width is determined by the user agent.
+    attribute width {
+      xsd:integer >> a:documentation [ "An explicit width." ]
+      | xsd:string { pattern = "[0-9]+%" }
+        >> a:documentation [ "A percentage width." ]
+    }?
+  & 
+    ## Specifies the width (in pixels only) of the frame around a table.
+    attribute border { xsd:nonNegativeInteger }?
+  & 
+    ## Specifies which sides of the frame surrounding a table will be visible.
+    attribute frame {
+      
+      ## No sides. This is the default value.
+      "void"
+      | 
+        ## The top side only.
+        "above"
+      | 
+        ## The bottom side only.
+        "below"
+      | 
+        ## The top and bottom sides only.
+        "hsides"
+      | 
+        ## The left-hand side only.
+        "lhs"
+      | 
+        ## The right-hand side only.
+        "rhs"
+      | 
+        ## The right and left sides only.
+        "vsides"
+      | 
+        ## All four sides.
+        "box"
+      | 
+        ## All four sides.
+        "border"
+    }?
+  & 
+    ## Specifies which rules will appear between cells within a table. The rendering of rules is user agent dependent.
+    attribute rules {
+      
+      ## No rules. This is the default value.
+      "none"
+      | 
+        ## Rules will appear between row groups (see thead, tfoot, and tbody) and column groups (see colgroup and col) only.
+        "groups"
+      | 
+        ## Rules will appear between rows only.
+        "rows"
+      | 
+        ## Rules will appear between columns only.
+        "cols"
+      | 
+        ## Rules will appear between all rows and columns.
+        "all"
+    }?
+  & 
+    ## Specifies how much space the user agent should leave between the left side of the table and the left-hand side of the leftmost column, the top of the table and the top side of the topmost row, and so on for the right and bottom of the table. The attribute also specifies the amount of space to leave between cells.
+    attribute cellspacing {
+      xsd:integer >> a:documentation [ "An explicit spacing." ]
+      | xsd:string { pattern = "[0-9]+%" }
+        >> a:documentation [ "A percentage spacing." ]
+    }?
+  & 
+    ## Specifies the amount of space between the border of the cell and its contents. If the value of this attribute is a pixel length, all four margins should be this distance from the contents. If the value of the attribute is a percentage length, the top and bottom margins should be equally separated from the content based on a percentage of the available vertical space, and the left and right margins should be equally separated from the content based on a percentage of the available horizontal space.
+    attribute cellpadding {
+      xsd:integer >> a:documentation [ "An explicit padding." ]
+      | xsd:string { pattern = "[0-9]+%" }
+        >> a:documentation [ "A percentage padding." ]
+    }?
+db.html.tablecell.attributes =
+  
+  ## Provides an abbreviated form of the cell's content and may be rendered by user agents when appropriate in place of the cell's content. Abbreviated names should be short since user agents may render them repeatedly. For instance, speech synthesizers may render the abbreviated headers relating to a particular cell before rendering that cell's content.
+  attribute abbr { text }?
+  & 
+    ## This attribute may be used to place a cell into conceptual categories that can be considered to form axes in an n-dimensional space. User agents may give users access to these categories (e.g., the user may query the user agent for all cells that belong to certain categories, the user agent may present a table in the form of a table of contents, etc.). Please consult an HTML reference for more details.
+    attribute axis { text }?
+  & 
+    ## Specifies the list of header cells that provide header information for the current data cell. The value of this attribute is a space-separated list of cell names; those cells must be named by setting their id attribute. Authors generally use the headers attribute to help non-visual user agents render header information about data cells (e.g., header information is spoken prior to the cell data), but the attribute may also be used in conjunction with style sheets.
+    attribute headers { text }?
+  & 
+    ## Specifies the set of data cells for which the current header cell provides header information. This attribute may be used in place of the headers attribute, particularly for simple tables.
+    attribute scope {
+      
+      ## The current cell provides header information for the rest of the row that contains it
+      "row"
+      | 
+        ## The current cell provides header information for the rest of the column that contains it.
+        "col"
+      | 
+        ## The header cell provides header information for the rest of the row group that contains it.
+        "rowgroup"
+      | 
+        ## The header cell provides header information for the rest of the column group that contains it.
+        "colgroup"
+    }?
+  & 
+    ## Specifies the number of rows spanned by the current cell. The default value of this attribute is one (1
+    ## ). The value zero (0
+    ## ) means that the cell spans all rows from the current row to the last row of the table section (thead
+    ## , tbody
+    ## , or tfoot
+    ## ) in which the cell is defined.
+    attribute rowspan { xsd:nonNegativeInteger }?
+  & 
+    ## Specifies the number of columns spanned by the current cell. The default value of this attribute is one (1
+    ## ). The value zero (0
+    ## ) means that the cell spans all columns from the current column to the last column of the column group (colgroup
+    ## ) in which the cell is defined.
+    attribute colspan { xsd:nonNegativeInteger }?
+db.html.table.info = db._info.title.forbidden
+db.html.table.model =
+  db.html.table.info?,
+  db.html.caption,
+  (db.html.col* | db.html.colgroup*),
+  db.html.thead?,
+  db.html.tfoot?,
+  (db.html.tbody+ | db.html.tr+)
+db.html.informaltable.info = db._info.title.forbidden
+db.html.informaltable.model =
+  db.html.informaltable.info?,
+  (db.html.col* | db.html.colgroup*),
+  db.html.thead?,
+  db.html.tfoot?,
+  (db.html.tbody+ | db.html.tr+)
+div {
+  db.html.table.role.attribute = attribute role { text }
+  db.html.table.label.attribute = db.label.attribute
+  db.html.table.attlist =
+    db.html.attrs
+    & db.html.table.attributes
+    & db.html.table.role.attribute?
+    & db.html.table.label.attribute?
+    & db.orient.attribute?
+    & db.pgwide.attribute?
+    & db.tabstyle.attribute?
+    & db.floatstyle.attribute?
+  db.html.table =
+    
+    ## A formal (captioned) HTML table in a document
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of table"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:table"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element table { db.html.table.attlist, db.html.table.model }
+}
+div {
+  db.html.informaltable.role.attribute = attribute role { text }
+  db.html.informaltable.label.attribute = db.label.attribute
+  db.html.informaltable.attlist =
+    db.html.attrs
+    & db.html.table.attributes
+    & db.html.informaltable.role.attribute?
+    & db.html.informaltable.label.attribute?
+    & db.orient.attribute?
+    & db.pgwide.attribute?
+    & db.tabstyle.attribute?
+    & db.floatstyle.attribute?
+  db.html.informaltable =
+    
+    ## An HTML table without a title
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:informaltable"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element informaltable {
+      db.html.informaltable.attlist, db.html.informaltable.model
+    }
+}
+div {
+  db.html.caption.attlist = db.html.attrs
+  db.html.caption =
+    
+    ## An HTML table caption
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:sidebar)"
+            "sidebar must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:task)"
+            "task must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of caption"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:caption"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element caption { db.html.caption.attlist, db.all.inlines* }
+}
+div {
+  db.html.col.attlist =
+    db.html.attrs
+    & 
+      ## This attribute, whose value must be an integer > 0, specifies the number of columns spanned
+      ##  by the col
+      ##  element; the col
+      ##  element shares its attributes with all the columns it spans. The default value for this attribute is 1 (i.e., a single column). If the span attribute is set to N > 1, the current col
+      ##  element shares its attributes with the next N-1 columns.
+      attribute span { xsd:nonNegativeInteger }?
+    & 
+      ## Specifies a default width for each column spanned by the current col
+      ##  element. It has the same meaning as the width
+      ##  attribute for the colgroup
+      ##  element and overrides it.
+      attribute width { text }?
+    & db.html.cellhalign
+    & db.html.cellvalign
+  db.html.col =
+    
+    ## Specifications for a column in an HTML table
+    element col { db.html.col.attlist, empty }
+}
+div {
+  db.html.colgroup.attlist =
+    db.html.attrs
+    & 
+      ## This attribute, which must be an integer > 0, specifies the number of columns in a column group. In the absence of a span attribute, each colgroup
+      ##  defines a column group containing one column. If the span attribute is set to N > 0, the current colgroup
+      ##  element defines a column group containing N columns. User agents must ignore this attribute if the colgroup
+      ##  element contains one or more col
+      ##  elements.
+      attribute span { xsd:nonNegativeInteger }?
+    & 
+      ## This attribute specifies a default width for each column in the current column group. In addition to the standard pixel, percentage, and relative values, this attribute allows the special form 0*
+      ##  (zero asterisk) which means that the width of the each column in the group should be the minimum width necessary to hold the column's contents. This implies that a column's entire contents must be known before its width may be correctly computed. Authors should be aware that specifying 0*
+      ##  will prevent visual user agents from rendering a table incrementally. This attribute is overridden for any column in the column group whose width is specified via a col
+      ##  element.
+      attribute width { text }?
+    & db.html.cellhalign
+    & db.html.cellvalign
+  db.html.colgroup =
+    
+    ## A group of columns in an HTML table
+    element colgroup { db.html.colgroup.attlist, db.html.col* }
+}
+div {
+  db.html.thead.attlist =
+    db.html.attrs & db.html.cellhalign & db.html.cellvalign
+  db.html.thead =
+    
+    ## A table header consisting of one or more rows in an HTML table
+    element thead { db.html.thead.attlist, db.html.tr+ }
+}
+div {
+  db.html.tfoot.attlist =
+    db.html.attrs & db.html.cellhalign & db.html.cellvalign
+  db.html.tfoot =
+    
+    ## A table footer consisting of one or more rows in an HTML table
+    element tfoot { db.html.tfoot.attlist, db.html.tr+ }
+}
+div {
+  db.html.tbody.attlist =
+    db.html.attrs & db.html.cellhalign & db.html.cellvalign
+  db.html.tbody =
+    
+    ## A wrapper for the rows of an HTML table or informal HTML table
+    element tbody { db.html.tbody.attlist, db.html.tr+ }
+}
+div {
+  db.html.tr.attlist =
+    db.html.attrs & db.html.cellhalign & db.html.cellvalign
+  db.html.tr =
+    
+    ## A row in an HTML table
+    element tr { db.html.tr.attlist, (db.html.th | db.html.td)+ }
+}
+div {
+  db.html.th.attlist =
+    db.html.attrs
+    & db.html.tablecell.attributes
+    & db.html.cellhalign
+    & db.html.cellvalign
+  db.html.th =
+    
+    ## A table header entry in an HTML table
+    element th {
+      db.html.th.attlist, (db.all.inlines* | db.all.blocks*)
+    }
+}
+div {
+  db.html.td.attlist =
+    db.html.attrs
+    & db.html.tablecell.attributes
+    & db.html.cellhalign
+    & db.html.cellvalign
+  db.html.td =
+    
+    ## A table entry in an HTML table
+    element td {
+      db.html.td.attlist, (db.all.inlines* | db.all.blocks*)
+    }
+}
+div {
+  db.msgset.role.attribute = attribute role { text }
+  db.msgset.attlist =
+    db.msgset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgset.info = db._info.title.only
+  db.msgset =
+    
+    ## A detailed set of messages, usually error messages
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:msgset"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element msgset {
+      db.msgset.attlist,
+      db.msgset.info,
+      (db.msgentry+ | db.simplemsgentry+)
+    }
+}
+div {
+  db.msgentry.role.attribute = attribute role { text }
+  db.msgentry.attlist =
+    db.msgentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgentry =
+    
+    ## A wrapper for an entry in a message set
+    element msgentry {
+      db.msgentry.attlist, db.msg+, db.msginfo?, db.msgexplan*
+    }
+}
+div {
+  db.simplemsgentry.role.attribute = attribute role { text }
+  db.simplemsgentry.msgaud.attribute =
+    
+    ## The audience to which the message relevant
+    attribute msgaud { text }
+  db.simplemsgentry.msgorig.attribute =
+    
+    ## The origin of the message
+    attribute msgorig { text }
+  db.simplemsgentry.msglevel.attribute =
+    
+    ## The level of importance or severity of a message
+    attribute msglevel { text }
+  db.simplemsgentry.attlist =
+    db.simplemsgentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.simplemsgentry.msgaud.attribute?
+    & db.simplemsgentry.msgorig.attribute?
+    & db.simplemsgentry.msglevel.attribute?
+  db.simplemsgentry =
+    
+    ## A wrapper for a simpler entry in a message set
+    element simplemsgentry {
+      db.simplemsgentry.attlist, db.msgtext, db.msgexplan+
+    }
+}
+div {
+  db.msg.role.attribute = attribute role { text }
+  db.msg.attlist =
+    db.msg.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msg.info = db._info.title.only
+  db.msg =
+    
+    ## A message in a message set
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:msg"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element msg {
+      db.msg.attlist, db.msg.info, db.msgmain, (db.msgsub | db.msgrel)*
+    }
+}
+div {
+  db.msgmain.role.attribute = attribute role { text }
+  db.msgmain.attlist =
+    db.msgmain.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgmain.info = db._info.title.only
+  db.msgmain =
+    
+    ## The primary component of a message in a message set 
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:msgmain"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element msgmain { db.msgmain.attlist, db.msgmain.info, db.msgtext }
+}
+div {
+  db.msgsub.role.attribute = attribute role { text }
+  db.msgsub.attlist =
+    db.msgsub.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgsub.info = db._info.title.only
+  db.msgsub =
+    
+    ## A subcomponent of a message in a message set
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:msgsub"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element msgsub { db.msgsub.attlist, db.msgsub.info, db.msgtext }
+}
+div {
+  db.msgrel.role.attribute = attribute role { text }
+  db.msgrel.attlist =
+    db.msgrel.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgrel.info = db._info.title.only
+  db.msgrel =
+    
+    ## A related component of a message in a message set
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:msgrel"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element msgrel { db.msgrel.attlist, db.msgrel.info, db.msgtext }
+}
+div {
+  db.msgtext.role.attribute = attribute role { text }
+  db.msgtext.attlist =
+    db.msgtext.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgtext =
+    
+    ## The actual text of a message component in a message set
+    element msgtext { db.msgtext.attlist, db.all.blocks+ }
+}
+div {
+  db.msginfo.role.attribute = attribute role { text }
+  db.msginfo.attlist =
+    db.msginfo.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msginfo =
+    
+    ## Information about a message in a message set
+    element msginfo {
+      db.msginfo.attlist, (db.msglevel | db.msgorig | db.msgaud)*
+    }
+}
+div {
+  db.msglevel.role.attribute = attribute role { text }
+  db.msglevel.attlist =
+    db.msglevel.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msglevel =
+    
+    ## The level of importance or severity of a message in a message set
+    element msglevel { db.msglevel.attlist, db._text }
+}
+div {
+  db.msgorig.role.attribute = attribute role { text }
+  db.msgorig.attlist =
+    db.msgorig.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgorig =
+    
+    ## The origin of a message in a message set
+    element msgorig { db.msgorig.attlist, db._text }
+}
+div {
+  db.msgaud.role.attribute = attribute role { text }
+  db.msgaud.attlist =
+    db.msgaud.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgaud =
+    
+    ## The audience to which a message in a message set is relevant
+    element msgaud { db.msgaud.attlist, db._text }
+}
+div {
+  db.msgexplan.role.attribute = attribute role { text }
+  db.msgexplan.attlist =
+    db.msgexplan.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.msgexplan.info = db._info.title.only
+  db.msgexplan =
+    
+    ## Explanatory material relating to a message in a message set
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:msgexplan"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element msgexplan {
+      db.msgexplan.attlist, db.msgexplan.info, db.all.blocks+
+    }
+}
+div {
+  db.qandaset.role.attribute = attribute role { text }
+  db.qandaset.defaultlabel.enumeration =
+    
+    ## No labels
+    "none"
+    | 
+      ## Numeric labels
+      "number"
+    | 
+      ## "Q:" and "A:" labels
+      "qanda"
+  db.qandaset.defaultlabel.attribute =
+    
+    ## Specifies the default labelling
+    attribute defaultlabel { db.qandaset.defaultlabel.enumeration }
+  db.qandaset.attlist =
+    db.qandaset.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.qandaset.defaultlabel.attribute?
+  db.qandaset.info = db._info.title.only
+  db.qandaset =
+    
+    ## A question-and-answer set
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:qandaset"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element qandaset {
+      db.qandaset.attlist,
+      db.qandaset.info,
+      db.all.blocks*,
+      (db.qandadiv+ | db.qandaentry+)
+    }
+}
+div {
+  db.qandadiv.role.attribute = attribute role { text }
+  db.qandadiv.attlist =
+    db.qandadiv.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.qandadiv.info = db._info.title.only
+  db.qandadiv =
+    
+    ## A titled division in a qandaset
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:qandadiv"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element qandadiv {
+      db.qandadiv.attlist,
+      db.qandadiv.info,
+      db.all.blocks*,
+      (db.qandadiv+ | db.qandaentry+)
+    }
+}
+div {
+  db.qandaentry.role.attribute = attribute role { text }
+  db.qandaentry.attlist =
+    db.qandaentry.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.qandaentry.info = db._info.title.only
+  db.qandaentry =
+    
+    ## A question/answer set within a qandaset
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:qandaentry"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element qandaentry {
+      db.qandaentry.attlist, db.qandaentry.info, db.question, db.answer*
+    }
+}
+div {
+  db.question.role.attribute = attribute role { text }
+  db.question.attlist =
+    db.question.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.question =
+    
+    ## A question in a qandaset
+    element question { db.question.attlist, db.label?, db.all.blocks+ }
+}
+div {
+  db.answer.role.attribute = attribute role { text }
+  db.answer.attlist =
+    db.answer.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.answer =
+    
+    ## An answer to a question posed in a qandaset
+    element answer { db.answer.attlist, db.label?, db.all.blocks+ }
+}
+div {
+  db.label.role.attribute = attribute role { text }
+  db.label.attlist =
+    db.label.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.label =
+    
+    ## A label on a question or answer
+    element label { db.label.attlist, db._text }
+}
+db.math.inlines = db.inlineequation
+db.equation.content = (db.mediaobject+ | db.mathphrase+) | db._any.mml+
+db.inlineequation.content =
+  (db.inlinemediaobject+ | db.mathphrase+) | db._any.mml+
+div {
+  db.equation.role.attribute = attribute role { text }
+  db.equation.label.attribute = db.label.attribute
+  db.equation.attlist =
+    db.equation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.equation.label.attribute?
+    & db.pgwide.attribute?
+    & db.floatstyle.attribute?
+  db.equation.info = db._info.title.only
+  db.equation =
+    
+    ## A displayed mathematical equation
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:example)"
+            "example must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:figure)"
+            "figure must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:table)"
+            "table must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:equation)"
+            "equation must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of equation"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:equation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element equation {
+      db.equation.attlist,
+      db.equation.info,
+      db.alt?,
+      db.equation.content,
+      db.caption?
+    }
+}
+div {
+  db.informalequation.role.attribute = attribute role { text }
+  db.informalequation.attlist =
+    db.informalequation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.pgwide.attribute?
+    & db.floatstyle.attribute?
+  db.informalequation.info = db._info.title.forbidden
+  db.informalequation =
+    
+    ## A displayed mathematical equation without a title
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:informalequation"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element informalequation {
+      db.informalequation.attlist,
+      db.informalequation.info,
+      db.alt?,
+      db.equation.content,
+      db.caption?
+    }
+}
+div {
+  db.inlineequation.role.attribute = attribute role { text }
+  db.inlineequation.attlist =
+    db.inlineequation.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.inlineequation =
+    
+    ## A mathematical equation or expression occurring inline
+    element inlineequation {
+      db.inlineequation.attlist, db.alt?, db.inlineequation.content
+    }
+}
+div {
+  db.mathphrase.role.attribute = attribute role { text }
+  db.mathphrase.attlist =
+    db.mathphrase.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.mathphrase =
+    
+    ## A mathematical phrase that can be represented with ordinary text and a small amount of markup
+    element mathphrase {
+      db.mathphrase.attlist,
+      (db._text | db.ubiq.inlines | db._emphasis)*
+    }
+}
+db.imagedata.mathml.content = db._any.mml
+div {
+  db.imagedata.mathml.role.attribute = attribute role { text }
+  db.imagedata.mathml.attlist =
+    db.imagedata.mathml.role.attribute?
+    & db.common.attributes
+    & 
+      ## Specifies that the format of the data is MathML
+      attribute format {
+        
+        ## Specifies MathML.
+        "mathml"
+      }?
+    & db.imagedata.align.attribute?
+    & db.imagedata.valign.attribute?
+    & db.imagedata.width.attribute?
+    & db.imagedata.contentwidth.attribute?
+    & db.imagedata.scalefit.attribute?
+    & db.imagedata.scale.attribute?
+    & db.imagedata.depth.attribute?
+    & db.imagedata.contentdepth.attribute?
+  db.imagedata.mathml.info = db._info.title.forbidden
+  db.imagedata.mathml =
+    
+    ## A MathML expression in a media object
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:imagedata"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element imagedata {
+      db.imagedata.mathml.attlist,
+      db.imagedata.mathml.info,
+      db.imagedata.mathml.content+
+    }
+}
+div {
+  db._any.mml =
+    
+    ## Any element from the MathML namespace
+    element mml:* { (db._any.attribute | text | db._any)* }
+}
+db.imagedata.svg.content = db._any.svg
+div {
+  db.imagedata.svg.role.attribute = attribute role { text }
+  db.imagedata.svg.attlist =
+    db.imagedata.svg.role.attribute?
+    & db.common.attributes
+    & 
+      ## Specifies that the format of the data is SVG
+      attribute format {
+        
+        ## Specifies SVG.
+        "svg"
+      }?
+    & db.imagedata.align.attribute?
+    & db.imagedata.valign.attribute?
+    & db.imagedata.width.attribute?
+    & db.imagedata.contentwidth.attribute?
+    & db.imagedata.scalefit.attribute?
+    & db.imagedata.scale.attribute?
+    & db.imagedata.depth.attribute?
+    & db.imagedata.contentdepth.attribute?
+  db.imagedata.svg.info = db._info.title.forbidden
+  db.imagedata.svg =
+    
+    ## An SVG drawing in a media object
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:imagedata"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element imagedata {
+      db.imagedata.svg.attlist,
+      db.imagedata.svg.info,
+      db.imagedata.svg.content+
+    }
+}
+div {
+  db._any.svg =
+    
+    ## Any element from the SVG namespace
+    element svg:* { (db._any.attribute | text | db._any)* }
+}
+db.markup.inlines =
+  db.tag
+  | db.markup
+  | db.token
+  | db.symbol
+  | db.literal
+  | db.code
+  | db.constant
+  | db.email
+  | db.uri
+div {
+  db.markup.role.attribute = attribute role { text }
+  db.markup.attlist =
+    db.markup.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.markup =
+    
+    ## A string of formatting markup in text that is to be represented literally
+    element markup { db.markup.attlist, db._text }
+}
+div {
+  db.tag.role.attribute = attribute role { text }
+  db.tag.class.enumeration =
+    
+    ## An attribute
+    "attribute"
+    | 
+      ## An attribute value
+      "attvalue"
+    | 
+      ## An element
+      "element"
+    | 
+      ## An empty element tag
+      "emptytag"
+    | 
+      ## An end tag
+      "endtag"
+    | 
+      ## A general entity
+      "genentity"
+    | 
+      ## The local name part of a qualified name
+      "localname"
+    | 
+      ## A namespace
+      "namespace"
+    | 
+      ## A numeric character reference
+      "numcharref"
+    | 
+      ## A parameter entity
+      "paramentity"
+    | 
+      ## A processing instruction
+      "pi"
+    | 
+      ## The prefix part of a qualified name
+      "prefix"
+    | 
+      ## An SGML comment
+      "comment"
+    | 
+      ## A start tag
+      "starttag"
+    | 
+      ## An XML processing instruction
+      "xmlpi"
+  db.tag.class.attribute =
+    
+    ## Identifies the nature of the tag content
+    attribute class { db.tag.class.enumeration }
+  db.tag.namespace.attribute =
+    
+    ## Identifies the namespace of the tag content
+    attribute namespace { xsd:anyURI }
+  db.tag.attlist =
+    db.tag.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.tag.class.attribute?
+    & db.tag.namespace.attribute?
+  db.tag =
+    
+    ## A component of XML (or SGML) markup
+    element tag { db.tag.attlist, (db._text | db.tag)* }
+}
+div {
+  db.symbol.class.attribute =
+    
+    ## Identifies the class of symbol
+    attribute class {
+      
+      ## The value is a limit of some kind
+      "limit"
+    }
+  db.symbol.role.attribute = attribute role { text }
+  db.symbol.attlist =
+    db.symbol.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.symbol.class.attribute?
+  db.symbol =
+    
+    ## A name that is replaced by a value before processing
+    element symbol { db.symbol.attlist, db._text }
+}
+div {
+  db.token.role.attribute = attribute role { text }
+  db.token.attlist =
+    db.token.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.token =
+    
+    ## A unit of information
+    element token { db.token.attlist, db._text }
+}
+div {
+  db.literal.role.attribute = attribute role { text }
+  db.literal.attlist =
+    db.literal.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.literal =
+    
+    ## Inline text that is some literal value
+    element literal { db.literal.attlist, db._text }
+}
+div {
+  code.language.attribute =
+    
+    ## Identifies the (computer) language of the code fragment
+    attribute language { text }
+  db.code.role.attribute = attribute role { text }
+  db.code.attlist =
+    db.code.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & code.language.attribute?
+  db.code =
+    
+    ## An inline code fragment
+    element code {
+      db.code.attlist, (db.programming.inlines | db._text)*
+    }
+}
+div {
+  db.constant.class.attribute =
+    
+    ## Identifies the class of constant
+    attribute class {
+      
+      ## The value is a limit of some kind
+      "limit"
+    }
+  db.constant.role.attribute = attribute role { text }
+  db.constant.attlist =
+    db.constant.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.constant.class.attribute?
+  db.constant =
+    
+    ## A programming or system constant
+    element constant { db.constant.attlist, db._text }
+}
+div {
+  db.productname.role.attribute = attribute role { text }
+  db.productname.class.enumeration =
+    
+    ## A name with a copyright
+    "copyright"
+    | 
+      ## A name with a registered copyright
+      "registered"
+    | 
+      ## A name of a service
+      "service"
+    | 
+      ## A name which is trademarked
+      "trade"
+  db.productname.class.attribute =
+    
+    ## Specifies the class of product name
+    attribute class { db.productname.class.enumeration }
+  db.productname.attlist =
+    db.productname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.productname.class.attribute?
+  db.productname =
+    
+    ## The formal name of a product
+    element productname { db.productname.attlist, db._text }
+}
+div {
+  db.productnumber.role.attribute = attribute role { text }
+  db.productnumber.attlist =
+    db.productnumber.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.productnumber =
+    
+    ## A number assigned to a product
+    element productnumber { db.productnumber.attlist, db._text }
+}
+div {
+  db.database.class.enumeration =
+    
+    ## An alternate or secondary key
+    "altkey"
+    | 
+      ## A constraint
+      "constraint"
+    | 
+      ## A data type
+      "datatype"
+    | 
+      ## A field
+      "field"
+    | 
+      ## A foreign key
+      "foreignkey"
+    | 
+      ## A group
+      "group"
+    | 
+      ## An index
+      "index"
+    | 
+      ## The first or primary key
+      "key1"
+    | 
+      ## An alternate or secondary key
+      "key2"
+    | 
+      ## A name
+      "name"
+    | 
+      ## The primary key
+      "primarykey"
+    | 
+      ## A (stored) procedure
+      "procedure"
+    | 
+      ## A record
+      "record"
+    | 
+      ## A rule
+      "rule"
+    | 
+      ## The secondary key
+      "secondarykey"
+    | 
+      ## A table
+      "table"
+    | 
+      ## A user
+      "user"
+    | 
+      ## A view
+      "view"
+  db.database.class.attribute =
+    
+    ## Identifies the class of database artifact
+    attribute class { db.database.class.enumeration }
+  db.database.role.attribute = attribute role { text }
+  db.database.attlist =
+    db.database.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.database.class.attribute?
+  db.database =
+    
+    ## The name of a database, or part of a database
+    element database { db.database.attlist, db._text }
+}
+div {
+  db.application.class.enumeration =
+    
+    ## A hardware application
+    "hardware"
+    | 
+      ## A software application
+      "software"
+  db.application.class.attribute =
+    
+    ## Identifies the class of application
+    attribute class { db.application.class.enumeration }
+  db.application.role.attribute = attribute role { text }
+  db.application.attlist =
+    db.application.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.application.class.attribute?
+  db.application =
+    
+    ## The name of a software program
+    element application { db.application.attlist, db._text }
+}
+div {
+  db.hardware.role.attribute = attribute role { text }
+  db.hardware.attlist =
+    db.hardware.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.hardware =
+    
+    ## A physical part of a computer system
+    element hardware { db.hardware.attlist, db._text }
+}
+db.gui.inlines =
+  db.guiicon
+  | db.guibutton
+  | db.guimenuitem
+  | db.guimenu
+  | db.guisubmenu
+  | db.guilabel
+  | db.menuchoice
+  | db.mousebutton
+div {
+  db.guibutton.role.attribute = attribute role { text }
+  db.guibutton.attlist =
+    db.guibutton.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.guibutton =
+    
+    ## The text on a button in a GUI
+    element guibutton {
+      db.guibutton.attlist,
+      (db._text | db.accel | db.superscript | db.subscript)*
+    }
+}
+div {
+  db.guiicon.role.attribute = attribute role { text }
+  db.guiicon.attlist =
+    db.guiicon.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.guiicon =
+    
+    ## Graphic and/or text appearing as a icon in a GUI
+    element guiicon {
+      db.guiicon.attlist,
+      (db._text | db.accel | db.superscript | db.subscript)*
+    }
+}
+div {
+  db.guilabel.role.attribute = attribute role { text }
+  db.guilabel.attlist =
+    db.guilabel.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.guilabel =
+    
+    ## The text of a label in a GUI
+    element guilabel {
+      db.guilabel.attlist,
+      (db._text | db.accel | db.superscript | db.subscript)*
+    }
+}
+div {
+  db.guimenu.role.attribute = attribute role { text }
+  db.guimenu.attlist =
+    db.guimenu.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.guimenu =
+    
+    ## The name of a menu in a GUI
+    element guimenu {
+      db.guimenu.attlist,
+      (db._text | db.accel | db.superscript | db.subscript)*
+    }
+}
+div {
+  db.guimenuitem.role.attribute = attribute role { text }
+  db.guimenuitem.attlist =
+    db.guimenuitem.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.guimenuitem =
+    
+    ## The name of a terminal menu item in a GUI
+    element guimenuitem {
+      db.guimenuitem.attlist,
+      (db._text | db.accel | db.superscript | db.subscript)*
+    }
+}
+div {
+  db.guisubmenu.role.attribute = attribute role { text }
+  db.guisubmenu.attlist =
+    db.guisubmenu.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.guisubmenu =
+    
+    ## The name of a submenu in a GUI
+    element guisubmenu {
+      db.guisubmenu.attlist,
+      (db._text | db.accel | db.superscript | db.subscript)*
+    }
+}
+div {
+  db.menuchoice.role.attribute = attribute role { text }
+  db.menuchoice.attlist =
+    db.menuchoice.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.menuchoice =
+    
+    ## A selection or series of selections from a menu
+    element menuchoice {
+      db.menuchoice.attlist,
+      db.shortcut?,
+      (db.guibutton
+       | db.guiicon
+       | db.guilabel
+       | db.guimenu
+       | db.guimenuitem
+       | db.guisubmenu)+
+    }
+}
+div {
+  db.mousebutton.role.attribute = attribute role { text }
+  db.mousebutton.attlist =
+    db.mousebutton.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.mousebutton =
+    
+    ## The conventional name of a mouse button
+    element mousebutton { db.mousebutton.attlist, db._text }
+}
+db.keyboard.inlines =
+  db.keycombo
+  | db.keycap
+  | db.keycode
+  | db.keysym
+  | db.shortcut
+  | db.accel
+div {
+  db.keycap.function.enumeration =
+    
+    ## The "Alt" key
+    "alt"
+    | 
+      ## The "Backspace" key
+      "backspace"
+    | 
+      ## The "Command" key
+      "command"
+    | 
+      ## The "Control" key
+      "control"
+    | 
+      ## The "Delete" key
+      "delete"
+    | 
+      ## The down arrow
+      "down"
+    | 
+      ## The "End" key
+      "end"
+    | 
+      ## The "Enter" or "Return" key
+      "enter"
+    | 
+      ## The "Escape" key
+      "escape"
+    | 
+      ## The "Home" key
+      "home"
+    | 
+      ## The "Insert" key
+      "insert"
+    | 
+      ## The left arrow
+      "left"
+    | 
+      ## The "Meta" key
+      "meta"
+    | 
+      ## The "Option" key
+      "option"
+    | 
+      ## The page down key
+      "pagedown"
+    | 
+      ## The page up key
+      "pageup"
+    | 
+      ## The right arrow
+      "right"
+    | 
+      ## The "Shift" key
+      "shift"
+    | 
+      ## The spacebar
+      "space"
+    | 
+      ## The "Tab" key
+      "tab"
+    | 
+      ## The up arrow
+      "up"
+  db.keycap.function-enum.attribute =
+    
+    ## Identifies the function key
+    attribute function { db.keycap.function.enumeration }?
+  db.keycap.function-other.attributes =
+    
+    ## Identifies the function key
+    attribute function {
+      
+      ## Indicates a non-standard function key
+      "other"
+    }?,
+    
+    ## Specifies a keyword that identifies the non-standard key
+    attribute otherfunction { text }
+  db.keycap.function.attrib =
+    db.keycap.function-enum.attribute
+    | db.keycap.function-other.attributes
+  db.keycap.role.attribute = attribute role { text }
+  db.keycap.attlist =
+    db.keycap.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.keycap.function.attrib
+  db.keycap =
+    
+    ## The text printed on a key on a keyboard
+    element keycap { db.keycap.attlist, db._text }
+}
+div {
+  db.keycode.role.attribute = attribute role { text }
+  db.keycode.attlist =
+    db.keycode.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.keycode =
+    
+    ## The internal, frequently numeric, identifier for a key on a keyboard
+    element keycode { db.keycode.attlist, db._text }
+}
+db.keycombination.contentmodel =
+  (db.keycap | db.keycombo | db.keysym) | db.mousebutton
+div {
+  db.keycombo.action.enumeration =
+    
+    ## A (single) mouse click.
+    "click"
+    | 
+      ## A double mouse click.
+      "double-click"
+    | 
+      ## A mouse or key press.
+      "press"
+    | 
+      ## Sequential clicks or presses.
+      "seq"
+    | 
+      ## Simultaneous clicks or presses.
+      "simul"
+  db.keycombo.action-enum.attribute =
+    
+    ## Identifies the nature of the action taken. If keycombo
+    ##  contains more than one element, simul
+    ##  is the default, otherwise there is no default.
+    attribute action { db.keycombo.action.enumeration }?
+  db.keycombo.action-other.attributes =
+    
+    ## Identifies the nature of the action taken
+    attribute action {
+      
+      ## Indicates a non-standard action
+      "other"
+    }?,
+    
+    ## Identifies the non-standard action in some unspecified way.
+    attribute otheraction { text }
+  db.keycombo.action.attrib =
+    db.keycombo.action-enum.attribute
+    | db.keycombo.action-other.attributes
+  db.keycombo.role.attribute = attribute role { text }
+  db.keycombo.attlist =
+    db.keycombo.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.keycombo.action.attrib
+  db.keycombo =
+    
+    ## A combination of input actions
+    element keycombo {
+      db.keycombo.attlist, db.keycombination.contentmodel+
+    }
+}
+div {
+  db.keysym.role.attribute = attribute role { text }
+  db.keysym.attlist =
+    db.keysym.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.keysym =
+    
+    ## The symbolic name of a key on a keyboard
+    element keysym { db.keysym.attlist, db._text }
+}
+div {
+  db.accel.role.attribute = attribute role { text }
+  db.accel.attlist =
+    db.accel.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.accel =
+    
+    ## A graphical user interface (GUI) keyboard shortcut
+    element accel { db.accel.attlist, db._text }
+}
+div {
+  db.shortcut.action.attrib = db.keycombo.action.attrib
+  db.shortcut.role.attribute = attribute role { text }
+  db.shortcut.attlist =
+    db.shortcut.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.shortcut.action.attrib
+  db.shortcut =
+    
+    ## A key combination for an action that is also accessible through a menu
+    element shortcut {
+      db.shortcut.attlist, db.keycombination.contentmodel+
+    }
+}
+db.os.inlines =
+  db.prompt
+  | db.envar
+  | db.filename
+  | db.command
+  | db.computeroutput
+  | db.userinput
+db.computeroutput.inlines =
+  (text | db.ubiq.inlines | db.os.inlines | db.technical.inlines)
+  | db.co
+  | db.markup.inlines
+db.userinput.inlines =
+  (text | db.ubiq.inlines | db.os.inlines | db.technical.inlines)
+  | db.co
+  | db.markup.inlines
+  | db.gui.inlines
+  | db.keyboard.inlines
+db.prompt.inlines = db._text | db.co
+div {
+  db.prompt.role.attribute = attribute role { text }
+  db.prompt.attlist =
+    db.prompt.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.prompt =
+    
+    ## A character or string indicating the start of an input field in a  computer display
+    element prompt { db.prompt.attlist, db.prompt.inlines* }
+}
+div {
+  db.envar.role.attribute = attribute role { text }
+  db.envar.attlist =
+    db.envar.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.envar =
+    
+    ## A software environment variable
+    element envar { db.envar.attlist, db._text }
+}
+div {
+  db.filename.class.enumeration =
+    
+    ## A device
+    "devicefile"
+    | 
+      ## A directory
+      "directory"
+    | 
+      ## A filename extension
+      "extension"
+    | 
+      ## A header file (as for a programming language)
+      "headerfile"
+    | 
+      ## A library file
+      "libraryfile"
+    | 
+      ## A partition (as of a hard disk)
+      "partition"
+    | 
+      ## A symbolic link
+      "symlink"
+  db.filename.class.attribute =
+    
+    ## Identifies the class of filename
+    attribute class { db.filename.class.enumeration }
+  db.filename.path.attribute =
+    
+    ## Specifies the path of the filename
+    attribute path { text }
+  db.filename.role.attribute = attribute role { text }
+  db.filename.attlist =
+    db.filename.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.filename.path.attribute?
+    & db.filename.class.attribute?
+  db.filename =
+    
+    ## The name of a file
+    element filename { db.filename.attlist, db._text }
+}
+div {
+  db.command.role.attribute = attribute role { text }
+  db.command.attlist =
+    db.command.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.command =
+    
+    ## The name of an executable program or other software command
+    element command { db.command.attlist, db._text }
+}
+div {
+  db.computeroutput.role.attribute = attribute role { text }
+  db.computeroutput.attlist =
+    db.computeroutput.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.computeroutput =
+    
+    ## Data, generally text, displayed or presented by a computer
+    element computeroutput {
+      db.computeroutput.attlist, db.computeroutput.inlines*
+    }
+}
+div {
+  db.userinput.role.attribute = attribute role { text }
+  db.userinput.attlist =
+    db.userinput.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.userinput =
+    
+    ## Data entered by the user
+    element userinput { db.userinput.attlist, db.userinput.inlines* }
+}
+div {
+  db.cmdsynopsis.role.attribute = attribute role { text }
+  db.cmdsynopsis.sepchar.attribute =
+    
+    ## Specifies the character that should separate the command and its top-level arguments
+    attribute sepchar { text }
+  db.cmdsynopsis.cmdlength.attribute =
+    
+    ## Indicates the displayed length of the command; this information may be used to intelligently indent command synopses which extend beyond one line
+    attribute cmdlength { text }
+  db.cmdsynopsis.label.attribute = db.label.attribute
+  db.cmdsynopsis.attlist =
+    db.cmdsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.cmdsynopsis.sepchar.attribute?
+    & db.cmdsynopsis.cmdlength.attribute?
+    & db.cmdsynopsis.label.attribute?
+  db.cmdsynopsis.info = db._info.title.forbidden
+  db.cmdsynopsis =
+    
+    ## A syntax summary for a software command
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:cmdsynopsis"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element cmdsynopsis {
+      db.cmdsynopsis.attlist,
+      db.cmdsynopsis.info,
+      (db.command | db.arg | db.group | db.sbr)+,
+      db.synopfragment*
+    }
+}
+db.rep.enumeration =
+  
+  ## Can not be repeated.
+  "norepeat"
+  | 
+    ## Can be repeated.
+    "repeat"
+db.rep.attribute =
+  
+  ## Indicates whether or not repetition is possible.
+  [ a:defaultValue = "norepeat" ] attribute rep { db.rep.enumeration }
+db.choice.enumeration =
+  
+  ## Formatted to indicate that it is optional.
+  "opt"
+  | 
+    ## Formatted without indication.
+    "plain"
+  | 
+    ## Formatted to indicate that it is required.
+    "req"
+db.choice.opt.attribute =
+  
+  ## Indicates optionality.
+  [ a:defaultValue = "opt" ] attribute choice { db.choice.enumeration }
+db.choice.req.attribute =
+  
+  ## Indicates optionality.
+  [ a:defaultValue = "req" ] attribute choice { db.choice.enumeration }
+div {
+  db.arg.role.attribute = attribute role { text }
+  db.arg.rep.attribute = db.rep.attribute
+  db.arg.choice.attribute = db.choice.opt.attribute
+  db.arg.attlist =
+    db.arg.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.arg.rep.attribute?
+    & db.arg.choice.attribute?
+  db.arg =
+    
+    ## An argument in a cmdsynopsis
+    element arg {
+      db.arg.attlist,
+      (db._text
+       | db.arg
+       | db.group
+       | db.option
+       | db.synopfragmentref
+       | db.sbr)*
+    }
+}
+div {
+  db.group.role.attribute = attribute role { text }
+  db.group.rep.attribute = db.rep.attribute
+  db.group.choice.attribute = db.choice.opt.attribute
+  db.group.attlist =
+    db.group.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.group.rep.attribute?
+    & db.group.choice.attribute?
+  db.group =
+    
+    ## A group of elements in a cmdsynopsis
+    element group {
+      db.group.attlist,
+      (db.arg
+       | db.group
+       | db.option
+       | db.synopfragmentref
+       | db.replaceable
+       | db.sbr)+
+    }
+}
+div {
+  db.sbr.role.attribute = attribute role { text }
+  db.sbr.attlist = db.sbr.role.attribute? & db.common.attributes
+  db.sbr =
+    
+    ## An explicit line break in a command synopsis
+    element sbr { db.sbr.attlist, empty }
+}
+div {
+  db.synopfragment.role.attribute = attribute role { text }
+  db.synopfragment.attlist =
+    db.synopfragment.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.synopfragment =
+    
+    ## A portion of a cmdsynopsis broken out from the main body of the synopsis
+    element synopfragment {
+      db.synopfragment.attlist, (db.arg | db.group)+
+    }
+}
+div {
+  db.synopfragmentref.role.attribute = attribute role { text }
+  db.synopfragmentref.attlist =
+    db.synopfragmentref.role.attribute?
+    & db.common.attributes
+    & db.linkend.attribute
+  db.synopfragmentref =
+    
+    ## A reference to a fragment of a command synopsis
+    [
+      s:pattern [
+        name = "Synopsis fragment type constraint"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:synopfragmentref"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test =
+              "local-name(//*[@xml:id=current()/@linkend]) = 'synopfragment' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
+            "@linkend on synopfragmentref must point to a synopfragment."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element synopfragmentref { db.synopfragmentref.attlist, text }
+}
+db.programming.inlines =
+  db.function
+  | db.parameter
+  | db.varname
+  | db.returnvalue
+  | db.type
+  | db.classname
+  | db.exceptionname
+  | db.interfacename
+  | db.methodname
+  | db.modifier
+  | db.initializer
+  | db.oo.inlines
+db.oo.inlines = db.ooclass | db.ooexception | db.oointerface
+db.synopsis.blocks =
+  (db.funcsynopsis
+   | db.classsynopsis
+   | db.methodsynopsis
+   | db.constructorsynopsis
+   | db.destructorsynopsis
+   | db.fieldsynopsis)
+  | db.cmdsynopsis
+div {
+  db.synopsis.role.attribute = attribute role { text }
+  db.synopsis.label.attribute = db.label.attribute
+  db.synopsis.attlist =
+    db.synopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+    & db.synopsis.label.attribute?
+  db.synopsis =
+    
+    ## A general-purpose element for representing the syntax of commands or functions
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:synopsis"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element synopsis { db.synopsis.attlist, db.verbatim.contentmodel }
+}
+div {
+  db.funcsynopsis.role.attribute = attribute role { text }
+  db.funcsynopsis.attlist =
+    db.funcsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.language.attribute?
+  db.funcsynopsis.info = db._info.title.forbidden
+  db.funcsynopsis =
+    
+    ## The syntax summary for a function definition
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:funcsynopsis"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element funcsynopsis {
+      db.funcsynopsis.attlist,
+      db.funcsynopsis.info,
+      (db.funcsynopsisinfo | db.funcprototype)+
+    }
+}
+div {
+  db.funcsynopsisinfo.role.attribute = attribute role { text }
+  db.funcsynopsisinfo.attlist =
+    db.funcsynopsisinfo.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+  db.funcsynopsisinfo =
+    
+    ## Information supplementing the funcdefs of a funcsynopsis
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:funcsynopsisinfo"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element funcsynopsisinfo {
+      db.funcsynopsisinfo.attlist, db.verbatim.contentmodel
+    }
+}
+div {
+  db.funcprototype.role.attribute = attribute role { text }
+  db.funcprototype.attlist =
+    db.funcprototype.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.funcprototype =
+    
+    ## The prototype of a function
+    element funcprototype {
+      db.funcprototype.attlist,
+      db.modifier*,
+      db.funcdef,
+      (db.void
+       | db.varargs
+       | ((db.paramdef | db.group.paramdef)+, db.varargs?)),
+      db.modifier*
+    }
+}
+div {
+  db.funcdef.role.attribute = attribute role { text }
+  db.funcdef.attlist =
+    db.funcdef.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.funcdef =
+    
+    ## A function (subroutine) name and its return type
+    element funcdef {
+      db.funcdef.attlist, (db._text | db.type | db.function)*
+    }
+}
+div {
+  db.function.role.attribute = attribute role { text }
+  db.function.attlist =
+    db.function.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.function =
+    
+    ## The name of a function or subroutine, as in a programming language
+    element function { db.function.attlist, db._text }
+}
+div {
+  db.void.role.attribute = attribute role { text }
+  db.void.attlist =
+    db.void.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.void =
+    
+    ## An empty element in a function synopsis indicating that the function in question takes no arguments
+    element void { db.void.attlist, empty }
+}
+div {
+  db.varargs.role.attribute = attribute role { text }
+  db.varargs.attlist =
+    db.varargs.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.varargs =
+    
+    ## An empty element in a function synopsis indicating a variable number of arguments
+    element varargs { db.varargs.attlist, empty }
+}
+div {
+  db.group.paramdef.role.attribute = attribute role { text }
+  db.group.paramdef.choice.attribute = db.choice.opt.attribute
+  db.group.paramdef.attlist =
+    db.group.paramdef.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.group.paramdef.choice.attribute?
+  db.group.paramdef =
+    
+    ## A group of parameters
+    element group {
+      db.group.paramdef.attlist, (db.paramdef | db.group.paramdef)+
+    }
+}
+div {
+  db.paramdef.role.attribute = attribute role { text }
+  db.paramdef.choice.enumeration =
+    
+    ## Formatted to indicate that it is optional.
+    "opt"
+    | 
+      ## Formatted to indicate that it is required.
+      "req"
+  db.paramdef.choice.attribute =
+    
+    ## Indicates optionality.
+    [ a:defaultValue = "opt" ]
+    attribute choice { db.paramdef.choice.enumeration }
+  db.paramdef.attlist =
+    db.paramdef.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.paramdef.choice.attribute?
+  db.paramdef =
+    
+    ## Information about a function parameter in a programming language
+    element paramdef {
+      db.paramdef.attlist,
+      (db._text
+       | db.initializer
+       | db.type
+       | db.parameter
+       | db.funcparams)*
+    }
+}
+div {
+  db.funcparams.role.attribute = attribute role { text }
+  db.funcparams.attlist =
+    db.funcparams.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.funcparams =
+    
+    ## Parameters for a function referenced through a function pointer in a synopsis
+    element funcparams { db.funcparams.attlist, db._text }
+}
+div {
+  db.classsynopsis.role.attribute = attribute role { text }
+  db.classsynopsis.class.enumeration =
+    
+    ## This is the synopsis of a class
+    "class"
+    | 
+      ## This is the synopsis of an interface
+      "interface"
+  db.classsynopsis.class.attribute =
+    
+    ## Specifies the nature of the synopsis
+    attribute class { db.classsynopsis.class.enumeration }
+  db.classsynopsis.attlist =
+    db.classsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.language.attribute?
+    & db.classsynopsis.class.attribute?
+  db.classsynopsis =
+    
+    ## The syntax summary for a class definition
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:classsynopsis"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element classsynopsis {
+      db.classsynopsis.attlist,
+      db.oo.inlines+,
+      (db.classsynopsisinfo
+       | db.methodsynopsis
+       | db.constructorsynopsis
+       | db.destructorsynopsis
+       | db.fieldsynopsis)*
+    }
+}
+div {
+  db.classsynopsisinfo.role.attribute = attribute role { text }
+  db.classsynopsisinfo.attlist =
+    db.classsynopsisinfo.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+  db.classsynopsisinfo =
+    
+    ## Information supplementing the contents of a classsynopsis
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:classsynopsisinfo"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element classsynopsisinfo {
+      db.classsynopsisinfo.attlist, db.verbatim.contentmodel
+    }
+}
+div {
+  db.ooclass.role.attribute = attribute role { text }
+  db.ooclass.attlist =
+    db.ooclass.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.ooclass =
+    
+    ## A class in an object-oriented programming language
+    element ooclass {
+      db.ooclass.attlist, (db.package | db.modifier)*, db.classname
+    }
+}
+div {
+  db.oointerface.role.attribute = attribute role { text }
+  db.oointerface.attlist =
+    db.oointerface.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.oointerface =
+    
+    ## An interface in an object-oriented programming language
+    element oointerface {
+      db.oointerface.attlist,
+      (db.package | db.modifier)*,
+      db.interfacename
+    }
+}
+div {
+  db.ooexception.role.attribute = attribute role { text }
+  db.ooexception.attlist =
+    db.ooexception.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.ooexception =
+    
+    ## An exception in an object-oriented programming language
+    element ooexception {
+      db.ooexception.attlist,
+      (db.package | db.modifier)*,
+      db.exceptionname
+    }
+}
+db.modifier.xml.space.attribute =
+  
+  ## Can be used to indicate that whitespace in the modifier should be preserved (for multi-line annotations, for example).
+  attribute xml:space {
+    
+    ## Extra whitespace and line breaks must be preserved.
+    [
+      # Ideally the definition of xml:space used on modifier would be
+      # different from the definition used on the verbatim elements. The
+      # verbatim elements forbid the use of xml:space="default" which
+      # wouldn't be a problem on modifier. But doing that causes the
+      # generated XSD schemas to be broken so I'm just reusing the existing
+      # definition for now. It won't be backwards incompatible to fix this
+      # problem in the future.
+      #    | ## Extra whitespace and line breaks are not preserved.
+      #      "default"
+      
+    ]
+    "preserve"
+  }
+div {
+  db.modifier.role.attribute = attribute role { text }
+  db.modifier.attlist =
+    db.modifier.xml.space.attribute?
+    & db.modifier.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.modifier =
+    
+    ## Modifiers in a synopsis
+    element modifier { db.modifier.attlist, db._text }
+}
+div {
+  db.interfacename.role.attribute = attribute role { text }
+  db.interfacename.attlist =
+    db.interfacename.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.interfacename =
+    
+    ## The name of an interface
+    element interfacename { db.interfacename.attlist, db._text }
+}
+div {
+  db.exceptionname.role.attribute = attribute role { text }
+  db.exceptionname.attlist =
+    db.exceptionname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.exceptionname =
+    
+    ## The name of an exception
+    element exceptionname { db.exceptionname.attlist, db._text }
+}
+div {
+  db.fieldsynopsis.role.attribute = attribute role { text }
+  db.fieldsynopsis.attlist =
+    db.fieldsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.language.attribute?
+  db.fieldsynopsis =
+    
+    ## The name of a field in a class definition
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:fieldsynopsis"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element fieldsynopsis {
+      db.fieldsynopsis.attlist,
+      db.modifier*,
+      db.type?,
+      db.varname,
+      db.initializer?
+    }
+}
+div {
+  db.initializer.role.attribute = attribute role { text }
+  db.initializer.attlist =
+    db.initializer.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.initializer.inlines = db._text | db.mathphrase | db.markup.inlines
+  db.initializer =
+    
+    ## The initializer for a fieldsynopsis
+    element initializer {
+      db.initializer.attlist, db.initializer.inlines*
+    }
+}
+div {
+  db.constructorsynopsis.role.attribute = attribute role { text }
+  db.constructorsynopsis.attlist =
+    db.constructorsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.language.attribute?
+  db.constructorsynopsis =
+    
+    ## A syntax summary for a constructor
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:constructorsynopsis"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element constructorsynopsis {
+      db.constructorsynopsis.attlist,
+      db.modifier*,
+      db.methodname?,
+      ((db.methodparam | db.group.methodparam)+ | db.void?),
+      db.exceptionname*
+    }
+}
+div {
+  db.destructorsynopsis.role.attribute = attribute role { text }
+  db.destructorsynopsis.attlist =
+    db.destructorsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.language.attribute?
+  db.destructorsynopsis =
+    
+    ## A syntax summary for a destructor
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:destructorsynopsis"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element destructorsynopsis {
+      db.destructorsynopsis.attlist,
+      db.modifier*,
+      db.methodname?,
+      ((db.methodparam | db.group.methodparam)+ | db.void?),
+      db.exceptionname*
+    }
+}
+div {
+  db.methodsynopsis.role.attribute = attribute role { text }
+  db.methodsynopsis.attlist =
+    db.methodsynopsis.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.language.attribute?
+  db.methodsynopsis =
+    
+    ## A syntax summary for a method
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:methodsynopsis"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element methodsynopsis {
+      db.methodsynopsis.attlist,
+      db.modifier*,
+      (db.type | db.void)?,
+      db.methodname,
+      ((db.methodparam | db.group.methodparam)+ | db.void),
+      db.exceptionname*,
+      db.modifier*
+    }
+}
+div {
+  db.methodname.role.attribute = attribute role { text }
+  db.methodname.attlist =
+    db.methodname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.methodname =
+    
+    ## The name of a method
+    element methodname { db.methodname.attlist, db._text }
+}
+div {
+  db.methodparam.role.attribute = attribute role { text }
+  db.methodparam.rep.attribute = db.rep.attribute
+  db.methodparam.choice.attribute = db.choice.req.attribute
+  db.methodparam.attlist =
+    db.methodparam.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.methodparam.rep.attribute?
+    & db.methodparam.choice.attribute?
+  db.methodparam =
+    
+    ## Parameters to a method
+    element methodparam {
+      db.methodparam.attlist,
+      db.modifier*,
+      db.type?,
+      ((db.modifier*, db.parameter, db.initializer?) | db.funcparams),
+      db.modifier*
+    }
+}
+div {
+  db.group.methodparam.role.attribute = attribute role { text }
+  db.group.methodparam.choice.attribute = db.choice.opt.attribute
+  db.group.methodparam.attlist =
+    db.group.methodparam.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.group.methodparam.choice.attribute?
+  db.group.methodparam =
+    
+    ## A group of method parameters
+    element group {
+      db.group.methodparam.attlist,
+      (db.methodparam | db.group.methodparam)+
+    }
+}
+div {
+  db.varname.role.attribute = attribute role { text }
+  db.varname.attlist =
+    db.varname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.varname =
+    
+    ## The name of a variable
+    element varname { db.varname.attlist, db._text }
+}
+div {
+  db.returnvalue.role.attribute = attribute role { text }
+  db.returnvalue.attlist =
+    db.returnvalue.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.returnvalue =
+    
+    ## The value returned by a function
+    element returnvalue { db.returnvalue.attlist, db._text }
+}
+div {
+  db.type.role.attribute = attribute role { text }
+  db.type.attlist =
+    db.type.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.type =
+    
+    ## The classification of a value
+    element type { db.type.attlist, db._text }
+}
+div {
+  db.classname.role.attribute = attribute role { text }
+  db.classname.attlist =
+    db.classname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.classname =
+    
+    ## The name of a class, in the object-oriented programming sense
+    element classname { db.classname.attlist, db._text }
+}
+div {
+  db.programlisting.role.attribute = attribute role { text }
+  db.programlisting.width.attribute = db.width.characters.attribute
+  db.programlisting.attlist =
+    db.programlisting.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.verbatim.attributes
+    & db.programlisting.width.attribute?
+  db.programlisting =
+    
+    ## A literal listing of all or part of a program
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:programlisting"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element programlisting {
+      db.programlisting.attlist, db.verbatim.contentmodel
+    }
+}
+db.admonition.blocks =
+  db.caution | db.important | db.note | db.tip | db.warning
+db.admonition.contentmodel = db._info.title.only, db.all.blocks+
+div {
+  db.caution.role.attribute = attribute role { text }
+  db.caution.attlist =
+    db.caution.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.caution =
+    
+    ## A note of caution
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caution"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of caution"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caution"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of caution"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caution"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of caution"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caution"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of caution"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:caution"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of caution"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:caution"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element caution { db.caution.attlist, db.admonition.contentmodel }
+}
+div {
+  db.important.role.attribute = attribute role { text }
+  db.important.attlist =
+    db.important.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.important =
+    
+    ## An admonition set off from the text
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:important"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of important"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:important"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of important"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:important"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of important"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:important"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of important"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:important"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of important"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:important"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element important {
+      db.important.attlist, db.admonition.contentmodel
+    }
+}
+div {
+  db.note.role.attribute = attribute role { text }
+  db.note.attlist =
+    db.note.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.note =
+    
+    ## A message set off from the text
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:note"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of note"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:note"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of note"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:note"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of note"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:note"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of note"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:note"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of note"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:note"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element note { db.note.attlist, db.admonition.contentmodel }
+}
+div {
+  db.tip.role.attribute = attribute role { text }
+  db.tip.attlist =
+    db.tip.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.tip =
+    
+    ## A suggestion to the user, set off from the text
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:tip"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of tip"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:tip"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of tip"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:tip"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of tip"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:tip"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of tip"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:tip"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of tip"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:tip"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element tip { db.tip.attlist, db.admonition.contentmodel }
+}
+div {
+  db.warning.role.attribute = attribute role { text }
+  db.warning.attlist =
+    db.warning.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.warning =
+    
+    ## An admonition set off from the text
+    [
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:warning"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:caution)"
+            "caution must not occur among the children or descendants of warning"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:warning"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:important)"
+            "important must not occur among the children or descendants of warning"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:warning"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:note)"
+            "note must not occur among the children or descendants of warning"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:warning"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:tip)"
+            "tip must not occur among the children or descendants of warning"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Element exclusion"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "db:warning"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "not(.//db:warning)"
+            "warning must not occur among the children or descendants of warning"
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:warning"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element warning { db.warning.attlist, db.admonition.contentmodel }
+}
+db.error.inlines =
+  db.errorcode | db.errortext | db.errorname | db.errortype
+div {
+  db.errorcode.role.attribute = attribute role { text }
+  db.errorcode.attlist =
+    db.errorcode.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.errorcode =
+    
+    ## An error code
+    element errorcode { db.errorcode.attlist, db._text }
+}
+div {
+  db.errorname.role.attribute = attribute role { text }
+  db.errorname.attlist =
+    db.errorname.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.errorname =
+    
+    ## An error name
+    element errorname { db.errorname.attlist, db._text }
+}
+div {
+  db.errortext.role.attribute = attribute role { text }
+  db.errortext.attlist =
+    db.errortext.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.errortext =
+    
+    ## An error message.
+    element errortext { db.errortext.attlist, db._text }
+}
+div {
+  db.errortype.role.attribute = attribute role { text }
+  db.errortype.attlist =
+    db.errortype.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.errortype =
+    
+    ## The classification of an error message
+    element errortype { db.errortype.attlist, db._text }
+}
+db.systemitem.inlines = db._text | db.co
+div {
+  db.systemitem.class.enumeration =
+    
+    ## A daemon or other system process (syslogd)
+    "daemon"
+    | 
+      ## A domain name (example.com)
+      "domainname"
+    | 
+      ## An ethernet address (00:05:4E:49:FD:8E)
+      "etheraddress"
+    | 
+      ## An event of some sort (SIGHUP)
+      "event"
+    | 
+      ## An event handler of some sort (hangup)
+      "eventhandler"
+    | 
+      ## A filesystem (ext3)
+      "filesystem"
+    | 
+      ## A fully qualified domain name (my.example.com)
+      "fqdomainname"
+    | 
+      ## A group name (wheel)
+      "groupname"
+    | 
+      ## An IP address (127.0.0.1)
+      "ipaddress"
+    | 
+      ## A library (libncurses)
+      "library"
+    | 
+      ## A macro
+      "macro"
+    | 
+      ## A netmask (255.255.255.192)
+      "netmask"
+    | 
+      ## A newsgroup (comp.text.xml)
+      "newsgroup"
+    | 
+      ## An operating system name (Hurd)
+      "osname"
+    | 
+      ## A process (gnome-cups-icon)
+      "process"
+    | 
+      ## A protocol (ftp)
+      "protocol"
+    | 
+      ## A resource
+      "resource"
+    | 
+      ## A security context (a role, permission, or security token, for example)
+      "securitycontext"
+    | 
+      ## A server (mail.example.com)
+      "server"
+    | 
+      ## A service (ppp)
+      "service"
+    | 
+      ## A system name (hephaistos)
+      "systemname"
+    | 
+      ## A user name (ndw)
+      "username"
+  db.systemitem.class-enum.attribute =
+    
+    ## Identifies the nature of the system item
+    attribute class { db.systemitem.class.enumeration }?
+  db.systemitem.class-other.attribute =
+    
+    ## Identifies the nature of the non-standard system item
+    attribute otherclass { xsd:NMTOKEN }
+  db.systemitem.class-other.attributes =
+    
+    ## Identifies the kind of systemitemgraphic identifier
+    attribute class {
+      
+      ## Indicates that the system item is some 'other' kind.
+      "other"
+    }
+    & db.systemitem.class-other.attribute
+  db.systemitem.class.attribute =
+    db.systemitem.class-enum.attribute
+    | db.systemitem.class-other.attributes
+  db.systemitem.role.attribute = attribute role { text }
+  db.systemitem.attlist =
+    db.systemitem.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.systemitem.class.attribute?
+  db.systemitem =
+    
+    ## A system-related item or term
+    element systemitem { db.systemitem.attlist, db.systemitem.inlines* }
+}
+div {
+  db.option.role.attribute = attribute role { text }
+  db.option.attlist =
+    db.option.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.option =
+    
+    ## An option for a software command
+    element option { db.option.attlist, db._text }
+}
+div {
+  db.optional.role.attribute = attribute role { text }
+  db.optional.attlist =
+    db.optional.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.optional =
+    
+    ## Optional information
+    element optional { db.optional.attlist, db._text }
+}
+div {
+  db.property.role.attribute = attribute role { text }
+  db.property.attlist =
+    db.property.role.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+  db.property =
+    
+    ## A unit of data associated with some part of a computer system
+    element property { db.property.attlist, db._text }
+}
+div {
+  db.topic.status.attribute = db.status.attribute
+  db.topic.role.attribute = attribute role { text }
+  db.topic.type.attribute =
+    
+    ## Identifies the topic type
+    attribute type { text }
+  db.topic.attlist =
+    db.topic.role.attribute?
+    & db.topic.type.attribute?
+    & db.common.attributes
+    & db.common.linking.attributes
+    & db.label.attribute?
+    & db.topic.status.attribute?
+  db.topic.info = db._info.title.req
+  db.topic =
+    
+    ## A modular unit of documentation not part of any particular narrative flow
+    [
+      s:pattern [
+        name = "Root must have version"
+        "\x{a}" ~
+        "               "
+        s:rule [
+          context = "/db:topic"
+          "\x{a}" ~
+          "                  "
+          s:assert [
+            test = "@version"
+            "If this element is the root element, it must have a version attribute."
+          ]
+          "\x{a}" ~
+          "               "
+        ]
+        "\x{a}" ~
+        "            "
+      ]
+    ]
+    element topic {
+      db.topic.attlist,
+      db.topic.info,
+      db.navigation.components*,
+      db.toplevel.blocks.or.sections,
+      db.navigation.components*
+    }
+}
diff --git a/applications/content/template/docbook/assembly/topic-maker-chunk.xsl b/applications/content/template/docbook/assembly/topic-maker-chunk.xsl
new file mode 100644
index 0000000..6bdaaf0
--- /dev/null
+++ b/applications/content/template/docbook/assembly/topic-maker-chunk.xsl
@@ -0,0 +1,221 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:xlink="http://www.w3.org/1999/xlink"
+                xmlns="http://docbook.org/ns/docbook"
+		version="1.0"
+                exclude-result-prefixes="exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+-->
+
+<xsl:import href="topic-maker.xsl"/>
+
+<xsl:import href="../xhtml/chunk-common.xsl"/>
+
+<xsl:include href="../xhtml/chunk-code.xsl"/>
+
+<xsl:param name="root.id.suffix">-info</xsl:param>
+<xsl:param name="root.as.resourceref" select="1"/>
+
+<xsl:template match="/" priority="1">
+  <xsl:apply-templates select="/" mode="process.root"/>
+
+  <xsl:call-template name="make.assembly"/>
+
+</xsl:template>
+
+<xsl:template name="chunk-element-content">
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:copy-of select="$content"/>
+</xsl:template>
+
+<xsl:template name="make.assembly">
+  <xsl:variable name="content">
+    <assembly xmlns:xlink="http://www.w3.org/1999/xlink">
+      <xsl:call-template name="make.resources"/>
+      <xsl:call-template name="make.structure"/>
+    </assembly>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:if test="$manifest.in.base.dir != 0">
+      <xsl:value-of select="$base.dir"/>
+    </xsl:if>
+    <xsl:value-of select="$assembly.filename"/>
+  </xsl:variable>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="content" select="$content"/>
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="indent">yes</xsl:with-param>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template name="make.structure">
+  <xsl:param name="root" select="/*[1]"/>
+
+  <xsl:param name="root.resourceref">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$root"/>
+    </xsl:call-template>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$root.as.resourceref = 0">
+      <structure>
+        <xsl:attribute name="type">
+          <xsl:value-of select="local-name($root)"/>
+        </xsl:attribute>
+        <xsl:attribute name="xml:id">
+          <xsl:value-of select="$root.resourceref"/>
+        </xsl:attribute>
+    
+        <xsl:copy-of select="($root/title | $root/info/title)[1]"/>
+    
+        <!-- Put the title and info stuff in a content-only module -->
+        <module resourceref="{$root.resourceref}{$root.id.suffix}" contentonly="true"/>
+        <xsl:apply-templates select="$root/*" mode="module.list"/>
+      </structure>
+    </xsl:when>
+    <xsl:otherwise>
+      <structure>
+        <xsl:attribute name="resourceref">
+          <xsl:value-of select="$root.resourceref"/>
+        </xsl:attribute>
+
+        <output renderas="{local-name($root)}"/>
+
+        <xsl:apply-templates select="$root/*" mode="module.list"/>
+      </structure>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="module.list">
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- generate an output element for renderas? -->
+  <xsl:variable name="src.element" select="concat(' ', local-name(.), ' ')"/>
+
+  <xsl:variable name="is.topic">
+    <xsl:choose>
+      <xsl:when test="contains($topic.list, $src.element)">1</xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="$is.chunk = 1">
+    <module>
+      <xsl:attribute name="resourceref">
+        <xsl:call-template name="object.id"/>
+      </xsl:attribute>
+
+      <xsl:if test="$is.topic = 1">
+        <output renderas="{local-name()}"/>
+      </xsl:if>
+
+      <xsl:apply-templates select="*" mode="module.list"/>
+    </module>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="make.resources">
+  <resources>
+    <!-- Add xml:base from $base.dir if manifest not in base.dir -->
+    <xsl:if test="string-length($base.dir) != 0 and
+                  $manifest.in.base.dir = 0">
+      <xsl:attribute name="xml:base">
+        <!-- strip off trailing slash for xml:base -->
+        <xsl:choose>
+          <xsl:when test="substring($base.dir, string-length($base.dir),1) = '/'">
+            <xsl:value-of select="substring($base.dir, 1, string-length($base.dir) -1)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$base.dir"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:apply-templates select="/*[1]" mode="resource.list"/>
+  </resources>
+</xsl:template>
+
+<xsl:template match="*" mode="resource.list">
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$is.chunk = 1">
+    <resource>
+      <xsl:attribute name="fileref">
+        <!--
+        <xsl:if test="$manifest.in.base.dir = 0">
+          <xsl:value-of select="$base.dir"/>
+        </xsl:if>
+        -->
+        <xsl:apply-templates select="." mode="chunk-filename"/>
+      </xsl:attribute>
+
+      <xsl:attribute name="xml:id">
+        <xsl:call-template name="object.id"/>
+      </xsl:attribute>
+
+      <xsl:variable name="title">
+        <xsl:apply-templates select="." mode="title.markup"/>
+      </xsl:variable>
+      <xsl:if test="string-length($title) != 0">
+        <description>
+          <xsl:value-of select="$title"/>
+        </description>
+      </xsl:if>
+
+    </resource>
+  </xsl:if>
+
+  <xsl:apply-templates select="*" mode="resource.list"/>
+</xsl:template>
+
+<!-- special case for root id on structure element -->
+<xsl:template match="/*" mode="resource.list">
+  <xsl:param name="root.resourceref">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="."/>
+    </xsl:call-template>
+  </xsl:param>
+
+  <resource>
+    <xsl:attribute name="fileref">
+      <xsl:apply-templates select="." mode="chunk-filename"/>
+    </xsl:attribute>
+    <xsl:attribute name="xml:id">
+      <xsl:choose>
+        <xsl:when test="$root.as.resourceref = 0">
+          <xsl:value-of select="concat($root.resourceref,$root.id.suffix)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$root.resourceref"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+  </resource>
+  <xsl:apply-templates select="*" mode="resource.list"/>
+</xsl:template>
+
+<!-- This one must be here because of the template in chunk-code.xsl -->
+<xsl:template match="@fileref" priority="1">
+    <xsl:copy-of select="."/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/assembly/topic-maker.xsl b/applications/content/template/docbook/assembly/topic-maker.xsl
new file mode 100644
index 0000000..ed6e977
--- /dev/null
+++ b/applications/content/template/docbook/assembly/topic-maker.xsl
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+  xmlns:exsl="http://exslt.org/common"
+  xmlns="http://docbook.org/ns/docbook"
+  exclude-result-prefixes="exsl"
+  version="1.0">
+
+<!-- $Id$ -->
+
+<!-- This stylesheet convert DocBook elements into topic element.
+     The chunking takes place elsewhere.  -->
+
+<xsl:import href="../xhtml/docbook.xsl"/>
+    
+    
+<xsl:param name="assembly.filename">myassembly.xml</xsl:param>
+<xsl:param name="chunk.section.depth" select="3"/>
+<xsl:param name="chunk.first.sections" select="1"/>
+<xsl:param name="use.id.as.filename" select="1"/>
+<xsl:param name="html.ext">.xml</xsl:param> 
+<xsl:param name="base.dir">topics/</xsl:param>
+<xsl:param name="root.filename" select="local-name(/*)"/>
+<xsl:param name="html.extra.head.links" select="0"/>
+<xsl:param name="stylesheet.result.type">xhtml</xsl:param>
+<xsl:param name="navig.showtitles" select="0"/>
+<xsl:param name="suppress.navigation" select="1"/>
+<xsl:param name="chunk.append"/>
+<xsl:param name="chunk.quietly" select="0"/>
+<xsl:param name="chunker.output.method" select="'xml'"/>
+<xsl:param name="chunker.output.encoding" select="'UTF-8'"/>
+<xsl:param name="chunker.output.indent" select="'no'"/>
+<xsl:param name="chunker.output.omit-xml-declaration" select="'no'"/>
+<xsl:param name="chunker.output.standalone" select="'no'"/>
+<xsl:param name="chunker.output.doctype-public" select="''"/>
+<xsl:param name="chunker.output.doctype-system" select="''"/>
+<xsl:param name="namespace">http://docbook.org/ns/docbook</xsl:param>
+
+<!-- These elements are converted to topic elements -->
+<xsl:param name="topic.elements">preface chapter article section</xsl:param>
+<xsl:variable name="topic.list"
+              select="concat(' ', normalize-space($topic.elements), ' ')"/>
+
+<!-- Default behavior is identity copy -->
+<xsl:template match="node()|@*">
+    <xsl:copy>
+      <xsl:apply-templates select="@*"/>
+      <xsl:apply-templates/>
+   </xsl:copy>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix|section|article">
+  <xsl:variable name="element.name">
+    <xsl:call-template name="element.name"/>
+  </xsl:variable>
+
+  <xsl:element name="{$element.name}" namespace="{$namespace}">
+    <xsl:apply-templates select="@*"/>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="element.name">
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="src.element" select="concat(' ', local-name($node), ' ')"/>
+  <xsl:choose>
+    <xsl:when test="contains($topic.list, $src.element)">
+      <xsl:text>topic</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="local-name($node)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/catalog.xml b/applications/content/template/docbook/catalog.xml
new file mode 100644
index 0000000..9926419
--- /dev/null
+++ b/applications/content/template/docbook/catalog.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
+  <!-- XML Catalog file for DocBook XSL Stylesheets vsnapshot_ -->
+  <rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl/current/" rewritePrefix="./"/>
+  <rewriteSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl/current/" rewritePrefix="./"/>
+  <rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl/snapshot_/" rewritePrefix="./"/>
+  <rewriteSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl/snapshot_/" rewritePrefix="./"/>
+</catalog>
diff --git a/applications/content/template/docbook/common/af.xml b/applications/content/template/docbook/common/af.xml
new file mode 100644
index 0000000..805f913
--- /dev/null
+++ b/applications/content/template/docbook/common/af.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="af" english-language-name="Afrikaans">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/af.xml -->
+<!-- * -->
+<!-- * E-mail the edited af.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Samevatting"/>
+<l:gentext key="abstract" text="samevatting"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="Antwoord:"/>
+<l:gentext key="answer" text="antwoord:"/>
+<l:gentext key="Appendix" text="Aanhangsel"/>
+<l:gentext key="appendix" text="aanhangsel"/>
+<l:gentext key="Article" text="Artikel"/>
+<l:gentext key="article" text="artikel"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografie"/>
+<l:gentext key="bibliography" text="bibliografie"/>
+<l:gentext key="Book" text="Boek"/>
+<l:gentext key="book" text="boek"/>
+<l:gentext key="CAUTION" text="PAS OP"/>
+<l:gentext key="Caution" text="Pas op"/>
+<l:gentext key="caution" text="pas op"/>
+<l:gentext key="Chapter" text="Hoofdstuk"/>
+<l:gentext key="chapter" text="hoofdstuk"/>
+<l:gentext key="Colophon" text="Kolifon"/>
+<l:gentext key="colophon" text="kolifon"/>
+<l:gentext key="Copyright" text="Kopie reg"/>
+<l:gentext key="copyright" text="kopie reg"/>
+<l:gentext key="Dedication" text="Opgedra aan"/>
+<l:gentext key="dedication" text="opgedra aan"/>
+<l:gentext key="Edition" text="Uitgawe"/>
+<l:gentext key="edition" text="uitgawe"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Vergelyking"/>
+<l:gentext key="equation" text="vergelyking"/>
+<l:gentext key="Example" text="Voorbeeld"/>
+<l:gentext key="example" text="voorbeeld"/>
+<l:gentext key="Figure" text="Figuur"/>
+<l:gentext key="figure" text="figuur"/>
+<l:gentext key="Glossary" text="Woordlys"/>
+<l:gentext key="glossary" text="woordlys"/>
+<l:gentext key="GlossSee" text="WoordelysSien"/>
+<l:gentext key="glosssee" text="woordelyssien"/>
+<l:gentext key="GlossSeeAlso" text="WoordelysSienOok"/>
+<l:gentext key="glossseealso" text="woordelyssienook"/>
+<l:gentext key="IMPORTANT" text="BELANGRIK"/>
+<l:gentext key="important" text="belangrik"/>
+<l:gentext key="Important" text="Belangrik"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="isbn"/>
+<l:gentext key="LegalNotice" text="RegsKennisgewing"/>
+<l:gentext key="legalnotice" text="regskennisgewing"/>
+<l:gentext key="MsgAud" text="Teikengroep"/>
+<l:gentext key="msgaud" text="teikengroep"/>
+<l:gentext key="MsgLevel" text="Vlak"/>
+<l:gentext key="msglevel" text="vlak"/>
+<l:gentext key="MsgOrig" text="Herkoms"/>
+<l:gentext key="msgorig" text="herkoms"/>
+<l:gentext key="NOTE" text="OPMERKING"/>
+<l:gentext key="Note" text="Opmerking"/>
+<l:gentext key="note" text="opmerking"/>
+<l:gentext key="Part" text="Deel"/>
+<l:gentext key="part" text="deel"/>
+<l:gentext key="Preface" text="Voorwoord"/>
+<l:gentext key="preface" text="voorwoord"/>
+<l:gentext key="Procedure" text="Prosedure"/>
+<l:gentext key="procedure" text="prosedure"/>
+<l:gentext key="ProductionSet" text="ProduksieStel"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Uitgegee"/>
+<l:gentext key="published" text="uitgegee"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Vraag et Antwoord"/>
+<l:gentext key="qandadiv" text="Vraag et Antwoord"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Vraag:"/>
+<l:gentext key="question" text="vraag:"/>
+<l:gentext key="RefEntry" text="Verwysingslemma"/>
+<l:gentext key="refentry" text="verwysingslemma"/>
+<l:gentext key="Reference" text="Verwysing"/>
+<l:gentext key="reference" text="verwysing"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Verwysingsnaam"/>
+<l:gentext key="refname" text="verwysingsnaam"/>
+<l:gentext key="RefSection" text="Verwysingsparagraaf"/>
+<l:gentext key="refsection" text="verwysingsparagraaf"/>
+<l:gentext key="RefSynopsisDiv" text="Verwysingsamevatting"/>
+<l:gentext key="refsynopsisdiv" text="verwysingsamevatting"/>
+<l:gentext key="RevHistory" text="Hersiening geskiedenis"/>
+<l:gentext key="revhistory" text="hersiening geskiedenis"/>
+<l:gentext key="revision" text="hersiening"/>
+<l:gentext key="Revision" text="Hersiening"/>
+<l:gentext key="sect1" text="Paragraaf"/>
+<l:gentext key="sect2" text="Paragraaf"/>
+<l:gentext key="sect3" text="Paragraaf"/>
+<l:gentext key="sect4" text="Paragraaf"/>
+<l:gentext key="sect5" text="Paragraaf"/>
+<l:gentext key="section" text="paragraaf"/>
+<l:gentext key="Section" text="Paragraaf"/>
+<l:gentext key="see" text="sien"/>
+<l:gentext key="See" text="Sien"/>
+<l:gentext key="seealso" text="sien ook"/>
+<l:gentext key="Seealso" text="Sien ook"/>
+<l:gentext key="SeeAlso" text="Sien Ook"/>
+<l:gentext key="set" text="versameling"/>
+<l:gentext key="Set" text="Versameling"/>
+<l:gentext key="setindex" text="versamelingindeks"/>
+<l:gentext key="SetIndex" text="VersamelingIndeks"/>
+<l:gentext key="Sidebar" text="Kantbalk"/>
+<l:gentext key="sidebar" text="kantbalk"/>
+<l:gentext key="step" text="stap"/>
+<l:gentext key="Step" text="Stap"/>
+<l:gentext key="table" text="tabel"/>
+<l:gentext key="Table" text="Tabel"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="leidraad"/>
+<l:gentext key="TIP" text="LEIDRAAD"/>
+<l:gentext key="Tip" text="Leidraad"/>
+<l:gentext key="Warning" text="Waarskuwing"/>
+<l:gentext key="warning" text="waarskuwing"/>
+<l:gentext key="WARNING" text="WAARSKUWING"/>
+<l:gentext key="and" text="en"/>
+<l:gentext key="or" text="of"/>
+<l:gentext key="by" text="deur"/>
+<l:gentext key="Edited" text="Geredigeer"/>
+<l:gentext key="edited" text="geredigeer"/>
+<l:gentext key="Editedby" text="Geredigeer deur"/>
+<l:gentext key="editedby" text="geredigeer deur"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Notas"/>
+<l:gentext key="Notes" text="notas"/>
+<l:gentext key="Pgs" text="bl."/>
+<l:gentext key="pgs" text="bl."/>
+<l:gentext key="Revisedby" text="Hersien deur"/>
+<l:gentext key="revisedby" text="hersien deur"/>
+<l:gentext key="TableNotes" text="TabelOpmerking"/>
+<l:gentext key="tablenotes" text="tabelopmerking"/>
+<l:gentext key="TableofContents" text="Inhoudsopgawe"/>
+<l:gentext key="tableofcontents" text="inhoudsopgawe"/>
+<l:gentext key="unexpectedelementname" text="onverwagte element naam"/>
+<l:gentext key="unsupported" text="nie geondersteun"/>
+<l:gentext key="xrefto" text="verwysing na"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="lys van vergelykings"/>
+<l:gentext key="ListofEquations" text="Lys van vergelykings"/>
+<l:gentext key="ListofExamples" text="Lys van voorbeelde"/>
+<l:gentext key="listofexamples" text="lys van voorbeelde"/>
+<l:gentext key="ListofFigures" text="Lys van figure"/>
+<l:gentext key="listoffigures" text="lys van figure"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="lys van tabelle"/>
+<l:gentext key="ListofTables" text="Lys van tabelle"/>
+<l:gentext key="ListofUnknown" text="Lys van onbekende tipes"/>
+<l:gentext key="listofunknown" text="lys van onbekende tipes"/>
+<l:gentext key="nav-home" text="Begin"/>
+<l:gentext key="nav-next" text="Volgende"/>
+<l:gentext key="nav-next-sibling" text="Verder vooruit"/>
+<l:gentext key="nav-prev" text="Terug"/>
+<l:gentext key="nav-prev-sibling" text="Verder terug"/>
+<l:gentext key="nav-up" text="Boontoe"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Proef"/>
+<l:gentext key="above" text="bo"/>
+<l:gentext key="below" text="onder"/>
+<l:gentext key="sectioncalled" text="die seksie genaamd"/>
+<l:gentext key="index symbols" text="indeks simbole"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Aanhangsel %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Hoofdstuk %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Vergelyking %n. %t"/>
+<l:template name="example" text="Voorbeeld %n. %t"/>
+<l:template name="figure" text="Figuur %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Deel %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Prosedure %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ProduksieStel %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabel %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Aanhangsel %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Hoofdstuk %n. %t"/>
+<l:template name="part" text="Deel %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Antwoord: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Vraag: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Vraag: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="die seksie genaamd “%t”"/>
+<l:template name="refsection" text="die seksie genaamd “%t”"/>
+<l:template name="refsect1" text="die seksie genaamd “%t”"/>
+<l:template name="refsect2" text="die seksie genaamd “%t”"/>
+<l:template name="refsect3" text="die seksie genaamd “%t”"/>
+<l:template name="sect1" text="die seksie genaamd “%t”"/>
+<l:template name="sect2" text="die seksie genaamd “%t”"/>
+<l:template name="sect3" text="die seksie genaamd “%t”"/>
+<l:template name="sect4" text="die seksie genaamd “%t”"/>
+<l:template name="sect5" text="die seksie genaamd “%t”"/>
+<l:template name="section" text="die seksie genaamd “%t”"/>
+<l:template name="simplesect" text="die seksie genaamd “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Antwoord: %n"/>
+<l:template name="appendix" text="Aanhangsel %n"/>
+<l:template name="bridgehead" text="Paragraaf %n"/>
+<l:template name="chapter" text="Hoofdstuk %n"/>
+<l:template name="equation" text="Vergelyking %n"/>
+<l:template name="example" text="Voorbeeld %n"/>
+<l:template name="figure" text="Figuur %n"/>
+<l:template name="part" text="Deel %n"/>
+<l:template name="procedure" text="Prosedure %n"/>
+<l:template name="productionset" text="ProduksieStel %n"/>
+<l:template name="qandadiv" text="Vraag et Antwoord %n"/>
+<l:template name="qandaentry" text="Vraag: %n"/>
+<l:template name="question" text="Vraag: %n"/>
+<l:template name="sect1" text="Paragraaf %n"/>
+<l:template name="sect2" text="Paragraaf %n"/>
+<l:template name="sect3" text="Paragraaf %n"/>
+<l:template name="sect4" text="Paragraaf %n"/>
+<l:template name="sect5" text="Paragraaf %n"/>
+<l:template name="section" text="Paragraaf %n"/>
+<l:template name="table" text="Tabel %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Aanhangsel %n, %t"/>
+<l:template name="bridgehead" text="Paragraaf %n, “%t”"/>
+<l:template name="chapter" text="Hoofdstuk %n, %t"/>
+<l:template name="equation" text="Vergelyking %n, “%t”"/>
+<l:template name="example" text="Voorbeeld %n, “%t”"/>
+<l:template name="figure" text="Figuur %n, “%t”"/>
+<l:template name="part" text="Deel %n, “%t”"/>
+<l:template name="procedure" text="Prosedure %n, “%t”"/>
+<l:template name="productionset" text="ProduksieStel %n, “%t”"/>
+<l:template name="qandadiv" text="Vraag et Antwoord %n, “%t”"/>
+<l:template name="refsect1" text="die seksie genaamd “%t”"/>
+<l:template name="refsect2" text="die seksie genaamd “%t”"/>
+<l:template name="refsect3" text="die seksie genaamd “%t”"/>
+<l:template name="refsection" text="die seksie genaamd “%t”"/>
+<l:template name="sect1" text="Paragraaf %n, “%t”"/>
+<l:template name="sect2" text="Paragraaf %n, “%t”"/>
+<l:template name="sect3" text="Paragraaf %n, “%t”"/>
+<l:template name="sect4" text="Paragraaf %n, “%t”"/>
+<l:template name="sect5" text="Paragraaf %n, “%t”"/>
+<l:template name="section" text="Paragraaf %n, “%t”"/>
+<l:template name="simplesect" text="die seksie genaamd “%t”"/>
+<l:template name="table" text="Tabel %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" en "/>
+<l:template name="seplast" text=", en "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="WoordelysSien %t."/>
+<l:template name="seealso" text="WoordelysSienOok %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Teikengroep: "/>
+<l:template name="MsgLevel" text="Vlak: "/>
+<l:template name="MsgOrig" text="Herkoms: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0436 Afrikaans"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/am.xml b/applications/content/template/docbook/common/am.xml
new file mode 100644
index 0000000..fdf133b
--- /dev/null
+++ b/applications/content/template/docbook/common/am.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="am" english-language-name="Amharic">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/am.xml -->
+<!-- * -->
+<!-- * E-mail the edited am.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="ረቂቅ"/>
+<l:gentext key="abstract" text="ረቂቅ"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="መ፦"/>
+<l:gentext key="answer" text="መ፦"/>
+<l:gentext key="Appendix" text="ተጨማሪ"/>
+<l:gentext key="appendix" text="ተጨማሪ"/>
+<l:gentext key="Article" text="ጽሑፍ"/>
+<l:gentext key="article" text="ጽሑፍ"/>
+<l:gentext key="Author" text="ደራሲ"/>
+<l:gentext key="Bibliography" text="የመጻሕፍት ዝርዝር"/>
+<l:gentext key="bibliography" text="የመጻሕፍት ዝርዝር"/>
+<l:gentext key="Book" text="መጽሐፍ"/>
+<l:gentext key="book" text="መጽሐፍ"/>
+<l:gentext key="CAUTION" text="ጥንቃቄ"/>
+<l:gentext key="Caution" text="ጥንቃቄ"/>
+<l:gentext key="caution" text="ጥንቃቄ"/>
+<l:gentext key="Chapter" text="ምዕራፍ"/>
+<l:gentext key="chapter" text="ምዕራፍ"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="የቅጂው መብት"/>
+<l:gentext key="copyright" text="የቅጂው መብት"/>
+<l:gentext key="Dedication" text="ለአላማ መሰዋት"/>
+<l:gentext key="dedication" text="ለአላማ መሰዋት"/>
+<l:gentext key="Edition" text="ቅጂ"/>
+<l:gentext key="edition" text="ቅጂ"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="እኩሌታ"/>
+<l:gentext key="equation" text="እኩሌታ"/>
+<l:gentext key="Example" text="ለምሳሌ"/>
+<l:gentext key="example" text="ለምሳሌ"/>
+<l:gentext key="Figure" text="ምስል"/>
+<l:gentext key="figure" text="ምስል"/>
+<l:gentext key="Glossary" text="የቃላቶች ፍቺ ዝርዝር"/>
+<l:gentext key="glossary" text="የቃላቶች ፍቺ ዝርዝር"/>
+<l:gentext key="GlossSee" text="ማየት (እይ)"/>
+<l:gentext key="glosssee" text="ማየት (እይ)"/>
+<l:gentext key="GlossSeeAlso" text="…ንም እይ"/>
+<l:gentext key="glossseealso" text="…ንም እይ"/>
+<l:gentext key="IMPORTANT" text="አስፈላጊ"/>
+<l:gentext key="important" text="አስፈላጊ"/>
+<l:gentext key="Important" text="አስፈላጊ"/>
+<l:gentext key="Index" text="ማውጫ"/>
+<l:gentext key="index" text="ማውጫ"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="ህጋዊ ማስታወቂያ"/>
+<l:gentext key="legalnotice" text="ህጋዊ ማስታወቂያ"/>
+<l:gentext key="MsgAud" text="ተመልካች"/>
+<l:gentext key="msgaud" text="ተመልካች"/>
+<l:gentext key="MsgLevel" text="ደረጃ"/>
+<l:gentext key="msglevel" text="ደረጃ"/>
+<l:gentext key="MsgOrig" text="ምንጭ"/>
+<l:gentext key="msgorig" text="ምንጭ"/>
+<l:gentext key="NOTE" text="ማስታወሻ"/>
+<l:gentext key="Note" text="ማስታወሻ"/>
+<l:gentext key="note" text="ማስታወሻ"/>
+<l:gentext key="Part" text="ክፍል"/>
+<l:gentext key="part" text="ክፍል"/>
+<l:gentext key="Preface" text="መቅድም"/>
+<l:gentext key="preface" text="መቅድም"/>
+<l:gentext key="Procedure" text="ቅደም ተከተል"/>
+<l:gentext key="procedure" text="ቅደም ተከተል"/>
+<l:gentext key="ProductionSet" text="ምርት"/>
+<l:gentext key="PubDate" text="የታተመበት ቀን"/>
+<l:gentext key="pubdate" text="የታተመበት ቀን"/>
+<l:gentext key="Published" text="ታትሟል"/>
+<l:gentext key="published" text="ታትሟል"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="ጥያቄ እና መልስ"/>
+<l:gentext key="qandadiv" text="ጥያቄ እና መልስ"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="ጥ፦"/>
+<l:gentext key="question" text="ጥ፦"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="ማጣቀሻ"/>
+<l:gentext key="reference" text="ማጣቀሻ"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="ስም"/>
+<l:gentext key="refname" text="ስም"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="መግለጫ"/>
+<l:gentext key="refsynopsisdiv" text="መግለጫ"/>
+<l:gentext key="RevHistory" text="የተሻሻለ ታሪክ"/>
+<l:gentext key="revhistory" text="የተሻሻለ ታሪክ"/>
+<l:gentext key="revision" text="የተሻሻለ"/>
+<l:gentext key="Revision" text="የተሻሻለ"/>
+<l:gentext key="sect1" text="ክፍል"/>
+<l:gentext key="sect2" text="ክፍል"/>
+<l:gentext key="sect3" text="ክፍል"/>
+<l:gentext key="sect4" text="ክፍል"/>
+<l:gentext key="sect5" text="ክፍል"/>
+<l:gentext key="section" text="ክፍል"/>
+<l:gentext key="Section" text="ክፍል"/>
+<l:gentext key="see" text="ማየት (እይ)"/>
+<l:gentext key="See" text="ማየት (እይ)"/>
+<l:gentext key="seealso" text="…ንም እይ"/>
+<l:gentext key="Seealso" text="…ንም እይ"/>
+<l:gentext key="SeeAlso" text="…ንም እይ"/>
+<l:gentext key="set" text="አድርግ"/>
+<l:gentext key="Set" text="አድርግ"/>
+<l:gentext key="setindex" text="ማውጫውን ይመልከቱ"/>
+<l:gentext key="SetIndex" text="ማውጫውን ይመልከቱ"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="የጥግ ቋሚ"/>
+<l:gentext key="step" text="ደረጃ"/>
+<l:gentext key="Step" text="ደረጃ"/>
+<l:gentext key="table" text="ሠንጠረዥ"/>
+<l:gentext key="Table" text="ሠንጠረዥ"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="ፍንጭ"/>
+<l:gentext key="TIP" text="ፍንጭ"/>
+<l:gentext key="Tip" text="ፍንጭ"/>
+<l:gentext key="Warning" text="ማስጠንቀቂያ"/>
+<l:gentext key="warning" text="ማስጠንቀቂያ"/>
+<l:gentext key="WARNING" text="ማስጠንቀቂያ"/>
+<l:gentext key="and" text="እና"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="በ"/>
+<l:gentext key="Edited" text="የተዘጋጀ"/>
+<l:gentext key="edited" text="የተዘጋጀ"/>
+<l:gentext key="Editedby" text="የተዘጋጀው በ"/>
+<l:gentext key="editedby" text="የተዘጋጀው በ"/>
+<l:gentext key="in" text="ውስጥ"/>
+<l:gentext key="lastlistcomma" text="፣"/>
+<l:gentext key="listcomma" text="፣"/>
+<l:gentext key="notes" text="ማስታወሻዎች"/>
+<l:gentext key="Notes" text="ማስታወሻዎች"/>
+<l:gentext key="Pgs" text="ገጾች"/>
+<l:gentext key="pgs" text="ገጾች"/>
+<l:gentext key="Revisedby" text="የተሻሻለው በ"/>
+<l:gentext key="revisedby" text="የተሻሻለው በ"/>
+<l:gentext key="TableNotes" text="ማስታወሻዎች"/>
+<l:gentext key="tablenotes" text="ማስታወሻዎች"/>
+<l:gentext key="TableofContents" text="ማውጫ"/>
+<l:gentext key="tableofcontents" text="ማውጫ"/>
+<l:gentext key="unexpectedelementname" text="ያልተጠበቀ የመሠረታዊ ነገር ስም"/>
+<l:gentext key="unsupported" text="ያልተደገፈ"/>
+<l:gentext key="xrefto" text="xref ወደ"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="የእኩሌታዎች ዝርዝር"/>
+<l:gentext key="ListofEquations" text="የእኩሌታዎች ዝርዝር"/>
+<l:gentext key="ListofExamples" text="የምሳሌዎች ዝርዝር"/>
+<l:gentext key="listofexamples" text="የምሳሌዎች ዝርዝር"/>
+<l:gentext key="ListofFigures" text="የምስሎች ዝርዝር"/>
+<l:gentext key="listoffigures" text="የምስሎች ዝርዝር"/>
+<l:gentext key="ListofProcedures" text="የቅደም ተከተሎቹ ዝርዝር"/>
+<l:gentext key="listofprocedures" text="የቅደም ተከተሎቹ ዝርዝር"/>
+<l:gentext key="listoftables" text="የሠንጠረዦቹ ዝርዝር"/>
+<l:gentext key="ListofTables" text="የሠንጠረዦቹ ዝርዝር"/>
+<l:gentext key="ListofUnknown" text="ያልታወቁ ዝርዝር"/>
+<l:gentext key="listofunknown" text="ያልታወቁ ዝርዝር"/>
+<l:gentext key="nav-home" text="መጀመሪያ"/>
+<l:gentext key="nav-next" text="የሚቀጥለው"/>
+<l:gentext key="nav-next-sibling" text="በፍጥነት ወደፊት"/>
+<l:gentext key="nav-prev" text="ያለፈው"/>
+<l:gentext key="nav-prev-sibling" text="በፍጥነት ወደኋላ"/>
+<l:gentext key="nav-up" text="ወደ ላይ"/>
+<l:gentext key="nav-toc" text="ወደ ሲ"/>
+<l:gentext key="Draft" text="ንድፍ"/>
+<l:gentext key="above" text="ከላይ"/>
+<l:gentext key="below" text="ከስር"/>
+<l:gentext key="sectioncalled" text="የክፍሉ መጠሪያ"/>
+<l:gentext key="index symbols" text="ምልክቶች"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="ተጨማሪ %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="ምዕራፍ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="እኩሌታ %n. %t"/>
+<l:template name="example" text="ለምሳሌ %n. %t"/>
+<l:template name="figure" text="ምስል %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ክፍል %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="ቅደም ተከተል %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ምርት %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="ሠንጠረዥ %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="ተጨማሪ %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="ምዕራፍ %n. %t"/>
+<l:template name="part" text="ክፍል %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="መ፦ %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="ጥ፦ %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="ጥ፦ %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" በ%o"/>
+<l:template name="olink.page.citation" text=" (ገጽ %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(ገጽ %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" በዶሴው ውስጥ ርዕስ የተሰጠው %o"/>
+<l:template name="pageabbrev" text="(ገጽ %p)"/>
+<l:template name="Page" text="ገጽ %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsection" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsect1" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsect2" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsect3" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="sect1" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="sect2" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="sect3" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="sect4" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="sect5" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="section" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="simplesect" text="የክፍሉ መጠሪያ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="መ፦ %n"/>
+<l:template name="appendix" text="ተጨማሪ %n"/>
+<l:template name="bridgehead" text="ክፍል %n"/>
+<l:template name="chapter" text="ምዕራፍ %n"/>
+<l:template name="equation" text="እኩሌታ %n"/>
+<l:template name="example" text="ለምሳሌ %n"/>
+<l:template name="figure" text="ምስል %n"/>
+<l:template name="part" text="ክፍል %n"/>
+<l:template name="procedure" text="ቅደም ተከተል %n"/>
+<l:template name="productionset" text="ምርት %n"/>
+<l:template name="qandadiv" text="ጥያቄ እና መልስ %n"/>
+<l:template name="qandaentry" text="ጥ፦ %n"/>
+<l:template name="question" text="ጥ፦ %n"/>
+<l:template name="sect1" text="ክፍል %n"/>
+<l:template name="sect2" text="ክፍል %n"/>
+<l:template name="sect3" text="ክፍል %n"/>
+<l:template name="sect4" text="ክፍል %n"/>
+<l:template name="sect5" text="ክፍል %n"/>
+<l:template name="section" text="ክፍል %n"/>
+<l:template name="table" text="ሠንጠረዥ %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="ተጨማሪ %n, %t"/>
+<l:template name="bridgehead" text="ክፍል %n, “%t”"/>
+<l:template name="chapter" text="ምዕራፍ %n, %t"/>
+<l:template name="equation" text="እኩሌታ %n, “%t”"/>
+<l:template name="example" text="ለምሳሌ %n, “%t”"/>
+<l:template name="figure" text="ምስል %n, “%t”"/>
+<l:template name="part" text="ክፍል %n, “%t”"/>
+<l:template name="procedure" text="ቅደም ተከተል %n, “%t”"/>
+<l:template name="productionset" text="ምርት %n, “%t”"/>
+<l:template name="qandadiv" text="ጥያቄ እና መልስ %n, “%t”"/>
+<l:template name="refsect1" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsect2" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsect3" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="refsection" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="sect1" text="ክፍል %n, “%t”"/>
+<l:template name="sect2" text="ክፍል %n, “%t”"/>
+<l:template name="sect3" text="ክፍል %n, “%t”"/>
+<l:template name="sect4" text="ክፍል %n, “%t”"/>
+<l:template name="sect5" text="ክፍል %n, “%t”"/>
+<l:template name="section" text="ክፍል %n, “%t”"/>
+<l:template name="simplesect" text="የክፍሉ መጠሪያ “%t”"/>
+<l:template name="table" text="ሠንጠረዥ %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text="፣ "/>
+<l:template name="sep2" text=" እና "/>
+<l:template name="seplast" text="፣ እና "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="ማየት (እይ) %t."/>
+<l:template name="seealso" text="…ንም እይ %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="ተመልካች፦ "/>
+<l:template name="MsgLevel" text="ደረጃ፦ "/>
+<l:template name="MsgOrig" text="ምንጭ፦ "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d B Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[ትርጉም፦ "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="ጃንዩወሪ"/>
+<l:template name="February" text="ፌብሩወሪ"/>
+<l:template name="March" text="ማርች"/>
+<l:template name="April" text="ኤፕረል"/>
+<l:template name="May" text="ሜይ"/>
+<l:template name="June" text="ጁን"/>
+<l:template name="July" text="ጁላይ"/>
+<l:template name="August" text="ኦገስት"/>
+<l:template name="September" text="ሴፕቴምበር"/>
+<l:template name="October" text="ኦክተውበር"/>
+<l:template name="November" text="ኖቬምበር"/>
+<l:template name="December" text="ዲሴምበር"/>
+<l:template name="Monday" text="ሰኞ"/>
+<l:template name="Tuesday" text="ማክሰኞ"/>
+<l:template name="Wednesday" text="ረቡዕ"/>
+<l:template name="Thursday" text="ሐሙስ"/>
+<l:template name="Friday" text="ዓርብ"/>
+<l:template name="Saturday" text="ቅዳሜ"/>
+<l:template name="Sunday" text="እሑድ"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="ጃንዩ"/>
+<l:template name="Feb" text="ፌብሩ"/>
+<l:template name="Mar" text="ማርች"/>
+<l:template name="Apr" text="ኤፕረ"/>
+<l:template name="May" text="ሜይ "/>
+<l:template name="Jun" text="ጁን "/>
+<l:template name="Jul" text="ጁላይ"/>
+<l:template name="Aug" text="ኦገስ"/>
+<l:template name="Sep" text="ሴፕቴ"/>
+<l:template name="Oct" text="ኦክተ"/>
+<l:template name="Nov" text="ኖቬም"/>
+<l:template name="Dec" text="ዲሴም"/>
+<l:template name="Mon" text="ሰኞ "/>
+<l:template name="Tue" text="ማክሰ"/>
+<l:template name="Wed" text="ረቡዕ"/>
+<l:template name="Thu" text="ሐሙስ"/>
+<l:template name="Fri" text="ዓርብ"/>
+<l:template name="Sat" text="ቅዳሜ"/>
+<l:template name="Sun" text="እሑድ"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 English"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">ምልክቶች</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/ar.xml b/applications/content/template/docbook/common/ar.xml
new file mode 100644
index 0000000..7a7bfcb
--- /dev/null
+++ b/applications/content/template/docbook/common/ar.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ar" english-language-name="Arabic">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ar.xml -->
+<!-- * -->
+<!-- * E-mail the edited ar.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="خلاصة"/>
+<l:gentext key="abstract" text="خلاصة"/>
+<l:gentext key="Acknowledgements" text="عرفان"/>
+<l:gentext key="acknowledgements" text="عرفان"/>
+<l:gentext key="Answer" text="ج:"/>
+<l:gentext key="answer" text="ج:"/>
+<l:gentext key="Appendix" text="ملحق"/>
+<l:gentext key="appendix" text="ملحق"/>
+<l:gentext key="Article" text="مقال"/>
+<l:gentext key="article" text="مقال"/>
+<l:gentext key="Author" text="مؤلف"/>
+<l:gentext key="Bibliography" text="قائمة المراجع"/>
+<l:gentext key="bibliography" text="قائمة المراجع"/>
+<l:gentext key="Book" text="كتاب"/>
+<l:gentext key="book" text="كتاب"/>
+<l:gentext key="CAUTION" text="تحذير"/>
+<l:gentext key="Caution" text="تحذير"/>
+<l:gentext key="caution" text="تحذير"/>
+<l:gentext key="Chapter" text="فصل"/>
+<l:gentext key="chapter" text="فصل"/>
+<l:gentext key="Colophon" text="الناشر"/>
+<l:gentext key="colophon" text="الناشر"/>
+<l:gentext key="Copyright" text="حقوق النشر"/>
+<l:gentext key="copyright" text="حقوق النشر"/>
+<l:gentext key="Dedication" text="إهداء"/>
+<l:gentext key="dedication" text="إهداء"/>
+<l:gentext key="Edition" text="نسخة"/>
+<l:gentext key="edition" text="نسخة"/>
+<l:gentext key="Editor" text="محرر"/>
+<l:gentext key="Equation" text="معادلة"/>
+<l:gentext key="equation" text="معادلة"/>
+<l:gentext key="Example" text="مثال"/>
+<l:gentext key="example" text="مثال"/>
+<l:gentext key="Figure" text="شكل"/>
+<l:gentext key="figure" text="شكل"/>
+<l:gentext key="Glossary" text="قاموس المفردات"/>
+<l:gentext key="glossary" text="قاموس المفردات"/>
+<l:gentext key="GlossSee" text="انظر"/>
+<l:gentext key="glosssee" text="انظر"/>
+<l:gentext key="GlossSeeAlso" text="انظر أيضاً"/>
+<l:gentext key="glossseealso" text="انظر أيضاً"/>
+<l:gentext key="IMPORTANT" text="هام"/>
+<l:gentext key="important" text="هام"/>
+<l:gentext key="Important" text="هام"/>
+<l:gentext key="Index" text="فهرس"/>
+<l:gentext key="index" text="فهرس"/>
+<l:gentext key="ISBN" text="الترقيم العالمي القياسي للكتاب"/>
+<l:gentext key="isbn" text="الترقيم العالمي القياسي للكتاب"/>
+<l:gentext key="LegalNotice" text="ملاحظة قانونية"/>
+<l:gentext key="legalnotice" text="ملاحظة قانونية"/>
+<l:gentext key="MsgAud" text="الجمهور"/>
+<l:gentext key="msgaud" text="الجمهور"/>
+<l:gentext key="MsgLevel" text="المستوى"/>
+<l:gentext key="msglevel" text="المستوى"/>
+<l:gentext key="MsgOrig" text="المصدر"/>
+<l:gentext key="msgorig" text="المصدر"/>
+<l:gentext key="NOTE" text="ملاحظة"/>
+<l:gentext key="Note" text="ملاحظة"/>
+<l:gentext key="note" text="ملاحظة"/>
+<l:gentext key="Part" text="جزء"/>
+<l:gentext key="part" text="جزء"/>
+<l:gentext key="Preface" text="مقدمة"/>
+<l:gentext key="preface" text="مقدمة"/>
+<l:gentext key="Procedure" text="إجراء"/>
+<l:gentext key="procedure" text="إجراء"/>
+<l:gentext key="ProductionSet" text="منتج"/>
+<l:gentext key="PubDate" text="تاريخ النشر"/>
+<l:gentext key="pubdate" text="تاريخ النشر"/>
+<l:gentext key="Published" text="منشور"/>
+<l:gentext key="published" text="منشور"/>
+<l:gentext key="Publisher" text="الناشر"/>
+<l:gentext key="Qandadiv" text="س و ج"/>
+<l:gentext key="qandadiv" text="س و ج"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="س:"/>
+<l:gentext key="question" text="س:"/>
+<l:gentext key="RefEntry" text="صفحة"/>
+<l:gentext key="refentry" text="صفحة"/>
+<l:gentext key="Reference" text="مرجع"/>
+<l:gentext key="reference" text="مرجع"/>
+<l:gentext key="References" text="مراجع"/>
+<l:gentext key="RefName" text="الاسم"/>
+<l:gentext key="refname" text="الاسم"/>
+<l:gentext key="RefSection" text="قسم"/>
+<l:gentext key="refsection" text="قسم"/>
+<l:gentext key="RefSynopsisDiv" text="المختصر"/>
+<l:gentext key="refsynopsisdiv" text="المختصر"/>
+<l:gentext key="RevHistory" text="تاريخ المراجعة"/>
+<l:gentext key="revhistory" text="تاريخ المراجعة"/>
+<l:gentext key="revision" text="مراجعة"/>
+<l:gentext key="Revision" text="مراجعة"/>
+<l:gentext key="sect1" text="قسم"/>
+<l:gentext key="sect2" text="قسم"/>
+<l:gentext key="sect3" text="قسم"/>
+<l:gentext key="sect4" text="قسم"/>
+<l:gentext key="sect5" text="قسم"/>
+<l:gentext key="section" text="قسم"/>
+<l:gentext key="Section" text="قسم"/>
+<l:gentext key="see" text="استعرض"/>
+<l:gentext key="See" text="استعرض"/>
+<l:gentext key="seealso" text="استعرض أيضاً"/>
+<l:gentext key="Seealso" text="استعرض أيضاً"/>
+<l:gentext key="SeeAlso" text="استعرض أيضاً"/>
+<l:gentext key="set" text="مجموعة"/>
+<l:gentext key="Set" text="مجموعة"/>
+<l:gentext key="setindex" text="فهرس المجموعة"/>
+<l:gentext key="SetIndex" text="فهرس المجموعة"/>
+<l:gentext key="Sidebar" text="الشريط الجانبي"/>
+<l:gentext key="sidebar" text="الشريط الجانبي"/>
+<l:gentext key="step" text="خطوة"/>
+<l:gentext key="Step" text="خطوة"/>
+<l:gentext key="table" text="جدول"/>
+<l:gentext key="Table" text="جدول"/>
+<l:gentext key="task" text="مَهمة"/>
+<l:gentext key="Task" text="مَهمة"/>
+<l:gentext key="tip" text="فكرة مفيدة"/>
+<l:gentext key="TIP" text="فكرة مفيدة"/>
+<l:gentext key="Tip" text="فكرة مفيدة"/>
+<l:gentext key="Warning" text="تنبيه"/>
+<l:gentext key="warning" text="تنبيه"/>
+<l:gentext key="WARNING" text="تنبيه"/>
+<l:gentext key="and" text="و"/>
+<l:gentext key="or" text="أو"/>
+<l:gentext key="by" text="بواسطة"/>
+<l:gentext key="Edited" text="معدل"/>
+<l:gentext key="edited" text="معدل"/>
+<l:gentext key="Editedby" text="معدل بواسطة"/>
+<l:gentext key="editedby" text="معدل بواسطة"/>
+<l:gentext key="in" text="في"/>
+<l:gentext key="lastlistcomma" text="،"/>
+<l:gentext key="listcomma" text="،"/>
+<l:gentext key="notes" text="ملاحظات"/>
+<l:gentext key="Notes" text="ملاحظات"/>
+<l:gentext key="Pgs" text="صفحات"/>
+<l:gentext key="pgs" text="صفحات"/>
+<l:gentext key="Revisedby" text="تمت المراجعة بواسطة: "/>
+<l:gentext key="revisedby" text="تمت المراجعة بواسطة: "/>
+<l:gentext key="TableNotes" text="ملاحظات"/>
+<l:gentext key="tablenotes" text="ملاحظات"/>
+<l:gentext key="TableofContents" text="قائمة المحتويات"/>
+<l:gentext key="tableofcontents" text="قائمة المحتويات"/>
+<l:gentext key="unexpectedelementname" text="اسم عنصر غير متوقع"/>
+<l:gentext key="unsupported" text="غير مدعوم"/>
+<l:gentext key="xrefto" text="إشارة إلى"/>
+<l:gentext key="Authors" text="مؤلفون"/>
+<l:gentext key="copyeditor" text="محرر النسخة"/>
+<l:gentext key="graphicdesigner" text="مصمم جرافيكي"/>
+<l:gentext key="productioneditor" text="محرر إنتاج"/>
+<l:gentext key="technicaleditor" text="محرر فني"/>
+<l:gentext key="translator" text="مترجم"/>
+<l:gentext key="listofequations" text="قائمة المعادلات"/>
+<l:gentext key="ListofEquations" text="قائمة المعادلات"/>
+<l:gentext key="ListofExamples" text="قائمة الأمثلة"/>
+<l:gentext key="listofexamples" text="قائمة الأمثلة"/>
+<l:gentext key="ListofFigures" text="قائمة الأشكال"/>
+<l:gentext key="listoffigures" text="قائمة الأشكال"/>
+<l:gentext key="ListofProcedures" text="قائمة الإجراءات"/>
+<l:gentext key="listofprocedures" text="قائمة الإجراءات"/>
+<l:gentext key="listoftables" text="قائمة الجداول"/>
+<l:gentext key="ListofTables" text="قائمة الجداول"/>
+<l:gentext key="ListofUnknown" text="قائمة المجهولات"/>
+<l:gentext key="listofunknown" text="قائمة المجهولات"/>
+<l:gentext key="nav-home" text="البداية"/>
+<l:gentext key="nav-next" text="التالي"/>
+<l:gentext key="nav-next-sibling" text="إلى الأمام"/>
+<l:gentext key="nav-prev" text="السابق"/>
+<l:gentext key="nav-prev-sibling" text="إلى الخلف"/>
+<l:gentext key="nav-up" text="أعلى"/>
+<l:gentext key="nav-toc" text="الفهرس"/>
+<l:gentext key="Draft" text="مسودة"/>
+<l:gentext key="above" text="أعلى"/>
+<l:gentext key="below" text="فيما يلي"/>
+<l:gentext key="sectioncalled" text="القسم المسمى"/>
+<l:gentext key="index symbols" text="الرموز"/>
+<l:gentext key="writing-mode" text="rl-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="‐"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="ملحق %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="فصل %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="معادلة %n. %t"/>
+<l:template name="example" text="مثال %n. %t"/>
+<l:template name="figure" text="شكل %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="جزء %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="إجراء %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="منتج %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="جدول %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="ملحق %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="فصل %n. %t"/>
+<l:template name="part" text="جزء %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="ج: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="س: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="س: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="القسم المسمى “%t”"/>
+<l:template name="refsection" text="القسم المسمى “%t”"/>
+<l:template name="refsect1" text="القسم المسمى “%t”"/>
+<l:template name="refsect2" text="القسم المسمى “%t”"/>
+<l:template name="refsect3" text="القسم المسمى “%t”"/>
+<l:template name="sect1" text="القسم المسمى “%t”"/>
+<l:template name="sect2" text="القسم المسمى “%t”"/>
+<l:template name="sect3" text="القسم المسمى “%t”"/>
+<l:template name="sect4" text="القسم المسمى “%t”"/>
+<l:template name="sect5" text="القسم المسمى “%t”"/>
+<l:template name="section" text="القسم المسمى “%t”"/>
+<l:template name="simplesect" text="القسم المسمى “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="ج: %n"/>
+<l:template name="appendix" text="ملحق %n"/>
+<l:template name="bridgehead" text="قسم %n"/>
+<l:template name="chapter" text="فصل %n"/>
+<l:template name="equation" text="معادلة %n"/>
+<l:template name="example" text="مثال %n"/>
+<l:template name="figure" text="شكل %n"/>
+<l:template name="part" text="جزء %n"/>
+<l:template name="procedure" text="إجراء %n"/>
+<l:template name="productionset" text="منتج %n"/>
+<l:template name="qandadiv" text="س و ج %n"/>
+<l:template name="qandaentry" text="س: %n"/>
+<l:template name="question" text="س: %n"/>
+<l:template name="sect1" text="قسم %n"/>
+<l:template name="sect2" text="قسم %n"/>
+<l:template name="sect3" text="قسم %n"/>
+<l:template name="sect4" text="قسم %n"/>
+<l:template name="sect5" text="قسم %n"/>
+<l:template name="section" text="قسم %n"/>
+<l:template name="table" text="جدول %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="ملحق %n, %t"/>
+<l:template name="bridgehead" text="قسم %n, “%t”"/>
+<l:template name="chapter" text="فصل %n, %t"/>
+<l:template name="equation" text="معادلة %n, “%t”"/>
+<l:template name="example" text="مثال %n, “%t”"/>
+<l:template name="figure" text="شكل %n, “%t”"/>
+<l:template name="part" text="جزء %n, “%t”"/>
+<l:template name="procedure" text="إجراء %n, “%t”"/>
+<l:template name="productionset" text="منتج %n, “%t”"/>
+<l:template name="qandadiv" text="س و ج %n, “%t”"/>
+<l:template name="refsect1" text="القسم المسمى “%t”"/>
+<l:template name="refsect2" text="القسم المسمى “%t”"/>
+<l:template name="refsect3" text="القسم المسمى “%t”"/>
+<l:template name="refsection" text="القسم المسمى “%t”"/>
+<l:template name="sect1" text="قسم %n, “%t”"/>
+<l:template name="sect2" text="قسم %n, “%t”"/>
+<l:template name="sect3" text="قسم %n, “%t”"/>
+<l:template name="sect4" text="قسم %n, “%t”"/>
+<l:template name="sect5" text="قسم %n, “%t”"/>
+<l:template name="section" text="قسم %n, “%t”"/>
+<l:template name="simplesect" text="القسم المسمى “%t”"/>
+<l:template name="table" text="جدول %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text="، "/>
+<l:template name="sep2" text=" و "/>
+<l:template name="seplast" text="، و "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="انظر %t."/>
+<l:template name="seealso" text="انظر أيضاً %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="الجمهور: "/>
+<l:template name="MsgLevel" text="المستوى: "/>
+<l:template name="MsgOrig" text="المصدر: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="يناير"/>
+<l:template name="February" text="فبراير"/>
+<l:template name="March" text="مارس"/>
+<l:template name="April" text="أبريل"/>
+<l:template name="May" text="مايو"/>
+<l:template name="June" text="يونيو"/>
+<l:template name="July" text="يوليو"/>
+<l:template name="August" text="أغسطس"/>
+<l:template name="September" text="سبتمبر"/>
+<l:template name="October" text="أكتوبر"/>
+<l:template name="November" text="نوفمبر"/>
+<l:template name="December" text="ديسمبر"/>
+<l:template name="Monday" text="الإثنين"/>
+<l:template name="Tuesday" text="الثلاثاء"/>
+<l:template name="Wednesday" text="الأربعاء"/>
+<l:template name="Thursday" text="الخميس"/>
+<l:template name="Friday" text="الجمعة"/>
+<l:template name="Saturday" text="السبت"/>
+<l:template name="Sunday" text="الأحد"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="يناير"/>
+<l:template name="Feb" text="فبراير"/>
+<l:template name="Mar" text="مارس"/>
+<l:template name="Apr" text="أبريل"/>
+<l:template name="May" text="مايو"/>
+<l:template name="Jun" text="يونيو"/>
+<l:template name="Jul" text="يوليو"/>
+<l:template name="Aug" text="أغسطس"/>
+<l:template name="Sep" text="سبتمبر"/>
+<l:template name="Oct" text="أكتوبر"/>
+<l:template name="Nov" text="نوفمبر"/>
+<l:template name="Dec" text="ديسمبر"/>
+<l:template name="Mon" text="الإثنين"/>
+<l:template name="Tue" text="الثلاثاء"/>
+<l:template name="Wed" text="الأربعاء"/>
+<l:template name="Thu" text="الخميس"/>
+<l:template name="Fri" text="الجمعة"/>
+<l:template name="Sat" text="السبت"/>
+<l:template name="Sun" text="الأحد"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 English (UNITED STATES)" lang="en"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/as.xml b/applications/content/template/docbook/common/as.xml
new file mode 100644
index 0000000..8fadaab
--- /dev/null
+++ b/applications/content/template/docbook/common/as.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="as" english-language-name="Assamese">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/as.xml -->
+<!-- * -->
+<!-- * E-mail the edited as.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="সাৰাংশ"/>
+<l:gentext key="abstract" text="সাৰাংশ"/>
+<l:gentext key="Acknowledgements" text="স্বীকৃতি"/>
+<l:gentext key="acknowledgements" text="স্বীকৃতি"/>
+<l:gentext key="Answer" text="উ:"/>
+<l:gentext key="answer" text="উ:"/>
+<l:gentext key="Appendix" text="পৰিশিষ্ট"/>
+<l:gentext key="appendix" text="পৰিশিষ্ট"/>
+<l:gentext key="Article" text="প্ৰবন্ধ"/>
+<l:gentext key="article" text="প্ৰবন্ধ"/>
+<l:gentext key="Author" text="লিখক"/>
+<l:gentext key="Bibliography" text="গ্ৰন্থসূচী"/>
+<l:gentext key="bibliography" text="গ্ৰন্থসূচী"/>
+<l:gentext key="Book" text="কিতাপ"/>
+<l:gentext key="book" text="কিতাপ"/>
+<l:gentext key="CAUTION" text="সাৱধান"/>
+<l:gentext key="Caution" text="সাৱধান"/>
+<l:gentext key="caution" text="সাৱধান"/>
+<l:gentext key="Chapter" text="অধ্যায়"/>
+<l:gentext key="chapter" text="অধ্যায়"/>
+<l:gentext key="Colophon" text="গ্ৰন্থপৰিচয়"/>
+<l:gentext key="colophon" text="গ্ৰন্থপৰিচয়"/>
+<l:gentext key="Copyright" text="স্বত্বাধিকাৰ"/>
+<l:gentext key="copyright" text="স্বত্বাধিকাৰ"/>
+<l:gentext key="Dedication" text="উসৰ্গা"/>
+<l:gentext key="dedication" text="উসৰ্গা"/>
+<l:gentext key="Edition" text="সংস্কৰণ"/>
+<l:gentext key="edition" text="সংস্কৰণ"/>
+<l:gentext key="Editor" text="সম্পাদক"/>
+<l:gentext key="Equation" text="সমীকৰণ"/>
+<l:gentext key="equation" text="সমীকৰণ"/>
+<l:gentext key="Example" text="উদাহৰণ"/>
+<l:gentext key="example" text="উদাহৰণ"/>
+<l:gentext key="Figure" text="ছবি"/>
+<l:gentext key="figure" text="ছবি"/>
+<l:gentext key="Glossary" text="শব্দকোষ"/>
+<l:gentext key="glossary" text="শব্দকোষ"/>
+<l:gentext key="GlossSee" text="চাওক"/>
+<l:gentext key="glosssee" text="চাওক"/>
+<l:gentext key="GlossSeeAlso" text="ইয়াকো চাওক"/>
+<l:gentext key="glossseealso" text="ইয়াকো চাওক"/>
+<l:gentext key="IMPORTANT" text="গুৰুত্বপূৰ্ণ"/>
+<l:gentext key="important" text="গুৰুত্বপূৰ্ণ"/>
+<l:gentext key="Important" text="গুৰুত্বপূৰ্ণ"/>
+<l:gentext key="Index" text="সূচী"/>
+<l:gentext key="index" text="সূচী"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="আইনসন্মত ঘোষণা"/>
+<l:gentext key="legalnotice" text="আইনসন্মত ঘোষণা"/>
+<l:gentext key="MsgAud" text="শ্ৰোতা"/>
+<l:gentext key="msgaud" text="শ্ৰোতা"/>
+<l:gentext key="MsgLevel" text="স্তৰ"/>
+<l:gentext key="msglevel" text="স্তৰ"/>
+<l:gentext key="MsgOrig" text="উৎস"/>
+<l:gentext key="msgorig" text="উৎস"/>
+<l:gentext key="NOTE" text="টোকা"/>
+<l:gentext key="Note" text="টোকা"/>
+<l:gentext key="note" text="টোকা"/>
+<l:gentext key="Part" text="অংশ"/>
+<l:gentext key="part" text="অংশ"/>
+<l:gentext key="Preface" text="পাতনি"/>
+<l:gentext key="preface" text="পাতনি"/>
+<l:gentext key="Procedure" text="প্ৰক্ৰিয়া"/>
+<l:gentext key="procedure" text="প্ৰক্ৰিয়া"/>
+<l:gentext key="ProductionSet" text="উৎপাদন"/>
+<l:gentext key="PubDate" text="প্ৰকাশনৰ দিন"/>
+<l:gentext key="pubdate" text="প্ৰকাশনৰ দিন"/>
+<l:gentext key="Published" text="প্ৰকাশিত"/>
+<l:gentext key="published" text="প্ৰকাশিত"/>
+<l:gentext key="Publisher" text="প্ৰকাশক"/>
+<l:gentext key="Qandadiv" text="প্ৰশ্ন &amp; উত্তৰ"/>
+<l:gentext key="qandadiv" text="প্ৰশ্ন &amp; উত্তৰ"/>
+<l:gentext key="QandASet" text="সঘনাই কৰা প্ৰশ্ন"/>
+<l:gentext key="Question" text="প্ৰ:"/>
+<l:gentext key="question" text="প্ৰ:"/>
+<l:gentext key="RefEntry" text="পৃষ্ঠা"/>
+<l:gentext key="refentry" text="পৃষ্ঠা"/>
+<l:gentext key="Reference" text="প্ৰসঙ্গ"/>
+<l:gentext key="reference" text="প্ৰসঙ্গ"/>
+<l:gentext key="References" text="প্ৰসঙ্গবোৰ"/>
+<l:gentext key="RefName" text="নাম"/>
+<l:gentext key="refname" text="নাম"/>
+<l:gentext key="RefSection" text="বিভাগ"/>
+<l:gentext key="refsection" text="বিভাগ"/>
+<l:gentext key="RefSynopsisDiv" text="সাৰাংশ"/>
+<l:gentext key="refsynopsisdiv" text="সাৰাংশ"/>
+<l:gentext key="RevHistory" text="পুনৰীক্ষণৰ ইতিহাস"/>
+<l:gentext key="revhistory" text="পুনৰীক্ষণৰ ইতিহাস"/>
+<l:gentext key="revision" text="পুনৰীক্ষণ"/>
+<l:gentext key="Revision" text="পুনৰীক্ষণ"/>
+<l:gentext key="sect1" text="বিভাগ"/>
+<l:gentext key="sect2" text="বিভাগ"/>
+<l:gentext key="sect3" text="বিভাগ"/>
+<l:gentext key="sect4" text="বিভাগ"/>
+<l:gentext key="sect5" text="বিভাগ"/>
+<l:gentext key="section" text="বিভাগ"/>
+<l:gentext key="Section" text="বিভাগ"/>
+<l:gentext key="see" text="চাওক"/>
+<l:gentext key="See" text="চাওক"/>
+<l:gentext key="seealso" text="ইয়াকো চাওক"/>
+<l:gentext key="Seealso" text="ইয়াকো চাওক"/>
+<l:gentext key="SeeAlso" text="ইয়াকো চাওক"/>
+<l:gentext key="set" text="গোট"/>
+<l:gentext key="Set" text="গোট"/>
+<l:gentext key="setindex" text="সূচী প্ৰতিষ্ঠা কৰক"/>
+<l:gentext key="SetIndex" text="সূচী প্ৰতিষ্ঠা কৰক"/>
+<l:gentext key="Sidebar" text="চাইডবাৰ"/>
+<l:gentext key="sidebar" text="চাইডবাৰ"/>
+<l:gentext key="step" text="পৰ্যায়"/>
+<l:gentext key="Step" text="পৰ্যায়"/>
+<l:gentext key="table" text="তালিকা"/>
+<l:gentext key="Table" text="তালিকা"/>
+<l:gentext key="task" text="কাৰ্য্য"/>
+<l:gentext key="Task" text="কাৰ্য্য"/>
+<l:gentext key="tip" text="সঙ্কেত"/>
+<l:gentext key="TIP" text="সঙ্কেত"/>
+<l:gentext key="Tip" text="সঙ্কেত"/>
+<l:gentext key="Warning" text="সকিয়নি"/>
+<l:gentext key="warning" text="সকিয়নি"/>
+<l:gentext key="WARNING" text="সকিয়নি"/>
+<l:gentext key="and" text="আৰু"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="-ৰ দ্বাৰা"/>
+<l:gentext key="Edited" text="সম্পাদিত"/>
+<l:gentext key="edited" text="সম্পাদিত"/>
+<l:gentext key="Editedby" text="-ৰ দ্বাৰা সম্পাদিত"/>
+<l:gentext key="editedby" text="-ৰ দ্বাৰা সম্পাদিত"/>
+<l:gentext key="in" text="-ত"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="টোকা"/>
+<l:gentext key="Notes" text="টোকা"/>
+<l:gentext key="Pgs" text="পৃষ্ঠাসমূহ"/>
+<l:gentext key="pgs" text="পৃষ্ঠাসমূহ"/>
+<l:gentext key="Revisedby" text="পুনৰীক্ষণকৰ্তা:"/>
+<l:gentext key="revisedby" text="পুনৰীক্ষণকৰ্তা:"/>
+<l:gentext key="TableNotes" text="টোকা"/>
+<l:gentext key="tablenotes" text="টোকা"/>
+<l:gentext key="TableofContents" text="বিষয় সূচী"/>
+<l:gentext key="tableofcontents" text="বিষয় সূচী"/>
+<l:gentext key="unexpectedelementname" text="অপ্ৰত্যাশিত পদাৰ্থৰ নাম"/>
+<l:gentext key="unsupported" text="অসমৰ্থিত"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="লিখকসমূহ"/>
+<l:gentext key="copyeditor" text="নকলৰ সম্পাদক"/>
+<l:gentext key="graphicdesigner" text="আলেখীৰ পৰিকল্পনাকৰ্তা"/>
+<l:gentext key="productioneditor" text="উৎপাদন সম্পাদক"/>
+<l:gentext key="technicaleditor" text="কাৰিকৰী সম্পাদক"/>
+<l:gentext key="translator" text="অনুবাদক"/>
+<l:gentext key="listofequations" text="সমীকৰণৰ তালিকা"/>
+<l:gentext key="ListofEquations" text="সমীকৰণৰ তালিকা"/>
+<l:gentext key="ListofExamples" text="উদাহৰণৰ তালিকা"/>
+<l:gentext key="listofexamples" text="উদাহৰণৰ তালিকা"/>
+<l:gentext key="ListofFigures" text="ছবিৰ তালিকা"/>
+<l:gentext key="listoffigures" text="ছবিৰ তালিকা"/>
+<l:gentext key="ListofProcedures" text="প্ৰক্ৰিয়াৰ তালিকা"/>
+<l:gentext key="listofprocedures" text="প্ৰক্ৰিয়াৰ তালিকা"/>
+<l:gentext key="listoftables" text="টেবুলৰ তালিকা"/>
+<l:gentext key="ListofTables" text="টেবুলৰ তালিকা"/>
+<l:gentext key="ListofUnknown" text="অজ্ঞাতৰ তালিকা"/>
+<l:gentext key="listofunknown" text="অজ্ঞাতৰ তালিকা"/>
+<l:gentext key="nav-home" text="আৰম্ভ"/>
+<l:gentext key="nav-next" text="পিছলৈ"/>
+<l:gentext key="nav-next-sibling" text="দ্ৰুতগতিৰে আগবাঢ়ক"/>
+<l:gentext key="nav-prev" text="আগৰ"/>
+<l:gentext key="nav-prev-sibling" text="দ্ৰুতগতিৰে পিছলৈ যাওক"/>
+<l:gentext key="nav-up" text="ওপৰলৈ"/>
+<l:gentext key="nav-toc" text="বিষয়বস্তুৰ তালিকা"/>
+<l:gentext key="Draft" text="ৰূপৰেখা"/>
+<l:gentext key="above" text="ওপৰত"/>
+<l:gentext key="below" text="তলত"/>
+<l:gentext key="sectioncalled" text="মাতি অনা বিভাগ"/>
+<l:gentext key="index symbols" text="চিহ্ন"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz" lang="en"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" lang="en"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="পৰিশিষ্ট %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="অধ্যায় %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="সমীকৰণ %n. %t"/>
+<l:template name="example" text="উদাহৰণ %n. %t"/>
+<l:template name="figure" text="ছবি %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="অংশ %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="প্ৰক্ৰিয়া %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="উৎপাদন %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="তালিকা %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="পৰিশিষ্ট %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="অধ্যায় %n. %t"/>
+<l:template name="part" text="অংশ %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="উ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="প্ৰ: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="প্ৰ: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="refsection" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="refsect1" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="refsect2" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="refsect3" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="sect1" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="sect2" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="sect3" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="sect4" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="sect5" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="section" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="simplesect" text="মাতি অনা বিভাগ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="উ: %n"/>
+<l:template name="appendix" text="পৰিশিষ্ট %n"/>
+<l:template name="bridgehead" text="বিভাগ %n"/>
+<l:template name="chapter" text="অধ্যায় %n"/>
+<l:template name="equation" text="সমীকৰণ %n"/>
+<l:template name="example" text="উদাহৰণ %n"/>
+<l:template name="figure" text="ছবি %n"/>
+<l:template name="part" text="অংশ %n"/>
+<l:template name="procedure" text="প্ৰক্ৰিয়া %n"/>
+<l:template name="productionset" text="উৎপাদন %n"/>
+<l:template name="qandadiv" text="প্ৰশ্ন &amp; উত্তৰ %n"/>
+<l:template name="qandaentry" text="প্ৰ: %n"/>
+<l:template name="question" text="প্ৰ: %n"/>
+<l:template name="sect1" text="বিভাগ %n"/>
+<l:template name="sect2" text="বিভাগ %n"/>
+<l:template name="sect3" text="বিভাগ %n"/>
+<l:template name="sect4" text="বিভাগ %n"/>
+<l:template name="sect5" text="বিভাগ %n"/>
+<l:template name="section" text="বিভাগ %n"/>
+<l:template name="table" text="তালিকা %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="পৰিশিষ্ট %n, %t"/>
+<l:template name="bridgehead" text="বিভাগ %n, “%t”"/>
+<l:template name="chapter" text="অধ্যায় %n, %t"/>
+<l:template name="equation" text="সমীকৰণ %n, “%t”"/>
+<l:template name="example" text="উদাহৰণ %n, “%t”"/>
+<l:template name="figure" text="ছবি %n, “%t”"/>
+<l:template name="part" text="অংশ %n, “%t”"/>
+<l:template name="procedure" text="প্ৰক্ৰিয়া %n, “%t”"/>
+<l:template name="productionset" text="উৎপাদন %n, “%t”"/>
+<l:template name="qandadiv" text="প্ৰশ্ন &amp; উত্তৰ %n, “%t”"/>
+<l:template name="refsect1" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="refsect2" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="refsect3" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="refsection" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="sect1" text="বিভাগ %n, “%t”"/>
+<l:template name="sect2" text="বিভাগ %n, “%t”"/>
+<l:template name="sect3" text="বিভাগ %n, “%t”"/>
+<l:template name="sect4" text="বিভাগ %n, “%t”"/>
+<l:template name="sect5" text="বিভাগ %n, “%t”"/>
+<l:template name="section" text="বিভাগ %n, “%t”"/>
+<l:template name="simplesect" text="মাতি অনা বিভাগ “%t”"/>
+<l:template name="table" text="তালিকা %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" আৰু "/>
+<l:template name="seplast" text=", আৰু "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="চাওক %t."/>
+<l:template name="seealso" text="ইয়াকো চাওক %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="শ্ৰোতা: "/>
+<l:template name="MsgLevel" text="স্তৰ: "/>
+<l:template name="MsgOrig" text="উৎস: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="জানুৱাৰী"/>
+<l:template name="February" text="ফেব্ৰুৱাৰী"/>
+<l:template name="March" text="মাৰ্চ"/>
+<l:template name="April" text="এপ্ৰিল"/>
+<l:template name="May" text="মে'"/>
+<l:template name="June" text="জুন"/>
+<l:template name="July" text="জুলাই"/>
+<l:template name="August" text="আগষ্ট"/>
+<l:template name="September" text="চেপ্টেম্বৰ"/>
+<l:template name="October" text="অক্টোবৰ"/>
+<l:template name="November" text="নৱেম্বৰ"/>
+<l:template name="December" text="ডিচেম্বৰ"/>
+<l:template name="Monday" text="সোমবাৰ"/>
+<l:template name="Tuesday" text="মঙ্গলবাৰ"/>
+<l:template name="Wednesday" text="বুধবাৰ"/>
+<l:template name="Thursday" text="বৃহস্পতিবাৰ"/>
+<l:template name="Friday" text="শুকুৰবাৰ"/>
+<l:template name="Saturday" text="শনিবাৰ"/>
+<l:template name="Sunday" text="দেওবাৰ"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="জানুৱাৰী"/>
+<l:template name="Feb" text="ফেব্ৰুৱাৰী"/>
+<l:template name="Mar" text="মাৰ্চ"/>
+<l:template name="Apr" text="এপ্ৰিল"/>
+<l:template name="May" text="মে'"/>
+<l:template name="Jun" text="জুন"/>
+<l:template name="Jul" text="জুলাই"/>
+<l:template name="Aug" text="আগষ্ট"/>
+<l:template name="Sep" text="চেপ্টেম্বৰ"/>
+<l:template name="Oct" text="অক্টোবৰ"/>
+<l:template name="Nov" text="নৱেম্বৰ"/>
+<l:template name="Dec" text="ডিচেম্বৰ"/>
+<l:template name="Mon" text="সোম"/>
+<l:template name="Tue" text="মঙ্গল"/>
+<l:template name="Wed" text="বুধ"/>
+<l:template name="Thu" text="বৃহস্পতি"/>
+<l:template name="Fri" text="শুকুৰ"/>
+<l:template name="Sat" text="শনি"/>
+<l:template name="Sun" text="দেও"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x044d Assamese"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">চিহ্ন</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/ast.xml b/applications/content/template/docbook/common/ast.xml
new file mode 100644
index 0000000..e192ed6
--- /dev/null
+++ b/applications/content/template/docbook/common/ast.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ast" english-language-name="Asturian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ast.xml -->
+<!-- * -->
+<!-- * E-mail the edited ast.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstrautu"/>
+<l:gentext key="abstract" text="abstrautu"/>
+<l:gentext key="Acknowledgements" text="Gracies fonderes"/>
+<l:gentext key="acknowledgements" text="gracies fonderes"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="r:"/>
+<l:gentext key="Appendix" text="Apéndiz"/>
+<l:gentext key="appendix" text="apéndiz"/>
+<l:gentext key="Article" text="Artículu"/>
+<l:gentext key="article" text="artículu"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Bibliografía"/>
+<l:gentext key="bibliography" text="bibliografía"/>
+<l:gentext key="Book" text="Llibru"/>
+<l:gentext key="book" text="llibru"/>
+<l:gentext key="CAUTION" text="PRECAUCIÓN"/>
+<l:gentext key="Caution" text="Precaución"/>
+<l:gentext key="caution" text="precaución"/>
+<l:gentext key="Chapter" text="Capítulu"/>
+<l:gentext key="chapter" text="capítulu"/>
+<l:gentext key="Colophon" text="Colofón"/>
+<l:gentext key="colophon" text="colofón"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="copyright"/>
+<l:gentext key="Dedication" text="Dedicáu"/>
+<l:gentext key="dedication" text="dedicáu"/>
+<l:gentext key="Edition" text="Edición"/>
+<l:gentext key="edition" text="edición"/>
+<l:gentext key="Editor" text="Editor"/>
+<l:gentext key="Equation" text="Ecuación"/>
+<l:gentext key="equation" text="ecuación"/>
+<l:gentext key="Example" text="Exemplu"/>
+<l:gentext key="example" text="exemplu"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="figura"/>
+<l:gentext key="Glossary" text="Glosariu"/>
+<l:gentext key="glossary" text="glosariu"/>
+<l:gentext key="GlossSee" text="Ver"/>
+<l:gentext key="glosssee" text="ver"/>
+<l:gentext key="GlossSeeAlso" text="Ver Tamién"/>
+<l:gentext key="glossseealso" text="ver tamién"/>
+<l:gentext key="IMPORTANT" text="IMPORTANTE"/>
+<l:gentext key="important" text="Importante"/>
+<l:gentext key="Important" text="Importante"/>
+<l:gentext key="Index" text="Índiz"/>
+<l:gentext key="index" text="índiz"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Noticia Llegal"/>
+<l:gentext key="legalnotice" text="noticia llegal"/>
+<l:gentext key="MsgAud" text="Audiencia"/>
+<l:gentext key="msgaud" text="Audiencia"/>
+<l:gentext key="MsgLevel" text="Nivel"/>
+<l:gentext key="msglevel" text="nivel"/>
+<l:gentext key="MsgOrig" text="Orixe"/>
+<l:gentext key="msgorig" text="Orixe"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="nota"/>
+<l:gentext key="Part" text="Parte"/>
+<l:gentext key="part" text="parte"/>
+<l:gentext key="Preface" text="Prefaciu"/>
+<l:gentext key="preface" text="Prefaciu"/>
+<l:gentext key="Procedure" text="Procedimientu"/>
+<l:gentext key="procedure" text="procedimientu"/>
+<l:gentext key="ProductionSet" text="Producción"/>
+<l:gentext key="PubDate" text="Data d'Espublización"/>
+<l:gentext key="pubdate" text="data d'espublización"/>
+<l:gentext key="Published" text="Espublizáu"/>
+<l:gentext key="published" text="espublizáu"/>
+<l:gentext key="Publisher" text="Publisher"/>
+<l:gentext key="Qandadiv" text="E &amp; R"/>
+<l:gentext key="qandadiv" text="e &amp; r"/>
+<l:gentext key="QandASet" text="Entrugues más frecuentes"/>
+<l:gentext key="Question" text="E:"/>
+<l:gentext key="question" text="e:"/>
+<l:gentext key="RefEntry" text="Páxina"/>
+<l:gentext key="refentry" text="páxina"/>
+<l:gentext key="Reference" text="Referencia"/>
+<l:gentext key="reference" text="Referencia"/>
+<l:gentext key="References" text="Referencies"/>
+<l:gentext key="RefName" text="Nome"/>
+<l:gentext key="refname" text="nome"/>
+<l:gentext key="RefSection" text="Seición"/>
+<l:gentext key="refsection" text="seición"/>
+<l:gentext key="RefSynopsisDiv" text="Sinopsis"/>
+<l:gentext key="refsynopsisdiv" text="sinopsis"/>
+<l:gentext key="RevHistory" text="Revision History"/>
+<l:gentext key="revhistory" text="Revision History"/>
+<l:gentext key="revision" text="revisión hestorial"/>
+<l:gentext key="Revision" text="Revisión Hestorial"/>
+<l:gentext key="sect1" text="Seición"/>
+<l:gentext key="sect2" text="Seición"/>
+<l:gentext key="sect3" text="Seición"/>
+<l:gentext key="sect4" text="Seición"/>
+<l:gentext key="sect5" text="Seición"/>
+<l:gentext key="section" text="seición"/>
+<l:gentext key="Section" text="Seición"/>
+<l:gentext key="see" text="ver"/>
+<l:gentext key="See" text="Ver"/>
+<l:gentext key="seealso" text="ver tamién"/>
+<l:gentext key="Seealso" text="Ver tamién"/>
+<l:gentext key="SeeAlso" text="Ver Tamién"/>
+<l:gentext key="set" text="conxuntu"/>
+<l:gentext key="Set" text="Conxuntu"/>
+<l:gentext key="setindex" text="índiz del conxuntu"/>
+<l:gentext key="SetIndex" text="Índiz del Conxuntu"/>
+<l:gentext key="Sidebar" text="Panel llateral"/>
+<l:gentext key="sidebar" text="panel llateral"/>
+<l:gentext key="step" text="pasu"/>
+<l:gentext key="Step" text="Pasu"/>
+<l:gentext key="table" text="tabla"/>
+<l:gentext key="Table" text="Tabla"/>
+<l:gentext key="task" text="xera"/>
+<l:gentext key="Task" text="Xera"/>
+<l:gentext key="tip" text="trucu"/>
+<l:gentext key="TIP" text="TRUCU"/>
+<l:gentext key="Tip" text="Trucu"/>
+<l:gentext key="Warning" text="Avisu"/>
+<l:gentext key="warning" text="avisu"/>
+<l:gentext key="WARNING" text="AVISU"/>
+<l:gentext key="and" text="y"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="por"/>
+<l:gentext key="Edited" text="Editáu"/>
+<l:gentext key="edited" text="editáu"/>
+<l:gentext key="Editedby" text="Editáu por"/>
+<l:gentext key="editedby" text="editáu por"/>
+<l:gentext key="in" text="en"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="notes"/>
+<l:gentext key="Notes" text="Notes"/>
+<l:gentext key="Pgs" text="Pxs."/>
+<l:gentext key="pgs" text="pxs."/>
+<l:gentext key="Revisedby" text="Revisáu por: "/>
+<l:gentext key="revisedby" text="revisáu por: "/>
+<l:gentext key="TableNotes" text="Notes"/>
+<l:gentext key="tablenotes" text="Notes"/>
+<l:gentext key="TableofContents" text="Tabla de Conteníos"/>
+<l:gentext key="tableofcontents" text="tabla de conteníos"/>
+<l:gentext key="unexpectedelementname" text="nome d'elementu inesperáu"/>
+<l:gentext key="unsupported" text="ensin sofitu"/>
+<l:gentext key="xrefto" text="xref a"/>
+<l:gentext key="Authors" text="Autores"/>
+<l:gentext key="copyeditor" text="Editor de copia"/>
+<l:gentext key="graphicdesigner" text="Diseñador Gráficu"/>
+<l:gentext key="productioneditor" text="Editor de Producción"/>
+<l:gentext key="technicaleditor" text="Editor téunicu"/>
+<l:gentext key="translator" text="Traductor"/>
+<l:gentext key="listofequations" text="llista d'ecuaciones"/>
+<l:gentext key="ListofEquations" text="Llista d'ecuaciones"/>
+<l:gentext key="ListofExamples" text="Llista d'Exemplos"/>
+<l:gentext key="listofexamples" text="llista d'Exemplos"/>
+<l:gentext key="ListofFigures" text="Llista de Figures"/>
+<l:gentext key="listoffigures" text="llista de Figures"/>
+<l:gentext key="ListofProcedures" text="Llista de Procedimientos"/>
+<l:gentext key="listofprocedures" text="llista de Procedimientos"/>
+<l:gentext key="listoftables" text="llista de Tables"/>
+<l:gentext key="ListofTables" text="Llista de Tables"/>
+<l:gentext key="ListofUnknown" text="Llista de Desconocíu"/>
+<l:gentext key="listofunknown" text="llista de Desconocíu"/>
+<l:gentext key="nav-home" text="Entamu"/>
+<l:gentext key="nav-next" text="Siguiente"/>
+<l:gentext key="nav-next-sibling" text="Rápidu Alantre"/>
+<l:gentext key="nav-prev" text="Previu"/>
+<l:gentext key="nav-prev-sibling" text="Rápidu Atrás"/>
+<l:gentext key="nav-up" text="Arriba"/>
+<l:gentext key="nav-toc" text="TdC"/>
+<l:gentext key="Draft" text="Borrador"/>
+<l:gentext key="above" text="enriba"/>
+<l:gentext key="below" text="baxo"/>
+<l:gentext key="sectioncalled" text="la seición denomada"/>
+<l:gentext key="index symbols" text="Símbolos"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz" lang="en"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" lang="en"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apéndiz %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capítulu %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ecuación %n. %t"/>
+<l:template name="example" text="Exemplu %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedimientu %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Producción %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabla %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apéndiz %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Capítulu %n. %t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="E: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="E: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="la seición denomada “%t”"/>
+<l:template name="refsection" text="la seición denomada “%t”"/>
+<l:template name="refsect1" text="la seición denomada “%t”"/>
+<l:template name="refsect2" text="la seición denomada “%t”"/>
+<l:template name="refsect3" text="la seición denomada “%t”"/>
+<l:template name="sect1" text="la seición denomada “%t”"/>
+<l:template name="sect2" text="la seición denomada “%t”"/>
+<l:template name="sect3" text="la seición denomada “%t”"/>
+<l:template name="sect4" text="la seición denomada “%t”"/>
+<l:template name="sect5" text="la seición denomada “%t”"/>
+<l:template name="section" text="la seición denomada “%t”"/>
+<l:template name="simplesect" text="la seición denomada “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="Apéndiz %n"/>
+<l:template name="bridgehead" text="Seición %n"/>
+<l:template name="chapter" text="Capítulu %n"/>
+<l:template name="equation" text="Ecuación %n"/>
+<l:template name="example" text="Exemplu %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Parte %n"/>
+<l:template name="procedure" text="Procedimientu %n"/>
+<l:template name="productionset" text="Producción %n"/>
+<l:template name="qandadiv" text="E &amp; R %n"/>
+<l:template name="qandaentry" text="E: %n"/>
+<l:template name="question" text="E: %n"/>
+<l:template name="sect1" text="Seición %n"/>
+<l:template name="sect2" text="Seición %n"/>
+<l:template name="sect3" text="Seición %n"/>
+<l:template name="sect4" text="Seición %n"/>
+<l:template name="sect5" text="Seición %n"/>
+<l:template name="section" text="Seición %n"/>
+<l:template name="table" text="Tabla %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apéndiz %n, %t"/>
+<l:template name="bridgehead" text="Seición %n, “%t”"/>
+<l:template name="chapter" text="Capítulu %n, %t"/>
+<l:template name="equation" text="Ecuación %n, “%t”"/>
+<l:template name="example" text="Exemplu %n, “%t”"/>
+<l:template name="figure" text="Figura %n, “%t”"/>
+<l:template name="part" text="Parte %n, “%t”"/>
+<l:template name="procedure" text="Procedimientu %n, “%t”"/>
+<l:template name="productionset" text="Producción %n, “%t”"/>
+<l:template name="qandadiv" text="E &amp; R %n, “%t”"/>
+<l:template name="refsect1" text="la seición denomada “%t”"/>
+<l:template name="refsect2" text="la seición denomada “%t”"/>
+<l:template name="refsect3" text="la seición denomada “%t”"/>
+<l:template name="refsection" text="la seición denomada “%t”"/>
+<l:template name="sect1" text="Seición %n, “%t”"/>
+<l:template name="sect2" text="Seición %n, “%t”"/>
+<l:template name="sect3" text="Seición %n, “%t”"/>
+<l:template name="sect4" text="Seición %n, “%t”"/>
+<l:template name="sect5" text="Seición %n, “%t”"/>
+<l:template name="section" text="Seición %n, “%t”"/>
+<l:template name="simplesect" text="la seición denomada “%t”"/>
+<l:template name="table" text="Tabla %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" y "/>
+<l:template name="seplast" text=", y "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Ver %t."/>
+<l:template name="seealso" text="Ver Tamién %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audiencia: "/>
+<l:template name="MsgLevel" text="Nivel: "/>
+<l:template name="MsgOrig" text="Orixe: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Xineru"/>
+<l:template name="February" text="Febreru"/>
+<l:template name="March" text="Marzu"/>
+<l:template name="April" text="Abril"/>
+<l:template name="May" text="Mayu"/>
+<l:template name="June" text="Xunu"/>
+<l:template name="July" text="Xunetu"/>
+<l:template name="August" text="Agostu"/>
+<l:template name="September" text="Setiembre"/>
+<l:template name="October" text="Ochobre"/>
+<l:template name="November" text="Payares"/>
+<l:template name="December" text="Avientu"/>
+<l:template name="Monday" text="Llunes"/>
+<l:template name="Tuesday" text="Martes"/>
+<l:template name="Wednesday" text="Miércoles"/>
+<l:template name="Thursday" text="Xueves"/>
+<l:template name="Friday" text="Vienres"/>
+<l:template name="Saturday" text="Sábadu"/>
+<l:template name="Sunday" text="Domingu"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Xin"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Abr"/>
+<l:template name="May" text="May"/>
+<l:template name="Jun" text="Xun"/>
+<l:template name="Jul" text="Xnt"/>
+<l:template name="Aug" text="Ago"/>
+<l:template name="Sep" text="Set"/>
+<l:template name="Oct" text="Och"/>
+<l:template name="Nov" text="Pay"/>
+<l:template name="Dec" text="Avi"/>
+<l:template name="Mon" text="Llu"/>
+<l:template name="Tue" text="Mié"/>
+<l:template name="Wed" text="Wed"/>
+<l:template name="Thu" text="Xue"/>
+<l:template name="Fri" text="Vie"/>
+<l:template name="Sat" text="Sáb"/>
+<l:template name="Sun" text="Dom"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 English (UNITED STATES)" lang="en"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Símbolos</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/autoidx-kimber.xsl b/applications/content/template/docbook/common/autoidx-kimber.xsl
new file mode 100644
index 0000000..0daa3ef
--- /dev/null
+++ b/applications/content/template/docbook/common/autoidx-kimber.xsl
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "entities.ent">
+%common.entities;
+<!-- Documents using the kimber index method must have a lang attribute -->
+<!-- Only one of these should be present in the entity -->
+
+<!ENTITY lang 'concat(/*/@lang, /*/@xml:lang)'>
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0"
+                xmlns:k="java:com.isogen.saxoni18n.Saxoni18nService"
+                exclude-result-prefixes="k">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheet distribution.
+     See ../README or http://docbook.sf.net/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:param name="kimber.imported">
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:choose>
+    <xsl:when test="not(contains($vendor, 'SAXON '))">
+      <xsl:message terminate="yes">
+        <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+        <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>1</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+
+<!-- The following key used in the kimber indexing method. -->
+<xsl:key name="k-group"
+         match="indexterm"
+         use="k:getIndexGroupKey(&lang;, &primary;)"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/common/autoidx-kosek.xsl b/applications/content/template/docbook/common/autoidx-kosek.xsl
new file mode 100644
index 0000000..d08f7a8
--- /dev/null
+++ b/applications/content/template/docbook/common/autoidx-kosek.xsl
@@ -0,0 +1,154 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "entities.ent">
+%common.entities;
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0"
+                xmlns:func="http://exslt.org/functions"
+                xmlns:exslt="http://exslt.org/common"
+                xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                extension-element-prefixes="func exslt"
+                exclude-result-prefixes="func exslt i l"
+                xmlns:i="urn:cz-kosek:functions:index">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheet distribution.
+     See ../README or http://docbook.sf.net/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:param name="kosek.imported">
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'libxslt')">
+      <xsl:message terminate="yes">
+        <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+        <xsl:text>work with the xsltproc XSLT processor.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>1</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<!-- Returns index group code for given term  -->
+<func:function name="i:group-index">
+  <xsl:param name="term"/>
+  
+  <xsl:variable name="letters-rtf">
+    <xsl:variable name="lang">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:variable>
+    
+    <xsl:variable name="local.l10n.letters"
+      select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang]/l:letters)[1]"/>
+    
+    <xsl:for-each select="$l10n.xml">
+      <xsl:variable name="l10n.letters"
+	select="document(key('l10n-lang', $lang)/@href)/l:l10n/l:letters[1]"/>
+
+      <xsl:choose>
+	<xsl:when test="count($local.l10n.letters) &gt; 0">
+	  <xsl:copy-of select="$local.l10n.letters"/>
+	</xsl:when>
+	<xsl:when test="count($l10n.letters) &gt; 0">
+	  <xsl:copy-of select="$l10n.letters"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:message>
+	    <xsl:text>No "</xsl:text>
+	    <xsl:value-of select="$lang"/>
+	    <xsl:text>" localization of index grouping letters exists</xsl:text>
+	    <xsl:choose>
+	      <xsl:when test="$lang = 'en'">
+		<xsl:text>.</xsl:text>
+	      </xsl:when>
+	      <xsl:otherwise>
+		<xsl:text>; using "en".</xsl:text>
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </xsl:message>
+
+	  <xsl:copy-of select="document(key('l10n-lang', 'en'))/l:l10n/l:letters[1]"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+  </xsl:variable>
+  
+  <xsl:variable name="letters" select="exslt:node-set($letters-rtf)/*"/>
+  
+  <xsl:variable name="long-letter-index" select="$letters/l:l[. = substring($term,1,2)]/@i"/>
+  <xsl:variable name="short-letter-index" select="$letters/l:l[. = substring($term,1,1)]/@i"/>
+  <xsl:variable name="letter-index">
+    <xsl:choose>
+      <xsl:when test="$long-letter-index">
+        <xsl:value-of select="$long-letter-index"/>
+      </xsl:when>
+      <xsl:when test="$short-letter-index">
+        <xsl:value-of select="$short-letter-index"/>
+      </xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <func:result select="number($letter-index)"/>
+</func:function>
+
+<!-- Return index group letter for given group code -->
+<func:function name="i:group-letter">
+  <xsl:param name="index"/>
+
+  <xsl:variable name="letters-rtf">
+    <xsl:variable name="lang">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:variable>
+    
+    <xsl:variable name="local.l10n.letters"
+      select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang]/l:letters)[1]"/>
+    
+    <xsl:for-each select="$l10n.xml">
+      <xsl:variable name="l10n.letters"
+	select="document(key('l10n-lang', $lang)/@href)/l:l10n/l:letters[1]"/>
+
+      <xsl:choose>
+	<xsl:when test="count($local.l10n.letters) &gt; 0">
+	  <xsl:copy-of select="$local.l10n.letters"/>
+	</xsl:when>
+	<xsl:when test="count($l10n.letters) &gt; 0">
+	  <xsl:copy-of select="$l10n.letters"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:message>
+	    <xsl:text>No "</xsl:text>
+	    <xsl:value-of select="$lang"/>
+	    <xsl:text>" localization of index grouping letters exists</xsl:text>
+	    <xsl:choose>
+	      <xsl:when test="$lang = 'en'">
+		<xsl:text>.</xsl:text>
+	      </xsl:when>
+	      <xsl:otherwise>
+		<xsl:text>; using "en".</xsl:text>
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </xsl:message>
+
+	  <xsl:copy-of select="document(key('l10n-lang', 'en')/@href)/l:l10n/l:letters[1]"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+  </xsl:variable>
+  
+  <xsl:variable name="letters" select="exslt:node-set($letters-rtf)/*"/>
+  
+  <func:result select="$letters/l:l[@i=$index][1]"/>
+</func:function>
+
+<xsl:key name="group-code"
+         match="indexterm"
+         use="i:group-index(&primary;)"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/common/az.xml b/applications/content/template/docbook/common/az.xml
new file mode 100644
index 0000000..30e43de
--- /dev/null
+++ b/applications/content/template/docbook/common/az.xml
@@ -0,0 +1,690 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="az" english-language-name="Azerbaijani">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/az.xml -->
+<!-- * -->
+<!-- * E-mail the edited az.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="İcmal"/>
+<l:gentext key="abstract" text="İcmal"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="Cavab:"/>
+<l:gentext key="answer" text="Cavab:"/>
+<l:gentext key="Appendix" text="Əlavə"/>
+<l:gentext key="appendix" text="Əlavə"/>
+<l:gentext key="Article" text="Məqalə"/>
+<l:gentext key="article" text="Məqalə"/>
+<l:gentext key="Author" text="Müəllif"/>
+<l:gentext key="Bibliography" text="Qaynaqça"/>
+<l:gentext key="bibliography" text="Qaynaqça"/>
+<l:gentext key="Book" text="Kitab"/>
+<l:gentext key="book" text="Kitab"/>
+<l:gentext key="CAUTION" text="DİQQƏT"/>
+<l:gentext key="Caution" text="Diqqət"/>
+<l:gentext key="caution" text="Diqqət"/>
+<l:gentext key="Chapter" text="Bölüm"/>
+<l:gentext key="chapter" text="Bölüm"/>
+<l:gentext key="Colophon" text="Kitab Haqqında"/>
+<l:gentext key="colophon" text="Kitab Haqqında"/>
+<l:gentext key="Copyright" text="Müəllif Hüququ"/>
+<l:gentext key="copyright" text="Müəllif Hüququ"/>
+<l:gentext key="Dedication" text="Həsr"/>
+<l:gentext key="dedication" text="Həsr"/>
+<l:gentext key="Edition" text="Buraxılış"/>
+<l:gentext key="edition" text="Buraxılış"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Tənlik"/>
+<l:gentext key="equation" text="Tənlik"/>
+<l:gentext key="Example" text="Nümunə"/>
+<l:gentext key="example" text="Nümunə"/>
+<l:gentext key="Figure" text="Fiqur"/>
+<l:gentext key="figure" text="Fiqur"/>
+<l:gentext key="Glossary" text="Lüğət"/>
+<l:gentext key="glossary" text="Lüğət"/>
+<l:gentext key="GlossSee" text="Bax"/>
+<l:gentext key="glosssee" text="Bax"/>
+<l:gentext key="GlossSeeAlso" text="Eləcə Də Bax"/>
+<l:gentext key="glossseealso" text="Eləcə Də Bax"/>
+<l:gentext key="IMPORTANT" text="VACİB"/>
+<l:gentext key="important" text="Vacib"/>
+<l:gentext key="Important" text="Vacib"/>
+<l:gentext key="Index" text="İndeks"/>
+<l:gentext key="index" text="İndeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Qanuni Qeyd"/>
+<l:gentext key="legalnotice" text="Qanuni Qeyd"/>
+<l:gentext key="MsgAud" text="Hədəf Oxuyucu"/>
+<l:gentext key="msgaud" text="Hədəf Oxuyucu"/>
+<l:gentext key="MsgLevel" text="Səviyyə"/>
+<l:gentext key="msglevel" text="Səviyyə"/>
+<l:gentext key="MsgOrig" text="Mənbə"/>
+<l:gentext key="msgorig" text="Mənbə"/>
+<l:gentext key="NOTE" text="QEYD"/>
+<l:gentext key="Note" text="Qeyd"/>
+<l:gentext key="note" text="Qeyd"/>
+<l:gentext key="Part" text="Hissə"/>
+<l:gentext key="part" text="Hissə"/>
+<l:gentext key="Preface" text="Önsöz"/>
+<l:gentext key="preface" text="Önsöz"/>
+<l:gentext key="Procedure" text="Üsul"/>
+<l:gentext key="procedure" text="Üsul"/>
+<l:gentext key="ProductionSet" text="Produksiya"/>
+<l:gentext key="PubDate" text="Yayimlama Tarixi"/>
+<l:gentext key="pubdate" text="Yayimlama Tarixi"/>
+<l:gentext key="Published" text="Yayimlama"/>
+<l:gentext key="published" text="Yayimlama"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="S və C"/>
+<l:gentext key="qandadiv" text="S və C"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Sual:"/>
+<l:gentext key="question" text="Sual:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Xatırlatma"/>
+<l:gentext key="reference" text="Xatırlatma"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Ad"/>
+<l:gentext key="refname" text="Ad"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="İcmal"/>
+<l:gentext key="refsynopsisdiv" text="İcmal"/>
+<l:gentext key="RevHistory" text="Nəzərdən Keçirmə Tarixçəsi"/>
+<l:gentext key="revhistory" text="Nəzərdən Keçirmə Tarixçəsi"/>
+<l:gentext key="revision" text="Nəzərdən Keçirmə"/>
+<l:gentext key="Revision" text="Nəzərdən Keçirmə"/>
+<l:gentext key="sect1" text="Qisim"/>
+<l:gentext key="sect2" text="Qisim"/>
+<l:gentext key="sect3" text="Qisim"/>
+<l:gentext key="sect4" text="Qisim"/>
+<l:gentext key="sect5" text="Qisim"/>
+<l:gentext key="section" text="Qisim"/>
+<l:gentext key="Section" text="Qisim"/>
+<l:gentext key="see" text="bax"/>
+<l:gentext key="See" text="Bax"/>
+<l:gentext key="seealso" text="eləcə də bax"/>
+<l:gentext key="Seealso" text="Eləcə Də Bax"/>
+<l:gentext key="SeeAlso" text="Eləcə Də Bax"/>
+<l:gentext key="set" text="Dəstə"/>
+<l:gentext key="Set" text="Dəstə"/>
+<l:gentext key="setindex" text="İndeksi Seç"/>
+<l:gentext key="SetIndex" text="İndeksi Seç"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="Kənar Çubuğu"/>
+<l:gentext key="step" text="addım"/>
+<l:gentext key="Step" text="Addım"/>
+<l:gentext key="table" text="cədvəl"/>
+<l:gentext key="Table" text="Cədvəl"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="məsləhət"/>
+<l:gentext key="TIP" text="MƏSLƏHƏT"/>
+<l:gentext key="Tip" text="Məsləhət"/>
+<l:gentext key="Warning" text="Xəbərdarlıq"/>
+<l:gentext key="warning" text="Xəbərdarlıq"/>
+<l:gentext key="WARNING" text="XƏBƏRDARLIQ"/>
+<l:gentext key="and" text="və"/>
+<l:gentext key="or" text="və ya"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Düzəldildi"/>
+<l:gentext key="edited" text="Düzəldildi"/>
+<l:gentext key="Editedby" text="Düzəliş edən"/>
+<l:gentext key="editedby" text="Düzəliş edən"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Qeydlər"/>
+<l:gentext key="Notes" text="Qeydlər"/>
+<l:gentext key="Pgs" text="Shflr."/>
+<l:gentext key="pgs" text="Shflr."/>
+<l:gentext key="Revisedby" text="Gözdən keçirən: "/>
+<l:gentext key="revisedby" text="Gözdən keçirən: "/>
+<l:gentext key="TableNotes" text="Qeydlər"/>
+<l:gentext key="tablenotes" text="Qeydlər"/>
+<l:gentext key="TableofContents" text="Məzmun"/>
+<l:gentext key="tableofcontents" text="Məzmun"/>
+<l:gentext key="unexpectedelementname" text="Gözlənməyən element adı"/>
+<l:gentext key="unsupported" text="dəstəklənmir"/>
+<l:gentext key="xrefto" text=""/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Tənliklər"/>
+<l:gentext key="ListofEquations" text="Tənliklər"/>
+<l:gentext key="ListofExamples" text="Nümunələr"/>
+<l:gentext key="listofexamples" text="Nümunələr"/>
+<l:gentext key="ListofFigures" text="Fiqurlar"/>
+<l:gentext key="listoffigures" text="Fiqurlar"/>
+<l:gentext key="ListofProcedures" text="Üsullar"/>
+<l:gentext key="listofprocedures" text="Üsullar"/>
+<l:gentext key="listoftables" text="Cədvəllər"/>
+<l:gentext key="ListofTables" text="Cədvəllər"/>
+<l:gentext key="ListofUnknown" text="Naməlumlar"/>
+<l:gentext key="listofunknown" text="List of Unknown" lang="en"/>
+<l:gentext key="nav-home" text="Ev"/>
+<l:gentext key="nav-next" text="Sonrakı"/>
+<l:gentext key="nav-next-sibling" text="İrəli"/>
+<l:gentext key="nav-prev" text="Əvvəlki"/>
+<l:gentext key="nav-prev-sibling" text="Geri"/>
+<l:gentext key="nav-up" text="Yuxarı"/>
+<l:gentext key="nav-toc" text="Məzmun"/>
+<l:gentext key="Draft" text="Şablon"/>
+<l:gentext key="above" text="Üstündə"/>
+<l:gentext key="below" text="Altında"/>
+<l:gentext key="sectioncalled" text=""/>
+<l:gentext key="index symbols" text="Simvollar"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcçdeəfgğhxıijkqlmnoöprsştuüvyz"/>
+<l:gentext key="uppercase.alpha" text="ABCÇDEƏFGĞHXIİJKQLMNOÖPRSŞTUÜVYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Əlavə %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Bölüm %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Tənlik %n. %t"/>
+<l:template name="example" text="Nümunə %n. %t"/>
+<l:template name="figure" text="Fiqur %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Hissə %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Üsul %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produksiya %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Cədvəl %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Əlavə %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Bölüm %n. %t"/>
+<l:template name="part" text="Hissə %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Cavab: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Sual: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Sual: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text=" “%t”"/>
+<l:template name="refsection" text=" “%t”"/>
+<l:template name="refsect1" text=" “%t”"/>
+<l:template name="refsect2" text=" “%t”"/>
+<l:template name="refsect3" text=" “%t”"/>
+<l:template name="sect1" text=" “%t”"/>
+<l:template name="sect2" text=" “%t”"/>
+<l:template name="sect3" text=" “%t”"/>
+<l:template name="sect4" text=" “%t”"/>
+<l:template name="sect5" text=" “%t”"/>
+<l:template name="section" text=" “%t”"/>
+<l:template name="simplesect" text=" “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Cavab: %n"/>
+<l:template name="appendix" text="Əlavə %n"/>
+<l:template name="bridgehead" text="Qisim %n"/>
+<l:template name="chapter" text="Bölüm %n"/>
+<l:template name="equation" text="Tənlik %n"/>
+<l:template name="example" text="Nümunə %n"/>
+<l:template name="figure" text="Fiqur %n"/>
+<l:template name="part" text="Hissə %n"/>
+<l:template name="procedure" text="Üsul %n"/>
+<l:template name="productionset" text="Produksiya %n"/>
+<l:template name="qandadiv" text="S və C %n"/>
+<l:template name="qandaentry" text="Sual: %n"/>
+<l:template name="question" text="Sual: %n"/>
+<l:template name="sect1" text="Qisim %n"/>
+<l:template name="sect2" text="Qisim %n"/>
+<l:template name="sect3" text="Qisim %n"/>
+<l:template name="sect4" text="Qisim %n"/>
+<l:template name="sect5" text="Qisim %n"/>
+<l:template name="section" text="Qisim %n"/>
+<l:template name="table" text="Cədvəl %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Əlavə %n, %t"/>
+<l:template name="bridgehead" text="Qisim %n, “%t”"/>
+<l:template name="chapter" text="Bölüm %n, %t"/>
+<l:template name="equation" text="Tənlik %n, “%t”"/>
+<l:template name="example" text="Nümunə %n, “%t”"/>
+<l:template name="figure" text="Fiqur %n, “%t”"/>
+<l:template name="part" text="Hissə %n, “%t”"/>
+<l:template name="procedure" text="Üsul %n, “%t”"/>
+<l:template name="productionset" text="Produksiya %n, “%t”"/>
+<l:template name="qandadiv" text="S və C %n, “%t”"/>
+<l:template name="refsect1" text=" “%t”"/>
+<l:template name="refsect2" text=" “%t”"/>
+<l:template name="refsect3" text=" “%t”"/>
+<l:template name="refsection" text=" “%t”"/>
+<l:template name="sect1" text="Qisim %n, “%t”"/>
+<l:template name="sect2" text="Qisim %n, “%t”"/>
+<l:template name="sect3" text="Qisim %n, “%t”"/>
+<l:template name="sect4" text="Qisim %n, “%t”"/>
+<l:template name="sect5" text="Qisim %n, “%t”"/>
+<l:template name="section" text="Qisim %n, “%t”"/>
+<l:template name="simplesect" text=" “%t”"/>
+<l:template name="table" text="Cədvəl %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" və "/>
+<l:template name="seplast" text=", və "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Bax %t."/>
+<l:template name="seealso" text="Eləcə Də Bax %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Hədəf Oxuyucu: "/>
+<l:template name="MsgLevel" text="Səviyyə: "/>
+<l:template name="MsgOrig" text="Mənbə: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Janvar"/>
+<l:template name="February" text="Fevral"/>
+<l:template name="March" text="Mart"/>
+<l:template name="April" text="Aprel"/>
+<l:template name="May" text="May"/>
+<l:template name="June" text="İyun"/>
+<l:template name="July" text="İyul"/>
+<l:template name="August" text="Avqust"/>
+<l:template name="September" text="Sentyabr"/>
+<l:template name="October" text="Oktyabr"/>
+<l:template name="November" text="Noyabr"/>
+<l:template name="December" text="Dekabr"/>
+<l:template name="Monday" text="Bazar Ertəsi"/>
+<l:template name="Tuesday" text="Çərşənbə Axşamı "/>
+<l:template name="Wednesday" text="Çərşənbə"/>
+<l:template name="Thursday" text="Cümə Axşamı"/>
+<l:template name="Friday" text="Cümə"/>
+<l:template name="Saturday" text="Şənbə"/>
+<l:template name="Sunday" text="Bazar"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Yan"/>
+<l:template name="Feb" text="Fev"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="May"/>
+<l:template name="Jun" text="İyn"/>
+<l:template name="Jul" text="İyl"/>
+<l:template name="Aug" text="Avq"/>
+<l:template name="Sep" text="Sen"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Noy"/>
+<l:template name="Dec" text="Dek"/>
+<l:template name="Mon" text="Ber"/>
+<l:template name="Tue" text="Çax"/>
+<l:template name="Wed" text="Çər"/>
+<l:template name="Thu" text="Cax"/>
+<l:template name="Fri" text="Cüm"/>
+<l:template name="Sat" text="Şnb"/>
+<l:template name="Sun" text="Baz"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x042c Azerbaijani"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">İşarələr</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">Ç</l:l>
+<l:l i="5">ç</l:l>
+<l:l i="5">D</l:l>
+<l:l i="5">d</l:l>
+<l:l i="6">E</l:l>
+<l:l i="6">e</l:l>
+<l:l i="7">e</l:l>
+<l:l i="7">e</l:l>
+<l:l i="8">Ə</l:l>
+<l:l i="8">ə</l:l>
+<l:l i="9">G</l:l>
+<l:l i="9">g</l:l>
+<l:l i="10">Ğ</l:l>
+<l:l i="10">ğ</l:l>
+<l:l i="11">H</l:l>
+<l:l i="11">h</l:l>
+<l:l i="12">X</l:l>
+<l:l i="12">x</l:l>
+<l:l i="13">I</l:l>
+<l:l i="13">ı</l:l>
+<l:l i="14">İ</l:l>
+<l:l i="14">i</l:l>
+<l:l i="15">J</l:l>
+<l:l i="15">j</l:l>
+<l:l i="16">K</l:l>
+<l:l i="16">k</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">L</l:l>
+<l:l i="18">l</l:l>
+<l:l i="19">M</l:l>
+<l:l i="19">m</l:l>
+<l:l i="20">N</l:l>
+<l:l i="20">n</l:l>
+<l:l i="21">O</l:l>
+<l:l i="21">o</l:l>
+<l:l i="22">Ö</l:l>
+<l:l i="22">ö</l:l>
+<l:l i="23">P</l:l>
+<l:l i="23">p</l:l>
+<l:l i="24">R</l:l>
+<l:l i="24">r</l:l>
+<l:l i="25">S</l:l>
+<l:l i="25">s</l:l>
+<l:l i="26">Ş</l:l>
+<l:l i="26">ş</l:l>
+<l:l i="27">T</l:l>
+<l:l i="27">t</l:l>
+<l:l i="28">U</l:l>
+<l:l i="28">u</l:l>
+<l:l i="29">Ü</l:l>
+<l:l i="29">ü</l:l>
+<l:l i="30">V</l:l>
+<l:l i="30">v</l:l>
+<l:l i="31">Y</l:l>
+<l:l i="31">y</l:l>
+<l:l i="32">Z</l:l>
+<l:l i="32">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/bg.xml b/applications/content/template/docbook/common/bg.xml
new file mode 100644
index 0000000..315479e
--- /dev/null
+++ b/applications/content/template/docbook/common/bg.xml
@@ -0,0 +1,742 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="bg" english-language-name="Bulgarian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/bg.xml -->
+<!-- * -->
+<!-- * E-mail the edited bg.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Анотация"/>
+<l:gentext key="abstract" text="анотация"/>
+<l:gentext key="Acknowledgements" text="Благодарности на"/>
+<l:gentext key="acknowledgements" text="благодарности на"/>
+<l:gentext key="Answer" text="О"/>
+<l:gentext key="answer" text="о"/>
+<l:gentext key="Appendix" text="Приложение"/>
+<l:gentext key="appendix" text="приложение"/>
+<l:gentext key="Article" text="Статия"/>
+<l:gentext key="article" text="статия"/>
+<l:gentext key="Author" text="Автор"/>
+<l:gentext key="Bibliography" text="Литература"/>
+<l:gentext key="bibliography" text="литература"/>
+<l:gentext key="Book" text="Книга"/>
+<l:gentext key="book" text="книга"/>
+<l:gentext key="CAUTION" text="ВНИМАНИЕ"/>
+<l:gentext key="Caution" text="Внимание"/>
+<l:gentext key="caution" text="внимание"/>
+<l:gentext key="Chapter" text="Глава"/>
+<l:gentext key="chapter" text="глава"/>
+<l:gentext key="Colophon" text="Библиографско каре"/>
+<l:gentext key="colophon" text="Библиографско каре"/>
+<l:gentext key="Copyright" text="Авторски права"/>
+<l:gentext key="copyright" text="авторски права"/>
+<l:gentext key="Dedication" text="Посвещение"/>
+<l:gentext key="dedication" text="посвещение"/>
+<l:gentext key="Edition" text="Издание"/>
+<l:gentext key="edition" text="издание"/>
+<l:gentext key="Editor" text="Редактор"/>
+<l:gentext key="Equation" text="Формула"/>
+<l:gentext key="equation" text="формула"/>
+<l:gentext key="Example" text="Пример"/>
+<l:gentext key="example" text="пример"/>
+<l:gentext key="Figure" text="Фигура"/>
+<l:gentext key="figure" text="фигура"/>
+<l:gentext key="Glossary" text="Терминологичен речник"/>
+<l:gentext key="glossary" text="терминологичен речник"/>
+<l:gentext key="GlossSee" text="Вж."/>
+<l:gentext key="glosssee" text="вж."/>
+<l:gentext key="GlossSeeAlso" text="Вж."/>
+<l:gentext key="glossseealso" text="вж."/>
+<l:gentext key="IMPORTANT" text="ВАЖНО"/>
+<l:gentext key="important" text="важно"/>
+<l:gentext key="Important" text="Важно"/>
+<l:gentext key="Index" text="Азбучен указател"/>
+<l:gentext key="index" text="азбучен указател"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Авторски права"/>
+<l:gentext key="legalnotice" text="авторски права"/>
+<l:gentext key="MsgAud" text="Насоченост"/>
+<l:gentext key="msgaud" text="насоченост"/>
+<l:gentext key="MsgLevel" text="Ниво"/>
+<l:gentext key="msglevel" text="ниво"/>
+<l:gentext key="MsgOrig" text="Източник"/>
+<l:gentext key="msgorig" text="източник"/>
+<l:gentext key="NOTE" text="ЗАБЕЛЕЖКА"/>
+<l:gentext key="Note" text="Забележка"/>
+<l:gentext key="note" text="забележка"/>
+<l:gentext key="Part" text="Част"/>
+<l:gentext key="part" text="част"/>
+<l:gentext key="Preface" text="Предговор"/>
+<l:gentext key="preface" text="предговор"/>
+<l:gentext key="Procedure" text="Процедура"/>
+<l:gentext key="procedure" text="процедура"/>
+<l:gentext key="ProductionSet" text="Продукция"/>
+<l:gentext key="PubDate" text="Дата на издаване"/>
+<l:gentext key="pubdate" text="дата на издаване"/>
+<l:gentext key="Published" text="Издаден"/>
+<l:gentext key="published" text="издаден"/>
+<l:gentext key="Publisher" text="Издател"/>
+<l:gentext key="Qandadiv" text="Въпроси и отговори"/>
+<l:gentext key="qandadiv" text="въпроси и отговори"/>
+<l:gentext key="QandASet" text="Често задавани въпроси"/>
+<l:gentext key="Question" text="В"/>
+<l:gentext key="question" text="в"/>
+<l:gentext key="RefEntry" text="Страница"/>
+<l:gentext key="refentry" text="страница"/>
+<l:gentext key="Reference" text="Справочник"/>
+<l:gentext key="reference" text="справочник"/>
+<l:gentext key="References" text="Препратки"/>
+<l:gentext key="RefName" text="Название"/>
+<l:gentext key="refname" text="название"/>
+<l:gentext key="RefSection" text="Раздел"/>
+<l:gentext key="refsection" text="раздел"/>
+<l:gentext key="RefSynopsisDiv" text="Синтаксис"/>
+<l:gentext key="refsynopsisdiv" text="синтаксис"/>
+<l:gentext key="RevHistory" text="Промени"/>
+<l:gentext key="revhistory" text="промени"/>
+<l:gentext key="revision" text="издание"/>
+<l:gentext key="Revision" text="издание"/>
+<l:gentext key="sect1" text="Раздел"/>
+<l:gentext key="sect2" text="Раздел"/>
+<l:gentext key="sect3" text="Раздел"/>
+<l:gentext key="sect4" text="Раздел"/>
+<l:gentext key="sect5" text="Раздел"/>
+<l:gentext key="section" text="раздел"/>
+<l:gentext key="Section" text="Раздел"/>
+<l:gentext key="see" text="вж."/>
+<l:gentext key="See" text="Вж."/>
+<l:gentext key="seealso" text="вж."/>
+<l:gentext key="Seealso" text="Вж."/>
+<l:gentext key="SeeAlso" text="Вж."/>
+<l:gentext key="set" text="група"/>
+<l:gentext key="Set" text="Група"/>
+<l:gentext key="setindex" text="указател"/>
+<l:gentext key="SetIndex" text="Указател"/>
+<l:gentext key="Sidebar" text="Разделител"/>
+<l:gentext key="sidebar" text="разделител"/>
+<l:gentext key="step" text="стъпка"/>
+<l:gentext key="Step" text="Стъпка"/>
+<l:gentext key="table" text="таблица"/>
+<l:gentext key="Table" text="Таблица"/>
+<l:gentext key="task" text="задача"/>
+<l:gentext key="Task" text="Задача"/>
+<l:gentext key="tip" text="подсказка"/>
+<l:gentext key="TIP" text="ПОДСКАЗКА"/>
+<l:gentext key="Tip" text="Подсказка"/>
+<l:gentext key="Warning" text="Внимание"/>
+<l:gentext key="warning" text="внимание"/>
+<l:gentext key="WARNING" text="ВНИМАНИЕ"/>
+<l:gentext key="and" text="и"/>
+<l:gentext key="or" text="или"/>
+<l:gentext key="by" text="от"/>
+<l:gentext key="Edited" text="Редактирано от"/>
+<l:gentext key="edited" text="редактирано от"/>
+<l:gentext key="Editedby" text="Редактирано от"/>
+<l:gentext key="editedby" text="редактирано от"/>
+<l:gentext key="in" text="в"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="забележки"/>
+<l:gentext key="Notes" text="Забележки"/>
+<l:gentext key="Pgs" text="Стр."/>
+<l:gentext key="pgs" text="стр."/>
+<l:gentext key="Revisedby" text="Преработено от"/>
+<l:gentext key="revisedby" text="преработено от"/>
+<l:gentext key="TableNotes" text="Забележки"/>
+<l:gentext key="tablenotes" text="забележки"/>
+<l:gentext key="TableofContents" text="Съдържание"/>
+<l:gentext key="tableofcontents" text="съдържание"/>
+<l:gentext key="unexpectedelementname" text="неочакван елемент"/>
+<l:gentext key="unsupported" text="неподдържан елемент"/>
+<l:gentext key="xrefto" text="вж."/>
+<l:gentext key="Authors" text="Автори"/>
+<l:gentext key="copyeditor" text="Редактор"/>
+<l:gentext key="graphicdesigner" text="Автор на графичното оформление"/>
+<l:gentext key="productioneditor" text="Редактор на изданието"/>
+<l:gentext key="technicaleditor" text="Технически редактор"/>
+<l:gentext key="translator" text="Преводач"/>
+<l:gentext key="listofequations" text="списък на формулите"/>
+<l:gentext key="ListofEquations" text="Списък на формулите"/>
+<l:gentext key="ListofExamples" text="Списък на примерите"/>
+<l:gentext key="listofexamples" text="списък на примерите"/>
+<l:gentext key="ListofFigures" text="Списък на фигурите"/>
+<l:gentext key="listoffigures" text="списък на фигурите"/>
+<l:gentext key="ListofProcedures" text="Списък на процедурите"/>
+<l:gentext key="listofprocedures" text="списък на процедурите"/>
+<l:gentext key="listoftables" text="списък на таблиците"/>
+<l:gentext key="ListofTables" text="Списък на таблиците"/>
+<l:gentext key="ListofUnknown" text="Списък с други неща"/>
+<l:gentext key="listofunknown" text="списък с други неща"/>
+<l:gentext key="nav-home" text="Начало"/>
+<l:gentext key="nav-next" text="Напред"/>
+<l:gentext key="nav-next-sibling" text="Прескачане напред"/>
+<l:gentext key="nav-prev" text="Назад"/>
+<l:gentext key="nav-prev-sibling" text="Прескачане назад"/>
+<l:gentext key="nav-up" text="Ниво нагоре"/>
+<l:gentext key="nav-toc" text="Съдържание"/>
+<l:gentext key="Draft" text="Чернова"/>
+<l:gentext key="above" text="по-горе"/>
+<l:gentext key="below" text="по-долу"/>
+<l:gentext key="sectioncalled" text="разделът със заглавие"/>
+<l:gentext key="index symbols" text="символи"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="абвгдежзийклмнопрстуфхцчшщъыьэюя"/>
+<l:gentext key="uppercase.alpha" text="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="“"/>
+<l:dingbat key="nestedstartquote" text="„"/>
+<l:dingbat key="nestedendquote" text="“"/>
+<l:dingbat key="singlestartquote" text="«"/>
+<l:dingbat key="singleendquote" text="»"/>
+<l:dingbat key="bullet" text="—"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Приложение %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Глава %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Формула %n. %t"/>
+<l:template name="example" text="Пример %n. %t"/>
+<l:template name="figure" text="Фигура %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Част %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Процедура %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Продукция %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Таблица %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Приложение %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Глава %n. %t"/>
+<l:template name="part" text="Част %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="О. %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="В. %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="В. %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="разделът със заглавие „%t“"/>
+<l:template name="refsection" text="разделът със заглавие „%t“"/>
+<l:template name="refsect1" text="разделът със заглавие „%t“"/>
+<l:template name="refsect2" text="разделът със заглавие „%t“"/>
+<l:template name="refsect3" text="разделът със заглавие „%t“"/>
+<l:template name="sect1" text="разделът със заглавие „%t“"/>
+<l:template name="sect2" text="разделът със заглавие „%t“"/>
+<l:template name="sect3" text="разделът със заглавие „%t“"/>
+<l:template name="sect4" text="разделът със заглавие „%t“"/>
+<l:template name="sect5" text="разделът със заглавие „%t“"/>
+<l:template name="section" text="разделът със заглавие „%t“"/>
+<l:template name="simplesect" text="разделът със заглавие „%t“"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="О. %n"/>
+<l:template name="appendix" text="Приложение %n"/>
+<l:template name="bridgehead" text="Раздел %n"/>
+<l:template name="chapter" text="Глава %n"/>
+<l:template name="equation" text="Формула %n"/>
+<l:template name="example" text="Пример %n"/>
+<l:template name="figure" text="Фигура %n"/>
+<l:template name="part" text="Част %n"/>
+<l:template name="procedure" text="Процедура %n"/>
+<l:template name="productionset" text="Продукция %n"/>
+<l:template name="qandadiv" text="Въпроси и отговори %n"/>
+<l:template name="qandaentry" text="В. %n"/>
+<l:template name="question" text="В. %n"/>
+<l:template name="sect1" text="Раздел %n"/>
+<l:template name="sect2" text="Раздел %n"/>
+<l:template name="sect3" text="Раздел %n"/>
+<l:template name="sect4" text="Раздел %n"/>
+<l:template name="sect5" text="Раздел %n"/>
+<l:template name="section" text="Раздел %n"/>
+<l:template name="table" text="Таблица %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Приложение %n, %t"/>
+<l:template name="bridgehead" text="Раздел %n, „%t“"/>
+<l:template name="chapter" text="Глава %n, %t"/>
+<l:template name="equation" text="Формула %n, „%t“"/>
+<l:template name="example" text="Пример %n, „%t“"/>
+<l:template name="figure" text="Фигура %n, „%t“"/>
+<l:template name="part" text="Част %n, „%t“"/>
+<l:template name="procedure" text="Процедура %n, „%t“"/>
+<l:template name="productionset" text="Продукция %n, „%t“"/>
+<l:template name="qandadiv" text="Въпроси и отговори %n, „%t“"/>
+<l:template name="refsect1" text="разделът със заглавие „%t“"/>
+<l:template name="refsect2" text="разделът със заглавие „%t“"/>
+<l:template name="refsect3" text="разделът със заглавие „%t“"/>
+<l:template name="refsection" text="разделът със заглавие „%t“"/>
+<l:template name="sect1" text="Раздел %n, „%t“"/>
+<l:template name="sect2" text="Раздел %n, „%t“"/>
+<l:template name="sect3" text="Раздел %n, „%t“"/>
+<l:template name="sect4" text="Раздел %n, „%t“"/>
+<l:template name="sect5" text="Раздел %n, „%t“"/>
+<l:template name="section" text="Раздел %n, „%t“"/>
+<l:template name="simplesect" text="разделът със заглавие „%t“"/>
+<l:template name="table" text="Таблица %n, „%t“"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" и "/>
+<l:template name="seplast" text=" и "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Вж. %t."/>
+<l:template name="seealso" text="Вж. %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Насоченост: "/>
+<l:template name="MsgLevel" text="Ниво: "/>
+<l:template name="MsgOrig" text="Източник: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d.m.Y г."/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="януари"/>
+<l:template name="February" text="февруари"/>
+<l:template name="March" text="март"/>
+<l:template name="April" text="април"/>
+<l:template name="May" text="май"/>
+<l:template name="June" text="юни"/>
+<l:template name="July" text="юли"/>
+<l:template name="August" text="август"/>
+<l:template name="September" text="септември"/>
+<l:template name="October" text="октомври"/>
+<l:template name="November" text="ноември"/>
+<l:template name="December" text="декември"/>
+<l:template name="Monday" text="понеделник"/>
+<l:template name="Tuesday" text="вторник"/>
+<l:template name="Wednesday" text="сряда"/>
+<l:template name="Thursday" text="четвъртък"/>
+<l:template name="Friday" text="петък"/>
+<l:template name="Saturday" text="събота"/>
+<l:template name="Sunday" text="неделя"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="ян."/>
+<l:template name="Feb" text="фев."/>
+<l:template name="Mar" text="март"/>
+<l:template name="Apr" text="апр."/>
+<l:template name="May" text="май"/>
+<l:template name="Jun" text="юни"/>
+<l:template name="Jul" text="юли"/>
+<l:template name="Aug" text="авг."/>
+<l:template name="Sep" text="сеп."/>
+<l:template name="Oct" text="окт."/>
+<l:template name="Nov" text="ноем."/>
+<l:template name="Dec" text="дек."/>
+<l:template name="Mon" text="пон."/>
+<l:template name="Tue" text="вт."/>
+<l:template name="Wed" text="ср."/>
+<l:template name="Thu" text="чет."/>
+<l:template name="Fri" text="пет."/>
+<l:template name="Sat" text="съб."/>
+<l:template name="Sun" text="нед."/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0402 Bulgarian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="—"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Цифри и знаци</l:l>
+<l:l i="10">А</l:l>
+<l:l i="10">а</l:l>
+<l:l i="20">Б</l:l>
+<l:l i="20">б</l:l>
+<l:l i="30">В</l:l>
+<l:l i="30">в</l:l>
+<l:l i="40">Г</l:l>
+<l:l i="40">г</l:l>
+<l:l i="50">Д</l:l>
+<l:l i="50">д</l:l>
+<l:l i="60">Е</l:l>
+<l:l i="60">е</l:l>
+<l:l i="70">Ж</l:l>
+<l:l i="70">ж</l:l>
+<l:l i="80">З</l:l>
+<l:l i="80">з</l:l>
+<l:l i="90">И</l:l>
+<l:l i="90">и</l:l>
+<l:l i="100">Й</l:l>
+<l:l i="100">й</l:l>
+<l:l i="110">К</l:l>
+<l:l i="110">к</l:l>
+<l:l i="120">Л</l:l>
+<l:l i="120">л</l:l>
+<l:l i="130">М</l:l>
+<l:l i="130">м</l:l>
+<l:l i="140">Н</l:l>
+<l:l i="140">н</l:l>
+<l:l i="150">О</l:l>
+<l:l i="150">о</l:l>
+<l:l i="160">П</l:l>
+<l:l i="160">п</l:l>
+<l:l i="170">Р</l:l>
+<l:l i="170">р</l:l>
+<l:l i="180">С</l:l>
+<l:l i="180">с</l:l>
+<l:l i="190">Т</l:l>
+<l:l i="190">т</l:l>
+<l:l i="200">У</l:l>
+<l:l i="200">у</l:l>
+<l:l i="210">Ф</l:l>
+<l:l i="210">ф</l:l>
+<l:l i="220">Х</l:l>
+<l:l i="220">х</l:l>
+<l:l i="230">Ц</l:l>
+<l:l i="230">ц</l:l>
+<l:l i="240">Ч</l:l>
+<l:l i="240">ч</l:l>
+<l:l i="250">Ш</l:l>
+<l:l i="250">ш</l:l>
+<l:l i="260">Щ</l:l>
+<l:l i="260">щ</l:l>
+<l:l i="270">Ъ</l:l>
+<l:l i="270">ъ</l:l>
+<l:l i="280">Ь</l:l>
+<l:l i="280">ь</l:l>
+<l:l i="290">Ю</l:l>
+<l:l i="290">ю</l:l>
+<l:l i="300">Я</l:l>
+<l:l i="300">я</l:l>
+<l:l i="310">Э</l:l>
+<l:l i="310">э</l:l>
+<l:l i="320">Ы</l:l>
+<l:l i="320">ы</l:l>
+<l:l i="410">A</l:l>
+<l:l i="410">a</l:l>
+<l:l i="420">B</l:l>
+<l:l i="420">b</l:l>
+<l:l i="430">C</l:l>
+<l:l i="430">c</l:l>
+<l:l i="440">D</l:l>
+<l:l i="440">d</l:l>
+<l:l i="450">E</l:l>
+<l:l i="450">e</l:l>
+<l:l i="460">F</l:l>
+<l:l i="460">f</l:l>
+<l:l i="470">G</l:l>
+<l:l i="470">g</l:l>
+<l:l i="480">H</l:l>
+<l:l i="480">h</l:l>
+<l:l i="490">I</l:l>
+<l:l i="490">i</l:l>
+<l:l i="500">J</l:l>
+<l:l i="500">j</l:l>
+<l:l i="510">K</l:l>
+<l:l i="510">k</l:l>
+<l:l i="520">L</l:l>
+<l:l i="520">l</l:l>
+<l:l i="530">M</l:l>
+<l:l i="530">m</l:l>
+<l:l i="540">N</l:l>
+<l:l i="540">n</l:l>
+<l:l i="550">O</l:l>
+<l:l i="550">o</l:l>
+<l:l i="560">P</l:l>
+<l:l i="560">p</l:l>
+<l:l i="570">Q</l:l>
+<l:l i="570">q</l:l>
+<l:l i="580">R</l:l>
+<l:l i="580">r</l:l>
+<l:l i="590">S</l:l>
+<l:l i="590">s</l:l>
+<l:l i="600">T</l:l>
+<l:l i="600">t</l:l>
+<l:l i="610">U</l:l>
+<l:l i="610">u</l:l>
+<l:l i="620">V</l:l>
+<l:l i="620">v</l:l>
+<l:l i="630">W</l:l>
+<l:l i="630">w</l:l>
+<l:l i="640">X</l:l>
+<l:l i="640">x</l:l>
+<l:l i="650">Y</l:l>
+<l:l i="650">y</l:l>
+<l:l i="660">Z</l:l>
+<l:l i="660">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/bn.xml b/applications/content/template/docbook/common/bn.xml
new file mode 100644
index 0000000..79fcb4d
--- /dev/null
+++ b/applications/content/template/docbook/common/bn.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="bn" english-language-name="Bangla">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/bn.xml -->
+<!-- * -->
+<!-- * E-mail the edited bn.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="সারসংক্ষেপ"/>
+<l:gentext key="abstract" text="সারসংক্ষেপ"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="উত্তর:"/>
+<l:gentext key="answer" text="উত্তর:"/>
+<l:gentext key="Appendix" text="পরিশিষ্ট"/>
+<l:gentext key="appendix" text="পরিশিষ্ট"/>
+<l:gentext key="Article" text="প্রবন্ধ"/>
+<l:gentext key="article" text="প্রবন্ধ"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="গ্রন্থ তালিকা"/>
+<l:gentext key="bibliography" text="গ্রন্থ তালিকা"/>
+<l:gentext key="Book" text="বই"/>
+<l:gentext key="book" text="বই"/>
+<l:gentext key="CAUTION" text="সতর্কতা"/>
+<l:gentext key="Caution" text="সতর্কতা"/>
+<l:gentext key="caution" text="সতর্কতা"/>
+<l:gentext key="Chapter" text="অধ্যায়"/>
+<l:gentext key="chapter" text="অধ্যায়"/>
+<l:gentext key="Colophon" text="প্রকাশনা তথ্য পৃষ্ঠা"/>
+<l:gentext key="colophon" text="প্রকাশনা তথ্য পৃষ্ঠা"/>
+<l:gentext key="Copyright" text="স্বত্ব"/>
+<l:gentext key="copyright" text="স্বত্ব"/>
+<l:gentext key="Dedication" text="উত্‍সর্গ"/>
+<l:gentext key="dedication" text="উত্‍সর্গ"/>
+<l:gentext key="Edition" text="সংস্করণ"/>
+<l:gentext key="edition" text="সংস্করণ"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="সমীকরণ"/>
+<l:gentext key="equation" text="সমীকরণ"/>
+<l:gentext key="Example" text="উদাহরণ"/>
+<l:gentext key="example" text="উদাহরণ"/>
+<l:gentext key="Figure" text="চিত্র"/>
+<l:gentext key="figure" text="চিত্র"/>
+<l:gentext key="Glossary" text="নির্ঘন্ট"/>
+<l:gentext key="glossary" text="নির্ঘন্ট"/>
+<l:gentext key="GlossSee" text="দেখুন"/>
+<l:gentext key="glosssee" text="দেখুন"/>
+<l:gentext key="GlossSeeAlso" text="আরো দেখুন"/>
+<l:gentext key="glossseealso" text="আরো দেখুন"/>
+<l:gentext key="IMPORTANT" text="গুরুত্বপূর্ণ"/>
+<l:gentext key="important" text="গুরুত্বপূর্ণ"/>
+<l:gentext key="Important" text="গুরুত্বপূর্ণ"/>
+<l:gentext key="Index" text="সূচি"/>
+<l:gentext key="index" text="সূচি"/>
+<l:gentext key="ISBN" text="আইএসবিএন (ISBN)"/>
+<l:gentext key="isbn" text="আইএসবিএন (ISBN)"/>
+<l:gentext key="LegalNotice" text="আইনী বিজ্ঞপ্তি"/>
+<l:gentext key="legalnotice" text="আইনী বিজ্ঞপ্তি"/>
+<l:gentext key="MsgAud" text="শ্রোতা"/>
+<l:gentext key="msgaud" text="শ্রোতা"/>
+<l:gentext key="MsgLevel" text="স্তর"/>
+<l:gentext key="msglevel" text="স্তর"/>
+<l:gentext key="MsgOrig" text="উত্‍স"/>
+<l:gentext key="msgorig" text="উত্‍স"/>
+<l:gentext key="NOTE" text="লক্ষণীয়"/>
+<l:gentext key="Note" text="লক্ষণীয়"/>
+<l:gentext key="note" text="লক্ষণীয়"/>
+<l:gentext key="Part" text="খন্ড"/>
+<l:gentext key="part" text="খন্ড"/>
+<l:gentext key="Preface" text="মুখবন্ধ"/>
+<l:gentext key="preface" text="মুখবন্ধ"/>
+<l:gentext key="Procedure" text="পদ্ধতি"/>
+<l:gentext key="procedure" text="পদ্ধতি"/>
+<l:gentext key="ProductionSet" text="উত্‍পাদন"/>
+<l:gentext key="PubDate" text="প্রকাশনার তারিখ"/>
+<l:gentext key="pubdate" text="প্রকাশনার তারিখ"/>
+<l:gentext key="Published" text="প্রকাশিত"/>
+<l:gentext key="published" text="প্রকাশিত"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="প্রশ্নএবংউত্তর"/>
+<l:gentext key="qandadiv" text="প্রশ্নএবংউত্তর"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="প্রশ্ন:"/>
+<l:gentext key="question" text="প্রশ্ন:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="গ্রন্থসূত্র"/>
+<l:gentext key="reference" text="গ্রন্থসূত্র"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="নাম"/>
+<l:gentext key="refname" text="নাম"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="সারাংশ"/>
+<l:gentext key="refsynopsisdiv" text="সারাংশ"/>
+<l:gentext key="RevHistory" text="পরিবর্ধন ও পরিবর্তন তালিকা"/>
+<l:gentext key="revhistory" text="পরিবর্ধন ও পরিবর্তন তালিকা"/>
+<l:gentext key="revision" text="সংস্করণ"/>
+<l:gentext key="Revision" text="সংস্করণ"/>
+<l:gentext key="sect1" text="অনুচ্ছেদ"/>
+<l:gentext key="sect2" text="অনুচ্ছেদ"/>
+<l:gentext key="sect3" text="অনুচ্ছেদ"/>
+<l:gentext key="sect4" text="অনুচ্ছেদ"/>
+<l:gentext key="sect5" text="অনুচ্ছেদ"/>
+<l:gentext key="section" text="অনুচ্ছেদ"/>
+<l:gentext key="Section" text="অনুচ্ছেদ"/>
+<l:gentext key="see" text="দেখুন"/>
+<l:gentext key="See" text="দেখুন"/>
+<l:gentext key="seealso" text="আরো দেখুন"/>
+<l:gentext key="Seealso" text="আরো দেখুন"/>
+<l:gentext key="SeeAlso" text="আরো দেখুন"/>
+<l:gentext key="set" text="সমষ্টি"/>
+<l:gentext key="Set" text="সমষ্টি"/>
+<l:gentext key="setindex" text="সূচিসমষ্টি"/>
+<l:gentext key="SetIndex" text="সূচিসমষ্টি"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="সাইডবার"/>
+<l:gentext key="step" text="ধাপ"/>
+<l:gentext key="Step" text="ধাপ"/>
+<l:gentext key="table" text="ছক"/>
+<l:gentext key="Table" text="ছক"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="ইঙ্গিত"/>
+<l:gentext key="TIP" text="ইঙ্গিত"/>
+<l:gentext key="Tip" text="ইঙ্গিত"/>
+<l:gentext key="Warning" text="সতর্কবাণী"/>
+<l:gentext key="warning" text="সতর্কবাণী"/>
+<l:gentext key="WARNING" text="সতর্কবাণী"/>
+<l:gentext key="and" text="এবং"/>
+<l:gentext key="or" text="বা"/>
+<l:gentext key="by" text="দ্বারা"/>
+<l:gentext key="Edited" text="সম্পাদিত"/>
+<l:gentext key="edited" text="সম্পাদিত"/>
+<l:gentext key="Editedby" text="সম্পাদক"/>
+<l:gentext key="editedby" text="সম্পাদক"/>
+<l:gentext key="in" text="মধ্যে"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="নোট"/>
+<l:gentext key="Notes" text="নোট"/>
+<l:gentext key="Pgs" text="পৃষ্ঠা."/>
+<l:gentext key="pgs" text="পৃষ্ঠা."/>
+<l:gentext key="Revisedby" text="পরিমার্জনাকারী: "/>
+<l:gentext key="revisedby" text="পরিমার্জনাকারী: "/>
+<l:gentext key="TableNotes" text="নোট"/>
+<l:gentext key="tablenotes" text="নোট"/>
+<l:gentext key="TableofContents" text="সূচিপত্র"/>
+<l:gentext key="tableofcontents" text="সূচিপত্র"/>
+<l:gentext key="unexpectedelementname" text="অপ্রত্যাশিত উপাদানের নাম"/>
+<l:gentext key="unsupported" text="অসমর্থিত"/>
+<l:gentext key="xrefto" text="নির্দেশ করে"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="সমীকরণ তালিকা"/>
+<l:gentext key="ListofEquations" text="সমীকরণ তালিকা"/>
+<l:gentext key="ListofExamples" text="উদাহরণ তালিকা"/>
+<l:gentext key="listofexamples" text="উদাহরণ তালিকা"/>
+<l:gentext key="ListofFigures" text="চিত্রতালিকা"/>
+<l:gentext key="listoffigures" text="চিত্রতালিকা"/>
+<l:gentext key="ListofProcedures" text="পদ্ধতির তালিকা"/>
+<l:gentext key="listofprocedures" text="পদ্ধতির তালিকা"/>
+<l:gentext key="listoftables" text="ছকের তালিকা"/>
+<l:gentext key="ListofTables" text="ছকের তালিকা"/>
+<l:gentext key="ListofUnknown" text="অজ্ঞাত বস্তুর তালিকা"/>
+<l:gentext key="listofunknown" text="অজ্ঞাত বস্তুর তালিকা"/>
+<l:gentext key="nav-home" text="প্রথম অবস্থান (Home)"/>
+<l:gentext key="nav-next" text="পরবর্তী"/>
+<l:gentext key="nav-next-sibling" text="দ্রুত সম্মুখে"/>
+<l:gentext key="nav-prev" text="পূর্ববর্তী"/>
+<l:gentext key="nav-prev-sibling" text="দ্রুত পশ্চাতে"/>
+<l:gentext key="nav-up" text="উপর"/>
+<l:gentext key="nav-toc" text="সূচিপত্র"/>
+<l:gentext key="Draft" text="খসড়া"/>
+<l:gentext key="above" text="উপর"/>
+<l:gentext key="below" text="নিচ"/>
+<l:gentext key="sectioncalled" text="অনুচ্ছেদ"/>
+<l:gentext key="index symbols" text="প্রতীক"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="অআইঈউঊএঐওঔঋকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহংঃ"/>
+<l:gentext key="uppercase.alpha" text="অআইঈউঊএঐওঔঋকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহংঃ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="পরিশিষ্ট %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="অধ্যায় %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="সমীকরণ %n. %t"/>
+<l:template name="example" text="উদাহরণ %n. %t"/>
+<l:template name="figure" text="চিত্র %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="খন্ড %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="পদ্ধতি %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="উত্‍পাদন %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="ছক %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="পরিশিষ্ট %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="অধ্যায় %n. %t"/>
+<l:template name="part" text="খন্ড %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="উত্তর: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="প্রশ্ন: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="প্রশ্ন: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsection" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsect1" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsect2" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsect3" text="অনুচ্ছেদ “%t”"/>
+<l:template name="sect1" text="অনুচ্ছেদ “%t”"/>
+<l:template name="sect2" text="অনুচ্ছেদ “%t”"/>
+<l:template name="sect3" text="অনুচ্ছেদ “%t”"/>
+<l:template name="sect4" text="অনুচ্ছেদ “%t”"/>
+<l:template name="sect5" text="অনুচ্ছেদ “%t”"/>
+<l:template name="section" text="অনুচ্ছেদ “%t”"/>
+<l:template name="simplesect" text="অনুচ্ছেদ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="উত্তর: %n"/>
+<l:template name="appendix" text="পরিশিষ্ট %n"/>
+<l:template name="bridgehead" text="অনুচ্ছেদ %n"/>
+<l:template name="chapter" text="অধ্যায় %n"/>
+<l:template name="equation" text="সমীকরণ %n"/>
+<l:template name="example" text="উদাহরণ %n"/>
+<l:template name="figure" text="চিত্র %n"/>
+<l:template name="part" text="খন্ড %n"/>
+<l:template name="procedure" text="পদ্ধতি %n"/>
+<l:template name="productionset" text="উত্‍পাদন %n"/>
+<l:template name="qandadiv" text="প্রশ্নএবংউত্তর %n"/>
+<l:template name="qandaentry" text="প্রশ্ন: %n"/>
+<l:template name="question" text="প্রশ্ন: %n"/>
+<l:template name="sect1" text="অনুচ্ছেদ %n"/>
+<l:template name="sect2" text="অনুচ্ছেদ %n"/>
+<l:template name="sect3" text="অনুচ্ছেদ %n"/>
+<l:template name="sect4" text="অনুচ্ছেদ %n"/>
+<l:template name="sect5" text="অনুচ্ছেদ %n"/>
+<l:template name="section" text="অনুচ্ছেদ %n"/>
+<l:template name="table" text="ছক %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="পরিশিষ্ট %n, %t"/>
+<l:template name="bridgehead" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="chapter" text="অধ্যায় %n, %t"/>
+<l:template name="equation" text="সমীকরণ %n, “%t”"/>
+<l:template name="example" text="উদাহরণ %n, “%t”"/>
+<l:template name="figure" text="চিত্র %n, “%t”"/>
+<l:template name="part" text="খন্ড %n, “%t”"/>
+<l:template name="procedure" text="পদ্ধতি %n, “%t”"/>
+<l:template name="productionset" text="উত্‍পাদন %n, “%t”"/>
+<l:template name="qandadiv" text="প্রশ্নএবংউত্তর %n, “%t”"/>
+<l:template name="refsect1" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsect2" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsect3" text="অনুচ্ছেদ “%t”"/>
+<l:template name="refsection" text="অনুচ্ছেদ “%t”"/>
+<l:template name="sect1" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="sect2" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="sect3" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="sect4" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="sect5" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="section" text="অনুচ্ছেদ %n, “%t”"/>
+<l:template name="simplesect" text="অনুচ্ছেদ “%t”"/>
+<l:template name="table" text="ছক %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" এবং "/>
+<l:template name="seplast" text=", এবং "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="দেখুন %t."/>
+<l:template name="seealso" text="আরো দেখুন %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="শ্রোতা: "/>
+<l:template name="MsgLevel" text="স্তর: "/>
+<l:template name="MsgOrig" text="উত্‍স: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="জানুয়ারী"/>
+<l:template name="February" text="ফেব্রুয়ারী"/>
+<l:template name="March" text="মার্চ"/>
+<l:template name="April" text="এপ্রিল"/>
+<l:template name="May" text="মে"/>
+<l:template name="June" text="জুন"/>
+<l:template name="July" text="জুলাই"/>
+<l:template name="August" text="আগস্ট"/>
+<l:template name="September" text="সেপ্টেম্বর"/>
+<l:template name="October" text="অক্টোবর"/>
+<l:template name="November" text="নভেম্বর"/>
+<l:template name="December" text="ডিসেম্বর"/>
+<l:template name="Monday" text="সোমবার"/>
+<l:template name="Tuesday" text="মঙ্গলবার"/>
+<l:template name="Wednesday" text="বুধবার"/>
+<l:template name="Thursday" text="বৃহঃস্পতিবার"/>
+<l:template name="Friday" text="শুক্রবার"/>
+<l:template name="Saturday" text="শনিবার"/>
+<l:template name="Sunday" text="রবিবার"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="জানুয়ারী"/>
+<l:template name="Feb" text="ফেব্রুয়ারী"/>
+<l:template name="Mar" text="মার্চ"/>
+<l:template name="Apr" text="এপ্রিল"/>
+<l:template name="May" text="মে"/>
+<l:template name="Jun" text="জুন"/>
+<l:template name="Jul" text="জুলাই"/>
+<l:template name="Aug" text="আগস্ট"/>
+<l:template name="Sep" text="সেপ্টেম্বর"/>
+<l:template name="Oct" text="অক্টোবর"/>
+<l:template name="Nov" text="নভেম্বর"/>
+<l:template name="Dec" text="ডিসেম্বর"/>
+<l:template name="Mon" text="সোম"/>
+<l:template name="Tue" text="মঙ্গল"/>
+<l:template name="Wed" text="বুধ"/>
+<l:template name="Thu" text="বৃহঃস্পতি"/>
+<l:template name="Fri" text="শুক্র"/>
+<l:template name="Sat" text="শনি"/>
+<l:template name="Sun" text="রবি"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0445 Bangla (Bangladesh and India)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/bn_in.xml b/applications/content/template/docbook/common/bn_in.xml
new file mode 100644
index 0000000..ab41959
--- /dev/null
+++ b/applications/content/template/docbook/common/bn_in.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="bn_in" english-language-name="Indian Bangla">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/bn_in.xml -->
+<!-- * -->
+<!-- * E-mail the edited bn_in.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="সারসংক্ষেপ"/>
+<l:gentext key="abstract" text="সারসংক্ষেপ"/>
+<l:gentext key="Acknowledgements" text="স্বীকৃতি"/>
+<l:gentext key="acknowledgements" text="স্বীকৃতি"/>
+<l:gentext key="Answer" text="উত্তর:"/>
+<l:gentext key="answer" text="উত্তর:"/>
+<l:gentext key="Appendix" text="পরিশিষ্ট"/>
+<l:gentext key="appendix" text="পরিশিষ্ট"/>
+<l:gentext key="Article" text="প্রবন্ধ"/>
+<l:gentext key="article" text="প্রবন্ধ"/>
+<l:gentext key="Author" text="লেখক"/>
+<l:gentext key="Bibliography" text="গ্রন্থপঞ্জি"/>
+<l:gentext key="bibliography" text="গ্রন্থপঞ্জি"/>
+<l:gentext key="Book" text="বই"/>
+<l:gentext key="book" text="বই"/>
+<l:gentext key="CAUTION" text="সাবধান"/>
+<l:gentext key="Caution" text="সাবধান"/>
+<l:gentext key="caution" text="সাবধান"/>
+<l:gentext key="Chapter" text="অধ্যায়"/>
+<l:gentext key="chapter" text="অধ্যায়"/>
+<l:gentext key="Colophon" text="গ্রন্থপরিচয়"/>
+<l:gentext key="colophon" text="গ্রন্থপরিচয়"/>
+<l:gentext key="Copyright" text="স্বত্বাধিকার"/>
+<l:gentext key="copyright" text="স্বত্বাধিকার"/>
+<l:gentext key="Dedication" text="উৎসর্গপত্র"/>
+<l:gentext key="dedication" text="উৎসর্গপত্র"/>
+<l:gentext key="Edition" text="সংস্করণ"/>
+<l:gentext key="edition" text="সংস্করণ"/>
+<l:gentext key="Editor" text="সম্পাদক"/>
+<l:gentext key="Equation" text="সমীকরণ"/>
+<l:gentext key="equation" text="সমীকরণ"/>
+<l:gentext key="Example" text="উদাহরণ"/>
+<l:gentext key="example" text="উদাহরণ"/>
+<l:gentext key="Figure" text="চিত্র"/>
+<l:gentext key="figure" text="চিত্র"/>
+<l:gentext key="Glossary" text="পরিভাষাকোষ"/>
+<l:gentext key="glossary" text="পরিভাষাকোষ"/>
+<l:gentext key="GlossSee" text="দ্রষ্টব্য"/>
+<l:gentext key="glosssee" text="দ্রষ্টব্য"/>
+<l:gentext key="GlossSeeAlso" text="অতিরিক্ত দ্রষ্টব্য"/>
+<l:gentext key="glossseealso" text="অতিরিক্ত দ্রষ্টব্য"/>
+<l:gentext key="IMPORTANT" text="গুরুত্বপূর্ণ"/>
+<l:gentext key="important" text="গুরুত্বপূর্ণ"/>
+<l:gentext key="Important" text="গুরুত্বপূর্ণ"/>
+<l:gentext key="Index" text="বিষয়সূচি"/>
+<l:gentext key="index" text="বিষয়সূচি"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="আইনী বিবৃতি"/>
+<l:gentext key="legalnotice" text="আইনী বিবৃতি"/>
+<l:gentext key="MsgAud" text="উদ্দিষ্ট পাঠকবর্গ"/>
+<l:gentext key="msgaud" text="উদ্দিষ্ট পাঠকবর্গ"/>
+<l:gentext key="MsgLevel" text="স্তর"/>
+<l:gentext key="msglevel" text="স্তর"/>
+<l:gentext key="MsgOrig" text="মূল"/>
+<l:gentext key="msgorig" text="মূল"/>
+<l:gentext key="NOTE" text="উল্লেখ্য"/>
+<l:gentext key="Note" text="উল্লেখ্য"/>
+<l:gentext key="note" text="উল্লেখ্য"/>
+<l:gentext key="Part" text="পরিচ্ছেদ"/>
+<l:gentext key="part" text="পরিচ্ছেদ"/>
+<l:gentext key="Preface" text="মুখবন্ধ"/>
+<l:gentext key="preface" text="মুখবন্ধ"/>
+<l:gentext key="Procedure" text="পদ্ধতি"/>
+<l:gentext key="procedure" text="পদ্ধতি"/>
+<l:gentext key="ProductionSet" text="নির্মাণ"/>
+<l:gentext key="PubDate" text="প্রকাশনার তারিখ"/>
+<l:gentext key="pubdate" text="প্রকাশনার তারিখ"/>
+<l:gentext key="Published" text="প্রকাশিত"/>
+<l:gentext key="published" text="প্রকাশিত"/>
+<l:gentext key="Publisher" text="প্রকাশক"/>
+<l:gentext key="Qandadiv" text="প্রশ্নোত্তর"/>
+<l:gentext key="qandadiv" text="প্রশ্নোত্তর"/>
+<l:gentext key="QandASet" text="সাধারণ কিছু জিজ্ঞাসা"/>
+<l:gentext key="Question" text="প্রশ্ন:"/>
+<l:gentext key="question" text="প্রশ্ন:"/>
+<l:gentext key="RefEntry" text="পৃষ্ঠা"/>
+<l:gentext key="refentry" text="পৃষ্ঠা"/>
+<l:gentext key="Reference" text="প্রসঙ্গ নির্দেশ"/>
+<l:gentext key="reference" text="প্রসঙ্গ নির্দেশ"/>
+<l:gentext key="References" text="প্রসঙ্গ নির্দেশ তালিকা"/>
+<l:gentext key="RefName" text="নাম"/>
+<l:gentext key="refname" text="নাম"/>
+<l:gentext key="RefSection" text="বিভাগ"/>
+<l:gentext key="refsection" text="বিভাগ"/>
+<l:gentext key="RefSynopsisDiv" text="সারাংশ"/>
+<l:gentext key="refsynopsisdiv" text="সারাংশ"/>
+<l:gentext key="RevHistory" text="পরিমার্জনার তথ্য"/>
+<l:gentext key="revhistory" text="পরিমার্জনার তথ্য"/>
+<l:gentext key="revision" text="পরিমার্জনা"/>
+<l:gentext key="Revision" text="পরিমার্জনা"/>
+<l:gentext key="sect1" text="বিভাগ"/>
+<l:gentext key="sect2" text="বিভাগ"/>
+<l:gentext key="sect3" text="বিভাগ"/>
+<l:gentext key="sect4" text="বিভাগ"/>
+<l:gentext key="sect5" text="বিভাগ"/>
+<l:gentext key="section" text="বিভাগ"/>
+<l:gentext key="Section" text="বিভাগ"/>
+<l:gentext key="see" text="দ্রষ্টব্য"/>
+<l:gentext key="See" text="দ্রষ্টব্য"/>
+<l:gentext key="seealso" text="অতিরিক্ত দ্রষ্টব্য"/>
+<l:gentext key="Seealso" text="অতিরিক্ত দ্রষ্টব্য"/>
+<l:gentext key="SeeAlso" text="অতিরিক্ত দ্রষ্টব্য"/>
+<l:gentext key="set" text="সংকলন"/>
+<l:gentext key="Set" text="সংকলন"/>
+<l:gentext key="setindex" text="সংকলন সূচি"/>
+<l:gentext key="SetIndex" text="সংকলন সূচি"/>
+<l:gentext key="Sidebar" text="পার্শ্ববর্তী স্তম্ভ"/>
+<l:gentext key="sidebar" text="পার্শ্ববর্তী স্তম্ভ"/>
+<l:gentext key="step" text="ধাপ"/>
+<l:gentext key="Step" text="ধাপ"/>
+<l:gentext key="table" text="সারণি"/>
+<l:gentext key="Table" text="সারণি"/>
+<l:gentext key="task" text="কর্ম"/>
+<l:gentext key="Task" text="কর্ম"/>
+<l:gentext key="tip" text="সূত্র"/>
+<l:gentext key="TIP" text="সূত্র"/>
+<l:gentext key="Tip" text="সূত্র"/>
+<l:gentext key="Warning" text="সতর্কবার্তা"/>
+<l:gentext key="warning" text="সতর্কবার্তা"/>
+<l:gentext key="WARNING" text="সতর্কবার্তা"/>
+<l:gentext key="and" text="এবং"/>
+<l:gentext key="or" text="বা"/>
+<l:gentext key="by" text="দ্বারা"/>
+<l:gentext key="Edited" text="সম্পাদিত"/>
+<l:gentext key="edited" text="সম্পাদিত"/>
+<l:gentext key="Editedby" text="সম্পাদক"/>
+<l:gentext key="editedby" text="সম্পাদক"/>
+<l:gentext key="in" text="অন্তর্ভুক্ত"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="টিকা টিপ্পনি"/>
+<l:gentext key="Notes" text="টিকা টিপ্পনি"/>
+<l:gentext key="Pgs" text="পৃষ্ঠা"/>
+<l:gentext key="pgs" text="পৃষ্ঠা"/>
+<l:gentext key="Revisedby" text="পরিবর্ধক: "/>
+<l:gentext key="revisedby" text="পরিবর্ধক: "/>
+<l:gentext key="TableNotes" text="টিকা টিপ্পনি"/>
+<l:gentext key="tablenotes" text="টিকা টিপ্পনি"/>
+<l:gentext key="TableofContents" text="সূচিপত্র"/>
+<l:gentext key="tableofcontents" text="সূচিপত্র"/>
+<l:gentext key="unexpectedelementname" text="অপ্রত্যাশিত সত্ত্বার নাম"/>
+<l:gentext key="unsupported" text="অসমর্থিত"/>
+<l:gentext key="xrefto" text="xref নির্দেশিকা"/>
+<l:gentext key="Authors" text="লেখক"/>
+<l:gentext key="copyeditor" text="প্রতিলিপি সম্পাদক"/>
+<l:gentext key="graphicdesigner" text="চিত্র শিল্পী"/>
+<l:gentext key="productioneditor" text="নির্মাণ সম্পাদক"/>
+<l:gentext key="technicaleditor" text="প্রযুক্তিবিষয়ক সম্পাদক"/>
+<l:gentext key="translator" text="অনুবাদক"/>
+<l:gentext key="listofequations" text="সমীকরণের তালিকা"/>
+<l:gentext key="ListofEquations" text="সমীকরণের তালিকা"/>
+<l:gentext key="ListofExamples" text="উদাহরণের তালিকা"/>
+<l:gentext key="listofexamples" text="উদাহরণের তালিকা"/>
+<l:gentext key="ListofFigures" text="ছবির তালিকা"/>
+<l:gentext key="listoffigures" text="ছবির তালিকা"/>
+<l:gentext key="ListofProcedures" text="পদ্ধতির তালিকা"/>
+<l:gentext key="listofprocedures" text="পদ্ধতির তালিকা"/>
+<l:gentext key="listoftables" text="সারণির তালিকা"/>
+<l:gentext key="ListofTables" text="সারণির তালিকা"/>
+<l:gentext key="ListofUnknown" text="অজানা বস্তুর তালিকা"/>
+<l:gentext key="listofunknown" text="অজানা বস্তুর তালিকা"/>
+<l:gentext key="nav-home" text="প্রারম্ভিক পৃষ্ঠা"/>
+<l:gentext key="nav-next" text="পরবর্তী"/>
+<l:gentext key="nav-next-sibling" text="অতিবর্তন"/>
+<l:gentext key="nav-prev" text="পূর্ববর্তী"/>
+<l:gentext key="nav-prev-sibling" text="পশ্চাৎদিশায় অতিবর্তন"/>
+<l:gentext key="nav-up" text="উপর"/>
+<l:gentext key="nav-toc" text="সূচিপত্র"/>
+<l:gentext key="Draft" text="খসড়া"/>
+<l:gentext key="above" text="ঊর্ধ্ব"/>
+<l:gentext key="below" text="নিম্ন"/>
+<l:gentext key="sectioncalled" text="উল্লিখিত বিভাগ"/>
+<l:gentext key="index symbols" text="সংকেত"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz" lang="en"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" lang="en"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="পরিশিষ্ট %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="অধ্যায় %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="সমীকরণ %n. %t"/>
+<l:template name="example" text="উদাহরণ %n. %t"/>
+<l:template name="figure" text="চিত্র %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="পরিচ্ছেদ %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="পদ্ধতি %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="নির্মাণ %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="সারণি %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="পরিশিষ্ট %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="অধ্যায় %n. %t"/>
+<l:template name="part" text="পরিচ্ছেদ %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="উত্তর: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="প্রশ্ন: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="প্রশ্ন: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="refsection" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="refsect1" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="refsect2" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="refsect3" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="sect1" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="sect2" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="sect3" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="sect4" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="sect5" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="section" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="simplesect" text="উল্লিখিত বিভাগ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="উত্তর: %n"/>
+<l:template name="appendix" text="পরিশিষ্ট %n"/>
+<l:template name="bridgehead" text="বিভাগ %n"/>
+<l:template name="chapter" text="অধ্যায় %n"/>
+<l:template name="equation" text="সমীকরণ %n"/>
+<l:template name="example" text="উদাহরণ %n"/>
+<l:template name="figure" text="চিত্র %n"/>
+<l:template name="part" text="পরিচ্ছেদ %n"/>
+<l:template name="procedure" text="পদ্ধতি %n"/>
+<l:template name="productionset" text="নির্মাণ %n"/>
+<l:template name="qandadiv" text="প্রশ্নোত্তর %n"/>
+<l:template name="qandaentry" text="প্রশ্ন: %n"/>
+<l:template name="question" text="প্রশ্ন: %n"/>
+<l:template name="sect1" text="বিভাগ %n"/>
+<l:template name="sect2" text="বিভাগ %n"/>
+<l:template name="sect3" text="বিভাগ %n"/>
+<l:template name="sect4" text="বিভাগ %n"/>
+<l:template name="sect5" text="বিভাগ %n"/>
+<l:template name="section" text="বিভাগ %n"/>
+<l:template name="table" text="সারণি %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="পরিশিষ্ট %n, %t"/>
+<l:template name="bridgehead" text="বিভাগ %n, “%t”"/>
+<l:template name="chapter" text="অধ্যায় %n, %t"/>
+<l:template name="equation" text="সমীকরণ %n, “%t”"/>
+<l:template name="example" text="উদাহরণ %n, “%t”"/>
+<l:template name="figure" text="চিত্র %n, “%t”"/>
+<l:template name="part" text="পরিচ্ছেদ %n, “%t”"/>
+<l:template name="procedure" text="পদ্ধতি %n, “%t”"/>
+<l:template name="productionset" text="নির্মাণ %n, “%t”"/>
+<l:template name="qandadiv" text="প্রশ্নোত্তর %n, “%t”"/>
+<l:template name="refsect1" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="refsect2" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="refsect3" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="refsection" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="sect1" text="বিভাগ %n, “%t”"/>
+<l:template name="sect2" text="বিভাগ %n, “%t”"/>
+<l:template name="sect3" text="বিভাগ %n, “%t”"/>
+<l:template name="sect4" text="বিভাগ %n, “%t”"/>
+<l:template name="sect5" text="বিভাগ %n, “%t”"/>
+<l:template name="section" text="বিভাগ %n, “%t”"/>
+<l:template name="simplesect" text="উল্লিখিত বিভাগ “%t”"/>
+<l:template name="table" text="সারণি %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" এবং "/>
+<l:template name="seplast" text=", এবং "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="দ্রষ্টব্য %t."/>
+<l:template name="seealso" text="অতিরিক্ত দ্রষ্টব্য %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="উদ্দিষ্ট পাঠকবর্গ: "/>
+<l:template name="MsgLevel" text="স্তর: "/>
+<l:template name="MsgOrig" text="মূল: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="জানুয়ারি"/>
+<l:template name="February" text="ফেব্রুয়ারি"/>
+<l:template name="March" text="মার্চ"/>
+<l:template name="April" text="এপ্রিল"/>
+<l:template name="May" text="মে"/>
+<l:template name="June" text="জুন"/>
+<l:template name="July" text="জুলাই"/>
+<l:template name="August" text="অগাস্ট"/>
+<l:template name="September" text="সেপটেম্বর"/>
+<l:template name="October" text="অক্টোবর"/>
+<l:template name="November" text="নভেম্বর"/>
+<l:template name="December" text="ডিসেম্বর"/>
+<l:template name="Monday" text="সোমবার"/>
+<l:template name="Tuesday" text="মঙ্গলবার"/>
+<l:template name="Wednesday" text="বুধবার"/>
+<l:template name="Thursday" text="বৃহস্পতিবার"/>
+<l:template name="Friday" text="শুক্রবার"/>
+<l:template name="Saturday" text="শনিবার"/>
+<l:template name="Sunday" text="রবিবার"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="জানুয়ারি"/>
+<l:template name="Feb" text="ফেব্রুয়ারি"/>
+<l:template name="Mar" text="মার্চ"/>
+<l:template name="Apr" text="এপ্রিল"/>
+<l:template name="May" text="মে"/>
+<l:template name="Jun" text="জুন"/>
+<l:template name="Jul" text="জুলাই"/>
+<l:template name="Aug" text="অগাস্ট"/>
+<l:template name="Sep" text="সেপটেম্বর"/>
+<l:template name="Oct" text="অক্টোবর"/>
+<l:template name="Nov" text="নভেম্বর"/>
+<l:template name="Dec" text="ডিসেম্বর"/>
+<l:template name="Mon" text="সোম"/>
+<l:template name="Tue" text="মঙ্গল"/>
+<l:template name="Wed" text="বুধ"/>
+<l:template name="Thu" text="বৃহঃ"/>
+<l:template name="Fri" text="শুক্র"/>
+<l:template name="Sat" text="শনি"/>
+<l:template name="Sun" text="রবি"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0445 Bangla (Bangladesh and India)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">সংকেত</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/bs.xml b/applications/content/template/docbook/common/bs.xml
new file mode 100644
index 0000000..3fb1165
--- /dev/null
+++ b/applications/content/template/docbook/common/bs.xml
@@ -0,0 +1,680 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="bs" english-language-name="Bosnian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/bs.xml -->
+<!-- * -->
+<!-- * E-mail the edited bs.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Sažetak"/>
+<l:gentext key="abstract" text="sažetak"/>
+<l:gentext key="Acknowledgements" text="Priznanja"/>
+<l:gentext key="acknowledgements" text="priznanja"/>
+<l:gentext key="Answer" text="O:"/>
+<l:gentext key="answer" text="o:"/>
+<l:gentext key="Appendix" text="Dodatak"/>
+<l:gentext key="appendix" text="dodatak"/>
+<l:gentext key="Article" text="Članak"/>
+<l:gentext key="article" text="članak"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Literatura"/>
+<l:gentext key="bibliography" text="literatura"/>
+<l:gentext key="Book" text="Knjiga"/>
+<l:gentext key="book" text="knjiga"/>
+<l:gentext key="CAUTION" text="PAŽNJA"/>
+<l:gentext key="Caution" text="Pažnja"/>
+<l:gentext key="caution" text="pažnja"/>
+<l:gentext key="Chapter" text="Poglavlje"/>
+<l:gentext key="chapter" text="poglavlje"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="kolofon"/>
+<l:gentext key="Copyright" text="Autorska prava"/>
+<l:gentext key="copyright" text="autorska prava"/>
+<l:gentext key="Dedication" text="Posveta"/>
+<l:gentext key="dedication" text="posveta"/>
+<l:gentext key="Edition" text="Izdanje"/>
+<l:gentext key="edition" text="izdanje"/>
+<l:gentext key="Editor" text="Editor"/>
+<l:gentext key="Equation" text="Jednačina"/>
+<l:gentext key="equation" text="jednačina"/>
+<l:gentext key="Example" text="Primjer"/>
+<l:gentext key="example" text="primjer"/>
+<l:gentext key="Figure" text="Slika"/>
+<l:gentext key="figure" text="slika"/>
+<l:gentext key="Glossary" text="Glosar"/>
+<l:gentext key="glossary" text="glosar"/>
+<l:gentext key="GlossSee" text="Vidi"/>
+<l:gentext key="glosssee" text="vidi"/>
+<l:gentext key="GlossSeeAlso" text="Vidi takođe"/>
+<l:gentext key="glossseealso" text="vidi takođe"/>
+<l:gentext key="IMPORTANT" text="VAŽNO"/>
+<l:gentext key="important" text="važno"/>
+<l:gentext key="Important" text="Važno"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Pravne odredbe"/>
+<l:gentext key="legalnotice" text="pravne odredbe"/>
+<l:gentext key="MsgAud" text="Primatelji"/>
+<l:gentext key="msgaud" text="primatelji"/>
+<l:gentext key="MsgLevel" text="Nivo"/>
+<l:gentext key="msglevel" text="nivo"/>
+<l:gentext key="MsgOrig" text="Izvor"/>
+<l:gentext key="msgorig" text="izvor"/>
+<l:gentext key="NOTE" text="BILJEŠKA"/>
+<l:gentext key="Note" text="Bilješka"/>
+<l:gentext key="note" text="Bilješka"/>
+<l:gentext key="Part" text="Dio"/>
+<l:gentext key="part" text="dio"/>
+<l:gentext key="Preface" text="Predgovor"/>
+<l:gentext key="preface" text="predgovor"/>
+<l:gentext key="Procedure" text="Postupak"/>
+<l:gentext key="procedure" text="postupak"/>
+<l:gentext key="ProductionSet" text="Produkcija"/>
+<l:gentext key="PubDate" text="Objavljeno"/>
+<l:gentext key="pubdate" text="objavljeno"/>
+<l:gentext key="Published" text="Objavljeno"/>
+<l:gentext key="published" text="objavljeno"/>
+<l:gentext key="Publisher" text="Objavljeno"/>
+<l:gentext key="Qandadiv" text="P &amp; O"/>
+<l:gentext key="qandadiv" text="P &amp; O"/>
+<l:gentext key="QandASet" text="Često Pitana Pitanja"/>
+<l:gentext key="Question" text="P:"/>
+<l:gentext key="question" text="P:"/>
+<l:gentext key="RefEntry" text="Stranica"/>
+<l:gentext key="refentry" text="stranica"/>
+<l:gentext key="Reference" text="Referenca"/>
+<l:gentext key="reference" text="referenca"/>
+<l:gentext key="References" text="Referenca"/>
+<l:gentext key="RefName" text="Ime"/>
+<l:gentext key="refname" text="ime"/>
+<l:gentext key="RefSection" text="Odjeljak"/>
+<l:gentext key="refsection" text="odjeljak"/>
+<l:gentext key="RefSynopsisDiv" text="Pregled"/>
+<l:gentext key="refsynopsisdiv" text="pregled"/>
+<l:gentext key="RevHistory" text="Historija verzija"/>
+<l:gentext key="revhistory" text="historija verzija"/>
+<l:gentext key="revision" text="verzija"/>
+<l:gentext key="Revision" text="Verzija"/>
+<l:gentext key="sect1" text="Odjeljak"/>
+<l:gentext key="sect2" text="Odjeljak"/>
+<l:gentext key="sect3" text="Odjeljak"/>
+<l:gentext key="sect4" text="Odjeljak"/>
+<l:gentext key="sect5" text="Odjeljak"/>
+<l:gentext key="section" text="odjeljak"/>
+<l:gentext key="Section" text="Odjeljak"/>
+<l:gentext key="see" text="vidi"/>
+<l:gentext key="See" text="Vidi"/>
+<l:gentext key="seealso" text="vidi takođe"/>
+<l:gentext key="Seealso" text="Vidi takođe"/>
+<l:gentext key="SeeAlso" text="Vidi takođe"/>
+<l:gentext key="set" text="set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="indeks"/>
+<l:gentext key="SetIndex" text="Indeks"/>
+<l:gentext key="Sidebar" text="Postrana kolona"/>
+<l:gentext key="sidebar" text="postrana kolona"/>
+<l:gentext key="step" text="korak"/>
+<l:gentext key="Step" text="Korak"/>
+<l:gentext key="table" text="tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="zadatak"/>
+<l:gentext key="Task" text="Zadatak"/>
+<l:gentext key="tip" text="Savjet"/>
+<l:gentext key="TIP" text="SAVJET"/>
+<l:gentext key="Tip" text="Savjet"/>
+<l:gentext key="Warning" text="Upozorenje"/>
+<l:gentext key="warning" text="Upozorenje"/>
+<l:gentext key="WARNING" text="UPOZORENJE"/>
+<l:gentext key="and" text="i"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="od"/>
+<l:gentext key="Edited" text="Izdao"/>
+<l:gentext key="edited" text="izdao"/>
+<l:gentext key="Editedby" text="Izdao"/>
+<l:gentext key="editedby" text="izdao"/>
+<l:gentext key="in" text="u"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="bilješke"/>
+<l:gentext key="Notes" text="Bilješke"/>
+<l:gentext key="Pgs" text="Str."/>
+<l:gentext key="pgs" text="ptr."/>
+<l:gentext key="Revisedby" text="Izmijenjeno od: "/>
+<l:gentext key="revisedby" text="izmijenjeno od: "/>
+<l:gentext key="TableNotes" text="Napomene"/>
+<l:gentext key="tablenotes" text="napomene"/>
+<l:gentext key="TableofContents" text="Sadržaj"/>
+<l:gentext key="tableofcontents" text="sadržaj"/>
+<l:gentext key="unexpectedelementname" text="Neočkivano ime elementa"/>
+<l:gentext key="unsupported" text="nepodržano"/>
+<l:gentext key="xrefto" text="xref prema"/>
+<l:gentext key="Authors" text="Autori"/>
+<l:gentext key="copyeditor" text="Autorski Urednik"/>
+<l:gentext key="graphicdesigner" text="Graficki Dizajneri"/>
+<l:gentext key="productioneditor" text="Urednik Produkcije"/>
+<l:gentext key="technicaleditor" text="Tehnicki Editor"/>
+<l:gentext key="translator" text="Prevodilac"/>
+<l:gentext key="listofequations" text="spisak jednačina"/>
+<l:gentext key="ListofEquations" text="Spisak jednačina"/>
+<l:gentext key="ListofExamples" text="Spisak primjera"/>
+<l:gentext key="listofexamples" text="spisak primjera"/>
+<l:gentext key="ListofFigures" text="Spisak slika"/>
+<l:gentext key="listoffigures" text="spisak slika"/>
+<l:gentext key="ListofProcedures" text="Spisak postupaka"/>
+<l:gentext key="listofprocedures" text="spisak postupaka"/>
+<l:gentext key="listoftables" text="spisak tabela"/>
+<l:gentext key="ListofTables" text="Spisak tabela"/>
+<l:gentext key="ListofUnknown" text="Spisak ???"/>
+<l:gentext key="listofunknown" text="spisak ???"/>
+<l:gentext key="nav-home" text="Početak"/>
+<l:gentext key="nav-next" text="Naprijed"/>
+<l:gentext key="nav-next-sibling" text="Brzo naprijed"/>
+<l:gentext key="nav-prev" text="Nazad"/>
+<l:gentext key="nav-prev-sibling" text="Brzo nazad"/>
+<l:gentext key="nav-up" text="Gore"/>
+<l:gentext key="nav-toc" text="Sadržaj"/>
+<l:gentext key="Draft" text="Nacrt"/>
+<l:gentext key="above" text="iznad"/>
+<l:gentext key="below" text="ispod"/>
+<l:gentext key="sectioncalled" text="odjeljak sa nazivom"/>
+<l:gentext key="index symbols" text="Simboli"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcčćdđefghijklmnoprsštuvzž"/>
+<l:gentext key="uppercase.alpha" text="ABCČĆDĐEFGHIJKLMNOPRSŠTUVZŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="3"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Dodatak %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Poglavlje %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Jednačina %n. %t"/>
+<l:template name="example" text="Primjer %n. %t"/>
+<l:template name="figure" text="Slika %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Dio %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Postupak %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkcija %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Dodatak %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Poglavlje %n. %t"/>
+<l:template name="part" text="Dio %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="O: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsection" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsect1" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsect2" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsect3" text="odjeljak sa nazivom “%t”"/>
+<l:template name="sect1" text="odjeljak sa nazivom “%t”"/>
+<l:template name="sect2" text="odjeljak sa nazivom “%t”"/>
+<l:template name="sect3" text="odjeljak sa nazivom “%t”"/>
+<l:template name="sect4" text="odjeljak sa nazivom “%t”"/>
+<l:template name="sect5" text="odjeljak sa nazivom “%t”"/>
+<l:template name="section" text="odjeljak sa nazivom “%t”"/>
+<l:template name="simplesect" text="odjeljak sa nazivom “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="O: %n"/>
+<l:template name="appendix" text="Dodatak %n"/>
+<l:template name="bridgehead" text="Odjeljak %n"/>
+<l:template name="chapter" text="Poglavlje %n"/>
+<l:template name="equation" text="Jednačina %n"/>
+<l:template name="example" text="Primjer %n"/>
+<l:template name="figure" text="Slika %n"/>
+<l:template name="part" text="Dio %n"/>
+<l:template name="procedure" text="Postupak %n"/>
+<l:template name="productionset" text="Produkcija %n"/>
+<l:template name="qandadiv" text="P &amp; O %n"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="sect1" text="Odjeljak %n"/>
+<l:template name="sect2" text="Odjeljak %n"/>
+<l:template name="sect3" text="Odjeljak %n"/>
+<l:template name="sect4" text="Odjeljak %n"/>
+<l:template name="sect5" text="Odjeljak %n"/>
+<l:template name="section" text="Odjeljak %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Dodatak %n, %t"/>
+<l:template name="bridgehead" text="Odjeljak %n, “%t”"/>
+<l:template name="chapter" text="Poglavlje %n, %t"/>
+<l:template name="equation" text="Jednačina %n, “%t”"/>
+<l:template name="example" text="Primjer %n, “%t”"/>
+<l:template name="figure" text="Slika %n, “%t”"/>
+<l:template name="part" text="Dio %n, “%t”"/>
+<l:template name="procedure" text="Postupak %n, “%t”"/>
+<l:template name="productionset" text="Produkcija %n, “%t”"/>
+<l:template name="qandadiv" text="P &amp; O %n, “%t”"/>
+<l:template name="refsect1" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsect2" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsect3" text="odjeljak sa nazivom “%t”"/>
+<l:template name="refsection" text="odjeljak sa nazivom “%t”"/>
+<l:template name="sect1" text="Odjeljak %n, “%t”"/>
+<l:template name="sect2" text="Odjeljak %n, “%t”"/>
+<l:template name="sect3" text="Odjeljak %n, “%t”"/>
+<l:template name="sect4" text="Odjeljak %n, “%t”"/>
+<l:template name="sect5" text="Odjeljak %n, “%t”"/>
+<l:template name="section" text="Odjeljak %n, “%t”"/>
+<l:template name="simplesect" text="odjeljak sa nazivom “%t”"/>
+<l:template name="table" text="Tabela %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" i "/>
+<l:template name="seplast" text=" i "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vidi %t."/>
+<l:template name="seealso" text="Vidi takođe %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Primatelji: "/>
+<l:template name="MsgLevel" text="Nivo: "/>
+<l:template name="MsgOrig" text="Izvor: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d.m.Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definicija: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Januar"/>
+<l:template name="February" text="Februar"/>
+<l:template name="March" text="Mart"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="Maj"/>
+<l:template name="June" text="Juni"/>
+<l:template name="July" text="Juli"/>
+<l:template name="August" text="August"/>
+<l:template name="September" text="Septembar"/>
+<l:template name="October" text="Oktobar"/>
+<l:template name="November" text="Novembar"/>
+<l:template name="December" text="Decembar"/>
+<l:template name="Monday" text="Ponedeljak"/>
+<l:template name="Tuesday" text="Utorak"/>
+<l:template name="Wednesday" text="Srijeda"/>
+<l:template name="Thursday" text="Četvrtak"/>
+<l:template name="Friday" text="Petak"/>
+<l:template name="Saturday" text="Subota"/>
+<l:template name="Sunday" text="Nedelja"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Maj"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Pon"/>
+<l:template name="Tue" text="Uto"/>
+<l:template name="Wed" text="Sri"/>
+<l:template name="Thu" text="Čet"/>
+<l:template name="Fri" text="Pet"/>
+<l:template name="Sat" text="Sub"/>
+<l:template name="Sun" text="Ned"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x141A Bosnian (Bosnia/Herzegovina)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Simboli</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/ca.xml b/applications/content/template/docbook/common/ca.xml
new file mode 100644
index 0000000..c385ad4
--- /dev/null
+++ b/applications/content/template/docbook/common/ca.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ca" english-language-name="Catalan">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ca.xml -->
+<!-- * -->
+<!-- * E-mail the edited ca.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Resum"/>
+<l:gentext key="abstract" text="resum"/>
+<l:gentext key="Acknowledgements" text="Agraïments"/>
+<l:gentext key="acknowledgements" text="agraïments"/>
+<l:gentext key="Answer" text="Resposta"/>
+<l:gentext key="answer" text="resposta"/>
+<l:gentext key="Appendix" text="Apèndix"/>
+<l:gentext key="appendix" text="apèndix"/>
+<l:gentext key="Article" text="Article"/>
+<l:gentext key="article" text="article"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="bibliografia"/>
+<l:gentext key="Book" text="Llibre"/>
+<l:gentext key="book" text="llibre"/>
+<l:gentext key="CAUTION" text="ATENCIÓ"/>
+<l:gentext key="Caution" text="Atenció"/>
+<l:gentext key="caution" text="atenció"/>
+<l:gentext key="Chapter" text="Capítol"/>
+<l:gentext key="chapter" text="capítol"/>
+<l:gentext key="Colophon" text="Colofó"/>
+<l:gentext key="colophon" text="colofó"/>
+<l:gentext key="Copyright" text="Dret de reproducció"/>
+<l:gentext key="copyright" text="dret de reproducció"/>
+<l:gentext key="Dedication" text="Dedicatòria"/>
+<l:gentext key="dedication" text="dedicatòria"/>
+<l:gentext key="Edition" text="Edició"/>
+<l:gentext key="edition" text="edició"/>
+<l:gentext key="Editor" text="Editor"/>
+<l:gentext key="Equation" text="Equació"/>
+<l:gentext key="equation" text="equació"/>
+<l:gentext key="Example" text="Exemple"/>
+<l:gentext key="example" text="exemple"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="figura"/>
+<l:gentext key="Glossary" text="Glossari"/>
+<l:gentext key="glossary" text="glossari"/>
+<l:gentext key="GlossSee" text="Veure"/>
+<l:gentext key="glosssee" text="veure"/>
+<l:gentext key="GlossSeeAlso" text="Veure també"/>
+<l:gentext key="glossseealso" text="veure també"/>
+<l:gentext key="IMPORTANT" text="IMPORTANT"/>
+<l:gentext key="important" text="important"/>
+<l:gentext key="Important" text="Important"/>
+<l:gentext key="Index" text="Índex alfabètic"/>
+<l:gentext key="index" text="índex alfabètic"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Avís legal"/>
+<l:gentext key="legalnotice" text="avís legal"/>
+<l:gentext key="MsgAud" text="Audiència"/>
+<l:gentext key="msgaud" text="audiència"/>
+<l:gentext key="MsgLevel" text="Nivell"/>
+<l:gentext key="msglevel" text="nivell"/>
+<l:gentext key="MsgOrig" text="Origen"/>
+<l:gentext key="msgorig" text="origen"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="nota"/>
+<l:gentext key="Part" text="Part"/>
+<l:gentext key="part" text="part"/>
+<l:gentext key="Preface" text="Prefaci"/>
+<l:gentext key="preface" text="prefaci"/>
+<l:gentext key="Procedure" text="Procediment"/>
+<l:gentext key="procedure" text="procediment"/>
+<l:gentext key="ProductionSet" text="Producció"/>
+<l:gentext key="PubDate" text="Data de publicació"/>
+<l:gentext key="pubdate" text="data de publicació"/>
+<l:gentext key="Published" text="Publicat"/>
+<l:gentext key="published" text="publicat"/>
+<l:gentext key="Publisher" text="Editor"/>
+<l:gentext key="Qandadiv" text="Pregunta i Resposta"/>
+<l:gentext key="qandadiv" text="pregunta i resposta"/>
+<l:gentext key="QandASet" text="Preguntes més freqüents"/>
+<l:gentext key="Question" text="Pregunta"/>
+<l:gentext key="question" text="pregunta"/>
+<l:gentext key="RefEntry" text="Pàgina"/>
+<l:gentext key="refentry" text="pàgina"/>
+<l:gentext key="Reference" text="Referència"/>
+<l:gentext key="reference" text="referència"/>
+<l:gentext key="References" text="Referències"/>
+<l:gentext key="RefName" text="Nom"/>
+<l:gentext key="refname" text="nom"/>
+<l:gentext key="RefSection" text="Secció de referència"/>
+<l:gentext key="refsection" text="secció de referència"/>
+<l:gentext key="RefSynopsisDiv" text="Sinopsi"/>
+<l:gentext key="refsynopsisdiv" text="sinopsi"/>
+<l:gentext key="RevHistory" text="Historial de revisions"/>
+<l:gentext key="revhistory" text="historial de revisions"/>
+<l:gentext key="revision" text="revisió"/>
+<l:gentext key="Revision" text="Revisió"/>
+<l:gentext key="sect1" text="Secció"/>
+<l:gentext key="sect2" text="Secció"/>
+<l:gentext key="sect3" text="Secció"/>
+<l:gentext key="sect4" text="Secció"/>
+<l:gentext key="sect5" text="Secció"/>
+<l:gentext key="section" text="secció"/>
+<l:gentext key="Section" text="Secció"/>
+<l:gentext key="see" text="veure"/>
+<l:gentext key="See" text="Veure"/>
+<l:gentext key="seealso" text="veure també"/>
+<l:gentext key="Seealso" text="Veure també"/>
+<l:gentext key="SeeAlso" text="Veure També"/>
+<l:gentext key="set" text="conjunt"/>
+<l:gentext key="Set" text="Conjunt"/>
+<l:gentext key="setindex" text="índex del conjunt"/>
+<l:gentext key="SetIndex" text="Índex del conjunt"/>
+<l:gentext key="Sidebar" text="Barra lateral"/>
+<l:gentext key="sidebar" text="barra lateral"/>
+<l:gentext key="step" text="Pas"/>
+<l:gentext key="Step" text="pas"/>
+<l:gentext key="table" text="taula"/>
+<l:gentext key="Table" text="Taula"/>
+<l:gentext key="task" text="tasca"/>
+<l:gentext key="Task" text="Tasca"/>
+<l:gentext key="tip" text="suggeriment"/>
+<l:gentext key="TIP" text="SUGGERIMENT"/>
+<l:gentext key="Tip" text="Suggeriment"/>
+<l:gentext key="Warning" text="Avís"/>
+<l:gentext key="warning" text="avís"/>
+<l:gentext key="WARNING" text="AVÍS"/>
+<l:gentext key="and" text="i"/>
+<l:gentext key="or" text="o"/>
+<l:gentext key="by" text="per"/>
+<l:gentext key="Edited" text="Editat"/>
+<l:gentext key="edited" text="editat"/>
+<l:gentext key="Editedby" text="Editat per"/>
+<l:gentext key="editedby" text="editat per"/>
+<l:gentext key="in" text="a"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="notes"/>
+<l:gentext key="Notes" text="Notes"/>
+<l:gentext key="Pgs" text="Pàgs."/>
+<l:gentext key="pgs" text="pàgs."/>
+<l:gentext key="Revisedby" text="Revisat per: "/>
+<l:gentext key="revisedby" text="revisat per: "/>
+<l:gentext key="TableNotes" text="Notes de taula"/>
+<l:gentext key="tablenotes" text="notes de taula"/>
+<l:gentext key="TableofContents" text="Sumari"/>
+<l:gentext key="tableofcontents" text="sumari"/>
+<l:gentext key="unexpectedelementname" text="nom d'element inesperat"/>
+<l:gentext key="unsupported" text="no reconeguda"/>
+<l:gentext key="xrefto" text="xref a"/>
+<l:gentext key="Authors" text="Autors"/>
+<l:gentext key="copyeditor" text="Editor de copiat"/>
+<l:gentext key="graphicdesigner" text="Dissenyador gràfic"/>
+<l:gentext key="productioneditor" text="Editor de producció"/>
+<l:gentext key="technicaleditor" text="Editor tècnic"/>
+<l:gentext key="translator" text="Traductor"/>
+<l:gentext key="listofequations" text="llistat d'equacions"/>
+<l:gentext key="ListofEquations" text="Llistat d'equacions"/>
+<l:gentext key="ListofExamples" text="Llistat d'exemples"/>
+<l:gentext key="listofexamples" text="llistat d'exemples"/>
+<l:gentext key="ListofFigures" text="Llistat de figures"/>
+<l:gentext key="listoffigures" text="llistat de figures"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="llistat de taules"/>
+<l:gentext key="ListofTables" text="Llistat de taules"/>
+<l:gentext key="ListofUnknown" text="Llistat de desconegut"/>
+<l:gentext key="listofunknown" text="llistat de desconegut"/>
+<l:gentext key="nav-home" text="Inici"/>
+<l:gentext key="nav-next" text="Següent"/>
+<l:gentext key="nav-next-sibling" text="Avançar"/>
+<l:gentext key="nav-prev" text="Anterior"/>
+<l:gentext key="nav-prev-sibling" text="Retrocedir"/>
+<l:gentext key="nav-up" text="Pujar"/>
+<l:gentext key="nav-toc" text="Taula de continguts"/>
+<l:gentext key="Draft" text="Esborrany"/>
+<l:gentext key="above" text="dalt"/>
+<l:gentext key="below" text="baix"/>
+<l:gentext key="sectioncalled" text="secció anomenada"/>
+<l:gentext key="index symbols" text="Símbols"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzàèéíòóúñç"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÀÈÉÍÒÓÚÑÇ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="«"/>
+<l:dingbat key="endquote" text="»"/>
+<l:dingbat key="nestedstartquote" text="“"/>
+<l:dingbat key="nestedendquote" text="”"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="last-first"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apèndix %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capítol %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equació %n. %t"/>
+<l:template name="example" text="Exemple %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Part %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procediment %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Producció %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Taula %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apèndix %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Capítol %n. %t"/>
+<l:template name="part" text="Part %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Resposta %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Pregunta %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Pregunta %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text=" «%t»"/>
+<l:template name="refsection" text="«%t»"/>
+<l:template name="refsect1" text="«%t»"/>
+<l:template name="refsect2" text="«%t»"/>
+<l:template name="refsect3" text="«%t»"/>
+<l:template name="sect1" text="«%t»"/>
+<l:template name="sect2" text="«%t»"/>
+<l:template name="sect3" text="«%t»"/>
+<l:template name="sect4" text="«%t»"/>
+<l:template name="sect5" text="«%t»"/>
+<l:template name="section" text="«%t»"/>
+<l:template name="simplesect" text="«%t»"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Resposta %n"/>
+<l:template name="appendix" text="Apèndix %n"/>
+<l:template name="bridgehead" text="Secció %n"/>
+<l:template name="chapter" text="Capítol %n"/>
+<l:template name="equation" text="Equació %n"/>
+<l:template name="example" text="Exemple %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Part %n"/>
+<l:template name="procedure" text="Procediment %n"/>
+<l:template name="productionset" text="Producció %n"/>
+<l:template name="qandadiv" text="Pregunta i Resposta %n"/>
+<l:template name="qandaentry" text="Pregunta %n"/>
+<l:template name="question" text="Pregunta %n"/>
+<l:template name="sect1" text="Secció %n"/>
+<l:template name="sect2" text="Secció %n"/>
+<l:template name="sect3" text="Secció %n"/>
+<l:template name="sect4" text="Secció %n"/>
+<l:template name="sect5" text="Secció %n"/>
+<l:template name="section" text="Secció %n"/>
+<l:template name="table" text="Taula %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apèndix %n, %t"/>
+<l:template name="bridgehead" text="Secció %n, «%t»"/>
+<l:template name="chapter" text="Capítol %n, %t"/>
+<l:template name="equation" text="Equació %n, «%t»"/>
+<l:template name="example" text="Exemple %n, «%t»"/>
+<l:template name="figure" text="Figura %n, «%t»"/>
+<l:template name="part" text="Part %n, «%t»"/>
+<l:template name="procedure" text="Procediment %n, «%t»"/>
+<l:template name="productionset" text="Producció %n, «%t»"/>
+<l:template name="qandadiv" text="Pregunta i Resposta %n, «%t»"/>
+<l:template name="refsect1" text="secció anomenada «%t»"/>
+<l:template name="refsect2" text="secció anomenada «%t»"/>
+<l:template name="refsect3" text="secció anomenada «%t»"/>
+<l:template name="refsection" text="secció anomenada «%t»"/>
+<l:template name="sect1" text="Secció %n, «%t»"/>
+<l:template name="sect2" text="Secció %n, «%t»"/>
+<l:template name="sect3" text="Secció %n, «%t»"/>
+<l:template name="sect4" text="Secció %n, «%t»"/>
+<l:template name="sect5" text="Secció %n, «%t»"/>
+<l:template name="section" text="Secció %n, «%t»"/>
+<l:template name="simplesect" text="secció anomenada «%t»"/>
+<l:template name="table" text="Taula %n, «%t»"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" i "/>
+<l:template name="seplast" text=", i "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Veure %t."/>
+<l:template name="seealso" text="Veure també %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audiència: "/>
+<l:template name="MsgLevel" text="Nivell: "/>
+<l:template name="MsgOrig" text="Origen: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Gener"/>
+<l:template name="February" text="Febrer"/>
+<l:template name="March" text="Març"/>
+<l:template name="April" text="Abril"/>
+<l:template name="May" text="Maig"/>
+<l:template name="June" text="Juny"/>
+<l:template name="July" text="Juliol"/>
+<l:template name="August" text="Agost"/>
+<l:template name="September" text="Setembre"/>
+<l:template name="October" text="Octubre"/>
+<l:template name="November" text="Novembre"/>
+<l:template name="December" text="Desembre"/>
+<l:template name="Monday" text="Dilluns"/>
+<l:template name="Tuesday" text="Dimarts"/>
+<l:template name="Wednesday" text="Dimecres"/>
+<l:template name="Thursday" text="Dijous"/>
+<l:template name="Friday" text="Divendres"/>
+<l:template name="Saturday" text="Dissabte"/>
+<l:template name="Sunday" text="Diumenge"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Gen"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Abr"/>
+<l:template name="May" text="Maig"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Ago"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Oct"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Des"/>
+<l:template name="Mon" text="Dl"/>
+<l:template name="Tue" text="Dt"/>
+<l:template name="Wed" text="Dx"/>
+<l:template name="Thu" text="Dj"/>
+<l:template name="Fri" text="Dv"/>
+<l:template name="Sat" text="Ds"/>
+<l:template name="Sun" text="Dg"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0403 Catalan"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Símbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/charmap.xml b/applications/content/template/docbook/common/charmap.xml
new file mode 100644
index 0000000..81312cb
--- /dev/null
+++ b/applications/content/template/docbook/common/charmap.xml
@@ -0,0 +1,185 @@
+<?xml version="1.0"?>
+
+<reference xml:id="charmap">
+  <info>
+    <title>Common » Character-Map Template Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    
+<para>This is technical reference documentation for the
+      character-map templates in the DocBook XSL Stylesheets.</para>
+
+    <note>
+      
+<para>These templates are defined in a separate file from the set
+        of “common” templates because some of the common templates
+        reference DocBook XSL stylesheet parameters, requiring the
+        entire set of parameters to be imported/included in any
+        stylesheet that imports/includes the common templates.</para>
+
+      
+<para>The character-map templates don’t import or include
+        any DocBook XSL stylesheet parameters, so the
+        character-map templates can be used without importing the
+        whole set of parameters.</para>
+
+    </note>
+    
+<para>This is not intended to be user documentation. It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+
+  </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.apply-character-map">
+<refnamediv>
+<refname>apply-character-map</refname>
+<refpurpose>Applies an XSLT character map</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="apply-character-map"&gt;
+&lt;xsl:param name="content"/&gt;
+&lt;xsl:param name="map.contents"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>This template applies an <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character map</link>; that is, it causes certain
+      individual characters to be substituted with strings of one
+      or more characters. It is useful mainly for replacing
+      multiple “special” characters or symbols in the same target
+      content. It uses the value of
+      <parameter>map.contents</parameter> to do substitution on
+      <parameter>content</parameter>, and then returns the
+      modified contents.</para>
+
+    <note>
+      
+<para>This template is a very slightly modified version of
+        Jeni Tennison’s <function>replace_strings</function>
+        template in the <link xlink:href="http://www.dpawson.co.uk/xsl/sect2/StringReplace.html#d9351e13">multiple string replacements</link> section of Dave Pawson’s
+        <link xlink:href="http://www.dpawson.co.uk/xsl/index.html">XSLT FAQ</link>.</para>
+
+      
+<para>The <function>apply-string-subst-map</function>
+        template is essentially the same template as the
+        <function>apply-character-map</function> template; the
+        only difference is that in the map that
+        <function>apply-string-subst-map</function> expects, <tag class="attribute">oldstring</tag> and <tag class="attribute">newstring</tag> attributes are used
+        instead of <tag class="attribute">character</tag> and <tag class="attribute">string</tag> attributes.</para>
+
+    </note>
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>content</term>
+        <listitem>
+          
+<para>The content on which to perform the character-map
+            substitution.</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>map.contents</term>
+        <listitem>
+          
+<para>A node set of elements, with each element having
+            the following attributes:
+            
+<itemizedlist>
+              <listitem>
+                <simpara><tag class="attribute">character</tag>, a
+                  character to be replaced</simpara>
+              </listitem>
+              <listitem>
+                <simpara><tag class="attribute">string</tag>, a
+                  string with which to replace <tag class="attribute">character</tag></simpara>
+              </listitem>
+            </itemizedlist>
+
+          </para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.read-character-map">
+<refnamediv>
+<refname>read-character-map</refname>
+<refpurpose>Reads in all or part of an XSLT character map</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="read-character-map"&gt;
+&lt;xsl:param name="use.subset"/&gt;
+&lt;xsl:param name="subset.profile"/&gt;
+&lt;xsl:param name="uri"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The XSLT 2.0 specification describes <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">character maps</link> and explains how they may be used
+      to allow a specific character appearing in a text or
+      attribute node in a final result tree to be substituted by
+      a specified string of characters during serialization. The
+      <function>read-character-map</function> template provides a
+      means for reading and using character maps with XSLT
+      1.0-based tools.</para>
+
+    
+<para>This template reads the character-map contents from
+      <parameter>uri</parameter> (in full or in part, depending on
+      the value of the <parameter>use.subset</parameter>
+      parameter), then passes those contents to the
+      <function>apply-character-map</function> template, along with
+      <parameter>content</parameter>, the data on which to perform
+      the character substitution.</para>
+
+    
+<para>Using the character map “in part” means that it uses only
+      those <tag>output-character</tag> elements that match the
+      XPath expression given in the value of the
+      <parameter>subset.profile</parameter> parameter. The current
+      implementation of that capability here relies on the
+      <function>evaluate</function> extension XSLT function.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>use.subset</term>
+        <listitem>
+          
+<para>Specifies whether to use a subset of the character
+            map instead of the whole map; boolean
+            <literal>0</literal> or <literal>1</literal></para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>subset.profile</term>
+        <listitem>
+          
+<para>XPath expression that specifies what subset of the
+            character map to use</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>uri</term>
+        <listitem>
+          
+<para>URI for a character map</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+</reference>
+
diff --git a/applications/content/template/docbook/common/charmap.xsl b/applications/content/template/docbook/common/charmap.xsl
new file mode 100644
index 0000000..9935214
--- /dev/null
+++ b/applications/content/template/docbook/common/charmap.xsl
@@ -0,0 +1,221 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                xmlns:dyn="http://exslt.org/dynamic"
+                xmlns:saxon="http://icl.com/saxon"
+                xmlns:xlink="http://www.w3.org/1999/xlink"
+                exclude-result-prefixes="doc dyn saxon"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+<doc:reference xmlns="" xml:id="charmap">
+  <info>
+    <title>Common » Character-Map Template Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <!-- * yes, partintro is a valid child of a reference... -->
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    <para>This is technical reference documentation for the
+      character-map templates in the DocBook XSL Stylesheets.</para>
+    <note>
+      <para>These templates are defined in a separate file from the set
+        of “common” templates because some of the common templates
+        reference DocBook XSL stylesheet parameters, requiring the
+        entire set of parameters to be imported/included in any
+        stylesheet that imports/includes the common templates.</para>
+      <para>The character-map templates don’t import or include
+        any DocBook XSL stylesheet parameters, so the
+        character-map templates can be used without importing the
+        whole set of parameters.</para>
+    </note>
+    <para>This is not intended to be user documentation. It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+  </partintro>
+</doc:reference>
+
+<!-- ===================================== -->
+<doc:template name="apply-character-map" xmlns="">
+  <refpurpose>Applies an XSLT character map</refpurpose>
+  <refdescription id="apply-character-map-desc">
+    <para>This template applies an <link
+      xlink:href="http://www.w3.org/TR/xslt20/#character-maps"
+      >XSLT character map</link>; that is, it causes certain
+      individual characters to be substituted with strings of one
+      or more characters. It is useful mainly for replacing
+      multiple “special” characters or symbols in the same target
+      content. It uses the value of
+      <parameter>map.contents</parameter> to do substitution on
+      <parameter>content</parameter>, and then returns the
+      modified contents.</para>
+    <note>
+      <para>This template is a very slightly modified version of
+        Jeni Tennison’s <function>replace_strings</function>
+        template in the <link
+          xlink:href="http://www.dpawson.co.uk/xsl/sect2/StringReplace.html#d9351e13"
+          >multiple string replacements</link> section of Dave Pawson’s
+        <link xlink:href="http://www.dpawson.co.uk/xsl/index.html"
+          >XSLT FAQ</link>.</para>
+      <para>The <function>apply-string-subst-map</function>
+        template is essentially the same template as the
+        <function>apply-character-map</function> template; the
+        only difference is that in the map that
+        <function>apply-string-subst-map</function> expects, <tag
+          class="attribute">oldstring</tag> and <tag
+          class="attribute">newstring</tag> attributes are used
+        instead of <tag class="attribute">character</tag> and <tag
+          class="attribute">string</tag> attributes.</para>
+    </note>
+  </refdescription>
+  <refparameter id="apply-character-map-params">
+    <variablelist>
+      <varlistentry><term>content</term>
+        <listitem>
+          <para>The content on which to perform the character-map
+            substitution.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>map.contents</term>
+        <listitem>
+          <para>A node set of elements, with each element having
+            the following attributes:
+            <itemizedlist>
+              <listitem>
+                <simpara><tag class="attribute">character</tag>, a
+                  character to be replaced</simpara>
+              </listitem>
+              <listitem>
+                <simpara><tag class="attribute">string</tag>, a
+                  string with which to replace <tag
+                    class="attribute">character</tag></simpara>
+              </listitem>
+            </itemizedlist>
+          </para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+</doc:template>
+<xsl:template name="apply-character-map">
+  <xsl:param name="content"/>
+  <xsl:param name="map.contents"/>
+  <xsl:variable name="replaced_text">
+    <xsl:call-template name="string.subst">
+      <xsl:with-param name="string" select="$content" />
+      <xsl:with-param name="target" 
+        select="$map.contents[1]/@character" />
+      <xsl:with-param name="replacement" 
+        select="$map.contents[1]/@string" />
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$map.contents[2]">
+      <xsl:call-template name="apply-character-map">
+        <xsl:with-param name="content" select="$replaced_text" />
+        <xsl:with-param name="map.contents"
+          select="$map.contents[position() > 1]" />
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$replaced_text" />
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ===================================== -->
+<doc:template name="read-character-map" xmlns="">
+  <refpurpose>Reads in all or part of an XSLT character map</refpurpose>
+  <refdescription id="read-character-map-desc">
+    <para>The XSLT 2.0 specification describes <link
+        xlink:href="http://www.w3.org/TR/xslt20/#character-maps"
+        >character maps</link> and explains how they may be used
+      to allow a specific character appearing in a text or
+      attribute node in a final result tree to be substituted by
+      a specified string of characters during serialization. The
+      <function>read-character-map</function> template provides a
+      means for reading and using character maps with XSLT
+      1.0-based tools.</para>
+    <para>This template reads the character-map contents from
+      <parameter>uri</parameter> (in full or in part, depending on
+      the value of the <parameter>use.subset</parameter>
+      parameter), then passes those contents to the
+      <function>apply-character-map</function> template, along with
+      <parameter>content</parameter>, the data on which to perform
+      the character substitution.</para>
+    <para>Using the character map “in part” means that it uses only
+      those <tag>output-character</tag> elements that match the
+      XPath expression given in the value of the
+      <parameter>subset.profile</parameter> parameter. The current
+      implementation of that capability here relies on the
+      <function>evaluate</function> extension XSLT function.</para>
+  </refdescription>
+  <refparameter id="read-character-map-params">
+    <variablelist>
+      <varlistentry><term>use.subset</term>
+        <listitem>
+          <para>Specifies whether to use a subset of the character
+            map instead of the whole map; boolean
+            <literal>0</literal> or <literal>1</literal></para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>subset.profile</term>
+        <listitem>
+          <para>XPath expression that specifies what subset of the
+            character map to use</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>uri</term>
+        <listitem>
+          <para>URI for a character map</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+</doc:template>
+<xsl:template name="read-character-map">
+  <xsl:param name="use.subset"/>
+  <xsl:param name="subset.profile"/>
+  <xsl:param name="uri"/>
+  <xsl:choose>
+    <xsl:when test="$use.subset != 0">
+      <!-- *use a subset of the character map instead of the full map -->
+      <xsl:choose>
+        <!-- * xsltproc and Xalan both support dyn:evaluate() -->
+        <xsl:when test="function-available('dyn:evaluate')">
+          <xsl:copy-of select="document($uri)//*[local-name()='output-character']
+            [dyn:evaluate($subset.profile)]"/>
+        </xsl:when>
+        <!-- * Saxon has its own evaluate() and doesn't support dyn:evaluate() -->
+        <xsl:when test="function-available('saxon:evaluate')">
+          <xsl:copy-of select="document($uri)//*[local-name()='output-character']
+            [saxon:evaluate($subset.profile)]"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message terminate="yes"
+>
+Error: To process character-map subsets, you must use an XSLT engine
+that supports the evaluate() XSLT extension function. Your XSLT engine
+does not support it.
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- *value of $use.subset is non-zero, so use the full map -->
+      <xsl:copy-of select="document($uri)//*[local-name()='output-character']"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/common/common.xml b/applications/content/template/docbook/common/common.xml
new file mode 100644
index 0000000..0288378
--- /dev/null
+++ b/applications/content/template/docbook/common/common.xml
@@ -0,0 +1,641 @@
+<?xml version="1.0"?>
+
+<reference xml:id="base">
+  <info>
+    <title>Common » Base Template Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    
+<para>This is technical reference documentation for the “base”
+      set of common templates in the DocBook XSL Stylesheets.</para>
+
+    
+<para>This is not intended to be user documentation. It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+
+  </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.is.component">
+<refnamediv>
+<refname>is.component</refname>
+<refpurpose>Tests if a given node is a component-level element</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="is.component"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+
+<para>The node which is to be tested.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.is.section">
+<refnamediv>
+<refname>is.section</refname>
+<refpurpose>Tests if a given node is a section-level element</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="is.section"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+
+<para>The node which is to be tested.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.section.level">
+<refnamediv>
+<refname>section.level</refname>
+<refpurpose>Returns the hierarchical level of a section</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="section.level"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template calculates the hierarchical level of a section.
+The element <tag>sect1</tag> is at level 1, <tag>sect2</tag> is
+at level 2, etc.</para>
+
+
+
+<para>Recursive sections are calculated down to the fifth level.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+
+<para>The section node for which the level should be calculated.
+Defaults to the context node.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>The section level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.qanda.section.level">
+<refnamediv>
+<refname>qanda.section.level</refname>
+<refpurpose>Returns the hierarchical level of a QandASet</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="qanda.section.level"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template calculates the hierarchical level of a QandASet.
+</para>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>The level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.select.mediaobject">
+<refnamediv>
+<refname>select.mediaobject</refname>
+<refpurpose>Selects and processes an appropriate media object from a list</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="select.mediaobject"&gt;
+&lt;xsl:param name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject|textobject"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template takes a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and processes
+the "right" object.</para>
+
+
+
+<para>This template relies on a template named 
+"select.mediaobject.index" to determine which object
+in the list is appropriate.</para>
+
+
+
+<para>If no acceptable object is located, nothing happens.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+
+<para>The node list of potential objects to examine.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>Calls &lt;xsl:apply-templates&gt; on the selected object.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.select.mediaobject.index">
+<refnamediv>
+<refname>select.mediaobject.index</refname>
+<refpurpose>Selects the position of the appropriate media object from a list</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="select.mediaobject.index"&gt;
+&lt;xsl:param name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject|textobject"/&gt;
+&lt;xsl:param name="count"&gt;1&lt;/xsl:param&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template takes a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and determines
+the "right" object. It returns the position of that object
+to be used by the calling template.</para>
+
+
+
+<para>If the parameter <parameter>use.role.for.mediaobject</parameter>
+is nonzero, then it first checks for an object with
+a role attribute of the appropriate value.  It takes the first
+of those.  Otherwise, it takes the first acceptable object
+through a recursive pass through the list.</para>
+
+
+
+<para>This template relies on a template named "is.acceptable.mediaobject"
+to determine if a given object is an acceptable graphic. The semantics
+of media objects is that the first acceptable graphic should be used.
+</para>
+
+
+
+<para>If no acceptable object is located, no index is returned.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+
+<para>The node list of potential objects to examine.</para>
+
+</listitem>
+</varlistentry>
+<varlistentry><term>count</term>
+<listitem>
+
+<para>The position in the list currently being considered by the 
+recursive process.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>Returns the position in the original list of the selected object.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.is.acceptable.mediaobject">
+<refnamediv>
+<refname>is.acceptable.mediaobject</refname>
+<refpurpose>Returns '1' if the specified media object is recognized</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="is.acceptable.mediaobject"&gt;
+&lt;xsl:param name="object"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template examines a media object and returns '1' if the
+object is recognized as a graphic.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>object</term>
+<listitem>
+
+<para>The media object to consider.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>0 or 1</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.check.id.unique">
+<refnamediv>
+<refname>check.id.unique</refname>
+<refpurpose>Warn users about references to non-unique IDs</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="check.id.unique"&gt;
+&lt;xsl:param name="linkend"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.id.unique</function> prints
+a warning message to the user if either the ID does not exist or
+the ID is not unique.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.check.idref.targets">
+<refnamediv>
+<refname>check.idref.targets</refname>
+<refpurpose>Warn users about incorrectly typed references</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="check.idref.targets"&gt;
+&lt;xsl:param name="linkend"/&gt;
+&lt;xsl:param name="element-list"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.idref.targets</function> makes sure that the element
+pointed to by the link is one of the elements listed in
+<varname>element-list</varname> and warns the user otherwise.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.copyright.years">
+<refnamediv>
+<refname>copyright.years</refname>
+<refpurpose>Print a set of years with collapsed ranges</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="copyright.years"&gt;
+&lt;xsl:param name="years"/&gt;
+&lt;xsl:param name="print.ranges" select="1"/&gt;
+&lt;xsl:param name="single.year.ranges" select="0"/&gt;
+&lt;xsl:param name="firstyear" select="0"/&gt;
+&lt;xsl:param name="nextyear" select="0"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template prints a list of year elements with consecutive
+years printed as a range. In other words:</para>
+
+
+<screen>&lt;year&gt;1992&lt;/year&gt;
+&lt;year&gt;1993&lt;/year&gt;
+&lt;year&gt;1994&lt;/year&gt;</screen>
+
+
+<para>is printed <quote>1992-1994</quote>, whereas:</para>
+
+
+<screen>&lt;year&gt;1992&lt;/year&gt;
+&lt;year&gt;1994&lt;/year&gt;</screen>
+
+
+<para>is printed <quote>1992, 1994</quote>.</para>
+
+
+
+<para>This template assumes that all the year elements contain only
+decimal year numbers, that the elements are sorted in increasing
+numerical order, that there are no duplicates, and that all the years
+are expressed in full <quote>century+year</quote>
+(<quote>1999</quote> not <quote>99</quote>) notation.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>years</term>
+<listitem>
+
+<para>The initial set of year elements.</para>
+
+</listitem>
+</varlistentry>
+<varlistentry><term>print.ranges</term>
+<listitem>
+
+<para>If non-zero, multi-year ranges are collapsed. If zero, all years
+are printed discretely.</para>
+
+</listitem>
+</varlistentry>
+<varlistentry><term>single.year.ranges</term>
+<listitem>
+
+<para>If non-zero, two consecutive years will be printed as a range,
+otherwise, they will be printed discretely. In other words, a single
+year range is <quote>1991-1992</quote> but discretely it's
+<quote>1991, 1992</quote>.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>This template returns the formatted list of years.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.find.path.params">
+<refnamediv>
+<refname>find.path.params</refname>
+<refpurpose>Search in a table for the "best" match for the node</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="find.path.params"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+&lt;xsl:param name="table" select="''"/&gt;
+&lt;xsl:param name="location"&gt;
+    &lt;xsl:call-template name="xpath.location"&gt;
+      &lt;xsl:with-param name="node" select="$node"/&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/xsl:param&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template searches in a table for the value that most-closely
+(in the typical best-match sense of XSLT) matches the current (element)
+node location.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.string.upper">
+<refnamediv>
+<refname>string.upper</refname>
+<refpurpose>Converts a string to all uppercase letters</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="string.upper"&gt;
+&lt;xsl:param name="string" select="''"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>Given a string, this template does a language-aware conversion
+of that string to all uppercase letters, based on the values of the
+<literal>lowercase.alpha</literal> and
+<literal>uppercase.alpha</literal> gentext keys for the current
+locale. It affects only those characters found in the values of
+<literal>lowercase.alpha</literal> and
+<literal>uppercase.alpha</literal>. All other characters are left
+unchanged.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>string</term>
+<listitem>
+
+<para>The string to convert to uppercase.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.string.lower">
+<refnamediv>
+<refname>string.lower</refname>
+<refpurpose>Converts a string to all lowercase letters</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="string.lower"&gt;
+&lt;xsl:param name="string" select="''"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>Given a string, this template does a language-aware conversion
+of that string to all lowercase letters, based on the values of the
+<literal>uppercase.alpha</literal> and
+<literal>lowercase.alpha</literal> gentext keys for the current
+locale. It affects only those characters found in the values of
+<literal>uppercase.alpha</literal> and
+<literal>lowercase.alpha</literal>. All other characters are left
+unchanged.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>string</term>
+<listitem>
+
+<para>The string to convert to lowercase.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.select.choice.separator">
+<refnamediv>
+<refname>select.choice.separator</refname>
+<refpurpose>Returns localized choice separator</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="select.choice.separator"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>This template enables auto-generation of an appropriate
+    localized "choice" separator (for example, "and" or "or") before
+    the final item in an inline list (though it could also be useful
+    for generating choice separators for non-inline lists).</para>
+
+    
+<para>It currently works by evaluating a processing instruction
+    (PI) of the form &lt;?dbchoice choice="foo"?&gt; :
+    
+<itemizedlist>
+      <listitem>
+        <simpara>if the value of the <tag>choice</tag>
+        pseudo-attribute is "and" or "or", returns a localized "and"
+        or "or"</simpara>
+      </listitem>
+      <listitem>
+        <simpara>otherwise returns the literal value of the
+        <tag>choice</tag> pseudo-attribute</simpara>
+      </listitem>
+    </itemizedlist>
+
+    The latter is provided only as a temporary workaround because the
+    locale files do not currently have translations for the word
+    <wordasword>or</wordasword>. So if you want to generate a a
+    logical "or" separator in French (for example), you currently need
+    to do this:
+    <literallayout>&lt;?dbchoice choice="ou"?&gt;</literallayout>
+    </para>
+
+    <warning>
+      
+<para>The <tag>dbchoice</tag> processing instruction is
+      an unfortunate hack; support for it may disappear in the future
+      (particularly if and when a more appropriate means for marking
+      up "choice" lists becomes available in DocBook).</para>
+
+    </warning>
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.evaluate.info.profile">
+<refnamediv>
+<refname>evaluate.info.profile</refname>
+<refpurpose>Evaluates an info profile</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="evaluate.info.profile"&gt;
+&lt;xsl:param name="profile"/&gt;
+&lt;xsl:param name="info"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>This template evaluates an "info profile" matching the XPath
+    expression given by the <parameter>profile</parameter>
+    parameter. It relies on the XSLT <function>evaluate()</function>
+    extension function.</para>
+
+
+    
+<para>The value of the <parameter>profile</parameter> parameter
+    can include the literal string <literal>$info</literal>. If found
+    in the value of the <parameter>profile</parameter> parameter, the
+    literal string <literal>$info</literal> string is replaced with
+    the value of the <parameter>info</parameter> parameter, which
+    should be a set of <replaceable>*info</replaceable> nodes; the
+    expression is then evaluated using the XSLT
+    <function>evaluate()</function> extension function.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+       <varlistentry>
+        <term>profile</term>
+        <listitem>
+          
+<para>A string representing an XPath expression </para>
+
+        </listitem>
+      </varlistentry>
+       <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of *info nodes</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Returns a node (the result of evaluating the
+    <parameter>profile</parameter> parameter)</para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.graphic.format.content-type">
+<refnamediv>
+<refname>graphic.format.content-type</refname>
+<refpurpose>Returns mimetype for media format</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="graphic.format.content-type"&gt;
+&lt;xsl:param name="format"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>This takes as input a 'format' param and returns
+    a mimetype string.  It uses an xsl:choose after first
+    converting the input to all uppercase.</para>
+
+  </refsect1></refentry>
+</reference>
+
diff --git a/applications/content/template/docbook/common/common.xsl b/applications/content/template/docbook/common/common.xsl
new file mode 100644
index 0000000..0950525
--- /dev/null
+++ b/applications/content/template/docbook/common/common.xsl
@@ -0,0 +1,2110 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY lowercase "'abcdefghijklmnopqrstuvwxyz'">
+<!ENTITY uppercase "'ABCDEFGHIJKLMNOPQRSTUVWXYZ'">
+ ]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                xmlns:dyn="http://exslt.org/dynamic"
+                xmlns:saxon="http://icl.com/saxon"
+                exclude-result-prefixes="doc dyn saxon"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="" xml:id="base">
+  <info>
+    <title>Common » Base Template Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <!-- * yes, partintro is a valid child of a reference... -->
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    <para>This is technical reference documentation for the “base”
+      set of common templates in the DocBook XSL Stylesheets.</para>
+    <para>This is not intended to be user documentation. It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+  </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+<!-- Establish strip/preserve whitespace rules -->
+
+<xsl:preserve-space elements="*"/>
+
+<xsl:strip-space elements="
+abstract affiliation anchor answer appendix area areaset areaspec
+artheader article audiodata audioobject author authorblurb authorgroup
+beginpage bibliodiv biblioentry bibliography biblioset blockquote book
+bookinfo callout calloutlist caption caution chapter
+citerefentry cmdsynopsis co collab colophon colspec confgroup
+copyright dedication docinfo editor entrytbl epigraph equation
+example figure footnote footnoteref formalpara funcprototype
+funcsynopsis glossary glossdef glossdiv glossentry glosslist graphicco
+group highlights imagedata imageobject imageobjectco important index
+indexdiv indexentry indexterm info informalequation informalexample
+informalfigure informaltable inlineequation inlinemediaobject
+itemizedlist itermset keycombo keywordset legalnotice listitem lot
+mediaobject mediaobjectco menuchoice msg msgentry msgexplan msginfo
+msgmain msgrel msgset msgsub msgtext note objectinfo
+orderedlist othercredit part partintro preface printhistory procedure
+programlistingco publisher qandadiv qandaentry qandaset question
+refentry reference refmeta refnamediv refsection refsect1 refsect1info refsect2
+refsect2info refsect3 refsect3info refsynopsisdiv refsynopsisdivinfo
+revhistory revision row sbr screenco screenshot sect1 sect1info sect2
+sect2info sect3 sect3info sect4 sect4info sect5 sect5info section
+sectioninfo seglistitem segmentedlist seriesinfo set setindex setinfo
+shortcut sidebar simplelist simplesect spanspec step subject
+subjectset substeps synopfragment table tbody textobject tfoot tgroup
+thead tip toc tocchap toclevel1 toclevel2 toclevel3 toclevel4
+toclevel5 tocpart topic varargs variablelist varlistentry videodata
+videoobject void warning subjectset
+
+classsynopsis
+constructorsynopsis
+destructorsynopsis
+fieldsynopsis
+methodparam
+methodsynopsis
+ooclass
+ooexception
+oointerface
+simplemsgentry
+manvolnum
+"/>
+<!-- ====================================================================== -->
+
+<doc:template name="is.component" xmlns="">
+<refpurpose>Tests if a given node is a component-level element</refpurpose>
+
+<refdescription id="is.component-desc">
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+</refdescription>
+
+<refparameter id="is.component-params">
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The node which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="is.component-returns">
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.component">
+  <xsl:param name="node" select="."/>
+  <xsl:choose>
+    <xsl:when test="local-name($node) = 'appendix'
+                    or local-name($node) = 'article'
+                    or local-name($node) = 'chapter'
+                    or local-name($node) = 'preface'
+                    or local-name($node) = 'bibliography'
+                    or local-name($node) = 'glossary'
+                    or local-name($node) = 'index'">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="is.section" xmlns="">
+<refpurpose>Tests if a given node is a section-level element</refpurpose>
+
+<refdescription id="is.section-desc">
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+</refdescription>
+
+<refparameter id="is.section-params">
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The node which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="is.section-returns">
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.section">
+  <xsl:param name="node" select="."/>
+  <xsl:choose>
+    <xsl:when test="local-name($node) = 'section'
+                    or local-name($node) = 'sect1'
+                    or local-name($node) = 'sect2'
+                    or local-name($node) = 'sect3'
+                    or local-name($node) = 'sect4'
+                    or local-name($node) = 'sect5'
+                    or local-name($node) = 'refsect1'
+                    or local-name($node) = 'refsect2'
+                    or local-name($node) = 'refsect3'
+                    or local-name($node) = 'simplesect'">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="section.level" xmlns="">
+<refpurpose>Returns the hierarchical level of a section</refpurpose>
+
+<refdescription id="section.level-desc">
+<para>This template calculates the hierarchical level of a section.
+The element <tag>sect1</tag> is at level 1, <tag>sect2</tag> is
+at level 2, etc.</para>
+
+<para>Recursive sections are calculated down to the fifth level.</para>
+</refdescription>
+
+<refparameter id="section.level-params">
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The section node for which the level should be calculated.
+Defaults to the context node.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="section.level-returns">
+<para>The section level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="section.level">
+  <xsl:param name="node" select="."/>
+  <xsl:choose>
+    <xsl:when test="local-name($node)='sect1'">1</xsl:when>
+    <xsl:when test="local-name($node)='sect2'">2</xsl:when>
+    <xsl:when test="local-name($node)='sect3'">3</xsl:when>
+    <xsl:when test="local-name($node)='sect4'">4</xsl:when>
+    <xsl:when test="local-name($node)='sect5'">5</xsl:when>
+    <xsl:when test="local-name($node)='section'">
+      <xsl:choose>
+        <xsl:when test="$node/../../../../../../section">6</xsl:when>
+        <xsl:when test="$node/../../../../../section">5</xsl:when>
+        <xsl:when test="$node/../../../../section">4</xsl:when>
+        <xsl:when test="$node/../../../section">3</xsl:when>
+        <xsl:when test="$node/../../section">2</xsl:when>
+        <xsl:otherwise>1</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="local-name($node)='refsect1' or
+                    local-name($node)='refsect2' or
+                    local-name($node)='refsect3' or
+                    local-name($node)='refsection' or
+                    local-name($node)='refsynopsisdiv'">
+      <xsl:call-template name="refentry.section.level">
+        <xsl:with-param name="node" select="$node"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($node)='simplesect'">
+      <xsl:choose>
+        <xsl:when test="$node/../../sect1">2</xsl:when>
+        <xsl:when test="$node/../../sect2">3</xsl:when>
+        <xsl:when test="$node/../../sect3">4</xsl:when>
+        <xsl:when test="$node/../../sect4">5</xsl:when>
+        <xsl:when test="$node/../../sect5">5</xsl:when>
+        <xsl:when test="$node/../../section">
+          <xsl:choose>
+            <xsl:when test="$node/../../../../../section">5</xsl:when>
+            <xsl:when test="$node/../../../../section">4</xsl:when>
+            <xsl:when test="$node/../../../section">3</xsl:when>
+            <xsl:otherwise>2</xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>1</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>1</xsl:otherwise>
+  </xsl:choose>
+</xsl:template><!-- section.level -->
+
+<doc:template name="qanda.section.level" xmlns="">
+<refpurpose>Returns the hierarchical level of a QandASet</refpurpose>
+
+<refdescription id="qanda.section.level-desc">
+<para>This template calculates the hierarchical level of a QandASet.
+</para>
+</refdescription>
+
+<refreturn id="qanda.section.level-returns">
+<para>The level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="qanda.section.level">
+  <xsl:variable name="section"
+                select="(ancestor::section
+                         |ancestor::simplesect
+                         |ancestor::sect5
+                         |ancestor::sect4
+                         |ancestor::sect3
+                         |ancestor::sect2
+                         |ancestor::sect1
+                         |ancestor::refsect3
+                         |ancestor::refsect2
+                         |ancestor::refsect1)[last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="count($section) = '0'">1</xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="slevel">
+        <xsl:call-template name="section.level">
+          <xsl:with-param name="node" select="$section"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$slevel + 1"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Finds the total section depth of a section in a refentry -->
+<xsl:template name="refentry.section.level">
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="RElevel">
+    <xsl:call-template name="refentry.level">
+      <xsl:with-param name="node" select="$node/ancestor::refentry[1]"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="levelinRE">
+    <xsl:choose>
+      <xsl:when test="local-name($node)='refsynopsisdiv'">1</xsl:when>
+      <xsl:when test="local-name($node)='refsect1'">1</xsl:when>
+      <xsl:when test="local-name($node)='refsect2'">2</xsl:when>
+      <xsl:when test="local-name($node)='refsect3'">3</xsl:when>
+      <xsl:when test="local-name($node)='refsection'">
+        <xsl:choose>
+          <xsl:when test="$node/../../../../../refsection">5</xsl:when>
+          <xsl:when test="$node/../../../../refsection">4</xsl:when>
+          <xsl:when test="$node/../../../refsection">3</xsl:when>
+          <xsl:when test="$node/../../refsection">2</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:value-of select="$levelinRE + $RElevel"/>
+</xsl:template>
+
+<!-- Finds the section depth of a refentry -->
+<xsl:template name="refentry.level">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="container"
+                select="($node/ancestor::section |
+                        $node/ancestor::sect1 |
+                        $node/ancestor::sect2 |
+                        $node/ancestor::sect3 |
+                        $node/ancestor::sect4 |
+                        $node/ancestor::sect5)[last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="$container">
+      <xsl:variable name="slevel">
+        <xsl:call-template name="section.level">
+          <xsl:with-param name="node" select="$container"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$slevel + 1"/>
+    </xsl:when>
+    <xsl:otherwise>1</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="qandadiv.section.level">
+  <xsl:variable name="section.level">
+    <xsl:call-template name="qanda.section.level"/>
+  </xsl:variable>
+  <xsl:variable name="anc.divs" select="ancestor::qandadiv"/>
+
+  <xsl:value-of select="count($anc.divs) + number($section.level)"/>
+</xsl:template>
+
+<xsl:template name="question.answer.label">
+  <xsl:variable name="deflabel">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+        <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]
+                              /@defaultlabel"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$qanda.defaultlabel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="label" select="@label"/>
+
+<!--
+ (hnr      (hierarchical-number-recursive (normalize "qandadiv") node))
+
+         (parsect  (ancestor-member node (section-element-list)))
+
+         (defnum   (if (and %qanda-inherit-numeration% 
+                            %section-autolabel%)
+                       (if (node-list-empty? parsect)
+                           (section-autolabel-prefix node)
+                           (section-autolabel parsect))
+                       ""))
+
+         (hnumber  (let loop ((numlist hnr) (number defnum) 
+                              (sep (if (equal? defnum "") "" ".")))
+                     (if (null? numlist)
+                         number
+                         (loop (cdr numlist) 
+                               (string-append number
+                                              sep
+                                              (number->string (car numlist)))
+                               "."))))
+         (cnumber  (child-number (parent node)))
+         (number   (string-append hnumber 
+                                  (if (equal? hnumber "")
+                                      ""
+                                      ".")
+                                  (number->string cnumber))))
+-->
+
+  <xsl:choose>
+    <xsl:when test="$deflabel = 'qanda'">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key">
+          <xsl:choose>
+            <xsl:when test="local-name(.) = 'question'">question</xsl:when>
+            <xsl:when test="local-name(.) = 'answer'">answer</xsl:when>
+            <xsl:when test="local-name(.) = 'qandadiv'">qandadiv</xsl:when>
+            <xsl:otherwise>qandaset</xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$deflabel = 'label'">
+      <xsl:value-of select="$label"/>
+    </xsl:when>
+    <xsl:when test="$deflabel = 'number'
+                    and local-name(.) = 'question'">
+      <xsl:apply-templates select="ancestor::qandaset[1]"
+                           mode="number"/>
+      <xsl:choose>
+        <xsl:when test="ancestor::qandadiv">
+          <xsl:apply-templates select="ancestor::qandadiv[1]"
+                               mode="number"/>
+          <xsl:apply-templates select="ancestor::qandaentry"
+                               mode="number"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="ancestor::qandaentry"
+                               mode="number"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- nothing -->
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandaset" mode="number">
+  <!-- FIXME: -->
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="number">
+  <xsl:number level="multiple" from="qandaset" format="1."/>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="number">
+  <xsl:choose>
+    <xsl:when test="ancestor::qandadiv">
+      <xsl:number level="single" from="qandadiv" format="1."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:number level="single" from="qandaset" format="1."/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="object.id">
+  <xsl:param name="object" select="."/>
+  <xsl:choose>
+    <xsl:when test="$object/@id">
+      <xsl:value-of select="$object/@id"/>
+    </xsl:when>
+    <xsl:when test="$object/@xml:id">
+      <xsl:value-of select="$object/@xml:id"/>
+    </xsl:when>
+    <xsl:when test="$generate.consistent.ids != 0">
+      <!-- Make $object the current node -->
+      <xsl:for-each select="$object">
+        <xsl:text>id-</xsl:text>
+        <xsl:number level="multiple" count="*"/>
+      </xsl:for-each>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="generate-id($object)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="person.name">
+  <!-- Formats a personal name. Handles corpauthor as a special case. -->
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="style">
+    <xsl:choose>
+      <xsl:when test="$node/@role">
+        <xsl:value-of select="$node/@role"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'styles'"/>
+          <xsl:with-param name="name" select="'person-name'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <!-- the personname element is a specialcase -->
+    <xsl:when test="$node/personname">
+      <xsl:call-template name="person.name">
+        <xsl:with-param name="node" select="$node/personname"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <!-- handle corpauthor as a special case...-->
+    <!-- * MikeSmith 2007-06: I'm wondering if the person.name template -->
+    <!-- * actually ever gets called to handle corpauthor.. maybe -->
+    <!-- * we don't actually need to check for corpauthor here. -->
+    <xsl:when test="local-name($node)='corpauthor'">
+      <xsl:apply-templates select="$node"/>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:choose>
+        <!-- Handle case when personname contains only general markup (DocBook 5.0) -->
+        <xsl:when test="$node/self::personname and not($node/firstname or $node/honorific or $node/lineage or $node/othername or $node/surname)">
+          <xsl:apply-templates select="$node/node()"/>
+        </xsl:when>
+        <xsl:when test="$style = 'family-given'">
+          <xsl:call-template name="person.name.family-given">
+            <xsl:with-param name="node" select="$node"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$style = 'last-first'">
+          <xsl:call-template name="person.name.last-first">
+            <xsl:with-param name="node" select="$node"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="person.name.first-last">
+            <xsl:with-param name="node" select="$node"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="person.name.family-given">
+  <xsl:param name="node" select="."/>
+
+  <!-- The family-given style applies a convention for identifying given -->
+  <!-- and family names in locales where it may be ambiguous -->
+  <xsl:apply-templates select="$node//surname[1]"/>
+
+  <xsl:if test="$node//surname and $node//firstname">
+    <xsl:text> </xsl:text>
+  </xsl:if>
+
+  <xsl:apply-templates select="$node//firstname[1]"/>
+
+  <xsl:text> [FAMILY Given]</xsl:text>
+</xsl:template>
+
+<xsl:template name="person.name.last-first">
+  <xsl:param name="node" select="."/>
+
+  <xsl:apply-templates select="$node//surname[1]"/>
+
+  <xsl:if test="$node//surname and $node//firstname">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+
+  <xsl:apply-templates select="$node//firstname[1]"/>
+</xsl:template>
+
+<xsl:template name="person.name.first-last">
+  <xsl:param name="node" select="."/>
+
+  <xsl:if test="$node//honorific">
+    <xsl:apply-templates select="$node//honorific[1]"/>
+    <xsl:value-of select="$punct.honorific"/>
+  </xsl:if>
+
+  <xsl:if test="$node//firstname">
+    <xsl:if test="$node//honorific">
+      <xsl:text> </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$node//firstname[1]"/>
+  </xsl:if>
+
+  <xsl:if test="$node//othername and $author.othername.in.middle != 0">
+    <xsl:if test="$node//honorific or $node//firstname">
+      <xsl:text> </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$node//othername[1]"/>
+  </xsl:if>
+
+  <xsl:if test="$node//surname">
+    <xsl:if test="$node//honorific or $node//firstname
+                  or ($node//othername and $author.othername.in.middle != 0)">
+      <xsl:text> </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$node//surname[1]"/>
+  </xsl:if>
+
+  <xsl:if test="$node//lineage">
+    <xsl:text>, </xsl:text>
+    <xsl:apply-templates select="$node//lineage[1]"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="person.name.list">
+  <!-- Return a formatted string representation of the contents of
+       the current element. The current element must contain one or
+       more AUTHORs, CORPAUTHORs, OTHERCREDITs, and/or EDITORs.
+
+       John Doe
+     or
+       John Doe and Jane Doe
+     or
+       John Doe, Jane Doe, and A. Nonymous
+  -->
+  <xsl:param name="person.list"
+             select="author|corpauthor|othercredit|editor"/>
+  <xsl:param name="person.count" select="count($person.list)"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count &gt; $person.count"></xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="person.name">
+        <xsl:with-param name="node" select="$person.list[position()=$count]"/>
+      </xsl:call-template>
+
+      <xsl:choose>
+        <xsl:when test="$person.count = 2 and $count = 1">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'authorgroup'"/>
+            <xsl:with-param name="name" select="'sep2'"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$person.count &gt; 2 and $count+1 = $person.count">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'authorgroup'"/>
+            <xsl:with-param name="name" select="'seplast'"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$count &lt; $person.count">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'authorgroup'"/>
+            <xsl:with-param name="name" select="'sep'"/>
+          </xsl:call-template>
+        </xsl:when>
+      </xsl:choose>
+
+      <xsl:call-template name="person.name.list">
+        <xsl:with-param name="person.list" select="$person.list"/>
+        <xsl:with-param name="person.count" select="$person.count"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template><!-- person.name.list -->
+
+<!-- === synopsis ======================================================= -->
+<!-- The following definitions match those given in the reference
+     documentation for DocBook V3.0
+-->
+
+<xsl:param name="arg.choice.opt.open.str">[</xsl:param>
+<xsl:param name="arg.choice.opt.close.str">]</xsl:param>
+<xsl:param name="arg.choice.req.open.str">{</xsl:param>
+<xsl:param name="arg.choice.req.close.str">}</xsl:param>
+<xsl:param name="arg.choice.plain.open.str"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="arg.choice.plain.close.str"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="arg.choice.def.open.str">[</xsl:param>
+<xsl:param name="arg.choice.def.close.str">]</xsl:param>
+<xsl:param name="arg.rep.repeat.str">...</xsl:param>
+<xsl:param name="arg.rep.norepeat.str"></xsl:param>
+<xsl:param name="arg.rep.def.str"></xsl:param>
+<xsl:param name="arg.or.sep"> | </xsl:param>
+<xsl:param name="cmdsynopsis.hanging.indent">4pi</xsl:param>
+
+<!-- ====================================================================== -->
+
+<!--
+<xsl:template name="xref.g.subst">
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="target" select="."/>
+  <xsl:variable name="subst">%g</xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, $subst)">
+      <xsl:value-of select="substring-before($string, $subst)"/>
+      <xsl:call-template name="gentext.element.name">
+        <xsl:with-param name="element.name" select="local-name($target)"/>
+      </xsl:call-template>
+      <xsl:call-template name="xref.g.subst">
+        <xsl:with-param name="string"
+                        select="substring-after($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$string"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xref.t.subst">
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="target" select="."/>
+  <xsl:variable name="subst">%t</xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, $subst)">
+      <xsl:call-template name="xref.g.subst">
+        <xsl:with-param name="string"
+                        select="substring-before($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+      <xsl:call-template name="title.xref">
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+      <xsl:call-template name="xref.t.subst">
+        <xsl:with-param name="string"
+                        select="substring-after($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="xref.g.subst">
+        <xsl:with-param name="string" select="$string"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xref.n.subst">
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="target" select="."/>
+  <xsl:variable name="subst">%n</xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, $subst)">
+      <xsl:call-template name="xref.t.subst">
+        <xsl:with-param name="string"
+                        select="substring-before($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+      <xsl:call-template name="number.xref">
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+      <xsl:call-template name="xref.t.subst">
+        <xsl:with-param name="string"
+                        select="substring-after($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="xref.t.subst">
+        <xsl:with-param name="string" select="$string"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="subst.xref.text">
+  <xsl:param name="xref.text"></xsl:param>
+  <xsl:param name="target" select="."/>
+
+  <xsl:call-template name="xref.n.subst">
+    <xsl:with-param name="string" select="$xref.text"/>
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+-->
+
+<!-- ====================================================================== -->
+
+<xsl:template name="filename-basename">
+  <!-- We assume all filenames are really URIs and use "/" -->
+  <xsl:param name="filename"></xsl:param>
+  <xsl:param name="recurse" select="false()"/>
+
+  <xsl:choose>
+    <xsl:when test="substring-after($filename, '/') != ''">
+      <xsl:call-template name="filename-basename">
+        <xsl:with-param name="filename"
+                        select="substring-after($filename, '/')"/>
+        <xsl:with-param name="recurse" select="true()"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$filename"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="filename-extension">
+  <xsl:param name="filename"></xsl:param>
+  <xsl:param name="recurse" select="false()"/>
+
+  <!-- Make sure we only look at the base name... -->
+  <xsl:variable name="basefn">
+    <xsl:choose>
+      <xsl:when test="$recurse">
+        <xsl:value-of select="$filename"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="filename-basename">
+          <xsl:with-param name="filename" select="$filename"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="substring-after($basefn, '.') != ''">
+      <xsl:call-template name="filename-extension">
+        <xsl:with-param name="filename"
+                        select="substring-after($basefn, '.')"/>
+        <xsl:with-param name="recurse" select="true()"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$recurse">
+      <xsl:value-of select="$basefn"/>
+    </xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="select.mediaobject" xmlns="">
+<refpurpose>Selects and processes an appropriate media object from a list</refpurpose>
+
+<refdescription id="select.mediaobject-desc">
+<para>This template takes a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and processes
+the "right" object.</para>
+
+<para>This template relies on a template named 
+"select.mediaobject.index" to determine which object
+in the list is appropriate.</para>
+
+<para>If no acceptable object is located, nothing happens.</para>
+</refdescription>
+
+<refparameter id="select.mediaobject-params">
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+<para>The node list of potential objects to examine.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="select.mediaobject-returns">
+<para>Calls &lt;xsl:apply-templates&gt; on the selected object.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="select.mediaobject">
+  <xsl:param name="olist"
+             select="imageobject|imageobjectco
+                     |videoobject|audioobject|textobject"/>
+  
+  <xsl:variable name="mediaobject.index">
+    <xsl:call-template name="select.mediaobject.index">
+      <xsl:with-param name="olist" select="$olist"/>
+      <xsl:with-param name="count" select="1"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$mediaobject.index != ''">
+    <xsl:apply-templates select="$olist[position() = $mediaobject.index]"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="select.mediaobject.index" xmlns="">
+<refpurpose>Selects the position of the appropriate media object from a list</refpurpose>
+
+<refdescription id="select.mediaobject.index-desc">
+<para>This template takes a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and determines
+the "right" object. It returns the position of that object
+to be used by the calling template.</para>
+
+<para>If the parameter <parameter>use.role.for.mediaobject</parameter>
+is nonzero, then it first checks for an object with
+a role attribute of the appropriate value.  It takes the first
+of those.  Otherwise, it takes the first acceptable object
+through a recursive pass through the list.</para>
+
+<para>This template relies on a template named "is.acceptable.mediaobject"
+to determine if a given object is an acceptable graphic. The semantics
+of media objects is that the first acceptable graphic should be used.
+</para>
+
+<para>If no acceptable object is located, no index is returned.</para>
+</refdescription>
+
+<refparameter id="select.mediaobject.index-params">
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+<para>The node list of potential objects to examine.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>count</term>
+<listitem>
+<para>The position in the list currently being considered by the 
+recursive process.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="select.mediaobject.index-returns">
+<para>Returns the position in the original list of the selected object.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="select.mediaobject.index">
+  <xsl:param name="olist"
+             select="imageobject|imageobjectco
+                     |videoobject|audioobject|textobject"/>
+  <xsl:param name="count">1</xsl:param>
+
+  <xsl:choose>
+    <!-- Test for objects preferred by role -->
+    <xsl:when test="$use.role.for.mediaobject != 0 
+               and $preferred.mediaobject.role != ''
+               and $olist[@role = $preferred.mediaobject.role]"> 
+      
+      <!-- Get the first hit's position index -->
+      <xsl:for-each select="$olist">
+        <xsl:if test="@role = $preferred.mediaobject.role and
+             not(preceding-sibling::*[@role = $preferred.mediaobject.role])"> 
+          <xsl:value-of select="position()"/> 
+        </xsl:if>
+      </xsl:for-each>
+    </xsl:when>
+
+    <xsl:when test="$use.role.for.mediaobject != 0 
+               and $olist[@role = $stylesheet.result.type]">
+      <!-- Get the first hit's position index -->
+      <xsl:for-each select="$olist">
+        <xsl:if test="@role = $stylesheet.result.type and 
+              not(preceding-sibling::*[@role = $stylesheet.result.type])"> 
+          <xsl:value-of select="position()"/> 
+        </xsl:if>
+      </xsl:for-each>
+    </xsl:when>
+    <!-- Accept 'html' for $stylesheet.result.type = 'xhtml' -->
+    <xsl:when test="$use.role.for.mediaobject != 0 
+               and $stylesheet.result.type = 'xhtml'
+               and $olist[@role = 'html']">
+      <!-- Get the first hit's position index -->
+      <xsl:for-each select="$olist">
+        <xsl:if test="@role = 'html' and 
+              not(preceding-sibling::*[@role = 'html'])"> 
+          <xsl:value-of select="position()"/> 
+        </xsl:if>
+      </xsl:for-each>
+    </xsl:when>
+
+    <!-- If no selection by role, and there is only one object, use it -->
+    <xsl:when test="count($olist) = 1 and $count = 1">
+      <xsl:value-of select="$count"/> 
+    </xsl:when>
+
+    <xsl:otherwise>
+      <!-- Otherwise select first acceptable object -->
+      <xsl:if test="$count &lt;= count($olist)">
+        <xsl:variable name="object" select="$olist[position()=$count]"/>
+    
+        <xsl:variable name="useobject">
+          <xsl:choose>
+            <!-- select videoobject or audioobject before textobject -->
+            <xsl:when test="local-name($object) = 'videoobject'">
+              <xsl:text>1</xsl:text> 
+            </xsl:when>
+            <xsl:when test="local-name($object) = 'audioobject'">
+              <xsl:text>1</xsl:text> 
+            </xsl:when>
+            <!-- skip textobject if also video, audio, or image out of order -->
+            <xsl:when test="local-name($object) = 'textobject' and
+                            ../imageobject or
+                            ../audioobject or
+                            ../videoobject">
+              <xsl:text>0</xsl:text> 
+            </xsl:when>
+            <!-- The phrase is used only when contains TeX Math and output is FO -->
+            <xsl:when test="local-name($object)='textobject' and $object/phrase
+                            and $object/@role='tex' and $stylesheet.result.type = 'fo'
+                            and $tex.math.in.alt != ''">
+              <xsl:text>1</xsl:text> 
+            </xsl:when>
+            <!-- The phrase is never used -->
+            <xsl:when test="local-name($object)='textobject' and $object/phrase">
+              <xsl:text>0</xsl:text>
+            </xsl:when>
+            <xsl:when test="local-name($object)='textobject'
+                            and $object/ancestor::equation ">
+            <!-- The first textobject is not a reasonable fallback
+                 for equation image -->
+              <xsl:text>0</xsl:text>
+            </xsl:when>
+            <!-- The first textobject is a reasonable fallback -->
+            <xsl:when test="local-name($object)='textobject'
+                            and $object[not(@role) or @role!='tex']">
+              <xsl:text>1</xsl:text>
+            </xsl:when>
+            <!-- don't use graphic when output is FO, TeX Math is used 
+                 and there is math in alt element -->
+            <xsl:when test="$object/ancestor::equation and 
+                            $object/ancestor::equation/alt[@role='tex']
+                            and $stylesheet.result.type = 'fo'
+                            and $tex.math.in.alt != ''">
+              <xsl:text>0</xsl:text>
+            </xsl:when>
+            <!-- If there's only one object, use it -->
+            <xsl:when test="$count = 1 and count($olist) = 1">
+               <xsl:text>1</xsl:text>
+            </xsl:when>
+            <!-- Otherwise, see if this one is a useable graphic -->
+            <xsl:otherwise>
+              <xsl:choose>
+                <!-- peek inside imageobjectco to simplify the test -->
+                <xsl:when test="local-name($object) = 'imageobjectco'">
+                  <xsl:call-template name="is.acceptable.mediaobject">
+                    <xsl:with-param name="object" select="$object/imageobject"/>
+                  </xsl:call-template>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:call-template name="is.acceptable.mediaobject">
+                    <xsl:with-param name="object" select="$object"/>
+                  </xsl:call-template>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+    
+        <xsl:choose>
+          <xsl:when test="$useobject='1'">
+            <xsl:value-of select="$count"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="select.mediaobject.index">
+              <xsl:with-param name="olist" select="$olist"/>
+              <xsl:with-param name="count" select="$count + 1"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<doc:template name="is.acceptable.mediaobject" xmlns="">
+<refpurpose>Returns '1' if the specified media object is recognized</refpurpose>
+
+<refdescription id="is.acceptable.mediaobject-desc">
+<para>This template examines a media object and returns '1' if the
+object is recognized as a graphic.</para>
+</refdescription>
+
+<refparameter id="is.acceptable.mediaobject-params">
+<variablelist>
+<varlistentry><term>object</term>
+<listitem>
+<para>The media object to consider.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="is.acceptable.mediaobject-returns">
+<para>0 or 1</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.acceptable.mediaobject">
+  <xsl:param name="object"></xsl:param>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="ext">
+    <xsl:call-template name="filename-extension">
+      <xsl:with-param name="filename" select="$filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- there will only be one -->
+  <xsl:variable name="data" select="$object/videodata
+                                    |$object/imagedata
+                                    |$object/audiodata"/>
+
+  <xsl:variable name="format" select="$data/@format"/>
+
+  <xsl:variable name="graphic.format">
+    <xsl:if test="$format">
+      <xsl:call-template name="is.graphic.format">
+        <xsl:with-param name="format" select="$format"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="graphic.ext">
+    <xsl:if test="$ext">
+      <xsl:call-template name="is.graphic.extension">
+        <xsl:with-param name="ext" select="$ext"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$use.svg = 0 and $format = 'SVG'">0</xsl:when>
+    <xsl:when xmlns:svg="http://www.w3.org/2000/svg"
+              test="$use.svg != 0 and $object/svg:*">1</xsl:when>
+    <xsl:when test="$graphic.format = '1'">1</xsl:when>
+    <xsl:when test="$graphic.ext = '1'">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="mediaobject.filename">
+  <xsl:param name="object"></xsl:param>
+
+  <xsl:variable name="data" select="$object/videodata
+                                    |$object/imagedata
+                                    |$object/audiodata
+                                    |$object"/>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="$data[@fileref]">
+        <xsl:apply-templates select="$data/@fileref"/>
+      </xsl:when>
+      <xsl:when test="$data[@entityref]">
+        <xsl:value-of select="unparsed-entity-uri($data/@entityref)"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="real.ext">
+    <xsl:call-template name="filename-extension">
+      <xsl:with-param name="filename" select="$filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="ext">
+    <xsl:choose>
+      <xsl:when test="$real.ext != ''">
+        <xsl:value-of select="$real.ext"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$graphic.default.extension"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="graphic.ext">
+    <xsl:call-template name="is.graphic.extension">
+      <xsl:with-param name="ext" select="$ext"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$real.ext = ''">
+      <xsl:choose>
+        <xsl:when test="$ext != ''">
+          <xsl:value-of select="$filename"/>
+          <xsl:text>.</xsl:text>
+          <xsl:value-of select="$ext"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$filename"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="not($graphic.ext)">
+      <xsl:choose>
+        <xsl:when test="$graphic.default.extension != ''">
+          <xsl:value-of select="$filename"/>
+          <xsl:text>.</xsl:text>
+          <xsl:value-of select="$graphic.default.extension"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$filename"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$filename"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="check.id.unique" xmlns="">
+<refpurpose>Warn users about references to non-unique IDs</refpurpose>
+<refdescription id="check.id.unique-desc">
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.id.unique</function> prints
+a warning message to the user if either the ID does not exist or
+the ID is not unique.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="check.id.unique">
+  <xsl:param name="linkend"></xsl:param>
+  <xsl:if test="$linkend != ''">
+    <xsl:variable name="targets" select="key('id',$linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+
+    <xsl:if test="count($targets)=0">
+      <xsl:message>
+        <xsl:text>Error: no ID for constraint linkend: </xsl:text>
+        <xsl:value-of select="$linkend"/>
+        <xsl:text>.</xsl:text>
+      </xsl:message>
+      <!--
+      <xsl:message>
+        <xsl:text>If the ID exists in your document, did your </xsl:text>
+        <xsl:text>XSLT Processor load the DTD?</xsl:text>
+      </xsl:message>
+      -->
+    </xsl:if>
+
+    <xsl:if test="count($targets)>1">
+      <xsl:message>
+        <xsl:text>Warning: multiple "IDs" for constraint linkend: </xsl:text>
+        <xsl:value-of select="$linkend"/>
+        <xsl:text>.</xsl:text>
+      </xsl:message>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<doc:template name="check.idref.targets" xmlns="">
+<refpurpose>Warn users about incorrectly typed references</refpurpose>
+<refdescription id="check.idref.targets-desc">
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.idref.targets</function> makes sure that the element
+pointed to by the link is one of the elements listed in
+<varname>element-list</varname> and warns the user otherwise.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="check.idref.targets">
+  <xsl:param name="linkend"></xsl:param>
+  <xsl:param name="element-list"></xsl:param>
+  <xsl:if test="$linkend != ''">
+    <xsl:variable name="targets" select="key('id',$linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+
+    <xsl:if test="count($target) &gt; 0">
+      <xsl:if test="not(contains(concat(' ', $element-list, ' '), local-name($target)))">
+        <xsl:message>
+          <xsl:text>Error: linkend (</xsl:text>
+          <xsl:value-of select="$linkend"/>
+          <xsl:text>) points to "</xsl:text>
+          <xsl:value-of select="local-name($target)"/>
+          <xsl:text>" not (one of): </xsl:text>
+          <xsl:value-of select="$element-list"/>
+        </xsl:message>
+      </xsl:if>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- Procedure Step Numeration -->
+
+<xsl:param name="procedure.step.numeration.formats" select="'1aiAI'"/>
+
+<xsl:template name="procedure.step.numeration">
+  <xsl:param name="context" select="."/>
+  <xsl:variable name="format.length"
+                select="string-length($procedure.step.numeration.formats)"/>
+  <xsl:choose>
+    <xsl:when test="local-name($context) = 'substeps'">
+      <xsl:variable name="ssdepth"
+                    select="count($context/ancestor::substeps)"/>
+      <xsl:variable name="sstype" select="($ssdepth mod $format.length)+2"/>
+      <xsl:choose>
+        <xsl:when test="$sstype &gt; $format.length">
+          <xsl:value-of select="substring($procedure.step.numeration.formats,1,1)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="substring($procedure.step.numeration.formats,$sstype,1)"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="local-name($context) = 'step'">
+      <xsl:variable name="sdepth"
+                    select="count($context/ancestor::substeps)"/>
+      <xsl:variable name="stype" select="($sdepth mod $format.length)+1"/>
+      <xsl:value-of select="substring($procedure.step.numeration.formats,$stype,1)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>Unexpected context in procedure.step.numeration: </xsl:text>
+        <xsl:value-of select="local-name($context)"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="step" mode="number">
+  <xsl:param name="rest" select="''"/>
+  <xsl:param name="recursive" select="1"/>
+  <xsl:variable name="format">
+    <xsl:call-template name="procedure.step.numeration"/>
+  </xsl:variable>
+  <xsl:variable name="num">
+    <xsl:number count="step" format="{$format}"/>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$recursive != 0 and ancestor::step">
+      <xsl:apply-templates select="ancestor::step[1]" mode="number">
+        <xsl:with-param name="rest" select="concat('.', $num, $rest)"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="concat($num, $rest)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- OrderedList Numeration -->
+<xsl:template name="output-orderedlist-starting-number">
+  <xsl:param name="list"/>
+  <xsl:param name="pi-start"/>
+  <xsl:choose>
+    <xsl:when test="not($list/@continuation = 'continues')">
+      <xsl:choose>
+        <xsl:when test="$list/@startingnumber">
+          <xsl:value-of select="$list/@startingnumber"/>
+        </xsl:when>
+        <xsl:when test="$pi-start != ''">
+          <xsl:value-of select="$pi-start"/>
+        </xsl:when>
+        <xsl:otherwise>1</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- match on previous list at same nesting level -->
+      <xsl:variable name="prevlist" 
+       select="$list/preceding::orderedlist
+                [count($list/ancestor::orderedlist) = count(ancestor::orderedlist)][1]"/>
+      <xsl:choose>
+        <xsl:when test="count($prevlist) = 0">2</xsl:when>
+        <xsl:otherwise>
+          <xsl:variable name="prevlength" select="count($prevlist/listitem)"/>
+          <xsl:variable name="prevstart">
+            <xsl:call-template name="orderedlist-starting-number">
+              <xsl:with-param name="list" select="$prevlist"/>
+            </xsl:call-template>
+          </xsl:variable>
+          <xsl:value-of select="$prevstart + $prevlength"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="orderedlist-item-number">
+  <!-- context node must be a listitem in an orderedlist -->
+  <xsl:param name="node" select="."/>
+  <xsl:choose>
+    <xsl:when test="$node/@override">
+      <xsl:value-of select="$node/@override"/>
+    </xsl:when>
+    <xsl:when test="$node/preceding-sibling::listitem">
+      <xsl:variable name="pnum">
+        <xsl:call-template name="orderedlist-item-number">
+          <xsl:with-param name="node" select="$node/preceding-sibling::listitem[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$pnum + 1"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="orderedlist-starting-number">
+        <xsl:with-param name="list" select="parent::*"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="next.numeration">
+  <xsl:param name="numeration" select="'default'"/>
+  <xsl:choose>
+    <!-- Change this list if you want to change the order of numerations -->
+    <xsl:when test="$numeration = 'arabic'">loweralpha</xsl:when>
+    <xsl:when test="$numeration = 'loweralpha'">lowerroman</xsl:when>
+    <xsl:when test="$numeration = 'lowerroman'">upperalpha</xsl:when>
+    <xsl:when test="$numeration = 'upperalpha'">upperroman</xsl:when>
+    <xsl:when test="$numeration = 'upperroman'">arabic</xsl:when>
+    <xsl:otherwise>arabic</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="list.numeration">
+  <xsl:param name="node" select="."/>
+
+  <xsl:choose>
+    <xsl:when test="$node/@numeration">
+      <xsl:value-of select="$node/@numeration"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$node/ancestor::orderedlist">
+          <xsl:call-template name="next.numeration">
+            <xsl:with-param name="numeration">
+              <xsl:call-template name="list.numeration">
+                <xsl:with-param name="node" select="$node/ancestor::orderedlist[1]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="next.numeration"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem" mode="item-number">
+  <xsl:variable name="numeration">
+    <xsl:call-template name="list.numeration">
+      <xsl:with-param name="node" select="parent::orderedlist"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:choose>
+      <xsl:when test="$numeration='arabic'">1.</xsl:when>
+      <xsl:when test="$numeration='loweralpha'">a.</xsl:when>
+      <xsl:when test="$numeration='lowerroman'">i.</xsl:when>
+      <xsl:when test="$numeration='upperalpha'">A.</xsl:when>
+      <xsl:when test="$numeration='upperroman'">I.</xsl:when>
+      <!-- What!? This should never happen -->
+      <xsl:otherwise>
+        <xsl:message>
+          <xsl:text>Unexpected numeration: </xsl:text>
+          <xsl:value-of select="$numeration"/>
+        </xsl:message>
+        <xsl:value-of select="1."/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="item-number">
+    <xsl:call-template name="orderedlist-item-number"/>
+  </xsl:variable>
+
+  <xsl:if test="parent::orderedlist/@inheritnum='inherit'
+                and ancestor::listitem[parent::orderedlist]">
+    <xsl:apply-templates select="ancestor::listitem[parent::orderedlist][1]"
+                         mode="item-number"/>
+  </xsl:if>
+
+  <xsl:number value="$item-number" format="{$type}"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- ItemizedList "Numeration" -->
+
+<xsl:template name="next.itemsymbol">
+  <xsl:param name="itemsymbol" select="'default'"/>
+  <xsl:choose>
+    <!-- Change this list if you want to change the order of symbols -->
+    <xsl:when test="$itemsymbol = 'disc'">circle</xsl:when>
+    <xsl:when test="$itemsymbol = 'circle'">square</xsl:when>
+    <xsl:otherwise>disc</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="list.itemsymbol">
+  <xsl:param name="node" select="."/>
+
+  <xsl:choose>
+    <xsl:when test="@override">
+      <xsl:value-of select="@override"/>
+    </xsl:when>
+    <xsl:when test="$node/@mark">
+      <xsl:value-of select="$node/@mark"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$node/ancestor::itemizedlist">
+          <xsl:call-template name="next.itemsymbol">
+            <xsl:with-param name="itemsymbol">
+              <xsl:call-template name="list.itemsymbol">
+                <xsl:with-param name="node" select="$node/ancestor::itemizedlist[1]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="next.itemsymbol"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="copyright.years" xmlns="">
+<refpurpose>Print a set of years with collapsed ranges</refpurpose>
+
+<refdescription id="copyright.years-desc">
+<para>This template prints a list of year elements with consecutive
+years printed as a range. In other words:</para>
+
+<screen><![CDATA[<year>1992</year>
+<year>1993</year>
+<year>1994</year>]]></screen>
+
+<para>is printed <quote>1992-1994</quote>, whereas:</para>
+
+<screen><![CDATA[<year>1992</year>
+<year>1994</year>]]></screen>
+
+<para>is printed <quote>1992, 1994</quote>.</para>
+
+<para>This template assumes that all the year elements contain only
+decimal year numbers, that the elements are sorted in increasing
+numerical order, that there are no duplicates, and that all the years
+are expressed in full <quote>century+year</quote>
+(<quote>1999</quote> not <quote>99</quote>) notation.</para>
+</refdescription>
+
+<refparameter id="copyright.years-params">
+<variablelist>
+<varlistentry><term>years</term>
+<listitem>
+<para>The initial set of year elements.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>print.ranges</term>
+<listitem>
+<para>If non-zero, multi-year ranges are collapsed. If zero, all years
+are printed discretely.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>single.year.ranges</term>
+<listitem>
+<para>If non-zero, two consecutive years will be printed as a range,
+otherwise, they will be printed discretely. In other words, a single
+year range is <quote>1991-1992</quote> but discretely it's
+<quote>1991, 1992</quote>.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="copyright.years-returns">
+<para>This template returns the formatted list of years.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="copyright.years">
+  <xsl:param name="years"/>
+  <xsl:param name="print.ranges" select="1"/>
+  <xsl:param name="single.year.ranges" select="0"/>
+  <xsl:param name="firstyear" select="0"/>
+  <xsl:param name="nextyear" select="0"/>
+
+  <!--
+  <xsl:message terminate="no">
+    <xsl:text>CY: </xsl:text>
+    <xsl:value-of select="count($years)"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$firstyear"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$nextyear"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$print.ranges"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$single.year.ranges"/>
+    <xsl:text> (</xsl:text>
+    <xsl:value-of select="$years[1]"/>
+    <xsl:text>)</xsl:text>
+  </xsl:message>
+  -->
+    
+  <xsl:choose>
+    <xsl:when test="$print.ranges = 0 and count($years) &gt; 0">
+      <xsl:choose>
+        <xsl:when test="count($years) = 1">
+          <xsl:apply-templates select="$years[1]" mode="titlepage.mode"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$years[1]" mode="titlepage.mode"/>
+          <xsl:text>, </xsl:text>
+          <xsl:call-template name="copyright.years">
+            <xsl:with-param name="years"
+                            select="$years[position() &gt; 1]"/>
+            <xsl:with-param name="print.ranges" select="$print.ranges"/>
+            <xsl:with-param name="single.year.ranges"
+                            select="$single.year.ranges"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="count($years) = 0">
+      <xsl:variable name="lastyear" select="$nextyear - 1"/>
+      <xsl:choose>
+        <xsl:when test="$firstyear = 0">
+          <!-- there weren't any years at all -->
+        </xsl:when>
+        <!-- Just output a year with range in its text -->
+        <xsl:when test="contains($firstyear, '-') or contains($firstyear, ',')">
+          <xsl:value-of select="$firstyear"/>
+        </xsl:when>
+        <xsl:when test="$firstyear = $lastyear">
+          <xsl:value-of select="$firstyear"/>
+        </xsl:when>
+        <xsl:when test="$single.year.ranges = 0
+                        and $lastyear = $firstyear + 1">
+          <xsl:value-of select="$firstyear"/>
+          <xsl:text>, </xsl:text>
+          <xsl:value-of select="$lastyear"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$firstyear"/>
+          <xsl:text>-</xsl:text>
+          <xsl:value-of select="$lastyear"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="contains($firstyear, '-') or contains($firstyear, ',')">
+      <!-- Just output a year with range in its text -->
+      <xsl:value-of select="$firstyear"/>
+      <xsl:if test="count($years) != 0">
+        <xsl:text>, </xsl:text>
+      </xsl:if>
+      <xsl:call-template name="copyright.years">
+        <xsl:with-param name="years"
+              select="$years[position() &gt; 1]"/>
+        <xsl:with-param name="firstyear" select="$years[1]"/>
+        <xsl:with-param name="nextyear" select="$years[1] + 1"/>
+        <xsl:with-param name="print.ranges" select="$print.ranges"/>
+        <xsl:with-param name="single.year.ranges"
+                select="$single.year.ranges"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$firstyear = 0">
+      <xsl:call-template name="copyright.years">
+        <xsl:with-param name="years"
+                        select="$years[position() &gt; 1]"/>
+        <xsl:with-param name="firstyear" select="$years[1]"/>
+        <xsl:with-param name="nextyear" select="$years[1] + 1"/>
+        <xsl:with-param name="print.ranges" select="$print.ranges"/>
+        <xsl:with-param name="single.year.ranges"
+                        select="$single.year.ranges"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$nextyear = $years[1]">
+      <xsl:call-template name="copyright.years">
+        <xsl:with-param name="years"
+                        select="$years[position() &gt; 1]"/>
+        <xsl:with-param name="firstyear" select="$firstyear"/>
+        <xsl:with-param name="nextyear" select="$nextyear + 1"/>
+        <xsl:with-param name="print.ranges" select="$print.ranges"/>
+        <xsl:with-param name="single.year.ranges"
+                        select="$single.year.ranges"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- we have years left, but they aren't in the current range -->
+      <xsl:choose>
+        <xsl:when test="$nextyear = $firstyear + 1">
+          <xsl:value-of select="$firstyear"/>
+          <xsl:text>, </xsl:text>
+        </xsl:when>
+        <xsl:when test="$single.year.ranges = 0
+                        and $nextyear = $firstyear + 2">
+          <xsl:value-of select="$firstyear"/>
+          <xsl:text>, </xsl:text>
+          <xsl:value-of select="$nextyear - 1"/>
+          <xsl:text>, </xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$firstyear"/>
+          <xsl:text>-</xsl:text>
+          <xsl:value-of select="$nextyear - 1"/>
+          <xsl:text>, </xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:call-template name="copyright.years">
+        <xsl:with-param name="years"
+                        select="$years[position() &gt; 1]"/>
+        <xsl:with-param name="firstyear" select="$years[1]"/>
+        <xsl:with-param name="nextyear" select="$years[1] + 1"/>
+        <xsl:with-param name="print.ranges" select="$print.ranges"/>
+        <xsl:with-param name="single.year.ranges"
+                        select="$single.year.ranges"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="find.path.params" xmlns="">
+<refpurpose>Search in a table for the "best" match for the node</refpurpose>
+
+<refdescription id="find.path.params-desc">
+<para>This template searches in a table for the value that most-closely
+(in the typical best-match sense of XSLT) matches the current (element)
+node location.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="find.path.params">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="table" select="''"/>
+  <xsl:param name="location">
+    <xsl:call-template name="xpath.location">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
+  </xsl:param>
+
+  <xsl:variable name="value">
+    <xsl:call-template name="lookup.key">
+      <xsl:with-param name="key" select="$location"/>
+      <xsl:with-param name="table" select="$table"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$value != ''">
+      <xsl:value-of select="$value"/>
+    </xsl:when>
+    <xsl:when test="contains($location, '/')">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="node" select="$node"/>
+        <xsl:with-param name="table" select="$table"/>
+        <xsl:with-param name="location" select="substring-after($location, '/')"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="relative-uri">
+  <xsl:param name="filename" select="."/>
+  <xsl:param name="destdir" select="''"/>
+  
+  <xsl:variable name="srcurl">
+    <xsl:call-template name="strippath">
+      <xsl:with-param name="filename">
+        <xsl:call-template name="xml.base.dirs">
+          <xsl:with-param name="base.elem" 
+                          select="$filename/ancestor-or-self::*
+                                   [@xml:base != ''][1]"/>
+        </xsl:call-template>
+        <xsl:value-of select="$filename"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="srcurl.trimmed">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$srcurl"/>
+      <xsl:with-param name="uriB" select="$destdir"/>
+      <xsl:with-param name="return" select="'A'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="destdir.trimmed">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$srcurl"/>
+      <xsl:with-param name="uriB" select="$destdir"/>
+      <xsl:with-param name="return" select="'B'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="depth">
+    <xsl:call-template name="count.uri.path.depth">
+      <xsl:with-param name="filename" select="$destdir.trimmed"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="copy-string">
+    <xsl:with-param name="string" select="'../'"/>
+    <xsl:with-param name="count" select="$depth"/>
+  </xsl:call-template>
+  <xsl:value-of select="$srcurl.trimmed"/>
+
+</xsl:template>
+
+<!-- ===================================== -->
+
+<xsl:template name="xml.base.dirs">
+  <xsl:param name="base.elem" select="NONODE"/>
+
+  <!-- Recursively resolve xml:base attributes, up to a 
+       full path with : in uri -->
+  <xsl:if test="$base.elem/ancestor::*[@xml:base != ''] and
+                not(contains($base.elem/@xml:base, ':'))">
+    <xsl:call-template name="xml.base.dirs">
+      <xsl:with-param name="base.elem" 
+                      select="$base.elem/ancestor::*[@xml:base != ''][1]"/>
+    </xsl:call-template>
+  </xsl:if>
+  <xsl:call-template name="getdir">
+    <xsl:with-param name="filename" select="$base.elem/@xml:base"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<!-- ===================================== -->
+
+<xsl:template name="strippath">
+  <xsl:param name="filename" select="''"/>
+  <xsl:choose>
+    <!-- Leading .. are not eliminated -->
+    <xsl:when test="starts-with($filename, '../')">
+      <xsl:value-of select="'../'"/>
+      <xsl:call-template name="strippath">
+        <xsl:with-param name="filename" select="substring-after($filename, '../')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="contains($filename, '/../')">
+      <xsl:call-template name="strippath">
+        <xsl:with-param name="filename">
+          <xsl:call-template name="getdir">
+            <xsl:with-param name="filename" select="substring-before($filename, '/../')"/>
+          </xsl:call-template>
+          <xsl:value-of select="substring-after($filename, '/../')"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$filename"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ===================================== -->
+
+<xsl:template name="getdir">
+  <xsl:param name="filename" select="''"/>
+  <xsl:if test="contains($filename, '/')">
+    <xsl:value-of select="substring-before($filename, '/')"/>
+    <xsl:text>/</xsl:text>
+    <xsl:call-template name="getdir">
+      <xsl:with-param name="filename" select="substring-after($filename, '/')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- ===================================== -->
+
+<doc:template name="string.upper" xmlns="">
+<refpurpose>Converts a string to all uppercase letters</refpurpose>
+
+<refdescription id="string.upper-desc">
+<para>Given a string, this template does a language-aware conversion
+of that string to all uppercase letters, based on the values of the
+<literal>lowercase.alpha</literal> and
+<literal>uppercase.alpha</literal> gentext keys for the current
+locale. It affects only those characters found in the values of
+<literal>lowercase.alpha</literal> and
+<literal>uppercase.alpha</literal>. All other characters are left
+unchanged.</para>
+</refdescription>
+
+<refparameter id="string.upper-params">
+<variablelist>
+<varlistentry><term>string</term>
+<listitem>
+<para>The string to convert to uppercase.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+</doc:template>
+<xsl:template name="string.upper">
+  <xsl:param name="string" select="''"/>
+  <xsl:variable name="lowercase.alpha">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'lowercase.alpha'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="uppercase.alpha">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'uppercase.alpha'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:value-of select="translate($string,$lowercase.alpha,$uppercase.alpha)"/>
+</xsl:template>
+
+<!-- ===================================== -->
+
+<doc:template name="string.lower" xmlns="">
+<refpurpose>Converts a string to all lowercase letters</refpurpose>
+
+<refdescription id="string.lower-desc">
+<para>Given a string, this template does a language-aware conversion
+of that string to all lowercase letters, based on the values of the
+<literal>uppercase.alpha</literal> and
+<literal>lowercase.alpha</literal> gentext keys for the current
+locale. It affects only those characters found in the values of
+<literal>uppercase.alpha</literal> and
+<literal>lowercase.alpha</literal>. All other characters are left
+unchanged.</para>
+</refdescription>
+
+<refparameter id="string.lower-params">
+<variablelist>
+<varlistentry><term>string</term>
+<listitem>
+<para>The string to convert to lowercase.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+</doc:template>
+<xsl:template name="string.lower">
+  <xsl:param name="string" select="''"/>
+  <xsl:variable name="uppercase.alpha">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'uppercase.alpha'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="lowercase.alpha">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'lowercase.alpha'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:value-of select="translate($string,$uppercase.alpha,$lowercase.alpha)"/>
+</xsl:template>
+
+<!-- ===================================== -->
+
+<doc:template name="select.choice.separator" xmlns="">
+  <refpurpose>Returns localized choice separator</refpurpose>
+  <refdescription id="select.choice.separator-desc">
+    <para>This template enables auto-generation of an appropriate
+    localized "choice" separator (for example, "and" or "or") before
+    the final item in an inline list (though it could also be useful
+    for generating choice separators for non-inline lists).</para>
+    <para>It currently works by evaluating a processing instruction
+    (PI) of the form &lt;?dbchoice&#xa0;choice="foo"?> :
+    <itemizedlist>
+      <listitem>
+        <simpara>if the value of the <tag>choice</tag>
+        pseudo-attribute is "and" or "or", returns a localized "and"
+        or "or"</simpara>
+      </listitem>
+      <listitem>
+        <simpara>otherwise returns the literal value of the
+        <tag>choice</tag> pseudo-attribute</simpara>
+      </listitem>
+    </itemizedlist>
+    The latter is provided only as a temporary workaround because the
+    locale files do not currently have translations for the word
+    <wordasword>or</wordasword>. So if you want to generate a a
+    logical "or" separator in French (for example), you currently need
+    to do this:
+    <literallayout>&lt;?dbchoice choice="ou"?></literallayout>
+    </para>
+    <warning>
+      <para>The <tag>dbchoice</tag> processing instruction is
+      an unfortunate hack; support for it may disappear in the future
+      (particularly if and when a more appropriate means for marking
+      up "choice" lists becomes available in DocBook).</para>
+    </warning>
+  </refdescription>
+</doc:template>
+<xsl:template name="select.choice.separator">
+  <xsl:variable name="choice">
+    <xsl:call-template name="pi.dbchoice_choice"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- if value of $choice is "and" or "or", translate to equivalent in -->
+    <!-- current locale -->
+    <xsl:when test="$choice = 'and' or $choice = 'or'">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="$choice"/>
+      </xsl:call-template>
+    </xsl:when>
+    <!--  otherwise, just output value of $choice, whatever it is -->
+    <xsl:otherwise>
+      <xsl:value-of select="$choice"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ===================================== -->
+
+<doc:template name="evaluate.info.profile" xmlns="">
+  <refpurpose>Evaluates an info profile</refpurpose>
+  <refdescription id="evaluate.info.profile-desc">
+    <para>This template evaluates an "info profile" matching the XPath
+    expression given by the <parameter>profile</parameter>
+    parameter. It relies on the XSLT <function>evaluate()</function>
+    extension function.</para>
+
+    <para>The value of the <parameter>profile</parameter> parameter
+    can include the literal string <literal>$info</literal>. If found
+    in the value of the <parameter>profile</parameter> parameter, the
+    literal string <literal>$info</literal> string is replaced with
+    the value of the <parameter>info</parameter> parameter, which
+    should be a set of <replaceable>*info</replaceable> nodes; the
+    expression is then evaluated using the XSLT
+    <function>evaluate()</function> extension function.</para>
+  </refdescription>
+  <refparameter id="evaluate.info.profile-params">
+    <variablelist>
+       <varlistentry>
+        <term>profile</term>
+        <listitem>
+          <para>A string representing an XPath expression </para>
+        </listitem>
+      </varlistentry>
+       <varlistentry>
+        <term>info</term>
+        <listitem>
+          <para>A set of *info nodes</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+
+  <refreturn id="evaluate.info.profile-returns">
+    <para>Returns a node (the result of evaluating the
+    <parameter>profile</parameter> parameter)</para>
+  </refreturn>
+</doc:template>
+  <xsl:template name="evaluate.info.profile">
+    <xsl:param name="profile"/>
+    <xsl:param name="info"/>
+    <xsl:choose>
+      <!-- * xsltproc and Xalan both support dyn:evaluate() -->
+      <xsl:when test="function-available('dyn:evaluate')">
+        <xsl:apply-templates
+            select="dyn:evaluate($profile)" mode="get.refentry.metadata"/>
+      </xsl:when>
+      <!-- * Saxon has its own evaluate() & doesn't support dyn:evaluate() -->
+      <xsl:when test="function-available('saxon:evaluate')">
+        <xsl:apply-templates
+            select="saxon:evaluate($profile)" mode="get.refentry.metadata"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:message terminate="yes">
+Error: The "info profiling" mechanism currently requires an XSLT
+engine that supports the evaluate() XSLT extension function. Your XSLT
+engine does not support it.
+</xsl:message>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+
+<doc:template name="graphic.format.content-type" xmlns="">
+  <refpurpose>Returns mimetype for media format</refpurpose>
+  <refdescription id="graphic.format.content-type-desc">
+    <para>This takes as input a 'format' param and returns
+    a mimetype string.  It uses an xsl:choose after first
+    converting the input to all uppercase.</para>
+  </refdescription>
+</doc:template>
+<xsl:template name="graphic.format.content-type">
+  <xsl:param name="format"/>
+  <xsl:variable name="upperformat" select="translate($format,&lowercase;,&uppercase;)"/>
+  <xsl:choose>
+    <xsl:when test="$upperformat = ''"></xsl:when>
+    <xsl:when test="$upperformat = 'linespecific'"></xsl:when>
+    <xsl:when test="$upperformat = 'PS'">application/postscript</xsl:when>
+    <xsl:when test="$upperformat = 'PDF'">application/pdf</xsl:when>
+    <xsl:when test="$upperformat = 'PNG'">image/png</xsl:when>
+    <xsl:when test="$upperformat = 'SVG'">image/svg+xml</xsl:when>
+    <xsl:when test="$upperformat = 'JPG'">image/jpeg</xsl:when>
+    <xsl:when test="$upperformat = 'JPEG'">image/jpeg</xsl:when>
+    <xsl:when test="$upperformat = 'GIF'">image/gif</xsl:when>
+    <xsl:when test="$upperformat = 'GIF87A'">image/gif</xsl:when>
+    <xsl:when test="$upperformat = 'GIF89A'">image/gif</xsl:when>
+    <xsl:when test="$upperformat = 'ACC'">audio/acc</xsl:when>
+    <xsl:when test="$upperformat = 'MPG'">audio/mpeg</xsl:when>
+    <xsl:when test="$upperformat = 'MP1'">audio/mpeg</xsl:when>
+    <xsl:when test="$upperformat = 'MP2'">audio/mpeg</xsl:when>
+    <xsl:when test="$upperformat = 'MP3'">audio/mpeg</xsl:when>
+    <xsl:when test="$upperformat = 'M4A'">audio/mp4</xsl:when>
+    <xsl:when test="$upperformat = 'MPEG'">audio/mpeg</xsl:when>
+    <xsl:when test="$upperformat = 'WAV'">audio/wav</xsl:when>
+    <xsl:when test="$upperformat = 'MP4'">video/mp4</xsl:when>
+    <xsl:when test="$upperformat = 'M4V'">video/mp4</xsl:when>
+    <xsl:when test="$upperformat = 'OGV'">video/ogg</xsl:when>
+    <xsl:when test="$upperformat = 'OGG'">video/ogg</xsl:when>
+    <xsl:when test="$upperformat = 'WEBM'">video/webm</xsl:when>
+    <xsl:otherwise>
+        <xsl:value-of select="concat('image/', $upperformat)"/> 
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/common/cs.xml b/applications/content/template/docbook/common/cs.xml
new file mode 100644
index 0000000..c3a13c7
--- /dev/null
+++ b/applications/content/template/docbook/common/cs.xml
@@ -0,0 +1,718 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="cs" english-language-name="Czech">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/cs.xml -->
+<!-- * -->
+<!-- * E-mail the edited cs.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstrakt"/>
+<l:gentext key="abstract" text="Abstrakt"/>
+<l:gentext key="Acknowledgements" text="Poděkování"/>
+<l:gentext key="acknowledgements" text="poděkování"/>
+<l:gentext key="Answer" text="Odpověď:"/>
+<l:gentext key="answer" text="Odpověď:"/>
+<l:gentext key="Appendix" text="Příloha"/>
+<l:gentext key="appendix" text="Příloha"/>
+<l:gentext key="Article" text="Článek"/>
+<l:gentext key="article" text="Článek"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Bibliografie"/>
+<l:gentext key="bibliography" text="Bibliografie"/>
+<l:gentext key="Book" text="Kniha"/>
+<l:gentext key="book" text="Kniha"/>
+<l:gentext key="CAUTION" text="Výstraha"/>
+<l:gentext key="Caution" text="Výstraha"/>
+<l:gentext key="caution" text="Výstraha"/>
+<l:gentext key="Chapter" text="Kapitola"/>
+<l:gentext key="chapter" text="Kapitola"/>
+<l:gentext key="Colophon" text="Tiráž"/>
+<l:gentext key="colophon" text="Tiráž"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Věnování"/>
+<l:gentext key="dedication" text="Věnování"/>
+<l:gentext key="Edition" text="Vydání"/>
+<l:gentext key="edition" text="Vydání"/>
+<l:gentext key="Editor" text="Editor"/>
+<l:gentext key="Equation" text="Rovnice"/>
+<l:gentext key="equation" text="Rovnice"/>
+<l:gentext key="Example" text="Příklad"/>
+<l:gentext key="example" text="Příklad"/>
+<l:gentext key="Figure" text="Obrázek"/>
+<l:gentext key="figure" text="Obrázek"/>
+<l:gentext key="Glossary" text="Slovník"/>
+<l:gentext key="glossary" text="Slovník"/>
+<l:gentext key="GlossSee" text="Viz"/>
+<l:gentext key="glosssee" text="Viz"/>
+<l:gentext key="GlossSeeAlso" text="Viz též"/>
+<l:gentext key="glossseealso" text="Viz též"/>
+<l:gentext key="IMPORTANT" text="Důležité"/>
+<l:gentext key="important" text="Důležité"/>
+<l:gentext key="Important" text="Důležité"/>
+<l:gentext key="Index" text="Rejstřík"/>
+<l:gentext key="index" text="Rejstřík"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Právní doložka"/>
+<l:gentext key="legalnotice" text="Právní doložka"/>
+<l:gentext key="MsgAud" text="Publikum"/>
+<l:gentext key="msgaud" text="Publikum"/>
+<l:gentext key="MsgLevel" text="Úroveň"/>
+<l:gentext key="msglevel" text="Úroveň"/>
+<l:gentext key="MsgOrig" text="Původ"/>
+<l:gentext key="msgorig" text="Původ"/>
+<l:gentext key="NOTE" text="Poznámka"/>
+<l:gentext key="Note" text="Poznámka"/>
+<l:gentext key="note" text="Poznámka"/>
+<l:gentext key="Part" text="Část"/>
+<l:gentext key="part" text="Část"/>
+<l:gentext key="Preface" text="Předmluva"/>
+<l:gentext key="preface" text="Předmluva"/>
+<l:gentext key="Procedure" text="Postup"/>
+<l:gentext key="procedure" text="Postup"/>
+<l:gentext key="ProductionSet" text="Produkce"/>
+<l:gentext key="PubDate" text="Datum vydání"/>
+<l:gentext key="pubdate" text="Datum vydání"/>
+<l:gentext key="Published" text="Vydáno"/>
+<l:gentext key="published" text="Vydáno"/>
+<l:gentext key="Publisher" text="Vydavatel"/>
+<l:gentext key="Qandadiv" text="Otázky a odpovědi"/>
+<l:gentext key="qandadiv" text="Otázky a odpovědi"/>
+<l:gentext key="QandASet" text="Časté dotazy"/>
+<l:gentext key="Question" text="Otázka:"/>
+<l:gentext key="question" text="Otázka:"/>
+<l:gentext key="RefEntry" text="Strana"/>
+<l:gentext key="refentry" text="strana"/>
+<l:gentext key="Reference" text="Odkaz"/>
+<l:gentext key="reference" text="Odkaz"/>
+<l:gentext key="References" text="Odkazy"/>
+<l:gentext key="RefName" text="Jméno"/>
+<l:gentext key="refname" text="Jméno"/>
+<l:gentext key="RefSection" text="Oddíl"/>
+<l:gentext key="refsection" text="oddíl"/>
+<l:gentext key="RefSynopsisDiv" text="Přehled"/>
+<l:gentext key="refsynopsisdiv" text="Přehled"/>
+<l:gentext key="RevHistory" text="Přehled revizí"/>
+<l:gentext key="revhistory" text="Přehled revizí"/>
+<l:gentext key="revision" text="Revize"/>
+<l:gentext key="Revision" text="Revize"/>
+<l:gentext key="sect1" text="Oddíl"/>
+<l:gentext key="sect2" text="Oddíl"/>
+<l:gentext key="sect3" text="Oddíl"/>
+<l:gentext key="sect4" text="Oddíl"/>
+<l:gentext key="sect5" text="Oddíl"/>
+<l:gentext key="section" text="Oddíl"/>
+<l:gentext key="Section" text="Oddíl"/>
+<l:gentext key="see" text="Viz"/>
+<l:gentext key="See" text="Viz"/>
+<l:gentext key="seealso" text="Viz též"/>
+<l:gentext key="Seealso" text="Viz též"/>
+<l:gentext key="SeeAlso" text="Viz též"/>
+<l:gentext key="set" text="Sada"/>
+<l:gentext key="Set" text="Sada"/>
+<l:gentext key="setindex" text="Rejstřík sady"/>
+<l:gentext key="SetIndex" text="Rejstřík sady"/>
+<l:gentext key="Sidebar" text="Marginálie"/>
+<l:gentext key="sidebar" text="Marginálie"/>
+<l:gentext key="step" text="krok"/>
+<l:gentext key="Step" text="Krok"/>
+<l:gentext key="table" text="Tabulka"/>
+<l:gentext key="Table" text="Tabulka"/>
+<l:gentext key="task" text="úloha"/>
+<l:gentext key="Task" text="Úloha"/>
+<l:gentext key="tip" text="Tip"/>
+<l:gentext key="TIP" text="Tip"/>
+<l:gentext key="Tip" text="Tip"/>
+<l:gentext key="Warning" text="Varování"/>
+<l:gentext key="warning" text="Varování"/>
+<l:gentext key="WARNING" text="Varování"/>
+<l:gentext key="and" text="a"/>
+<l:gentext key="or" text="nebo"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Vydáno"/>
+<l:gentext key="edited" text="Vydáno"/>
+<l:gentext key="Editedby" text="Sestavil"/>
+<l:gentext key="editedby" text="Sestavil"/>
+<l:gentext key="in" text="v"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Poznámky"/>
+<l:gentext key="Notes" text="Poznámky"/>
+<l:gentext key="Pgs" text="Str."/>
+<l:gentext key="pgs" text="Str."/>
+<l:gentext key="Revisedby" text="Revidoval: "/>
+<l:gentext key="revisedby" text="Revidoval: "/>
+<l:gentext key="TableNotes" text="Poznámky"/>
+<l:gentext key="tablenotes" text="Poznámky"/>
+<l:gentext key="TableofContents" text="Obsah"/>
+<l:gentext key="tableofcontents" text="Obsah"/>
+<l:gentext key="unexpectedelementname" text="Neočekávané jméno prvku"/>
+<l:gentext key="unsupported" text="nepodporovaný"/>
+<l:gentext key="xrefto" text="xref k"/>
+<l:gentext key="Authors" text="Autoři"/>
+<l:gentext key="copyeditor" text="Korektor"/>
+<l:gentext key="graphicdesigner" text="Grafický designér"/>
+<l:gentext key="productioneditor" text="Produkce"/>
+<l:gentext key="technicaleditor" text="Technický editor"/>
+<l:gentext key="translator" text="Překladatel"/>
+<l:gentext key="listofequations" text="Seznam rovnic"/>
+<l:gentext key="ListofEquations" text="Seznam rovnic"/>
+<l:gentext key="ListofExamples" text="Seznam příkladů"/>
+<l:gentext key="listofexamples" text="Seznam příkladů"/>
+<l:gentext key="ListofFigures" text="Seznam obrázků"/>
+<l:gentext key="listoffigures" text="Seznam obrázků"/>
+<l:gentext key="ListofProcedures" text="Seznam postupů"/>
+<l:gentext key="listofprocedures" text="Seznam postupů"/>
+<l:gentext key="listoftables" text="Seznam tabulek"/>
+<l:gentext key="ListofTables" text="Seznam tabulek"/>
+<l:gentext key="ListofUnknown" text="Seznam neznámého"/>
+<l:gentext key="listofunknown" text="Seznam neznámého"/>
+<l:gentext key="nav-home" text="Domů"/>
+<l:gentext key="nav-next" text="Další"/>
+<l:gentext key="nav-next-sibling" text="Rychle dopředu"/>
+<l:gentext key="nav-prev" text="Předcházející"/>
+<l:gentext key="nav-prev-sibling" text="Rychle zpět"/>
+<l:gentext key="nav-up" text="Nahoru"/>
+<l:gentext key="nav-toc" text="Obsah"/>
+<l:gentext key="Draft" text="Návrh"/>
+<l:gentext key="above" text="nad"/>
+<l:gentext key="below" text="pod"/>
+<l:gentext key="sectioncalled" text="oddíl nazvaný"/>
+<l:gentext key="index symbols" text="Symboly"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="aábcčdďeéěfghiíjklmnňoópqrřsštťuúůvwxyýzž"/>
+<l:gentext key="uppercase.alpha" text="AÁBCČDĎEÉĚFGHIÍJKLMNŇOÓPQRŘSŠTŤUÚŮVWXYÝZŽ"/>
+<l:gentext key="normalize.sort.input" text="aábcčdďeéěfghiíjklmnňoópqrřsštťuúůvwxyýzž"/>
+<l:gentext key="normalize.sort.output" text="AÁBCČDĎEÉĚFGHIÍJKLMNŇOÓPQRŘSŠTŤUÚŮVWXYÝZŽ"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="“"/>
+<l:dingbat key="nestedstartquote" text="‚"/>
+<l:dingbat key="nestedendquote" text="‘"/>
+<l:dingbat key="singlestartquote" text="‚"/>
+<l:dingbat key="singleendquote" text="‘"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Příloha %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapitola %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Rovnice %n. %t"/>
+<l:template name="example" text="Příklad %n. %t"/>
+<l:template name="figure" text="Obrázek %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Část %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Postup %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkce %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabulka %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Příloha %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Kapitola %n. %t"/>
+<l:template name="part" text="Část %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text="v %o"/>
+<l:template name="olink.page.citation" text=" (strana %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(strana %p)"/>
+<l:template name="docname" text=" v %o"/>
+<l:template name="docnamelong" text=" v dokumentu nazvaném %o"/>
+<l:template name="pageabbrev" text="(str. %p)"/>
+<l:template name="Page" text="Strana %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="„%t“"/>
+<l:template name="refsection" text="„%t“"/>
+<l:template name="refsect1" text="„%t“"/>
+<l:template name="refsect2" text="„%t“"/>
+<l:template name="refsect3" text="„%t“"/>
+<l:template name="sect1" text="„%t“"/>
+<l:template name="sect2" text="„%t“"/>
+<l:template name="sect3" text="„%t“"/>
+<l:template name="sect4" text="„%t“"/>
+<l:template name="sect5" text="„%t“"/>
+<l:template name="section" text="„%t“"/>
+<l:template name="simplesect" text="„%t“"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="%n"/>
+<l:template name="appendix" text="%n"/>
+<l:template name="bridgehead" text="%n"/>
+<l:template name="chapter" text="%n"/>
+<l:template name="equation" text="%n"/>
+<l:template name="example" text="%n"/>
+<l:template name="figure" text="%n"/>
+<l:template name="part" text="%n"/>
+<l:template name="procedure" text="%n"/>
+<l:template name="productionset" text="%n"/>
+<l:template name="qandadiv" text="%n"/>
+<l:template name="qandaentry" text="%n"/>
+<l:template name="question" text="%n"/>
+<l:template name="sect1" text="%n"/>
+<l:template name="sect2" text="%n"/>
+<l:template name="sect3" text="%n"/>
+<l:template name="sect4" text="%n"/>
+<l:template name="sect5" text="%n"/>
+<l:template name="section" text="%n"/>
+<l:template name="table" text="%n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="%n – „%t“"/>
+<l:template name="bridgehead" text="%n – „%t“"/>
+<l:template name="chapter" text="%n – „%t“"/>
+<l:template name="equation" text="%n – „%t“"/>
+<l:template name="example" text="%n – „%t“"/>
+<l:template name="figure" text="%n – „%t“"/>
+<l:template name="part" text="%n – „%t“"/>
+<l:template name="procedure" text="%n – „%t“"/>
+<l:template name="productionset" text="%n – „%t“"/>
+<l:template name="qandadiv" text="%n – „%t“"/>
+<l:template name="refsect1" text="„%t“"/>
+<l:template name="refsect2" text="„%t“"/>
+<l:template name="refsect3" text="„%t“"/>
+<l:template name="refsection" text="„%t“"/>
+<l:template name="sect1" text="%n – „%t“"/>
+<l:template name="sect2" text="%n – „%t“"/>
+<l:template name="sect3" text="%n – „%t“"/>
+<l:template name="sect4" text="%n – „%t“"/>
+<l:template name="sect5" text="%n – „%t“"/>
+<l:template name="section" text="%n – „%t“"/>
+<l:template name="simplesect" text="%n – „%t“"/>
+<l:template name="table" text="%n – „%t“"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" a "/>
+<l:template name="seplast" text=" a "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Viz %t."/>
+<l:template name="seealso" text="Viz též %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Publikum: "/>
+<l:template name="MsgLevel" text="Úroveň: "/>
+<l:template name="MsgOrig" text="Původ: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d. B Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definice: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="ledna"/>
+<l:template name="February" text="února"/>
+<l:template name="March" text="března"/>
+<l:template name="April" text="dubna"/>
+<l:template name="May" text="května"/>
+<l:template name="June" text="června"/>
+<l:template name="July" text="července"/>
+<l:template name="August" text="srpna"/>
+<l:template name="September" text="září"/>
+<l:template name="October" text="října"/>
+<l:template name="November" text="listopadu"/>
+<l:template name="December" text="prosince"/>
+<l:template name="Monday" text="pondělí"/>
+<l:template name="Tuesday" text="úterý"/>
+<l:template name="Wednesday" text="středa"/>
+<l:template name="Thursday" text="čtvrtek"/>
+<l:template name="Friday" text="pátek"/>
+<l:template name="Saturday" text="sobota"/>
+<l:template name="Sunday" text="neděle"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="led"/>
+<l:template name="Feb" text="úno"/>
+<l:template name="Mar" text="bře"/>
+<l:template name="Apr" text="dub"/>
+<l:template name="May" text="kvě"/>
+<l:template name="Jun" text="čer"/>
+<l:template name="Jul" text="čnc"/>
+<l:template name="Aug" text="srp"/>
+<l:template name="Sep" text="zář"/>
+<l:template name="Oct" text="řij"/>
+<l:template name="Nov" text="lis"/>
+<l:template name="Dec" text="pro"/>
+<l:template name="Mon" text="po"/>
+<l:template name="Tue" text="út"/>
+<l:template name="Wed" text="st"/>
+<l:template name="Thu" text="čt"/>
+<l:template name="Fri" text="pá"/>
+<l:template name="Sat" text="so"/>
+<l:template name="Sun" text="ne"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0405 Czech"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cit. "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Dostupné "/>
+<l:template name="acctoo" text="Dostupné také "/>
+<l:template name="onwww" text="na World Wide Web"/>
+<l:template name="oninet" text="na Internetu"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symboly</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="1">Á</l:l>
+<l:l i="1">á</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">Č</l:l>
+<l:l i="4">č</l:l>
+<l:l i="5">D</l:l>
+<l:l i="5">d</l:l>
+<l:l i="5">Ď</l:l>
+<l:l i="5">ď</l:l>
+<l:l i="7">E</l:l>
+<l:l i="7">e</l:l>
+<l:l i="7">É</l:l>
+<l:l i="7">é</l:l>
+<l:l i="7">Ě</l:l>
+<l:l i="7">ě</l:l>
+<l:l i="7">Ë</l:l>
+<l:l i="7">ë</l:l>
+<l:l i="8">F</l:l>
+<l:l i="8">f</l:l>
+<l:l i="9">G</l:l>
+<l:l i="9">g</l:l>
+<l:l i="10">H</l:l>
+<l:l i="10">h</l:l>
+<l:l i="11">Ch</l:l>
+<l:l i="11">ch</l:l>
+<l:l i="11">cH</l:l>
+<l:l i="11">CH</l:l>
+<l:l i="12">I</l:l>
+<l:l i="12">i</l:l>
+<l:l i="12">Í</l:l>
+<l:l i="12">í</l:l>
+<l:l i="13">J</l:l>
+<l:l i="13">j</l:l>
+<l:l i="14">K</l:l>
+<l:l i="14">k</l:l>
+<l:l i="15">L</l:l>
+<l:l i="15">l</l:l>
+<l:l i="16">M</l:l>
+<l:l i="16">m</l:l>
+<l:l i="17">N</l:l>
+<l:l i="17">n</l:l>
+<l:l i="17">Ň</l:l>
+<l:l i="17">ň</l:l>
+<l:l i="19">O</l:l>
+<l:l i="19">o</l:l>
+<l:l i="19">Ó</l:l>
+<l:l i="19">ó</l:l>
+<l:l i="19">Ö</l:l>
+<l:l i="19">ö</l:l>
+<l:l i="20">P</l:l>
+<l:l i="20">p</l:l>
+<l:l i="21">Q</l:l>
+<l:l i="21">q</l:l>
+<l:l i="22">R</l:l>
+<l:l i="22">r</l:l>
+<l:l i="23">Ř</l:l>
+<l:l i="23">ř</l:l>
+<l:l i="24">S</l:l>
+<l:l i="24">s</l:l>
+<l:l i="25">Š</l:l>
+<l:l i="25">š</l:l>
+<l:l i="26">T</l:l>
+<l:l i="26">t</l:l>
+<l:l i="26">Ť</l:l>
+<l:l i="26">ť</l:l>
+<l:l i="28">U</l:l>
+<l:l i="28">u</l:l>
+<l:l i="28">Ú</l:l>
+<l:l i="28">ú</l:l>
+<l:l i="28">Ů</l:l>
+<l:l i="28">ů</l:l>
+<l:l i="28">Ü</l:l>
+<l:l i="28">ü</l:l>
+<l:l i="29">V</l:l>
+<l:l i="29">v</l:l>
+<l:l i="30">W</l:l>
+<l:l i="30">w</l:l>
+<l:l i="31">X</l:l>
+<l:l i="31">x</l:l>
+<l:l i="32">Y</l:l>
+<l:l i="32">y</l:l>
+<l:l i="32">Ý</l:l>
+<l:l i="32">ý</l:l>
+<l:l i="33">Z</l:l>
+<l:l i="33">z</l:l>
+<l:l i="34">Ž</l:l>
+<l:l i="34">ž</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/cy.xml b/applications/content/template/docbook/common/cy.xml
new file mode 100644
index 0000000..a989ec0
--- /dev/null
+++ b/applications/content/template/docbook/common/cy.xml
@@ -0,0 +1,1263 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="cy" english-language-name="Welsh">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/cy.xml -->
+<!-- * -->
+<!-- * E-mail the edited cy.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Crynodeb"/>
+<l:gentext key="abstract" text="Crynodeb"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="A:"/>
+<l:gentext key="Appendix" text="Atodiad"/>
+<l:gentext key="appendix" text="Atodiad"/>
+<l:gentext key="Article" text="Erthygl"/>
+<l:gentext key="article" text="Erthygl"/>
+<l:gentext key="Author" text="Awdur"/>
+<l:gentext key="Bibliography" text="Llyfryddiaeth"/>
+<l:gentext key="bibliography" text="Llyfryddiaeth"/>
+<l:gentext key="Book" text="Llyfr"/>
+<l:gentext key="book" text="Llyfr"/>
+<l:gentext key="CAUTION" text="GOFAL"/>
+<l:gentext key="Caution" text="Gofal"/>
+<l:gentext key="caution" text="Gofal"/>
+<l:gentext key="Chapter" text="Pennod"/>
+<l:gentext key="chapter" text="Pennod"/>
+<l:gentext key="Colophon" text="Coloffon"/>
+<l:gentext key="colophon" text="Coloffon"/>
+<l:gentext key="Copyright" text="Hawlfraint"/>
+<l:gentext key="copyright" text="Hawlfraint"/>
+<l:gentext key="Dedication" text="Cyflwyniad"/>
+<l:gentext key="dedication" text="Cyflwyniad"/>
+<l:gentext key="Edition" text="Argraffiad"/>
+<l:gentext key="edition" text="Argraffiad"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Hafaliad"/>
+<l:gentext key="equation" text="Hafaliad"/>
+<l:gentext key="Example" text="Enghraifft"/>
+<l:gentext key="example" text="Enghraifft"/>
+<l:gentext key="Figure" text="Ffigur"/>
+<l:gentext key="figure" text="Ffigur"/>
+<l:gentext key="Glossary" text="Geirfa"/>
+<l:gentext key="glossary" text="Geirfa"/>
+<l:gentext key="GlossSee" text="Gweler"/>
+<l:gentext key="glosssee" text="Gweler"/>
+<l:gentext key="GlossSeeAlso" text="Gweler Hefyd"/>
+<l:gentext key="glossseealso" text="Gweler Hefyd"/>
+<l:gentext key="IMPORTANT" text="PWYSIG"/>
+<l:gentext key="important" text="Pwysig"/>
+<l:gentext key="Important" text="Pwysig"/>
+<l:gentext key="Index" text="Mynegai"/>
+<l:gentext key="index" text="Mynegai"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Rhybudd Cyfreithiol"/>
+<l:gentext key="legalnotice" text="Rhybudd Cyfreithiol"/>
+<l:gentext key="MsgAud" text="Cynulleidfa"/>
+<l:gentext key="msgaud" text="Cynulleidfa"/>
+<l:gentext key="MsgLevel" text="Lefel"/>
+<l:gentext key="msglevel" text="Lefel"/>
+<l:gentext key="MsgOrig" text="Tarddiad"/>
+<l:gentext key="msgorig" text="Tarddiad"/>
+<l:gentext key="NOTE" text="NODYN"/>
+<l:gentext key="Note" text="Nodyn"/>
+<l:gentext key="note" text="Nodyn"/>
+<l:gentext key="Part" text="Rhan"/>
+<l:gentext key="part" text="Rhan"/>
+<l:gentext key="Preface" text="Rhagair"/>
+<l:gentext key="preface" text="Rhagair"/>
+<l:gentext key="Procedure" text="Trefn"/>
+<l:gentext key="procedure" text="Trefn"/>
+<l:gentext key="ProductionSet" text="Cynhyrchiad"/>
+<l:gentext key="PubDate" text="Dyddiad Cyhoeddi"/>
+<l:gentext key="pubdate" text="Dyddiad Cyhoeddi"/>
+<l:gentext key="Published" text="Cyhoeddwyd"/>
+<l:gentext key="published" text="Cyhoeddwyd"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="C &amp; A"/>
+<l:gentext key="qandadiv" text="C &amp; A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="C:"/>
+<l:gentext key="question" text="C:"/>
+<l:gentext key="RefEntry" text="Cyfeirnod"/>
+<l:gentext key="refentry" text="Cyfeirnod"/>
+<l:gentext key="Reference" text="Cyfeiriad"/>
+<l:gentext key="reference" text="Cyfeiriad"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Enw"/>
+<l:gentext key="refname" text="Enw"/>
+<l:gentext key="RefSection" text="Adran Gyfeiriad"/>
+<l:gentext key="refsection" text="Adran Gyfeiriad"/>
+<l:gentext key="RefSynopsisDiv" text="Crynodeb"/>
+<l:gentext key="refsynopsisdiv" text="Crynodeb"/>
+<l:gentext key="RevHistory" text="Hanes Adolygu"/>
+<l:gentext key="revhistory" text="Hanes Adolygu"/>
+<l:gentext key="revision" text="Adolygiad"/>
+<l:gentext key="Revision" text="Adolygiad"/>
+<l:gentext key="sect1" text="Adran"/>
+<l:gentext key="sect2" text="Adran"/>
+<l:gentext key="sect3" text="Adran"/>
+<l:gentext key="sect4" text="Adran"/>
+<l:gentext key="sect5" text="Adran"/>
+<l:gentext key="section" text="Adran"/>
+<l:gentext key="Section" text="Adran"/>
+<l:gentext key="see" text="gweler"/>
+<l:gentext key="See" text="Gweler"/>
+<l:gentext key="seealso" text="gweler hefyd"/>
+<l:gentext key="Seealso" text="Gweler hefyd"/>
+<l:gentext key="SeeAlso" text="Gweler Hefyd"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Mynegai Set"/>
+<l:gentext key="SetIndex" text="Mynegai Set"/>
+<l:gentext key="Sidebar" text="Bar Ochr"/>
+<l:gentext key="sidebar" text="bar ochr"/>
+<l:gentext key="step" text="cam"/>
+<l:gentext key="Step" text="Cam"/>
+<l:gentext key="table" text="Tabl"/>
+<l:gentext key="Table" text="Tabl"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Cynghoryn"/>
+<l:gentext key="TIP" text="CYNGHORYN"/>
+<l:gentext key="Tip" text="Cynghoryn"/>
+<l:gentext key="Warning" text="Rhybudd"/>
+<l:gentext key="warning" text="Rhybudd"/>
+<l:gentext key="WARNING" text="RHYBUDD"/>
+<l:gentext key="and" text="a(c)"/>
+<l:gentext key="or" text="neu"/>
+<l:gentext key="by" text="gan"/>
+<l:gentext key="Edited" text="Golygwyd"/>
+<l:gentext key="edited" text="Golygwyd"/>
+<l:gentext key="Editedby" text="Golygwyd:"/>
+<l:gentext key="editedby" text="Golygwyd:"/>
+<l:gentext key="in" text="yn"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Nodiadau"/>
+<l:gentext key="Notes" text="Nodiadau"/>
+<l:gentext key="Pgs" text="Tud."/>
+<l:gentext key="pgs" text="Tud."/>
+<l:gentext key="Revisedby" text="Adolygwyd: "/>
+<l:gentext key="revisedby" text="Adolygwyd: "/>
+<l:gentext key="TableNotes" text="Nodiadau"/>
+<l:gentext key="tablenotes" text="Nodiadau"/>
+<l:gentext key="TableofContents" text="Cynnwys"/>
+<l:gentext key="tableofcontents" text="Cynnwys"/>
+<l:gentext key="unexpectedelementname" text="Enw elfen annisgwyl"/>
+<l:gentext key="unsupported" text="ni chynhelir"/>
+<l:gentext key="xrefto" text="xref i"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Rhestr Hafaliadau"/>
+<l:gentext key="ListofEquations" text="Rhestr Hafaliadau"/>
+<l:gentext key="ListofExamples" text="Rhestr Hafaliadau"/>
+<l:gentext key="listofexamples" text="Rhestr Hafaliadau"/>
+<l:gentext key="ListofFigures" text="Rhestr Hafaliadau"/>
+<l:gentext key="listoffigures" text="Rhestr Hafaliadau"/>
+<l:gentext key="ListofProcedures" text="Dull Gweithredu"/>
+<l:gentext key="listofprocedures" text="Dull Gweithredu"/>
+<l:gentext key="listoftables" text="Rhestr Tablau"/>
+<l:gentext key="ListofTables" text="Rhestr Tablau"/>
+<l:gentext key="ListofUnknown" text="Rhestr Anhysbysion"/>
+<l:gentext key="listofunknown" text="Rhestr Anhysbysion"/>
+<l:gentext key="nav-home" text="Cartref"/>
+<l:gentext key="nav-next" text="Nesaf"/>
+<l:gentext key="nav-next-sibling" text="Ymlaen"/>
+<l:gentext key="nav-prev" text="Cynt"/>
+<l:gentext key="nav-prev-sibling" text="Yn Ôl"/>
+<l:gentext key="nav-up" text="I Fyny"/>
+<l:gentext key="nav-toc" text="Cynnwys"/>
+<l:gentext key="Draft" text="Drafft"/>
+<l:gentext key="above" text="uchod"/>
+<l:gentext key="below" text="isod"/>
+<l:gentext key="sectioncalled" text="yr adran o'r enw"/>
+<l:gentext key="index symbols" text="Symbolau"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="cyntaf-olaf"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Atodiad %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Pennod %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Hafaliad %n. %t"/>
+<l:template name="example" text="Enghraifft %n. %t"/>
+<l:template name="figure" text="Ffigur %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Rhan %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Trefn %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Cynhyrchiad %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabl %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Atodiad %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Pennod %n. %t"/>
+<l:template name="part" text="Rhan %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="C: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="C: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" yn %o"/>
+<l:template name="olink.page.citation" text=" (tudalen %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(tudalen %p)"/>
+<l:template name="docname" text=" yn %o"/>
+<l:template name="docnamelong" text=" yn y ddogfen o'r enw %o"/>
+<l:template name="pageabbrev" text="(tud. %p)"/>
+<l:template name="Page" text="Tudalen %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="yr adran o'r enw “%t”"/>
+<l:template name="refsection" text="yr adran o'r enw “%t”"/>
+<l:template name="refsect1" text="yr adran o'r enw “%t”"/>
+<l:template name="refsect2" text="yr adran o'r enw “%t”"/>
+<l:template name="refsect3" text="yr adran o'r enw “%t”"/>
+<l:template name="sect1" text="yr adran o'r enw “%t”"/>
+<l:template name="sect2" text="yr adran o'r enw “%t”"/>
+<l:template name="sect3" text="yr adran o'r enw “%t”"/>
+<l:template name="sect4" text="yr adran o'r enw “%t”"/>
+<l:template name="sect5" text="yr adran o'r enw “%t”"/>
+<l:template name="section" text="yr adran o'r enw “%t”"/>
+<l:template name="simplesect" text="yr adran o'r enw “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Atodiad %n"/>
+<l:template name="bridgehead" text="Adran %n"/>
+<l:template name="chapter" text="Pennod %n"/>
+<l:template name="equation" text="Hafaliad %n"/>
+<l:template name="example" text="Enghraifft %n"/>
+<l:template name="figure" text="Ffigur %n"/>
+<l:template name="part" text="Rhan %n"/>
+<l:template name="procedure" text="Trefn %n"/>
+<l:template name="productionset" text="Cynhyrchiad %n"/>
+<l:template name="qandadiv" text="C &amp; A %n"/>
+<l:template name="qandaentry" text="C: %n"/>
+<l:template name="question" text="C: %n"/>
+<l:template name="sect1" text="Adran %n"/>
+<l:template name="sect2" text="Adran %n"/>
+<l:template name="sect3" text="Adran %n"/>
+<l:template name="sect4" text="Adran %n"/>
+<l:template name="sect5" text="Adran %n"/>
+<l:template name="section" text="Adran %n"/>
+<l:template name="table" text="Tabl %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Atodiad %n, %t"/>
+<l:template name="bridgehead" text="Adran %n, “%t”"/>
+<l:template name="chapter" text="Pennod %n, %t"/>
+<l:template name="equation" text="Hafaliad %n, “%t”"/>
+<l:template name="example" text="Enghraifft %n, “%t”"/>
+<l:template name="figure" text="Ffigur %n, “%t”"/>
+<l:template name="part" text="Rhan %n, “%t”"/>
+<l:template name="procedure" text="Trefn %n, “%t”"/>
+<l:template name="productionset" text="Cynhyrchiad %n, “%t”"/>
+<l:template name="qandadiv" text="C &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="yr adran o'r enw “%t”"/>
+<l:template name="refsect2" text="yr adran o'r enw “%t”"/>
+<l:template name="refsect3" text="yr adran o'r enw “%t”"/>
+<l:template name="refsection" text="yr adran o'r enw “%t”"/>
+<l:template name="sect1" text="Adran %n, “%t”"/>
+<l:template name="sect2" text="Adran %n, “%t”"/>
+<l:template name="sect3" text="Adran %n, “%t”"/>
+<l:template name="sect4" text="Adran %n, “%t”"/>
+<l:template name="sect5" text="Adran %n, “%t”"/>
+<l:template name="section" text="Adran %n, “%t”"/>
+<l:template name="simplesect" text="yr adran o'r enw “%t”"/>
+<l:template name="table" text="Tabl %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" a(c) "/>
+<l:template name="seplast" text=", a(c) "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Gweler %t."/>
+<l:template name="seealso" text="Gweler Hefyd %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Cynulleidfa: "/>
+<l:template name="MsgLevel" text="Lefel: "/>
+<l:template name="MsgOrig" text="Tarddiad: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/B"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Diffiniad: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Ionawr"/>
+<l:template name="February" text="Chwefror"/>
+<l:template name="March" text="Mawrth"/>
+<l:template name="April" text="Ebrill"/>
+<l:template name="May" text="Mai"/>
+<l:template name="June" text="Mehefin"/>
+<l:template name="July" text="Gorffenaf"/>
+<l:template name="August" text="Awst"/>
+<l:template name="September" text="Medi"/>
+<l:template name="October" text="Hydref"/>
+<l:template name="November" text="Tachwedd"/>
+<l:template name="December" text="Rhagfyr"/>
+<l:template name="Monday" text="Dydd Llun"/>
+<l:template name="Tuesday" text="Dydd Mawrth"/>
+<l:template name="Wednesday" text="Dydd Mercher"/>
+<l:template name="Thursday" text="Dydd Iau"/>
+<l:template name="Friday" text="Dydd Gwener"/>
+<l:template name="Saturday" text="Dydd Sadwrn"/>
+<l:template name="Sunday" text="Dydd Sul"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Ion"/>
+<l:template name="Feb" text="Chwe"/>
+<l:template name="Mar" text="Maw"/>
+<l:template name="Apr" text="Ebr"/>
+<l:template name="May" text="Mai"/>
+<l:template name="Jun" text="Meh"/>
+<l:template name="Jul" text="Gorff"/>
+<l:template name="Aug" text="Awst"/>
+<l:template name="Sep" text="Medi"/>
+<l:template name="Oct" text="Hyd"/>
+<l:template name="Nov" text="Tach"/>
+<l:template name="Dec" text="Rhag"/>
+<l:template name="Mon" text="Llun"/>
+<l:template name="Tue" text="Mawrth"/>
+<l:template name="Wed" text="Mercher"/>
+<l:template name="Thu" text="Iau"/>
+<l:template name="Fri" text="Gwener"/>
+<l:template name="Sat" text="Sadwrn"/>
+<l:template name="Sun" text="Sul"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 Welsh (UNITED KINGDOM)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="35">Ch</l:l>
+<l:l i="35">ch</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="45">Dd</l:l>
+<l:l i="45">dd</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="65">Ff</l:l>
+<l:l i="65">ff</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="75">Ng</l:l>
+<l:l i="75">ng</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="125">Ll</l:l>
+<l:l i="125">ll</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="165">Ph</l:l>
+<l:l i="165">ph</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="185">Rh</l:l>
+<l:l i="185">rh</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="205">Th</l:l>
+<l:l i="205">th</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/da.xml b/applications/content/template/docbook/common/da.xml
new file mode 100644
index 0000000..c2ba66a
--- /dev/null
+++ b/applications/content/template/docbook/common/da.xml
@@ -0,0 +1,682 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="da" english-language-name="Danish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/da.xml -->
+<!-- * -->
+<!-- * E-mail the edited da.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Resumé"/>
+<l:gentext key="abstract" text="resumé"/>
+<l:gentext key="Acknowledgements" text="Erkendelser"/>
+<l:gentext key="acknowledgements" text="erkendelser"/>
+<l:gentext key="Answer" text="Svar:"/>
+<l:gentext key="answer" text="svar:"/>
+<l:gentext key="Appendix" text="Appendiks"/>
+<l:gentext key="appendix" text="appendiks"/>
+<l:gentext key="Article" text="Artikel"/>
+<l:gentext key="article" text="artikel"/>
+<l:gentext key="Author" text="Forfatter"/>
+<l:gentext key="Bibliography" text="Litteraturliste"/>
+<l:gentext key="bibliography" text="litteraturliste"/>
+<l:gentext key="Book" text="Bog"/>
+<l:gentext key="book" text="bog"/>
+<l:gentext key="CAUTION" text="PAS PÅ"/>
+<l:gentext key="Caution" text="Pas på"/>
+<l:gentext key="caution" text="pas på"/>
+<l:gentext key="Chapter" text="Kapitel"/>
+<l:gentext key="chapter" text="kapitel"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="kolofon"/>
+<l:gentext key="Copyright" text="Ophavsret"/>
+<l:gentext key="copyright" text="ophavsret"/>
+<l:gentext key="Dedication" text="Tilegnet"/>
+<l:gentext key="dedication" text="tilegnet"/>
+<l:gentext key="Edition" text="Udgave"/>
+<l:gentext key="edition" text="udgave"/>
+<l:gentext key="Editor" text="Redaktør"/>
+<l:gentext key="Equation" text="Ligning"/>
+<l:gentext key="equation" text="ligning"/>
+<l:gentext key="Example" text="Eksempel"/>
+<l:gentext key="example" text="eksempel"/>
+<l:gentext key="Figure" text="Figur"/>
+<l:gentext key="figure" text="figur"/>
+<l:gentext key="Glossary" text="Ordliste"/>
+<l:gentext key="glossary" text="ordliste"/>
+<l:gentext key="GlossSee" text="Se"/>
+<l:gentext key="glosssee" text="se"/>
+<l:gentext key="GlossSeeAlso" text="Se også"/>
+<l:gentext key="glossseealso" text="se også"/>
+<l:gentext key="IMPORTANT" text="VIGTIGT"/>
+<l:gentext key="important" text="vigtigt"/>
+<l:gentext key="Important" text="Vigtigt"/>
+<l:gentext key="Index" text="Stikordsregister"/>
+<l:gentext key="index" text="stikordsregister"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Retslig note"/>
+<l:gentext key="legalnotice" text="retslig note"/>
+<l:gentext key="MsgAud" text="Målgruppe"/>
+<l:gentext key="msgaud" text="målgruppe"/>
+<l:gentext key="MsgLevel" text="Niveau"/>
+<l:gentext key="msglevel" text="niveau"/>
+<l:gentext key="MsgOrig" text="Grundlag"/>
+<l:gentext key="msgorig" text="grundlag"/>
+<l:gentext key="NOTE" text="BEMÆRK"/>
+<l:gentext key="Note" text="Bemærk"/>
+<l:gentext key="note" text="bemærk"/>
+<l:gentext key="Part" text="Del"/>
+<l:gentext key="part" text="del"/>
+<l:gentext key="Preface" text="Forord"/>
+<l:gentext key="preface" text="forord"/>
+<l:gentext key="Procedure" text="Procedure"/>
+<l:gentext key="procedure" text="procedure"/>
+<l:gentext key="ProductionSet" text="Produktion"/>
+<l:gentext key="PubDate" text="Udgivelsesdato"/>
+<l:gentext key="pubdate" text="udgivelsesdato"/>
+<l:gentext key="Published" text="Udgivet"/>
+<l:gentext key="published" text="udgivet"/>
+<l:gentext key="Publisher" text="Udgiver"/>
+<l:gentext key="Qandadiv" text="Spørgsmål og Svar"/>
+<l:gentext key="qandadiv" text="Spørgsmål og Svar"/>
+<l:gentext key="QandASet" text="Ofte stillede spørgsmål"/>
+<l:gentext key="Question" text="Spørgsmål:"/>
+<l:gentext key="question" text="spørgsmål:"/>
+<l:gentext key="RefEntry" text="Side"/>
+<l:gentext key="refentry" text="side"/>
+<l:gentext key="Reference" text="Henvisning"/>
+<l:gentext key="reference" text="henvisning"/>
+<l:gentext key="References" text="Henvisninger"/>
+<l:gentext key="RefName" text="Navn"/>
+<l:gentext key="refname" text="navn"/>
+<l:gentext key="RefSection" text="Afsnit"/>
+<l:gentext key="refsection" text="afsnit"/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="synopsis"/>
+<l:gentext key="RevHistory" text="Revisionshistorie"/>
+<l:gentext key="revhistory" text="revisionshistorie"/>
+<l:gentext key="revision" text="revision"/>
+<l:gentext key="Revision" text="Revision"/>
+<l:gentext key="sect1" text="Afsnit"/>
+<l:gentext key="sect2" text="Afsnit"/>
+<l:gentext key="sect3" text="Afsnit"/>
+<l:gentext key="sect4" text="Afsnit"/>
+<l:gentext key="sect5" text="Afsnit"/>
+<l:gentext key="section" text="afsnit"/>
+<l:gentext key="Section" text="Afsnit"/>
+<l:gentext key="see" text="se"/>
+<l:gentext key="See" text="Se"/>
+<l:gentext key="seealso" text="se også"/>
+<l:gentext key="Seealso" text="Se også"/>
+<l:gentext key="SeeAlso" text="Se Også"/>
+<l:gentext key="set" text="sæt"/>
+<l:gentext key="Set" text="Sæt"/>
+<l:gentext key="setindex" text="sæt indeks"/>
+<l:gentext key="SetIndex" text="Sæt indeks"/>
+<l:gentext key="Sidebar" text="Sidebjælke"/>
+<l:gentext key="sidebar" text="sidebjælke"/>
+<l:gentext key="step" text="trin"/>
+<l:gentext key="Step" text="Trin"/>
+<l:gentext key="table" text="tabel"/>
+<l:gentext key="Table" text="Tabel"/>
+<l:gentext key="task" text="opgave"/>
+<l:gentext key="Task" text="Opgave"/>
+<l:gentext key="tip" text="vink"/>
+<l:gentext key="TIP" text="VINK"/>
+<l:gentext key="Tip" text="Vink"/>
+<l:gentext key="Warning" text="Advarsel"/>
+<l:gentext key="warning" text="advarsel"/>
+<l:gentext key="WARNING" text="ADVARSEL"/>
+<l:gentext key="and" text="og"/>
+<l:gentext key="or" text="eller"/>
+<l:gentext key="by" text="af"/>
+<l:gentext key="Edited" text="Redigeret"/>
+<l:gentext key="edited" text="redigeret"/>
+<l:gentext key="Editedby" text="Redigeret af"/>
+<l:gentext key="editedby" text="redigeret af"/>
+<l:gentext key="in" text="i"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text=", "/>
+<l:gentext key="notes" text="slutbemærkning:"/>
+<l:gentext key="Notes" text="Slutbemærkning:"/>
+<l:gentext key="Pgs" text="Siderne"/>
+<l:gentext key="pgs" text="siderne"/>
+<l:gentext key="Revisedby" text="Revideret af: "/>
+<l:gentext key="revisedby" text="revideret af: "/>
+<l:gentext key="TableNotes" text="Noter:"/>
+<l:gentext key="tablenotes" text="noter:"/>
+<l:gentext key="TableofContents" text="Indholdsfortegnelse"/>
+<l:gentext key="tableofcontents" text="indholdsfortegnelse"/>
+<l:gentext key="unexpectedelementname" text="uventet elementnavn"/>
+<l:gentext key="unsupported" text="ikke understøttet"/>
+<l:gentext key="xrefto" text="krydshenvisning til"/>
+<l:gentext key="Authors" text="Forfattere"/>
+<l:gentext key="copyeditor" text="Kopieringsredaktør"/>
+<l:gentext key="graphicdesigner" text="Grafisk designer"/>
+<l:gentext key="productioneditor" text="Produktionsredaktør"/>
+<l:gentext key="technicaleditor" text="Tekniskredaktør"/>
+<l:gentext key="translator" text="Oversætter"/>
+<l:gentext key="listofequations" text="ligningsliste"/>
+<l:gentext key="ListofEquations" text="Ligningsliste"/>
+<l:gentext key="ListofExamples" text="Eksempelliste"/>
+<l:gentext key="listofexamples" text="eksempelliste"/>
+<l:gentext key="ListofFigures" text="Figurliste"/>
+<l:gentext key="listoffigures" text="figurliste"/>
+<l:gentext key="ListofProcedures" text="Procedureliste"/>
+<l:gentext key="listofprocedures" text="lrocedureliste"/>
+<l:gentext key="listoftables" text="tabelliste"/>
+<l:gentext key="ListofTables" text="Tabelliste"/>
+<l:gentext key="ListofUnknown" text="Liste over ukendte"/>
+<l:gentext key="listofunknown" text="liste over ukendte"/>
+<l:gentext key="nav-home" text="hjem"/>
+<l:gentext key="nav-next" text="næste"/>
+<l:gentext key="nav-next-sibling" text="hurtigt fremad"/>
+<l:gentext key="nav-prev" text="forrige"/>
+<l:gentext key="nav-prev-sibling" text="hurtigt tilbage"/>
+<l:gentext key="nav-up" text="op"/>
+<l:gentext key="nav-toc" text="Indholdsfortegnelse"/>
+<l:gentext key="Draft" text="Kladde"/>
+<l:gentext key="above" text="over"/>
+<l:gentext key="below" text="under"/>
+<l:gentext key="sectioncalled" text="afsnittet der hedder"/>
+<l:gentext key="index symbols" text="symboler"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzæøå"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Appendiks %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ligning %n. %t"/>
+<l:template name="example" text="Eksempel %n. %t"/>
+<l:template name="figure" text="Figur %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedure %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produktion %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Spørgsmål: %n"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabel %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Appendiks %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Svar: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Spørgsmål: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Spørgsmål: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="afsnittet der hedder “%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Svar: %n"/>
+<l:template name="appendix" text="Appendiks %n"/>
+<l:template name="bridgehead" text="Afsnit %n"/>
+<l:template name="chapter" text="Kapitel %n"/>
+<l:template name="equation" text="Ligning %n"/>
+<l:template name="example" text="Eksempel %n"/>
+<l:template name="figure" text="Figur %n"/>
+<l:template name="part" text="Del %n"/>
+<l:template name="procedure" text="Procedure %n"/>
+<l:template name="productionset" text="Produktion %n"/>
+<l:template name="qandadiv" text="Spørgsmål og Svar %n"/>
+<l:template name="qandaentry" text="Spørgsmål: %n"/>
+<l:template name="question" text="Spørgsmål: %n"/>
+<l:template name="sect1" text="Afsnit %n"/>
+<l:template name="sect2" text="Afsnit %n"/>
+<l:template name="sect3" text="Afsnit %n"/>
+<l:template name="sect4" text="Afsnit %n"/>
+<l:template name="sect5" text="Afsnit %n"/>
+<l:template name="section" text="Afsnit %n"/>
+<l:template name="table" text="Tabel %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Appendiks %n, %t"/>
+<l:template name="bridgehead" text="Afsnit %n, “%t”"/>
+<l:template name="chapter" text="Kapitel %n, %t"/>
+<l:template name="equation" text="Ligning %n, “%t”"/>
+<l:template name="example" text="Eksempel %n, “%t”"/>
+<l:template name="figure" text="Figur %n, “%t”"/>
+<l:template name="part" text="Del %n, “%t”"/>
+<l:template name="procedure" text="Procedure %n, “%t”"/>
+<l:template name="productionset" text="Produktion %n, “%t”"/>
+<l:template name="qandadiv" text="Spørgsmål og Svar %n, “%t”"/>
+<l:template name="refsect1" text="afsnittet der hedder “%t”"/>
+<l:template name="refsect2" text="afsnittet der hedder “%t”"/>
+<l:template name="refsect3" text="afsnittet der hedder “%t”"/>
+<l:template name="refsection" text="afsnittet der hedder “%t”"/>
+<l:template name="sect1" text="Afsnit %n, “%t”"/>
+<l:template name="sect2" text="Afsnit %n, “%t”"/>
+<l:template name="sect3" text="Afsnit %n, “%t”"/>
+<l:template name="sect4" text="Afsnit %n, “%t”"/>
+<l:template name="sect5" text="Afsnit %n, “%t”"/>
+<l:template name="section" text="Afsnit %n, “%t”"/>
+<l:template name="simplesect" text="afsnittet der hedder “%t”"/>
+<l:template name="table" text="Tabel %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=",  "/>
+<l:template name="sep2" text=" og "/>
+<l:template name="seplast" text=" og "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Se %t."/>
+<l:template name="seealso" text="Se også %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Målgruppe: "/>
+<l:template name="MsgLevel" text="Niveau: "/>
+<l:template name="MsgOrig" text="Grundlag: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Januar"/>
+<l:template name="February" text="Februar"/>
+<l:template name="March" text="Marts"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="Maj"/>
+<l:template name="June" text="Juni"/>
+<l:template name="July" text="July"/>
+<l:template name="August" text="August"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="Oktober"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="December"/>
+<l:template name="Monday" text="Mandag"/>
+<l:template name="Tuesday" text="Tirsdag"/>
+<l:template name="Wednesday" text="Onsdag"/>
+<l:template name="Thursday" text="Torsdag"/>
+<l:template name="Friday" text="Fredag"/>
+<l:template name="Saturday" text="Lørdag"/>
+<l:template name="Sunday" text="Søndag"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Maj"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Man"/>
+<l:template name="Tue" text="Tir"/>
+<l:template name="Wed" text="ins"/>
+<l:template name="Thu" text="Tor"/>
+<l:template name="Fri" text="Fre"/>
+<l:template name="Sat" text="Lør"/>
+<l:template name="Sun" text="Søn"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0406 Danish"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="10">J</l:l>
+<l:l i="10">j</l:l>
+<l:l i="11">K</l:l>
+<l:l i="11">k</l:l>
+<l:l i="12">L</l:l>
+<l:l i="12">l</l:l>
+<l:l i="13">M</l:l>
+<l:l i="13">m</l:l>
+<l:l i="14">N</l:l>
+<l:l i="14">n</l:l>
+<l:l i="15">O</l:l>
+<l:l i="15">o</l:l>
+<l:l i="16">P</l:l>
+<l:l i="16">p</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="20">T</l:l>
+<l:l i="20">t</l:l>
+<l:l i="21">U</l:l>
+<l:l i="21">u</l:l>
+<l:l i="22">V</l:l>
+<l:l i="22">v</l:l>
+<l:l i="23">W</l:l>
+<l:l i="23">w</l:l>
+<l:l i="24">X</l:l>
+<l:l i="24">x</l:l>
+<l:l i="25">Y</l:l>
+<l:l i="25">y</l:l>
+<l:l i="26">Z</l:l>
+<l:l i="26">z</l:l>
+<l:l i="27">Æ</l:l>
+<l:l i="27">æ</l:l>
+<l:l i="28">Ø</l:l>
+<l:l i="28">ø</l:l>
+<l:l i="29">Å</l:l>
+<l:l i="29">å</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/de.xml b/applications/content/template/docbook/common/de.xml
new file mode 100644
index 0000000..b418723
--- /dev/null
+++ b/applications/content/template/docbook/common/de.xml
@@ -0,0 +1,684 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="de" english-language-name="German">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/de.xml -->
+<!-- * -->
+<!-- * E-mail the edited de.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Zusammenfassung"/>
+<l:gentext key="abstract" text="Zusammenfassung"/>
+<l:gentext key="Acknowledgements" text="Danksagungen"/>
+<l:gentext key="acknowledgements" text="Danksagungen"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="A:"/>
+<l:gentext key="Appendix" text="Anhang"/>
+<l:gentext key="appendix" text="Anhang"/>
+<l:gentext key="Article" text="Artikel"/>
+<l:gentext key="article" text="Artikel"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Literaturverzeichnis"/>
+<l:gentext key="bibliography" text="Literaturverzeichnis"/>
+<l:gentext key="Book" text="Buch"/>
+<l:gentext key="book" text="Buch"/>
+<l:gentext key="CAUTION" text="ACHTUNG"/>
+<l:gentext key="Caution" text="Achtung"/>
+<l:gentext key="caution" text="Achtung"/>
+<l:gentext key="Chapter" text="Kapitel"/>
+<l:gentext key="chapter" text="Kapitel"/>
+<l:gentext key="Colophon" text="Kolophon"/>
+<l:gentext key="colophon" text="Kolophon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Widmung"/>
+<l:gentext key="dedication" text="Widmung"/>
+<l:gentext key="Edition" text="Ausgabe"/>
+<l:gentext key="edition" text="Ausgabe"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Gleichung"/>
+<l:gentext key="equation" text="Gleichung"/>
+<l:gentext key="Example" text="Beispiel"/>
+<l:gentext key="example" text="Beispiel"/>
+<l:gentext key="Figure" text="Abbildung"/>
+<l:gentext key="figure" text="Abbildung"/>
+<l:gentext key="Glossary" text="Glossar"/>
+<l:gentext key="glossary" text="Glossar"/>
+<l:gentext key="GlossSee" text="Siehe"/>
+<l:gentext key="glosssee" text="Siehe"/>
+<l:gentext key="GlossSeeAlso" text="Siehe auch"/>
+<l:gentext key="glossseealso" text="Siehe auch"/>
+<l:gentext key="IMPORTANT" text="WICHTIG"/>
+<l:gentext key="important" text="Wichtig"/>
+<l:gentext key="Important" text="Wichtig"/>
+<l:gentext key="Index" text="Stichwortverzeichnis"/>
+<l:gentext key="index" text="Stichwortverzeichnis"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Rechtlicher Hinweis"/>
+<l:gentext key="legalnotice" text="Rechtlicher Hinweis"/>
+<l:gentext key="MsgAud" text="Zielgruppe"/>
+<l:gentext key="msgaud" text="Zielgruppe"/>
+<l:gentext key="MsgLevel" text="Dringlichkeit"/>
+<l:gentext key="msglevel" text="Dringlichkeit"/>
+<l:gentext key="MsgOrig" text="Ursprung"/>
+<l:gentext key="msgorig" text="Ursprung"/>
+<l:gentext key="NOTE" text="ANMERKUNG"/>
+<l:gentext key="Note" text="Anmerkung"/>
+<l:gentext key="note" text="Anmerkung"/>
+<l:gentext key="Part" text="Teil"/>
+<l:gentext key="part" text="Teil"/>
+<l:gentext key="Preface" text="Vorwort"/>
+<l:gentext key="preface" text="Vorwort"/>
+<l:gentext key="Procedure" text="Prozedur"/>
+<l:gentext key="procedure" text="Prozedur"/>
+<l:gentext key="ProductionSet" text="Produktion"/>
+<l:gentext key="PubDate" text="Veröffentlicht"/>
+<l:gentext key="pubdate" text="Veröffentlicht"/>
+<l:gentext key="Published" text="Veröffentlicht"/>
+<l:gentext key="published" text="Veröffentlicht"/>
+<l:gentext key="Publisher" text="Herausgeber"/>
+<l:gentext key="Qandadiv" text="F &amp; A"/>
+<l:gentext key="qandadiv" text="F &amp; A"/>
+<l:gentext key="QandASet" text="Häufig gestellte Fragen"/>
+<l:gentext key="Question" text="F:"/>
+<l:gentext key="question" text="F:"/>
+<l:gentext key="RefEntry" text="Seite"/>
+<l:gentext key="refentry" text="seite"/>
+<l:gentext key="Reference" text="Verweis"/>
+<l:gentext key="reference" text="Verweis"/>
+<l:gentext key="References" text="Verweise"/>
+<l:gentext key="RefName" text="Name"/>
+<l:gentext key="refname" text="Name"/>
+<l:gentext key="RefSection" text="Abschnitt"/>
+<l:gentext key="refsection" text="Abschnitt"/>
+<l:gentext key="RefSynopsisDiv" text="Übersicht"/>
+<l:gentext key="refsynopsisdiv" text="Übersicht"/>
+<l:gentext key="RevHistory" text="Versionsgeschichte"/>
+<l:gentext key="revhistory" text="Versionsgeschichte"/>
+<l:gentext key="revision" text="Version"/>
+<l:gentext key="Revision" text="Version"/>
+<l:gentext key="sect1" text="Abschnitt"/>
+<l:gentext key="sect2" text="Abschnitt"/>
+<l:gentext key="sect3" text="Abschnitt"/>
+<l:gentext key="sect4" text="Abschnitt"/>
+<l:gentext key="sect5" text="Abschnitt"/>
+<l:gentext key="section" text="Abschnitt"/>
+<l:gentext key="Section" text="Abschnitt"/>
+<l:gentext key="see" text="Siehe"/>
+<l:gentext key="See" text="Siehe"/>
+<l:gentext key="seealso" text="Siehe auch"/>
+<l:gentext key="Seealso" text="Siehe auch"/>
+<l:gentext key="SeeAlso" text="Siehe auch"/>
+<l:gentext key="set" text="Satz"/>
+<l:gentext key="Set" text="Satz"/>
+<l:gentext key="setindex" text="Stichwortverzeichnis"/>
+<l:gentext key="SetIndex" text="Stichwortverzeichnis"/>
+<l:gentext key="Sidebar" text="Randnotiz"/>
+<l:gentext key="sidebar" text="randnotiz"/>
+<l:gentext key="step" text="Schritt"/>
+<l:gentext key="Step" text="Schritt"/>
+<l:gentext key="table" text="Tabelle"/>
+<l:gentext key="Table" text="Tabelle"/>
+<l:gentext key="task" text="aufgabe"/>
+<l:gentext key="Task" text="Aufgabe"/>
+<l:gentext key="tip" text="Tipp"/>
+<l:gentext key="TIP" text="TIPP"/>
+<l:gentext key="Tip" text="Tipp"/>
+<l:gentext key="Warning" text="Warnung"/>
+<l:gentext key="warning" text="Warnung"/>
+<l:gentext key="WARNING" text="WARNUNG"/>
+<l:gentext key="and" text="und"/>
+<l:gentext key="or" text="oder"/>
+<l:gentext key="by" text="von"/>
+<l:gentext key="Edited" text="Herausgegeben"/>
+<l:gentext key="edited" text="Herausgegeben"/>
+<l:gentext key="Editedby" text="Herausgegeben von"/>
+<l:gentext key="editedby" text="Herausgegeben von"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Fußnoten"/>
+<l:gentext key="Notes" text="Fußnoten"/>
+<l:gentext key="Pgs" text="Seiten"/>
+<l:gentext key="pgs" text="Seiten"/>
+<l:gentext key="Revisedby" text="Geändert durch: "/>
+<l:gentext key="revisedby" text="Geändert durch: "/>
+<l:gentext key="TableNotes" text="Bemerkungen"/>
+<l:gentext key="tablenotes" text="Bemerkungen"/>
+<l:gentext key="TableofContents" text="Inhaltsverzeichnis"/>
+<l:gentext key="tableofcontents" text="Inhaltsverzeichnis"/>
+<l:gentext key="unexpectedelementname" text="Unerwarteter Elementname"/>
+<l:gentext key="unsupported" text="wird nicht unterstützt"/>
+<l:gentext key="xrefto" text="xref auf"/>
+<l:gentext key="Authors" text="Autoren"/>
+<l:gentext key="copyeditor" text="Korrekteur"/>
+<l:gentext key="graphicdesigner" text="Grafikgestalter"/>
+<l:gentext key="productioneditor" text="Produktions-Verfasser"/>
+<l:gentext key="technicaleditor" text="Technischer Verfasser"/>
+<l:gentext key="translator" text="Übersetzer"/>
+<l:gentext key="listofequations" text="Gleichungen"/>
+<l:gentext key="ListofEquations" text="Gleichungen"/>
+<l:gentext key="ListofExamples" text="Liste der Beispiele"/>
+<l:gentext key="listofexamples" text="Liste der Beispiele"/>
+<l:gentext key="ListofFigures" text="Abbildungsverzeichnis"/>
+<l:gentext key="listoffigures" text="Abbildungsverzeichnis"/>
+<l:gentext key="ListofProcedures" text="Liste der Prozeduren"/>
+<l:gentext key="listofprocedures" text="Liste der Prozeduren"/>
+<l:gentext key="listoftables" text="Tabellenverzeichnis"/>
+<l:gentext key="ListofTables" text="Tabellenverzeichnis"/>
+<l:gentext key="ListofUnknown" text="???-Verzeichnis"/>
+<l:gentext key="listofunknown" text="???-Verzeichnis"/>
+<l:gentext key="nav-home" text="Zum Anfang"/>
+<l:gentext key="nav-next" text="Weiter"/>
+<l:gentext key="nav-next-sibling" text="Schnell weiter"/>
+<l:gentext key="nav-prev" text="Zurück"/>
+<l:gentext key="nav-prev-sibling" text="Schnell zurück"/>
+<l:gentext key="nav-up" text="Nach oben"/>
+<l:gentext key="nav-toc" text="InhV"/>
+<l:gentext key="Draft" text="Entwurf"/>
+<l:gentext key="above" text="oben"/>
+<l:gentext key="below" text="unten"/>
+<l:gentext key="sectioncalled" text="der Abschnitt namens"/>
+<l:gentext key="index symbols" text="Symbole"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzäöüß"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="“"/>
+<l:dingbat key="nestedstartquote" text="‚"/>
+<l:dingbat key="nestedendquote" text="‘"/>
+<l:dingbat key="singlestartquote" text="‚"/>
+<l:dingbat key="singleendquote" text="‘"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="3"/>
+<l:context name="webhelp"><l:template name="Search" text="Suchen"/>
+<l:template name="Enter_a_term_and_click" text="Geben Sie einen Begriff ein und wählen Sie "/>
+<l:template name="Go" text="Go"/>
+<l:template name="to_perform_a_search" text=", um eine Suche durchzuführen."/>
+<l:template name="txt_filesfound" text="Ergebnisse"/>
+<l:template name="txt_enter_at_least_1_char" text="Sie müssen mindestens ein Zeichen eingeben."/>
+<l:template name="txt_browser_not_supported" text="JavaScript ist in Ihrem Browser abgeschaltet. Bitte schalten Sie JavaScript an, damit diese Seiten vollständig dargestellt werden."/>
+<l:template name="txt_please_wait" text="Bitte warten Sie. Die Suche ist im Gange ..."/>
+<l:template name="txt_results_for" text="Ergebnisse für: "/>
+<l:template name="TableofContents" text="Inhalt"/>
+<l:template name="HighlightButton" text="Markierte Suchergebnisse ein/ausschalten"/>
+<l:template name="Your_search_returned_no_results" text="Ihre Suche erbrachte kein Ergebnis."/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Anhang %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Gleichung %n. %t"/>
+<l:template name="example" text="Beispiel %n. %t"/>
+<l:template name="figure" text="Abbildung %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Teil %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Prozedur %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produktion %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="F: %n"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabelle %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Anhang %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="part" text="Teil %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="F: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="F: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(Seite %p)"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(S. %p)"/>
+<l:template name="Page" text="Seite %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="„%t“"/>
+<l:template name="refsection" text="„%t“"/>
+<l:template name="refsect1" text="„%t“"/>
+<l:template name="refsect2" text="„%t“"/>
+<l:template name="refsect3" text="„%t“"/>
+<l:template name="sect1" text="„%t“"/>
+<l:template name="sect2" text="„%t“"/>
+<l:template name="sect3" text="„%t“"/>
+<l:template name="sect4" text="„%t“"/>
+<l:template name="sect5" text="„%t“"/>
+<l:template name="section" text="„%t“"/>
+<l:template name="simplesect" text="„%t“"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Anhang %n"/>
+<l:template name="bridgehead" text="Abschnitt %n"/>
+<l:template name="chapter" text="Kapitel %n"/>
+<l:template name="equation" text="Gleichung %n"/>
+<l:template name="example" text="Beispiel %n"/>
+<l:template name="figure" text="Abbildung %n"/>
+<l:template name="part" text="Teil %n"/>
+<l:template name="procedure" text="Prozedur %n"/>
+<l:template name="productionset" text="Produktion %n"/>
+<l:template name="qandadiv" text="F &amp; A %n"/>
+<l:template name="qandaentry" text="F: %n"/>
+<l:template name="question" text="F: %n"/>
+<l:template name="sect1" text="Abschnitt %n"/>
+<l:template name="sect2" text="Abschnitt %n"/>
+<l:template name="sect3" text="Abschnitt %n"/>
+<l:template name="sect4" text="Abschnitt %n"/>
+<l:template name="sect5" text="Abschnitt %n"/>
+<l:template name="section" text="Abschnitt %n"/>
+<l:template name="table" text="Tabelle %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Anhang %n, %t"/>
+<l:template name="bridgehead" text="Abschnitt %n, „%t“"/>
+<l:template name="chapter" text="Kapitel %n, %t"/>
+<l:template name="equation" text="Gleichung %n, „%t“"/>
+<l:template name="example" text="Beispiel %n, „%t“"/>
+<l:template name="figure" text="Abbildung %n, „%t“"/>
+<l:template name="part" text="Teil %n, „%t“"/>
+<l:template name="procedure" text="Prozedur %n, „%t“"/>
+<l:template name="productionset" text="Produktion %n, „%t“"/>
+<l:template name="qandadiv" text="F &amp; A %n, „%t“"/>
+<l:template name="refsect1" text="der Abschnitt namens „%t“"/>
+<l:template name="refsect2" text="der Abschnitt namens „%t“"/>
+<l:template name="refsect3" text="der Abschnitt namens „%t“"/>
+<l:template name="refsection" text="der Abschnitt namens „%t“"/>
+<l:template name="sect1" text="Abschnitt %n, „%t“"/>
+<l:template name="sect2" text="Abschnitt %n, „%t“"/>
+<l:template name="sect3" text="Abschnitt %n, „%t“"/>
+<l:template name="sect4" text="Abschnitt %n, „%t“"/>
+<l:template name="sect5" text="Abschnitt %n, „%t“"/>
+<l:template name="section" text="Abschnitt %n, „%t“"/>
+<l:template name="simplesect" text="der Abschnitt namens „%t“"/>
+<l:template name="table" text="Tabelle %n, „%t“"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" und "/>
+<l:template name="seplast" text=" und "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Siehe %t."/>
+<l:template name="seealso" text="Siehe auch %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Zielgruppe: "/>
+<l:template name="MsgLevel" text="Dringlichkeit: "/>
+<l:template name="MsgOrig" text="Ursprung: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d.m.Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Januar"/>
+<l:template name="February" text="Februar"/>
+<l:template name="March" text="März"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="Mai"/>
+<l:template name="June" text="Juni"/>
+<l:template name="July" text="Juli"/>
+<l:template name="August" text="August"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="Oktober"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="Dezember"/>
+<l:template name="Monday" text="Montag"/>
+<l:template name="Tuesday" text="Dienstag"/>
+<l:template name="Wednesday" text="Mittwoch"/>
+<l:template name="Thursday" text="Donnerstag"/>
+<l:template name="Friday" text="Freitag"/>
+<l:template name="Saturday" text="Samstag"/>
+<l:template name="Sunday" text="Sonntag"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Mai"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dez"/>
+<l:template name="Mon" text="Mo"/>
+<l:template name="Tue" text="Di"/>
+<l:template name="Wed" text="Mi"/>
+<l:template name="Thu" text="Do"/>
+<l:template name="Fri" text="Fr"/>
+<l:template name="Sat" text="Sa"/>
+<l:template name="Sun" text="So"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0407 German (GERMANY)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbole</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="1">Ä</l:l>
+<l:l i="1">ä</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="10">J</l:l>
+<l:l i="10">j</l:l>
+<l:l i="11">K</l:l>
+<l:l i="11">k</l:l>
+<l:l i="12">L</l:l>
+<l:l i="12">l</l:l>
+<l:l i="13">M</l:l>
+<l:l i="13">m</l:l>
+<l:l i="14">N</l:l>
+<l:l i="14">n</l:l>
+<l:l i="15">O</l:l>
+<l:l i="15">o</l:l>
+<l:l i="15">Ö</l:l>
+<l:l i="15">ö</l:l>
+<l:l i="16">P</l:l>
+<l:l i="16">p</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="20">T</l:l>
+<l:l i="20">t</l:l>
+<l:l i="21">U</l:l>
+<l:l i="21">u</l:l>
+<l:l i="21">Ü</l:l>
+<l:l i="21">ü</l:l>
+<l:l i="22">V</l:l>
+<l:l i="22">v</l:l>
+<l:l i="23">W</l:l>
+<l:l i="23">w</l:l>
+<l:l i="24">X</l:l>
+<l:l i="24">x</l:l>
+<l:l i="25">Y</l:l>
+<l:l i="25">y</l:l>
+<l:l i="26">Z</l:l>
+<l:l i="26">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/el.xml b/applications/content/template/docbook/common/el.xml
new file mode 100644
index 0000000..4aaeb67
--- /dev/null
+++ b/applications/content/template/docbook/common/el.xml
@@ -0,0 +1,747 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="el" english-language-name="Greek">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/el.xml -->
+<!-- * -->
+<!-- * E-mail the edited el.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Περίληψη"/>
+<l:gentext key="abstract" text="περίληψη"/>
+<l:gentext key="Acknowledgements" text="Αναγνωρίσεις"/>
+<l:gentext key="acknowledgements" text="αναγνωρίσεις"/>
+<l:gentext key="Answer" text="Α:"/>
+<l:gentext key="answer" text="α:"/>
+<l:gentext key="Appendix" text="Παράρτημα"/>
+<l:gentext key="appendix" text="παράρτημα"/>
+<l:gentext key="Article" text="Άρθρο"/>
+<l:gentext key="article" text="άρθρο"/>
+<l:gentext key="Author" text="Συγγραφέας"/>
+<l:gentext key="Bibliography" text="Βιβλιογραφία"/>
+<l:gentext key="bibliography" text="βιβλιογραφία"/>
+<l:gentext key="Book" text="Βιβλίο"/>
+<l:gentext key="book" text="βιβλίο"/>
+<l:gentext key="CAUTION" text="ΠΡΟΣΟΧΗ"/>
+<l:gentext key="Caution" text="Προσοχή"/>
+<l:gentext key="caution" text="προσοχή"/>
+<l:gentext key="Chapter" text="Κεφάλαιο"/>
+<l:gentext key="chapter" text="κεφάλαιο"/>
+<l:gentext key="Colophon" text="Κορωνίδα"/>
+<l:gentext key="colophon" text="κορωνίδα"/>
+<l:gentext key="Copyright" text="Πνευματικά Δικαιώματα"/>
+<l:gentext key="copyright" text="πνευματικά Δικαιώματα"/>
+<l:gentext key="Dedication" text="Αφιέρωση"/>
+<l:gentext key="dedication" text="αφιέρωση"/>
+<l:gentext key="Edition" text="Έκδοση"/>
+<l:gentext key="edition" text="έκδοση"/>
+<l:gentext key="Editor" text="Εκδότης"/>
+<l:gentext key="Equation" text="Εξίσωση"/>
+<l:gentext key="equation" text="εξίσωση"/>
+<l:gentext key="Example" text="Παράδειγμα"/>
+<l:gentext key="example" text="παράδειγμα"/>
+<l:gentext key="Figure" text="Σχήμα"/>
+<l:gentext key="figure" text="σχήμα"/>
+<l:gentext key="Glossary" text="Γλωσσάριο"/>
+<l:gentext key="glossary" text="γλωσσάριο"/>
+<l:gentext key="GlossSee" text="Δείτε"/>
+<l:gentext key="glosssee" text="δείτε"/>
+<l:gentext key="GlossSeeAlso" text="Δείτε Επίσης"/>
+<l:gentext key="glossseealso" text="δείτε Επίσης"/>
+<l:gentext key="IMPORTANT" text="ΣΗΜΑΝΤΙΚΟ"/>
+<l:gentext key="important" text="σημαντικό"/>
+<l:gentext key="Important" text="Σημαντικό"/>
+<l:gentext key="Index" text="Ευρετήριο"/>
+<l:gentext key="index" text="ευρετήριο"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Νομική Σημείωση"/>
+<l:gentext key="legalnotice" text="νομική σημείωση"/>
+<l:gentext key="MsgAud" text="Ακροατήριο"/>
+<l:gentext key="msgaud" text="ακροατήριο"/>
+<l:gentext key="MsgLevel" text="Επίπεδο"/>
+<l:gentext key="msglevel" text="επίπεδο"/>
+<l:gentext key="MsgOrig" text="Πηγή"/>
+<l:gentext key="msgorig" text="πηγή"/>
+<l:gentext key="NOTE" text="ΣΗΜΕΙΩΣΗ"/>
+<l:gentext key="Note" text="Σημείωση"/>
+<l:gentext key="note" text="σημείωση"/>
+<l:gentext key="Part" text="Μέρος"/>
+<l:gentext key="part" text="μέρος"/>
+<l:gentext key="Preface" text="Εισαγωγή"/>
+<l:gentext key="preface" text="εισαγωγή"/>
+<l:gentext key="Procedure" text="Διαδικασία"/>
+<l:gentext key="procedure" text="διαδικασία"/>
+<l:gentext key="ProductionSet" text="Παραγωγή"/>
+<l:gentext key="PubDate" text="Ημερομηνία Δημοσίευσης"/>
+<l:gentext key="pubdate" text="ημερομηνία Δημοσίευσης"/>
+<l:gentext key="Published" text="Δημοσιευμένο"/>
+<l:gentext key="published" text="δημοσιευμένο"/>
+<l:gentext key="Publisher" text="Εκδότης"/>
+<l:gentext key="Qandadiv" text="Ε και Α"/>
+<l:gentext key="qandadiv" text="ε και α"/>
+<l:gentext key="QandASet" text="Συχνές Ερωτήσεις"/>
+<l:gentext key="Question" text="Ε:"/>
+<l:gentext key="question" text="ε:"/>
+<l:gentext key="RefEntry" text="Σελίδα"/>
+<l:gentext key="refentry" text="σελίδα"/>
+<l:gentext key="Reference" text="Αναφορά"/>
+<l:gentext key="reference" text="αναφορά"/>
+<l:gentext key="References" text="Αναφορές"/>
+<l:gentext key="RefName" text="Όνομα"/>
+<l:gentext key="refname" text="όνομα"/>
+<l:gentext key="RefSection" text="Τμήμα"/>
+<l:gentext key="refsection" text="τμήμα"/>
+<l:gentext key="RefSynopsisDiv" text="Σύνοψη"/>
+<l:gentext key="refsynopsisdiv" text="σύνοψη"/>
+<l:gentext key="RevHistory" text="Ιστορικό Αναθεωρήσεων"/>
+<l:gentext key="revhistory" text="ιστορικό αναθεωρήσεων"/>
+<l:gentext key="revision" text="αναθεώρηση"/>
+<l:gentext key="Revision" text="Αναθεώρηση"/>
+<l:gentext key="sect1" text="Τμήμα"/>
+<l:gentext key="sect2" text="Τμήμα"/>
+<l:gentext key="sect3" text="Τμήμα"/>
+<l:gentext key="sect4" text="Τμήμα"/>
+<l:gentext key="sect5" text="Τμήμα"/>
+<l:gentext key="section" text="τμήμα"/>
+<l:gentext key="Section" text="Τμήμα"/>
+<l:gentext key="see" text="δείτε"/>
+<l:gentext key="See" text="Δείτε"/>
+<l:gentext key="seealso" text="δείτε Επίσης"/>
+<l:gentext key="Seealso" text="Δείτε επίσης"/>
+<l:gentext key="SeeAlso" text="Δείτε Επίσης"/>
+<l:gentext key="set" text="σύνολο"/>
+<l:gentext key="Set" text="Σύνολο"/>
+<l:gentext key="setindex" text="ευρετήριο συνόλων"/>
+<l:gentext key="SetIndex" text="Ευρετήριο Συνόλων"/>
+<l:gentext key="Sidebar" text="Πλευρική γραμμή εργαλείων"/>
+<l:gentext key="sidebar" text="πλευρική γραμμή εργαλείων"/>
+<l:gentext key="step" text="φάση"/>
+<l:gentext key="Step" text="Φάση"/>
+<l:gentext key="table" text="πίνακας"/>
+<l:gentext key="Table" text="Πίνακας"/>
+<l:gentext key="task" text="εργασία"/>
+<l:gentext key="Task" text="Εργασία"/>
+<l:gentext key="tip" text="υπόδειξη"/>
+<l:gentext key="TIP" text="ΥΠΟΔΕΙΞΗ"/>
+<l:gentext key="Tip" text="Υπόδειξη"/>
+<l:gentext key="Warning" text="Προειδοποίηση"/>
+<l:gentext key="warning" text="προειδοποίηση"/>
+<l:gentext key="WARNING" text="ΠΡΟΕΙΔΟΠΟΙΗΣΗ"/>
+<l:gentext key="and" text="και"/>
+<l:gentext key="or" text="ή"/>
+<l:gentext key="by" text="από"/>
+<l:gentext key="Edited" text="Επιμέλεια"/>
+<l:gentext key="edited" text="επιμέλεια"/>
+<l:gentext key="Editedby" text="Επιμέλεια από"/>
+<l:gentext key="editedby" text="επιμέλεια από"/>
+<l:gentext key="in" text="σε"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="σημειώσεις"/>
+<l:gentext key="Notes" text="Σημειώσεις"/>
+<l:gentext key="Pgs" text="Σλδς."/>
+<l:gentext key="pgs" text="σλδς."/>
+<l:gentext key="Revisedby" text="Επιμέλεια από: "/>
+<l:gentext key="revisedby" text="επιμέλεια από: "/>
+<l:gentext key="TableNotes" text="Σημειώσεις"/>
+<l:gentext key="tablenotes" text="σημειώσεις"/>
+<l:gentext key="TableofContents" text="Πίνακας Περιεχομένων"/>
+<l:gentext key="tableofcontents" text="πίνακας Περιεχομένων"/>
+<l:gentext key="unexpectedelementname" text="μη αναμενόμενο όνομα στοιχείου"/>
+<l:gentext key="unsupported" text="μη υποστηριζόμενο"/>
+<l:gentext key="xrefto" text="αντιπαραπομπή σε"/>
+<l:gentext key="Authors" text="Συγγραφείς"/>
+<l:gentext key="copyeditor" text="Συντάκτης"/>
+<l:gentext key="graphicdesigner" text="Σχεδιαστής γραφικών"/>
+<l:gentext key="productioneditor" text="Εκδότης Παραγωγής"/>
+<l:gentext key="technicaleditor" text="Τεχνικός Εκδότης"/>
+<l:gentext key="translator" text="Μεταφραστής"/>
+<l:gentext key="listofequations" text="κατάλογος εξισώσεων"/>
+<l:gentext key="ListofEquations" text="Κατάλογος Εξισώσεων"/>
+<l:gentext key="ListofExamples" text="Κατάλογος Παραδειγμάτων"/>
+<l:gentext key="listofexamples" text="κατάλογος παραδειγμάτων"/>
+<l:gentext key="ListofFigures" text="Κατάλογος Σχημάτων"/>
+<l:gentext key="listoffigures" text="κατάλογος σχημάτων"/>
+<l:gentext key="ListofProcedures" text="Κατάλογος Σχημάτων"/>
+<l:gentext key="listofprocedures" text="κατάλογος σχημάτων"/>
+<l:gentext key="listoftables" text="κατάλογος πινάκων"/>
+<l:gentext key="ListofTables" text="Κατάλογος Πινάκων"/>
+<l:gentext key="ListofUnknown" text="Κατάλογος Αγνώστων"/>
+<l:gentext key="listofunknown" text="κατάλογος αγνώστων;"/>
+<l:gentext key="nav-home" text="Αρχή"/>
+<l:gentext key="nav-next" text="Επόμενο"/>
+<l:gentext key="nav-next-sibling" text="Προς το τέλος"/>
+<l:gentext key="nav-prev" text="Προηγ"/>
+<l:gentext key="nav-prev-sibling" text="Προς την αρχή"/>
+<l:gentext key="nav-up" text="Πάνω"/>
+<l:gentext key="nav-toc" text="Πίνακας περιεχομένων"/>
+<l:gentext key="Draft" text="Προσχέδιο"/>
+<l:gentext key="above" text="πάνω"/>
+<l:gentext key="below" text="κάτω"/>
+<l:gentext key="sectioncalled" text="το τμήμα ονομάζεται"/>
+<l:gentext key="index symbols" text="Σύμβολα"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="αβγδεζηθικλμνξοπρστυφχψω"/>
+<l:gentext key="uppercase.alpha" text="ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ"/>
+<l:gentext key="normalize.sort.input" text="ΑαΆάΒβΓγΔδΕεΈέΖζΗηΉήΘθΙιΊίΪϊΐΚκΛλΜμΝνΞξΟοΌόΠπΡρΣσςΤτΥυΎύΫϋΰΦφΧχΨψΩωΏώ"/>
+<l:gentext key="normalize.sort.output" text="ΑΑΑΑΒΒΓΓΔΔΕΕΕΕΖΖΗΗΗΗΘΘΙΙΙΙΙΙΙΚΚΛΛΜΜΝΝΞΞΟΟΟΟΠΠΡΡΣΣΣΤΤΥΥΥΥΥΥΥΦΦΧΧΨΨΩΩΩΩ"/>
+<l:dingbat key="startquote" text="«"/>
+<l:dingbat key="endquote" text="»"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Παράρτημα %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Κεφάλαιο %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Εξίσωση %n. %t"/>
+<l:template name="example" text="Παράδειγμα %n. %t"/>
+<l:template name="figure" text="Σχήμα %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Μέρος %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Διαδικασία %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Παραγωγή %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Πίνακας %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Παράρτημα %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Κεφάλαιο %n. %t"/>
+<l:template name="part" text="Μέρος %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Α: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Ε: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Ε: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="«%t»"/>
+<l:template name="refsection" text="«%t»"/>
+<l:template name="refsect1" text="«%t»"/>
+<l:template name="refsect2" text="«%t»"/>
+<l:template name="refsect3" text="«%t»"/>
+<l:template name="sect1" text="«%t»"/>
+<l:template name="sect2" text="«%t»"/>
+<l:template name="sect3" text="«%t»"/>
+<l:template name="sect4" text="«%t»"/>
+<l:template name="sect5" text="«%t»"/>
+<l:template name="section" text="«%t»"/>
+<l:template name="simplesect" text="«%t»"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Α: %n"/>
+<l:template name="appendix" text="Παράρτημα %n"/>
+<l:template name="bridgehead" text="Τμήμα %n"/>
+<l:template name="chapter" text="Κεφάλαιο %n"/>
+<l:template name="equation" text="Εξίσωση %n"/>
+<l:template name="example" text="Παράδειγμα %n"/>
+<l:template name="figure" text="Σχήμα %n"/>
+<l:template name="part" text="Μέρος %n"/>
+<l:template name="procedure" text="Διαδικασία %n"/>
+<l:template name="productionset" text="Παραγωγή %n"/>
+<l:template name="qandadiv" text="Ε και Α %n"/>
+<l:template name="qandaentry" text="Ε: %n"/>
+<l:template name="question" text="Ε: %n"/>
+<l:template name="sect1" text="Τμήμα %n"/>
+<l:template name="sect2" text="Τμήμα %n"/>
+<l:template name="sect3" text="Τμήμα %n"/>
+<l:template name="sect4" text="Τμήμα %n"/>
+<l:template name="sect5" text="Τμήμα %n"/>
+<l:template name="section" text="Τμήμα %n"/>
+<l:template name="table" text="Πίνακας %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Παράρτημα %n, %t"/>
+<l:template name="bridgehead" text="Τμήμα %n, «%t»"/>
+<l:template name="chapter" text="Κεφάλαιο %n, %t"/>
+<l:template name="equation" text="Εξίσωση %n, «%t»"/>
+<l:template name="example" text="Παράδειγμα %n, «%t»"/>
+<l:template name="figure" text="Σχήμα %n, «%t»"/>
+<l:template name="part" text="Μέρος %n, «%t»"/>
+<l:template name="procedure" text="Διαδικασία %n, «%t»"/>
+<l:template name="productionset" text="Παραγωγή %n, «%t»"/>
+<l:template name="qandadiv" text="Ε και Α %n, «%t»"/>
+<l:template name="refsect1" text="το τμήμα ονομάζεται «%t»"/>
+<l:template name="refsect2" text="το τμήμα ονομάζεται «%t»"/>
+<l:template name="refsect3" text="το τμήμα ονομάζεται «%t»"/>
+<l:template name="refsection" text="το τμήμα ονομάζεται «%t»"/>
+<l:template name="sect1" text="Τμήμα %n, «%t»"/>
+<l:template name="sect2" text="Τμήμα %n, «%t»"/>
+<l:template name="sect3" text="Τμήμα %n, «%t»"/>
+<l:template name="sect4" text="Τμήμα %n, «%t»"/>
+<l:template name="sect5" text="Τμήμα %n, «%t»"/>
+<l:template name="section" text="Τμήμα %n, «%t»"/>
+<l:template name="simplesect" text="το τμήμα ονομάζεται «%t»"/>
+<l:template name="table" text="Πίνακας %n, «%t»"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" και "/>
+<l:template name="seplast" text=", και "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Δείτε %t."/>
+<l:template name="seealso" text="Δείτε Επίσης %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Ακροατήριο: "/>
+<l:template name="MsgLevel" text="Επίπεδο: "/>
+<l:template name="MsgOrig" text="Πηγή: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Ιανουάριος"/>
+<l:template name="February" text="Φεβρουάριος"/>
+<l:template name="March" text="Μάρτιος"/>
+<l:template name="April" text="Απρίλιος"/>
+<l:template name="May" text="Μάιος"/>
+<l:template name="June" text="Ιούνιος"/>
+<l:template name="July" text="Ιούλιος"/>
+<l:template name="August" text="Αύγουστος"/>
+<l:template name="September" text="Σεπτέμβριος"/>
+<l:template name="October" text="Οκτώβριος"/>
+<l:template name="November" text="Νοέμβριος"/>
+<l:template name="December" text="Δεκέμβριος"/>
+<l:template name="Monday" text="Δευτέρα"/>
+<l:template name="Tuesday" text="Τρίτη"/>
+<l:template name="Wednesday" text="Τετάρτη"/>
+<l:template name="Thursday" text="Πέμπτη"/>
+<l:template name="Friday" text="Παρασκευή"/>
+<l:template name="Saturday" text="Σάββατο"/>
+<l:template name="Sunday" text="Κυριακή"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Ιαν"/>
+<l:template name="Feb" text="Φλεβ"/>
+<l:template name="Mar" text="Μάρ"/>
+<l:template name="Apr" text="Απρ"/>
+<l:template name="May" text="Μάης"/>
+<l:template name="Jun" text="Ιούν"/>
+<l:template name="Jul" text="Ιούλ"/>
+<l:template name="Aug" text="Αύγ"/>
+<l:template name="Sep" text="Σεπτ"/>
+<l:template name="Oct" text="Οκτ"/>
+<l:template name="Nov" text="Νοεμ"/>
+<l:template name="Dec" text="Δεκ"/>
+<l:template name="Mon" text="Δευτ"/>
+<l:template name="Tue" text="Τρ"/>
+<l:template name="Wed" text="Τετ"/>
+<l:template name="Thu" text="Πεμ"/>
+<l:template name="Fri" text="Παρ"/>
+<l:template name="Sat" text="Σάβ"/>
+<l:template name="Sun" text="Κυρ"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0408 Greek"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Σύμβολα</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="270">Α</l:l>
+<l:l i="270">α</l:l>
+<l:l i="270">Ά</l:l>
+<l:l i="270">ά</l:l>
+<l:l i="280">Β</l:l>
+<l:l i="280">β</l:l>
+<l:l i="290">Γ</l:l>
+<l:l i="290">γ</l:l>
+<l:l i="300">Δ</l:l>
+<l:l i="300">δ</l:l>
+<l:l i="310">Ε</l:l>
+<l:l i="310">ε</l:l>
+<l:l i="310">Έ</l:l>
+<l:l i="310">έ</l:l>
+<l:l i="320">Ζ</l:l>
+<l:l i="320">ζ</l:l>
+<l:l i="330">Η</l:l>
+<l:l i="330">η</l:l>
+<l:l i="330">Ή</l:l>
+<l:l i="330">ή</l:l>
+<l:l i="340">Θ</l:l>
+<l:l i="340">θ</l:l>
+<l:l i="350">Ι</l:l>
+<l:l i="350">ι</l:l>
+<l:l i="350">Ί</l:l>
+<l:l i="350">ί</l:l>
+<l:l i="350">Ϊ</l:l>
+<l:l i="350">ϊ</l:l>
+<l:l i="350">ΐ</l:l>
+<l:l i="360">Κ</l:l>
+<l:l i="360">κ</l:l>
+<l:l i="370">Λ</l:l>
+<l:l i="370">λ</l:l>
+<l:l i="380">Μ</l:l>
+<l:l i="380">μ</l:l>
+<l:l i="390">Ν</l:l>
+<l:l i="390">ν</l:l>
+<l:l i="400">Ξ</l:l>
+<l:l i="400">ξ</l:l>
+<l:l i="410">Ο</l:l>
+<l:l i="410">ο</l:l>
+<l:l i="410">Ό</l:l>
+<l:l i="410">ό</l:l>
+<l:l i="420">Π</l:l>
+<l:l i="420">π</l:l>
+<l:l i="430">Ρ</l:l>
+<l:l i="430">ρ</l:l>
+<l:l i="440">Σ</l:l>
+<l:l i="440">σ</l:l>
+<l:l i="440">ς</l:l>
+<l:l i="450">Τ</l:l>
+<l:l i="450">τ</l:l>
+<l:l i="460">Υ</l:l>
+<l:l i="460">υ</l:l>
+<l:l i="460">Ύ</l:l>
+<l:l i="460">ύ</l:l>
+<l:l i="460">Ϋ</l:l>
+<l:l i="460">ϋ</l:l>
+<l:l i="460">ΰ</l:l>
+<l:l i="470">Φ</l:l>
+<l:l i="470">φ</l:l>
+<l:l i="480">Χ</l:l>
+<l:l i="480">χ</l:l>
+<l:l i="490">Ψ</l:l>
+<l:l i="490">ψ</l:l>
+<l:l i="500">Ω</l:l>
+<l:l i="500">ω</l:l>
+<l:l i="500">Ώ</l:l>
+<l:l i="500">ώ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/en.xml b/applications/content/template/docbook/common/en.xml
new file mode 100644
index 0000000..5c64809
--- /dev/null
+++ b/applications/content/template/docbook/common/en.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="en" english-language-name="English">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/en.xml -->
+<!-- * -->
+<!-- * E-mail the edited en.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstract"/>
+<l:gentext key="abstract" text="Abstract"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements"/>
+<l:gentext key="acknowledgements" text="Acknowledgements"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="A:"/>
+<l:gentext key="Appendix" text="Appendix"/>
+<l:gentext key="appendix" text="Appendix"/>
+<l:gentext key="Article" text="Article"/>
+<l:gentext key="article" text="Article"/>
+<l:gentext key="Author" text="Author"/>
+<l:gentext key="Bibliography" text="Bibliography"/>
+<l:gentext key="bibliography" text="Bibliography"/>
+<l:gentext key="Book" text="Book"/>
+<l:gentext key="book" text="Book"/>
+<l:gentext key="CAUTION" text="CAUTION"/>
+<l:gentext key="Caution" text="Caution"/>
+<l:gentext key="caution" text="Caution"/>
+<l:gentext key="Chapter" text="Chapter"/>
+<l:gentext key="chapter" text="Chapter"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dedication"/>
+<l:gentext key="dedication" text="Dedication"/>
+<l:gentext key="Edition" text="Edition"/>
+<l:gentext key="edition" text="Edition"/>
+<l:gentext key="Editor" text="Editor"/>
+<l:gentext key="Equation" text="Equation"/>
+<l:gentext key="equation" text="Equation"/>
+<l:gentext key="Example" text="Example"/>
+<l:gentext key="example" text="Example"/>
+<l:gentext key="Figure" text="Figure"/>
+<l:gentext key="figure" text="Figure"/>
+<l:gentext key="Glossary" text="Glossary"/>
+<l:gentext key="glossary" text="Glossary"/>
+<l:gentext key="GlossSee" text="See"/>
+<l:gentext key="glosssee" text="See"/>
+<l:gentext key="GlossSeeAlso" text="See Also"/>
+<l:gentext key="glossseealso" text="See Also"/>
+<l:gentext key="IMPORTANT" text="IMPORTANT"/>
+<l:gentext key="important" text="Important"/>
+<l:gentext key="Important" text="Important"/>
+<l:gentext key="Index" text="Index"/>
+<l:gentext key="index" text="Index"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Legal Notice"/>
+<l:gentext key="legalnotice" text="Legal Notice"/>
+<l:gentext key="MsgAud" text="Audience"/>
+<l:gentext key="msgaud" text="Audience"/>
+<l:gentext key="MsgLevel" text="Level"/>
+<l:gentext key="msglevel" text="Level"/>
+<l:gentext key="MsgOrig" text="Origin"/>
+<l:gentext key="msgorig" text="Origin"/>
+<l:gentext key="NOTE" text="NOTE"/>
+<l:gentext key="Note" text="Note"/>
+<l:gentext key="note" text="Note"/>
+<l:gentext key="Part" text="Part"/>
+<l:gentext key="part" text="Part"/>
+<l:gentext key="Preface" text="Preface"/>
+<l:gentext key="preface" text="Preface"/>
+<l:gentext key="Procedure" text="Procedure"/>
+<l:gentext key="procedure" text="Procedure"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date"/>
+<l:gentext key="pubdate" text="Publication date"/>
+<l:gentext key="Published" text="Published"/>
+<l:gentext key="published" text="Published"/>
+<l:gentext key="Publisher" text="Publisher"/>
+<l:gentext key="Qandadiv" text="Q &amp; A"/>
+<l:gentext key="qandadiv" text="Q &amp; A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions"/>
+<l:gentext key="Question" text="Q:"/>
+<l:gentext key="question" text="Q:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Reference"/>
+<l:gentext key="reference" text="Reference"/>
+<l:gentext key="References" text="References"/>
+<l:gentext key="RefName" text="Name"/>
+<l:gentext key="refname" text="Name"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="Synopsis"/>
+<l:gentext key="RevHistory" text="Revision History"/>
+<l:gentext key="revhistory" text="Revision History"/>
+<l:gentext key="revision" text="Revision"/>
+<l:gentext key="Revision" text="Revision"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="Section"/>
+<l:gentext key="Section" text="Section"/>
+<l:gentext key="see" text="see"/>
+<l:gentext key="See" text="See"/>
+<l:gentext key="seealso" text="see also"/>
+<l:gentext key="Seealso" text="See also"/>
+<l:gentext key="SeeAlso" text="See Also"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Set Index"/>
+<l:gentext key="SetIndex" text="Set Index"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="step"/>
+<l:gentext key="Step" text="Step"/>
+<l:gentext key="table" text="Table"/>
+<l:gentext key="Table" text="Table"/>
+<l:gentext key="task" text="Task"/>
+<l:gentext key="Task" text="Task"/>
+<l:gentext key="tip" text="Tip"/>
+<l:gentext key="TIP" text="TIP"/>
+<l:gentext key="Tip" text="Tip"/>
+<l:gentext key="Warning" text="Warning"/>
+<l:gentext key="warning" text="Warning"/>
+<l:gentext key="WARNING" text="WARNING"/>
+<l:gentext key="and" text="and"/>
+<l:gentext key="or" text="or"/>
+<l:gentext key="by" text="by"/>
+<l:gentext key="Edited" text="Edited"/>
+<l:gentext key="edited" text="Edited"/>
+<l:gentext key="Editedby" text="Edited by"/>
+<l:gentext key="editedby" text="Edited by"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Notes"/>
+<l:gentext key="Notes" text="Notes"/>
+<l:gentext key="Pgs" text="Pgs."/>
+<l:gentext key="pgs" text="Pgs."/>
+<l:gentext key="Revisedby" text="Revised by: "/>
+<l:gentext key="revisedby" text="Revised by: "/>
+<l:gentext key="TableNotes" text="Notes"/>
+<l:gentext key="tablenotes" text="Notes"/>
+<l:gentext key="TableofContents" text="Table of Contents"/>
+<l:gentext key="tableofcontents" text="Table of Contents"/>
+<l:gentext key="unexpectedelementname" text="Unexpected element name"/>
+<l:gentext key="unsupported" text="unsupported"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="Authors"/>
+<l:gentext key="copyeditor" text="Copy Editor"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer"/>
+<l:gentext key="productioneditor" text="Production Editor"/>
+<l:gentext key="technicaleditor" text="Technical Editor"/>
+<l:gentext key="translator" text="Translator"/>
+<l:gentext key="listofequations" text="List of Equations"/>
+<l:gentext key="ListofEquations" text="List of Equations"/>
+<l:gentext key="ListofExamples" text="List of Examples"/>
+<l:gentext key="listofexamples" text="List of Examples"/>
+<l:gentext key="ListofFigures" text="List of Figures"/>
+<l:gentext key="listoffigures" text="List of Figures"/>
+<l:gentext key="ListofProcedures" text="List of Procedures"/>
+<l:gentext key="listofprocedures" text="List of Procedures"/>
+<l:gentext key="listoftables" text="List of Tables"/>
+<l:gentext key="ListofTables" text="List of Tables"/>
+<l:gentext key="ListofUnknown" text="List of Unknown"/>
+<l:gentext key="listofunknown" text="List of Unknown"/>
+<l:gentext key="nav-home" text="Home"/>
+<l:gentext key="nav-next" text="Next"/>
+<l:gentext key="nav-next-sibling" text="Fast Forward"/>
+<l:gentext key="nav-prev" text="Prev"/>
+<l:gentext key="nav-prev-sibling" text="Fast Backward"/>
+<l:gentext key="nav-up" text="Up"/>
+<l:gentext key="nav-toc" text="ToC"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click "/>
+<l:template name="Go" text="Go"/>
+<l:template name="to_perform_a_search" text=" to perform a search."/>
+<l:template name="txt_filesfound" text="Results"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character."/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site."/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..."/>
+<l:template name="txt_results_for" text="Results for: "/>
+<l:template name="TableofContents" text="Contents"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results."/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Appendix %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Chapter %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equation %n. %t"/>
+<l:template name="example" text="Example %n. %t"/>
+<l:template name="figure" text="Figure %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Part %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedure %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Table %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Appendix %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Chapter %n. %t"/>
+<l:template name="part" text="Part %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t"/>
+<l:template name="bridgehead" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="sect1" text="the section called “%t”"/>
+<l:template name="sect2" text="the section called “%t”"/>
+<l:template name="sect3" text="the section called “%t”"/>
+<l:template name="sect4" text="the section called “%t”"/>
+<l:template name="sect5" text="the section called “%t”"/>
+<l:template name="section" text="the section called “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Appendix %n"/>
+<l:template name="bridgehead" text="Section %n"/>
+<l:template name="chapter" text="Chapter %n"/>
+<l:template name="equation" text="Equation %n"/>
+<l:template name="example" text="Example %n"/>
+<l:template name="figure" text="Figure %n"/>
+<l:template name="part" text="Part %n"/>
+<l:template name="procedure" text="Procedure %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Q &amp; A %n"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="sect1" text="Section %n"/>
+<l:template name="sect2" text="Section %n"/>
+<l:template name="sect3" text="Section %n"/>
+<l:template name="sect4" text="Section %n"/>
+<l:template name="sect5" text="Section %n"/>
+<l:template name="section" text="Section %n"/>
+<l:template name="table" text="Table %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Appendix %n, %t"/>
+<l:template name="bridgehead" text="Section %n, “%t”"/>
+<l:template name="chapter" text="Chapter %n, %t"/>
+<l:template name="equation" text="Equation %n, “%t”"/>
+<l:template name="example" text="Example %n, “%t”"/>
+<l:template name="figure" text="Figure %n, “%t”"/>
+<l:template name="part" text="Part %n, “%t”"/>
+<l:template name="procedure" text="Procedure %n, “%t”"/>
+<l:template name="productionset" text="Production %n, “%t”"/>
+<l:template name="qandadiv" text="Q &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="sect1" text="Section %n, “%t”"/>
+<l:template name="sect2" text="Section %n, “%t”"/>
+<l:template name="sect3" text="Section %n, “%t”"/>
+<l:template name="sect4" text="Section %n, “%t”"/>
+<l:template name="sect5" text="Section %n, “%t”"/>
+<l:template name="section" text="Section %n, “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+<l:template name="table" text="Table %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" and "/>
+<l:template name="seplast" text=", and "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="See %t."/>
+<l:template name="seealso" text="See Also %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audience: "/>
+<l:template name="MsgLevel" text="Level: "/>
+<l:template name="MsgOrig" text="Origin: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January"/>
+<l:template name="February" text="February"/>
+<l:template name="March" text="March"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="May"/>
+<l:template name="June" text="June"/>
+<l:template name="July" text="July"/>
+<l:template name="August" text="August"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="October"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="December"/>
+<l:template name="Monday" text="Monday"/>
+<l:template name="Tuesday" text="Tuesday"/>
+<l:template name="Wednesday" text="Wednesday"/>
+<l:template name="Thursday" text="Thursday"/>
+<l:template name="Friday" text="Friday"/>
+<l:template name="Saturday" text="Saturday"/>
+<l:template name="Sunday" text="Sunday"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="May"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Oct"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Mon"/>
+<l:template name="Tue" text="Tue"/>
+<l:template name="Wed" text="Wed"/>
+<l:template name="Thu" text="Thu"/>
+<l:template name="Fri" text="Fri"/>
+<l:template name="Sat" text="Sat"/>
+<l:template name="Sun" text="Sun"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 English (UNITED STATES)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/entities.ent b/applications/content/template/docbook/common/entities.ent
new file mode 100644
index 0000000..9256b1c
--- /dev/null
+++ b/applications/content/template/docbook/common/entities.ent
@@ -0,0 +1,67 @@
+<!-- ********************************************************************
+     $Id: entities.ent 9286 2012-04-19 10:10:58Z bobstayton $
+     ********************************************************************
+     
+     This file contains common entity declarations used for
+     sorting (and other things) by various templates.
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!ENTITY lowercase "'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;'">
+<!ENTITY uppercase "'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'">
+
+<!-- The following three entities are used for sorting and grouping
+     indexterms, not in presentation of them. -->
+<!-- If @sortas is present, sort and group by combination of
+     @sortas, space and entry to keep it separate from other entries
+     with the same @sortas.
+     If @sortas is not present, the first item is empty, and the added space
+     is removed when normalize-space is applied, leaving just the entry -->
+
+<!ENTITY primary   'normalize-space(concat(primary/@sortas, " ", primary))'>
+<!ENTITY secondary 'normalize-space(concat(secondary/@sortas, " ", secondary))'>
+<!ENTITY tertiary  'normalize-space(concat(tertiary/@sortas, " ", tertiary))'>
+
+<!ENTITY section   '(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]'>
+
+<!ENTITY section.id 'generate-id(&section;)'>
+<!ENTITY sep '" "'>
+
+<!ENTITY scope 'count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))'>
+
+<!ENTITY setup-language-variable '
+<xsl:variable name="language" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:call-template name="l10n.language"/>
+</xsl:variable>
+
+<xsl:variable name="lowercase" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:variable name="uppercase" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+'>
+
+<!-- Entity used in html/inline.xsl and fo/inline.xsl -->
+<!ENTITY comment.block.parents "parent::answer|parent::appendix|parent::article|parent::bibliodiv|
+                                parent::bibliography|parent::blockquote|parent::caution|parent::chapter|
+                                parent::glossary|parent::glossdiv|parent::important|parent::index|
+                                parent::indexdiv|parent::listitem|parent::note|parent::orderedlist|
+                                parent::partintro|parent::preface|parent::procedure|parent::qandadiv|
+                                parent::qandaset|parent::question|parent::refentry|parent::refnamediv|
+                                parent::refsect1|parent::refsect2|parent::refsect3|parent::refsection|
+                                parent::refsynopsisdiv|parent::sect1|parent::sect2|parent::sect3|parent::sect4|
+                                parent::sect5|parent::section|parent::setindex|parent::sidebar|
+                                parent::simplesect|parent::taskprerequisites|parent::taskrelated|
+                                parent::tasksummary|parent::warning|parent::topic">
diff --git a/applications/content/template/docbook/common/eo.xml b/applications/content/template/docbook/common/eo.xml
new file mode 100644
index 0000000..25a93a9
--- /dev/null
+++ b/applications/content/template/docbook/common/eo.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="eo" english-language-name="Esperanto">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/eo.xml -->
+<!-- * -->
+<!-- * E-mail the edited eo.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Resumo"/>
+<l:gentext key="abstract" text="Resumo"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="R:"/>
+<l:gentext key="Appendix" text="Apendico"/>
+<l:gentext key="appendix" text="Apendico"/>
+<l:gentext key="Article" text="Artikolo"/>
+<l:gentext key="article" text="Artikolo"/>
+<l:gentext key="Author" text="Aŭtoro"/>
+<l:gentext key="Bibliography" text="Bibliografio"/>
+<l:gentext key="bibliography" text="Bibliografio"/>
+<l:gentext key="Book" text="Libro"/>
+<l:gentext key="book" text="Libro"/>
+<l:gentext key="CAUTION" text="ATENTU"/>
+<l:gentext key="Caution" text="Atentu"/>
+<l:gentext key="caution" text="Atentu"/>
+<l:gentext key="Chapter" text="Ĉapitro"/>
+<l:gentext key="chapter" text="Ĉapitro"/>
+<l:gentext key="Colophon" text="Kolofono"/>
+<l:gentext key="colophon" text="Kolofono"/>
+<l:gentext key="Copyright" text="Kopirajto"/>
+<l:gentext key="copyright" text="Kopirajto"/>
+<l:gentext key="Dedication" text="Dediĉo"/>
+<l:gentext key="dedication" text="Dediĉo"/>
+<l:gentext key="Edition" text="Eldono"/>
+<l:gentext key="edition" text="Eldono"/>
+<l:gentext key="Editor" text="Redaktoro"/>
+<l:gentext key="Equation" text="Ekvacio"/>
+<l:gentext key="equation" text="Ekvacio"/>
+<l:gentext key="Example" text="Ekzemplo"/>
+<l:gentext key="example" text="Ekzemplo"/>
+<l:gentext key="Figure" text="Figuro"/>
+<l:gentext key="figure" text="Figuro"/>
+<l:gentext key="Glossary" text="Glosaro"/>
+<l:gentext key="glossary" text="Glosaro"/>
+<l:gentext key="GlossSee" text="Vidu"/>
+<l:gentext key="glosssee" text="Vidu"/>
+<l:gentext key="GlossSeeAlso" text="Vidu ankaŭ"/>
+<l:gentext key="glossseealso" text="Vidu ankaŭ"/>
+<l:gentext key="IMPORTANT" text="GRAVA"/>
+<l:gentext key="important" text="Grava"/>
+<l:gentext key="Important" text="Grava"/>
+<l:gentext key="Index" text="Indekso"/>
+<l:gentext key="index" text="Indekso"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Leĝa Avizo"/>
+<l:gentext key="legalnotice" text="Leĝa Avizo"/>
+<l:gentext key="MsgAud" text="Cela legantaro"/>
+<l:gentext key="msgaud" text="Cela legantaro"/>
+<l:gentext key="MsgLevel" text="Nivelo"/>
+<l:gentext key="msglevel" text="Nivelo"/>
+<l:gentext key="MsgOrig" text="Origino"/>
+<l:gentext key="msgorig" text="Origino"/>
+<l:gentext key="NOTE" text="RIMARKO"/>
+<l:gentext key="Note" text="Rimarko"/>
+<l:gentext key="note" text="Rimarko"/>
+<l:gentext key="Part" text="Parto"/>
+<l:gentext key="part" text="Parto"/>
+<l:gentext key="Preface" text="Antaŭparolo"/>
+<l:gentext key="preface" text="Antaŭparolo"/>
+<l:gentext key="Procedure" text="Procezo"/>
+<l:gentext key="procedure" text="Procezo"/>
+<l:gentext key="ProductionSet" text="Produktaĵo"/>
+<l:gentext key="PubDate" text="Eldona Dato"/>
+<l:gentext key="pubdate" text="Eldona Dato"/>
+<l:gentext key="Published" text="Eldonita "/>
+<l:gentext key="published" text="Eldonita"/>
+<l:gentext key="Publisher" text="Eldonita"/>
+<l:gentext key="Qandadiv" text="Demandoj &amp; Respondoj"/>
+<l:gentext key="qandadiv" text="Demandoj &amp; Respondoj"/>
+<l:gentext key="QandASet" text="Oftaj Demandoj"/>
+<l:gentext key="Question" text="D:"/>
+<l:gentext key="question" text="D:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referenco"/>
+<l:gentext key="reference" text="Referenco"/>
+<l:gentext key="References" text="Referencoj"/>
+<l:gentext key="RefName" text="Nomo"/>
+<l:gentext key="refname" text="Nomo"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Resumo"/>
+<l:gentext key="refsynopsisdiv" text="Resumo"/>
+<l:gentext key="RevHistory" text="Historio de Versioj"/>
+<l:gentext key="revhistory" text="Historio de Versioj"/>
+<l:gentext key="revision" text="Versio"/>
+<l:gentext key="Revision" text="Versio"/>
+<l:gentext key="sect1" text="Sekcio"/>
+<l:gentext key="sect2" text="Sekcio"/>
+<l:gentext key="sect3" text="Sekcio"/>
+<l:gentext key="sect4" text="Sekcio"/>
+<l:gentext key="sect5" text="Sekcio"/>
+<l:gentext key="section" text="Sekcio"/>
+<l:gentext key="Section" text="Sekcio"/>
+<l:gentext key="see" text="vidu"/>
+<l:gentext key="See" text="Vidu"/>
+<l:gentext key="seealso" text="vidu ankaŭ"/>
+<l:gentext key="Seealso" text="Vidu ankaŭ"/>
+<l:gentext key="SeeAlso" text="Vidu Ankaŭ"/>
+<l:gentext key="set" text="Libraro"/>
+<l:gentext key="Set" text="Libraro"/>
+<l:gentext key="setindex" text="Indekso de Libraro"/>
+<l:gentext key="SetIndex" text="Indesko de Libraro"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="flankaĵo"/>
+<l:gentext key="step" text="ŝtupo"/>
+<l:gentext key="Step" text="Ŝtupo"/>
+<l:gentext key="table" text="Tabelo"/>
+<l:gentext key="Table" text="Tabelo"/>
+<l:gentext key="task" text="Tasko"/>
+<l:gentext key="Task" text="Tasko"/>
+<l:gentext key="tip" text="Sugesto"/>
+<l:gentext key="TIP" text="SUGESTO"/>
+<l:gentext key="Tip" text="Sugesto"/>
+<l:gentext key="Warning" text="Averto"/>
+<l:gentext key="warning" text="Averto"/>
+<l:gentext key="WARNING" text="AVERTO"/>
+<l:gentext key="and" text="kaj"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="fare de"/>
+<l:gentext key="Edited" text="Redaktita"/>
+<l:gentext key="edited" text="Redaktita"/>
+<l:gentext key="Editedby" text="Redaktita de"/>
+<l:gentext key="editedby" text="Redaktita de"/>
+<l:gentext key="in" text="en"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Notoj"/>
+<l:gentext key="Notes" text="Notoj"/>
+<l:gentext key="Pgs" text="p."/>
+<l:gentext key="pgs" text="p."/>
+<l:gentext key="Revisedby" text="Reviziita de: "/>
+<l:gentext key="revisedby" text="Reviziita de: "/>
+<l:gentext key="TableNotes" text="Notoj"/>
+<l:gentext key="tablenotes" text="Notoj"/>
+<l:gentext key="TableofContents" text="Enhavo"/>
+<l:gentext key="tableofcontents" text="Enhavo"/>
+<l:gentext key="unexpectedelementname" text="Neantaŭvidita nomo de elemento"/>
+<l:gentext key="unsupported" text="netraktebla"/>
+<l:gentext key="xrefto" text="aludo al"/>
+<l:gentext key="Authors" text="Aŭtoroj"/>
+<l:gentext key="copyeditor" text="Provredaktinto"/>
+<l:gentext key="graphicdesigner" text="Grafikisto"/>
+<l:gentext key="productioneditor" text="Produkta Redaktoro"/>
+<l:gentext key="technicaleditor" text="Teknika Redaktoro"/>
+<l:gentext key="translator" text="Tradukisto"/>
+<l:gentext key="listofequations" text="Listo de Ekvacioj"/>
+<l:gentext key="ListofEquations" text="Listo de Ekvacioj"/>
+<l:gentext key="ListofExamples" text="Listo de Ekzemploj"/>
+<l:gentext key="listofexamples" text="Listo de Ekzemploj"/>
+<l:gentext key="ListofFigures" text="Listo de Figuroj"/>
+<l:gentext key="listoffigures" text="Listo de Figuroj"/>
+<l:gentext key="ListofProcedures" text="Listo de Procedoj"/>
+<l:gentext key="listofprocedures" text="Listo de Procedoj"/>
+<l:gentext key="listoftables" text="Listo de Tabeloj"/>
+<l:gentext key="ListofTables" text="Listo de Tabeloj"/>
+<l:gentext key="ListofUnknown" text="Listo de Nesciatoj"/>
+<l:gentext key="listofunknown" text="Listo de Nesciatoj"/>
+<l:gentext key="nav-home" text="Hejmen"/>
+<l:gentext key="nav-next" text="Sekven"/>
+<l:gentext key="nav-next-sibling" text="Pli sekven"/>
+<l:gentext key="nav-prev" text="Antaŭen"/>
+<l:gentext key="nav-prev-sibling" text="Pli antaŭen"/>
+<l:gentext key="nav-up" text="Supren"/>
+<l:gentext key="nav-toc" text="Enhavlisten"/>
+<l:gentext key="Draft" text="Malneto"/>
+<l:gentext key="above" text="supra"/>
+<l:gentext key="below" text="suba"/>
+<l:gentext key="sectioncalled" text="la sekcio nomata"/>
+<l:gentext key="index symbols" text="Simboloj"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcĉdefgĝhĥijĵklmnopqrsŝtuŭvyz"/>
+<l:gentext key="uppercase.alpha" text="ABCĈDEFGĜHĤIJĴKLMNOPQRSŜTUŬVYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apendico %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Ĉapitro %n. %t&quot;"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ekvacio %n. %t"/>
+<l:template name="example" text="Ekzemplo %n. %t"/>
+<l:template name="figure" text="Figuro %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parto %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procezo %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produktaĵo %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabelo %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apendico %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Ĉapitro %n. %t"/>
+<l:template name="part" text="Parto %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Demando %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Demando %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (paĝo %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(paĝo %p)"/>
+<l:template name="docname" text=" en %o"/>
+<l:template name="docnamelong" text=" en la dokumento titolata %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Paĝo %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="la sekcio nomata “%t”"/>
+<l:template name="refsection" text="la sekcio nomata “%t”"/>
+<l:template name="refsect1" text="la sekcio nomata “%t”"/>
+<l:template name="refsect2" text="la sekcio nomata “%t”"/>
+<l:template name="refsect3" text="la sekcio nomata “%t”"/>
+<l:template name="sect1" text="la sekcio nomata “%t”"/>
+<l:template name="sect2" text="la sekcio nomata “%t”"/>
+<l:template name="sect3" text="la sekcio nomata “%t”"/>
+<l:template name="sect4" text="la sekcio nomata “%t”"/>
+<l:template name="sect5" text="la sekcio nomata “%t”"/>
+<l:template name="section" text="la sekcio nomata “%t”"/>
+<l:template name="simplesect" text="la sekcio nomata “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="Apendico %n"/>
+<l:template name="bridgehead" text="Sekcio %n"/>
+<l:template name="chapter" text="Ĉapitro %n"/>
+<l:template name="equation" text="Ekvacio %n"/>
+<l:template name="example" text="Ekzemplo %n"/>
+<l:template name="figure" text="Figuro %n"/>
+<l:template name="part" text="Parto %n"/>
+<l:template name="procedure" text="Procezo %n"/>
+<l:template name="productionset" text="Produktaĵo %n"/>
+<l:template name="qandadiv" text="Demandoj &amp; Respondoj %n"/>
+<l:template name="qandaentry" text="D: %n"/>
+<l:template name="question" text="D: %n"/>
+<l:template name="sect1" text="Sekcio %n"/>
+<l:template name="sect2" text="Sekcio %n"/>
+<l:template name="sect3" text="Sekcio %n"/>
+<l:template name="sect4" text="Sekcio %n"/>
+<l:template name="sect5" text="Sekcio %n"/>
+<l:template name="section" text="Sekcio %n"/>
+<l:template name="table" text="Tabelo %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apendico %n, %t"/>
+<l:template name="bridgehead" text="Sekcio %n, “%t”"/>
+<l:template name="chapter" text="Ĉapitro %n, %t"/>
+<l:template name="equation" text="Ekvacio %n, “%t”"/>
+<l:template name="example" text="Ekzemplo %n, “%t”"/>
+<l:template name="figure" text="Figuro %n, “%t”"/>
+<l:template name="part" text="Parto %n, “%t”"/>
+<l:template name="procedure" text="Procezo %n, “%t”"/>
+<l:template name="productionset" text="Produktaĵo %n, “%t”"/>
+<l:template name="qandadiv" text="Demandoj &amp; Respondoj %n, “%t”"/>
+<l:template name="refsect1" text="la sekcio nomata “%t”"/>
+<l:template name="refsect2" text="la sekcio nomata “%t”"/>
+<l:template name="refsect3" text="la sekcio nomata “%t”"/>
+<l:template name="refsection" text="la sekcio nomata “%t”"/>
+<l:template name="sect1" text="Sekcio %n, “%t”"/>
+<l:template name="sect2" text="Sekcio %n, “%t”"/>
+<l:template name="sect3" text="Sekcio %n, “%t”"/>
+<l:template name="sect4" text="Sekcio %n, “%t”"/>
+<l:template name="sect5" text="Sekcio %n, “%t”"/>
+<l:template name="section" text="Sekcio %n, “%t”"/>
+<l:template name="simplesect" text="la sekcio nomata “%t”"/>
+<l:template name="table" text="Tabelo %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" kaj "/>
+<l:template name="seplast" text=", kaj "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vidu %t."/>
+<l:template name="seealso" text="Vidu ankaŭ %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Cela legantaro: "/>
+<l:template name="MsgLevel" text="Nivelo: "/>
+<l:template name="MsgOrig" text="Origino: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Difino: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="januaro"/>
+<l:template name="February" text="februaro"/>
+<l:template name="March" text="marto"/>
+<l:template name="April" text="aprilo"/>
+<l:template name="May" text="majo"/>
+<l:template name="June" text="junio"/>
+<l:template name="July" text="julio"/>
+<l:template name="August" text="aŭgusto"/>
+<l:template name="September" text="septembro"/>
+<l:template name="October" text="oktobro"/>
+<l:template name="November" text="novembro"/>
+<l:template name="December" text="decembro"/>
+<l:template name="Monday" text="lundo"/>
+<l:template name="Tuesday" text="mardo"/>
+<l:template name="Wednesday" text="merkredo"/>
+<l:template name="Thursday" text="ĵaudo"/>
+<l:template name="Friday" text="vendredo"/>
+<l:template name="Saturday" text="sabato"/>
+<l:template name="Sunday" text="dimanĉo"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="jan"/>
+<l:template name="Feb" text="feb"/>
+<l:template name="Mar" text="mar"/>
+<l:template name="Apr" text="apr"/>
+<l:template name="May" text="maj"/>
+<l:template name="Jun" text="jun"/>
+<l:template name="Jul" text="jul"/>
+<l:template name="Aug" text="aŭg"/>
+<l:template name="Sep" text="sep"/>
+<l:template name="Oct" text="okt"/>
+<l:template name="Nov" text="nov"/>
+<l:template name="Dec" text="dec"/>
+<l:template name="Mon" text="lun"/>
+<l:template name="Tue" text="mar"/>
+<l:template name="Wed" text="mer"/>
+<l:template name="Thu" text="ĵau"/>
+<l:template name="Fri" text="ven"/>
+<l:template name="Sat" text="sab"/>
+<l:template name="Sun" text="dim"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 Esperanto"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (red.)"/>
+<l:template name="primary.many" text=", k.a."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [referencita "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Havebla "/>
+<l:template name="acctoo" text="Ankaŭ havebla "/>
+<l:template name="onwww" text="de la Tut-Tera Teksaĵo"/>
+<l:template name="oninet" text="de la Interreto"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/es.xml b/applications/content/template/docbook/common/es.xml
new file mode 100644
index 0000000..aaa09f1
--- /dev/null
+++ b/applications/content/template/docbook/common/es.xml
@@ -0,0 +1,694 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="es" english-language-name="Spanish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/es.xml -->
+<!-- * -->
+<!-- * E-mail the edited es.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Resumen"/>
+<l:gentext key="abstract" text="resumen"/>
+<l:gentext key="Acknowledgements" text="Agradecimientos"/>
+<l:gentext key="acknowledgements" text="agradecimientos"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="r:"/>
+<l:gentext key="Appendix" text="Apéndice"/>
+<l:gentext key="appendix" text="apéndice"/>
+<l:gentext key="Article" text="Artículo"/>
+<l:gentext key="article" text="artículo"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Bibliografía"/>
+<l:gentext key="bibliography" text="bibliografía"/>
+<l:gentext key="Book" text="Libro"/>
+<l:gentext key="book" text="libro"/>
+<l:gentext key="CAUTION" text="ATENCIÓN"/>
+<l:gentext key="Caution" text="Atención"/>
+<l:gentext key="caution" text="atención"/>
+<l:gentext key="Chapter" text="Capítulo"/>
+<l:gentext key="chapter" text="capítulo"/>
+<l:gentext key="Colophon" text="Colofón"/>
+<l:gentext key="colophon" text="colofón"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="copyright"/>
+<l:gentext key="Dedication" text="Dedicatoria"/>
+<l:gentext key="dedication" text="dedicatoria"/>
+<l:gentext key="Edition" text="Edición"/>
+<l:gentext key="edition" text="edición"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Ecuación"/>
+<l:gentext key="equation" text="ecuación"/>
+<l:gentext key="Example" text="Ejemplo"/>
+<l:gentext key="example" text="ejemplo"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="figura"/>
+<l:gentext key="Glossary" text="Glosario"/>
+<l:gentext key="glossary" text="glosario"/>
+<l:gentext key="GlossSee" text="Ver"/>
+<l:gentext key="glosssee" text="ver"/>
+<l:gentext key="GlossSeeAlso" text="Ver también"/>
+<l:gentext key="glossseealso" text="ver también"/>
+<l:gentext key="IMPORTANT" text="IMPORTANTE"/>
+<l:gentext key="important" text="importante"/>
+<l:gentext key="Important" text="Importante"/>
+<l:gentext key="Index" text="Índice"/>
+<l:gentext key="index" text="índice"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="isbn"/>
+<l:gentext key="LegalNotice" text="Aviso Legal"/>
+<l:gentext key="legalnotice" text="aviso legal"/>
+<l:gentext key="MsgAud" text="Audiencia"/>
+<l:gentext key="msgaud" text="audiencia"/>
+<l:gentext key="MsgLevel" text="Nivel"/>
+<l:gentext key="msglevel" text="nivel"/>
+<l:gentext key="MsgOrig" text="Origen"/>
+<l:gentext key="msgorig" text="origen"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="nota"/>
+<l:gentext key="Part" text="Parte"/>
+<l:gentext key="part" text="parte"/>
+<l:gentext key="Preface" text="Prefacio"/>
+<l:gentext key="preface" text="prefacio"/>
+<l:gentext key="Procedure" text="Procedimiento"/>
+<l:gentext key="procedure" text="procedimiento"/>
+<l:gentext key="ProductionSet" text="Producción"/>
+<l:gentext key="PubDate" text="Fecha de publicación"/>
+<l:gentext key="pubdate" text="fecha de publicación"/>
+<l:gentext key="Published" text="Publicado"/>
+<l:gentext key="published" text="publicado"/>
+<l:gentext key="Publisher" text="Editor"/>
+<l:gentext key="Qandadiv" text="P y R"/>
+<l:gentext key="qandadiv" text="P y R"/>
+<l:gentext key="QandASet" text="Preguntas más frecuentes"/>
+<l:gentext key="Question" text="P:"/>
+<l:gentext key="question" text="p:"/>
+<l:gentext key="RefEntry" text="Página"/>
+<l:gentext key="refentry" text="página"/>
+<l:gentext key="Reference" text="Referencia"/>
+<l:gentext key="reference" text="referencia"/>
+<l:gentext key="References" text="Referencias"/>
+<l:gentext key="RefName" text="Nombre"/>
+<l:gentext key="refname" text="nombre"/>
+<l:gentext key="RefSection" text="Sección de referencia"/>
+<l:gentext key="refsection" text="sección de referencia"/>
+<l:gentext key="RefSynopsisDiv" text="Sinopsis"/>
+<l:gentext key="refsynopsisdiv" text="sinopsis"/>
+<l:gentext key="RevHistory" text="Historial de revisiones"/>
+<l:gentext key="revhistory" text="Historial de revisiones"/>
+<l:gentext key="revision" text="revisión"/>
+<l:gentext key="Revision" text="Revisión"/>
+<l:gentext key="sect1" text="Sección"/>
+<l:gentext key="sect2" text="Sección"/>
+<l:gentext key="sect3" text="Sección"/>
+<l:gentext key="sect4" text="Sección"/>
+<l:gentext key="sect5" text="Sección"/>
+<l:gentext key="section" text="sección"/>
+<l:gentext key="Section" text="Sección"/>
+<l:gentext key="see" text="ver"/>
+<l:gentext key="See" text="Ver"/>
+<l:gentext key="seealso" text="ver también"/>
+<l:gentext key="Seealso" text="Ver también"/>
+<l:gentext key="SeeAlso" text="Ver También"/>
+<l:gentext key="set" text="conjunto"/>
+<l:gentext key="Set" text="Conjunto"/>
+<l:gentext key="setindex" text="índice del conjunto"/>
+<l:gentext key="SetIndex" text="Índice del Conjunto"/>
+<l:gentext key="Sidebar" text="Barra lateral"/>
+<l:gentext key="sidebar" text="barra lateral"/>
+<l:gentext key="step" text="paso"/>
+<l:gentext key="Step" text="Paso"/>
+<l:gentext key="table" text="tabla"/>
+<l:gentext key="Table" text="Tabla"/>
+<l:gentext key="task" text="tarea"/>
+<l:gentext key="Task" text="Tarea"/>
+<l:gentext key="tip" text="sugerencia"/>
+<l:gentext key="TIP" text="SUGERENCIA"/>
+<l:gentext key="Tip" text="Sugerencia"/>
+<l:gentext key="Warning" text="Aviso"/>
+<l:gentext key="warning" text="aviso"/>
+<l:gentext key="WARNING" text="AVISO"/>
+<l:gentext key="and" text="y"/>
+<l:gentext key="or" text="o"/>
+<l:gentext key="by" text="por"/>
+<l:gentext key="Edited" text="Editado"/>
+<l:gentext key="edited" text="editado"/>
+<l:gentext key="Editedby" text="Editado por"/>
+<l:gentext key="editedby" text="editado por"/>
+<l:gentext key="in" text="en"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="notas"/>
+<l:gentext key="Notes" text="Notas"/>
+<l:gentext key="Pgs" text="Págs."/>
+<l:gentext key="pgs" text="págs."/>
+<l:gentext key="Revisedby" text="Revisado por: "/>
+<l:gentext key="revisedby" text="revisado por: "/>
+<l:gentext key="TableNotes" text="Notas de tabla"/>
+<l:gentext key="tablenotes" text="notas de tabla"/>
+<l:gentext key="TableofContents" text="Tabla de contenidos"/>
+<l:gentext key="tableofcontents" text="tabla de contenidos"/>
+<l:gentext key="unexpectedelementname" text="nombre de elemento inesperado"/>
+<l:gentext key="unsupported" text="no soportado"/>
+<l:gentext key="xrefto" text="referencia a"/>
+<l:gentext key="Authors" text="Autores"/>
+<l:gentext key="copyeditor" text="Editor de copiado"/>
+<l:gentext key="graphicdesigner" text="Diseñador gráfico"/>
+<l:gentext key="productioneditor" text="Editor de producción"/>
+<l:gentext key="technicaleditor" text="Editor técnico"/>
+<l:gentext key="translator" text="Traductor"/>
+<l:gentext key="listofequations" text="lista de ecuaciones"/>
+<l:gentext key="ListofEquations" text="Lista de ecuaciones"/>
+<l:gentext key="ListofExamples" text="Lista de ejemplos"/>
+<l:gentext key="listofexamples" text="lista de ejemplos"/>
+<l:gentext key="ListofFigures" text="Lista de figuras"/>
+<l:gentext key="listoffigures" text="lista de figuras"/>
+<l:gentext key="ListofProcedures" text="Lista de procedimientos"/>
+<l:gentext key="listofprocedures" text="lista de procedimientos"/>
+<l:gentext key="listoftables" text="lista de tablas"/>
+<l:gentext key="ListofTables" text="Lista de tablas"/>
+<l:gentext key="ListofUnknown" text="Lista de desconocido"/>
+<l:gentext key="listofunknown" text="lista de desconocido"/>
+<l:gentext key="nav-home" text="Inicio"/>
+<l:gentext key="nav-next" text="Siguiente"/>
+<l:gentext key="nav-next-sibling" text="Avanzar"/>
+<l:gentext key="nav-prev" text="Anterior"/>
+<l:gentext key="nav-prev-sibling" text="Retroceder"/>
+<l:gentext key="nav-up" text="Subir"/>
+<l:gentext key="nav-toc" text="TdC"/>
+<l:gentext key="Draft" text="Borrador"/>
+<l:gentext key="above" text="arriba"/>
+<l:gentext key="below" text="abajo"/>
+<l:gentext key="sectioncalled" text="sección llamada"/>
+<l:gentext key="index symbols" text="Símbolos"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzáéíóúñ"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apéndice %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ecuación %n. %t"/>
+<l:template name="example" text="Ejemplo %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedimiento %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Producción %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabla %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apéndice %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="Apéndice %n"/>
+<l:template name="bridgehead" text="Sección %n"/>
+<l:template name="chapter" text="Capítulo %n"/>
+<l:template name="equation" text="Ecuación %n"/>
+<l:template name="example" text="Ejemplo %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Parte %n"/>
+<l:template name="procedure" text="Procedimiento %n"/>
+<l:template name="productionset" text="Producción %n"/>
+<l:template name="qandadiv" text="P y R %n"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="sect1" text="Sección %n"/>
+<l:template name="sect2" text="Sección %n"/>
+<l:template name="sect3" text="Sección %n"/>
+<l:template name="sect4" text="Sección %n"/>
+<l:template name="sect5" text="Sección %n"/>
+<l:template name="section" text="Sección %n"/>
+<l:template name="table" text="Tabla %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apéndice %n, %t"/>
+<l:template name="bridgehead" text="Sección %n, “%t”"/>
+<l:template name="chapter" text="Capítulo %n, %t"/>
+<l:template name="equation" text="Ecuación %n, “%t”"/>
+<l:template name="example" text="Ejemplo %n, “%t”"/>
+<l:template name="figure" text="Figura %n, “%t”"/>
+<l:template name="part" text="Parte %n, “%t”"/>
+<l:template name="procedure" text="Procedimiento %n, “%t”"/>
+<l:template name="productionset" text="Producción %n, “%t”"/>
+<l:template name="qandadiv" text="P y R %n, “%t”"/>
+<l:template name="refsect1" text="sección llamada “%t”"/>
+<l:template name="refsect2" text="sección llamada “%t”"/>
+<l:template name="refsect3" text="sección llamada “%t”"/>
+<l:template name="refsection" text="sección llamada “%t”"/>
+<l:template name="sect1" text="Sección %n, “%t”"/>
+<l:template name="sect2" text="Sección %n, “%t”"/>
+<l:template name="sect3" text="Sección %n, “%t”"/>
+<l:template name="sect4" text="Sección %n, “%t”"/>
+<l:template name="sect5" text="Sección %n, “%t”"/>
+<l:template name="section" text="Sección %n, “%t”"/>
+<l:template name="simplesect" text="sección llamada “%t”"/>
+<l:template name="table" text="Tabla %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" y "/>
+<l:template name="seplast" text=", y "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Ver %t."/>
+<l:template name="seealso" text="Ver también %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audiencia: "/>
+<l:template name="MsgLevel" text="Nivel: "/>
+<l:template name="MsgOrig" text="Origen: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definición: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Enero"/>
+<l:template name="February" text="Febrero"/>
+<l:template name="March" text="Marzo"/>
+<l:template name="April" text="Abril"/>
+<l:template name="May" text="Mayo"/>
+<l:template name="June" text="Junio"/>
+<l:template name="July" text="Julio"/>
+<l:template name="August" text="Agosto"/>
+<l:template name="September" text="Septiembre"/>
+<l:template name="October" text="Octubre"/>
+<l:template name="November" text="Noviembre"/>
+<l:template name="December" text="Diciembre"/>
+<l:template name="Monday" text="Lunes"/>
+<l:template name="Tuesday" text="Martes"/>
+<l:template name="Wednesday" text="Miércoles"/>
+<l:template name="Thursday" text="Jueves"/>
+<l:template name="Friday" text="Viernes"/>
+<l:template name="Saturday" text="Sábado"/>
+<l:template name="Sunday" text="Domingo"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Ene"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Ago"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Oct"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dic"/>
+<l:template name="Mon" text="Lun"/>
+<l:template name="Tue" text="Mar"/>
+<l:template name="Wed" text="Mie"/>
+<l:template name="Thu" text="Jue"/>
+<l:template name="Fri" text="Vie"/>
+<l:template name="Sat" text="Sab"/>
+<l:template name="Sun" text="Dom"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x040a Spanish (Traditional Sort)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Símbolos</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="1">á</l:l>
+<l:l i="1">Á</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">CH</l:l>
+<l:l i="4">ch</l:l>
+<l:l i="5">D</l:l>
+<l:l i="5">d</l:l>
+<l:l i="6">E</l:l>
+<l:l i="6">e</l:l>
+<l:l i="6">É</l:l>
+<l:l i="6">é</l:l>
+<l:l i="7">F</l:l>
+<l:l i="7">f</l:l>
+<l:l i="8">G</l:l>
+<l:l i="8">g</l:l>
+<l:l i="9">H</l:l>
+<l:l i="9">h</l:l>
+<l:l i="10">I</l:l>
+<l:l i="10">i</l:l>
+<l:l i="10">Í</l:l>
+<l:l i="10">í</l:l>
+<l:l i="11">J</l:l>
+<l:l i="11">j</l:l>
+<l:l i="12">K</l:l>
+<l:l i="12">k</l:l>
+<l:l i="13">L</l:l>
+<l:l i="13">l</l:l>
+<l:l i="14">LL</l:l>
+<l:l i="14">ll</l:l>
+<l:l i="15">M</l:l>
+<l:l i="15">m</l:l>
+<l:l i="16">N</l:l>
+<l:l i="16">n</l:l>
+<l:l i="17">Ñ</l:l>
+<l:l i="17">ñ</l:l>
+<l:l i="18">O</l:l>
+<l:l i="18">o</l:l>
+<l:l i="18">Ó</l:l>
+<l:l i="18">ó</l:l>
+<l:l i="19">P</l:l>
+<l:l i="19">p</l:l>
+<l:l i="20">Q</l:l>
+<l:l i="20">q</l:l>
+<l:l i="21">R</l:l>
+<l:l i="21">r</l:l>
+<l:l i="22">S</l:l>
+<l:l i="22">s</l:l>
+<l:l i="23">T</l:l>
+<l:l i="23">t</l:l>
+<l:l i="24">U</l:l>
+<l:l i="24">u</l:l>
+<l:l i="24">Ú</l:l>
+<l:l i="24">ú</l:l>
+<l:l i="25">V</l:l>
+<l:l i="25">v</l:l>
+<l:l i="26">W</l:l>
+<l:l i="26">w</l:l>
+<l:l i="27">X</l:l>
+<l:l i="27">x</l:l>
+<l:l i="28">Y</l:l>
+<l:l i="28">y</l:l>
+<l:l i="29">Z</l:l>
+<l:l i="29">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/et.xml b/applications/content/template/docbook/common/et.xml
new file mode 100644
index 0000000..e4fd12f
--- /dev/null
+++ b/applications/content/template/docbook/common/et.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="et" english-language-name="Estonian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/et.xml -->
+<!-- * -->
+<!-- * E-mail the edited et.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Ülevaade"/>
+<l:gentext key="abstract" text="Ülevaade"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="V:"/>
+<l:gentext key="answer" text="V:"/>
+<l:gentext key="Appendix" text="Lisa"/>
+<l:gentext key="appendix" text="lisa"/>
+<l:gentext key="Article" text="Artikkel"/>
+<l:gentext key="article" text="Artikkel"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliograafia"/>
+<l:gentext key="bibliography" text="Bibliograafia"/>
+<l:gentext key="Book" text="Raamat"/>
+<l:gentext key="book" text="Raamat"/>
+<l:gentext key="CAUTION" text="ETTEVAATUST"/>
+<l:gentext key="Caution" text="Ettevaatust"/>
+<l:gentext key="caution" text="Ettevaatust"/>
+<l:gentext key="Chapter" text="Peatükk"/>
+<l:gentext key="chapter" text="peatükk"/>
+<l:gentext key="Colophon" text="Lõpumärgis"/>
+<l:gentext key="colophon" text="Lõpumärgis"/>
+<l:gentext key="Copyright" text="Autoriõigus"/>
+<l:gentext key="copyright" text="Autoriõigus"/>
+<l:gentext key="Dedication" text="Pühendus"/>
+<l:gentext key="dedication" text="Pühendus"/>
+<l:gentext key="Edition" text="Väljaanne"/>
+<l:gentext key="edition" text="Väljaanne"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Valem"/>
+<l:gentext key="equation" text="Valem"/>
+<l:gentext key="Example" text="Näide"/>
+<l:gentext key="example" text="Näide"/>
+<l:gentext key="Figure" text="Joonis"/>
+<l:gentext key="figure" text="Joonis"/>
+<l:gentext key="Glossary" text="Sõnastik"/>
+<l:gentext key="glossary" text="Sõnastik"/>
+<l:gentext key="GlossSee" text="Vt."/>
+<l:gentext key="glosssee" text="Vt."/>
+<l:gentext key="GlossSeeAlso" text="Vt. ka"/>
+<l:gentext key="glossseealso" text="Vt. ka"/>
+<l:gentext key="IMPORTANT" text="OLULINE"/>
+<l:gentext key="important" text="Oluline"/>
+<l:gentext key="Important" text="Oluline"/>
+<l:gentext key="Index" text="Aineregister"/>
+<l:gentext key="index" text="Aineregister"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Autoriõiguse märge"/>
+<l:gentext key="legalnotice" text="Autoriõiguse märge"/>
+<l:gentext key="MsgAud" text="Auditoorium"/>
+<l:gentext key="msgaud" text="Auditoorium"/>
+<l:gentext key="MsgLevel" text="Tase"/>
+<l:gentext key="msglevel" text="Tase"/>
+<l:gentext key="MsgOrig" text="Algallikas"/>
+<l:gentext key="msgorig" text="Algallikas"/>
+<l:gentext key="NOTE" text="MÄRKUS"/>
+<l:gentext key="Note" text="Märkus"/>
+<l:gentext key="note" text="Märkus"/>
+<l:gentext key="Part" text="Osa"/>
+<l:gentext key="part" text="Osa"/>
+<l:gentext key="Preface" text="Eessõna"/>
+<l:gentext key="preface" text="Eessõna"/>
+<l:gentext key="Procedure" text="Protseduur"/>
+<l:gentext key="procedure" text="Protseduur"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Avaldatud"/>
+<l:gentext key="published" text="Avaldatud"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="K ja V"/>
+<l:gentext key="qandadiv" text="K ja V"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="K:"/>
+<l:gentext key="question" text="K:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Viide"/>
+<l:gentext key="reference" text="Viide"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Nimi"/>
+<l:gentext key="refname" text="Nimi"/>
+<l:gentext key="RefSection" text="Lõik"/>
+<l:gentext key="refsection" text="Lõik"/>
+<l:gentext key="RefSynopsisDiv" text="Sünopsis"/>
+<l:gentext key="refsynopsisdiv" text="Sünopsis"/>
+<l:gentext key="RevHistory" text="Vigade paranduste ajalugu"/>
+<l:gentext key="revhistory" text="Vigade paranduste ajalugu"/>
+<l:gentext key="revision" text="Vigade parandus"/>
+<l:gentext key="Revision" text="Vigade parandus"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="lõik"/>
+<l:gentext key="Section" text="Sektsioon"/>
+<l:gentext key="see" text="Vt."/>
+<l:gentext key="See" text="Vt."/>
+<l:gentext key="seealso" text="Vt. ka"/>
+<l:gentext key="Seealso" text="Vt. ka"/>
+<l:gentext key="SeeAlso" text="Vt. ka"/>
+<l:gentext key="set" text="Sea"/>
+<l:gentext key="Set" text="Sea"/>
+<l:gentext key="setindex" text="Sea indeks"/>
+<l:gentext key="SetIndex" text="Sea indeks"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="külgriba"/>
+<l:gentext key="step" text="samm"/>
+<l:gentext key="Step" text="Samm"/>
+<l:gentext key="table" text="Tabel"/>
+<l:gentext key="Table" text="Tabel"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Vihje"/>
+<l:gentext key="TIP" text="VIHJE"/>
+<l:gentext key="Tip" text="Vihje"/>
+<l:gentext key="Warning" text="Hoiatus"/>
+<l:gentext key="warning" text="Hoiatus"/>
+<l:gentext key="WARNING" text="HOIATUS"/>
+<l:gentext key="and" text="ja"/>
+<l:gentext key="or" text="või"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Redaktsioon"/>
+<l:gentext key="edited" text="Redaktsioon"/>
+<l:gentext key="Editedby" text="Redaktsiooni autor(id)"/>
+<l:gentext key="editedby" text="Redaktsiooni autor(id)"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Märkused"/>
+<l:gentext key="Notes" text="Märkused"/>
+<l:gentext key="Pgs" text="Lk."/>
+<l:gentext key="pgs" text="Lk."/>
+<l:gentext key="Revisedby" text="Üle vaadanud: "/>
+<l:gentext key="revisedby" text="Üle vaadanud: "/>
+<l:gentext key="TableNotes" text="Märkused"/>
+<l:gentext key="tablenotes" text="Märkused"/>
+<l:gentext key="TableofContents" text="Sisukord"/>
+<l:gentext key="tableofcontents" text="Sisukord"/>
+<l:gentext key="unexpectedelementname" text="Ootamatu elemendi nimi"/>
+<l:gentext key="unsupported" text="toetuseta"/>
+<l:gentext key="xrefto" text="viide"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Valemite nimekiri"/>
+<l:gentext key="ListofEquations" text="Valemite nimekiri"/>
+<l:gentext key="ListofExamples" text="Näidete nimekiri"/>
+<l:gentext key="listofexamples" text="Näidete nimekiri"/>
+<l:gentext key="ListofFigures" text="Jooniste nimekiri"/>
+<l:gentext key="listoffigures" text="Jooniste nimekiri"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Tabelite nimekiri"/>
+<l:gentext key="ListofTables" text="Tabelite nimekiri"/>
+<l:gentext key="ListofUnknown" text="Tundmatute nimekiri"/>
+<l:gentext key="listofunknown" text="Tundmatute nimekiri"/>
+<l:gentext key="nav-home" text="Koju"/>
+<l:gentext key="nav-next" text="Järgmine"/>
+<l:gentext key="nav-next-sibling" text="Kiiresti edasi"/>
+<l:gentext key="nav-prev" text="Eelmine"/>
+<l:gentext key="nav-prev-sibling" text="Kiiresti tagasi"/>
+<l:gentext key="nav-up" text="Üles"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Lisa %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Peatükk %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Valem %n. %t"/>
+<l:template name="example" text="Näide %n. %t"/>
+<l:template name="figure" text="Joonis %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Osa %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Protseduur %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabel %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Lisa %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Peatükk %n. %t"/>
+<l:template name="part" text="Osa %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="V: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="K: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="K: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="V: %n"/>
+<l:template name="appendix" text="Lisa %n"/>
+<l:template name="bridgehead" text="Sektsioon %n"/>
+<l:template name="chapter" text="Peatükk %n"/>
+<l:template name="equation" text="Valem %n"/>
+<l:template name="example" text="Näide %n"/>
+<l:template name="figure" text="Joonis %n"/>
+<l:template name="part" text="Osa %n"/>
+<l:template name="procedure" text="Protseduur %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="K ja V %n"/>
+<l:template name="qandaentry" text="K: %n"/>
+<l:template name="question" text="K: %n"/>
+<l:template name="sect1" text="Sektsioon %n"/>
+<l:template name="sect2" text="Sektsioon %n"/>
+<l:template name="sect3" text="Sektsioon %n"/>
+<l:template name="sect4" text="Sektsioon %n"/>
+<l:template name="sect5" text="Sektsioon %n"/>
+<l:template name="section" text="Sektsioon %n"/>
+<l:template name="table" text="Tabel %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Lisa %n, %t"/>
+<l:template name="bridgehead" text="Sektsioon %n, “%t”"/>
+<l:template name="chapter" text="Peatükk %n, %t"/>
+<l:template name="equation" text="Valem %n, “%t”"/>
+<l:template name="example" text="Näide %n, “%t”"/>
+<l:template name="figure" text="Joonis %n, “%t”"/>
+<l:template name="part" text="Osa %n, “%t”"/>
+<l:template name="procedure" text="Protseduur %n, “%t”"/>
+<l:template name="productionset" text="Production %n, “%t”"/>
+<l:template name="qandadiv" text="K ja V %n, “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="sect1" text="Sektsioon %n, “%t”"/>
+<l:template name="sect2" text="Sektsioon %n, “%t”"/>
+<l:template name="sect3" text="Sektsioon %n, “%t”"/>
+<l:template name="sect4" text="Sektsioon %n, “%t”"/>
+<l:template name="sect5" text="Sektsioon %n, “%t”"/>
+<l:template name="section" text="Sektsioon %n, “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+<l:template name="table" text="Tabel %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ja "/>
+<l:template name="seplast" text=", ja "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vt. %t."/>
+<l:template name="seealso" text="Vt. ka %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Auditoorium: "/>
+<l:template name="MsgLevel" text="Tase: "/>
+<l:template name="MsgOrig" text="Algallikas: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0425 Estonian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/eu.xml b/applications/content/template/docbook/common/eu.xml
new file mode 100644
index 0000000..81f8374
--- /dev/null
+++ b/applications/content/template/docbook/common/eu.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="eu" english-language-name="Basque">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/eu.xml -->
+<!-- * -->
+<!-- * E-mail the edited eu.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Laburpena"/>
+<l:gentext key="abstract" text="Laburpena"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="E:"/>
+<l:gentext key="answer" text="E:"/>
+<l:gentext key="Appendix" text="Eranskina"/>
+<l:gentext key="appendix" text="eranskina"/>
+<l:gentext key="Article" text="Artikulua"/>
+<l:gentext key="article" text="Artikulua"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="Bibliografia"/>
+<l:gentext key="Book" text="Liburua"/>
+<l:gentext key="book" text="Liburua"/>
+<l:gentext key="CAUTION" text="KONTUZ"/>
+<l:gentext key="Caution" text="Kontuz"/>
+<l:gentext key="caution" text="Kontuz"/>
+<l:gentext key="Chapter" text="Atala"/>
+<l:gentext key="chapter" text="atala"/>
+<l:gentext key="Colophon" text="Azken ohar"/>
+<l:gentext key="colophon" text="Azken ohar"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Eskaintza"/>
+<l:gentext key="dedication" text="Eskaintza"/>
+<l:gentext key="Edition" text="Edizioa"/>
+<l:gentext key="edition" text="Edizioa"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Ekuazioa"/>
+<l:gentext key="equation" text="Ekuazioa"/>
+<l:gentext key="Example" text="Adibidea"/>
+<l:gentext key="example" text="Adibidea"/>
+<l:gentext key="Figure" text="Irudia"/>
+<l:gentext key="figure" text="Irudia"/>
+<l:gentext key="Glossary" text="Glosarioa"/>
+<l:gentext key="glossary" text="Glosarioa"/>
+<l:gentext key="GlossSee" text="Ikus"/>
+<l:gentext key="glosssee" text="Ikus"/>
+<l:gentext key="GlossSeeAlso" text="Ikus baita ere"/>
+<l:gentext key="glossseealso" text="Ikus baita ere"/>
+<l:gentext key="IMPORTANT" text="GARRANTZITSUA"/>
+<l:gentext key="important" text="Garrantzitsua"/>
+<l:gentext key="Important" text="Garrantzitsua"/>
+<l:gentext key="Index" text="Indizea"/>
+<l:gentext key="index" text="Indizea"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Legezko abisua"/>
+<l:gentext key="legalnotice" text="Legezko abisua"/>
+<l:gentext key="MsgAud" text="Audientzia"/>
+<l:gentext key="msgaud" text="Audientzia"/>
+<l:gentext key="MsgLevel" text="Maila"/>
+<l:gentext key="msglevel" text="Maila"/>
+<l:gentext key="MsgOrig" text="Jatorria"/>
+<l:gentext key="msgorig" text="Jatorria"/>
+<l:gentext key="NOTE" text="OHARRA"/>
+<l:gentext key="Note" text="Oharra"/>
+<l:gentext key="note" text="Oharra"/>
+<l:gentext key="Part" text="Zatia"/>
+<l:gentext key="part" text="Zatia"/>
+<l:gentext key="Preface" text="Hitzaurrea"/>
+<l:gentext key="preface" text="Hitzaurrea"/>
+<l:gentext key="Procedure" text="Prozedura"/>
+<l:gentext key="procedure" text="Prozedura"/>
+<l:gentext key="ProductionSet" text="Ekoizpena"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Argitaratua"/>
+<l:gentext key="published" text="Argitaratua"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Galdera eta E"/>
+<l:gentext key="qandadiv" text="Galdera eta E"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Galdera"/>
+<l:gentext key="question" text="galdera"/>
+<l:gentext key="RefEntry" text="Sarrera"/>
+<l:gentext key="refentry" text="Sarrera"/>
+<l:gentext key="Reference" text="Erreferentzia"/>
+<l:gentext key="reference" text="Erreferentzia"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Izena"/>
+<l:gentext key="refname" text="Izena"/>
+<l:gentext key="RefSection" text="Sekzioa"/>
+<l:gentext key="refsection" text="sekzioa"/>
+<l:gentext key="RefSynopsisDiv" text="Laburpena"/>
+<l:gentext key="refsynopsisdiv" text="Laburpena"/>
+<l:gentext key="RevHistory" text="Berrikuspenaren historia"/>
+<l:gentext key="revhistory" text="Berrikuspenaren historia"/>
+<l:gentext key="revision" text="Berrikuspena"/>
+<l:gentext key="Revision" text="Berrikuspena"/>
+<l:gentext key="sect1" text="Atala"/>
+<l:gentext key="sect2" text="Atala"/>
+<l:gentext key="sect3" text="Atala"/>
+<l:gentext key="sect4" text="Atala"/>
+<l:gentext key="sect5" text="Atala"/>
+<l:gentext key="section" text="Atala"/>
+<l:gentext key="Section" text="Atala"/>
+<l:gentext key="see" text="Ikus"/>
+<l:gentext key="See" text="Ikus"/>
+<l:gentext key="seealso" text="Ikus baita ere"/>
+<l:gentext key="Seealso" text="Ikus baita ere"/>
+<l:gentext key="SeeAlso" text="Ikus baita ere"/>
+<l:gentext key="set" text="Konfiguratu"/>
+<l:gentext key="Set" text="Konfiguratu"/>
+<l:gentext key="setindex" text="Konfiguratu indizea"/>
+<l:gentext key="SetIndex" text="Konfiguratu indizea"/>
+<l:gentext key="Sidebar" text="Alboko barra"/>
+<l:gentext key="sidebar" text="alboko barra"/>
+<l:gentext key="step" text="urratsa"/>
+<l:gentext key="Step" text="Urratsa"/>
+<l:gentext key="table" text="Taula"/>
+<l:gentext key="Table" text="Taula"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Iradokizuna"/>
+<l:gentext key="TIP" text="IRADOKIZUNA"/>
+<l:gentext key="Tip" text="Iradokizuna"/>
+<l:gentext key="Warning" text="Abisua"/>
+<l:gentext key="warning" text="Abisua"/>
+<l:gentext key="WARNING" text="ABISUA"/>
+<l:gentext key="and" text="eta"/>
+<l:gentext key="or" text="edo"/>
+<l:gentext key="by" text="Honek"/>
+<l:gentext key="Edited" text="editatua"/>
+<l:gentext key="edited" text="editatua"/>
+<l:gentext key="Editedby" text="Honek editatua"/>
+<l:gentext key="editedby" text="Honek editatua"/>
+<l:gentext key="in" text="non"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Oharrak"/>
+<l:gentext key="Notes" text="Oharrak"/>
+<l:gentext key="Pgs" text="Orr."/>
+<l:gentext key="pgs" text="Orr."/>
+<l:gentext key="Revisedby" text="Berrikuspena: "/>
+<l:gentext key="revisedby" text="Berrikuspena: "/>
+<l:gentext key="TableNotes" text="Oharrak"/>
+<l:gentext key="tablenotes" text="Oharrak"/>
+<l:gentext key="TableofContents" text="Edukien aurkibidea"/>
+<l:gentext key="tableofcontents" text="Edukien aurkibidea"/>
+<l:gentext key="unexpectedelementname" text="Ustekabeko elemetu-izena"/>
+<l:gentext key="unsupported" text="onartzen ez den"/>
+<l:gentext key="xrefto" text="xref honi"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Ekuazioen zerrenda"/>
+<l:gentext key="ListofEquations" text="Ekuazioen zerrenda"/>
+<l:gentext key="ListofExamples" text="Adibideen zerrenda"/>
+<l:gentext key="listofexamples" text="Adibideen zerrenda"/>
+<l:gentext key="ListofFigures" text="Irudien zerrenda"/>
+<l:gentext key="listoffigures" text="Irudien zerrenda"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Taulen zerrenda"/>
+<l:gentext key="ListofTables" text="Taulen zerrenda"/>
+<l:gentext key="ListofUnknown" text="Ezezagunen zerrenda"/>
+<l:gentext key="listofunknown" text="Ezazagunen zerrenda"/>
+<l:gentext key="nav-home" text="Etxea"/>
+<l:gentext key="nav-next" text="Hurrengoa"/>
+<l:gentext key="nav-next-sibling" text="Aurreratze azkarra"/>
+<l:gentext key="nav-prev" text="Aurrekoa"/>
+<l:gentext key="nav-prev-sibling" text="Atzeratze azkarra"/>
+<l:gentext key="nav-up" text="Gora"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Zirriborroa"/>
+<l:gentext key="above" text="goian"/>
+<l:gentext key="below" text="behean"/>
+<l:gentext key="sectioncalled" text="honela deritzon atala"/>
+<l:gentext key="index symbols" text="Ikurrak"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Eranskina %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Atala %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ekuazioa %n. %t"/>
+<l:template name="example" text="Adibidea %n. %t"/>
+<l:template name="figure" text="Irudia %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Zatia %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Prozedura %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Ekoizpena %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Taula %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Eranskina %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Atala %n. %t"/>
+<l:template name="part" text="Zatia %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="E: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Galdera %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Galdera %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="honela deritzon atala “%t”"/>
+<l:template name="refsection" text="honela deritzon atala “%t”"/>
+<l:template name="refsect1" text="honela deritzon atala “%t”"/>
+<l:template name="refsect2" text="honela deritzon atala “%t”"/>
+<l:template name="refsect3" text="honela deritzon atala “%t”"/>
+<l:template name="sect1" text="honela deritzon atala “%t”"/>
+<l:template name="sect2" text="honela deritzon atala “%t”"/>
+<l:template name="sect3" text="honela deritzon atala “%t”"/>
+<l:template name="sect4" text="honela deritzon atala “%t”"/>
+<l:template name="sect5" text="honela deritzon atala “%t”"/>
+<l:template name="section" text="honela deritzon atala “%t”"/>
+<l:template name="simplesect" text="honela deritzon atala “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="E: %n"/>
+<l:template name="appendix" text="Eranskina %n"/>
+<l:template name="bridgehead" text="Atala %n"/>
+<l:template name="chapter" text="Atala %n"/>
+<l:template name="equation" text="Ekuazioa %n"/>
+<l:template name="example" text="Adibidea %n"/>
+<l:template name="figure" text="Irudia %n"/>
+<l:template name="part" text="Zatia %n"/>
+<l:template name="procedure" text="Prozedura %n"/>
+<l:template name="productionset" text="Ekoizpena %n"/>
+<l:template name="qandadiv" text="Galdera eta E %n"/>
+<l:template name="qandaentry" text="Galdera %n"/>
+<l:template name="question" text="Galdera %n"/>
+<l:template name="sect1" text="Atala %n"/>
+<l:template name="sect2" text="Atala %n"/>
+<l:template name="sect3" text="Atala %n"/>
+<l:template name="sect4" text="Atala %n"/>
+<l:template name="sect5" text="Atala %n"/>
+<l:template name="section" text="Atala %n"/>
+<l:template name="table" text="Taula %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Eranskina %n, %t"/>
+<l:template name="bridgehead" text="Atala %n, “%t”"/>
+<l:template name="chapter" text="Atala %n, %t"/>
+<l:template name="equation" text="Ekuazioa %n, “%t”"/>
+<l:template name="example" text="Adibidea %n, “%t”"/>
+<l:template name="figure" text="Irudia %n, “%t”"/>
+<l:template name="part" text="Zatia %n, “%t”"/>
+<l:template name="procedure" text="Prozedura %n, “%t”"/>
+<l:template name="productionset" text="Ekoizpena %n, “%t”"/>
+<l:template name="qandadiv" text="Galdera eta E %n, “%t”"/>
+<l:template name="refsect1" text="honela deritzon atala “%t”"/>
+<l:template name="refsect2" text="honela deritzon atala “%t”"/>
+<l:template name="refsect3" text="honela deritzon atala “%t”"/>
+<l:template name="refsection" text="honela deritzon atala “%t”"/>
+<l:template name="sect1" text="Atala %n, “%t”"/>
+<l:template name="sect2" text="Atala %n, “%t”"/>
+<l:template name="sect3" text="Atala %n, “%t”"/>
+<l:template name="sect4" text="Atala %n, “%t”"/>
+<l:template name="sect5" text="Atala %n, “%t”"/>
+<l:template name="section" text="Atala %n, “%t”"/>
+<l:template name="simplesect" text="honela deritzon atala “%t”"/>
+<l:template name="table" text="Taula %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" eta "/>
+<l:template name="seplast" text=", eta "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Ikus %t."/>
+<l:template name="seealso" text="Ikus baita ere %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audientzia: "/>
+<l:template name="MsgLevel" text="Maila: "/>
+<l:template name="MsgOrig" text="Jatorria: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x042d Basque"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/fa.xml b/applications/content/template/docbook/common/fa.xml
new file mode 100644
index 0000000..bc4d417
--- /dev/null
+++ b/applications/content/template/docbook/common/fa.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="fa" english-language-name="Farsi">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/fa.xml -->
+<!-- * -->
+<!-- * E-mail the edited fa.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="چكيده"/>
+<l:gentext key="abstract" text="چكيده"/>
+<l:gentext key="Acknowledgements" text="تقدیرنامه ها"/>
+<l:gentext key="acknowledgements" text="تقدیرنامه ها"/>
+<l:gentext key="Answer" text="ج:"/>
+<l:gentext key="answer" text="ج:"/>
+<l:gentext key="Appendix" text="پيوست"/>
+<l:gentext key="appendix" text="پيوست"/>
+<l:gentext key="Article" text="مقاله"/>
+<l:gentext key="article" text="مقاله"/>
+<l:gentext key="Author" text="نویسنده"/>
+<l:gentext key="Bibliography" text="كتاب‌شناسی"/>
+<l:gentext key="bibliography" text="كتاب‌شناسی"/>
+<l:gentext key="Book" text="كتاب"/>
+<l:gentext key="book" text="كتاب"/>
+<l:gentext key="CAUTION" text="احتياط"/>
+<l:gentext key="Caution" text="احتياط"/>
+<l:gentext key="caution" text="احتياط"/>
+<l:gentext key="Chapter" text="فصل"/>
+<l:gentext key="chapter" text="فصل"/>
+<l:gentext key="Colophon" text="درباره‌ی نشريه"/>
+<l:gentext key="colophon" text="درباره‌ی نشريه"/>
+<l:gentext key="Copyright" text="حق طبع ونشر"/>
+<l:gentext key="copyright" text="حق طبع ونشر"/>
+<l:gentext key="Dedication" text="اهداء"/>
+<l:gentext key="dedication" text="اهداء"/>
+<l:gentext key="Edition" text="ويرايش"/>
+<l:gentext key="edition" text="ويرايش"/>
+<l:gentext key="Editor" text="ويرايش"/>
+<l:gentext key="Equation" text="معادله"/>
+<l:gentext key="equation" text="معادله"/>
+<l:gentext key="Example" text="مثال"/>
+<l:gentext key="example" text="مثال"/>
+<l:gentext key="Figure" text="شكل"/>
+<l:gentext key="figure" text="شكل"/>
+<l:gentext key="Glossary" text="واژه‌نامه"/>
+<l:gentext key="glossary" text="واژه‌نامه"/>
+<l:gentext key="GlossSee" text="ببیند"/>
+<l:gentext key="glosssee" text="ببیند"/>
+<l:gentext key="GlossSeeAlso" text="همچنین ببیند"/>
+<l:gentext key="glossseealso" text="همچنین ببیند"/>
+<l:gentext key="IMPORTANT" text="مهم"/>
+<l:gentext key="important" text="مهم"/>
+<l:gentext key="Important" text="مهم"/>
+<l:gentext key="Index" text="راهنما"/>
+<l:gentext key="index" text="راهنما"/>
+<l:gentext key="ISBN" text="شابک"/>
+<l:gentext key="isbn" text="شابک"/>
+<l:gentext key="LegalNotice" text="اخطار قانونی"/>
+<l:gentext key="legalnotice" text="اخطار قانونی"/>
+<l:gentext key="MsgAud" text="شنودگان"/>
+<l:gentext key="msgaud" text="شنودگان"/>
+<l:gentext key="MsgLevel" text="سطح پیام"/>
+<l:gentext key="msglevel" text="سطح پیام"/>
+<l:gentext key="MsgOrig" text="اصل"/>
+<l:gentext key="msgorig" text="اصل"/>
+<l:gentext key="NOTE" text="ياداشت"/>
+<l:gentext key="Note" text="ياداشت"/>
+<l:gentext key="note" text="ياداشت"/>
+<l:gentext key="Part" text="بخش"/>
+<l:gentext key="part" text="بخش"/>
+<l:gentext key="Preface" text="ديباچه"/>
+<l:gentext key="preface" text="ديباچه"/>
+<l:gentext key="Procedure" text="رويه"/>
+<l:gentext key="procedure" text="رويه"/>
+<l:gentext key="ProductionSet" text="توليد"/>
+<l:gentext key="PubDate" text="تاریخ انتشار"/>
+<l:gentext key="pubdate" text="تاریخ انتشار"/>
+<l:gentext key="Published" text="منتشر‌شده"/>
+<l:gentext key="published" text="منتشر‌شده"/>
+<l:gentext key="Publisher" text="منتشر‌شده"/>
+<l:gentext key="Qandadiv" text="پرسش و‌ پاسخ"/>
+<l:gentext key="qandadiv" text="پرسش و پاسخ"/>
+<l:gentext key="QandASet" text="سوالات متداول"/>
+<l:gentext key="Question" text=":پرسش"/>
+<l:gentext key="question" text=":پرسش"/>
+<l:gentext key="RefEntry" text="فقره"/>
+<l:gentext key="refentry" text="فقره"/>
+<l:gentext key="Reference" text="ارجاع"/>
+<l:gentext key="reference" text="ارجاع"/>
+<l:gentext key="References" text="ارجاع"/>
+<l:gentext key="RefName" text="نام"/>
+<l:gentext key="refname" text="نام"/>
+<l:gentext key="RefSection" text="قسمت"/>
+<l:gentext key="refsection" text="قسمت"/>
+<l:gentext key="RefSynopsisDiv" text="مختصر"/>
+<l:gentext key="refsynopsisdiv" text="مختصر"/>
+<l:gentext key="RevHistory" text="تاريخ بازبينی"/>
+<l:gentext key="revhistory" text="تاريخ بازبينی"/>
+<l:gentext key="revision" text="بازبينی"/>
+<l:gentext key="Revision" text="باز بينی"/>
+<l:gentext key="sect1" text="قسمت"/>
+<l:gentext key="sect2" text="قسمت"/>
+<l:gentext key="sect3" text="قسمت"/>
+<l:gentext key="sect4" text="قسمت"/>
+<l:gentext key="sect5" text="قسمت"/>
+<l:gentext key="section" text="قسمت"/>
+<l:gentext key="Section" text="قسمت"/>
+<l:gentext key="see" text="ببیند"/>
+<l:gentext key="See" text="ببیند"/>
+<l:gentext key="seealso" text="همچنین ببیند"/>
+<l:gentext key="Seealso" text="همچنین ببیند"/>
+<l:gentext key="SeeAlso" text="همچنین ببیند"/>
+<l:gentext key="set" text="مجموعه"/>
+<l:gentext key="Set" text="مجموعه"/>
+<l:gentext key="setindex" text="راهنمای مجموعه"/>
+<l:gentext key="SetIndex" text="راهنمای مجموعه"/>
+<l:gentext key="Sidebar" text="نوار کناری"/>
+<l:gentext key="sidebar" text="نوار کناری"/>
+<l:gentext key="step" text="گام"/>
+<l:gentext key="Step" text="گام"/>
+<l:gentext key="table" text="جدول"/>
+<l:gentext key="Table" text="جدول"/>
+<l:gentext key="task" text="وظیفه"/>
+<l:gentext key="Task" text="وظیفه"/>
+<l:gentext key="tip" text="نکته"/>
+<l:gentext key="TIP" text="نکته"/>
+<l:gentext key="Tip" text="نکته"/>
+<l:gentext key="Warning" text="هشدار"/>
+<l:gentext key="warning" text="هشدار"/>
+<l:gentext key="WARNING" text="هشدار"/>
+<l:gentext key="and" text="و"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="توسط"/>
+<l:gentext key="Edited" text="ویرایش شده"/>
+<l:gentext key="edited" text="ویرایش شده"/>
+<l:gentext key="Editedby" text="ویرایستار"/>
+<l:gentext key="editedby" text="ویرایستار"/>
+<l:gentext key="in" text="در"/>
+<l:gentext key="lastlistcomma" text="،"/>
+<l:gentext key="listcomma" text="،"/>
+<l:gentext key="notes" text="ياداشت‌ها"/>
+<l:gentext key="Notes" text="ياداشت‌ها"/>
+<l:gentext key="Pgs" text="صفحه"/>
+<l:gentext key="pgs" text="صفحه"/>
+<l:gentext key="Revisedby" text=" :بازبينی شده بوسیله‌ی"/>
+<l:gentext key="revisedby" text=" :بازبينس شده بوسیله‌ی"/>
+<l:gentext key="TableNotes" text="ياداشت‌ها"/>
+<l:gentext key="tablenotes" text="ياداشت‌ها"/>
+<l:gentext key="TableofContents" text="فهرست"/>
+<l:gentext key="tableofcontents" text="فهرست"/>
+<l:gentext key="unexpectedelementname" text="نام عنصرغيرمنتظره"/>
+<l:gentext key="unsupported" text="پشتيبانی نشده"/>
+<l:gentext key="xrefto" text="ارجاع به"/>
+<l:gentext key="Authors" text="نویسندگان"/>
+<l:gentext key="copyeditor" text="اصلاح کننده کپی"/>
+<l:gentext key="graphicdesigner" text="طراحی گرافیکی"/>
+<l:gentext key="productioneditor" text="اصلاح کننده محصول"/>
+<l:gentext key="technicaleditor" text="اصلاح کننده تکنیکی"/>
+<l:gentext key="translator" text="مترجم"/>
+<l:gentext key="listofequations" text="فهرست معادلات"/>
+<l:gentext key="ListofEquations" text="فهرست معادلات"/>
+<l:gentext key="ListofExamples" text="فهرست امثال"/>
+<l:gentext key="listofexamples" text="فهرست امثال"/>
+<l:gentext key="ListofFigures" text="فهرست اشکال"/>
+<l:gentext key="listoffigures" text="فهرست اشکال"/>
+<l:gentext key="ListofProcedures" text="فهرست روند‌ها"/>
+<l:gentext key="listofprocedures" text="فهرست روند‌ها"/>
+<l:gentext key="listoftables" text="فهرست جدول‌ها"/>
+<l:gentext key="ListofTables" text="فهرست جدول‌ها"/>
+<l:gentext key="ListofUnknown" text="فهرست نادانسته‌ها"/>
+<l:gentext key="listofunknown" text="فهرست نادانسته‌ها"/>
+<l:gentext key="nav-home" text="خانه"/>
+<l:gentext key="nav-next" text="بعدی"/>
+<l:gentext key="nav-next-sibling" text="هم‌نيای بعدی"/>
+<l:gentext key="nav-prev" text="قبلی"/>
+<l:gentext key="nav-prev-sibling" text="هم‌نيای قبلی"/>
+<l:gentext key="nav-up" text="بالا"/>
+<l:gentext key="nav-toc" text="فهرست"/>
+<l:gentext key="Draft" text="پيش‌نويس"/>
+<l:gentext key="above" text="در‌بالا"/>
+<l:gentext key="below" text="در‌پایین"/>
+<l:gentext key="sectioncalled" text="بخشی بنام"/>
+<l:gentext key="index symbols" text="سمبل‌های راهنما"/>
+<l:gentext key="writing-mode" text="rl-tb"/>
+<l:gentext key="lowercase.alpha" text="ا ب پ ت ث ج چ ح خ د ذ ر ز ژس ش ص ض ع غ ف ق ک گ ل م ن و ه ی"/>
+<l:gentext key="uppercase.alpha" text="ا ب پ ت ث ج چ ح خ د ذ ر ز ژس ش ص ض ع غ ف ق ک گ ل م ن و ه ی"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="&#10;      پيوست %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="&#10;      فصل %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="&#10;      معادله %n. %t"/>
+<l:template name="example" text="&#10;      مثال %n. %t"/>
+<l:template name="figure" text="&#10;      شكل %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="&#10;      بخش %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="&#10;      رويه %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="&#10;      توليد %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="&#10;      جدول %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="&#10;      پيوست %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="&#10;      فصل %n. %t"/>
+<l:template name="part" text="&#10;      بخش %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="&#10;      ج: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="&#10;      :پرسش %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="&#10;      :پرسش %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (%p صفحه‌ی)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(%p صفحه‌ی)"/>
+<l:template name="docname" text=" %oدر "/>
+<l:template name="docnamelong" text="%o در مستندی بنام "/>
+<l:template name="pageabbrev" text="(%p ص)"/>
+<l:template name="Page" text="%p صفحه‌ی"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="refsection" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="refsect1" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="refsect2" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="refsect3" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="sect1" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="sect2" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="sect3" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="sect4" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="sect5" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="section" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="simplesect" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="&#10;      ج: %n"/>
+<l:template name="appendix" text="&#10;      پيوست %n"/>
+<l:template name="bridgehead" text="&#10;      قسمت %n"/>
+<l:template name="chapter" text="&#10;      فصل %n"/>
+<l:template name="equation" text="&#10;      معادله %n"/>
+<l:template name="example" text="&#10;      مثال %n"/>
+<l:template name="figure" text="&#10;      شكل %n"/>
+<l:template name="part" text="&#10;      بخش %n"/>
+<l:template name="procedure" text="&#10;      رويه %n"/>
+<l:template name="productionset" text="&#10;      توليد %n"/>
+<l:template name="qandadiv" text="&#10;      پرسش و‌ پاسخ %n"/>
+<l:template name="qandaentry" text="&#10;      :پرسش %n"/>
+<l:template name="question" text="&#10;      :پرسش %n"/>
+<l:template name="sect1" text="&#10;      قسمت %n"/>
+<l:template name="sect2" text="&#10;      قسمت %n"/>
+<l:template name="sect3" text="&#10;      قسمت %n"/>
+<l:template name="sect4" text="&#10;      قسمت %n"/>
+<l:template name="sect5" text="&#10;      قسمت %n"/>
+<l:template name="section" text="&#10;      قسمت %n"/>
+<l:template name="table" text="&#10;      جدول %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="&#10;      پيوست %n, %t"/>
+<l:template name="bridgehead" text="&#10;      قسمت %n, “%t”&#10;    "/>
+<l:template name="chapter" text="&#10;      فصل %n, %t"/>
+<l:template name="equation" text="&#10;      معادله %n, “%t”&#10;    "/>
+<l:template name="example" text="&#10;      مثال %n, “%t”&#10;    "/>
+<l:template name="figure" text="&#10;      شكل %n, “%t”&#10;    "/>
+<l:template name="part" text="&#10;      بخش %n, “%t”&#10;    "/>
+<l:template name="procedure" text="&#10;      رويه %n, “%t”&#10;    "/>
+<l:template name="productionset" text="&#10;      توليد %n, “%t”&#10;    "/>
+<l:template name="qandadiv" text="&#10;      پرسش و‌ پاسخ %n, “%t”&#10;    "/>
+<l:template name="refsect1" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="refsect2" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="refsect3" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="refsection" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="sect1" text="&#10;      قسمت %n, “%t”&#10;    "/>
+<l:template name="sect2" text="&#10;      قسمت %n, “%t”&#10;    "/>
+<l:template name="sect3" text="&#10;      قسمت %n, “%t”&#10;    "/>
+<l:template name="sect4" text="&#10;      قسمت %n, “%t”&#10;    "/>
+<l:template name="sect5" text="&#10;      قسمت %n, “%t”&#10;    "/>
+<l:template name="section" text="&#10;      قسمت %n, “%t”&#10;    "/>
+<l:template name="simplesect" text="&#10;      بخشی بنام&#10;      “%t”&#10;    "/>
+<l:template name="table" text="&#10;      جدول %n, “%t”&#10;    "/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text="&#10;      ،&#10;    "/>
+<l:template name="sep2" text="&#10;      و&#10;    "/>
+<l:template name="seplast" text="&#10;      ،&#10;      و&#10;    "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text=" %t ببیند."/>
+<l:template name="seealso" text="%t همچنین ببیند."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="&#10;      شنودگان: "/>
+<l:template name="MsgLevel" text="&#10;      سطح پیام: "/>
+<l:template name="MsgOrig" text="&#10;      اصل: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[تعریف "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="ژانويه"/>
+<l:template name="February" text="فوريه"/>
+<l:template name="March" text="مارس"/>
+<l:template name="April" text="اوريل"/>
+<l:template name="May" text="مه"/>
+<l:template name="June" text="ژوئن"/>
+<l:template name="July" text="ژوئیه"/>
+<l:template name="August" text="اوت"/>
+<l:template name="September" text="سپتامبر"/>
+<l:template name="October" text="اكتبر"/>
+<l:template name="November" text="نوامبر"/>
+<l:template name="December" text="دسامبر"/>
+<l:template name="Monday" text="دوشنبه"/>
+<l:template name="Tuesday" text="سه شنبه"/>
+<l:template name="Wednesday" text="چهار‌شنبه"/>
+<l:template name="Thursday" text="پنج‌شنبه"/>
+<l:template name="Friday" text="جمعه"/>
+<l:template name="Saturday" text="شنبه"/>
+<l:template name="Sunday" text="يك‌شنبه"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="ژانويه"/>
+<l:template name="Feb" text="فوريه"/>
+<l:template name="Mar" text="مارس"/>
+<l:template name="Apr" text="اوريل"/>
+<l:template name="May" text="مه"/>
+<l:template name="Jun" text="ژوئن"/>
+<l:template name="Jul" text="ژوئيه"/>
+<l:template name="Aug" text="اوت"/>
+<l:template name="Sep" text="سپتامبر"/>
+<l:template name="Oct" text="اكتبر"/>
+<l:template name="Nov" text="نوامبر"/>
+<l:template name="Dec" text="دسامبر"/>
+<l:template name="Mon" text="دو‌شنبه"/>
+<l:template name="Tue" text="سه‌شنبه"/>
+<l:template name="Wed" text="چهار‌شنبه"/>
+<l:template name="Thu" text="پنج‌شنبه"/>
+<l:template name="Fri" text="جمعه"/>
+<l:template name="Sat" text="شنبه"/>
+<l:template name="Sun" text="يك‌شنبه"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0429 Farsi"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">سمبل‌های راهنم</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/fi.xml b/applications/content/template/docbook/common/fi.xml
new file mode 100644
index 0000000..6183ad7
--- /dev/null
+++ b/applications/content/template/docbook/common/fi.xml
@@ -0,0 +1,688 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="fi" english-language-name="Finnish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/fi.xml -->
+<!-- * -->
+<!-- * E-mail the edited fi.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Tiivistelmä"/>
+<l:gentext key="abstract" text="tiivistelmä"/>
+<l:gentext key="Acknowledgements" text="Kiitokset"/>
+<l:gentext key="acknowledgements" text="kiitokset"/>
+<l:gentext key="Answer" text="V:"/>
+<l:gentext key="answer" text="v:"/>
+<l:gentext key="Appendix" text="Liite"/>
+<l:gentext key="appendix" text="liite"/>
+<l:gentext key="Article" text="Artikkeli"/>
+<l:gentext key="article" text="artikkeli"/>
+<l:gentext key="Author" text="Tekijä"/>
+<l:gentext key="Bibliography" text="Lähteet"/>
+<l:gentext key="bibliography" text="lähteet"/>
+<l:gentext key="Book" text="Kirja"/>
+<l:gentext key="book" text="kirja"/>
+<l:gentext key="CAUTION" text="VARO"/>
+<l:gentext key="Caution" text="Varo"/>
+<l:gentext key="caution" text="varo"/>
+<l:gentext key="Chapter" text="Luku"/>
+<l:gentext key="chapter" text="luku"/>
+<l:gentext key="Colophon" text="Tuontantotavat"/>
+<l:gentext key="colophon" text="tuontantotavat"/>
+<l:gentext key="Copyright" text="Tekijänoikeudet"/>
+<l:gentext key="copyright" text="tekijänoikeudet"/>
+<l:gentext key="Dedication" text="Omistus"/>
+<l:gentext key="dedication" text="omistus"/>
+<l:gentext key="Edition" text="Edition"/>
+<l:gentext key="edition" text="edition"/>
+<l:gentext key="Editor" text="Toimittaja"/>
+<l:gentext key="Equation" text="Kaava"/>
+<l:gentext key="equation" text="kaava"/>
+<l:gentext key="Example" text="Esimerkki"/>
+<l:gentext key="example" text="esimerkki"/>
+<l:gentext key="Figure" text="Kuva"/>
+<l:gentext key="figure" text="kuva"/>
+<l:gentext key="Glossary" text="Sanasto"/>
+<l:gentext key="glossary" text="sanasto"/>
+<l:gentext key="GlossSee" text="Katso"/>
+<l:gentext key="glosssee" text="katso"/>
+<l:gentext key="GlossSeeAlso" text="Katso myös"/>
+<l:gentext key="glossseealso" text="katso myös"/>
+<l:gentext key="IMPORTANT" text="TÄRKEÄÄ"/>
+<l:gentext key="important" text="tärkeää"/>
+<l:gentext key="Important" text="Tärkeää"/>
+<l:gentext key="Index" text="Indeksi"/>
+<l:gentext key="index" text="indeksi"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Oikeudellinen ilmoitus"/>
+<l:gentext key="legalnotice" text="oikeudellinen ilmoitus"/>
+<l:gentext key="MsgAud" text="Yleisö"/>
+<l:gentext key="msgaud" text="yleisö"/>
+<l:gentext key="MsgLevel" text="Taso"/>
+<l:gentext key="msglevel" text="taso"/>
+<l:gentext key="MsgOrig" text="Alkuperä"/>
+<l:gentext key="msgorig" text="alkuperä"/>
+<l:gentext key="NOTE" text="HUOMAA"/>
+<l:gentext key="Note" text="Huomaa"/>
+<l:gentext key="note" text="huomaa"/>
+<l:gentext key="Part" text="Osa"/>
+<l:gentext key="part" text="osa"/>
+<l:gentext key="Preface" text="Esipuhe"/>
+<l:gentext key="preface" text="esipuhe"/>
+<l:gentext key="Procedure" text="Aliohjelma"/>
+<l:gentext key="procedure" text="aliohjelma"/>
+<l:gentext key="ProductionSet" text="Tuotanto"/>
+<l:gentext key="PubDate" text="Julkaisupäivä"/>
+<l:gentext key="pubdate" text="julkaisupäivä"/>
+<l:gentext key="Published" text="Julkaistu"/>
+<l:gentext key="published" text="julkaistu"/>
+<l:gentext key="Publisher" text="Julkaisija"/>
+<l:gentext key="Qandadiv" text="K ja V"/>
+<l:gentext key="qandadiv" text="k ja v"/>
+<l:gentext key="QandASet" text="Usein kysytyt kysymykset"/>
+<l:gentext key="Question" text="K:"/>
+<l:gentext key="question" text="k:"/>
+<l:gentext key="RefEntry" text="Sivu"/>
+<l:gentext key="refentry" text="sivu"/>
+<l:gentext key="Reference" text="Lähdeluettelo"/>
+<l:gentext key="reference" text="lähdeluettelo"/>
+<l:gentext key="References" text="References"/>
+<l:gentext key="RefName" text="Nimi"/>
+<l:gentext key="refname" text="nimi"/>
+<l:gentext key="RefSection" text="Kohta"/>
+<l:gentext key="refsection" text="kohta"/>
+<l:gentext key="RefSynopsisDiv" text="Yhteenveto"/>
+<l:gentext key="refsynopsisdiv" text="yhteenveto"/>
+<l:gentext key="RevHistory" text="Versiohistoria"/>
+<l:gentext key="revhistory" text="versiohistoria"/>
+<l:gentext key="revision" text="versio"/>
+<l:gentext key="Revision" text="Versio"/>
+<l:gentext key="sect1" text="Kohta"/>
+<l:gentext key="sect2" text="Kohta"/>
+<l:gentext key="sect3" text="Kohta"/>
+<l:gentext key="sect4" text="Kohta"/>
+<l:gentext key="sect5" text="Kohta"/>
+<l:gentext key="section" text="kohta"/>
+<l:gentext key="Section" text="Kohta"/>
+<l:gentext key="see" text="katso"/>
+<l:gentext key="See" text="Katso"/>
+<l:gentext key="seealso" text="katso myös"/>
+<l:gentext key="Seealso" text="Katso myös"/>
+<l:gentext key="SeeAlso" text="Katso myös"/>
+<l:gentext key="set" text="Kokoelma"/>
+<l:gentext key="Set" text="Kokoelma"/>
+<l:gentext key="setindex" text="kokoelman indeksi"/>
+<l:gentext key="SetIndex" text="Kokoelman indeksi"/>
+<l:gentext key="Sidebar" text="Sivupalkki"/>
+<l:gentext key="sidebar" text="sivupalkki"/>
+<l:gentext key="step" text="toimenpide"/>
+<l:gentext key="Step" text="Toimenpide"/>
+<l:gentext key="table" text="taulu"/>
+<l:gentext key="Table" text="Taulu"/>
+<l:gentext key="task" text="tehtävä"/>
+<l:gentext key="Task" text="Tehtävä"/>
+<l:gentext key="tip" text="vihje"/>
+<l:gentext key="TIP" text="VIHJE"/>
+<l:gentext key="Tip" text="Vihje"/>
+<l:gentext key="Warning" text="Varoitus"/>
+<l:gentext key="warning" text="varoitus"/>
+<l:gentext key="WARNING" text="VAROITUS"/>
+<l:gentext key="and" text="ja"/>
+<l:gentext key="or" text="tai"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Toim."/>
+<l:gentext key="edited" text="toim."/>
+<l:gentext key="Editedby" text="Toimittanut"/>
+<l:gentext key="editedby" text="toimittanut"/>
+<l:gentext key="in" text="teoksessa"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="viitteet"/>
+<l:gentext key="Notes" text="Viitteet"/>
+<l:gentext key="Pgs" text="Sivut"/>
+<l:gentext key="pgs" text="sivut"/>
+<l:gentext key="Revisedby" text="Muokannut: "/>
+<l:gentext key="revisedby" text="muokannut: "/>
+<l:gentext key="TableNotes" text="Viitteet"/>
+<l:gentext key="tablenotes" text="viitteet"/>
+<l:gentext key="TableofContents" text="Sisällys"/>
+<l:gentext key="tableofcontents" text="sisällys"/>
+<l:gentext key="unexpectedelementname" text="Odottamaton elementin nimi"/>
+<l:gentext key="unsupported" text="ei tueta"/>
+<l:gentext key="xrefto" text="xref johonkin"/>
+<l:gentext key="Authors" text="Tekijät"/>
+<l:gentext key="copyeditor" text="Copy Editor"/>
+<l:gentext key="graphicdesigner" text="Graafinen suunnittelija"/>
+<l:gentext key="productioneditor" text="Production Editor"/>
+<l:gentext key="technicaleditor" text="Tekninen toimittaja"/>
+<l:gentext key="translator" text="Kääntäjä"/>
+<l:gentext key="listofequations" text="luettelo esimerkeistä"/>
+<l:gentext key="ListofEquations" text="Luettelo esimerkeistä"/>
+<l:gentext key="ListofExamples" text="Luettelo esimerkeistä"/>
+<l:gentext key="listofexamples" text="luettelo esimerkeistä"/>
+<l:gentext key="ListofFigures" text="Luettelo kuvista"/>
+<l:gentext key="listoffigures" text="luettelo kuvista"/>
+<l:gentext key="ListofProcedures" text="Luettelo aliohjelmista"/>
+<l:gentext key="listofprocedures" text="luettelo aliohjelmista"/>
+<l:gentext key="listoftables" text="luettelo tauluista"/>
+<l:gentext key="ListofTables" text="Luettelo tauluista"/>
+<l:gentext key="ListofUnknown" text="Luettelo tuntemattomista"/>
+<l:gentext key="listofunknown" text="luettelo tuntemattomista"/>
+<l:gentext key="nav-home" text="Alkuun"/>
+<l:gentext key="nav-next" text="Seuraava"/>
+<l:gentext key="nav-next-sibling" text="Nopeasti eteenpäin"/>
+<l:gentext key="nav-prev" text="Edellinen"/>
+<l:gentext key="nav-prev-sibling" text="Nopeasti taaksepäin"/>
+<l:gentext key="nav-up" text="Ylös"/>
+<l:gentext key="nav-toc" text="Sisällysluettelo"/>
+<l:gentext key="Draft" text="Luonnos"/>
+<l:gentext key="above" text="yllä"/>
+<l:gentext key="below" text="alla"/>
+<l:gentext key="sectioncalled" text="kohta nimeltä"/>
+<l:gentext key="index symbols" text="Symbolit"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzåäöšž"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖŠŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="”"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="’"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Liite %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Luku %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Kaava %n. %t"/>
+<l:template name="example" text="Esimerkki %n. %t"/>
+<l:template name="figure" text="Kuva %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Osa %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Aliohjelma %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Tuotanto %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Taulu %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Liite %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Luku %n. %t"/>
+<l:template name="part" text="Osa %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="V: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="K: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="K: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(sivu %p)"/>
+<l:template name="docname" text=" kirjoitelmassa %o"/>
+<l:template name="docnamelong" text=" kirjoitelmassa otsikoltaan %o"/>
+<l:template name="pageabbrev" text="(s. %p)"/>
+<l:template name="Page" text="Sivu %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="”%t”"/>
+<l:template name="refsection" text="”%t”"/>
+<l:template name="refsect1" text="”%t”"/>
+<l:template name="refsect2" text="”%t”"/>
+<l:template name="refsect3" text="”%t”"/>
+<l:template name="sect1" text="”%t”"/>
+<l:template name="sect2" text="”%t”"/>
+<l:template name="sect3" text="”%t”"/>
+<l:template name="sect4" text="”%t”"/>
+<l:template name="sect5" text="”%t”"/>
+<l:template name="section" text="”%t”"/>
+<l:template name="simplesect" text="”%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="V: %n"/>
+<l:template name="appendix" text="Liite %n"/>
+<l:template name="bridgehead" text="Kohta %n"/>
+<l:template name="chapter" text="Luku %n"/>
+<l:template name="equation" text="Kaava %n"/>
+<l:template name="example" text="Esimerkki %n"/>
+<l:template name="figure" text="Kuva %n"/>
+<l:template name="part" text="Osa %n"/>
+<l:template name="procedure" text="Aliohjelma %n"/>
+<l:template name="productionset" text="Tuotanto %n"/>
+<l:template name="qandadiv" text="K ja V %n"/>
+<l:template name="qandaentry" text="K: %n"/>
+<l:template name="question" text="K: %n"/>
+<l:template name="sect1" text="Kohta %n"/>
+<l:template name="sect2" text="Kohta %n"/>
+<l:template name="sect3" text="Kohta %n"/>
+<l:template name="sect4" text="Kohta %n"/>
+<l:template name="sect5" text="Kohta %n"/>
+<l:template name="section" text="Kohta %n"/>
+<l:template name="table" text="Taulu %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Liite %n, %t"/>
+<l:template name="bridgehead" text="Kohta %n, ”%t”"/>
+<l:template name="chapter" text="Luku %n, %t"/>
+<l:template name="equation" text="Kaava %n, ”%t”"/>
+<l:template name="example" text="Esimerkki %n, ”%t”"/>
+<l:template name="figure" text="Kuva %n, ”%t”"/>
+<l:template name="part" text="Osa %n, ”%t”"/>
+<l:template name="procedure" text="Aliohjelma %n, ”%t”"/>
+<l:template name="productionset" text="Tuotanto %n, ”%t”"/>
+<l:template name="qandadiv" text="K ja V %n, ”%t”"/>
+<l:template name="refsect1" text="kohta nimeltä ”%t”"/>
+<l:template name="refsect2" text="kohta nimeltä ”%t”"/>
+<l:template name="refsect3" text="kohta nimeltä ”%t”"/>
+<l:template name="refsection" text="kohta nimeltä ”%t”"/>
+<l:template name="sect1" text="Kohta %n, ”%t”"/>
+<l:template name="sect2" text="Kohta %n, ”%t”"/>
+<l:template name="sect3" text="Kohta %n, ”%t”"/>
+<l:template name="sect4" text="Kohta %n, ”%t”"/>
+<l:template name="sect5" text="Kohta %n, ”%t”"/>
+<l:template name="section" text="Kohta %n, ”%t”"/>
+<l:template name="simplesect" text="kohta nimeltä ”%t”"/>
+<l:template name="table" text="Taulu %n, ”%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ja "/>
+<l:template name="seplast" text=", ja "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Katso %t."/>
+<l:template name="seealso" text="Katso myös %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Yleisö: "/>
+<l:template name="MsgLevel" text="Taso: "/>
+<l:template name="MsgOrig" text="Alkuperä: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text=""/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text=""/>
+<l:template name="February" text=""/>
+<l:template name="March" text=""/>
+<l:template name="April" text=""/>
+<l:template name="May" text=""/>
+<l:template name="June" text=""/>
+<l:template name="July" text=""/>
+<l:template name="August" text=""/>
+<l:template name="September" text=""/>
+<l:template name="October" text=""/>
+<l:template name="November" text=""/>
+<l:template name="December" text=""/>
+<l:template name="Monday" text=""/>
+<l:template name="Tuesday" text=""/>
+<l:template name="Wednesday" text=""/>
+<l:template name="Thursday" text=""/>
+<l:template name="Friday" text=""/>
+<l:template name="Saturday" text=""/>
+<l:template name="Sunday" text=""/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text=""/>
+<l:template name="Feb" text=""/>
+<l:template name="Mar" text=""/>
+<l:template name="Apr" text=""/>
+<l:template name="May" text=""/>
+<l:template name="Jun" text=""/>
+<l:template name="Jul" text=""/>
+<l:template name="Aug" text=""/>
+<l:template name="Sep" text=""/>
+<l:template name="Oct" text=""/>
+<l:template name="Nov" text=""/>
+<l:template name="Dec" text=""/>
+<l:template name="Mon" text=""/>
+<l:template name="Tue" text=""/>
+<l:template name="Wed" text=""/>
+<l:template name="Thu" text=""/>
+<l:template name="Fri" text=""/>
+<l:template name="Sat" text=""/>
+<l:template name="Sun" text=""/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x040b Finnish"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbole</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="10">J</l:l>
+<l:l i="10">j</l:l>
+<l:l i="11">K</l:l>
+<l:l i="11">k</l:l>
+<l:l i="12">L</l:l>
+<l:l i="12">l</l:l>
+<l:l i="13">M</l:l>
+<l:l i="13">m</l:l>
+<l:l i="14">N</l:l>
+<l:l i="14">n</l:l>
+<l:l i="15">O</l:l>
+<l:l i="15">o</l:l>
+<l:l i="16">P</l:l>
+<l:l i="16">p</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="20">Š</l:l>
+<l:l i="20">š</l:l>
+<l:l i="21">T</l:l>
+<l:l i="21">t</l:l>
+<l:l i="22">U</l:l>
+<l:l i="22">u</l:l>
+<l:l i="23">V</l:l>
+<l:l i="23">v</l:l>
+<l:l i="24">W</l:l>
+<l:l i="24">w</l:l>
+<l:l i="25">X</l:l>
+<l:l i="25">x</l:l>
+<l:l i="26">Y</l:l>
+<l:l i="26">y</l:l>
+<l:l i="27">Z</l:l>
+<l:l i="27">z</l:l>
+<l:l i="28">Ž</l:l>
+<l:l i="28">ž</l:l>
+<l:l i="29">Å</l:l>
+<l:l i="29">å</l:l>
+<l:l i="30">Ä</l:l>
+<l:l i="30">ä</l:l>
+<l:l i="31">Ö</l:l>
+<l:l i="31">ö</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/fr.xml b/applications/content/template/docbook/common/fr.xml
new file mode 100644
index 0000000..cb15c17
--- /dev/null
+++ b/applications/content/template/docbook/common/fr.xml
@@ -0,0 +1,708 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="fr" english-language-name="French">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/fr.xml -->
+<!-- * -->
+<!-- * E-mail the edited fr.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Résumé"/>
+<l:gentext key="abstract" text="Résumé"/>
+<l:gentext key="Acknowledgements" text="Remerciements"/>
+<l:gentext key="acknowledgements" text="Remerciements"/>
+<l:gentext key="Answer" text="R :"/>
+<l:gentext key="answer" text="R :"/>
+<l:gentext key="Appendix" text="Annexe"/>
+<l:gentext key="appendix" text="annexe"/>
+<l:gentext key="Article" text="Article"/>
+<l:gentext key="article" text="Article"/>
+<l:gentext key="Author" text="Auteur"/>
+<l:gentext key="Bibliography" text="Bibliographie"/>
+<l:gentext key="bibliography" text="Bibliographie"/>
+<l:gentext key="Book" text="Livre"/>
+<l:gentext key="book" text="Livre"/>
+<l:gentext key="CAUTION" text="ATTENTION"/>
+<l:gentext key="Caution" text="Attention"/>
+<l:gentext key="caution" text="Attention"/>
+<l:gentext key="Chapter" text="Chapitre"/>
+<l:gentext key="chapter" text="chapitre"/>
+<l:gentext key="Colophon" text="Achevé d'imprimer"/>
+<l:gentext key="colophon" text="Achevé d'imprimer"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dédicace"/>
+<l:gentext key="dedication" text="Dédicace"/>
+<l:gentext key="Edition" text="Édition"/>
+<l:gentext key="edition" text="Édition"/>
+<l:gentext key="Editor" text="Éditeur"/>
+<l:gentext key="Equation" text="Équation"/>
+<l:gentext key="equation" text="Équation"/>
+<l:gentext key="Example" text="Exemple"/>
+<l:gentext key="example" text="Exemple"/>
+<l:gentext key="Figure" text="Figure"/>
+<l:gentext key="figure" text="Figure"/>
+<l:gentext key="Glossary" text="Glossaire"/>
+<l:gentext key="glossary" text="Glossaire"/>
+<l:gentext key="GlossSee" text="Voir"/>
+<l:gentext key="glosssee" text="Voir"/>
+<l:gentext key="GlossSeeAlso" text="Voir aussi"/>
+<l:gentext key="glossseealso" text="Voir aussi"/>
+<l:gentext key="IMPORTANT" text="IMPORTANT"/>
+<l:gentext key="important" text="Important"/>
+<l:gentext key="Important" text="Important"/>
+<l:gentext key="Index" text="Index"/>
+<l:gentext key="index" text="Index"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Note légale"/>
+<l:gentext key="legalnotice" text="Note légale"/>
+<l:gentext key="MsgAud" text="Public visé"/>
+<l:gentext key="msgaud" text="Public visé"/>
+<l:gentext key="MsgLevel" text="Niveau"/>
+<l:gentext key="msglevel" text="Niveau"/>
+<l:gentext key="MsgOrig" text="Origine"/>
+<l:gentext key="msgorig" text="Origine"/>
+<l:gentext key="NOTE" text="NOTE"/>
+<l:gentext key="Note" text="Note"/>
+<l:gentext key="note" text="Note"/>
+<l:gentext key="Part" text="Partie"/>
+<l:gentext key="part" text="Partie"/>
+<l:gentext key="Preface" text="Préface"/>
+<l:gentext key="preface" text="Préface"/>
+<l:gentext key="Procedure" text="Procédure"/>
+<l:gentext key="procedure" text="Procédure"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Date de publication"/>
+<l:gentext key="pubdate" text="Date de publication"/>
+<l:gentext key="Published" text="Publié le"/>
+<l:gentext key="published" text="Publié le"/>
+<l:gentext key="Publisher" text="Éditeur"/>
+<l:gentext key="Qandadiv" text="Q &amp; R"/>
+<l:gentext key="qandadiv" text="Q &amp; R"/>
+<l:gentext key="QandASet" text="Questions fréquemment posées"/>
+<l:gentext key="Question" text="Q :"/>
+<l:gentext key="question" text="Q :"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Référence"/>
+<l:gentext key="reference" text="Référence"/>
+<l:gentext key="References" text="Références"/>
+<l:gentext key="RefName" text="Nom"/>
+<l:gentext key="refname" text="Nom"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="Synopsis"/>
+<l:gentext key="RevHistory" text="Historique des versions"/>
+<l:gentext key="revhistory" text="Historique des versions"/>
+<l:gentext key="revision" text="Version"/>
+<l:gentext key="Revision" text="Version"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="section"/>
+<l:gentext key="Section" text="Section"/>
+<l:gentext key="see" text="voir"/>
+<l:gentext key="See" text="Voir"/>
+<l:gentext key="seealso" text="voir aussi"/>
+<l:gentext key="Seealso" text="Voir aussi"/>
+<l:gentext key="SeeAlso" text="Voir Aussi"/>
+<l:gentext key="set" text="Ensemble"/>
+<l:gentext key="Set" text="Ensemble"/>
+<l:gentext key="setindex" text="Index"/>
+<l:gentext key="SetIndex" text="Index"/>
+<l:gentext key="Sidebar" text="Filet vertical"/>
+<l:gentext key="sidebar" text="Filet vertical"/>
+<l:gentext key="step" text="étape"/>
+<l:gentext key="Step" text="Étape"/>
+<l:gentext key="table" text="Tableau"/>
+<l:gentext key="Table" text="Tableau"/>
+<l:gentext key="task" text="Tâche"/>
+<l:gentext key="Task" text="Tâche"/>
+<l:gentext key="tip" text="Astuce"/>
+<l:gentext key="TIP" text="ASTUCE"/>
+<l:gentext key="Tip" text="Astuce"/>
+<l:gentext key="Warning" text="Avertissement"/>
+<l:gentext key="warning" text="Avertissement"/>
+<l:gentext key="WARNING" text="AVERTISSEMENT"/>
+<l:gentext key="and" text="et"/>
+<l:gentext key="or" text="ou"/>
+<l:gentext key="by" text="par"/>
+<l:gentext key="Edited" text="Publié"/>
+<l:gentext key="edited" text="Publié"/>
+<l:gentext key="Editedby" text="Publié par"/>
+<l:gentext key="editedby" text="Publié par"/>
+<l:gentext key="in" text="dans"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Notes"/>
+<l:gentext key="Notes" text="Notes"/>
+<l:gentext key="Pgs" text="Pages"/>
+<l:gentext key="pgs" text="Pages"/>
+<l:gentext key="Revisedby" text="Revu et corrigé par : "/>
+<l:gentext key="revisedby" text="Revu et corrigé par : "/>
+<l:gentext key="TableNotes" text="Remarques"/>
+<l:gentext key="tablenotes" text="Remarques"/>
+<l:gentext key="TableofContents" text="Table des matières"/>
+<l:gentext key="tableofcontents" text="Table des matières"/>
+<l:gentext key="unexpectedelementname" text="Nom d'élément inattendu"/>
+<l:gentext key="unsupported" text="Non reconnu par le système"/>
+<l:gentext key="xrefto" text="Référence vers"/>
+<l:gentext key="Authors" text="Auteurs"/>
+<l:gentext key="copyeditor" text="Relecteur"/>
+<l:gentext key="graphicdesigner" text="Graphiste"/>
+<l:gentext key="productioneditor" text="Directeur de la production"/>
+<l:gentext key="technicaleditor" text="Rédacteur technique"/>
+<l:gentext key="translator" text="Traducteur"/>
+<l:gentext key="listofequations" text="Liste des équations"/>
+<l:gentext key="ListofEquations" text="Liste des équations"/>
+<l:gentext key="ListofExamples" text="Liste des exemples"/>
+<l:gentext key="listofexamples" text="Liste des exemples"/>
+<l:gentext key="ListofFigures" text="Liste des illustrations"/>
+<l:gentext key="listoffigures" text="Liste des illustrations"/>
+<l:gentext key="ListofProcedures" text="Liste des procédures"/>
+<l:gentext key="listofprocedures" text="Liste des procédures"/>
+<l:gentext key="listoftables" text="Liste des tableaux"/>
+<l:gentext key="ListofTables" text="Liste des tableaux"/>
+<l:gentext key="ListofUnknown" text="Liste inconnue"/>
+<l:gentext key="listofunknown" text="Liste inconnue"/>
+<l:gentext key="nav-home" text="Sommaire"/>
+<l:gentext key="nav-next" text="Suivant"/>
+<l:gentext key="nav-next-sibling" text="Avance rapide"/>
+<l:gentext key="nav-prev" text="Précédent"/>
+<l:gentext key="nav-prev-sibling" text="Arrière rapide"/>
+<l:gentext key="nav-up" text="Niveau supérieur"/>
+<l:gentext key="nav-toc" text="TdM"/>
+<l:gentext key="Draft" text="Brouillon"/>
+<l:gentext key="above" text="au-dessus"/>
+<l:gentext key="below" text="au-dessous"/>
+<l:gentext key="sectioncalled" text="la section intitulée"/>
+<l:gentext key="index symbols" text="Symboles"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzâêîôûëïüàèùéçæœ"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÂÊÎÔÛËÏÜÀÈÙÉÇÆŒ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ"/>
+<l:dingbat key="startquote" text="« "/>
+<l:dingbat key="endquote" text=" »"/>
+<l:dingbat key="nestedstartquote" text="“"/>
+<l:dingbat key="nestedendquote" text="”"/>
+<l:dingbat key="singlestartquote" text="‹"/>
+<l:dingbat key="singleendquote" text="›"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Rechercher"/>
+<l:template name="Enter_a_term_and_click" text="Saisissez un terme et cliquer "/>
+<l:template name="Go" text="Go"/>
+<l:template name="to_perform_a_search" text=" to perform a search."/>
+<l:template name="txt_filesfound" text="Résultats"/>
+<l:template name="txt_enter_at_least_1_char" text="Vous devez entrer au moins un caractère.x"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site."/>
+<l:template name="txt_please_wait" text="S'il vous plaît attendre. La recherche est en cours ..."/>
+<l:template name="txt_results_for" text="Résultats pour: "/>
+<l:template name="TableofContents" text="Contents"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results."/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Annexe %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Chapitre %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Équation %n. %t"/>
+<l:template name="example" text="Exemple %n. %t"/>
+<l:template name="figure" text="Figure %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procédure %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tableau %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Annexe %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Chapitre %n. %t"/>
+<l:template name="part" text="Partie %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="R : %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q : %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q : %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" dans %o"/>
+<l:template name="docnamelong" text=" dans le document intitulé %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="la section intitulée « %t »"/>
+<l:template name="refsection" text="la section intitulée « %t »"/>
+<l:template name="refsect1" text="la section intitulée « %t »"/>
+<l:template name="refsect2" text="la section intitulée « %t »"/>
+<l:template name="refsect3" text="la section intitulée « %t »"/>
+<l:template name="sect1" text="la section intitulée « %t »"/>
+<l:template name="sect2" text="la section intitulée « %t »"/>
+<l:template name="sect3" text="la section intitulée « %t »"/>
+<l:template name="sect4" text="la section intitulée « %t »"/>
+<l:template name="sect5" text="la section intitulée « %t »"/>
+<l:template name="section" text="la section intitulée « %t »"/>
+<l:template name="simplesect" text="la section intitulée « %t »"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R : %n"/>
+<l:template name="appendix" text="Annexe %n"/>
+<l:template name="bridgehead" text="Section %n"/>
+<l:template name="chapter" text="Chapitre %n"/>
+<l:template name="equation" text="Équation %n"/>
+<l:template name="example" text="Exemple %n"/>
+<l:template name="figure" text="Figure %n"/>
+<l:template name="part" text="Partie %n"/>
+<l:template name="procedure" text="Procédure %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Q &amp; R %n"/>
+<l:template name="qandaentry" text="Q : %n"/>
+<l:template name="question" text="Q : %n"/>
+<l:template name="sect1" text="Section %n"/>
+<l:template name="sect2" text="Section %n"/>
+<l:template name="sect3" text="Section %n"/>
+<l:template name="sect4" text="Section %n"/>
+<l:template name="sect5" text="Section %n"/>
+<l:template name="section" text="Section %n"/>
+<l:template name="table" text="Tableau %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Annexe %n, %t"/>
+<l:template name="bridgehead" text="Section %n, « %t »"/>
+<l:template name="chapter" text="Chapitre %n, %t"/>
+<l:template name="equation" text="Équation %n, « %t »"/>
+<l:template name="example" text="Exemple %n, « %t »"/>
+<l:template name="figure" text="Figure %n, « %t »"/>
+<l:template name="part" text="Partie %n, « %t »"/>
+<l:template name="procedure" text="Procédure %n, « %t »"/>
+<l:template name="productionset" text="Production %n, « %t »"/>
+<l:template name="qandadiv" text="Q &amp; R %n, « %t »"/>
+<l:template name="refsect1" text="la section intitulée « %t »"/>
+<l:template name="refsect2" text="la section intitulée « %t »"/>
+<l:template name="refsect3" text="la section intitulée « %t »"/>
+<l:template name="refsection" text="la section intitulée « %t »"/>
+<l:template name="sect1" text="Section %n, « %t »"/>
+<l:template name="sect2" text="Section %n, « %t »"/>
+<l:template name="sect3" text="Section %n, « %t »"/>
+<l:template name="sect4" text="Section %n, « %t »"/>
+<l:template name="sect5" text="Section %n, « %t »"/>
+<l:template name="section" text="Section %n, « %t »"/>
+<l:template name="simplesect" text="la section intitulée « %t »"/>
+<l:template name="table" text="Tableau %n, « %t »"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" et "/>
+<l:template name="seplast" text=", et "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Voir %t."/>
+<l:template name="seealso" text="Voir aussi %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Public visé: "/>
+<l:template name="MsgLevel" text="Niveau: "/>
+<l:template name="MsgOrig" text="Origine: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Définition : "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="janvier"/>
+<l:template name="February" text="février"/>
+<l:template name="March" text="mars"/>
+<l:template name="April" text="avril"/>
+<l:template name="May" text="mai"/>
+<l:template name="June" text="juin"/>
+<l:template name="July" text="juillet"/>
+<l:template name="August" text="août"/>
+<l:template name="September" text="septembre"/>
+<l:template name="October" text="octobre"/>
+<l:template name="November" text="novembre"/>
+<l:template name="December" text="décembre"/>
+<l:template name="Monday" text="lundi"/>
+<l:template name="Tuesday" text="mardi"/>
+<l:template name="Wednesday" text="mercredi"/>
+<l:template name="Thursday" text="jeudi"/>
+<l:template name="Friday" text="vendredi"/>
+<l:template name="Saturday" text="samedi"/>
+<l:template name="Sunday" text="dimanche"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="jan"/>
+<l:template name="Feb" text="fév"/>
+<l:template name="Mar" text="mar"/>
+<l:template name="Apr" text="avr"/>
+<l:template name="May" text="mai"/>
+<l:template name="Jun" text="jun"/>
+<l:template name="Jul" text="jui"/>
+<l:template name="Aug" text="aoû"/>
+<l:template name="Sep" text="sep"/>
+<l:template name="Oct" text="oct"/>
+<l:template name="Nov" text="nov"/>
+<l:template name="Dec" text="déc"/>
+<l:template name="Mon" text="lun"/>
+<l:template name="Tue" text="mar"/>
+<l:template name="Wed" text="mer"/>
+<l:template name="Thu" text="jeu"/>
+<l:template name="Fri" text="ven"/>
+<l:template name="Sat" text="sam"/>
+<l:template name="Sun" text="dim"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x040c French (FRANCE)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (éd.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Disponible "/>
+<l:template name="acctoo" text="Également disponible "/>
+<l:template name="onwww" text="sur World Wide Web"/>
+<l:template name="oninet" text="sur Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symboles</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="1">à</l:l>
+<l:l i="1">À</l:l>
+<l:l i="1">â</l:l>
+<l:l i="1">Â</l:l>
+<l:l i="1">Æ</l:l>
+<l:l i="1">æ</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="3">ç</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="5">ê</l:l>
+<l:l i="5">Ê</l:l>
+<l:l i="5">é</l:l>
+<l:l i="5">É</l:l>
+<l:l i="5">è</l:l>
+<l:l i="5">È</l:l>
+<l:l i="5">ë</l:l>
+<l:l i="5">Ë</l:l>
+<l:l i="5">€</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="9">Î</l:l>
+<l:l i="9">î</l:l>
+<l:l i="9">Ï</l:l>
+<l:l i="9">ï</l:l>
+<l:l i="10">J</l:l>
+<l:l i="10">j</l:l>
+<l:l i="11">K</l:l>
+<l:l i="11">k</l:l>
+<l:l i="12">L</l:l>
+<l:l i="12">l</l:l>
+<l:l i="13">M</l:l>
+<l:l i="13">m</l:l>
+<l:l i="14">N</l:l>
+<l:l i="14">n</l:l>
+<l:l i="15">O</l:l>
+<l:l i="15">o</l:l>
+<l:l i="15">Ö</l:l>
+<l:l i="15">ö</l:l>
+<l:l i="15">Œ</l:l>
+<l:l i="15">œ</l:l>
+<l:l i="16">P</l:l>
+<l:l i="16">p</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="20">T</l:l>
+<l:l i="20">t</l:l>
+<l:l i="21">U</l:l>
+<l:l i="21">u</l:l>
+<l:l i="21">Ù</l:l>
+<l:l i="21">ù</l:l>
+<l:l i="21">Û</l:l>
+<l:l i="21">û</l:l>
+<l:l i="21">Ü</l:l>
+<l:l i="21">ü</l:l>
+<l:l i="22">V</l:l>
+<l:l i="22">v</l:l>
+<l:l i="23">W</l:l>
+<l:l i="23">w</l:l>
+<l:l i="24">X</l:l>
+<l:l i="24">x</l:l>
+<l:l i="25">Y</l:l>
+<l:l i="25">y</l:l>
+<l:l i="26">Z</l:l>
+<l:l i="26">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/ga.xml b/applications/content/template/docbook/common/ga.xml
new file mode 100644
index 0000000..8c65e90
--- /dev/null
+++ b/applications/content/template/docbook/common/ga.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ga" english-language-name="Irish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ga.xml -->
+<!-- * -->
+<!-- * E-mail the edited ga.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Achoimre"/>
+<l:gentext key="abstract" text="Achoimre"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="F:"/>
+<l:gentext key="answer" text="F:"/>
+<l:gentext key="Appendix" text="Aguisín"/>
+<l:gentext key="appendix" text="Aguisín"/>
+<l:gentext key="Article" text="Alt"/>
+<l:gentext key="article" text="Alt"/>
+<l:gentext key="Author" text="Údar"/>
+<l:gentext key="Bibliography" text="Leabharliosta"/>
+<l:gentext key="bibliography" text="Leabharliosta"/>
+<l:gentext key="Book" text="Leabhar"/>
+<l:gentext key="book" text="Leabhar"/>
+<l:gentext key="CAUTION" text="FAINIC"/>
+<l:gentext key="Caution" text="Fainic"/>
+<l:gentext key="caution" text="Fainic"/>
+<l:gentext key="Chapter" text="Caibidil"/>
+<l:gentext key="chapter" text="Caibidil"/>
+<l:gentext key="Colophon" text="Colafan"/>
+<l:gentext key="colophon" text="Colafan"/>
+<l:gentext key="Copyright" text="Cóipcheart"/>
+<l:gentext key="copyright" text="Cóipcheart"/>
+<l:gentext key="Dedication" text="Tíolacadh"/>
+<l:gentext key="dedication" text="Tíolacadh"/>
+<l:gentext key="Edition" text="Eagrán"/>
+<l:gentext key="edition" text="Eagrán"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Cothromóid"/>
+<l:gentext key="equation" text="Cothromóid"/>
+<l:gentext key="Example" text="Sampla"/>
+<l:gentext key="example" text="Sampla"/>
+<l:gentext key="Figure" text="Léaráid"/>
+<l:gentext key="figure" text="Léaráid"/>
+<l:gentext key="Glossary" text="Gluais"/>
+<l:gentext key="glossary" text="Gluais"/>
+<l:gentext key="GlossSee" text="Féach"/>
+<l:gentext key="glosssee" text="Féach"/>
+<l:gentext key="GlossSeeAlso" text="Féach Freisin"/>
+<l:gentext key="glossseealso" text="Féach Freisin"/>
+<l:gentext key="IMPORTANT" text="TÁBHACHTACH"/>
+<l:gentext key="important" text="Tábhachtach"/>
+<l:gentext key="Important" text="Tábhachtach"/>
+<l:gentext key="Index" text="Innéacs"/>
+<l:gentext key="index" text="Innéacs"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Fógra Dlí"/>
+<l:gentext key="legalnotice" text="Fógra Dlí"/>
+<l:gentext key="MsgAud" text="Sprioclucht"/>
+<l:gentext key="msgaud" text="Sprioclucht"/>
+<l:gentext key="MsgLevel" text="Leibhéal"/>
+<l:gentext key="msglevel" text="Leibhéal"/>
+<l:gentext key="MsgOrig" text="Foinse"/>
+<l:gentext key="msgorig" text="Foinse"/>
+<l:gentext key="NOTE" text="NÓTA"/>
+<l:gentext key="Note" text="Nóta"/>
+<l:gentext key="note" text="Nóta"/>
+<l:gentext key="Part" text="Cuid"/>
+<l:gentext key="part" text="Cuid"/>
+<l:gentext key="Preface" text="Réamhrá"/>
+<l:gentext key="preface" text="Réamhrá"/>
+<l:gentext key="Procedure" text="Gnás"/>
+<l:gentext key="procedure" text="Gnás"/>
+<l:gentext key="ProductionSet" text="Rialacha Táirgthe"/>
+<l:gentext key="PubDate" text="Dáta Foilsithe"/>
+<l:gentext key="pubdate" text="Dáta foilsithe"/>
+<l:gentext key="Published" text="Foilsithe"/>
+<l:gentext key="published" text="Foilsithe"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="C &amp; F"/>
+<l:gentext key="qandadiv" text="C &amp; F"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="C:"/>
+<l:gentext key="question" text="C:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Tagairt"/>
+<l:gentext key="reference" text="Tagairt"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Ainm"/>
+<l:gentext key="refname" text="Ainm"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Achoimre"/>
+<l:gentext key="refsynopsisdiv" text="Achoimre"/>
+<l:gentext key="RevHistory" text="Stair Leasaithe"/>
+<l:gentext key="revhistory" text="Stair Leasaithe"/>
+<l:gentext key="revision" text="Leasú"/>
+<l:gentext key="Revision" text="Leasú"/>
+<l:gentext key="sect1" text="Rannán"/>
+<l:gentext key="sect2" text="Rannán"/>
+<l:gentext key="sect3" text="Rannán"/>
+<l:gentext key="sect4" text="Rannán"/>
+<l:gentext key="sect5" text="Rannán"/>
+<l:gentext key="section" text="Rannán"/>
+<l:gentext key="Section" text="Rannán"/>
+<l:gentext key="see" text="féach"/>
+<l:gentext key="See" text="Féach"/>
+<l:gentext key="seealso" text="féach freisin"/>
+<l:gentext key="Seealso" text="Féach freisin"/>
+<l:gentext key="SeeAlso" text="Féach Freisin"/>
+<l:gentext key="set" text="Tacar"/>
+<l:gentext key="Set" text="Tacar"/>
+<l:gentext key="setindex" text="Innéacs"/>
+<l:gentext key="SetIndex" text="Innéacs"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="taobhbharra"/>
+<l:gentext key="step" text="céim"/>
+<l:gentext key="Step" text="Céim"/>
+<l:gentext key="table" text="Tábla"/>
+<l:gentext key="Table" text="Tábla"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Leid"/>
+<l:gentext key="TIP" text="LEID"/>
+<l:gentext key="Tip" text="Leid"/>
+<l:gentext key="Warning" text="Rabhadh"/>
+<l:gentext key="warning" text="Rabhadh"/>
+<l:gentext key="WARNING" text="RABHADH"/>
+<l:gentext key="and" text="agus"/>
+<l:gentext key="or" text="nó"/>
+<l:gentext key="by" text="le"/>
+<l:gentext key="Edited" text="Curtha in eagar"/>
+<l:gentext key="edited" text="Curtha in eagar"/>
+<l:gentext key="Editedby" text="Curtha in eagar ag"/>
+<l:gentext key="editedby" text="Curtha in eagar ag"/>
+<l:gentext key="in" text="i"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Nótaí"/>
+<l:gentext key="Notes" text="Nótaí"/>
+<l:gentext key="Pgs" text="Lgh."/>
+<l:gentext key="pgs" text="Lgh."/>
+<l:gentext key="Revisedby" text="Leasaithe ag: "/>
+<l:gentext key="revisedby" text="Leasaithe ag: "/>
+<l:gentext key="TableNotes" text="Nótaí"/>
+<l:gentext key="tablenotes" text="Nótaí"/>
+<l:gentext key="TableofContents" text="Clár Ábhair"/>
+<l:gentext key="tableofcontents" text="Clár Ábhair"/>
+<l:gentext key="unexpectedelementname" text="Ainm eiliminte gan choinne"/>
+<l:gentext key="unsupported" text="gan tacaíocht"/>
+<l:gentext key="xrefto" text="xref go"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Liosta Cothromóidí"/>
+<l:gentext key="ListofEquations" text="Liosta Cothromóidí"/>
+<l:gentext key="ListofExamples" text="Liosta Samplaí"/>
+<l:gentext key="listofexamples" text="Liosta Samplaí"/>
+<l:gentext key="ListofFigures" text="Liosta Léaráidí"/>
+<l:gentext key="listoffigures" text="Liosta Léaráidí"/>
+<l:gentext key="ListofProcedures" text="Liosta Gnás"/>
+<l:gentext key="listofprocedures" text="Liosta Gnás"/>
+<l:gentext key="listoftables" text="Liosta Táblaí"/>
+<l:gentext key="ListofTables" text="Liosta Táblaí"/>
+<l:gentext key="ListofUnknown" text="Liosta Rudaí Anaithnide"/>
+<l:gentext key="listofunknown" text="Liosta Rudaí Anaithnide"/>
+<l:gentext key="nav-home" text="Baile"/>
+<l:gentext key="nav-next" text="Ar Aghaidh"/>
+<l:gentext key="nav-next-sibling" text="Ar Aghaidh Go Tapa"/>
+<l:gentext key="nav-prev" text="Ar Ais"/>
+<l:gentext key="nav-prev-sibling" text="Ar Ais Go Tapa"/>
+<l:gentext key="nav-up" text="Suas"/>
+<l:gentext key="nav-toc" text="CÁ"/>
+<l:gentext key="Draft" text="Dréacht"/>
+<l:gentext key="above" text="thuas"/>
+<l:gentext key="below" text="thíos"/>
+<l:gentext key="sectioncalled" text="an rannán dar teideal"/>
+<l:gentext key="index symbols" text="Siombailí"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzáéíóú"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Aguisín %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Caibidil %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Cothromóid %n. %t"/>
+<l:template name="example" text="Sampla %n. %t"/>
+<l:template name="figure" text="Léaráid %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Cuid %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Gnás %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Rialacha Táirgthe %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tábla %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Aguisín %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Caibidil %n. %t"/>
+<l:template name="part" text="Cuid %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="F: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="C: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="C: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" i %o"/>
+<l:template name="olink.page.citation" text=" (leathanach %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(leathanach %p)"/>
+<l:template name="docname" text=" i %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(lch. %p)"/>
+<l:template name="Page" text="Leathanach %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="an rannán dar teideal “%t”"/>
+<l:template name="refsection" text="an rannán dar teideal “%t”"/>
+<l:template name="refsect1" text="an rannán dar teideal “%t”"/>
+<l:template name="refsect2" text="an rannán dar teideal “%t”"/>
+<l:template name="refsect3" text="an rannán dar teideal “%t”"/>
+<l:template name="sect1" text="an rannán dar teideal “%t”"/>
+<l:template name="sect2" text="an rannán dar teideal “%t”"/>
+<l:template name="sect3" text="an rannán dar teideal “%t”"/>
+<l:template name="sect4" text="an rannán dar teideal “%t”"/>
+<l:template name="sect5" text="an rannán dar teideal “%t”"/>
+<l:template name="section" text="an rannán dar teideal “%t”"/>
+<l:template name="simplesect" text="an rannán dar teideal “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="F: %n"/>
+<l:template name="appendix" text="Aguisín %n"/>
+<l:template name="bridgehead" text="Rannán %n"/>
+<l:template name="chapter" text="Caibidil %n"/>
+<l:template name="equation" text="Cothromóid %n"/>
+<l:template name="example" text="Sampla %n"/>
+<l:template name="figure" text="Léaráid %n"/>
+<l:template name="part" text="Cuid %n"/>
+<l:template name="procedure" text="Gnás %n"/>
+<l:template name="productionset" text="Rialacha Táirgthe %n"/>
+<l:template name="qandadiv" text="C &amp; F %n"/>
+<l:template name="qandaentry" text="C: %n"/>
+<l:template name="question" text="C: %n"/>
+<l:template name="sect1" text="Rannán %n"/>
+<l:template name="sect2" text="Rannán %n"/>
+<l:template name="sect3" text="Rannán %n"/>
+<l:template name="sect4" text="Rannán %n"/>
+<l:template name="sect5" text="Rannán %n"/>
+<l:template name="section" text="Rannán %n"/>
+<l:template name="table" text="Tábla %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Aguisín %n, %t"/>
+<l:template name="bridgehead" text="Rannán %n, “%t”"/>
+<l:template name="chapter" text="Caibidil %n, %t"/>
+<l:template name="equation" text="Cothromóid %n, “%t”"/>
+<l:template name="example" text="Sampla %n, “%t”"/>
+<l:template name="figure" text="Léaráid %n, “%t”"/>
+<l:template name="part" text="Cuid %n, “%t”"/>
+<l:template name="procedure" text="Gnás %n, “%t”"/>
+<l:template name="productionset" text="Rialacha Táirgthe %n, “%t”"/>
+<l:template name="qandadiv" text="C &amp; F %n, “%t”"/>
+<l:template name="refsect1" text="an rannán dar teideal “%t”"/>
+<l:template name="refsect2" text="an rannán dar teideal “%t”"/>
+<l:template name="refsect3" text="an rannán dar teideal “%t”"/>
+<l:template name="refsection" text="an rannán dar teideal “%t”"/>
+<l:template name="sect1" text="Rannán %n, “%t”"/>
+<l:template name="sect2" text="Rannán %n, “%t”"/>
+<l:template name="sect3" text="Rannán %n, “%t”"/>
+<l:template name="sect4" text="Rannán %n, “%t”"/>
+<l:template name="sect5" text="Rannán %n, “%t”"/>
+<l:template name="section" text="Rannán %n, “%t”"/>
+<l:template name="simplesect" text="an rannán dar teideal “%t”"/>
+<l:template name="table" text="Tábla %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" agus "/>
+<l:template name="seplast" text=", agus "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Féach %t."/>
+<l:template name="seealso" text="Féach Freisin %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Sprioclucht: "/>
+<l:template name="MsgLevel" text="Leibhéal: "/>
+<l:template name="MsgOrig" text="Foinse: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Sainmhíniú: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Eanáir"/>
+<l:template name="February" text="Feabhra"/>
+<l:template name="March" text="Márta"/>
+<l:template name="April" text="Aibreán"/>
+<l:template name="May" text="Bealtaine"/>
+<l:template name="June" text="Meitheamh"/>
+<l:template name="July" text="Iúil"/>
+<l:template name="August" text="Lúnasa"/>
+<l:template name="September" text="Meán Fómhair"/>
+<l:template name="October" text="Deireadh Fómhair"/>
+<l:template name="November" text="Samhain"/>
+<l:template name="December" text="Nollaig"/>
+<l:template name="Monday" text="Dé Luain"/>
+<l:template name="Tuesday" text="Dé Máirt"/>
+<l:template name="Wednesday" text="Dé Céadaoin"/>
+<l:template name="Thursday" text="Déardaoin"/>
+<l:template name="Friday" text="Dé hAoine"/>
+<l:template name="Saturday" text="Dé Sathairn"/>
+<l:template name="Sunday" text="Dé Domhnaigh"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Ean"/>
+<l:template name="Feb" text="Feabh"/>
+<l:template name="Mar" text="Márta"/>
+<l:template name="Apr" text="Aib"/>
+<l:template name="May" text="Beal"/>
+<l:template name="Jun" text="Meith"/>
+<l:template name="Jul" text="Iúil"/>
+<l:template name="Aug" text="Lún"/>
+<l:template name="Sep" text="MFómh"/>
+<l:template name="Oct" text="DFómh"/>
+<l:template name="Nov" text="Samh"/>
+<l:template name="Dec" text="Noll"/>
+<l:template name="Mon" text="Luan"/>
+<l:template name="Tue" text="Máirt"/>
+<l:template name="Wed" text="Céad"/>
+<l:template name="Thu" text="Déar"/>
+<l:template name="Fri" text="Aoine"/>
+<l:template name="Sat" text="Sath"/>
+<l:template name="Sun" text="Domh"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x083C Gaelic (IRELAND)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Siombailí</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/gentext.xsl b/applications/content/template/docbook/common/gentext.xsl
new file mode 100644
index 0000000..bfb5e30
--- /dev/null
+++ b/applications/content/template/docbook/common/gentext.xsl
@@ -0,0 +1,839 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="object.title.template">
+  <xsl:call-template name="gentext.template">
+    <xsl:with-param name="context" select="'title'"/>
+    <xsl:with-param name="name">
+      <xsl:call-template name="xpath.location"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter" mode="object.title.template">
+  <xsl:choose>
+    <xsl:when test="string($chapter.autolabel) != 0">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'title-numbered'"/>
+        <xsl:with-param name="name">
+          <xsl:call-template name="xpath.location"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'title-unnumbered'"/>
+        <xsl:with-param name="name">
+          <xsl:call-template name="xpath.location"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="appendix" mode="object.title.template">
+  <xsl:choose>
+    <xsl:when test="string($appendix.autolabel) != 0">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'title-numbered'"/>
+        <xsl:with-param name="name">
+          <xsl:call-template name="xpath.location"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'title-unnumbered'"/>
+        <xsl:with-param name="name">
+          <xsl:call-template name="xpath.location"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="part" mode="object.title.template">
+  <xsl:choose>
+    <xsl:when test="string($part.autolabel) != 0">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'title-numbered'"/>
+        <xsl:with-param name="name">
+          <xsl:call-template name="xpath.location"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'title-unnumbered'"/>
+        <xsl:with-param name="name">
+          <xsl:call-template name="xpath.location"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="section|sect1|sect2|sect3|sect4|sect5|simplesect
+                     |bridgehead|topic"
+              mode="object.title.template">
+  <xsl:variable name="is.numbered">
+    <xsl:call-template name="label.this.section"/>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$is.numbered != 0">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'title-numbered'"/>
+        <xsl:with-param name="name">
+          <xsl:call-template name="xpath.location"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'title-unnumbered'"/>
+        <xsl:with-param name="name">
+          <xsl:call-template name="xpath.location"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="procedure" mode="object.title.template">
+  <xsl:choose>
+    <xsl:when test="$formal.procedures != 0 and title">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'title'"/>
+        <xsl:with-param name="name">
+          <xsl:call-template name="xpath.location"/>
+          <xsl:text>.formal</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'title'"/>
+        <xsl:with-param name="name">
+          <xsl:call-template name="xpath.location"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.subtitle.template">
+  <xsl:call-template name="gentext.template">
+    <xsl:with-param name="context" select="'subtitle'"/>
+    <xsl:with-param name="name">
+      <xsl:call-template name="xpath.location"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="is.autonumber">
+  <xsl:value-of select="'0'"/>
+</xsl:template>
+
+<xsl:template match="section|sect1|sect2|sect3|sect4|sect5" 
+              mode="is.autonumber">
+  <xsl:call-template name="label.this.section"/>
+</xsl:template>
+
+<xsl:template match="figure|example|table|equation" mode="is.autonumber">
+  <xsl:value-of select="'1'"/>
+</xsl:template>
+
+<xsl:template match="appendix" mode="is.autonumber">
+  <xsl:value-of select="$appendix.autolabel"/>
+</xsl:template>
+
+<xsl:template match="chapter" mode="is.autonumber">
+  <xsl:value-of select="$chapter.autolabel"/>
+</xsl:template>
+
+<xsl:template match="part" mode="is.autonumber">
+  <xsl:value-of select="$part.autolabel"/>
+</xsl:template>
+
+<xsl:template match="preface" mode="is.autonumber">
+  <xsl:value-of select="$preface.autolabel"/>
+</xsl:template>
+
+<xsl:template match="question|answer" mode="is.autonumber">
+  <xsl:choose>
+    <xsl:when test="$qanda.defaultlabel = 'number'
+                    and not(label)">
+      <xsl:value-of select="'1'"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="'0'"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="is.autonumber">
+  <xsl:value-of select="$qandadiv.autolabel"/>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="is.autonumber">
+  <xsl:value-of select="$section.autolabel"/>
+</xsl:template>
+
+<xsl:template match="procedure" mode="is.autonumber">
+  <xsl:value-of select="$formal.procedures"/>
+</xsl:template>
+
+
+<xsl:template match="*" mode="object.xref.template">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="referrer"/>
+
+  <!-- Is autonumbering on? -->
+  <xsl:variable name="autonumber">
+    <xsl:apply-templates select="." mode="is.autonumber"/>
+  </xsl:variable>
+
+  <xsl:variable name="number-and-title-template">
+    <xsl:call-template name="gentext.template.exists">
+      <xsl:with-param name="context" select="'xref-number-and-title'"/>
+      <xsl:with-param name="name">
+        <xsl:call-template name="xpath.location"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="number-template">
+    <xsl:call-template name="gentext.template.exists">
+      <xsl:with-param name="context" select="'xref-number'"/>
+      <xsl:with-param name="name">
+        <xsl:call-template name="xpath.location"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="context">
+    <xsl:choose>
+      <xsl:when test="self::equation and not(title) and not(info/title)">
+         <xsl:value-of select="'xref-number'"/>
+      </xsl:when>
+      <xsl:when test="string($autonumber) != 0 
+                      and $number-and-title-template != 0
+                      and $xref.with.number.and.title != 0">
+         <xsl:value-of select="'xref-number-and-title'"/>
+      </xsl:when>
+      <xsl:when test="string($autonumber) != 0 
+                      and $number-template != 0">
+         <xsl:value-of select="'xref-number'"/>
+      </xsl:when>
+      <xsl:otherwise>
+         <xsl:value-of select="'xref'"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="gentext.template">
+    <xsl:with-param name="context" select="$context"/>
+    <xsl:with-param name="name">
+      <xsl:call-template name="xpath.location"/>
+    </xsl:with-param>
+    <xsl:with-param name="purpose" select="$purpose"/>
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:variable name="template">
+    <xsl:apply-templates select="." mode="object.title.template"/>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:text>object.title.markup: </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text>: </xsl:text>
+    <xsl:value-of select="$template"/>
+  </xsl:message>
+-->
+
+  <xsl:call-template name="substitute-markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+    <xsl:with-param name="template" select="$template"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="*" mode="object.title.markup.textonly">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="object.title.markup"/>
+  </xsl:variable>
+  <xsl:value-of select="normalize-space($title)"/>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.titleabbrev.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+
+  <!-- Just for consistency in template naming -->
+
+  <xsl:apply-templates select="." mode="titleabbrev.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.subtitle.markup">
+  <xsl:variable name="template">
+    <xsl:apply-templates select="." mode="object.subtitle.template"/>
+  </xsl:variable>
+
+  <xsl:call-template name="substitute-markup">
+    <xsl:with-param name="template" select="$template"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.xref.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="referrer"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:variable name="template">
+    <xsl:choose>
+      <xsl:when test="starts-with(normalize-space($xrefstyle), 'select:')">
+        <xsl:call-template name="make.gentext.template">
+          <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+          <xsl:with-param name="purpose" select="$purpose"/>
+          <xsl:with-param name="referrer" select="$referrer"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="starts-with(normalize-space($xrefstyle), 'template:')">
+        <xsl:value-of select="substring-after(normalize-space($xrefstyle), 'template:')"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="." mode="object.xref.template">
+          <xsl:with-param name="purpose" select="$purpose"/>
+          <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+          <xsl:with-param name="referrer" select="$referrer"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+<!-- 
+  <xsl:message>
+    <xsl:text>object.xref.markup: </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text>(</xsl:text>
+    <xsl:value-of select="$xrefstyle"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$purpose"/>
+    <xsl:text>)</xsl:text>
+    <xsl:text>: [</xsl:text>
+    <xsl:value-of select="$template"/>
+    <xsl:text>]</xsl:text>
+  </xsl:message>
+-->
+
+  <xsl:if test="$template = '' and $verbose != 0">
+    <xsl:message>
+      <xsl:text>object.xref.markup: empty xref template</xsl:text>
+      <xsl:text> for linkend="</xsl:text>
+      <xsl:value-of select="@id|@xml:id"/>
+      <xsl:text>" and @xrefstyle="</xsl:text>
+      <xsl:value-of select="$xrefstyle"/>
+      <xsl:text>"</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:call-template name="substitute-markup">
+    <xsl:with-param name="purpose" select="$purpose"/>
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="template" select="$template"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="listitem" mode="object.xref.markup">
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="parent::orderedlist">
+      <xsl:variable name="template">
+        <xsl:apply-templates select="." mode="object.xref.template"/>
+      </xsl:variable>
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="template" select="$template"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$verbose != 0">
+      <xsl:message>
+        <xsl:text>Xref is only supported to listitems in an</xsl:text>
+        <xsl:text> orderedlist: </xsl:text>
+        <xsl:value-of select=".//@id|.//@xml:id"/>
+      </xsl:message>
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question" mode="object.xref.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="referrer"/>
+
+  <xsl:variable name="deflabel">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+        <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]
+                              /@defaultlabel"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$qanda.defaultlabel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="template">
+    <xsl:choose>
+      <!-- This avoids double Q: Q: in xref when defaultlabel=qanda -->
+      <xsl:when test="$deflabel = 'qanda' and not(label)">%n</xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="." mode="object.xref.template">
+          <xsl:with-param name="purpose" select="$purpose"/>
+          <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+          <xsl:with-param name="referrer" select="$referrer"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="substitute-markup">
+    <xsl:with-param name="purpose" select="$purpose"/>
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="template" select="$template"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="substitute-markup">
+  <xsl:param name="template" select="''"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="title" select="''"/>
+  <xsl:param name="subtitle" select="''"/>
+  <xsl:param name="docname" select="''"/>
+  <xsl:param name="label" select="''"/>
+  <xsl:param name="pagenumber" select="''"/>
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="referrer"/>
+  <xsl:param name="verbose"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($template, '%')">
+      <xsl:value-of select="substring-before($template, '%')"/>
+      <xsl:variable name="candidate"
+             select="substring(substring-after($template, '%'), 1, 1)"/>
+      <xsl:choose>
+        <xsl:when test="$candidate = 't'">
+          <xsl:apply-templates select="." mode="insert.title.markup">
+            <xsl:with-param name="purpose" select="$purpose"/>
+            <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+            <xsl:with-param name="title">
+              <xsl:choose>
+                <xsl:when test="$title != ''">
+                  <xsl:copy-of select="$title"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:apply-templates select="." mode="title.markup">
+                    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+                    <xsl:with-param name="verbose" select="$verbose"/>
+                  </xsl:apply-templates>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:when test="$candidate = 's'">
+          <xsl:apply-templates select="." mode="insert.subtitle.markup">
+            <xsl:with-param name="purpose" select="$purpose"/>
+            <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+            <xsl:with-param name="subtitle">
+              <xsl:choose>
+                <xsl:when test="$subtitle != ''">
+                  <xsl:copy-of select="$subtitle"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:apply-templates select="." mode="subtitle.markup">
+                    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+                  </xsl:apply-templates>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:when test="$candidate = 'n'">
+          <xsl:apply-templates select="." mode="insert.label.markup">
+            <xsl:with-param name="purpose" select="$purpose"/>
+            <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+            <xsl:with-param name="label">
+              <xsl:choose>
+                <xsl:when test="$label != ''">
+                  <xsl:copy-of select="$label"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:apply-templates select="." mode="label.markup"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:when test="$candidate = 'p'">
+          <xsl:apply-templates select="." mode="insert.pagenumber.markup">
+            <xsl:with-param name="purpose" select="$purpose"/>
+            <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+            <xsl:with-param name="pagenumber">
+              <xsl:choose>
+                <xsl:when test="$pagenumber != ''">
+                  <xsl:copy-of select="$pagenumber"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:apply-templates select="." mode="pagenumber.markup"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:when test="$candidate = 'o'">
+          <!-- olink target document title -->
+          <xsl:apply-templates select="." mode="insert.olink.docname.markup">
+            <xsl:with-param name="purpose" select="$purpose"/>
+            <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+            <xsl:with-param name="docname">
+              <xsl:choose>
+                <xsl:when test="$docname != ''">
+                  <xsl:copy-of select="$docname"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:apply-templates select="." mode="olink.docname.markup"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:when test="$candidate = 'd'">
+          <xsl:apply-templates select="." mode="insert.direction.markup">
+            <xsl:with-param name="purpose" select="$purpose"/>
+            <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+            <xsl:with-param name="direction">
+              <xsl:choose>
+                <xsl:when test="$referrer">
+                  <xsl:variable name="referent-is-below">
+                    <xsl:for-each select="preceding::xref">
+                      <xsl:if test="generate-id(.) = generate-id($referrer)">1</xsl:if>
+                    </xsl:for-each>
+                  </xsl:variable>
+                  <xsl:choose>
+                    <xsl:when test="$referent-is-below = ''">
+                      <xsl:call-template name="gentext">
+                        <xsl:with-param name="key" select="'above'"/>
+                      </xsl:call-template>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:call-template name="gentext">
+                        <xsl:with-param name="key" select="'below'"/>
+                      </xsl:call-template>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:message>Attempt to use %d in gentext with no referrer!</xsl:message>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:when test="$candidate = '%' ">
+          <xsl:text>%</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>%</xsl:text><xsl:value-of select="$candidate"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <!-- recurse with the rest of the template string -->
+      <xsl:variable name="rest"
+            select="substring($template,
+            string-length(substring-before($template, '%'))+3)"/>
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="template" select="$rest"/>
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+        <xsl:with-param name="title" select="$title"/>
+        <xsl:with-param name="subtitle" select="$subtitle"/>
+        <xsl:with-param name="docname" select="$docname"/>
+        <xsl:with-param name="label" select="$label"/>
+        <xsl:with-param name="pagenumber" select="$pagenumber"/>
+        <xsl:with-param name="purpose" select="$purpose"/>
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$template"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="make.gentext.template">
+  <xsl:param name="xrefstyle" select="''"/>
+  <xsl:param name="purpose"/>
+  <xsl:param name="referrer"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+  <xsl:param name="target.elem" select="local-name(.)"/>
+
+  <!-- parse xrefstyle to get parts -->
+  <xsl:variable name="parts"
+      select="substring-after(normalize-space($xrefstyle), 'select:')"/>
+
+  <xsl:variable name="labeltype">
+    <xsl:choose>
+      <xsl:when test="contains($parts, 'labelnumber')">
+         <xsl:text>labelnumber</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($parts, 'labelname')">
+         <xsl:text>labelname</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($parts, 'label')">
+         <xsl:text>label</xsl:text>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="titletype">
+    <xsl:choose>
+      <xsl:when test="contains($parts, 'quotedtitle')">
+         <xsl:text>quotedtitle</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($parts, 'title')">
+         <xsl:text>title</xsl:text>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="pagetype">
+    <xsl:choose>
+      <xsl:when test="$insert.olink.page.number = 'no' and
+                      local-name($referrer) = 'olink'">
+        <!-- suppress page numbers -->
+      </xsl:when>
+      <xsl:when test="$insert.xref.page.number = 'no' and
+                      local-name($referrer) != 'olink'">
+        <!-- suppress page numbers -->
+      </xsl:when>
+      <xsl:when test="contains($parts, 'nopage')">
+         <xsl:text>nopage</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($parts, 'pagenumber')">
+         <xsl:text>pagenumber</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($parts, 'pageabbrev')">
+         <xsl:text>pageabbrev</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($parts, 'Page')">
+         <xsl:text>Page</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($parts, 'page')">
+         <xsl:text>page</xsl:text>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="docnametype">
+    <xsl:choose>
+      <xsl:when test="($olink.doctitle = 0 or
+                       $olink.doctitle = 'no') and
+                      local-name($referrer) = 'olink'">
+        <!-- suppress docname -->
+      </xsl:when>
+      <xsl:when test="contains($parts, 'nodocname')">
+         <xsl:text>nodocname</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($parts, 'docnamelong')">
+         <xsl:text>docnamelong</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($parts, 'docname')">
+         <xsl:text>docname</xsl:text>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="$labeltype != ''">
+    <xsl:choose>
+      <xsl:when test="$labeltype = 'labelname'">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key">
+            <xsl:choose>
+              <xsl:when test="local-name($referrer) = 'olink'">
+                <xsl:value-of select="$target.elem"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="local-name(.)"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="$labeltype = 'labelnumber'">
+        <xsl:text>%n</xsl:text>
+      </xsl:when>
+      <xsl:when test="$labeltype = 'label'">
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'xref-number'"/>
+          <xsl:with-param name="name">
+            <xsl:choose>
+              <xsl:when test="local-name($referrer) = 'olink'">
+                <xsl:value-of select="$target.elem"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:call-template name="xpath.location"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+          <xsl:with-param name="purpose" select="$purpose"/>
+          <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+          <xsl:with-param name="referrer" select="$referrer"/>
+        </xsl:call-template>
+      </xsl:when>
+    </xsl:choose>
+
+    <xsl:choose>
+      <xsl:when test="$titletype != ''">
+        <xsl:value-of select="$xref.label-title.separator"/>
+      </xsl:when>
+      <xsl:when test="$pagetype != '' and $pagetype != 'nopage'">
+        <xsl:value-of select="$xref.label-page.separator"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:if>
+
+  <xsl:if test="$titletype != ''">
+    <xsl:choose>
+      <xsl:when test="$titletype = 'title'">
+        <xsl:text>%t</xsl:text>
+      </xsl:when>
+      <xsl:when test="$titletype = 'quotedtitle'">
+        <xsl:call-template name="gentext.dingbat">
+          <xsl:with-param name="dingbat" select="'startquote'"/>
+        </xsl:call-template>
+        <xsl:text>%t</xsl:text>
+        <xsl:call-template name="gentext.dingbat">
+          <xsl:with-param name="dingbat" select="'endquote'"/>
+        </xsl:call-template>
+      </xsl:when>
+    </xsl:choose>
+
+    <xsl:choose>
+      <xsl:when test="$pagetype != '' and $pagetype != 'nopage'">
+        <xsl:value-of select="$xref.title-page.separator"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:if>
+  
+  <!-- special case: use regular xref template if just turning off page -->
+  <xsl:if test="($pagetype = 'nopage' or $docnametype = 'nodocname')
+                  and local-name($referrer) != 'olink'
+                  and $labeltype = '' 
+                  and $titletype = ''">
+    <xsl:apply-templates select="." mode="object.xref.template">
+      <xsl:with-param name="purpose" select="$purpose"/>
+      <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+      <xsl:with-param name="referrer" select="$referrer"/>
+    </xsl:apply-templates>
+  </xsl:if>
+
+  <xsl:if test="$pagetype != ''">
+    <xsl:choose>
+      <xsl:when test="$pagetype = 'page'">
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'xref'"/>
+          <xsl:with-param name="name" select="'page'"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="$pagetype = 'Page'">
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'xref'"/>
+          <xsl:with-param name="name" select="'Page'"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="$pagetype = 'pageabbrev'">
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'xref'"/>
+          <xsl:with-param name="name" select="'pageabbrev'"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="$pagetype = 'pagenumber'">
+        <xsl:text>%p</xsl:text>
+      </xsl:when>
+    </xsl:choose>
+
+  </xsl:if>
+
+  <!-- Add reference to other document title -->
+  <xsl:if test="$docnametype != '' and local-name($referrer) = 'olink'">
+    <!-- Any separator should be in the gentext template -->
+    <xsl:choose>
+      <xsl:when test="$docnametype = 'docnamelong'">
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'xref'"/>
+          <xsl:with-param name="name" select="'docnamelong'"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="$docnametype = 'docname'">
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'xref'"/>
+          <xsl:with-param name="name" select="'docname'"/>
+        </xsl:call-template>
+      </xsl:when>
+    </xsl:choose>
+
+  </xsl:if>
+  
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/common/gl.xml b/applications/content/template/docbook/common/gl.xml
new file mode 100644
index 0000000..8c06a93
--- /dev/null
+++ b/applications/content/template/docbook/common/gl.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="gl" english-language-name="Galician">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/gl.xml -->
+<!-- * -->
+<!-- * E-mail the edited gl.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Resumo"/>
+<l:gentext key="abstract" text="Resumo"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="R:"/>
+<l:gentext key="Appendix" text="Apêndice"/>
+<l:gentext key="appendix" text="Apêndice"/>
+<l:gentext key="Article" text="Artigo"/>
+<l:gentext key="article" text="Artigo"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Bibliografía"/>
+<l:gentext key="bibliography" text="Bibliografía"/>
+<l:gentext key="Book" text="Libro"/>
+<l:gentext key="book" text="Libro"/>
+<l:gentext key="CAUTION" text="CUIDADO"/>
+<l:gentext key="Caution" text="Cuidado"/>
+<l:gentext key="caution" text="Cuidado"/>
+<l:gentext key="Chapter" text="Capítulo"/>
+<l:gentext key="chapter" text="capítulo"/>
+<l:gentext key="Colophon" text="Colofón"/>
+<l:gentext key="colophon" text="Colofón"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dedicatoria"/>
+<l:gentext key="dedication" text="Dedicatoria"/>
+<l:gentext key="Edition" text="Edición"/>
+<l:gentext key="edition" text="Edición"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Ecuación"/>
+<l:gentext key="equation" text="Ecuación"/>
+<l:gentext key="Example" text="Exemplo"/>
+<l:gentext key="example" text="Exemplo"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="Figura"/>
+<l:gentext key="Glossary" text="Glosario"/>
+<l:gentext key="glossary" text="Glosario"/>
+<l:gentext key="GlossSee" text="Consulte"/>
+<l:gentext key="glosssee" text="Consulte"/>
+<l:gentext key="GlossSeeAlso" text="Vexa Tamén"/>
+<l:gentext key="glossseealso" text="Vexa Tamén"/>
+<l:gentext key="IMPORTANT" text="IMPORTANTE"/>
+<l:gentext key="important" text="Importante"/>
+<l:gentext key="Important" text="Importante"/>
+<l:gentext key="Index" text="Índice"/>
+<l:gentext key="index" text="Índice"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Aviso Legal"/>
+<l:gentext key="legalnotice" text="Aviso Legal"/>
+<l:gentext key="MsgAud" text="Audiencia"/>
+<l:gentext key="msgaud" text="Audiencia"/>
+<l:gentext key="MsgLevel" text="Nível"/>
+<l:gentext key="msglevel" text="Nível"/>
+<l:gentext key="MsgOrig" text="Orixen"/>
+<l:gentext key="msgorig" text="Orixen"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="Nota"/>
+<l:gentext key="Part" text="Parte"/>
+<l:gentext key="part" text="Parte"/>
+<l:gentext key="Preface" text="Prefacio"/>
+<l:gentext key="preface" text="Prefacio"/>
+<l:gentext key="Procedure" text="Procedimento"/>
+<l:gentext key="procedure" text="Procedimento"/>
+<l:gentext key="ProductionSet" text="Produción"/>
+<l:gentext key="PubDate" text="Data de Publicación"/>
+<l:gentext key="pubdate" text="Data de Publicación"/>
+<l:gentext key="Published" text="Publicado"/>
+<l:gentext key="published" text="Publicado"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="P &amp; R"/>
+<l:gentext key="qandadiv" text="P &amp; R"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="P:"/>
+<l:gentext key="question" text="P:"/>
+<l:gentext key="RefEntry" text="Entrada de Referencia"/>
+<l:gentext key="refentry" text="Entrada de Referencia"/>
+<l:gentext key="Reference" text="Referencia"/>
+<l:gentext key="reference" text="Referencia"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Nome"/>
+<l:gentext key="refname" text="Nome"/>
+<l:gentext key="RefSection" text="Sección"/>
+<l:gentext key="refsection" text="sección"/>
+<l:gentext key="RefSynopsisDiv" text="Sinopse"/>
+<l:gentext key="refsynopsisdiv" text="Sinopse"/>
+<l:gentext key="RevHistory" text="Historial de Revisións"/>
+<l:gentext key="revhistory" text="Historial de Revisións"/>
+<l:gentext key="revision" text="Revisión"/>
+<l:gentext key="Revision" text="Revisión"/>
+<l:gentext key="sect1" text="Sección"/>
+<l:gentext key="sect2" text="Sección"/>
+<l:gentext key="sect3" text="Sección"/>
+<l:gentext key="sect4" text="Sección"/>
+<l:gentext key="sect5" text="Sección"/>
+<l:gentext key="section" text="sección"/>
+<l:gentext key="Section" text="Sección"/>
+<l:gentext key="see" text="vexa"/>
+<l:gentext key="See" text="Vexa"/>
+<l:gentext key="seealso" text="Consulte Tamén"/>
+<l:gentext key="Seealso" text="Consulte tamén"/>
+<l:gentext key="SeeAlso" text="Consulte Tamén"/>
+<l:gentext key="set" text="Conxunto"/>
+<l:gentext key="Set" text="Conxunto"/>
+<l:gentext key="setindex" text="Índice de Conxuntos"/>
+<l:gentext key="SetIndex" text="Índice de Conxuntos"/>
+<l:gentext key="Sidebar" text="Barra Lateral"/>
+<l:gentext key="sidebar" text="barra lateral"/>
+<l:gentext key="step" text="paso"/>
+<l:gentext key="Step" text="Paso"/>
+<l:gentext key="table" text="Táboa"/>
+<l:gentext key="Table" text="Táboa"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Axuda"/>
+<l:gentext key="TIP" text="AXUDA"/>
+<l:gentext key="Tip" text="Axuda"/>
+<l:gentext key="Warning" text="Atención"/>
+<l:gentext key="warning" text="Atención"/>
+<l:gentext key="WARNING" text="ATENCIÓn"/>
+<l:gentext key="and" text="e"/>
+<l:gentext key="or" text="ou"/>
+<l:gentext key="by" text="por"/>
+<l:gentext key="Edited" text="Editado"/>
+<l:gentext key="edited" text="Editado"/>
+<l:gentext key="Editedby" text="Editado por"/>
+<l:gentext key="editedby" text="Editado por"/>
+<l:gentext key="in" text="en"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Notas"/>
+<l:gentext key="Notes" text="Notas"/>
+<l:gentext key="Pgs" text="Páxinas"/>
+<l:gentext key="pgs" text="Páxinas"/>
+<l:gentext key="Revisedby" text="Revisado por: "/>
+<l:gentext key="revisedby" text="Revisado por: "/>
+<l:gentext key="TableNotes" text="Notas"/>
+<l:gentext key="tablenotes" text="Notas"/>
+<l:gentext key="TableofContents" text="Índice"/>
+<l:gentext key="tableofcontents" text="Índice"/>
+<l:gentext key="unexpectedelementname" text="Nome de ítem inesperado"/>
+<l:gentext key="unsupported" text="non soportado"/>
+<l:gentext key="xrefto" text="referencia para"/>
+<l:gentext key="Authors" text="Autores"/>
+<l:gentext key="copyeditor" text="Editor de Cópia"/>
+<l:gentext key="graphicdesigner" text="Deseñador Gráfico"/>
+<l:gentext key="productioneditor" text="Editor de Produción"/>
+<l:gentext key="technicaleditor" text="Editor Técnico"/>
+<l:gentext key="translator" text="Trandutor"/>
+<l:gentext key="listofequations" text="Lista de Ecuacións"/>
+<l:gentext key="ListofEquations" text="Lista de Ecuacións"/>
+<l:gentext key="ListofExamples" text="Lista de Exemplos"/>
+<l:gentext key="listofexamples" text="Lista de Exemplos"/>
+<l:gentext key="ListofFigures" text="Lista de Figuras"/>
+<l:gentext key="listoffigures" text="Lista de Figuras"/>
+<l:gentext key="ListofProcedures" text="Lista de Procedimentos"/>
+<l:gentext key="listofprocedures" text="Lista de Procedimentos"/>
+<l:gentext key="listoftables" text="Lista de Táboas"/>
+<l:gentext key="ListofTables" text="Lista de Táboas"/>
+<l:gentext key="ListofUnknown" text="Lista de Descoñecido"/>
+<l:gentext key="listofunknown" text="Lista de Descoñecido"/>
+<l:gentext key="nav-home" text="Inicio"/>
+<l:gentext key="nav-next" text="Próximo"/>
+<l:gentext key="nav-next-sibling" text="Próxima Parte"/>
+<l:gentext key="nav-prev" text="Anterior"/>
+<l:gentext key="nav-prev-sibling" text="Parte Anterior"/>
+<l:gentext key="nav-up" text="Subir"/>
+<l:gentext key="nav-toc" text="Índice"/>
+<l:gentext key="Draft" text="Borrador"/>
+<l:gentext key="above" text="acima"/>
+<l:gentext key="below" text="abaixo"/>
+<l:gentext key="sectioncalled" text="a sección chamada"/>
+<l:gentext key="index symbols" text="Símbolos"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzáéíóúñ"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="« "/>
+<l:dingbat key="endquote" text=" »"/>
+<l:dingbat key="nestedstartquote" text="« "/>
+<l:dingbat key="nestedendquote" text=" »"/>
+<l:dingbat key="singlestartquote" text="‹"/>
+<l:dingbat key="singleendquote" text="›"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apêndice %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ecuación %n. %t"/>
+<l:template name="example" text="Exemplo %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedimento %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produción %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Pergunta %n"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="TáboaTáboa %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apêndice %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="« %t »"/>
+<l:template name="refsection" text="« %t »"/>
+<l:template name="refsect1" text="« %t »"/>
+<l:template name="refsect2" text="« %t »"/>
+<l:template name="refsect3" text="« %t »"/>
+<l:template name="sect1" text="« %t »"/>
+<l:template name="sect2" text="« %t »"/>
+<l:template name="sect3" text="« %t »"/>
+<l:template name="sect4" text="« %t »"/>
+<l:template name="sect5" text="« %t »"/>
+<l:template name="section" text="« %t »"/>
+<l:template name="simplesect" text="« %t »"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="Apêndice %n"/>
+<l:template name="bridgehead" text="Sección %n"/>
+<l:template name="chapter" text="Capítulo %n"/>
+<l:template name="equation" text="Ecuación %n"/>
+<l:template name="example" text="Exemplo %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Parte %n"/>
+<l:template name="procedure" text="Procedimento %n"/>
+<l:template name="productionset" text="Produción %n"/>
+<l:template name="qandadiv" text="P &amp; R %n"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="sect1" text="Sección %n"/>
+<l:template name="sect2" text="Sección %n"/>
+<l:template name="sect3" text="Sección %n"/>
+<l:template name="sect4" text="Sección %n"/>
+<l:template name="sect5" text="Sección %n"/>
+<l:template name="section" text="Sección %n"/>
+<l:template name="table" text="Táboa %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apêndice %n, %t"/>
+<l:template name="bridgehead" text="Sección %n, « %t »"/>
+<l:template name="chapter" text="Capítulo %n, %t"/>
+<l:template name="equation" text="Ecuación %n, « %t »"/>
+<l:template name="example" text="Exemplo %n, « %t »"/>
+<l:template name="figure" text="Figura %n, « %t »"/>
+<l:template name="part" text="Parte %n, « %t »"/>
+<l:template name="procedure" text="Procedimento %n, « %t »"/>
+<l:template name="productionset" text="Produción %n, « %t »"/>
+<l:template name="qandadiv" text="P &amp; R %n, « %t »"/>
+<l:template name="refsect1" text="a sección chamada « %t »"/>
+<l:template name="refsect2" text="a sección chamada « %t »"/>
+<l:template name="refsect3" text="a sección chamada « %t »"/>
+<l:template name="refsection" text="a sección chamada « %t »"/>
+<l:template name="sect1" text="Sección %n, « %t »"/>
+<l:template name="sect2" text="Sección %n, « %t »"/>
+<l:template name="sect3" text="Sección %n, « %t »"/>
+<l:template name="sect4" text="Sección %n, « %t »"/>
+<l:template name="sect5" text="Sección %n, « %t »"/>
+<l:template name="section" text="Sección %n, « %t »"/>
+<l:template name="simplesect" text="a sección chamada « %t »"/>
+<l:template name="table" text="Táboa %n, « %t »"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" e "/>
+<l:template name="seplast" text=", e "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Consulte %t."/>
+<l:template name="seealso" text="Vexa Tamén %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audiencia: "/>
+<l:template name="MsgLevel" text="Nível: "/>
+<l:template name="MsgOrig" text="Orixen: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definición: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Xaneiro"/>
+<l:template name="February" text="Febreiro"/>
+<l:template name="March" text="Marzo"/>
+<l:template name="April" text="Abril"/>
+<l:template name="May" text="Maio"/>
+<l:template name="June" text="Xuño"/>
+<l:template name="July" text="Xullo"/>
+<l:template name="August" text="Agosto"/>
+<l:template name="September" text="Setembro"/>
+<l:template name="October" text="Outubro"/>
+<l:template name="November" text="Novembro"/>
+<l:template name="December" text="Decembro"/>
+<l:template name="Monday" text="Luns"/>
+<l:template name="Tuesday" text="Martes"/>
+<l:template name="Wednesday" text="Mércores"/>
+<l:template name="Thursday" text="Xoves"/>
+<l:template name="Friday" text="Venres"/>
+<l:template name="Saturday" text="Sábado"/>
+<l:template name="Sunday" text="Domingo"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Xan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Abr"/>
+<l:template name="May" text="Mai"/>
+<l:template name="Jun" text="Xuñ"/>
+<l:template name="Jul" text="Xul"/>
+<l:template name="Aug" text="Ago"/>
+<l:template name="Sep" text="Set"/>
+<l:template name="Oct" text="Out"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Lun"/>
+<l:template name="Tue" text="Mar"/>
+<l:template name="Wed" text="Mer"/>
+<l:template name="Thu" text="Xov"/>
+<l:template name="Fri" text="Ven"/>
+<l:template name="Sat" text="Sab"/>
+<l:template name="Sun" text="Dom"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0456 Galician"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/gu.xml b/applications/content/template/docbook/common/gu.xml
new file mode 100644
index 0000000..4ff30f1
--- /dev/null
+++ b/applications/content/template/docbook/common/gu.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="gu" english-language-name="Gujarati">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/gu.xml -->
+<!-- * -->
+<!-- * E-mail the edited gu.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="સાર"/>
+<l:gentext key="abstract" text="સાર"/>
+<l:gentext key="Acknowledgements" text="પ્રત્યુત્તર"/>
+<l:gentext key="acknowledgements" text="પ્રત્યુત્તર"/>
+<l:gentext key="Answer" text="જ:"/>
+<l:gentext key="answer" text="જ:"/>
+<l:gentext key="Appendix" text="પરિશિષ્ટ"/>
+<l:gentext key="appendix" text="પરિશિષ્ટ"/>
+<l:gentext key="Article" text="લેખ"/>
+<l:gentext key="article" text="લેખ"/>
+<l:gentext key="Author" text="લેખક"/>
+<l:gentext key="Bibliography" text="સંદર્ભગ્રંથ"/>
+<l:gentext key="bibliography" text="સંદર્ભગ્રંથ"/>
+<l:gentext key="Book" text="પુસ્તક"/>
+<l:gentext key="book" text="પુસ્તક"/>
+<l:gentext key="CAUTION" text="સાવધાન"/>
+<l:gentext key="Caution" text="સાવધાન"/>
+<l:gentext key="caution" text="સાવધાન"/>
+<l:gentext key="Chapter" text="પ્રકરણ"/>
+<l:gentext key="chapter" text="પ્રકરણ"/>
+<l:gentext key="Colophon" text="ગ્રંથપરિચય"/>
+<l:gentext key="colophon" text="ગ્રંથપરિચય"/>
+<l:gentext key="Copyright" text="કૉપિરાઇટ"/>
+<l:gentext key="copyright" text="કૉપિરાઇટ"/>
+<l:gentext key="Dedication" text="સમર્પણ"/>
+<l:gentext key="dedication" text="સમર્પણ"/>
+<l:gentext key="Edition" text="પ્રકાશન"/>
+<l:gentext key="edition" text="પ્રકાશન"/>
+<l:gentext key="Editor" text="સંપાદક"/>
+<l:gentext key="Equation" text="સમીકરણ"/>
+<l:gentext key="equation" text="સમીકરણ"/>
+<l:gentext key="Example" text="ઉદાહરણ"/>
+<l:gentext key="example" text="ઉદાહરણ"/>
+<l:gentext key="Figure" text="આકૃતિ"/>
+<l:gentext key="figure" text="આકૃતિ"/>
+<l:gentext key="Glossary" text="શબ્દાવલી"/>
+<l:gentext key="glossary" text="શબ્દાવલી"/>
+<l:gentext key="GlossSee" text="જુઓ"/>
+<l:gentext key="glosssee" text="જુઓ"/>
+<l:gentext key="GlossSeeAlso" text="આપણજુઓ"/>
+<l:gentext key="glossseealso" text="આપણજુઓ"/>
+<l:gentext key="IMPORTANT" text="મહત્વનું"/>
+<l:gentext key="important" text="મહત્વનું"/>
+<l:gentext key="Important" text="મહત્વનું"/>
+<l:gentext key="Index" text="અનુક્રમણિકા"/>
+<l:gentext key="index" text="અનુક્રમણિકા"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="માન્યસૂચન"/>
+<l:gentext key="legalnotice" text="માન્યસૂચન"/>
+<l:gentext key="MsgAud" text="શ્રોતા"/>
+<l:gentext key="msgaud" text="શ્રોતા"/>
+<l:gentext key="MsgLevel" text="સ્તર"/>
+<l:gentext key="msglevel" text="સ્તર"/>
+<l:gentext key="MsgOrig" text="મૂળ"/>
+<l:gentext key="msgorig" text="મૂળ"/>
+<l:gentext key="NOTE" text="નોંધ"/>
+<l:gentext key="Note" text="નોંધ"/>
+<l:gentext key="note" text="નોંધ"/>
+<l:gentext key="Part" text="ભાગ"/>
+<l:gentext key="part" text="ભાગ"/>
+<l:gentext key="Preface" text="પ્રસ્તાવના"/>
+<l:gentext key="preface" text="પ્રસ્તાવના"/>
+<l:gentext key="Procedure" text="પ્રક્રિયા"/>
+<l:gentext key="procedure" text="પ્રક્રિયા"/>
+<l:gentext key="ProductionSet" text="ઉત્પાદન"/>
+<l:gentext key="PubDate" text="પ્રકાશન તારીખ"/>
+<l:gentext key="pubdate" text="પ્રકાશન તારીખ"/>
+<l:gentext key="Published" text="પ્રકાશિત"/>
+<l:gentext key="published" text="પ્રકાશિત"/>
+<l:gentext key="Publisher" text="પ્રકાશક"/>
+<l:gentext key="Qandadiv" text="પ્ર. અને જ."/>
+<l:gentext key="qandadiv" text="પ્ર. અને જ."/>
+<l:gentext key="QandASet" text="વારંવાર પૂછવામાં આવતા પ્રશ્ર્નો"/>
+<l:gentext key="Question" text="જ:"/>
+<l:gentext key="question" text="જ:"/>
+<l:gentext key="RefEntry" text="પાનું"/>
+<l:gentext key="refentry" text="પાનું"/>
+<l:gentext key="Reference" text="સંદર્ભ"/>
+<l:gentext key="reference" text="સંદર્ભ"/>
+<l:gentext key="References" text="સંદર્ભો"/>
+<l:gentext key="RefName" text="નામ"/>
+<l:gentext key="refname" text="નામ"/>
+<l:gentext key="RefSection" text="વિભાગ"/>
+<l:gentext key="refsection" text="વિભાગ"/>
+<l:gentext key="RefSynopsisDiv" text="સારાંશ"/>
+<l:gentext key="refsynopsisdiv" text="સારાંશ"/>
+<l:gentext key="RevHistory" text="પુનરાવર્તનઈતિહાસ"/>
+<l:gentext key="revhistory" text="પુનરાવર્તનઈતિહાસ"/>
+<l:gentext key="revision" text="પુનરાવર્તન"/>
+<l:gentext key="Revision" text="પુનરાવર્તન"/>
+<l:gentext key="sect1" text="વિભાગ"/>
+<l:gentext key="sect2" text="વિભાગ"/>
+<l:gentext key="sect3" text="વિભાગ"/>
+<l:gentext key="sect4" text="વિભાગ"/>
+<l:gentext key="sect5" text="વિભાગ"/>
+<l:gentext key="section" text="વિભાગ"/>
+<l:gentext key="Section" text="વિભાગ"/>
+<l:gentext key="see" text="જુઓ"/>
+<l:gentext key="See" text="જુઓ"/>
+<l:gentext key="seealso" text="આપણજુઓ"/>
+<l:gentext key="Seealso" text="આપણજુઓ"/>
+<l:gentext key="SeeAlso" text="આપણજુઓ"/>
+<l:gentext key="set" text="સુયોજિતકરો"/>
+<l:gentext key="Set" text="સુયોજિતકરો"/>
+<l:gentext key="setindex" text="અનુક્રમણિકાસુયોજિતકરો"/>
+<l:gentext key="SetIndex" text="અનુક્રમણિકાસુયોજિતકરો"/>
+<l:gentext key="Sidebar" text="બાજુપટ્ટી"/>
+<l:gentext key="sidebar" text="બાજુપટ્ટી"/>
+<l:gentext key="step" text="પગલું"/>
+<l:gentext key="Step" text="પગલું"/>
+<l:gentext key="table" text="કોષ્ટક"/>
+<l:gentext key="Table" text="કોષ્ટક"/>
+<l:gentext key="task" text="કાર્ય"/>
+<l:gentext key="Task" text="કાર્ય"/>
+<l:gentext key="tip" text="મદદ"/>
+<l:gentext key="TIP" text="મદદ"/>
+<l:gentext key="Tip" text="મદદ"/>
+<l:gentext key="Warning" text="ચેતવણી"/>
+<l:gentext key="warning" text="ચેતવણી"/>
+<l:gentext key="WARNING" text="ચેતવણી"/>
+<l:gentext key="and" text="અને"/>
+<l:gentext key="or" text="અથવા"/>
+<l:gentext key="by" text="દ્દારા"/>
+<l:gentext key="Edited" text="ફેરફારથયેલછે"/>
+<l:gentext key="edited" text="ફેરફારથયેલછે"/>
+<l:gentext key="Editedby" text="દ્વારાફેરફારથયેલછે"/>
+<l:gentext key="editedby" text="દ્વારાફેરફારથયેલછે"/>
+<l:gentext key="in" text="અંદર"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="નોંધો"/>
+<l:gentext key="Notes" text="નોંધો"/>
+<l:gentext key="Pgs" text="પાનાંઓ."/>
+<l:gentext key="pgs" text="પાનાંઓ."/>
+<l:gentext key="Revisedby" text="દ્વારાપુનરાવર્તનથયેલ: "/>
+<l:gentext key="revisedby" text="દ્વારાપુનરાવર્તનથયેલ: "/>
+<l:gentext key="TableNotes" text="નોંધો"/>
+<l:gentext key="tablenotes" text="નોંધો"/>
+<l:gentext key="TableofContents" text="વિષયસુચીકોષ્ટક"/>
+<l:gentext key="tableofcontents" text="વિષયસુચીકોષ્ટક"/>
+<l:gentext key="unexpectedelementname" text="અનિચ્છનિયસભ્યનામ"/>
+<l:gentext key="unsupported" text="બિનઆધારભૂત"/>
+<l:gentext key="xrefto" text=""/>
+<l:gentext key="Authors" text="લેખકો"/>
+<l:gentext key="copyeditor" text="કૉપી સંપાદન"/>
+<l:gentext key="graphicdesigner" text="ગ્રાફિક રચિયતા"/>
+<l:gentext key="productioneditor" text="ઉત્પાદન સંપાદક"/>
+<l:gentext key="technicaleditor" text="તકનીકી સંપાદક"/>
+<l:gentext key="translator" text="અનુવાદક"/>
+<l:gentext key="listofequations" text="સમીકરણોનીયાદી"/>
+<l:gentext key="ListofEquations" text="સમીકરણોનીયાદી"/>
+<l:gentext key="ListofExamples" text="ઉદાહરણોનીયાદી"/>
+<l:gentext key="listofexamples" text="ઉદાહરણોનીયાદી"/>
+<l:gentext key="ListofFigures" text="આકૃતિઓનીયાદી"/>
+<l:gentext key="listoffigures" text="આકૃતિઓનીયાદી"/>
+<l:gentext key="ListofProcedures" text="પ્રક્રિયાઓનીયાદી"/>
+<l:gentext key="listofprocedures" text="પ્રક્રિયાઓનીયાદી"/>
+<l:gentext key="listoftables" text="કોષ્ટકોનીયાદી"/>
+<l:gentext key="ListofTables" text="કોષ્ટકોનીયાદી"/>
+<l:gentext key="ListofUnknown" text="અજાણોનીયાદી"/>
+<l:gentext key="listofunknown" text="અજાણોનીયાદી"/>
+<l:gentext key="nav-home" text="ઘર"/>
+<l:gentext key="nav-next" text="આગળવધો"/>
+<l:gentext key="nav-next-sibling" text="ઝડપીઆગળધપાવો"/>
+<l:gentext key="nav-prev" text="પહેલાનું"/>
+<l:gentext key="nav-prev-sibling" text="ઝડપીપાછળધપાવો"/>
+<l:gentext key="nav-up" text="ઉપર"/>
+<l:gentext key="nav-toc" text="વિષયસુચીકોષ્ટક"/>
+<l:gentext key="Draft" text="ડ્રાફ્ટ"/>
+<l:gentext key="above" text="ઉપર"/>
+<l:gentext key="below" text="નીચે"/>
+<l:gentext key="sectioncalled" text="બોલાવાયેલવિભાગ"/>
+<l:gentext key="index symbols" text="સંકેતો"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="કખગઘચછજઝટઠડઢનણયરલવસશષહ"/>
+<l:gentext key="uppercase.alpha" text="કખગઘચછજઝટઠડઢનણયરલવસશષહ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="પરિશિષ્ટ %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="પ્રકરણ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="સમીકરણ %n. %t"/>
+<l:template name="example" text="ઉદાહરણ %n. %t"/>
+<l:template name="figure" text="આકૃતિ %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ભાગ %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="પ્રક્રિયા %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ઉત્પાદન %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="કોષ્ટક %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="પરિશિષ્ટ %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="પ્રકરણ %n. %t"/>
+<l:template name="part" text="ભાગ %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="જ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="જ: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="જ: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsection" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsect1" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsect2" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsect3" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="sect1" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="sect2" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="sect3" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="sect4" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="sect5" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="section" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="simplesect" text="બોલાવાયેલવિભાગ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="જ: %n"/>
+<l:template name="appendix" text="પરિશિષ્ટ %n"/>
+<l:template name="bridgehead" text="વિભાગ %n"/>
+<l:template name="chapter" text="પ્રકરણ %n"/>
+<l:template name="equation" text="સમીકરણ %n"/>
+<l:template name="example" text="ઉદાહરણ %n"/>
+<l:template name="figure" text="આકૃતિ %n"/>
+<l:template name="part" text="ભાગ %n"/>
+<l:template name="procedure" text="પ્રક્રિયા %n"/>
+<l:template name="productionset" text="ઉત્પાદન %n"/>
+<l:template name="qandadiv" text="પ્ર. અને જ. %n"/>
+<l:template name="qandaentry" text="જ: %n"/>
+<l:template name="question" text="જ: %n"/>
+<l:template name="sect1" text="વિભાગ %n"/>
+<l:template name="sect2" text="વિભાગ %n"/>
+<l:template name="sect3" text="વિભાગ %n"/>
+<l:template name="sect4" text="વિભાગ %n"/>
+<l:template name="sect5" text="વિભાગ %n"/>
+<l:template name="section" text="વિભાગ %n"/>
+<l:template name="table" text="કોષ્ટક %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="પરિશિષ્ટ %n, %t"/>
+<l:template name="bridgehead" text="વિભાગ %n, “%t”"/>
+<l:template name="chapter" text="પ્રકરણ %n, %t"/>
+<l:template name="equation" text="સમીકરણ %n, “%t”"/>
+<l:template name="example" text="ઉદાહરણ %n, “%t”"/>
+<l:template name="figure" text="આકૃતિ %n, “%t”"/>
+<l:template name="part" text="ભાગ %n, “%t”"/>
+<l:template name="procedure" text="પ્રક્રિયા %n, “%t”"/>
+<l:template name="productionset" text="ઉત્પાદન %n, “%t”"/>
+<l:template name="qandadiv" text="પ્ર. અને જ. %n, “%t”"/>
+<l:template name="refsect1" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsect2" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsect3" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="refsection" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="sect1" text="વિભાગ %n, “%t”"/>
+<l:template name="sect2" text="વિભાગ %n, “%t”"/>
+<l:template name="sect3" text="વિભાગ %n, “%t”"/>
+<l:template name="sect4" text="વિભાગ %n, “%t”"/>
+<l:template name="sect5" text="વિભાગ %n, “%t”"/>
+<l:template name="section" text="વિભાગ %n, “%t”"/>
+<l:template name="simplesect" text="બોલાવાયેલવિભાગ “%t”"/>
+<l:template name="table" text="કોષ્ટક %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" અને "/>
+<l:template name="seplast" text=", અને "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="જુઓ %t."/>
+<l:template name="seealso" text="આપણજુઓ %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="શ્રોતા: "/>
+<l:template name="MsgLevel" text="સ્તર: "/>
+<l:template name="MsgOrig" text="મૂળ: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[વ્યાખ્યા: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="જાન્યુઆરી"/>
+<l:template name="February" text="ફેબ્રુઆરી"/>
+<l:template name="March" text="માર્ચ"/>
+<l:template name="April" text="એપ્રિલ"/>
+<l:template name="May" text="મે"/>
+<l:template name="June" text="જૂન"/>
+<l:template name="July" text="જુલાઇ"/>
+<l:template name="August" text="ઑગસ્ટ"/>
+<l:template name="September" text="સપ્ટેમ્બર"/>
+<l:template name="October" text="ઑક્ટોબર"/>
+<l:template name="November" text="નવેમ્બર"/>
+<l:template name="December" text="ડિસેમ્બર"/>
+<l:template name="Monday" text="સોમવાર"/>
+<l:template name="Tuesday" text="મંગળવાર"/>
+<l:template name="Wednesday" text="બુધવાર"/>
+<l:template name="Thursday" text="ગુરુવાર"/>
+<l:template name="Friday" text="શુક્રવાર"/>
+<l:template name="Saturday" text="શનિવાર"/>
+<l:template name="Sunday" text="રવિવાર"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="જાન"/>
+<l:template name="Feb" text="ફેબ"/>
+<l:template name="Mar" text="માર્ચ"/>
+<l:template name="Apr" text="એપ્ર"/>
+<l:template name="May" text="મે"/>
+<l:template name="Jun" text="જૂન"/>
+<l:template name="Jul" text="જુલા"/>
+<l:template name="Aug" text="ઑગ"/>
+<l:template name="Sep" text="સપ્ટે"/>
+<l:template name="Oct" text="ઑક્ટો"/>
+<l:template name="Nov" text="નવે"/>
+<l:template name="Dec" text="ડિસ"/>
+<l:template name="Mon" text="સોમ"/>
+<l:template name="Tue" text="મંગળ"/>
+<l:template name="Wed" text="બુધ"/>
+<l:template name="Thu" text="ગુરુ"/>
+<l:template name="Fri" text="શુક્ર"/>
+<l:template name="Sat" text="શનિ"/>
+<l:template name="Sun" text="રવિ"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0447 Gujarati"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">સંકેતો</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/he.xml b/applications/content/template/docbook/common/he.xml
new file mode 100644
index 0000000..8605a68
--- /dev/null
+++ b/applications/content/template/docbook/common/he.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="he" english-language-name="Hebrew">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/he.xml -->
+<!-- * -->
+<!-- * E-mail the edited he.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="סיכום"/>
+<l:gentext key="abstract" text="סיכום"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="ת:"/>
+<l:gentext key="answer" text="ת:"/>
+<l:gentext key="Appendix" text="נספח"/>
+<l:gentext key="appendix" text="נספח"/>
+<l:gentext key="Article" text="מאמר"/>
+<l:gentext key="article" text="מאמר"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="ביבליוגרפיה"/>
+<l:gentext key="bibliography" text="ביבליוגרפיה"/>
+<l:gentext key="Book" text="ספר"/>
+<l:gentext key="book" text="ספר"/>
+<l:gentext key="CAUTION" text="אזהרה"/>
+<l:gentext key="Caution" text="אזהרה"/>
+<l:gentext key="caution" text="אזהרה"/>
+<l:gentext key="Chapter" text="פרק"/>
+<l:gentext key="chapter" text="פרק"/>
+<l:gentext key="Colophon" text="קולופון"/>
+<l:gentext key="colophon" text="קולופון"/>
+<l:gentext key="Copyright" text="זכויות יוצרים"/>
+<l:gentext key="copyright" text="זכויות יוצרים"/>
+<l:gentext key="Dedication" text="הקדשה"/>
+<l:gentext key="dedication" text="הקדשה"/>
+<l:gentext key="Edition" text="מהדורה"/>
+<l:gentext key="edition" text="מהדורה"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="משוואה"/>
+<l:gentext key="equation" text="משוואה"/>
+<l:gentext key="Example" text="דוגמה"/>
+<l:gentext key="example" text="דוגמה"/>
+<l:gentext key="Figure" text="איור"/>
+<l:gentext key="figure" text="איור"/>
+<l:gentext key="Glossary" text="מילון מונחים"/>
+<l:gentext key="glossary" text="מילון מונחים"/>
+<l:gentext key="GlossSee" text="ראה"/>
+<l:gentext key="glosssee" text="ראה"/>
+<l:gentext key="GlossSeeAlso" text="ראה גם"/>
+<l:gentext key="glossseealso" text="ראה גם"/>
+<l:gentext key="IMPORTANT" text="חשוב"/>
+<l:gentext key="important" text="חשוב"/>
+<l:gentext key="Important" text="חשוב"/>
+<l:gentext key="Index" text="אינדקס"/>
+<l:gentext key="index" text="אינדקס"/>
+<l:gentext key="ISBN" text="מספר ספר סטנדרטי בינלאומי"/>
+<l:gentext key="isbn" text="מספר ספר סטנדרטי בינלאומי"/>
+<l:gentext key="LegalNotice" text="הודעה משפטית"/>
+<l:gentext key="legalnotice" text="הודעה משפטית"/>
+<l:gentext key="MsgAud" text="קהל יעד"/>
+<l:gentext key="msgaud" text="קהל יעד"/>
+<l:gentext key="MsgLevel" text="רמה"/>
+<l:gentext key="msglevel" text="רמה"/>
+<l:gentext key="MsgOrig" text="מקור"/>
+<l:gentext key="msgorig" text="מקור"/>
+<l:gentext key="NOTE" text="שים לב"/>
+<l:gentext key="Note" text="שים לב"/>
+<l:gentext key="note" text="שים לב"/>
+<l:gentext key="Part" text="חלק"/>
+<l:gentext key="part" text="חלק"/>
+<l:gentext key="Preface" text="מבוא"/>
+<l:gentext key="preface" text="מבוא"/>
+<l:gentext key="Procedure" text="הליך"/>
+<l:gentext key="procedure" text="הליך"/>
+<l:gentext key="ProductionSet" text="ייצור"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="הוצא לאור"/>
+<l:gentext key="published" text="הוצא לאור"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="ת ו ש"/>
+<l:gentext key="qandadiv" text="ת ו ש"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="ש:"/>
+<l:gentext key="question" text="ש:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="מראה מקום"/>
+<l:gentext key="reference" text="מראה מקום"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="שם"/>
+<l:gentext key="refname" text="שם"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="תמצית"/>
+<l:gentext key="refsynopsisdiv" text="תמצית"/>
+<l:gentext key="RevHistory" text="היסטוריית גירסאות"/>
+<l:gentext key="revhistory" text="היסטוריית גירסאות"/>
+<l:gentext key="revision" text="גירסה"/>
+<l:gentext key="Revision" text="גירסה"/>
+<l:gentext key="sect1" text="סעיף"/>
+<l:gentext key="sect2" text="סעיף"/>
+<l:gentext key="sect3" text="סעיף"/>
+<l:gentext key="sect4" text="סעיף"/>
+<l:gentext key="sect5" text="סעיף"/>
+<l:gentext key="section" text="סעיף"/>
+<l:gentext key="Section" text="סעיף"/>
+<l:gentext key="see" text="ראה"/>
+<l:gentext key="See" text="ראה"/>
+<l:gentext key="seealso" text="ראה גם"/>
+<l:gentext key="Seealso" text="ראה גם"/>
+<l:gentext key="SeeAlso" text="ראה גם"/>
+<l:gentext key="set" text="סידרה"/>
+<l:gentext key="Set" text="סידרה"/>
+<l:gentext key="setindex" text="אינקדקס סדרות"/>
+<l:gentext key="SetIndex" text="אינדקס סדרות"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="פס צדדי"/>
+<l:gentext key="step" text="צעד"/>
+<l:gentext key="Step" text="צעד"/>
+<l:gentext key="table" text="טבלה"/>
+<l:gentext key="Table" text="טבלה"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="עצה"/>
+<l:gentext key="TIP" text="עצה"/>
+<l:gentext key="Tip" text="עצה"/>
+<l:gentext key="Warning" text="אזהרה"/>
+<l:gentext key="warning" text="אזהרה"/>
+<l:gentext key="WARNING" text="אזהרה"/>
+<l:gentext key="and" text="ו"/>
+<l:gentext key="or" text="או"/>
+<l:gentext key="by" text="מאת"/>
+<l:gentext key="Edited" text="נערך"/>
+<l:gentext key="edited" text="נערך"/>
+<l:gentext key="Editedby" text="נערך על ידי"/>
+<l:gentext key="editedby" text="נערך על ידי"/>
+<l:gentext key="in" text="ב"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="הערות"/>
+<l:gentext key="Notes" text="הערות"/>
+<l:gentext key="Pgs" text="עמודים"/>
+<l:gentext key="pgs" text="עמודים"/>
+<l:gentext key="Revisedby" text="הוגה על ידי: "/>
+<l:gentext key="revisedby" text="הוגה על ידי: "/>
+<l:gentext key="TableNotes" text="הערות"/>
+<l:gentext key="tablenotes" text="הערות"/>
+<l:gentext key="TableofContents" text="תוכן העניינים"/>
+<l:gentext key="tableofcontents" text="תוכן העניינים"/>
+<l:gentext key="unexpectedelementname" text="שם מרכיב בלתי צפוי"/>
+<l:gentext key="unsupported" text="לא נתמך"/>
+<l:gentext key="xrefto" text="התייחסות צולבת אל"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="רשימת משוואות"/>
+<l:gentext key="ListofEquations" text="רשימת משוואות"/>
+<l:gentext key="ListofExamples" text="רשימת דוגמאות"/>
+<l:gentext key="listofexamples" text="רשימת דוגמאות"/>
+<l:gentext key="ListofFigures" text="רשימת איורים"/>
+<l:gentext key="listoffigures" text="רשימת איורים"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="רשימת טבלאות"/>
+<l:gentext key="ListofTables" text="רשימת טבלאות"/>
+<l:gentext key="ListofUnknown" text="רשימה של מרכיבים לא ידועים"/>
+<l:gentext key="listofunknown" text="רשימה של מרכיבים לא ידועים"/>
+<l:gentext key="nav-home" text="ראשי"/>
+<l:gentext key="nav-next" text="הבא"/>
+<l:gentext key="nav-next-sibling" text="דלג לסוף"/>
+<l:gentext key="nav-prev" text="הקודם"/>
+<l:gentext key="nav-prev-sibling" text="חזור להתחלה"/>
+<l:gentext key="nav-up" text="למעלה"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="טיוטה"/>
+<l:gentext key="above" text="למעלה"/>
+<l:gentext key="below" text="למטה"/>
+<l:gentext key="sectioncalled" text="הסעיף שנקרא"/>
+<l:gentext key="index symbols" text="סמלים"/>
+<l:gentext key="writing-mode" text="rl-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="נספח %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="פרק %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="משוואה %n. %t"/>
+<l:template name="example" text="דוגמה %n. %t"/>
+<l:template name="figure" text="איור %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="חלק %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="הליך %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ייצור %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="טבלה %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="נספח %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="פרק %n. %t"/>
+<l:template name="part" text="חלק %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="ת: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="ש: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="ש: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsection" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsect1" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsect2" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsect3" text="הסעיף שנקרא “%t”"/>
+<l:template name="sect1" text="הסעיף שנקרא “%t”"/>
+<l:template name="sect2" text="הסעיף שנקרא “%t”"/>
+<l:template name="sect3" text="הסעיף שנקרא “%t”"/>
+<l:template name="sect4" text="הסעיף שנקרא “%t”"/>
+<l:template name="sect5" text="הסעיף שנקרא “%t”"/>
+<l:template name="section" text="הסעיף שנקרא “%t”"/>
+<l:template name="simplesect" text="הסעיף שנקרא “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="ת: %n"/>
+<l:template name="appendix" text="נספח %n"/>
+<l:template name="bridgehead" text="סעיף %n"/>
+<l:template name="chapter" text="פרק %n"/>
+<l:template name="equation" text="משוואה %n"/>
+<l:template name="example" text="דוגמה %n"/>
+<l:template name="figure" text="איור %n"/>
+<l:template name="part" text="חלק %n"/>
+<l:template name="procedure" text="הליך %n"/>
+<l:template name="productionset" text="ייצור %n"/>
+<l:template name="qandadiv" text="ת ו ש %n"/>
+<l:template name="qandaentry" text="ש: %n"/>
+<l:template name="question" text="ש: %n"/>
+<l:template name="sect1" text="סעיף %n"/>
+<l:template name="sect2" text="סעיף %n"/>
+<l:template name="sect3" text="סעיף %n"/>
+<l:template name="sect4" text="סעיף %n"/>
+<l:template name="sect5" text="סעיף %n"/>
+<l:template name="section" text="סעיף %n"/>
+<l:template name="table" text="טבלה %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="נספח %n, %t"/>
+<l:template name="bridgehead" text="סעיף %n, “%t”"/>
+<l:template name="chapter" text="פרק %n, %t"/>
+<l:template name="equation" text="משוואה %n, “%t”"/>
+<l:template name="example" text="דוגמה %n, “%t”"/>
+<l:template name="figure" text="איור %n, “%t”"/>
+<l:template name="part" text="חלק %n, “%t”"/>
+<l:template name="procedure" text="הליך %n, “%t”"/>
+<l:template name="productionset" text="ייצור %n, “%t”"/>
+<l:template name="qandadiv" text="ת ו ש %n, “%t”"/>
+<l:template name="refsect1" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsect2" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsect3" text="הסעיף שנקרא “%t”"/>
+<l:template name="refsection" text="הסעיף שנקרא “%t”"/>
+<l:template name="sect1" text="סעיף %n, “%t”"/>
+<l:template name="sect2" text="סעיף %n, “%t”"/>
+<l:template name="sect3" text="סעיף %n, “%t”"/>
+<l:template name="sect4" text="סעיף %n, “%t”"/>
+<l:template name="sect5" text="סעיף %n, “%t”"/>
+<l:template name="section" text="סעיף %n, “%t”"/>
+<l:template name="simplesect" text="הסעיף שנקרא “%t”"/>
+<l:template name="table" text="טבלה %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ו "/>
+<l:template name="seplast" text=", ו "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="ראה %t."/>
+<l:template name="seealso" text="ראה גם %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="קהל יעד: "/>
+<l:template name="MsgLevel" text="רמה: "/>
+<l:template name="MsgOrig" text="מקור: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x040d Hebrew (ISRAEL)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/hi.xml b/applications/content/template/docbook/common/hi.xml
new file mode 100644
index 0000000..9d96253
--- /dev/null
+++ b/applications/content/template/docbook/common/hi.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="hi" english-language-name="Hindi">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/hi.xml -->
+<!-- * -->
+<!-- * E-mail the edited hi.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="सार"/>
+<l:gentext key="abstract" text="सार"/>
+<l:gentext key="Acknowledgements" text="ज्ञापन"/>
+<l:gentext key="acknowledgements" text="ज्ञापन"/>
+<l:gentext key="Answer" text="उ:"/>
+<l:gentext key="answer" text="उ:"/>
+<l:gentext key="Appendix" text="परिशिष्ट"/>
+<l:gentext key="appendix" text="परिशिष्ट"/>
+<l:gentext key="Article" text="आलेख"/>
+<l:gentext key="article" text="आलेख"/>
+<l:gentext key="Author" text="लेखक"/>
+<l:gentext key="Bibliography" text="ग्रंथ-सूची"/>
+<l:gentext key="bibliography" text="ग्रंथ-सूची"/>
+<l:gentext key="Book" text="पुस्तक"/>
+<l:gentext key="book" text="पुस्तक"/>
+<l:gentext key="CAUTION" text="सावधानी"/>
+<l:gentext key="Caution" text="सावधानी"/>
+<l:gentext key="caution" text="सावधानी"/>
+<l:gentext key="Chapter" text="अध्याय"/>
+<l:gentext key="chapter" text="अध्याय"/>
+<l:gentext key="Colophon" text="पुस्तक परिचय"/>
+<l:gentext key="colophon" text="पुस्तक परिचय"/>
+<l:gentext key="Copyright" text="कॉपीराइट"/>
+<l:gentext key="copyright" text="कॉपीराइट"/>
+<l:gentext key="Dedication" text="समर्पण"/>
+<l:gentext key="dedication" text="समर्पण"/>
+<l:gentext key="Edition" text="संस्करण"/>
+<l:gentext key="edition" text="संस्करण"/>
+<l:gentext key="Editor" text="संपादक"/>
+<l:gentext key="Equation" text="समीकरण"/>
+<l:gentext key="equation" text="समीकरण"/>
+<l:gentext key="Example" text="उदाहरण"/>
+<l:gentext key="example" text="उदाहरण"/>
+<l:gentext key="Figure" text="चित्र"/>
+<l:gentext key="figure" text="चित्र"/>
+<l:gentext key="Glossary" text="शब्दकोश"/>
+<l:gentext key="glossary" text="शब्दकोश"/>
+<l:gentext key="GlossSee" text="देखें"/>
+<l:gentext key="glosssee" text="देखें"/>
+<l:gentext key="GlossSeeAlso" text="इसे भी देखें"/>
+<l:gentext key="glossseealso" text="इसे भी देखें"/>
+<l:gentext key="IMPORTANT" text="महत्वपूर्ण"/>
+<l:gentext key="important" text="महत्वपूर्ण"/>
+<l:gentext key="Important" text="महत्वपूर्ण"/>
+<l:gentext key="Index" text="सूची"/>
+<l:gentext key="index" text="सूची"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="वैधानिक सूचना"/>
+<l:gentext key="legalnotice" text="वैधानिक सूचना"/>
+<l:gentext key="MsgAud" text="श्रोता"/>
+<l:gentext key="msgaud" text="श्रोता"/>
+<l:gentext key="MsgLevel" text="स्तर"/>
+<l:gentext key="msglevel" text="स्तर"/>
+<l:gentext key="MsgOrig" text="मूल"/>
+<l:gentext key="msgorig" text="मूल"/>
+<l:gentext key="NOTE" text="नोट"/>
+<l:gentext key="Note" text="नोट"/>
+<l:gentext key="note" text="नोट"/>
+<l:gentext key="Part" text="हिस्सा"/>
+<l:gentext key="part" text="हिस्सा"/>
+<l:gentext key="Preface" text="प्रस्तावना"/>
+<l:gentext key="preface" text="प्रस्तावना"/>
+<l:gentext key="Procedure" text="प्रक्रिया"/>
+<l:gentext key="procedure" text="प्रक्रिया"/>
+<l:gentext key="ProductionSet" text="उत्पादन"/>
+<l:gentext key="PubDate" text="प्रकाशन तिथि"/>
+<l:gentext key="pubdate" text="प्रकाशन तिथि"/>
+<l:gentext key="Published" text="प्रकाशित"/>
+<l:gentext key="published" text="प्रकाशित"/>
+<l:gentext key="Publisher" text="प्रकाशक"/>
+<l:gentext key="Qandadiv" text="प्र. व उ."/>
+<l:gentext key="qandadiv" text="प्र. व उ."/>
+<l:gentext key="QandASet" text="बारंबार पूछे जाने वाले प्रश्न"/>
+<l:gentext key="Question" text="प्र:"/>
+<l:gentext key="question" text="प्र:"/>
+<l:gentext key="RefEntry" text="पृष्ठ"/>
+<l:gentext key="refentry" text="पृष्ठ"/>
+<l:gentext key="Reference" text="संदर्भ"/>
+<l:gentext key="reference" text="संदर्भ"/>
+<l:gentext key="References" text="संदर्भ"/>
+<l:gentext key="RefName" text="नाम"/>
+<l:gentext key="refname" text="नाम"/>
+<l:gentext key="RefSection" text="खंड"/>
+<l:gentext key="refsection" text="खंड"/>
+<l:gentext key="RefSynopsisDiv" text="सारांश"/>
+<l:gentext key="refsynopsisdiv" text="सारांश"/>
+<l:gentext key="RevHistory" text="पुनरीक्षण इतिहास"/>
+<l:gentext key="revhistory" text="पुनरीक्षण इतिहास"/>
+<l:gentext key="revision" text="पुनरीक्षण"/>
+<l:gentext key="Revision" text="पुनरीक्षण"/>
+<l:gentext key="sect1" text="खंड"/>
+<l:gentext key="sect2" text="खंड"/>
+<l:gentext key="sect3" text="खंड"/>
+<l:gentext key="sect4" text="खंड"/>
+<l:gentext key="sect5" text="खंड"/>
+<l:gentext key="section" text="खंड"/>
+<l:gentext key="Section" text="खंड"/>
+<l:gentext key="see" text="देखें"/>
+<l:gentext key="See" text="देखें"/>
+<l:gentext key="seealso" text="इसे भी देखें"/>
+<l:gentext key="Seealso" text="इसे भी देखें"/>
+<l:gentext key="SeeAlso" text="इसे भी देखें"/>
+<l:gentext key="set" text="सेट करें"/>
+<l:gentext key="Set" text="सेट करें"/>
+<l:gentext key="setindex" text="विषय सूची सेट करें"/>
+<l:gentext key="SetIndex" text="विषय सूची सेट करें"/>
+<l:gentext key="Sidebar" text="बाज़ू पट्टी"/>
+<l:gentext key="sidebar" text="बाज़ू पट्टी"/>
+<l:gentext key="step" text="चरण"/>
+<l:gentext key="Step" text="चरण"/>
+<l:gentext key="table" text="तालिका"/>
+<l:gentext key="Table" text="तालिका"/>
+<l:gentext key="task" text="कार्य"/>
+<l:gentext key="Task" text="कार्य"/>
+<l:gentext key="tip" text="संकेत"/>
+<l:gentext key="TIP" text="संकेत"/>
+<l:gentext key="Tip" text="संकेत"/>
+<l:gentext key="Warning" text="चेतावनी"/>
+<l:gentext key="warning" text="चेतावनी"/>
+<l:gentext key="WARNING" text="चेतावनी"/>
+<l:gentext key="and" text="और"/>
+<l:gentext key="or" text="या"/>
+<l:gentext key="by" text="द्वारा"/>
+<l:gentext key="Edited" text="संपादित"/>
+<l:gentext key="edited" text="संपादित"/>
+<l:gentext key="Editedby" text="इनके द्वारा संपादित"/>
+<l:gentext key="editedby" text="इनके द्वारा संपादित"/>
+<l:gentext key="in" text="अंदर"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="नोट्स"/>
+<l:gentext key="Notes" text="नोट्स"/>
+<l:gentext key="Pgs" text="पृष्ठ"/>
+<l:gentext key="pgs" text="पृष्ठ"/>
+<l:gentext key="Revisedby" text="पुनरीक्षणकर्ता: "/>
+<l:gentext key="revisedby" text="पुनरीक्षणकर्ता: "/>
+<l:gentext key="TableNotes" text="नोट्स"/>
+<l:gentext key="tablenotes" text="नोट्स"/>
+<l:gentext key="TableofContents" text="विषय-सूची"/>
+<l:gentext key="tableofcontents" text="विषय-सूची"/>
+<l:gentext key="unexpectedelementname" text="अप्रत्याशित तत्व नाम"/>
+<l:gentext key="unsupported" text="असमर्थित"/>
+<l:gentext key="xrefto" text=""/>
+<l:gentext key="Authors" text="लेखक"/>
+<l:gentext key="copyeditor" text="कॉपी संपादक"/>
+<l:gentext key="graphicdesigner" text="आलेखी डिजायनर"/>
+<l:gentext key="productioneditor" text="उत्पादन संपादक"/>
+<l:gentext key="technicaleditor" text="तकनीकी संपादक"/>
+<l:gentext key="translator" text="अनुवादक"/>
+<l:gentext key="listofequations" text="समीकरण सूची"/>
+<l:gentext key="ListofEquations" text="समीकरण सूची"/>
+<l:gentext key="ListofExamples" text="उदाहरण सूची"/>
+<l:gentext key="listofexamples" text="उदाहरण सूची"/>
+<l:gentext key="ListofFigures" text="चित्र सूची"/>
+<l:gentext key="listoffigures" text="चित्र सूची"/>
+<l:gentext key="ListofProcedures" text="प्रक्रिया सूची"/>
+<l:gentext key="listofprocedures" text="प्रक्रिया सूची"/>
+<l:gentext key="listoftables" text="सारणी सूची"/>
+<l:gentext key="ListofTables" text="सारणी सूची"/>
+<l:gentext key="ListofUnknown" text="अज्ञात सूची"/>
+<l:gentext key="listofunknown" text="अज्ञात सूची"/>
+<l:gentext key="nav-home" text="घर"/>
+<l:gentext key="nav-next" text="आगे"/>
+<l:gentext key="nav-next-sibling" text="द्रुत अग्रेषण"/>
+<l:gentext key="nav-prev" text="पीछे"/>
+<l:gentext key="nav-prev-sibling" text="द्रुत पश्चरण"/>
+<l:gentext key="nav-up" text="ऊपर"/>
+<l:gentext key="nav-toc" text="विषय सूची"/>
+<l:gentext key="Draft" text="मसौदा"/>
+<l:gentext key="above" text="ऊपर"/>
+<l:gentext key="below" text="नीचे"/>
+<l:gentext key="sectioncalled" text="यह खंड कहलाता है"/>
+<l:gentext key="index symbols" text="संकेत"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="परिशिष्ट %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="अध्याय %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="समीकरण %n. %t"/>
+<l:template name="example" text="उदाहरण %n. %t"/>
+<l:template name="figure" text="चित्र %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="हिस्सा %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="प्रक्रिया %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="उत्पादन %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="तालिका %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="परिशिष्ट %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="अध्याय %n. %t"/>
+<l:template name="part" text="हिस्सा %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="उ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="प्र: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="प्र: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="यह खंड कहलाता है “%t”"/>
+<l:template name="refsection" text="यह खंड कहलाता है “%t”"/>
+<l:template name="refsect1" text="यह खंड कहलाता है “%t”"/>
+<l:template name="refsect2" text="यह खंड कहलाता है “%t”"/>
+<l:template name="refsect3" text="यह खंड कहलाता है “%t”"/>
+<l:template name="sect1" text="यह खंड कहलाता है “%t”"/>
+<l:template name="sect2" text="यह खंड कहलाता है “%t”"/>
+<l:template name="sect3" text="यह खंड कहलाता है “%t”"/>
+<l:template name="sect4" text="यह खंड कहलाता है “%t”"/>
+<l:template name="sect5" text="यह खंड कहलाता है “%t”"/>
+<l:template name="section" text="यह खंड कहलाता है “%t”"/>
+<l:template name="simplesect" text="यह खंड कहलाता है “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="उ: %n"/>
+<l:template name="appendix" text="परिशिष्ट %n"/>
+<l:template name="bridgehead" text="खंड %n"/>
+<l:template name="chapter" text="अध्याय %n"/>
+<l:template name="equation" text="समीकरण %n"/>
+<l:template name="example" text="उदाहरण %n"/>
+<l:template name="figure" text="चित्र %n"/>
+<l:template name="part" text="हिस्सा %n"/>
+<l:template name="procedure" text="प्रक्रिया %n"/>
+<l:template name="productionset" text="उत्पादन %n"/>
+<l:template name="qandadiv" text="प्र. व उ. %n"/>
+<l:template name="qandaentry" text="प्र: %n"/>
+<l:template name="question" text="प्र: %n"/>
+<l:template name="sect1" text="खंड %n"/>
+<l:template name="sect2" text="खंड %n"/>
+<l:template name="sect3" text="खंड %n"/>
+<l:template name="sect4" text="खंड %n"/>
+<l:template name="sect5" text="खंड %n"/>
+<l:template name="section" text="खंड %n"/>
+<l:template name="table" text="तालिका %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="परिशिष्ट %n, %t"/>
+<l:template name="bridgehead" text="खंड %n, “%t”"/>
+<l:template name="chapter" text="अध्याय %n, %t"/>
+<l:template name="equation" text="समीकरण %n, “%t”"/>
+<l:template name="example" text="उदाहरण %n, “%t”"/>
+<l:template name="figure" text="चित्र %n, “%t”"/>
+<l:template name="part" text="हिस्सा %n, “%t”"/>
+<l:template name="procedure" text="प्रक्रिया %n, “%t”"/>
+<l:template name="productionset" text="उत्पादन %n, “%t”"/>
+<l:template name="qandadiv" text="प्र. व उ. %n, “%t”"/>
+<l:template name="refsect1" text="यह खंड कहलाता है “%t”"/>
+<l:template name="refsect2" text="यह खंड कहलाता है “%t”"/>
+<l:template name="refsect3" text="यह खंड कहलाता है “%t”"/>
+<l:template name="refsection" text="यह खंड कहलाता है “%t”"/>
+<l:template name="sect1" text="खंड %n, “%t”"/>
+<l:template name="sect2" text="खंड %n, “%t”"/>
+<l:template name="sect3" text="खंड %n, “%t”"/>
+<l:template name="sect4" text="खंड %n, “%t”"/>
+<l:template name="sect5" text="खंड %n, “%t”"/>
+<l:template name="section" text="खंड %n, “%t”"/>
+<l:template name="simplesect" text="यह खंड कहलाता है “%t”"/>
+<l:template name="table" text="तालिका %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" और "/>
+<l:template name="seplast" text=", और "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="देखें %t."/>
+<l:template name="seealso" text="इसे भी देखें %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="श्रोता: "/>
+<l:template name="MsgLevel" text="स्तर: "/>
+<l:template name="MsgOrig" text="मूल: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="जनवरी"/>
+<l:template name="February" text="फरवरी"/>
+<l:template name="March" text="मार्च"/>
+<l:template name="April" text="अप्रैल"/>
+<l:template name="May" text="मई"/>
+<l:template name="June" text="जून"/>
+<l:template name="July" text="जुलाई"/>
+<l:template name="August" text="अगस्त"/>
+<l:template name="September" text="सितंबर"/>
+<l:template name="October" text="अक्टूबर"/>
+<l:template name="November" text="नवंबर"/>
+<l:template name="December" text="दिसंबर"/>
+<l:template name="Monday" text="सोमवार"/>
+<l:template name="Tuesday" text="मंगलवार"/>
+<l:template name="Wednesday" text="बुधवार"/>
+<l:template name="Thursday" text="गुरुवार"/>
+<l:template name="Friday" text="शुक्रवार"/>
+<l:template name="Saturday" text="शनिवार"/>
+<l:template name="Sunday" text="रविवार"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="जन"/>
+<l:template name="Feb" text="फर"/>
+<l:template name="Mar" text="मार्च"/>
+<l:template name="Apr" text="अप्रै"/>
+<l:template name="May" text="मई"/>
+<l:template name="Jun" text="जून"/>
+<l:template name="Jul" text="जुला"/>
+<l:template name="Aug" text="अग"/>
+<l:template name="Sep" text="सितं"/>
+<l:template name="Oct" text="अक्टू"/>
+<l:template name="Nov" text="नवं"/>
+<l:template name="Dec" text="दिस"/>
+<l:template name="Mon" text="सोम"/>
+<l:template name="Tue" text="मंगल"/>
+<l:template name="Wed" text="बुध"/>
+<l:template name="Thu" text="गुरु"/>
+<l:template name="Fri" text="शुक्र"/>
+<l:template name="Sat" text="शनि"/>
+<l:template name="Sun" text="रवि"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0439 Hindi"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">संकेत</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/hr.xml b/applications/content/template/docbook/common/hr.xml
new file mode 100644
index 0000000..1f92a4e
--- /dev/null
+++ b/applications/content/template/docbook/common/hr.xml
@@ -0,0 +1,680 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="hr" english-language-name="Croatian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/hr.xml -->
+<!-- * -->
+<!-- * E-mail the edited hr.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Sažetak"/>
+<l:gentext key="abstract" text="sažetak"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements"/>
+<l:gentext key="acknowledgements" text="acknowledgements"/>
+<l:gentext key="Answer" text="Odgovor:"/>
+<l:gentext key="answer" text="odgovor:"/>
+<l:gentext key="Appendix" text="Dodatak"/>
+<l:gentext key="appendix" text="dodatak"/>
+<l:gentext key="Article" text="Članak"/>
+<l:gentext key="article" text="članak"/>
+<l:gentext key="Author" text="Author"/>
+<l:gentext key="Bibliography" text="Literatura"/>
+<l:gentext key="bibliography" text="literatura"/>
+<l:gentext key="Book" text="Knjiga"/>
+<l:gentext key="book" text="knjiga"/>
+<l:gentext key="CAUTION" text="OPREZ"/>
+<l:gentext key="Caution" text="Oprez"/>
+<l:gentext key="caution" text="oprez"/>
+<l:gentext key="Chapter" text="Poglavlje"/>
+<l:gentext key="chapter" text="poglavlje"/>
+<l:gentext key="Colophon" text="Impresum"/>
+<l:gentext key="colophon" text="impresum"/>
+<l:gentext key="Copyright" text="Autorska prava"/>
+<l:gentext key="copyright" text="autorska prava"/>
+<l:gentext key="Dedication" text="Posveta"/>
+<l:gentext key="dedication" text="posveta"/>
+<l:gentext key="Edition" text="Izdanje"/>
+<l:gentext key="edition" text="izdanje"/>
+<l:gentext key="Editor" text="Editor"/>
+<l:gentext key="Equation" text="Jednadžba"/>
+<l:gentext key="equation" text="jednadžba"/>
+<l:gentext key="Example" text="Primjer"/>
+<l:gentext key="example" text="primjer"/>
+<l:gentext key="Figure" text="Slika"/>
+<l:gentext key="figure" text="slika"/>
+<l:gentext key="Glossary" text="Rječnik"/>
+<l:gentext key="glossary" text="rječnik"/>
+<l:gentext key="GlossSee" text="Vidi"/>
+<l:gentext key="glosssee" text="vidi"/>
+<l:gentext key="GlossSeeAlso" text="Vidi i"/>
+<l:gentext key="glossseealso" text="vidi i"/>
+<l:gentext key="IMPORTANT" text="VAŽNO"/>
+<l:gentext key="important" text="važno"/>
+<l:gentext key="Important" text="Važno"/>
+<l:gentext key="Index" text="Kazalo"/>
+<l:gentext key="index" text="kazalo"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Pravne odredbe"/>
+<l:gentext key="legalnotice" text="pravne odredbe"/>
+<l:gentext key="MsgAud" text="Primatelji"/>
+<l:gentext key="msgaud" text="primatelji"/>
+<l:gentext key="MsgLevel" text="Razina"/>
+<l:gentext key="msglevel" text="razina"/>
+<l:gentext key="MsgOrig" text="Izvor"/>
+<l:gentext key="msgorig" text="izvor"/>
+<l:gentext key="NOTE" text="BILJEŠKA"/>
+<l:gentext key="Note" text="Bilješka"/>
+<l:gentext key="note" text="bilješka"/>
+<l:gentext key="Part" text="Dio"/>
+<l:gentext key="part" text="dio"/>
+<l:gentext key="Preface" text="Predgovor"/>
+<l:gentext key="preface" text="predgovor"/>
+<l:gentext key="Procedure" text="Postupak"/>
+<l:gentext key="procedure" text="postupak"/>
+<l:gentext key="ProductionSet" text="Produkcija"/>
+<l:gentext key="PubDate" text="Datum publikacije"/>
+<l:gentext key="pubdate" text="datum publikacije"/>
+<l:gentext key="Published" text="Objavljeno"/>
+<l:gentext key="published" text="objavljeno"/>
+<l:gentext key="Publisher" text="Nakladnik"/>
+<l:gentext key="Qandadiv" text="Pitanje i Odgovor"/>
+<l:gentext key="qandadiv" text="pitanje i Odgovor"/>
+<l:gentext key="QandASet" text="Česti Upiti"/>
+<l:gentext key="Question" text="Pitanje:"/>
+<l:gentext key="question" text="pitanje:"/>
+<l:gentext key="RefEntry" text="Stranica"/>
+<l:gentext key="refentry" text="stranica"/>
+<l:gentext key="Reference" text="Referenca"/>
+<l:gentext key="reference" text="referenca"/>
+<l:gentext key="References" text="Reference"/>
+<l:gentext key="RefName" text="Ime"/>
+<l:gentext key="refname" text="Ime"/>
+<l:gentext key="RefSection" text="Odjeljak"/>
+<l:gentext key="refsection" text="odjeljak"/>
+<l:gentext key="RefSynopsisDiv" text="Pregled"/>
+<l:gentext key="refsynopsisdiv" text="Pregled"/>
+<l:gentext key="RevHistory" text="Povijest preinaka"/>
+<l:gentext key="revhistory" text="Povijest preinaka"/>
+<l:gentext key="revision" text="Preinaka"/>
+<l:gentext key="Revision" text="Preinaka"/>
+<l:gentext key="sect1" text="Odjeljak"/>
+<l:gentext key="sect2" text="Odjeljak"/>
+<l:gentext key="sect3" text="Odjeljak"/>
+<l:gentext key="sect4" text="Odjeljak"/>
+<l:gentext key="sect5" text="Odjeljak"/>
+<l:gentext key="section" text="odjeljak"/>
+<l:gentext key="Section" text="Odjeljak"/>
+<l:gentext key="see" text="vidi"/>
+<l:gentext key="See" text="Vidi"/>
+<l:gentext key="seealso" text="vidi i"/>
+<l:gentext key="Seealso" text="Vidi i"/>
+<l:gentext key="SeeAlso" text="Vidi i"/>
+<l:gentext key="set" text="set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="kazalo"/>
+<l:gentext key="SetIndex" text="Kazalo"/>
+<l:gentext key="Sidebar" text="Rubni stupac"/>
+<l:gentext key="sidebar" text="rubni stupac"/>
+<l:gentext key="step" text="korak"/>
+<l:gentext key="Step" text="Korak"/>
+<l:gentext key="table" text="tablica"/>
+<l:gentext key="Table" text="Tablica"/>
+<l:gentext key="task" text="zadatak"/>
+<l:gentext key="Task" text="Zadatak"/>
+<l:gentext key="tip" text="Savjet"/>
+<l:gentext key="TIP" text="SAVJET"/>
+<l:gentext key="Tip" text="Savjet"/>
+<l:gentext key="Warning" text="Upozorenje"/>
+<l:gentext key="warning" text="upozorenje"/>
+<l:gentext key="WARNING" text="UPOZORENJE"/>
+<l:gentext key="and" text="i"/>
+<l:gentext key="or" text="ili"/>
+<l:gentext key="by" text="po"/>
+<l:gentext key="Edited" text="Uredio/la"/>
+<l:gentext key="edited" text="uredio/la"/>
+<l:gentext key="Editedby" text="Uredio/la"/>
+<l:gentext key="editedby" text="uredio/la"/>
+<l:gentext key="in" text="u"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="bilješke"/>
+<l:gentext key="Notes" text="Bilješke"/>
+<l:gentext key="Pgs" text="Str."/>
+<l:gentext key="pgs" text="str."/>
+<l:gentext key="Revisedby" text="Promijenjeno po: "/>
+<l:gentext key="revisedby" text="promijenjeno po: "/>
+<l:gentext key="TableNotes" text="Napomene"/>
+<l:gentext key="tablenotes" text="napomene"/>
+<l:gentext key="TableofContents" text="Sadržaj"/>
+<l:gentext key="tableofcontents" text="sadržaj"/>
+<l:gentext key="unexpectedelementname" text="Neočekivano ime elementa"/>
+<l:gentext key="unsupported" text="nepodržano"/>
+<l:gentext key="xrefto" text="xref za"/>
+<l:gentext key="Authors" text="Autori"/>
+<l:gentext key="copyeditor" text="Urdenik za autorska prava"/>
+<l:gentext key="graphicdesigner" text="Grafički dizajner"/>
+<l:gentext key="productioneditor" text="Urednik produkcija"/>
+<l:gentext key="technicaleditor" text="Tehnički urednik"/>
+<l:gentext key="translator" text="Prevodilac"/>
+<l:gentext key="listofequations" text="popis jednadžbi"/>
+<l:gentext key="ListofEquations" text="Popis jednadžbi"/>
+<l:gentext key="ListofExamples" text="Popis primjera"/>
+<l:gentext key="listofexamples" text="popis primjera"/>
+<l:gentext key="ListofFigures" text="Popis slika"/>
+<l:gentext key="listoffigures" text="popis slika"/>
+<l:gentext key="ListofProcedures" text="Popis postupaka"/>
+<l:gentext key="listofprocedures" text="popis postupaka"/>
+<l:gentext key="listoftables" text="popis tablica"/>
+<l:gentext key="ListofTables" text="Popis tablica "/>
+<l:gentext key="ListofUnknown" text="Popis nepoznanica"/>
+<l:gentext key="listofunknown" text="popis nepoznanica"/>
+<l:gentext key="nav-home" text="Početak"/>
+<l:gentext key="nav-next" text="Naprijed"/>
+<l:gentext key="nav-next-sibling" text="Skoči unaprijed"/>
+<l:gentext key="nav-prev" text="Natrag"/>
+<l:gentext key="nav-prev-sibling" text="Skoči unatrag"/>
+<l:gentext key="nav-up" text="Gore"/>
+<l:gentext key="nav-toc" text="Sadržaj"/>
+<l:gentext key="Draft" text="Nacrt"/>
+<l:gentext key="above" text="iznad"/>
+<l:gentext key="below" text="ispod"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Oznake"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcčćdđefghijklmnopqrsštuvwxyzž"/>
+<l:gentext key="uppercase.alpha" text="ABCČĆDĐEFGHIJKLMNOPQRSŠTUVWXYZŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Dodatak %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Poglavlje %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Jednadžba %n. %t"/>
+<l:template name="example" text="Primjer %n. %t"/>
+<l:template name="figure" text="Slika %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Dio %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Postupak %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkcija %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tablica %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Dodatak %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Poglavlje %n. %t"/>
+<l:template name="part" text="Dio %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="Odgovor: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Pitanje: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Pitanje: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="sect1" text="the section called “%t”"/>
+<l:template name="sect2" text="the section called “%t”"/>
+<l:template name="sect3" text="the section called “%t”"/>
+<l:template name="sect4" text="the section called “%t”"/>
+<l:template name="sect5" text="the section called “%t”"/>
+<l:template name="section" text="the section called “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Odgovor: %n"/>
+<l:template name="appendix" text="Dodatak %n"/>
+<l:template name="bridgehead" text="Odjeljak %n"/>
+<l:template name="chapter" text="Poglavlje %n"/>
+<l:template name="equation" text="Jednadžba %n"/>
+<l:template name="example" text="Primjer %n"/>
+<l:template name="figure" text="Slika %n"/>
+<l:template name="part" text="Dio %n"/>
+<l:template name="procedure" text="Postupak %n"/>
+<l:template name="productionset" text="Produkcija %n"/>
+<l:template name="qandadiv" text="Pitanje i Odgovor %n"/>
+<l:template name="qandaentry" text="Pitanje: %n"/>
+<l:template name="question" text="Pitanje: %n"/>
+<l:template name="sect1" text="Odjeljak %n"/>
+<l:template name="sect2" text="Odjeljak %n"/>
+<l:template name="sect3" text="Odjeljak %n"/>
+<l:template name="sect4" text="Odjeljak %n"/>
+<l:template name="sect5" text="Odjeljak %n"/>
+<l:template name="section" text="Odjeljak %n"/>
+<l:template name="table" text="Tablica %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Dodatak %n, %t"/>
+<l:template name="bridgehead" text="Odjeljak %n, “%t”"/>
+<l:template name="chapter" text="Poglavlje %n, %t"/>
+<l:template name="equation" text="Jednadžba %n, “%t”"/>
+<l:template name="example" text="Primjer %n, “%t”"/>
+<l:template name="figure" text="Slika %n, “%t”"/>
+<l:template name="part" text="Dio %n, “%t”"/>
+<l:template name="procedure" text="Postupak %n, “%t”"/>
+<l:template name="productionset" text="Produkcija %n, “%t”"/>
+<l:template name="qandadiv" text="Pitanje i Odgovor %n, “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="sect1" text="Odjeljak %n, “%t”"/>
+<l:template name="sect2" text="Odjeljak %n, “%t”"/>
+<l:template name="sect3" text="Odjeljak %n, “%t”"/>
+<l:template name="sect4" text="Odjeljak %n, “%t”"/>
+<l:template name="sect5" text="Odjeljak %n, “%t”"/>
+<l:template name="section" text="Odjeljak %n, “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+<l:template name="table" text="Tablica %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" i "/>
+<l:template name="seplast" text=", i "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vidi %t."/>
+<l:template name="seealso" text="Vidi i %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Primatelji: "/>
+<l:template name="MsgLevel" text="Razina: "/>
+<l:template name="MsgOrig" text="Izvor: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definicija: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Siječanj"/>
+<l:template name="February" text="Veljača"/>
+<l:template name="March" text="Ožujak"/>
+<l:template name="April" text="Travanj"/>
+<l:template name="May" text="Svibanj"/>
+<l:template name="June" text="Lipanj"/>
+<l:template name="July" text="Srpanj"/>
+<l:template name="August" text="Kolovoz"/>
+<l:template name="September" text="Rujan"/>
+<l:template name="October" text="Listopad"/>
+<l:template name="November" text="Studeni"/>
+<l:template name="December" text="Prosinac"/>
+<l:template name="Monday" text="Ponedjeljak"/>
+<l:template name="Tuesday" text="Utorak"/>
+<l:template name="Wednesday" text="Srijeda"/>
+<l:template name="Thursday" text="Četvrtak"/>
+<l:template name="Friday" text="Petak"/>
+<l:template name="Saturday" text="Subota"/>
+<l:template name="Sunday" text="Nedjelja"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Sij"/>
+<l:template name="Feb" text="Velj"/>
+<l:template name="Mar" text="Ožu"/>
+<l:template name="Apr" text="Tra"/>
+<l:template name="May" text="Svi"/>
+<l:template name="Jun" text="Lip"/>
+<l:template name="Jul" text="Srp"/>
+<l:template name="Aug" text="Kol"/>
+<l:template name="Sep" text="Ruj"/>
+<l:template name="Oct" text="Lis"/>
+<l:template name="Nov" text="Stu"/>
+<l:template name="Dec" text="Pro"/>
+<l:template name="Mon" text="Pon"/>
+<l:template name="Tue" text="Uto"/>
+<l:template name="Wed" text="Sri"/>
+<l:template name="Thu" text="Čet"/>
+<l:template name="Fri" text="Pet"/>
+<l:template name="Sat" text="Sub"/>
+<l:template name="Sun" text="Ned"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x041a Croatian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Oznake</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/hu.xml b/applications/content/template/docbook/common/hu.xml
new file mode 100644
index 0000000..559a49a
--- /dev/null
+++ b/applications/content/template/docbook/common/hu.xml
@@ -0,0 +1,696 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="hu" english-language-name="Hungarian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/hu.xml -->
+<!-- * -->
+<!-- * E-mail the edited hu.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Kivonat"/>
+<l:gentext key="abstract" text="kivonat"/>
+<l:gentext key="Acknowledgements" text="Köszönetnyilvánítás"/>
+<l:gentext key="acknowledgements" text="köszönetnyilvánítás"/>
+<l:gentext key="Answer" text="V:"/>
+<l:gentext key="answer" text="v:"/>
+<l:gentext key="Appendix" text="Függelék"/>
+<l:gentext key="appendix" text="függelék"/>
+<l:gentext key="Article" text="Cikk"/>
+<l:gentext key="article" text="cikk"/>
+<l:gentext key="Author" text="Szerz"/>
+<l:gentext key="Bibliography" text="Irodalomjegyzék"/>
+<l:gentext key="bibliography" text="irodalomjegyzék"/>
+<l:gentext key="Book" text="Könyv"/>
+<l:gentext key="book" text="könyv"/>
+<l:gentext key="CAUTION" text="FIGYELEM"/>
+<l:gentext key="Caution" text="Figyelem"/>
+<l:gentext key="caution" text="figyelem"/>
+<l:gentext key="Chapter" text="Fejezet"/>
+<l:gentext key="chapter" text="fejezet"/>
+<l:gentext key="Colophon" text="Végszó"/>
+<l:gentext key="colophon" text="végszó"/>
+<l:gentext key="Copyright" text="Szerzői jog"/>
+<l:gentext key="copyright" text="szerzői jog"/>
+<l:gentext key="Dedication" text="Ajánlás"/>
+<l:gentext key="dedication" text="ajánlás"/>
+<l:gentext key="Edition" text="Kiadás"/>
+<l:gentext key="edition" text="kiadás"/>
+<l:gentext key="Editor" text="Szerkesztő"/>
+<l:gentext key="Equation" text="Egyenlet"/>
+<l:gentext key="equation" text="egyenlet"/>
+<l:gentext key="Example" text="Példa"/>
+<l:gentext key="example" text="példa"/>
+<l:gentext key="Figure" text="Ábra"/>
+<l:gentext key="figure" text="ábra"/>
+<l:gentext key="Glossary" text="Szójegyzék"/>
+<l:gentext key="glossary" text="szójegyzék"/>
+<l:gentext key="GlossSee" text="Lásd"/>
+<l:gentext key="glosssee" text="lásd"/>
+<l:gentext key="GlossSeeAlso" text="Lásd még"/>
+<l:gentext key="glossseealso" text="lásd még"/>
+<l:gentext key="IMPORTANT" text="FONTOS"/>
+<l:gentext key="important" text="fontos"/>
+<l:gentext key="Important" text="Fontos"/>
+<l:gentext key="Index" text="Tárgymutató"/>
+<l:gentext key="index" text="tárgymutató"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="isbn"/>
+<l:gentext key="LegalNotice" text="Jogi közlemény"/>
+<l:gentext key="legalnotice" text="jogi közlemény"/>
+<l:gentext key="MsgAud" text="Célközönség"/>
+<l:gentext key="msgaud" text="célközönség"/>
+<l:gentext key="MsgLevel" text="Szint"/>
+<l:gentext key="msglevel" text="szint"/>
+<l:gentext key="MsgOrig" text="Eredet"/>
+<l:gentext key="msgorig" text="eredet"/>
+<l:gentext key="NOTE" text="MEGJEGYZÉS"/>
+<l:gentext key="Note" text="Megjegyzés"/>
+<l:gentext key="note" text="megjegyzés"/>
+<l:gentext key="Part" text="Rész"/>
+<l:gentext key="part" text="rész"/>
+<l:gentext key="Preface" text="Előszó"/>
+<l:gentext key="preface" text="előszó"/>
+<l:gentext key="Procedure" text="Eljárás"/>
+<l:gentext key="procedure" text="eljárás"/>
+<l:gentext key="ProductionSet" text="Elemcsoport"/>
+<l:gentext key="PubDate" text="Publication Date"/>
+<l:gentext key="pubdate" text="Publication date"/>
+<l:gentext key="Published" text="Megjelent"/>
+<l:gentext key="published" text="megjelent"/>
+<l:gentext key="Publisher" text="Kiadó"/>
+<l:gentext key="Qandadiv" text="K és V"/>
+<l:gentext key="qandadiv" text="K és V"/>
+<l:gentext key="QandASet" text="Gyakran feltett kérdések"/>
+<l:gentext key="Question" text="K:"/>
+<l:gentext key="question" text="k:"/>
+<l:gentext key="RefEntry" text="Oldal"/>
+<l:gentext key="refentry" text="oldal"/>
+<l:gentext key="Reference" text="Hivatkozás"/>
+<l:gentext key="reference" text="hivatkozás"/>
+<l:gentext key="References" text="Hivatkozások"/>
+<l:gentext key="RefName" text="Név"/>
+<l:gentext key="refname" text="név"/>
+<l:gentext key="RefSection" text="Szakasz"/>
+<l:gentext key="refsection" text="szakasz"/>
+<l:gentext key="RefSynopsisDiv" text="Áttekintés"/>
+<l:gentext key="refsynopsisdiv" text="áttekintés"/>
+<l:gentext key="RevHistory" text="Verziótörténet"/>
+<l:gentext key="revhistory" text="verziótörténet"/>
+<l:gentext key="revision" text="verzió"/>
+<l:gentext key="Revision" text="Verzió"/>
+<l:gentext key="sect1" text="Szakasz"/>
+<l:gentext key="sect2" text="Szakasz"/>
+<l:gentext key="sect3" text="Szakasz"/>
+<l:gentext key="sect4" text="Szakasz"/>
+<l:gentext key="sect5" text="Szakasz"/>
+<l:gentext key="section" text="szakasz"/>
+<l:gentext key="Section" text="Szakasz"/>
+<l:gentext key="see" text="lásd"/>
+<l:gentext key="See" text="Lásd"/>
+<l:gentext key="seealso" text="lásd még"/>
+<l:gentext key="Seealso" text="Lásd még"/>
+<l:gentext key="SeeAlso" text="Lásd még"/>
+<l:gentext key="set" text="csoport"/>
+<l:gentext key="Set" text="Csoport"/>
+<l:gentext key="setindex" text="csoportmutató"/>
+<l:gentext key="SetIndex" text="Csoportmutató"/>
+<l:gentext key="Sidebar" text="Széljegyzet"/>
+<l:gentext key="sidebar" text="széljegyzet"/>
+<l:gentext key="step" text="lépés"/>
+<l:gentext key="Step" text="Lépés"/>
+<l:gentext key="table" text="táblázat"/>
+<l:gentext key="Table" text="Táblázat"/>
+<l:gentext key="task" text="feladat"/>
+<l:gentext key="Task" text="Feladat"/>
+<l:gentext key="tip" text="tipp"/>
+<l:gentext key="TIP" text="TIPP"/>
+<l:gentext key="Tip" text="Tipp"/>
+<l:gentext key="Warning" text="Figyelem"/>
+<l:gentext key="warning" text="figyelem"/>
+<l:gentext key="WARNING" text="FIGYELEM"/>
+<l:gentext key="and" text="és"/>
+<l:gentext key="or" text="vagy"/>
+<l:gentext key="by" text="írta"/>
+<l:gentext key="Edited" text="Szerk."/>
+<l:gentext key="edited" text="szerk."/>
+<l:gentext key="Editedby" text="Szerkesztette"/>
+<l:gentext key="editedby" text="szerkesztette"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="megjegyzések"/>
+<l:gentext key="Notes" text="Megjegyzések"/>
+<l:gentext key="Pgs" text="Old."/>
+<l:gentext key="pgs" text="old."/>
+<l:gentext key="Revisedby" text="Felülvizsgálta"/>
+<l:gentext key="revisedby" text="felülvizsgálta"/>
+<l:gentext key="TableNotes" text="Megjegyzések"/>
+<l:gentext key="tablenotes" text="megjegyzések"/>
+<l:gentext key="TableofContents" text="Tartalom"/>
+<l:gentext key="tableofcontents" text="tartalom"/>
+<l:gentext key="unexpectedelementname" text="nem várt elemnév"/>
+<l:gentext key="unsupported" text="nem támogatott"/>
+<l:gentext key="xrefto" text="kereszthiv"/>
+<l:gentext key="Authors" text="Szerzők"/>
+<l:gentext key="copyeditor" text="Kiadás szerkesztő"/>
+<l:gentext key="graphicdesigner" text="Grafikus tervező"/>
+<l:gentext key="productioneditor" text="Főszerkesztőr"/>
+<l:gentext key="technicaleditor" text="Szakszerkesztő"/>
+<l:gentext key="translator" text="Fordító"/>
+<l:gentext key="listofequations" text="az egyenletek listája"/>
+<l:gentext key="ListofEquations" text="Az egyenletek listája"/>
+<l:gentext key="ListofExamples" text="A példák listája"/>
+<l:gentext key="listofexamples" text="a példák listája"/>
+<l:gentext key="ListofFigures" text="Az ábrák listája"/>
+<l:gentext key="listoffigures" text="az ábrák listája"/>
+<l:gentext key="ListofProcedures" text="Eljárások listája"/>
+<l:gentext key="listofprocedures" text="eljárások listája"/>
+<l:gentext key="listoftables" text="a táblázatok listája"/>
+<l:gentext key="ListofTables" text="A táblázatok listája"/>
+<l:gentext key="ListofUnknown" text="Az egyéb elemek listája"/>
+<l:gentext key="listofunknown" text="az egyéb elemek listája"/>
+<l:gentext key="nav-home" text="Főoldal"/>
+<l:gentext key="nav-next" text="Előre"/>
+<l:gentext key="nav-next-sibling" text="Gyors előre"/>
+<l:gentext key="nav-prev" text="Vissza"/>
+<l:gentext key="nav-prev-sibling" text="Gyors vissza"/>
+<l:gentext key="nav-up" text="Fel"/>
+<l:gentext key="nav-toc" text="Tartalom"/>
+<l:gentext key="Draft" text="Piszkozat"/>
+<l:gentext key="above" text="fent"/>
+<l:gentext key="below" text="alább"/>
+<l:gentext key="sectioncalled" text="a szakasz:"/>
+<l:gentext key="index symbols" text="Jelzések"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="aábcdeéfghiíjklmnoóöőpqrstuúüűvwxyz"/>
+<l:gentext key="uppercase.alpha" text="AÁBCDEÉFGHIÍJKLMNOÓÖŐPQRSTUÚÜŰVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="»"/>
+<l:dingbat key="nestedendquote" text="«"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="last-first"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="%n. függelék - %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%n. fejezet - %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%n. egyenlet - %t"/>
+<l:template name="example" text="%n. példa - %t"/>
+<l:template name="figure" text="%n. ábra - %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%n. rész - %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Eljárás %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Elemcsoport %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="%n. táblázat - %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="%n. függelék - %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%n. fejezet - %t"/>
+<l:template name="part" text="%n. rész - %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="V: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="K: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="K: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="„%t”"/>
+<l:template name="refsection" text="„%t”"/>
+<l:template name="refsect1" text="„%t”"/>
+<l:template name="refsect2" text="„%t”"/>
+<l:template name="refsect3" text="„%t”"/>
+<l:template name="sect1" text="„%t”"/>
+<l:template name="sect2" text="„%t”"/>
+<l:template name="sect3" text="„%t”"/>
+<l:template name="sect4" text="„%t”"/>
+<l:template name="sect5" text="„%t”"/>
+<l:template name="section" text="„%t”"/>
+<l:template name="simplesect" text="„%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="V: %n"/>
+<l:template name="appendix" text="%n. függelék"/>
+<l:template name="bridgehead" text="Szakasz %n"/>
+<l:template name="chapter" text="%n. fejezet"/>
+<l:template name="equation" text="Egyenlet %n"/>
+<l:template name="example" text="%n. példa"/>
+<l:template name="figure" text="%n. ábra"/>
+<l:template name="part" text="%n. rész"/>
+<l:template name="procedure" text="Eljárás %n"/>
+<l:template name="productionset" text="Elemcsoport %n"/>
+<l:template name="qandadiv" text="K és V %n"/>
+<l:template name="qandaentry" text="K: %n"/>
+<l:template name="question" text="K: %n"/>
+<l:template name="sect1" text="%n. szakasz"/>
+<l:template name="sect2" text="%n. szakasz"/>
+<l:template name="sect3" text="%n. szakasz"/>
+<l:template name="sect4" text="%n. szakasz"/>
+<l:template name="sect5" text="%n. szakasz"/>
+<l:template name="section" text="%n. szakasz"/>
+<l:template name="table" text="Táblázat %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="%n. függelék - %t"/>
+<l:template name="bridgehead" text="Szakasz %n, „%t”"/>
+<l:template name="chapter" text="%n. fejezet - %t"/>
+<l:template name="equation" text="Egyenlet %n, „%t”"/>
+<l:template name="example" text="%n. példa - %t"/>
+<l:template name="figure" text="%n. ábra - %t"/>
+<l:template name="part" text="%n. rész - %t"/>
+<l:template name="procedure" text="Eljárás %n, „%t”"/>
+<l:template name="productionset" text="Elemcsoport %n, „%t”"/>
+<l:template name="qandadiv" text="K és V %n, „%t”"/>
+<l:template name="refsect1" text="„%t”"/>
+<l:template name="refsect2" text="„%t”"/>
+<l:template name="refsect3" text="„%t”"/>
+<l:template name="refsection" text="„%t”"/>
+<l:template name="sect1" text="%n. szakasz - %t"/>
+<l:template name="sect2" text="%n. szakasz - %t"/>
+<l:template name="sect3" text="%n. szakasz - %t"/>
+<l:template name="sect4" text="%n. szakasz - %t"/>
+<l:template name="sect5" text="%n. szakasz - %t"/>
+<l:template name="section" text="%n. szakasz - %t"/>
+<l:template name="simplesect" text="„%t”"/>
+<l:template name="table" text="%n. táblázat - %t"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" és "/>
+<l:template name="seplast" text=", és "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Lásd %t."/>
+<l:template name="seealso" text="Lásd még %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Célközönség: "/>
+<l:template name="MsgLevel" text="Szint: "/>
+<l:template name="MsgOrig" text="Eredet: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="január"/>
+<l:template name="February" text="február"/>
+<l:template name="March" text="március"/>
+<l:template name="April" text="április"/>
+<l:template name="May" text="május"/>
+<l:template name="June" text="június"/>
+<l:template name="July" text="július"/>
+<l:template name="August" text="augusztus"/>
+<l:template name="September" text="szeptember"/>
+<l:template name="October" text="október"/>
+<l:template name="November" text="november"/>
+<l:template name="December" text="december"/>
+<l:template name="Monday" text="hétfő"/>
+<l:template name="Tuesday" text="kedd"/>
+<l:template name="Wednesday" text="szerda"/>
+<l:template name="Thursday" text="csütörtök"/>
+<l:template name="Friday" text="péntek"/>
+<l:template name="Saturday" text="szombat"/>
+<l:template name="Sunday" text="vasárnap"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="jan"/>
+<l:template name="Feb" text="feb"/>
+<l:template name="Mar" text="már"/>
+<l:template name="Apr" text="ápr"/>
+<l:template name="May" text="máj"/>
+<l:template name="Jun" text="jún"/>
+<l:template name="Jul" text="júl"/>
+<l:template name="Aug" text="aug"/>
+<l:template name="Sep" text="szep"/>
+<l:template name="Oct" text="okt"/>
+<l:template name="Nov" text="nov"/>
+<l:template name="Dec" text="dec"/>
+<l:template name="Mon" text="hfő"/>
+<l:template name="Tue" text="ked"/>
+<l:template name="Wed" text="sze"/>
+<l:template name="Thu" text="csü"/>
+<l:template name="Fri" text="pén"/>
+<l:template name="Sat" text="szo"/>
+<l:template name="Sun" text="vas"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x040e Hungarian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Jelzések</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="160">Ö</l:l>
+<l:l i="160">ö</l:l>
+<l:l i="160">Ő</l:l>
+<l:l i="160">ő</l:l>
+<l:l i="170">P</l:l>
+<l:l i="170">p</l:l>
+<l:l i="180">Q</l:l>
+<l:l i="180">q</l:l>
+<l:l i="190">R</l:l>
+<l:l i="190">r</l:l>
+<l:l i="200">S</l:l>
+<l:l i="200">s</l:l>
+<l:l i="210">T</l:l>
+<l:l i="210">t</l:l>
+<l:l i="220">U</l:l>
+<l:l i="220">u</l:l>
+<l:l i="220">Ú</l:l>
+<l:l i="220">ú</l:l>
+<l:l i="230">Ü</l:l>
+<l:l i="230">ü</l:l>
+<l:l i="230">Ű</l:l>
+<l:l i="230">ű</l:l>
+<l:l i="240">V</l:l>
+<l:l i="240">v</l:l>
+<l:l i="250">W</l:l>
+<l:l i="250">w</l:l>
+<l:l i="260">X</l:l>
+<l:l i="260">x</l:l>
+<l:l i="270">Y</l:l>
+<l:l i="270">y</l:l>
+<l:l i="280">Z</l:l>
+<l:l i="280">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/id.xml b/applications/content/template/docbook/common/id.xml
new file mode 100644
index 0000000..b213d2d
--- /dev/null
+++ b/applications/content/template/docbook/common/id.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="id" english-language-name="Indonesian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/id.xml -->
+<!-- * -->
+<!-- * E-mail the edited id.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstrak"/>
+<l:gentext key="abstract" text="abstrak"/>
+<l:gentext key="Acknowledgements" text="Penghargaan"/>
+<l:gentext key="acknowledgements" text="penghargaan"/>
+<l:gentext key="Answer" text="Jawab:"/>
+<l:gentext key="answer" text="jawab:"/>
+<l:gentext key="Appendix" text="Lampiran"/>
+<l:gentext key="appendix" text="lampiran"/>
+<l:gentext key="Article" text="Artikel"/>
+<l:gentext key="article" text="artikel"/>
+<l:gentext key="Author" text="Penulis"/>
+<l:gentext key="Bibliography" text="Bibliografi"/>
+<l:gentext key="bibliography" text="bibliografi"/>
+<l:gentext key="Book" text="Buku"/>
+<l:gentext key="book" text="buku"/>
+<l:gentext key="CAUTION" text="PERHATIAN"/>
+<l:gentext key="Caution" text="Perhatian"/>
+<l:gentext key="caution" text="perhatian"/>
+<l:gentext key="Chapter" text="Bab"/>
+<l:gentext key="chapter" text="bab"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="kolofon"/>
+<l:gentext key="Copyright" text="Hak Cipta"/>
+<l:gentext key="copyright" text="hak cipta"/>
+<l:gentext key="Dedication" text="Dedikasi"/>
+<l:gentext key="dedication" text="dedikasi"/>
+<l:gentext key="Edition" text="Edisi"/>
+<l:gentext key="edition" text="edisi"/>
+<l:gentext key="Editor" text="Penyunting"/>
+<l:gentext key="Equation" text="Persamaan"/>
+<l:gentext key="equation" text="persamaan"/>
+<l:gentext key="Example" text="Contoh"/>
+<l:gentext key="example" text="contoh"/>
+<l:gentext key="Figure" text="Gambar"/>
+<l:gentext key="figure" text="gambar"/>
+<l:gentext key="Glossary" text="Daftar Istilah"/>
+<l:gentext key="glossary" text="daftar istilah"/>
+<l:gentext key="GlossSee" text="Lihat"/>
+<l:gentext key="glosssee" text="lihat"/>
+<l:gentext key="GlossSeeAlso" text="Lihat Juga"/>
+<l:gentext key="glossseealso" text="lihat juga"/>
+<l:gentext key="IMPORTANT" text="PENTING"/>
+<l:gentext key="important" text="penting"/>
+<l:gentext key="Important" text="Penting"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="isbn"/>
+<l:gentext key="LegalNotice" text="Aspek Hukum"/>
+<l:gentext key="legalnotice" text="aspek hukum"/>
+<l:gentext key="MsgAud" text="Pemirsa"/>
+<l:gentext key="msgaud" text="pemirsa"/>
+<l:gentext key="MsgLevel" text="Tingkatan"/>
+<l:gentext key="msglevel" text="tingkatan"/>
+<l:gentext key="MsgOrig" text="Asal"/>
+<l:gentext key="msgorig" text="asal"/>
+<l:gentext key="NOTE" text="CATATAN"/>
+<l:gentext key="Note" text="Catatan"/>
+<l:gentext key="note" text="catatan"/>
+<l:gentext key="Part" text="Bagian"/>
+<l:gentext key="part" text="bagian"/>
+<l:gentext key="Preface" text="Kata Pengantar"/>
+<l:gentext key="preface" text="kata pengantar"/>
+<l:gentext key="Procedure" text="Prosedur"/>
+<l:gentext key="procedure" text="Prosedur"/>
+<l:gentext key="ProductionSet" text="produksi"/>
+<l:gentext key="PubDate" text="Tanggal Publikasi"/>
+<l:gentext key="pubdate" text="tanggal publikasi"/>
+<l:gentext key="Published" text="Diterbitkan"/>
+<l:gentext key="published" text="diterbitkan"/>
+<l:gentext key="Publisher" text="Penerbit"/>
+<l:gentext key="Qandadiv" text="Tanya dan Jawab"/>
+<l:gentext key="qandadiv" text="Tanya dan Jawab"/>
+<l:gentext key="QandASet" text="Pertanyaan yang Sering Diajukan"/>
+<l:gentext key="Question" text="Tanya:"/>
+<l:gentext key="question" text="Tanya:"/>
+<l:gentext key="RefEntry" text="Halaman"/>
+<l:gentext key="refentry" text="halaman"/>
+<l:gentext key="Reference" text="Rujukan"/>
+<l:gentext key="reference" text="Rujukan"/>
+<l:gentext key="References" text="Rujukan-rujukan"/>
+<l:gentext key="RefName" text="Nama"/>
+<l:gentext key="refname" text="Nama"/>
+<l:gentext key="RefSection" text="Bagian"/>
+<l:gentext key="refsection" text="bagian"/>
+<l:gentext key="RefSynopsisDiv" text="Sinopsis"/>
+<l:gentext key="refsynopsisdiv" text="Sinopsis"/>
+<l:gentext key="RevHistory" text="Riwayat Revisi"/>
+<l:gentext key="revhistory" text="ciwayat revisi"/>
+<l:gentext key="revision" text="revisi"/>
+<l:gentext key="Revision" text="Revisi"/>
+<l:gentext key="sect1" text="Bagian"/>
+<l:gentext key="sect2" text="Bagian"/>
+<l:gentext key="sect3" text="Bagian"/>
+<l:gentext key="sect4" text="Bagian"/>
+<l:gentext key="sect5" text="Bagian"/>
+<l:gentext key="section" text="bagian"/>
+<l:gentext key="Section" text="Bagian"/>
+<l:gentext key="see" text="lihat"/>
+<l:gentext key="See" text="Lihat"/>
+<l:gentext key="seealso" text="lihat juga"/>
+<l:gentext key="Seealso" text="Lihat juga"/>
+<l:gentext key="SeeAlso" text="Lihat Juga"/>
+<l:gentext key="set" text="set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="indeks set"/>
+<l:gentext key="SetIndex" text="Indeks Set"/>
+<l:gentext key="Sidebar" text="Panel Sisi"/>
+<l:gentext key="sidebar" text="panel sisi"/>
+<l:gentext key="step" text="tahap"/>
+<l:gentext key="Step" text="Tahap"/>
+<l:gentext key="table" text="Tabel"/>
+<l:gentext key="Table" text="Tabel"/>
+<l:gentext key="task" text="tugas"/>
+<l:gentext key="Task" text="Tugas"/>
+<l:gentext key="tip" text="Tip"/>
+<l:gentext key="TIP" text="TIP"/>
+<l:gentext key="Tip" text="Tip"/>
+<l:gentext key="Warning" text="Awas"/>
+<l:gentext key="warning" text="Awas"/>
+<l:gentext key="WARNING" text="AWAS"/>
+<l:gentext key="and" text="dan"/>
+<l:gentext key="or" text="atau"/>
+<l:gentext key="by" text="oleh"/>
+<l:gentext key="Edited" text="Disunting"/>
+<l:gentext key="edited" text="disunting"/>
+<l:gentext key="Editedby" text="Disunting oleh"/>
+<l:gentext key="editedby" text="disunting oleh"/>
+<l:gentext key="in" text="di"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Catatan"/>
+<l:gentext key="Notes" text="catatan"/>
+<l:gentext key="Pgs" text="Hal."/>
+<l:gentext key="pgs" text="hal."/>
+<l:gentext key="Revisedby" text="Direvisi oleh: "/>
+<l:gentext key="revisedby" text="direvisi oleh: "/>
+<l:gentext key="TableNotes" text="Catatan"/>
+<l:gentext key="tablenotes" text="catatan"/>
+<l:gentext key="TableofContents" text="Daftar Isi"/>
+<l:gentext key="tableofcontents" text="daftar isi"/>
+<l:gentext key="unexpectedelementname" text="Nama elemen tak terduga"/>
+<l:gentext key="unsupported" text="tidak didukung"/>
+<l:gentext key="xrefto" text="xref ke"/>
+<l:gentext key="Authors" text="Penulis"/>
+<l:gentext key="copyeditor" text="Pemeriksa Naskah"/>
+<l:gentext key="graphicdesigner" text="Perancang Grafis"/>
+<l:gentext key="productioneditor" text="Penyunting Produksi"/>
+<l:gentext key="technicaleditor" text="Penyunting Teknis"/>
+<l:gentext key="translator" text="Penerjemah"/>
+<l:gentext key="listofequations" text="daftar persamaan"/>
+<l:gentext key="ListofEquations" text="Daftar Persamaan"/>
+<l:gentext key="ListofExamples" text="Daftar Contoh"/>
+<l:gentext key="listofexamples" text="daftar contoh"/>
+<l:gentext key="ListofFigures" text="Daftar Gambar"/>
+<l:gentext key="listoffigures" text="daftar gambar"/>
+<l:gentext key="ListofProcedures" text="Daftar Prosedur"/>
+<l:gentext key="listofprocedures" text="daftar prosedur"/>
+<l:gentext key="listoftables" text="daftar tabel"/>
+<l:gentext key="ListofTables" text="Daftar Tabel"/>
+<l:gentext key="ListofUnknown" text="Daftar Tidak Dikenal"/>
+<l:gentext key="listofunknown" text="daftar tidak dikenal"/>
+<l:gentext key="nav-home" text="Depan"/>
+<l:gentext key="nav-next" text="Lanjut"/>
+<l:gentext key="nav-next-sibling" text="Lompat ke Depan"/>
+<l:gentext key="nav-prev" text="Sebelumnya"/>
+<l:gentext key="nav-prev-sibling" text="Lompat ke Belakang"/>
+<l:gentext key="nav-up" text="Induk"/>
+<l:gentext key="nav-toc" text="Daftar Isi"/>
+<l:gentext key="Draft" text="Draf"/>
+<l:gentext key="above" text="di atas"/>
+<l:gentext key="below" text="di bawah"/>
+<l:gentext key="sectioncalled" text="bagian bernama"/>
+<l:gentext key="index symbols" text="Simbol"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Lampiran %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Bab %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Persamaan %n. %t"/>
+<l:template name="example" text="Contoh %n. %t"/>
+<l:template name="figure" text="Gambar %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Bagian %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Prosedur %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="produksi %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabel %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Lampiran %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Bab %n. %t"/>
+<l:template name="part" text="Bagian %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Jawab: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Tanya: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Tanya: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" di %o"/>
+<l:template name="olink.page.citation" text=" (halaman %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(halaman %p)"/>
+<l:template name="docname" text=" di %o"/>
+<l:template name="docnamelong" text=" pada dokumen berjudul %o"/>
+<l:template name="pageabbrev" text="(h. %p)"/>
+<l:template name="Page" text="Halaman %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="bagian bernama “%t”"/>
+<l:template name="refsection" text="bagian bernama “%t”"/>
+<l:template name="refsect1" text="bagian bernama “%t”"/>
+<l:template name="refsect2" text="bagian bernama “%t”"/>
+<l:template name="refsect3" text="bagian bernama “%t”"/>
+<l:template name="sect1" text="bagian bernama “%t”"/>
+<l:template name="sect2" text="bagian bernama “%t”"/>
+<l:template name="sect3" text="bagian bernama “%t”"/>
+<l:template name="sect4" text="bagian bernama “%t”"/>
+<l:template name="sect5" text="bagian bernama “%t”"/>
+<l:template name="section" text="bagian bernama “%t”"/>
+<l:template name="simplesect" text="bagian bernama “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Jawab: %n"/>
+<l:template name="appendix" text="Lampiran %n"/>
+<l:template name="bridgehead" text="Bagian %n"/>
+<l:template name="chapter" text="Bab %n"/>
+<l:template name="equation" text="Persamaan %n"/>
+<l:template name="example" text="Contoh %n"/>
+<l:template name="figure" text="Gambar %n"/>
+<l:template name="part" text="Bagian %n"/>
+<l:template name="procedure" text="Prosedur %n"/>
+<l:template name="productionset" text="produksi %n"/>
+<l:template name="qandadiv" text="Tanya dan Jawab %n"/>
+<l:template name="qandaentry" text="Tanya: %n"/>
+<l:template name="question" text="Tanya: %n"/>
+<l:template name="sect1" text="Bagian %n"/>
+<l:template name="sect2" text="Bagian %n"/>
+<l:template name="sect3" text="Bagian %n"/>
+<l:template name="sect4" text="Bagian %n"/>
+<l:template name="sect5" text="Bagian %n"/>
+<l:template name="section" text="Bagian %n"/>
+<l:template name="table" text="Tabel %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Lampiran %n, %t"/>
+<l:template name="bridgehead" text="Bagian %n, “%t”"/>
+<l:template name="chapter" text="Bab %n, %t"/>
+<l:template name="equation" text="Persamaan %n, “%t”"/>
+<l:template name="example" text="Contoh %n, “%t”"/>
+<l:template name="figure" text="Gambar %n, “%t”"/>
+<l:template name="part" text="Bagian %n, “%t”"/>
+<l:template name="procedure" text="Prosedur %n, “%t”"/>
+<l:template name="productionset" text="produksi %n, “%t”"/>
+<l:template name="qandadiv" text="Tanya dan Jawab %n, “%t”"/>
+<l:template name="refsect1" text="bagian bernama “%t”"/>
+<l:template name="refsect2" text="bagian bernama “%t”"/>
+<l:template name="refsect3" text="bagian bernama “%t”"/>
+<l:template name="refsection" text="bagian bernama “%t”"/>
+<l:template name="sect1" text="Bagian %n, “%t”"/>
+<l:template name="sect2" text="Bagian %n, “%t”"/>
+<l:template name="sect3" text="Bagian %n, “%t”"/>
+<l:template name="sect4" text="Bagian %n, “%t”"/>
+<l:template name="sect5" text="Bagian %n, “%t”"/>
+<l:template name="section" text="Bagian %n, “%t”"/>
+<l:template name="simplesect" text="bagian bernama “%t”"/>
+<l:template name="table" text="Tabel %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" dan "/>
+<l:template name="seplast" text=", dan "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Lihat %t."/>
+<l:template name="seealso" text="Lihat Juga %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Pemirsa: "/>
+<l:template name="MsgLevel" text="Tingkatan: "/>
+<l:template name="MsgOrig" text="Asal: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Januari"/>
+<l:template name="February" text="Februari"/>
+<l:template name="March" text="Maret"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="Mei"/>
+<l:template name="June" text="Juni"/>
+<l:template name="July" text="Juli"/>
+<l:template name="August" text="Agustus"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="Oktober"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="Desember"/>
+<l:template name="Monday" text="Senin"/>
+<l:template name="Tuesday" text="Selasa"/>
+<l:template name="Wednesday" text="Rabu"/>
+<l:template name="Thursday" text="Kamis"/>
+<l:template name="Friday" text="Jumat"/>
+<l:template name="Saturday" text="Sabtu"/>
+<l:template name="Sunday" text="Ahad"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Mei"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Des"/>
+<l:template name="Mon" text="Sen"/>
+<l:template name="Tue" text="Sel"/>
+<l:template name="Wed" text="Rab"/>
+<l:template name="Thu" text="Kam"/>
+<l:template name="Fri" text="Jum"/>
+<l:template name="Sat" text="Sab"/>
+<l:template name="Sun" text="Aha"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0421 Bahasa Indonesia (INDONESIA)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Simbol</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/insertfile.xsl b/applications/content/template/docbook/common/insertfile.xsl
new file mode 100644
index 0000000..c4e2d0d
--- /dev/null
+++ b/applications/content/template/docbook/common/insertfile.xsl
@@ -0,0 +1,111 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xi="http://www.w3.org/2001/XInclude"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:param name="textdata.default.encoding"></xsl:param>
+
+<!-- * This stylesheet makes a copy of a source tree, replacing all -->
+<!-- * instances of the following with corresponding Xinclude instances -->
+<!-- * in the result tree. -->
+<!-- * -->
+<!-- *   <textobject><textdata fileref="foo.txt"> -->
+<!-- *   <imagedata format="linespecific" fileref="foo.txt"> -->
+<!-- *   <inlinegraphic format="linespecific" fileref="foo.txt"> -->
+<!-- * -->
+<!-- * Those become: -->
+<!-- * -->
+<!-- *   <xi:include href="foo.txt" parse="text"/> -->
+<!-- * -->
+<!-- * It also works as expected with entityref in place of fileref, -->
+<!-- * and copies over the value of the <textdata>“encoding” atrribute (if -->
+<!-- * found). It is basically intended as an alternative to using the -->
+<!-- * DocBook XSLT Java insertfile() extension. -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="get.external.filename">
+  <xsl:choose>
+    <xsl:when test="@entityref">
+      <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="@fileref"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="textobject[child::textdata[@entityref|@fileref]]">
+  <xsl:apply-templates select="textdata"/>
+</xsl:template>
+
+<xsl:template match="textdata[@entityref|@fileref]">
+  <xsl:variable name="filename">
+    <xsl:call-template name="get.external.filename"/>
+  </xsl:variable>
+  <xsl:variable name="encoding">
+    <xsl:choose>
+      <xsl:when test="@encoding">
+        <xsl:value-of select="@encoding"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$textdata.default.encoding"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xi:include href="{$filename}" parse="text" encoding="{$encoding}"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template
+    match="inlinemediaobject
+           [child::imageobject
+           [child::imagedata
+           [@format = 'linespecific' and
+           (@entityref|@fileref)]]]">
+  <xsl:apply-templates select="imageobject/imagedata"/>
+</xsl:template>
+
+<xsl:template match="imagedata
+                     [@format = 'linespecific' and
+                     (@entityref|@fileref)]">
+  <xsl:variable name="filename">
+    <xsl:call-template name="get.external.filename"/>
+  </xsl:variable>
+  <xi:include href="{$filename}" parse="text" encoding="{$textdata.default.encoding}"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="inlinegraphic
+                     [@format = 'linespecific' and
+                     (@entityref|@fileref)]">
+  <xsl:variable name="filename">
+    <xsl:call-template name="get.external.filename"/>
+  </xsl:variable>
+  <xi:include href="{$filename}" parse="text" encoding="{$textdata.default.encoding}"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * copy everything else into result tree as-is -->
+<xsl:template match="node() | @*">
+  <xsl:copy>
+    <xsl:apply-templates select="@* | node()"/>
+  </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/common/is.xml b/applications/content/template/docbook/common/is.xml
new file mode 100644
index 0000000..acf980d
--- /dev/null
+++ b/applications/content/template/docbook/common/is.xml
@@ -0,0 +1,690 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="is" english-language-name="Icelandic">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/is.xml -->
+<!-- * -->
+<!-- * E-mail the edited is.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Ágrip"/>
+<l:gentext key="abstract" text="ágrip"/>
+<l:gentext key="Acknowledgements" text="Þakkarorð"/>
+<l:gentext key="acknowledgements" text="þakkarorð"/>
+<l:gentext key="Answer" text="Svar"/>
+<l:gentext key="answer" text="svar"/>
+<l:gentext key="Appendix" text="Viðauki"/>
+<l:gentext key="appendix" text="viðauki"/>
+<l:gentext key="Article" text="Grein"/>
+<l:gentext key="article" text="grein"/>
+<l:gentext key="Author" text="Höfundur"/>
+<l:gentext key="Bibliography" text="Heimildaskrá"/>
+<l:gentext key="bibliography" text="heimildaskrá"/>
+<l:gentext key="Book" text="Bók"/>
+<l:gentext key="book" text="bók"/>
+<l:gentext key="CAUTION" text="ATH"/>
+<l:gentext key="Caution" text="Athugið"/>
+<l:gentext key="caution" text="athugið"/>
+<l:gentext key="Chapter" text="Kafli"/>
+<l:gentext key="chapter" text="kafli"/>
+<l:gentext key="Colophon" text="Útgáfuupplýsingar"/>
+<l:gentext key="colophon" text="Útgáfuupplýsingar"/>
+<l:gentext key="Copyright" text="Höfundaréttur"/>
+<l:gentext key="copyright" text="höfundaréttur"/>
+<l:gentext key="Dedication" text="Tileinkun"/>
+<l:gentext key="dedication" text="tileinkun"/>
+<l:gentext key="Edition" text="Útgáfa"/>
+<l:gentext key="edition" text="útgáfa"/>
+<l:gentext key="Editor" text="Ritstjórn"/>
+<l:gentext key="Equation" text="Formúla"/>
+<l:gentext key="equation" text="formúla"/>
+<l:gentext key="Example" text="Dæmi"/>
+<l:gentext key="example" text="dæmi"/>
+<l:gentext key="Figure" text="Skýringamynd"/>
+<l:gentext key="figure" text="skýringamynd"/>
+<l:gentext key="Glossary" text="Orðalisti"/>
+<l:gentext key="glossary" text="orðalisti"/>
+<l:gentext key="GlossSee" text="Sjá"/>
+<l:gentext key="glosssee" text="sjá"/>
+<l:gentext key="GlossSeeAlso" text="Sjá einnig"/>
+<l:gentext key="glossseealso" text="sjá einnig"/>
+<l:gentext key="IMPORTANT" text="MIKILVÆGT"/>
+<l:gentext key="important" text="mikilvægt"/>
+<l:gentext key="Important" text="Mikilvægt"/>
+<l:gentext key="Index" text="Atriðaskrá"/>
+<l:gentext key="index" text="atriðaskrá"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="isbn"/>
+<l:gentext key="LegalNotice" text="Lagalegur fyrirvari"/>
+<l:gentext key="legalnotice" text="lagalegur fyrirvari"/>
+<l:gentext key="MsgAud" text="Markhópur"/>
+<l:gentext key="msgaud" text="markhópur"/>
+<l:gentext key="MsgLevel" text="Stig"/>
+<l:gentext key="msglevel" text="stig"/>
+<l:gentext key="MsgOrig" text="Uppruni"/>
+<l:gentext key="msgorig" text="uppruni"/>
+<l:gentext key="NOTE" text="ATHUGASEMD"/>
+<l:gentext key="Note" text="Athugasemd"/>
+<l:gentext key="note" text="athugasemd"/>
+<l:gentext key="Part" text="Hluti"/>
+<l:gentext key="part" text="hluti"/>
+<l:gentext key="Preface" text="Formáli"/>
+<l:gentext key="preface" text="formáli"/>
+<l:gentext key="Procedure" text="Vinnuferli"/>
+<l:gentext key="procedure" text="vinnuferli"/>
+<l:gentext key="ProductionSet" text="Framleiðsla"/>
+<l:gentext key="PubDate" text="Birtingardagur"/>
+<l:gentext key="pubdate" text="birtingardagur"/>
+<l:gentext key="Published" text="Útgefið"/>
+<l:gentext key="published" text="útgefið"/>
+<l:gentext key="Publisher" text="Útgefandi"/>
+<l:gentext key="Qandadiv" text="Spurning og svör"/>
+<l:gentext key="qandadiv" text="spurning og svör"/>
+<l:gentext key="QandASet" text="Algengar Spurningar"/>
+<l:gentext key="Question" text="Spurning"/>
+<l:gentext key="question" text="spurning"/>
+<l:gentext key="RefEntry" text="Færsla"/>
+<l:gentext key="refentry" text="færsla"/>
+<l:gentext key="Reference" text="Heimild"/>
+<l:gentext key="reference" text="heimild"/>
+<l:gentext key="References" text="Heimildir"/>
+<l:gentext key="RefName" text="Heiti"/>
+<l:gentext key="refname" text="heiti"/>
+<l:gentext key="RefSection" text="Grein"/>
+<l:gentext key="refsection" text="grein"/>
+<l:gentext key="RefSynopsisDiv" text="Samantekt"/>
+<l:gentext key="refsynopsisdiv" text="samantekt"/>
+<l:gentext key="RevHistory" text="Yfirferðarferill"/>
+<l:gentext key="revhistory" text="yfirferðarferill"/>
+<l:gentext key="revision" text="yfirfarið"/>
+<l:gentext key="Revision" text="Yfirfarið"/>
+<l:gentext key="sect1" text="grein"/>
+<l:gentext key="sect2" text="grein"/>
+<l:gentext key="sect3" text="grein"/>
+<l:gentext key="sect4" text="grein"/>
+<l:gentext key="sect5" text="grein"/>
+<l:gentext key="section" text="grein"/>
+<l:gentext key="Section" text="Grein"/>
+<l:gentext key="see" text="sjá"/>
+<l:gentext key="See" text="Sjá"/>
+<l:gentext key="seealso" text="sjá einnig"/>
+<l:gentext key="Seealso" text="Sjá einnig"/>
+<l:gentext key="SeeAlso" text="Sjá einnig"/>
+<l:gentext key="set" text="setja"/>
+<l:gentext key="Set" text="Setja"/>
+<l:gentext key="setindex" text="stilla yfirlit"/>
+<l:gentext key="SetIndex" text="Stilla yfirlit"/>
+<l:gentext key="Sidebar" text="Hliðarslá"/>
+<l:gentext key="sidebar" text="hliðarslá"/>
+<l:gentext key="step" text="skref"/>
+<l:gentext key="Step" text="Skref"/>
+<l:gentext key="table" text="tafla"/>
+<l:gentext key="Table" text="Tafla"/>
+<l:gentext key="task" text="Verk"/>
+<l:gentext key="Task" text="verk"/>
+<l:gentext key="tip" text="ábending"/>
+<l:gentext key="TIP" text="ÁBENDING"/>
+<l:gentext key="Tip" text="Ábending"/>
+<l:gentext key="Warning" text="Aðvörun"/>
+<l:gentext key="warning" text="aðvörun"/>
+<l:gentext key="WARNING" text="AĐVÖRUN"/>
+<l:gentext key="and" text="og"/>
+<l:gentext key="or" text="eða"/>
+<l:gentext key="by" text="af"/>
+<l:gentext key="Edited" text="Ritstýrt"/>
+<l:gentext key="edited" text="ritstýrt"/>
+<l:gentext key="Editedby" text="Ritstýrt af"/>
+<l:gentext key="editedby" text="ritstýrt af"/>
+<l:gentext key="in" text="í"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="athugasemdir"/>
+<l:gentext key="Notes" text="Athugasemdir"/>
+<l:gentext key="Pgs" text="Bls."/>
+<l:gentext key="pgs" text="bls."/>
+<l:gentext key="Revisedby" text="Yfirfarið af: "/>
+<l:gentext key="revisedby" text="yfirfarið af: "/>
+<l:gentext key="TableNotes" text="athugasemdir"/>
+<l:gentext key="tablenotes" text="Athugasemdir"/>
+<l:gentext key="TableofContents" text="Efnisyfirlit"/>
+<l:gentext key="tableofcontents" text="efnisyfirlit"/>
+<l:gentext key="unexpectedelementname" text="óvænt heiti á einingu"/>
+<l:gentext key="unsupported" text="óstutt"/>
+<l:gentext key="xrefto" text="xref í"/>
+<l:gentext key="Authors" text="Höfundar"/>
+<l:gentext key="copyeditor" text=""/>
+<l:gentext key="graphicdesigner" text=""/>
+<l:gentext key="productioneditor" text=""/>
+<l:gentext key="technicaleditor" text=""/>
+<l:gentext key="translator" text="þýðandi"/>
+<l:gentext key="listofequations" text="yfirlit yfir formúlur"/>
+<l:gentext key="ListofEquations" text="Yfirlit yfir formúlur"/>
+<l:gentext key="ListofExamples" text="Yfirlit yfir dæmi"/>
+<l:gentext key="listofexamples" text="yfirlit yfir dæmi"/>
+<l:gentext key="ListofFigures" text="Yfirlit yfir myndir"/>
+<l:gentext key="listoffigures" text="yfirlit yfir myndir"/>
+<l:gentext key="ListofProcedures" text="Yfirlit yfir verklag"/>
+<l:gentext key="listofprocedures" text="yfirlit yfir verklag"/>
+<l:gentext key="listoftables" text="yfirlit yfir töflur"/>
+<l:gentext key="ListofTables" text="Yfirlit yfir töflur"/>
+<l:gentext key="ListofUnknown" text="Yfirlit yfir óskilgreint"/>
+<l:gentext key="listofunknown" text="yfirlit yfir óskilgreint"/>
+<l:gentext key="nav-home" text="Heim"/>
+<l:gentext key="nav-next" text="Næsta"/>
+<l:gentext key="nav-next-sibling" text=""/>
+<l:gentext key="nav-prev" text="Fyrra"/>
+<l:gentext key="nav-prev-sibling" text=""/>
+<l:gentext key="nav-up" text="Upp"/>
+<l:gentext key="nav-toc" text="Efnisyfirlit"/>
+<l:gentext key="Draft" text="Uppkast"/>
+<l:gentext key="above" text="ofan"/>
+<l:gentext key="below" text="neðar"/>
+<l:gentext key="sectioncalled" text=""/>
+<l:gentext key="index symbols" text="tákn"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="aábdðeéfghiíjklmnoóprstuúvxyýþæö"/>
+<l:gentext key="uppercase.alpha" text="AÁBDĐEÉFGHIÍJKLMNOÓPRSTUÚVXYÝÞÆÖ"/>
+<l:gentext key="normalize.sort.input" text="AaÁáBbCcDdĐðEeÉéFfGgHhIiÍíJjKkLlMmNnOoÓóPpQqRrSsTtUuÚúVvWwXxYyÝýZzÞþÆæÖö"/>
+<l:gentext key="normalize.sort.output" text="AAÁÁBBCCDDĐĐEEÉÉFFGGHHIIÍÍJJKKLLMMNNOOÓÓPPQQRRSSTTUUÚÚVVWWXXYYÝÝZZÞÞÆÆÖÖ"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Viðauki %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kafli %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Formúla %n. %t"/>
+<l:template name="example" text="Dæmi %n. %t"/>
+<l:template name="figure" text="Skýringamynd %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Hluti %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Vinnuferli %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Framleiðsla %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tafla %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Viðauki %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Kafli %n. %t"/>
+<l:template name="part" text="Hluti %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="Svar %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Spurning %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Spurning %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(blaðsíða %p)"/>
+<l:template name="docname" text=" í %o"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(bls. %p)"/>
+<l:template name="Page" text="Blaðsíða %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text=" “%t”"/>
+<l:template name="refsection" text=" “%t”"/>
+<l:template name="refsect1" text=" “%t”"/>
+<l:template name="refsect2" text=" “%t”"/>
+<l:template name="refsect3" text=" “%t”"/>
+<l:template name="sect1" text=" “%t”"/>
+<l:template name="sect2" text=" “%t”"/>
+<l:template name="sect3" text=" “%t”"/>
+<l:template name="sect4" text=" “%t”"/>
+<l:template name="sect5" text=" “%t”"/>
+<l:template name="section" text=" “%t”"/>
+<l:template name="simplesect" text=" “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Svar %n"/>
+<l:template name="appendix" text="Viðauki %n"/>
+<l:template name="bridgehead" text="Grein %n"/>
+<l:template name="chapter" text="Kafli %n"/>
+<l:template name="equation" text="Formúla %n"/>
+<l:template name="example" text="Dæmi %n"/>
+<l:template name="figure" text="Skýringamynd %n"/>
+<l:template name="part" text="Hluti %n"/>
+<l:template name="procedure" text="Vinnuferli %n"/>
+<l:template name="productionset" text="Framleiðsla %n"/>
+<l:template name="qandadiv" text="Spurning og svör %n"/>
+<l:template name="qandaentry" text="Spurning %n"/>
+<l:template name="question" text="Spurning %n"/>
+<l:template name="sect1" text="Grein %n"/>
+<l:template name="sect2" text="Grein %n"/>
+<l:template name="sect3" text="Grein %n"/>
+<l:template name="sect4" text="Grein %n"/>
+<l:template name="sect5" text="Grein %n"/>
+<l:template name="section" text="Grein %n"/>
+<l:template name="table" text="Tafla %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Viðauki %n, %t"/>
+<l:template name="bridgehead" text="Grein %n, “%t”"/>
+<l:template name="chapter" text="Kafli %n, %t"/>
+<l:template name="equation" text="Formúla %n, “%t”"/>
+<l:template name="example" text="Dæmi %n, “%t”"/>
+<l:template name="figure" text="Skýringamynd %n, “%t”"/>
+<l:template name="part" text="Hluti %n, “%t”"/>
+<l:template name="procedure" text="Vinnuferli %n, “%t”"/>
+<l:template name="productionset" text="Framleiðsla %n, “%t”"/>
+<l:template name="qandadiv" text="Spurning og svör %n, “%t”"/>
+<l:template name="refsect1" text=" “%t”"/>
+<l:template name="refsect2" text=" “%t”"/>
+<l:template name="refsect3" text=" “%t”"/>
+<l:template name="refsection" text=" “%t”"/>
+<l:template name="sect1" text="Grein %n, “%t”"/>
+<l:template name="sect2" text="Grein %n, “%t”"/>
+<l:template name="sect3" text="Grein %n, “%t”"/>
+<l:template name="sect4" text="Grein %n, “%t”"/>
+<l:template name="sect5" text="Grein %n, “%t”"/>
+<l:template name="section" text="Grein %n, “%t”"/>
+<l:template name="simplesect" text=" “%t”"/>
+<l:template name="table" text="Tafla %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" og "/>
+<l:template name="seplast" text=", og "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Sjá %t."/>
+<l:template name="seealso" text="Sjá einnig %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Markhópur: "/>
+<l:template name="MsgLevel" text="Stig: "/>
+<l:template name="MsgOrig" text="Uppruni: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d-m-Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Janúar"/>
+<l:template name="February" text="Febrúar"/>
+<l:template name="March" text="Mars"/>
+<l:template name="April" text="Apríl"/>
+<l:template name="May" text="Maí"/>
+<l:template name="June" text="Júní"/>
+<l:template name="July" text="Júlí"/>
+<l:template name="August" text="Ágúst"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="Október"/>
+<l:template name="November" text="Nóvember"/>
+<l:template name="December" text="Desember"/>
+<l:template name="Monday" text="Mánudagur"/>
+<l:template name="Tuesday" text="Þriðjudagur"/>
+<l:template name="Wednesday" text="Miðvikudagur"/>
+<l:template name="Thursday" text="Fimmtudagur"/>
+<l:template name="Friday" text="Föstudagur"/>
+<l:template name="Saturday" text="Laugardagur"/>
+<l:template name="Sunday" text="Sunnudagur"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Maí"/>
+<l:template name="Jun" text="Jún"/>
+<l:template name="Jul" text="Júl"/>
+<l:template name="Aug" text="Ágú"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nóv"/>
+<l:template name="Dec" text="Des"/>
+<l:template name="Mon" text="Mán"/>
+<l:template name="Tue" text="Þri"/>
+<l:template name="Wed" text="Mið"/>
+<l:template name="Thu" text="Fim"/>
+<l:template name="Fri" text="Fös"/>
+<l:template name="Sat" text="Lau"/>
+<l:template name="Sun" text="Sun"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x040F  Icelandic"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">tákn</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">Á</l:l>
+<l:l i="20">á</l:l>
+<l:l i="30">B</l:l>
+<l:l i="30">b</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">Đ</l:l>
+<l:l i="50">ð</l:l>
+<l:l i="60">E</l:l>
+<l:l i="60">e</l:l>
+<l:l i="70">É</l:l>
+<l:l i="70">é</l:l>
+<l:l i="80">F</l:l>
+<l:l i="80">f</l:l>
+<l:l i="90">G</l:l>
+<l:l i="90">g</l:l>
+<l:l i="100">H</l:l>
+<l:l i="100">h</l:l>
+<l:l i="110">I</l:l>
+<l:l i="110">i</l:l>
+<l:l i="120">Í</l:l>
+<l:l i="120">í</l:l>
+<l:l i="130">J</l:l>
+<l:l i="130">j</l:l>
+<l:l i="140">K</l:l>
+<l:l i="140">k</l:l>
+<l:l i="150">L</l:l>
+<l:l i="150">l</l:l>
+<l:l i="160">M</l:l>
+<l:l i="160">m</l:l>
+<l:l i="170">N</l:l>
+<l:l i="170">n</l:l>
+<l:l i="180">O</l:l>
+<l:l i="180">o</l:l>
+<l:l i="190">Ó</l:l>
+<l:l i="190">ó</l:l>
+<l:l i="200">P</l:l>
+<l:l i="200">p</l:l>
+<l:l i="210">R</l:l>
+<l:l i="210">r</l:l>
+<l:l i="220">S</l:l>
+<l:l i="220">s</l:l>
+<l:l i="230">T</l:l>
+<l:l i="230">t</l:l>
+<l:l i="240">U</l:l>
+<l:l i="240">u</l:l>
+<l:l i="250">Ú</l:l>
+<l:l i="250">ú</l:l>
+<l:l i="260">V</l:l>
+<l:l i="260">v</l:l>
+<l:l i="270">X</l:l>
+<l:l i="270">x</l:l>
+<l:l i="280">Y</l:l>
+<l:l i="280">y</l:l>
+<l:l i="290">Ý</l:l>
+<l:l i="290">ý</l:l>
+<l:l i="300">Þ</l:l>
+<l:l i="300">þ</l:l>
+<l:l i="310">Æ</l:l>
+<l:l i="310">æ</l:l>
+<l:l i="320">Ö</l:l>
+<l:l i="320">ö</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/it.xml b/applications/content/template/docbook/common/it.xml
new file mode 100644
index 0000000..18e9542
--- /dev/null
+++ b/applications/content/template/docbook/common/it.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="it" english-language-name="Italian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/it.xml -->
+<!-- * -->
+<!-- * E-mail the edited it.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Sommario"/>
+<l:gentext key="abstract" text="Sommario"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="Risposta:"/>
+<l:gentext key="answer" text="Risposta:"/>
+<l:gentext key="Appendix" text="Appendice"/>
+<l:gentext key="appendix" text="Appendice"/>
+<l:gentext key="Article" text="Articolo"/>
+<l:gentext key="article" text="Articolo"/>
+<l:gentext key="Author" text="Autore"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="Bibliografia"/>
+<l:gentext key="Book" text="Libro"/>
+<l:gentext key="book" text="Libro"/>
+<l:gentext key="CAUTION" text="ATTENZIONE"/>
+<l:gentext key="Caution" text="Attenzione"/>
+<l:gentext key="caution" text="Attenzione"/>
+<l:gentext key="Chapter" text="Capitolo"/>
+<l:gentext key="chapter" text="Capitolo"/>
+<l:gentext key="Colophon" text="Colofone"/>
+<l:gentext key="colophon" text="Colofone"/>
+<l:gentext key="Copyright" text="Diritto d'autore"/>
+<l:gentext key="copyright" text="Diritto d'autore"/>
+<l:gentext key="Dedication" text="Dedica"/>
+<l:gentext key="dedication" text="Dedica"/>
+<l:gentext key="Edition" text="Edizione"/>
+<l:gentext key="edition" text="Edizione"/>
+<l:gentext key="Editor" text="Editor"/>
+<l:gentext key="Equation" text="Equazione"/>
+<l:gentext key="equation" text="Equazione"/>
+<l:gentext key="Example" text="Esempio"/>
+<l:gentext key="example" text="Esempio"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="Figura"/>
+<l:gentext key="Glossary" text="Glossario"/>
+<l:gentext key="glossary" text="Glossario"/>
+<l:gentext key="GlossSee" text="Vedi"/>
+<l:gentext key="glosssee" text="Vedi"/>
+<l:gentext key="GlossSeeAlso" text="Vedi anche"/>
+<l:gentext key="glossseealso" text="Vedi anche"/>
+<l:gentext key="IMPORTANT" text="IMPORTANTE"/>
+<l:gentext key="important" text="Importante"/>
+<l:gentext key="Important" text="Importante"/>
+<l:gentext key="Index" text="Indice analitico"/>
+<l:gentext key="index" text="Indice analitico"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Nota Legale"/>
+<l:gentext key="legalnotice" text="Nota Legale"/>
+<l:gentext key="MsgAud" text="Pubblico"/>
+<l:gentext key="msgaud" text="Pubblico"/>
+<l:gentext key="MsgLevel" text="Livello"/>
+<l:gentext key="msglevel" text="Livello"/>
+<l:gentext key="MsgOrig" text="Origine"/>
+<l:gentext key="msgorig" text="Origine"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="Nota"/>
+<l:gentext key="Part" text="Parte"/>
+<l:gentext key="part" text="Parte"/>
+<l:gentext key="Preface" text="Prefazione"/>
+<l:gentext key="preface" text="Prefazione"/>
+<l:gentext key="Procedure" text="Procedura"/>
+<l:gentext key="procedure" text="Procedura"/>
+<l:gentext key="ProductionSet" text="Produzione"/>
+<l:gentext key="PubDate" text="Data di pubblicazione"/>
+<l:gentext key="pubdate" text="Data di pubblicazione"/>
+<l:gentext key="Published" text="Pubblicato"/>
+<l:gentext key="published" text="Pubblicato"/>
+<l:gentext key="Publisher" text="Editore"/>
+<l:gentext key="Qandadiv" text="Domande e risposte"/>
+<l:gentext key="qandadiv" text="Domande e risposte"/>
+<l:gentext key="QandASet" text="Domande ricorrenti"/>
+<l:gentext key="Question" text="Domanda:"/>
+<l:gentext key="question" text="Domanda:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Riferimento"/>
+<l:gentext key="reference" text="Riferimento"/>
+<l:gentext key="References" text="Riferimenti"/>
+<l:gentext key="RefName" text="Nome"/>
+<l:gentext key="refname" text="Nome"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Sinossi"/>
+<l:gentext key="refsynopsisdiv" text="Sinossi"/>
+<l:gentext key="RevHistory" text="Diario delle Revisioni"/>
+<l:gentext key="revhistory" text="Diario delle Revisioni"/>
+<l:gentext key="revision" text="Revisione"/>
+<l:gentext key="Revision" text="Revisione"/>
+<l:gentext key="sect1" text="Sezione"/>
+<l:gentext key="sect2" text="Sezione"/>
+<l:gentext key="sect3" text="Sezione"/>
+<l:gentext key="sect4" text="Sezione"/>
+<l:gentext key="sect5" text="Sezione"/>
+<l:gentext key="section" text="Sezione"/>
+<l:gentext key="Section" text="Sezione"/>
+<l:gentext key="see" text="vedi"/>
+<l:gentext key="See" text="Vedi"/>
+<l:gentext key="seealso" text="vedi anche"/>
+<l:gentext key="Seealso" text="Vedi anche"/>
+<l:gentext key="SeeAlso" text="Vedi Anche"/>
+<l:gentext key="set" text="Raccolta"/>
+<l:gentext key="Set" text="Raccolta"/>
+<l:gentext key="setindex" text="Indice della raccolta"/>
+<l:gentext key="SetIndex" text="Indice della raccolta"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="nota a margine"/>
+<l:gentext key="step" text="passo"/>
+<l:gentext key="Step" text="Passo"/>
+<l:gentext key="table" text="Tabella"/>
+<l:gentext key="Table" text="Tabella"/>
+<l:gentext key="task" text="Attività"/>
+<l:gentext key="Task" text="Attività"/>
+<l:gentext key="tip" text="Suggerimento"/>
+<l:gentext key="TIP" text="SUGGERIMENTO"/>
+<l:gentext key="Tip" text="Suggerimento"/>
+<l:gentext key="Warning" text="Avvertimento"/>
+<l:gentext key="warning" text="avvertimento"/>
+<l:gentext key="WARNING" text="AVVERTIMENTO"/>
+<l:gentext key="and" text="e"/>
+<l:gentext key="or" text="o"/>
+<l:gentext key="by" text="di"/>
+<l:gentext key="Edited" text="A cura"/>
+<l:gentext key="edited" text="A cura"/>
+<l:gentext key="Editedby" text="A cura di"/>
+<l:gentext key="editedby" text="A cura di"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Note"/>
+<l:gentext key="Notes" text="Note"/>
+<l:gentext key="Pgs" text="pp."/>
+<l:gentext key="pgs" text="pp."/>
+<l:gentext key="Revisedby" text="Revisionato da: "/>
+<l:gentext key="revisedby" text="Revisionato da: "/>
+<l:gentext key="TableNotes" text="Note"/>
+<l:gentext key="tablenotes" text="Note"/>
+<l:gentext key="TableofContents" text="Indice"/>
+<l:gentext key="tableofcontents" text="Indice"/>
+<l:gentext key="unexpectedelementname" text="Nome di elemento inatteso"/>
+<l:gentext key="unsupported" text="non supportato"/>
+<l:gentext key="xrefto" text="riferimento a"/>
+<l:gentext key="Authors" text="Autori"/>
+<l:gentext key="copyeditor" text="Correttore di bozze"/>
+<l:gentext key="graphicdesigner" text="Progettista grafico"/>
+<l:gentext key="productioneditor" text="Montatore"/>
+<l:gentext key="technicaleditor" text="Revisore tecnico"/>
+<l:gentext key="translator" text="Traduttore"/>
+<l:gentext key="listofequations" text="Lista delle equazioni"/>
+<l:gentext key="ListofEquations" text="Lista delle equazioni"/>
+<l:gentext key="ListofExamples" text="Lista degli esempi"/>
+<l:gentext key="listofexamples" text="Lista degli esempi"/>
+<l:gentext key="ListofFigures" text="Lista delle figure"/>
+<l:gentext key="listoffigures" text="Lista delle figure"/>
+<l:gentext key="ListofProcedures" text="Lista delle procedure"/>
+<l:gentext key="listofprocedures" text="Lista delle procedure"/>
+<l:gentext key="listoftables" text="Lista delle tabelle"/>
+<l:gentext key="ListofTables" text="Lista delle tabelle"/>
+<l:gentext key="ListofUnknown" text="Lista degli sconosciuti"/>
+<l:gentext key="listofunknown" text="Lista degli sconosciuti"/>
+<l:gentext key="nav-home" text="Partenza"/>
+<l:gentext key="nav-next" text="Avanti"/>
+<l:gentext key="nav-next-sibling" text="Salta Avanti"/>
+<l:gentext key="nav-prev" text="Indietro"/>
+<l:gentext key="nav-prev-sibling" text="Salta Indietro"/>
+<l:gentext key="nav-up" text="Risali"/>
+<l:gentext key="nav-toc" text="Sommario"/>
+<l:gentext key="Draft" text="Bozza"/>
+<l:gentext key="above" text="sopra"/>
+<l:gentext key="below" text="sotto"/>
+<l:gentext key="sectioncalled" text="sezione chiamata"/>
+<l:gentext key="index symbols" text="Simboli"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ"/>
+<l:dingbat key="startquote" text="«"/>
+<l:dingbat key="endquote" text="»"/>
+<l:dingbat key="nestedstartquote" text="“"/>
+<l:dingbat key="nestedendquote" text="”"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Appendice %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capitolo %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equazione %n. %t"/>
+<l:template name="example" text="Esempio %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedura %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produzione %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabella %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Appendice %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Capitolo %n. %t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Risposta: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Domanda: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Domanda: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (pagina %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(pagina %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" nel documento dal titolo %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Pagina %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="sezione chiamata «%t»"/>
+<l:template name="refsection" text="sezione chiamata «%t»"/>
+<l:template name="refsect1" text="sezione chiamata «%t»"/>
+<l:template name="refsect2" text="sezione chiamata «%t»"/>
+<l:template name="refsect3" text="sezione chiamata «%t»"/>
+<l:template name="sect1" text="sezione chiamata «%t»"/>
+<l:template name="sect2" text="sezione chiamata «%t»"/>
+<l:template name="sect3" text="sezione chiamata «%t»"/>
+<l:template name="sect4" text="sezione chiamata «%t»"/>
+<l:template name="sect5" text="sezione chiamata «%t»"/>
+<l:template name="section" text="sezione chiamata «%t»"/>
+<l:template name="simplesect" text="sezione chiamata «%t»"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Risposta: %n"/>
+<l:template name="appendix" text="Appendice %n"/>
+<l:template name="bridgehead" text="Sezione %n"/>
+<l:template name="chapter" text="Capitolo %n"/>
+<l:template name="equation" text="Equazione %n"/>
+<l:template name="example" text="Esempio %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Parte %n"/>
+<l:template name="procedure" text="Procedura %n"/>
+<l:template name="productionset" text="Produzione %n"/>
+<l:template name="qandadiv" text="Domande e risposte %n"/>
+<l:template name="qandaentry" text="Domanda: %n"/>
+<l:template name="question" text="Domanda: %n"/>
+<l:template name="sect1" text="Sezione %n"/>
+<l:template name="sect2" text="Sezione %n"/>
+<l:template name="sect3" text="Sezione %n"/>
+<l:template name="sect4" text="Sezione %n"/>
+<l:template name="sect5" text="Sezione %n"/>
+<l:template name="section" text="Sezione %n"/>
+<l:template name="table" text="Tabella %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Appendice %n, %t"/>
+<l:template name="bridgehead" text="Sezione %n, «%t»"/>
+<l:template name="chapter" text="Capitolo %n, %t"/>
+<l:template name="equation" text="Equazione %n, «%t»"/>
+<l:template name="example" text="Esempio %n, «%t»"/>
+<l:template name="figure" text="Figura %n, «%t»"/>
+<l:template name="part" text="Parte %n, «%t»"/>
+<l:template name="procedure" text="Procedura %n, «%t»"/>
+<l:template name="productionset" text="Produzione %n, «%t»"/>
+<l:template name="qandadiv" text="Domande e risposte %n, «%t»"/>
+<l:template name="refsect1" text="sezione chiamata «%t»"/>
+<l:template name="refsect2" text="sezione chiamata «%t»"/>
+<l:template name="refsect3" text="sezione chiamata «%t»"/>
+<l:template name="refsection" text="sezione chiamata «%t»"/>
+<l:template name="sect1" text="Sezione %n, «%t»"/>
+<l:template name="sect2" text="Sezione %n, «%t»"/>
+<l:template name="sect3" text="Sezione %n, «%t»"/>
+<l:template name="sect4" text="Sezione %n, «%t»"/>
+<l:template name="sect5" text="Sezione %n, «%t»"/>
+<l:template name="section" text="Sezione %n, «%t»"/>
+<l:template name="simplesect" text="sezione chiamata «%t»"/>
+<l:template name="table" text="Tabella %n, «%t»"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" e "/>
+<l:template name="seplast" text=", e "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vedi %t."/>
+<l:template name="seealso" text="Vedi anche %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Pubblico: "/>
+<l:template name="MsgLevel" text="Livello: "/>
+<l:template name="MsgOrig" text="Origine: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definizione: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="gennaio"/>
+<l:template name="February" text="febbraio"/>
+<l:template name="March" text="marzo"/>
+<l:template name="April" text="aprile"/>
+<l:template name="May" text="maggio"/>
+<l:template name="June" text="giugno"/>
+<l:template name="July" text="luglio"/>
+<l:template name="August" text="agosto"/>
+<l:template name="September" text="settembre"/>
+<l:template name="October" text="ottobre"/>
+<l:template name="November" text="novembre"/>
+<l:template name="December" text="dicembre"/>
+<l:template name="Monday" text="lunedì"/>
+<l:template name="Tuesday" text="martedì"/>
+<l:template name="Wednesday" text="mercoledì"/>
+<l:template name="Thursday" text="giovedì"/>
+<l:template name="Friday" text="venerdì"/>
+<l:template name="Saturday" text="sabato"/>
+<l:template name="Sunday" text="domenica"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="gen"/>
+<l:template name="Feb" text="feb"/>
+<l:template name="Mar" text="mar"/>
+<l:template name="Apr" text="apr"/>
+<l:template name="May" text="mag"/>
+<l:template name="Jun" text="giu"/>
+<l:template name="Jul" text="lug"/>
+<l:template name="Aug" text="ago"/>
+<l:template name="Sep" text="set"/>
+<l:template name="Oct" text="ott"/>
+<l:template name="Nov" text="nov"/>
+<l:template name="Dec" text="dic"/>
+<l:template name="Mon" text="lun"/>
+<l:template name="Tue" text="mar"/>
+<l:template name="Wed" text="mer"/>
+<l:template name="Thu" text="gio"/>
+<l:template name="Fri" text="ven"/>
+<l:template name="Sat" text="sab"/>
+<l:template name="Sun" text="dom"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0410 Italian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cit.: "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Disponibile "/>
+<l:template name="acctoo" text="Disponibile anche "/>
+<l:template name="onwww" text="sul Web"/>
+<l:template name="oninet" text="su Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Simboli</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/ja.xml b/applications/content/template/docbook/common/ja.xml
new file mode 100644
index 0000000..074a660
--- /dev/null
+++ b/applications/content/template/docbook/common/ja.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ja" english-language-name="Japanese">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ja.xml -->
+<!-- * -->
+<!-- * E-mail the edited ja.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="概要"/>
+<l:gentext key="abstract" text="概要"/>
+<l:gentext key="Acknowledgements" text="謝辞"/>
+<l:gentext key="acknowledgements" text="謝辞"/>
+<l:gentext key="Answer" text="答:"/>
+<l:gentext key="answer" text="答:"/>
+<l:gentext key="Appendix" text="付録"/>
+<l:gentext key="appendix" text="付録"/>
+<l:gentext key="Article" text="項目"/>
+<l:gentext key="article" text="項目"/>
+<l:gentext key="Author" text="著者"/>
+<l:gentext key="Bibliography" text="参考文献"/>
+<l:gentext key="bibliography" text="参考文献"/>
+<l:gentext key="Book" text="ブック"/>
+<l:gentext key="book" text="ブック"/>
+<l:gentext key="CAUTION" text="注意"/>
+<l:gentext key="Caution" text="注意"/>
+<l:gentext key="caution" text="注意"/>
+<l:gentext key="Chapter" text="章"/>
+<l:gentext key="chapter" text="章"/>
+<l:gentext key="Colophon" text="奥付"/>
+<l:gentext key="colophon" text="奥付"/>
+<l:gentext key="Copyright" text="製作著作"/>
+<l:gentext key="copyright" text="製作著作"/>
+<l:gentext key="Dedication" text="謝辞"/>
+<l:gentext key="dedication" text="謝辞"/>
+<l:gentext key="Edition" text="エディッション"/>
+<l:gentext key="edition" text="エディッション"/>
+<l:gentext key="Editor" text="編集者"/>
+<l:gentext key="Equation" text="式"/>
+<l:gentext key="equation" text="式"/>
+<l:gentext key="Example" text="例"/>
+<l:gentext key="example" text="例"/>
+<l:gentext key="Figure" text="図"/>
+<l:gentext key="figure" text="図"/>
+<l:gentext key="Glossary" text="用語集"/>
+<l:gentext key="glossary" text="用語集"/>
+<l:gentext key="GlossSee" text="参照"/>
+<l:gentext key="glosssee" text="参照"/>
+<l:gentext key="GlossSeeAlso" text="参照"/>
+<l:gentext key="glossseealso" text="参照"/>
+<l:gentext key="IMPORTANT" text="重要"/>
+<l:gentext key="important" text="重要"/>
+<l:gentext key="Important" text="重要"/>
+<l:gentext key="Index" text="索引"/>
+<l:gentext key="index" text="索引"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="法律上の通知"/>
+<l:gentext key="legalnotice" text="法律上の通知"/>
+<l:gentext key="MsgAud" text="対象者"/>
+<l:gentext key="msgaud" text="対象者"/>
+<l:gentext key="MsgLevel" text="レベル"/>
+<l:gentext key="msglevel" text="レベル"/>
+<l:gentext key="MsgOrig" text="出所"/>
+<l:gentext key="msgorig" text="出所"/>
+<l:gentext key="NOTE" text="注記"/>
+<l:gentext key="Note" text="注記"/>
+<l:gentext key="note" text="注記"/>
+<l:gentext key="Part" text="パート"/>
+<l:gentext key="part" text="パート"/>
+<l:gentext key="Preface" text="前書き"/>
+<l:gentext key="preface" text="前書き"/>
+<l:gentext key="Procedure" text="手順"/>
+<l:gentext key="procedure" text="手順"/>
+<l:gentext key="ProductionSet" text="プロダクション"/>
+<l:gentext key="PubDate" text="発行日"/>
+<l:gentext key="pubdate" text="発行日"/>
+<l:gentext key="Published" text="発行"/>
+<l:gentext key="published" text="発行"/>
+<l:gentext key="Publisher" text="発行元"/>
+<l:gentext key="Qandadiv" text="質問と答え"/>
+<l:gentext key="qandadiv" text="質問と答え"/>
+<l:gentext key="QandASet" text="よくある質問"/>
+<l:gentext key="Question" text="問:"/>
+<l:gentext key="question" text="問:"/>
+<l:gentext key="RefEntry" text="ページ"/>
+<l:gentext key="refentry" text="ページ"/>
+<l:gentext key="Reference" text="参照"/>
+<l:gentext key="reference" text="参照"/>
+<l:gentext key="References" text="参照"/>
+<l:gentext key="RefName" text="名前"/>
+<l:gentext key="refname" text="名前"/>
+<l:gentext key="RefSection" text="項"/>
+<l:gentext key="refsection" text="項"/>
+<l:gentext key="RefSynopsisDiv" text="概要"/>
+<l:gentext key="refsynopsisdiv" text="概要"/>
+<l:gentext key="RevHistory" text="改訂履歴"/>
+<l:gentext key="revhistory" text="改訂履歴"/>
+<l:gentext key="revision" text="改訂"/>
+<l:gentext key="Revision" text="改訂"/>
+<l:gentext key="sect1" text="項"/>
+<l:gentext key="sect2" text="項"/>
+<l:gentext key="sect3" text="項"/>
+<l:gentext key="sect4" text="項"/>
+<l:gentext key="sect5" text="項"/>
+<l:gentext key="section" text="項"/>
+<l:gentext key="Section" text="項"/>
+<l:gentext key="see" text="参照"/>
+<l:gentext key="See" text="参照"/>
+<l:gentext key="seealso" text="参照"/>
+<l:gentext key="Seealso" text="参照"/>
+<l:gentext key="SeeAlso" text="参照"/>
+<l:gentext key="set" text="セット"/>
+<l:gentext key="Set" text="セット"/>
+<l:gentext key="setindex" text="セット目次"/>
+<l:gentext key="SetIndex" text="セット目次"/>
+<l:gentext key="Sidebar" text="サイドバー"/>
+<l:gentext key="sidebar" text="サイドバー"/>
+<l:gentext key="step" text="ステップ"/>
+<l:gentext key="Step" text="ステップ"/>
+<l:gentext key="table" text="表"/>
+<l:gentext key="Table" text="表"/>
+<l:gentext key="task" text="タスク"/>
+<l:gentext key="Task" text="タスク"/>
+<l:gentext key="tip" text="ヒント"/>
+<l:gentext key="TIP" text="ヒント"/>
+<l:gentext key="Tip" text="ヒント"/>
+<l:gentext key="Warning" text="警告"/>
+<l:gentext key="warning" text="警告"/>
+<l:gentext key="WARNING" text="警告"/>
+<l:gentext key="and" text="、"/>
+<l:gentext key="or" text="や"/>
+<l:gentext key="by" text=":"/>
+<l:gentext key="Edited" text="編集者"/>
+<l:gentext key="edited" text="編集者"/>
+<l:gentext key="Editedby" text="編集者"/>
+<l:gentext key="editedby" text="編集者"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="注記"/>
+<l:gentext key="Notes" text="注記"/>
+<l:gentext key="Pgs" text="ページ"/>
+<l:gentext key="pgs" text="ページ"/>
+<l:gentext key="Revisedby" text="校正者:"/>
+<l:gentext key="revisedby" text="校正者: "/>
+<l:gentext key="TableNotes" text="注意"/>
+<l:gentext key="tablenotes" text="注意"/>
+<l:gentext key="TableofContents" text="目次"/>
+<l:gentext key="tableofcontents" text="目次"/>
+<l:gentext key="unexpectedelementname" text="予期しない要素名です"/>
+<l:gentext key="unsupported" text="サポートされません"/>
+<l:gentext key="xrefto" text="xref "/>
+<l:gentext key="Authors" text="著者"/>
+<l:gentext key="copyeditor" text="コピーエディター"/>
+<l:gentext key="graphicdesigner" text="グラフィックデザイナー"/>
+<l:gentext key="productioneditor" text="プロダクションエディター"/>
+<l:gentext key="technicaleditor" text="テクニカルエディター"/>
+<l:gentext key="translator" text="翻訳者"/>
+<l:gentext key="listofequations" text="式の一覧"/>
+<l:gentext key="ListofEquations" text="式の一覧"/>
+<l:gentext key="ListofExamples" text="例の一覧"/>
+<l:gentext key="listofexamples" text="例の一覧"/>
+<l:gentext key="ListofFigures" text="図の一覧"/>
+<l:gentext key="listoffigures" text="図の一覧"/>
+<l:gentext key="ListofProcedures" text="手順の一覧"/>
+<l:gentext key="listofprocedures" text="手順の一覧"/>
+<l:gentext key="listoftables" text="表の一覧"/>
+<l:gentext key="ListofTables" text="表の一覧"/>
+<l:gentext key="ListofUnknown" text="不明の一覧"/>
+<l:gentext key="listofunknown" text="不明の一覧"/>
+<l:gentext key="nav-home" text="ホーム"/>
+<l:gentext key="nav-next" text="次へ"/>
+<l:gentext key="nav-next-sibling" text="早送り"/>
+<l:gentext key="nav-prev" text="戻る"/>
+<l:gentext key="nav-prev-sibling" text="巻戻し"/>
+<l:gentext key="nav-up" text="上に戻る"/>
+<l:gentext key="nav-toc" text="目次"/>
+<l:gentext key="Draft" text="ドラフト"/>
+<l:gentext key="above" text="上"/>
+<l:gentext key="below" text="下"/>
+<l:gentext key="sectioncalled" text="セクション名"/>
+<l:gentext key="index symbols" text="シンボル"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz" lang="en"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" lang="en"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="「"/>
+<l:dingbat key="endquote" text="」"/>
+<l:dingbat key="nestedstartquote" text="『"/>
+<l:dingbat key="nestedendquote" text="』"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="●"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="検索"/>
+<l:template name="Enter_a_term_and_click" text="用語をクリックして入力してください。"/>
+<l:template name="Go" text="移動"/>
+<l:template name="to_perform_a_search" text=" to perform a search."/>
+<l:template name="txt_filesfound" text="検索結果"/>
+<l:template name="txt_enter_at_least_1_char" text="あなたは、少なくとも1つの文字を入力する必要があります。"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site."/>
+<l:template name="txt_please_wait" text="しばらくお待ちください。検索が進行中です..."/>
+<l:template name="txt_results_for" text="次の検索語の結果: "/>
+<l:template name="TableofContents" text="Contents"/>
+<l:template name="HighlightButton" text="強調表示の切り替えの検索結果"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results."/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="family-given"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="付録%n %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="第%n章%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="式%n %t"/>
+<l:template name="example" text="例%n %t"/>
+<l:template name="figure" text="図%n %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="パート%n %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="手順%n %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="プロダクション %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="表%n %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="付録%n %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n %t"/>
+<l:template name="chapter" text="第%n章 %t"/>
+<l:template name="part" text="パート %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="問: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="問: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="「%t」"/>
+<l:template name="refsection" text="「%t」"/>
+<l:template name="refsect1" text="「%t」"/>
+<l:template name="refsect2" text="「%t」t"/>
+<l:template name="refsect3" text="「%t」"/>
+<l:template name="sect1" text="「%t」"/>
+<l:template name="sect2" text="「%t」"/>
+<l:template name="sect3" text="「%t」"/>
+<l:template name="sect4" text="「%t」"/>
+<l:template name="sect5" text="「%t」"/>
+<l:template name="section" text="「%t」"/>
+<l:template name="simplesect" text="「%t」"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="付録%n"/>
+<l:template name="bridgehead" text="項 %n"/>
+<l:template name="chapter" text="第%n章"/>
+<l:template name="equation" text="式 %n"/>
+<l:template name="example" text="例 %n"/>
+<l:template name="figure" text="図 %n"/>
+<l:template name="part" text="パート %n"/>
+<l:template name="procedure" text="手順 %n"/>
+<l:template name="productionset" text="プロダクション %n"/>
+<l:template name="qandadiv" text="質問と答え %n"/>
+<l:template name="qandaentry" text="問: %n"/>
+<l:template name="question" text="問: %n"/>
+<l:template name="sect1" text="%n"/>
+<l:template name="sect2" text="%n"/>
+<l:template name="sect3" text="%n"/>
+<l:template name="sect4" text="%n"/>
+<l:template name="sect5" text="%n"/>
+<l:template name="section" text="%n"/>
+<l:template name="table" text="表 %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="付録%n %t"/>
+<l:template name="bridgehead" text="%n項「%t」"/>
+<l:template name="chapter" text="%n章%t"/>
+<l:template name="equation" text="式%n「%t」"/>
+<l:template name="example" text="例%n「%t」"/>
+<l:template name="figure" text="図%n「%t」"/>
+<l:template name="part" text="パート%n「%t」"/>
+<l:template name="procedure" text="手順%n「%t」"/>
+<l:template name="productionset" text="プロダクション%n「%t」"/>
+<l:template name="qandadiv" text="質問と答え%n「%t」"/>
+<l:template name="refsect1" text="「%t」"/>
+<l:template name="refsect2" text="「%t」"/>
+<l:template name="refsect3" text="「%t」"/>
+<l:template name="refsection" text="「%t」"/>
+<l:template name="sect1" text="「%t」"/>
+<l:template name="sect2" text="「%t」"/>
+<l:template name="sect3" text="「%t」"/>
+<l:template name="sect4" text="「%t」"/>
+<l:template name="sect5" text="「%t」"/>
+<l:template name="section" text="「%t」"/>
+<l:template name="simplesect" text="「%t」"/>
+<l:template name="table" text="表%n「%t」"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" 、 "/>
+<l:template name="seplast" text=", 、 "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="%t参照"/>
+<l:template name="seealso" text="%t参照"/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="対象者: "/>
+<l:template name="MsgLevel" text="レベル: "/>
+<l:template name="MsgOrig" text="出所: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[定義: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="1 月"/>
+<l:template name="February" text="2 月"/>
+<l:template name="March" text="3 月"/>
+<l:template name="April" text="4 月"/>
+<l:template name="May" text="5 月"/>
+<l:template name="June" text="6 月"/>
+<l:template name="July" text="7 月"/>
+<l:template name="August" text="8 月"/>
+<l:template name="September" text="9 月"/>
+<l:template name="October" text="10 月"/>
+<l:template name="November" text="11 月"/>
+<l:template name="December" text="12 月"/>
+<l:template name="Monday" text="月曜日"/>
+<l:template name="Tuesday" text="火曜日"/>
+<l:template name="Wednesday" text="水曜日"/>
+<l:template name="Thursday" text="木曜日"/>
+<l:template name="Friday" text="金曜日"/>
+<l:template name="Saturday" text="土曜日"/>
+<l:template name="Sunday" text="日曜日"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="1 月"/>
+<l:template name="Feb" text="2 月"/>
+<l:template name="Mar" text="3 月"/>
+<l:template name="Apr" text="4 月"/>
+<l:template name="May" text="5 月"/>
+<l:template name="Jun" text="6 月"/>
+<l:template name="Jul" text="7 月"/>
+<l:template name="Aug" text="8 月"/>
+<l:template name="Sep" text="9 月"/>
+<l:template name="Oct" text="10 月"/>
+<l:template name="Nov" text="11 月"/>
+<l:template name="Dec" text="12 月"/>
+<l:template name="Mon" text="月"/>
+<l:template name="Tue" text="火"/>
+<l:template name="Wed" text="水"/>
+<l:template name="Thu" text="木"/>
+<l:template name="Fri" text="金"/>
+<l:template name="Sat" text="土"/>
+<l:template name="Sun" text="日"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0411 Japanese"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">シンボル</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/ka.xml b/applications/content/template/docbook/common/ka.xml
new file mode 100644
index 0000000..7785019
--- /dev/null
+++ b/applications/content/template/docbook/common/ka.xml
@@ -0,0 +1,718 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ka" english-language-name="Georgian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ka.xml -->
+<!-- * -->
+<!-- * E-mail the edited ka.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="ანოტაცია"/>
+<l:gentext key="abstract" text="ანოტაცია"/>
+<l:gentext key="Acknowledgements" text="აღიარება"/>
+<l:gentext key="acknowledgements" text="აღიარება"/>
+<l:gentext key="Answer" text="პ:"/>
+<l:gentext key="answer" text="პ:"/>
+<l:gentext key="Appendix" text="დანართი"/>
+<l:gentext key="appendix" text="დანართი"/>
+<l:gentext key="Article" text="სტატია"/>
+<l:gentext key="article" text="სტატია"/>
+<l:gentext key="Author" text="ავტორი"/>
+<l:gentext key="Bibliography" text="ბიბლიოგრაფია"/>
+<l:gentext key="bibliography" text="ბიბლიოგრაფია"/>
+<l:gentext key="Book" text="წიგნი"/>
+<l:gentext key="book" text="წიგნი"/>
+<l:gentext key="CAUTION" text="გაფრთხილება"/>
+<l:gentext key="Caution" text="გაფრთხილება"/>
+<l:gentext key="caution" text="გაფრთხილება"/>
+<l:gentext key="Chapter" text="თავი"/>
+<l:gentext key="chapter" text="თავი"/>
+<l:gentext key="Colophon" text="კოლოფონი"/>
+<l:gentext key="colophon" text="კოლოფონი"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="მიძღვნა"/>
+<l:gentext key="dedication" text="მიძღვნა"/>
+<l:gentext key="Edition" text="გამოცემა"/>
+<l:gentext key="edition" text="გამოცემა"/>
+<l:gentext key="Editor" text="რედაქტორი"/>
+<l:gentext key="Equation" text="განტოლება"/>
+<l:gentext key="equation" text="განტოლება"/>
+<l:gentext key="Example" text="მაგალითი"/>
+<l:gentext key="example" text="მაგალითი"/>
+<l:gentext key="Figure" text="სურათი"/>
+<l:gentext key="figure" text="სურათი"/>
+<l:gentext key="Glossary" text="ტერმინოლოგია"/>
+<l:gentext key="glossary" text="ტერმინოლოგია"/>
+<l:gentext key="GlossSee" text="იხ."/>
+<l:gentext key="glosssee" text="იხ."/>
+<l:gentext key="GlossSeeAlso" text="იხ. ასევე"/>
+<l:gentext key="glossseealso" text="იხ. ასევე"/>
+<l:gentext key="IMPORTANT" text="მნიშვნელოვანია"/>
+<l:gentext key="important" text="მნიშვნელოვანია"/>
+<l:gentext key="Important" text="მნიშვნელოვანია"/>
+<l:gentext key="Index" text="ანბანური საძიებელი"/>
+<l:gentext key="index" text="ანბანური საძიებელი"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="საავტორო უფლება"/>
+<l:gentext key="legalnotice" text="საავტორო უფლება"/>
+<l:gentext key="MsgAud" text="აუდიტორია"/>
+<l:gentext key="msgaud" text="აუდიტორია"/>
+<l:gentext key="MsgLevel" text="დონე"/>
+<l:gentext key="msglevel" text="დონე"/>
+<l:gentext key="MsgOrig" text="წყარო"/>
+<l:gentext key="msgorig" text="წყარო"/>
+<l:gentext key="NOTE" text="შენიშვნა"/>
+<l:gentext key="Note" text="შენიშვნა"/>
+<l:gentext key="note" text="შენიშვნა"/>
+<l:gentext key="Part" text="ნაწილი"/>
+<l:gentext key="part" text="ნაწილი"/>
+<l:gentext key="Preface" text="წინასიტყვაობა"/>
+<l:gentext key="preface" text="წინასიტყვაობა"/>
+<l:gentext key="Procedure" text="პროცედურა"/>
+<l:gentext key="procedure" text="პროცედურა"/>
+<l:gentext key="ProductionSet" text="გამოშვება"/>
+<l:gentext key="PubDate" text="გამოცემის თარიღი"/>
+<l:gentext key="pubdate" text="გამოცემის თარიღი"/>
+<l:gentext key="Published" text="გამოცემულია"/>
+<l:gentext key="published" text="გამოცემულია"/>
+<l:gentext key="Publisher" text="გამომცემელი"/>
+<l:gentext key="Qandadiv" text="კითხვა და პასუხი"/>
+<l:gentext key="qandadiv" text="კითხვა და პასუხი"/>
+<l:gentext key="QandASet" text="ხშირად დასმული შეკითხვები"/>
+<l:gentext key="Question" text="კ:"/>
+<l:gentext key="question" text="კ:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="მითითება"/>
+<l:gentext key="reference" text="მითითება"/>
+<l:gentext key="References" text="მითითებები"/>
+<l:gentext key="RefName" text="დასახელება"/>
+<l:gentext key="refname" text="დასახელება"/>
+<l:gentext key="RefSection" text="ნაწილი"/>
+<l:gentext key="refsection" text="ნაწილი"/>
+<l:gentext key="RefSynopsisDiv" text="სინოპსისი"/>
+<l:gentext key="refsynopsisdiv" text="სინოპსისი"/>
+<l:gentext key="RevHistory" text="რევიზიების ისტორია"/>
+<l:gentext key="revhistory" text="რევიზიების ისტორია"/>
+<l:gentext key="revision" text="რევიზია"/>
+<l:gentext key="Revision" text="რევიზია"/>
+<l:gentext key="sect1" text="ნაწილი"/>
+<l:gentext key="sect2" text="ნაწილი"/>
+<l:gentext key="sect3" text="ნაწილი"/>
+<l:gentext key="sect4" text="ნაწილი"/>
+<l:gentext key="sect5" text="ნაწილი"/>
+<l:gentext key="section" text="ნაწილი"/>
+<l:gentext key="Section" text="ნაწილი"/>
+<l:gentext key="see" text="იხ."/>
+<l:gentext key="See" text="იხ."/>
+<l:gentext key="seealso" text="იხ. ასევე"/>
+<l:gentext key="Seealso" text="იხ. ასევე"/>
+<l:gentext key="SeeAlso" text="იხ. ასევე"/>
+<l:gentext key="set" text="ნაკრები"/>
+<l:gentext key="Set" text="ნაკრები"/>
+<l:gentext key="setindex" text="ნაკრების ინდექსი"/>
+<l:gentext key="SetIndex" text="ნაკრების ინდექსი"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text=""/>
+<l:gentext key="step" text="ბიჯი"/>
+<l:gentext key="Step" text="ბიჯი"/>
+<l:gentext key="table" text="ცხრილი"/>
+<l:gentext key="Table" text="ცხრილი"/>
+<l:gentext key="task" text="ამოცანა"/>
+<l:gentext key="Task" text="ამოცანა"/>
+<l:gentext key="tip" text="მითითება"/>
+<l:gentext key="TIP" text="მითითება"/>
+<l:gentext key="Tip" text="მითითება"/>
+<l:gentext key="Warning" text="გაფრთხილება"/>
+<l:gentext key="warning" text="გაფრთხილება"/>
+<l:gentext key="WARNING" text="გაფრთხილება"/>
+<l:gentext key="and" text="და"/>
+<l:gentext key="or" text="ან"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="გამართულია"/>
+<l:gentext key="edited" text="გამართულია"/>
+<l:gentext key="Editedby" text="გამართა:"/>
+<l:gentext key="editedby" text="გამართა:"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="შენიშვნები"/>
+<l:gentext key="Notes" text="შენიშვნები"/>
+<l:gentext key="Pgs" text="გვ. გვ."/>
+<l:gentext key="pgs" text="გვ. გვ."/>
+<l:gentext key="Revisedby" text="გადაამოწმა: "/>
+<l:gentext key="revisedby" text="გადაამოწმა: "/>
+<l:gentext key="TableNotes" text="შენიშვნები"/>
+<l:gentext key="tablenotes" text="შენიშვნები"/>
+<l:gentext key="TableofContents" text="სარჩევი"/>
+<l:gentext key="tableofcontents" text="სარჩევი"/>
+<l:gentext key="unexpectedelementname" text="მოულოდნელი ელემენტის სახელი"/>
+<l:gentext key="unsupported" text="მხარდაჭერა არ არის"/>
+<l:gentext key="xrefto" text="მითითება"/>
+<l:gentext key="Authors" text="ავტორები"/>
+<l:gentext key="copyeditor" text="რედაქტორი"/>
+<l:gentext key="graphicdesigner" text="დიზაინერი"/>
+<l:gentext key="productioneditor" text="მთავარი რედაქტორი"/>
+<l:gentext key="technicaleditor" text="ტექნიკური რედაქტორი"/>
+<l:gentext key="translator" text="მთარგმნელი"/>
+<l:gentext key="listofequations" text="განტოლებების სია"/>
+<l:gentext key="ListofEquations" text="განტოლებების სია"/>
+<l:gentext key="ListofExamples" text="მაგალითების სია"/>
+<l:gentext key="listofexamples" text="მაგალითების სია"/>
+<l:gentext key="ListofFigures" text="სურათების სია"/>
+<l:gentext key="listoffigures" text="სურათების სია"/>
+<l:gentext key="ListofProcedures" text="პროცედურების სია"/>
+<l:gentext key="listofprocedures" text="პროცედურების სია"/>
+<l:gentext key="listoftables" text="ცხრილების სია"/>
+<l:gentext key="ListofTables" text="ცხრილების სია"/>
+<l:gentext key="ListofUnknown" text="უცნობი ელემენტების სია"/>
+<l:gentext key="listofunknown" text="უცნობი ელემენტების სია"/>
+<l:gentext key="nav-home" text="დასაწყისში"/>
+<l:gentext key="nav-next" text="წინ"/>
+<l:gentext key="nav-next-sibling" text="წინ სწრაფად"/>
+<l:gentext key="nav-prev" text="უკან"/>
+<l:gentext key="nav-prev-sibling" text="სწრაფად უკან"/>
+<l:gentext key="nav-up" text="ზემოთ"/>
+<l:gentext key="nav-toc" text="სარჩევი"/>
+<l:gentext key="Draft" text="მონახაზი"/>
+<l:gentext key="above" text="ზემოთ"/>
+<l:gentext key="below" text="ქვემოთ"/>
+<l:gentext key="sectioncalled" text="ნაწილი"/>
+<l:gentext key="index symbols" text="სიმბოლოები"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzაბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵჶჷ"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZაბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵჶჷ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕაბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵჶჷ"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZაბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵჶჷ"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="დანართი %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="თავი %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="განტოლება %n. %t"/>
+<l:template name="example" text="მაგალითი %n. %t"/>
+<l:template name="figure" text="სურათი %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ნაწილი %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="პროცედურა %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="გამოშვება %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="ცხრილი %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="დანართი %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="თავი %n. %t"/>
+<l:template name="part" text="ნაწილი %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="პ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="კ: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="კ: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="ნაწილი “%t”"/>
+<l:template name="refsection" text="ნაწილი “%t”"/>
+<l:template name="refsect1" text="ნაწილი “%t”"/>
+<l:template name="refsect2" text="ნაწილი “%t”"/>
+<l:template name="refsect3" text="ნაწილი “%t”"/>
+<l:template name="sect1" text="ნაწილი “%t”"/>
+<l:template name="sect2" text="ნაწილი “%t”"/>
+<l:template name="sect3" text="ნაწილი “%t”"/>
+<l:template name="sect4" text="ნაწილი “%t”"/>
+<l:template name="sect5" text="ნაწილი “%t”"/>
+<l:template name="section" text="ნაწილი “%t”"/>
+<l:template name="simplesect" text="ნაწილი “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="პ: %n"/>
+<l:template name="appendix" text="დანართი %n"/>
+<l:template name="bridgehead" text="ნაწილი %n"/>
+<l:template name="chapter" text="თავი %n"/>
+<l:template name="equation" text="განტოლება %n"/>
+<l:template name="example" text="მაგალითი %n"/>
+<l:template name="figure" text="სურათი %n"/>
+<l:template name="part" text="ნაწილი %n"/>
+<l:template name="procedure" text="პროცედურა %n"/>
+<l:template name="productionset" text="გამოშვება %n"/>
+<l:template name="qandadiv" text="კითხვა და პასუხი %n"/>
+<l:template name="qandaentry" text="კ: %n"/>
+<l:template name="question" text="კ: %n"/>
+<l:template name="sect1" text="ნაწილი %n"/>
+<l:template name="sect2" text="ნაწილი %n"/>
+<l:template name="sect3" text="ნაწილი %n"/>
+<l:template name="sect4" text="ნაწილი %n"/>
+<l:template name="sect5" text="ნაწილი %n"/>
+<l:template name="section" text="ნაწილი %n"/>
+<l:template name="table" text="ცხრილი %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="დანართი %n, %t"/>
+<l:template name="bridgehead" text="ნაწილი %n, “%t”"/>
+<l:template name="chapter" text="თავი %n, %t"/>
+<l:template name="equation" text="განტოლება %n, “%t”"/>
+<l:template name="example" text="მაგალითი %n, “%t”"/>
+<l:template name="figure" text="სურათი %n, “%t”"/>
+<l:template name="part" text="ნაწილი %n, “%t”"/>
+<l:template name="procedure" text="პროცედურა %n, “%t”"/>
+<l:template name="productionset" text="გამოშვება %n, “%t”"/>
+<l:template name="qandadiv" text="კითხვა და პასუხი %n, “%t”"/>
+<l:template name="refsect1" text="ნაწილი “%t”"/>
+<l:template name="refsect2" text="ნაწილი “%t”"/>
+<l:template name="refsect3" text="ნაწილი “%t”"/>
+<l:template name="refsection" text="ნაწილი “%t”"/>
+<l:template name="sect1" text="ნაწილი %n, “%t”"/>
+<l:template name="sect2" text="ნაწილი %n, “%t”"/>
+<l:template name="sect3" text="ნაწილი %n, “%t”"/>
+<l:template name="sect4" text="ნაწილი %n, “%t”"/>
+<l:template name="sect5" text="ნაწილი %n, “%t”"/>
+<l:template name="section" text="ნაწილი %n, “%t”"/>
+<l:template name="simplesect" text="ნაწილი “%t”"/>
+<l:template name="table" text="ცხრილი %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" და "/>
+<l:template name="seplast" text=", და "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="იხ. %t."/>
+<l:template name="seealso" text="იხ. ასევე %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="აუდიტორია: "/>
+<l:template name="MsgLevel" text="დონე: "/>
+<l:template name="MsgOrig" text="წყარო: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d.m.Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[განსაზღვრება: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="იანვარ"/>
+<l:template name="February" text="თებერვალი"/>
+<l:template name="March" text="მარტი"/>
+<l:template name="April" text="აპრილი"/>
+<l:template name="May" text="მაისი"/>
+<l:template name="June" text="ივნისი"/>
+<l:template name="July" text="ივლისი"/>
+<l:template name="August" text="აგვისტო"/>
+<l:template name="September" text="სექტემბერი"/>
+<l:template name="October" text="ოქტომბერი"/>
+<l:template name="November" text="ნოემბერი"/>
+<l:template name="December" text="დეკემბერი"/>
+<l:template name="Monday" text="ორშაბათი"/>
+<l:template name="Tuesday" text="სამშაბათი"/>
+<l:template name="Wednesday" text="ოთხშაბათი"/>
+<l:template name="Thursday" text="ხუთშაბათი"/>
+<l:template name="Friday" text="პარასკევი"/>
+<l:template name="Saturday" text="შაბათი"/>
+<l:template name="Sunday" text="კვირა"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="იან"/>
+<l:template name="Feb" text="თებ"/>
+<l:template name="Mar" text="მარ"/>
+<l:template name="Apr" text="აპრ"/>
+<l:template name="May" text="მაი"/>
+<l:template name="Jun" text="ივნ"/>
+<l:template name="Jul" text="ივლ"/>
+<l:template name="Aug" text="აგვ"/>
+<l:template name="Sep" text="სექ"/>
+<l:template name="Oct" text="ოქტ"/>
+<l:template name="Nov" text="ნოე"/>
+<l:template name="Dec" text="დეკ"/>
+<l:template name="Mon" text="ორშ"/>
+<l:template name="Tue" text="სამ"/>
+<l:template name="Wed" text="ოთხ"/>
+<l:template name="Thu" text="ხუთ"/>
+<l:template name="Fri" text="პარ"/>
+<l:template name="Sat" text="შაბ"/>
+<l:template name="Sun" text="კვი"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 English (UNITED STATES)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" და "/>
+<l:template name="alt.person.last.sep" text=" და "/>
+<l:template name="alt.person.more.sep" text="; "/>
+<l:template name="primary.editor" text=" (რედ.)"/>
+<l:template name="primary.many" text=" და სხვ."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [ციტატა "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="მისაწვდომია "/>
+<l:template name="acctoo" text="მისაწვდომია ასევე "/>
+<l:template name="onwww" text="გლობალურ ქსელში"/>
+<l:template name="oninet" text="ინტერნეტში"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">სიმბოლოები</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="270">ა</l:l>
+<l:l i="280">ბ</l:l>
+<l:l i="290">გ</l:l>
+<l:l i="300">დ</l:l>
+<l:l i="310">ე</l:l>
+<l:l i="320">ვ</l:l>
+<l:l i="330">ზ</l:l>
+<l:l i="340">ჱ</l:l>
+<l:l i="350">თ</l:l>
+<l:l i="360">ი</l:l>
+<l:l i="370">კ</l:l>
+<l:l i="380">ლ</l:l>
+<l:l i="390">მ</l:l>
+<l:l i="400">ნ</l:l>
+<l:l i="410">ჲ</l:l>
+<l:l i="420">ო</l:l>
+<l:l i="430">პ</l:l>
+<l:l i="440">ჟ</l:l>
+<l:l i="450">რ</l:l>
+<l:l i="460">ს</l:l>
+<l:l i="470">ტ</l:l>
+<l:l i="480">ჳ</l:l>
+<l:l i="490">უ</l:l>
+<l:l i="500">ფ</l:l>
+<l:l i="510">ქ</l:l>
+<l:l i="520">ღ</l:l>
+<l:l i="530">ყ</l:l>
+<l:l i="540">შ</l:l>
+<l:l i="550">ჩ</l:l>
+<l:l i="560">ც</l:l>
+<l:l i="570">ძ</l:l>
+<l:l i="580">წ</l:l>
+<l:l i="590">ჭ</l:l>
+<l:l i="600">ხ</l:l>
+<l:l i="610">ჴ</l:l>
+<l:l i="620">ჯ</l:l>
+<l:l i="630">ჰ</l:l>
+<l:l i="640">ჵ</l:l>
+<l:l i="650">ჶ</l:l>
+<l:l i="660">ჷ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/kn.xml b/applications/content/template/docbook/common/kn.xml
new file mode 100644
index 0000000..c20c3ca
--- /dev/null
+++ b/applications/content/template/docbook/common/kn.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="kn" english-language-name="Kannada">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/kn.xml -->
+<!-- * -->
+<!-- * E-mail the edited kn.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="ಸಾರಾಂಶ"/>
+<l:gentext key="abstract" text="ಸಾರಾಂಶ"/>
+<l:gentext key="Acknowledgements" text="ಇವರಿಗೆ ಧನ್ಯವಾದಗಳು"/>
+<l:gentext key="acknowledgements" text="ಇವರಿಗೆ ಧನ್ಯವಾದಗಳು"/>
+<l:gentext key="Answer" text="ಉ:"/>
+<l:gentext key="answer" text="ಉ:"/>
+<l:gentext key="Appendix" text="ಅನುಬಂಧ"/>
+<l:gentext key="appendix" text="ಅನುಬಂಧ"/>
+<l:gentext key="Article" text="ಲೇಖನ"/>
+<l:gentext key="article" text="ಲೇಖನ"/>
+<l:gentext key="Author" text="ಲೇಖಕ"/>
+<l:gentext key="Bibliography" text="ಗ್ರಂಥಸೂಚಿ"/>
+<l:gentext key="bibliography" text="ಗ್ರಂಥಸೂಚಿ"/>
+<l:gentext key="Book" text="ಪುಸ್ತಕ"/>
+<l:gentext key="book" text="ಪುಸ್ತಕ"/>
+<l:gentext key="CAUTION" text="ಎಚ್ಚರಿಕೆ"/>
+<l:gentext key="Caution" text="ಎಚ್ಚರಿಕೆ"/>
+<l:gentext key="caution" text="ಎಚ್ಚರಿಕೆ"/>
+<l:gentext key="Chapter" text="ಅಧ್ಯಾಯ"/>
+<l:gentext key="chapter" text="ಅಧ್ಯಾಯ"/>
+<l:gentext key="Colophon" text="ಮುದ್ರಣ ಸಂಕೇತ"/>
+<l:gentext key="colophon" text="ಮುದ್ರಣ ಸಂಕೇತ"/>
+<l:gentext key="Copyright" text="ಕೃತಿಸ್ವಾಮ್ಯ"/>
+<l:gentext key="copyright" text="ಕೃತಿಸ್ವಾಮ್ಯ"/>
+<l:gentext key="Dedication" text="ಸಮರ್ಪಣೆ"/>
+<l:gentext key="dedication" text="ಸಮರ್ಪಣೆ"/>
+<l:gentext key="Edition" text="ಆವೃತ್ತಿ"/>
+<l:gentext key="edition" text="ಆವೃತ್ತಿ"/>
+<l:gentext key="Editor" text="ಸಂಪಾದಕ"/>
+<l:gentext key="Equation" text="ಸಮೀಕರಣ"/>
+<l:gentext key="equation" text="ಸಮೀಕರಣ"/>
+<l:gentext key="Example" text="ಉದಾಹರಣೆ"/>
+<l:gentext key="example" text="ಉದಾಹರಣೆ"/>
+<l:gentext key="Figure" text="ಚಿತ್ರ"/>
+<l:gentext key="figure" text="ಚಿತ್ರ"/>
+<l:gentext key="Glossary" text="ಪಾರಿಭಾಷಿಕಕೋಶ"/>
+<l:gentext key="glossary" text="ಪಾರಿಭಾಷಿಕಕೋಶ"/>
+<l:gentext key="GlossSee" text="ಇದನ್ನು ನೋಡಿ"/>
+<l:gentext key="glosssee" text="ಇದನ್ನು ನೋಡಿ"/>
+<l:gentext key="GlossSeeAlso" text="ಇದನ್ನೂ ಸಹ ನೋಡಿ"/>
+<l:gentext key="glossseealso" text="ಇದನ್ನೂ ಸಹ ನೋಡಿ"/>
+<l:gentext key="IMPORTANT" text="ಮಹತ್ವ"/>
+<l:gentext key="important" text="ಮಹತ್ವ"/>
+<l:gentext key="Important" text="ಮಹತ್ವ"/>
+<l:gentext key="Index" text="ಅನುಕ್ರಮಣಿಕೆ"/>
+<l:gentext key="index" text="ಅನುಕ್ರಮಣಿಕೆ"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="ಲೀಗಲ್ ನೋಟೀಸ್"/>
+<l:gentext key="legalnotice" text="ಲೀಗಲ್ ನೋಟೀಸ್"/>
+<l:gentext key="MsgAud" text="ಶ್ರೋತೃಗಳು"/>
+<l:gentext key="msgaud" text="ಶ್ರೋತೃಗಳು"/>
+<l:gentext key="MsgLevel" text="ಸ್ತರ"/>
+<l:gentext key="msglevel" text="ಸ್ತರ"/>
+<l:gentext key="MsgOrig" text="ಮೂಲ"/>
+<l:gentext key="msgorig" text="ಮೂಲ"/>
+<l:gentext key="NOTE" text="ಸೂಚನೆ"/>
+<l:gentext key="Note" text="ಸೂಚನೆ"/>
+<l:gentext key="note" text="ಸೂಚನೆ"/>
+<l:gentext key="Part" text="ಭಾಗ"/>
+<l:gentext key="part" text="ಭಾಗ"/>
+<l:gentext key="Preface" text="ಪೀಠಿಕೆ"/>
+<l:gentext key="preface" text="ಪೀಠಿಕೆ"/>
+<l:gentext key="Procedure" text="ಕಾರ್ಯವಿಧಾನ"/>
+<l:gentext key="procedure" text="ಕಾರ್ಯವಿಧಾನ"/>
+<l:gentext key="ProductionSet" text="ನಿರ್ಮಾಣ"/>
+<l:gentext key="PubDate" text="ಪ್ರಕಟನೆ ದಿನಾಂಕ"/>
+<l:gentext key="pubdate" text="ಪ್ರಕಟನೆ ದಿನಾಂಕ"/>
+<l:gentext key="Published" text="ಪ್ರಕಾಶಪಡಿಸಿದ"/>
+<l:gentext key="published" text="ಪ್ರಕಾಶಪಡಿಸಿದ"/>
+<l:gentext key="Publisher" text="ಪ್ರಕಾಶಕ"/>
+<l:gentext key="Qandadiv" text="ಪ್ರಶ್ನೆ ಮತ್ತು ಉತ್ತರ"/>
+<l:gentext key="qandadiv" text="ಪ್ರಶ್ನೆ ಮತ್ತು ಉತ್ತರ"/>
+<l:gentext key="QandASet" text="ಪದೆ ಪದೆ ಕೇಳಲಾಗುವ ಪ್ರಶ್ನೆಗಳು"/>
+<l:gentext key="Question" text="ಪ್ರಶ್ನೆ:"/>
+<l:gentext key="question" text="ಪ್ರಶ್ನೆ:"/>
+<l:gentext key="RefEntry" text="ಪುಟ"/>
+<l:gentext key="refentry" text="ಪುಟ"/>
+<l:gentext key="Reference" text="ಉಲ್ಲೇಖ"/>
+<l:gentext key="reference" text="ಉಲ್ಲೇಖ"/>
+<l:gentext key="References" text="ಉಲ್ಲೇಖಗಳು"/>
+<l:gentext key="RefName" text="ಹೆಸರು"/>
+<l:gentext key="refname" text="ಹೆಸರು"/>
+<l:gentext key="RefSection" text="ವಿಭಾಗ"/>
+<l:gentext key="refsection" text="ವಿಭಾಗ"/>
+<l:gentext key="RefSynopsisDiv" text="ಸಾರಾಂಶ"/>
+<l:gentext key="refsynopsisdiv" text="ಸಾರಾಂಶ"/>
+<l:gentext key="RevHistory" text="ಪರಿಷ್ಕರಣೆಯ ಇತಿಹಾಸ"/>
+<l:gentext key="revhistory" text="ಪರಿಷ್ಕರಣೆಯ ಇತಿಹಾಸ"/>
+<l:gentext key="revision" text="ಪರಿಷ್ಕರಣೆ"/>
+<l:gentext key="Revision" text="ಪರಿಷ್ಕರಣೆ"/>
+<l:gentext key="sect1" text="ವಿಭಾಗ"/>
+<l:gentext key="sect2" text="ವಿಭಾಗ"/>
+<l:gentext key="sect3" text="ವಿಭಾಗ"/>
+<l:gentext key="sect4" text="ವಿಭಾಗ"/>
+<l:gentext key="sect5" text="ವಿಭಾಗ"/>
+<l:gentext key="section" text="ವಿಭಾಗ"/>
+<l:gentext key="Section" text="ವಿಭಾಗ"/>
+<l:gentext key="see" text="ಇದನ್ನು ನೋಡಿ"/>
+<l:gentext key="See" text="ಇದನ್ನು ನೋಡಿ"/>
+<l:gentext key="seealso" text="ಇದನ್ನೂ ಸಹ ನೋಡಿ"/>
+<l:gentext key="Seealso" text="ಇದನ್ನೂ ಸಹ ನೋಡಿ"/>
+<l:gentext key="SeeAlso" text="ಇದನ್ನೂ ಸಹ ನೋಡಿ"/>
+<l:gentext key="set" text="ಹೊಂದಿಸು"/>
+<l:gentext key="Set" text="ಹೊಂದಿಸು"/>
+<l:gentext key="setindex" text="ಅನುಕ್ರಮಣಿಕೆ ಹೊಂದಿಸು"/>
+<l:gentext key="SetIndex" text="ಅನುಕ್ರಮಣಿಕೆ ಹೊಂದಿಸು"/>
+<l:gentext key="Sidebar" text="ಬದಿಪಟ್ಟಿಕೆ"/>
+<l:gentext key="sidebar" text="ಬದಿಪಟ್ಟಿಕೆ"/>
+<l:gentext key="step" text="ಹಂತ"/>
+<l:gentext key="Step" text="ಹಂತ"/>
+<l:gentext key="table" text="ಕೋಷ್ಟಕ"/>
+<l:gentext key="Table" text="ಕೋಷ್ಟಕ"/>
+<l:gentext key="task" text="ಕಾರ್ಯ"/>
+<l:gentext key="Task" text="ಕಾರ್ಯ"/>
+<l:gentext key="tip" text="ಕಿವಿಮಾತು"/>
+<l:gentext key="TIP" text="ಕಿವಿಮಾತು"/>
+<l:gentext key="Tip" text="ಕಿವಿಮಾತು"/>
+<l:gentext key="Warning" text="ಎಚ್ಚರಿಕೆ"/>
+<l:gentext key="warning" text="ಎಚ್ಚರಿಕೆ"/>
+<l:gentext key="WARNING" text="ಎಚ್ಚರಿಕೆ"/>
+<l:gentext key="and" text="ಮತ್ತು"/>
+<l:gentext key="or" text="ಅಥವಾ"/>
+<l:gentext key="by" text="ಯಿಂದ"/>
+<l:gentext key="Edited" text="ಸಂಪಾದಿಸಿದ"/>
+<l:gentext key="edited" text="ಸಂಪಾದಿಸಿದ"/>
+<l:gentext key="Editedby" text="ಸಂಪಾದಕ"/>
+<l:gentext key="editedby" text="ಸಂಪಾದಕ"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="ಟಿಪ್ಪಣಿಗಳು"/>
+<l:gentext key="Notes" text="ಟಿಪ್ಪಣಿಗಳು"/>
+<l:gentext key="Pgs" text="ಪುಟಗಳು."/>
+<l:gentext key="pgs" text="ಪುಟಗಳು."/>
+<l:gentext key="Revisedby" text="ಪರಿಷ್ಕರಿಸಿದವರು: "/>
+<l:gentext key="revisedby" text="ಪರಿಷ್ಕರಿಸಿದವರು: "/>
+<l:gentext key="TableNotes" text="ಟಿಪ್ಪಣಿಗಳು"/>
+<l:gentext key="tablenotes" text="ಟಿಪ್ಪಣಿಗಳು"/>
+<l:gentext key="TableofContents" text="ವಿಷಯಾನುಕ್ರಮಣಿಕೆ"/>
+<l:gentext key="tableofcontents" text="ವಿಷಯಾನುಕ್ರಮಣಿಕೆ"/>
+<l:gentext key="unexpectedelementname" text="ಅನಿರೀಕ್ಷಿತ ವಸ್ತುವಿನ ಹೆಸರು"/>
+<l:gentext key="unsupported" text="ಬೆಂಬಲವಿರದ"/>
+<l:gentext key="xrefto" text="xref ಗಾಗಿ"/>
+<l:gentext key="Authors" text="ಕತೃಗಳು"/>
+<l:gentext key="copyeditor" text="ಪ್ರತಿಯ ಸಂಪಾದಕ"/>
+<l:gentext key="graphicdesigner" text="ಗ್ರಾಫಿಕ್ ವಿನ್ಯಾಸಗಾರ"/>
+<l:gentext key="productioneditor" text="ನಿರ್ಮಾಣ ಸಂಪಾದಕ"/>
+<l:gentext key="technicaleditor" text="ತಾಂತ್ರಿಕ ಸಂಪಾದಕ"/>
+<l:gentext key="translator" text="ಅನುವಾದಕ"/>
+<l:gentext key="listofequations" text="ಸಮೀಕರಣಪಟ್ಟಿ "/>
+<l:gentext key="ListofEquations" text="ಸಮೀಕರಣಪಟ್ಟಿ "/>
+<l:gentext key="ListofExamples" text="ಉದಾಹರಣೆಗಳ ಪಟ್ಟಿ"/>
+<l:gentext key="listofexamples" text="ಉದಾಹರಣೆಗಳ ಪಟ್ಟಿ"/>
+<l:gentext key="ListofFigures" text="ಆಕೃತಿಗಳ ಪಟ್ಟಿ"/>
+<l:gentext key="listoffigures" text="ಆಕೃತಿಗಳ ಪಟ್ಟಿ"/>
+<l:gentext key="ListofProcedures" text="ಕಾರ್ಯವಿಧಾನಗಳ ಪಟ್ಟಿ"/>
+<l:gentext key="listofprocedures" text="ಕಾರ್ಯವಿಧಾನಗಳ ಪಟ್ಟಿ"/>
+<l:gentext key="listoftables" text="ಕೋಷ್ಟಕಗಳ ಪಟ್ಟಿ"/>
+<l:gentext key="ListofTables" text="ಕೋಷ್ಟಕಗಳ ಪಟ್ಟಿ"/>
+<l:gentext key="ListofUnknown" text="ತಿಳಿಯದೆ ಇರುವವುಗಳ ಪಟ್ಟಿ"/>
+<l:gentext key="listofunknown" text="ತಿಳಿಯದೆ ಇರುವವುಗಳ ಪಟ್ಟಿ"/>
+<l:gentext key="nav-home" text="ಮನೆ"/>
+<l:gentext key="nav-next" text="ಮುಂದಿನ"/>
+<l:gentext key="nav-next-sibling" text="ಮುಂದಕ್ಕೆ ಓಡಿಸು"/>
+<l:gentext key="nav-prev" text="ಹಿಂದಿನ"/>
+<l:gentext key="nav-prev-sibling" text="ಹಿಂದಕ್ಕೆ ಓಡಿಸು"/>
+<l:gentext key="nav-up" text="ಮೇಲೆ"/>
+<l:gentext key="nav-toc" text="ವಿಷಯ ಸೂಚಿ"/>
+<l:gentext key="Draft" text="ಕರಡು ಪ್ರತಿ"/>
+<l:gentext key="above" text="ಮೇಲೆ"/>
+<l:gentext key="below" text="ಕೆಳಗೆ"/>
+<l:gentext key="sectioncalled" text="ಕೋರಲಾದ ವಿಭಾಗ"/>
+<l:gentext key="index symbols" text="ಸಂಕೇತಗಳು"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="ಅನುಬಂಧ %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="ಅಧ್ಯಾಯ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="ಸಮೀಕರಣ %n. %t"/>
+<l:template name="example" text="ಉದಾಹರಣೆ %n. %t"/>
+<l:template name="figure" text="ಚಿತ್ರ %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ಭಾಗ %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="ಕಾರ್ಯವಿಧಾನ %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ನಿರ್ಮಾಣ %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="ಕೋಷ್ಟಕ %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="ಅನುಬಂಧ %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="ಅಧ್ಯಾಯ %n. %t"/>
+<l:template name="part" text="ಭಾಗ %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="ಉ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="ಪ್ರಶ್ನೆ: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="ಪ್ರಶ್ನೆ: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="refsection" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="refsect1" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="refsect2" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="refsect3" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="sect1" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="sect2" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="sect3" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="sect4" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="sect5" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="section" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="simplesect" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="ಉ: %n"/>
+<l:template name="appendix" text="ಅನುಬಂಧ %n"/>
+<l:template name="bridgehead" text="ವಿಭಾಗ %n"/>
+<l:template name="chapter" text="ಅಧ್ಯಾಯ %n"/>
+<l:template name="equation" text="ಸಮೀಕರಣ %n"/>
+<l:template name="example" text="ಉದಾಹರಣೆ %n"/>
+<l:template name="figure" text="ಚಿತ್ರ %n"/>
+<l:template name="part" text="ಭಾಗ %n"/>
+<l:template name="procedure" text="ಕಾರ್ಯವಿಧಾನ %n"/>
+<l:template name="productionset" text="ನಿರ್ಮಾಣ %n"/>
+<l:template name="qandadiv" text="ಪ್ರಶ್ನೆ ಮತ್ತು ಉತ್ತರ %n"/>
+<l:template name="qandaentry" text="ಪ್ರಶ್ನೆ: %n"/>
+<l:template name="question" text="ಪ್ರಶ್ನೆ: %n"/>
+<l:template name="sect1" text="ವಿಭಾಗ %n"/>
+<l:template name="sect2" text="ವಿಭಾಗ %n"/>
+<l:template name="sect3" text="ವಿಭಾಗ %n"/>
+<l:template name="sect4" text="ವಿಭಾಗ %n"/>
+<l:template name="sect5" text="ವಿಭಾಗ %n"/>
+<l:template name="section" text="ವಿಭಾಗ %n"/>
+<l:template name="table" text="ಕೋಷ್ಟಕ %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="ಅನುಬಂಧ %n, %t"/>
+<l:template name="bridgehead" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="chapter" text="ಅಧ್ಯಾಯ %n, %t"/>
+<l:template name="equation" text="ಸಮೀಕರಣ %n, “%t”"/>
+<l:template name="example" text="ಉದಾಹರಣೆ %n, “%t”"/>
+<l:template name="figure" text="ಚಿತ್ರ %n, “%t”"/>
+<l:template name="part" text="ಭಾಗ %n, “%t”"/>
+<l:template name="procedure" text="ಕಾರ್ಯವಿಧಾನ %n, “%t”"/>
+<l:template name="productionset" text="ನಿರ್ಮಾಣ %n, “%t”"/>
+<l:template name="qandadiv" text="ಪ್ರಶ್ನೆ ಮತ್ತು ಉತ್ತರ %n, “%t”"/>
+<l:template name="refsect1" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="refsect2" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="refsect3" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="refsection" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="sect1" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="sect2" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="sect3" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="sect4" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="sect5" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="section" text="ವಿಭಾಗ %n, “%t”"/>
+<l:template name="simplesect" text="ಕೋರಲಾದ ವಿಭಾಗ “%t”"/>
+<l:template name="table" text="ಕೋಷ್ಟಕ %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ಮತ್ತು "/>
+<l:template name="seplast" text=", ಮತ್ತು "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="ಇದನ್ನು ನೋಡಿ %t"/>
+<l:template name="seealso" text="ಇದನ್ನೂ ಸಹ ನೋಡಿ %t"/>
+<l:template name="seealso-separator" text=", " lang="en"/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="ಶ್ರೋತೃಗಳು: "/>
+<l:template name="MsgLevel" text="ಸ್ತರ: "/>
+<l:template name="MsgOrig" text="ಮೂಲ: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="ಜನೆವರಿ"/>
+<l:template name="February" text="ಫೆಬ್ರುವರಿ"/>
+<l:template name="March" text="ಮಾರ್ಚ್"/>
+<l:template name="April" text="ಏಪ್ರಲ್"/>
+<l:template name="May" text="ಮೇ"/>
+<l:template name="June" text="ಜೂನ್"/>
+<l:template name="July" text="ಜುಲೈ"/>
+<l:template name="August" text="ಅಗಷ್ಟ"/>
+<l:template name="September" text="ಸೆಪ್ಟೆಂಬರ್"/>
+<l:template name="October" text="ಅಕ್ಟೋಬರ್"/>
+<l:template name="November" text="ನವೆಂಬರ್"/>
+<l:template name="December" text="ಡಿಸೆಂಬರ್"/>
+<l:template name="Monday" text="ಸೋಮವಾರ"/>
+<l:template name="Tuesday" text="ಮಂಗಳವಾರ"/>
+<l:template name="Wednesday" text="ಬುಧವಾರ"/>
+<l:template name="Thursday" text="ಗುರುವಾರ"/>
+<l:template name="Friday" text="ಶುಕ್ರವಾರ"/>
+<l:template name="Saturday" text="ಶನಿವಾರ"/>
+<l:template name="Sunday" text="ರವಿವಾರ"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="ಜನೆವರಿ"/>
+<l:template name="Feb" text="ಫೆಬ್ರುವರಿ"/>
+<l:template name="Mar" text="ಮಾರ್ಚ್"/>
+<l:template name="Apr" text="ಏಪ್ರಿಲ್"/>
+<l:template name="May" text="ಮೇ"/>
+<l:template name="Jun" text="ಜೂನ್"/>
+<l:template name="Jul" text="ಜುಲೈ"/>
+<l:template name="Aug" text="ಅಗಷ್ಟ"/>
+<l:template name="Sep" text="ಸೆಪ್ಟೆಂಬರ್"/>
+<l:template name="Oct" text="ಅಕ್ಟೋಬರ್"/>
+<l:template name="Nov" text="ನವೆಂಬರ್"/>
+<l:template name="Dec" text="ಡಿಸೆಂಬರ್"/>
+<l:template name="Mon" text="ಸೋಮ"/>
+<l:template name="Tue" text="ಮಂಗಳ"/>
+<l:template name="Wed" text="ಬುಧ"/>
+<l:template name="Thu" text="ಗುರು"/>
+<l:template name="Fri" text="ಶುಕ್ರ"/>
+<l:template name="Sat" text="ಶನಿ"/>
+<l:template name="Sun" text="ರವಿ"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x044b Kannada (INDIA)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">ಸಂಕೇತಗಳು</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/ko.xml b/applications/content/template/docbook/common/ko.xml
new file mode 100644
index 0000000..3600350
--- /dev/null
+++ b/applications/content/template/docbook/common/ko.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ko" english-language-name="Korean">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ko.xml -->
+<!-- * -->
+<!-- * E-mail the edited ko.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="초록"/>
+<l:gentext key="abstract" text="초록"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="답변"/>
+<l:gentext key="answer" text="답변"/>
+<l:gentext key="Appendix" text="부록"/>
+<l:gentext key="appendix" text="부록"/>
+<l:gentext key="Article" text="문서"/>
+<l:gentext key="article" text="문서"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="서지사항"/>
+<l:gentext key="bibliography" text="서지사항"/>
+<l:gentext key="Book" text="책"/>
+<l:gentext key="book" text="책"/>
+<l:gentext key="CAUTION" text="[경고]"/>
+<l:gentext key="Caution" text="경고"/>
+<l:gentext key="caution" text="경고"/>
+<l:gentext key="Chapter" text="장"/>
+<l:gentext key="chapter" text="장"/>
+<l:gentext key="Colophon" text="판권"/>
+<l:gentext key="colophon" text="판권"/>
+<l:gentext key="Copyright" text="저작권"/>
+<l:gentext key="copyright" text="저작권"/>
+<l:gentext key="Dedication" text="바치는 글"/>
+<l:gentext key="dedication" text="바치는 글"/>
+<l:gentext key="Edition" text="엮음"/>
+<l:gentext key="edition" text="엮음"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="수식"/>
+<l:gentext key="equation" text="수식"/>
+<l:gentext key="Example" text="예"/>
+<l:gentext key="example" text="예"/>
+<l:gentext key="Figure" text="그림"/>
+<l:gentext key="figure" text="그림"/>
+<l:gentext key="Glossary" text="용어해설"/>
+<l:gentext key="glossary" text="용어해설"/>
+<l:gentext key="GlossSee" text="살펴볼 내용"/>
+<l:gentext key="glosssee" text="살펴볼 내용"/>
+<l:gentext key="GlossSeeAlso" text="다른 살펴볼 내용"/>
+<l:gentext key="glossseealso" text="다른 살펴볼 내용"/>
+<l:gentext key="IMPORTANT" text="[중요]"/>
+<l:gentext key="important" text="중요"/>
+<l:gentext key="Important" text="중요"/>
+<l:gentext key="Index" text="색인"/>
+<l:gentext key="index" text="색인"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="법적 공지"/>
+<l:gentext key="legalnotice" text="법적 공지"/>
+<l:gentext key="MsgAud" text="받는 이"/>
+<l:gentext key="msgaud" text="받는 이"/>
+<l:gentext key="MsgLevel" text="중요도"/>
+<l:gentext key="msglevel" text="중요도"/>
+<l:gentext key="MsgOrig" text="보내는 이"/>
+<l:gentext key="msgorig" text="보내는 이"/>
+<l:gentext key="NOTE" text="[참고]"/>
+<l:gentext key="Note" text="참고"/>
+<l:gentext key="note" text="참고"/>
+<l:gentext key="Part" text="부"/>
+<l:gentext key="part" text="부"/>
+<l:gentext key="Preface" text="서문"/>
+<l:gentext key="preface" text="서문"/>
+<l:gentext key="Procedure" text="절차"/>
+<l:gentext key="procedure" text="절차"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="펴냄"/>
+<l:gentext key="published" text="펴냄"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="질문그리고답변"/>
+<l:gentext key="qandadiv" text="질문그리고답변"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="질문"/>
+<l:gentext key="question" text="질문"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="참고문헌"/>
+<l:gentext key="reference" text="참고문헌"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="제목"/>
+<l:gentext key="refname" text="제목"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="요약"/>
+<l:gentext key="refsynopsisdiv" text="요약"/>
+<l:gentext key="RevHistory" text="고친 과정"/>
+<l:gentext key="revhistory" text="고친 과정"/>
+<l:gentext key="revision" text="고침"/>
+<l:gentext key="Revision" text="고침"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="절"/>
+<l:gentext key="Section" text="절"/>
+<l:gentext key="see" text="살펴볼 내용"/>
+<l:gentext key="See" text="살펴볼 내용"/>
+<l:gentext key="seealso" text="[살펴볼 다른 내용]"/>
+<l:gentext key="Seealso" text="살펴볼 다른 내용"/>
+<l:gentext key="SeeAlso" text="[살펴볼 다른 내용]"/>
+<l:gentext key="set" text="전집"/>
+<l:gentext key="Set" text="전집"/>
+<l:gentext key="setindex" text="전집 색인"/>
+<l:gentext key="SetIndex" text="전집 색인"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="덧붙임"/>
+<l:gentext key="step" text="단계"/>
+<l:gentext key="Step" text="단계"/>
+<l:gentext key="table" text="표"/>
+<l:gentext key="Table" text="표"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="작은 정보"/>
+<l:gentext key="TIP" text="[작은 정보]"/>
+<l:gentext key="Tip" text="작은 정보"/>
+<l:gentext key="Warning" text="주의"/>
+<l:gentext key="warning" text="주의"/>
+<l:gentext key="WARNING" text="주의!"/>
+<l:gentext key="and" text="그리고"/>
+<l:gentext key="or" text="또는"/>
+<l:gentext key="by" text="지은이"/>
+<l:gentext key="Edited" text="엮음"/>
+<l:gentext key="edited" text="엮음"/>
+<l:gentext key="Editedby" text="엮은이"/>
+<l:gentext key="editedby" text="엮은이"/>
+<l:gentext key="in" text="-"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="주석"/>
+<l:gentext key="Notes" text="주석"/>
+<l:gentext key="Pgs" text="Pgs."/>
+<l:gentext key="pgs" text="Pgs."/>
+<l:gentext key="Revisedby" text="고친이 "/>
+<l:gentext key="revisedby" text="고친이 "/>
+<l:gentext key="TableNotes" text="참고"/>
+<l:gentext key="tablenotes" text="참고"/>
+<l:gentext key="TableofContents" text="차례"/>
+<l:gentext key="tableofcontents" text="차례"/>
+<l:gentext key="unexpectedelementname" text="알 수 없는 기초요소 이름입니다"/>
+<l:gentext key="unsupported" text="지원되지 않습니다"/>
+<l:gentext key="xrefto" text="이 곳을 참조하세요 : "/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="수식 목록"/>
+<l:gentext key="ListofEquations" text="수식 목록"/>
+<l:gentext key="ListofExamples" text="예 목록"/>
+<l:gentext key="listofexamples" text="예 목록"/>
+<l:gentext key="ListofFigures" text="그림 목록"/>
+<l:gentext key="listoffigures" text="그림 목록"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="표 목록"/>
+<l:gentext key="ListofTables" text="표 목록"/>
+<l:gentext key="ListofUnknown" text="기타 목록"/>
+<l:gentext key="listofunknown" text="기타 목록"/>
+<l:gentext key="nav-home" text="처음으로"/>
+<l:gentext key="nav-next" text="다음"/>
+<l:gentext key="nav-next-sibling" text="다음으로 건너뜀"/>
+<l:gentext key="nav-prev" text="이전"/>
+<l:gentext key="nav-prev-sibling" text="이전으로 건너뜀"/>
+<l:gentext key="nav-up" text="위로"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz" lang="en"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" lang="en"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="부록 %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%n장. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="수식 %n. %t"/>
+<l:template name="example" text="예 %n. %t"/>
+<l:template name="figure" text="그림 %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%n부. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="절차 %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="표 %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="부록 %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="%n장. %t"/>
+<l:template name="part" text="부 %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="답변 %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="질문 %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="질문 %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="답변 %n"/>
+<l:template name="appendix" text="부록 %n"/>
+<l:template name="bridgehead" text="절 %n"/>
+<l:template name="chapter" text="%n장"/>
+<l:template name="equation" text="수식 %n"/>
+<l:template name="example" text="예 %n"/>
+<l:template name="figure" text="그림 %n"/>
+<l:template name="part" text="%n부"/>
+<l:template name="procedure" text="절차 %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="질문그리고답변 %n"/>
+<l:template name="qandaentry" text="질문 %n"/>
+<l:template name="question" text="질문 %n"/>
+<l:template name="sect1" text="%n절"/>
+<l:template name="sect2" text="%n절"/>
+<l:template name="sect3" text="%n절"/>
+<l:template name="sect4" text="%n절"/>
+<l:template name="sect5" text="%n절"/>
+<l:template name="section" text="%n절"/>
+<l:template name="table" text="표 %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="부록 %n. %t"/>
+<l:template name="bridgehead" text="절 %n. “%t”"/>
+<l:template name="chapter" text="%n장. %t"/>
+<l:template name="equation" text="수식 %n. “%t”"/>
+<l:template name="example" text="예 %n. “%t”"/>
+<l:template name="figure" text="그림 %n. “%t”"/>
+<l:template name="part" text="%n부. %t"/>
+<l:template name="procedure" text="절차 %n. “%t”"/>
+<l:template name="productionset" text="Production %n. “%t”"/>
+<l:template name="qandadiv" text="질문그리고답변 %n. “%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="sect1" text="%n절. “%t”"/>
+<l:template name="sect2" text="%n절. “%t”"/>
+<l:template name="sect3" text="%n절. “%t”"/>
+<l:template name="sect4" text="%n절. “%t”"/>
+<l:template name="sect5" text="%n절. “%t”"/>
+<l:template name="section" text="%n절. “%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+<l:template name="table" text="표 %n. “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" 그리고 "/>
+<l:template name="seplast" text=", 그리고 "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="살펴볼 내용 %t."/>
+<l:template name="seealso" text="다른 살펴볼 내용 %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="받는 이: "/>
+<l:template name="MsgLevel" text="중요도: "/>
+<l:template name="MsgOrig" text="보내는 이: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0412 Korean"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/ky.xml b/applications/content/template/docbook/common/ky.xml
new file mode 100644
index 0000000..0783e60
--- /dev/null
+++ b/applications/content/template/docbook/common/ky.xml
@@ -0,0 +1,750 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ky" english-language-name="Kirghiz">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ky.xml -->
+<!-- * -->
+<!-- * E-mail the edited ky.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Аннотация"/>
+<l:gentext key="abstract" text="Аннотация"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="Жооп:"/>
+<l:gentext key="answer" text="Жооп:"/>
+<l:gentext key="Appendix" text="Тиркеме"/>
+<l:gentext key="appendix" text="Тиркеме"/>
+<l:gentext key="Article" text="Макала"/>
+<l:gentext key="article" text="Макала"/>
+<l:gentext key="Author" text="Автор"/>
+<l:gentext key="Bibliography" text="Адабият"/>
+<l:gentext key="bibliography" text="Адабият"/>
+<l:gentext key="Book" text="Китеп"/>
+<l:gentext key="book" text="Китеп"/>
+<l:gentext key="CAUTION" text="ЭСКЕРТҮҮ"/>
+<l:gentext key="Caution" text="Эскертүү"/>
+<l:gentext key="caution" text="Эскертүү"/>
+<l:gentext key="Chapter" text="Бөлүм"/>
+<l:gentext key="chapter" text="Бөлүм"/>
+<l:gentext key="Colophon" text="Китеп жөнүндө"/>
+<l:gentext key="colophon" text="Китеп жөнүндө"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Арноо"/>
+<l:gentext key="dedication" text="Арноо"/>
+<l:gentext key="Edition" text="Редакция"/>
+<l:gentext key="edition" text="Редакция"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Формула"/>
+<l:gentext key="equation" text="Формула"/>
+<l:gentext key="Example" text="Мисал"/>
+<l:gentext key="example" text="Мисал"/>
+<l:gentext key="Figure" text="Сүрөт"/>
+<l:gentext key="figure" text="Сүрөт"/>
+<l:gentext key="Glossary" text="Сөздүк"/>
+<l:gentext key="glossary" text="Сөздүк"/>
+<l:gentext key="GlossSee" text="Караңыз"/>
+<l:gentext key="glosssee" text="Караңыз"/>
+<l:gentext key="GlossSeeAlso" text="Дагы караңыз"/>
+<l:gentext key="glossseealso" text="Дагы караңыз"/>
+<l:gentext key="IMPORTANT" text="МААНИЛҮҮ"/>
+<l:gentext key="important" text="Маанилүү"/>
+<l:gentext key="Important" text="Маанилүү"/>
+<l:gentext key="Index" text="Индекс"/>
+<l:gentext key="index" text="Индекс"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Автордук укуктар"/>
+<l:gentext key="legalnotice" text="Автордук укуктар"/>
+<l:gentext key="MsgAud" text="Audience"/>
+<l:gentext key="msgaud" text="Audience"/>
+<l:gentext key="MsgLevel" text="Деңгээл"/>
+<l:gentext key="msglevel" text="Деңгээл"/>
+<l:gentext key="MsgOrig" text="Булак"/>
+<l:gentext key="msgorig" text="Булак"/>
+<l:gentext key="NOTE" text="ЭСКЕРҮҮ"/>
+<l:gentext key="Note" text="Эскерүү"/>
+<l:gentext key="note" text="Эскерүү"/>
+<l:gentext key="Part" text="Түркүм"/>
+<l:gentext key="part" text="Түркүм"/>
+<l:gentext key="Preface" text="Кириш сөз"/>
+<l:gentext key="preface" text="Кириш сөз"/>
+<l:gentext key="Procedure" text="Процедура"/>
+<l:gentext key="procedure" text="Процедура"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Жарияланган"/>
+<l:gentext key="published" text="Жарияланган"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="С жана Ж"/>
+<l:gentext key="qandadiv" text="С жана Ж"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Суроо:"/>
+<l:gentext key="question" text="Суроо:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Шилтеме"/>
+<l:gentext key="reference" text="Шилтеме"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Аталышы"/>
+<l:gentext key="refname" text="Аталышы"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Синтаксис"/>
+<l:gentext key="refsynopsisdiv" text="Синтаксис"/>
+<l:gentext key="RevHistory" text="Басылыш тарыхы"/>
+<l:gentext key="revhistory" text="Басылыш тарыхы"/>
+<l:gentext key="revision" text="Басылышы"/>
+<l:gentext key="Revision" text="Басылышы"/>
+<l:gentext key="sect1" text="Бөлүк"/>
+<l:gentext key="sect2" text="Бөлүк"/>
+<l:gentext key="sect3" text="Бөлүк"/>
+<l:gentext key="sect4" text="Бөлүк"/>
+<l:gentext key="sect5" text="Бөлүк"/>
+<l:gentext key="section" text="бөлүк"/>
+<l:gentext key="Section" text="Бөлүк"/>
+<l:gentext key="see" text="караңыз"/>
+<l:gentext key="See" text="Караңыз"/>
+<l:gentext key="seealso" text="Дагы караңыз"/>
+<l:gentext key="Seealso" text="Дагы караңыз"/>
+<l:gentext key="SeeAlso" text="Дагы караңыз"/>
+<l:gentext key="set" text="Тизме"/>
+<l:gentext key="Set" text="Тизме"/>
+<l:gentext key="setindex" text="Ылгап алынган тизме"/>
+<l:gentext key="SetIndex" text="Ылгап алынган тизме"/>
+<l:gentext key="Sidebar" text="Белгилөө"/>
+<l:gentext key="sidebar" text="белгилөө"/>
+<l:gentext key="step" text="кадам"/>
+<l:gentext key="Step" text="Кадам"/>
+<l:gentext key="table" text="таблица"/>
+<l:gentext key="Table" text="Таблица"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="шыбыроо"/>
+<l:gentext key="TIP" text="ШЫБЫРОО"/>
+<l:gentext key="Tip" text="Шыбыроо"/>
+<l:gentext key="Warning" text="Көңүл бургула"/>
+<l:gentext key="warning" text="Көңүл бургула"/>
+<l:gentext key="WARNING" text="КӨҢҮЛ БУРГУЛА"/>
+<l:gentext key="and" text=""/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Редакцияга даярдаган"/>
+<l:gentext key="edited" text="Редакцияга даярдаган"/>
+<l:gentext key="Editedby" text="Редакцияга даярдаган"/>
+<l:gentext key="editedby" text="Редакцияга даярдаган"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Эскертүү"/>
+<l:gentext key="Notes" text="Эскертүү"/>
+<l:gentext key="Pgs" text="Барак"/>
+<l:gentext key="pgs" text="Барак"/>
+<l:gentext key="Revisedby" text="Оңдоолор: "/>
+<l:gentext key="revisedby" text="Оңдоолор: "/>
+<l:gentext key="TableNotes" text="Эскертүү"/>
+<l:gentext key="tablenotes" text="Эскертүү"/>
+<l:gentext key="TableofContents" text="Мазмун"/>
+<l:gentext key="tableofcontents" text="Мазмун"/>
+<l:gentext key="unexpectedelementname" text="unexpected element name"/>
+<l:gentext key="unsupported" text="unsupported"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Формулалар"/>
+<l:gentext key="ListofEquations" text="Формулалар"/>
+<l:gentext key="ListofExamples" text="Мисалдар"/>
+<l:gentext key="listofexamples" text="Мисалдар"/>
+<l:gentext key="ListofFigures" text="Сүрөттөр"/>
+<l:gentext key="listoffigures" text="Сүрөттөр"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Таблицалар"/>
+<l:gentext key="ListofTables" text="Таблицалар"/>
+<l:gentext key="ListofUnknown" text="Белгисиз"/>
+<l:gentext key="listofunknown" text="Белгисиз"/>
+<l:gentext key="nav-home" text="Башы"/>
+<l:gentext key="nav-next" text="Кийинки"/>
+<l:gentext key="nav-next-sibling" text="Кийинки бөлүм"/>
+<l:gentext key="nav-prev" text="Мурунку"/>
+<l:gentext key="nav-prev-sibling" text="Мурунку бөлүм"/>
+<l:gentext key="nav-up" text="Деңгээлге жогору"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Кол жазма"/>
+<l:gentext key="above" text="жогору"/>
+<l:gentext key="below" text="ылдый"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Символдор"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="абвгдеёжзийклмнңоөпрстуүфхцчшщъыьэюя"/>
+<l:gentext key="uppercase.alpha" text="АБВГДЕЁЖЗИЙКЛМНҢОӨПРСТУҮФХЦЧШЩЪЫЬЭЮЯ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="«"/>
+<l:dingbat key="endquote" text="»"/>
+<l:dingbat key="nestedstartquote" text="„"/>
+<l:dingbat key="nestedendquote" text="“"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Тиркеме %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Бөлүм %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Формула %n. %t"/>
+<l:template name="example" text="Мисал %n. %t"/>
+<l:template name="figure" text="Сүрөт %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Түркүм %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Процедура %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Таблица %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Тиркеме %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Бөлүм %n. %t"/>
+<l:template name="part" text="Түркүм %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Жооп: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Суроо: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Суроо: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="«%t»"/>
+<l:template name="refsection" text="«%t»"/>
+<l:template name="refsect1" text="«%t»"/>
+<l:template name="refsect2" text="«%t»"/>
+<l:template name="refsect3" text="«%t»"/>
+<l:template name="sect1" text="«%t»"/>
+<l:template name="sect2" text="«%t»"/>
+<l:template name="sect3" text="«%t»"/>
+<l:template name="sect4" text="«%t»"/>
+<l:template name="sect5" text="«%t»"/>
+<l:template name="section" text="«%t»"/>
+<l:template name="simplesect" text="«%t»"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Жооп: %n"/>
+<l:template name="appendix" text="Тиркеме %n"/>
+<l:template name="bridgehead" text="Бөлүк %n"/>
+<l:template name="chapter" text="Бөлүм %n"/>
+<l:template name="equation" text="Формула %n"/>
+<l:template name="example" text="Мисал %n"/>
+<l:template name="figure" text="Сүрөт %n"/>
+<l:template name="part" text="Түркүм %n"/>
+<l:template name="procedure" text="Процедура %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="С жана Ж %n"/>
+<l:template name="qandaentry" text="Суроо: %n"/>
+<l:template name="question" text="Суроо: %n"/>
+<l:template name="sect1" text="Бөлүк %n"/>
+<l:template name="sect2" text="Бөлүк %n"/>
+<l:template name="sect3" text="Бөлүк %n"/>
+<l:template name="sect4" text="Бөлүк %n"/>
+<l:template name="sect5" text="Бөлүк %n"/>
+<l:template name="section" text="Бөлүк %n"/>
+<l:template name="table" text="Таблица %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Тиркеме %n, %t"/>
+<l:template name="bridgehead" text="Бөлүк %n, «%t»"/>
+<l:template name="chapter" text="Бөлүм %n, %t"/>
+<l:template name="equation" text="Формула %n, «%t»"/>
+<l:template name="example" text="Мисал %n, «%t»"/>
+<l:template name="figure" text="Сүрөт %n, «%t»"/>
+<l:template name="part" text="Түркүм %n, «%t»"/>
+<l:template name="procedure" text="Процедура %n, «%t»"/>
+<l:template name="productionset" text="Production %n, «%t»"/>
+<l:template name="qandadiv" text="С жана Ж %n, «%t»"/>
+<l:template name="refsect1" text="the section called «%t»"/>
+<l:template name="refsect2" text="the section called «%t»"/>
+<l:template name="refsect3" text="the section called «%t»"/>
+<l:template name="refsection" text="the section called «%t»"/>
+<l:template name="sect1" text="Бөлүк %n, «%t»"/>
+<l:template name="sect2" text="Бөлүк %n, «%t»"/>
+<l:template name="sect3" text="Бөлүк %n, «%t»"/>
+<l:template name="sect4" text="Бөлүк %n, «%t»"/>
+<l:template name="sect5" text="Бөлүк %n, «%t»"/>
+<l:template name="section" text="Бөлүк %n, «%t»"/>
+<l:template name="simplesect" text="the section called «%t»"/>
+<l:template name="table" text="Таблица %n, «%t»"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text="  "/>
+<l:template name="seplast" text=",  "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Караңыз %t."/>
+<l:template name="seealso" text="Дагы караңыз %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audience: "/>
+<l:template name="MsgLevel" text="Деңгээл: "/>
+<l:template name="MsgOrig" text="Булак: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Январь"/>
+<l:template name="February" text="Февраль"/>
+<l:template name="March" text="Март"/>
+<l:template name="April" text="Апрель"/>
+<l:template name="May" text="Май"/>
+<l:template name="June" text="Июнь"/>
+<l:template name="July" text="Июль"/>
+<l:template name="August" text="Август"/>
+<l:template name="September" text="Сентябрь"/>
+<l:template name="October" text="Октябрь"/>
+<l:template name="November" text="Ноябрь"/>
+<l:template name="December" text="Декабрь"/>
+<l:template name="Monday" text="Дүйшөмбү"/>
+<l:template name="Tuesday" text="Шейшемби"/>
+<l:template name="Wednesday" text="Шаршемби"/>
+<l:template name="Thursday" text="Бейшемби"/>
+<l:template name="Friday" text="Жума"/>
+<l:template name="Saturday" text="Ишемби"/>
+<l:template name="Sunday" text="Жекшемби"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Янв"/>
+<l:template name="Feb" text="Фев"/>
+<l:template name="Mar" text="Мар"/>
+<l:template name="Apr" text="Апр"/>
+<l:template name="May" text="Май"/>
+<l:template name="Jun" text="Июн"/>
+<l:template name="Jul" text="Июл"/>
+<l:template name="Aug" text="Авг"/>
+<l:template name="Sep" text="Сен"/>
+<l:template name="Oct" text="Окт"/>
+<l:template name="Nov" text="Ноя"/>
+<l:template name="Dec" text="Дек"/>
+<l:template name="Mon" text="Дүй"/>
+<l:template name="Tue" text="Шей"/>
+<l:template name="Wed" text="Шар"/>
+<l:template name="Thu" text="Бей"/>
+<l:template name="Fri" text="Жум"/>
+<l:template name="Sat" text="Ише"/>
+<l:template name="Sun" text="Жек"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0440 Kirghiz"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Символдор</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="270">А</l:l>
+<l:l i="270">а</l:l>
+<l:l i="280">Б</l:l>
+<l:l i="280">б</l:l>
+<l:l i="290">В</l:l>
+<l:l i="290">в</l:l>
+<l:l i="300">Г</l:l>
+<l:l i="300">г</l:l>
+<l:l i="310">Д</l:l>
+<l:l i="310">д</l:l>
+<l:l i="320">Е</l:l>
+<l:l i="320">е</l:l>
+<l:l i="320">Ё</l:l>
+<l:l i="320">ё</l:l>
+<l:l i="330">Ж</l:l>
+<l:l i="330">ж</l:l>
+<l:l i="340">З</l:l>
+<l:l i="340">з</l:l>
+<l:l i="350">И</l:l>
+<l:l i="350">и</l:l>
+<l:l i="360">Й</l:l>
+<l:l i="360">й</l:l>
+<l:l i="370">К</l:l>
+<l:l i="370">к</l:l>
+<l:l i="380">Л</l:l>
+<l:l i="380">л</l:l>
+<l:l i="390">М</l:l>
+<l:l i="390">м</l:l>
+<l:l i="400">Н</l:l>
+<l:l i="400">н</l:l>
+<l:l i="410">Ң</l:l>
+<l:l i="410">ң</l:l>
+<l:l i="420">О</l:l>
+<l:l i="420">о</l:l>
+<l:l i="430">Ө</l:l>
+<l:l i="430">ө</l:l>
+<l:l i="440">П</l:l>
+<l:l i="440">п</l:l>
+<l:l i="450">Р</l:l>
+<l:l i="450">р</l:l>
+<l:l i="460">С</l:l>
+<l:l i="460">с</l:l>
+<l:l i="470">Т</l:l>
+<l:l i="470">т</l:l>
+<l:l i="480">У</l:l>
+<l:l i="480">у</l:l>
+<l:l i="490">Ү</l:l>
+<l:l i="490">ү</l:l>
+<l:l i="500">Ф</l:l>
+<l:l i="500">ф</l:l>
+<l:l i="510">Х</l:l>
+<l:l i="510">х</l:l>
+<l:l i="520">Ц</l:l>
+<l:l i="520">ц</l:l>
+<l:l i="530">Ч</l:l>
+<l:l i="530">ч</l:l>
+<l:l i="540">Ш</l:l>
+<l:l i="540">ш</l:l>
+<l:l i="550">Щ</l:l>
+<l:l i="550">щ</l:l>
+<l:l i="560">Ъ</l:l>
+<l:l i="560">ъ</l:l>
+<l:l i="570">Ы</l:l>
+<l:l i="570">ы</l:l>
+<l:l i="580">Ь</l:l>
+<l:l i="580">ь</l:l>
+<l:l i="590">Э</l:l>
+<l:l i="590">э</l:l>
+<l:l i="600">Ю</l:l>
+<l:l i="600">ю</l:l>
+<l:l i="610">Я</l:l>
+<l:l i="610">я</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/l10n.dtd b/applications/content/template/docbook/common/l10n.dtd
new file mode 100644
index 0000000..9bf2f66
--- /dev/null
+++ b/applications/content/template/docbook/common/l10n.dtd
@@ -0,0 +1,64 @@
+<!ENTITY % prefix "l">
+
+<!ENTITY % xmlns "xmlns:%prefix;">
+<!ENTITY % uri "'http://docbook.sourceforge.net/xmlns/l10n/1.0'">
+
+<!ENTITY % i18n "%prefix;:i18n">
+<!ENTITY % l10n "%prefix;:l10n">
+<!ENTITY % gentext "%prefix;:gentext">
+<!ENTITY % dingbat "%prefix;:dingbat">
+<!ENTITY % context "%prefix;:context">
+<!ENTITY % template "%prefix;:template">
+<!ENTITY % letters "%prefix;:letters">
+<!ENTITY % l "%prefix;:l">
+<!ENTITY % lang "lang NMTOKEN #IMPLIED"> 
+
+<!ELEMENT %i18n; ((%l10n;)+)>
+<!ATTLIST %i18n;
+	%xmlns;		CDATA	#FIXED %uri;
+>
+
+<!ELEMENT %l10n; (%gentext;|%dingbat;|%context;|%letters;)*>
+<!ATTLIST %l10n;
+	%xmlns;		CDATA	#FIXED %uri;
+	language	CDATA	#REQUIRED
+	english-language-name	CDATA	#IMPLIED
+	href            CDATA   #IMPLIED
+>
+
+<!ELEMENT %gentext; EMPTY>
+<!ATTLIST %gentext;
+	%lang;
+	key		CDATA	#REQUIRED
+	text		CDATA	#REQUIRED
+>
+
+<!ELEMENT %dingbat; EMPTY>
+<!ATTLIST %dingbat;
+        %lang;
+	key		CDATA	#REQUIRED
+	text		CDATA	#REQUIRED
+>
+
+<!ELEMENT %context; ((%template;)+)>
+<!ATTLIST %context;
+	name		CDATA	#REQUIRED
+>
+
+<!ELEMENT %template; EMPTY>
+<!ATTLIST %template;
+        %lang;
+	name		CDATA	#REQUIRED
+	text		CDATA	#REQUIRED
+	style		CDATA	#IMPLIED
+>
+
+<!ELEMENT %letters; ((%l;)+)>
+<!ATTLIST %letters;
+          %lang;
+>
+
+<!ELEMENT %l; (#PCDATA)>
+<!ATTLIST %l;
+          i 		CDATA 	#REQUIRED
+>
diff --git a/applications/content/template/docbook/common/l10n.xml b/applications/content/template/docbook/common/l10n.xml
new file mode 100644
index 0000000..da3df27
--- /dev/null
+++ b/applications/content/template/docbook/common/l10n.xml
@@ -0,0 +1,77 @@
+<?xml version='1.0'?>
+<!DOCTYPE l:i18n SYSTEM "l10n.dtd">
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+<l:l10n language="af" href="af.xml"/>
+<l:l10n language="am" href="am.xml"/>
+<l:l10n language="ar" href="ar.xml"/>
+<l:l10n language="as" href="as.xml"/>
+<l:l10n language="ast" href="ast.xml"/>
+<l:l10n language="az" href="az.xml"/>
+<l:l10n language="bg" href="bg.xml"/>
+<l:l10n language="bn" href="bn.xml"/>
+<l:l10n language="bn_in" href="bn_in.xml"/>
+<l:l10n language="bs" href="bs.xml"/>
+<l:l10n language="ca" href="ca.xml"/>
+<l:l10n language="cs" href="cs.xml"/>
+<l:l10n language="cy" href="cy.xml"/>
+<l:l10n language="da" href="da.xml"/>
+<l:l10n language="de" href="de.xml"/>
+<l:l10n language="el" href="el.xml"/>
+<l:l10n language="en" href="en.xml"/>
+<l:l10n language="eo" href="eo.xml"/>
+<l:l10n language="es" href="es.xml"/>
+<l:l10n language="et" href="et.xml"/>
+<l:l10n language="eu" href="eu.xml"/>
+<l:l10n language="fa" href="fa.xml"/>
+<l:l10n language="fi" href="fi.xml"/>
+<l:l10n language="fr" href="fr.xml"/>
+<l:l10n language="ga" href="ga.xml"/>
+<l:l10n language="gl" href="gl.xml"/>
+<l:l10n language="gu" href="gu.xml"/>
+<l:l10n language="he" href="he.xml"/>
+<l:l10n language="hi" href="hi.xml"/>
+<l:l10n language="hr" href="hr.xml"/>
+<l:l10n language="hu" href="hu.xml"/>
+<l:l10n language="id" href="id.xml"/>
+<l:l10n language="is" href="is.xml"/>
+<l:l10n language="it" href="it.xml"/>
+<l:l10n language="ja" href="ja.xml"/>
+<l:l10n language="ka" href="ka.xml"/>
+<l:l10n language="kn" href="kn.xml"/>
+<l:l10n language="ko" href="ko.xml"/>
+<l:l10n language="ky" href="ky.xml"/>
+<l:l10n language="la" href="la.xml"/>
+<l:l10n language="lt" href="lt.xml"/>
+<l:l10n language="lv" href="lv.xml"/>
+<l:l10n language="ml" href="ml.xml"/>
+<l:l10n language="mn" href="mn.xml"/>
+<l:l10n language="mr" href="mr.xml"/>
+<l:l10n language="nb" href="nb.xml"/>
+<l:l10n language="nds" href="nds.xml"/>
+<l:l10n language="nl" href="nl.xml"/>
+<l:l10n language="nn" href="nn.xml"/>
+<l:l10n language="or" href="or.xml"/>
+<l:l10n language="pa" href="pa.xml"/>
+<l:l10n language="pl" href="pl.xml"/>
+<l:l10n language="pt" href="pt.xml"/>
+<l:l10n language="pt_br" href="pt_br.xml"/>
+<l:l10n language="ro" href="ro.xml"/>
+<l:l10n language="ru" href="ru.xml"/>
+<l:l10n language="sk" href="sk.xml"/>
+<l:l10n language="sl" href="sl.xml"/>
+<l:l10n language="sq" href="sq.xml"/>
+<l:l10n language="sr" href="sr.xml"/>
+<l:l10n language="sr_latn" href="sr_Latn.xml"/>
+<l:l10n language="sv" href="sv.xml"/>
+<l:l10n language="ta" href="ta.xml"/>
+<l:l10n language="te" href="te.xml"/>
+<l:l10n language="th" href="th.xml"/>
+<l:l10n language="tl" href="tl.xml"/>
+<l:l10n language="tr" href="tr.xml"/>
+<l:l10n language="uk" href="uk.xml"/>
+<l:l10n language="vi" href="vi.xml"/>
+<l:l10n language="xh" href="xh.xml"/>
+<l:l10n language="zh" href="zh.xml"/>
+<l:l10n language="zh_cn" href="zh_cn.xml"/>
+<l:l10n language="zh_tw" href="zh_tw.xml"/>
+</l:i18n>
diff --git a/applications/content/template/docbook/common/l10n.xsl b/applications/content/template/docbook/common/l10n.xsl
new file mode 100644
index 0000000..0495870
--- /dev/null
+++ b/applications/content/template/docbook/common/l10n.xsl
@@ -0,0 +1,593 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
+                exclude-result-prefixes="l"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     This file contains localization templates (for internationalization)
+     ******************************************************************** -->
+
+<xsl:param name="l10n.xml" select="document('../common/l10n.xml')"/>
+<xsl:param name="local.l10n.xml" select="document('')"/>
+<xsl:param name="empty.local.l10n.xml" select="not($local.l10n.xml//l:l10n)"/>
+
+<xsl:key name="l10n-lang" match="l:l10n" use="@language"/>
+<xsl:key name="l10n-gentext" match="l:l10n/l:gentext" use="@key"/>
+<xsl:key name="l10n-dingbat" match="l:l10n/l:dingbat" use="@key"/>
+<xsl:key name="l10n-context" match="l:l10n/l:context" use="@name"/>
+<xsl:key name="l10n-template" match="l:l10n/l:context/l:template[not(@style)]" use="concat(../@name, '#', @name)"/>
+<xsl:key name="l10n-template-style" match="l:l10n/l:context/l:template[@style]" use="concat(../@name, '#', @name, '#', @style)"/>
+
+<xsl:template name="l10n.language">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="xref-context" select="false()"/>
+
+  <xsl:variable name="mc-language">
+    <xsl:choose>
+      <xsl:when test="$l10n.gentext.language != ''">
+        <xsl:value-of select="$l10n.gentext.language"/>
+      </xsl:when>
+
+      <xsl:when test="$xref-context or $l10n.gentext.use.xref.language != 0">
+        <!-- can't do this one step: attributes are unordered! -->
+        <xsl:variable name="lang-scope"
+                      select="$target/ancestor-or-self::*
+                              [@lang or @xml:lang][1]"/>
+        <xsl:variable name="lang-attr"
+                      select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
+        <xsl:choose>
+          <xsl:when test="string($lang-attr) = ''">
+            <xsl:value-of select="$l10n.gentext.default.language"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$lang-attr"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <!-- can't do this one step: attributes are unordered! -->
+        <xsl:variable name="lang-scope"
+                      select="$target/ancestor-or-self::*
+                              [@lang or @xml:lang][1]"/>
+        <xsl:variable name="lang-attr"
+                      select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
+
+        <xsl:choose>
+          <xsl:when test="string($lang-attr) = ''">
+            <xsl:value-of select="$l10n.gentext.default.language"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$lang-attr"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="language" select="translate($mc-language,
+                                        'ABCDEFGHIJKLMNOPQRSTUVWXYZ-',
+                                        'abcdefghijklmnopqrstuvwxyz_')"/>
+
+  <xsl:for-each select="$l10n.xml">   <!-- We need to change context in order to get key work -->
+    <xsl:choose>
+      <xsl:when test="key('l10n-lang', $language)">
+        <xsl:value-of select="$language"/>
+      </xsl:when>
+      <!-- try just the lang code without country -->
+      <xsl:when test="key('l10n-lang', substring-before($language,'_'))">
+        <xsl:value-of select="substring-before($language,'_')"/>
+      </xsl:when>
+      <!-- or use the default -->
+      <xsl:otherwise>
+        <xsl:message>
+          <xsl:text>No localization exists for "</xsl:text>
+          <xsl:value-of select="$language"/>
+          <xsl:text>" or "</xsl:text>
+          <xsl:value-of select="substring-before($language,'_')"/>
+          <xsl:text>". Using default "</xsl:text>
+          <xsl:value-of select="$l10n.gentext.default.language"/>
+          <xsl:text>".</xsl:text>
+        </xsl:message>
+        <xsl:value-of select="$l10n.gentext.default.language"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="l10n.language.name">
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:for-each select="$l10n.xml">
+    <xsl:value-of
+	select="document(key('l10n-lang', $lang)/@href)/l:l10n/@english-language-name"/>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="language.attribute">
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="language">
+    <xsl:choose>
+      <xsl:when test="$l10n.gentext.language != ''">
+        <xsl:value-of select="$l10n.gentext.language"/>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <!-- can't do this one step: attributes are unordered! -->
+        <xsl:variable name="lang-scope"
+                      select="$node/ancestor-or-self::*
+                              [@lang or @xml:lang][1]"/>
+        <xsl:variable name="lang-attr"
+                      select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
+
+        <xsl:choose>
+          <xsl:when test="string($lang-attr) = ''">
+            <xsl:value-of select="$l10n.gentext.default.language"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$lang-attr"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="$language != ''">
+    <xsl:attribute name="lang">
+      <xsl:choose>
+        <xsl:when test="$l10n.lang.value.rfc.compliant != 0">
+          <xsl:value-of select="translate($language, '_', '-')"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$language"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+  </xsl:if>
+
+  <!-- FIXME: This is sort of hack, but it was the easiest way to add at least partial support for dir attribute -->
+  <xsl:copy-of select="ancestor-or-self::*[@dir][1]/@dir"/>
+</xsl:template>
+
+<!-- Duplication of language.attribute template to allow for xml:lang attribute
+     creation for XHTML 1.1 and epub target -->
+<xsl:template name="xml.language.attribute">
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="language">
+    <xsl:choose>
+      <xsl:when test="$l10n.gentext.language != ''">
+        <xsl:value-of select="$l10n.gentext.language"/>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <!-- can't do this one step: attributes are unordered! -->
+        <xsl:variable name="lang-scope"
+                      select="$node/ancestor-or-self::*
+                              [@lang or @xml:lang][1]"/>
+        <xsl:variable name="lang-attr"
+                      select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
+
+        <xsl:choose>
+          <xsl:when test="string($lang-attr) = ''">
+            <xsl:value-of select="$l10n.gentext.default.language"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$lang-attr"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="$language != ''">
+    <xsl:attribute name="xml:lang">
+      <xsl:choose>
+        <xsl:when test="$l10n.lang.value.rfc.compliant != 0">
+          <xsl:value-of select="translate($language, '_', '-')"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$language"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+  </xsl:if>
+
+  <!-- FIXME: This is sort of hack, but it was the easiest way to add at least partial support for dir attribute -->
+  <xsl:copy-of select="ancestor-or-self::*[@dir][1]/@dir"/>
+</xsl:template>
+
+<xsl:template name="gentext">
+  <xsl:param name="key" select="local-name(.)"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:for-each select="$l10n.xml">  <!-- We need to switch context in order to make key() work -->
+    <xsl:for-each select="document(key('l10n-lang', $lang)/@href)">
+      <xsl:variable name="local.l10n.gentext"
+		    select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang]/l:gentext[@key=$key])[1]"/>
+
+      <xsl:variable name="l10n.gentext"
+		    select="key('l10n-gentext', $key)[1]"/>
+
+      <xsl:choose>
+	<xsl:when test="$local.l10n.gentext">
+	  <xsl:value-of select="$local.l10n.gentext/@text"/>
+	</xsl:when>
+	<xsl:when test="$l10n.gentext">
+	  <xsl:value-of select="$l10n.gentext/@text"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:message>
+	    <xsl:text>No "</xsl:text>
+	    <xsl:value-of select="$lang"/>
+	    <xsl:text>" localization of "</xsl:text>
+	    <xsl:value-of select="$key"/>
+	    <xsl:text>" exists</xsl:text>
+	    <xsl:choose>
+	      <xsl:when test="$lang = 'en'">
+		 <xsl:text>.</xsl:text>
+	      </xsl:when>
+	      <xsl:otherwise>
+		 <xsl:text>; using "en".</xsl:text>
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </xsl:message>
+	  
+	  <xsl:for-each select="$l10n.xml">  <!-- We need to switch context in order to make key() work -->
+	    <xsl:for-each select="document(key('l10n-lang', 'en')/@href)">
+	      <xsl:value-of select="key('l10n-gentext', $key)[1]/@text"/>
+	    </xsl:for-each>
+	  </xsl:for-each>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="gentext.element.name">
+  <xsl:param name="element.name" select="local-name(.)"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="$element.name"/>
+    <xsl:with-param name="lang" select="$lang"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.space">
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template name="gentext.edited.by">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Editedby'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.by">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'by'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.dingbat">
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:for-each select="$l10n.xml">  <!-- We need to switch context in order to make key() work -->
+    <xsl:for-each select="document(key('l10n-lang', $lang)/@href)">
+      <xsl:variable name="local.l10n.dingbat"
+		    select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang]/l:dingbat[@key=$dingbat])[1]"/>
+
+      <xsl:variable name="l10n.dingbat"
+		    select="key('l10n-dingbat', $dingbat)[1]"/>
+
+      <xsl:choose>
+	<xsl:when test="$local.l10n.dingbat">
+	  <xsl:value-of select="$local.l10n.dingbat/@text"/>
+	</xsl:when>
+	<xsl:when test="$l10n.dingbat">
+	  <xsl:value-of select="$l10n.dingbat/@text"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:message>
+	    <xsl:text>No "</xsl:text>
+	    <xsl:value-of select="$lang"/>
+	    <xsl:text>" localization of dingbat </xsl:text>
+	    <xsl:value-of select="$dingbat"/>
+	    <xsl:text> exists; using "en".</xsl:text>
+	  </xsl:message>
+
+	  <xsl:for-each select="$l10n.xml">  <!-- We need to switch context in order to make key() work -->
+	    <xsl:for-each select="document(key('l10n-lang', 'en')/@href)">  
+	      <xsl:value-of select="key('l10n-dingbat', $dingbat)[1]/@text"/>
+	    </xsl:for-each>
+	  </xsl:for-each>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="gentext.startquote">
+  <xsl:call-template name="gentext.dingbat">
+    <xsl:with-param name="dingbat">startquote</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.endquote">
+  <xsl:call-template name="gentext.dingbat">
+    <xsl:with-param name="dingbat">endquote</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nestedstartquote">
+  <xsl:call-template name="gentext.dingbat">
+    <xsl:with-param name="dingbat">nestedstartquote</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nestedendquote">
+  <xsl:call-template name="gentext.dingbat">
+    <xsl:with-param name="dingbat">nestedendquote</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.prev">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'nav-prev'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.next">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'nav-next'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.home">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'nav-home'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.up">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'nav-up'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="gentext.template">
+  <xsl:param name="context" select="'default'"/>
+  <xsl:param name="name" select="'default'"/>
+  <xsl:param name="origname" select="$name"/>
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="referrer"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$empty.local.l10n.xml">
+      <xsl:for-each select="$l10n.xml">  <!-- We need to switch context in order to make key() work -->
+	<xsl:for-each select="document(key('l10n-lang', $lang)/@href)">
+
+	  <xsl:variable name="localization.node"
+			select="key('l10n-lang', $lang)[1]"/>
+
+	  <xsl:if test="count($localization.node) = 0
+			and $verbose != 0">
+	    <xsl:message>
+	      <xsl:text>No "</xsl:text>
+	      <xsl:value-of select="$lang"/>
+	      <xsl:text>" localization exists.</xsl:text>
+	    </xsl:message>
+	  </xsl:if>
+
+	  <xsl:variable name="context.node"
+			select="key('l10n-context', $context)[1]"/>
+
+	  <xsl:if test="count($context.node) = 0
+			and $verbose != 0">
+	    <xsl:message>
+	      <xsl:text>No context named "</xsl:text>
+	      <xsl:value-of select="$context"/>
+	      <xsl:text>" exists in the "</xsl:text>
+	      <xsl:value-of select="$lang"/>
+	      <xsl:text>" localization.</xsl:text>
+	    </xsl:message>
+	  </xsl:if>
+
+	  <xsl:for-each select="$context.node">
+	    <xsl:variable name="template.node"
+			  select="(key('l10n-template-style', concat($context, '#', $name, '#', $xrefstyle))
+				   |key('l10n-template', concat($context, '#', $name)))[1]"/>
+
+	    <xsl:choose>
+	      <xsl:when test="$template.node/@text">
+		<xsl:value-of select="$template.node/@text"/>
+	      </xsl:when>
+	      <xsl:otherwise>
+		<xsl:choose>
+		  <xsl:when test="contains($name, '/')">
+		    <xsl:call-template name="gentext.template">
+		      <xsl:with-param name="context" select="$context"/>
+		      <xsl:with-param name="name" select="substring-after($name, '/')"/>
+		      <xsl:with-param name="origname" select="$origname"/>
+		      <xsl:with-param name="purpose" select="$purpose"/>
+		      <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+		      <xsl:with-param name="referrer" select="$referrer"/>
+		      <xsl:with-param name="lang" select="$lang"/>
+		      <xsl:with-param name="verbose" select="$verbose"/>
+		    </xsl:call-template>
+		  </xsl:when>
+		  <xsl:when test="$verbose = 0">
+		    <!-- silence -->
+		  </xsl:when>
+		  <xsl:otherwise>
+		    <xsl:message>
+		      <xsl:text>No template for "</xsl:text>
+		      <xsl:value-of select="$origname"/>
+		      <xsl:text>" (or any of its leaves) exists in the context named "</xsl:text>
+		      <xsl:value-of select="$context"/>
+		      <xsl:text>" in the "</xsl:text>
+		      <xsl:value-of select="$lang"/>
+		      <xsl:text>" localization.</xsl:text>
+		    </xsl:message>
+		  </xsl:otherwise>
+		</xsl:choose>
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </xsl:for-each>
+	</xsl:for-each>
+      </xsl:for-each>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:for-each select="$l10n.xml">  <!-- We need to switch context in order to make key() work -->
+	<xsl:for-each select="document(key('l10n-lang', $lang)/@href)">
+
+	  <xsl:variable name="local.localization.node"
+			select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang])[1]"/>
+
+	  <xsl:variable name="localization.node"
+			select="key('l10n-lang', $lang)[1]"/>
+
+	  <xsl:if test="count($localization.node) = 0
+			and count($local.localization.node) = 0
+			and $verbose != 0">
+	    <xsl:message>
+	      <xsl:text>No "</xsl:text>
+	      <xsl:value-of select="$lang"/>
+	      <xsl:text>" localization exists.</xsl:text>
+	    </xsl:message>
+	  </xsl:if>
+
+	  <xsl:variable name="local.context.node"
+			select="$local.localization.node/l:context[@name=$context]"/>
+
+	  <xsl:variable name="context.node"
+			select="key('l10n-context', $context)[1]"/>
+
+	  <xsl:if test="count($context.node) = 0
+			and count($local.context.node) = 0
+			and $verbose != 0">
+	    <xsl:message>
+	      <xsl:text>No context named "</xsl:text>
+	      <xsl:value-of select="$context"/>
+	      <xsl:text>" exists in the "</xsl:text>
+	      <xsl:value-of select="$lang"/>
+	      <xsl:text>" localization.</xsl:text>
+	    </xsl:message>
+	  </xsl:if>
+
+	  <xsl:variable name="local.template.node"
+			select="($local.context.node/l:template[@name=$name
+								and @style
+								and @style=$xrefstyle]
+				|$local.context.node/l:template[@name=$name
+								and not(@style)])[1]"/>
+
+	  <xsl:for-each select="$context.node">
+	    <xsl:variable name="template.node"
+			  select="(key('l10n-template-style', concat($context, '#', $name, '#', $xrefstyle))
+				   |key('l10n-template', concat($context, '#', $name)))[1]"/>
+
+	    <xsl:choose>
+	      <xsl:when test="$local.template.node/@text">
+		<xsl:value-of select="$local.template.node/@text"/>
+	      </xsl:when>
+	      <xsl:when test="$template.node/@text">
+		<xsl:value-of select="$template.node/@text"/>
+	      </xsl:when>
+	      <xsl:otherwise>
+		<xsl:choose>
+		  <xsl:when test="contains($name, '/')">
+		    <xsl:call-template name="gentext.template">
+		      <xsl:with-param name="context" select="$context"/>
+		      <xsl:with-param name="name" select="substring-after($name, '/')"/>
+		      <xsl:with-param name="origname" select="$origname"/>
+		      <xsl:with-param name="purpose" select="$purpose"/>
+		      <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+		      <xsl:with-param name="referrer" select="$referrer"/>
+		      <xsl:with-param name="lang" select="$lang"/>
+		      <xsl:with-param name="verbose" select="$verbose"/>
+		    </xsl:call-template>
+		  </xsl:when>
+		  <xsl:when test="$verbose = 0">
+		    <!-- silence -->
+		  </xsl:when>
+		  <xsl:otherwise>
+		    <xsl:message>
+		      <xsl:text>No template for "</xsl:text>
+		      <xsl:value-of select="$origname"/>
+		      <xsl:text>" (or any of its leaves) exists in the context named "</xsl:text>
+		      <xsl:value-of select="$context"/>
+		      <xsl:text>" in the "</xsl:text>
+		      <xsl:value-of select="$lang"/>
+		      <xsl:text>" localization.</xsl:text>
+		    </xsl:message>
+		  </xsl:otherwise>
+		</xsl:choose>
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </xsl:for-each>
+	</xsl:for-each>
+      </xsl:for-each>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- silently test if a gentext template exists -->
+
+<xsl:template name="gentext.template.exists">
+  <xsl:param name="context" select="'default'"/>
+  <xsl:param name="name" select="'default'"/>
+  <xsl:param name="origname" select="$name"/>
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="referrer"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:variable name="template">
+    <xsl:call-template name="gentext.template">
+      <xsl:with-param name="context" select="$context"/>
+      <xsl:with-param name="name" select="$name"/>
+      <xsl:with-param name="origname" select="$origname"/>
+      <xsl:with-param name="purpose" select="$purpose"/>
+      <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+      <xsl:with-param name="referrer" select="$referrer"/>
+      <xsl:with-param name="lang" select="$lang"/>
+      <xsl:with-param name="verbose" select="0"/>
+    </xsl:call-template>
+  </xsl:variable>
+  
+  <xsl:choose>
+    <xsl:when test="string-length($template) != 0">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/applications/content/template/docbook/common/la.xml b/applications/content/template/docbook/common/la.xml
new file mode 100644
index 0000000..f6554b5
--- /dev/null
+++ b/applications/content/template/docbook/common/la.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="la" english-language-name="Latin">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/la.xml -->
+<!-- * -->
+<!-- * E-mail the edited la.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Summarium"/>
+<l:gentext key="abstract" text="summarium"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="r:"/>
+<l:gentext key="Appendix" text="Additamentum"/>
+<l:gentext key="appendix" text="additamentum"/>
+<l:gentext key="Article" text="Articulus"/>
+<l:gentext key="article" text="articulus"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Conspectus librorum"/>
+<l:gentext key="bibliography" text="conspectus librorum"/>
+<l:gentext key="Book" text="Liber"/>
+<l:gentext key="book" text="liber"/>
+<l:gentext key="CAUTION" text="Caveat"/>
+<l:gentext key="Caution" text="Caveat"/>
+<l:gentext key="caution" text="caveat"/>
+<l:gentext key="Chapter" text="Capitulum"/>
+<l:gentext key="chapter" text="capitulum"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="colophon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="copyright"/>
+<l:gentext key="Dedication" text="Dedicatoria"/>
+<l:gentext key="dedication" text="dedicatoria"/>
+<l:gentext key="Edition" text="Editio"/>
+<l:gentext key="edition" text="editio"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Equatio"/>
+<l:gentext key="equation" text="equatio"/>
+<l:gentext key="Example" text="Exemplum"/>
+<l:gentext key="example" text="exemplum"/>
+<l:gentext key="Figure" text="Descriptio"/>
+<l:gentext key="figure" text="descriptio"/>
+<l:gentext key="Glossary" text="Glossarium"/>
+<l:gentext key="glossary" text="glossarium"/>
+<l:gentext key="GlossSee" text="Cfr."/>
+<l:gentext key="glosssee" text="Cfr."/>
+<l:gentext key="GlossSeeAlso" text="Cfr. autem"/>
+<l:gentext key="glossseealso" text="cfr. autem"/>
+<l:gentext key="IMPORTANT" text="GRAVE"/>
+<l:gentext key="important" text="grave"/>
+<l:gentext key="Important" text="Grave"/>
+<l:gentext key="Index" text="Index"/>
+<l:gentext key="index" text="index"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="isbn"/>
+<l:gentext key="LegalNotice" text="Nuntius legalis"/>
+<l:gentext key="legalnotice" text="nuntius legalis"/>
+<l:gentext key="MsgAud" text="Legentes"/>
+<l:gentext key="msgaud" text="legentes"/>
+<l:gentext key="MsgLevel" text="Libra"/>
+<l:gentext key="msglevel" text="libra"/>
+<l:gentext key="MsgOrig" text="Fons"/>
+<l:gentext key="msgorig" text="fons"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="nota"/>
+<l:gentext key="Part" text="Pars"/>
+<l:gentext key="part" text="pars"/>
+<l:gentext key="Preface" text="Praefatio"/>
+<l:gentext key="preface" text="praefatio"/>
+<l:gentext key="Procedure" text="Progressio"/>
+<l:gentext key="procedure" text="progressio"/>
+<l:gentext key="ProductionSet" text="Compositio"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Editum"/>
+<l:gentext key="published" text="editum"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Q &amp; R"/>
+<l:gentext key="qandadiv" text="Q &amp; R"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Q:"/>
+<l:gentext key="question" text="q:"/>
+<l:gentext key="RefEntry" text="Mentionis descriptio"/>
+<l:gentext key="refentry" text="mentionis descriptio"/>
+<l:gentext key="Reference" text="Mentio"/>
+<l:gentext key="reference" text="mentio"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Mentionis signum"/>
+<l:gentext key="refname" text="mentionis signum"/>
+<l:gentext key="RefSection" text="Mentionis pars"/>
+<l:gentext key="refsection" text="mentionis pars"/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="Synopsis"/>
+<l:gentext key="RevHistory" text="Revisionum historia"/>
+<l:gentext key="revhistory" text="revisionum historia"/>
+<l:gentext key="revision" text="Revisio"/>
+<l:gentext key="Revision" text="revisio"/>
+<l:gentext key="sect1" text="Sectio"/>
+<l:gentext key="sect2" text="Sectio"/>
+<l:gentext key="sect3" text="Sectio"/>
+<l:gentext key="sect4" text="Sectio"/>
+<l:gentext key="sect5" text="Sectio"/>
+<l:gentext key="section" text="Sectio"/>
+<l:gentext key="Section" text="Sectio"/>
+<l:gentext key="see" text="videtur"/>
+<l:gentext key="See" text="See" lang="en"/>
+<l:gentext key="seealso" text="videtur autem"/>
+<l:gentext key="Seealso" text="See also" lang="en"/>
+<l:gentext key="SeeAlso" text="See Also" lang="en"/>
+<l:gentext key="set" text="complexus"/>
+<l:gentext key="Set" text="Complexus"/>
+<l:gentext key="setindex" text="complexi index"/>
+<l:gentext key="SetIndex" text="Complexi index"/>
+<l:gentext key="Sidebar" text="Linea a latere posita"/>
+<l:gentext key="sidebar" text="linea a latere posita"/>
+<l:gentext key="step" text="peractio"/>
+<l:gentext key="Step" text="Peractio"/>
+<l:gentext key="table" text="tabula"/>
+<l:gentext key="Table" text="Tabula"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="consilium"/>
+<l:gentext key="TIP" text="CONSILIUM"/>
+<l:gentext key="Tip" text="Consilium"/>
+<l:gentext key="Warning" text="MONITUS"/>
+<l:gentext key="warning" text="monitus"/>
+<l:gentext key="WARNING" text="MONITUS"/>
+<l:gentext key="and" text="et"/>
+<l:gentext key="or" text="aut"/>
+<l:gentext key="by" text="a"/>
+<l:gentext key="Edited" text="Editum"/>
+<l:gentext key="edited" text="editum"/>
+<l:gentext key="Editedby" text="Editum a"/>
+<l:gentext key="editedby" text="editum a"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="commentaria"/>
+<l:gentext key="Notes" text="Commentaria"/>
+<l:gentext key="Pgs" text="Pag."/>
+<l:gentext key="pgs" text="pag."/>
+<l:gentext key="Revisedby" text="Excussum a: "/>
+<l:gentext key="revisedby" text="excussum a: "/>
+<l:gentext key="TableNotes" text="Tabulae commentaria"/>
+<l:gentext key="tablenotes" text="tabulae commentaria"/>
+<l:gentext key="TableofContents" text="Index rerum notabilium"/>
+<l:gentext key="tableofcontents" text="index rerum notabilium"/>
+<l:gentext key="unexpectedelementname" text="necopinatum nomen"/>
+<l:gentext key="unsupported" text="non sustentatus"/>
+<l:gentext key="xrefto" text="mentio"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="index aequationum"/>
+<l:gentext key="ListofEquations" text="Index aequationum"/>
+<l:gentext key="ListofExamples" text="Index exemplorum"/>
+<l:gentext key="listofexamples" text="index exemplorum"/>
+<l:gentext key="ListofFigures" text="Index descriptionum"/>
+<l:gentext key="listoffigures" text="index descriptionum"/>
+<l:gentext key="ListofProcedures" text="Index progressiorum"/>
+<l:gentext key="listofprocedures" text="index progressiorum"/>
+<l:gentext key="listoftables" text="index tabularum"/>
+<l:gentext key="ListofTables" text="Index tabularum"/>
+<l:gentext key="ListofUnknown" text="Index ignotorum"/>
+<l:gentext key="listofunknown" text="index ignotorum"/>
+<l:gentext key="nav-home" text="Initium"/>
+<l:gentext key="nav-next" text="Sequens"/>
+<l:gentext key="nav-next-sibling" text="Procede"/>
+<l:gentext key="nav-prev" text="Praecedens"/>
+<l:gentext key="nav-prev-sibling" text="Recede"/>
+<l:gentext key="nav-up" text="Ascende"/>
+<l:gentext key="nav-toc" text="Index"/>
+<l:gentext key="Draft" text="Plagula"/>
+<l:gentext key="above" text="supra"/>
+<l:gentext key="below" text="sub"/>
+<l:gentext key="sectioncalled" text="sectio vocata"/>
+<l:gentext key="index symbols" text="signa"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="ˢ"/>
+<l:dingbat key="endquote" text="ۢ"/>
+<l:dingbat key="nestedstartquote" text="‹"/>
+<l:dingbat key="nestedendquote" text="›"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="‐"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Additamentum%n.%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capitulum%n.%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equatio%n.%t"/>
+<l:template name="example" text="Exemplum%n.%t"/>
+<l:template name="figure" text="Descriptio%n.%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Pars%n.%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Progressio%n.%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Compositio%n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabula%n.%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Additamentum%n.%t"/>
+<l:template name="article/appendix" text="%n.%t"/>
+<l:template name="bridgehead" text="%n.%t"/>
+<l:template name="chapter" text="Capitulum%n.%t"/>
+<l:template name="part" text="Pars%n.%t"/>
+<l:template name="sect1" text="%n.%t"/>
+<l:template name="sect2" text="%n.%t"/>
+<l:template name="sect3" text="%n.%t"/>
+<l:template name="sect4" text="%n.%t"/>
+<l:template name="sect5" text="%n.%t"/>
+<l:template name="section" text="%n.%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="R:%n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q:%n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q:%n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsection" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsect1" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsect2" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsect3" text="sectio vocata ˢ%tۢ"/>
+<l:template name="sect1" text="sectio vocata ˢ%tۢ"/>
+<l:template name="sect2" text="sectio vocata ˢ%tۢ"/>
+<l:template name="sect3" text="sectio vocata ˢ%tۢ"/>
+<l:template name="sect4" text="sectio vocata ˢ%tۢ"/>
+<l:template name="sect5" text="sectio vocata ˢ%tۢ"/>
+<l:template name="section" text="sectio vocata ˢ%tۢ"/>
+<l:template name="simplesect" text="sectio vocata ˢ%tۢ"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R:%n"/>
+<l:template name="appendix" text="Additamentum%n"/>
+<l:template name="bridgehead" text="Sectio%n"/>
+<l:template name="chapter" text="Capitulum%n"/>
+<l:template name="equation" text="Equatio%n"/>
+<l:template name="example" text="Exemplum%n"/>
+<l:template name="figure" text="Descriptio%n"/>
+<l:template name="part" text="Pars%n"/>
+<l:template name="procedure" text="Progressio%n"/>
+<l:template name="productionset" text="Compositio%n"/>
+<l:template name="qandadiv" text="Q &amp; R%n"/>
+<l:template name="qandaentry" text="Q:%n"/>
+<l:template name="question" text="Q:%n"/>
+<l:template name="sect1" text="Sectio%n"/>
+<l:template name="sect2" text="Sectio%n"/>
+<l:template name="sect3" text="Sectio%n"/>
+<l:template name="sect4" text="Sectio%n"/>
+<l:template name="sect5" text="Sectio%n"/>
+<l:template name="section" text="Sectio%n"/>
+<l:template name="table" text="Tabula%n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Additamentum%n, %t"/>
+<l:template name="bridgehead" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="chapter" text="Capitulum%n, %t"/>
+<l:template name="equation" text="Equatio%n, ˢ%tۢ"/>
+<l:template name="example" text="Exemplum%n, ˢ%tۢ"/>
+<l:template name="figure" text="Descriptio%n, ˢ%tۢ"/>
+<l:template name="part" text="Pars%n, ˢ%tۢ"/>
+<l:template name="procedure" text="Progressio%n, ˢ%tۢ"/>
+<l:template name="productionset" text="Compositio%n, ˢ%tۢ"/>
+<l:template name="qandadiv" text="Q &amp; R%n, ˢ%tۢ"/>
+<l:template name="refsect1" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsect2" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsect3" text="sectio vocata ˢ%tۢ"/>
+<l:template name="refsection" text="sectio vocata ˢ%tۢ"/>
+<l:template name="sect1" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="sect2" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="sect3" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="sect4" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="sect5" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="section" text="Sectio%n, ˢ%tۢ"/>
+<l:template name="simplesect" text="sectio vocata ˢ%tۢ"/>
+<l:template name="table" text="Tabula%n, ˢ%tۢ"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" et "/>
+<l:template name="seplast" text=", et "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Cfr. %t."/>
+<l:template name="seealso" text="Cfr. autem %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Legentes: "/>
+<l:template name="MsgLevel" text="Libra: "/>
+<l:template name="MsgOrig" text="Fons: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Ianuarii"/>
+<l:template name="February" text="Februarii"/>
+<l:template name="March" text="Martii"/>
+<l:template name="April" text="Aprilis"/>
+<l:template name="May" text="Maii"/>
+<l:template name="June" text="Iunii"/>
+<l:template name="July" text="Iulii"/>
+<l:template name="August" text="Augusti"/>
+<l:template name="September" text="Septembris"/>
+<l:template name="October" text="Octobris"/>
+<l:template name="November" text="Novembris"/>
+<l:template name="December" text="Decembris"/>
+<l:template name="Monday" text="Lunae"/>
+<l:template name="Tuesday" text="Martis"/>
+<l:template name="Wednesday" text="Mercurii"/>
+<l:template name="Thursday" text="Iovis"/>
+<l:template name="Friday" text="Veneris"/>
+<l:template name="Saturday" text="Sabathi"/>
+<l:template name="Sunday" text="Dominica"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Ian"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Mai"/>
+<l:template name="Jun" text="Iun"/>
+<l:template name="Jul" text="Iul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Oct"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Lun"/>
+<l:template name="Tue" text="Mar"/>
+<l:template name="Wed" text="Mer"/>
+<l:template name="Thu" text="Iov"/>
+<l:template name="Fri" text="Ven"/>
+<l:template name="Sat" text="Sab"/>
+<l:template name="Sun" text="Dom"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 English (UNITED STATES)" lang="en"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/labels.xsl b/applications/content/template/docbook/common/labels.xsl
new file mode 100644
index 0000000..d7b688a
--- /dev/null
+++ b/applications/content/template/docbook/common/labels.xsl
@@ -0,0 +1,903 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- label markup -->
+
+<doc:mode mode="label.markup" xmlns="">
+<refpurpose>Provides access to element labels</refpurpose>
+<refdescription id="label.markup-desc">
+<para>Processing an element in the
+<literal role="mode">label.markup</literal> mode produces the
+element label.</para>
+<para>Trailing punctuation is not added to the label.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="intralabel.punctuation">
+  <xsl:text>.</xsl:text>
+</xsl:template>
+
+<xsl:template match="*" mode="label.markup">
+  <xsl:param name="verbose" select="1"/>
+  <xsl:if test="$verbose">
+    <xsl:message>
+      <xsl:text>Request for label of unexpected element: </xsl:text>
+      <xsl:value-of select="local-name(.)"/>
+    </xsl:message>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="set|book" mode="label.markup">
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="part" mode="label.markup">
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="string($part.autolabel) != 0">
+      <xsl:variable name="format">
+        <xsl:call-template name="autolabel.format">
+          <xsl:with-param name="format" select="$part.autolabel"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:number from="book" count="part" format="{$format}"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="partintro" mode="label.markup">
+  <!-- no label -->
+</xsl:template>
+
+<xsl:template match="preface" mode="label.markup">
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="string($preface.autolabel) != 0">
+      <xsl:if test="$component.label.includes.part.label != 0 and
+                      ancestor::part">
+        <xsl:variable name="part.label">
+          <xsl:apply-templates select="ancestor::part" 
+                               mode="label.markup"/>
+        </xsl:variable>
+        <xsl:if test="$part.label != ''">
+          <xsl:value-of select="$part.label"/>
+          <xsl:apply-templates select="ancestor::part" 
+                               mode="intralabel.punctuation"/>
+        </xsl:if>
+      </xsl:if>
+      <xsl:variable name="format">
+        <xsl:call-template name="autolabel.format">
+          <xsl:with-param name="format" select="$preface.autolabel"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="$label.from.part != 0 and ancestor::part">
+          <xsl:number from="part" count="preface" format="{$format}" level="any"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number from="book" count="preface" format="{$format}" level="any"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="chapter" mode="label.markup">
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="string($chapter.autolabel) != 0">
+      <xsl:if test="$component.label.includes.part.label != 0 and
+                      ancestor::part">
+        <xsl:variable name="part.label">
+          <xsl:apply-templates select="ancestor::part" 
+                               mode="label.markup"/>
+        </xsl:variable>
+        <xsl:if test="$part.label != ''">
+          <xsl:value-of select="$part.label"/>
+          <xsl:apply-templates select="ancestor::part" 
+                               mode="intralabel.punctuation"/>
+        </xsl:if>
+      </xsl:if>
+      <xsl:variable name="format">
+        <xsl:call-template name="autolabel.format">
+          <xsl:with-param name="format" select="$chapter.autolabel"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="$label.from.part != 0 and ancestor::part">
+          <xsl:number from="part" count="chapter" format="{$format}" level="any"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number from="book" count="chapter" format="{$format}" level="any"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="appendix" mode="label.markup">
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="string($appendix.autolabel) != 0">
+      <xsl:if test="$component.label.includes.part.label != 0 and
+                      ancestor::part">
+        <xsl:variable name="part.label">
+          <xsl:apply-templates select="ancestor::part" 
+                               mode="label.markup"/>
+        </xsl:variable>
+        <xsl:if test="$part.label != ''">
+          <xsl:value-of select="$part.label"/>
+          <xsl:apply-templates select="ancestor::part" 
+                               mode="intralabel.punctuation"/>
+        </xsl:if>
+      </xsl:if>
+      <xsl:variable name="format">
+        <xsl:call-template name="autolabel.format">
+          <xsl:with-param name="format" select="$appendix.autolabel"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="$label.from.part != 0 and ancestor::part">
+          <xsl:number from="part" count="appendix" format="{$format}" level="any"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number from="book|article"
+                      count="appendix" format="{$format}" level="any"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="label.markup">
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="label.markup">
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="reference" mode="label.markup">
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="string($reference.autolabel) != 0">
+      <xsl:if test="$component.label.includes.part.label != 0 and
+                      ancestor::part">
+        <xsl:variable name="part.label">
+          <xsl:apply-templates select="ancestor::part" 
+                               mode="label.markup"/>
+        </xsl:variable>
+        <xsl:if test="$part.label != ''">
+          <xsl:value-of select="$part.label"/>
+          <xsl:apply-templates select="ancestor::part" 
+                               mode="intralabel.punctuation"/>
+        </xsl:if>
+      </xsl:if>
+      <xsl:variable name="format">
+        <xsl:call-template name="autolabel.format">
+          <xsl:with-param name="format" select="$reference.autolabel"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="$label.from.part != 0 and ancestor::part">
+          <xsl:number from="part" count="reference" format="{$format}" level="any"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number from="book" count="reference" format="{$format}" level="any"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refentry" mode="label.markup">
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="section" mode="label.markup">
+  <!-- if this is a nested section, label the parent -->
+  <xsl:if test="local-name(..) = 'section'">
+    <xsl:variable name="parent.section.label">
+      <xsl:call-template name="label.this.section">
+        <xsl:with-param name="section" select=".."/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:if test="$parent.section.label != '0'">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+      <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+    </xsl:if>
+  </xsl:if>
+
+  <!-- if the parent is a component, maybe label that too -->
+  <xsl:variable name="parent.is.component">
+    <xsl:call-template name="is.component">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- does this section get labelled? -->
+  <xsl:variable name="label">
+    <xsl:call-template name="label.this.section">
+      <xsl:with-param name="section" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$section.label.includes.component.label != 0
+                and $parent.is.component != 0">
+    <xsl:variable name="parent.label">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:if test="$parent.label != ''">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+      <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+    </xsl:if>
+  </xsl:if>
+
+<!--
+  <xsl:message>
+    test: <xsl:value-of select="$label"/>, <xsl:number count="section"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$label != 0">      
+      <xsl:variable name="format">
+        <xsl:call-template name="autolabel.format">
+          <xsl:with-param name="format" select="$section.autolabel"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:number format="{$format}" count="section"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1" mode="label.markup">
+  <!-- if the parent is a component, maybe label that too -->
+  <xsl:variable name="parent.is.component">
+    <xsl:call-template name="is.component">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="component.label">
+    <xsl:if test="$section.label.includes.component.label != 0
+                  and $parent.is.component != 0">
+      <xsl:variable name="parent.label">
+        <xsl:apply-templates select=".." mode="label.markup"/>
+      </xsl:variable>
+      <xsl:if test="$parent.label != ''">
+        <xsl:apply-templates select=".." mode="label.markup"/>
+        <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+      </xsl:if>
+    </xsl:if>
+  </xsl:variable>
+
+
+  <xsl:variable name="is.numbered">
+    <xsl:call-template name="label.this.section"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$is.numbered != 0">
+      <xsl:variable name="format">
+        <xsl:call-template name="autolabel.format">
+          <xsl:with-param name="format" select="$section.autolabel"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:copy-of select="$component.label"/>
+      <xsl:number format="{$format}" count="sect1"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect2|sect3|sect4|sect5" mode="label.markup">
+  <!-- label the parent -->
+  <xsl:variable name="parent.section.label">
+    <xsl:call-template name="label.this.section">
+      <xsl:with-param name="section" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:if test="$parent.section.label != '0'">
+    <xsl:apply-templates select=".." mode="label.markup"/>
+    <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+  </xsl:if>
+
+  <xsl:variable name="is.numbered">
+    <xsl:call-template name="label.this.section"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$is.numbered != 0">
+      <xsl:variable name="format">
+        <xsl:call-template name="autolabel.format">
+          <xsl:with-param name="format" select="$section.autolabel"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="local-name(.) = 'sect2'">
+          <xsl:number format="{$format}" count="sect2"/>
+        </xsl:when>
+        <xsl:when test="local-name(.) = 'sect3'">
+          <xsl:number format="{$format}" count="sect3"/>
+        </xsl:when>
+        <xsl:when test="local-name(.) = 'sect4'">
+          <xsl:number format="{$format}" count="sect4"/>
+        </xsl:when>
+        <xsl:when test="local-name(.) = 'sect5'">
+          <xsl:number format="{$format}" count="sect5"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>label.markup: this can't happen!</xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="label.markup">
+  <!-- FIXME: could we do a better job here? -->
+  <xsl:variable name="contsec"
+                select="(ancestor::section
+                         |ancestor::simplesect
+                         |ancestor::topic
+                         |ancestor::sect1
+                         |ancestor::sect2
+                         |ancestor::sect3
+                         |ancestor::sect4
+                         |ancestor::sect5
+                         |ancestor::refsect1
+                         |ancestor::refsect2
+                         |ancestor::refsect3
+                         |ancestor::chapter
+                         |ancestor::appendix
+                         |ancestor::preface)[last()]"/>
+
+  <xsl:apply-templates select="$contsec" mode="label.markup"/>
+</xsl:template>
+
+<xsl:template match="refsect1" mode="label.markup">
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$section.autolabel != 0">
+      <xsl:variable name="format">
+        <xsl:call-template name="autolabel.format">
+          <xsl:with-param name="format" select="$section.autolabel"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:number count="refsect1" format="{$format}"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refsect2|refsect3" mode="label.markup">
+  <!-- label the parent -->
+  <xsl:variable name="parent.label">
+    <xsl:apply-templates select=".." mode="label.markup"/>
+  </xsl:variable>
+  <xsl:if test="$parent.label != ''">
+    <xsl:apply-templates select=".." mode="label.markup"/>
+    <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$section.autolabel != 0">
+      <xsl:variable name="format">
+        <xsl:call-template name="autolabel.format">
+          <xsl:with-param name="format" select="$section.autolabel"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="local-name(.) = 'refsect2'">
+          <xsl:number count="refsect2" format="{$format}"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number count="refsect3" format="{$format}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="simplesect" mode="label.markup">
+  <!-- if this is a nested section, label the parent -->
+  <xsl:if test="local-name(..) = 'section'
+                or local-name(..) = 'sect1'
+                or local-name(..) = 'sect2'
+                or local-name(..) = 'sect3'
+                or local-name(..) = 'sect4'
+                or local-name(..) = 'sect5'">
+    <xsl:variable name="parent.section.label">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:if test="$parent.section.label != ''">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+      <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+    </xsl:if>
+  </xsl:if>
+
+  <!-- if the parent is a component, maybe label that too -->
+  <xsl:variable name="parent.is.component">
+    <xsl:call-template name="is.component">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- does this section get labelled? -->
+  <xsl:variable name="label">
+    <xsl:call-template name="label.this.section">
+      <xsl:with-param name="section" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$section.label.includes.component.label != 0
+                and $parent.is.component != 0">
+    <xsl:variable name="parent.label">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:if test="$parent.label != ''">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+      <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$label != 0">
+      <xsl:variable name="format">
+        <xsl:call-template name="autolabel.format">
+          <xsl:with-param name="format" select="$section.autolabel"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:number format="{$format}" count="simplesect"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="topic" mode="label.markup">
+  <!-- topics are not numbered by default -->
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="label.markup">
+  <xsl:variable name="lparent" select="(ancestor::set
+                                       |ancestor::book
+                                       |ancestor::chapter
+                                       |ancestor::appendix
+                                       |ancestor::preface
+                                       |ancestor::section
+                                       |ancestor::simplesect
+                                       |ancestor::sect1
+                                       |ancestor::sect2
+                                       |ancestor::sect3
+                                       |ancestor::sect4
+                                       |ancestor::sect5
+                                       |ancestor::refsect1
+                                       |ancestor::refsect2
+                                       |ancestor::refsect3)[last()]"/>
+
+  <xsl:variable name="lparent.prefix">
+    <xsl:apply-templates select="$lparent" mode="label.markup"/>
+  </xsl:variable>
+
+  <xsl:variable name="prefix">
+    <xsl:if test="$qanda.inherit.numeration != 0">
+      <xsl:if test="$lparent.prefix != ''">
+        <xsl:apply-templates select="$lparent" mode="label.markup"/>
+        <xsl:apply-templates select="$lparent" mode="intralabel.punctuation"/>
+      </xsl:if>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$qandadiv.autolabel != 0">
+      <xsl:variable name="format">
+        <xsl:call-template name="autolabel.format">
+          <xsl:with-param name="format" select="$qandadiv.autolabel"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$prefix"/>
+      <xsl:number level="multiple" count="qandadiv" format="{$format}"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question|answer" mode="label.markup">
+  <xsl:variable name="lparent" select="(ancestor::set
+                                       |ancestor::book
+                                       |ancestor::chapter
+                                       |ancestor::appendix
+                                       |ancestor::preface
+                                       |ancestor::section
+                                       |ancestor::simplesect
+                                       |ancestor::sect1
+                                       |ancestor::sect2
+                                       |ancestor::sect3
+                                       |ancestor::sect4
+                                       |ancestor::sect5
+                                       |ancestor::refsect1
+                                       |ancestor::refsect2
+                                       |ancestor::refsect3)[last()]"/>
+
+  <xsl:variable name="lparent.prefix">
+    <xsl:apply-templates select="$lparent" mode="label.markup"/>
+  </xsl:variable>
+
+  <xsl:variable name="prefix">
+    <xsl:if test="$qanda.inherit.numeration != 0">
+      <xsl:choose>
+        <xsl:when test="ancestor::qandadiv">
+          <xsl:variable name="div.label">
+            <xsl:apply-templates select="ancestor::qandadiv[1]" mode="label.markup"/>
+          </xsl:variable>
+          <xsl:if test="string-length($div.label) != 0">
+            <xsl:copy-of select="$div.label"/>
+            <xsl:apply-templates select="ancestor::qandadiv[1]"
+                                 mode="intralabel.punctuation"/>
+          </xsl:if>
+        </xsl:when>
+        <xsl:when test="$lparent.prefix != ''">
+          <xsl:apply-templates select="$lparent" mode="label.markup"/>
+          <xsl:apply-templates select="$lparent" mode="intralabel.punctuation"/>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="inhlabel"
+                select="ancestor-or-self::qandaset/@defaultlabel[1]"/>
+
+  <xsl:variable name="deflabel">
+    <xsl:choose>
+      <xsl:when test="$inhlabel != ''">
+        <xsl:value-of select="$inhlabel"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$qanda.defaultlabel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="label" select="label"/>
+
+  <xsl:choose>
+    <xsl:when test="count($label)>0">
+      <xsl:apply-templates select="$label"/>
+    </xsl:when>
+
+    <xsl:when test="$deflabel = 'qanda' and self::question">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Question'"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="$deflabel = 'qanda' and self::answer">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Answer'"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="($deflabel = 'qnumber' or
+                     $deflabel = 'qnumberanda') and self::question">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Question'"/>
+      </xsl:call-template>
+      <xsl:text>&#xA0;</xsl:text>
+      <xsl:value-of select="$prefix"/>
+      <xsl:number level="multiple" count="qandaentry" format="1"/>
+    </xsl:when>
+
+    <xsl:when test="$deflabel = 'qnumberanda' and self::answer">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Answer'"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="$deflabel = 'number' and self::question">
+      <xsl:value-of select="$prefix"/>
+      <xsl:number level="multiple" count="qandaentry" format="1"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary|
+                     qandaset|index|setindex" mode="label.markup">
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="figure|table|example" mode="label.markup">
+  <xsl:variable name="pchap"
+                select="(ancestor::chapter
+                        |ancestor::appendix
+                        |ancestor::article[ancestor::book])[last()]"/>
+
+  <xsl:variable name="prefix">
+    <xsl:if test="count($pchap) &gt; 0">
+      <xsl:apply-templates select="$pchap" mode="label.markup"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$prefix != ''">
+            <xsl:apply-templates select="$pchap" mode="label.markup"/>
+            <xsl:apply-templates select="$pchap" mode="intralabel.punctuation"/>
+          <xsl:number format="1" from="chapter|appendix" level="any"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number format="1" from="book|article" level="any"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="procedure" mode="label.markup">
+  <xsl:variable name="pchap"
+                select="ancestor::chapter
+                        |ancestor::appendix
+                        |ancestor::article[ancestor::book]"/>
+
+  <xsl:variable name="prefix">
+    <xsl:if test="count($pchap) &gt; 0">
+      <xsl:apply-templates select="$pchap" mode="label.markup"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$formal.procedures = 0">
+      <!-- No label -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="count($pchap)>0">
+          <xsl:if test="$prefix != ''">
+            <xsl:apply-templates select="$pchap" mode="label.markup"/>
+            <xsl:apply-templates select="$pchap" mode="intralabel.punctuation"/>
+          </xsl:if>
+          <xsl:number count="procedure[title]" format="1" 
+                      from="chapter|appendix" level="any"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number count="procedure[title]" format="1" 
+                      from="book|article" level="any"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="equation" mode="label.markup">
+  <xsl:variable name="pchap"
+                select="ancestor::chapter
+                        |ancestor::appendix
+                        |ancestor::article[ancestor::book]"/>
+
+  <xsl:variable name="prefix">
+    <xsl:if test="count($pchap) &gt; 0">
+      <xsl:apply-templates select="$pchap" mode="label.markup"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="count($pchap)>0">
+          <xsl:if test="$prefix != ''">
+            <xsl:apply-templates select="$pchap" mode="label.markup"/>
+            <xsl:apply-templates select="$pchap" mode="intralabel.punctuation"/>
+          </xsl:if>
+          <xsl:number format="1" count="equation" 
+                      from="chapter|appendix" level="any"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number format="1" count="equation" 
+                      from="book|article" level="any"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem" mode="label.markup">
+  <xsl:variable name="numeration">
+    <xsl:call-template name="list.numeration">
+      <xsl:with-param name="node" select="parent::orderedlist"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:choose>
+      <xsl:when test="$numeration='arabic'">1</xsl:when>
+      <xsl:when test="$numeration='loweralpha'">a</xsl:when>
+      <xsl:when test="$numeration='lowerroman'">i</xsl:when>
+      <xsl:when test="$numeration='upperalpha'">A</xsl:when>
+      <xsl:when test="$numeration='upperroman'">I</xsl:when>
+      <!-- What!? This should never happen -->
+      <xsl:otherwise>
+        <xsl:message>
+          <xsl:text>Unexpected numeration: </xsl:text>
+          <xsl:value-of select="$numeration"/>
+        </xsl:message>
+        <xsl:value-of select="1."/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="item-number">
+    <xsl:call-template name="orderedlist-item-number"/>
+  </xsl:variable>
+
+  <xsl:number value="$item-number" format="{$type}"/>
+</xsl:template>
+
+<xsl:template match="abstract" mode="label.markup">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="sidebar" mode="label.markup">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="glossdiv|glosslist" mode="label.markup">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="glossentry" mode="label.markup">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="label.this.section">
+  <xsl:param name="section" select="."/>
+
+  <xsl:variable name="level">
+    <xsl:call-template name="section.level"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$level &lt;= $section.autolabel.max.depth">      
+      <xsl:value-of select="$section.autolabel"/>
+    </xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<doc:template name="label.this.section" xmlns="">
+<refpurpose>Returns true if $section should be labelled</refpurpose>
+<refdescription id="label.this.section-desc">
+<para>Returns true if the specified section should be labelled.
+By default, this template returns zero unless 
+the section level is less than or equal to the value of the
+<literal>$section.autolabel.max.depth</literal> parameter, in
+which case it returns
+<literal>$section.autolabel</literal>.
+Custom stylesheets may override it to get more selective behavior.</para>
+</refdescription>
+</doc:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="default.autolabel.format">
+  <xsl:param name="context" select="."/>
+  <xsl:choose>
+    <xsl:when test="local-name($context) = 'appendix'">
+      <xsl:value-of select="'A'"/>
+    </xsl:when>
+    <xsl:when test="local-name($context) = 'part'">
+      <xsl:value-of select="'I'"/>
+    </xsl:when>
+    <xsl:otherwise>1</xsl:otherwise>
+  </xsl:choose>  
+</xsl:template>
+  
+<xsl:template name="autolabel.format">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="format"/>
+
+  <xsl:choose>
+    <xsl:when test="string($format) != 0">
+      <xsl:choose>
+        <xsl:when test="string($format)='arabic' or $format='1'">1</xsl:when>
+        <xsl:when test="$format='loweralpha' or $format='a'">
+          <xsl:value-of select="'a'"/>
+        </xsl:when>
+        <xsl:when test="$format='lowerroman' or $format='i'">
+          <xsl:value-of select="'i'"/>
+        </xsl:when>
+        <xsl:when test="$format='upperalpha' or $format='A'">
+          <xsl:value-of select="'A'"/>
+        </xsl:when>
+        <xsl:when test="$format='upperroman' or $format='I'">
+          <xsl:value-of select="'I'"/>
+        </xsl:when>      
+        <xsl:when test="$format='arabicindic' or $format='&#x661;'">
+          <xsl:value-of select="'&#x661;'"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>Unexpected </xsl:text><xsl:value-of select="local-name(.)"/><xsl:text>.autolabel value: </xsl:text>
+            <xsl:value-of select="$format"/><xsl:text>; using default.</xsl:text>
+          </xsl:message>
+          <xsl:call-template name="default.autolabel.format"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<doc:template name="autolabel.format" xmlns="">
+<refpurpose>Returns format for autolabel parameters</refpurpose>
+<refdescription id="autolabel.format-desc">
+<para>Returns format passed as parameter if non zero. Supported
+  format are 'arabic' or '1', 'loweralpha' or 'a', 'lowerroman' or 'i', 
+  'upperlapha' or 'A', 'upperroman' or 'I', 'arabicindic' or '&#x661;'.
+  If its not one of these then 
+  returns the default format.</para>
+</refdescription>
+</doc:template>
+
+<!-- ============================================================ -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/common/lt.xml b/applications/content/template/docbook/common/lt.xml
new file mode 100644
index 0000000..b90bc61
--- /dev/null
+++ b/applications/content/template/docbook/common/lt.xml
@@ -0,0 +1,696 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="lt" english-language-name="Lithuanian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/lt.xml -->
+<!-- * -->
+<!-- * E-mail the edited lt.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Santrauka"/>
+<l:gentext key="abstract" text="Santrauka"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="Ats:"/>
+<l:gentext key="answer" text="Ats:"/>
+<l:gentext key="Appendix" text="Priedas"/>
+<l:gentext key="appendix" text="Priedas"/>
+<l:gentext key="Article" text="Straipsnis"/>
+<l:gentext key="article" text="Straipsnis"/>
+<l:gentext key="Author" text="Autorius"/>
+<l:gentext key="Bibliography" text="Bibliografija"/>
+<l:gentext key="bibliography" text="Bibliografija"/>
+<l:gentext key="Book" text="Knyga"/>
+<l:gentext key="book" text="Knyga"/>
+<l:gentext key="CAUTION" text="ATSARGIAI"/>
+<l:gentext key="Caution" text="Atsargiai"/>
+<l:gentext key="caution" text="Atsargiai"/>
+<l:gentext key="Chapter" text="Skyrius"/>
+<l:gentext key="chapter" text="Skyrius"/>
+<l:gentext key="Colophon" text="Knygos metrika"/>
+<l:gentext key="colophon" text="Knygos metrika"/>
+<l:gentext key="Copyright" text="Autorinės teisės"/>
+<l:gentext key="copyright" text="Autorinės teisės"/>
+<l:gentext key="Dedication" text="Dedikacija"/>
+<l:gentext key="dedication" text="Dedikacija"/>
+<l:gentext key="Edition" text="Leidimas"/>
+<l:gentext key="edition" text="Leidimas"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Lygtis"/>
+<l:gentext key="equation" text="Lygtis"/>
+<l:gentext key="Example" text="Pavyzdys"/>
+<l:gentext key="example" text="Pavyzdys"/>
+<l:gentext key="Figure" text="Pav."/>
+<l:gentext key="figure" text="Pav."/>
+<l:gentext key="Glossary" text="Terminų žodynas"/>
+<l:gentext key="glossary" text="Terminų žodynas"/>
+<l:gentext key="GlossSee" text="Žr."/>
+<l:gentext key="glosssee" text="Žr."/>
+<l:gentext key="GlossSeeAlso" text="Taip pat žr."/>
+<l:gentext key="glossseealso" text="Taip pat žr."/>
+<l:gentext key="IMPORTANT" text="SVARBU"/>
+<l:gentext key="important" text="Svarbu"/>
+<l:gentext key="Important" text="Svarbu"/>
+<l:gentext key="Index" text="Rodyklė"/>
+<l:gentext key="index" text="Rodyklė"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Teisinė pastaba"/>
+<l:gentext key="legalnotice" text="Teisinė pastaba"/>
+<l:gentext key="MsgAud" text="Auditorija"/>
+<l:gentext key="msgaud" text="Auditorija"/>
+<l:gentext key="MsgLevel" text="Lygmuo"/>
+<l:gentext key="msglevel" text="Lygmuo"/>
+<l:gentext key="MsgOrig" text="Kilmė"/>
+<l:gentext key="msgorig" text="Kilmė"/>
+<l:gentext key="NOTE" text="PASTABA"/>
+<l:gentext key="Note" text="Pastaba"/>
+<l:gentext key="note" text="Pastaba"/>
+<l:gentext key="Part" text="Dalis"/>
+<l:gentext key="part" text="Dalis"/>
+<l:gentext key="Preface" text="Įvadas"/>
+<l:gentext key="preface" text="Įvadas"/>
+<l:gentext key="Procedure" text="Procedūra"/>
+<l:gentext key="procedure" text="Procedūra"/>
+<l:gentext key="ProductionSet" text="Produkcija"/>
+<l:gentext key="PubDate" text="Išleidimo data"/>
+<l:gentext key="pubdate" text="Išleidimo data"/>
+<l:gentext key="Published" text="Išleistas"/>
+<l:gentext key="published" text="Išleistas"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Klaus. ir Ats."/>
+<l:gentext key="qandadiv" text="Klaus. ir Ats."/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Klaus.:"/>
+<l:gentext key="question" text="Klaus.:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Nuoroda"/>
+<l:gentext key="reference" text="Nuoroda"/>
+<l:gentext key="References" text="Nuorodos"/>
+<l:gentext key="RefName" text="Pavadinimas"/>
+<l:gentext key="refname" text="Pavadinimas"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Trumpa apžvalga"/>
+<l:gentext key="refsynopsisdiv" text="Trumpa apžvalga"/>
+<l:gentext key="RevHistory" text="Pataisymų istorija"/>
+<l:gentext key="revhistory" text="Pataisymų istorija"/>
+<l:gentext key="revision" text="Pataisytas leidimas"/>
+<l:gentext key="Revision" text="Pataisytas leidimas"/>
+<l:gentext key="sect1" text="Skyrius"/>
+<l:gentext key="sect2" text="Skyrius"/>
+<l:gentext key="sect3" text="Skyrius"/>
+<l:gentext key="sect4" text="Skyrius"/>
+<l:gentext key="sect5" text="Skyrius"/>
+<l:gentext key="section" text="Skyrius"/>
+<l:gentext key="Section" text="Skyrius"/>
+<l:gentext key="see" text="žr."/>
+<l:gentext key="See" text="Žr."/>
+<l:gentext key="seealso" text="taip pat žr."/>
+<l:gentext key="Seealso" text="Taip pat žr."/>
+<l:gentext key="SeeAlso" text="Taip pat žr."/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Set Index"/>
+<l:gentext key="SetIndex" text="Set Index"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="žingsnis"/>
+<l:gentext key="Step" text="Žingsnis"/>
+<l:gentext key="table" text="Lentelė"/>
+<l:gentext key="Table" text="Lentelė"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Patarimas"/>
+<l:gentext key="TIP" text="PATARIMAS"/>
+<l:gentext key="Tip" text="Patarimas"/>
+<l:gentext key="Warning" text="Įspėjimas"/>
+<l:gentext key="warning" text="Įspėjimas"/>
+<l:gentext key="WARNING" text="ĮSPĖJIMAS"/>
+<l:gentext key="and" text="ir"/>
+<l:gentext key="or" text="arba"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Redaguotas"/>
+<l:gentext key="edited" text="Redaguotas"/>
+<l:gentext key="Editedby" text="Redagavo"/>
+<l:gentext key="editedby" text="Redagavo"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Pastabos"/>
+<l:gentext key="Notes" text="Pastabos"/>
+<l:gentext key="Pgs" text="P."/>
+<l:gentext key="pgs" text="P."/>
+<l:gentext key="Revisedby" text="Pataisė: "/>
+<l:gentext key="revisedby" text="Pataisė: "/>
+<l:gentext key="TableNotes" text="Pastabos"/>
+<l:gentext key="tablenotes" text="Pastabos"/>
+<l:gentext key="TableofContents" text="Turinys"/>
+<l:gentext key="tableofcontents" text="Turinys"/>
+<l:gentext key="unexpectedelementname" text="Nenumatyto elemento pavadinimas"/>
+<l:gentext key="unsupported" text="nepalaikomas"/>
+<l:gentext key="xrefto" text="xref į"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Lygčių sąrašas"/>
+<l:gentext key="ListofEquations" text="Lygčių sąrašas"/>
+<l:gentext key="ListofExamples" text="Pavyzdžių sąrašas"/>
+<l:gentext key="listofexamples" text="Pavyzdžių sąrašas"/>
+<l:gentext key="ListofFigures" text="Paveikslų sąrašas"/>
+<l:gentext key="listoffigures" text="Paveikslų sąrašas"/>
+<l:gentext key="ListofProcedures" text="Procedūrų sąrašas"/>
+<l:gentext key="listofprocedures" text="Procedūrų sąrašas"/>
+<l:gentext key="listoftables" text="Lentelių sąrašas"/>
+<l:gentext key="ListofTables" text="Lentelių sąrašas"/>
+<l:gentext key="ListofUnknown" text="Nežinomas sąrašas"/>
+<l:gentext key="listofunknown" text="Nežinomas sąrašas"/>
+<l:gentext key="nav-home" text="Į pradžią"/>
+<l:gentext key="nav-next" text="Tolesnis"/>
+<l:gentext key="nav-next-sibling" text="Spartus pirmyn"/>
+<l:gentext key="nav-prev" text="Ankstesnis"/>
+<l:gentext key="nav-prev-sibling" text="Spartus atgal"/>
+<l:gentext key="nav-up" text="Aukštyn"/>
+<l:gentext key="nav-toc" text="Turinys"/>
+<l:gentext key="Draft" text="Planas"/>
+<l:gentext key="above" text="aukščiau"/>
+<l:gentext key="below" text="žemiau"/>
+<l:gentext key="sectioncalled" text="skyrius pavadinimu"/>
+<l:gentext key="index symbols" text="Simboliai"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="aąbcčdeęėfghiįyjklmnoprsštuųūvzžqwx"/>
+<l:gentext key="uppercase.alpha" text="AĄBCČDEĘĖFGHIĮYJKLMNOPRSŠTUŲŪVZŽQWX"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="“"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Priedas %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Skyrius %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Lygtis %n. %t"/>
+<l:template name="example" text="Pavyzdys %n. %t"/>
+<l:template name="figure" text="Pav. %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Dalis %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedūra %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkcija %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Lentelė %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Priedas %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Skyrius %n. %t"/>
+<l:template name="part" text="Dalis %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Ats: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Klaus.: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Klaus.: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(%p puslapis)"/>
+<l:template name="docname" text=" dokumente %o"/>
+<l:template name="docnamelong" text=" dokumente %o"/>
+<l:template name="pageabbrev" text="(%p p.)"/>
+<l:template name="Page" text="%p puslapis"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsection" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsect1" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsect2" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsect3" text="skyrius pavadinimu „%t“"/>
+<l:template name="sect1" text="skyrius pavadinimu „%t“"/>
+<l:template name="sect2" text="skyrius pavadinimu „%t“"/>
+<l:template name="sect3" text="skyrius pavadinimu „%t“"/>
+<l:template name="sect4" text="skyrius pavadinimu „%t“"/>
+<l:template name="sect5" text="skyrius pavadinimu „%t“"/>
+<l:template name="section" text="skyrius pavadinimu „%t“"/>
+<l:template name="simplesect" text="skyrius pavadinimu „%t“"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Ats: %n"/>
+<l:template name="appendix" text="Priedas %n"/>
+<l:template name="bridgehead" text="Skyrius %n"/>
+<l:template name="chapter" text="Skyrius %n"/>
+<l:template name="equation" text="Lygtis %n"/>
+<l:template name="example" text="Pavyzdys %n"/>
+<l:template name="figure" text="Pav. %n"/>
+<l:template name="part" text="Dalis %n"/>
+<l:template name="procedure" text="Procedūra %n"/>
+<l:template name="productionset" text="Produkcija %n"/>
+<l:template name="qandadiv" text="Klaus. ir Ats. %n"/>
+<l:template name="qandaentry" text="Klaus.: %n"/>
+<l:template name="question" text="Klaus.: %n"/>
+<l:template name="sect1" text="Skyrius %n"/>
+<l:template name="sect2" text="Skyrius %n"/>
+<l:template name="sect3" text="Skyrius %n"/>
+<l:template name="sect4" text="Skyrius %n"/>
+<l:template name="sect5" text="Skyrius %n"/>
+<l:template name="section" text="Skyrius %n"/>
+<l:template name="table" text="Lentelė %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Priedas %n, %t"/>
+<l:template name="bridgehead" text="Skyrius %n, „%t“"/>
+<l:template name="chapter" text="Skyrius %n, %t"/>
+<l:template name="equation" text="Lygtis %n, „%t“"/>
+<l:template name="example" text="Pavyzdys %n, „%t“"/>
+<l:template name="figure" text="Pav. %n, „%t“"/>
+<l:template name="part" text="Dalis %n, „%t“"/>
+<l:template name="procedure" text="Procedūra %n, „%t“"/>
+<l:template name="productionset" text="Produkcija %n, „%t“"/>
+<l:template name="qandadiv" text="Klaus. ir Ats. %n, „%t“"/>
+<l:template name="refsect1" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsect2" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsect3" text="skyrius pavadinimu „%t“"/>
+<l:template name="refsection" text="skyrius pavadinimu „%t“"/>
+<l:template name="sect1" text="Skyrius %n, „%t“"/>
+<l:template name="sect2" text="Skyrius %n, „%t“"/>
+<l:template name="sect3" text="Skyrius %n, „%t“"/>
+<l:template name="sect4" text="Skyrius %n, „%t“"/>
+<l:template name="sect5" text="Skyrius %n, „%t“"/>
+<l:template name="section" text="Skyrius %n, „%t“"/>
+<l:template name="simplesect" text="skyrius pavadinimu „%t“"/>
+<l:template name="table" text="Lentelė %n, „%t“"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ir "/>
+<l:template name="seplast" text=", ir "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Žr. %t."/>
+<l:template name="seealso" text="Taip pat žr. %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Auditorija: "/>
+<l:template name="MsgLevel" text="Lygmuo: "/>
+<l:template name="MsgOrig" text="Kilmė: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="Y-m-d"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Apibrėžimas: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Sausis"/>
+<l:template name="February" text="Vasaris"/>
+<l:template name="March" text="Kovas"/>
+<l:template name="April" text="Balandis"/>
+<l:template name="May" text="Gegužė"/>
+<l:template name="June" text="Birželis"/>
+<l:template name="July" text="Liepa"/>
+<l:template name="August" text="Rugpjūtis"/>
+<l:template name="September" text="Rugsėjis"/>
+<l:template name="October" text="Spalis"/>
+<l:template name="November" text="Lapkritis"/>
+<l:template name="December" text="Gruodis"/>
+<l:template name="Monday" text="Pirmadienis"/>
+<l:template name="Tuesday" text="Antradienis"/>
+<l:template name="Wednesday" text="Trečiadienis"/>
+<l:template name="Thursday" text="Ketvirtadienis"/>
+<l:template name="Friday" text="Penktadienis"/>
+<l:template name="Saturday" text="Šeštadienis"/>
+<l:template name="Sunday" text="Sekmadienis"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Sau"/>
+<l:template name="Feb" text="Vas"/>
+<l:template name="Mar" text="Kov"/>
+<l:template name="Apr" text="Bal"/>
+<l:template name="May" text="Geg"/>
+<l:template name="Jun" text="Bir"/>
+<l:template name="Jul" text="Lie"/>
+<l:template name="Aug" text="Rugp"/>
+<l:template name="Sep" text="Rugs"/>
+<l:template name="Oct" text="Spa"/>
+<l:template name="Nov" text="Lap"/>
+<l:template name="Dec" text="Gru"/>
+<l:template name="Mon" text="Pr"/>
+<l:template name="Tue" text="An"/>
+<l:template name="Wed" text="Tr"/>
+<l:template name="Thu" text="Kt"/>
+<l:template name="Fri" text="Pn"/>
+<l:template name="Sat" text="Št"/>
+<l:template name="Sun" text="Sk"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0427 Lithuanian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Simboliai</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="1">Ą</l:l>
+<l:l i="1">ą</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="3">Č</l:l>
+<l:l i="3">č</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="5">Ę</l:l>
+<l:l i="5">ę</l:l>
+<l:l i="5">Ė</l:l>
+<l:l i="5">ė</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="9">Į</l:l>
+<l:l i="9">į</l:l>
+<l:l i="10">Y</l:l>
+<l:l i="10">y</l:l>
+<l:l i="11">J</l:l>
+<l:l i="11">j</l:l>
+<l:l i="12">K</l:l>
+<l:l i="12">k</l:l>
+<l:l i="13">L</l:l>
+<l:l i="13">l</l:l>
+<l:l i="14">M</l:l>
+<l:l i="14">m</l:l>
+<l:l i="15">N</l:l>
+<l:l i="15">n</l:l>
+<l:l i="16">O</l:l>
+<l:l i="16">o</l:l>
+<l:l i="17">P</l:l>
+<l:l i="17">p</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="19">Š</l:l>
+<l:l i="19">š</l:l>
+<l:l i="20">T</l:l>
+<l:l i="20">t</l:l>
+<l:l i="21">U</l:l>
+<l:l i="21">u</l:l>
+<l:l i="21">Ų</l:l>
+<l:l i="21">ų</l:l>
+<l:l i="21">Ū</l:l>
+<l:l i="21">ū</l:l>
+<l:l i="22">V</l:l>
+<l:l i="22">v</l:l>
+<l:l i="23">Z</l:l>
+<l:l i="23">z</l:l>
+<l:l i="23">Ž</l:l>
+<l:l i="23">ž</l:l>
+<l:l i="24">Q</l:l>
+<l:l i="24">q</l:l>
+<l:l i="25">W</l:l>
+<l:l i="25">w</l:l>
+<l:l i="26">X</l:l>
+<l:l i="26">x</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/lv.xml b/applications/content/template/docbook/common/lv.xml
new file mode 100644
index 0000000..2639fe2
--- /dev/null
+++ b/applications/content/template/docbook/common/lv.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="lv" english-language-name="Latvian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/lv.xml -->
+<!-- * -->
+<!-- * E-mail the edited lv.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Anotācija"/>
+<l:gentext key="abstract" text="anotācija"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="a:"/>
+<l:gentext key="Appendix" text="Pielikums"/>
+<l:gentext key="appendix" text="pielikums"/>
+<l:gentext key="Article" text="Raksts"/>
+<l:gentext key="article" text="raksts"/>
+<l:gentext key="Author" text="Autors"/>
+<l:gentext key="Bibliography" text="Bibliogrāfija"/>
+<l:gentext key="bibliography" text="bibliogrāfija"/>
+<l:gentext key="Book" text="Grāmata"/>
+<l:gentext key="book" text="grāmata"/>
+<l:gentext key="CAUTION" text="UZMANĪBU"/>
+<l:gentext key="Caution" text="Uzmanību"/>
+<l:gentext key="caution" text="uzmanību"/>
+<l:gentext key="Chapter" text="Nodaļa"/>
+<l:gentext key="chapter" text="nodaļa"/>
+<l:gentext key="Colophon" text="Pēcvārds"/>
+<l:gentext key="colophon" text="pēcvārds"/>
+<l:gentext key="Copyright" text="Autortiesības"/>
+<l:gentext key="copyright" text="autortiesības"/>
+<l:gentext key="Dedication" text="Veltījums"/>
+<l:gentext key="dedication" text="veltījums"/>
+<l:gentext key="Edition" text="Izdevums"/>
+<l:gentext key="edition" text="izdevums"/>
+<l:gentext key="Editor" text="Redaktors"/>
+<l:gentext key="Equation" text="Vienādojums"/>
+<l:gentext key="equation" text="vienādojums"/>
+<l:gentext key="Example" text="Piemērs"/>
+<l:gentext key="example" text="piemērs"/>
+<l:gentext key="Figure" text="Ilustrācija"/>
+<l:gentext key="figure" text="ilustrācija"/>
+<l:gentext key="Glossary" text="Glosārijs"/>
+<l:gentext key="glossary" text="glosārijs"/>
+<l:gentext key="GlossSee" text="Skatīties"/>
+<l:gentext key="glosssee" text="skatīties"/>
+<l:gentext key="GlossSeeAlso" text="Skatīt arī"/>
+<l:gentext key="glossseealso" text="skatīt arī"/>
+<l:gentext key="IMPORTANT" text="SVARĪGI"/>
+<l:gentext key="important" text="svarīgi"/>
+<l:gentext key="Important" text="svarīgs"/>
+<l:gentext key="Index" text="Indekss"/>
+<l:gentext key="index" text="indekss"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Autortiesības"/>
+<l:gentext key="legalnotice" text="autortiesības"/>
+<l:gentext key="MsgAud" text="Auditorija"/>
+<l:gentext key="msgaud" text="auditorija"/>
+<l:gentext key="MsgLevel" text="Ziņ.līmenis"/>
+<l:gentext key="msglevel" text="ziņ.līmenis"/>
+<l:gentext key="MsgOrig" text="Ziņ.izcelsme"/>
+<l:gentext key="msgorig" text="Ziņ.izcelsme"/>
+<l:gentext key="NOTE" text="PIEZĪME"/>
+<l:gentext key="Note" text="Piezīme"/>
+<l:gentext key="note" text="piezīme"/>
+<l:gentext key="Part" text="Daļa"/>
+<l:gentext key="part" text="daļa"/>
+<l:gentext key="Preface" text="Ievads"/>
+<l:gentext key="preface" text="ievads"/>
+<l:gentext key="Procedure" text="Procedūra"/>
+<l:gentext key="procedure" text="Procedūra"/>
+<l:gentext key="ProductionSet" text="Produkta"/>
+<l:gentext key="PubDate" text="Izdošanas datums"/>
+<l:gentext key="pubdate" text="Izdošanas datums"/>
+<l:gentext key="Published" text="Izdots"/>
+<l:gentext key="published" text="izdots"/>
+<l:gentext key="Publisher" text="Izdevējs"/>
+<l:gentext key="Qandadiv" text="J un A"/>
+<l:gentext key="qandadiv" text="J un A"/>
+<l:gentext key="QandASet" text="Bieži uzdotie jautājumi"/>
+<l:gentext key="Question" text="J:"/>
+<l:gentext key="question" text="J:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Atsauce"/>
+<l:gentext key="reference" text="atsauce"/>
+<l:gentext key="References" text="Norādes"/>
+<l:gentext key="RefName" text="Nosaukums"/>
+<l:gentext key="refname" text="nosaukums"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Sinopse"/>
+<l:gentext key="refsynopsisdiv" text="sinopse"/>
+<l:gentext key="RevHistory" text="Izmaiņu vēsture"/>
+<l:gentext key="revhistory" text="izmaiņu vēsture"/>
+<l:gentext key="revision" text="versija"/>
+<l:gentext key="Revision" text="Versija"/>
+<l:gentext key="sect1" text="Sadaļa"/>
+<l:gentext key="sect2" text="Sadaļa"/>
+<l:gentext key="sect3" text="Sadaļa"/>
+<l:gentext key="sect4" text="Sadaļa"/>
+<l:gentext key="sect5" text="Sadaļa"/>
+<l:gentext key="section" text="sadaļa"/>
+<l:gentext key="Section" text="Sadaļa"/>
+<l:gentext key="see" text="skatīt"/>
+<l:gentext key="See" text="Skatīt"/>
+<l:gentext key="seealso" text="skatīt arī"/>
+<l:gentext key="Seealso" text="skatīt arī"/>
+<l:gentext key="SeeAlso" text="Skatīt arī"/>
+<l:gentext key="set" text="Kolekcija"/>
+<l:gentext key="Set" text="Kolekcija"/>
+<l:gentext key="setindex" text="kolekcijas indekss"/>
+<l:gentext key="SetIndex" text="Kolekcijas indekss"/>
+<l:gentext key="Sidebar" text="Atkāpe"/>
+<l:gentext key="sidebar" text="atkāpe"/>
+<l:gentext key="step" text="solis"/>
+<l:gentext key="Step" text="Solis"/>
+<l:gentext key="table" text="Tabula"/>
+<l:gentext key="Table" text="Tabula"/>
+<l:gentext key="task" text="Uzdevums"/>
+<l:gentext key="Task" text="Uzdevums"/>
+<l:gentext key="tip" text="Ieteikums"/>
+<l:gentext key="TIP" text="IETEIKUMS"/>
+<l:gentext key="Tip" text="Ieteikums"/>
+<l:gentext key="Warning" text="Brīdinājums"/>
+<l:gentext key="warning" text="brīdinājums"/>
+<l:gentext key="WARNING" text="BRĪDINĀJUMS"/>
+<l:gentext key="and" text="un"/>
+<l:gentext key="or" text="vai"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Rediģēts"/>
+<l:gentext key="edited" text="rediģēts"/>
+<l:gentext key="Editedby" text="Rediģējis"/>
+<l:gentext key="editedby" text="rediģējis"/>
+<l:gentext key="in" text="iekš"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="piezīmes"/>
+<l:gentext key="Notes" text="Piezīmes"/>
+<l:gentext key="Pgs" text="Lpp."/>
+<l:gentext key="pgs" text="lpp."/>
+<l:gentext key="Revisedby" text="Pārskatījis: "/>
+<l:gentext key="revisedby" text="Pārskatījis: "/>
+<l:gentext key="TableNotes" text="Piezīmes"/>
+<l:gentext key="tablenotes" text="piezīmes"/>
+<l:gentext key="TableofContents" text="Saturs "/>
+<l:gentext key="tableofcontents" text="saturs"/>
+<l:gentext key="unexpectedelementname" text="Negaidīts elementa nosaukums"/>
+<l:gentext key="unsupported" text="neatbalstīts"/>
+<l:gentext key="xrefto" text="saite uz"/>
+<l:gentext key="Authors" text="Autori"/>
+<l:gentext key="copyeditor" text="Kopijas redaktors"/>
+<l:gentext key="graphicdesigner" text="Grafikas dizaineris"/>
+<l:gentext key="productioneditor" text="Produkta redaktors"/>
+<l:gentext key="technicaleditor" text="Tehniskais redaktors"/>
+<l:gentext key="translator" text="Tulks"/>
+<l:gentext key="listofequations" text="vienādojumu saraksts"/>
+<l:gentext key="ListofEquations" text="Vienādojumu saraksts"/>
+<l:gentext key="ListofExamples" text="Piemēru saraksts"/>
+<l:gentext key="listofexamples" text="piemēru saraksts"/>
+<l:gentext key="ListofFigures" text="Ilustrāciju saraksts"/>
+<l:gentext key="listoffigures" text="ilustrāciju saraksts"/>
+<l:gentext key="ListofProcedures" text="Procesu saraksts"/>
+<l:gentext key="listofprocedures" text="procesu saraksts"/>
+<l:gentext key="listoftables" text="tabulu saraksts"/>
+<l:gentext key="ListofTables" text="Tabulu saraksts"/>
+<l:gentext key="ListofUnknown" text="Nezināmo saraksts"/>
+<l:gentext key="listofunknown" text="Nezināmo saraksts"/>
+<l:gentext key="nav-home" text="Sākums"/>
+<l:gentext key="nav-next" text="Nākamais"/>
+<l:gentext key="nav-next-sibling" text="Ātri uz priekšu"/>
+<l:gentext key="nav-prev" text="Priekšskatījums"/>
+<l:gentext key="nav-prev-sibling" text="Ātri atpakaļ"/>
+<l:gentext key="nav-up" text="Uz augšu"/>
+<l:gentext key="nav-toc" text="Saturs"/>
+<l:gentext key="Draft" text="Uzmetums"/>
+<l:gentext key="above" text="virs"/>
+<l:gentext key="below" text="zem"/>
+<l:gentext key="sectioncalled" text="sadaļa ar nosaukumu"/>
+<l:gentext key="index symbols" text="Simboli"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="aābcčdeēfgģhiījkķlļmnņoprsštuūvzž"/>
+<l:gentext key="uppercase.alpha" text="AĀBCČDEĒFGĢHIĪJKĶLĻMNŅOPRSŠTUŪVZŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Pielikums %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Nodaļa %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Vienādojums %n. %t"/>
+<l:template name="example" text="Piemērs %n. %t"/>
+<l:template name="figure" text="Ilustrācija %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Daļa %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedūra %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkta %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabula %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Pielikums %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Nodaļa %n. %t"/>
+<l:template name="part" text="Daļa %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="J: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="J: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" (%o)"/>
+<l:template name="olink.page.citation" text=" (lpp. %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(lpp. %p)"/>
+<l:template name="docname" text=" ( %o)"/>
+<l:template name="docnamelong" text=" dokumentā ar nosaukumu %o"/>
+<l:template name="pageabbrev" text="(lpp. %p)"/>
+<l:template name="Page" text="Lappuse %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsection" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsect1" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsect2" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsect3" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="sect1" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="sect2" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="sect3" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="sect4" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="sect5" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="section" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="simplesect" text="sadaļa ar nosaukumu “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Pielikums %n"/>
+<l:template name="bridgehead" text="Sadaļa %n"/>
+<l:template name="chapter" text="Nodaļa %n"/>
+<l:template name="equation" text="Vienādojums %n"/>
+<l:template name="example" text="Piemērs %n"/>
+<l:template name="figure" text="Ilustrācija %n"/>
+<l:template name="part" text="Daļa %n"/>
+<l:template name="procedure" text="Procedūra %n"/>
+<l:template name="productionset" text="Produkta %n"/>
+<l:template name="qandadiv" text="J un A %n"/>
+<l:template name="qandaentry" text="J: %n"/>
+<l:template name="question" text="J: %n"/>
+<l:template name="sect1" text="Sadaļa %n"/>
+<l:template name="sect2" text="Sadaļa %n"/>
+<l:template name="sect3" text="Sadaļa %n"/>
+<l:template name="sect4" text="Sadaļa %n"/>
+<l:template name="sect5" text="Sadaļa %n"/>
+<l:template name="section" text="Sadaļa %n"/>
+<l:template name="table" text="Tabula %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Pielikums %n, %t"/>
+<l:template name="bridgehead" text="Sadaļa %n, “%t”"/>
+<l:template name="chapter" text="Nodaļa %n, %t"/>
+<l:template name="equation" text="Vienādojums %n, “%t”"/>
+<l:template name="example" text="Piemērs %n, “%t”"/>
+<l:template name="figure" text="Ilustrācija %n, “%t”"/>
+<l:template name="part" text="Daļa %n, “%t”"/>
+<l:template name="procedure" text="Procedūra %n, “%t”"/>
+<l:template name="productionset" text="Produkta %n, “%t”"/>
+<l:template name="qandadiv" text="J un A %n, “%t”"/>
+<l:template name="refsect1" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsect2" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsect3" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="refsection" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="sect1" text="Sadaļa %n, “%t”"/>
+<l:template name="sect2" text="Sadaļa %n, “%t”"/>
+<l:template name="sect3" text="Sadaļa %n, “%t”"/>
+<l:template name="sect4" text="Sadaļa %n, “%t”"/>
+<l:template name="sect5" text="Sadaļa %n, “%t”"/>
+<l:template name="section" text="Sadaļa %n, “%t”"/>
+<l:template name="simplesect" text="sadaļa ar nosaukumu “%t”"/>
+<l:template name="table" text="Tabula %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" un "/>
+<l:template name="seplast" text=", un "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Skatīties %t."/>
+<l:template name="seealso" text="Skatīt arī %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Auditorija: "/>
+<l:template name="MsgLevel" text="Ziņ.līmenis: "/>
+<l:template name="MsgOrig" text="Ziņ.izcelsme: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="Maijs"/>
+<l:template name="June" text="Jūnijs"/>
+<l:template name="July" text="Jūlijs"/>
+<l:template name="August" text="Augusts"/>
+<l:template name="September" text="Septembris"/>
+<l:template name="October" text="Octobris"/>
+<l:template name="November" text="Novembris"/>
+<l:template name="December" text="Decembris"/>
+<l:template name="Monday" text="Pirmdiena"/>
+<l:template name="Tuesday" text="Otrdiena"/>
+<l:template name="Wednesday" text="Trešdiena"/>
+<l:template name="Thursday" text="Ceturtdiena"/>
+<l:template name="Friday" text="Piektdiena"/>
+<l:template name="Saturday" text="Sestdiena"/>
+<l:template name="Sunday" text="Svētdiena"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Mai"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jūl"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Pr"/>
+<l:template name="Tue" text="Ot"/>
+<l:template name="Wed" text="Tr"/>
+<l:template name="Thu" text="Ce"/>
+<l:template name="Fri" text="Pk"/>
+<l:template name="Sat" text="Se"/>
+<l:template name="Sun" text="Sv"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0427 Latvian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Pieejams "/>
+<l:template name="acctoo" text="Arī pieejams "/>
+<l:template name="onwww" text=" www"/>
+<l:template name="oninet" text="internetā"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/ml.xml b/applications/content/template/docbook/common/ml.xml
new file mode 100644
index 0000000..2947f88
--- /dev/null
+++ b/applications/content/template/docbook/common/ml.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ml" english-language-name="Malayalam">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ml.xml -->
+<!-- * -->
+<!-- * E-mail the edited ml.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="സംഗ്രഹം"/>
+<l:gentext key="abstract" text="സംഗ്രഹം"/>
+<l:gentext key="Acknowledgements" text="നന്ദി"/>
+<l:gentext key="acknowledgements" text="നന്ദി"/>
+<l:gentext key="Answer" text="ഉ:"/>
+<l:gentext key="answer" text="ഉ:"/>
+<l:gentext key="Appendix" text="അനുബന്ധം"/>
+<l:gentext key="appendix" text="അനുബന്ധം"/>
+<l:gentext key="Article" text="ലേഖനം"/>
+<l:gentext key="article" text="ലേഖനം"/>
+<l:gentext key="Author" text="രചയിതാവു്"/>
+<l:gentext key="Bibliography" text="ഗ്രന്ഥസൂചി"/>
+<l:gentext key="bibliography" text="ഗ്രന്ഥസൂചി"/>
+<l:gentext key="Book" text="പുസ്തകം"/>
+<l:gentext key="book" text="പുസ്തകം"/>
+<l:gentext key="CAUTION" text="ശ്രദ്ധിക്കുക"/>
+<l:gentext key="Caution" text="ശ്രദ്ധിക്കുക"/>
+<l:gentext key="caution" text="ശ്രദ്ധിക്കുക"/>
+<l:gentext key="Chapter" text="പാഠം"/>
+<l:gentext key="chapter" text="പാഠം"/>
+<l:gentext key="Colophon" text="കോളോഫോണ്‍"/>
+<l:gentext key="colophon" text="കോളോഫോണ്‍"/>
+<l:gentext key="Copyright" text="പകര്‍പ്പവകാശം"/>
+<l:gentext key="copyright" text="പകര്‍പ്പവകാശം"/>
+<l:gentext key="Dedication" text="അര്‍പ്പണം"/>
+<l:gentext key="dedication" text="അര്‍പ്പണം"/>
+<l:gentext key="Edition" text="പ്രസദ്ധീകരണം"/>
+<l:gentext key="edition" text="പ്രസദ്ധീകരണം"/>
+<l:gentext key="Editor" text="എഡിറ്റര്‍"/>
+<l:gentext key="Equation" text="സമവാക്യം"/>
+<l:gentext key="equation" text="സമവാക്യം"/>
+<l:gentext key="Example" text="ഉദാഹരണം"/>
+<l:gentext key="example" text="ഉദാഹരണം"/>
+<l:gentext key="Figure" text="ചിത്രം"/>
+<l:gentext key="figure" text="ചിത്രം"/>
+<l:gentext key="Glossary" text="ഗ്ലോസ്സറി"/>
+<l:gentext key="glossary" text="ഗ്ലോസ്സറി"/>
+<l:gentext key="GlossSee" text="കാണുക"/>
+<l:gentext key="glosssee" text="കാണുക"/>
+<l:gentext key="GlossSeeAlso" text="ഇതും കാണുക"/>
+<l:gentext key="glossseealso" text="ഇതും കാണുക"/>
+<l:gentext key="IMPORTANT" text="പ്രധാനം"/>
+<l:gentext key="important" text="പ്രധാനം"/>
+<l:gentext key="Important" text="പ്രധാനം"/>
+<l:gentext key="Index" text="സൂചിക"/>
+<l:gentext key="index" text="സൂചിക"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="നിയമപരമായ കുറിപ്പു്"/>
+<l:gentext key="legalnotice" text="നിയമപരമായ കുറിപ്പു്"/>
+<l:gentext key="MsgAud" text="വായനക്കാര്‍"/>
+<l:gentext key="msgaud" text="വായനക്കാര്‍"/>
+<l:gentext key="MsgLevel" text="നില"/>
+<l:gentext key="msglevel" text="നില"/>
+<l:gentext key="MsgOrig" text="തുടക്കം"/>
+<l:gentext key="msgorig" text="തുടക്കം"/>
+<l:gentext key="NOTE" text="കുറിപ്പു്"/>
+<l:gentext key="Note" text="കുറിപ്പു്"/>
+<l:gentext key="note" text="കുറിപ്പു്"/>
+<l:gentext key="Part" text="ഭാഗം"/>
+<l:gentext key="part" text="ഭാഗം"/>
+<l:gentext key="Preface" text="ആമുഖം"/>
+<l:gentext key="preface" text="ആമുഖം"/>
+<l:gentext key="Procedure" text="പ്രക്രിയ"/>
+<l:gentext key="procedure" text="പ്രക്രിയ"/>
+<l:gentext key="ProductionSet" text="നിര്‍മ്മാണം"/>
+<l:gentext key="PubDate" text="പ്രസിദ്ധീകരണ തീയതി"/>
+<l:gentext key="pubdate" text="പ്രസിദ്ധീകരണ തീയതി"/>
+<l:gentext key="Published" text="പ്രസിദ്ധീകരിച്ചതു്"/>
+<l:gentext key="published" text="പ്രസിദ്ധീകരിച്ചതു്"/>
+<l:gentext key="Publisher" text="പ്രസിദ്ധീകര്‍ത്താവ്"/>
+<l:gentext key="Qandadiv" text="ചോ &amp; ഉ"/>
+<l:gentext key="qandadiv" text="ചോ &amp; ഉ"/>
+<l:gentext key="QandASet" text="സംശയങ്ങള്‍ക്കും ചോദ്യങ്ങള്‍ക്കുമുള്ള മറുപടികള്‍"/>
+<l:gentext key="Question" text="ചോ:"/>
+<l:gentext key="question" text="ചോ:"/>
+<l:gentext key="RefEntry" text="താള്‍"/>
+<l:gentext key="refentry" text="താള്‍"/>
+<l:gentext key="Reference" text="സൂചന"/>
+<l:gentext key="reference" text="സൂചന"/>
+<l:gentext key="References" text="സൂചനകള്‍"/>
+<l:gentext key="RefName" text="നാമം"/>
+<l:gentext key="refname" text="നാമം"/>
+<l:gentext key="RefSection" text="വിഭാഗം"/>
+<l:gentext key="refsection" text="വിഭാഗം"/>
+<l:gentext key="RefSynopsisDiv" text="ചുരുക്കം"/>
+<l:gentext key="refsynopsisdiv" text="ചുരുക്കം"/>
+<l:gentext key="RevHistory" text="പുനര്‍നിരീക്ഷണ ചരിത്രം"/>
+<l:gentext key="revhistory" text="പുനര്‍നിരീക്ഷണ ചരിത്രം"/>
+<l:gentext key="revision" text="പുനര്‍നിരീക്ഷണം"/>
+<l:gentext key="Revision" text="പുനര്‍നിരീക്ഷണം"/>
+<l:gentext key="sect1" text="വിഭാഗം"/>
+<l:gentext key="sect2" text="വിഭാഗം"/>
+<l:gentext key="sect3" text="വിഭാഗം"/>
+<l:gentext key="sect4" text="വിഭാഗം"/>
+<l:gentext key="sect5" text="വിഭാഗം"/>
+<l:gentext key="section" text="വിഭാഗം"/>
+<l:gentext key="Section" text="വിഭാഗം"/>
+<l:gentext key="see" text="കാണുക"/>
+<l:gentext key="See" text="കാണുക"/>
+<l:gentext key="seealso" text="ഇതും കാണുക"/>
+<l:gentext key="Seealso" text="ഇതും കാണുക"/>
+<l:gentext key="SeeAlso" text="ഇതും കാണുക"/>
+<l:gentext key="set" text="ഗ്രൂപ്പ്"/>
+<l:gentext key="Set" text="ഗ്രൂപ്പ്"/>
+<l:gentext key="setindex" text="ഗ്രൂപ്പിനുള്ള സൂചിക"/>
+<l:gentext key="SetIndex" text="ഗ്രൂപ്പിനുള്ള സൂചിക"/>
+<l:gentext key="Sidebar" text="സൈഡ്ബാര്‍"/>
+<l:gentext key="sidebar" text="സൈഡ്ബാര്‍"/>
+<l:gentext key="step" text="നടപടി"/>
+<l:gentext key="Step" text="നടപടി"/>
+<l:gentext key="table" text="പട്ടിക"/>
+<l:gentext key="Table" text="പട്ടിക"/>
+<l:gentext key="task" text="ജോലി"/>
+<l:gentext key="Task" text="ജോലി"/>
+<l:gentext key="tip" text="സൂചന"/>
+<l:gentext key="TIP" text="സൂചന"/>
+<l:gentext key="Tip" text="സൂചന"/>
+<l:gentext key="Warning" text="മുന്നറിയിപ്പു്"/>
+<l:gentext key="warning" text="മുന്നറിയിപ്പു്"/>
+<l:gentext key="WARNING" text="മുന്നറിയിപ്പു്"/>
+<l:gentext key="and" text=","/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="."/>
+<l:gentext key="Edited" text="ചിട്ടപ്പെടുത്തിയിരിക്കുന്നു"/>
+<l:gentext key="edited" text="ചിട്ടപ്പെടുത്തിയിരിക്കുന്നു"/>
+<l:gentext key="Editedby" text="ചിട്ടപ്പെടുത്തിയതു്"/>
+<l:gentext key="editedby" text="ചിട്ടപ്പെടുത്തിയതു്"/>
+<l:gentext key="in" text=" "/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="കുറിപ്പുകള്‍"/>
+<l:gentext key="Notes" text="കുറിപ്പുകള്‍"/>
+<l:gentext key="Pgs" text="താളുകള്‍."/>
+<l:gentext key="pgs" text="താളുകള്‍."/>
+<l:gentext key="Revisedby" text="പുനഃപരിശോധിച്ചതു്: "/>
+<l:gentext key="revisedby" text="പുനഃപരിശോധിച്ചതു്: "/>
+<l:gentext key="TableNotes" text="കുറിപ്പുകള്‍"/>
+<l:gentext key="tablenotes" text="കുറിപ്പുകള്‍"/>
+<l:gentext key="TableofContents" text="ഉള്ളടക്കത്തിന്റെ പട്ടിക"/>
+<l:gentext key="tableofcontents" text="ഉള്ളടക്കത്തിന്റെ പട്ടിക"/>
+<l:gentext key="unexpectedelementname" text="അപ്രതീക്ഷിതമായ എലമെന്റ് നാമം"/>
+<l:gentext key="unsupported" text="പിന്തുണയില്ലാത്ത"/>
+<l:gentext key="xrefto" text="xref "/>
+<l:gentext key="Authors" text="രചയിതാക്കള്‍"/>
+<l:gentext key="copyeditor" text="കോപ്പി എഡിറ്റര്‍"/>
+<l:gentext key="graphicdesigner" text="ഗ്രാഫിക് ഡിസൈനര്‍"/>
+<l:gentext key="productioneditor" text="പ്രൊഡക്ഷന്‍ എഡിറ്റര്‍"/>
+<l:gentext key="technicaleditor" text="ടെക്നിക്കല്‍ എഡിറ്റര്‍"/>
+<l:gentext key="translator" text="പരിഭാഷകന്‍"/>
+<l:gentext key="listofequations" text="സമവാക്യങ്ങളുടെ പട്ടിക"/>
+<l:gentext key="ListofEquations" text="സമവാക്യങ്ങളുടെ പട്ടിക"/>
+<l:gentext key="ListofExamples" text="ഉദാഹരണങ്ങളുടെ പട്ടിക"/>
+<l:gentext key="listofexamples" text="ഉദാഹരണങ്ങളുടെ പട്ടിക"/>
+<l:gentext key="ListofFigures" text="ചിത്രങ്ങളുടെ പട്ടിക"/>
+<l:gentext key="listoffigures" text="ചിത്രങ്ങളുടെ പട്ടിക"/>
+<l:gentext key="ListofProcedures" text="പ്രക്രിയകളുടെ പട്ടിക"/>
+<l:gentext key="listofprocedures" text="പ്രക്രിയകളുടെ പട്ടിക"/>
+<l:gentext key="listoftables" text="പട്ടികകളുടെ വിവരം"/>
+<l:gentext key="ListofTables" text="പട്ടികകളുടെ വിവരം"/>
+<l:gentext key="ListofUnknown" text="അപരിചിതമായവുടെ പട്ടിക"/>
+<l:gentext key="listofunknown" text="അപരിചിതമായവുടെ പട്ടിക"/>
+<l:gentext key="nav-home" text="ആസ്ഥാനം"/>
+<l:gentext key="nav-next" text="അടുത്തതു്"/>
+<l:gentext key="nav-next-sibling" text="ഏറ്റവും മുമ്പോട്ട്"/>
+<l:gentext key="nav-prev" text="മുമ്പുള്ളതു്"/>
+<l:gentext key="nav-prev-sibling" text="ഏറ്റവും പുറകോട്ട്"/>
+<l:gentext key="nav-up" text="മുകളിലേക്ക്"/>
+<l:gentext key="nav-toc" text="ഉള്ളടക്കത്തിന്റെ പട്ടിക"/>
+<l:gentext key="Draft" text="പൂര്‍ത്തിയാകാത്ത രേഖ"/>
+<l:gentext key="above" text="മുകളില്‍"/>
+<l:gentext key="below" text="താഴെ"/>
+<l:gentext key="sectioncalled" text="വിഭാഗം"/>
+<l:gentext key="index symbols" text="ചിഹ്നങ്ങള്‍"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz" lang="en"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" lang="en"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="അനുബന്ധം %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="പാഠം %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="സമവാക്യം %n. %t"/>
+<l:template name="example" text="ഉദാഹരണം %n. %t"/>
+<l:template name="figure" text="ചിത്രം %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ഭാഗം %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="പ്രക്രിയ %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="നിര്‍മ്മാണം %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="പട്ടിക %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="അനുബന്ധം %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="പാഠം %n. %t"/>
+<l:template name="part" text="ഭാഗം %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="ഉ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="ചോ: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="ചോ: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="വിഭാഗം “%t”"/>
+<l:template name="refsection" text="വിഭാഗം “%t”"/>
+<l:template name="refsect1" text="വിഭാഗം “%t”"/>
+<l:template name="refsect2" text="വിഭാഗം “%t”"/>
+<l:template name="refsect3" text="വിഭാഗം “%t”"/>
+<l:template name="sect1" text="വിഭാഗം “%t”"/>
+<l:template name="sect2" text="വിഭാഗം “%t”"/>
+<l:template name="sect3" text="വിഭാഗം “%t”"/>
+<l:template name="sect4" text="വിഭാഗം “%t”"/>
+<l:template name="sect5" text="വിഭാഗം “%t”"/>
+<l:template name="section" text="വിഭാഗം “%t”"/>
+<l:template name="simplesect" text="വിഭാഗം “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="ഉ: %n"/>
+<l:template name="appendix" text="അനുബന്ധം %n"/>
+<l:template name="bridgehead" text="വിഭാഗം %n"/>
+<l:template name="chapter" text="പാഠം %n"/>
+<l:template name="equation" text="സമവാക്യം %n"/>
+<l:template name="example" text="ഉദാഹരണം %n"/>
+<l:template name="figure" text="ചിത്രം %n"/>
+<l:template name="part" text="ഭാഗം %n"/>
+<l:template name="procedure" text="പ്രക്രിയ %n"/>
+<l:template name="productionset" text="നിര്‍മ്മാണം %n"/>
+<l:template name="qandadiv" text="ചോ &amp; ഉ %n"/>
+<l:template name="qandaentry" text="ചോ: %n"/>
+<l:template name="question" text="ചോ: %n"/>
+<l:template name="sect1" text="വിഭാഗം %n"/>
+<l:template name="sect2" text="വിഭാഗം %n"/>
+<l:template name="sect3" text="വിഭാഗം %n"/>
+<l:template name="sect4" text="വിഭാഗം %n"/>
+<l:template name="sect5" text="വിഭാഗം %n"/>
+<l:template name="section" text="വിഭാഗം %n"/>
+<l:template name="table" text="പട്ടിക %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="അനുബന്ധം %n, %t"/>
+<l:template name="bridgehead" text="വിഭാഗം %n, “%t”"/>
+<l:template name="chapter" text="പാഠം %n, %t"/>
+<l:template name="equation" text="സമവാക്യം %n, “%t”"/>
+<l:template name="example" text="ഉദാഹരണം %n, “%t”"/>
+<l:template name="figure" text="ചിത്രം %n, “%t”"/>
+<l:template name="part" text="ഭാഗം %n, “%t”"/>
+<l:template name="procedure" text="പ്രക്രിയ %n, “%t”"/>
+<l:template name="productionset" text="നിര്‍മ്മാണം %n, “%t”"/>
+<l:template name="qandadiv" text="ചോ &amp; ഉ %n, “%t”"/>
+<l:template name="refsect1" text="വിഭാഗം “%t”"/>
+<l:template name="refsect2" text="വിഭാഗം “%t”"/>
+<l:template name="refsect3" text="വിഭാഗം “%t”"/>
+<l:template name="refsection" text="വിഭാഗം “%t”"/>
+<l:template name="sect1" text="വിഭാഗം %n, “%t”"/>
+<l:template name="sect2" text="വിഭാഗം %n, “%t”"/>
+<l:template name="sect3" text="വിഭാഗം %n, “%t”"/>
+<l:template name="sect4" text="വിഭാഗം %n, “%t”"/>
+<l:template name="sect5" text="വിഭാഗം %n, “%t”"/>
+<l:template name="section" text="വിഭാഗം %n, “%t”"/>
+<l:template name="simplesect" text="വിഭാഗം “%t”"/>
+<l:template name="table" text="പട്ടിക %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" , "/>
+<l:template name="seplast" text=", , "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="കാണുക %t."/>
+<l:template name="seealso" text="ഇതും കാണുക %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="വായനക്കാര്‍: "/>
+<l:template name="MsgLevel" text="നില: "/>
+<l:template name="MsgOrig" text="തുടക്കം: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="ജനുവരി"/>
+<l:template name="February" text="ഫെബ്രുവരി"/>
+<l:template name="March" text="മാര്‍ച്ച്"/>
+<l:template name="April" text="ഏപ്രില്‍"/>
+<l:template name="May" text="മെയ്"/>
+<l:template name="June" text="ജൂണ്‍"/>
+<l:template name="July" text="ജൂലൈ"/>
+<l:template name="August" text="ഓഗസ്റ്റ്"/>
+<l:template name="September" text="സെപ്റ്റംബര്‍"/>
+<l:template name="October" text="ഒക്ടോബര്‍"/>
+<l:template name="November" text="നവംബര്‍"/>
+<l:template name="December" text="ഡിസംബര്‍"/>
+<l:template name="Monday" text="തിങ്കള്‍"/>
+<l:template name="Tuesday" text="ചൊവ്വ"/>
+<l:template name="Wednesday" text="ബുധന്‍"/>
+<l:template name="Thursday" text="വ്യാഴം"/>
+<l:template name="Friday" text="വെള്ളി"/>
+<l:template name="Saturday" text="ശനി"/>
+<l:template name="Sunday" text="ഞായര്‍"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="ജനു"/>
+<l:template name="Feb" text="ഫെബ്രു"/>
+<l:template name="Mar" text="മാര്‍"/>
+<l:template name="Apr" text="ഏപ്രി"/>
+<l:template name="May" text="മെയ്"/>
+<l:template name="Jun" text="ജൂണ്‍"/>
+<l:template name="Jul" text="ജൂലൈ"/>
+<l:template name="Aug" text="ഓഗ"/>
+<l:template name="Sep" text="സെപ്"/>
+<l:template name="Oct" text="ഒക്ട്"/>
+<l:template name="Nov" text="നവം"/>
+<l:template name="Dec" text="ഡിസം"/>
+<l:template name="Mon" text="തി"/>
+<l:template name="Tue" text="ചൊ"/>
+<l:template name="Wed" text="ബു"/>
+<l:template name="Thu" text="വ്യാ"/>
+<l:template name="Fri" text="വെ"/>
+<l:template name="Sat" text="ശ"/>
+<l:template name="Sun" text="ഞാ"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x044c Malayalam"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">ചിഹ്നങ്ങള്‍</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/mn.xml b/applications/content/template/docbook/common/mn.xml
new file mode 100644
index 0000000..18eb484
--- /dev/null
+++ b/applications/content/template/docbook/common/mn.xml
@@ -0,0 +1,748 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="mn" english-language-name="Mongolian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/mn.xml -->
+<!-- * -->
+<!-- * E-mail the edited mn.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Товч агуулга"/>
+<l:gentext key="abstract" text="товч агуулга"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="Х:"/>
+<l:gentext key="answer" text="Х:"/>
+<l:gentext key="Appendix" text="Хавсралт"/>
+<l:gentext key="appendix" text="хавсралт"/>
+<l:gentext key="Article" text="Өгүүлэл"/>
+<l:gentext key="article" text="өгүүлэл"/>
+<l:gentext key="Author" text="Зохиогч"/>
+<l:gentext key="Bibliography" text="Ном зүй"/>
+<l:gentext key="bibliography" text="ном зүй"/>
+<l:gentext key="Book" text="Ном"/>
+<l:gentext key="book" text="ном"/>
+<l:gentext key="CAUTION" text="АНХААРУУЛГА"/>
+<l:gentext key="Caution" text="Анхааруулга"/>
+<l:gentext key="caution" text="анхааруулга"/>
+<l:gentext key="Chapter" text="Бүлэг"/>
+<l:gentext key="chapter" text="бүлэг"/>
+<l:gentext key="Colophon" text="Сүүл тайлбар"/>
+<l:gentext key="colophon" text="сүүл тайлбар"/>
+<l:gentext key="Copyright" text="Зохиогчийн эрх"/>
+<l:gentext key="copyright" text="зохиогчийн эрх"/>
+<l:gentext key="Dedication" text="Зохиогчийн үг"/>
+<l:gentext key="dedication" text="зохиогчийн үг"/>
+<l:gentext key="Edition" text="Хэвлэл"/>
+<l:gentext key="edition" text="хэвлэл"/>
+<l:gentext key="Editor" text="Хянан тохиолдуулагч"/>
+<l:gentext key="Equation" text="Тэгшитгэл"/>
+<l:gentext key="equation" text="тэгшитгэл"/>
+<l:gentext key="Example" text="Жишээ"/>
+<l:gentext key="example" text="жишээ"/>
+<l:gentext key="Figure" text="Зураг"/>
+<l:gentext key="figure" text="зураг"/>
+<l:gentext key="Glossary" text="Нэр томъёо"/>
+<l:gentext key="glossary" text="нэр томъёо"/>
+<l:gentext key="GlossSee" text="харна уу"/>
+<l:gentext key="glosssee" text="харна уу"/>
+<l:gentext key="GlossSeeAlso" text="Бас харна уу"/>
+<l:gentext key="glossseealso" text="бас харна уу"/>
+<l:gentext key="IMPORTANT" text="ЧУХАЛ"/>
+<l:gentext key="important" text="чухал"/>
+<l:gentext key="Important" text="Чухал"/>
+<l:gentext key="Index" text="Үгийн жагсаалт"/>
+<l:gentext key="index" text="үгийн жагсаалт"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Хуулийн заалт"/>
+<l:gentext key="legalnotice" text="хуулийн заалт"/>
+<l:gentext key="MsgAud" text="Зориулалт"/>
+<l:gentext key="msgaud" text="зориулалт"/>
+<l:gentext key="MsgLevel" text="Түвшин"/>
+<l:gentext key="msglevel" text="түвшин"/>
+<l:gentext key="MsgOrig" text="Үүсэл"/>
+<l:gentext key="msgorig" text="үүсэл"/>
+<l:gentext key="NOTE" text="ТЭМДЭГЛЭЛ"/>
+<l:gentext key="Note" text="Тэмдэглэл"/>
+<l:gentext key="note" text="тэмдэглэл"/>
+<l:gentext key="Part" text="хэсэг"/>
+<l:gentext key="part" text="Хэсэг"/>
+<l:gentext key="Preface" text="Өмнөх үг"/>
+<l:gentext key="preface" text="өмнөх үг"/>
+<l:gentext key="Procedure" text="Гүйцэтгэл"/>
+<l:gentext key="procedure" text="гүйцэтгэл"/>
+<l:gentext key="ProductionSet" text="Бүтээгдэхүүн"/>
+<l:gentext key="PubDate" text="Хэвлэгдсэн огноо"/>
+<l:gentext key="pubdate" text="хэвлэгдсэн огноо"/>
+<l:gentext key="Published" text="Хэвлэгдсэн"/>
+<l:gentext key="published" text="хэвлэгдсэн"/>
+<l:gentext key="Publisher" text="Хэвлэсэн компани"/>
+<l:gentext key="Qandadiv" text="А ба Х"/>
+<l:gentext key="qandadiv" text="А ба Х"/>
+<l:gentext key="QandASet" text="Түгээмэл тавигддаг асуултууд"/>
+<l:gentext key="Question" text="А:"/>
+<l:gentext key="question" text="А:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Ашигласан ном"/>
+<l:gentext key="reference" text="ашигласан ном"/>
+<l:gentext key="References" text="Ашигласан номнууд"/>
+<l:gentext key="RefName" text="Нэр"/>
+<l:gentext key="refname" text="нэр"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Ерөнхий агуулга"/>
+<l:gentext key="refsynopsisdiv" text="ерөнхий агуулга"/>
+<l:gentext key="RevHistory" text="Залруулалтын түүх"/>
+<l:gentext key="revhistory" text="залруулалтын түүх"/>
+<l:gentext key="revision" text="залруулалт"/>
+<l:gentext key="Revision" text="Залруулалт"/>
+<l:gentext key="sect1" text="Хэсэг"/>
+<l:gentext key="sect2" text="Хэсэг"/>
+<l:gentext key="sect3" text="Хэсэг"/>
+<l:gentext key="sect4" text="Хэсэг"/>
+<l:gentext key="sect5" text="Хэсэг"/>
+<l:gentext key="section" text="Хэсэг"/>
+<l:gentext key="Section" text="Хэсэг"/>
+<l:gentext key="see" text="Харна уу"/>
+<l:gentext key="See" text="харна уу"/>
+<l:gentext key="seealso" text="бас харна уу"/>
+<l:gentext key="Seealso" text="Бас харна уу"/>
+<l:gentext key="SeeAlso" text="Бас харна уу"/>
+<l:gentext key="set" text="цуглуулга"/>
+<l:gentext key="Set" text="Цуглуулга"/>
+<l:gentext key="setindex" text="цуглуулгын жагсаалт"/>
+<l:gentext key="SetIndex" text="Цуглуулгын жагсаалт"/>
+<l:gentext key="Sidebar" text="Хажуу самбар"/>
+<l:gentext key="sidebar" text="хажуу самбар"/>
+<l:gentext key="step" text="алхам"/>
+<l:gentext key="Step" text="Алхам"/>
+<l:gentext key="table" text="хүснэгт"/>
+<l:gentext key="Table" text="Хүснэгт"/>
+<l:gentext key="task" text="даалгавар"/>
+<l:gentext key="Task" text="Даалгавар"/>
+<l:gentext key="tip" text="зөвлөгөө"/>
+<l:gentext key="TIP" text="ЗӨВЛӨГӨӨ"/>
+<l:gentext key="Tip" text="Зөвлөгөө"/>
+<l:gentext key="Warning" text="Сануулга"/>
+<l:gentext key="warning" text="сануулга"/>
+<l:gentext key="WARNING" text="САНУУЛГА"/>
+<l:gentext key="and" text="ба"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Хянасан"/>
+<l:gentext key="edited" text="хянасан"/>
+<l:gentext key="Editedby" text="Хянан тохиолдуулсан"/>
+<l:gentext key="editedby" text="хянан тохиолдуулсан"/>
+<l:gentext key="in" text="дотор"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="тайлбар"/>
+<l:gentext key="Notes" text="Тайлбар"/>
+<l:gentext key="Pgs" text="Хуудас"/>
+<l:gentext key="pgs" text="хуудас"/>
+<l:gentext key="Revisedby" text="Залруулсан: "/>
+<l:gentext key="revisedby" text="залруулсан: "/>
+<l:gentext key="TableNotes" text="Тайлбар"/>
+<l:gentext key="tablenotes" text="тайлбар"/>
+<l:gentext key="TableofContents" text="Гарчиг"/>
+<l:gentext key="tableofcontents" text="гарчиг"/>
+<l:gentext key="unexpectedelementname" text="Санамсаргүй элемент"/>
+<l:gentext key="unsupported" text="дэмжигдээгүй"/>
+<l:gentext key="xrefto" text="xref руу"/>
+<l:gentext key="Authors" text="Зохиогчид"/>
+<l:gentext key="copyeditor" text="Хуулбар хянан тохиолдуулагч"/>
+<l:gentext key="graphicdesigner" text="График дизайнч"/>
+<l:gentext key="productioneditor" text="Бүтээгдэхүүн хянан тохиолдуулагч"/>
+<l:gentext key="technicaleditor" text="Техникийн хянан тохиолдуулагч"/>
+<l:gentext key="translator" text="Орчуулагч"/>
+<l:gentext key="listofequations" text="тэгшитгэлийн жагсаалт"/>
+<l:gentext key="ListofEquations" text="Тэгшитгэлийн жагсаалт"/>
+<l:gentext key="ListofExamples" text="Жишээний жагсаалт"/>
+<l:gentext key="listofexamples" text="жишээний жагсаалт"/>
+<l:gentext key="ListofFigures" text="Зургийн жагсаалт"/>
+<l:gentext key="listoffigures" text="зургийн жагсаалт"/>
+<l:gentext key="ListofProcedures" text="Гүйцэтгэлийн жагсаалт"/>
+<l:gentext key="listofprocedures" text="гүйцэтгэлийн жагсаалт"/>
+<l:gentext key="listoftables" text="хүснэгтийн жагсаалт"/>
+<l:gentext key="ListofTables" text="Хүснэгтийн жагсаалт"/>
+<l:gentext key="ListofUnknown" text="Тодорхойгүй жагсаалт"/>
+<l:gentext key="listofunknown" text="тодорхойгүй жагсаалт"/>
+<l:gentext key="nav-home" text="Эхлэл"/>
+<l:gentext key="nav-next" text="Дараах"/>
+<l:gentext key="nav-next-sibling" text="Дараах"/>
+<l:gentext key="nav-prev" text="Өмнөх"/>
+<l:gentext key="nav-prev-sibling" text="Өмнөх"/>
+<l:gentext key="nav-up" text="Дээш"/>
+<l:gentext key="nav-toc" text="Гарчиг"/>
+<l:gentext key="Draft" text="Ноорог"/>
+<l:gentext key="above" text="дээр"/>
+<l:gentext key="below" text="доор"/>
+<l:gentext key="sectioncalled" text="Хэсгийн нэр"/>
+<l:gentext key="index symbols" text="тэмдэгтүүд"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="абвгдеёжзийклмноөпрстуүфхцчшщъыьэюя"/>
+<l:gentext key="uppercase.alpha" text="АБВГДЕЁЖЗИЙКЛМНОӨПРСТУҮФХЦЧШЩЪЫЬЭЮЯ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="«"/>
+<l:dingbat key="endquote" text="»"/>
+<l:dingbat key="nestedstartquote" text="„"/>
+<l:dingbat key="nestedendquote" text="“"/>
+<l:dingbat key="singlestartquote" text="‚"/>
+<l:dingbat key="singleendquote" text="‘"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="3"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="овог-нэр"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Хавсралт %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Бүлэг %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Тэгшитгэл %n. %t"/>
+<l:template name="example" text="Жишээ %n. %t"/>
+<l:template name="figure" text="Зураг %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="хэсэг %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Гүйцэтгэл %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Бүтээгдэхүүн %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="А: %n"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Хүснэгт %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Хавсралт %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Бүлэг %n. %t"/>
+<l:template name="part" text="хэсэг %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Х: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="А: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="А: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" %o "/>
+<l:template name="olink.page.citation" text=" (хуудас %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(Хуудас %p)"/>
+<l:template name="docname" text=" %o "/>
+<l:template name="docnamelong" text=" %o гарчигтай баримтад"/>
+<l:template name="pageabbrev" text="(Х. %p)"/>
+<l:template name="Page" text="Хуудас %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="«%t»"/>
+<l:template name="refsection" text="«%t»"/>
+<l:template name="refsect1" text="«%t»"/>
+<l:template name="refsect2" text="«%t»"/>
+<l:template name="refsect3" text="«%t»"/>
+<l:template name="sect1" text="«%t»"/>
+<l:template name="sect2" text="«%t»"/>
+<l:template name="sect3" text="«%t»"/>
+<l:template name="sect4" text="«%t»"/>
+<l:template name="sect5" text="«%t»"/>
+<l:template name="section" text="«%t»"/>
+<l:template name="simplesect" text="«%t»"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Х: %n"/>
+<l:template name="appendix" text="Хавсралт %n"/>
+<l:template name="bridgehead" text="Хэсэг %n"/>
+<l:template name="chapter" text="Бүлэг %n"/>
+<l:template name="equation" text="Тэгшитгэл %n"/>
+<l:template name="example" text="Жишээ %n"/>
+<l:template name="figure" text="Зураг %n"/>
+<l:template name="part" text="хэсэг %n"/>
+<l:template name="procedure" text="Гүйцэтгэл %n"/>
+<l:template name="productionset" text="Бүтээгдэхүүн %n"/>
+<l:template name="qandadiv" text="А ба Х %n"/>
+<l:template name="qandaentry" text="А: %n"/>
+<l:template name="question" text="А: %n"/>
+<l:template name="sect1" text="Хэсэг %n"/>
+<l:template name="sect2" text="Хэсэг %n"/>
+<l:template name="sect3" text="Хэсэг %n"/>
+<l:template name="sect4" text="Хэсэг %n"/>
+<l:template name="sect5" text="Хэсэг %n"/>
+<l:template name="section" text="Хэсэг %n"/>
+<l:template name="table" text="Хүснэгт %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Хавсралт %n, %t"/>
+<l:template name="bridgehead" text="Хэсэг %n, «%t»"/>
+<l:template name="chapter" text="Бүлэг %n, %t"/>
+<l:template name="equation" text="Тэгшитгэл %n, «%t»"/>
+<l:template name="example" text="Жишээ %n, «%t»"/>
+<l:template name="figure" text="Зураг %n, «%t»"/>
+<l:template name="part" text="хэсэг %n, «%t»"/>
+<l:template name="procedure" text="Гүйцэтгэл %n, «%t»"/>
+<l:template name="productionset" text="Бүтээгдэхүүн %n, «%t»"/>
+<l:template name="qandadiv" text="А ба Х %n, «%t»"/>
+<l:template name="refsect1" text="Хэсгийн нэр «%t»"/>
+<l:template name="refsect2" text="Хэсгийн нэр «%t»"/>
+<l:template name="refsect3" text="Хэсгийн нэр «%t»"/>
+<l:template name="refsection" text="Хэсгийн нэр «%t»"/>
+<l:template name="sect1" text="Хэсэг %n, «%t»"/>
+<l:template name="sect2" text="Хэсэг %n, «%t»"/>
+<l:template name="sect3" text="Хэсэг %n, «%t»"/>
+<l:template name="sect4" text="Хэсэг %n, «%t»"/>
+<l:template name="sect5" text="Хэсэг %n, «%t»"/>
+<l:template name="section" text="Хэсэг %n, «%t»"/>
+<l:template name="simplesect" text="Хэсгийн нэр «%t»"/>
+<l:template name="table" text="Хүснэгт %n, «%t»"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ба "/>
+<l:template name="seplast" text=", ба "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="харна уу %t."/>
+<l:template name="seealso" text="Бас харна уу %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Зориулалт: "/>
+<l:template name="MsgLevel" text="Түвшин: "/>
+<l:template name="MsgOrig" text="Үүсэл: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="Y/m/d"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Тодорхойлолт: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Хулгана сарын"/>
+<l:template name="February" text="Үхэр сарын"/>
+<l:template name="March" text="Бар сарын"/>
+<l:template name="April" text="Туулай сарын"/>
+<l:template name="May" text="Луу сарын"/>
+<l:template name="June" text="Могой сарын"/>
+<l:template name="July" text="Морь сарын"/>
+<l:template name="August" text="Хонь сарын"/>
+<l:template name="September" text="Бич сарын"/>
+<l:template name="October" text="Тахиа сарын"/>
+<l:template name="November" text="Нохой сарын"/>
+<l:template name="December" text="Гахай сарын"/>
+<l:template name="Monday" text="Даваа"/>
+<l:template name="Tuesday" text="Мягмар"/>
+<l:template name="Wednesday" text="Лхагва"/>
+<l:template name="Thursday" text="Пүрэв"/>
+<l:template name="Friday" text="Баасан"/>
+<l:template name="Saturday" text="Бямба"/>
+<l:template name="Sunday" text="Ням"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Хул"/>
+<l:template name="Feb" text="Үхэ"/>
+<l:template name="Mar" text="Бар"/>
+<l:template name="Apr" text="Туу"/>
+<l:template name="May" text="Луу"/>
+<l:template name="Jun" text="Мог"/>
+<l:template name="Jul" text="Мор"/>
+<l:template name="Aug" text="Хон"/>
+<l:template name="Sep" text="Бич"/>
+<l:template name="Oct" text="Тах"/>
+<l:template name="Nov" text="Нох"/>
+<l:template name="Dec" text="Гах"/>
+<l:template name="Mon" text="Да"/>
+<l:template name="Tue" text="Мя"/>
+<l:template name="Wed" text="Лх"/>
+<l:template name="Thu" text="Пү"/>
+<l:template name="Fri" text="Ба"/>
+<l:template name="Sat" text="Бя"/>
+<l:template name="Sun" text="Ня"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0450 Mongolian (MONGOLIA)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Тэмдэгтүүд</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="270">А</l:l>
+<l:l i="270">а</l:l>
+<l:l i="280">Б</l:l>
+<l:l i="280">б</l:l>
+<l:l i="290">В</l:l>
+<l:l i="290">в</l:l>
+<l:l i="300">Г</l:l>
+<l:l i="300">г</l:l>
+<l:l i="310">Д</l:l>
+<l:l i="310">д</l:l>
+<l:l i="320">Е</l:l>
+<l:l i="320">е</l:l>
+<l:l i="330">Ё</l:l>
+<l:l i="330">ё</l:l>
+<l:l i="340">Ж</l:l>
+<l:l i="340">ж</l:l>
+<l:l i="350">З</l:l>
+<l:l i="350">з</l:l>
+<l:l i="360">И</l:l>
+<l:l i="360">и</l:l>
+<l:l i="370">Й</l:l>
+<l:l i="370">й</l:l>
+<l:l i="380">К</l:l>
+<l:l i="380">к</l:l>
+<l:l i="390">Л</l:l>
+<l:l i="390">л</l:l>
+<l:l i="400">М</l:l>
+<l:l i="400">м</l:l>
+<l:l i="410">Н</l:l>
+<l:l i="410">н</l:l>
+<l:l i="420">О</l:l>
+<l:l i="420">о</l:l>
+<l:l i="430">Ө</l:l>
+<l:l i="430">ө</l:l>
+<l:l i="440">П</l:l>
+<l:l i="440">п</l:l>
+<l:l i="450">Р</l:l>
+<l:l i="450">р</l:l>
+<l:l i="460">С</l:l>
+<l:l i="460">с</l:l>
+<l:l i="470">Т</l:l>
+<l:l i="470">т</l:l>
+<l:l i="480">У</l:l>
+<l:l i="480">у</l:l>
+<l:l i="490">Ү</l:l>
+<l:l i="490">ү</l:l>
+<l:l i="500">Ф</l:l>
+<l:l i="500">ф</l:l>
+<l:l i="510">Х</l:l>
+<l:l i="510">х</l:l>
+<l:l i="520">Ц</l:l>
+<l:l i="520">ц</l:l>
+<l:l i="530">Ч</l:l>
+<l:l i="530">ч</l:l>
+<l:l i="540">Ш</l:l>
+<l:l i="540">ш</l:l>
+<l:l i="550">Щ</l:l>
+<l:l i="550">щ</l:l>
+<l:l i="560">Ъ</l:l>
+<l:l i="560">ъ</l:l>
+<l:l i="570">Ы</l:l>
+<l:l i="570">ы</l:l>
+<l:l i="580">Ь</l:l>
+<l:l i="580">ь</l:l>
+<l:l i="590">Э</l:l>
+<l:l i="590">э</l:l>
+<l:l i="600">Ю</l:l>
+<l:l i="600">ю</l:l>
+<l:l i="610">Я</l:l>
+<l:l i="610">я</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/mr.xml b/applications/content/template/docbook/common/mr.xml
new file mode 100644
index 0000000..a86fbe3
--- /dev/null
+++ b/applications/content/template/docbook/common/mr.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="mr" english-language-name="Marathi">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/mr.xml -->
+<!-- * -->
+<!-- * E-mail the edited mr.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="सारांश"/>
+<l:gentext key="abstract" text="सारांश"/>
+<l:gentext key="Acknowledgements" text="आभार"/>
+<l:gentext key="acknowledgements" text="आभार"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="a:"/>
+<l:gentext key="Appendix" text="परिशिष्ट"/>
+<l:gentext key="appendix" text="परिशिष्ट"/>
+<l:gentext key="Article" text="लेख"/>
+<l:gentext key="article" text="लेख"/>
+<l:gentext key="Author" text="लेखक"/>
+<l:gentext key="Bibliography" text="ग्रंथसूची"/>
+<l:gentext key="bibliography" text="ग्रंथसूची"/>
+<l:gentext key="Book" text="पुस्तक"/>
+<l:gentext key="book" text="पुस्तक"/>
+<l:gentext key="CAUTION" text="सावधगिरी"/>
+<l:gentext key="Caution" text="सावधगिरी"/>
+<l:gentext key="caution" text="सावधगिरी"/>
+<l:gentext key="Chapter" text="धडा"/>
+<l:gentext key="chapter" text="धडा"/>
+<l:gentext key="Colophon" text="कोलोफोन"/>
+<l:gentext key="colophon" text="कोलोफोन"/>
+<l:gentext key="Copyright" text="सर्वाहक्काधिकार"/>
+<l:gentext key="copyright" text="सर्वाहक्काधिकार"/>
+<l:gentext key="Dedication" text="समर्पण"/>
+<l:gentext key="dedication" text="समर्पण"/>
+<l:gentext key="Edition" text="आवृत्ती"/>
+<l:gentext key="edition" text="आवृत्ती"/>
+<l:gentext key="Editor" text="संपादक"/>
+<l:gentext key="Equation" text="समीकरण"/>
+<l:gentext key="equation" text="समीकरण"/>
+<l:gentext key="Example" text="उदाहरण"/>
+<l:gentext key="example" text="उदाहरण"/>
+<l:gentext key="Figure" text="आकृती"/>
+<l:gentext key="figure" text="आकृती"/>
+<l:gentext key="Glossary" text="शब्दकोष"/>
+<l:gentext key="glossary" text="शब्दकोष"/>
+<l:gentext key="GlossSee" text="पहा"/>
+<l:gentext key="glosssee" text="पहा"/>
+<l:gentext key="GlossSeeAlso" text="हे ही पहा"/>
+<l:gentext key="glossseealso" text="हे ही पहा"/>
+<l:gentext key="IMPORTANT" text="महत्तावचे"/>
+<l:gentext key="important" text="महत्तावचे"/>
+<l:gentext key="Important" text="महत्तावचे"/>
+<l:gentext key="Index" text="इंडेक्स्"/>
+<l:gentext key="index" text="इंडेक्स्"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="isbn"/>
+<l:gentext key="LegalNotice" text="कायदेशीर सूचना"/>
+<l:gentext key="legalnotice" text="कायदेशीर सूचना"/>
+<l:gentext key="MsgAud" text="प्रक्षेक"/>
+<l:gentext key="msgaud" text="प्रक्षेक"/>
+<l:gentext key="MsgLevel" text="स्तर"/>
+<l:gentext key="msglevel" text="स्तर"/>
+<l:gentext key="MsgOrig" text="मुळ"/>
+<l:gentext key="msgorig" text="मुळ"/>
+<l:gentext key="NOTE" text="टीप"/>
+<l:gentext key="Note" text="टीप"/>
+<l:gentext key="note" text="टीप"/>
+<l:gentext key="Part" text="भाग"/>
+<l:gentext key="part" text="भाग"/>
+<l:gentext key="Preface" text="प्रस्तावना"/>
+<l:gentext key="preface" text="प्रस्तावना"/>
+<l:gentext key="Procedure" text="कार्यपद्धत"/>
+<l:gentext key="procedure" text="कार्यपद्धत"/>
+<l:gentext key="ProductionSet" text="प्रस्तुति"/>
+<l:gentext key="PubDate" text="प्रकाशन दिनांक"/>
+<l:gentext key="pubdate" text="प्रकाशन दिनांक"/>
+<l:gentext key="Published" text="प्रकाशीत"/>
+<l:gentext key="published" text="प्रकाशीत"/>
+<l:gentext key="Publisher" text="प्रकाशक"/>
+<l:gentext key="Qandadiv" text="Q &amp; A"/>
+<l:gentext key="qandadiv" text="Q &amp; A"/>
+<l:gentext key="QandASet" text="नेहमी विचारलेली प्रश्न"/>
+<l:gentext key="Question" text="Q:"/>
+<l:gentext key="question" text="q:"/>
+<l:gentext key="RefEntry" text="पान"/>
+<l:gentext key="refentry" text="पान"/>
+<l:gentext key="Reference" text="संदर्भ"/>
+<l:gentext key="reference" text="संदर्भ"/>
+<l:gentext key="References" text="संदर्भ"/>
+<l:gentext key="RefName" text="नाव"/>
+<l:gentext key="refname" text="नाव"/>
+<l:gentext key="RefSection" text="विभाग"/>
+<l:gentext key="refsection" text="विभाग"/>
+<l:gentext key="RefSynopsisDiv" text="रूपरेशा"/>
+<l:gentext key="refsynopsisdiv" text="रूपरेशा"/>
+<l:gentext key="RevHistory" text="आवृत्ती हतिहास"/>
+<l:gentext key="revhistory" text="आवृत्ती हतिहास"/>
+<l:gentext key="revision" text="आवृत्ती"/>
+<l:gentext key="Revision" text="आवृत्ती"/>
+<l:gentext key="sect1" text="विभाग"/>
+<l:gentext key="sect2" text="विभाग"/>
+<l:gentext key="sect3" text="विभाग"/>
+<l:gentext key="sect4" text="विभाग"/>
+<l:gentext key="sect5" text="विभाग"/>
+<l:gentext key="section" text="विभाग"/>
+<l:gentext key="Section" text="विभाग"/>
+<l:gentext key="see" text="पहा"/>
+<l:gentext key="See" text="पहा"/>
+<l:gentext key="seealso" text="हे ही पहा"/>
+<l:gentext key="Seealso" text="हे ही पहा"/>
+<l:gentext key="SeeAlso" text="हे ही पहा"/>
+<l:gentext key="set" text="गट"/>
+<l:gentext key="Set" text="गट"/>
+<l:gentext key="setindex" text="इंडेक्स् गट"/>
+<l:gentext key="SetIndex" text="इंडेक्स् गट"/>
+<l:gentext key="Sidebar" text="बाजूची पट्टी"/>
+<l:gentext key="sidebar" text="बाजूची पट्टी"/>
+<l:gentext key="step" text="कार्य"/>
+<l:gentext key="Step" text="कार्य"/>
+<l:gentext key="table" text="तक्ता"/>
+<l:gentext key="Table" text="तक्ता"/>
+<l:gentext key="task" text="कार्य"/>
+<l:gentext key="Task" text="कार्य"/>
+<l:gentext key="tip" text="टीप"/>
+<l:gentext key="TIP" text="टीप"/>
+<l:gentext key="Tip" text="टीप"/>
+<l:gentext key="Warning" text="सावधानता"/>
+<l:gentext key="warning" text="सावधानता"/>
+<l:gentext key="WARNING" text="सावधानता"/>
+<l:gentext key="and" text="व"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="द्वारे"/>
+<l:gentext key="Edited" text="संपादीत"/>
+<l:gentext key="edited" text="संपादीत"/>
+<l:gentext key="Editedby" text="द्वारे संपादीत"/>
+<l:gentext key="editedby" text="द्वारे संपादीत"/>
+<l:gentext key="in" text="मधील"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="टीपा"/>
+<l:gentext key="Notes" text="टीपा"/>
+<l:gentext key="Pgs" text="पाने"/>
+<l:gentext key="pgs" text="पाने"/>
+<l:gentext key="Revisedby" text="द्वारे सुधारीत: "/>
+<l:gentext key="revisedby" text="द्वारे सुधारीत: "/>
+<l:gentext key="TableNotes" text="टीपा"/>
+<l:gentext key="tablenotes" text="टीपा"/>
+<l:gentext key="TableofContents" text="अनुक्रमणिका"/>
+<l:gentext key="tableofcontents" text="अनुक्रमणिका"/>
+<l:gentext key="unexpectedelementname" text="अनपेक्षीत घटकाचे नाव"/>
+<l:gentext key="unsupported" text="असमर्थीत"/>
+<l:gentext key="xrefto" text="xref"/>
+<l:gentext key="Authors" text="लेखक"/>
+<l:gentext key="copyeditor" text="प्रत संपादक"/>
+<l:gentext key="graphicdesigner" text="ग्राफिक्स् डिजाइनर"/>
+<l:gentext key="productioneditor" text="प्रोडक्शन संपादक"/>
+<l:gentext key="technicaleditor" text="तांत्रिक संपादक"/>
+<l:gentext key="translator" text="भाषांतरनकर्ता"/>
+<l:gentext key="listofequations" text="समीकरणांची सूची"/>
+<l:gentext key="ListofEquations" text="समीकरणांची सूची"/>
+<l:gentext key="ListofExamples" text="उदाहरणांची सूची"/>
+<l:gentext key="listofexamples" text="उदाहरणांची सूची"/>
+<l:gentext key="ListofFigures" text="आकृतींची सूची"/>
+<l:gentext key="listoffigures" text="आकृतींची सूची"/>
+<l:gentext key="ListofProcedures" text="कार्यपद्धतींची सूची"/>
+<l:gentext key="listofprocedures" text="कार्यपद्धतींची सूची"/>
+<l:gentext key="listoftables" text="तक्त्यांची सूची"/>
+<l:gentext key="ListofTables" text="तक्त्यांची सूची"/>
+<l:gentext key="ListofUnknown" text="अपरिचीतांची सूची"/>
+<l:gentext key="listofunknown" text="अपरिचीतांची सूची"/>
+<l:gentext key="nav-home" text="होम"/>
+<l:gentext key="nav-next" text="पुढील"/>
+<l:gentext key="nav-next-sibling" text="पटकन पुढे चला"/>
+<l:gentext key="nav-prev" text="मागील"/>
+<l:gentext key="nav-prev-sibling" text="पटकन माघे चला"/>
+<l:gentext key="nav-up" text="वर"/>
+<l:gentext key="nav-toc" text="अनुक्रमणिका"/>
+<l:gentext key="Draft" text="मसुदा"/>
+<l:gentext key="above" text="वरील"/>
+<l:gentext key="below" text="खालील"/>
+<l:gentext key="sectioncalled" text="...नामक विभाग"/>
+<l:gentext key="index symbols" text="प्रतीक"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="परिशिष्ट %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="धडा %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="समीकरण %n. %t"/>
+<l:template name="example" text="उदाहरण %n. %t"/>
+<l:template name="figure" text="आकृती %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="भाग %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="कार्यपद्धत %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="प्रस्तुति %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="तक्ता %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="परिशिष्ट %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="धडा %n. %t"/>
+<l:template name="part" text="भाग %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="...नामक विभाग “%t”"/>
+<l:template name="refsection" text="...नामक विभाग “%t”"/>
+<l:template name="refsect1" text="...नामक विभाग “%t”"/>
+<l:template name="refsect2" text="...नामक विभाग “%t”"/>
+<l:template name="refsect3" text="...नामक विभाग “%t”"/>
+<l:template name="sect1" text="...नामक विभाग “%t”"/>
+<l:template name="sect2" text="...नामक विभाग “%t”"/>
+<l:template name="sect3" text="...नामक विभाग “%t”"/>
+<l:template name="sect4" text="...नामक विभाग “%t”"/>
+<l:template name="sect5" text="...नामक विभाग “%t”"/>
+<l:template name="section" text="...नामक विभाग “%t”"/>
+<l:template name="simplesect" text="...नामक विभाग “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="परिशिष्ट %n"/>
+<l:template name="bridgehead" text="विभाग %n"/>
+<l:template name="chapter" text="धडा %n"/>
+<l:template name="equation" text="समीकरण %n"/>
+<l:template name="example" text="उदाहरण %n"/>
+<l:template name="figure" text="आकृती %n"/>
+<l:template name="part" text="भाग %n"/>
+<l:template name="procedure" text="कार्यपद्धत %n"/>
+<l:template name="productionset" text="प्रस्तुति %n"/>
+<l:template name="qandadiv" text="Q &amp; A %n"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="sect1" text="विभाग %n"/>
+<l:template name="sect2" text="विभाग %n"/>
+<l:template name="sect3" text="विभाग %n"/>
+<l:template name="sect4" text="विभाग %n"/>
+<l:template name="sect5" text="विभाग %n"/>
+<l:template name="section" text="विभाग %n"/>
+<l:template name="table" text="तक्ता %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="परिशिष्ट %n, %t"/>
+<l:template name="bridgehead" text="विभाग %n, “%t”"/>
+<l:template name="chapter" text="धडा %n, %t"/>
+<l:template name="equation" text="समीकरण %n, “%t”"/>
+<l:template name="example" text="उदाहरण %n, “%t”"/>
+<l:template name="figure" text="आकृती %n, “%t”"/>
+<l:template name="part" text="भाग %n, “%t”"/>
+<l:template name="procedure" text="कार्यपद्धत %n, “%t”"/>
+<l:template name="productionset" text="प्रस्तुति %n, “%t”"/>
+<l:template name="qandadiv" text="Q &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="...नामक विभाग “%t”"/>
+<l:template name="refsect2" text="...नामक विभाग “%t”"/>
+<l:template name="refsect3" text="...नामक विभाग “%t”"/>
+<l:template name="refsection" text="...नामक विभाग “%t”"/>
+<l:template name="sect1" text="विभाग %n, “%t”"/>
+<l:template name="sect2" text="विभाग %n, “%t”"/>
+<l:template name="sect3" text="विभाग %n, “%t”"/>
+<l:template name="sect4" text="विभाग %n, “%t”"/>
+<l:template name="sect5" text="विभाग %n, “%t”"/>
+<l:template name="section" text="विभाग %n, “%t”"/>
+<l:template name="simplesect" text="...नामक विभाग “%t”"/>
+<l:template name="table" text="तक्ता %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" व "/>
+<l:template name="seplast" text=", व "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="पहा %t."/>
+<l:template name="seealso" text="हे ही पहा %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="प्रक्षेक: "/>
+<l:template name="MsgLevel" text="स्तर: "/>
+<l:template name="MsgOrig" text="मुळ: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="जानेवारी"/>
+<l:template name="February" text="फेब्रुवारी"/>
+<l:template name="March" text="मार्च"/>
+<l:template name="April" text="एप्रिल"/>
+<l:template name="May" text="मे"/>
+<l:template name="June" text="जून"/>
+<l:template name="July" text="जुलै"/>
+<l:template name="August" text="ऑगस्ट"/>
+<l:template name="September" text="सप्टेंबर"/>
+<l:template name="October" text="ऑक्टोबर"/>
+<l:template name="November" text="नोव्हेंबर"/>
+<l:template name="December" text="डिसेंबर"/>
+<l:template name="Monday" text="सोमवार"/>
+<l:template name="Tuesday" text="मंगळवार"/>
+<l:template name="Wednesday" text="बुधवार"/>
+<l:template name="Thursday" text="गुरूवार"/>
+<l:template name="Friday" text="शुक्रवार"/>
+<l:template name="Saturday" text="शनिवार"/>
+<l:template name="Sunday" text="रविवार"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="जा"/>
+<l:template name="Feb" text="फेब्रुवारी"/>
+<l:template name="Mar" text="मार्च"/>
+<l:template name="Apr" text="एप्रिल"/>
+<l:template name="May" text="मे"/>
+<l:template name="Jun" text="जून"/>
+<l:template name="Jul" text="जुलै"/>
+<l:template name="Aug" text="ऑगस्ट"/>
+<l:template name="Sep" text="सप्टें"/>
+<l:template name="Oct" text="ऑक्टो"/>
+<l:template name="Nov" text="नोव्हेंबर"/>
+<l:template name="Dec" text="डिसेंबर"/>
+<l:template name="Mon" text="सोम"/>
+<l:template name="Tue" text="मंगळ"/>
+<l:template name="Wed" text="बुध"/>
+<l:template name="Thu" text="गुरू"/>
+<l:template name="Fri" text="शुक्र"/>
+<l:template name="Sat" text="शनि"/>
+<l:template name="Sun" text="रवि"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x044e Marathi"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">प्रतीक</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/nb.xml b/applications/content/template/docbook/common/nb.xml
new file mode 100644
index 0000000..bbd8aee
--- /dev/null
+++ b/applications/content/template/docbook/common/nb.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="nb" english-language-name="Norwegian Bokmål">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/nb.xml -->
+<!-- * -->
+<!-- * E-mail the edited nb.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Sammendrag"/>
+<l:gentext key="abstract" text="Sammendrag"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="Svar"/>
+<l:gentext key="answer" text="svar"/>
+<l:gentext key="Appendix" text="Tillegg"/>
+<l:gentext key="appendix" text="Tillegg"/>
+<l:gentext key="Article" text="Artikkel"/>
+<l:gentext key="article" text="artikkel"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografi"/>
+<l:gentext key="bibliography" text="Bibliografi"/>
+<l:gentext key="Book" text="Bok"/>
+<l:gentext key="book" text="bok"/>
+<l:gentext key="CAUTION" text="OBS"/>
+<l:gentext key="Caution" text="Obs"/>
+<l:gentext key="caution" text="obs"/>
+<l:gentext key="Chapter" text="Kapittel"/>
+<l:gentext key="chapter" text="Kapittel"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="kolofon"/>
+<l:gentext key="Copyright" text="Opphavsrett"/>
+<l:gentext key="copyright" text="opphavsrett"/>
+<l:gentext key="Dedication" text="Dedikasjon"/>
+<l:gentext key="dedication" text="Dedikasjon"/>
+<l:gentext key="Edition" text="Utgave"/>
+<l:gentext key="edition" text="utgave"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Formel"/>
+<l:gentext key="equation" text="Formel"/>
+<l:gentext key="Example" text="Eksempel"/>
+<l:gentext key="example" text="Eksempel"/>
+<l:gentext key="Figure" text="Figur"/>
+<l:gentext key="figure" text="Figur"/>
+<l:gentext key="Glossary" text="Ordliste"/>
+<l:gentext key="glossary" text="Ordliste"/>
+<l:gentext key="GlossSee" text="Se"/>
+<l:gentext key="glosssee" text="Se"/>
+<l:gentext key="GlossSeeAlso" text="Se også"/>
+<l:gentext key="glossseealso" text="se også"/>
+<l:gentext key="IMPORTANT" text="VIKTIG"/>
+<l:gentext key="important" text="viktig"/>
+<l:gentext key="Important" text="Viktig"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="Indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Rettslig merknad"/>
+<l:gentext key="legalnotice" text="rettslig merknad"/>
+<l:gentext key="MsgAud" text="Publikum"/>
+<l:gentext key="msgaud" text="Publikum"/>
+<l:gentext key="MsgLevel" text="Nivå"/>
+<l:gentext key="msglevel" text="Nivå"/>
+<l:gentext key="MsgOrig" text="Opphav"/>
+<l:gentext key="msgorig" text="Opphav"/>
+<l:gentext key="NOTE" text="NOTAT"/>
+<l:gentext key="Note" text="Notat"/>
+<l:gentext key="note" text="notat"/>
+<l:gentext key="Part" text="Del"/>
+<l:gentext key="part" text="del"/>
+<l:gentext key="Preface" text="Forord"/>
+<l:gentext key="preface" text="forord"/>
+<l:gentext key="Procedure" text="Prosedyre"/>
+<l:gentext key="procedure" text="prosedyre"/>
+<l:gentext key="ProductionSet" text="Produksjon"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Publisert"/>
+<l:gentext key="published" text="publisert"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Spørsmål og svar"/>
+<l:gentext key="qandadiv" text="spørsmål og svar"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Spørsmål"/>
+<l:gentext key="question" text="spørsmål"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referanse"/>
+<l:gentext key="reference" text="referanse"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Navn"/>
+<l:gentext key="refname" text="navn"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="Synopsis"/>
+<l:gentext key="RevHistory" text="Revisjonshistorie"/>
+<l:gentext key="revhistory" text="revisjonshistorie"/>
+<l:gentext key="revision" text="revisjon"/>
+<l:gentext key="Revision" text="Revisjon"/>
+<l:gentext key="sect1" text="Seksjon"/>
+<l:gentext key="sect2" text="Seksjon"/>
+<l:gentext key="sect3" text="Seksjon"/>
+<l:gentext key="sect4" text="Seksjon"/>
+<l:gentext key="sect5" text="Seksjon"/>
+<l:gentext key="section" text="seksjon"/>
+<l:gentext key="Section" text="Seksjon"/>
+<l:gentext key="see" text="Se"/>
+<l:gentext key="See" text="Se"/>
+<l:gentext key="seealso" text="se også"/>
+<l:gentext key="Seealso" text="Se også"/>
+<l:gentext key="SeeAlso" text="Se også"/>
+<l:gentext key="set" text="sett"/>
+<l:gentext key="Set" text="Sett"/>
+<l:gentext key="setindex" text="settindeks"/>
+<l:gentext key="SetIndex" text="Settindeks"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text=""/>
+<l:gentext key="step" text="steg"/>
+<l:gentext key="Step" text="Steg"/>
+<l:gentext key="table" text="tabell"/>
+<l:gentext key="Table" text="Tabell"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Tips"/>
+<l:gentext key="TIP" text="TIPS"/>
+<l:gentext key="Tip" text="Tips"/>
+<l:gentext key="Warning" text="Advarsel"/>
+<l:gentext key="warning" text="advarsel"/>
+<l:gentext key="WARNING" text="ADVARSEL"/>
+<l:gentext key="and" text="og"/>
+<l:gentext key="or" text="eller"/>
+<l:gentext key="by" text="av"/>
+<l:gentext key="Edited" text="Redigert"/>
+<l:gentext key="edited" text="redigert"/>
+<l:gentext key="Editedby" text="Redigert av"/>
+<l:gentext key="editedby" text="redigert av"/>
+<l:gentext key="in" text="i"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Sluttnotater"/>
+<l:gentext key="Notes" text="sluttnotater"/>
+<l:gentext key="Pgs" text="Sider"/>
+<l:gentext key="pgs" text="sider"/>
+<l:gentext key="Revisedby" text="Gjennomgått av: "/>
+<l:gentext key="revisedby" text="gjennomgått av: "/>
+<l:gentext key="TableNotes" text="Notater"/>
+<l:gentext key="tablenotes" text="notater"/>
+<l:gentext key="TableofContents" text="Innholdsfortegnelse"/>
+<l:gentext key="tableofcontents" text="innholdsfortegnelse"/>
+<l:gentext key="unexpectedelementname" text="UVENTET-ELEMENTNAVN"/>
+<l:gentext key="unsupported" text="ikke støttet"/>
+<l:gentext key="xrefto" text="xref til"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Formeloversikt"/>
+<l:gentext key="ListofEquations" text="formeloversikt"/>
+<l:gentext key="ListofExamples" text="Eksempeloversikt"/>
+<l:gentext key="listofexamples" text="eksempeloversikt"/>
+<l:gentext key="ListofFigures" text="Figuroversikt"/>
+<l:gentext key="listoffigures" text="figuroversikt"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Tabelloversikt"/>
+<l:gentext key="ListofTables" text="tabelloversikt"/>
+<l:gentext key="ListofUnknown" text="???-oversikt"/>
+<l:gentext key="listofunknown" text="???-oversikt"/>
+<l:gentext key="nav-home" text="Hjem"/>
+<l:gentext key="nav-next" text="Neste"/>
+<l:gentext key="nav-next-sibling" text="Raskt fremover"/>
+<l:gentext key="nav-prev" text="Forrige"/>
+<l:gentext key="nav-prev-sibling" text="Raskt bakover"/>
+<l:gentext key="nav-up" text="Opp"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Utkast"/>
+<l:gentext key="above" text="over"/>
+<l:gentext key="below" text="under"/>
+<l:gentext key="sectioncalled" text="Seksjonen kalt"/>
+<l:gentext key="index symbols" text="Symboler"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzæøå"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Tillegg %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapittel %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Formel %n. %t"/>
+<l:template name="example" text="Eksempel %n. %t"/>
+<l:template name="figure" text="Figur %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Prosedyre %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produksjon %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabell %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Tillegg %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Kapittel %n. %t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Svar %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Spørsmål %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Spørsmål %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Svar %n"/>
+<l:template name="appendix" text="Tillegg %n"/>
+<l:template name="bridgehead" text="Seksjon %n"/>
+<l:template name="chapter" text="Kapittel %n"/>
+<l:template name="equation" text="Formel %n"/>
+<l:template name="example" text="Eksempel %n"/>
+<l:template name="figure" text="Figur %n"/>
+<l:template name="part" text="Del %n"/>
+<l:template name="procedure" text="Prosedyre %n"/>
+<l:template name="productionset" text="Produksjon %n"/>
+<l:template name="qandadiv" text="Spørsmål og svar %n"/>
+<l:template name="qandaentry" text="Spørsmål %n"/>
+<l:template name="question" text="Spørsmål %n"/>
+<l:template name="sect1" text="Seksjon %n"/>
+<l:template name="sect2" text="Seksjon %n"/>
+<l:template name="sect3" text="Seksjon %n"/>
+<l:template name="sect4" text="Seksjon %n"/>
+<l:template name="sect5" text="Seksjon %n"/>
+<l:template name="section" text="Seksjon %n"/>
+<l:template name="table" text="Tabell %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Tillegg %n, %t"/>
+<l:template name="bridgehead" text="Seksjon %n, “%t”"/>
+<l:template name="chapter" text="Kapittel %n, %t"/>
+<l:template name="equation" text="Formel %n, “%t”"/>
+<l:template name="example" text="Eksempel %n, “%t”"/>
+<l:template name="figure" text="Figur %n, “%t”"/>
+<l:template name="part" text="Del %n, “%t”"/>
+<l:template name="procedure" text="Prosedyre %n, “%t”"/>
+<l:template name="productionset" text="Produksjon %n, “%t”"/>
+<l:template name="qandadiv" text="Spørsmål og svar %n, “%t”"/>
+<l:template name="refsect1" text="Seksjonen kalt “%t”"/>
+<l:template name="refsect2" text="Seksjonen kalt “%t”"/>
+<l:template name="refsect3" text="Seksjonen kalt “%t”"/>
+<l:template name="refsection" text="Seksjonen kalt “%t”"/>
+<l:template name="sect1" text="Seksjon %n, “%t”"/>
+<l:template name="sect2" text="Seksjon %n, “%t”"/>
+<l:template name="sect3" text="Seksjon %n, “%t”"/>
+<l:template name="sect4" text="Seksjon %n, “%t”"/>
+<l:template name="sect5" text="Seksjon %n, “%t”"/>
+<l:template name="section" text="Seksjon %n, “%t”"/>
+<l:template name="simplesect" text="Seksjonen kalt “%t”"/>
+<l:template name="table" text="Tabell %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" og "/>
+<l:template name="seplast" text=", og "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Se %t."/>
+<l:template name="seealso" text="Se også %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Publikum: "/>
+<l:template name="MsgLevel" text="Nivå: "/>
+<l:template name="MsgOrig" text="Opphav: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0414 Norwegian Bokmål"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/nds.xml b/applications/content/template/docbook/common/nds.xml
new file mode 100644
index 0000000..2685d0a
--- /dev/null
+++ b/applications/content/template/docbook/common/nds.xml
@@ -0,0 +1,684 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="nds" english-language-name="Low German">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/nds.xml -->
+<!-- * -->
+<!-- * E-mail the edited nds.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Tosammenfaten"/>
+<l:gentext key="abstract" text="Tosammenfaten"/>
+<l:gentext key="Acknowledgements" text="Danksagungen"/>
+<l:gentext key="acknowledgements" text="Danksagungen"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="a:"/>
+<l:gentext key="Appendix" text="Anhang"/>
+<l:gentext key="appendix" text="Anhang"/>
+<l:gentext key="Article" text="Artikel"/>
+<l:gentext key="article" text="Artikel"/>
+<l:gentext key="Author" text="Schriever"/>
+<l:gentext key="Bibliography" text="Literaturverteeknis"/>
+<l:gentext key="bibliography" text="Literaturverteeknis"/>
+<l:gentext key="Book" text="Book"/>
+<l:gentext key="book" text="Book"/>
+<l:gentext key="CAUTION" text="ACHTUNG"/>
+<l:gentext key="Caution" text="Achtung"/>
+<l:gentext key="caution" text="Achtung"/>
+<l:gentext key="Chapter" text="Kapitel"/>
+<l:gentext key="chapter" text="Kapitel"/>
+<l:gentext key="Colophon" text="Kolophon"/>
+<l:gentext key="colophon" text="Kolophon"/>
+<l:gentext key="Copyright" text="Koperschood"/>
+<l:gentext key="copyright" text="Koperschood"/>
+<l:gentext key="Dedication" text="Widmung"/>
+<l:gentext key="dedication" text="Widmung"/>
+<l:gentext key="Edition" text="Utgav"/>
+<l:gentext key="edition" text="Utgav"/>
+<l:gentext key="Editor" text="Bewarker"/>
+<l:gentext key="Equation" text="Glieken"/>
+<l:gentext key="equation" text="Glieken"/>
+<l:gentext key="Example" text="Bispeel"/>
+<l:gentext key="example" text="Bispeel"/>
+<l:gentext key="Figure" text="Avbillen"/>
+<l:gentext key="figure" text="Avbillen"/>
+<l:gentext key="Glossary" text="Glossar"/>
+<l:gentext key="glossary" text="Glossar"/>
+<l:gentext key="GlossSee" text="Kiek"/>
+<l:gentext key="glosssee" text="kiek"/>
+<l:gentext key="GlossSeeAlso" text="Kiek ook"/>
+<l:gentext key="glossseealso" text="kiek ook"/>
+<l:gentext key="IMPORTANT" text="WICHTIG"/>
+<l:gentext key="important" text="Wichtig"/>
+<l:gentext key="Important" text="Wichtig"/>
+<l:gentext key="Index" text="Index"/>
+<l:gentext key="index" text="Index"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Rechtlicher Henwies"/>
+<l:gentext key="legalnotice" text="rechtlicher Henwies"/>
+<l:gentext key="MsgAud" text="Täälgrupp"/>
+<l:gentext key="msgaud" text="Täälgrupp"/>
+<l:gentext key="MsgLevel" text="Ebene"/>
+<l:gentext key="msglevel" text="Ebene"/>
+<l:gentext key="MsgOrig" text="Ursprung"/>
+<l:gentext key="msgorig" text="Ursprung"/>
+<l:gentext key="NOTE" text="NOTIZ"/>
+<l:gentext key="Note" text="Notiz"/>
+<l:gentext key="note" text="Notiz"/>
+<l:gentext key="Part" text="Deel"/>
+<l:gentext key="part" text="Deel"/>
+<l:gentext key="Preface" text="Vorwoord"/>
+<l:gentext key="preface" text="Vorwoord"/>
+<l:gentext key="Procedure" text="Prozedur"/>
+<l:gentext key="procedure" text="Prozedur"/>
+<l:gentext key="ProductionSet" text="Produktschoon"/>
+<l:gentext key="PubDate" text="Veröpenlichendag"/>
+<l:gentext key="pubdate" text="Veröpenlichendag"/>
+<l:gentext key="Published" text="Veröpenlicht"/>
+<l:gentext key="published" text="Veröpenlicht"/>
+<l:gentext key="Publisher" text="Veröpenlicher"/>
+<l:gentext key="Qandadiv" text="F &amp; A"/>
+<l:gentext key="qandadiv" text="F &amp; A"/>
+<l:gentext key="QandASet" text="Oft stellte Fragen"/>
+<l:gentext key="Question" text="F:"/>
+<l:gentext key="question" text="F:"/>
+<l:gentext key="RefEntry" text="Siet"/>
+<l:gentext key="refentry" text="Siet"/>
+<l:gentext key="Reference" text="Verwies"/>
+<l:gentext key="reference" text="Verwies"/>
+<l:gentext key="References" text="Verwiese"/>
+<l:gentext key="RefName" text="Naam"/>
+<l:gentext key="refname" text="Naam"/>
+<l:gentext key="RefSection" text="Rebeet"/>
+<l:gentext key="refsection" text="Rebeet"/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="Synopsis"/>
+<l:gentext key="RevHistory" text="Verschoonshistorie"/>
+<l:gentext key="revhistory" text="Verschoonshistorie"/>
+<l:gentext key="revision" text="Verschoon"/>
+<l:gentext key="Revision" text="Verschoon"/>
+<l:gentext key="sect1" text="Rebeet"/>
+<l:gentext key="sect2" text="Rebeet"/>
+<l:gentext key="sect3" text="Rebeet"/>
+<l:gentext key="sect4" text="Rebeet"/>
+<l:gentext key="sect5" text="Rebeet"/>
+<l:gentext key="section" text="Rebeet"/>
+<l:gentext key="Section" text="Rebeet"/>
+<l:gentext key="see" text="kiek"/>
+<l:gentext key="See" text="Kiek"/>
+<l:gentext key="seealso" text="kiek ook"/>
+<l:gentext key="Seealso" text="Kiek ook"/>
+<l:gentext key="SeeAlso" text="Kiek ook"/>
+<l:gentext key="set" text="Satt"/>
+<l:gentext key="Set" text="Satt"/>
+<l:gentext key="setindex" text="Stickwoordverteeknis"/>
+<l:gentext key="SetIndex" text="Stickwoordverteeknis"/>
+<l:gentext key="Sidebar" text="Randnotiz"/>
+<l:gentext key="sidebar" text="Randnotiz"/>
+<l:gentext key="step" text="Schritt"/>
+<l:gentext key="Step" text="Schritt"/>
+<l:gentext key="table" text="Tabell"/>
+<l:gentext key="Table" text="Tabell"/>
+<l:gentext key="task" text="Opgav"/>
+<l:gentext key="Task" text="Opgav"/>
+<l:gentext key="tip" text="Henwies"/>
+<l:gentext key="TIP" text="Henwies"/>
+<l:gentext key="Tip" text="Henwies"/>
+<l:gentext key="Warning" text="Warnung"/>
+<l:gentext key="warning" text="Warnung"/>
+<l:gentext key="WARNING" text="WARNUNG"/>
+<l:gentext key="and" text="un"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="vun"/>
+<l:gentext key="Edited" text="Bewarkt"/>
+<l:gentext key="edited" text="bewarkt"/>
+<l:gentext key="Editedby" text="Bewarkt vun"/>
+<l:gentext key="editedby" text="bewarkt vun"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Notizen"/>
+<l:gentext key="Notes" text="Notizen"/>
+<l:gentext key="Pgs" text="Sieten"/>
+<l:gentext key="pgs" text="Sieten"/>
+<l:gentext key="Revisedby" text="Ännert vun: "/>
+<l:gentext key="revisedby" text="ännert vun: "/>
+<l:gentext key="TableNotes" text="Notizen"/>
+<l:gentext key="tablenotes" text="Notizen"/>
+<l:gentext key="TableofContents" text="Inholltabell"/>
+<l:gentext key="tableofcontents" text="Inholltabell"/>
+<l:gentext key="unexpectedelementname" text="Unerwarteter Elementnaam"/>
+<l:gentext key="unsupported" text="nich unnerstütt"/>
+<l:gentext key="xrefto" text="xref op"/>
+<l:gentext key="Authors" text="Schrievers"/>
+<l:gentext key="copyeditor" text="Korrekteur"/>
+<l:gentext key="graphicdesigner" text="Grafikdesigner"/>
+<l:gentext key="productioneditor" text="Produktschoonsbewarker"/>
+<l:gentext key="technicaleditor" text="Technischer Bewarker"/>
+<l:gentext key="translator" text="Översetter"/>
+<l:gentext key="listofequations" text="Gliekenlist"/>
+<l:gentext key="ListofEquations" text="Gliekenlist"/>
+<l:gentext key="ListofExamples" text="Bispeellist"/>
+<l:gentext key="listofexamples" text="Bispeellist"/>
+<l:gentext key="ListofFigures" text="Avbillenlist"/>
+<l:gentext key="listoffigures" text="Avbillenlist"/>
+<l:gentext key="ListofProcedures" text="Prozedurlist"/>
+<l:gentext key="listofprocedures" text="Prozedurlist"/>
+<l:gentext key="listoftables" text="Tabelllist"/>
+<l:gentext key="ListofTables" text="Tabelllist"/>
+<l:gentext key="ListofUnknown" text="Unbekanntenlist"/>
+<l:gentext key="listofunknown" text="Unbekanntenlist"/>
+<l:gentext key="nav-home" text="Heem"/>
+<l:gentext key="nav-next" text="Nähster"/>
+<l:gentext key="nav-next-sibling" text="Foorts nah vorn"/>
+<l:gentext key="nav-prev" text="Voriger"/>
+<l:gentext key="nav-prev-sibling" text="Foorts torügg"/>
+<l:gentext key="nav-up" text="Op"/>
+<l:gentext key="nav-toc" text="ToC"/>
+<l:gentext key="Draft" text="Entwurf"/>
+<l:gentext key="above" text="över"/>
+<l:gentext key="below" text="unner"/>
+<l:gentext key="sectioncalled" text="avröpter Rebeet"/>
+<l:gentext key="index symbols" text="Symbole"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzäöüß"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Anhang %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Glieken %n. %t"/>
+<l:template name="example" text="Bispeel %n. %t"/>
+<l:template name="figure" text="Avbillen %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Deel %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Prozedur %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produktschoon %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabell %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Anhang %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="part" text="Deel %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="F: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="F: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="avröpter Rebeet “%t”"/>
+<l:template name="refsection" text="avröpter Rebeet “%t”"/>
+<l:template name="refsect1" text="avröpter Rebeet “%t”"/>
+<l:template name="refsect2" text="avröpter Rebeet “%t”"/>
+<l:template name="refsect3" text="avröpter Rebeet “%t”"/>
+<l:template name="sect1" text="avröpter Rebeet “%t”"/>
+<l:template name="sect2" text="avröpter Rebeet “%t”"/>
+<l:template name="sect3" text="avröpter Rebeet “%t”"/>
+<l:template name="sect4" text="avröpter Rebeet “%t”"/>
+<l:template name="sect5" text="avröpter Rebeet “%t”"/>
+<l:template name="section" text="avröpter Rebeet “%t”"/>
+<l:template name="simplesect" text="avröpter Rebeet “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Anhang %n"/>
+<l:template name="bridgehead" text="Rebeet %n"/>
+<l:template name="chapter" text="Kapitel %n"/>
+<l:template name="equation" text="Glieken %n"/>
+<l:template name="example" text="Bispeel %n"/>
+<l:template name="figure" text="Avbillen %n"/>
+<l:template name="part" text="Deel %n"/>
+<l:template name="procedure" text="Prozedur %n"/>
+<l:template name="productionset" text="Produktschoon %n"/>
+<l:template name="qandadiv" text="F &amp; A %n"/>
+<l:template name="qandaentry" text="F: %n"/>
+<l:template name="question" text="F: %n"/>
+<l:template name="sect1" text="Rebeet %n"/>
+<l:template name="sect2" text="Rebeet %n"/>
+<l:template name="sect3" text="Rebeet %n"/>
+<l:template name="sect4" text="Rebeet %n"/>
+<l:template name="sect5" text="Rebeet %n"/>
+<l:template name="section" text="Rebeet %n"/>
+<l:template name="table" text="Tabell %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Anhang %n, %t"/>
+<l:template name="bridgehead" text="Rebeet %n, “%t”"/>
+<l:template name="chapter" text="Kapitel %n, %t"/>
+<l:template name="equation" text="Glieken %n, “%t”"/>
+<l:template name="example" text="Bispeel %n, “%t”"/>
+<l:template name="figure" text="Avbillen %n, “%t”"/>
+<l:template name="part" text="Deel %n, “%t”"/>
+<l:template name="procedure" text="Prozedur %n, “%t”"/>
+<l:template name="productionset" text="Produktschoon %n, “%t”"/>
+<l:template name="qandadiv" text="F &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="avröpter Rebeet “%t”"/>
+<l:template name="refsect2" text="avröpter Rebeet “%t”"/>
+<l:template name="refsect3" text="avröpter Rebeet “%t”"/>
+<l:template name="refsection" text="avröpter Rebeet “%t”"/>
+<l:template name="sect1" text="Rebeet %n, “%t”"/>
+<l:template name="sect2" text="Rebeet %n, “%t”"/>
+<l:template name="sect3" text="Rebeet %n, “%t”"/>
+<l:template name="sect4" text="Rebeet %n, “%t”"/>
+<l:template name="sect5" text="Rebeet %n, “%t”"/>
+<l:template name="section" text="Rebeet %n, “%t”"/>
+<l:template name="simplesect" text="avröpter Rebeet “%t”"/>
+<l:template name="table" text="Tabell %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" un "/>
+<l:template name="seplast" text=", un "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Kiek %t."/>
+<l:template name="seealso" text="Kiek ook %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Täälgrupp: "/>
+<l:template name="MsgLevel" text="Ebene: "/>
+<l:template name="MsgOrig" text="Ursprung: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definitschoon: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Januar"/>
+<l:template name="February" text="Februar"/>
+<l:template name="March" text="März"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="Mai"/>
+<l:template name="June" text="Juni"/>
+<l:template name="July" text="Juli"/>
+<l:template name="August" text="August"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="Oktober"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="Dezember"/>
+<l:template name="Monday" text="Mondag"/>
+<l:template name="Tuesday" text="Deensdag"/>
+<l:template name="Wednesday" text="Middeweeken"/>
+<l:template name="Thursday" text="Dünnersdag"/>
+<l:template name="Friday" text="Friedag"/>
+<l:template name="Saturday" text="Sünnavend"/>
+<l:template name="Sunday" text="Sünndag"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mär"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Mai"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dez"/>
+<l:template name="Mon" text="Mon"/>
+<l:template name="Tue" text="Dee"/>
+<l:template name="Wed" text="Mid"/>
+<l:template name="Thu" text="Dün"/>
+<l:template name="Fri" text="Fri"/>
+<l:template name="Sat" text="Svd"/>
+<l:template name="Sun" text="Sün"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 English (UNITED STATES)" lang="en"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbole</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="1">Ä</l:l>
+<l:l i="1">ä</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="10">J</l:l>
+<l:l i="10">j</l:l>
+<l:l i="11">K</l:l>
+<l:l i="11">k</l:l>
+<l:l i="12">L</l:l>
+<l:l i="12">l</l:l>
+<l:l i="13">M</l:l>
+<l:l i="13">m</l:l>
+<l:l i="14">N</l:l>
+<l:l i="14">n</l:l>
+<l:l i="15">O</l:l>
+<l:l i="15">o</l:l>
+<l:l i="15">Ö</l:l>
+<l:l i="15">ö</l:l>
+<l:l i="16">P</l:l>
+<l:l i="16">p</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="20">T</l:l>
+<l:l i="20">t</l:l>
+<l:l i="21">U</l:l>
+<l:l i="21">u</l:l>
+<l:l i="21">Ü</l:l>
+<l:l i="21">ü</l:l>
+<l:l i="22">V</l:l>
+<l:l i="22">v</l:l>
+<l:l i="23">W</l:l>
+<l:l i="23">w</l:l>
+<l:l i="24">X</l:l>
+<l:l i="24">x</l:l>
+<l:l i="25">Y</l:l>
+<l:l i="25">y</l:l>
+<l:l i="26">Z</l:l>
+<l:l i="26">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/nl.xml b/applications/content/template/docbook/common/nl.xml
new file mode 100644
index 0000000..86101b8
--- /dev/null
+++ b/applications/content/template/docbook/common/nl.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="nl" english-language-name="Dutch">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/nl.xml -->
+<!-- * -->
+<!-- * E-mail the edited nl.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Samenvatting"/>
+<l:gentext key="abstract" text="samenvatting"/>
+<l:gentext key="Acknowledgements" text="Erkenning"/>
+<l:gentext key="acknowledgements" text="erkenning"/>
+<l:gentext key="Answer" text="Antwoord:"/>
+<l:gentext key="answer" text="antwoord:"/>
+<l:gentext key="Appendix" text="Bijlage"/>
+<l:gentext key="appendix" text="bijlage"/>
+<l:gentext key="Article" text="Artikel"/>
+<l:gentext key="article" text="artikel"/>
+<l:gentext key="Author" text="Auteur"/>
+<l:gentext key="Bibliography" text="Literatuurlijst"/>
+<l:gentext key="bibliography" text="literatuurlijst"/>
+<l:gentext key="Book" text="Boek"/>
+<l:gentext key="book" text="boek"/>
+<l:gentext key="CAUTION" text="LET OP"/>
+<l:gentext key="Caution" text="Let op"/>
+<l:gentext key="caution" text="let op"/>
+<l:gentext key="Chapter" text="Hoofdstuk"/>
+<l:gentext key="chapter" text="hoofdstuk"/>
+<l:gentext key="Colophon" text="Colofon"/>
+<l:gentext key="colophon" text="colofon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="copyright"/>
+<l:gentext key="Dedication" text="Opdracht"/>
+<l:gentext key="dedication" text="opdracht"/>
+<l:gentext key="Edition" text="Uitgave"/>
+<l:gentext key="edition" text="uitgave"/>
+<l:gentext key="Editor" text="Redacteur"/>
+<l:gentext key="Equation" text="Vergelijking"/>
+<l:gentext key="equation" text="vergelijking"/>
+<l:gentext key="Example" text="Voorbeeld"/>
+<l:gentext key="example" text="voorbeeld"/>
+<l:gentext key="Figure" text="Afbeelding"/>
+<l:gentext key="figure" text="afbeelding"/>
+<l:gentext key="Glossary" text="Woordenlijst"/>
+<l:gentext key="glossary" text="woordenlijst"/>
+<l:gentext key="GlossSee" text="Zie"/>
+<l:gentext key="glosssee" text="zie"/>
+<l:gentext key="GlossSeeAlso" text="Zie ook"/>
+<l:gentext key="glossseealso" text="zie ook"/>
+<l:gentext key="IMPORTANT" text="BELANGRIJK"/>
+<l:gentext key="important" text="Belangrijk"/>
+<l:gentext key="Important" text="Belangrijk"/>
+<l:gentext key="Index" text="Register"/>
+<l:gentext key="index" text="Register"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="isbn"/>
+<l:gentext key="LegalNotice" text="Juridische kennisgeving"/>
+<l:gentext key="legalnotice" text="juridische kennisgeving"/>
+<l:gentext key="MsgAud" text="Doelgroep"/>
+<l:gentext key="msgaud" text="doelgroep"/>
+<l:gentext key="MsgLevel" text="Niveau"/>
+<l:gentext key="msglevel" text="niveau"/>
+<l:gentext key="MsgOrig" text="Herkomst"/>
+<l:gentext key="msgorig" text="herkomst"/>
+<l:gentext key="NOTE" text="OPMERKING"/>
+<l:gentext key="Note" text="Opmerking"/>
+<l:gentext key="note" text="opmerking"/>
+<l:gentext key="Part" text="Deel"/>
+<l:gentext key="part" text="deel"/>
+<l:gentext key="Preface" text="Voorwoord"/>
+<l:gentext key="preface" text="voorwoord"/>
+<l:gentext key="Procedure" text="Procedure"/>
+<l:gentext key="procedure" text="procedure"/>
+<l:gentext key="ProductionSet" text="Productie"/>
+<l:gentext key="PubDate" text="Publicatie datum"/>
+<l:gentext key="pubdate" text="publicatie datum"/>
+<l:gentext key="Published" text="Uitgegeven"/>
+<l:gentext key="published" text="uitgegeven"/>
+<l:gentext key="Publisher" text="Uitgever"/>
+<l:gentext key="Qandadiv" text="Vraag en antwoord"/>
+<l:gentext key="qandadiv" text="vraag en antwoord"/>
+<l:gentext key="QandASet" text="Vaak gestelde vragen"/>
+<l:gentext key="Question" text="Vraag:"/>
+<l:gentext key="question" text="vraag:"/>
+<l:gentext key="RefEntry" text="Pagina"/>
+<l:gentext key="refentry" text="pagina"/>
+<l:gentext key="Reference" text="Referentie"/>
+<l:gentext key="reference" text="referentie"/>
+<l:gentext key="References" text="Referenties"/>
+<l:gentext key="RefName" text="Name"/>
+<l:gentext key="refname" text="name"/>
+<l:gentext key="RefSection" text="Paragraaf"/>
+<l:gentext key="refsection" text="paragraaf"/>
+<l:gentext key="RefSynopsisDiv" text="Samenvatting"/>
+<l:gentext key="refsynopsisdiv" text="samenvatting"/>
+<l:gentext key="RevHistory" text="Wijzigingsgeschiedenis"/>
+<l:gentext key="revhistory" text="wijzigingsgeschiedenis"/>
+<l:gentext key="revision" text="herziening"/>
+<l:gentext key="Revision" text="Herziening"/>
+<l:gentext key="sect1" text="Paragraaf"/>
+<l:gentext key="sect2" text="Paragraaf"/>
+<l:gentext key="sect3" text="Paragraaf"/>
+<l:gentext key="sect4" text="Paragraaf"/>
+<l:gentext key="sect5" text="Paragraaf"/>
+<l:gentext key="section" text="paragraaf"/>
+<l:gentext key="Section" text="Paragraaf"/>
+<l:gentext key="see" text="zie"/>
+<l:gentext key="See" text="Zie"/>
+<l:gentext key="seealso" text="zie ook"/>
+<l:gentext key="Seealso" text="Zie ook"/>
+<l:gentext key="SeeAlso" text="Zie ook"/>
+<l:gentext key="set" text="verzameling"/>
+<l:gentext key="Set" text="Verzameling"/>
+<l:gentext key="setindex" text="hoofdregister"/>
+<l:gentext key="SetIndex" text="Hoofdregister"/>
+<l:gentext key="Sidebar" text="Zijbalk"/>
+<l:gentext key="sidebar" text="zijbalk"/>
+<l:gentext key="step" text="stap"/>
+<l:gentext key="Step" text="Stap"/>
+<l:gentext key="table" text="tabel"/>
+<l:gentext key="Table" text="Tabel"/>
+<l:gentext key="task" text="taap"/>
+<l:gentext key="Task" text="Taap"/>
+<l:gentext key="tip" text="tip"/>
+<l:gentext key="TIP" text="TIP"/>
+<l:gentext key="Tip" text="Tip"/>
+<l:gentext key="Warning" text="Waarschuwing"/>
+<l:gentext key="warning" text="waarschuwing"/>
+<l:gentext key="WARNING" text="WAARSCHUWING"/>
+<l:gentext key="and" text="en"/>
+<l:gentext key="or" text="of"/>
+<l:gentext key="by" text="door"/>
+<l:gentext key="Edited" text="Redactie"/>
+<l:gentext key="edited" text="redactie"/>
+<l:gentext key="Editedby" text="Onder redactie van"/>
+<l:gentext key="editedby" text="onder redactie van"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="opmerkingen"/>
+<l:gentext key="Notes" text="Opmerkingen"/>
+<l:gentext key="Pgs" text="Blz."/>
+<l:gentext key="pgs" text="blz."/>
+<l:gentext key="Revisedby" text="Herzien door: "/>
+<l:gentext key="revisedby" text="Herzien door: "/>
+<l:gentext key="TableNotes" text="Opmerkingen"/>
+<l:gentext key="tablenotes" text="opmerkingen"/>
+<l:gentext key="TableofContents" text="Inhoudsopgave"/>
+<l:gentext key="tableofcontents" text="inhoudsopgave"/>
+<l:gentext key="unexpectedelementname" text="Onverwachte element naam"/>
+<l:gentext key="unsupported" text="niet ondersteund"/>
+<l:gentext key="xrefto" text="xref naar"/>
+<l:gentext key="Authors" text="Auteurs"/>
+<l:gentext key="copyeditor" text="Copy redacteur"/>
+<l:gentext key="graphicdesigner" text="Grafisch ontwerper"/>
+<l:gentext key="productioneditor" text="Productie redacteur"/>
+<l:gentext key="technicaleditor" text="Technische redacteur"/>
+<l:gentext key="translator" text="Vertaler"/>
+<l:gentext key="listofequations" text="lijst van vergelijkingen"/>
+<l:gentext key="ListofEquations" text="Lijst van vergelijkingen"/>
+<l:gentext key="ListofExamples" text="Lijst van voorbeelden"/>
+<l:gentext key="listofexamples" text="lijst van voorbeelden"/>
+<l:gentext key="ListofFigures" text="Lijst van afbeeldingen"/>
+<l:gentext key="listoffigures" text="lijst van afbeeldingen"/>
+<l:gentext key="ListofProcedures" text="Lijst van procedures"/>
+<l:gentext key="listofprocedures" text="lijst van procedures"/>
+<l:gentext key="listoftables" text="lijst van tabellen"/>
+<l:gentext key="ListofTables" text="Lijst van tabellen"/>
+<l:gentext key="ListofUnknown" text="Lijst van onbekenden"/>
+<l:gentext key="listofunknown" text="lijst van onbekenden"/>
+<l:gentext key="nav-home" text="Begin"/>
+<l:gentext key="nav-next" text="Volgende"/>
+<l:gentext key="nav-next-sibling" text="Snel vooruit"/>
+<l:gentext key="nav-prev" text="Terug"/>
+<l:gentext key="nav-prev-sibling" text="Snel terug"/>
+<l:gentext key="nav-up" text="Omhoog"/>
+<l:gentext key="nav-toc" text="Inhoudsopgave"/>
+<l:gentext key="Draft" text="Ontwerp"/>
+<l:gentext key="above" text="boven"/>
+<l:gentext key="below" text="onder"/>
+<l:gentext key="sectioncalled" text="de paragraaf met de naam"/>
+<l:gentext key="index symbols" text="Symbolen"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzëïé"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZËÏÉ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Bijlage %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Hoofdstuk %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Vergelijking %n. %t"/>
+<l:template name="example" text="Voorbeeld %n. %t"/>
+<l:template name="figure" text="Afbeelding %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Deel %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedure %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Productie %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabel %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Bijlage %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Hoofdstuk %n. %t"/>
+<l:template name="part" text="Deel %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Antwoord: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Vraag: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Vraag: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="de paragraaf met de naam “%t”"/>
+<l:template name="refsection" text="de paragraaf met de naam “%t”"/>
+<l:template name="refsect1" text="de paragraaf met de naam “%t”"/>
+<l:template name="refsect2" text="de paragraaf met de naam “%t”"/>
+<l:template name="refsect3" text="de paragraaf met de naam “%t”"/>
+<l:template name="sect1" text="de paragraaf met de naam “%t”"/>
+<l:template name="sect2" text="de paragraaf met de naam “%t”"/>
+<l:template name="sect3" text="de paragraaf met de naam “%t”"/>
+<l:template name="sect4" text="de paragraaf met de naam “%t”"/>
+<l:template name="sect5" text="de paragraaf met de naam “%t”"/>
+<l:template name="section" text="de paragraaf met de naam “%t”"/>
+<l:template name="simplesect" text="de paragraaf met de naam “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Antwoord: %n"/>
+<l:template name="appendix" text="Bijlage %n"/>
+<l:template name="bridgehead" text="Paragraaf %n"/>
+<l:template name="chapter" text="Hoofdstuk %n"/>
+<l:template name="equation" text="Vergelijking %n"/>
+<l:template name="example" text="Voorbeeld %n"/>
+<l:template name="figure" text="Afbeelding %n"/>
+<l:template name="part" text="Deel %n"/>
+<l:template name="procedure" text="Procedure %n"/>
+<l:template name="productionset" text="Productie %n"/>
+<l:template name="qandadiv" text="Vraag en antwoord %n"/>
+<l:template name="qandaentry" text="Vraag: %n"/>
+<l:template name="question" text="Vraag: %n"/>
+<l:template name="sect1" text="Paragraaf %n"/>
+<l:template name="sect2" text="Paragraaf %n"/>
+<l:template name="sect3" text="Paragraaf %n"/>
+<l:template name="sect4" text="Paragraaf %n"/>
+<l:template name="sect5" text="Paragraaf %n"/>
+<l:template name="section" text="Paragraaf %n"/>
+<l:template name="table" text="Tabel %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Bijlage %n, %t"/>
+<l:template name="bridgehead" text="Paragraaf %n, “%t”"/>
+<l:template name="chapter" text="Hoofdstuk %n, %t"/>
+<l:template name="equation" text="Vergelijking %n, “%t”"/>
+<l:template name="example" text="Voorbeeld %n, “%t”"/>
+<l:template name="figure" text="Afbeelding %n, “%t”"/>
+<l:template name="part" text="Deel %n, “%t”"/>
+<l:template name="procedure" text="Procedure %n, “%t”"/>
+<l:template name="productionset" text="Productie %n, “%t”"/>
+<l:template name="qandadiv" text="Vraag en antwoord %n, “%t”"/>
+<l:template name="refsect1" text="de paragraaf met de naam “%t”"/>
+<l:template name="refsect2" text="de paragraaf met de naam “%t”"/>
+<l:template name="refsect3" text="de paragraaf met de naam “%t”"/>
+<l:template name="refsection" text="de paragraaf met de naam “%t”"/>
+<l:template name="sect1" text="Paragraaf %n, “%t”"/>
+<l:template name="sect2" text="Paragraaf %n, “%t”"/>
+<l:template name="sect3" text="Paragraaf %n, “%t”"/>
+<l:template name="sect4" text="Paragraaf %n, “%t”"/>
+<l:template name="sect5" text="Paragraaf %n, “%t”"/>
+<l:template name="section" text="Paragraaf %n, “%t”"/>
+<l:template name="simplesect" text="de paragraaf met de naam “%t”"/>
+<l:template name="table" text="Tabel %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" en "/>
+<l:template name="seplast" text=", en "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Zie %t."/>
+<l:template name="seealso" text="Zie ook %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Doelgroep: "/>
+<l:template name="MsgLevel" text="Niveau: "/>
+<l:template name="MsgOrig" text="Herkomst: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definitie: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="januari"/>
+<l:template name="February" text="februari"/>
+<l:template name="March" text="maart"/>
+<l:template name="April" text="april"/>
+<l:template name="May" text="mei"/>
+<l:template name="June" text="juni"/>
+<l:template name="July" text="juli"/>
+<l:template name="August" text="augustus"/>
+<l:template name="September" text="september"/>
+<l:template name="October" text="october"/>
+<l:template name="November" text="november"/>
+<l:template name="December" text="december"/>
+<l:template name="Monday" text="maandag"/>
+<l:template name="Tuesday" text="dinsdag"/>
+<l:template name="Wednesday" text="woensdag"/>
+<l:template name="Thursday" text="donderdag"/>
+<l:template name="Friday" text="vrijdag"/>
+<l:template name="Saturday" text="zaterdag"/>
+<l:template name="Sunday" text="zondag"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="jan"/>
+<l:template name="Feb" text="feb"/>
+<l:template name="Mar" text="maa"/>
+<l:template name="Apr" text="apr"/>
+<l:template name="May" text="mei"/>
+<l:template name="Jun" text="jun"/>
+<l:template name="Jul" text="jul"/>
+<l:template name="Aug" text="aug"/>
+<l:template name="Sep" text="sep"/>
+<l:template name="Oct" text="oct"/>
+<l:template name="Nov" text="nov"/>
+<l:template name="Dec" text="dec"/>
+<l:template name="Mon" text="maa"/>
+<l:template name="Tue" text="din"/>
+<l:template name="Wed" text="woe"/>
+<l:template name="Thu" text="don"/>
+<l:template name="Fri" text="vrij"/>
+<l:template name="Sat" text="zat"/>
+<l:template name="Sun" text="zon"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0413 Dutch"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbolen</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/nn.xml b/applications/content/template/docbook/common/nn.xml
new file mode 100644
index 0000000..5106d96
--- /dev/null
+++ b/applications/content/template/docbook/common/nn.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="nn" english-language-name="Nynorsk">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/nn.xml -->
+<!-- * -->
+<!-- * E-mail the edited nn.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Samandrag"/>
+<l:gentext key="abstract" text="Samandrag"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="Svar"/>
+<l:gentext key="answer" text="svar"/>
+<l:gentext key="Appendix" text="Tillegg"/>
+<l:gentext key="appendix" text="tillegg"/>
+<l:gentext key="Article" text="Artikkel"/>
+<l:gentext key="article" text="artikkel"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografi"/>
+<l:gentext key="bibliography" text="bibliografi"/>
+<l:gentext key="Book" text="Bok"/>
+<l:gentext key="book" text="bok"/>
+<l:gentext key="CAUTION" text="OBS"/>
+<l:gentext key="Caution" text="Obs"/>
+<l:gentext key="caution" text="OBS"/>
+<l:gentext key="Chapter" text="Kapittel"/>
+<l:gentext key="chapter" text="kapittel"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="kolofon"/>
+<l:gentext key="Copyright" text="Opphavsrett"/>
+<l:gentext key="copyright" text="opphavsrett"/>
+<l:gentext key="Dedication" text="Dedikasjon"/>
+<l:gentext key="dedication" text="dedikasjon"/>
+<l:gentext key="Edition" text="Utgåve"/>
+<l:gentext key="edition" text="utgåve"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Formel"/>
+<l:gentext key="equation" text="formel"/>
+<l:gentext key="Example" text="Døme"/>
+<l:gentext key="example" text="døme"/>
+<l:gentext key="Figure" text="Figur"/>
+<l:gentext key="figure" text="figur"/>
+<l:gentext key="Glossary" text="Ordliste"/>
+<l:gentext key="glossary" text="ordliste"/>
+<l:gentext key="GlossSee" text="Sjå"/>
+<l:gentext key="glosssee" text="sjå"/>
+<l:gentext key="GlossSeeAlso" text="Sjå òg"/>
+<l:gentext key="glossseealso" text="sjå òg"/>
+<l:gentext key="IMPORTANT" text="VIKTIG"/>
+<l:gentext key="important" text="viktig"/>
+<l:gentext key="Important" text="Viktig"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text=""/>
+<l:gentext key="legalnotice" text=""/>
+<l:gentext key="MsgAud" text="Publikum"/>
+<l:gentext key="msgaud" text="publikum"/>
+<l:gentext key="MsgLevel" text="Nivå"/>
+<l:gentext key="msglevel" text="nivå"/>
+<l:gentext key="MsgOrig" text="Opphav"/>
+<l:gentext key="msgorig" text="Opphav"/>
+<l:gentext key="NOTE" text="NOTAT"/>
+<l:gentext key="Note" text="Notat"/>
+<l:gentext key="note" text="NOTAT"/>
+<l:gentext key="Part" text="Del"/>
+<l:gentext key="part" text="del"/>
+<l:gentext key="Preface" text="Forord"/>
+<l:gentext key="preface" text="forord"/>
+<l:gentext key="Procedure" text="Prosedyre"/>
+<l:gentext key="procedure" text="prosedyre"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Utgitt"/>
+<l:gentext key="published" text="utgitt"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Spørsmål og Svar"/>
+<l:gentext key="qandadiv" text="Spørsmål og Svar"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Spørsmål"/>
+<l:gentext key="question" text="spørsmål"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referanse"/>
+<l:gentext key="reference" text="referanse"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Namn"/>
+<l:gentext key="refname" text="namn"/>
+<l:gentext key="RefSection" text="Del"/>
+<l:gentext key="refsection" text="del"/>
+<l:gentext key="RefSynopsisDiv" text="Oversyn"/>
+<l:gentext key="refsynopsisdiv" text="oversyn"/>
+<l:gentext key="RevHistory" text="Revisjonshistorie"/>
+<l:gentext key="revhistory" text="revisjonshistorie"/>
+<l:gentext key="revision" text="revisjon"/>
+<l:gentext key="Revision" text="Revisjon"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="del"/>
+<l:gentext key="Section" text="Del"/>
+<l:gentext key="see" text="sjå"/>
+<l:gentext key="See" text="Sjå"/>
+<l:gentext key="seealso" text="sjå òg"/>
+<l:gentext key="Seealso" text="Sjå òg"/>
+<l:gentext key="SeeAlso" text="Sjå òg"/>
+<l:gentext key="set" text="set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Indeks"/>
+<l:gentext key="SetIndex" text="Indeks"/>
+<l:gentext key="Sidebar" text="Sidestolpe"/>
+<l:gentext key="sidebar" text="sidestolpe"/>
+<l:gentext key="step" text="steg"/>
+<l:gentext key="Step" text="Steg"/>
+<l:gentext key="table" text="tabell"/>
+<l:gentext key="Table" text="Tabell"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="tips"/>
+<l:gentext key="TIP" text="TIPS"/>
+<l:gentext key="Tip" text="Tips"/>
+<l:gentext key="Warning" text="Åtvaring"/>
+<l:gentext key="warning" text="åtvaring"/>
+<l:gentext key="WARNING" text="ÅTVARING"/>
+<l:gentext key="and" text="og"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="av"/>
+<l:gentext key="Edited" text="Redigert"/>
+<l:gentext key="edited" text="redigert"/>
+<l:gentext key="Editedby" text="Redigert av"/>
+<l:gentext key="editedby" text="redigert av"/>
+<l:gentext key="in" text="i"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="merknader"/>
+<l:gentext key="Notes" text="Merknader"/>
+<l:gentext key="Pgs" text="Sider"/>
+<l:gentext key="pgs" text="sider"/>
+<l:gentext key="Revisedby" text="Revidert av: "/>
+<l:gentext key="revisedby" text="revidert av: "/>
+<l:gentext key="TableNotes" text="Merknader"/>
+<l:gentext key="tablenotes" text="merknader"/>
+<l:gentext key="TableofContents" text="Innhald"/>
+<l:gentext key="tableofcontents" text="Innhald"/>
+<l:gentext key="unexpectedelementname" text="UVENTA-ELEMENTNAVN"/>
+<l:gentext key="unsupported" text="ikkje støtta"/>
+<l:gentext key="xrefto" text="xref til"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="formeloversikt"/>
+<l:gentext key="ListofEquations" text="Formeloversikt"/>
+<l:gentext key="ListofExamples" text="Dømeoversikt"/>
+<l:gentext key="listofexamples" text="dømeoversikt"/>
+<l:gentext key="ListofFigures" text="Figuroversikt"/>
+<l:gentext key="listoffigures" text="figuroversikt"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="tabelloversikt"/>
+<l:gentext key="ListofTables" text="Tabelloversikt"/>
+<l:gentext key="ListofUnknown" text="???-oversikt"/>
+<l:gentext key="listofunknown" text="???-oversikt"/>
+<l:gentext key="nav-home" text="Heim"/>
+<l:gentext key="nav-next" text="Fram"/>
+<l:gentext key="nav-next-sibling" text="Raskt framover"/>
+<l:gentext key="nav-prev" text="Att"/>
+<l:gentext key="nav-prev-sibling" text="Raskt bakover"/>
+<l:gentext key="nav-up" text="Opp"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symbols"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Tillegg %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapittel %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Formel %n. %t"/>
+<l:template name="example" text="Døme %n. %t"/>
+<l:template name="figure" text="Figur %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Prosedyre %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabell %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Tillegg %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Kapittel %n. %t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Svar %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Spørsmål %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Spørsmål %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Svar %n"/>
+<l:template name="appendix" text="Tillegg %n"/>
+<l:template name="bridgehead" text="Del %n"/>
+<l:template name="chapter" text="Kapittel %n"/>
+<l:template name="equation" text="Formel %n"/>
+<l:template name="example" text="Døme %n"/>
+<l:template name="figure" text="Figur %n"/>
+<l:template name="part" text="Del %n"/>
+<l:template name="procedure" text="Prosedyre %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Spørsmål og Svar %n"/>
+<l:template name="qandaentry" text="Spørsmål %n"/>
+<l:template name="question" text="Spørsmål %n"/>
+<l:template name="sect1" text="Del %n"/>
+<l:template name="sect2" text="Del %n"/>
+<l:template name="sect3" text="Del %n"/>
+<l:template name="sect4" text="Del %n"/>
+<l:template name="sect5" text="Del %n"/>
+<l:template name="section" text="Del %n"/>
+<l:template name="table" text="Tabell %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Tillegg %n, %t"/>
+<l:template name="bridgehead" text="Del %n, “%t”"/>
+<l:template name="chapter" text="Kapittel %n, %t"/>
+<l:template name="equation" text="Formel %n, “%t”"/>
+<l:template name="example" text="Døme %n, “%t”"/>
+<l:template name="figure" text="Figur %n, “%t”"/>
+<l:template name="part" text="Del %n, “%t”"/>
+<l:template name="procedure" text="Prosedyre %n, “%t”"/>
+<l:template name="productionset" text="Production %n, “%t”"/>
+<l:template name="qandadiv" text="Spørsmål og Svar %n, “%t”"/>
+<l:template name="refsect1" text="the section called “%t”"/>
+<l:template name="refsect2" text="the section called “%t”"/>
+<l:template name="refsect3" text="the section called “%t”"/>
+<l:template name="refsection" text="the section called “%t”"/>
+<l:template name="sect1" text="Del %n, “%t”"/>
+<l:template name="sect2" text="Del %n, “%t”"/>
+<l:template name="sect3" text="Del %n, “%t”"/>
+<l:template name="sect4" text="Del %n, “%t”"/>
+<l:template name="sect5" text="Del %n, “%t”"/>
+<l:template name="section" text="Del %n, “%t”"/>
+<l:template name="simplesect" text="the section called “%t”"/>
+<l:template name="table" text="Tabell %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" og "/>
+<l:template name="seplast" text=", og "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Sjå %t."/>
+<l:template name="seealso" text="Sjå òg %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Publikum: "/>
+<l:template name="MsgLevel" text="Nivå: "/>
+<l:template name="MsgOrig" text="Opphav: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0814 Norwegian (Nynorsk)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/olink.xsl b/applications/content/template/docbook/common/olink.xsl
new file mode 100644
index 0000000..c892dd7
--- /dev/null
+++ b/applications/content/template/docbook/common/olink.xsl
@@ -0,0 +1,1232 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheet distribution.
+     See ../README or http://docbook.sf.net/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- Create keys for quickly looking up olink targets -->
+<xsl:key name="targetdoc-key" match="document" use="@targetdoc" />
+<xsl:key name="targetptr-key"  match="div|obj"
+         use="concat(ancestor::document/@targetdoc, '/',
+                     @targetptr, '/', ancestor::document/@lang)" />
+
+<!-- Return filename of database -->
+<xsl:template name="select.target.database">
+  <xsl:param name="targetdoc.att" select="''"/>
+  <xsl:param name="targetptr.att" select="''"/>
+  <xsl:param name="olink.lang" select="''"/>
+
+  <!-- use root's xml:base if exists -->
+  <xsl:variable name="xml.base" select="/*/@xml:base"/>
+
+  <!-- This selection can be customized if needed -->
+  <xsl:variable name="target.database.filename">
+    <xsl:choose>
+      <xsl:when test="$xml.base != '' and
+                   not(starts-with($target.database.document, 'file:/')) and
+                   not(starts-with($target.database.document, '/'))">
+        <xsl:call-template name="systemIdToBaseURI">
+          <xsl:with-param name="systemId" select="$xml.base"/>
+        </xsl:call-template>
+        <xsl:value-of select="$target.database.document"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$target.database.document"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="target.database" 
+      select="document($target.database.filename,/)"/>
+
+  <xsl:choose>
+    <!-- Was the database document parameter not set? -->
+    <xsl:when test="$target.database.document = ''">
+      <xsl:message>
+        <xsl:text>Olinks not processed: must specify a </xsl:text>
+        <xsl:text>$target.database.document parameter&#10;</xsl:text>
+        <xsl:text>when using olinks with targetdoc </xsl:text>
+        <xsl:text>and targetptr attributes.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:when test="namespace-uri($target.database/*) != ''">
+      <xsl:message>
+        <xsl:text>Olink error: the targetset element and children in '</xsl:text>
+        <xsl:value-of select="$target.database.document"/>
+        <xsl:text>' should not be in any namespace.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <!-- Did it not open? Should be a targetset element -->
+    <xsl:when test="not($target.database/*)">
+      <xsl:message>
+        <xsl:text>Olink error: could not open target database '</xsl:text>
+        <xsl:value-of select="$target.database.filename"/>
+        <xsl:text>'.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$target.database.filename"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="select.olink.key">
+  <xsl:param name="targetdoc.att" select="''"/>
+  <xsl:param name="targetptr.att" select="''"/>
+  <xsl:param name="olink.lang" select="''"/>
+  <xsl:param name="target.database"/>
+
+  <xsl:if test="$target.database/*">
+    <xsl:variable name="olink.fallback.sequence">
+      <xsl:call-template name="select.olink.lang.fallback">
+        <xsl:with-param name="olink.lang" select="$olink.lang"/>
+      </xsl:call-template>
+    </xsl:variable>
+  
+    <!-- Recurse through the languages until you find a match -->
+    <xsl:call-template name="select.olink.key.in.lang">
+      <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+      <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+      <xsl:with-param name="olink.lang" select="$olink.lang"/>
+      <xsl:with-param name="target.database" select="$target.database"/>
+      <xsl:with-param name="fallback.index" select="1"/>
+      <xsl:with-param name="olink.fallback.sequence"
+                      select="$olink.fallback.sequence"/>
+    </xsl:call-template>
+  </xsl:if>
+  
+</xsl:template>
+
+<!-- Locate olink key in a particular language -->
+<xsl:template name="select.olink.key.in.lang">
+  <xsl:param name="targetdoc.att" select="''"/>
+  <xsl:param name="targetptr.att" select="''"/>
+  <xsl:param name="olink.lang" select="''"/>
+  <xsl:param name="target.database"/>
+  <xsl:param name="fallback.index" select="1"/>
+  <xsl:param name="olink.fallback.sequence" select="''"/>
+  
+  <xsl:variable name="target.lang">
+    <xsl:call-template name="select.target.lang">
+      <xsl:with-param name="fallback.index" select="$fallback.index"/>
+      <xsl:with-param name="olink.fallback.sequence"
+                      select="$olink.fallback.sequence"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$olink.debug != 0">
+    <xsl:message><xsl:text>Olink debug: cases for targetdoc='</xsl:text>
+      <xsl:value-of select="$targetdoc.att"/>
+      <xsl:text>' and targetptr='</xsl:text>
+      <xsl:value-of select="$targetptr.att"/>
+      <xsl:text>' in language '</xsl:text>
+      <xsl:value-of select="$target.lang"/>
+      <xsl:text>'.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <!-- Customize these cases if you want different selection logic -->
+  <xsl:variable name="CaseA">
+    <!-- targetdoc.att = not blank
+         targetptr.att = not blank
+    -->
+    <xsl:if test="$targetdoc.att != '' and
+                  $targetptr.att != ''">
+      <xsl:for-each select="$target.database">
+        <xsl:variable name="key" 
+                      select="concat($targetdoc.att, '/', 
+                                     $targetptr.att, '/',
+                                     $target.lang)"/>
+        <xsl:choose>
+          <xsl:when test="key('targetptr-key', $key)[1]/@href != ''">
+            <xsl:value-of select="$key"/>
+            <xsl:if test="$olink.debug != 0">
+              <xsl:message>Olink debug: CaseA matched.</xsl:message>
+            </xsl:if>
+          </xsl:when>
+          <xsl:when test="$olink.debug != 0">
+            <xsl:message>Olink debug: CaseA NOT matched</xsl:message>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:for-each>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="CaseB">
+    <!-- targetdoc.att = not blank
+         targetptr.att = not blank
+         prefer.internal.olink = not zero
+         current.docid = not blank 
+    -->
+    <xsl:if test="$targetdoc.att != '' and
+                  $targetptr.att != '' and
+                  $current.docid != '' and
+                  $prefer.internal.olink != 0">
+      <xsl:for-each select="$target.database">
+        <xsl:variable name="key" 
+                      select="concat($current.docid, '/', 
+                                     $targetptr.att, '/',
+                                     $target.lang)"/>
+        <xsl:choose>
+          <xsl:when test="key('targetptr-key', $key)[1]/@href != ''">
+            <xsl:value-of select="$key"/>
+            <xsl:if test="$olink.debug != 0">
+              <xsl:message>Olink debug: CaseB matched.</xsl:message>
+            </xsl:if>
+          </xsl:when>
+          <xsl:when test="$olink.debug != 0">
+            <xsl:message>Olink debug: CaseB NOT matched</xsl:message>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:for-each>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="CaseC">
+    <!-- targetdoc.att = blank
+         targetptr.att = not blank
+         current.docid = not blank 
+    -->
+    <xsl:if test="string-length($targetdoc.att) = 0 and
+                  $targetptr.att != '' and
+                  $current.docid != ''">
+      <!-- Must use a for-each to change context for keys to work -->
+      <xsl:for-each select="$target.database">
+        <xsl:variable name="key" 
+                      select="concat($current.docid, '/', 
+                                     $targetptr.att, '/',
+                                     $target.lang)"/>
+        <xsl:choose>
+          <xsl:when test="key('targetptr-key', $key)[1]/@href != ''">
+            <xsl:value-of select="$key"/>
+            <xsl:if test="$olink.debug != 0">
+              <xsl:message>Olink debug: CaseC matched.</xsl:message>
+            </xsl:if>
+          </xsl:when>
+          <xsl:when test="$olink.debug != 0">
+            <xsl:message>Olink debug: CaseC NOT matched.</xsl:message>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:for-each>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="CaseD">
+    <!-- targetdoc.att = blank
+         targetptr.att = not blank
+         current.docid = blank 
+    -->
+    <!-- This is possible if only one document in the database -->
+    <xsl:if test="string-length($targetdoc.att) = 0 and
+                  $targetptr.att != '' and
+                  string-length($current.docid) = 0 and
+                  count($target.database//document) = 1">
+      <xsl:for-each select="$target.database">
+        <xsl:variable name="key" 
+                      select="concat(.//document/@targetdoc, '/', 
+                                     $targetptr.att, '/',
+                                     $target.lang)"/>
+        <xsl:choose>
+          <xsl:when test="key('targetptr-key', $key)[1]/@href != ''">
+            <xsl:value-of select="$key"/>
+            <xsl:if test="$olink.debug != 0">
+              <xsl:message>Olink debug: CaseD matched.</xsl:message>
+            </xsl:if>
+          </xsl:when>
+          <xsl:when test="$olink.debug != 0">
+            <xsl:message>Olink debug: CaseD NOT matched</xsl:message>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:for-each>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="CaseE">
+    <!-- targetdoc.att = not blank
+         targetptr.att = blank
+    -->
+    <xsl:if test="$targetdoc.att != '' and
+                  string-length($targetptr.att) = 0">
+
+      <!-- Try the document's root element id -->
+      <xsl:variable name="rootid">
+        <xsl:choose>
+          <xsl:when test="$target.lang != ''">
+            <xsl:value-of select="$target.database//document[@targetdoc = $targetdoc.att and @lang = $target.lang]/*[1]/@targetptr"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$target.database//document[@targetdoc = $targetdoc.att and not(@lang)]/*[1]/@targetptr"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:for-each select="$target.database">
+        <xsl:variable name="key" 
+                      select="concat($targetdoc.att, '/', 
+                                     $rootid, '/',
+                                     $target.lang)"/>
+        <xsl:choose>
+          <xsl:when test="key('targetptr-key', $key)[1]/@href != ''">
+            <xsl:value-of select="$key"/>
+            <xsl:if test="$olink.debug != 0">
+              <xsl:message>Olink debug: CaseE matched.</xsl:message>
+            </xsl:if>
+          </xsl:when>
+          <xsl:when test="$olink.debug != 0">
+            <xsl:message>Olink debug: CaseE NOT matched.</xsl:message>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:for-each>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="CaseF">
+    <!-- targetdoc.att = not blank
+         targetptr.att = blank
+         prefer.internal.olink = not zero
+         current.docid = not blank 
+    -->
+    <xsl:if test="$targetdoc.att != '' and
+                  string-length($targetptr.att) = 0 and
+                  $current.docid != '' and
+                  $prefer.internal.olink != 0">
+      <!-- Try the document's root element id -->
+      <xsl:variable name="rootid">
+        <xsl:choose>
+          <xsl:when test="$target.lang != ''">
+            <xsl:value-of select="$target.database//document[@targetdoc = $current.docid and @lang = $target.lang]/*[1]/@targetptr"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$target.database//document[@targetdoc = $current.docid and not(@lang)]/*[1]/@targetptr"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:for-each select="$target.database">
+        <xsl:variable name="key" 
+                      select="concat($current.docid, '/', 
+                                     $rootid, '/',
+                                     $target.lang)"/>
+        <xsl:choose>
+          <xsl:when test="key('targetptr-key', $key)[1]/@href != ''">
+            <xsl:value-of select="$key"/>
+            <xsl:if test="$olink.debug != 0">
+              <xsl:message>Olink debug: CaseF matched.</xsl:message>
+            </xsl:if>
+          </xsl:when>
+          <xsl:when test="$olink.debug != 0">
+            <xsl:message>Olink debug: CaseF NOT matched.</xsl:message>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:for-each>
+    </xsl:if>
+  </xsl:variable>
+
+  <!-- Now select the best match. Customize the order if needed -->
+  <xsl:variable name="selected.key">
+    <xsl:choose>
+      <xsl:when test="$CaseB != ''">
+        <xsl:value-of select="$CaseB"/>
+        <xsl:if test="$olink.debug != 0">
+          <xsl:message>
+            <xsl:text>Olink debug: CaseB key is the final selection: </xsl:text>
+            <xsl:value-of select="$CaseB"/>
+          </xsl:message>
+        </xsl:if>
+      </xsl:when>
+      <xsl:when test="$CaseA != ''">
+        <xsl:value-of select="$CaseA"/>
+        <xsl:if test="$olink.debug != 0">
+          <xsl:message>
+            <xsl:text>Olink debug: CaseA key is the final selection: </xsl:text>
+            <xsl:value-of select="$CaseA"/>
+          </xsl:message>
+        </xsl:if>
+      </xsl:when>
+      <xsl:when test="$CaseC != ''">
+        <xsl:value-of select="$CaseC"/>
+        <xsl:if test="$olink.debug != 0">
+          <xsl:message>
+            <xsl:text>Olink debug: CaseC key is the final selection: </xsl:text>
+            <xsl:value-of select="$CaseC"/>
+          </xsl:message>
+        </xsl:if>
+      </xsl:when>
+      <xsl:when test="$CaseD != ''">
+        <xsl:value-of select="$CaseD"/>
+        <xsl:if test="$olink.debug != 0">
+          <xsl:message>
+            <xsl:text>Olink debug: CaseD key is the final selection: </xsl:text>
+            <xsl:value-of select="$CaseD"/>
+          </xsl:message>
+        </xsl:if>
+      </xsl:when>
+      <xsl:when test="$CaseF != ''">
+        <xsl:value-of select="$CaseF"/>
+        <xsl:if test="$olink.debug != 0">
+          <xsl:message>
+            <xsl:text>Olink debug: CaseF key is the final selection: </xsl:text>
+            <xsl:value-of select="$CaseF"/>
+          </xsl:message>
+        </xsl:if>
+      </xsl:when>
+      <xsl:when test="$CaseE != ''">
+        <xsl:value-of select="$CaseE"/>
+        <xsl:if test="$olink.debug != 0">
+          <xsl:message>
+            <xsl:text>Olink debug: CaseE key is the final selection: </xsl:text>
+            <xsl:value-of select="$CaseE"/>
+          </xsl:message>
+        </xsl:if>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:if test="$olink.debug != 0">
+          <xsl:message>
+            <xsl:text>Olink debug: No case matched for lang '</xsl:text>
+            <xsl:value-of select="$target.lang"/>
+            <xsl:text>'.</xsl:text>
+          </xsl:message>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$selected.key != ''">
+      <xsl:value-of select="$selected.key"/>
+    </xsl:when>
+    <xsl:when test="string-length($selected.key) = 0 and 
+                    string-length($target.lang) = 0">
+      <!-- No match on last try, and we are done -->
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- Recurse through next language -->
+      <xsl:call-template name="select.olink.key.in.lang">
+        <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+        <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+        <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        <xsl:with-param name="target.database" select="$target.database"/>
+        <xsl:with-param name="fallback.index" select="$fallback.index + 1"/>
+        <xsl:with-param name="olink.fallback.sequence"
+                        select="$olink.fallback.sequence"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="select.target.lang">
+  <xsl:param name="fallback.index" select="1"/>
+  <xsl:param name="olink.fallback.sequence" select="''"/>
+
+  <!-- recurse backwards to find the lang matching the index -->
+  <xsl:variable name="firstlang" 
+                select="substring-before($olink.fallback.sequence, ' ')"/>
+  <xsl:variable name="rest" 
+                select="substring-after($olink.fallback.sequence, ' ')"/>
+  <xsl:choose>
+    <xsl:when test="$fallback.index = 1">
+      <xsl:value-of select="$firstlang"/>
+    </xsl:when>
+    <xsl:when test="$fallback.index &gt; 1">
+      <xsl:call-template name="select.target.lang">
+        <xsl:with-param name="fallback.index" select="$fallback.index - 1"/>
+        <xsl:with-param name="olink.fallback.sequence"
+                        select="$rest"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="select.olink.lang.fallback">
+  <xsl:param name="olink.lang" select="''"/>
+
+  <!-- Prefer language of the olink element -->
+  <xsl:value-of select="concat(normalize-space(concat($olink.lang, ' ', 
+                        $olink.lang.fallback.sequence)), ' ')"/>
+</xsl:template>
+
+<!-- Returns the complete olink href value if found -->
+<xsl:template name="make.olink.href">
+  <xsl:param name="olink.key" select="''"/>
+  <xsl:param name="target.database"/>
+
+  <xsl:if test="$olink.key != ''">
+    <xsl:variable name="target.href" >
+      <xsl:for-each select="$target.database" >
+        <xsl:value-of select="key('targetptr-key', $olink.key)[1]/@href" />
+      </xsl:for-each>
+    </xsl:variable>
+  
+    <xsl:variable name="targetdoc">
+      <xsl:value-of select="substring-before($olink.key, '/')"/>
+    </xsl:variable>
+  
+    <!-- Does the target database use a sitemap? -->
+    <xsl:variable name="use.sitemap">
+      <xsl:choose>
+        <xsl:when test="$target.database//sitemap">1</xsl:when>
+        <xsl:otherwise>0</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+  
+    <!-- Get the baseuri for this targetptr -->
+    <xsl:variable name="baseuri" >
+      <xsl:choose>
+        <!-- Does the database use a sitemap? -->
+        <xsl:when test="$use.sitemap != 0" >
+          <xsl:choose>
+            <!-- Was current.docid parameter set? -->
+            <xsl:when test="$current.docid != ''">
+              <!-- Was it found in the database? -->
+              <xsl:variable name="currentdoc.key" >
+                <xsl:for-each select="$target.database" >
+                  <xsl:value-of select="key('targetdoc-key',
+                                        $current.docid)[1]/@targetdoc" />
+                </xsl:for-each>
+              </xsl:variable>
+              <xsl:choose>
+                <xsl:when test="$currentdoc.key != ''">
+                  <xsl:for-each select="$target.database" >
+                    <xsl:call-template name="targetpath" >
+                      <xsl:with-param name="dirnode" 
+                          select="key('targetdoc-key', $current.docid)[1]/parent::dir"/>
+                      <xsl:with-param name="targetdoc" select="$targetdoc"/>
+                    </xsl:call-template>
+                  </xsl:for-each >
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:message>
+                    <xsl:text>Olink error: cannot compute relative </xsl:text>
+                    <xsl:text>sitemap path because $current.docid '</xsl:text>
+                    <xsl:value-of select="$current.docid"/>
+                    <xsl:text>' not found in target database.</xsl:text>
+                  </xsl:message>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message>
+                <xsl:text>Olink warning: cannot compute relative </xsl:text>
+                <xsl:text>sitemap path without $current.docid parameter</xsl:text>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose> 
+          <!-- In either case, add baseuri from its document entry-->
+          <xsl:variable name="docbaseuri">
+            <xsl:for-each select="$target.database" >
+              <xsl:value-of select="key('targetdoc-key', $targetdoc)[1]/@baseuri" />
+            </xsl:for-each>
+          </xsl:variable>
+          <xsl:if test="$docbaseuri != ''" >
+            <xsl:value-of select="$docbaseuri"/>
+          </xsl:if>
+        </xsl:when>
+        <!-- No database sitemap in use -->
+        <xsl:otherwise>
+          <!-- Just use any baseuri from its document entry -->
+          <xsl:variable name="docbaseuri">
+            <xsl:for-each select="$target.database" >
+              <xsl:value-of select="key('targetdoc-key', $targetdoc)[1]/@baseuri" />
+            </xsl:for-each>
+          </xsl:variable>
+          <xsl:if test="$docbaseuri != ''" >
+            <xsl:value-of select="$docbaseuri"/>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+    <!-- Form the href information -->
+    <xsl:if test="$baseuri != ''">
+      <xsl:value-of select="$baseuri"/>
+      <xsl:if test="substring($target.href,1,1) != '#'">
+        <!--xsl:text>/</xsl:text-->
+      </xsl:if>
+    </xsl:if>
+    <!-- optionally turn off frag for PDF references -->
+    <xsl:if test="not($insert.olink.pdf.frag = 0 and
+          translate(substring($baseuri, string-length($baseuri) - 3),
+                    'PDF', 'pdf') = '.pdf'
+          and starts-with($target.href, '#') )">
+      <xsl:value-of select="$target.href"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<!-- Computes the href of the object containing the olink element -->
+<xsl:template name="olink.from.uri">
+  <xsl:param name="target.database"/>
+  <xsl:param name="object" select="NotAnElement"/>
+  <xsl:param name="object.targetdoc" select="$current.docid"/>
+  <xsl:param name="object.lang" 
+           select="concat($object/ancestor::*[last()]/@lang,
+                          $object/ancestor::*[last()]/@xml:lang)"/>
+
+  <xsl:variable name="parent.id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Get the olink key for the parent of olink element -->
+  <xsl:variable name="from.key">
+    <xsl:call-template name="select.olink.key">
+      <xsl:with-param name="targetdoc.att" select="$object.targetdoc"/>
+      <xsl:with-param name="targetptr.att" select="$parent.id"/>
+      <xsl:with-param name="olink.lang" select="$object.lang"/>
+      <xsl:with-param name="target.database" select="$target.database"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="from.olink.href">
+    <xsl:for-each select="$target.database" >
+      <xsl:value-of select="key('targetptr-key', $from.key)[1]/@href" />
+    </xsl:for-each>
+  </xsl:variable>
+
+  <xsl:choose>
+    <!-- we found the olink object -->
+    <xsl:when test="$from.olink.href != ''">
+      <xsl:value-of select="$from.olink.href"/>
+    </xsl:when>
+    <xsl:when test="not($object/parent::*)">
+      <xsl:value-of select="$from.olink.href"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- recurse upward in current document -->
+      <xsl:call-template name="olink.from.uri">
+        <xsl:with-param name="target.database" select="$target.database"/>
+        <xsl:with-param name="object" select="$object/parent::*"/>
+        <xsl:with-param name="object.targetdoc" select="$object.targetdoc"/>
+        <xsl:with-param name="object.lang" select="$object.lang"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="olink.hottext">
+  <xsl:param name="target.database"/>
+  <xsl:param name="olink.lang" select="''"/>
+  <xsl:param name="olink.key" select="''"/>
+  <xsl:param name="referrer" select="."/>
+  <xsl:param name="xrefstyle">
+    <xsl:choose>
+      <xsl:when test="@role and not(@xrefstyle) 
+                      and $use.role.as.xrefstyle != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@xrefstyle"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:choose>
+    <!-- If it has elements or text (not just PI or comment) -->
+    <xsl:when test="child::text() or child::*">
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:when test="$olink.key != ''">
+      <!-- Get the xref text for this record -->
+      <xsl:variable name="xref.text" >
+        <xsl:for-each select="$target.database" >
+          <xsl:call-template name="insert.targetdb.data">
+            <xsl:with-param name="data"
+                  select="key('targetptr-key', $olink.key)[1]/xreftext/node()" />
+          </xsl:call-template>
+        </xsl:for-each>
+      </xsl:variable>
+
+      <xsl:variable name="xref.number" >
+        <xsl:for-each select="$target.database" >
+          <xsl:value-of select="key('targetptr-key', $olink.key)[1]/@number" />
+        </xsl:for-each>
+      </xsl:variable>
+
+      <xsl:variable name="target.elem" >
+        <xsl:for-each select="$target.database" >
+          <xsl:value-of select="key('targetptr-key', $olink.key)[1]/@element" />
+        </xsl:for-each>
+      </xsl:variable>
+
+      <xsl:variable name="lang">
+        <xsl:variable name="candidate">
+          <xsl:for-each select="$target.database" >
+            <xsl:value-of 
+                      select="key('targetptr-key', $olink.key)[1]/@lang" />
+          </xsl:for-each>
+        </xsl:variable>
+        <xsl:choose>
+          <xsl:when test="$candidate != ''">
+            <xsl:value-of select="$candidate"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$olink.lang"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="targetdoc">
+        <xsl:value-of select="substring-before($olink.key, '/')"/>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$xrefstyle != '' and
+                        starts-with(normalize-space($xrefstyle), 'select:') and
+                        (contains($xrefstyle, 'nodocname') or
+                        contains($xrefstyle, 'nopage')) and
+                        not(contains($xrefstyle, 'title')) and
+                        not(contains($xrefstyle, 'label'))"> 
+          <xsl:copy-of select="$xref.text"/>
+        </xsl:when>
+        <xsl:when test="$xrefstyle != ''">
+          <xsl:if test="$olink.debug != 0">
+            <xsl:message>
+              <xsl:text>xrefstyle is '</xsl:text>
+              <xsl:value-of select="$xrefstyle"/>
+              <xsl:text>'.</xsl:text>
+            </xsl:message>
+          </xsl:if>
+          <xsl:variable name="template">
+            <xsl:choose>
+              <xsl:when test="starts-with(normalize-space($xrefstyle),
+                                          'select:')">
+                <xsl:call-template name="make.gentext.template">
+                  <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+                  <xsl:with-param name="purpose" select="'olink'"/>
+                  <xsl:with-param name="referrer" select="."/>
+                  <xsl:with-param name="target.elem" select="$target.elem"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="starts-with(normalize-space($xrefstyle),
+                                          'template:')">
+                <xsl:value-of select="substring-after(
+                                 normalize-space($xrefstyle), 'template:')"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <!-- Look for Gentext template with @style attribute -->
+                <!-- Must compare to no style value because gentext.template
+                     falls back to no style -->
+
+                <xsl:variable name="xref-context">
+                  <xsl:call-template name="gentext.template">
+                    <xsl:with-param name="context" select="'xref'"/>
+                    <xsl:with-param name="name" select="$target.elem"/>
+                    <xsl:with-param name="lang" select="$lang"/>
+                  </xsl:call-template>
+                </xsl:variable>
+
+                <xsl:variable name="styled-xref-context">
+                  <xsl:call-template name="gentext.template">
+                    <xsl:with-param name="context" select="'xref'"/>
+                    <xsl:with-param name="name" select="$target.elem"/>
+                    <xsl:with-param name="lang" select="$lang"/>
+                    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+                  </xsl:call-template>
+                </xsl:variable>
+
+                <xsl:variable name="xref-number-context">
+                  <xsl:call-template name="gentext.template">
+                    <xsl:with-param name="context" select="'xref-number'"/>
+                    <xsl:with-param name="name" select="$target.elem"/>
+                    <xsl:with-param name="lang" select="$lang"/>
+                  </xsl:call-template>
+                </xsl:variable>
+
+                <xsl:variable name="styled-xref-number-context">
+                  <xsl:call-template name="gentext.template">
+                    <xsl:with-param name="context" select="'xref-number'"/>
+                    <xsl:with-param name="name" select="$target.elem"/>
+                    <xsl:with-param name="lang" select="$lang"/>
+                    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+                  </xsl:call-template>
+                </xsl:variable>
+
+                <xsl:variable name="xref-number-and-title-context">
+                  <xsl:call-template name="gentext.template">
+                    <xsl:with-param name="context" 
+                                    select="'xref-number-and-title'"/>
+                    <xsl:with-param name="name" select="$target.elem"/>
+                    <xsl:with-param name="lang" select="$lang"/>
+                  </xsl:call-template>
+                </xsl:variable>
+
+                <xsl:variable name="styled-xref-number-and-title-context">
+                  <xsl:call-template name="gentext.template">
+                    <xsl:with-param name="context" 
+                                    select="'xref-number-and-title'"/>
+                    <xsl:with-param name="name" select="$target.elem"/>
+                    <xsl:with-param name="lang" select="$lang"/>
+                    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+                  </xsl:call-template>
+                </xsl:variable>
+
+                <xsl:choose>
+                  <xsl:when test="$xref-number-and-title-context != 
+                                 $styled-xref-number-and-title-context and
+                                 $xref.number != '' and
+                                 $xref.with.number.and.title != 0">
+                    <xsl:value-of 
+                            select="$styled-xref-number-and-title-context"/>
+                  </xsl:when>
+                  <xsl:when test="$xref-number-context != 
+                                 $styled-xref-number-context and
+                                 $xref.number != ''">
+                    <xsl:value-of select="$styled-xref-number-context"/>
+                  </xsl:when>
+                  <xsl:when test="$xref-context != $styled-xref-context">
+                    <xsl:value-of select="$styled-xref-context"/>
+                  </xsl:when>
+                  <xsl:when test="$xref-number-and-title-context != '' and
+                                 $xref.number != '' and
+                                 $xref.with.number.and.title != 0">
+                    <xsl:value-of 
+                            select="$xref-number-and-title-context"/>
+                    <xsl:if test="$olink.debug">
+                      <xsl:message>
+                        <xsl:text>Olink error: no gentext template</xsl:text>
+                        <xsl:text> exists for xrefstyle '</xsl:text>
+                        <xsl:value-of select="$xrefstyle"/>
+                        <xsl:text>' for element '</xsl:text>
+                        <xsl:value-of select="$target.elem"/>
+                        <xsl:text>' in language '</xsl:text>
+                        <xsl:value-of select="$lang"/>
+                        <xsl:text>' in context 'xref-number-and-title</xsl:text>
+                        <xsl:text>'. Using template without @style.</xsl:text>
+                      </xsl:message>
+                    </xsl:if>
+                  </xsl:when>
+                  <xsl:when test="$xref-number-context != '' and
+                                 $xref.number != ''">
+                    <xsl:value-of select="$xref-number-context"/>
+                    <xsl:if test="$olink.debug">
+                      <xsl:message>
+                        <xsl:text>Olink error: no gentext template</xsl:text>
+                        <xsl:text> exists for xrefstyle '</xsl:text>
+                        <xsl:value-of select="$xrefstyle"/>
+                        <xsl:text>' for element '</xsl:text>
+                        <xsl:value-of select="$target.elem"/>
+                        <xsl:text>' in language '</xsl:text>
+                        <xsl:value-of select="$lang"/>
+                        <xsl:text>' in context 'xref-number</xsl:text>
+                        <xsl:text>'. Using template without @style.</xsl:text>
+                      </xsl:message>
+                    </xsl:if>
+                  </xsl:when>
+                  <xsl:when test="$xref-context != ''">
+                    <xsl:value-of select="$xref-context"/>
+                    <xsl:if test="$olink.debug">
+                      <xsl:message>
+                        <xsl:text>Olink error: no gentext template</xsl:text>
+                        <xsl:text> exists for xrefstyle '</xsl:text>
+                        <xsl:value-of select="$xrefstyle"/>
+                        <xsl:text>' for element '</xsl:text>
+                        <xsl:value-of select="$target.elem"/>
+                        <xsl:text>' in language '</xsl:text>
+                        <xsl:value-of select="$lang"/>
+                        <xsl:text>' in context 'xref</xsl:text>
+                        <xsl:text>'. Using template without @style.</xsl:text>
+                      </xsl:message>
+                    </xsl:if>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:message>
+                      <xsl:text>Olink error: no gentext template</xsl:text>
+                      <xsl:text> exists for xrefstyle '</xsl:text>
+                      <xsl:value-of select="$xrefstyle"/>
+                      <xsl:text>' for element '</xsl:text>
+                      <xsl:value-of select="$target.elem"/>
+                      <xsl:text>' in language '</xsl:text>
+                      <xsl:value-of select="$lang"/>
+                      <xsl:text>'. Trying '%t'.</xsl:text>
+                    </xsl:message>
+                    <xsl:value-of select="'%t'"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:variable>
+
+          <xsl:if test="$olink.debug != 0">
+            <xsl:message>
+              <xsl:text>Olink debug: xrefstyle template is '</xsl:text>
+              <xsl:value-of select="$template"/>
+              <xsl:text>'.</xsl:text>
+            </xsl:message>
+          </xsl:if>
+
+          <xsl:call-template name="substitute-markup">
+            <xsl:with-param name="template" select="$template"/>
+            <xsl:with-param name="title">
+              <xsl:for-each select="$target.database" >
+                <xsl:call-template name="insert.targetdb.data">
+                  <xsl:with-param name="data"
+                                  select="key('targetptr-key', $olink.key)/ttl/node()"/>
+                </xsl:call-template>
+              </xsl:for-each>
+            </xsl:with-param>
+            <xsl:with-param name="label">
+              <xsl:for-each select="$target.database" >
+                <xsl:value-of 
+                        select="key('targetptr-key', $olink.key)[1]/@number" />
+              </xsl:for-each>
+            </xsl:with-param>
+            <xsl:with-param name="pagenumber">
+              <xsl:for-each select="$target.database" >
+                <xsl:value-of 
+                        select="key('targetptr-key', $olink.key)[1]/@page" />
+              </xsl:for-each>
+            </xsl:with-param>
+            <xsl:with-param name="docname">
+              <xsl:for-each select="$target.database" >
+                <xsl:call-template name="insert.targetdb.data">
+                  <xsl:with-param name="data"
+                       select="key('targetdoc-key', $targetdoc)[1]/div[1]/ttl/node()" />
+                </xsl:call-template>
+              </xsl:for-each>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+
+        <xsl:when test="$use.local.olink.style != 0">
+
+          <!-- Is autonumbering on? -->
+          <xsl:variable name="target.number">
+            <xsl:for-each select="$target.database" >
+              <xsl:value-of 
+                      select="key('targetptr-key', $olink.key)[1]/@number" />
+            </xsl:for-each>
+          </xsl:variable>
+
+          <xsl:variable name="autonumber">
+            <xsl:choose>
+              <xsl:when test="$target.number != ''">1</xsl:when>
+              <xsl:otherwise>0</xsl:otherwise>
+            </xsl:choose>
+          </xsl:variable>
+        
+          <xsl:variable name="number-and-title-template">
+            <xsl:call-template name="gentext.template.exists">
+              <xsl:with-param name="context" select="'xref-number-and-title'"/>
+              <xsl:with-param name="name" select="$target.elem"/>
+            </xsl:call-template>
+          </xsl:variable>
+        
+          <xsl:variable name="number-template">
+            <xsl:call-template name="gentext.template.exists">
+              <xsl:with-param name="context" select="'xref-number'"/>
+              <xsl:with-param name="name" select="$target.elem"/>
+            </xsl:call-template>
+          </xsl:variable>
+        
+          <xsl:variable name="context">
+            <xsl:choose>
+              <xsl:when test="string($autonumber) != 0 
+                              and $number-and-title-template != 0
+                              and $xref.with.number.and.title != 0">
+                 <xsl:value-of select="'xref-number-and-title'"/>
+              </xsl:when>
+              <xsl:when test="string($autonumber) != 0 
+                              and $number-template != 0">
+                 <xsl:value-of select="'xref-number'"/>
+              </xsl:when>
+              <xsl:otherwise>
+                 <xsl:value-of select="'xref'"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:variable>
+        
+          <xsl:variable name="template">
+            <xsl:call-template name="gentext.template">
+              <xsl:with-param name="context" select="$context"/>
+              <xsl:with-param name="name" select="$target.elem"/>
+              <xsl:with-param name="lang" select="$lang"/>
+            </xsl:call-template>
+          </xsl:variable>
+
+          <xsl:call-template name="substitute-markup">
+            <xsl:with-param name="template" select="$template"/>
+            <xsl:with-param name="title">
+              <xsl:for-each select="$target.database" >
+                <xsl:call-template name="insert.targetdb.data">
+                  <xsl:with-param name="data"
+                               select="key('targetptr-key', $olink.key)[1]/ttl/node()" />
+                </xsl:call-template>
+              </xsl:for-each>
+            </xsl:with-param>
+            <xsl:with-param name="label">
+              <xsl:for-each select="$target.database" >
+                <xsl:call-template name="insert.targetdb.data">
+                  <xsl:with-param name="data"
+                          select="key('targetptr-key', $olink.key)[1]/@number" />
+                </xsl:call-template>
+              </xsl:for-each>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$xref.text !=''">
+          <xsl:copy-of select="$xref.text"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>Olink error: no generated text for </xsl:text>
+            <xsl:text>targetdoc/targetptr/lang = '</xsl:text>
+            <xsl:value-of select="$olink.key"/>
+            <xsl:text>'.</xsl:text>
+          </xsl:message>
+          <xsl:text>????</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="@targetdoc != '' or @targetptr != ''">
+      <xsl:if test="$olink.key != ''">
+        <xsl:message>
+          <xsl:text>Olink error: no generated text for </xsl:text>
+          <xsl:text>targetdoc/targetptr/lang = '</xsl:text>
+          <xsl:value-of select="$olink.key"/>
+          <xsl:text>'.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+      <xsl:text>????</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- old style olink -->
+      <xsl:call-template name="olink.outline">
+        <xsl:with-param name="outline.base.uri"
+                        select="unparsed-entity-uri(@targetdocent)"/>
+        <xsl:with-param name="localinfo" select="@localinfo"/>
+        <xsl:with-param name="return" select="'xreftext'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="insert.targetdb.data">
+  <xsl:param name="data"/>
+  <!-- Customize this to massage data further -->
+  <xsl:copy-of select="$data"/>
+</xsl:template>
+
+<xsl:template match="*" mode="olink.docname.markup">
+  <!-- No-op for now -->
+</xsl:template>
+
+<xsl:template name="targetpath">
+  <xsl:param name="dirnode" />
+  <xsl:param name="targetdoc" select="''"/>
+
+<!-- 
+<xsl:message>dirnode is <xsl:value-of select="$dirnode/@name"/></xsl:message>
+<xsl:message>targetdoc is <xsl:value-of select="$targetdoc"/></xsl:message>
+-->
+  <!-- recursive template generates path to olink target directory -->
+  <xsl:choose>
+    <!-- Have we arrived at the final path step? -->
+    <xsl:when test="$dirnode/child::document[@targetdoc = $targetdoc]">
+      <!-- We are done -->
+    </xsl:when>
+    <!-- Have we reached the top without a match? -->
+    <xsl:when test="local-name($dirnode) != 'dir'" >
+        <xsl:message>Olink error: cannot locate targetdoc <xsl:value-of select="$targetdoc"/> in sitemap</xsl:message>
+    </xsl:when>
+    <!-- Is the target in a descendant? -->
+    <xsl:when test="$dirnode/descendant::document/@targetdoc = $targetdoc">
+      <xsl:variable name="step" select="$dirnode/child::dir[descendant::document/@targetdoc = $targetdoc]"/>
+      <xsl:if test = "$step">
+        <xsl:value-of select="$step/@name"/>
+        <xsl:text>/</xsl:text>
+      </xsl:if>
+      <!-- Now recurse with the child -->
+      <xsl:call-template name="targetpath" >
+        <xsl:with-param name="dirnode" select="$step"/>
+        <xsl:with-param name="targetdoc" select="$targetdoc"/>
+      </xsl:call-template>
+    </xsl:when>
+    <!-- Otherwise we need to move up a step -->
+    <xsl:otherwise>
+      <xsl:if test="$dirnode/parent::dir">
+        <xsl:text>../</xsl:text>
+      </xsl:if>
+      <xsl:call-template name="targetpath" >
+        <xsl:with-param name="dirnode" select="$dirnode/parent::*"/>
+        <xsl:with-param name="targetdoc" select="$targetdoc"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="olink.page.citation">
+  <xsl:param name="olink.key" select="''"/>
+  <xsl:param name="olink.lang" select="'en'"/>
+  <xsl:param name="target.database"/>
+  <xsl:param name="linkend" select="''"/>
+  <xsl:param name="xrefstyle">
+    <xsl:choose>
+      <xsl:when test="@role and not(@xrefstyle) 
+                      and $use.role.as.xrefstyle != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@xrefstyle"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:variable name="targetdoc">
+    <xsl:value-of select="substring-before($olink.key, '/')"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$linkend != ''">
+      <xsl:call-template name="xref.page.citation">
+        <xsl:with-param name="linkend" select="$linkend"/>
+        <xsl:with-param name="target" select="key('id', $linkend)"/>
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="not(starts-with(normalize-space($xrefstyle),
+                        'select:') 
+                and (contains($xrefstyle, 'page')
+                     or contains($xrefstyle, 'Page')))
+                and $current.docid != '' 
+                and $current.docid != $targetdoc
+                and $insert.olink.page.number = 'yes' ">
+  
+      <xsl:variable name="page-number">
+        <xsl:for-each select="$target.database" >
+          <xsl:value-of 
+                 select="key('targetptr-key', $olink.key)[1]/@page" />
+        </xsl:for-each>
+      </xsl:variable>
+  
+      <xsl:if test="$page-number != ''">
+        <xsl:call-template name="substitute-markup">
+          <xsl:with-param name="template">
+            <xsl:call-template name="gentext.template">
+              <xsl:with-param name="name" select="'olink.page.citation'"/>
+              <xsl:with-param name="context" select="'xref'"/>
+              <xsl:with-param name="lang" select="$olink.lang"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="pagenumber" select="$page-number"/>
+        </xsl:call-template>
+      </xsl:if>
+  
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="olink.document.citation">
+  <xsl:param name="olink.key" select="''"/>
+  <xsl:param name="olink.lang" select="'en'"/>
+  <xsl:param name="target.database"/>
+  <xsl:param name="xrefstyle">
+    <xsl:choose>
+      <xsl:when test="@role and not(@xrefstyle) 
+                      and $use.role.as.xrefstyle != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@xrefstyle"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:variable name="page">
+    <xsl:for-each select="$target.database" >
+      <xsl:value-of 
+             select="key('targetptr-key', $olink.key)[1]/@page" />
+    </xsl:for-each>
+  </xsl:variable>
+
+  <xsl:variable name="targetdoc">
+    <xsl:value-of select="substring-before($olink.key, '/')"/>
+  </xsl:variable>
+
+  <xsl:variable name="targetptr">
+    <xsl:value-of 
+          select="substring-before(substring-after($olink.key, '/'), '/')"/>
+  </xsl:variable>
+
+  <!-- Don't add docname if pointing to root element -->
+  <xsl:variable name="rootptr">
+    <xsl:for-each select="$target.database" >
+      <xsl:value-of 
+             select="key('targetdoc-key', $targetdoc)[1]/div[1]/@targetptr" />
+    </xsl:for-each>
+  </xsl:variable>
+
+  <xsl:variable name="docname">
+    <xsl:for-each select="$target.database" >
+      <xsl:call-template name="insert.targetdb.data">
+        <xsl:with-param name="data"
+             select="key('targetdoc-key', $targetdoc)[1]/div[1]/ttl/node()" />
+      </xsl:call-template>
+    </xsl:for-each>
+  </xsl:variable>
+
+  <xsl:if test="not(starts-with(normalize-space($xrefstyle), 'select:') 
+              and (contains($xrefstyle, 'docname')))
+              and ($olink.doctitle = 'yes' or $olink.doctitle = '1')
+              and $current.docid != '' 
+              and $rootptr != $targetptr
+              and $current.docid != $targetdoc
+              and $docname != ''">
+    <xsl:call-template name="substitute-markup">
+      <xsl:with-param name="template">
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="name" select="'olink.document.citation'"/>
+          <xsl:with-param name="context" select="'xref'"/>
+          <xsl:with-param name="lang" select="$olink.lang"/>
+        </xsl:call-template>
+      </xsl:with-param>
+      <xsl:with-param name="docname" select="$docname"/>
+      <xsl:with-param name="pagenumber" select="$page"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="xref.page.citation">
+  <!-- Determine if this xref should have a page citation.
+       Context node is the xref or local olink element -->
+  <xsl:param name="linkend" select="@linkend"/>
+  <xsl:param name="target" select="key('id', $linkend)"/>
+  <xsl:param name="xrefstyle">
+    <xsl:choose>
+      <xsl:when test="@role and not(@xrefstyle) 
+                      and $use.role.as.xrefstyle != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@xrefstyle"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:if test="not(starts-with(normalize-space($xrefstyle),'select:')
+                    and (contains($xrefstyle, 'page')
+                         or contains($xrefstyle, 'Page')))
+                and ( $insert.xref.page.number = 'yes' 
+                   or $insert.xref.page.number = '1')
+                or local-name($target) = 'para'">
+    <xsl:apply-templates select="$target" mode="page.citation">
+      <xsl:with-param name="id" select="$linkend"/>
+    </xsl:apply-templates>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/common/or.xml b/applications/content/template/docbook/common/or.xml
new file mode 100644
index 0000000..783fdee
--- /dev/null
+++ b/applications/content/template/docbook/common/or.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="or" english-language-name="Oriya">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/or.xml -->
+<!-- * -->
+<!-- * E-mail the edited or.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="ସାରାଂଶ"/>
+<l:gentext key="abstract" text="ସାରାଂଶ"/>
+<l:gentext key="Acknowledgements" text="ପ୍ରାପ୍ତି ସୂଚନା"/>
+<l:gentext key="acknowledgements" text="ପ୍ରାପ୍ତି ସୂଚନା"/>
+<l:gentext key="Answer" text="ଉ:"/>
+<l:gentext key="answer" text="ଉ:"/>
+<l:gentext key="Appendix" text="ପରିଶିଷ୍ଠ"/>
+<l:gentext key="appendix" text="ପରିଶିଷ୍ଠ"/>
+<l:gentext key="Article" text="ନିବନ୍ଧ"/>
+<l:gentext key="article" text="ନିବନ୍ଧ"/>
+<l:gentext key="Author" text="ଲେଖକ"/>
+<l:gentext key="Bibliography" text="ଗ୍ରନ୍ଥସୂଚୀ"/>
+<l:gentext key="bibliography" text="ଗ୍ରନ୍ଥସୂଚୀ"/>
+<l:gentext key="Book" text="ପୁସ୍ତକ"/>
+<l:gentext key="book" text="ପୁସ୍ତକ"/>
+<l:gentext key="CAUTION" text="ସାବଧାନ"/>
+<l:gentext key="Caution" text="ସାବଧାନ"/>
+<l:gentext key="caution" text="ସାବଧାନ"/>
+<l:gentext key="Chapter" text="ଅଧ୍ଯାୟ"/>
+<l:gentext key="chapter" text="ଅଧ୍ଯାୟ"/>
+<l:gentext key="Colophon" text="ପୁସ୍ତକ ପରିଚୟ"/>
+<l:gentext key="colophon" text="ପୁସ୍ତକ ପରିଚୟ"/>
+<l:gentext key="Copyright" text="ସ୍ବତ୍ତ୍ବାଧୀକାର"/>
+<l:gentext key="copyright" text="ସ୍ବତ୍ତ୍ବାଧୀକାର"/>
+<l:gentext key="Dedication" text="ସମର୍ପଣ"/>
+<l:gentext key="dedication" text="ସମର୍ପଣ"/>
+<l:gentext key="Edition" text="ସଂସକରଣ"/>
+<l:gentext key="edition" text="ସଂସକରଣ"/>
+<l:gentext key="Editor" text="ସମ୍ପାଦକ"/>
+<l:gentext key="Equation" text="ସମୀକରଣ"/>
+<l:gentext key="equation" text="ସମୀକରଣ"/>
+<l:gentext key="Example" text="ଉଦାହରଣ"/>
+<l:gentext key="example" text="ଉଦାହରଣ"/>
+<l:gentext key="Figure" text="ଚିତ୍ର"/>
+<l:gentext key="figure" text="ଚିତ୍ର"/>
+<l:gentext key="Glossary" text="ଶବ୍ଦକୋଷ"/>
+<l:gentext key="glossary" text="ଶବ୍ଦକୋଷ"/>
+<l:gentext key="GlossSee" text="ଦେଖନ୍ତୁ"/>
+<l:gentext key="glosssee" text="ଦେଖନ୍ତୁ"/>
+<l:gentext key="GlossSeeAlso" text="ଏହା ଭି ଦେଖନ୍ତୁ"/>
+<l:gentext key="glossseealso" text="ଏହା ଭି ଦେଖନ୍ତୁ"/>
+<l:gentext key="IMPORTANT" text="ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ"/>
+<l:gentext key="important" text="ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ"/>
+<l:gentext key="Important" text="ଗୁରୁତ୍ବପୂର୍ଣ୍ଣ"/>
+<l:gentext key="Index" text="ଅନୁକ୍ରମଣିକା"/>
+<l:gentext key="index" text="ଅନୁକ୍ରମଣିକା"/>
+<l:gentext key="ISBN" text="ଆଇ.ଏସ.ବି.ଏନ."/>
+<l:gentext key="isbn" text="ଆଇ.ଏସ.ବି.ଏନ."/>
+<l:gentext key="LegalNotice" text="ବୈଧାନିକ ସୂଚନା"/>
+<l:gentext key="legalnotice" text="ବୈଧାନିକ ସୂଚନା"/>
+<l:gentext key="MsgAud" text="ଶ୍ରୋତୃବର୍ଗ"/>
+<l:gentext key="msgaud" text="ଶ୍ରୋତୃବର୍ଗ"/>
+<l:gentext key="MsgLevel" text="ସ୍ତର"/>
+<l:gentext key="msglevel" text="ସ୍ତର"/>
+<l:gentext key="MsgOrig" text="ଉତ୍ପତ୍ତି"/>
+<l:gentext key="msgorig" text="ଉତ୍ପତ୍ତି"/>
+<l:gentext key="NOTE" text="ଟୀକା"/>
+<l:gentext key="Note" text="ଟୀକା"/>
+<l:gentext key="note" text="ଟୀକା"/>
+<l:gentext key="Part" text="ଭାଗ"/>
+<l:gentext key="part" text="ଭାଗ"/>
+<l:gentext key="Preface" text="ଭୂମିକା"/>
+<l:gentext key="preface" text="ଭୂମିକା"/>
+<l:gentext key="Procedure" text="କାର୍ଯ୍ଯବିଧି"/>
+<l:gentext key="procedure" text="କାର୍ଯ୍ଯବିଧି"/>
+<l:gentext key="ProductionSet" text="ଉତ୍ପାଦନ"/>
+<l:gentext key="PubDate" text="ପ୍ରକାଶନ ତାରୀଖ"/>
+<l:gentext key="pubdate" text="ପ୍ରକାଶନ ତାରୀଖ"/>
+<l:gentext key="Published" text="ପ୍ରକାଶିତ"/>
+<l:gentext key="published" text="ପ୍ରକାଶିତ"/>
+<l:gentext key="Publisher" text="ପ୍ରକାଶକ"/>
+<l:gentext key="Qandadiv" text="ପ୍ର &amp; ଉ"/>
+<l:gentext key="qandadiv" text="ପ୍ର &amp; ଉ"/>
+<l:gentext key="QandASet" text="ବାରମ୍ବାର ପଚରାଯାଉଥିବା ପ୍ରଶ୍ନଗୁଡ଼ିକ"/>
+<l:gentext key="Question" text="ପ୍ର:"/>
+<l:gentext key="question" text="ପ୍ର:"/>
+<l:gentext key="RefEntry" text="ପୃଷ୍ଠା"/>
+<l:gentext key="refentry" text="ପୃଷ୍ଠା"/>
+<l:gentext key="Reference" text="ସନ୍ଦର୍ଭ"/>
+<l:gentext key="reference" text="ସନ୍ଦର୍ଭ"/>
+<l:gentext key="References" text="ସନ୍ଦର୍ଭ"/>
+<l:gentext key="RefName" text="ନାମ"/>
+<l:gentext key="refname" text="ନାମ"/>
+<l:gentext key="RefSection" text="ଅଂଶ"/>
+<l:gentext key="refsection" text="ଅଂଶ"/>
+<l:gentext key="RefSynopsisDiv" text="ସାରାଂଶ"/>
+<l:gentext key="refsynopsisdiv" text="ସାରାଂଶ"/>
+<l:gentext key="RevHistory" text="ସଂଶୋଧନ ଇତିହାସ"/>
+<l:gentext key="revhistory" text="ସଂଶୋଧନ ଇତିହାସ"/>
+<l:gentext key="revision" text="ସଂଶୋଧନ"/>
+<l:gentext key="Revision" text="ସଂଶୋଧନ"/>
+<l:gentext key="sect1" text="ଅଂଶ"/>
+<l:gentext key="sect2" text="ଅଂଶ"/>
+<l:gentext key="sect3" text="ଅଂଶ"/>
+<l:gentext key="sect4" text="ଅଂଶ"/>
+<l:gentext key="sect5" text="ଅଂଶ"/>
+<l:gentext key="section" text="ଅଂଶ"/>
+<l:gentext key="Section" text="ଅଂଶ"/>
+<l:gentext key="see" text="ଦେଖନ୍ତୁ"/>
+<l:gentext key="See" text="ଦେଖନ୍ତୁ"/>
+<l:gentext key="seealso" text="ଏହା ଭି ଦେଖନ୍ତୁ"/>
+<l:gentext key="Seealso" text="ଏହା ଭି ଦେଖନ୍ତୁ"/>
+<l:gentext key="SeeAlso" text="ଏହା ଭି ଦେଖନ୍ତୁ"/>
+<l:gentext key="set" text="ବିନ୍ଯାସ କରନ୍ତୁ"/>
+<l:gentext key="Set" text="ବିନ୍ଯାସ କରନ୍ତୁ"/>
+<l:gentext key="setindex" text="ଅନୁକ୍ରମଣିକା ବିନ୍ଯାସ କରନ୍ତୁ"/>
+<l:gentext key="SetIndex" text="ଅନୁକ୍ରମଣିକା ବିନ୍ଯାସ କରନ୍ତୁ"/>
+<l:gentext key="Sidebar" text="ପାର୍ଶ୍ବପଟି"/>
+<l:gentext key="sidebar" text="ପାର୍ଶ୍ବପଟି"/>
+<l:gentext key="step" text="ପଦକ୍ଷେପ"/>
+<l:gentext key="Step" text="ପଦକ୍ଷେପ"/>
+<l:gentext key="table" text="ସାରଣୀ"/>
+<l:gentext key="Table" text="ସାରଣୀ"/>
+<l:gentext key="task" text="କାର୍ଯ୍ୟସୂଚୀ"/>
+<l:gentext key="Task" text="କାର୍ଯ୍ୟସୂଚୀ"/>
+<l:gentext key="tip" text="ସଂକେତ"/>
+<l:gentext key="TIP" text="ସଂକେତ"/>
+<l:gentext key="Tip" text="ସଂକେତ"/>
+<l:gentext key="Warning" text="ଚେତାବନୀ"/>
+<l:gentext key="warning" text="ଚେତାବନୀ"/>
+<l:gentext key="WARNING" text="ଚେତାବନୀ"/>
+<l:gentext key="and" text="ଓ"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="ଦ୍ବାରା"/>
+<l:gentext key="Edited" text="ସମ୍ପାଦିତ"/>
+<l:gentext key="edited" text="ସମ୍ପାଦିତ"/>
+<l:gentext key="Editedby" text="ଦ୍ବାରା ସମ୍ପାଦିତ"/>
+<l:gentext key="editedby" text="ଦ୍ବାରା ସମ୍ପାଦିତ"/>
+<l:gentext key="in" text="ଭିତରେ"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="ଟୀକା"/>
+<l:gentext key="Notes" text="ଟୀକା"/>
+<l:gentext key="Pgs" text="ପୃଷ୍ଠା"/>
+<l:gentext key="pgs" text="ପୃଷ୍ଠା"/>
+<l:gentext key="Revisedby" text="ଦ୍ବାରା ସଂଶୋଧିତ: "/>
+<l:gentext key="revisedby" text="ଦ୍ବାରା ସଂଶୋଧିତ: "/>
+<l:gentext key="TableNotes" text="ଟୀକା"/>
+<l:gentext key="tablenotes" text="ଟୀକା"/>
+<l:gentext key="TableofContents" text="ସୂଚୀପତ୍ର"/>
+<l:gentext key="tableofcontents" text="ସୂଚୀପତ୍ର"/>
+<l:gentext key="unexpectedelementname" text="ଅପ୍ରତ୍ଯାଶିତ ଉପାଦାନ ନାମ"/>
+<l:gentext key="unsupported" text="ଅସହାୟକ"/>
+<l:gentext key="xrefto" text="ସହିତ ପ୍ରାସଙ୍ଗିକ ସନ୍ଦର୍ଭ କରନ୍ତୁ"/>
+<l:gentext key="Authors" text="ଲେଖକ"/>
+<l:gentext key="copyeditor" text="ନକଲ ସମ୍ପାଦକ"/>
+<l:gentext key="graphicdesigner" text="ଆଲେଖୀ ରଚନାକାରୀ"/>
+<l:gentext key="productioneditor" text="ଉତ୍ପାଦନ ସମ୍ପାଦକ"/>
+<l:gentext key="technicaleditor" text="ଯାନ୍ତ୍ରିକ ସମ୍ପାଦକ"/>
+<l:gentext key="translator" text="ଅନୁବାଦକ"/>
+<l:gentext key="listofequations" text="ସମୀକରଣ ତାଲିକା"/>
+<l:gentext key="ListofEquations" text="ସମୀକରଣ ତାଲିକା"/>
+<l:gentext key="ListofExamples" text="ଉଦାହରଣ ତାଲିକା"/>
+<l:gentext key="listofexamples" text="ଉଦାହରଣ ତାଲିକା"/>
+<l:gentext key="ListofFigures" text="ଚିତ୍ର ତାଲିକା"/>
+<l:gentext key="listoffigures" text="ଚିତ୍ର ତାଲିକା"/>
+<l:gentext key="ListofProcedures" text="କାର୍ଯ୍ଯବିଧି ତାଲିକା"/>
+<l:gentext key="listofprocedures" text="କାର୍ଯ୍ଯବିଧି ତାଲିକା"/>
+<l:gentext key="listoftables" text="ସାରଣୀ ତାଲିକା"/>
+<l:gentext key="ListofTables" text="ସାରଣୀ ତାଲିକା"/>
+<l:gentext key="ListofUnknown" text="ଅଜଣାର ତାଲିକା"/>
+<l:gentext key="listofunknown" text="ଅଜଣାର ତାଲିକା"/>
+<l:gentext key="nav-home" text="ମୂଳ ସ୍ଥାନ"/>
+<l:gentext key="nav-next" text="ପରବର୍ତ୍ତୀ"/>
+<l:gentext key="nav-next-sibling" text="ଦ୍ରୁତ ଆଗକୁ"/>
+<l:gentext key="nav-prev" text="ପୂର୍ବ"/>
+<l:gentext key="nav-prev-sibling" text="ଦ୍ରୁତ ପଛକୁ"/>
+<l:gentext key="nav-up" text="ଉପରକୁ"/>
+<l:gentext key="nav-toc" text="ସୂଚୀପତ୍ର"/>
+<l:gentext key="Draft" text="ଡ୍ରାଫ୍ଟ"/>
+<l:gentext key="above" text="ଉପରେ"/>
+<l:gentext key="below" text="ତଳେ"/>
+<l:gentext key="sectioncalled" text="ଏହି ଅଂଶର ନାମ"/>
+<l:gentext key="index symbols" text="ପ୍ରତୀକ"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="ଅଆଇଈଉଊଋଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯୟରଲଳୱଶଷସହ"/>
+<l:gentext key="uppercase.alpha" text="ଅଆଇଈଉଊଋଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯୟରଲଳୱଶଷସହ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="ପ୍ରଥମ-ଶେଷ"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="ପରିଶିଷ୍ଠ %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="ଅଧ୍ଯାୟ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="ସମୀକରଣ %n. %t"/>
+<l:template name="example" text="ଉଦାହରଣ %n. %t"/>
+<l:template name="figure" text="ଚିତ୍ର %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ଭାଗ %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="କାର୍ଯ୍ଯବିଧି %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ଉତ୍ପାଦନ %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="ସାରଣୀ %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="ପରିଶିଷ୍ଠ %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="ଅଧ୍ଯାୟ %n. %t"/>
+<l:template name="part" text="ଭାଗ %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="ଉ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="ପ୍ର: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="ପ୍ର: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text="%oରେ"/>
+<l:template name="olink.page.citation" text=" (ପୃଷ୍ଠା %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(ପୃଷ୍ଠା %p)"/>
+<l:template name="docname" text="%oରେ"/>
+<l:template name="docnamelong" text="%o ନାମକ ଦଲିଲରେ"/>
+<l:template name="pageabbrev" text="(ପୃ. %p)"/>
+<l:template name="Page" text="ପୃଷ୍ଠା %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsection" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsect1" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsect2" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsect3" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="sect1" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="sect2" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="sect3" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="sect4" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="sect5" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="section" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="simplesect" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="ଉ: %n"/>
+<l:template name="appendix" text="ପରିଶିଷ୍ଠ %n"/>
+<l:template name="bridgehead" text="ଅଂଶ %n"/>
+<l:template name="chapter" text="ଅଧ୍ଯାୟ %n"/>
+<l:template name="equation" text="ସମୀକରଣ %n"/>
+<l:template name="example" text="ଉଦାହରଣ %n"/>
+<l:template name="figure" text="ଚିତ୍ର %n"/>
+<l:template name="part" text="ଭାଗ %n"/>
+<l:template name="procedure" text="କାର୍ଯ୍ଯବିଧି %n"/>
+<l:template name="productionset" text="ଉତ୍ପାଦନ %n"/>
+<l:template name="qandadiv" text="ପ୍ର &amp; ଉ %n"/>
+<l:template name="qandaentry" text="ପ୍ର: %n"/>
+<l:template name="question" text="ପ୍ର: %n"/>
+<l:template name="sect1" text="ଅଂଶ %n"/>
+<l:template name="sect2" text="ଅଂଶ %n"/>
+<l:template name="sect3" text="ଅଂଶ %n"/>
+<l:template name="sect4" text="ଅଂଶ %n"/>
+<l:template name="sect5" text="ଅଂଶ %n"/>
+<l:template name="section" text="ଅଂଶ %n"/>
+<l:template name="table" text="ସାରଣୀ %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="ପରିଶିଷ୍ଠ %n, %t"/>
+<l:template name="bridgehead" text="ଅଂଶ %n, “%t”"/>
+<l:template name="chapter" text="ଅଧ୍ଯାୟ %n, %t"/>
+<l:template name="equation" text="ସମୀକରଣ %n, “%t”"/>
+<l:template name="example" text="ଉଦାହରଣ %n, “%t”"/>
+<l:template name="figure" text="ଚିତ୍ର %n, “%t”"/>
+<l:template name="part" text="ଭାଗ %n, “%t”"/>
+<l:template name="procedure" text="କାର୍ଯ୍ଯବିଧି %n, “%t”"/>
+<l:template name="productionset" text="ଉତ୍ପାଦନ %n, “%t”"/>
+<l:template name="qandadiv" text="ପ୍ର &amp; ଉ %n, “%t”"/>
+<l:template name="refsect1" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsect2" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsect3" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="refsection" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="sect1" text="ଅଂଶ %n, “%t”"/>
+<l:template name="sect2" text="ଅଂଶ %n, “%t”"/>
+<l:template name="sect3" text="ଅଂଶ %n, “%t”"/>
+<l:template name="sect4" text="ଅଂଶ %n, “%t”"/>
+<l:template name="sect5" text="ଅଂଶ %n, “%t”"/>
+<l:template name="section" text="ଅଂଶ %n, “%t”"/>
+<l:template name="simplesect" text="ଏହି ଅଂଶର ନାମ “%t”"/>
+<l:template name="table" text="ସାରଣୀ %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ଓ "/>
+<l:template name="seplast" text=", ଓ "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="ଦେଖନ୍ତୁ %t."/>
+<l:template name="seealso" text="ଏହା ଭି ଦେଖନ୍ତୁ %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="ଶ୍ରୋତୃବର୍ଗ: "/>
+<l:template name="MsgLevel" text="ସ୍ତର: "/>
+<l:template name="MsgOrig" text="ଉତ୍ପତ୍ତି: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="ମାସ/ଦିନ/ବର୍ଷ"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[ବ୍ଯାଖ୍ଯା: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="ଜାନୁଆରି"/>
+<l:template name="February" text="ଫେବ୍ରୁଆରି"/>
+<l:template name="March" text="ମାର୍ଚ୍ଚ"/>
+<l:template name="April" text="ଏପ୍ରିଲ"/>
+<l:template name="May" text="ମେ"/>
+<l:template name="June" text="ଜୁନ"/>
+<l:template name="July" text="ଜୁଲାଇ"/>
+<l:template name="August" text="ଅଗଷ୍ଟ"/>
+<l:template name="September" text="ସେପ୍ଟେମ୍ବର"/>
+<l:template name="October" text="ଅକ୍ଟୋବର"/>
+<l:template name="November" text="ନଭେମ୍ବର"/>
+<l:template name="December" text="ଡିସେମ୍ବର"/>
+<l:template name="Monday" text="ସୋମବାର"/>
+<l:template name="Tuesday" text="ମଙ୍ଗଳବାର"/>
+<l:template name="Wednesday" text="ବୁଧବାର"/>
+<l:template name="Thursday" text="ଗୁରୁବାର"/>
+<l:template name="Friday" text="ଶୁକ୍ରବାର"/>
+<l:template name="Saturday" text="ଶନିବାର"/>
+<l:template name="Sunday" text="ରବିବାର"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="ଜାନ"/>
+<l:template name="Feb" text="ଫେବ"/>
+<l:template name="Mar" text="ମାର"/>
+<l:template name="Apr" text="ଏପ୍ର"/>
+<l:template name="May" text="ମେ"/>
+<l:template name="Jun" text="ଜୁନ"/>
+<l:template name="Jul" text="ଜୁଲ"/>
+<l:template name="Aug" text="ଅଗ"/>
+<l:template name="Sep" text="ସେପ"/>
+<l:template name="Oct" text="ଅକ୍ଟ"/>
+<l:template name="Nov" text="ନଭ"/>
+<l:template name="Dec" text="ଡିସ"/>
+<l:template name="Mon" text="ସୋମ"/>
+<l:template name="Tue" text="ମଂଗଳ"/>
+<l:template name="Wed" text="ବୁଧ"/>
+<l:template name="Thu" text="ଗୁରୁ"/>
+<l:template name="Fri" text="ଶୁକ୍ର"/>
+<l:template name="Sat" text="ଶନି"/>
+<l:template name="Sun" text="ରବି"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0448 Oriya"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">ପ୍ରତୀକ</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/pa.xml b/applications/content/template/docbook/common/pa.xml
new file mode 100644
index 0000000..f5b0300
--- /dev/null
+++ b/applications/content/template/docbook/common/pa.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="pa" english-language-name="Punjabi">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/pa.xml -->
+<!-- * -->
+<!-- * E-mail the edited pa.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="ਸਾਰ"/>
+<l:gentext key="abstract" text="ਸਾਰ"/>
+<l:gentext key="Acknowledgements" text="ਰਸੀਦਾਂ"/>
+<l:gentext key="acknowledgements" text="ਰਸੀਦਾਂ"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="a:"/>
+<l:gentext key="Appendix" text="ਅੰਤਿਕਾ"/>
+<l:gentext key="appendix" text="ਅੰਤਿਕਾ"/>
+<l:gentext key="Article" text="ਲੇਖ"/>
+<l:gentext key="article" text="ਲੇਖ"/>
+<l:gentext key="Author" text="ਲੇਖਕ"/>
+<l:gentext key="Bibliography" text="ਪੁਸਤਕ-ਸੂਚੀ"/>
+<l:gentext key="bibliography" text="ਪੁਸਤਕ-ਸੂਚੀ"/>
+<l:gentext key="Book" text="ਪੁਸਤਕ"/>
+<l:gentext key="book" text="ਪੁਸਤਕ"/>
+<l:gentext key="CAUTION" text="ਸਾਵਧਾਨ"/>
+<l:gentext key="Caution" text="ਸਾਵਧਾਨ"/>
+<l:gentext key="caution" text="ਸਾਵਧਾਨ"/>
+<l:gentext key="Chapter" text="ਅਧਿਆਇ"/>
+<l:gentext key="chapter" text="ਅਧਿਆਇ"/>
+<l:gentext key="Colophon" text="ਲੇਖਕਾਂਬਾਰੇ"/>
+<l:gentext key="colophon" text="ਲੇਖਕਾਂਬਾਰੇ"/>
+<l:gentext key="Copyright" text="ਹੱਕਰਾਖਵੇਂਹਨ"/>
+<l:gentext key="copyright" text="ਹੱਕਰਾਖਵੇਂਹਨ"/>
+<l:gentext key="Dedication" text="ਸਮਰਪਣ"/>
+<l:gentext key="dedication" text="ਸਮਰਪਣ"/>
+<l:gentext key="Edition" text="ਪ੍ਰਕਾਸ਼ਨ"/>
+<l:gentext key="edition" text="ਪ੍ਰਕਾਸ਼ਨ"/>
+<l:gentext key="Editor" text="ਪ੍ਰਕਾਸ਼ਕ"/>
+<l:gentext key="Equation" text="ਸਮੀਕਰਨ"/>
+<l:gentext key="equation" text="ਸਮੀਕਰਨ"/>
+<l:gentext key="Example" text="ਉਦਾਹਰਨ"/>
+<l:gentext key="example" text="ਉਦਾਹਰਨ"/>
+<l:gentext key="Figure" text="ਚਿੱਤਰ"/>
+<l:gentext key="figure" text="ਚਿੱਤਰ"/>
+<l:gentext key="Glossary" text="ਸ਼ਬਦਾਵਲੀ"/>
+<l:gentext key="glossary" text="ਸ਼ਬਦਾਵਲੀ"/>
+<l:gentext key="GlossSee" text="ਵੇਖੋ"/>
+<l:gentext key="glosssee" text="ਵੇਖੋ"/>
+<l:gentext key="GlossSeeAlso" text="ਇਹਵੀਵੇਖੋ"/>
+<l:gentext key="glossseealso" text="ਇਹਵੀਵੇਖੋ"/>
+<l:gentext key="IMPORTANT" text="ਖਾਸ"/>
+<l:gentext key="important" text="ਖਾਸ"/>
+<l:gentext key="Important" text="ਖਾਸ"/>
+<l:gentext key="Index" text="ਤਤਕਰਾ"/>
+<l:gentext key="index" text="ਤਤਕਰਾ"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="ਕਾਨੂੰਨੀ ਸੂਚਨਾ"/>
+<l:gentext key="legalnotice" text="ਕਾਨੂੰਨੀ ਸੂਚਨਾ"/>
+<l:gentext key="MsgAud" text="ਪਾਠਕ"/>
+<l:gentext key="msgaud" text="ਪਾਠਕ"/>
+<l:gentext key="MsgLevel" text="ਪੱਧਰ"/>
+<l:gentext key="msglevel" text="ਪੱਧਰ"/>
+<l:gentext key="MsgOrig" text="ਮੁੱਢ"/>
+<l:gentext key="msgorig" text="ਮੁੱਢ"/>
+<l:gentext key="NOTE" text="ਸੂਚਨਾ"/>
+<l:gentext key="Note" text="ਸੂਚਨਾ"/>
+<l:gentext key="note" text="ਸੂਚਨਾ"/>
+<l:gentext key="Part" text="ਭਾਗ"/>
+<l:gentext key="part" text="ਭਾਗ"/>
+<l:gentext key="Preface" text="ਭੂਮਿਕਾ"/>
+<l:gentext key="preface" text="ਭੂਮਿਕਾ"/>
+<l:gentext key="Procedure" text="ਤਰੀਕਾ"/>
+<l:gentext key="procedure" text="ਤਰੀਕਾ"/>
+<l:gentext key="ProductionSet" text="ਉਤਪਾਦਨ"/>
+<l:gentext key="PubDate" text="ਪ੍ਰਕਾਸ਼ਨ ਮਿਤੀ"/>
+<l:gentext key="pubdate" text="ਪ੍ਰਕਾਸ਼ਨ ਮਿਤੀ"/>
+<l:gentext key="Published" text="ਪ੍ਰਕਾਸ਼ਿਤ"/>
+<l:gentext key="published" text="ਪ੍ਰਕਾਸ਼ਿਤ"/>
+<l:gentext key="Publisher" text="ਪ੍ਰਕਾਸ਼ਕ"/>
+<l:gentext key="Qandadiv" text="Q &amp; A"/>
+<l:gentext key="qandadiv" text="q &amp; a"/>
+<l:gentext key="QandASet" text="ਆਮ ਸਵਾਲ ਜਵਾਬ"/>
+<l:gentext key="Question" text="Q:"/>
+<l:gentext key="question" text="q:"/>
+<l:gentext key="RefEntry" text="ਸਫਾ"/>
+<l:gentext key="refentry" text="ਸਫਾ"/>
+<l:gentext key="Reference" text="ਹਵਾਲਾ"/>
+<l:gentext key="reference" text="ਹਵਾਲਾ"/>
+<l:gentext key="References" text="ਹਵਾਲਾ"/>
+<l:gentext key="RefName" text="ਨਾਂ"/>
+<l:gentext key="refname" text="ਨਾਂ"/>
+<l:gentext key="RefSection" text="ਹਿੱਸਾ"/>
+<l:gentext key="refsection" text="ਹਿੱਸਾ"/>
+<l:gentext key="RefSynopsisDiv" text="ਖੁਲਾਸਾ"/>
+<l:gentext key="refsynopsisdiv" text="ਖੁਲਾਸਾ"/>
+<l:gentext key="RevHistory" text="ਸੁਧਾਈ ਅਤੀਤ"/>
+<l:gentext key="revhistory" text="ਸੁਧਾਈ ਅਤੀਤ"/>
+<l:gentext key="revision" text="ਸੁਧਾਈ"/>
+<l:gentext key="Revision" text="ਸੁਧਾਈ"/>
+<l:gentext key="sect1" text="ਹਿੱਸਾ"/>
+<l:gentext key="sect2" text="ਹਿੱਸਾ"/>
+<l:gentext key="sect3" text="ਹਿੱਸਾ"/>
+<l:gentext key="sect4" text="ਹਿੱਸਾ"/>
+<l:gentext key="sect5" text="ਹਿੱਸਾ"/>
+<l:gentext key="section" text="ਹਿੱਸਾ"/>
+<l:gentext key="Section" text="ਹਿੱਸਾ"/>
+<l:gentext key="see" text="ਵੇਖੋ"/>
+<l:gentext key="See" text="ਵੇਖੋ"/>
+<l:gentext key="seealso" text="ਇਹਵੀਵੇਖੋ"/>
+<l:gentext key="Seealso" text="ਇਹਵੀਵੇਖੋ"/>
+<l:gentext key="SeeAlso" text="ਇਹਵੀਵੇਖੋ"/>
+<l:gentext key="set" text="ਨਿਰਧਾਰਿਤ"/>
+<l:gentext key="Set" text="ਨਿਰਧਾਰਿਤ"/>
+<l:gentext key="setindex" text="ਤਤਕਰਾ ਨਿਰਧਾਰਨ"/>
+<l:gentext key="SetIndex" text="ਤਤਕਰਾ ਨਿਰਧਾਰਨ"/>
+<l:gentext key="Sidebar" text="ਬਾਹੀ"/>
+<l:gentext key="sidebar" text="ਬਾਹੀ"/>
+<l:gentext key="step" text="ਪਗ਼"/>
+<l:gentext key="Step" text="ਪਗ਼"/>
+<l:gentext key="table" text="ਸਾਰਣੀ"/>
+<l:gentext key="Table" text="ਸਾਰਣੀ"/>
+<l:gentext key="task" text="ਕਾਰਜ"/>
+<l:gentext key="Task" text="ਕਾਰਜ"/>
+<l:gentext key="tip" text="ਸੰਕੇਤ"/>
+<l:gentext key="TIP" text="ਸੰਕੇਤ"/>
+<l:gentext key="Tip" text="ਸੰਕੇਤ"/>
+<l:gentext key="Warning" text="ਸਾਵਧਾਨ"/>
+<l:gentext key="warning" text="ਸਾਵਧਾਨ"/>
+<l:gentext key="WARNING" text="ਸਾਵਧਾਨ"/>
+<l:gentext key="and" text="ਅਤੇ"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="ਲਈ"/>
+<l:gentext key="Edited" text="ਸੰਪਾਦਨ"/>
+<l:gentext key="edited" text="ਸੰਪਾਦਨ"/>
+<l:gentext key="Editedby" text="ਸੰਪਾਦਨ ਕੀਤਾ"/>
+<l:gentext key="editedby" text="ਸੰਪਾਦਨ ਕੀਤਾ"/>
+<l:gentext key="in" text="ਵਿੱਚ"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="ਸੂਚਨਾ"/>
+<l:gentext key="Notes" text="ਸੂਚਨਾ"/>
+<l:gentext key="Pgs" text="ਸਫ਼ੇ"/>
+<l:gentext key="pgs" text="ਸਫ਼ੇ"/>
+<l:gentext key="Revisedby" text="ਸੁਧਾਈ ਕੀਤੀ: "/>
+<l:gentext key="revisedby" text="ਸੁਧਾਈ ਕੀਤੀ: "/>
+<l:gentext key="TableNotes" text="ਸੂਚਨਾ"/>
+<l:gentext key="tablenotes" text="ਸੂਚਨਾ"/>
+<l:gentext key="TableofContents" text="ਭਾਗ ਸਾਰਣੀ"/>
+<l:gentext key="tableofcontents" text="ਭਾਗ ਸਾਰਣੀ"/>
+<l:gentext key="unexpectedelementname" text="ਨਾ-ਲੋੜੀਦਾ ਇਕਾਈ ਨਾਂ"/>
+<l:gentext key="unsupported" text="ਨਾ-ਸਹਾਇਕ"/>
+<l:gentext key="xrefto" text="xref ਨੂੰ"/>
+<l:gentext key="Authors" text="ਲੇਖਕ"/>
+<l:gentext key="copyeditor" text="ਨਕਲ ਸੰਪਾਦਕ"/>
+<l:gentext key="graphicdesigner" text="ਗਰਾਫਿਕ ਡਿਜ਼ਾਈਨਰ"/>
+<l:gentext key="productioneditor" text="ਉਤਪਾਦਨ ਸੰਪਾਦਕ"/>
+<l:gentext key="technicaleditor" text="ਤਕਨੀਕੀ ਸੰਪਾਦਕ"/>
+<l:gentext key="translator" text="ਅਨੁਵਾਦਕ"/>
+<l:gentext key="listofequations" text="ਸਮੀਕਰਨ ਸੂਚੀ"/>
+<l:gentext key="ListofEquations" text="ਸਮੀਕਰਨ ਸੂਚੀ"/>
+<l:gentext key="ListofExamples" text="ਉਦਾਹਰਨ ਸੂਚੀ"/>
+<l:gentext key="listofexamples" text="ਉਦਾਹਰਨ ਸੂਚੀ"/>
+<l:gentext key="ListofFigures" text="ਚਿੱਤਰ ਸੂਚੀ"/>
+<l:gentext key="listoffigures" text="ਚਿੱਤਰ ਸੂਚੀ"/>
+<l:gentext key="ListofProcedures" text="ਕਾਰਵਾਈ ਸੂਚੀ"/>
+<l:gentext key="listofprocedures" text="ਕਾਰਵਾਈ ਸੂਚੀ"/>
+<l:gentext key="listoftables" text="ਸਾਰਣੀ ਸੂਚੀ"/>
+<l:gentext key="ListofTables" text="ਸਾਰਣੀ ਸੂਚੀ"/>
+<l:gentext key="ListofUnknown" text="ਅਣਜਾਣ ਸੂਚੀ"/>
+<l:gentext key="listofunknown" text="ਅਣਜਾਣ ਸੂਚੀ"/>
+<l:gentext key="nav-home" text="ਘਰ"/>
+<l:gentext key="nav-next" text="ਅੱਗੇ"/>
+<l:gentext key="nav-next-sibling" text="ਤੇਜ਼ ਅੱਗੇ"/>
+<l:gentext key="nav-prev" text="ਪਿੱਛੇ"/>
+<l:gentext key="nav-prev-sibling" text="ਤੇਜ਼ ਪਿੱਛੇ"/>
+<l:gentext key="nav-up" text="ਉੱਪਰ"/>
+<l:gentext key="nav-toc" text="ਸਾਰਣੀ"/>
+<l:gentext key="Draft" text="ਡਰਾਫਟ"/>
+<l:gentext key="above" text="ਉੱਪਰ"/>
+<l:gentext key="below" text="ਹੇਠਾਂ"/>
+<l:gentext key="sectioncalled" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ"/>
+<l:gentext key="index symbols" text="ਚਿੰਨ"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="ਅੰਤਿਕਾ %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="ਅਧਿਆਇ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="ਸਮੀਕਰਨ %n. %t"/>
+<l:template name="example" text="ਉਦਾਹਰਨ %n. %t"/>
+<l:template name="figure" text="ਚਿੱਤਰ %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ਭਾਗ %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="ਤਰੀਕਾ %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ਉਤਪਾਦਨ %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="ਸਾਰਣੀ %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="ਅੰਤਿਕਾ %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="ਅਧਿਆਇ %n. %t"/>
+<l:template name="part" text="ਭਾਗ %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="refsection" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="refsect1" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="refsect2" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="refsect3" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="sect1" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="sect2" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="sect3" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="sect4" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="sect5" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="section" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="simplesect" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="ਅੰਤਿਕਾ %n"/>
+<l:template name="bridgehead" text="ਹਿੱਸਾ %n"/>
+<l:template name="chapter" text="ਅਧਿਆਇ %n"/>
+<l:template name="equation" text="ਸਮੀਕਰਨ %n"/>
+<l:template name="example" text="ਉਦਾਹਰਨ %n"/>
+<l:template name="figure" text="ਚਿੱਤਰ %n"/>
+<l:template name="part" text="ਭਾਗ %n"/>
+<l:template name="procedure" text="ਤਰੀਕਾ %n"/>
+<l:template name="productionset" text="ਉਤਪਾਦਨ %n"/>
+<l:template name="qandadiv" text="Q &amp; A %n"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="sect1" text="ਹਿੱਸਾ %n"/>
+<l:template name="sect2" text="ਹਿੱਸਾ %n"/>
+<l:template name="sect3" text="ਹਿੱਸਾ %n"/>
+<l:template name="sect4" text="ਹਿੱਸਾ %n"/>
+<l:template name="sect5" text="ਹਿੱਸਾ %n"/>
+<l:template name="section" text="ਹਿੱਸਾ %n"/>
+<l:template name="table" text="ਸਾਰਣੀ %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="ਅੰਤਿਕਾ %n, %t"/>
+<l:template name="bridgehead" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="chapter" text="ਅਧਿਆਇ %n, %t"/>
+<l:template name="equation" text="ਸਮੀਕਰਨ %n, “%t”"/>
+<l:template name="example" text="ਉਦਾਹਰਨ %n, “%t”"/>
+<l:template name="figure" text="ਚਿੱਤਰ %n, “%t”"/>
+<l:template name="part" text="ਭਾਗ %n, “%t”"/>
+<l:template name="procedure" text="ਤਰੀਕਾ %n, “%t”"/>
+<l:template name="productionset" text="ਉਤਪਾਦਨ %n, “%t”"/>
+<l:template name="qandadiv" text="Q &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="refsect2" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="refsect3" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="refsection" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="sect1" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="sect2" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="sect3" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="sect4" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="sect5" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="section" text="ਹਿੱਸਾ %n, “%t”"/>
+<l:template name="simplesect" text="ਭਾਗ ਕਹਿੰਦੇ ਨੇ “%t”"/>
+<l:template name="table" text="ਸਾਰਣੀ %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ਅਤੇ "/>
+<l:template name="seplast" text=", ਅਤੇ "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="ਵੇਖੋ %t."/>
+<l:template name="seealso" text="ਇਹਵੀਵੇਖੋ %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="ਪਾਠਕ: "/>
+<l:template name="MsgLevel" text="ਪੱਧਰ: "/>
+<l:template name="MsgOrig" text="ਮੁੱਢ: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="ਜਨਵਰੀ"/>
+<l:template name="February" text="ਫਰਵਰੀ"/>
+<l:template name="March" text="ਮਾਰਚ"/>
+<l:template name="April" text="ਅਪ੍ਰੈਲ"/>
+<l:template name="May" text="ਮਈ"/>
+<l:template name="June" text="ਜੂਨ"/>
+<l:template name="July" text="ਜੁਲਾਈ"/>
+<l:template name="August" text="ਅਗਸਤ"/>
+<l:template name="September" text="ਸਤੰਬਰ"/>
+<l:template name="October" text="ਅਕਤੂਬਰ"/>
+<l:template name="November" text="ਨਵੰਬਰ"/>
+<l:template name="December" text="ਦਸੰਬਰ"/>
+<l:template name="Monday" text="ਸੋਮਵਾਰ"/>
+<l:template name="Tuesday" text="ਮੰਗਲਵਾਰ"/>
+<l:template name="Wednesday" text="ਬੁੱਧਵਾਰ"/>
+<l:template name="Thursday" text="ਵੀਰਵਾਰ"/>
+<l:template name="Friday" text="ਸ਼ੁੱਕਰਵਾਰ"/>
+<l:template name="Saturday" text="ਸ਼ਨੀਵਾਰ"/>
+<l:template name="Sunday" text="ਐਤਵਾਰ"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="ਜੈਨ"/>
+<l:template name="Feb" text="ਫੈਬ"/>
+<l:template name="Mar" text="ਮਾਰ"/>
+<l:template name="Apr" text="ਅਪ੍ਰੈ"/>
+<l:template name="May" text="ਮਈ"/>
+<l:template name="Jun" text="ਜੂਨ"/>
+<l:template name="Jul" text="ਜੁਲ"/>
+<l:template name="Aug" text="ਅਗ"/>
+<l:template name="Sep" text="ਸਤੰ"/>
+<l:template name="Oct" text="ਅਕਤੂ"/>
+<l:template name="Nov" text="ਨਵੰ"/>
+<l:template name="Dec" text="ਦਸੰ"/>
+<l:template name="Mon" text="ਸੋਮ"/>
+<l:template name="Tue" text="ਮੰਗਲ"/>
+<l:template name="Wed" text="ਬੁੱਧ"/>
+<l:template name="Thu" text="ਵੀਰ"/>
+<l:template name="Fri" text="ਸ਼ੁੱਕਰ"/>
+<l:template name="Sat" text="ਸ਼ਨੀ"/>
+<l:template name="Sun" text="ਐਤ"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0446 Punjabi"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">ਚਿੰਨ</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/pi.xml b/applications/content/template/docbook/common/pi.xml
new file mode 100644
index 0000000..aa09d47
--- /dev/null
+++ b/applications/content/template/docbook/common/pi.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0"?>
+
+<reference><info><title>Common Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    
+<para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the
+      “common” part of the DocBook XSL stylesheets.
+      <note>
+        
+<para>You add these PIs at particular points in a document to
+          cause specific “exceptions” to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it’s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+
+      </note>
+    </para>
+
+  </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbchoice_choice">
+<refnamediv>
+<refname>dbchoice_choice</refname>
+<refpurpose>Generates a localized choice separator</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbchoice choice="and"|"or"|<replaceable>string</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbchoice choice</tag> PI to
+      generate an appropriate localized “choice” separator (for
+      example, <literal>and</literal> or <literal>or</literal>)
+      before the final item in an inline <tag>simplelist</tag></para>
+
+    <warning>
+      
+<para>This PI is a less-than-ideal hack; support for it may
+        disappear in the future (particularly if and when a more
+        appropriate means for marking up "choice" lists becomes
+        available in DocBook).</para>
+
+    </warning>
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>choice="and"</term>
+        <listitem>
+          
+<para>generates a localized <literal>and</literal> separator</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>choice="or"</term>
+        <listitem>
+          
+<para>generates a localized <literal>or</literal> separator</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>choice="<replaceable>string</replaceable>"</term>
+        <listitem>
+          
+<para>generates a literal <replaceable>string</replaceable> separator</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbtimestamp">
+<refnamediv>
+<refname>dbtimestamp</refname>
+<refpurpose>Inserts a date timestamp</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbtimestamp format="<replaceable>formatstring</replaceable>" [padding="0"|"1"]</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbtimestamp</tag> PI at any point in a
+      source document to cause a date timestamp (a formatted
+      string representing the current date and time) to be
+      inserted in output of the document.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>format="<replaceable>formatstring</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies format in which the date and time are
+            output</para>
+
+        <note>
+          
+<para>For details of the content of the format string,
+            see <link role="tcg" xlink:href="Datetime.html">Date and time</link>.</para>
+
+        </note>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>padding="0"|"1"</term>
+        <listitem>
+          
+<para>Specifies padding behavior; if non-zero, padding is is added</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbtex_delims">
+<refnamediv>
+<refname>dbtex_delims</refname>
+<refpurpose>Generates delimiters around embedded TeX equations
+    in output</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbtex delims="no"|"yes"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbtex delims</tag> PI as a
+      child of a <tag>textobject</tag> containing embedded TeX
+      markup, to cause that markup to be surrounded by
+      <literal>$</literal> delimiter characters in output.</para>
+
+      <warning>
+       
+<para>This feature is useful for print/PDF output only if you
+       use the obsolete and now unsupported PassiveTeX XSL-FO
+       engine.</para>
+
+      </warning>
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>dbtex delims="no"|"yes"</term>
+        <listitem>
+          
+<para>Specifies whether delimiters are output</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>tex.math.delims</parameter></para>
+
+  </refsect1></refentry>
+</reference>
+
diff --git a/applications/content/template/docbook/common/pi.xsl b/applications/content/template/docbook/common/pi.xsl
new file mode 100644
index 0000000..30f8e8b
--- /dev/null
+++ b/applications/content/template/docbook/common/pi.xsl
@@ -0,0 +1,346 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+  xmlns:date="http://exslt.org/dates-and-times"
+  xmlns:exsl="http://exslt.org/common"
+  xmlns:xlink="http://www.w3.org/1999/xlink"
+  exclude-result-prefixes="doc date exsl"
+  extension-element-prefixes="date exsl"
+  version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns=""><info><title>Common Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro id="partintro">
+    <title>Introduction</title>
+    <para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the
+      “common” part of the DocBook XSL stylesheets.
+      <note>
+        <para>You add these PIs at particular points in a document to
+          cause specific “exceptions” to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it’s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+      </note>
+    </para>
+  </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+<doc:pi name="dbchoice_choice" xmlns="">
+  <refpurpose>Generates a localized choice separator</refpurpose>
+  <refdescription id="select.choice.separator-desc">
+    <para>Use the <tag class="xmlpi">dbchoice choice</tag> PI to
+      generate an appropriate localized “choice” separator (for
+      example, <literal>and</literal> or <literal>or</literal>)
+      before the final item in an inline <tag>simplelist</tag></para>
+    <warning>
+      <para>This PI is a less-than-ideal hack; support for it may
+        disappear in the future (particularly if and when a more
+        appropriate means for marking up "choice" lists becomes
+        available in DocBook).</para>
+    </warning>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbchoice choice="and"|"or"|<replaceable>string</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>choice="and"</term>
+        <listitem>
+          <para>generates a localized <literal>and</literal> separator</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>choice="or"</term>
+        <listitem>
+          <para>generates a localized <literal>or</literal> separator</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>choice="<replaceable>string</replaceable>"</term>
+        <listitem>
+          <para>generates a literal <replaceable>string</replaceable> separator</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbchoice_choice">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbchoice')"/>
+    <xsl:with-param name="attribute">choice</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbtimestamp" xmlns="">
+  <refpurpose>Inserts a date timestamp</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbtimestamp</tag> PI at any point in a
+      source document to cause a date timestamp (a formatted
+      string representing the current date and time) to be
+      inserted in output of the document.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbtimestamp format="<replaceable>formatstring</replaceable>" [padding="0"|"1"]</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>format="<replaceable>formatstring</replaceable>"</term>
+        <listitem>
+          <para>Specifies format in which the date and time are
+            output</para>
+        <note>
+          <para>For details of the content of the format string,
+            see <link role="tcg" xlink:href="Datetime.html"
+              >Date and time</link>.</para>
+        </note>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>padding="0"|"1"</term>
+        <listitem>
+          <para>Specifies padding behavior; if non-zero, padding is is added</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbtimestamp">
+  <xsl:variable name="format">
+    <xsl:variable name="pi-format">
+      <xsl:call-template name="pi-attribute">
+        <xsl:with-param name="pis" select="."/>
+        <xsl:with-param name="attribute">format</xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$pi-format != ''">
+        <xsl:value-of select="$pi-format"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'datetime'"/>
+          <xsl:with-param name="name" select="'format'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable> 
+  <xsl:variable name="padding">
+    <xsl:variable name="pi-padding">
+      <xsl:call-template name="pi-attribute">
+        <xsl:with-param name="pis" select="."/>
+        <xsl:with-param name="attribute">padding</xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$pi-padding != ''">
+        <xsl:value-of select="$pi-padding"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="date">
+    <xsl:choose>
+      <xsl:when test="function-available('date:date-time')">
+        <xsl:value-of select="date:date-time()"/>
+      </xsl:when>
+      <xsl:when test="function-available('date:dateTime')">
+        <!-- Xalan quirk -->
+        <xsl:value-of select="date:dateTime()"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="function-available('date:date-time') or
+      function-available('date:dateTime')">
+      <xsl:call-template name="datetime.format">
+        <xsl:with-param name="date" select="$date"/>
+        <xsl:with-param name="format" select="$format"/>
+        <xsl:with-param name="padding" select="$padding"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+        Timestamp processing requires XSLT processor with EXSLT date support.
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<doc:pi name="dbtex_delims" xmlns="">
+  <refpurpose>Generates delimiters around embedded TeX equations
+    in output</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbtex delims</tag> PI as a
+      child of a <tag>textobject</tag> containing embedded TeX
+      markup, to cause that markup to be surrounded by
+      <literal>$</literal> delimiter characters in output.</para>
+      <warning>
+       <para>This feature is useful for print/PDF output only if you
+       use the obsolete and now unsupported PassiveTeX XSL-FO
+       engine.</para>
+      </warning>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbtex delims="no"|"yes"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>dbtex delims="no"|"yes"</term>
+        <listitem>
+          <para>Specifies whether delimiters are output</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+
+  <refsee role="params">
+    <para><parameter>tex.math.delims</parameter></para>
+  </refsee>
+ 
+</doc:pi>
+<xsl:template name="pi.dbtex_delims">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbtex')"/>
+    <xsl:with-param name="attribute" select="'delims'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction()" mode="titlepage.mode">
+  <!-- * Als process PIs on title pages -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbtimestamp')">
+  <xsl:call-template name="pi.dbtimestamp"/>
+</xsl:template>
+
+<xsl:template name="datetime.format">
+  <xsl:param name="date"/>
+  <xsl:param name="format"/>
+  <xsl:param name="padding" select="1"/>
+  <xsl:if test="$format != ''">
+    <!-- replace any whitespace in the format string with a non-breaking space -->
+    <xsl:variable name="format-nbsp"
+      select="translate($format,
+      '&#x20;&#x9;&#xd;&#xa;',
+      '&#xa0;&#xa0;&#xa0;&#xa0;')"/>
+    <xsl:variable name="tokenized-format-string">
+      <xsl:call-template name="str.tokenize.keep.delimiters">
+        <xsl:with-param name="string" select="$format-nbsp"/>
+        <xsl:with-param name="delimiters" select="'&#xa0;,./-()[]:'"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$exsl.node.set.available != 0">
+        <!-- We must preserve context node in order to get valid language -->
+        <xsl:variable name="context" select="."/>
+        <xsl:for-each select="exsl:node-set($tokenized-format-string)/node()">
+          <xsl:variable name="token">
+            <xsl:value-of select="."/>
+          </xsl:variable>
+          <!-- Restore context node -->
+          <xsl:for-each select="$context">
+            <xsl:choose>
+              <xsl:when test="$token = 'a'">
+                <xsl:call-template name="gentext.template">
+                  <xsl:with-param name="context" select="'datetime-abbrev'"/>
+                  <xsl:with-param name="name" select="date:day-abbreviation($date)"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="$token = 'A'">
+                <xsl:call-template name="gentext.template">
+                  <xsl:with-param name="context" select="'datetime-full'"/>
+                  <xsl:with-param name="name" select="date:day-name($date)"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="$token = 'b'">
+                <xsl:call-template name="gentext.template">
+                  <xsl:with-param name="context" select="'datetime-abbrev'"/>
+                  <xsl:with-param name="name" select="date:month-abbreviation($date)"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="$token = 'c'">
+                <xsl:value-of select="date:date($date)"/>
+                <xsl:text> </xsl:text>
+                <xsl:value-of select="date:time($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'B'">
+                <xsl:call-template name="gentext.template">
+                  <xsl:with-param name="context" select="'datetime-full'"/>
+                  <xsl:with-param name="name" select="date:month-name($date)"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="$token = 'd'">
+                <xsl:if test="$padding = 1 and
+                  string-length(date:day-in-month($date)) = 1">0</xsl:if>
+                <xsl:value-of select="date:day-in-month($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'H'">
+                <xsl:if test="$padding = 1 and string-length(date:hour-in-day($date)) = 1">0</xsl:if>
+                <xsl:value-of select="date:hour-in-day($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'j'">
+                <xsl:value-of select="date:day-in-year($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'm'">
+                <xsl:if test="$padding = 1 and string-length(date:month-in-year($date)) = 1">0</xsl:if>
+                <xsl:value-of select="date:month-in-year($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'M'">
+                <xsl:if test="string-length(date:minute-in-hour($date)) = 1">0</xsl:if>
+                <xsl:value-of select="date:minute-in-hour($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'S'">
+                <xsl:if test="string-length(date:second-in-minute($date)) = 1">0</xsl:if>
+                <xsl:value-of select="date:second-in-minute($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'U'">
+                <xsl:value-of select="date:week-in-year($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'w'">
+                <xsl:value-of select="date:day-in-week($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'x'">
+                <xsl:value-of select="date:date($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'X'">
+                <xsl:value-of select="date:time($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'Y'">
+                <xsl:value-of select="date:year($date)"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="$token"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:for-each>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:message>
+          Timestamp processing requires an XSLT processor with support
+          for the EXSLT node-set() function.
+        </xsl:message>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/common/pl.xml b/applications/content/template/docbook/common/pl.xml
new file mode 100644
index 0000000..899cf6c
--- /dev/null
+++ b/applications/content/template/docbook/common/pl.xml
@@ -0,0 +1,696 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="pl" english-language-name="Polish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/pl.xml -->
+<!-- * -->
+<!-- * E-mail the edited pl.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstrakt"/>
+<l:gentext key="abstract" text="abstrakt"/>
+<l:gentext key="Acknowledgements" text="Podziękowania"/>
+<l:gentext key="acknowledgements" text="podziękowania"/>
+<l:gentext key="Answer" text="Odp.:"/>
+<l:gentext key="answer" text="odp.:"/>
+<l:gentext key="Appendix" text="Dodatek"/>
+<l:gentext key="appendix" text="dodatek"/>
+<l:gentext key="Article" text="Artykuł"/>
+<l:gentext key="article" text="artykuł"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="bibliografia"/>
+<l:gentext key="Book" text="Książka"/>
+<l:gentext key="book" text="książka"/>
+<l:gentext key="CAUTION" text="OSTRZEŻENIE"/>
+<l:gentext key="Caution" text="Ostrzeżenie"/>
+<l:gentext key="caution" text="ostrzeżenie"/>
+<l:gentext key="Chapter" text="Rozdział"/>
+<l:gentext key="chapter" text="rozdział"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="kolofon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dedykacja"/>
+<l:gentext key="dedication" text="dedykacja"/>
+<l:gentext key="Edition" text="Wydanie"/>
+<l:gentext key="edition" text="wydanie"/>
+<l:gentext key="Editor" text="Redaktor"/>
+<l:gentext key="Equation" text="Równanie"/>
+<l:gentext key="equation" text="równanie"/>
+<l:gentext key="Example" text="Przykład"/>
+<l:gentext key="example" text="przykład"/>
+<l:gentext key="Figure" text="Rysunek"/>
+<l:gentext key="figure" text="rysunek"/>
+<l:gentext key="Glossary" text="Glosariusz"/>
+<l:gentext key="glossary" text="glosariusz"/>
+<l:gentext key="GlossSee" text="Patrz"/>
+<l:gentext key="glosssee" text="patrz"/>
+<l:gentext key="GlossSeeAlso" text="Patrz też"/>
+<l:gentext key="glossseealso" text="patrz też"/>
+<l:gentext key="IMPORTANT" text="WAŻNE"/>
+<l:gentext key="important" text="ważne"/>
+<l:gentext key="Important" text="Ważne"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Informacja Prawna"/>
+<l:gentext key="legalnotice" text="informacja prawna"/>
+<l:gentext key="MsgAud" text="Odbiorcy"/>
+<l:gentext key="msgaud" text="odbiorcy"/>
+<l:gentext key="MsgLevel" text="Poziom"/>
+<l:gentext key="msglevel" text="poziom"/>
+<l:gentext key="MsgOrig" text="Nadawca"/>
+<l:gentext key="msgorig" text="nadawca"/>
+<l:gentext key="NOTE" text="UWAGA"/>
+<l:gentext key="Note" text="Uwaga"/>
+<l:gentext key="note" text="uwaga"/>
+<l:gentext key="Part" text="Część"/>
+<l:gentext key="part" text="część"/>
+<l:gentext key="Preface" text="Przedmowa"/>
+<l:gentext key="preface" text="przedmowa"/>
+<l:gentext key="Procedure" text="Procedura"/>
+<l:gentext key="procedure" text="procedura"/>
+<l:gentext key="ProductionSet" text="Produkcja"/>
+<l:gentext key="PubDate" text="Data wydania"/>
+<l:gentext key="pubdate" text="data wydania"/>
+<l:gentext key="Published" text="Wydano"/>
+<l:gentext key="published" text="wydano"/>
+<l:gentext key="Publisher" text="Wydawca"/>
+<l:gentext key="Qandadiv" text="Pytania i odpowiedzi"/>
+<l:gentext key="qandadiv" text="Pytania i odpowiedzi"/>
+<l:gentext key="QandASet" text="Najczęściej zadawane pytania"/>
+<l:gentext key="Question" text="Pyt.:"/>
+<l:gentext key="question" text="Pyt.:"/>
+<l:gentext key="RefEntry" text="Strona"/>
+<l:gentext key="refentry" text="strona"/>
+<l:gentext key="Reference" text="Materiały źródłowe"/>
+<l:gentext key="reference" text="Materiały źródłowe"/>
+<l:gentext key="References" text="Materiały źródłowe"/>
+<l:gentext key="RefName" text="Nazwa"/>
+<l:gentext key="refname" text="nazwa"/>
+<l:gentext key="RefSection" text="Sekcja"/>
+<l:gentext key="refsection" text="sekcja"/>
+<l:gentext key="RefSynopsisDiv" text="Streszczenie"/>
+<l:gentext key="refsynopsisdiv" text="streszczenie"/>
+<l:gentext key="RevHistory" text="Historia zmian"/>
+<l:gentext key="revhistory" text="Historia zmian"/>
+<l:gentext key="revision" text="Zmiana"/>
+<l:gentext key="Revision" text="Zmiana"/>
+<l:gentext key="sect1" text="Sekcja"/>
+<l:gentext key="sect2" text="Sekcja"/>
+<l:gentext key="sect3" text="Sekcja"/>
+<l:gentext key="sect4" text="Sekcja"/>
+<l:gentext key="sect5" text="Sekcja"/>
+<l:gentext key="section" text="sekcja"/>
+<l:gentext key="Section" text="Sekcja"/>
+<l:gentext key="see" text="patrz"/>
+<l:gentext key="See" text="Patrz"/>
+<l:gentext key="seealso" text="patrz też"/>
+<l:gentext key="Seealso" text="Patrz też"/>
+<l:gentext key="SeeAlso" text="Patrz też"/>
+<l:gentext key="set" text="zestaw"/>
+<l:gentext key="Set" text="Zestaw"/>
+<l:gentext key="setindex" text="Indeks"/>
+<l:gentext key="SetIndex" text="Indeks"/>
+<l:gentext key="Sidebar" text="Panel boczny"/>
+<l:gentext key="sidebar" text="panel boczny"/>
+<l:gentext key="step" text="krok"/>
+<l:gentext key="Step" text="Krok"/>
+<l:gentext key="table" text="Tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="zadanie"/>
+<l:gentext key="Task" text="Zadanie"/>
+<l:gentext key="tip" text="podpowiedź"/>
+<l:gentext key="TIP" text="PODPOWIEDŹ"/>
+<l:gentext key="Tip" text="Podpowiedź"/>
+<l:gentext key="Warning" text="Ostrzeżenie"/>
+<l:gentext key="warning" text="ostrzeżenie"/>
+<l:gentext key="WARNING" text="OSTRZEŻENIE"/>
+<l:gentext key="and" text="i"/>
+<l:gentext key="or" text="lub"/>
+<l:gentext key="by" text="autorstwa"/>
+<l:gentext key="Edited" text="Redakcja"/>
+<l:gentext key="edited" text="redakcja"/>
+<l:gentext key="Editedby" text="Redakcja: "/>
+<l:gentext key="editedby" text="Redakcja: "/>
+<l:gentext key="in" text="w"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="przypisy"/>
+<l:gentext key="Notes" text="Przypisy"/>
+<l:gentext key="Pgs" text="S."/>
+<l:gentext key="pgs" text="s."/>
+<l:gentext key="Revisedby" text="Korekta: "/>
+<l:gentext key="revisedby" text="korekta: "/>
+<l:gentext key="TableNotes" text="Przypisy"/>
+<l:gentext key="tablenotes" text="przypisy"/>
+<l:gentext key="TableofContents" text="Spis treści"/>
+<l:gentext key="tableofcontents" text="spis treści"/>
+<l:gentext key="unexpectedelementname" text="Nieoczekiwana nazwa elementu"/>
+<l:gentext key="unsupported" text="niewspierane"/>
+<l:gentext key="xrefto" text="xref do"/>
+<l:gentext key="Authors" text="Autorzy"/>
+<l:gentext key="copyeditor" text="Redaktor kopii"/>
+<l:gentext key="graphicdesigner" text="Projektant graficzny"/>
+<l:gentext key="productioneditor" text="Redaktor produkcji"/>
+<l:gentext key="technicaleditor" text="Redaktor techniczny"/>
+<l:gentext key="translator" text="Tłumacz"/>
+<l:gentext key="listofequations" text="spis równań"/>
+<l:gentext key="ListofEquations" text="Spis równań"/>
+<l:gentext key="ListofExamples" text="Spis przykładów"/>
+<l:gentext key="listofexamples" text="spis przykładów"/>
+<l:gentext key="ListofFigures" text="Spis rysunków"/>
+<l:gentext key="listoffigures" text="spis rysunków"/>
+<l:gentext key="ListofProcedures" text="Spis procedur"/>
+<l:gentext key="listofprocedures" text="spis procedur"/>
+<l:gentext key="listoftables" text="spis tabel"/>
+<l:gentext key="ListofTables" text="Spis tabel"/>
+<l:gentext key="ListofUnknown" text="Spis nieznanych"/>
+<l:gentext key="listofunknown" text="spis nieznanych"/>
+<l:gentext key="nav-home" text="Spis treści"/>
+<l:gentext key="nav-next" text="Następny"/>
+<l:gentext key="nav-next-sibling" text="Następny rozdział"/>
+<l:gentext key="nav-prev" text="Poprzedni"/>
+<l:gentext key="nav-prev-sibling" text="Poprzedni rozdział"/>
+<l:gentext key="nav-up" text="Początek rozdziału"/>
+<l:gentext key="nav-toc" text="Spis treści"/>
+<l:gentext key="Draft" text="Szkic"/>
+<l:gentext key="above" text="powyżej"/>
+<l:gentext key="below" text="poniżej"/>
+<l:gentext key="sectioncalled" text="sekcja o nazwie"/>
+<l:gentext key="index symbols" text="Symbole"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="aąbcćdeęfghijklłmnńoópqrsśtuvwxyzźż"/>
+<l:gentext key="uppercase.alpha" text="AĄBCĆDEĘFGHIJKLŁMNŃOÓPQRSŚTUVWXYZŹŻ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="«"/>
+<l:dingbat key="nestedendquote" text="»"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="ߦ"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Dodatek %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Rozdział %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Równanie %n. %t"/>
+<l:template name="example" text="Przykład %n. %t"/>
+<l:template name="figure" text="Rysunek %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Część %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedura %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkcja %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Dodatek %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Rozdział %n. %t"/>
+<l:template name="part" text="Część %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Odp.: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Pyt.: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Pyt.: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="„%t”"/>
+<l:template name="refsection" text="„%t”"/>
+<l:template name="refsect1" text="„%t”"/>
+<l:template name="refsect2" text="„%t”"/>
+<l:template name="refsect3" text="„%t”"/>
+<l:template name="sect1" text="„%t”"/>
+<l:template name="sect2" text="„%t”"/>
+<l:template name="sect3" text="„%t”"/>
+<l:template name="sect4" text="„%t”"/>
+<l:template name="sect5" text="„%t”"/>
+<l:template name="section" text="„%t”"/>
+<l:template name="simplesect" text="„%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Odp.: %n"/>
+<l:template name="appendix" text="Dodatek %n"/>
+<l:template name="bridgehead" text="Sekcja %n"/>
+<l:template name="chapter" text="Rozdział %n"/>
+<l:template name="equation" text="Równanie %n"/>
+<l:template name="example" text="Przykład %n"/>
+<l:template name="figure" text="Rysunek %n"/>
+<l:template name="part" text="Część %n"/>
+<l:template name="procedure" text="Procedura %n"/>
+<l:template name="productionset" text="Produkcja %n"/>
+<l:template name="qandadiv" text="Pytania i odpowiedzi %n"/>
+<l:template name="qandaentry" text="Pyt.: %n"/>
+<l:template name="question" text="Pyt.: %n"/>
+<l:template name="sect1" text="Sekcja %n"/>
+<l:template name="sect2" text="Sekcja %n"/>
+<l:template name="sect3" text="Sekcja %n"/>
+<l:template name="sect4" text="Sekcja %n"/>
+<l:template name="sect5" text="Sekcja %n"/>
+<l:template name="section" text="Sekcja %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Dodatek %n, %t"/>
+<l:template name="bridgehead" text="Sekcja %n, „%t”"/>
+<l:template name="chapter" text="Rozdział %n, %t"/>
+<l:template name="equation" text="Równanie %n, „%t”"/>
+<l:template name="example" text="Przykład %n, „%t”"/>
+<l:template name="figure" text="Rysunek %n, „%t”"/>
+<l:template name="part" text="Część %n, „%t”"/>
+<l:template name="procedure" text="Procedura %n, „%t”"/>
+<l:template name="productionset" text="Produkcja %n, „%t”"/>
+<l:template name="qandadiv" text="Pytania i odpowiedzi %n, „%t”"/>
+<l:template name="refsect1" text="sekcja o nazwie „%t”"/>
+<l:template name="refsect2" text="sekcja o nazwie „%t”"/>
+<l:template name="refsect3" text="sekcja o nazwie „%t”"/>
+<l:template name="refsection" text="sekcja o nazwie „%t”"/>
+<l:template name="sect1" text="Sekcja %n, „%t”"/>
+<l:template name="sect2" text="Sekcja %n, „%t”"/>
+<l:template name="sect3" text="Sekcja %n, „%t”"/>
+<l:template name="sect4" text="Sekcja %n, „%t”"/>
+<l:template name="sect5" text="Sekcja %n, „%t”"/>
+<l:template name="section" text="Sekcja %n, „%t”"/>
+<l:template name="simplesect" text="sekcja o nazwie „%t”"/>
+<l:template name="table" text="Tabela %n, „%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" i "/>
+<l:template name="seplast" text=", i "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Patrz %t."/>
+<l:template name="seealso" text="Patrz też %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Odbiorcy: "/>
+<l:template name="MsgLevel" text="Poziom: "/>
+<l:template name="MsgOrig" text="Nadawca: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definicja: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="styczeń"/>
+<l:template name="February" text="luty"/>
+<l:template name="March" text="marzec"/>
+<l:template name="April" text="kwiecień"/>
+<l:template name="May" text="maj"/>
+<l:template name="June" text="czerwiec"/>
+<l:template name="July" text="lipiec"/>
+<l:template name="August" text="sierpień"/>
+<l:template name="September" text="wrzesień"/>
+<l:template name="October" text="październik"/>
+<l:template name="November" text="listopad"/>
+<l:template name="December" text="grudzień"/>
+<l:template name="Monday" text="poniedziałek"/>
+<l:template name="Tuesday" text="wtorek"/>
+<l:template name="Wednesday" text="środa"/>
+<l:template name="Thursday" text="czwartek"/>
+<l:template name="Friday" text="piątek"/>
+<l:template name="Saturday" text="sobota"/>
+<l:template name="Sunday" text="niedziela"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="sty"/>
+<l:template name="Feb" text="lut"/>
+<l:template name="Mar" text="mar"/>
+<l:template name="Apr" text="kwi"/>
+<l:template name="May" text="maj"/>
+<l:template name="Jun" text="cze"/>
+<l:template name="Jul" text="lip"/>
+<l:template name="Aug" text="sie"/>
+<l:template name="Sep" text="wrz"/>
+<l:template name="Oct" text="paź"/>
+<l:template name="Nov" text="lis"/>
+<l:template name="Dec" text="gru"/>
+<l:template name="Mon" text="pon"/>
+<l:template name="Tue" text="wto"/>
+<l:template name="Wed" text="śro"/>
+<l:template name="Thu" text="czw"/>
+<l:template name="Fri" text="pią"/>
+<l:template name="Sat" text="sob"/>
+<l:template name="Sun" text="nie"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0415 Polish"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbole</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">Ą</l:l>
+<l:l i="20">ą</l:l>
+<l:l i="30">B</l:l>
+<l:l i="30">b</l:l>
+<l:l i="40">C</l:l>
+<l:l i="40">c</l:l>
+<l:l i="50">Ć</l:l>
+<l:l i="50">ć</l:l>
+<l:l i="60">D</l:l>
+<l:l i="60">d</l:l>
+<l:l i="70">E</l:l>
+<l:l i="70">e</l:l>
+<l:l i="80">Ę</l:l>
+<l:l i="80">ę</l:l>
+<l:l i="90">F</l:l>
+<l:l i="90">f</l:l>
+<l:l i="100">G</l:l>
+<l:l i="100">g</l:l>
+<l:l i="110">H</l:l>
+<l:l i="110">h</l:l>
+<l:l i="120">I</l:l>
+<l:l i="120">i</l:l>
+<l:l i="130">J</l:l>
+<l:l i="130">j</l:l>
+<l:l i="140">K</l:l>
+<l:l i="140">k</l:l>
+<l:l i="150">L</l:l>
+<l:l i="150">l</l:l>
+<l:l i="160">Ł</l:l>
+<l:l i="160">ł</l:l>
+<l:l i="170">M</l:l>
+<l:l i="170">m</l:l>
+<l:l i="180">N</l:l>
+<l:l i="180">n</l:l>
+<l:l i="190">Ń</l:l>
+<l:l i="190">ń</l:l>
+<l:l i="200">O</l:l>
+<l:l i="200">o</l:l>
+<l:l i="210">Ó</l:l>
+<l:l i="210">ó</l:l>
+<l:l i="220">P</l:l>
+<l:l i="220">p</l:l>
+<l:l i="230">Q</l:l>
+<l:l i="230">q</l:l>
+<l:l i="240">R</l:l>
+<l:l i="240">r</l:l>
+<l:l i="250">S</l:l>
+<l:l i="250">s</l:l>
+<l:l i="260">Ś</l:l>
+<l:l i="260">ś</l:l>
+<l:l i="270">T</l:l>
+<l:l i="270">t</l:l>
+<l:l i="280">U</l:l>
+<l:l i="280">u</l:l>
+<l:l i="290">V</l:l>
+<l:l i="290">v</l:l>
+<l:l i="300">W</l:l>
+<l:l i="300">w</l:l>
+<l:l i="310">X</l:l>
+<l:l i="310">x</l:l>
+<l:l i="320">Y</l:l>
+<l:l i="320">y</l:l>
+<l:l i="330">Z</l:l>
+<l:l i="330">z</l:l>
+<l:l i="340">Ź</l:l>
+<l:l i="340">ź</l:l>
+<l:l i="350">Ż</l:l>
+<l:l i="350">ż</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/pt.xml b/applications/content/template/docbook/common/pt.xml
new file mode 100644
index 0000000..fc7117e
--- /dev/null
+++ b/applications/content/template/docbook/common/pt.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="pt" english-language-name="Portuguese">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/pt.xml -->
+<!-- * -->
+<!-- * E-mail the edited pt.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Resumo"/>
+<l:gentext key="abstract" text="resumo"/>
+<l:gentext key="Acknowledgements" text="Agradecimentos"/>
+<l:gentext key="acknowledgements" text="agradecimentos"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="r:"/>
+<l:gentext key="Appendix" text="Apêndice"/>
+<l:gentext key="appendix" text="apêndice"/>
+<l:gentext key="Article" text="Artigo"/>
+<l:gentext key="article" text="artigo"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="bibliografia"/>
+<l:gentext key="Book" text="Livro"/>
+<l:gentext key="book" text="Livro"/>
+<l:gentext key="CAUTION" text="CUIDADO"/>
+<l:gentext key="Caution" text="Cuidado"/>
+<l:gentext key="caution" text="buidado"/>
+<l:gentext key="Chapter" text="Capítulo"/>
+<l:gentext key="chapter" text="bapítulo"/>
+<l:gentext key="Colophon" text="Ficha Técnica"/>
+<l:gentext key="colophon" text="ficha técnica"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="copyright"/>
+<l:gentext key="Dedication" text="Dedicatória"/>
+<l:gentext key="dedication" text="dedicatória"/>
+<l:gentext key="Edition" text="Edição"/>
+<l:gentext key="edition" text="edição"/>
+<l:gentext key="Editor" text="Editor"/>
+<l:gentext key="Equation" text="Equação"/>
+<l:gentext key="equation" text="equação"/>
+<l:gentext key="Example" text="Exemplo"/>
+<l:gentext key="example" text="exemplo"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="figura"/>
+<l:gentext key="Glossary" text="Glossário"/>
+<l:gentext key="glossary" text="glossário"/>
+<l:gentext key="GlossSee" text="Ver"/>
+<l:gentext key="glosssee" text="ver"/>
+<l:gentext key="GlossSeeAlso" text="Ver Também"/>
+<l:gentext key="glossseealso" text="ver também"/>
+<l:gentext key="IMPORTANT" text="IMPORTANTE"/>
+<l:gentext key="important" text="importante"/>
+<l:gentext key="Important" text="Importante"/>
+<l:gentext key="Index" text="Índice Remissivo"/>
+<l:gentext key="index" text="índice remissivo"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="isbn"/>
+<l:gentext key="LegalNotice" text="Aviso Legal"/>
+<l:gentext key="legalnotice" text="aviso legal"/>
+<l:gentext key="MsgAud" text="Audiência"/>
+<l:gentext key="msgaud" text="audiência"/>
+<l:gentext key="MsgLevel" text="Nível"/>
+<l:gentext key="msglevel" text="nível"/>
+<l:gentext key="MsgOrig" text="Origem"/>
+<l:gentext key="msgorig" text="origem"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="nota"/>
+<l:gentext key="Part" text="Parte"/>
+<l:gentext key="part" text="parte"/>
+<l:gentext key="Preface" text="Prefácio"/>
+<l:gentext key="preface" text="prefácio"/>
+<l:gentext key="Procedure" text="Procedimento"/>
+<l:gentext key="procedure" text="procedimento"/>
+<l:gentext key="ProductionSet" text="produção"/>
+<l:gentext key="PubDate" text="Data de Publicação"/>
+<l:gentext key="pubdate" text="data de publicação"/>
+<l:gentext key="Published" text="Publicado"/>
+<l:gentext key="published" text="publicado"/>
+<l:gentext key="Publisher" text="Editor"/>
+<l:gentext key="Qandadiv" text="P &amp; R"/>
+<l:gentext key="qandadiv" text="P &amp; R"/>
+<l:gentext key="QandASet" text="Questões Frequentes"/>
+<l:gentext key="Question" text="P:"/>
+<l:gentext key="question" text="P:"/>
+<l:gentext key="RefEntry" text="Página"/>
+<l:gentext key="refentry" text="página"/>
+<l:gentext key="Reference" text="Referência"/>
+<l:gentext key="reference" text="referência"/>
+<l:gentext key="References" text="Referências"/>
+<l:gentext key="RefName" text="Nome"/>
+<l:gentext key="refname" text="nome"/>
+<l:gentext key="RefSection" text="Secção"/>
+<l:gentext key="refsection" text="secção"/>
+<l:gentext key="RefSynopsisDiv" text="Sinopse"/>
+<l:gentext key="refsynopsisdiv" text="sinopse"/>
+<l:gentext key="RevHistory" text="Historial de Revisões"/>
+<l:gentext key="revhistory" text="historial de revisões"/>
+<l:gentext key="revision" text="revisão"/>
+<l:gentext key="Revision" text="Revisão"/>
+<l:gentext key="sect1" text="Secção"/>
+<l:gentext key="sect2" text="Secção"/>
+<l:gentext key="sect3" text="Secção"/>
+<l:gentext key="sect4" text="Secção"/>
+<l:gentext key="sect5" text="Secção"/>
+<l:gentext key="section" text="secção"/>
+<l:gentext key="Section" text="Secção"/>
+<l:gentext key="see" text="ver"/>
+<l:gentext key="See" text="Ver"/>
+<l:gentext key="seealso" text="ver também"/>
+<l:gentext key="Seealso" text="Ver também"/>
+<l:gentext key="SeeAlso" text="Ver Também"/>
+<l:gentext key="set" text="conjunto"/>
+<l:gentext key="Set" text="Conjunto"/>
+<l:gentext key="setindex" text="índice de Conjuntos"/>
+<l:gentext key="SetIndex" text="Índice de Conjuntos"/>
+<l:gentext key="Sidebar" text="Barra Lateral"/>
+<l:gentext key="sidebar" text="barra lateral"/>
+<l:gentext key="step" text="passo"/>
+<l:gentext key="Step" text="Passo"/>
+<l:gentext key="table" text="Tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="tarefa"/>
+<l:gentext key="Task" text="Tarefa"/>
+<l:gentext key="tip" text="dica"/>
+<l:gentext key="TIP" text="DICA"/>
+<l:gentext key="Tip" text="Dica"/>
+<l:gentext key="Warning" text="Atenção"/>
+<l:gentext key="warning" text="Atenção"/>
+<l:gentext key="WARNING" text="ATENÇÃO"/>
+<l:gentext key="and" text="e"/>
+<l:gentext key="or" text="ou"/>
+<l:gentext key="by" text="por"/>
+<l:gentext key="Edited" text="Editado"/>
+<l:gentext key="edited" text="Editado"/>
+<l:gentext key="Editedby" text="Editado por"/>
+<l:gentext key="editedby" text="Editado por"/>
+<l:gentext key="in" text="em"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="notas"/>
+<l:gentext key="Notes" text="Notas"/>
+<l:gentext key="Pgs" text="Páginas"/>
+<l:gentext key="pgs" text="páginas"/>
+<l:gentext key="Revisedby" text="Revisto por: "/>
+<l:gentext key="revisedby" text="Revisto por: "/>
+<l:gentext key="TableNotes" text="Notas"/>
+<l:gentext key="tablenotes" text="Notas"/>
+<l:gentext key="TableofContents" text="Índice"/>
+<l:gentext key="tableofcontents" text="índice"/>
+<l:gentext key="unexpectedelementname" text="Nome de elemento inesperado"/>
+<l:gentext key="unsupported" text="não suportado"/>
+<l:gentext key="xrefto" text="referência cruzada para"/>
+<l:gentext key="Authors" text="Autores"/>
+<l:gentext key="copyeditor" text="Editor"/>
+<l:gentext key="graphicdesigner" text="Designer"/>
+<l:gentext key="productioneditor" text="Produtor"/>
+<l:gentext key="technicaleditor" text="Editor Técnico"/>
+<l:gentext key="translator" text="Tradutor"/>
+<l:gentext key="listofequations" text="lista de equações"/>
+<l:gentext key="ListofEquations" text="Lista de Equações"/>
+<l:gentext key="ListofExamples" text="Lista de Exemplos"/>
+<l:gentext key="listofexamples" text="lista de exemplos"/>
+<l:gentext key="ListofFigures" text="Lista de Figuras"/>
+<l:gentext key="listoffigures" text="lista de figuras"/>
+<l:gentext key="ListofProcedures" text="Lista de Procedimentos"/>
+<l:gentext key="listofprocedures" text="lista de procedimentos"/>
+<l:gentext key="listoftables" text="lista de tabelas"/>
+<l:gentext key="ListofTables" text="Lista de Tabelas"/>
+<l:gentext key="ListofUnknown" text="Lista de Desconhecido"/>
+<l:gentext key="listofunknown" text="lista de desconhecido"/>
+<l:gentext key="nav-home" text="Início"/>
+<l:gentext key="nav-next" text="Próximo"/>
+<l:gentext key="nav-next-sibling" text="Avanço Rápido"/>
+<l:gentext key="nav-prev" text="Anterior"/>
+<l:gentext key="nav-prev-sibling" text="Recuo Rápido"/>
+<l:gentext key="nav-up" text="Subir"/>
+<l:gentext key="nav-toc" text="Índice"/>
+<l:gentext key="Draft" text="Rascunho"/>
+<l:gentext key="above" text="acima"/>
+<l:gentext key="below" text="abaixo"/>
+<l:gentext key="sectioncalled" text="a secção chamada"/>
+<l:gentext key="index symbols" text="Símbolos"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apêndice %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equação %n. %t"/>
+<l:template name="example" text="Exemplo %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedimento %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="produção %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Pergunta %n"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apêndice %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="Apêndice %n"/>
+<l:template name="bridgehead" text="Secção %n"/>
+<l:template name="chapter" text="Capítulo %n"/>
+<l:template name="equation" text="Equação %n"/>
+<l:template name="example" text="Exemplo %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Parte %n"/>
+<l:template name="procedure" text="Procedimento %n"/>
+<l:template name="productionset" text="produção %n"/>
+<l:template name="qandadiv" text="P &amp; R %n"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="sect1" text="Secção %n"/>
+<l:template name="sect2" text="Secção %n"/>
+<l:template name="sect3" text="Secção %n"/>
+<l:template name="sect4" text="Secção %n"/>
+<l:template name="sect5" text="Secção %n"/>
+<l:template name="section" text="Secção %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apêndice %n, %t"/>
+<l:template name="bridgehead" text="Secção %n, “%t”"/>
+<l:template name="chapter" text="Capítulo %n, %t"/>
+<l:template name="equation" text="Equação %n, “%t”"/>
+<l:template name="example" text="Exemplo %n, “%t”"/>
+<l:template name="figure" text="Figura %n, “%t”"/>
+<l:template name="part" text="Parte %n, “%t”"/>
+<l:template name="procedure" text="Procedimento %n, “%t”"/>
+<l:template name="productionset" text="produção %n, “%t”"/>
+<l:template name="qandadiv" text="P &amp; R %n, “%t”"/>
+<l:template name="refsect1" text="a secção chamada “%t”"/>
+<l:template name="refsect2" text="a secção chamada “%t”"/>
+<l:template name="refsect3" text="a secção chamada “%t”"/>
+<l:template name="refsection" text="a secção chamada “%t”"/>
+<l:template name="sect1" text="Secção %n, “%t”"/>
+<l:template name="sect2" text="Secção %n, “%t”"/>
+<l:template name="sect3" text="Secção %n, “%t”"/>
+<l:template name="sect4" text="Secção %n, “%t”"/>
+<l:template name="sect5" text="Secção %n, “%t”"/>
+<l:template name="section" text="Secção %n, “%t”"/>
+<l:template name="simplesect" text="a secção chamada “%t”"/>
+<l:template name="table" text="Tabela %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" e "/>
+<l:template name="seplast" text=" e "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Ver %t."/>
+<l:template name="seealso" text="Ver Também %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audiência: "/>
+<l:template name="MsgLevel" text="Nível: "/>
+<l:template name="MsgOrig" text="Origem: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definição: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Janeiro"/>
+<l:template name="February" text="Fevereiro"/>
+<l:template name="March" text="Março"/>
+<l:template name="April" text="Abril"/>
+<l:template name="May" text="Maio"/>
+<l:template name="June" text="Junho"/>
+<l:template name="July" text="Julho"/>
+<l:template name="August" text="Agosto"/>
+<l:template name="September" text="Setembro"/>
+<l:template name="October" text="Outubro"/>
+<l:template name="November" text="Novembro"/>
+<l:template name="December" text="Dezembro"/>
+<l:template name="Monday" text="Segunda-Feira"/>
+<l:template name="Tuesday" text="Terça-Feira"/>
+<l:template name="Wednesday" text="Quarta-Feira"/>
+<l:template name="Thursday" text="Quinta-Feira"/>
+<l:template name="Friday" text="Sexta-Feira"/>
+<l:template name="Saturday" text="Sábado"/>
+<l:template name="Sunday" text="Domingo"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Fev"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Abr"/>
+<l:template name="May" text="Mai"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Ago"/>
+<l:template name="Sep" text="Set"/>
+<l:template name="Oct" text="Out"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dez"/>
+<l:template name="Mon" text="Seg"/>
+<l:template name="Tue" text="Ter"/>
+<l:template name="Wed" text="Qua"/>
+<l:template name="Thu" text="Qui"/>
+<l:template name="Fri" text="Sex"/>
+<l:template name="Sat" text="Sab"/>
+<l:template name="Sun" text="Dom"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0816 Portuguese (PORTUGAL)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Símbolos</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/pt_br.xml b/applications/content/template/docbook/common/pt_br.xml
new file mode 100644
index 0000000..a22066e
--- /dev/null
+++ b/applications/content/template/docbook/common/pt_br.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="pt_br" english-language-name="Portuguese (Brazil)">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/pt_br.xml -->
+<!-- * -->
+<!-- * E-mail the edited pt_br.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Resumo"/>
+<l:gentext key="abstract" text="resumo"/>
+<l:gentext key="Acknowledgements" text="Agradecimentos"/>
+<l:gentext key="acknowledgements" text="agradecimentos"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="r:"/>
+<l:gentext key="Appendix" text="Apêndice"/>
+<l:gentext key="appendix" text="apêndice"/>
+<l:gentext key="Article" text="Artigo"/>
+<l:gentext key="article" text="artigo"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="bibliografia"/>
+<l:gentext key="Book" text="Livro"/>
+<l:gentext key="book" text="livro"/>
+<l:gentext key="CAUTION" text="CUIDADO"/>
+<l:gentext key="Caution" text="Cuidado"/>
+<l:gentext key="caution" text="cuidado"/>
+<l:gentext key="Chapter" text="Capítulo"/>
+<l:gentext key="chapter" text="capítulo"/>
+<l:gentext key="Colophon" text="Considerações finais"/>
+<l:gentext key="colophon" text="considerações finais"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="copyright"/>
+<l:gentext key="Dedication" text="Dedicatória"/>
+<l:gentext key="dedication" text="dedicatória"/>
+<l:gentext key="Edition" text="Edição"/>
+<l:gentext key="edition" text="edição"/>
+<l:gentext key="Editor" text="Editor"/>
+<l:gentext key="Equation" text="Equação"/>
+<l:gentext key="equation" text="equação"/>
+<l:gentext key="Example" text="Exemplo"/>
+<l:gentext key="example" text="exemplo"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="figura"/>
+<l:gentext key="Glossary" text="Glossário"/>
+<l:gentext key="glossary" text="glossário"/>
+<l:gentext key="GlossSee" text="Ver"/>
+<l:gentext key="glosssee" text="ver"/>
+<l:gentext key="GlossSeeAlso" text="Ver Também"/>
+<l:gentext key="glossseealso" text="ver também"/>
+<l:gentext key="IMPORTANT" text="IMPORTANTE"/>
+<l:gentext key="important" text="Importante"/>
+<l:gentext key="Important" text="Importante"/>
+<l:gentext key="Index" text="Índice Remissivo"/>
+<l:gentext key="index" text="índice remissivo"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Nota Legal"/>
+<l:gentext key="legalnotice" text="nota legal"/>
+<l:gentext key="MsgAud" text="Audiência"/>
+<l:gentext key="msgaud" text="audiência"/>
+<l:gentext key="MsgLevel" text="Nível"/>
+<l:gentext key="msglevel" text="nível"/>
+<l:gentext key="MsgOrig" text="Origem"/>
+<l:gentext key="msgorig" text="origem"/>
+<l:gentext key="NOTE" text="NOTA"/>
+<l:gentext key="Note" text="Nota"/>
+<l:gentext key="note" text="nota"/>
+<l:gentext key="Part" text="Parte"/>
+<l:gentext key="part" text="parte"/>
+<l:gentext key="Preface" text="Prefácio"/>
+<l:gentext key="preface" text="prefácio"/>
+<l:gentext key="Procedure" text="Procedimento"/>
+<l:gentext key="procedure" text="procedimento"/>
+<l:gentext key="ProductionSet" text="Produção"/>
+<l:gentext key="PubDate" text="Data de Publicação"/>
+<l:gentext key="pubdate" text="data de publicação"/>
+<l:gentext key="Published" text="Publicado"/>
+<l:gentext key="published" text="publicado"/>
+<l:gentext key="Publisher" text="Publicador"/>
+<l:gentext key="Qandadiv" text="P &amp; R"/>
+<l:gentext key="qandadiv" text="P &amp; R"/>
+<l:gentext key="QandASet" text="Perguntas Frequentes"/>
+<l:gentext key="Question" text="P:"/>
+<l:gentext key="question" text="P:"/>
+<l:gentext key="RefEntry" text="Página"/>
+<l:gentext key="refentry" text="página"/>
+<l:gentext key="Reference" text="Referência"/>
+<l:gentext key="reference" text="referência"/>
+<l:gentext key="References" text="Referências"/>
+<l:gentext key="RefName" text="Nome"/>
+<l:gentext key="refname" text="nome"/>
+<l:gentext key="RefSection" text="Seção"/>
+<l:gentext key="refsection" text="seção"/>
+<l:gentext key="RefSynopsisDiv" text="Sinopse"/>
+<l:gentext key="refsynopsisdiv" text="sinopse"/>
+<l:gentext key="RevHistory" text="Histórico de Revisões"/>
+<l:gentext key="revhistory" text="histórico de revisões"/>
+<l:gentext key="revision" text="revisão"/>
+<l:gentext key="Revision" text="Revisão"/>
+<l:gentext key="sect1" text="Seção"/>
+<l:gentext key="sect2" text="Seção"/>
+<l:gentext key="sect3" text="Seção"/>
+<l:gentext key="sect4" text="Seção"/>
+<l:gentext key="sect5" text="Seção"/>
+<l:gentext key="section" text="seção"/>
+<l:gentext key="Section" text="Seção"/>
+<l:gentext key="see" text="ver"/>
+<l:gentext key="See" text="Ver"/>
+<l:gentext key="seealso" text="ver também"/>
+<l:gentext key="Seealso" text="Ver também"/>
+<l:gentext key="SeeAlso" text="Ver Também"/>
+<l:gentext key="set" text="Conjunto"/>
+<l:gentext key="Set" text="Conjunto"/>
+<l:gentext key="setindex" text="Índice do Conjunto"/>
+<l:gentext key="SetIndex" text="Índice do Conjunto"/>
+<l:gentext key="Sidebar" text="Quadro Lateral"/>
+<l:gentext key="sidebar" text="quadro lateral"/>
+<l:gentext key="step" text="passo"/>
+<l:gentext key="Step" text="Passo"/>
+<l:gentext key="table" text="tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="tarefa"/>
+<l:gentext key="Task" text="Tarefa"/>
+<l:gentext key="tip" text="dica"/>
+<l:gentext key="TIP" text="DICA"/>
+<l:gentext key="Tip" text="Dica"/>
+<l:gentext key="Warning" text="Atenção"/>
+<l:gentext key="warning" text="Atenção"/>
+<l:gentext key="WARNING" text="ATENÇÃO"/>
+<l:gentext key="and" text="e"/>
+<l:gentext key="or" text="ou"/>
+<l:gentext key="by" text="por"/>
+<l:gentext key="Edited" text="Editado"/>
+<l:gentext key="edited" text="editado"/>
+<l:gentext key="Editedby" text="Editado por"/>
+<l:gentext key="editedby" text="editado por"/>
+<l:gentext key="in" text="dentro"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="notas"/>
+<l:gentext key="Notes" text="Notas"/>
+<l:gentext key="Pgs" text="Páginas"/>
+<l:gentext key="pgs" text="páginas"/>
+<l:gentext key="Revisedby" text="Revisado por: "/>
+<l:gentext key="revisedby" text="revisado por: "/>
+<l:gentext key="TableNotes" text="Notas"/>
+<l:gentext key="tablenotes" text="notas"/>
+<l:gentext key="TableofContents" text="Índice"/>
+<l:gentext key="tableofcontents" text="índice"/>
+<l:gentext key="unexpectedelementname" text="Nome de elemento inesperado"/>
+<l:gentext key="unsupported" text="não suportado"/>
+<l:gentext key="xrefto" text="xref para"/>
+<l:gentext key="Authors" text="Autores"/>
+<l:gentext key="copyeditor" text="Copidesque"/>
+<l:gentext key="graphicdesigner" text="Designer Gráfico"/>
+<l:gentext key="productioneditor" text="Editor de Produção"/>
+<l:gentext key="technicaleditor" text="Editor Técnico"/>
+<l:gentext key="translator" text="Tradutor"/>
+<l:gentext key="listofequations" text="lista de equações"/>
+<l:gentext key="ListofEquations" text="Lista de Equações"/>
+<l:gentext key="ListofExamples" text="Lista de Exemplos"/>
+<l:gentext key="listofexamples" text="lista de exemplos"/>
+<l:gentext key="ListofFigures" text="Lista de Figuras"/>
+<l:gentext key="listoffigures" text="lista de figuras"/>
+<l:gentext key="ListofProcedures" text="Lista de Procedimentos"/>
+<l:gentext key="listofprocedures" text="lista de procedimentos"/>
+<l:gentext key="listoftables" text="lista de tabelas"/>
+<l:gentext key="ListofTables" text="Lista de Tabelas"/>
+<l:gentext key="ListofUnknown" text="Lista de ???"/>
+<l:gentext key="listofunknown" text="Lista de ???"/>
+<l:gentext key="nav-home" text="Principal"/>
+<l:gentext key="nav-next" text="Próxima"/>
+<l:gentext key="nav-next-sibling" text="Fim"/>
+<l:gentext key="nav-prev" text="Anterior"/>
+<l:gentext key="nav-prev-sibling" text="Início"/>
+<l:gentext key="nav-up" text="Acima"/>
+<l:gentext key="nav-toc" text="TdC"/>
+<l:gentext key="Draft" text="Rascunho"/>
+<l:gentext key="above" text="acima"/>
+<l:gentext key="below" text="abaixo"/>
+<l:gentext key="sectioncalled" text="A seção chamada"/>
+<l:gentext key="index symbols" text="Símbolos"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apêndice %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equação %n. %t"/>
+<l:template name="example" text="Exemplo %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedimento %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produção %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t" lang="en"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apêndice %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Capítulo %n. %t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s" lang="en"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="Apêndice %n"/>
+<l:template name="bridgehead" text="Seção %n"/>
+<l:template name="chapter" text="Capítulo %n"/>
+<l:template name="equation" text="Equação %n"/>
+<l:template name="example" text="Exemplo %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Parte %n"/>
+<l:template name="procedure" text="Procedimento %n"/>
+<l:template name="productionset" text="Produção %n"/>
+<l:template name="qandadiv" text="P &amp; R %n"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="sect1" text="Seção %n"/>
+<l:template name="sect2" text="Seção %n"/>
+<l:template name="sect3" text="Seção %n"/>
+<l:template name="sect4" text="Seção %n"/>
+<l:template name="sect5" text="Seção %n"/>
+<l:template name="section" text="Seção %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apêndice %n, %t"/>
+<l:template name="bridgehead" text="Seção %n, “%t”"/>
+<l:template name="chapter" text="Capítulo %n, %t"/>
+<l:template name="equation" text="Equação %n, “%t”"/>
+<l:template name="example" text="Exemplo %n, “%t”"/>
+<l:template name="figure" text="Figura %n, “%t”"/>
+<l:template name="part" text="Parte %n, “%t”"/>
+<l:template name="procedure" text="Procedimento %n, “%t”"/>
+<l:template name="productionset" text="Produção %n, “%t”"/>
+<l:template name="qandadiv" text="P &amp; R %n, “%t”"/>
+<l:template name="refsect1" text="A seção chamada “%t”"/>
+<l:template name="refsect2" text="A seção chamada “%t”"/>
+<l:template name="refsect3" text="A seção chamada “%t”"/>
+<l:template name="refsection" text="A seção chamada “%t”"/>
+<l:template name="sect1" text="Seção %n, “%t”"/>
+<l:template name="sect2" text="Seção %n, “%t”"/>
+<l:template name="sect3" text="Seção %n, “%t”"/>
+<l:template name="sect4" text="Seção %n, “%t”"/>
+<l:template name="sect5" text="Seção %n, “%t”"/>
+<l:template name="section" text="Seção %n, “%t”"/>
+<l:template name="simplesect" text="A seção chamada “%t”"/>
+<l:template name="table" text="Tabela %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" e "/>
+<l:template name="seplast" text=", e "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Ver %t."/>
+<l:template name="seealso" text="Ver Também %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Audiência: "/>
+<l:template name="MsgLevel" text="Nível: "/>
+<l:template name="MsgOrig" text="Origem: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Janeiro"/>
+<l:template name="February" text="Fevereiri"/>
+<l:template name="March" text="Março"/>
+<l:template name="April" text="Abril"/>
+<l:template name="May" text="Maio"/>
+<l:template name="June" text="Junho"/>
+<l:template name="July" text="Jullho"/>
+<l:template name="August" text="Agosto"/>
+<l:template name="September" text="Setembro"/>
+<l:template name="October" text="Outubro"/>
+<l:template name="November" text="Novembro"/>
+<l:template name="December" text="Dezembro"/>
+<l:template name="Monday" text="Segunda-feira"/>
+<l:template name="Tuesday" text="Terça-feira"/>
+<l:template name="Wednesday" text="Quarta-feira"/>
+<l:template name="Thursday" text="Quinta-feira"/>
+<l:template name="Friday" text="Sexta-feira"/>
+<l:template name="Saturday" text="Sabado"/>
+<l:template name="Sunday" text="Domingo"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Fev"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Abr"/>
+<l:template name="May" text="Maio"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Ago"/>
+<l:template name="Sep" text="Set"/>
+<l:template name="Oct" text="Out"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dez"/>
+<l:template name="Mon" text="Seg"/>
+<l:template name="Tue" text="Ter"/>
+<l:template name="Wed" text="Qua"/>
+<l:template name="Thu" text="Qui"/>
+<l:template name="Fri" text="Sex"/>
+<l:template name="Sat" text="Sab"/>
+<l:template name="Sun" text="Dom"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0416 Portuguese (BRAZIL)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Símbolos</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/refentry.xml b/applications/content/template/docbook/common/refentry.xml
new file mode 100644
index 0000000..2f00a9f
--- /dev/null
+++ b/applications/content/template/docbook/common/refentry.xml
@@ -0,0 +1,781 @@
+<?xml version="1.0"?>
+
+<reference xml:id="refentry">
+  <info>
+    <title>Common » Refentry Metadata Template Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    
+<para>This is technical reference documentation for the “refentry
+    metadata” templates in the DocBook XSL Stylesheets.</para>
+
+    
+<para>This is not intended to be user documentation. It is provided
+    for developers writing customization layers for the stylesheets.</para>
+
+    <note>
+      
+<para>Currently, only the manpages stylesheets make use of these
+      templates. They are, however, potentially useful elsewhere.</para>
+
+    </note>
+  </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.metadata">
+<refnamediv>
+<refname>get.refentry.metadata</refname>
+<refpurpose>Gathers metadata from a refentry and its ancestors</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.metadata"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Reference documentation for particular commands, functions,
+    etc., is sometimes viewed in isolation from its greater "context". For
+    example, users view Unix man pages as, well, individual pages, not as
+    part of a "book" of some kind. Therefore, it is sometimes necessary to
+    embed "context" information in output for each <tag>refentry</tag>.</para>
+
+
+    
+<para>However, one problem is that different users mark up that
+    context information in different ways. Often (usually), the
+    context information is not actually part of the content of the
+    <tag>refentry</tag> itself, but instead part of the content of a
+    parent or ancestor element to the <tag>refentry</tag>. And
+    even then, DocBook provides a variety of elements that users might
+    potentially use to mark up the same kind of information. One user
+    might use the <tag>productnumber</tag> element to mark up version
+    information about a particular product, while another might use
+    the <tag>releaseinfo</tag> element.</para>
+
+
+    
+<para>Taking all that in mind, the
+    <function>get.refentry.metadata</function> template tries to gather
+    metadata from a <tag>refentry</tag> element and its ancestor
+    elements in an intelligent and user-configurable way. The basic
+    mechanism used in the XPath expressions throughout this stylesheet
+    is to select the relevant metadata from the *info element that is
+    closest to the actual <tag>refentry</tag> – either on the
+    <tag>refentry</tag> itself, or on its nearest ancestor.</para>
+
+
+    <note>
+      
+<para>The <function>get.refentry.metadata</function>
+        template is actually just sort of a "driver" template; it
+        calls other templates that do the actual data collection,
+        then returns the data as a set.</para>
+
+    </note>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          
+<para>A node containing user preferences (from global
+          stylesheet parameters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Returns a node set with the following elements. The
+    descriptions are verbatim from the <literal>man(7)</literal> man
+    page.
+    
+<variablelist>
+      <varlistentry>
+        <term>title</term>
+        <listitem>
+          
+<para>the title of the man page (e.g., <literal>MAN</literal>)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>section</term>
+        <listitem>
+          
+<para>the section number the man page should be placed in (e.g.,
+          <literal>7</literal>)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>date</term>
+        <listitem>
+          
+<para>the date of the last revision</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>source</term>
+        <listitem>
+          
+<para>the source of the command</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>manual</term>
+        <listitem>
+          
+<para>the title of the manual (e.g., <citetitle>Linux
+          Programmer's Manual</citetitle>)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+    </para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.title">
+<refnamediv>
+<refname>get.refentry.title</refname>
+<refpurpose>Gets title metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.title"&gt;
+&lt;xsl:param name="refname"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <literal>man(7)</literal> man page describes this as "the
+    title of the man page (e.g., <literal>MAN</literal>). This differs
+    from <tag>refname</tag> in that, if the <tag>refentry</tag> has a
+    <tag>refentrytitle</tag>, we use that as the <tag>title</tag>;
+    otherwise, we just use first <tag>refname</tag> in the first
+    <tag>refnamediv</tag> in the source.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+  
+<para>Returns a <tag>title</tag> node.</para>
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.section">
+<refnamediv>
+<refname>get.refentry.section</refname>
+<refpurpose>Gets section metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.section"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="quiet" select="0"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <literal>man(7)</literal> man page describes this as "the
+    section number the man page should be placed in (e.g.,
+    <literal>7</literal>)". If we do not find a <tag>manvolnum</tag>
+    specified in the source, and we find that the <tag>refentry</tag> is
+    for a function, we use the section number <literal>3</literal>
+    ["Library calls (functions within program libraries)"]; otherwise, we
+    default to using <literal>1</literal> ["Executable programs or shell
+    commands"].</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>quiet</term>
+        <listitem>
+          
+<para>If non-zero, no "missing" message is emitted</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+  
+<para>Returns a string representing a section number.</para>
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.date">
+<refnamediv>
+<refname>get.refentry.date</refname>
+<refpurpose>Gets date metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.date"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <literal>man(7)</literal> man page describes this as "the
+    date of the last revision". If we cannot find a date in the source, we
+    generate one.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          
+<para>A node containing users preferences (from global stylesheet parameters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Returns a <tag>date</tag> node.</para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.source">
+<refnamediv>
+<refname>get.refentry.source</refname>
+<refpurpose>Gets source metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.source"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <literal>man(7)</literal> man page describes this as "the
+    source of the command", and provides the following examples:
+    
+<itemizedlist>
+      <listitem>
+        
+<para>For binaries, use something like: GNU, NET-2, SLS
+        Distribution, MCC Distribution.</para>
+
+      </listitem>
+      <listitem>
+        
+<para>For system calls, use the version of the kernel that you are
+        currently looking at: Linux 0.99.11.</para>
+
+      </listitem>
+      <listitem>
+        
+<para>For library calls, use the source of the function: GNU, BSD
+        4.3, Linux DLL 4.4.1.</para>
+
+      </listitem>
+    </itemizedlist>
+
+    </para>
+
+
+    
+<para>The <literal>solbook(5)</literal> man page describes
+    something very much like what <literal>man(7)</literal> calls
+    "source", except that <literal>solbook(5)</literal> names it
+    "software" and describes it like this:
+    <blockquote>
+      
+<para>This is the name of the software product that the topic
+      discussed on the reference page belongs to. For example UNIX
+      commands are part of the <literal>SunOS x.x</literal>
+      release.</para>
+
+    </blockquote>
+    </para>
+
+
+    
+<para>In practice, there are many pages that simply have a version
+    number in the "source" field. So, it looks like what we have is a
+    two-part field,
+    <replaceable>Name</replaceable> <replaceable>Version</replaceable>,
+    where:
+    
+<variablelist>
+      <varlistentry>
+        <term>Name</term>
+        <listitem>
+          
+<para>product name (e.g., BSD) or org. name (e.g., GNU)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Version</term>
+        <listitem>
+          
+<para>version name</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+    Each part is optional. If the <replaceable>Name</replaceable> is a
+    product name, then the <replaceable>Version</replaceable> is probably
+    the version of the product. Or there may be no
+    <replaceable>Name</replaceable>, in which case, if there is a
+    <replaceable>Version</replaceable>, it is probably the version of the
+    item itself, not the product it is part of. Or, if the
+    <replaceable>Name</replaceable> is an organization name, then there
+    probably will be no <replaceable>Version</replaceable>.
+    </para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          
+<para>A node containing users preferences (from global
+          stylesheet parameters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Returns a <tag>source</tag> node.</para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.source.name">
+<refnamediv>
+<refname>get.refentry.source.name</refname>
+<refpurpose>Gets source-name metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.source.name"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>A "source name" is one part of a (potentially) two-part
+    <replaceable>Name</replaceable> <replaceable>Version</replaceable>
+    source field. For more details, see the documentation for the
+    <function>get.refentry.source</function> template.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          
+<para>A node containing users preferences (from global
+          stylesheet parameters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Depending on what output method is used for the
+  current stylesheet, either returns a text node or possibly an element
+  node, containing "source name" data.</para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.version">
+<refnamediv>
+<refname>get.refentry.version</refname>
+<refpurpose>Gets version metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.version"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>A "version" is one part of a (potentially) two-part
+    <replaceable>Name</replaceable> <replaceable>Version</replaceable>
+    source field. For more details, see the documentation for the
+    <function>get.refentry.source</function> template.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          
+<para>A node containing users preferences (from global
+          stylesheet parameters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Depending on what output method is used for the
+  current stylesheet, either returns a text node or possibly an element
+  node, containing "version" data.</para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.manual">
+<refnamediv>
+<refname>get.refentry.manual</refname>
+<refpurpose>Gets source metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.manual"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <literal>man(7)</literal> man page describes this as "the
+    title of the manual (e.g., <citetitle>Linux Programmer's
+    Manual</citetitle>)". Here are some examples from existing man pages:
+    
+<itemizedlist>
+      <listitem>
+        
+<para><citetitle>dpkg utilities</citetitle>
+        (<command>dpkg-name</command>)</para>
+
+      </listitem>
+      <listitem>
+        
+<para><citetitle>User Contributed Perl Documentation</citetitle>
+        (<command>GET</command>)</para>
+
+      </listitem>
+      <listitem>
+        
+<para><citetitle>GNU Development Tools</citetitle>
+        (<command>ld</command>)</para>
+
+      </listitem>
+      <listitem>
+        
+<para><citetitle>Emperor Norton Utilities</citetitle>
+        (<command>ddate</command>)</para>
+
+      </listitem>
+      <listitem>
+        
+<para><citetitle>Debian GNU/Linux manual</citetitle>
+        (<command>faked</command>)</para>
+
+      </listitem>
+      <listitem>
+        
+<para><citetitle>GIMP Manual Pages</citetitle>
+        (<command>gimp</command>)</para>
+
+      </listitem>
+      <listitem>
+        
+<para><citetitle>KDOC Documentation System</citetitle>
+        (<command>qt2kdoc</command>)</para>
+
+      </listitem>
+    </itemizedlist>
+
+    </para>
+
+
+    
+<para>The <literal>solbook(5)</literal> man page describes
+    something very much like what <literal>man(7)</literal> calls
+    "manual", except that <literal>solbook(5)</literal> names it
+    "sectdesc" and describes it like this:
+    <blockquote>
+      
+<para>This is the section title of the reference page; for
+      example <literal>User Commands</literal>.</para>
+
+    </blockquote>
+    </para>
+
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          
+<para>A node containing users preferences (from global
+          stylesheet parameters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Returns a <tag>manual</tag> node.</para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.refentry.metadata.prefs">
+<refnamediv>
+<refname>get.refentry.metadata.prefs</refname>
+<refpurpose>Gets user preferences for refentry metadata gathering</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.metadata.prefs"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The DocBook XSL stylesheets include several user-configurable
+    global stylesheet parameters for controlling <tag>refentry</tag>
+    metadata gathering. Those parameters are not read directly by the
+    other <tag>refentry</tag> metadata-gathering
+    templates. Instead, they are read only by the
+    <function>get.refentry.metadata.prefs</function> template,
+    which assembles them into a structure that is then passed to
+    the other <tag>refentry</tag> metadata-gathering
+    templates.</para>
+
+
+    
+<para>So the, <function>get.refentry.metadata.prefs</function>
+    template is the only interface to collecting stylesheet parameters for
+    controlling <tag>refentry</tag> metadata gathering.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<para>There are no local parameters for this template; however, it
+    does rely on a number of global parameters.</para>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Returns a <tag>manual</tag> node.</para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.set.refentry.metadata">
+<refnamediv>
+<refname>set.refentry.metadata</refname>
+<refpurpose>Sets content of a refentry metadata item</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="set.refentry.metadata"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="contents"/&gt;
+&lt;xsl:param name="context"/&gt;
+&lt;xsl:param name="preferred"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <function>set.refentry.metadata</function> template is
+    called each time a suitable source element is found for a certain
+    metadata field.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A single *info node that contains the selected source element.</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>contents</term>
+        <listitem>
+          
+<para>A node containing the selected source element.</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>context</term>
+        <listitem>
+          
+<para>A string describing the metadata context in which the
+          <function>set.refentry.metadata</function> template was
+          called: either "date", "source", "version", or "manual".</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+  
+<para>Returns formatted contents of a selected source element.</para>
+</refsect1></refentry>
+</reference>
+
diff --git a/applications/content/template/docbook/common/refentry.xsl b/applications/content/template/docbook/common/refentry.xsl
new file mode 100644
index 0000000..3f3ae4e
--- /dev/null
+++ b/applications/content/template/docbook/common/refentry.xsl
@@ -0,0 +1,1352 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                xmlns:date="http://exslt.org/dates-and-times"
+                exclude-result-prefixes="doc date"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<doc:reference xmlns="" xml:id="refentry">
+  <info>
+    <title>Common » Refentry Metadata Template Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <!-- * yes, partintro is a valid child of a reference... -->
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    <para>This is technical reference documentation for the “refentry
+    metadata” templates in the DocBook XSL Stylesheets.</para>
+    <para>This is not intended to be user documentation. It is provided
+    for developers writing customization layers for the stylesheets.</para>
+    <note>
+      <para>Currently, only the manpages stylesheets make use of these
+      templates. They are, however, potentially useful elsewhere.</para>
+    </note>
+  </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.metadata" xmlns="">
+  <refpurpose>Gathers metadata from a refentry and its ancestors</refpurpose>
+  <refdescription id="get.refentry.metadata-desc">
+    <para>Reference documentation for particular commands, functions,
+    etc., is sometimes viewed in isolation from its greater "context". For
+    example, users view Unix man pages as, well, individual pages, not as
+    part of a "book" of some kind. Therefore, it is sometimes necessary to
+    embed "context" information in output for each <tag>refentry</tag>.</para>
+
+    <para>However, one problem is that different users mark up that
+    context information in different ways. Often (usually), the
+    context information is not actually part of the content of the
+    <tag>refentry</tag> itself, but instead part of the content of a
+    parent or ancestor element to the <tag>refentry</tag>. And
+    even then, DocBook provides a variety of elements that users might
+    potentially use to mark up the same kind of information. One user
+    might use the <tag>productnumber</tag> element to mark up version
+    information about a particular product, while another might use
+    the <tag>releaseinfo</tag> element.</para>
+
+    <para>Taking all that in mind, the
+    <function>get.refentry.metadata</function> template tries to gather
+    metadata from a <tag>refentry</tag> element and its ancestor
+    elements in an intelligent and user-configurable way. The basic
+    mechanism used in the XPath expressions throughout this stylesheet
+    is to select the relevant metadata from the *info element that is
+    closest to the actual <tag>refentry</tag>&#160;– either on the
+    <tag>refentry</tag> itself, or on its nearest ancestor.</para>
+
+    <note>
+      <para>The <function>get.refentry.metadata</function>
+        template is actually just sort of a "driver" template; it
+        calls other templates that do the actual data collection,
+        then returns the data as a set.</para>
+    </note>
+
+  </refdescription>
+  <refparameter id="get.refentry.metadata-params">
+    <variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          <para>The first <tag>refname</tag> in the refentry</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          <para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          <para>A node containing user preferences (from global
+          stylesheet parameters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refreturn id="get.refentry.metadata-returns">
+    <para>Returns a node set with the following elements. The
+    descriptions are verbatim from the <literal>man(7)</literal> man
+    page.
+    <variablelist>
+      <varlistentry>
+        <term>title</term>
+        <listitem>
+          <para>the title of the man page (e.g., <literal>MAN</literal>)</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>section</term>
+        <listitem>
+          <para>the section number the man page should be placed in (e.g.,
+          <literal>7</literal>)</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>date</term>
+        <listitem>
+          <para>the date of the last revision</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>source</term>
+        <listitem>
+          <para>the source of the command</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>manual</term>
+        <listitem>
+          <para>the title of the manual (e.g., <citetitle>Linux
+          Programmer's Manual</citetitle>)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+    </para>
+  </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.metadata">
+  <xsl:param name="refname"/>
+  <xsl:param name="info"/>
+  <xsl:param name="prefs"/>
+  <title>
+    <xsl:call-template name="get.refentry.title">
+      <xsl:with-param name="refname" select="$refname"/>
+    </xsl:call-template>
+  </title>
+  <section>
+    <xsl:call-template name="get.refentry.section">
+      <xsl:with-param name="refname" select="$refname"/>
+    </xsl:call-template>
+  </section>
+  <date>
+    <xsl:call-template name="get.refentry.date">
+      <xsl:with-param name="info" select="$info"/>
+      <xsl:with-param name="refname" select="$refname"/>
+      <xsl:with-param name="prefs" select="$prefs/DatePrefs"/>
+    </xsl:call-template>
+  </date>
+  <source>
+    <xsl:call-template name="get.refentry.source">
+      <xsl:with-param name="info" select="$info"/>
+      <xsl:with-param name="refname" select="$refname"/>
+      <xsl:with-param name="prefs" select="$prefs/SourcePrefs"/>
+    </xsl:call-template>
+  </source>
+  <manual>
+    <xsl:call-template name="get.refentry.manual">
+      <xsl:with-param name="info" select="$info"/>
+      <xsl:with-param name="refname" select="$refname"/>
+      <xsl:with-param name="prefs" select="$prefs/ManualPrefs"/>
+    </xsl:call-template>
+  </manual>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<doc:template name="get.refentry.title" xmlns="">
+  <refpurpose>Gets title metadata for a refentry</refpurpose>
+  <refdescription id="get.refentry.title-desc">
+    <para>The <literal>man(7)</literal> man page describes this as "the
+    title of the man page (e.g., <literal>MAN</literal>). This differs
+    from <tag>refname</tag> in that, if the <tag>refentry</tag> has a
+    <tag>refentrytitle</tag>, we use that as the <tag>title</tag>;
+    otherwise, we just use first <tag>refname</tag> in the first
+    <tag>refnamediv</tag> in the source.</para>
+  </refdescription>
+  <refparameter id="get.refentry.title-params">
+    <variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          <para>The first <tag>refname</tag> in the refentry</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refreturn id="get.refentry.title-returns">
+  <para>Returns a <tag>title</tag> node.</para></refreturn>
+</doc:template>
+<xsl:template name="get.refentry.title">
+  <xsl:param name="refname"/>
+  <xsl:choose>
+    <xsl:when test="refmeta/refentrytitle">
+      <xsl:copy>
+        <xsl:apply-templates select="refmeta/refentrytitle/node()"/>
+      </xsl:copy>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$refname"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.section" xmlns="">
+  <refpurpose>Gets section metadata for a refentry</refpurpose>
+  <refdescription id="get.refentry.section-desc">
+    <para>The <literal>man(7)</literal> man page describes this as "the
+    section number the man page should be placed in (e.g.,
+    <literal>7</literal>)". If we do not find a <tag>manvolnum</tag>
+    specified in the source, and we find that the <tag>refentry</tag> is
+    for a function, we use the section number <literal>3</literal>
+    ["Library calls (functions within program libraries)"]; otherwise, we
+    default to using <literal>1</literal> ["Executable programs or shell
+    commands"].</para>
+  </refdescription>
+  <refparameter id="get.refentry.section-params">
+    <variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          <para>The first <tag>refname</tag> in the refentry</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>quiet</term>
+        <listitem>
+          <para>If non-zero, no "missing" message is emitted</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refreturn id="get.refentry.section-returns">
+  <para>Returns a string representing a section number.</para></refreturn>
+</doc:template>
+<xsl:template name="get.refentry.section">
+  <xsl:param name="refname"/>
+  <xsl:param name="quiet" select="0"/>
+  <xsl:choose>
+    <xsl:when test="refmeta/manvolnum">
+      <xsl:value-of select="refmeta/manvolnum"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$quiet = 0">
+        <xsl:if test="$refentry.meta.get.quietly = 0">
+          <xsl:call-template name="log.message">
+            <xsl:with-param name="level">Note</xsl:with-param>
+            <xsl:with-param name="source" select="$refname"/>
+            <xsl:with-param name="context-desc">meta manvol</xsl:with-param>
+            <xsl:with-param name="message">
+              <xsl:text>no refentry/refmeta/manvolnum</xsl:text>
+            </xsl:with-param>
+          </xsl:call-template>
+          <xsl:call-template name="log.message">
+            <xsl:with-param name="level">Note</xsl:with-param>
+            <xsl:with-param name="source" select="$refname"/>
+            <xsl:with-param name="context-desc">meta manvol</xsl:with-param>
+            <xsl:with-param name="message">
+              <xsl:text>see http://docbook.sf.net/el/manvolnum</xsl:text>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:if>
+      <xsl:choose>
+        <xsl:when test=".//funcsynopsis">
+          <xsl:if test="$quiet = 0">
+            <xsl:if test="$refentry.meta.get.quietly = 0">
+              <xsl:call-template name="log.message">
+                <xsl:with-param name="level">Note</xsl:with-param>
+                <xsl:with-param name="source" select="$refname"/>
+                <xsl:with-param name="context-desc">meta manvol</xsl:with-param>
+                <xsl:with-param name="message">
+                  <xsl:text>Setting man section to 3</xsl:text>
+                </xsl:with-param>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:if>
+          <xsl:text>3</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>1</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.date" xmlns="">
+  <refpurpose>Gets date metadata for a refentry</refpurpose>
+  <refdescription id="get.refentry.date-desc">
+    <para>The <literal>man(7)</literal> man page describes this as "the
+    date of the last revision". If we cannot find a date in the source, we
+    generate one.</para>
+  </refdescription>
+  <refparameter id="get.refentry.date-params">
+    <variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          <para>The first <tag>refname</tag> in the refentry</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          <para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          <para>A node containing users preferences (from global stylesheet parameters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refreturn id="get.refentry.date-returns">
+    <para>Returns a <tag>date</tag> node.</para>
+  </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.date">
+  <xsl:param name="refname"/>
+  <xsl:param name="info"/>
+  <xsl:param name="prefs"/>
+  <xsl:variable name="Date">
+    <xsl:choose>
+      <!-- * if profiling is enabled for date, and the date -->
+      <!-- * profile is non-empty, use it -->
+      <xsl:when test="not($prefs/@profileEnabled = 0) and
+                      not($prefs/@profile = '')">
+        <xsl:call-template name="evaluate.info.profile">
+          <xsl:with-param name="profile" select="$prefs/@profile"/>
+          <xsl:with-param name="info" select="$info"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * either profiling is not enabled for date, or the-->
+        <!-- * date profile is empty, so we need to look for date -->
+        <!-- * in *info -->
+        <xsl:choose>
+          <!-- * look for date or pubdate in *info -->
+          <xsl:when test="$info/date/node()
+                          |$info/pubdate/node()">
+            <xsl:apply-templates
+                select="(($info[date])[last()]/date)[1]|
+                        (($info[pubdate])[last()]/pubdate)[1]"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- * found no Date or Pubdate -->
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="not($Date = '')">
+      <xsl:value-of select="$Date"/>
+    </xsl:when>
+    <!-- * We couldn't find a date, so we generate a date. -->
+    <!-- * And we make it an appropriately localized date. -->
+    <xsl:otherwise>
+      <!-- * The following block is commented out because: -->
+      <!-- *  -->
+      <!-- * - having a missing date in the source doesn’t result in -->
+      <!-- *   any information being missing from the generated man -->
+      <!-- *   page (since we generate the needed date) -->
+      <!-- *  -->
+      <!-- * - experience has shown the many users omit the date -->
+      <!-- *   intentionally, because they want to be it generated -->
+      <!-- *  -->
+      <!-- * - in practice it’s not really a condition that most users -->
+      <!-- *   want reported to them -->
+      <!-- *  -->
+      <!-- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+      <!-- * <xsl:if test="$refentry.meta.get.quietly = 0"> -->
+        <!-- * <xsl:call-template name="log.message"> -->
+          <!-- * <xsl:with-param name="level">Note</xsl:with-param> -->
+          <!-- * <xsl:with-param name="source" select="$refname"/> -->
+          <!-- * <xsl:with-param name="context-desc">meta date</xsl:with-param> -->
+          <!-- * <xsl:with-param name="message"> -->
+            <!-- * <xsl:text>no date; using generated date</xsl:text> -->
+          <!-- * </xsl:with-param> -->
+        <!-- * </xsl:call-template> -->
+        <!-- * <xsl:call-template name="log.message"> -->
+          <!-- * <xsl:with-param name="level">Note</xsl:with-param> -->
+          <!-- * <xsl:with-param name="source" select="$refname"/> -->
+          <!-- * <xsl:with-param name="context-desc">meta date</xsl:with-param> -->
+          <!-- * <xsl:with-param name="message"> -->
+            <!-- * <xsl:text>see http://docbook.sf.net/el/date</xsl:text> -->
+          <!-- * </xsl:with-param> -->
+        <!-- * </xsl:call-template> -->
+      <!-- * </xsl:if> -->
+      <!-- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+      <xsl:call-template name="datetime.format">
+        <xsl:with-param name="date">
+          <xsl:choose>
+            <xsl:when test="function-available('date:date-time')">
+              <xsl:value-of select="date:date-time()"/>
+            </xsl:when>
+            <xsl:when test="function-available('date:dateTime')">
+              <!-- Xalan quirk -->
+              <xsl:value-of select="date:dateTime()"/>
+            </xsl:when>
+          </xsl:choose>
+        </xsl:with-param>
+        <xsl:with-param name="format">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'datetime'"/>
+            <xsl:with-param name="name" select="'format'"/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.source" xmlns="">
+  <refpurpose>Gets source metadata for a refentry</refpurpose>
+  <refdescription id="get.refentry.source-desc">
+    <para>The <literal>man(7)</literal> man page describes this as "the
+    source of the command", and provides the following examples:
+    <itemizedlist>
+      <listitem>
+        <para>For binaries, use something like: GNU, NET-2, SLS
+        Distribution, MCC Distribution.</para>
+      </listitem>
+      <listitem>
+        <para>For system calls, use the version of the kernel that you are
+        currently looking at: Linux 0.99.11.</para>
+      </listitem>
+      <listitem>
+        <para>For library calls, use the source of the function: GNU, BSD
+        4.3, Linux DLL 4.4.1.</para>
+      </listitem>
+    </itemizedlist>
+    </para>
+
+    <para>The <literal>solbook(5)</literal> man page describes
+    something very much like what <literal>man(7)</literal> calls
+    "source", except that <literal>solbook(5)</literal> names it
+    "software" and describes it like this:
+    <blockquote>
+      <para>This is the name of the software product that the topic
+      discussed on the reference page belongs to. For example UNIX
+      commands are part of the <literal>SunOS x.x</literal>
+      release.</para>
+    </blockquote>
+    </para>
+
+    <para>In practice, there are many pages that simply have a version
+    number in the "source" field. So, it looks like what we have is a
+    two-part field,
+    <replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>,
+    where:
+    <variablelist>
+      <varlistentry>
+        <term>Name</term>
+        <listitem>
+          <para>product name (e.g., BSD) or org. name (e.g., GNU)</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Version</term>
+        <listitem>
+          <para>version name</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+    Each part is optional. If the <replaceable>Name</replaceable> is a
+    product name, then the <replaceable>Version</replaceable> is probably
+    the version of the product. Or there may be no
+    <replaceable>Name</replaceable>, in which case, if there is a
+    <replaceable>Version</replaceable>, it is probably the version of the
+    item itself, not the product it is part of. Or, if the
+    <replaceable>Name</replaceable> is an organization name, then there
+    probably will be no <replaceable>Version</replaceable>.
+    </para>
+  </refdescription>
+  <refparameter id="get.refentry.source-params">
+    <variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          <para>The first <tag>refname</tag> in the refentry</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          <para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          <para>A node containing users preferences (from global
+          stylesheet parameters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refreturn id="get.refentry.source-returns">
+    <para>Returns a <tag>source</tag> node.</para>
+  </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.source">
+  <xsl:param name="refname"/>
+  <xsl:param name="info"/>
+  <xsl:param name="prefs"/>
+  <xsl:variable name="Name">
+    <xsl:if test="$prefs/Name/@suppress = 0">
+      <xsl:call-template name="get.refentry.source.name">
+        <xsl:with-param name="info" select="$info"/>
+        <xsl:with-param name="refname" select="$refname"/>
+        <xsl:with-param name="prefs" select="$prefs/Name"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="Version">
+    <xsl:if test="$prefs/Version/@suppress = 0">
+      <xsl:call-template name="get.refentry.version">
+        <xsl:with-param name="info" select="$info"/>
+        <xsl:with-param name="refname" select="$refname"/>
+        <xsl:with-param name="prefs" select="$prefs/Version"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- * if we have a Name and/or Version, use either or both -->
+    <!-- * of those, in the form "Name Version" or just "Name" -->
+    <!-- * or just "Version" -->
+    <xsl:when test="not($Name = '') or not($Version = '')">
+      <xsl:choose>
+        <xsl:when test="not($Name = '') and not($Version = '')">
+          <xsl:copy-of select="$Name"/>
+          <xsl:text> </xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:copy-of select="$Name"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:copy-of select="$Version"/>
+    </xsl:when>
+    <!-- * if no Name and no Version, use fallback (if any) -->
+    <xsl:when test="not($prefs/@fallback = '')">
+      <xsl:variable name="source.fallback">
+        <xsl:call-template name="evaluate.info.profile">
+          <xsl:with-param name="profile" select="$prefs/@fallback"/>
+          <xsl:with-param name="info" select="$info"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <!-- * At this point, we know that we don't have properly marked-up -->
+      <!-- * source metadata, so even if we do have source fallback -->
+      <!-- * content, we still report to the user that it should be -->
+      <!-- * marked up properly instead. -->
+      <xsl:if test="$refentry.meta.get.quietly = 0">
+        <xsl:call-template name="report.missing.source.name">
+          <xsl:with-param name="refname" select="$refname"/>
+        </xsl:call-template>
+        <xsl:call-template name="report.missing.version">
+          <xsl:with-param name="refname" select="$refname"/>
+        </xsl:call-template>
+      </xsl:if>
+      <xsl:choose>
+        <xsl:when test="not($source.fallback = '')">
+          <xsl:value-of select="$source.fallback"/>
+          <xsl:if test="$refentry.meta.get.quietly = 0">
+            <xsl:call-template name="log.message">
+              <xsl:with-param name="level">Warn</xsl:with-param>
+              <xsl:with-param name="source" select="$refname"/>
+              <xsl:with-param name="context-desc">meta source</xsl:with-param>
+              <xsl:with-param name="message">
+                <xsl:text>using</xsl:text>
+                <xsl:text> "</xsl:text>
+                <xsl:value-of select="$source.fallback"/>
+                <xsl:text>" </xsl:text>
+                <xsl:text>for "source"</xsl:text>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- * we have no Name, no Version, and no fallback content, so -->
+          <!-- * insert a fixme -->
+          <xsl:text>[FIXME: source]</xsl:text>
+          <xsl:if test="$refentry.meta.get.quietly = 0">
+            <xsl:call-template name="log.message">
+              <xsl:with-param name="level">Warn</xsl:with-param>
+              <xsl:with-param name="source" select="$refname"/>
+              <xsl:with-param name="context-desc">meta source</xsl:with-param>
+              <xsl:with-param name="message">
+                <xsl:text>no fallback for source, so inserted a fixme</xsl:text>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- * we have no Name, no Version, and no fallback given, so -->
+      <!-- * insert a fixme -->
+      <xsl:text>[FIXME: source]</xsl:text>
+      <xsl:if test="$refentry.meta.get.quietly = 0">
+        <xsl:call-template name="log.message">
+          <xsl:with-param name="level">Warn</xsl:with-param>
+          <xsl:with-param name="source" select="$refname"/>
+          <xsl:with-param name="context-desc">meta source</xsl:with-param>
+          <xsl:with-param name="message">
+            <xsl:text>no source fallback given, so inserted a fixme</xsl:text>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.source.name" xmlns="">
+  <refpurpose>Gets source-name metadata for a refentry</refpurpose>
+  <refdescription id="get.refentry.source.name-desc">
+    <para>A "source name" is one part of a (potentially) two-part
+    <replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>
+    source field. For more details, see the documentation for the
+    <function>get.refentry.source</function> template.</para>
+  </refdescription>
+  <refparameter id="get.refentry.source.name-params">
+    <variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          <para>The first <tag>refname</tag> in the refentry</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          <para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          <para>A node containing users preferences (from global
+          stylesheet parameters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refreturn id="get.refentry.source.name-returns">
+    <para>Depending on what output method is used for the
+  current stylesheet, either returns a text node or possibly an element
+  node, containing "source name" data.</para>
+  </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.source.name">
+  <xsl:param name="refname"/>
+  <xsl:param name="info"/>
+  <xsl:param name="prefs"/>
+  <xsl:choose>
+    <!-- * if profiling is enabled for source.name, and the -->
+    <!-- * source.name profile is non-empty, use it -->
+    <xsl:when test="not($prefs/@profileEnabled = 0) and
+                    not($prefs/@profile = '')">
+      <xsl:call-template name="evaluate.info.profile">
+        <xsl:with-param name="profile" select="$prefs/@profile"/>
+        <xsl:with-param name="info" select="$info"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- * either profiling for source.name is not enabled, or-->
+      <!-- * the source.name profile is empty; so we need to look -->
+      <!-- * for a name to use -->
+      <xsl:choose>
+        <xsl:when test="refmeta/refmiscinfo[@class = 'source' or @class = 'software']">
+          <xsl:apply-templates 
+              select="refmeta/refmiscinfo[@class = 'source' or @class='software'][1]/node()"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="$info/productname">
+              <xsl:call-template name="set.refentry.metadata">
+                <xsl:with-param name="refname" select="$refname"/>
+                <xsl:with-param
+                    name="info"
+                    select="($info[productname])[last()]"/>
+                <xsl:with-param
+                    name="contents"
+                    select="(($info[productname])[last()]/productname)[1]"/>
+                <xsl:with-param name="context">source</xsl:with-param>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$info/corpname">
+              <xsl:call-template name="set.refentry.metadata">
+                <xsl:with-param name="refname" select="$refname"/>
+                <xsl:with-param
+                    name="info"
+                    select="($info[corpname])[last()]"/>
+                <xsl:with-param
+                    name="contents"
+                    select="(($info[corpname])[last()]/corpname)[1]"/>
+                <xsl:with-param name="context">source</xsl:with-param>
+                <xsl:with-param name="preferred">productname</xsl:with-param>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$info/corpcredit">
+              <xsl:call-template name="set.refentry.metadata">
+                <xsl:with-param name="refname" select="$refname"/>
+                <xsl:with-param
+                    name="info"
+                    select="($info[corpcredit])[last()]"/>
+                <xsl:with-param
+                    name="contents"
+                    select="(($info[corpcredit])[last()]/corpcredit)[1]"/>
+                <xsl:with-param name="context">source</xsl:with-param>
+                <xsl:with-param name="preferred">productname</xsl:with-param>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$info/corpauthor">
+              <xsl:call-template name="set.refentry.metadata">
+                <xsl:with-param name="refname" select="$refname"/>
+                <xsl:with-param
+                    name="info"
+                    select="($info[corpauthor])[last()]"/>
+                <xsl:with-param
+                    name="contents"
+                    select="(($info[corpauthor])[last()]/corpauthor)[1]"/>
+                <xsl:with-param name="context">source</xsl:with-param>
+                <xsl:with-param name="preferred">productname</xsl:with-param>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$info//orgname">
+              <xsl:call-template name="set.refentry.metadata">
+                <xsl:with-param name="refname" select="$refname"/>
+                <xsl:with-param
+                    name="info"
+                    select="($info[//orgname])[last()]"/>
+                <xsl:with-param
+                    name="contents"
+                    select="(($info[//orgname])[last()]//orgname)[1]"/>
+                <xsl:with-param name="context">source</xsl:with-param>
+                <xsl:with-param name="preferred">productname</xsl:with-param>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$info//publishername">
+              <xsl:call-template name="set.refentry.metadata">
+                <xsl:with-param name="refname" select="$refname"/>
+                <xsl:with-param
+                    name="info"
+                    select="($info[//publishername])[last()]"/>
+                <xsl:with-param
+                    name="contents"
+                    select="(($info[//publishername])[last()]//publishername)[1]"/>
+                <xsl:with-param name="context">source</xsl:with-param>
+                <xsl:with-param name="preferred">productname</xsl:with-param>
+              </xsl:call-template>
+            </xsl:when>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="report.missing.source.name">
+  <xsl:param name="refname"/>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta source</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>no *info/productname or alternative</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta source</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>see http://docbook.sf.net/el/productname</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta source</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>no refentry/refmeta/refmiscinfo@class=source</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta source</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>see http://docbook.sf.net/el/refmiscinfo</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.version" xmlns="">
+  <refpurpose>Gets version metadata for a refentry</refpurpose>
+  <refdescription id="get.refentry.version-desc">
+    <para>A "version" is one part of a (potentially) two-part
+    <replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>
+    source field. For more details, see the documentation for the
+    <function>get.refentry.source</function> template.</para>
+  </refdescription>
+  <refparameter id="get.refentry.version-params">
+    <variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          <para>The first <tag>refname</tag> in the refentry</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          <para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          <para>A node containing users preferences (from global
+          stylesheet parameters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refreturn id="get.refentry.version-returns">
+    <para>Depending on what output method is used for the
+  current stylesheet, either returns a text node or possibly an element
+  node, containing "version" data.</para>
+  </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.version">
+  <xsl:param name="refname"/>
+  <xsl:param name="info"/>
+  <xsl:param name="prefs"/>
+  <xsl:choose>
+    <!-- * if profiling is enabled for version, and the -->
+    <!-- * version profile is non-empty, use it -->
+    <xsl:when test="not($prefs/@profileEnabled = 0) and
+                    not($prefs/@profile = '')">
+      <xsl:call-template name="evaluate.info.profile">
+        <xsl:with-param name="profile" select="$prefs/@profile"/>
+        <xsl:with-param name="info" select="$info"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- * either profiling for source.name is not enabled, or-->
+      <!-- * the source.name profile is empty; so we need to look -->
+      <!-- * for a name to use -->
+      <xsl:choose>
+        <xsl:when test="refmeta/refmiscinfo[@class = 'version']">
+          <xsl:apply-templates 
+              select="refmeta/refmiscinfo[@class = 'version'][1]/node()"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="$info/productnumber">
+              <xsl:call-template name="set.refentry.metadata">
+                <xsl:with-param name="refname" select="$refname"/>
+                <xsl:with-param
+                    name="info"
+                    select="($info[productnumber])[last()]"/>
+                <xsl:with-param
+                    name="contents"
+                    select="(($info[productnumber])[last()]/productnumber)[1]"/>
+                <xsl:with-param name="context">version</xsl:with-param>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$info/edition">
+              <xsl:call-template name="set.refentry.metadata">
+                <xsl:with-param name="refname" select="$refname"/>
+                <xsl:with-param
+                    name="info"
+                    select="($info[edition])[last()]"/>
+                <xsl:with-param
+                    name="contents"
+                    select="(($info[edition])[last()]/edition)[1]"/>
+                <xsl:with-param name="context">version</xsl:with-param>
+                <xsl:with-param name="preferred">productnumber</xsl:with-param>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$info/releaseinfo">
+              <xsl:call-template name="set.refentry.metadata">
+                <xsl:with-param name="refname" select="$refname"/>
+                <xsl:with-param
+                    name="info"
+                    select="($info[releaseinfo])[last()]"/>
+                <xsl:with-param
+                    name="contents"
+                    select="(($info[releaseinfo])[last()]/releaseinfo)[1]"/>
+                <xsl:with-param name="context">version</xsl:with-param>
+                <xsl:with-param name="preferred">productnumber</xsl:with-param>
+              </xsl:call-template>
+            </xsl:when>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="report.missing.version">
+  <xsl:param name="refname"/>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta version</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>no *info/productnumber or alternative</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta version</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>see http://docbook.sf.net/el/productnumber</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta version</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>no refentry/refmeta/refmiscinfo@class=version</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta version</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>see http://docbook.sf.net/el/refmiscinfo</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<doc:template name="get.refentry.manual" xmlns="">
+  <refpurpose>Gets source metadata for a refentry</refpurpose>
+  <refdescription id="get.refentry.manual-desc">
+    <para>The <literal>man(7)</literal> man page describes this as "the
+    title of the manual (e.g., <citetitle>Linux Programmer's
+    Manual</citetitle>)". Here are some examples from existing man pages:
+    <itemizedlist>
+      <listitem>
+        <para><citetitle>dpkg utilities</citetitle>
+        (<command>dpkg-name</command>)</para>
+      </listitem>
+      <listitem>
+        <para><citetitle>User Contributed Perl Documentation</citetitle>
+        (<command>GET</command>)</para>
+      </listitem>
+      <listitem>
+        <para><citetitle>GNU Development Tools</citetitle>
+        (<command>ld</command>)</para>
+      </listitem>
+      <listitem>
+        <para><citetitle>Emperor Norton Utilities</citetitle>
+        (<command>ddate</command>)</para>
+      </listitem>
+      <listitem>
+        <para><citetitle>Debian GNU/Linux manual</citetitle>
+        (<command>faked</command>)</para>
+      </listitem>
+      <listitem>
+        <para><citetitle>GIMP Manual Pages</citetitle>
+        (<command>gimp</command>)</para>
+      </listitem>
+      <listitem>
+        <para><citetitle>KDOC Documentation System</citetitle>
+        (<command>qt2kdoc</command>)</para>
+      </listitem>
+    </itemizedlist>
+    </para>
+
+    <para>The <literal>solbook(5)</literal> man page describes
+    something very much like what <literal>man(7)</literal> calls
+    "manual", except that <literal>solbook(5)</literal> names it
+    "sectdesc" and describes it like this:
+    <blockquote>
+      <para>This is the section title of the reference page; for
+      example <literal>User Commands</literal>.</para>
+    </blockquote>
+    </para>
+
+  </refdescription>
+  <refparameter id="get.refentry.manual-params">
+    <variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          <para>The first <tag>refname</tag> in the refentry</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          <para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          <para>A node containing users preferences (from global
+          stylesheet parameters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refreturn id="get.refentry.manual-returns">
+    <para>Returns a <tag>manual</tag> node.</para>
+  </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.manual">
+  <xsl:param name="refname"/>
+  <xsl:param name="info"/>
+  <xsl:param name="prefs"/>
+  <xsl:variable name="Manual">
+    <xsl:choose>
+      <!-- * if profiling is enabled for manual, and the manual -->
+      <!-- * profile is non-empty, use it -->
+      <xsl:when test="not($prefs/@profileEnabled = 0) and
+                      not($prefs/@profile = '')">
+        <xsl:call-template name="evaluate.info.profile">
+          <xsl:with-param name="profile" select="$prefs/@profile"/>
+          <xsl:with-param name="info" select="$info"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="refmeta/refmiscinfo[@class = 'manual' or @class = 'sectdesc']">
+            <xsl:apply-templates 
+                select="refmeta/refmiscinfo[@class = 'manual' or @class = 'sectdesc'][1]/node()"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- * only in the case of choosing appropriate -->
+            <!-- * "manual" content do we select the furthest -->
+            <!-- * (first) matching element instead of the -->
+            <!-- * closest (last) matching one -->
+            <xsl:choose>
+              <xsl:when test="ancestor::*/title">
+                <xsl:call-template name="set.refentry.metadata">
+                  <xsl:with-param name="refname" select="$refname"/>
+                  <xsl:with-param
+                      name="info"
+                      select="(ancestor::*[title])[1]"/>
+                  <xsl:with-param
+                      name="contents"
+                      select="(ancestor::*[title])[1]/title"/>
+                  <xsl:with-param name="context">manual</xsl:with-param>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="$info/title">
+                <xsl:call-template name="set.refentry.metadata">
+                  <xsl:with-param name="refname" select="$refname"/>
+                  <xsl:with-param
+                      name="info"
+                      select="($info[title])[1]"/>
+                  <xsl:with-param
+                      name="contents"
+                      select="(($info[title])[1]/title)[1]"/>
+                  <xsl:with-param name="context">manual</xsl:with-param>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:otherwise>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="not($Manual = '')">
+      <xsl:copy-of select="$Manual"/>
+    </xsl:when>
+    <!-- * if no Manual, use contents of specified fallback (if any) -->
+    <xsl:when test="not($prefs/@fallback = '')">
+      <xsl:variable name="manual.fallback">
+        <xsl:call-template name="evaluate.info.profile">
+          <xsl:with-param name="profile" select="$prefs/@fallback"/>
+          <xsl:with-param name="info" select="$info"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <!-- * At this point, we know that we don't have properly marked-up -->
+      <!-- * manual metadata, so even if we do have manual fallback -->
+      <!-- * content, we still report to the user that it should be -->
+      <!-- * marked up properly instead. -->
+      <xsl:if test="$refentry.meta.get.quietly = 0">
+        <xsl:call-template name="report.missing.manual">
+          <xsl:with-param name="refname" select="$refname"/>
+        </xsl:call-template>
+      </xsl:if>
+      <xsl:choose>
+        <xsl:when test="not($manual.fallback = '')">
+          <xsl:value-of select="$manual.fallback"/>
+          <xsl:if test="$refentry.meta.get.quietly = 0">
+            <xsl:call-template name="log.message">
+              <xsl:with-param name="level">Warn</xsl:with-param>
+              <xsl:with-param name="source" select="$refname"/>
+              <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+              <xsl:with-param name="message">
+                <xsl:text>using</xsl:text>
+                <xsl:text> "</xsl:text>
+                <xsl:value-of select="$manual.fallback"/>
+                <xsl:text>" </xsl:text>
+                <xsl:text>for "manual"</xsl:text>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- * we have nothing appropriate to use for manual, and no fallback -->
+          <!-- * content, so report insert a fixme -->
+          <xsl:text>[FIXME: manual]</xsl:text>
+          <xsl:if test="$refentry.meta.get.quietly = 0">
+            <xsl:call-template name="log.message">
+              <xsl:with-param name="level">Warn</xsl:with-param>
+              <xsl:with-param name="source" select="$refname"/>
+              <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+              <xsl:with-param name="message">
+                <xsl:text>no fallback for manual, so inserted a fixme</xsl:text>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- * we have nothing appropriate to use for manual, and no fallback -->
+      <!-- * given, so insert a fixme -->
+      <xsl:text>[FIXME: manual]</xsl:text>
+      <xsl:if test="$refentry.meta.get.quietly = 0">
+        <xsl:call-template name="log.message">
+          <xsl:with-param name="level">Warn</xsl:with-param>
+          <xsl:with-param name="source" select="$refname"/>
+          <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+          <xsl:with-param name="message">
+            <xsl:text>no manual fallback given, so inserted a fixme</xsl:text>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="report.missing.manual">
+  <xsl:param name="refname"/>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>no titled ancestor of refentry</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>no refentry/refmeta/refmiscinfo@class=manual</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>see http://docbook.sf.net/el/refmiscinfo</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+<!-- ====================================================================== -->
+<doc:template name="get.refentry.metadata.prefs" xmlns="">
+  <refpurpose>Gets user preferences for refentry metadata gathering</refpurpose>
+  <refdescription id="get.refentry.metadata.prefs-desc">
+    <para>The DocBook XSL stylesheets include several user-configurable
+    global stylesheet parameters for controlling <tag>refentry</tag>
+    metadata gathering. Those parameters are not read directly by the
+    other <tag>refentry</tag> metadata-gathering
+    templates. Instead, they are read only by the
+    <function>get.refentry.metadata.prefs</function> template,
+    which assembles them into a structure that is then passed to
+    the other <tag>refentry</tag> metadata-gathering
+    templates.</para>
+
+    <para>So the, <function>get.refentry.metadata.prefs</function>
+    template is the only interface to collecting stylesheet parameters for
+    controlling <tag>refentry</tag> metadata gathering.</para>
+  </refdescription>
+  <refparameter id="get.refentry.metadata.prefs-params">
+    <para>There are no local parameters for this template; however, it
+    does rely on a number of global parameters.</para>
+  </refparameter>
+  <refreturn id="get.refentry.metadata.prefs-returns">
+    <para>Returns a <tag>manual</tag> node.</para>
+  </refreturn>
+</doc:template>
+<xsl:template name="get.refentry.metadata.prefs">
+  <DatePrefs>
+    <xsl:attribute name="profile">
+      <xsl:value-of select="$refentry.date.profile"/>
+    </xsl:attribute>
+    <xsl:attribute name="profileEnabled">
+      <xsl:value-of select="$refentry.date.profile.enabled"/>
+    </xsl:attribute>
+  </DatePrefs>
+  <SourcePrefs>
+    <xsl:attribute name="fallback">
+      <xsl:value-of select="$refentry.source.fallback.profile"/>
+    </xsl:attribute>
+    <Name>
+      <xsl:attribute name="profile">
+        <xsl:value-of select="$refentry.source.name.profile"/>
+      </xsl:attribute>
+      <xsl:attribute name="profileEnabled">
+        <xsl:value-of select="$refentry.source.name.profile.enabled"/>
+      </xsl:attribute>
+      <xsl:attribute name="suppress">
+        <xsl:value-of select="$refentry.source.name.suppress"/>
+      </xsl:attribute>
+    </Name>
+    <Version>
+      <xsl:attribute name="profile">
+        <xsl:value-of select="$refentry.version.profile"/>
+      </xsl:attribute>
+      <xsl:attribute name="profileEnabled">
+        <xsl:value-of select="$refentry.version.profile.enabled"/>
+      </xsl:attribute>
+      <xsl:attribute name="suppress">
+        <xsl:value-of select="$refentry.version.suppress"/>
+      </xsl:attribute>
+    </Version>
+  </SourcePrefs>
+  <ManualPrefs>
+    <xsl:attribute name="fallback">
+      <xsl:value-of select="$refentry.manual.fallback.profile"/>
+    </xsl:attribute>
+    <xsl:attribute name="profile">
+      <xsl:value-of select="$refentry.manual.profile"/>
+    </xsl:attribute>
+    <xsl:attribute name="profileEnabled">
+      <xsl:value-of select="$refentry.manual.profile.enabled"/>
+    </xsl:attribute>
+  </ManualPrefs>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<doc:template name="set.refentry.metadata" xmlns="">
+  <refpurpose>Sets content of a refentry metadata item</refpurpose>
+  <refdescription id="set.refentry.metadata-desc">
+    <para>The <function>set.refentry.metadata</function> template is
+    called each time a suitable source element is found for a certain
+    metadata field.</para>
+  </refdescription>
+  <refparameter id="set.refentry.metadata-params">
+    <variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          <para>The first <tag>refname</tag> in the refentry</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          <para>A single *info node that contains the selected source element.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>contents</term>
+        <listitem>
+          <para>A node containing the selected source element.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>context</term>
+        <listitem>
+          <para>A string describing the metadata context in which the
+          <function>set.refentry.metadata</function> template was
+          called: either "date", "source", "version", or "manual".</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refreturn id="set.refentry.metadata-returns">
+  <para>Returns formatted contents of a selected source element.</para></refreturn>
+</doc:template>
+<xsl:template name="set.refentry.metadata">
+  <xsl:param name="refname"/>
+  <xsl:param name="info"/>
+  <xsl:param name="contents"/>
+  <xsl:param name="context"/>
+  <xsl:param name="preferred"/>
+  <!-- * <xsl:if test="not($preferred = '')"> -->
+    <!-- * <xsl:if test="$refentry.meta.get.quietly = 0"> -->
+      <!-- * <xsl:call-template name="log.message"> -->
+        <!-- * <xsl:with-param name="level">Note</xsl:with-param> -->
+        <!-- * <xsl:with-param name="source" select="$refname"/> -->
+        <!-- * <xsl:with-param name="context-desc" select="concat('meta ', $context)"/> -->
+        <!-- * <xsl:with-param name="message" select="concat('No ', $preferred)"/> -->
+      <!-- * </xsl:call-template> -->
+      <!-- * <xsl:call-template name="log.message"> -->
+        <!-- * <xsl:with-param name="level">Note</xsl:with-param> -->
+        <!-- * <xsl:with-param name="source" select="$refname"/> -->
+        <!-- * <xsl:with-param name="context-desc" select="concat('meta ', $context)"/> -->
+        <!-- * <xsl:with-param name="message"> -->
+          <!-- * <xsl:text>no refentry/refmeta/refmiscinfo@class=</xsl:text> -->
+          <!-- * <xsl:value-of select="$context"/> -->
+        <!-- * </xsl:with-param> -->
+      <!-- * </xsl:call-template> -->
+      <!-- * <xsl:call-template name="log.message"> -->
+        <!-- * <xsl:with-param name="level">Note</xsl:with-param> -->
+        <!-- * <xsl:with-param name="source" select="$refname"/> -->
+        <!-- * <xsl:with-param name="context-desc" select="concat('meta ', $context)"/> -->
+        <!-- * <xsl:with-param name="message" select="concat('Using ', local-name($contents))"/> -->
+      <!-- * </xsl:call-template> -->
+    <!-- * </xsl:if> -->
+  <!-- * </xsl:if> -->
+  <xsl:value-of select="$contents"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/common/ro.xml b/applications/content/template/docbook/common/ro.xml
new file mode 100644
index 0000000..8d599d5
--- /dev/null
+++ b/applications/content/template/docbook/common/ro.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ro" english-language-name="Romanian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ro.xml -->
+<!-- * -->
+<!-- * E-mail the edited ro.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Rezumat"/>
+<l:gentext key="abstract" text="Rezumat"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="R:"/>
+<l:gentext key="answer" text="R:"/>
+<l:gentext key="Appendix" text="Anexa"/>
+<l:gentext key="appendix" text="anexa"/>
+<l:gentext key="Article" text="Articol"/>
+<l:gentext key="article" text="Articol"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografie"/>
+<l:gentext key="bibliography" text="Bibliografie"/>
+<l:gentext key="Book" text="Carte"/>
+<l:gentext key="book" text="Carte"/>
+<l:gentext key="CAUTION" text="ATENȚIE"/>
+<l:gentext key="Caution" text="Atenție"/>
+<l:gentext key="caution" text="Atenție"/>
+<l:gentext key="Chapter" text="Cap."/>
+<l:gentext key="chapter" text="cap."/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dedicație"/>
+<l:gentext key="dedication" text="Dedicație"/>
+<l:gentext key="Edition" text="Ediție"/>
+<l:gentext key="edition" text="Ediție"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="ecuația"/>
+<l:gentext key="equation" text="ecuația"/>
+<l:gentext key="Example" text="Exemplu"/>
+<l:gentext key="example" text="Exemplu"/>
+<l:gentext key="Figure" text="Fig."/>
+<l:gentext key="figure" text="Fig."/>
+<l:gentext key="Glossary" text="Glosar"/>
+<l:gentext key="glossary" text="Glosar"/>
+<l:gentext key="GlossSee" text="Vezi"/>
+<l:gentext key="glosssee" text="Vezi"/>
+<l:gentext key="GlossSeeAlso" text="Vezi și"/>
+<l:gentext key="glossseealso" text="Vezi și"/>
+<l:gentext key="IMPORTANT" text="IMPORTANT"/>
+<l:gentext key="important" text="Important"/>
+<l:gentext key="Important" text="Important"/>
+<l:gentext key="Index" text="Index"/>
+<l:gentext key="index" text="Index"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text=""/>
+<l:gentext key="legalnotice" text=""/>
+<l:gentext key="MsgAud" text=""/>
+<l:gentext key="msgaud" text=""/>
+<l:gentext key="MsgLevel" text="Nivel"/>
+<l:gentext key="msglevel" text="Nivel"/>
+<l:gentext key="MsgOrig" text="Origine"/>
+<l:gentext key="msgorig" text="Origine"/>
+<l:gentext key="NOTE" text="NOTĂ"/>
+<l:gentext key="Note" text="Notă"/>
+<l:gentext key="note" text="Notă"/>
+<l:gentext key="Part" text="Parte"/>
+<l:gentext key="part" text="Parte"/>
+<l:gentext key="Preface" text="Prefață"/>
+<l:gentext key="preface" text="Prefață"/>
+<l:gentext key="Procedure" text="Procedură"/>
+<l:gentext key="procedure" text="Procedură"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Publicat"/>
+<l:gentext key="published" text="Publicat"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Întrebări și răspunsuri"/>
+<l:gentext key="qandadiv" text="întrebări și răspunsuri"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Î:"/>
+<l:gentext key="question" text="î:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referință"/>
+<l:gentext key="reference" text="Referință"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Nume"/>
+<l:gentext key="refname" text="Nume"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Rezumat"/>
+<l:gentext key="refsynopsisdiv" text="Rezumat"/>
+<l:gentext key="RevHistory" text="Istoricul versiunilor"/>
+<l:gentext key="revhistory" text="Istoricul versiunilor"/>
+<l:gentext key="revision" text="Versiune"/>
+<l:gentext key="Revision" text="Versiune"/>
+<l:gentext key="sect1" text="Secțiune"/>
+<l:gentext key="sect2" text="Secțiune"/>
+<l:gentext key="sect3" text="Secțiune"/>
+<l:gentext key="sect4" text="Secțiune"/>
+<l:gentext key="sect5" text="Secțiune"/>
+<l:gentext key="section" text="sec."/>
+<l:gentext key="Section" text="Secțiune"/>
+<l:gentext key="see" text="Vezi"/>
+<l:gentext key="See" text="Vezi"/>
+<l:gentext key="seealso" text="Vezi și"/>
+<l:gentext key="Seealso" text="Vezi și"/>
+<l:gentext key="SeeAlso" text="Vezi și"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Index"/>
+<l:gentext key="SetIndex" text="Index"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="operațiune"/>
+<l:gentext key="Step" text="Operație"/>
+<l:gentext key="table" text="Tabel"/>
+<l:gentext key="Table" text="Tabel"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Indicație"/>
+<l:gentext key="TIP" text="INDICAȚIE"/>
+<l:gentext key="Tip" text="Indicație"/>
+<l:gentext key="Warning" text="Avertisment"/>
+<l:gentext key="warning" text="Avertisment"/>
+<l:gentext key="WARNING" text="AVERTISMENT"/>
+<l:gentext key="and" text="și"/>
+<l:gentext key="or" text="sau"/>
+<l:gentext key="by" text="de"/>
+<l:gentext key="Edited" text="Publicat"/>
+<l:gentext key="edited" text="Publicat"/>
+<l:gentext key="Editedby" text="Publicat de"/>
+<l:gentext key="editedby" text="Publicat de"/>
+<l:gentext key="in" text="în"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Note"/>
+<l:gentext key="Notes" text="Note"/>
+<l:gentext key="Pgs" text="Pagini"/>
+<l:gentext key="pgs" text="Pagini"/>
+<l:gentext key="Revisedby" text="Revised by: "/>
+<l:gentext key="revisedby" text="Revised by: "/>
+<l:gentext key="TableNotes" text="Remarci"/>
+<l:gentext key="tablenotes" text="Remarci"/>
+<l:gentext key="TableofContents" text="Cuprins"/>
+<l:gentext key="tableofcontents" text="Cuprins"/>
+<l:gentext key="unexpectedelementname" text="Nume de element neașteptat"/>
+<l:gentext key="unsupported" text="nerecunoscut de sisitem"/>
+<l:gentext key="xrefto" text="referință către"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Listă de ecuații"/>
+<l:gentext key="ListofEquations" text="Listă de ecuații"/>
+<l:gentext key="ListofExamples" text="Listă de exemple"/>
+<l:gentext key="listofexamples" text="Listă de exemple"/>
+<l:gentext key="ListofFigures" text="Listă de figuri"/>
+<l:gentext key="listoffigures" text="Listă de figuri"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Listă de tabele"/>
+<l:gentext key="ListofTables" text="Listă de tabele"/>
+<l:gentext key="ListofUnknown" text="Listă de necunoscute"/>
+<l:gentext key="listofunknown" text="Listă de necunoscute"/>
+<l:gentext key="nav-home" text="Acasă"/>
+<l:gentext key="nav-next" text="Înainte"/>
+<l:gentext key="nav-next-sibling" text="Repede ïnainte"/>
+<l:gentext key="nav-prev" text="Înapoi"/>
+<l:gentext key="nav-prev-sibling" text="Repede înapoi"/>
+<l:gentext key="nav-up" text="Sus"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Ciornă"/>
+<l:gentext key="above" text="deasupra"/>
+<l:gentext key="below" text="sub"/>
+<l:gentext key="sectioncalled" text="secțiunea numită"/>
+<l:gentext key="index symbols" text="Simboluri"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="aăâbcdefghiîjklmnopqrsștșuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="AĂÂBCDEFGHIÎJKLMNOPQRSȘTȚUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="«"/>
+<l:dingbat key="nestedendquote" text="»"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Anexa %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Cap. %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="ecuația %n. %t"/>
+<l:template name="example" text="Exemplu %n. %t"/>
+<l:template name="figure" text="Fig. %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedură %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabel %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Anexa %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Cap. %n. %t"/>
+<l:template name="part" text="Parte %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Î: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Î: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="„%t”"/>
+<l:template name="refsection" text="„%t”"/>
+<l:template name="refsect1" text="„%t”"/>
+<l:template name="refsect2" text="„%t”"/>
+<l:template name="refsect3" text="„%t”"/>
+<l:template name="sect1" text="„%t”"/>
+<l:template name="sect2" text="„%t”"/>
+<l:template name="sect3" text="„%t”"/>
+<l:template name="sect4" text="„%t”"/>
+<l:template name="sect5" text="„%t”"/>
+<l:template name="section" text="„%t”"/>
+<l:template name="simplesect" text="„%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="R: %n"/>
+<l:template name="appendix" text="Anexa %n"/>
+<l:template name="bridgehead" text="Secțiune %n"/>
+<l:template name="chapter" text="Cap. %n"/>
+<l:template name="equation" text="ecuația %n"/>
+<l:template name="example" text="Exemplu %n"/>
+<l:template name="figure" text="Fig. %n"/>
+<l:template name="part" text="Parte %n"/>
+<l:template name="procedure" text="Procedură %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Întrebări și răspunsuri %n"/>
+<l:template name="qandaentry" text="Î: %n"/>
+<l:template name="question" text="Î: %n"/>
+<l:template name="sect1" text="Secțiune %n"/>
+<l:template name="sect2" text="Secțiune %n"/>
+<l:template name="sect3" text="Secțiune %n"/>
+<l:template name="sect4" text="Secțiune %n"/>
+<l:template name="sect5" text="Secțiune %n"/>
+<l:template name="section" text="Secțiune %n"/>
+<l:template name="table" text="Tabel %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Anexa %n, %t"/>
+<l:template name="bridgehead" text="Secțiune %n, „%t”"/>
+<l:template name="chapter" text="Cap. %n, %t"/>
+<l:template name="equation" text="ecuația %n, „%t”"/>
+<l:template name="example" text="Exemplu %n, „%t”"/>
+<l:template name="figure" text="Fig. %n, „%t”"/>
+<l:template name="part" text="Parte %n, „%t”"/>
+<l:template name="procedure" text="Procedură %n, „%t”"/>
+<l:template name="productionset" text="Production %n, „%t”"/>
+<l:template name="qandadiv" text="Întrebări și răspunsuri %n, „%t”"/>
+<l:template name="refsect1" text="secțiunea numită „%t”"/>
+<l:template name="refsect2" text="secțiunea numită „%t”"/>
+<l:template name="refsect3" text="secțiunea numită „%t”"/>
+<l:template name="refsection" text="secțiunea numită „%t”"/>
+<l:template name="sect1" text="Secțiune %n, „%t”"/>
+<l:template name="sect2" text="Secțiune %n, „%t”"/>
+<l:template name="sect3" text="Secțiune %n, „%t”"/>
+<l:template name="sect4" text="Secțiune %n, „%t”"/>
+<l:template name="sect5" text="Secțiune %n, „%t”"/>
+<l:template name="section" text="Secțiune %n, „%t”"/>
+<l:template name="simplesect" text="secțiunea numită „%t”"/>
+<l:template name="table" text="Tabel %n, „%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" și "/>
+<l:template name="seplast" text=", și "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vezi %t."/>
+<l:template name="seealso" text="Vezi și %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text=": "/>
+<l:template name="MsgLevel" text="Nivel: "/>
+<l:template name="MsgOrig" text="Origine: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0418 Romanian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/ru.xml b/applications/content/template/docbook/common/ru.xml
new file mode 100644
index 0000000..6de1cd0
--- /dev/null
+++ b/applications/content/template/docbook/common/ru.xml
@@ -0,0 +1,744 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ru" english-language-name="Russian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ru.xml -->
+<!-- * -->
+<!-- * E-mail the edited ru.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Аннотация"/>
+<l:gentext key="abstract" text="Аннотация"/>
+<l:gentext key="Acknowledgements" text="Благодарность"/>
+<l:gentext key="acknowledgements" text="Благодарность"/>
+<l:gentext key="Answer" text="Ответ:"/>
+<l:gentext key="answer" text="Ответ:"/>
+<l:gentext key="Appendix" text="Приложение"/>
+<l:gentext key="appendix" text="Приложение"/>
+<l:gentext key="Article" text="Статья"/>
+<l:gentext key="article" text="Статья"/>
+<l:gentext key="Author" text="Автор"/>
+<l:gentext key="Bibliography" text="Библиография"/>
+<l:gentext key="bibliography" text="Библиография"/>
+<l:gentext key="Book" text="Книга"/>
+<l:gentext key="book" text="Книга"/>
+<l:gentext key="CAUTION" text="ВНИМАНИЕ"/>
+<l:gentext key="Caution" text="Внимание"/>
+<l:gentext key="caution" text="Внимание"/>
+<l:gentext key="Chapter" text="Глава"/>
+<l:gentext key="chapter" text="Глава"/>
+<l:gentext key="Colophon" text="Издание"/>
+<l:gentext key="colophon" text="Издание"/>
+<l:gentext key="Copyright" text="Авторские права"/>
+<l:gentext key="copyright" text="Авторские права"/>
+<l:gentext key="Dedication" text="Посвящается"/>
+<l:gentext key="dedication" text="Посвящается"/>
+<l:gentext key="Edition" text="Редакция"/>
+<l:gentext key="edition" text="Редакция"/>
+<l:gentext key="Editor" text="Редактор"/>
+<l:gentext key="Equation" text="Формула"/>
+<l:gentext key="equation" text="Формула"/>
+<l:gentext key="Example" text="Пример"/>
+<l:gentext key="example" text="Пример"/>
+<l:gentext key="Figure" text="Рисунок"/>
+<l:gentext key="figure" text="Рисунок"/>
+<l:gentext key="Glossary" text="Глоссарий"/>
+<l:gentext key="glossary" text="Глоссарий"/>
+<l:gentext key="GlossSee" text="См."/>
+<l:gentext key="glosssee" text="см."/>
+<l:gentext key="GlossSeeAlso" text="См. также"/>
+<l:gentext key="glossseealso" text="см. также"/>
+<l:gentext key="IMPORTANT" text="ВАЖНО"/>
+<l:gentext key="important" text="Важно"/>
+<l:gentext key="Important" text="Важно"/>
+<l:gentext key="Index" text="Предметный указатель"/>
+<l:gentext key="index" text="Предметный указатель"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Юридическое уведомление"/>
+<l:gentext key="legalnotice" text="Юридическое уведомление"/>
+<l:gentext key="MsgAud" text="Аудитория"/>
+<l:gentext key="msgaud" text="Аудитория"/>
+<l:gentext key="MsgLevel" text="Уровень"/>
+<l:gentext key="msglevel" text="Уровень"/>
+<l:gentext key="MsgOrig" text="Источник"/>
+<l:gentext key="msgorig" text="Источник"/>
+<l:gentext key="NOTE" text="ПРИМЕЧАНИЕ"/>
+<l:gentext key="Note" text="Примечание"/>
+<l:gentext key="note" text="Примечание"/>
+<l:gentext key="Part" text="Часть"/>
+<l:gentext key="part" text="Часть"/>
+<l:gentext key="Preface" text="Предисловие"/>
+<l:gentext key="preface" text="Предисловие"/>
+<l:gentext key="Procedure" text="Процедура"/>
+<l:gentext key="procedure" text="Процедура"/>
+<l:gentext key="ProductionSet" text="Производство"/>
+<l:gentext key="PubDate" text="Дата публикации"/>
+<l:gentext key="pubdate" text="Дата публикации"/>
+<l:gentext key="Published" text="Опубликовано"/>
+<l:gentext key="published" text="Опубликовано"/>
+<l:gentext key="Publisher" text="Издатель"/>
+<l:gentext key="Qandadiv" text="Вопросы и ответы"/>
+<l:gentext key="qandadiv" text="Вопросы и ответы"/>
+<l:gentext key="QandASet" text="Часто задаваемые вопросы"/>
+<l:gentext key="Question" text="Вопрос:"/>
+<l:gentext key="question" text="Вопрос:"/>
+<l:gentext key="RefEntry" text="Страница"/>
+<l:gentext key="refentry" text="Страница"/>
+<l:gentext key="Reference" text="Ссылка"/>
+<l:gentext key="reference" text="Ссылка"/>
+<l:gentext key="References" text="Ссылки"/>
+<l:gentext key="RefName" text="Имя"/>
+<l:gentext key="refname" text="Имя"/>
+<l:gentext key="RefSection" text="Раздел"/>
+<l:gentext key="refsection" text="Раздел"/>
+<l:gentext key="RefSynopsisDiv" text="Синопсис"/>
+<l:gentext key="refsynopsisdiv" text="Синопсис"/>
+<l:gentext key="RevHistory" text="История переиздания"/>
+<l:gentext key="revhistory" text="История переиздания"/>
+<l:gentext key="revision" text="Издание"/>
+<l:gentext key="Revision" text="Издание"/>
+<l:gentext key="sect1" text="Раздел"/>
+<l:gentext key="sect2" text="Раздел"/>
+<l:gentext key="sect3" text="Раздел"/>
+<l:gentext key="sect4" text="Раздел"/>
+<l:gentext key="sect5" text="Раздел"/>
+<l:gentext key="section" text="Раздел"/>
+<l:gentext key="Section" text="Раздел"/>
+<l:gentext key="see" text="см."/>
+<l:gentext key="See" text="См."/>
+<l:gentext key="seealso" text="см. также"/>
+<l:gentext key="Seealso" text="См. также"/>
+<l:gentext key="SeeAlso" text="См. также"/>
+<l:gentext key="set" text="Подборка"/>
+<l:gentext key="Set" text="Подборка"/>
+<l:gentext key="setindex" text="Индекс подборки"/>
+<l:gentext key="SetIndex" text="Индекс подборки"/>
+<l:gentext key="Sidebar" text="Боковое поле"/>
+<l:gentext key="sidebar" text="Боковое поле"/>
+<l:gentext key="step" text="Шаг"/>
+<l:gentext key="Step" text="Шаг"/>
+<l:gentext key="table" text="Таблица"/>
+<l:gentext key="Table" text="Таблица"/>
+<l:gentext key="task" text="Задача"/>
+<l:gentext key="Task" text="Задача"/>
+<l:gentext key="tip" text="Подсказка"/>
+<l:gentext key="TIP" text="ПОДСКАЗКА"/>
+<l:gentext key="Tip" text="Подсказка"/>
+<l:gentext key="Warning" text="Предупреждение"/>
+<l:gentext key="warning" text="Предупреждение"/>
+<l:gentext key="WARNING" text="ПРЕДУПРЕЖДЕНИЕ"/>
+<l:gentext key="and" text=""/>
+<l:gentext key="or" text="или"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Под редакцией"/>
+<l:gentext key="edited" text="Под редакцией"/>
+<l:gentext key="Editedby" text="Под редакцией"/>
+<l:gentext key="editedby" text="Под редакцией"/>
+<l:gentext key="in" text="в"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Примечания"/>
+<l:gentext key="Notes" text="Примечания"/>
+<l:gentext key="Pgs" text="Стр."/>
+<l:gentext key="pgs" text="Стр."/>
+<l:gentext key="Revisedby" text="Проверено: "/>
+<l:gentext key="revisedby" text="Проверено: "/>
+<l:gentext key="TableNotes" text="Примечания"/>
+<l:gentext key="tablenotes" text="Примечания"/>
+<l:gentext key="TableofContents" text="Содержание"/>
+<l:gentext key="tableofcontents" text="Содержание"/>
+<l:gentext key="unexpectedelementname" text="unexpected element name"/>
+<l:gentext key="unsupported" text="unsupported"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="Авторы"/>
+<l:gentext key="copyeditor" text="Редактор копии"/>
+<l:gentext key="graphicdesigner" text="Графический дизайн"/>
+<l:gentext key="productioneditor" text="Главный редактор"/>
+<l:gentext key="technicaleditor" text="Технический редактор"/>
+<l:gentext key="translator" text="Перевод"/>
+<l:gentext key="listofequations" text="Список выражений"/>
+<l:gentext key="ListofEquations" text="Список выражений"/>
+<l:gentext key="ListofExamples" text="Список примеров"/>
+<l:gentext key="listofexamples" text="Список примеров"/>
+<l:gentext key="ListofFigures" text="Список иллюстраций"/>
+<l:gentext key="listoffigures" text="Список иллюстраций"/>
+<l:gentext key="ListofProcedures" text="Список процедур"/>
+<l:gentext key="listofprocedures" text="Список процедур"/>
+<l:gentext key="listoftables" text="Список таблиц"/>
+<l:gentext key="ListofTables" text="Список таблиц"/>
+<l:gentext key="ListofUnknown" text="Список других"/>
+<l:gentext key="listofunknown" text="Список других"/>
+<l:gentext key="nav-home" text="Начало"/>
+<l:gentext key="nav-next" text="След."/>
+<l:gentext key="nav-next-sibling" text="След. подраздел"/>
+<l:gentext key="nav-prev" text="Пред."/>
+<l:gentext key="nav-prev-sibling" text="Пред. подраздел"/>
+<l:gentext key="nav-up" text="Наверх"/>
+<l:gentext key="nav-toc" text="Содержание"/>
+<l:gentext key="Draft" text="Черновик"/>
+<l:gentext key="above" text="выше"/>
+<l:gentext key="below" text="ниже"/>
+<l:gentext key="sectioncalled" text="секция"/>
+<l:gentext key="index symbols" text="Символы"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="абвгдеёжзийклмнопрстуфхцчшщъыьэюя"/>
+<l:gentext key="uppercase.alpha" text="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="«"/>
+<l:dingbat key="endquote" text="»"/>
+<l:dingbat key="nestedstartquote" text="„"/>
+<l:dingbat key="nestedendquote" text="“"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Приложение %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Глава %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Формула %n. %t"/>
+<l:template name="example" text="Пример %n. %t"/>
+<l:template name="figure" text="Рисунок %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Часть %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Процедура %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Производство %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Таблица %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Приложение %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Глава %n. %t"/>
+<l:template name="part" text="Часть %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Ответ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Вопрос: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Вопрос: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="«%t»"/>
+<l:template name="refsection" text="«%t»"/>
+<l:template name="refsect1" text="«%t»"/>
+<l:template name="refsect2" text="«%t»"/>
+<l:template name="refsect3" text="«%t»"/>
+<l:template name="sect1" text="«%t»"/>
+<l:template name="sect2" text="«%t»"/>
+<l:template name="sect3" text="«%t»"/>
+<l:template name="sect4" text="«%t»"/>
+<l:template name="sect5" text="«%t»"/>
+<l:template name="section" text="«%t»"/>
+<l:template name="simplesect" text="«%t»"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Ответ: %n"/>
+<l:template name="appendix" text="Приложение %n"/>
+<l:template name="bridgehead" text="Раздел %n"/>
+<l:template name="chapter" text="Глава %n"/>
+<l:template name="equation" text="Формула %n"/>
+<l:template name="example" text="Пример %n"/>
+<l:template name="figure" text="Рисунок %n"/>
+<l:template name="part" text="Часть %n"/>
+<l:template name="procedure" text="Процедура %n"/>
+<l:template name="productionset" text="Производство %n"/>
+<l:template name="qandadiv" text="Вопросы и ответы %n"/>
+<l:template name="qandaentry" text="Вопрос: %n"/>
+<l:template name="question" text="Вопрос: %n"/>
+<l:template name="sect1" text="Раздел %n"/>
+<l:template name="sect2" text="Раздел %n"/>
+<l:template name="sect3" text="Раздел %n"/>
+<l:template name="sect4" text="Раздел %n"/>
+<l:template name="sect5" text="Раздел %n"/>
+<l:template name="section" text="Раздел %n"/>
+<l:template name="table" text="Таблица %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Приложение %n, %t"/>
+<l:template name="bridgehead" text="Раздел %n, «%t»"/>
+<l:template name="chapter" text="Глава %n, %t"/>
+<l:template name="equation" text="Формула %n, «%t»"/>
+<l:template name="example" text="Пример %n, «%t»"/>
+<l:template name="figure" text="Рисунок %n, «%t»"/>
+<l:template name="part" text="Часть %n, «%t»"/>
+<l:template name="procedure" text="Процедура %n, «%t»"/>
+<l:template name="productionset" text="Производство %n, «%t»"/>
+<l:template name="qandadiv" text="Вопросы и ответы %n, «%t»"/>
+<l:template name="refsect1" text="секция «%t»"/>
+<l:template name="refsect2" text="секция «%t»"/>
+<l:template name="refsect3" text="секция «%t»"/>
+<l:template name="refsection" text="секция «%t»"/>
+<l:template name="sect1" text="Раздел %n, «%t»"/>
+<l:template name="sect2" text="Раздел %n, «%t»"/>
+<l:template name="sect3" text="Раздел %n, «%t»"/>
+<l:template name="sect4" text="Раздел %n, «%t»"/>
+<l:template name="sect5" text="Раздел %n, «%t»"/>
+<l:template name="section" text="Раздел %n, «%t»"/>
+<l:template name="simplesect" text="секция «%t»"/>
+<l:template name="table" text="Таблица %n, «%t»"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text="  "/>
+<l:template name="seplast" text=",  "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="См. %t."/>
+<l:template name="seealso" text="См. также %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Аудитория: "/>
+<l:template name="MsgLevel" text="Уровень: "/>
+<l:template name="MsgOrig" text="Источник: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Определение: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="января"/>
+<l:template name="February" text="февраля"/>
+<l:template name="March" text="марта"/>
+<l:template name="April" text="апреля"/>
+<l:template name="May" text="мая"/>
+<l:template name="June" text="июня"/>
+<l:template name="July" text="июля"/>
+<l:template name="August" text="августа"/>
+<l:template name="September" text="сентября"/>
+<l:template name="October" text="октября"/>
+<l:template name="November" text="ноября"/>
+<l:template name="December" text="декабря"/>
+<l:template name="Monday" text="понедельник"/>
+<l:template name="Tuesday" text="вторник"/>
+<l:template name="Wednesday" text="среда"/>
+<l:template name="Thursday" text="четверг"/>
+<l:template name="Friday" text="пятница"/>
+<l:template name="Saturday" text="суббота"/>
+<l:template name="Sunday" text="воскресенье"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Янв"/>
+<l:template name="Feb" text="Фев"/>
+<l:template name="Mar" text="Мар"/>
+<l:template name="Apr" text="Апр"/>
+<l:template name="May" text="Май"/>
+<l:template name="Jun" text="Июн"/>
+<l:template name="Jul" text="Июл"/>
+<l:template name="Aug" text="Авг"/>
+<l:template name="Sep" text="Сен"/>
+<l:template name="Oct" text="Окт"/>
+<l:template name="Nov" text="Ноя"/>
+<l:template name="Dec" text="Дек"/>
+<l:template name="Mon" text="Пнд"/>
+<l:template name="Tue" text="Втр"/>
+<l:template name="Wed" text="Срд"/>
+<l:template name="Thu" text="Чтв"/>
+<l:template name="Fri" text="Птн"/>
+<l:template name="Sat" text="Сбт"/>
+<l:template name="Sun" text="Вск"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0419 Russian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0"/>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="270">А</l:l>
+<l:l i="270">а</l:l>
+<l:l i="280">Б</l:l>
+<l:l i="280">б</l:l>
+<l:l i="290">В</l:l>
+<l:l i="290">в</l:l>
+<l:l i="300">Г</l:l>
+<l:l i="300">г</l:l>
+<l:l i="310">Д</l:l>
+<l:l i="310">д</l:l>
+<l:l i="320">Е</l:l>
+<l:l i="320">е</l:l>
+<l:l i="320">Ё</l:l>
+<l:l i="320">ё</l:l>
+<l:l i="330">Ж</l:l>
+<l:l i="330">ж</l:l>
+<l:l i="340">З</l:l>
+<l:l i="340">з</l:l>
+<l:l i="350">И</l:l>
+<l:l i="350">и</l:l>
+<l:l i="360">Й</l:l>
+<l:l i="360">й</l:l>
+<l:l i="370">К</l:l>
+<l:l i="370">к</l:l>
+<l:l i="380">Л</l:l>
+<l:l i="380">л</l:l>
+<l:l i="390">М</l:l>
+<l:l i="390">м</l:l>
+<l:l i="400">Н</l:l>
+<l:l i="400">н</l:l>
+<l:l i="410">О</l:l>
+<l:l i="410">о</l:l>
+<l:l i="420">П</l:l>
+<l:l i="420">п</l:l>
+<l:l i="430">Р</l:l>
+<l:l i="430">р</l:l>
+<l:l i="440">С</l:l>
+<l:l i="440">с</l:l>
+<l:l i="450">Т</l:l>
+<l:l i="450">т</l:l>
+<l:l i="460">У</l:l>
+<l:l i="460">у</l:l>
+<l:l i="470">Ф</l:l>
+<l:l i="470">ф</l:l>
+<l:l i="480">Х</l:l>
+<l:l i="480">х</l:l>
+<l:l i="490">Ц</l:l>
+<l:l i="490">ц</l:l>
+<l:l i="500">Ч</l:l>
+<l:l i="500">ч</l:l>
+<l:l i="510">Ш</l:l>
+<l:l i="510">ш</l:l>
+<l:l i="520">Щ</l:l>
+<l:l i="520">щ</l:l>
+<l:l i="530">Ъ</l:l>
+<l:l i="530">ъ</l:l>
+<l:l i="540">Ы</l:l>
+<l:l i="540">ы</l:l>
+<l:l i="550">Ь</l:l>
+<l:l i="550">ь</l:l>
+<l:l i="560">Э</l:l>
+<l:l i="560">э</l:l>
+<l:l i="570">Ю</l:l>
+<l:l i="570">ю</l:l>
+<l:l i="580">Я</l:l>
+<l:l i="580">я</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/sk.xml b/applications/content/template/docbook/common/sk.xml
new file mode 100644
index 0000000..3144fb2
--- /dev/null
+++ b/applications/content/template/docbook/common/sk.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sk" english-language-name="Slovak">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/sk.xml -->
+<!-- * -->
+<!-- * E-mail the edited sk.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstrakt"/>
+<l:gentext key="abstract" text="Abstrakt"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="A:"/>
+<l:gentext key="Appendix" text="Dodatok"/>
+<l:gentext key="appendix" text="dodatok"/>
+<l:gentext key="Article" text="Článok"/>
+<l:gentext key="article" text="Článok"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="Bibliografia"/>
+<l:gentext key="Book" text="Kniha"/>
+<l:gentext key="book" text="Kniha"/>
+<l:gentext key="CAUTION" text="VÝSTRAHA"/>
+<l:gentext key="Caution" text="Výstraha"/>
+<l:gentext key="caution" text="Výstraha"/>
+<l:gentext key="Chapter" text="Kapitola"/>
+<l:gentext key="chapter" text="kapitola"/>
+<l:gentext key="Colophon" text="Tiráž"/>
+<l:gentext key="colophon" text="Tiráž"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Venovanie"/>
+<l:gentext key="dedication" text="Venovanie"/>
+<l:gentext key="Edition" text="Vydanie"/>
+<l:gentext key="edition" text="Vydanie"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Rovnica"/>
+<l:gentext key="equation" text="Rovnica"/>
+<l:gentext key="Example" text="Príklad"/>
+<l:gentext key="example" text="Príklad"/>
+<l:gentext key="Figure" text="Obrázok"/>
+<l:gentext key="figure" text="Obrázok"/>
+<l:gentext key="Glossary" text="Slovník"/>
+<l:gentext key="glossary" text="Slovník"/>
+<l:gentext key="GlossSee" text="Pozri"/>
+<l:gentext key="glosssee" text="Pozri"/>
+<l:gentext key="GlossSeeAlso" text="Pozri tiež"/>
+<l:gentext key="glossseealso" text="Pozri tiež"/>
+<l:gentext key="IMPORTANT" text="DÔLEŽITÉ"/>
+<l:gentext key="important" text="Dôležité"/>
+<l:gentext key="Important" text="Dôležité"/>
+<l:gentext key="Index" text="Zoznam"/>
+<l:gentext key="index" text="Zoznam"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Právna poznámka"/>
+<l:gentext key="legalnotice" text="Právna poznámka"/>
+<l:gentext key="MsgAud" text="Publikum"/>
+<l:gentext key="msgaud" text="Publikum"/>
+<l:gentext key="MsgLevel" text="Úroveň"/>
+<l:gentext key="msglevel" text="Úroveň"/>
+<l:gentext key="MsgOrig" text="Pôvod"/>
+<l:gentext key="msgorig" text="Pôvod"/>
+<l:gentext key="NOTE" text="POZNÁMKA"/>
+<l:gentext key="Note" text="Poznámka"/>
+<l:gentext key="note" text="Poznámka"/>
+<l:gentext key="Part" text="Časť"/>
+<l:gentext key="part" text="Časť"/>
+<l:gentext key="Preface" text="Predslov"/>
+<l:gentext key="preface" text="Predslov"/>
+<l:gentext key="Procedure" text="Postup"/>
+<l:gentext key="procedure" text="Postup"/>
+<l:gentext key="ProductionSet" text="Produkcia"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Vydané"/>
+<l:gentext key="published" text="Vydané"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Q &amp; A"/>
+<l:gentext key="qandadiv" text="Q &amp; A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Q:"/>
+<l:gentext key="question" text="Q:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Odkaz"/>
+<l:gentext key="reference" text="Odkaz"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Meno"/>
+<l:gentext key="refname" text="Meno"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Prehľad"/>
+<l:gentext key="refsynopsisdiv" text="Prehľad"/>
+<l:gentext key="RevHistory" text="Prehľad revízií"/>
+<l:gentext key="revhistory" text="Prehľad revízií"/>
+<l:gentext key="revision" text="Revízia"/>
+<l:gentext key="Revision" text="Revízia"/>
+<l:gentext key="sect1" text="Oddiel"/>
+<l:gentext key="sect2" text="Oddiel"/>
+<l:gentext key="sect3" text="Oddiel"/>
+<l:gentext key="sect4" text="Oddiel"/>
+<l:gentext key="sect5" text="Oddiel"/>
+<l:gentext key="section" text="oddiel"/>
+<l:gentext key="Section" text="Oddiel"/>
+<l:gentext key="see" text="Pozri"/>
+<l:gentext key="See" text="Pozri"/>
+<l:gentext key="seealso" text="Pozri tiež"/>
+<l:gentext key="Seealso" text="Pozri tiež"/>
+<l:gentext key="SeeAlso" text="Pozri tiež"/>
+<l:gentext key="set" text="Nastaviť"/>
+<l:gentext key="Set" text="Nastaviť"/>
+<l:gentext key="setindex" text="nastaviť index"/>
+<l:gentext key="SetIndex" text="Nastaviť index"/>
+<l:gentext key="Sidebar" text="Marginália"/>
+<l:gentext key="sidebar" text="marginália"/>
+<l:gentext key="step" text="krok"/>
+<l:gentext key="Step" text="Krok"/>
+<l:gentext key="table" text="Tabuľka"/>
+<l:gentext key="Table" text="Tabuľka"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Tip"/>
+<l:gentext key="TIP" text="TIP"/>
+<l:gentext key="Tip" text="Tip"/>
+<l:gentext key="Warning" text="Varovanie"/>
+<l:gentext key="warning" text="Varovanie"/>
+<l:gentext key="WARNING" text="VAROVANIE"/>
+<l:gentext key="and" text="a"/>
+<l:gentext key="or" text="alebo"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Vydané"/>
+<l:gentext key="edited" text="Vydané"/>
+<l:gentext key="Editedby" text="Zostavil: "/>
+<l:gentext key="editedby" text="Zostavil: "/>
+<l:gentext key="in" text="v"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Poznámky"/>
+<l:gentext key="Notes" text="Poznámky"/>
+<l:gentext key="Pgs" text="Str."/>
+<l:gentext key="pgs" text="Str."/>
+<l:gentext key="Revisedby" text="Revidoval: "/>
+<l:gentext key="revisedby" text="Revidoval: "/>
+<l:gentext key="TableNotes" text="Poznámky"/>
+<l:gentext key="tablenotes" text="Poznámky"/>
+<l:gentext key="TableofContents" text="Obsah"/>
+<l:gentext key="tableofcontents" text="Obsah"/>
+<l:gentext key="unexpectedelementname" text="Neočakávané meno prvku"/>
+<l:gentext key="unsupported" text="nepodporovaný"/>
+<l:gentext key="xrefto" text="xref k"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Zoznam rovníc"/>
+<l:gentext key="ListofEquations" text="Zoznam rovníc"/>
+<l:gentext key="ListofExamples" text="Zoznam príkladov"/>
+<l:gentext key="listofexamples" text="Zoznam príkladov"/>
+<l:gentext key="ListofFigures" text="Zoznam obrázkov"/>
+<l:gentext key="listoffigures" text="Zoznam obrázkov"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Zoznam tabuliek"/>
+<l:gentext key="ListofTables" text="Zoznam tabuliek"/>
+<l:gentext key="ListofUnknown" text="Zoznam neznámeho"/>
+<l:gentext key="listofunknown" text="Zoznam neznámeho"/>
+<l:gentext key="nav-home" text="Domov"/>
+<l:gentext key="nav-next" text="Nasledujúci"/>
+<l:gentext key="nav-next-sibling" text="Rýchlo dopredu"/>
+<l:gentext key="nav-prev" text="Predchádzajúci"/>
+<l:gentext key="nav-prev-sibling" text="Rýchlo nazpät"/>
+<l:gentext key="nav-up" text="Hore"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Koncept"/>
+<l:gentext key="above" text="nad"/>
+<l:gentext key="below" text="pod"/>
+<l:gentext key="sectioncalled" text="oddiel nazvaný"/>
+<l:gentext key="index symbols" text="Symboly"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="aáäbcčdďeéfghiíjklĺľmnňoóôpqrŕsštťuúvwxyýzž"/>
+<l:gentext key="uppercase.alpha" text="AÁÄBCČDĎEÉFGHIÍJKLĹĽMNŇOÓÔPQRŔSŠTŤUÚVWXYÝZŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Dodatok %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapitola %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Rovnica %n. %t"/>
+<l:template name="example" text="Príklad %n. %t"/>
+<l:template name="figure" text="Obrázok %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Časť %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Postup %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkcia %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabuľka %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Dodatok %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Kapitola %n. %t"/>
+<l:template name="part" text="Časť %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Dodatok %n"/>
+<l:template name="bridgehead" text="Oddiel %n"/>
+<l:template name="chapter" text="Kapitola %n"/>
+<l:template name="equation" text="Rovnica %n"/>
+<l:template name="example" text="Príklad %n"/>
+<l:template name="figure" text="Obrázok %n"/>
+<l:template name="part" text="Časť %n"/>
+<l:template name="procedure" text="Postup %n"/>
+<l:template name="productionset" text="Produkcia %n"/>
+<l:template name="qandadiv" text="Q &amp; A %n"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="sect1" text="Oddiel %n"/>
+<l:template name="sect2" text="Oddiel %n"/>
+<l:template name="sect3" text="Oddiel %n"/>
+<l:template name="sect4" text="Oddiel %n"/>
+<l:template name="sect5" text="Oddiel %n"/>
+<l:template name="section" text="Oddiel %n"/>
+<l:template name="table" text="Tabuľka %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Dodatok %n, %t"/>
+<l:template name="bridgehead" text="Oddiel %n, “%t”"/>
+<l:template name="chapter" text="Kapitola %n, %t"/>
+<l:template name="equation" text="Rovnica %n, “%t”"/>
+<l:template name="example" text="Príklad %n, “%t”"/>
+<l:template name="figure" text="Obrázok %n, “%t”"/>
+<l:template name="part" text="Časť %n, “%t”"/>
+<l:template name="procedure" text="Postup %n, “%t”"/>
+<l:template name="productionset" text="Produkcia %n, “%t”"/>
+<l:template name="qandadiv" text="Q &amp; A %n, “%t”"/>
+<l:template name="refsect1" text="oddiel nazvaný “%t”"/>
+<l:template name="refsect2" text="oddiel nazvaný “%t”"/>
+<l:template name="refsect3" text="oddiel nazvaný “%t”"/>
+<l:template name="refsection" text="oddiel nazvaný “%t”"/>
+<l:template name="sect1" text="Oddiel %n, “%t”"/>
+<l:template name="sect2" text="Oddiel %n, “%t”"/>
+<l:template name="sect3" text="Oddiel %n, “%t”"/>
+<l:template name="sect4" text="Oddiel %n, “%t”"/>
+<l:template name="sect5" text="Oddiel %n, “%t”"/>
+<l:template name="section" text="Oddiel %n, “%t”"/>
+<l:template name="simplesect" text="oddiel nazvaný “%t”"/>
+<l:template name="table" text="Tabuľka %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" a "/>
+<l:template name="seplast" text=", a "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Pozri %t."/>
+<l:template name="seealso" text="Pozri tiež %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Publikum: "/>
+<l:template name="MsgLevel" text="Úroveň: "/>
+<l:template name="MsgOrig" text="Pôvod: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d. B Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="januára"/>
+<l:template name="February" text="februára"/>
+<l:template name="March" text="marca"/>
+<l:template name="April" text="apríla"/>
+<l:template name="May" text="mája"/>
+<l:template name="June" text="júna"/>
+<l:template name="July" text="júla"/>
+<l:template name="August" text="augusta"/>
+<l:template name="September" text="septembra"/>
+<l:template name="October" text="októbra"/>
+<l:template name="November" text="novembra"/>
+<l:template name="December" text="decembra"/>
+<l:template name="Monday" text="pondelok"/>
+<l:template name="Tuesday" text="utorok"/>
+<l:template name="Wednesday" text="streda"/>
+<l:template name="Thursday" text="štvrtok"/>
+<l:template name="Friday" text="piatok"/>
+<l:template name="Saturday" text="sobota"/>
+<l:template name="Sunday" text="nedeľa"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="jan"/>
+<l:template name="Feb" text="feb"/>
+<l:template name="Mar" text="mar"/>
+<l:template name="Apr" text="apr"/>
+<l:template name="May" text="máj"/>
+<l:template name="Jun" text="jún"/>
+<l:template name="Jul" text="júl"/>
+<l:template name="Aug" text="aug"/>
+<l:template name="Sep" text="sep"/>
+<l:template name="Oct" text="okt"/>
+<l:template name="Nov" text="nov"/>
+<l:template name="Dec" text="dec"/>
+<l:template name="Mon" text="po"/>
+<l:template name="Tue" text="ut"/>
+<l:template name="Wed" text="st"/>
+<l:template name="Thu" text="št"/>
+<l:template name="Fri" text="pi"/>
+<l:template name="Sat" text="so"/>
+<l:template name="Sun" text="ne"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x041b Slovak"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/sl.xml b/applications/content/template/docbook/common/sl.xml
new file mode 100644
index 0000000..8c2d640
--- /dev/null
+++ b/applications/content/template/docbook/common/sl.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sl" english-language-name="Slovenian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/sl.xml -->
+<!-- * -->
+<!-- * E-mail the edited sl.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Povzetek"/>
+<l:gentext key="abstract" text="Povzetek"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="O:"/>
+<l:gentext key="answer" text="O:"/>
+<l:gentext key="Appendix" text="Dodatek"/>
+<l:gentext key="appendix" text="dodatek"/>
+<l:gentext key="Article" text="Članek"/>
+<l:gentext key="article" text="Članek"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Literatura"/>
+<l:gentext key="bibliography" text="Literatura"/>
+<l:gentext key="Book" text="Knjiga"/>
+<l:gentext key="book" text="Knjiga"/>
+<l:gentext key="CAUTION" text="OPOZORILO"/>
+<l:gentext key="Caution" text="Opozorilo"/>
+<l:gentext key="caution" text="Opozorilo"/>
+<l:gentext key="Chapter" text="Poglavje"/>
+<l:gentext key="chapter" text="poglavje"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="Kolofon"/>
+<l:gentext key="Copyright" text="Pravna zaščita"/>
+<l:gentext key="copyright" text="Pravna zaščita"/>
+<l:gentext key="Dedication" text="Posvetilo"/>
+<l:gentext key="dedication" text="Posvetilo"/>
+<l:gentext key="Edition" text="Izdaja"/>
+<l:gentext key="edition" text="Izdaja"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Enačba"/>
+<l:gentext key="equation" text="Enačba"/>
+<l:gentext key="Example" text="Primer"/>
+<l:gentext key="example" text="Primer"/>
+<l:gentext key="Figure" text="Slika"/>
+<l:gentext key="figure" text="Slika"/>
+<l:gentext key="Glossary" text="Slovarček"/>
+<l:gentext key="glossary" text="Slovarček"/>
+<l:gentext key="GlossSee" text="glej"/>
+<l:gentext key="glosssee" text="glej"/>
+<l:gentext key="GlossSeeAlso" text="glej tudi"/>
+<l:gentext key="glossseealso" text="glej tudi"/>
+<l:gentext key="IMPORTANT" text="POMEMBNO"/>
+<l:gentext key="important" text="Pomembno"/>
+<l:gentext key="Important" text="Pomembno"/>
+<l:gentext key="Index" text="Stvarno kazalo"/>
+<l:gentext key="index" text="Stvarno kazalo"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Pravno sporočilo"/>
+<l:gentext key="legalnotice" text="Pravno sporočilo"/>
+<l:gentext key="MsgAud" text="Občinstvo"/>
+<l:gentext key="msgaud" text="Občinstvo"/>
+<l:gentext key="MsgLevel" text="Raven"/>
+<l:gentext key="msglevel" text="Raven"/>
+<l:gentext key="MsgOrig" text="Izvor"/>
+<l:gentext key="msgorig" text="Izvor"/>
+<l:gentext key="NOTE" text="OPOMBA"/>
+<l:gentext key="Note" text="Opomba"/>
+<l:gentext key="note" text="Opomba"/>
+<l:gentext key="Part" text="Del"/>
+<l:gentext key="part" text="Del"/>
+<l:gentext key="Preface" text="Predgovor"/>
+<l:gentext key="preface" text="Predgovor"/>
+<l:gentext key="Procedure" text="Postopek"/>
+<l:gentext key="procedure" text="Postopek"/>
+<l:gentext key="ProductionSet" text="Izdelava"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Izdano"/>
+<l:gentext key="published" text="Izdano"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="V in O"/>
+<l:gentext key="qandadiv" text="V in O"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="V:"/>
+<l:gentext key="question" text="V:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Sklic"/>
+<l:gentext key="reference" text="Sklic"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Ime"/>
+<l:gentext key="refname" text="Ime"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Sinopsis"/>
+<l:gentext key="refsynopsisdiv" text="Sinopsis"/>
+<l:gentext key="RevHistory" text="Zgodovina različic"/>
+<l:gentext key="revhistory" text="Zgodovina različic"/>
+<l:gentext key="revision" text="Različica"/>
+<l:gentext key="Revision" text="Različica"/>
+<l:gentext key="sect1" text="Razdelek"/>
+<l:gentext key="sect2" text="Razdelek"/>
+<l:gentext key="sect3" text="Razdelek"/>
+<l:gentext key="sect4" text="Razdelek"/>
+<l:gentext key="sect5" text="Razdelek"/>
+<l:gentext key="section" text="razdelek"/>
+<l:gentext key="Section" text="Razdelek"/>
+<l:gentext key="see" text="glej"/>
+<l:gentext key="See" text="glej"/>
+<l:gentext key="seealso" text="glej tudi"/>
+<l:gentext key="Seealso" text="Glej tudi"/>
+<l:gentext key="SeeAlso" text="glej tudi"/>
+<l:gentext key="set" text="Postavi"/>
+<l:gentext key="Set" text="Postavi"/>
+<l:gentext key="setindex" text="Postavi stvarno kazalo"/>
+<l:gentext key="SetIndex" text="Postavi stvarno kazalo"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="korak"/>
+<l:gentext key="Step" text="Korak"/>
+<l:gentext key="table" text="Tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Namig"/>
+<l:gentext key="TIP" text="NAMIG"/>
+<l:gentext key="Tip" text="Namig"/>
+<l:gentext key="Warning" text="Pozor"/>
+<l:gentext key="warning" text="Pozor"/>
+<l:gentext key="WARNING" text="POZOR"/>
+<l:gentext key="and" text="in"/>
+<l:gentext key="or" text="ali"/>
+<l:gentext key="by" text="od"/>
+<l:gentext key="Edited" text="Urejeno"/>
+<l:gentext key="edited" text="Urejeno"/>
+<l:gentext key="Editedby" text="Uredil"/>
+<l:gentext key="editedby" text="Uredil"/>
+<l:gentext key="in" text="v"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Notes"/>
+<l:gentext key="Notes" text="Notes"/>
+<l:gentext key="Pgs" text="Str."/>
+<l:gentext key="pgs" text="Str."/>
+<l:gentext key="Revisedby" text="Pregledal: "/>
+<l:gentext key="revisedby" text="Pregledal: "/>
+<l:gentext key="TableNotes" text="Notes"/>
+<l:gentext key="tablenotes" text="Notes"/>
+<l:gentext key="TableofContents" text="Kazalo"/>
+<l:gentext key="tableofcontents" text="Kazalo"/>
+<l:gentext key="unexpectedelementname" text="Nepričakovano ime elementa"/>
+<l:gentext key="unsupported" text="nepodprto"/>
+<l:gentext key="xrefto" text="xref na"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Seznam enačb"/>
+<l:gentext key="ListofEquations" text="Seznam enačb"/>
+<l:gentext key="ListofExamples" text="Seznam primerov"/>
+<l:gentext key="listofexamples" text="Seznam primerov"/>
+<l:gentext key="ListofFigures" text="Seznam slik"/>
+<l:gentext key="listoffigures" text="Seznam slik"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Seznam tabel"/>
+<l:gentext key="ListofTables" text="Seznam tabel"/>
+<l:gentext key="ListofUnknown" text="Seznam neznanih stvari"/>
+<l:gentext key="listofunknown" text="Seznam neznanih stvari"/>
+<l:gentext key="nav-home" text="Domov"/>
+<l:gentext key="nav-next" text="Naprej"/>
+<l:gentext key="nav-next-sibling" text="Hitro naprej"/>
+<l:gentext key="nav-prev" text="Nazaj"/>
+<l:gentext key="nav-prev-sibling" text="Hitro nazaj"/>
+<l:gentext key="nav-up" text="Gor"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="razdelek, imenovan"/>
+<l:gentext key="index symbols" text="Simboli"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcčdefghijklmnopqrsštuvwxyzž"/>
+<l:gentext key="uppercase.alpha" text="ABCČDEFGHIJKLMNOPQRSŠTUVWXYZŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Dodatek %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Poglavje %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Enačba %n. %t"/>
+<l:template name="example" text="Primer %n. %t"/>
+<l:template name="figure" text="Slika %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Postopek %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Izdelava %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Dodatek %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Poglavje %n. %t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="O: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="V: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="V: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="O: %n"/>
+<l:template name="appendix" text="Dodatek %n"/>
+<l:template name="bridgehead" text="Razdelek %n"/>
+<l:template name="chapter" text="Poglavje %n"/>
+<l:template name="equation" text="Enačba %n"/>
+<l:template name="example" text="Primer %n"/>
+<l:template name="figure" text="Slika %n"/>
+<l:template name="part" text="Del %n"/>
+<l:template name="procedure" text="Postopek %n"/>
+<l:template name="productionset" text="Izdelava %n"/>
+<l:template name="qandadiv" text="V in O %n"/>
+<l:template name="qandaentry" text="V: %n"/>
+<l:template name="question" text="V: %n"/>
+<l:template name="sect1" text="Razdelek %n"/>
+<l:template name="sect2" text="Razdelek %n"/>
+<l:template name="sect3" text="Razdelek %n"/>
+<l:template name="sect4" text="Razdelek %n"/>
+<l:template name="sect5" text="Razdelek %n"/>
+<l:template name="section" text="Razdelek %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Dodatek %n, %t"/>
+<l:template name="bridgehead" text="Razdelek %n, “%t”"/>
+<l:template name="chapter" text="Poglavje %n, %t"/>
+<l:template name="equation" text="Enačba %n, “%t”"/>
+<l:template name="example" text="Primer %n, “%t”"/>
+<l:template name="figure" text="Slika %n, “%t”"/>
+<l:template name="part" text="Del %n, “%t”"/>
+<l:template name="procedure" text="Postopek %n, “%t”"/>
+<l:template name="productionset" text="Izdelava %n, “%t”"/>
+<l:template name="qandadiv" text="V in O %n, “%t”"/>
+<l:template name="refsect1" text="razdelek, imenovan “%t”"/>
+<l:template name="refsect2" text="razdelek, imenovan “%t”"/>
+<l:template name="refsect3" text="razdelek, imenovan “%t”"/>
+<l:template name="refsection" text="razdelek, imenovan “%t”"/>
+<l:template name="sect1" text="Razdelek %n, “%t”"/>
+<l:template name="sect2" text="Razdelek %n, “%t”"/>
+<l:template name="sect3" text="Razdelek %n, “%t”"/>
+<l:template name="sect4" text="Razdelek %n, “%t”"/>
+<l:template name="sect5" text="Razdelek %n, “%t”"/>
+<l:template name="section" text="Razdelek %n, “%t”"/>
+<l:template name="simplesect" text="razdelek, imenovan “%t”"/>
+<l:template name="table" text="Tabela %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" in "/>
+<l:template name="seplast" text=", in "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="glej %t."/>
+<l:template name="seealso" text="glej tudi %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Občinstvo: "/>
+<l:template name="MsgLevel" text="Raven: "/>
+<l:template name="MsgOrig" text="Izvor: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0424 Slovenian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/sq.xml b/applications/content/template/docbook/common/sq.xml
new file mode 100644
index 0000000..0f6b3d7
--- /dev/null
+++ b/applications/content/template/docbook/common/sq.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sq" english-language-name="Albanian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/sq.xml -->
+<!-- * -->
+<!-- * E-mail the edited sq.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Përshkrimi"/>
+<l:gentext key="abstract" text="Përshkrimi"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="P:"/>
+<l:gentext key="answer" text="P:"/>
+<l:gentext key="Appendix" text="Shtesë"/>
+<l:gentext key="appendix" text="Shtesë"/>
+<l:gentext key="Article" text="Artikull"/>
+<l:gentext key="article" text="Artikull"/>
+<l:gentext key="Author" text="Autorë"/>
+<l:gentext key="Bibliography" text="Bibliografia"/>
+<l:gentext key="bibliography" text="Bibliografia"/>
+<l:gentext key="Book" text="Libri"/>
+<l:gentext key="book" text="Libri"/>
+<l:gentext key="CAUTION" text="KUJDES"/>
+<l:gentext key="Caution" text="Kujdes"/>
+<l:gentext key="caution" text="Kujdes"/>
+<l:gentext key="Chapter" text="Kapitulli"/>
+<l:gentext key="chapter" text="kapitulli"/>
+<l:gentext key="Colophon" text="Shënime publikimi"/>
+<l:gentext key="colophon" text="shënime publikimi"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Përkushtim"/>
+<l:gentext key="dedication" text="Përkushtim"/>
+<l:gentext key="Edition" text="Versioni"/>
+<l:gentext key="edition" text="Versioni"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Ekuacion"/>
+<l:gentext key="equation" text="Ekuacion"/>
+<l:gentext key="Example" text="Shembull"/>
+<l:gentext key="example" text="Shembull"/>
+<l:gentext key="Figure" text="Figura"/>
+<l:gentext key="figure" text="Figura"/>
+<l:gentext key="Glossary" text="Fjalori"/>
+<l:gentext key="glossary" text="Fjalori"/>
+<l:gentext key="GlossSee" text="Shiko"/>
+<l:gentext key="glosssee" text="Shiko"/>
+<l:gentext key="GlossSeeAlso" text="Shiko Edhe"/>
+<l:gentext key="glossseealso" text="Shiko Edhe"/>
+<l:gentext key="IMPORTANT" text="ME RËNDËSI"/>
+<l:gentext key="important" text="Me rëndësi"/>
+<l:gentext key="Important" text="Me rëndësi"/>
+<l:gentext key="Index" text="Treguesi"/>
+<l:gentext key="index" text="Treguesi"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Shënime Legale"/>
+<l:gentext key="legalnotice" text="Shënime Legale"/>
+<l:gentext key="MsgAud" text="Publiku"/>
+<l:gentext key="msgaud" text="Publiku"/>
+<l:gentext key="MsgLevel" text="Niveli"/>
+<l:gentext key="msglevel" text="Niveli"/>
+<l:gentext key="MsgOrig" text="Origjina"/>
+<l:gentext key="msgorig" text="Origjina"/>
+<l:gentext key="NOTE" text="SHËNIM"/>
+<l:gentext key="Note" text="Shënim"/>
+<l:gentext key="note" text="Shënim"/>
+<l:gentext key="Part" text="Pjesa"/>
+<l:gentext key="part" text="Pjesa"/>
+<l:gentext key="Preface" text="Parathënie"/>
+<l:gentext key="preface" text="Parathënie"/>
+<l:gentext key="Procedure" text="Proçedura"/>
+<l:gentext key="procedure" text="Proçedura"/>
+<l:gentext key="ProductionSet" text="Prodhimi"/>
+<l:gentext key="PubDate" text="Data Publikimit"/>
+<l:gentext key="pubdate" text="Data e publikimit"/>
+<l:gentext key="Published" text="Publikuar"/>
+<l:gentext key="published" text="Publikuar"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="P &amp; P"/>
+<l:gentext key="qandadiv" text="P &amp; P"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Q:"/>
+<l:gentext key="question" text="Q:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Riferim"/>
+<l:gentext key="reference" text="Riferim"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Emri"/>
+<l:gentext key="refname" text="Emri"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Përshkrimi"/>
+<l:gentext key="refsynopsisdiv" text="Përshkrimi"/>
+<l:gentext key="RevHistory" text="Ditari i Revizioneve"/>
+<l:gentext key="revhistory" text="Ditari i Revizioneve"/>
+<l:gentext key="revision" text="Revizioni"/>
+<l:gentext key="Revision" text="Revizioni"/>
+<l:gentext key="sect1" text="Seksioni"/>
+<l:gentext key="sect2" text="Seksioni"/>
+<l:gentext key="sect3" text="Seksioni"/>
+<l:gentext key="sect4" text="Seksioni"/>
+<l:gentext key="sect5" text="Seksioni"/>
+<l:gentext key="section" text="Seksioni"/>
+<l:gentext key="Section" text="Seksioni"/>
+<l:gentext key="see" text="shiko"/>
+<l:gentext key="See" text="Shiko"/>
+<l:gentext key="seealso" text="shiko gjithashtu"/>
+<l:gentext key="Seealso" text="Shiko gjithashtu"/>
+<l:gentext key="SeeAlso" text="Shiko Gjithashtu"/>
+<l:gentext key="set" text="Përmbledhje"/>
+<l:gentext key="Set" text="Përmbledhje"/>
+<l:gentext key="setindex" text="Treguesi i Përmbledhjes"/>
+<l:gentext key="SetIndex" text="Treguesi i Përmbledhjes"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="shënim anësor"/>
+<l:gentext key="step" text="hapi"/>
+<l:gentext key="Step" text="Hapi"/>
+<l:gentext key="table" text="Tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Propozim"/>
+<l:gentext key="TIP" text="PROPOZIM"/>
+<l:gentext key="Tip" text="Propozim"/>
+<l:gentext key="Warning" text="Paralajmërim"/>
+<l:gentext key="warning" text="Paralajmërim"/>
+<l:gentext key="WARNING" text="PARALAJMËRIM"/>
+<l:gentext key="and" text="dhe"/>
+<l:gentext key="or" text="ose"/>
+<l:gentext key="by" text="nga"/>
+<l:gentext key="Edited" text="Shkruar"/>
+<l:gentext key="edited" text="Shkruar"/>
+<l:gentext key="Editedby" text="Shkruar nga"/>
+<l:gentext key="editedby" text="Shkruar nga"/>
+<l:gentext key="in" text="në"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Shënime"/>
+<l:gentext key="Notes" text="Shënime"/>
+<l:gentext key="Pgs" text="Fq."/>
+<l:gentext key="pgs" text="Fq."/>
+<l:gentext key="Revisedby" text="Rishikuar nga: "/>
+<l:gentext key="revisedby" text="Rishikuar nga: "/>
+<l:gentext key="TableNotes" text="Shënime"/>
+<l:gentext key="tablenotes" text="Shënime"/>
+<l:gentext key="TableofContents" text="Tabela e përmbajtjes"/>
+<l:gentext key="tableofcontents" text="Tabela e Përmbajtjes"/>
+<l:gentext key="unexpectedelementname" text="Emër i papritur elementi"/>
+<l:gentext key="unsupported" text="nuk suportohet"/>
+<l:gentext key="xrefto" text="riferiment me"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Lista e Ekuacioneve"/>
+<l:gentext key="ListofEquations" text="Lista e Ekuacioneve"/>
+<l:gentext key="ListofExamples" text="Lista e Shembujve"/>
+<l:gentext key="listofexamples" text="Lista e Shembujve"/>
+<l:gentext key="ListofFigures" text="Lista e Figurave"/>
+<l:gentext key="listoffigures" text="Lista e Figurave"/>
+<l:gentext key="ListofProcedures" text="Lista e Proçedurave"/>
+<l:gentext key="listofprocedures" text="Lista e Proçedurave"/>
+<l:gentext key="listoftables" text="Lista e Tabelave"/>
+<l:gentext key="ListofTables" text="Lista e Tabelave"/>
+<l:gentext key="ListofUnknown" text="Lista e të Panjohurave"/>
+<l:gentext key="listofunknown" text="Lista e të Panjohurave"/>
+<l:gentext key="nav-home" text="Fillimi"/>
+<l:gentext key="nav-next" text="Vazhdo"/>
+<l:gentext key="nav-next-sibling" text="Para me Shpejtësi"/>
+<l:gentext key="nav-prev" text="Mbrapa"/>
+<l:gentext key="nav-prev-sibling" text="Mbrapsht me Shpejtësi"/>
+<l:gentext key="nav-up" text="Sipër"/>
+<l:gentext key="nav-toc" text="TeP"/>
+<l:gentext key="Draft" text="Kopje prove"/>
+<l:gentext key="above" text="sipër"/>
+<l:gentext key="below" text="poshtë"/>
+<l:gentext key="sectioncalled" text="seksioni i quajtur"/>
+<l:gentext key="index symbols" text="Simbole"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Shtesë %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapitulli %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ekuacion %n. %t"/>
+<l:template name="example" text="Shembull %n. %t"/>
+<l:template name="figure" text="Figura %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Pjesa %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Proçedura %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Prodhimi %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Shtesë %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Kapitulli %n. %t"/>
+<l:template name="part" text="Pjesa %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="P: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="seksioni i quajtur “%t”"/>
+<l:template name="refsection" text="seksioni i quajtur “%t”"/>
+<l:template name="refsect1" text="seksioni i quajtur “%t”"/>
+<l:template name="refsect2" text="seksioni i quajtur “%t”"/>
+<l:template name="refsect3" text="seksioni i quajtur “%t”"/>
+<l:template name="sect1" text="seksioni i quajtur “%t”"/>
+<l:template name="sect2" text="seksioni i quajtur “%t”"/>
+<l:template name="sect3" text="seksioni i quajtur “%t”"/>
+<l:template name="sect4" text="seksioni i quajtur “%t”"/>
+<l:template name="sect5" text="seksioni i quajtur “%t”"/>
+<l:template name="section" text="seksioni i quajtur “%t”"/>
+<l:template name="simplesect" text="seksioni i quajtur “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="P: %n"/>
+<l:template name="appendix" text="Shtesë %n"/>
+<l:template name="bridgehead" text="Seksioni %n"/>
+<l:template name="chapter" text="Kapitulli %n"/>
+<l:template name="equation" text="Ekuacion %n"/>
+<l:template name="example" text="Shembull %n"/>
+<l:template name="figure" text="Figura %n"/>
+<l:template name="part" text="Pjesa %n"/>
+<l:template name="procedure" text="Proçedura %n"/>
+<l:template name="productionset" text="Prodhimi %n"/>
+<l:template name="qandadiv" text="P &amp; P %n"/>
+<l:template name="qandaentry" text="Q: %n"/>
+<l:template name="question" text="Q: %n"/>
+<l:template name="sect1" text="Seksioni %n"/>
+<l:template name="sect2" text="Seksioni %n"/>
+<l:template name="sect3" text="Seksioni %n"/>
+<l:template name="sect4" text="Seksioni %n"/>
+<l:template name="sect5" text="Seksioni %n"/>
+<l:template name="section" text="Seksioni %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Shtesë %n, %t"/>
+<l:template name="bridgehead" text="Seksioni %n, “%t”"/>
+<l:template name="chapter" text="Kapitulli %n, %t"/>
+<l:template name="equation" text="Ekuacion %n, “%t”"/>
+<l:template name="example" text="Shembull %n, “%t”"/>
+<l:template name="figure" text="Figura %n, “%t”"/>
+<l:template name="part" text="Pjesa %n, “%t”"/>
+<l:template name="procedure" text="Proçedura %n, “%t”"/>
+<l:template name="productionset" text="Prodhimi %n, “%t”"/>
+<l:template name="qandadiv" text="P &amp; P %n, “%t”"/>
+<l:template name="refsect1" text="seksioni i quajtur “%t”"/>
+<l:template name="refsect2" text="seksioni i quajtur “%t”"/>
+<l:template name="refsect3" text="seksioni i quajtur “%t”"/>
+<l:template name="refsection" text="seksioni i quajtur “%t”"/>
+<l:template name="sect1" text="Seksioni %n, “%t”"/>
+<l:template name="sect2" text="Seksioni %n, “%t”"/>
+<l:template name="sect3" text="Seksioni %n, “%t”"/>
+<l:template name="sect4" text="Seksioni %n, “%t”"/>
+<l:template name="sect5" text="Seksioni %n, “%t”"/>
+<l:template name="section" text="Seksioni %n, “%t”"/>
+<l:template name="simplesect" text="seksioni i quajtur “%t”"/>
+<l:template name="table" text="Tabela %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" dhe "/>
+<l:template name="seplast" text=", dhe "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Shiko %t."/>
+<l:template name="seealso" text="Shiko Edhe %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Publiku: "/>
+<l:template name="MsgLevel" text="Niveli: "/>
+<l:template name="MsgOrig" text="Origjina: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Janar"/>
+<l:template name="February" text="Shkurt"/>
+<l:template name="March" text="Mars"/>
+<l:template name="April" text="Prill"/>
+<l:template name="May" text="Maj"/>
+<l:template name="June" text="Qershor"/>
+<l:template name="July" text="Korrik"/>
+<l:template name="August" text="Gusht"/>
+<l:template name="September" text="Shtator"/>
+<l:template name="October" text="Tetor"/>
+<l:template name="November" text="Nëntor"/>
+<l:template name="December" text="Dhjetor"/>
+<l:template name="Monday" text="E hënë"/>
+<l:template name="Tuesday" text="E martë"/>
+<l:template name="Wednesday" text="E mërkurë"/>
+<l:template name="Thursday" text="E enjte"/>
+<l:template name="Friday" text="E premte"/>
+<l:template name="Saturday" text="E shtunë"/>
+<l:template name="Sunday" text="E djelë"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Shk"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Pri"/>
+<l:template name="May" text="Maj"/>
+<l:template name="Jun" text="Qer"/>
+<l:template name="Jul" text="Kor"/>
+<l:template name="Aug" text="Gsh"/>
+<l:template name="Sep" text="Sht"/>
+<l:template name="Oct" text="Tet"/>
+<l:template name="Nov" text="Nën"/>
+<l:template name="Dec" text="Dhj"/>
+<l:template name="Mon" text="Hën"/>
+<l:template name="Tue" text="Mar"/>
+<l:template name="Wed" text="Mër"/>
+<l:template name="Thu" text="Enj"/>
+<l:template name="Fri" text="Pre"/>
+<l:template name="Sat" text="Sht"/>
+<l:template name="Sun" text="Dje"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x041c Albanian (ALBANIA)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/sr.xml b/applications/content/template/docbook/common/sr.xml
new file mode 100644
index 0000000..1f43f0d
--- /dev/null
+++ b/applications/content/template/docbook/common/sr.xml
@@ -0,0 +1,738 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sr" english-language-name="Serbian in Cyrillic script">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/sr.xml -->
+<!-- * -->
+<!-- * E-mail the edited sr.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Сажетак"/>
+<l:gentext key="abstract" text="сажетак"/>
+<l:gentext key="Acknowledgements" text="Признања"/>
+<l:gentext key="acknowledgements" text="признања"/>
+<l:gentext key="Answer" text="О:"/>
+<l:gentext key="answer" text="о:"/>
+<l:gentext key="Appendix" text="Додатак"/>
+<l:gentext key="appendix" text="додатак"/>
+<l:gentext key="Article" text="Чланак"/>
+<l:gentext key="article" text="чланак"/>
+<l:gentext key="Author" text="Аутор"/>
+<l:gentext key="Bibliography" text="Литература"/>
+<l:gentext key="bibliography" text="литература"/>
+<l:gentext key="Book" text="Књига"/>
+<l:gentext key="book" text="књига"/>
+<l:gentext key="CAUTION" text="УПОЗОРЕЊЕ"/>
+<l:gentext key="Caution" text="Упозорење"/>
+<l:gentext key="caution" text="упозорење"/>
+<l:gentext key="Chapter" text="Поглавље"/>
+<l:gentext key="chapter" text="поглавље"/>
+<l:gentext key="Colophon" text="Колофон"/>
+<l:gentext key="colophon" text="колофон"/>
+<l:gentext key="Copyright" text="Ауторска права"/>
+<l:gentext key="copyright" text="ауторска права"/>
+<l:gentext key="Dedication" text="Посвета"/>
+<l:gentext key="dedication" text="посвета"/>
+<l:gentext key="Edition" text="Издање"/>
+<l:gentext key="edition" text="издање"/>
+<l:gentext key="Editor" text="Уредник"/>
+<l:gentext key="Equation" text="Једначина"/>
+<l:gentext key="equation" text="једначина"/>
+<l:gentext key="Example" text="Пример"/>
+<l:gentext key="example" text="пример"/>
+<l:gentext key="Figure" text="Слика"/>
+<l:gentext key="figure" text="слика"/>
+<l:gentext key="Glossary" text="Речник"/>
+<l:gentext key="glossary" text="речник"/>
+<l:gentext key="GlossSee" text="Види"/>
+<l:gentext key="glosssee" text="види"/>
+<l:gentext key="GlossSeeAlso" text="Види такође"/>
+<l:gentext key="glossseealso" text="види такође"/>
+<l:gentext key="IMPORTANT" text="ВАЖНО"/>
+<l:gentext key="important" text="важно"/>
+<l:gentext key="Important" text="Важно"/>
+<l:gentext key="Index" text="Индекс"/>
+<l:gentext key="index" text="индекс"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Правна напомена"/>
+<l:gentext key="legalnotice" text="правна напомена"/>
+<l:gentext key="MsgAud" text="Публика"/>
+<l:gentext key="msgaud" text="публика"/>
+<l:gentext key="MsgLevel" text="Ниво"/>
+<l:gentext key="msglevel" text="ниво"/>
+<l:gentext key="MsgOrig" text="Извор"/>
+<l:gentext key="msgorig" text="извор"/>
+<l:gentext key="NOTE" text="ПРИМЕДБА"/>
+<l:gentext key="Note" text="Примедба"/>
+<l:gentext key="note" text="примедба"/>
+<l:gentext key="Part" text="Део"/>
+<l:gentext key="part" text="део"/>
+<l:gentext key="Preface" text="Предговор"/>
+<l:gentext key="preface" text="предговор"/>
+<l:gentext key="Procedure" text="Поступак"/>
+<l:gentext key="procedure" text="поступак"/>
+<l:gentext key="ProductionSet" text="Продукција"/>
+<l:gentext key="PubDate" text="Датум издавања"/>
+<l:gentext key="pubdate" text="датум издавања"/>
+<l:gentext key="Published" text="Издано"/>
+<l:gentext key="published" text="издано"/>
+<l:gentext key="Publisher" text="Издавач"/>
+<l:gentext key="Qandadiv" text="П и О"/>
+<l:gentext key="qandadiv" text="п и о"/>
+<l:gentext key="QandASet" text="Често постављана питања"/>
+<l:gentext key="Question" text="П:"/>
+<l:gentext key="question" text="п:"/>
+<l:gentext key="RefEntry" text="Страница"/>
+<l:gentext key="refentry" text="страница"/>
+<l:gentext key="Reference" text="Референца"/>
+<l:gentext key="reference" text="референца"/>
+<l:gentext key="References" text="Референце"/>
+<l:gentext key="RefName" text="Име"/>
+<l:gentext key="refname" text="име"/>
+<l:gentext key="RefSection" text="Одељак"/>
+<l:gentext key="refsection" text="одељак"/>
+<l:gentext key="RefSynopsisDiv" text="Преглед"/>
+<l:gentext key="refsynopsisdiv" text="преглед"/>
+<l:gentext key="RevHistory" text="Историја ревизија"/>
+<l:gentext key="revhistory" text="историја ревизија"/>
+<l:gentext key="revision" text="ревизија"/>
+<l:gentext key="Revision" text="Ревизија"/>
+<l:gentext key="sect1" text="Одељак"/>
+<l:gentext key="sect2" text="Одељак"/>
+<l:gentext key="sect3" text="Одељак"/>
+<l:gentext key="sect4" text="Одељак"/>
+<l:gentext key="sect5" text="Одељак"/>
+<l:gentext key="section" text="одељак"/>
+<l:gentext key="Section" text="Одељак"/>
+<l:gentext key="see" text="види"/>
+<l:gentext key="See" text="Види"/>
+<l:gentext key="seealso" text="види такође"/>
+<l:gentext key="Seealso" text="Види такође"/>
+<l:gentext key="SeeAlso" text="Види такође"/>
+<l:gentext key="set" text="скуп"/>
+<l:gentext key="Set" text="Скуп"/>
+<l:gentext key="setindex" text="индекс скупа"/>
+<l:gentext key="SetIndex" text="Индекс скупа"/>
+<l:gentext key="Sidebar" text="Бочна трака"/>
+<l:gentext key="sidebar" text="бочна трака"/>
+<l:gentext key="step" text="корак"/>
+<l:gentext key="Step" text="Корак"/>
+<l:gentext key="table" text="табела"/>
+<l:gentext key="Table" text="Табела"/>
+<l:gentext key="task" text="задатак"/>
+<l:gentext key="Task" text="Задатак"/>
+<l:gentext key="tip" text="савет"/>
+<l:gentext key="TIP" text="САВЕТ"/>
+<l:gentext key="Tip" text="Савет"/>
+<l:gentext key="Warning" text="Упозорење"/>
+<l:gentext key="warning" text="упозорење"/>
+<l:gentext key="WARNING" text="УПОЗОРЕЊЕ"/>
+<l:gentext key="and" text="и"/>
+<l:gentext key="or" text="или"/>
+<l:gentext key="by" text="од"/>
+<l:gentext key="Edited" text="Уређено"/>
+<l:gentext key="edited" text="уређено"/>
+<l:gentext key="Editedby" text="Уредио(ла)"/>
+<l:gentext key="editedby" text="Уредио(ла)"/>
+<l:gentext key="in" text="у"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="примедбе"/>
+<l:gentext key="Notes" text="Примедбе"/>
+<l:gentext key="Pgs" text="Стр."/>
+<l:gentext key="pgs" text="стр."/>
+<l:gentext key="Revisedby" text="Прегледао(ла): "/>
+<l:gentext key="revisedby" text="прегледао(ла): "/>
+<l:gentext key="TableNotes" text="Примедбе"/>
+<l:gentext key="tablenotes" text="примедбе"/>
+<l:gentext key="TableofContents" text="Садржај"/>
+<l:gentext key="tableofcontents" text="садржај"/>
+<l:gentext key="unexpectedelementname" text="неочекивано име елемента"/>
+<l:gentext key="unsupported" text="није подржано"/>
+<l:gentext key="xrefto" text="унакрсна референца на"/>
+<l:gentext key="Authors" text="Аутори"/>
+<l:gentext key="copyeditor" text="Издавачки уредник"/>
+<l:gentext key="graphicdesigner" text="Графички дизајнер"/>
+<l:gentext key="productioneditor" text="Извршни уредник"/>
+<l:gentext key="technicaleditor" text="Технички уредник"/>
+<l:gentext key="translator" text="Преводилац"/>
+<l:gentext key="listofequations" text="списак једначина"/>
+<l:gentext key="ListofEquations" text="Списак једначина"/>
+<l:gentext key="ListofExamples" text="Списак примера"/>
+<l:gentext key="listofexamples" text="списак примера"/>
+<l:gentext key="ListofFigures" text="Списак слика"/>
+<l:gentext key="listoffigures" text="списак слика"/>
+<l:gentext key="ListofProcedures" text="Списак поступака"/>
+<l:gentext key="listofprocedures" text="списак поступака"/>
+<l:gentext key="listoftables" text="списак табела"/>
+<l:gentext key="ListofTables" text="Списак табела"/>
+<l:gentext key="ListofUnknown" text="списак непознатих"/>
+<l:gentext key="listofunknown" text="Списак непознатих"/>
+<l:gentext key="nav-home" text="Почетак"/>
+<l:gentext key="nav-next" text="Следећи"/>
+<l:gentext key="nav-next-sibling" text="Брзо напред"/>
+<l:gentext key="nav-prev" text="Претходни"/>
+<l:gentext key="nav-prev-sibling" text="Брзо назад"/>
+<l:gentext key="nav-up" text="Врх"/>
+<l:gentext key="nav-toc" text="Садр."/>
+<l:gentext key="Draft" text="Нацрт"/>
+<l:gentext key="above" text="изнад"/>
+<l:gentext key="below" text="испод"/>
+<l:gentext key="sectioncalled" text="одељак под именом"/>
+<l:gentext key="index symbols" text="Симболи"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="абвгдђежзијклљмнњопрстћуфхцчџш"/>
+<l:gentext key="uppercase.alpha" text="АБВГДЂЕЖЗИЈКЛЉМНЊОПРСТЋУФХЦЧЏШ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="“"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="име-презиме"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Додатак %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Поглавље %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Једначина %n. %t"/>
+<l:template name="example" text="Пример %n. %t"/>
+<l:template name="figure" text="Слика %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Део %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Поступак %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Продукција %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Табела %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Додатак %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Поглавље %n. %t"/>
+<l:template name="part" text="Део %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="О: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="П: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="П: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" у %o"/>
+<l:template name="olink.page.citation" text=" (стр. %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(страна %p)"/>
+<l:template name="docname" text=" у %o"/>
+<l:template name="docnamelong" text=" у документу са насловом %o"/>
+<l:template name="pageabbrev" text="(стр. %p)"/>
+<l:template name="Page" text="Страна %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="одељак под именом „%t“"/>
+<l:template name="refsection" text="одељак под именом „%t“"/>
+<l:template name="refsect1" text="одељак под именом „%t“"/>
+<l:template name="refsect2" text="одељак под именом „%t“"/>
+<l:template name="refsect3" text="одељак под именом „%t“"/>
+<l:template name="sect1" text="одељак под именом „%t“"/>
+<l:template name="sect2" text="одељак под именом „%t“"/>
+<l:template name="sect3" text="одељак под именом „%t“"/>
+<l:template name="sect4" text="одељак под именом „%t“"/>
+<l:template name="sect5" text="одељак под именом „%t“"/>
+<l:template name="section" text="одељак под именом „%t“"/>
+<l:template name="simplesect" text="одељак под именом „%t“"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="О: %n"/>
+<l:template name="appendix" text="Додатак %n"/>
+<l:template name="bridgehead" text="Одељак %n"/>
+<l:template name="chapter" text="Поглавље %n"/>
+<l:template name="equation" text="Једначина %n"/>
+<l:template name="example" text="Пример %n"/>
+<l:template name="figure" text="Слика %n"/>
+<l:template name="part" text="Део %n"/>
+<l:template name="procedure" text="Поступак %n"/>
+<l:template name="productionset" text="Продукција %n"/>
+<l:template name="qandadiv" text="П и О %n"/>
+<l:template name="qandaentry" text="П: %n"/>
+<l:template name="question" text="П: %n"/>
+<l:template name="sect1" text="Одељак %n"/>
+<l:template name="sect2" text="Одељак %n"/>
+<l:template name="sect3" text="Одељак %n"/>
+<l:template name="sect4" text="Одељак %n"/>
+<l:template name="sect5" text="Одељак %n"/>
+<l:template name="section" text="Одељак %n"/>
+<l:template name="table" text="Табела %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Додатак %n, %t"/>
+<l:template name="bridgehead" text="Одељак %n, „%t“"/>
+<l:template name="chapter" text="Поглавље %n, %t"/>
+<l:template name="equation" text="Једначина %n, „%t“"/>
+<l:template name="example" text="Пример %n, „%t“"/>
+<l:template name="figure" text="Слика %n, „%t“"/>
+<l:template name="part" text="Део %n, „%t“"/>
+<l:template name="procedure" text="Поступак %n, „%t“"/>
+<l:template name="productionset" text="Продукција %n, „%t“"/>
+<l:template name="qandadiv" text="П и О %n, „%t“"/>
+<l:template name="refsect1" text="одељак под именом „%t“"/>
+<l:template name="refsect2" text="одељак под именом „%t“"/>
+<l:template name="refsect3" text="одељак под именом „%t“"/>
+<l:template name="refsection" text="одељак под именом „%t“"/>
+<l:template name="sect1" text="Одељак %n, „%t“"/>
+<l:template name="sect2" text="Одељак %n, „%t“"/>
+<l:template name="sect3" text="Одељак %n, „%t“"/>
+<l:template name="sect4" text="Одељак %n, „%t“"/>
+<l:template name="sect5" text="Одељак %n, „%t“"/>
+<l:template name="section" text="Одељак %n, „%t“"/>
+<l:template name="simplesect" text="одељак под именом „%t“"/>
+<l:template name="table" text="Табела %n, „%t“"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" и "/>
+<l:template name="seplast" text=", и "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Види %t."/>
+<l:template name="seealso" text="Види такође %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Публика: "/>
+<l:template name="MsgLevel" text="Ниво: "/>
+<l:template name="MsgOrig" text="Извор: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d.m.Y."/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Дефиниција: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="јануар"/>
+<l:template name="February" text="фебруар"/>
+<l:template name="March" text="март"/>
+<l:template name="April" text="април"/>
+<l:template name="May" text="мај"/>
+<l:template name="June" text="јун"/>
+<l:template name="July" text="јул"/>
+<l:template name="August" text="август"/>
+<l:template name="September" text="септембар"/>
+<l:template name="October" text="октобар"/>
+<l:template name="November" text="новембар"/>
+<l:template name="December" text="децембар"/>
+<l:template name="Monday" text="понедељак"/>
+<l:template name="Tuesday" text="уторак"/>
+<l:template name="Wednesday" text="среда"/>
+<l:template name="Thursday" text="четвртак"/>
+<l:template name="Friday" text="петак"/>
+<l:template name="Saturday" text="субота"/>
+<l:template name="Sunday" text="недеља"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="јан"/>
+<l:template name="Feb" text="феб"/>
+<l:template name="Mar" text="мар"/>
+<l:template name="Apr" text="апр"/>
+<l:template name="May" text="мај"/>
+<l:template name="Jun" text="јун"/>
+<l:template name="Jul" text="јул"/>
+<l:template name="Aug" text="авг"/>
+<l:template name="Sep" text="сеп"/>
+<l:template name="Oct" text="окт"/>
+<l:template name="Nov" text="нов"/>
+<l:template name="Dec" text="дец"/>
+<l:template name="Mon" text="пон"/>
+<l:template name="Tue" text="уто"/>
+<l:template name="Wed" text="сре"/>
+<l:template name="Thu" text="чет"/>
+<l:template name="Fri" text="пет"/>
+<l:template name="Sat" text="суб"/>
+<l:template name="Sun" text="нед"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0C1A Serbian (Cyrillic)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Симболи</l:l>
+<l:l i="1">А</l:l>
+<l:l i="1">а</l:l>
+<l:l i="2">Б</l:l>
+<l:l i="2">б</l:l>
+<l:l i="3">В</l:l>
+<l:l i="3">в</l:l>
+<l:l i="4">Г</l:l>
+<l:l i="4">г</l:l>
+<l:l i="5">Д</l:l>
+<l:l i="5">д</l:l>
+<l:l i="6">Ђ</l:l>
+<l:l i="6">ђ</l:l>
+<l:l i="7">Е</l:l>
+<l:l i="7">е</l:l>
+<l:l i="8">Ж</l:l>
+<l:l i="8">ж</l:l>
+<l:l i="9">З</l:l>
+<l:l i="9">з</l:l>
+<l:l i="10">И</l:l>
+<l:l i="10">и</l:l>
+<l:l i="11">Ј</l:l>
+<l:l i="11">ј</l:l>
+<l:l i="12">К</l:l>
+<l:l i="12">к</l:l>
+<l:l i="13">Л</l:l>
+<l:l i="13">л</l:l>
+<l:l i="14">Љ</l:l>
+<l:l i="14">љ</l:l>
+<l:l i="15">М</l:l>
+<l:l i="15">м</l:l>
+<l:l i="16">Н</l:l>
+<l:l i="16">н</l:l>
+<l:l i="17">Њ</l:l>
+<l:l i="17">њ</l:l>
+<l:l i="18">О</l:l>
+<l:l i="18">о</l:l>
+<l:l i="19">П</l:l>
+<l:l i="19">п</l:l>
+<l:l i="20">Р</l:l>
+<l:l i="20">р</l:l>
+<l:l i="21">С</l:l>
+<l:l i="21">с</l:l>
+<l:l i="22">Т</l:l>
+<l:l i="22">т</l:l>
+<l:l i="23">Ћ</l:l>
+<l:l i="23">ћ</l:l>
+<l:l i="24">У</l:l>
+<l:l i="24">у</l:l>
+<l:l i="25">Ф</l:l>
+<l:l i="25">ф</l:l>
+<l:l i="26">Х</l:l>
+<l:l i="26">х</l:l>
+<l:l i="27">Ц</l:l>
+<l:l i="27">ц</l:l>
+<l:l i="28">Ч</l:l>
+<l:l i="28">ч</l:l>
+<l:l i="29">Џ</l:l>
+<l:l i="29">џ</l:l>
+<l:l i="30">Ш</l:l>
+<l:l i="30">ш</l:l>
+<l:l i="31">A</l:l>
+<l:l i="31">a</l:l>
+<l:l i="32">B</l:l>
+<l:l i="32">b</l:l>
+<l:l i="33">C</l:l>
+<l:l i="33">c</l:l>
+<l:l i="34">D</l:l>
+<l:l i="34">d</l:l>
+<l:l i="35">E</l:l>
+<l:l i="35">e</l:l>
+<l:l i="36">F</l:l>
+<l:l i="36">f</l:l>
+<l:l i="37">G</l:l>
+<l:l i="37">g</l:l>
+<l:l i="38">H</l:l>
+<l:l i="38">h</l:l>
+<l:l i="39">I</l:l>
+<l:l i="39">i</l:l>
+<l:l i="40">J</l:l>
+<l:l i="40">j</l:l>
+<l:l i="41">K</l:l>
+<l:l i="41">k</l:l>
+<l:l i="42">L</l:l>
+<l:l i="42">l</l:l>
+<l:l i="43">M</l:l>
+<l:l i="43">m</l:l>
+<l:l i="44">N</l:l>
+<l:l i="44">n</l:l>
+<l:l i="45">O</l:l>
+<l:l i="45">o</l:l>
+<l:l i="46">P</l:l>
+<l:l i="46">p</l:l>
+<l:l i="47">Q</l:l>
+<l:l i="47">Q</l:l>
+<l:l i="48">R</l:l>
+<l:l i="48">r</l:l>
+<l:l i="49">S</l:l>
+<l:l i="49">s</l:l>
+<l:l i="50">T</l:l>
+<l:l i="50">t</l:l>
+<l:l i="51">U</l:l>
+<l:l i="51">u</l:l>
+<l:l i="52">V</l:l>
+<l:l i="52">v</l:l>
+<l:l i="53">W</l:l>
+<l:l i="53">w</l:l>
+<l:l i="54">X</l:l>
+<l:l i="54">x</l:l>
+<l:l i="55">Y</l:l>
+<l:l i="55">y</l:l>
+<l:l i="56">Z</l:l>
+<l:l i="56">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/sr_Latn.xml b/applications/content/template/docbook/common/sr_Latn.xml
new file mode 100644
index 0000000..78789eb
--- /dev/null
+++ b/applications/content/template/docbook/common/sr_Latn.xml
@@ -0,0 +1,697 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sr_latn" english-language-name="Serbian in Latin script">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/sr_Latn.xml -->
+<!-- * -->
+<!-- * E-mail the edited sr_Latn.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Sažetak"/>
+<l:gentext key="abstract" text="sažetak"/>
+<l:gentext key="Acknowledgements" text="Priznanja"/>
+<l:gentext key="acknowledgements" text="priznanja"/>
+<l:gentext key="Answer" text="O:"/>
+<l:gentext key="answer" text="o:"/>
+<l:gentext key="Appendix" text="Dodatak"/>
+<l:gentext key="appendix" text="dodatak"/>
+<l:gentext key="Article" text="Članak"/>
+<l:gentext key="article" text="članak"/>
+<l:gentext key="Author" text="Autor"/>
+<l:gentext key="Bibliography" text="Literatura"/>
+<l:gentext key="bibliography" text="literatura"/>
+<l:gentext key="Book" text="Knjiga"/>
+<l:gentext key="book" text="knjiga"/>
+<l:gentext key="CAUTION" text="UPOZORENJE"/>
+<l:gentext key="Caution" text="Upozorenje"/>
+<l:gentext key="caution" text="upozorenje"/>
+<l:gentext key="Chapter" text="Poglavlje"/>
+<l:gentext key="chapter" text="poglavlje"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="kolofon"/>
+<l:gentext key="Copyright" text="Autorska prava"/>
+<l:gentext key="copyright" text="autorska prava"/>
+<l:gentext key="Dedication" text="Posveta"/>
+<l:gentext key="dedication" text="posveta"/>
+<l:gentext key="Edition" text="Izdanje"/>
+<l:gentext key="edition" text="izdanje"/>
+<l:gentext key="Editor" text="Urednik"/>
+<l:gentext key="Equation" text="Jednačina"/>
+<l:gentext key="equation" text="jednačina"/>
+<l:gentext key="Example" text="Primer"/>
+<l:gentext key="example" text="primer"/>
+<l:gentext key="Figure" text="Slika"/>
+<l:gentext key="figure" text="slika"/>
+<l:gentext key="Glossary" text="Rečnik"/>
+<l:gentext key="glossary" text="rečnik"/>
+<l:gentext key="GlossSee" text="Vidi"/>
+<l:gentext key="glosssee" text="vidi"/>
+<l:gentext key="GlossSeeAlso" text="Vidi takođe"/>
+<l:gentext key="glossseealso" text="vidi takođe"/>
+<l:gentext key="IMPORTANT" text="VAŽNO"/>
+<l:gentext key="important" text="važno"/>
+<l:gentext key="Important" text="Važno"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Pravna napomena"/>
+<l:gentext key="legalnotice" text="pravna napomena"/>
+<l:gentext key="MsgAud" text="Publika"/>
+<l:gentext key="msgaud" text="publika"/>
+<l:gentext key="MsgLevel" text="Nivo"/>
+<l:gentext key="msglevel" text="nivo"/>
+<l:gentext key="MsgOrig" text="Izvor"/>
+<l:gentext key="msgorig" text="izvor"/>
+<l:gentext key="NOTE" text="PRIMEDBA"/>
+<l:gentext key="Note" text="Primedba"/>
+<l:gentext key="note" text="primedba"/>
+<l:gentext key="Part" text="Deo"/>
+<l:gentext key="part" text="deo"/>
+<l:gentext key="Preface" text="Predgovor"/>
+<l:gentext key="preface" text="predgovor"/>
+<l:gentext key="Procedure" text="Postupak"/>
+<l:gentext key="procedure" text="postupak"/>
+<l:gentext key="ProductionSet" text="Produkcija"/>
+<l:gentext key="PubDate" text="Datum izdavanja"/>
+<l:gentext key="pubdate" text="datum izdavanja"/>
+<l:gentext key="Published" text="Izdano"/>
+<l:gentext key="published" text="izdano"/>
+<l:gentext key="Publisher" text="Izdavač"/>
+<l:gentext key="Qandadiv" text="P i O"/>
+<l:gentext key="qandadiv" text="p i o"/>
+<l:gentext key="QandASet" text="Često postavljana pitanja"/>
+<l:gentext key="Question" text="P:"/>
+<l:gentext key="question" text="p:"/>
+<l:gentext key="RefEntry" text="Stranica"/>
+<l:gentext key="refentry" text="stranica"/>
+<l:gentext key="Reference" text="Referenca"/>
+<l:gentext key="reference" text="referenca"/>
+<l:gentext key="References" text="Reference"/>
+<l:gentext key="RefName" text="Ime"/>
+<l:gentext key="refname" text="ime"/>
+<l:gentext key="RefSection" text="Odeljak"/>
+<l:gentext key="refsection" text="odeljak"/>
+<l:gentext key="RefSynopsisDiv" text="Pregled"/>
+<l:gentext key="refsynopsisdiv" text="pregled"/>
+<l:gentext key="RevHistory" text="Istorija revizija"/>
+<l:gentext key="revhistory" text="istorija revizija"/>
+<l:gentext key="revision" text="revizija"/>
+<l:gentext key="Revision" text="Revizija"/>
+<l:gentext key="sect1" text="Odeljak"/>
+<l:gentext key="sect2" text="Odeljak"/>
+<l:gentext key="sect3" text="Odeljak"/>
+<l:gentext key="sect4" text="Odeljak"/>
+<l:gentext key="sect5" text="Odeljak"/>
+<l:gentext key="section" text="odeljak"/>
+<l:gentext key="Section" text="Odeljak"/>
+<l:gentext key="see" text="vidi"/>
+<l:gentext key="See" text="Vidi"/>
+<l:gentext key="seealso" text="vidi takođe"/>
+<l:gentext key="Seealso" text="Vidi takođe"/>
+<l:gentext key="SeeAlso" text="Vidi takođe"/>
+<l:gentext key="set" text="skup"/>
+<l:gentext key="Set" text="Skup"/>
+<l:gentext key="setindex" text="indeks skupa"/>
+<l:gentext key="SetIndex" text="Indeks skupa"/>
+<l:gentext key="Sidebar" text="Bočna traka"/>
+<l:gentext key="sidebar" text="bočna traka"/>
+<l:gentext key="step" text="korak"/>
+<l:gentext key="Step" text="Korak"/>
+<l:gentext key="table" text="tabela"/>
+<l:gentext key="Table" text="Tabela"/>
+<l:gentext key="task" text="zadatak"/>
+<l:gentext key="Task" text="Zadatak"/>
+<l:gentext key="tip" text="savet"/>
+<l:gentext key="TIP" text="SAVET"/>
+<l:gentext key="Tip" text="Savet"/>
+<l:gentext key="Warning" text="Upozorenje"/>
+<l:gentext key="warning" text="upozorenje"/>
+<l:gentext key="WARNING" text="UPOZORENJE"/>
+<l:gentext key="and" text="i"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="od"/>
+<l:gentext key="Edited" text="Uređeno"/>
+<l:gentext key="edited" text="uređeno"/>
+<l:gentext key="Editedby" text="Uredio(la)"/>
+<l:gentext key="editedby" text="Uredio(la)"/>
+<l:gentext key="in" text="u"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="primedbe"/>
+<l:gentext key="Notes" text="Primedbe"/>
+<l:gentext key="Pgs" text="Str."/>
+<l:gentext key="pgs" text="str."/>
+<l:gentext key="Revisedby" text="Pregledao(la): "/>
+<l:gentext key="revisedby" text="pregledao(la): "/>
+<l:gentext key="TableNotes" text="Primedbe"/>
+<l:gentext key="tablenotes" text="primedbe"/>
+<l:gentext key="TableofContents" text="Sadržaj"/>
+<l:gentext key="tableofcontents" text="sadržaj"/>
+<l:gentext key="unexpectedelementname" text="neočekivano ime elementa"/>
+<l:gentext key="unsupported" text="nije podržano"/>
+<l:gentext key="xrefto" text="unakrsna referenca na"/>
+<l:gentext key="Authors" text="Autori"/>
+<l:gentext key="copyeditor" text="Izdavački urednik"/>
+<l:gentext key="graphicdesigner" text="Grafički dizajner"/>
+<l:gentext key="productioneditor" text="Izvršni urednik"/>
+<l:gentext key="technicaleditor" text="Tehnički urednik"/>
+<l:gentext key="translator" text="Prevodilac"/>
+<l:gentext key="listofequations" text="spisak jednačina"/>
+<l:gentext key="ListofEquations" text="Spisak jednačina"/>
+<l:gentext key="ListofExamples" text="Spisak primera"/>
+<l:gentext key="listofexamples" text="spisak primera"/>
+<l:gentext key="ListofFigures" text="Spisak slika"/>
+<l:gentext key="listoffigures" text="spisak slika"/>
+<l:gentext key="ListofProcedures" text="Spisak postupaka"/>
+<l:gentext key="listofprocedures" text="spisak postupaka"/>
+<l:gentext key="listoftables" text="spisak tabela"/>
+<l:gentext key="ListofTables" text="Spisak tabela"/>
+<l:gentext key="ListofUnknown" text="spisak nepoznatih"/>
+<l:gentext key="listofunknown" text="Spisak nepoznatih"/>
+<l:gentext key="nav-home" text="Početak"/>
+<l:gentext key="nav-next" text="Sledeći"/>
+<l:gentext key="nav-next-sibling" text="Brzo napred"/>
+<l:gentext key="nav-prev" text="Prethodni"/>
+<l:gentext key="nav-prev-sibling" text="Brzo nazad"/>
+<l:gentext key="nav-up" text="Vrh"/>
+<l:gentext key="nav-toc" text="Sadr."/>
+<l:gentext key="Draft" text="Nacrt"/>
+<l:gentext key="above" text="iznad"/>
+<l:gentext key="below" text="ispod"/>
+<l:gentext key="sectioncalled" text="odeljak pod imenom"/>
+<l:gentext key="index symbols" text="Simboli"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcčćdđefghijklmnopqrsštuvwxyzž"/>
+<l:gentext key="uppercase.alpha" text="ABCČĆDĐEFGHIJKLMNOPQRSŠTUVWXYZŽ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="„"/>
+<l:dingbat key="endquote" text="“"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="ime-prezime"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Dodatak %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Poglavlje %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Jednačina %n. %t"/>
+<l:template name="example" text="Primer %n. %t"/>
+<l:template name="figure" text="Slika %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Deo %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Postupak %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produkcija %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabela %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Dodatak %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Poglavlje %n. %t"/>
+<l:template name="part" text="Deo %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="O: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" u %o"/>
+<l:template name="olink.page.citation" text=" (str. %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(strana %p)"/>
+<l:template name="docname" text=" u %o"/>
+<l:template name="docnamelong" text=" u dokumentu sa naslovom %o"/>
+<l:template name="pageabbrev" text="(str. %p)"/>
+<l:template name="Page" text="Strana %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="odeljak pod imenom „%t“"/>
+<l:template name="refsection" text="odeljak pod imenom „%t“"/>
+<l:template name="refsect1" text="odeljak pod imenom „%t“"/>
+<l:template name="refsect2" text="odeljak pod imenom „%t“"/>
+<l:template name="refsect3" text="odeljak pod imenom „%t“"/>
+<l:template name="sect1" text="odeljak pod imenom „%t“"/>
+<l:template name="sect2" text="odeljak pod imenom „%t“"/>
+<l:template name="sect3" text="odeljak pod imenom „%t“"/>
+<l:template name="sect4" text="odeljak pod imenom „%t“"/>
+<l:template name="sect5" text="odeljak pod imenom „%t“"/>
+<l:template name="section" text="odeljak pod imenom „%t“"/>
+<l:template name="simplesect" text="odeljak pod imenom „%t“"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="O: %n"/>
+<l:template name="appendix" text="Dodatak %n"/>
+<l:template name="bridgehead" text="Odeljak %n"/>
+<l:template name="chapter" text="Poglavlje %n"/>
+<l:template name="equation" text="Jednačina %n"/>
+<l:template name="example" text="Primer %n"/>
+<l:template name="figure" text="Slika %n"/>
+<l:template name="part" text="Deo %n"/>
+<l:template name="procedure" text="Postupak %n"/>
+<l:template name="productionset" text="Produkcija %n"/>
+<l:template name="qandadiv" text="P i O %n"/>
+<l:template name="qandaentry" text="P: %n"/>
+<l:template name="question" text="P: %n"/>
+<l:template name="sect1" text="Odeljak %n"/>
+<l:template name="sect2" text="Odeljak %n"/>
+<l:template name="sect3" text="Odeljak %n"/>
+<l:template name="sect4" text="Odeljak %n"/>
+<l:template name="sect5" text="Odeljak %n"/>
+<l:template name="section" text="Odeljak %n"/>
+<l:template name="table" text="Tabela %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Dodatak %n, %t"/>
+<l:template name="bridgehead" text="Odeljak %n, „%t“"/>
+<l:template name="chapter" text="Poglavlje %n, %t"/>
+<l:template name="equation" text="Jednačina %n, „%t“"/>
+<l:template name="example" text="Primer %n, „%t“"/>
+<l:template name="figure" text="Slika %n, „%t“"/>
+<l:template name="part" text="Deo %n, „%t“"/>
+<l:template name="procedure" text="Postupak %n, „%t“"/>
+<l:template name="productionset" text="Produkcija %n, „%t“"/>
+<l:template name="qandadiv" text="P i O %n, „%t“"/>
+<l:template name="refsect1" text="odeljak pod imenom „%t“"/>
+<l:template name="refsect2" text="odeljak pod imenom „%t“"/>
+<l:template name="refsect3" text="odeljak pod imenom „%t“"/>
+<l:template name="refsection" text="odeljak pod imenom „%t“"/>
+<l:template name="sect1" text="Odeljak %n, „%t“"/>
+<l:template name="sect2" text="Odeljak %n, „%t“"/>
+<l:template name="sect3" text="Odeljak %n, „%t“"/>
+<l:template name="sect4" text="Odeljak %n, „%t“"/>
+<l:template name="sect5" text="Odeljak %n, „%t“"/>
+<l:template name="section" text="Odeljak %n, „%t“"/>
+<l:template name="simplesect" text="odeljak pod imenom „%t“"/>
+<l:template name="table" text="Tabela %n, „%t“"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" i "/>
+<l:template name="seplast" text=", i "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Vidi %t."/>
+<l:template name="seealso" text="Vidi takođe %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Publika: "/>
+<l:template name="MsgLevel" text="Nivo: "/>
+<l:template name="MsgOrig" text="Izvor: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d.m.Y."/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definicija: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="januar"/>
+<l:template name="February" text="februar"/>
+<l:template name="March" text="mart"/>
+<l:template name="April" text="april"/>
+<l:template name="May" text="maj"/>
+<l:template name="June" text="jun"/>
+<l:template name="July" text="jul"/>
+<l:template name="August" text="avgust"/>
+<l:template name="September" text="septembar"/>
+<l:template name="October" text="oktobar"/>
+<l:template name="November" text="novembar"/>
+<l:template name="December" text="decembar"/>
+<l:template name="Monday" text="ponedeljak"/>
+<l:template name="Tuesday" text="utorak"/>
+<l:template name="Wednesday" text="sreda"/>
+<l:template name="Thursday" text="četvrtak"/>
+<l:template name="Friday" text="petak"/>
+<l:template name="Saturday" text="subota"/>
+<l:template name="Sunday" text="nedelja"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="jan"/>
+<l:template name="Feb" text="feb"/>
+<l:template name="Mar" text="mar"/>
+<l:template name="Apr" text="apr"/>
+<l:template name="May" text="maj"/>
+<l:template name="Jun" text="jun"/>
+<l:template name="Jul" text="jul"/>
+<l:template name="Aug" text="avg"/>
+<l:template name="Sep" text="sep"/>
+<l:template name="Oct" text="okt"/>
+<l:template name="Nov" text="nov"/>
+<l:template name="Dec" text="dec"/>
+<l:template name="Mon" text="pon"/>
+<l:template name="Tue" text="uto"/>
+<l:template name="Wed" text="sre"/>
+<l:template name="Thu" text="čet"/>
+<l:template name="Fri" text="pet"/>
+<l:template name="Sat" text="sub"/>
+<l:template name="Sun" text="ned"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x081a Serbian (Latin)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Simboli</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">Č</l:l>
+<l:l i="4">č</l:l>
+<l:l i="5">Ć</l:l>
+<l:l i="5">ć</l:l>
+<l:l i="6">D</l:l>
+<l:l i="6">d</l:l>
+<l:l i="7">DŽ</l:l>
+<l:l i="7">Dž</l:l>
+<l:l i="7">dž</l:l>
+<l:l i="8">Đ</l:l>
+<l:l i="8">đ</l:l>
+<l:l i="9">E</l:l>
+<l:l i="9">e</l:l>
+<l:l i="10">F</l:l>
+<l:l i="10">f</l:l>
+<l:l i="11">G</l:l>
+<l:l i="11">g</l:l>
+<l:l i="12">H</l:l>
+<l:l i="12">h</l:l>
+<l:l i="13">I</l:l>
+<l:l i="13">i</l:l>
+<l:l i="14">J</l:l>
+<l:l i="14">j</l:l>
+<l:l i="15">K</l:l>
+<l:l i="15">k</l:l>
+<l:l i="16">L</l:l>
+<l:l i="16">l</l:l>
+<l:l i="17">LJ</l:l>
+<l:l i="17">Lj</l:l>
+<l:l i="17">lj</l:l>
+<l:l i="18">M</l:l>
+<l:l i="18">m</l:l>
+<l:l i="19">N</l:l>
+<l:l i="19">n</l:l>
+<l:l i="20">NJ</l:l>
+<l:l i="20">Nj</l:l>
+<l:l i="20">nj</l:l>
+<l:l i="21">O</l:l>
+<l:l i="21">o</l:l>
+<l:l i="22">P</l:l>
+<l:l i="22">p</l:l>
+<l:l i="23">Q</l:l>
+<l:l i="23">Q</l:l>
+<l:l i="24">R</l:l>
+<l:l i="24">r</l:l>
+<l:l i="25">S</l:l>
+<l:l i="25">s</l:l>
+<l:l i="26">Š</l:l>
+<l:l i="26">š</l:l>
+<l:l i="27">T</l:l>
+<l:l i="27">t</l:l>
+<l:l i="28">U</l:l>
+<l:l i="28">u</l:l>
+<l:l i="29">V</l:l>
+<l:l i="29">v</l:l>
+<l:l i="30">W</l:l>
+<l:l i="30">w</l:l>
+<l:l i="31">X</l:l>
+<l:l i="31">x</l:l>
+<l:l i="32">Y</l:l>
+<l:l i="32">y</l:l>
+<l:l i="33">Z</l:l>
+<l:l i="33">z</l:l>
+<l:l i="34">Ž</l:l>
+<l:l i="34">ž</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/stripns.xsl b/applications/content/template/docbook/common/stripns.xsl
new file mode 100644
index 0000000..4b8c1b8
--- /dev/null
+++ b/applications/content/template/docbook/common/stripns.xsl
@@ -0,0 +1,372 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:ng="http://docbook.org/docbook-ng"
+                xmlns:db="http://docbook.org/ns/docbook"
+                xmlns:saxon="http://icl.com/saxon"
+                xmlns:NodeInfo="http://org.apache.xalan.lib.NodeInfo"
+                xmlns:exsl="http://exslt.org/common"
+		xmlns:xlink="http://www.w3.org/1999/xlink"
+                exclude-result-prefixes="db ng exsl saxon NodeInfo xlink"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- put an xml:base attribute on the root element -->
+<xsl:template match="/*" mode="stripNS">
+  <xsl:choose>
+    <xsl:when test="self::ng:* or self::db:*">
+      <xsl:element name="{local-name(.)}">
+        <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+                                and not(name(.) = 'version')]"/>
+        <xsl:if test="@xml:id">
+          <xsl:attribute name="id">
+            <xsl:value-of select="@xml:id"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:call-template name="add-xml-base"/>
+
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:element>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy>
+        <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+                                and not(name(.) = 'version')]"/>
+        <xsl:if test="@xml:id">
+          <xsl:attribute name="id">
+            <xsl:value-of select="@xml:id"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:call-template name="add-xml-base"/>
+
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:copy>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="stripNS">
+  <xsl:choose>
+    <xsl:when test="self::ng:* or self::db:*">
+      <xsl:element name="{local-name(.)}">
+        <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+                                and not(name(.) = 'version')]"/>
+        <xsl:if test="@xml:id">
+          <xsl:attribute name="id">
+            <xsl:value-of select="@xml:id"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:element>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy>
+        <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+                                and not(name(.) = 'version')]"/>
+        <xsl:if test="@xml:id">
+          <xsl:attribute name="id">
+            <xsl:value-of select="@xml:id"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:copy>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="db:info" mode="stripNS">
+  <xsl:variable name="info">
+    <xsl:choose>
+      <xsl:when test="parent::db:article
+                      |parent::db:appendix
+                      |parent::db:bibliography
+                      |parent::db:book
+                      |parent::db:chapter
+                      |parent::db:glossary
+                      |parent::db:index
+                      |parent::db:part
+                      |parent::db:preface
+                      |parent::db:refentry
+                      |parent::db:reference
+                      |parent::db:refsect1
+                      |parent::db:refsect2
+                      |parent::db:refsect3
+                      |parent::db:refsection
+                      |parent::db:refsynopsisdiv
+                      |parent::db:sect1
+                      |parent::db:sect2
+                      |parent::db:sect3
+                      |parent::db:sect4
+                      |parent::db:sect5
+                      |parent::db:section
+                      |parent::db:setindex
+                      |parent::db:set
+                      |parent::db:slides
+                      |parent::db:sidebar">
+        <xsl:value-of select="local-name(parent::*)"/>
+        <xsl:text>info</xsl:text>
+      </xsl:when>
+      <xsl:when test="parent::db:audioobject
+                      |parent::db:imageobject
+                      |parent::db:inlinemediaobject
+                      |parent::db:mediaobject
+                      |parent::db:mediaobjectco
+                      |parent::db:textobject
+                      |parent::db:videoobject">
+        <xsl:text>objectinfo</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>blockinfo</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$info}">
+    <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+                         and not(name(.) = 'version')]"/>
+    <xsl:if test="@xml:id">
+      <xsl:attribute name="id">
+        <xsl:value-of select="@xml:id"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:apply-templates mode="stripNS"/>
+  </xsl:element>
+
+  <xsl:if test="(not(../db:title) and not(../ng:title))
+                and ($info = 'prefaceinfo'
+                     or $info = 'chapterinfo'
+                     or $info = 'sectioninfo'
+                     or $info = 'sect1info'
+                     or $info = 'sect2info'
+                     or $info = 'sect3info'
+                     or $info = 'sect4info'
+                     or $info = 'sect5info'
+                     or $info = 'refsectioninfo'
+                     or $info = 'refsect1info'
+                     or $info = 'refsect2info'
+                     or $info = 'refsect3info'
+                     or $info = 'blockinfo'
+                     or $info = 'appendixinfo')">
+    <xsl:apply-templates select="db:title|ng:title" mode="stripNS"/>
+  </xsl:if>
+
+</xsl:template>
+
+<xsl:template match="ng:tag|db:tag" mode="stripNS">
+  <xsl:choose>
+    <xsl:when test="@xlink:href">
+      <ulink url="{@xlink:href}">
+	<sgmltag>
+	  <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+			       and not(name(.) = 'version')
+			       and not(local-name(.) = 'href')]"/>
+          <xsl:if test="@xml:id">
+            <xsl:attribute name="id">
+              <xsl:value-of select="@xml:id"/>
+            </xsl:attribute>
+          </xsl:if>
+	  <xsl:apply-templates mode="stripNS"/>
+	</sgmltag>
+      </ulink>
+    </xsl:when>
+    <xsl:otherwise>
+      <sgmltag>
+	<xsl:copy-of select="@*[not(name(.) = 'xml:id')
+                                and not(name(.) = 'version')]"/>
+          <xsl:if test="@xml:id">
+            <xsl:attribute name="id">
+              <xsl:value-of select="@xml:id"/>
+            </xsl:attribute>
+          </xsl:if>
+	<xsl:apply-templates mode="stripNS"/>
+      </sgmltag>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="db:link[@xlink:href]" mode="stripNS">
+  <ulink url="{@xlink:href}">
+    <xsl:if test="@role">
+      <xsl:attribute name="role">
+        <xsl:value-of select="@role"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:apply-templates mode="stripNS"/>
+  </ulink>
+</xsl:template>
+
+<xsl:template match="db:citetitle[@xlink:href]" mode="stripNS">
+  <ulink url="{@xlink:href}">
+    <citetitle>
+      <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+			   and not(name(.) = 'version')
+			   and not(local-name(.) = 'href')]"/>
+      <xsl:if test="@xml:id">
+        <xsl:attribute name="id">
+          <xsl:value-of select="@xml:id"/>
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:apply-templates mode="stripNS"/>
+    </citetitle>
+  </ulink>
+</xsl:template>
+
+<xsl:template match="db:citetitle[@linkend]" mode="stripNS">
+  <citetitle>
+    <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+			 and not(name(.) = 'version')
+			 and not(name(.) = 'linkend')
+			 and not(local-name(.) = 'href')]"/>
+    <xsl:if test="@xml:id">
+      <xsl:attribute name="id">
+        <xsl:value-of select="@xml:id"/>
+      </xsl:attribute>
+    </xsl:if>
+      <xsl:apply-templates mode="stripNS"/>
+  </citetitle>
+</xsl:template>
+
+<xsl:template match="db:alt" mode="stripNS"/>
+
+<xsl:template match="ng:textdata|db:textdata
+                     |ng:imagedata|db:imagedata
+                     |ng:videodata|db:videodata
+                     |ng:audiodata|db:audiodata" mode="stripNS">
+  <xsl:element name="{local-name(.)}">
+    <xsl:copy-of select="@*[not(name(.) = 'xml:id')
+                            and not(name(.) = 'version')
+                            and not(name(.) = 'entityref')]"/>
+    <xsl:if test="@xml:id">
+      <xsl:attribute name="id">
+        <xsl:value-of select="@xml:id"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:attribute name="fileref">
+          <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+        </xsl:attribute>
+      </xsl:when>
+    </xsl:choose>
+
+    <xsl:apply-templates mode="stripNS"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="add-xml-base">
+  <xsl:if test="not(@xml:base)">
+    <xsl:variable name="base">
+      <xsl:choose>
+        <xsl:when test="function-available('saxon:systemId')">
+          <xsl:value-of select="saxon:systemId()"/>
+        </xsl:when>
+        <xsl:when test="function-available('NodeInfo:systemId')">
+          <xsl:value-of select="NodeInfo:systemId()"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>WARNING: cannot add @xml:base to node </xsl:text>
+            <xsl:text>set root element.  </xsl:text>
+            <xsl:text>Relative paths may not work.</xsl:text>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <!-- debug
+    <xsl:message>base is <xsl:value-of select="$base"/></xsl:message>
+    -->
+    <xsl:if test="$base != ''">
+      <xsl:attribute name="xml:base">
+        <xsl:call-template name="systemIdToBaseURI">
+          <xsl:with-param name="systemId">
+            <!-- file: seems to confuse some processors. -->
+            <xsl:choose>
+              <!-- however, windows paths must use file:///c:/path -->
+              <xsl:when test="starts-with($base, 'file:///') and
+                              substring($base, 10, 1) = ':'">
+                <xsl:value-of select="$base"/>
+              </xsl:when>
+              <xsl:when test="starts-with($base, 'file:/')
+                              and substring($base, 8, 1) = ':'">
+                <xsl:value-of select="concat('file:///', 
+                                      substring-after($base,'file:/'))"/>
+              </xsl:when>
+              <xsl:when test="starts-with($base, 'file:///')">
+                <xsl:value-of select="substring-after($base,'file://')"/>
+              </xsl:when>
+              <xsl:when test="starts-with($base, 'file://')">
+                <xsl:value-of select="substring-after($base,'file:/')"/>
+              </xsl:when>
+              <xsl:when test="starts-with($base, 'file:/')">
+                <xsl:value-of select="substring-after($base,'file:')"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="$base"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:attribute>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="systemIdToBaseURI">
+  <xsl:param name="systemId" select="''"/>
+  <xsl:if test="contains($systemId,'/')">
+    <xsl:value-of select="substring-before($systemId,'/')"/>
+    <xsl:text>/</xsl:text>
+    <xsl:call-template name="systemIdToBaseURI">
+      <xsl:with-param name="systemId"
+                      select="substring-after($systemId,'/')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="comment()|processing-instruction()|text()" mode="stripNS">
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="/" priority="-1">
+  <!-- need a local version of this variable because this module imported many places-->
+  <xsl:variable name="local.exsl.node.set.available">
+    <xsl:choose>
+      <xsl:when exsl:foo="" xmlns:exsl="http://exslt.org/common"
+        test="function-available('exsl:node-set') or
+                         contains(system-property('xsl:vendor'),
+                           'Apache Software Foundation')">1</xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$local.exsl.node.set.available != 0
+                    and (*/self::ng:* or */self::db:*)">
+      <xsl:message>
+        <xsl:text>Stripping namespace from DocBook 5 document. </xsl:text>
+        <xsl:text>It is suggested to use namespaced version of the stylesheets </xsl:text>
+        <xsl:text>available in distribution file 'docbook-xsl-ns' </xsl:text>
+        <xsl:text>at //http://sourceforge.net/projects/docbook/files/</xsl:text>
+        <xsl:text> which does not require namespace stripping step.</xsl:text>
+      </xsl:message>
+      <xsl:variable name="nons">
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:variable>
+      <xsl:message>Processing stripped document.</xsl:message>
+      <xsl:apply-templates select="exsl:node-set($nons)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="node()"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/common/subtitles.xsl b/applications/content/template/docbook/common/subtitles.xsl
new file mode 100644
index 0000000..deb691f
--- /dev/null
+++ b/applications/content/template/docbook/common/subtitles.xsl
@@ -0,0 +1,180 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- subtitle markup -->
+
+<doc:mode mode="subtitle.markup" xmlns="">
+<refpurpose>Provides access to element subtitles</refpurpose>
+<refdescription id="subtitle.markup-desc">
+<para>Processing an element in the
+<literal role="mode">subtitle.markup</literal> mode produces the
+subtitle of the element.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="subtitle.markup">
+  <xsl:param name="verbose" select="1"/>
+  <xsl:if test="$verbose != 0">
+    <xsl:message>
+      <xsl:text>Request for subtitle of unexpected element: </xsl:text>
+      <xsl:value-of select="local-name(.)"/>
+    </xsl:message>
+    <xsl:text>???SUBTITLE???</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="set" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:apply-templates select="(setinfo/subtitle|info/subtitle|subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="book" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:apply-templates select="(bookinfo/subtitle|info/subtitle|subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="part" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:apply-templates select="(partinfo/subtitle
+                                |docinfo/subtitle
+                                |info/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:apply-templates select="(docinfo/subtitle
+                                |info/subtitle
+                                |prefaceinfo/subtitle
+                                |chapterinfo/subtitle
+                                |appendixinfo/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="article" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:apply-templates select="(artheader/subtitle
+                                |articleinfo/subtitle
+                                |info/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:apply-templates select="(subtitle|info/subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="reference" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:apply-templates select="(referenceinfo/subtitle
+                                |docinfo/subtitle
+                                |info/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="qandaset" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:apply-templates select="(blockinfo/subtitle|info/subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:apply-templates select="(refentryinfo/subtitle
+                                |info/subtitle
+                                |docinfo/subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="section
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3
+                     |topic
+                     |simplesect"
+              mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:apply-templates select="(info/subtitle
+                                |sectioninfo/subtitle
+                                |sect1info/subtitle
+                                |sect2info/subtitle
+                                |sect3info/subtitle
+                                |sect4info/subtitle
+                                |sect5info/subtitle
+                                |refsect1info/subtitle
+                                |refsect2info/subtitle
+                                |refsect3info/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/common/sv.xml b/applications/content/template/docbook/common/sv.xml
new file mode 100644
index 0000000..ce28a26
--- /dev/null
+++ b/applications/content/template/docbook/common/sv.xml
@@ -0,0 +1,682 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="sv" english-language-name="Swedish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/sv.xml -->
+<!-- * -->
+<!-- * E-mail the edited sv.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Sammanfattning"/>
+<l:gentext key="abstract" text="Sammanfattning"/>
+<l:gentext key="Acknowledgements" text="Tack till"/>
+<l:gentext key="acknowledgements" text="Tack till"/>
+<l:gentext key="Answer" text="A:"/>
+<l:gentext key="answer" text="A:"/>
+<l:gentext key="Appendix" text="Appendix"/>
+<l:gentext key="appendix" text="appendix"/>
+<l:gentext key="Article" text="Artikel"/>
+<l:gentext key="article" text="Artikel"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Bibliografi"/>
+<l:gentext key="bibliography" text="Bibliografi"/>
+<l:gentext key="Book" text="Bok"/>
+<l:gentext key="book" text="Bok"/>
+<l:gentext key="CAUTION" text="OBSERVERA"/>
+<l:gentext key="Caution" text="Observera"/>
+<l:gentext key="caution" text="Observera"/>
+<l:gentext key="Chapter" text="Kapitel"/>
+<l:gentext key="chapter" text="kapitel"/>
+<l:gentext key="Colophon" text="Kolofon"/>
+<l:gentext key="colophon" text="kolofon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Dedikation"/>
+<l:gentext key="dedication" text="Dedikation"/>
+<l:gentext key="Edition" text="Utgåva"/>
+<l:gentext key="edition" text="Utgåva"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Ekvation"/>
+<l:gentext key="equation" text="Ekvation"/>
+<l:gentext key="Example" text="Exempel"/>
+<l:gentext key="example" text="Exempel"/>
+<l:gentext key="Figure" text="Figur"/>
+<l:gentext key="figure" text="Figur"/>
+<l:gentext key="Glossary" text="Gloslista"/>
+<l:gentext key="glossary" text="Gloslista"/>
+<l:gentext key="GlossSee" text="Se"/>
+<l:gentext key="glosssee" text="Se"/>
+<l:gentext key="GlossSeeAlso" text="Se Även"/>
+<l:gentext key="glossseealso" text="Se Även"/>
+<l:gentext key="IMPORTANT" text="VIKTIGT"/>
+<l:gentext key="important" text="Viktigt"/>
+<l:gentext key="Important" text="Viktigt"/>
+<l:gentext key="Index" text="Index"/>
+<l:gentext key="index" text="Index"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Rättsligt Meddelande"/>
+<l:gentext key="legalnotice" text="rättsligt meddelande"/>
+<l:gentext key="MsgAud" text="Målgrupp"/>
+<l:gentext key="msgaud" text="Målgrupp"/>
+<l:gentext key="MsgLevel" text="Nivå"/>
+<l:gentext key="msglevel" text="Nivå"/>
+<l:gentext key="MsgOrig" text="Ursprung"/>
+<l:gentext key="msgorig" text="Ursprung"/>
+<l:gentext key="NOTE" text="NOTERA"/>
+<l:gentext key="Note" text="Notera"/>
+<l:gentext key="note" text="Notera"/>
+<l:gentext key="Part" text="Del"/>
+<l:gentext key="part" text="Del"/>
+<l:gentext key="Preface" text="Företal"/>
+<l:gentext key="preface" text="Företal"/>
+<l:gentext key="Procedure" text="Procedur"/>
+<l:gentext key="procedure" text="Procedur"/>
+<l:gentext key="ProductionSet" text="Production"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Publicerad"/>
+<l:gentext key="published" text="Publicerad"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Fråga och A"/>
+<l:gentext key="qandadiv" text="Fråga och A"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Fråga:"/>
+<l:gentext key="question" text="Fråga:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referens"/>
+<l:gentext key="reference" text="Referens"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Namn"/>
+<l:gentext key="refname" text="Namn"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Synopsis"/>
+<l:gentext key="refsynopsisdiv" text="Synopsis"/>
+<l:gentext key="RevHistory" text="Revisionshistorik"/>
+<l:gentext key="revhistory" text="Revisionshistorik"/>
+<l:gentext key="revision" text="Revision"/>
+<l:gentext key="Revision" text="Revision"/>
+<l:gentext key="sect1" text="Section"/>
+<l:gentext key="sect2" text="Section"/>
+<l:gentext key="sect3" text="Section"/>
+<l:gentext key="sect4" text="Section"/>
+<l:gentext key="sect5" text="Section"/>
+<l:gentext key="section" text="avsnitt"/>
+<l:gentext key="Section" text="Avsnitt"/>
+<l:gentext key="see" text="se"/>
+<l:gentext key="See" text="Se"/>
+<l:gentext key="seealso" text="se även"/>
+<l:gentext key="Seealso" text="Se även"/>
+<l:gentext key="SeeAlso" text="Se Även"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Set Index"/>
+<l:gentext key="SetIndex" text="Set Index"/>
+<l:gentext key="Sidebar" text="Sidebar"/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="steg"/>
+<l:gentext key="Step" text="Steg"/>
+<l:gentext key="table" text="Tabell"/>
+<l:gentext key="Table" text="Tabell"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Tips"/>
+<l:gentext key="TIP" text="TIPS"/>
+<l:gentext key="Tip" text="Tips"/>
+<l:gentext key="Warning" text="Varning"/>
+<l:gentext key="warning" text="Varning"/>
+<l:gentext key="WARNING" text="VARNING"/>
+<l:gentext key="and" text="och"/>
+<l:gentext key="or" text="eller"/>
+<l:gentext key="by" text="av"/>
+<l:gentext key="Edited" text="Redigerad"/>
+<l:gentext key="edited" text="Redigerad"/>
+<l:gentext key="Editedby" text="Redigerad av"/>
+<l:gentext key="editedby" text="Redigerad av"/>
+<l:gentext key="in" text="i"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Noter"/>
+<l:gentext key="Notes" text="Noter"/>
+<l:gentext key="Pgs" text="Sid."/>
+<l:gentext key="pgs" text="Sid."/>
+<l:gentext key="Revisedby" text="Reviderad av: "/>
+<l:gentext key="revisedby" text="Reviderad av: "/>
+<l:gentext key="TableNotes" text="Noter"/>
+<l:gentext key="tablenotes" text="Noter"/>
+<l:gentext key="TableofContents" text="Innehållsförteckning"/>
+<l:gentext key="tableofcontents" text="Innehållsförteckning"/>
+<l:gentext key="unexpectedelementname" text="Oväntat elementnamn"/>
+<l:gentext key="unsupported" text="unsupported"/>
+<l:gentext key="xrefto" text="korsreferens till"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Ekvationsförteckning"/>
+<l:gentext key="ListofEquations" text="Ekvationsförteckning"/>
+<l:gentext key="ListofExamples" text="Exempelförteckning"/>
+<l:gentext key="listofexamples" text="Exempelförteckning"/>
+<l:gentext key="ListofFigures" text="Figurförteckning"/>
+<l:gentext key="listoffigures" text="Figurförteckning"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Tabellförteckning"/>
+<l:gentext key="ListofTables" text="Tabellförteckning"/>
+<l:gentext key="ListofUnknown" text="Förteckning av okända"/>
+<l:gentext key="listofunknown" text="Förteckning av okända"/>
+<l:gentext key="nav-home" text="Hem"/>
+<l:gentext key="nav-next" text="Nästa"/>
+<l:gentext key="nav-next-sibling" text="Snabbt framåt"/>
+<l:gentext key="nav-prev" text="Föregående"/>
+<l:gentext key="nav-prev-sibling" text="Snabbt bakåt"/>
+<l:gentext key="nav-up" text="Upp"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Utkast"/>
+<l:gentext key="above" text="ovan"/>
+<l:gentext key="below" text="nedan"/>
+<l:gentext key="sectioncalled" text="the section called"/>
+<l:gentext key="index symbols" text="Symboler"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyzåäö"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="”"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="’"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Appendix %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ekvation %n. %t"/>
+<l:template name="example" text="Exempel %n. %t"/>
+<l:template name="figure" text="Figur %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Procedur %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Production %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t" lang="en"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tabell %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Appendix %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Kapitel %n. %t"/>
+<l:template name="part" text="Del %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s" lang="en"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Fråga: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Fråga: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="”%t”"/>
+<l:template name="refsection" text="”%t”"/>
+<l:template name="refsect1" text="”%t”"/>
+<l:template name="refsect2" text="”%t”"/>
+<l:template name="refsect3" text="”%t”"/>
+<l:template name="sect1" text="”%t”"/>
+<l:template name="sect2" text="”%t”"/>
+<l:template name="sect3" text="”%t”"/>
+<l:template name="sect4" text="”%t”"/>
+<l:template name="sect5" text="”%t”"/>
+<l:template name="section" text="”%t”"/>
+<l:template name="simplesect" text="”%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="A: %n"/>
+<l:template name="appendix" text="Appendix %n"/>
+<l:template name="bridgehead" text="Avsnitt %n"/>
+<l:template name="chapter" text="Kapitel %n"/>
+<l:template name="equation" text="Ekvation %n"/>
+<l:template name="example" text="Exempel %n"/>
+<l:template name="figure" text="Figur %n"/>
+<l:template name="part" text="Del %n"/>
+<l:template name="procedure" text="Procedur %n"/>
+<l:template name="productionset" text="Production %n"/>
+<l:template name="qandadiv" text="Fråga och A %n"/>
+<l:template name="qandaentry" text="Fråga: %n"/>
+<l:template name="question" text="Fråga: %n"/>
+<l:template name="sect1" text="Avsnitt %n"/>
+<l:template name="sect2" text="Avsnitt %n"/>
+<l:template name="sect3" text="Avsnitt %n"/>
+<l:template name="sect4" text="Avsnitt %n"/>
+<l:template name="sect5" text="Avsnitt %n"/>
+<l:template name="section" text="Avsnitt %n"/>
+<l:template name="table" text="Tabell %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Appendix %n, %t"/>
+<l:template name="bridgehead" text="Avsnitt %n, ”%t”"/>
+<l:template name="chapter" text="Kapitel %n, %t"/>
+<l:template name="equation" text="Ekvation %n, ”%t”"/>
+<l:template name="example" text="Exempel %n, ”%t”"/>
+<l:template name="figure" text="Figur %n, ”%t”"/>
+<l:template name="part" text="Del %n, ”%t”"/>
+<l:template name="procedure" text="Procedur %n, ”%t”"/>
+<l:template name="productionset" text="Production %n, ”%t”"/>
+<l:template name="qandadiv" text="Fråga och A %n, ”%t”"/>
+<l:template name="refsect1" text="the section called ”%t”"/>
+<l:template name="refsect2" text="the section called ”%t”"/>
+<l:template name="refsect3" text="the section called ”%t”"/>
+<l:template name="refsection" text="the section called ”%t”"/>
+<l:template name="sect1" text="Avsnitt %n, ”%t”"/>
+<l:template name="sect2" text="Avsnitt %n, ”%t”"/>
+<l:template name="sect3" text="Avsnitt %n, ”%t”"/>
+<l:template name="sect4" text="Avsnitt %n, ”%t”"/>
+<l:template name="sect5" text="Avsnitt %n, ”%t”"/>
+<l:template name="section" text="Avsnitt %n, ”%t”"/>
+<l:template name="simplesect" text="the section called ”%t”"/>
+<l:template name="table" text="Tabell %n, ”%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" och "/>
+<l:template name="seplast" text=" och "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Se %t."/>
+<l:template name="seealso" text="Se Även %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Målgrupp: "/>
+<l:template name="MsgLevel" text="Nivå: "/>
+<l:template name="MsgOrig" text="Ursprung: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d-m-Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Januari"/>
+<l:template name="February" text="Februari"/>
+<l:template name="March" text="Mars"/>
+<l:template name="April" text="April"/>
+<l:template name="May" text="Maj"/>
+<l:template name="June" text="Juni"/>
+<l:template name="July" text="Juli"/>
+<l:template name="August" text="Augusti"/>
+<l:template name="September" text="September"/>
+<l:template name="October" text="Oktober"/>
+<l:template name="November" text="November"/>
+<l:template name="December" text="December"/>
+<l:template name="Monday" text="Måndag"/>
+<l:template name="Tuesday" text="Tisdag"/>
+<l:template name="Wednesday" text="Onsdag"/>
+<l:template name="Thursday" text="Torsdag"/>
+<l:template name="Friday" text="Fredag"/>
+<l:template name="Saturday" text="Lördag"/>
+<l:template name="Sunday" text="Söndag"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan"/>
+<l:template name="Feb" text="Feb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Apr"/>
+<l:template name="May" text="Maj"/>
+<l:template name="Jun" text="Jun"/>
+<l:template name="Jul" text="Jul"/>
+<l:template name="Aug" text="Aug"/>
+<l:template name="Sep" text="Sep"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nov"/>
+<l:template name="Dec" text="Dec"/>
+<l:template name="Mon" text="Mon"/>
+<l:template name="Tue" text="Tis"/>
+<l:template name="Wed" text="Ons"/>
+<l:template name="Thu" text="Tor"/>
+<l:template name="Fri" text="Fre"/>
+<l:template name="Sat" text="Lör"/>
+<l:template name="Sun" text="Sön"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x041d Swedish"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="10">J</l:l>
+<l:l i="10">j</l:l>
+<l:l i="11">K</l:l>
+<l:l i="11">k</l:l>
+<l:l i="12">L</l:l>
+<l:l i="12">l</l:l>
+<l:l i="13">M</l:l>
+<l:l i="13">m</l:l>
+<l:l i="14">N</l:l>
+<l:l i="14">n</l:l>
+<l:l i="15">O</l:l>
+<l:l i="15">o</l:l>
+<l:l i="16">P</l:l>
+<l:l i="16">p</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="20">T</l:l>
+<l:l i="20">t</l:l>
+<l:l i="21">U</l:l>
+<l:l i="21">u</l:l>
+<l:l i="22">V</l:l>
+<l:l i="22">v</l:l>
+<l:l i="23">W</l:l>
+<l:l i="23">w</l:l>
+<l:l i="24">X</l:l>
+<l:l i="24">x</l:l>
+<l:l i="25">Y</l:l>
+<l:l i="25">y</l:l>
+<l:l i="26">Z</l:l>
+<l:l i="26">z</l:l>
+<l:l i="27">Å</l:l>
+<l:l i="27">å</l:l>
+<l:l i="28">Ä</l:l>
+<l:l i="28">ä</l:l>
+<l:l i="29">Ö</l:l>
+<l:l i="29">ö</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/ta.xml b/applications/content/template/docbook/common/ta.xml
new file mode 100644
index 0000000..84d004c
--- /dev/null
+++ b/applications/content/template/docbook/common/ta.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="ta" english-language-name="Tamil">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/ta.xml -->
+<!-- * -->
+<!-- * E-mail the edited ta.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="சுருக்கம்"/>
+<l:gentext key="abstract" text="சுருக்கம்"/>
+<l:gentext key="Acknowledgements" text="ஒப்புதல்கள்"/>
+<l:gentext key="acknowledgements" text="ஒப்புதல்கள்"/>
+<l:gentext key="Answer" text="விடை:"/>
+<l:gentext key="answer" text="விடை:"/>
+<l:gentext key="Appendix" text="இணைப்பு"/>
+<l:gentext key="appendix" text="இணைப்பு"/>
+<l:gentext key="Article" text="கட்டுரை"/>
+<l:gentext key="article" text="கட்டுரை"/>
+<l:gentext key="Author" text="ஆசிரியர்"/>
+<l:gentext key="Bibliography" text="விவரக்குறிப்பு"/>
+<l:gentext key="bibliography" text="விவரக்குறிப்பு"/>
+<l:gentext key="Book" text="புத்தகம்"/>
+<l:gentext key="book" text="புத்தகம்"/>
+<l:gentext key="CAUTION" text="எச்சரிக்கை"/>
+<l:gentext key="Caution" text="எச்சரிக்கை"/>
+<l:gentext key="caution" text="எச்சரிக்கை"/>
+<l:gentext key="Chapter" text="பாடம்"/>
+<l:gentext key="chapter" text="பாடம்"/>
+<l:gentext key="Colophon" text="பின்குறிப்பு"/>
+<l:gentext key="colophon" text="பின்குறிப்பு"/>
+<l:gentext key="Copyright" text="காப்புரிமை"/>
+<l:gentext key="copyright" text="காப்புரிமை"/>
+<l:gentext key="Dedication" text="சமர்பணம்"/>
+<l:gentext key="dedication" text="சமர்பணம்"/>
+<l:gentext key="Edition" text="பதிப்பு"/>
+<l:gentext key="edition" text="பதிப்பு"/>
+<l:gentext key="Editor" text="ஆசிரியர்"/>
+<l:gentext key="Equation" text="சமன்பாடு"/>
+<l:gentext key="equation" text="சமன்பாடு"/>
+<l:gentext key="Example" text="உதாரணம்"/>
+<l:gentext key="example" text="உதாரணம்"/>
+<l:gentext key="Figure" text="படம்"/>
+<l:gentext key="figure" text="படம்"/>
+<l:gentext key="Glossary" text="அகராதி"/>
+<l:gentext key="glossary" text="அகராதி"/>
+<l:gentext key="GlossSee" text="பார்"/>
+<l:gentext key="glosssee" text="பார்"/>
+<l:gentext key="GlossSeeAlso" text="இதையும்பார்க்கவும்"/>
+<l:gentext key="glossseealso" text="இதையும்பார்க்கவும்"/>
+<l:gentext key="IMPORTANT" text="முக்கியம்"/>
+<l:gentext key="important" text="முக்கியம்"/>
+<l:gentext key="Important" text="முக்கியம்"/>
+<l:gentext key="Index" text="அட்டவணை"/>
+<l:gentext key="index" text="அட்டவணை"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="சட்டஅறிக்கை"/>
+<l:gentext key="legalnotice" text="சட்டஅறிக்கை"/>
+<l:gentext key="MsgAud" text="பார்வையாளர்கள்"/>
+<l:gentext key="msgaud" text="பார்வையாளர்கள்"/>
+<l:gentext key="MsgLevel" text="நிலை"/>
+<l:gentext key="msglevel" text="நிலை"/>
+<l:gentext key="MsgOrig" text="மூலம்"/>
+<l:gentext key="msgorig" text="மூலம்"/>
+<l:gentext key="NOTE" text="குறிப்பு"/>
+<l:gentext key="Note" text="குறிப்பு"/>
+<l:gentext key="note" text="குறிப்பு"/>
+<l:gentext key="Part" text="பகுதி"/>
+<l:gentext key="part" text="பகுதி"/>
+<l:gentext key="Preface" text="முன்னுரை"/>
+<l:gentext key="preface" text="முன்னுரை"/>
+<l:gentext key="Procedure" text="முறை"/>
+<l:gentext key="procedure" text="முறை"/>
+<l:gentext key="ProductionSet" text="உற்பத்தி"/>
+<l:gentext key="PubDate" text="வெளியீடு தேதி"/>
+<l:gentext key="pubdate" text="வெளியீடு தேதி"/>
+<l:gentext key="Published" text="பதிப்பிக்கப்பட்ட"/>
+<l:gentext key="published" text="பதிப்பிக்கப்பட்ட"/>
+<l:gentext key="Publisher" text="வெளியீட்டாளர்"/>
+<l:gentext key="Qandadiv" text="வினா &amp; விடை"/>
+<l:gentext key="qandadiv" text="வினா &amp; விடை"/>
+<l:gentext key="QandASet" text="அடிக்கடி எழும் வினாக்கள்"/>
+<l:gentext key="Question" text="வினா:"/>
+<l:gentext key="question" text="வினா:"/>
+<l:gentext key="RefEntry" text="பக்கம்"/>
+<l:gentext key="refentry" text="பக்கம்"/>
+<l:gentext key="Reference" text="குறிப்புகள்"/>
+<l:gentext key="reference" text="குறிப்புகள்"/>
+<l:gentext key="References" text="குறிப்புகள்"/>
+<l:gentext key="RefName" text="பெயர்"/>
+<l:gentext key="refname" text="பெயர்"/>
+<l:gentext key="RefSection" text="பகுதி"/>
+<l:gentext key="refsection" text="பகுதி"/>
+<l:gentext key="RefSynopsisDiv" text="சுருக்கம்"/>
+<l:gentext key="refsynopsisdiv" text="சுருக்கம்"/>
+<l:gentext key="RevHistory" text="மீள்பார்வைவரலாறு"/>
+<l:gentext key="revhistory" text="மீள்பார்வைவரலாறு"/>
+<l:gentext key="revision" text="மீள்பார்வை"/>
+<l:gentext key="Revision" text="மீள்பார்வை"/>
+<l:gentext key="sect1" text="பிரிவு"/>
+<l:gentext key="sect2" text="பிரிவு"/>
+<l:gentext key="sect3" text="பிரிவு"/>
+<l:gentext key="sect4" text="பிரிவு"/>
+<l:gentext key="sect5" text="பிரிவு"/>
+<l:gentext key="section" text="பிரிவு"/>
+<l:gentext key="Section" text="பிரிவு"/>
+<l:gentext key="see" text="பார்"/>
+<l:gentext key="See" text="பார்"/>
+<l:gentext key="seealso" text="இதையும்பார்க்கவும்"/>
+<l:gentext key="Seealso" text="இதையும்பார்க்கவும்"/>
+<l:gentext key="SeeAlso" text="இதையும்பார்க்கவும்"/>
+<l:gentext key="set" text="அமை"/>
+<l:gentext key="Set" text="அமை"/>
+<l:gentext key="setindex" text="அட்டவணைஅமை"/>
+<l:gentext key="SetIndex" text="அட்டவணைஅமை"/>
+<l:gentext key="Sidebar" text="பக்கப்பட்டை"/>
+<l:gentext key="sidebar" text="பக்கப்பட்டை"/>
+<l:gentext key="step" text="படிமுறை"/>
+<l:gentext key="Step" text="படிமுறை"/>
+<l:gentext key="table" text="அட்டவணை"/>
+<l:gentext key="Table" text="அட்டவணை"/>
+<l:gentext key="task" text="பணி"/>
+<l:gentext key="Task" text="பணி"/>
+<l:gentext key="tip" text="குறிப்பு"/>
+<l:gentext key="TIP" text="குறிப்பு"/>
+<l:gentext key="Tip" text="குறிப்பு"/>
+<l:gentext key="Warning" text="எச்சரிக்கை"/>
+<l:gentext key="warning" text="எச்சரிக்கை"/>
+<l:gentext key="WARNING" text="எச்சரிக்கை"/>
+<l:gentext key="and" text="மற்றும்"/>
+<l:gentext key="or" text="அல்லது"/>
+<l:gentext key="by" text="ஆல்"/>
+<l:gentext key="Edited" text="திருத்தப்பட்ட"/>
+<l:gentext key="edited" text="திருத்தப்பட்ட"/>
+<l:gentext key="Editedby" text="திருத்தியவர்"/>
+<l:gentext key="editedby" text="திருத்தியவர்"/>
+<l:gentext key="in" text="இல்"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="குறிப்புகள்"/>
+<l:gentext key="Notes" text="குறிப்புகள்"/>
+<l:gentext key="Pgs" text="பக்கம்"/>
+<l:gentext key="pgs" text="பக்கம்"/>
+<l:gentext key="Revisedby" text="மீண்டும்பார்த்தவர்: "/>
+<l:gentext key="revisedby" text="மீண்டும்பார்த்தவர்: "/>
+<l:gentext key="TableNotes" text="குறிப்புகள்"/>
+<l:gentext key="tablenotes" text="குறிப்புகள்"/>
+<l:gentext key="TableofContents" text="உள்ளடக்கங்கள்"/>
+<l:gentext key="tableofcontents" text="உள்ளடக்கங்கள்"/>
+<l:gentext key="unexpectedelementname" text="எதிர்பாராதஉறுப்புபெயர்"/>
+<l:gentext key="unsupported" text="ஆதரவற்ற"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="ஆசிரியர்கள்"/>
+<l:gentext key="copyeditor" text="காப்பி எடிட்டர்"/>
+<l:gentext key="graphicdesigner" text="வரைகலை வடிவமைப்பாளர்"/>
+<l:gentext key="productioneditor" text="தயாரிப்பு எடிட்டர்"/>
+<l:gentext key="technicaleditor" text="தொழில்நுட்ப ஆசிரியர்"/>
+<l:gentext key="translator" text="மொழிபெயர்ப்பாளர்"/>
+<l:gentext key="listofequations" text="சமன்பாடுகளின்பட்டியல்"/>
+<l:gentext key="ListofEquations" text="சமன்பாடுகளின்பட்டியல்"/>
+<l:gentext key="ListofExamples" text="சமன்பாடுகளின்பட்டியல்"/>
+<l:gentext key="listofexamples" text="சமன்பாடுகளின்பட்டியல்"/>
+<l:gentext key="ListofFigures" text="படங்களின்பட்டியல்"/>
+<l:gentext key="listoffigures" text="படங்களின்பட்டியல்"/>
+<l:gentext key="ListofProcedures" text="செய்முறைகளின்பட்டியல்"/>
+<l:gentext key="listofprocedures" text="செய்முறைகளின்பட்டியல்"/>
+<l:gentext key="listoftables" text="அட்டவணைகளின்பட்டியல்"/>
+<l:gentext key="ListofTables" text="அட்டவணைகளின்பட்டியல்"/>
+<l:gentext key="ListofUnknown" text="தெரியாதபட்டியல்"/>
+<l:gentext key="listofunknown" text="தெரியாதபட்டியல்"/>
+<l:gentext key="nav-home" text="இல்லம்"/>
+<l:gentext key="nav-next" text="அடுத்து"/>
+<l:gentext key="nav-next-sibling" text="வேகமாகமுன்செல்"/>
+<l:gentext key="nav-prev" text="முன்"/>
+<l:gentext key="nav-prev-sibling" text="வேகமாகபின்செல்"/>
+<l:gentext key="nav-up" text="மேல்"/>
+<l:gentext key="nav-toc" text="உள்ளடக்கங்கள்"/>
+<l:gentext key="Draft" text="ஆவணம்"/>
+<l:gentext key="above" text="மேல்"/>
+<l:gentext key="below" text="கீழ்"/>
+<l:gentext key="sectioncalled" text="அழைக்கபட்டபகுதி"/>
+<l:gentext key="index symbols" text="குறியீடுகள்"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="இணைப்பு %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="பாடம் %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="சமன்பாடு %n. %t"/>
+<l:template name="example" text="உதாரணம் %n. %t"/>
+<l:template name="figure" text="படம் %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="பகுதி %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="முறை %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="உற்பத்தி %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="அட்டவணை %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="இணைப்பு %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="பாடம் %n. %t"/>
+<l:template name="part" text="பகுதி %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="விடை: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="வினா: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="வினா: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsection" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsect1" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsect2" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsect3" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="sect1" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="sect2" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="sect3" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="sect4" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="sect5" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="section" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="simplesect" text="அழைக்கபட்டபகுதி “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="விடை: %n"/>
+<l:template name="appendix" text="இணைப்பு %n"/>
+<l:template name="bridgehead" text="பிரிவு %n"/>
+<l:template name="chapter" text="பாடம் %n"/>
+<l:template name="equation" text="சமன்பாடு %n"/>
+<l:template name="example" text="உதாரணம் %n"/>
+<l:template name="figure" text="படம் %n"/>
+<l:template name="part" text="பகுதி %n"/>
+<l:template name="procedure" text="முறை %n"/>
+<l:template name="productionset" text="உற்பத்தி %n"/>
+<l:template name="qandadiv" text="வினா &amp; விடை %n"/>
+<l:template name="qandaentry" text="வினா: %n"/>
+<l:template name="question" text="வினா: %n"/>
+<l:template name="sect1" text="பிரிவு %n"/>
+<l:template name="sect2" text="பிரிவு %n"/>
+<l:template name="sect3" text="பிரிவு %n"/>
+<l:template name="sect4" text="பிரிவு %n"/>
+<l:template name="sect5" text="பிரிவு %n"/>
+<l:template name="section" text="பிரிவு %n"/>
+<l:template name="table" text="அட்டவணை %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="இணைப்பு %n, %t"/>
+<l:template name="bridgehead" text="பிரிவு %n, “%t”"/>
+<l:template name="chapter" text="பாடம் %n, %t"/>
+<l:template name="equation" text="சமன்பாடு %n, “%t”"/>
+<l:template name="example" text="உதாரணம் %n, “%t”"/>
+<l:template name="figure" text="படம் %n, “%t”"/>
+<l:template name="part" text="பகுதி %n, “%t”"/>
+<l:template name="procedure" text="முறை %n, “%t”"/>
+<l:template name="productionset" text="உற்பத்தி %n, “%t”"/>
+<l:template name="qandadiv" text="வினா &amp; விடை %n, “%t”"/>
+<l:template name="refsect1" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsect2" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsect3" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="refsection" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="sect1" text="பிரிவு %n, “%t”"/>
+<l:template name="sect2" text="பிரிவு %n, “%t”"/>
+<l:template name="sect3" text="பிரிவு %n, “%t”"/>
+<l:template name="sect4" text="பிரிவு %n, “%t”"/>
+<l:template name="sect5" text="பிரிவு %n, “%t”"/>
+<l:template name="section" text="பிரிவு %n, “%t”"/>
+<l:template name="simplesect" text="அழைக்கபட்டபகுதி “%t”"/>
+<l:template name="table" text="அட்டவணை %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" மற்றும் "/>
+<l:template name="seplast" text=", மற்றும் "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="பார் %t."/>
+<l:template name="seealso" text="இதையும்பார்க்கவும் %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="பார்வையாளர்கள்: "/>
+<l:template name="MsgLevel" text="நிலை: "/>
+<l:template name="MsgOrig" text="மூலம்: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="ஜனவரி"/>
+<l:template name="February" text="பிப்ரவரி"/>
+<l:template name="March" text="மார்ச்"/>
+<l:template name="April" text="ஏப்ரல்"/>
+<l:template name="May" text="மே"/>
+<l:template name="June" text="ஜூன்"/>
+<l:template name="July" text="ஜூலை"/>
+<l:template name="August" text="ஆகஸ்ட்"/>
+<l:template name="September" text="செப்டம்பர்"/>
+<l:template name="October" text="அக்டோபர்"/>
+<l:template name="November" text="நவம்பர்"/>
+<l:template name="December" text="டிசம்பர்"/>
+<l:template name="Monday" text="திங்கட்கிழமை"/>
+<l:template name="Tuesday" text="செவ்வாய்கிழமை"/>
+<l:template name="Wednesday" text="புதன்கிழமை"/>
+<l:template name="Thursday" text="வியாழக்கிழமை"/>
+<l:template name="Friday" text="வெள்ளிக்கிழமை"/>
+<l:template name="Saturday" text="சனிக்கிழமை"/>
+<l:template name="Sunday" text="ஞாயிற்றுக்கிழமை"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="ஐன"/>
+<l:template name="Feb" text="பிப்"/>
+<l:template name="Mar" text="மார்"/>
+<l:template name="Apr" text="ஏப்"/>
+<l:template name="May" text="மே"/>
+<l:template name="Jun" text="ஜூன்"/>
+<l:template name="Jul" text="ஜூலை"/>
+<l:template name="Aug" text="ஆக"/>
+<l:template name="Sep" text="செப்"/>
+<l:template name="Oct" text="அக்"/>
+<l:template name="Nov" text="நவ"/>
+<l:template name="Dec" text="டிச"/>
+<l:template name="Mon" text="திங்"/>
+<l:template name="Tue" text="செவ்"/>
+<l:template name="Wed" text="புத"/>
+<l:template name="Thu" text="வியா"/>
+<l:template name="Fri" text="வெள்"/>
+<l:template name="Sat" text="சனி"/>
+<l:template name="Sun" text="ஞாயி"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0049 Tamil"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">குறியீடுகள்</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/table.xsl b/applications/content/template/docbook/common/table.xsl
new file mode 100644
index 0000000..7ce298c
--- /dev/null
+++ b/applications/content/template/docbook/common/table.xsl
@@ -0,0 +1,514 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="blank.spans">
+  <xsl:param name="cols" select="1"/>
+  <xsl:if test="$cols &gt; 0">
+    <xsl:text>0:</xsl:text>
+    <xsl:call-template name="blank.spans">
+      <xsl:with-param name="cols" select="$cols - 1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="calculate.following.spans">
+  <xsl:param name="colspan" select="1"/>
+  <xsl:param name="spans" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="$colspan &gt; 0">
+      <xsl:call-template name="calculate.following.spans">
+        <xsl:with-param name="colspan" select="$colspan - 1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$spans"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="finaltd">
+  <xsl:param name="spans"/>
+  <xsl:param name="col" select="0"/>
+
+  <xsl:if test="$spans != ''">
+    <xsl:choose>
+      <xsl:when test="starts-with($spans,'0:')">
+        <xsl:call-template name="empty.table.cell">
+          <xsl:with-param name="colnum" select="$col"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:call-template name="finaltd">
+      <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      <xsl:with-param name="col" select="$col+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="sfinaltd">
+  <xsl:param name="spans"/>
+
+  <xsl:if test="$spans != ''">
+    <xsl:choose>
+      <xsl:when test="starts-with($spans,'0:')">0:</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="substring-before($spans,':')-1"/>
+        <xsl:text>:</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:call-template name="sfinaltd">
+      <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="entry.colnum">
+  <xsl:param name="entry" select="."/>
+
+  <xsl:choose>
+    <xsl:when test="$entry/@spanname">
+      <xsl:variable name="spanname" select="$entry/@spanname"/>
+      <xsl:variable name="spanspec"
+                    select="($entry/ancestor::tgroup/spanspec[@spanname=$spanname]
+                             |$entry/ancestor::entrytbl/spanspec[@spanname=$spanname])[last()]"/>
+      <xsl:variable name="colspec"
+                    select="($entry/ancestor::tgroup/colspec[@colname=$spanspec/@namest]
+                             |$entry/ancestor::entrytbl/colspec[@colname=$spanspec/@namest])[last()]"/>
+      <xsl:call-template name="colspec.colnum">
+        <xsl:with-param name="colspec" select="$colspec"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$entry/@colname">
+      <xsl:variable name="colname" select="$entry/@colname"/>
+      <xsl:variable name="colspec"
+                    select="($entry/ancestor::tgroup/colspec[@colname=$colname]
+                             |$entry/ancestor::entrytbl/colspec[@colname=$colname])[last()]"/>
+      <xsl:call-template name="colspec.colnum">
+        <xsl:with-param name="colspec" select="$colspec"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$entry/@namest">
+      <xsl:variable name="namest" select="$entry/@namest"/>
+      <xsl:variable name="colspec"
+                    select="($entry/ancestor::tgroup/colspec[@colname=$namest]
+                             |$entry/ancestor::entrytbl/colspec[@colname=$namest])[last()]"/>
+      <xsl:call-template name="colspec.colnum">
+        <xsl:with-param name="colspec" select="$colspec"/>
+      </xsl:call-template>
+    </xsl:when>
+    <!-- no idea, return 0 -->
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<doc:template name="entry.colnum" xmlns="">
+<refpurpose>Determine the column number in which a given entry occurs</refpurpose>
+<refdescription id="entry.colnum-desc">
+<para>If an <tag>entry</tag> has a
+<tag class="attribute">colname</tag> or
+<tag class="attribute">namest</tag> attribute, this template
+will determine the number of the column in which the entry should occur.
+For other <tag>entry</tag>s, nothing is returned.</para>
+</refdescription>
+<refparameter id="entry.colnum-params">
+<variablelist>
+<varlistentry><term>entry</term>
+<listitem>
+<para>The <tag>entry</tag>-element which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn id="entry.colnum-returns">
+<para>This template returns the column number if it can be determined,
+or 0 (the empty string)</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="colspec.colnum">
+  <xsl:param name="colspec" select="."/>
+  <xsl:choose>
+    <xsl:when test="$colspec/@colnum">
+      <xsl:value-of select="$colspec/@colnum"/>
+    </xsl:when>
+    <xsl:when test="$colspec/preceding-sibling::colspec">
+      <xsl:variable name="prec.colspec.colnum">
+        <xsl:call-template name="colspec.colnum">
+          <xsl:with-param name="colspec"
+                          select="$colspec/preceding-sibling::colspec[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$prec.colspec.colnum + 1"/>
+    </xsl:when>
+    <xsl:otherwise>1</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="calculate.colspan">
+  <xsl:param name="entry" select="."/>
+  <xsl:variable name="spanname" select="$entry/@spanname"/>
+  <xsl:variable name="spanspec"
+                select="($entry/ancestor::tgroup/spanspec[@spanname=$spanname]
+                         |$entry/ancestor::entrytbl/spanspec[@spanname=$spanname])[last()]"/>
+
+  <xsl:variable name="namest">
+    <xsl:choose>
+      <xsl:when test="@spanname">
+        <xsl:value-of select="$spanspec/@namest"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$entry/@namest"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="nameend">
+    <xsl:choose>
+      <xsl:when test="@spanname">
+        <xsl:value-of select="$spanspec/@nameend"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$entry/@nameend"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scol">
+    <xsl:call-template name="colspec.colnum">
+      <xsl:with-param name="colspec"
+                      select="($entry/ancestor::tgroup/colspec[@colname=$namest]
+                               |$entry/ancestor::entrytbl/colspec[@colname=$namest])[last()]"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="ecol">
+    <xsl:call-template name="colspec.colnum">
+      <xsl:with-param name="colspec"
+                      select="($entry/ancestor::tgroup/colspec[@colname=$nameend]
+                               |$entry/ancestor::entrytbl/colspec[@colname=$nameend])[last()]"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$namest != '' and $nameend != ''">
+      <xsl:choose>
+        <xsl:when test="number($ecol) &gt;= number($scol)">
+          <xsl:value-of select="number($ecol) - number($scol) + 1"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="number($scol) - number($ecol) + 1"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>1</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="calculate.rowsep">
+  <xsl:param name="entry" select="."/>
+  <xsl:param name="colnum" select="0"/>
+
+  <xsl:call-template name="inherited.table.attribute">
+    <xsl:with-param name="entry" select="$entry"/>
+    <xsl:with-param name="colnum" select="$colnum"/>
+    <xsl:with-param name="attribute" select="'rowsep'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="calculate.colsep">
+  <xsl:param name="entry" select="."/>
+  <xsl:param name="colnum" select="0"/>
+
+  <xsl:call-template name="inherited.table.attribute">
+    <xsl:with-param name="entry" select="$entry"/>
+    <xsl:with-param name="colnum" select="$colnum"/>
+    <xsl:with-param name="attribute" select="'colsep'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="inherited.table.attribute">
+  <xsl:param name="entry" select="."/>
+  <xsl:param name="row" select="$entry/ancestor-or-self::row[1]"/>
+  <xsl:param name="colnum" select="0"/>
+  <xsl:param name="attribute" select="'colsep'"/>
+
+  <xsl:variable name="tgroup" select="$row/parent::*/parent::tgroup[1]"/>
+  <xsl:variable name="tbody" select="$row/parent::*[1]"/>
+
+  <xsl:variable name="table" select="($tgroup/ancestor::table
+                                     |$tgroup/ancestor::informaltable
+                                     |$entry/ancestor::entrytbl)[last()]"/>
+
+  <xsl:variable name="entry.value">
+    <xsl:call-template name="get-attribute">
+      <xsl:with-param name="element" select="$entry"/>
+      <xsl:with-param name="attribute" select="$attribute"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="row.value">
+    <xsl:call-template name="get-attribute">
+      <xsl:with-param name="element" select="$row"/>
+      <xsl:with-param name="attribute" select="$attribute"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="span.value">
+    <xsl:if test="$entry/@spanname">
+      <xsl:variable name="spanname" select="$entry/@spanname"/>
+      <xsl:variable name="spanspec"
+                    select="$tgroup/spanspec[@spanname=$spanname]"/>
+      <xsl:variable name="span.colspec"
+                    select="$tgroup/colspec[@colname=$spanspec/@namest]"/>
+
+      <xsl:variable name="spanspec.value">
+        <xsl:call-template name="get-attribute">
+          <xsl:with-param name="element" select="$spanspec"/>
+          <xsl:with-param name="attribute" select="$attribute"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="scolspec.value">
+        <xsl:call-template name="get-attribute">
+          <xsl:with-param name="element" select="$span.colspec"/>
+          <xsl:with-param name="attribute" select="$attribute"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$spanspec.value != ''">
+          <xsl:value-of select="$spanspec.value"/>
+        </xsl:when>
+        <xsl:when test="$scolspec.value != ''">
+          <xsl:value-of select="$scolspec.value"/>
+        </xsl:when>
+        <xsl:otherwise></xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="namest.value">
+    <xsl:if test="$entry/@namest">
+      <xsl:variable name="namest" select="$entry/@namest"/>
+      <xsl:variable name="colspec"
+                    select="$tgroup/colspec[@colname=$namest]"/>
+
+      <xsl:variable name="inner.namest.value">
+        <xsl:call-template name="get-attribute">
+          <xsl:with-param name="element" select="$colspec"/>
+          <xsl:with-param name="attribute" select="$attribute"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$inner.namest.value">
+          <xsl:value-of select="$inner.namest.value"/>
+        </xsl:when>
+        <xsl:otherwise></xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="tgroup.value">
+    <xsl:call-template name="get-attribute">
+      <xsl:with-param name="element" select="$tgroup"/>
+      <xsl:with-param name="attribute" select="$attribute"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="tbody.value">
+    <xsl:call-template name="get-attribute">
+      <xsl:with-param name="element" select="$tbody"/>
+      <xsl:with-param name="attribute" select="$attribute"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="table.value">
+    <xsl:call-template name="get-attribute">
+      <xsl:with-param name="element" select="$table"/>
+      <xsl:with-param name="attribute" select="$attribute"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="default.value">
+    <!-- This section used to say that rowsep and colsep have defaults based -->
+    <!-- on the frame setting. Further reflection and closer examination of the -->
+    <!-- CALS spec reveals I was mistaken. The default is "1" for rowsep and colsep. -->
+    <!-- For everything else, the default is the tgroup value -->
+    <xsl:choose>
+      <xsl:when test="$tgroup.value != ''">
+        <xsl:value-of select="$tgroup.value"/>
+      </xsl:when>
+      <xsl:when test="$attribute = 'rowsep'">1</xsl:when>
+      <xsl:when test="$attribute = 'colsep'">1</xsl:when>
+      <xsl:otherwise><!-- empty --></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="calc.colvalue">
+    <xsl:if test="$colnum &gt; 0">
+      <xsl:call-template name="colnum.colspec">
+        <xsl:with-param name="colnum" select="$colnum"/>
+        <xsl:with-param name="attribute" select="$attribute"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$entry.value != ''">
+      <xsl:value-of select="$entry.value"/>
+    </xsl:when>
+    <xsl:when test="$row.value != ''">
+      <xsl:value-of select="$row.value"/>
+    </xsl:when>
+    <xsl:when test="$span.value != ''">
+      <xsl:value-of select="$span.value"/>
+    </xsl:when>
+    <xsl:when test="$namest.value != ''">
+      <xsl:value-of select="$namest.value"/>
+    </xsl:when>
+    <xsl:when test="$calc.colvalue != ''">
+      <xsl:value-of select="$calc.colvalue"/>
+    </xsl:when>
+    <xsl:when test="$tbody.value != ''">
+      <xsl:value-of select="$tbody.value"/>
+    </xsl:when>
+    <xsl:when test="$tgroup.value != ''">
+      <xsl:value-of select="$tgroup.value"/>
+    </xsl:when>
+    <xsl:when test="$table.value != ''">
+      <xsl:value-of select="$table.value"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$default.value"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="colnum.colspec">
+  <xsl:param name="colnum" select="0"/>
+  <xsl:param name="attribute" select="'colname'"/>
+  <xsl:param name="colspec.ancestor" 
+             select="(ancestor::tgroup|ancestor::entrytbl)
+                     [position() = last()]"/>
+  <xsl:param name="colspecs" select="$colspec.ancestor/colspec"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="not($colspecs) or $count &gt; $colnum">
+      <!-- nop -->
+    </xsl:when>
+    <xsl:when test="$colspecs[1]/@colnum">
+      <xsl:choose>
+        <xsl:when test="$colspecs[1]/@colnum = $colnum">
+          <xsl:call-template name="get-attribute">
+            <xsl:with-param name="element" select="$colspecs[1]"/>
+            <xsl:with-param name="attribute" select="$attribute"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="colnum.colspec">
+            <xsl:with-param name="colnum" select="$colnum"/>
+            <xsl:with-param name="attribute" select="$attribute"/>
+            <xsl:with-param name="colspecs"
+                            select="$colspecs[position()&gt;1]"/>
+            <xsl:with-param name="count"
+                            select="$colspecs[1]/@colnum+1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$count = $colnum">
+          <xsl:call-template name="get-attribute">
+            <xsl:with-param name="element" select="$colspecs[1]"/>
+            <xsl:with-param name="attribute" select="$attribute"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="colnum.colspec">
+            <xsl:with-param name="colnum" select="$colnum"/>
+            <xsl:with-param name="attribute" select="$attribute"/>
+            <xsl:with-param name="colspecs"
+                            select="$colspecs[position()&gt;1]"/>
+            <xsl:with-param name="count" select="$count+1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="get-attribute">
+  <xsl:param name="element" select="."/>
+  <xsl:param name="attribute" select="''"/>
+
+  <xsl:for-each select="$element/@*">
+    <xsl:if test="local-name(.) = $attribute">
+      <xsl:value-of select="."/>
+    </xsl:if>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="consume-row">
+  <xsl:param name="spans"/>
+
+  <xsl:if test="contains($spans,':')">
+    <xsl:value-of select="substring-before($spans,':') - 1"/>
+    <xsl:text>:</xsl:text>
+    <xsl:call-template name="consume-row">
+      <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- Returns the table style for the context element -->
+<xsl:template name="tabstyle">
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="tgroup" select="$node/tgroup[1] | 
+                                      $node/ancestor-or-self::tgroup[1]"/>
+
+  <xsl:variable name="table" 
+                select="($node/ancestor-or-self::table | 
+                         $node/ancestor-or-self::informaltable)[last()]"/>
+
+  <xsl:variable name="tabstyle">
+    <xsl:choose>
+      <xsl:when test="$table/@tabstyle != ''">
+        <xsl:value-of select="normalize-space($table/@tabstyle)"/>
+      </xsl:when>
+      <xsl:when test="$tgroup/@tgroupstyle != ''">
+        <xsl:value-of select="normalize-space($tgroup/@tgroupstyle)"/>
+      </xsl:when>
+      <xsl:otherwise>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:value-of select="$tabstyle"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/common/targetdatabase.dtd b/applications/content/template/docbook/common/targetdatabase.dtd
new file mode 100644
index 0000000..2ace1e0
--- /dev/null
+++ b/applications/content/template/docbook/common/targetdatabase.dtd
@@ -0,0 +1,49 @@
+<!-- targetdatabase.dtd -->
+<!-- A DTD for managing cross reference target information -->
+
+<!ELEMENT targetset (targetsetinfo?, sitemap*, document*) >
+
+<!ELEMENT targetsetinfo ANY >
+
+<!ELEMENT sitemap (dir) >
+
+<!ELEMENT dir ((dir|document)*) >
+<!ATTLIST dir
+        name      CDATA   #REQUIRED
+>
+
+<!ELEMENT document (div*) >
+<!ATTLIST document
+        targetdoc CDATA   #REQUIRED
+        uri       CDATA   #IMPLIED
+        baseuri   CDATA   #IMPLIED
+        href      CDATA   #IMPLIED
+        dir       CDATA   #IMPLIED
+>
+
+<!ELEMENT div (ttl?, objttl?, xreftext?, (div|obj)*)>
+<!ATTLIST div
+        targetptr  CDATA   #IMPLIED
+        element   CDATA   #IMPLIED
+        name      CDATA   #IMPLIED
+        number    CDATA   #IMPLIED
+        href      CDATA   #IMPLIED
+        lang      CDATA   #IMPLIED
+        page      CDATA   #IMPLIED
+>
+        
+        
+<!ELEMENT ttl ANY >
+<!ELEMENT objttl ANY >
+<!ELEMENT xreftext ANY >
+
+<!ELEMENT obj (ttl?, objttl?, xreftext?)>
+<!ATTLIST obj
+        targetptr  CDATA   #IMPLIED
+        element   CDATA   #IMPLIED
+        name      CDATA   #IMPLIED
+        number    CDATA   #IMPLIED
+        href      CDATA   #IMPLIED
+        lang      CDATA   #IMPLIED
+        page      CDATA   #IMPLIED
+>
diff --git a/applications/content/template/docbook/common/targets.xsl b/applications/content/template/docbook/common/targets.xsl
new file mode 100644
index 0000000..c399441
--- /dev/null
+++ b/applications/content/template/docbook/common/targets.xsl
@@ -0,0 +1,337 @@
+<?xml version='1.0'?>
+<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"
+                exclude-result-prefixes="doc exsl"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- cross reference target collection  -->
+
+<doc:mode mode="collect.targets" xmlns="">
+<refpurpose>Collects information for potential cross reference targets</refpurpose>
+<refdescription id="collect.targets-desc">
+<para>Processing the root element in the
+<literal role="mode">collect.targets</literal> mode produces 
+a set of target database elements that can be used by
+the olink mechanism to resolve external cross references.
+The collection process is controlled by the <literal>
+collect.xref.targets</literal> parameter, which can be
+<literal>yes</literal> to collect targets and process
+the document for output, <literal>only</literal> to
+only collect the targets, and <literal>no</literal>
+(default) to not collect the targets and only process the document.
+</para>
+<para>
+A <literal>targets.filename</literal> parameter must be
+specified to receive the output if 
+<literal>collect.xref.targets</literal> is
+set to <literal>yes</literal> so as to
+redirect the target data to a file separate from the
+document output.
+</para>
+</refdescription>
+</doc:mode>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="collect.targets">
+  <xsl:choose>
+    <xsl:when test="$collect.xref.targets = 'yes' and $targets.filename = ''">
+      <xsl:message>
+        Must specify a $targets.filename parameter when
+        $collect.xref.targets is set to 'yes'.
+        The xref targets were not collected.
+      </xsl:message>
+    </xsl:when> 
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$targets.filename">
+          <xsl:call-template name="write.chunk">
+            <xsl:with-param name="filename" select="$targets.filename"/>
+            <xsl:with-param name="method" select="'xml'"/>
+            <xsl:with-param name="encoding" select="'utf-8'"/>
+            <xsl:with-param name="omit-xml-declaration" select="'yes'"/>
+            <xsl:with-param name="doctype-public" select="''"/>
+            <xsl:with-param name="doctype-system" select="''"/>
+            <xsl:with-param name="indent" select="'no'"/>
+            <xsl:with-param name="quiet" select="0"/>
+            <xsl:with-param name="content">
+              <xsl:apply-templates select="." mode="olink.mode"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- Else write to standard output -->
+          <xsl:apply-templates select="." mode="olink.mode"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="olink.href.target">
+  <xsl:param name="nd" select="."/>
+
+  <xsl:value-of select="$olink.base.uri"/>
+  <xsl:call-template name="href.target">
+    <xsl:with-param name="object" select="$nd"/>
+    <xsl:with-param name="context" select="NOTANODE"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Templates for extracting cross reference information
+     from a document for use in an xref database.
+-->
+
+<xsl:template name="attrs">
+  <xsl:param name="nd" select="."/>
+
+  <xsl:attribute name="element">
+    <xsl:value-of select="local-name(.)"/>
+  </xsl:attribute>
+
+  <xsl:attribute name="href">
+    <xsl:call-template name="olink.href.target">
+      <xsl:with-param name="nd" select="$nd"/>
+    </xsl:call-template>
+  </xsl:attribute>
+
+  <xsl:variable name="num">
+    <xsl:apply-templates select="$nd" mode="label.markup">
+      <xsl:with-param name="verbose" select="0"/>
+    </xsl:apply-templates>
+  </xsl:variable>
+
+  <xsl:if test="$num">
+    <xsl:attribute name="number">
+      <xsl:value-of select="$num"/>
+    </xsl:attribute>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$nd/@id">
+      <xsl:attribute name="targetptr">
+        <xsl:value-of select="$nd/@id"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="$nd/@xml:id">
+      <xsl:attribute name="targetptr">
+        <xsl:value-of select="$nd/@xml:id"/>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:if test="$nd/@lang">
+    <xsl:attribute name="lang">
+      <xsl:value-of select="$nd/@lang"/>
+    </xsl:attribute>
+  </xsl:if>
+
+</xsl:template>
+
+<xsl:template name="div">
+  <xsl:param name="nd" select="."/>
+
+  <div>
+    <xsl:call-template name="attrs">
+      <xsl:with-param name="nd" select="$nd"/>
+    </xsl:call-template>
+    <ttl>
+      <xsl:apply-templates select="$nd" mode="title.markup">
+        <xsl:with-param name="verbose" select="0"/>
+      </xsl:apply-templates>
+    </ttl>
+    <xreftext>
+      <xsl:choose>
+        <xsl:when test="$nd/@xreflabel">
+          <xsl:call-template name="xref.xreflabel">
+            <xsl:with-param name="target" select="$nd"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$nd" mode="xref-to">
+            <xsl:with-param name="verbose" select="0"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xreftext>
+    <xsl:apply-templates mode="olink.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template name="obj">
+  <xsl:param name="nd" select="."/>
+
+  <obj>
+    <xsl:call-template name="attrs">
+      <xsl:with-param name="nd" select="$nd"/>
+    </xsl:call-template>
+    <ttl>
+      <xsl:apply-templates select="$nd" mode="title.markup">
+        <xsl:with-param name="verbose" select="0"/>
+      </xsl:apply-templates>
+    </ttl>
+    <xreftext>
+      <xsl:choose>
+        <xsl:when test="$nd/@xreflabel">
+          <xsl:call-template name="xref.xreflabel">
+            <xsl:with-param name="target" select="$nd"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$nd" mode="xref-to">
+            <xsl:with-param name="verbose" select="0"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xreftext>
+  </obj>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()"
+              mode="olink.mode">
+  <!-- nop -->
+</xsl:template>
+
+<!--
+<xsl:template match="*" mode="olink.mode">
+</xsl:template>
+-->
+
+<xsl:template match="set" mode="olink.mode">
+  <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="book" mode="olink.mode">
+  <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="olink.mode">
+  <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="part|reference" mode="olink.mode">
+  <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="article" mode="olink.mode">
+  <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="topic" mode="olink.mode">
+  <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="bibliography|bibliodiv" mode="olink.mode">
+  <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="olink.mode">
+  <xsl:call-template name="obj"/>
+</xsl:template>
+
+<xsl:template match="refentry" mode="olink.mode">
+  <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="section|sect1|sect2|sect3|sect4|sect5" mode="olink.mode">
+  <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="refsection|refsect1|refsect2|refsect3" mode="olink.mode">
+  <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="figure|example|table" mode="olink.mode">
+  <xsl:call-template name="obj"/>
+  <xsl:apply-templates mode="olink.mode"/>
+</xsl:template>
+
+<xsl:template match="equation[title or info/title]" mode="olink.mode">
+  <xsl:call-template name="obj"/>
+</xsl:template>
+
+<xsl:template match="qandaset|qandaentry" mode="olink.mode">
+  <xsl:call-template name="div"/>
+</xsl:template>
+
+<!-- handle an glossary collection -->
+<xsl:template match="glossary[@role='auto']" mode="olink.mode" priority="2">
+  <xsl:variable name="collection" select="document($glossary.collection, .)"/>
+  <xsl:if test="$glossary.collection = ''">
+    <xsl:message>
+      <xsl:text>Warning: processing automatic glossary </xsl:text>
+      <xsl:text>without a glossary.collection file.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not($collection) and $glossary.collection != ''">
+    <xsl:message>
+      <xsl:text>Warning: processing automatic glossary but unable to </xsl:text>
+      <xsl:text>open glossary.collection file '</xsl:text>
+      <xsl:value-of select="$glossary.collection"/>
+      <xsl:text>'</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+
+  <xsl:if test="$exsl.node.set.available != 0">
+    <xsl:variable name="auto.glossary">
+      <xsl:apply-templates select="." mode="assemble.auto.glossary"/>
+    </xsl:variable>
+    <xsl:variable name="auto.glossary.nodeset" select="exsl:node-set($auto.glossary)"/>
+    <xsl:apply-templates select="$auto.glossary.nodeset/*" mode="olink.mode"/>
+  </xsl:if>
+
+</xsl:template>
+
+<!-- construct a glossary in memory -->
+<xsl:template match="glossary" mode="assemble.auto.glossary">
+  <xsl:copy>
+    <xsl:copy-of select="@*[not(local-name() = 'role')]"/>
+    <xsl:apply-templates select="node()" mode="assemble.auto.glossary"/>
+    <xsl:call-template name="select.glossentries"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template name="select.glossentries">
+  <xsl:param name="collection" select="document($glossary.collection, .)"/>
+  <xsl:param name="terms" select="//glossterm[not(parent::glossdef)]|//firstterm"/>
+
+  <xsl:for-each select="$collection//glossentry">
+    <xsl:variable name="cterm" select="glossterm"/>
+    <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+      <xsl:copy-of select="."/>
+    </xsl:if>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="glossentry" mode="assemble.auto.glossary">
+  <!-- skip the dummy entries -->
+</xsl:template>
+
+<xsl:template match="*" mode="assemble.auto.glossary">
+  <!-- pass through any titles and intro stuff -->
+  <xsl:copy-of select="."/>
+</xsl:template>
+
+<xsl:template match="*" mode="olink.mode">
+  <xsl:if test="@id or @xml:id">
+    <xsl:call-template name="obj"/>
+  </xsl:if> 
+  <xsl:apply-templates mode="olink.mode"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/common/te.xml b/applications/content/template/docbook/common/te.xml
new file mode 100644
index 0000000..f3ff443
--- /dev/null
+++ b/applications/content/template/docbook/common/te.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="te" english-language-name="Telugu">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/te.xml -->
+<!-- * -->
+<!-- * E-mail the edited te.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="సంక్షిప్తము"/>
+<l:gentext key="abstract" text="సంక్షిప్తము"/>
+<l:gentext key="Acknowledgements" text="గుర్తింపులు"/>
+<l:gentext key="acknowledgements" text="గుర్తింపులు"/>
+<l:gentext key="Answer" text="సమాధానం:"/>
+<l:gentext key="answer" text="సమాధానం:"/>
+<l:gentext key="Appendix" text="అనుబంధం"/>
+<l:gentext key="appendix" text="అనుబంధం"/>
+<l:gentext key="Article" text="ప్రకరణము"/>
+<l:gentext key="article" text="ప్రకరణము"/>
+<l:gentext key="Author" text="గ్రంధకర్త"/>
+<l:gentext key="Bibliography" text="గ్రంధ పట్టిక"/>
+<l:gentext key="bibliography" text="గ్రంధ పట్టిక"/>
+<l:gentext key="Book" text="పుస్తకము"/>
+<l:gentext key="book" text="పుస్తకము"/>
+<l:gentext key="CAUTION" text="ముందుజాగ్రత్త"/>
+<l:gentext key="Caution" text="ముందుజాగ్రత్త"/>
+<l:gentext key="caution" text="ముందుజాగ్రత్త"/>
+<l:gentext key="Chapter" text="అధ్యాయము"/>
+<l:gentext key="chapter" text="అధ్యాయము"/>
+<l:gentext key="Colophon" text="చివరిమాట"/>
+<l:gentext key="colophon" text="చివరిమాట"/>
+<l:gentext key="Copyright" text="కాపీరైటు"/>
+<l:gentext key="copyright" text="కాపీరైటు"/>
+<l:gentext key="Dedication" text="అంకితం"/>
+<l:gentext key="dedication" text="అంకితం"/>
+<l:gentext key="Edition" text="సంచిక"/>
+<l:gentext key="edition" text="సంచిక"/>
+<l:gentext key="Editor" text="సంపాదకుడు"/>
+<l:gentext key="Equation" text="సమీకరణము"/>
+<l:gentext key="equation" text="సమీకరణము"/>
+<l:gentext key="Example" text="ఉదాహరణ"/>
+<l:gentext key="example" text="ఉదాహరణ"/>
+<l:gentext key="Figure" text="మూర్తి"/>
+<l:gentext key="figure" text="మూర్తి"/>
+<l:gentext key="Glossary" text="పదకోశం"/>
+<l:gentext key="glossary" text="పదకోశం"/>
+<l:gentext key="GlossSee" text="చూడుము"/>
+<l:gentext key="glosssee" text="చూడుము"/>
+<l:gentext key="GlossSeeAlso" text="ఇదికూడా చూడుము"/>
+<l:gentext key="glossseealso" text="ఇదికూడా చూడుము"/>
+<l:gentext key="IMPORTANT" text="ముఖ్యమైన"/>
+<l:gentext key="important" text="ముఖ్యమైన"/>
+<l:gentext key="Important" text="ముఖ్యమైన"/>
+<l:gentext key="Index" text="విషయసూచిక"/>
+<l:gentext key="index" text="విషయసూచిక"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="చట్టబద్ద నోటీసు"/>
+<l:gentext key="legalnotice" text="చట్టబద్ద నోటీసు"/>
+<l:gentext key="MsgAud" text="ప్రేక్షకులు"/>
+<l:gentext key="msgaud" text="ప్రేక్షకులు"/>
+<l:gentext key="MsgLevel" text="స్థాయి"/>
+<l:gentext key="msglevel" text="స్థాయి"/>
+<l:gentext key="MsgOrig" text="మూలము"/>
+<l:gentext key="msgorig" text="మూలము"/>
+<l:gentext key="NOTE" text="గమనిక"/>
+<l:gentext key="Note" text="గమనిక"/>
+<l:gentext key="note" text="గమనిక"/>
+<l:gentext key="Part" text="భాగము"/>
+<l:gentext key="part" text="భాగము"/>
+<l:gentext key="Preface" text="ముందుమాట"/>
+<l:gentext key="preface" text="ముందుమాట"/>
+<l:gentext key="Procedure" text="పద్ధతి"/>
+<l:gentext key="procedure" text="పద్ధతి"/>
+<l:gentext key="ProductionSet" text="ఉత్పత్తి"/>
+<l:gentext key="PubDate" text="ప్రచురణ తేది"/>
+<l:gentext key="pubdate" text="ప్రచురణ తేది"/>
+<l:gentext key="Published" text="ప్రచురితమైంది"/>
+<l:gentext key="published" text="ప్రచురితమైంది"/>
+<l:gentext key="Publisher" text="ప్రచురణకర్త"/>
+<l:gentext key="Qandadiv" text="ప్రశ్నలు &amp; సమాధానములు"/>
+<l:gentext key="qandadiv" text="ప్రశ్నలు &amp; సమాధానములు"/>
+<l:gentext key="QandASet" text="తరచుగా అడుగు ప్రశ్నలు"/>
+<l:gentext key="Question" text="ప్రశ్న:"/>
+<l:gentext key="question" text="ప్రశ్న:"/>
+<l:gentext key="RefEntry" text="పేజీ"/>
+<l:gentext key="refentry" text="పేజీ"/>
+<l:gentext key="Reference" text="సంభందిత"/>
+<l:gentext key="reference" text="సంభందిత"/>
+<l:gentext key="References" text="సంభందితములు"/>
+<l:gentext key="RefName" text="నామము"/>
+<l:gentext key="refname" text="నామము"/>
+<l:gentext key="RefSection" text="విభాగము"/>
+<l:gentext key="refsection" text="విభాగము"/>
+<l:gentext key="RefSynopsisDiv" text="ముఖ్యవిషయసూచిక"/>
+<l:gentext key="refsynopsisdiv" text="ముఖ్యవిషయసూచిక"/>
+<l:gentext key="RevHistory" text="పునఃపరిశీలన చరిత్ర"/>
+<l:gentext key="revhistory" text="పునఃపరిశీలన చరిత్ర"/>
+<l:gentext key="revision" text="పునఃపరిశీలన"/>
+<l:gentext key="Revision" text="పునఃపరిశీలన"/>
+<l:gentext key="sect1" text="విభాగము"/>
+<l:gentext key="sect2" text="విభాగము"/>
+<l:gentext key="sect3" text="విభాగము"/>
+<l:gentext key="sect4" text="విభాగము"/>
+<l:gentext key="sect5" text="విభాగము"/>
+<l:gentext key="section" text="విభాగము"/>
+<l:gentext key="Section" text="విభాగము"/>
+<l:gentext key="see" text="చూడుము"/>
+<l:gentext key="See" text="చూడుము"/>
+<l:gentext key="seealso" text="ఇదికూడా చూడుము"/>
+<l:gentext key="Seealso" text="ఇదికూడా చూడుము"/>
+<l:gentext key="SeeAlso" text="ఇదికూడా చూడుము"/>
+<l:gentext key="set" text="సమితి"/>
+<l:gentext key="Set" text="సమితి"/>
+<l:gentext key="setindex" text="సమితి విషయసూచిక"/>
+<l:gentext key="SetIndex" text="సమితి విషయసూచిక"/>
+<l:gentext key="Sidebar" text="ప్రక్కపట్టీ"/>
+<l:gentext key="sidebar" text="ప్రక్కపట్టీ"/>
+<l:gentext key="step" text="అంచె"/>
+<l:gentext key="Step" text="అంచె"/>
+<l:gentext key="table" text="పట్టిక"/>
+<l:gentext key="Table" text="పట్టిక"/>
+<l:gentext key="task" text="కర్తవ్యము"/>
+<l:gentext key="Task" text="కర్తవ్యము"/>
+<l:gentext key="tip" text="చిట్కా"/>
+<l:gentext key="TIP" text="చిట్కా"/>
+<l:gentext key="Tip" text="చిట్కా"/>
+<l:gentext key="Warning" text="హెచ్చరిక"/>
+<l:gentext key="warning" text="హెచ్చరిక"/>
+<l:gentext key="WARNING" text="హెచ్చరిక"/>
+<l:gentext key="and" text="మరియు"/>
+<l:gentext key="or" text="లేక"/>
+<l:gentext key="by" text="వీరిచేత"/>
+<l:gentext key="Edited" text="సరికూర్చిన"/>
+<l:gentext key="edited" text="సరికూర్చిన"/>
+<l:gentext key="Editedby" text="వీరిచేత సరికూర్చబడింది"/>
+<l:gentext key="editedby" text="వీరిచేత సరికూర్చబడింది"/>
+<l:gentext key="in" text="నందు"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="గమనికలు"/>
+<l:gentext key="Notes" text="గమనికలు"/>
+<l:gentext key="Pgs" text="పేజీలు"/>
+<l:gentext key="pgs" text="పేజీలు"/>
+<l:gentext key="Revisedby" text="వీరిచేత పునఃపరిశీలించబడింది: "/>
+<l:gentext key="revisedby" text="వీరిచేత పునఃపరిశీలించబడింది: "/>
+<l:gentext key="TableNotes" text="గమనికలు"/>
+<l:gentext key="tablenotes" text="గమనికలు"/>
+<l:gentext key="TableofContents" text="సారముల పట్టిక"/>
+<l:gentext key="tableofcontents" text="సారముల పట్టిక"/>
+<l:gentext key="unexpectedelementname" text="అనుకోని మూలకం నామము"/>
+<l:gentext key="unsupported" text="మద్దతీయని"/>
+<l:gentext key="xrefto" text="xref"/>
+<l:gentext key="Authors" text="గ్రంధ కర్తలు"/>
+<l:gentext key="copyeditor" text="కాపీ సంపాదకుడు"/>
+<l:gentext key="graphicdesigner" text="గ్రాఫిక్ రూపకర్త"/>
+<l:gentext key="productioneditor" text="ఉత్పత్తి సంపాదకుడు"/>
+<l:gentext key="technicaleditor" text="సాంకేతిక సంపాదకుడు"/>
+<l:gentext key="translator" text="అనువాదకుడు"/>
+<l:gentext key="listofequations" text="సమీకరణముల జాబితా"/>
+<l:gentext key="ListofEquations" text="సమీకరణముల జాబితా"/>
+<l:gentext key="ListofExamples" text="ఉదాహరణముల జాబితా"/>
+<l:gentext key="listofexamples" text="ఉదాహరణముల జాబితా"/>
+<l:gentext key="ListofFigures" text="మూర్తుల జాబితా"/>
+<l:gentext key="listoffigures" text="మూర్తుల జాబితా"/>
+<l:gentext key="ListofProcedures" text="పద్ధతుల జాబితా"/>
+<l:gentext key="listofprocedures" text="పద్ధతుల జాబితా"/>
+<l:gentext key="listoftables" text="పట్టికల జాబితా"/>
+<l:gentext key="ListofTables" text="పట్టికల జాబితా"/>
+<l:gentext key="ListofUnknown" text="తెలియనివాటి జాబితా"/>
+<l:gentext key="listofunknown" text="తెలియనివాటి జాబితా"/>
+<l:gentext key="nav-home" text="నివాసము"/>
+<l:gentext key="nav-next" text="తరువాతి"/>
+<l:gentext key="nav-next-sibling" text="ముందుకు నడుపు"/>
+<l:gentext key="nav-prev" text="ముందరి"/>
+<l:gentext key="nav-prev-sibling" text="వెనుకకు నడుపు"/>
+<l:gentext key="nav-up" text="పైనకు"/>
+<l:gentext key="nav-toc" text="వివరముల పట్టిక"/>
+<l:gentext key="Draft" text="ముసాయిదా"/>
+<l:gentext key="above" text="పైన"/>
+<l:gentext key="below" text="క్రింది"/>
+<l:gentext key="sectioncalled" text="ఆ విభాగము పిలువబడుతుంది"/>
+<l:gentext key="index symbols" text="చిహ్నములు"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="అనుబంధం %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="అధ్యాయము %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="సమీకరణము %n. %t"/>
+<l:template name="example" text="ఉదాహరణ %n. %t"/>
+<l:template name="figure" text="మూర్తి %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="భాగము %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="పద్ధతి %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ఉత్పత్తి %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="పట్టిక %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="అనుబంధం %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="అధ్యాయము %n. %t"/>
+<l:template name="part" text="భాగము %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="సమాధానం: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="ప్రశ్న: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="ప్రశ్న: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)"/>
+<l:template name="docname" text=" in %o"/>
+<l:template name="docnamelong" text=" in the document titled %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Page %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="refsection" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="refsect1" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="refsect2" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="refsect3" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="sect1" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="sect2" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="sect3" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="sect4" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="sect5" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="section" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="simplesect" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="సమాధానం: %n"/>
+<l:template name="appendix" text="అనుబంధం %n"/>
+<l:template name="bridgehead" text="విభాగము %n"/>
+<l:template name="chapter" text="అధ్యాయము %n"/>
+<l:template name="equation" text="సమీకరణము %n"/>
+<l:template name="example" text="ఉదాహరణ %n"/>
+<l:template name="figure" text="మూర్తి %n"/>
+<l:template name="part" text="భాగము %n"/>
+<l:template name="procedure" text="పద్ధతి %n"/>
+<l:template name="productionset" text="ఉత్పత్తి %n"/>
+<l:template name="qandadiv" text="ప్రశ్నలు &amp; సమాధానములు %n"/>
+<l:template name="qandaentry" text="ప్రశ్న: %n"/>
+<l:template name="question" text="ప్రశ్న: %n"/>
+<l:template name="sect1" text="విభాగము %n"/>
+<l:template name="sect2" text="విభాగము %n"/>
+<l:template name="sect3" text="విభాగము %n"/>
+<l:template name="sect4" text="విభాగము %n"/>
+<l:template name="sect5" text="విభాగము %n"/>
+<l:template name="section" text="విభాగము %n"/>
+<l:template name="table" text="పట్టిక %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="అనుబంధం %n, %t"/>
+<l:template name="bridgehead" text="విభాగము %n, “%t”"/>
+<l:template name="chapter" text="అధ్యాయము %n, %t"/>
+<l:template name="equation" text="సమీకరణము %n, “%t”"/>
+<l:template name="example" text="ఉదాహరణ %n, “%t”"/>
+<l:template name="figure" text="మూర్తి %n, “%t”"/>
+<l:template name="part" text="భాగము %n, “%t”"/>
+<l:template name="procedure" text="పద్ధతి %n, “%t”"/>
+<l:template name="productionset" text="ఉత్పత్తి %n, “%t”"/>
+<l:template name="qandadiv" text="ప్రశ్నలు &amp; సమాధానములు %n, “%t”"/>
+<l:template name="refsect1" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="refsect2" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="refsect3" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="refsection" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="sect1" text="విభాగము %n, “%t”"/>
+<l:template name="sect2" text="విభాగము %n, “%t”"/>
+<l:template name="sect3" text="విభాగము %n, “%t”"/>
+<l:template name="sect4" text="విభాగము %n, “%t”"/>
+<l:template name="sect5" text="విభాగము %n, “%t”"/>
+<l:template name="section" text="విభాగము %n, “%t”"/>
+<l:template name="simplesect" text="ఆ విభాగము పిలువబడుతుంది “%t”"/>
+<l:template name="table" text="పట్టిక %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" మరియు "/>
+<l:template name="seplast" text=", మరియు "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="చూడుము %t."/>
+<l:template name="seealso" text="ఇదికూడా చూడుము %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="ప్రేక్షకులు: "/>
+<l:template name="MsgLevel" text="స్థాయి: "/>
+<l:template name="MsgOrig" text="మూలము: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="జనవరి"/>
+<l:template name="February" text="ఫిబ్రవరి"/>
+<l:template name="March" text="మార్చి"/>
+<l:template name="April" text="ఏప్రిల్"/>
+<l:template name="May" text="మే"/>
+<l:template name="June" text="జూన్"/>
+<l:template name="July" text="జులై"/>
+<l:template name="August" text="ఆగస్టు"/>
+<l:template name="September" text="సెప్టెంబర్"/>
+<l:template name="October" text="అక్టోబర్"/>
+<l:template name="November" text="నవంబర్"/>
+<l:template name="December" text="డిసెంబర్"/>
+<l:template name="Monday" text="సోమవారము"/>
+<l:template name="Tuesday" text="మంగళవారము"/>
+<l:template name="Wednesday" text="బుధవారము"/>
+<l:template name="Thursday" text="గురువారము"/>
+<l:template name="Friday" text="శుక్రవారము"/>
+<l:template name="Saturday" text="శనివారము"/>
+<l:template name="Sunday" text="ఆదివారము"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="జన"/>
+<l:template name="Feb" text="ఫిబ్ర"/>
+<l:template name="Mar" text="మార్చి"/>
+<l:template name="Apr" text="ఏప్రి"/>
+<l:template name="May" text="మే"/>
+<l:template name="Jun" text="జూన్"/>
+<l:template name="Jul" text="జులై"/>
+<l:template name="Aug" text="ఆగ"/>
+<l:template name="Sep" text="సెప్టెం"/>
+<l:template name="Oct" text="అక్టో"/>
+<l:template name="Nov" text="నవం"/>
+<l:template name="Dec" text="డిసెం"/>
+<l:template name="Mon" text="సోమ"/>
+<l:template name="Tue" text="మంగళ"/>
+<l:template name="Wed" text="బుధ"/>
+<l:template name="Thu" text="గురు"/>
+<l:template name="Fri" text="శుక్ర"/>
+<l:template name="Sat" text="శని"/>
+<l:template name="Sun" text="ఆది"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x044a Telugu"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">చిహ్నములు</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/th.xml b/applications/content/template/docbook/common/th.xml
new file mode 100644
index 0000000..05de513
--- /dev/null
+++ b/applications/content/template/docbook/common/th.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="th" english-language-name="Thai">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/th.xml -->
+<!-- * -->
+<!-- * E-mail the edited th.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="บทคัดย่อ"/>
+<l:gentext key="abstract" text="บทคัดย่อ"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="ตอบ:"/>
+<l:gentext key="answer" text="ตอบ:"/>
+<l:gentext key="Appendix" text="ภาคผนวก"/>
+<l:gentext key="appendix" text="ภาคผนวก"/>
+<l:gentext key="Article" text="บทความ"/>
+<l:gentext key="article" text="บทความ"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="บรรณานุกรม"/>
+<l:gentext key="bibliography" text="บรรณานุกรม"/>
+<l:gentext key="Book" text="หนังสือ"/>
+<l:gentext key="book" text="หนังสือ"/>
+<l:gentext key="CAUTION" text="คำเตือน"/>
+<l:gentext key="Caution" text="คำเตือน"/>
+<l:gentext key="caution" text="คำเตือน"/>
+<l:gentext key="Chapter" text="บทที่"/>
+<l:gentext key="chapter" text="บทที่"/>
+<l:gentext key="Colophon" text="เบื้องหลัง"/>
+<l:gentext key="colophon" text="เบื้องหลัง"/>
+<l:gentext key="Copyright" text="สงวนสิขสิทธิ์"/>
+<l:gentext key="copyright" text="สงวนสิขสิทธิ์"/>
+<l:gentext key="Dedication" text="คำอุทิศ"/>
+<l:gentext key="dedication" text="คำอุทิศ"/>
+<l:gentext key="Edition" text="ฉบับ"/>
+<l:gentext key="edition" text="ฉบับ"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="สมการ"/>
+<l:gentext key="equation" text="สมการ"/>
+<l:gentext key="Example" text="ตัวอย่าง"/>
+<l:gentext key="example" text="ตัวอย่าง"/>
+<l:gentext key="Figure" text="รูป"/>
+<l:gentext key="figure" text="รูป"/>
+<l:gentext key="Glossary" text="อภิธานศัพท์"/>
+<l:gentext key="glossary" text="อภิธานศัพท์"/>
+<l:gentext key="GlossSee" text="ดู"/>
+<l:gentext key="glosssee" text="ดู"/>
+<l:gentext key="GlossSeeAlso" text="ดูเพิ่มเติม"/>
+<l:gentext key="glossseealso" text="ดูเพิ่มเติม"/>
+<l:gentext key="IMPORTANT" text="ข้อควรจำ"/>
+<l:gentext key="important" text="ข้อควรจำ"/>
+<l:gentext key="Important" text="ข้อควรจำ"/>
+<l:gentext key="Index" text="ดรรชนี"/>
+<l:gentext key="index" text="ดรรชนี"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="ข้อผูกพันตามกฎหมาย"/>
+<l:gentext key="legalnotice" text="ข้อผูกพันตามกฎหมาย"/>
+<l:gentext key="MsgAud" text="ผู้อ่าน"/>
+<l:gentext key="msgaud" text="ผู้อ่าน"/>
+<l:gentext key="MsgLevel" text="ระดับ"/>
+<l:gentext key="msglevel" text="ระดับ"/>
+<l:gentext key="MsgOrig" text="ที่มา"/>
+<l:gentext key="msgorig" text="ที่มา"/>
+<l:gentext key="NOTE" text="หมายเหตุ"/>
+<l:gentext key="Note" text="หมายเหตุ"/>
+<l:gentext key="note" text="หมายเหตุ"/>
+<l:gentext key="Part" text="ภาค"/>
+<l:gentext key="part" text="ภาค"/>
+<l:gentext key="Preface" text="คำนำ"/>
+<l:gentext key="preface" text="คำนำ"/>
+<l:gentext key="Procedure" text="ระเบียบการ"/>
+<l:gentext key="procedure" text="ระเบียบการ"/>
+<l:gentext key="ProductionSet" text="ผลิต"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="ตีพิมพ์"/>
+<l:gentext key="published" text="ตีพิมพ์"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="ถาม-ตอบ"/>
+<l:gentext key="qandadiv" text="ถาม-ตอบ"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="ถาม:"/>
+<l:gentext key="question" text="ถาม:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="หนังสืออ้างอิง"/>
+<l:gentext key="reference" text="หนังสืออ้างอิง"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="ชื่อ"/>
+<l:gentext key="refname" text="ชื่อ"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="สาระสำคัญ"/>
+<l:gentext key="refsynopsisdiv" text="สาระสำคัญ"/>
+<l:gentext key="RevHistory" text="บันทึกรุ่น"/>
+<l:gentext key="revhistory" text="บันทึกรุ่น"/>
+<l:gentext key="revision" text="รุ่นที่"/>
+<l:gentext key="Revision" text="รุ่นที่"/>
+<l:gentext key="sect1" text="ตอนที่"/>
+<l:gentext key="sect2" text="ตอนที่"/>
+<l:gentext key="sect3" text="ตอนที่"/>
+<l:gentext key="sect4" text="ตอนที่"/>
+<l:gentext key="sect5" text="ตอนที่"/>
+<l:gentext key="section" text="ตอนที่"/>
+<l:gentext key="Section" text="ตอนที่"/>
+<l:gentext key="see" text="ดู"/>
+<l:gentext key="See" text="ดู"/>
+<l:gentext key="seealso" text="ดูเพิ่มเติม"/>
+<l:gentext key="Seealso" text="ดูเพิ่มเติม"/>
+<l:gentext key="SeeAlso" text="ดูเพิ่มเติม"/>
+<l:gentext key="set" text="ชุด"/>
+<l:gentext key="Set" text="ชุด"/>
+<l:gentext key="setindex" text="สารบัญชุด"/>
+<l:gentext key="SetIndex" text="สารบัญชุด"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="ลำดับ"/>
+<l:gentext key="Step" text="ลำดับ"/>
+<l:gentext key="table" text="ตาราง"/>
+<l:gentext key="Table" text="ตาราง"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="คำแนะนำ"/>
+<l:gentext key="TIP" text="คำแนะนำ"/>
+<l:gentext key="Tip" text="คำแนะนำ"/>
+<l:gentext key="Warning" text="คำเตือน"/>
+<l:gentext key="warning" text="คำเตือน"/>
+<l:gentext key="WARNING" text="คำเตือน"/>
+<l:gentext key="and" text="และ"/>
+<l:gentext key="or" text="หรือ"/>
+<l:gentext key="by" text="โดย"/>
+<l:gentext key="Edited" text="เรียบเรียง"/>
+<l:gentext key="edited" text="เรียบเรียง"/>
+<l:gentext key="Editedby" text="เรียบเรียงโดย"/>
+<l:gentext key="editedby" text="เรียบเรียงโดย"/>
+<l:gentext key="in" text="ใน"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="หมายเหตุ"/>
+<l:gentext key="Notes" text="หมายเหตุ"/>
+<l:gentext key="Pgs" text="หน้า"/>
+<l:gentext key="pgs" text="หน้า"/>
+<l:gentext key="Revisedby" text="แก้ไขปรับปรุงโดย: "/>
+<l:gentext key="revisedby" text="แก้ไขปรับปรุงโดย: "/>
+<l:gentext key="TableNotes" text="หมายเหตุ"/>
+<l:gentext key="tablenotes" text="หมายเหตุ"/>
+<l:gentext key="TableofContents" text="สารบัญ"/>
+<l:gentext key="tableofcontents" text="สารบัญ"/>
+<l:gentext key="unexpectedelementname" text="พบส่วนที่ไม่ต้องการ"/>
+<l:gentext key="unsupported" text="ไม่สนับสนุน"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="สารบัญสมการ"/>
+<l:gentext key="ListofEquations" text="สารบัญสมการ"/>
+<l:gentext key="ListofExamples" text="สารบัญตัวอย่าง"/>
+<l:gentext key="listofexamples" text="สารบัญตัวอย่าง"/>
+<l:gentext key="ListofFigures" text="สารบัญรูป"/>
+<l:gentext key="listoffigures" text="สารบัญรูป"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="สารบัญตาราง"/>
+<l:gentext key="ListofTables" text="สารบัญตาราง"/>
+<l:gentext key="ListofUnknown" text="สารบัญอื่น ๆ"/>
+<l:gentext key="listofunknown" text="สารบัญอื่น ๆ"/>
+<l:gentext key="nav-home" text="หน้าแรก"/>
+<l:gentext key="nav-next" text="ต่อไป"/>
+<l:gentext key="nav-next-sibling" text="ต่อไป"/>
+<l:gentext key="nav-prev" text="ก่อนหน้า"/>
+<l:gentext key="nav-prev-sibling" text="ก่อนหน้า"/>
+<l:gentext key="nav-up" text="กลับ"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="หัวข้อ"/>
+<l:gentext key="index symbols" text="สัญลักษณ์"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="ภาคผนวก %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="บทที่ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="สมการ %n. %t"/>
+<l:template name="example" text="ตัวอย่าง %n. %t"/>
+<l:template name="figure" text="รูป %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="ภาค %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="ระเบียบการ %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="ผลิต %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="ตาราง %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="ภาคผนวก %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="บทที่ %n. %t"/>
+<l:template name="part" text="ภาค %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="ตอบ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="ถาม: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="ถาม: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="หัวข้อ “%t”"/>
+<l:template name="refsection" text="หัวข้อ “%t”"/>
+<l:template name="refsect1" text="หัวข้อ “%t”"/>
+<l:template name="refsect2" text="หัวข้อ “%t”"/>
+<l:template name="refsect3" text="หัวข้อ “%t”"/>
+<l:template name="sect1" text="หัวข้อ “%t”"/>
+<l:template name="sect2" text="หัวข้อ “%t”"/>
+<l:template name="sect3" text="หัวข้อ “%t”"/>
+<l:template name="sect4" text="หัวข้อ “%t”"/>
+<l:template name="sect5" text="หัวข้อ “%t”"/>
+<l:template name="section" text="หัวข้อ “%t”"/>
+<l:template name="simplesect" text="หัวข้อ “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="ตอบ: %n"/>
+<l:template name="appendix" text="ภาคผนวก %n"/>
+<l:template name="bridgehead" text="ตอนที่ %n"/>
+<l:template name="chapter" text="บทที่ %n"/>
+<l:template name="equation" text="สมการ %n"/>
+<l:template name="example" text="ตัวอย่าง %n"/>
+<l:template name="figure" text="รูป %n"/>
+<l:template name="part" text="ภาค %n"/>
+<l:template name="procedure" text="ระเบียบการ %n"/>
+<l:template name="productionset" text="ผลิต %n"/>
+<l:template name="qandadiv" text="ถาม-ตอบ %n"/>
+<l:template name="qandaentry" text="ถาม: %n"/>
+<l:template name="question" text="ถาม: %n"/>
+<l:template name="sect1" text="ตอนที่ %n"/>
+<l:template name="sect2" text="ตอนที่ %n"/>
+<l:template name="sect3" text="ตอนที่ %n"/>
+<l:template name="sect4" text="ตอนที่ %n"/>
+<l:template name="sect5" text="ตอนที่ %n"/>
+<l:template name="section" text="ตอนที่ %n"/>
+<l:template name="table" text="ตาราง %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="ภาคผนวก %n, %t"/>
+<l:template name="bridgehead" text="ตอนที่ %n, “%t”"/>
+<l:template name="chapter" text="บทที่ %n, %t"/>
+<l:template name="equation" text="สมการ %n, “%t”"/>
+<l:template name="example" text="ตัวอย่าง %n, “%t”"/>
+<l:template name="figure" text="รูป %n, “%t”"/>
+<l:template name="part" text="ภาค %n, “%t”"/>
+<l:template name="procedure" text="ระเบียบการ %n, “%t”"/>
+<l:template name="productionset" text="ผลิต %n, “%t”"/>
+<l:template name="qandadiv" text="ถาม-ตอบ %n, “%t”"/>
+<l:template name="refsect1" text="หัวข้อ “%t”"/>
+<l:template name="refsect2" text="หัวข้อ “%t”"/>
+<l:template name="refsect3" text="หัวข้อ “%t”"/>
+<l:template name="refsection" text="หัวข้อ “%t”"/>
+<l:template name="sect1" text="ตอนที่ %n, “%t”"/>
+<l:template name="sect2" text="ตอนที่ %n, “%t”"/>
+<l:template name="sect3" text="ตอนที่ %n, “%t”"/>
+<l:template name="sect4" text="ตอนที่ %n, “%t”"/>
+<l:template name="sect5" text="ตอนที่ %n, “%t”"/>
+<l:template name="section" text="ตอนที่ %n, “%t”"/>
+<l:template name="simplesect" text="หัวข้อ “%t”"/>
+<l:template name="table" text="ตาราง %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" และ "/>
+<l:template name="seplast" text=", และ "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="ดู %t."/>
+<l:template name="seealso" text="ดูเพิ่มเติม %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="ผู้อ่าน: "/>
+<l:template name="MsgLevel" text="ระดับ: "/>
+<l:template name="MsgOrig" text="ที่มา: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x041e Thai"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/titles.xsl b/applications/content/template/docbook/common/titles.xsl
new file mode 100644
index 0000000..e3025b1
--- /dev/null
+++ b/applications/content/template/docbook/common/titles.xsl
@@ -0,0 +1,807 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                xmlns:xlink="http://www.w3.org/1999/xlink"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- title markup -->
+
+<doc:mode mode="title.markup" xmlns="">
+<refpurpose>Provides access to element titles</refpurpose>
+<refdescription id="title.markup-desc">
+<para>Processing an element in the
+<literal role="mode">title.markup</literal> mode produces the
+title of the element. This does not include the label.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:choose>
+    <!-- * FIXME: this should handle other *info elements as well -->
+    <!-- * but this is good enough for now. -->
+    <xsl:when test="title|info/title">
+      <xsl:apply-templates select="(title|info/title)[1]" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'partintro'">
+      <!-- partintro's don't have titles, use the parent (part or reference)
+           title instead. -->
+      <xsl:apply-templates select="parent::*" mode="title.markup"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$verbose != 0">
+        <xsl:message>
+          <xsl:text>Request for title of element with no title: </xsl:text>
+          <xsl:value-of select="local-name(.)"/>
+          <xsl:choose>
+            <xsl:when test="@id">
+              <xsl:text> (id="</xsl:text>
+              <xsl:value-of select="@id"/>
+              <xsl:text>")</xsl:text>
+            </xsl:when>
+            <xsl:when test="@xml:id">
+              <xsl:text> (xml:id="</xsl:text>
+              <xsl:value-of select="@xml:id"/>
+              <xsl:text>")</xsl:text>
+            </xsl:when>
+          </xsl:choose>
+        </xsl:message>
+      </xsl:if>
+      <xsl:text>???TITLE???</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="title" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+
+  <xsl:choose>
+    <xsl:when test="$allow-anchors != 0">
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="no.anchor.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- only occurs in HTML Tables! -->
+<xsl:template match="caption" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+
+  <xsl:choose>
+    <xsl:when test="$allow-anchors != 0">
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="no.anchor.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="set" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:apply-templates select="(setinfo/title|info/title|title)[1]"
+                       mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="book" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:apply-templates select="(bookinfo/title|info/title|title)[1]"
+                       mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="part" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:apply-templates select="(partinfo/title|info/title|docinfo/title|title)[1]"
+                       mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+
+<!--
+  <xsl:message>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$allow-anchors"/>
+  </xsl:message>
+-->
+
+  <xsl:variable name="title" select="(docinfo/title
+                                      |info/title
+                                      |prefaceinfo/title
+                                      |chapterinfo/title
+                                      |appendixinfo/title
+                                      |title)[1]"/>
+  <xsl:apply-templates select="$title" mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="dedication" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:choose>
+    <xsl:when test="title|info/title">
+      <xsl:apply-templates select="(title|info/title)[1]" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Dedication'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="acknowledgements" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:choose>
+    <xsl:when test="title|info/title">
+      <xsl:apply-templates select="(title|info/title)[1]" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Acknowledgements'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="colophon" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:choose>
+    <xsl:when test="title|info/title">
+      <xsl:apply-templates select="(title|info/title)[1]" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Colophon'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:variable name="title" select="(artheader/title
+                                      |articleinfo/title
+                                      |info/title
+                                      |title)[1]"/>
+
+  <xsl:apply-templates select="$title" mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="reference" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:apply-templates select="(referenceinfo/title|docinfo/title|info/title|title)[1]"
+                       mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:variable name="refmeta" select=".//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select=".//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+  <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/>
+
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]" mode="title.markup"/>
+      </xsl:when>
+      <xsl:when test="$refdesc">
+        <xsl:apply-templates select="$refdesc" mode="title.markup"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]" mode="title.markup"/>
+      </xsl:when>
+      <xsl:otherwise>REFENTRY WITHOUT TITLE???</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:copy-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="refentrytitle|refname|refdescriptor" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:choose>
+    <xsl:when test="$allow-anchors != 0">
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="no.anchor.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="section
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3|refsection
+                     |topic
+                     |simplesect"
+              mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:variable name="title" select="(info/title
+                                      |sectioninfo/title
+                                      |sect1info/title
+                                      |sect2info/title
+                                      |sect3info/title
+                                      |sect4info/title
+                                      |sect5info/title
+                                      |refsect1info/title
+                                      |refsect2info/title
+                                      |refsect3info/title
+                                      |refsectioninfo/title
+                                      |title)[1]"/>
+
+  <xsl:apply-templates select="$title" mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="title.markup">
+  <xsl:apply-templates mode="title.markup"/>
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:choose>
+    <xsl:when test="title|info/title">
+      <xsl:apply-templates select="(title|info/title)[1]" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'RefSynopsisDiv'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:variable name="title" select="(bibliographyinfo/title|info/title|title)[1]"/>
+  <xsl:choose>
+    <xsl:when test="$title">
+      <xsl:apply-templates select="$title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Bibliography'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossary" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:variable name="title" select="(glossaryinfo/title|info/title|title)[1]"/>
+  <xsl:choose>
+    <xsl:when test="$title">
+      <xsl:apply-templates select="$title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.element.name">
+        <xsl:with-param name="element.name" select="local-name(.)"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossdiv" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:variable name="title" select="(info/title|title)[1]"/>
+  <xsl:choose>
+    <xsl:when test="$title">
+      <xsl:apply-templates select="$title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>ERROR: glossdiv missing its required title</xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossentry" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:apply-templates select="glossterm" mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="glossterm|firstterm" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+
+  <xsl:choose>
+    <xsl:when test="$allow-anchors != 0">
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="no.anchor.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="index" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:variable name="title" select="(indexinfo/title|info/title|title)[1]"/>
+  <xsl:choose>
+    <xsl:when test="$title">
+      <xsl:apply-templates select="$title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Index'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:variable name="title" select="(setindexinfo/title|info/title|title)[1]"/>
+  <xsl:choose>
+    <xsl:when test="$title">
+      <xsl:apply-templates select="$title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'SetIndex'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure|example|equation" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:apply-templates select="(title|info/title)[1]" mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="table" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:apply-templates select="(title|info/title|caption)[1]" mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="procedure" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:apply-templates select="(title|info/title)[1]" mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="task" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:apply-templates select="(title|info/title)[1]" mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="sidebar" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:apply-templates select="(info/title|sidebarinfo/title|title)[1]"
+                       mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="abstract" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:choose>
+    <xsl:when test="title|info/title">
+      <xsl:apply-templates select="(title|info/title)[1]" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Abstract'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="caution|tip|warning|important|note" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:variable name="title" select="(title|info/title)[1]"/>
+  <xsl:choose>
+    <xsl:when test="$title">
+      <xsl:apply-templates select="$title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key">
+          <xsl:choose>
+            <xsl:when test="local-name(.)='note'">Note</xsl:when>
+            <xsl:when test="local-name(.)='important'">Important</xsl:when>
+            <xsl:when test="local-name(.)='caution'">Caution</xsl:when>
+            <xsl:when test="local-name(.)='warning'">Warning</xsl:when>
+            <xsl:when test="local-name(.)='tip'">Tip</xsl:when>
+          </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question" mode="title.markup">
+  <!-- questions don't have titles -->
+  <xsl:text>Question</xsl:text>
+</xsl:template>
+
+<xsl:template match="answer" mode="title.markup">
+  <!-- answers don't have titles -->
+  <xsl:text>Answer</xsl:text>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="title.markup">
+  <!-- qandaentrys are represented by the first question in them -->
+  <xsl:text>Question</xsl:text>
+</xsl:template>
+
+<xsl:template match="qandaset" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:variable name="title" select="(info/title|
+                                      blockinfo/title|
+                                      title)[1]"/>
+  <xsl:choose>
+    <xsl:when test="$title">
+      <xsl:apply-templates select="$title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'QandASet'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:choose>
+    <xsl:when test="title|info/title">
+      <xsl:apply-templates select="(title|info/title)[1]" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'LegalNotice'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="titleabbrev.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="titleabbrev">
+      <xsl:apply-templates select="titleabbrev[1]" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="info/titleabbrev">
+      <xsl:apply-templates select="info/titleabbrev[1]" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="." mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="book|preface|chapter|appendix" mode="titleabbrev.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:variable name="titleabbrev" select="(docinfo/titleabbrev
+                                           |bookinfo/titleabbrev
+                                           |info/titleabbrev
+                                           |prefaceinfo/titleabbrev
+                                           |chapterinfo/titleabbrev
+                                           |appendixinfo/titleabbrev
+                                           |titleabbrev)[1]"/>
+
+  <xsl:choose>
+    <xsl:when test="$titleabbrev">
+      <xsl:apply-templates select="$titleabbrev" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="." mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="titleabbrev.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:variable name="titleabbrev" select="(artheader/titleabbrev
+                                           |articleinfo/titleabbrev
+                                           |info/titleabbrev
+                                           |titleabbrev)[1]"/>
+
+  <xsl:choose>
+    <xsl:when test="$titleabbrev">
+      <xsl:apply-templates select="$titleabbrev" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="." mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="section
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3
+                     |topic
+                     |simplesect"
+              mode="titleabbrev.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:variable name="titleabbrev" select="(info/titleabbrev
+                                            |sectioninfo/titleabbrev
+                                            |sect1info/titleabbrev
+                                            |sect2info/titleabbrev
+                                            |sect3info/titleabbrev
+                                            |sect4info/titleabbrev
+                                            |sect5info/titleabbrev
+                                            |refsect1info/titleabbrev
+                                            |refsect2info/titleabbrev
+                                            |refsect3info/titleabbrev
+                                            |titleabbrev)[1]"/>
+
+  <xsl:choose>
+    <xsl:when test="$titleabbrev">
+      <xsl:apply-templates select="$titleabbrev" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="." mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+
+  <xsl:choose>
+    <xsl:when test="$allow-anchors != 0">
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="no.anchor.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="no.anchor.mode">
+  <!-- Switch to normal mode if no links -->
+  <xsl:choose>
+    <xsl:when test="descendant-or-self::footnote or
+                    descendant-or-self::anchor or
+                    descendant-or-self::ulink or
+                    descendant-or-self::link or
+                    descendant-or-self::olink or
+                    descendant-or-self::xref or
+                    descendant-or-self::indexterm or
+		    (ancestor::title and (@id or @xml:id))">
+
+      <xsl:apply-templates mode="no.anchor.mode"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="."/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="footnote" mode="no.anchor.mode">
+  <!-- nop, suppressed -->
+</xsl:template>
+
+<xsl:template match="anchor" mode="no.anchor.mode">
+  <!-- nop, suppressed -->
+</xsl:template>
+
+<xsl:template match="ulink" mode="no.anchor.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="link" mode="no.anchor.mode">
+  <xsl:choose>
+    <xsl:when test="count(child::node()) &gt; 0">
+      <!-- If it has content, use it -->
+      <xsl:apply-templates/>
+    </xsl:when>
+	<!-- look for an endterm -->
+    <xsl:when test="@endterm">
+      <xsl:variable name="etargets" select="key('id',@endterm)"/>
+      <xsl:variable name="etarget" select="$etargets[1]"/>
+      <xsl:choose>
+	<xsl:when test="count($etarget) = 0">
+          <xsl:message>
+	    <xsl:value-of select="count($etargets)"/>
+	    <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+	    <xsl:value-of select="@endterm"/>
+          </xsl:message>
+	  <xsl:text>???</xsl:text>
+	</xsl:when>
+        <xsl:otherwise>
+	  <xsl:apply-templates select="$etarget" mode="endterm"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="olink" mode="no.anchor.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="no.anchor.mode">
+  <!-- nop, suppressed -->
+</xsl:template>
+
+<xsl:template match="xref" mode="no.anchor.mode">
+  <xsl:variable name="targets" select="key('id',@linkend)|key('id',substring-after(@xlink:href,'#'))"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="refelem" select="local-name($target)"/>
+  
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:choose>
+    <xsl:when test="count($target) = 0">
+      <xsl:message>
+        <xsl:text>XRef to nonexistent id: </xsl:text>
+        <xsl:value-of select="@linkend"/> 
+        <xsl:value-of select="@xlink:href"/>
+      </xsl:message>
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+
+    <xsl:when test="@endterm">
+      <xsl:variable name="etargets" select="key('id',@endterm)"/>
+      <xsl:variable name="etarget" select="$etargets[1]"/>
+      <xsl:choose>
+        <xsl:when test="count($etarget) = 0">
+          <xsl:message>
+            <xsl:value-of select="count($etargets)"/>
+            <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+            <xsl:value-of select="@endterm"/>
+          </xsl:message>
+          <xsl:text>???</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$etarget" mode="endterm"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="$target/@xreflabel">
+      <xsl:call-template name="xref.xreflabel">
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+   
+      <xsl:choose>
+	<!-- Watch out for the case when there is a xref or link inside 
+	     a title. See bugs #1811721 and #1838136. -->
+	<xsl:when test="not(ancestor::*[@id = $target/@id] or ancestor::*[@xml:id = $target/@xml:id])">
+
+	  <xsl:apply-templates select="$target" mode="xref-to-prefix"/>
+	  
+	  <xsl:apply-templates select="$target" mode="xref-to">
+	    
+	    <xsl:with-param name="referrer" select="."/>
+	    <xsl:with-param name="xrefstyle">
+	      <xsl:choose>
+		<xsl:when test="@role and not(@xrefstyle) and $use.role.as.xrefstyle != 0">
+		  <xsl:value-of select="@role"/>
+		</xsl:when>
+		<xsl:otherwise>
+		  <xsl:value-of select="@xrefstyle"/>
+		</xsl:otherwise>
+	      </xsl:choose>
+	    </xsl:with-param>
+	  </xsl:apply-templates>
+	  
+	  <xsl:apply-templates select="$target" mode="xref-to-suffix"/>
+	</xsl:when>
+	
+	<xsl:otherwise>
+	  <xsl:apply-templates/>
+	</xsl:otherwise>
+      
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<!-- ============================================================ -->
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/common/tl.xml b/applications/content/template/docbook/common/tl.xml
new file mode 100644
index 0000000..f21c819
--- /dev/null
+++ b/applications/content/template/docbook/common/tl.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="tl" english-language-name="Tagalog">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/tl.xml -->
+<!-- * -->
+<!-- * E-mail the edited tl.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Abstrak"/>
+<l:gentext key="abstract" text="Abstrak"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="Sagot:"/>
+<l:gentext key="answer" text="Sagot:"/>
+<l:gentext key="Appendix" text="Apendiks"/>
+<l:gentext key="appendix" text="Apendiks"/>
+<l:gentext key="Article" text="Artikulo"/>
+<l:gentext key="article" text="Artikulo"/>
+<l:gentext key="Author" text="May Akda"/>
+<l:gentext key="Bibliography" text="Bibliograpiya"/>
+<l:gentext key="bibliography" text="Bibliograpiya"/>
+<l:gentext key="Book" text="Libro"/>
+<l:gentext key="book" text="Libro"/>
+<l:gentext key="CAUTION" text="BABALA"/>
+<l:gentext key="Caution" text="Babala"/>
+<l:gentext key="caution" text="Babala"/>
+<l:gentext key="Chapter" text="Kabanata"/>
+<l:gentext key="chapter" text="Kabanata"/>
+<l:gentext key="Colophon" text="Kolopon"/>
+<l:gentext key="colophon" text="Kolopon"/>
+<l:gentext key="Copyright" text="Copyright"/>
+<l:gentext key="copyright" text="Copyright"/>
+<l:gentext key="Dedication" text="Pag-aalay"/>
+<l:gentext key="dedication" text="Pag-aalay"/>
+<l:gentext key="Edition" text="Edisyon"/>
+<l:gentext key="edition" text="Ediisyon"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Equation"/>
+<l:gentext key="equation" text="Equation"/>
+<l:gentext key="Example" text="Halimbawa"/>
+<l:gentext key="example" text="Halimbawa"/>
+<l:gentext key="Figure" text="Pigyur"/>
+<l:gentext key="figure" text="Pigyur"/>
+<l:gentext key="Glossary" text="Talahuguhanan"/>
+<l:gentext key="glossary" text="Talahuguhanan"/>
+<l:gentext key="GlossSee" text="Tingnan Ang"/>
+<l:gentext key="glosssee" text="Tingnan Ang"/>
+<l:gentext key="GlossSeeAlso" text="Tingnan Din Ang"/>
+<l:gentext key="glossseealso" text="Tingnan din ang"/>
+<l:gentext key="IMPORTANT" text="MAHALAGA"/>
+<l:gentext key="important" text="Mahalaga"/>
+<l:gentext key="Important" text="Mahalaga"/>
+<l:gentext key="Index" text="Indeks"/>
+<l:gentext key="index" text="Indeks"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Paunawang Legal"/>
+<l:gentext key="legalnotice" text="Paunawang Legal"/>
+<l:gentext key="MsgAud" text="Awdiyens"/>
+<l:gentext key="msgaud" text="Awdiyens"/>
+<l:gentext key="MsgLevel" text="Lebel"/>
+<l:gentext key="msglevel" text="Lebel"/>
+<l:gentext key="MsgOrig" text="Pinagmulan"/>
+<l:gentext key="msgorig" text="Pinagmulan"/>
+<l:gentext key="NOTE" text="TALA"/>
+<l:gentext key="Note" text="Tala"/>
+<l:gentext key="note" text="Tala"/>
+<l:gentext key="Part" text="Bahagi"/>
+<l:gentext key="part" text="Bahagi"/>
+<l:gentext key="Preface" text="Panimula"/>
+<l:gentext key="preface" text="Panimula"/>
+<l:gentext key="Procedure" text="Mga Hakbang"/>
+<l:gentext key="procedure" text="Mga Hakbang"/>
+<l:gentext key="ProductionSet" text="Produksiyon"/>
+<l:gentext key="PubDate" text="Petsa ng Paglimbag"/>
+<l:gentext key="pubdate" text="Petsa ng Paglimbag"/>
+<l:gentext key="Published" text="Nalimbag"/>
+<l:gentext key="published" text="Nalimbag"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="Tanong at Sagot"/>
+<l:gentext key="qandadiv" text="Tanong at Sagot"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Tanong:"/>
+<l:gentext key="question" text="Tanong:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Reperens"/>
+<l:gentext key="reference" text="Reperens"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Pangalan"/>
+<l:gentext key="refname" text="Pangalan"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Buod"/>
+<l:gentext key="refsynopsisdiv" text="Buod"/>
+<l:gentext key="RevHistory" text="Talaan Ng Mga Rebisyon"/>
+<l:gentext key="revhistory" text="Talaan ng mga Rebisyon"/>
+<l:gentext key="revision" text="Rebisyon"/>
+<l:gentext key="Revision" text="Revision"/>
+<l:gentext key="sect1" text="Bahagi"/>
+<l:gentext key="sect2" text="Bahagi"/>
+<l:gentext key="sect3" text="Bahagi"/>
+<l:gentext key="sect4" text="Bahagi"/>
+<l:gentext key="sect5" text="Bahagi"/>
+<l:gentext key="section" text="Bahagi"/>
+<l:gentext key="Section" text="Bahagi"/>
+<l:gentext key="see" text="tingnan"/>
+<l:gentext key="See" text="Tingnan"/>
+<l:gentext key="seealso" text="tingnan din ang"/>
+<l:gentext key="Seealso" text="Tingnan din ang"/>
+<l:gentext key="SeeAlso" text="Tingnan Din Ang"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Indeks ng Set"/>
+<l:gentext key="SetIndex" text="Indeks ng Set"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="sidebar"/>
+<l:gentext key="step" text="hakbang"/>
+<l:gentext key="Step" text="Hakbang"/>
+<l:gentext key="table" text="Talaan"/>
+<l:gentext key="Table" text="Talaan"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Tip"/>
+<l:gentext key="TIP" text="TIP"/>
+<l:gentext key="Tip" text="Tip"/>
+<l:gentext key="Warning" text="Babala"/>
+<l:gentext key="warning" text="Babala"/>
+<l:gentext key="WARNING" text="BABALA"/>
+<l:gentext key="and" text="at"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="ni"/>
+<l:gentext key="Edited" text="In-edit"/>
+<l:gentext key="edited" text="In-edit"/>
+<l:gentext key="Editedby" text="In-edit ni"/>
+<l:gentext key="editedby" text="In-edit ni"/>
+<l:gentext key="in" text="sa"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Mga tala"/>
+<l:gentext key="Notes" text="Mga Tala"/>
+<l:gentext key="Pgs" text="p."/>
+<l:gentext key="pgs" text="p."/>
+<l:gentext key="Revisedby" text="Nirebisa ni: "/>
+<l:gentext key="revisedby" text="Nirebisa ni: "/>
+<l:gentext key="TableNotes" text="Mga Tala"/>
+<l:gentext key="tablenotes" text="Mga Tala"/>
+<l:gentext key="TableofContents" text="Talaan ng Nilalaman"/>
+<l:gentext key="tableofcontents" text="Talaan ng Nilalaman"/>
+<l:gentext key="unexpectedelementname" text="hindi inaasahang element"/>
+<l:gentext key="unsupported" text="hindi sinusuportahan"/>
+<l:gentext key="xrefto" text="xref sa"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Listahan ng mga Ekwasyon"/>
+<l:gentext key="ListofEquations" text="Listahan Ng Mga Ekwasyon"/>
+<l:gentext key="ListofExamples" text="Listahan Ng Mga Halimbawa"/>
+<l:gentext key="listofexamples" text="Listahan ng mga Halimbawa"/>
+<l:gentext key="ListofFigures" text="Listahan Ng Mga Pigyur "/>
+<l:gentext key="listoffigures" text="Listahan ng mga Pigyur"/>
+<l:gentext key="ListofProcedures" text="Listahan Ng Mga Prosidyur"/>
+<l:gentext key="listofprocedures" text="Listahan ng mga Prosidyur"/>
+<l:gentext key="listoftables" text="Listahan ng mga Talaan"/>
+<l:gentext key="ListofTables" text="Listahan Ng Mga Talaan"/>
+<l:gentext key="ListofUnknown" text="Listahan Ng Mga Di Alam"/>
+<l:gentext key="listofunknown" text="Listahan ng mga Di Alam"/>
+<l:gentext key="nav-home" text="Home"/>
+<l:gentext key="nav-next" text="Sulong"/>
+<l:gentext key="nav-next-sibling" text="Mabilis na pasulong"/>
+<l:gentext key="nav-prev" text="Balik"/>
+<l:gentext key="nav-prev-sibling" text="Mabilis na pabalik"/>
+<l:gentext key="nav-up" text="Taas"/>
+<l:gentext key="nav-toc" text="TnN"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="taas"/>
+<l:gentext key="below" text="baba"/>
+<l:gentext key="sectioncalled" text="ang bahaging tinatawag na"/>
+<l:gentext key="index symbols" text="Mga simbolo"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Apendiks %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Kabanata %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Equation %n. %t"/>
+<l:template name="example" text="Halimbawa %n. %t"/>
+<l:template name="figure" text="Pigyur %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Bahagi %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Mga Hakbang %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Produksiyon %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Talaan %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Apendiks %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Kabanata %n. %t"/>
+<l:template name="part" text="Bahagi %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Sagot: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Tanong: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Tanong: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" sa %o"/>
+<l:template name="olink.page.citation" text=" (pahina %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(pahina %p)"/>
+<l:template name="docname" text=" sa %o"/>
+<l:template name="docnamelong" text=" sa dokumento na %o"/>
+<l:template name="pageabbrev" text="(p. %p)"/>
+<l:template name="Page" text="Pahina %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsection" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsect1" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsect2" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsect3" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="sect1" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="sect2" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="sect3" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="sect4" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="sect5" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="section" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="simplesect" text="ang bahaging tinatawag na “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Sagot: %n"/>
+<l:template name="appendix" text="Apendiks %n"/>
+<l:template name="bridgehead" text="Bahagi %n"/>
+<l:template name="chapter" text="Kabanata %n"/>
+<l:template name="equation" text="Equation %n"/>
+<l:template name="example" text="Halimbawa %n"/>
+<l:template name="figure" text="Pigyur %n"/>
+<l:template name="part" text="Bahagi %n"/>
+<l:template name="procedure" text="Mga Hakbang %n"/>
+<l:template name="productionset" text="Produksiyon %n"/>
+<l:template name="qandadiv" text="Tanong at Sagot %n"/>
+<l:template name="qandaentry" text="Tanong: %n"/>
+<l:template name="question" text="Tanong: %n"/>
+<l:template name="sect1" text="Bahagi %n"/>
+<l:template name="sect2" text="Bahagi %n"/>
+<l:template name="sect3" text="Bahagi %n"/>
+<l:template name="sect4" text="Bahagi %n"/>
+<l:template name="sect5" text="Bahagi %n"/>
+<l:template name="section" text="Bahagi %n"/>
+<l:template name="table" text="Talaan %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Apendiks %n, %t"/>
+<l:template name="bridgehead" text="Bahagi %n, “%t”"/>
+<l:template name="chapter" text="Kabanata %n, %t"/>
+<l:template name="equation" text="Equation %n, “%t”"/>
+<l:template name="example" text="Halimbawa %n, “%t”"/>
+<l:template name="figure" text="Pigyur %n, “%t”"/>
+<l:template name="part" text="Bahagi %n, “%t”"/>
+<l:template name="procedure" text="Mga Hakbang %n, “%t”"/>
+<l:template name="productionset" text="Produksiyon %n, “%t”"/>
+<l:template name="qandadiv" text="Tanong at Sagot %n, “%t”"/>
+<l:template name="refsect1" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsect2" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsect3" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="refsection" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="sect1" text="Bahagi %n, “%t”"/>
+<l:template name="sect2" text="Bahagi %n, “%t”"/>
+<l:template name="sect3" text="Bahagi %n, “%t”"/>
+<l:template name="sect4" text="Bahagi %n, “%t”"/>
+<l:template name="sect5" text="Bahagi %n, “%t”"/>
+<l:template name="section" text="Bahagi %n, “%t”"/>
+<l:template name="simplesect" text="ang bahaging tinatawag na “%t”"/>
+<l:template name="table" text="Talaan %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" at "/>
+<l:template name="seplast" text=", at "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Tingnan Ang %t."/>
+<l:template name="seealso" text="Tingnan Din Ang %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Awdiyens: "/>
+<l:template name="MsgLevel" text="Lebel: "/>
+<l:template name="MsgOrig" text="Pinagmulan: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Depinisyon: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Enero"/>
+<l:template name="February" text="Pebrero"/>
+<l:template name="March" text="Marso"/>
+<l:template name="April" text="Abril"/>
+<l:template name="May" text="Mayo"/>
+<l:template name="June" text="Hunyo"/>
+<l:template name="July" text="Hulyo"/>
+<l:template name="August" text="Agosto"/>
+<l:template name="September" text="Setyembre"/>
+<l:template name="October" text="Oktubre"/>
+<l:template name="November" text="Nobyembre"/>
+<l:template name="December" text="Disyembre"/>
+<l:template name="Monday" text="Lunes"/>
+<l:template name="Tuesday" text="Martes"/>
+<l:template name="Wednesday" text="Miyeskules"/>
+<l:template name="Thursday" text="Huwebes"/>
+<l:template name="Friday" text="Biyernes"/>
+<l:template name="Saturday" text="Sabado"/>
+<l:template name="Sunday" text="Linggo"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Ene"/>
+<l:template name="Feb" text="Peb"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Abr"/>
+<l:template name="May" text="Mayo"/>
+<l:template name="Jun" text="Hun"/>
+<l:template name="Jul" text="Hul"/>
+<l:template name="Aug" text="Ago"/>
+<l:template name="Sep" text="Set"/>
+<l:template name="Oct" text="Okt"/>
+<l:template name="Nov" text="Nob"/>
+<l:template name="Dec" text="Dis"/>
+<l:template name="Mon" text="Lun"/>
+<l:template name="Tue" text="Mar"/>
+<l:template name="Wed" text="Miy"/>
+<l:template name="Thu" text="Huw"/>
+<l:template name="Fri" text="Biy"/>
+<l:template name="Sat" text="Sab"/>
+<l:template name="Sun" text="Lin"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0409 Tagalog (PHILIPPINES)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/tr.xml b/applications/content/template/docbook/common/tr.xml
new file mode 100644
index 0000000..fb98b68
--- /dev/null
+++ b/applications/content/template/docbook/common/tr.xml
@@ -0,0 +1,684 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="tr" english-language-name="Turkish">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/tr.xml -->
+<!-- * -->
+<!-- * E-mail the edited tr.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Özet"/>
+<l:gentext key="abstract" text="Özet"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="Cevap:"/>
+<l:gentext key="answer" text="Cevap:"/>
+<l:gentext key="Appendix" text="Ek"/>
+<l:gentext key="appendix" text="Ek"/>
+<l:gentext key="Article" text="Makale"/>
+<l:gentext key="article" text="Makale"/>
+<l:gentext key="Author" text="Yazar"/>
+<l:gentext key="Bibliography" text="Kaynakça"/>
+<l:gentext key="bibliography" text="Kaynakça"/>
+<l:gentext key="Book" text="Kitap"/>
+<l:gentext key="book" text="Kitap"/>
+<l:gentext key="CAUTION" text="DİKKAT"/>
+<l:gentext key="Caution" text="Dikkat"/>
+<l:gentext key="caution" text="Dikkat"/>
+<l:gentext key="Chapter" text="Bölüm"/>
+<l:gentext key="chapter" text="Bölüm"/>
+<l:gentext key="Colophon" text="Kitap hakkında"/>
+<l:gentext key="colophon" text="Kitap hakkında"/>
+<l:gentext key="Copyright" text="Telif Hakkı"/>
+<l:gentext key="copyright" text="Telif Hakkı"/>
+<l:gentext key="Dedication" text="İthaf"/>
+<l:gentext key="dedication" text="İthaf"/>
+<l:gentext key="Edition" text="Baskı"/>
+<l:gentext key="edition" text="Baskı"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Denklem"/>
+<l:gentext key="equation" text="Denklem"/>
+<l:gentext key="Example" text="Örnek"/>
+<l:gentext key="example" text="Örnek"/>
+<l:gentext key="Figure" text="Şekil"/>
+<l:gentext key="figure" text="Şekil"/>
+<l:gentext key="Glossary" text="Sözlük"/>
+<l:gentext key="glossary" text="Sözlük"/>
+<l:gentext key="GlossSee" text="Bkz."/>
+<l:gentext key="glosssee" text="Bkz."/>
+<l:gentext key="GlossSeeAlso" text="Bkz."/>
+<l:gentext key="glossseealso" text="Bkz."/>
+<l:gentext key="IMPORTANT" text="ÖNEMLİ"/>
+<l:gentext key="important" text="Önemli"/>
+<l:gentext key="Important" text="Önemli"/>
+<l:gentext key="Index" text="Dizin"/>
+<l:gentext key="index" text="Dizin"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Yasal Uyarı"/>
+<l:gentext key="legalnotice" text="Yasal Uyarı"/>
+<l:gentext key="MsgAud" text="Hedef Okuyucu"/>
+<l:gentext key="msgaud" text="Hedef Okuyucu"/>
+<l:gentext key="MsgLevel" text="Düzey"/>
+<l:gentext key="msglevel" text="Düzey"/>
+<l:gentext key="MsgOrig" text="Kaynak"/>
+<l:gentext key="msgorig" text="Kaynak"/>
+<l:gentext key="NOTE" text="NOT"/>
+<l:gentext key="Note" text="Not"/>
+<l:gentext key="note" text="Not"/>
+<l:gentext key="Part" text="Kısım"/>
+<l:gentext key="part" text="Kısım"/>
+<l:gentext key="Preface" text="Önsöz"/>
+<l:gentext key="preface" text="Önsöz"/>
+<l:gentext key="Procedure" text="Yönerge"/>
+<l:gentext key="procedure" text="Yönerge"/>
+<l:gentext key="ProductionSet" text="Prodüksiyon"/>
+<l:gentext key="PubDate" text="Yayımlanma Tarihi"/>
+<l:gentext key="pubdate" text="Yayımlanma Tarihi"/>
+<l:gentext key="Published" text="Yayımlanma"/>
+<l:gentext key="published" text="Yayımlanma"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="S ve C"/>
+<l:gentext key="qandadiv" text="S ve C"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="Soru:"/>
+<l:gentext key="question" text="Soru:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Referans"/>
+<l:gentext key="reference" text="Referans"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Referans Adı"/>
+<l:gentext key="refname" text="Referans Adı"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Özet"/>
+<l:gentext key="refsynopsisdiv" text="Özet"/>
+<l:gentext key="RevHistory" text="Baskı Tarihçesi"/>
+<l:gentext key="revhistory" text="Baskı Tarihçesi"/>
+<l:gentext key="revision" text="Baskı"/>
+<l:gentext key="Revision" text="Baskı"/>
+<l:gentext key="sect1" text="Kısım"/>
+<l:gentext key="sect2" text="Kısım"/>
+<l:gentext key="sect3" text="Kısım"/>
+<l:gentext key="sect4" text="Kısım"/>
+<l:gentext key="sect5" text="Kısım"/>
+<l:gentext key="section" text="Kısım"/>
+<l:gentext key="Section" text="Kısım"/>
+<l:gentext key="see" text="bkz."/>
+<l:gentext key="See" text="Bkz."/>
+<l:gentext key="seealso" text="Bkz."/>
+<l:gentext key="Seealso" text="Bakınız"/>
+<l:gentext key="SeeAlso" text="Bakınız"/>
+<l:gentext key="set" text="Takım"/>
+<l:gentext key="Set" text="Takım"/>
+<l:gentext key="setindex" text="Takım Dizini"/>
+<l:gentext key="SetIndex" text="Takım Dizini"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="kenar çubuğu"/>
+<l:gentext key="step" text="adım"/>
+<l:gentext key="Step" text="Adım"/>
+<l:gentext key="table" text="Tablo"/>
+<l:gentext key="Table" text="Tablo"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="İpucu"/>
+<l:gentext key="TIP" text="İPUCU"/>
+<l:gentext key="Tip" text="İpucu"/>
+<l:gentext key="Warning" text="Uyarı"/>
+<l:gentext key="warning" text="Uyarı"/>
+<l:gentext key="WARNING" text="UYARI"/>
+<l:gentext key="and" text="ve"/>
+<l:gentext key="or" text="veya"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="Yayına hazırlayan"/>
+<l:gentext key="edited" text="yayına hazırlayan"/>
+<l:gentext key="Editedby" text="Yayına hazırlayan"/>
+<l:gentext key="editedby" text="yayına hazırlayan"/>
+<l:gentext key="in" text=""/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Notlar"/>
+<l:gentext key="Notes" text="Notlar"/>
+<l:gentext key="Pgs" text="Sayfa"/>
+<l:gentext key="pgs" text="Sayfa"/>
+<l:gentext key="Revisedby" text="Düzeltmeler: "/>
+<l:gentext key="revisedby" text="Düzeltmeler: "/>
+<l:gentext key="TableNotes" text="Notlar"/>
+<l:gentext key="tablenotes" text="Notlar"/>
+<l:gentext key="TableofContents" text="İçindekiler"/>
+<l:gentext key="tableofcontents" text="İçindekiler"/>
+<l:gentext key="unexpectedelementname" text="Beklenmeyen eleman adı"/>
+<l:gentext key="unsupported" text="desteklenmiyor"/>
+<l:gentext key="xrefto" text=""/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Denklemler"/>
+<l:gentext key="ListofEquations" text="Denklemler"/>
+<l:gentext key="ListofExamples" text="Örnekler"/>
+<l:gentext key="listofexamples" text="Örnekler"/>
+<l:gentext key="ListofFigures" text="Şekiller"/>
+<l:gentext key="listoffigures" text="Şekiller"/>
+<l:gentext key="ListofProcedures" text="Yönergeler"/>
+<l:gentext key="listofprocedures" text="Yönergeler"/>
+<l:gentext key="listoftables" text="Tablolar"/>
+<l:gentext key="ListofTables" text="Tablolar"/>
+<l:gentext key="ListofUnknown" text="Bilinmeyenler"/>
+<l:gentext key="listofunknown" text="Bilinmeyenler"/>
+<l:gentext key="nav-home" text="Başlangıç"/>
+<l:gentext key="nav-next" text="Sonraki"/>
+<l:gentext key="nav-next-sibling" text="Sonraki Bölüm"/>
+<l:gentext key="nav-prev" text="Önceki"/>
+<l:gentext key="nav-prev-sibling" text="Önceki Bölüm"/>
+<l:gentext key="nav-up" text="Yukarı"/>
+<l:gentext key="nav-toc" text="İçindekiler"/>
+<l:gentext key="Draft" text="Taslak"/>
+<l:gentext key="above" text="üstünde"/>
+<l:gentext key="below" text="altında"/>
+<l:gentext key="sectioncalled" text=""/>
+<l:gentext key="index symbols" text="Semboller"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcçdefgğhıijklmnoöprsştuüvyz"/>
+<l:gentext key="uppercase.alpha" text="ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="3"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Ek %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Bölüm %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Denklem %n. %t"/>
+<l:template name="example" text="Örnek %n. %t"/>
+<l:template name="figure" text="Şekil %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Kısım %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Yönerge %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Prodüksiyon %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Tablo %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Ek %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Bölüm %n. %t"/>
+<l:template name="part" text="Kısım %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Cevap: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="Soru: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="Soru: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(sayfa %p)"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(shf. %p)"/>
+<l:template name="Page" text="Sayfa %p"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text=" “%t”"/>
+<l:template name="refsection" text=" “%t”"/>
+<l:template name="refsect1" text=" “%t”"/>
+<l:template name="refsect2" text=" “%t”"/>
+<l:template name="refsect3" text=" “%t”"/>
+<l:template name="sect1" text=" “%t”"/>
+<l:template name="sect2" text=" “%t”"/>
+<l:template name="sect3" text=" “%t”"/>
+<l:template name="sect4" text=" “%t”"/>
+<l:template name="sect5" text=" “%t”"/>
+<l:template name="section" text=" “%t”"/>
+<l:template name="simplesect" text=" “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Cevap: %n"/>
+<l:template name="appendix" text="Ek %n"/>
+<l:template name="bridgehead" text="Kısım %n"/>
+<l:template name="chapter" text="Bölüm %n"/>
+<l:template name="equation" text="Denklem %n"/>
+<l:template name="example" text="Örnek %n"/>
+<l:template name="figure" text="Şekil %n"/>
+<l:template name="part" text="Kısım %n"/>
+<l:template name="procedure" text="Yönerge %n"/>
+<l:template name="productionset" text="Prodüksiyon %n"/>
+<l:template name="qandadiv" text="S ve C %n"/>
+<l:template name="qandaentry" text="Soru: %n"/>
+<l:template name="question" text="Soru: %n"/>
+<l:template name="sect1" text="Kısım %n"/>
+<l:template name="sect2" text="Kısım %n"/>
+<l:template name="sect3" text="Kısım %n"/>
+<l:template name="sect4" text="Kısım %n"/>
+<l:template name="sect5" text="Kısım %n"/>
+<l:template name="section" text="Kısım %n"/>
+<l:template name="table" text="Tablo %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Ek %n, %t"/>
+<l:template name="bridgehead" text="Kısım %n, “%t”"/>
+<l:template name="chapter" text="Bölüm %n, %t"/>
+<l:template name="equation" text="Denklem %n, “%t”"/>
+<l:template name="example" text="Örnek %n, “%t”"/>
+<l:template name="figure" text="Şekil %n, “%t”"/>
+<l:template name="part" text="Kısım %n, “%t”"/>
+<l:template name="procedure" text="Yönerge %n, “%t”"/>
+<l:template name="productionset" text="Prodüksiyon %n, “%t”"/>
+<l:template name="qandadiv" text="S ve C %n, “%t”"/>
+<l:template name="refsect1" text=" “%t”"/>
+<l:template name="refsect2" text=" “%t”"/>
+<l:template name="refsect3" text=" “%t”"/>
+<l:template name="refsection" text=" “%t”"/>
+<l:template name="sect1" text="Kısım %n, “%t”"/>
+<l:template name="sect2" text="Kısım %n, “%t”"/>
+<l:template name="sect3" text="Kısım %n, “%t”"/>
+<l:template name="sect4" text="Kısım %n, “%t”"/>
+<l:template name="sect5" text="Kısım %n, “%t”"/>
+<l:template name="section" text="Kısım %n, “%t”"/>
+<l:template name="simplesect" text=" “%t”"/>
+<l:template name="table" text="Tablo %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" ve "/>
+<l:template name="seplast" text=", ve "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Bkz. %t."/>
+<l:template name="seealso" text="Bkz. %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Hedef Okuyucu: "/>
+<l:template name="MsgLevel" text="Düzey: "/>
+<l:template name="MsgOrig" text="Kaynak: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="Ocak"/>
+<l:template name="February" text="Şubat"/>
+<l:template name="March" text="Mart"/>
+<l:template name="April" text="Nisan"/>
+<l:template name="May" text="Mayıs"/>
+<l:template name="June" text="Haziran"/>
+<l:template name="July" text="Temmuz"/>
+<l:template name="August" text="Ağustos"/>
+<l:template name="September" text="Eylül"/>
+<l:template name="October" text="Ekim"/>
+<l:template name="November" text="Kasım"/>
+<l:template name="December" text="Aralık"/>
+<l:template name="Monday" text="Pazartesi"/>
+<l:template name="Tuesday" text="Salı"/>
+<l:template name="Wednesday" text="Çarşamba"/>
+<l:template name="Thursday" text="Perşembe"/>
+<l:template name="Friday" text="Cuma"/>
+<l:template name="Saturday" text="Cumartesi"/>
+<l:template name="Sunday" text="Pazar"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Oca"/>
+<l:template name="Feb" text="Şub"/>
+<l:template name="Mar" text="Mar"/>
+<l:template name="Apr" text="Nis"/>
+<l:template name="May" text="May"/>
+<l:template name="Jun" text="Haz"/>
+<l:template name="Jul" text="Tem"/>
+<l:template name="Aug" text="Ağu"/>
+<l:template name="Sep" text="Eyl"/>
+<l:template name="Oct" text="Eki"/>
+<l:template name="Nov" text="Kas"/>
+<l:template name="Dec" text="Ara"/>
+<l:template name="Mon" text="Pzt"/>
+<l:template name="Tue" text="Sal"/>
+<l:template name="Wed" text="Çar"/>
+<l:template name="Thu" text="Per"/>
+<l:template name="Fri" text="Cum"/>
+<l:template name="Sat" text="Cts"/>
+<l:template name="Sun" text="Paz"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x041f Turkish"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">Semboller</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">Ç</l:l>
+<l:l i="4">ç</l:l>
+<l:l i="5">D</l:l>
+<l:l i="5">d</l:l>
+<l:l i="6">E</l:l>
+<l:l i="6">e</l:l>
+<l:l i="7">F</l:l>
+<l:l i="7">f</l:l>
+<l:l i="8">G</l:l>
+<l:l i="8">g</l:l>
+<l:l i="9">Ğ</l:l>
+<l:l i="9">ğ</l:l>
+<l:l i="10">H</l:l>
+<l:l i="10">h</l:l>
+<l:l i="11">I</l:l>
+<l:l i="11">ı</l:l>
+<l:l i="12">İ</l:l>
+<l:l i="12">i</l:l>
+<l:l i="13">J</l:l>
+<l:l i="13">j</l:l>
+<l:l i="14">K</l:l>
+<l:l i="14">k</l:l>
+<l:l i="15">L</l:l>
+<l:l i="15">l</l:l>
+<l:l i="16">M</l:l>
+<l:l i="16">m</l:l>
+<l:l i="17">N</l:l>
+<l:l i="17">n</l:l>
+<l:l i="18">O</l:l>
+<l:l i="18">o</l:l>
+<l:l i="19">Ö</l:l>
+<l:l i="19">ö</l:l>
+<l:l i="20">P</l:l>
+<l:l i="20">p</l:l>
+<l:l i="21">R</l:l>
+<l:l i="21">r</l:l>
+<l:l i="22">S</l:l>
+<l:l i="22">s</l:l>
+<l:l i="23">Ş</l:l>
+<l:l i="23">ş</l:l>
+<l:l i="24">T</l:l>
+<l:l i="24">t</l:l>
+<l:l i="25">U</l:l>
+<l:l i="25">u</l:l>
+<l:l i="26">Ü</l:l>
+<l:l i="26">ü</l:l>
+<l:l i="27">V</l:l>
+<l:l i="27">v</l:l>
+<l:l i="28">Y</l:l>
+<l:l i="28">y</l:l>
+<l:l i="29">Z</l:l>
+<l:l i="29">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/uk.xml b/applications/content/template/docbook/common/uk.xml
new file mode 100644
index 0000000..c02742d
--- /dev/null
+++ b/applications/content/template/docbook/common/uk.xml
@@ -0,0 +1,744 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="uk" english-language-name="Ukrainian">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/uk.xml -->
+<!-- * -->
+<!-- * E-mail the edited uk.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Анотація"/>
+<l:gentext key="abstract" text="анотація"/>
+<l:gentext key="Acknowledgements" text="Подяки"/>
+<l:gentext key="acknowledgements" text="подяки"/>
+<l:gentext key="Answer" text="В:"/>
+<l:gentext key="answer" text="в:"/>
+<l:gentext key="Appendix" text="Додаток"/>
+<l:gentext key="appendix" text="додаток"/>
+<l:gentext key="Article" text="Стаття"/>
+<l:gentext key="article" text="стаття"/>
+<l:gentext key="Author" text="Автор"/>
+<l:gentext key="Bibliography" text="Література"/>
+<l:gentext key="bibliography" text="література"/>
+<l:gentext key="Book" text="Книга"/>
+<l:gentext key="book" text="книга"/>
+<l:gentext key="CAUTION" text="ЗАСТЕРЕЖЕННЯ"/>
+<l:gentext key="Caution" text="Застереження"/>
+<l:gentext key="caution" text="застереження"/>
+<l:gentext key="Chapter" text="Розділ"/>
+<l:gentext key="chapter" text="розділ"/>
+<l:gentext key="Colophon" text="Вихідні відомості"/>
+<l:gentext key="colophon" text="вихідні відомості"/>
+<l:gentext key="Copyright" text="Авторське право"/>
+<l:gentext key="copyright" text="авторське право"/>
+<l:gentext key="Dedication" text="Присвята"/>
+<l:gentext key="dedication" text="присвята"/>
+<l:gentext key="Edition" text="Видання"/>
+<l:gentext key="edition" text="видання"/>
+<l:gentext key="Editor" text="Editor"/>
+<l:gentext key="Equation" text="Формула"/>
+<l:gentext key="equation" text="Формула"/>
+<l:gentext key="Example" text="Приклад"/>
+<l:gentext key="example" text="приклад"/>
+<l:gentext key="Figure" text="Рисунок"/>
+<l:gentext key="figure" text="Рисунок"/>
+<l:gentext key="Glossary" text="Глосарій"/>
+<l:gentext key="glossary" text="глосарій"/>
+<l:gentext key="GlossSee" text="Див."/>
+<l:gentext key="glosssee" text="див."/>
+<l:gentext key="GlossSeeAlso" text="Див. також"/>
+<l:gentext key="glossseealso" text="див. також"/>
+<l:gentext key="IMPORTANT" text="ВАЖЛИВО"/>
+<l:gentext key="important" text="важливо"/>
+<l:gentext key="Important" text="Важливо"/>
+<l:gentext key="Index" text="Покажчик"/>
+<l:gentext key="index" text="покажчик"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Правова примітка"/>
+<l:gentext key="legalnotice" text="правова примітка"/>
+<l:gentext key="MsgAud" text="Аудиторія"/>
+<l:gentext key="msgaud" text="аудиторія"/>
+<l:gentext key="MsgLevel" text="Рівень"/>
+<l:gentext key="msglevel" text="рівень"/>
+<l:gentext key="MsgOrig" text="Джерело"/>
+<l:gentext key="msgorig" text="джерело"/>
+<l:gentext key="NOTE" text="ПРИМІТКА"/>
+<l:gentext key="Note" text="Примітка"/>
+<l:gentext key="note" text="примітка"/>
+<l:gentext key="Part" text="Частина"/>
+<l:gentext key="part" text="частина"/>
+<l:gentext key="Preface" text="Передмова"/>
+<l:gentext key="preface" text="передмова"/>
+<l:gentext key="Procedure" text="Процедура"/>
+<l:gentext key="procedure" text="Процедура"/>
+<l:gentext key="ProductionSet" text="Продукція"/>
+<l:gentext key="PubDate" text="Дата публікації"/>
+<l:gentext key="pubdate" text="дата публікації"/>
+<l:gentext key="Published" text="Опубліковано"/>
+<l:gentext key="published" text="опубліковано"/>
+<l:gentext key="Publisher" text="Видавець"/>
+<l:gentext key="Qandadiv" text="П і В"/>
+<l:gentext key="qandadiv" text="П і В"/>
+<l:gentext key="QandASet" text="Часті питання"/>
+<l:gentext key="Question" text="П:"/>
+<l:gentext key="question" text="п:"/>
+<l:gentext key="RefEntry" text="Сторінка"/>
+<l:gentext key="refentry" text="сторінка"/>
+<l:gentext key="Reference" text="Посилання"/>
+<l:gentext key="reference" text="посилання"/>
+<l:gentext key="References" text="Посилання"/>
+<l:gentext key="RefName" text="Назва"/>
+<l:gentext key="refname" text="назва"/>
+<l:gentext key="RefSection" text="Розділ"/>
+<l:gentext key="refsection" text="розділ"/>
+<l:gentext key="RefSynopsisDiv" text="Короткий огляд"/>
+<l:gentext key="refsynopsisdiv" text="короткий огляд"/>
+<l:gentext key="RevHistory" text="Опис змін"/>
+<l:gentext key="revhistory" text="опис змін"/>
+<l:gentext key="revision" text="версія"/>
+<l:gentext key="Revision" text="Версія"/>
+<l:gentext key="sect1" text="Розділ"/>
+<l:gentext key="sect2" text="Розділ"/>
+<l:gentext key="sect3" text="Розділ"/>
+<l:gentext key="sect4" text="Розділ"/>
+<l:gentext key="sect5" text="Розділ"/>
+<l:gentext key="section" text="розділ"/>
+<l:gentext key="Section" text="Розділ"/>
+<l:gentext key="see" text="див."/>
+<l:gentext key="See" text="Див."/>
+<l:gentext key="seealso" text="див. також"/>
+<l:gentext key="Seealso" text="Див. також"/>
+<l:gentext key="SeeAlso" text="Див. також"/>
+<l:gentext key="set" text="вибірка"/>
+<l:gentext key="Set" text="Вибірка"/>
+<l:gentext key="setindex" text="індекс вибірки"/>
+<l:gentext key="SetIndex" text="Індекс вибірки"/>
+<l:gentext key="Sidebar" text="Боковина"/>
+<l:gentext key="sidebar" text="боковина"/>
+<l:gentext key="step" text="крок"/>
+<l:gentext key="Step" text="Крок"/>
+<l:gentext key="table" text="таблиця"/>
+<l:gentext key="Table" text="Таблиця"/>
+<l:gentext key="task" text="завдання"/>
+<l:gentext key="Task" text="Завдання"/>
+<l:gentext key="tip" text="підказка"/>
+<l:gentext key="TIP" text="ПІДКАЗКА"/>
+<l:gentext key="Tip" text="Підказка"/>
+<l:gentext key="Warning" text="Застереження"/>
+<l:gentext key="warning" text="застереження"/>
+<l:gentext key="WARNING" text="ЗАСТЕРЕЖЕННЯ"/>
+<l:gentext key="and" text=""/>
+<l:gentext key="or" text="або"/>
+<l:gentext key="by" text=""/>
+<l:gentext key="Edited" text="За редакції"/>
+<l:gentext key="edited" text="за редакції"/>
+<l:gentext key="Editedby" text="За редакції"/>
+<l:gentext key="editedby" text="за редакції"/>
+<l:gentext key="in" text="у"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="примітки"/>
+<l:gentext key="Notes" text="Примітки"/>
+<l:gentext key="Pgs" text="Стор."/>
+<l:gentext key="pgs" text="стор."/>
+<l:gentext key="Revisedby" text="Коректура:"/>
+<l:gentext key="revisedby" text="коректура:"/>
+<l:gentext key="TableNotes" text="Примітки"/>
+<l:gentext key="tablenotes" text="примітки"/>
+<l:gentext key="TableofContents" text="Зміст"/>
+<l:gentext key="tableofcontents" text="зміст"/>
+<l:gentext key="unexpectedelementname" text="неочікувана назва елемента"/>
+<l:gentext key="unsupported" text="не підтримується"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="Автори"/>
+<l:gentext key="copyeditor" text="Редактор"/>
+<l:gentext key="graphicdesigner" text="Художнє оформлення"/>
+<l:gentext key="productioneditor" text="Відповідальний за випуск"/>
+<l:gentext key="technicaleditor" text="Технічний редактор"/>
+<l:gentext key="translator" text="Перекладач"/>
+<l:gentext key="listofequations" text="список формул"/>
+<l:gentext key="ListofEquations" text="Список формул"/>
+<l:gentext key="ListofExamples" text="Список прикладів"/>
+<l:gentext key="listofexamples" text="список прикладів"/>
+<l:gentext key="ListofFigures" text="Список ілюстрацій"/>
+<l:gentext key="listoffigures" text="Список ілюстрацій"/>
+<l:gentext key="ListofProcedures" text="Список алгоритмів"/>
+<l:gentext key="listofprocedures" text="список алгоритмів"/>
+<l:gentext key="listoftables" text="список таблиць"/>
+<l:gentext key="ListofTables" text="Список таблиць"/>
+<l:gentext key="ListofUnknown" text="Список невідомих"/>
+<l:gentext key="listofunknown" text="список невідомих"/>
+<l:gentext key="nav-home" text="Початок"/>
+<l:gentext key="nav-next" text="далі"/>
+<l:gentext key="nav-next-sibling" text="далі за рівнем"/>
+<l:gentext key="nav-prev" text="назад"/>
+<l:gentext key="nav-prev-sibling" text="назад за рівнем"/>
+<l:gentext key="nav-up" text="Догори"/>
+<l:gentext key="nav-toc" text="Зміст"/>
+<l:gentext key="Draft" text="Чернетка"/>
+<l:gentext key="above" text="вище"/>
+<l:gentext key="below" text="нижче"/>
+<l:gentext key="sectioncalled" text="розділ з назвою"/>
+<l:gentext key="index symbols" text="Символи"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="абвгґдеєжзиіїйклмнопрстуфхцчшщьюя"/>
+<l:gentext key="uppercase.alpha" text="АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Додаток %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Розділ %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Формула %n. %t"/>
+<l:template name="example" text="Приклад %n. %t"/>
+<l:template name="figure" text="Рисунок %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Частина %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Процедура %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Продукція %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Таблиця %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Додаток %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="Розділ %n. %t"/>
+<l:template name="part" text="Частина %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="В: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="П: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="П: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="В: %n"/>
+<l:template name="appendix" text="Додаток %n"/>
+<l:template name="bridgehead" text="Розділ %n"/>
+<l:template name="chapter" text="Розділ %n"/>
+<l:template name="equation" text="Формула %n"/>
+<l:template name="example" text="Приклад %n"/>
+<l:template name="figure" text="Рисунок %n"/>
+<l:template name="part" text="Частина %n"/>
+<l:template name="procedure" text="Процедура %n"/>
+<l:template name="productionset" text="Продукція %n"/>
+<l:template name="qandadiv" text="П і В %n"/>
+<l:template name="qandaentry" text="П: %n"/>
+<l:template name="question" text="П: %n"/>
+<l:template name="sect1" text="Розділ %n"/>
+<l:template name="sect2" text="Розділ %n"/>
+<l:template name="sect3" text="Розділ %n"/>
+<l:template name="sect4" text="Розділ %n"/>
+<l:template name="sect5" text="Розділ %n"/>
+<l:template name="section" text="Розділ %n"/>
+<l:template name="table" text="Таблиця %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Додаток %n, %t"/>
+<l:template name="bridgehead" text="Розділ %n, “%t”"/>
+<l:template name="chapter" text="Розділ %n, %t"/>
+<l:template name="equation" text="Формула %n, “%t”"/>
+<l:template name="example" text="Приклад %n, “%t”"/>
+<l:template name="figure" text="Рисунок %n, “%t”"/>
+<l:template name="part" text="Частина %n, “%t”"/>
+<l:template name="procedure" text="Процедура %n, “%t”"/>
+<l:template name="productionset" text="Продукція %n, “%t”"/>
+<l:template name="qandadiv" text="П і В %n, “%t”"/>
+<l:template name="refsect1" text="розділ з назвою “%t”"/>
+<l:template name="refsect2" text="розділ з назвою “%t”"/>
+<l:template name="refsect3" text="розділ з назвою “%t”"/>
+<l:template name="refsection" text="розділ з назвою “%t”"/>
+<l:template name="sect1" text="Розділ %n, “%t”"/>
+<l:template name="sect2" text="Розділ %n, “%t”"/>
+<l:template name="sect3" text="Розділ %n, “%t”"/>
+<l:template name="sect4" text="Розділ %n, “%t”"/>
+<l:template name="sect5" text="Розділ %n, “%t”"/>
+<l:template name="section" text="Розділ %n, “%t”"/>
+<l:template name="simplesect" text="розділ з назвою “%t”"/>
+<l:template name="table" text="Таблиця %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text="  "/>
+<l:template name="seplast" text=",  "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Див. %t."/>
+<l:template name="seealso" text="Див. також %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Аудиторія: "/>
+<l:template name="MsgLevel" text="Рівень: "/>
+<l:template name="MsgOrig" text="Джерело: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="d/m/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Визначення: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="січня"/>
+<l:template name="February" text="лютого"/>
+<l:template name="March" text="березня"/>
+<l:template name="April" text="квітня"/>
+<l:template name="May" text="травня"/>
+<l:template name="June" text="червня"/>
+<l:template name="July" text="липня"/>
+<l:template name="August" text="серпня"/>
+<l:template name="September" text="вересня"/>
+<l:template name="October" text="жовтня"/>
+<l:template name="November" text="листопада"/>
+<l:template name="December" text="грудня"/>
+<l:template name="Monday" text="понеділок"/>
+<l:template name="Tuesday" text="вівторок"/>
+<l:template name="Wednesday" text="середа"/>
+<l:template name="Thursday" text="четвер"/>
+<l:template name="Friday" text="п’ятниця"/>
+<l:template name="Saturday" text="субота"/>
+<l:template name="Sunday" text="неділя"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Січ"/>
+<l:template name="Feb" text="Лют"/>
+<l:template name="Mar" text="Бер"/>
+<l:template name="Apr" text="Кві"/>
+<l:template name="May" text="Тра"/>
+<l:template name="Jun" text="Чер"/>
+<l:template name="Jul" text="Лип"/>
+<l:template name="Aug" text="Сер"/>
+<l:template name="Sep" text="Вер"/>
+<l:template name="Oct" text="Жов"/>
+<l:template name="Nov" text="Лис"/>
+<l:template name="Dec" text="Гру"/>
+<l:template name="Mon" text="Пн"/>
+<l:template name="Tue" text="Вт"/>
+<l:template name="Wed" text="Ср"/>
+<l:template name="Thu" text="Чт"/>
+<l:template name="Fri" text="Пт"/>
+<l:template name="Sat" text="Сб"/>
+<l:template name="Sun" text="Нд"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0422 Ukrainian"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0"/>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="270">А</l:l>
+<l:l i="270">а</l:l>
+<l:l i="280">Б</l:l>
+<l:l i="280">б</l:l>
+<l:l i="290">В</l:l>
+<l:l i="290">в</l:l>
+<l:l i="300">Г</l:l>
+<l:l i="300">г</l:l>
+<l:l i="310">Ґ</l:l>
+<l:l i="310">ґ</l:l>
+<l:l i="320">Д</l:l>
+<l:l i="320">д</l:l>
+<l:l i="330">Е</l:l>
+<l:l i="330">е</l:l>
+<l:l i="340">Є</l:l>
+<l:l i="340">є</l:l>
+<l:l i="350">Ж</l:l>
+<l:l i="350">ж</l:l>
+<l:l i="360">З</l:l>
+<l:l i="360">з</l:l>
+<l:l i="370">И</l:l>
+<l:l i="370">и</l:l>
+<l:l i="380">І</l:l>
+<l:l i="380">і</l:l>
+<l:l i="390">Ї</l:l>
+<l:l i="390">ї</l:l>
+<l:l i="400">Й</l:l>
+<l:l i="400">й</l:l>
+<l:l i="410">К</l:l>
+<l:l i="410">к</l:l>
+<l:l i="420">Л</l:l>
+<l:l i="420">л</l:l>
+<l:l i="430">М</l:l>
+<l:l i="430">м</l:l>
+<l:l i="440">Н</l:l>
+<l:l i="440">н</l:l>
+<l:l i="450">О</l:l>
+<l:l i="450">о</l:l>
+<l:l i="460">П</l:l>
+<l:l i="460">п</l:l>
+<l:l i="470">Р</l:l>
+<l:l i="470">р</l:l>
+<l:l i="480">С</l:l>
+<l:l i="480">с</l:l>
+<l:l i="490">Т</l:l>
+<l:l i="490">т</l:l>
+<l:l i="500">У</l:l>
+<l:l i="500">у</l:l>
+<l:l i="510">Ф</l:l>
+<l:l i="510">ф</l:l>
+<l:l i="520">Х</l:l>
+<l:l i="520">х</l:l>
+<l:l i="530">Ц</l:l>
+<l:l i="530">ц</l:l>
+<l:l i="540">Ч</l:l>
+<l:l i="540">ч</l:l>
+<l:l i="550">Ш</l:l>
+<l:l i="550">ш</l:l>
+<l:l i="560">Щ</l:l>
+<l:l i="560">щ</l:l>
+<l:l i="570">Ь</l:l>
+<l:l i="570">ь</l:l>
+<l:l i="580">Ю</l:l>
+<l:l i="580">ю</l:l>
+<l:l i="590">Я</l:l>
+<l:l i="590">я</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/utility.xml b/applications/content/template/docbook/common/utility.xml
new file mode 100644
index 0000000..7604393
--- /dev/null
+++ b/applications/content/template/docbook/common/utility.xml
@@ -0,0 +1,259 @@
+<?xml version="1.0"?>
+
+<reference xml:id="utility">
+  <info>
+    <title>Common » Utility Template Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    
+<para>This is technical reference documentation for the
+      miscellaneous utility templates in the DocBook XSL
+      Stylesheets.</para>
+
+    <note>
+      
+<para>These templates are defined in a separate file from the set
+        of “common” templates because some of the common templates
+        reference DocBook XSL stylesheet parameters, requiring the
+        entire set of parameters to be imported/included in any
+        stylesheet that imports/includes the common templates.</para>
+
+      
+<para>The utility templates don’t import or include any DocBook
+        XSL stylesheet parameters, so the utility templates can be used
+        without importing the whole set of parameters.</para>
+
+    </note>
+    
+<para>This is not intended to be user documentation. It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+
+  </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.log.message">
+<refnamediv>
+<refname>log.message</refname>
+<refpurpose>Logs/emits formatted notes and warnings</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="log.message"&gt;
+&lt;xsl:param name="level"/&gt;
+&lt;xsl:param name="source"/&gt;
+&lt;xsl:param name="context-desc"/&gt;
+&lt;xsl:param name="context-desc-field-length"&gt;12&lt;/xsl:param&gt;
+&lt;xsl:param name="context-desc-padded"&gt;
+    &lt;xsl:if test="not($context-desc = '')"&gt;
+      &lt;xsl:call-template name="pad-string"&gt;
+        &lt;xsl:with-param name="leftRight"&gt;right&lt;/xsl:with-param&gt;
+        &lt;xsl:with-param name="padVar" select="substring($context-desc, 1, $context-desc-field-length)"/&gt;
+        &lt;xsl:with-param name="length" select="$context-desc-field-length"/&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:if&gt;
+  &lt;/xsl:param&gt;
+&lt;xsl:param name="message"/&gt;
+&lt;xsl:param name="message-field-length" select="45"/&gt;
+&lt;xsl:param name="message-padded"&gt;
+    &lt;xsl:variable name="spaces-for-blank-level"&gt;
+      &lt;!-- * if the level field is blank, we'll need to pad out --&gt;
+      &lt;!-- * the message field with spaces to compensate --&gt;
+      &lt;xsl:choose&gt;
+        &lt;xsl:when test="$level = ''"&gt;
+          &lt;xsl:value-of select="4 + 2"/&gt;
+          &lt;!-- * 4 = hard-coded length of comment text ("Note" or "Warn") --&gt;
+          &lt;!-- * + 2 = length of colon-plus-space separator ": " --&gt;
+        &lt;/xsl:when&gt;
+        &lt;xsl:otherwise&gt;
+          &lt;xsl:value-of select="0"/&gt;
+        &lt;/xsl:otherwise&gt;
+      &lt;/xsl:choose&gt;
+    &lt;/xsl:variable&gt;
+    &lt;xsl:variable name="spaces-for-blank-context-desc"&gt;
+      &lt;!-- * if the context-description field is blank, we'll need --&gt;
+      &lt;!-- * to pad out the message field with spaces to compensate --&gt;
+      &lt;xsl:choose&gt;
+        &lt;xsl:when test="$context-desc = ''"&gt;
+          &lt;xsl:value-of select="$context-desc-field-length + 2"/&gt;
+          &lt;!-- * + 2 = length of colon-plus-space separator ": " --&gt;
+        &lt;/xsl:when&gt;
+        &lt;xsl:otherwise&gt;
+          &lt;xsl:value-of select="0"/&gt;
+        &lt;/xsl:otherwise&gt;
+      &lt;/xsl:choose&gt;
+    &lt;/xsl:variable&gt;
+    &lt;xsl:variable name="extra-spaces" select="$spaces-for-blank-level + $spaces-for-blank-context-desc"/&gt;
+    &lt;xsl:call-template name="pad-string"&gt;
+      &lt;xsl:with-param name="leftRight"&gt;right&lt;/xsl:with-param&gt;
+      &lt;xsl:with-param name="padVar" select="substring($message, 1, ($message-field-length + $extra-spaces))"/&gt;
+      &lt;xsl:with-param name="length" select="$message-field-length + $extra-spaces"/&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/xsl:param&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <function>log.message</function> template is a utility
+    template for logging/emitting formatted messages – that is,
+    notes and warnings, along with a given log “level” and an
+    identifier for the “source” that the message relates to.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>level</term>
+        <listitem>
+          
+<para>Text to log/emit in the message-level field to
+            indicate the message level
+          (<literal>Note</literal> or
+          <literal>Warning</literal>)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>source</term>
+        <listitem>
+          
+<para>Text to log/emit in the source field to identify the
+            “source” to which the notification/warning relates.
+            This can be any arbitrary string, but because the
+            message lacks line and column numbers to identify the
+            exact part of the source document to which it
+            relates, the intention is that the value you pass
+            into the <literal>source</literal> parameter should
+            give the user some way to identify the portion of
+            their source document on which to take potentially
+            take action in response to the log message (for
+            example, to edit, change, or add content).</para>
+
+          
+<para>So the <literal>source</literal> value should be,
+            for example, an ID, book/chapter/article title, title
+            of some formal object, or even a string giving an
+            XPath expression.</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>context-desc</term>
+        <listitem>
+          
+<para>Text to log/emit in the context-description field to
+            describe the context for the message.</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>context-desc-field-length</term>
+        <listitem>
+          
+<para>Specifies length of the context-description field
+            (in characters); default is 12</para>
+
+          
+<para>If the text specified by the
+            <literal>context-desc</literal> parameter is longer
+            than the number of characters specified in
+            <literal>context-desc-field-length</literal>, it is
+            truncated to <literal>context-desc-field-length</literal>
+            (12 characters by default).</para>
+
+          
+<para>If the specified text is shorter than
+            <literal>context-desc-field-length</literal>,
+          it is right-padded out to
+          <literal>context-desc-field-length</literal> (12 by
+          default).</para>
+
+        
+<para>If no value has been specified for the
+          <literal>context-desc</literal> parameter, the field is
+          left empty and the text of the log message begins with
+          the value of the <literal>message</literal>
+          parameter.</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>message</term>
+        <listitem>
+          
+<para>Text to log/emit in the actual message field</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>message-field-length</term>
+        <listitem>
+          
+<para>Specifies length of the message
+            field (in characters); default is 45</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+  
+<para>Outputs a message (generally, to standard error).</para>
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.get.doc.title">
+<refnamediv>
+<refname>get.doc.title</refname>
+<refpurpose>Gets a title from the current document</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.doc.title"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <function>get.doc.title</function> template is a
+      utility template for returning the first title found in the
+      current document.</para>
+
+  </refsect1><refsect1><title>Returns</title>
+  
+<para>Returns a string containing some identifying title for the
+    current document .</para>
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.pad-string">
+<refnamediv>
+<refname>pad-string</refname>
+<refpurpose>Right-pads or left-pads a string out to a certain length</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="pad-string"&gt;
+&lt;xsl:param name="padChar" select="' '"/&gt;
+&lt;xsl:param name="leftRight"&gt;left&lt;/xsl:param&gt;
+&lt;xsl:param name="padVar"/&gt;
+&lt;xsl:param name="length"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>This function takes string <parameter>padVar</parameter> and
+      pads it out in the direction <parameter>rightLeft</parameter> to
+      the string-length <parameter>length</parameter>, using string
+      <parameter>padChar</parameter> (a space character by default) as
+      the padding string (note that <parameter>padChar</parameter> can
+      be a string; it is not limited to just being a single
+      character).</para>
+
+    <note>
+      
+<para>This function began as a copy of Nate Austin's
+        <function>prepend-pad</function> function in the <link xlink:href="http://www.dpawson.co.uk/xsl/sect2/padding.html">Padding
+          Content</link> section of Dave Pawson's <link xlink:href="http://www.dpawson.co.uk/xsl/index.html">XSLT
+          FAQ</link>.</para>
+
+    </note>
+  </refsect1><refsect1><title>Returns</title>
+  
+<para>Returns a (padded) string.</para>
+</refsect1></refentry>
+</reference>
+
diff --git a/applications/content/template/docbook/common/utility.xsl b/applications/content/template/docbook/common/utility.xsl
new file mode 100644
index 0000000..95cf7b3
--- /dev/null
+++ b/applications/content/template/docbook/common/utility.xsl
@@ -0,0 +1,290 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                xmlns:dyn="http://exslt.org/dynamic"
+                xmlns:saxon="http://icl.com/saxon"
+                xmlns:xlink="http://www.w3.org/1999/xlink"
+                exclude-result-prefixes="doc dyn saxon"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+<doc:reference xmlns="" xml:id="utility">
+  <info>
+    <title>Common » Utility Template Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <!-- * yes, partintro is a valid child of a reference... -->
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    <para>This is technical reference documentation for the
+      miscellaneous utility templates in the DocBook XSL
+      Stylesheets.</para>
+    <note>
+      <para>These templates are defined in a separate file from the set
+        of “common” templates because some of the common templates
+        reference DocBook XSL stylesheet parameters, requiring the
+        entire set of parameters to be imported/included in any
+        stylesheet that imports/includes the common templates.</para>
+      <para>The utility templates don’t import or include any DocBook
+        XSL stylesheet parameters, so the utility templates can be used
+        without importing the whole set of parameters.</para>
+    </note>
+    <para>This is not intended to be user documentation. It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+  </partintro>
+</doc:reference>
+
+<!-- ====================================================================== -->
+
+<doc:template name="log.message" xmlns="">
+  <refpurpose>Logs/emits formatted notes and warnings</refpurpose>
+
+  <refdescription id="log.message-desc">
+    <para>The <function>log.message</function> template is a utility
+    template for logging/emitting formatted messages&#xa0;– that is,
+    notes and warnings, along with a given log “level” and an
+    identifier for the “source” that the message relates to.</para>
+  </refdescription>
+
+  <refparameter id="log.message-params">
+    <variablelist>
+      <varlistentry><term>level</term>
+        <listitem>
+          <para>Text to log/emit in the message-level field to
+            indicate the message level
+          (<literal>Note</literal> or
+          <literal>Warning</literal>)</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>source</term>
+        <listitem>
+          <para>Text to log/emit in the source field to identify the
+            “source” to which the notification/warning relates.
+            This can be any arbitrary string, but because the
+            message lacks line and column numbers to identify the
+            exact part of the source document to which it
+            relates, the intention is that the value you pass
+            into the <literal>source</literal> parameter should
+            give the user some way to identify the portion of
+            their source document on which to take potentially
+            take action in response to the log message (for
+            example, to edit, change, or add content).</para>
+          <para>So the <literal>source</literal> value should be,
+            for example, an ID, book/chapter/article title, title
+            of some formal object, or even a string giving an
+            XPath expression.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>context-desc</term>
+        <listitem>
+          <para>Text to log/emit in the context-description field to
+            describe the context for the message.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>context-desc-field-length</term>
+        <listitem>
+          <para>Specifies length of the context-description field
+            (in characters); default is 12</para>
+          <para>If the text specified by the
+            <literal>context-desc</literal> parameter is longer
+            than the number of characters specified in
+            <literal>context-desc-field-length</literal>, it is
+            truncated to <literal>context-desc-field-length</literal>
+            (12 characters by default).</para>
+          <para>If the specified text is shorter than
+            <literal>context-desc-field-length</literal>,
+          it is right-padded out to
+          <literal>context-desc-field-length</literal> (12 by
+          default).</para>
+        <para>If no value has been specified for the
+          <literal>context-desc</literal> parameter, the field is
+          left empty and the text of the log message begins with
+          the value of the <literal>message</literal>
+          parameter.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>message</term>
+        <listitem>
+          <para>Text to log/emit in the actual message field</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>message-field-length</term>
+        <listitem>
+          <para>Specifies length of the message
+            field (in characters); default is 45</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refreturn id="log.message-returns">
+  <para>Outputs a message (generally, to standard error).</para></refreturn>
+</doc:template>
+<xsl:template name="log.message">
+  <xsl:param name="level"/>
+  <xsl:param name="source"/>
+  <xsl:param name="context-desc"/>
+  <xsl:param name="context-desc-field-length">12</xsl:param>
+  <xsl:param name="context-desc-padded">
+    <xsl:if test="not($context-desc = '')">
+      <xsl:call-template name="pad-string">
+        <xsl:with-param name="leftRight">right</xsl:with-param>
+        <xsl:with-param name="padVar"
+          select="substring($context-desc, 1, $context-desc-field-length)"/>
+        <xsl:with-param name="length" select="$context-desc-field-length"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:param>
+  <xsl:param name="message"/>
+  <xsl:param name="message-field-length" select="45"/>
+  <xsl:param name="message-padded">
+    <xsl:variable name="spaces-for-blank-level">
+      <!-- * if the level field is blank, we'll need to pad out -->
+      <!-- * the message field with spaces to compensate -->
+      <xsl:choose>
+        <xsl:when test="$level = ''">
+          <xsl:value-of select="4 + 2"/>
+          <!-- * 4 = hard-coded length of comment text ("Note" or "Warn") -->
+          <!-- * + 2 = length of colon-plus-space separator ": " -->
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="0"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name="spaces-for-blank-context-desc">
+      <!-- * if the context-description field is blank, we'll need -->
+      <!-- * to pad out the message field with spaces to compensate -->
+      <xsl:choose>
+        <xsl:when test="$context-desc = ''">
+          <xsl:value-of select="$context-desc-field-length + 2"/>
+          <!-- * + 2 = length of colon-plus-space separator ": " -->
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="0"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name="extra-spaces"
+      select="$spaces-for-blank-level + $spaces-for-blank-context-desc"/>
+    <xsl:call-template name="pad-string">
+      <xsl:with-param name="leftRight">right</xsl:with-param>
+      <xsl:with-param name="padVar"
+        select="substring($message, 1, ($message-field-length + $extra-spaces))"/>
+      <xsl:with-param name="length"
+        select="$message-field-length + $extra-spaces"/>
+    </xsl:call-template>
+  </xsl:param>
+  <!-- * emit the actual log message -->
+  <xsl:message>
+    <xsl:if test="not($level = '')">
+      <xsl:value-of select="$level"/>
+      <xsl:text>: </xsl:text>
+    </xsl:if>
+    <xsl:if test="not($context-desc = '')">
+      <xsl:value-of select="$context-desc-padded"/>
+      <xsl:text>: </xsl:text>
+    </xsl:if>
+    <xsl:value-of select="$message-padded"/>
+    <xsl:text>  </xsl:text>
+    <xsl:value-of select="$source"/>
+  </xsl:message>
+</xsl:template>
+
+<!-- ===================================== -->
+<doc:template name="get.doc.title" xmlns="">
+  <refpurpose>Gets a title from the current document</refpurpose>
+  <refdescription id="get.doc.title-desc">
+    <para>The <function>get.doc.title</function> template is a
+      utility template for returning the first title found in the
+      current document.</para>
+  </refdescription>
+  <refreturn id="get.doc.title-returns">
+  <para>Returns a string containing some identifying title for the
+    current document .</para></refreturn>
+</doc:template>
+<xsl:template name="get.doc.title">
+  <xsl:choose>
+    <xsl:when test="//*[local-name() = 'title'
+      or local-name() = 'refname']">
+      <xsl:value-of select="//*[local-name() = 'title'
+        or local-name() = 'refname'][1]"/>
+    </xsl:when>
+    <xsl:when test="substring(local-name(*[1]),
+      string-length(local-name(*[1])-3) = 'info')
+      and *[1]/*[local-name() = 'title']">
+      <xsl:value-of select="*[1]/*[local-name() = 'title'][1]"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ===================================== -->
+<doc:template name="pad-string" xmlns="">
+  <refpurpose>Right-pads or left-pads a string out to a certain length</refpurpose>
+  <refdescription id="pad-string-desc">
+    <para>This function takes string <parameter>padVar</parameter> and
+      pads it out in the direction <parameter>rightLeft</parameter> to
+      the string-length <parameter>length</parameter>, using string
+      <parameter>padChar</parameter> (a space character by default) as
+      the padding string (note that <parameter>padChar</parameter> can
+      be a string; it is not limited to just being a single
+      character).</para>
+    <note>
+      <para>This function began as a copy of Nate Austin's
+        <function>prepend-pad</function> function in the <link
+          xlink:href="http://www.dpawson.co.uk/xsl/sect2/padding.html" >Padding
+          Content</link> section of Dave Pawson's <link
+          xlink:href="http://www.dpawson.co.uk/xsl/index.html" >XSLT
+          FAQ</link>.</para>
+    </note>
+  </refdescription>
+  <refreturn id="pad-string-returns">
+  <para>Returns a (padded) string.</para></refreturn>
+</doc:template>
+<xsl:template name="pad-string">
+  <!-- * recursive template to right/left pad the value with -->
+  <!-- * whatever padChar is passed in -->
+  <xsl:param name="padChar" select="' '"/>
+  <xsl:param name="leftRight">left</xsl:param>
+  <xsl:param name="padVar"/>
+  <xsl:param name="length"/>
+  <xsl:choose>
+    <xsl:when test="string-length($padVar) &lt; $length">
+      <xsl:call-template name="pad-string">
+        <xsl:with-param name="padChar" select="$padChar"/>
+        <xsl:with-param name="leftRight" select="$leftRight"/>
+        <xsl:with-param name="padVar">
+          <xsl:choose>
+            <!-- * determine whether string should be -->
+            <!-- * right- or left-padded -->
+            <xsl:when test="$leftRight = 'left'">
+              <!-- * pad it to left -->
+              <xsl:value-of select="concat($padChar,$padVar)"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <!-- * otherwise, right-pad the string -->
+              <xsl:value-of select="concat($padVar,$padChar)"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+        <xsl:with-param name="length" select="$length"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of 
+        select="substring($padVar,string-length($padVar) - $length + 1)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/common/vi.xml b/applications/content/template/docbook/common/vi.xml
new file mode 100644
index 0000000..48bcdd3
--- /dev/null
+++ b/applications/content/template/docbook/common/vi.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="vi" english-language-name="Vietnamese">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/vi.xml -->
+<!-- * -->
+<!-- * E-mail the edited vi.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Tổng quan"/>
+<l:gentext key="abstract" text="Tổng quan"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="Đ:"/>
+<l:gentext key="answer" text="Đ:"/>
+<l:gentext key="Appendix" text="Phụ lục"/>
+<l:gentext key="appendix" text="phụ lục"/>
+<l:gentext key="Article" text="Bài viết"/>
+<l:gentext key="article" text="Bài viết"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Thư mục"/>
+<l:gentext key="bibliography" text="Thư mục"/>
+<l:gentext key="Book" text="Sách"/>
+<l:gentext key="book" text="Sách"/>
+<l:gentext key="CAUTION" text="CẨN THẬN"/>
+<l:gentext key="Caution" text="Cẩn thận"/>
+<l:gentext key="caution" text="Cẩn thận"/>
+<l:gentext key="Chapter" text="Chương"/>
+<l:gentext key="chapter" text="chương"/>
+<l:gentext key="Colophon" text="Colophon"/>
+<l:gentext key="colophon" text="Colophon"/>
+<l:gentext key="Copyright" text="Bản quyền"/>
+<l:gentext key="copyright" text="Bản quyền"/>
+<l:gentext key="Dedication" text="Tặng"/>
+<l:gentext key="dedication" text="Tặng"/>
+<l:gentext key="Edition" text="Edition"/>
+<l:gentext key="edition" text="Edition"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Phương trình"/>
+<l:gentext key="equation" text="Phương trình"/>
+<l:gentext key="Example" text="Ví dụ"/>
+<l:gentext key="example" text="Ví dụ"/>
+<l:gentext key="Figure" text="Hình"/>
+<l:gentext key="figure" text="Hình"/>
+<l:gentext key="Glossary" text="Thuật ngữ"/>
+<l:gentext key="glossary" text="Thuật ngữ"/>
+<l:gentext key="GlossSee" text="Xem"/>
+<l:gentext key="glosssee" text="Xem"/>
+<l:gentext key="GlossSeeAlso" text="Xem thêm"/>
+<l:gentext key="glossseealso" text="Xem thêm"/>
+<l:gentext key="IMPORTANT" text="QUAN TRỌNG"/>
+<l:gentext key="important" text="Quan trọng"/>
+<l:gentext key="Important" text="Quan trọng"/>
+<l:gentext key="Index" text="Chỉ mục"/>
+<l:gentext key="index" text="Chỉ mục"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="Legal Notice"/>
+<l:gentext key="legalnotice" text="Legal Notice"/>
+<l:gentext key="MsgAud" text="Đọc giả"/>
+<l:gentext key="msgaud" text="Đọc giả"/>
+<l:gentext key="MsgLevel" text="Cấp"/>
+<l:gentext key="msglevel" text="Cấp"/>
+<l:gentext key="MsgOrig" text="Gốc"/>
+<l:gentext key="msgorig" text="Gốc"/>
+<l:gentext key="NOTE" text="GHI CHÚ"/>
+<l:gentext key="Note" text="Ghi chú"/>
+<l:gentext key="note" text="Ghi chú"/>
+<l:gentext key="Part" text="Phần"/>
+<l:gentext key="part" text="Phần"/>
+<l:gentext key="Preface" text="Mở đầu"/>
+<l:gentext key="preface" text="Mở đầu"/>
+<l:gentext key="Procedure" text="Thủ tục"/>
+<l:gentext key="procedure" text="Thủ tục"/>
+<l:gentext key="ProductionSet" text="Sản phẩm"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Xuất bản"/>
+<l:gentext key="published" text="Xuất bản"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="H và Đ"/>
+<l:gentext key="qandadiv" text="H và Đ"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="H:"/>
+<l:gentext key="question" text="H:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Tham khảo"/>
+<l:gentext key="reference" text="Tham khảo"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Tên"/>
+<l:gentext key="refname" text="Tên"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Tóm tắt"/>
+<l:gentext key="refsynopsisdiv" text="Tóm tắt"/>
+<l:gentext key="RevHistory" text="Revision History"/>
+<l:gentext key="revhistory" text="Revision History"/>
+<l:gentext key="revision" text="Bản hiệu chỉnh"/>
+<l:gentext key="Revision" text="Bản hiệu chỉnh"/>
+<l:gentext key="sect1" text="Phần"/>
+<l:gentext key="sect2" text="Phần"/>
+<l:gentext key="sect3" text="Phần"/>
+<l:gentext key="sect4" text="Phần"/>
+<l:gentext key="sect5" text="Phần"/>
+<l:gentext key="section" text="Phần"/>
+<l:gentext key="Section" text="Phần"/>
+<l:gentext key="see" text="xem"/>
+<l:gentext key="See" text="See" lang="en"/>
+<l:gentext key="seealso" text="xem thêm"/>
+<l:gentext key="Seealso" text="See also" lang="en"/>
+<l:gentext key="SeeAlso" text="See Also" lang="en"/>
+<l:gentext key="set" text="Đặt"/>
+<l:gentext key="Set" text="Đặt"/>
+<l:gentext key="setindex" text="Đặt chỉ mục"/>
+<l:gentext key="SetIndex" text="Đặt chỉ mục"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="thanh bên"/>
+<l:gentext key="step" text="bước"/>
+<l:gentext key="Step" text="Bước"/>
+<l:gentext key="table" text="Bảng"/>
+<l:gentext key="Table" text="Bảng"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Mẹo"/>
+<l:gentext key="TIP" text="MẸO"/>
+<l:gentext key="Tip" text="Mẹo"/>
+<l:gentext key="Warning" text="Cảnh báo"/>
+<l:gentext key="warning" text="Cảnh báo"/>
+<l:gentext key="WARNING" text="CẢNH BÁO"/>
+<l:gentext key="and" text="và"/>
+<l:gentext key="or" text="hoặc"/>
+<l:gentext key="by" text="bởi"/>
+<l:gentext key="Edited" text="Được biên soạn"/>
+<l:gentext key="edited" text="Được biên soạn"/>
+<l:gentext key="Editedby" text="Được biên soạn bởi"/>
+<l:gentext key="editedby" text="Được biên soạn bởi"/>
+<l:gentext key="in" text="trong"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="Ghi chú"/>
+<l:gentext key="Notes" text="Ghi chú"/>
+<l:gentext key="Pgs" text="Pgs."/>
+<l:gentext key="pgs" text="Pgs."/>
+<l:gentext key="Revisedby" text="Hiệu chỉnh bởi: "/>
+<l:gentext key="revisedby" text="Hiệu chỉnh bởi: "/>
+<l:gentext key="TableNotes" text="Ghi chú"/>
+<l:gentext key="tablenotes" text="Ghi chú"/>
+<l:gentext key="TableofContents" text="Mục lục"/>
+<l:gentext key="tableofcontents" text="Mục lục"/>
+<l:gentext key="unexpectedelementname" text="Tên phần tử không đúng"/>
+<l:gentext key="unsupported" text="không hỗ trợ"/>
+<l:gentext key="xrefto" text="xref tới"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Danh sách Phương trình"/>
+<l:gentext key="ListofEquations" text="Danh sách Phương trình"/>
+<l:gentext key="ListofExamples" text="Danh sách Ví dụ"/>
+<l:gentext key="listofexamples" text="Danh sách Ví dụ"/>
+<l:gentext key="ListofFigures" text="Danh sách Hình"/>
+<l:gentext key="listoffigures" text="Danh sách Hình"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Danh sách Bảng"/>
+<l:gentext key="ListofTables" text="Danh sách Bảng"/>
+<l:gentext key="ListofUnknown" text="Danh sách Lạ"/>
+<l:gentext key="listofunknown" text="Danh sách Lạ"/>
+<l:gentext key="nav-home" text="Đầu"/>
+<l:gentext key="nav-next" text="Kế tiếp"/>
+<l:gentext key="nav-next-sibling" text="Tới nhanh"/>
+<l:gentext key="nav-prev" text="Trước đó"/>
+<l:gentext key="nav-prev-sibling" text="Lùi nhanh"/>
+<l:gentext key="nav-up" text="Lên"/>
+<l:gentext key="nav-toc" text="Mục lục"/>
+<l:gentext key="Draft" text="Bản thảo"/>
+<l:gentext key="above" text="trên"/>
+<l:gentext key="below" text="dưới"/>
+<l:gentext key="sectioncalled" text="phần"/>
+<l:gentext key="index symbols" text="Ký hiệu"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="last-first"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Phụ lục %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Chương %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Phương trình %n. %t"/>
+<l:template name="example" text="Ví dụ %n. %t"/>
+<l:template name="figure" text="Hình %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Phần %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Thủ tục %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Sản phẩm %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Bảng %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Phụ lục %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Chương %n. %t"/>
+<l:template name="part" text="Phần %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="Đ: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="H: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="H: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="phần “%t”"/>
+<l:template name="refsection" text="phần “%t”"/>
+<l:template name="refsect1" text="phần “%t”"/>
+<l:template name="refsect2" text="phần “%t”"/>
+<l:template name="refsect3" text="phần “%t”"/>
+<l:template name="sect1" text="phần “%t”"/>
+<l:template name="sect2" text="phần “%t”"/>
+<l:template name="sect3" text="phần “%t”"/>
+<l:template name="sect4" text="phần “%t”"/>
+<l:template name="sect5" text="phần “%t”"/>
+<l:template name="section" text="phần “%t”"/>
+<l:template name="simplesect" text="phần “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="Đ: %n"/>
+<l:template name="appendix" text="Phụ lục %n"/>
+<l:template name="bridgehead" text="Phần %n"/>
+<l:template name="chapter" text="Chương %n"/>
+<l:template name="equation" text="Phương trình %n"/>
+<l:template name="example" text="Ví dụ %n"/>
+<l:template name="figure" text="Hình %n"/>
+<l:template name="part" text="Phần %n"/>
+<l:template name="procedure" text="Thủ tục %n"/>
+<l:template name="productionset" text="Sản phẩm %n"/>
+<l:template name="qandadiv" text="H và Đ %n"/>
+<l:template name="qandaentry" text="H: %n"/>
+<l:template name="question" text="H: %n"/>
+<l:template name="sect1" text="Phần %n"/>
+<l:template name="sect2" text="Phần %n"/>
+<l:template name="sect3" text="Phần %n"/>
+<l:template name="sect4" text="Phần %n"/>
+<l:template name="sect5" text="Phần %n"/>
+<l:template name="section" text="Phần %n"/>
+<l:template name="table" text="Bảng %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Phụ lục %n, %t"/>
+<l:template name="bridgehead" text="Phần %n, “%t”"/>
+<l:template name="chapter" text="Chương %n, %t"/>
+<l:template name="equation" text="Phương trình %n, “%t”"/>
+<l:template name="example" text="Ví dụ %n, “%t”"/>
+<l:template name="figure" text="Hình %n, “%t”"/>
+<l:template name="part" text="Phần %n, “%t”"/>
+<l:template name="procedure" text="Thủ tục %n, “%t”"/>
+<l:template name="productionset" text="Sản phẩm %n, “%t”"/>
+<l:template name="qandadiv" text="H và Đ %n, “%t”"/>
+<l:template name="refsect1" text="phần “%t”"/>
+<l:template name="refsect2" text="phần “%t”"/>
+<l:template name="refsect3" text="phần “%t”"/>
+<l:template name="refsection" text="phần “%t”"/>
+<l:template name="sect1" text="Phần %n, “%t”"/>
+<l:template name="sect2" text="Phần %n, “%t”"/>
+<l:template name="sect3" text="Phần %n, “%t”"/>
+<l:template name="sect4" text="Phần %n, “%t”"/>
+<l:template name="sect5" text="Phần %n, “%t”"/>
+<l:template name="section" text="Phần %n, “%t”"/>
+<l:template name="simplesect" text="phần “%t”"/>
+<l:template name="table" text="Bảng %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" và "/>
+<l:template name="seplast" text=", và "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Xem %t."/>
+<l:template name="seealso" text="Xem thêm %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Đọc giả: "/>
+<l:template name="MsgLevel" text="Cấp: "/>
+<l:template name="MsgOrig" text="Gốc: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x042a Vietnamese"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/xh.xml b/applications/content/template/docbook/common/xh.xml
new file mode 100644
index 0000000..64f6b3e
--- /dev/null
+++ b/applications/content/template/docbook/common/xh.xml
@@ -0,0 +1,1247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="xh" english-language-name="Xhosa">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/xh.xml -->
+<!-- * -->
+<!-- * E-mail the edited xh.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="Isiqalo"/>
+<l:gentext key="abstract" text="Isiqalo"/>
+<l:gentext key="Acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="acknowledgements" text="Acknowledgements" lang="en"/>
+<l:gentext key="Answer" text="I:"/>
+<l:gentext key="answer" text="I:"/>
+<l:gentext key="Appendix" text="Isivalo"/>
+<l:gentext key="appendix" text="isivalo"/>
+<l:gentext key="Article" text="Umba"/>
+<l:gentext key="article" text="Umba"/>
+<l:gentext key="Author" text="Author" lang="en"/>
+<l:gentext key="Bibliography" text="Ezobunzululwazi"/>
+<l:gentext key="bibliography" text="Ezobunzululwazi"/>
+<l:gentext key="Book" text="Incwadi"/>
+<l:gentext key="book" text="Incwadi"/>
+<l:gentext key="CAUTION" text="ISILUMKISO"/>
+<l:gentext key="Caution" text="Isilumkiso"/>
+<l:gentext key="caution" text="Isilumkiso"/>
+<l:gentext key="Chapter" text="Isiqendu"/>
+<l:gentext key="chapter" text="isiqendu"/>
+<l:gentext key="Colophon" text="Ikolophon"/>
+<l:gentext key="colophon" text="Ikolophon"/>
+<l:gentext key="Copyright" text="Ushicilelo olusemthethweni"/>
+<l:gentext key="copyright" text="Ushicilelo olusemthethweni"/>
+<l:gentext key="Dedication" text="Ulwaziso"/>
+<l:gentext key="dedication" text="Ulwaziso"/>
+<l:gentext key="Edition" text="Uhlelo"/>
+<l:gentext key="edition" text="Uhlelo"/>
+<l:gentext key="Editor" text="Editor" lang="en"/>
+<l:gentext key="Equation" text="Ulinganiselo"/>
+<l:gentext key="equation" text="Ulinganiselo"/>
+<l:gentext key="Example" text="Umzekelo"/>
+<l:gentext key="example" text="Umzekelo"/>
+<l:gentext key="Figure" text="Ulungu"/>
+<l:gentext key="figure" text="Ulungu"/>
+<l:gentext key="Glossary" text="Inkcazelo yamagama"/>
+<l:gentext key="glossary" text="Inkcazelo yamagama"/>
+<l:gentext key="GlossSee" text="Bona"/>
+<l:gentext key="glosssee" text="Bona"/>
+<l:gentext key="GlossSeeAlso" text="Bona Kwakhona"/>
+<l:gentext key="glossseealso" text="Bona Kwakhona"/>
+<l:gentext key="IMPORTANT" text="IBALULEKILE"/>
+<l:gentext key="important" text="Ibalulekile"/>
+<l:gentext key="Important" text="Ibalulekile"/>
+<l:gentext key="Index" text="Isalathiso"/>
+<l:gentext key="index" text="Isalathiso"/>
+<l:gentext key="ISBN" text="iISBN"/>
+<l:gentext key="isbn" text="iISBN"/>
+<l:gentext key="LegalNotice" text="Isaziso Esesimthethweni"/>
+<l:gentext key="legalnotice" text="Isaziso Esesimthethweni"/>
+<l:gentext key="MsgAud" text="Ababhali"/>
+<l:gentext key="msgaud" text="Ababhali"/>
+<l:gentext key="MsgLevel" text="Umphakamo"/>
+<l:gentext key="msglevel" text="Umphakamo"/>
+<l:gentext key="MsgOrig" text="Uqobo"/>
+<l:gentext key="msgorig" text="Uqobo"/>
+<l:gentext key="NOTE" text="QAPHELA"/>
+<l:gentext key="Note" text="Qaphela"/>
+<l:gentext key="note" text="Qaphela"/>
+<l:gentext key="Part" text="Inxenye"/>
+<l:gentext key="part" text="Inxenye"/>
+<l:gentext key="Preface" text="Isihloko"/>
+<l:gentext key="preface" text="Isihloko"/>
+<l:gentext key="Procedure" text="Inkqubo"/>
+<l:gentext key="procedure" text="Inkqubo"/>
+<l:gentext key="ProductionSet" text="Imveliso"/>
+<l:gentext key="PubDate" text="Publication Date" lang="en"/>
+<l:gentext key="pubdate" text="Publication date" lang="en"/>
+<l:gentext key="Published" text="Ipapashwe"/>
+<l:gentext key="published" text="Ipapashwe"/>
+<l:gentext key="Publisher" text="Publisher" lang="en"/>
+<l:gentext key="Qandadiv" text="U no I"/>
+<l:gentext key="qandadiv" text="U no I"/>
+<l:gentext key="QandASet" text="Frequently Asked Questions" lang="en"/>
+<l:gentext key="Question" text="U:"/>
+<l:gentext key="question" text="U:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="Uthelekiso"/>
+<l:gentext key="reference" text="Uthelekiso"/>
+<l:gentext key="References" text="References" lang="en"/>
+<l:gentext key="RefName" text="Igama lothelekiso"/>
+<l:gentext key="refname" text="Igama lothelekiso"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="Isinopsisi"/>
+<l:gentext key="refsynopsisdiv" text="Isinopsisi"/>
+<l:gentext key="RevHistory" text="Imbali yophindo"/>
+<l:gentext key="revhistory" text="Imbali yophindo"/>
+<l:gentext key="revision" text="Iphindo"/>
+<l:gentext key="Revision" text="Iphindo"/>
+<l:gentext key="sect1" text="Icandelo"/>
+<l:gentext key="sect2" text="Icandelo"/>
+<l:gentext key="sect3" text="Icandelo"/>
+<l:gentext key="sect4" text="Icandelo"/>
+<l:gentext key="sect5" text="Icandelo"/>
+<l:gentext key="section" text="Icandelo"/>
+<l:gentext key="Section" text="Icandelo"/>
+<l:gentext key="see" text="Bona"/>
+<l:gentext key="See" text="Bona"/>
+<l:gentext key="seealso" text="Bona Kwakhona"/>
+<l:gentext key="Seealso" text="Bona Kwakhona"/>
+<l:gentext key="SeeAlso" text="Bona Kwakhona"/>
+<l:gentext key="set" text="Cwangcisa"/>
+<l:gentext key="Set" text="Cwangcisa"/>
+<l:gentext key="setindex" text="Cwangcisa Isalathiso"/>
+<l:gentext key="SetIndex" text="Cwangcisa Isalathiso"/>
+<l:gentext key="Sidebar" text=""/>
+<l:gentext key="sidebar" text="ibar esecaleni"/>
+<l:gentext key="step" text="inqwanqwa"/>
+<l:gentext key="Step" text="Inqwanqwa"/>
+<l:gentext key="table" text="Indlela Yokwenza Imigca"/>
+<l:gentext key="Table" text="Indlela Yokwenza Imigca"/>
+<l:gentext key="task" text="Task" lang="en"/>
+<l:gentext key="Task" text="Task" lang="en"/>
+<l:gentext key="tip" text="Incam"/>
+<l:gentext key="TIP" text="INCAM"/>
+<l:gentext key="Tip" text="Incam"/>
+<l:gentext key="Warning" text="Isilumkiso"/>
+<l:gentext key="warning" text="Isilumkiso"/>
+<l:gentext key="WARNING" text="ISILUMKISO"/>
+<l:gentext key="and" text="no"/>
+<l:gentext key="or" text="or" lang="en"/>
+<l:gentext key="by" text="by" lang="en"/>
+<l:gentext key="Edited" text="Ihleliwe"/>
+<l:gentext key="edited" text="Ihleliwe"/>
+<l:gentext key="Editedby" text="Ihlelwe"/>
+<l:gentext key="editedby" text="Ihlelwe"/>
+<l:gentext key="in" text="in"/>
+<l:gentext key="lastlistcomma" text=", "/>
+<l:gentext key="listcomma" text=", "/>
+<l:gentext key="notes" text="Iziqaphelo"/>
+<l:gentext key="Notes" text="Iziqaphelo"/>
+<l:gentext key="Pgs" text="Amaphepha"/>
+<l:gentext key="pgs" text="Amaphepha"/>
+<l:gentext key="Revisedby" text="Iphindwe ngu: "/>
+<l:gentext key="revisedby" text="Iphindwe ngu:"/>
+<l:gentext key="TableNotes" text="Iziqaphelo"/>
+<l:gentext key="tablenotes" text="Iziqaphelo"/>
+<l:gentext key="TableofContents" text="Imigca Yemixholo"/>
+<l:gentext key="tableofcontents" text="Imigca Yemixholo"/>
+<l:gentext key="unexpectedelementname" text="Igama lesiqalelo esingalindelwanga"/>
+<l:gentext key="unsupported" text="ayixhaswanga"/>
+<l:gentext key="xrefto" text="thelekiso ku"/>
+<l:gentext key="Authors" text="Authors" lang="en"/>
+<l:gentext key="copyeditor" text="Copy Editor" lang="en"/>
+<l:gentext key="graphicdesigner" text="Graphic Designer" lang="en"/>
+<l:gentext key="productioneditor" text="Production Editor" lang="en"/>
+<l:gentext key="technicaleditor" text="Technical Editor" lang="en"/>
+<l:gentext key="translator" text="Translator" lang="en"/>
+<l:gentext key="listofequations" text="Uluhlu Lemilinganiselo"/>
+<l:gentext key="ListofEquations" text="Uluhlu Lemilinganiselo"/>
+<l:gentext key="ListofExamples" text="Uluhlu Lemizekelo"/>
+<l:gentext key="listofexamples" text="Uluhlu Lemizekelo"/>
+<l:gentext key="ListofFigures" text="Uluhlu Lamalungu"/>
+<l:gentext key="listoffigures" text="Uluhlu Lamalungu"/>
+<l:gentext key="ListofProcedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listofprocedures" text="List of Procedures" lang="en"/>
+<l:gentext key="listoftables" text="Uluhlu Lendlela Yokwenza Imigca"/>
+<l:gentext key="ListofTables" text="Uluhlu Lendlela Yokwenza Imigca"/>
+<l:gentext key="ListofUnknown" text="Uluhlu Lokungaziwayo"/>
+<l:gentext key="listofunknown" text="Uluhlu Lokungaziwayo"/>
+<l:gentext key="nav-home" text="Ikhaya"/>
+<l:gentext key="nav-next" text="Elandelayo"/>
+<l:gentext key="nav-next-sibling" text="Yisa Phambili"/>
+<l:gentext key="nav-prev" text="Edlulileyo"/>
+<l:gentext key="nav-prev-sibling" text="Yisa Emva"/>
+<l:gentext key="nav-up" text="Phezulu"/>
+<l:gentext key="nav-toc" text="ToC" lang="en"/>
+<l:gentext key="Draft" text="Draft"/>
+<l:gentext key="above" text="above"/>
+<l:gentext key="below" text="below"/>
+<l:gentext key="sectioncalled" text="icandelo libizwa ngokuba"/>
+<l:gentext key="index symbols" text="Iimpawu"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="Isivalo %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="Isiqendu %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="Ulinganiselo %n. %t"/>
+<l:template name="example" text="Umzekelo %n. %t"/>
+<l:template name="figure" text="Ulungu %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="Inxenye %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="Inkqubo %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="Imveliso %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="Indlela Yokwenza Imigca %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="Isivalo %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="Isiqendu %n. %t"/>
+<l:template name="part" text="Inxenye %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="I: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="U: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="U: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsection" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsect1" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsect2" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsect3" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="sect1" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="sect2" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="sect3" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="sect4" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="sect5" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="section" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="simplesect" text="icandelo libizwa ngokuba “%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="I: %n"/>
+<l:template name="appendix" text="Isivalo %n"/>
+<l:template name="bridgehead" text="Icandelo %n"/>
+<l:template name="chapter" text="Isiqendu %n"/>
+<l:template name="equation" text="Ulinganiselo %n"/>
+<l:template name="example" text="Umzekelo %n"/>
+<l:template name="figure" text="Ulungu %n"/>
+<l:template name="part" text="Inxenye %n"/>
+<l:template name="procedure" text="Inkqubo %n"/>
+<l:template name="productionset" text="Imveliso %n"/>
+<l:template name="qandadiv" text="U no I %n"/>
+<l:template name="qandaentry" text="U: %n"/>
+<l:template name="question" text="U: %n"/>
+<l:template name="sect1" text="Icandelo %n"/>
+<l:template name="sect2" text="Icandelo %n"/>
+<l:template name="sect3" text="Icandelo %n"/>
+<l:template name="sect4" text="Icandelo %n"/>
+<l:template name="sect5" text="Icandelo %n"/>
+<l:template name="section" text="Icandelo %n"/>
+<l:template name="table" text="Indlela Yokwenza Imigca %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="Isivalo %n, %t"/>
+<l:template name="bridgehead" text="Icandelo %n, “%t”"/>
+<l:template name="chapter" text="Isiqendu %n, %t"/>
+<l:template name="equation" text="Ulinganiselo %n, “%t”"/>
+<l:template name="example" text="Umzekelo %n, “%t”"/>
+<l:template name="figure" text="Ulungu %n, “%t”"/>
+<l:template name="part" text="Inxenye %n, “%t”"/>
+<l:template name="procedure" text="Inkqubo %n, “%t”"/>
+<l:template name="productionset" text="Imveliso %n, “%t”"/>
+<l:template name="qandadiv" text="U no I %n, “%t”"/>
+<l:template name="refsect1" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsect2" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsect3" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="refsection" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="sect1" text="Icandelo %n, “%t”"/>
+<l:template name="sect2" text="Icandelo %n, “%t”"/>
+<l:template name="sect3" text="Icandelo %n, “%t”"/>
+<l:template name="sect4" text="Icandelo %n, “%t”"/>
+<l:template name="sect5" text="Icandelo %n, “%t”"/>
+<l:template name="section" text="Icandelo %n, “%t”"/>
+<l:template name="simplesect" text="icandelo libizwa ngokuba “%t”"/>
+<l:template name="table" text="Indlela Yokwenza Imigca %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=" no "/>
+<l:template name="sep2" text=" no "/>
+<l:template name="seplast" text=" no "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="Bona %t."/>
+<l:template name="seealso" text="Bona Kwakhona %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="Ababhali: "/>
+<l:template name="MsgLevel" text="Umphakamo: "/>
+<l:template name="MsgOrig" text="Uqobo: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y" lang="en"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: " lang="en"/>
+<l:template name="suffix" text="]" lang="en"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="January" lang="en"/>
+<l:template name="February" text="February" lang="en"/>
+<l:template name="March" text="March" lang="en"/>
+<l:template name="April" text="April" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="June" text="June" lang="en"/>
+<l:template name="July" text="July" lang="en"/>
+<l:template name="August" text="August" lang="en"/>
+<l:template name="September" text="September" lang="en"/>
+<l:template name="October" text="October" lang="en"/>
+<l:template name="November" text="November" lang="en"/>
+<l:template name="December" text="December" lang="en"/>
+<l:template name="Monday" text="Monday" lang="en"/>
+<l:template name="Tuesday" text="Tuesday" lang="en"/>
+<l:template name="Wednesday" text="Wednesday" lang="en"/>
+<l:template name="Thursday" text="Thursday" lang="en"/>
+<l:template name="Friday" text="Friday" lang="en"/>
+<l:template name="Saturday" text="Saturday" lang="en"/>
+<l:template name="Sunday" text="Sunday" lang="en"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="Jan" lang="en"/>
+<l:template name="Feb" text="Feb" lang="en"/>
+<l:template name="Mar" text="Mar" lang="en"/>
+<l:template name="Apr" text="Apr" lang="en"/>
+<l:template name="May" text="May" lang="en"/>
+<l:template name="Jun" text="Jun" lang="en"/>
+<l:template name="Jul" text="Jul" lang="en"/>
+<l:template name="Aug" text="Aug" lang="en"/>
+<l:template name="Sep" text="Sep" lang="en"/>
+<l:template name="Oct" text="Oct" lang="en"/>
+<l:template name="Nov" text="Nov" lang="en"/>
+<l:template name="Dec" text="Dec" lang="en"/>
+<l:template name="Mon" text="Mon" lang="en"/>
+<l:template name="Tue" text="Tue" lang="en"/>
+<l:template name="Wed" text="Wed" lang="en"/>
+<l:template name="Thu" text="Thu" lang="en"/>
+<l:template name="Fri" text="Fri" lang="en"/>
+<l:template name="Sat" text="Sat" lang="en"/>
+<l:template name="Sun" text="Sun" lang="en"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0434 Xhosa"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", " lang="en"/>
+<l:template name="number-separator" text=", " lang="en"/>
+<l:template name="range-separator" text="-" lang="en"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", " lang="en"/>
+<l:template name="alt.person.two.sep" text=" – " lang="en"/>
+<l:template name="alt.person.last.sep" text=" – " lang="en"/>
+<l:template name="alt.person.more.sep" text=" – " lang="en"/>
+<l:template name="primary.editor" text=" (ed.)" lang="en"/>
+<l:template name="primary.many" text=", et al." lang="en"/>
+<l:template name="primary.sep" text=". " lang="en"/>
+<l:template name="submaintitle.sep" text=": " lang="en"/>
+<l:template name="title.sep" text=". " lang="en"/>
+<l:template name="othertitle.sep" text=", " lang="en"/>
+<l:template name="medium1" text=" [" lang="en"/>
+<l:template name="medium2" text="]" lang="en"/>
+<l:template name="secondary.person.sep" text="; " lang="en"/>
+<l:template name="secondary.sep" text=". " lang="en"/>
+<l:template name="respons.sep" text=". " lang="en"/>
+<l:template name="edition.sep" text=". " lang="en"/>
+<l:template name="edition.serial.sep" text=", " lang="en"/>
+<l:template name="issuing.range" text="-" lang="en"/>
+<l:template name="issuing.div" text=", " lang="en"/>
+<l:template name="issuing.sep" text=". " lang="en"/>
+<l:template name="partnr.sep" text=". " lang="en"/>
+<l:template name="placepubl.sep" text=": " lang="en"/>
+<l:template name="publyear.sep" text=", " lang="en"/>
+<l:template name="pubinfo.sep" text=". " lang="en"/>
+<l:template name="spec.pubinfo.sep" text=", " lang="en"/>
+<l:template name="upd.sep" text=", " lang="en"/>
+<l:template name="datecit1" text=" [cited " lang="en"/>
+<l:template name="datecit2" text="]" lang="en"/>
+<l:template name="extent.sep" text=". " lang="en"/>
+<l:template name="locs.sep" text=", " lang="en"/>
+<l:template name="location.sep" text=". " lang="en"/>
+<l:template name="serie.sep" text=". " lang="en"/>
+<l:template name="notice.sep" text=". " lang="en"/>
+<l:template name="access" text="Available " lang="en"/>
+<l:template name="acctoo" text="Also available " lang="en"/>
+<l:template name="onwww" text="from World Wide Web" lang="en"/>
+<l:template name="oninet" text="from Internet" lang="en"/>
+<l:template name="access.end" text=": " lang="en"/>
+<l:template name="link1" text="&lt;" lang="en"/>
+<l:template name="link2" text="&gt;" lang="en"/>
+<l:template name="access.sep" text=". " lang="en"/>
+<l:template name="isbn" text="ISBN " lang="en"/>
+<l:template name="issn" text="ISSN " lang="en"/>
+<l:template name="stdnum.sep" text=". " lang="en"/>
+<l:template name="patcountry.sep" text=". " lang="en"/>
+<l:template name="pattype.sep" text=", " lang="en"/>
+<l:template name="patnum.sep" text=". " lang="en"/>
+<l:template name="patdate.sep" text=". " lang="en"/>
+</l:context><l:letters lang="en"><l:l i="-1"/>
+<l:l i="0">Symbols</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="10">À</l:l>
+<l:l i="10">à</l:l>
+<l:l i="10">Á</l:l>
+<l:l i="10">á</l:l>
+<l:l i="10">Â</l:l>
+<l:l i="10">â</l:l>
+<l:l i="10">Ã</l:l>
+<l:l i="10">ã</l:l>
+<l:l i="10">Ä</l:l>
+<l:l i="10">ä</l:l>
+<l:l i="10">Å</l:l>
+<l:l i="10">å</l:l>
+<l:l i="10">Ā</l:l>
+<l:l i="10">ā</l:l>
+<l:l i="10">Ă</l:l>
+<l:l i="10">ă</l:l>
+<l:l i="10">Ą</l:l>
+<l:l i="10">ą</l:l>
+<l:l i="10">Ǎ</l:l>
+<l:l i="10">ǎ</l:l>
+<l:l i="10">Ǟ</l:l>
+<l:l i="10">ǟ</l:l>
+<l:l i="10">Ǡ</l:l>
+<l:l i="10">ǡ</l:l>
+<l:l i="10">Ǻ</l:l>
+<l:l i="10">ǻ</l:l>
+<l:l i="10">Ȁ</l:l>
+<l:l i="10">ȁ</l:l>
+<l:l i="10">Ȃ</l:l>
+<l:l i="10">ȃ</l:l>
+<l:l i="10">Ȧ</l:l>
+<l:l i="10">ȧ</l:l>
+<l:l i="10">Ḁ</l:l>
+<l:l i="10">ḁ</l:l>
+<l:l i="10">ẚ</l:l>
+<l:l i="10">Ạ</l:l>
+<l:l i="10">ạ</l:l>
+<l:l i="10">Ả</l:l>
+<l:l i="10">ả</l:l>
+<l:l i="10">Ấ</l:l>
+<l:l i="10">ấ</l:l>
+<l:l i="10">Ầ</l:l>
+<l:l i="10">ầ</l:l>
+<l:l i="10">Ẩ</l:l>
+<l:l i="10">ẩ</l:l>
+<l:l i="10">Ẫ</l:l>
+<l:l i="10">ẫ</l:l>
+<l:l i="10">Ậ</l:l>
+<l:l i="10">ậ</l:l>
+<l:l i="10">Ắ</l:l>
+<l:l i="10">ắ</l:l>
+<l:l i="10">Ằ</l:l>
+<l:l i="10">ằ</l:l>
+<l:l i="10">Ẳ</l:l>
+<l:l i="10">ẳ</l:l>
+<l:l i="10">Ẵ</l:l>
+<l:l i="10">ẵ</l:l>
+<l:l i="10">Ặ</l:l>
+<l:l i="10">ặ</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="20">ƀ</l:l>
+<l:l i="20">Ɓ</l:l>
+<l:l i="20">ɓ</l:l>
+<l:l i="20">Ƃ</l:l>
+<l:l i="20">ƃ</l:l>
+<l:l i="20">Ḃ</l:l>
+<l:l i="20">ḃ</l:l>
+<l:l i="20">Ḅ</l:l>
+<l:l i="20">ḅ</l:l>
+<l:l i="20">Ḇ</l:l>
+<l:l i="20">ḇ</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="30">Ç</l:l>
+<l:l i="30">ç</l:l>
+<l:l i="30">Ć</l:l>
+<l:l i="30">ć</l:l>
+<l:l i="30">Ĉ</l:l>
+<l:l i="30">ĉ</l:l>
+<l:l i="30">Ċ</l:l>
+<l:l i="30">ċ</l:l>
+<l:l i="30">Č</l:l>
+<l:l i="30">č</l:l>
+<l:l i="30">Ƈ</l:l>
+<l:l i="30">ƈ</l:l>
+<l:l i="30">ɕ</l:l>
+<l:l i="30">Ḉ</l:l>
+<l:l i="30">ḉ</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="40">Ď</l:l>
+<l:l i="40">ď</l:l>
+<l:l i="40">Đ</l:l>
+<l:l i="40">đ</l:l>
+<l:l i="40">Ɗ</l:l>
+<l:l i="40">ɗ</l:l>
+<l:l i="40">Ƌ</l:l>
+<l:l i="40">ƌ</l:l>
+<l:l i="40">Dž</l:l>
+<l:l i="40">Dz</l:l>
+<l:l i="40">ȡ</l:l>
+<l:l i="40">ɖ</l:l>
+<l:l i="40">Ḋ</l:l>
+<l:l i="40">ḋ</l:l>
+<l:l i="40">Ḍ</l:l>
+<l:l i="40">ḍ</l:l>
+<l:l i="40">Ḏ</l:l>
+<l:l i="40">ḏ</l:l>
+<l:l i="40">Ḑ</l:l>
+<l:l i="40">ḑ</l:l>
+<l:l i="40">Ḓ</l:l>
+<l:l i="40">ḓ</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="50">È</l:l>
+<l:l i="50">è</l:l>
+<l:l i="50">É</l:l>
+<l:l i="50">é</l:l>
+<l:l i="50">Ê</l:l>
+<l:l i="50">ê</l:l>
+<l:l i="50">Ë</l:l>
+<l:l i="50">ë</l:l>
+<l:l i="50">Ē</l:l>
+<l:l i="50">ē</l:l>
+<l:l i="50">Ĕ</l:l>
+<l:l i="50">ĕ</l:l>
+<l:l i="50">Ė</l:l>
+<l:l i="50">ė</l:l>
+<l:l i="50">Ę</l:l>
+<l:l i="50">ę</l:l>
+<l:l i="50">Ě</l:l>
+<l:l i="50">ě</l:l>
+<l:l i="50">Ȅ</l:l>
+<l:l i="50">ȅ</l:l>
+<l:l i="50">Ȇ</l:l>
+<l:l i="50">ȇ</l:l>
+<l:l i="50">Ȩ</l:l>
+<l:l i="50">ȩ</l:l>
+<l:l i="50">Ḕ</l:l>
+<l:l i="50">ḕ</l:l>
+<l:l i="50">Ḗ</l:l>
+<l:l i="50">ḗ</l:l>
+<l:l i="50">Ḙ</l:l>
+<l:l i="50">ḙ</l:l>
+<l:l i="50">Ḛ</l:l>
+<l:l i="50">ḛ</l:l>
+<l:l i="50">Ḝ</l:l>
+<l:l i="50">ḝ</l:l>
+<l:l i="50">Ẹ</l:l>
+<l:l i="50">ẹ</l:l>
+<l:l i="50">Ẻ</l:l>
+<l:l i="50">ẻ</l:l>
+<l:l i="50">Ẽ</l:l>
+<l:l i="50">ẽ</l:l>
+<l:l i="50">Ế</l:l>
+<l:l i="50">ế</l:l>
+<l:l i="50">Ề</l:l>
+<l:l i="50">ề</l:l>
+<l:l i="50">Ể</l:l>
+<l:l i="50">ể</l:l>
+<l:l i="50">Ễ</l:l>
+<l:l i="50">ễ</l:l>
+<l:l i="50">Ệ</l:l>
+<l:l i="50">ệ</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="60">Ƒ</l:l>
+<l:l i="60">ƒ</l:l>
+<l:l i="60">Ḟ</l:l>
+<l:l i="60">ḟ</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="70">Ĝ</l:l>
+<l:l i="70">ĝ</l:l>
+<l:l i="70">Ğ</l:l>
+<l:l i="70">ğ</l:l>
+<l:l i="70">Ġ</l:l>
+<l:l i="70">ġ</l:l>
+<l:l i="70">Ģ</l:l>
+<l:l i="70">ģ</l:l>
+<l:l i="70">Ɠ</l:l>
+<l:l i="70">ɠ</l:l>
+<l:l i="70">Ǥ</l:l>
+<l:l i="70">ǥ</l:l>
+<l:l i="70">Ǧ</l:l>
+<l:l i="70">ǧ</l:l>
+<l:l i="70">Ǵ</l:l>
+<l:l i="70">ǵ</l:l>
+<l:l i="70">Ḡ</l:l>
+<l:l i="70">ḡ</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="80">Ĥ</l:l>
+<l:l i="80">ĥ</l:l>
+<l:l i="80">Ħ</l:l>
+<l:l i="80">ħ</l:l>
+<l:l i="80">Ȟ</l:l>
+<l:l i="80">ȟ</l:l>
+<l:l i="80">ɦ</l:l>
+<l:l i="80">Ḣ</l:l>
+<l:l i="80">ḣ</l:l>
+<l:l i="80">Ḥ</l:l>
+<l:l i="80">ḥ</l:l>
+<l:l i="80">Ḧ</l:l>
+<l:l i="80">ḧ</l:l>
+<l:l i="80">Ḩ</l:l>
+<l:l i="80">ḩ</l:l>
+<l:l i="80">Ḫ</l:l>
+<l:l i="80">ḫ</l:l>
+<l:l i="80">ẖ</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="90">Ì</l:l>
+<l:l i="90">ì</l:l>
+<l:l i="90">Í</l:l>
+<l:l i="90">í</l:l>
+<l:l i="90">Î</l:l>
+<l:l i="90">î</l:l>
+<l:l i="90">Ï</l:l>
+<l:l i="90">ï</l:l>
+<l:l i="90">Ĩ</l:l>
+<l:l i="90">ĩ</l:l>
+<l:l i="90">Ī</l:l>
+<l:l i="90">ī</l:l>
+<l:l i="90">Ĭ</l:l>
+<l:l i="90">ĭ</l:l>
+<l:l i="90">Į</l:l>
+<l:l i="90">į</l:l>
+<l:l i="90">İ</l:l>
+<l:l i="90">Ɨ</l:l>
+<l:l i="90">ɨ</l:l>
+<l:l i="90">Ǐ</l:l>
+<l:l i="90">ǐ</l:l>
+<l:l i="90">Ȉ</l:l>
+<l:l i="90">ȉ</l:l>
+<l:l i="90">Ȋ</l:l>
+<l:l i="90">ȋ</l:l>
+<l:l i="90">Ḭ</l:l>
+<l:l i="90">ḭ</l:l>
+<l:l i="90">Ḯ</l:l>
+<l:l i="90">ḯ</l:l>
+<l:l i="90">Ỉ</l:l>
+<l:l i="90">ỉ</l:l>
+<l:l i="90">Ị</l:l>
+<l:l i="90">ị</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="100">Ĵ</l:l>
+<l:l i="100">ĵ</l:l>
+<l:l i="100">ǰ</l:l>
+<l:l i="100">ʝ</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="110">Ķ</l:l>
+<l:l i="110">ķ</l:l>
+<l:l i="110">Ƙ</l:l>
+<l:l i="110">ƙ</l:l>
+<l:l i="110">Ǩ</l:l>
+<l:l i="110">ǩ</l:l>
+<l:l i="110">Ḱ</l:l>
+<l:l i="110">ḱ</l:l>
+<l:l i="110">Ḳ</l:l>
+<l:l i="110">ḳ</l:l>
+<l:l i="110">Ḵ</l:l>
+<l:l i="110">ḵ</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="120">Ĺ</l:l>
+<l:l i="120">ĺ</l:l>
+<l:l i="120">Ļ</l:l>
+<l:l i="120">ļ</l:l>
+<l:l i="120">Ľ</l:l>
+<l:l i="120">ľ</l:l>
+<l:l i="120">Ŀ</l:l>
+<l:l i="120">ŀ</l:l>
+<l:l i="120">Ł</l:l>
+<l:l i="120">ł</l:l>
+<l:l i="120">ƚ</l:l>
+<l:l i="120">Lj</l:l>
+<l:l i="120">ȴ</l:l>
+<l:l i="120">ɫ</l:l>
+<l:l i="120">ɬ</l:l>
+<l:l i="120">ɭ</l:l>
+<l:l i="120">Ḷ</l:l>
+<l:l i="120">ḷ</l:l>
+<l:l i="120">Ḹ</l:l>
+<l:l i="120">ḹ</l:l>
+<l:l i="120">Ḻ</l:l>
+<l:l i="120">ḻ</l:l>
+<l:l i="120">Ḽ</l:l>
+<l:l i="120">ḽ</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="130">ɱ</l:l>
+<l:l i="130">Ḿ</l:l>
+<l:l i="130">ḿ</l:l>
+<l:l i="130">Ṁ</l:l>
+<l:l i="130">ṁ</l:l>
+<l:l i="130">Ṃ</l:l>
+<l:l i="130">ṃ</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="140">Ñ</l:l>
+<l:l i="140">ñ</l:l>
+<l:l i="140">Ń</l:l>
+<l:l i="140">ń</l:l>
+<l:l i="140">Ņ</l:l>
+<l:l i="140">ņ</l:l>
+<l:l i="140">Ň</l:l>
+<l:l i="140">ň</l:l>
+<l:l i="140">Ɲ</l:l>
+<l:l i="140">ɲ</l:l>
+<l:l i="140">ƞ</l:l>
+<l:l i="140">Ƞ</l:l>
+<l:l i="140">Nj</l:l>
+<l:l i="140">Ǹ</l:l>
+<l:l i="140">ǹ</l:l>
+<l:l i="140">ȵ</l:l>
+<l:l i="140">ɳ</l:l>
+<l:l i="140">Ṅ</l:l>
+<l:l i="140">ṅ</l:l>
+<l:l i="140">Ṇ</l:l>
+<l:l i="140">ṇ</l:l>
+<l:l i="140">Ṉ</l:l>
+<l:l i="140">ṉ</l:l>
+<l:l i="140">Ṋ</l:l>
+<l:l i="140">ṋ</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="150">Ò</l:l>
+<l:l i="150">ò</l:l>
+<l:l i="150">Ó</l:l>
+<l:l i="150">ó</l:l>
+<l:l i="150">Ô</l:l>
+<l:l i="150">ô</l:l>
+<l:l i="150">Õ</l:l>
+<l:l i="150">õ</l:l>
+<l:l i="150">Ö</l:l>
+<l:l i="150">ö</l:l>
+<l:l i="150">Ø</l:l>
+<l:l i="150">ø</l:l>
+<l:l i="150">Ō</l:l>
+<l:l i="150">ō</l:l>
+<l:l i="150">Ŏ</l:l>
+<l:l i="150">ŏ</l:l>
+<l:l i="150">Ő</l:l>
+<l:l i="150">ő</l:l>
+<l:l i="150">Ɵ</l:l>
+<l:l i="150">Ơ</l:l>
+<l:l i="150">ơ</l:l>
+<l:l i="150">Ǒ</l:l>
+<l:l i="150">ǒ</l:l>
+<l:l i="150">Ǫ</l:l>
+<l:l i="150">ǫ</l:l>
+<l:l i="150">Ǭ</l:l>
+<l:l i="150">ǭ</l:l>
+<l:l i="150">Ǿ</l:l>
+<l:l i="150">ǿ</l:l>
+<l:l i="150">Ȍ</l:l>
+<l:l i="150">ȍ</l:l>
+<l:l i="150">Ȏ</l:l>
+<l:l i="150">ȏ</l:l>
+<l:l i="150">Ȫ</l:l>
+<l:l i="150">ȫ</l:l>
+<l:l i="150">Ȭ</l:l>
+<l:l i="150">ȭ</l:l>
+<l:l i="150">Ȯ</l:l>
+<l:l i="150">ȯ</l:l>
+<l:l i="150">Ȱ</l:l>
+<l:l i="150">ȱ</l:l>
+<l:l i="150">Ṍ</l:l>
+<l:l i="150">ṍ</l:l>
+<l:l i="150">Ṏ</l:l>
+<l:l i="150">ṏ</l:l>
+<l:l i="150">Ṑ</l:l>
+<l:l i="150">ṑ</l:l>
+<l:l i="150">Ṓ</l:l>
+<l:l i="150">ṓ</l:l>
+<l:l i="150">Ọ</l:l>
+<l:l i="150">ọ</l:l>
+<l:l i="150">Ỏ</l:l>
+<l:l i="150">ỏ</l:l>
+<l:l i="150">Ố</l:l>
+<l:l i="150">ố</l:l>
+<l:l i="150">Ồ</l:l>
+<l:l i="150">ồ</l:l>
+<l:l i="150">Ổ</l:l>
+<l:l i="150">ổ</l:l>
+<l:l i="150">Ỗ</l:l>
+<l:l i="150">ỗ</l:l>
+<l:l i="150">Ộ</l:l>
+<l:l i="150">ộ</l:l>
+<l:l i="150">Ớ</l:l>
+<l:l i="150">ớ</l:l>
+<l:l i="150">Ờ</l:l>
+<l:l i="150">ờ</l:l>
+<l:l i="150">Ở</l:l>
+<l:l i="150">ở</l:l>
+<l:l i="150">Ỡ</l:l>
+<l:l i="150">ỡ</l:l>
+<l:l i="150">Ợ</l:l>
+<l:l i="150">ợ</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="160">Ƥ</l:l>
+<l:l i="160">ƥ</l:l>
+<l:l i="160">Ṕ</l:l>
+<l:l i="160">ṕ</l:l>
+<l:l i="160">Ṗ</l:l>
+<l:l i="160">ṗ</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="170">ʠ</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="180">Ŕ</l:l>
+<l:l i="180">ŕ</l:l>
+<l:l i="180">Ŗ</l:l>
+<l:l i="180">ŗ</l:l>
+<l:l i="180">Ř</l:l>
+<l:l i="180">ř</l:l>
+<l:l i="180">Ȑ</l:l>
+<l:l i="180">ȑ</l:l>
+<l:l i="180">Ȓ</l:l>
+<l:l i="180">ȓ</l:l>
+<l:l i="180">ɼ</l:l>
+<l:l i="180">ɽ</l:l>
+<l:l i="180">ɾ</l:l>
+<l:l i="180">Ṙ</l:l>
+<l:l i="180">ṙ</l:l>
+<l:l i="180">Ṛ</l:l>
+<l:l i="180">ṛ</l:l>
+<l:l i="180">Ṝ</l:l>
+<l:l i="180">ṝ</l:l>
+<l:l i="180">Ṟ</l:l>
+<l:l i="180">ṟ</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="190">Ś</l:l>
+<l:l i="190">ś</l:l>
+<l:l i="190">Ŝ</l:l>
+<l:l i="190">ŝ</l:l>
+<l:l i="190">Ş</l:l>
+<l:l i="190">ş</l:l>
+<l:l i="190">Š</l:l>
+<l:l i="190">š</l:l>
+<l:l i="190">Ș</l:l>
+<l:l i="190">ș</l:l>
+<l:l i="190">ʂ</l:l>
+<l:l i="190">Ṡ</l:l>
+<l:l i="190">ṡ</l:l>
+<l:l i="190">Ṣ</l:l>
+<l:l i="190">ṣ</l:l>
+<l:l i="190">Ṥ</l:l>
+<l:l i="190">ṥ</l:l>
+<l:l i="190">Ṧ</l:l>
+<l:l i="190">ṧ</l:l>
+<l:l i="190">Ṩ</l:l>
+<l:l i="190">ṩ</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="200">Ţ</l:l>
+<l:l i="200">ţ</l:l>
+<l:l i="200">Ť</l:l>
+<l:l i="200">ť</l:l>
+<l:l i="200">Ŧ</l:l>
+<l:l i="200">ŧ</l:l>
+<l:l i="200">ƫ</l:l>
+<l:l i="200">Ƭ</l:l>
+<l:l i="200">ƭ</l:l>
+<l:l i="200">Ʈ</l:l>
+<l:l i="200">ʈ</l:l>
+<l:l i="200">Ț</l:l>
+<l:l i="200">ț</l:l>
+<l:l i="200">ȶ</l:l>
+<l:l i="200">Ṫ</l:l>
+<l:l i="200">ṫ</l:l>
+<l:l i="200">Ṭ</l:l>
+<l:l i="200">ṭ</l:l>
+<l:l i="200">Ṯ</l:l>
+<l:l i="200">ṯ</l:l>
+<l:l i="200">Ṱ</l:l>
+<l:l i="200">ṱ</l:l>
+<l:l i="200">ẗ</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="210">Ù</l:l>
+<l:l i="210">ù</l:l>
+<l:l i="210">Ú</l:l>
+<l:l i="210">ú</l:l>
+<l:l i="210">Û</l:l>
+<l:l i="210">û</l:l>
+<l:l i="210">Ü</l:l>
+<l:l i="210">ü</l:l>
+<l:l i="210">Ũ</l:l>
+<l:l i="210">ũ</l:l>
+<l:l i="210">Ū</l:l>
+<l:l i="210">ū</l:l>
+<l:l i="210">Ŭ</l:l>
+<l:l i="210">ŭ</l:l>
+<l:l i="210">Ů</l:l>
+<l:l i="210">ů</l:l>
+<l:l i="210">Ű</l:l>
+<l:l i="210">ű</l:l>
+<l:l i="210">Ų</l:l>
+<l:l i="210">ų</l:l>
+<l:l i="210">Ư</l:l>
+<l:l i="210">ư</l:l>
+<l:l i="210">Ǔ</l:l>
+<l:l i="210">ǔ</l:l>
+<l:l i="210">Ǖ</l:l>
+<l:l i="210">ǖ</l:l>
+<l:l i="210">Ǘ</l:l>
+<l:l i="210">ǘ</l:l>
+<l:l i="210">Ǚ</l:l>
+<l:l i="210">ǚ</l:l>
+<l:l i="210">Ǜ</l:l>
+<l:l i="210">ǜ</l:l>
+<l:l i="210">Ȕ</l:l>
+<l:l i="210">ȕ</l:l>
+<l:l i="210">Ȗ</l:l>
+<l:l i="210">ȗ</l:l>
+<l:l i="210">Ṳ</l:l>
+<l:l i="210">ṳ</l:l>
+<l:l i="210">Ṵ</l:l>
+<l:l i="210">ṵ</l:l>
+<l:l i="210">Ṷ</l:l>
+<l:l i="210">ṷ</l:l>
+<l:l i="210">Ṹ</l:l>
+<l:l i="210">ṹ</l:l>
+<l:l i="210">Ṻ</l:l>
+<l:l i="210">ṻ</l:l>
+<l:l i="210">Ụ</l:l>
+<l:l i="210">ụ</l:l>
+<l:l i="210">Ủ</l:l>
+<l:l i="210">ủ</l:l>
+<l:l i="210">Ứ</l:l>
+<l:l i="210">ứ</l:l>
+<l:l i="210">Ừ</l:l>
+<l:l i="210">ừ</l:l>
+<l:l i="210">Ử</l:l>
+<l:l i="210">ử</l:l>
+<l:l i="210">Ữ</l:l>
+<l:l i="210">ữ</l:l>
+<l:l i="210">Ự</l:l>
+<l:l i="210">ự</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="220">Ʋ</l:l>
+<l:l i="220">ʋ</l:l>
+<l:l i="220">Ṽ</l:l>
+<l:l i="220">ṽ</l:l>
+<l:l i="220">Ṿ</l:l>
+<l:l i="220">ṿ</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="230">Ŵ</l:l>
+<l:l i="230">ŵ</l:l>
+<l:l i="230">Ẁ</l:l>
+<l:l i="230">ẁ</l:l>
+<l:l i="230">Ẃ</l:l>
+<l:l i="230">ẃ</l:l>
+<l:l i="230">Ẅ</l:l>
+<l:l i="230">ẅ</l:l>
+<l:l i="230">Ẇ</l:l>
+<l:l i="230">ẇ</l:l>
+<l:l i="230">Ẉ</l:l>
+<l:l i="230">ẉ</l:l>
+<l:l i="230">ẘ</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="240">Ẋ</l:l>
+<l:l i="240">ẋ</l:l>
+<l:l i="240">Ẍ</l:l>
+<l:l i="240">ẍ</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="250">Ý</l:l>
+<l:l i="250">ý</l:l>
+<l:l i="250">ÿ</l:l>
+<l:l i="250">Ÿ</l:l>
+<l:l i="250">Ŷ</l:l>
+<l:l i="250">ŷ</l:l>
+<l:l i="250">Ƴ</l:l>
+<l:l i="250">ƴ</l:l>
+<l:l i="250">Ȳ</l:l>
+<l:l i="250">ȳ</l:l>
+<l:l i="250">Ẏ</l:l>
+<l:l i="250">ẏ</l:l>
+<l:l i="250">ẙ</l:l>
+<l:l i="250">Ỳ</l:l>
+<l:l i="250">ỳ</l:l>
+<l:l i="250">Ỵ</l:l>
+<l:l i="250">ỵ</l:l>
+<l:l i="250">Ỷ</l:l>
+<l:l i="250">ỷ</l:l>
+<l:l i="250">Ỹ</l:l>
+<l:l i="250">ỹ</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+<l:l i="260">Ź</l:l>
+<l:l i="260">ź</l:l>
+<l:l i="260">Ż</l:l>
+<l:l i="260">ż</l:l>
+<l:l i="260">Ž</l:l>
+<l:l i="260">ž</l:l>
+<l:l i="260">Ƶ</l:l>
+<l:l i="260">ƶ</l:l>
+<l:l i="260">Ȥ</l:l>
+<l:l i="260">ȥ</l:l>
+<l:l i="260">ʐ</l:l>
+<l:l i="260">ʑ</l:l>
+<l:l i="260">Ẑ</l:l>
+<l:l i="260">ẑ</l:l>
+<l:l i="260">Ẓ</l:l>
+<l:l i="260">ẓ</l:l>
+<l:l i="260">Ẕ</l:l>
+<l:l i="260">ẕ</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/zh.xml b/applications/content/template/docbook/common/zh.xml
new file mode 100644
index 0000000..91ed410
--- /dev/null
+++ b/applications/content/template/docbook/common/zh.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="zh" english-language-name="Chinese">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/zh.xml -->
+<!-- * -->
+<!-- * E-mail the edited zh.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="摘要"/>
+<l:gentext key="abstract" text="摘要"/>
+<l:gentext key="Acknowledgements" text="鸣谢"/>
+<l:gentext key="acknowledgements" text="鸣谢"/>
+<l:gentext key="Answer" text="答:"/>
+<l:gentext key="answer" text="答:"/>
+<l:gentext key="Appendix" text="附录"/>
+<l:gentext key="appendix" text="附录"/>
+<l:gentext key="Article" text="文章"/>
+<l:gentext key="article" text="文章"/>
+<l:gentext key="Author" text="作者"/>
+<l:gentext key="Bibliography" text="参考书目"/>
+<l:gentext key="bibliography" text="参考书目"/>
+<l:gentext key="Book" text="书"/>
+<l:gentext key="book" text="书"/>
+<l:gentext key="CAUTION" text="小心"/>
+<l:gentext key="Caution" text="小心"/>
+<l:gentext key="caution" text="小心"/>
+<l:gentext key="Chapter" text="章"/>
+<l:gentext key="chapter" text="章"/>
+<l:gentext key="Colophon" text="后记"/>
+<l:gentext key="colophon" text="后记"/>
+<l:gentext key="Copyright" text="版权"/>
+<l:gentext key="copyright" text="版权"/>
+<l:gentext key="Dedication" text="题词"/>
+<l:gentext key="dedication" text="题词"/>
+<l:gentext key="Edition" text="版"/>
+<l:gentext key="edition" text="版"/>
+<l:gentext key="Editor" text="编者"/>
+<l:gentext key="Equation" text="公式"/>
+<l:gentext key="equation" text="公式"/>
+<l:gentext key="Example" text="例"/>
+<l:gentext key="example" text="例"/>
+<l:gentext key="Figure" text="图"/>
+<l:gentext key="figure" text="图"/>
+<l:gentext key="Glossary" text="术语表"/>
+<l:gentext key="glossary" text="术语表"/>
+<l:gentext key="GlossSee" text="见"/>
+<l:gentext key="glosssee" text="见"/>
+<l:gentext key="GlossSeeAlso" text="参见"/>
+<l:gentext key="glossseealso" text="参见"/>
+<l:gentext key="IMPORTANT" text="重要"/>
+<l:gentext key="important" text="重要"/>
+<l:gentext key="Important" text="重要"/>
+<l:gentext key="Index" text="索引"/>
+<l:gentext key="index" text="索引"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="法律通告"/>
+<l:gentext key="legalnotice" text="法律通告"/>
+<l:gentext key="MsgAud" text="受众"/>
+<l:gentext key="msgaud" text="受众"/>
+<l:gentext key="MsgLevel" text="级别"/>
+<l:gentext key="msglevel" text="级别"/>
+<l:gentext key="MsgOrig" text="出处"/>
+<l:gentext key="msgorig" text="出处"/>
+<l:gentext key="NOTE" text="注意"/>
+<l:gentext key="Note" text="注意"/>
+<l:gentext key="note" text="注意"/>
+<l:gentext key="Part" text="部分"/>
+<l:gentext key="part" text="部分"/>
+<l:gentext key="Preface" text="前言"/>
+<l:gentext key="preface" text="前言"/>
+<l:gentext key="Procedure" text="过程"/>
+<l:gentext key="procedure" text="过程"/>
+<l:gentext key="ProductionSet" text="产品"/>
+<l:gentext key="PubDate" text="出版日期"/>
+<l:gentext key="pubdate" text="出版日期"/>
+<l:gentext key="Published" text="出版方"/>
+<l:gentext key="published" text="出版方"/>
+<l:gentext key="Publisher" text="出版者"/>
+<l:gentext key="Qandadiv" text="质保"/>
+<l:gentext key="qandadiv" text="质保"/>
+<l:gentext key="QandASet" text="常见问题"/>
+<l:gentext key="Question" text="问:"/>
+<l:gentext key="question" text="问:"/>
+<l:gentext key="RefEntry" text=""/>
+<l:gentext key="refentry" text=""/>
+<l:gentext key="Reference" text="参考"/>
+<l:gentext key="reference" text="参考"/>
+<l:gentext key="References" text="参考"/>
+<l:gentext key="RefName" text="名称"/>
+<l:gentext key="refname" text="名称"/>
+<l:gentext key="RefSection" text=""/>
+<l:gentext key="refsection" text=""/>
+<l:gentext key="RefSynopsisDiv" text="大纲"/>
+<l:gentext key="refsynopsisdiv" text="大纲"/>
+<l:gentext key="RevHistory" text="修订历史"/>
+<l:gentext key="revhistory" text="修订历史"/>
+<l:gentext key="revision" text="修订"/>
+<l:gentext key="Revision" text="修订"/>
+<l:gentext key="sect1" text="节"/>
+<l:gentext key="sect2" text="节"/>
+<l:gentext key="sect3" text="节"/>
+<l:gentext key="sect4" text="节"/>
+<l:gentext key="sect5" text="节"/>
+<l:gentext key="section" text="节"/>
+<l:gentext key="Section" text="节"/>
+<l:gentext key="see" text="见"/>
+<l:gentext key="See" text="见"/>
+<l:gentext key="seealso" text="参见"/>
+<l:gentext key="Seealso" text="参见"/>
+<l:gentext key="SeeAlso" text="参见"/>
+<l:gentext key="set" text="Set"/>
+<l:gentext key="Set" text="Set"/>
+<l:gentext key="setindex" text="Set Index"/>
+<l:gentext key="SetIndex" text="Set Index"/>
+<l:gentext key="Sidebar" text="侧栏"/>
+<l:gentext key="sidebar" text="侧栏"/>
+<l:gentext key="step" text="步骤"/>
+<l:gentext key="Step" text="步骤"/>
+<l:gentext key="table" text="表"/>
+<l:gentext key="Table" text="表"/>
+<l:gentext key="task" text="任务"/>
+<l:gentext key="Task" text="任务"/>
+<l:gentext key="tip" text="提示"/>
+<l:gentext key="TIP" text="提示"/>
+<l:gentext key="Tip" text="提示"/>
+<l:gentext key="Warning" text="警告"/>
+<l:gentext key="warning" text="警告"/>
+<l:gentext key="WARNING" text="警告"/>
+<l:gentext key="and" text="和"/>
+<l:gentext key="or" text="或"/>
+<l:gentext key="by" text="由"/>
+<l:gentext key="Edited" text="编辑时间"/>
+<l:gentext key="edited" text="编辑时间"/>
+<l:gentext key="Editedby" text="编辑"/>
+<l:gentext key="editedby" text="编辑"/>
+<l:gentext key="in" text="于"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text="、"/>
+<l:gentext key="notes" text="备注"/>
+<l:gentext key="Notes" text="备注"/>
+<l:gentext key="Pgs" text="页"/>
+<l:gentext key="pgs" text="页"/>
+<l:gentext key="Revisedby" text="修订者:"/>
+<l:gentext key="revisedby" text="修订者:"/>
+<l:gentext key="TableNotes" text="表注"/>
+<l:gentext key="tablenotes" text="表注"/>
+<l:gentext key="TableofContents" text="目录"/>
+<l:gentext key="tableofcontents" text="目录"/>
+<l:gentext key="unexpectedelementname" text="未预期的名称"/>
+<l:gentext key="unsupported" text="不支持"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="作者"/>
+<l:gentext key="copyeditor" text="版权编辑"/>
+<l:gentext key="graphicdesigner" text="美术编辑"/>
+<l:gentext key="productioneditor" text="产品编辑"/>
+<l:gentext key="technicaleditor" text="技术编辑"/>
+<l:gentext key="translator" text="译者"/>
+<l:gentext key="listofequations" text="公式清单"/>
+<l:gentext key="ListofEquations" text="公式清单"/>
+<l:gentext key="ListofExamples" text="范例清单"/>
+<l:gentext key="listofexamples" text="范例清单"/>
+<l:gentext key="ListofFigures" text="插图清单"/>
+<l:gentext key="listoffigures" text="插图清单"/>
+<l:gentext key="ListofProcedures" text="过程清单"/>
+<l:gentext key="listofprocedures" text="过程清单"/>
+<l:gentext key="listoftables" text="表格清单"/>
+<l:gentext key="ListofTables" text="表格清单"/>
+<l:gentext key="ListofUnknown" text="未知清单"/>
+<l:gentext key="listofunknown" text="未知清单"/>
+<l:gentext key="nav-home" text="起始页"/>
+<l:gentext key="nav-next" text="下一页"/>
+<l:gentext key="nav-next-sibling" text="快进"/>
+<l:gentext key="nav-prev" text="上一页"/>
+<l:gentext key="nav-prev-sibling" text="快退"/>
+<l:gentext key="nav-up" text="上一级"/>
+<l:gentext key="nav-toc" text="目录"/>
+<l:gentext key="Draft" text="草稿"/>
+<l:gentext key="above" text="以上"/>
+<l:gentext key="below" text="以下"/>
+<l:gentext key="sectioncalled" text="一节"/>
+<l:gentext key="index symbols" text="符号"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="normalize.sort.output" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="·"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="搜索"/>
+<l:template name="Enter_a_term_and_click" text="输入字词,然后点击 "/>
+<l:template name="Go" text="去"/>
+<l:template name="to_perform_a_search" text=" to perform a search."/>
+<l:template name="txt_filesfound" text="条结果"/>
+<l:template name="txt_enter_at_least_1_char" text="您必须输入至少一个字符。"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site."/>
+<l:template name="txt_please_wait" text="请稍候。搜索中..."/>
+<l:template name="txt_results_for" text="结果: "/>
+<l:template name="TableofContents" text="Contents"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results."/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="附录 %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="第 %n 章 %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="公式 %n. %t"/>
+<l:template name="example" text="例 %n. %t"/>
+<l:template name="figure" text="图 %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="第 %n 部分 %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="过程 %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="产品 %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="表 %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="附录 %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="第 %n 章 %t"/>
+<l:template name="part" text="部分 %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="问: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="问: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(第 %p 页)"/>
+<l:template name="docname" text=" 在 %o"/>
+<l:template name="docnamelong" text=" 在文档标题 %o"/>
+<l:template name="pageabbrev" text="(第 %p 页)"/>
+<l:template name="Page" text="第 %p 页"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="“%t”一节"/>
+<l:template name="refsection" text="“%t”一节"/>
+<l:template name="refsect1" text="“%t”一节"/>
+<l:template name="refsect2" text="“%t”一节"/>
+<l:template name="refsect3" text="“%t”一节"/>
+<l:template name="sect1" text="“%t”一节"/>
+<l:template name="sect2" text="“%t”一节"/>
+<l:template name="sect3" text="“%t”一节"/>
+<l:template name="sect4" text="“%t”一节"/>
+<l:template name="sect5" text="“%t”一节"/>
+<l:template name="section" text="“%t”一节"/>
+<l:template name="simplesect" text="“%t”一节"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="附录 %n"/>
+<l:template name="bridgehead" text="第 %n 节"/>
+<l:template name="chapter" text="第 %n 章"/>
+<l:template name="equation" text="公式 %n"/>
+<l:template name="example" text="例 %n"/>
+<l:template name="figure" text="图 %n"/>
+<l:template name="part" text="第 %n 部分"/>
+<l:template name="procedure" text="过程 %n"/>
+<l:template name="productionset" text="产品 %n"/>
+<l:template name="qandadiv" text="质保 %n"/>
+<l:template name="qandaentry" text="问: %n"/>
+<l:template name="question" text="问: %n"/>
+<l:template name="sect1" text="第 %n 节"/>
+<l:template name="sect2" text="第 %n 节"/>
+<l:template name="sect3" text="第 %n 节"/>
+<l:template name="sect4" text="第 %n 节"/>
+<l:template name="sect5" text="第 %n 节"/>
+<l:template name="section" text="第 %n 节"/>
+<l:template name="table" text="表 %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="附录 %n, %t"/>
+<l:template name="bridgehead" text="第 %n 节 “%t”"/>
+<l:template name="chapter" text="第 %n 章 %t"/>
+<l:template name="equation" text="公式 %n “%t”"/>
+<l:template name="example" text="例 %n “%t”"/>
+<l:template name="figure" text="图 %n “%t”"/>
+<l:template name="part" text="第 %n 部分 “%t”"/>
+<l:template name="procedure" text="过程 %n, “%t”"/>
+<l:template name="productionset" text="产品 %n, “%t”"/>
+<l:template name="qandadiv" text="质保 %n, “%t”"/>
+<l:template name="refsect1" text="“%t”一节"/>
+<l:template name="refsect2" text="“%t”一节"/>
+<l:template name="refsect3" text="“%t”一节"/>
+<l:template name="refsection" text="“%t”一节"/>
+<l:template name="sect1" text="第 %n 节 “%t”"/>
+<l:template name="sect2" text="第 %n 节 “%t”"/>
+<l:template name="sect3" text="第 %n 节 “%t”"/>
+<l:template name="sect4" text="第 %n 节 “%t”"/>
+<l:template name="sect5" text="第 %n 节 “%t”"/>
+<l:template name="section" text="第 %n 节 “%t”"/>
+<l:template name="simplesect" text="“%t”一节"/>
+<l:template name="table" text="表 %n “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text="、"/>
+<l:template name="sep2" text="和"/>
+<l:template name="seplast" text="和"/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="见%t."/>
+<l:template name="seealso" text="参见%t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="受众:"/>
+<l:template name="MsgLevel" text="级别:"/>
+<l:template name="MsgOrig" text="出处:"/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="Y-m-d"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[定义:"/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="一月"/>
+<l:template name="February" text="二月"/>
+<l:template name="March" text="三月"/>
+<l:template name="April" text="四月"/>
+<l:template name="May" text="五月"/>
+<l:template name="June" text="六月"/>
+<l:template name="July" text="七月"/>
+<l:template name="August" text="八月"/>
+<l:template name="September" text="九月"/>
+<l:template name="October" text="十月"/>
+<l:template name="November" text="十一月"/>
+<l:template name="December" text="十二月"/>
+<l:template name="Monday" text="星期一"/>
+<l:template name="Tuesday" text="星期二"/>
+<l:template name="Wednesday" text="星期三"/>
+<l:template name="Thursday" text="星期四"/>
+<l:template name="Friday" text="星期五"/>
+<l:template name="Saturday" text="星期六"/>
+<l:template name="Sunday" text="星期日"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="一月"/>
+<l:template name="Feb" text="二月"/>
+<l:template name="Mar" text="三月"/>
+<l:template name="Apr" text="四月"/>
+<l:template name="May" text="五月"/>
+<l:template name="Jun" text="六月"/>
+<l:template name="Jul" text="七月"/>
+<l:template name="Aug" text="八月"/>
+<l:template name="Sep" text="九月"/>
+<l:template name="Oct" text="十月"/>
+<l:template name="Nov" text="十一月"/>
+<l:template name="Dec" text="十二月"/>
+<l:template name="Mon" text="周一"/>
+<l:template name="Tue" text="周二"/>
+<l:template name="Wed" text="周三"/>
+<l:template name="Thu" text="周四"/>
+<l:template name="Fri" text="周五"/>
+<l:template name="Sat" text="周六"/>
+<l:template name="Sun" text="周日"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0804 Chinese (CHINA)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=","/>
+<l:template name="number-separator" text=","/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=","/>
+<l:template name="alt.person.two.sep" text=" 和 "/>
+<l:template name="alt.person.last.sep" text=" 和 "/>
+<l:template name="alt.person.more.sep" text=","/>
+<l:template name="primary.editor" text="(主编)"/>
+<l:template name="primary.many" text="等。"/>
+<l:template name="primary.sep" text="。"/>
+<l:template name="submaintitle.sep" text=":"/>
+<l:template name="title.sep" text="。"/>
+<l:template name="othertitle.sep" text=","/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text=";"/>
+<l:template name="secondary.sep" text="。"/>
+<l:template name="respons.sep" text="。"/>
+<l:template name="edition.sep" text="。"/>
+<l:template name="edition.serial.sep" text=","/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=","/>
+<l:template name="issuing.sep" text="。"/>
+<l:template name="partnr.sep" text="。"/>
+<l:template name="placepubl.sep" text=":"/>
+<l:template name="publyear.sep" text=","/>
+<l:template name="pubinfo.sep" text="。"/>
+<l:template name="spec.pubinfo.sep" text=","/>
+<l:template name="upd.sep" text=","/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text="。"/>
+<l:template name="locs.sep" text=","/>
+<l:template name="location.sep" text="。"/>
+<l:template name="serie.sep" text="。"/>
+<l:template name="notice.sep" text="。"/>
+<l:template name="access" text="可用"/>
+<l:template name="acctoo" text="也可用"/>
+<l:template name="onwww" text="从万维网"/>
+<l:template name="oninet" text="从互联网"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text="。"/>
+<l:template name="patcountry.sep" text="。"/>
+<l:template name="pattype.sep" text=","/>
+<l:template name="patnum.sep" text="。"/>
+<l:template name="patdate.sep" text="。"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">符号</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="10">J</l:l>
+<l:l i="10">j</l:l>
+<l:l i="11">K</l:l>
+<l:l i="11">k</l:l>
+<l:l i="12">L</l:l>
+<l:l i="12">l</l:l>
+<l:l i="13">M</l:l>
+<l:l i="13">m</l:l>
+<l:l i="14">N</l:l>
+<l:l i="14">n</l:l>
+<l:l i="15">O</l:l>
+<l:l i="15">o</l:l>
+<l:l i="16">P</l:l>
+<l:l i="16">p</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="20">T</l:l>
+<l:l i="20">t</l:l>
+<l:l i="21">U</l:l>
+<l:l i="21">u</l:l>
+<l:l i="22">V</l:l>
+<l:l i="22">v</l:l>
+<l:l i="23">W</l:l>
+<l:l i="23">w</l:l>
+<l:l i="24">X</l:l>
+<l:l i="24">x</l:l>
+<l:l i="25">Y</l:l>
+<l:l i="25">y</l:l>
+<l:l i="26">Z</l:l>
+<l:l i="26">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/zh_cn.xml b/applications/content/template/docbook/common/zh_cn.xml
new file mode 100644
index 0000000..b385ab5
--- /dev/null
+++ b/applications/content/template/docbook/common/zh_cn.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="zh_cn" english-language-name="Chinese Simplified">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/zh_cn.xml -->
+<!-- * -->
+<!-- * E-mail the edited zh_cn.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="摘要"/>
+<l:gentext key="abstract" text="摘要"/>
+<l:gentext key="Acknowledgements" text="鸣谢"/>
+<l:gentext key="acknowledgements" text="鸣谢"/>
+<l:gentext key="Answer" text="答:"/>
+<l:gentext key="answer" text="答:"/>
+<l:gentext key="Appendix" text="附录"/>
+<l:gentext key="appendix" text="附录"/>
+<l:gentext key="Article" text="文章"/>
+<l:gentext key="article" text="文章"/>
+<l:gentext key="Author" text="作者"/>
+<l:gentext key="Bibliography" text="参考书目"/>
+<l:gentext key="bibliography" text="参考书目"/>
+<l:gentext key="Book" text="书"/>
+<l:gentext key="book" text="书"/>
+<l:gentext key="CAUTION" text="小心"/>
+<l:gentext key="Caution" text="小心"/>
+<l:gentext key="caution" text="小心"/>
+<l:gentext key="Chapter" text="章"/>
+<l:gentext key="chapter" text="章"/>
+<l:gentext key="Colophon" text="后记"/>
+<l:gentext key="colophon" text="后记"/>
+<l:gentext key="Copyright" text="版权"/>
+<l:gentext key="copyright" text="版权"/>
+<l:gentext key="Dedication" text="题词"/>
+<l:gentext key="dedication" text="题词"/>
+<l:gentext key="Edition" text="版"/>
+<l:gentext key="edition" text="版"/>
+<l:gentext key="Editor" text="编者"/>
+<l:gentext key="Equation" text="公式"/>
+<l:gentext key="equation" text="公式"/>
+<l:gentext key="Example" text="例"/>
+<l:gentext key="example" text="例"/>
+<l:gentext key="Figure" text="图"/>
+<l:gentext key="figure" text="图"/>
+<l:gentext key="Glossary" text="术语表"/>
+<l:gentext key="glossary" text="术语表"/>
+<l:gentext key="GlossSee" text="见"/>
+<l:gentext key="glosssee" text="见"/>
+<l:gentext key="GlossSeeAlso" text="参见"/>
+<l:gentext key="glossseealso" text="参见"/>
+<l:gentext key="IMPORTANT" text="重要"/>
+<l:gentext key="important" text="重要"/>
+<l:gentext key="Important" text="重要"/>
+<l:gentext key="Index" text="索引"/>
+<l:gentext key="index" text="索引"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="法律通告"/>
+<l:gentext key="legalnotice" text="法律通告"/>
+<l:gentext key="MsgAud" text="受众"/>
+<l:gentext key="msgaud" text="受众"/>
+<l:gentext key="MsgLevel" text="级别"/>
+<l:gentext key="msglevel" text="级别"/>
+<l:gentext key="MsgOrig" text="出处"/>
+<l:gentext key="msgorig" text="出处"/>
+<l:gentext key="NOTE" text="注意"/>
+<l:gentext key="Note" text="注意"/>
+<l:gentext key="note" text="注意"/>
+<l:gentext key="Part" text="部分"/>
+<l:gentext key="part" text="部分"/>
+<l:gentext key="Preface" text="前言"/>
+<l:gentext key="preface" text="前言"/>
+<l:gentext key="Procedure" text="过程"/>
+<l:gentext key="procedure" text="过程"/>
+<l:gentext key="ProductionSet" text="产品"/>
+<l:gentext key="PubDate" text="出版日期"/>
+<l:gentext key="pubdate" text="出版日期"/>
+<l:gentext key="Published" text="出版方"/>
+<l:gentext key="published" text="出版方"/>
+<l:gentext key="Publisher" text="出版者"/>
+<l:gentext key="Qandadiv" text="答问集"/>
+<l:gentext key="qandadiv" text="答问集"/>
+<l:gentext key="QandASet" text="常见问题"/>
+<l:gentext key="Question" text="问:"/>
+<l:gentext key="question" text="问:"/>
+<l:gentext key="RefEntry" text="页"/>
+<l:gentext key="refentry" text="页"/>
+<l:gentext key="Reference" text="参考"/>
+<l:gentext key="reference" text="参考"/>
+<l:gentext key="References" text="参考"/>
+<l:gentext key="RefName" text="名称"/>
+<l:gentext key="refname" text="名称"/>
+<l:gentext key="RefSection" text="节"/>
+<l:gentext key="refsection" text="节"/>
+<l:gentext key="RefSynopsisDiv" text="大纲"/>
+<l:gentext key="refsynopsisdiv" text="大纲"/>
+<l:gentext key="RevHistory" text="修订历史"/>
+<l:gentext key="revhistory" text="修订历史"/>
+<l:gentext key="revision" text="修订"/>
+<l:gentext key="Revision" text="修订"/>
+<l:gentext key="sect1" text="节"/>
+<l:gentext key="sect2" text="节"/>
+<l:gentext key="sect3" text="节"/>
+<l:gentext key="sect4" text="节"/>
+<l:gentext key="sect5" text="节"/>
+<l:gentext key="section" text="节"/>
+<l:gentext key="Section" text="节"/>
+<l:gentext key="see" text="见"/>
+<l:gentext key="See" text="见"/>
+<l:gentext key="seealso" text="参见"/>
+<l:gentext key="Seealso" text="参见"/>
+<l:gentext key="SeeAlso" text="参见"/>
+<l:gentext key="set" text="集合"/>
+<l:gentext key="Set" text="集合"/>
+<l:gentext key="setindex" text="索引"/>
+<l:gentext key="SetIndex" text="索引"/>
+<l:gentext key="Sidebar" text="侧栏"/>
+<l:gentext key="sidebar" text="侧栏"/>
+<l:gentext key="step" text="步骤"/>
+<l:gentext key="Step" text="步骤"/>
+<l:gentext key="table" text="表"/>
+<l:gentext key="Table" text="表"/>
+<l:gentext key="task" text="任务"/>
+<l:gentext key="Task" text="任务"/>
+<l:gentext key="tip" text="提示"/>
+<l:gentext key="TIP" text="提示"/>
+<l:gentext key="Tip" text="提示"/>
+<l:gentext key="Warning" text="警告"/>
+<l:gentext key="warning" text="警告"/>
+<l:gentext key="WARNING" text="警告"/>
+<l:gentext key="and" text="和"/>
+<l:gentext key="or" text="或"/>
+<l:gentext key="by" text="由"/>
+<l:gentext key="Edited" text="编辑时间"/>
+<l:gentext key="edited" text="编辑时间"/>
+<l:gentext key="Editedby" text="编辑"/>
+<l:gentext key="editedby" text="编辑"/>
+<l:gentext key="in" text="于"/>
+<l:gentext key="lastlistcomma" text=""/>
+<l:gentext key="listcomma" text="、"/>
+<l:gentext key="notes" text="备注"/>
+<l:gentext key="Notes" text="备注"/>
+<l:gentext key="Pgs" text="页"/>
+<l:gentext key="pgs" text="页"/>
+<l:gentext key="Revisedby" text="修订者:"/>
+<l:gentext key="revisedby" text="修订者:"/>
+<l:gentext key="TableNotes" text="表注"/>
+<l:gentext key="tablenotes" text="表注"/>
+<l:gentext key="TableofContents" text="目录"/>
+<l:gentext key="tableofcontents" text="目录"/>
+<l:gentext key="unexpectedelementname" text="未预期的名称"/>
+<l:gentext key="unsupported" text="不支持"/>
+<l:gentext key="xrefto" text="xref to"/>
+<l:gentext key="Authors" text="作者"/>
+<l:gentext key="copyeditor" text="版权编辑"/>
+<l:gentext key="graphicdesigner" text="美术编辑"/>
+<l:gentext key="productioneditor" text="产品编辑"/>
+<l:gentext key="technicaleditor" text="技术编辑"/>
+<l:gentext key="translator" text="译者"/>
+<l:gentext key="listofequations" text="公式清单"/>
+<l:gentext key="ListofEquations" text="公式清单"/>
+<l:gentext key="ListofExamples" text="范例清单"/>
+<l:gentext key="listofexamples" text="范例清单"/>
+<l:gentext key="ListofFigures" text="插图清单"/>
+<l:gentext key="listoffigures" text="插图清单"/>
+<l:gentext key="ListofProcedures" text="过程清单"/>
+<l:gentext key="listofprocedures" text="过程清单"/>
+<l:gentext key="listoftables" text="表格清单"/>
+<l:gentext key="ListofTables" text="表格清单"/>
+<l:gentext key="ListofUnknown" text="未知清单"/>
+<l:gentext key="listofunknown" text="未知清单"/>
+<l:gentext key="nav-home" text="起始页"/>
+<l:gentext key="nav-next" text="下一页"/>
+<l:gentext key="nav-next-sibling" text="快进"/>
+<l:gentext key="nav-prev" text="上一页"/>
+<l:gentext key="nav-prev-sibling" text="快退"/>
+<l:gentext key="nav-up" text="上一级"/>
+<l:gentext key="nav-toc" text="目录"/>
+<l:gentext key="Draft" text="草稿"/>
+<l:gentext key="above" text="以上"/>
+<l:gentext key="below" text="以下"/>
+<l:gentext key="sectioncalled" text="一节"/>
+<l:gentext key="index symbols" text="符号"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:gentext key="normalize.sort.input" text="abcdefghijklmnopqrstuvwxyz"/>
+<l:gentext key="normalize.sort.output" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘"/>
+<l:dingbat key="singleendquote" text="’"/>
+<l:dingbat key="bullet" text="·"/>
+<l:gentext key="hyphenation-character" text="-"/>
+<l:gentext key="hyphenation-push-character-count" text="2"/>
+<l:gentext key="hyphenation-remain-character-count" text="2"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="附录 %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="第 %n 章 %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="公式 %n. %t"/>
+<l:template name="example" text="例 %n. %t"/>
+<l:template name="figure" text="图 %n. %t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t"/>
+<l:template name="glossentry" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="第 %n 部分 %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="过程 %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="产品 %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="表 %n. %t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tasksummary" text="%t"/>
+<l:template name="taskprerequisites" text="%t"/>
+<l:template name="taskrelated" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text=""/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="附录 %n. %t"/>
+<l:template name="article/appendix" text="%n. %t"/>
+<l:template name="bridgehead" text="%n. %t"/>
+<l:template name="chapter" text="第 %n 章 %t"/>
+<l:template name="part" text="部分 %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t"/>
+<l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t"/>
+<l:template name="foilgroup" text="%t"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="问: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="问: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o"/>
+<l:template name="olink.page.citation" text=" (page %p)"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(第 %p 页)"/>
+<l:template name="docname" text=" 在 %o"/>
+<l:template name="docnamelong" text=" 在文档标题 %o"/>
+<l:template name="pageabbrev" text="(第 %p 页)"/>
+<l:template name="Page" text="第 %p 页"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="“%t”一节"/>
+<l:template name="refsection" text="“%t”一节"/>
+<l:template name="refsect1" text="“%t”一节"/>
+<l:template name="refsect2" text="“%t”一节"/>
+<l:template name="refsect3" text="“%t”一节"/>
+<l:template name="sect1" text="“%t”一节"/>
+<l:template name="sect2" text="“%t”一节"/>
+<l:template name="sect3" text="“%t”一节"/>
+<l:template name="sect4" text="“%t”一节"/>
+<l:template name="sect5" text="“%t”一节"/>
+<l:template name="section" text="“%t”一节"/>
+<l:template name="simplesect" text="“%t”一节"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="附录 %n"/>
+<l:template name="bridgehead" text="第 %n 节"/>
+<l:template name="chapter" text="第 %n 章"/>
+<l:template name="equation" text="公式 %n"/>
+<l:template name="example" text="例 %n"/>
+<l:template name="figure" text="图 %n"/>
+<l:template name="part" text="第 %n 部分"/>
+<l:template name="procedure" text="过程 %n"/>
+<l:template name="productionset" text="产品 %n"/>
+<l:template name="qandadiv" text="答问集 %n"/>
+<l:template name="qandaentry" text="问: %n"/>
+<l:template name="question" text="问: %n"/>
+<l:template name="sect1" text="第 %n 节"/>
+<l:template name="sect2" text="第 %n 节"/>
+<l:template name="sect3" text="第 %n 节"/>
+<l:template name="sect4" text="第 %n 节"/>
+<l:template name="sect5" text="第 %n 节"/>
+<l:template name="section" text="第 %n 节"/>
+<l:template name="table" text="表 %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="附录 %n, %t"/>
+<l:template name="bridgehead" text="第 %n 节 “%t”"/>
+<l:template name="chapter" text="第 %n 章 %t"/>
+<l:template name="equation" text="公式 %n “%t”"/>
+<l:template name="example" text="例 %n “%t”"/>
+<l:template name="figure" text="图 %n “%t”"/>
+<l:template name="part" text="第 %n 部分 “%t”"/>
+<l:template name="procedure" text="过程 %n, “%t”"/>
+<l:template name="productionset" text="产品 %n, “%t”"/>
+<l:template name="qandadiv" text="答问集 %n, “%t”"/>
+<l:template name="refsect1" text="“%t”一节"/>
+<l:template name="refsect2" text="“%t”一节"/>
+<l:template name="refsect3" text="“%t”一节"/>
+<l:template name="refsection" text="“%t”一节"/>
+<l:template name="sect1" text="第 %n 节 “%t”"/>
+<l:template name="sect2" text="第 %n 节 “%t”"/>
+<l:template name="sect3" text="第 %n 节 “%t”"/>
+<l:template name="sect4" text="第 %n 节 “%t”"/>
+<l:template name="sect5" text="第 %n 节 “%t”"/>
+<l:template name="section" text="第 %n 节 “%t”"/>
+<l:template name="simplesect" text="“%t”一节"/>
+<l:template name="table" text="表 %n “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text="、"/>
+<l:template name="sep2" text="和"/>
+<l:template name="seplast" text="和"/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="见%t."/>
+<l:template name="seealso" text="参见%t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="受众:"/>
+<l:template name="MsgLevel" text="级别:"/>
+<l:template name="MsgOrig" text="出处:"/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="Y-m-d"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[定义:"/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="一月"/>
+<l:template name="February" text="二月"/>
+<l:template name="March" text="三月"/>
+<l:template name="April" text="四月"/>
+<l:template name="May" text="五月"/>
+<l:template name="June" text="六月"/>
+<l:template name="July" text="七月"/>
+<l:template name="August" text="八月"/>
+<l:template name="September" text="九月"/>
+<l:template name="October" text="十月"/>
+<l:template name="November" text="十一月"/>
+<l:template name="December" text="十二月"/>
+<l:template name="Monday" text="星期一"/>
+<l:template name="Tuesday" text="星期二"/>
+<l:template name="Wednesday" text="星期三"/>
+<l:template name="Thursday" text="星期四"/>
+<l:template name="Friday" text="星期五"/>
+<l:template name="Saturday" text="星期六"/>
+<l:template name="Sunday" text="星期日"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="一月"/>
+<l:template name="Feb" text="二月"/>
+<l:template name="Mar" text="三月"/>
+<l:template name="Apr" text="四月"/>
+<l:template name="May" text="五月"/>
+<l:template name="Jun" text="六月"/>
+<l:template name="Jul" text="七月"/>
+<l:template name="Aug" text="八月"/>
+<l:template name="Sep" text="九月"/>
+<l:template name="Oct" text="十月"/>
+<l:template name="Nov" text="十一月"/>
+<l:template name="Dec" text="十二月"/>
+<l:template name="Mon" text="周一"/>
+<l:template name="Tue" text="周二"/>
+<l:template name="Wed" text="周三"/>
+<l:template name="Thu" text="周四"/>
+<l:template name="Fri" text="周五"/>
+<l:template name="Sat" text="周六"/>
+<l:template name="Sun" text="周日"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0804 Chinese (CHINA)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=","/>
+<l:template name="number-separator" text=","/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=","/>
+<l:template name="alt.person.two.sep" text=" 和 "/>
+<l:template name="alt.person.last.sep" text=" 和 "/>
+<l:template name="alt.person.more.sep" text=","/>
+<l:template name="primary.editor" text="(主编)"/>
+<l:template name="primary.many" text="等。"/>
+<l:template name="primary.sep" text="。"/>
+<l:template name="submaintitle.sep" text=":"/>
+<l:template name="title.sep" text="。"/>
+<l:template name="othertitle.sep" text=","/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text=";"/>
+<l:template name="secondary.sep" text="。"/>
+<l:template name="respons.sep" text="。"/>
+<l:template name="edition.sep" text="。"/>
+<l:template name="edition.serial.sep" text=","/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=","/>
+<l:template name="issuing.sep" text="。"/>
+<l:template name="partnr.sep" text="。"/>
+<l:template name="placepubl.sep" text=":"/>
+<l:template name="publyear.sep" text=","/>
+<l:template name="pubinfo.sep" text="。"/>
+<l:template name="spec.pubinfo.sep" text=","/>
+<l:template name="upd.sep" text=","/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text="。"/>
+<l:template name="locs.sep" text=","/>
+<l:template name="location.sep" text="。"/>
+<l:template name="serie.sep" text="。"/>
+<l:template name="notice.sep" text="。"/>
+<l:template name="access" text="可用"/>
+<l:template name="acctoo" text="也可用"/>
+<l:template name="onwww" text="从万维网"/>
+<l:template name="oninet" text="从互联网"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text="。"/>
+<l:template name="patcountry.sep" text="。"/>
+<l:template name="pattype.sep" text=","/>
+<l:template name="patnum.sep" text="。"/>
+<l:template name="patdate.sep" text="。"/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">符号</l:l>
+<l:l i="1">A</l:l>
+<l:l i="1">a</l:l>
+<l:l i="2">B</l:l>
+<l:l i="2">b</l:l>
+<l:l i="3">C</l:l>
+<l:l i="3">c</l:l>
+<l:l i="4">D</l:l>
+<l:l i="4">d</l:l>
+<l:l i="5">E</l:l>
+<l:l i="5">e</l:l>
+<l:l i="6">F</l:l>
+<l:l i="6">f</l:l>
+<l:l i="7">G</l:l>
+<l:l i="7">g</l:l>
+<l:l i="8">H</l:l>
+<l:l i="8">h</l:l>
+<l:l i="9">I</l:l>
+<l:l i="9">i</l:l>
+<l:l i="10">J</l:l>
+<l:l i="10">j</l:l>
+<l:l i="11">K</l:l>
+<l:l i="11">k</l:l>
+<l:l i="12">L</l:l>
+<l:l i="12">l</l:l>
+<l:l i="13">M</l:l>
+<l:l i="13">m</l:l>
+<l:l i="14">N</l:l>
+<l:l i="14">n</l:l>
+<l:l i="15">O</l:l>
+<l:l i="15">o</l:l>
+<l:l i="16">P</l:l>
+<l:l i="16">p</l:l>
+<l:l i="17">Q</l:l>
+<l:l i="17">q</l:l>
+<l:l i="18">R</l:l>
+<l:l i="18">r</l:l>
+<l:l i="19">S</l:l>
+<l:l i="19">s</l:l>
+<l:l i="20">T</l:l>
+<l:l i="20">t</l:l>
+<l:l i="21">U</l:l>
+<l:l i="21">u</l:l>
+<l:l i="22">V</l:l>
+<l:l i="22">v</l:l>
+<l:l i="23">W</l:l>
+<l:l i="23">w</l:l>
+<l:l i="24">X</l:l>
+<l:l i="24">x</l:l>
+<l:l i="25">Y</l:l>
+<l:l i="25">y</l:l>
+<l:l i="26">Z</l:l>
+<l:l i="26">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/common/zh_tw.xml b/applications/content/template/docbook/common/zh_tw.xml
new file mode 100644
index 0000000..537924d
--- /dev/null
+++ b/applications/content/template/docbook/common/zh_tw.xml
@@ -0,0 +1,678 @@
+<?xml version="1.0" encoding="utf-8"?>
+<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="zh_tw" english-language-name="Chinese (Taiwan)">
+
+<!-- * This file is generated automatically. -->
+<!-- * To submit changes to this file upstream (to the DocBook Project) -->
+<!-- * do not submit an edited version of this file. Instead, submit an -->
+<!-- * edited version of the source file at the following location: -->
+<!-- * -->
+<!-- *  https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/gentext/locale/zh_tw.xml -->
+<!-- * -->
+<!-- * E-mail the edited zh_tw.xml source file to: -->
+<!-- * -->
+<!-- *  docbook-developers@lists.sourceforge.net -->
+
+<!-- ******************************************************************** -->
+
+<!-- This file is part of the XSL DocBook Stylesheet distribution. -->
+<!-- See ../README or http://docbook.sf.net/release/xsl/current/ for -->
+<!-- copyright and other information. -->
+
+<!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
+
+<l:gentext key="Abstract" text="摘要"/>
+<l:gentext key="abstract" text="摘要"/>
+<l:gentext key="Acknowledgements" text="鳴謝"/>
+<l:gentext key="acknowledgements" text="鳴謝"/>
+<l:gentext key="Answer" text="答:"/>
+<l:gentext key="answer" text="答:"/>
+<l:gentext key="Appendix" text="附錄"/>
+<l:gentext key="appendix" text="附錄"/>
+<l:gentext key="Article" text="文章"/>
+<l:gentext key="article" text="文章"/>
+<l:gentext key="Author" text="作者"/>
+<l:gentext key="Bibliography" text="參考文獻"/>
+<l:gentext key="bibliography" text="參考文獻"/>
+<l:gentext key="Book" text="書目"/>
+<l:gentext key="book" text="書目"/>
+<l:gentext key="CAUTION" text="注意"/>
+<l:gentext key="Caution" text="注意"/>
+<l:gentext key="caution" text="注意"/>
+<l:gentext key="Chapter" text="章"/>
+<l:gentext key="chapter" text="章"/>
+<l:gentext key="Colophon" text="版本記錄"/>
+<l:gentext key="colophon" text="版本記錄"/>
+<l:gentext key="Copyright" text="版權"/>
+<l:gentext key="copyright" text="版權"/>
+<l:gentext key="Dedication" text="奉獻"/>
+<l:gentext key="dedication" text="奉獻"/>
+<l:gentext key="Edition" text="版"/>
+<l:gentext key="edition" text="版"/>
+<l:gentext key="Editor" text="编者"/>
+<l:gentext key="Equation" text="公式"/>
+<l:gentext key="equation" text="公式"/>
+<l:gentext key="Example" text="範例"/>
+<l:gentext key="example" text="範例"/>
+<l:gentext key="Figure" text="圖形"/>
+<l:gentext key="figure" text="圖形"/>
+<l:gentext key="Glossary" text="小辭彙"/>
+<l:gentext key="glossary" text="小辭彙"/>
+<l:gentext key="GlossSee" text="參見"/>
+<l:gentext key="glosssee" text="參見"/>
+<l:gentext key="GlossSeeAlso" text="另參見"/>
+<l:gentext key="glossseealso" text="另參見"/>
+<l:gentext key="IMPORTANT" text="重要"/>
+<l:gentext key="important" text="重要"/>
+<l:gentext key="Important" text="重要"/>
+<l:gentext key="Index" text="索引"/>
+<l:gentext key="index" text="索引"/>
+<l:gentext key="ISBN" text="ISBN"/>
+<l:gentext key="isbn" text="ISBN"/>
+<l:gentext key="LegalNotice" text="法律聲明"/>
+<l:gentext key="legalnotice" text="法律聲明"/>
+<l:gentext key="MsgAud" text="讀者"/>
+<l:gentext key="msgaud" text="讀者"/>
+<l:gentext key="MsgLevel" text="程度"/>
+<l:gentext key="msglevel" text="程度"/>
+<l:gentext key="MsgOrig" text="出處"/>
+<l:gentext key="msgorig" text="出處"/>
+<l:gentext key="NOTE" text="注意"/>
+<l:gentext key="Note" text="注意"/>
+<l:gentext key="note" text="注意"/>
+<l:gentext key="Part" text="部"/>
+<l:gentext key="part" text="部"/>
+<l:gentext key="Preface" text="序言"/>
+<l:gentext key="preface" text="序言"/>
+<l:gentext key="Procedure" text="過程"/>
+<l:gentext key="procedure" text="過程"/>
+<l:gentext key="ProductionSet" text="奉獻"/>
+<l:gentext key="PubDate" text="出版日期"/>
+<l:gentext key="pubdate" text="出版日期"/>
+<l:gentext key="Published" text="出版"/>
+<l:gentext key="published" text="出版"/>
+<l:gentext key="Publisher" text="出版者"/>
+<l:gentext key="Qandadiv" text="問答"/>
+<l:gentext key="qandadiv" text="問答"/>
+<l:gentext key="QandASet" text="常見問題集"/>
+<l:gentext key="Question" text="問:"/>
+<l:gentext key="question" text="問:"/>
+<l:gentext key="RefEntry" text="頁"/>
+<l:gentext key="refentry" text="頁"/>
+<l:gentext key="Reference" text="參考"/>
+<l:gentext key="reference" text="參考"/>
+<l:gentext key="References" text="參考"/>
+<l:gentext key="RefName" text="參考名"/>
+<l:gentext key="refname" text="參考名"/>
+<l:gentext key="RefSection" text="節"/>
+<l:gentext key="refsection" text="節"/>
+<l:gentext key="RefSynopsisDiv" text="大綱"/>
+<l:gentext key="refsynopsisdiv" text="大綱"/>
+<l:gentext key="RevHistory" text="修訂記錄"/>
+<l:gentext key="revhistory" text="修訂記錄"/>
+<l:gentext key="revision" text="修訂"/>
+<l:gentext key="Revision" text="修訂"/>
+<l:gentext key="sect1" text="節"/>
+<l:gentext key="sect2" text="節"/>
+<l:gentext key="sect3" text="節"/>
+<l:gentext key="sect4" text="節"/>
+<l:gentext key="sect5" text="節"/>
+<l:gentext key="section" text="節"/>
+<l:gentext key="Section" text="節"/>
+<l:gentext key="see" text="參見"/>
+<l:gentext key="See" text="參見"/>
+<l:gentext key="seealso" text="另參見"/>
+<l:gentext key="Seealso" text="另參見"/>
+<l:gentext key="SeeAlso" text="另參見"/>
+<l:gentext key="set" text="集合"/>
+<l:gentext key="Set" text="集合"/>
+<l:gentext key="setindex" text="索引"/>
+<l:gentext key="SetIndex" text="索引"/>
+<l:gentext key="Sidebar" text="側欄"/>
+<l:gentext key="sidebar" text="側欄"/>
+<l:gentext key="step" text="步驟"/>
+<l:gentext key="Step" text="步驟"/>
+<l:gentext key="table" text="表格"/>
+<l:gentext key="Table" text="表格"/>
+<l:gentext key="task" text="任務"/>
+<l:gentext key="Task" text="任務"/>
+<l:gentext key="tip" text="提示"/>
+<l:gentext key="TIP" text="提示"/>
+<l:gentext key="Tip" text="提示"/>
+<l:gentext key="Warning" text="警告"/>
+<l:gentext key="warning" text="警告"/>
+<l:gentext key="WARNING" text="警告"/>
+<l:gentext key="and" text="且"/>
+<l:gentext key="or" text="或"/>
+<l:gentext key="by" text="由"/>
+<l:gentext key="Edited" text="編輯"/>
+<l:gentext key="edited" text="編輯"/>
+<l:gentext key="Editedby" text="編輯者"/>
+<l:gentext key="editedby" text="編輯者"/>
+<l:gentext key="in" text="在"/>
+<l:gentext key="lastlistcomma" text=","/>
+<l:gentext key="listcomma" text=","/>
+<l:gentext key="notes" text="注"/>
+<l:gentext key="Notes" text="注"/>
+<l:gentext key="Pgs" text="頁"/>
+<l:gentext key="pgs" text="頁"/>
+<l:gentext key="Revisedby" text="修訂者 "/>
+<l:gentext key="revisedby" text="修訂者 "/>
+<l:gentext key="TableNotes" text="注"/>
+<l:gentext key="tablenotes" text="注"/>
+<l:gentext key="TableofContents" text="內容目錄"/>
+<l:gentext key="tableofcontents" text="內容目錄"/>
+<l:gentext key="unexpectedelementname" text="非預期的名稱"/>
+<l:gentext key="unsupported" text="未支援"/>
+<l:gentext key="xrefto" text="參照"/>
+<l:gentext key="Authors" text="作者"/>
+<l:gentext key="copyeditor" text="版權"/>
+<l:gentext key="graphicdesigner" text="美術編輯"/>
+<l:gentext key="productioneditor" text="製作編輯"/>
+<l:gentext key="technicaleditor" text="技術編輯"/>
+<l:gentext key="translator" text="翻譯者"/>
+<l:gentext key="listofequations" text="公式目錄"/>
+<l:gentext key="ListofEquations" text="公式目錄"/>
+<l:gentext key="ListofExamples" text="範例目錄"/>
+<l:gentext key="listofexamples" text="範例目錄"/>
+<l:gentext key="ListofFigures" text="附圖目錄"/>
+<l:gentext key="listoffigures" text="附圖目錄"/>
+<l:gentext key="ListofProcedures" text="過程清單"/>
+<l:gentext key="listofprocedures" text="過程清單"/>
+<l:gentext key="listoftables" text="附表目錄"/>
+<l:gentext key="ListofTables" text="附表目錄"/>
+<l:gentext key="ListofUnknown" text="其他內容目錄"/>
+<l:gentext key="listofunknown" text="其他內容目錄"/>
+<l:gentext key="nav-home" text="起始頁"/>
+<l:gentext key="nav-next" text="下一頁"/>
+<l:gentext key="nav-next-sibling" text="快速向前"/>
+<l:gentext key="nav-prev" text="前一頁"/>
+<l:gentext key="nav-prev-sibling" text="快速向後"/>
+<l:gentext key="nav-up" text="上一層"/>
+<l:gentext key="nav-toc" text="目錄"/>
+<l:gentext key="Draft" text="草稿"/>
+<l:gentext key="above" text="以上"/>
+<l:gentext key="below" text="以下"/>
+<l:gentext key="sectioncalled" text="一節"/>
+<l:gentext key="index symbols" text="符號"/>
+<l:gentext key="writing-mode" text="lr-tb"/>
+<l:gentext key="lowercase.alpha" text="abcdefghijklmnopqrstuvwxyz" lang="en"/>
+<l:gentext key="uppercase.alpha" text="ABCDEFGHIJKLMNOPQRSTUVWXYZ" lang="en"/>
+<l:gentext key="normalize.sort.input" text="AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ" lang="en"/>
+<l:gentext key="normalize.sort.output" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ" lang="en"/>
+<l:dingbat key="startquote" text="“"/>
+<l:dingbat key="endquote" text="”"/>
+<l:dingbat key="nestedstartquote" text="‘"/>
+<l:dingbat key="nestedendquote" text="’"/>
+<l:dingbat key="singlestartquote" text="‘" lang="en"/>
+<l:dingbat key="singleendquote" text="’" lang="en"/>
+<l:dingbat key="bullet" text="•"/>
+<l:gentext key="hyphenation-character" text="-" lang="en"/>
+<l:gentext key="hyphenation-push-character-count" text="2" lang="en"/>
+<l:gentext key="hyphenation-remain-character-count" text="2" lang="en"/>
+<l:context name="webhelp"><l:template name="Search" text="Search" lang="en"/>
+<l:template name="Enter_a_term_and_click" text="Enter a term and click " lang="en"/>
+<l:template name="Go" text="Go" lang="en"/>
+<l:template name="to_perform_a_search" text=" to perform a search." lang="en"/>
+<l:template name="txt_filesfound" text="Results" lang="en"/>
+<l:template name="txt_enter_at_least_1_char" text="You must enter at least one character." lang="en"/>
+<l:template name="txt_browser_not_supported" text="JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site." lang="en"/>
+<l:template name="txt_please_wait" text="Please wait. Search in progress..." lang="en"/>
+<l:template name="txt_results_for" text="Results for: " lang="en"/>
+<l:template name="TableofContents" text="Contents" lang="en"/>
+<l:template name="HighlightButton" text="Toggle search result highlighting" lang="en"/>
+<l:template name="Your_search_returned_no_results" text="Your search returned no results." lang="en"/>
+</l:context>
+<l:context name="styles"><l:template name="person-name" text="first-last"/>
+</l:context>
+<l:context name="title"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="%t"/>
+<l:template name="appendix" text="附錄 %n. %t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="biblioentry" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliolist" text="%t" lang="en"/>
+<l:template name="bibliomixed" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="章 %n. %t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="公式 %n. %t"/>
+<l:template name="example" text="範例 %n. %t"/>
+<l:template name="figure" text="圖形 %n. %t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="glosslist" text="%t" lang="en"/>
+<l:template name="glossentry" text="%t" lang="en"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text=""/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="部 %n. %t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="procedure.formal" text="過程 %n. %t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="productionset.formal" text="奉獻 %n"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="%t"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="%t"/>
+<l:template name="refentry" text="%t"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsection" text="%t" lang="en"/>
+<l:template name="refsect1" text="%t"/>
+<l:template name="refsect2" text="%t"/>
+<l:template name="refsect3" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="refsynopsisdivinfo" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="step" text="%t"/>
+<l:template name="table" text="表格 %n. %t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tasksummary" text="%t" lang="en"/>
+<l:template name="taskprerequisites" text="%t" lang="en"/>
+<l:template name="taskrelated" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="" lang="en"/>
+<l:template name="warning" text="%t"/>
+</l:context>
+<l:context name="title-unnumbered"><l:template name="appendix" text="%t"/>
+<l:template name="article/appendix" text="%t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="sect1" text="%t"/>
+<l:template name="sect2" text="%t"/>
+<l:template name="sect3" text="%t"/>
+<l:template name="sect4" text="%t"/>
+<l:template name="sect5" text="%t"/>
+<l:template name="section" text="%t"/>
+<l:template name="simplesect" text="%t"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="part" text="%t" lang="en"/>
+</l:context>
+<l:context name="title-numbered"><l:template name="appendix" text="附錄 %n. %t"/>
+<l:template name="article/appendix" text="%n. %t" lang="en"/>
+<l:template name="bridgehead" text="%t"/>
+<l:template name="chapter" text="章 %n. %t"/>
+<l:template name="part" text="部 %n. %t"/>
+<l:template name="sect1" text="%n. %t"/>
+<l:template name="sect2" text="%n. %t"/>
+<l:template name="sect3" text="%n. %t"/>
+<l:template name="sect4" text="%n. %t"/>
+<l:template name="sect5" text="%n. %t"/>
+<l:template name="section" text="%n. %t"/>
+<l:template name="simplesect" text="%n. %t"/>
+<l:template name="topic" text="%t" lang="en"/>
+</l:context>
+<l:context name="subtitle"><l:template name="appendix" text="%s"/>
+<l:template name="acknowledgements" text="%s" lang="en"/>
+<l:template name="article" text="%s"/>
+<l:template name="bibliodiv" text="%s"/>
+<l:template name="biblioentry" text="%s"/>
+<l:template name="bibliography" text="%s"/>
+<l:template name="bibliomixed" text="%s"/>
+<l:template name="bibliomset" text="%s"/>
+<l:template name="biblioset" text="%s"/>
+<l:template name="book" text="%s"/>
+<l:template name="chapter" text="%s"/>
+<l:template name="colophon" text="%s"/>
+<l:template name="dedication" text="%s"/>
+<l:template name="glossary" text="%s"/>
+<l:template name="glossdiv" text="%s"/>
+<l:template name="index" text="%s"/>
+<l:template name="indexdiv" text="%s"/>
+<l:template name="lot" text="%s"/>
+<l:template name="part" text="%s"/>
+<l:template name="partintro" text="%s"/>
+<l:template name="preface" text="%s"/>
+<l:template name="refentry" text="%s"/>
+<l:template name="reference" text="%s"/>
+<l:template name="refsection" text="%s" lang="en"/>
+<l:template name="refsect1" text="%s"/>
+<l:template name="refsect2" text="%s"/>
+<l:template name="refsect3" text="%s"/>
+<l:template name="refsynopsisdiv" text="%s"/>
+<l:template name="sect1" text="%s"/>
+<l:template name="sect2" text="%s"/>
+<l:template name="sect3" text="%s"/>
+<l:template name="sect4" text="%s"/>
+<l:template name="sect5" text="%s"/>
+<l:template name="section" text="%s"/>
+<l:template name="set" text="%s"/>
+<l:template name="setindex" text="%s"/>
+<l:template name="sidebar" text="%s"/>
+<l:template name="simplesect" text="%s"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="toc" text="%s"/>
+</l:context>
+<l:context name="xref"><l:template name="abstract" text="%t"/>
+<l:template name="acknowledgements" text="%t" lang="en"/>
+<l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="%t"/>
+<l:template name="article" text="%t"/>
+<l:template name="authorblurb" text="%t"/>
+<l:template name="bibliodiv" text="%t"/>
+<l:template name="bibliography" text="%t"/>
+<l:template name="bibliomset" text="%t"/>
+<l:template name="biblioset" text="%t"/>
+<l:template name="blockquote" text="%t"/>
+<l:template name="book" text="%t"/>
+<l:template name="calloutlist" text="%t"/>
+<l:template name="caution" text="%t"/>
+<l:template name="chapter" text="%t"/>
+<l:template name="colophon" text="%t"/>
+<l:template name="constraintdef" text="%t"/>
+<l:template name="dedication" text="%t"/>
+<l:template name="equation" text="%t"/>
+<l:template name="example" text="%t"/>
+<l:template name="figure" text="%t"/>
+<l:template name="foil" text="%t" lang="en"/>
+<l:template name="foilgroup" text="%t" lang="en"/>
+<l:template name="formalpara" text="%t"/>
+<l:template name="glossary" text="%t"/>
+<l:template name="glossdiv" text="%t"/>
+<l:template name="important" text="%t"/>
+<l:template name="index" text="%t"/>
+<l:template name="indexdiv" text="%t"/>
+<l:template name="itemizedlist" text="%t"/>
+<l:template name="legalnotice" text="%t"/>
+<l:template name="listitem" text="%n"/>
+<l:template name="lot" text="%t"/>
+<l:template name="msg" text="%t"/>
+<l:template name="msgexplan" text="%t"/>
+<l:template name="msgmain" text="%t"/>
+<l:template name="msgrel" text="%t"/>
+<l:template name="msgset" text="%t"/>
+<l:template name="msgsub" text="%t"/>
+<l:template name="note" text="%t"/>
+<l:template name="orderedlist" text="%t"/>
+<l:template name="part" text="%t"/>
+<l:template name="partintro" text="%t"/>
+<l:template name="preface" text="%t"/>
+<l:template name="procedure" text="%t"/>
+<l:template name="productionset" text="%t"/>
+<l:template name="qandadiv" text="%t"/>
+<l:template name="qandaentry" text="問: %n"/>
+<l:template name="qandaset" text="%t"/>
+<l:template name="question" text="問: %n"/>
+<l:template name="reference" text="%t"/>
+<l:template name="refsynopsisdiv" text="%t"/>
+<l:template name="segmentedlist" text="%t"/>
+<l:template name="set" text="%t"/>
+<l:template name="setindex" text="%t"/>
+<l:template name="sidebar" text="%t"/>
+<l:template name="table" text="%t"/>
+<l:template name="task" text="%t" lang="en"/>
+<l:template name="tip" text="%t"/>
+<l:template name="toc" text="%t"/>
+<l:template name="variablelist" text="%t"/>
+<l:template name="varlistentry" text="%n"/>
+<l:template name="warning" text="%t"/>
+<l:template name="olink.document.citation" text=" in %o" lang="en"/>
+<l:template name="olink.page.citation" text=" (page %p)" lang="en"/>
+<l:template name="page.citation" text=" [%p]"/>
+<l:template name="page" text="(page %p)" lang="en"/>
+<l:template name="docname" text=" in %o" lang="en"/>
+<l:template name="docnamelong" text=" in the document titled %o" lang="en"/>
+<l:template name="pageabbrev" text="(p. %p)" lang="en"/>
+<l:template name="Page" text="Page %p" lang="en"/>
+<l:template name="topic" text="%t" lang="en"/>
+<l:template name="bridgehead" text="“%t”"/>
+<l:template name="refsection" text="“%t”"/>
+<l:template name="refsect1" text="“%t”"/>
+<l:template name="refsect2" text="“%t”"/>
+<l:template name="refsect3" text="“%t”"/>
+<l:template name="sect1" text="“%t”"/>
+<l:template name="sect2" text="“%t”"/>
+<l:template name="sect3" text="“%t”"/>
+<l:template name="sect4" text="“%t”"/>
+<l:template name="sect5" text="“%t”"/>
+<l:template name="section" text="“%t”"/>
+<l:template name="simplesect" text="“%t”"/>
+</l:context>
+<l:context name="xref-number"><l:template name="answer" text="答: %n"/>
+<l:template name="appendix" text="附錄 %n"/>
+<l:template name="bridgehead" text="節 %n"/>
+<l:template name="chapter" text="章 %n"/>
+<l:template name="equation" text="公式 %n"/>
+<l:template name="example" text="範例 %n"/>
+<l:template name="figure" text="圖形 %n"/>
+<l:template name="part" text="部 %n"/>
+<l:template name="procedure" text="過程 %n"/>
+<l:template name="productionset" text="奉獻 %n"/>
+<l:template name="qandadiv" text="問答 %n"/>
+<l:template name="qandaentry" text="問: %n"/>
+<l:template name="question" text="問: %n"/>
+<l:template name="sect1" text="節 %n"/>
+<l:template name="sect2" text="節 %n"/>
+<l:template name="sect3" text="節 %n"/>
+<l:template name="sect4" text="節 %n"/>
+<l:template name="sect5" text="節 %n"/>
+<l:template name="section" text="節 %n"/>
+<l:template name="table" text="表格 %n"/>
+</l:context>
+<l:context name="xref-number-and-title"><l:template name="appendix" text="附錄 %n, %t"/>
+<l:template name="bridgehead" text="節 %n, “%t”"/>
+<l:template name="chapter" text="章 %n, %t"/>
+<l:template name="equation" text="公式 %n, “%t”"/>
+<l:template name="example" text="範例 %n, “%t”"/>
+<l:template name="figure" text="圖形 %n, “%t”"/>
+<l:template name="part" text="部 %n, “%t”"/>
+<l:template name="procedure" text="過程 %n, “%t”"/>
+<l:template name="productionset" text="奉獻 %n, “%t”"/>
+<l:template name="qandadiv" text="問答 %n, “%t”"/>
+<l:template name="refsect1" text="一節 “%t”"/>
+<l:template name="refsect2" text="一節 “%t”"/>
+<l:template name="refsect3" text="一節 “%t”"/>
+<l:template name="refsection" text="一節 “%t”"/>
+<l:template name="sect1" text="節 %n, “%t”"/>
+<l:template name="sect2" text="節 %n, “%t”"/>
+<l:template name="sect3" text="節 %n, “%t”"/>
+<l:template name="sect4" text="節 %n, “%t”"/>
+<l:template name="sect5" text="節 %n, “%t”"/>
+<l:template name="section" text="節 %n, “%t”"/>
+<l:template name="simplesect" text="一節 “%t”"/>
+<l:template name="table" text="表格 %n, “%t”"/>
+</l:context>
+<l:context name="authorgroup"><l:template name="sep" text=", "/>
+<l:template name="sep2" text=" 且 "/>
+<l:template name="seplast" text=", 且 "/>
+</l:context>
+<l:context name="glossary"><l:template name="see" text="參見 %t."/>
+<l:template name="seealso" text="另參見 %t."/>
+<l:template name="seealso-separator" text=", "/>
+</l:context>
+<l:context name="msgset"><l:template name="MsgAud" text="讀者: "/>
+<l:template name="MsgLevel" text="程度: "/>
+<l:template name="MsgOrig" text="出處: "/>
+</l:context>
+<l:context name="datetime"><l:template name="format" text="m/d/Y"/>
+</l:context>
+<l:context name="termdef"><l:template name="prefix" text="[Definition: "/>
+<l:template name="suffix" text="]"/>
+</l:context>
+<l:context name="datetime-full"><l:template name="January" text="一月"/>
+<l:template name="February" text="二月"/>
+<l:template name="March" text="三月"/>
+<l:template name="April" text="四月"/>
+<l:template name="May" text="五月"/>
+<l:template name="June" text="六月"/>
+<l:template name="July" text="七月"/>
+<l:template name="August" text="八月"/>
+<l:template name="September" text="九月"/>
+<l:template name="October" text="十月"/>
+<l:template name="November" text="十一月"/>
+<l:template name="December" text="十二月"/>
+<l:template name="Monday" text="星期一"/>
+<l:template name="Tuesday" text="星期二"/>
+<l:template name="Wednesday" text="星期三"/>
+<l:template name="Thursday" text="星期四"/>
+<l:template name="Friday" text="星期五"/>
+<l:template name="Saturday" text="星期六"/>
+<l:template name="Sunday" text="星期日"/>
+</l:context>
+<l:context name="datetime-abbrev"><l:template name="Jan" text="一月"/>
+<l:template name="Feb" text="二月"/>
+<l:template name="Mar" text="三月"/>
+<l:template name="Apr" text="四月"/>
+<l:template name="May" text="五月"/>
+<l:template name="Jun" text="六月"/>
+<l:template name="Jul" text="七月"/>
+<l:template name="Aug" text="八月"/>
+<l:template name="Sep" text="九月"/>
+<l:template name="Oct" text="10月"/>
+<l:template name="Nov" text="11月"/>
+<l:template name="Dec" text="12月"/>
+<l:template name="Mon" text="一"/>
+<l:template name="Tue" text="二"/>
+<l:template name="Wed" text="三"/>
+<l:template name="Thu" text="四"/>
+<l:template name="Fri" text="五"/>
+<l:template name="Sat" text="六"/>
+<l:template name="Sun" text="日"/>
+</l:context>
+<l:context name="htmlhelp"><l:template name="langcode" text="0x0404 Chinese (TAIWAN)"/>
+</l:context>
+<l:context name="index"><l:template name="term-separator" text=", "/>
+<l:template name="number-separator" text=", "/>
+<l:template name="range-separator" text="-"/>
+</l:context>
+<l:context name="iso690"><l:template name="lastfirst.sep" text=", "/>
+<l:template name="alt.person.two.sep" text=" – "/>
+<l:template name="alt.person.last.sep" text=" – "/>
+<l:template name="alt.person.more.sep" text=" – "/>
+<l:template name="primary.editor" text=" (ed.)"/>
+<l:template name="primary.many" text=", et al."/>
+<l:template name="primary.sep" text=". "/>
+<l:template name="submaintitle.sep" text=": "/>
+<l:template name="title.sep" text=". "/>
+<l:template name="othertitle.sep" text=", "/>
+<l:template name="medium1" text=" ["/>
+<l:template name="medium2" text="]"/>
+<l:template name="secondary.person.sep" text="; "/>
+<l:template name="secondary.sep" text=". "/>
+<l:template name="respons.sep" text=". "/>
+<l:template name="edition.sep" text=". "/>
+<l:template name="edition.serial.sep" text=", "/>
+<l:template name="issuing.range" text="-"/>
+<l:template name="issuing.div" text=", "/>
+<l:template name="issuing.sep" text=". "/>
+<l:template name="partnr.sep" text=". "/>
+<l:template name="placepubl.sep" text=": "/>
+<l:template name="publyear.sep" text=", "/>
+<l:template name="pubinfo.sep" text=". "/>
+<l:template name="spec.pubinfo.sep" text=", "/>
+<l:template name="upd.sep" text=", "/>
+<l:template name="datecit1" text=" [cited "/>
+<l:template name="datecit2" text="]"/>
+<l:template name="extent.sep" text=". "/>
+<l:template name="locs.sep" text=", "/>
+<l:template name="location.sep" text=". "/>
+<l:template name="serie.sep" text=". "/>
+<l:template name="notice.sep" text=". "/>
+<l:template name="access" text="Available "/>
+<l:template name="acctoo" text="Also available "/>
+<l:template name="onwww" text="from World Wide Web"/>
+<l:template name="oninet" text="from Internet"/>
+<l:template name="access.end" text=": "/>
+<l:template name="link1" text="&lt;"/>
+<l:template name="link2" text="&gt;"/>
+<l:template name="access.sep" text=". "/>
+<l:template name="isbn" text="ISBN "/>
+<l:template name="issn" text="ISSN "/>
+<l:template name="stdnum.sep" text=". "/>
+<l:template name="patcountry.sep" text=". "/>
+<l:template name="pattype.sep" text=", "/>
+<l:template name="patnum.sep" text=". "/>
+<l:template name="patdate.sep" text=". "/>
+</l:context><l:letters><l:l i="-1"/>
+<l:l i="0">符號</l:l>
+<l:l i="10">A</l:l>
+<l:l i="10">a</l:l>
+<l:l i="20">B</l:l>
+<l:l i="20">b</l:l>
+<l:l i="30">C</l:l>
+<l:l i="30">c</l:l>
+<l:l i="40">D</l:l>
+<l:l i="40">d</l:l>
+<l:l i="50">E</l:l>
+<l:l i="50">e</l:l>
+<l:l i="60">F</l:l>
+<l:l i="60">f</l:l>
+<l:l i="70">G</l:l>
+<l:l i="70">g</l:l>
+<l:l i="80">H</l:l>
+<l:l i="80">h</l:l>
+<l:l i="90">I</l:l>
+<l:l i="90">i</l:l>
+<l:l i="100">J</l:l>
+<l:l i="100">j</l:l>
+<l:l i="110">K</l:l>
+<l:l i="110">k</l:l>
+<l:l i="120">L</l:l>
+<l:l i="120">l</l:l>
+<l:l i="130">M</l:l>
+<l:l i="130">m</l:l>
+<l:l i="140">N</l:l>
+<l:l i="140">n</l:l>
+<l:l i="150">O</l:l>
+<l:l i="150">o</l:l>
+<l:l i="160">P</l:l>
+<l:l i="160">p</l:l>
+<l:l i="170">Q</l:l>
+<l:l i="170">q</l:l>
+<l:l i="180">R</l:l>
+<l:l i="180">r</l:l>
+<l:l i="190">S</l:l>
+<l:l i="190">s</l:l>
+<l:l i="200">T</l:l>
+<l:l i="200">t</l:l>
+<l:l i="210">U</l:l>
+<l:l i="210">u</l:l>
+<l:l i="220">V</l:l>
+<l:l i="220">v</l:l>
+<l:l i="230">W</l:l>
+<l:l i="230">w</l:l>
+<l:l i="240">X</l:l>
+<l:l i="240">x</l:l>
+<l:l i="250">Y</l:l>
+<l:l i="250">y</l:l>
+<l:l i="260">Z</l:l>
+<l:l i="260">z</l:l>
+</l:letters>
+</l:l10n>
diff --git a/applications/content/template/docbook/docsrc/authors.xml b/applications/content/template/docbook/docsrc/authors.xml
new file mode 100644
index 0000000..ea4bf02
--- /dev/null
+++ b/applications/content/template/docbook/docsrc/authors.xml
@@ -0,0 +1,10 @@
+<authorgroup xmlns="http://docbook.org/ns/docbook" version="5.0">
+  <author>
+    <personname>
+      <surname>Walsh</surname><firstname>Norman</firstname>
+    </personname>
+  </author>
+  <author>
+    <orgname>The DocBook Project</orgname>
+  </author>
+</authorgroup>
diff --git a/applications/content/template/docbook/docsrc/copyright.xml b/applications/content/template/docbook/docsrc/copyright.xml
new file mode 100644
index 0000000..505f7f8
--- /dev/null
+++ b/applications/content/template/docbook/docsrc/copyright.xml
@@ -0,0 +1,18 @@
+<info xmlns="http://docbook.org/ns/docbook" version="5.0">
+  <copyright>
+    <year>1999-2007</year>
+    <holder>Norman Walsh</holder>
+  </copyright>
+  <copyright>
+    <year>2003</year>
+    <holder>Jiří Kosek</holder>
+  </copyright>
+  <copyright>
+    <year>2004-2007</year>
+    <holder>Steve Ball</holder>
+  </copyright>
+  <copyright>
+    <year>2001-2007</year>
+    <holder>The DocBook Project</holder>
+  </copyright>
+</info>
diff --git a/applications/content/template/docbook/docsrc/license.xml b/applications/content/template/docbook/docsrc/license.xml
new file mode 100644
index 0000000..c265ce8
--- /dev/null
+++ b/applications/content/template/docbook/docsrc/license.xml
@@ -0,0 +1,23 @@
+<legalnotice xmlns="http://docbook.org/ns/docbook" version="5.0"
+  xml:id="copyright"><title>License</title>
+<para>Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation files
+(the <quote>Software</quote>), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+</para>
+<para>The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.</para>
+<para>Except as contained in this notice, the names of individuals
+credited with contribution to this software shall not be used in
+advertising or otherwise to promote the sale, use or other dealings in
+this Software without prior written authorization from the individuals
+in question.</para>
+<para>Any stylesheet derived from this Software that is publically
+distributed will be identified with a different name and the version
+strings in any derived Software will be changed so that no possibility
+of confusion between the derived package and this Software will
+exist.</para>
+</legalnotice>
diff --git a/applications/content/template/docbook/docsrc/page.png b/applications/content/template/docbook/docsrc/page.png
new file mode 100644
index 0000000..9c15d88
--- /dev/null
+++ b/applications/content/template/docbook/docsrc/page.png
Binary files differ
diff --git a/applications/content/template/docbook/docsrc/reference.css b/applications/content/template/docbook/docsrc/reference.css
new file mode 100644
index 0000000..fe735f3
--- /dev/null
+++ b/applications/content/template/docbook/docsrc/reference.css
@@ -0,0 +1,79 @@
+/* reference.css, a stylesheet for reference documentation
+ * generated by the DocBook XSL Stylesheets */
+/* $Id$ */
+
+div.legalnotice {
+  font-size: 80%;
+}
+
+div.note, div.tip, div.warning {
+  margin-left: 5%;
+  margin-right: 10%;
+  padding: 5px;
+}
+
+div.note, div.tip {
+  border-left: solid #d5dee3 20px;
+  border-right: solid #d5dee3 20px;
+}
+
+div.note, div.tip {
+  border-left: solid palegreen 20px;
+  border-right: solid palegreen 20px;
+}
+
+div.warning {
+  border-left: solid yellow 20px;
+  border-right: solid yellow 20px;
+}
+
+div.note p, div.tip p, div.warning p {
+  margin-top: 0px;
+  margin-bottom: 4px;
+}
+
+div.note h3, div.tip h3, div.warning h3 {
+  margin-top: 0;
+}
+
+div.informalexample {
+  background-color: #d5dee3;
+  border-top-width: 2px;
+  border-top-style: double;
+  border-top-color: #d3d3d3;
+  border-bottom-width: 2px;
+  border-bottom-style: double;
+  border-bottom-color: #d3d3d3;
+  padding: 4px;
+  margin: 0em;
+  margin-left: 2em;
+}
+
+pre.programlisting, pre.synopsis {
+  whitespace: pre;
+  font-family: monospace;
+  background-color: #d5dee3;
+  border-top-width: 1px;
+  border-top-style: single;
+  border-top-color: #d3d3d3;
+  border-bottom-width: 1px;
+  border-bottom-style: single;
+  border-bottom-color: #d3d3d3;
+  padding: 4px;
+  margin: 0em;
+  margin-top: 6px;
+  margin-bottom: 6px;
+}
+
+div.informalexample pre {
+  whitespace: pre;
+  font-family: monospace;
+  border-top-width: 0px;
+  border-bottom-width: 0px;
+  padding: 0px;
+}
+
+/* Parameter and PI titles */
+  div.refnamediv h2 {
+  font-size: 2em; 
+}
diff --git a/applications/content/template/docbook/docsrc/reference.xml b/applications/content/template/docbook/docsrc/reference.xml
new file mode 100644
index 0000000..58f932d
--- /dev/null
+++ b/applications/content/template/docbook/docsrc/reference.xml
@@ -0,0 +1,241 @@
+<set xmlns="http://docbook.org/ns/docbook" version="5.0"
+  xmlns:xi="http://www.w3.org/2001/XInclude"
+  xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xlink="http://www.w3.org/1999/xlink"
+  xml:base="../docsrc/"
+  >
+  <!-- * WARNING WARNING WARNING -->
+  <!-- * WARNING WARNING WARNING -->
+  <!-- * -->
+  <!-- * This document has duplicate IDs in it and is intended for -->
+  <!-- * processing using the chunk.xsl stylesheet to generate chunked -->
+  <!-- * output from it (not for generating a single HTML output file) -->
+  <!-- * -->
+  <!-- * WARNING WARNING WARNING -->
+  <!-- * WARNING WARNING WARNING -->
+  <title>DocBook XSL Stylesheets: Reference Documentation</title>
+  <info><releaseinfo role="meta">$Id$ </releaseinfo>
+    <xi:include href="./authors.xml"/>
+    <xi:include href="./copyright.xml" xpointer="xpointer(//*[local-name() = 'copyright'])"/>
+    <xi:include href="./license.xml"/>
+    <xi:include href="./warranty.xml"/>
+    <abstract xml:id="about">
+      <title>About this document</title>
+      <para>This is generated reference documentation for the DocBook
+        XSL stylesheets. It is available in the following formats:
+        <itemizedlist>
+          <listitem>
+            <para><link
+                xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/reference.html"
+                >HTML</link>,
+              <link
+                xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/reference.pdf"
+                >PDF</link>,
+              <link
+                xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/reference.txt"
+                >plain text</link></para>
+          </listitem>
+        </itemizedlist>
+        This is primarily documentation on the parameters and processing instructions you can use
+        to control the behavior of the stylesheets.
+        <note>
+          <para>This is purely reference documentation&#xa0;– not how-to
+            documentation. For a thorough step-by-step how-to guide to
+            publishing content using the DocBook XSL stylesheets, see
+            Bob Stayton’s <link 
+              xlink:href="http://www.sagehill.net/book-description.html"
+              >DocBook XSL: The Complete Guide</link>, available online
+            at <link
+              xlink:href="http://www.sagehill.net/docbookxsl/index.html"
+              >http://www.sagehill.net/docbookxsl/index.html</link>
+          </para>
+        </note>
+        This document is divided into three sets of references:
+        the first two sets provides user documentation; the third,
+        developer documentation.</para>
+    </abstract>
+  </info>
+  <book xml:id="param"><title>DocBook XSL Stylesheets User Reference: Parameters</title>
+    <info>
+      <abstract>
+        <para>This is generated reference documentation for all
+          user-configurable parameters in the DocBook XSL
+          stylesheets.
+          <note>
+            <para>This is purely reference documentation&#xa0;– not how-to
+              documentation. For a thorough step-by-step how-to guide to
+              publishing content using the DocBook XSL stylesheets, see
+              Bob Stayton’s <link 
+                xlink:href="http://www.sagehill.net/book-description.html"
+                >DocBook XSL: The Complete Guide</link>, available online
+              at <link
+                xlink:href="http://www.sagehill.net/docbookxsl/index.html"
+                >http://www.sagehill.net/docbookxsl/index.html</link>
+            </para>
+          </note>
+        </para>
+      </abstract>
+    </info>
+    <part xml:id="html">
+      <?dbhtml dir="html"?>
+      <?dbhtml filename="index.html"?>
+      <xi:include href="../html/param.xml" xpointer="xpointer(/book/info/title)" />
+      <partintro xml:id="htmlintro">
+        <xi:include href="../html/param.xml" xpointer="xpointer(/book/info/abstract/node())" />
+      </partintro>
+      <xi:include href="../html/param.xml" xpointer="xpointer(/book/reference)" />
+    </part>
+    <part xml:id="fo">
+      <?dbhtml dir="fo"?>
+      <?dbhtml filename="index.html"?>
+      <xi:include href="../fo/param.xml" xpointer="xpointer(/book/info/title)" />
+      <partintro xml:id="fointro">
+        <xi:include href="../fo/param.xml" xpointer="xpointer(/book/info/abstract/node())" />
+      </partintro>
+      <xi:include href="../fo/param.xml" xpointer="xpointer(/book/reference)" />
+    </part>
+    <part xml:id="manpages">
+      <?dbhtml dir="manpages"?>
+      <?dbhtml filename="index.html"?>
+      <xi:include href="../manpages/param.xml" xpointer="xpointer(/book/info/title)" />
+      <partintro xml:id="manintro">
+        <xi:include href="../manpages/param.xml" xpointer="xpointer(/book/info/abstract/node())" />
+      </partintro>
+      <xi:include href="../manpages/param.xml" xpointer="xpointer(/book/reference)" />
+    </part>
+    <part xml:id="roundtrip">
+      <?dbhtml dir="roundtrip"?>
+      <?dbhtml filename="index.html"?>
+      <xi:include href="../roundtrip/param.xml" xpointer="xpointer(/book/info/title)" />
+      <partintro xml:id="roundtripintro">
+        <xi:include href="../roundtrip/param.xml" xpointer="xpointer(/book/info/abstract/node())" />
+      </partintro>
+      <xi:include href="../roundtrip/param.xml" xpointer="xpointer(/book/reference/node()[not(self::title)])" />
+    </part>
+    <part xml:id="slides"><title>Slides Parameter Reference</title>
+      <?dbhtml dir="slides"?>
+      <?dbhtml filename="index.html"?>
+      <partintro xml:id="slidesintro">
+        <para>This is reference documentation for all
+          user-configurable parameters in the DocBook XSL Slides
+          stylesheets (for generating HTML and PDF slide
+          presentations).</para>
+        <note>
+          <para>The Slides stylesheet for HTML output is a
+            customization layer of the DocBook XSL HTML
+            stylesheet; 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 xlink:href="../html">HTML stylesheet
+              parameters</link> and <link xlink:href="../fo">FO
+              stylesheet parameters</link> to control Slides
+            output.</para>
+        </note>
+      </partintro>
+      <xi:include href="../slides/html/param.xml" xpointer="xpointer(/book/reference)" />
+      <xi:include href="../slides/fo/param.xml" xpointer="xpointer(/book/reference)" />
+    </part>
+    <part xml:id="website">
+      <?dbhtml dir="website"?>
+      <?dbhtml filename="index.html"?>
+      <xi:include href="../website/param.xml" xpointer="xpointer(/book/info/title)" />
+      <partintro xml:id="websiteintro">
+        <xi:include href="../website/param.xml" xpointer="xpointer(/book/info/abstract/node())" />
+      </partintro>
+      <xi:include href="../website/param.xml" xpointer="xpointer(/book/reference)" />
+    </part>
+   <!-- Prepare WebHelp output
+    <part xml:id="webhelp">
+      <?dbhtml dir="webhelp"?>
+      <?dbhtml filename="index.html"?>
+      <xi:include href="../webhelp/param.xml" xpointer="xpointer(/book/info/title)" />
+      <partintro xml:id="webhelpintro">
+        <xi:include href="../webhelp/param.xml" xpointer="xpointer(/book/info/abstract/node())" />
+      </partintro>
+      <xi:include href="../webhelp/param.xml" xpointer="xpointer(/book/reference)" />
+    </part>
+   -->
+  </book>
+ 
+  <book xml:id="pi"><title>DocBook XSL Stylesheets User Reference: PIs</title>
+    <?dbhtml dir="pi"?>
+    <?dbhtml filename="index.html"?>
+    <info>
+      <abstract>
+        <para>This is generated reference documentation for all
+          user-specifiable processing instructions in the DocBook
+          XSL stylesheets.
+          <note>
+            <para>You add these PIs at particular points in a document to
+              cause specific “exceptions” to formatting/output behavior. To
+              make global changes in formatting/output behavior across an
+              entire document, it’s better to do it by setting an
+              appropriate stylesheet parameter (if there is one).</para>
+          </note>
+        </para>
+      </abstract>
+    </info>
+    <part xml:id="pi-html">
+      <xi:include href="../html/pi.xml" xpointer="xpointer(/reference/node())" />
+    </part>
+    <part xml:id="pi-fo">
+      <xi:include href="../fo/pi.xml" xpointer="xpointer(/reference/node())" />
+    </part>
+    <part xml:id="pi-man">
+      <xi:include href="../manpages/pi.xml" xpointer="xpointer(/reference/node())" />
+    </part>
+    <part xml:id="pi-common">
+      <xi:include href="../common/pi.xml" xpointer="xpointer(/reference/node())" />
+    </part>
+  </book>
+  <book xml:id="developer"><title>DocBook XSL Stylesheets Developer Reference</title>
+    <info>
+      <abstract>
+        <para>This is technical reference documentation for
+          developers using the DocBook XSL Stylesheets. It is not
+          intended to be user documentation, but is instead
+          provided for developers writing customization layers for
+          the stylesheets.</para>
+      </abstract>
+    </info>
+    <part xml:id="lib">
+      <?dbhtml dir="lib"?>
+      <?dbhtml filename="index.html"?>
+      <xi:include href="../lib/lib.xml" xpointer="xpointer(/book/info/title)" />
+      <partintro xml:id="libintro">
+        <xi:include href="../lib/lib.xml" xpointer="xpointer(/book/info/abstract/node())" />
+      </partintro>
+      <xi:include href="../lib/lib.xml" xpointer="xpointer(/book/reference)" />
+    </part>
+    <part xml:id="common-part"><title>Common Template Reference</title>
+      <?dbhtml dir="common"?>
+      <?dbhtml filename="index.html"?>
+      <info>
+        <abstract>
+          <para>This is technical reference documentation for the
+            “base”, “refentry”, and “utility” sets of common
+            templates in the DocBook XSL Stylesheets. These
+            templates are “common” in that they are shared across
+            output formats (that is, they’re not
+            output-format-dependent)</para>
+          <para>This documentation is not intended to be user
+            documentation. It is provided for developers writing
+            customization layers for the stylesheets.</para>
+        </abstract>
+      </info>
+        <xi:include href="../common/common.xml"/>
+        <xi:include href="../common/refentry.xml"/>
+        <xi:include href="../common/utility.xml"/>
+        <xi:include href="../common/charmap.xml"/>
+    </part>
+    <part xml:id="table-templates">
+      <xi:include href="../fo/table.xml" xpointer="xpointer(/reference/node())"/>
+    </part>
+    <part xml:id="template"> 
+      <xi:include href="../template/titlepage.xml" xpointer="xpointer(/reference/node())"/>
+    </part>
+  </book>
+</set>
+<!-- * vim: set ft=docbk foldlevel=2: -->
diff --git a/applications/content/template/docbook/docsrc/reference.xml.included b/applications/content/template/docbook/docsrc/reference.xml.included
new file mode 100644
index 0000000..e194732
--- /dev/null
+++ b/applications/content/template/docbook/docsrc/reference.xml.included
@@ -0,0 +1,35281 @@
+<?xml version="1.0" encoding="ASCII"?><set xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:src="http://nwalsh.com/xmlns/litprog/fragment" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:base="../docsrc/">
+  <!-- * WARNING WARNING WARNING -->
+  <!-- * WARNING WARNING WARNING -->
+  <!-- * -->
+  <!-- * This document has duplicate IDs in it and is intended for -->
+  <!-- * processing using the chunk.xsl stylesheet to generate chunked -->
+  <!-- * output from it (not for generating a single HTML output file) -->
+  <!-- * -->
+  <!-- * WARNING WARNING WARNING -->
+  <!-- * WARNING WARNING WARNING -->
+  <title>DocBook XSL Stylesheets: Reference&#160;Documentation</title>
+  <info><releaseinfo role="meta">$Id: reference.xml 9275 2012-04-14 08:46:07Z mzjn $ </releaseinfo>
+    <authorgroup version="5.0">
+  <author>
+    <personname>
+      <surname>Walsh</surname><firstname>Norman</firstname>
+    </personname>
+  </author>
+  <author>
+    <orgname>The DocBook Project</orgname>
+  </author>
+</authorgroup>
+    <copyright>
+    <year>1999-2007</year>
+    <holder>Norman Walsh</holder>
+  </copyright><copyright>
+    <year>2003</year>
+    <holder>Ji&#345;&#237; Kosek</holder>
+  </copyright><copyright>
+    <year>2004-2007</year>
+    <holder>Steve Ball</holder>
+  </copyright><copyright>
+    <year>2001-2007</year>
+    <holder>The DocBook Project</holder>
+  </copyright>
+    <legalnotice version="5.0" id="copyright"><title>License</title>
+<para>Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation files
+(the <quote>Software</quote>), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+</para>
+<para>The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.</para>
+<para>Except as contained in this notice, the names of individuals
+credited with contribution to this software shall not be used in
+advertising or otherwise to promote the sale, use or other dealings in
+this Software without prior written authorization from the individuals
+in question.</para>
+<para>Any stylesheet derived from this Software that is publically
+distributed will be identified with a different name and the version
+strings in any derived Software will be changed so that no possibility
+of confusion between the derived package and this Software will
+exist.</para>
+</legalnotice>
+    <legalnotice version="5.0" id="warranty"><title>Warranty</title>
+<para>THE SOFTWARE IS PROVIDED <quote>AS IS</quote>,
+WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL NORMAN WALSH OR ANY
+OTHER CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
+OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.</para>
+</legalnotice>
+    <abstract id="about">
+      <title>About this document</title>
+      <para>This is generated reference documentation for the DocBook
+        XSL stylesheets. It is available in the following formats:
+        <itemizedlist>
+          <listitem>
+            <para><link xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/reference.html">HTML</link>,
+              <link xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/reference.pdf">PDF</link>,
+              <link xlink:href="http://docbook.sourceforge.net/release/xsl/current/doc/reference.txt">plain text</link></para>
+          </listitem>
+        </itemizedlist>
+        This is primarily documentation on the parameters and processing instructions you can use
+        to control the behavior of the stylesheets.
+        <note>
+          <para>This is purely reference documentation&#160;&#8211; not how-to
+            documentation. For a thorough step-by-step how-to guide to
+            publishing content using the DocBook XSL stylesheets, see
+            Bob Stayton&#8217;s <link xlink:href="http://www.sagehill.net/book-description.html">DocBook XSL: The Complete Guide</link>, available online
+            at <link xlink:href="http://www.sagehill.net/docbookxsl/index.html">http://www.sagehill.net/docbookxsl/index.html</link>
+          </para>
+        </note>
+        This document is divided into three sets of references:
+        the first two sets provides user documentation; the third,
+        developer documentation.</para>
+    </abstract>
+  </info>
+  <book id="param"><title>DocBook XSL Stylesheets User&#160;Reference:&#160;Parameters</title>
+    <info>
+      <abstract>
+        <para>This is generated reference documentation for all
+          user-configurable parameters in the DocBook XSL
+          stylesheets.
+          <note>
+            <para>This is purely reference documentation&#160;&#8211; not how-to
+              documentation. For a thorough step-by-step how-to guide to
+              publishing content using the DocBook XSL stylesheets, see
+              Bob Stayton&#8217;s <link xlink:href="http://www.sagehill.net/book-description.html">DocBook XSL: The Complete Guide</link>, available online
+              at <link xlink:href="http://www.sagehill.net/docbookxsl/index.html">http://www.sagehill.net/docbookxsl/index.html</link>
+            </para>
+          </note>
+        </para>
+      </abstract>
+    </info>
+    <part id="html">
+      <?dbhtml dir="html"?>
+      <?dbhtml filename="index.html"?>
+      <title xml:base="../html/param.xml">HTML Parameter Reference</title>
+      <partintro id="htmlintro">
+        
+  <para xml:base="../html/param.xml">This is reference documentation for all user-configurable
+  parameters in the DocBook XSL HTML stylesheets (for generating
+  HTML output).</para>
+
+      </partintro>
+      <reference id="admons" xml:base="../html/param.xml"><title>Admonitions</title>
+<refentry version="5.0" id="admon.graphics.extension">
+<refmeta>
+<refentrytitle>admon.graphics.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics.extension</refname>
+<refpurpose>Filename extension for admonition graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="admon.graphics.extension.frag">
+&lt;xsl:param name="admon.graphics.extension"&gt;.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the filename extension to use on admonition graphics.</para>
+
+<itemizedlist>
+  <para>The DocBook XSL distribution provides admonition graphics in the following formats:</para>
+  <listitem><para>GIF (extension: <filename class="extension">.gif</filename>)</para></listitem>
+  <listitem><para>PNG (extension: <filename class="extension">.png</filename>)</para></listitem>
+  <listitem><para>SVG (extension: <filename class="extension">.svg</filename>)</para></listitem>
+  <listitem><para>TIFF (extension: <filename class="extension">.tif</filename>)</para></listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="admon.graphics.path">
+<refmeta>
+<refentrytitle>admon.graphics.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics.path</refname>
+<refpurpose>Path to admonition graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="admon.graphics.path.frag">&lt;xsl:param name="admon.graphics.path"&gt;images/&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the path to the directory containing the admonition graphics
+(caution.png, important.png etc). This location is normally relative
+to the output html directory. See <parameter>base.dir</parameter></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="admon.graphics">
+<refmeta>
+<refentrytitle>admon.graphics</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics</refname>
+<refpurpose>Use graphics in admonitions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="admon.graphics.frag">
+&lt;xsl:param name="admon.graphics" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), admonitions are presented in an alternate style that uses
+a graphic.  Default graphics are provided in the distribution.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="admon.textlabel">
+<refmeta>
+<refentrytitle>admon.textlabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.textlabel</refname>
+<refpurpose>Use text label in admonitions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="admon.textlabel.frag">
+&lt;xsl:param name="admon.textlabel" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), admonitions are presented with a generated
+text label such as Note or Warning in the appropriate language.
+If zero, such labels are turned off, but any title child
+of the admonition element are still output.
+The default value is 1.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="admon.style">
+<refmeta>
+<refentrytitle>admon.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.style</refname>
+<refpurpose>Specifies the CSS style attribute that should be added to
+admonitions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="admon.style.frag">&lt;xsl:param name="admon.style"&gt;
+  &lt;xsl:value-of select="concat('margin-', $direction.align.start,            ': 0.5in; margin-', $direction.align.end, ': 0.5in;')"&gt;&lt;/xsl:value-of&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the value of the CSS <tag class="attribute">style</tag>
+attribute that should be added to admonitions.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="callouts" xml:base="../html/param.xml"><title>Callouts</title>
+<refentry version="5.0" id="callout.defaultcolumn">
+<refmeta>
+<refentrytitle>callout.defaultcolumn</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.defaultcolumn</refname>
+<refpurpose>Indicates what column callouts appear in by default</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.defaultcolumn.frag">
+&lt;xsl:param name="callout.defaultcolumn"&gt;60&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If a callout does not identify a column (for example, if it uses
+the <literal>linerange</literal> <tag class="attribute">unit</tag>),
+it will appear in the default column.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.graphics.extension">
+<refmeta>
+<refentrytitle>callout.graphics.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.extension</refname>
+<refpurpose>Filename extension for callout graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.graphics.extension.frag">
+&lt;xsl:param name="callout.graphics.extension"&gt;.png&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Sets the filename extension to use on callout graphics. </para>
+
+<itemizedlist>
+<para>The Docbook XSL distribution provides callout graphics in the following formats:</para>
+<listitem><para>SVG (extension: <filename class="extension">.svg</filename>)</para></listitem>
+<listitem><para>PNG (extension: <filename class="extension">.png</filename>)</para></listitem>
+<listitem><para>GIF (extension: <filename class="extension">.gif</filename>)</para></listitem>
+</itemizedlist>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.graphics.number.limit">
+<refmeta>
+<refentrytitle>callout.graphics.number.limit</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.number.limit</refname>
+<refpurpose>Number of the largest callout graphic</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.graphics.number.limit.frag">
+&lt;xsl:param name="callout.graphics.number.limit"&gt;15&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.graphics</parameter> is non-zero, graphics
+are used to represent callout numbers instead of plain text. The value
+of <parameter>callout.graphics.number.limit</parameter> is the largest
+number for which a graphic exists. If the callout number exceeds this
+limit, the default presentation "(plain text instead of a graphic)"
+will  be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.graphics.path">
+<refmeta>
+<refentrytitle>callout.graphics.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.path</refname>
+<refpurpose>Path to callout graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.graphics.path.frag">
+&lt;xsl:param name="callout.graphics.path"&gt;images/callouts/&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the path to the directory holding the callout graphics. his
+location is normally relative to the output html directory. see
+base.dir. Always terminate the directory with / since the graphic file
+is appended to this string, hence needs the separator.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.graphics">
+<refmeta>
+<refentrytitle>callout.graphics</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics</refname>
+<refpurpose>Use graphics for callouts?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.graphics.frag">
+&lt;xsl:param name="callout.graphics" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, callouts are presented with graphics (e.g., reverse-video
+circled numbers instead of "(1)", "(2)", etc.).
+Default graphics are provided in the distribution.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.list.table">
+<refmeta>
+<refentrytitle>callout.list.table</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.list.table</refname>
+<refpurpose>Present callout lists using a table?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.list.table.frag">
+&lt;xsl:param name="callout.list.table" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The default presentation of <tag>calloutlist</tag>s uses
+an HTML <tag>DL</tag> element. Some browsers don't align DLs very well
+if <parameter>callout.graphics</parameter> is used. With this option
+turned on, <tag>calloutlist</tag>s are presented in an HTML
+<tag>TABLE</tag>, which usually results in better alignment
+of the callout number with the callout description.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.unicode.number.limit">
+<refmeta>
+<refentrytitle>callout.unicode.number.limit</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode.number.limit</refname>
+<refpurpose>Number of the largest unicode callout character</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.unicode.number.limit.frag">
+&lt;xsl:param name="callout.unicode.number.limit"&gt;10&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.unicode</parameter>
+is non-zero, unicode characters are used to represent
+callout numbers. The value of
+<parameter>callout.unicode.number.limit</parameter>
+is
+the largest number for which a unicode character exists. If the callout number
+exceeds this limit, the default presentation "(nnn)" will always
+be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.unicode.start.character">
+<refmeta>
+<refentrytitle>callout.unicode.start.character</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode.start.character</refname>
+<refpurpose>First Unicode character to use, decimal value.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.unicode.start.character.frag">
+&lt;xsl:param name="callout.unicode.start.character"&gt;10102&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.graphics</parameter> is zero and <parameter>callout.unicode</parameter>
+is non-zero, unicode characters are used to represent
+callout numbers. The value of
+<parameter>callout.unicode.start.character</parameter>
+is the decimal unicode value used for callout number one. Currently, 
+only values 9312 and 10102 are supported in the stylesheets for this parameter. 
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.unicode">
+<refmeta>
+<refentrytitle>callout.unicode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode</refname>
+<refpurpose>Use Unicode characters rather than images for callouts.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.unicode.frag">&lt;xsl:param name="callout.unicode" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The stylesheets can use either an image of the numbers one to ten, or the single Unicode character which represents the numeral, in white on a black background. Use this to select the Unicode character option.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callouts.extension">
+<refmeta>
+<refentrytitle>callouts.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callouts.extension</refname>
+<refpurpose>Enable the callout extension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callouts.extension.frag">
+&lt;xsl:param name="callouts.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The callouts extension processes <tag>areaset</tag>
+elements in <tag>programlistingco</tag> and other text-based
+callout elements.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="ebnf" xml:base="../html/param.xml"><title>EBNF</title>
+<refentry version="5.0" id="ebnf.table.bgcolor">
+<refmeta>
+<refentrytitle>ebnf.table.bgcolor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.table.bgcolor</refname>
+<refpurpose>Background color for EBNF tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="ebnf.table.bgcolor.frag">
+&lt;xsl:param name="ebnf.table.bgcolor"&gt;#F5DCB3&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the background color for EBNF tables (a pale brown). No
+<tag>bgcolor</tag> attribute is output if
+<parameter>ebnf.table.bgcolor</parameter> is set to the null string. </para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="ebnf.table.border">
+<refmeta>
+<refentrytitle>ebnf.table.border</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.table.border</refname>
+<refpurpose>Selects border on EBNF tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="ebnf.table.border.frag">&lt;xsl:param name="ebnf.table.border" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the border on EBNF tables. If non-zero, the tables have
+borders, otherwise they don't.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="ebnf.assignment">
+<refmeta>
+<refentrytitle>ebnf.assignment</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.assignment</refname>
+<refpurpose>The EBNF production assignment operator</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="ebnf.assignment.frag">
+&lt;xsl:param name="ebnf.assignment"&gt;
+&lt;code&gt;::=&lt;/code&gt;
+&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>ebnf.assignment</parameter> parameter determines what
+text is used to show <quote>assignment</quote> in <tag>production</tag>s
+in <tag>productionset</tag>s.</para>
+
+<para>While <quote><literal>::=</literal></quote> is common, so are several
+other operators.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="ebnf.statement.terminator">
+<refmeta>
+<refentrytitle>ebnf.statement.terminator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.statement.terminator</refname>
+<refpurpose>Punctuation that ends an EBNF statement.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="ebnf.statement.terminator.frag">
+&lt;xsl:param name="ebnf.statement.terminator"&gt;&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>ebnf.statement.terminator</parameter> parameter determines what
+text is used to terminate each <tag>production</tag>
+in <tag>productionset</tag>.</para>
+
+<para>Some notations end each statement with a period.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="toc_index" xml:base="../html/param.xml"><title>ToC/LoT/Index Generation</title>
+<refentry version="5.0" id="annotate.toc">
+<refmeta>
+<refentrytitle>annotate.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotate.toc</refname>
+<refpurpose>Annotate the Table of Contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="annotate.toc.frag">&lt;xsl:param name="annotate.toc" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, TOCs will be annotated. At present, this just means
+that the <tag>refpurpose</tag> of <tag>refentry</tag>
+TOC entries will be displayed.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="autotoc.label.separator">
+<refmeta>
+<refentrytitle>autotoc.label.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>autotoc.label.separator</refname>
+<refpurpose>Separator between labels and titles in the ToC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="autotoc.label.separator.frag">
+&lt;xsl:param name="autotoc.label.separator"&gt;. &lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>String used to separate labels and titles in a table of contents.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="autotoc.label.in.hyperlink">
+<refmeta>
+<refentrytitle>autotoc.label.in.hyperlink</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>autotoc.label.in.hyperlink</refname>
+<refpurpose>Include label in hyperlinked titles in TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="autotoc.label.in.hyperlink.frag">&lt;xsl:param name="autotoc.label.in.hyperlink" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>autotoc.label.in.hyperlink</parameter> is non-zero, labels
+are included in hyperlinked titles in the TOC. If it is instead zero,
+labels are still displayed prior to the hyperlinked titles, but
+are not hyperlinked along with the titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="process.source.toc">
+<refmeta>
+<refentrytitle>process.source.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>process.source.toc</refname>
+<refpurpose>Process a non-empty <tag>toc</tag> element if it occurs in a source document?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="process.source.toc.frag">&lt;xsl:param name="process.source.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies that the contents of a non-empty "hard-coded"
+<tag>toc</tag> element in a source document are processed to
+generate a TOC in output.
+<note>
+  <para>This parameter has no effect on automated generation of
+  TOCs. An automated TOC may still be generated along with the
+  "hard-coded" TOC. To suppress automated TOC generation, adjust the
+  value of the <parameter>generate.toc</parameter> paramameter.</para>
+
+  <para>The <tag>process.source.toc</tag> parameter also has
+  no effect if the <tag>toc</tag> element is empty; handling
+  for empty <tag>toc</tag> is controlled by the
+  <parameter>process.empty.source.toc</parameter> parameter.</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="process.empty.source.toc">
+<refmeta>
+<refentrytitle>process.empty.source.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>process.empty.source.toc</refname>
+<refpurpose>Generate automated TOC if <tag>toc</tag> element occurs in a source document?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="process.empty.source.toc.frag">&lt;xsl:param name="process.empty.source.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies that if an empty <tag>toc</tag> element is found in a
+source document, an automated TOC is generated at this point in the
+document.
+<note>
+  <para>Depending on what the value of the
+  <parameter>generate.toc</parameter> parameter is, setting this
+  parameter to <literal>1</literal> could result in generation of
+  duplicate automated TOCs. So the
+  <parameter>process.empty.source.toc</parameter> is primarily useful
+  as an "override": by placing an empty <tag>toc</tag> in your
+  document and setting this parameter to <literal>1</literal>, you can
+  force a TOC to be generated even if <tag>generate.toc</tag>
+  says not to.</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="bridgehead.in.toc">
+<refmeta>
+<refentrytitle>bridgehead.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bridgehead.in.toc</refname>
+<refpurpose>Should bridgehead elements appear in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="bridgehead.in.toc.frag">&lt;xsl:param name="bridgehead.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>bridgehead</tag>s appear in the TOC. Note that
+this option is not fully supported and may be removed in a future
+version of the stylesheets.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="simplesect.in.toc">
+<refmeta>
+<refentrytitle>simplesect.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>simplesect.in.toc</refname>
+<refpurpose>Should <tag>simplesect</tag> elements appear in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="simplesect.in.toc.frag">&lt;xsl:param name="simplesect.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>simplesect</tag>s will be included in the TOC.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="manual.toc">
+<refmeta>
+<refentrytitle>manual.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>manual.toc</refname>
+<refpurpose>An explicit TOC to be used for the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="manual.toc.frag">
+&lt;xsl:param name="manual.toc"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>manual.toc</parameter> identifies an explicit TOC that
+will be used for building the printed TOC.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.list.type">
+<refmeta>
+<refentrytitle>toc.list.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dl</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ul</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ol</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.list.type</refname>
+<refpurpose>Type of HTML list element to use for Tables of Contents</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.list.type.frag">&lt;xsl:param name="toc.list.type"&gt;dl&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When an automatically generated Table of Contents (or List of Titles)
+is produced, this HTML element will be used to make the list.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.section.depth">
+<refmeta>
+<refentrytitle>toc.section.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.section.depth</refname>
+<refpurpose>How deep should recursive <tag>section</tag>s appear
+in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.section.depth.frag">&lt;xsl:param name="toc.section.depth"&gt;2&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the depth to which recursive sections should appear in the
+TOC.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.max.depth">
+<refmeta>
+<refentrytitle>toc.max.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.max.depth</refname>
+<refpurpose>How many levels should be created for each TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.max.depth.frag">&lt;xsl:param name="toc.max.depth"&gt;8&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximal depth of TOC on all levels.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.toc">
+<refmeta>
+<refentrytitle>generate.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">table</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.toc</refname>
+<refpurpose>Control generation of ToCs and LoTs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="generate.toc.frag">
+&lt;xsl:param name="generate.toc"&gt;
+appendix  toc,title
+article/appendix  nop
+article   toc,title
+book      toc,title,figure,table,example,equation
+chapter   toc,title
+part      toc,title
+preface   toc,title
+qandadiv  toc
+qandaset  toc
+reference toc,title
+sect1     toc
+sect2     toc
+sect3     toc
+sect4     toc
+sect5     toc
+section   toc
+set       toc,title
+&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter has a structured value. It is a table of space-delimited
+path/value pairs. Each path identifies some element in the source document
+using a restricted subset of XPath (only the implicit child axis, no wildcards,
+no predicates). Paths can be either relative or absolute.</para>
+
+<para>When processing a particular element, the stylesheets consult this table to
+determine if a ToC (or LoT(s)) should be generated.</para>
+
+<para>For example, consider the entry:</para>
+
+<screen>book toc,figure</screen>
+
+<para>This indicates that whenever a <tag>book</tag> is formatted, a
+Table Of Contents and a List of Figures should be generated. Similarly,</para>
+
+<screen>/chapter toc</screen>
+
+<para>indicates that whenever a document <emphasis>that has a root
+of</emphasis> <tag>chapter</tag> is formatted, a Table of
+Contents should be generated. The entry <literal>chapter</literal> would match
+all chapters, but <literal>/chapter</literal> matches only <tag>chapter</tag>
+document elements.</para>
+
+<para>Generally, the longest match wins. So, for example, if you want to distinguish
+articles in books from articles in parts, you could use these two entries:</para>
+
+<screen>book/article toc,figure
+part/article toc</screen>
+
+<para>Note that an article in a part can never match a <literal>book/article</literal>,
+so if you want nothing to be generated for articles in parts, you can simply leave
+that rule out.</para>
+
+<para>If you want to leave the rule in, to make it explicit that you're turning
+something off, use the value <quote>nop</quote>. For example, the following
+entry disables ToCs and LoTs for articles:</para>
+
+<screen>article nop</screen>
+
+<para>Do not simply leave the word <quote>article</quote> in the file
+without a matching value. That'd be just begging the silly little
+path/value parser to get confused.</para>
+
+<para>Section ToCs are further controlled by the
+<parameter>generate.section.toc.level</parameter> parameter.
+For a given section level to have a ToC, it must have both an entry in 
+<parameter>generate.toc</parameter> and be within the range enabled by
+<parameter>generate.section.toc.level</parameter>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.section.toc.level">
+<refmeta>
+<refentrytitle>generate.section.toc.level</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.section.toc.level</refname>
+<refpurpose>Control depth of TOC generation in sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="generate.section.toc.level.frag">
+&lt;xsl:param name="generate.section.toc.level" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>generate.section.toc.level</parameter> parameter
+controls the depth of <tag>section</tag> in which TOCs will be generated. Note
+that this is related to, but not the same as
+<parameter>toc.section.depth</parameter>, which controls the depth to
+which TOC entries will be generated in a given TOC.</para>
+<para>If, for example, <parameter>generate.section.toc.level</parameter>
+is <literal>3</literal>, TOCs will be generated in first, second, and third
+level sections, but not in fourth level sections.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.index">
+<refmeta>
+<refentrytitle>generate.index</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.index</refname>
+<refpurpose>Do you want an index?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="generate.index.frag">&lt;xsl:param name="generate.index" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specify if an index should be generated. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.method">
+<refmeta>
+<refentrytitle>index.method</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">basic</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kosek</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kimber</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.method</refname>
+<refpurpose>Select method used to group index entries in an index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.method.frag">
+&lt;xsl:param name="index.method"&gt;basic&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter lets you select which method to use for sorting and grouping
+ index entries in an index.
+Indexes in Latin-based languages that have accented characters typically
+sort together accented words and unaccented words.
+Thus <quote>&#193;</quote> (U+00C1 LATIN CAPITAL LETTER A WITH ACUTE) would sort together
+with <quote>A</quote> (U+0041 LATIN CAPITAL LETTER A), so both would appear in the <quote>A</quote>
+section of the index.
+Languages using other alphabets (such as Russian,  which is written in the Cyrillic alphabet)
+and languages using ideographic chararacters (such as Japanese)
+require grouping specific to the languages and alphabets.
+</para>
+
+<para>The default indexing method is limited.
+It can group accented characters in Latin-based languages only.
+It cannot handle non-Latin alphabets or ideographic languages.
+The other indexing methods require extensions of one type or
+another, and do not work with
+all XSLT processors, which is why they are not used by default.</para>
+
+<para>The three choices for indexing method are:</para>
+<variablelist>
+<varlistentry>
+<term><literal>basic</literal></term>
+<listitem>
+<para>
+(default)  Sort and groups words based only on the Latin alphabet.
+Words with accented Latin letters will group and sort with
+their respective primary letter, but
+words in non-Latin alphabets will be
+put in the <quote>Symbols</quote> section of the index.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>kosek</literal></term>
+<listitem>
+<para>
+This method sorts and groups words based on letter groups configured in
+the DocBook locale file for the given language.
+See, for example, the French locale file <filename>common/fr.xml</filename>.
+This method requires that the XSLT processor
+supports the EXSLT extensions (most do).
+It also requires support for using 
+user-defined functions in xsl:key (xsltproc does not).
+</para>
+<para>This method is suitable for any language for which you can
+list all the individual characters that should appear
+in each letter group in an index.
+It is probably not practical to use it for ideographic languages
+such as Chinese that have hundreds or thousands of characters.
+</para>
+
+<para>To use the kosek method, you must:</para>
+
+<orderedlist>
+<listitem>
+<para>Use a processor that supports its extensions, such as
+Saxon 6 or Xalan (xsltproc and Saxon 8 do not).
+</para>
+</listitem>
+<listitem>
+<para>Set the index.method parameter's value to <quote>kosek</quote>.
+</para>
+</listitem>
+<listitem>
+<para>Import the appropriate index extensions stylesheet module
+<filename>fo/autoidx-kosek.xsl</filename> or 
+<filename>html/autoidx-kosek.xsl</filename> into your
+customization.
+</para>
+</listitem>
+</orderedlist>
+
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>kimber</literal></term>
+<listitem>
+<para>
+This method uses extensions to the Saxon processor to implement
+sophisticated indexing processes. It uses its own 
+configuration file, which can include information for any number of
+languages. Each language's configuration can group
+words using one of two processes. In the
+enumerated process similar to that used in the kosek method,
+you indicate the groupings character-by-character.
+In the between-key process, you specify the
+break-points in the sort order that should start a new group.
+The latter configuration is useful for ideographic languages
+such as Chinese, Japanese, and Korean.
+You can also define your own collation algorithms and how you
+want mixed Latin-alphabet words sorted.</para>
+<itemizedlist>
+<listitem>
+<para>For a whitepaper describing the extensions, see:
+<link xlink:href="http://www.innodata-isogen.com/knowledge_center/white_papers/back_of_book_for_xsl_fo.pdf">http://www.innodata-isogen.com/knowledge_center/white_papers/back_of_book_for_xsl_fo.pdf</link>.
+</para>
+</listitem>
+<listitem>
+<para>To download the extension library, see
+<link xlink:href="http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport">http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport</link>.
+</para>
+</listitem>
+</itemizedlist>
+
+<para>To use the kimber method, you must:</para>
+
+<orderedlist>
+<listitem>
+<para>Use Saxon (version 6 or 8) as your XSLT processor.
+</para>
+</listitem>
+<listitem>
+<para>Install and configure the Innodata Isogen library, using
+the documentation that comes with it.
+</para>
+</listitem>
+<listitem>
+<para>Set the index.method parameter's value to <quote>kimber</quote>.
+</para>
+</listitem>
+<listitem>
+<para>Import the appropriate index extensions stylesheet module
+<filename>fo/autoidx-kimber.xsl</filename> or 
+<filename>html/autoidx-kimber.xsl</filename> into your
+customization.
+</para>
+</listitem>
+</orderedlist>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.on.type">
+<refmeta>
+<refentrytitle>index.on.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.on.type</refname>
+<refpurpose>Select indexterms based on <tag class="attribute">type</tag>
+attribute value</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.on.type.frag">
+&lt;xsl:param name="index.on.type" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, 
+then an <tag>index</tag> element that has a
+<tag class="attribute">type</tag> attribute
+value will contain only those <tag>indexterm</tag>
+elements with a matching <tag class="attribute">type</tag> attribute value.
+If an <tag>index</tag> has no <tag class="attribute">type</tag>
+attribute or it is blank, then the index will contain
+all <tag>indexterm</tag>s in the current scope.
+</para>
+
+<para>
+If <literal>index.on.type</literal> is zero, then the
+<tag class="attribute">type</tag> attribute has no effect
+on selecting indexterms for an index.
+</para>
+
+<para>For those using DocBook version 4.2 or earlier,
+the <tag class="attribute">type</tag> attribute is not available
+for index terms.  However, you can achieve the same
+effect by using the <tag class="attribute">role</tag> attribute
+in the same manner on <tag>indexterm</tag>
+and <tag>index</tag>, and setting the stylesheet parameter 
+<parameter>index.on.role</parameter> to a nonzero value.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.on.role">
+<refmeta>
+<refentrytitle>index.on.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.on.role</refname>
+<refpurpose>Select indexterms based on <tag class="attribute">role</tag> value</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.on.role.frag">
+&lt;xsl:param name="index.on.role" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, 
+then an <tag>index</tag> element that has a
+<tag class="attribute">role</tag> attribute
+value will contain only those <tag>indexterm</tag>
+elements with a matching role value.
+If an <tag>index</tag> has no <tag class="attribute">role</tag>
+attribute or it is blank, then the index will contain
+all <tag>indexterm</tag>s in the current scope.
+</para>
+<para>
+If <literal>index.on.role</literal> is zero, then the
+<tag class="attribute">role</tag> attribute has no effect
+on selecting indexterms for an index.
+</para>
+
+<para>If you are using DocBook version 4.3 or later, you should
+use the <tag class="attribute">type</tag> attribute instead of <tag class="attribute">role</tag>
+on <tag>indexterm</tag> and <tag>index</tag>,
+and set the <parameter>index.on.type</parameter> to a nonzero
+value.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.links.to.section">
+<refmeta>
+<refentrytitle>index.links.to.section</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.links.to.section</refname>
+<refpurpose>HTML index entries link to container section title</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.links.to.section.frag">
+&lt;xsl:param name="index.links.to.section" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero, then an index entry in an index links
+directly to the location of the
+generated <tag>anchor</tag> that is output
+for the indexterm. If two identical indexterm elements
+exist in the same section, then both entries appear
+in the index with the same title but link to different
+locations.</para>
+
+<para>If non-zero, then an index entry in an index links to the
+section title containing the <tag>indexterm</tag>, rather than
+directly to the <tag>anchor</tag> output for the indexterm.
+Duplicate indexterm entries in the same section are dropped.
+</para>
+
+<para>The default value is 1, so index entries link to
+section titles by default.</para>
+
+<para>In both cases, the link text in an index entry is the
+title of the section containing the indexterm.
+That is because HTML does not have numbered pages.
+It also provides the reader with context information
+for each link.</para>
+
+<para>This parameter lets you choose which style of
+index linking you want. </para>
+
+<itemizedlist>
+<listitem>
+<para>When set to 0, an index entry takes you 
+to the precise location of its corresponding indexterm.
+However, if you have a lot of duplicate
+entries in sections, then you have a lot of duplicate
+titles in the index, which makes it more cluttered.
+The reader may not recognize why duplicate titles
+appear until they follow the links. Also, the links
+may land the reader in the middle of a section where the
+section title is not visible, which may also be
+confusing to the reader.</para>
+</listitem>
+<listitem>
+<para>When set to 1, an index entry link is
+less precise, but duplicate titles in the
+index entries are eliminated. 
+Landing on the section title location may confirm the reader's
+expectation that a link that
+shows a section title will take them to that section title,
+not a location within the section.
+</para>
+</listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.prefer.titleabbrev">
+<refmeta>
+<refentrytitle>index.prefer.titleabbrev</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.prefer.titleabbrev</refname>
+<refpurpose>Should abbreviated titles be used as back references?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.prefer.titleabbrev.frag">
+&lt;xsl:param name="index.prefer.titleabbrev" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, and if a <tag>titleabbrev</tag> is defined, the abbreviated title
+is used as the link text of a back reference in the index.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.term.separator">
+<refmeta>
+<refentrytitle>index.term.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.term.separator</refname>
+<refpurpose>Override for punctuation separating an index term 
+from its list of page references in an index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.term.separator.frag">
+&lt;xsl:param name="index.term.separator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you to override
+the text to insert between
+the end of an index term and its list of page references.
+Typically that might be a comma and a space.
+</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'term-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+fill in the content for this normally empty 
+override parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+For fo output, it could be an <tag>fo:leader</tag>
+element to provide space of a specific length, or a dot leader.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.number.separator">
+<refmeta>
+<refentrytitle>index.number.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.number.separator</refname>
+<refpurpose>Override for punctuation separating page numbers in index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.number.separator.frag">
+&lt;xsl:param name="index.number.separator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you to override the text to insert between
+page references in a formatted index entry.  Typically 
+that would be a comma and a space.
+</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'number-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+override the gentext with the content of this parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+</para>
+
+<para>In HTML index output, section title references are used instead of
+page number references.  This punctuation appears between
+such section titles in an HTML index.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.range.separator">
+<refmeta>
+<refentrytitle>index.range.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.range.separator</refname>
+<refpurpose>Override for punctuation separating the two numbers
+in a page range in index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.range.separator.frag">
+&lt;xsl:param name="index.range.separator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you
+to override the text to insert between
+the two numbers of a page range in an index.
+This parameter is only used by those XSL-FO processors
+that support an extension for generating such page ranges
+(such as XEP).</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'range-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+override the gentext with the content of this parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+</para>
+
+<para>In HTML index output, section title references are used instead of
+page number references. So there are no page ranges
+and this parameter has no effect.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="dbk_ext" xml:base="../html/param.xml"><title>Stylesheet Extensions</title>
+<refentry version="5.0" id="linenumbering.everyNth">
+<refmeta>
+<refentrytitle>linenumbering.everyNth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.everyNth</refname>
+<refpurpose>Indicate which lines should be numbered</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="linenumbering.everyNth.frag">
+&lt;xsl:param name="linenumbering.everyNth"&gt;5&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If line numbering is enabled, everyNth line will be
+numbered. Note that numbering is one based, not zero based.
+</para>
+<para>See also <parameter>linenumbering.extension</parameter>,
+<parameter>linenumbering.separator</parameter>,
+<parameter>linenumbering.width</parameter> and
+<parameter>use.extensions</parameter></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="linenumbering.extension">
+<refmeta>
+<refentrytitle>linenumbering.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.extension</refname>
+<refpurpose>Enable the line numbering extension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="linenumbering.extension.frag">
+&lt;xsl:param name="linenumbering.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, verbatim environments (<tag>address</tag>, <tag>literallayout</tag>,
+<tag>programlisting</tag>, <tag>screen</tag>, <tag>synopsis</tag>) that specify line numbering will
+have line numbers.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="linenumbering.separator">
+<refmeta>
+<refentrytitle>linenumbering.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.separator</refname>
+<refpurpose>Specify a separator between line numbers and lines</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="linenumbering.separator.frag">
+&lt;xsl:param name="linenumbering.separator"&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The separator is inserted between line numbers and lines in the
+verbatim environment. The default value is a single white space.
+ Note the interaction with <parameter>linenumbering.width</parameter>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="linenumbering.width">
+<refmeta>
+<refentrytitle>linenumbering.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.width</refname>
+<refpurpose>Indicates the width of line numbers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="linenumbering.width.frag">
+&lt;xsl:param name="linenumbering.width"&gt;3&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If line numbering is enabled, line numbers will appear right
+justified in a field "width" characters wide.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="tablecolumns.extension">
+<refmeta>
+<refentrytitle>tablecolumns.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tablecolumns.extension</refname>
+<refpurpose>Enable the table columns extension function</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="tablecolumns.extension.frag">
+&lt;xsl:param name="tablecolumns.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The table columns extension function adjusts the widths of table
+columns in the HTML result to more accurately reflect the specifications
+in the CALS table.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="textinsert.extension">
+  <refmeta>
+    <refentrytitle>textinsert.extension</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>textinsert.extension</refname>
+    <refpurpose>Enables the textinsert extension element</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <programlisting id="textinsert.extension.frag">
+  &lt;xsl:param name="textinsert.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+  </refsynopsisdiv>
+  <refsection><info><title>Description</title></info>
+    <para>The textinsert extension element inserts the contents of
+      a file into the result tree (as text).</para>
+    <note>
+      <para>To use the textinsert extension element, you must use
+        either Saxon or Xalan as your XSLT processor (it doesn&#8217;t
+        work with xsltproc), along with either the DocBook Saxon
+        extensions or DocBook Xalan extensions (for more
+        information about those extensions, see <link role="tcg" xlink:href="InstallingAProcessor.html#SaxonExtensions">DocBook Saxon Extensions</link> and <link role="tcg" xlink:href="InstallingAProcessor.html#XalanExtensions">DocBook Xalan Extensions</link>), and you must set both
+        the <parameter>use.extensions</parameter> and
+        <parameter>textinsert.extension</parameter> parameters to
+        <literal>1</literal>.</para>
+      <para>As an alternative to using the textinsert element,
+        consider using an Xinclude element with the
+        <literal>parse="text"</literal> attribute and value
+        specified, as detailed in <link role="tcg" xlink:href="ExternalCode.html#XIncludeCode">Using XInclude for text inclusions</link>.</para>
+    </note>
+  </refsection>
+  <refsection><info><title>See Also</title></info>
+    <para>You can also use the <tag class="xmlpi">dbhtml-include&#160;href</tag> processing
+      instruction to insert external files &#8212; both files containing
+      plain text and files with markup content (including HTML
+      content).</para>
+  </refsection>
+  <refsection><info><title>More information</title></info>
+    <para>For how-to documentation on inserting contents of
+      external code files and other text files into output, see
+      <link role="tcg" xlink:href="ExternalCode.html">External code files</link>.</para>
+    <para>For guidelines on inserting contents of
+      HTML files into output, see <link role="tcg" xlink:href="InsertExtHtml.html">Inserting external HTML code</link>.</para>
+  </refsection>
+</refentry>
+
+<refentry version="5.0" id="textdata.default.encoding">
+<refmeta>
+<refentrytitle>textdata.default.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>textdata.default.encoding</refname>
+<refpurpose>Default encoding of external text files which are included
+using textdata element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="textdata.default.encoding.frag">
+&lt;xsl:param name="textdata.default.encoding"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the encoding of any external text files included using
+<tag>textdata</tag> element. This value is used only when you do
+not specify encoding by the appropriate attribute 
+directly on textdata. An empty string is interpreted as the system
+default encoding.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="graphicsize.extension">
+<refmeta>
+<refentrytitle>graphicsize.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphicsize.extension</refname>
+<refpurpose>Enable the getWidth()/getDepth() extension functions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="graphicsize.extension.frag">
+&lt;xsl:param name="graphicsize.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero (and if <parameter>use.extensions</parameter> is non-zero
+and if you're using a processor that supports extension functions), the
+<function>getWidth</function> and <function>getDepth</function> functions
+will be used to extract image sizes from graphics.</para>
+
+<para>The main supported image formats are GIF, JPEG, and PNG. Somewhat cruder 
+support for EPS and PDF images is also available.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="graphicsize.use.img.src.path">
+<refmeta>
+<refentrytitle>graphicsize.use.img.src.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphicsize.use.img.src.path</refname>
+<refpurpose>Prepend <parameter>img.src.path</parameter> before
+filenames passed to extension functions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="graphicsize.use.img.src.path.frag">
+&lt;xsl:param name="graphicsize.use.img.src.path" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero <parameter>img.src.path</parameter> parameter will
+be appended before filenames passed to extension functions for
+measuring image dimensions.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="use.extensions">
+<refmeta>
+<refentrytitle>use.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.extensions</refname>
+<refpurpose>Enable extensions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="use.extensions.frag">
+&lt;xsl:param name="use.extensions" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extensions may be used. Each extension is
+further controlled by its own parameter. But if
+<parameter>use.extensions</parameter> is zero, no extensions will
+be used.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="labels" xml:base="../html/param.xml"><title>Automatic labelling</title>
+<refentry version="5.0" id="chapter.autolabel">
+<refmeta>
+<refentrytitle>chapter.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chapter.autolabel</refname>
+<refpurpose>Specifies the labeling format for Chapter titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="chapter.autolabel.frag">
+&lt;xsl:param name="chapter.autolabel" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then chapters will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (arabic).
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="appendix.autolabel">
+<refmeta>
+<refentrytitle>appendix.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>appendix.autolabel</refname>
+<refpurpose>Specifies the labeling format for Appendix titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="appendix.autolabel.frag">
+&lt;xsl:param name="appendix.autolabel"&gt;A&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then appendices will be numbered using the
+parameter value as the number format if the value matches one of the
+following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (upperalpha).
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="part.autolabel">
+<refmeta>
+<refentrytitle>part.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>part.autolabel</refname>
+<refpurpose>Specifies the labeling format for Part titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="part.autolabel.frag">
+&lt;xsl:param name="part.autolabel"&gt;I&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then parts will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (upperroman).
+</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="reference.autolabel">
+<refmeta>
+<refentrytitle>reference.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>reference.autolabel</refname>
+<refpurpose>Specifies the labeling format for Reference titles</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="reference.autolabel.frag">
+  &lt;xsl:param name="reference.autolabel"&gt;I&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, references will be numbered using the parameter
+  value as the number format if the value matches one of the
+  following:
+</para>
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+<para>Any non-zero value other than the above will generate
+the default number format (upperroman).
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="preface.autolabel">
+<refmeta>
+<refentrytitle>preface.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>preface.autolabel</refname>
+<refpurpose>Specifices the labeling format for Preface titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="preface.autolabel.frag">&lt;xsl:param name="preface.autolabel" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero then prefaces will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (arabic).
+</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qandadiv.autolabel">
+<refmeta>
+<refentrytitle>qandadiv.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qandadiv.autolabel</refname>
+<refpurpose>Are divisions in QAndASets enumerated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qandadiv.autolabel.frag">&lt;xsl:param name="qandadiv.autolabel" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, unlabeled qandadivs will be enumerated.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.autolabel">
+<refmeta>
+<refentrytitle>section.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.autolabel</refname>
+<refpurpose>Are sections enumerated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.autolabel.frag">&lt;xsl:param name="section.autolabel" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), unlabeled sections will be enumerated.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.autolabel.max.depth">
+<refmeta>
+<refentrytitle>section.autolabel.max.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.autolabel.max.depth</refname>
+<refpurpose>The deepest level of sections that are numbered.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.autolabel.max.depth.frag">
+&lt;xsl:param name="section.autolabel.max.depth"&gt;8&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When section numbering is turned on by the
+<parameter>section.autolabel</parameter> parameter, then this
+parameter controls the depth of <tag>section</tag> nesting that is
+numbered.  Sections nested to a level deeper than this value will not
+be numbered.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.label.includes.component.label">
+<refmeta>
+<refentrytitle>section.label.includes.component.label</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.label.includes.component.label</refname>
+<refpurpose>Do section labels include the component label?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.label.includes.component.label.frag">&lt;xsl:param name="section.label.includes.component.label" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, section labels are prefixed with the label of the
+component that contains them.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="label.from.part">
+<refmeta>
+<refentrytitle>label.from.part</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>label.from.part</refname>
+<refpurpose>Renumber components in each part?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="label.from.part.frag">
+&lt;xsl:param name="label.from.part" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>label.from.part</parameter> is non-zero, then
+  numbering of components &#8212; <tag>preface</tag>,
+  <tag>chapter</tag>, <tag>appendix</tag>, and
+  <tag>reference</tag> (when <tag>reference</tag> occurs at the
+  component level) &#8212; is re-started within each
+  <tag>part</tag>.</para>
+<para>If <parameter>label.from.part</parameter> is zero (the
+  default), numbering of components is <emphasis>not</emphasis>
+  re-started within each <tag>part</tag>; instead, components are
+  numbered sequentially throughout each <tag>book</tag>,
+  regardless of whether or not they occur within <tag>part</tag>
+  instances.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="component.label.includes.part.label">
+<refmeta>
+<refentrytitle>component.label.includes.part.label</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>component.label.includes.part.label</refname>
+<refpurpose>Do component labels include the part label?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="component.label.includes.part.label.frag">&lt;xsl:param name="component.label.includes.part.label" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, number labels for <tag>chapter</tag>,
+<tag>appendix</tag>, and other component elements are prefixed with
+the label of the part element that contains them.  So you might see
+Chapter II.3 instead of Chapter 3.  Also, the labels for formal
+elements such as <tag>table</tag> and <tag>figure</tag> will include
+the part label.  If there is no part element container, then no prefix
+is generated.
+</para>
+<para>
+This feature is most useful when the
+<parameter>label.from.part</parameter> parameter is turned on.
+In that case, there would be more than one <tag>chapter</tag>
+<quote>1</quote>, and the extra part label prefix will identify
+each chapter unambiguously.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="html" xml:base="../html/param.xml"><title>HTML</title>
+<refentry version="5.0" id="html.base">
+<refmeta>
+<refentrytitle>html.base</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.base</refname>
+<refpurpose>An HTML base URI</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.base.frag">
+&lt;xsl:param name="html.base"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If html.base is set, it is used for the <tag>base</tag> element
+in the <tag>head</tag> of the html documents.  The parameter specifies
+the base URL for all relative URLs in the document.  This is useful
+for dynamically served html where the base URI needs to be
+shifted.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="html.stylesheet">
+<refmeta>
+<refentrytitle>html.stylesheet</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.stylesheet</refname>
+<refpurpose>Name of the stylesheet(s) to use in the generated HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.stylesheet.frag">
+&lt;xsl:param name="html.stylesheet"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>html.stylesheet</parameter> parameter is either
+empty, indicating that no stylesheet <tag>link</tag> tag should be
+generated in the html output, or it is a list of one or more
+stylesheet files.</para>
+
+<para>Multiple stylesheets are space-delimited. If you need to
+reference a stylesheet URI that includes a space, encode it with
+<literal>%20</literal>. A separate html <literal>link</literal> element will
+be generated for each stylesheet in the order they are listed in the
+parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="html.stylesheet.type">
+<refmeta>
+<refentrytitle>html.stylesheet.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.stylesheet.type</refname>
+<refpurpose>The type of the stylesheet used in the generated HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.stylesheet.type.frag">&lt;xsl:param name="html.stylesheet.type"&gt;text/css&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The type of the stylesheet to place in the HTML <tag>link</tag> tag.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="css.decoration">
+<refmeta>
+<refentrytitle>css.decoration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>css.decoration</refname>
+<refpurpose>Enable CSS decoration of elements</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="css.decoration.frag">
+&lt;xsl:param name="css.decoration" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, then html elements produced by the stylesheet may be
+decorated with <literal>style</literal> attributes.  For example, the
+<literal>li</literal> tags produced for list items may include a
+fragment of CSS in the <literal>style</literal> attribute which sets
+the CSS property "list-style-type".
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="html.script">
+<refmeta>
+<refentrytitle>html.script</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.script</refname>
+<refpurpose>Name of the script(s) to use in the generated HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.script.frag">
+&lt;xsl:param name="html.script"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>html.script</parameter> parameter is either
+empty (default), indicating that no <tag>script</tag> element should be
+generated in the html output, or it is a list of one or more
+script locations.</para>
+
+<para>Multiple script locations are space-delimited. If you need to
+reference a script URI that includes a space, encode it with
+<literal>%20</literal>. A separate html <literal>script</literal> element will
+be generated for each script in the order they are listed in the
+parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="html.script.type">
+<refmeta>
+<refentrytitle>html.script.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.script.type</refname>
+<refpurpose>The type of script used in the generated HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.script.type.frag">&lt;xsl:param name="html.script.type"&gt;text/javascript&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The type of script to place in the HTML <tag>script</tag> element.
+Specifically, the value of the <tag>script</tag> element's <tag>type</tag>
+attribute.
+The default value is <literal>text/javascript</literal>.
+This param is used only when the stylesheet parameter
+<tag>html.script</tag> is non-blank and specifies the location of a script.</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="spacing.paras">
+<refmeta>
+<refentrytitle>spacing.paras</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>spacing.paras</refname>
+<refpurpose>Insert additional &lt;p&gt; elements for spacing?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="spacing.paras.frag">
+&lt;xsl:param name="spacing.paras" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When non-zero, additional, empty paragraphs are inserted in
+several contexts (for example, around informal figures), to create a
+more pleasing visual appearance in many browsers.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="emphasis.propagates.style">
+<refmeta>
+<refentrytitle>emphasis.propagates.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>emphasis.propagates.style</refname>
+<refpurpose>Pass emphasis role attribute through to HTML?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="emphasis.propagates.style.frag">
+&lt;xsl:param name="emphasis.propagates.style" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, the <literal>role</literal> attribute of
+<tag>emphasis</tag> elements will be passed through to the HTML as a
+class attribute on a <literal>span</literal> that surrounds the
+emphasis.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="para.propagates.style">
+<refmeta>
+<refentrytitle>para.propagates.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>para.propagates.style</refname>
+<refpurpose>Pass para role attribute through to HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="para.propagates.style.frag">
+&lt;xsl:param name="para.propagates.style" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, the role attribute of <tag>para</tag> elements
+will be passed through to the HTML as a class attribute on the
+<tag>p</tag> generated for the paragraph.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="phrase.propagates.style">
+<refmeta>
+<refentrytitle>phrase.propagates.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>phrase.propagates.style</refname>
+<refpurpose>Pass phrase role attribute through to HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="phrase.propagates.style.frag">
+&lt;xsl:param name="phrase.propagates.style" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the role attribute of <tag>phrase</tag> elements
+will be passed through to the HTML as a <literal>class</literal>
+attribute on a <literal>span</literal> that surrounds the
+phrase.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="entry.propagates.style">
+<refmeta>
+<refentrytitle>entry.propagates.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>entry.propagates.style</refname>
+<refpurpose>Pass entry role attribute through to HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="entry.propagates.style.frag">
+&lt;xsl:param name="entry.propagates.style" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, the role attribute of <tag>entry</tag> elements
+will be passed through to the HTML as a class attribute on the
+<tag>td</tag> or <tag>th</tag> generated for the table
+cell.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="html.longdesc">
+<refmeta>
+<refentrytitle>html.longdesc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.longdesc</refname>
+<refpurpose>Should longdesc URIs be created?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="html.longdesc.frag">
+&lt;xsl:param name="html.longdesc" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, HTML files will be created for the
+<literal>longdesc</literal> attribute. These files
+are created from the <tag>textobject</tag>s in
+<tag>mediaobject</tag>s and
+<tag>inlinemediaobject</tag>.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="html.longdesc.link">
+<refmeta>
+<refentrytitle>html.longdesc.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.longdesc.link</refname>
+<refpurpose>Should a link to the longdesc be included in the HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.longdesc.link.frag">
+&lt;xsl:param name="html.longdesc.link" select="$html.longdesc"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, links will be created to the
+HTML files created for the
+<literal>longdesc</literal> attribute. It makes no
+sense to enable this option without also enabling the
+<parameter>html.longdesc</parameter> parameter.</para>
+
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="make.valid.html">
+<refmeta>
+<refentrytitle>make.valid.html</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.valid.html</refname>
+<refpurpose>Attempt to make sure the HTML output is valid HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="make.valid.html.frag">
+&lt;xsl:param name="make.valid.html" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>make.valid.html</parameter> is true, the stylesheets take
+extra effort to ensure that the resulting HTML is valid. This may mean that some
+<tag>para</tag> tags are translated into HTML <tag>div</tag>s or
+that other substitutions occur.</para>
+
+<para>This parameter is different from <parameter>html.cleanup</parameter>
+because it changes the resulting markup; it does not use extension functions
+to manipulate result-tree-fragments and is therefore applicable to any
+XSLT processor.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="html.cleanup">
+<refmeta>
+<refentrytitle>html.cleanup</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.cleanup</refname>
+<refpurpose>Attempt to clean up the resulting HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.cleanup.frag">
+&lt;xsl:param name="html.cleanup" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, and if the <link xlink:href="http://www.exslt.org/">EXSLT</link>
+extensions are supported by your processor, the resulting HTML will be
+<quote>cleaned up</quote>. This improves the chances that the
+resulting HTML will be valid. It may also improve the formatting of
+some elements.</para>
+
+<para>This parameter is different from <parameter>make.valid.html</parameter>
+because it uses extension functions to manipulate result-tree-fragments.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="html.append">
+<refmeta>
+<refentrytitle>html.append</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.append</refname>
+<refpurpose>Specifies content to append to HTML output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.append.frag">&lt;xsl:param name="html.append"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies content to append to the end of HTML files output by
+the <filename>html/docbook.xsl</filename> stylesheet, after the
+closing <code>&lt;html&gt;</code> tag. You probably don&#8217;t want to set any
+value for this parameter; but if you do, the only value it should ever
+be set to is a newline character: <code>&amp;#x0a;</code> or
+<code>&amp;#10;</code></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="draft.mode">
+<refmeta>
+<refentrytitle>draft.mode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>draft.mode</refname>
+<refpurpose>Select draft mode</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="draft.mode.frag">
+&lt;xsl:param name="draft.mode"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects draft mode. If <parameter>draft.mode</parameter> is
+<quote><literal>yes</literal></quote>, the entire document will be treated
+as a draft. If it is <quote><literal>no</literal></quote>, the entire document
+will be treated as a final copy. If it is <quote><literal>maybe</literal></quote>,
+individual sections will be treated as draft or final independently, depending
+on how their <literal>status</literal> attribute is set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="draft.watermark.image">
+<refmeta>
+<refentrytitle>draft.watermark.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>draft.watermark.image</refname>
+<refpurpose>The URI of the image to be used for draft watermarks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="draft.watermark.image.frag">
+&lt;xsl:param name="draft.watermark.image"&gt;images/draft.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The image to be used for draft watermarks.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.id.attributes">
+<refmeta>
+<refentrytitle>generate.id.attributes</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.id.attributes</refname>
+<refpurpose>Generate ID attributes on container elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="generate.id.attributes.frag">
+&lt;xsl:param name="generate.id.attributes" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the HTML stylesheet will generate ID attributes on
+containers. For example, the markup:</para>
+
+<screen>&lt;section id="foo"&gt;&lt;title&gt;Some Title&lt;/title&gt;
+&lt;para&gt;Some para.&lt;/para&gt;
+&lt;/section&gt;</screen>
+
+<para>might produce:</para>
+
+<screen>&lt;div class="section" id="foo"&gt;
+&lt;h2&gt;Some Title&lt;/h2&gt;
+&lt;p&gt;Some para.&lt;/p&gt;
+&lt;/div&gt;</screen>
+
+<para>The alternative is to generate anchors:</para>
+
+<screen>&lt;div class="section"&gt;
+&lt;h2&gt;&lt;a name="foo"&gt;&lt;/a&gt;Some Title&lt;/h2&gt;
+&lt;p&gt;Some para.&lt;/p&gt;
+&lt;/div&gt;</screen>
+
+<para>Because the <tag class="attribute">name</tag> attribute of
+the <tag>a</tag> element and the <tag class="attribute">id</tag>
+attribute of other tags are both of type <quote>ID</quote>, producing both
+generates invalid documents.</para>
+
+<para>As of version 1.50, you can use this switch to control which type of
+identifier is generated. For backwards-compatibility, generating
+<tag>a</tag> anchors is preferred.</para>
+
+<para>Note: at present, this switch is incompletely implemented.
+Disabling ID attributes will suppress them, but enabling ID attributes
+will not suppress the anchors.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.consistent.ids">
+<refmeta>
+<refentrytitle>generate.consistent.ids</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.consistent.ids</refname>
+<refpurpose>Generate consistent id values if document is unchanged</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="generate.consistent.ids.frag">
+&lt;xsl:param name="generate.consistent.ids" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When the stylesheet assigns an id value to an output element,
+the generate-id() function may be used.  That function may not
+produce consistent values between runs.  Version control
+systems may misidentify the changing id values as changes
+to the document.</para>
+
+<para>If you set this parameter's value to 1, then the
+template named <literal>object.id</literal> will replace
+the use of the function generate-id() with
+<literal>&lt;xsl:number level="multiple" count="*"/&gt;</literal>.
+This counts preceding elements to generate a unique number for
+the id value.</para>
+
+<caution>
+<para>This param does not associate permanent unique id values
+with particular elements.
+The id values are consistent only as long as the document
+structure does not change.
+If the document structure changes, then the counting
+of elements changes, and all id values after
+the first such change may be different, even when there is
+no change to the element itself or its output.
+</para>
+</caution>
+
+<para>The default value of this parameter is zero, so generate-id() is used
+by default.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.meta.abstract">
+<refmeta>
+<refentrytitle>generate.meta.abstract</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.meta.abstract</refname>
+<refpurpose>Generate HTML <tag>META</tag> element from <tag>abstract</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="generate.meta.abstract.frag">
+&lt;xsl:param name="generate.meta.abstract" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, document abstracts will be reproduced in the HTML
+<literal>head</literal>, with <literal>&gt;meta name="description" content="..."</literal></para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="make.clean.html">
+<refmeta>
+<refentrytitle>make.clean.html</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.clean.html</refname>
+<refpurpose>Make HTML conform to modern coding standards</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="make.clean.html.frag">
+&lt;xsl:param name="make.clean.html" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>make.clean.html</parameter> is true, the stylesheets take
+extra effort to ensure that the resulting HTML is conforms to
+modern HTML coding standards.  In addition to eliminating
+excessive and noncompliant coding, it moves presentation
+HTML coding to a CSS stylesheet.</para>
+
+<para>The resulting HTML is dependent on
+CSS for formatting, and so the stylesheet is capable of
+generating a supporting CSS file. The <parameter>docbook.css.source</parameter>
+and <parameter>custom.css.source</parameter> parameters control
+how a CSS file is generated.</para>
+
+<para>If you require your CSS to reside in the HTML 
+<tag>head</tag> element, then the <parameter>generate.css.header</parameter>
+can be used to do that.</para>
+
+<para>The <parameter>make.clean.html</parameter> parameter is
+different from <parameter>html.cleanup</parameter>
+because the former changes the resulting markup; it does not use extension functions
+like the latter to manipulate result-tree-fragments,
+and is therefore applicable to any XSLT processor.</para>
+
+<para>If <parameter>make.clean.html</parameter> is set to zero (the default),
+then the stylesheet retains its original 
+<quote>old style</quote>
+HTML formatting features.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="docbook.css.source">
+  <refmeta>
+    <refentrytitle>docbook.css.source</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>docbook.css.source</refname>
+    <refpurpose>Name of the default CSS input file</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting id="docbook.css.source.frag">&lt;xsl:param name="docbook.css.source"&gt;docbook.css.xml&lt;/xsl:param&gt;</programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+<para>The <parameter>docbook.css.source</parameter> parameter
+specifies the name of the file containing the default DocBook
+CSS styles.  Those styles are necessary when the
+<parameter>make.clean.html</parameter> parameter is nonzero.</para>
+
+<para>The file is a well-formed XML file that
+must consist of a single <tag>style</tag> root
+element that contains CSS styles as its text content.
+The default value of the parameter (and filename)
+is <literal>docbook.css.xml</literal>.
+The stylesheets ship with the default file. You can substitute
+your own and specify its path in this parameter.</para>
+
+<para>If <parameter>docbook.css.source</parameter> is not blank,
+and <parameter>make.clean.html</parameter> is nonzero, then
+the stylesheet takes the following actions:</para>
+
+<orderedlist>
+  <listitem>
+    <para>The stylesheet uses the XSLT <literal>document()</literal>
+    function to open the file specified by the parameter and
+    load it into a variable.</para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet forms an output pathname consisting of the
+    value of the <parameter>base.dir</parameter> parameter (if it is set)
+    and the value of <parameter>docbook.css.source</parameter>,
+    with the <literal>.xml</literal> suffix stripped off.
+    </para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet removes the <tag>style</tag>
+    wrapper element and writes just the CSS text content to the output file.</para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet adds a <tag>link</tag> element to the
+    HTML <tag>HEAD</tag> element to reference the external CSS stylesheet.
+    For example:</para>
+    <programlisting>&lt;link rel="stylesheet" href="docbook.css" type="text/css"&gt;
+    </programlisting>
+    <para>However, if the <parameter>docbook.css.link</parameter>
+    parameter is set to zero, then no <tag>link</tag> is written
+    for the default CSS file.  That is useful if a custom
+    CSS file will import the default CSS stylesheet to ensure
+    proper cascading of styles.</para>
+  </listitem>
+</orderedlist>
+
+<para>If the <parameter>docbook.css.source</parameter> parameter
+is changed from its default <literal>docbook.css.xml</literal> to blank,
+then no default CSS is generated. Likewise if the
+<parameter>make.clean.html</parameter> parameter is set to zero,
+then no default CSS is generated. The 
+<parameter>custom.css.source</parameter> parameter can be used
+instead to generate a complete custom CSS file.</para>
+
+<para>You can use the <parameter>generate.css.header</parameter>
+parameter to instead write the CSS to each HTML <tag>HEAD</tag>
+element in a <tag>style</tag> tag instead of an external CSS file.</para>
+
+  </refsection>
+</refentry>
+
+<refentry version="5.0" id="docbook.css.link">
+<refmeta>
+<refentrytitle>docbook.css.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>docbook.css.link</refname>
+<refpurpose>Insert a link referencing the default CSS stylesheet</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="docbook.css.link.frag">
+&lt;xsl:param name="docbook.css.link" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The stylesheets are capable of generating a default
+CSS stylesheet file.  The parameters 
+<parameter>make.clean.html</parameter> and
+<parameter>docbook.css.source</parameter> control that feature.</para>
+
+<para>Normally if a default CSS file is generated, then 
+the stylesheet inserts a <tag>link</tag> tag in the HTML
+<tag>HEAD</tag> element to reference it.
+However, you can omit that <tag>link</tag> reference if
+you set the <parameter>docbook.css.link</parameter> to zero
+(1 is the default).</para>
+
+<para>This parameter is useful when you want to import the 
+default CSS into a custom CSS file generated using the
+<parameter>custom.css.source</parameter> parameter.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="custom.css.source">
+  <refmeta>
+    <refentrytitle>custom.css.source</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>custom.css.source</refname>
+    <refpurpose>Name of a custom CSS input file</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting id="custom.css.source.frag">&lt;xsl:param name="custom.css.source"&gt;&lt;/xsl:param&gt;</programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+<para>The <parameter>custom.css.source</parameter>
+parameter enables you to add CSS styles to DocBook's
+HTML output.</para>
+
+<para>The parameter
+specifies the name of a file containing custom
+CSS styles.  The file must be a well-formed XML file that
+consists of a single <tag>style</tag> root
+element that contains CSS styles as its text content.
+For example:</para>
+<programlisting>&lt;?xml version="1.0"?&gt;
+&lt;style&gt;
+h2 {
+  font-weight: bold;
+  color: blue;
+}
+...
+&lt;/style&gt;
+</programlisting>
+
+<para>The filename specified by the parameter
+should have a <literal>.xml</literal>
+filename suffix, although that is not required.
+The default value of this parameter is blank.</para>
+
+<para>If <parameter>custom.css.source</parameter> is not blank, then
+the stylesheet takes the following actions.
+These actions take place regardless of the value of
+the <parameter>make.clean.html</parameter> parameter.</para>
+
+<orderedlist>
+  <listitem>
+    <para>The stylesheet uses the XSLT <literal>document()</literal>
+    function to open the file specified by the parameter and
+    load it into a variable.</para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet forms an output pathname consisting of the
+    value of the <parameter>base.dir</parameter> parameter (if it is set)
+    and the value of <parameter>custom.css.source</parameter>,
+    with the <literal>.xml</literal> suffix stripped off.
+    </para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet removes the <tag>style</tag>
+    wrapper element and writes just the CSS text content to the output file.</para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet adds a <tag>link</tag> element to the
+    HTML <tag>HEAD</tag> element to reference this external CSS stylesheet.
+    For example:
+    <programlisting>&lt;link rel="stylesheet" href="custom.css" type="text/css"&gt;
+    </programlisting>
+    </para>
+  </listitem>
+</orderedlist>
+
+
+
+<para>If the <parameter>make.clean.html</parameter> parameter is nonzero
+(the default is zero),
+and if the <parameter>docbook.css.source</parameter> parameter
+is not blank (the default is not blank),
+then the stylesheet will also generate a default CSS file
+and add a <tag>link</tag> tag to reference it.
+The <tag>link</tag> to the custom CSS comes after the 
+<tag>link</tag> to the default, so it should cascade properly
+in most browsers.
+If you do not want two <tag>link</tag> tags, and
+instead want your custom CSS to import the default generated
+CSS file, then do the following:
+</para>
+
+<orderedlist>
+  <listitem>
+    <para>Add a line like the following to your custom CSS source file:</para>
+    <programlisting>@import url("docbook.css")
+    </programlisting>
+  </listitem>
+  <listitem>
+    <para>Set the <parameter>docbook.css.link</parameter> parameter 
+    to zero. This will omit the <tag>link</tag> tag
+    that references the default CSS file.</para>
+  </listitem>
+</orderedlist>
+
+<para>If you set <parameter>make.clean.html</parameter> to nonzero but
+you do not want the default CSS generated, then also set
+the <parameter>docbook.css.source</parameter> parameter to blank.
+Then no default CSS will be generated, and so
+all CSS styles must come from your custom CSS file.</para>
+
+<para>You can use the <parameter>generate.css.header</parameter>
+parameter to instead write the CSS to each HTML <tag>HEAD</tag>
+element in a <tag>style</tag> tag instead of an external CSS file.</para>
+
+  </refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.css.header">
+<refmeta>
+<refentrytitle>generate.css.header</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.css.header</refname>
+<refpurpose>Insert generated CSS styles in HEAD element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="generate.css.header.frag">
+&lt;xsl:param name="generate.css.header" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The stylesheets are capable of generating both default
+and custom CSS stylesheet files.  The parameters 
+<parameter>make.clean.html</parameter>,
+<parameter>docbook.css.source</parameter>, and
+<parameter>custom.css.source</parameter> control that feature.</para>
+
+<para>If you require that CSS styles reside in the HTML 
+<tag>HEAD</tag> element instead of external CSS files,
+then set the <parameter>generate.css.header</parameter>
+parameter to nonzero (it is zero by default).
+Then instead of generating the CSS in external files,
+they are wrapped in <tag>style</tag> elements in
+the <tag>HEAD</tag> element of each HTML output file.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="xslt" xml:base="../html/param.xml"><title>XSLT Processing</title>
+<refentry version="5.0" id="rootid">
+<refmeta>
+<refentrytitle>rootid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>rootid</refname>
+<refpurpose>Specify the root element to format</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="rootid.frag">
+&lt;xsl:param name="rootid"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>rootid</parameter> is not empty, it must be the
+value of an ID that occurs in the document being formatted. The entire
+document will be loaded and parsed, but formatting will begin at the
+element identified, rather than at the root. For example, this allows
+you to process only <tag>chapter</tag> 4 of a <tag>book</tag>.</para>
+<para>Because the entire document is available to the processor, automatic
+numbering, cross references, and other dependencies are correctly
+resolved.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="suppress.navigation">
+<refmeta>
+<refentrytitle>suppress.navigation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>suppress.navigation</refname>
+<refpurpose>Disable header and footer navigation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="suppress.navigation.frag">
+&lt;xsl:param name="suppress.navigation" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, header and footer navigation will be suppressed.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="suppress.header.navigation">
+<refmeta>
+<refentrytitle>suppress.header.navigation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>suppress.header.navigation</refname>
+<refpurpose>Disable header navigation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="suppress.header.navigation.frag">
+&lt;xsl:param name="suppress.header.navigation" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, header navigation will be suppressed.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="suppress.footer.navigation">
+<refmeta>
+<refentrytitle>suppress.footer.navigation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>suppress.footer.navigation</refname>
+<refpurpose>Disable footer navigation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="suppress.footer.navigation.frag">&lt;xsl:param name="suppress.footer.navigation"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, footer navigation will be suppressed.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="header.rule">
+<refmeta>
+<refentrytitle>header.rule</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.rule</refname>
+<refpurpose>Rule under headers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="header.rule.frag">
+&lt;xsl:param name="header.rule" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a rule will be drawn below the page headers.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footer.rule">
+<refmeta>
+<refentrytitle>footer.rule</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.rule</refname>
+<refpurpose>Rule over footers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footer.rule.frag">
+&lt;xsl:param name="footer.rule" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a rule will be drawn above the page footers.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="id.warnings">
+<refmeta>
+<refentrytitle>id.warnings</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>id.warnings</refname>
+<refpurpose>Should warnings be generated for titled elements without IDs?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="id.warnings.frag">
+&lt;xsl:param name="id.warnings" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, the stylesheet will issue a warning for any element
+(other than the root element) which has a <tag>title</tag> but does not have an
+ID.</para>
+</refsection>
+</refentry>
+
+</reference><reference id="meta" xml:base="../html/param.xml"><title>Meta/*Info and Titlepages</title>
+<refentry version="5.0" id="inherit.keywords">
+<refmeta>
+<refentrytitle>inherit.keywords</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>inherit.keywords</refname>
+<refpurpose>Inherit keywords from ancestor elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="inherit.keywords.frag">
+&lt;xsl:param name="inherit.keywords" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>inherit.keywords</parameter>
+is non-zero, the keyword <literal>meta</literal> for each HTML
+<literal>head</literal> element will include all of the keywords from
+ancestor elements. Otherwise, only the keywords from the current section
+will be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="make.single.year.ranges">
+<refmeta>
+<refentrytitle>make.single.year.ranges</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.single.year.ranges</refname>
+<refpurpose>Print single-year ranges (e.g., 1998-1999)</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="make.single.year.ranges.frag">
+&lt;xsl:param name="make.single.year.ranges" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, year ranges that span a single year will be printed
+in range notation (1998-1999) instead of discrete notation
+(1998, 1999).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="make.year.ranges">
+<refmeta>
+<refentrytitle>make.year.ranges</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.year.ranges</refname>
+<refpurpose>Collate copyright years into ranges?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="make.year.ranges.frag">&lt;xsl:param name="make.year.ranges" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, multiple copyright <tag>year</tag> elements will be
+collated into ranges.
+This works only if each year number is put into a separate
+year element.  The copyright element permits multiple
+year elements. If a year element contains a dash or
+a comma, then that year element will not be merged into
+any range.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="author.othername.in.middle">
+<refmeta>
+<refentrytitle>author.othername.in.middle</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>author.othername.in.middle</refname>
+<refpurpose>Is <tag>othername</tag> in <tag>author</tag> a
+middle name?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="author.othername.in.middle.frag">
+&lt;xsl:param name="author.othername.in.middle" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the <tag>othername</tag> of an <tag>author</tag>
+appears between the <tag>firstname</tag> and
+<tag>surname</tag>.  Otherwise, <tag>othername</tag>
+is suppressed.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="blurb.on.titlepage.enabled">
+<refmeta>
+<refentrytitle>blurb.on.titlepage.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>blurb.on.titlepage.enabled</refname>
+<refpurpose>Display personblurb and authorblurb on title pages?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="blurb.on.titlepage.enabled.frag">
+&lt;xsl:param name="blurb.on.titlepage.enabled" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, output from <tag>authorblurb</tag> and
+<tag>personblurb</tag> elements is displayed on title pages. If zero
+(the default), output from those elements is suppressed on title pages
+(unless you are using a <literal>titlepage</literal> customization
+that causes them to be included).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="contrib.inline.enabled">
+<refmeta>
+<refentrytitle>contrib.inline.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>contrib.inline.enabled</refname>
+<refpurpose>Display contrib output inline?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="contrib.inline.enabled.frag">&lt;xsl:param name="contrib.inline.enabled"&gt;1&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero (the default), output of the <tag>contrib</tag> element is
+displayed as inline content rather than as block content.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="editedby.enabled">
+<refmeta>
+<refentrytitle>editedby.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>editedby.enabled</refname>
+<refpurpose>Display &#8220;Edited by&#8221; heading above editor name?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="editedby.enabled.frag">&lt;xsl:param name="editedby.enabled"&gt;1&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a localized <emphasis role="bold">Edited
+by</emphasis> heading is displayed above editor names in output of the
+<tag>editor</tag> element.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="abstract.notitle.enabled">
+<refmeta>
+<refentrytitle>abstract.notitle.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>abstract.notitle.enabled</refname>
+<refpurpose>Suppress display of abstract titles?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+  <programlisting id="abstract.notitle.enabled.frag">&lt;xsl:param name="abstract.notitle.enabled" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, in output of the <tag>abstract</tag> element on titlepages,
+display of the abstract title is suppressed.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="othercredit.like.author.enabled">
+<refmeta>
+<refentrytitle>othercredit.like.author.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>othercredit.like.author.enabled</refname>
+<refpurpose>Display othercredit in same style as author?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="othercredit.like.author.enabled.frag">&lt;xsl:param name="othercredit.like.author.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, output of the
+<tag>othercredit</tag> element on titlepages is displayed in
+the same style as <tag>author</tag> and
+<tag>editor</tag> output. If zero then
+<tag>othercredit</tag> output is displayed using a style
+different than that of <tag>author</tag> and
+<tag>editor</tag>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.legalnotice.link">
+<refmeta>
+<refentrytitle>generate.legalnotice.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.legalnotice.link</refname>
+<refpurpose>Write legalnotice to separate chunk and generate link?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="generate.legalnotice.link.frag">&lt;xsl:param name="generate.legalnotice.link" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>generate.legalnotice.link</parameter>
+is non-zero, the stylesheet:
+
+<itemizedlist>
+  <listitem>
+    <para>writes the contents of <tag>legalnotice</tag> to a separate
+    HTML file</para>
+  </listitem>
+  <listitem>
+    <para>inserts a hyperlink to the <tag>legalnotice</tag> file</para>
+  </listitem>
+  <listitem>
+    <para>adds (in the HTML <literal>head</literal>) either a single
+    <literal>link</literal> or element or multiple
+    <literal>link</literal> elements (depending on the value of the
+    <parameter>html.head.legalnotice.link.multiple</parameter>
+    parameter), with the value or values derived from the
+    <parameter>html.head.legalnotice.link.types</parameter>
+    parameter</para>
+  </listitem>
+  </itemizedlist>
+
+  Otherwise, if <parameter>generate.legalnotice.link</parameter> is
+  zero, <tag>legalnotice</tag> contents are rendered on the title
+  page.</para>
+
+<para>The name of the separate HTML file is computed as follows:
+
+<orderedlist>
+<listitem>
+  <para>If a filename is given by the <tag class="xmlpi">dbhtml filename</tag> 
+processing instruction, that filename is used.</para>
+</listitem>
+<listitem>
+  <para>If the legalnotice has an <tag class="attribute">id</tag>/<tag class="attribute">xml:id</tag> 
+attribute, and if <parameter>use.id.as.filename</parameter> != 0, the filename 
+is the concatenation of the id value and the value of the <parameter>html.ext</parameter> 
+parameter.</para>
+</listitem>
+<listitem>
+  <para>If the legalnotice does not have an <tag class="attribute">id</tag>/<tag class="attribute">xml:id</tag>
+ attribute, or if <parameter>use.id.as.filename</parameter> = 0, the filename is the concatenation of "ln-", 
+auto-generated id value, and <parameter>html.ext</parameter> value.
+  </para>
+</listitem>
+</orderedlist>
+
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.revhistory.link">
+<refmeta>
+<refentrytitle>generate.revhistory.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.revhistory.link</refname>
+<refpurpose>Write revhistory to separate chunk and generate link?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="generate.revhistory.link.frag">&lt;xsl:param name="generate.revhistory.link" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the contents of <tag>revhistory</tag> are written
+to a separate HTML file and a link to the file is
+generated. Otherwise, <tag>revhistory</tag> contents are rendered on
+the title page.</para>
+
+<para>The name of the separate HTML file is computed as follows:
+
+<orderedlist>
+<listitem>
+  <para>If a filename is given by the <tag class="xmlpi">dbhtml filename</tag> processing instruction, 
+that filename is used.</para>
+</listitem>
+<listitem>
+  <para>If the revhistory has an <tag class="attribute">id</tag>/<tag class="attribute">xml:id</tag> 
+attribute, and if <parameter>use.id.as.filename</parameter> != 0, the filename is the concatenation of 
+the id value and the value of the <parameter>html.ext</parameter> parameter.</para>
+</listitem>
+<listitem>
+  <para>If the revhistory does not have an <tag class="attribute">id</tag>/<tag class="attribute">xml:id</tag> 
+attribute, or if <parameter>use.id.as.filename</parameter> = 0, the filename is the concatenation of "rh-", 
+auto-generated id value, and <parameter>html.ext</parameter> value.
+  </para>
+</listitem>
+</orderedlist>
+
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="html.head.legalnotice.link.types">
+<refmeta>
+<refentrytitle>html.head.legalnotice.link.types</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.head.legalnotice.link.types</refname>
+<refpurpose>Specifies link types for legalnotice link in html head</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.head.legalnotice.link.types.frag">
+&lt;xsl:param name="html.head.legalnotice.link.types"&gt;copyright&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of
+<parameter>html.head.legalnotice.link.types</parameter> is a
+space-separated list of link types, as described in <link xlink:href="http://www.w3.org/TR/html401/types.html#type-links">Section 6.12
+of the HTML 4.01 specification</link>. If the value of the
+<parameter>generate.legalnotice.link</parameter> parameter is
+non-zero, then the stylesheet generates (in the
+<literal>head</literal> section of the HTML source) either a single
+HTML <literal>link</literal> element or, if the value of the
+<parameter>html.head.legalnotice.link.multiple</parameter> is
+non-zero, one <literal>link</literal> element for each link type
+specified. Each <literal>link</literal> has the following attributes:
+
+<itemizedlist>
+  <listitem>
+    <para>a <tag class="attribute">rel</tag> attribute whose
+    value is derived from the value of
+    <parameter>html.head.legalnotice.link.types</parameter></para>
+  </listitem>
+  <listitem>
+    <para>an <tag class="attribute">href</tag> attribute whose
+    value is set to the URL of the file containing the
+    <tag>legalnotice</tag></para>
+  </listitem>
+  <listitem>
+    <para>a <tag class="attribute">title</tag> attribute whose
+    value is set to the title of the corresponding
+    <tag>legalnotice</tag> (or a title programatically
+    determined by the stylesheet)</para>
+  </listitem>
+</itemizedlist>
+
+For example:
+
+<screen>  &lt;link rel="license" href="ln-id2524073.html" title="Legal Notice"&gt;</screen>
+</para>
+
+<refsection><info><title>About the default value</title></info>
+  
+  <para>In an ideal world, the default value of
+  <parameter>html.head.legalnotice.link.types</parameter> would
+  probably be &#8220;<literal>license</literal>&#8221;, since the content of the
+  DocBook <tag>legalnotice</tag> is typically license
+  information, not copyright information. However, the default value
+  is &#8220;<literal>copyright</literal>&#8221; for pragmatic reasons: because
+  that&#8217;s among the set of &#8220;recognized link types&#8221; listed in <link xlink:href="http://www.w3.org/TR/html401/types.html#type-links">Section
+  6.12 of the HTML 4.01 specification</link>, and because certain
+  browsers and browser extensions are preconfigured to recognize that
+  value.</para>
+</refsection>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="html.head.legalnotice.link.multiple">
+<refmeta>
+<refentrytitle>html.head.legalnotice.link.multiple</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.head.legalnotice.link.multiple</refname>
+<refpurpose>Generate multiple link instances in html head for legalnotice?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.head.legalnotice.link.multiple.frag">
+&lt;xsl:param name="html.head.legalnotice.link.multiple" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>html.head.legalnotice.link.multiple</parameter> is
+non-zero and the value of
+<parameter>html.head.legalnotice.link.types</parameter> contains
+multiple link types, then the stylesheet generates (in the
+<literal>head</literal> section of the HTML source) one
+<literal>link</literal> element for each link type specified. For
+example, if the value of
+<parameter>html.head.legalnotice.link.types</parameter> is
+&#8220;<literal>copyright license</literal>&#8221;:
+
+<screen>  &lt;link rel="copyright" href="ln-id2524073.html" title="Legal Notice"&gt;
+  &lt;link rel="license" href="ln-id2524073.html" title="Legal Notice"&gt;</screen>
+
+ Otherwise, the stylesheet generates generates a single
+ <literal>link</literal> instance; for example:
+
+<screen>  &lt;link rel="copyright license" href="ln-id2524073.html" title="Legal Notice"&gt;</screen>
+ 
+</para>
+</refsection>
+</refentry>
+
+</reference><reference id="refentry" xml:base="../html/param.xml"><title>Reference Pages</title>
+<refentry version="5.0" id="funcsynopsis.decoration">
+<refmeta>
+<refentrytitle>funcsynopsis.decoration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>funcsynopsis.decoration</refname>
+<refpurpose>Decorate elements of a <tag>funcsynopsis</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="funcsynopsis.decoration.frag">
+&lt;xsl:param name="funcsynopsis.decoration" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, elements of the <tag>funcsynopsis</tag> will be
+decorated (e.g. rendered as bold or italic text). The decoration is controlled by
+templates that can be redefined in a customization layer.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="funcsynopsis.style">
+<refmeta>
+<refentrytitle>funcsynopsis.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ansi</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kr</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>funcsynopsis.style</refname>
+<refpurpose>What style of <tag>funcsynopsis</tag> should be generated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="funcsynopsis.style.frag">&lt;xsl:param name="funcsynopsis.style"&gt;kr&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>funcsynopsis.style</parameter> is <literal>ansi</literal>,
+ANSI-style function synopses are generated for a
+<tag>funcsynopsis</tag>, otherwise K&amp;R-style
+function synopses are generated.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="function.parens">
+<refmeta>
+<refentrytitle>function.parens</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>function.parens</refname>
+<refpurpose>Generate parens after a function?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="function.parens.frag">
+&lt;xsl:param name="function.parens" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the formatting of a <tag>function</tag> element
+will include generated parentheses.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.generate.name">
+<refmeta>
+<refentrytitle>refentry.generate.name</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.generate.name</refname>
+<refpurpose>Output NAME header before <tag>refname</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.generate.name.frag">
+&lt;xsl:param name="refentry.generate.name" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a "NAME" section title is output before the list
+of <tag>refname</tag>s. This parameter and
+<parameter>refentry.generate.title</parameter> are mutually
+exclusive. This means that if you change this parameter to zero, you
+should set <parameter>refentry.generate.title</parameter> to non-zero unless
+you want get quite strange output.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.generate.title">
+<refmeta>
+<refentrytitle>refentry.generate.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.generate.title</refname>
+<refpurpose>Output title before <tag>refname</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.generate.title.frag">
+&lt;xsl:param name="refentry.generate.title" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the reference page title or first name is
+output before the list of <tag>refname</tag>s. This parameter and
+<parameter>refentry.generate.name</parameter> are mutually exclusive.
+This means that if you change this parameter to non-zero, you
+should set <parameter>refentry.generate.name</parameter> to zero unless
+you want get quite strange output.</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.xref.manvolnum">
+<refmeta>
+<refentrytitle>refentry.xref.manvolnum</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.xref.manvolnum</refname>
+<refpurpose>Output <tag>manvolnum</tag> as part of 
+<tag>refentry</tag> cross-reference?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.xref.manvolnum.frag">
+&lt;xsl:param name="refentry.xref.manvolnum" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>if non-zero, the <tag>manvolnum</tag> is used when cross-referencing
+<tag>refentry</tag>s, either with <tag>xref</tag>
+or <tag>citerefentry</tag>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="citerefentry.link">
+<refmeta>
+<refentrytitle>citerefentry.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>citerefentry.link</refname>
+<refpurpose>Generate URL links when cross-referencing RefEntrys?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="citerefentry.link.frag">
+&lt;xsl:param name="citerefentry.link" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a web link will be generated, presumably
+to an online man-&gt;HTML gateway. The text of the link is
+generated by the <literal>generate.citerefentry.link</literal> template.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.separator">
+<refmeta>
+<refentrytitle>refentry.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.separator</refname>
+<refpurpose>Generate a separator between consecutive RefEntry elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.separator.frag">
+&lt;xsl:param name="refentry.separator" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, a separator will be generated between consecutive
+reference pages.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refclass.suppress">
+<refmeta>
+<refentrytitle>refclass.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refclass.suppress</refname>
+<refpurpose>Suppress display of refclass contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refclass.suppress.frag">
+&lt;xsl:param name="refclass.suppress" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>refclass.suppress</parameter> is
+non-zero, then display of <tag>refclass</tag> contents is
+suppressed in output.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="tables" xml:base="../html/param.xml"><title>Tables</title>
+<refentry version="5.0" id="default.table.width">
+<refmeta>
+<refentrytitle>default.table.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.table.width</refname>
+<refpurpose>The default width of tables</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="default.table.width.frag">
+&lt;xsl:param name="default.table.width"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, this value will be used for the
+<literal>width</literal> attribute on <tag>table</tag>s that do not specify an
+alternate width (with the <tag class="xmlpi">dbhtml table-width</tag> or 
+<tag class="xmlpi">dbfo table-width</tag> processing instruction).</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="nominal.table.width">
+<refmeta>
+<refentrytitle>nominal.table.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nominal.table.width</refname>
+<refpurpose>The (absolute) nominal width of tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="nominal.table.width.frag">
+&lt;xsl:param name="nominal.table.width"&gt;6in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In order to convert CALS column widths into HTML column widths, it
+is sometimes necessary to have an absolute table width to use for conversion
+of mixed absolute and relative widths. This value must be an absolute
+length (not a percentage).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.borders.with.css">
+<refmeta>
+<refentrytitle>table.borders.with.css</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.borders.with.css</refname>
+<refpurpose>Use CSS to specify table, row, and cell borders?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.borders.with.css.frag">
+&lt;xsl:param name="table.borders.with.css" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, CSS will be used to draw table borders.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.cell.border.style">
+<refmeta>
+<refentrytitle>table.cell.border.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dotted</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dashed</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">double</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">groove</refmiscinfo>                       
+<refmiscinfo class="other" otherclass="value">ridge</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">inset</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outset</refmiscinfo>          
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.style</refname>
+<refpurpose>Specifies the border style of table cells</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.cell.border.style.frag">
+&lt;xsl:param name="table.cell.border.style"&gt;solid&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border style of table cells.</para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.cell.border.thickness">
+<refmeta>
+<refentrytitle>table.cell.border.thickness</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.thickness</refname>
+<refpurpose>Specifies the thickness of table cell borders</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.cell.border.thickness.frag">
+&lt;xsl:param name="table.cell.border.thickness"&gt;0.5pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, specifies the thickness of borders on table
+cells. The units are points. See <link xlink:href="http://www.w3.org/TR/CSS21/box.html#border-width-properties">
+CSS</link></para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.cell.border.color">
+<refmeta>
+<refentrytitle>table.cell.border.color</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.color</refname>
+<refpurpose>Specifies the border color of table cells</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.cell.border.color.frag">
+&lt;xsl:param name="table.cell.border.color"&gt;&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the color of table cell borders. If non-zero, the value is used
+for the border coloration. See <link xlink:href="http://www.w3.org/TR/CSS21/syndata.html#value-def-color">CSS</link>. A
+<literal>color</literal> is either a keyword or a numerical RGB specification.
+Keywords are aqua, black, blue, fuchsia, gray, green, lime, maroon,
+navy, olive, orange, purple, red, silver, teal, white, and
+yellow.</para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.frame.border.style">
+<refmeta>
+<refentrytitle>table.frame.border.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dotted</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dashed</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">double</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">groove</refmiscinfo>                       
+<refmiscinfo class="other" otherclass="value">ridge</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">inset</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outset</refmiscinfo>          
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.style</refname>
+<refpurpose>Specifies the border style of table frames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.frame.border.style.frag">
+&lt;xsl:param name="table.frame.border.style"&gt;solid&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border style of table frames.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.frame.border.thickness">
+<refmeta>
+<refentrytitle>table.frame.border.thickness</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.thickness</refname>
+<refpurpose>Specifies the thickness of the frame border</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.frame.border.thickness.frag">
+&lt;xsl:param name="table.frame.border.thickness"&gt;0.5pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the thickness of the border on the table's frame.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.frame.border.color">
+<refmeta>
+<refentrytitle>table.frame.border.color</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.color</refname>
+<refpurpose>Specifies the border color of table frames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.frame.border.color.frag">
+&lt;xsl:param name="table.frame.border.color"&gt;&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border color of table frames.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="default.table.frame">
+<refmeta>
+<refentrytitle>default.table.frame</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.table.frame</refname>
+<refpurpose>The default framing of tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="default.table.frame.frag">
+&lt;xsl:param name="default.table.frame"&gt;all&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This value will be used when there is no frame attribute on the
+table. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="html.cellspacing">
+<refmeta>
+<refentrytitle>html.cellspacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.cellspacing</refname>
+<refpurpose>Default value for cellspacing in HTML tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.cellspacing.frag">
+&lt;xsl:param name="html.cellspacing"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, this value will be used as the default cellspacing
+value in HTML tables. nn for pixels or nn% for percentage
+length. E.g. 5 or 5%</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="html.cellpadding">
+<refmeta>
+<refentrytitle>html.cellpadding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.cellpadding</refname>
+<refpurpose>Default value for cellpadding in HTML tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.cellpadding.frag">
+&lt;xsl:param name="html.cellpadding"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, this value will be used as the default cellpadding value
+in HTML tables. nn for pixels or nn% for percentage length. E.g. 5 or
+5%</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="qa" xml:base="../html/param.xml"><title>QAndASet</title>
+<refentry version="5.0" id="qanda.defaultlabel">
+<refmeta>
+<refentrytitle>qanda.defaultlabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">number</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">qanda</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.defaultlabel</refname>
+<refpurpose>Sets the default for defaultlabel on QandASet.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.defaultlabel.frag">
+&lt;xsl:param name="qanda.defaultlabel"&gt;number&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If no <literal>defaultlabel</literal> attribute is specified on
+a <tag>qandaset</tag>, this value is used. It is generally one of the legal
+values for the defaultlabel attribute (<literal>none</literal>, 
+<literal>number</literal> or
+<literal>qanda</literal>), or one of the additional stylesheet-specific values
+(<literal>qnumber</literal> or <literal>qnumberanda</literal>).
+The default value is 'number'.
+</para>
+<para>The values are rendered as follows:</para>
+<variablelist>
+<varlistentry><term><literal>qanda</literal></term>
+<listitem>
+<para><tag>question</tag>s are labeled "Q:" and
+<tag>answer</tag>s are labeled "A:". </para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>number</literal></term>
+<listitem>
+<para>The questions are enumerated and the answers
+are not labeled. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>qnumber</literal></term>
+<listitem>
+<para>The questions are labeled "Q:" followed by a number, and answers are not 
+labeled. 
+When sections are numbered, adding a label
+to the number distinguishes the question numbers
+from the section numbers.
+This value is not allowed in the
+<tag class="attribute">defaultlabel</tag> attribute
+of a <tag>qandaset</tag> element.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>qnumberanda</literal></term>
+<listitem>
+<para>The questions are labeled "Q:" followed by a number, and
+the answers are labeled "A:". 
+When sections are numbered, adding a label
+to the number distinguishes the question numbers
+from the section numbers.
+This value is not allowed in the
+<tag class="attribute">defaultlabel</tag> attribute
+of a <tag>qandaset</tag> element.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>none</literal></term>
+<listitem>
+<para>No distinguishing label precedes Questions or Answers. 
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.inherit.numeration">
+<refmeta>
+<refentrytitle>qanda.inherit.numeration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.inherit.numeration</refname>
+<refpurpose>Does enumeration of QandASet components inherit the numeration of parent elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.inherit.numeration.frag">
+&lt;xsl:param name="qanda.inherit.numeration" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, numbered <tag>qandadiv</tag> elements and
+<tag>question</tag> and <tag>answer</tag> inherit the enumeration of
+the ancestors of the <tag>qandaset</tag>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.in.toc">
+<refmeta>
+<refentrytitle>qanda.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.in.toc</refname>
+<refpurpose>Should qandaentry questions appear in 
+the document table of contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.in.toc.frag">&lt;xsl:param name="qanda.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), then the generated table of contents
+for a document will include <tag>qandaset</tag> titles, 
+<tag>qandadiv</tag> titles,
+and <tag>question</tag> elements.  The default value (zero) excludes
+them from the TOC.
+</para>
+<para>This parameter does not affect any tables of contents
+that may be generated inside a qandaset or qandadiv.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.nested.in.toc">
+<refmeta>
+<refentrytitle>qanda.nested.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.nested.in.toc</refname>
+<refpurpose>Should nested answer/qandaentry instances appear in TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.nested.in.toc.frag">
+&lt;xsl:param name="qanda.nested.in.toc" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, instances of <tag>qandaentry</tag>
+that are children of <tag>answer</tag> elements are shown in
+the TOC.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="links" xml:base="../html/param.xml"><title>Linking</title>
+<refentry version="5.0" id="target.database.document"> 
+<refmeta> 
+<refentrytitle>target.database.document</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>target.database.document</refname> 
+<refpurpose>Name of master database file for resolving
+olinks</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> 
+<programlisting id="target.database.document.frag">
+ &lt;xsl:param name="target.database.document"&gt;olinkdb.xml&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info>
+ 
+<para>
+To resolve olinks between documents, the stylesheets use a master
+database document that identifies the target datafiles for all the
+documents within the scope of the olinks. This parameter value is the
+URI of the master document to be read during processing to resolve
+olinks.  The default value is <filename>olinkdb.xml</filename>.</para>
+
+<para>The data structure of the file is defined in the
+<filename>targetdatabase.dtd</filename> DTD.  The database file
+provides the high level elements to record the identifiers, locations,
+and relationships of documents. The cross reference data for
+individual documents is generally pulled into the database using
+system entity references or XIncludes. See also
+<parameter>targets.filename</parameter>.  </para> </refsection>
+</refentry>
+
+<refentry version="5.0" id="targets.filename"> 
+<refmeta> 
+<refentrytitle>targets.filename</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>targets.filename</refname> 
+<refpurpose>Name of cross reference targets data file</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="targets.filename.frag">
+&lt;xsl:param name="targets.filename"&gt;target.db&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info>
+ 
+<para>
+In order to resolve olinks efficiently, the stylesheets can
+generate an external data file containing information about
+all potential cross reference endpoints in a document.
+This parameter lets you change the name of the generated
+file from the default name <filename>target.db</filename>.
+The name must agree with that used in the target database
+used to resolve olinks during processing.
+See also <parameter>target.database.document</parameter>.
+</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" id="olink.base.uri"> 
+<refmeta> 
+<refentrytitle>olink.base.uri</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>olink.base.uri</refname> 
+<refpurpose>Base URI used in olink hrefs</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="olink.base.uri.frag">
+&lt;xsl:param name="olink.base.uri"&gt;&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When cross reference data is collected for resolving olinks, it
+may be necessary to prepend a base URI to each target's href. This
+parameter lets you set that base URI when cross reference data is
+collected. This feature is needed when you want to link to a document
+that is processed without chunking. The output filename for such a
+document is not known to the XSL stylesheet; the only target
+information consists of fragment identifiers such as
+<literal>#idref</literal>. To enable the resolution of olinks between
+documents, you should pass the name of the HTML output file as the
+value of this parameter. Then the hrefs recorded in the cross
+reference data collection look like
+<literal>outfile.html#idref</literal>, which can be reached as links
+from other documents.</para>
+</refsection> 
+</refentry>
+
+<refentry version="5.0" id="use.local.olink.style"> 
+<refmeta> 
+<refentrytitle>use.local.olink.style</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>use.local.olink.style</refname> 
+<refpurpose>Process olinks using xref style of current
+document</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="use.local.olink.style.frag">
+&lt;xsl:param name="use.local.olink.style" select="0"&gt;&lt;/xsl:param&gt; </programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When cross reference data is collected for use by olinks, the data for each potential target includes one field containing a completely assembled cross reference string, as if it were an xref generated in that document. Other fields record the separate title, number, and element name of each target. When an olink is formed to a target from another document, the olink resolves to that preassembled string by default. If the <parameter>use.local.olink.style</parameter> parameter is set to non-zero, then instead the cross
+reference string is formed again from the target title, number, and
+element name, using the stylesheet processing the targeting document.
+Then olinks will match the xref style in the targeting document
+rather than in the target document. If  both documents are processed
+with the same stylesheet, then the results will be the same.</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" id="current.docid"> 
+<refmeta> 
+<refentrytitle>current.docid</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>current.docid</refname> 
+<refpurpose>targetdoc identifier for the document being
+processed</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="current.docid.frag">
+&lt;xsl:param name="current.docid"&gt;&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When olinks between documents are resolved for HTML output, the stylesheet can compute the relative path between the current document and the target document. The stylesheet needs to know the <literal>targetdoc</literal> identifiers for both documents, as they appear in the <parameter>target.database.document</parameter> database file. This parameter passes to the stylesheet
+the targetdoc identifier of the current document, since that
+identifier does not appear in the document itself. </para>
+<para>This parameter can also be used for print output. If an olink's  <literal>targetdoc</literal>  id differs from the <literal>current.docid</literal>, then the stylesheet can append the target document's title to the generated olink text. That identifies to the reader that the link is to a different document, not the current document. See also <parameter>olink.doctitle</parameter> to enable that feature.</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" id="olink.doctitle"> 
+<refmeta> 
+<refentrytitle>olink.doctitle</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta> 
+<refnamediv> 
+<refname>olink.doctitle</refname> 
+<refpurpose>show the document title for external olinks?</refpurpose>
+
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="olink.doctitle.frag">
+&lt;xsl:param name="olink.doctitle"&gt;no&lt;/xsl:param&gt; 
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When olinks between documents are resolved, the generated text
+may not make it clear that the reference is to another document.
+It is possible for the stylesheets to append the other document's
+title to external olinks. For this to happen, two parameters must
+be set.</para>
+<itemizedlist>
+<listitem>
+<para>This <parameter>olink.doctitle</parameter> parameter
+should be set to either <literal>yes</literal> or <literal>maybe</literal>
+to enable this feature.
+</para>
+</listitem>
+<listitem>
+<para>And you should also set the <parameter>current.docid</parameter>
+parameter to the document id for the  document currently
+being processed for output.
+</para>
+</listitem>
+</itemizedlist>
+
+<para>
+Then if an olink's  <literal>targetdoc</literal> id differs from
+the <literal>current.docid</literal> value, the stylesheet knows
+that it is a reference to another document and can
+append the target document's
+title to the generated olink text. </para> 
+
+<para>The text for the target document's title is copied from the
+olink database from the <tag>ttl</tag> element
+of the top-level <tag>div</tag> for that document.
+If that <tag>ttl</tag> element is missing or empty,
+no title is output.
+</para>
+
+<para>The supported values for <parameter>olink.doctitle</parameter> are:
+</para>
+<variablelist>
+<varlistentry>
+<term><literal>yes</literal></term>
+<listitem>
+<para>
+Always insert the title to the target document if it is not
+the current document.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>no</literal></term>
+<listitem>
+<para>
+Never insert the title to the target document, even if requested
+in an <tag class="attribute">xrefstyle</tag> attribute.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>maybe</literal></term>
+<listitem>
+<para>
+Only insert the title to the target document, if requested
+in an <tag class="attribute">xrefstyle</tag> attribute.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>An <tag class="attribute">xrefstyle</tag> attribute
+may override the global setting for individual olinks.
+The following values are supported in an
+<tag class="attribute">xrefstyle</tag>
+attribute using the <literal>select:</literal> syntax:
+</para>
+
+<variablelist>
+<varlistentry>
+<term><literal>docname</literal></term>
+<listitem>
+<para>
+Insert the target document name for this olink using the
+<literal>docname</literal> gentext template, but only
+if the value of <parameter>olink.doctitle</parameter>
+is not <literal>no</literal>.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>docnamelong</literal></term>
+<listitem>
+<para>
+Insert the target document name for this olink using the
+<literal>docnamelong</literal> gentext template, but only
+if the value of <parameter>olink.doctitle</parameter>
+is not <literal>no</literal>.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>nodocname</literal></term>
+<listitem>
+<para>
+Omit the target document name even if
+the value of <parameter>olink.doctitle</parameter>
+is <literal>yes</literal>.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>Another way of inserting the target document name 
+for a single olink is to employ an
+<tag class="attribute">xrefstyle</tag>
+attribute using the <literal>template:</literal> syntax.
+The <literal>%o</literal> placeholder (the letter o, not zero)
+in such a template
+will be filled in with the target document's title when it is processed.
+This will occur regardless of 
+the value of <parameter>olink.doctitle</parameter>.
+</para>
+<para>Note that prior to version 1.66 of the XSL stylesheets,
+the allowed values for this parameter were 0 and 1.  Those
+values are still supported and mapped to 'no' and 'yes', respectively.
+</para>
+</refsection> 
+</refentry>
+
+<refentry version="5.0" id="olink.debug">
+<refmeta>
+<refentrytitle>olink.debug</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.debug</refname>
+<refpurpose>Turn on debugging messages for olinks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="olink.debug.frag">
+&lt;xsl:param name="olink.debug" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then each olink will generate several
+messages about how it is being resolved during processing.
+This is useful when an olink does not resolve properly
+and the standard error messages are not sufficient to
+find the problem. 
+</para>
+
+<para>You may need to read through the olink XSL templates
+to understand the context for some of the debug messages.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="olink.properties">
+<refmeta>
+<refentrytitle>olink.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.properties</refname>
+<refpurpose>Properties associated with the cross-reference 
+text of an olink.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="olink.properties.frag">
+&lt;xsl:attribute-set name="olink.properties"&gt;
+  &lt;xsl:attribute name="show-destination"&gt;replace&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This <literal>attribute set</literal> is applied to the
+<literal>fo:basic-link</literal> element of an olink. It is not applied to the
+optional page number or optional title of the external
+document.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="olink.lang.fallback.sequence"> 
+<refmeta> 
+<refentrytitle>olink.lang.fallback.sequence</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>olink.lang.fallback.sequence</refname> 
+<refpurpose>look up translated documents if olink not found?</refpurpose>
+
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="olink.lang.fallback.sequence.frag">
+&lt;xsl:param name="olink.lang.fallback.sequence"&gt;&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+
+<para>This parameter defines a list of lang values
+to search among to resolve olinks.
+</para>
+
+<para>Normally an olink tries to resolve to a document in the same
+language as the olink itself.  The language of an olink
+is determined by its nearest ancestor element with a
+<tag class="attribute">lang</tag> attribute, otherwise the
+value of the <parameter>l10n.gentext.default.lang</parameter>
+parameter.
+</para>
+
+<para>An olink database can contain target data for the same
+document in multiple languages.  Each set of data has the
+same value for the <tag>targetdoc</tag> attribute in
+the <tag>document</tag> element in the database, but with a 
+different <tag>lang</tag> attribute value.
+</para>
+
+<para>When an olink is being resolved, the target is first
+sought in the document with the same language as the olink.
+If no match is found there, then this parameter is consulted
+for additional languages to try.</para>
+
+<para>The <parameter>olink.lang.fallback.sequence</parameter>
+must be a whitespace separated list of lang values to
+try.  The first one with a match in the olink database is used.
+The default value is empty.</para>
+
+<para>For example, a document might be written in German
+and contain an olink with
+<literal>targetdoc="adminguide"</literal>.
+When the document is processed, the processor
+first looks for a target dataset in the
+olink database starting with:</para>
+
+<literallayout><literal>&lt;document targetdoc="adminguide" lang="de"&gt;</literal>.
+</literallayout>
+
+<para>If there is no such element, then the
+<parameter>olink.lang.fallback.sequence</parameter> 
+parameter is consulted.
+If its value is, for example, <quote>fr en</quote>, then the processor next
+looks for <literal>targetdoc="adminguide" lang="fr"</literal>, and
+then for <literal>targetdoc="adminguide" lang="en"</literal>.
+If there is still no match, it looks for
+<literal>targetdoc="adminguide"</literal> with no
+lang attribute.
+</para>
+
+<para>This parameter is useful when a set of documents is only
+partially translated, or is in the process of being translated.  
+If a target of an olink has not yet been translated, then this
+parameter permits the processor to look for the document in
+other languages.  This assumes the reader would rather have
+a link to a document in a different language than to have
+a broken link.
+</para>
+
+</refsection> 
+</refentry>
+
+<refentry version="5.0" id="insert.olink.page.number">
+<refmeta>
+<refentrytitle>insert.olink.page.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.olink.page.number</refname>
+<refpurpose>Turns page numbers in olinks on and off</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="insert.olink.page.number.frag">
+&lt;xsl:param name="insert.olink.page.number"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines if
+cross references made between documents with
+<tag>olink</tag> will 
+include page number citations.
+In most cases this is only applicable to references in printed output.
+</para>
+<para>The parameter has three possible values.
+</para>
+<variablelist>
+<varlistentry>
+<term>no</term>
+<listitem><para>No page number references will be generated for olinks.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>yes</term>
+<listitem><para>Page number references will be generated
+for all <tag>olink</tag> references.
+The style of page reference may be changed
+if an <tag class="attribute">xrefstyle</tag>
+attribute is used.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>maybe</term>
+<listitem><para>Page number references will not be generated
+for an <tag>olink</tag> element unless 
+it has an
+<tag class="attribute">xrefstyle</tag>
+attribute whose value specifies a page reference.
+</para></listitem>
+</varlistentry>
+</variablelist>
+<para>Olinks that point to targets within the same document
+are treated as <tag>xref</tag>s, and controlled by
+the <parameter>insert.xref.page.number</parameter> parameter.
+</para>
+
+<para>Page number references for olinks to
+external documents can only be inserted if the 
+information exists in the olink database. 
+This means each olink target element 
+(<tag>div</tag> or <tag>obj</tag>)
+must have a <tag class="attribute">page</tag> attribute
+whose value is its page number in the target document.
+The XSL stylesheets are not able to extract that information
+during processing because pages have not yet been created in
+XSLT transformation.  Only the XSL-FO processor knows what
+page each element is placed on.
+Therefore some postprocessing must take place to populate
+page numbers in the olink database.
+</para>
+
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="insert.olink.pdf.frag">
+<refmeta>
+<refentrytitle>insert.olink.pdf.frag</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.olink.pdf.frag</refname>
+<refpurpose>Add fragment identifiers for links into PDF files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="insert.olink.pdf.frag.frag">
+&lt;xsl:param name="insert.olink.pdf.frag" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines whether
+the cross reference URIs to PDF documents made with
+<tag>olink</tag> will 
+include fragment identifiers.
+</para>
+
+<para>When forming a URI to link to a PDF document,
+a fragment identifier (typically a '#' followed by an
+id value) appended to the PDF filename can be used by
+the PDF viewer to open
+the PDF file to a location within the document instead of
+the first page.
+However, not all PDF files have id
+values embedded in them, and not all PDF viewers can
+handle fragment identifiers. 
+</para>
+
+<para>If <parameter>insert.olink.pdf.frag</parameter> is set
+to a non-zero value, then any olink targeting a
+PDF file will have the fragment identifier appended to the URI.
+The URI is formed by concatenating the value of the
+<parameter>olink.base.uri</parameter> parameter, the
+value of the <tag class="attribute">baseuri</tag>
+attribute from the <tag class="element">document</tag>
+element in the olink database with the matching
+<tag class="attribute">targetdoc</tag> value,
+and the value of the <tag class="attribute">href</tag>
+attribute for the targeted element in the olink database.
+The <tag class="attribute">href</tag> attribute
+contains the fragment identifier.
+</para>
+
+<para>If <parameter>insert.olink.pdf.frag</parameter> is set
+to zero (the default value), then 
+the <tag class="attribute">href</tag> attribute
+from the olink database
+is not appended to PDF olinks, so the fragment identifier is left off.
+A PDF olink is any olink for which the
+<tag class="attribute">baseuri</tag> attribute
+from the matching <tag class="element">document</tag>
+element in the olink database ends with '.pdf'.
+Any other olinks will still have the fragment identifier added.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="prefer.internal.olink">
+<refmeta>
+<refentrytitle>prefer.internal.olink</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>prefer.internal.olink</refname>
+<refpurpose>Prefer a local olink reference to an external reference</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="prefer.internal.olink.frag">
+&lt;xsl:param name="prefer.internal.olink" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you are re-using XML content modules in multiple documents,
+you may want to redirect some of your olinks.  This parameter
+permits you to redirect an olink to the current document.
+</para>
+
+<para>For example: you are writing documentation for a  product, 
+which includes 3 manuals: a little installation
+booklet (booklet.xml), a user 
+guide (user.xml), and a reference manual (reference.xml).
+All 3 documents begin with the same introduction section (intro.xml) that 
+contains a reference to the customization section (custom.xml) which is 
+included in both user.xml and reference.xml documents.
+</para>
+
+<para>How do you write the link to custom.xml in intro.xml
+so that it is interpreted correctly in all 3 documents?</para>
+<itemizedlist>
+<listitem><para>If you use xref, it will fail in user.xml.</para>
+</listitem>
+<listitem><para>If you use olink (pointing to reference.xml),
+the reference in user.xml  
+will point to the customization section of the reference manual, while it is 
+actually available in user.xml.</para>
+</listitem>
+</itemizedlist>
+
+<para>If you set the <parameter>prefer.internal.olink</parameter>
+parameter to a non-zero value, then the processor will
+first look in the olink database
+for the olink's <tag>targetptr</tag> attribute value
+in document matching the <parameter>current.docid</parameter>
+parameter value.  If it isn't found there, then
+it tries the document in the database
+with the <tag>targetdoc</tag>
+value that matches the olink's <tag>targetdoc</tag>
+attribute.
+</para>
+
+<para>This feature permits an olink reference to resolve to
+the current document if there is an element
+with an id matching the olink's <tag>targetptr</tag>
+value.  The current document's olink data must be
+included in the target database for this to work.</para>
+
+<caution>
+<para>There is a potential for incorrect links if
+the same <tag>id</tag> attribute value is used for different
+content in different documents.
+Some of your olinks may be redirected to the current document
+when they shouldn't be.  It is not possible to control
+individual olink instances.</para>
+</caution>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="link.mailto.url">
+<refmeta>
+<refentrytitle>link.mailto.url</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>link.mailto.url</refname>
+<refpurpose>Mailto URL for the LINK REL=made HTML HEAD element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="link.mailto.url.frag">
+&lt;xsl:param name="link.mailto.url"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If not the empty string, this address will be used for the
+rel=made <literal>link</literal> element in the html <literal>head</literal>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="ulink.target">
+<refmeta>
+<refentrytitle>ulink.target</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.target</refname>
+<refpurpose>The HTML anchor target for ULinks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="ulink.target.frag">
+&lt;xsl:param name="ulink.target"&gt;_top&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>ulink.target</parameter> is non-zero, its value will
+be used for the <literal>target</literal> attribute
+on anchors generated for <tag>ulink</tag>s.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="olink.fragid">
+<refmeta>
+<refentrytitle>olink.fragid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.fragid</refname>
+<refpurpose>Names the fragment identifier portion of an OLink resolver query</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="olink.fragid.frag">
+&lt;xsl:param name="olink.fragid"&gt;fragid=&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>The fragment identifier portion of an <tag>olink</tag> target.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="olink.outline.ext">
+<refmeta>
+<refentrytitle>olink.outline.ext</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.outline.ext</refname>
+<refpurpose>The extension of OLink outline files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="olink.outline.ext.frag">
+&lt;xsl:param name="olink.outline.ext"&gt;.olink&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The extension to be expected for  OLink outline files</para>
+<para>Bob has this parameter as dead. Please don't use</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="olink.pubid">
+<refmeta>
+<refentrytitle>olink.pubid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.pubid</refname>
+<refpurpose>Names the public identifier portion of an OLink resolver query</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="olink.pubid.frag">
+&lt;xsl:param name="olink.pubid"&gt;pubid&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para/>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="olink.sysid">
+<refmeta>
+<refentrytitle>olink.sysid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.sysid</refname>
+<refpurpose>Names the system identifier portion of an OLink resolver query</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="olink.sysid.frag">
+&lt;xsl:param name="olink.sysid"&gt;sysid&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="olink.resolver">
+<refmeta>
+<refentrytitle>olink.resolver</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.resolver</refname>
+<refpurpose>The root name of the OLink resolver (usually a script)</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="olink.resolver.frag">
+  &lt;xsl:param name="olink.resolver"&gt;/cgi-bin/olink&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>FIXME:</para>
+</refsection>
+</refentry>
+
+</reference><reference id="xrefs" xml:base="../html/param.xml"><title>Cross References</title>
+<refentry version="5.0" id="collect.xref.targets"> 
+<refmeta> 
+<refentrytitle>collect.xref.targets</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">only</refmiscinfo>
+</refmeta> 
+<refnamediv> 
+<refname>collect.xref.targets</refname> 
+<refpurpose>Controls whether cross reference data is
+collected</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="collect.xref.targets.frag">
+&lt;xsl:param name="collect.xref.targets"&gt;no&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>
+In order to resolve olinks efficiently, the stylesheets can
+generate an external data file containing information about
+all potential cross reference endpoints in a document.
+This parameter determines whether the collection process is run when the document is processed by the stylesheet. The default value is  <literal>no</literal>, which means the data file is not generated during processing. The other choices are <literal>yes</literal>, which means the data file is created and the document is processed for output, and <literal>only</literal>, which means the data file is created but the document is not processed for output.
+See also <parameter>targets.filename</parameter>.
+</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" id="insert.xref.page.number">
+<refmeta>
+<refentrytitle>insert.xref.page.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.xref.page.number</refname>
+<refpurpose>Turns page numbers in xrefs on and off</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="insert.xref.page.number.frag">
+&lt;xsl:param name="insert.xref.page.number"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines if
+cross references (<tag>xref</tag>s) in
+printed output will
+include page number citations.
+It has three possible values.
+</para>
+<variablelist>
+<varlistentry>
+<term>no</term>
+<listitem><para>No page number references will be generated.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>yes</term>
+<listitem><para>Page number references will be generated
+for all <tag>xref</tag> elements.
+The style of page reference may be changed
+if an <tag class="attribute">xrefstyle</tag>
+attribute is used.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>maybe</term>
+<listitem><para>Page number references will not be generated
+for an <tag>xref</tag> element unless 
+it has an
+<tag class="attribute">xrefstyle</tag>
+attribute whose value specifies a page reference.
+</para></listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="use.role.as.xrefstyle">
+<refmeta>
+<refentrytitle>use.role.as.xrefstyle</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.role.as.xrefstyle</refname>
+<refpurpose>Use <tag class="attribute">role</tag> attribute for
+<tag class="attribute">xrefstyle</tag> on <tag>xref</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="use.role.as.xrefstyle.frag">
+&lt;xsl:param name="use.role.as.xrefstyle" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In DocBook documents that conform to a schema older than V4.3, this parameter allows 
+<tag class="attribute">role</tag> to serve the purpose of specifying the cross reference style.</para>
+
+<para>If non-zero, the <tag class="attribute">role</tag> attribute on
+<tag>xref</tag> will be used to select the cross reference style.
+In DocBook V4.3, the <tag class="attribute">xrefstyle</tag> attribute was added for this purpose.
+If the <tag class="attribute">xrefstyle</tag> attribute is present, 
+<tag class="attribute">role</tag> will be ignored, regardless of the setting
+of this parameter.</para>
+
+</refsection>
+
+<refsection><info><title>Example</title></info>
+
+<para>The following small stylesheet shows how to configure the
+stylesheets to make use of the cross reference style:</para>
+
+<programlisting>&lt;?xml version="1.0"?&gt;
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0"&gt;
+
+&lt;xsl:import href="../xsl/html/docbook.xsl"/&gt;
+
+&lt;xsl:output method="html"/&gt;
+
+&lt;xsl:param name="local.l10n.xml" select="document('')"/&gt;
+&lt;l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"&gt;
+  &lt;l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="en"&gt;
+   &lt;l:context name="xref"&gt;
+      &lt;l:template name="chapter" style="title" text="Chapter %n, %t"/&gt;
+      &lt;l:template name="chapter" text="Chapter %n"/&gt;
+    &lt;/l:context&gt;
+  &lt;/l:l10n&gt;
+&lt;/l:i18n&gt;
+
+&lt;/xsl:stylesheet&gt;</programlisting>
+
+<para>With this stylesheet, the cross references in the following document:</para>
+
+<programlisting>&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+                  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"&gt;
+&lt;book id="book"&gt;&lt;title&gt;Book&lt;/title&gt;
+
+&lt;preface&gt;
+&lt;title&gt;Preface&lt;/title&gt;
+
+&lt;para&gt;Normal: &lt;xref linkend="ch1"/&gt;.&lt;/para&gt;
+&lt;para&gt;Title: &lt;xref xrefstyle="title" linkend="ch1"/&gt;.&lt;/para&gt;
+
+&lt;/preface&gt;
+
+&lt;chapter id="ch1"&gt;
+&lt;title&gt;First Chapter&lt;/title&gt;
+
+&lt;para&gt;Irrelevant.&lt;/para&gt;
+
+&lt;/chapter&gt;
+&lt;/book&gt;</programlisting>
+
+<para>will appear as:</para>
+
+<informalexample>
+<para>Normal: Chapter 1.</para>
+<para>Title: Chapter 1, <emphasis>First Chapter</emphasis>.</para>
+</informalexample>
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" id="xref.with.number.and.title">
+<refmeta>
+<refentrytitle>xref.with.number.and.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.with.number.and.title</refname>
+<refpurpose>Use number and title in cross references</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="xref.with.number.and.title.frag">
+&lt;xsl:param name="xref.with.number.and.title" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A cross reference may include the number (for example, the number of
+an example or figure) and the <tag>title</tag> which is a required child of some
+targets. This parameter inserts both the relevant number as well as
+the title into the link. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="xref.label-page.separator">
+<refmeta>
+<refentrytitle>xref.label-page.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.label-page.separator</refname>
+<refpurpose>Punctuation or space separating label from page number in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="xref.label-page.separator.frag">&lt;xsl:param name="xref.label-page.separator"&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both label and page
+but no title,
+then the value of this parameter is inserted between
+label and page number in the output.  
+If a title is included, then other separators are used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="xref.label-title.separator">
+<refmeta>
+<refentrytitle>xref.label-title.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.label-title.separator</refname>
+<refpurpose>Punctuation or space separating label from title in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="xref.label-title.separator.frag">&lt;xsl:param name="xref.label-title.separator"&gt;: &lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both label and title,
+then the value of this parameter is inserted between
+label and title in the output.  
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="xref.title-page.separator">
+<refmeta>
+<refentrytitle>xref.title-page.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.title-page.separator</refname>
+<refpurpose>Punctuation or space separating title from page number in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="xref.title-page.separator.frag">&lt;xsl:param name="xref.title-page.separator"&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both title and page number,
+then the value of this parameter is inserted between
+title and page number in the output.  
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="lists" xml:base="../html/param.xml"><title>Lists</title>
+<refentry version="5.0" id="segmentedlist.as.table">
+<refmeta>
+<refentrytitle>segmentedlist.as.table</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>segmentedlist.as.table</refname>
+<refpurpose>Format segmented lists as tables?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="segmentedlist.as.table.frag">
+&lt;xsl:param name="segmentedlist.as.table" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>segmentedlist</tag>s will be formatted as
+tables.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="variablelist.as.table">
+<refmeta>
+<refentrytitle>variablelist.as.table</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.as.table</refname>
+<refpurpose>Format <tag>variablelist</tag>s as tables?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="variablelist.as.table.frag">
+&lt;xsl:param name="variablelist.as.table" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>variablelist</tag>s will be formatted as
+tables. A processing instruction exists to specify a particular width for the 
+column containing the <tag>term</tag>s:   
+<tag class="xmlpi">dbhtml term-width=".25in"</tag></para>
+
+<para>You can override this setting with a processing instruction as the
+child of <tag>variablelist</tag>: <tag class="xmlpi">dbhtml
+list-presentation="table"</tag> or <tag class="xmlpi">dbhtml
+list-presentation="list"</tag>.</para>
+
+<para>This parameter only applies to the HTML transformations. In the
+FO case, proper list markup is robust enough to handle the formatting.
+But see also <parameter>variablelist.as.blocks</parameter>.</para>
+
+<programlisting>  &lt;variablelist&gt;
+        &lt;?dbhtml list-presentation="table"?&gt;
+        &lt;?dbhtml term-width="1.5in"?&gt;
+        &lt;?dbfo list-presentation="list"?&gt;
+        &lt;?dbfo term-width="1in"?&gt;
+        &lt;varlistentry&gt;
+          &lt;term&gt;list&lt;/term&gt;
+          &lt;listitem&gt;
+                &lt;para&gt;
+                  Formatted as a table even if variablelist.as.table is set to 0.
+                &lt;/para&gt;
+          &lt;/listitem&gt;
+        &lt;/varlistentry&gt;
+  &lt;/variablelist&gt;</programlisting>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="variablelist.term.separator">
+<refmeta>
+<refentrytitle>variablelist.term.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.term.separator</refname>
+<refpurpose>Text to separate <tag>term</tag>s within a multi-term
+<tag>varlistentry</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="variablelist.term.separator.frag">
+&lt;xsl:param name="variablelist.term.separator"&gt;, &lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When a <tag>varlistentry</tag> contains multiple <tag>term</tag>
+elements, the string specified in the value of the
+<parameter>variablelist.term.separator</parameter> parameter is placed
+after each <tag>term</tag> except the last.</para>
+
+<note>
+  <para>To generate a line break between multiple <tag>term</tag>s in
+  a <tag>varlistentry</tag>, set a non-zero value for the
+  <parameter>variablelist.term.break.after</parameter> parameter. If
+  you do so, you may also want to set the value of the
+  <parameter>variablelist.term.separator</parameter> parameter to an
+  empty string (to suppress rendering of the default comma and space
+  after each <tag>term</tag>).</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="variablelist.term.break.after">
+<refmeta>
+<refentrytitle>variablelist.term.break.after</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.term.break.after</refname>
+<refpurpose>Generate line break after each <tag>term</tag> within a
+multi-term <tag>varlistentry</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="variablelist.term.break.after.frag">
+&lt;xsl:param name="variablelist.term.break.after"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set a non-zero value for the
+<parameter>variablelist.term.break.after</parameter> parameter to
+generate a line break between <tag>term</tag>s in a
+multi-term <tag>varlistentry</tag>.</para>
+
+<note>
+<para>If you set a non-zero value for
+<parameter>variablelist.term.break.after</parameter>, you may also
+want to set the value of the
+<parameter>variablelist.term.separator</parameter> parameter to an
+empty string (to suppress rendering of the default comma and space
+after each <tag>term</tag>).</para>
+</note>
+
+</refsection>
+</refentry>
+
+</reference><reference id="biblio" xml:base="../html/param.xml"><title>Bibliography</title>
+<refentry version="5.0" id="bibliography.style">
+<refmeta>
+<refentrytitle>bibliography.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">normal</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">iso690</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.style</refname>
+<refpurpose>Style used for formatting of biblioentries.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="bibliography.style.frag">
+&lt;xsl:param name="bibliography.style"&gt;normal&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Currently only <literal>normal</literal> and
+<literal>iso690</literal> styles are supported.</para>
+
+<para>In order to use ISO690 style to the full extent you might need
+to use additional markup described on <link xlink:href="http://wiki.docbook.org/topic/ISO690Bibliography">the
+following WiKi page</link>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="biblioentry.item.separator">
+<refmeta>
+<refentrytitle>biblioentry.item.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>biblioentry.item.separator</refname>
+<refpurpose>Text to separate bibliography entries</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="biblioentry.item.separator.frag">&lt;xsl:param name="biblioentry.item.separator"&gt;. &lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Text to separate bibliography entries
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="bibliography.collection">
+<refmeta>
+<refentrytitle>bibliography.collection</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.collection</refname>
+<refpurpose>Name of the bibliography collection file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="bibliography.collection.frag">
+&lt;xsl:param name="bibliography.collection"&gt;http://docbook.sourceforge.net/release/bibliography/bibliography.xml&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Maintaining bibliography entries across a set of documents is tedious, time
+consuming, and error prone. It makes much more sense, usually, to store all of
+the bibliography entries in a single place and simply <quote>extract</quote>
+the ones you need in each document.</para>
+
+<para>That's the purpose of the
+<parameter>bibliography.collection</parameter> parameter. To setup a global
+bibliography <quote>database</quote>, follow these steps:</para>
+
+<para>First, create a stand-alone bibliography document that contains all of
+the documents that you wish to reference. Make sure that each bibliography
+entry (whether you use <tag>biblioentry</tag> or <tag>bibliomixed</tag>)
+has an ID.</para>
+
+<para>My global bibliography, <filename>~/bibliography.xml</filename> begins
+like this:</para>
+
+<informalexample>
+<programlisting>&lt;!DOCTYPE bibliography
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"&gt;
+&lt;bibliography&gt;&lt;title&gt;References&lt;/title&gt;
+
+&lt;bibliomixed id="xml-rec"&gt;&lt;abbrev&gt;XML 1.0&lt;/abbrev&gt;Tim Bray,
+Jean Paoli, C. M. Sperberg-McQueen, and Eve Maler, editors.
+&lt;citetitle&gt;&lt;ulink url="http://www.w3.org/TR/REC-xml"&gt;Extensible Markup
+Language (XML) 1.0 Second Edition&lt;/ulink&gt;&lt;/citetitle&gt;.
+World Wide Web Consortium, 2000.
+&lt;/bibliomixed&gt;
+
+&lt;bibliomixed id="xml-names"&gt;&lt;abbrev&gt;Namespaces&lt;/abbrev&gt;Tim Bray,
+Dave Hollander,
+and Andrew Layman, editors.
+&lt;citetitle&gt;&lt;ulink url="http://www.w3.org/TR/REC-xml-names/"&gt;Namespaces in
+XML&lt;/ulink&gt;&lt;/citetitle&gt;.
+World Wide Web Consortium, 1999.
+&lt;/bibliomixed&gt;
+
+&lt;!-- ... --&gt;
+&lt;/bibliography&gt;
+</programlisting>
+</informalexample>
+
+<para>When you create a bibliography in your document, simply
+provide <emphasis>empty</emphasis> <tag>bibliomixed</tag>
+entries for each document that you wish to cite. Make sure that these
+elements have the same ID as the corresponding <quote>real</quote>
+entry in your global bibliography.</para>
+
+<para>For example:</para>
+
+<informalexample>
+<programlisting>&lt;bibliography&gt;&lt;title&gt;Bibliography&lt;/title&gt;
+
+&lt;bibliomixed id="xml-rec"/&gt;
+&lt;bibliomixed id="xml-names"/&gt;
+&lt;bibliomixed id="DKnuth86"&gt;Donald E. Knuth. &lt;citetitle&gt;Computers and
+Typesetting: Volume B, TeX: The Program&lt;/citetitle&gt;. Addison-Wesley,
+1986.  ISBN 0-201-13437-3.
+&lt;/bibliomixed&gt;
+&lt;bibliomixed id="relaxng"/&gt;
+
+&lt;/bibliography&gt;</programlisting>
+</informalexample>
+
+<para>Note that it's perfectly acceptable to mix entries from your
+global bibliography with <quote>normal</quote> entries. You can use
+<tag>xref</tag> or other elements to cross-reference your
+bibliography entries in exactly the same way you do now.</para>
+
+<para>Finally, when you are ready to format your document, simply set the
+<parameter>bibliography.collection</parameter> parameter (in either a
+customization layer or directly through your processor's interface) to
+point to your global bibliography.</para>
+
+<para>A relative path in the parameter is interpreted in one
+of two ways:</para>
+<orderedlist numeration="loweralpha">
+  <listitem>
+    <para>If your document contains no links to empty bibliographic elements,
+    then the path is relative to the file containing
+    the first <tag>bibliomixed</tag> element in the document.</para>
+  </listitem>
+  <listitem>
+    <para>If your document does contain links to empty bibliographic elements,
+    then the path is relative to the file containing
+    the first such link element in the document.</para>
+  </listitem>
+</orderedlist>
+<para>Once the collection file is opened by the first instance described
+above, it stays open for the current document
+and the relative path is not reinterpreted again.</para>
+
+<para>The stylesheets will format the bibliography in your document as if
+all of the entries referenced appeared there literally.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="bibliography.numbered">
+<refmeta>
+<refentrytitle>bibliography.numbered</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.numbered</refname>
+<refpurpose>Should bibliography entries be numbered?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="bibliography.numbered.frag">
+&lt;xsl:param name="bibliography.numbered" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero bibliography entries will be numbered</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="glossary" xml:base="../html/param.xml"><title>Glossary</title>
+<refentry version="5.0" id="glossterm.auto.link">
+<refmeta>
+<refentrytitle>glossterm.auto.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.auto.link</refname>
+<refpurpose>Generate links from glossterm to glossentry automatically?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossterm.auto.link.frag">
+&lt;xsl:param name="glossterm.auto.link" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, links from inline <tag>glossterm</tag>s to the corresponding 
+<tag>glossentry</tag> elements in a <tag>glossary</tag> or <tag>glosslist</tag> 
+will be automatically generated. This is useful when your glossterms are consistent 
+and you don't want to add links manually.</para>
+
+<para>The automatic link generation feature is not used on <tag>glossterm</tag> elements
+that have a <tag class="attribute">linkend</tag> attribute.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="firstterm.only.link">
+<refmeta>
+<refentrytitle>firstterm.only.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>firstterm.only.link</refname>
+<refpurpose>Does automatic glossterm linking only apply to firstterms?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="firstterm.only.link.frag">
+&lt;xsl:param name="firstterm.only.link" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, only <tag>firstterm</tag>s will be automatically linked
+to the glossary. If glossary linking is not enabled, this parameter
+has no effect.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossary.collection">
+<refmeta>
+<refentrytitle>glossary.collection</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossary.collection</refname>
+<refpurpose>Name of the glossary collection file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossary.collection.frag">
+&lt;xsl:param name="glossary.collection"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Glossaries maintained independently across a set of documents
+are likely to become inconsistent unless considerable effort is
+expended to keep them in sync. It makes much more sense, usually, to
+store all of the glossary entries in a single place and simply
+<quote>extract</quote> the ones you need in each document.</para>
+
+<para>That's the purpose of the
+<parameter>glossary.collection</parameter> parameter. To setup a global
+glossary <quote>database</quote>, follow these steps:</para>
+
+<refsection><info><title>Setting Up the Glossary Database</title></info>
+
+<para>First, create a stand-alone glossary document that contains all of
+the entries that you wish to reference. Make sure that each glossary
+entry has an ID.</para>
+
+<para>Here's an example glossary:</para>
+
+<informalexample>
+<programlisting>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE glossary
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"&gt;
+&lt;glossary&gt;
+&lt;glossaryinfo&gt;
+&lt;editor&gt;&lt;firstname&gt;Eric&lt;/firstname&gt;&lt;surname&gt;Raymond&lt;/surname&gt;&lt;/editor&gt;
+&lt;title&gt;Jargon File 4.2.3 (abridged)&lt;/title&gt;
+&lt;releaseinfo&gt;Just some test data&lt;/releaseinfo&gt;
+&lt;/glossaryinfo&gt;
+
+&lt;glossdiv&gt;&lt;title&gt;0&lt;/title&gt;
+
+&lt;glossentry&gt;
+&lt;glossterm&gt;0&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;Numeric zero, as opposed to the letter `O' (the 15th letter of
+the English alphabet). In their unmodified forms they look a lot
+alike, and various kluges invented to make them visually distinct have
+compounded the confusion. If your zero is center-dotted and letter-O
+is not, or if letter-O looks almost rectangular but zero looks more
+like an American football stood on end (or the reverse), you're
+probably looking at a modern character display (though the dotted zero
+seems to have originated as an option on IBM 3270 controllers). If
+your zero is slashed but letter-O is not, you're probably looking at
+an old-style ASCII graphic set descended from the default typewheel on
+the venerable ASR-33 Teletype (Scandinavians, for whom /O is a letter,
+curse this arrangement). (Interestingly, the slashed zero long
+predates computers; Florian Cajori's monumental "A History of
+Mathematical Notations" notes that it was used in the twelfth and
+thirteenth centuries.) If letter-O has a slash across it and the zero
+does not, your display is tuned for a very old convention used at IBM
+and a few other early mainframe makers (Scandinavians curse &lt;emphasis&gt;this&lt;/emphasis&gt;
+arrangement even more, because it means two of their letters collide).
+Some Burroughs/Unisys equipment displays a zero with a &lt;emphasis&gt;reversed&lt;/emphasis&gt;
+slash. Old CDC computers rendered letter O as an unbroken oval and 0
+as an oval broken at upper right and lower left. And yet another
+convention common on early line printers left zero unornamented but
+added a tail or hook to the letter-O so that it resembled an inverted
+Q or cursive capital letter-O (this was endorsed by a draft ANSI
+standard for how to draw ASCII characters, but the final standard
+changed the distinguisher to a tick-mark in the upper-left corner).
+Are we sufficiently confused yet?&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+
+&lt;glossentry&gt;
+&lt;glossterm&gt;1TBS&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para role="accidence"&gt;
+&lt;phrase role="pronounce"&gt;&lt;/phrase&gt;
+&lt;phrase role="partsofspeach"&gt;n&lt;/phrase&gt;
+&lt;/para&gt;
+&lt;para&gt;The "One True Brace Style"&lt;/para&gt;
+&lt;glossseealso&gt;indent style&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+
+&lt;!-- ... --&gt;
+
+&lt;/glossdiv&gt;
+
+&lt;!-- ... --&gt;
+
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+
+</refsection>
+
+<refsection><info><title>Marking Up Glossary Terms</title></info>
+
+<para>That takes care of the glossary database, now you have to get the entries
+into your document. Unlike bibliography entries, which can be empty, creating
+<quote>placeholder</quote> glossary entries would be very tedious. So instead,
+support for <parameter>glossary.collection</parameter> relies on implicit linking.</para>
+
+<para>In your source document, simply use <tag>firstterm</tag> and
+<tag>glossterm</tag> to identify the terms you wish to have included
+in the glossary. The stylesheets assume that you will either set the
+<tag class="attribute">baseform</tag> attribute correctly, or that the
+content of the element exactly matches a term in your glossary.</para>
+
+<para>If you're using a <parameter>glossary.collection</parameter>, don't
+make explicit links on the terms in your document.</para>
+
+<para>So, in your document, you might write things like this:</para>
+
+<informalexample>
+<programlisting>&lt;para&gt;This is dummy text, without any real meaning.
+The point is simply to reference glossary terms like &lt;glossterm&gt;0&lt;/glossterm&gt;
+and the &lt;firstterm baseform="1TBS"&gt;One True Brace Style (1TBS)&lt;/firstterm&gt;.
+The &lt;glossterm&gt;1TBS&lt;/glossterm&gt;, as you can probably imagine, is a nearly
+religious issue.&lt;/para&gt;</programlisting>
+</informalexample>
+
+<para>If you set the <parameter>firstterm.only.link</parameter> parameter,
+only the terms marked with <tag>firstterm</tag> will be links.
+Otherwise, all the terms will be linked.</para>
+
+</refsection>
+
+<refsection><info><title>Marking Up the Glossary</title></info>
+
+<para>The glossary itself has to be identified for the stylesheets. For lack
+of a better choice, the <tag class="attribute">role</tag> is used.
+To identify the glossary as the target for automatic processing, set
+the role to <quote><literal>auto</literal></quote>. The title of this
+glossary (and any other information from the <tag>glossaryinfo</tag>
+that's rendered by your stylesheet) will be displayed, but the entries will
+come from the database.
+</para>
+
+<para>Unfortunately, the glossary can't be empty, so you must put in
+at least one <tag>glossentry</tag>. The content of this entry
+is irrelevant, it will not be rendered:</para>
+
+<informalexample>
+<programlisting>&lt;glossary role="auto"&gt;
+&lt;glossentry&gt;
+&lt;glossterm&gt;Irrelevant&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;If you can see this, the document was processed incorrectly. Use
+the &lt;parameter&gt;glossary.collection&lt;/parameter&gt; parameter.&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+
+<para>What about glossary divisions? If your glossary database has glossary
+divisions <emphasis>and</emphasis> your automatic glossary contains at least
+one <tag>glossdiv</tag>, the automic glossary will have divisions.
+If the <tag>glossdiv</tag> is missing from either location, no divisions
+will be rendered.</para>
+
+<para>Glossary entries (and divisions, if appropriate) in the glossary will
+occur in precisely the order they occur in your database.</para>
+
+</refsection>
+
+<refsection><info><title>Formatting the Document</title></info>
+
+<para>Finally, when you are ready to format your document, simply set the
+<parameter>glossary.collection</parameter> parameter (in either a
+customization layer or directly through your processor's interface) to
+point to your global glossary.</para>
+
+<para>A relative path in the parameter is interpreted in one
+of two ways:</para>
+<orderedlist numeration="loweralpha">
+  <listitem>
+    <para>If the parameter <literal>glossterm.auto.link</literal>
+    is set to zero, then the path is relative to the file containing
+    the empty <tag>glossary</tag> element in the document.</para>
+  </listitem>
+  <listitem>
+    <para>If the parameter <literal>glossterm.auto.link</literal>
+    is set to non-zero, then the path is relative to the file containing
+    the first inline <tag>glossterm</tag> or
+    <tag>firstterm</tag> in the document to be linked.</para>
+  </listitem>
+</orderedlist>
+<para>Once the collection file is opened by the first instance described
+above, it stays open for the current document
+and the relative path is not reinterpreted again.</para>
+
+<para>The stylesheets will format the glossary in your document as if
+all of the entries implicilty referenced appeared there literally.</para>
+</refsection>
+
+<refsection><info><title>Limitations</title></info>
+
+<para>Glossary cross-references <emphasis>within the glossary</emphasis> are
+not supported. For example, this <emphasis>will not</emphasis> work:</para>
+
+<informalexample>
+<programlisting>&lt;glossentry&gt;
+&lt;glossterm&gt;gloss-1&lt;/glossterm&gt;
+&lt;glossdef&gt;&lt;para&gt;A description that references &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/para&gt;
+&lt;glossseealso&gt;gloss-2&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;</programlisting>
+</informalexample>
+
+<para>If you put glossary cross-references in your glossary that way,
+you'll get the cryptic error: <computeroutput>Warning:
+glossary.collection specified, but there are 0 automatic
+glossaries</computeroutput>.</para>
+
+<para>Instead, you must do two things:</para>
+
+<orderedlist>
+<listitem>
+<para>Markup your glossary using <tag>glossseealso</tag>:</para>
+
+<informalexample>
+<programlisting>&lt;glossentry&gt;
+&lt;glossterm&gt;gloss-1&lt;/glossterm&gt;
+&lt;glossdef&gt;&lt;para&gt;A description that references &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/para&gt;
+&lt;glossseealso&gt;gloss-2&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;</programlisting>
+</informalexample>
+</listitem>
+
+<listitem>
+<para>Make sure there is at least one <tag>glossterm</tag> reference to
+<glossterm>gloss-2</glossterm> <emphasis>in your document</emphasis>. The
+easiest way to do that is probably within a <tag>remark</tag> in your
+automatic glossary:</para>
+
+<informalexample>
+<programlisting>&lt;glossary role="auto"&gt;
+&lt;remark&gt;Make sure there's a reference to &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/remark&gt;
+&lt;glossentry&gt;
+&lt;glossterm&gt;Irrelevant&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;If you can see this, the document was processed incorrectly. Use
+the &lt;parameter&gt;glossary.collection&lt;/parameter&gt; parameter.&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+</listitem>
+</orderedlist>
+</refsection>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossary.sort">
+<refmeta>
+<refentrytitle>glossary.sort</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossary.sort</refname>
+<refpurpose>Sort glossentry elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossary.sort.frag">
+&lt;xsl:param name="glossary.sort" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then the glossentry elements within a
+glossary, glossdiv, or glosslist are sorted on the glossterm, using
+the current lang setting.  If zero (the default), then
+glossentry elements are not sorted and are presented
+in document order.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossentry.show.acronym">
+<refmeta>
+<refentrytitle>glossentry.show.acronym</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">primary</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossentry.show.acronym</refname>
+<refpurpose>Display <tag>glossentry</tag> acronyms?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossentry.show.acronym.frag">
+&lt;xsl:param name="glossentry.show.acronym"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A setting of <quote>yes</quote> means they should be displayed;
+<quote>no</quote> means they shouldn't. If <quote>primary</quote> is used,
+then they are shown as the primary text for the entry.</para>
+
+<note>
+<para>This setting controls both <tag>acronym</tag> and
+<tag>abbrev</tag> elements in the <tag>glossentry</tag>.</para>
+</note>
+
+</refsection>
+</refentry>
+
+</reference><reference id="misc" xml:base="../html/param.xml"><title>Miscellaneous</title>
+<refentry version="5.0" id="formal.procedures">
+<refmeta>
+<refentrytitle>formal.procedures</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.procedures</refname>
+<refpurpose>Selects formal or informal procedures</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="formal.procedures.frag">
+&lt;xsl:param name="formal.procedures" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Formal procedures are numbered and always have a title.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="formal.title.placement">
+<refmeta>
+<refentrytitle>formal.title.placement</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">table</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.title.placement</refname>
+<refpurpose>Specifies where formal object titles should occur</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="formal.title.placement.frag">
+&lt;xsl:param name="formal.title.placement"&gt;
+figure before
+example before
+equation before
+table before
+procedure before
+task before
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies where formal object titles should occur. For each formal object
+type (<tag>figure</tag>,
+<tag>example</tag>,
+<tag>equation</tag>,
+<tag>table</tag>, and <tag>procedure</tag>)
+you can specify either the keyword
+<quote><literal>before</literal></quote> or
+<quote><literal>after</literal></quote>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="runinhead.default.title.end.punct">
+<refmeta>
+<refentrytitle>runinhead.default.title.end.punct</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>runinhead.default.title.end.punct</refname>
+<refpurpose>Default punctuation character on a run-in-head</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="runinhead.default.title.end.punct.frag">&lt;xsl:param name="runinhead.default.title.end.punct"&gt;.&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, For a <tag>formalpara</tag>, use the specified
+string as the separator between the title and following text. The period is the default value.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="runinhead.title.end.punct">
+<refmeta>
+<refentrytitle>runinhead.title.end.punct</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>runinhead.title.end.punct</refname>
+<refpurpose>Characters that count as punctuation on a run-in-head</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="runinhead.title.end.punct.frag">
+&lt;xsl:param name="runinhead.title.end.punct"&gt;.!?:&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specify which characters are to be counted as punctuation. These
+characters are checked for a match with the last character of the
+title. If no match is found, the
+<parameter>runinhead.default.title.end.punct</parameter> contents are
+inserted. This is to avoid duplicated punctuation in the output.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="show.comments">
+<refmeta>
+<refentrytitle>show.comments</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>show.comments</refname>
+<refpurpose>Display <tag>remark</tag> elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="show.comments.frag">
+&lt;xsl:param name="show.comments" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, comments will be displayed, otherwise they
+are suppressed.  Comments here refers to the <tag>remark</tag> element
+(which was called <literal>comment</literal> prior to DocBook
+4.0), not XML comments (&lt;-- like this --&gt;) which are
+unavailable.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="show.revisionflag">
+<refmeta>
+<refentrytitle>show.revisionflag</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>show.revisionflag</refname>
+<refpurpose>Enable decoration of elements that have a revisionflag</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="show.revisionflag.frag">
+&lt;xsl:param name="show.revisionflag" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If <parameter>show.revisionflag</parameter> is turned on, then the stylesheets
+may produce additional markup designed to allow a CSS stylesheet to
+highlight elements that have specific revisionflag settings.</para>
+
+<para>The markup inserted will be usually be either a &lt;span&gt; or
+&lt;div&gt; with an appropriate <literal>class</literal>
+attribute. (The value of the class attribute will be the same as the
+value of the revisionflag attribute). In some contexts, for example
+tables, where extra markup would be structurally illegal, the class
+attribute will be added to the appropriate container element.</para>
+
+<para>In general, the stylesheets only test for revisionflag in contexts
+where an importing stylesheet would have to redefine whole templates.
+Most of the revisionflag processing is expected to be done by another
+stylesheet, for example <filename>changebars.xsl</filename>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="shade.verbatim">
+<refmeta>
+<refentrytitle>shade.verbatim</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>shade.verbatim</refname>
+<refpurpose>Should verbatim environments be shaded?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="shade.verbatim.frag">&lt;xsl:param name="shade.verbatim" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In the FO stylesheet, if this parameter is non-zero then the
+<property>shade.verbatim.style</property> properties will be applied
+to verbatim environments.</para>
+
+<para>In the HTML stylesheet, this parameter is now deprecated. Use
+CSS instead.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="shade.verbatim.style">
+<refmeta>
+<refentrytitle>shade.verbatim.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>shade.verbatim.style</refname>
+<refpurpose>Properties that specify the style of shaded verbatim listings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="shade.verbatim.style.frag">
+&lt;xsl:attribute-set name="shade.verbatim.style"&gt;
+  &lt;xsl:attribute name="border"&gt;0&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="bgcolor"&gt;#E0E0E0&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties that specify the style of shaded verbatim listings. The
+parameters specified (the border and background color) are added to
+the styling of the xsl-fo output. A border might be specified as "thin
+black solid" for example. See <link xlink:href="http://www.w3.org/TR/2004/WD-xsl11-20041216/#border">xsl-fo</link></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="punct.honorific">
+<refmeta>
+<refentrytitle>punct.honorific</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>punct.honorific</refname>
+<refpurpose>Punctuation after an honorific in a personal name.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="punct.honorific.frag">
+&lt;xsl:param name="punct.honorific"&gt;.&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the punctuation that should be added after an
+honorific in a personal name.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="tex.math.in.alt">
+<refmeta>
+<refentrytitle>tex.math.in.alt</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">plain</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">latex</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tex.math.in.alt</refname>
+<refpurpose>TeX notation used for equations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="tex.math.in.alt.frag">
+&lt;xsl:param name="tex.math.in.alt"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want type math directly in TeX notation in equations,
+this parameter specifies notation used. Currently are supported two
+values -- <literal>plain</literal> and <literal>latex</literal>. Empty
+value means that you are not using TeX math at all.</para>
+
+<para>Preferred way for including TeX alternative of math is inside of
+<tag>textobject</tag> element. Eg.:</para>
+
+<programlisting>&lt;inlineequation&gt;
+&lt;inlinemediaobject&gt;
+&lt;imageobject&gt;
+&lt;imagedata fileref="eq1.gif"/&gt;
+&lt;/imageobject&gt;
+&lt;textobject&gt;&lt;phrase&gt;E=mc squared&lt;/phrase&gt;&lt;/textobject&gt;
+&lt;textobject role="tex"&gt;&lt;phrase&gt;E=mc^2&lt;/phrase&gt;&lt;/textobject&gt;
+&lt;/inlinemediaobject&gt;
+&lt;/inlineequation&gt;</programlisting>
+
+<para>If you are using <tag>graphic</tag> element, you can
+store TeX inside <tag>alt</tag> element:</para>
+
+<programlisting>&lt;inlineequation&gt;
+&lt;alt role="tex"&gt;a^2+b^2=c^2&lt;/alt&gt;
+&lt;graphic fileref="a2b2c2.gif"/&gt;  
+&lt;/inlineequation&gt;</programlisting>
+
+<para>If you want use this feature, you should process your FO with
+PassiveTeX, which only supports TeX math notation. When calling
+stylsheet, don't forget to specify also
+passivetex.extensions=1.</para>
+
+<para>If you want equations in HTML, just process generated file
+<filename>tex-math-equations.tex</filename> by TeX or LaTeX. Then run
+dvi2bitmap program on result DVI file. You will get images for
+equations in your document.</para>
+
+<warning>
+  <para>This feature is useful for print/PDF output only if you
+    use the obsolete and now unsupported PassiveTeX XSL-FO
+    engine.</para>
+</warning>
+
+</refsection>
+
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>tex.math.delims</parameter>,
+    <parameter>passivetex.extensions</parameter>,
+    <parameter>tex.math.file</parameter></para>
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" id="tex.math.file">
+<refmeta>
+<refentrytitle>tex.math.file</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tex.math.file</refname>
+<refpurpose>Name of temporary file for generating images from equations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="tex.math.file.frag">
+&lt;xsl:param name="tex.math.file"&gt;tex-math-equations.tex&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Name of auxiliary file for TeX equations. This file can be
+processed by dvi2bitmap to get bitmap versions of equations for HTML
+output.</para>
+
+</refsection>
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>tex.math.in.alt</parameter>,
+    <parameter>tex.math.delims</parameter>,
+  </para>
+</refsection>
+<refsection><info><title>More information</title></info>
+  <para>For how-to documentation on embedding TeX equations and
+    generating output from them, see
+    <link role="tcg" xlink:href="TexMath.html">DBTeXMath</link>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="tex.math.delims">
+<refmeta>
+<refentrytitle>tex.math.delims</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tex.math.delims</refname>
+<refpurpose>Should equations output for processing by TeX be
+surrounded by math mode delimiters?</refpurpose>
+</refnamediv> 
+
+<refsynopsisdiv>
+<programlisting id="tex.math.delims.frag">
+&lt;xsl:param name="tex.math.delims" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>For compatibility with DSSSL based DBTeXMath from Allin Cottrell
+you should set this parameter to 0.</para>
+
+<warning>
+  <para>This feature is useful for print/PDF output only if you
+  use the obsolete and now unsupported PassiveTeX XSL-FO
+  engine.</para>
+</warning>
+
+</refsection>
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>tex.math.in.alt</parameter>,
+    <parameter>passivetex.extensions</parameter></para>
+</refsection>
+
+<refsection><info><title>See Also</title></info>
+  <para>You can also use the <tag class="xmlpi">dbtex delims</tag> processing
+    instruction to control whether delimiters are output.</para>
+</refsection>
+
+
+</refentry>
+
+<refentry version="5.0" id="pixels.per.inch">
+<refmeta>
+<refentrytitle>pixels.per.inch</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>pixels.per.inch</refname>
+<refpurpose>How many pixels are there per inch?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="pixels.per.inch.frag">
+&lt;xsl:param name="pixels.per.inch"&gt;90&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When lengths are converted to pixels, this value is used to
+determine the size of a pixel. The default value is taken from the
+<link xlink:href="http://www.w3.org/TR/2004/WD-xsl11-20041216/">XSL
+Recommendation</link>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="points.per.em">
+<refmeta>
+<refentrytitle>points.per.em</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">number</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>points.per.em</refname>
+<refpurpose>Specify the nominal size of an em-space in points</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="points.per.em.frag">
+&lt;xsl:param name="points.per.em"&gt;10&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The fixed value used for calculations based upon the size of a
+character. The assumption made is that ten point font is in use. This
+assumption may not be valid.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="use.svg">
+<refmeta>
+<refentrytitle>use.svg</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.svg</refname>
+<refpurpose>Allow SVG in the result tree?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="use.svg.frag">
+&lt;xsl:param name="use.svg" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, SVG will be considered an acceptable image format. SVG
+is passed through to the result tree, so correct rendering of the resulting
+diagram depends on the formatter (FO processor or web browser) that is used
+to process the output from the stylesheet.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="menuchoice.separator">
+<refmeta>
+<refentrytitle>menuchoice.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>menuchoice.separator</refname>
+<refpurpose>Separator between items of a <tag>menuchoice</tag>
+other than <tag>guimenuitem</tag> and
+<tag>guisubmenu</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="menuchoice.separator.frag">
+&lt;xsl:param name="menuchoice.separator"&gt;+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator used to connect items of a <tag>menuchoice</tag> other
+than <tag>guimenuitem</tag> and <tag>guisubmenu</tag>. The latter
+elements are linked with <parameter>menuchoice.menu.separator</parameter>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="menuchoice.menu.separator">
+<refmeta>
+<refentrytitle>menuchoice.menu.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>menuchoice.menu.separator</refname>
+<refpurpose>Separator between items of a <tag>menuchoice</tag>
+with <tag>guimenuitem</tag> or
+<tag>guisubmenu</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="menuchoice.menu.separator.frag">
+&lt;xsl:param name="menuchoice.menu.separator"&gt; &#8594; &lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator used to connect items of a <tag>menuchoice</tag> with
+<tag>guimenuitem</tag> or <tag>guisubmenu</tag>. Other elements
+are linked with <parameter>menuchoice.separator</parameter>.
+</para>
+<para>The default value is &amp;#x2192;, which is the
+&amp;rarr; (right arrow) character entity.  
+The current FOP (0.20.5) requires setting the font-family
+explicitly.
+</para>
+<para>The default value also includes spaces around the arrow,
+which will allow a line to break.  Replace the spaces with
+&amp;#xA0; (nonbreaking space) if you don't want those
+spaces to break.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="default.float.class">
+<refmeta>
+<refentrytitle>default.float.class</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.float.class</refname>
+<refpurpose>Specifies the default float class</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="default.float.class.frag">
+&lt;xsl:param name="default.float.class"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="contains($stylesheet.result.type,'html')"&gt;left&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;before&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the direction in which a float should be placed. for
+xsl-fo this is before, for html it is left. For Western texts, the
+before direction is the top of the page.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footnote.number.format">
+<refmeta>
+<refentrytitle>footnote.number.format</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footnote.number.format</refname>
+<refpurpose>Identifies the format used for footnote numbers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footnote.number.format.frag">
+&lt;xsl:param name="footnote.number.format"&gt;1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>footnote.number.format</parameter> specifies the format
+to use for footnote numeration (1, i, I, a, or A).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.footnote.number.format">
+<refmeta>
+<refentrytitle>table.footnote.number.format</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.footnote.number.format</refname>
+<refpurpose>Identifies the format used for footnote numbers in tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.footnote.number.format.frag">
+&lt;xsl:param name="table.footnote.number.format"&gt;a&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>table.footnote.number.format</parameter> specifies the format
+to use for footnote numeration (1, i, I, a, or A) in tables.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footnote.number.symbols">
+<refmeta>
+<refentrytitle>footnote.number.symbols</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype"/>
+</refmeta>
+<refnamediv>
+<refname>footnote.number.symbols</refname>
+<refpurpose>Special characters to use as footnote markers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footnote.number.symbols.frag">
+&lt;xsl:param name="footnote.number.symbols"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>footnote.number.symbols</parameter> is not the empty string,
+footnotes will use the characters it contains as footnote symbols. For example,
+<quote>*&amp;#x2020;&amp;#x2021;&amp;#x25CA;&amp;#x2720;</quote> will identify
+footnotes with <quote>*</quote>, <quote>&#8224;</quote>, <quote>&#8225;</quote>,
+<quote>&#9674;</quote>, and <quote>&#10016;</quote>. If there are more footnotes
+than symbols, the stylesheets will fall back to numbered footnotes using
+<parameter>footnote.number.format</parameter>.</para>
+
+<para>The use of symbols for footnotes depends on the ability of your
+processor (or browser) to render the symbols you select. Not all systems are
+capable of displaying the full range of Unicode characters. If the quoted characters
+in the preceding paragraph are not displayed properly, that's a good indicator
+that you may have trouble using those symbols for footnotes.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.footnote.number.symbols">
+<refmeta>
+<refentrytitle>table.footnote.number.symbols</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.footnote.number.symbols</refname>
+<refpurpose>Special characters to use a footnote markers in tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.footnote.number.symbols.frag">
+&lt;xsl:param name="table.footnote.number.symbols"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>table.footnote.number.symbols</parameter> is not the empty string,
+table footnotes will use the characters it contains as footnote symbols. For example,
+<quote>*&amp;#x2020;&amp;#x2021;&amp;#x25CA;&amp;#x2720;</quote> will identify
+footnotes with <quote>*</quote>, <quote>&#8224;</quote>, <quote>&#8225;</quote>,
+<quote>&#9674;</quote>, and <quote>&#10016;</quote>. If there are more footnotes
+than symbols, the stylesheets will fall back to numbered footnotes using
+<parameter>table.footnote.number.format</parameter>.</para>
+
+<para>The use of symbols for footnotes depends on the ability of your
+processor (or browser) to render the symbols you select. Not all systems are
+capable of displaying the full range of Unicode characters. If the quoted characters
+in the preceding paragraph are not displayed properly, that's a good indicator
+that you may have trouble using those symbols for footnotes.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="highlight.source">
+<refmeta>
+<refentrytitle>highlight.source</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.source</refname>
+<refpurpose>Should the content of <tag>programlisting</tag>
+be syntactically highlighted?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="highlight.source.frag">
+&lt;xsl:param name="highlight.source" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When this parameter is non-zero, the stylesheets will try to do syntax highlighting of the 
+content of <tag>programlisting</tag> elements. You specify the language for each programlisting 
+by using the <tag class="attribute">language</tag> attribute. The <parameter>highlight.default.language</parameter> 
+parameter can be used to specify the language for programlistings without a <tag class="attribute">language</tag> 
+attribute. Syntax highlighting also works for <tag>screen</tag> and <tag>synopsis</tag> elements.</para>
+
+<para>The actual highlighting work is done by the XSLTHL extension module. This is an external Java library that has to be 
+downloaded separately (see below).</para>
+
+<itemizedlist>
+<para>In order to use this extension, you must</para> 
+
+<listitem><para>add <filename>xslthl-2.x.x.jar</filename> to your Java classpath. The latest version is available
+from <link xlink:href="http://sourceforge.net/projects/xslthl">the XSLT syntax highlighting project</link> 
+at SourceForge.</para>
+</listitem>
+<listitem>
+<para>use a customization layer in which you import one of the following stylesheet modules: 
+<itemizedlist>
+  <listitem>
+    <para><filename>html/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>xhtml/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>xhtml-1_1/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>fo/highlight.xsl</filename>
+    </para>
+</listitem>
+</itemizedlist>
+</para>
+</listitem>
+<listitem><para>let either the <literal>xslthl.config</literal> Java system property or the
+<parameter>highlight.xslthl.config</parameter> parameter point to the configuration file for syntax 
+highlighting (using URL syntax). DocBook XSL comes with a ready-to-use configuration file, 
+<filename>highlighting/xslthl-config.xml</filename>.</para>
+</listitem>
+</itemizedlist>
+
+<para>The extension works with Saxon 6.5.x and Xalan-J. (Saxon 8.5 or later is also supported, but since it is 
+an XSLT 2.0 processor it is not guaranteed to work with DocBook XSL in all circumstances.)</para>
+
+<para>The following is an example of a Saxon 6 command adapted for syntax highlighting, to be used on Windows:</para>
+
+<informalexample>
+<para><command>java -cp c:/Java/saxon.jar;c:/Java/xslthl-2.0.1.jar 
+-Dxslthl.config=file:///c:/docbook-xsl/highlighting/xslthl-config.xml com.icl.saxon.StyleSheet 
+-o test.html test.xml myhtml.xsl</command></para>
+</informalexample>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="highlight.xslthl.config">
+<refmeta>
+<refentrytitle>highlight.xslthl.config</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.xslthl.config</refname>
+<refpurpose>Location of XSLTHL configuration file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="highlight.xslthl.config.frag">
+&lt;xsl:param name="highlight.xslthl.config"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This location has precedence over the corresponding Java property.</para>
+
+<para>Please note that usually you have to specify location as URL not
+just as a simple path on the local
+filesystem. E.g. <filename>file:///home/user/xslthl/my-xslthl-config.xml</filename>.</para>
+
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="highlight.default.language">
+<refmeta>
+<refentrytitle>highlight.default.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.default.language</refname>
+<refpurpose>Default language of programlisting</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="highlight.default.language.frag">
+&lt;xsl:param name="highlight.default.language"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This language is used when there is no language attribute on programlisting.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="email.delimiters.enabled">
+<refmeta>
+<refentrytitle>email.delimiters.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>email.delimiters.enabled</refname>
+<refpurpose>Generate delimiters around email addresses?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="email.delimiters.enabled.frag">
+&lt;xsl:param name="email.delimiters.enabled" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, delimiters
+
+<footnote><para>For delimiters, the
+stylesheets are currently hard-coded to output angle
+brackets.</para></footnote> 
+
+are generated around e-mail addresses
+(the output of the <tag>email</tag> element).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="exsl.node.set.available">
+<refmeta>
+<refentrytitle>exsl.node.set.available</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>exsl.node.set.available</refname>
+<refpurpose>Is the test function-available('exsl:node-set') true?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="exsl.node.set.available.frag">&lt;xsl:param name="exsl.node.set.available"&gt; 
+  &lt;xsl:choose&gt;
+    &lt;xsl:when exsl:foo="" test="function-available('exsl:node-set') or                        contains(system-property('xsl:vendor'),                          'Apache Software Foundation')"&gt;1&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;0&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+then the exsl:node-set() function is available to be used in
+the stylesheet.
+If zero, then the function is not available.
+This param automatically detects the presence of
+the function and does not normally need to be set manually.</para>
+
+<para>This param was created to handle a long-standing
+bug in the Xalan processor that fails to detect the
+function even though it is available.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="annos" xml:base="../html/param.xml"><title>Annotations</title>
+<refentry version="5.0" id="annotation.support">
+<refmeta>
+<refentrytitle>annotation.support</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.support</refname>
+<refpurpose>Enable annotations?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="annotation.support.frag">
+&lt;xsl:param name="annotation.support" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the stylesheets will attempt to support annotation
+elements in HTML by including some JavaScript (see
+<parameter>annotation.js</parameter>).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="annotation.js">
+<refmeta>
+<refentrytitle>annotation.js</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.js</refname>
+<refpurpose>URIs identifying JavaScript files with support for annotation popups</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="annotation.js.frag">
+
+&lt;xsl:param name="annotation.js"&gt;
+&lt;xsl:text&gt;http://docbook.sourceforge.net/release/script/AnchorPosition.js http://docbook.sourceforge.net/release/script/PopupWindow.js&lt;/xsl:text&gt;&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <property>annotation.support</property> is enabled and the
+document contains <tag>annotation</tag>s, then the URIs listed
+in this parameter will be included. These JavaScript files are required
+for popup annotation support.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="annotation.css">
+<refmeta>
+<refentrytitle>annotation.css</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.css</refname>
+<refpurpose>CSS rules for annotations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="annotation.css.frag">
+&lt;xsl:param name="annotation.css"&gt;
+/* ======================================================================
+   Annotations
+*/
+
+div.annotation-list  { visibility: hidden;
+                     }
+
+div.annotation-nocss { position: absolute;
+                       visibility: hidden;
+                     }
+
+div.annotation-popup { position: absolute;
+                       z-index: 4;
+                       visibility: hidden;
+                       padding: 0px;
+                       margin: 2px;
+                       border-style: solid;
+                       border-width: 1px;
+                       width: 200px;
+		       background-color: white;
+                     }
+
+div.annotation-title { padding: 1px;
+                       font-weight: bold;
+                       border-bottom-style: solid;
+                       border-bottom-width: 1px;
+		       color: white;
+		       background-color: black;
+                     }
+
+div.annotation-body  { padding: 2px;
+                     }
+
+div.annotation-body p { margin-top: 0px;
+                        padding-top: 0px;
+                      }
+
+div.annotation-close { position: absolute;
+                       top: 2px;
+                       right: 2px;
+                     }
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>annotation.support</parameter> is enabled and the
+document contains <tag>annotation</tag>s, then the CSS in this
+parameter will be included in the document.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="annotation.graphic.open">
+<refmeta>
+<refentrytitle>annotation.graphic.open</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.graphic.open</refname>
+<refpurpose>Image for identifying a link that opens an annotation popup</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="annotation.graphic.open.frag">
+&lt;xsl:param name="annotation.graphic.open"&gt;http://docbook.sourceforge.net/release/images/annot-open.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This image is used inline to identify the location of
+annotations. It may be replaced by a user provided graphic. The size should be approximately 10x10 pixels.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="annotation.graphic.close">
+<refmeta>
+<refentrytitle>annotation.graphic.close</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.graphic.close</refname>
+<refpurpose>Image for identifying a link that closes an annotation popup</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="annotation.graphic.close.frag">
+&lt;xsl:param name="annotation.graphic.close"&gt;
+http://docbook.sourceforge.net/release/images/annot-close.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This image is used on popup annotations as the &#8220;x&#8221; that the
+user can click to dismiss the popup.</para>
+<para>This image is used on popup annotations as the &#8220;x&#8221; that the user can
+click to dismiss the popup. It may be replaced by a user provided graphic. The size should be approximately 10x10 pixels.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="graphics" xml:base="../html/param.xml"><title>Graphics</title>
+<refentry version="5.0" id="img.src.path">
+<refmeta>
+<refentrytitle>img.src.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>img.src.path</refname>
+<refpurpose>Path to HTML/FO image files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="img.src.path.frag">&lt;xsl:param name="img.src.path"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Add a path prefix to the value of the <tag class="attribute">fileref</tag> 
+attribute of <tag>graphic</tag>, <tag>inlinegraphic</tag>, and <tag>imagedata</tag> elements. The resulting 
+compound path is used in the output as the value of the <tag class="attribute">src</tag> 
+attribute of <tag class="element">img</tag> (HTML) or <tag class="element">external-graphic</tag> (FO).
+</para>
+
+<para>
+The path given by <literal>img.src.path</literal> could be relative to the directory where the HTML/FO
+files are created, or it could be an absolute URI.
+The default value is empty.
+Be sure to include a trailing slash if needed.
+</para>
+
+<para>This prefix is not applied to any filerefs that start
+with "/" or contain "//:".
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="keep.relative.image.uris">
+<refmeta>
+<refentrytitle>keep.relative.image.uris</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>keep.relative.image.uris</refname>
+<refpurpose>Should image URIs be resolved against xml:base?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="keep.relative.image.uris.frag">
+&lt;xsl:param name="keep.relative.image.uris" select="1"&gt;&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, relative URIs (in, for example
+<literal>fileref</literal> attributes) will be used in the generated
+output. Otherwise, the URIs will be made absolute with respect to the
+base URI.</para>
+
+<para>Note that the stylesheets calculate (and use) the absolute form
+for some purposes, this only applies to the resulting output.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="graphic.default.extension">
+<refmeta>
+<refentrytitle>graphic.default.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphic.default.extension</refname>
+<refpurpose>Default extension for graphic filenames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="graphic.default.extension.frag">&lt;xsl:param name="graphic.default.extension"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If a <tag>graphic</tag> or <tag>mediaobject</tag>
+includes a reference to a filename that does not include an extension,
+and the <tag class="attribute">format</tag> attribute is
+<emphasis>unspecified</emphasis>, the default extension will be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="default.image.width">
+<refmeta>
+<refentrytitle>default.image.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.image.width</refname>
+<refpurpose>The default width of images</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="default.image.width.frag">
+&lt;xsl:param name="default.image.width"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If specified, this value will be used for the
+<tag class="attribute">width</tag> attribute on images that do not specify any 
+<emphasis xlink:title="DocBook 5: The Definitive Guide" xlink:href="http://docbook.org/tdg5/en/html/imagedata.html#viewport.area">viewport dimensions</emphasis>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="nominal.image.width">
+<refmeta>
+<refentrytitle>nominal.image.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nominal.image.width</refname>
+<refpurpose>The nominal image width</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="nominal.image.width.frag">
+&lt;xsl:param name="nominal.image.width" select="6 * $pixels.per.inch"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Graphic widths expressed as a percentage are problematic. In the
+following discussion, we speak of width and contentwidth, but
+the same issues apply to depth and contentdepth.</para>
+
+<para>A width of 50% means "half of the available space for the image."
+That's fine. But note that in HTML, this is a dynamic property and
+the image size will vary if the browser window is resized.</para>
+
+<para>A contentwidth of 50% means "half of the actual image width".
+But what does that mean if the stylesheets cannot assess the image's
+actual size? Treating this as a width of 50% is one possibility, but
+it produces behavior (dynamic scaling) that seems entirely out of
+character with the meaning.</para>
+
+<para>Instead, the stylesheets define a
+<parameter>nominal.image.width</parameter> and convert percentages to
+actual values based on that nominal size.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="nominal.image.depth">
+<refmeta>
+<refentrytitle>nominal.image.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nominal.image.depth</refname>
+<refpurpose>Nominal image depth</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="nominal.image.depth.frag">
+&lt;xsl:param name="nominal.image.depth" select="4 * $pixels.per.inch"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>See <parameter>nominal.image.width</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="use.embed.for.svg">
+<refmeta>
+<refentrytitle>use.embed.for.svg</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.embed.for.svg</refname>
+<refpurpose>Use HTML <tag>embed</tag> for SVG?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="use.embed.for.svg.frag">
+&lt;xsl:param name="use.embed.for.svg" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, an <tag>embed</tag> element will be created for
+SVG figures. An <tag>object</tag> is <emphasis>always</emphasis> created,
+this parameter merely controls whether or not an additional <tag>embed</tag>
+is generated inside the <tag>object</tag>.</para>
+
+<para>On the plus side, this may be more portable among browsers and plug-ins.
+On the minus side, it isn't valid HTML.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="make.graphic.viewport">
+<refmeta>
+<refentrytitle>make.graphic.viewport</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.graphic.viewport</refname>
+<refpurpose>Use tables in HTML to make viewports for graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="make.graphic.viewport.frag">
+&lt;xsl:param name="make.graphic.viewport" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The HTML <tag>img</tag> element only supports the notion
+of content-area scaling; it doesn't support the distinction between a
+content-area and a viewport-area, so we have to make some compromises.</para>
+
+<para>If <parameter>make.graphic.viewport</parameter> is non-zero, a table
+will be used to frame the image. This creates an effective viewport-area.
+</para>
+
+<para>Tables and alignment don't work together, so this parameter is ignored
+if alignment is specified on an image.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="preferred.mediaobject.role">
+<refmeta>
+<refentrytitle>preferred.mediaobject.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>preferred.mediaobject.role</refname>
+<refpurpose>Select which mediaobject to use based on
+this value of an object's <tag class="attribute">role</tag> attribute.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="preferred.mediaobject.role.frag">
+&lt;xsl:param name="preferred.mediaobject.role"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A mediaobject may contain several objects such as imageobjects.
+If the parameter <parameter>use.role.for.mediaobject</parameter> is
+non-zero, then the <literal>role</literal> attribute on
+<tag>imageobject</tag>s and other objects within a
+<tag>mediaobject</tag> container will be used to select which object
+will be used.  If one of the objects has a role value that matches the
+<parameter>preferred.mediaobject.role</parameter> parameter, then it
+has first priority for selection.  If more than one has such a role
+value, the first one is used.
+</para>
+<para>
+See the <parameter>use.role.for.mediaobject</parameter> parameter
+for the sequence of selection.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="use.role.for.mediaobject">
+<refmeta>
+<refentrytitle>use.role.for.mediaobject</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.role.for.mediaobject</refname>
+<refpurpose>Use <tag class="attribute">role</tag> attribute 
+value for selecting which of several objects within a mediaobject to use.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="use.role.for.mediaobject.frag">
+&lt;xsl:param name="use.role.for.mediaobject" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the <tag class="attribute">role</tag> attribute on
+<tag>imageobject</tag>s or other objects within a <tag>mediaobject</tag> container will be used to select which object will be
+used.
+</para>
+<para>
+The order of selection when then parameter is non-zero is:
+</para>
+<orderedlist>
+<listitem>
+    <para>If the stylesheet parameter <parameter>preferred.mediaobject.role</parameter> has a value, then the object whose role equals that value is selected.</para>
+</listitem>
+<listitem>
+<para>Else if an object's role attribute has a value of
+<literal>html</literal> for HTML processing or
+<literal>fo</literal> for FO output, then the first
+of such objects is selected.
+</para>
+</listitem>
+<listitem>
+<para>Else the first suitable object is selected.</para>
+</listitem>
+</orderedlist>
+<para>
+If the value of 
+<parameter>use.role.for.mediaobject</parameter>
+is zero, then role attributes are not considered
+and the first suitable object
+with or without a role value is used.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="ignore.image.scaling">
+<refmeta>
+<refentrytitle>ignore.image.scaling</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ignore.image.scaling</refname>
+<refpurpose>Tell the stylesheets to ignore the author's image scaling attributes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="ignore.image.scaling.frag">
+&lt;xsl:param name="ignore.image.scaling" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the scaling attributes on graphics and media objects are
+ignored.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="chunking" xml:base="../html/param.xml"><title>Chunking</title>
+<refentry version="5.0" id="chunker.output.cdata-section-elements">
+<refmeta>
+<refentrytitle>chunker.output.cdata-section-elements</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.cdata-section-elements</refname>
+<refpurpose>List of elements to escape with CDATA sections</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="chunker.output.cdata-section-elements.frag">
+&lt;xsl:param name="chunker.output.cdata-section-elements"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the list of elements that should be escaped
+as CDATA sections by the chunking stylesheet.  Not all processors support
+specification of this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunker.output.doctype-public">
+<refmeta>
+<refentrytitle>chunker.output.doctype-public</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.doctype-public</refname>
+<refpurpose>Public identifer to use in the document type of generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="chunker.output.doctype-public.frag">
+&lt;xsl:param name="chunker.output.doctype-public"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the public identifier that should be used by
+the chunking stylesheet in the document type declaration of chunked pages.
+Not all processors support specification of
+this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunker.output.doctype-system">
+<refmeta>
+<refentrytitle>chunker.output.doctype-system</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.doctype-system</refname>
+<refpurpose>System identifier to use for the document type in generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="chunker.output.doctype-system.frag">
+&lt;xsl:param name="chunker.output.doctype-system"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the system identifier that should be used by
+the chunking stylesheet in the document type declaration of chunked pages.
+Not all processors support specification of
+this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunker.output.encoding">
+<refmeta>
+<refentrytitle>chunker.output.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.encoding</refname>
+<refpurpose>Encoding used in generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="chunker.output.encoding.frag">
+&lt;xsl:param name="chunker.output.encoding"&gt;ISO-8859-1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the encoding to be used in files
+generated by the chunking stylesheet. Not all processors support
+specification of this parameter.
+</para>
+<para>This parameter used to be named <literal>default.encoding</literal>.</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunker.output.indent">
+<refmeta>
+<refentrytitle>chunker.output.indent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.indent</refname>
+<refpurpose>Specification of indentation on generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="chunker.output.indent.frag">
+&lt;xsl:param name="chunker.output.indent"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the value of the indent
+specification for generated pages. Not all processors support
+specification of this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunker.output.media-type">
+<refmeta>
+<refentrytitle>chunker.output.media-type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.media-type</refname>
+<refpurpose>Media type to use in generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="chunker.output.media-type.frag">
+&lt;xsl:param name="chunker.output.media-type"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the media type that should be used by
+the chunking stylesheet. Not all processors support specification of
+this parameter.
+</para>
+<para>This parameter specifies the media type that should be used by the
+chunking stylesheet. This should be one from those defined in
+<link xlink:href="http://www.ietf.org/rfc/rfc2045.txt">[RFC2045]</link>  and
+ <link xlink:href="http://www.ietf.org/rfc/rfc2046.txt">[RFC2046]</link> </para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+<para>It must be one from html, xml or text</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunker.output.method">
+<refmeta>
+<refentrytitle>chunker.output.method</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">html</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">xml</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.method</refname>
+<refpurpose>Method used in generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="chunker.output.method.frag">
+&lt;xsl:param name="chunker.output.method"&gt;html&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the output method to be used in files
+generated by the chunking stylesheet.
+</para>
+<para>This parameter used to be named <literal>output.method</literal>.</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunker.output.omit-xml-declaration">
+<refmeta>
+<refentrytitle>chunker.output.omit-xml-declaration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.omit-xml-declaration</refname>
+<refpurpose>Omit-xml-declaration for generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="chunker.output.omit-xml-declaration.frag">
+&lt;xsl:param name="chunker.output.omit-xml-declaration"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the value of the omit-xml-declaration
+specification for generated pages. Not all processors support
+specification of this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunker.output.standalone">
+<refmeta>
+<refentrytitle>chunker.output.standalone</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.standalone</refname>
+<refpurpose>Standalone declaration for generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="chunker.output.standalone.frag">
+&lt;xsl:param name="chunker.output.standalone"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the value of the standalone
+  specification for generated pages. It must be either
+  <literal>yes</literal> or <literal>no</literal>. Not all
+  processors support specification of this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="saxon.character.representation">
+<refmeta>
+<refentrytitle>saxon.character.representation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>saxon.character.representation</refname>
+<refpurpose>Saxon character representation used in generated HTML pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+  <programlisting id="saxon.character.representation.frag">&lt;xsl:param name="saxon.character.representation" select="'entity;decimal'"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter has effect only when Saxon 6 is used (version 6.4.2 or later). 
+It sets the character representation in files generated by the chunking stylesheets. 
+If you want to suppress entity references for characters with direct representations in 
+<parameter>chunker.output.encoding</parameter>, set the parameter value to <literal>native</literal>. 
+</para>
+
+<para> For more information, see <link role="tcg" xlink:href="OutputEncoding.html#SaxonCharacter">Saxon output character representation</link>.</para>
+
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" id="html.ext">
+<refmeta>
+<refentrytitle>html.ext</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.ext</refname>
+<refpurpose>Identifies the extension of generated HTML files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.ext.frag">
+&lt;xsl:param name="html.ext"&gt;.html&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The extension identified by <parameter>html.ext</parameter> will
+be used as the filename extension for chunks created by this
+stylesheet. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="use.id.as.filename">
+<refmeta>
+<refentrytitle>use.id.as.filename</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.id.as.filename</refname>
+<refpurpose>Use ID value of chunk elements as the filename?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="use.id.as.filename.frag">
+&lt;xsl:param name="use.id.as.filename" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>use.id.as.filename</parameter>
+is non-zero, the filename of chunk elements that have IDs will be
+derived from the ID value.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="html.extra.head.links">
+<refmeta>
+<refentrytitle>html.extra.head.links</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.extra.head.links</refname>
+<refpurpose>Toggle extra HTML head link information</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="html.extra.head.links.frag">
+&lt;xsl:param name="html.extra.head.links" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extra <tag>link</tag> elements will be
+generated in the <tag>head</tag> of chunked HTML files. These
+extra links point to chapters, appendixes, sections, etc. as supported
+by the <quote>Site Navigation Bar</quote> in Mozilla 1.0 (as of CR1, at least).
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="root.filename">
+<refmeta>
+<refentrytitle>root.filename</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>root.filename</refname>
+<refpurpose>Identifies the name of the root HTML file when chunking</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="root.filename.frag">
+&lt;xsl:param name="root.filename"&gt;index&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>root.filename</parameter> is the base filename for
+the chunk created for the root of each document processed.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="base.dir">
+<refmeta>
+<refentrytitle>base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>base.dir</refname>
+<refpurpose>The base directory of chunks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="base.dir.frag">
+&lt;xsl:param name="base.dir"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If specified, the <parameter>base.dir</parameter> parameter identifies
+the output directory for chunks. (If not specified, the output directory
+is system dependent.)</para>
+
+<para>Starting with version 1.77 of the stylesheets, 
+the param's value will have a trailing slash added if it does
+not already have one.</para>
+
+<caution><para>Do not use <parameter>base.dir</parameter>
+to add a filename prefix string to chunked  files. 
+Instead, use the <parameter>chunked.filename.prefix</parameter>
+parameter.</para></caution>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunked.filename.prefix">
+<refmeta>
+<refentrytitle>chunked.filename.prefix</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunked.filename.prefix</refname>
+<refpurpose>Filename prefix for chunked files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="chunked.filename.prefix.frag">
+&lt;xsl:param name="chunked.filename.prefix"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If specified, the <parameter>chunked.filename.prefix</parameter> 
+parameter specifies a prefix string to add to each generated chunk filename.
+For example:</para>
+<programlisting>&lt;xsl:param name="chunked.filename.prefix"&gt;admin-&lt;xsl:param&gt;</programlisting>
+<para>will produce chunked filenames like:</para>
+<programlisting>admin-index.html
+admin-ch01.html
+admin-ch01s01.html
+...
+</programlisting>
+
+<caution><para>Trying to use the <parameter>base.dir</parameter>
+parameter to add a string prefix (by omitting the trailing slash)
+no longer works (it never worked completely anyway). That parameter
+value should contain only a directory path, and
+now gets a trailing slash appended if it was omitted from the param.</para></caution>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.manifest">
+  <refmeta>
+    <refentrytitle>generate.manifest</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>generate.manifest</refname>
+    <refpurpose>Generate a manifest file?</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting id="generate.manifest.frag">&lt;xsl:param name="generate.manifest" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>If non-zero, a list of HTML files generated by the
+      stylesheet transformation is written to the file named by
+      the <parameter>manifest</parameter> parameter.</para>
+
+  </refsection>
+</refentry>
+
+<refentry version="5.0" id="manifest">
+  <refmeta>
+    <refentrytitle>manifest</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>manifest</refname>
+    <refpurpose>Name of manifest file</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting id="manifest.frag">
+    &lt;xsl:param name="manifest"&gt;HTML.manifest&lt;/xsl:param&gt;
+    </programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>The name of the file to which a manifest is written (if the
+      value of the <parameter>generate.manifest</parameter> parameter
+      is non-zero).</para>
+
+  </refsection>
+</refentry>
+
+<refentry version="5.0" id="manifest.in.base.dir">
+<refmeta>
+<refentrytitle>manifest.in.base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>manifest.in.base.dir</refname>
+<refpurpose>Should the manifest file be written into <parameter>base.dir</parameter>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="manifest.in.base.dir.frag">
+&lt;xsl:param name="manifest.in.base.dir" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the manifest file as well as project files for HTML Help and
+Eclipse Help are written into <parameter>base.dir</parameter> instead
+of the current directory.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunk.toc">
+<refmeta>
+<refentrytitle>chunk.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.toc</refname>
+<refpurpose>An explicit TOC to be used for chunking</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="chunk.toc.frag">
+&lt;xsl:param name="chunk.toc"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>chunk.toc</parameter> identifies an explicit TOC that
+will be used for chunking. This parameter is only used by the
+<filename>chunktoc.xsl</filename> stylesheet (and customization layers built
+from it).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunk.tocs.and.lots">
+<refmeta>
+<refentrytitle>chunk.tocs.and.lots</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.tocs.and.lots</refname>
+<refpurpose>Should ToC and LoTs be in separate chunks?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="chunk.tocs.and.lots.frag">
+&lt;xsl:param name="chunk.tocs.and.lots" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, ToC and LoT (List of Examples, List of Figures, etc.)
+will be put in a separate chunk. At the moment, this chunk is not in the
+normal forward/backward navigation list. Instead, a new link is added to the
+navigation footer.</para>
+
+<para>This feature is still somewhat experimental. Feedback welcome.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunk.separate.lots">
+<refmeta>
+<refentrytitle>chunk.separate.lots</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.separate.lots</refname>
+<refpurpose>Should each LoT be in its own separate chunk?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="chunk.separate.lots.frag">
+&lt;xsl:param name="chunk.separate.lots" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, each of the ToC and LoTs
+(List of Examples, List of Figures, etc.)
+will be put in its own separate chunk.
+The title page includes generated links to each of the separate files.
+</para>
+<para>
+This feature depends on the
+<parameter>chunk.tocs.and.lots</parameter>
+parameter also being non-zero. 
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunk.tocs.and.lots.has.title">
+<refmeta>
+<refentrytitle>chunk.tocs.and.lots.has.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.tocs.and.lots.has.title</refname>
+<refpurpose>Should ToC and LoTs in a separate chunks have title?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="chunk.tocs.and.lots.has.title.frag">
+&lt;xsl:param name="chunk.tocs.and.lots.has.title" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero title of document is shown before ToC/LoT in
+separate chunk.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunk.section.depth">
+<refmeta>
+<refentrytitle>chunk.section.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.section.depth</refname>
+<refpurpose>Depth to which sections should be chunked</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="chunk.section.depth.frag">
+&lt;xsl:param name="chunk.section.depth" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter sets the depth of section chunking.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunk.first.sections">
+<refmeta>
+<refentrytitle>chunk.first.sections</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.first.sections</refname>
+<refpurpose>Chunk the first top-level section?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="chunk.first.sections.frag">
+&lt;xsl:param name="chunk.first.sections" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a chunk will be created for the first top-level
+<tag>sect1</tag> or <tag>section</tag> elements in
+each component. Otherwise, that section will be part of the chunk for
+its parent.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunk.quietly">
+<refmeta>
+<refentrytitle>chunk.quietly</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.quietly</refname>
+<refpurpose>Omit the chunked filename messages.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="chunk.quietly.frag">
+&lt;xsl:param name="chunk.quietly" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), the XSL processor emits a message naming
+each separate chunk filename as it is being output.
+If nonzero, then the messages are suppressed.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunk.append">
+<refmeta>
+<refentrytitle>chunk.append</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.append</refname>
+<refpurpose>Specifies content to append to chunked HTML output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="chunk.append.frag">&lt;xsl:param name="chunk.append"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies content to append to the end of HTML files output by
+the <filename>html/chunk.xsl</filename> stylesheet, after the closing
+<code>&lt;html&gt;</code> tag. You probably don&#8217;t want to set any value
+for this parameter; but if you do, the only value it should ever be
+set to is a newline character: <code>&amp;#x0a;</code> or
+<code>&amp;#10;</code></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="navig.graphics">
+<refmeta>
+<refentrytitle>navig.graphics</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navig.graphics</refname>
+<refpurpose>Use graphics in navigational headers and footers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="navig.graphics.frag">
+&lt;xsl:param name="navig.graphics" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the navigational headers and footers in chunked
+HTML are presented in an alternate style that uses graphical icons for
+Next, Previous, Up, and Home.  Default graphics are provided in the
+distribution. If zero, text is used instead of graphics.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="navig.graphics.extension">
+<refmeta>
+<refentrytitle>navig.graphics.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navig.graphics.extension</refname>
+<refpurpose>Extension for navigational graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="navig.graphics.extension.frag">
+&lt;xsl:param name="navig.graphics.extension"&gt;.gif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the filename extension to use on navigational graphics used
+in the headers and footers of chunked HTML.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="navig.graphics.path">
+<refmeta>
+<refentrytitle>navig.graphics.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navig.graphics.path</refname>
+<refpurpose>Path to navigational graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="navig.graphics.path.frag">
+&lt;xsl:param name="navig.graphics.path"&gt;images/&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the path, probably relative to the directory where the HTML
+files are created, to the navigational graphics used in the
+headers and footers of chunked HTML.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="navig.showtitles">
+<refmeta>
+<refentrytitle>navig.showtitles</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navig.showtitles</refname>
+<refpurpose>Display titles in HTML headers and footers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="navig.showtitles.frag">&lt;xsl:param name="navig.showtitles"&gt;1&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+the headers and footers of chunked HTML
+display the titles of the next and previous chunks,
+along with the words 'Next' and 'Previous' (or the
+equivalent graphical icons if navig.graphics is true).
+If false (zero), then only the words 'Next' and 'Previous'
+(or the icons) are displayed.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="profiling" xml:base="../html/param.xml"><title>Profiling</title>
+<partintro id="partintro">
+<para>The following parameters can be used for attribute-based
+profiling of your document. For more information about profiling, see 
+<link role="tcg" xlink:href="Profiling.html">Profiling (conditional text)</link>.</para>
+</partintro>
+<refentry version="5.0" id="profile.arch">
+<refmeta>
+<refentrytitle>profile.arch</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.arch</refname>
+<refpurpose>Target profile for <tag class="attribute">arch</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.arch.frag">
+&lt;xsl:param name="profile.arch"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.audience">
+<refmeta>
+<refentrytitle>profile.audience</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.audience</refname>
+<refpurpose>Target profile for <tag class="attribute">audience</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.audience.frag">
+&lt;xsl:param name="profile.audience"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.condition">
+<refmeta>
+<refentrytitle>profile.condition</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.condition</refname>
+<refpurpose>Target profile for <tag class="attribute">condition</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.condition.frag">
+&lt;xsl:param name="profile.condition"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.conformance">
+<refmeta>
+<refentrytitle>profile.conformance</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.conformance</refname>
+<refpurpose>Target profile for <tag class="attribute">conformance</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.conformance.frag">
+&lt;xsl:param name="profile.conformance"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.lang">
+<refmeta>
+<refentrytitle>profile.lang</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.lang</refname>
+<refpurpose>Target profile for <tag class="attribute">lang</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.lang.frag">
+&lt;xsl:param name="profile.lang"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.os">
+<refmeta>
+<refentrytitle>profile.os</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.os</refname>
+<refpurpose>Target profile for <tag class="attribute">os</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.os.frag">
+&lt;xsl:param name="profile.os"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.revision">
+<refmeta>
+<refentrytitle>profile.revision</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.revision</refname>
+<refpurpose>Target profile for <tag class="attribute">revision</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.revision.frag">
+&lt;xsl:param name="profile.revision"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.revisionflag">
+<refmeta>
+<refentrytitle>profile.revisionflag</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.revisionflag</refname>
+<refpurpose>Target profile for <tag class="attribute">revisionflag</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.revisionflag.frag">
+&lt;xsl:param name="profile.revisionflag"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.role">
+<refmeta>
+<refentrytitle>profile.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.role</refname>
+<refpurpose>Target profile for <tag class="attribute">role</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.role.frag">
+&lt;xsl:param name="profile.role"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+<warning>
+<para>Note that <tag class="attribute">role</tag> is often
+used for other purposes than profiling. For example it is commonly
+used to get emphasize in bold font:</para>
+
+<programlisting>&lt;emphasis role="bold"&gt;very important&lt;/emphasis&gt;</programlisting>
+
+<para>If you are using <tag class="attribute">role</tag> for
+these purposes do not forget to add values like <literal>bold</literal> to
+value of this parameter. If you forgot you will get document with
+small pieces missing which are very hard to track.</para>
+
+<para>For this reason it is not recommended to use <tag class="attribute">role</tag> attribute for profiling. You should
+rather use profiling specific attributes like <tag class="attribute">userlevel</tag>, <tag class="attribute">os</tag>, <tag class="attribute">arch</tag>, <tag class="attribute">condition</tag>, etc.</para>
+</warning>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.security">
+<refmeta>
+<refentrytitle>profile.security</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.security</refname>
+<refpurpose>Target profile for <tag class="attribute">security</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.security.frag">
+&lt;xsl:param name="profile.security"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.status">
+<refmeta>
+<refentrytitle>profile.status</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.status</refname>
+<refpurpose>Target profile for <tag class="attribute">status</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.status.frag">
+&lt;xsl:param name="profile.status"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.userlevel">
+<refmeta>
+<refentrytitle>profile.userlevel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.userlevel</refname>
+<refpurpose>Target profile for <tag class="attribute">userlevel</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.userlevel.frag">
+&lt;xsl:param name="profile.userlevel"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.vendor">
+<refmeta>
+<refentrytitle>profile.vendor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.vendor</refname>
+<refpurpose>Target profile for <tag class="attribute">vendor</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.vendor.frag">
+&lt;xsl:param name="profile.vendor"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.wordsize">
+<refmeta>
+<refentrytitle>profile.wordsize</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.wordsize</refname>
+<refpurpose>Target profile for <tag class="attribute">wordsize</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.wordsize.frag">
+&lt;xsl:param name="profile.wordsize"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.attribute">
+<refmeta>
+<refentrytitle>profile.attribute</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.attribute</refname>
+<refpurpose>Name of user-specified profiling attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.attribute.frag">
+&lt;xsl:param name="profile.attribute"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter is used in conjuction with
+<parameter>profile.value</parameter>.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.value">
+<refmeta>
+<refentrytitle>profile.value</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.value</refname>
+<refpurpose>Target profile for user-specified attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.value.frag">
+&lt;xsl:param name="profile.value"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When you are using this parameter you must also specify name of
+profiling attribute with parameter
+<parameter>profile.attribute</parameter>.</para>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.separator">
+<refmeta>
+<refentrytitle>profile.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.separator</refname>
+<refpurpose>Separator character for compound profile values</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.separator.frag">
+&lt;xsl:param name="profile.separator"&gt;;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator character used for compound profile values. See <parameter>profile.arch</parameter></para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="htmlhelp" xml:base="../html/param.xml"><title>HTML Help</title>
+<refentry version="5.0" id="htmlhelp.encoding">
+<refmeta>
+<refentrytitle>htmlhelp.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.encoding</refname>
+<refpurpose>Character encoding to use in files for HTML Help compiler.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.encoding.frag">
+&lt;xsl:param name="htmlhelp.encoding"&gt;iso-8859-1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The HTML Help Compiler is not UTF-8 aware, so you should always use an
+appropriate single-byte encoding here. See also <link xlink:href="HtmlHelp.html#HelpProcOptions" role="tcg">Processing options</link>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.autolabel">
+<refmeta>
+<refentrytitle>htmlhelp.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.autolabel</refname>
+<refpurpose>Should tree-like ToC use autonumbering feature?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.autolabel.frag">
+&lt;xsl:param name="htmlhelp.autolabel" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set this to non-zero to include chapter and section numbers into ToC
+in the left panel.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.chm">
+<refmeta>
+<refentrytitle>htmlhelp.chm</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.chm</refname>
+<refpurpose>Filename of output HTML Help file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.chm.frag">
+&lt;xsl:param name="htmlhelp.chm"&gt;htmlhelp.chm&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the  name of resulting CHM file</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.default.topic">
+<refmeta>
+<refentrytitle>htmlhelp.default.topic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.default.topic</refname>
+<refpurpose>Name of file with default topic</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.default.topic.frag">
+&lt;xsl:param name="htmlhelp.default.topic"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Normally first chunk of document is displayed when you open HTML
+Help file. If you want to display another topic, simply set its
+filename by this parameter.</para>
+
+<para>This is useful especially if you don't generate ToC in front of
+your document and you also hide root element in ToC. E.g.:</para>
+
+<programlisting>&lt;xsl:param name="generate.book.toc" select="0"/&gt;
+&lt;xsl:param name="htmlhelp.hhc.show.root" select="0"/&gt;
+&lt;xsl:param name="htmlhelp.default.topic"&gt;pr01.html&lt;/xsl:param&gt;
+</programlisting>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.display.progress">
+<refmeta>
+<refentrytitle>htmlhelp.display.progress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.display.progress</refname>
+<refpurpose>Display compile progress?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.display.progress.frag">
+&lt;xsl:param name="htmlhelp.display.progress" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to to display compile progress
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.hhp">
+<refmeta>
+<refentrytitle>htmlhelp.hhp</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhp</refname>
+<refpurpose>Filename of project file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.hhp.frag">
+&lt;xsl:param name="htmlhelp.hhp"&gt;htmlhelp.hhp&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Change this parameter if you want different name of project
+file than htmlhelp.hhp.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.hhc">
+<refmeta>
+<refentrytitle>htmlhelp.hhc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc</refname>
+<refpurpose>Filename of TOC file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.hhc.frag">
+&lt;xsl:param name="htmlhelp.hhc"&gt;toc.hhc&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the name of the TOC file. The default is <filename>toc.hhc</filename>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.hhk">
+<refmeta>
+<refentrytitle>htmlhelp.hhk</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhk</refname>
+<refpurpose>Filename of index file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.hhk.frag">
+&lt;xsl:param name="htmlhelp.hhk"&gt;index.hhk&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>set the name of the index file. The default is <filename>index.hhk</filename>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.hhp.tail">
+<refmeta>
+<refentrytitle>htmlhelp.hhp.tail</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhp.tail</refname>
+<refpurpose>Additional content for project file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.hhp.tail.frag">
+&lt;xsl:param name="htmlhelp.hhp.tail"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want to include some additional parameters into project file,
+store appropriate part of project file into this parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.hhp.window">
+<refmeta>
+<refentrytitle>htmlhelp.hhp.window</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhp.window</refname>
+<refpurpose>Name of default window.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.hhp.window.frag">
+&lt;xsl:param name="htmlhelp.hhp.window"&gt;Main&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Name of default window. If empty no [WINDOWS] section will be
+added to project file.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.hhp.windows">
+<refmeta>
+<refentrytitle>htmlhelp.hhp.windows</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhp.windows</refname>
+<refpurpose>Definition of additional windows</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.hhp.windows.frag">
+&lt;xsl:param name="htmlhelp.hhp.windows"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Content of this parameter is placed at the end of [WINDOWS]
+section of project file. You can use it for defining your own
+addtional windows.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.enhanced.decompilation">
+<refmeta>
+<refentrytitle>htmlhelp.enhanced.decompilation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.enhanced.decompilation</refname>
+<refpurpose>Allow enhanced decompilation of CHM?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.enhanced.decompilation.frag">
+&lt;xsl:param name="htmlhelp.enhanced.decompilation" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When non-zero this parameter enables enhanced decompilation of CHM.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.enumerate.images">
+<refmeta>
+<refentrytitle>htmlhelp.enumerate.images</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.enumerate.images</refname>
+<refpurpose>Should the paths to all used images be added to the project file?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.enumerate.images.frag">
+&lt;xsl:param name="htmlhelp.enumerate.images" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero if you insert images into your documents as
+external binary entities or if you are using absolute image paths.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.force.map.and.alias">
+<refmeta>
+<refentrytitle>htmlhelp.force.map.and.alias</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.force.map.and.alias</refname>
+<refpurpose>Should [MAP] and [ALIAS] sections be added to the project file unconditionally?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="htmlhelp.force.map.and.alias.frag">
+&lt;xsl:param name="htmlhelp.force.map.and.alias" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+  <para>Set to non-zero if you have your own
+    <literal>alias.h</literal> and <literal>context.h</literal>
+    files and you want to include references to them in the project
+    file.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.map.file">
+<refmeta>
+<refentrytitle>htmlhelp.map.file</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.map.file</refname>
+<refpurpose>Filename of map file.</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="htmlhelp.map.file.frag">
+&lt;xsl:param name="htmlhelp.map.file"&gt;context.h&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Set the name of map file. The default is
+  <filename>context.h</filename>. (used for context-sensitive
+  help).</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.alias.file">
+<refmeta>
+<refentrytitle>htmlhelp.alias.file</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.alias.file</refname>
+<refpurpose>Filename of alias file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.alias.file.frag">
+&lt;xsl:param name="htmlhelp.alias.file"&gt;alias.h&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the alias file (used for context-sensitive help).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.hhc.section.depth">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.section.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.section.depth</refname>
+<refpurpose>Depth of TOC for sections in a left pane.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.hhc.section.depth.frag">
+&lt;xsl:param name="htmlhelp.hhc.section.depth"&gt;5&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the section depth in the left pane of HTML Help viewer. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.hhc.show.root">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.show.root</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.show.root</refname>
+<refpurpose>Should there be an entry for the root element in the ToC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.hhc.show.root.frag">
+&lt;xsl:param name="htmlhelp.hhc.show.root" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If set to zero, there will be no entry for the root element in the 
+ToC. This is useful when you want to provide the user with an expanded
+ToC as a default.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.hhc.folders.instead.books">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.folders.instead.books</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.folders.instead.books</refname>
+<refpurpose>Use folder icons in ToC (instead of book icons)?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.hhc.folders.instead.books.frag">
+&lt;xsl:param name="htmlhelp.hhc.folders.instead.books" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero for folder-like icons or zero for book-like icons in the ToC. 
+If you want to use folder-like icons, you must switch off the binary ToC using 
+<parameter>htmlhelp.hhc.binary</parameter>.
+
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.hhc.binary">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.binary</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.binary</refname>
+<refpurpose>Generate binary ToC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.hhc.binary.frag">
+&lt;xsl:param name="htmlhelp.hhc.binary" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to generate a binary TOC. You must create a binary TOC
+if you want to add Prev/Next buttons to toolbar (which is default
+behaviour). Files with binary TOC can't be merged.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.hhc.width">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.width</refname>
+<refpurpose>Width of navigation pane</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.hhc.width.frag">
+&lt;xsl:param name="htmlhelp.hhc.width"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the width of the navigation pane (containing TOC and
+other navigation tabs) in pixels.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.title">
+<refmeta>
+<refentrytitle>htmlhelp.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.title</refname>
+<refpurpose>Title of HTML Help</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.title.frag">
+&lt;xsl:param name="htmlhelp.title"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Content of this parameter will be used as a title for generated
+HTML Help. If empty, title will be automatically taken from document.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.show.menu">
+<refmeta>
+<refentrytitle>htmlhelp.show.menu</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.show.menu</refname>
+<refpurpose>Should the menu bar be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.show.menu.frag">
+&lt;xsl:param name="htmlhelp.show.menu" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to have an application menu bar in your HTML Help window.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.show.toolbar.text">
+<refmeta>
+<refentrytitle>htmlhelp.show.toolbar.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.show.toolbar.text</refname>
+<refpurpose>Show text under toolbar buttons?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.show.toolbar.text.frag">
+&lt;xsl:param name="htmlhelp.show.toolbar.text" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to display texts under toolbar buttons, zero to switch
+off displays.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.show.advanced.search">
+<refmeta>
+<refentrytitle>htmlhelp.show.advanced.search</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.show.advanced.search</refname>
+<refpurpose>Should advanced search features be available?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.show.advanced.search.frag">
+&lt;xsl:param name="htmlhelp.show.advanced.search" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want advanced search features in your help, turn this
+parameter to 1.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.show.favorities">
+<refmeta>
+<refentrytitle>htmlhelp.show.favorities</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.show.favorities</refname>
+<refpurpose>Should the Favorites tab be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.show.favorities.frag">
+&lt;xsl:param name="htmlhelp.show.favorities" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include a Favorites tab in the navigation pane 
+of the help window.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.hideshow">
+<refmeta>
+<refentrytitle>htmlhelp.button.hideshow</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.hideshow</refname>
+<refpurpose>Should the Hide/Show button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.hideshow.frag">
+&lt;xsl:param name="htmlhelp.button.hideshow" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the  Hide/Show button shown on toolbar</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.back">
+<refmeta>
+<refentrytitle>htmlhelp.button.back</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.back</refname>
+<refpurpose>Should the Back button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.back.frag">
+&lt;xsl:param name="htmlhelp.button.back" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the  Hide/Show button shown on toolbar</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.forward">
+<refmeta>
+<refentrytitle>htmlhelp.button.forward</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.forward</refname>
+<refpurpose>Should the Forward button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.forward.frag">
+&lt;xsl:param name="htmlhelp.button.forward" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the  Forward button  on the toolbar.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.stop">
+<refmeta>
+<refentrytitle>htmlhelp.button.stop</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.stop</refname>
+<refpurpose>Should the Stop button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.stop.frag">
+&lt;xsl:param name="htmlhelp.button.stop" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want Stop button shown on toolbar, turn this
+parameter to 1.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.refresh">
+<refmeta>
+<refentrytitle>htmlhelp.button.refresh</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.refresh</refname>
+<refpurpose>Should the Refresh button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.refresh.frag">
+&lt;xsl:param name="htmlhelp.button.refresh" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Stop button  on the toolbar.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.home">
+<refmeta>
+<refentrytitle>htmlhelp.button.home</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.home</refname>
+<refpurpose>Should the Home button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.home.frag">
+&lt;xsl:param name="htmlhelp.button.home" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Home button  on the toolbar.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.home.url">
+<refmeta>
+<refentrytitle>htmlhelp.button.home.url</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.home.url</refname>
+<refpurpose>URL address of page accessible by Home button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.home.url.frag">
+&lt;xsl:param name="htmlhelp.button.home.url"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>URL address of page accessible by Home button.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.options">
+<refmeta>
+<refentrytitle>htmlhelp.button.options</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.options</refname>
+<refpurpose>Should the Options button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.options.frag">
+&lt;xsl:param name="htmlhelp.button.options" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want Options button shown on toolbar, turn this
+parameter to 1.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.print">
+<refmeta>
+<refentrytitle>htmlhelp.button.print</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.print</refname>
+<refpurpose>Should the Print button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.print.frag">
+&lt;xsl:param name="htmlhelp.button.print" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Print button  on the toolbar.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.locate">
+<refmeta>
+<refentrytitle>htmlhelp.button.locate</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.locate</refname>
+<refpurpose>Should the Locate button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.locate.frag">
+&lt;xsl:param name="htmlhelp.button.locate" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want Locate button shown on toolbar, turn this
+parameter to 1.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.jump1">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump1</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump1</refname>
+<refpurpose>Should the Jump1 button be shown?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.jump1.frag">
+&lt;xsl:param name="htmlhelp.button.jump1" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+  <para>Set to non-zero to include the <literal>Jump1</literal> button on the toolbar.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.jump1.url">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump1.url</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump1.url</refname>
+<refpurpose>URL address of page accessible by Jump1 button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.jump1.url.frag">
+&lt;xsl:param name="htmlhelp.button.jump1.url"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>URL address of page accessible by Jump1 button.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.jump1.title">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump1.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump1.title</refname>
+<refpurpose>Title of Jump1 button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.jump1.title.frag">
+&lt;xsl:param name="htmlhelp.button.jump1.title"&gt;User1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Title of Jump1 button.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.jump2">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump2</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump2</refname>
+<refpurpose>Should the Jump2 button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.jump2.frag">
+&lt;xsl:param name="htmlhelp.button.jump2" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Jump2 button  on the toolbar.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.jump2.url">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump2.url</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump2.url</refname>
+<refpurpose>URL address of page accessible by Jump2 button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.jump2.url.frag">
+&lt;xsl:param name="htmlhelp.button.jump2.url"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>URL address of page accessible by Jump2 button.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.jump2.title">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump2.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump2.title</refname>
+<refpurpose>Title of Jump2 button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.jump2.title.frag">
+&lt;xsl:param name="htmlhelp.button.jump2.title"&gt;User2&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Title of Jump2 button.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.next">
+<refmeta>
+<refentrytitle>htmlhelp.button.next</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.next</refname>
+<refpurpose>Should the Next button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.next.frag">
+&lt;xsl:param name="htmlhelp.button.next" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Next button  on the toolbar.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.prev">
+<refmeta>
+<refentrytitle>htmlhelp.button.prev</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.prev</refname>
+<refpurpose>Should the Prev button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.prev.frag">
+&lt;xsl:param name="htmlhelp.button.prev" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Prev button  on the toolbar.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.button.zoom">
+<refmeta>
+<refentrytitle>htmlhelp.button.zoom</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.zoom</refname>
+<refpurpose>Should the Zoom button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.button.zoom.frag">
+&lt;xsl:param name="htmlhelp.button.zoom" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Zoom button  on the toolbar.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.remember.window.position">
+<refmeta>
+<refentrytitle>htmlhelp.remember.window.position</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.remember.window.position</refname>
+<refpurpose>Remember help window position?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.remember.window.position.frag">
+&lt;xsl:param name="htmlhelp.remember.window.position" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to remember help window position between starts.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.window.geometry">
+<refmeta>
+<refentrytitle>htmlhelp.window.geometry</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.window.geometry</refname>
+<refpurpose>Set initial geometry of help window</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.window.geometry.frag">
+&lt;xsl:param name="htmlhelp.window.geometry"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies initial position of help
+window. E.g.</para>
+
+<programlisting>&lt;xsl:param name="htmlhelp.window.geometry"&gt;[160,64,992,704]&lt;/xsl:param&gt;</programlisting>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.use.hhk">
+<refmeta>
+<refentrytitle>htmlhelp.use.hhk</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.use.hhk</refname>
+<refpurpose>Should the index be built using the HHK file?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.use.hhk.frag">
+&lt;xsl:param name="htmlhelp.use.hhk" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the index is created using the HHK file (instead of using <tag role="html">object</tag>
+elements in the HTML files). For more information, see <link role="tcg" xlink:href="HtmlHelp.html#HHGenIndex">Generating an index</link>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="htmlhelp.only">
+<refmeta>
+<refentrytitle>htmlhelp.only</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.only</refname>
+<refpurpose>Should only project files be generated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="htmlhelp.only.frag">
+&lt;xsl:param name="htmlhelp.only" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+
+<para>Set to non-zero if you want to play with various HTML Help parameters
+and you don't need to regenerate all HTML files. This setting will not
+process whole document, only project files (hhp, hhc, hhk,...) will be
+generated.</para>
+
+
+</refsection>
+</refentry>
+
+</reference><reference id="eclipse_help" xml:base="../html/param.xml"><title>Eclipse Help Platform</title>
+<refentry version="5.0" id="eclipse.autolabel">
+<refmeta>
+<refentrytitle>eclipse.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>eclipse.autolabel</refname>
+<refpurpose>Should tree-like ToC use autonumbering feature?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="eclipse.autolabel.frag">
+&lt;xsl:param name="eclipse.autolabel" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want to include chapter and section numbers into ToC in
+the left panel, set this parameter to 1.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="eclipse.plugin.name">
+<refmeta>
+<refentrytitle>eclipse.plugin.name</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>eclipse.plugin.name</refname>
+<refpurpose>Eclipse Help plugin name</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="eclipse.plugin.name.frag">
+&lt;xsl:param name="eclipse.plugin.name"&gt;DocBook Online Help Sample&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Eclipse Help plugin name.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="eclipse.plugin.id">
+<refmeta>
+<refentrytitle>eclipse.plugin.id</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>eclipse.plugin.id</refname>
+<refpurpose>Eclipse Help plugin id</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="eclipse.plugin.id.frag">
+&lt;xsl:param name="eclipse.plugin.id"&gt;com.example.help&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Eclipse Help plugin id. You should change this id to something
+unique for each help.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="eclipse.plugin.provider">
+<refmeta>
+<refentrytitle>eclipse.plugin.provider</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>eclipse.plugin.provider</refname>
+<refpurpose>Eclipse Help plugin provider name</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="eclipse.plugin.provider.frag">
+&lt;xsl:param name="eclipse.plugin.provider"&gt;Example provider&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Eclipse Help plugin provider name.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="webhelp" xml:base="../html/param.xml"><title>WebHelp</title>
+<refentry version="5.0" id="webhelp.autolabel">
+<refmeta>
+<refentrytitle>webhelp.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.autolabel</refname>
+<refpurpose>Should tree-like ToC use autonumbering feature?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="webhelp.autolabel.frag">
+&lt;xsl:param name="webhelp.autolabel"&gt;0&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>To include chapter and section numbers the table of contents pane, set this parameter to 1.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="webhelp.base.dir">
+<refmeta>
+<refentrytitle>webhelp.base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.base.dir</refname>
+<refpurpose>The base directory for webhelp output.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="webhelp.base.dir.frag">
+&lt;xsl:param name="webhelp.base.dir"&gt;docs&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If specified, the <parameter>webhelp.base.dir</parameter>
+parameter identifies the output directory for webhelp. (If not
+specified, the output directory is system dependent.) By default, this
+parameter is set to <filename>docs</filename>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="webhelp.common.dir">
+<refmeta>
+<refentrytitle>webhelp.common.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.common.dir</refname>
+<refpurpose>Path to the directory for the common webhelp resources (JavaScript, css, common images, etc).</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="webhelp.common.dir.frag">
+&lt;xsl:param name="webhelp.common.dir"&gt;../common/&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>By default, webhelp creates a common directory containing resources such as JavaScript files, css, common images, etc. In some cases you may prefer to store these files in a standard location on your site and point all webhelp documents to that location. You can use this parameter to control the urls written to these common resources. For example, you might set this parameter to <code>/common</code> and create a single common directory at the root of your web server.  </para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="webhelp.default.topic">
+<refmeta>
+<refentrytitle>webhelp.default.topic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.default.topic</refname>
+<refpurpose>The name of the file to which the start file in the webhelp base directory redirects</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="webhelp.default.topic.frag">
+&lt;xsl:param name="webhelp.default.topic"&gt;index.html&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Currently webhelp creates a base directory and puts the output
+files in a <filename>content</filename> subdirectory. It creates a
+file in the base directory that redirects to a configured file in the
+<filename>content</filename> directory. The
+<parameter>webhelp.default.topic</parameter> parameter lets you
+configure the name of the file that is redirected to.
+<note>
+  <para>This parameter will be removed from a future version of
+  webhelp along with the <filename>content</filename>
+  directory.</para>
+</note>
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="webhelp.include.search.tab">
+<refmeta>
+<refentrytitle>webhelp.include.search.tab</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.include.search.tab</refname>
+<refpurpose>Should the webhelp output include a Search tab?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="webhelp.include.search.tab.frag">
+&lt;xsl:param name="webhelp.include.search.tab"&gt;true&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Set this parameter to 0 to suppress the search tab from webhelp output.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="webhelp.indexer.language">
+<refmeta>
+<refentrytitle>webhelp.indexer.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype"/>
+</refmeta>
+<refnamediv>
+<refname>webhelp.indexer.language</refname>
+<refpurpose>The language to use for creating the webhelp search index.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="webhelp.indexer.language.frag">
+&lt;xsl:param name="webhelp.indexer.language"&gt;en&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>To support stemming in the client-side webhelp stemmer, you must provide the language code. By default, the following languages are supported:
+<itemizedlist>
+  <listitem>
+    <para><code>en</code>: English</para>
+  </listitem>
+  <listitem>
+    <para><code>de</code>: German</para>
+  </listitem>
+  <listitem>
+    <para><code>fr</code>: French</para>
+  </listitem>
+  <listitem>
+    <para><code>zh</code>: Chinese</para>
+  </listitem>
+  <listitem>
+    <para><code>ja</code>: Japanese</para>
+  </listitem>
+  <listitem>
+    <para><code>ko</code>: Korean</para>
+  </listitem>
+</itemizedlist>
+See the webhelp documentation for information on adding support for additional languages.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="webhelp.start.filename">
+<refmeta>
+<refentrytitle>webhelp.start.filename</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.start.filename</refname>
+<refpurpose>The name of the start file in the webhelp base directory.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="webhelp.start.filename.frag">
+&lt;xsl:param name="webhelp.start.filename"&gt;index.html&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Currently webhelp creates a base directory and puts the output
+files in a <filename>content</filename> subdirectory. It creates a
+file in the base directory that redirects to a configured file in the
+<filename>content</filename> directory. The <parameter>webhelp.start.filename</parameter> parameter lets you configure the name of the redirect file.
+<note>
+  <para>This parameter will be removed from a future version of
+  webhelp along with the <filename>content</filename>
+  directory.</para>
+</note>
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="webhelp.tree.cookie.id">
+<refmeta>
+<refentrytitle>webhelp.tree.cookie.id</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.tree.cookie.id</refname>
+<refpurpose>Controls how the cookie that stores the webhelp toc state is named.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="webhelp.tree.cookie.id.frag">
+&lt;xsl:param name="webhelp.tree.cookie.id" select="concat( 'treeview-', count(//node()) )"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The webhelp output does not use a frameset. Instead, the table of contents is a div on each page. To preserve the state of the table of contents as the user navigates from page to page, webhelp stores the state in a cookie and reads that cookie when you get to the next page. If you've published several webhelp documents on the same domain, it is important that each cookie have a unique id. In lieu of calling on a GUID generator, by default this parameter is just set to the number of nodes in the document on the assumption that it is unlikely that you will have more than one document with the exact number of nodes. A more optimal solution would be for the user to pass in some unique, stable identifier from the build system to use as the webhelp cookie id. For example, if you have safeguards in place to ensure that the xml:id of the root element of each document will be unique on your site, then you could set webhelptree.cookie.id as follows:
+<programlisting>
+  &lt;xsl:param name="webhelp.tree.cookie.id"&gt;
+    &lt;xsl:choose&gt;
+      &lt;xsl:when test="/*/@xml:id"&gt;
+	&lt;xsl:value-of select="concat('treeview-',/*/@xml:id)"/&gt;
+      &lt;/xsl:when&gt;
+      &lt;xsl:otherwise&gt;
+	&lt;xsl:value-of select="concat( 'treeview-', count(//node()) )"/&gt;
+      &lt;/xsl:otherwise&gt;
+    &lt;/xsl:choose&gt;
+  &lt;/xsl:param&gt;
+  </programlisting>
+ </para>
+</refsection>
+</refentry>
+
+</reference><reference id="javahelp" xml:base="../html/param.xml"><title>JavaHelp</title>
+<refentry version="5.0" id="javahelp.encoding">
+<refmeta>
+<refentrytitle>javahelp.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>javahelp.encoding</refname>
+<refpurpose>Character encoding to use in control files for JavaHelp.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="javahelp.encoding.frag">
+&lt;xsl:param name="javahelp.encoding"&gt;iso-8859-1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+  
+<para>JavaHelp crashes on some characters when written as character
+references. In that case you can use this parameter to select an appropriate encoding.</para>
+  
+</refsection>
+</refentry>
+
+
+
+
+</reference><reference id="l10n" xml:base="../html/param.xml"><title>Localization</title>
+<refentry version="5.0" id="l10n.gentext.language">
+<refmeta>
+<refentrytitle>l10n.gentext.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.gentext.language</refname>
+<refpurpose>Sets the gentext language</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="l10n.gentext.language.frag">
+&lt;xsl:param name="l10n.gentext.language"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If this parameter is set to any value other than the empty string, its
+value will be used as the value for the language when generating text. Setting
+<parameter>l10n.gentext.language</parameter> overrides any settings within the
+document being formatted.</para>
+
+<para>It's much more likely that you might want to set the
+<parameter>l10n.gentext.default.language</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="l10n.gentext.default.language">
+  <refmeta>
+    <refentrytitle>l10n.gentext.default.language</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>l10n.gentext.default.language</refname>
+    <refpurpose>Sets the default language for generated text</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+<programlisting id="l10n.gentext.default.language.frag">
+&lt;xsl:param name="l10n.gentext.default.language"&gt;en&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of the <parameter>l10n.gentext.default.language</parameter>
+parameter is used as the language for generated text if no setting is provided
+in the source document.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="l10n.gentext.use.xref.language">
+<refmeta>
+<refentrytitle>l10n.gentext.use.xref.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.gentext.use.xref.language</refname>
+<refpurpose>Use the language of target when generating cross-reference text?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="l10n.gentext.use.xref.language.frag">
+&lt;xsl:param name="l10n.gentext.use.xref.language" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the language of the target will be used when
+generating cross reference text. Usually, the <quote>current</quote>
+language is used when generating text (that is, the language of the
+element that contains the cross-reference element). But setting this parameter
+allows the language of the element <emphasis>pointed to</emphasis> to control
+the generated text.</para>
+
+<para>Consider the following example:</para>
+
+<informalexample>
+<programlisting>&lt;para lang="en"&gt;See also &lt;xref linkend="chap3"/&gt;.&lt;/para&gt;
+</programlisting>
+</informalexample>
+
+<para>Suppose that Chapter 3 happens to be written in German.
+If <parameter>l10n.gentext.use.xref.language</parameter> is non-zero, the
+resulting text will be something like this:</para>
+
+<blockquote>
+<para>See also Kapital 3.</para>
+</blockquote>
+
+<para>Where the more traditional rendering would be:</para>
+
+<blockquote>
+<para>See also Chapter 3.</para>
+</blockquote>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="l10n.lang.value.rfc.compliant">
+<refmeta>
+<refentrytitle>l10n.lang.value.rfc.compliant</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.lang.value.rfc.compliant</refname>
+<refpurpose>Make value of lang attribute RFC compliant?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="l10n.lang.value.rfc.compliant.frag">
+&lt;xsl:param name="l10n.lang.value.rfc.compliant" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, ensure that the values for all <tag class="attribute">lang</tag> attributes in HTML output are RFC
+compliant<footnote><para>Section 8.1.1, <link xlink:href="http://www.w3.org/TR/REC-html40/struct/dirlang.html#h-8.1.1">Language Codes</link>, in the HTML 4.0 Recommendation states that:
+
+<blockquote><para>[RFC1766] defines and explains the language codes
+that must be used in HTML documents.</para>
+<para>Briefly, language codes consist of a primary code and a possibly
+empty series of subcodes:
+
+<literallayout class="monospaced">language-code = primary-code ( "-" subcode )*</literallayout>
+</para>
+<para>And in RFC 1766, <link xlink:href="http://www.ietf.org/rfc/rfc1766.txt">Tags for the Identification
+of Languages</link>, the EBNF for "language tag" is given as:
+
+<literallayout class="monospaced">Language-Tag = Primary-tag *( "-" Subtag )
+Primary-tag = 1*8ALPHA
+Subtag = 1*8ALPHA</literallayout>
+</para>
+</blockquote>
+</para></footnote>.
+
+by taking any underscore characters in any <tag class="attribute">lang</tag> values found in source documents, and
+replacing them with hyphen characters in output HTML files. For
+example, <literal>zh_CN</literal> in a source document becomes
+<literal>zh-CN</literal> in the HTML output form that source.
+
+<note>
+<para>This parameter does not cause any case change in <tag class="attribute">lang</tag> values, because RFC 1766
+explicitly states that all "language tags" (as it calls them) "are
+to be treated as case insensitive".</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="writing.mode">
+<refmeta>
+<refentrytitle>writing.mode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>writing.mode</refname>
+<refpurpose>Direction of text flow based on locale</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="writing.mode.frag">
+&lt;xsl:param name="writing.mode"&gt;
+  &lt;xsl:call-template name="gentext"&gt;
+    &lt;xsl:with-param name="key"&gt;writing-mode&lt;/xsl:with-param&gt;
+    &lt;xsl:with-param name="lang"&gt;
+      &lt;xsl:call-template name="l10n.language"&gt;
+        &lt;xsl:with-param name="target" select="/*[1]"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:with-param&gt;
+  &lt;/xsl:call-template&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets direction of text flow and text alignment based on locale.
+The value is normally taken from the gentext file for the 
+lang attribute of the document's root element, using the 
+key name 'writing-mode' to look it up in the gentext file.
+But the param can also be
+set on the command line to override that gentext value.
+</para>
+<para>Accepted values are:
+<variablelist>
+  <varlistentry>
+    <term>lr-tb</term>
+    <listitem>
+      <para>Left-to-right text flow in each line, lines stack top to bottom.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>rl-tb</term>
+    <listitem>
+      <para>Right-to-left text flow in each line, lines stack top to bottom.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>tb-rl</term>
+    <listitem>
+      <para>Top-to-bottom text flow in each vertical line, lines stack right to left.
+      Supported by only a few XSL-FO processors. Not supported in HTML output.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>lr</term>
+    <listitem>
+      <para>Shorthand for lr-tb.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>rl</term>
+    <listitem>
+      <para>Shorthand for rl-tb.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>tb</term>
+    <listitem>
+      <para>Shorthand for tb-rl.</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+    </part>
+    <part id="fo">
+      <?dbhtml dir="fo"?>
+      <?dbhtml filename="index.html"?>
+      <title xml:base="../fo/param.xml">FO Parameter Reference</title>
+      <partintro id="fointro">
+        
+  <para xml:base="../fo/param.xml">This is reference documentation for all user-configurable
+  parameters in the DocBook XSL FO stylesheets (for generating
+  XSL-FO output destined for final print/PDF output).</para>
+
+      </partintro>
+      <reference id="admons" xml:base="../fo/param.xml"><title>Admonitions</title>
+<refentry version="5.0" id="admon.graphics">
+<refmeta>
+<refentrytitle>admon.graphics</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics</refname>
+<refpurpose>Use graphics in admonitions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="admon.graphics.frag">
+&lt;xsl:param name="admon.graphics" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), admonitions are presented in an alternate style that uses
+a graphic.  Default graphics are provided in the distribution.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="admon.graphics.extension">
+<refmeta>
+<refentrytitle>admon.graphics.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics.extension</refname>
+<refpurpose>Filename extension for admonition graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="admon.graphics.extension.frag">
+&lt;xsl:param name="admon.graphics.extension"&gt;.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the filename extension to use on admonition graphics.</para>
+
+<itemizedlist>
+  <para>The DocBook XSL distribution provides admonition graphics in the following formats:</para>
+  <listitem><para>GIF (extension: <filename class="extension">.gif</filename>)</para></listitem>
+  <listitem><para>PNG (extension: <filename class="extension">.png</filename>)</para></listitem>
+  <listitem><para>SVG (extension: <filename class="extension">.svg</filename>)</para></listitem>
+  <listitem><para>TIFF (extension: <filename class="extension">.tif</filename>)</para></listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="admon.graphics.path">
+<refmeta>
+<refentrytitle>admon.graphics.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics.path</refname>
+<refpurpose>Path to admonition graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="admon.graphics.path.frag">&lt;xsl:param name="admon.graphics.path"&gt;images/&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the path to the directory containing the admonition graphics
+(caution.png, important.png etc). This location is normally relative
+to the output html directory. See <parameter>base.dir</parameter></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="admon.textlabel">
+<refmeta>
+<refentrytitle>admon.textlabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.textlabel</refname>
+<refpurpose>Use text label in admonitions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="admon.textlabel.frag">
+&lt;xsl:param name="admon.textlabel" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), admonitions are presented with a generated
+text label such as Note or Warning in the appropriate language.
+If zero, such labels are turned off, but any title child
+of the admonition element are still output.
+The default value is 1.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="admonition.title.properties">
+
+<refmeta>
+  <refentrytitle>admonition.title.properties</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admonition.title.properties</refname>
+<refpurpose>To set the style for admonitions titles.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="admonition.title.properties.frag">
+&lt;xsl:attribute-set name="admonition.title.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;14pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>How do you want admonitions titles styled? </para>
+<para>Set the font-size, weight etc to the style required.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="admonition.properties">
+<refmeta>
+  <refentrytitle>admonition.properties</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>admonition.properties</refname>
+<refpurpose>To set the style for admonitions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="admonition.properties.frag">&lt;xsl:attribute-set name="admonition.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>How do you want admonitions styled? </para>
+<para>Set the font-size, weight, etc. to the style required</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="graphical.admonition.properties">
+<refmeta>
+<refentrytitle>graphical.admonition.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphical.admonition.properties</refname>
+<refpurpose>To add properties to the outer block of a graphical admonition.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="graphical.admonition.properties.frag">&lt;xsl:attribute-set name="graphical.admonition.properties"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the outer block containing the
+entire graphical admonition, including its title.
+It is used when the parameter
+<parameter>admon.graphics</parameter> is set to nonzero.
+Use this attribute-set to set the space above and below,
+and any indent for the whole admonition.</para>
+
+<para>In addition to these properties, a graphical admonition
+also applies the <parameter>admonition.title.properties</parameter>
+attribute-set to the title, and applies the
+<parameter>admonition.properties</parameter> attribute-set
+to the rest of the content.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="nongraphical.admonition.properties">
+<refmeta>
+<refentrytitle>nongraphical.admonition.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nongraphical.admonition.properties</refname>
+<refpurpose>To add properties to the outer block of a nongraphical admonition.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="nongraphical.admonition.properties.frag">&lt;xsl:attribute-set name="nongraphical.admonition.properties"&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.start}"&gt;0.25in&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.end}"&gt;0.25in&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the outer block containing the
+entire nongraphical admonition, including its title.
+It is used when the parameter
+<parameter>admon.graphics</parameter> is set to zero.
+Use this attribute-set to set the space above and below,
+and any indent for the whole admonition.</para>
+
+<para>In addition to these properties, a nongraphical admonition
+also applies the <parameter>admonition.title.properties</parameter>
+attribute-set to the title, and the
+<parameter>admonition.properties</parameter> attribute-set
+to the rest of the content.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="callouts" xml:base="../fo/param.xml"><title>Callouts</title>
+<refentry version="5.0" id="calloutlist.properties">
+<refmeta>
+<refentrytitle>calloutlist.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>calloutlist.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by calloutlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="calloutlist.properties.frag">&lt;xsl:attribute-set name="calloutlist.properties"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="provisional-distance-between-starts"&gt;2.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="provisional-label-separation"&gt;0.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to the fo:list-block generated by calloutlist.
+Typically used to adjust spacing or margins of the entire list.
+Change the <literal>provisional-distance-between-starts</literal> attribute to
+change the indent of the list paragraphs relative to the
+callout numbers.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.properties">
+<refmeta>
+<refentrytitle>callout.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.properties</refname>
+<refpurpose>Properties that apply to the list-item generated by each callout within a calloutlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.properties.frag">&lt;xsl:attribute-set name="callout.properties"&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to the fo:list-item generated by each callout within a calloutlist. Typically used to add spacing properties.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.defaultcolumn">
+<refmeta>
+<refentrytitle>callout.defaultcolumn</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.defaultcolumn</refname>
+<refpurpose>Indicates what column callouts appear in by default</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.defaultcolumn.frag">
+&lt;xsl:param name="callout.defaultcolumn"&gt;60&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If a callout does not identify a column (for example, if it uses
+the <literal>linerange</literal> <tag class="attribute">unit</tag>),
+it will appear in the default column.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.graphics">
+<refmeta>
+<refentrytitle>callout.graphics</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics</refname>
+<refpurpose>Use graphics for callouts?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.graphics.frag">
+&lt;xsl:param name="callout.graphics" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, callouts are presented with graphics (e.g., reverse-video
+circled numbers instead of "(1)", "(2)", etc.).
+Default graphics are provided in the distribution.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.graphics.extension">
+<refmeta>
+<refentrytitle>callout.graphics.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.extension</refname>
+<refpurpose>Filename extension for callout graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.graphics.extension.frag">
+
+&lt;xsl:param name="callout.graphics.extension"&gt;.svg&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Sets the filename extension to use on callout graphics. </para>
+
+<itemizedlist>
+<para>The Docbook XSL distribution provides callout graphics in the following formats:</para>
+<listitem><para>SVG (extension: <filename class="extension">.svg</filename>)</para></listitem>
+<listitem><para>PNG (extension: <filename class="extension">.png</filename>)</para></listitem>
+<listitem><para>GIF (extension: <filename class="extension">.gif</filename>)</para></listitem>
+</itemizedlist>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.graphics.number.limit">
+<refmeta>
+<refentrytitle>callout.graphics.number.limit</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.number.limit</refname>
+<refpurpose>Number of the largest callout graphic</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.graphics.number.limit.frag">
+
+&lt;xsl:param name="callout.graphics.number.limit"&gt;30&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.graphics</parameter> is non-zero, graphics
+are used to represent callout numbers instead of plain text. The value
+of <parameter>callout.graphics.number.limit</parameter> is the largest
+number for which a graphic exists. If the callout number exceeds this
+limit, the default presentation "(plain text instead of a graphic)"
+will  be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.graphics.path">
+<refmeta>
+<refentrytitle>callout.graphics.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.path</refname>
+<refpurpose>Path to callout graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.graphics.path.frag">
+&lt;xsl:param name="callout.graphics.path"&gt;images/callouts/&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the path to the directory holding the callout graphics. his
+location is normally relative to the output html directory. see
+base.dir. Always terminate the directory with / since the graphic file
+is appended to this string, hence needs the separator.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.icon.size">
+<refmeta>
+<refentrytitle>callout.icon.size</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.icon.size</refname>
+<refpurpose>Specifies the size of callout marker icons</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.icon.size.frag">
+&lt;xsl:param name="callout.icon.size"&gt;7pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the size of the callout marker icons.
+The default size is 7 points.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.unicode">
+<refmeta>
+<refentrytitle>callout.unicode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode</refname>
+<refpurpose>Use Unicode characters rather than images for callouts.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.unicode.frag">&lt;xsl:param name="callout.unicode" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The stylesheets can use either an image of the numbers one to ten, or the single Unicode character which represents the numeral, in white on a black background. Use this to select the Unicode character option.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.unicode.font">
+<refmeta>
+<refentrytitle>callout.unicode.font</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode.font</refname>
+<refpurpose>Specify a font for Unicode glyphs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.unicode.font.frag">
+&lt;xsl:param name="callout.unicode.font"&gt;ZapfDingbats&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The name of the font to specify around Unicode callout glyphs.
+If set to the empty string, no font change will occur.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.unicode.number.limit">
+<refmeta>
+<refentrytitle>callout.unicode.number.limit</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode.number.limit</refname>
+<refpurpose>Number of the largest unicode callout character</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.unicode.number.limit.frag">
+&lt;xsl:param name="callout.unicode.number.limit"&gt;10&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.unicode</parameter>
+is non-zero, unicode characters are used to represent
+callout numbers. The value of
+<parameter>callout.unicode.number.limit</parameter>
+is
+the largest number for which a unicode character exists. If the callout number
+exceeds this limit, the default presentation "(nnn)" will always
+be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callout.unicode.start.character">
+<refmeta>
+<refentrytitle>callout.unicode.start.character</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode.start.character</refname>
+<refpurpose>First Unicode character to use, decimal value.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callout.unicode.start.character.frag">
+&lt;xsl:param name="callout.unicode.start.character"&gt;10102&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.graphics</parameter> is zero and <parameter>callout.unicode</parameter>
+is non-zero, unicode characters are used to represent
+callout numbers. The value of
+<parameter>callout.unicode.start.character</parameter>
+is the decimal unicode value used for callout number one. Currently, 
+only values 9312 and 10102 are supported in the stylesheets for this parameter. 
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="callouts.extension">
+<refmeta>
+<refentrytitle>callouts.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callouts.extension</refname>
+<refpurpose>Enable the callout extension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="callouts.extension.frag">
+&lt;xsl:param name="callouts.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The callouts extension processes <tag>areaset</tag>
+elements in <tag>programlistingco</tag> and other text-based
+callout elements.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="toc_index" xml:base="../fo/param.xml"><title>ToC/LoT/Index Generation</title>
+<refentry version="5.0" id="autotoc.label.separator">
+<refmeta>
+<refentrytitle>autotoc.label.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>autotoc.label.separator</refname>
+<refpurpose>Separator between labels and titles in the ToC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="autotoc.label.separator.frag">
+&lt;xsl:param name="autotoc.label.separator"&gt;. &lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>String used to separate labels and titles in a table of contents.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="process.empty.source.toc">
+<refmeta>
+<refentrytitle>process.empty.source.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>process.empty.source.toc</refname>
+<refpurpose>Generate automated TOC if <tag>toc</tag> element occurs in a source document?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="process.empty.source.toc.frag">&lt;xsl:param name="process.empty.source.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies that if an empty <tag>toc</tag> element is found in a
+source document, an automated TOC is generated at this point in the
+document.
+<note>
+  <para>Depending on what the value of the
+  <parameter>generate.toc</parameter> parameter is, setting this
+  parameter to <literal>1</literal> could result in generation of
+  duplicate automated TOCs. So the
+  <parameter>process.empty.source.toc</parameter> is primarily useful
+  as an "override": by placing an empty <tag>toc</tag> in your
+  document and setting this parameter to <literal>1</literal>, you can
+  force a TOC to be generated even if <tag>generate.toc</tag>
+  says not to.</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="process.source.toc">
+<refmeta>
+<refentrytitle>process.source.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>process.source.toc</refname>
+<refpurpose>Process a non-empty <tag>toc</tag> element if it occurs in a source document?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="process.source.toc.frag">&lt;xsl:param name="process.source.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies that the contents of a non-empty "hard-coded"
+<tag>toc</tag> element in a source document are processed to
+generate a TOC in output.
+<note>
+  <para>This parameter has no effect on automated generation of
+  TOCs. An automated TOC may still be generated along with the
+  "hard-coded" TOC. To suppress automated TOC generation, adjust the
+  value of the <parameter>generate.toc</parameter> paramameter.</para>
+
+  <para>The <tag>process.source.toc</tag> parameter also has
+  no effect if the <tag>toc</tag> element is empty; handling
+  for empty <tag>toc</tag> is controlled by the
+  <parameter>process.empty.source.toc</parameter> parameter.</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.toc">
+<refmeta>
+<refentrytitle>generate.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">table</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.toc</refname>
+<refpurpose>Control generation of ToCs and LoTs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="generate.toc.frag">
+
+&lt;xsl:param name="generate.toc"&gt;
+/appendix toc,title
+article/appendix  nop
+/article  toc,title
+book      toc,title,figure,table,example,equation
+/chapter  toc,title
+part      toc,title
+/preface  toc,title
+reference toc,title
+/sect1    toc
+/sect2    toc
+/sect3    toc
+/sect4    toc
+/sect5    toc
+/section  toc
+set       toc,title
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter has a structured value. It is a table of space-delimited
+path/value pairs. Each path identifies some element in the source document
+using a restricted subset of XPath (only the implicit child axis, no wildcards,
+no predicates). Paths can be either relative or absolute.</para>
+
+<para>When processing a particular element, the stylesheets consult this table to
+determine if a ToC (or LoT(s)) should be generated.</para>
+
+<para>For example, consider the entry:</para>
+
+<screen>book toc,figure</screen>
+
+<para>This indicates that whenever a <tag>book</tag> is formatted, a
+Table Of Contents and a List of Figures should be generated. Similarly,</para>
+
+<screen>/chapter toc</screen>
+
+<para>indicates that whenever a document <emphasis>that has a root
+of</emphasis> <tag>chapter</tag> is formatted, a Table of
+Contents should be generated. The entry <literal>chapter</literal> would match
+all chapters, but <literal>/chapter</literal> matches only <tag>chapter</tag>
+document elements.</para>
+
+<para>Generally, the longest match wins. So, for example, if you want to distinguish
+articles in books from articles in parts, you could use these two entries:</para>
+
+<screen>book/article toc,figure
+part/article toc</screen>
+
+<para>Note that an article in a part can never match a <literal>book/article</literal>,
+so if you want nothing to be generated for articles in parts, you can simply leave
+that rule out.</para>
+
+<para>If you want to leave the rule in, to make it explicit that you're turning
+something off, use the value <quote>nop</quote>. For example, the following
+entry disables ToCs and LoTs for articles:</para>
+
+<screen>article nop</screen>
+
+<para>Do not simply leave the word <quote>article</quote> in the file
+without a matching value. That'd be just begging the silly little
+path/value parser to get confused.</para>
+
+<para>Section ToCs are further controlled by the
+<parameter>generate.section.toc.level</parameter> parameter.
+For a given section level to have a ToC, it must have both an entry in 
+<parameter>generate.toc</parameter> and be within the range enabled by
+<parameter>generate.section.toc.level</parameter>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.index">
+<refmeta>
+<refentrytitle>generate.index</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.index</refname>
+<refpurpose>Do you want an index?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="generate.index.frag">&lt;xsl:param name="generate.index" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specify if an index should be generated. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="make.index.markup">
+<refmeta>
+<refentrytitle>make.index.markup</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.index.markup</refname>
+<refpurpose>Generate XML index markup in the index?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="make.index.markup.frag">
+&lt;xsl:param name="make.index.markup" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter enables a very neat trick for getting properly
+merged, collated back-of-the-book indexes. G. Ken Holman suggested
+this trick at Extreme Markup Languages 2002 and I'm indebted to him
+for it.</para>
+
+<para>Jeni Tennison's excellent code in
+<filename>autoidx.xsl</filename> does a great job of merging and
+sorting <tag>indexterm</tag>s in the document and building a
+back-of-the-book index. However, there's one thing that it cannot
+reasonably be expected to do: merge page numbers into ranges. (I would
+not have thought that it could collate and suppress duplicate page
+numbers, but in fact it appears to manage that task somehow.)</para>
+
+<para>Ken's trick is to produce a document in which the index at the
+back of the book is <quote>displayed</quote> in XML. Because the index
+is generated by the FO processor, all of the page numbers have been resolved.
+It's a bit hard to explain, but what it boils down to is that instead of having
+an index at the back of the book that looks like this:</para>
+
+<blockquote>
+<formalpara><info><title>A</title></info>
+<para>ap1, 1, 2, 3</para>
+</formalpara>
+</blockquote>
+
+<para>you get one that looks like this:</para>
+
+<blockquote>
+<programlisting>&lt;indexdiv&gt;A&lt;/indexdiv&gt;
+&lt;indexentry&gt;
+&lt;primaryie&gt;ap1&lt;/primaryie&gt;,
+&lt;phrase role="pageno"&gt;1&lt;/phrase&gt;,
+&lt;phrase role="pageno"&gt;2&lt;/phrase&gt;,
+&lt;phrase role="pageno"&gt;3&lt;/phrase&gt;
+&lt;/indexentry&gt;</programlisting>
+</blockquote>
+
+<para>After building a PDF file with this sort of odd-looking index, you can
+extract the text from the PDF file and the result is a proper index expressed in
+XML.</para>
+
+<para>Now you have data that's amenable to processing and a simple Perl script
+(such as <filename>fo/pdf2index</filename>) can
+merge page ranges and generate a proper index.</para>
+
+<para>Finally, reformat your original document using this literal index instead of
+an automatically generated one and <quote>bingo</quote>!</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.method">
+<refmeta>
+<refentrytitle>index.method</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">basic</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kosek</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kimber</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.method</refname>
+<refpurpose>Select method used to group index entries in an index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.method.frag">
+&lt;xsl:param name="index.method"&gt;basic&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter lets you select which method to use for sorting and grouping
+ index entries in an index.
+Indexes in Latin-based languages that have accented characters typically
+sort together accented words and unaccented words.
+Thus <quote>&#193;</quote> (U+00C1 LATIN CAPITAL LETTER A WITH ACUTE) would sort together
+with <quote>A</quote> (U+0041 LATIN CAPITAL LETTER A), so both would appear in the <quote>A</quote>
+section of the index.
+Languages using other alphabets (such as Russian,  which is written in the Cyrillic alphabet)
+and languages using ideographic chararacters (such as Japanese)
+require grouping specific to the languages and alphabets.
+</para>
+
+<para>The default indexing method is limited.
+It can group accented characters in Latin-based languages only.
+It cannot handle non-Latin alphabets or ideographic languages.
+The other indexing methods require extensions of one type or
+another, and do not work with
+all XSLT processors, which is why they are not used by default.</para>
+
+<para>The three choices for indexing method are:</para>
+<variablelist>
+<varlistentry>
+<term><literal>basic</literal></term>
+<listitem>
+<para>
+(default)  Sort and groups words based only on the Latin alphabet.
+Words with accented Latin letters will group and sort with
+their respective primary letter, but
+words in non-Latin alphabets will be
+put in the <quote>Symbols</quote> section of the index.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>kosek</literal></term>
+<listitem>
+<para>
+This method sorts and groups words based on letter groups configured in
+the DocBook locale file for the given language.
+See, for example, the French locale file <filename>common/fr.xml</filename>.
+This method requires that the XSLT processor
+supports the EXSLT extensions (most do).
+It also requires support for using 
+user-defined functions in xsl:key (xsltproc does not).
+</para>
+<para>This method is suitable for any language for which you can
+list all the individual characters that should appear
+in each letter group in an index.
+It is probably not practical to use it for ideographic languages
+such as Chinese that have hundreds or thousands of characters.
+</para>
+
+<para>To use the kosek method, you must:</para>
+
+<orderedlist>
+<listitem>
+<para>Use a processor that supports its extensions, such as
+Saxon 6 or Xalan (xsltproc and Saxon 8 do not).
+</para>
+</listitem>
+<listitem>
+<para>Set the index.method parameter's value to <quote>kosek</quote>.
+</para>
+</listitem>
+<listitem>
+<para>Import the appropriate index extensions stylesheet module
+<filename>fo/autoidx-kosek.xsl</filename> or 
+<filename>html/autoidx-kosek.xsl</filename> into your
+customization.
+</para>
+</listitem>
+</orderedlist>
+
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>kimber</literal></term>
+<listitem>
+<para>
+This method uses extensions to the Saxon processor to implement
+sophisticated indexing processes. It uses its own 
+configuration file, which can include information for any number of
+languages. Each language's configuration can group
+words using one of two processes. In the
+enumerated process similar to that used in the kosek method,
+you indicate the groupings character-by-character.
+In the between-key process, you specify the
+break-points in the sort order that should start a new group.
+The latter configuration is useful for ideographic languages
+such as Chinese, Japanese, and Korean.
+You can also define your own collation algorithms and how you
+want mixed Latin-alphabet words sorted.</para>
+<itemizedlist>
+<listitem>
+<para>For a whitepaper describing the extensions, see:
+<link xlink:href="http://www.innodata-isogen.com/knowledge_center/white_papers/back_of_book_for_xsl_fo.pdf">http://www.innodata-isogen.com/knowledge_center/white_papers/back_of_book_for_xsl_fo.pdf</link>.
+</para>
+</listitem>
+<listitem>
+<para>To download the extension library, see
+<link xlink:href="http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport">http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport</link>.
+</para>
+</listitem>
+</itemizedlist>
+
+<para>To use the kimber method, you must:</para>
+
+<orderedlist>
+<listitem>
+<para>Use Saxon (version 6 or 8) as your XSLT processor.
+</para>
+</listitem>
+<listitem>
+<para>Install and configure the Innodata Isogen library, using
+the documentation that comes with it.
+</para>
+</listitem>
+<listitem>
+<para>Set the index.method parameter's value to <quote>kimber</quote>.
+</para>
+</listitem>
+<listitem>
+<para>Import the appropriate index extensions stylesheet module
+<filename>fo/autoidx-kimber.xsl</filename> or 
+<filename>html/autoidx-kimber.xsl</filename> into your
+customization.
+</para>
+</listitem>
+</orderedlist>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.on.type">
+<refmeta>
+<refentrytitle>index.on.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.on.type</refname>
+<refpurpose>Select indexterms based on <tag class="attribute">type</tag>
+attribute value</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.on.type.frag">
+&lt;xsl:param name="index.on.type" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, 
+then an <tag>index</tag> element that has a
+<tag class="attribute">type</tag> attribute
+value will contain only those <tag>indexterm</tag>
+elements with a matching <tag class="attribute">type</tag> attribute value.
+If an <tag>index</tag> has no <tag class="attribute">type</tag>
+attribute or it is blank, then the index will contain
+all <tag>indexterm</tag>s in the current scope.
+</para>
+
+<para>
+If <literal>index.on.type</literal> is zero, then the
+<tag class="attribute">type</tag> attribute has no effect
+on selecting indexterms for an index.
+</para>
+
+<para>For those using DocBook version 4.2 or earlier,
+the <tag class="attribute">type</tag> attribute is not available
+for index terms.  However, you can achieve the same
+effect by using the <tag class="attribute">role</tag> attribute
+in the same manner on <tag>indexterm</tag>
+and <tag>index</tag>, and setting the stylesheet parameter 
+<parameter>index.on.role</parameter> to a nonzero value.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.on.role">
+<refmeta>
+<refentrytitle>index.on.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.on.role</refname>
+<refpurpose>Select indexterms based on <tag class="attribute">role</tag> value</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.on.role.frag">
+&lt;xsl:param name="index.on.role" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, 
+then an <tag>index</tag> element that has a
+<tag class="attribute">role</tag> attribute
+value will contain only those <tag>indexterm</tag>
+elements with a matching role value.
+If an <tag>index</tag> has no <tag class="attribute">role</tag>
+attribute or it is blank, then the index will contain
+all <tag>indexterm</tag>s in the current scope.
+</para>
+<para>
+If <literal>index.on.role</literal> is zero, then the
+<tag class="attribute">role</tag> attribute has no effect
+on selecting indexterms for an index.
+</para>
+
+<para>If you are using DocBook version 4.3 or later, you should
+use the <tag class="attribute">type</tag> attribute instead of <tag class="attribute">role</tag>
+on <tag>indexterm</tag> and <tag>index</tag>,
+and set the <parameter>index.on.type</parameter> to a nonzero
+value.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.preferred.page.properties">
+<refmeta>
+<refentrytitle>index.preferred.page.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.preferred.page.properties</refname>
+<refpurpose>Properties used to emphasize page number references for
+significant index terms</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.preferred.page.properties.frag">
+&lt;xsl:attribute-set name="index.preferred.page.properties"&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>Properties used to emphasize page number references for
+significant index terms (<tag class="attribute">significance</tag>=<tag class="attvalue">preferred</tag>). Currently works only with
+XEP.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.entry.properties">
+<refmeta>
+<refentrytitle>index.entry.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.entry.properties</refname>
+<refpurpose>Properties applied to the formatted entries
+in an index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.entry.properties.frag">
+&lt;xsl:attribute-set name="index.entry.properties"&gt;
+  &lt;xsl:attribute name="start-indent"&gt;0pt&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is applied to the block containing
+the entries in a letter division in an index.  It can be used to set the
+font-size, font-family, and other inheritable properties that will be
+applied to all index entries.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.div.title.properties">
+<refmeta>
+<refentrytitle>index.div.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.div.title.properties</refname>
+<refpurpose>Properties associated with the letter headings in an
+index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.div.title.properties.frag">
+&lt;xsl:attribute-set name="index.div.title.properties"&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.start}"&gt;0pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-size"&gt;14.4pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-family"&gt;&lt;xsl:value-of select="$title.fontset"&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 name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;&lt;xsl:value-of select="concat($body.font.master,'pt')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;&lt;xsl:value-of select="concat($body.font.master,'pt * 0.8')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;&lt;xsl:value-of select="concat($body.font.master,'pt * 1.2')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="start-indent"&gt;0pt&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is used on the letter headings that separate
+the divisions in an index.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.number.separator">
+<refmeta>
+<refentrytitle>index.number.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.number.separator</refname>
+<refpurpose>Override for punctuation separating page numbers in index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.number.separator.frag">
+&lt;xsl:param name="index.number.separator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you to override the text to insert between
+page references in a formatted index entry.  Typically 
+that would be a comma and a space.
+</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'number-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+override the gentext with the content of this parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+</para>
+
+<para>In HTML index output, section title references are used instead of
+page number references.  This punctuation appears between
+such section titles in an HTML index.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.range.separator">
+<refmeta>
+<refentrytitle>index.range.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.range.separator</refname>
+<refpurpose>Override for punctuation separating the two numbers
+in a page range in index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.range.separator.frag">
+&lt;xsl:param name="index.range.separator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you
+to override the text to insert between
+the two numbers of a page range in an index.
+This parameter is only used by those XSL-FO processors
+that support an extension for generating such page ranges
+(such as XEP).</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'range-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+override the gentext with the content of this parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+</para>
+
+<para>In HTML index output, section title references are used instead of
+page number references. So there are no page ranges
+and this parameter has no effect.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.term.separator">
+<refmeta>
+<refentrytitle>index.term.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.term.separator</refname>
+<refpurpose>Override for punctuation separating an index term 
+from its list of page references in an index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.term.separator.frag">
+&lt;xsl:param name="index.term.separator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you to override
+the text to insert between
+the end of an index term and its list of page references.
+Typically that might be a comma and a space.
+</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'term-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+fill in the content for this normally empty 
+override parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+For fo output, it could be an <tag>fo:leader</tag>
+element to provide space of a specific length, or a dot leader.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="xep.index.item.properties">
+<refmeta>
+<refentrytitle>xep.index.item.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xep.index.item.properties</refname>
+<refpurpose>Properties associated with XEP index-items</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="xep.index.item.properties.frag">
+&lt;xsl:attribute-set name="xep.index.item.properties" use-attribute-sets="index.page.number.properties"&gt;
+  &lt;xsl:attribute name="merge-subsequent-page-numbers"&gt;true&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="link-back"&gt;true&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties associated with XEP index-items, which generate
+page numbers in an index processed by XEP. For more info see
+the XEP documentation section "Indexes" in
+<uri xlink:href="http://www.renderx.com/reference.html#Indexes">http://www.renderx.com/reference.html#Indexes</uri>.</para>
+
+<para>This attribute-set also adds by default any properties from the
+<tag class="attribute">index.page.number.properties</tag>
+attribute-set.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.section.depth">
+<refmeta>
+<refentrytitle>toc.section.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.section.depth</refname>
+<refpurpose>How deep should recursive <tag>section</tag>s appear
+in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.section.depth.frag">&lt;xsl:param name="toc.section.depth"&gt;2&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the depth to which recursive sections should appear in the
+TOC.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.max.depth">
+<refmeta>
+<refentrytitle>toc.max.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.max.depth</refname>
+<refpurpose>How many levels should be created for each TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.max.depth.frag">&lt;xsl:param name="toc.max.depth"&gt;8&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximal depth of TOC on all levels.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.indent.width">
+<refmeta>
+<refentrytitle>toc.indent.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">float</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.indent.width</refname>
+<refpurpose>Amount of indentation for TOC entries</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.indent.width.frag">
+&lt;xsl:param name="toc.indent.width"&gt;24&lt;/xsl:param&gt;
+&lt;!-- inconsistant point specification? --&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies, in points, the distance by which each level of the
+TOC is indented from its parent.</para>
+
+<para>This value is expressed in points, without
+a unit (in other words, it is a bare number). Using a bare number allows the stylesheet
+to perform calculations that would otherwise have to be performed by the FO processor
+because not all processors support expressions.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.line.properties">
+<refmeta>
+<refentrytitle>toc.line.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.line.properties</refname>
+<refpurpose>Properties for lines in ToCs and LoTs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.line.properties.frag">
+&lt;xsl:attribute-set name="toc.line.properties"&gt;
+  &lt;xsl:attribute name="text-align-last"&gt;justify&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="end-indent"&gt;&lt;xsl:value-of select="concat($toc.indent.width, 'pt')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="last-line-end-indent"&gt;&lt;xsl:value-of select="concat('-', $toc.indent.width, 'pt')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties which are applied to every line in ToC (or LoT). You can
+modify them in order to change appearance of all, or some lines. For
+example, in order to make lines for chapters bold, specify the
+following in your customization layer:</para>
+
+<programlisting>&lt;xsl:attribute-set name="toc.line.properties"&gt;
+  &lt;xsl:attribute name="font-weight"&gt;
+   &lt;xsl:choose&gt;
+    &lt;xsl:when test="self::chapter"&gt;bold&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;normal&lt;/xsl:otherwise&gt;
+   &lt;/xsl:choose&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.margin.properties">
+<refmeta>
+<refentrytitle>toc.margin.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.margin.properties</refname>
+<refpurpose>Margin properties used on Tables of Contents</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.margin.properties.frag">
+&lt;xsl:attribute-set name="toc.margin.properties"&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>This attribute set is used on Tables of Contents. These attributes are set
+on the wrapper that surrounds the ToC block, not on each individual lines.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="bridgehead.in.toc">
+<refmeta>
+<refentrytitle>bridgehead.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bridgehead.in.toc</refname>
+<refpurpose>Should bridgehead elements appear in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="bridgehead.in.toc.frag">&lt;xsl:param name="bridgehead.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>bridgehead</tag>s appear in the TOC. Note that
+this option is not fully supported and may be removed in a future
+version of the stylesheets.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="simplesect.in.toc">
+<refmeta>
+<refentrytitle>simplesect.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>simplesect.in.toc</refname>
+<refpurpose>Should <tag>simplesect</tag> elements appear in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="simplesect.in.toc.frag">&lt;xsl:param name="simplesect.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>simplesect</tag>s will be included in the TOC.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.section.toc.level">
+<refmeta>
+<refentrytitle>generate.section.toc.level</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.section.toc.level</refname>
+<refpurpose>Control depth of TOC generation in sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="generate.section.toc.level.frag">
+&lt;xsl:param name="generate.section.toc.level" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>generate.section.toc.level</parameter> parameter
+controls the depth of <tag>section</tag> in which TOCs will be generated. Note
+that this is related to, but not the same as
+<parameter>toc.section.depth</parameter>, which controls the depth to
+which TOC entries will be generated in a given TOC.</para>
+<para>If, for example, <parameter>generate.section.toc.level</parameter>
+is <literal>3</literal>, TOCs will be generated in first, second, and third
+level sections, but not in fourth level sections.
+</para>
+
+</refsection>
+</refentry>
+
+
+
+
+</reference><reference id="fo_ext" xml:base="../fo/param.xml"><title>Processor Extensions</title>
+<refentry version="5.0" id="arbortext.extensions">
+<refmeta>
+<refentrytitle>arbortext.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>arbortext.extensions</refname>
+<refpurpose>Enable Arbortext extensions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="arbortext.extensions.frag">&lt;xsl:param name="arbortext.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+<link xlink:href="http://www.arbortext.com/">Arbortext</link>
+extensions will be used.
+</para>
+<para>This parameter can also affect which graphics file formats
+are supported</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="axf.extensions">
+<refmeta>
+<refentrytitle>axf.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>axf.extensions</refname>
+<refpurpose>Enable XSL Formatter extensions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="axf.extensions.frag">
+&lt;xsl:param name="axf.extensions" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+<link xlink:href="http://www.antennahouse.com/">XSL Formatter</link>
+extensions will be used. XSL Formatter extensions consists of PDF bookmarks,
+document information and better index processing.</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="fop.extensions">
+<refmeta>
+<refentrytitle>fop.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>fop.extensions</refname>
+<refpurpose>Enable extensions for FOP version 0.20.5 and earlier</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="fop.extensions.frag">&lt;xsl:param name="fop.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extensions intended for
+<link xlink:href="http://xml.apache.org/fop/">FOP</link>
+version 0.20.5 and earlier will be used.
+At present, this consists of PDF bookmarks.
+</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported.</para>
+
+<para>If you are using a version of FOP beyond
+version 0.20.5, then use the <parameter>fop1.extensions</parameter> parameter
+instead.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="fop1.extensions">
+<refmeta>
+<refentrytitle>fop1.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>fop1.extensions</refname>
+<refpurpose>Enable extensions for FOP version 0.90 and later</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="fop1.extensions.frag">&lt;xsl:param name="fop1.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extensions for 
+<link xlink:href="http://xml.apache.org/fop/">FOP</link>
+version 0.90 and later will be used.
+</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported.</para>
+
+<para>The original <parameter>fop.extensions</parameter> parameter
+should still be used for FOP version 0.20.5 and earlier.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="passivetex.extensions">
+<refmeta>
+<refentrytitle>passivetex.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>passivetex.extensions</refname>
+<refpurpose>Enable PassiveTeX extensions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="passivetex.extensions.frag">&lt;xsl:param name="passivetex.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+<link xlink:href="http://projects.oucs.ox.ac.uk/passivetex/">PassiveTeX</link>
+extensions will be used. At present, this consists of PDF bookmarks
+and sorted index terms.
+</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported</para>
+
+<note>
+  <para>PassiveTeX is incomplete and development has ceased. In most cases, 
+another XSL-FO engine is probably a better choice.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="tex.math.in.alt">
+<refmeta>
+<refentrytitle>tex.math.in.alt</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">plain</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">latex</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tex.math.in.alt</refname>
+<refpurpose>TeX notation used for equations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="tex.math.in.alt.frag">
+&lt;xsl:param name="tex.math.in.alt"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want type math directly in TeX notation in equations,
+this parameter specifies notation used. Currently are supported two
+values -- <literal>plain</literal> and <literal>latex</literal>. Empty
+value means that you are not using TeX math at all.</para>
+
+<para>Preferred way for including TeX alternative of math is inside of
+<tag>textobject</tag> element. Eg.:</para>
+
+<programlisting>&lt;inlineequation&gt;
+&lt;inlinemediaobject&gt;
+&lt;imageobject&gt;
+&lt;imagedata fileref="eq1.gif"/&gt;
+&lt;/imageobject&gt;
+&lt;textobject&gt;&lt;phrase&gt;E=mc squared&lt;/phrase&gt;&lt;/textobject&gt;
+&lt;textobject role="tex"&gt;&lt;phrase&gt;E=mc^2&lt;/phrase&gt;&lt;/textobject&gt;
+&lt;/inlinemediaobject&gt;
+&lt;/inlineequation&gt;</programlisting>
+
+<para>If you are using <tag>graphic</tag> element, you can
+store TeX inside <tag>alt</tag> element:</para>
+
+<programlisting>&lt;inlineequation&gt;
+&lt;alt role="tex"&gt;a^2+b^2=c^2&lt;/alt&gt;
+&lt;graphic fileref="a2b2c2.gif"/&gt;  
+&lt;/inlineequation&gt;</programlisting>
+
+<para>If you want use this feature, you should process your FO with
+PassiveTeX, which only supports TeX math notation. When calling
+stylsheet, don't forget to specify also
+passivetex.extensions=1.</para>
+
+<para>If you want equations in HTML, just process generated file
+<filename>tex-math-equations.tex</filename> by TeX or LaTeX. Then run
+dvi2bitmap program on result DVI file. You will get images for
+equations in your document.</para>
+
+<warning>
+  <para>This feature is useful for print/PDF output only if you
+    use the obsolete and now unsupported PassiveTeX XSL-FO
+    engine.</para>
+</warning>
+
+</refsection>
+
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>tex.math.delims</parameter>,
+    <parameter>passivetex.extensions</parameter>,
+    <parameter>tex.math.file</parameter></para>
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" id="tex.math.delims">
+<refmeta>
+<refentrytitle>tex.math.delims</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tex.math.delims</refname>
+<refpurpose>Should equations output for processing by TeX be
+surrounded by math mode delimiters?</refpurpose>
+</refnamediv> 
+
+<refsynopsisdiv>
+<programlisting id="tex.math.delims.frag">
+&lt;xsl:param name="tex.math.delims" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>For compatibility with DSSSL based DBTeXMath from Allin Cottrell
+you should set this parameter to 0.</para>
+
+<warning>
+  <para>This feature is useful for print/PDF output only if you
+  use the obsolete and now unsupported PassiveTeX XSL-FO
+  engine.</para>
+</warning>
+
+</refsection>
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>tex.math.in.alt</parameter>,
+    <parameter>passivetex.extensions</parameter></para>
+</refsection>
+
+<refsection><info><title>See Also</title></info>
+  <para>You can also use the <tag class="xmlpi">dbtex delims</tag> processing
+    instruction to control whether delimiters are output.</para>
+</refsection>
+
+
+</refentry>
+
+<refentry version="5.0" id="xep.extensions">
+<refmeta>
+<refentrytitle>xep.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xep.extensions</refname>
+<refpurpose>Enable XEP extensions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="xep.extensions.frag">&lt;xsl:param name="xep.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+<link xlink:href="http://www.renderx.com/">XEP</link>
+extensions will be used. XEP extensions consists of PDF bookmarks,
+document information and better index processing.
+</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported</para>
+</refsection>
+</refentry>
+
+</reference><reference id="dbk_ext" xml:base="../fo/param.xml"><title>Stylesheet Extensions</title>
+<refentry version="5.0" id="linenumbering.everyNth">
+<refmeta>
+<refentrytitle>linenumbering.everyNth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.everyNth</refname>
+<refpurpose>Indicate which lines should be numbered</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="linenumbering.everyNth.frag">
+&lt;xsl:param name="linenumbering.everyNth"&gt;5&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If line numbering is enabled, everyNth line will be
+numbered. Note that numbering is one based, not zero based.
+</para>
+<para>See also <parameter>linenumbering.extension</parameter>,
+<parameter>linenumbering.separator</parameter>,
+<parameter>linenumbering.width</parameter> and
+<parameter>use.extensions</parameter></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="linenumbering.extension">
+<refmeta>
+<refentrytitle>linenumbering.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.extension</refname>
+<refpurpose>Enable the line numbering extension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="linenumbering.extension.frag">
+&lt;xsl:param name="linenumbering.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, verbatim environments (<tag>address</tag>, <tag>literallayout</tag>,
+<tag>programlisting</tag>, <tag>screen</tag>, <tag>synopsis</tag>) that specify line numbering will
+have line numbers.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="linenumbering.separator">
+<refmeta>
+<refentrytitle>linenumbering.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.separator</refname>
+<refpurpose>Specify a separator between line numbers and lines</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="linenumbering.separator.frag">
+&lt;xsl:param name="linenumbering.separator"&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The separator is inserted between line numbers and lines in the
+verbatim environment. The default value is a single white space.
+ Note the interaction with <parameter>linenumbering.width</parameter>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="linenumbering.width">
+<refmeta>
+<refentrytitle>linenumbering.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.width</refname>
+<refpurpose>Indicates the width of line numbers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="linenumbering.width.frag">
+&lt;xsl:param name="linenumbering.width"&gt;3&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If line numbering is enabled, line numbers will appear right
+justified in a field "width" characters wide.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="tablecolumns.extension">
+<refmeta>
+<refentrytitle>tablecolumns.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tablecolumns.extension</refname>
+<refpurpose>Enable the table columns extension function</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="tablecolumns.extension.frag">
+&lt;xsl:param name="tablecolumns.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The table columns extension function adjusts the widths of table
+columns in the HTML result to more accurately reflect the specifications
+in the CALS table.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="textinsert.extension">
+  <refmeta>
+    <refentrytitle>textinsert.extension</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>textinsert.extension</refname>
+    <refpurpose>Enables the textinsert extension element</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <programlisting id="textinsert.extension.frag">
+  &lt;xsl:param name="textinsert.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+  </refsynopsisdiv>
+  <refsection><info><title>Description</title></info>
+    <para>The textinsert extension element inserts the contents of
+      a file into the result tree (as text).</para>
+    <note>
+      <para>To use the textinsert extension element, you must use
+        either Saxon or Xalan as your XSLT processor (it doesn&#8217;t
+        work with xsltproc), along with either the DocBook Saxon
+        extensions or DocBook Xalan extensions (for more
+        information about those extensions, see <link role="tcg" xlink:href="InstallingAProcessor.html#SaxonExtensions">DocBook Saxon Extensions</link> and <link role="tcg" xlink:href="InstallingAProcessor.html#XalanExtensions">DocBook Xalan Extensions</link>), and you must set both
+        the <parameter>use.extensions</parameter> and
+        <parameter>textinsert.extension</parameter> parameters to
+        <literal>1</literal>.</para>
+      <para>As an alternative to using the textinsert element,
+        consider using an Xinclude element with the
+        <literal>parse="text"</literal> attribute and value
+        specified, as detailed in <link role="tcg" xlink:href="ExternalCode.html#XIncludeCode">Using XInclude for text inclusions</link>.</para>
+    </note>
+  </refsection>
+  <refsection><info><title>See Also</title></info>
+    <para>You can also use the <tag class="xmlpi">dbhtml-include&#160;href</tag> processing
+      instruction to insert external files &#8212; both files containing
+      plain text and files with markup content (including HTML
+      content).</para>
+  </refsection>
+  <refsection><info><title>More information</title></info>
+    <para>For how-to documentation on inserting contents of
+      external code files and other text files into output, see
+      <link role="tcg" xlink:href="ExternalCode.html">External code files</link>.</para>
+    <para>For guidelines on inserting contents of
+      HTML files into output, see <link role="tcg" xlink:href="InsertExtHtml.html">Inserting external HTML code</link>.</para>
+  </refsection>
+</refentry>
+
+<refentry version="5.0" id="textdata.default.encoding">
+<refmeta>
+<refentrytitle>textdata.default.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>textdata.default.encoding</refname>
+<refpurpose>Default encoding of external text files which are included
+using textdata element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="textdata.default.encoding.frag">
+&lt;xsl:param name="textdata.default.encoding"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the encoding of any external text files included using
+<tag>textdata</tag> element. This value is used only when you do
+not specify encoding by the appropriate attribute 
+directly on textdata. An empty string is interpreted as the system
+default encoding.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="use.extensions">
+<refmeta>
+<refentrytitle>use.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.extensions</refname>
+<refpurpose>Enable extensions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="use.extensions.frag">
+&lt;xsl:param name="use.extensions" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extensions may be used. Each extension is
+further controlled by its own parameter. But if
+<parameter>use.extensions</parameter> is zero, no extensions will
+be used.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="labels" xml:base="../fo/param.xml"><title>Automatic labelling</title>
+<refentry version="5.0" id="appendix.autolabel">
+<refmeta>
+<refentrytitle>appendix.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>appendix.autolabel</refname>
+<refpurpose>Specifies the labeling format for Appendix titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="appendix.autolabel.frag">
+&lt;xsl:param name="appendix.autolabel"&gt;A&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then appendices will be numbered using the
+parameter value as the number format if the value matches one of the
+following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (upperalpha).
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chapter.autolabel">
+<refmeta>
+<refentrytitle>chapter.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chapter.autolabel</refname>
+<refpurpose>Specifies the labeling format for Chapter titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="chapter.autolabel.frag">
+&lt;xsl:param name="chapter.autolabel" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then chapters will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (arabic).
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="part.autolabel">
+<refmeta>
+<refentrytitle>part.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>part.autolabel</refname>
+<refpurpose>Specifies the labeling format for Part titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="part.autolabel.frag">
+&lt;xsl:param name="part.autolabel"&gt;I&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then parts will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (upperroman).
+</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="reference.autolabel">
+<refmeta>
+<refentrytitle>reference.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>reference.autolabel</refname>
+<refpurpose>Specifies the labeling format for Reference titles</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="reference.autolabel.frag">
+  &lt;xsl:param name="reference.autolabel"&gt;I&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, references will be numbered using the parameter
+  value as the number format if the value matches one of the
+  following:
+</para>
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+<para>Any non-zero value other than the above will generate
+the default number format (upperroman).
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="preface.autolabel">
+<refmeta>
+<refentrytitle>preface.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>preface.autolabel</refname>
+<refpurpose>Specifices the labeling format for Preface titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="preface.autolabel.frag">&lt;xsl:param name="preface.autolabel" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero then prefaces will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (arabic).
+</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.autolabel">
+<refmeta>
+<refentrytitle>section.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.autolabel</refname>
+<refpurpose>Are sections enumerated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.autolabel.frag">&lt;xsl:param name="section.autolabel" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), unlabeled sections will be enumerated.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.autolabel.max.depth">
+<refmeta>
+<refentrytitle>section.autolabel.max.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.autolabel.max.depth</refname>
+<refpurpose>The deepest level of sections that are numbered.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.autolabel.max.depth.frag">
+&lt;xsl:param name="section.autolabel.max.depth"&gt;8&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When section numbering is turned on by the
+<parameter>section.autolabel</parameter> parameter, then this
+parameter controls the depth of <tag>section</tag> nesting that is
+numbered.  Sections nested to a level deeper than this value will not
+be numbered.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.label.includes.component.label">
+<refmeta>
+<refentrytitle>section.label.includes.component.label</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.label.includes.component.label</refname>
+<refpurpose>Do section labels include the component label?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.label.includes.component.label.frag">&lt;xsl:param name="section.label.includes.component.label" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, section labels are prefixed with the label of the
+component that contains them.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="label.from.part">
+<refmeta>
+<refentrytitle>label.from.part</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>label.from.part</refname>
+<refpurpose>Renumber components in each part?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="label.from.part.frag">
+&lt;xsl:param name="label.from.part" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>label.from.part</parameter> is non-zero, then
+  numbering of components &#8212; <tag>preface</tag>,
+  <tag>chapter</tag>, <tag>appendix</tag>, and
+  <tag>reference</tag> (when <tag>reference</tag> occurs at the
+  component level) &#8212; is re-started within each
+  <tag>part</tag>.</para>
+<para>If <parameter>label.from.part</parameter> is zero (the
+  default), numbering of components is <emphasis>not</emphasis>
+  re-started within each <tag>part</tag>; instead, components are
+  numbered sequentially throughout each <tag>book</tag>,
+  regardless of whether or not they occur within <tag>part</tag>
+  instances.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="component.label.includes.part.label">
+<refmeta>
+<refentrytitle>component.label.includes.part.label</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>component.label.includes.part.label</refname>
+<refpurpose>Do component labels include the part label?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="component.label.includes.part.label.frag">&lt;xsl:param name="component.label.includes.part.label" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, number labels for <tag>chapter</tag>,
+<tag>appendix</tag>, and other component elements are prefixed with
+the label of the part element that contains them.  So you might see
+Chapter II.3 instead of Chapter 3.  Also, the labels for formal
+elements such as <tag>table</tag> and <tag>figure</tag> will include
+the part label.  If there is no part element container, then no prefix
+is generated.
+</para>
+<para>
+This feature is most useful when the
+<parameter>label.from.part</parameter> parameter is turned on.
+In that case, there would be more than one <tag>chapter</tag>
+<quote>1</quote>, and the extra part label prefix will identify
+each chapter unambiguously.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="xslt" xml:base="../fo/param.xml"><title>XSLT Processing</title>
+<refentry version="5.0" id="rootid">
+<refmeta>
+<refentrytitle>rootid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>rootid</refname>
+<refpurpose>Specify the root element to format</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="rootid.frag">
+&lt;xsl:param name="rootid"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>rootid</parameter> is not empty, it must be the
+value of an ID that occurs in the document being formatted. The entire
+document will be loaded and parsed, but formatting will begin at the
+element identified, rather than at the root. For example, this allows
+you to process only <tag>chapter</tag> 4 of a <tag>book</tag>.</para>
+<para>Because the entire document is available to the processor, automatic
+numbering, cross references, and other dependencies are correctly
+resolved.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="meta" xml:base="../fo/param.xml"><title>Meta/*Info</title>
+<refentry version="5.0" id="make.single.year.ranges">
+<refmeta>
+<refentrytitle>make.single.year.ranges</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.single.year.ranges</refname>
+<refpurpose>Print single-year ranges (e.g., 1998-1999)</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="make.single.year.ranges.frag">
+&lt;xsl:param name="make.single.year.ranges" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, year ranges that span a single year will be printed
+in range notation (1998-1999) instead of discrete notation
+(1998, 1999).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="make.year.ranges">
+<refmeta>
+<refentrytitle>make.year.ranges</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.year.ranges</refname>
+<refpurpose>Collate copyright years into ranges?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="make.year.ranges.frag">&lt;xsl:param name="make.year.ranges" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, multiple copyright <tag>year</tag> elements will be
+collated into ranges.
+This works only if each year number is put into a separate
+year element.  The copyright element permits multiple
+year elements. If a year element contains a dash or
+a comma, then that year element will not be merged into
+any range.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="author.othername.in.middle">
+<refmeta>
+<refentrytitle>author.othername.in.middle</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>author.othername.in.middle</refname>
+<refpurpose>Is <tag>othername</tag> in <tag>author</tag> a
+middle name?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="author.othername.in.middle.frag">
+&lt;xsl:param name="author.othername.in.middle" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the <tag>othername</tag> of an <tag>author</tag>
+appears between the <tag>firstname</tag> and
+<tag>surname</tag>.  Otherwise, <tag>othername</tag>
+is suppressed.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="refentry" xml:base="../fo/param.xml"><title>Reference Pages</title>
+<refentry version="5.0" id="funcsynopsis.decoration">
+<refmeta>
+<refentrytitle>funcsynopsis.decoration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>funcsynopsis.decoration</refname>
+<refpurpose>Decorate elements of a <tag>funcsynopsis</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="funcsynopsis.decoration.frag">
+&lt;xsl:param name="funcsynopsis.decoration" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, elements of the <tag>funcsynopsis</tag> will be
+decorated (e.g. rendered as bold or italic text). The decoration is controlled by
+templates that can be redefined in a customization layer.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="funcsynopsis.style">
+<refmeta>
+<refentrytitle>funcsynopsis.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ansi</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kr</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>funcsynopsis.style</refname>
+<refpurpose>What style of <tag>funcsynopsis</tag> should be generated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="funcsynopsis.style.frag">&lt;xsl:param name="funcsynopsis.style"&gt;kr&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>funcsynopsis.style</parameter> is <literal>ansi</literal>,
+ANSI-style function synopses are generated for a
+<tag>funcsynopsis</tag>, otherwise K&amp;R-style
+function synopses are generated.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="function.parens">
+<refmeta>
+<refentrytitle>function.parens</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>function.parens</refname>
+<refpurpose>Generate parens after a function?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="function.parens.frag">
+&lt;xsl:param name="function.parens" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the formatting of a <tag>function</tag> element
+will include generated parentheses.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.generate.name">
+<refmeta>
+<refentrytitle>refentry.generate.name</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.generate.name</refname>
+<refpurpose>Output NAME header before <tag>refname</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.generate.name.frag">
+&lt;xsl:param name="refentry.generate.name" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a "NAME" section title is output before the list
+of <tag>refname</tag>s. This parameter and
+<parameter>refentry.generate.title</parameter> are mutually
+exclusive. This means that if you change this parameter to zero, you
+should set <parameter>refentry.generate.title</parameter> to non-zero unless
+you want get quite strange output.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.generate.title">
+<refmeta>
+<refentrytitle>refentry.generate.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.generate.title</refname>
+<refpurpose>Output title before <tag>refname</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.generate.title.frag">
+&lt;xsl:param name="refentry.generate.title" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the reference page title or first name is
+output before the list of <tag>refname</tag>s. This parameter and
+<parameter>refentry.generate.name</parameter> are mutually exclusive.
+This means that if you change this parameter to non-zero, you
+should set <parameter>refentry.generate.name</parameter> to zero unless
+you want get quite strange output.</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.pagebreak">
+<refmeta>
+<refentrytitle>refentry.pagebreak</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.pagebreak</refname>
+<refpurpose>Start each refentry on a new page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.pagebreak.frag">&lt;xsl:param name="refentry.pagebreak" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero (the default), each <tag>refentry</tag>
+element will start on a new page.  If zero, a page
+break will not be generated between <tag>refentry</tag> elements.
+The exception is when the <tag>refentry</tag> elements are children of
+a <tag>part</tag> element, in which case the page breaks are always
+retained.  That is because a <tag>part</tag> element does not generate
+a page-sequence for its children, so each <tag>refentry</tag> must
+start its own page-sequence.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.title.properties">
+<refmeta>
+<refentrytitle>refentry.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.title.properties</refname>
+<refpurpose>Title properties for a refentry title</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.title.properties.frag">
+&lt;xsl:attribute-set name="refentry.title.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$title.fontset"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-size"&gt;18pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1.0em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.4em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;0.6em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="start-indent"&gt;&lt;xsl:value-of select="$title.margin.left"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Formatting properties applied to the title generated for the
+<tag>refnamediv</tag> part of output for
+<tag>refentry</tag> when the value of the
+<parameter>refentry.generate.title</parameter> parameter is
+non-zero. The font size is supplied by the appropriate <parameter>section.level<replaceable>X</replaceable>.title.properties</parameter>
+attribute-set, computed from the location of the
+<tag>refentry</tag> in the section hierarchy.</para>
+
+<note>
+  <para>This parameter has no effect on the the title generated for
+  the <tag>refnamediv</tag> part of output for
+  <tag>refentry</tag> when the value of the
+  <parameter>refentry.generate.name</parameter> parameter is
+  non-zero. By default, that title is formatted with the same
+  properties as the titles for all other first-level children of
+  <tag>refentry</tag>.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.xref.manvolnum">
+<refmeta>
+<refentrytitle>refentry.xref.manvolnum</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.xref.manvolnum</refname>
+<refpurpose>Output <tag>manvolnum</tag> as part of 
+<tag>refentry</tag> cross-reference?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.xref.manvolnum.frag">
+&lt;xsl:param name="refentry.xref.manvolnum" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>if non-zero, the <tag>manvolnum</tag> is used when cross-referencing
+<tag>refentry</tag>s, either with <tag>xref</tag>
+or <tag>citerefentry</tag>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refclass.suppress">
+<refmeta>
+<refentrytitle>refclass.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refclass.suppress</refname>
+<refpurpose>Suppress display of refclass contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refclass.suppress.frag">
+&lt;xsl:param name="refclass.suppress" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>refclass.suppress</parameter> is
+non-zero, then display of <tag>refclass</tag> contents is
+suppressed in output.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="tables" xml:base="../fo/param.xml"><title>Tables</title>
+<refentry version="5.0" id="default.table.width">
+<refmeta>
+<refentrytitle>default.table.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.table.width</refname>
+<refpurpose>The default width of tables</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="default.table.width.frag">
+&lt;xsl:param name="default.table.width"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, this value will be used for the
+<literal>width</literal> attribute on <tag>table</tag>s that do not specify an
+alternate width (with the <tag class="xmlpi">dbhtml table-width</tag> or 
+<tag class="xmlpi">dbfo table-width</tag> processing instruction).</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="nominal.table.width">
+<refmeta>
+<refentrytitle>nominal.table.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nominal.table.width</refname>
+<refpurpose>The (absolute) nominal width of tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="nominal.table.width.frag">
+&lt;xsl:param name="nominal.table.width"&gt;6in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In order to convert CALS column widths into HTML column widths, it
+is sometimes necessary to have an absolute table width to use for conversion
+of mixed absolute and relative widths. This value must be an absolute
+length (not a percentage).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="default.table.frame">
+<refmeta>
+<refentrytitle>default.table.frame</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.table.frame</refname>
+<refpurpose>The default framing of tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="default.table.frame.frag">
+&lt;xsl:param name="default.table.frame"&gt;all&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This value will be used when there is no frame attribute on the
+table. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="default.table.rules">
+<refmeta>
+<refentrytitle>default.table.rules</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.table.rules</refname>
+<refpurpose>The default column and row rules for tables using HTML markup</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="default.table.rules.frag">
+&lt;xsl:param name="default.table.rules"&gt;none&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Tables using HTML markup elements can use an attribute
+named <tag class="attribute">rules</tag> on the <tag>table</tag> or
+<tag>informaltable</tag> element
+to specify whether column and row border rules should be 
+displayed. This parameter lets you specify a global default
+style for all HTML tables that don't otherwise have
+that attribute.</para>
+<para>These are the supported values:</para>
+
+<variablelist>
+<varlistentry><term>all</term>
+<listitem>
+<para>Rules will appear between all rows and columns.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>rows</term>
+<listitem>
+<para>Rules will appear between rows only.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>cols</term>
+<listitem>
+<para>Rules will appear between columns only.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>groups</term>
+<listitem>
+<para>Rules will appear between row groups (thead, tfoot, tbody).
+No support for rules between column groups yet.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>none</term>
+<listitem>
+<para>No rules.  This is the default value.
+</para>
+</listitem>
+</varlistentry>
+
+</variablelist>
+
+<para>The border after the last row and the border after
+the last column are not affected by
+this setting. Those borders are controlled by
+the <tag class="attribute">frame</tag> attribute on the table element.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.cell.padding">
+<refmeta>
+<refentrytitle>table.cell.padding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.padding</refname>
+<refpurpose>Specifies the padding of table cells</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.cell.padding.frag">
+&lt;xsl:attribute-set name="table.cell.padding"&gt;
+  &lt;xsl:attribute name="padding-start"&gt;2pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-end"&gt;2pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-top"&gt;2pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-bottom"&gt;2pt&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the padding of table cells.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.frame.border.thickness">
+<refmeta>
+<refentrytitle>table.frame.border.thickness</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.thickness</refname>
+<refpurpose>Specifies the thickness of the frame border</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.frame.border.thickness.frag">
+&lt;xsl:param name="table.frame.border.thickness"&gt;0.5pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the thickness of the border on the table's frame.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.frame.border.style">
+<refmeta>
+<refentrytitle>table.frame.border.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dotted</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dashed</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">double</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">groove</refmiscinfo>                       
+<refmiscinfo class="other" otherclass="value">ridge</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">inset</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outset</refmiscinfo>          
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.style</refname>
+<refpurpose>Specifies the border style of table frames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.frame.border.style.frag">
+&lt;xsl:param name="table.frame.border.style"&gt;solid&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border style of table frames.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.frame.border.color">
+<refmeta>
+<refentrytitle>table.frame.border.color</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.color</refname>
+<refpurpose>Specifies the border color of table frames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.frame.border.color.frag">
+
+&lt;xsl:param name="table.frame.border.color"&gt;black&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border color of table frames.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.cell.border.thickness">
+<refmeta>
+<refentrytitle>table.cell.border.thickness</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.thickness</refname>
+<refpurpose>Specifies the thickness of table cell borders</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.cell.border.thickness.frag">
+&lt;xsl:param name="table.cell.border.thickness"&gt;0.5pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, specifies the thickness of borders on table
+cells. The units are points. See <link xlink:href="http://www.w3.org/TR/CSS21/box.html#border-width-properties">
+CSS</link></para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.cell.border.style">
+<refmeta>
+<refentrytitle>table.cell.border.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dotted</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dashed</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">double</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">groove</refmiscinfo>                       
+<refmiscinfo class="other" otherclass="value">ridge</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">inset</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outset</refmiscinfo>          
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.style</refname>
+<refpurpose>Specifies the border style of table cells</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.cell.border.style.frag">
+&lt;xsl:param name="table.cell.border.style"&gt;solid&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border style of table cells.</para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.cell.border.color">
+<refmeta>
+<refentrytitle>table.cell.border.color</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.color</refname>
+<refpurpose>Specifies the border color of table cells</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.cell.border.color.frag">
+
+&lt;xsl:param name="table.cell.border.color"&gt;black&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the color of table cell borders. If non-zero, the value is used
+for the border coloration. See <link xlink:href="http://www.w3.org/TR/CSS21/syndata.html#value-def-color">CSS</link>. A
+<literal>color</literal> is either a keyword or a numerical RGB specification.
+Keywords are aqua, black, blue, fuchsia, gray, green, lime, maroon,
+navy, olive, orange, purple, red, silver, teal, white, and
+yellow.</para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.table.properties">
+<refmeta>
+<refentrytitle>table.table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.table.properties</refname>
+<refpurpose>Properties associated with a table</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.table.properties.frag">
+&lt;xsl:attribute-set name="table.table.properties"&gt;
+  &lt;xsl:attribute name="border-before-width.conditionality"&gt;retain&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="border-collapse"&gt;collapse&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for tables. This parameter should really
+have been called <literal>table.properties</literal>, but that parameter
+name was inadvertently established for the block-level properties
+of the table as a whole.
+</para>
+
+<para>See also <parameter>table.properties</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.caption.properties">
+<refmeta>
+<refentrytitle>table.caption.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.caption.properties</refname>
+<refpurpose>Properties associated with a table caption</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.caption.properties.frag">
+&lt;xsl:attribute-set name="table.caption.properties"&gt;
+  &lt;xsl:attribute name="keep-together.within-column"&gt;always&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for table caption element (not the table title).</para>
+
+<para>See also <parameter>table.properties</parameter>.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="links" xml:base="../fo/param.xml"><title>Linking</title>
+<refentry version="5.0" id="current.docid"> 
+<refmeta> 
+<refentrytitle>current.docid</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>current.docid</refname> 
+<refpurpose>targetdoc identifier for the document being
+processed</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="current.docid.frag">
+&lt;xsl:param name="current.docid"&gt;&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When olinks between documents are resolved for HTML output, the stylesheet can compute the relative path between the current document and the target document. The stylesheet needs to know the <literal>targetdoc</literal> identifiers for both documents, as they appear in the <parameter>target.database.document</parameter> database file. This parameter passes to the stylesheet
+the targetdoc identifier of the current document, since that
+identifier does not appear in the document itself. </para>
+<para>This parameter can also be used for print output. If an olink's  <literal>targetdoc</literal>  id differs from the <literal>current.docid</literal>, then the stylesheet can append the target document's title to the generated olink text. That identifies to the reader that the link is to a different document, not the current document. See also <parameter>olink.doctitle</parameter> to enable that feature.</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" id="collect.xref.targets"> 
+<refmeta> 
+<refentrytitle>collect.xref.targets</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">only</refmiscinfo>
+</refmeta> 
+<refnamediv> 
+<refname>collect.xref.targets</refname> 
+<refpurpose>Controls whether cross reference data is
+collected</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="collect.xref.targets.frag">
+&lt;xsl:param name="collect.xref.targets"&gt;no&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>
+In order to resolve olinks efficiently, the stylesheets can
+generate an external data file containing information about
+all potential cross reference endpoints in a document.
+This parameter determines whether the collection process is run when the document is processed by the stylesheet. The default value is  <literal>no</literal>, which means the data file is not generated during processing. The other choices are <literal>yes</literal>, which means the data file is created and the document is processed for output, and <literal>only</literal>, which means the data file is created but the document is not processed for output.
+See also <parameter>targets.filename</parameter>.
+</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" id="insert.olink.page.number">
+<refmeta>
+<refentrytitle>insert.olink.page.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.olink.page.number</refname>
+<refpurpose>Turns page numbers in olinks on and off</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="insert.olink.page.number.frag">
+&lt;xsl:param name="insert.olink.page.number"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines if
+cross references made between documents with
+<tag>olink</tag> will 
+include page number citations.
+In most cases this is only applicable to references in printed output.
+</para>
+<para>The parameter has three possible values.
+</para>
+<variablelist>
+<varlistentry>
+<term>no</term>
+<listitem><para>No page number references will be generated for olinks.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>yes</term>
+<listitem><para>Page number references will be generated
+for all <tag>olink</tag> references.
+The style of page reference may be changed
+if an <tag class="attribute">xrefstyle</tag>
+attribute is used.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>maybe</term>
+<listitem><para>Page number references will not be generated
+for an <tag>olink</tag> element unless 
+it has an
+<tag class="attribute">xrefstyle</tag>
+attribute whose value specifies a page reference.
+</para></listitem>
+</varlistentry>
+</variablelist>
+<para>Olinks that point to targets within the same document
+are treated as <tag>xref</tag>s, and controlled by
+the <parameter>insert.xref.page.number</parameter> parameter.
+</para>
+
+<para>Page number references for olinks to
+external documents can only be inserted if the 
+information exists in the olink database. 
+This means each olink target element 
+(<tag>div</tag> or <tag>obj</tag>)
+must have a <tag class="attribute">page</tag> attribute
+whose value is its page number in the target document.
+The XSL stylesheets are not able to extract that information
+during processing because pages have not yet been created in
+XSLT transformation.  Only the XSL-FO processor knows what
+page each element is placed on.
+Therefore some postprocessing must take place to populate
+page numbers in the olink database.
+</para>
+
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="insert.olink.pdf.frag">
+<refmeta>
+<refentrytitle>insert.olink.pdf.frag</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.olink.pdf.frag</refname>
+<refpurpose>Add fragment identifiers for links into PDF files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="insert.olink.pdf.frag.frag">
+&lt;xsl:param name="insert.olink.pdf.frag" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines whether
+the cross reference URIs to PDF documents made with
+<tag>olink</tag> will 
+include fragment identifiers.
+</para>
+
+<para>When forming a URI to link to a PDF document,
+a fragment identifier (typically a '#' followed by an
+id value) appended to the PDF filename can be used by
+the PDF viewer to open
+the PDF file to a location within the document instead of
+the first page.
+However, not all PDF files have id
+values embedded in them, and not all PDF viewers can
+handle fragment identifiers. 
+</para>
+
+<para>If <parameter>insert.olink.pdf.frag</parameter> is set
+to a non-zero value, then any olink targeting a
+PDF file will have the fragment identifier appended to the URI.
+The URI is formed by concatenating the value of the
+<parameter>olink.base.uri</parameter> parameter, the
+value of the <tag class="attribute">baseuri</tag>
+attribute from the <tag class="element">document</tag>
+element in the olink database with the matching
+<tag class="attribute">targetdoc</tag> value,
+and the value of the <tag class="attribute">href</tag>
+attribute for the targeted element in the olink database.
+The <tag class="attribute">href</tag> attribute
+contains the fragment identifier.
+</para>
+
+<para>If <parameter>insert.olink.pdf.frag</parameter> is set
+to zero (the default value), then 
+the <tag class="attribute">href</tag> attribute
+from the olink database
+is not appended to PDF olinks, so the fragment identifier is left off.
+A PDF olink is any olink for which the
+<tag class="attribute">baseuri</tag> attribute
+from the matching <tag class="element">document</tag>
+element in the olink database ends with '.pdf'.
+Any other olinks will still have the fragment identifier added.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="olink.base.uri"> 
+<refmeta> 
+<refentrytitle>olink.base.uri</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>olink.base.uri</refname> 
+<refpurpose>Base URI used in olink hrefs</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="olink.base.uri.frag">
+&lt;xsl:param name="olink.base.uri"&gt;&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When cross reference data is collected for resolving olinks, it
+may be necessary to prepend a base URI to each target's href. This
+parameter lets you set that base URI when cross reference data is
+collected. This feature is needed when you want to link to a document
+that is processed without chunking. The output filename for such a
+document is not known to the XSL stylesheet; the only target
+information consists of fragment identifiers such as
+<literal>#idref</literal>. To enable the resolution of olinks between
+documents, you should pass the name of the HTML output file as the
+value of this parameter. Then the hrefs recorded in the cross
+reference data collection look like
+<literal>outfile.html#idref</literal>, which can be reached as links
+from other documents.</para>
+</refsection> 
+</refentry>
+
+<refentry version="5.0" id="olink.debug">
+<refmeta>
+<refentrytitle>olink.debug</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.debug</refname>
+<refpurpose>Turn on debugging messages for olinks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="olink.debug.frag">
+&lt;xsl:param name="olink.debug" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then each olink will generate several
+messages about how it is being resolved during processing.
+This is useful when an olink does not resolve properly
+and the standard error messages are not sufficient to
+find the problem. 
+</para>
+
+<para>You may need to read through the olink XSL templates
+to understand the context for some of the debug messages.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="olink.doctitle"> 
+<refmeta> 
+<refentrytitle>olink.doctitle</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta> 
+<refnamediv> 
+<refname>olink.doctitle</refname> 
+<refpurpose>show the document title for external olinks?</refpurpose>
+
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="olink.doctitle.frag">
+&lt;xsl:param name="olink.doctitle"&gt;no&lt;/xsl:param&gt; 
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When olinks between documents are resolved, the generated text
+may not make it clear that the reference is to another document.
+It is possible for the stylesheets to append the other document's
+title to external olinks. For this to happen, two parameters must
+be set.</para>
+<itemizedlist>
+<listitem>
+<para>This <parameter>olink.doctitle</parameter> parameter
+should be set to either <literal>yes</literal> or <literal>maybe</literal>
+to enable this feature.
+</para>
+</listitem>
+<listitem>
+<para>And you should also set the <parameter>current.docid</parameter>
+parameter to the document id for the  document currently
+being processed for output.
+</para>
+</listitem>
+</itemizedlist>
+
+<para>
+Then if an olink's  <literal>targetdoc</literal> id differs from
+the <literal>current.docid</literal> value, the stylesheet knows
+that it is a reference to another document and can
+append the target document's
+title to the generated olink text. </para> 
+
+<para>The text for the target document's title is copied from the
+olink database from the <tag>ttl</tag> element
+of the top-level <tag>div</tag> for that document.
+If that <tag>ttl</tag> element is missing or empty,
+no title is output.
+</para>
+
+<para>The supported values for <parameter>olink.doctitle</parameter> are:
+</para>
+<variablelist>
+<varlistentry>
+<term><literal>yes</literal></term>
+<listitem>
+<para>
+Always insert the title to the target document if it is not
+the current document.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>no</literal></term>
+<listitem>
+<para>
+Never insert the title to the target document, even if requested
+in an <tag class="attribute">xrefstyle</tag> attribute.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>maybe</literal></term>
+<listitem>
+<para>
+Only insert the title to the target document, if requested
+in an <tag class="attribute">xrefstyle</tag> attribute.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>An <tag class="attribute">xrefstyle</tag> attribute
+may override the global setting for individual olinks.
+The following values are supported in an
+<tag class="attribute">xrefstyle</tag>
+attribute using the <literal>select:</literal> syntax:
+</para>
+
+<variablelist>
+<varlistentry>
+<term><literal>docname</literal></term>
+<listitem>
+<para>
+Insert the target document name for this olink using the
+<literal>docname</literal> gentext template, but only
+if the value of <parameter>olink.doctitle</parameter>
+is not <literal>no</literal>.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>docnamelong</literal></term>
+<listitem>
+<para>
+Insert the target document name for this olink using the
+<literal>docnamelong</literal> gentext template, but only
+if the value of <parameter>olink.doctitle</parameter>
+is not <literal>no</literal>.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>nodocname</literal></term>
+<listitem>
+<para>
+Omit the target document name even if
+the value of <parameter>olink.doctitle</parameter>
+is <literal>yes</literal>.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>Another way of inserting the target document name 
+for a single olink is to employ an
+<tag class="attribute">xrefstyle</tag>
+attribute using the <literal>template:</literal> syntax.
+The <literal>%o</literal> placeholder (the letter o, not zero)
+in such a template
+will be filled in with the target document's title when it is processed.
+This will occur regardless of 
+the value of <parameter>olink.doctitle</parameter>.
+</para>
+<para>Note that prior to version 1.66 of the XSL stylesheets,
+the allowed values for this parameter were 0 and 1.  Those
+values are still supported and mapped to 'no' and 'yes', respectively.
+</para>
+</refsection> 
+</refentry>
+
+<refentry version="5.0" id="olink.lang.fallback.sequence"> 
+<refmeta> 
+<refentrytitle>olink.lang.fallback.sequence</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>olink.lang.fallback.sequence</refname> 
+<refpurpose>look up translated documents if olink not found?</refpurpose>
+
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="olink.lang.fallback.sequence.frag">
+&lt;xsl:param name="olink.lang.fallback.sequence"&gt;&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+
+<para>This parameter defines a list of lang values
+to search among to resolve olinks.
+</para>
+
+<para>Normally an olink tries to resolve to a document in the same
+language as the olink itself.  The language of an olink
+is determined by its nearest ancestor element with a
+<tag class="attribute">lang</tag> attribute, otherwise the
+value of the <parameter>l10n.gentext.default.lang</parameter>
+parameter.
+</para>
+
+<para>An olink database can contain target data for the same
+document in multiple languages.  Each set of data has the
+same value for the <tag>targetdoc</tag> attribute in
+the <tag>document</tag> element in the database, but with a 
+different <tag>lang</tag> attribute value.
+</para>
+
+<para>When an olink is being resolved, the target is first
+sought in the document with the same language as the olink.
+If no match is found there, then this parameter is consulted
+for additional languages to try.</para>
+
+<para>The <parameter>olink.lang.fallback.sequence</parameter>
+must be a whitespace separated list of lang values to
+try.  The first one with a match in the olink database is used.
+The default value is empty.</para>
+
+<para>For example, a document might be written in German
+and contain an olink with
+<literal>targetdoc="adminguide"</literal>.
+When the document is processed, the processor
+first looks for a target dataset in the
+olink database starting with:</para>
+
+<literallayout><literal>&lt;document targetdoc="adminguide" lang="de"&gt;</literal>.
+</literallayout>
+
+<para>If there is no such element, then the
+<parameter>olink.lang.fallback.sequence</parameter> 
+parameter is consulted.
+If its value is, for example, <quote>fr en</quote>, then the processor next
+looks for <literal>targetdoc="adminguide" lang="fr"</literal>, and
+then for <literal>targetdoc="adminguide" lang="en"</literal>.
+If there is still no match, it looks for
+<literal>targetdoc="adminguide"</literal> with no
+lang attribute.
+</para>
+
+<para>This parameter is useful when a set of documents is only
+partially translated, or is in the process of being translated.  
+If a target of an olink has not yet been translated, then this
+parameter permits the processor to look for the document in
+other languages.  This assumes the reader would rather have
+a link to a document in a different language than to have
+a broken link.
+</para>
+
+</refsection> 
+</refentry>
+
+<refentry version="5.0" id="olink.properties">
+<refmeta>
+<refentrytitle>olink.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.properties</refname>
+<refpurpose>Properties associated with the cross-reference 
+text of an olink.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="olink.properties.frag">
+&lt;xsl:attribute-set name="olink.properties"&gt;
+  &lt;xsl:attribute name="show-destination"&gt;replace&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This <literal>attribute set</literal> is applied to the
+<literal>fo:basic-link</literal> element of an olink. It is not applied to the
+optional page number or optional title of the external
+document.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="prefer.internal.olink">
+<refmeta>
+<refentrytitle>prefer.internal.olink</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>prefer.internal.olink</refname>
+<refpurpose>Prefer a local olink reference to an external reference</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="prefer.internal.olink.frag">
+&lt;xsl:param name="prefer.internal.olink" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you are re-using XML content modules in multiple documents,
+you may want to redirect some of your olinks.  This parameter
+permits you to redirect an olink to the current document.
+</para>
+
+<para>For example: you are writing documentation for a  product, 
+which includes 3 manuals: a little installation
+booklet (booklet.xml), a user 
+guide (user.xml), and a reference manual (reference.xml).
+All 3 documents begin with the same introduction section (intro.xml) that 
+contains a reference to the customization section (custom.xml) which is 
+included in both user.xml and reference.xml documents.
+</para>
+
+<para>How do you write the link to custom.xml in intro.xml
+so that it is interpreted correctly in all 3 documents?</para>
+<itemizedlist>
+<listitem><para>If you use xref, it will fail in user.xml.</para>
+</listitem>
+<listitem><para>If you use olink (pointing to reference.xml),
+the reference in user.xml  
+will point to the customization section of the reference manual, while it is 
+actually available in user.xml.</para>
+</listitem>
+</itemizedlist>
+
+<para>If you set the <parameter>prefer.internal.olink</parameter>
+parameter to a non-zero value, then the processor will
+first look in the olink database
+for the olink's <tag>targetptr</tag> attribute value
+in document matching the <parameter>current.docid</parameter>
+parameter value.  If it isn't found there, then
+it tries the document in the database
+with the <tag>targetdoc</tag>
+value that matches the olink's <tag>targetdoc</tag>
+attribute.
+</para>
+
+<para>This feature permits an olink reference to resolve to
+the current document if there is an element
+with an id matching the olink's <tag>targetptr</tag>
+value.  The current document's olink data must be
+included in the target database for this to work.</para>
+
+<caution>
+<para>There is a potential for incorrect links if
+the same <tag>id</tag> attribute value is used for different
+content in different documents.
+Some of your olinks may be redirected to the current document
+when they shouldn't be.  It is not possible to control
+individual olink instances.</para>
+</caution>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="target.database.document"> 
+<refmeta> 
+<refentrytitle>target.database.document</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>target.database.document</refname> 
+<refpurpose>Name of master database file for resolving
+olinks</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> 
+<programlisting id="target.database.document.frag">
+ &lt;xsl:param name="target.database.document"&gt;olinkdb.xml&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info>
+ 
+<para>
+To resolve olinks between documents, the stylesheets use a master
+database document that identifies the target datafiles for all the
+documents within the scope of the olinks. This parameter value is the
+URI of the master document to be read during processing to resolve
+olinks.  The default value is <filename>olinkdb.xml</filename>.</para>
+
+<para>The data structure of the file is defined in the
+<filename>targetdatabase.dtd</filename> DTD.  The database file
+provides the high level elements to record the identifiers, locations,
+and relationships of documents. The cross reference data for
+individual documents is generally pulled into the database using
+system entity references or XIncludes. See also
+<parameter>targets.filename</parameter>.  </para> </refsection>
+</refentry>
+
+<refentry version="5.0" id="targets.filename"> 
+<refmeta> 
+<refentrytitle>targets.filename</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>targets.filename</refname> 
+<refpurpose>Name of cross reference targets data file</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="targets.filename.frag">
+&lt;xsl:param name="targets.filename"&gt;target.db&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info>
+ 
+<para>
+In order to resolve olinks efficiently, the stylesheets can
+generate an external data file containing information about
+all potential cross reference endpoints in a document.
+This parameter lets you change the name of the generated
+file from the default name <filename>target.db</filename>.
+The name must agree with that used in the target database
+used to resolve olinks during processing.
+See also <parameter>target.database.document</parameter>.
+</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" id="use.local.olink.style"> 
+<refmeta> 
+<refentrytitle>use.local.olink.style</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>use.local.olink.style</refname> 
+<refpurpose>Process olinks using xref style of current
+document</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="use.local.olink.style.frag">
+&lt;xsl:param name="use.local.olink.style" select="0"&gt;&lt;/xsl:param&gt; </programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When cross reference data is collected for use by olinks, the data for each potential target includes one field containing a completely assembled cross reference string, as if it were an xref generated in that document. Other fields record the separate title, number, and element name of each target. When an olink is formed to a target from another document, the olink resolves to that preassembled string by default. If the <parameter>use.local.olink.style</parameter> parameter is set to non-zero, then instead the cross
+reference string is formed again from the target title, number, and
+element name, using the stylesheet processing the targeting document.
+Then olinks will match the xref style in the targeting document
+rather than in the target document. If  both documents are processed
+with the same stylesheet, then the results will be the same.</para> 
+</refsection> 
+</refentry>
+
+</reference><reference id="xrefs" xml:base="../fo/param.xml"><title>Cross References</title>
+<refentry version="5.0" id="insert.xref.page.number">
+<refmeta>
+<refentrytitle>insert.xref.page.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.xref.page.number</refname>
+<refpurpose>Turns page numbers in xrefs on and off</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="insert.xref.page.number.frag">
+&lt;xsl:param name="insert.xref.page.number"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines if
+cross references (<tag>xref</tag>s) in
+printed output will
+include page number citations.
+It has three possible values.
+</para>
+<variablelist>
+<varlistentry>
+<term>no</term>
+<listitem><para>No page number references will be generated.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>yes</term>
+<listitem><para>Page number references will be generated
+for all <tag>xref</tag> elements.
+The style of page reference may be changed
+if an <tag class="attribute">xrefstyle</tag>
+attribute is used.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>maybe</term>
+<listitem><para>Page number references will not be generated
+for an <tag>xref</tag> element unless 
+it has an
+<tag class="attribute">xrefstyle</tag>
+attribute whose value specifies a page reference.
+</para></listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="xref.properties">
+<refmeta>
+<refentrytitle>xref.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.properties</refname>
+<refpurpose>Properties associated with cross-reference text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="xref.properties.frag">
+&lt;xsl:attribute-set name="xref.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is used to set properties
+on cross reference text.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="xref.label-title.separator">
+<refmeta>
+<refentrytitle>xref.label-title.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.label-title.separator</refname>
+<refpurpose>Punctuation or space separating label from title in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="xref.label-title.separator.frag">&lt;xsl:param name="xref.label-title.separator"&gt;: &lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both label and title,
+then the value of this parameter is inserted between
+label and title in the output.  
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="xref.label-page.separator">
+<refmeta>
+<refentrytitle>xref.label-page.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.label-page.separator</refname>
+<refpurpose>Punctuation or space separating label from page number in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="xref.label-page.separator.frag">&lt;xsl:param name="xref.label-page.separator"&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both label and page
+but no title,
+then the value of this parameter is inserted between
+label and page number in the output.  
+If a title is included, then other separators are used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="xref.title-page.separator">
+<refmeta>
+<refentrytitle>xref.title-page.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.title-page.separator</refname>
+<refpurpose>Punctuation or space separating title from page number in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="xref.title-page.separator.frag">&lt;xsl:param name="xref.title-page.separator"&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both title and page number,
+then the value of this parameter is inserted between
+title and page number in the output.  
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="insert.link.page.number">
+<refmeta>
+<refentrytitle>insert.link.page.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.link.page.number</refname>
+<refpurpose>Turns page numbers in link elements on and off</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="insert.link.page.number.frag">
+&lt;xsl:param name="insert.link.page.number"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines if
+cross references using the <tag>link</tag> element in
+printed output will
+include standard page number citations.
+It has three possible values.
+</para>
+<variablelist>
+<varlistentry>
+<term>no</term>
+<listitem><para>No page number references will be generated.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>yes</term>
+<listitem><para>Page number references will be generated
+for all <tag>link</tag> elements.
+The style of page reference may be changed
+if an <tag class="attribute">xrefstyle</tag>
+attribute is used.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>maybe</term>
+<listitem><para>Page number references will not be generated
+for a <tag>link</tag> element unless 
+it has an
+<tag class="attribute">xrefstyle</tag>
+attribute whose value specifies a page reference.
+</para></listitem>
+</varlistentry>
+</variablelist>
+
+<para>Although the <tag>xrefstyle</tag> attribute
+can be used to turn the page reference on or off, it cannot be
+used to control the formatting of the page number as it
+can in <tag>xref</tag>.
+In <tag>link</tag> it will always format with
+the style established by the
+gentext template with <literal>name="page.citation"</literal>
+in the <literal>l:context name="xref"</literal>.
+</para>
+</refsection>
+</refentry>
+
+</reference><reference id="lists" xml:base="../fo/param.xml"><title>Lists</title>
+<refentry version="5.0" id="compact.list.item.spacing">
+<refmeta>
+<refentrytitle>compact.list.item.spacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>compact.list.item.spacing</refname>
+<refpurpose>What space do you want between list items (when spacing="compact")?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="compact.list.item.spacing.frag">&lt;xsl:attribute-set name="compact.list.item.spacing"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;0em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;0.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify what spacing you want between each list item when
+<tag class="attribute">spacing</tag> is
+<quote><literal>compact</literal></quote>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="itemizedlist.properties">
+<refmeta>
+<refentrytitle>itemizedlist.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>itemizedlist.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by itemizedlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="itemizedlist.properties.frag">&lt;xsl:attribute-set name="itemizedlist.properties" use-attribute-sets="list.block.properties"&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each fo:list-block generated by itemizedlist.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="itemizedlist.label.properties">
+<refmeta>
+<refentrytitle>itemizedlist.label.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>itemizedlist.label.properties</refname>
+<refpurpose>Properties that apply to each label inside itemized list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="itemizedlist.label.properties.frag">&lt;xsl:attribute-set name="itemizedlist.label.properties"&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each label inside itemized list. E.g.:</para>
+<programlisting>&lt;xsl:attribute-set name="itemizedlist.label.properties"&gt;
+  &lt;xsl:attribute name="text-align"&gt;right&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="itemizedlist.label.width">
+<refmeta>
+<refentrytitle>itemizedlist.label.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+  <refname>itemizedlist.label.width</refname>
+<refpurpose>The default width of the label (bullet) in an itemized list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+  <programlisting id="itemizedlist.label.width.frag">
+    &lt;xsl:param name="itemizedlist.label.width"&gt;1.0em&lt;/xsl:param&gt;
+  </programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Specifies the default width of the label (usually a bullet or other
+symbol) in an itemized list. You can override the default value on any
+particular list with the &#8220;dbfo&#8221; processing instruction using the
+&#8220;label-width&#8221; pseudoattribute.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="list.block.properties">
+<refmeta>
+<refentrytitle>list.block.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>list.block.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="list.block.properties.frag">&lt;xsl:attribute-set name="list.block.properties"&gt;
+  &lt;xsl:attribute name="provisional-label-separation"&gt;0.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="provisional-distance-between-starts"&gt;1.5em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each fo:list-block generated by itemizedlist/orderedlist.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="list.block.spacing">
+<refmeta>
+<refentrytitle>list.block.spacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>list.block.spacing</refname>
+<refpurpose>What spacing do you want before and after lists?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="list.block.spacing.frag">&lt;xsl:attribute-set name="list.block.spacing"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify the spacing required before and after a list. It is necessary to specify the space after a list block because lists can come inside of paras.  </para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="list.item.spacing">
+<refmeta>
+<refentrytitle>list.item.spacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>list.item.spacing</refname>
+<refpurpose>What space do you want between list items?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="list.item.spacing.frag">&lt;xsl:attribute-set name="list.item.spacing"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify what spacing you want between each list item.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="orderedlist.properties">
+<refmeta>
+<refentrytitle>orderedlist.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>orderedlist.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by orderedlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="orderedlist.properties.frag">&lt;xsl:attribute-set name="orderedlist.properties" use-attribute-sets="list.block.properties"&gt;
+  &lt;xsl:attribute name="provisional-distance-between-starts"&gt;2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each fo:list-block generated by orderedlist.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="orderedlist.label.properties">
+<refmeta>
+<refentrytitle>orderedlist.label.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>orderedlist.label.properties</refname>
+<refpurpose>Properties that apply to each label inside ordered list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="orderedlist.label.properties.frag">&lt;xsl:attribute-set name="orderedlist.label.properties"&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each label inside ordered list. E.g.:</para>
+<programlisting>&lt;xsl:attribute-set name="orderedlist.label.properties"&gt;
+  &lt;xsl:attribute name="text-align"&gt;right&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="orderedlist.label.width">
+<refmeta>
+<refentrytitle>orderedlist.label.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>orderedlist.label.width</refname>
+<refpurpose>The default width of the label (number) in an ordered list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="orderedlist.label.width.frag">
+&lt;xsl:param name="orderedlist.label.width"&gt;1.2em&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Specifies the default width of the label (usually a number or
+sequence of numbers) in an ordered list. You can override the default
+value on any particular list with the &#8220;dbfo&#8221; processing instruction
+using the &#8220;label-width&#8221; pseudoattribute.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="variablelist.max.termlength">
+<refmeta>
+<refentrytitle>variablelist.max.termlength</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">number</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.max.termlength</refname>
+<refpurpose>Specifies the longest term in variablelists</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="variablelist.max.termlength.frag">
+&lt;xsl:param name="variablelist.max.termlength"&gt;24&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In variablelists, the <tag>listitem</tag>
+is indented to leave room for the 
+<tag>term</tag> elements. That indent may be computed
+if it is not specified with a <tag class="attribute">termlength</tag>
+attribute on the <tag>variablelist</tag> element.
+</para>
+<para>
+The computation counts characters in the 
+<tag>term</tag> elements in the list
+to find the longest term.  However, some terms are very long
+and would produce extreme indents.  This parameter lets you
+set a maximum character count.  Any terms longer than the maximum
+would line wrap.  The default value is 24.
+</para>
+<para>
+The character counts are converted to physical widths
+by multiplying by 0.50em. There will be some variability
+in how many actual characters fit in the space
+since some characters are wider than others.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="variablelist.term.separator">
+<refmeta>
+<refentrytitle>variablelist.term.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.term.separator</refname>
+<refpurpose>Text to separate <tag>term</tag>s within a multi-term
+<tag>varlistentry</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="variablelist.term.separator.frag">
+&lt;xsl:param name="variablelist.term.separator"&gt;, &lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When a <tag>varlistentry</tag> contains multiple <tag>term</tag>
+elements, the string specified in the value of the
+<parameter>variablelist.term.separator</parameter> parameter is placed
+after each <tag>term</tag> except the last.</para>
+
+<note>
+  <para>To generate a line break between multiple <tag>term</tag>s in
+  a <tag>varlistentry</tag>, set a non-zero value for the
+  <parameter>variablelist.term.break.after</parameter> parameter. If
+  you do so, you may also want to set the value of the
+  <parameter>variablelist.term.separator</parameter> parameter to an
+  empty string (to suppress rendering of the default comma and space
+  after each <tag>term</tag>).</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="variablelist.term.properties">
+<refmeta>
+<refentrytitle>variablelist.term.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.term.properties</refname>
+<refpurpose>To add properties to the term elements in a variablelist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="variablelist.term.properties.frag">
+&lt;xsl:attribute-set name="variablelist.term.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+term in a variablelist.
+Use this attribute-set to set
+font properties or alignment, for example.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="variablelist.term.break.after">
+<refmeta>
+<refentrytitle>variablelist.term.break.after</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.term.break.after</refname>
+<refpurpose>Generate line break after each <tag>term</tag> within a
+multi-term <tag>varlistentry</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="variablelist.term.break.after.frag">
+&lt;xsl:param name="variablelist.term.break.after"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set a non-zero value for the
+<parameter>variablelist.term.break.after</parameter> parameter to
+generate a line break between <tag>term</tag>s in a
+multi-term <tag>varlistentry</tag>.</para>
+
+<note>
+<para>If you set a non-zero value for
+<parameter>variablelist.term.break.after</parameter>, you may also
+want to set the value of the
+<parameter>variablelist.term.separator</parameter> parameter to an
+empty string (to suppress rendering of the default comma and space
+after each <tag>term</tag>).</para>
+</note>
+
+</refsection>
+</refentry>
+
+</reference><reference id="qa" xml:base="../fo/param.xml"><title>QAndASet</title>
+<refentry version="5.0" id="qandadiv.autolabel">
+<refmeta>
+<refentrytitle>qandadiv.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qandadiv.autolabel</refname>
+<refpurpose>Are divisions in QAndASets enumerated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qandadiv.autolabel.frag">&lt;xsl:param name="qandadiv.autolabel" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, unlabeled qandadivs will be enumerated.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.inherit.numeration">
+<refmeta>
+<refentrytitle>qanda.inherit.numeration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.inherit.numeration</refname>
+<refpurpose>Does enumeration of QandASet components inherit the numeration of parent elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.inherit.numeration.frag">
+&lt;xsl:param name="qanda.inherit.numeration" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, numbered <tag>qandadiv</tag> elements and
+<tag>question</tag> and <tag>answer</tag> inherit the enumeration of
+the ancestors of the <tag>qandaset</tag>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.defaultlabel">
+<refmeta>
+<refentrytitle>qanda.defaultlabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">number</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">qanda</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.defaultlabel</refname>
+<refpurpose>Sets the default for defaultlabel on QandASet.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.defaultlabel.frag">
+&lt;xsl:param name="qanda.defaultlabel"&gt;number&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If no <literal>defaultlabel</literal> attribute is specified on
+a <tag>qandaset</tag>, this value is used. It is generally one of the legal
+values for the defaultlabel attribute (<literal>none</literal>, 
+<literal>number</literal> or
+<literal>qanda</literal>), or one of the additional stylesheet-specific values
+(<literal>qnumber</literal> or <literal>qnumberanda</literal>).
+The default value is 'number'.
+</para>
+<para>The values are rendered as follows:</para>
+<variablelist>
+<varlistentry><term><literal>qanda</literal></term>
+<listitem>
+<para><tag>question</tag>s are labeled "Q:" and
+<tag>answer</tag>s are labeled "A:". </para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>number</literal></term>
+<listitem>
+<para>The questions are enumerated and the answers
+are not labeled. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>qnumber</literal></term>
+<listitem>
+<para>The questions are labeled "Q:" followed by a number, and answers are not 
+labeled. 
+When sections are numbered, adding a label
+to the number distinguishes the question numbers
+from the section numbers.
+This value is not allowed in the
+<tag class="attribute">defaultlabel</tag> attribute
+of a <tag>qandaset</tag> element.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>qnumberanda</literal></term>
+<listitem>
+<para>The questions are labeled "Q:" followed by a number, and
+the answers are labeled "A:". 
+When sections are numbered, adding a label
+to the number distinguishes the question numbers
+from the section numbers.
+This value is not allowed in the
+<tag class="attribute">defaultlabel</tag> attribute
+of a <tag>qandaset</tag> element.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>none</literal></term>
+<listitem>
+<para>No distinguishing label precedes Questions or Answers. 
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.in.toc">
+<refmeta>
+<refentrytitle>qanda.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.in.toc</refname>
+<refpurpose>Should qandaentry questions appear in 
+the document table of contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.in.toc.frag">&lt;xsl:param name="qanda.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), then the generated table of contents
+for a document will include <tag>qandaset</tag> titles, 
+<tag>qandadiv</tag> titles,
+and <tag>question</tag> elements.  The default value (zero) excludes
+them from the TOC.
+</para>
+<para>This parameter does not affect any tables of contents
+that may be generated inside a qandaset or qandadiv.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.nested.in.toc">
+<refmeta>
+<refentrytitle>qanda.nested.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.nested.in.toc</refname>
+<refpurpose>Should nested answer/qandaentry instances appear in TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.nested.in.toc.frag">
+&lt;xsl:param name="qanda.nested.in.toc" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, instances of <tag>qandaentry</tag>
+that are children of <tag>answer</tag> elements are shown in
+the TOC.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="biblio" xml:base="../fo/param.xml"><title>Bibliography</title>
+<refentry version="5.0" id="bibliography.style">
+<refmeta>
+<refentrytitle>bibliography.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">normal</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">iso690</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.style</refname>
+<refpurpose>Style used for formatting of biblioentries.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="bibliography.style.frag">
+&lt;xsl:param name="bibliography.style"&gt;normal&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Currently only <literal>normal</literal> and
+<literal>iso690</literal> styles are supported.</para>
+
+<para>In order to use ISO690 style to the full extent you might need
+to use additional markup described on <link xlink:href="http://wiki.docbook.org/topic/ISO690Bibliography">the
+following WiKi page</link>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="biblioentry.item.separator">
+<refmeta>
+<refentrytitle>biblioentry.item.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>biblioentry.item.separator</refname>
+<refpurpose>Text to separate bibliography entries</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="biblioentry.item.separator.frag">&lt;xsl:param name="biblioentry.item.separator"&gt;. &lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Text to separate bibliography entries
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="bibliography.collection">
+<refmeta>
+<refentrytitle>bibliography.collection</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.collection</refname>
+<refpurpose>Name of the bibliography collection file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="bibliography.collection.frag">
+&lt;xsl:param name="bibliography.collection"&gt;http://docbook.sourceforge.net/release/bibliography/bibliography.xml&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Maintaining bibliography entries across a set of documents is tedious, time
+consuming, and error prone. It makes much more sense, usually, to store all of
+the bibliography entries in a single place and simply <quote>extract</quote>
+the ones you need in each document.</para>
+
+<para>That's the purpose of the
+<parameter>bibliography.collection</parameter> parameter. To setup a global
+bibliography <quote>database</quote>, follow these steps:</para>
+
+<para>First, create a stand-alone bibliography document that contains all of
+the documents that you wish to reference. Make sure that each bibliography
+entry (whether you use <tag>biblioentry</tag> or <tag>bibliomixed</tag>)
+has an ID.</para>
+
+<para>My global bibliography, <filename>~/bibliography.xml</filename> begins
+like this:</para>
+
+<informalexample>
+<programlisting>&lt;!DOCTYPE bibliography
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"&gt;
+&lt;bibliography&gt;&lt;title&gt;References&lt;/title&gt;
+
+&lt;bibliomixed id="xml-rec"&gt;&lt;abbrev&gt;XML 1.0&lt;/abbrev&gt;Tim Bray,
+Jean Paoli, C. M. Sperberg-McQueen, and Eve Maler, editors.
+&lt;citetitle&gt;&lt;ulink url="http://www.w3.org/TR/REC-xml"&gt;Extensible Markup
+Language (XML) 1.0 Second Edition&lt;/ulink&gt;&lt;/citetitle&gt;.
+World Wide Web Consortium, 2000.
+&lt;/bibliomixed&gt;
+
+&lt;bibliomixed id="xml-names"&gt;&lt;abbrev&gt;Namespaces&lt;/abbrev&gt;Tim Bray,
+Dave Hollander,
+and Andrew Layman, editors.
+&lt;citetitle&gt;&lt;ulink url="http://www.w3.org/TR/REC-xml-names/"&gt;Namespaces in
+XML&lt;/ulink&gt;&lt;/citetitle&gt;.
+World Wide Web Consortium, 1999.
+&lt;/bibliomixed&gt;
+
+&lt;!-- ... --&gt;
+&lt;/bibliography&gt;
+</programlisting>
+</informalexample>
+
+<para>When you create a bibliography in your document, simply
+provide <emphasis>empty</emphasis> <tag>bibliomixed</tag>
+entries for each document that you wish to cite. Make sure that these
+elements have the same ID as the corresponding <quote>real</quote>
+entry in your global bibliography.</para>
+
+<para>For example:</para>
+
+<informalexample>
+<programlisting>&lt;bibliography&gt;&lt;title&gt;Bibliography&lt;/title&gt;
+
+&lt;bibliomixed id="xml-rec"/&gt;
+&lt;bibliomixed id="xml-names"/&gt;
+&lt;bibliomixed id="DKnuth86"&gt;Donald E. Knuth. &lt;citetitle&gt;Computers and
+Typesetting: Volume B, TeX: The Program&lt;/citetitle&gt;. Addison-Wesley,
+1986.  ISBN 0-201-13437-3.
+&lt;/bibliomixed&gt;
+&lt;bibliomixed id="relaxng"/&gt;
+
+&lt;/bibliography&gt;</programlisting>
+</informalexample>
+
+<para>Note that it's perfectly acceptable to mix entries from your
+global bibliography with <quote>normal</quote> entries. You can use
+<tag>xref</tag> or other elements to cross-reference your
+bibliography entries in exactly the same way you do now.</para>
+
+<para>Finally, when you are ready to format your document, simply set the
+<parameter>bibliography.collection</parameter> parameter (in either a
+customization layer or directly through your processor's interface) to
+point to your global bibliography.</para>
+
+<para>A relative path in the parameter is interpreted in one
+of two ways:</para>
+<orderedlist numeration="loweralpha">
+  <listitem>
+    <para>If your document contains no links to empty bibliographic elements,
+    then the path is relative to the file containing
+    the first <tag>bibliomixed</tag> element in the document.</para>
+  </listitem>
+  <listitem>
+    <para>If your document does contain links to empty bibliographic elements,
+    then the path is relative to the file containing
+    the first such link element in the document.</para>
+  </listitem>
+</orderedlist>
+<para>Once the collection file is opened by the first instance described
+above, it stays open for the current document
+and the relative path is not reinterpreted again.</para>
+
+<para>The stylesheets will format the bibliography in your document as if
+all of the entries referenced appeared there literally.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="bibliography.numbered">
+<refmeta>
+<refentrytitle>bibliography.numbered</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.numbered</refname>
+<refpurpose>Should bibliography entries be numbered?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="bibliography.numbered.frag">
+&lt;xsl:param name="bibliography.numbered" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero bibliography entries will be numbered</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="biblioentry.properties">
+<refmeta>
+  <refentrytitle>biblioentry.properties</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>biblioentry.properties</refname>
+<refpurpose>To set the style for biblioentry.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="biblioentry.properties.frag">&lt;xsl:attribute-set name="biblioentry.properties" use-attribute-sets="normal.para.spacing"&gt;
+  &lt;xsl:attribute name="start-indent"&gt;0.5in&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-indent"&gt;-0.5in&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>How do you want biblioentry styled? </para>
+<para>Set the font-size, weight, space-above and space-below, indents, etc. to the style required</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="glossary" xml:base="../fo/param.xml"><title>Glossary</title>
+<refentry version="5.0" id="glossterm.auto.link">
+<refmeta>
+<refentrytitle>glossterm.auto.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.auto.link</refname>
+<refpurpose>Generate links from glossterm to glossentry automatically?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossterm.auto.link.frag">
+&lt;xsl:param name="glossterm.auto.link" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, links from inline <tag>glossterm</tag>s to the corresponding 
+<tag>glossentry</tag> elements in a <tag>glossary</tag> or <tag>glosslist</tag> 
+will be automatically generated. This is useful when your glossterms are consistent 
+and you don't want to add links manually.</para>
+
+<para>The automatic link generation feature is not used on <tag>glossterm</tag> elements
+that have a <tag class="attribute">linkend</tag> attribute.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="firstterm.only.link">
+<refmeta>
+<refentrytitle>firstterm.only.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>firstterm.only.link</refname>
+<refpurpose>Does automatic glossterm linking only apply to firstterms?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="firstterm.only.link.frag">
+&lt;xsl:param name="firstterm.only.link" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, only <tag>firstterm</tag>s will be automatically linked
+to the glossary. If glossary linking is not enabled, this parameter
+has no effect.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossary.collection">
+<refmeta>
+<refentrytitle>glossary.collection</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossary.collection</refname>
+<refpurpose>Name of the glossary collection file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossary.collection.frag">
+&lt;xsl:param name="glossary.collection"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Glossaries maintained independently across a set of documents
+are likely to become inconsistent unless considerable effort is
+expended to keep them in sync. It makes much more sense, usually, to
+store all of the glossary entries in a single place and simply
+<quote>extract</quote> the ones you need in each document.</para>
+
+<para>That's the purpose of the
+<parameter>glossary.collection</parameter> parameter. To setup a global
+glossary <quote>database</quote>, follow these steps:</para>
+
+<refsection><info><title>Setting Up the Glossary Database</title></info>
+
+<para>First, create a stand-alone glossary document that contains all of
+the entries that you wish to reference. Make sure that each glossary
+entry has an ID.</para>
+
+<para>Here's an example glossary:</para>
+
+<informalexample>
+<programlisting>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE glossary
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"&gt;
+&lt;glossary&gt;
+&lt;glossaryinfo&gt;
+&lt;editor&gt;&lt;firstname&gt;Eric&lt;/firstname&gt;&lt;surname&gt;Raymond&lt;/surname&gt;&lt;/editor&gt;
+&lt;title&gt;Jargon File 4.2.3 (abridged)&lt;/title&gt;
+&lt;releaseinfo&gt;Just some test data&lt;/releaseinfo&gt;
+&lt;/glossaryinfo&gt;
+
+&lt;glossdiv&gt;&lt;title&gt;0&lt;/title&gt;
+
+&lt;glossentry&gt;
+&lt;glossterm&gt;0&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;Numeric zero, as opposed to the letter `O' (the 15th letter of
+the English alphabet). In their unmodified forms they look a lot
+alike, and various kluges invented to make them visually distinct have
+compounded the confusion. If your zero is center-dotted and letter-O
+is not, or if letter-O looks almost rectangular but zero looks more
+like an American football stood on end (or the reverse), you're
+probably looking at a modern character display (though the dotted zero
+seems to have originated as an option on IBM 3270 controllers). If
+your zero is slashed but letter-O is not, you're probably looking at
+an old-style ASCII graphic set descended from the default typewheel on
+the venerable ASR-33 Teletype (Scandinavians, for whom /O is a letter,
+curse this arrangement). (Interestingly, the slashed zero long
+predates computers; Florian Cajori's monumental "A History of
+Mathematical Notations" notes that it was used in the twelfth and
+thirteenth centuries.) If letter-O has a slash across it and the zero
+does not, your display is tuned for a very old convention used at IBM
+and a few other early mainframe makers (Scandinavians curse &lt;emphasis&gt;this&lt;/emphasis&gt;
+arrangement even more, because it means two of their letters collide).
+Some Burroughs/Unisys equipment displays a zero with a &lt;emphasis&gt;reversed&lt;/emphasis&gt;
+slash. Old CDC computers rendered letter O as an unbroken oval and 0
+as an oval broken at upper right and lower left. And yet another
+convention common on early line printers left zero unornamented but
+added a tail or hook to the letter-O so that it resembled an inverted
+Q or cursive capital letter-O (this was endorsed by a draft ANSI
+standard for how to draw ASCII characters, but the final standard
+changed the distinguisher to a tick-mark in the upper-left corner).
+Are we sufficiently confused yet?&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+
+&lt;glossentry&gt;
+&lt;glossterm&gt;1TBS&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para role="accidence"&gt;
+&lt;phrase role="pronounce"&gt;&lt;/phrase&gt;
+&lt;phrase role="partsofspeach"&gt;n&lt;/phrase&gt;
+&lt;/para&gt;
+&lt;para&gt;The "One True Brace Style"&lt;/para&gt;
+&lt;glossseealso&gt;indent style&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+
+&lt;!-- ... --&gt;
+
+&lt;/glossdiv&gt;
+
+&lt;!-- ... --&gt;
+
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+
+</refsection>
+
+<refsection><info><title>Marking Up Glossary Terms</title></info>
+
+<para>That takes care of the glossary database, now you have to get the entries
+into your document. Unlike bibliography entries, which can be empty, creating
+<quote>placeholder</quote> glossary entries would be very tedious. So instead,
+support for <parameter>glossary.collection</parameter> relies on implicit linking.</para>
+
+<para>In your source document, simply use <tag>firstterm</tag> and
+<tag>glossterm</tag> to identify the terms you wish to have included
+in the glossary. The stylesheets assume that you will either set the
+<tag class="attribute">baseform</tag> attribute correctly, or that the
+content of the element exactly matches a term in your glossary.</para>
+
+<para>If you're using a <parameter>glossary.collection</parameter>, don't
+make explicit links on the terms in your document.</para>
+
+<para>So, in your document, you might write things like this:</para>
+
+<informalexample>
+<programlisting>&lt;para&gt;This is dummy text, without any real meaning.
+The point is simply to reference glossary terms like &lt;glossterm&gt;0&lt;/glossterm&gt;
+and the &lt;firstterm baseform="1TBS"&gt;One True Brace Style (1TBS)&lt;/firstterm&gt;.
+The &lt;glossterm&gt;1TBS&lt;/glossterm&gt;, as you can probably imagine, is a nearly
+religious issue.&lt;/para&gt;</programlisting>
+</informalexample>
+
+<para>If you set the <parameter>firstterm.only.link</parameter> parameter,
+only the terms marked with <tag>firstterm</tag> will be links.
+Otherwise, all the terms will be linked.</para>
+
+</refsection>
+
+<refsection><info><title>Marking Up the Glossary</title></info>
+
+<para>The glossary itself has to be identified for the stylesheets. For lack
+of a better choice, the <tag class="attribute">role</tag> is used.
+To identify the glossary as the target for automatic processing, set
+the role to <quote><literal>auto</literal></quote>. The title of this
+glossary (and any other information from the <tag>glossaryinfo</tag>
+that's rendered by your stylesheet) will be displayed, but the entries will
+come from the database.
+</para>
+
+<para>Unfortunately, the glossary can't be empty, so you must put in
+at least one <tag>glossentry</tag>. The content of this entry
+is irrelevant, it will not be rendered:</para>
+
+<informalexample>
+<programlisting>&lt;glossary role="auto"&gt;
+&lt;glossentry&gt;
+&lt;glossterm&gt;Irrelevant&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;If you can see this, the document was processed incorrectly. Use
+the &lt;parameter&gt;glossary.collection&lt;/parameter&gt; parameter.&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+
+<para>What about glossary divisions? If your glossary database has glossary
+divisions <emphasis>and</emphasis> your automatic glossary contains at least
+one <tag>glossdiv</tag>, the automic glossary will have divisions.
+If the <tag>glossdiv</tag> is missing from either location, no divisions
+will be rendered.</para>
+
+<para>Glossary entries (and divisions, if appropriate) in the glossary will
+occur in precisely the order they occur in your database.</para>
+
+</refsection>
+
+<refsection><info><title>Formatting the Document</title></info>
+
+<para>Finally, when you are ready to format your document, simply set the
+<parameter>glossary.collection</parameter> parameter (in either a
+customization layer or directly through your processor's interface) to
+point to your global glossary.</para>
+
+<para>A relative path in the parameter is interpreted in one
+of two ways:</para>
+<orderedlist numeration="loweralpha">
+  <listitem>
+    <para>If the parameter <literal>glossterm.auto.link</literal>
+    is set to zero, then the path is relative to the file containing
+    the empty <tag>glossary</tag> element in the document.</para>
+  </listitem>
+  <listitem>
+    <para>If the parameter <literal>glossterm.auto.link</literal>
+    is set to non-zero, then the path is relative to the file containing
+    the first inline <tag>glossterm</tag> or
+    <tag>firstterm</tag> in the document to be linked.</para>
+  </listitem>
+</orderedlist>
+<para>Once the collection file is opened by the first instance described
+above, it stays open for the current document
+and the relative path is not reinterpreted again.</para>
+
+<para>The stylesheets will format the glossary in your document as if
+all of the entries implicilty referenced appeared there literally.</para>
+</refsection>
+
+<refsection><info><title>Limitations</title></info>
+
+<para>Glossary cross-references <emphasis>within the glossary</emphasis> are
+not supported. For example, this <emphasis>will not</emphasis> work:</para>
+
+<informalexample>
+<programlisting>&lt;glossentry&gt;
+&lt;glossterm&gt;gloss-1&lt;/glossterm&gt;
+&lt;glossdef&gt;&lt;para&gt;A description that references &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/para&gt;
+&lt;glossseealso&gt;gloss-2&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;</programlisting>
+</informalexample>
+
+<para>If you put glossary cross-references in your glossary that way,
+you'll get the cryptic error: <computeroutput>Warning:
+glossary.collection specified, but there are 0 automatic
+glossaries</computeroutput>.</para>
+
+<para>Instead, you must do two things:</para>
+
+<orderedlist>
+<listitem>
+<para>Markup your glossary using <tag>glossseealso</tag>:</para>
+
+<informalexample>
+<programlisting>&lt;glossentry&gt;
+&lt;glossterm&gt;gloss-1&lt;/glossterm&gt;
+&lt;glossdef&gt;&lt;para&gt;A description that references &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/para&gt;
+&lt;glossseealso&gt;gloss-2&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;</programlisting>
+</informalexample>
+</listitem>
+
+<listitem>
+<para>Make sure there is at least one <tag>glossterm</tag> reference to
+<glossterm>gloss-2</glossterm> <emphasis>in your document</emphasis>. The
+easiest way to do that is probably within a <tag>remark</tag> in your
+automatic glossary:</para>
+
+<informalexample>
+<programlisting>&lt;glossary role="auto"&gt;
+&lt;remark&gt;Make sure there's a reference to &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/remark&gt;
+&lt;glossentry&gt;
+&lt;glossterm&gt;Irrelevant&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;If you can see this, the document was processed incorrectly. Use
+the &lt;parameter&gt;glossary.collection&lt;/parameter&gt; parameter.&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+</listitem>
+</orderedlist>
+</refsection>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossary.as.blocks">
+<refmeta>
+<refentrytitle>glossary.as.blocks</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossary.as.blocks</refname>
+<refpurpose>Present glossarys using blocks instead of lists?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossary.as.blocks.frag">
+&lt;xsl:param name="glossary.as.blocks" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>glossary</tag>s will be formatted as
+blocks.</para>
+
+<para>If you have long <tag>glossterm</tag>s, proper list
+markup in the FO case may produce unattractive lists. By setting this
+parameter, you can force the stylesheets to produce block markup
+instead of proper lists.</para>
+
+<para>You can override this setting with a processing instruction as the
+child of <tag>glossary</tag>: <tag class="xmlpi">dbfo
+glossary-presentation="blocks"</tag> or <tag class="xmlpi">dbfo
+glossary-presentation="list"</tag></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glosslist.as.blocks">
+<refmeta>
+<refentrytitle>glosslist.as.blocks</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glosslist.as.blocks</refname>
+<refpurpose>Use blocks for glosslists?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glosslist.as.blocks.frag">
+&lt;xsl:param name="glosslist.as.blocks" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>See <parameter>glossary.as.blocks</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossentry.list.item.properties">
+<refmeta>
+<refentrytitle>glossentry.list.item.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossentry.list.item.properties</refname>
+<refpurpose>To add properties to each glossentry in a list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossentry.list.item.properties.frag">&lt;xsl:attribute-set name="glossentry.list.item.properties"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the fo:list-item containing a
+glossentry in a glossary when the <parameter>glossary.as.blocks</parameter> parameter
+is zero.
+Use this attribute-set to set
+spacing between entries, for example.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossterm.block.properties">
+<refmeta>
+<refentrytitle>glossterm.block.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.block.properties</refname>
+<refpurpose>To add properties to the block of a glossentry's glossterm.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossterm.block.properties.frag">&lt;xsl:attribute-set name="glossterm.block.properties"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-together.within-column"&gt;always&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+glossary term in a glossary when the <parameter>glossary.as.blocks</parameter> parameter
+is non-zero.
+Use this attribute-set to set the space above and below,
+font properties,
+and any indent for the glossary term.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossdef.block.properties">
+<refmeta>
+<refentrytitle>glossdef.block.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossdef.block.properties</refname>
+<refpurpose>To add properties to the block of a glossary definition.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossdef.block.properties.frag">&lt;xsl:attribute-set name="glossdef.block.properties"&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.start}"&gt;.25in&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+glossary definition in a glossary when
+the <parameter>glossary.as.blocks</parameter> parameter
+is non-zero.
+Use this attribute-set to set the space above and below,
+any font properties,
+and any indent for the glossary definition.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossterm.list.properties">
+<refmeta>
+<refentrytitle>glossterm.list.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.list.properties</refname>
+<refpurpose>To add properties to the glossterm in a list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossterm.list.properties.frag">
+&lt;xsl:attribute-set name="glossterm.list.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+glossary term in a glossary when the <parameter>glossary.as.blocks</parameter> parameter
+is zero.
+Use this attribute-set to set
+font properties, for example.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossdef.list.properties">
+<refmeta>
+<refentrytitle>glossdef.list.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossdef.list.properties</refname>
+<refpurpose>To add properties to the glossary definition in a list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossdef.list.properties.frag">
+&lt;xsl:attribute-set name="glossdef.list.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+glossary definition in a glossary when
+the <parameter>glossary.as.blocks</parameter> parameter
+is zero.
+Use this attribute-set to set font properties, for example.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossterm.width">
+<refmeta>
+<refentrytitle>glossterm.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.width</refname>
+<refpurpose>Width of glossterm in list presentation mode</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossterm.width.frag">
+&lt;xsl:param name="glossterm.width"&gt;2in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the width reserved for glossary terms when
+a list presentation is used.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossterm.separation">
+<refmeta>
+<refentrytitle>glossterm.separation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.separation</refname>
+<refpurpose>Separation between glossary terms and descriptions in list mode</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossterm.separation.frag">
+&lt;xsl:param name="glossterm.separation"&gt;0.25in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the miminum horizontal
+separation between glossary terms and descriptions when
+they are presented side-by-side using lists
+when the <parameter>glossary.as.blocks</parameter>
+is zero.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossentry.show.acronym">
+<refmeta>
+<refentrytitle>glossentry.show.acronym</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">primary</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossentry.show.acronym</refname>
+<refpurpose>Display <tag>glossentry</tag> acronyms?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossentry.show.acronym.frag">
+&lt;xsl:param name="glossentry.show.acronym"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A setting of <quote>yes</quote> means they should be displayed;
+<quote>no</quote> means they shouldn't. If <quote>primary</quote> is used,
+then they are shown as the primary text for the entry.</para>
+
+<note>
+<para>This setting controls both <tag>acronym</tag> and
+<tag>abbrev</tag> elements in the <tag>glossentry</tag>.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="glossary.sort">
+<refmeta>
+<refentrytitle>glossary.sort</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossary.sort</refname>
+<refpurpose>Sort glossentry elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="glossary.sort.frag">
+&lt;xsl:param name="glossary.sort" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then the glossentry elements within a
+glossary, glossdiv, or glosslist are sorted on the glossterm, using
+the current lang setting.  If zero (the default), then
+glossentry elements are not sorted and are presented
+in document order.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="misc" xml:base="../fo/param.xml"><title>Miscellaneous</title>
+<refentry version="5.0" id="formal.procedures">
+<refmeta>
+<refentrytitle>formal.procedures</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.procedures</refname>
+<refpurpose>Selects formal or informal procedures</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="formal.procedures.frag">
+&lt;xsl:param name="formal.procedures" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Formal procedures are numbered and always have a title.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="formal.title.placement">
+<refmeta>
+<refentrytitle>formal.title.placement</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">table</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.title.placement</refname>
+<refpurpose>Specifies where formal object titles should occur</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="formal.title.placement.frag">
+&lt;xsl:param name="formal.title.placement"&gt;
+figure before
+example before
+equation before
+table before
+procedure before
+task before
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies where formal object titles should occur. For each formal object
+type (<tag>figure</tag>,
+<tag>example</tag>,
+<tag>equation</tag>,
+<tag>table</tag>, and <tag>procedure</tag>)
+you can specify either the keyword
+<quote><literal>before</literal></quote> or
+<quote><literal>after</literal></quote>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="runinhead.default.title.end.punct">
+<refmeta>
+<refentrytitle>runinhead.default.title.end.punct</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>runinhead.default.title.end.punct</refname>
+<refpurpose>Default punctuation character on a run-in-head</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="runinhead.default.title.end.punct.frag">&lt;xsl:param name="runinhead.default.title.end.punct"&gt;.&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, For a <tag>formalpara</tag>, use the specified
+string as the separator between the title and following text. The period is the default value.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="runinhead.title.end.punct">
+<refmeta>
+<refentrytitle>runinhead.title.end.punct</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>runinhead.title.end.punct</refname>
+<refpurpose>Characters that count as punctuation on a run-in-head</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="runinhead.title.end.punct.frag">
+&lt;xsl:param name="runinhead.title.end.punct"&gt;.!?:&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specify which characters are to be counted as punctuation. These
+characters are checked for a match with the last character of the
+title. If no match is found, the
+<parameter>runinhead.default.title.end.punct</parameter> contents are
+inserted. This is to avoid duplicated punctuation in the output.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="show.comments">
+<refmeta>
+<refentrytitle>show.comments</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>show.comments</refname>
+<refpurpose>Display <tag>remark</tag> elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="show.comments.frag">
+&lt;xsl:param name="show.comments" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, comments will be displayed, otherwise they
+are suppressed.  Comments here refers to the <tag>remark</tag> element
+(which was called <literal>comment</literal> prior to DocBook
+4.0), not XML comments (&lt;-- like this --&gt;) which are
+unavailable.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="punct.honorific">
+<refmeta>
+<refentrytitle>punct.honorific</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>punct.honorific</refname>
+<refpurpose>Punctuation after an honorific in a personal name.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="punct.honorific.frag">
+&lt;xsl:param name="punct.honorific"&gt;.&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the punctuation that should be added after an
+honorific in a personal name.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="segmentedlist.as.table">
+<refmeta>
+<refentrytitle>segmentedlist.as.table</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>segmentedlist.as.table</refname>
+<refpurpose>Format segmented lists as tables?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="segmentedlist.as.table.frag">
+&lt;xsl:param name="segmentedlist.as.table" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>segmentedlist</tag>s will be formatted as
+tables.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="variablelist.as.blocks">
+<refmeta>
+<refentrytitle>variablelist.as.blocks</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.as.blocks</refname>
+<refpurpose>Format <tag>variablelist</tag>s lists as blocks?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="variablelist.as.blocks.frag">
+&lt;xsl:param name="variablelist.as.blocks" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>variablelist</tag>s will be formatted as
+blocks.</para>
+
+<para>If you have long terms, proper list markup in the FO case may produce
+unattractive lists. By setting this parameter, you can force the stylesheets
+to produce block markup instead of proper lists.</para>
+
+<para>You can override this setting with a processing instruction as the
+child of <tag>variablelist</tag>: <tag class="xmlpi">dbfo
+list-presentation="blocks"</tag> or <tag class="xmlpi">dbfo
+list-presentation="list"</tag>.</para>
+
+<para>When using <literal>list-presentation="list"</literal>,
+you can also control the amount of space used for the <tag>term</tag>s with 
+the <tag class="xmlpi">dbfo term-width=".25in"</tag> processing instruction,
+the <tag class="attribute">termlength</tag> attribute on <tag>variablelist</tag>,
+or allow the stylesheets to attempt to calculate the amount of space to leave based on the 
+number of letters in the longest term.  
+</para>
+
+<programlisting>  &lt;variablelist&gt;
+        &lt;?dbfo list-presentation="list"?&gt;
+        &lt;?dbfo term-width="1.5in"?&gt;
+        &lt;?dbhtml list-presentation="table"?&gt;
+        &lt;?dbhtml term-width="1.5in"?&gt;
+        &lt;varlistentry&gt;
+          &lt;term&gt;list&lt;/term&gt;
+          &lt;listitem&gt;
+                &lt;para&gt;
+                  Formatted as a list even if variablelist.as.blocks is set to 1.
+                &lt;/para&gt;
+          &lt;/listitem&gt;
+        &lt;/varlistentry&gt;
+  &lt;/variablelist&gt;</programlisting>
+
+
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" id="blockquote.properties">
+<refmeta>
+  <refentrytitle>blockquote.properties</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>blockquote.properties</refname>
+<refpurpose>To set the style for block quotations.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="blockquote.properties.frag">
+&lt;xsl:attribute-set name="blockquote.properties"&gt;
+&lt;xsl:attribute name="margin-{$direction.align.start}"&gt;0.5in&lt;/xsl:attribute&gt;
+&lt;xsl:attribute name="margin-{$direction.align.end}"&gt;0.5in&lt;/xsl:attribute&gt;
+&lt;xsl:attribute name="space-after.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+&lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+&lt;xsl:attribute name="space-after.maximum"&gt;2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>blockquote.properties</parameter> attribute set specifies
+the formating properties of block quotations.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="ulink.show">
+<refmeta>
+<refentrytitle>ulink.show</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.show</refname>
+<refpurpose>Display URLs after <tag>ulink</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="ulink.show.frag">
+&lt;xsl:param name="ulink.show" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the URL of each <tag>ulink</tag> will
+appear after the text of the link. If the text of the link and the URL
+are identical, the URL is suppressed. </para>
+
+<para>See also <parameter>ulink.footnotes</parameter>.</para>
+
+<note><para>DocBook 5 does not have an <tag>ulink</tag> element. When processing 
+DocBoook 5 documents, <parameter>ulink.show</parameter> applies to all inline 
+elements that are marked up with <tag class="attribute">xlink:href</tag> attributes 
+that point to external resources.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="ulink.footnotes">
+<refmeta>
+<refentrytitle>ulink.footnotes</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.footnotes</refname>
+<refpurpose>Generate footnotes for <tag>ulink</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="ulink.footnotes.frag">
+&lt;xsl:param name="ulink.footnotes" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, and if <parameter>ulink.show</parameter> also is non-zero,
+the URL of each <tag>ulink</tag> will appear as a footnote.</para>
+
+<note><para>DocBook 5 does not have an <tag>ulink</tag> element. When processing 
+DocBoook 5 documents, <parameter>ulink.footnotes</parameter> applies to all inline 
+elements that are marked up with <tag class="attribute">xlink:href</tag> attributes 
+that point to external resources.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="ulink.hyphenate">
+<refmeta>
+<refentrytitle>ulink.hyphenate</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.hyphenate</refname>
+<refpurpose>Allow URLs to be automatically hyphenated</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="ulink.hyphenate.frag">
+&lt;xsl:param name="ulink.hyphenate"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If not empty, the specified character (or more generally,
+content) is added to URLs after every character included in the string
+in the <parameter>ulink.hyphenate.chars</parameter> parameter (default
+is <quote>/</quote>) to enable hyphenation of ulinks. If the character
+in this parameter is a Unicode soft hyphen (0x00AD) or Unicode
+zero-width space (0x200B), some FO processors will be able to
+reasonably hyphenate long URLs.</para>
+
+<para>Note that this hyphenation process is only applied when the
+ulink element is empty and the url attribute is reused as the link
+text.  It is not applied if the ulink has literal text content. The
+same applies in in DocBook 5, where ulink was replaced with link with
+an xlink:href attribute.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="ulink.hyphenate.chars">
+<refmeta>
+<refentrytitle>ulink.hyphenate.chars</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.hyphenate.chars</refname>
+<refpurpose>List of characters to allow ulink URLs to be automatically
+hyphenated on</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="ulink.hyphenate.chars.frag">
+&lt;xsl:param name="ulink.hyphenate.chars"&gt;/&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the <parameter>ulink.hyphenate</parameter> parameter is not
+empty, then hyphenation of ulinks is turned on, and any character
+contained in this parameter is treated as an allowable hyphenation
+point. This and <parameter>ulink.hyphenate</parameter> work together,
+one is pointless without the other being set to a non-empty value</para>
+
+<para>The default value is <quote>/</quote>, but the parameter could
+be customized to contain other URL characters, as for example:</para>
+<programlisting>
+&lt;xsl:param name="ulink.hyphenate.chars"&gt;:/@&amp;?.#&lt;/xsl:param&gt;
+</programlisting>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="shade.verbatim">
+<refmeta>
+<refentrytitle>shade.verbatim</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>shade.verbatim</refname>
+<refpurpose>Should verbatim environments be shaded?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="shade.verbatim.frag">&lt;xsl:param name="shade.verbatim" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In the FO stylesheet, if this parameter is non-zero then the
+<property>shade.verbatim.style</property> properties will be applied
+to verbatim environments.</para>
+
+<para>In the HTML stylesheet, this parameter is now deprecated. Use
+CSS instead.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="shade.verbatim.style">
+<refmeta>
+<refentrytitle>shade.verbatim.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>shade.verbatim.style</refname>
+<refpurpose>Properties that specify the style of shaded verbatim listings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="shade.verbatim.style.frag">
+
+&lt;xsl:attribute-set name="shade.verbatim.style"&gt;
+  &lt;xsl:attribute name="background-color"&gt;#E0E0E0&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties that specify the style of shaded verbatim listings. The
+parameters specified (the border and background color) are added to
+the styling of the xsl-fo output. A border might be specified as "thin
+black solid" for example. See <link xlink:href="http://www.w3.org/TR/2004/WD-xsl11-20041216/#border">xsl-fo</link></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="hyphenate.verbatim">
+<refmeta>
+<refentrytitle>hyphenate.verbatim</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>hyphenate.verbatim</refname>
+<refpurpose>Should verbatim environments be hyphenated on space characters?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="hyphenate.verbatim.frag">&lt;xsl:param name="hyphenate.verbatim" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the lines of program listing are too long to fit into one
+line it is quite common to split them at space and indicite by hook
+arrow that code continues on the next line. You can turn on this
+behaviour for <tag>programlisting</tag>,
+<tag>screen</tag> and <tag>synopsis</tag> elements by
+using this parameter.</para>
+
+<para>Note that you must also enable line wrapping for verbatim environments and
+select appropriate hyphenation character (e.g. hook arrow). This can
+be done using <parameter>monospace.verbatim.properties</parameter>
+attribute set:</para>
+
+<programlisting>&lt;xsl:attribute-set name="monospace.verbatim.properties" 
+                   use-attribute-sets="verbatim.properties monospace.properties"&gt;
+  &lt;xsl:attribute name="wrap-option"&gt;wrap&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenation-character"&gt;&amp;#x25BA;&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+
+<para>For a list of arrows available in Unicode see <uri xlink:href="http://www.unicode.org/charts/PDF/U2190.pdf">http://www.unicode.org/charts/PDF/U2190.pdf</uri> and <uri xlink:href="http://www.unicode.org/charts/PDF/U2900.pdf">http://www.unicode.org/charts/PDF/U2900.pdf</uri> and make sure that
+selected character is available in the font you are using for verbatim
+environments.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="hyphenate.verbatim.characters">
+<refmeta>
+<refentrytitle>hyphenate.verbatim.characters</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>hyphenate.verbatim.characters</refname>
+<refpurpose>List of characters after which a line break can occur in listings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="hyphenate.verbatim.characters.frag">
+&lt;xsl:param name="hyphenate.verbatim.characters"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you enable <parameter>hyphenate.verbatim</parameter> line
+breaks are allowed only on space characters. If this is not enough for
+your document, you can specify list of additional characters after
+which line break is allowed in this parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="use.svg">
+<refmeta>
+<refentrytitle>use.svg</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.svg</refname>
+<refpurpose>Allow SVG in the result tree?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="use.svg.frag">
+&lt;xsl:param name="use.svg" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, SVG will be considered an acceptable image format. SVG
+is passed through to the result tree, so correct rendering of the resulting
+diagram depends on the formatter (FO processor or web browser) that is used
+to process the output from the stylesheet.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="use.role.as.xrefstyle">
+<refmeta>
+<refentrytitle>use.role.as.xrefstyle</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.role.as.xrefstyle</refname>
+<refpurpose>Use <tag class="attribute">role</tag> attribute for
+<tag class="attribute">xrefstyle</tag> on <tag>xref</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="use.role.as.xrefstyle.frag">
+&lt;xsl:param name="use.role.as.xrefstyle" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In DocBook documents that conform to a schema older than V4.3, this parameter allows 
+<tag class="attribute">role</tag> to serve the purpose of specifying the cross reference style.</para>
+
+<para>If non-zero, the <tag class="attribute">role</tag> attribute on
+<tag>xref</tag> will be used to select the cross reference style.
+In DocBook V4.3, the <tag class="attribute">xrefstyle</tag> attribute was added for this purpose.
+If the <tag class="attribute">xrefstyle</tag> attribute is present, 
+<tag class="attribute">role</tag> will be ignored, regardless of the setting
+of this parameter.</para>
+
+</refsection>
+
+<refsection><info><title>Example</title></info>
+
+<para>The following small stylesheet shows how to configure the
+stylesheets to make use of the cross reference style:</para>
+
+<programlisting>&lt;?xml version="1.0"?&gt;
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0"&gt;
+
+&lt;xsl:import href="../xsl/html/docbook.xsl"/&gt;
+
+&lt;xsl:output method="html"/&gt;
+
+&lt;xsl:param name="local.l10n.xml" select="document('')"/&gt;
+&lt;l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"&gt;
+  &lt;l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="en"&gt;
+   &lt;l:context name="xref"&gt;
+      &lt;l:template name="chapter" style="title" text="Chapter %n, %t"/&gt;
+      &lt;l:template name="chapter" text="Chapter %n"/&gt;
+    &lt;/l:context&gt;
+  &lt;/l:l10n&gt;
+&lt;/l:i18n&gt;
+
+&lt;/xsl:stylesheet&gt;</programlisting>
+
+<para>With this stylesheet, the cross references in the following document:</para>
+
+<programlisting>&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+                  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"&gt;
+&lt;book id="book"&gt;&lt;title&gt;Book&lt;/title&gt;
+
+&lt;preface&gt;
+&lt;title&gt;Preface&lt;/title&gt;
+
+&lt;para&gt;Normal: &lt;xref linkend="ch1"/&gt;.&lt;/para&gt;
+&lt;para&gt;Title: &lt;xref xrefstyle="title" linkend="ch1"/&gt;.&lt;/para&gt;
+
+&lt;/preface&gt;
+
+&lt;chapter id="ch1"&gt;
+&lt;title&gt;First Chapter&lt;/title&gt;
+
+&lt;para&gt;Irrelevant.&lt;/para&gt;
+
+&lt;/chapter&gt;
+&lt;/book&gt;</programlisting>
+
+<para>will appear as:</para>
+
+<informalexample>
+<para>Normal: Chapter 1.</para>
+<para>Title: Chapter 1, <emphasis>First Chapter</emphasis>.</para>
+</informalexample>
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" id="menuchoice.separator">
+<refmeta>
+<refentrytitle>menuchoice.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>menuchoice.separator</refname>
+<refpurpose>Separator between items of a <tag>menuchoice</tag>
+other than <tag>guimenuitem</tag> and
+<tag>guisubmenu</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="menuchoice.separator.frag">
+&lt;xsl:param name="menuchoice.separator"&gt;+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator used to connect items of a <tag>menuchoice</tag> other
+than <tag>guimenuitem</tag> and <tag>guisubmenu</tag>. The latter
+elements are linked with <parameter>menuchoice.menu.separator</parameter>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="menuchoice.menu.separator">
+<refmeta>
+<refentrytitle>menuchoice.menu.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>menuchoice.menu.separator</refname>
+<refpurpose>Separator between items of a <tag>menuchoice</tag>
+with <tag>guimenuitem</tag> or
+<tag>guisubmenu</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="menuchoice.menu.separator.frag">
+&lt;xsl:param name="menuchoice.menu.separator"&gt; &#8594; &lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator used to connect items of a <tag>menuchoice</tag> with
+<tag>guimenuitem</tag> or <tag>guisubmenu</tag>. Other elements
+are linked with <parameter>menuchoice.separator</parameter>.
+</para>
+<para>The default value is &amp;#x2192;, which is the
+&amp;rarr; (right arrow) character entity.  
+The current FOP (0.20.5) requires setting the font-family
+explicitly.
+</para>
+<para>The default value also includes spaces around the arrow,
+which will allow a line to break.  Replace the spaces with
+&amp;#xA0; (nonbreaking space) if you don't want those
+spaces to break.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="default.float.class">
+<refmeta>
+<refentrytitle>default.float.class</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.float.class</refname>
+<refpurpose>Specifies the default float class</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="default.float.class.frag">
+&lt;xsl:param name="default.float.class"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="contains($stylesheet.result.type,'html')"&gt;left&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;before&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the direction in which a float should be placed. for
+xsl-fo this is before, for html it is left. For Western texts, the
+before direction is the top of the page.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footnote.number.format">
+<refmeta>
+<refentrytitle>footnote.number.format</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footnote.number.format</refname>
+<refpurpose>Identifies the format used for footnote numbers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footnote.number.format.frag">
+&lt;xsl:param name="footnote.number.format"&gt;1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>footnote.number.format</parameter> specifies the format
+to use for footnote numeration (1, i, I, a, or A).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.footnote.number.format">
+<refmeta>
+<refentrytitle>table.footnote.number.format</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.footnote.number.format</refname>
+<refpurpose>Identifies the format used for footnote numbers in tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.footnote.number.format.frag">
+&lt;xsl:param name="table.footnote.number.format"&gt;a&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>table.footnote.number.format</parameter> specifies the format
+to use for footnote numeration (1, i, I, a, or A) in tables.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footnote.number.symbols">
+<refmeta>
+<refentrytitle>footnote.number.symbols</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype"/>
+</refmeta>
+<refnamediv>
+<refname>footnote.number.symbols</refname>
+<refpurpose>Special characters to use as footnote markers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footnote.number.symbols.frag">
+&lt;xsl:param name="footnote.number.symbols"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>footnote.number.symbols</parameter> is not the empty string,
+footnotes will use the characters it contains as footnote symbols. For example,
+<quote>*&amp;#x2020;&amp;#x2021;&amp;#x25CA;&amp;#x2720;</quote> will identify
+footnotes with <quote>*</quote>, <quote>&#8224;</quote>, <quote>&#8225;</quote>,
+<quote>&#9674;</quote>, and <quote>&#10016;</quote>. If there are more footnotes
+than symbols, the stylesheets will fall back to numbered footnotes using
+<parameter>footnote.number.format</parameter>.</para>
+
+<para>The use of symbols for footnotes depends on the ability of your
+processor (or browser) to render the symbols you select. Not all systems are
+capable of displaying the full range of Unicode characters. If the quoted characters
+in the preceding paragraph are not displayed properly, that's a good indicator
+that you may have trouble using those symbols for footnotes.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.footnote.number.symbols">
+<refmeta>
+<refentrytitle>table.footnote.number.symbols</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.footnote.number.symbols</refname>
+<refpurpose>Special characters to use a footnote markers in tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.footnote.number.symbols.frag">
+&lt;xsl:param name="table.footnote.number.symbols"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>table.footnote.number.symbols</parameter> is not the empty string,
+table footnotes will use the characters it contains as footnote symbols. For example,
+<quote>*&amp;#x2020;&amp;#x2021;&amp;#x25CA;&amp;#x2720;</quote> will identify
+footnotes with <quote>*</quote>, <quote>&#8224;</quote>, <quote>&#8225;</quote>,
+<quote>&#9674;</quote>, and <quote>&#10016;</quote>. If there are more footnotes
+than symbols, the stylesheets will fall back to numbered footnotes using
+<parameter>table.footnote.number.format</parameter>.</para>
+
+<para>The use of symbols for footnotes depends on the ability of your
+processor (or browser) to render the symbols you select. Not all systems are
+capable of displaying the full range of Unicode characters. If the quoted characters
+in the preceding paragraph are not displayed properly, that's a good indicator
+that you may have trouble using those symbols for footnotes.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footnote.properties">
+<refmeta>
+<refentrytitle>footnote.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>footnote.properties</refname>
+<refpurpose>Properties applied to each footnote body
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footnote.properties.frag">
+&lt;xsl:attribute-set name="footnote.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;&lt;xsl:value-of select="$body.fontset"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-size"&gt;&lt;xsl:value-of select="$footnote.font.size"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;normal&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-style"&gt;normal&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;&lt;xsl:value-of select="$alignment"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="start-indent"&gt;0pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-indent"&gt;0pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;&lt;xsl:value-of select="$hyphenate"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="wrap-option"&gt;wrap&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="linefeed-treatment"&gt;treat-as-space&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is applied to the footnote-block 
+for each footnote.
+It can be used to set the
+font-size, font-family, and other inheritable properties that will be
+applied to all footnotes.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.footnote.properties">
+<refmeta>
+<refentrytitle>table.footnote.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.footnote.properties</refname>
+<refpurpose>Properties applied to each table footnote body
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.footnote.properties.frag">
+&lt;xsl:attribute-set name="table.footnote.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;&lt;xsl:value-of select="$body.fontset"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-size"&gt;&lt;xsl:value-of select="$footnote.font.size"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;normal&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-style"&gt;normal&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before"&gt;2pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;&lt;xsl:value-of select="$alignment"&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 attribute set is applied to the footnote-block 
+for each table footnote.
+It can be used to set the
+font-size, font-family, and other inheritable properties that will be
+applied to all table footnotes.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footnote.mark.properties">
+<refmeta>
+<refentrytitle>footnote.mark.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>footnote.mark.properties</refname>
+<refpurpose>Properties applied to each footnote mark
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footnote.mark.properties.frag">
+&lt;xsl:attribute-set name="footnote.mark.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;&lt;xsl:value-of select="$body.fontset"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-size"&gt;75%&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;normal&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-style"&gt;normal&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is applied to the footnote mark used
+for each footnote.
+It should contain only inline properties.
+</para>
+
+<para>The property to make the mark a superscript is contained in the
+footnote template itself, because the current version of FOP reports
+an error if baseline-shift is used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footnote.sep.leader.properties">
+<refmeta>
+<refentrytitle>footnote.sep.leader.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footnote.sep.leader.properties</refname>
+<refpurpose>Properties associated with footnote separators</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footnote.sep.leader.properties.frag">
+&lt;xsl:attribute-set name="footnote.sep.leader.properties"&gt;
+  &lt;xsl:attribute name="color"&gt;black&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="leader-pattern"&gt;rule&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="leader-length"&gt;1in&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for the rule line that separates the
+footnotes from the body text.
+These are properties applied to the fo:leader used as
+the separator.
+</para>
+<para>If you want to do more than just set properties on
+the leader element, then you can customize the template
+named <literal>footnote.separator</literal> in 
+<filename>fo/pagesetup.xsl</filename>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="xref.with.number.and.title">
+<refmeta>
+<refentrytitle>xref.with.number.and.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.with.number.and.title</refname>
+<refpurpose>Use number and title in cross references</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="xref.with.number.and.title.frag">
+&lt;xsl:param name="xref.with.number.and.title" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A cross reference may include the number (for example, the number of
+an example or figure) and the <tag>title</tag> which is a required child of some
+targets. This parameter inserts both the relevant number as well as
+the title into the link. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="superscript.properties">
+<refmeta>
+<refentrytitle>superscript.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>superscript.properties</refname>
+<refpurpose>Properties associated with superscripts</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="superscript.properties.frag">
+&lt;xsl:attribute-set name="superscript.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;75%&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies styling properties for superscripts.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="subscript.properties">
+<refmeta>
+<refentrytitle>subscript.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>subscript.properties</refname>
+<refpurpose>Properties associated with subscripts</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="subscript.properties.frag">
+&lt;xsl:attribute-set name="subscript.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;75%&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies styling properties for subscripts.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="pgwide.properties">
+<refmeta>
+<refentrytitle>pgwide.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>pgwide.properties</refname>
+<refpurpose>Properties to make a figure or table page wide.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="pgwide.properties.frag">
+&lt;xsl:attribute-set name="pgwide.properties"&gt;
+  &lt;xsl:attribute name="start-indent"&gt;0pt&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is used to set the properties
+that make a figure or table "page wide" in fo output.
+It comes into effect when an attribute <literal>pgwide="1"</literal>
+is used.
+</para>
+
+<para>
+By default, it sets <parameter>start-indent</parameter>
+to <literal>0pt</literal>.
+In a stylesheet that sets the parameter
+<parameter>body.start.indent</parameter>
+to a non-zero value in order to indent body text,
+this attribute set can be used to outdent pgwide
+figures to the start margin.
+</para>
+
+<para>If a document uses a multi-column page layout,
+then this attribute set could try setting <parameter>span</parameter>
+to a value of <literal>all</literal>.  However, this may
+not work with some processors because a span property must be on an
+fo:block that is a direct child of fo:flow.  It may work in
+some processors anyway.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="highlight.source">
+<refmeta>
+<refentrytitle>highlight.source</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.source</refname>
+<refpurpose>Should the content of <tag>programlisting</tag>
+be syntactically highlighted?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="highlight.source.frag">
+&lt;xsl:param name="highlight.source" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When this parameter is non-zero, the stylesheets will try to do syntax highlighting of the 
+content of <tag>programlisting</tag> elements. You specify the language for each programlisting 
+by using the <tag class="attribute">language</tag> attribute. The <parameter>highlight.default.language</parameter> 
+parameter can be used to specify the language for programlistings without a <tag class="attribute">language</tag> 
+attribute. Syntax highlighting also works for <tag>screen</tag> and <tag>synopsis</tag> elements.</para>
+
+<para>The actual highlighting work is done by the XSLTHL extension module. This is an external Java library that has to be 
+downloaded separately (see below).</para>
+
+<itemizedlist>
+<para>In order to use this extension, you must</para> 
+
+<listitem><para>add <filename>xslthl-2.x.x.jar</filename> to your Java classpath. The latest version is available
+from <link xlink:href="http://sourceforge.net/projects/xslthl">the XSLT syntax highlighting project</link> 
+at SourceForge.</para>
+</listitem>
+<listitem>
+<para>use a customization layer in which you import one of the following stylesheet modules: 
+<itemizedlist>
+  <listitem>
+    <para><filename>html/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>xhtml/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>xhtml-1_1/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>fo/highlight.xsl</filename>
+    </para>
+</listitem>
+</itemizedlist>
+</para>
+</listitem>
+<listitem><para>let either the <literal>xslthl.config</literal> Java system property or the
+<parameter>highlight.xslthl.config</parameter> parameter point to the configuration file for syntax 
+highlighting (using URL syntax). DocBook XSL comes with a ready-to-use configuration file, 
+<filename>highlighting/xslthl-config.xml</filename>.</para>
+</listitem>
+</itemizedlist>
+
+<para>The extension works with Saxon 6.5.x and Xalan-J. (Saxon 8.5 or later is also supported, but since it is 
+an XSLT 2.0 processor it is not guaranteed to work with DocBook XSL in all circumstances.)</para>
+
+<para>The following is an example of a Saxon 6 command adapted for syntax highlighting, to be used on Windows:</para>
+
+<informalexample>
+<para><command>java -cp c:/Java/saxon.jar;c:/Java/xslthl-2.0.1.jar 
+-Dxslthl.config=file:///c:/docbook-xsl/highlighting/xslthl-config.xml com.icl.saxon.StyleSheet 
+-o test.html test.xml myhtml.xsl</command></para>
+</informalexample>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="highlight.xslthl.config">
+<refmeta>
+<refentrytitle>highlight.xslthl.config</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.xslthl.config</refname>
+<refpurpose>Location of XSLTHL configuration file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="highlight.xslthl.config.frag">
+&lt;xsl:param name="highlight.xslthl.config"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This location has precedence over the corresponding Java property.</para>
+
+<para>Please note that usually you have to specify location as URL not
+just as a simple path on the local
+filesystem. E.g. <filename>file:///home/user/xslthl/my-xslthl-config.xml</filename>.</para>
+
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="highlight.default.language">
+<refmeta>
+<refentrytitle>highlight.default.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.default.language</refname>
+<refpurpose>Default language of programlisting</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="highlight.default.language.frag">
+&lt;xsl:param name="highlight.default.language"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This language is used when there is no language attribute on programlisting.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="email.delimiters.enabled">
+<refmeta>
+<refentrytitle>email.delimiters.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>email.delimiters.enabled</refname>
+<refpurpose>Generate delimiters around email addresses?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="email.delimiters.enabled.frag">
+&lt;xsl:param name="email.delimiters.enabled" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, delimiters
+
+<footnote><para>For delimiters, the
+stylesheets are currently hard-coded to output angle
+brackets.</para></footnote> 
+
+are generated around e-mail addresses
+(the output of the <tag>email</tag> element).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="email.mailto.enabled">
+<refmeta>
+<refentrytitle>email.mailto.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>email.mailto.enabled</refname>
+<refpurpose>Generate mailto: links for email addresses?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="email.mailto.enabled.frag">
+&lt;xsl:param name="email.mailto.enabled" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero the generated output for the <tag>email</tag> element
+will be a clickable mailto: link that brings up the default mail client
+on the system.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.container.element">
+<refmeta>
+<refentrytitle>section.container.element</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">block</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">wrapper</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.container.element</refname>
+<refpurpose>Select XSL-FO element name to contain sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.container.element.frag">
+&lt;xsl:param name="section.container.element"&gt;block&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the element name for outer container of
+each section. The choices are <literal>block</literal> (default)
+or <literal>wrapper</literal>.
+The <literal>fo:</literal> namespace prefix is added
+by the stylesheet to form the full element name.
+</para>
+
+<para>This element receives the section <literal>id</literal>
+attribute and the appropriate section level attribute-set.
+</para>
+
+<para>Changing this parameter to <literal>wrapper</literal>
+is only necessary when producing multi-column output
+that contains page-wide spans.  Using <literal>fo:wrapper</literal>
+avoids the nesting of <literal>fo:block</literal>
+elements that prevents spans from working (the standard says
+a span must be on a block that is a direct child of 
+<literal>fo:flow</literal>).
+</para>
+
+<para>If set to <literal>wrapper</literal>, the
+section attribute-sets only support properties
+that are inheritable.  That's because there is no
+block to apply them to.  Properties such as
+font-family are inheritable, but properties such as
+border are not.
+</para>
+
+<para>Only some XSL-FO processors need to use this parameter.
+The Antenna House processor, for example, will handle 
+spans in nested blocks without changing the element name.
+The RenderX XEP product and FOP follow the XSL-FO standard 
+and need to use <literal>wrapper</literal>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="monospace.verbatim.font.width">
+<refmeta>
+<refentrytitle>monospace.verbatim.font.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>monospace.verbatim.font.width</refname>
+<refpurpose>Width of a single monospace font character</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="monospace.verbatim.font.width.frag">
+&lt;xsl:param name="monospace.verbatim.font.width"&gt;0.60em&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies with em units the width of a single character
+of the monospace font. The default value is <literal>0.6em</literal>.</para>
+
+<para>This parameter is only used when a <tag>screen</tag>
+or <tag>programlisting</tag> element has a 
+<tag class="attribute">width</tag> attribute, which is
+expressed as a plain integer to indicate the maximum character count
+of each line.
+To convert this character count to an actual maximum width
+measurement, the width of the font characters must be provided.
+Different monospace fonts have different character width,
+so this parameter should be adjusted to fit the 
+monospace font being used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="exsl.node.set.available">
+<refmeta>
+<refentrytitle>exsl.node.set.available</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>exsl.node.set.available</refname>
+<refpurpose>Is the test function-available('exsl:node-set') true?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="exsl.node.set.available.frag">&lt;xsl:param name="exsl.node.set.available"&gt; 
+  &lt;xsl:choose&gt;
+    &lt;xsl:when exsl:foo="" test="function-available('exsl:node-set') or                        contains(system-property('xsl:vendor'),                          'Apache Software Foundation')"&gt;1&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;0&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+then the exsl:node-set() function is available to be used in
+the stylesheet.
+If zero, then the function is not available.
+This param automatically detects the presence of
+the function and does not normally need to be set manually.</para>
+
+<para>This param was created to handle a long-standing
+bug in the Xalan processor that fails to detect the
+function even though it is available.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="bookmarks.collapse">
+<refmeta>
+<refentrytitle>bookmarks.collapse</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo> 
+</refmeta>
+<refnamediv>
+<refname>bookmarks.collapse</refname>
+<refpurpose>Specifies the initial state of bookmarks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="bookmarks.collapse.frag">
+&lt;xsl:param name="bookmarks.collapse" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the bookmark tree is collapsed so that only the 
+top-level bookmarks are displayed initially. Otherwise, the whole tree 
+of bookmarks is displayed.</para>
+
+<para>This parameter currently works with FOP 0.93 or later.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="generate.consistent.ids">
+<refmeta>
+<refentrytitle>generate.consistent.ids</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.consistent.ids</refname>
+<refpurpose>Generate consistent id values if document is unchanged</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="generate.consistent.ids.frag">
+&lt;xsl:param name="generate.consistent.ids" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When the stylesheet assigns an id value to an output element,
+the generate-id() function may be used.  That function may not
+produce consistent values between runs.  Version control
+systems may misidentify the changing id values as changes
+to the document.</para>
+
+<para>If you set this parameter's value to 1, then the
+template named <literal>object.id</literal> will replace
+the use of the function generate-id() with
+<literal>&lt;xsl:number level="multiple" count="*"/&gt;</literal>.
+This counts preceding elements to generate a unique number for
+the id value.</para>
+
+<caution>
+<para>This param does not associate permanent unique id values
+with particular elements.
+The id values are consistent only as long as the document
+structure does not change.
+If the document structure changes, then the counting
+of elements changes, and all id values after
+the first such change may be different, even when there is
+no change to the element itself or its output.
+</para>
+</caution>
+
+<para>The default value of this parameter is zero, so generate-id() is used
+by default.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="base.dir">
+<refmeta>
+<refentrytitle>base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>base.dir</refname>
+<refpurpose>The base directory of chunks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="base.dir.frag">
+&lt;xsl:param name="base.dir"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If specified, the <parameter>base.dir</parameter> parameter identifies
+the output directory for chunks. (If not specified, the output directory
+is system dependent.)</para>
+
+<para>Starting with version 1.77 of the stylesheets, 
+the param's value will have a trailing slash added if it does
+not already have one.</para>
+
+<caution><para>Do not use <parameter>base.dir</parameter>
+to add a filename prefix string to chunked  files. 
+Instead, use the <parameter>chunked.filename.prefix</parameter>
+parameter.</para></caution>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="chunk.quietly">
+<refmeta>
+<refentrytitle>chunk.quietly</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.quietly</refname>
+<refpurpose>Omit the chunked filename messages.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="chunk.quietly.frag">
+&lt;xsl:param name="chunk.quietly" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), the XSL processor emits a message naming
+each separate chunk filename as it is being output.
+If nonzero, then the messages are suppressed.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="graphics" xml:base="../fo/param.xml"><title>Graphics</title>
+<refentry version="5.0" id="graphic.default.extension">
+<refmeta>
+<refentrytitle>graphic.default.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphic.default.extension</refname>
+<refpurpose>Default extension for graphic filenames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="graphic.default.extension.frag">&lt;xsl:param name="graphic.default.extension"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If a <tag>graphic</tag> or <tag>mediaobject</tag>
+includes a reference to a filename that does not include an extension,
+and the <tag class="attribute">format</tag> attribute is
+<emphasis>unspecified</emphasis>, the default extension will be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="default.image.width">
+<refmeta>
+<refentrytitle>default.image.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.image.width</refname>
+<refpurpose>The default width of images</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="default.image.width.frag">
+&lt;xsl:param name="default.image.width"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If specified, this value will be used for the
+<tag class="attribute">width</tag> attribute on images that do not specify any 
+<emphasis xlink:title="DocBook 5: The Definitive Guide" xlink:href="http://docbook.org/tdg5/en/html/imagedata.html#viewport.area">viewport dimensions</emphasis>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="preferred.mediaobject.role">
+<refmeta>
+<refentrytitle>preferred.mediaobject.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>preferred.mediaobject.role</refname>
+<refpurpose>Select which mediaobject to use based on
+this value of an object's <tag class="attribute">role</tag> attribute.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="preferred.mediaobject.role.frag">
+&lt;xsl:param name="preferred.mediaobject.role"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A mediaobject may contain several objects such as imageobjects.
+If the parameter <parameter>use.role.for.mediaobject</parameter> is
+non-zero, then the <literal>role</literal> attribute on
+<tag>imageobject</tag>s and other objects within a
+<tag>mediaobject</tag> container will be used to select which object
+will be used.  If one of the objects has a role value that matches the
+<parameter>preferred.mediaobject.role</parameter> parameter, then it
+has first priority for selection.  If more than one has such a role
+value, the first one is used.
+</para>
+<para>
+See the <parameter>use.role.for.mediaobject</parameter> parameter
+for the sequence of selection.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="use.role.for.mediaobject">
+<refmeta>
+<refentrytitle>use.role.for.mediaobject</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.role.for.mediaobject</refname>
+<refpurpose>Use <tag class="attribute">role</tag> attribute 
+value for selecting which of several objects within a mediaobject to use.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="use.role.for.mediaobject.frag">
+&lt;xsl:param name="use.role.for.mediaobject" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the <tag class="attribute">role</tag> attribute on
+<tag>imageobject</tag>s or other objects within a <tag>mediaobject</tag> container will be used to select which object will be
+used.
+</para>
+<para>
+The order of selection when then parameter is non-zero is:
+</para>
+<orderedlist>
+<listitem>
+    <para>If the stylesheet parameter <parameter>preferred.mediaobject.role</parameter> has a value, then the object whose role equals that value is selected.</para>
+</listitem>
+<listitem>
+<para>Else if an object's role attribute has a value of
+<literal>html</literal> for HTML processing or
+<literal>fo</literal> for FO output, then the first
+of such objects is selected.
+</para>
+</listitem>
+<listitem>
+<para>Else the first suitable object is selected.</para>
+</listitem>
+</orderedlist>
+<para>
+If the value of 
+<parameter>use.role.for.mediaobject</parameter>
+is zero, then role attributes are not considered
+and the first suitable object
+with or without a role value is used.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="ignore.image.scaling">
+<refmeta>
+<refentrytitle>ignore.image.scaling</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ignore.image.scaling</refname>
+<refpurpose>Tell the stylesheets to ignore the author's image scaling attributes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="ignore.image.scaling.frag">
+&lt;xsl:param name="ignore.image.scaling" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the scaling attributes on graphics and media objects are
+ignored.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="img.src.path">
+<refmeta>
+<refentrytitle>img.src.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>img.src.path</refname>
+<refpurpose>Path to HTML/FO image files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="img.src.path.frag">&lt;xsl:param name="img.src.path"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Add a path prefix to the value of the <tag class="attribute">fileref</tag> 
+attribute of <tag>graphic</tag>, <tag>inlinegraphic</tag>, and <tag>imagedata</tag> elements. The resulting 
+compound path is used in the output as the value of the <tag class="attribute">src</tag> 
+attribute of <tag class="element">img</tag> (HTML) or <tag class="element">external-graphic</tag> (FO).
+</para>
+
+<para>
+The path given by <literal>img.src.path</literal> could be relative to the directory where the HTML/FO
+files are created, or it could be an absolute URI.
+The default value is empty.
+Be sure to include a trailing slash if needed.
+</para>
+
+<para>This prefix is not applied to any filerefs that start
+with "/" or contain "//:".
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="keep.relative.image.uris">
+<refmeta>
+<refentrytitle>keep.relative.image.uris</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>keep.relative.image.uris</refname>
+<refpurpose>Should image URIs be resolved against xml:base?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="keep.relative.image.uris.frag">
+
+&lt;xsl:param name="keep.relative.image.uris" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, relative URIs (in, for example
+<literal>fileref</literal> attributes) will be used in the generated
+output. Otherwise, the URIs will be made absolute with respect to the
+base URI.</para>
+
+<para>Note that the stylesheets calculate (and use) the absolute form
+for some purposes, this only applies to the resulting output.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="general" xml:base="../fo/param.xml"><title>Pagination and General Styles</title>
+<partintro id="margins_partintro">
+<section id="margins_intro"><title>Understanding XSL FO Margins</title>
+
+<para>To make sense of the parameters in this section, it's useful to
+consider <xref linkend="fig.pagemodel"/>.</para>
+
+<figure id="fig.pagemodel">
+  <title>Page Model</title>
+  <mediaobject id="fo-pageregions-image">
+    <imageobject role="html">
+      <imagedata fileref="page.png"/>
+    </imageobject>
+    <imageobject role="fo">
+      <imagedata fileref="fo/page.png"/>
+    </imageobject>
+    <textobject><phrase>Figure showing page margins</phrase></textobject>
+    <textobject>
+      <para>This figure shows the physical page with the various FO page regions
+      identified.</para>
+    </textobject>
+  </mediaobject>
+</figure>
+
+<para>First, let's consider the regions on the page.</para>
+
+<para>The white region is the physical page. Its dimensions are determined by
+the <parameter>page.height</parameter> and <parameter>page.width</parameter>
+parameters.</para>
+
+<para>The yellow region is the region-body. The size and placement of
+the region body is constrained by the dimensions labelled in the
+figure.</para>
+
+<para>The pink region at the top of the page is the region-before. The
+darker area inside the region-before is the header text. In XSL, the default
+display alignment for a region is <literal>before</literal>, but the
+DocBook stylesheets still explicitly make it <literal>before</literal>. That's
+why the darker area is at the top.</para>
+
+<para>The pink region at the bottom of the page is the region-after.
+The darker area is the footer text. In XSL, the default display
+alignment for a region is <literal>before</literal>,
+but the DocBook stylesheets explicitly make it
+<literal>after</literal>. That's why the darker area is at the bottom.</para>
+
+<para>The dimensions in the figure are:</para>
+
+<orderedlist numeration="upperalpha">
+<listitem><para>The page-master margin-top.
+</para></listitem>
+<listitem><para>The region-before extent.
+</para></listitem>
+<listitem><para>The region-body margin-top.
+</para></listitem>
+<listitem><para>The region-after extent.
+</para></listitem>
+<listitem><para>The page-master margin-bottom.
+</para></listitem>
+<listitem><para>The region-body margin-bottom.
+</para></listitem>
+<listitem><para>The sum of the page-master margin-left and the
+region-body margin-left. In DocBook, the region-body margin-left is
+zero by default, so this is simply the page-master margin-left.
+</para></listitem>
+<listitem><para>The sum of the page-master margin-right and the
+region-body margin-right. In DocBook, the region-body margin-right is
+zero by default, so this is simply the page-master margin-right.
+</para></listitem>
+</orderedlist>
+
+</section>
+</partintro>
+
+<refentry version="5.0" id="page.height">
+<refmeta>
+<refentrytitle>page.height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.height</refname>
+<refpurpose>The height of the physical page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="page.height.frag">&lt;xsl:param name="page.height"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$page.orientation = 'portrait'"&gt;
+      &lt;xsl:value-of select="$page.height.portrait"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:value-of select="$page.width.portrait"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The page height is generally calculated from the
+<parameter>paper.type</parameter> and
+<parameter>page.orientation</parameter> parameters.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="page.height.portrait">
+<refmeta>
+<refentrytitle>page.height.portrait</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.height.portrait</refname>
+<refpurpose>Specify the physical size of the long edge of the page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="page.height.portrait.frag">&lt;xsl:param name="page.height.portrait"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$paper.type = 'A4landscape'"&gt;210mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'USletter'"&gt;11in&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'USlandscape'"&gt;8.5in&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = '4A0'"&gt;2378mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = '2A0'"&gt;1682mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A0'"&gt;1189mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A1'"&gt;841mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A2'"&gt;594mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A3'"&gt;420mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A4'"&gt;297mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A5'"&gt;210mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A6'"&gt;148mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A7'"&gt;105mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A8'"&gt;74mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A9'"&gt;52mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A10'"&gt;37mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B0'"&gt;1414mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B1'"&gt;1000mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B2'"&gt;707mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B3'"&gt;500mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B4'"&gt;353mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B5'"&gt;250mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B6'"&gt;176mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B7'"&gt;125mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B8'"&gt;88mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B9'"&gt;62mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B10'"&gt;44mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C0'"&gt;1297mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C1'"&gt;917mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C2'"&gt;648mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C3'"&gt;458mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C4'"&gt;324mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C5'"&gt;229mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C6'"&gt;162mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C7'"&gt;114mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C8'"&gt;81mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C9'"&gt;57mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C10'"&gt;40mm&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;11in&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The portrait page height is the length of the long
+edge of the physical page.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="page.margin.bottom">
+<refmeta>
+<refentrytitle>page.margin.bottom</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.margin.bottom</refname>
+<refpurpose>The bottom margin of the page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="page.margin.bottom.frag">
+&lt;xsl:param name="page.margin.bottom"&gt;0.5in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The bottom page margin is the distance from the bottom of the region-after
+to the physical bottom of the page.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="page.margin.inner">
+<refmeta>
+<refentrytitle>page.margin.inner</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.margin.inner</refname>
+<refpurpose>The inner page margin</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="page.margin.inner.frag">&lt;xsl:param name="page.margin.inner"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$double.sided != 0"&gt;1.25in&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;1in&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The inner page margin is the distance from bound edge of the
+page to the first column of text. </para>
+
+<para>The inner page margin is the distance from bound edge of the
+page to the outer edge of the first column of text.</para>
+
+<para>In left-to-right text direction,
+this is the left margin of recto (front side) pages.
+For single-sided output, it is the left margin
+of all pages.</para>
+
+<para>In right-to-left text direction,
+this is the right margin of recto pages.
+For single-sided output, this is the
+right margin of all pages.</para>
+
+<note>
+<para>Current versions (at least as of version 4.13)
+of the XEP XSL-FO processor do not
+correctly handle these margin settings for documents
+with right-to-left text direction.
+The workaround in that situation is to reverse
+the values for <parameter>page.margin.inner</parameter>
+and <parameter>page.margin.outer</parameter>, until
+this bug is fixed by RenderX.  It does not affect documents
+with left-to-right text direction.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="page.margin.outer">
+<refmeta>
+<refentrytitle>page.margin.outer</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.margin.outer</refname>
+<refpurpose>The outer page margin</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="page.margin.outer.frag">&lt;xsl:param name="page.margin.outer"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$double.sided != 0"&gt;0.75in&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;1in&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The outer page margin is the distance from non-bound edge of the
+page to the outer edge of the last column of text.</para>
+
+<para>In left-to-right text direction,
+this is the right margin of recto (front side) pages.
+For single-sided output, it is the right margin
+of all pages.</para>
+
+<para>In right-to-left text direction,
+this is the left margin of recto pages.
+For single-sided output, this is the
+left margin of all pages.</para>
+
+<note>
+<para>Current versions (at least as of version 4.13)
+of the XEP XSL-FO processor do not
+correctly handle these margin settings for documents
+with right-to-left text direction.
+The workaround in that situation is to reverse
+the values for <parameter>page.margin.inner</parameter>
+and <parameter>page.margin.outer</parameter>, until
+this bug is fixed by RenderX.  It does not affect documents
+with left-to-right text direction.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="page.margin.top">
+<refmeta>
+<refentrytitle>page.margin.top</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.margin.top</refname>
+<refpurpose>The top margin of the page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="page.margin.top.frag">
+&lt;xsl:param name="page.margin.top"&gt;0.5in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The top page margin is the distance from the physical top of the
+page to the top of the region-before.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="page.orientation">
+<refmeta>
+<refentrytitle>page.orientation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">portrait</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">landscape</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.orientation</refname>
+<refpurpose>Select the page orientation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="page.orientation.frag">
+&lt;xsl:param name="page.orientation"&gt;portrait&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para> Select one from portrait or landscape.
+In portrait orientation, the short edge is horizontal; in
+landscape orientation, it is vertical.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="page.width">
+<refmeta>
+<refentrytitle>page.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.width</refname>
+<refpurpose>The width of the physical page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="page.width.frag">&lt;xsl:param name="page.width"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$page.orientation = 'portrait'"&gt;
+      &lt;xsl:value-of select="$page.width.portrait"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:value-of select="$page.height.portrait"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The page width is generally calculated from the
+<parameter>paper.type</parameter> and 
+<parameter>page.orientation</parameter> parameters.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="page.width.portrait">
+<refmeta>
+<refentrytitle>page.width.portrait</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.width.portrait</refname>
+<refpurpose>Specify the physical size of the short edge of the page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="page.width.portrait.frag">&lt;xsl:param name="page.width.portrait"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$paper.type = 'USletter'"&gt;8.5in&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = '4A0'"&gt;1682mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = '2A0'"&gt;1189mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A0'"&gt;841mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A1'"&gt;594mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A2'"&gt;420mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A3'"&gt;297mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A4'"&gt;210mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A5'"&gt;148mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A6'"&gt;105mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A7'"&gt;74mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A8'"&gt;52mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A9'"&gt;37mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A10'"&gt;26mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B0'"&gt;1000mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B1'"&gt;707mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B2'"&gt;500mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B3'"&gt;353mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B4'"&gt;250mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B5'"&gt;176mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B6'"&gt;125mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B7'"&gt;88mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B8'"&gt;62mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B9'"&gt;44mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B10'"&gt;31mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C0'"&gt;917mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C1'"&gt;648mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C2'"&gt;458mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C3'"&gt;324mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C4'"&gt;229mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C5'"&gt;162mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C6'"&gt;114mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C7'"&gt;81mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C8'"&gt;57mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C9'"&gt;40mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C10'"&gt;28mm&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;8.5in&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The portrait page width is the length of the short
+edge of the physical page.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="paper.type">
+<refmeta>
+<refentrytitle>paper.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="list-type">open</refmiscinfo>
+<refmiscinfo class="other" otherclass="list-type">open</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">USletter<alt>8.5x11in</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">USlandscape<alt>11x8.5in</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">USlegal<alt>8.5inx14in</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">USlegallandscape<alt>14inx8.5in</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">4A0<alt>2378x1682mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">2A0<alt>1682x1189mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A0<alt>1189x841mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A1<alt>841x594mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A2<alt>594x420mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A3<alt>420x297mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A4<alt>297x210mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A5<alt>210x148mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A6<alt>148x105mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A7<alt>105x74mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A8<alt>74x52mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A9<alt>52x37mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A10<alt>37x26mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B0<alt>1414x1000mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B1<alt>1000x707mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B2<alt>707x500mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B3<alt>500x353mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B4<alt>353x250mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B5<alt>250x176mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B6<alt>176x125mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B7<alt>125x88mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B8<alt>88x62mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B9<alt>62x44mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B10<alt>44x31mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C0<alt>1297x917mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C1<alt>917x648mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C2<alt>648x458mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C3<alt>458x324mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C4<alt>324x229mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C5<alt>229x162mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C6<alt>162x114mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C7<alt>114x81mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C8<alt>81x57mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C9<alt>57x40mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C10<alt>40x28mm</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>paper.type</refname>
+<refpurpose>Select the paper type</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="paper.type.frag">
+&lt;xsl:param name="paper.type"&gt;USletter&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The paper type is a convenient way to specify the paper size.
+The list of known paper sizes includes USletter and most of the A,
+B, and C sizes. See <parameter>page.width.portrait</parameter>, for example.
+
+
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="double.sided">
+<refmeta>
+<refentrytitle>double.sided</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>double.sided</refname>
+<refpurpose>Is the document to be printed double sided?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="double.sided.frag">
+&lt;xsl:param name="double.sided" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Double-sided documents are printed with a slightly wider margin
+on the binding edge of the page.
+</para>
+<para>FIXME: The current set of parameters does not take writing direction
+into account.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="body.margin.bottom">
+<refmeta>
+<refentrytitle>body.margin.bottom</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.margin.bottom</refname>
+<refpurpose>The bottom margin of the body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="body.margin.bottom.frag">
+&lt;xsl:param name="body.margin.bottom"&gt;0.5in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The body bottom margin is the distance from the last line of text
+in the page body to the bottom of the region-after.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="body.margin.top">
+<refmeta>
+<refentrytitle>body.margin.top</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.margin.top</refname>
+<refpurpose>To specify the size of the top margin of a page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="body.margin.top.frag">
+&lt;xsl:param name="body.margin.top"&gt;0.5in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The body top margin is the distance from the top of the
+region-before to the first line of text in the page body.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="body.margin.inner">
+<refmeta>
+<refentrytitle>body.margin.inner</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.margin.inner</refname>
+<refpurpose>Specify the size of the inner margin of the body region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="body.margin.inner.frag">
+&lt;xsl:param name="body.margin.inner"&gt;0in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The inner body margin is the extra inner side 
+(binding side) margin taken from the body
+region in addition to the inner page margin.
+It makes room for a side region for text content whose width is 
+specified by the <parameter>region.inner.extent</parameter>
+parameter.</para>
+
+<para>For double-sided output,
+this side region 
+is <literal>fo:region-start</literal> on a odd-numbered page,
+and <literal>fo:region-end</literal> on an even-numbered page.</para>
+
+<para>For single-sided output,
+this side region
+is <literal>fo:region-start</literal> for all pages.</para>
+
+<para>This correspondence applies to all languages,
+both left-to-right and right-to-left writing modes.</para>
+
+<para>The default value is zero.</para>
+
+<para>See also
+<parameter>region.inner.extent</parameter>,
+<parameter>region.outer.extent</parameter>,
+<parameter>body.margin.outer</parameter>,
+<parameter>side.region.precedence</parameter>.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="body.margin.outer">
+<refmeta>
+<refentrytitle>body.margin.outer</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.margin.outer</refname>
+<refpurpose>Specify the size of the outer margin of the body region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="body.margin.outer.frag">
+&lt;xsl:param name="body.margin.outer"&gt;0in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The outer body margin is the extra outer side 
+(opposite the binding side) margin taken
+from the body
+region in addition to the outer page margin.
+It makes room for a side region for text content whose width is 
+specified by the <parameter>region.outer.extent</parameter>
+parameter.</para>
+
+<para>For double-sided output,
+this side region 
+is <literal>fo:region-end</literal> on a odd-numbered page,
+and <literal>fo:region-start</literal> on an even-numbered page.</para>
+
+<para>For single-sided output,
+this side region
+is <literal>fo:region-end</literal> for all pages.</para>
+
+<para>This correspondence applies to all languages,
+both left-to-right and right-to-left writing modes.</para>
+
+<para>The default value is zero.</para>
+
+<para>See also
+<parameter>region.inner.extent</parameter>,
+<parameter>region.outer.extent</parameter>,
+<parameter>body.margin.inner</parameter>,
+<parameter>side.region.precedence</parameter>.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="body.start.indent">
+<refmeta>
+<refentrytitle>body.start.indent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.start.indent</refname>
+<refpurpose>The start-indent for the body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="body.start.indent.frag">
+&lt;xsl:param name="body.start.indent"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$fop.extensions != 0"&gt;0pt&lt;/xsl:when&gt;
+    &lt;xsl:when test="$passivetex.extensions != 0"&gt;0pt&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;4pc&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter provides
+the means of indenting the body text relative to
+section titles.
+For left-to-right text direction, it indents the left side.
+For right-to-left text direction, it indents the right side.
+It is used in place of the 
+<parameter>title.margin.left</parameter> for
+all XSL-FO processors except FOP 0.25.
+It enables support for side floats to appear
+in the indented margin area.
+</para>
+<para>This start-indent property is added to the fo:flow
+for certain page sequences.  Which page-sequences it is 
+applied to is determined by the template named
+<literal>set.flow.properties</literal>.
+By default, that template adds it to the flow
+for page-sequences using the <quote>body</quote>
+master-reference, as well as appendixes and prefaces.
+</para>
+<para>If this parameter is used, section titles should have
+a start-indent value of 0pt if they are to be
+outdented relative to the body text.
+</para>
+
+<para>If you are using FOP, then set this parameter to a zero
+width value and set the <parameter>title.margin.left</parameter>
+parameter to the negative value of the desired indent.
+</para>
+
+<para>See also <parameter>body.end.indent</parameter> and
+<parameter>title.margin.left</parameter>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="body.end.indent">
+<refmeta>
+<refentrytitle>body.end.indent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.end.indent</refname>
+<refpurpose>The end-indent for the body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="body.end.indent.frag">
+&lt;xsl:param name="body.end.indent"&gt;0pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This end-indent property is added to the fo:flow
+for certain page sequences.  Which page-sequences it is 
+applied to is determined by the template named
+<literal>set.flow.properties</literal>.
+By default, that template adds it to the flow
+for page-sequences using the <quote>body</quote>
+master-reference, as well as appendixes and prefaces.
+</para>
+
+<para>See also <parameter>body.start.indent</parameter>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="alignment">
+<refmeta>
+<refentrytitle>alignment</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+  <refmiscinfo class="other" otherclass="list-type">open</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">left</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">start</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">right</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">end</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">center</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">justify</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>alignment</refname>
+<refpurpose>Specify the default text alignment</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="alignment.frag">&lt;xsl:param name="alignment"&gt;justify&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The default text alignment is used for most body text.
+Allowed values are 
+<literal>left</literal>,
+<literal>right</literal>,
+<literal>start</literal>,
+<literal>end</literal>,
+<literal>center</literal>,
+<literal>justify</literal>.
+The default value is <literal>justify</literal>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="hyphenate">
+<refmeta>
+<refentrytitle>hyphenate</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="list-type">closed</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">true</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">false</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>hyphenate</refname>
+<refpurpose>Specify hyphenation behavior</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="hyphenate.frag">&lt;xsl:param name="hyphenate"&gt;true&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, words may be hyphenated. Otherwise, they may not.</para>
+<para>See also <parameter>ulink.hyphenate.chars</parameter> </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="line-height">
+<refmeta>
+<refentrytitle>line-height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>line-height</refname>
+<refpurpose>Specify the line-height property</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="line-height.frag">
+&lt;xsl:param name="line-height"&gt;normal&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the line-height property.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="column.count.back">
+<refmeta>
+<refentrytitle>column.count.back</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.back</refname>
+<refpurpose>Number of columns on back matter pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="column.count.back.frag">
+&lt;xsl:param name="column.count.back" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on back matter (appendix, glossary, etc.) pages.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="column.count.body">
+<refmeta>
+<refentrytitle>column.count.body</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.body</refname>
+<refpurpose>Number of columns on body pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="column.count.body.frag">
+&lt;xsl:param name="column.count.body" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on body pages.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="column.count.front">
+<refmeta>
+<refentrytitle>column.count.front</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.front</refname>
+<refpurpose>Number of columns on front matter pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="column.count.front.frag">
+&lt;xsl:param name="column.count.front" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on front matter (dedication, preface, etc.) pages.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="column.count.index">
+<refmeta>
+<refentrytitle>column.count.index</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.index</refname>
+<refpurpose>Number of columns on index pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="column.count.index.frag">
+&lt;xsl:param name="column.count.index"&gt;2&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on index pages.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="column.count.lot">
+<refmeta>
+<refentrytitle>column.count.lot</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.lot</refname>
+<refpurpose>Number of columns on a 'List-of-Titles' page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="column.count.lot.frag">
+&lt;xsl:param name="column.count.lot" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on a page sequence containing the Table of Contents,
+List of Figures, etc.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="column.count.titlepage">
+<refmeta>
+<refentrytitle>column.count.titlepage</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.titlepage</refname>
+<refpurpose>Number of columns on a title page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="column.count.titlepage.frag">
+&lt;xsl:param name="column.count.titlepage" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on a title page</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="column.gap.back">
+<refmeta>
+<refentrytitle>column.gap.back</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.back</refname>
+<refpurpose>Gap between columns in back matter</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="column.gap.back.frag">
+&lt;xsl:param name="column.gap.back"&gt;12pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns in back matter (if
+<parameter>column.count.back</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="column.gap.body">
+<refmeta>
+<refentrytitle>column.gap.body</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.body</refname>
+<refpurpose>Gap between columns in the body</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="column.gap.body.frag">
+&lt;xsl:param name="column.gap.body"&gt;12pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns in body matter (if
+<parameter>column.count.body</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="column.gap.front">
+<refmeta>
+<refentrytitle>column.gap.front</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.front</refname>
+<refpurpose>Gap between columns in the front matter</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="column.gap.front.frag">
+&lt;xsl:param name="column.gap.front"&gt;12pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns in front matter (if
+<parameter>column.count.front</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="column.gap.index">
+<refmeta>
+<refentrytitle>column.gap.index</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.index</refname>
+<refpurpose>Gap between columns in the index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="column.gap.index.frag">
+&lt;xsl:param name="column.gap.index"&gt;12pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns in indexes (if
+<parameter>column.count.index</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="column.gap.lot">
+<refmeta>
+<refentrytitle>column.gap.lot</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.lot</refname>
+<refpurpose>Gap between columns on a 'List-of-Titles' page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="column.gap.lot.frag">
+&lt;xsl:param name="column.gap.lot"&gt;12pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns on 'List-of-Titles' pages (if
+<parameter>column.count.lot</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="column.gap.titlepage">
+<refmeta>
+<refentrytitle>column.gap.titlepage</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.titlepage</refname>
+<refpurpose>Gap between columns on title pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="column.gap.titlepage.frag">
+&lt;xsl:param name="column.gap.titlepage"&gt;12pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns on title pages (if
+<parameter>column.count.titlepage</parameter> is greater than one).</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="region.after.extent">
+<refmeta>
+<refentrytitle>region.after.extent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.after.extent</refname>
+<refpurpose>Specifies the height of the footer.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="region.after.extent.frag">
+&lt;xsl:param name="region.after.extent"&gt;0.4in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The region after extent is the height of the area where footers
+are printed.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="region.before.extent">
+<refmeta>
+<refentrytitle>region.before.extent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.before.extent</refname>
+<refpurpose>Specifies the height of the header</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="region.before.extent.frag">
+&lt;xsl:param name="region.before.extent"&gt;0.4in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The region before extent is the height of the area where headers
+are printed.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="region.inner.extent">
+<refmeta>
+<refentrytitle>region.inner.extent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.inner.extent</refname>
+<refpurpose>Specifies the width of the inner side region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="region.inner.extent.frag">
+&lt;xsl:param name="region.inner.extent"&gt;0in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The region inner extent is the width of the optional
+text area next to the inner side (binding side) of the
+body region.  </para>
+
+<para>For double-sided output, this side region 
+is <literal>fo:region-start</literal> on a odd-numbered page,
+and <literal>fo:region-end</literal> on an even-numbered page.</para>
+
+<para>For single-sided output, this side region
+is <literal>fo:region-start</literal> for all pages.</para>
+
+<para>This correspondence applies to all languages,
+both left-to-right and right-to-left writing modes.</para>
+
+<para>The default value of this parameter is zero.  If you enlarge this extent,
+be sure to also enlarge the <parameter>body.margin.inner</parameter>
+parameter to make room for its content, otherwise any text in
+the side region may overlap with the body text.</para>
+
+<para>See also
+<parameter>region.outer.extent</parameter>,
+<parameter>body.margin.inner</parameter>,
+<parameter>body.margin.outer</parameter>,
+<parameter>side.region.precedence</parameter>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="region.outer.extent">
+<refmeta>
+<refentrytitle>region.outer.extent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.outer.extent</refname>
+<refpurpose>Specifies the width of the outer side region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="region.outer.extent.frag">
+&lt;xsl:param name="region.outer.extent"&gt;0in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The region outer extent is the width of the optional
+text area next to the outer side (opposite the binding side) of the
+body region.  </para>
+
+<para>For double-sided output, this side region 
+is <literal>fo:region-end</literal> on a odd-numbered page,
+and <literal>fo:region-start</literal> on an even-numbered page.</para>
+
+<para>For single-sided output, this side region
+is <literal>fo:region-end</literal> for all pages.</para>
+
+<para>This correspondence applies to all languages,
+both left-to-right and right-to-left writing modes.</para>
+
+<para>The default value of this parameter is zero.  If you enlarge this extent,
+be sure to also enlarge the <parameter>body.margin.outer</parameter>
+parameter to make room for its content, otherwise any text in
+the side region may overlap with the body text.</para>
+
+<para>See also
+<parameter>region.inner.extent</parameter>,
+<parameter>body.margin.inner</parameter>,
+<parameter>body.margin.outer</parameter>,
+<parameter>side.region.precedence</parameter>.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="default.units">
+<refmeta>
+<refentrytitle>default.units</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">cm</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">mm</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">in</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">pt</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">pc</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">px</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">em</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.units</refname>
+<refpurpose>Default units for an unqualified dimension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="default.units.frag">
+&lt;xsl:param name="default.units"&gt;pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If an unqualified dimension is encountered (for example, in a
+graphic width), the <parameter>default.units</parameter> will be used for the
+units. Unqualified dimensions are not allowed in XSL Formatting Objects.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="normal.para.spacing">
+<refmeta>
+<refentrytitle>normal.para.spacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>normal.para.spacing</refname>
+<refpurpose>What space do you want between normal paragraphs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="normal.para.spacing.frag">&lt;xsl:attribute-set name="normal.para.spacing"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify the spacing required between normal paragraphs as well as
+the following block-level elements:
+</para>
+<literallayout>ackno
+acknowledgements
+cmdsynopsis
+glosslist
+sidebar
+simpara
+simplelist
+</literallayout>
+<para>To customize the spacing, you need to reset all three attributes.</para>
+
+<para>To specify properties on just <tag>para</tag> elements without
+affecting these other elements,
+use the
+<link linkend="para.properties">para.properties</link>
+attribute-set. </para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="para.properties">
+<refmeta>
+<refentrytitle>para.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>para.properties</refname>
+<refpurpose>Properties to apply to para elements</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="para.properties.frag">&lt;xsl:attribute-set name="para.properties" use-attribute-sets="normal.para.spacing"&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify properties to apply to the fo:block of a para element,
+such as <literal>text-indent</literal>.
+Although the default attribute-set is empty, it uses the attribute-set
+named <literal>normal.para.spacing</literal> to add vertical space before
+each para. The <literal>para.properties</literal> attribute-set can override those 
+spacing properties for para only.</para>
+<para>See also
+<link linkend="normal.para.spacing">normal.para.spacing</link>.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="body.font.master">
+<refmeta>
+<refentrytitle>body.font.master</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">number</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.font.master</refname>
+<refpurpose>Specifies the default point size for body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="body.font.master.frag">
+&lt;xsl:param name="body.font.master"&gt;10&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The body font size is specified in two parameters
+(<parameter>body.font.master</parameter> and <parameter>body.font.size</parameter>)
+so that math can be performed on the font size by XSLT.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="body.font.size">
+<refmeta>
+<refentrytitle>body.font.size</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.font.size</refname>
+<refpurpose>Specifies the default font size for body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="body.font.size.frag">
+&lt;xsl:param name="body.font.size"&gt;
+ &lt;xsl:value-of select="$body.font.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>The body font size is specified in two parameters
+(<parameter>body.font.master</parameter> and <parameter>body.font.size</parameter>)
+so that math can be performed on the font size by XSLT.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footnote.font.size">
+<refmeta>
+<refentrytitle>footnote.font.size</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footnote.font.size</refname>
+<refpurpose>The font size for footnotes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footnote.font.size.frag">&lt;xsl:param name="footnote.font.size"&gt;
+ &lt;xsl:value-of select="$body.font.master * 0.8"&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>The footnote font size is used for...footnotes!
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="title.margin.left">
+<refmeta>
+<refentrytitle>title.margin.left</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>title.margin.left</refname>
+<refpurpose>Adjust the left margin for titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="title.margin.left.frag">
+&lt;xsl:param name="title.margin.left"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$fop.extensions != 0"&gt;-4pc&lt;/xsl:when&gt;
+    &lt;xsl:when test="$passivetex.extensions != 0"&gt;0pt&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;0pt&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter provides
+the means of adjusting the left margin for titles
+when the XSL-FO processor being used is
+an old version of FOP (0.25 and earlier).
+It is only useful when the <parameter>fop.extensions</parameter>
+is nonzero.</para>
+
+<para>The left margin of the body region
+is calculated to include this space,
+and titles are outdented to the left outside
+the body region by this amount,
+effectively leaving titles at the intended left margin
+and the body text indented.
+Currently this method is only used for old FOP because
+it cannot properly use the <parameter>body.start.indent</parameter>
+parameter.
+</para>
+<para>
+The default value when the <parameter>fop.extensions</parameter>
+parameter is nonzero is -4pc, which means the
+body text is indented 4 picas relative to
+the titles.
+The default value when the <parameter>fop.extensions</parameter>
+parameter equals zero is 0pt, and
+the body indent should instead be specified
+using the <parameter>body.start.indent</parameter>
+parameter.
+</para>
+<para>
+If you set the value to zero, be sure to still include
+a unit indicator such as <literal>0pt</literal>, or
+the FO processor will report errors.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="draft.mode">
+<refmeta>
+<refentrytitle>draft.mode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>draft.mode</refname>
+<refpurpose>Select draft mode</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="draft.mode.frag">
+&lt;xsl:param name="draft.mode"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects draft mode. If <parameter>draft.mode</parameter> is
+<quote><literal>yes</literal></quote>, the entire document will be treated
+as a draft. If it is <quote><literal>no</literal></quote>, the entire document
+will be treated as a final copy. If it is <quote><literal>maybe</literal></quote>,
+individual sections will be treated as draft or final independently, depending
+on how their <literal>status</literal> attribute is set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="draft.watermark.image">
+<refmeta>
+<refentrytitle>draft.watermark.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>draft.watermark.image</refname>
+<refpurpose>The URI of the image to be used for draft watermarks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="draft.watermark.image.frag">
+&lt;xsl:param name="draft.watermark.image"&gt;images/draft.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The image to be used for draft watermarks.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="headers.on.blank.pages">
+<refmeta>
+<refentrytitle>headers.on.blank.pages</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>headers.on.blank.pages</refname>
+<refpurpose>Put headers on blank pages?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="headers.on.blank.pages.frag">
+&lt;xsl:param name="headers.on.blank.pages" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, headers will be placed on blank pages.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footers.on.blank.pages">
+<refmeta>
+<refentrytitle>footers.on.blank.pages</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footers.on.blank.pages</refname>
+<refpurpose>Put footers on blank pages?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footers.on.blank.pages.frag">
+&lt;xsl:param name="footers.on.blank.pages" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, footers will be placed on blank pages.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="header.rule">
+<refmeta>
+<refentrytitle>header.rule</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.rule</refname>
+<refpurpose>Rule under headers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="header.rule.frag">
+&lt;xsl:param name="header.rule" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a rule will be drawn below the page headers.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footer.rule">
+<refmeta>
+<refentrytitle>footer.rule</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.rule</refname>
+<refpurpose>Rule over footers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footer.rule.frag">
+&lt;xsl:param name="footer.rule" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a rule will be drawn above the page footers.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="header.column.widths">
+<refmeta>
+<refentrytitle>header.column.widths</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.column.widths</refname>
+<refpurpose>Specify relative widths of header areas</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><programlisting id="header.column.widths.frag">
+&lt;xsl:param name="header.column.widths"&gt;1 1 1&lt;/xsl:param&gt;
+</programlisting></refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Page headers in print output use a three column table
+to position text at the left, center, and right side of
+the header on the page.
+This parameter lets you specify the relative sizes of the
+three columns.  The default value is
+"1 1 1".</para>
+
+<para>The parameter value must be three numbers, separated
+by white space. The first number represents the relative
+width of the inside header for
+double-sided output.  The second number is the relative
+width of the center header.  The third number is the
+relative width of the outside header for
+double-sided output.
+</para>
+<para>For single-sided output, the first number is the
+relative width of left header for left-to-right
+text direction, or the right header for right-to-left
+text direction.  
+The third number is the
+relative width of right header for left-to-right
+text direction, or the left header for right-to-left
+text direction.</para>
+
+<para>The numbers are used to specify the column widths
+for the table that makes up the header area.
+In the FO output, this looks like:
+</para>
+
+<programlisting>
+&lt;fo:table-column column-number="1" 
+    column-width="proportional-column-width(1)"/&gt;
+</programlisting>
+
+<para>
+The <literal>proportional-column-width()</literal>
+function computes a column width by dividing its
+argument by the total of the arguments for all the columns, and
+then multiplying the result by the width of the whole table
+(assuming all the column specs use the function).
+Its argument can be any positive integer or floating point number.
+Zero is an acceptable value, although some FO processors
+may warn about it, in which case using a very small number might
+be more satisfactory.
+</para>
+
+<para>For example, the value "1 2 1" means the center
+header should have twice the width of the other areas.
+A value of "0 0 1" means the entire header area
+is reserved for the right (or outside) header text.
+Note that to keep the center area centered on
+the page, the left and right values must be
+the same. A specification like "1 2 3" means the
+center area is no longer centered on the page
+since the right area is three times the width of the left area.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footer.column.widths">
+<refmeta>
+<refentrytitle>footer.column.widths</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.column.widths</refname>
+<refpurpose>Specify relative widths of footer areas</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><programlisting id="footer.column.widths.frag">
+&lt;xsl:param name="footer.column.widths"&gt;1 1 1&lt;/xsl:param&gt;
+</programlisting></refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Page footers in print output use a three column table
+to position text at the left, center, and right side of
+the footer on the page.
+This parameter lets you specify the relative sizes of the
+three columns.  The default value is
+"1 1 1".</para>
+
+<para>The parameter value must be three numbers, separated
+by white space. The first number represents the relative
+width of the inside footer for
+double-sided output.  The second number is the relative
+width of the center footer.  The third number is the
+relative width of the outside footer for
+double-sided output.
+</para>
+<para>For single-sided output, the first number is the
+relative width of left footer for left-to-right
+text direction, or the right footer for right-to-left
+text direction.  
+The third number is the
+relative width of right footer for left-to-right
+text direction, or the left footer for right-to-left
+text direction.</para>
+
+<para>The numbers are used to specify the column widths
+for the table that makes up the footer area.
+In the FO output, this looks like:
+</para>
+
+<programlisting>
+&lt;fo:table-column column-number="1" 
+    column-width="proportional-column-width(1)"/&gt;
+</programlisting>
+
+<para>
+The <literal>proportional-column-width()</literal>
+function computes a column width by dividing its
+argument by the total of the arguments for all the columns, and
+then multiplying the result by the width of the whole table
+(assuming all the column specs use the function).
+Its argument can be any positive integer or floating point number.
+Zero is an acceptable value, although some FO processors
+may warn about it, in which case using a very small number might
+be more satisfactory.
+</para>
+
+<para>For example, the value "1 2 1" means the center
+footer should have twice the width of the other areas.
+A value of "0 0 1" means the entire footer area
+is reserved for the right (or outside) footer text.
+Note that to keep the center area centered on
+the page, the left and right values must be
+the same. A specification like "1 2 3" means the
+center area is no longer centered on the page
+since the right area is three times the width of the left area.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="header.table.properties">
+<refmeta>
+<refentrytitle>header.table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.table.properties</refname>
+<refpurpose>Apply properties to the header layout table</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="header.table.properties.frag">
+&lt;xsl:attribute-set name="header.table.properties"&gt;
+  &lt;xsl:attribute name="table-layout"&gt;fixed&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="width"&gt;100%&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties applied to the table that lays out the page header.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="header.table.height">
+<refmeta>
+<refentrytitle>header.table.height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.table.height</refname>
+<refpurpose>Specify the minimum height of the table containing the running page headers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><programlisting id="header.table.height.frag">
+&lt;xsl:param name="header.table.height"&gt;14pt&lt;/xsl:param&gt;
+</programlisting></refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Page headers in print output use a three column table
+to position text at the left, center, and right side of
+the header on the page.
+This parameter lets you specify the minimum height 
+of the single row in the table.  
+Since this specifies only the minimum height,
+the table should automatically grow to fit taller content.
+The default value is "14pt".</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footer.table.properties">
+<refmeta>
+<refentrytitle>footer.table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.table.properties</refname>
+<refpurpose>Apply properties to the footer layout table</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footer.table.properties.frag">
+&lt;xsl:attribute-set name="footer.table.properties"&gt;
+  &lt;xsl:attribute name="table-layout"&gt;fixed&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="width"&gt;100%&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties applied to the table that lays out the page footer.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footer.table.height">
+<refmeta>
+<refentrytitle>footer.table.height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.table.height</refname>
+<refpurpose>Specify the minimum height of the table containing the running page footers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><programlisting id="footer.table.height.frag">
+&lt;xsl:param name="footer.table.height"&gt;14pt&lt;/xsl:param&gt;
+</programlisting></refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Page footers in print output use a three column table
+to position text at the left, center, and right side of
+the footer on the page.
+This parameter lets you specify the minimum height 
+of the single row in the table.  
+Since this specifies only the minimum height,
+the table should automatically grow to fit taller content.
+The default value is "14pt".</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="header.content.properties">
+<refmeta>
+<refentrytitle>header.content.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.content.properties</refname>
+<refpurpose>Properties of page header content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="header.content.properties.frag">
+&lt;xsl:attribute-set name="header.content.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$body.fontset"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-left"&gt;
+    &lt;xsl:value-of select="$title.margin.left"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties of page header content.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footer.content.properties">
+<refmeta>
+<refentrytitle>footer.content.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.content.properties</refname>
+<refpurpose>Properties of page footer content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footer.content.properties.frag">
+&lt;xsl:attribute-set name="footer.content.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$body.fontset"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-left"&gt;
+    &lt;xsl:value-of select="$title.margin.left"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties of page footer content.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="marker.section.level">
+<refmeta>
+<refentrytitle>marker.section.level</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>marker.section.level</refname>
+<refpurpose>Control depth of sections shown in running headers or footers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="marker.section.level.frag">
+&lt;xsl:param name="marker.section.level"&gt;2&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>marker.section.level</parameter> parameter
+controls the depth of section levels that may be displayed
+in running headers and footers.  For example, if the value
+is 2 (the default), then titles from <tag>sect1</tag> and 
+<tag>sect2</tag> or equivalent <tag>section</tag>
+elements are candidates for use in running headers and
+footers.
+</para>
+<para>Each candidate title is marked in the FO output with a
+<tag>&lt;fo:marker marker-class-name="section.head.marker"&gt;</tag>
+element.
+</para>
+<para>In order for such titles to appear in headers
+or footers, the <literal>header.content</literal>
+or <literal>footer.content</literal> template
+must be customized to retrieve the marker using
+an output element such as:
+</para>
+<programlisting>
+&lt;fo:retrieve-marker retrieve-class-name="section.head.marker"
+                       retrieve-position="first-including-carryover"
+                       retrieve-boundary="page-sequence"/&gt;
+</programlisting>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="side.region.precedence"> 
+<refmeta> 
+<refentrytitle>side.region.precedence</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>side.region.precedence</refname> 
+<refpurpose>Determines side region page layout precedence</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting id="side.region.precedence.frag">
+&lt;xsl:param name="side.region.precedence"&gt;false&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>If optional side regions on a page
+are established using parameters such as
+<parameter>body.margin.inner</parameter>, 
+<parameter>region.inner.extent</parameter>, etc., then this
+parameter determines what happens at the corners where the
+side regions meet the header and footer regions.</para>
+
+<para>If the value of this parameter is <literal>true</literal>,
+then the side regions have precedence and extend higher
+and lower, while the header and footer regions are narrower
+and fit inside the side regions.</para>
+
+<para>If the value of this parameter is <literal>false</literal>
+(the default value), then the header and footer regions 
+have precedence and extend over and below the side regions.
+Any value other than <literal>true</literal> or
+<literal>false</literal> is taken to be <literal>false</literal>.</para>
+
+<para>If you need to set precedence separately for
+individual regions, then you can set four
+parameters that are normally internal to the stylesheet.
+These four parameters are normally set based
+on the value from <parameter>side.region.precedence</parameter>:</para>
+
+<programlisting>region.before.precedence
+region.after.precedence
+region.start.precedence
+region.end.precedence</programlisting>
+
+<para>See also
+<parameter>region.inner.extent</parameter>,
+<parameter>region.outer.extent</parameter>,
+<parameter>body.margin.inner</parameter>,
+<parameter>body.margin.outer</parameter>.
+</para>
+</refsection> </refentry>
+
+<refentry version="5.0" id="region.inner.properties">
+<refmeta>
+<refentrytitle>region.inner.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.inner.properties</refname>
+<refpurpose>Properties of running inner side region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="region.inner.properties.frag">
+&lt;xsl:attribute-set name="region.inner.properties"&gt;
+  &lt;xsl:attribute name="border-width"&gt;0&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding"&gt;0&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="reference-orientation"&gt;90&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The FO stylesheet supports optional side regions
+similar to the header and footer regions.
+Any attributes declared in this attribute-set 
+are applied to the region element in the page master
+on the inner side (binding side) of the page.
+This corresponds to <literal>&lt;fo:regin-start&gt;</literal>
+on odd-numbered pages and <literal>&lt;fo:region-end&gt;</literal>
+on even-numbered pages.
+For single-sided output, it always corresponds to
+<literal>&lt;fo:regin-start&gt;</literal>.</para>
+
+<para>You can customize the template named 
+<literal>inner.region.content</literal> to specify
+the content of the inner side region.</para>
+
+<para>See also
+<parameter>inner.region.content.properties</parameter>,
+<parameter>page.margin.inner</parameter>, 
+<parameter>body.margin.inner</parameter>,
+and the corresponding <literal>outer</literal>
+parameters.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="region.outer.properties">
+<refmeta>
+<refentrytitle>region.outer.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.outer.properties</refname>
+<refpurpose>Properties of running outer side region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="region.outer.properties.frag">
+&lt;xsl:attribute-set name="region.outer.properties"&gt;
+  &lt;xsl:attribute name="border-width"&gt;0&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding"&gt;0&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="reference-orientation"&gt;90&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The FO stylesheet supports optional side regions
+similar to the header and footer regions.
+Any attributes declared in this attribute-set 
+are applied to the region element in the page master
+on the outer side (opposite the binding side) of the page.
+This corresponds to <literal>&lt;fo:regin-start&gt;</literal>
+on odd-numbered pages and <literal>&lt;fo:region-end&gt;</literal>
+on even-numbered pages.
+For single-sided output, it always corresponds to
+<literal>&lt;fo:regin-start&gt;</literal>.</para>
+
+<para>You can customize the template named 
+<literal>outer.region.content</literal> to specify
+the content of the outer side region.</para>
+
+<para>See also
+<parameter>outer.region.content.properties</parameter>,
+<parameter>page.margin.outer</parameter>, 
+<parameter>body.margin.outer</parameter>,
+and the corresponding <literal>inner</literal>
+parameters.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="inner.region.content.properties">
+<refmeta>
+<refentrytitle>inner.region.content.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>inner.region.content.properties</refname>
+<refpurpose>Properties of running inner side content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="inner.region.content.properties.frag">
+&lt;xsl:attribute-set name="inner.region.content.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The FO stylesheet supports optional side regions
+similar to the header and footer regions.
+Any attributes declared in this attribute-set 
+are applied to the fo:block in the side region
+on the inner side (binding side) of the page.
+This corresponds to the <literal>start</literal>
+region on odd-numbered pages and the <literal>end</literal>
+region on even-numbered pages.
+For single-sided output, it always corresponds to
+the <literal>start</literal> region.</para>
+
+<para>You can customize the template named 
+<literal>inner.region.content</literal> to specify
+the content of the inner side region.</para>
+
+<para>See also
+<parameter>region.inner.properties</parameter>,
+<parameter>page.margin.inner</parameter>, 
+<parameter>body.margin.inner</parameter>,
+and the corresponding <literal>outer</literal>
+parameters.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="outer.region.content.properties">
+<refmeta>
+<refentrytitle>outer.region.content.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>outer.region.content.properties</refname>
+<refpurpose>Properties of running outer side content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="outer.region.content.properties.frag">
+&lt;xsl:attribute-set name="outer.region.content.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The FO stylesheet supports optional side regions
+similar to the header and footer regions.
+Any attributes declared in this attribute-set 
+are applied to the fo:block in the side region
+on the outer side (opposite the binding side) of the page.
+This corresponds to the <literal>start</literal>
+region on odd-numbered pages and the <literal>end</literal>
+region on even-numbered pages.
+For single-sided output, it always corresponds to
+the <literal>start</literal> region.</para>
+
+<para>You can customize the template named 
+<literal>outer.region.content</literal> to specify
+the content of the outer side region.</para>
+
+<para>See also
+<parameter>region.outer.properties</parameter>,
+<parameter>page.margin.outer</parameter>, 
+<parameter>body.margin.outer</parameter>,
+and the corresponding <literal>inner</literal>
+parameters.</para>
+</refsection>
+</refentry>
+
+</reference><reference id="fonts" xml:base="../fo/param.xml"><title>Font Families</title>
+<refentry version="5.0" id="body.font.family">
+<refmeta>
+<refentrytitle>body.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>body.font.family</refname>
+<refpurpose>The default font family for body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="body.font.family.frag">
+&lt;xsl:param name="body.font.family"&gt;serif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The body font family is the default font used for text in the page body.</para>
+<para>If more than one font is required, enter the font names,
+separated by a comma, e.g.</para>
+<literallayout>
+  &lt;xsl:param name="body.font.family"&gt;Arial, SimSun, serif&lt;/xsl:param&gt;
+
+</literallayout>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="dingbat.font.family">
+<refmeta>
+<refentrytitle>dingbat.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>dingbat.font.family</refname>
+<refpurpose>The font family for copyright, quotes, and other symbols</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="dingbat.font.family.frag">
+&lt;xsl:param name="dingbat.font.family"&gt;serif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The dingbat font family is used for dingbats. If it is defined
+as the empty string, no font change is effected around dingbats.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="monospace.font.family">
+<refmeta>
+<refentrytitle>monospace.font.family</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>monospace.font.family</refname>
+<refpurpose>The default font family for monospace environments</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="monospace.font.family.frag">
+&lt;xsl:param name="monospace.font.family"&gt;monospace&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The monospace font family is used for verbatim environments
+(program listings, screens, etc.).
+</para>
+<para>If more than one font is required, enter the font names,
+separated by a comma, e.g.</para>
+<literallayout>
+  &lt;xsl:param name="body.font.family"&gt;Arial, SimSun, serif&lt;/xsl:param&gt;
+
+</literallayout>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="sans.font.family">
+<refmeta>
+<refentrytitle>sans.font.family</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sans.font.family</refname>
+<refpurpose>The default sans-serif font family</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="sans.font.family.frag">
+&lt;xsl:param name="sans.font.family"&gt;sans-serif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The default sans-serif font family. At the present, this isn't
+actually used by the stylesheets.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="title.font.family">
+<refmeta>
+<refentrytitle>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>title.font.family</refname>
+<refpurpose>The default font family for titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="title.font.family.frag">
+&lt;xsl:param name="title.font.family"&gt;sans-serif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The title font family is used for titles (chapter, section, figure,
+etc.)
+</para>
+<para>If more than one font is required, enter the font names,
+separated by a comma, e.g.</para>
+<literallayout>
+  &lt;xsl:param name="body.font.family"&gt;Arial, SimSun, serif&lt;/xsl:param&gt;
+
+</literallayout>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="symbol.font.family">
+<refmeta>
+<refentrytitle>symbol.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>symbol.font.family</refname>
+<refpurpose>The font families to be searched for symbols outside
+    of the body font</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="symbol.font.family.frag">
+&lt;xsl:param name="symbol.font.family"&gt;Symbol,ZapfDingbats&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A typical body or title font does not contain all
+the character glyphs that DocBook supports.  This parameter
+specifies additional fonts that should be searched for
+special characters not in the normal font.
+These symbol font names are automatically appended
+to the body or title font family name when fonts
+are specified in a 
+<tag class="attribute">font-family</tag>
+property in the FO output.
+</para>
+<para>The symbol font names should be entered as a
+comma-separated list.  The default value is
+<literal>Symbol,ZapfDingbats</literal>.
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="propsets" xml:base="../fo/param.xml"><title>Property Sets</title>
+<refentry version="5.0" id="formal.object.properties">
+<refmeta>
+<refentrytitle>formal.object.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.object.properties</refname>
+<refpurpose>Properties associated with a formal object such as a figure, or other component that has a title</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="formal.object.properties.frag">
+&lt;xsl:attribute-set name="formal.object.properties"&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-together.within-column"&gt;always&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for formal objects in docbook. Specify the spacing
+before and after the object.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="formal.title.properties">
+<refmeta>
+<refentrytitle>formal.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.title.properties</refname>
+<refpurpose>Style the title element of formal object such as a figure.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="formal.title.properties.frag">
+&lt;xsl:attribute-set name="formal.title.properties" use-attribute-sets="normal.para.spacing"&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.2"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.4em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;0.6em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;0.8em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify how the title should be styled. Specify the font size and weight of the title of the formal object.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="informal.object.properties">
+<refmeta>
+<refentrytitle>informal.object.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informal.object.properties</refname>
+<refpurpose>Properties associated with an informal (untitled) object, such as an informalfigure</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="informal.object.properties.frag">&lt;xsl:attribute-set name="informal.object.properties"&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>The styling for informal objects in docbook. Specify the spacing before and after the object.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="monospace.properties">
+<refmeta>
+<refentrytitle>monospace.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>monospace.properties</refname>
+<refpurpose>Properties of monospaced content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="monospace.properties.frag">
+&lt;xsl:attribute-set name="monospace.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$monospace.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>Specifies the font name for monospaced output. This property set
+used to set the font-size as well, but that doesn't work very well
+when different fonts are used (as they are in titles and paragraphs,
+for example).</para>
+
+<para>If you want to set the font-size in a customization layer, it's
+probably going to be more appropriate to set font-size-adjust, if your
+formatter supports it.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="verbatim.properties">
+<refmeta>
+<refentrytitle>verbatim.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>verbatim.properties</refname>
+<refpurpose>Properties associated with verbatim text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="verbatim.properties.frag">
+&lt;xsl:attribute-set name="verbatim.properties"&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="wrap-option"&gt;no-wrap&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="white-space-collapse"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="white-space-treatment"&gt;preserve&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="linefeed-treatment"&gt;preserve&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>This attribute set is used on all verbatim environments.</para>
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" id="monospace.verbatim.properties">
+<refmeta>
+<refentrytitle>monospace.verbatim.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>monospace.verbatim.properties</refname>
+<refpurpose>What font and size do you want for monospaced content?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="monospace.verbatim.properties.frag">
+&lt;xsl:attribute-set name="monospace.verbatim.properties" use-attribute-sets="verbatim.properties monospace.properties"&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="wrap-option"&gt;no-wrap&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify the font name and size you want for monospaced output</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="sidebar.properties">
+<refmeta>
+<refentrytitle>sidebar.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sidebar.properties</refname>
+<refpurpose>Attribute set for sidebar properties</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="sidebar.properties.frag">
+&lt;xsl:attribute-set name="sidebar.properties" use-attribute-sets="formal.object.properties"&gt;
+  &lt;xsl:attribute name="border-style"&gt;solid&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="border-width"&gt;1pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="border-color"&gt;black&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="background-color"&gt;#DDDDDD&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-start"&gt;12pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-end"&gt;12pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-top"&gt;6pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-bottom"&gt;6pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.start}"&gt;0pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.end}"&gt;0pt&lt;/xsl:attribute&gt;
+&lt;!--
+  &lt;xsl:attribute name="margin-top"&gt;6pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-bottom"&gt;6pt&lt;/xsl:attribute&gt;
+--&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for sidebars.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="sidebar.title.properties">
+<refmeta>
+<refentrytitle>sidebar.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sidebar.title.properties</refname>
+<refpurpose>Attribute set for sidebar titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="sidebar.title.properties.frag">
+&lt;xsl:attribute-set name="sidebar.title.properties"&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for sidebars titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="sidebar.float.type">
+<refmeta>
+<refentrytitle>sidebar.float.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">before</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">left</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">start</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">right</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">end</refmiscinfo>     
+<refmiscinfo class="other" otherclass="value">inside</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outside</refmiscinfo> 
+</refmeta>
+<refnamediv>
+<refname>sidebar.float.type</refname>
+<refpurpose>Select type of float for sidebar elements</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="sidebar.float.type.frag">
+&lt;xsl:param name="sidebar.float.type"&gt;none&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the type of float for sidebar elements.
+</para>
+<itemizedlist>
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>none</literal></quote>, then 
+no float is used.
+</para>
+</listitem>
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>before</literal></quote>, then 
+the float appears at the top of the page.  On some processors,
+that may be the next page rather than the current page.
+</para>
+</listitem>
+
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>left</literal></quote>,
+then a left side float is used.
+</para>
+</listitem>
+
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>start</literal></quote>,
+then when the text direction is left-to-right a left side float is used.
+When the text direction is right-to-left, a right side float is used.
+</para>
+</listitem>
+
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>right</literal></quote>,
+then a right side float is used.
+</para>
+</listitem>
+
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>end</literal></quote>,
+then when the text direction is left-to-right a right side float is used.
+When the text direction is right-to-left, a left side float is used.
+</para>
+</listitem>
+
+<listitem>
+<para>If your XSL-FO processor supports floats positioned on the
+<quote><literal>inside</literal></quote> or
+<quote><literal>outside</literal></quote>
+of double-sided pages, then you have those two 
+options for side floats as well.
+</para>
+</listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="sidebar.float.width">
+<refmeta>
+<refentrytitle>sidebar.float.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sidebar.float.width</refname>
+<refpurpose>Set the default width for sidebars</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="sidebar.float.width.frag">
+&lt;xsl:param name="sidebar.float.width"&gt;1in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the default width for sidebars when used as a side float.
+The width determines the degree to which the sidebar block intrudes into
+the text area.
+</para>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>before</literal></quote> or 
+<quote><literal>none</literal></quote>, then 
+this parameter is ignored.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="margin.note.properties">
+<refmeta>
+<refentrytitle>margin.note.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>margin.note.properties</refname>
+<refpurpose>Attribute set for margin.note properties</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="margin.note.properties.frag">
+&lt;xsl:attribute-set name="margin.note.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;90%&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for margin notes.
+By default, margin notes are not implemented for any
+element. A stylesheet customization is needed to make
+use of this attribute-set.</para>
+
+<para>You can use a template named <quote>floater</quote>
+to create the customization.
+That template can create side floats by specifying the
+content and characteristics as template parameters.
+</para>
+
+<para>For example:</para>
+<programlisting>&lt;xsl:template match="para[@role='marginnote']"&gt;
+  &lt;xsl:call-template name="floater"&gt;
+    &lt;xsl:with-param name="position"&gt;
+      &lt;xsl:value-of select="$margin.note.float.type"/&gt;
+    &lt;/xsl:with-param&gt;
+    &lt;xsl:with-param name="width"&gt;
+      &lt;xsl:value-of select="$margin.note.width"/&gt;
+    &lt;/xsl:with-param&gt;
+    &lt;xsl:with-param name="content"&gt;
+      &lt;xsl:apply-imports/&gt;
+    &lt;/xsl:with-param&gt;
+  &lt;/xsl:call-template&gt;
+&lt;/xsl:template&gt;</programlisting>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="margin.note.title.properties">
+<refmeta>
+<refentrytitle>margin.note.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>margin.note.title.properties</refname>
+<refpurpose>Attribute set for margin note titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="margin.note.title.properties.frag">
+&lt;xsl:attribute-set name="margin.note.title.properties"&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for margin note titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="margin.note.float.type">
+<refmeta>
+<refentrytitle>margin.note.float.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">before</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">left</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">start</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">right</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">end</refmiscinfo>     
+<refmiscinfo class="other" otherclass="value">inside</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outside</refmiscinfo> 
+</refmeta>
+<refnamediv>
+<refname>margin.note.float.type</refname>
+<refpurpose>Select type of float for margin note customizations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="margin.note.float.type.frag">
+&lt;xsl:param name="margin.note.float.type"&gt;none&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the type of float for margin notes.
+DocBook does not define a margin note element, so this
+feature must be implemented as a customization of the stylesheet.
+See <parameter>margin.note.properties</parameter> for
+an example.
+</para>
+<itemizedlist>
+<listitem>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>none</literal></quote>, then 
+no float is used.
+</para>
+</listitem>
+<listitem>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>before</literal></quote>, then 
+the float appears at the top of the page.  On some processors,
+that may be the next page rather than the current page.
+</para>
+</listitem>
+<listitem>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>left</literal></quote> or
+<quote><literal>start</literal></quote>, then 
+a left side float is used.
+</para>
+</listitem>
+<listitem>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>right</literal></quote> or
+<quote><literal>end</literal></quote>, then 
+a right side float is used.
+</para>
+</listitem>
+<listitem>
+<para>If your XSL-FO processor supports floats positioned on the
+<quote><literal>inside</literal></quote> or
+<quote><literal>outside</literal></quote>
+of double-sided pages, then you have those two 
+options for side floats as well.
+</para>
+</listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="margin.note.width">
+<refmeta>
+<refentrytitle>margin.note.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>margin.note.width</refname>
+<refpurpose>Set the default width for margin notes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="margin.note.width.frag">
+&lt;xsl:param name="margin.note.width"&gt;1in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the default width for margin notes when used as a side
+float.  The width determines the degree to which the margin note block
+intrudes into the text area.
+</para>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>before</literal></quote> or 
+<quote><literal>none</literal></quote>, then 
+this parameter is ignored.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="component.title.properties">
+<refmeta>
+<refentrytitle>component.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>component.title.properties</refname>
+<refpurpose>Properties for component titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="component.title.properties.frag">
+&lt;xsl:attribute-set name="component.title.properties"&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;&lt;xsl:value-of select="concat($body.font.master, 'pt')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;&lt;xsl:value-of select="concat($body.font.master, 'pt * 0.8')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;&lt;xsl:value-of select="concat($body.font.master, 'pt * 1.2')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;
+    &lt;xsl:choose&gt;
+      &lt;xsl:when test="((parent::article | parent::articleinfo | parent::info/parent::article) and not(ancestor::book) and not(self::bibliography))         or (parent::slides | parent::slidesinfo)"&gt;center&lt;/xsl:when&gt;
+      &lt;xsl:otherwise&gt;start&lt;/xsl:otherwise&gt;
+    &lt;/xsl:choose&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="start-indent"&gt;&lt;xsl:value-of select="$title.margin.left"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties common to all component titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="component.titlepage.properties">
+<refmeta>
+<refentrytitle>component.titlepage.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>component.titlepage.properties</refname>
+<refpurpose>Properties for component titlepages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="component.titlepage.properties.frag">
+&lt;xsl:attribute-set name="component.titlepage.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that are applied to the outer block containing
+all the component title page information. 
+Its main use is to set a <literal>span="all"</literal>
+property on the block that is a direct child of the flow.</para>
+
+<para>This attribute-set also applies to index titlepages. It is empty by default.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.title.properties">
+<refmeta>
+<refentrytitle>section.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.properties</refname>
+<refpurpose>Properties for section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.title.properties.frag">
+&lt;xsl:attribute-set name="section.title.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$title.fontset"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;!-- font size is calculated dynamically by section.heading template --&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1.0em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="start-indent"&gt;&lt;xsl:value-of select="$title.margin.left"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties common to all section titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.title.level1.properties">
+<refmeta>
+<refentrytitle>section.title.level1.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level1.properties</refname>
+<refpurpose>Properties for level-1 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.title.level1.properties.frag">
+&lt;xsl:attribute-set name="section.title.level1.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 2.0736"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-1 section titles.</para>
+
+</refsection>
+</refentry>
+
+
+<refentry version="5.0" id="section.title.level2.properties">
+<refmeta>
+<refentrytitle>section.title.level2.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level2.properties</refname>
+<refpurpose>Properties for level-2 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.title.level2.properties.frag">
+&lt;xsl:attribute-set name="section.title.level2.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.728"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-2 section titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.title.level3.properties">
+<refmeta>
+<refentrytitle>section.title.level3.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level3.properties</refname>
+<refpurpose>Properties for level-3 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.title.level3.properties.frag">
+&lt;xsl:attribute-set name="section.title.level3.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.44"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-3 section titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.title.level4.properties">
+<refmeta>
+<refentrytitle>section.title.level4.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level4.properties</refname>
+<refpurpose>Properties for level-4 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.title.level4.properties.frag">
+&lt;xsl:attribute-set name="section.title.level4.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.2"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-4 section titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.title.level5.properties">
+<refmeta>
+<refentrytitle>section.title.level5.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level5.properties</refname>
+<refpurpose>Properties for level-5 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.title.level5.properties.frag">
+&lt;xsl:attribute-set name="section.title.level5.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-5 section titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.title.level6.properties">
+<refmeta>
+<refentrytitle>section.title.level6.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level6.properties</refname>
+<refpurpose>Properties for level-6 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.title.level6.properties.frag">
+&lt;xsl:attribute-set name="section.title.level6.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-6 section titles. This property set is actually
+used for all titles below level 5.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.properties">
+<refmeta>
+<refentrytitle>section.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.properties</refname>
+<refpurpose>Properties for all section levels</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.properties.frag">
+&lt;xsl:attribute-set name="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of all section levels, and therefore apply to
+the whole section.  
+This attribute set is inherited by the
+more specific attribute sets such as
+<tag>section.level1.properties</tag>.
+The default is empty.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.level1.properties">
+<refmeta>
+<refentrytitle>section.level1.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level1.properties</refname>
+<refpurpose>Properties for level-1 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.level1.properties.frag">
+&lt;xsl:attribute-set name="section.level1.properties" use-attribute-sets="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-1 section, and therefore apply to
+the whole section.  This includes <tag>sect1</tag>
+elements and <tag>section</tag> elements at level 1.
+</para>
+
+<para>For example, you could start each level-1 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level1.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.level2.properties">
+<refmeta>
+<refentrytitle>section.level2.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level2.properties</refname>
+<refpurpose>Properties for level-2 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.level2.properties.frag">
+&lt;xsl:attribute-set name="section.level2.properties" use-attribute-sets="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-2 section, and therefore apply to
+the whole section.  This includes <tag>sect2</tag>
+elements and <tag>section</tag> elements at level 2.
+</para>
+
+<para>For example, you could start each level-2 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level2.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.level3.properties">
+<refmeta>
+<refentrytitle>section.level3.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level3.properties</refname>
+<refpurpose>Properties for level-3 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.level3.properties.frag">
+&lt;xsl:attribute-set name="section.level3.properties" use-attribute-sets="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-3 section, and therefore apply to
+the whole section.  This includes <tag>sect3</tag>
+elements and <tag>section</tag> elements at level 3.
+</para>
+
+<para>For example, you could start each level-3 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level3.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.level4.properties">
+<refmeta>
+<refentrytitle>section.level4.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level4.properties</refname>
+<refpurpose>Properties for level-4 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.level4.properties.frag">
+&lt;xsl:attribute-set name="section.level4.properties" use-attribute-sets="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-4 section, and therefore apply to
+the whole section.  This includes <tag>sect4</tag>
+elements and <tag>section</tag> elements at level 4.
+</para>
+
+<para>For example, you could start each level-4 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level4.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.level5.properties">
+<refmeta>
+<refentrytitle>section.level5.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level5.properties</refname>
+<refpurpose>Properties for level-5 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.level5.properties.frag">
+&lt;xsl:attribute-set name="section.level5.properties" use-attribute-sets="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-5 section, and therefore apply to
+the whole section.  This includes <tag>sect5</tag>
+elements and <tag>section</tag> elements at level 5.
+</para>
+
+<para>For example, you could start each level-5 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level5.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="section.level6.properties">
+<refmeta>
+<refentrytitle>section.level6.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level6.properties</refname>
+<refpurpose>Properties for level-6 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="section.level6.properties.frag">
+&lt;xsl:attribute-set name="section.level6.properties" use-attribute-sets="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level 6 or lower section, and therefore apply to
+the whole section.  This includes 
+<tag>section</tag> elements at level 6 and lower.
+</para>
+
+<para>For example, you could start each level-6 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level6.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="figure.properties">
+<refmeta>
+<refentrytitle>figure.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>figure.properties</refname>
+<refpurpose>Properties associated with a figure</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="figure.properties.frag">
+&lt;xsl:attribute-set name="figure.properties" use-attribute-sets="formal.object.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for figures.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="example.properties">
+<refmeta>
+<refentrytitle>example.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>example.properties</refname>
+<refpurpose>Properties associated with a example</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="example.properties.frag">
+&lt;xsl:attribute-set name="example.properties" use-attribute-sets="formal.object.properties"&gt;
+    &lt;xsl:attribute name="keep-together.within-column"&gt;auto&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for examples.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="equation.properties">
+<refmeta>
+<refentrytitle>equation.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>equation.properties</refname>
+<refpurpose>Properties associated with a equation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="equation.properties.frag">
+&lt;xsl:attribute-set name="equation.properties" use-attribute-sets="formal.object.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for equations.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="equation.number.properties">
+<refmeta>
+<refentrytitle>equation.number.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>equation.number.properties</refname>
+<refpurpose>Properties that apply to the <tag>fo:table-cell</tag> containing the number
+of an <tag>equation</tag> that does not have a title.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="equation.number.properties.frag">&lt;xsl:attribute-set name="equation.number.properties"&gt;
+  &lt;xsl:attribute name="text-align"&gt;end&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="display-align"&gt;center&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to the fo:table-cell containing the number
+of an equation when it has no title. The number in an equation with a
+title is formatted along with the title, and this attribute-set does not apply.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.properties">
+<refmeta>
+<refentrytitle>table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.properties</refname>
+<refpurpose>Properties associated with the block surrounding a table</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.properties.frag">
+&lt;xsl:attribute-set name="table.properties" use-attribute-sets="formal.object.properties"&gt;
+  &lt;xsl:attribute name="keep-together.within-column"&gt;auto&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Block styling properties for tables. This parameter should really
+have been called <literal>table.block.properties</literal> or something
+like that, but we&#8217;re leaving it to avoid backwards-compatibility
+problems.</para>
+
+<para>See also <parameter>table.table.properties</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="task.properties">
+<refmeta>
+<refentrytitle>task.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>task.properties</refname>
+<refpurpose>Properties associated with a task</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="task.properties.frag">
+&lt;xsl:attribute-set name="task.properties" use-attribute-sets="formal.object.properties"&gt;
+    &lt;xsl:attribute name="keep-together.within-column"&gt;auto&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties to style the entire block containing a task element.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="informalfigure.properties">
+<refmeta>
+<refentrytitle>informalfigure.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informalfigure.properties</refname>
+<refpurpose>Properties associated with an informalfigure</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="informalfigure.properties.frag">
+&lt;xsl:attribute-set name="informalfigure.properties" use-attribute-sets="informal.object.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for informalfigures.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="informalexample.properties">
+<refmeta>
+<refentrytitle>informalexample.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informalexample.properties</refname>
+<refpurpose>Properties associated with an informalexample</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="informalexample.properties.frag">
+&lt;xsl:attribute-set name="informalexample.properties" use-attribute-sets="informal.object.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for informalexamples.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="informalequation.properties">
+<refmeta>
+<refentrytitle>informalequation.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informalequation.properties</refname>
+<refpurpose>Properties associated with an informalequation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="informalequation.properties.frag">
+&lt;xsl:attribute-set name="informalequation.properties" use-attribute-sets="informal.object.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for informalequations.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="informaltable.properties">
+<refmeta>
+<refentrytitle>informaltable.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informaltable.properties</refname>
+<refpurpose>Properties associated with the block surrounding an informaltable</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="informaltable.properties.frag">
+&lt;xsl:attribute-set name="informaltable.properties" use-attribute-sets="informal.object.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Block styling properties for informaltables. This parameter should really
+have been called <literal>informaltable.block.properties</literal> or something
+like that, but we&#8217;re leaving it to avoid backwards-compatibility
+problems.</para>
+
+<para>See also <parameter>table.table.properties</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="procedure.properties">
+<refmeta>
+<refentrytitle>procedure.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>procedure.properties</refname>
+<refpurpose>Properties associated with a procedure</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="procedure.properties.frag">
+&lt;xsl:attribute-set name="procedure.properties" use-attribute-sets="formal.object.properties"&gt;
+  &lt;xsl:attribute name="keep-together.within-column"&gt;auto&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for procedures.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="root.properties">
+<refmeta>
+<refentrytitle>root.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>root.properties</refname>
+<refpurpose>The properties of the fo:root element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="root.properties.frag">
+&lt;xsl:attribute-set name="root.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$body.fontset"&gt;&lt;/xsl:value-of&gt;
+  &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="text-align"&gt;
+    &lt;xsl:value-of select="$alignment"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="line-height"&gt;
+    &lt;xsl:value-of select="$line-height"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-selection-strategy"&gt;character-by-character&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="line-height-shift-adjustment"&gt;disregard-shifts&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="writing-mode"&gt;
+    &lt;xsl:value-of select="$direction.mode"&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 property set is used on the <tag>fo:root</tag> element of
+an FO file. It defines a set of default, global parameters.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.title.properties">
+<refmeta>
+<refentrytitle>qanda.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.properties</refname>
+<refpurpose>Properties for qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.title.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$title.fontset"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;!-- font size is calculated dynamically by qanda.heading template --&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1.0em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties common to all qanda set titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.title.level1.properties">
+<refmeta>
+<refentrytitle>qanda.title.level1.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level1.properties</refname>
+<refpurpose>Properties for level-1 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.title.level1.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.level1.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 2.0736"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-1 qanda set titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.title.level2.properties">
+<refmeta>
+<refentrytitle>qanda.title.level2.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level2.properties</refname>
+<refpurpose>Properties for level-2 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.title.level2.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.level2.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.728"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-2 qanda set titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.title.level3.properties">
+<refmeta>
+<refentrytitle>qanda.title.level3.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level3.properties</refname>
+<refpurpose>Properties for level-3 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.title.level3.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.level3.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.44"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-3 qanda set titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.title.level4.properties">
+<refmeta>
+<refentrytitle>qanda.title.level4.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level4.properties</refname>
+<refpurpose>Properties for level-4 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.title.level4.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.level4.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.2"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-4 qanda set titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.title.level5.properties">
+<refmeta>
+<refentrytitle>qanda.title.level5.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level5.properties</refname>
+<refpurpose>Properties for level-5 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.title.level5.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.level5.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-5 qanda set titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="qanda.title.level6.properties">
+<refmeta>
+<refentrytitle>qanda.title.level6.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level6.properties</refname>
+<refpurpose>Properties for level-6 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="qanda.title.level6.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.level6.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-6 qanda set titles.
+This property set is actually
+used for all titles below level 5.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="article.appendix.title.properties">
+<refmeta>
+<refentrytitle>article.appendix.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>article.appendix.title.properties</refname>
+<refpurpose>Properties for appendix titles that appear in an article</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="article.appendix.title.properties.frag">
+&lt;xsl:attribute-set name="article.appendix.title.properties" use-attribute-sets="section.title.properties                          section.title.level1.properties"&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.start}"&gt;
+    &lt;xsl:value-of select="$title.margin.left"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties for the title of an appendix that
+appears inside an article.  The default is to use
+the properties of sect1 titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="abstract.properties">
+<refmeta>
+<refentrytitle>abstract.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>abstract.properties</refname>
+<refpurpose>Properties associated with the block surrounding an abstract</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="abstract.properties.frag">
+&lt;xsl:attribute-set name="abstract.properties"&gt;
+  &lt;xsl:attribute name="start-indent"&gt;0.0in&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="end-indent"&gt;0.0in&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Block styling properties for abstract.</para>
+
+<para>See also <parameter>abstract.title.properties</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="abstract.title.properties">
+<refmeta>
+<refentrytitle>abstract.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>abstract.title.properties</refname>
+<refpurpose>Properties for abstract titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="abstract.title.properties.frag">
+&lt;xsl:attribute-set name="abstract.title.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;&lt;xsl:value-of select="$title.fontset"&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 name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;&lt;xsl:value-of select="concat($body.font.master, 'pt')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;&lt;xsl:value-of select="concat($body.font.master, 'pt * 0.8')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;&lt;xsl:value-of select="concat($body.font.master, 'pt * 1.2')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;center&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties for abstract titles.</para>
+
+<para>See also <parameter>abstract.properties</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="index.page.number.properties">
+<refmeta>
+<refentrytitle>index.page.number.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.page.number.properties</refname>
+<refpurpose>Properties associated with index page numbers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="index.page.number.properties.frag">
+&lt;xsl:attribute-set name="index.page.number.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties associated with page numbers in indexes. 
+Changing color to indicate the page number is a link is
+one possibility.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="revhistory.table.properties">
+<refmeta>
+<refentrytitle>revhistory.table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>revhistory.table.properties</refname>
+<refpurpose>The properties of table used for formatting revhistory</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="revhistory.table.properties.frag">
+&lt;xsl:attribute-set name="revhistory.table.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This property set defines appearance of revhistory table.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="revhistory.table.cell.properties">
+<refmeta>
+<refentrytitle>revhistory.table.cell.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>revhistory.table.cell.properties</refname>
+<refpurpose>The properties of table cells used for formatting revhistory</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="revhistory.table.cell.properties.frag">
+&lt;xsl:attribute-set name="revhistory.table.cell.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This property set defines appearance of individual cells in revhistory table.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="revhistory.title.properties">
+<refmeta>
+<refentrytitle>revhistory.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>revhistory.title.properties</refname>
+<refpurpose>The properties of revhistory title</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="revhistory.title.properties.frag">
+&lt;xsl:attribute-set name="revhistory.title.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This property set defines appearance of revhistory title.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="profiling" xml:base="../fo/param.xml"><title>Profiling</title>
+<partintro id="profiling_partintro">
+<para>The following parameters can be used for attribute-based
+profiling of your document. For more information about profiling, see 
+<link role="tcg" xlink:href="Profiling.html">Profiling (conditional text)</link>.</para>
+</partintro>
+<refentry version="5.0" id="profile.arch">
+<refmeta>
+<refentrytitle>profile.arch</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.arch</refname>
+<refpurpose>Target profile for <tag class="attribute">arch</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.arch.frag">
+&lt;xsl:param name="profile.arch"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.audience">
+<refmeta>
+<refentrytitle>profile.audience</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.audience</refname>
+<refpurpose>Target profile for <tag class="attribute">audience</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.audience.frag">
+&lt;xsl:param name="profile.audience"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.condition">
+<refmeta>
+<refentrytitle>profile.condition</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.condition</refname>
+<refpurpose>Target profile for <tag class="attribute">condition</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.condition.frag">
+&lt;xsl:param name="profile.condition"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.conformance">
+<refmeta>
+<refentrytitle>profile.conformance</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.conformance</refname>
+<refpurpose>Target profile for <tag class="attribute">conformance</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.conformance.frag">
+&lt;xsl:param name="profile.conformance"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.lang">
+<refmeta>
+<refentrytitle>profile.lang</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.lang</refname>
+<refpurpose>Target profile for <tag class="attribute">lang</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.lang.frag">
+&lt;xsl:param name="profile.lang"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.os">
+<refmeta>
+<refentrytitle>profile.os</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.os</refname>
+<refpurpose>Target profile for <tag class="attribute">os</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.os.frag">
+&lt;xsl:param name="profile.os"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.revision">
+<refmeta>
+<refentrytitle>profile.revision</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.revision</refname>
+<refpurpose>Target profile for <tag class="attribute">revision</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.revision.frag">
+&lt;xsl:param name="profile.revision"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.revisionflag">
+<refmeta>
+<refentrytitle>profile.revisionflag</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.revisionflag</refname>
+<refpurpose>Target profile for <tag class="attribute">revisionflag</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.revisionflag.frag">
+&lt;xsl:param name="profile.revisionflag"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.role">
+<refmeta>
+<refentrytitle>profile.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.role</refname>
+<refpurpose>Target profile for <tag class="attribute">role</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.role.frag">
+&lt;xsl:param name="profile.role"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+<warning>
+<para>Note that <tag class="attribute">role</tag> is often
+used for other purposes than profiling. For example it is commonly
+used to get emphasize in bold font:</para>
+
+<programlisting>&lt;emphasis role="bold"&gt;very important&lt;/emphasis&gt;</programlisting>
+
+<para>If you are using <tag class="attribute">role</tag> for
+these purposes do not forget to add values like <literal>bold</literal> to
+value of this parameter. If you forgot you will get document with
+small pieces missing which are very hard to track.</para>
+
+<para>For this reason it is not recommended to use <tag class="attribute">role</tag> attribute for profiling. You should
+rather use profiling specific attributes like <tag class="attribute">userlevel</tag>, <tag class="attribute">os</tag>, <tag class="attribute">arch</tag>, <tag class="attribute">condition</tag>, etc.</para>
+</warning>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.security">
+<refmeta>
+<refentrytitle>profile.security</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.security</refname>
+<refpurpose>Target profile for <tag class="attribute">security</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.security.frag">
+&lt;xsl:param name="profile.security"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.status">
+<refmeta>
+<refentrytitle>profile.status</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.status</refname>
+<refpurpose>Target profile for <tag class="attribute">status</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.status.frag">
+&lt;xsl:param name="profile.status"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.userlevel">
+<refmeta>
+<refentrytitle>profile.userlevel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.userlevel</refname>
+<refpurpose>Target profile for <tag class="attribute">userlevel</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.userlevel.frag">
+&lt;xsl:param name="profile.userlevel"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.vendor">
+<refmeta>
+<refentrytitle>profile.vendor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.vendor</refname>
+<refpurpose>Target profile for <tag class="attribute">vendor</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.vendor.frag">
+&lt;xsl:param name="profile.vendor"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.wordsize">
+<refmeta>
+<refentrytitle>profile.wordsize</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.wordsize</refname>
+<refpurpose>Target profile for <tag class="attribute">wordsize</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.wordsize.frag">
+&lt;xsl:param name="profile.wordsize"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.attribute">
+<refmeta>
+<refentrytitle>profile.attribute</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.attribute</refname>
+<refpurpose>Name of user-specified profiling attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.attribute.frag">
+&lt;xsl:param name="profile.attribute"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter is used in conjuction with
+<parameter>profile.value</parameter>.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.value">
+<refmeta>
+<refentrytitle>profile.value</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.value</refname>
+<refpurpose>Target profile for user-specified attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.value.frag">
+&lt;xsl:param name="profile.value"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When you are using this parameter you must also specify name of
+profiling attribute with parameter
+<parameter>profile.attribute</parameter>.</para>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="profile.separator">
+<refmeta>
+<refentrytitle>profile.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.separator</refname>
+<refpurpose>Separator character for compound profile values</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="profile.separator.frag">
+&lt;xsl:param name="profile.separator"&gt;;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator character used for compound profile values. See <parameter>profile.arch</parameter></para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="l10n" xml:base="../fo/param.xml"><title>Localization</title>
+<refentry version="5.0" id="l10n.gentext.language">
+<refmeta>
+<refentrytitle>l10n.gentext.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.gentext.language</refname>
+<refpurpose>Sets the gentext language</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="l10n.gentext.language.frag">
+&lt;xsl:param name="l10n.gentext.language"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If this parameter is set to any value other than the empty string, its
+value will be used as the value for the language when generating text. Setting
+<parameter>l10n.gentext.language</parameter> overrides any settings within the
+document being formatted.</para>
+
+<para>It's much more likely that you might want to set the
+<parameter>l10n.gentext.default.language</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="l10n.gentext.default.language">
+  <refmeta>
+    <refentrytitle>l10n.gentext.default.language</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>l10n.gentext.default.language</refname>
+    <refpurpose>Sets the default language for generated text</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+<programlisting id="l10n.gentext.default.language.frag">
+&lt;xsl:param name="l10n.gentext.default.language"&gt;en&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of the <parameter>l10n.gentext.default.language</parameter>
+parameter is used as the language for generated text if no setting is provided
+in the source document.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="l10n.gentext.use.xref.language">
+<refmeta>
+<refentrytitle>l10n.gentext.use.xref.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.gentext.use.xref.language</refname>
+<refpurpose>Use the language of target when generating cross-reference text?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="l10n.gentext.use.xref.language.frag">
+&lt;xsl:param name="l10n.gentext.use.xref.language" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the language of the target will be used when
+generating cross reference text. Usually, the <quote>current</quote>
+language is used when generating text (that is, the language of the
+element that contains the cross-reference element). But setting this parameter
+allows the language of the element <emphasis>pointed to</emphasis> to control
+the generated text.</para>
+
+<para>Consider the following example:</para>
+
+<informalexample>
+<programlisting>&lt;para lang="en"&gt;See also &lt;xref linkend="chap3"/&gt;.&lt;/para&gt;
+</programlisting>
+</informalexample>
+
+<para>Suppose that Chapter 3 happens to be written in German.
+If <parameter>l10n.gentext.use.xref.language</parameter> is non-zero, the
+resulting text will be something like this:</para>
+
+<blockquote>
+<para>See also Kapital 3.</para>
+</blockquote>
+
+<para>Where the more traditional rendering would be:</para>
+
+<blockquote>
+<para>See also Chapter 3.</para>
+</blockquote>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="l10n.lang.value.rfc.compliant">
+<refmeta>
+<refentrytitle>l10n.lang.value.rfc.compliant</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.lang.value.rfc.compliant</refname>
+<refpurpose>Make value of lang attribute RFC compliant?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="l10n.lang.value.rfc.compliant.frag">
+&lt;xsl:param name="l10n.lang.value.rfc.compliant" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, ensure that the values for all <tag class="attribute">lang</tag> attributes in HTML output are RFC
+compliant<footnote><para>Section 8.1.1, <link xlink:href="http://www.w3.org/TR/REC-html40/struct/dirlang.html#h-8.1.1">Language Codes</link>, in the HTML 4.0 Recommendation states that:
+
+<blockquote><para>[RFC1766] defines and explains the language codes
+that must be used in HTML documents.</para>
+<para>Briefly, language codes consist of a primary code and a possibly
+empty series of subcodes:
+
+<literallayout class="monospaced">language-code = primary-code ( "-" subcode )*</literallayout>
+</para>
+<para>And in RFC 1766, <link xlink:href="http://www.ietf.org/rfc/rfc1766.txt">Tags for the Identification
+of Languages</link>, the EBNF for "language tag" is given as:
+
+<literallayout class="monospaced">Language-Tag = Primary-tag *( "-" Subtag )
+Primary-tag = 1*8ALPHA
+Subtag = 1*8ALPHA</literallayout>
+</para>
+</blockquote>
+</para></footnote>.
+
+by taking any underscore characters in any <tag class="attribute">lang</tag> values found in source documents, and
+replacing them with hyphen characters in output HTML files. For
+example, <literal>zh_CN</literal> in a source document becomes
+<literal>zh-CN</literal> in the HTML output form that source.
+
+<note>
+<para>This parameter does not cause any case change in <tag class="attribute">lang</tag> values, because RFC 1766
+explicitly states that all "language tags" (as it calls them) "are
+to be treated as case insensitive".</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="writing.mode">
+<refmeta>
+<refentrytitle>writing.mode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>writing.mode</refname>
+<refpurpose>Direction of text flow based on locale</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="writing.mode.frag">
+&lt;xsl:param name="writing.mode"&gt;
+  &lt;xsl:call-template name="gentext"&gt;
+    &lt;xsl:with-param name="key"&gt;writing-mode&lt;/xsl:with-param&gt;
+    &lt;xsl:with-param name="lang"&gt;
+      &lt;xsl:call-template name="l10n.language"&gt;
+        &lt;xsl:with-param name="target" select="/*[1]"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:with-param&gt;
+  &lt;/xsl:call-template&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets direction of text flow and text alignment based on locale.
+The value is normally taken from the gentext file for the 
+lang attribute of the document's root element, using the 
+key name 'writing-mode' to look it up in the gentext file.
+But the param can also be
+set on the command line to override that gentext value.
+</para>
+<para>Accepted values are:
+<variablelist>
+  <varlistentry>
+    <term>lr-tb</term>
+    <listitem>
+      <para>Left-to-right text flow in each line, lines stack top to bottom.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>rl-tb</term>
+    <listitem>
+      <para>Right-to-left text flow in each line, lines stack top to bottom.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>tb-rl</term>
+    <listitem>
+      <para>Top-to-bottom text flow in each vertical line, lines stack right to left.
+      Supported by only a few XSL-FO processors. Not supported in HTML output.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>lr</term>
+    <listitem>
+      <para>Shorthand for lr-tb.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>rl</term>
+    <listitem>
+      <para>Shorthand for rl-tb.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>tb</term>
+    <listitem>
+      <para>Shorthand for tb-rl.</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="ebnf" xml:base="../fo/param.xml"><title>EBNF</title>
+<refentry version="5.0" id="ebnf.assignment">
+<refmeta>
+<refentrytitle>ebnf.assignment</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.assignment</refname>
+<refpurpose>The EBNF production assignment operator</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="ebnf.assignment.frag">
+
+&lt;xsl:param name="ebnf.assignment"&gt;
+  &lt;fo:inline font-family="{$monospace.font.family}"&gt;
+    &lt;xsl:text&gt;::=&lt;/xsl:text&gt;
+  &lt;/fo:inline&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>ebnf.assignment</parameter> parameter determines what
+text is used to show <quote>assignment</quote> in <tag>production</tag>s
+in <tag>productionset</tag>s.</para>
+
+<para>While <quote><literal>::=</literal></quote> is common, so are several
+other operators.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="ebnf.statement.terminator">
+<refmeta>
+<refentrytitle>ebnf.statement.terminator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.statement.terminator</refname>
+<refpurpose>Punctuation that ends an EBNF statement.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="ebnf.statement.terminator.frag">
+
+&lt;xsl:param name="ebnf.statement.terminator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>ebnf.statement.terminator</parameter> parameter determines what
+text is used to terminate each <tag>production</tag>
+in <tag>productionset</tag>.</para>
+
+<para>Some notations end each statement with a period.</para>
+
+</refsection>
+</refentry>
+
+</reference><reference id="prepress" xml:base="../fo/param.xml"><title>Prepress</title>
+<refentry version="5.0" id="crop.marks">
+<refmeta>
+<refentrytitle>crop.marks</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>crop.marks</refname>
+<refpurpose>Output crop marks?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="crop.marks.frag">
+&lt;xsl:param name="crop.marks" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, crop marks will be added to each page. Currently this
+works only with XEP if you have <parameter>xep.extensions</parameter> set.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="crop.mark.width">
+<refmeta>
+<refentrytitle>crop.mark.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>crop.mark.width</refname>
+<refpurpose>Width of crop marks.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="crop.mark.width.frag">
+&lt;xsl:param name="crop.mark.width"&gt;0.5pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Width of crop marks. Crop marks are controlled by
+<parameter>crop.marks</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="crop.mark.offset">
+<refmeta>
+<refentrytitle>crop.mark.offset</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>crop.mark.offset</refname>
+<refpurpose>Length of crop marks.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="crop.mark.offset.frag">
+&lt;xsl:param name="crop.mark.offset"&gt;24pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Length of crop marks. Crop marks are controlled by
+<parameter>crop.marks</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="crop.mark.bleed">
+<refmeta>
+<refentrytitle>crop.mark.bleed</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>crop.mark.bleed</refname>
+<refpurpose>Length of invisible part of crop marks.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="crop.mark.bleed.frag">
+&lt;xsl:param name="crop.mark.bleed"&gt;6pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Length of invisible part of crop marks. Crop marks are controlled by
+<parameter>crop.marks</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+    </part>
+    <part id="manpages">
+      <?dbhtml dir="manpages"?>
+      <?dbhtml filename="index.html"?>
+      <title xml:base="../manpages/param.xml">Manpages Parameter Reference</title>
+      <partintro id="manintro">
+        
+      <para xml:base="../manpages/param.xml">This is reference documentation for all user-configurable
+      parameters in the DocBook XSL "manpages" stylesheet (for
+      generating groff/nroff output). Note that the manpages
+      stylesheet is a customization layer of the DocBook XSL HTML
+      stylesheet. Therefore, you can also use a number of <link xlink:href="../html/">HTML stylesheet parameters</link>
+      to control manpages output (in addition to the
+      manpages-specific parameters listed in this section).</para>
+    
+      </partintro>
+      <reference id="general" xml:base="../manpages/param.xml">
+  <title>Hyphenation, justification, and breaking</title>
+<refentry version="5.0" id="man.hyphenate">
+<refmeta>
+<refentrytitle>man.hyphenate</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.hyphenate</refname>
+<refpurpose>Enable hyphenation?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.hyphenate.frag">
+&lt;xsl:param name="man.hyphenate"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, hyphenation is enabled.</para>
+
+<note>
+<para>The default value for this parameter is zero because groff is
+not particularly smart about how it does hyphenation; it can end up
+hyphenating a lot of things that you don't want hyphenated. To
+mitigate that, the default behavior of the stylesheets is to suppress
+hyphenation of computer inlines, filenames, and URLs. (You can
+override the default behavior by setting non-zero values for the
+<parameter>man.hyphenate.urls</parameter>,
+<parameter>man.hyphenate.filenames</parameter>, and
+<parameter>man.hyphenate.computer.inlines</parameter> parameters.) But
+the best way is still to just globally disable hyphenation, as the
+stylesheets do by default.</para>
+
+<para>The only good reason to enabled hyphenation is if you have also
+enabled justification (which is disabled by default). The reason is
+that justified text can look very bad unless you also hyphenate it; to
+quote the <quote>Hypenation</quote> node from the groff info page:
+
+<blockquote>
+  <para><emphasis>Since the odds are not great for finding a set of
+  words, for every output line, which fit nicely on a line without
+  inserting excessive amounts of space between words, 'gtroff'
+  hyphenates words so that it can justify lines without inserting too
+  much space between words.</emphasis></para>
+</blockquote>
+
+So, if you set a non-zero value for the
+<parameter>man.justify</parameter> parameter (to enable
+justification), then you should probably also set a non-zero value for
+<parameter>man.hyphenate</parameter> (to enable hyphenation).</para>
+</note>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.hyphenate.urls">
+<refmeta>
+<refentrytitle>man.hyphenate.urls</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.hyphenate.urls</refname>
+<refpurpose>Hyphenate URLs?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.hyphenate.urls.frag">
+&lt;xsl:param name="man.hyphenate.urls"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), hyphenation is suppressed for output of
+the <tag>ulink</tag> <tag class="attribute">url</tag> attribute.</para>
+
+<note>
+  <para>If hyphenation is already turned off globally (that is, if
+  <parameter>man.hyphenate</parameter> is zero, setting
+  <parameter>man.hyphenate.urls</parameter> is not necessary.</para>
+</note>
+
+<para>If <parameter>man.hyphenate.urls</parameter> is non-zero, URLs
+will not be treated specially and are subject to hyphenation just like
+other words.</para>
+
+<note>
+  <para>If you are thinking about setting a non-zero value for
+  <parameter>man.hyphenate.urls</parameter> in order to make long
+  URLs break across lines, you'd probably be better off
+  experimenting with setting the
+  <parameter>man.break.after.slash</parameter> parameter first. That
+  will cause long URLs to be broken after slashes.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.hyphenate.filenames">
+<refmeta>
+<refentrytitle>man.hyphenate.filenames</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.hyphenate.filenames</refname>
+<refpurpose>Hyphenate filenames?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.hyphenate.filenames.frag">
+&lt;xsl:param name="man.hyphenate.filenames"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), hyphenation is suppressed for
+<tag>filename</tag> output.</para>
+
+<note>
+  <para>If hyphenation is already turned off globally (that is, if
+  <parameter>man.hyphenate</parameter> is zero, setting
+  <parameter>man.hyphenate.filenames</parameter> is not
+  necessary.</para>
+</note>
+
+<para>If <parameter>man.hyphenate.filenames</parameter> is non-zero,
+filenames will not be treated specially and are subject to hyphenation
+just like other words.</para>
+
+<note>
+  <para>If you are thinking about setting a non-zero value for
+  <parameter>man.hyphenate.filenames</parameter> in order to make long
+  filenames/pathnames break across lines, you'd probably be better off
+  experimenting with setting the
+  <parameter>man.break.after.slash</parameter> parameter first. That
+  will cause long pathnames to be broken after slashes.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.hyphenate.computer.inlines">
+<refmeta>
+<refentrytitle>man.hyphenate.computer.inlines</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.hyphenate.computer.inlines</refname>
+<refpurpose>Hyphenate computer inlines?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.hyphenate.computer.inlines.frag">
+&lt;xsl:param name="man.hyphenate.computer.inlines"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), hyphenation is suppressed for
+<quote>computer inlines</quote> such as environment variables,
+constants, etc. This parameter current affects output of the following
+elements:
+<simplelist type="inline">
+  
+  <member><tag>classname</tag></member>
+  <member><tag>constant</tag></member>
+  <member><tag>envar</tag></member>
+  <member><tag>errorcode</tag></member>
+  <member><tag>option</tag></member>
+  <member><tag>replaceable</tag></member>
+  <member><tag>userinput</tag></member>
+  <member><tag>type</tag></member>
+  <member><tag>varname</tag></member>
+</simplelist>
+</para>
+
+<note>
+  <para>If hyphenation is already turned off globally (that is, if
+  <parameter>man.hyphenate</parameter> is zero, setting the
+  <parameter>man.hyphenate.computer.inlines</parameter> is not
+  necessary.</para>
+</note>
+
+<para>If <parameter>man.hyphenate.computer.inlines</parameter> is
+non-zero, computer inlines will not be treated specially and will be
+hyphenated like other words when needed.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.justify">
+<refmeta>
+<refentrytitle>man.justify</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.justify</refname>
+<refpurpose>Justify text to both right and left margins?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.justify.frag">
+&lt;xsl:param name="man.justify"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, text is justified to both the right and left
+margins (or, in roff terminology, "adjusted and filled" to both the
+right and left margins). If zero (the default), text is adjusted to
+the left margin only -- producing what is traditionally called
+"ragged-right" text.</para>
+
+<note>
+<para>The default value for this parameter is zero because justified
+text looks good only when it is also hyphenated. Without hyphenation,
+excessive amounts of space often end up getting between words, in
+order to "pad" lines out to align on the right margin.</para>
+
+<para>The problem is that groff is not particularly smart about how it
+does hyphenation; it can end up hyphenating a lot of things that you
+don't want hyphenated. So, disabling both justification and
+hyphenation ensures that hyphens won't get inserted where you don't
+want to them, and you don't end up with lines containing excessive
+amounts of space between words.</para>
+
+<para>However, if do you decide to set a non-zero value for the
+<parameter>man.justify</parameter> parameter (to enable
+justification), then you should probably also set a non-zero value for
+<parameter>man.hyphenate</parameter> (to enable hyphenation).</para>
+
+<para>Yes, these default settings run counter to how most existing man
+pages are formatted. But there are some notable exceptions, such as
+the <literal>perl</literal> man pages.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.break.after.slash">
+<refmeta>
+<refentrytitle>man.break.after.slash</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.break.after.slash</refname>
+<refpurpose>Enable line-breaking after slashes?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.break.after.slash.frag">
+&lt;xsl:param name="man.break.after.slash"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, line-breaking after slashes is enabled. This is
+mainly useful for causing long URLs or pathnames/filenames to be
+broken up or "wrapped" across lines (though it also has the side
+effect of sometimes causing relatively short URLs and pathnames to be
+broken up across lines too).</para>
+
+<para>If zero (the default), line-breaking after slashes is
+disabled. In that case, strings containing slashes (for example, URLs
+or filenames) are not broken across lines, even if they exceed the
+maximum column widith.</para>
+
+<warning>
+  <para>If you set a non-zero value for this parameter, check your
+  man-page output carefuly afterwards, in order to make sure that the
+  setting has not introduced an excessive amount of breaking-up of URLs
+  or pathnames. If your content contains mostly short URLs or
+  pathnames, setting a non-zero value for
+  <parameter>man.break.after.slash</parameter> will probably result in
+  in a significant number of relatively short URLs and pathnames being
+  broken across lines, which is probably not what you want.</para>
+</warning>
+
+</refsection>
+</refentry>
+
+  </reference><reference id="indent" xml:base="../manpages/param.xml">
+  <title>Indentation</title>
+<refentry version="5.0" id="man.indent.width">
+<refmeta>
+<refentrytitle>man.indent.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.width</refname>
+<refpurpose>Specifies width used for adjusted indents</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.indent.width.frag">
+&lt;xsl:param name="man.indent.width"&gt;4&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The <parameter>man.indent.width</parameter> parameter specifies
+the width used for adjusted indents. The value of
+<parameter>man.indent.width</parameter> is used for indenting of
+lists, verbatims, headings, and elsewhere, depending on whether the
+values of certain <literal>man.indent.*</literal> boolean parameters
+are non-zero.</para>
+
+<para>The value of <parameter>man.indent.width</parameter> should
+include a valid roff measurement unit (for example,
+<literal>n</literal> or <literal>u</literal>). The default value of
+<literal>4n</literal> specifies a 4-en width; when viewed on a
+console, that amounts to the width of four characters. For details
+about roff measurment units, see the <literal>Measurements</literal>
+node in the groff info page.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.indent.refsect">
+<refmeta>
+<refentrytitle>man.indent.refsect</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.refsect</refname>
+<refpurpose>Adjust indentation of refsect* and refsection?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.indent.refsect.frag">
+&lt;xsl:param name="man.indent.refsect" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.indent.refsect</parameter> is
+non-zero, the width of the left margin for
+<tag>refsect1</tag>, <tag>refsect2</tag> and
+<tag>refsect3</tag> contents and titles (and first-level,
+second-level, and third-level nested
+<tag>refsection</tag>instances) is adjusted by the value of
+the <parameter>man.indent.width</parameter> parameter. With
+<parameter>man.indent.width</parameter> set to its default value of
+<literal>3n</literal>, the main results are that:
+
+<itemizedlist>
+  <listitem>
+    <para>contents of <tag>refsect1</tag> are output with a
+    left margin of three characters instead the roff default of seven
+    or eight characters</para>
+  </listitem>
+  <listitem>
+    <para>contents of <tag>refsect2</tag> are displayed in
+    console output with a left margin of six characters instead the of
+    the roff default of seven characters</para>
+  </listitem>
+  <listitem>
+    <para> the contents of <tag>refsect3</tag> and nested
+    <tag>refsection</tag> instances are adjusted
+    accordingly.</para>
+  </listitem>
+</itemizedlist>
+
+If instead the value of <parameter>man.indent.refsect</parameter> is
+zero, no margin adjustment is done for <literal>refsect*</literal>
+output.</para>
+
+<tip>
+  <para>If your content is primarly comprised of
+  <tag>refsect1</tag> and <tag>refsect2</tag> content
+  (or the <tag>refsection</tag> equivalent)&#160;&#8211; with few or
+  no <tag>refsect3</tag> or lower nested sections , you may be
+  able to &#8220;conserve&#8221; space in your output by setting
+  <parameter>man.indent.refsect</parameter> to a non-zero value. Doing
+  so will &#8220;squeeze&#8221; the left margin in such as way as to provide an
+  additional four characters of &#8220;room&#8221; per line in
+  <tag>refsect1</tag> output. That extra room may be useful
+  if, for example, you have many verbatim sections with long lines in
+  them.</para>
+</tip>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.indent.blurbs">
+<refmeta>
+<refentrytitle>man.indent.blurbs</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.blurbs</refname>
+<refpurpose>Adjust indentation of blurbs?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.indent.blurbs.frag">
+&lt;xsl:param name="man.indent.blurbs" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.indent.blurbs</parameter> is
+non-zero, the width of the left margin for
+<tag>authorblurb</tag>, <tag>personblurb</tag>, and
+<tag>contrib</tag> output is set to the value of the
+<parameter>man.indent.width</parameter> parameter
+(<literal>3n</literal> by default). If instead the value of
+<parameter>man.indent.blurbs</parameter> is zero, the built-in roff
+default width (<literal>7.2n</literal>) is used.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.indent.lists">
+<refmeta>
+<refentrytitle>man.indent.lists</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.lists</refname>
+<refpurpose>Adjust indentation of lists?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.indent.lists.frag">
+&lt;xsl:param name="man.indent.lists" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.indent.lists</parameter> is
+non-zero, the width of the left margin for list items in
+<tag>itemizedlist</tag>,
+<tag>orderedlist</tag>,
+<tag>variablelist</tag> output (and output of some other
+lists) is set to the value of the
+<parameter>man.indent.width</parameter> parameter
+(<literal>4n</literal> by default). If instead the value of
+<parameter>man.indent.lists</parameter> is zero, the built-in roff
+default width (<literal>7.2n</literal>) is used.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.indent.verbatims">
+<refmeta>
+<refentrytitle>man.indent.verbatims</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.verbatims</refname>
+<refpurpose>Adjust indentation of verbatims?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.indent.verbatims.frag">
+&lt;xsl:param name="man.indent.verbatims" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.indent.verbatims</parameter> is
+non-zero, the width of the left margin for output of verbatim
+environments (<tag>programlisting</tag>,
+<tag>screen</tag>, and so on) is set to the value of the
+<parameter>man.indent.width</parameter> parameter
+(<literal>3n</literal> by default). If instead the value of
+<parameter>man.indent.verbatims</parameter> is zero, the built-in roff
+default width (<literal>7.2n</literal>) is used.</para>
+
+</refsection>
+</refentry>
+
+  </reference><reference id="fonts" xml:base="../manpages/param.xml">
+  <title>Fonts</title>
+<refentry version="5.0" id="man.font.funcprototype">
+<refmeta>
+<refentrytitle>man.font.funcprototype</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.funcprototype</refname>
+<refpurpose>Specifies font for funcprototype output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.font.funcprototype.frag">
+  &lt;xsl:param name="man.font.funcprototype"&gt;BI&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.funcprototype</parameter> parameter
+specifies the font for <tag>funcprototype</tag> output. It
+should be a valid roff font name, such as <literal>BI</literal> or
+<literal>B</literal>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.font.funcsynopsisinfo">
+<refmeta>
+<refentrytitle>man.font.funcsynopsisinfo</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.funcsynopsisinfo</refname>
+<refpurpose>Specifies font for funcsynopsisinfo output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.font.funcsynopsisinfo.frag">
+  &lt;xsl:param name="man.font.funcsynopsisinfo"&gt;B&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.funcsynopsisinfo</parameter> parameter
+specifies the font for <tag>funcsynopsisinfo</tag> output. It
+should be a valid roff font name, such as <literal>B</literal> or
+<literal>I</literal>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.font.links">
+<refmeta>
+<refentrytitle>man.font.links</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.links</refname>
+<refpurpose>Specifies font for links</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.font.links.frag">
+&lt;xsl:param name="man.font.links"&gt;B&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.links</parameter> parameter
+specifies the font for output of links (<tag>ulink</tag> instances
+and any instances of any element with an <tag class="attribute">xlink:href</tag> attribute).</para>
+
+<para>The value of <parameter>man.font.links</parameter> must be
+  either <literal>B</literal> or <literal>I</literal>, or empty. If
+the value is empty, no font formatting is applied to links.</para>
+
+<para>If you set <parameter>man.endnotes.are.numbered</parameter> and/or
+<parameter>man.endnotes.list.enabled</parameter> to zero (disabled), then
+you should probably also set an empty value for
+<parameter>man.font.links</parameter>. But if
+<parameter>man.endnotes.are.numbered</parameter> is non-zero (enabled),
+you should probably keep
+<parameter>man.font.links</parameter> set to
+<literal>B</literal> or <literal>I</literal><footnote><para>The
+    main purpose of applying a font format to links in most output
+formats it to indicate that the formatted text is
+&#8220;clickable&#8221;; given that links rendered in man pages are
+not &#8220;real&#8221; hyperlinks that users can click on, it might
+seem like there is never a good reason to have font formatting for
+link contents in man output.</para>
+<para>In fact, if you suppress the
+display of inline link references (by setting
+<parameter>man.endnotes.are.numbered</parameter> to zero), there is no
+good reason to apply font formatting to links. However, if
+<parameter>man.endnotes.are.numbered</parameter> is non-zero, having
+font formatting for links (arguably) serves a purpose: It provides
+&#8220;context&#8221; information about exactly what part of the text
+is being &#8220;annotated&#8221; by the link. Depending on how you
+mark up your content, that context information may or may not
+have value.</para></footnote>.</para>
+</refsection>
+
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>man.endnotes.list.enabled</parameter>,
+    <parameter>man.endnotes.are.numbered</parameter></para>
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" id="man.font.table.headings">
+<refmeta>
+<refentrytitle>man.font.table.headings</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.table.headings</refname>
+<refpurpose>Specifies font for table headings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.font.table.headings.frag">
+  &lt;xsl:param name="man.font.table.headings"&gt;B&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.table.headings</parameter> parameter
+specifies the font for <tag>table</tag> headings. It should be
+a valid roff font, such as <literal>B</literal> or
+<literal>I</literal>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.font.table.title">
+<refmeta>
+<refentrytitle>man.font.table.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.table.title</refname>
+<refpurpose>Specifies font for table headings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.font.table.title.frag">
+  &lt;xsl:param name="man.font.table.title"&gt;B&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.table.title</parameter> parameter
+specifies the font for <tag>table</tag> titles. It should be
+a valid roff font, such as <literal>B</literal> or
+<literal>I</literal>.</para>
+
+</refsection>
+</refentry>
+
+  </reference><reference id="synopsis" xml:base="../manpages/param.xml">
+  <title>SYNOPSIS section</title>
+<refentry version="5.0" id="man.funcsynopsis.style">
+<refmeta>
+<refentrytitle>man.funcsynopsis.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ansi</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kr</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.funcsynopsis.style</refname>
+<refpurpose>What style of <tag>funcsynopsis</tag> should be generated?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="man.funcsynopsis.style.frag">&lt;xsl:param name="man.funcsynopsis.style"&gt;ansi&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If <parameter>man.funcsynopsis.style</parameter> is
+<literal>ansi</literal>, ANSI-style function synopses are
+generated for a <tag>funcsynopsis</tag>, otherwise K&amp;R-style
+function synopses are generated.</para>
+</refsection>
+</refentry>
+
+  </reference><reference id="authors" xml:base="../manpages/param.xml">
+  <title>AUTHORS and COPYRIGHT sections</title>
+  <refentry version="5.0" id="man.authors.section.enabled">
+<refmeta>
+<refentrytitle>man.authors.section.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.authors.section.enabled</refname>
+<refpurpose>Display auto-generated AUTHORS section?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="man.authors.section.enabled.frag">
+&lt;xsl:param name="man.authors.section.enabled"&gt;1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>man.authors.section.enabled</parameter> is non-zero
+(the default), then an <literal>AUTHORS</literal> section is
+generated near the end of each man page. The output of the
+<literal>AUTHORS</literal> section is assembled from any
+<tag>author</tag>, <tag>editor</tag>, and <tag>othercredit</tag>
+metadata found in the contents of the child <tag>info</tag> or
+<tag>refentryinfo</tag> (if any) of the <tag>refentry</tag>
+itself, or from any <tag>author</tag>, <tag>editor</tag>, and
+<tag>othercredit</tag> metadata that may appear in <tag>info</tag>
+contents of any ancestors of the <tag>refentry</tag>.</para>
+
+<para>If the value of
+<parameter>man.authors.section.enabled</parameter> is zero, the
+the auto-generated <literal>AUTHORS</literal> section is
+suppressed.</para>
+
+<para>Set the value of
+  <parameter>man.authors.section.enabled</parameter> to zero if
+  you want to have a manually created <literal>AUTHORS</literal>
+  section in your source, and you want it to appear in output
+  instead of the auto-generated <literal>AUTHORS</literal>
+  section.</para>
+</refsection>
+</refentry>
+
+  <refentry version="5.0" id="man.copyright.section.enabled">
+<refmeta>
+<refentrytitle>man.copyright.section.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.copyright.section.enabled</refname>
+<refpurpose>Display auto-generated COPYRIGHT section?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="man.copyright.section.enabled.frag">
+&lt;xsl:param name="man.copyright.section.enabled"&gt;1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>man.copyright.section.enabled</parameter> is non-zero
+(the default), then a <literal>COPYRIGHT</literal> section is
+generated near the end of each man page. The output of the
+<literal>COPYRIGHT</literal> section is assembled from any
+<tag>copyright</tag> and <tag>legalnotice</tag> metadata found in
+the contents of the child <tag>info</tag> or
+<tag>refentryinfo</tag> (if any) of the <tag>refentry</tag>
+itself, or from any <tag>copyright</tag> and
+<tag>legalnotice</tag> metadata that may appear in <tag>info</tag>
+contents of any ancestors of the <tag>refentry</tag>.</para>
+
+<para>If the value of
+<parameter>man.copyright.section.enabled</parameter> is zero, the
+the auto-generated <literal>COPYRIGHT</literal> section is
+suppressed.</para>
+
+<para>Set the value of
+  <parameter>man.copyright.section.enabled</parameter> to zero if
+  you want to have a manually created <literal>COPYRIGHT</literal>
+  section in your source, and you want it to appear in output
+  instead of the auto-generated <literal>COPYRIGHT</literal>
+  section.</para>
+</refsection>
+</refentry>
+
+  </reference><reference id="endnotes" xml:base="../manpages/param.xml">
+  <title>Endnotes and link handling</title>
+<refentry version="5.0" id="man.endnotes.list.enabled">
+<refmeta>
+<refentrytitle>man.endnotes.list.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.endnotes.list.enabled</refname>
+<refpurpose>Display endnotes list at end of man page?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.endnotes.list.enabled.frag">
+&lt;xsl:param name="man.endnotes.list.enabled"&gt;1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.endnotes.list.enabled</parameter> is
+non-zero (the default), then an endnotes list is added to the end of
+the output man page.</para>
+
+<para>If the value of <parameter>man.endnotes.list.enabled</parameter> is
+zero, the list is suppressed &#8212; unless link numbering is enabled (that
+is, if <parameter>man.endnotes.are.numbered</parameter> is non-zero), in
+which case, that setting overrides the
+<parameter>man.endnotes.list.enabled</parameter> setting, and the
+endnotes list is still displayed. The reason is that inline
+numbering of notesources associated with endnotes only makes sense
+if a (numbered) list of endnotes is also generated.</para>
+
+<note>
+  <para>Leaving
+  <parameter>man.endnotes.list.enabled</parameter> at its default
+  (non-zero) value ensures that no &#8220;out of line&#8221; information (such
+  as the URLs for hyperlinks and images) gets lost in your
+  man-page output. It just gets &#8220;rearranged&#8221;.</para>
+  <para>So if you&#8217;re thinking about disabling endnotes listing by
+    setting the value of
+    <parameter>man.endnotes.list.enabled</parameter> to zero:
+    Before you do so, first take some time to carefully consider
+    the information needs and experiences of your users. The &#8220;out
+    of line&#8221; information has value even if the presentation of it
+    in text output is not as interactive as it may be in other
+    output formats.</para>
+  <para>As far as the specific case of URLs: Even though the URLs
+    displayed in text output may not be &#8220;real&#8221; (clickable)
+    hyperlinks, many X terminals have convenience features for
+    recognizing URLs and can, for example, present users with
+    an options to open a URL in a browser with the user clicks on
+    the URL is a terminal window. And short of those, users with X
+    terminals can always manually cut and paste the URLs into a web
+    browser.</para>
+  <para>Also, note that various &#8220;man to html&#8221; tools, such as the
+    widely used <command><link xlink:href="http://users.actrix.gen.nz/michael/vhman2html.html">man2html</link></command> (<literal>VH-Man2html</literal>)
+    application, automatically mark up URLs with <literal>a@href</literal> markup
+  during conversion &#8212; resulting in &#8220;real&#8221; hyperlinks in HTML
+  output from those tools.</para>
+</note>
+
+<para>To &#8220;turn off&#8221; numbering of endnotes in the
+endnotes list, set <parameter>man.endnotes.are.numbered</parameter>
+to zero. The endnotes list will
+still be displayed; it will just be displayed without the
+numbers<footnote><para>It can still make sense to have
+the list of endnotes displayed even if you have endnotes numbering turned
+off. In that case, your endnotes list basically becomes a &#8220;list
+of references&#8221; without any association with specific text in
+your document. This is probably the best option if you find the inline
+endnotes numbering obtrusive. Your users will still have access to all the &#8220;out of line&#8221;
+such as URLs for hyperlinks.</para></footnote>
+</para>
+
+<para>The default heading for the endnotes list is
+<literal>NOTES</literal>. To change that, set a non-empty
+value for the <parameter>man.endnotes.list.heading</parameter>
+parameter.</para>
+
+<para>In the case of notesources that are links: Along with the
+URL for each link, the endnotes list includes the contents of the
+link. The list thus includes only non-empty<footnote>
+
+<para>A &#8220;non-empty&#8221; link is one that looks like
+this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"&gt;manpages&lt;/ulink&gt;</literallayout>
+an &#8220;empty link&#8221; is on that looks like this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"/&gt;</literallayout>
+</para></footnote> links.
+
+Empty links are never included, and never numbered. They are simply
+displayed inline, without any numbering.</para>
+
+<para>In addition, if there are multiple instances of links in a
+<tag>refentry</tag> that have the same URL, the URL is listed only
+once. The contents listed for that link in the endnotes list are
+the contents of the first link which has that URL.</para>
+
+<para>If you disable endnotes listing, you should probably also set
+<parameter>man.links.are.underlined</parameter> to zero (to disable
+link underlining).</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.endnotes.list.heading">
+<refmeta>
+<refentrytitle>man.endnotes.list.heading</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.endnotes.list.heading</refname>
+<refpurpose>Specifies an alternate name for endnotes list</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.endnotes.list.heading.frag">
+&lt;xsl:param name="man.endnotes.list.heading"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.endnotes.are.numbered</parameter> parameter
+and/or the <parameter>man.endnotes.list.enabled</parameter>
+parameter is non-zero (the defaults for both are non-zero), a
+numbered list of endnotes is generated near the end of each man
+page. The default heading for the list of endnotes is the
+equivalent of the English word <literal>NOTES</literal> in
+the current locale. To cause an alternate heading to be displayed,
+set a non-empty value for the
+<parameter>man.endnotes.list.heading</parameter> parameter &#8212;
+for example, <literal>REFERENCES</literal>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.endnotes.are.numbered">
+<refmeta>
+<refentrytitle>man.endnotes.are.numbered</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.endnotes.are.numbered</refname>
+<refpurpose>Number endnotes?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.endnotes.are.numbered.frag">
+&lt;xsl:param name="man.endnotes.are.numbered"&gt;1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.endnotes.are.numbered</parameter> is
+non-zero (the default), then for each non-empty<footnote>
+<para>A &#8220;non-empty&#8221; notesource is one that looks like
+this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"&gt;manpages&lt;/ulink&gt;</literallayout>
+an &#8220;empty&#8221; notesource is on that looks like this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"/&gt;</literallayout>
+</para></footnote> &#8220;notesource&#8221;:
+
+<itemizedlist>
+  <listitem>
+    <para>a number (in square brackets) is displayed inline after the
+    rendered inline contents (if any) of the notesource</para>
+  </listitem>
+  <listitem>
+    <para>the contents of the notesource are included in a
+      numbered list of endnotes that is generated at the end of
+      each man page; the number for each endnote corresponds to
+      the inline number for the notesource with which it is
+      associated</para>
+  </listitem>
+</itemizedlist>
+The default heading for the list of endnotes is
+<literal>NOTES</literal>. To output a different heading, set a value
+for the <parameter>man.endnotes.section.heading</parameter>
+parameter.</para>
+
+<note>
+  <para>The endnotes list is also displayed (but without
+    numbers) if the value of
+    <parameter>man.endnotes.list.enabled</parameter> is
+    non-zero.</para>
+</note>
+
+
+<para>If the value of <parameter>man.endnotes.are.numbered</parameter> is
+zero, numbering of endnotess is suppressed; only inline
+contents (if any) of the notesource are displayed inline.
+<important>
+  <para>If you are thinking about disabling endnote numbering by setting
+  the value of <parameter>man.endnotes.are.numbered</parameter> to zero,
+  before you do so, first take some time to carefully
+  consider the information needs and experiences of your users. The
+  square-bracketed numbers displayed inline after notesources may seem
+  obstrusive and aesthetically unpleasing<footnote><para>As far as notesources that are links, ytou might
+  think it would be better to just display URLs for non-empty
+  links inline, after their content, rather than displaying
+  square-bracketed numbers all over the place. But it's not better. In
+  fact, it's not even practical, because many (most) URLs for links
+  are too long to be displayed inline. They end up overflowing the
+  right margin. You can set a non-zero value for
+  <parameter>man.break.after.slash</parameter> parameter to deal with
+  that, but it could be argued that what you end up with is at least
+  as ugly, and definitely more obstrusive, then having short
+  square-bracketed numbers displayed inline.</para></footnote>,
+
+  but in a text-only output format, the
+  numbered-notesources/endnotes-listing mechanism is the only
+  practical way to handle this kind of content.</para>
+
+  <para>Also, users of &#8220;text based&#8221; browsers such as
+  <command>lynx</command> will already be accustomed to seeing inline
+  numbers for links. And various "man to html" applications, such as
+  the widely used <command><link xlink:href="http://users.actrix.gen.nz/michael/vhman2html.html">man2html</link></command> (<literal>VH-Man2html</literal>)
+  application, can automatically turn URLs into "real" HTML hyperlinks
+  in output. So leaving <parameter>man.endnotes.are.numbered</parameter>
+  at its default (non-zero) value ensures that no information is
+  lost in your man-page output. It just gets
+  &#8220;rearranged&#8221;.</para>
+</important>
+</para>
+<para>The handling of empty links is not affected by this
+parameter. Empty links are handled simply by displaying their URLs
+inline. Empty links are never auto-numbered.</para>
+
+<para>If you disable endnotes numbering, you should probably also set
+<parameter>man.font.links</parameter> to an empty value (to
+disable font formatting for links.</para>
+</refsection>
+
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>man.endnotes.list.enabled</parameter>,
+    <parameter>man.font.links</parameter></para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.base.url.for.relative.links">
+  <refmeta>
+    <refentrytitle>man.base.url.for.relative.links</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>man.base.url.for.relative.links</refname>
+    <refpurpose>Specifies a base URL for relative links</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting id="man.base.url.for.relative.links.frag">&lt;xsl:param name="man.base.url.for.relative.links"&gt;[set $man.base.url.for.relative.links]/&lt;/xsl:param&gt;</programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>For any &#8220;notesource&#8221; listed in the auto-generated
+      &#8220;NOTES&#8221; section of output man pages (which is generated when
+      the value of the
+      <parameter>man.endnotes.list.enabled</parameter> parameter
+      is non-zero), if the notesource is a link source with a
+      relative URI, the URI is displayed in output with the value
+      of the
+      <parameter>man.base.url.for.relative.links</parameter>
+      parameter prepended to the value of the link URI.</para>
+
+    <note>
+      <para>A link source is an notesource that references an
+        external resource:
+        <itemizedlist>
+          <listitem>
+            <para>a <tag>ulink</tag> element with a <tag class="attribute">url</tag> attribute</para>
+          </listitem>
+          <listitem>
+            <para>any element with an <tag class="attribute">xlink:href</tag> attribute</para>
+          </listitem>
+          <listitem>
+            <para>an <tag>imagedata</tag>, <tag>audiodata</tag>, or
+              <tag>videodata</tag> element</para>
+          </listitem>
+        </itemizedlist>
+      </para>
+    </note>
+
+    <para>If you use relative URIs in link sources in your DocBook
+      <tag>refentry</tag> source, and you leave
+      <parameter>man.base.url.for.relative.links</parameter>
+      unset, the relative links will appear &#8220;as is&#8221; in the &#8220;Notes&#8221;
+      section of any man-page output generated from your source.
+      That&#8217;s probably not what you want, because such relative
+      links are only usable in the context of HTML output. So, to
+      make the links meaningful and usable in the context of
+      man-page output, set a value for
+      <parameter>man.base.url.for.relative.links</parameter> that
+      points to the online version of HTML output generated from
+      your DocBook <tag>refentry</tag> source. For
+      example:
+      <programlisting>&lt;xsl:param name="man.base.url.for.relative.links"
+        &gt;http://www.kernel.org/pub/software/scm/git/docs/&lt;/xsl:param&gt;</programlisting>
+    </para>
+
+  </refsection>
+
+  <refsection><info><title>Related Parameters</title></info>
+    <para><parameter>man.endnotes.list.enabled</parameter></para>
+  </refsection>
+
+</refentry>
+
+  </reference><reference id="lists" xml:base="../manpages/param.xml">
+  <title>Lists</title>
+<refentry version="5.0" id="man.segtitle.suppress">
+<refmeta>
+<refentrytitle>man.segtitle.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.segtitle.suppress</refname>
+<refpurpose>Suppress display of segtitle contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.segtitle.suppress.frag">
+&lt;xsl:param name="man.segtitle.suppress" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.segtitle.suppress</parameter> is
+non-zero, then display of <tag>segtitle</tag> contents is
+suppressed in output.</para>
+
+</refsection>
+</refentry>
+
+  </reference><reference id="charmap" xml:base="../manpages/param.xml">
+  <title>Character/string substitution</title>
+<refentry version="5.0" id="man.charmap.enabled">
+<refmeta>
+<refentrytitle>man.charmap.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.enabled</refname>
+<refpurpose>Apply character map before final output?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.charmap.enabled.frag">
+&lt;xsl:param name="man.charmap.enabled" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the <parameter>man.charmap.enabled</parameter>
+parameter is non-zero, a "character map" is used to substitute certain
+Unicode symbols and special characters with appropriate roff/groff
+equivalents, just before writing each man-page file to the
+filesystem. If instead the value of
+<parameter>man.charmap.enabled</parameter> is zero, Unicode characters
+are passed through "as is".</para>
+
+<refsection><info><title>Details</title></info>
+
+<para>For converting certain Unicode symbols and special characters in
+UTF-8 or UTF-16 encoded XML source to appropriate groff/roff
+equivalents in man-page output, the DocBook XSL Stylesheets
+distribution includes a <link xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">roff character map</link> that is compliant with the <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character
+map</link> format as detailed in the XSLT 2.0 specification. The map
+contains more than 800 character mappings and can be considered the
+standard roff character map for the distribution.</para>
+
+<para>You can use the <parameter>man.charmap.uri</parameter>
+parameter to specify a URI for the location for an alternate roff
+character map to use in place of the standard roff character map
+provided in the distribution.</para>
+
+<para>You can also use a subset of a character map. For details,
+see the <parameter>man.charmap.use.subset</parameter>,
+<parameter>man.charmap.subset.profile</parameter>, and
+<parameter>man.charmap.subset.profile.english</parameter>
+parameters.</para>
+
+</refsection>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.charmap.uri">
+<refmeta>
+<refentrytitle>man.charmap.uri</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.uri</refname>
+<refpurpose>URI for custom roff character map</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.charmap.uri.frag">
+&lt;xsl:param name="man.charmap.uri"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>For converting certain Unicode symbols and special characters in
+UTF-8 or UTF-16 encoded XML source to appropriate groff/roff
+equivalents in man-page output, the DocBook XSL Stylesheets
+distribution includes an <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character
+map</link>. That character map can be considered the standard roff
+character map for the distribution.</para>
+
+<para>If the value of the <parameter>man.charmap.uri</parameter>
+parameter is non-empty, that value is used as the URI for the location
+for an alternate roff character map to use in place of the standard
+roff character map provided in the distribution.</para>
+
+<warning>
+<para>Do not set a value for <parameter>man.charmap.uri</parameter>
+unless you have a custom roff character map that differs from the
+standard one provided in the distribution.</para>
+</warning>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.charmap.use.subset">
+<refmeta>
+<refentrytitle>man.charmap.use.subset</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.use.subset</refname>
+<refpurpose>Use subset of character map instead of full map?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.charmap.use.subset.frag">
+&lt;xsl:param name="man.charmap.use.subset" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.charmap.use.subset</parameter> parameter is non-zero,
+a subset of the roff character map is used instead of the full roff
+character map. The profile of the subset used is determined either
+by the value of the
+<parameter>man.charmap.subset.profile</parameter>
+parameter (if the source is not in English) or the
+<parameter>man.charmap.subset.profile.english</parameter>
+parameter (if the source is in English).</para>
+
+<note>
+  <para>You may want to experiment with setting a non-zero value of
+  <parameter>man.charmap.use.subset</parameter>, so that the full
+  character map is used. Depending on which XSLT engine you run,
+  setting a non-zero value for
+  <parameter>man.charmap.use.subset</parameter> may significantly
+  increase the time needed to process your documents. Or it may
+  not. For example, if you set it and run it with xsltproc, it seems
+  to dramatically increase processing time; on the other hand, if you
+  set it and run it with Saxon, it does not seem to increase
+  processing time nearly as much.</para>
+
+  <para>If processing time is not a important concern and/or you can
+  tolerate the increase in processing time imposed by using the full
+  character map, set <parameter>man.charmap.use.subset</parameter> to
+  zero.</para>
+</note>
+
+<refsection><info><title>Details</title></info>
+
+<para>For converting certain Unicode symbols and special characters in
+UTF-8 or UTF-16 encoded XML source to appropriate groff/roff
+equivalents in man-page output, the DocBook XSL Stylesheets
+distribution includes a <link xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">roff character map</link> that is compliant with the <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character
+map</link> format as detailed in the XSLT 2.0 specification. The map
+contains more than 800 character mappings and can be considered the
+standard roff character map for the distribution.</para>
+
+<note>
+<para>You can use the <parameter>man.charmap.uri</parameter>
+parameter to specify a URI for the location for an alternate roff
+character map to use in place of the standard roff character map
+provided in the distribution.</para>
+</note>
+
+<para>Because it is not terrifically efficient to use the standard
+800-character character map in full -- and for most (or all) users,
+never necessary to use it in full -- the DocBook XSL Stylesheets
+support a mechanism for using, within any given character map, a
+subset of character mappings instead of the full set. You can use the
+<parameter>man.charmap.subset.profile</parameter> or
+<parameter>man.charmap.subset.profile.english</parameter>
+parameter to tune the profile of that subset to use.</para>
+
+</refsection>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.charmap.subset.profile">
+<refmeta>
+<refentrytitle>man.charmap.subset.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.subset.profile</refname>
+<refpurpose>Profile of character map subset</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.charmap.subset.profile.frag">
+&lt;xsl:param name="man.charmap.subset.profile"&gt;
+@*[local-name() = 'block'] = 'Miscellaneous Technical' or
+(@*[local-name() = 'block'] = 'C1 Controls And Latin-1 Supplement (Latin-1 Supplement)' and
+ (@*[local-name() = 'class'] = 'symbols' or
+  @*[local-name() = 'class'] = 'letters')
+) or
+@*[local-name() = 'block'] = 'Latin Extended-A'
+or
+(@*[local-name() = 'block'] = 'General Punctuation' and
+ (@*[local-name() = 'class'] = 'spaces' or
+  @*[local-name() = 'class'] = 'dashes' or
+  @*[local-name() = 'class'] = 'quotes' or
+  @*[local-name() = 'class'] = 'bullets'
+ )
+) or
+@*[local-name() = 'name'] = 'HORIZONTAL ELLIPSIS' or
+@*[local-name() = 'name'] = 'WORD JOINER' or
+@*[local-name() = 'name'] = 'SERVICE MARK' or
+@*[local-name() = 'name'] = 'TRADE MARK SIGN' or
+@*[local-name() = 'name'] = 'ZERO WIDTH NO-BREAK SPACE'
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.charmap.use.subset</parameter> parameter is non-zero,
+and your DocBook source is not written in English (that
+  is, if the <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute on the root element
+  in your DocBook source or on the first <tag>refentry</tag>
+  element in your source has a value other than
+  <literal>en</literal>), then the character-map subset specified
+  by the <parameter>man.charmap.subset.profile</parameter>
+  parameter is used instead of the full roff character map.</para>
+
+<para>Otherwise, if the <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute on the root
+  element in your DocBook
+  source or on the first <tag>refentry</tag> element in your source
+  has the value <literal>en</literal> or if it has no <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute, then the character-map
+  subset specified by the
+  <parameter>man.charmap.subset.profile.english</parameter>
+  parameter is used instead of
+  <parameter>man.charmap.subset.profile</parameter>.</para>
+
+<para>The difference between the two subsets is that
+  <parameter>man.charmap.subset.profile</parameter> provides
+  mappings for characters in Western European languages that are
+  not part of the Roman (English) alphabet (ASCII character set).</para>
+
+<para>The value of <parameter>man.charmap.subset.profile</parameter>
+is a string representing an XPath expression that matches attribute
+names and values for <tag namespace="http://docbook.sf.net/xmlns/unichar/1.0">output-character</tag>
+elements in the character map.</para>
+
+<para>The attributes supported in the <link xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">standard roff character map included in the distribution</link> are:
+<variablelist>
+  <varlistentry>
+    <term>character</term>
+    <listitem>
+      <simpara>a raw Unicode character or numeric Unicode
+      character-entity value (either in decimal or hex); all
+      characters have this attribute</simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>name</term>
+    <listitem>
+      <simpara>a standard full/long ISO/Unicode character name (e.g.,
+      "OHM SIGN"); all characters have this attribute</simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>block</term>
+    <listitem>
+      <simpara>a standard Unicode "block" name (e.g., "General
+      Punctuation"); all characters have this attribute. For the full
+      list of Unicode block names supported in the standard roff
+      character map, see <xref linkend="BlocksAndClasses"/>.</simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>class</term>
+    <listitem>
+      <simpara>a class of characters (e.g., "spaces"). Not all
+      characters have this attribute; currently, it is used only with
+      certain characters within the "C1 Controls And Latin-1
+      Supplement" and "General Punctuation" blocks. For details, see
+      <xref linkend="BlocksAndClasses"/>.</simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>entity</term>
+    <listitem>
+      <simpara>an ISO entity name (e.g., "ohm"); not all characters
+      have this attribute, because not all characters have ISO entity
+      names; for example, of the 800 or so characters in the standard
+      roff character map included in the distribution, only around 300
+      have ISO entity names.
+      </simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>string</term>
+    <listitem>
+      <simpara>a string representing an roff/groff escape-code (with
+      "@esc@" used in place of the backslash), or a simple ASCII
+      string; all characters in the roff character map have this
+      attribute</simpara>
+    </listitem>
+  </varlistentry>
+</variablelist>
+</para>
+<para>The value of <parameter>man.charmap.subset.profile</parameter>
+is evaluated as an XPath expression at run-time to select a portion of
+the roff character map to use. You can tune the subset used by adding
+or removing parts. For example, if you need to use a wide range of
+mathematical operators in a document, and you want to have them
+converted into roff markup properly, you might add the following:
+
+<literallayout class="monospaced">  @*[local-name() = 'block'] ='MathematicalOperators' </literallayout>
+
+That will cause a additional set of around 67 additional "math"
+characters to be converted into roff markup. </para>
+
+<note>
+<para>Depending on which XSLT engine you use, either the EXSLT
+<function>dyn:evaluate</function> extension function (for xsltproc or
+Xalan) or <function>saxon:evaluate</function> extension function (for
+Saxon) are used to dynamically evaluate the value of
+<parameter>man.charmap.subset.profile</parameter> at run-time. If you
+don't use xsltproc, Saxon, Xalan -- or some other XSLT engine that
+supports <function>dyn:evaluate</function> -- you must either set the
+value of the <parameter>man.charmap.use.subset</parameter> parameter
+to zero and process your documents using the full character map
+instead, or set the value of the
+<parameter>man.charmap.enabled</parameter> parameter to zero instead
+(so that character-map processing is disabled completely.</para>
+</note>
+
+<para>An alternative to using
+<parameter>man.charmap.subset.profile</parameter> is to create your
+own custom character map, and set the value of
+<parameter>man.charmap.uri</parameter> to the URI/filename for
+that. If you use a custom character map, you will probably want to
+include in it just the characters you want to use, and so you will
+most likely also want to set the value of
+<parameter>man.charmap.use.subset</parameter> to zero.</para>
+<para>You can create a
+custom character map by making a copy of the <link xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">standard roff character map</link> provided in the distribution, and
+then adding to, changing, and/or deleting from that.</para>
+
+<caution>
+<para>If you author your DocBook XML source in UTF-8 or UTF-16
+encoding and aren't sure what OSes or environments your man-page
+output might end up being viewed on, and not sure what version of
+nroff/groff those environments might have, you should be careful about
+what Unicode symbols and special characters you use in your source and
+what parts you add to the value of
+<parameter>man.charmap.subset.profile</parameter>.</para>
+<para>Many of the escape codes used are specific to groff and using
+them may not provide the expected output on an OS or environment that
+uses nroff instead of groff.</para>
+<para>On the other hand, if you intend for your man-page output to be
+viewed only on modern systems (for example, GNU/Linux systems, FreeBSD
+systems, or Cygwin environments) that have a good, up-to-date groff,
+then you can safely include a wide range of Unicode symbols and
+special characters in your UTF-8 or UTF-16 encoded DocBook XML source
+and add any of the supported Unicode block names to the value of
+<parameter>man.charmap.subset.profile</parameter>.</para>
+</caution>
+
+
+<para>For other details, see the documentation for the
+<parameter>man.charmap.use.subset</parameter> parameter.</para>
+
+<refsection id="BlocksAndClasses"><info><title>Supported Unicode block names and "class" values</title></info>
+  
+
+  <para>Below is the full list of Unicode block names and "class"
+  values supported in the standard roff stylesheet provided in the
+  distribution, along with a description of which codepoints from the
+  Unicode range corresponding to that block name or block/class
+  combination are supported.</para>
+
+  <itemizedlist>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=C1%20Controls%20and%20Latin-1%20Supplement%20(Latin-1%20Supplement)">C1 Controls And Latin-1 Supplement (Latin-1 Supplement)</link> (x00a0 to x00ff)
+      <itemizedlist><info><title>class values</title></info>
+        
+        <listitem>
+          <para>symbols</para>
+        </listitem>
+        <listitem>
+          <para>letters</para>
+        </listitem>
+      </itemizedlist></para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Latin%20Extended-A">Latin Extended-A</link> (x0100 to x017f, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Spacing%20Modifier%20Letters">Spacing Modifier Letters</link> (x02b0 to x02ee, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Greek%20and%20Coptic">Greek and Coptic</link> (x0370 to x03ff, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=General%20Punctuation">General Punctuation</link> (x2000 to x206f, partial)
+      <itemizedlist><info><title>class values</title></info>
+        
+        <listitem>
+          <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;start=8192&amp;end=8203">spaces</link></para>
+        </listitem>
+        <listitem>
+          <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;start=8208&amp;end=8213">dashes</link></para>
+        </listitem>
+        <listitem>
+          <para>quotes</para>
+        </listitem>
+        <listitem>
+          <para>daggers</para>
+        </listitem>
+        <listitem>
+          <para>bullets</para>
+        </listitem>
+        <listitem>
+          <para>leaders</para>
+        </listitem>
+        <listitem>
+          <para>primes</para>
+        </listitem>
+      </itemizedlist>
+      </para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Superscripts%20and%20Subscripts">Superscripts and Subscripts</link> (x2070 to x209f)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Currency%20Symbols">Currency Symbols</link> (x20a0 to x20b1)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Letterlike%20Symbols">Letterlike Symbols</link> (x2100 to x214b)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Number%20Forms">Number Forms</link> (x2150 to x218f)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Arrows">Arrows</link> (x2190 to x21ff, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Mathematical%20Operators">Mathematical Operators</link> (x2200 to x22ff, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Control%20Pictures">Control Pictures</link> (x2400 to x243f)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Enclosed%20Alphanumerics">Enclosed Alphanumerics</link> (x2460 to x24ff)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Geometric%20Shapes">Geometric Shapes</link> (x25a0 to x25f7, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Miscellaneous%20Symbols">Miscellaneous Symbols</link> (x2600 to x26ff, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Dingbats">Dingbats</link> (x2700 to x27be, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Alphabetic%20Presentation%20Forms">Alphabetic Presentation Forms</link> (xfb00 to xfb04 only)</para>
+    </listitem>
+  </itemizedlist>
+</refsection>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.charmap.subset.profile.english">
+<refmeta>
+<refentrytitle>man.charmap.subset.profile.english</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.subset.profile.english</refname>
+<refpurpose>Profile of character map subset</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.charmap.subset.profile.english.frag">
+&lt;xsl:param name="man.charmap.subset.profile.english"&gt;
+@*[local-name() = 'block'] = 'Miscellaneous Technical' or
+(@*[local-name() = 'block'] = 'C1 Controls And Latin-1 Supplement (Latin-1 Supplement)' and
+ @*[local-name() = 'class'] = 'symbols')
+or
+(@*[local-name() = 'block'] = 'General Punctuation' and
+ (@*[local-name() = 'class'] = 'spaces' or
+  @*[local-name() = 'class'] = 'dashes' or
+  @*[local-name() = 'class'] = 'quotes' or
+  @*[local-name() = 'class'] = 'bullets'
+ )
+) or
+@*[local-name() = 'name'] = 'HORIZONTAL ELLIPSIS' or
+@*[local-name() = 'name'] = 'WORD JOINER' or
+@*[local-name() = 'name'] = 'SERVICE MARK' or
+@*[local-name() = 'name'] = 'TRADE MARK SIGN' or
+@*[local-name() = 'name'] = 'ZERO WIDTH NO-BREAK SPACE'
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+  <parameter>man.charmap.use.subset</parameter> parameter is
+  non-zero, and your DocBook source is written in English (that
+  is, if its <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute on the root element
+  in your DocBook source or on the first <tag>refentry</tag>
+  element in your source has the value <literal>en</literal> or if
+  it has no <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute), then the
+  character-map subset specified by the
+  <parameter>man.charmap.subset.profile.english</parameter>
+  parameter is used instead of the full roff character map.</para>
+
+<para>Otherwise, if the <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute
+  on the root element in your DocBook source or on the first
+  <tag>refentry</tag> element in your source has a value other
+  than <literal>en</literal>, then the character-map subset
+  specified by the
+  <parameter>man.charmap.subset.profile</parameter> parameter is
+  used instead of
+  <parameter>man.charmap.subset.profile.english</parameter>.</para>
+
+<para>The difference between the two subsets is that
+  <parameter>man.charmap.subset.profile</parameter> provides
+  mappings for characters in Western European languages that are
+  not part of the Roman (English) alphabet (ASCII character set).</para>
+
+<para>The value of <parameter>man.charmap.subset.profile.english</parameter>
+is a string representing an XPath expression that matches attribute
+names and values for <tag namespace="http://docbook.sf.net/xmlns/unichar/1.0">output-character</tag> elements in the character map.</para>
+
+<para>For other details, see the documentation for the
+<parameter>man.charmap.subset.profile.english</parameter> and
+<parameter>man.charmap.use.subset</parameter> parameters.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.string.subst.map.local.pre">
+<refmeta>
+<refentrytitle>man.string.subst.map.local.pre</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.string.subst.map.local.pre</refname>
+<refpurpose>Specifies &#8220;local&#8221; string substitutions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.string.subst.map.local.pre.frag">
+  &lt;xsl:param name="man.string.subst.map.local.pre"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Use the <parameter>man.string.subst.map.local.pre</parameter>
+parameter to specify any &#8220;local&#8221; string substitutions to perform over
+the entire roff source for each man page <emphasis>before</emphasis>
+performing the string substitutions specified by the <parameter>man.string.subst.map</parameter> parameter.</para>
+
+<para>For details about the format of this parameter, see the
+documentation for the <parameter>man.string.subst.map</parameter>
+parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.string.subst.map">
+<refmeta>
+<refentrytitle>man.string.subst.map</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.string.subst.map</refname>
+<refpurpose>Specifies a set of string substitutions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.string.subst.map.frag">
+&lt;xsl:param name="man.string.subst.map"&gt;
+
+  &lt;!-- * remove no-break marker at beginning of line (stylesheet artifact) --&gt; 
+  &lt;ss:substitution oldstring="&#9618;&#9600;" newstring="&#9618;"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * replace U+2580 no-break marker (stylesheet-added) w/ no-break space --&gt;
+  &lt;ss:substitution oldstring="&#9600;" newstring="\ "&gt;&lt;/ss:substitution&gt;
+
+  &lt;!-- ==================================================================== --&gt;
+
+  &lt;!-- * squeeze multiple newlines before a roff request  --&gt;
+  &lt;ss:substitution oldstring="
+
+." newstring="
+."&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * remove any .sp instances that directly precede a .PP  --&gt;
+  &lt;ss:substitution oldstring=".sp
+.PP" newstring=".PP"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * remove any .sp instances that directly follow a .PP  --&gt;
+  &lt;ss:substitution oldstring=".sp
+.sp" newstring=".sp"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * squeeze multiple .sp instances into a single .sp--&gt;
+  &lt;ss:substitution oldstring=".PP
+.sp" newstring=".PP"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * squeeze multiple newlines after start of no-fill (verbatim) env. --&gt;
+  &lt;ss:substitution oldstring=".nf
+
+" newstring=".nf
+"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * squeeze multiple newlines after REstoring margin --&gt;
+  &lt;ss:substitution oldstring=".RE
+
+" newstring=".RE
+"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * U+2591 is a marker we add before and after every Parameter in --&gt;
+  &lt;!-- * Funcprototype output --&gt;
+  &lt;ss:substitution oldstring="&#9617;" newstring=" "&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * U+2592 is a marker we add for the newline before output of &lt;sbr&gt;; --&gt;
+  &lt;ss:substitution oldstring="&#9618;" newstring="
+"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * --&gt;
+  &lt;!-- * Now deal with some other characters that are added by the --&gt;
+  &lt;!-- * stylesheets during processing. --&gt;
+  &lt;!-- * --&gt;
+  &lt;!-- * bullet --&gt;
+  &lt;ss:substitution oldstring="&#8226;" newstring="\(bu"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * left double quote --&gt;
+  &lt;ss:substitution oldstring="&#8220;" newstring="\(lq"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * right double quote --&gt;
+  &lt;ss:substitution oldstring="&#8221;" newstring="\(rq"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * left single quote --&gt;
+  &lt;ss:substitution oldstring="&#8216;" newstring="\(oq"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * right single quote --&gt;
+  &lt;ss:substitution oldstring="&#8217;" newstring="\(cq"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * copyright sign --&gt;
+  &lt;ss:substitution oldstring="&#169;" newstring="\(co"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * registered sign --&gt;
+  &lt;ss:substitution oldstring="&#174;" newstring="\(rg"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * ...servicemark... --&gt;
+  &lt;!-- * There is no groff equivalent for it. --&gt;
+  &lt;ss:substitution oldstring="&#8480;" newstring="(SM)"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * ...trademark... --&gt;
+  &lt;!-- * We don't do "\(tm" because for console output, --&gt;
+  &lt;!-- * groff just renders that as "tm"; that is: --&gt;
+  &lt;!-- * --&gt;
+  &lt;!-- *   Product&amp;#x2122; -&gt; Producttm --&gt;
+  &lt;!-- * --&gt;
+  &lt;!-- * So we just make it to "(TM)" instead; thus: --&gt;
+  &lt;!-- * --&gt;
+  &lt;!-- *   Product&amp;#x2122; -&gt; Product(TM) --&gt;
+  &lt;ss:substitution oldstring="&#8482;" newstring="(TM)"&gt;&lt;/ss:substitution&gt;
+
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.string.subst.map</parameter> parameter
+contains <link linkend="map">a map</link> that specifies a set of
+string substitutions to perform over the entire roff source for each
+man page, either just before generating final man-page output (that
+is, before writing man-page files to disk) or, if the value of the
+<parameter>man.charmap.enabled</parameter> parameter is non-zero,
+before applying the roff character map.</para>
+
+<para>You can use <parameter>man.string.subst.map</parameter> as a
+&#8220;lightweight&#8221; character map to perform &#8220;essential&#8221; substitutions --
+that is, substitutions that are <emphasis>always</emphasis> performed,
+even if the value of the <parameter>man.charmap.enabled</parameter>
+parameter is zero. For example, you can use it to replace quotation
+marks or other special characters that are generated by the DocBook
+XSL stylesheets for a particular locale setting (as opposed to those
+characters that are actually in source XML documents), or to replace
+any special characters that may be automatically generated by a
+particular customization of the DocBook XSL stylesheets.</para>
+
+<warning>
+  <para>Do you not change value of the
+  <parameter>man.string.subst.map</parameter> parameter unless you are
+  sure what you are doing. First consider adding your
+  string-substitution mappings to either or both of the following
+  parameters:
+  <variablelist>
+    <varlistentry>
+      <term><parameter>man.string.subst.map.local.pre</parameter></term>
+      <listitem><para>applied before
+      <parameter>man.string.subst.map</parameter></para></listitem>
+    </varlistentry>
+    <varlistentry>
+      <term><parameter>man.string.subst.map.local.post</parameter></term>
+      <listitem><para>applied after
+      <parameter>man.string.subst.map</parameter></para></listitem>
+    </varlistentry>
+  </variablelist>
+  By default, both of those parameters contain no
+  string substitutions. They are intended as a means for you to
+  specify your own local string-substitution mappings.</para>
+
+  <para>If you remove any of default mappings from the value of the
+  <parameter>man.string.subst.map</parameter> parameter, you are
+  likely to end up with broken output. And be very careful about adding
+  anything to it; it&#8217;s used for doing string substitution over the
+  entire roff source of each man page &#8211; it causes target strings to be
+  replaced in roff requests and escapes, not just in the visible
+  contents of the page.</para>
+
+</warning>
+
+<refsection id="map">
+  <info>
+    <title>Contents of the substitution map</title>
+  </info>
+  <para>The string-substitution map contains one or more
+  <tag>ss:substitution</tag> elements, each of which has two
+  attributes:
+  <variablelist>
+    <varlistentry>
+      <term>oldstring</term>
+      <listitem>
+        <simpara>string to replace</simpara>
+      </listitem>
+    </varlistentry>
+    <varlistentry>
+      <term>newstring</term>
+      <listitem>
+        <simpara>string with which to replace <tag class="attribute">oldstring</tag></simpara>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+  It may also include XML comments (that is, delimited with
+  "<literal>&lt;!--</literal>" and "<literal>--&gt;</literal>").
+  </para>
+</refsection>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.string.subst.map.local.post">
+<refmeta>
+<refentrytitle>man.string.subst.map.local.post</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.string.subst.map.local.post</refname>
+<refpurpose>Specifies &#8220;local&#8221; string substitutions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.string.subst.map.local.post.frag">
+&lt;xsl:param name="man.string.subst.map.local.post"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Use the <parameter>man.string.subst.map.local.post</parameter>
+parameter to specify any &#8220;local&#8221; string substitutions to perform over
+the entire roff source for each man page <emphasis>after</emphasis>
+performing the string substitutions specified by the <parameter>man.string.subst.map</parameter> parameter.</para>
+
+<para>For details about the format of this parameter, see the
+documentation for the <parameter>man.string.subst.map</parameter>
+parameter.</para>
+
+</refsection>
+</refentry>
+
+  </reference><reference id="refmeta" xml:base="../manpages/param.xml">
+  <title>Refentry metadata gathering</title>
+<refentry version="5.0" id="refentry.meta.get.quietly">
+<refmeta>
+<refentrytitle>refentry.meta.get.quietly</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.meta.get.quietly</refname>
+<refpurpose>Suppress notes and warnings when gathering refentry metadata?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.meta.get.quietly.frag">
+&lt;xsl:param name="refentry.meta.get.quietly" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), notes and warnings about &#8220;missing&#8221; markup
+are generated during gathering of refentry metadata. If non-zero, the
+metadata is gathered &#8220;quietly&#8221; -- that is, the notes and warnings are
+suppressed.</para>
+
+<tip>
+  <para>If you are processing a large amount of <tag>refentry</tag>
+  content, you may be able to speed up processing significantly by
+  setting a non-zero value for
+  <parameter>refentry.meta.get.quietly</parameter>.</para>
+</tip>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.date.profile">
+<refmeta>
+<refentrytitle>refentry.date.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.date.profile</refname>
+<refpurpose>Specifies profile for refentry "date" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.date.profile.frag">
+&lt;xsl:param name="refentry.date.profile"&gt;
+  (($info[//date])[last()]/date)[1]|
+  (($info[//pubdate])[last()]/pubdate)[1]
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of <parameter>refentry.date.profile</parameter> is a
+string representing an XPath expression. It is evaluated at run-time
+and used only if <parameter>refentry.date.profile.enabled</parameter>
+is non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering
+logic "hard coded" into the stylesheets is used.</para>
+
+<para> The <literal>man(7)</literal> man page describes this content
+as "the date of the last revision". In man pages, it is the content
+that is usually displayed in the center footer.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.date.profile.enabled">
+<refmeta>
+<refentrytitle>refentry.date.profile.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.date.profile.enabled</refname>
+<refpurpose>Enable refentry "date" profiling?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.date.profile.enabled.frag">
+&lt;xsl:param name="refentry.date.profile.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.date.profile.enabled</parameter> is non-zero, then
+during <tag>refentry</tag> metadata gathering, the info profile
+specified by the customizable
+<parameter>refentry.date.profile</parameter> parameter is used.</para>
+
+<para>If instead the value of
+<parameter>refentry.date.profile.enabled</parameter> is zero (the
+default), then "hard coded" logic within the DocBook XSL stylesheets
+is used for gathering <tag>refentry</tag> "date" data.</para>
+
+<para>If you find that the default <tag>refentry</tag>
+metadata-gathering behavior is causing incorrect "date" data to show
+up in your output, then consider setting a non-zero value for
+<parameter>refentry.date.profile.enabled</parameter> and adjusting the
+value of <parameter>refentry.date.profile</parameter> to cause correct
+data to be gathered. </para>
+
+<para>Note that the terms "source" and "date" have special meanings in
+this context. For details, see the documentation for the
+<parameter>refentry.date.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.manual.profile">
+<refmeta>
+<refentrytitle>refentry.manual.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.manual.profile</refname>
+<refpurpose>Specifies profile for refentry "manual" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.manual.profile.frag">
+&lt;xsl:param name="refentry.manual.profile"&gt;
+  (($info[//title])[last()]/title)[1]|
+  ../title/node()
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of <parameter>refentry.manual.profile</parameter> is
+a string representing an XPath expression. It is evaluated at
+run-time and used only if
+<parameter>refentry.manual.profile.enabled</parameter> is
+non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering logic
+"hard coded" into the stylesheets is used.</para>
+
+<para>In man pages, this content is usually displayed in the middle of
+the header of the page. The <literal>man(7)</literal> man page
+describes this as "the title of the manual (e.g., <citetitle>Linux
+Programmer's Manual</citetitle>)". Here are some examples from
+existing man pages:
+<itemizedlist>
+  <listitem>
+    <para><citetitle>dpkg utilities</citetitle>
+    (<command>dpkg-name</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>User Contributed Perl Documentation</citetitle>
+    (<command>GET</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>GNU Development Tools</citetitle>
+    (<command>ld</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>Emperor Norton Utilities</citetitle>
+    (<command>ddate</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>Debian GNU/Linux manual</citetitle>
+    (<command>faked</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>GIMP Manual Pages</citetitle>
+    (<command>gimp</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>KDOC Documentation System</citetitle>
+    (<command>qt2kdoc</command>)</para>
+  </listitem>
+</itemizedlist>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.manual.profile.enabled">
+<refmeta>
+<refentrytitle>refentry.manual.profile.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.manual.profile.enabled</refname>
+<refpurpose>Enable refentry "manual" profiling?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.manual.profile.enabled.frag">
+&lt;xsl:param name="refentry.manual.profile.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.manual.profile.enabled</parameter> is
+non-zero, then during <tag>refentry</tag> metadata gathering, the info
+profile specified by the customizable
+<parameter>refentry.manual.profile</parameter> parameter is
+used.</para>
+
+<para>If instead the value of
+<parameter>refentry.manual.profile.enabled</parameter> is zero (the
+default), then "hard coded" logic within the DocBook XSL stylesheets
+is used for gathering <tag>refentry</tag> "manual" data.</para>
+
+<para>If you find that the default <tag>refentry</tag>
+metadata-gathering behavior is causing incorrect "manual" data to show
+up in your output, then consider setting a non-zero value for
+<parameter>refentry.manual.profile.enabled</parameter> and adjusting
+the value of <parameter>refentry.manual.profile</parameter> to cause
+correct data to be gathered. </para>
+
+<para>Note that the term "manual" has a special meanings in this
+context. For details, see the documentation for the
+<parameter>refentry.manual.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.source.name.suppress">
+<refmeta>
+<refentrytitle>refentry.source.name.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.source.name.suppress</refname>
+<refpurpose>Suppress "name" part of refentry "source" contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.source.name.suppress.frag">
+&lt;xsl:param name="refentry.source.name.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.source.name.suppress</parameter> is non-zero, then
+during <tag>refentry</tag> metadata gathering, no "source name" data
+is added to the <tag>refentry</tag> "source" contents. Instead (unless
+<parameter>refentry.version.suppress</parameter> is also non-zero),
+only "version" data is added to the "source" contents.</para>
+
+<para>If you find that the <tag>refentry</tag> metadata gathering
+mechanism is causing unwanted "source name" data to show up in your
+output -- for example, in the footer (or possibly header) of a man
+page -- then you might consider setting a non-zero value for
+<parameter>refentry.source.name.suppress</parameter>.</para>
+
+<para>Note that the terms "source", "source name", and "version" have
+special meanings in this context. For details, see the documentation
+for the <parameter>refentry.source.name.profile</parameter>
+parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.source.name.profile">
+<refmeta>
+<refentrytitle>refentry.source.name.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.source.name.profile</refname>
+<refpurpose>Specifies profile for refentry "source name" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.source.name.profile.frag">
+&lt;xsl:param name="refentry.source.name.profile"&gt;
+  (($info[//productname])[last()]/productname)[1]|
+  (($info[//corpname])[last()]/corpname)[1]|
+  (($info[//corpcredit])[last()]/corpcredit)[1]|
+  (($info[//corpauthor])[last()]/corpauthor)[1]|
+  (($info[//orgname])[last()]/orgname)[1]|
+  (($info[//publishername])[last()]/publishername)[1]
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of <parameter>refentry.source.name.profile</parameter>
+is a string representing an XPath expression. It is evaluated at
+run-time and used only if
+<parameter>refentry.source.name.profile.enabled</parameter> is
+non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering logic
+"hard coded" into the stylesheets is used.</para>
+
+<para>A "source name" is one part of a (potentially) two-part
+<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>
+"source" field. In man pages, it is usually displayed in the left
+footer of the page. It typically indicates the software system or
+product that the item documented in the man page belongs to. The
+<literal>man(7)</literal> man page describes it as "the source of
+the command", and provides the following examples:
+<itemizedlist>
+  <listitem>
+    <para>For binaries, use something like: GNU, NET-2, SLS
+    Distribution, MCC Distribution.</para>
+  </listitem>
+  <listitem>
+    <para>For system calls, use the version of the kernel that you
+    are currently looking at: Linux 0.99.11.</para>
+  </listitem>
+  <listitem>
+    <para>For library calls, use the source of the function: GNU, BSD
+    4.3, Linux DLL 4.4.1.</para>
+  </listitem>
+</itemizedlist>
+</para>
+
+<para>In practice, there are many pages that simply have a Version
+number in the "source" field. So, it looks like what we have is a
+two-part field,
+<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>,
+where:
+<variablelist>
+  <varlistentry>
+    <term>Name</term>
+    <listitem>
+      <para>product name (e.g., BSD) or org. name (e.g., GNU)</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Version</term>
+    <listitem>
+      <para>version number</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+Each part is optional. If the <replaceable>Name</replaceable> is a
+product name, then the <replaceable>Version</replaceable> is probably
+the version of the product. Or there may be no
+<replaceable>Name</replaceable>, in which case, if there is a
+<replaceable>Version</replaceable>, it is probably the version
+of the item itself, not the product it is part of. Or, if the
+<replaceable>Name</replaceable> is an organization name, then there
+probably will be no <replaceable>Version</replaceable>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.source.name.profile.enabled">
+<refmeta>
+<refentrytitle>refentry.source.name.profile.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.source.name.profile.enabled</refname>
+<refpurpose>Enable refentry "source name" profiling?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.source.name.profile.enabled.frag">
+&lt;xsl:param name="refentry.source.name.profile.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.source.name.profile.enabled</parameter> is
+non-zero, then during <tag>refentry</tag> metadata gathering, the info
+profile specified by the customizable
+<parameter>refentry.source.name.profile</parameter> parameter is
+used.</para>
+
+<para>If instead the value of
+<parameter>refentry.source.name.profile.enabled</parameter> is zero (the
+default), then "hard coded" logic within the DocBook XSL stylesheets
+is used for gathering <tag>refentry</tag> "source name" data.</para>
+
+<para>If you find that the default <tag>refentry</tag>
+metadata-gathering behavior is causing incorrect "source name" data to
+show up in your output, then consider setting a non-zero value for
+<parameter>refentry.source.name.profile.enabled</parameter> and
+adjusting the value of
+<parameter>refentry.source.name.profile</parameter> to cause correct
+data to be gathered. </para>
+
+<para>Note that the terms "source" and "source name" have special
+meanings in this context. For details, see the documentation for the
+<parameter>refentry.source.name.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.version.suppress">
+<refmeta>
+<refentrytitle>refentry.version.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.version.suppress</refname>
+<refpurpose>Suppress "version" part of refentry "source" contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.version.suppress.frag">
+&lt;xsl:param name="refentry.version.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>refentry.version.suppress</parameter>
+is non-zero, then during <tag>refentry</tag> metadata gathering, no
+"version" data is added to the <tag>refentry</tag> "source"
+contents. Instead (unless
+<parameter>refentry.source.name.suppress</parameter> is also
+non-zero), only "source name" data is added to the "source"
+contents.</para>
+
+<para>If you find that the <tag>refentry</tag> metadata gathering
+mechanism is causing unwanted "version" data to show up in your output
+-- for example, in the footer (or possibly header) of a man page --
+then you might consider setting a non-zero value for
+<parameter>refentry.version.suppress</parameter>.</para>
+
+<para>Note that the terms "source", "source name", and "version" have
+special meanings in this context. For details, see the documentation
+for the <parameter>refentry.source.name.profile</parameter>
+parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.version.profile">
+<refmeta>
+<refentrytitle>refentry.version.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.version.profile</refname>
+<refpurpose>Specifies profile for refentry "version" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.version.profile.frag">
+&lt;xsl:param name="refentry.version.profile"&gt;
+  (($info[//productnumber])[last()]/productnumber)[1]|
+  (($info[//edition])[last()]/edition)[1]|
+  (($info[//releaseinfo])[last()]/releaseinfo)[1]
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of <parameter>refentry.version.profile</parameter> is
+a string representing an XPath expression. It is evaluated at
+run-time and used only if
+<parameter>refentry.version.profile.enabled</parameter> is
+non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering logic
+"hard coded" into the stylesheets is used.</para>
+
+<para>A "source.name" is one part of a (potentially) two-part
+<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>
+"source" field. For more details, see the documentation for the
+<parameter>refentry.source.name.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.version.profile.enabled">
+<refmeta>
+<refentrytitle>refentry.version.profile.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.version.profile.enabled</refname>
+<refpurpose>Enable refentry "version" profiling?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.version.profile.enabled.frag">
+&lt;xsl:param name="refentry.version.profile.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.version.profile.enabled</parameter> is
+non-zero, then during <tag>refentry</tag> metadata gathering, the info
+profile specified by the customizable
+<parameter>refentry.version.profile</parameter> parameter is
+used.</para>
+
+<para>If instead the value of
+<parameter>refentry.version.profile.enabled</parameter> is zero (the
+default), then "hard coded" logic within the DocBook XSL stylesheets
+is used for gathering <tag>refentry</tag> "version" data.</para>
+
+<para>If you find that the default <tag>refentry</tag>
+metadata-gathering behavior is causing incorrect "version" data to show
+up in your output, then consider setting a non-zero value for
+<parameter>refentry.version.profile.enabled</parameter> and adjusting
+the value of <parameter>refentry.version.profile</parameter> to cause
+correct data to be gathered. </para>
+
+<para>Note that the terms "source" and "version" have special
+meanings in this context. For details, see the documentation for the
+<parameter>refentry.version.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.manual.fallback.profile">
+<refmeta>
+<refentrytitle>refentry.manual.fallback.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.manual.fallback.profile</refname>
+<refpurpose>Specifies profile of "fallback" for refentry "manual" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.manual.fallback.profile.frag">
+&lt;xsl:param name="refentry.manual.fallback.profile"&gt;
+refmeta/refmiscinfo[not(@class = 'date')][1]/node()&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of
+<parameter>refentry.manual.fallback.profile</parameter> is a string
+representing an XPath expression. It is evaluated at run-time and
+used only if no "manual" data can be found by other means (that is,
+either using the <tag>refentry</tag> metadata-gathering logic "hard
+coded" in the stylesheets, or the value of
+<parameter>refentry.manual.profile</parameter>, if it is
+enabled).</para>
+
+<important>
+<para>Depending on which XSLT engine you run, either the EXSLT
+<function>dyn:evaluate</function> extension function (for xsltproc or
+Xalan) or <function>saxon:evaluate</function> extension function (for
+Saxon) are used to dynamically evaluate the value of
+<parameter>refentry.manual.fallback.profile</parameter> at
+run-time. If you don't use xsltproc, Saxon, Xalan -- or some other
+XSLT engine that supports <function>dyn:evaluate</function> -- you
+must manually disable fallback processing by setting an empty value
+for the <parameter>refentry.manual.fallback.profile</parameter>
+parameter.</para>
+</important>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="refentry.source.fallback.profile">
+<refmeta>
+<refentrytitle>refentry.source.fallback.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.source.fallback.profile</refname>
+<refpurpose>Specifies profile of "fallback" for refentry "source" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="refentry.source.fallback.profile.frag">
+&lt;xsl:param name="refentry.source.fallback.profile"&gt;
+refmeta/refmiscinfo[not(@class = 'date')][1]/node()&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of
+<parameter>refentry.source.fallback.profile</parameter> is a string
+representing an XPath expression. It is evaluated at run-time and used
+only if no "source" data can be found by other means (that is, either
+using the <tag>refentry</tag> metadata-gathering logic "hard coded" in
+the stylesheets, or the value of the
+<parameter>refentry.source.name.profile</parameter> and
+<parameter>refentry.version.profile</parameter> parameters, if those
+are enabled).</para>
+
+<important>
+<para>Depending on which XSLT engine you run, either the EXSLT
+<function>dyn:evaluate</function> extension function (for xsltproc or
+Xalan) or <function>saxon:evaluate</function> extension function (for
+Saxon) are used to dynamically evaluate the value of
+<parameter>refentry.source.fallback.profile</parameter> at
+run-time. If you don't use xsltproc, Saxon, Xalan -- or some other
+XSLT engine that supports <function>dyn:evaluate</function> -- you
+must manually disable fallback processing by setting an empty value
+for the <parameter>refentry.source.fallback.profile</parameter>
+parameter.</para>
+</important>
+
+</refsection>
+</refentry>
+
+  </reference><reference id="th" xml:base="../manpages/param.xml">
+  <title>Page header/footer</title>
+<refentry version="5.0" id="man.th.extra1.suppress">
+<refmeta>
+<refentrytitle>man.th.extra1.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra1.suppress</refname>
+<refpurpose>Suppress extra1 part of header/footer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.th.extra1.suppress.frag">
+&lt;xsl:param name="man.th.extra1.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.th.extra1.suppress</parameter> is
+non-zero, then the <literal>extra1</literal> part of the
+<literal>.TH</literal> title line header/footer is suppressed.</para>
+
+<para>The content of the <literal>extra1</literal> field is almost
+always displayed in the center footer of the page and is, universally,
+a date.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.th.extra2.suppress">
+<refmeta>
+<refentrytitle>man.th.extra2.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra2.suppress</refname>
+<refpurpose>Suppress extra2 part of header/footer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.th.extra2.suppress.frag">
+&lt;xsl:param name="man.th.extra2.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.th.extra2.suppress</parameter> is
+non-zero, then the <literal>extra2</literal> part of the
+<literal>.TH</literal> title line header/footer is suppressed.</para>
+
+<para>The content of the <literal>extra2</literal> field is usually
+displayed in the left footer of the page and is typically "source"
+data, often in the form
+<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>;
+for example, "GTK+ 1.2" (from the <literal>gtk-options(7)</literal>
+man page).</para>
+
+<note>
+  <para>You can use the
+  <parameter>refentry.source.name.suppress</parameter> and
+  <parameter>refentry.version.suppress</parameter> parameters to
+  independently suppress the <replaceable>Name</replaceable> and
+  <replaceable>Version</replaceable> parts of the
+  <literal>extra2</literal> field.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.th.extra3.suppress">
+<refmeta>
+<refentrytitle>man.th.extra3.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra3.suppress</refname>
+<refpurpose>Suppress extra3 part of header/footer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.th.extra3.suppress.frag">
+&lt;xsl:param name="man.th.extra3.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.th.extra3.suppress</parameter> is
+non-zero, then the <literal>extra3</literal> part of the
+<literal>.TH</literal> title line header/footer is
+suppressed.</para>
+
+<para>The content of the <literal>extra3</literal> field is usually
+displayed in the middle header of the page and is typically a "manual
+name"; for example, "GTK+ User's Manual" (from the
+<literal>gtk-options(7)</literal> man page).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.th.title.max.length">
+<refmeta>
+<refentrytitle>man.th.title.max.length</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.title.max.length</refname>
+<refpurpose>Maximum length of title in header/footer</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.th.title.max.length.frag">
+&lt;xsl:param name="man.th.title.max.length"&gt;20&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximum permitted length of the title part of the
+man-page <literal>.TH</literal> title line header/footer. If the title
+exceeds the maxiumum specified, it is truncated down to the maximum
+permitted length.</para>
+
+<refsection><info><title>Details</title></info>
+  
+
+<para>Every man page generated using the DocBook stylesheets has a
+title line, specified using the <literal>TH</literal> roff
+macro. Within that title line, there is always, at a minimum, a title,
+followed by a section value (representing a man "section" -- usually
+just a number).</para>
+
+<para>The title and section are displayed, together, in the visible
+header of each page. Where in the header they are displayed depends on
+OS the man page is viewed on, and on what version of nroff/groff/man
+is used for viewing the page. But, at a minimum and across all
+systems, the title and section are displayed on the right-hand column
+of the header. On many systems -- those with a modern groff, including
+Linux systems -- they are displayed twice: both in the left and right
+columns of the header.</para>
+
+<para>So if the length of the title exceeds a certain percentage of
+the column width in which the page is viewed, the left and right
+titles can end up overlapping, making them unreadable, or breaking to
+another line, which doesn't look particularly good.</para>
+
+<para>So the stylesheets provide the
+<parameter>man.th.title.max.length</parameter> parameter as a means
+for truncating titles that exceed the maximum length that can be
+viewing properly in a page header.</para>
+
+<para>The default value is reasonable but somewhat arbitrary. If you
+have pages with long titles, you may want to experiment with changing
+the value in order to achieve the correct aesthetic results.</para>
+</refsection>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.th.extra2.max.length">
+<refmeta>
+<refentrytitle>man.th.extra2.max.length</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra2.max.length</refname>
+<refpurpose>Maximum length of extra2 in header/footer</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.th.extra2.max.length.frag">
+&lt;xsl:param name="man.th.extra2.max.length"&gt;30&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximum permitted length of the
+<literal>extra2</literal> part of the man-page part of the
+<literal>.TH</literal> title line header/footer. If the
+<literal>extra2</literal> content exceeds the maxiumum specified, it
+is truncated down to the maximum permitted length.</para>
+
+<para>The content of the <literal>extra2</literal> field is usually
+displayed in the left footer of the page and is typically "source"
+data indicating the software system or product that the item
+documented in the man page belongs to, often in the form
+<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>;
+for example, "GTK+ 1.2" (from the <literal>gtk-options(7)</literal>
+man page).</para>
+
+<para>The default value for this parameter is reasonable but somewhat
+arbitrary. If you are processing pages with long "source" information,
+you may want to experiment with changing the value in order to achieve
+the correct aesthetic results.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.th.extra3.max.length">
+<refmeta>
+<refentrytitle>man.th.extra3.max.length</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra3.max.length</refname>
+<refpurpose>Maximum length of extra3 in header/footer</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.th.extra3.max.length.frag">
+&lt;xsl:param name="man.th.extra3.max.length"&gt;30&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximum permitted length of the
+<literal>extra3</literal> part of the man-page <literal>.TH</literal>
+title line header/footer. If the <literal>extra3</literal> content
+exceeds the maxiumum specified, it is truncated down to the maximum
+permitted length.</para>
+
+<para>The content of the <literal>extra3</literal> field is usually
+displayed in the middle header of the page and is typically a "manual
+name"; for example, "GTK+ User's Manual" (from the
+<literal>gtk-options(7)</literal> man page).</para>
+
+<para>The default value for this parameter is reasonable but somewhat
+arbitrary. If you are processing pages with long "manual names" -- or
+especially if you are processing pages that have both long "title"
+parts (command/function, etc. names) <emphasis>and</emphasis> long
+manual names -- you may want to experiment with changing the value in
+order to achieve the correct aesthetic results.</para>
+</refsection>
+</refentry>
+
+  </reference><reference id="output" xml:base="../manpages/param.xml">
+  <title>Output</title>
+<refentry version="5.0" id="man.output.manifest.enabled">
+  <refmeta>
+    <refentrytitle>man.output.manifest.enabled</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>man.output.manifest.enabled</refname>
+    <refpurpose>Generate a manifest file?</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting id="man.output.manifest.enabled.frag">&lt;xsl:param name="man.output.manifest.enabled" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>If non-zero, a list of filenames for man pages generated by
+    the stylesheet transformation is written to the file named by the
+    <parameter>man.output.manifest.filename</parameter> parameter.</para>
+
+  </refsection>
+</refentry>
+
+<refentry version="5.0" id="man.output.manifest.filename">
+  <refmeta>
+    <refentrytitle>man.output.manifest.filename</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>man.output.manifest.filename</refname>
+    <refpurpose>Name of manifest file</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting id="man.output.manifest.filename.frag">&lt;xsl:param name="man.output.manifest.filename"&gt;MAN.MANIFEST&lt;/xsl:param&gt;</programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>The <parameter>man.output.manifest.filename</parameter> parameter
+    specifies the name of the file to which the manpages manifest file
+    is written (if the value of the
+    <parameter>man.output.manifest.enabled</parameter> parameter is
+    non-zero).</para>
+
+  </refsection>
+</refentry>
+
+<refentry version="5.0" id="man.output.in.separate.dir">
+<refmeta>
+<refentrytitle>man.output.in.separate.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.in.separate.dir</refname>
+<refpurpose>Output man-page files in separate output directory?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.output.in.separate.dir.frag">
+&lt;xsl:param name="man.output.in.separate.dir" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <literal>man.output.in.separate.dir</literal>
+parameter is non-zero, man-page files are output in a separate
+directory, specified by the <parameter>man.output.base.dir</parameter>
+parameter; otherwise, if the value of
+<literal>man.output.in.separate.dir</literal> is zero, man-page files
+are not output in a separate directory.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.output.lang.in.name.enabled">
+<refmeta>
+<refentrytitle>man.output.lang.in.name.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.lang.in.name.enabled</refname>
+<refpurpose>Include $LANG value in man-page filename/pathname?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.output.lang.in.name.enabled.frag">
+&lt;xsl:param name="man.output.lang.in.name.enabled" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+  <para>The <parameter>man.output.lang.in.name.enabled</parameter>
+  parameter specifies whether a <literal>$lang</literal> value is
+  included in man-page filenames and pathnames.</para>
+
+  <para>If the value of
+  <parameter>man.output.lang.in.name.enabled</parameter> is non-zero,
+  man-page files are output with the <literal>$lang</literal> value
+  included in their filenames or pathnames as follows;
+
+  <itemizedlist>
+    <listitem>
+      <para>if <parameter>man.output.subdirs.enabled</parameter> is
+      non-zero, each file is output to, e.g., a
+      <filename>man/<replaceable>$lang</replaceable>/man8/foo.8</filename>
+      pathname</para>
+    </listitem>
+    <listitem>
+      <para>if <parameter>man.output.subdirs.enabled</parameter> is
+      zero, each file is output with a
+      <literal>foo.<replaceable>$lang</replaceable>.8</literal>
+      filename</para>
+    </listitem>
+  </itemizedlist>
+  </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.output.base.dir">
+<refmeta>
+<refentrytitle>man.output.base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.base.dir</refname>
+<refpurpose>Specifies separate output directory</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.output.base.dir.frag">&lt;xsl:param name="man.output.base.dir"&gt;man/&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.output.base.dir</parameter> parameter
+specifies the base directory into which man-page files are output. The
+<parameter>man.output.subdirs.enabled</parameter> parameter controls
+whether the files are output in subdirectories within the base
+directory.</para>
+
+<note>
+  <para>The values of the <parameter>man.output.base.dir</parameter>
+  and <parameter>man.output.subdirs.enabled</parameter> parameters are
+  used only if the value of
+  <parameter>man.output.in.separate.dir</parameter> parameter is
+  non-zero. If the value of the
+  <parameter>man.output.in.separate.dir</parameter> is zero, man-page
+  files are not output in a separate directory.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.output.subdirs.enabled">
+<refmeta>
+<refentrytitle>man.output.subdirs.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.subdirs.enabled</refname>
+<refpurpose>Output man-page files in subdirectories within base output directory?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.output.subdirs.enabled.frag">
+&lt;xsl:param name="man.output.subdirs.enabled" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.output.subdirs.enabled</parameter> parameter
+controls whether man-pages files are output in subdirectories within
+the base directory specified by the directory specified by the
+<parameter>man.output.base.dir</parameter> parameter.</para>
+
+<note>
+  <para>The values of the <parameter>man.output.base.dir</parameter>
+  and <parameter>man.output.subdirs.enabled</parameter> parameters are
+  used only if the value of
+  <parameter>man.output.in.separate.dir</parameter> parameter is
+  non-zero. If the value of the
+  <parameter>man.output.in.separate.dir</parameter> is zero, man-page
+  files are not output in a separate directory.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.output.quietly">
+<refmeta>
+<refentrytitle>man.output.quietly</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.quietly</refname>
+<refpurpose>Suppress filename messages emitted when generating output?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.output.quietly.frag">
+&lt;xsl:param name="man.output.quietly" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), for each man-page file created, a message
+with the name of the file is emitted. If non-zero, the files are
+output "quietly" -- that is, the filename messages are
+suppressed.</para>
+
+<tip>
+  <para>If you are processing a large amount of <tag>refentry</tag>
+  content, you may be able to speed up processing significantly by
+  setting a non-zero value for
+  <parameter>man.output.quietly</parameter>.</para>
+</tip>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.output.encoding">
+<refmeta>
+<refentrytitle>man.output.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.encoding</refname>
+<refpurpose>Encoding used for man-page output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.output.encoding.frag">
+&lt;xsl:param name="man.output.encoding"&gt;UTF-8&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the encoding to use for files generated
+by the manpages stylesheet. Not all processors support specification
+of this parameter.</para>
+
+<important>
+  <para>If the value of the <parameter>man.charmap.enabled</parameter>
+  parameter is non-zero (the default), keeping the
+  <parameter>man.output.encoding</parameter> parameter at its default
+  value (<literal>UTF-8</literal>) or setting it to
+  <literal>UTF-16</literal> <emphasis role="bold">does not cause your
+  man pages to be output in raw UTF-8 or UTF-16</emphasis> -- because
+  any Unicode characters for which matches are found in the enabled
+  character map will be replaced with roff escape sequences before the
+  final man-page files are generated.</para>
+
+  <para>So if you want to generate "real" UTF-8 man pages, without any
+  character substitution being performed on your content, you need to
+  set <parameter>man.charmap.enabled</parameter> to zero (which will
+  completely disable character-map processing). </para>
+
+  <para>You may also need to set
+  <parameter>man.charmap.enabled</parameter> to zero if you want to
+  output man pages in an encoding other than <literal>UTF-8</literal>
+  or <literal>UTF-16</literal>. Character-map processing is based on
+  Unicode character values and may not work with other output
+  encodings.</para>
+</important>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.output.better.ps.enabled">
+<refmeta>
+<refentrytitle>man.output.better.ps.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.better.ps.enabled</refname>
+<refpurpose>Enable enhanced print/PostScript output?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting id="man.output.better.ps.enabled.frag">
+&lt;xsl:param name="man.output.better.ps.enabled"&gt;0&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.output.better.ps.enabled</parameter> parameter is
+non-zero, certain markup is embedded in each generated man page
+such that PostScript output from the <command>man -Tps</command>
+command for that page will include a number of enhancements
+designed to improve the quality of that output.</para>
+
+<para>If <parameter>man.output.better.ps.enabled</parameter> is
+zero (the default), no such markup is embedded in generated man
+pages, and no enhancements are included in the PostScript
+output generated from those man pages by the <command>man
+ -Tps</command> command.</para>
+
+<warning>
+  <para>The enhancements provided by this parameter rely on
+    features that are specific to groff (GNU troff) and that are
+    not part of &#8220;classic&#8221; AT&amp;T troff or any of its
+    derivatives. Therefore, any man pages you generate with this
+    parameter enabled will be readable only on systems on which
+    the groff (GNU troff) program is installed, such as GNU/Linux
+    systems. The pages <emphasis role="bold">will not not be
+      readable on systems on with the classic troff (AT&amp;T
+      troff) command is installed</emphasis>.</para>
+</warning>
+
+<para>The value of this parameter only affects PostScript output
+  generated from the <command>man</command> command. It has no
+  effect on output generated using the FO backend.</para>
+
+<tip>
+  <para>You can generate PostScript output for any man page by
+    running the following command:</para>
+  <programlisting>  man <replaceable>FOO</replaceable> -Tps &gt; <replaceable>FOO</replaceable>.ps</programlisting>
+  <para>You can then generate PDF output by running the following
+    command:</para>
+  <programlisting>  ps2pdf <replaceable>FOO</replaceable>.ps</programlisting>
+</tip>
+
+</refsection>
+</refentry>
+
+  </reference><reference id="other" xml:base="../manpages/param.xml">
+  <title>Other</title>
+<refentry version="5.0" id="man.table.footnotes.divider">
+<refmeta>
+<refentrytitle>man.table.footnotes.divider</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.table.footnotes.divider</refname>
+<refpurpose>Specifies divider string that appears before table footnotes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.table.footnotes.divider.frag">
+&lt;xsl:param name="man.table.footnotes.divider"&gt;----&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In each table that contains footenotes, the string specified by
+the <parameter>man.table.footnotes.divider</parameter> parameter is
+output before the list of footnotes for the table.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.subheading.divider.enabled">
+<refmeta>
+<refentrytitle>man.subheading.divider.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.subheading.divider.enabled</refname>
+<refpurpose>Add divider comment to roff source before/after subheadings?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.subheading.divider.enabled.frag">
+&lt;xsl:param name="man.subheading.divider.enabled"&gt;0&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.subheading.divider.enabled</parameter> parameter is
+non-zero, the contents of the
+<parameter>man.subheading.divider</parameter> parameter are used to
+add a "divider" before and after subheadings in the roff
+output. <emphasis role="bold">The divider is not visisble in the
+rendered man page</emphasis>; it is added as a comment, in the source,
+simply for the purpose of increasing reability of the source.</para>
+
+<para>If <parameter>man.subheading.divider.enabled</parameter> is zero
+(the default), the subheading divider is suppressed.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="man.subheading.divider">
+<refmeta>
+<refentrytitle>man.subheading.divider</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.subheading.divider</refname>
+<refpurpose>Specifies string to use as divider comment before/after subheadings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="man.subheading.divider.frag">
+&lt;xsl:param name="man.subheading.divider"&gt;========================================================================&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.subheading.divider.enabled</parameter> parameter is
+non-zero, the contents of the
+<parameter>man.subheading.divider</parameter> parameter are used to
+add a "divider" before and after subheadings in the roff
+output. <emphasis role="bold">The divider is not visisble in the
+rendered man page</emphasis>; it is added as a comment, in the source,
+simply for the purpose of increasing reability of the source.</para>
+
+<para>If <parameter>man.subheading.divider.enabled</parameter> is zero
+(the default), the subheading divider is suppressed.</para>
+
+</refsection>
+</refentry>
+
+  </reference>
+    </part>
+    <part id="roundtrip">
+      <?dbhtml dir="roundtrip"?>
+      <?dbhtml filename="index.html"?>
+      <title xml:base="../roundtrip/param.xml">Roundtrip Parameter Reference</title>
+      <partintro id="roundtripintro">
+        
+      <para xml:base="../roundtrip/param.xml">This is reference documentation for all user-configurable
+      parameters in the DocBook &#8220;Roundtrip&#8221; Stylesheets (for
+      transforming DocBook to WordML, OpenDocument, and Apple Pages,
+      and for converting from those formats back to DocBook).</para>
+    
+      </partintro>
+      
+  
+<refentry version="5.0" id="wordml.template" xml:base="../roundtrip/param.xml">
+<refmeta>
+<refentrytitle>wordml.template</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>wordml.template</refname>
+<refpurpose>Specify the template WordML document</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="wordml.template.frag">
+&lt;xsl:param name="wordml.template"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>wordml.template</parameter> parameter specifies a WordML document to use as a template for the generated document.  The template document is used to define the (extensive) headers for the generated document, in particular the paragraph and character styles that are used to format the various elements.  Any content in the template document is ignored.</para>
+
+<para>A template document is used in order to allow maintenance of the paragraph and character styles to be done using Word itself, rather than these XSL stylesheets.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="pages.template" xml:base="../roundtrip/param.xml">
+<refmeta>
+<refentrytitle>pages.template</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>pages.template</refname>
+<refpurpose>Specify the template Pages document</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="pages.template.frag">
+&lt;xsl:param name="pages.template"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>pages.template</parameter> parameter specifies a Pages (the Apple word processing application) document to use as a template for the generated document.  The template document is used to define the (extensive) headers for the generated document, in particular the paragraph and character styles that are used to format the various elements.  Any content in the template document is ignored.</para>
+
+<para>A template document is used in order to allow maintenance of the paragraph and character styles to be done using Pages itself, rather than these XSL stylesheets.</para>
+
+</refsection>
+</refentry>
+
+  
+    </part>
+    <part id="slides"><title>Slides Parameter Reference</title>
+      <?dbhtml dir="slides"?>
+      <?dbhtml filename="index.html"?>
+      <partintro id="slidesintro">
+        <para>This is reference documentation for all
+          user-configurable parameters in the DocBook XSL Slides
+          stylesheets (for generating HTML and PDF slide
+          presentations).</para>
+        <note>
+          <para>The Slides stylesheet for HTML output is a
+            customization layer of the DocBook XSL HTML
+            stylesheet; 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 xlink:href="../html">HTML stylesheet
+              parameters</link> and <link xlink:href="../fo">FO
+              stylesheet parameters</link> to control Slides
+            output.</para>
+        </note>
+      </partintro>
+      <reference id="html" xml:base="../slides/html/param.xml">
+<title>HTML: General Parameters</title>
+<refentry version="5.0" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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 id="frames" xml:base="../slides/html/param.xml">
+<title>HTML: Frames Parameters</title>
+<refentry version="5.0" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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 id="graphics" xml:base="../slides/html/param.xml">
+<title>HTML: Graphics Parameters</title>
+<refentry version="5.0" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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 id="javascript" xml:base="../slides/html/param.xml">
+<title>HTML: JavaScript Parameters</title>
+<refentry version="5.0" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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 id="l10n" xml:base="../slides/html/param.xml">
+<title>HTML: Localization Parameters</title>
+<refentry version="5.0" 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 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" 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 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" 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 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" 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 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" 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 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>
+      <reference id="fo" xml:base="../slides/fo/param.xml">
+  <title>FO: General Params</title>
+<refentry version="5.0" 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 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" 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 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" 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 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" 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 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 id="propsets" xml:base="../slides/fo/param.xml">
+  <title>FO: Property Sets</title>
+<refentry version="5.0" 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 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" 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 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" 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 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" 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 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" 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 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" 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 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>
+    </part>
+    <part id="website">
+      <?dbhtml dir="website"?>
+      <?dbhtml filename="index.html"?>
+      <title xml:base="../website/param.xml">Website Parameter Reference</title>
+      <partintro id="websiteintro">
+        
+  <para xml:base="../website/param.xml">This is reference documentation for all user-configurable
+    parameters in the DocBook XSL Website stylesheet (for
+    generating websites from DocBook XML sources). Note that the
+    Website stylesheet is a customization layer of the DocBook XSL
+    HTML stylesheet.  Therefore, in addition to the
+    Website-specific parameters listed in this section, you can
+    also use a number of <link xlink:href="../html/">HTML
+     stylesheet parameters</link> to control Website output.</para>
+
+      </partintro>
+      <reference id="general" xml:base="../website/param.xml">
+<title>General Parameters</title>
+<refentry version="5.0" id="autolayout-file">
+<refmeta>
+<refentrytitle>autolayout-file</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>autolayout-file</refname>
+<refpurpose>Identifies the autolayout.xml file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="autolayout-file.frag">
+&lt;xsl:param name="autolayout-file"&gt;autolayout.xml&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>When the source pages are spread over several directories, this
+parameter can be set (for example, from the command line of a batch-mode
+XSLT processor) to indicate the location of the autolayout.xml file.</para>
+<para>FIXME: for browser-based use, there needs to be a PI for this...
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="body.attributes">
+<refmeta>
+<refentrytitle>body.attributes</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.attributes</refname>
+<refpurpose>DEPRECATED</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="body.attributes.frag">
+&lt;xsl:attribute-set name="body.attributes"&gt;
+  &lt;xsl:attribute name="bgcolor"&gt;white&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text"&gt;black&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="link"&gt;#0000FF&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="vlink"&gt;#840084&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="alink"&gt;#0000FF&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>DEPRECATED</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="currentpage.marker">
+<refmeta>
+<refentrytitle>currentpage.marker</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>currentpage.marker</refname>
+<refpurpose>The text symbol used to mark the current page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="currentpage.marker.frag">
+&lt;xsl:param name="currentpage.marker"&gt;@&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Character to use as identifying the current page in </para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="dry-run">
+<refmeta>
+<refentrytitle>dry-run</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>dry-run</refname>
+<refpurpose>Indicates that no files should be produced</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+  <programlisting id="dry-run.frag">
+    &lt;xsl:param name="dry-run" select="0"&gt;&lt;/xsl:param&gt;
+  </programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>When using the XSLT processor to manage dependencies and construct
+the website, this parameter can be used to suppress the generation of
+new and updated files. Effectively, this allows you to see what the
+stylesheet would do, without actually making any changes.</para>
+<para>Only applies when XSLT-based chunking is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="feedback.href">
+<refmeta>
+<refentrytitle>feedback.href</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>feedback.href</refname>
+<refpurpose>HREF (URI) for feedback link</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="feedback.href.frag">
+&lt;xsl:param name="feedback.href"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The <varname>feedback.href</varname> value is used as the value
+for the <tag class="attribute">href</tag> attribute on the feedback
+link. If <varname>feedback.href</varname>
+is empty, no feedback link is generated.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="feedback.link.text">
+<refmeta>
+<refentrytitle>feedback.link.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>feedback.link.text</refname>
+<refpurpose>The text of the feedback link</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="feedback.link.text.frag">
+&lt;xsl:param name="feedback.link.text"&gt;Feedback&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The contents of this variable is used as the text of the feedback
+link if <varname>feedback.href</varname> is not empty. If
+<varname>feedback.href</varname> is empty, no feedback link is
+generated.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="feedback.with.ids">
+<refmeta>
+<refentrytitle>feedback.with.ids</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>feedback.with.ids</refname>
+<refpurpose>Toggle use of IDs in feedback</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="feedback.with.ids.frag">
+&lt;xsl:param name="feedback.with.ids" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>feedback.with.ids</varname> is non-zero, the ID of the
+current page will be added to the feedback link. This can be used, for
+example, if the <varname>feedback.href</varname> is a CGI script.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="filename-prefix">
+<refmeta>
+<refentrytitle>filename-prefix</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>filename-prefix</refname>
+<refpurpose>Prefix added to all filenames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="filename-prefix.frag">
+&lt;xsl:param name="filename-prefix"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>To produce the <quote>text-only</quote> (that is, non-tabular) layout
+of a website simultaneously with the tabular layout, the filenames have to
+be distinguished. That's accomplished by adding the
+<varname>filename-prefix</varname> to the front of each filename.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="footer.hr">
+<refmeta>
+<refentrytitle>footer.hr</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.hr</refname>
+<refpurpose>Toggle &lt;HR&gt; before footer</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="footer.hr.frag">
+&lt;xsl:param name="footer.hr" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, an &lt;HR&gt; is generated at the bottom of each web page,
+before the footer.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="header.hr">
+<refmeta>
+<refentrytitle>header.hr</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.hr</refname>
+<refpurpose>Toggle &lt;HR&gt; after header</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="header.hr.frag">
+&lt;xsl:param name="header.hr" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, an &lt;HR&gt; is generated at the bottom of each web page,
+before the footer.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="output-root">
+<refmeta>
+<refentrytitle>output-root</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>output-root</refname>
+<refpurpose>Specifies the root directory of the website</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="output-root.frag">
+&lt;xsl:param name="output-root"&gt;.&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>When using the XSLT processor to manage dependencies and construct
+the website, this parameter can be used to indicate the root directory
+where the resulting pages are placed.</para>
+<para>Only applies when XSLT-based chunking is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="rebuild-all">
+<refmeta>
+<refentrytitle>rebuild-all</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>rebuild-all</refname>
+<refpurpose>Indicates that all files should be produced</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="rebuild-all.frag">
+&lt;xsl:param name="rebuild-all" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>When using the XSLT processor to manage dependencies and construct
+the website, this parameter can be used to regenerate the whole website,
+updating even pages that don't appear to need to be updated.</para>
+<para>The dependency extension only looks at the source documents. So
+if you change something in the stylesheet, for example, that has a global
+effect, you can use this parameter to force the stylesheet to rebuild the
+whole website.
+</para>
+<para>Only applies when XSLT-based chunking is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="sequential.links">
+<refmeta>
+<refentrytitle>sequential.links</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sequential.links</refname>
+<refpurpose>Make sequentional links?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="sequential.links.frag">
+&lt;xsl:param name="sequential.links" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>FIXME</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="suppress.homepage.title">
+<refmeta>
+<refentrytitle>suppress.homepage.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>suppress.homepage.title</refname>
+<refpurpose>Suppress title on homepage?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="suppress.homepage.title.frag">
+&lt;xsl:param name="suppress.homepage.title" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>FIXME:If non-zero, the title on the homepage is suppressed?</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="table.spacer.image">
+<refmeta>
+<refentrytitle>table.spacer.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.spacer.image</refname>
+<refpurpose>Invisible pixel for tabular accessibility</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="table.spacer.image.frag">
+&lt;xsl:param name="table.spacer.image"&gt;graphics/spacer.gif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>This is the 1x1 pixel, transparent pixel used for <link xlink:href="http://diveintoaccessibility.org/day_10_presenting_your_main_content_first.html">the table trick</link> to increase the accessibility of the tabular
+website presentation.</para>
+</refsection>
+</refentry>
+
+</reference><reference id="nav" xml:base="../website/param.xml">
+<title>Navigation Parameters</title>
+<refentry version="5.0" id="banner.before.navigation">
+<refmeta>
+<refentrytitle>banner.before.navigation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>banner.before.navigation</refname>
+<refpurpose>Put banner before navigation?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="banner.before.navigation.frag">
+&lt;xsl:param name="banner.before.navigation" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>FIXME</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="navbgcolor">
+<refmeta>
+<refentrytitle>navbgcolor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navbgcolor</refname>
+<refpurpose>The background color of the navigation TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="navbgcolor.frag">
+&lt;xsl:param name="navbgcolor"&gt;#4080FF&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The background color of the navigation TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="navbodywidth">
+<refmeta>
+<refentrytitle>navbodywidth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navbodywidth</refname>
+<refpurpose>Specifies the width of the navigation table body</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="navbodywidth.frag">
+&lt;xsl:param name="navbodywidth"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The width of the body column.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="nav.table.summary">
+<refmeta>
+<refentrytitle>nav.table.summary</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nav.table.summary</refname>
+<refpurpose>HTML Table summary attribute value for navigation tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="nav.table.summary.frag">
+&lt;xsl:param name="nav.table.summary"&gt;Navigation&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The value of this parameter is used as the value of the table
+summary attribute for the navigation table.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="navtocwidth">
+<refmeta>
+<refentrytitle>navtocwidth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navtocwidth</refname>
+<refpurpose>Specifies the width of the navigation table TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="navtocwidth.frag">
+&lt;xsl:param name="navtocwidth"&gt;220&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The width, in pixels, of the navigation column.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="textbgcolor">
+<refmeta>
+<refentrytitle>textbgcolor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>textbgcolor</refname>
+<refpurpose>The background color of the table body</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="textbgcolor.frag">
+&lt;xsl:param name="textbgcolor"&gt;white&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The background color of the table body.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+</reference><reference id="toc" xml:base="../website/param.xml">
+<title>ToC Parameters</title>
+<refentry version="5.0" id="toc.blank.graphic">
+<refmeta>
+<refentrytitle>toc.blank.graphic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.blank.graphic</refname>
+<refpurpose>Use graphic for "blanks" in TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.blank.graphic.frag">
+&lt;xsl:param name="toc.blank.graphic" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, "blanks" in the the TOC will be accomplished
+with the graphic identified by <varname>toc.spacer.image</varname>.
+</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.blank.image">
+<refmeta>
+<refentrytitle>toc.blank.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.blank.image</refname>
+<refpurpose>The image for "blanks" in the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.blank.image.frag">
+&lt;xsl:param name="toc.blank.image"&gt;graphics/blank.gif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.blank.graphic</varname> is non-zero, this image
+will be used to for "blanks" in the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.blank.text">
+<refmeta>
+<refentrytitle>toc.blank.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.blank.text</refname>
+<refpurpose>The text for "blanks" in the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.blank.text.frag">
+&lt;xsl:param name="toc.blank.text"&gt;&#160;&#160;&#160;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.blank.graphic</varname> is zero, this text string
+will be used for "blanks" in the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.pointer.graphic">
+<refmeta>
+<refentrytitle>toc.pointer.graphic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.pointer.graphic</refname>
+<refpurpose>Use graphic for TOC pointer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.pointer.graphic.frag">
+&lt;xsl:param name="toc.pointer.graphic" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, the "pointer" in the TOC will be displayed
+with the graphic identified by <varname>toc.pointer.image</varname>.
+</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.pointer.image">
+<refmeta>
+<refentrytitle>toc.pointer.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.pointer.image</refname>
+<refpurpose>The image for the "pointer" in the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.pointer.image.frag">
+&lt;xsl:param name="toc.pointer.image"&gt;graphics/arrow.gif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.pointer.graphic</varname> is non-zero, this image
+will be used for the "pointer" in the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.pointer.text">
+<refmeta>
+<refentrytitle>toc.pointer.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.pointer.text</refname>
+<refpurpose>The text for the "pointer" in the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.pointer.text.frag">
+&lt;xsl:param name="toc.pointer.text"&gt;&#160;&gt;&#160;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.pointer.graphic</varname> is zero, this text string
+will be used to display the "pointer" in the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.spacer.graphic">
+<refmeta>
+<refentrytitle>toc.spacer.graphic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.spacer.graphic</refname>
+<refpurpose>Use graphic for TOC spacer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.spacer.graphic.frag">
+&lt;xsl:param name="toc.spacer.graphic" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, the indentation in the TOC will be accomplished
+with the graphic identified by <varname>toc.spacer.image</varname>.
+</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.spacer.image">
+<refmeta>
+<refentrytitle>toc.spacer.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.spacer.image</refname>
+<refpurpose>The image for spacing the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.spacer.image.frag">
+&lt;xsl:param name="toc.spacer.image"&gt;graphics/blank.gif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.spacer.graphic</varname> is non-zero, this image
+will be used to indent the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" id="toc.spacer.text">
+<refmeta>
+<refentrytitle>toc.spacer.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.spacer.text</refname>
+<refpurpose>The text for spacing the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting id="toc.spacer.text.frag">
+&lt;xsl:param name="toc.spacer.text"&gt;&#160;&#160;&#160;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.spacer.graphic</varname> is zero, this text string
+will be used to indent the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+</reference>
+    </part>
+   <!-- Prepare WebHelp output
+    <part xml:id="webhelp">
+      <?dbhtml dir="webhelp"?>
+      <?dbhtml filename="index.html"?>
+      <xi:include href="../webhelp/param.xml" xpointer="xpointer(/book/info/title)" />
+      <partintro xml:id="webhelpintro">
+        <xi:include href="../webhelp/param.xml" xpointer="xpointer(/book/info/abstract/node())" />
+      </partintro>
+      <xi:include href="../webhelp/param.xml" xpointer="xpointer(/book/reference)" />
+    </part>
+   -->
+  </book>
+ 
+  <book id="pi"><title>DocBook XSL Stylesheets User&#160;Reference:&#160;PIs</title>
+    <?dbhtml dir="pi"?>
+    <?dbhtml filename="index.html"?>
+    <info>
+      <abstract>
+        <para>This is generated reference documentation for all
+          user-specifiable processing instructions in the DocBook
+          XSL stylesheets.
+          <note>
+            <para>You add these PIs at particular points in a document to
+              cause specific &#8220;exceptions&#8221; to formatting/output behavior. To
+              make global changes in formatting/output behavior across an
+              entire document, it&#8217;s better to do it by setting an
+              appropriate stylesheet parameter (if there is one).</para>
+          </note>
+        </para>
+      </abstract>
+    </info>
+    <part id="pi-html">
+      <info xml:base="../html/pi.xml"><title>HTML Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id: pi.xsl 9022 2011-07-14 19:21:36Z bobstayton $
+    </releaseinfo>
+  </info>
+  <partintro id="partintro" xml:base="../html/pi.xml">
+    <title>Introduction</title>
+    
+<para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the DocBook
+      XSL stylesheets for HTML output.
+      <note>
+        
+<para>You add these PIs at particular points in a document to
+          cause specific &#8220;exceptions&#8221; to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it&#8217;s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+
+      </note>
+    </para>
+
+  </partintro>
+
+<refentry id="dbhtml_background-color" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_background-color</refname>
+<refpurpose>Sets background color for an image</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml background-color="<replaceable>color</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml background-color</tag> PI before or
+      after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
+      <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
+      sibling to the element, to set a background color for the
+      image.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
+        <listitem>
+          
+<para>An HTML color value</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="BGcolor.html">Background color</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_bgcolor" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_bgcolor</refname>
+<refpurpose>Sets background color on a CALS table row or table cell</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml bgcolor</tag> PI as child of a CALS table row
+      or cell to set a background color for that table row or cell.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
+        <listitem>
+          
+<para>An HTML color value</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="BGtableColor.html#CellBGColor">Cell background color</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_cellpadding" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_cellpadding</refname>
+<refpurpose>Specifies cellpadding in CALS table or qandaset output</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml cellpadding="<replaceable>number</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml cellpadding</tag> PI as a child of a
+      CALS <tag>table</tag> or <tag>qandaset</tag> to specify the value
+      for the HTML <literal>cellpadding</literal> attribute in the
+      output HTML table.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>cellpadding="<replaceable>number</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the cellpadding</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>html.cellpadding</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="CellSpacing.html">Cell spacing and cell padding</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_cellspacing" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_cellspacing</refname>
+<refpurpose>Specifies cellspacing in CALS table or qandaset output</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml cellspacing="<replaceable>number</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml cellspacing</tag> PI as a child of a
+      CALS <tag>table</tag> or <tag>qandaset</tag> to specify the value
+      for the HTML <literal>cellspacing</literal> attribute in the
+      output HTML table.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>cellspacing="<replaceable>number</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the cellspacing</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>html.cellspacing</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="CellSpacing.html">Cell spacing and cell padding</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+
+    </refsect1></refentry>
+
+<refentry id="dbhtml_class" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_class</refname>
+<refpurpose>Set value of the class attribute for a CALS table row</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml class="<replaceable>name</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml class</tag> PI as a child of a
+      <tag>row</tag> to specify a <literal>class</literal>
+      attribute and value in the HTML output for that row.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>class="<replaceable>name</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the class name</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="CSSTableCells.html">Table styles in HTML output</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_dir" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_dir</refname>
+<refpurpose>Specifies a directory name in which to write files</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml dir="<replaceable>path</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>When chunking output, use the <tag class="xmlpi">dbhtml dir</tag> PI
+      as a child of a chunk source to cause the output of that
+      chunk to be written to the specified directory; also, use it
+      as a child of a <tag>mediaobject</tag> to specify a
+      directory into which any long-description files for that
+      <tag>mediaobject</tag> will be written.</para>
+
+
+
+<para>The output directory specification is inherited by all
+chunks of the descendants of the element.  If descendants need
+to go to a different directory, then add another 
+<tag class="xmlpi">dbhtml dir</tag> processing
+instruction as a child of the source element
+for that chunk, and specify the path relative to the
+ancestor path.</para>
+
+
+
+<para>For example, to put most chunk files into 
+<filename class="directory">shared</filename>
+but one chapter into 
+<filename class="directory">exception</filename>
+at the same level, use:</para>
+
+
+<programlisting>&lt;book&gt;
+  &lt;?dbhtml dir="shared"?&gt;
+  ...
+  &lt;chapter&gt;
+    &lt;?dbhtml dir="../exception"?&gt;
+  &lt;/chapter&gt;
+&lt;/book&gt;
+</programlisting>
+
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>dir="<replaceable>path</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the pathname for the directory</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>base.dir</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Chunking.html#dbhtmlDirPI">dbhtml dir processing instruction</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_filename" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_filename</refname>
+<refpurpose>Specifies a filename for a chunk</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml filename="<replaceable>filename</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>When chunking output, use the <tag class="xmlpi">dbhtml filename</tag>
+      PI as a child of a chunk source to specify a filename for
+      the output file for that chunk. Include the filename suffix.</para>
+
+
+
+<para>You cannot include a directory path in the filename value,
+or your links may not work.  Add a 
+<tag class="xmlpi">dbhtml dir</tag> processing instruction
+to specify the output directory. You can also combine the two
+specifications in one processing instruction: 
+<tag class="xmlpi">dbhtml dir="mydir" filename="myfile.html"</tag>.</para>
+
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>filename="<replaceable>path</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the filename for the file</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>use.id.as.filename</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Chunking.html#DbhtmlFilenames">dbhtml filenames</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_funcsynopsis-style" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_funcsynopsis-style</refname>
+<refpurpose>Specifies presentation style for a funcsynopsis</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml funcsynopsis-style="kr"|"ansi"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml funcsynopsis-style</tag> PI as a child of
+      a <tag>funcsynopsis</tag> or anywhere within a funcsynopsis
+      to control the presentation style for output of all
+      <tag>funcprototype</tag> instances within that funcsynopsis.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>funcsynopsis-style="kr"</term>
+        <listitem>
+          
+<para>Displays <tag>funcprototype</tag> output in K&amp;R style</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>funcsynopsis-style="ansi"</term>
+        <listitem>
+          
+<para>Displays <tag>funcprototype</tag> output in ANSI style</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>funcsynopsis.style</parameter></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_img.src.path" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_img.src.path</refname>
+<refpurpose>Specifies a path to the location of an image file</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml img.src.path="<replaceable>path</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml img.src.path</tag> PI before or
+      after an image (<tag>graphic</tag>,
+      <tag>inlinegraphic</tag>, <tag>imagedata</tag>, or
+      <tag>videodata</tag> element) as a sibling to the element,
+      to specify a path to the location of the image; in HTML
+      output, the value specified for the
+      <code>img.src.path</code> attribute is prepended to the
+      filename.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>img.src.path="<replaceable>path</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the pathname to prepend to the name of the image file</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>img.src.path</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="GraphicsLocations.html#UsingFileref">Using fileref</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_label-width" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_label-width</refname>
+<refpurpose>Specifies the label width for a qandaset</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml label-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml label-width</tag> PI as a child of a
+      <tag>qandaset</tag> to specify the width of labels.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the label width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_linenumbering.everyNth" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_linenumbering.everyNth</refname>
+<refpurpose>Specifies interval for line numbers in verbatims</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml linenumbering.everyNth</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the interval at which lines are numbered.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies numbering interval; a number is output
+            before every <replaceable>N</replaceable>th line</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>linenumbering.everyNth</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_linenumbering.separator" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_linenumbering.separator</refname>
+<refpurpose>Specifies separator text for line numbers in verbatims</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml linenumbering.separator</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the separator text output between the line numbers and content.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the text (zero or more characters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>linenumbering.separator</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_linenumbering.width" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_linenumbering.width</refname>
+<refpurpose>Specifies width for line numbers in verbatims</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml linenumbering.width</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the width set aside for line numbers.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the width (inluding units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>linenumbering.width</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_list-presentation" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_list-presentation</refname>
+<refpurpose>Specifies presentation style for a variablelist or
+    segmentedlist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml list-presentation="list"|"table"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml list-presentation</tag> PI as a child of
+      a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
+      control the presentation style for the list (to cause it, for
+      example, to be displayed as a table).</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>list-presentation="list"</term>
+        <listitem>
+          
+<para>Displays the list as a list</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="table"</term>
+        <listitem>
+          
+<para>Displays the list as a table</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<itemizedlist>
+      <listitem>
+        
+<para><parameter>variablelist.as.table</parameter></para>
+
+      </listitem>
+      <listitem>
+        
+<para><parameter>segmentedlist.as.table</parameter></para>
+
+      </listitem>
+    </itemizedlist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_list-width" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_list-width</refname>
+<refpurpose>Specifies the width of a variablelist or simplelist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml list-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml list-width</tag> PI as a child of a
+      <tag>variablelist</tag> or a <tag>simplelist</tag> presented
+      as a table, to specify the output width.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the output width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_row-height" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_row-height</refname>
+<refpurpose>Specifies the height for a CALS table row</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml row-height="<replaceable>height</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml row-height</tag> PI as a child of a
+      <tag>row</tag> to specify the height of the row.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>row-height="<replaceable>height</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the row height (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="RowHeight.html">Row height</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_start" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_start</refname>
+<refpurpose>(obsolete) Sets the starting number on an ordered list</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml start="<replaceable>character</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para><emphasis>This PI is obsolete</emphasis>. The intent of
+      this PI was to provide a means for setting a specific starting
+      number for an ordered list. Instead of this PI, set a value
+      for the <literal>override</literal> attribute on the first
+      <tag>listitem</tag> in the list; that will have the same
+      effect as what this PI was intended for.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>start="<replaceable>character</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the character to use as the starting
+            number; use 0-9, a-z, A-Z, or lowercase or uppercase
+            Roman numerals</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Orderedlists.html#ListStartNum">List starting number</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_stop-chunking" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_stop-chunking</refname>
+<refpurpose>Do not chunk any descendants of this element.</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml stop-chunking</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>When generating chunked HTML output, adding this PI as the child of an element that contains elements that would normally be generated on separate pages if generating chunked output causes chunking to stop at this point. No descendants of the current element will be split into new HTML pages:
+<programlisting>&lt;section&gt;
+&lt;title&gt;Configuring pencil&lt;/title&gt;
+&lt;?dbhtml stop-chunking?&gt;
+
+...
+
+&lt;/section&gt;</programlisting>
+</para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Chunking.html">Chunking into multiple HTML files</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_table-summary" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_table-summary</refname>
+<refpurpose>Specifies summary for CALS table, variablelist, segmentedlist, or qandaset output</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml table-summary="<replaceable>text</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml table-summary</tag> PI as a child of
+      a CALS <tag>table</tag>, <tag>variablelist</tag>,
+      <tag>segmentedlist</tag>, or <tag>qandaset</tag> to specify
+      the text for the HTML <literal>summary</literal> attribute
+      in the output HTML table.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>table-summary="<replaceable>text</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the summary text (zero or more characters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link>,
+      <link role="tcg" xlink:href="TableSummary.html">Table summary text</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_table-width" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_table-width</refname>
+<refpurpose>Specifies the width for a CALS table</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml table-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml table-width</tag> PI as a child of a
+      CALS <tag>table</tag> to specify the width of the table in
+      output.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the table width (including units or as a percentage)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>default.table.width</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Tables.html#TableWidth">Table width</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_term-presentation" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_term-presentation</refname>
+<refpurpose>Sets character formatting for terms in a variablelist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml term-presentation="bold"|"italic"|"bold-italic"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml term-presentation</tag> PI as a child
+      of a <tag>variablelist</tag> to set character formatting for
+      the <tag>term</tag> output of the list.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>term-presentation="<replaceable>bold</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies that terms are displayed in bold</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>term-presentation="<replaceable>italic</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies that terms are displayed in italic</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>term-presentation="<replaceable>bold-italic</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies that terms are displayed in bold-italic</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_term-separator" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_term-separator</refname>
+<refpurpose>Specifies separator text among terms in a varlistentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml term-separator="<replaceable>text</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml term-separator</tag> PI as a child
+      of a <tag>variablelist</tag> to specify the separator text
+      among <tag>term</tag> instances.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>term-separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the text (zero or more characters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>variablelist.term.separator</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_term-width" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_term-width</refname>
+<refpurpose>Specifies the term width for a variablelist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml term-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml term-width</tag> PI as a child of a
+      <tag>variablelist</tag> to specify the width for
+      <tag>term</tag> output.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the term width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml_toc" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml_toc</refname>
+<refpurpose>Specifies whether a TOC should be generated for a qandaset</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml toc="0"|"1"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml toc</tag> PI as a child of a
+      <tag>qandaset</tag> to specify whether a table of contents
+      (TOC) is generated for the <tag>qandaset</tag>.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>toc="0"</term>
+        <listitem>
+          
+<para>If zero, no TOC is generated</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>toc="1"</term>
+        <listitem>
+          
+<para>If <code>1</code> (or any non-zero value),
+            a TOC is generated</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="QandAtoc.html">Q and A list of questions</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbcmdlist" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbcmdlist</refname>
+<refpurpose>Generates a hyperlinked list of commands</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbcmdlist</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbcmdlist</tag> PI as the child of any
+      element (for example, <tag>refsynopsisdiv</tag>) containing multiple
+      <tag>cmdsynopsis</tag> instances; a hyperlinked navigational
+      &#8220;command list&#8221; will be generated at the top of output for that
+      element, enabling users to quickly jump
+      to each command synopsis.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<para>[No parameters]</para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfunclist" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbfunclist</refname>
+<refpurpose>Generates a hyperlinked list of functions</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfunclist</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfunclist</tag> PI as the child of any
+      element (for example, <tag>refsynopsisdiv</tag>) containing multiple
+      <tag>funcsynopsis</tag> instances; a hyperlinked
+      navigational &#8220;function list&#8221; will be generated at the top of
+      output for that element, enabling users to quickly
+      jump to to each function synopsis.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<para>[No parameters]</para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhtml-include_href" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhtml-include_href</refname>
+<refpurpose>Copies an external well-formed HTML/XML file into current doc</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml-include href="<replaceable>URI</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml-include href</tag> PI anywhere in a
+      document to cause the contents of the file referenced by the
+      <code>href</code> pseudo-attribute to be copied/inserted &#8220;as
+      is&#8221; into your HTML output at the point in document order
+      where the PI occurs in the source.</para>
+
+    <note>
+      
+<para>The referenced file may contain plain text (as long as
+        it is &#8220;wrapped&#8221; in an <tag>html</tag> element &#8212; see the
+        note below) or markup in any arbitrary vocabulary,
+        including HTML &#8212; but it must conform to XML
+        well-formedness constraints (because the feature in XSLT
+        1.0 for opening external files, the
+        <function>document()</function> function, can only handle
+        files that meet XML well-formedness constraints).</para>
+
+      
+<para>Among other things, XML well-formedness constraints
+        require a document to have <emphasis>a single root
+          element</emphasis>. So if the content you want to
+        include is plain text or is markup that does
+        <emphasis>not</emphasis> have a single root element,
+        <emphasis role="strong">wrap the content in an
+          <tag>html</tag> element</emphasis>. The stylesheets will
+        strip out that surrounding <tag>html</tag> &#8220;wrapper&#8221; when
+        they find it, leaving just the content you want to
+        insert.</para>
+
+    </note>
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>href="<replaceable>URI</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the URI for the file to include; the URI
+            can be, for example, a remote <literal>http:</literal>
+            URI, or a local filesystem <literal>file:</literal>
+            URI</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>textinsert.extension</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="InsertExtHtml.html">Inserting external HTML code</link>,
+      <link role="tcg" xlink:href="ExternalCode.html">External code files</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbhh" xml:base="../html/pi.xml">
+<refnamediv>
+<refname>dbhh</refname>
+<refpurpose>Sets topic name and topic id for context-sensitive HTML Help</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhh topicname="<replaceable>name</replaceable>" topicid="<replaceable>id</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhh</tag> PI as a child of components
+      that should be used as targets for context-sensitive help requests.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>topicname="<replaceable>name</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies a unique string constant that identifies a help topic</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>topicid="<replaceable>id</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies a unique integer value for the <literal>topicname</literal> string</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="HtmlHelp.html#HHContextHelp">Context-sensitive help</link></para>
+
+  </refsect1></refentry>
+
+    </part>
+    <part id="pi-fo">
+      <info xml:base="../fo/pi.xml"><title>FO Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id: pi.xsl 9267 2012-04-03 20:23:45Z bobstayton $
+    </releaseinfo>
+  </info>
+
+  <partintro id="partintro" xml:base="../fo/pi.xml">
+    <title>Introduction</title>
+
+    
+<para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the DocBook
+      XSL stylesheets for FO output.
+      <note>
+        
+<para>You add these PIs at particular points in a document to
+          cause specific &#8220;exceptions&#8221; to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it&#8217;s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+
+      </note>
+    </para>
+
+  </partintro>
+
+<refentry id="dbfo_background-color" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_background-color</refname>
+<refpurpose>Sets background color for an image</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo background-color="<replaceable>color</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo background-color</tag> PI before or
+      after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
+      <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
+      sibling to the element, to set a background color for the
+      image.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
+        <listitem>
+          
+<para>An HTML color value</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="BGcolor.html">Background color</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_bgcolor" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_bgcolor</refname>
+<refpurpose>Sets background color on a table row or table cell</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo bgcolor</tag> PI as child of a table row
+      or cell to set a background color for that table row or cell.</para>
+
+    
+<para>This PI works for both CALS and HTML tables.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
+        <listitem>
+          
+<para>An HTML color value</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="BGtableColor.html#CellBGColor">Cell background color</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_float-type" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_float-type</refname>
+<refpurpose>Specifies float behavior for a sidebar</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo float-type="margin.note"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo float-type</tag> PI to specify the float
+      behavior for a <tag>sidebar</tag> (to cause the sidebar to be
+      displayed as a marginal note).</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>float-type="margin.note"</term>
+        <listitem>
+          
+<para>Specifies that the <tag>sidebar</tag> should be
+            displayed as a marginal note.</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>sidebar.float.type</parameter> (parameter),
+      <parameter>sidebar.float.width</parameter> (parameter), 
+      <parameter>sidebar.properties</parameter> (attribute-set),
+      <parameter>sidebar.title.properties</parameter> (attribute-set)
+    </para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="SideFloats.html#SidebarFloats">A sidebar as
+        side float</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_funcsynopsis-style" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_funcsynopsis-style</refname>
+<refpurpose>Specifies presentation style for a funcsynopsis</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo funcsynopsis-style="kr"|"ansi"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo funcsynopsis-style</tag> PI as a child of
+      a <tag>funcsynopsis</tag> or anywhere within a funcsynopsis
+      to control the presentation style for output of all
+      <tag>funcprototype</tag> instances within that funcsynopsis.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>funcsynopsis-style="kr"</term>
+        <listitem>
+          
+<para>Displays <tag>funcprototype</tag> output in K&amp;R style</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>funcsynopsis-style="ansi"</term>
+        <listitem>
+          
+<para>Displays <tag>funcprototype</tag> output in ANSI style</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>funcsynopsis.style</parameter></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_glossary-presentation" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_glossary-presentation</refname>
+<refpurpose>Specifies presentation style for a glossary</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo glossary-presentation="list"|"blocks"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo glossary-presentation</tag> PI as a child of
+      a <tag>glossary</tag> to control its presentation style.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>glossary-presentation="list"</term>
+        <listitem>
+          
+<para>Displays the glossary as a list</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>glossary-presentation="blocks"</term>
+        <listitem>
+          
+<para>Displays the glossary as blocks</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>glossary.as.blocks</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Glossaries.html#GlossaryFormatPrint">Glossary
+        formatting in print</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_glosslist-presentation" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_glosslist-presentation</refname>
+<refpurpose>Specifies presentation style for a glosslist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo glosslist-presentation="list"|"blocks"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo glosslist-presentation</tag> PI as a child of
+      a <tag>glosslist</tag> to control its presentation style.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>glosslist-presentation="list"</term>
+        <listitem>
+          
+<para>Displays the glosslist as a list</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>glosslist-presentation="blocks"</term>
+        <listitem>
+          
+<para>Displays the glosslist as blocks</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>glosslist.as.blocks</parameter> </para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Glossaries.html#GlossaryFormatPrint">Glossary
+        formatting in print</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_glossterm-width" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_glossterm-width</refname>
+<refpurpose>Specifies the glossterm width for a glossary or
+    glosslist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo glossterm-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo glossterm-width</tag> PI as a child of a
+      <tag>glossary</tag> or <tag>glosslist</tag> to specify the
+      width for output of <tag>glossterm</tag> instances in the
+      output.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>glossterm-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the glossterm width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>glossterm.width</parameter>,
+      <parameter>glossterm.separation</parameter>
+    </para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Glossaries.html#GlossaryFormatPrint">Glossary
+        formatting in print</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_keep-together" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_keep-together</refname>
+<refpurpose>Specifies &#8220;keep&#8221; behavior for a table, example,
+    figure, equation, procedure, or task</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo keep-together="auto"|"always"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo keep-together</tag> PI as a child of a
+      formal object (<tag>table</tag>, <tag>example</tag>,
+      <tag>figure</tag>, <tag>equation</tag>, <tag>procedure</tag>, or
+      <tag>task</tag>) to specify &#8220;keep&#8221; behavior (to allow the object to 
+    &#8220;break&#8221; across a page).</para>
+
+    
+<para>The PI also works with <tag>informaltable</tag>, <tag>informalexample</tag>,
+      <tag>informalfigure</tag> and <tag>informalequation</tag>.
+    </para>
+
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>keep-together="auto"</term>
+        <listitem>
+          
+<para>Enables the object to break across a page</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>keep-together="always"</term>
+        <listitem>
+          
+<para>Prevents the object from breaking across a page (the
+            default stylesheet behavior)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para>formal.object.properties</para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="PageBreaking.html#KeepTogetherPI">Keep-together processing instruction</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_label-width" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_label-width</refname>
+<refpurpose>Specifies the label width for a qandaset, itemizedlist, orderedlist
+  or calloutlist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo label-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo label-width</tag> PI as a child of a
+      <tag>qandaset</tag>, <tag>itemizedlist</tag>, <tag>orderedlist</tag>, 
+      or <tag>calloutlist</tag> to specify the width of labels.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the label width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_linenumbering.everyNth" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_linenumbering.everyNth</refname>
+<refpurpose>Specifies interval for line numbers in verbatims</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo linenumbering.everyNth</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the interval at which lines are numbered.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies numbering interval; a number is output
+            before every <replaceable>N</replaceable>th line</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>linenumbering.everyNth</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_linenumbering.separator" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_linenumbering.separator</refname>
+<refpurpose>Specifies separator text for line numbers in verbatims</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo linenumbering.separator</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the separator text output between the line numbers and content.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the text (zero or more characters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>linenumbering.separator</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_linenumbering.width" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_linenumbering.width</refname>
+<refpurpose>Specifies width for line numbers in verbatims</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo linenumbering.width</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the width set aside for line numbers.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the width (inluding units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>linenumbering.width</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_list-presentation" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_list-presentation</refname>
+<refpurpose>Specifies presentation style for a variablelist or
+    segmentedlist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo list-presentation="list"|"blocks"|"table"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo list-presentation</tag> PI as a child of
+      a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
+      control the presentation style for the list (to cause it, for
+      example, to be displayed as a table).</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>list-presentation="list"</term>
+        <listitem>
+          
+<para>Displays the list as a list</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="blocks"</term>
+        <listitem>
+          
+<para>(<tag>variablelist</tag> only) Displays the list as blocks</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="table"</term>
+        <listitem>
+          
+<para>(<tag>segmentedlist</tag> only) Displays the list as a table</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<itemizedlist>
+      <listitem>
+        
+<para><parameter>variablelist.as.blocks</parameter></para>
+
+      </listitem>
+      <listitem>
+        
+<para><parameter>variablelist.as.table</parameter></para>
+
+      </listitem>
+    </itemizedlist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#ListIndents">Variable list formatting in print</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_list-width" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_list-width</refname>
+<refpurpose>Specifies the width of a horizontal simplelist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo list-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo list-width</tag> PI as a child of a
+      <tag>simplelist</tag> whose <tag class="attribute">class</tag>
+      value is <literal>horizontal</literal>, to specify the width
+      of the <tag>simplelist</tag>.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the <tag>simplelist</tag> width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_orientation" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_orientation</refname>
+<refpurpose>Specifies the orientation for a CALS table row or cell</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo orientation="0"|"90"|"180"|"270"|"-90"|"-180"|"-270"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo orientation</tag> PI as a child of a CALS
+      <tag>table</tag> row or cell to specify the orientation
+      (rotation) for the row or cell.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>orientation="0"|"90"|"180"|"270"|"-90"|"-180"|"-270"</term>
+        <listitem>
+          
+<para>Specifies the number of degrees by which the cell or
+            row is rotated</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_pgwide" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_pgwide</refname>
+<refpurpose>Specifies if an <tag>equation</tag> or <tag>example</tag> goes across full page width</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo pgwide="0"|"1"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo pgwide</tag> PI as a child of an
+      <tag>equation</tag> or <tag>example</tag> to specify that the
+      content should rendered across the full width of the page.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>pgwide="0"</term>
+        <listitem>
+          
+<para>If zero, the content is rendered across the current
+            text flow</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>pgwide="1"</term>
+        <listitem>
+          
+<para>If <code>1</code> (or any non-zero value), the
+            content is rendered across the full width of the page</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>pgwide.properties</parameter></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_rotated-width" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_rotated-width</refname>
+<refpurpose>Specifies the width for a CALS table <tag>entry</tag> or
+    <tag>row</tag></refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo rotated-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo rotated-width</tag> PI as a child of 
+      <tag>entry</tag> or <tag>row</tag> instance in a CALS table to specify the
+      width of that the <tag>entry</tag> or <tag>row</tag>; or
+      use it higher up in table to cause the width to be inherited
+      recursively down.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>rotated-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the width of a row or cell (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_sidebar-width" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_sidebar-width</refname>
+<refpurpose>Specifies the width of a sidebar</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo sidebar-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo sidebar-width</tag> PI as a child of a
+      <tag>sidebar</tag> to specify the width of the sidebar.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>sidebar-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the <tag>sidebar</tag> width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>sidebar.float.type parameter</parameter>,
+      <parameter>sidebar.float.width parameter</parameter>, 
+      <parameter>sidebar.properties attribute-set</parameter>,
+      <parameter>sidebar.title.properties</parameter>
+    </para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="SideFloats.html#SidebarFloats">A sidebar as
+        side float</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_start" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_start</refname>
+<refpurpose>(obsolete) Sets the starting number on an ordered list</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo start="<replaceable>character</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para><emphasis>This PI is obsolete</emphasis>. The intent of
+      it was to provide a means for setting a specific starting
+      number for an ordered list. Instead of this PI, set a value
+      for the <literal>override</literal> attribute on the first
+      <tag>listitem</tag> in the list; that will have the same
+      effect as what this PI was intended for.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>start="<replaceable>character</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the character to use as the starting
+            number; use 0-9, a-z, A-Z, or lowercase or uppercase
+            Roman numerals</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Orderedlists.html#ListStartNum">List starting number</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_table-width" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_table-width</refname>
+<refpurpose>Specifies the width for a CALS table or for revhistory
+    output</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo table-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo table-width</tag> PI as a child or
+      sibling of a CALS <tag>table</tag>, or as a child of an
+      <tag>informaltable</tag>, <tag>entrytbl</tag>, or
+      <tag>revhistory</tag> instance (which is rendered as a table
+      in output) to specify the width of the table in output.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the table width (including units or as a percentage)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Tables.html#TableWidth">Table width</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_term-width" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_term-width</refname>
+<refpurpose>Specifies the term width for a variablelist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo term-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo term-width</tag> PI as a child of a
+      <tag>variablelist</tag> to specify the width for
+      <tag>term</tag> output.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the term width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#ListIndents">Variable list formatting in print</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_toc" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_toc</refname>
+<refpurpose>Specifies whether a TOC should be generated for a qandaset</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo toc="0"|"1"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo toc</tag> PI as a child of a
+      <tag>qandaset</tag> to specify whether a table of contents
+      (TOC) is generated for the <tag>qandaset</tag>.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>toc="0"</term>
+        <listitem>
+          
+<para>If zero, no TOC is generated</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>toc="1"</term>
+        <listitem>
+          
+<para>If <code>1</code> (or any non-zero value),
+            a TOC is generated</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="QandAtoc.html">Q and A list of questions</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo-need" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo-need</refname>
+<refpurpose>Specify a need for space (a kind of soft page break)</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo-need height="<replaceable>n</replaceable>" [space-before="<replaceable>n</replaceable>"]</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>A &#8220;need&#8221; is a request for space on a page.  If the
+      requested space is not available, the page breaks and the
+      content that follows the need request appears on the next
+      page. If the requested space is available, then no page break
+      is inserted.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>height="<replaceable>n</replaceable>"</term>
+        <listitem>
+          
+<para>The amount of height needed (including units)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>space-before="<replaceable>n</replaceable>"</term>
+        <listitem>
+          
+<para>The amount of extra vertical space to add (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="PageBreaking.html#SoftPageBreaks">Soft page breaks</link></para>
+
+  </refsect1></refentry>
+
+<refentry id="dbfo_row-height" xml:base="../fo/pi.xml">
+<refnamediv>
+<refname>dbfo_row-height</refname>
+<refpurpose>Specifies the height for a CALS table row</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo row-height="<replaceable>height</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo row-height</tag> PI as a child of a
+      <tag>row</tag> to specify the height of the row.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>row-height="<replaceable>height</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the row height (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="RowHeight.html">Row height</link></para>
+
+  </refsect1></refentry>
+
+    </part>
+    <part id="pi-man">
+      <info xml:base="../manpages/pi.xml"><title>manpages Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id: pi.xsl 7644 2008-01-16 11:04:07Z xmldoc $
+    </releaseinfo>
+  </info>
+  <partintro id="partintro" xml:base="../manpages/pi.xml">
+    <title>Introduction</title>
+    
+<para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the DocBook
+      XSL stylesheets for manpages output.
+      <note>
+        
+<para>You add these PIs at particular points in a document to
+          cause specific &#8220;exceptions&#8221; to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it&#8217;s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+
+      </note>
+    </para>
+
+  </partintro>
+
+<refentry id="dbman_funcsynopsis-style" xml:base="../manpages/pi.xml">
+<refnamediv>
+<refname>dbman_funcsynopsis-style</refname>
+<refpurpose>Specifies presentation style for a funcsynopsis.</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbman funcsynopsis-style="kr"|"ansi"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbman
+        funcsynopsis-style</tag> PI as a child of a
+      <tag>funcsynopsis</tag> or anywhere within a funcsynopsis
+      to control the presentation style for output of all
+      <tag>funcprototype</tag> instances within that funcsynopsis.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>funcsynopsis-style="kr"</term>
+        <listitem>
+          
+<para>Displays the <tag>funcprototype</tag> in K&amp;R style</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>funcsynopsis-style="ansi"</term>
+        <listitem>
+          
+<para>Displays the <tag>funcprototype</tag> in ANSI style</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>man.funcsynopsis.style</parameter></para>
+
+  </refsect1></refentry>
+
+    </part>
+    <part id="pi-common">
+      <info xml:base="../common/pi.xml"><title>Common Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id: pi.xsl 8782 2010-07-27 21:15:17Z mzjn $
+    </releaseinfo>
+  </info>
+  <partintro id="partintro" xml:base="../common/pi.xml">
+    <title>Introduction</title>
+    
+<para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the
+      &#8220;common&#8221; part of the DocBook XSL stylesheets.
+      <note>
+        
+<para>You add these PIs at particular points in a document to
+          cause specific &#8220;exceptions&#8221; to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it&#8217;s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+
+      </note>
+    </para>
+
+  </partintro>
+
+<refentry id="dbchoice_choice" xml:base="../common/pi.xml">
+<refnamediv>
+<refname>dbchoice_choice</refname>
+<refpurpose>Generates a localized choice separator</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbchoice choice="and"|"or"|<replaceable>string</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbchoice choice</tag> PI to
+      generate an appropriate localized &#8220;choice&#8221; separator (for
+      example, <literal>and</literal> or <literal>or</literal>)
+      before the final item in an inline <tag>simplelist</tag></para>
+
+    <warning>
+      
+<para>This PI is a less-than-ideal hack; support for it may
+        disappear in the future (particularly if and when a more
+        appropriate means for marking up "choice" lists becomes
+        available in DocBook).</para>
+
+    </warning>
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>choice="and"</term>
+        <listitem>
+          
+<para>generates a localized <literal>and</literal> separator</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>choice="or"</term>
+        <listitem>
+          
+<para>generates a localized <literal>or</literal> separator</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>choice="<replaceable>string</replaceable>"</term>
+        <listitem>
+          
+<para>generates a literal <replaceable>string</replaceable> separator</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+
+<refentry id="dbtimestamp" xml:base="../common/pi.xml">
+<refnamediv>
+<refname>dbtimestamp</refname>
+<refpurpose>Inserts a date timestamp</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbtimestamp format="<replaceable>formatstring</replaceable>" [padding="0"|"1"]</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbtimestamp</tag> PI at any point in a
+      source document to cause a date timestamp (a formatted
+      string representing the current date and time) to be
+      inserted in output of the document.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>format="<replaceable>formatstring</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies format in which the date and time are
+            output</para>
+
+        <note>
+          
+<para>For details of the content of the format string,
+            see <link role="tcg" xlink:href="Datetime.html">Date and time</link>.</para>
+
+        </note>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>padding="0"|"1"</term>
+        <listitem>
+          
+<para>Specifies padding behavior; if non-zero, padding is is added</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+
+<refentry id="dbtex_delims" xml:base="../common/pi.xml">
+<refnamediv>
+<refname>dbtex_delims</refname>
+<refpurpose>Generates delimiters around embedded TeX equations
+    in output</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbtex delims="no"|"yes"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbtex delims</tag> PI as a
+      child of a <tag>textobject</tag> containing embedded TeX
+      markup, to cause that markup to be surrounded by
+      <literal>$</literal> delimiter characters in output.</para>
+
+      <warning>
+       
+<para>This feature is useful for print/PDF output only if you
+       use the obsolete and now unsupported PassiveTeX XSL-FO
+       engine.</para>
+
+      </warning>
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>dbtex delims="no"|"yes"</term>
+        <listitem>
+          
+<para>Specifies whether delimiters are output</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>tex.math.delims</parameter></para>
+
+  </refsect1></refentry>
+
+    </part>
+  </book>
+  <book id="developer"><title>DocBook XSL Stylesheets Developer&#160;Reference</title>
+    <info>
+      <abstract>
+        <para>This is technical reference documentation for
+          developers using the DocBook XSL Stylesheets. It is not
+          intended to be user documentation, but is instead
+          provided for developers writing customization layers for
+          the stylesheets.</para>
+      </abstract>
+    </info>
+    <part id="lib">
+      <?dbhtml dir="lib"?>
+      <?dbhtml filename="index.html"?>
+      <title xml:base="../lib/lib.xml">XSL Library Template Reference</title>
+      <partintro id="libintro">
+        <title xml:base="../lib/lib.xml">Introduction</title>
+      <para xml:base="../lib/lib.xml">This is technical reference documentation for the
+        vocabulary-independent &#8220;library&#8221; templates in the DocBook XSL
+        Stylesheets.</para>
+      <para xml:base="../lib/lib.xml">This is not intended to be user documentation.  It is
+        provided for developers writing customization layers for the
+        stylesheets.</para>
+    
+      </partintro>
+      <reference id="generallibrary" xml:base="../lib/lib.xml">
+    <title>General Library Templates</title>
+
+<refentry id="dot.count">
+<refnamediv>
+<refname>dot.count</refname>
+<refpurpose>Returns the number of <quote>.</quote> characters in a string</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+  <para>Given a string, the <function>dot.count</function>
+    template returns the number of dot/period characters in the
+    string. This template is useful, for example, when testing the
+    nesting level of nested inline markup (for nested emphasis,
+    quotations, etc.).</para>
+
+<programlisting id="dot.count.frag">
+&lt;xsl:template name="dot.count"&gt;
+  &lt;!-- Returns the number of "." characters in a string --&gt;
+  &lt;xsl:param name="string"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="count" select="0"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="contains($string, '.')"&gt;
+      &lt;xsl:call-template name="dot.count"&gt;
+        &lt;xsl:with-param name="string" select="substring-after($string, '.')"&gt;&lt;/xsl:with-param&gt;
+        &lt;xsl:with-param name="count" select="$count+1"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:value-of select="$count"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="copy-string">
+<refnamediv>
+<refname>copy-string</refname>
+<refpurpose>Returns <quote>count</quote> copies of a string</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+  <para>Given a string, the <function>copy-string</function>
+    template creates <replaceable>n</replaceable> copies of the
+    string, when the value of <replaceable>n</replaceable> is
+    given by the <parameter>count</parameter> parameter.</para>
+
+<programlisting id="copy-string.frag">
+&lt;xsl:template name="copy-string"&gt;
+  &lt;!-- returns 'count' copies of 'string' --&gt;
+  &lt;xsl:param name="string"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="count" select="0"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="result"&gt;&lt;/xsl:param&gt;
+
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$count&gt;0"&gt;
+      &lt;xsl:call-template name="copy-string"&gt;
+        &lt;xsl:with-param name="string" select="$string"&gt;&lt;/xsl:with-param&gt;
+        &lt;xsl:with-param name="count" select="$count - 1"&gt;&lt;/xsl:with-param&gt;
+        &lt;xsl:with-param name="result"&gt;
+          &lt;xsl:value-of select="$result"&gt;&lt;/xsl:value-of&gt;
+          &lt;xsl:value-of select="$string"&gt;&lt;/xsl:value-of&gt;
+        &lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:value-of select="$result"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="string.subst">
+<refnamediv>
+<refname>string.subst</refname>
+<refpurpose>Substitute one text string for another in a string</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>The <function>string.subst</function> template replaces all
+occurances of <parameter>target</parameter> in <parameter>string</parameter>
+with <parameter>replacement</parameter> and returns the result.
+</para>
+
+<programlisting id="string.subst.frag">
+&lt;xsl:template name="string.subst"&gt;
+  &lt;xsl:param name="string"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="target"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="replacement"&gt;&lt;/xsl:param&gt;
+
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="contains($string, $target)"&gt;
+      &lt;xsl:variable name="rest"&gt;
+        &lt;xsl:call-template name="string.subst"&gt;
+          &lt;xsl:with-param name="string" select="substring-after($string, $target)"&gt;&lt;/xsl:with-param&gt;
+          &lt;xsl:with-param name="target" select="$target"&gt;&lt;/xsl:with-param&gt;
+          &lt;xsl:with-param name="replacement" select="$replacement"&gt;&lt;/xsl:with-param&gt;
+        &lt;/xsl:call-template&gt;
+      &lt;/xsl:variable&gt;
+      &lt;xsl:value-of select="concat(substring-before($string, $target),                                    $replacement,                                    $rest)"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:value-of select="$string"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="xpointer.idref">
+<refnamediv>
+<refname>xpointer.idref</refname>
+<refpurpose>Extract IDREF from an XPointer</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>The <function>xpointer.idref</function> template returns the
+ID portion of an XPointer which is a pointer to an ID within the current
+document, or the empty string if it is not.</para>
+<para>In other words, <function>xpointer.idref</function> returns
+<quote>foo</quote> when passed either <literal>#foo</literal>
+or <literal>#xpointer(id('foo'))</literal>, otherwise it returns
+the empty string.</para>
+
+<programlisting id="xpointer.idref.frag">
+&lt;xsl:template name="xpointer.idref"&gt;
+  &lt;xsl:param name="xpointer"&gt;http://...&lt;/xsl:param&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="starts-with($xpointer, '#xpointer(id(')"&gt;
+      &lt;xsl:variable name="rest" select="substring-after($xpointer, '#xpointer(id(')"&gt;&lt;/xsl:variable&gt;
+      &lt;xsl:variable name="quote" select="substring($rest, 1, 1)"&gt;&lt;/xsl:variable&gt;
+      &lt;xsl:value-of select="substring-before(substring-after($xpointer, $quote), $quote)"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:when test="starts-with($xpointer, '#')"&gt;
+      &lt;xsl:value-of select="substring-after($xpointer, '#')"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;!-- otherwise it's a pointer to some other document --&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="idref">
+<refnamediv>
+<refname>idref</refname>
+<refpurpose>Extract IDREF from a linking element</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>The <function>idref</function> template accepts 
+any <tag>xref</tag> or universally linking element as a parameter
+and returns the local
+ID that it points to.
+If it has a <tag class="attribute">linkend</tag> attribute,
+it returns that value.
+If it has a <tag class="attribute">xlink:href</tag>, it
+returns that value, parsed as needed to extract just
+the id reference.  Otherwise it returns an empty string.</para>
+
+<programlisting id="idref.frag">
+&lt;xsl:template name="idref"&gt;
+  &lt;xsl:param name="xref" select="."&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="linkend" select="$xref/@linkend"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="xpointer"&gt;
+    &lt;xsl:call-template name="xpointer.idref"&gt;
+      &lt;xsl:with-param name="xpointer" select="$xref/@xlink:href"&gt;&lt;/xsl:with-param&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/xsl:param&gt; 
+
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="string-length($linkend) != 0"&gt;
+      &lt;xsl:value-of select="$linkend"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:when test="string-length($xpointer) != 0"&gt;
+      &lt;xsl:value-of select="$xpointer"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;!-- otherwise it's a pointer to some other document --&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+
+<refentry id="length-magnitude">
+<refnamediv>
+<refname>length-magnitude</refname>
+<refpurpose>Return the unqualified dimension from a length specification</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>The <function>length-magnitude</function> template returns the
+unqualified length ("20" for "20pt") from a dimension.
+</para>
+
+<programlisting id="length-magnitude.frag">
+&lt;xsl:template name="length-magnitude"&gt;
+  &lt;xsl:param name="length" select="'0pt'"&gt;&lt;/xsl:param&gt;
+
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="string-length($length) = 0"&gt;&lt;/xsl:when&gt;
+    &lt;xsl:when test="substring($length,1,1) = '0'                     or substring($length,1,1) = '1'                     or substring($length,1,1) = '2'                     or substring($length,1,1) = '3'                     or substring($length,1,1) = '4'                     or substring($length,1,1) = '5'                     or substring($length,1,1) = '6'                     or substring($length,1,1) = '7'                     or substring($length,1,1) = '8'                     or substring($length,1,1) = '9'                     or substring($length,1,1) = '.'"&gt;
+      &lt;xsl:value-of select="substring($length,1,1)"&gt;&lt;/xsl:value-of&gt;
+      &lt;xsl:call-template name="length-magnitude"&gt;
+        &lt;xsl:with-param name="length" select="substring($length,2)"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:when&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="length-units">
+<refnamediv>
+<refname>length-units</refname>
+<refpurpose>Return the units from a length specification</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>The <function>length-units</function> template returns the
+units ("pt" for "20pt") from a length. If no units are supplied on the
+length, the <parameter>defauilt.units</parameter> are returned.</para>
+
+<programlisting id="length-units.frag">
+&lt;xsl:template name="length-units"&gt;
+  &lt;xsl:param name="length" select="'0pt'"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="default.units" select="'px'"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:variable name="magnitude"&gt;
+    &lt;xsl:call-template name="length-magnitude"&gt;
+      &lt;xsl:with-param name="length" select="$length"&gt;&lt;/xsl:with-param&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/xsl:variable&gt;
+
+  &lt;xsl:variable name="units"&gt;
+    &lt;xsl:value-of select="substring($length, string-length($magnitude)+1)"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:variable&gt;
+
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$units = ''"&gt;
+      &lt;xsl:value-of select="$default.units"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:value-of select="$units"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="length-spec">
+<refnamediv>
+<refname>length-spec</refname>
+<refpurpose>Return a fully qualified length specification</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>The <function>length-spec</function> template returns the
+qualified length from a dimension. If an unqualified length is given,
+the <parameter>default.units</parameter> will be added to it.
+</para>
+
+<programlisting id="length-spec.frag">
+&lt;xsl:template name="length-spec"&gt;
+  &lt;xsl:param name="length" select="'0pt'"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="default.units" select="'px'"&gt;&lt;/xsl:param&gt;
+
+  &lt;xsl:variable name="magnitude"&gt;
+    &lt;xsl:call-template name="length-magnitude"&gt;
+      &lt;xsl:with-param name="length" select="$length"&gt;&lt;/xsl:with-param&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/xsl:variable&gt;
+
+  &lt;xsl:variable name="units"&gt;
+    &lt;xsl:value-of select="substring($length, string-length($magnitude)+1)"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:variable&gt;
+
+  &lt;xsl:value-of select="$magnitude"&gt;&lt;/xsl:value-of&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$units='cm'                     or $units='mm'                     or $units='in'                     or $units='pt'                     or $units='pc'                     or $units='px'                     or $units='em'"&gt;
+      &lt;xsl:value-of select="$units"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:when test="$units = ''"&gt;
+      &lt;xsl:value-of select="$default.units"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:message&gt;
+        &lt;xsl:text&gt;Unrecognized unit of measure: &lt;/xsl:text&gt;
+        &lt;xsl:value-of select="$units"&gt;&lt;/xsl:value-of&gt;
+        &lt;xsl:text&gt;.&lt;/xsl:text&gt;
+      &lt;/xsl:message&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="length-in-points">
+<refnamediv>
+<refname>length-in-points</refname>
+<refpurpose>Returns the size, in points, of a specified length</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>The <function>length-in-points</function> template converts a length
+specification to points and returns that value as an unqualified
+number.
+</para>
+
+<caution>
+<para>There is no way for the template to infer the size of an
+<literal>em</literal>. It relies on the default <parameter>em.size</parameter>
+which is initially <literal>10</literal> (for 10pt).</para>
+
+<para>Similarly, converting pixels to points relies on the
+<parameter>pixels.per.inch</parameter> parameter which is initially
+<literal>90</literal>.
+</para>
+</caution>
+
+<programlisting id="length-in-points.frag">
+&lt;xsl:template name="length-in-points"&gt;
+  &lt;xsl:param name="length" select="'0pt'"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="em.size" select="10"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="pixels.per.inch" select="90"&gt;&lt;/xsl:param&gt;
+
+  &lt;xsl:variable name="magnitude"&gt;
+    &lt;xsl:call-template name="length-magnitude"&gt;
+      &lt;xsl:with-param name="length" select="$length"&gt;&lt;/xsl:with-param&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/xsl:variable&gt;
+
+  &lt;xsl:variable name="units"&gt;
+    &lt;xsl:value-of select="substring($length, string-length($magnitude)+1)"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:variable&gt;
+
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$units = 'pt'"&gt;
+      &lt;xsl:value-of select="$magnitude"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:when test="$units = 'cm'"&gt;
+      &lt;xsl:value-of select="$magnitude div 2.54 * 72.0"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:when test="$units = 'mm'"&gt;
+      &lt;xsl:value-of select="$magnitude div 25.4 * 72.0"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:when test="$units = 'in'"&gt;
+      &lt;xsl:value-of select="$magnitude * 72.0"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:when test="$units = 'pc'"&gt;
+      &lt;xsl:value-of select="$magnitude * 12.0"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:when test="$units = 'px'"&gt;
+      &lt;xsl:value-of select="$magnitude div $pixels.per.inch * 72.0"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:when test="$units = 'em'"&gt;
+      &lt;xsl:value-of select="$magnitude * $em.size"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:message&gt;
+        &lt;xsl:text&gt;Unrecognized unit of measure: &lt;/xsl:text&gt;
+        &lt;xsl:value-of select="$units"&gt;&lt;/xsl:value-of&gt;
+        &lt;xsl:text&gt;.&lt;/xsl:text&gt;
+      &lt;/xsl:message&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="pi-attribute">
+<refnamediv>
+<refname>pi-attribute</refname>
+<refpurpose>Extract a pseudo-attribute from a PI</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>The <function>pi-attribute</function> template extracts a pseudo-attribute
+from a processing instruction. For example, given the PI
+<quote><literal>&lt;?foo bar="1" baz='red'?&gt;</literal></quote>,</para>
+<programlisting>&lt;xsl:call-template name="pi-attribute"&gt;
+  &lt;xsl:with-param name="pis" select="processing-instruction('foo')"/&gt;
+  &lt;xsl:with-param name="attribute" select="'baz'"/&gt;
+&lt;/xsl:call-template&gt;</programlisting>
+<para>will return <quote>red</quote>. This template returns the first matching
+attribute that it finds. Presented with processing instructions that
+contain badly formed pseudo-attributes (missing or unbalanced quotes,
+for example), the template may silently return erroneous results.</para>
+
+<programlisting id="pi-attribute.frag">
+&lt;xsl:template name="pi-attribute"&gt;
+  &lt;xsl:param name="pis" select="processing-instruction('BOGUS_PI')"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="attribute"&gt;filename&lt;/xsl:param&gt;
+  &lt;xsl:param name="count"&gt;1&lt;/xsl:param&gt;
+
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$count&gt;count($pis)"&gt;
+      &lt;!-- not found --&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:variable name="pi"&gt;
+        &lt;xsl:value-of select="$pis[$count]"&gt;&lt;/xsl:value-of&gt;
+      &lt;/xsl:variable&gt;
+      &lt;xsl:variable name="pivalue"&gt;
+        &lt;xsl:value-of select="concat(' ', normalize-space($pi))"&gt;&lt;/xsl:value-of&gt;
+      &lt;/xsl:variable&gt;
+      &lt;xsl:choose&gt;
+        &lt;xsl:when test="contains($pivalue,concat(' ', $attribute, '='))"&gt;
+          &lt;xsl:variable name="rest" select="substring-after($pivalue,concat(' ', $attribute,'='))"&gt;&lt;/xsl:variable&gt;
+          &lt;xsl:variable name="quote" select="substring($rest,1,1)"&gt;&lt;/xsl:variable&gt;
+          &lt;xsl:value-of select="substring-before(substring($rest,2),$quote)"&gt;&lt;/xsl:value-of&gt;
+        &lt;/xsl:when&gt;
+        &lt;xsl:otherwise&gt;
+          &lt;xsl:call-template name="pi-attribute"&gt;
+            &lt;xsl:with-param name="pis" select="$pis"&gt;&lt;/xsl:with-param&gt;
+            &lt;xsl:with-param name="attribute" select="$attribute"&gt;&lt;/xsl:with-param&gt;
+            &lt;xsl:with-param name="count" select="$count + 1"&gt;&lt;/xsl:with-param&gt;
+          &lt;/xsl:call-template&gt;
+        &lt;/xsl:otherwise&gt;
+      &lt;/xsl:choose&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="lookup.key">
+<refnamediv>
+<refname>lookup.key</refname>
+<refpurpose>Retrieve the value associated with a particular key in a table</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>Given a table of space-delimited key/value pairs,
+the <function>lookup.key</function> template extracts the value associated
+with a particular key.</para>
+
+<programlisting id="lookup.key.frag">
+&lt;xsl:template name="lookup.key"&gt;
+  &lt;xsl:param name="key" select="''"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="table" select="''"&gt;&lt;/xsl:param&gt;
+
+  &lt;xsl:if test="contains($table, ' ')"&gt;
+    &lt;xsl:choose&gt;
+      &lt;xsl:when test="substring-before($table, ' ') = $key"&gt;
+        &lt;xsl:variable name="rest" select="substring-after($table, ' ')"&gt;&lt;/xsl:variable&gt;
+        &lt;xsl:choose&gt;
+          &lt;xsl:when test="contains($rest, ' ')"&gt;
+            &lt;xsl:value-of select="substring-before($rest, ' ')"&gt;&lt;/xsl:value-of&gt;
+          &lt;/xsl:when&gt;
+          &lt;xsl:otherwise&gt;
+            &lt;xsl:value-of select="$rest"&gt;&lt;/xsl:value-of&gt;
+          &lt;/xsl:otherwise&gt;
+        &lt;/xsl:choose&gt;
+      &lt;/xsl:when&gt;
+      &lt;xsl:otherwise&gt;
+        &lt;xsl:call-template name="lookup.key"&gt;
+          &lt;xsl:with-param name="key" select="$key"&gt;&lt;/xsl:with-param&gt;
+          &lt;xsl:with-param name="table" select="substring-after(substring-after($table,' '), ' ')"&gt;&lt;/xsl:with-param&gt;
+        &lt;/xsl:call-template&gt;
+      &lt;/xsl:otherwise&gt;
+    &lt;/xsl:choose&gt;
+  &lt;/xsl:if&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="xpath.location">
+<refnamediv>
+<refname>xpath.location</refname>
+<refpurpose>Calculate the XPath child-sequence to the current node</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>The <function>xpath.location</function> template calculates the
+absolute path from the root of the tree to the current element node.
+</para>
+
+<programlisting id="xpath.location.frag">
+&lt;xsl:template name="xpath.location"&gt;
+  &lt;xsl:param name="node" select="."&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="path" select="''"&gt;&lt;/xsl:param&gt;
+
+  &lt;xsl:variable name="next.path"&gt;
+    &lt;xsl:value-of select="local-name($node)"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:if test="$path != ''"&gt;/&lt;/xsl:if&gt;
+    &lt;xsl:value-of select="$path"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:variable&gt;
+
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$node/parent::*"&gt;
+      &lt;xsl:call-template name="xpath.location"&gt;
+        &lt;xsl:with-param name="node" select="$node/parent::*"&gt;&lt;/xsl:with-param&gt;
+        &lt;xsl:with-param name="path" select="$next.path"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:text&gt;/&lt;/xsl:text&gt;
+      &lt;xsl:value-of select="$next.path"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="comment-escape-string">
+<refnamediv>
+<refname>comment-escape-string</refname>
+<refpurpose>Prepare a string for inclusion in an XML comment</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>The <function>comment-escape-string</function> template returns a string
+that has been transformed so that it can safely be output as an XML comment.
+Internal occurrences of "--" will be replaced with "- -" and a leading and/or
+trailing space will be added to the string, if necessary.</para>
+
+<programlisting id="comment-escape-string.frag">
+&lt;xsl:template name="comment-escape-string"&gt;
+  &lt;xsl:param name="string" select="''"&gt;&lt;/xsl:param&gt;
+
+  &lt;xsl:if test="starts-with($string, '-')"&gt;
+    &lt;xsl:text&gt; &lt;/xsl:text&gt;
+  &lt;/xsl:if&gt;
+
+  &lt;xsl:call-template name="comment-escape-string.recursive"&gt;
+    &lt;xsl:with-param name="string" select="$string"&gt;&lt;/xsl:with-param&gt;
+  &lt;/xsl:call-template&gt;
+
+  &lt;xsl:if test="substring($string, string-length($string), 1) = '-'"&gt;
+    &lt;xsl:text&gt; &lt;/xsl:text&gt;
+  &lt;/xsl:if&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="comment-escape-string.recursive">
+<refnamediv>
+<refname>comment-escape-string.recursive</refname>
+<refpurpose>Internal function used by comment-escape-string</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>The <function>comment-escape-string.recursive</function> template is used
+by <function>comment-escape-string</function>.</para>
+
+<programlisting id="comment-escape-string.recursive.frag">
+&lt;xsl:template name="comment-escape-string.recursive"&gt;
+  &lt;xsl:param name="string" select="''"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="contains($string, '--')"&gt;
+      &lt;xsl:value-of select="substring-before($string, '--')"&gt;&lt;/xsl:value-of&gt;
+      &lt;xsl:value-of select="'- -'"&gt;&lt;/xsl:value-of&gt;
+      &lt;xsl:call-template name="comment-escape-string.recursive"&gt;
+        &lt;xsl:with-param name="string" select="substring-after($string, '--')"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:value-of select="$string"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+</refsect1>
+</refentry>
+
+
+
+<refentry id="trim.text">
+<refnamediv>
+<refname>trim.text</refname>
+<refpurpose>Trim leading and trailing whitespace from a text node</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>Given a text node, this function trims leading and trailing
+whitespace from it and returns the trimmed contents.</para>
+
+<programlisting id="trim.text.frag">
+
+  &lt;xsl:template name="trim.text"&gt;
+    &lt;xsl:param name="contents" select="."&gt;&lt;/xsl:param&gt;
+    &lt;xsl:variable name="contents-left-trimmed"&gt;
+      &lt;xsl:call-template name="trim-left"&gt;
+        &lt;xsl:with-param name="contents" select="$contents"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:variable&gt;
+    &lt;xsl:variable name="contents-trimmed"&gt;
+      &lt;xsl:call-template name="trim-right"&gt;
+        &lt;xsl:with-param name="contents" select="$contents-left-trimmed"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:variable&gt;
+    &lt;xsl:value-of select="$contents-trimmed"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:template&gt;
+
+  &lt;xsl:template name="trim-left"&gt;
+    &lt;xsl:param name="contents"&gt;&lt;/xsl:param&gt;
+    &lt;xsl:choose&gt;
+      &lt;xsl:when test="starts-with($contents,'
+') or                       starts-with($contents,'&#xD;') or                       starts-with($contents,' ') or                       starts-with($contents,'	')"&gt;
+        &lt;xsl:call-template name="trim-left"&gt;
+          &lt;xsl:with-param name="contents" select="substring($contents, 2)"&gt;&lt;/xsl:with-param&gt;
+        &lt;/xsl:call-template&gt;
+      &lt;/xsl:when&gt;
+      &lt;xsl:otherwise&gt;
+        &lt;xsl:value-of select="$contents"&gt;&lt;/xsl:value-of&gt;
+      &lt;/xsl:otherwise&gt;
+    &lt;/xsl:choose&gt;
+  &lt;/xsl:template&gt;
+
+  &lt;xsl:template name="trim-right"&gt;
+    &lt;xsl:param name="contents"&gt;&lt;/xsl:param&gt;
+    &lt;xsl:variable name="last-char"&gt;
+      &lt;xsl:value-of select="substring($contents, string-length($contents), 1)"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:variable&gt;
+    &lt;xsl:choose&gt;
+      &lt;xsl:when test="($last-char = '
+') or                       ($last-char = '&#xD;') or                       ($last-char = ' ') or                       ($last-char = '	')"&gt;
+        &lt;xsl:call-template name="trim-right"&gt;
+          &lt;xsl:with-param name="contents" select="substring($contents, 1, string-length($contents) - 1)"&gt;&lt;/xsl:with-param&gt;
+        &lt;/xsl:call-template&gt;
+      &lt;/xsl:when&gt;
+      &lt;xsl:otherwise&gt;
+        &lt;xsl:value-of select="$contents"&gt;&lt;/xsl:value-of&gt;
+      &lt;/xsl:otherwise&gt;
+    &lt;/xsl:choose&gt;
+  &lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="str.tokenize.keep.delimiters">
+<refnamediv>
+<refname>str.tokenize.keep.delimiters</refname>
+<refpurpose>Tokenize a string while preserving any delimiters</refpurpose>
+</refnamediv>
+<refsect1><title>Description</title>
+<para>Based on the occurrence of one or more delimiter characters,
+this function breaks a string into a list of tokens and delimiters,
+marking up each of the tokens with a <tag>token</tag> element
+and preserving the delimiters as text nodes between the tokens.</para>
+<note>
+  <para>This function is a very slightly modified version of a
+  function from the <link xlink:href="http://www.exslt.org/">EXSLT
+  site</link>. The original is available at:
+
+<blockquote><para><link xlink:href="http://www.exslt.org/str/functions/tokenize/str.tokenize.template.xsl"/></para></blockquote>
+
+  The <function>str.tokenize.keep.delimiters</function> function
+  differs only in that it preserves the delimiters instead of
+  discarding them.</para>
+</note>
+<programlisting id="str.tokenize.keep.delimiters.frag">
+  &lt;xsl:template name="str.tokenize.keep.delimiters"&gt;
+    &lt;xsl:param name="string" select="''"&gt;&lt;/xsl:param&gt;
+    &lt;xsl:param name="delimiters" select="' '"&gt;&lt;/xsl:param&gt;
+    &lt;xsl:choose&gt;
+      &lt;xsl:when test="not($string)"&gt;&lt;/xsl:when&gt;
+      &lt;xsl:when test="not($delimiters)"&gt;
+        &lt;xsl:call-template name="str.tokenize.keep.delimiters-characters"&gt;
+          &lt;xsl:with-param name="string" select="$string"&gt;&lt;/xsl:with-param&gt;
+        &lt;/xsl:call-template&gt;
+      &lt;/xsl:when&gt;
+      &lt;xsl:otherwise&gt;
+        &lt;xsl:call-template name="str.tokenize.keep.delimiters-delimiters"&gt;
+          &lt;xsl:with-param name="string" select="$string"&gt;&lt;/xsl:with-param&gt;
+          &lt;xsl:with-param name="delimiters" select="$delimiters"&gt;&lt;/xsl:with-param&gt;
+        &lt;/xsl:call-template&gt;
+      &lt;/xsl:otherwise&gt;
+    &lt;/xsl:choose&gt;
+  &lt;/xsl:template&gt;
+  &lt;xsl:template name="str.tokenize.keep.delimiters-characters"&gt;
+    &lt;xsl:param name="string"&gt;&lt;/xsl:param&gt;
+    &lt;xsl:if test="$string"&gt;
+      &lt;ssb:token&gt;&lt;xsl:value-of select="substring($string, 1, 1)"&gt;&lt;/xsl:value-of&gt;&lt;/ssb:token&gt;
+      &lt;xsl:call-template name="str.tokenize.keep.delimiters-characters"&gt;
+        &lt;xsl:with-param name="string" select="substring($string, 2)"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:if&gt;
+  &lt;/xsl:template&gt;
+  &lt;xsl:template name="str.tokenize.keep.delimiters-delimiters"&gt;
+    &lt;xsl:param name="string"&gt;&lt;/xsl:param&gt;
+    &lt;xsl:param name="delimiters"&gt;&lt;/xsl:param&gt;
+    &lt;xsl:variable name="delimiter" select="substring($delimiters, 1, 1)"&gt;&lt;/xsl:variable&gt;
+    &lt;xsl:choose&gt;
+      &lt;xsl:when test="not($delimiter)"&gt;
+        &lt;ssb:token&gt;&lt;xsl:value-of select="$string"&gt;&lt;/xsl:value-of&gt;&lt;/ssb:token&gt;
+      &lt;/xsl:when&gt;
+      &lt;xsl:when test="contains($string, $delimiter)"&gt;
+        &lt;xsl:if test="not(starts-with($string, $delimiter))"&gt;
+          &lt;xsl:call-template name="str.tokenize.keep.delimiters-delimiters"&gt;
+            &lt;xsl:with-param name="string" select="substring-before($string, $delimiter)"&gt;&lt;/xsl:with-param&gt;
+            &lt;xsl:with-param name="delimiters" select="substring($delimiters, 2)"&gt;&lt;/xsl:with-param&gt;
+          &lt;/xsl:call-template&gt;
+        &lt;/xsl:if&gt;
+        &lt;!-- output each delimiter --&gt;
+        &lt;xsl:value-of select="$delimiter"&gt;&lt;/xsl:value-of&gt;
+        &lt;xsl:call-template name="str.tokenize.keep.delimiters-delimiters"&gt;
+          &lt;xsl:with-param name="string" select="substring-after($string, $delimiter)"&gt;&lt;/xsl:with-param&gt;
+          &lt;xsl:with-param name="delimiters" select="$delimiters"&gt;&lt;/xsl:with-param&gt;
+        &lt;/xsl:call-template&gt;
+      &lt;/xsl:when&gt;
+      &lt;xsl:otherwise&gt;
+        &lt;xsl:call-template name="str.tokenize.keep.delimiters-delimiters"&gt;
+          &lt;xsl:with-param name="string" select="$string"&gt;&lt;/xsl:with-param&gt;
+          &lt;xsl:with-param name="delimiters" select="substring($delimiters, 2)"&gt;&lt;/xsl:with-param&gt;
+        &lt;/xsl:call-template&gt;
+      &lt;/xsl:otherwise&gt;
+    &lt;/xsl:choose&gt;
+  &lt;/xsl:template&gt;
+</programlisting>
+</refsect1>
+</refentry>
+
+
+
+<refentry id="apply-string-subst-map">
+  <refnamediv>
+    <refname>apply-string-subst-map</refname>
+    <refpurpose>Apply a string-substitution map</refpurpose>
+  </refnamediv>
+  <refsect1><title>Description</title>
+  <para>This function applies a &#8220;string substitution&#8221; map. Use it when
+  you want to do multiple string substitutions on the same target
+  content. It reads in two things: <parameter>content</parameter>, the
+  content on which to perform the substitution, and
+  <parameter>map.contents</parameter>, a node set of
+  elements (the names of the elements don't matter), with each element
+  having the following attributes:
+  <itemizedlist>
+    <listitem>
+      <simpara><tag class="attribute">oldstring</tag>, a string to
+      be replaced</simpara>
+    </listitem>
+    <listitem>
+      <simpara><tag class="attribute">newstring</tag>, a string with
+      which to replace <tag class="attribute">oldstring</tag></simpara>
+    </listitem>
+  </itemizedlist>
+  The function uses <parameter>map.contents</parameter> to
+  do substitution on <parameter>content</parameter>, and then
+  returns the modified contents.</para>
+  <note>
+    <para>This function is a very slightly modified version of Jeni
+    Tennison&#8217;s <function>replace_strings</function> function in the
+    <link xlink:href="http://www.dpawson.co.uk/xsl/sect2/StringReplace.html#d9351e13">multiple string replacements</link> section of Dave Pawson&#8217;s
+    <link xlink:href="http://www.dpawson.co.uk/xsl/index.html">XSLT
+    FAQ</link>.</para>
+    <para>The <function>apply-string-subst-map</function> function is
+    essentially the same function as the
+    <function>apply-character-map</function> function; the only
+    difference is that in the map that
+    <function>apply-string-subst-map</function> expects, <tag class="attribute">oldstring</tag> and <tag class="attribute">newstring</tag> attributes are used instead of
+    <tag class="attribute">character</tag> and <tag class="attribute">string</tag> attributes.</para>
+  </note>
+  <programlisting id="apply-string-subst-map.frag">
+    &lt;xsl:template name="apply-string-subst-map"&gt;
+      &lt;xsl:param name="content"&gt;&lt;/xsl:param&gt;
+      &lt;xsl:param name="map.contents"&gt;&lt;/xsl:param&gt;
+      &lt;xsl:variable name="replaced_text"&gt;
+        &lt;xsl:call-template name="string.subst"&gt;
+          &lt;xsl:with-param name="string" select="$content"&gt;&lt;/xsl:with-param&gt;
+          &lt;xsl:with-param name="target" select="$map.contents[1]/@oldstring"&gt;&lt;/xsl:with-param&gt;
+          &lt;xsl:with-param name="replacement" select="$map.contents[1]/@newstring"&gt;&lt;/xsl:with-param&gt;
+        &lt;/xsl:call-template&gt;
+      &lt;/xsl:variable&gt;
+      &lt;xsl:choose&gt;
+        &lt;xsl:when test="$map.contents[2]"&gt;
+          &lt;xsl:call-template name="apply-string-subst-map"&gt;
+            &lt;xsl:with-param name="content" select="$replaced_text"&gt;&lt;/xsl:with-param&gt;
+            &lt;xsl:with-param name="map.contents" select="$map.contents[position() &gt; 1]"&gt;&lt;/xsl:with-param&gt;
+          &lt;/xsl:call-template&gt;
+        &lt;/xsl:when&gt;
+        &lt;xsl:otherwise&gt;
+          &lt;xsl:value-of select="$replaced_text"&gt;&lt;/xsl:value-of&gt;
+        &lt;/xsl:otherwise&gt;
+      &lt;/xsl:choose&gt;
+    &lt;/xsl:template&gt;
+  </programlisting>
+  </refsect1>
+</refentry>
+</reference><reference id="relativeuri" xml:base="../lib/lib.xml">
+<title>Relative URI Functions</title>
+
+<partintro id="partintro"><title>Introduction</title>
+
+<para>These functions manipulate relative URI references.</para>
+
+<para>The following assumptions must hold true:</para>
+
+<orderedlist>
+<listitem>
+<para>All URIs are relative.</para>
+</listitem>
+<listitem>
+<para>No URI contains the <quote><literal>../</literal></quote> sequence
+which would effectively move <quote>up</quote> the hierarchy.</para>
+</listitem>
+</orderedlist>
+
+<para>If these assumptions do not hold, the results are unpredictable.</para>
+
+</partintro>
+
+
+
+<refentry id="count.uri.path.depth">
+<refnamediv>
+<refname>count.uri.path.depth</refname>
+<refpurpose>Count the number of path components in a relative URI</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>This function counts the number of path components in a relative URI.</para>
+
+<programlisting id="count.uri.path.depth.frag">
+&lt;xsl:template name="count.uri.path.depth"&gt;
+  &lt;xsl:param name="filename" select="''"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="count" select="0"&gt;&lt;/xsl:param&gt;
+
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="contains($filename, '/')"&gt;
+      &lt;xsl:call-template name="count.uri.path.depth"&gt;
+        &lt;xsl:with-param name="filename" select="substring-after($filename, '/')"&gt;&lt;/xsl:with-param&gt;
+        &lt;xsl:with-param name="count" select="$count + 1"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:value-of select="$count"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+
+
+<refentry id="trim.common.uri.paths">
+<refnamediv>
+<refname>trim.common.uri.paths</refname>
+<refpurpose>Trim common leading path components from a relative URI</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>This function trims common leading path components from a relative URI.</para>
+
+<programlisting id="trim.common.uri.paths.frag">
+&lt;xsl:template name="trim.common.uri.paths"&gt;
+  &lt;xsl:param name="uriA" select="''"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="uriB" select="''"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:param name="return" select="'A'"&gt;&lt;/xsl:param&gt;
+
+  &lt;!-- Resolve any ../ in the path --&gt;
+  &lt;xsl:variable name="trimmed.uriA"&gt;
+    &lt;xsl:call-template name="resolve.path"&gt;
+      &lt;xsl:with-param name="filename" select="$uriA"&gt;&lt;/xsl:with-param&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/xsl:variable&gt;
+
+  &lt;xsl:variable name="trimmed.uriB"&gt;
+    &lt;xsl:call-template name="resolve.path"&gt;
+      &lt;xsl:with-param name="filename" select="$uriB"&gt;&lt;/xsl:with-param&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/xsl:variable&gt;
+
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="contains($trimmed.uriA, '/') and contains($trimmed.uriB, '/')                     and substring-before($trimmed.uriA, '/') = substring-before($trimmed.uriB, '/')"&gt;
+      &lt;xsl:call-template name="trim.common.uri.paths"&gt;
+        &lt;xsl:with-param name="uriA" select="substring-after($trimmed.uriA, '/')"&gt;&lt;/xsl:with-param&gt;
+        &lt;xsl:with-param name="uriB" select="substring-after($trimmed.uriB, '/')"&gt;&lt;/xsl:with-param&gt;
+        &lt;xsl:with-param name="return" select="$return"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:choose&gt;
+        &lt;xsl:when test="$return = 'A'"&gt;
+          &lt;xsl:value-of select="$trimmed.uriA"&gt;&lt;/xsl:value-of&gt;
+        &lt;/xsl:when&gt;
+        &lt;xsl:otherwise&gt;
+          &lt;xsl:value-of select="$trimmed.uriB"&gt;&lt;/xsl:value-of&gt;
+        &lt;/xsl:otherwise&gt;
+      &lt;/xsl:choose&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+<refentry id="resolve.path">
+<refnamediv>
+<refname>resolve.path</refname>
+<refpurpose>Resolve any ../ in path, except leading ../</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>This function resolves any relative ../ parts of a file path.</para>
+
+<programlisting id="resolve.path.frag">
+&lt;xsl:template name="resolve.path"&gt;
+  &lt;xsl:param name="filename" select="''"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:choose&gt;
+    &lt;!-- Leading .. are not eliminated --&gt;
+    &lt;xsl:when test="starts-with($filename, '../')"&gt;
+      &lt;xsl:value-of select="'../'"&gt;&lt;/xsl:value-of&gt;
+      &lt;xsl:call-template name="resolve.path"&gt;
+        &lt;xsl:with-param name="filename" select="substring-after($filename, '../')"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:when test="contains($filename, '/../')"&gt;
+      &lt;xsl:call-template name="resolve.path"&gt;
+        &lt;xsl:with-param name="filename"&gt;
+          &lt;xsl:call-template name="dirname"&gt;
+            &lt;xsl:with-param name="filename" select="substring-before($filename, '/../')"&gt;&lt;/xsl:with-param&gt;
+          &lt;/xsl:call-template&gt;
+          &lt;xsl:value-of select="substring-after($filename, '/../')"&gt;&lt;/xsl:value-of&gt;
+        &lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:value-of select="$filename"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:template&gt;
+</programlisting>
+
+</refsect1>
+</refentry>
+
+<refentry id="dirname">
+<refnamediv>
+<refname>dirname</refname>
+<refpurpose>Return directory part of a path</refpurpose>
+</refnamediv>
+
+<refsect1><title>Description</title>
+
+<para>This function returns the directory part of a path.</para>
+
+<programlisting id="dirname.frag">
+
+&lt;xsl:template name="dirname"&gt;
+  &lt;xsl:param name="filename" select="''"&gt;&lt;/xsl:param&gt;
+  &lt;xsl:if test="contains($filename, '/')"&gt;
+    &lt;xsl:value-of select="substring-before($filename, '/')"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;/&lt;/xsl:text&gt;
+    &lt;xsl:call-template name="dirname"&gt;
+      &lt;xsl:with-param name="filename" select="substring-after($filename, '/')"&gt;&lt;/xsl:with-param&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/xsl:if&gt;
+&lt;/xsl:template&gt;
+
+</programlisting>
+
+</refsect1>
+</refentry>
+
+</reference>
+    </part>
+    <part id="common-part"><title>Common&#160;Template&#160;Reference</title>
+      <?dbhtml dir="common"?>
+      <?dbhtml filename="index.html"?>
+      <info>
+        <abstract>
+          <para>This is technical reference documentation for the
+            &#8220;base&#8221;, &#8220;refentry&#8221;, and &#8220;utility&#8221; sets of common
+            templates in the DocBook XSL Stylesheets. These
+            templates are &#8220;common&#8221; in that they are shared across
+            output formats (that is, they&#8217;re not
+            output-format-dependent)</para>
+          <para>This documentation is not intended to be user
+            documentation. It is provided for developers writing
+            customization layers for the stylesheets.</para>
+        </abstract>
+      </info>
+        <reference id="base" xml:base="../common/common.xml">
+  <info>
+    <title>Common &#187; Base Template Reference</title>
+    <releaseinfo role="meta">
+      $Id: common.xsl 9347 2012-05-11 03:49:49Z bobstayton $
+    </releaseinfo>
+  </info>
+  
+  <partintro id="partintro">
+    <title>Introduction</title>
+    
+<para>This is technical reference documentation for the &#8220;base&#8221;
+      set of common templates in the DocBook XSL Stylesheets.</para>
+
+    
+<para>This is not intended to be user documentation. It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+
+  </partintro>
+
+<refentry id="template.is.component">
+<refnamediv>
+<refname>is.component</refname>
+<refpurpose>Tests if a given node is a component-level element</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="is.component"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+
+<para>The node which is to be tested.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+
+</refsect1></refentry>
+
+<refentry id="template.is.section">
+<refnamediv>
+<refname>is.section</refname>
+<refpurpose>Tests if a given node is a section-level element</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="is.section"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+
+<para>The node which is to be tested.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+
+</refsect1></refentry>
+
+<refentry id="template.section.level">
+<refnamediv>
+<refname>section.level</refname>
+<refpurpose>Returns the hierarchical level of a section</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="section.level"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template calculates the hierarchical level of a section.
+The element <tag>sect1</tag> is at level 1, <tag>sect2</tag> is
+at level 2, etc.</para>
+
+
+
+<para>Recursive sections are calculated down to the fifth level.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+
+<para>The section node for which the level should be calculated.
+Defaults to the context node.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>The section level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+
+</refsect1></refentry>
+
+<refentry id="template.qanda.section.level">
+<refnamediv>
+<refname>qanda.section.level</refname>
+<refpurpose>Returns the hierarchical level of a QandASet</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="qanda.section.level"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template calculates the hierarchical level of a QandASet.
+</para>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>The level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+
+</refsect1></refentry>
+
+<refentry id="template.select.mediaobject">
+<refnamediv>
+<refname>select.mediaobject</refname>
+<refpurpose>Selects and processes an appropriate media object from a list</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="select.mediaobject"&gt;
+&lt;xsl:param name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject|textobject"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template takes a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and processes
+the "right" object.</para>
+
+
+
+<para>This template relies on a template named 
+"select.mediaobject.index" to determine which object
+in the list is appropriate.</para>
+
+
+
+<para>If no acceptable object is located, nothing happens.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+
+<para>The node list of potential objects to examine.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>Calls &lt;xsl:apply-templates&gt; on the selected object.</para>
+
+</refsect1></refentry>
+
+<refentry id="template.select.mediaobject.index">
+<refnamediv>
+<refname>select.mediaobject.index</refname>
+<refpurpose>Selects the position of the appropriate media object from a list</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="select.mediaobject.index"&gt;
+&lt;xsl:param name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject|textobject"/&gt;
+&lt;xsl:param name="count"&gt;1&lt;/xsl:param&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template takes a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and determines
+the "right" object. It returns the position of that object
+to be used by the calling template.</para>
+
+
+
+<para>If the parameter <parameter>use.role.for.mediaobject</parameter>
+is nonzero, then it first checks for an object with
+a role attribute of the appropriate value.  It takes the first
+of those.  Otherwise, it takes the first acceptable object
+through a recursive pass through the list.</para>
+
+
+
+<para>This template relies on a template named "is.acceptable.mediaobject"
+to determine if a given object is an acceptable graphic. The semantics
+of media objects is that the first acceptable graphic should be used.
+</para>
+
+
+
+<para>If no acceptable object is located, no index is returned.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+
+<para>The node list of potential objects to examine.</para>
+
+</listitem>
+</varlistentry>
+<varlistentry><term>count</term>
+<listitem>
+
+<para>The position in the list currently being considered by the 
+recursive process.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>Returns the position in the original list of the selected object.</para>
+
+</refsect1></refentry>
+
+<refentry id="template.is.acceptable.mediaobject">
+<refnamediv>
+<refname>is.acceptable.mediaobject</refname>
+<refpurpose>Returns '1' if the specified media object is recognized</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="is.acceptable.mediaobject"&gt;
+&lt;xsl:param name="object"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template examines a media object and returns '1' if the
+object is recognized as a graphic.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>object</term>
+<listitem>
+
+<para>The media object to consider.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>0 or 1</para>
+
+</refsect1></refentry>
+
+<refentry id="template.check.id.unique">
+<refnamediv>
+<refname>check.id.unique</refname>
+<refpurpose>Warn users about references to non-unique IDs</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="check.id.unique"&gt;
+&lt;xsl:param name="linkend"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.id.unique</function> prints
+a warning message to the user if either the ID does not exist or
+the ID is not unique.</para>
+
+</refsect1></refentry>
+
+<refentry id="template.check.idref.targets">
+<refnamediv>
+<refname>check.idref.targets</refname>
+<refpurpose>Warn users about incorrectly typed references</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="check.idref.targets"&gt;
+&lt;xsl:param name="linkend"/&gt;
+&lt;xsl:param name="element-list"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.idref.targets</function> makes sure that the element
+pointed to by the link is one of the elements listed in
+<varname>element-list</varname> and warns the user otherwise.</para>
+
+</refsect1></refentry>
+
+<refentry id="template.copyright.years">
+<refnamediv>
+<refname>copyright.years</refname>
+<refpurpose>Print a set of years with collapsed ranges</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="copyright.years"&gt;
+&lt;xsl:param name="years"/&gt;
+&lt;xsl:param name="print.ranges" select="1"/&gt;
+&lt;xsl:param name="single.year.ranges" select="0"/&gt;
+&lt;xsl:param name="firstyear" select="0"/&gt;
+&lt;xsl:param name="nextyear" select="0"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template prints a list of year elements with consecutive
+years printed as a range. In other words:</para>
+
+
+<screen>&lt;year&gt;1992&lt;/year&gt;
+&lt;year&gt;1993&lt;/year&gt;
+&lt;year&gt;1994&lt;/year&gt;</screen>
+
+
+<para>is printed <quote>1992-1994</quote>, whereas:</para>
+
+
+<screen>&lt;year&gt;1992&lt;/year&gt;
+&lt;year&gt;1994&lt;/year&gt;</screen>
+
+
+<para>is printed <quote>1992, 1994</quote>.</para>
+
+
+
+<para>This template assumes that all the year elements contain only
+decimal year numbers, that the elements are sorted in increasing
+numerical order, that there are no duplicates, and that all the years
+are expressed in full <quote>century+year</quote>
+(<quote>1999</quote> not <quote>99</quote>) notation.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>years</term>
+<listitem>
+
+<para>The initial set of year elements.</para>
+
+</listitem>
+</varlistentry>
+<varlistentry><term>print.ranges</term>
+<listitem>
+
+<para>If non-zero, multi-year ranges are collapsed. If zero, all years
+are printed discretely.</para>
+
+</listitem>
+</varlistentry>
+<varlistentry><term>single.year.ranges</term>
+<listitem>
+
+<para>If non-zero, two consecutive years will be printed as a range,
+otherwise, they will be printed discretely. In other words, a single
+year range is <quote>1991-1992</quote> but discretely it's
+<quote>1991, 1992</quote>.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>This template returns the formatted list of years.</para>
+
+</refsect1></refentry>
+
+<refentry id="template.find.path.params">
+<refnamediv>
+<refname>find.path.params</refname>
+<refpurpose>Search in a table for the "best" match for the node</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="find.path.params"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+&lt;xsl:param name="table" select="''"/&gt;
+&lt;xsl:param name="location"&gt;
+    &lt;xsl:call-template name="xpath.location"&gt;
+      &lt;xsl:with-param name="node" select="$node"/&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/xsl:param&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template searches in a table for the value that most-closely
+(in the typical best-match sense of XSLT) matches the current (element)
+node location.</para>
+
+</refsect1></refentry>
+
+<refentry id="template.string.upper">
+<refnamediv>
+<refname>string.upper</refname>
+<refpurpose>Converts a string to all uppercase letters</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="string.upper"&gt;
+&lt;xsl:param name="string" select="''"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>Given a string, this template does a language-aware conversion
+of that string to all uppercase letters, based on the values of the
+<literal>lowercase.alpha</literal> and
+<literal>uppercase.alpha</literal> gentext keys for the current
+locale. It affects only those characters found in the values of
+<literal>lowercase.alpha</literal> and
+<literal>uppercase.alpha</literal>. All other characters are left
+unchanged.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>string</term>
+<listitem>
+
+<para>The string to convert to uppercase.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1></refentry>
+
+<refentry id="template.string.lower">
+<refnamediv>
+<refname>string.lower</refname>
+<refpurpose>Converts a string to all lowercase letters</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="string.lower"&gt;
+&lt;xsl:param name="string" select="''"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>Given a string, this template does a language-aware conversion
+of that string to all lowercase letters, based on the values of the
+<literal>uppercase.alpha</literal> and
+<literal>lowercase.alpha</literal> gentext keys for the current
+locale. It affects only those characters found in the values of
+<literal>uppercase.alpha</literal> and
+<literal>lowercase.alpha</literal>. All other characters are left
+unchanged.</para>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>string</term>
+<listitem>
+
+<para>The string to convert to lowercase.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1></refentry>
+
+<refentry id="template.select.choice.separator">
+<refnamediv>
+<refname>select.choice.separator</refname>
+<refpurpose>Returns localized choice separator</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="select.choice.separator"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>This template enables auto-generation of an appropriate
+    localized "choice" separator (for example, "and" or "or") before
+    the final item in an inline list (though it could also be useful
+    for generating choice separators for non-inline lists).</para>
+
+    
+<para>It currently works by evaluating a processing instruction
+    (PI) of the form &lt;?dbchoice&#160;choice="foo"?&gt; :
+    
+<itemizedlist>
+      <listitem>
+        <simpara>if the value of the <tag>choice</tag>
+        pseudo-attribute is "and" or "or", returns a localized "and"
+        or "or"</simpara>
+      </listitem>
+      <listitem>
+        <simpara>otherwise returns the literal value of the
+        <tag>choice</tag> pseudo-attribute</simpara>
+      </listitem>
+    </itemizedlist>
+
+    The latter is provided only as a temporary workaround because the
+    locale files do not currently have translations for the word
+    <wordasword>or</wordasword>. So if you want to generate a a
+    logical "or" separator in French (for example), you currently need
+    to do this:
+    <literallayout>&lt;?dbchoice choice="ou"?&gt;</literallayout>
+    </para>
+
+    <warning>
+      
+<para>The <tag>dbchoice</tag> processing instruction is
+      an unfortunate hack; support for it may disappear in the future
+      (particularly if and when a more appropriate means for marking
+      up "choice" lists becomes available in DocBook).</para>
+
+    </warning>
+  </refsect1></refentry>
+
+<refentry id="template.evaluate.info.profile">
+<refnamediv>
+<refname>evaluate.info.profile</refname>
+<refpurpose>Evaluates an info profile</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="evaluate.info.profile"&gt;
+&lt;xsl:param name="profile"/&gt;
+&lt;xsl:param name="info"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>This template evaluates an "info profile" matching the XPath
+    expression given by the <parameter>profile</parameter>
+    parameter. It relies on the XSLT <function>evaluate()</function>
+    extension function.</para>
+
+
+    
+<para>The value of the <parameter>profile</parameter> parameter
+    can include the literal string <literal>$info</literal>. If found
+    in the value of the <parameter>profile</parameter> parameter, the
+    literal string <literal>$info</literal> string is replaced with
+    the value of the <parameter>info</parameter> parameter, which
+    should be a set of <replaceable>*info</replaceable> nodes; the
+    expression is then evaluated using the XSLT
+    <function>evaluate()</function> extension function.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+       <varlistentry>
+        <term>profile</term>
+        <listitem>
+          
+<para>A string representing an XPath expression </para>
+
+        </listitem>
+      </varlistentry>
+       <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of *info nodes</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Returns a node (the result of evaluating the
+    <parameter>profile</parameter> parameter)</para>
+
+  </refsect1></refentry>
+
+<refentry id="template.graphic.format.content-type">
+<refnamediv>
+<refname>graphic.format.content-type</refname>
+<refpurpose>Returns mimetype for media format</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="graphic.format.content-type"&gt;
+&lt;xsl:param name="format"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>This takes as input a 'format' param and returns
+    a mimetype string.  It uses an xsl:choose after first
+    converting the input to all uppercase.</para>
+
+  </refsect1></refentry>
+</reference>
+        <reference id="refentry" xml:base="../common/refentry.xml">
+  <info>
+    <title>Common &#187; Refentry Metadata Template Reference</title>
+    <releaseinfo role="meta">
+      $Id: refentry.xsl 7867 2008-03-07 09:54:25Z xmldoc $
+    </releaseinfo>
+  </info>
+  
+  <partintro id="partintro">
+    <title>Introduction</title>
+    
+<para>This is technical reference documentation for the &#8220;refentry
+    metadata&#8221; templates in the DocBook XSL Stylesheets.</para>
+
+    
+<para>This is not intended to be user documentation. It is provided
+    for developers writing customization layers for the stylesheets.</para>
+
+    <note>
+      
+<para>Currently, only the manpages stylesheets make use of these
+      templates. They are, however, potentially useful elsewhere.</para>
+
+    </note>
+  </partintro>
+
+<refentry id="template.get.refentry.metadata">
+<refnamediv>
+<refname>get.refentry.metadata</refname>
+<refpurpose>Gathers metadata from a refentry and its ancestors</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.metadata"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Reference documentation for particular commands, functions,
+    etc., is sometimes viewed in isolation from its greater "context". For
+    example, users view Unix man pages as, well, individual pages, not as
+    part of a "book" of some kind. Therefore, it is sometimes necessary to
+    embed "context" information in output for each <tag>refentry</tag>.</para>
+
+
+    
+<para>However, one problem is that different users mark up that
+    context information in different ways. Often (usually), the
+    context information is not actually part of the content of the
+    <tag>refentry</tag> itself, but instead part of the content of a
+    parent or ancestor element to the <tag>refentry</tag>. And
+    even then, DocBook provides a variety of elements that users might
+    potentially use to mark up the same kind of information. One user
+    might use the <tag>productnumber</tag> element to mark up version
+    information about a particular product, while another might use
+    the <tag>releaseinfo</tag> element.</para>
+
+
+    
+<para>Taking all that in mind, the
+    <function>get.refentry.metadata</function> template tries to gather
+    metadata from a <tag>refentry</tag> element and its ancestor
+    elements in an intelligent and user-configurable way. The basic
+    mechanism used in the XPath expressions throughout this stylesheet
+    is to select the relevant metadata from the *info element that is
+    closest to the actual <tag>refentry</tag>&#160;&#8211; either on the
+    <tag>refentry</tag> itself, or on its nearest ancestor.</para>
+
+
+    <note>
+      
+<para>The <function>get.refentry.metadata</function>
+        template is actually just sort of a "driver" template; it
+        calls other templates that do the actual data collection,
+        then returns the data as a set.</para>
+
+    </note>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          
+<para>A node containing user preferences (from global
+          stylesheet parameters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Returns a node set with the following elements. The
+    descriptions are verbatim from the <literal>man(7)</literal> man
+    page.
+    
+<variablelist>
+      <varlistentry>
+        <term>title</term>
+        <listitem>
+          
+<para>the title of the man page (e.g., <literal>MAN</literal>)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>section</term>
+        <listitem>
+          
+<para>the section number the man page should be placed in (e.g.,
+          <literal>7</literal>)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>date</term>
+        <listitem>
+          
+<para>the date of the last revision</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>source</term>
+        <listitem>
+          
+<para>the source of the command</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>manual</term>
+        <listitem>
+          
+<para>the title of the manual (e.g., <citetitle>Linux
+          Programmer's Manual</citetitle>)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+    </para>
+
+  </refsect1></refentry>
+
+<refentry id="template.get.refentry.title">
+<refnamediv>
+<refname>get.refentry.title</refname>
+<refpurpose>Gets title metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.title"&gt;
+&lt;xsl:param name="refname"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <literal>man(7)</literal> man page describes this as "the
+    title of the man page (e.g., <literal>MAN</literal>). This differs
+    from <tag>refname</tag> in that, if the <tag>refentry</tag> has a
+    <tag>refentrytitle</tag>, we use that as the <tag>title</tag>;
+    otherwise, we just use first <tag>refname</tag> in the first
+    <tag>refnamediv</tag> in the source.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+  
+<para>Returns a <tag>title</tag> node.</para>
+</refsect1></refentry>
+
+<refentry id="template.get.refentry.section">
+<refnamediv>
+<refname>get.refentry.section</refname>
+<refpurpose>Gets section metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.section"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="quiet" select="0"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <literal>man(7)</literal> man page describes this as "the
+    section number the man page should be placed in (e.g.,
+    <literal>7</literal>)". If we do not find a <tag>manvolnum</tag>
+    specified in the source, and we find that the <tag>refentry</tag> is
+    for a function, we use the section number <literal>3</literal>
+    ["Library calls (functions within program libraries)"]; otherwise, we
+    default to using <literal>1</literal> ["Executable programs or shell
+    commands"].</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>quiet</term>
+        <listitem>
+          
+<para>If non-zero, no "missing" message is emitted</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+  
+<para>Returns a string representing a section number.</para>
+</refsect1></refentry>
+
+<refentry id="template.get.refentry.date">
+<refnamediv>
+<refname>get.refentry.date</refname>
+<refpurpose>Gets date metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.date"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <literal>man(7)</literal> man page describes this as "the
+    date of the last revision". If we cannot find a date in the source, we
+    generate one.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          
+<para>A node containing users preferences (from global stylesheet parameters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Returns a <tag>date</tag> node.</para>
+
+  </refsect1></refentry>
+
+<refentry id="template.get.refentry.source">
+<refnamediv>
+<refname>get.refentry.source</refname>
+<refpurpose>Gets source metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.source"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <literal>man(7)</literal> man page describes this as "the
+    source of the command", and provides the following examples:
+    
+<itemizedlist>
+      <listitem>
+        
+<para>For binaries, use something like: GNU, NET-2, SLS
+        Distribution, MCC Distribution.</para>
+
+      </listitem>
+      <listitem>
+        
+<para>For system calls, use the version of the kernel that you are
+        currently looking at: Linux 0.99.11.</para>
+
+      </listitem>
+      <listitem>
+        
+<para>For library calls, use the source of the function: GNU, BSD
+        4.3, Linux DLL 4.4.1.</para>
+
+      </listitem>
+    </itemizedlist>
+
+    </para>
+
+
+    
+<para>The <literal>solbook(5)</literal> man page describes
+    something very much like what <literal>man(7)</literal> calls
+    "source", except that <literal>solbook(5)</literal> names it
+    "software" and describes it like this:
+    <blockquote>
+      
+<para>This is the name of the software product that the topic
+      discussed on the reference page belongs to. For example UNIX
+      commands are part of the <literal>SunOS x.x</literal>
+      release.</para>
+
+    </blockquote>
+    </para>
+
+
+    
+<para>In practice, there are many pages that simply have a version
+    number in the "source" field. So, it looks like what we have is a
+    two-part field,
+    <replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>,
+    where:
+    
+<variablelist>
+      <varlistentry>
+        <term>Name</term>
+        <listitem>
+          
+<para>product name (e.g., BSD) or org. name (e.g., GNU)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Version</term>
+        <listitem>
+          
+<para>version name</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+    Each part is optional. If the <replaceable>Name</replaceable> is a
+    product name, then the <replaceable>Version</replaceable> is probably
+    the version of the product. Or there may be no
+    <replaceable>Name</replaceable>, in which case, if there is a
+    <replaceable>Version</replaceable>, it is probably the version of the
+    item itself, not the product it is part of. Or, if the
+    <replaceable>Name</replaceable> is an organization name, then there
+    probably will be no <replaceable>Version</replaceable>.
+    </para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          
+<para>A node containing users preferences (from global
+          stylesheet parameters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Returns a <tag>source</tag> node.</para>
+
+  </refsect1></refentry>
+
+<refentry id="template.get.refentry.source.name">
+<refnamediv>
+<refname>get.refentry.source.name</refname>
+<refpurpose>Gets source-name metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.source.name"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>A "source name" is one part of a (potentially) two-part
+    <replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>
+    source field. For more details, see the documentation for the
+    <function>get.refentry.source</function> template.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          
+<para>A node containing users preferences (from global
+          stylesheet parameters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Depending on what output method is used for the
+  current stylesheet, either returns a text node or possibly an element
+  node, containing "source name" data.</para>
+
+  </refsect1></refentry>
+
+<refentry id="template.get.refentry.version">
+<refnamediv>
+<refname>get.refentry.version</refname>
+<refpurpose>Gets version metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.version"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>A "version" is one part of a (potentially) two-part
+    <replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>
+    source field. For more details, see the documentation for the
+    <function>get.refentry.source</function> template.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          
+<para>A node containing users preferences (from global
+          stylesheet parameters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Depending on what output method is used for the
+  current stylesheet, either returns a text node or possibly an element
+  node, containing "version" data.</para>
+
+  </refsect1></refentry>
+
+<refentry id="template.get.refentry.manual">
+<refnamediv>
+<refname>get.refentry.manual</refname>
+<refpurpose>Gets source metadata for a refentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.manual"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="prefs"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <literal>man(7)</literal> man page describes this as "the
+    title of the manual (e.g., <citetitle>Linux Programmer's
+    Manual</citetitle>)". Here are some examples from existing man pages:
+    
+<itemizedlist>
+      <listitem>
+        
+<para><citetitle>dpkg utilities</citetitle>
+        (<command>dpkg-name</command>)</para>
+
+      </listitem>
+      <listitem>
+        
+<para><citetitle>User Contributed Perl Documentation</citetitle>
+        (<command>GET</command>)</para>
+
+      </listitem>
+      <listitem>
+        
+<para><citetitle>GNU Development Tools</citetitle>
+        (<command>ld</command>)</para>
+
+      </listitem>
+      <listitem>
+        
+<para><citetitle>Emperor Norton Utilities</citetitle>
+        (<command>ddate</command>)</para>
+
+      </listitem>
+      <listitem>
+        
+<para><citetitle>Debian GNU/Linux manual</citetitle>
+        (<command>faked</command>)</para>
+
+      </listitem>
+      <listitem>
+        
+<para><citetitle>GIMP Manual Pages</citetitle>
+        (<command>gimp</command>)</para>
+
+      </listitem>
+      <listitem>
+        
+<para><citetitle>KDOC Documentation System</citetitle>
+        (<command>qt2kdoc</command>)</para>
+
+      </listitem>
+    </itemizedlist>
+
+    </para>
+
+
+    
+<para>The <literal>solbook(5)</literal> man page describes
+    something very much like what <literal>man(7)</literal> calls
+    "manual", except that <literal>solbook(5)</literal> names it
+    "sectdesc" and describes it like this:
+    <blockquote>
+      
+<para>This is the section title of the reference page; for
+      example <literal>User Commands</literal>.</para>
+
+    </blockquote>
+    </para>
+
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A set of info nodes (from a <tag>refentry</tag>
+          element and its ancestors)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>prefs</term>
+        <listitem>
+          
+<para>A node containing users preferences (from global
+          stylesheet parameters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Returns a <tag>manual</tag> node.</para>
+
+  </refsect1></refentry>
+
+<refentry id="template.get.refentry.metadata.prefs">
+<refnamediv>
+<refname>get.refentry.metadata.prefs</refname>
+<refpurpose>Gets user preferences for refentry metadata gathering</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.refentry.metadata.prefs"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The DocBook XSL stylesheets include several user-configurable
+    global stylesheet parameters for controlling <tag>refentry</tag>
+    metadata gathering. Those parameters are not read directly by the
+    other <tag>refentry</tag> metadata-gathering
+    templates. Instead, they are read only by the
+    <function>get.refentry.metadata.prefs</function> template,
+    which assembles them into a structure that is then passed to
+    the other <tag>refentry</tag> metadata-gathering
+    templates.</para>
+
+
+    
+<para>So the, <function>get.refentry.metadata.prefs</function>
+    template is the only interface to collecting stylesheet parameters for
+    controlling <tag>refentry</tag> metadata gathering.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<para>There are no local parameters for this template; however, it
+    does rely on a number of global parameters.</para>
+
+  </refsect1><refsect1><title>Returns</title>
+    
+<para>Returns a <tag>manual</tag> node.</para>
+
+  </refsect1></refentry>
+
+<refentry id="template.set.refentry.metadata">
+<refnamediv>
+<refname>set.refentry.metadata</refname>
+<refpurpose>Sets content of a refentry metadata item</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="set.refentry.metadata"&gt;
+&lt;xsl:param name="refname"/&gt;
+&lt;xsl:param name="info"/&gt;
+&lt;xsl:param name="contents"/&gt;
+&lt;xsl:param name="context"/&gt;
+&lt;xsl:param name="preferred"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <function>set.refentry.metadata</function> template is
+    called each time a suitable source element is found for a certain
+    metadata field.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry>
+        <term>refname</term>
+        <listitem>
+          
+<para>The first <tag>refname</tag> in the refentry</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>info</term>
+        <listitem>
+          
+<para>A single *info node that contains the selected source element.</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>contents</term>
+        <listitem>
+          
+<para>A node containing the selected source element.</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>context</term>
+        <listitem>
+          
+<para>A string describing the metadata context in which the
+          <function>set.refentry.metadata</function> template was
+          called: either "date", "source", "version", or "manual".</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+  
+<para>Returns formatted contents of a selected source element.</para>
+</refsect1></refentry>
+</reference>
+        <reference id="utility" xml:base="../common/utility.xml">
+  <info>
+    <title>Common &#187; Utility Template Reference</title>
+    <releaseinfo role="meta">
+      $Id: utility.xsl 7101 2007-07-20 15:32:12Z xmldoc $
+    </releaseinfo>
+  </info>
+  
+  <partintro id="partintro">
+    <title>Introduction</title>
+    
+<para>This is technical reference documentation for the
+      miscellaneous utility templates in the DocBook XSL
+      Stylesheets.</para>
+
+    <note>
+      
+<para>These templates are defined in a separate file from the set
+        of &#8220;common&#8221; templates because some of the common templates
+        reference DocBook XSL stylesheet parameters, requiring the
+        entire set of parameters to be imported/included in any
+        stylesheet that imports/includes the common templates.</para>
+
+      
+<para>The utility templates don&#8217;t import or include any DocBook
+        XSL stylesheet parameters, so the utility templates can be used
+        without importing the whole set of parameters.</para>
+
+    </note>
+    
+<para>This is not intended to be user documentation. It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+
+  </partintro>
+
+<refentry id="template.log.message">
+<refnamediv>
+<refname>log.message</refname>
+<refpurpose>Logs/emits formatted notes and warnings</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="log.message"&gt;
+&lt;xsl:param name="level"/&gt;
+&lt;xsl:param name="source"/&gt;
+&lt;xsl:param name="context-desc"/&gt;
+&lt;xsl:param name="context-desc-field-length"&gt;12&lt;/xsl:param&gt;
+&lt;xsl:param name="context-desc-padded"&gt;
+    &lt;xsl:if test="not($context-desc = '')"&gt;
+      &lt;xsl:call-template name="pad-string"&gt;
+        &lt;xsl:with-param name="leftRight"&gt;right&lt;/xsl:with-param&gt;
+        &lt;xsl:with-param name="padVar" select="substring($context-desc, 1, $context-desc-field-length)"/&gt;
+        &lt;xsl:with-param name="length" select="$context-desc-field-length"/&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:if&gt;
+  &lt;/xsl:param&gt;
+&lt;xsl:param name="message"/&gt;
+&lt;xsl:param name="message-field-length" select="45"/&gt;
+&lt;xsl:param name="message-padded"&gt;
+    &lt;xsl:variable name="spaces-for-blank-level"&gt;
+      &lt;!-- * if the level field is blank, we'll need to pad out --&gt;
+      &lt;!-- * the message field with spaces to compensate --&gt;
+      &lt;xsl:choose&gt;
+        &lt;xsl:when test="$level = ''"&gt;
+          &lt;xsl:value-of select="4 + 2"/&gt;
+          &lt;!-- * 4 = hard-coded length of comment text ("Note" or "Warn") --&gt;
+          &lt;!-- * + 2 = length of colon-plus-space separator ": " --&gt;
+        &lt;/xsl:when&gt;
+        &lt;xsl:otherwise&gt;
+          &lt;xsl:value-of select="0"/&gt;
+        &lt;/xsl:otherwise&gt;
+      &lt;/xsl:choose&gt;
+    &lt;/xsl:variable&gt;
+    &lt;xsl:variable name="spaces-for-blank-context-desc"&gt;
+      &lt;!-- * if the context-description field is blank, we'll need --&gt;
+      &lt;!-- * to pad out the message field with spaces to compensate --&gt;
+      &lt;xsl:choose&gt;
+        &lt;xsl:when test="$context-desc = ''"&gt;
+          &lt;xsl:value-of select="$context-desc-field-length + 2"/&gt;
+          &lt;!-- * + 2 = length of colon-plus-space separator ": " --&gt;
+        &lt;/xsl:when&gt;
+        &lt;xsl:otherwise&gt;
+          &lt;xsl:value-of select="0"/&gt;
+        &lt;/xsl:otherwise&gt;
+      &lt;/xsl:choose&gt;
+    &lt;/xsl:variable&gt;
+    &lt;xsl:variable name="extra-spaces" select="$spaces-for-blank-level + $spaces-for-blank-context-desc"/&gt;
+    &lt;xsl:call-template name="pad-string"&gt;
+      &lt;xsl:with-param name="leftRight"&gt;right&lt;/xsl:with-param&gt;
+      &lt;xsl:with-param name="padVar" select="substring($message, 1, ($message-field-length + $extra-spaces))"/&gt;
+      &lt;xsl:with-param name="length" select="$message-field-length + $extra-spaces"/&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/xsl:param&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <function>log.message</function> template is a utility
+    template for logging/emitting formatted messages&#160;&#8211; that is,
+    notes and warnings, along with a given log &#8220;level&#8221; and an
+    identifier for the &#8220;source&#8221; that the message relates to.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>level</term>
+        <listitem>
+          
+<para>Text to log/emit in the message-level field to
+            indicate the message level
+          (<literal>Note</literal> or
+          <literal>Warning</literal>)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>source</term>
+        <listitem>
+          
+<para>Text to log/emit in the source field to identify the
+            &#8220;source&#8221; to which the notification/warning relates.
+            This can be any arbitrary string, but because the
+            message lacks line and column numbers to identify the
+            exact part of the source document to which it
+            relates, the intention is that the value you pass
+            into the <literal>source</literal> parameter should
+            give the user some way to identify the portion of
+            their source document on which to take potentially
+            take action in response to the log message (for
+            example, to edit, change, or add content).</para>
+
+          
+<para>So the <literal>source</literal> value should be,
+            for example, an ID, book/chapter/article title, title
+            of some formal object, or even a string giving an
+            XPath expression.</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>context-desc</term>
+        <listitem>
+          
+<para>Text to log/emit in the context-description field to
+            describe the context for the message.</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>context-desc-field-length</term>
+        <listitem>
+          
+<para>Specifies length of the context-description field
+            (in characters); default is 12</para>
+
+          
+<para>If the text specified by the
+            <literal>context-desc</literal> parameter is longer
+            than the number of characters specified in
+            <literal>context-desc-field-length</literal>, it is
+            truncated to <literal>context-desc-field-length</literal>
+            (12 characters by default).</para>
+
+          
+<para>If the specified text is shorter than
+            <literal>context-desc-field-length</literal>,
+          it is right-padded out to
+          <literal>context-desc-field-length</literal> (12 by
+          default).</para>
+
+        
+<para>If no value has been specified for the
+          <literal>context-desc</literal> parameter, the field is
+          left empty and the text of the log message begins with
+          the value of the <literal>message</literal>
+          parameter.</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>message</term>
+        <listitem>
+          
+<para>Text to log/emit in the actual message field</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>message-field-length</term>
+        <listitem>
+          
+<para>Specifies length of the message
+            field (in characters); default is 45</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1><title>Returns</title>
+  
+<para>Outputs a message (generally, to standard error).</para>
+</refsect1></refentry>
+
+<refentry id="template.get.doc.title">
+<refnamediv>
+<refname>get.doc.title</refname>
+<refpurpose>Gets a title from the current document</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="get.doc.title"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The <function>get.doc.title</function> template is a
+      utility template for returning the first title found in the
+      current document.</para>
+
+  </refsect1><refsect1><title>Returns</title>
+  
+<para>Returns a string containing some identifying title for the
+    current document .</para>
+</refsect1></refentry>
+
+<refentry id="template.pad-string">
+<refnamediv>
+<refname>pad-string</refname>
+<refpurpose>Right-pads or left-pads a string out to a certain length</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="pad-string"&gt;
+&lt;xsl:param name="padChar" select="' '"/&gt;
+&lt;xsl:param name="leftRight"&gt;left&lt;/xsl:param&gt;
+&lt;xsl:param name="padVar"/&gt;
+&lt;xsl:param name="length"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>This function takes string <parameter>padVar</parameter> and
+      pads it out in the direction <parameter>rightLeft</parameter> to
+      the string-length <parameter>length</parameter>, using string
+      <parameter>padChar</parameter> (a space character by default) as
+      the padding string (note that <parameter>padChar</parameter> can
+      be a string; it is not limited to just being a single
+      character).</para>
+
+    <note>
+      
+<para>This function began as a copy of Nate Austin's
+        <function>prepend-pad</function> function in the <link xlink:href="http://www.dpawson.co.uk/xsl/sect2/padding.html">Padding
+          Content</link> section of Dave Pawson's <link xlink:href="http://www.dpawson.co.uk/xsl/index.html">XSLT
+          FAQ</link>.</para>
+
+    </note>
+  </refsect1><refsect1><title>Returns</title>
+  
+<para>Returns a (padded) string.</para>
+</refsect1></refentry>
+</reference>
+        <reference id="charmap" xml:base="../common/charmap.xml">
+  <info>
+    <title>Common &#187; Character-Map Template Reference</title>
+    <releaseinfo role="meta">
+      $Id: charmap.xsl 7266 2007-08-22 11:58:42Z xmldoc $
+    </releaseinfo>
+  </info>
+  
+  <partintro id="partintro">
+    <title>Introduction</title>
+    
+<para>This is technical reference documentation for the
+      character-map templates in the DocBook XSL Stylesheets.</para>
+
+    <note>
+      
+<para>These templates are defined in a separate file from the set
+        of &#8220;common&#8221; templates because some of the common templates
+        reference DocBook XSL stylesheet parameters, requiring the
+        entire set of parameters to be imported/included in any
+        stylesheet that imports/includes the common templates.</para>
+
+      
+<para>The character-map templates don&#8217;t import or include
+        any DocBook XSL stylesheet parameters, so the
+        character-map templates can be used without importing the
+        whole set of parameters.</para>
+
+    </note>
+    
+<para>This is not intended to be user documentation. It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+
+  </partintro>
+
+<refentry id="template.apply-character-map">
+<refnamediv>
+<refname>apply-character-map</refname>
+<refpurpose>Applies an XSLT character map</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="apply-character-map"&gt;
+&lt;xsl:param name="content"/&gt;
+&lt;xsl:param name="map.contents"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>This template applies an <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character map</link>; that is, it causes certain
+      individual characters to be substituted with strings of one
+      or more characters. It is useful mainly for replacing
+      multiple &#8220;special&#8221; characters or symbols in the same target
+      content. It uses the value of
+      <parameter>map.contents</parameter> to do substitution on
+      <parameter>content</parameter>, and then returns the
+      modified contents.</para>
+
+    <note>
+      
+<para>This template is a very slightly modified version of
+        Jeni Tennison&#8217;s <function>replace_strings</function>
+        template in the <link xlink:href="http://www.dpawson.co.uk/xsl/sect2/StringReplace.html#d9351e13">multiple string replacements</link> section of Dave Pawson&#8217;s
+        <link xlink:href="http://www.dpawson.co.uk/xsl/index.html">XSLT FAQ</link>.</para>
+
+      
+<para>The <function>apply-string-subst-map</function>
+        template is essentially the same template as the
+        <function>apply-character-map</function> template; the
+        only difference is that in the map that
+        <function>apply-string-subst-map</function> expects, <tag class="attribute">oldstring</tag> and <tag class="attribute">newstring</tag> attributes are used
+        instead of <tag class="attribute">character</tag> and <tag class="attribute">string</tag> attributes.</para>
+
+    </note>
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>content</term>
+        <listitem>
+          
+<para>The content on which to perform the character-map
+            substitution.</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>map.contents</term>
+        <listitem>
+          
+<para>A node set of elements, with each element having
+            the following attributes:
+            
+<itemizedlist>
+              <listitem>
+                <simpara><tag class="attribute">character</tag>, a
+                  character to be replaced</simpara>
+              </listitem>
+              <listitem>
+                <simpara><tag class="attribute">string</tag>, a
+                  string with which to replace <tag class="attribute">character</tag></simpara>
+              </listitem>
+            </itemizedlist>
+
+          </para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+
+<refentry id="template.read-character-map">
+<refnamediv>
+<refname>read-character-map</refname>
+<refpurpose>Reads in all or part of an XSLT character map</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="read-character-map"&gt;
+&lt;xsl:param name="use.subset"/&gt;
+&lt;xsl:param name="subset.profile"/&gt;
+&lt;xsl:param name="uri"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>The XSLT 2.0 specification describes <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">character maps</link> and explains how they may be used
+      to allow a specific character appearing in a text or
+      attribute node in a final result tree to be substituted by
+      a specified string of characters during serialization. The
+      <function>read-character-map</function> template provides a
+      means for reading and using character maps with XSLT
+      1.0-based tools.</para>
+
+    
+<para>This template reads the character-map contents from
+      <parameter>uri</parameter> (in full or in part, depending on
+      the value of the <parameter>use.subset</parameter>
+      parameter), then passes those contents to the
+      <function>apply-character-map</function> template, along with
+      <parameter>content</parameter>, the data on which to perform
+      the character substitution.</para>
+
+    
+<para>Using the character map &#8220;in part&#8221; means that it uses only
+      those <tag>output-character</tag> elements that match the
+      XPath expression given in the value of the
+      <parameter>subset.profile</parameter> parameter. The current
+      implementation of that capability here relies on the
+      <function>evaluate</function> extension XSLT function.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>use.subset</term>
+        <listitem>
+          
+<para>Specifies whether to use a subset of the character
+            map instead of the whole map; boolean
+            <literal>0</literal> or <literal>1</literal></para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>subset.profile</term>
+        <listitem>
+          
+<para>XPath expression that specifies what subset of the
+            character map to use</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>uri</term>
+        <listitem>
+          
+<para>URI for a character map</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+</reference>
+    </part>
+    <part id="table-templates">
+      <?dbhtml dir="fo"?>
+  
+  <info xml:base="../fo/table.xml">
+    <title>Formatting Object Table Reference</title>
+    <releaseinfo role="meta">
+      $Id: table.xsl 9345 2012-05-11 03:46:46Z bobstayton $
+    </releaseinfo>
+  </info>
+  <partintro id="partintro" xml:base="../fo/table.xml">
+    <title>Introduction</title>
+    
+<para>This is technical reference documentation for the FO
+      table-processing templates in the DocBook XSL Stylesheets.</para>
+
+    
+<para>This is not intended to be user documentation.  It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+
+  </partintro>
+
+<refentry id="template.calc.column.width" xml:base="../fo/table.xml">
+<refnamediv>
+<refname>calc.column.width</refname>
+<refpurpose>Calculate an XSL FO table column width specification from a
+CALS table column width specification.</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="calc.column.width"&gt;
+&lt;xsl:param name="colwidth"&gt;1*&lt;/xsl:param&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>CALS expresses table column widths in the following basic
+forms:</para>
+
+
+
+<itemizedlist>
+<listitem>
+
+<para><emphasis>99.99units</emphasis>, a fixed length specifier.</para>
+
+</listitem>
+<listitem>
+
+<para><emphasis>99.99</emphasis>, a fixed length specifier without any units.</para>
+
+</listitem>
+<listitem>
+
+<para><emphasis>99.99*</emphasis>, a relative length specifier.</para>
+
+</listitem>
+<listitem>
+
+<para><emphasis>99.99*+99.99units</emphasis>, a combination of both.</para>
+
+</listitem>
+</itemizedlist>
+
+
+
+<para>The CALS units are points (pt), picas (pi), centimeters (cm),
+millimeters (mm), and inches (in). These are the same units as XSL,
+except that XSL abbreviates picas "pc" instead of "pi". If a length
+specifier has no units, the CALS default unit (pt) is assumed.</para>
+
+
+
+<para>Relative length specifiers are represented in XSL with the
+proportional-column-width() function.</para>
+
+
+
+<para>Here are some examples:</para>
+
+
+
+<itemizedlist>
+<listitem>
+
+<para>"36pt" becomes "36pt"</para>
+
+</listitem>
+<listitem>
+
+<para>"3pi" becomes "3pc"</para>
+
+</listitem>
+<listitem>
+
+<para>"36" becomes "36pt"</para>
+
+</listitem>
+<listitem>
+
+<para>"3*" becomes "proportional-column-width(3)"</para>
+
+</listitem>
+<listitem>
+
+<para>"3*+2pi" becomes "proportional-column-width(3)+2pc"</para>
+
+</listitem>
+<listitem>
+
+<para>"1*+2" becomes "proportional-column-width(1)+2pt"</para>
+
+</listitem>
+</itemizedlist>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>colwidth</term>
+<listitem>
+
+<para>The CALS column width specification.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>The XSL column width specification.</para>
+
+</refsect1></refentry>
+
+    </part>
+    <part id="template"> 
+      <?dbhtml dir="template"?><?dbhtml filename="index.html"?>
+  
+  
+  <info xml:base="../template/titlepage.xml">
+    <title>Titlepage Template Stylesheet Reference</title>
+    <releaseinfo role="meta">
+      $Id: titlepage.xsl 9394 2012-06-02 21:18:04Z bobstayton $
+    </releaseinfo>
+  </info>
+  <partintro id="intro_partintro" xml:base="../template/titlepage.xml">
+    <title>Introduction</title>
+    
+<para>This is technical reference documentation for the
+      &#8220;titlepage&#8221; templates in the DocBook XSL Stylesheets.</para>
+
+    
+<para>This is not intended to be user documentation.  It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+
+  </partintro>
+
+<refentry id="templates" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>t:templates</refname>
+<refpurpose>Construct a stylesheet for the templates provided</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:templates"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The <literal>t:templates</literal> element is the root of a
+set of templates. This template creates an appropriate
+<literal>xsl:stylesheet</literal> for the templates.</para>
+
+
+
+<para>If the <literal>t:templates</literal> element has a
+<literal>base-stylesheet</literal> attribute, an
+<literal>xsl:import</literal> statement is constructed for it.</para>
+
+</refsect1></refentry>
+
+<refentry id="star" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>xsl:*</refname>
+<refpurpose>Copy xsl: elements straight through</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="xsl:*"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template simply copies the xsl: elements
+straight through into the result tree.</para>
+
+</refsect1></refentry>
+
+<refentry id="titlepage" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>t:titlepage</refname>
+<refpurpose>Create the templates necessary to construct a title page</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:titlepage"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The <literal>t:titlepage</literal> element creates a set of
+templates for processing the titlepage for an element. The
+<quote>root</quote> of this template set is the template named
+<quote><literal>wrapper.titlepage</literal></quote>. That is the
+template that should be called to generate the title page.
+</para>
+
+
+
+<para>The <literal>t:titlepage</literal> element has three attributes:
+
+
+<variablelist>
+<varlistentry><term>element</term>
+<listitem>
+<para>The name of the source document element for which
+these templates apply. In other words, to make a title page for the
+<tag>article</tag> element, set the
+<tag class="attribute">element</tag> attribute to
+<quote><literal>article</literal></quote>. This attribute is required.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>wrapper</term>
+<listitem>
+<para>The entire title page can be wrapped with an element.
+This attribute identifies that element.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>class</term>
+<listitem>
+<para>If the <tag class="attribute">class</tag> attribute
+is set, a <tag class="attribute">class</tag> attribute with this
+value will be added to the wrapper element that surrounds the entire
+title page.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</para>
+
+
+
+<para>Any other attributes are copied through literally to the
+wrapper element.</para>
+
+
+
+<para>The content of a <literal>t:titlepage</literal> is one or
+more <literal>t:titlepage-content</literal>,
+<literal>t:titlepage-separator</literal>, and
+<literal>t:titlepage-before</literal> elements.</para>
+
+
+
+<para>Each of these elements may be provided for the <quote>recto</quote>
+and <quote>verso</quote> sides of the title page.</para>
+
+
+</refsect1></refentry>
+
+<refentry id="attr_star_in_copy.literal.atts" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>@* (in copy.literal.atts mode)</refname>
+<refpurpose>Copy t:titlepage attributes</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="@*" mode="copy.literal.atts"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template copies all of the <quote>other</quote> attributes
+from a <literal>t:titlepage</literal> element onto the specified
+wrapper.</para>
+
+</refsect1></refentry>
+
+<refentry id="titlepage-content" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>t:titlepage-content</refname>
+<refpurpose>Create templates for the content of one side of a title page</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:titlepage-content"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The title page content, that is, the elements from the source
+document that are rendered on the title page, can be controlled independently
+for the recto and verso sides of the title page.</para>
+
+
+
+<para>The <literal>t:titlepage-content</literal> element has two attributes:
+
+
+<variablelist>
+<varlistentry><term>side</term>
+<listitem>
+<para>Identifies the side of the page to which this title
+page content applies. The
+<tag class="attribute">side</tag> attribute is required and
+must be set to either 
+<quote><literal>recto</literal></quote> or
+<quote><literal>verso</literal></quote>. In addition, you must specify
+exactly one <literal>t:titlepage-content</literal> for each side
+within each <literal>t:titlepage</literal>.</para>
+
+</listitem>
+</varlistentry>
+<varlistentry><term>order</term>
+<listitem>
+<para>Indicates how the order of the elements presented on
+the title page is determined. If the
+<tag class="attribute">order</tag> is
+<quote><literal>document</literal></quote>, the elements are presented
+in document order. Otherwise (if the
+<tag class="attribute">order</tag> is
+<quote><literal>stylesheet</literal></quote>), the elements are presented
+in the order that they appear in the template (and consequently in
+the stylesheet).</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</para>
+
+
+
+<para>The content of a <literal>t:titlepage-content</literal> element is
+a list of element names. These names should be unqualified.  They identify
+the elements in the source document that should appear on the title page.
+</para>
+
+
+
+<para>Each element may have a single attribute:
+<tag class="attribute">predicate</tag>. The value of this
+attribute is used as a predicate for the expression that matches
+the element on which it occurs.</para>
+
+
+
+<para>In other words, to put only the first three authors on the
+recto-side of a title
+page, you could specify:
+
+<screen>
+  &lt;t:titlepage-contents side="recto"&gt;
+    &lt;!-- other titlepage elements --&gt;
+    &lt;author predicate="[count(previous-sibling::author)&lt;2]"/&gt;
+    &lt;!-- other titlepage elements --&gt;
+  &lt;/t:titlepage-contents&gt;
+</screen>
+</para>
+
+
+
+<para>Usually, the elements so named are empty. But it is possible to
+make one level of selection within them. Suppose that you want to
+process <literal>authorgroup</literal> elements on the title page, but
+you want to select only proper authors, editors, or corporate authors,
+not collaborators or other credited authors.</para>
+
+
+
+<para>In that case, you can put a <literal>t:or</literal> group inside
+the <literal>authorgroup</literal> element:
+
+<screen>
+  &lt;t:titlepage-contents side="recto"&gt;
+    &lt;!-- other titlepage elements --&gt;
+    &lt;authorgroup&gt;
+      &lt;t:or&gt;
+        &lt;author/&gt;
+        &lt;editor/&gt;
+        &lt;corpauthor/&gt;
+      &lt;/t:or&gt;
+    &lt;/authorgroup&gt;
+    &lt;!-- other titlepage elements --&gt;
+  &lt;/t:titlepage-contents&gt;
+</screen>
+</para>
+
+
+
+<para>This will have the effect of automatically generating a template
+for processing <literal>authorgroup</literal>s in the title page mode,
+selecting only the specified children. If you need more complex processing,
+you'll have to construct the templates by hand.</para>
+
+
+</refsect1></refentry>
+
+<refentry id="titlepage-separator" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>t:titlepage-separator</refname>
+<refpurpose>Create templates for the separator</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:titlepage-separator"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The title page is separated from the content which follows it by
+the markup specified in the <literal>t:titlepage-separator</literal>
+element.</para>
+
+</refsect1></refentry>
+
+<refentry id="titlepage-before" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>t:titlepage-before</refname>
+<refpurpose>Create templates for what precedes a title page</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:titlepage-before"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>Each side of the title page is preceded by the markup specified
+in the <literal>t:titlepage-before</literal> element for that
+side.</para>
+
+</refsect1></refentry>
+
+<refentry id="star_in_copy" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>* (in copy mode)</refname>
+<refpurpose>Copy elements</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="copy"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template simply copies the elements that it applies to
+straight through into the result tree.</para>
+
+</refsect1></refentry>
+
+<refentry id="attr_star_in_copy" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>@* (in copy mode)</refname>
+<refpurpose>Copy attributes</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="@*" mode="copy"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template simply copies the attributes that it applies to
+straight through into the result tree.</para>
+
+</refsect1></refentry>
+
+<refentry id="attr_star_in_document.order" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>* (in document.order mode)</refname>
+<refpurpose>Create rules to process titlepage elements in document order</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="document.order"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template is called to process all of the children of the
+<literal>t:titlepage-content</literal> element. It creates the hairy
+select expression necessary to process each of those elements in
+the title page.</para>
+
+
+
+<para>Note that this template automatically handles the case where
+some DocBook elements, like title and subtitle, can occur both inside
+the *info elements where metadata is usually stored and outside.
+</para>
+
+
+
+<para>It also automatically calculates the name for the *info container
+and handles elements that have historically had containers with different
+names.</para>
+
+
+</refsect1></refentry>
+
+<refentry id="star_in_document.order" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>* (in document.order mode)</refname>
+<refpurpose>Create rules to process titlepage elements in stylesheet order</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="document.order"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template is called to process all of the children of the
+<literal>t:titlepage-content</literal> element. It creates the set
+of <literal>xsl:apply-templates</literal> elements necessary
+process each of those elements in the title page.</para>
+
+
+
+<para>Note that this template automatically handles the case where
+some DocBook elements, like title and subtitle, can occur both inside
+the *info elements where metadata is usually stored and outside.
+</para>
+
+
+
+<para>It also automatically calculates the name for the *info container
+and handles elements that have historically had containers with different
+names.</para>
+
+
+</refsect1></refentry>
+
+<refentry id="star_in_titlepage.specialrules" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>* (in titlepage.specialrules mode)</refname>
+<refpurpose>Create templates for special rules</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="titlepage.specialrules"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template is called to process all of the descendants of the
+<literal>t:titlepage-content</literal> element that require special
+processing. At present, that's just <literal>t:or</literal> elements.
+</para>
+
+</refsect1></refentry>
+
+<refentry id="star_in_titlepage.subrules" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>* (in titlepage.subrules mode)</refname>
+<refpurpose>Create template for individual special rules</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="titlepage.subrules"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template is called to process the children of special
+template elements.
+</para>
+
+</refsect1></refentry>
+
+<refentry id="or" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>t:or</refname>
+<refpurpose>Process the t:or special rule</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:or"/&gt;&lt;xsl:template match="t:or" mode="titlepage.subrules"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template processes t:or.</para>
+
+</refsect1></refentry>
+
+<refentry id="or_in_titlepage.subrules" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>t:or (in titlepage.subrules mode)</refname>
+<refpurpose>Process the t:or special rule in
+titlepage.subrules mode</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:or" mode="titlepage.subrules"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The titlepage.subrules mode doesn't apply to t:or, so just
+reprocess this node in the normal mode.</para>
+
+</refsect1></refentry>
+
+<refentry id="template.element-or-list" xml:base="../template/titlepage.xml">
+<refnamediv>
+<refname>element-or-list</refname>
+<refpurpose>Construct the "or-list" used in the select attribute for
+special rules.</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="element-or-list"&gt;
+&lt;xsl:param name="elements" select="*"/&gt;
+&lt;xsl:param name="element.count" select="count($elements)"/&gt;
+&lt;xsl:param name="count" select="1"/&gt;
+&lt;xsl:param name="orlist"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>Walk through each of the children of t:or, producing the
+text of the select attribute.</para>
+
+</refsect1></refentry>
+
+    </part>
+  </book>
+</set><!-- * vim: set ft=docbk foldlevel=2: -->
\ No newline at end of file
diff --git a/applications/content/template/docbook/docsrc/warranty.xml b/applications/content/template/docbook/docsrc/warranty.xml
new file mode 100644
index 0000000..3c70d32
--- /dev/null
+++ b/applications/content/template/docbook/docsrc/warranty.xml
@@ -0,0 +1,11 @@
+<legalnotice xmlns="http://docbook.org/ns/docbook" version="5.0"
+  xml:id="warranty"><title>Warranty</title>
+<para>THE SOFTWARE IS PROVIDED <quote>AS IS</quote>,
+WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL NORMAN WALSH OR ANY
+OTHER CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
+OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.</para>
+</legalnotice>
diff --git a/applications/content/template/docbook/eclipse/eclipse.xsl b/applications/content/template/docbook/eclipse/eclipse.xsl
new file mode 100644
index 0000000..3ede152
--- /dev/null
+++ b/applications/content/template/docbook/eclipse/eclipse.xsl
@@ -0,0 +1,306 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:ng="http://docbook.org/docbook-ng"
+  xmlns:db="http://docbook.org/ns/docbook"
+  xmlns:exsl="http://exslt.org/common"
+  version="1.0"
+  exclude-result-prefixes="exsl db ng">
+  
+<xsl:import href="../html/chunk.xsl"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="$exsl.node.set.available != 0
+                    and (*/self::ng:* or */self::db:*)">
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>stripped namespace before processing</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:variable name="nons">
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:variable>
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates select="exsl:node-set($nons)"/>
+    </xsl:when>
+    <xsl:otherwise>
+  <xsl:choose>
+    <xsl:when test="$rootid != ''">
+      <xsl:choose>
+        <xsl:when test="count(key('id',$rootid)) = 0">
+          <xsl:message terminate="yes">
+            <xsl:text>ID '</xsl:text>
+            <xsl:value-of select="$rootid"/>
+            <xsl:text>' not found in document.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or
+                        $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="key('id', $rootid)"
+                        mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:message>Formatting from <xsl:value-of 
+	                          select="$rootid"/></xsl:message>
+            <xsl:apply-templates select="key('id',$rootid)"
+                        mode="process.root"/>
+            <xsl:call-template name="etoc"/>
+            <xsl:call-template name="plugin.xml"/>
+				<xsl:call-template name="helpidx"/>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$collect.xref.targets = 'yes' or
+                    $collect.xref.targets = 'only'">
+        <xsl:apply-templates select="/" mode="collect.targets"/>
+      </xsl:if>
+      <xsl:if test="$collect.xref.targets != 'only'">
+        <xsl:apply-templates select="/" mode="process.root"/>
+        <xsl:call-template name="etoc"/>
+        <xsl:call-template name="plugin.xml"/>
+		  <xsl:call-template name="helpidx"/>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template name="etoc">
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="'toc.xml'"/>
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="encoding" select="'utf-8'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+    <xsl:with-param name="content">
+      <xsl:choose>
+
+        <xsl:when test="$rootid != ''">
+          <xsl:variable name="title">
+            <xsl:if test="$eclipse.autolabel=1">
+              <xsl:variable name="label.markup">
+                <xsl:apply-templates select="key('id',$rootid)" 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="key('id',$rootid)" mode="title.markup"/>
+          </xsl:variable>
+          <xsl:variable name="href">
+            <xsl:call-template name="href.target.with.base.dir">
+              <xsl:with-param name="object" select="key('id',$rootid)"/>
+            </xsl:call-template>
+          </xsl:variable>
+          
+          <toc label="{normalize-space($title)}" topic="{$href}">
+            <xsl:apply-templates select="key('id',$rootid)/*" mode="etoc"/>
+          </toc>
+        </xsl:when>
+
+        <xsl:otherwise>
+          <xsl:variable name="title">
+            <xsl:if test="$eclipse.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:variable name="href">
+            <xsl:call-template name="href.target.with.base.dir">
+              <xsl:with-param name="object" select="/"/>
+            </xsl:call-template>
+          </xsl:variable>
+          
+          <toc label="{normalize-space($title)}" topic="{$href}">
+            <xsl:apply-templates select="/*/*" mode="etoc"/>
+          </toc>
+        </xsl:otherwise>
+
+      </xsl:choose>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="book|part|reference|preface|chapter|bibliography|appendix|article|glossary|section|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv|index" mode="etoc">
+  <xsl:variable name="title">
+    <xsl:if test="$eclipse.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:variable name="href">
+    <xsl:call-template name="href.target.with.base.dir">
+      <xsl:with-param name="context" select="/"/>        <!-- Generate links relative to the location of root file/toc.xml file -->
+    </xsl:call-template>
+  </xsl:variable>
+
+  <topic label="{normalize-space($title)}" href="{$href}">
+    <xsl:apply-templates select="part|reference|preface|chapter|bibliography|appendix|article|glossary|section|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv|index" mode="etoc"/>
+  </topic>
+
+</xsl:template>
+
+<xsl:template match="text()" mode="etoc"/>
+
+<xsl:template name="plugin.xml">
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="'plugin.xml'"/>
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="encoding" select="'utf-8'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+    <xsl:with-param name="content">
+      <plugin name="{$eclipse.plugin.name}"
+        id="{$eclipse.plugin.id}"
+        version="1.0"
+        provider-name="{$eclipse.plugin.provider}">
+
+		  <extension point="org.eclipse.help.toc">
+			<toc file="toc.xml" primary="true"/>
+		  </extension>
+		  <extension point="org.eclipse.help.index">
+			<index file="index.xml"/>
+		  </extension>
+      </plugin>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- The following templates come from the javahelp xsls with modifications needed to make them generate and ecilpse index.xml file -->
+
+<xsl:template name="helpidx">
+  <xsl:call-template name="write.chunk.with.doctype">
+    <xsl:with-param name="filename" select="concat($chunk.base.dir, 'index.xml')"/>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="doctype-public" select="''"/>
+    <xsl:with-param name="doctype-system" select="''"/>
+    <xsl:with-param name="encoding" select="'utf-8'"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="helpidx.content"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+  <xsl:template name="helpidx.content">
+	<index>
+	  <xsl:choose>
+		<xsl:when test="$rootid != ''">
+		  <xsl:apply-templates select="key('id',$rootid)//indexterm" mode="idx">
+			<xsl:sort select="normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = '']))"/>
+			<xsl:sort select="normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = '']))"/>
+			<xsl:sort select="normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = '']))"/>
+		  </xsl:apply-templates>
+		</xsl:when>
+		<xsl:otherwise>
+		  <xsl:apply-templates select="//indexterm" mode="idx">
+			<xsl:sort select="normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = '']))"/>
+			<xsl:sort select="normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = '']))"/>
+			<xsl:sort select="normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = '']))"/>
+		  </xsl:apply-templates>
+		</xsl:otherwise>
+	  </xsl:choose>
+	</index>
+  </xsl:template>
+  
+  <xsl:template match="indexterm[@class='endofrange']" mode="idx"/>
+  
+  <xsl:template match="indexterm|primary|secondary|tertiary" mode="idx">
+
+	<xsl:variable name="href">
+	  <xsl:call-template name="href.target.with.base.dir">
+		<xsl:with-param name="context" select="/"/>        <!-- Generate links relative to the location of root file/toc.xml file -->
+	  </xsl:call-template>
+	</xsl:variable>
+
+	<xsl:variable name="text">
+	  <xsl:value-of select="normalize-space(.)"/>
+	  <xsl:if test="following-sibling::*[1][self::see]">
+		<xsl:text> (</xsl:text><xsl:call-template name="gentext">
+		  <xsl:with-param name="key" select="'see'"/>
+		</xsl:call-template><xsl:text> </xsl:text>
+		<xsl:value-of select="following-sibling::*[1][self::see]"/>)</xsl:if>
+	</xsl:variable>
+	
+	<xsl:choose>
+	  <xsl:when test="self::indexterm">
+		<xsl:apply-templates select="primary" mode="idx"/>
+	  </xsl:when>
+	  <xsl:when test="self::primary">
+		<entry keyword="{$text}">
+		  <topic href="{$href}"/>
+		  <xsl:apply-templates select="following-sibling::secondary"  mode="idx"/>
+		</entry>
+	  </xsl:when>
+	  <xsl:otherwise>
+		<entry keyword="{$text}">
+		  <topic href="{$href}"/>
+		  <xsl:apply-templates select="following-sibling::tertiary"  mode="idx"/>
+		</entry>
+	  </xsl:otherwise>
+	</xsl:choose>
+  </xsl:template>
+
+  <!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/eclipse/eclipse3.xsl b/applications/content/template/docbook/eclipse/eclipse3.xsl
new file mode 100644
index 0000000..2304442
--- /dev/null
+++ b/applications/content/template/docbook/eclipse/eclipse3.xsl
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		xmlns:ng="http://docbook.org/docbook-ng" 
+		xmlns:db="http://docbook.org/ns/docbook"
+		xmlns:exsl="http://exslt.org/common" version="1.0"
+		exclude-result-prefixes="exsl db ng">
+
+<!-- 
+********************************************************************************
+     $Id$
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+ * Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     David Carver - STAR - Extended existing eclipse.xsl file to produce valid
+ *                           eclipse 3.3 plugin.xml with a manifest file.
+ *******************************************************************************
+ -->
+  
+  <xsl:import href="eclipse.xsl"/>
+
+  <xsl:param name="eclipse.manifest">1</xsl:param>
+  <xsl:param name="create.plugin.xml">1</xsl:param>
+  
+  <xsl:template name="plugin.xml">
+    <xsl:if test="$create.plugin.xml != 0">
+      <xsl:call-template name="write.chunk">
+	<xsl:with-param name="filename">
+	  <xsl:if test="$manifest.in.base.dir != 0">
+	    <xsl:value-of select="$chunk.base.dir" />
+	  </xsl:if>
+	  <xsl:value-of select="'plugin.xml'" />
+	</xsl:with-param>
+	<xsl:with-param name="method" select="'xml'" />
+	<xsl:with-param name="encoding" select="'utf-8'" />
+	<xsl:with-param name="indent" select="'yes'" />
+	<xsl:with-param name="quiet" select="$chunk.quietly"/>
+	<xsl:with-param name="content">
+	  <xsl:choose>
+	    
+	    <xsl:when test="$eclipse.manifest = '1'">
+	      <plugin>
+		<extension point="org.eclipse.help.toc">
+		  <toc file="toc.xml" primary="true" />
+		</extension>
+		<xsl:if test="$generate.index = 1">
+		  <extension point="org.eclipse.help.index">
+		    <index file="index.xml"/>
+		 </extension>
+		</xsl:if>
+	      </plugin>
+	      <xsl:call-template name="write.chunk">
+		<xsl:with-param name="filename">
+		  <xsl:if test="$manifest.in.base.dir != 0">
+		    <xsl:value-of select="$chunk.base.dir" />
+		  </xsl:if>
+		  <xsl:value-of select="'META-INF/'" />
+		  <xsl:value-of select="'MANIFEST.MF'" />
+		</xsl:with-param>
+		<xsl:with-param name="method" select="'text'" />
+		<xsl:with-param name="encoding" select="'utf-8'" />
+		<xsl:with-param name="quiet" select="$chunk.quietly"/>
+		<xsl:with-param name="content">
+		  <xsl:call-template name="manifest.content"/>
+		</xsl:with-param>
+	      </xsl:call-template>
+	    </xsl:when>
+
+	    <xsl:otherwise>
+	      <plugin name="{$eclipse.plugin.name}" id="{$eclipse.plugin.id}"
+		      version="1.0" provider-name="{$eclipse.plugin.provider}">
+		<extension point="org.eclipse.help.toc">
+		  <toc file="toc.xml" primary="true" />
+		</extension>
+		<xsl:if test="$generate.index = 1">
+		  <extension point="org.eclipse.help.index">
+		  <index file="index.xml"/>
+		  </extension>
+		</xsl:if>
+	      </plugin>
+	    </xsl:otherwise>
+
+	  </xsl:choose>
+	</xsl:with-param>
+      </xsl:call-template>	    
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="manifest.content">
+    <xsl:text>Manifest-Version: 1.0</xsl:text>
+    <xsl:text>&#xA;</xsl:text>
+    <xsl:text>Bundle-Version: 1.0</xsl:text>
+    <xsl:text>&#xA;</xsl:text>
+    <xsl:text>Bundle-Name: </xsl:text><xsl:value-of select="$eclipse.plugin.name"/>
+    <xsl:text>&#xA;</xsl:text>
+    <xsl:text>Bundle-SymbolicName: </xsl:text><xsl:value-of select="$eclipse.plugin.id"/>
+    <xsl:text>&#xA;</xsl:text>
+    <xsl:text>Bundle-Vendor: </xsl:text><xsl:value-of select="$eclipse.plugin.provider"/>
+    <xsl:text>&#xA;</xsl:text>
+  </xsl:template>
+
+</xsl:stylesheet>
+ 	  	 
diff --git a/applications/content/template/docbook/eclipse/profile-eclipse.xsl b/applications/content/template/docbook/eclipse/profile-eclipse.xsl
new file mode 100644
index 0000000..84fd361
--- /dev/null
+++ b/applications/content/template/docbook/eclipse/profile-eclipse.xsl
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns:exslt="http://exslt.org/common" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" version="1.0" exclude-result-prefixes="exsl db ng exslt">
+  
+<xsl:import href="../html/chunk.xsl"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="false()"/>
+    <xsl:otherwise>
+  <xsl:choose>
+    <xsl:when test="$rootid != ''">
+      <xsl:choose>
+        <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0">
+          <xsl:message terminate="yes">
+            <xsl:text>ID '</xsl:text>
+            <xsl:value-of select="$rootid"/>
+            <xsl:text>' not found in document.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:message>Formatting from <xsl:value-of select="$rootid"/></xsl:message>
+            <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
+            <xsl:call-template name="etoc"/>
+            <xsl:call-template name="plugin.xml"/>
+				<xsl:call-template name="helpidx"/>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$collect.xref.targets = 'yes' or                     $collect.xref.targets = 'only'">
+        <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
+      </xsl:if>
+      <xsl:if test="$collect.xref.targets != 'only'">
+        <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+        <xsl:call-template name="etoc"/>
+        <xsl:call-template name="plugin.xml"/>
+		  <xsl:call-template name="helpidx"/>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template name="etoc">
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="'toc.xml'"/>
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="encoding" select="'utf-8'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+    <xsl:with-param name="content">
+      <xsl:choose>
+
+        <xsl:when test="$rootid != ''">
+          <xsl:variable name="title">
+            <xsl:if test="$eclipse.autolabel=1">
+              <xsl:variable name="label.markup">
+                <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" 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="$profiled-nodes//*[@id=$rootid]" mode="title.markup"/>
+          </xsl:variable>
+          <xsl:variable name="href">
+            <xsl:call-template name="href.target.with.base.dir">
+              <xsl:with-param name="object" select="key('id',$rootid)"/>
+            </xsl:call-template>
+          </xsl:variable>
+          
+          <toc label="{normalize-space($title)}" topic="{$href}">
+            <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]/*" mode="etoc"/>
+          </toc>
+        </xsl:when>
+
+        <xsl:otherwise>
+          <xsl:variable name="title">
+            <xsl:if test="$eclipse.autolabel=1">
+              <xsl:variable name="label.markup">
+                <xsl:apply-templates select="$profiled-nodes/*" 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="$profiled-nodes/*" mode="title.markup"/>
+          </xsl:variable>
+          <xsl:variable name="href">
+            <xsl:call-template name="href.target.with.base.dir">
+              <xsl:with-param name="object" select="$profiled-nodes"/>
+            </xsl:call-template>
+          </xsl:variable>
+          
+          <toc label="{normalize-space($title)}" topic="{$href}">
+            <xsl:apply-templates select="$profiled-nodes/*/*" mode="etoc"/>
+          </toc>
+        </xsl:otherwise>
+
+      </xsl:choose>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="book|part|reference|preface|chapter|bibliography|appendix|article|glossary|section|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv|index" mode="etoc">
+  <xsl:variable name="title">
+    <xsl:if test="$eclipse.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:variable name="href">
+    <xsl:call-template name="href.target.with.base.dir">
+      <xsl:with-param name="context" select="/"/>        <!-- Generate links relative to the location of root file/toc.xml file -->
+    </xsl:call-template>
+  </xsl:variable>
+
+  <topic label="{normalize-space($title)}" href="{$href}">
+    <xsl:apply-templates select="part|reference|preface|chapter|bibliography|appendix|article|glossary|section|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv|index" mode="etoc"/>
+  </topic>
+
+</xsl:template>
+
+<xsl:template match="text()" mode="etoc"/>
+
+<xsl:template name="plugin.xml">
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="'plugin.xml'"/>
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="encoding" select="'utf-8'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+    <xsl:with-param name="content">
+      <plugin name="{$eclipse.plugin.name}" id="{$eclipse.plugin.id}" version="1.0" provider-name="{$eclipse.plugin.provider}">
+
+		  <extension point="org.eclipse.help.toc">
+			<toc file="toc.xml" primary="true"/>
+		  </extension>
+		  <extension point="org.eclipse.help.index">
+			<index file="index.xml"/>
+		  </extension>
+      </plugin>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- The following templates come from the javahelp xsls with modifications needed to make them generate and ecilpse index.xml file -->
+
+<xsl:template name="helpidx">
+  <xsl:call-template name="write.chunk.with.doctype">
+    <xsl:with-param name="filename" select="concat($chunk.base.dir, 'index.xml')"/>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="doctype-public" select="''"/>
+    <xsl:with-param name="doctype-system" select="''"/>
+    <xsl:with-param name="encoding" select="'utf-8'"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="helpidx.content"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+  <xsl:template name="helpidx.content">
+	<index>
+	  <xsl:choose>
+		<xsl:when test="$rootid != ''">
+		  <xsl:apply-templates select="key('id',$rootid)//indexterm" mode="idx">
+			<xsl:sort select="normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = '']))"/>
+			<xsl:sort select="normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = '']))"/>
+			<xsl:sort select="normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = '']))"/>
+		  </xsl:apply-templates>
+		</xsl:when>
+		<xsl:otherwise>
+		  <xsl:apply-templates select="//indexterm" mode="idx">
+			<xsl:sort select="normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = '']))"/>
+			<xsl:sort select="normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = '']))"/>
+			<xsl:sort select="normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = '']))"/>
+		  </xsl:apply-templates>
+		</xsl:otherwise>
+	  </xsl:choose>
+	</index>
+  </xsl:template>
+  
+  <xsl:template match="indexterm[@class='endofrange']" mode="idx"/>
+  
+  <xsl:template match="indexterm|primary|secondary|tertiary" mode="idx">
+
+	<xsl:variable name="href">
+	  <xsl:call-template name="href.target.with.base.dir">
+		<xsl:with-param name="context" select="/"/>        <!-- Generate links relative to the location of root file/toc.xml file -->
+	  </xsl:call-template>
+	</xsl:variable>
+
+	<xsl:variable name="text">
+	  <xsl:value-of select="normalize-space(.)"/>
+	  <xsl:if test="following-sibling::*[1][self::see]">
+		<xsl:text> (</xsl:text><xsl:call-template name="gentext">
+		  <xsl:with-param name="key" select="'see'"/>
+		</xsl:call-template><xsl:text> </xsl:text>
+		<xsl:value-of select="following-sibling::*[1][self::see]"/>)</xsl:if>
+	</xsl:variable>
+	
+	<xsl:choose>
+	  <xsl:when test="self::indexterm">
+		<xsl:apply-templates select="primary" mode="idx"/>
+	  </xsl:when>
+	  <xsl:when test="self::primary">
+		<entry keyword="{$text}">
+		  <topic href="{$href}"/>
+		  <xsl:apply-templates select="following-sibling::secondary" mode="idx"/>
+		</entry>
+	  </xsl:when>
+	  <xsl:otherwise>
+		<entry keyword="{$text}">
+		  <topic href="{$href}"/>
+		  <xsl:apply-templates select="following-sibling::tertiary" mode="idx"/>
+		</entry>
+	  </xsl:otherwise>
+	</xsl:choose>
+  </xsl:template>
+
+  <!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/epub/README b/applications/content/template/docbook/epub/README
new file mode 100644
index 0000000..5e2587a
--- /dev/null
+++ b/applications/content/template/docbook/epub/README
@@ -0,0 +1,88 @@
+----------------------------------------------------------------------
+              README file for the DocBook XSL Stylesheets
+----------------------------------------------------------------------
+
+These are XSL stylesheets for transforming DocBook XML document
+instances into .epub format.
+
+.epub is an open standard of the The International Digital Publishing Forum (IDPF), 
+a the trade and standards association for the digital publishing industry. 
+
+An alpha-quality reference implementation (dbtoepub) for a DocBook to .epub 
+converter (written in Ruby) is available under bin/. 
+
+From http://idpf.org
+  What is EPUB, .epub, OPS/OCF & OEB?
+
+  ".epub" is the file extension of an XML format for reflowable digital 
+  books and publications.  ".epub" is composed of three open standards, 
+  the Open Publication Structure (OPS), Open Packaging Format (OPF) and 
+  Open Container Format (OCF), produced by the IDPF. "EPUB" allows 
+  publishers to produce and send a single digital publication file 
+  through distribution and offers consumers interoperability between 
+  software/hardware for unencrypted reflowable digital books and other 
+  publications. The Open eBook Publication Structure or "OEB", 
+  originally produced in 1999, is the precursor to OPS. 
+
+----------------------------------------------------------------------
+.epub Constraints 
+----------------------------------------------------------------------
+
+.epub does not support all of the image formats that DocBook supports.
+When an image is available in an accepted format, it will be used. The
+accepted @formats are: 'GIF','GIF87a','GIF89a','JPEG','JPG','PNG','SVG'
+A mime-type for the image will be guessed from the file extension, 
+which may not work if your file extensions are non-standard.
+
+Non-supported elements:
+  * <mediaobjectco> 
+  * <inlinegraphic>, <graphic>, <textdata>, <imagedata> with text/XML 
+    @filerefs
+  * <olink>
+  * <cmdsynopsis> in lists (generic XHTML rendering inability)
+  * <footnote><para><programlisting> (just make your programlistings 
+    siblings, rather than descendents of paras)
+
+----------------------------------------------------------------------
+dbtoepub Reference Implementation
+----------------------------------------------------------------------
+
+An alpha-quality DocBook to .epub conversion program, dbtoepub, is provided
+in bin/dbtoepub. 
+
+This tool requires:
+ - 'xsltproc' in your PATH
+ - 'zip' in your PATH
+ - Ruby 1.8.4+
+
+Windows compatibility has not been extensively tested; bug reports encouraged.
+[See http://www.zlatkovic.com/libxml.en.html and http://unxutils.sourceforge.net/]
+
+$ dbtoepub --help
+  Usage: dbtoepub [OPTIONS] [DocBook Files]
+
+  dbtoepub converts DocBook <book> and <article>s into to .epub files.
+
+  .epub is defined by the IDPF at www.idpf.org and is made up of 3 standards:
+  - Open Publication Structure (OPS)
+  - Open Packaging Format (OPF) 
+  - Open Container Format (OCF)
+
+  Specific options:
+      -d, --debug                      Show debugging output.
+      -h, --help                       Display usage info
+      -v, --verbose                    Make output verbose
+
+
+----------------------------------------------------------------------
+Validation
+----------------------------------------------------------------------
+
+The epubcheck project provides limited validation for .epub documents. 
+See http://code.google.com/p/epubcheck/ for details.
+
+----------------------------------------------------------------------
+Copyright information
+----------------------------------------------------------------------
+See the accompanying file named COPYING.
+
diff --git a/applications/content/template/docbook/epub/bin/dbtoepub b/applications/content/template/docbook/epub/bin/dbtoepub
new file mode 100644
index 0000000..9976f81
--- /dev/null
+++ b/applications/content/template/docbook/epub/bin/dbtoepub
@@ -0,0 +1,76 @@
+#!/usr/bin/env ruby
+# This program converts DocBook documents into .epub files.
+# 
+# Usage: dbtoepub [OPTIONS] [DocBook Files]
+#
+# .epub is defined by the IDPF at www.idpf.org and is made up of 3 standards:
+# - Open Publication Structure (OPS)
+# - Open Packaging Format (OPF) 
+# - Open Container Format (OCF)
+#
+# Specific options:
+#     -c, --css [FILE]                 Use FILE for CSS on generated XHTML.
+#     -d, --debug                      Show debugging output.
+#     -f, --font [OTF FILE]            Embed OTF FILE in .epub.
+#     -h, --help                       Display usage info.
+#     -s, --stylesheet [XSL FILE]      Use XSL FILE as a customization
+#                                        layer (imports epub/docbook.xsl).
+#     -v, --verbose                    Make output verbose.
+
+lib = File.expand_path(File.join(File.dirname(__FILE__), 'lib'))
+$LOAD_PATH.unshift(lib) if File.exist?(lib)
+
+require 'fileutils'
+require 'optparse'
+require 'tmpdir'
+
+require 'docbook'
+
+verbose = false
+debug = false
+css_file = nil
+otf_files = []
+customization_layer = nil
+output_file = nil
+
+#$DEBUG=true
+
+# Set up the OptionParser
+opts = OptionParser.new
+opts.banner = "Usage: #{File.basename($0)} [OPTIONS] [DocBook Files]
+
+#{File.basename($0)} converts DocBook <book> and <article>s into to .epub files.
+
+.epub is defined by the IDPF at www.idpf.org and is made up of 3 standards:
+- Open Publication Structure (OPS)
+- Open Packaging Format (OPF) 
+- Open Container Format (OCF)
+
+Specific options:"
+opts.on("-c", "--css [FILE]", "Use FILE for CSS on generated XHTML.") {|f| css_file = f}
+opts.on("-d", "--debug", "Show debugging output.") {debug = true; verbose = true}
+opts.on("-f", "--font [OTF FILE]", "Embed OTF FILE in .epub.") {|f| otf_files << f}
+opts.on("-h", "--help", "Display usage info.") {puts opts.to_s; exit 0}
+opts.on("-o", "--output [OUTPUT FILE]", "Output ePub file as OUTPUT FILE.") {|f| output_file = f}
+opts.on("-s", "--stylesheet [XSL FILE]", "Use XSL FILE as a customization layer (imports epub/docbook.xsl).") {|f| customization_layer = f}
+opts.on("-v", "--verbose", "Make output verbose.") {verbose = true}
+
+db_files = opts.parse(ARGV)
+if db_files.size == 0
+  puts opts.to_s
+  exit 0
+end
+
+db_files.each {|docbook_file|
+  dir = File.expand_path(File.join(Dir.tmpdir, ".epubtmp#{Time.now.to_f.to_s}"))
+  FileUtils.mkdir_p(dir)
+  e = DocBook::Epub.new(docbook_file, dir, css_file, customization_layer, otf_files)
+
+  if output_file
+    epub_file = output_file
+  else  
+    epub_file = File.basename(docbook_file, ".xml") + ".epub"
+  end  
+  puts "Rendering DocBook file #{docbook_file} to #{epub_file}" if verbose
+  e.render_to_file(epub_file)
+}  
diff --git a/applications/content/template/docbook/epub/bin/lib/docbook.rb b/applications/content/template/docbook/epub/bin/lib/docbook.rb
new file mode 100644
index 0000000..14110d6
--- /dev/null
+++ b/applications/content/template/docbook/epub/bin/lib/docbook.rb
@@ -0,0 +1,227 @@
+require 'fileutils'
+require 'rexml/parsers/pullparser'
+
+module DocBook
+
+  class Epub
+    CHECKER = "epubcheck"
+    STYLESHEET = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', "docbook.xsl"))
+    CALLOUT_PATH = File.join('images', 'callouts')
+    CALLOUT_FULL_PATH = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..', CALLOUT_PATH))
+    CALLOUT_LIMIT = 15
+    CALLOUT_EXT = ".png"
+    XSLT_PROCESSOR = "xsltproc"
+    OUTPUT_DIR = ".epubtmp#{Time.now.to_f.to_s}"
+    MIMETYPE = "application/epub+zip"
+    META_DIR = "META-INF"
+    OEBPS_DIR = "OEBPS"
+    ZIPPER = "zip"
+
+    attr_reader :output_dir
+
+    def initialize(docbook_file, output_dir=OUTPUT_DIR, css_file=nil, customization_layer=nil, embedded_fonts=[])
+      @docbook_file = docbook_file
+      @output_dir = output_dir
+      @meta_dir  = File.join(@output_dir, META_DIR)
+      @oebps_dir = File.join(@output_dir, OEBPS_DIR)
+      @css_file = css_file ? File.expand_path(css_file) : css_file
+      @embedded_fonts = embedded_fonts
+      @to_delete = []
+      
+      if customization_layer
+        @stylesheet = File.expand_path(customization_layer)
+      else
+        @stylesheet = STYLESHEET
+      end
+
+      unless File.exist?(@docbook_file)
+        raise ArgumentError.new("File #{@docbook_file} does not exist")
+      end
+    end
+
+    def render_to_file(output_file, verbose=false)
+      render_to_epub(output_file, verbose)
+      bundle_epub(output_file, verbose)
+      cleanup_files(@to_delete)
+    end
+
+    def self.invalid?(file)
+      # Obnoxiously, we can't just check for a non-zero output...
+      cmd = %Q(#{CHECKER} "#{file}")
+      output = `#{cmd} 2>&1`
+
+      if $?.to_i == 0
+        return false
+      else  
+        STDERR.puts output if $DEBUG
+        return output
+      end  
+    end
+
+    private
+    def render_to_epub(output_file, verbose)  
+      @collapsed_docbook_file = collapse_docbook()
+
+      chunk_quietly =   "--stringparam chunk.quietly " + (verbose ? '0' : '1')
+      callout_path =    "--stringparam callout.graphics.path #{CALLOUT_PATH}/"
+      callout_limit =   "--stringparam callout.graphics.number.limit #{CALLOUT_LIMIT}"
+      callout_ext =     "--stringparam callout.graphics.extension #{CALLOUT_EXT}" 
+      html_stylesheet = "--stringparam html.stylesheet #{File.basename(@css_file)}" if @css_file
+      base =            "--stringparam base.dir #{OEBPS_DIR}/" 
+      unless @embedded_fonts.empty? 
+        embedded_fonts = @embedded_fonts.map {|f| File.basename(f)}.join(',')
+        font =            "--stringparam epub.embedded.fonts \"#{embedded_fonts}\"" 
+      end  
+      meta =            "--stringparam epub.metainf.dir #{META_DIR}/" 
+      oebps =           "--stringparam epub.oebps.dir #{OEBPS_DIR}/" 
+      options = [chunk_quietly, 
+                 callout_path, 
+                 callout_limit, 
+                 callout_ext, 
+                 base, 
+                 font, 
+                 meta, 
+                 oebps, 
+                 html_stylesheet,
+                ].join(" ")
+      # Double-quote stylesheet & file to help Windows cmd.exe
+      db2epub_cmd = %Q(cd "#{@output_dir}" && #{XSLT_PROCESSOR} #{options} "#{@stylesheet}" "#{@collapsed_docbook_file}")
+      STDERR.puts db2epub_cmd if $DEBUG
+      success = system(db2epub_cmd)
+      raise "Could not render as .epub to #{output_file} (#{db2epub_cmd})" unless success
+      @to_delete << Dir["#{@meta_dir}/*"]
+      @to_delete << Dir["#{@oebps_dir}/*"]
+    end  
+
+    def bundle_epub(output_file, verbose)  
+
+      quiet = verbose ? "" : "-q"
+      mimetype_filename = write_mimetype()
+      meta   = File.basename(@meta_dir)
+      oebps  = File.basename(@oebps_dir)
+      images = copy_images()
+      csses  = copy_csses()
+      fonts  = copy_fonts()
+      callouts = copy_callouts()
+      # zip -X -r ../book.epub mimetype META-INF OEBPS
+      # Double-quote stylesheet & file to help Windows cmd.exe
+      zip_cmd = %Q(cd "#{@output_dir}" &&  #{ZIPPER} #{quiet} -X -r  "#{File.expand_path(output_file)}" "#{mimetype_filename}" "#{meta}" "#{oebps}")
+      puts zip_cmd if $DEBUG
+      success = system(zip_cmd)
+      raise "Could not bundle into .epub file to #{output_file}" unless success
+    end
+
+    # Input must be collapsed because REXML couldn't find figures in files that
+    # were XIncluded or added by ENTITY
+    #   http://sourceforge.net/tracker/?func=detail&aid=2750442&group_id=21935&atid=373747
+    def collapse_docbook
+      # Double-quote stylesheet & file to help Windows cmd.exe
+      collapsed_file = File.join(File.expand_path(File.dirname(@docbook_file)), 
+                                 '.collapsed.' + File.basename(@docbook_file))
+      entity_collapse_command = %Q(xmllint --loaddtd --noent -o "#{collapsed_file}" "#{@docbook_file}")
+      entity_success = system(entity_collapse_command)
+      raise "Could not collapse named entites in #{@docbook_file}" unless entity_success
+
+      xinclude_collapse_command = %Q(xmllint --xinclude -o "#{collapsed_file}" "#{collapsed_file}")
+      xinclude_success = system(xinclude_collapse_command)
+      raise "Could not collapse XIncludes in #{@docbook_file}" unless xinclude_success
+
+      @to_delete << collapsed_file
+      return collapsed_file
+    end  
+
+    def copy_callouts
+      new_callout_images = []
+      if has_callouts?
+        calloutglob = "#{CALLOUT_FULL_PATH}/*#{CALLOUT_EXT}"
+        Dir.glob(calloutglob).each {|img|
+          img_new_filename = File.join(@oebps_dir, CALLOUT_PATH, File.basename(img))
+
+          # TODO: What to rescue for these two?
+          FileUtils.mkdir_p(File.dirname(img_new_filename)) 
+          FileUtils.cp(img, img_new_filename)
+          @to_delete << img_new_filename
+          new_callout_images << img
+        }  
+      end  
+      return new_callout_images
+    end
+
+    def copy_fonts
+      new_fonts = []
+      @embedded_fonts.each {|font_file|
+        font_new_filename = File.join(@oebps_dir, File.basename(font_file))
+        FileUtils.cp(font_file, font_new_filename)
+        new_fonts << font_file
+      }
+      return new_fonts
+    end
+
+    def copy_csses
+      if @css_file 
+        css_new_filename = File.join(@oebps_dir, File.basename(@css_file))
+        FileUtils.cp(@css_file, css_new_filename)
+      end
+    end
+
+    def copy_images
+      image_references = get_image_refs()
+      new_images = []
+      image_references.each {|img|
+        # TODO: It'd be cooler if we had a filetype lookup rather than just
+        # extension
+        if img =~ /\.(svg|png|gif|jpe?g|xml)/i
+          img_new_filename = File.join(@oebps_dir, img)
+          img_full = File.join(File.expand_path(File.dirname(@docbook_file)), img)
+
+          # TODO: What to rescue for these two?
+          FileUtils.mkdir_p(File.dirname(img_new_filename)) 
+          puts(img_full + ": " + img_new_filename) if $DEBUG
+          FileUtils.cp(img_full, img_new_filename)
+          @to_delete << img_new_filename
+          new_images << img_full
+        end
+      }  
+      return new_images
+    end
+
+    def write_mimetype
+      mimetype_filename = File.join(@output_dir, "mimetype")
+      File.open(mimetype_filename, "w") {|f| f.print MIMETYPE}
+      @to_delete << mimetype_filename
+      return File.basename(mimetype_filename)
+    end  
+
+    def cleanup_files(file_list)
+      file_list.flatten.each {|f|
+        # Yikes
+        FileUtils.rm_r(f, :force => true )
+      }  
+    end  
+
+    # Returns an Array of all of the (image) @filerefs in a document
+    def get_image_refs
+      parser = REXML::Parsers::PullParser.new(File.new(@collapsed_docbook_file))
+      image_refs = []
+      while parser.has_next?
+        el = parser.pull
+        if el.start_element? and (el[0] == "imagedata" or el[0] == "graphic")
+          image_refs << el[1]['fileref'] 
+        end  
+      end
+      return image_refs.uniq
+    end  
+
+    # Returns true if the document has code callouts
+    def has_callouts?
+      parser = REXML::Parsers::PullParser.new(File.new(@collapsed_docbook_file))
+      while parser.has_next?
+        el = parser.pull
+        if el.start_element? and (el[0] == "calloutlist" or el[0] == "co")
+          return true
+        end  
+      end
+      return false
+    end  
+  end
+end
diff --git a/applications/content/template/docbook/epub/bin/xslt/obfuscate.xsl b/applications/content/template/docbook/epub/bin/xslt/obfuscate.xsl
new file mode 100644
index 0000000..4ea4cd5
--- /dev/null
+++ b/applications/content/template/docbook/epub/bin/xslt/obfuscate.xsl
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
+  <xsl:output method="xml" omit-xml-declaration="no" doctype-public="-//OASIS//DTD DocBook XML V4.4//EN" doctype-system="http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" indent="no"/>
+  <xsl:template match="@*|*|comment()|processing-instruction()">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()"/>
+    </xsl:copy>
+  </xsl:template>
+  <xsl:template match="text()">
+    <xsl:value-of select="replace(replace(., '[a-z]', 'x'), '[0-9]', 'd')"/>
+  </xsl:template>
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/epub/docbook.xsl b/applications/content/template/docbook/epub/docbook.xsl
new file mode 100644
index 0000000..d0beab0
--- /dev/null
+++ b/applications/content/template/docbook/epub/docbook.xsl
@@ -0,0 +1,1693 @@
+<?xml version="1.0"?>
+<xsl:stylesheet 
+  xmlns:db="http://docbook.org/ns/docbook"
+  xmlns:dc="http://purl.org/dc/elements/1.1/"  
+  xmlns:exsl="http://exslt.org/common" 
+  xmlns:h="http://www.w3.org/1999/xhtml"
+  xmlns:ncx="http://www.daisy.org/z3986/2005/ncx/"
+  xmlns:ng="http://docbook.org/docbook-ng"
+  xmlns:opf="http://www.idpf.org/2007/opf"
+  xmlns:stext="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.TextFactory"
+  xmlns:str="http://exslt.org/strings"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xtext="xalan://com.nwalsh.xalan.Text"
+
+  extension-element-prefixes="stext xtext"
+  exclude-result-prefixes="exsl db dc h ncx ng opf stext str xtext"
+
+  version="1.0">
+
+  <xsl:import href="../xhtml-1_1/docbook.xsl" />
+  <xsl:import href="../xhtml-1_1/chunk-common.xsl" />
+  <xsl:include href="../xhtml-1_1/chunk-code.xsl" />
+
+
+  <!-- We want a separate TOC file, please -->
+  <xsl:param name="chunk.tocs.and.lots">1</xsl:param>
+  <xsl:param name="toc.section.depth">2</xsl:param>
+  <xsl:param name="generate.toc">
+  book   toc,title
+  </xsl:param>
+
+  <xsl:param name="ade.extensions" select="0"/>
+  <xsl:param name="epub.autolabel" select="'1'"/> 
+  <xsl:param name="epub.ncx.depth">4</xsl:param> <!-- Not functional until http://code.google.com/p/epubcheck/issues/detail?id=70 is resolved -->
+
+
+  <xsl:param name="manifest.in.base.dir" select="'1'"/> 
+  <xsl:param name="base.dir" select="$epub.oebps.dir"/>
+
+  <xsl:param name="epub.oebps.dir" select="'OEBPS/'"/> 
+  <xsl:param name="epub.ncx.filename" select="'toc.ncx'"/> 
+  <xsl:param name="epub.container.filename" select="'container.xml'"/> 
+  <xsl:param name="epub.opf.filename" select="concat($epub.oebps.dir, 'content.opf')"/> 
+  <xsl:param name="epub.cover.filename" select="concat($epub.oebps.dir, 'cover', $html.ext)"/> 
+  <xsl:param name="epub.cover.id" select="'cover'"/> 
+  <xsl:param name="epub.cover.html" select="'cover.html'" />
+  <xsl:param name="epub.cover.image.id" select="'cover-image'"/> 
+  <xsl:param name="epub.cover.linear" select="0" />
+  <xsl:param name="epub.ncx.toc.id">ncxtoc</xsl:param>
+  <xsl:param name="epub.html.toc.id">htmltoc</xsl:param>
+  <xsl:param name="epub.metainf.dir" select="'META-INF/'"/> 
+
+  <xsl:param name="epub.embedded.fonts"></xsl:param>
+
+  <!-- Turning this on crashes ADE, which is unbelievably awesome -->
+  <xsl:param name="formal.object.break.after">0</xsl:param>
+
+
+  <!-- Per Bob Stayton:
+       """Process your documents with the css.decoration parameter set to zero. 
+          That will avoid the use of style attributes in XHTML elements where they are not permitted."""
+       http://www.sagehill.net/docbookxsl/OtherOutputForms.html#StrictXhtmlValid -->
+  <xsl:param name="css.decoration" select="0"/>
+  <xsl:param name="custom.css.source"></xsl:param> <!-- FIXME: Align with current CSS parameter design -->
+
+  <xsl:param name="callout.graphics" select="1"/>
+  <xsl:param name="callout.graphics.extension">.png</xsl:param>
+  <xsl:param name="callout.graphics.number.limit" select="15"/>
+  <xsl:param name="callout.graphics.path" select="'images/callouts/'"/>
+
+  <!-- no navigation in .epub -->
+  <xsl:param name="suppress.navigation" select="'1'"/> 
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="/*"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="root.is.a.chunk">
+    <xsl:choose>
+      <xsl:when test="/*[not(self::book)][not(sect1) or not(section)]">
+        <xsl:text>1</xsl:text>
+      </xsl:when>
+      <xsl:when test="/book[*[last()][self::bookinfo]]|book[bookinfo]">
+        <xsl:text>1</xsl:text>
+      </xsl:when>
+      <xsl:when test="/book[*[last()][self::info]]|book[info]">
+        <xsl:text>1</xsl:text>
+      </xsl:when>
+      <xsl:when test="/bibliography">
+        <xsl:text>1</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>0</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:key name="image-filerefs" match="graphic|inlinegraphic|imagedata" use="@fileref"/>
+
+  <xsl:template match="/" priority="1">
+    <!-- * Get a title for current doc so that we let the user -->
+    <!-- * know what document we are processing at this point. -->
+    <xsl:variable name="doc.title">
+      <xsl:call-template name="get.doc.title" />
+    </xsl:variable>
+    <xsl:choose>
+      <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+        toss the namespace and continue.  Use the docbook5 namespaced
+        stylesheets for DocBook5 if you don't want to use this feature.-->
+      <!-- include extra test for Xalan quirk -->
+      <xsl:when test="$exsl.node.set.available != 0
+                    and (*/self::ng:* or */self::db:*)">
+        <xsl:call-template name="log.message">
+          <xsl:with-param name="level">Note</xsl:with-param>
+          <xsl:with-param name="source" select="$doc.title" />
+          <xsl:with-param name="context-desc">
+            <xsl:text>namesp. cut</xsl:text>
+          </xsl:with-param>
+          <xsl:with-param name="message">
+            <xsl:text>stripped namespace before processing</xsl:text>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:variable name="nons">
+          <xsl:apply-templates mode="stripNS" />
+        </xsl:variable>
+        <xsl:call-template name="log.message">
+          <xsl:with-param name="level">Note</xsl:with-param>
+          <xsl:with-param name="source" select="$doc.title" />
+          <xsl:with-param name="context-desc">
+            <xsl:text>namesp. cut</xsl:text>
+          </xsl:with-param>
+          <xsl:with-param name="message">
+            <xsl:text>processing stripped document</xsl:text>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:apply-templates select="exsl:node-set($nons)" />
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="$rootid != ''">
+            <xsl:choose>
+              <xsl:when
+                test="count(key('id',$rootid)) = 0">
+                <xsl:message terminate="yes">
+                  <xsl:text>ID '</xsl:text>
+                  <xsl:value-of select="$rootid" />
+                  <xsl:text>' not found in document.</xsl:text>
+                </xsl:message>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:if
+                  test="$collect.xref.targets = 'yes' or
+                                $collect.xref.targets = 'only'">
+                  <xsl:apply-templates
+                    select="key('id', $rootid)" mode="collect.targets" />
+                </xsl:if>
+                <xsl:if
+                  test="$collect.xref.targets != 'only'">
+                  <xsl:message>
+                    Formatting from
+                    <xsl:value-of select="$rootid" />
+                  </xsl:message>
+                  <xsl:apply-templates
+                    select="key('id',$rootid)" mode="process.root" />
+                  <xsl:call-template name="ncx" />
+                </xsl:if>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:if
+              test="$collect.xref.targets = 'yes' or
+                    $collect.xref.targets = 'only'">
+              <xsl:apply-templates select="/"
+                mode="collect.targets" />
+            </xsl:if>
+            <xsl:if
+              test="$collect.xref.targets != 'only'">
+              <xsl:apply-templates select="/"
+                mode="process.root" />
+              <xsl:call-template name="ncx" />
+              <xsl:call-template name="opf" />
+              <xsl:call-template name="cover" />
+              <xsl:call-template name="container" />
+            </xsl:if>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template name="package-identifier">  
+    <xsl:choose>
+      <xsl:when test="/*/*[contains(name(.), 'info')]/biblioid">
+        <xsl:if test="/*/*[contains(name(.), 'info')][1]/biblioid[1][@class = 'doi' or 
+                                                                      @class = 'isbn' or
+                                                                      @class = 'isrn' or
+                                                                      @class = 'issn']">
+          <xsl:text>urn:</xsl:text>
+          <xsl:value-of select="/*/*[contains(name(.), 'info')][1]/biblioid[1]/@class"/>
+          <xsl:text>:</xsl:text>
+        </xsl:if>
+        <xsl:value-of select="/*/*[contains(name(.), 'info')][1]/biblioid[1]"/>
+      </xsl:when>
+      <xsl:when test="/*/*[contains(name(.), 'info')]/isbn">
+        <xsl:text>urn:isbn:</xsl:text>
+        <xsl:value-of select="/*/*[contains(name(.), 'info')][1]/isbn[1]"/>
+      </xsl:when>
+      <xsl:when test="/*/*[contains(name(.), 'info')]/issn">
+        <xsl:text>urn:issn:</xsl:text>
+        <xsl:value-of select="/*/*[contains(name(.), 'info')][1]/issn[1]"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="/*/*[contains(name(.), 'info')]/invpartnumber"> <xsl:value-of select="/*/*[contains(name(.), 'info')][1]/invpartnumber[1]"/> </xsl:when>
+          <xsl:when test="/*/*[contains(name(.), 'info')]/issuenum">      <xsl:value-of select="/*/*[contains(name(.), 'info')][1]/issuenum[1]"/> </xsl:when>
+          <xsl:when test="/*/*[contains(name(.), 'info')]/productnumber"> <xsl:value-of select="/*/*[contains(name(.), 'info')][1]/productnumber[1]"/> </xsl:when>
+          <xsl:when test="/*/*[contains(name(.), 'info')]/seriesvolnums"> <xsl:value-of select="/*/*[contains(name(.), 'info')][1]/seriesvolnums[1]"/> </xsl:when>
+          <xsl:when test="/*/*[contains(name(.), 'info')]/volumenum">     <xsl:value-of select="/*/*[contains(name(.), 'info')][1]/volumenum[1]"/> </xsl:when>
+          <!-- Deprecated -->
+          <xsl:when test="/*/*[contains(name(.), 'info')]/pubsnumber">    <xsl:value-of select="/*/*[contains(name(.), 'info')][1]/pubsnumber[1]"/> </xsl:when>
+        </xsl:choose>  
+        <xsl:text>_</xsl:text>
+        <xsl:choose>
+          <xsl:when test="/*/@id">
+            <xsl:value-of select="/*/@id"/>
+          </xsl:when>
+          <xsl:when test="/*/@xml:id">
+            <xsl:value-of select="/*/@xml:id"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- TODO: Do UUIDs here -->
+            <xsl:value-of select="generate-id(/*)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template name="opf">
+    <xsl:variable name="package-identifier-id"><xsl:value-of select="concat(name(/*), 'id')"/></xsl:variable>
+    <xsl:variable name="doc.title">
+      <xsl:call-template name="get.doc.title" />
+    </xsl:variable>
+    <xsl:call-template name="write.chunk">
+      <xsl:with-param name="filename">
+        <xsl:value-of select="$epub.opf.filename" />
+      </xsl:with-param>
+      <xsl:with-param name="method" select="'xml'" />
+      <xsl:with-param name="encoding" select="'utf-8'" />
+      <xsl:with-param name="indent" select="'no'" />
+      <xsl:with-param name="quiet" select="$chunk.quietly" />
+      <xsl:with-param name="doctype-public" select="''"/> <!-- intentionally blank -->
+      <xsl:with-param name="doctype-system" select="''"/> <!-- intentionally blank -->
+      <xsl:with-param name="content">
+        <xsl:element namespace="http://www.idpf.org/2007/opf" name="package">
+          <xsl:attribute name="version">2.0</xsl:attribute>
+          <xsl:attribute name="unique-identifier"> <xsl:value-of select="$package-identifier-id"/> </xsl:attribute>
+
+          <xsl:element namespace="http://www.idpf.org/2007/opf" name="metadata">
+            <xsl:element name="dc:identifier">
+              <xsl:attribute name="id"><xsl:value-of select="$package-identifier-id"/></xsl:attribute>
+              <xsl:call-template name="package-identifier"/>
+            </xsl:element>  
+
+            <xsl:element name="dc:title">
+              <xsl:value-of select="normalize-space($doc.title)"/>
+            </xsl:element>
+
+            <xsl:apply-templates select="/*/*[contains(name(.), 'info')]/*"
+                                 mode="opf.metadata"/>        
+            <xsl:element name="dc:language">
+              <xsl:call-template name="l10n.language">
+                <xsl:with-param name="target" select="/*"/>
+              </xsl:call-template>  
+            </xsl:element>
+
+            <xsl:if test="/*/*[cover or contains(name(.), 'info')]//mediaobject[@role='cover' or ancestor::cover]"> 
+              <xsl:element namespace="http://www.idpf.org/2007/opf" name="meta">
+                <xsl:attribute name="name">cover</xsl:attribute>
+                <xsl:attribute name="content">
+                  <xsl:value-of select="$epub.cover.image.id"/>
+                </xsl:attribute>
+              </xsl:element>
+            </xsl:if>
+
+          </xsl:element>
+          <xsl:call-template name="opf.manifest"/>
+          <xsl:call-template name="opf.spine"/>
+          <xsl:call-template name="opf.guide"/>
+
+        </xsl:element>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template name="container">
+    <xsl:call-template name="write.chunk">
+      <xsl:with-param name="filename">
+        <xsl:value-of select="$epub.metainf.dir" />
+        <xsl:value-of select="$epub.container.filename" />
+      </xsl:with-param>
+      <xsl:with-param name="method" select="'xml'" />
+      <xsl:with-param name="encoding" select="'utf-8'" />
+      <xsl:with-param name="indent" select="'no'" />
+      <xsl:with-param name="quiet" select="$chunk.quietly" />
+      <xsl:with-param name="doctype-public" select="''"/> <!-- intentionally blank -->
+      <xsl:with-param name="doctype-system" select="''"/> <!-- intentionally blank -->
+
+      <xsl:with-param name="content">
+        <xsl:element namespace="urn:oasis:names:tc:opendocument:xmlns:container" name="container">
+          <xsl:attribute name="version">1.0</xsl:attribute>
+          <xsl:element namespace="urn:oasis:names:tc:opendocument:xmlns:container" name="rootfiles">
+            <xsl:element namespace="urn:oasis:names:tc:opendocument:xmlns:container" name="rootfile">
+              <xsl:attribute name="full-path">
+                <xsl:value-of select="$epub.opf.filename" />
+              </xsl:attribute>
+              <xsl:attribute name="media-type">
+                <xsl:text>application/oebps-package+xml</xsl:text>
+              </xsl:attribute>
+            </xsl:element>
+          </xsl:element>
+        </xsl:element>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template name="ncx">
+    <xsl:call-template name="write.chunk">
+      <xsl:with-param name="filename">
+        <xsl:if test="$manifest.in.base.dir != 0">
+          <xsl:value-of select="$chunk.base.dir" />
+        </xsl:if>
+        <xsl:value-of select="$epub.ncx.filename" />
+      </xsl:with-param>
+      <xsl:with-param name="method" select="'xml'" />
+      <xsl:with-param name="encoding" select="'utf-8'" />
+      <xsl:with-param name="indent" select="'no'" />
+      <xsl:with-param name="quiet" select="$chunk.quietly" />
+      <xsl:with-param name="doctype-public" select="''"/> <!-- intentionally blank -->
+      <xsl:with-param name="doctype-system" select="''"/> <!-- intentionally blank -->
+      <xsl:with-param name="content">
+        <xsl:element name="ncx" namespace="http://www.daisy.org/z3986/2005/ncx/">
+          <xsl:attribute name="version">2005-1</xsl:attribute>
+
+            <!-- Via Martin Goerner: On covers: the IDPF2.0 standard unfortunately does not have a provision for
+            covers. We had to add one and we did so in conjunction with the IDPF and
+            various publishers. The tag chosen to define the covers is:
+            <meta name="cover" content="-reference to a manifest item-">
+            Then, we also added a bit of logic to get rid cleanly of the HTML cover
+            people usually add because the logical cover is not specced by the IDPF. So,
+            if the HTML cover item is marked linear="no" AND there is a guide item of
+            type="cover" pointing to it AND there is a logical cover specified in a
+            <meta name="cover"> tag, THEN, the HTML cover is discarded. -->
+          <xsl:element name="head" namespace="http://www.daisy.org/z3986/2005/ncx/">
+            <xsl:if test="/*/*[cover or contains(name(.), 'info')]//mediaobject[@role='cover' or ancestor::cover]"> 
+              <xsl:element name="meta" namespace="http://www.daisy.org/z3986/2005/ncx/">
+                <xsl:attribute name="name">cover</xsl:attribute>
+                <xsl:attribute name="content">
+                  <xsl:value-of select="$epub.cover.id"/>
+                </xsl:attribute>
+              </xsl:element>
+            </xsl:if>
+            <xsl:element name="meta" namespace="http://www.daisy.org/z3986/2005/ncx/">
+              <xsl:attribute name="name">dtb:uid</xsl:attribute>
+              <xsl:attribute name="content"><xsl:call-template name="package-identifier"/></xsl:attribute>
+            </xsl:element>
+          </xsl:element>
+
+          <xsl:choose>
+            <xsl:when test="$rootid != ''">
+              <xsl:variable name="title">
+                <xsl:if test="$epub.autolabel != 0">
+                  <xsl:variable name="label.markup">
+                    <xsl:apply-templates select="key('id',$rootid)" 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="key('id',$rootid)" mode="title.markup" />
+              </xsl:variable>
+              <xsl:variable name="href">
+                <xsl:call-template name="href.target.with.base.dir">
+                  <xsl:with-param name="object" select="key('id',$rootid)" />
+                </xsl:call-template>
+              </xsl:variable>
+              <xsl:element name="docTitle" namespace="http://www.daisy.org/z3986/2005/ncx/">
+                <xsl:element name="text" namespace="http://www.daisy.org/z3986/2005/ncx/"><xsl:value-of select="normalize-space($title)" />  </xsl:element>
+              </xsl:element>
+              <xsl:element name="navMap" namespace="http://www.daisy.org/z3986/2005/ncx/">
+                <xsl:apply-templates select="key('id',$rootid)/*" mode="ncx" />
+              </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:variable name="title">
+                <xsl:if test="$epub.autolabel != 0">
+                  <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:variable name="href">
+                <xsl:call-template name="href.target.with.base.dir">
+                  <xsl:with-param name="object" select="/" />
+                </xsl:call-template>
+              </xsl:variable>
+              <xsl:element name="docTitle" namespace="http://www.daisy.org/z3986/2005/ncx/">
+                <xsl:element name="text" namespace="http://www.daisy.org/z3986/2005/ncx/">
+                  <xsl:value-of select="normalize-space($title)" />
+                </xsl:element>
+              </xsl:element>
+              <xsl:element name="navMap" namespace="http://www.daisy.org/z3986/2005/ncx/">
+                <xsl:choose>
+                  <xsl:when test="$root.is.a.chunk != '0'">
+                    <xsl:apply-templates select="/*" mode="ncx" />
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:apply-templates select="/*/*" mode="ncx" />
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:element>
+            </xsl:otherwise>
+
+          </xsl:choose>
+        </xsl:element>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="book|
+                       article|
+                       part|
+                       reference|
+                       preface|
+                       chapter|
+                       bibliography|
+                       appendix|
+                       glossary|
+                       section|
+                       sect1|
+                       sect2|
+                       sect3|
+                       sect4|
+                       sect5|
+                       refentry|
+                       colophon|
+                       bibliodiv[title]|
+                       setindex|
+                       index"
+                mode="ncx">
+    <xsl:variable name="depth" select="count(ancestor::*)"/>
+    <xsl:variable name="title">
+      <xsl:if test="$epub.autolabel != 0">
+        <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:variable name="href">
+      <xsl:call-template name="href.target.with.base.dir">
+        <xsl:with-param name="context" select="/" />
+        <!-- Generate links relative to the location of root file/toc.xml file -->
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="id">
+      <xsl:value-of select="generate-id(.)"/>
+    </xsl:variable>
+    <xsl:variable name="order">
+      <xsl:value-of select="$depth +
+                                  count(preceding::part|
+                                  preceding::reference|
+                                  preceding::book[parent::set]|
+                                  preceding::preface|
+                                  preceding::chapter|
+                                  preceding::bibliography|
+                                  preceding::appendix|
+                                  preceding::article|
+                                  preceding::glossary|
+                                  preceding::section[not(parent::partintro)]|
+                                  preceding::sect1[not(parent::partintro)]|
+                                  preceding::sect2[not(ancestor::partintro)]|
+                                  preceding::sect3[not(ancestor::partintro)]|
+                                  preceding::sect4[not(ancestor::partintro)]|
+                                  preceding::sect5[not(ancestor::partintro)]|
+                                  preceding::refentry|
+                                  preceding::colophon|
+                                  preceding::bibliodiv[title]|
+                                  preceding::index)"/>
+    </xsl:variable>
+
+    <xsl:element name="navPoint" namespace="http://www.daisy.org/z3986/2005/ncx/">
+      <xsl:attribute name="id">
+        <xsl:value-of select="$id"/>
+      </xsl:attribute>
+
+      <xsl:attribute name="playOrder">
+        <xsl:choose>
+          <xsl:when test="/*[self::set]">
+            <xsl:value-of select="$order"/>
+          </xsl:when>
+          <xsl:when test="$root.is.a.chunk != '0'">
+            <xsl:value-of select="$order + 1"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$order - 0"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+      <xsl:element name="navLabel" namespace="http://www.daisy.org/z3986/2005/ncx/">
+        <xsl:element name="text" namespace="http://www.daisy.org/z3986/2005/ncx/"><xsl:value-of select="normalize-space($title)"/> </xsl:element>
+      </xsl:element>
+      <xsl:element name="content" namespace="http://www.daisy.org/z3986/2005/ncx/">
+        <xsl:attribute name="src">
+          <xsl:value-of select="$href"/>
+        </xsl:attribute>
+      </xsl:element>
+      <xsl:apply-templates select="book[parent::set]|part|reference|preface|chapter|bibliography|appendix|article|glossary|section|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv[title]|setindex|index" mode="ncx"/>
+    </xsl:element>
+
+  </xsl:template>
+
+  <xsl:template match="*" mode="opf.metadata">
+    <!-- override if you care -->
+  </xsl:template>
+
+  <xsl:template match="authorgroup" mode="opf.metadata">
+    <xsl:apply-templates select="author|corpauthor" mode="opf.metadata"/>
+  </xsl:template>
+
+  <xsl:template match="author|corpauthor" mode="opf.metadata">
+    <xsl:variable name="n">
+      <xsl:call-template name="person.name">
+        <xsl:with-param name="node" select="."/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:element name="dc:creator">
+      <xsl:attribute name="opf:file-as">
+        <xsl:call-template name="person.name.last-first">
+          <xsl:with-param name="node" select="."/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:value-of select="normalize-space(string($n))"/>
+    </xsl:element>
+  </xsl:template>
+
+  <xsl:template match="date" mode="opf.metadata">
+    <xsl:element name="dc:date">
+      <xsl:value-of select="normalize-space(string(.))"/>
+    </xsl:element>
+  </xsl:template>
+
+
+  <!-- Space separate the compontents of the abstract (dropping the inline markup, sadly) -->
+  <xsl:template match="abstract" mode="opf.metadata">
+    <xsl:element name="dc:description">
+      <xsl:for-each select="formalpara|para|simpara|title">
+        <xsl:choose>
+          <xsl:when test="self::formalpara">
+            <xsl:value-of select="normalize-space(string(title))"/>
+            <xsl:text>: </xsl:text>
+            <xsl:value-of select="normalize-space(string(para))"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="normalize-space(string(.))"/>
+          </xsl:otherwise>  
+        </xsl:choose>
+        <xsl:if test="self::title">
+          <xsl:text>:</xsl:text>
+        </xsl:if>
+        <xsl:if test="not(position() = last())">
+          <xsl:text> </xsl:text>
+        </xsl:if>
+      </xsl:for-each>  
+    </xsl:element>
+  </xsl:template>
+
+  <xsl:template match="subjectset" mode="opf.metadata">
+    <xsl:apply-templates select="subject/subjectterm" mode="opf.metadata"/>
+  </xsl:template>
+  
+  <xsl:template match="subjectterm" mode="opf.metadata">
+    <xsl:element name="dc:subject">
+      <xsl:value-of select="normalize-space(string(.))"/>
+    </xsl:element>
+  </xsl:template>
+
+  <xsl:template match="publisher" mode="opf.metadata">
+    <xsl:apply-templates select="publishername" mode="opf.metadata"/>
+  </xsl:template>
+  
+  <xsl:template match="publishername" mode="opf.metadata">
+    <xsl:element name="dc:publisher">
+      <xsl:value-of select="normalize-space(string(.))"/>
+    </xsl:element>
+  </xsl:template>
+
+  <xsl:template match="copyright" mode="opf.metadata">
+    <xsl:variable name="copyright.date">
+      <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:variable>
+    <xsl:if test="not(../date)">
+      <xsl:element name="dc:date">
+        <xsl:call-template name="copyright.years">
+          <xsl:with-param name="years" select="year[last()]"/>
+          <xsl:with-param name="print.ranges" select="0"/>
+          <xsl:with-param name="single.year.ranges" select="0"/>
+        </xsl:call-template>
+      </xsl:element>
+    </xsl:if>
+    <xsl:element name="dc:rights">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Copyright'"/>
+      </xsl:call-template>
+      <xsl:call-template name="gentext.space"/>
+      <xsl:text>&#x00A9;</xsl:text>
+      <xsl:call-template name="gentext.space"/>
+      <xsl:value-of select="$copyright.date"/>
+      <xsl:call-template name="gentext.space"/>
+      <xsl:apply-templates select="holder" mode="titlepage.mode"/>
+    </xsl:element>
+  </xsl:template>
+
+  <xsl:template name="opf.guide">
+    <xsl:if test="contains($toc.params, 'toc') or 
+                  /*/*[cover or contains(name(.), 'info')]//mediaobject[@role='cover' or ancestor::cover]"> 
+      <xsl:element namespace="http://www.idpf.org/2007/opf" name="guide">
+        <xsl:if test="/*/*[cover or contains(name(.), 'info')]//mediaobject[@role='cover' or ancestor::cover]"> 
+          <xsl:element namespace="http://www.idpf.org/2007/opf" name="reference">
+            <xsl:attribute name="href">
+              <xsl:value-of select="$epub.cover.html" />
+            </xsl:attribute>
+            <xsl:attribute name="type">cover</xsl:attribute>
+            <xsl:attribute name="title">Cover</xsl:attribute>
+          </xsl:element>
+        </xsl:if>  
+
+        <xsl:if test="contains($toc.params, 'toc')">
+          <xsl:element namespace="http://www.idpf.org/2007/opf" name="reference">
+            <xsl:attribute name="href">
+              <xsl:call-template name="toc-href">
+                <xsl:with-param name="node" select="/*"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="type">toc</xsl:attribute>
+            <xsl:attribute name="title">Table of Contents</xsl:attribute>
+          </xsl:element>
+        </xsl:if>  
+      </xsl:element>  
+    </xsl:if>  
+  </xsl:template>
+
+  <xsl:template name="opf.spine">
+
+    <xsl:element namespace="http://www.idpf.org/2007/opf" name="spine">
+      <xsl:attribute name="toc">
+        <xsl:value-of select="$epub.ncx.toc.id"/>
+      </xsl:attribute>
+
+      <xsl:if test="/*/*[cover or contains(name(.), 'info')]//mediaobject[@role='cover' or ancestor::cover]"> 
+        <xsl:element namespace="http://www.idpf.org/2007/opf" name="itemref">
+          <xsl:attribute name="idref">
+            <xsl:value-of select="$epub.cover.id"/>
+          </xsl:attribute>
+          <xsl:attribute name="linear">
+          <xsl:choose>
+            <xsl:when test="$epub.cover.linear">
+              <xsl:text>yes</xsl:text>
+            </xsl:when>
+            <xsl:otherwise>no</xsl:otherwise>
+          </xsl:choose>
+          </xsl:attribute>
+        </xsl:element>
+      </xsl:if>
+
+
+      <xsl:if test="contains($toc.params, 'toc')">
+        <xsl:element namespace="http://www.idpf.org/2007/opf" name="itemref">
+          <xsl:attribute name="idref"> <xsl:value-of select="$epub.html.toc.id"/> </xsl:attribute>
+          <xsl:attribute name="linear">yes</xsl:attribute>
+        </xsl:element>
+      </xsl:if>  
+
+      <!-- TODO: be nice to have a idref="titlepage" here -->
+      <xsl:choose>
+        <xsl:when test="$root.is.a.chunk != '0'">
+          <xsl:apply-templates select="/*" mode="opf.spine"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="/*/*" mode="opf.spine"/>
+        </xsl:otherwise>
+      </xsl:choose>
+                                   
+    </xsl:element>
+  </xsl:template>
+
+  <xsl:template match="*" mode="opf.spine">
+    <xsl:variable name="is.chunk">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="."/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="$is.chunk != 0">
+      <xsl:element namespace="http://www.idpf.org/2007/opf" name="itemref">
+        <xsl:attribute name="idref">
+          <xsl:value-of select="generate-id(.)"/>
+        </xsl:attribute>
+      </xsl:element>
+      <xsl:apply-templates select="*|.//refentry" mode="opf.spine"/>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="opf.manifest">
+    <xsl:element namespace="http://www.idpf.org/2007/opf" name="manifest">
+      <xsl:element namespace="http://www.idpf.org/2007/opf" name="item">
+        <xsl:attribute name="id"> <xsl:value-of select="$epub.ncx.toc.id"/> </xsl:attribute>
+        <xsl:attribute name="media-type">application/x-dtbncx+xml</xsl:attribute>
+        <xsl:attribute name="href"><xsl:value-of select="$epub.ncx.filename"/> </xsl:attribute>
+      </xsl:element>
+
+      <xsl:if test="contains($toc.params, 'toc')">
+        <xsl:element namespace="http://www.idpf.org/2007/opf" name="item">
+          <xsl:attribute name="id"> <xsl:value-of select="$epub.html.toc.id"/> </xsl:attribute>
+          <xsl:attribute name="media-type">application/xhtml+xml</xsl:attribute>
+          <xsl:attribute name="href">
+            <xsl:call-template name="toc-href">
+              <xsl:with-param name="node" select="/*"/>
+            </xsl:call-template>
+          </xsl:attribute>
+        </xsl:element>
+      </xsl:if>  
+
+      <xsl:if test="$html.stylesheet != ''">
+        <xsl:element namespace="http://www.idpf.org/2007/opf" name="item">
+          <xsl:attribute name="media-type">text/css</xsl:attribute>
+          <xsl:attribute name="id">css</xsl:attribute>
+          <xsl:attribute name="href"><xsl:value-of select="$html.stylesheet"/></xsl:attribute>
+        </xsl:element>
+      </xsl:if>
+
+      <xsl:if test="/*/*[cover or contains(name(.), 'info')]//mediaobject[@role='cover' or ancestor::cover]"> 
+        <xsl:element namespace="http://www.idpf.org/2007/opf" name="item">
+          <xsl:attribute name="id"> <xsl:value-of select="$epub.cover.id"/> </xsl:attribute>
+          <xsl:attribute name="href"> 
+            <xsl:value-of select="$epub.cover.html"/>
+          </xsl:attribute>
+          <xsl:attribute name="media-type">application/xhtml+xml</xsl:attribute>
+        </xsl:element>
+      </xsl:if>  
+
+      <xsl:choose>
+        <xsl:when test="$epub.embedded.fonts != '' and not(contains($epub.embedded.fonts, ','))">
+          <xsl:call-template name="embedded-font-item">
+            <xsl:with-param name="font.file" select="$epub.embedded.fonts"/> <!-- There is just one -->
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$epub.embedded.fonts != ''">
+          <xsl:variable name="font.file.tokens" select="str:tokenize($epub.embedded.fonts, ',')"/>
+          <xsl:for-each select="exsl:node-set($font.file.tokens)">
+            <xsl:call-template name="embedded-font-item">
+              <xsl:with-param name="font.file" select="."/>
+              <xsl:with-param name="font.order" select="position()"/>
+            </xsl:call-template>
+          </xsl:for-each>
+        </xsl:when>
+      </xsl:choose>
+
+      <!-- TODO: be nice to have a id="titlepage" here -->
+      <xsl:apply-templates select="//part|
+                                   //book[*[last()][self::bookinfo]]|
+                                   //book[bookinfo]|
+                                   //book[*[last()][self::info]]|
+                                   //book[info]|
+                                   /set|
+                                   /set/book|
+                                   //reference|
+                                   //preface|
+                                   //chapter|
+                                   //bibliography|
+                                   //appendix|
+                                   //article|
+                                   //glossary|
+                                   //section|
+                                   //sect1|
+                                   //sect2|
+                                   //sect3|
+                                   //sect4|
+                                   //sect5|
+                                   //refentry|
+                                   //colophon|
+                                   //bibliodiv[title]|
+                                   //index|
+                                   //setindex|
+                                   //graphic|
+                                   //inlinegraphic|
+                                   //mediaobject|
+                                   //mediaobjectco|
+                                   //inlinemediaobject" 
+                           mode="opf.manifest"/>
+      <xsl:call-template name="opf.calloutlist"/>
+    </xsl:element>
+  </xsl:template>
+
+  <xsl:template name="opf.calloutlist">
+    <xsl:variable name="format">
+      <xsl:call-template name="guess-media-type">
+        <xsl:with-param name="ext" select="$callout.graphics.extension"/>
+      </xsl:call-template>
+    </xsl:variable>  
+    <xsl:if test="(//calloutlist|//co)">
+      <xsl:call-template name="opf.reference.callout">
+        <xsl:with-param name="conum" select="1"/>
+        <xsl:with-param name="format" select="$format"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="opf.reference.callout">
+    <xsl:param name="conum"/>
+    <xsl:param name="format"/>
+
+    <xsl:variable name="filename" select="concat($callout.graphics.path, $conum, $callout.graphics.extension)"/>
+
+    <xsl:element namespace="http://www.idpf.org/2007/opf" name="item">
+      <xsl:attribute name="id"> <xsl:value-of select="concat(generate-id(.), 'callout', $conum)"/> </xsl:attribute>
+      <xsl:attribute name="href"> <xsl:value-of select="$filename"/> </xsl:attribute>
+      <xsl:attribute name="media-type">
+        <xsl:value-of select="$format"/>
+      </xsl:attribute>
+    </xsl:element>
+    <xsl:if test="($conum &lt; $callout.graphics.number.limit)">
+      <xsl:call-template name="opf.reference.callout">
+        <xsl:with-param name="conum" select="$conum + 1"/>
+        <xsl:with-param name="format" select="$format"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="guess-media-type">
+    <xsl:param name="ext"></xsl:param>
+    <xsl:choose>
+      <xsl:when test="contains($ext, '.gif')">
+        <xsl:text>image/gif</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($ext, 'GIF')">
+        <xsl:text>image/gif</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($ext, '.png')">
+        <xsl:text>image/png</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($ext, 'PNG')">
+        <xsl:text>image/png</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($ext, '.jpeg')">
+        <xsl:text>image/jpeg</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($ext, 'JPEG')">
+        <xsl:text>image/jpeg</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($ext, '.jpg')">
+        <xsl:text>image/jpeg</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($ext, 'JPG')">
+        <xsl:text>image/jpeg</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($ext, '.svg')">
+        <xsl:text>image/svg+xml</xsl:text>
+      </xsl:when>
+      <xsl:when test="contains($ext, 'SVG')">
+        <xsl:text>image/svg+xml</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- we failed -->
+        <xsl:text></xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="mediaobject|
+                       mediaobjectco|
+                       inlinemediaobject" 
+                mode="opf.manifest">
+
+    <xsl:variable name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject                      |textobject"/>
+
+    <xsl:variable name="object.index">
+      <xsl:call-template name="select.mediaobject.index">
+        <xsl:with-param name="olist" select="$olist"/>
+        <xsl:with-param name="count" select="1"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="object" select="$olist[position() = $object.index]"/>
+
+    <xsl:choose>
+      <xsl:when test="$object/descendant::imagedata[@format = 'GIF' or 
+                                                    @format = 'GIF87a' or 
+                                                    @format = 'GIF89a' or 
+                                                    @format = 'JPEG' or 
+                                                    @format = 'JPG' or 
+                                                    @format = 'PNG' or 
+                                                    @format = 'SVG']">
+        <xsl:apply-templates select="$object[descendant::imagedata[@format = 'GIF' or 
+                                                                   @format = 'GIF87a' or 
+                                                                   @format = 'GIF89a' or 
+                                                                   @format = 'JPEG' or 
+                                                                   @format = 'JPG' or 
+                                                                   @format = 'PNG' or 
+                                                                   @format = 'SVG']][1]/imagedata"
+                             mode="opf.manifest"/>              
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="$object/imagedata[1]"
+                             mode="opf.manifest"/>              
+      </xsl:otherwise>
+    </xsl:choose>  
+  </xsl:template>
+
+  <xsl:template match="cover/mediaobject|
+                       mediaobject[@role='cover']"
+                mode="opf.manifest">
+    <xsl:choose>
+      <xsl:when test="imageobject[@role='front-large']">
+        <xsl:apply-templates select="imageobject[@role='front-large']/imagedata"
+                             mode="opf.manifest"/>              
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="imageobject/imagedata[1]"
+                             mode="opf.manifest"/>              
+      </xsl:otherwise>
+    </xsl:choose>  
+  </xsl:template>
+
+  <xsl:template match="mediaobjectco"
+                mode="opf.manifest">
+    <xsl:message>WARNING: mediaobjectco almost certainly will not render as expected in .epub!</xsl:message>
+    <xsl:apply-templates select="imageobjectco/imageobject/imagedata" 
+                         mode="opf.manifest"/>              
+  </xsl:template>
+
+  <!-- TODO: Barf (xsl:message terminate=yes) if you find a graphic with no reasonable format or a mediaobject w/o same? [option to not die?] -->
+
+  <!-- wish I had XSLT2 ...-->
+  <!-- TODO: priority a hack -->
+  <xsl:template match="graphic[not(@format)]|
+                       inlinegraphic[not(@format)]|
+                       imagedata[not(@format)]"
+                mode="opf.manifest">        
+    <xsl:variable name="filename">
+      <xsl:choose>
+        <xsl:when test="contains(name(.), 'graphic')">
+          <xsl:choose>
+            <xsl:when test="@entityref">
+              <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="@fileref"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="mediaobject.filename">
+            <xsl:with-param name="object" select=".."/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>  
+    <xsl:variable name="format"> 
+      <xsl:call-template name="guess-media-type">
+        <xsl:with-param name="ext" select="@fileref"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="fr" select="@fileref"/>
+    <xsl:if test="$format != ''">
+      <!-- only do this if we're the first file to match -->
+      <!-- TODO: Why can't this be simple equality?? (I couldn't get it to work) -->
+      <xsl:if test="generate-id(.) = generate-id(key('image-filerefs', $fr)[1])">
+        <xsl:element namespace="http://www.idpf.org/2007/opf" name="item">
+          <xsl:attribute name="id"> 
+            <xsl:choose>
+              <xsl:when test="ancestor::mediaobject[@role='cover'] and parent::*[@role='front-large']">
+                <xsl:value-of select="$epub.cover.image.id"/>
+              </xsl:when>
+              <xsl:when test="ancestor::mediaobject[@role='cover'] and (count(ancestor::mediaobject//imageobject) = 1)">
+                <xsl:value-of select="$epub.cover.image.id"/>
+              </xsl:when>
+              <xsl:when test="ancestor::cover">
+                <xsl:value-of select="$epub.cover.image.id"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="generate-id(.)"/> 
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:attribute>  
+          <xsl:attribute name="href"> <xsl:value-of select="$filename"/> </xsl:attribute>
+          <xsl:attribute name="media-type">
+            <xsl:value-of select="$format"/>
+          </xsl:attribute>
+        </xsl:element>
+      </xsl:if>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- Note: Selection of the first interesting imagedata is done in the select -->
+  <xsl:template match="graphic[@format = 'GIF' or @format = 'GIF87a' or @format = 'GIF89a' or @format = 'JPEG' or @format = 'JPG' or @format = 'PNG' or @format = 'SVG']|
+                       inlinegraphic[@format = 'GIF' or @format = 'GIF87a' or @format = 'GIF89a' or @format = 'JPEG' or @format = 'JPG' or @format = 'PNG' or @format = 'SVG']|
+                       imagedata[@format]"
+                mode="opf.manifest">
+    <xsl:variable name="filename">
+      <xsl:choose>
+        <xsl:when test="contains(name(.), 'graphic')">
+          <xsl:choose>
+            <xsl:when test="@entityref">
+              <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="@fileref"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="mediaobject.filename">
+            <xsl:with-param name="object" select=".."/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>  
+    <xsl:variable name="fr" select="@fileref"/>
+    <!-- only do this if we're the first file to match -->
+    <!-- TODO: Why can't this be simple equality?? (I couldn't get it to work) -->
+    <xsl:if test="generate-id(.) = generate-id(key('image-filerefs', $fr)[1])">
+      <xsl:element namespace="http://www.idpf.org/2007/opf" name="item">
+        <xsl:attribute name="id"> 
+          <xsl:choose>
+            <xsl:when test="ancestor::mediaobject[@role='cover'] and parent::*[@role='front-large']">
+              <xsl:value-of select="$epub.cover.image.id"/>
+            </xsl:when>
+            <xsl:when test="ancestor::mediaobject[@role='cover'] and (count(ancestor::mediaobject//imageobject) = 1)">
+              <xsl:value-of select="$epub.cover.image.id"/>
+            </xsl:when>
+            <xsl:when test="ancestor::cover">
+              <xsl:value-of select="$epub.cover.image.id"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="generate-id(.)"/> 
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+        <xsl:attribute name="href"> <xsl:value-of select="$filename"/> </xsl:attribute>
+        <xsl:attribute name="media-type">
+          <xsl:call-template name="guess-media-type">
+            <xsl:with-param name="ext" select="@format"/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </xsl:element>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- Warning: While the test indicate this match list is accurate, it may 
+       need further tweaking to ensure _never_ dropping generated content (XHTML)
+       from the manifest (OPF file) -->
+  <xsl:template
+      match="set|
+            book[parent::set]|
+            book[*[last()][self::bookinfo]]|
+            book[bookinfo]|
+            book[*[last()][self::info]]|
+            book[info]|
+            article|
+            part|
+            reference|
+            preface|
+            chapter|
+            bibliography|
+            appendix|
+            glossary|
+            section|
+            sect1|
+            sect2|
+            sect3|
+            sect4|
+            sect5|
+            refentry|
+            colophon|
+            bibliodiv[title]|
+            setindex|
+            index"
+      mode="opf.manifest">
+    <xsl:variable name="href">
+      <xsl:call-template name="href.target.with.base.dir">
+        <xsl:with-param name="context" select="/" />
+        <!-- Generate links relative to the location of root file/toc.xml file -->
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="id">
+      <xsl:value-of select="generate-id(.)"/>
+    </xsl:variable>
+
+    <xsl:variable name="is.chunk">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="."/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="$is.chunk != 0">
+      <xsl:element namespace="http://www.idpf.org/2007/opf" name="item">
+        <xsl:attribute name="id"> <xsl:value-of select="$id"/> </xsl:attribute>
+        <xsl:attribute name="href"> <xsl:value-of select="$href"/> </xsl:attribute>
+        <xsl:attribute name="media-type">application/xhtml+xml</xsl:attribute>
+      </xsl:element>
+    </xsl:if>  
+  </xsl:template>  
+
+  <xsl:template match="text()" mode="ncx" />
+
+  <xsl:template name="html.head">
+    <xsl:param name="prev" select="/foo"/>
+    <xsl:param name="next" select="/foo"/>
+    <xsl:variable name="this" select="."/>
+    <xsl:variable name="home" select="/*[1]"/>
+    <xsl:variable name="up" select="parent::*"/>
+
+    <head xmlns="http://www.w3.org/1999/xhtml">
+      <xsl:call-template name="system.head.content"/>
+      <xsl:call-template name="head.content"/>
+
+      <xsl:call-template name="user.head.content"/>
+    </head>
+  </xsl:template>
+
+  <!-- OVERRIDES xhtml-1_1/graphics.xsl -->
+  <!-- we can't deal with no img/@alt, because it's required. Try grabbing a title before it instead (hopefully meaningful) -->
+  <xsl:template name="process.image.attributes">
+    <xsl:param name="alt"/>
+    <xsl:param name="html.width"/>
+    <xsl:param name="html.depth"/>
+    <xsl:param name="longdesc"/>
+    <xsl:param name="scale"/>
+    <xsl:param name="scalefit"/>
+    <xsl:param name="scaled.contentdepth"/>
+    <xsl:param name="scaled.contentwidth"/>
+    <xsl:param name="viewport"/>
+
+    <xsl:choose>
+      <xsl:when test="@contentwidth or @contentdepth">
+        <!-- ignore @width/@depth, @scale, and @scalefit if specified -->
+        <xsl:if test="@contentwidth and $scaled.contentwidth != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="$scaled.contentwidth"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:if test="@contentdepth and $scaled.contentdepth != ''">
+          <xsl:attribute name="height">
+            <xsl:value-of select="$scaled.contentdepth"/>
+          </xsl:attribute>
+        </xsl:if>
+      </xsl:when>
+
+      <xsl:when test="number($scale) != 1.0">
+        <!-- scaling is always uniform, so we only have to specify one dimension -->
+        <!-- ignore @scalefit if specified -->
+        <xsl:attribute name="width">
+          <xsl:value-of select="$scaled.contentwidth"/>
+        </xsl:attribute>
+      </xsl:when>
+
+      <xsl:when test="$scalefit != 0">
+        <xsl:choose>
+          <xsl:when test="contains($html.width, '%')">
+            <xsl:choose>
+              <xsl:when test="$viewport != 0">
+                <!-- The *viewport* will be scaled, so use 100% here! -->
+                <xsl:attribute name="width">
+                  <xsl:value-of select="'100%'"/>
+                </xsl:attribute>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:attribute name="width">
+                  <xsl:value-of select="$html.width"/>
+                </xsl:attribute>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+
+          <xsl:when test="contains($html.depth, '%')">
+            <!-- HTML doesn't deal with this case very well...do nothing -->
+          </xsl:when>
+
+          <xsl:when test="$scaled.contentwidth != '' and $html.width != ''                         and $scaled.contentdepth != '' and $html.depth != ''">
+            <!-- scalefit should not be anamorphic; figure out which direction -->
+            <!-- has the limiting scale factor and scale in that direction -->
+            <xsl:choose>
+              <xsl:when test="$html.width div $scaled.contentwidth &gt;                             $html.depth div $scaled.contentdepth">
+                <xsl:attribute name="height">
+                  <xsl:value-of select="$html.depth"/>
+                </xsl:attribute>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:attribute name="width">
+                  <xsl:value-of select="$html.width"/>
+                </xsl:attribute>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+
+          <xsl:when test="$scaled.contentwidth != '' and $html.width != ''">
+            <xsl:attribute name="width">
+              <xsl:value-of select="$html.width"/>
+            </xsl:attribute>
+          </xsl:when>
+
+          <xsl:when test="$scaled.contentdepth != '' and $html.depth != ''">
+            <xsl:attribute name="height">
+              <xsl:value-of select="$html.depth"/>
+            </xsl:attribute>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:when>
+    </xsl:choose>
+
+    <!-- AN OVERRIDE -->
+    <xsl:if test="not(@format ='SVG')">
+      <xsl:attribute name="alt">
+        <xsl:choose>
+          <xsl:when test="$alt != ''">
+            <xsl:value-of select="normalize-space($alt)"/>
+          </xsl:when>
+          <xsl:when test="preceding::title[1]">
+            <xsl:value-of select="normalize-space(preceding::title[1])"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text>(missing alt)</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+    <!-- END OF OVERRIDE -->
+
+    <xsl:if test="$longdesc != ''">
+      <xsl:attribute name="longdesc">
+        <xsl:value-of select="$longdesc"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="@align and $viewport = 0">
+      <xsl:attribute name="style"><xsl:text>text-align: </xsl:text>
+        <xsl:choose>
+          <xsl:when test="@align = 'center'">middle</xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="@align"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+  </xsl:template>
+  
+  <!-- OVERRIDES xhtml-1_1/chunk-common.xsl   -->
+  <!-- make a bibliography always a chunk -->
+  <xsl:template name="chunk">       
+    <xsl:param name="node" select="."/>
+    <!-- returns 1 if $node is a chunk -->
+
+    <!-- ==================================================================== -->
+    <!-- What's a chunk?
+
+        The root element
+        appendix
+        article
+        bibliography  ### NO LONGER TRUE in article or part or book
+        book
+        chapter
+        colophon
+        glossary      in article or part or book
+        index         in article or part or book
+        part
+        preface
+        refentry
+        reference
+        sect{1,2,3,4,5}  if position()>1 && depth < chunk.section.depth
+        section          if position()>1 && depth < chunk.section.depth
+        set
+        setindex
+                                                                              -->
+    <!-- ==================================================================== -->
+
+  <!--
+    <xsl:message>
+      <xsl:text>chunk: </xsl:text>
+      <xsl:value-of select="name($node)"/>
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$node/@id"/>
+      <xsl:text>)</xsl:text>
+      <xsl:text> csd: </xsl:text>
+      <xsl:value-of select="$chunk.section.depth"/>
+      <xsl:text> cfs: </xsl:text>
+      <xsl:value-of select="$chunk.first.sections"/>
+      <xsl:text> ps: </xsl:text>
+      <xsl:value-of select="count($node/parent::section)"/>
+      <xsl:text> prs: </xsl:text>
+      <xsl:value-of select="count($node/preceding-sibling::section)"/>
+    </xsl:message>
+  -->
+
+    <xsl:choose>
+      <xsl:when test="not($node/parent::*)">1</xsl:when>
+
+      <xsl:when test="local-name($node) = 'sect1'                     and $chunk.section.depth &gt;= 1                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect1) &gt; 0)">
+        <xsl:text>1</xsl:text>
+      </xsl:when>
+      <xsl:when test="local-name($node) = 'sect2'                     and $chunk.section.depth &gt;= 2                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect2) &gt; 0)">
+        <xsl:call-template name="chunk">
+          <xsl:with-param name="node" select="$node/parent::*"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="local-name($node) = 'sect3'                     and $chunk.section.depth &gt;= 3                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect3) &gt; 0)">
+        <xsl:call-template name="chunk">
+          <xsl:with-param name="node" select="$node/parent::*"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="local-name($node) = 'sect4'                     and $chunk.section.depth &gt;= 4                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect4) &gt; 0)">
+        <xsl:call-template name="chunk">
+          <xsl:with-param name="node" select="$node/parent::*"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="local-name($node) = 'sect5'                     and $chunk.section.depth &gt;= 5                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect5) &gt; 0)">
+        <xsl:call-template name="chunk">
+          <xsl:with-param name="node" select="$node/parent::*"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="local-name($node) = 'section'                     and $chunk.section.depth &gt;= count($node/ancestor::section)+1                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::section) &gt; 0)">
+        <xsl:call-template name="chunk">
+          <xsl:with-param name="node" select="$node/parent::*"/>
+        </xsl:call-template>
+      </xsl:when>
+
+      <xsl:when test="local-name($node)='preface'">1</xsl:when>
+      <xsl:when test="local-name($node)='chapter'">1</xsl:when>
+      <xsl:when test="local-name($node)='appendix'">1</xsl:when>
+      <xsl:when test="local-name($node)='article'">1</xsl:when>
+      <xsl:when test="local-name($node)='part'">1</xsl:when>
+      <xsl:when test="local-name($node)='reference'">1</xsl:when>
+      <xsl:when test="local-name($node)='refentry'">1</xsl:when>
+      <xsl:when test="local-name($node)='index' and ($generate.index != 0 or count($node/*) &gt; 0)                     and (local-name($node/parent::*) = 'article'                     or local-name($node/parent::*) = 'book'                     or local-name($node/parent::*) = 'part'                     )">1</xsl:when>
+      <!-- AN OVERRIDE -->
+      <xsl:when test="local-name($node)='bibliography'">1</xsl:when>
+      <!-- END OF OVERRIDE -->
+      <xsl:when test="local-name($node)='glossary'                     and (local-name($node/parent::*) = 'article'                     or local-name($node/parent::*) = 'book'                     or local-name($node/parent::*) = 'part'                     )">1</xsl:when>
+      <xsl:when test="local-name($node)='colophon'">1</xsl:when>
+      <xsl:when test="local-name($node)='book'">1</xsl:when>
+      <xsl:when test="local-name($node)='set'">1</xsl:when>
+      <xsl:when test="local-name($node)='setindex'">1</xsl:when>
+      <xsl:when test="local-name($node)='legalnotice'                     and $generate.legalnotice.link != 0">1</xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- OVERRIDES xhtml-1_1/chunk-code.xsl   -->
+  <!-- Add chunking for bibliography as root element -->
+  <!-- AN OVERRIDE --> 
+  <xsl:template match="set|
+                       book|
+                       part|
+                       preface|
+                       chapter|
+                       appendix|
+                       article|
+                       reference|
+                       refentry|
+                       book/glossary|
+                       article/glossary|
+                       part/glossary|
+                       bibliography|
+                       colophon"
+                priority="1">       
+  <!-- END OF OVERRIDE --> 
+    <xsl:choose>
+      <xsl:when test="$onechunk != 0 and parent::*">
+        <xsl:apply-imports/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="process-chunk-element"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- OVERRIDES xhtml-1_1/graphics.xsl   -->
+  <!-- Do _NOT_ output any xlink garbage, so if you don't have 
+       processor with extensions, you're screwed and we're terminating -->
+  <xsl:template match="inlinegraphic">
+    <xsl:variable name="filename">
+      <xsl:choose>
+        <xsl:when test="@entityref">
+          <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="@fileref"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:call-template name="anchor"/>
+
+    <xsl:choose>
+      <xsl:when test="@format='linespecific'">
+        <xsl:choose>
+          <xsl:when test="$use.extensions != '0'                         and $textinsert.extension != '0'">
+            <xsl:choose>
+              <xsl:when test="element-available('stext:insertfile')">
+                <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/>
+              </xsl:when>
+              <xsl:when test="element-available('xtext:insertfile')">
+                <xtext:insertfile href="{$filename}"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:message terminate="yes">
+                  <xsl:text>No insertfile extension available.</xsl:text>
+                </xsl:message>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- AN OVERRIDE --> 
+            <xsl:message terminate="yes">
+              <xsl:text>No insertfile extension available. Use a different processor (with extensions) or turn on $use.extensions and $textinsert.extension (see docs for more).  </xsl:text>
+            </xsl:message>
+            <!-- END OF OVERRIDE --> 
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="process.image"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>  
+
+  <xsl:template name="cover">
+    <xsl:apply-templates select="/*/*[contains(name(.), 'info')]//mediaobject[@role='cover' or ancestor::cover]"/>
+  </xsl:template>  
+
+  <xsl:template match="/*/*[cover or contains(name(.), 'info')]//mediaobject[@role='cover' or ancestor::cover]">
+    <xsl:call-template name="write.chunk">
+      <xsl:with-param name="filename">
+        <xsl:value-of select="$epub.cover.filename" />
+      </xsl:with-param>
+      <xsl:with-param name="method" select="'xml'" />
+      <xsl:with-param name="encoding" select="'utf-8'" />
+      <xsl:with-param name="indent" select="'no'" />
+      <xsl:with-param name="quiet" select="$chunk.quietly" />
+      <xsl:with-param name="content">
+        <xsl:element namespace="http://www.w3.org/1999/xhtml" name="html">
+          <xsl:element namespace="http://www.w3.org/1999/xhtml" name="head">
+            <xsl:element namespace="http://www.w3.org/1999/xhtml" name="title">Cover</xsl:element>
+            <xsl:element namespace="http://www.w3.org/1999/xhtml" name="style">
+              <xsl:attribute name="type">text/css</xsl:attribute>
+              <!-- Help the cover image scale nicely in the CSS then apply a max-width to look better in Adobe Digital Editions -->
+              <xsl:text> img { max-width: 100%; }</xsl:text>
+            </xsl:element>
+          </xsl:element>
+          <xsl:element namespace="http://www.w3.org/1999/xhtml" name="body">
+            <xsl:element namespace="http://www.w3.org/1999/xhtml" name="div">
+              <xsl:attribute name="id">
+                <xsl:value-of select="$epub.cover.image.id"/>
+              </xsl:attribute>
+              <xsl:choose>
+                <xsl:when test="imageobject[@role='front-large']">
+                  <xsl:apply-templates select="imageobject[@role='front-large']"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:apply-templates select="imageobject[1]"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:element>
+            <!-- If this is defined as an explicit cover page, then process
+            any remaining text -->
+            <xsl:if test="ancestor::cover">
+              <xsl:apply-templates select="ancestor::cover/para"/>
+            </xsl:if>
+          </xsl:element>
+        </xsl:element>
+      </xsl:with-param>  
+    </xsl:call-template>  
+  </xsl:template>
+
+  <xsl:template name="cover-svg">
+    <xsl:param name="node"/>
+  </xsl:template>
+
+  <xsl:template name="toc-href">
+    <xsl:param name="node" select="."/>
+    <xsl:apply-templates select="$node" mode="recursive-chunk-filename">
+      <xsl:with-param name="recursive" select="true()"/>
+    </xsl:apply-templates>
+    <xsl:text>-toc</xsl:text>
+    <xsl:value-of select="$html.ext"/>
+  </xsl:template>
+
+  <xsl:template match="bibliodiv[title]" mode="label.markup">
+  </xsl:template>
+
+  <xsl:template match="token" mode="opf.manifest.font">
+    <xsl:call-template name="embedded-font-item">
+      <xsl:with-param name="font.file" select="."/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template name="embedded-font-item">
+    <xsl:param name="font.file"/>
+    <xsl:param name="font.order" select="1"/>
+
+    <xsl:element namespace="http://www.idpf.org/2007/opf" name="item">
+      <xsl:attribute name="id">
+        <xsl:value-of select="concat('epub.embedded.font.', $font.order)"/>
+      </xsl:attribute>
+      <xsl:attribute name="href"><xsl:value-of select="$font.file"/></xsl:attribute>
+      <xsl:choose>
+        <xsl:when test="contains($font.file, 'otf')">
+          <xsl:attribute name="media-type">font/opentype</xsl:attribute>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>WARNING: OpenType fonts should be supplied! (</xsl:text>
+            <xsl:value-of select="$font.file"/>
+            <xsl:text>)</xsl:text>
+          </xsl:message>
+        </xsl:otherwise>  
+      </xsl:choose>
+    </xsl:element>
+  </xsl:template>
+
+<!-- Change section.heading to improve SEO on generated HTML by doing heading levels 
+     "correctly". SEO rules are sometimes silly silly, but this does actually create 
+     a semantic improvement.
+     Note: This template needs to be manually maintained outside of the html/sections.xsl 
+     code, so make sure important changes get reintegrated. -->
+<xsl:template name="section.heading">
+  <xsl:param name="section" select="."/>
+  <xsl:param name="level" select="1"/>
+  <xsl:param name="allow-anchors" select="1"/>
+  <xsl:param name="title"/>
+  <xsl:param name="class" select="'title'"/>
+
+  <xsl:variable name="id">
+    <xsl:choose>
+      <!-- Make sure the subtitle doesn't get the same id as the title -->
+      <xsl:when test="self::subtitle">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="."/>
+        </xsl:call-template>
+      </xsl:when>
+      <!-- if title is in an *info wrapper, get the grandparent -->
+      <xsl:when test="contains(local-name(..), 'info')">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="../.."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- For SEO, we try to actually ensure we *always* output one and only one h1,
+       so unlike the regular stylesheets, we don't add one to the section level and
+       we get the right behavior because of chunking. -->
+  <xsl:variable name="hlevel">
+    <xsl:choose>
+      <!-- highest valid HTML H level is H6; so anything nested deeper
+           than 7 levels down just becomes H6 -->
+      <xsl:when test="$level &gt; 6">6</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$level"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:element name="h{$hlevel}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:attribute name="class"><xsl:value-of select="$class"/></xsl:attribute>
+    <xsl:if test="$css.decoration != '0'">
+      <xsl:if test="$hlevel&lt;3">
+        <xsl:attribute name="style">clear: both</xsl:attribute>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="$allow-anchors != 0 and $generate.id.attributes = 0">
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="node" select="$section"/>
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:if test="$generate.id.attributes != 0 and not(local-name(.) = 'appendix')">
+      <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>
+    </xsl:if>
+    <xsl:copy-of select="$title"/>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bridgehead">
+  <xsl:variable name="container" select="(ancestor::appendix                         |ancestor::article                         |ancestor::bibliography                         |ancestor::chapter                         |ancestor::glossary                         |ancestor::glossdiv                         |ancestor::index                         |ancestor::partintro                         |ancestor::preface                         |ancestor::refsect1                         |ancestor::refsect2                         |ancestor::refsect3                         |ancestor::sect1                         |ancestor::sect2                         |ancestor::sect3                         |ancestor::sect4                         |ancestor::sect5                         |ancestor::section                         |ancestor::setindex                         |ancestor::simplesect)[last()]"/>
+
+  <xsl:variable name="clevel">
+    <xsl:choose>
+      <xsl:when test="local-name($container) = 'appendix'                       or local-name($container) = 'chapter'                       or local-name($container) = 'article'                       or local-name($container) = 'bibliography'                       or local-name($container) = 'glossary'                       or local-name($container) = 'index'                       or local-name($container) = 'partintro'                       or local-name($container) = 'preface'                       or local-name($container) = 'setindex'">1</xsl:when>
+      <xsl:when test="local-name($container) = 'glossdiv'">
+        <xsl:value-of select="count(ancestor::glossdiv)+1"/>
+      </xsl:when>
+      <xsl:when test="local-name($container) = 'sect1'                       or local-name($container) = 'sect2'                       or local-name($container) = 'sect3'                       or local-name($container) = 'sect4'                       or local-name($container) = 'sect5'                       or local-name($container) = 'refsect1'                       or local-name($container) = 'refsect2'                       or local-name($container) = 'refsect3'                       or local-name($container) = 'section'                       or local-name($container) = 'simplesect'">
+        <xsl:variable name="slevel">
+          <xsl:call-template name="section.level">
+            <xsl:with-param name="node" select="$container"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="$slevel + 1"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- HTML H level is one higher than section level -->
+  <xsl:variable name="hlevel">
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">1</xsl:when>
+      <xsl:when test="@renderas = 'sect2'">2</xsl:when>
+      <xsl:when test="@renderas = 'sect3'">3</xsl:when>
+      <xsl:when test="@renderas = 'sect4'">4</xsl:when>
+      <xsl:when test="@renderas = 'sect5'">5</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$clevel + 1"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="h{$hlevel}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<!-- SEO customization #2 -->
+<xsl:template name="component.title">
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="level">
+    <xsl:choose>
+      <xsl:when test="ancestor::section">
+        <xsl:value-of select="count(ancestor::section)+1"/>
+      </xsl:when>
+      <xsl:when test="ancestor::sect5">6</xsl:when>
+      <xsl:when test="ancestor::sect4">5</xsl:when>
+      <xsl:when test="ancestor::sect3">4</xsl:when>
+      <xsl:when test="ancestor::sect2">3</xsl:when>
+      <xsl:when test="ancestor::sect1">2</xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="h{$level}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:attribute name="class">title</xsl:attribute>
+    <xsl:if test="$generate.id.attributes = 0">
+      <xsl:call-template name="anchor">
+	<xsl:with-param name="node" select="$node"/>
+	<xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </xsl:if>
+      <xsl:apply-templates select="$node" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/epub3/README b/applications/content/template/docbook/epub3/README
new file mode 100644
index 0000000..477e785
--- /dev/null
+++ b/applications/content/template/docbook/epub3/README
@@ -0,0 +1,329 @@
+DocBook stylesheets for EPUB 3 output 
+=============================================
+
+This directory contains XSL stylesheets
+for generating EPUB3 output from DocBook content.
+For more information on EPUB3, see:
+
+http://idpf.org/epub/30
+
+These EPUB3 stylesheets are a customization layer on
+top of the xhtml5/ stylesheets in this distribution, which
+are in turn a customization layer on top of the 
+xhtml/ stylesheets in this distribution. 
+Using a customization layer enables the EPUB3
+stylesheets to inherit all the features of the
+XHTML stylesheets while making the minimum changes
+for them to produce valid EPUB3.
+
+Usage
+-----------
+The general process for creating an EPUB3 ebook is:
+
+1.  Generate chunked XHTML5 content that validates against
+the EPUB3 schemas, and generate the EPUB3 package
+files.
+
+2.  Copy any image files into the output directory.
+
+3.  Run a zip command to create an .epub file.
+
+4.  Validate the .epub file.
+
+
+Following are the steps in more detail.
+
+1.  Create the XHTML5 files.
+-----------------------------
+
+The first step is handled by these stylesheets.
+To generate EPUB3-compatible XHTML5 files,
+use one of the following stylesheets as you would any
+other DocBook XSL stylesheet:
+
+epub3/chunk.xsl           - Chunked output.
+epub3/profile-chunk.xsl   - Profiled chunk output.
+
+Although the stylesheet directory contains a docbook.xsl
+stylesheet for single file output, that is not useful for
+generated EPUB3.  
+
+You should set the $base.dir stylesheet param to the 
+subdirectory that will contain the .xhtml files and
+the epub package files.  Here is an example using xsltproc:
+
+xsltproc \
+  --stringparam base.dir ebook1/OEBPS/  \
+  epub3/chunk.xsl \
+  mybook.xml
+
+After processing a document with this setting, you should find
+the following output:
+
+ebook1/mimetype                - required mimetype file.
+ebook1/META-INF/container.xml  - required container file
+ebook1/OEBPS/package.opf       - required package file
+ebook1/OEBPS/toc.ncx           - optional NCX file for backwards compatibility
+ebook1/OEBPS/docbook-epub.css  - CSS file
+ebook1/OEBPS/*.xhtml           - The chunked content files.
+
+
+2.  Copy image files
+---------------------------
+
+Manually copy any image files used in the document
+into the corresponding locations in the $base.dir
+directory.  For example, if your document contains:
+
+  <imagedata fileref="images/caution.png"/>
+
+In this example base.dir, you would copy the file to:
+
+  ebook1/OEBPS/images/caution.png
+
+You can get a list of image files from the manifest file
+named ebook1/OEBPS/package.opf that is created by the
+stylesheet.  It includes references to image files for
+callouts and admonitions if they are used in the output.
+Note that the header and footer images are turned off for
+EPUB3 output.
+
+
+3.  Create the epub3 file.
+-----------------------------
+Change to the directory containing the base.dir (ebook1
+in this example), and run the following zip command to
+create the epub file:
+
+zip -r -X mybook.epub mimetype META-INF OEBPS 
+
+The -r option means recursively include all directories.
+The -X option excludes extra file attributes (required by epub3).
+The "mybook.epub" in this example is the output file.
+The other three arguments must appear in this order.
+
+
+4.  Validating with epubcheck 3
+-----------------------------------
+
+There is a java program that can be used to check an
+epub3 file for conformance.  It is currently available 
+from this website:
+
+  http://code.google.com/p/epubcheck/wiki/EPUBCheck30
+
+That website provides a download link, and information on
+how to run the command.
+
+
+Testing with EPUB readers
+----------------------------
+The EPUB3 standard is not yet widely supported.  The output of
+these stylesheets has been tested in the following readers:
+
+Apple iBooks on an iPod and iPad.
+   - Handles videodata and audiodata.
+   - Does not format MathML yet.
+   - Handles SVG.
+
+Firefox browser with the EPUBReader version 1.4.10 add-on.
+   - Formats MathML nicely.
+   - Does not handle videodata or audiodata yet.
+   - Handles SVG.
+
+Ibis EPUB3 preview version
+   - Does not format MathML yet.
+   - Does not handle videodata or audiodata yet.
+   - Handles SVG with external viewer.
+
+
+EPUB metadata
+========================
+The info child of the document's root element is used
+by the stylesheet to create EPUB metadata.  Note that
+metadata is plain text, so element content is converted
+to text using the XSL normalize-space() function.
+
+Here is the current mapping of info elements to EPUB
+metadata.  Any others are ignored for metadata, but
+may appear on the EPUB HTML titlepage, depending on the
+titlepage customization.
+
+NOTE: the <dc:*> elements (not attributes of meta) duplicate
+the meta elements for backwards compatibility, per the
+EPUB3 specification.  They can be turned off with the 
+$epub.include.optional.metadata.dc.elements parameter.
+
+abstract
+---------
+The content must be converted to a text string for the
+OPF metadata. The stylesheet converts only title, para,
+formalpara, and simpara children in an abstract.  All other
+child elements are ignored.  It puts any title first.
+The OPF output appears as:
+
+<meta property="dcterms:description">title: abstract text</meta>
+<dc:description>title: abstract text</dc:description>
+
+
+author
+-------
+If uses a personname child, then it applies the
+DocBook XSL person.name template to arrange the name.
+Otherwise processes org or orgname into the content.
+Then it outputs:
+
+<meta id="meta-creator1" property="dcterms:creator">Firstname Surname</meta>
+<dc:creator id="pub-creator1">Firstname Surname</dc:creator>
+
+If there are multiple authors, the number in the id attribute
+is incremented each time.
+
+
+authorgroup
+-------------
+Applies templates to all of its children.
+
+
+bibliocoverage
+---------------
+<meta property="dcterms:coverage">bibliocoverage text</meta>
+<dc:coverage>bibliocoverage text</dc:coverage>
+
+
+biblioid
+--------------
+This usually has @class="isbn" for the ISBN number.  It is used
+as the EPUB3 unique-identifier.  That isbn value
+is also output as follows:
+
+<meta id="meta-identifier" property="dcterms:identifier">urn:isbn:value</meta>
+<dc:identifier id="pub-identifier">urn:isbn:value</dc:identifier>
+
+A biblioid element with other class names are converted in a similar manner.
+
+
+bibliorelation
+----------------
+<meta property="dcterms:relation">bibliorelation text</meta>
+<dc:relation>bibliorelation text</dc:relation>
+
+
+bibliosource
+----------------
+<meta property="dcterms:source">bibliosource text</meta>
+<dc:source>bibliosource text</dc:source>
+
+
+collab
+------------
+If a personname child is used, then it calls the
+person.name template, otherwise is uses the orgname or
+collabname text.
+
+<meta property="dcterms:contributor">collab text</meta>
+<dc:contributor>collab text</dc:contributor>
+
+
+copyright
+-------------
+Arranges the copyright elements into a text string with
+copyright symbol, dates, and holder, and then
+generates:
+
+<meta property="dcterms:right">Copyright text</meta>
+<dc:right>Copyright text</dc:right>
+
+Also, if there is no info/date element, then the copyright
+year is used to generate:
+
+<meta property="dcterms:date">year</meta>
+<dc:date>year</dc:date>
+
+
+corpauthor
+------------
+<meta id="meta-creator1" property="dcterms:creator">corpauthor text</meta>
+<dc:creator id="pub-creator1">corpauthor text</dc:creator>
+
+
+corpcredit
+------------
+<meta property="dcterms:contributor">corpcredit text</meta>
+<dc:contributor>corpcredit text</dc:contributor>
+
+
+date
+-------------
+<meta property="dcterms:date">date text</meta>
+<dc:date>date text</dc:date>
+
+See also: copyright.
+
+
+editor
+--------------
+If a personname child is used, then it calls the
+person.name template, otherwise is uses the orgname text.
+
+An editor can be considered as either a creator (when there
+is no author) or a contributor.  The stylesheet parameter
+'editor.property' can be set to either 'creator' or
+'contributor' (default) at runtime.  So the output is either:
+
+<meta property="dcterms:contributor">editor text</meta>
+<dc:contributor>editor text</dc:contributor>
+
+or
+
+<meta property="dcterms:creator">editor text</meta>
+<dc:creator>editor text</dc:creator>
+
+
+isbn, issn, etc.
+-----------------
+Handled like biblioid @class="isbn".
+
+
+keyword
+-----------
+<meta property="dcterms:subject">keyword text</meta>
+<dc:subject>keyword text</dc:subject>
+
+
+keywordset
+------------
+Applies templates to its children.
+
+
+othercredit
+------------
+Handled like collab.
+
+
+pubdate 
+------------
+Handled like date.
+
+
+publisher
+--------------
+Applies templates only to publishername.
+
+
+publishername
+---------------
+<meta property="dcterms:publisher">publishername text</meta>
+<dc:publisher>publishername text</dc:publisher>
+
+
+subjectset
+--------------
+Applies templates to subject/subjecterm descendants.
+
+
+subjectterm
+------------------
+<meta property="dcterms:subject">subjecterm text</meta>
+<dc:subject>subjecterm text</dc:subject>
+
diff --git a/applications/content/template/docbook/epub3/chunk.xsl b/applications/content/template/docbook/epub3/chunk.xsl
new file mode 100644
index 0000000..aefaa68
--- /dev/null
+++ b/applications/content/template/docbook/epub3/chunk.xsl
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+  xmlns:exsl="http://exslt.org/common"
+  xmlns:epub="http://www.idpf.org/2007/ops"
+  exclude-result-prefixes="exsl"
+  version="1.0">
+
+<!-- $Id$ -->
+
+<!-- This is the main driver stylesheet file.  It imports or
+includes all the components that it needs. -->
+
+<!-- Import the module that customizes docbook elements -->
+<!-- Put any customizations of element content in this module. -->
+<xsl:import href="docbook.xsl"/>
+
+<xsl:import href="../xhtml/chunk-common.xsl"/>
+
+<xsl:include href="../xhtml/chunk-code.xsl"/>
+
+<!-- The following module has templates that override the stock
+     xhtml templates for HTML5 output.  
+     It contains match templates with priority="1" attributes,
+     and named templates.  These override any templates that
+     handle chunking behavior -->
+<xsl:include href="epub3-chunk-mods.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/epub3/chunkfast.xsl b/applications/content/template/docbook/epub3/chunkfast.xsl
new file mode 100644
index 0000000..8c2d180
--- /dev/null
+++ b/applications/content/template/docbook/epub3/chunkfast.xsl
@@ -0,0 +1,69 @@
+<?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:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="cf exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="chunk.xsl"/>
+<xsl:param name="chunk.fast" select="1"/>
+
+<xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+  <xsl:choose>
+    <xsl:when test="$chunk.fast != 0 and $exsl.node.set.available != 0">
+      <xsl:variable name="genid" select="generate-id()"/>
+
+      <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/>
+
+      <xsl:variable name="prevdiv" select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/>
+      <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/>
+
+      <xsl:variable name="nextdiv" select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/>
+      <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and parent::*">
+          <xsl:apply-imports/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="process-chunk">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and not(parent::*)">
+          <xsl:call-template name="chunk-all-sections"/>
+        </xsl:when>
+        <xsl:when test="$onechunk != 0">
+          <xsl:apply-imports/>
+        </xsl:when>
+        <xsl:when test="$chunk.first.sections = 0">
+          <xsl:call-template name="chunk-first-section-with-parent"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="chunk-all-sections"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/epub3/docbook-epub.css.xml b/applications/content/template/docbook/epub3/docbook-epub.css.xml
new file mode 100644
index 0000000..9f28011
--- /dev/null
+++ b/applications/content/template/docbook/epub3/docbook-epub.css.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0"?>
+<style>
+
+/********************************/
+/* start of styles in block.xsl */
+
+.formalpara-title {
+  font-weight: bold;
+}
+
+div.blockquote-title {
+  font-weight: bold;
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msgmain-title {
+  font-weight: bold;
+}
+
+span.msgsub-title {
+  font-weight: bold;
+}
+
+span.msgrel-title {
+  font-weight: bold;
+}
+
+div.msglevel, div.msgorig, div.msgaud {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msglevel-title, span.msgorig-title, span.msgaud-title {
+  font-weight: bold;
+}
+
+div.msgexplan {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msgexplan-title {
+  font-weight: bold;
+}
+
+div.sidebar {
+  border: 0.5pt solid black;
+  margin-top: 1em;
+  margin-bottom: 1em;
+  padding: 8px;
+}
+
+/* end of styles in block.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in autotoc.xsl */
+
+/* top level entries */
+nav&gt;ol&gt;li&gt;a {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+
+/* end of styles in autotoc.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in formal.xsl */
+
+div.figure-title {
+  font-weight: bold;
+}
+
+div.example-title {
+  font-weight: bold;
+}
+
+div.equation-title {
+  font-weight: bold;
+}
+
+div.table-title {
+  font-weight: bold;
+}
+
+div.sidebar-title {
+  font-weight: bold;
+}
+
+
+/* end of styles in formal.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in verbatim.xsl */
+
+div.programlisting {
+  white-space: pre-wrap;
+  font-family: monospace;
+}
+
+div.screen {
+  white-space: pre-wrap;
+  font-family: monospace;
+}
+
+div.synopsis {
+  white-space: pre-wrap;
+  font-family: monospace;
+}
+
+/* end of styles in verbatim.xsl */
+/********************************/
+
+/********************************/
+/* NAVIGATION */
+
+nav ol {
+list-style-type: none;
+margin: 0 0 0 2em;
+padding: 0 0 0 0;
+}
+
+nav ol li {
+margin: 0 0 0 0;
+padding: 0 0 0 0;
+}
+
+nav ol li a {
+text-decoration: none;
+color: black;
+font-family: sans-serif;
+}
+
+#guide {
+display: none;
+}
+
+</style>
diff --git a/applications/content/template/docbook/epub3/docbook.xsl b/applications/content/template/docbook/epub3/docbook.xsl
new file mode 100644
index 0000000..02615b7
--- /dev/null
+++ b/applications/content/template/docbook/epub3/docbook.xsl
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY uppercase "'ABCDEFGHIJKLMNOPQRSTUVWXYZ'">
+<!ENTITY lowercase "'abcdefghijklmnopqrstuvwxyz'">
+]>
+
+<xsl:stylesheet 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+  xmlns="http://www.w3.org/1999/xhtml"
+  exclude-result-prefixes="#default"
+  version="1.0">
+
+<!-- $Id$ -->
+
+<xsl:import href="../xhtml5/docbook.xsl"/>
+
+<xsl:include href="epub3-element-mods.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/epub3/epub3-chunk-mods.xsl b/applications/content/template/docbook/epub3/epub3-chunk-mods.xsl
new file mode 100644
index 0000000..e5da430
--- /dev/null
+++ b/applications/content/template/docbook/epub3/epub3-chunk-mods.xsl
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+  xmlns:exsl="http://exslt.org/common"
+  xmlns:epub="http://www.idpf.org/2007/ops"
+  xmlns:dc="http://purl.org/dc/elements/1.1/"  
+  xmlns:ncx="http://www.daisy.org/z3986/2005/ncx/"
+  xmlns:db="http://docbook.org/ns/docbook"
+  xmlns:opf="http://www.idpf.org/2007/opf"
+  xmlns:stext="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.TextFactory"
+  xmlns:str="http://exslt.org/strings"
+  xmlns:xtext="xalan://com.nwalsh.xalan.Text"
+  extension-element-prefixes="stext xtext"
+  exclude-result-prefixes="exsl dc ncx opf stext str xtext"
+  version="1.0">
+
+<!-- $Id$ -->
+
+<xsl:include href="../xhtml5/html5-chunk-mods.xsl"/>
+
+<!--==============================================================-->
+<!--  DocBook XSL Parameter settings                              -->
+<!--==============================================================-->
+
+<!--==============================================================-->
+<!--  Template customizations                                     -->
+<!--==============================================================-->
+
+<!-- EPUB3: customize to generate package files -->
+<xsl:template match="*" mode="process.root" priority="2">
+  <xsl:apply-templates select="."/>
+  <xsl:call-template name="generate.css.files"/>
+
+  <xsl:call-template name="generate.epub.files"/>
+
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/epub3/epub3-element-mods.xsl b/applications/content/template/docbook/epub3/epub3-element-mods.xsl
new file mode 100644
index 0000000..00abc29
--- /dev/null
+++ b/applications/content/template/docbook/epub3/epub3-element-mods.xsl
@@ -0,0 +1,2439 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY uppercase "'ABCDEFGHIJKLMNOPQRSTUVWXYZ'">
+<!ENTITY lowercase "'abcdefghijklmnopqrstuvwxyz'">
+]>
+
+<xsl:stylesheet 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+  xmlns:exsl="http://exslt.org/common"
+  xmlns:set="http://exslt.org/sets"
+  xmlns="http://www.w3.org/1999/xhtml"
+  xmlns:epub="http://www.idpf.org/2007/ops"
+  xmlns:m="http://www.w3.org/1998/Math/MathML"
+  xmlns:pls="http://www.w3.org/2005/01/pronunciation-lexicon"
+  xmlns:ssml="http://www.w3.org/2001/10/synthesis"
+  xmlns:svg="http://www.w3.org/2000/svg"
+  xmlns:opf="http://www.idpf.org/2007/opf"
+  xmlns:dc="http://purl.org/dc/elements/1.1/"  
+  xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0"
+  xmlns:date="http://exslt.org/dates-and-times"
+  xmlns:dcterms="http://purl.org/dc/terms/"
+  xmlns:ncx="http://www.daisy.org/z3986/2005/ncx/"
+  xmlns:db="http://docbook.org/ns/docbook"
+  xmlns:stext="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.TextFactory"
+  xmlns:str="http://exslt.org/strings"
+  xmlns:xtext="xalan://com.nwalsh.xalan.Text"
+
+  extension-element-prefixes="stext xtext"
+  exclude-result-prefixes="#default cf date db dc dcterms epub exsl m ncx opf pls set ssml stext str svg xtext"
+  version="1.0">
+
+<!-- $Id$ -->
+
+<xsl:import href="titlepage.templates.xsl"/>
+
+<!--
+<xsl:key name="image-filerefs" match="graphic|inlinegraphic|imagedata" use="@fileref"/>
+-->
+
+<!--==============================================================-->
+<!--  DocBook XSL Parameter settings                              -->
+<!--==============================================================-->
+<!-- separate file for toc -->
+<xsl:param name="chunk.tocs.and.lots" select="1"/>
+<xsl:param name="toc.section.depth" select="2"/>
+<xsl:param name="generate.toc">
+book  toc,title,figure,table,example,equation
+article  toc,title,figure,table,example,equation
+</xsl:param>
+<xsl:param name="generate.manifest" select="0"/>
+<xsl:param name="manifest.in.base.dir" select="1"/>
+<xsl:param name="base.dir" select="'OEBPS/'"/>
+<xsl:param name="index.links.to.section" select="0"/>
+
+<!-- Turning this on crashes ADE, which is unbelievably awesome -->
+<xsl:param name="formal.object.break.after">0</xsl:param>
+
+<xsl:param name="callout.graphics" select="1"/>
+<xsl:param name="callout.graphics.extension">.png</xsl:param>
+<xsl:param name="callout.graphics.number.limit" select="15"/>
+<xsl:param name="callout.graphics.path" select="'images/callouts/'"/>
+<xsl:param name="show.comments" select="0"/>
+
+<!-- no navigation in .epub -->
+<xsl:param name="suppress.navigation" select="'1'"/> 
+
+<!-- EPUB3: use ol lists in table of contents -->
+<xsl:param name="toc.list.type">ol</xsl:param>
+<xsl:param name="autotoc.label.in.hyperlink" select="1"/>
+
+<xsl:param name="css.decoration" select="1"/>
+<!-- generate the css file from a source file -->
+<xsl:param name="make.clean.html" select="1"/>
+<!-- specify the default epub3 stylesheet -->
+<xsl:param name="docbook.css.source">docbook-epub.css.xml</xsl:param>
+<!-- for custom CSS, use the custom.css.source param -->
+<xsl:param name="custom.css.source"></xsl:param>
+
+<!--==============================================================-->
+<!--  New EPUB3 Parameters                                        -->
+<!--==============================================================-->
+<xsl:param name="epub.version">3.0</xsl:param>
+<!-- optional ncx for backwards compatibility -->
+<xsl:param name="epub.include.ncx" select="1"/>
+<xsl:param name="epub.ncx.depth">4</xsl:param> <!-- Not functional until http://code.google.com/p/epubcheck/issues/detail?id=70 is resolved -->
+<!-- currently optional duplicate dcterms properties, may be required in future -->
+<xsl:param name="epub.include.metadata.dcterms" select="1"/>
+<!-- optional guide element for backwards compatibility -->
+<xsl:param name="epub.include.guide" select="1"/>
+<!-- some dc: currently required, to be replaced in future version -->
+<xsl:param name="epub.include.metadata.dc.elements" select="1"/>
+<!-- Some dc: elements will remain optional according to the spec -->
+<xsl:param name="epub.include.optional.metadata.dc.elements" select="1"/>
+<xsl:param name="epub.autolabel" select="0"/>
+<xsl:param 
+  name="epub.vocabulary.profile.content">http://www.idpf.org/epub/30/profile/content/</xsl:param>
+<xsl:param 
+  name="epub.vocabulary.profile.package">http://www.idpf.org/epub/30/profile/package/</xsl:param>
+<xsl:param name="epub.output.epub.types" select="1"/>
+<xsl:param name="epub.oebps.dir" select="'OEBPS'"/> 
+<xsl:param name="epub.metainf.dir" select="'META-INF/'"/> 
+<xsl:param name="epub.ncx.filename" select="'toc.ncx'"/> 
+<xsl:param name="epub.mimetype.filename" select="'mimetype'"/> 
+<xsl:param name="epub.mimetype.value" select="'application/epub+zip'"/> 
+<xsl:param name="epub.container.filename" select="'container.xml'"/> 
+<xsl:param name="epub.package.filename" select="'package.opf'"/> 
+<xsl:param name="epub.cover.filename" select="concat('cover', $html.ext)"/> 
+<xsl:param name="epub.cover.linear" select="0" />
+
+<!-- names of id attributes used in package files -->
+<xsl:param name="epub.meta.identifier.id">meta-identifier</xsl:param> 
+<xsl:param name="epub.dc.identifier.id">pub-identifier</xsl:param> 
+<xsl:param name="epub.meta.title.id">meta-title</xsl:param> 
+<xsl:param name="epub.dc.title.id">pub-title</xsl:param> 
+<xsl:param name="epub.meta.language.id">meta-language</xsl:param> 
+<xsl:param name="epub.dc.language.id">pub-language</xsl:param> 
+<xsl:param name="epub.meta.creator.id">meta-creator</xsl:param> 
+<xsl:param name="epub.dc.creator.id">pub-creator</xsl:param> 
+<xsl:param name="epub.ncx.toc.id">ncxtoc</xsl:param>
+<xsl:param name="epub.ncx.manifest.id">ncx</xsl:param>
+<xsl:param name="epub.ncx.mediatype">application/x-dtbncx+xml</xsl:param>
+<xsl:param name="epub.xhtml.mediatype">application/xhtml+xml</xsl:param>
+<xsl:param name="epub.html.toc.id">htmltoc</xsl:param>
+<xsl:param name="epub.cover.filename.id" select="'cover'"/> 
+<xsl:param name="epub.cover.image.id" select="'cover-image'"/> 
+
+<xsl:param name="epub.embedded.fonts"></xsl:param>
+<xsl:param name="epub.namespace">http://www.idpf.org/2007/ops</xsl:param>
+<xsl:param name="opf.namespace">http://www.idpf.org/2007/opf</xsl:param>
+<xsl:param name="ncx.namespace">http://www.daisy.org/z3986/2005/ncx/</xsl:param>
+<xsl:param name="dc.namespace">http://purl.org/dc/elements/1.1/</xsl:param>
+<!-- prefix generated ids in package elements so they differ from content ids -->
+<xsl:param name="epub.package.id.prefix">id-</xsl:param>
+<!-- editor is either a creator or contributor -->
+<xsl:param name="editor.property">contributor</xsl:param> 
+
+<!-- Generate full output path -->
+<xsl:param name="epub.package.dir" select="concat($base.dir, '../')"/>
+
+<xsl:param name="epub.ncx.pathname" 
+           select="concat($base.dir, $epub.ncx.filename)"/>
+<xsl:param name="epub.container.pathname"
+           select="concat($epub.package.dir, $epub.metainf.dir, 
+           $epub.container.filename)"/>
+<xsl:param name="epub.package.pathname"
+           select="concat($base.dir, $epub.package.filename)"/>
+<xsl:param name="epub.cover.pathname"
+           select="concat($base.dir, $epub.cover.filename)"/>
+<xsl:param name="epub.mimetype.pathname"
+           select="concat($epub.package.dir, $epub.mimetype.filename)"/>
+
+<xsl:param name="kindle.extensions" select="0"/>
+
+<!--==============================================================-->
+<!--  Internal variables used for computing certain metadata      -->
+<!--==============================================================-->
+<xsl:variable name="epub3.chunk.hierarchy">
+  <xsl:apply-templates select="/*" mode="find.chunks"/>
+</xsl:variable>
+
+<xsl:variable name="chunkset" select="exsl:node-set($epub3.chunk.hierarchy)//cf:div"/>
+
+<!--==============================================================-->
+<!--  Template customizations                                     -->
+<!--==============================================================-->
+
+<!-- This is used only by ncx piece -->
+<xsl:variable name="root.is.a.chunk">
+  <xsl:choose>
+    <xsl:when test="/*[not(self::book)][not(sect1) or not(section)]">
+      <xsl:text>1</xsl:text>
+    </xsl:when>
+    <xsl:when test="/book[*[last()][self::bookinfo]]|book[bookinfo]">
+      <xsl:text>1</xsl:text>
+    </xsl:when>
+    <xsl:when test="/book[*[last()][self::info]]|book[info]">
+      <xsl:text>1</xsl:text>
+    </xsl:when>
+    <xsl:when test="/bibliography">
+      <xsl:text>1</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>0</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<!-- EPUB3: Add generation of epub publication files -->
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="doc" select="self::*"/>
+
+  <xsl:call-template name="user.preroot"/>
+  <xsl:call-template name="root.messages"/>
+
+  <html>
+    <head>
+      <xsl:call-template name="system.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="user.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </head>
+    <body>
+      <xsl:call-template name="body.attributes"/>
+      <xsl:call-template name="user.header.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:apply-templates select="."/>
+      <xsl:call-template name="user.footer.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$html.append"/>
+  
+  <!-- Generate any css files only once, not once per chunk -->
+  <xsl:call-template name="generate.css.files"/>
+
+  <xsl:call-template name="generate.epub.files"/>
+
+</xsl:template>
+
+<xsl:template name="generate.epub.files">
+  <!-- Generate epub3 files -->
+  <xsl:message>
+    <xsl:text>Generating EPUB package files.</xsl:text>
+  </xsl:message>
+
+  <xsl:apply-templates select="." mode="opf"/>
+  <xsl:apply-templates select="." mode="container"/>
+  <xsl:call-template name="mimetype"/>
+  <xsl:if test="$epub.include.ncx != 0">
+    <xsl:call-template name="ncx"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- Generate the package file -->
+<xsl:template match="*" mode="opf">
+
+  <xsl:variable name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:variable>
+
+  <xsl:variable name="content">
+    <!-- use xsl:element so output does not have a namespace prefix -->
+    <xsl:element name="package" namespace="{$opf.namespace}">
+      <!-- Add the package namespaces at the top -->
+      <xsl:call-template name="add.package.namespaces"/>
+
+      <xsl:attribute name="version">
+        <xsl:value-of select="$epub.version"/>
+      </xsl:attribute>
+      <xsl:attribute name="xml:lang">
+        <xsl:value-of select="$lang"/>
+      </xsl:attribute>
+      <!-- No profile att in 2011-09-06 spec 
+      <xsl:attribute name="profile">
+        <xsl:value-of select="$epub.vocabulary.profile.package"/>
+      </xsl:attribute>
+      -->
+      <xsl:attribute name="unique-identifier">
+        <xsl:value-of select="$epub.dc.identifier.id"/>
+      </xsl:attribute>
+
+
+      <xsl:call-template name="package.metadata"/>
+      <xsl:call-template name="package.manifest"/>
+      <xsl:call-template name="package.spine"/>
+
+      <xsl:if test="$epub.include.guide != 0">
+        <xsl:call-template name="package.guide"/>
+      </xsl:if>
+
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename">
+      <xsl:value-of select="$epub.package.pathname" />
+    </xsl:with-param>
+    <xsl:with-param name="content" select="$content"/>
+    <xsl:with-param name="method" select="'xml'" />
+    <xsl:with-param name="encoding" select="'utf-8'" />
+    <xsl:with-param name="indent" select="'yes'" />
+    <xsl:with-param name="quiet" select="$chunk.quietly" />
+    <xsl:with-param name="doctype-public" select="''"/> <!-- intentionally blank -->
+    <xsl:with-param name="doctype-system" select="''"/> <!-- intentionally blank -->
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="package.metadata">
+
+  <xsl:element name="metadata" namespace="{$opf.namespace}">
+
+    <xsl:call-template name="metadata.identifier"/>
+    <xsl:call-template name="metadata.title"/>
+    <xsl:call-template name="metadata.language"/>
+    <xsl:call-template name="metadata.modified"/>
+    <xsl:call-template name="metadata.cover"/>
+    <xsl:call-template name="metadata.other.info"/>
+    
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="doc.title">
+  <xsl:apply-templates select="." mode="title.markup"/>
+</xsl:template>
+
+<xsl:template name="metadata.identifier">
+  <xsl:variable name="package.id.value">
+    <xsl:call-template name="package-identifier"/>
+  </xsl:variable>
+
+  <xsl:if test="$epub.include.metadata.dc.elements != 0">
+    <!-- dc:identifier element -->
+    <dc:identifier>
+      <xsl:attribute name="id">
+        <xsl:value-of select="$epub.dc.identifier.id"/>
+      </xsl:attribute>
+      <!--
+      <xsl:attribute name="prefer">
+        <xsl:value-of select="$epub.meta.identifier.id"/>
+      </xsl:attribute>
+      -->
+      <xsl:copy-of select="$package.id.value"/>
+    </dc:identifier>
+  </xsl:if>
+
+  <xsl:if test="$epub.include.metadata.dcterms != 0">
+    <!-- equivalent meta identifier element -->
+    <xsl:element name="meta" namespace="{$opf.namespace}">
+      <xsl:attribute name="id">
+        <xsl:value-of select="$epub.meta.identifier.id"/>
+      </xsl:attribute>
+      <xsl:attribute name="property">dcterms:identifier</xsl:attribute>
+      <xsl:copy-of select="$package.id.value"/>
+    </xsl:element>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="metadata.title">
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="doc.title"/>
+  </xsl:variable>
+
+  <xsl:if test="$epub.include.metadata.dc.elements != 0">
+    <dc:title>
+      <xsl:attribute name="id">
+        <xsl:value-of select="$epub.dc.title.id"/>
+      </xsl:attribute>
+      <!--
+      <xsl:attribute name="prefer">
+        <xsl:value-of select="$epub.meta.title.id"/>
+      </xsl:attribute>
+      -->
+      <xsl:value-of select="normalize-space($doc.title)"/>
+    </dc:title>
+  </xsl:if>
+
+  <xsl:if test="$epub.include.metadata.dcterms != 0">
+  <!-- equivalent meta title element -->
+    <xsl:element name="meta" namespace="{$opf.namespace}">
+      <xsl:attribute name="property">dcterms:title</xsl:attribute>
+      <xsl:attribute name="id">
+        <xsl:value-of select="$epub.meta.title.id"/>
+      </xsl:attribute>
+      <xsl:value-of select="normalize-space($doc.title)"/>
+    </xsl:element>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="metadata.language">
+  <xsl:variable name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:variable>
+
+  <xsl:if test="$epub.include.metadata.dc.elements != 0">
+    <dc:language>
+      <xsl:if test="$kindle.extensions = 0">
+        <xsl:attribute name="id">
+          <xsl:value-of select="$epub.dc.language.id"/>
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:value-of select="$lang"/>
+    </dc:language>
+  </xsl:if>
+
+  <xsl:if test="$epub.include.metadata.dcterms != 0">
+  <!-- equivalent meta lang element -->
+    <xsl:element name="meta" namespace="{$opf.namespace}">
+      <xsl:attribute name="property">dcterms:language</xsl:attribute>
+      <xsl:attribute name="id">
+        <xsl:value-of select="$epub.meta.language.id"/>
+      </xsl:attribute>
+      <xsl:value-of select="$lang"/>
+    </xsl:element>
+  </xsl:if>
+</xsl:template>
+  
+<xsl:template name="metadata.modified">
+  <xsl:variable name="local.datetime" select="date:date-time()"/>
+  <xsl:variable name="utc.datetime">
+    <xsl:call-template name="convert.date.to.utc">
+      <xsl:with-param name="date" select="$local.datetime"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="string-length($utc.datetime) != 0">
+      <xsl:element name="meta" namespace="{$opf.namespace}">
+        <xsl:attribute name="property">dcterms:modified</xsl:attribute>
+        <xsl:value-of select="$utc.datetime"/>
+      </xsl:element>
+      <xsl:comment>The preceding date value is actually local time (not UTC) in UTC format because there is no function in XSLT 1.0 to generate a correct UTC time</xsl:comment>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>ERROR: no last-modified date value could be determined, </xsl:text>
+        <xsl:text>so cannot output required meta element with </xsl:text>
+        <xsl:text>dcterms:modified attribute. Exiting.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="convert.date.to.utc">
+  <xsl:param name="date" select="''"/>
+  <!-- input format is YYYY-MM-DDTHH:MM:SS-X:00
+     where -X:00 is the offset from UTC. -->
+
+  <!-- output format is YYYY-MM-DDTHH:MM:SSZ with no offset -->
+  <!-- FIX ME:  Not so easy without a proper UTC date function. -->
+  <!-- Currently it just converts the local time to this format, which is
+       not the correct UTC time. -->
+  <xsl:value-of select="concat(substring($date,1,19), 'Z')"/>
+</xsl:template>
+
+<!-- This cover meta element used by kindlegen, at least -->
+<xsl:template name="metadata.cover">
+  <xsl:variable name="info" select="./*[contains(local-name(.), 'info')][1]"/>
+  <xsl:variable name="cover.image" 
+                select="$info//mediaobject[@role='cover' or ancestor::cover]"/>
+
+  <xsl:if test="$cover.image">
+    <xsl:element name="meta" namespace="{$opf.namespace}">
+      <xsl:attribute name="content">
+        <xsl:value-of select="$epub.cover.image.id"/>
+      </xsl:attribute>
+      <xsl:attribute name="name">cover</xsl:attribute>
+    </xsl:element>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="metadata.other.info">
+  <!-- Take info relative to selected root element -->
+  <xsl:variable name="info" select="./*[contains(local-name(.), 'info')][1]"/>
+
+  <xsl:apply-templates select="$info/*" mode="opf.metadata"/>        
+</xsl:template>
+
+<xsl:template match="*" mode="opf.metadata">
+  <!-- default is no output -->
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="opf.metadata">
+  <xsl:apply-templates select="*" mode="opf.metadata"/>
+</xsl:template>
+
+<xsl:template match="author|corpauthor" mode="opf.metadata">
+  <xsl:variable name="n">
+    <xsl:choose>
+      <xsl:when test="self::corpauthor">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test="org/orgname">
+        <xsl:apply-templates select="org/orgname"/>
+      </xsl:when>
+      <xsl:when test="orgname">
+        <xsl:apply-templates select="orgname"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="person.name">
+          <xsl:with-param name="node" select="."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="string-length($n) != 0">
+    <xsl:element name="meta" namespace="{$opf.namespace}">
+      <xsl:attribute name="id">
+        <xsl:value-of select="concat($epub.meta.creator.id, position())"/>
+      </xsl:attribute>
+      <xsl:attribute name="property">dcterms:creator</xsl:attribute>
+      <xsl:value-of select="normalize-space(string($n))"/>
+    </xsl:element>
+
+    <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+      <dc:creator>
+        <xsl:attribute name="id">
+          <xsl:value-of select="concat($epub.dc.creator.id, position())"/>
+        </xsl:attribute>
+        <xsl:value-of select="$n"/>
+      </dc:creator>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="editor" mode="opf.metadata">
+  <xsl:variable name="n">
+    <xsl:choose>
+      <xsl:when test="orgname">
+        <xsl:apply-templates select="orgname"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="person.name">
+          <xsl:with-param name="node" select="."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="name">
+    <xsl:choose>
+      <xsl:when test="string-length($editor.property) != 0">
+        <xsl:value-of select="$editor.property"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>contributor</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="meta" namespace="{$opf.namespace}">
+    <xsl:attribute name="property">
+      <xsl:text>dcterms:</xsl:text>
+      <xsl:value-of select="$name"/>
+    </xsl:attribute>
+    <xsl:value-of select="normalize-space($n)"/>
+  </xsl:element>
+
+  <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+    <xsl:choose>
+      <xsl:when test="$name = 'creator'">
+        <dc:creator>
+          <xsl:value-of select="normalize-space($n)"/>
+        </dc:creator>
+      </xsl:when>
+      <xsl:when test="$name = 'contributor'">
+        <dc:contributor>
+          <xsl:value-of select="normalize-space($n)"/>
+        </dc:contributor>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element namespace="{$dc.namespace}" name="{$name}">
+          <xsl:value-of select="normalize-space($n)"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="opf.metadata">
+  <xsl:element name="meta" namespace="{$opf.namespace}">
+    <xsl:attribute name="property">dcterms:contributor</xsl:attribute>
+    <xsl:value-of select="normalize-space(.)"/>
+  </xsl:element>
+
+  <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+    <dc:contributor>
+      <xsl:value-of select="normalize-space(.)"/>
+    </dc:contributor>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="collab|othercredit" mode="opf.metadata">
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="collabname">
+        <xsl:apply-templates select="collabname"/>
+      </xsl:when>
+      <xsl:when test="org/orgname">
+        <xsl:apply-templates select="org/orgname"/>
+      </xsl:when>
+      <xsl:when test="orgname">
+        <xsl:apply-templates select="orgname"/>
+      </xsl:when>
+      <xsl:when test="personname|firstname|surname|othername">
+        <xsl:call-template name="person.name"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="."/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="meta" namespace="{$opf.namespace}">
+    <xsl:attribute name="property">dcterms:contributor</xsl:attribute>
+    <xsl:value-of select="normalize-space($content)"/>
+  </xsl:element>
+
+  <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+    <dc:contributor>
+      <xsl:value-of select="normalize-space($content)"/>
+    </dc:contributor>
+  </xsl:if>
+
+</xsl:template>
+
+<xsl:template match="date|pubdate" mode="opf.metadata">
+  <xsl:variable name="date">
+    <xsl:call-template name="format.meta.date">
+      <xsl:with-param name="string" select="normalize-space(.)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="string-length($date) != 0">
+    <xsl:element name="meta" namespace="{$opf.namespace}">
+      <xsl:attribute name="property">dcterms:date</xsl:attribute>
+      <xsl:value-of select="$date"/>
+    </xsl:element>
+  
+    <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+      <dc:date>
+        <xsl:value-of select="$date"/>
+      </dc:date>
+    </xsl:if>
+  </xsl:if>
+
+</xsl:template>
+
+<!-- EPUB3 meta date should be of the form:
+  YYYY, YYYY-MM or YYYY-MM-DD -->
+<xsl:template name="format.meta.date">
+  <xsl:param name="string" select="''"/>
+  
+  <!-- FIXME: this needs further work, so just return the date string for now -->
+  <xsl:variable name="date">
+    <xsl:choose>
+      <xsl:when test="string-length($string) = 0">
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- construct a date one digit at a time until it fails to match format -->
+        <xsl:if test="contains('1234567890', substring($string,1,1))">
+          <xsl:value-of select="substring($string,1,1)"/>
+        </xsl:if>
+        <xsl:if test="contains('1234567890', substring($string,2,1))">
+          <xsl:value-of select="substring($string,2,1)"/>
+        </xsl:if>
+        <xsl:if test="contains('1234567890', substring($string,3,1))">
+          <xsl:value-of select="substring($string,3,1)"/>
+        </xsl:if>
+        <xsl:if test="contains('1234567890', substring($string,4,1))">
+          <xsl:value-of select="substring($string,4,1)"/>
+        </xsl:if>
+        <!-- FIXME: continue -->
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:value-of select="$string"/>
+
+</xsl:template>
+
+
+<!-- Space separate the compontents of the abstract (dropping the inline markup, sadly) -->
+<xsl:template match="abstract" mode="opf.metadata">
+  <xsl:variable name="content">
+    <xsl:for-each select="formalpara|para|simpara|title">
+      <xsl:choose>
+        <xsl:when test="self::formalpara">
+          <xsl:value-of select="normalize-space(string(title))"/>
+          <xsl:text>: </xsl:text>
+          <xsl:value-of select="normalize-space(string(para))"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="normalize-space(string(.))"/>
+        </xsl:otherwise>  
+      </xsl:choose>
+      <xsl:if test="self::title">
+        <xsl:text>:</xsl:text>
+      </xsl:if>
+      <xsl:if test="not(position() = last())">
+        <xsl:text> </xsl:text>
+      </xsl:if>
+    </xsl:for-each>  
+  </xsl:variable>
+
+  <xsl:element name="meta" namespace="{$opf.namespace}">
+    <xsl:attribute name="property">dcterms:description</xsl:attribute>
+    <xsl:copy-of select="$content"/>
+  </xsl:element>
+
+  <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+    <dc:description>
+      <xsl:copy-of select="$content"/>
+    </dc:description>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="subjectset" mode="opf.metadata">
+  <xsl:apply-templates select="subject/subjectterm" mode="opf.metadata"/>
+</xsl:template>
+
+<xsl:template match="subjectterm" mode="opf.metadata">
+  <xsl:element name="meta" namespace="{$opf.namespace}">
+    <xsl:attribute name="property">dcterms:subject</xsl:attribute>
+    <xsl:value-of select="normalize-space(string(.))"/>
+  </xsl:element>
+
+  <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+    <dc:subject>
+      <xsl:value-of select="normalize-space(string(.))"/>
+    </dc:subject>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="keywordset" mode="opf.metadata">
+  <xsl:apply-templates select="keyword" mode="opf.metadata"/>
+</xsl:template>
+
+<xsl:template match="keyword" mode="opf.metadata">
+  <xsl:element name="meta" namespace="{$opf.namespace}">
+    <xsl:attribute name="property">dcterms:subject</xsl:attribute>
+    <xsl:value-of select="normalize-space(string(.))"/>
+  </xsl:element>
+
+  <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+    <dc:subject>
+      <xsl:value-of select="normalize-space(string(.))"/>
+    </dc:subject>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="publisher" mode="opf.metadata">
+  <xsl:apply-templates select="publishername" mode="opf.metadata"/>
+</xsl:template>
+
+<xsl:template match="publishername" mode="opf.metadata">
+  <xsl:element name="meta" namespace="{$opf.namespace}">
+    <xsl:attribute name="property">dcterms:publisher</xsl:attribute>
+    <xsl:value-of select="normalize-space(string(.))"/>
+  </xsl:element>
+
+  <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+    <dc:publisher>
+      <xsl:value-of select="normalize-space(string(.))"/>
+    </dc:publisher>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="bibliocoverage" mode="opf.metadata">
+  <xsl:element name="meta" namespace="{$opf.namespace}">
+    <xsl:attribute name="property">dcterms:coverage</xsl:attribute>
+    <xsl:value-of select="normalize-space(string(.))"/>
+  </xsl:element>
+
+  <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+    <dc:coverage>
+      <xsl:value-of select="normalize-space(string(.))"/>
+    </dc:coverage>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="bibliorelation" mode="opf.metadata">
+  <xsl:element name="meta" namespace="{$opf.namespace}">
+    <xsl:attribute name="property">dcterms:relation</xsl:attribute>
+    <xsl:value-of select="normalize-space(string(.))"/>
+  </xsl:element>
+
+  <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+    <dc:relation>
+      <xsl:value-of select="normalize-space(string(.))"/>
+    </dc:relation>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="bibliosource" mode="opf.metadata">
+  <xsl:element name="meta" namespace="{$opf.namespace}">
+    <xsl:attribute name="property">dcterms:source</xsl:attribute>
+    <xsl:value-of select="normalize-space(string(.))"/>
+  </xsl:element>
+
+  <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+    <dc:source>
+      <xsl:value-of select="normalize-space(string(.))"/>
+    </dc:source>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="copyright" mode="opf.metadata">
+  <xsl:variable name="copyright.date">
+    <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:variable>
+
+  <!-- if no docbook date element, use copyright year for single date metadata -->
+  <xsl:if test="not(../date)">
+    <xsl:variable name="date.content">
+      <xsl:call-template name="format.meta.date">
+        <xsl:with-param name="string">
+          <xsl:call-template name="copyright.years">
+            <xsl:with-param name="years" select="year[last()]"/>
+            <xsl:with-param name="print.ranges" select="0"/>
+            <xsl:with-param name="single.year.ranges" select="0"/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:element name="meta" namespace="{$opf.namespace}">
+      <xsl:attribute name="property">dcterms:date</xsl:attribute>
+      <xsl:copy-of select="$date.content"/>
+    </xsl:element>
+    <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+      <dc:date>
+        <xsl:copy-of select="$date.content"/>
+      </dc:date>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:variable name="rights.content">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'Copyright'"/>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:text>&#x00A9;</xsl:text>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:value-of select="$copyright.date"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="holder" mode="titlepage.mode"/>
+  </xsl:variable>
+
+  <xsl:element name="meta" namespace="{$opf.namespace}">
+    <xsl:attribute name="property">dcterms:rights</xsl:attribute>
+    <xsl:copy-of select="$rights.content"/>
+  </xsl:element>
+  <xsl:if test="$epub.include.optional.metadata.dc.elements != 0">
+    <dc:rights>
+      <xsl:copy-of select="$rights.content"/>
+    </dc:rights>
+  </xsl:if>
+
+  <xsl:element name="meta" namespace="{$opf.namespace}">
+    <xsl:attribute name="property">dcterms:rightsHolder</xsl:attribute>
+    <xsl:apply-templates select="holder" mode="titlepage.mode"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="package.guide">
+
+  <xsl:variable name="info" select="./*[contains(local-name(.), 'info')][1]"/>
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="."/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="contains($toc.params, 'toc') or 
+                $info/cover or 
+                $info//mediaobject[@role='cover' or ancestor::cover]"> 
+    <xsl:element namespace="{$opf.namespace}" name="guide">
+      <xsl:if test="$info/cover or 
+                    $info//mediaobject[@role='cover' or ancestor::cover]"> 
+        <xsl:element namespace="{$opf.namespace}" name="reference">
+          <xsl:attribute name="href">
+            <xsl:value-of select="$epub.cover.filename" />
+          </xsl:attribute>
+          <xsl:attribute name="type">cover</xsl:attribute>
+          <xsl:attribute name="title">Cover</xsl:attribute>
+        </xsl:element>
+      </xsl:if>  
+
+      <xsl:if test="contains($toc.params, 'toc')">
+        <xsl:element namespace="{$opf.namespace}" name="reference">
+          <xsl:attribute name="href">
+            <xsl:call-template name="toc-href">
+              <xsl:with-param name="node" select="."/>
+            </xsl:call-template>
+          </xsl:attribute>
+          <xsl:attribute name="type">toc</xsl:attribute>
+          <xsl:attribute name="title">Table of Contents</xsl:attribute>
+        </xsl:element>
+      </xsl:if>  
+    </xsl:element>  
+  </xsl:if>  
+</xsl:template>
+
+
+<xsl:template name="package-identifier">  
+
+  <xsl:variable name="info" select="./*[contains(local-name(.), 'info')][1]"/>
+
+  <xsl:choose>
+    <xsl:when test="$info/biblioid">
+      <xsl:if test="$info/biblioid[1][@class = 'doi' or 
+                                      @class = 'isbn' or
+                                      @class = 'isrn' or
+                                      @class = 'istc' or
+                                      @class = 'issn']">
+        <xsl:text>urn:</xsl:text>
+        <xsl:value-of select="$info/biblioid[1]/@class"/>
+        <xsl:text>:</xsl:text>
+      </xsl:if>
+      <xsl:value-of select="normalize-space($info/biblioid[1])"/>
+    </xsl:when>
+    <xsl:when test="$info/isbn">
+      <xsl:text>urn:isbn:</xsl:text>
+      <xsl:value-of select="$info/isbn[1]"/>
+    </xsl:when>
+    <xsl:when test="$info/issn">
+      <xsl:text>urn:issn:</xsl:text>
+      <xsl:value-of select="$info/issn[1]"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$info/invpartnumber">
+          <xsl:value-of select="$info/invpartnumber[1]"/>
+        </xsl:when>
+        <xsl:when test="$info/issuenum">
+          <xsl:value-of select="$info/issuenum[1]"/>
+        </xsl:when>
+        <xsl:when test="$info/productnumber">
+          <xsl:value-of select="$info/productnumber[1]"/>
+        </xsl:when>
+        <xsl:when test="$info/seriesvolnums">
+          <xsl:value-of select="$info/seriesvolnums[1]"/>
+        </xsl:when>
+        <xsl:when test="$info/volumenum">
+          <xsl:value-of select="$info/volumenum[1]"/>
+        </xsl:when>
+        <!-- Deprecated -->
+        <xsl:when test="$info/pubsnumber">
+          <xsl:value-of select="$info/pubsnumber[1]"/>
+        </xsl:when>
+      </xsl:choose>  
+      <xsl:text>_</xsl:text>
+      <xsl:choose>
+        <xsl:when test="@id">
+          <xsl:value-of select="@id"/>
+        </xsl:when>
+        <xsl:when test="@xml:id">
+          <xsl:value-of select="@xml:id"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- TODO: Do UUIDs here -->
+          <xsl:value-of select="generate-id(.)"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- EPUB3: add epub:type attribute where appropriate -->
+<xsl:template match="*" mode="common.html.attributes">
+  <xsl:param name="class" select="local-name(.)"/>
+  <xsl:param name="inherit" select="0"/>
+  <xsl:call-template name="generate.html.lang"/>
+  <xsl:call-template name="dir">
+    <xsl:with-param name="inherit" select="$inherit"/>
+  </xsl:call-template>
+  <xsl:apply-templates select="." mode="class.attribute">
+    <xsl:with-param name="class" select="$class"/>
+  </xsl:apply-templates>
+  <xsl:call-template name="generate.html.title"/>
+  <xsl:apply-templates select="." mode="epub.type"/>
+</xsl:template>
+
+<xsl:template match="*" mode="epub.type" priority="-1"/>
+
+<xsl:template match="chapter
+                    |appendix
+                    |epigraph
+                    |warning
+                    |preface
+                    |index
+                    |colophon
+                    |glossary
+                    |biblioentry
+                    |bibliography
+                    |dedication
+                    |sidebar
+                    |footnote
+                    |glossterm
+                    |glossdef
+                    |bridgehead
+                    |part" mode="epub.type">
+  <xsl:variable name="type" select="local-name()"/>
+
+  <xsl:if test="$epub.output.epub.types != 0">
+    <xsl:attribute name="epub:type">
+      <xsl:value-of select="$type"/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="section[parent::chapter] | sect1" mode="epub.type">
+  <xsl:if test="$epub.output.epub.types != 0">
+    <xsl:attribute name="epub:type">subchapter</xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="section[not(parent::chapter)] |
+                     sect2 |
+                     sect3 |
+                     sect4 |
+                     sect5 |
+                     sect6" mode="epub.type">
+  <xsl:if test="$epub.output.epub.types != 0">
+    <xsl:attribute name="epub:type">division</xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="note|tip|caution|important" mode="epub.type">
+  <xsl:if test="$epub.output.epub.types != 0">
+    <xsl:attribute name="epub:type">notice</xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="orderedlist|itemizedlist|variablelist|simplelist" mode="epub.type">
+  <xsl:if test="$epub.output.epub.types != 0">
+    <xsl:attribute name="epub:type">list</xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="listitem" mode="epub.type">
+  <xsl:if test="$epub.output.epub.types != 0">
+    <xsl:attribute name="epub:type">list-item</xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<!-- EPUB3: to add attributes to root output element -->
+<xsl:template name="root.attributes">
+  <!-- collect and output all namespace declarations -->
+  <xsl:call-template name="all.namespaces"/>
+</xsl:template>
+
+<xsl:template name="all.namespaces">
+  <!-- add the epub3 namespaces to the top output element -->
+  <xsl:variable name="temp">
+    <epub:foo/>
+    <m:foo/>
+    <pls:foo/>
+    <ssml:foo/>
+    <svg:foo/>
+  </xsl:variable>
+
+  <xsl:variable name="nodes" select="exsl:node-set($temp)"/>
+  <xsl:for-each select="$nodes//*/namespace::*">
+    <xsl:copy-of select="."/>
+  </xsl:for-each>
+
+</xsl:template>
+
+<xsl:template name="add.package.namespaces">
+  <!-- add the epub3 package namespaces to the top output element -->
+  <xsl:variable name="temp">
+    <dc:foo/>
+    <dcterms:foo/>
+  </xsl:variable>
+
+  <xsl:variable name="nodes" select="exsl:node-set($temp)"/>
+  <xsl:for-each select="$nodes//*[local-name(.) ='foo']/namespace::*">
+    <xsl:if test="contains(., 'purl.org')">
+      <xsl:copy-of select="."/>
+    </xsl:if>
+  </xsl:for-each>
+
+</xsl:template>
+
+
+<xsl:template name="footnotes.attributes">
+  <xsl:if test="$epub.output.epub.types != 0">
+    <xsl:attribute name="epub:type">footnotes</xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="package.manifest">
+  <xsl:element name="manifest" namespace="{$opf.namespace}">
+    <xsl:if test="$epub.include.ncx != 0">
+      <xsl:call-template name="manifest.ncx"/>
+    </xsl:if>
+    <xsl:call-template name="manifest.fonts"/>
+    <xsl:call-template name="manifest.toc"/>
+    <xsl:call-template name="manifest.css"/>
+    <xsl:call-template name="manifest.cover"/>
+    <xsl:call-template name="manifest.other.items"/>
+    <xsl:call-template name="manifest.content.items"/>
+    <xsl:call-template name="user.manifest.items"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="user.manifest.items"/>
+
+<xsl:template name="manifest.css">
+  <xsl:if test="$html.stylesheet != ''">
+    <xsl:call-template name="css.item">
+      <xsl:with-param name="stylesheets" select="$html.stylesheet"/>
+    </xsl:call-template>
+  </xsl:if>
+  <xsl:if test="string-length($docbook.css.source) != 0">
+    <xsl:variable name="dfilename">
+      <xsl:call-template name="css.output.filename">
+        <xsl:with-param name="src" select="$docbook.css.source"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:element namespace="{$opf.namespace}" name="item">
+      <xsl:attribute name="media-type">text/css</xsl:attribute>
+      <xsl:attribute name="id">docbook-css</xsl:attribute>
+      <xsl:attribute name="href">
+        <xsl:value-of select="$dfilename"/>
+      </xsl:attribute>
+    </xsl:element>
+  </xsl:if>
+  <xsl:if test="string-length($custom.css.source) != 0">
+    <xsl:variable name="cfilename">
+      <xsl:call-template name="css.output.filename">
+        <xsl:with-param name="src" select="$custom.css.source"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:element namespace="{$opf.namespace}" name="item">
+      <xsl:attribute name="media-type">text/css</xsl:attribute>
+      <xsl:attribute name="id">custom-css</xsl:attribute>
+      <xsl:attribute name="href">
+        <xsl:value-of select="$cfilename"/>
+      </xsl:attribute>
+    </xsl:element>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="css.item">
+  <xsl:param name="stylesheets" select="''"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($stylesheets, ' ')">
+      <xsl:variable name="css.filename" select="substring-before($stylesheets, ' ')"/>
+      <xsl:if test="$css.filename != ''">
+        <xsl:element namespace="{$opf.namespace}" name="item">
+          <xsl:attribute name="media-type">text/css</xsl:attribute>
+          <xsl:attribute name="id">
+            <xsl:text>html-css</xsl:text>
+            <xsl:if test="$count &gt; 1">
+              <xsl:value-of select="$count"/>
+            </xsl:if>
+          </xsl:attribute>
+          <xsl:attribute name="href">
+            <xsl:value-of select="$css.filename"/>
+          </xsl:attribute>
+        </xsl:element>
+      </xsl:if>
+
+      <xsl:call-template name="css.item">
+        <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
+        <xsl:with-param name="count" select="$count + 1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$stylesheets != ''">
+        <xsl:element namespace="{$opf.namespace}" name="item">
+          <xsl:attribute name="media-type">text/css</xsl:attribute>
+          <xsl:attribute name="id">
+            <xsl:text>html-css</xsl:text>
+            <xsl:if test="$count &gt; 1">
+              <xsl:value-of select="$count"/>
+            </xsl:if>
+          </xsl:attribute>
+          <xsl:attribute name="href">
+            <xsl:value-of select="$stylesheets"/>
+          </xsl:attribute>
+        </xsl:element>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="manifest.ncx">
+  <xsl:element name="item" namespace="{$opf.namespace}">
+    <xsl:attribute name="id">
+      <xsl:value-of select="$epub.ncx.manifest.id"/>
+    </xsl:attribute>
+    <xsl:attribute name="href">
+      <xsl:value-of select="$epub.ncx.filename"/>
+    </xsl:attribute>
+    <xsl:attribute name="media-type">
+      <xsl:value-of select="$epub.ncx.mediatype"/>
+    </xsl:attribute>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="manifest.fonts"/>
+
+<!--Misc items in the manifest based on content -->
+<xsl:template name="manifest.other.items">
+</xsl:template>
+
+
+<xsl:template name="manifest.cover">
+  <xsl:variable name="info" select="./*[contains(local-name(.), 'info')][1]"/>
+  <xsl:variable name="cover.image" 
+                select="$info//mediaobject[@role='cover' or ancestor::cover]"/>
+
+  <xsl:if test="$cover.image">
+
+    <!-- generate the manifest link to that page -->
+    <xsl:variable name="olist" select="$cover.image/imageobject|$cover.image/imageobjectco
+                       |$cover.image/videoobject|$cover.image/audioobject
+                       |$cover.image/textobject"/>
+  
+    <xsl:variable name="object.index">
+      <xsl:call-template name="select.mediaobject.index">
+        <xsl:with-param name="olist" select="$olist"/>
+        <xsl:with-param name="count" select="1"/>
+      </xsl:call-template>
+    </xsl:variable>
+  
+    <xsl:variable name="object" select="$olist[position() = $object.index]"/>
+
+    <xsl:variable name="image.filename">
+      <xsl:call-template name="mediaobject.filename">
+        <xsl:with-param name="object" select="$object"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="image.extension">
+      <xsl:call-template name="filename-extension">
+        <xsl:with-param name="filename" select="$image.filename"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="image.type">
+      <xsl:call-template name="graphic.format.content-type">
+        <xsl:with-param name="format" select="translate($image.extension, 
+                   &lowercase;, &uppercase;)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <!-- Reference to cover html file -->
+    <xsl:element namespace="{$opf.namespace}" name="item">
+      <xsl:attribute name="id">
+        <xsl:value-of select="$epub.cover.filename.id"/>
+      </xsl:attribute>
+      <xsl:attribute name="href">
+        <xsl:value-of select="$epub.cover.filename"/>
+      </xsl:attribute>
+      <xsl:attribute name="media-type">
+        <xsl:value-of select="$epub.xhtml.mediatype"/>
+      </xsl:attribute>
+    </xsl:element>
+
+    <!-- special item with property="cover-image" -->
+    <xsl:element namespace="{$opf.namespace}" name="item">
+      <xsl:attribute name="id">
+        <xsl:value-of select="$epub.cover.image.id"/>
+      </xsl:attribute>
+      <xsl:attribute name="properties">cover-image</xsl:attribute>
+      <xsl:attribute name="href">
+        <xsl:value-of select="$image.filename"/>
+      </xsl:attribute>
+      <xsl:if test="$image.type">
+        <xsl:attribute name="media-type">
+          <xsl:value-of select="$image.type"/>
+        </xsl:attribute>
+      </xsl:if>
+    </xsl:element>
+
+    <!-- And generate the cover html file -->
+    <xsl:apply-templates select="$cover.image"/>
+
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="manifest.toc">
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="."/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="contains($toc.params, 'toc')">
+    <xsl:element namespace="{$opf.namespace}" name="item">
+      <xsl:attribute name="id">
+        <xsl:value-of select="$epub.html.toc.id"/>
+      </xsl:attribute>
+      <xsl:attribute name="properties">nav</xsl:attribute>
+      <xsl:attribute name="media-type">
+        <xsl:value-of select="$epub.xhtml.mediatype"/>
+      </xsl:attribute>
+      <xsl:attribute name="href">
+        <xsl:call-template name="toc-href">
+          <xsl:with-param name="node" select="."/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </xsl:element>
+  </xsl:if>  
+</xsl:template>
+
+<xsl:template name="toc-href">
+  <xsl:param name="node" select="."/>
+  <!-- FIXME -->
+  <xsl:apply-templates select="$node" mode="recursive-chunk-filename">
+    <xsl:with-param name="recursive" select="true()"/>
+  </xsl:apply-templates>
+  <xsl:text>-toc</xsl:text>
+  <xsl:value-of select="$html.ext"/>
+</xsl:template>
+
+<xsl:template match="*" mode="recursive-chunk-filename">
+  <!-- placeholder for real template in chunking stylesheet -->
+  <xsl:value-of select="concat(local-name(.), '-', generate-id(.))"/>
+</xsl:template>
+
+<xsl:template name="manifest.content.items">
+  <xsl:apply-templates select="." mode="package.manifest"/>
+  <xsl:call-template name="manifest.images"/>
+</xsl:template>
+
+<xsl:template match="text()" mode="package.manifest"/>
+
+<xsl:template match="mediaobject|mediaobjectco|inlinemediaobject" priority="1"
+              mode="package.manifest">
+  <!-- These are handled out of line so a unique list is created
+       to remove duplicate references -->
+</xsl:template>
+
+<xsl:template match="*" mode="package.manifest">
+
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$is.chunk != 0">
+    <xsl:variable name="href">
+      <xsl:call-template name="href.target.with.base.dir">
+        <xsl:with-param name="context" select="/"/>
+      </xsl:call-template>
+    </xsl:variable>
+  
+    <xsl:variable name="id" select="concat($epub.package.id.prefix, generate-id())"/>
+
+    <xsl:variable name="properties.set">
+      <xsl:call-template name="svg.property"/>
+      <xsl:text> </xsl:text>
+      <xsl:call-template name="mathml.property"/>
+    </xsl:variable>
+
+    <xsl:variable name="properties" select="normalize-space($properties.set)"/>
+
+    <xsl:element namespace="{$opf.namespace}" name="item">
+      <xsl:attribute name="id">
+        <xsl:value-of select="$id"/>
+      </xsl:attribute>
+      <xsl:attribute name="href">
+        <xsl:value-of select="$href"/>
+      </xsl:attribute>
+      <xsl:attribute name="media-type">application/xhtml+xml</xsl:attribute>
+      <xsl:if test="string-length($properties) != 0">
+        <xsl:attribute name="properties">
+          <xsl:value-of select="$properties"/>
+        </xsl:attribute>
+      </xsl:if>
+    </xsl:element>
+  </xsl:if>  
+  <xsl:apply-templates mode="package.manifest"/>
+
+</xsl:template>
+
+<xsl:template name="svg.property">
+  <xsl:param name="this.chunk" select="."/>
+
+  <xsl:variable name="genid" select="generate-id($this.chunk)"/>
+
+  <!-- get the chunkfast div element for this chunk -->
+  <xsl:variable name="div" select="$chunkset[@id=$genid or @xml:id=$genid]"/>
+
+  <!-- get the chunkfast div element the next chunk -->
+  <xsl:variable name="nextdiv"
+                select="($div/following-sibling::cf:div|
+                         $div/following::cf:div|
+                         $div/cf:div)[1]"/>
+
+  <!-- get the element corresponding to the next chunk -->
+  <xsl:variable name="next.chunk" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+  <xsl:choose>
+    <xsl:when test="$next.chunk">
+      <xsl:variable name="this.imagedata"
+                    select="$this.chunk//imagedata"/>
+      <xsl:variable name="before.next"
+                    select="$next.chunk/preceding::imagedata"/>
+      
+      <!-- select for an SVG imagedata in the intersection of them -->
+      <xsl:variable name="intersection"
+          select="$this.imagedata[count(.|$before.next) = count($before.next)]"/>
+    
+      <xsl:variable name="svg.imagedata"
+          select="$intersection[contains(
+                      substring(@fileref, string-length(@fileref)-3,4), '.svg')]"/>
+    
+      <xsl:if test="count($svg.imagedata) != 0">
+        <xsl:text>svg</xsl:text>
+     </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="this.imagedata"
+                    select="$this.chunk//imagedata"/>
+      <xsl:variable name="svg.imagedata"
+          select="$this.imagedata[contains(
+                      substring(@fileref, string-length(@fileref)-3,4), '.svg')]"/>
+      <xsl:if test="count($svg.imagedata) != 0">
+        <xsl:text>svg</xsl:text>
+     </xsl:if>
+    
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="mathml.property">
+  <xsl:param name="this.chunk" select="."/>
+
+  <xsl:variable name="genid" select="generate-id($this.chunk)"/>
+
+  <!-- get the chunkfast div element for this chunk -->
+  <xsl:variable name="div" select="$chunkset[@id=$genid or @xml:id=$genid]"/>
+
+  <!-- get the chunkfast div element the next chunk -->
+  <xsl:variable name="nextdiv"
+                select="($div/following-sibling::cf:div|
+                         $div/following::cf:div|
+                         $div/cf:div)[1]"/>
+
+  <!-- get the element corresponding to the next chunk -->
+  <xsl:variable name="next.chunk" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+  <xsl:variable name="this.math"
+                select="$this.chunk//m:*"/>
+  <xsl:variable name="before.next"
+                select="$next.chunk/preceding::m:*"/>
+  
+  <!-- select for an SVG imagedata in the intersection of them -->
+  <xsl:variable name="intersection"
+      select="$this.math[count(.|$before.next) = count($before.next)]"/>
+
+  <xsl:if test="count($intersection) != 0">
+    <xsl:text>mathml</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="manifest.image.item">
+</xsl:template>
+
+<!-- Need a uniqued list of images -->
+<xsl:template name="manifest.images">
+  <xsl:message>Generating image list ...</xsl:message>
+  <xsl:variable name="imagelist">
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:apply-templates select="key('id', $rootid)" mode="enumerate-images"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="/" mode="enumerate-images"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0 and 
+                    function-available('set:distinct')">
+      <xsl:for-each select="set:distinct(exsl:node-set($imagelist)/*)">
+        <xsl:if test="string-length(tmp-href) != 0">
+          <!-- convert the child elements to attributes -->
+          <xsl:element name="item" namespace="{$opf.namespace}">
+            <xsl:attribute name="id">
+              <xsl:value-of select="generate-id()"/>
+            </xsl:attribute>
+            <xsl:attribute name="href">
+              <xsl:value-of select="tmp-href"/>
+            </xsl:attribute>
+            <xsl:attribute name="media-type">
+              <xsl:value-of select="media-type"/>
+            </xsl:attribute>
+          </xsl:element>
+        </xsl:if>
+      </xsl:for-each>
+    </xsl:when>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:for-each select="exsl:node-set($imagelist)/*">
+        <xsl:element name="item" namespace="{$opf.namespace}">
+          <xsl:attribute name="id">
+            <xsl:value-of select="generate-id()"/>
+          </xsl:attribute>
+          <xsl:attribute name="href">
+            <xsl:value-of select="tmp-href"/>
+          </xsl:attribute>
+          <xsl:attribute name="media-type">
+            <xsl:value-of select="media-type"/>
+          </xsl:attribute>
+        </xsl:element>
+      </xsl:for-each>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>ERROR: cannot process images list without </xsl:text>
+        <xsl:text>exsl:node-set() function</xsl:text>
+      </xsl:message>
+      <!-- cannot do this without node-set() -->
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template match="*" mode="enumerate-images">
+  <xsl:apply-templates mode="enumerate-images"/>
+</xsl:template>
+
+<xsl:template match="text()" mode="enumerate-images"/>
+
+<xsl:template match="graphic|inlinegraphic[@format!='linespecific']" 
+              mode="enumerate-images">
+</xsl:template>
+
+<!-- cover image handled separates to give it an extra property attribute -->
+<xsl:template match="mediaobject[@role='cover' or ancestor::cover]"
+              mode="enumerate-images"/>
+
+<xsl:template match="mediaobject|inlinemediaobject" mode="enumerate-images">
+
+  <xsl:variable name="olist" 
+                select="imageobject[not(@role = 'poster')] 
+                       |imageobjectco
+                       |videoobject
+                       |audioobject
+                       |textobject"/>
+ 
+  <xsl:variable name="object.index">
+    <xsl:call-template name="select.mediaobject.index">
+      <xsl:with-param name="olist" select="$olist"/>
+      <xsl:with-param name="count" select="1"/>
+    </xsl:call-template>
+  </xsl:variable>
+  
+  <xsl:variable name="object" select="$olist[position() = $object.index]"/>
+
+  <xsl:apply-templates select="$object" mode="enumerate-images"/>
+
+  <!-- also include a poster image if present -->
+  <xsl:apply-templates select="imageobject[@role = 'poster']" mode="enumerate-images"/>
+
+</xsl:template>
+
+<xsl:template match="imageobject|videoobject|audioobject" mode="enumerate-images">
+  <xsl:param name="object" select="."/>
+
+  <xsl:if test="$object">
+    <xsl:variable name="image.filename">
+      <xsl:call-template name="mediaobject.filename">
+        <xsl:with-param name="object" select="$object"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="image.extension">
+      <xsl:call-template name="filename-extension">
+        <xsl:with-param name="filename" select="$image.filename"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="image.type">
+      <xsl:call-template name="graphic.format.content-type">
+        <xsl:with-param name="format" select="translate($image.extension, 
+                   &lowercase;, &uppercase;)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:element name="tmp-filename" namespace="">
+      <xsl:element name="tmp-href" namespace="">
+        <xsl:value-of select="$image.filename"/>
+      </xsl:element>
+      <xsl:element name="media-type" namespace="">
+        <xsl:value-of select="$image.type"/>
+      </xsl:element>
+    </xsl:element>
+
+  </xsl:if>
+</xsl:template>
+ 
+<!-- Add in the generated images -->
+<xsl:template match="note|caution|warning|important|tip" mode="enumerate-images">
+  <xsl:if test="$admon.graphics != 0">
+    <xsl:variable name="image.filename">
+      <xsl:call-template name="admon.graphic"/>
+    </xsl:variable>
+
+    <xsl:variable name="image.type">
+      <xsl:call-template name="graphic.format.content-type">
+        <xsl:with-param name="format" select="translate(
+               substring-after($admon.graphics.extension,'.'), 
+                   &lowercase;, &uppercase;)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:element name="tmp-filename" namespace="">
+      <xsl:element name="tmp-href" namespace="">
+        <xsl:value-of select="$image.filename"/>
+      </xsl:element>
+      <xsl:element name="media-type" namespace="">
+        <xsl:value-of select="$image.type"/>
+      </xsl:element>
+    </xsl:element>
+
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="callout" mode="enumerate-images">
+  <!-- process arearefs to get name of callout bug image files -->
+  <xsl:if test="$callout.graphics != 0">
+    <xsl:variable name="arearefs">
+      <xsl:call-template name="callout.arearefs">
+        <xsl:with-param name="arearefs" select="@arearefs"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="nodes" select="exsl:node-set($arearefs)"/>
+
+    <xsl:for-each select="$nodes//*[@src]">
+      <xsl:variable name="image.filename" select="@src"/>
+
+      <xsl:variable name="image.type">
+        <xsl:call-template name="graphic.format.content-type">
+          <xsl:with-param name="format" select="translate(
+                 substring-after($callout.graphics.extension,'.'), 
+                     &lowercase;, &uppercase;)"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:element name="tmp-filename" namespace="">
+        <xsl:element name="tmp-href" namespace="">
+          <xsl:value-of select="$image.filename"/>
+        </xsl:element>
+        <xsl:element name="media-type" namespace="">
+          <xsl:value-of select="$image.type"/>
+        </xsl:element>
+      </xsl:element>
+    </xsl:for-each>
+
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="co" mode="enumerate-images">
+  <!-- process co to get name of callout bug image file -->
+  <xsl:if test="$callout.graphics != 0">
+    <xsl:variable name="result">
+      <xsl:apply-templates select="." mode="callout-bug"/>
+    </xsl:variable>
+
+    <xsl:variable name="nodes" select="exsl:node-set($result)"/>
+
+    <xsl:for-each select="$nodes//*[@src]">
+      <xsl:variable name="image.filename" select="@src"/>
+
+      <xsl:variable name="image.type">
+        <xsl:call-template name="graphic.format.content-type">
+          <xsl:with-param name="format" select="translate(
+                 substring-after($callout.graphics.extension,'.'), 
+                     &lowercase;, &uppercase;)"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:element name="tmp-filename" namespace="">
+        <xsl:element name="tmp-href" namespace="">
+          <xsl:value-of select="$image.filename"/>
+        </xsl:element>
+        <xsl:element name="media-type" namespace="">
+          <xsl:value-of select="$image.type"/>
+        </xsl:element>
+      </xsl:element>
+    </xsl:for-each>
+
+  </xsl:if>
+
+</xsl:template>
+
+<!-- ======================================================== -->
+<!-- NCX templates are for backwards compatibility with EPUB2 -->
+<!-- ======================================================== -->
+
+<xsl:template name="ncx">
+  <xsl:message>Generating NCX file ...</xsl:message>
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename">
+      <xsl:value-of select="$epub.ncx.pathname" />
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'xml'" />
+    <xsl:with-param name="encoding" select="'utf-8'" />
+    <xsl:with-param name="indent" select="'no'" />
+    <xsl:with-param name="quiet" select="$chunk.quietly" />
+    <xsl:with-param name="doctype-public" select="''"/> <!-- intentionally blank -->
+    <xsl:with-param name="doctype-system" select="''"/> <!-- intentionally blank -->
+    <xsl:with-param name="content">
+      <xsl:element name="ncx" namespace="{$ncx.namespace}">
+        <xsl:attribute name="version">2005-1</xsl:attribute>
+
+          <!-- Via Martin Goerner: On covers: the IDPF2.0 standard unfortunately does not have a provision for
+          covers. We had to add one and we did so in conjunction with the IDPF and
+          various publishers. The tag chosen to define the covers is:
+          <meta name="cover" content="-reference to a manifest item-">
+          Then, we also added a bit of logic to get rid cleanly of the HTML cover
+          people usually add because the logical cover is not specced by the IDPF. So,
+          if the HTML cover item is marked linear="no" AND there is a guide item of
+          type="cover" pointing to it AND there is a logical cover specified in a
+          <meta name="cover"> tag, THEN, the HTML cover is discarded. -->
+        <xsl:element name="head" namespace="{$ncx.namespace}">
+          <xsl:if test="/*/*[cover or contains(name(.), 'info')]//mediaobject[@role='cover' or ancestor::cover]"> 
+            <xsl:element name="meta" namespace="{$ncx.namespace}">
+              <xsl:attribute name="name">cover</xsl:attribute>
+              <xsl:attribute name="content">
+                <xsl:value-of select="$epub.cover.filename.id"/>
+              </xsl:attribute>
+            </xsl:element>
+          </xsl:if>
+          <xsl:element name="meta" namespace="{$ncx.namespace}">
+            <xsl:attribute name="name">dtb:uid</xsl:attribute>
+            <xsl:attribute name="content"><xsl:call-template name="package-identifier"/></xsl:attribute>
+          </xsl:element>
+        </xsl:element>
+
+        <xsl:choose>
+          <xsl:when test="$rootid != ''">
+            <xsl:variable name="title">
+              <xsl:if test="$epub.autolabel != 0">
+                <xsl:variable name="label.markup">
+                  <xsl:apply-templates select="key('id',$rootid)" 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="key('id',$rootid)" mode="title.markup" />
+            </xsl:variable>
+            <xsl:variable name="href">
+              <xsl:call-template name="href.target.with.base.dir">
+                <xsl:with-param name="object" select="key('id',$rootid)" />
+              </xsl:call-template>
+            </xsl:variable>
+            <xsl:element name="docTitle" namespace="{$ncx.namespace}">
+              <xsl:element name="text" namespace="{$ncx.namespace}"><xsl:value-of select="normalize-space($title)" />  </xsl:element>
+            </xsl:element>
+            <xsl:element name="navMap" namespace="{$ncx.namespace}">
+              <xsl:apply-templates select="key('id',$rootid)/*" mode="ncx" />
+            </xsl:element>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:variable name="title">
+              <xsl:if test="$epub.autolabel != 0">
+                <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:variable name="href">
+              <xsl:call-template name="href.target.with.base.dir">
+                <xsl:with-param name="object" select="/" />
+              </xsl:call-template>
+            </xsl:variable>
+            <xsl:element name="docTitle" namespace="{$ncx.namespace}">
+              <xsl:element name="text" namespace="{$ncx.namespace}">
+                <xsl:value-of select="normalize-space($title)" />
+              </xsl:element>
+            </xsl:element>
+            <xsl:element name="navMap" namespace="{$ncx.namespace}">
+              <xsl:choose>
+                <xsl:when test="$root.is.a.chunk != '0'">
+                  <xsl:apply-templates select="/*" mode="ncx" />
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:apply-templates select="/*/*" mode="ncx" />
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:element>
+          </xsl:otherwise>
+
+        </xsl:choose>
+      </xsl:element>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="book|
+                     article|
+                     topic|
+                     part|
+                     reference|
+                     preface|
+                     chapter|
+                     bibliography|
+                     appendix|
+                     glossary|
+                     section|
+                     sect1|
+                     sect2|
+                     sect3|
+                     sect4|
+                     sect5|
+                     refentry|
+                     colophon|
+                     bibliodiv[title]|
+                     setindex|
+                     index"
+              mode="ncx">
+  <xsl:variable name="depth" select="count(ancestor::*)"/>
+  <xsl:variable name="title">
+    <xsl:if test="$epub.autolabel != 0">
+      <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:variable name="href">
+    <xsl:call-template name="href.target.with.base.dir">
+      <xsl:with-param name="context" select="/" />
+      <!-- Generate links relative to the location of root file/toc.xml file -->
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="id">
+    <xsl:value-of select="generate-id(.)"/>
+  </xsl:variable>
+  <xsl:variable name="order">
+    <xsl:value-of select="$depth +
+                                count(preceding::part|
+                                preceding::reference|
+                                preceding::book[parent::set]|
+                                preceding::preface|
+                                preceding::chapter|
+                                preceding::bibliography|
+                                preceding::appendix|
+                                preceding::article|
+                                preceding::topic|
+                                preceding::glossary|
+                                preceding::section[not(parent::partintro)]|
+                                preceding::sect1[not(parent::partintro)]|
+                                preceding::sect2[not(ancestor::partintro)]|
+                                preceding::sect3[not(ancestor::partintro)]|
+                                preceding::sect4[not(ancestor::partintro)]|
+                                preceding::sect5[not(ancestor::partintro)]|
+                                preceding::refentry|
+                                preceding::colophon|
+                                preceding::bibliodiv[title]|
+                                preceding::index)"/>
+  </xsl:variable>
+
+  <xsl:element name="navPoint" namespace="{$ncx.namespace}">
+    <xsl:attribute name="id">
+      <xsl:value-of select="$id"/>
+    </xsl:attribute>
+
+    <xsl:attribute name="playOrder">
+      <xsl:choose>
+        <xsl:when test="/*[self::set]">
+          <xsl:value-of select="$order"/>
+        </xsl:when>
+        <xsl:when test="$root.is.a.chunk != '0'">
+          <xsl:value-of select="$order + 1"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$order - 0"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+    <xsl:element name="navLabel" namespace="{$ncx.namespace}">
+      <xsl:element name="text" namespace="{$ncx.namespace}"><xsl:value-of select="normalize-space($title)"/> </xsl:element>
+    </xsl:element>
+    <xsl:element name="content" namespace="{$ncx.namespace}">
+      <xsl:attribute name="src">
+        <xsl:value-of select="$href"/>
+      </xsl:attribute>
+    </xsl:element>
+    <xsl:apply-templates select="book[parent::set]|part|reference|preface|chapter|bibliography|appendix|article|topic|glossary|section|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv[title]|setindex|index" mode="ncx"/>
+  </xsl:element>
+
+</xsl:template>
+
+<xsl:template match="text()" mode="ncx" />
+
+<xsl:template name="package.spine">
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="."/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:element namespace="http://www.idpf.org/2007/opf" name="spine">
+    <xsl:if test="$epub.include.ncx != 0">
+      <xsl:attribute name="toc">
+        <xsl:value-of select="$epub.ncx.manifest.id"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:call-template name="spine.cover"/>
+
+
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:element namespace="http://www.idpf.org/2007/opf" name="itemref">
+        <xsl:attribute name="idref"> <xsl:value-of select="$epub.html.toc.id"/> </xsl:attribute>
+        <xsl:attribute name="linear">yes</xsl:attribute>
+      </xsl:element>
+    </xsl:if>  
+
+    <!-- TODO: be nice to have a idref="titlepage" here -->
+    <xsl:choose>
+      <xsl:when test="$root.is.a.chunk != '0'">
+        <xsl:apply-templates select="/*" mode="package.spine"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="/*/*" mode="package.spine"/>
+      </xsl:otherwise>
+    </xsl:choose>
+                                 
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="spine.cover">
+  <xsl:variable name="info" select="./*[contains(local-name(.), 'info')][1]"/>
+  <xsl:variable name="cover.image" 
+                select="$info//mediaobject[@role='cover' or ancestor::cover]"/>
+
+  <xsl:if test="$cover.image">
+    <!-- generate the spine reference to that cover html file -->
+    <xsl:element namespace="http://www.idpf.org/2007/opf" name="itemref">
+      <xsl:attribute name="idref">
+        <xsl:value-of select="$epub.cover.filename.id"/>
+      </xsl:attribute>
+      <xsl:attribute name="linear">
+      <xsl:choose>
+        <xsl:when test="$epub.cover.linear">
+          <xsl:text>yes</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>no</xsl:otherwise>
+      </xsl:choose>
+      </xsl:attribute>
+    </xsl:element>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="*" mode="package.spine">
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$is.chunk != 0">
+    <xsl:element namespace="http://www.idpf.org/2007/opf" name="itemref">
+      <xsl:attribute name="idref">
+        <xsl:value-of select="concat($epub.package.id.prefix, generate-id(.))"/>
+      </xsl:attribute>
+    </xsl:element>
+    <xsl:apply-templates select="*|.//refentry" mode="package.spine"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="*" mode="container">
+  <xsl:call-template name="container"/>
+</xsl:template>
+
+<xsl:template name="container">
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename">
+      <xsl:value-of select="$epub.container.pathname" />
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'xml'" />
+    <xsl:with-param name="encoding" select="'utf-8'" />
+    <xsl:with-param name="indent" select="'no'" />
+    <xsl:with-param name="quiet" select="$chunk.quietly" />
+    <xsl:with-param name="doctype-public" select="''"/> <!-- intentionally blank -->
+    <xsl:with-param name="doctype-system" select="''"/> <!-- intentionally blank -->
+
+    <xsl:with-param name="content">
+      <xsl:element namespace="urn:oasis:names:tc:opendocument:xmlns:container" name="container">
+        <xsl:attribute name="version">1.0</xsl:attribute>
+        <xsl:element namespace="urn:oasis:names:tc:opendocument:xmlns:container" name="rootfiles">
+          <xsl:element namespace="urn:oasis:names:tc:opendocument:xmlns:container" name="rootfile">
+            <xsl:attribute name="full-path">
+              <xsl:value-of 
+                     select="concat($epub.oebps.dir, '/', $epub.package.filename)"/>
+            </xsl:attribute>
+            <xsl:attribute name="media-type">
+              <xsl:text>application/oebps-package+xml</xsl:text>
+            </xsl:attribute>
+          </xsl:element>
+        </xsl:element>
+      </xsl:element>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="mimetype">'
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename" select="$epub.mimetype.pathname"/>
+    <xsl:with-param name="content" select="$epub.mimetype.value"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="mediaobject[@role='cover' or ancestor::cover]">
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename">
+      <xsl:value-of select="$epub.cover.pathname" />
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'xml'" />
+    <xsl:with-param name="encoding" select="'utf-8'" />
+    <xsl:with-param name="indent" select="'no'" />
+    <xsl:with-param name="quiet" select="$chunk.quietly" />
+    <xsl:with-param name="content">
+      <xsl:element namespace="http://www.w3.org/1999/xhtml" name="html">
+        <xsl:element namespace="http://www.w3.org/1999/xhtml" name="head">
+          <xsl:element namespace="http://www.w3.org/1999/xhtml" name="title">Cover</xsl:element>
+          <xsl:element namespace="http://www.w3.org/1999/xhtml" name="style">
+            <xsl:attribute name="type">text/css</xsl:attribute>
+            <!-- Help the cover image scale nicely in the CSS then apply a max-width to look better in Adobe Digital Editions -->
+            <xsl:text> img { max-width: 100%; }</xsl:text>
+          </xsl:element>
+        </xsl:element>
+        <xsl:element namespace="http://www.w3.org/1999/xhtml" name="body">
+          <xsl:element namespace="http://www.w3.org/1999/xhtml" name="div">
+            <xsl:attribute name="id">
+              <xsl:value-of select="$epub.cover.image.id"/>
+            </xsl:attribute>
+            <xsl:choose>
+              <xsl:when test="imageobject[@role='front-large']">
+                <xsl:apply-templates select="imageobject[@role='front-large']"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:apply-templates select="imageobject[1]"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:element>
+          <!-- If this is defined as an explicit cover page, then process
+          any remaining text -->
+          <xsl:if test="ancestor::cover">
+            <xsl:apply-templates select="ancestor::cover/para"/>
+          </xsl:if>
+        </xsl:element>
+      </xsl:element>
+    </xsl:with-param>  
+  </xsl:call-template>  
+</xsl:template>
+
+<!-- EPUB3: use <nav> and <ol> in TOC lists  -->
+<xsl:template name="make.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+  <xsl:param name="nodes" select="/NOT-AN-ELEMENT"/>
+
+  <xsl:variable name="nodes.plus" select="$nodes | qandaset"/>
+
+  <xsl:variable name="toc.title">
+    <xsl:if test="$toc.title.p">
+      <xsl:choose>
+        <xsl:when test="$make.clean.html != 0">
+          <div class="toc-title">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key">TableofContents</xsl:with-param>
+            </xsl:call-template>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <p>
+            <b>
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key">TableofContents</xsl:with-param>
+              </xsl:call-template>
+            </b>
+          </p>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$manual.toc != ''">
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id"/>
+      </xsl:variable>
+      <xsl:variable name="toc" select="document($manual.toc, .)"/>
+      <xsl:variable name="tocentry" select="$toc//tocentry[@linkend=$id]"/>
+      <xsl:if test="$tocentry and $tocentry/*">
+        <div class="toc">
+          <xsl:copy-of select="$toc.title"/>
+          <nav epub:type="toc">
+            <xsl:element name="{$toc.list.type}">
+              <xsl:call-template name="manual-toc">
+                <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
+              </xsl:call-template>
+            </xsl:element>
+          </nav>
+        </div>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$qanda.in.toc != 0">
+          <div class="toc">
+            <xsl:copy-of select="$toc.title"/>
+            <nav epub:type="toc">
+              <xsl:element name="{$toc.list.type}">
+                <xsl:if test="$nodes.plus">
+                  <xsl:apply-templates select="$nodes.plus" mode="toc">
+                    <xsl:with-param name="toc-context" select="$toc-context"/>
+                  </xsl:apply-templates>
+                </xsl:if>
+              </xsl:element>
+            </nav>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <div class="toc">
+            <xsl:copy-of select="$toc.title"/>
+            <nav epub:type="toc">
+              <xsl:element name="{$toc.list.type}">
+                <xsl:if test="$nodes">
+                  <xsl:apply-templates select="$nodes" mode="toc">
+                    <xsl:with-param name="toc-context" select="$toc-context"/>
+                  </xsl:apply-templates>
+                </xsl:if>
+              </xsl:element>
+            </nav>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="list.of.titles">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="titles" select="'table'"/>
+  <xsl:param name="nodes" select=".//table"/>
+
+  <xsl:variable name="epub.type">
+    <xsl:choose>
+      <xsl:when test="$titles='table'">lot</xsl:when>
+      <xsl:when test="$titles='figure'">loi</xsl:when>
+      <xsl:when test="$titles='equation'">loi</xsl:when>
+      <xsl:when test="$titles='example'">loi</xsl:when>
+      <xsl:when test="$titles='procedure'">loi</xsl:when>
+      <xsl:otherwise>loi</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="$nodes">
+    <div class="list-of-{$titles}s">
+      <nav epub:type="{$epub.type}">
+        <h4 class="toc-title">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key">
+              <xsl:choose>
+                <xsl:when test="$titles='table'">ListofTables</xsl:when>
+                <xsl:when test="$titles='figure'">ListofFigures</xsl:when>
+                <xsl:when test="$titles='equation'">ListofEquations</xsl:when>
+                <xsl:when test="$titles='example'">ListofExamples</xsl:when>
+                <xsl:when test="$titles='procedure'">ListofProcedures</xsl:when>
+                <xsl:otherwise>ListofUnknown</xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+          </xsl:call-template>
+        </h4>
+
+        <xsl:element name="{$toc.list.type}">
+          <xsl:apply-templates select="$nodes" mode="toc">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:apply-templates>
+        </xsl:element>
+      </nav>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- EPUB3: add hidden="" for sections below toc.section.depth -->
+<xsl:template name="subtoc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="nodes" select="NOT-AN-ELEMENT"/>
+
+  <xsl:variable name="nodes.plus" select="$nodes | qandaset"/>
+
+  <xsl:variable name="depth">
+    <xsl:choose>
+      <xsl:when test="local-name(.) = 'section'">
+        <xsl:value-of select="count(ancestor::section) + 1"/>
+      </xsl:when>
+      <xsl:when test="local-name(.) = 'sect1'">1</xsl:when>
+      <xsl:when test="local-name(.) = 'sect2'">2</xsl:when>
+      <xsl:when test="local-name(.) = 'sect3'">3</xsl:when>
+      <xsl:when test="local-name(.) = 'sect4'">4</xsl:when>
+      <xsl:when test="local-name(.) = 'sect5'">5</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect1'">1</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect2'">2</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect3'">3</xsl:when>
+      <xsl:when test="local-name(.) = 'simplesect'">
+        <!-- sigh... -->
+        <xsl:choose>
+          <xsl:when test="local-name(..) = 'section'">
+            <xsl:value-of select="count(ancestor::section)"/>
+          </xsl:when>
+          <xsl:when test="local-name(..) = 'sect1'">2</xsl:when>
+          <xsl:when test="local-name(..) = 'sect2'">3</xsl:when>
+          <xsl:when test="local-name(..) = 'sect3'">4</xsl:when>
+          <xsl:when test="local-name(..) = 'sect4'">5</xsl:when>
+          <xsl:when test="local-name(..) = 'sect5'">6</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect1'">2</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect2'">3</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect3'">4</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:choose>
+        <xsl:when test="$toc.listitem.type = 'li'
+                  and $toc.section.depth > $depth and 
+                  ( ($qanda.in.toc = 0 and count($nodes)&gt;0) or
+                    ($qanda.in.toc != 0 and count($nodes.plus)&gt;0) )
+                  and $toc.max.depth > $depth.from.context">
+          <!-- No @hidden attribute -->
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- Add empty @hidden attribute if too deep -->
+          <xsl:attribute name="hidden"></xsl:attribute>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:choose>
+        <xsl:when test="$qanda.in.toc != 0">
+          <xsl:apply-templates mode="toc" select="$nodes.plus">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="toc" select="$nodes">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:call-template name="toc.line">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and 
+                  ( ($qanda.in.toc = 0 and count($nodes)&gt;0) or
+                    ($qanda.in.toc != 0 and count($nodes.plus)&gt;0) ) ">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+</xsl:template>
+
+<!-- Inserted when a title is blank to avoid epubcheck error -->
+<xsl:param name="toc.entry.default.text">&#xA0;</xsl:param>
+
+<!-- EPUB3: either <a> or <span>, but not both  -->
+<xsl:template name="toc.line">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="depth" select="1"/>
+  <xsl:param name="depth.from.context" select="8"/>
+
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="context" select="$toc-context"/>
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    
+    <!-- * if $autotoc.label.in.hyperlink is non-zero, then output the label -->
+    <!-- * as part of the hyperlinked title -->
+    <xsl:if test="not($autotoc.label.in.hyperlink = 0)">
+      <xsl:variable name="label">
+        <xsl:apply-templates select="." mode="label.markup"/>
+      </xsl:variable>
+      <xsl:copy-of select="$label"/>
+      <xsl:if test="$label != ''">
+        <xsl:value-of select="$autotoc.label.separator"/>
+      </xsl:if>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="string-length(normalize-space($title)) != 0">
+        <xsl:copy-of select="$title"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$toc.entry.default.text"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </a>
+</xsl:template>
+
+<!-- Make sure all text is inside the <a> element for epub3 -->
+<xsl:template match="figure|table|example|equation|procedure" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="toc-context" select="$toc-context"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:variable name="label">
+        <xsl:apply-templates select="." mode="label.markup"/>
+      </xsl:variable>
+      <xsl:copy-of select="$label"/>
+      <xsl:if test="$label != ''">
+        <xsl:value-of select="$autotoc.label.separator"/>
+      </xsl:if>
+      <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+    </a>
+  </xsl:element>
+</xsl:template>
+
+<!-- Remove spans from refentry TOC lines for epub3check -->
+<xsl:template match="refentry" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="refmeta" select=".//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select=".//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+  <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/>
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]" mode="titleabbrev.markup"/>
+      </xsl:when>
+      <xsl:when test="$refdesc">
+        <xsl:apply-templates select="$refdesc" mode="titleabbrev.markup"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]" mode="titleabbrev.markup"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml">
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="toc-context" select="$toc-context"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:copy-of select="$title"/>
+      <xsl:if test="$annotate.toc != 0">
+        <!-- * DocBook 5 says inlinemediaobject (among other things) -->
+        <!-- * is allowed in refpurpose; so we need to run -->
+        <!-- * apply-templates on refpurpose here, instead of value-of  -->
+        <!-- Set allow-anchors=0 to avoid indexterms and other links -->
+        <xsl:text> - </xsl:text>
+        <xsl:apply-templates select="refnamediv/refpurpose" mode="no.anchor.mode"/>
+      </xsl:if>
+    </a>
+  </xsl:element>
+</xsl:template>
+
+<!-- Copy these here so relative document() open gets the correct css source -->
+<xsl:template name="generate.default.css.file">
+  <xsl:if test="$make.clean.html != 0 and 
+                $generate.css.header = 0 and
+                $docbook.css.source != ''">
+    <!-- Select default file relative to stylesheet -->
+    <xsl:variable name="css.node" select="document($docbook.css.source)/*[1]"/>
+
+    <xsl:call-template name="generate.css.file">
+      <xsl:with-param name="src" select="$docbook.css.source"/>
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.custom.css.file">
+  <xsl:if test="$custom.css.source != '' and
+                $generate.css.header = 0">
+    <!-- Select custom file relative to document -->
+    <xsl:variable name="css.node" select="document($custom.css.source,.)/*[1]"/>
+
+    <xsl:call-template name="generate.css.file">
+      <xsl:with-param name="src" select="$custom.css.source"/>
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/epub3/profile-chunk.xsl b/applications/content/template/docbook/epub3/profile-chunk.xsl
new file mode 100644
index 0000000..44cd22f
--- /dev/null
+++ b/applications/content/template/docbook/epub3/profile-chunk.xsl
@@ -0,0 +1,54 @@
+<?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:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- First import the non-chunking templates that format elements
+     within each chunk file. In a customization, you should
+     create a separate non-chunking customization layer such
+     as mydocbook.xsl that imports the original docbook.xsl and
+     customizes any presentation templates. Then your chunking
+     customization should import mydocbook.xsl instead of
+     docbook.xsl.  -->
+<xsl:import href="docbook.xsl"/>
+
+<!-- chunk-common.xsl contains all the named templates for chunking.
+     In a customization file, you import chunk-common.xsl, then
+     add any customized chunking templates of the same name. 
+     They will have import precedence over the original 
+     chunking templates in chunk-common.xsl. -->
+<xsl:import href="../xhtml/chunk-common.xsl"/>
+
+<!-- The manifest.xsl module is no longer imported because its
+     templates were moved into chunk-common and chunk-code -->
+
+<!-- chunk-code.xsl contains all the chunking templates that use
+     a match attribute.  In a customization it should be referenced
+     using <xsl:include> instead of <xsl:import>, and then add
+     any customized chunking templates with match attributes. But be sure
+     to add a priority="1" to such customized templates to resolve
+     its conflict with the original, since they have the
+     same import precedence.
+     
+     Using xsl:include prevents adding another layer
+     of import precedence, which would cause any
+     customizations that use xsl:apply-imports to wrongly
+     apply the chunking version instead of the original
+     non-chunking version to format an element.  -->
+<xsl:include href="../xhtml/profile-chunk-code.xsl"/>
+
+<xsl:include href="epub3-chunk-mods.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/epub3/profile-docbook.xsl b/applications/content/template/docbook/epub3/profile-docbook.xsl
new file mode 100644
index 0000000..a3ea6c1
--- /dev/null
+++ b/applications/content/template/docbook/epub3/profile-docbook.xsl
@@ -0,0 +1,408 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="db ng exsl exslt exslt" version="1.0">
+
+<xsl:output method="xml" encoding="UTF-8" indent="no"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION.xsl"/>
+<xsl:include href="../xhtml/param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/utility.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="../common/targets.xsl"/>
+<xsl:include href="../common/olink.xsl"/>
+<xsl:include href="../common/pi.xsl"/>
+<xsl:include href="../xhtml/autotoc.xsl"/>
+<xsl:include href="../xhtml/autoidx.xsl"/>
+<xsl:include href="../xhtml/lists.xsl"/>
+<xsl:include href="../xhtml/callout.xsl"/>
+<xsl:include href="../xhtml/verbatim.xsl"/>
+<xsl:include href="../xhtml/graphics.xsl"/>
+<xsl:include href="../xhtml/xref.xsl"/>
+<xsl:include href="../xhtml/formal.xsl"/>
+<xsl:include href="../xhtml/table.xsl"/>
+<xsl:include href="../xhtml/htmltbl.xsl"/>
+<xsl:include href="../xhtml/sections.xsl"/>
+<xsl:include href="../xhtml/inline.xsl"/>
+<xsl:include href="../xhtml/footnote.xsl"/>
+<xsl:include href="../xhtml/html.xsl"/>
+<xsl:include href="../xhtml/info.xsl"/>
+<xsl:include href="../xhtml/keywords.xsl"/>
+<xsl:include href="../xhtml/division.xsl"/>
+<xsl:include href="../xhtml/toc.xsl"/>
+<xsl:include href="../xhtml/index.xsl"/>
+<xsl:include href="../xhtml/refentry.xsl"/>
+<xsl:include href="../xhtml/math.xsl"/>
+<xsl:include href="../xhtml/admon.xsl"/>
+<xsl:include href="../xhtml/component.xsl"/>
+<xsl:include href="../xhtml/biblio.xsl"/>
+<xsl:include href="../xhtml/biblio-iso690.xsl"/>
+<xsl:include href="../xhtml/glossary.xsl"/>
+<xsl:include href="../xhtml/block.xsl"/>
+<xsl:include href="../xhtml/task.xsl"/>
+<xsl:include href="../xhtml/qandaset.xsl"/>
+<xsl:include href="../xhtml/synop.xsl"/>
+<xsl:include href="../xhtml/titlepage.xsl"/>
+<xsl:include href="../xhtml/titlepage.templates.xsl"/>
+<xsl:include href="../xhtml/pi.xsl"/>
+<xsl:include href="../xhtml/ebnf.xsl"/>
+<xsl:include href="../xhtml/chunker.xsl"/>
+<xsl:include href="../xhtml/html-rtf.xsl"/>
+<xsl:include href="../xhtml/annotations.xsl"/>
+<xsl:include href="../common/stripns.xsl"/>
+
+<xsl:param name="stylesheet.result.type" select="'xhtml'"/>
+<xsl:param name="htmlhelp.output" select="0"/>
+
+<!-- ==================================================================== -->
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+<xsl:key name="gid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:text>Element </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text> in namespace '</xsl:text>
+    <xsl:value-of select="namespace-uri(.)"/>
+    <xsl:text>' encountered</xsl:text>
+    <xsl:if test="parent::*">
+      <xsl:text> in </xsl:text>
+      <xsl:value-of select="name(parent::*)"/>
+    </xsl:if>
+    <xsl:text>, but no template matches.</xsl:text>
+  </xsl:message>
+
+  <span style="color: red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="text()">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="body.attributes"><xslo:if xmlns:xslo="http://www.w3.org/1999/XSL/Transform" test="starts-with($writing.mode, 'rl')"><xslo:attribute name="dir">rtl</xslo:attribute></xslo:if>
+<!-- no apply-templates; make it empty except for dir for rtl-->
+</xsl:template>
+
+<xsl:template name="head.content">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="title">
+    <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/>
+  </xsl:param>
+
+  <title>
+    <xsl:copy-of select="$title"/>
+  </title>
+
+  <xsl:if test="$html.base != ''">
+    <base href="{$html.base}"/>
+  </xsl:if>
+
+  <!-- Insert links to CSS files or insert literal style elements -->
+  <xsl:call-template name="generate.css"/>
+
+  <xsl:if test="$html.stylesheet != ''">
+    <xsl:call-template name="output.html.stylesheets">
+      <xsl:with-param name="stylesheets" select="normalize-space($html.stylesheet)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$link.mailto.url != ''">
+    <link rev="made" href="{$link.mailto.url}"/>
+  </xsl:if>
+
+  <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/>
+
+  <xsl:if test="$generate.meta.abstract != 0">
+    <xsl:variable name="info" select="(articleinfo                                       |bookinfo                                       |prefaceinfo                                       |chapterinfo                                       |appendixinfo                                       |sectioninfo                                       |sect1info                                       |sect2info                                       |sect3info                                       |sect4info                                       |sect5info                                       |referenceinfo                                       |refentryinfo                                       |partinfo                                       |info                                       |docinfo)[1]"/>
+    <xsl:if test="$info and $info/abstract">
+      <meta name="description">
+        <xsl:attribute name="content">
+          <xsl:for-each select="$info/abstract[1]/*">
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:if test="position() &lt; last()">
+              <xsl:text> </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </meta>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:if test="($draft.mode = 'yes' or                 ($draft.mode = 'maybe' and                 ancestor-or-self::*[@status][1]/@status = 'draft'))                 and $draft.watermark.image != ''">
+    <style type="text/css"><xsl:text>
+body { background-image: url('</xsl:text>
+<xsl:value-of select="$draft.watermark.image"/><xsl:text>');
+       background-repeat: no-repeat;
+       background-position: top left;
+       /* The following properties make the watermark "fixed" on the page. */
+       /* I think that's just a bit too distracting for the reader... */
+       /* background-attachment: fixed; */
+       /* background-position: center center; */
+     }</xsl:text>
+    </style>
+  </xsl:if>
+  <xsl:apply-templates select="." mode="head.keywords.content"/>
+</xsl:template>
+
+<xsl:template name="output.html.stylesheets">
+  <xsl:param name="stylesheets" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($stylesheets, ' ')">
+      <xsl:variable name="css.filename" select="substring-before($stylesheets, ' ')"/>
+
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$css.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.stylesheets">
+        <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$stylesheets != ''">
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$stylesheets"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="head.keywords.content">
+  <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="artheader/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sectioninfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="info/keywordset" mode="html.header"/>
+
+  <xsl:if test="$inherit.keywords != 0                 and parent::*">
+    <xsl:apply-templates select="parent::*" mode="head.keywords.content"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="system.head.content">
+  <xsl:param name="node" select="."/>
+
+  <!-- FIXME: When chunking, only the annotations actually used
+              in this chunk should be referenced. I don't think it
+              does any harm to reference them all, but it adds
+              unnecessary bloat to each chunk. -->
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <xsl:call-template name="add.annotation.links"/>
+    <script type="text/javascript">
+      <xsl:text>
+// Create PopupWindow objects</xsl:text>
+      <xsl:for-each select="//annotation">
+        <xsl:text>
+var popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text> = new PopupWindow("popup-</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>");
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.offsetY = 15;
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.autoHide();
+</xsl:text>
+      </xsl:for-each>
+    </script>
+
+    <style type="text/css">
+      <xsl:value-of select="$annotation.css"/>
+    </style>
+  </xsl:if>
+
+  <!-- system.head.content is like user.head.content, except that
+       it is called before head.content. This is important because it
+       means, for example, that <style> elements output by system.head.content
+       have a lower CSS precedence than the users stylesheet. -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="user.preroot">
+  <!-- Pre-root output, can be used to output comments and PIs. -->
+  <!-- This must not output any element content! -->
+</xsl:template>
+
+<xsl:template name="user.head.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.navigation">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.navigation">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="false()"/>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="false()"/>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="collect.tex.math"/>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="$profiled-nodes" mode="collect.tex.math"/>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="doc" select="self::*"/>
+
+  <xsl:call-template name="user.preroot"/>
+  <xsl:call-template name="root.messages"/>
+
+  <html>
+    <head>
+      <xsl:call-template name="system.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="user.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </head>
+    <body>
+      <xsl:call-template name="body.attributes"/>
+      <xsl:call-template name="user.header.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:apply-templates select="."/>
+      <xsl:call-template name="user.footer.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$html.append"/>
+  
+  <!-- Generate any css files only once, not once per chunk -->
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<xsl:template name="root.messages">
+  <!-- redefine this any way you'd like to output messages -->
+  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+
+  <!-- The default is that we are not chunking... -->
+  <xsl:text>0</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/epub3/titlepage.templates.xml b/applications/content/template/docbook/epub3/titlepage.templates.xml
new file mode 100644
index 0000000..c9b8ee5
--- /dev/null
+++ b/applications/content/template/docbook/epub3/titlepage.templates.xml
@@ -0,0 +1,712 @@
+<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
+             xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
+             xmlns="http://www.w3.org/1999/xhtml"
+             xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="article" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="set" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="book" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <isbn/>
+    <issn/>
+    <biblioid/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="part" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="division.title"
+           param:node="ancestor-or-self::part[1]"/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </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:titlepage t:element="partintro" t:wrapper="div">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </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:titlepage t:element="reference" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="refentry" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+<!-- uncomment this if you want refentry titlepages
+    <title t:force="1"
+           t:named-template="refentry.title"
+           param:node="ancestor-or-self::refentry[1]"/>
+-->
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator/>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+  <t:titlepage t:element="dedication" t:wrapper="div" class="titlepage">
+    <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::dedication[1]"/>
+    <subtitle/>
+    </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:titlepage t:element="acknowledgements" t:wrapper="div" class="titlepage">
+    <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::acknowledgements[1]"/>
+    <subtitle/>
+    </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:titlepage t:element="preface" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </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:titlepage t:element="chapter" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </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:titlepage t:element="appendix" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </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:titlepage t:element="section" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect1" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect2" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect3" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect4" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect5" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="simplesect" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="bibliography" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::bibliography[1]"/>
+    <subtitle/>
+  </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:titlepage t:element="glossary" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::glossary[1]"/>
+    <subtitle/>
+  </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:titlepage t:element="index" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::index[1]"/>
+    <subtitle/>
+  </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:titlepage t:element="setindex" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::setindex[1]"/>
+    <subtitle/>
+  </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:titlepage t:element="sidebar" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:named-template="formal.object.heading"
+           param:object="ancestor-or-self::sidebar[1]"/>
+    <subtitle/>
+  </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/applications/content/template/docbook/epub3/titlepage.templates.xsl b/applications/content/template/docbook/epub3/titlepage.templates.xsl
new file mode 100644
index 0000000..e2b5e37
--- /dev/null
+++ b/applications/content/template/docbook/epub3/titlepage.templates.xsl
@@ -0,0 +1,3841 @@
+<?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="article.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="articleinfo/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/title"/>
+    </xsl:when>
+    <xsl:when test="artheader/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="articleinfo/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="artheader/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/abstract"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/abstract"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage.separator"><hr xmlns="http://www.w3.org/1999/xhtml"/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="article.titlepage.before.recto"/>
+      <xsl:call-template name="article.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="article.titlepage.before.verso"/>
+      <xsl:call-template name="article.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="article.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="article.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="article.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="article.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="article.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="article.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="article.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="article.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="set.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="setinfo/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="setinfo/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/othercredit"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/abstract"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage.separator"><hr xmlns="http://www.w3.org/1999/xhtml"/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="set.titlepage.before.recto"/>
+      <xsl:call-template name="set.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="set.titlepage.before.verso"/>
+      <xsl:call-template name="set.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="set.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="set.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="set.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="set.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="set.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="set.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="set.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="set.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="book.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="bookinfo/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="bookinfo/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/isbn"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/isbn"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/issn"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/issn"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/biblioid"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/biblioid"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/othercredit"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/legalnotice"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revision"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revhistory"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/abstract"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage.separator"><hr xmlns="http://www.w3.org/1999/xhtml"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="book.titlepage.before.recto"/>
+      <xsl:call-template name="book.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="book.titlepage.before.verso"/>
+      <xsl:call-template name="book.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="book.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="book.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="book.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="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="isbn" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="issn" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="biblioid" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="book.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="part.titlepage.recto">
+  <div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::part[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="partinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/abstract"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="part.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="part.titlepage.before.recto"/>
+      <xsl:call-template name="part.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="part.titlepage.before.verso"/>
+      <xsl:call-template name="part.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="part.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="part.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="part.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="subtitle" mode="part.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="part.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="part.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="part.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="part.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="part.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="part.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="part.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="part.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="part.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="part.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="part.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="partintroinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="partintroinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/abstract"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="partintro.titlepage.before.recto"/>
+      <xsl:call-template name="partintro.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="partintro.titlepage.before.verso"/>
+      <xsl:call-template name="partintro.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="partintro.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.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="partintro.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="partintro.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="partintro.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="partintro.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="referenceinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="referenceinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/abstract"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.separator"><hr xmlns="http://www.w3.org/1999/xhtml"/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="reference.titlepage.before.recto"/>
+      <xsl:call-template name="reference.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="reference.titlepage.before.verso"/>
+      <xsl:call-template name="reference.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="reference.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.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="reference.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="reference.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="reference.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="reference.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="reference.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.recto">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="refentry.titlepage.before.recto"/>
+      <xsl:call-template name="refentry.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="refentry.titlepage.before.verso"/>
+      <xsl:call-template name="refentry.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="refentry.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="refentry.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="refentry.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 name="dedication.titlepage.recto">
+  <div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="dedicationinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="dedicationinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="dedication.titlepage.before.recto"/>
+      <xsl:call-template name="dedication.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="dedication.titlepage.before.verso"/>
+      <xsl:call-template name="dedication.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="dedication.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.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="dedication.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="subtitle" mode="dedication.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.recto">
+  <div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="acknowledgements.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::acknowledgements[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="acknowledgementsinfo/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="acknowledgementsinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="acknowledgements.titlepage.before.recto"/>
+      <xsl:call-template name="acknowledgements.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="acknowledgements.titlepage.before.verso"/>
+      <xsl:call-template name="acknowledgements.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="acknowledgements.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="acknowledgements.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="acknowledgements.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="subtitle" mode="acknowledgements.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="acknowledgements.titlepage.recto.style">
+<xsl:apply-templates select="." mode="acknowledgements.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/abstract"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="preface.titlepage.before.recto"/>
+      <xsl:call-template name="preface.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="preface.titlepage.before.verso"/>
+      <xsl:call-template name="preface.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="preface.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.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="preface.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="preface.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="preface.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="preface.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="preface.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="preface.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="chapterinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="chapterinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/abstract"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="chapter.titlepage.before.recto"/>
+      <xsl:call-template name="chapter.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="chapter.titlepage.before.verso"/>
+      <xsl:call-template name="chapter.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="chapter.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.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="chapter.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="chapter.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="chapter.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="chapter.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="appendixinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="appendixinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/abstract"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="appendix.titlepage.before.recto"/>
+      <xsl:call-template name="appendix.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="appendix.titlepage.before.verso"/>
+      <xsl:call-template name="appendix.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="appendix.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.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="appendix.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="appendix.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="appendix.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="appendix.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="section.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sectioninfo/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sectioninfo/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/othercredit"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/abstract"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="section.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr xmlns="http://www.w3.org/1999/xhtml"/></xsl:if>
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="section.titlepage.before.recto"/>
+      <xsl:call-template name="section.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="section.titlepage.before.verso"/>
+      <xsl:call-template name="section.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="section.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="section.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="section.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="section.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="section.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="section.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="section.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="section.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect1info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect1info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/othercredit"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/abstract"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr xmlns="http://www.w3.org/1999/xhtml"/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect1.titlepage.before.recto"/>
+      <xsl:call-template name="sect1.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect1.titlepage.before.verso"/>
+      <xsl:call-template name="sect1.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect1.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.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="sect1.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="sect1.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect1.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect1.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect2info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect2info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/othercredit"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/abstract"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr xmlns="http://www.w3.org/1999/xhtml"/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect2.titlepage.before.recto"/>
+      <xsl:call-template name="sect2.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect2.titlepage.before.verso"/>
+      <xsl:call-template name="sect2.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect2.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.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="sect2.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="sect2.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect2.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect2.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect3info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect3info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/othercredit"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/abstract"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr xmlns="http://www.w3.org/1999/xhtml"/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect3.titlepage.before.recto"/>
+      <xsl:call-template name="sect3.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect3.titlepage.before.verso"/>
+      <xsl:call-template name="sect3.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect3.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.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="sect3.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="sect3.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect3.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect3.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect4info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect4info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/othercredit"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/abstract"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr xmlns="http://www.w3.org/1999/xhtml"/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect4.titlepage.before.recto"/>
+      <xsl:call-template name="sect4.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect4.titlepage.before.verso"/>
+      <xsl:call-template name="sect4.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect4.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.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="sect4.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="sect4.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect4.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect4.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect5info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect5info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/othercredit"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/abstract"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr xmlns="http://www.w3.org/1999/xhtml"/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect5.titlepage.before.recto"/>
+      <xsl:call-template name="sect5.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect5.titlepage.before.verso"/>
+      <xsl:call-template name="sect5.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect5.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.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="sect5.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="sect5.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect5.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect5.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/abstract"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr xmlns="http://www.w3.org/1999/xhtml"/></xsl:if>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="simplesect.titlepage.before.recto"/>
+      <xsl:call-template name="simplesect.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="simplesect.titlepage.before.verso"/>
+      <xsl:call-template name="simplesect.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="simplesect.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.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="simplesect.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="simplesect.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="simplesect.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="simplesect.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.recto">
+  <div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::bibliography[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="bibliographyinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="bibliographyinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="bibliography.titlepage.before.recto"/>
+      <xsl:call-template name="bibliography.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="bibliography.titlepage.before.verso"/>
+      <xsl:call-template name="bibliography.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="bibliography.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="bibliography.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="bibliography.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="subtitle" mode="bibliography.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:apply-templates select="." mode="bibliography.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.recto">
+  <div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::glossary[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="glossaryinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="glossaryinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="glossary.titlepage.before.recto"/>
+      <xsl:call-template name="glossary.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="glossary.titlepage.before.verso"/>
+      <xsl:call-template name="glossary.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="glossary.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="glossary.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="glossary.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="subtitle" mode="glossary.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:apply-templates select="." mode="glossary.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="index.titlepage.recto">
+  <div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::index[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="indexinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="indexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="index.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="index.titlepage.before.recto"/>
+      <xsl:call-template name="index.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="index.titlepage.before.verso"/>
+      <xsl:call-template name="index.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="index.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="index.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="index.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="subtitle" mode="index.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:apply-templates select="." mode="index.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.recto">
+  <div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="setindex.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::setindex[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="setindexinfo/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="setindexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="setindex.titlepage.before.recto"/>
+      <xsl:call-template name="setindex.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="setindex.titlepage.before.verso"/>
+      <xsl:call-template name="setindex.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="setindex.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="setindex.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="setindex.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="subtitle" mode="setindex.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="setindex.titlepage.recto.style">
+<xsl:apply-templates select="." mode="setindex.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sidebarinfo/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sidebarinfo/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage">
+  <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sidebar.titlepage.before.recto"/>
+      <xsl:call-template name="sidebar.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sidebar.titlepage.before.verso"/>
+      <xsl:call-template name="sidebar.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sidebar.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sidebar.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="sidebar.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="sidebar.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sidebar.titlepage.recto.style">
+<xsl:call-template name="formal.object.heading">
+<xsl:with-param name="object" select="ancestor-or-self::sidebar[1]"/>
+</xsl:call-template>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sidebar.titlepage.recto.auto.mode">
+<div xmlns="http://www.w3.org/1999/xhtml" xsl:use-attribute-sets="sidebar.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sidebar.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/extensions/LICENSE.txt b/applications/content/template/docbook/extensions/LICENSE.txt
new file mode 100644
index 0000000..fed77d9
--- /dev/null
+++ b/applications/content/template/docbook/extensions/LICENSE.txt
@@ -0,0 +1,264 @@
+LICENSE
+
+   Copyright (c) 2008 N. Quaine - NexWave Solutions All Rights Reserved. 
+
+CONDITIONS
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 
+Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
+Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
+Neither the name of the copyright holders nor the names of the contributors may be used to endorse or promote products derived from this software without specific prior written permission. 
+
+DISCLAIMER
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+    IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+    FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+    OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+    POSSIBILITY OF SUCH DAMAGE. 
+
+
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+Some code in src/java/org/apache/lucene/util/UnicodeUtil.java was
+derived from unicode conversion examples available at
+http://www.unicode.org/Public/PROGRAMS/CVTUTF.  Here is the copyright
+from those sources:
+
+/*
+ * Copyright 2001-2004 Unicode, Inc.
+ * 
+ * Disclaimer
+ * 
+ * This source code is provided as is by Unicode, Inc. No claims are
+ * made as to fitness for any particular purpose. No warranties of any
+ * kind are expressed or implied. The recipient agrees to determine
+ * applicability of information provided. If this file has been
+ * purchased on magnetic or optical media from Unicode, Inc., the
+ * sole remedy for any claim will be exchange of defective media
+ * within 90 days of receipt.
+ * 
+ * Limitations on Rights to Redistribute This Code
+ * 
+ * Unicode, Inc. hereby grants the right to freely use the information
+ * supplied in this file in the creation of products supporting the
+ * Unicode Standard, and to make copies of this file in any form
+ * for internal or external distribution as long as this notice
+ * remains attached.
+ */
+
+
+Some code in src/java/org/apache/lucene/util/ArrayUtil.java was
+derived from Python 2.4.2 sources available at
+http://www.python.org. Full license is here:
+
+  http://www.python.org/download/releases/2.4.2/license/
+
+
diff --git a/applications/content/template/docbook/extensions/NOTICE.txt b/applications/content/template/docbook/extensions/NOTICE.txt
new file mode 100644
index 0000000..35f247d
--- /dev/null
+++ b/applications/content/template/docbook/extensions/NOTICE.txt
@@ -0,0 +1,12 @@
+The webhelpindexer is released under the Apache 2.0 license and
+includes software from other projects.
+
+The webhelpindexer was originally developed by N. Quaine and released
+under a MIT/BSD-style license. See LICENSE.txt.
+
+This product includes software developed by The Apache Software
+Foundation (http://www.apache.org/). See LICENSE.txt.
+
+This product also includes software released as part of the Snowball
+project maintained by Martin Porter and Richard Boulton released under
+a BSD-style license: http://snowball.tartarus.org/
diff --git a/applications/content/template/docbook/extensions/README.LIBXSLT b/applications/content/template/docbook/extensions/README.LIBXSLT
new file mode 100644
index 0000000..2c80274
--- /dev/null
+++ b/applications/content/template/docbook/extensions/README.LIBXSLT
@@ -0,0 +1,52 @@
+----------------------------------------------------------------------
+              README file for the libxslt extensions
+----------------------------------------------------------------------
+$Id: README.LIBXSLT 7877 2008-03-08 04:07:52Z xmldoc $
+
+These are XSLT extensions written in Python for use with the DocBook XML 
+stylesheets and the libxslt library[1].
+
+Currently, the only available extension is a function for adjusting column
+widths in tables. For more information, see the section describing the 
+equivalent Java extension in "DocBook XSL: The Complete Guide"[2].
+
+----------------------------------------------------------------------
+Preparations
+----------------------------------------------------------------------
+In addition to libxml2 and libxslt, the following software needs to 
+be installed before you start using the extensions:
+
+1. Python[3].
+
+2. Python bindings for libxml2/libxslt. Most distributions of 
+   libxml2/libxslt for Unix/Linux include these bindings.
+   A native Windows port is provided by Stéphane Bidoul[4].
+
+----------------------------------------------------------------------
+Installation of the extensions
+----------------------------------------------------------------------
+No special installation step is needed.
+
+----------------------------------------------------------------------
+How to use the extensions
+----------------------------------------------------------------------
+Instead of using xsltproc, you run a Python program (xslt.py). The 
+command has this general form:
+
+python xslt.py xmlfile xslfile [outputfile] [param1=val1 [param2=val]...]
+
+Modify paths, filenames, and parameters as needed. Make sure to set 
+the "use.extensions" and "tablecolumns.extension" parameters to 1.
+
+----------------------------------------------------------------------
+Manifest
+----------------------------------------------------------------------
+README.LIBXSLT   This file
+xslt.py          Executable script file
+docbook.py       Module that implements extensions
+
+----------------------------------------------------------------------
+[1] http://xmlsoft.org/XSLT
+[2] http://www.sagehill.net/docbookxsl/ColumnWidths.html
+[3] http://www.python.org/download
+[4] http://users.skynet.be/sbi/libxml-python
diff --git a/applications/content/template/docbook/extensions/README.txt b/applications/content/template/docbook/extensions/README.txt
new file mode 100644
index 0000000..35c6fa0
--- /dev/null
+++ b/applications/content/template/docbook/extensions/README.txt
@@ -0,0 +1,4 @@
+See webhelp/docs/index.html for more information about the webhelp
+indexer and the webhelp output format. See webhelp/docs/index.html for
+more information about the webhelp indexer and the webhelp output
+format.
diff --git a/applications/content/template/docbook/extensions/docbook.py b/applications/content/template/docbook/extensions/docbook.py
new file mode 100644
index 0000000..c070602
--- /dev/null
+++ b/applications/content/template/docbook/extensions/docbook.py
@@ -0,0 +1,239 @@
+# docbook.py: extension module
+# $Id: docbook.py 8353 2009-03-17 16:57:50Z mzjn $
+
+import sys
+import string
+import libxml2
+import libxslt
+import re
+import math
+
+# Some globals
+pixelsPerInch = 96.0
+unitHash = { 'in': pixelsPerInch,
+             'cm': pixelsPerInch / 2.54,
+             'mm': pixelsPerInch / 25.4,
+             'pc': (pixelsPerInch / 72.0) * 12,
+             'pt': pixelsPerInch / 72.0,
+             'px': 1 }
+
+# ======================================================================
+
+def adjustColumnWidths(ctx, nodeset):
+    #
+    # Small check to verify the context is correcly accessed
+    #
+    try:
+        pctxt = libxslt.xpathParserContext(_obj=ctx)
+        ctxt = pctxt.context()
+        tctxt = ctxt.transformContext()
+    except:
+        pass
+
+    # Get the nominal table width
+    varString = lookupVariable(tctxt, "nominal.table.width", None)
+    if varString == None:
+        nominalWidth = 6 * pixelsPerInch;
+    else:
+        nominalWidth = convertLength(varString);
+
+    # Get the requested table width
+    tableWidth = lookupVariable(tctxt, "table.width", "100%")
+
+    foStylesheet = (tctxt.variableLookup("stylesheet.result.type", None) == "fo")
+
+    relTotal = 0
+    relParts = []
+
+    absTotal = 0
+    absParts = []
+
+    colgroup = libxml2.xmlNode(_obj = nodeset[0])
+    # If this is an foStylesheet, we've been passed a list of fo:table-columns.
+    # Otherwise we've been passed a colgroup that contains a list of cols.
+    if foStylesheet:
+        colChildren = colgroup
+    else:
+        colChildren = colgroup.children
+
+    col = colChildren
+    while col != None:
+        if foStylesheet:
+            width = col.prop("column-width")
+        else:
+            width = col.prop("width")
+
+        if width == None:
+            width = "1*"
+
+        relPart = 0.0
+        absPart = 0.0
+        starPos = string.find(width, "*")
+        if starPos >= 0:
+            relPart, absPart = string.split(width, "*", 2)
+            relPart = float(relPart)
+            relTotal = relTotal + float(relPart)
+        else:
+            absPart = width
+
+        pixels = convertLength(absPart)
+        absTotal = absTotal + pixels
+
+        relParts.append(relPart)
+        absParts.append(pixels)
+
+        col = col.next
+
+    # Ok, now we have the relative widths and absolute widths in
+    # two parallel arrays.
+    #
+    # - If there are no relative widths, output the absolute widths
+    # - If there are no absolute widths, output the relative widths
+    # - If there are a mixture of relative and absolute widths,
+    #   - If the table width is absolute, turn these all into absolute
+    #     widths.
+    #   - If the table width is relative, turn these all into absolute
+    #     widths in the nominalWidth and then turn them back into
+    #     percentages.
+
+    widths = []
+
+    if relTotal == 0:
+        for absPart in absParts:
+            if foStylesheet:
+                inches = absPart / pixelsPerInch
+                widths.append("%4.2fin" % inches)
+            else:
+                widths.append("%d" % absPart)
+    elif absTotal == 0:
+        for relPart in relParts:
+            rel = relPart / relTotal * 100
+            widths.append(rel)
+        widths = correctRoundingError(widths)
+    else:
+        pixelWidth = nominalWidth
+        if string.find(tableWidth, "%") < 0:
+            pixelWidth = convertLength(tableWidth)
+
+        if pixelWidth <= absTotal:
+            print "Table is wider than table width"
+        else:
+            pixelWidth = pixelWidth - absTotal
+
+        absTotal = 0
+        for count in range(len(relParts)):
+            rel = relParts[count] / relTotal * pixelWidth
+            relParts[count] = rel + absParts[count]
+            absTotal = absTotal + rel + absParts[count]
+
+        if string.find(tableWidth, "%") < 0:
+            for count in range(len(relParts)):
+                if foStylesheet:
+                    pixels = relParts[count]
+                    inches = pixels / pixelsPerInch
+                    widths.append("%4.2fin" % inches)
+                else:
+                    widths.append(relParts[count])
+        else:
+            for count in range(len(relParts)):
+                rel = relParts[count] / absTotal * 100
+                widths.append(rel)
+            widths = correctRoundingError(widths)
+
+    # Danger, Will Robinson! In-place modification of the result tree!
+    # Side-effect free? We don' need no steenkin' side-effect free!
+    count = 0
+    col = colChildren
+    while col != None:
+        if foStylesheet:
+            col.setProp("column-width", widths[count])
+        else:
+            col.setProp("width", widths[count])
+
+        count = count+1
+        col = col.next
+
+    return nodeset
+
+def convertLength(length):
+    # Given "3.4in" return the width in pixels
+    global pixelsPerInch
+    global unitHash
+
+    m = re.search('([+-]?[\d\.]+)(\S+)', length)
+    if m != None and m.lastindex > 1:
+        unit = pixelsPerInch
+        if unitHash.has_key(m.group(2)):
+            unit = unitHash[m.group(2)]
+        else:
+            print "Unrecognized length: " + m.group(2)
+
+        pixels = unit * float(m.group(1))
+    else:
+        pixels = 0
+
+    return pixels
+
+def correctRoundingError(floatWidths):
+    # The widths are currently floating point numbers, we have to truncate
+    # them back to integers and then distribute the error so that they sum
+    # to exactly 100%.
+
+    totalWidth = 0
+    widths = []
+    for width in floatWidths:
+        width = math.floor(width)
+        widths.append(width)
+        totalWidth = totalWidth + math.floor(width)
+
+    totalError = 100 - totalWidth
+    columnError = totalError / len(widths)
+    error = 0
+    for count in range(len(widths)):
+        width = widths[count]
+        error = error + columnError
+        if error >= 1.0:
+            adj = math.floor(error)
+            error = error - adj
+            widths[count] = "%d%%" % (width + adj)
+        else:
+            widths[count] = "%d%%" % width
+
+    return widths
+
+def lookupVariable(tctxt, varName, default):
+    varString = tctxt.variableLookup(varName, None)
+    if varString == None:
+        return default
+
+    # If it's a list, get the first element
+    if type(varString) == type([]):
+        varString = varString[0]
+
+    # If it's not a string, it must be a node, get its content
+    if type(varString) != type(""):
+        varString = varString.content
+
+    return varString
+
+# ======================================================================
+# Random notes...
+
+#once you have a node which is a libxml2 python xmlNode wrapper all common
+#operations are possible:
+#   .children .last .parent .next .prev .doc for navigation
+#   .content .type for introspection
+#   .prop("attribute_name") to lookup attribute values
+
+#    # Now make a nodeset to return
+#    # Danger, Will Robinson! This creates a memory leak!
+#    newDoc = libxml2.newDoc("1.0")
+#    newColGroup = newDoc.newDocNode(None, "colgroup", None)
+#    newDoc.addChild(newColGroup)
+#    col = colgroup.children
+#    while col != None:
+#        newCol = newDoc.newDocNode(None, "col", None)
+#        newCol.copyPropList(col);
+#        newCol.setProp("width", "4")
+#        newColGroup.addChild(newCol)
+#        col = col.next
diff --git a/applications/content/template/docbook/extensions/lucene-analyzers-3.0.0.jar b/applications/content/template/docbook/extensions/lucene-analyzers-3.0.0.jar
new file mode 100644
index 0000000..9f26ecf
--- /dev/null
+++ b/applications/content/template/docbook/extensions/lucene-analyzers-3.0.0.jar
Binary files differ
diff --git a/applications/content/template/docbook/extensions/lucene-core-3.0.0.jar b/applications/content/template/docbook/extensions/lucene-core-3.0.0.jar
new file mode 100644
index 0000000..38d78c3
--- /dev/null
+++ b/applications/content/template/docbook/extensions/lucene-core-3.0.0.jar
Binary files differ
diff --git a/applications/content/template/docbook/extensions/saxon65.jar b/applications/content/template/docbook/extensions/saxon65.jar
new file mode 100644
index 0000000..1fbfc1c
--- /dev/null
+++ b/applications/content/template/docbook/extensions/saxon65.jar
Binary files differ
diff --git a/applications/content/template/docbook/extensions/tagsoup-1.2.1.jar b/applications/content/template/docbook/extensions/tagsoup-1.2.1.jar
new file mode 100644
index 0000000..2751601
--- /dev/null
+++ b/applications/content/template/docbook/extensions/tagsoup-1.2.1.jar
Binary files differ
diff --git a/applications/content/template/docbook/extensions/webhelpindexer.jar b/applications/content/template/docbook/extensions/webhelpindexer.jar
new file mode 100644
index 0000000..89d5119
--- /dev/null
+++ b/applications/content/template/docbook/extensions/webhelpindexer.jar
Binary files differ
diff --git a/applications/content/template/docbook/extensions/xalan27.jar b/applications/content/template/docbook/extensions/xalan27.jar
new file mode 100644
index 0000000..d2cf145
--- /dev/null
+++ b/applications/content/template/docbook/extensions/xalan27.jar
Binary files differ
diff --git a/applications/content/template/docbook/extensions/xslt.py b/applications/content/template/docbook/extensions/xslt.py
new file mode 100644
index 0000000..c712f65
--- /dev/null
+++ b/applications/content/template/docbook/extensions/xslt.py
@@ -0,0 +1,84 @@
+#!/usr/bin/python -u
+# $Id: xslt.py 8353 2009-03-17 16:57:50Z mzjn $
+
+import sys
+import libxml2
+import libxslt
+from docbook import adjustColumnWidths
+
+# Check the arguments
+usage = "Usage: %s xmlfile.xml xslfile.xsl [outputfile] [param1=val [param2=val]...]" % sys.argv[0]
+
+xmlfile = None
+xslfile = None
+outfile = "-"
+params  = {}
+
+try:
+    xmlfile = sys.argv[1]
+    xslfile = sys.argv[2]
+except IndexError:
+    print usage
+    sys.exit(1)
+
+def quote(astring):
+    if astring.find("'") < 0:
+        return "'" + astring + "'"
+    else:
+        return '"' + astring + '"'
+
+try:
+    outfile = sys.argv[3]
+    if outfile.find("=") > 0:
+        name, value = outfile.split("=", 2)
+        params[name] = quote(value)
+        outfile = None
+
+    count = 4
+    while (sys.argv[count]):
+        try:
+            name, value = sys.argv[count].split("=", 2)
+            if params.has_key(name):
+                print "Warning: '%s' re-specified; replacing value" % name
+            params[name] = quote(value)
+        except ValueError:
+            print "Invalid parameter specification: '" + sys.argv[count] + "'"
+            print usage
+            sys.exit(1)
+        count = count+1
+except IndexError:
+    pass
+
+# ======================================================================
+# Memory debug specific
+# libxml2.debugMemory(1)
+
+# Setup environment
+libxml2.lineNumbersDefault(1)
+libxml2.substituteEntitiesDefault(1)
+libxslt.registerExtModuleFunction("adjustColumnWidths",
+                                  "http://nwalsh.com/xslt/ext/xsltproc/python/Table",
+                                  adjustColumnWidths)
+
+# Initialize and run
+styledoc = libxml2.parseFile(xslfile)
+style = libxslt.parseStylesheetDoc(styledoc)
+doc = libxml2.parseFile(xmlfile)
+result = style.applyStylesheet(doc, params)
+
+# Save the result
+if outfile:
+    style.saveResultToFilename(outfile, result, 0)
+else:
+    print result
+
+# Free things up
+style.freeStylesheet()
+doc.freeDoc()
+result.freeDoc()
+
+# Memory debug specific
+#libxslt.cleanup()
+#if libxml2.debugMemory(1) != 0:
+#    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+#    libxml2.dumpMemory()
diff --git a/applications/content/template/docbook/fo/admon.xsl b/applications/content/template/docbook/fo/admon.xsl
new file mode 100644
index 0000000..9662ac5
--- /dev/null
+++ b/applications/content/template/docbook/fo/admon.xsl
@@ -0,0 +1,130 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="note|important|warning|caution|tip">
+  <xsl:choose>
+    <xsl:when test="$admon.graphics != 0">
+      <xsl:call-template name="graphical.admonition"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="nongraphical.admonition"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="admon.graphic.width">
+  <xsl:param name="node" select="."/>
+  <xsl:text>36pt</xsl:text>
+</xsl:template>
+
+<xsl:template name="admon.graphic">
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="filename">
+    <xsl:value-of select="$admon.graphics.path"/>
+    <xsl:choose>
+      <xsl:when test="local-name($node)='note'">note</xsl:when>
+      <xsl:when test="local-name($node)='warning'">warning</xsl:when>
+      <xsl:when test="local-name($node)='caution'">caution</xsl:when>
+      <xsl:when test="local-name($node)='tip'">tip</xsl:when>
+      <xsl:when test="local-name($node)='important'">important</xsl:when>
+      <xsl:otherwise>note</xsl:otherwise>
+    </xsl:choose>
+    <xsl:value-of select="$admon.graphics.extension"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$passivetex.extensions != 0
+                    or $fop.extensions != 0
+                    or $arbortext.extensions != 0">
+      <xsl:value-of select="$filename"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>url(</xsl:text>
+      <xsl:value-of select="$filename"/>
+      <xsl:text>)</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="graphical.admonition">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="graphic.width">
+     <xsl:apply-templates select="." mode="admon.graphic.width"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}"
+            xsl:use-attribute-sets="graphical.admonition.properties">
+    <fo:list-block provisional-distance-between-starts="{$graphic.width} + 18pt"
+                    provisional-label-separation="18pt">
+      <fo:list-item>
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>
+              <fo:external-graphic width="auto" height="auto"
+                                         content-width="{$graphic.width}" >
+                <xsl:attribute name="src">
+                  <xsl:call-template name="admon.graphic"/>
+                </xsl:attribute>
+              </fo:external-graphic>
+            </fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <xsl:if test="$admon.textlabel != 0 or title or info/title">
+              <fo:block xsl:use-attribute-sets="admonition.title.properties">
+                <xsl:apply-templates select="." mode="object.title.markup">
+		  <xsl:with-param name="allow-anchors" select="1"/>
+		</xsl:apply-templates>
+              </fo:block>
+            </xsl:if>
+            <fo:block xsl:use-attribute-sets="admonition.properties">
+              <xsl:apply-templates/>
+            </fo:block>
+          </fo:list-item-body>
+      </fo:list-item>
+    </fo:list-block>
+  </fo:block>
+</xsl:template>
+
+<xsl:template name="nongraphical.admonition">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}"
+            xsl:use-attribute-sets="nongraphical.admonition.properties">
+    <xsl:if test="$admon.textlabel != 0 or title or info/title">
+      <fo:block keep-with-next.within-column='always'
+                xsl:use-attribute-sets="admonition.title.properties">
+         <xsl:apply-templates select="." mode="object.title.markup">
+	   <xsl:with-param name="allow-anchors" select="1"/>
+	 </xsl:apply-templates>
+      </fo:block>
+    </xsl:if>
+
+    <fo:block xsl:use-attribute-sets="admonition.properties">
+      <xsl:apply-templates/>
+    </fo:block>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="note/title"></xsl:template>
+<xsl:template match="important/title"></xsl:template>
+<xsl:template match="warning/title"></xsl:template>
+<xsl:template match="caution/title"></xsl:template>
+<xsl:template match="tip/title"></xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/annotations.xsl b/applications/content/template/docbook/fo/annotations.xsl
new file mode 100644
index 0000000..e2e1449
--- /dev/null
+++ b/applications/content/template/docbook/fo/annotations.xsl
@@ -0,0 +1,18 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="annotation"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/autoidx-kimber.xsl b/applications/content/template/docbook/fo/autoidx-kimber.xsl
new file mode 100644
index 0000000..5c735f9
--- /dev/null
+++ b/applications/content/template/docbook/fo/autoidx-kimber.xsl
@@ -0,0 +1,172 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+
+<!-- Documents using the kimber index method must have a lang attribute -->
+<!-- Only one of these should be present in the entity -->
+<!ENTITY lang 'concat(/*/@lang, /*/@xml:lang)'>
+
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:k="java:com.isogen.saxoni18n.Saxoni18nService"
+                exclude-result-prefixes="k"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheet distribution.
+     See ../README or http://docbook.sf.net/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "kimber" method contributed by Eliot Kimber of Innodata Isogen.  -->
+<!-- ==================================================================== -->
+<!--   *** THIS MODULE ONLY WORKS WITH SAXON 6 OR SAXON 8 ***             -->
+<!-- ==================================================================== -->
+
+<xsl:include href="../common/autoidx-kimber.xsl"/>
+
+<!-- Java sort apparently works only on lang part, not country -->
+<xsl:param name="sort.lang">
+  <xsl:choose>
+    <xsl:when test="contains(&lang;, '-')">
+      <xsl:value-of select="substring-before(&lang;, '-')"/>
+    </xsl:when>
+    <xsl:when test="contains(&lang;, '_')">
+      <xsl:value-of select="substring-before(&lang;, '_')"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="&lang;"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:template name="generate-kimber-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="not(contains($vendor, 'SAXON '))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+      <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not(function-available('k:getIndexGroupKey'))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+      <xsl:text>Innodata Isogen &#x0A;Java extensions for </xsl:text>
+      <xsl:text>internationalized indexes. &#x0A;Install those </xsl:text>
+      <xsl:text>extensions, or use a different index method.&#x0A;</xsl:text>
+      <xsl:text>For more information, see:&#x0A;</xsl:text>
+      <xsl:text>http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="role">
+    <xsl:if test="$index.on.role != 0">
+      <xsl:value-of select="@role"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:if test="$index.on.type != 0">
+      <xsl:value-of select="@type"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="terms"
+                select="//indexterm[count(.|key('k-group',
+                   k:getIndexGroupKey(&lang;, &primary;))
+                   [&scope;][1]) = 1
+                   and not(@class = 'endofrange')]"/>
+
+  <xsl:variable name="alphabetical"
+                select="$terms[not(starts-with(
+                k:getIndexGroupKey(&lang;, &primary;),
+                '#NUMERIC'
+                ))]"/>
+
+  <xsl:variable name="others"
+                select="$terms[starts-with(
+                k:getIndexGroupKey(&lang;, &primary;),
+                '#NUMERIC'
+                )]"/>
+
+  <fo:block>
+    <xsl:if test="$others">
+      <xsl:call-template name="indexdiv.title">
+        <xsl:with-param name="titlecontent">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'index symbols'"/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+
+      <fo:block>
+        <xsl:apply-templates select="$others"
+                             mode="index-symbol-div">
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+          <xsl:sort lang="{$sort.lang}"
+              select="k:getIndexGroupSortKey(&lang;,
+                      k:getIndexGroupKey(&lang;, &primary;))"/>
+        </xsl:apply-templates>
+      </fo:block>
+    </xsl:if>
+
+    <xsl:apply-templates select="$alphabetical"
+                         mode="index-div-kimber">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort lang="{$sort.lang}"
+             select="k:getIndexGroupSortKey(&lang;,
+                     k:getIndexGroupKey(&lang;, &primary;))"/>
+    </xsl:apply-templates>
+  </fo:block>
+
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-kimber">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key"
+          select="k:getIndexGroupKey(&lang;, &primary;)"/>
+
+  <xsl:variable name="label"
+          select="k:getIndexGroupLabel(&lang;, $key)"/>
+
+  <xsl:if test="key('k-group', $key)[&scope;]
+                [count(.|key('primary', &primary;)[&scope;][1]) = 1]">
+    <fo:block>
+      <xsl:call-template name="indexdiv.title">
+        <xsl:with-param name="titlecontent">
+          <xsl:value-of select="$label"/>
+        </xsl:with-param>
+      </xsl:call-template>
+      <fo:block>
+        <xsl:apply-templates select="key('k-group', $key)[&scope;]
+                            [count(.|key('primary', &primary;)[&scope;]
+                            [1])=1]"
+                             mode="index-primary">
+          <xsl:sort select="&primary;" lang="{$sort.lang}"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+        </xsl:apply-templates>
+      </fo:block>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/autoidx-kosek.xsl b/applications/content/template/docbook/fo/autoidx-kosek.xsl
new file mode 100644
index 0000000..03a1630
--- /dev/null
+++ b/applications/content/template/docbook/fo/autoidx-kosek.xsl
@@ -0,0 +1,139 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+]>
+<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"
+                xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
+                xmlns:i="urn:cz-kosek:functions:index"
+                xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
+                xmlns:func="http://exslt.org/functions"
+                xmlns:exslt="http://exslt.org/common"
+                extension-element-prefixes="func exslt"
+                exclude-result-prefixes="func exslt i l"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheet distribution.
+     See ../README or http://docbook.sf.net/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "kosek" method contributed by Jirka Kosek. -->
+
+<xsl:include href="../common/autoidx-kosek.xsl"/>
+
+<xsl:template name="generate-kosek-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="contains($vendor, 'libxslt')">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+      <xsl:text>work with the xsltproc XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="contains($vendor, 'Saxonica')">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+      <xsl:text>work with the Saxon 8 XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+
+  <xsl:if test="$exsl.node.set.available = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the </xsl:text>
+      <xsl:text>exslt:node-set() function. Use a processor that </xsl:text>
+      <xsl:text>has it, or use a different index method.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not(function-available('i:group-index'))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the&#xA;</xsl:text>
+      <xsl:text>index extension functions be imported:&#xA;</xsl:text>
+      <xsl:text>  xsl:import href="common/autoidx-kosek.xsl"</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="role">
+    <xsl:if test="$index.on.role != 0">
+      <xsl:value-of select="@role"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:if test="$index.on.type != 0">
+      <xsl:value-of select="@type"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="terms"
+                select="//indexterm[count(.|key('group-code',
+                                          i:group-index(&primary;))
+                                          [&scope;][1]) = 1
+                                and not(@class = 'endofrange')]"/>
+  <fo:block>
+    <xsl:apply-templates select="$terms" mode="index-div-kosek">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="i:group-index(&primary;)" data-type="number"/>
+    </xsl:apply-templates>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-kosek">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key"
+                select="i:group-index(&primary;)"/>
+
+  <xsl:variable name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:variable>
+
+  <xsl:if test="key('group-code', $key)[&scope;]
+                [count(.|key('primary', &primary;)[&scope;][1]) = 1]">
+    <fo:block>
+      <xsl:call-template name="indexdiv.title">
+        <xsl:with-param name="titlecontent">
+          <xsl:choose>
+            <xsl:when test="$key = 0">
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key" select="'index symbols'"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="i:group-letter($key)"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+      <fo:block>
+        <xsl:apply-templates select="key('group-code', $key)[&scope;]
+                                     [count(.|key('primary', &primary;)
+                                     [&scope;][1])=1]"
+                             mode="index-primary">
+          <xsl:sort select="&primary;" lang="{$lang}"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+        </xsl:apply-templates>
+      </fo:block>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/autoidx-ng.xsl b/applications/content/template/docbook/fo/autoidx-ng.xsl
new file mode 100644
index 0000000..57884cc
--- /dev/null
+++ b/applications/content/template/docbook/fo/autoidx-ng.xsl
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheet distribution.
+     See ../README or http://docbook.sf.net/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- You should have this directly in your customization file. -->
+<!-- This file is there only to retain backward compatibility. -->
+<xsl:import href="autoidx-kosek.xsl"/>
+<xsl:param name="index.method">kosek</xsl:param>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/autoidx.xsl b/applications/content/template/docbook/fo/autoidx.xsl
new file mode 100644
index 0000000..727843d
--- /dev/null
+++ b/applications/content/template/docbook/fo/autoidx.xsl
@@ -0,0 +1,1330 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+]>
+<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"
+                xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
+                xmlns:exslt="http://exslt.org/common"
+                extension-element-prefixes="exslt"
+                exclude-result-prefixes="exslt"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheet distribution.
+     See ../README or http://docbook.sf.net/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "basic" method derived from Jeni Tennison's work. -->
+<!-- The "kosek" method contributed by Jirka Kosek. -->
+<!-- The "kimber" method contributed by Eliot Kimber of Innodata Isogen. -->
+
+<!-- Importing module for kimber or kosek method overrides one of these -->
+<xsl:param name="kimber.imported" select="0"/>
+<xsl:param name="kosek.imported" select="0"/>
+
+<!-- These keys used primary in all methods -->
+<xsl:key name="letter"
+         match="indexterm"
+         use="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
+
+<xsl:key name="primary"
+         match="indexterm"
+         use="&primary;"/>
+
+<xsl:key name="secondary"
+         match="indexterm"
+         use="concat(&primary;, &sep;, &secondary;)"/>
+
+<xsl:key name="tertiary"
+         match="indexterm"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+
+<xsl:key name="endofrange"
+         match="indexterm[@class='endofrange']"
+         use="@startref"/>
+
+<xsl:key name="see-also"
+         match="indexterm[seealso]"
+         use="concat(&primary;, &sep;, 
+                     &secondary;, &sep;, 
+                     &tertiary;, &sep;, seealso)"/>
+
+<xsl:key name="see"
+         match="indexterm[see]"
+         use="concat(&primary;, &sep;, 
+                     &secondary;, &sep;, 
+                     &tertiary;, &sep;, see)"/>
+
+
+<xsl:template name="generate-index">
+  <xsl:param name="scope" select="(ancestor::book|/)[last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="$index.method = 'kosek'">
+      <xsl:call-template name="generate-kosek-index">
+        <xsl:with-param name="scope" select="$scope"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$index.method = 'kimber'">
+      <xsl:call-template name="generate-kimber-index">
+        <xsl:with-param name="scope" select="$scope"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="generate-basic-index">
+        <xsl:with-param name="scope" select="$scope"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+      
+<xsl:template name="generate-basic-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="role">
+    <xsl:if test="$index.on.role != 0">
+      <xsl:value-of select="@role"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:if test="$index.on.type != 0">
+      <xsl:value-of select="@type"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="terms"
+                select="//indexterm
+                        [count(.|key('letter',
+                          translate(substring(&primary;, 1, 1),
+                             &lowercase;,
+                             &uppercase;))
+                          [&scope;][1]) = 1
+                          and not(@class = 'endofrange')]"/>
+
+  <xsl:variable name="alphabetical"
+                select="$terms[contains(concat(&lowercase;, &uppercase;),
+                                        substring(&primary;, 1, 1))]"/>
+
+  <xsl:variable name="others" select="$terms[not(contains(
+                                        concat(&lowercase;,
+                                        &uppercase;),
+                                        substring(&primary;, 1, 1)))]"/>
+  <fo:block>
+    <xsl:if test="$others">
+      <xsl:call-template name="indexdiv.title">
+        <xsl:with-param name="titlecontent">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'index symbols'"/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+
+      <fo:block>
+        <xsl:apply-templates select="$others[count(.|key('primary',
+                                     &primary;)[&scope;][1]) = 1]"
+                             mode="index-symbol-div">
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+          <xsl:sort select="translate(&primary;, &lowercase;, 
+                            &uppercase;)"/>
+        </xsl:apply-templates>
+      </fo:block>
+    </xsl:if>
+
+    <xsl:apply-templates select="$alphabetical[count(.|key('letter',
+                                 translate(substring(&primary;, 1, 1),
+                                           &lowercase;,&uppercase;))
+                                           [&scope;][1]) = 1]"
+                         mode="index-div-basic">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+    </xsl:apply-templates>
+  </fo:block>
+</xsl:template>
+
+<!-- This template not used if fo/autoidx-kosek.xsl is imported -->
+<xsl:template name="generate-kosek-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="contains($vendor, 'libxslt')">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+      <xsl:text>work with the xsltproc XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+
+  <xsl:if test="$exsl.node.set.available = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the </xsl:text>
+      <xsl:text>exslt:node-set() function. Use a processor that </xsl:text>
+      <xsl:text>has it, or use a different index method.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="$kosek.imported = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the&#xA;</xsl:text>
+      <xsl:text>kosek index extensions be imported:&#xA;</xsl:text>
+      <xsl:text>  xsl:import href="fo/autoidx-kosek.xsl"</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+</xsl:template>
+
+
+<!-- This template not used if fo/autoidx-kimber.xsl is imported -->
+<xsl:template name="generate-kimber-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="not(contains($vendor, 'SAXON '))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+      <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="$kimber.imported = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the&#xA;</xsl:text>
+      <xsl:text>kimber index extensions be imported:&#xA;</xsl:text>
+      <xsl:text>  xsl:import href="fo/autoidx-kimber.xsl"</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-basic">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key"
+                select="translate(substring(&primary;, 1, 1),
+                         &lowercase;,&uppercase;)"/>
+
+  <xsl:if test="key('letter', $key)[&scope;]
+                [count(.|key('primary', &primary;)[&scope;][1]) = 1]">
+    <fo:block>
+      <xsl:if test="contains(concat(&lowercase;, &uppercase;), $key)">
+        <xsl:call-template name="indexdiv.title">
+          <xsl:with-param name="titlecontent">
+            <xsl:value-of select="translate($key, &lowercase;, &uppercase;)"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:block xsl:use-attribute-sets="index.entry.properties">
+        <xsl:apply-templates select="key('letter', $key)[&scope;]
+                                     [count(.|key('primary', &primary;)
+                                     [&scope;][1])=1]"
+                             mode="index-primary">
+          <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+        </xsl:apply-templates>
+      </fo:block>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-symbol-div">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key"
+                select="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
+
+  <fo:block xsl:use-attribute-sets="index.entry.properties">
+    <xsl:apply-templates select="key('letter', $key)[&scope;][count(.|key('primary', &primary;)[&scope;][1]) = 1]"
+                         mode="index-primary">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+    </xsl:apply-templates>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-primary">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="&primary;"/>
+  <xsl:variable name="refs" select="key('primary', $key)[&scope;]"/>
+
+  <xsl:variable name="term.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.term.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="range.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.range.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="number.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.number.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <fo:block>
+    <xsl:if test="$axf.extensions != 0">
+      <xsl:attribute name="axf:suppress-duplicate-page-number">true</xsl:attribute>
+    </xsl:if>
+
+    <xsl:for-each select="$refs/primary">
+      <xsl:if test="@id or @xml:id">
+        <fo:inline id="{(@id|@xml:id)[1]}"/>
+      </xsl:if>
+    </xsl:for-each>
+
+    <xsl:value-of select="primary"/>
+
+    <xsl:choose>
+      <xsl:when test="$xep.extensions != 0">
+        <xsl:if test="$refs[not(see) and not(secondary)]">
+          <xsl:copy-of select="$term.separator"/>
+          <xsl:variable name="primary" select="&primary;"/>
+          <xsl:variable name="primary.significant" select="concat(&primary;, $significant.flag)"/>
+          <rx:page-index list-separator="{$number.separator}"
+                         range-separator="{$range.separator}">
+            <xsl:if test="$refs[@significance='preferred'][not(see) and not(secondary)]">
+              <rx:index-item xsl:use-attribute-sets="index.preferred.page.properties xep.index.item.properties"
+                ref-key="{$primary.significant}"/>
+            </xsl:if>
+            <xsl:if test="$refs[not(@significance) or @significance!='preferred'][not(see) and not(secondary)]">
+              <rx:index-item xsl:use-attribute-sets="xep.index.item.properties"
+                ref-key="{$primary}"/>
+            </xsl:if>
+          </rx:page-index>        
+        </xsl:if>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:variable name="page-number-citations">
+          <xsl:for-each select="$refs[not(see) 
+                                and not(secondary)]">
+            <xsl:apply-templates select="." mode="reference">
+              <xsl:with-param name="scope" select="$scope"/>
+              <xsl:with-param name="role" select="$role"/>
+              <xsl:with-param name="type" select="$type"/>
+              <xsl:with-param name="position" select="position()"/>
+            </xsl:apply-templates>
+          </xsl:for-each>
+        </xsl:variable>
+
+        <xsl:choose>
+          <xsl:when test="$passivetex.extensions != '0'">
+            <fotex:sort xmlns:fotex="http://www.tug.org/fotex">
+              <xsl:copy-of select="$page-number-citations"/>
+            </fotex:sort>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:copy-of select="$page-number-citations"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$refs[not(secondary)]/*[self::see]">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &sep;, &sep;, see))[&scope;][1])]"
+                           mode="index-see">
+         <xsl:with-param name="scope" select="$scope"/>
+         <xsl:with-param name="role" select="$role"/>
+         <xsl:with-param name="type" select="$type"/>
+         <xsl:sort select="translate(see, &lowercase;, &uppercase;)"/>
+      </xsl:apply-templates>
+    </xsl:if>
+
+  </fo:block>
+
+  <xsl:if test="$refs/secondary or $refs[not(secondary)]/*[self::seealso]">
+    <fo:block start-indent="1pc">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &sep;, &sep;, seealso))[&scope;][1])]"
+                           mode="index-seealso">
+         <xsl:with-param name="scope" select="$scope"/>
+         <xsl:with-param name="role" select="$role"/>
+         <xsl:with-param name="type" select="$type"/>
+         <xsl:sort select="translate(seealso, &lowercase;, &uppercase;)"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates select="$refs[secondary and count(.|key('secondary', concat($key, &sep;, &secondary;))[&scope;][1]) = 1]"
+                           mode="index-secondary">
+       <xsl:with-param name="scope" select="$scope"/>
+       <xsl:with-param name="role" select="$role"/>
+       <xsl:with-param name="type" select="$type"/>
+       <xsl:sort select="translate(&secondary;, &lowercase;, &uppercase;)"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-secondary">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;)"/>
+  <xsl:variable name="refs" select="key('secondary', $key)[&scope;]"/>
+
+  <xsl:variable name="term.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.term.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="range.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.range.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="number.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.number.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <fo:block>
+    <xsl:if test="$axf.extensions != 0">
+      <xsl:attribute name="axf:suppress-duplicate-page-number">true</xsl:attribute>
+    </xsl:if>
+
+    <xsl:for-each select="$refs/secondary">
+      <xsl:if test="@id or @xml:id">
+        <fo:inline id="{(@id|@xml:id)[1]}"/>
+      </xsl:if>
+    </xsl:for-each>
+
+    <xsl:value-of select="secondary"/>
+
+    <xsl:choose>
+      <xsl:when test="$xep.extensions != 0">
+        <xsl:if test="$refs[not(see) and not(tertiary)]">
+          <xsl:copy-of select="$term.separator"/>
+          <xsl:variable name="primary" select="&primary;"/>
+          <xsl:variable name="secondary" select="&secondary;"/>
+          <xsl:variable name="primary.significant" select="concat(&primary;, $significant.flag)"/>
+          <rx:page-index list-separator="{$number.separator}"
+                         range-separator="{$range.separator}">
+            <xsl:if test="$refs[@significance='preferred'][not(see) and not(tertiary)]">
+              <rx:index-item xsl:use-attribute-sets="index.preferred.page.properties xep.index.item.properties">
+                <xsl:attribute name="ref-key">
+                  <xsl:value-of select="$primary.significant"/>
+                  <xsl:text>, </xsl:text>
+                  <xsl:value-of select="$secondary"/>
+                </xsl:attribute>
+              </rx:index-item>
+            </xsl:if>
+            <xsl:if test="$refs[not(@significance) or @significance!='preferred'][not(see) and not(tertiary)]">
+              <rx:index-item xsl:use-attribute-sets="xep.index.item.properties">
+                <xsl:attribute name="ref-key">
+                  <xsl:value-of select="$primary"/>
+                  <xsl:text>, </xsl:text>
+                  <xsl:value-of select="$secondary"/>
+                </xsl:attribute>
+              </rx:index-item>
+            </xsl:if>
+          </rx:page-index>
+        </xsl:if>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:variable name="page-number-citations">
+          <xsl:for-each select="$refs[not(see) 
+                                and not(tertiary)]">
+            <xsl:apply-templates select="." mode="reference">
+              <xsl:with-param name="scope" select="$scope"/>
+              <xsl:with-param name="role" select="$role"/>
+              <xsl:with-param name="type" select="$type"/>
+              <xsl:with-param name="position" select="position()"/>
+            </xsl:apply-templates>
+          </xsl:for-each>
+        </xsl:variable>
+
+        <xsl:choose>
+          <xsl:when test="$passivetex.extensions != '0'">
+            <fotex:sort xmlns:fotex="http://www.tug.org/fotex">
+              <xsl:copy-of select="$page-number-citations"/>
+            </fotex:sort>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:copy-of select="$page-number-citations"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$refs[not(tertiary)]/*[self::see]">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, see))[&scope;][1])]"
+                           mode="index-see">
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+        <xsl:sort select="translate(see, &lowercase;, &uppercase;)"/>
+      </xsl:apply-templates>
+    </xsl:if>
+
+  </fo:block>
+
+  <xsl:if test="$refs/tertiary or $refs[not(tertiary)]/*[self::seealso]">
+    <fo:block start-indent="2pc">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, seealso))[&scope;][1])]"
+                           mode="index-seealso">
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+          <xsl:sort select="translate(seealso, &lowercase;, &uppercase;)"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates select="$refs[tertiary and count(.|key('tertiary', concat($key, &sep;, &tertiary;))[&scope;][1]) = 1]" 
+                           mode="index-tertiary">
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+          <xsl:sort select="translate(&tertiary;, &lowercase;, &uppercase;)"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-tertiary">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+  <xsl:variable name="refs" select="key('tertiary', $key)[&scope;]"/>
+
+  <xsl:variable name="term.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.term.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="range.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.range.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="number.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.number.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <fo:block>
+    <xsl:if test="$axf.extensions != 0">
+      <xsl:attribute name="axf:suppress-duplicate-page-number">true</xsl:attribute>
+    </xsl:if>
+
+    <xsl:for-each select="$refs/tertiary">
+      <xsl:if test="@id or @xml:id">
+        <fo:inline id="{(@id|@xml:id)[1]}"/>
+      </xsl:if>
+    </xsl:for-each>
+
+    <xsl:value-of select="tertiary"/>
+
+    <xsl:choose>
+      <xsl:when test="$xep.extensions != 0">
+        <xsl:if test="$refs[not(see)]">
+          <xsl:copy-of select="$term.separator"/>
+          <xsl:variable name="primary" select="&primary;"/>
+          <xsl:variable name="secondary" select="&secondary;"/>
+          <xsl:variable name="tertiary" select="&tertiary;"/>
+          <xsl:variable name="primary.significant" select="concat(&primary;, $significant.flag)"/>
+          <rx:page-index list-separator="{$number.separator}"
+                         range-separator="{$range.separator}">
+            <xsl:if test="$refs[@significance='preferred'][not(see)]">
+              <rx:index-item xsl:use-attribute-sets="index.preferred.page.properties xep.index.item.properties">
+                <xsl:attribute name="ref-key">
+                  <xsl:value-of select="$primary.significant"/>
+                  <xsl:text>, </xsl:text>
+                  <xsl:value-of select="$secondary"/>
+                  <xsl:text>, </xsl:text>
+                  <xsl:value-of select="$tertiary"/>
+                </xsl:attribute>
+              </rx:index-item>
+            </xsl:if>
+            <xsl:if test="$refs[not(@significance) or @significance!='preferred'][not(see)]">
+              <rx:index-item xsl:use-attribute-sets="xep.index.item.properties">
+                <xsl:attribute name="ref-key">
+                  <xsl:value-of select="$primary"/>
+                  <xsl:text>, </xsl:text>
+                  <xsl:value-of select="$secondary"/>
+                  <xsl:text>, </xsl:text>
+                  <xsl:value-of select="$tertiary"/>
+                </xsl:attribute>
+              </rx:index-item>
+            </xsl:if>
+          </rx:page-index>
+        </xsl:if>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:variable name="page-number-citations">
+          <xsl:for-each select="$refs[not(see)]">
+            <xsl:apply-templates select="." mode="reference">
+              <xsl:with-param name="scope" select="$scope"/>
+              <xsl:with-param name="role" select="$role"/>
+              <xsl:with-param name="type" select="$type"/>
+              <xsl:with-param name="position" select="position()"/>
+            </xsl:apply-templates>
+          </xsl:for-each>
+        </xsl:variable>
+
+        <xsl:choose>
+          <xsl:when test="$passivetex.extensions != '0'">
+            <fotex:sort xmlns:fotex="http://www.tug.org/fotex">
+              <xsl:copy-of select="$page-number-citations"/>
+            </fotex:sort>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:copy-of select="$page-number-citations"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$refs/see">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see))[&scope;][1])]"
+                           mode="index-see">
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+        <xsl:sort select="translate(see, &lowercase;, &uppercase;)"/>
+      </xsl:apply-templates>
+    </xsl:if>
+
+  </fo:block>
+
+  <xsl:if test="$refs/seealso">
+    <fo:block>
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso))[&scope;][1])]"
+                           mode="index-seealso">
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+        <xsl:sort select="translate(seealso, &lowercase;, &uppercase;)"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="reference">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="position" select="0"/>
+  <xsl:param name="separator" select="''"/>
+
+  <xsl:variable name="term.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.term.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="range.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.range.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="number.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.number.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$separator != ''">
+      <xsl:value-of select="$separator"/>
+    </xsl:when>
+    <xsl:when test="$position = 1">
+      <xsl:value-of select="$term.separator"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$number.separator"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="@zone and string(@zone)">
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="normalize-space(@zone)"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="ancestor::*[contains(local-name(),'info') and not(starts-with(local-name(),'info'))]">
+      <xsl:call-template name="info.reference">
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id"/>
+      </xsl:variable>
+
+      <fo:basic-link internal-destination="{$id}"
+                     xsl:use-attribute-sets="index.page.number.properties">
+        <fo:page-number-citation ref-id="{$id}"/>
+      </fo:basic-link>
+
+      <xsl:if test="key('endofrange', $id)[&scope;]">
+        <xsl:apply-templates select="key('endofrange', $id)[&scope;][last()]"
+                             mode="reference">
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+          <xsl:with-param name="separator" select="$range.separator"/>
+        </xsl:apply-templates>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="reference">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="zones"/>
+
+  <xsl:variable name="number.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.number.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="contains($zones, ' ')">
+      <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
+      <xsl:variable name="target" select="key('id', $zone)"/>
+
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id">
+           <xsl:with-param name="object" select="$target[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <fo:basic-link internal-destination="{$id}"
+                     xsl:use-attribute-sets="index.page.number.properties">
+        <fo:page-number-citation ref-id="{$id}"/>
+      </fo:basic-link>
+
+      <xsl:if test="$passivetex.extensions = '0'">
+        <xsl:copy-of select="$number.separator"/>
+      </xsl:if>
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="substring-after($zones, ' ')"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="zone" select="$zones"/>
+      <xsl:variable name="target" select="key('id', $zone)"/>
+
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$target[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <fo:basic-link internal-destination="{$id}"
+                     xsl:use-attribute-sets="index.page.number.properties">
+        <fo:page-number-citation ref-id="{$id}"/>
+      </fo:basic-link>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="info.reference">
+  <!-- This is not perfect. It doesn't treat indexterm inside info element as a range covering whole parent of info.
+       It also not work when there is no ID generated for parent element. But it works in the most common cases. -->
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="target" select="(ancestor::appendix|ancestor::article|ancestor::bibliography|ancestor::book|
+                                       ancestor::chapter|ancestor::glossary|ancestor::part|ancestor::preface|
+                                       ancestor::refentry|ancestor::reference|ancestor::refsect1|ancestor::refsect2|
+                                       ancestor::refsect3|ancestor::refsection|ancestor::refsynopsisdiv|
+                                       ancestor::sect1|ancestor::sect2|ancestor::sect3|ancestor::sect4|ancestor::sect5|
+                                       ancestor::section|ancestor::setindex|ancestor::set|ancestor::sidebar|ancestor::mediaobject)[&scope;]"/>
+  
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$target[position() = last()]"/>
+    </xsl:call-template>
+  </xsl:variable>
+  
+  <fo:basic-link internal-destination="{$id}"
+                 xsl:use-attribute-sets="index.page.number.properties">
+    <fo:page-number-citation ref-id="{$id}"/>
+  </fo:basic-link>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-see">
+   <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+   <fo:inline>
+     <xsl:text> (</xsl:text>
+     <xsl:call-template name="gentext">
+       <xsl:with-param name="key" select="'see'"/>
+     </xsl:call-template>
+     <xsl:text> </xsl:text>
+     <xsl:value-of select="see"/>
+     <xsl:text>)</xsl:text>
+   </fo:inline>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-seealso">
+   <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:for-each select="seealso">
+    <xsl:sort select="translate(., &lowercase;, &uppercase;)"/>
+    <fo:block>
+      <xsl:text>(</xsl:text>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'seealso'"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="."/>
+      <xsl:text>)</xsl:text>
+    </fo:block>
+  </xsl:for-each>
+
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="generate-index-markup">
+  <xsl:param name="scope" select="(ancestor::book|/)[last()]"/>
+  <xsl:param name="role" select="@role"/>
+  <xsl:param name="type" select="@type"/>
+
+  <xsl:variable name="terms" select="$scope//indexterm[count(.|key('letter',
+                                     translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;))[&scope;][1]) = 1]"/>
+  <xsl:variable name="alphabetical"
+                select="$terms[contains(concat(&lowercase;, &uppercase;),
+                                        substring(&primary;, 1, 1))]"/>
+  <xsl:variable name="others" select="$terms[not(contains(concat(&lowercase;,
+                                                 &uppercase;),
+                                             substring(&primary;, 1, 1)))]"/>
+
+  <xsl:text>&lt;index&gt;&#10;</xsl:text>
+  <xsl:if test="$others">
+    <xsl:text>&#10;&lt;indexdiv&gt;&#10;</xsl:text>
+    <xsl:text>&lt;title&gt;</xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'index symbols'"/>
+    </xsl:call-template>
+    <xsl:text>&lt;/title&gt;&#10;</xsl:text>
+    <xsl:apply-templates select="$others[count(.|key('primary',
+                                 &primary;)[&scope;][1]) = 1]"
+                         mode="index-symbol-div-markup">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+    </xsl:apply-templates>
+    <xsl:text>&lt;/indexdiv&gt;&#10;</xsl:text>
+  </xsl:if>
+
+  <xsl:apply-templates select="$alphabetical[count(.|key('letter',
+                               translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;))[&scope;][1]) = 1]"
+                       mode="index-div-markup">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+  </xsl:apply-templates>
+  <xsl:text>&lt;/index&gt;&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="*" mode="index-markup">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:text>&lt;</xsl:text>
+  <xsl:value-of select="local-name(.)"/>
+  <xsl:text>&gt;&#10;</xsl:text>
+  <xsl:apply-templates mode="index-markup">
+    <xsl:with-param name="scope" select="$scope"/>
+    <xsl:with-param name="role" select="$role"/>
+    <xsl:with-param name="type" select="$type"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-markup">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:variable name="key" select="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
+  <xsl:text>&#10;&lt;indexdiv&gt;&#10;</xsl:text>
+  <xsl:text>&lt;title&gt;</xsl:text>
+  <xsl:value-of select="translate($key, &lowercase;, &uppercase;)"/>
+  <xsl:text>&lt;/title&gt;&#10;</xsl:text>
+
+  <xsl:apply-templates select="key('letter', $key)[&scope;][count(.|key('primary', &primary;)[&scope;][1]) = 1]"
+                       mode="index-primary-markup">
+    <xsl:with-param name="scope" select="$scope"/>
+    <xsl:with-param name="role" select="$role"/>
+    <xsl:with-param name="type" select="$type"/>
+    <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+  </xsl:apply-templates>
+  <xsl:text>&lt;/indexdiv&gt;&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-symbol-div-markup">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:variable name="key" select="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
+
+  <xsl:apply-templates select="key('letter', $key)[&scope;][count(.|key('primary', &primary;)[&scope;][1]) = 1]"
+                       mode="index-primary-markup">
+    <xsl:with-param name="scope" select="$scope"/>
+    <xsl:with-param name="role" select="$role"/>
+    <xsl:with-param name="type" select="$type"/>
+    <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-primary-markup">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:variable name="key" select="&primary;"/>
+  <xsl:variable name="refs" select="key('primary', $key)[&scope;]"/>
+  <xsl:variable name="pages" select="$refs[not(see) and not(seealso)]"/>
+
+  <xsl:text>&#10;&lt;indexentry&gt;&#10;</xsl:text>
+  <xsl:text>&lt;primaryie&gt;</xsl:text>
+  <xsl:text>&lt;phrase&gt;</xsl:text>
+  <xsl:call-template name="escape-text">
+    <xsl:with-param name="text" select="string(primary)"/>
+  </xsl:call-template>
+  <xsl:text>&lt;/phrase&gt;</xsl:text>
+  <xsl:if test="$pages">,</xsl:if>
+  <xsl:text>&#10;</xsl:text>
+
+  <xsl:for-each select="$pages">
+    <xsl:apply-templates select="." mode="reference-markup">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+    </xsl:apply-templates>
+  </xsl:for-each>
+
+  <xsl:text>&lt;/primaryie&gt;&#10;</xsl:text>
+
+  <xsl:if test="$refs/secondary or $refs[not(secondary)]/*[self::see or self::seealso]">
+    <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &sep;, &sep;, see))[&scope;][1])]"
+                         mode="index-see-markup">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(see, &lowercase;, &uppercase;)"/>
+    </xsl:apply-templates>
+
+    <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &sep;, &sep;, seealso))[&scope;][1])]"
+                         mode="index-seealso-markup">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(seealso, &lowercase;, &uppercase;)"/>
+    </xsl:apply-templates>
+
+    <xsl:apply-templates select="$refs[secondary and count(.|key('secondary', concat($key, &sep;, &secondary;))[&scope;][1]) = 1]" 
+                         mode="index-secondary-markup">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(&secondary;, &lowercase;, &uppercase;)"/>
+    </xsl:apply-templates>
+  </xsl:if>
+  <xsl:text>&lt;/indexentry&gt;&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-secondary-markup">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;)"/>
+  <xsl:variable name="refs" select="key('secondary', $key)[&scope;]"/>
+  <xsl:variable name="pages" select="$refs[not(see) and not(seealso)]"/>
+
+  <xsl:text>&lt;secondaryie&gt;</xsl:text>
+  <xsl:text>&lt;phrase&gt;</xsl:text>
+  <xsl:call-template name="escape-text">
+    <xsl:with-param name="text" select="string(secondary)"/>
+  </xsl:call-template>
+  <xsl:text>&lt;/phrase&gt;</xsl:text>
+  <xsl:if test="$pages">,</xsl:if>
+  <xsl:text>&#10;</xsl:text>
+
+  <xsl:for-each select="$pages">
+    <xsl:apply-templates select="." mode="reference-markup">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+    </xsl:apply-templates>
+  </xsl:for-each>
+
+  <xsl:text>&lt;/secondaryie&gt;&#10;</xsl:text>
+
+  <xsl:if test="$refs/tertiary or $refs[not(tertiary)]/*[self::see or self::seealso]">
+    <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, see))[&scope;][1])]"
+                         mode="index-see-markup">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(see, &lowercase;, &uppercase;)"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, seealso))[&scope;][1])]"
+                         mode="index-seealso-markup">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(seealso, &lowercase;, &uppercase;)"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="$refs[tertiary and count(.|key('tertiary', concat($key, &sep;, &tertiary;))[&scope;][1]) = 1]" 
+                         mode="index-tertiary-markup">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(&tertiary;, &lowercase;, &uppercase;)"/>
+    </xsl:apply-templates>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-tertiary-markup">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+  <xsl:variable name="refs" select="key('tertiary', $key)[&scope;]"/>
+  <xsl:variable name="pages" select="$refs[not(see) and not(seealso)]"/>
+
+  <xsl:text>&lt;tertiaryie&gt;</xsl:text>
+  <xsl:text>&lt;phrase&gt;</xsl:text>
+  <xsl:call-template name="escape-text">
+    <xsl:with-param name="text" select="string(tertiary)"/>
+  </xsl:call-template>
+  <xsl:text>&lt;/phrase&gt;</xsl:text>
+  <xsl:if test="$pages">,</xsl:if>
+  <xsl:text>&#10;</xsl:text>
+
+  <xsl:for-each select="$pages">
+    <xsl:apply-templates select="." mode="reference-markup">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+    </xsl:apply-templates>
+  </xsl:for-each>
+
+  <xsl:text>&lt;/tertiaryie&gt;&#10;</xsl:text>
+
+  <xsl:variable name="see" select="$refs/see | $refs/seealso"/>
+  <xsl:if test="$see">
+    <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see))[&scope;][1])]"
+                         mode="index-see-markup">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(see, &lowercase;, &uppercase;)"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso))[&scope;][1])]"
+                         mode="index-seealso-markup">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(seealso, &lowercase;, &uppercase;)"/>
+    </xsl:apply-templates>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="reference-markup">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="@zone and string(@zone)">
+      <xsl:call-template name="reference-markup">
+        <xsl:with-param name="zones" select="normalize-space(@zone)"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id"/>
+      </xsl:variable>
+
+
+      <xsl:choose>
+        <xsl:when test="@startref and @class='endofrange'">
+          <xsl:text>&lt;phrase role="pageno"&gt;</xsl:text>
+          <xsl:text>&lt;link linkend="</xsl:text>
+          <xsl:value-of select="@startref"/>
+          <xsl:text>"&gt;</xsl:text>
+          <fo:basic-link internal-destination="{@startref}"
+                     xsl:use-attribute-sets="index.page.number.properties">
+            <fo:page-number-citation ref-id="{@startref}"/>
+            <xsl:text>-</xsl:text>
+            <fo:page-number-citation ref-id="{$id}"/>
+          </fo:basic-link>
+          <xsl:text>&lt;/link&gt;</xsl:text>
+          <xsl:text>&lt;/phrase&gt;&#10;</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>&lt;phrase role="pageno"&gt;</xsl:text>
+          <xsl:if test="$id">
+            <xsl:text>&lt;link linkend="</xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text>"&gt;</xsl:text>
+          </xsl:if>
+          <fo:basic-link internal-destination="{$id}"
+                     xsl:use-attribute-sets="index.page.number.properties">
+            <fo:page-number-citation ref-id="{$id}"/>
+          </fo:basic-link>
+          <xsl:if test="$id">
+            <xsl:text>&lt;/link&gt;</xsl:text>
+          </xsl:if>
+          <xsl:text>&lt;/phrase&gt;&#10;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="reference-markup">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="zones"/>
+  <xsl:choose>
+    <xsl:when test="contains($zones, ' ')">
+      <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
+      <xsl:variable name="target" select="key('id', $zone)[&scope;]"/>
+
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$target[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:text>&lt;phrase fole="pageno"&gt;</xsl:text>
+      <xsl:if test="$target[1]/@id or $target[1]/@xml:id">
+        <xsl:text>&lt;link linkend="</xsl:text>
+        <xsl:value-of select="$id"/>
+        <xsl:text>"&gt;</xsl:text>
+      </xsl:if>
+      <fo:basic-link internal-destination="{$id}"
+                     xsl:use-attribute-sets="index.page.number.properties">
+        <fo:page-number-citation ref-id="{$id}"/>
+      </fo:basic-link>
+      <xsl:if test="$target[1]/@id or $target[1]/@xml:id">
+        <xsl:text>&lt;/link&gt;</xsl:text>
+      </xsl:if>
+      <xsl:text>&lt;/phrase&gt;&#10;</xsl:text>
+
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="substring-after($zones, ' ')"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="zone" select="$zones"/>
+      <xsl:variable name="target" select="key('id', $zone)[&scope;]"/>
+
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$target[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:text>&lt;phrase role="pageno"&gt;</xsl:text>
+      <xsl:if test="$target[1]/@id or target[1]/@xml:id">
+        <xsl:text>&lt;link linkend="</xsl:text>
+        <xsl:value-of select="$id"/>
+        <xsl:text>"&gt;</xsl:text>
+      </xsl:if>
+      <fo:basic-link internal-destination="{$id}"
+                     xsl:use-attribute-sets="index.page.number.properties">
+        <fo:page-number-citation ref-id="{$id}"/>
+      </fo:basic-link>
+      <xsl:if test="$target[1]/@id or target[1]/@xml:id">
+        <xsl:text>&lt;/link&gt;</xsl:text>
+      </xsl:if>
+      <xsl:text>&lt;/phrase&gt;&#10;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-see-markup">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <fo:block>
+    <xsl:text>&lt;seeie&gt;</xsl:text>
+    <xsl:text>&lt;phrase&gt;</xsl:text>
+    <xsl:call-template name="escape-text">
+      <xsl:with-param name="text" select="string(see)"/>
+    </xsl:call-template>
+    <xsl:text>&lt;/phrase&gt;</xsl:text>
+    <xsl:text>&lt;/seeie&gt;&#10;</xsl:text>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-seealso-markup">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <fo:block>
+    <xsl:text>&lt;seealsoie&gt;</xsl:text>
+    <xsl:text>&lt;phrase&gt;</xsl:text>
+    <xsl:call-template name="escape-text">
+      <xsl:with-param name="text" select="string(seealso)"/>
+    </xsl:call-template>
+    <xsl:text>&lt;/phrase&gt;</xsl:text>
+    <xsl:text>&lt;/seealsoie&gt;&#10;</xsl:text>
+  </fo:block>
+</xsl:template>
+
+<xsl:template name="escape-text">
+  <xsl:param name="text" select="''"/>
+
+  <xsl:variable name="ltpos" select="substring-before($text, '&lt;')"/>
+  <xsl:variable name="amppos" select="substring-before($text, '&amp;')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($text,'&lt;') and contains($text, '&amp;')
+                    and string-length($ltpos) &lt; string-length($amppos)">
+      <xsl:value-of select="$ltpos"/>
+      <xsl:text>&amp;lt;</xsl:text>
+      <xsl:call-template name="escape-text">
+        <xsl:with-param name="text" select="substring-after($text, '&lt;')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="contains($text,'&lt;') and contains($text, '&amp;')
+                    and string-length($amppos) &lt; string-length($ltpos)">
+      <xsl:value-of select="$amppos"/>
+      <xsl:text>&amp;amp;</xsl:text>
+      <xsl:call-template name="escape-text">
+        <xsl:with-param name="text" select="substring-after($text, '&amp;')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="contains($text, '&lt;')">
+      <xsl:value-of select="$ltpos"/>
+      <xsl:text>&amp;lt;</xsl:text>
+      <xsl:call-template name="escape-text">
+        <xsl:with-param name="text" select="substring-after($text, '&lt;')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="contains($text, '&amp;')">
+      <xsl:value-of select="$amppos"/>
+      <xsl:text>&amp;amp;</xsl:text>
+      <xsl:call-template name="escape-text">
+        <xsl:with-param name="text" select="substring-after($text, '&amp;')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:value-of select="$text"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="index.separator">
+  <xsl:param name="key" select="''"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$key = 'index.term.separator'">
+      <xsl:choose>
+        <!-- Use the override if not blank -->
+        <xsl:when test="$index.term.separator != ''">
+          <xsl:copy-of select="$index.term.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="lang" select="$lang"/>
+            <xsl:with-param name="context">index</xsl:with-param>
+            <xsl:with-param name="name">term-separator</xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$key = 'index.number.separator'">
+      <xsl:choose>
+        <!-- Use the override if not blank -->
+        <xsl:when test="$index.number.separator != ''">
+          <xsl:copy-of select="$index.number.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="lang" select="$lang"/>
+            <xsl:with-param name="context">index</xsl:with-param>
+            <xsl:with-param name="name">number-separator</xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$key = 'index.range.separator'">
+      <xsl:choose>
+        <!-- Use the override if not blank -->
+        <xsl:when test="$index.range.separator != ''">
+          <xsl:copy-of select="$index.range.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="lang" select="$lang"/>
+            <xsl:with-param name="context">index</xsl:with-param>
+            <xsl:with-param name="name">range-separator</xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/autotoc.xsl b/applications/content/template/docbook/fo/autotoc.xsl
new file mode 100644
index 0000000..04e4406
--- /dev/null
+++ b/applications/content/template/docbook/fo/autotoc.xsl
@@ -0,0 +1,960 @@
+<?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:axf="http://www.antennahouse.com/names/XSL/Extensions"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="set.toc">
+
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="nodes" select="book|set|setindex"/>
+
+  <xsl:if test="$nodes">
+    <fo:block id="toc...{$id}"
+              xsl:use-attribute-sets="toc.margin.properties">
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:attribute name="axf:outline-level">1</xsl:attribute>
+        <xsl:attribute name="axf:outline-expand">false</xsl:attribute>
+        <xsl:attribute name="axf:outline-title">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'TableofContents'"/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:call-template name="table.of.contents.titlepage"/>
+      <xsl:apply-templates select="$nodes" mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="division.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="nodes"
+                select="$toc-context/part
+                        |$toc-context/reference
+                        |$toc-context/preface
+                        |$toc-context/chapter
+                        |$toc-context/appendix
+                        |$toc-context/article
+                        |$toc-context/topic
+                        |$toc-context/bibliography
+                        |$toc-context/glossary
+                        |$toc-context/index"/>
+
+  <xsl:if test="$nodes">
+    <fo:block id="toc...{$cid}"
+              xsl:use-attribute-sets="toc.margin.properties">
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:attribute name="axf:outline-level">1</xsl:attribute>
+        <xsl:attribute name="axf:outline-expand">false</xsl:attribute>
+        <xsl:attribute name="axf:outline-title">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'TableofContents'"/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:if test="$toc.title.p">
+        <xsl:call-template name="table.of.contents.titlepage"/>
+      </xsl:if>
+      <xsl:apply-templates select="$nodes" mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="nodes" select="section|sect1|refentry
+                                     |article|topic|bibliography|glossary
+                                     |qandaset[$qanda.in.toc != 0]
+                                     |appendix|index"/>
+  <xsl:if test="$nodes">
+    <fo:block id="toc...{$id}"
+              xsl:use-attribute-sets="toc.margin.properties">
+      <xsl:if test="$toc.title.p">
+        <xsl:call-template name="table.of.contents.titlepage"/>
+      </xsl:if>
+      <xsl:apply-templates select="$nodes" mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.toc.separator">
+  <!-- Customize to output something between
+       component.toc and first output -->
+</xsl:template>
+
+<xsl:template name="section.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="nodes"
+                select="section|sect1|sect2|sect3|sect4|sect5|refentry
+                        |qandaset[$qanda.in.toc != 0]
+                        |bridgehead[$bridgehead.in.toc != 0]"/>
+
+  <xsl:variable name="level">
+    <xsl:call-template name="section.level"/>
+  </xsl:variable>
+
+  <xsl:if test="$nodes">
+    <fo:block id="toc...{$id}"
+              xsl:use-attribute-sets="toc.margin.properties">
+
+      <xsl:if test="$toc.title.p">
+        <xsl:call-template name="section.heading">
+          <xsl:with-param name="level" select="$level + 1"/>
+          <xsl:with-param name="title">
+            <fo:block space-after="0.5em">
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key" select="'TableofContents'"/>
+              </xsl:call-template>
+            </fo:block>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+
+      <xsl:apply-templates select="$nodes" mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="section.toc.separator">
+  <!-- Customize to output something between
+       section.toc and first output -->
+</xsl:template>
+<!-- ==================================================================== -->
+
+<xsl:template name="toc.line">
+  <xsl:param name="toc-context" select="NOTANODE"/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="label">
+    <xsl:apply-templates select="." mode="label.markup"/>
+  </xsl:variable>
+
+  <fo:block xsl:use-attribute-sets="toc.line.properties">
+    <fo:inline keep-with-next.within-line="always">
+      <fo:basic-link internal-destination="{$id}">
+        <xsl:if test="$label != ''">
+          <xsl:copy-of select="$label"/>
+          <xsl:value-of select="$autotoc.label.separator"/>
+        </xsl:if>
+        <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+      </fo:basic-link>
+    </fo:inline>
+    <fo:inline keep-together.within-line="always">
+      <xsl:text> </xsl:text>
+      <fo:leader leader-pattern="dots"
+                 leader-pattern-width="3pt"
+                 leader-alignment="reference-area"
+                 keep-with-next.within-line="always"/>
+      <xsl:text> </xsl:text> 
+      <fo:basic-link internal-destination="{$id}">
+        <fo:page-number-citation ref-id="{$id}"/>
+      </fo:basic-link>
+    </fo:inline>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="qandaset.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="nodes" select="qandadiv|qandaentry"/>
+
+  <xsl:if test="$nodes">
+    <fo:block id="toc...{$id}"
+              xsl:use-attribute-sets="toc.margin.properties">
+      <xsl:if test="$toc.title.p">
+        <xsl:call-template name="table.of.contents.titlepage"/>
+      </xsl:if>
+      <xsl:apply-templates select="$nodes" mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="qandaset.toc.separator">
+  <!-- Customize to output something between
+       qandaset.toc and first output -->
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+
+  <xsl:variable name="nodes" select="qandadiv|qandaentry"/>
+
+  <xsl:if test="$nodes">
+    <fo:block id="toc.{$cid}.{$id}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:call-template name="set.toc.indent"/>
+      </xsl:attribute>
+
+      <xsl:apply-templates select="$nodes" mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="toc">
+  <xsl:apply-templates select="question" mode="toc"/>
+</xsl:template>
+
+<xsl:template match="question" mode="toc">
+  <xsl:variable name="firstchunk">
+    <!-- Use a titleabbrev or title if available -->
+    <xsl:choose>
+      <xsl:when test="../blockinfo/titleabbrev">
+        <xsl:apply-templates select="../blockinfo/titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../blockinfo/title">
+        <xsl:apply-templates select="../blockinfo/title[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../info/titleabbrev">
+        <xsl:apply-templates select="../info/titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../titleabbrev">
+        <xsl:apply-templates select="../titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../info/title">
+        <xsl:apply-templates select="../info/title[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../title">
+        <xsl:apply-templates select="../title[1]/node()"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="(*[local-name(.)!='label'])[1]/node()"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="deflabel">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+        <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]
+                              /@defaultlabel"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$qanda.defaultlabel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="label">
+    <xsl:apply-templates select="." mode="label.markup"/>
+  </xsl:variable>
+
+  <fo:block xsl:use-attribute-sets="toc.line.properties"
+            end-indent="{$toc.indent.width}pt"
+            last-line-end-indent="-{$toc.indent.width}pt">
+    <xsl:attribute name="margin-{$direction.align.start}">3em</xsl:attribute>
+    <xsl:attribute name="text-indent">-3em</xsl:attribute>
+    <fo:inline keep-with-next.within-line="always">
+      <fo:basic-link internal-destination="{$id}">
+        <xsl:if test="$label != ''">
+          <xsl:copy-of select="$label"/>
+          <xsl:if test="$deflabel = 'number' and not(label)">
+            <xsl:value-of select="$autotoc.label.separator"/>
+          </xsl:if>
+	  <xsl:text> </xsl:text>
+        </xsl:if>
+        <xsl:copy-of select="$firstchunk"/>
+      </fo:basic-link>
+    </fo:inline>
+    <fo:inline keep-together.within-line="always">
+      <xsl:text> </xsl:text>
+      <fo:leader leader-pattern="dots"
+                 leader-pattern-width="3pt"
+                 leader-alignment="reference-area"
+                 keep-with-next.within-line="always"/>
+      <xsl:text> </xsl:text> 
+      <fo:basic-link internal-destination="{$id}">
+        <fo:page-number-citation ref-id="{$id}"/>
+      </fo:basic-link>
+    </fo:inline>
+  </fo:block>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book|setindex" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+
+  <xsl:variable name="nodes" select="glossary|bibliography|preface|chapter
+                                     |reference|part|article|topic|appendix|index"/>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:if test="$toc.max.depth > $depth.from.context
+                and $nodes">
+    <fo:block id="toc.{$cid}.{$id}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:call-template name="set.toc.indent"/>
+      </xsl:attribute>
+
+      <xsl:apply-templates select="$nodes" mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="set" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+
+  <xsl:variable name="nodes" select="set|book|setindex"/>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:if test="$toc.max.depth > $depth.from.context
+                and $nodes">
+    <fo:block id="toc.{$cid}.{$id}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:call-template name="set.toc.indent"/>
+      </xsl:attribute>
+      
+      <xsl:apply-templates select="$nodes" mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="part" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+
+  <xsl:variable name="nodes" select="chapter|appendix|preface|reference|
+                                     refentry|article|topic|index|glossary|
+                                     bibliography"/>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:if test="$toc.max.depth > $depth.from.context
+                and $nodes">
+    <fo:block id="toc.{$cid}.{$id}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:call-template name="set.toc.indent"/>
+      </xsl:attribute>
+      
+      <xsl:apply-templates select="$nodes" mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="reference" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+
+  <xsl:if test="$toc.section.depth > 0
+                and $toc.max.depth > $depth.from.context
+                and refentry">
+    <fo:block id="toc.{$cid}.{$id}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:call-template name="set.toc.indent"/>
+      </xsl:attribute>
+              
+      <xsl:apply-templates select="refentry" mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refentry" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix|article"
+              mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+
+  <xsl:variable name="nodes" select="section|sect1
+                                     |qandaset[$qanda.in.toc != 0]
+                                     |simplesect[$simplesect.in.toc != 0]
+                                     |topic
+                                     |refentry|appendix"/>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:if test="$toc.section.depth > 0 
+                and $toc.max.depth > $depth.from.context
+                and $nodes">
+    <fo:block id="toc.{$cid}.{$id}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:call-template name="set.toc.indent"/>
+      </xsl:attribute>
+              
+      <xsl:apply-templates select="$nodes" mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect1" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:if test="$toc.section.depth > 1 
+                and $toc.max.depth > $depth.from.context
+                and sect2">
+    <fo:block id="toc.{$cid}.{$id}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:call-template name="set.toc.indent"/>
+      </xsl:attribute>
+              
+      <xsl:apply-templates select="sect2|qandaset[$qanda.in.toc != 0]" 
+                           mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect2" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+
+  <xsl:variable name="reldepth"
+                select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:if test="$toc.section.depth > 2 
+                and $toc.max.depth > $depth.from.context
+                and sect3">
+    <fo:block id="toc.{$cid}.{$id}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:call-template name="set.toc.indent">
+          <xsl:with-param name="reldepth" select="$reldepth"/>
+        </xsl:call-template>
+      </xsl:attribute>
+              
+      <xsl:apply-templates select="sect3|qandaset[$qanda.in.toc != 0]" 
+                           mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect3" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+
+  <xsl:variable name="reldepth"
+                select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:if test="$toc.section.depth > 3 
+                and $toc.max.depth > $depth.from.context
+                and sect4">
+    <fo:block id="toc.{$cid}.{$id}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:call-template name="set.toc.indent">
+          <xsl:with-param name="reldepth" select="$reldepth"/>
+        </xsl:call-template>
+      </xsl:attribute>
+              
+      <xsl:apply-templates select="sect4|qandaset[$qanda.in.toc != 0]" 
+                           mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect4" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+
+  <xsl:variable name="reldepth"
+                select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:if test="$toc.section.depth > 4 
+                and $toc.max.depth > $depth.from.context
+                and sect5">
+    <fo:block id="toc.{$cid}.{$id}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:call-template name="set.toc.indent">
+          <xsl:with-param name="reldepth" select="$reldepth"/>
+        </xsl:call-template>
+      </xsl:attribute>
+              
+      <xsl:apply-templates select="sect5|qandaset[$qanda.in.toc != 0]" 
+                           mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect5|simplesect" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="topic" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="set.toc.indent">
+  <xsl:param name="reldepth"/>
+
+  <xsl:variable name="depth">
+    <xsl:choose>
+      <xsl:when test="$reldepth != ''">
+        <xsl:value-of select="$reldepth"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="count(ancestor::*)"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$fop.extensions != 0 or $passivetex.extensions != 0">
+       <xsl:value-of select="concat($depth*$toc.indent.width, 'pt')"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="concat($toc.indent.width, 'pt')"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+
+<xsl:template match="section" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="depth" select="count(ancestor::section) + 1"/>
+  <xsl:variable name="reldepth"
+                select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:if test="$toc.section.depth &gt;= $depth">
+    <xsl:call-template name="toc.line">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+
+    <xsl:if test="$toc.section.depth > $depth 
+                  and $toc.max.depth > $depth.from.context
+                  and section">
+      <fo:block id="toc.{$cid}.{$id}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:call-template name="set.toc.indent">
+            <xsl:with-param name="reldepth" select="$reldepth"/>
+          </xsl:call-template>
+        </xsl:attribute>
+                
+        <xsl:apply-templates select="section|qandaset[$qanda.in.toc != 0]" 
+                           mode="toc">
+          <xsl:with-param name="toc-context" select="$toc-context"/>
+        </xsl:apply-templates>
+      </fo:block>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary"
+              mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="index" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:if test="* or $generate.index != 0">
+    <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="title" mode="toc">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="list.of.titles">
+  <xsl:param name="titles" select="'table'"/>
+  <xsl:param name="nodes" select=".//table"/>
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:if test="$nodes">
+    <fo:block id="lot...{$titles}...{$id}">
+      <xsl:choose>
+        <xsl:when test="$titles='table'">
+          <xsl:call-template name="list.of.tables.titlepage"/>
+        </xsl:when>
+        <xsl:when test="$titles='figure'">
+          <xsl:call-template name="list.of.figures.titlepage"/>
+        </xsl:when>
+        <xsl:when test="$titles='equation'">
+          <xsl:call-template name="list.of.equations.titlepage"/>
+        </xsl:when>
+        <xsl:when test="$titles='example'">
+          <xsl:call-template name="list.of.examples.titlepage"/>
+        </xsl:when>
+        <xsl:when test="$titles='procedure'">
+          <xsl:call-template name="list.of.procedures.titlepage"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.unknowns.titlepage"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:apply-templates select="$nodes" mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.list.of.titles">
+  <xsl:param name="titles" select="'table'"/>
+  <xsl:param name="nodes" select=".//table"/>
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:if test="$nodes">
+    <fo:block id="lot...{$titles}...{$id}">
+      <xsl:choose>
+        <xsl:when test="$titles='table'">
+          <xsl:call-template name="component.list.of.tables.titlepage"/>
+        </xsl:when>
+        <xsl:when test="$titles='figure'">
+          <xsl:call-template name="component.list.of.figures.titlepage"/>
+        </xsl:when>
+        <xsl:when test="$titles='equation'">
+          <xsl:call-template name="component.list.of.equations.titlepage"/>
+        </xsl:when>
+        <xsl:when test="$titles='example'">
+          <xsl:call-template name="component.list.of.examples.titlepage"/>
+        </xsl:when>
+        <xsl:when test="$titles='procedure'">
+          <xsl:call-template name="component.list.of.procedures.titlepage"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="component.list.of.unknowns.titlepage"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:apply-templates select="$nodes" mode="toc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation|procedure" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:call-template name="toc.line">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- qandaset handled like a section when qanda.in.toc is set -->
+<xsl:template match="qandaset" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="cid">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="depth" select="count(ancestor::section) + 1"/>
+  <xsl:variable name="reldepth"
+                select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:if test="$toc.section.depth &gt;= $depth">
+    <xsl:call-template name="toc.line">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+
+    <xsl:if test="$toc.section.depth > $depth 
+                  and $toc.max.depth > $depth.from.context
+                  and (child::qandadiv or child::qandaentry)">
+      <fo:block id="toc.{$cid}.{$id}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:call-template name="set.toc.indent">
+            <xsl:with-param name="reldepth" select="$reldepth"/>
+          </xsl:call-template>
+        </xsl:attribute>
+                
+        <xsl:apply-templates select="qandadiv|qandaentry" mode="toc">
+          <xsl:with-param name="toc-context" select="$toc-context"/>
+        </xsl:apply-templates>
+      </fo:block>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/fo/axf.xsl b/applications/content/template/docbook/fo/axf.xsl
new file mode 100644
index 0000000..0dda873
--- /dev/null
+++ b/applications/content/template/docbook/fo/axf.xsl
@@ -0,0 +1,113 @@
+<?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:axf="http://www.antennahouse.com/names/XSL/Extensions"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ******************************************************************** -->
+
+<xsl:template name="axf-document-information">
+
+    <xsl:variable name="authors" select="(//author|//editor|
+                                          //corpauthor|//authorgroup)[1]"/>
+    <xsl:if test="$authors">
+      <xsl:variable name="author">
+        <xsl:choose>
+          <xsl:when test="$authors[self::authorgroup]">
+            <xsl:call-template name="person.name.list">
+              <xsl:with-param name="person.list" 
+                 select="$authors/*[self::author|self::corpauthor|
+                               self::othercredit|self::editor]"/>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:when test="$authors[self::corpauthor]">
+            <xsl:value-of select="$authors"/>
+          </xsl:when>
+           <xsl:when test="$authors[orgname]">
+            <xsl:value-of select="$authors/orgname"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="person.name">
+              <xsl:with-param name="node" select="$authors"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:element name="axf:document-info">
+        <xsl:attribute name="name">author</xsl:attribute>
+        <xsl:attribute name="value">
+          <xsl:value-of select="normalize-space($author)"/>
+        </xsl:attribute>
+      </xsl:element>
+    </xsl:if>
+
+    <xsl:variable name="title">
+      <xsl:apply-templates select="/*[1]" mode="label.markup"/>
+      <xsl:apply-templates select="/*[1]" mode="title.markup"/>
+    </xsl:variable>
+
+    <!-- * see bug report #1465301 - mzjn -->
+    <axf:document-info name="title">
+      <xsl:attribute name="value">
+        <xsl:value-of select="normalize-space($title)"/>
+      </xsl:attribute>
+    </axf:document-info>
+
+    <xsl:if test="//keyword">
+      <xsl:element name="axf:document-info">
+        <xsl:attribute name="name">keywords</xsl:attribute>
+        <xsl:attribute name="value">
+          <xsl:for-each select="//keyword">
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:if test="position() != last()">
+              <xsl:text>, </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </xsl:element>
+    </xsl:if>
+
+    <xsl:if test="//subjectterm">
+      <xsl:element name="axf:document-info">
+        <xsl:attribute name="name">subject</xsl:attribute>
+        <xsl:attribute name="value">
+          <xsl:for-each select="//subjectterm">
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:if test="position() != last()">
+              <xsl:text>, </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </xsl:element>
+    </xsl:if>
+
+</xsl:template>
+
+<!-- These properties are added to fo:simple-page-master -->
+<xsl:template name="axf-page-master-properties">
+  <xsl:param name="page.master" select="''"/>
+
+  <xsl:if test="$crop.marks != 0">
+    <xsl:attribute name="axf:printer-marks">crop</xsl:attribute>
+    <xsl:attribute name="axf:bleed"><xsl:value-of
+                          select="$crop.mark.bleed"/></xsl:attribute>
+    <xsl:attribute name="axf:printer-marks-line-width"><xsl:value-of
+                          select="$crop.mark.width"/></xsl:attribute>
+    <xsl:attribute name="axf:crop-offset"><xsl:value-of
+                          select="$crop.mark.offset"/></xsl:attribute>
+  </xsl:if>
+
+  <xsl:call-template name="user-axf-page-master-properties">
+    <xsl:with-param name="page.master" select="$page.master"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template name="user-axf-page-master-properties">
+  <xsl:param name="page.master" select="''"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/biblio-iso690.xsl b/applications/content/template/docbook/fo/biblio-iso690.xsl
new file mode 100644
index 0000000..57aff36
--- /dev/null
+++ b/applications/content/template/docbook/fo/biblio-iso690.xsl
@@ -0,0 +1,1300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     The original code for processing bibliography in ISO690 style
+     was provided by Jana Dvorakova <jana4u@seznam.cz>
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- if biblioentry.alt.primary.seps is set to nonzero value then use alternative separators for primary responsibility - $alt.person.two.sep, $alt.person.last.sep, $alt.person.more.sep  -->
+<xsl:param name="biblioentry.alt.primary.seps" select="0"/>
+
+<!-- how many authors will be printed if there is more than three authors - set to number 1 (default value), 2 or 3 -->
+<xsl:param name="biblioentry.primary.count" select="1"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="iso690.makecitation">
+<!-- Types of resources -->
+  <xsl:choose>
+
+    <!-- SYSTEMS OF ELECTRONIC COMMUNICATION : ENTIRE MESSAGE SYSTEM -->
+    <!-- same as Monographs -->
+    <xsl:when test="./@role='messagesystem'">
+      <xsl:call-template name="iso690.monogr"/>
+    </xsl:when>
+
+    <!-- SYSTEMS OF ELECTRONIC COMMUNICATION : ELECTRONIC MESSAGES -->
+    <!-- same as Contributions to Monographs -->
+    <xsl:when test="./@role='message'">
+      <xsl:call-template name="iso690.paper.mon"/>
+    </xsl:when>
+
+    <!-- SERIALS -->
+    <xsl:when test="./@role='serial' or ./biblioid/@class='issn' or ./issn">
+      <xsl:call-template name="iso690.serial"/>
+    </xsl:when>
+
+    <!-- PARTS OF MONOGRAPHS -->
+    <xsl:when test="./@role='part' or (./bibliomisc[@role='secnum']|./bibliomisc[@role='sectitle'])">
+      <xsl:call-template name="iso690.monogr.part"/>
+    </xsl:when>
+
+    <!-- CONTRIBUTIONS TO MONOGRAPHS -->
+    <xsl:when test="./@role='contribution' or (./biblioset/@relation='part' and ./biblioset/@relation='book')">
+      <xsl:call-template name="iso690.paper.mon"/>
+    </xsl:when>
+
+    <!-- ARTICLES, ETC., IN SERIALS -->
+    <xsl:when test="./@role='article' or (./biblioset/@relation='journal' and ./biblioset/@relation='article')">
+      <xsl:call-template name="iso690.article"/>
+    </xsl:when>
+
+    <!-- PATENT DOCUMENTS -->
+    <xsl:when test="./@role='patent' or (./bibliomisc[@role='patenttype'] and ./bibliomisc[@role='patentnum'])">
+      <xsl:call-template name="iso690.patent"/>
+    </xsl:when>
+
+    <!-- MONOGRAPHS -->
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.monogr"/>
+    </xsl:otherwise>
+
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- MONOGRAPHS -->
+<xsl:template name="iso690.monogr">
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility -->
+  <xsl:call-template name="iso690.secondary"/>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition"/>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.pub"/>
+  <!-- Extent -->
+  <xsl:call-template name="iso690.extent"/>
+  <!-- Series -->
+  <xsl:call-template name="iso690.serie"/>
+  <!-- Notes -->
+  <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access -->
+  <xsl:call-template name="iso690.access"/>
+  <!-- Standard number -->
+  <xsl:call-template name="iso690.isbn"/>
+</xsl:template>
+
+<!-- SERIALS -->
+<xsl:template name="iso690.serial">
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Responsibility [nonEL] -->
+  <xsl:if test="not(./bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition">
+    <xsl:with-param name="after" select="./bibliomisc[@role='issuing']"/>
+  </xsl:call-template>
+  <!-- Issue designation (date and/or n°) [nonEL] -->
+  <xsl:if test="not(./bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.issuing"/>
+  </xsl:if>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.pub"/>
+  <!-- Series -->
+  <xsl:call-template name="iso690.serie"/>
+  <!-- Notes -->
+  <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access -->
+  <xsl:call-template name="iso690.access"/>
+  <!-- Standard number -->
+  <xsl:call-template name="iso690.issn"/>
+</xsl:template>
+
+<!-- PARTS OF MONOGRAPHS -->
+<xsl:template name="iso690.monogr.part">
+  <!-- Primary responsibility of host document -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title and Type of medium of host document -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility of host document [EL] -->
+  <xsl:if test="./bibliomisc[@role='medium']">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition">
+    <xsl:with-param name="after" select="./volumenum"/>
+  </xsl:call-template>
+  <!-- Numeration of the part [nonEL]-->
+  <xsl:if test="not(./bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.partnr"/>
+  <!-- Subordinate responsibility [nonEL] -->
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.pub"/>
+  <!-- Location within host -->
+  <xsl:call-template name="iso690.part.location"/>
+  <xsl:if test="./bibliomisc[@role='medium']">
+  <!-- Numeration within host document [EL] -->
+  <!-- Notes [EL] -->
+    <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access [EL] -->
+    <xsl:call-template name="iso690.access"/>
+  <!-- Standard number [EL] -->
+    <xsl:call-template name="iso690.isbn"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- CONTRIBUTIONS TO MONOGRAPHS -->
+<xsl:template name="iso690.paper.mon">
+<!-- Contribution -->
+  <xsl:apply-templates mode="iso690.paper.part" select="./biblioset[@relation='part']"/>
+<!-- In -->
+  <xsl:text>In </xsl:text>
+<!-- Host -->
+  <xsl:apply-templates mode="iso690.paper.book" select="./biblioset[@relation='book']"/>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.paper.part">
+<!-- Contribution -->
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title -->
+  <xsl:call-template name="iso690.title">
+    <xsl:with-param name="italic" select="0"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.paper.book">
+<!-- Host -->
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility [EL] -->
+  <xsl:if test="./bibliomisc[@role='medium']">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition"/>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template  name="iso690.paper.pub"/>
+  <!-- Numeration within host document [EL] -->
+  <!-- Location within host -->
+  <xsl:call-template name="iso690.location"/>
+  <xsl:if test="./bibliomisc[@role='medium']">
+  <!-- Notes [EL] -->
+    <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access [EL] -->
+    <xsl:call-template name="iso690.access"/>
+  <!-- Standard number [EL] -->
+    <xsl:call-template name="iso690.isbn"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ARTICLES, ETC., IN SERIALS -->
+<xsl:template name="iso690.article">
+<!-- Article -->
+  <xsl:apply-templates mode="iso690.article.art" select="./biblioset[@relation='article']"/>
+<!-- Serial -->
+  <xsl:apply-templates mode="iso690.article.jour" select="./biblioset[@relation='journal']"/>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.article.art">
+<!-- Article -->
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title -->
+  <xsl:call-template name="iso690.title">
+    <xsl:with-param name="italic" select="0"/>
+  </xsl:call-template>
+  <!-- Subordinate responsibility [nonEL] -->
+  <xsl:if test="not(../*/bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.article.jour">
+<!-- Serial -->
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition">
+    <xsl:with-param name="after" select="./pubdate[not(@role='issuing')]|./volumenum|./issuenum|./pagenums"/>
+  </xsl:call-template>
+  <!-- Number designation [EL] -->
+  <!-- Location within host -->
+  <xsl:call-template name="iso690.article.location"/>
+  <xsl:if test="./bibliomisc[@role='medium']">
+  <!-- Notes [EL] -->
+    <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access [EL] -->
+    <xsl:call-template name="iso690.access"/>
+  <!-- Standard number [EL] -->
+    <xsl:call-template name="iso690.issn"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- PATENT DOCUMENTS -->
+<xsl:template name="iso690.patent">
+  <!-- Primary responsibility (applicant) -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title of the invention -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility -->
+  <xsl:call-template name="iso690.secondary"/>
+  <!-- Notes -->
+  <xsl:call-template name="iso690.notice"/>
+  <!-- Identification -->
+  <xsl:call-template name="iso690.pat.ident"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Elements -->
+
+<!-- Primary responsibility -->
+<xsl:template name="iso690.primary">
+  <xsl:param name="primary.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./authorgroup/author|./author">
+      <xsl:call-template name="iso690.author.list">
+        <xsl:with-param name="person.list" select=".//authorgroup/author|.//author"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="./authorgroup/editor|./editor">
+      <xsl:call-template name="iso690.author.list">
+        <xsl:with-param name="person.list" select=".//authorgroup/editor|.//editor"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="./authorgroup/corpauthor|./corpauthor">
+      <xsl:call-template name="iso690.author.list">
+        <xsl:with-param name="person.list" select=".//authorgroup/corpauthor|.//corpauthor"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="(./firstname)and(./surname)">
+        <xsl:call-template name="iso690.author"/>
+        <xsl:call-template name="iso690.endsep">
+          <xsl:with-param name="text" select="string(./firstname[1])"/>
+          <xsl:with-param name="sep" select="$primary.sep"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.author.list">
+  <xsl:param name="person.list"
+             select="author|corpauthor|editor"/>
+  <xsl:param name="person.count" select="count($person.list)"/>
+  <xsl:param name="count" select="1"/>
+  <xsl:param name="group" select="./authorgroup[@role='many']"/>
+  <xsl:param name="many" select="0"/>
+
+  <xsl:param name="primary.many">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.many'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="primary.editor">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.editor'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="primary.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.sep'"/></xsl:call-template>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count &gt; $person.count"></xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$person.count &lt; 4 and not($group)">
+          <xsl:call-template name="iso690.author">
+            <xsl:with-param name="node" select="$person.list[position()=$count]"/>
+          </xsl:call-template>
+          <xsl:choose>
+            <xsl:when test="$person.count = 2 and $count = 1 and $biblioentry.alt.primary.seps != 0">
+              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.two.sep'"/></xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$person.count = 2 and $count = 1">
+              <xsl:call-template name="gentext.template">
+                <xsl:with-param name="context" select="'authorgroup'"/>
+                <xsl:with-param name="name" select="'sep2'"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$person.count &gt; 2 and $count+1 = $person.count and $biblioentry.alt.primary.seps != 0">
+              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.last.sep'"/></xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$person.count &gt; 2 and $count+1 = $person.count">
+              <xsl:call-template name="gentext.template">
+                <xsl:with-param name="context" select="'authorgroup'"/>
+                <xsl:with-param name="name" select="'seplast'"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$count &lt; $person.count and $biblioentry.alt.primary.seps != 0">
+              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.more.sep'"/></xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$count &lt; $person.count">
+              <xsl:call-template name="gentext.template">
+                <xsl:with-param name="context" select="'authorgroup'"/>
+                <xsl:with-param name="name" select="'sep'"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="($count = $person.count)">
+              <xsl:choose>
+                <xsl:when test="$many!=0">
+                  <xsl:if test="name($person.list[position()=$count])='editor'">
+                    <xsl:value-of select="$primary.editor"/>
+                  </xsl:if>
+                  <xsl:value-of select="$primary.many"/>
+                  <xsl:call-template name="iso690.endsep">
+                    <xsl:with-param name="text" select="$primary.many"/>
+                    <xsl:with-param name="sep" select="$primary.sep"/>
+                  </xsl:call-template>
+                </xsl:when>
+                <xsl:when test="name($person.list[position()=$count])='editor'">
+                  <xsl:value-of select="$primary.editor"/>
+                  <xsl:value-of select="$primary.sep"/>
+                </xsl:when>
+                <xsl:when test="name($person.list[position()=$count])='corpauthor'">
+                  <xsl:call-template name="iso690.endsep">
+                    <xsl:with-param name="text" select="string($person.list[position()=$count])"/>
+                    <xsl:with-param name="sep" select="$primary.sep"/>
+                  </xsl:call-template>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:call-template name="iso690.endsep">
+                    <xsl:with-param name="text" select="string($person.list[position()=$count]//firstname[1])"/>
+                    <xsl:with-param name="sep" select="$primary.sep"/>
+                  </xsl:call-template>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:when>
+          </xsl:choose>
+
+          <xsl:call-template name="iso690.author.list">
+            <xsl:with-param name="person.list" select="$person.list"/>
+            <xsl:with-param name="person.count" select="$person.count"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="many" select="$many"/>
+            <xsl:with-param name="group"/>
+          </xsl:call-template>
+        </xsl:when>
+
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="($biblioentry.primary.count&gt;=3) and ($person.count&gt;=3)">
+              <xsl:call-template name="iso690.author.list">
+                <xsl:with-param name="person.list" select="$person.list[1]|$person.list[2]|$person.list[3]"/>
+                <xsl:with-param name="person.count" select="3"/>
+                <xsl:with-param name="count" select="1"/>
+                <xsl:with-param name="many" select="1"/>
+                <xsl:with-param name="group"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="($biblioentry.primary.count&gt;1) and  ($person.count&gt;1)">
+              <xsl:call-template name="iso690.author.list">
+                <xsl:with-param name="person.list" select="$person.list[1]|$person.list[2]"/>
+                <xsl:with-param name="person.count" select="2"/>
+                <xsl:with-param name="count" select="1"/>
+                <xsl:with-param name="many" select="1"/>
+                <xsl:with-param name="group"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="iso690.author.list">
+                <xsl:with-param name="person.list" select="$person.list[1]"/>
+                <xsl:with-param name="person.count" select="1"/>
+                <xsl:with-param name="count" select="1"/>
+                <xsl:with-param name="many" select="1"/>
+                <xsl:with-param name="group"/>
+              </xsl:call-template>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.author">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="lastfirst.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'lastfirst.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="name($node)!='corpauthor'">
+      <fo:inline text-transform="uppercase">
+        <xsl:apply-templates mode="iso690.mode" select="$node//surname[1]"/>
+      </fo:inline>
+      <xsl:if test="$node//surname and $node//firstname">
+        <xsl:value-of select="$lastfirst.sep"/>
+      </xsl:if>
+      <xsl:apply-templates mode="iso690.mode" select="$node//firstname[1]"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:inline text-transform="uppercase">
+        <xsl:apply-templates mode="iso690.mode" select="$node"/>
+      </fo:inline>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="corpauthor|firstname|surname" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Title and Type of medium -->
+<xsl:template name="iso690.title">
+  <xsl:param name="medium" select="./bibliomisc[@role='medium']"/>
+  <xsl:param name="italic" select="1"/>
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'title.sep'"/></xsl:call-template>
+  </xsl:param>
+
+  <xsl:apply-templates mode="iso690.mode" select="./title">
+    <xsl:with-param name="medium" select="$medium"/>
+    <xsl:with-param name="italic" select="$italic"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="title" mode="iso690.mode">
+  <xsl:param name="medium"/>
+  <xsl:param name="italic" select="1"/>
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'title.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="medium1">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'medium1'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="medium2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'medium2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="$italic=1">
+      <xsl:call-template name="iso690.italic.title"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.make.title"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="$medium">
+    <xsl:value-of select="$medium1"/>
+    <xsl:apply-templates mode="iso690.mode" select="$medium"/>
+    <xsl:value-of select="$medium2"/>
+  </xsl:if>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="concat(string(.),string(../subtitle))"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="iso690.italic.title">
+  <fo:inline font-style="italic">
+    <xsl:call-template name="iso690.make.title"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="iso690.make.title">
+  <xsl:param name="submaintitle.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'submaintitle.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:if test="../subtitle">
+    <xsl:value-of select="$submaintitle.sep"/>
+    <xsl:apply-templates mode="iso690.mode" select="../subtitle"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='medium']" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Subordinate responsibility -->
+<xsl:template name="iso690.secondary">
+  <xsl:param name="secondary.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'secondary.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="secondary.person.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'secondary.person.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:for-each select="./bibliomisc[@role='secondary']">
+    <xsl:apply-templates mode="iso690.mode" select="."/>
+    <xsl:choose>
+      <xsl:when test="position()=count(../bibliomisc[@role='secondary'])">
+        <xsl:call-template name="iso690.endsep">
+          <xsl:with-param name="text" select="string(.)"/>
+          <xsl:with-param name="sep" select="$secondary.sep"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$secondary.person.sep"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='secondary']" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Edition -->
+<xsl:template name="iso690.edition">
+  <xsl:param name="after"/>
+  <xsl:param name="edition.serial.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'edition.serial.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="string($after)!=''">
+      <xsl:apply-templates mode="iso690.mode" select="./edition">
+        <xsl:with-param name="sep" select="$edition.serial.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./edition"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="edition" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'edition.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Issue designation (date and/or n°) -->
+<xsl:template name="iso690.issuing">
+  <xsl:param name="issuing.div">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.div'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.range">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.range'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum[2] and ./issuenum[2]">
+      <xsl:call-template name="iso690.issuedate"/>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[1]">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum[1]">
+        <xsl:with-param name="sep" select="$issuing.range"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[2]">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum[2]">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum[2]">
+      <xsl:call-template name="iso690.issuedate"/>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[1]">
+        <xsl:with-param name="sep" select="$issuing.range"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[2]">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum and ./issuenum">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pubdate[@role='issuing']">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./volumenum">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./issuenum">
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.issuedate">
+  <xsl:param name="issuing.div">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.div'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.range">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.range'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./pubdate[@role='issuing'][2]">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing'][1]">
+        <xsl:with-param name="sep" select="$issuing.range"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing'][2]">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="pubdate[@role='issuing']" mode="iso690.mode">
+  <xsl:param name="sep"/>
+  <xsl:variable name="substr" select="substring(string(.),string-length(string(.)))"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.space">
+    <xsl:with-param name="text" select="$substr"/>
+  </xsl:call-template>
+  <xsl:choose>
+    <xsl:when test="$substr='-'">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="' '"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(.)"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Numeration of the part -->
+<xsl:template name="iso690.partnr">
+  <xsl:param name="partnr.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'partnr.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+    <xsl:with-param name="sep" select="$partnr.sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+<xsl:template name="iso690.pub">
+  <xsl:param name="onlydate" select="0"/>
+  <xsl:param name="placesep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'placepubl.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="pubsep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'publyear.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="endsep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'pubinfo.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="(./publisher/publishername|./publishername|./publisher/address/city)and($onlydate=0)and(./pubdate[not(@role='issuing')]|./copyright/year|./date[@role='upd']|./date[@role='upd'])">
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/address/city">
+        <xsl:with-param name="sep" select="$placesep"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/publishername|./publishername">
+        <xsl:with-param name="sep" select="$pubsep"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]|./copyright/year">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:apply-templates>
+      <xsl:if test="not(./pubdate[not(@role='issuing')]|./copyright/year)">
+        <xsl:call-template name="iso690.data">
+          <xsl:with-param name="sep" select="$endsep"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="(./publisher/publishername|./publishername)and(./publisher/address/city)and($onlydate=0)">
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/address/city">
+        <xsl:with-param name="sep" select="$placesep"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/publishername|./publishername">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="($onlydate=1)or(./pubdate[not(@role='issuing')]|./copyright/year)">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]|./copyright/year">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:apply-templates>
+      <xsl:if test="$onlydate=1">
+        <xsl:call-template name="iso690.location">
+          <xsl:with-param name="onlypages" select="1"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="not(./pubdate[not(@role='issuing')]|./copyright/year)">
+      <xsl:call-template name="iso690.data">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.paper.pub">
+  <xsl:param name="spec.pubinfo.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'spec.pubinfo.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./volumnum|./issuenum|./pagenums">
+      <xsl:call-template name="iso690.pub">
+        <xsl:with-param name="endsep" select="$spec.pubinfo.sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.pub"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.data">
+  <xsl:param name="sep"/>
+  <xsl:param name="datecit2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./date[@role='upd']">
+    <xsl:with-param name="sep"/>
+  </xsl:apply-templates>
+  <xsl:apply-templates mode="iso690.mode" select="./date[@role='cit']"/>
+  <xsl:choose>
+    <xsl:when test="./date[@role='cit']">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="$datecit2"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="./date[@role='upd']">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(./date[@role='upd'])"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="publisher/address/city|publishername" mode="iso690.mode">
+  <xsl:param name="sep"/>
+  <xsl:param name="upd" select="0"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="pubdate|copyright/year" mode="iso690.mode">
+  <xsl:param name="sep"/>
+  <xsl:param name="upd" select="1"/>
+  <xsl:param name="datecit2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:variable name="substr" select="substring(string(.),string-length(string(.)))"/>
+  <xsl:if test="name(.)!='pubdate'">
+    <xsl:value-of select="'&#x00A9;'"/><!-- copyright -->
+  </xsl:if>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.space">
+    <xsl:with-param name="text" select="$substr"/>
+  </xsl:call-template>
+  <xsl:if test="$upd!=0">
+    <xsl:choose>
+      <xsl:when test="name(.)='pubdate'">
+        <xsl:apply-templates mode="iso690.mode" select="../date[@role='upd']"/>
+        <xsl:apply-templates mode="iso690.mode" select="../date[@role='cit']"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates mode="iso690.mode" select="../../date[@role='upd']"/>
+        <xsl:apply-templates mode="iso690.mode" select="../../date[@role='cit']"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="../date[@role='cit']|../../date[@role='cit'] and $upd!=0">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="$datecit2"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="../date[@role='upd']|../../date[@role='upd'] and $upd!=0">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(../date[@role='upd'])"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$substr='-'">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="' '"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(.)"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.space">
+  <xsl:param name="text" select="substring(string(.),string-length(string(.)))"/>
+  <xsl:if test="$text='-'">
+    <xsl:value-of select="' '"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- Date of update/revision -->
+<xsl:template match="date[@role='upd']" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'upd.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$sep"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Date of citation -->
+<xsl:template match="date[@role='cit']" mode="iso690.mode">
+  <xsl:param name="datecit1">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit1'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="datecit2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$datecit1"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$datecit2"/>
+</xsl:template>
+
+<!-- Extent -->
+<xsl:template name="iso690.extent">
+  <xsl:param name="extent.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'extent.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./pagenums">
+    <xsl:with-param name="sep" select="$extent.sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Location within host -->
+<xsl:template name="iso690.part.location">
+  <xsl:param name="location.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./pagenums">
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']"/>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='sectitle']"/>
+      <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+    </xsl:when>
+    <xsl:when test="./bibliomisc[@role='sectitle']">
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']"/>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='sectitle']">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.article.location">
+  <xsl:param name="location.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="locs.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="not(./date[@role='upd']|./date[@role='cit'])">
+      <xsl:choose>
+        <xsl:when test="./volumenum|./issuenum|./pagenums">
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="upd" select="0"/>
+            <xsl:with-param name="sep" select="$locs.sep"/>
+          </xsl:apply-templates>
+          <xsl:call-template name="iso690.location"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="sep" select="$location.sep"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="./volumenum|./issuenum|./pagenums">
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="upd" select="0"/>
+            <xsl:with-param name="sep" select="$locs.sep"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="upd" select="0"/>
+            <xsl:with-param name="sep" select="$location.sep"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:choose>
+        <xsl:when test="./issuenum">
+          <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+          <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+            <xsl:with-param name="sep"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+            <xsl:with-param name="sep"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:choose>
+        <xsl:when test="./pagenums">
+          <xsl:call-template name="iso690.data">
+            <xsl:with-param name="sep" select="$locs.sep"/>
+          </xsl:call-template>
+          <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="iso690.data">
+            <xsl:with-param name="sep" select="$location.sep"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.location">
+  <xsl:param name="location.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./volumenum and not(./issuenum) and not(./pagenums)">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./issuenum and not(./pagenums)">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pagenums">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum"/>
+      <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='secnum']|bibliomisc[@role='sectitle']" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="volumenum|issuenum" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Series -->
+<xsl:template name="iso690.serie">
+  <xsl:apply-templates mode="iso690.mode" select=".//bibliomisc[@role='serie']"/>
+</xsl:template>
+
+<!-- Notes -->
+<xsl:template name="iso690.notice">
+  <xsl:apply-templates mode="iso690.mode" select=".//bibliomisc[not(@role)]"/>
+</xsl:template>
+
+<xsl:template match="bibliomisc[not(@role)]|bibliomisc[@role='serie']" mode="iso690.mode">
+  <xsl:param name="notice.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'notice.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$notice.sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Avaibility and access -->
+<xsl:template name="iso690.access">
+  <xsl:for-each select="./biblioid[@class='uri']|./bibliomisc[@role='access']">
+    <xsl:choose>
+      <xsl:when test="position()=1">
+        <xsl:apply-templates mode="iso690.mode" select="."/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates mode="iso690.mode" select=".">
+          <xsl:with-param name="firstacc" select="0"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="biblioid[@class='uri']/ulink|bibliomisc[@role='access']/ulink" mode="iso690.mode">
+  <xsl:param name="link1">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'link1'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="link2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'link2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$link1"/>
+  <xsl:call-template name="ulink"/>
+  <xsl:value-of select="$link2"/>
+</xsl:template>
+
+<xsl:template match="biblioid[@class='uri']|bibliomisc[@role='access']" mode="iso690.mode">
+  <xsl:param name="firstacc" select="1"/>
+  <xsl:param name="access">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="acctoo">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'acctoo'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="onwww">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'onwww'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="oninet">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'oninet'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="access.end">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access.end'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="access.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="$firstacc=1">
+      <xsl:value-of select="$access"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$acctoo"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="(./ulink)and(string(./ulink)=string(.))">
+      <xsl:choose>
+        <xsl:when test="(starts-with(./ulink/@url,'http://')or(starts-with(./ulink/@url,'https://')))">
+          <xsl:value-of select="$onwww"/>
+          <xsl:value-of select="$access.end"/>
+          <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$oninet"/>
+          <xsl:value-of select="$access.end"/>
+          <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="(./ulink)and(string(./ulink)!=string(.))">
+      <xsl:value-of select="text()[1]"/>
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="text()[1]"/>
+        <xsl:with-param name="sep" select="$access.end"/>
+      </xsl:call-template>
+      <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$access.sep"/>
+</xsl:template>
+
+<!-- Standard number - ISBN -->
+<xsl:template name="iso690.isbn">
+  <xsl:choose>
+    <xsl:when test="./biblioid/@class='isbn'">
+      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='isbn']"/>
+    </xsl:when>
+    <xsl:when test="./isbn">
+      <xsl:apply-templates mode="iso690.mode" select="./isbn"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="isbn|biblioid[@class='isbn']" mode="iso690.mode">
+  <xsl:param name="isbn">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'isbn'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="stdnum.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'stdnum.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$isbn"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$stdnum.sep"/>
+</xsl:template>
+
+<!-- Standard number - ISSN -->
+<xsl:template name="iso690.issn">
+  <xsl:choose>
+    <xsl:when test="./biblioid/@class='issn'">
+      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='issn']"/>
+    </xsl:when>
+    <xsl:when test="./issn">
+      <xsl:apply-templates mode="iso690.mode" select="./issn"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="issn|biblioid[@class='issn']" mode="iso690.mode">
+  <xsl:param name="issn">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issn'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="stdnum.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'stdnum.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$issn"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$stdnum.sep"/>
+</xsl:template>
+
+<!-- Identification of patent document -->
+<xsl:template name="iso690.pat.ident">
+  <xsl:param name="patdate.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patdate.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./address/country"/>
+  <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='patenttype']"/>
+  <xsl:choose>
+    <xsl:when test="./biblioid[@class='other' and @otherclass='patentnum']">
+      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='other' and @otherclass='patentnum']"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='patentnum']"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+    <xsl:with-param name="sep" select="$patdate.sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Country or issuing office -->
+<xsl:template match="address/country" mode="iso690.mode">
+  <xsl:param name="patcountry.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patcountry.sep'"/></xsl:call-template>
+  </xsl:param>
+  <fo:inline font-style="italic">
+    <xsl:apply-templates mode="iso690.mode"/>
+  </fo:inline>
+  <xsl:value-of select="$patcountry.sep"/>
+</xsl:template>
+
+<!-- Kind of patent document -->
+<xsl:template match="bibliomisc[@role='patenttype']" mode="iso690.mode">
+  <xsl:param name="pattype.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'pattype.sep'"/></xsl:call-template>
+  </xsl:param>
+  <fo:inline font-style="italic">
+    <xsl:apply-templates mode="iso690.mode"/>
+  </fo:inline>
+  <xsl:value-of select="$pattype.sep"/>
+</xsl:template>
+
+<!-- Number -->
+<xsl:template match="biblioid[@class='other' and @otherclass='patentnum']|bibliomisc[@role='patentnum']" mode="iso690.mode">
+  <xsl:param name="patnum.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patnum.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$patnum.sep"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Supplementary templates -->
+
+<xsl:template name="iso690.endsep">
+  <xsl:param name="text"/>
+  <xsl:param name="sep" select=". "/>
+  <xsl:choose>
+    <xsl:when test="substring($text,string-length($text))!=substring($sep,1,1)">
+      <xsl:value-of select="$sep"/>
+    </xsl:when>
+    <xsl:when test="substring($text,string-length($text))=' '">
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="' '"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="iso690.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/biblio.xsl b/applications/content/template/docbook/fo/biblio.xsl
new file mode 100644
index 0000000..0a8dd09
--- /dev/null
+++ b/applications/content/template/docbook/fo/biblio.xsl
@@ -0,0 +1,1176 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliography">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not(parent::*) or parent::part or parent::book">
+      <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:attribute name="format">
+          <xsl:call-template name="page.number.format">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="initial-page-number">
+          <xsl:call-template name="initial.page.number">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="force-page-count">
+          <xsl:call-template name="force.page.count">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="hyphenation-character">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'hyphenation-character'"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="hyphenation-push-character-count">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="hyphenation-remain-character-count">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+          </xsl:call-template>
+        </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">
+          <xsl:call-template name="set.flow.properties">
+            <xsl:with-param name="element" select="local-name(.)"/>
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+          </xsl:call-template>
+
+          <fo:block id="{$id}">
+            <xsl:call-template name="bibliography.titlepage"/>
+          </fo:block>
+          <xsl:apply-templates/>
+        </fo:flow>
+      </fo:page-sequence>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block id="{$id}"
+                space-before.minimum="1em"
+                space-before.optimum="1.5em"
+                space-before.maximum="2em">
+        <xsl:call-template name="bibliography.titlepage"/>
+      </fo:block>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliography/bibliographyinfo"></xsl:template>
+<xsl:template match="bibliography/info"></xsl:template>
+<xsl:template match="bibliography/title"></xsl:template>
+<xsl:template match="bibliography/subtitle"></xsl:template>
+<xsl:template match="bibliography/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliodiv">
+  <fo:block>
+    <xsl:attribute name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:attribute>
+    <xsl:call-template name="bibliodiv.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="bibliodiv/title"/>
+<xsl:template match="bibliodiv/subtitle"/>
+<xsl:template match="bibliodiv/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliolist">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}"
+            space-before.minimum="1em"
+            space-before.optimum="1.5em"
+            space-before.maximum="2em">
+
+    <xsl:if test="blockinfo/title|info/title|title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="*[not(self::blockinfo)
+                                   and not(self::info)
+                                   and not(self::title)
+                                   and not(self::titleabbrev)]"/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="biblioentry">
+  <xsl:param name="label">
+    <xsl:call-template name="biblioentry.label"/>
+  </xsl:param>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string(.) = ''">
+      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+      <xsl:variable name="entry" select="$bib/bibliography//
+                                         *[@id=$id or @xml:id=$id][1]"/>
+      <xsl:choose>
+        <xsl:when test="$entry">
+          <xsl:choose>
+            <xsl:when test="$bibliography.numbered != 0">
+              <xsl:apply-templates select="$entry">
+                <xsl:with-param name="label" select="$label"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="$entry"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>No bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </xsl:message>
+          <fo:block id="{$id}" xsl:use-attribute-sets="normal.para.spacing">
+            <xsl:text>Error: no bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </fo:block>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block id="{$id}" xsl:use-attribute-sets="biblioentry.properties">
+        <xsl:copy-of select="$label"/>
+	<xsl:choose>
+	  <xsl:when test="$bibliography.style = 'iso690'">
+	    <xsl:call-template name="iso690.makecitation"/>
+	  </xsl:when>
+	  <xsl:otherwise>
+	    <xsl:apply-templates mode="bibliography.mode"/>
+	  </xsl:otherwise>
+	</xsl:choose>
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliomixed">
+  <xsl:param name="label">
+    <xsl:call-template name="biblioentry.label"/>
+  </xsl:param>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string(.) = ''">
+      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+      <xsl:variable name="entry" select="$bib/bibliography//
+                                         *[@id=$id or @xml:id=$id][1]"/>
+      <xsl:choose>
+        <xsl:when test="$entry">
+          <xsl:choose>
+            <xsl:when test="$bibliography.numbered != 0">
+              <xsl:apply-templates select="$entry">
+                <xsl:with-param name="label" select="$label"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="$entry"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>No bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </xsl:message>
+          <fo:block id="{$id}" xsl:use-attribute-sets="normal.para.spacing">
+            <xsl:text>Error: no bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </fo:block>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block id="{$id}" xsl:use-attribute-sets="biblioentry.properties">
+        <xsl:copy-of select="$label"/>
+        <xsl:apply-templates mode="bibliomixed.mode"/>
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="biblioentry.label">
+  <xsl:param name="node" select="."/>
+
+  <xsl:choose>
+    <xsl:when test="$bibliography.numbered != 0">
+      <xsl:text>[</xsl:text>
+      <xsl:number from="bibliography" count="biblioentry|bibliomixed"
+                  level="any" format="1"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($node/child::*[1]) = 'abbrev'">
+      <xsl:text>[</xsl:text>
+      <xsl:apply-templates select="$node/abbrev[1]"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="$node/@xreflabel">
+      <xsl:text>[</xsl:text>
+      <xsl:value-of select="$node/@xreflabel"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="$node/@id or $node/@xml:id">
+      <xsl:text>[</xsl:text>
+      <xsl:value-of select="($node/@id|$node/@xml:id)[1]"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:otherwise><!-- nop --></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliography.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliography.mode">
+  <xsl:if test="preceding-sibling::*">
+    <fo:inline>
+      <xsl:apply-templates mode="bibliography.mode"/>
+    </fo:inline>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="address" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="artheader|articleinfo|article/info" 
+              mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:choose>
+      <xsl:when test="orgname">
+        <xsl:apply-templates select="orgname" mode="bibliography.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="person.name"/>
+        <xsl:value-of select="$biblioentry.item.separator"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:call-template name="person.name.list"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="biblioset/title|biblioset/citetitle" 
+              mode="bibliography.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article' or @pubwork='article'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:apply-templates mode="bibliography.mode"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:inline font-style="italic">
+        <xsl:apply-templates/>
+      </fo:inline>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$biblioentry.item.separator"/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="citetitle" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:choose>
+      <xsl:when test="@pubwork = 'article'">
+        <xsl:call-template name="gentext.startquote"/>
+        <xsl:apply-templates mode="bibliography.mode"/>
+        <xsl:call-template name="gentext.endquote"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <fo:inline font-style="italic">
+          <xsl:apply-templates mode="bibliography.mode"/>
+        </fo:inline>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="copyright" mode="bibliography.mode">
+  <fo:inline>
+    <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:apply-templates select="year" mode="bibliography.mode"/>
+    <xsl:if test="holder">
+      <xsl:call-template name="gentext.space"/>
+      <xsl:apply-templates select="holder" mode="bibliography.mode"/>
+    </xsl:if>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="year" mode="bibliography.mode">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="corpauthor" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:call-template name="person.name"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliography.mode">
+  <xsl:apply-templates select="."/> 
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliography.mode">
+  <fo:block>
+    <xsl:apply-templates select="."/> <!-- use normal mode -->
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="seriesinfo" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliography.mode">
+  <fo:inline>
+    <fo:inline font-style="italic">
+      <xsl:apply-templates mode="bibliography.mode"/>
+    </fo:inline>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="collabname" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="confdates" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="confnum" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="confsponsor" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource"
+              mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliomixed.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliomixed.mode">
+  <xsl:if test="preceding-sibling::*">
+    <fo:inline>
+      <xsl:apply-templates mode="bibliomixed.mode"/>
+    </fo:inline>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliomixed.mode">
+  <fo:block start-indent="1in">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="para" mode="bibliomixed.mode">
+  <fo:block>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="address" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:choose>
+      <xsl:when test="orgname">
+        <xsl:apply-templates select="orgname" mode="bibliomixed.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="person.name"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bibliomset" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="bibliomset/title|bibliomset/citetitle" 
+              mode="bibliomixed.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article' or @pubwork='article'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:apply-templates mode="bibliomixed.mode"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:inline font-style="italic">
+        <xsl:apply-templates/>
+      </fo:inline>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliomixed.mode">
+  <xsl:choose>
+    <xsl:when test="@pubwork = 'article'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:apply-templates mode="bibliomixed.mode"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:inline font-style="italic">
+        <xsl:apply-templates mode="bibliography.mode"/>
+      </fo:inline>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="copyright" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliomixed.mode">
+  <xsl:apply-templates select="."/> 
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource"
+              mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/block.xsl b/applications/content/template/docbook/fo/block.xsl
new file mode 100644
index 0000000..d76a419
--- /dev/null
+++ b/applications/content/template/docbook/fo/block.xsl
@@ -0,0 +1,672 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="blockinfo|info">
+  <!-- suppress -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="block.object">
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+  <fo:block>
+    <xsl:if test="$keep.together != ''">
+      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                      select="$keep.together"/></xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="para">
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+  <fo:block xsl:use-attribute-sets="para.properties">
+    <xsl:if test="$keep.together != ''">
+      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                      select="$keep.together"/></xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="simpara">
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+  <fo:block xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:if test="$keep.together != ''">
+      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                      select="$keep.together"/></xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="formalpara">
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+  <fo:block xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:if test="$keep.together != ''">
+      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                      select="$keep.together"/></xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- Only use title from info -->
+<xsl:template match="formalpara/info">
+  <xsl:apply-templates select="title"/>
+</xsl:template>
+
+<xsl:template match="formalpara/title|formalpara/info/title">
+  <xsl:variable name="titleStr">
+      <xsl:apply-templates/>
+  </xsl:variable>
+  <xsl:variable name="lastChar">
+    <xsl:if test="$titleStr != ''">
+      <xsl:value-of select="substring($titleStr,string-length($titleStr),1)"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <fo:inline font-weight="bold"
+             keep-with-next.within-line="always"
+             padding-end="1em">
+    <xsl:copy-of select="$titleStr"/>
+    <xsl:if test="$lastChar != ''
+                  and not(contains($runinhead.title.end.punct, $lastChar))">
+      <xsl:value-of select="$runinhead.default.title.end.punct"/>
+    </xsl:if>
+    <xsl:text>&#160;</xsl:text>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="formalpara/para">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="blockquote">
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+  <fo:block xsl:use-attribute-sets="blockquote.properties">
+    <xsl:if test="$keep.together != ''">
+      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                      select="$keep.together"/></xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="anchor"/>
+    <fo:block>
+      <xsl:if test="title|info/title">
+        <fo:block xsl:use-attribute-sets="formal.title.properties">
+          <xsl:apply-templates select="." mode="object.title.markup"/>
+        </fo:block>
+      </xsl:if>
+      <xsl:apply-templates select="*[local-name(.) != 'title'
+                                   and local-name(.) != 'attribution']"/>
+    </fo:block>
+    <xsl:if test="attribution">
+      <fo:block text-align="right">
+        <!-- mdash -->
+        <xsl:text>&#x2014;</xsl:text>
+        <xsl:apply-templates select="attribution"/>
+      </fo:block>
+    </xsl:if>
+  </fo:block>
+</xsl:template>
+
+<!-- Use an em dash per Chicago Manual of Style and https://sourceforge.net/tracker/index.php?func=detail&aid=2793878&group_id=21935&atid=373747 -->
+<xsl:template match="epigraph">
+  <fo:block>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates select="para|simpara|formalpara|literallayout"/>
+    <xsl:if test="attribution">
+      <fo:inline>
+        <xsl:text>&#x2014;</xsl:text>
+        <xsl:apply-templates select="attribution"/>
+      </fo:inline>
+    </xsl:if>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="attribution">
+  <fo:inline><xsl:apply-templates/></fo:inline>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="floater">
+  <xsl:param name="position" select="'none'"/>
+  <xsl:param name="clear" select="'both'"/>
+  <xsl:param name="width"/>
+  <xsl:param name="content"/>
+  <xsl:param name="start.indent">0pt</xsl:param>
+  <xsl:param name="end.indent">0pt</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="not($fop.extensions = 0)">
+      <!-- fop 0.20.5 does not support floats -->
+      <xsl:copy-of select="$content"/>
+    </xsl:when>
+    <xsl:when test="$position = 'none'">
+      <xsl:copy-of select="$content"/>
+    </xsl:when>
+    <xsl:when test="$position = 'before'">
+      <fo:float float="before">
+        <xsl:copy-of select="$content"/>
+      </fo:float>
+    </xsl:when>
+    <xsl:when test="$position = 'left' or
+                    $position = 'start' or
+                    $position = 'right' or
+                    $position = 'end' or
+                    $position = 'inside' or
+                    $position = 'outside'">
+      <xsl:variable name="float">
+        <fo:float float="{$position}"
+                  clear="{$clear}">
+          <fo:block-container 
+                    start-indent="{$start.indent}"
+                    end-indent="{$end.indent}">
+            <xsl:if test="$width != ''">
+              <xsl:attribute name="inline-progression-dimension">
+                <xsl:value-of select="$width"/>
+              </xsl:attribute>
+            </xsl:if>
+            <fo:block>
+              <xsl:copy-of select="$content"/>
+            </fo:block>
+          </fo:block-container>
+        </fo:float>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="$axf.extensions != 0 and self::sidebar">
+          <fo:block xsl:use-attribute-sets="normal.para.spacing"
+                    space-after="0pt"
+                    space-after.precedence="force"
+                    start-indent="0pt" end-indent="0pt">
+            <xsl:copy-of select="$float"/>
+          </fo:block>
+        </xsl:when>
+        <xsl:when test="$axf.extensions != 0 and 
+                        ($position = 'left' or $position = 'start')">
+          <fo:float float="{$position}"
+                    clear="{$clear}">
+            <fo:block-container 
+                      inline-progression-dimension=".001mm"
+                      end-indent="{$start.indent} + {$width} + {$end.indent}">
+              <xsl:attribute name="start-indent">
+                <xsl:choose>
+                  <xsl:when test="ancestor::para">
+                    <!-- Special case for handling inline floats
+                         in Antenna House-->
+                    <xsl:value-of select="concat('-', $body.start.indent)"/>
+                  </xsl:when>
+                  <xsl:otherwise>0pt</xsl:otherwise>
+                </xsl:choose>
+              </xsl:attribute>
+              <fo:block start-indent="{$start.indent}"
+                        end-indent="-{$start.indent} - {$width}">
+                <xsl:copy-of select="$content"/>
+              </fo:block>
+            </fo:block-container>
+          </fo:float>
+
+        </xsl:when>
+        <xsl:when test="$axf.extensions != 0 and 
+                        ($position = 'right' or $position = 'end')">
+          <!-- Special case for handling inline floats in Antenna House-->
+          <fo:float float="{$position}"
+                    clear="{$clear}">
+            <fo:block-container 
+                      inline-progression-dimension=".001mm"
+                      end-indent="-{$body.end.indent}"
+                      start-indent="{$start.indent} + {$width} + {$end.indent}">
+              <fo:block end-indent="{$end.indent}"
+                        start-indent="-{$end.indent} - {$width}">
+                <xsl:copy-of select="$content"/>
+              </fo:block>
+            </fo:block-container>
+          </fo:float>
+
+        </xsl:when>
+        <xsl:when test="$xep.extensions != 0 and self::sidebar">
+          <!-- float needs some space above  to line up with following para -->
+          <fo:block xsl:use-attribute-sets="normal.para.spacing">
+            <xsl:copy-of select="$float"/>
+          </fo:block>
+        </xsl:when>
+        <xsl:when test="$xep.extensions != 0">
+          <xsl:copy-of select="$float"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:copy-of select="$float"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sidebar" name="sidebar">
+  <!-- Also does margin notes -->
+  <xsl:variable name="pi-type">
+    <xsl:call-template name="pi.dbfo_float-type"/>
+  </xsl:variable>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$pi-type = 'margin.note'">
+      <xsl:call-template name="margin.note"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="content">
+        <fo:block xsl:use-attribute-sets="sidebar.properties"
+                  id="{$id}">
+          <xsl:call-template name="sidebar.titlepage"/>
+          <xsl:apply-templates select="node()[not(self::title) and
+                                         not(self::info) and
+                                         not(self::sidebarinfo)]"/>
+        </fo:block>
+      </xsl:variable>
+
+      <xsl:variable name="pi-width">
+        <xsl:call-template name="pi.dbfo_sidebar-width"/>
+      </xsl:variable>
+
+      <xsl:variable name="position">
+        <xsl:choose>
+          <xsl:when test="$pi-type != ''">
+            <xsl:value-of select="$pi-type"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$sidebar.float.type"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+    
+      <xsl:call-template name="floater">
+        <xsl:with-param name="content" select="$content"/>
+        <xsl:with-param name="position" select="$position"/>
+        <xsl:with-param name="width">
+          <xsl:choose>
+            <xsl:when test="$pi-width != ''">
+              <xsl:value-of select="$pi-width"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="$sidebar.float.width"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+        <xsl:with-param name="start.indent">
+          <xsl:choose>
+            <xsl:when test="$position = 'start' or 
+                            $position = 'left'">0pt</xsl:when>
+            <xsl:when test="$position = 'end' or 
+                            $position = 'right'">0.5em</xsl:when>
+            <xsl:otherwise>0pt</xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+        <xsl:with-param name="end.indent">
+          <xsl:choose>
+            <xsl:when test="$position = 'start' or 
+                            $position = 'left'">0.5em</xsl:when>
+            <xsl:when test="$position = 'end' or 
+                            $position = 'right'">0pt</xsl:when>
+            <xsl:otherwise>0pt</xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template match="sidebar/title|sidebarinfo|sidebar/info"/>
+
+<xsl:template match="sidebar/title|sidebarinfo/title|sidebar/info/title"
+              mode="titlepage.mode" priority="1">
+  <fo:block xsl:use-attribute-sets="sidebar.title.properties">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- Turn off para space-before if sidebar starts with a para, not title -->
+<xsl:template match="sidebar/*[1][self::para]">
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+  <fo:block xsl:use-attribute-sets="para.properties">
+    <xsl:attribute name="space-before.maximum">0pt</xsl:attribute>
+    <xsl:attribute name="space-before.minimum">0pt</xsl:attribute>
+    <xsl:attribute name="space-before.optimum">0pt</xsl:attribute>
+    <xsl:if test="$keep.together != ''">
+      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                      select="$keep.together"/></xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </fo:block>
+
+</xsl:template>
+
+<xsl:template name="margin.note">
+  <xsl:param name="content">
+    <fo:block xsl:use-attribute-sets="margin.note.properties">
+      <xsl:if test="./title">
+        <fo:block xsl:use-attribute-sets="margin.note.title.properties">
+          <xsl:apply-templates select="./title" mode="margin.note.title.mode"/>
+        </fo:block>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </fo:block>
+  </xsl:param>
+
+  <xsl:variable name="pi-width">
+    <xsl:call-template name="pi.dbfo_sidebar-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="position" select="$margin.note.float.type"/>
+
+  <xsl:call-template name="floater">
+    <xsl:with-param name="content" select="$content"/>
+    <xsl:with-param name="position" select="$position"/>
+    <xsl:with-param name="width" >
+      <xsl:choose>
+        <xsl:when test="$pi-width != ''">
+          <xsl:value-of select="$pi-width"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$margin.note.width"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:with-param>
+    <xsl:with-param name="start.indent">
+      <xsl:choose>
+        <xsl:when test="$position = 'start' or 
+                        $position = 'left'">0pt</xsl:when>
+        <xsl:when test="$position = 'end' or 
+                        $position = 'right'">0.5em</xsl:when>
+        <xsl:otherwise>0pt</xsl:otherwise>
+      </xsl:choose>
+    </xsl:with-param>
+    <xsl:with-param name="end.indent">
+      <xsl:choose>
+        <xsl:when test="$position = 'start' or 
+                        $position = 'left'">0.5em</xsl:when>
+        <xsl:when test="$position = 'end' or 
+                        $position = 'right'">0pt</xsl:when>
+        <xsl:otherwise>0pt</xsl:otherwise>
+      </xsl:choose>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sidebar/title" mode="margin.note.title.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="abstract">
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+  <fo:block xsl:use-attribute-sets="abstract.properties">
+    <xsl:if test="$keep.together != ''">
+      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                      select="$keep.together"/></xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="abstract/title|abstract/info/title">
+  <fo:block xsl:use-attribute-sets="abstract.title.properties">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="msgset">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgentry">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="simplemsgentry">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msg">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgmain">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgsub">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgrel">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgtext">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msginfo">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msglevel">
+  <fo:block>
+    <fo:inline font-weight="bold"
+               keep-with-next.within-line="always">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'msgset'"/>
+        <xsl:with-param name="name" select="'MsgLevel'"/>
+      </xsl:call-template>
+    </fo:inline>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="msgorig">
+  <fo:block>
+    <fo:inline font-weight="bold"
+               keep-with-next.within-line="always">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'msgset'"/>
+        <xsl:with-param name="name" select="'MsgOrig'"/>
+      </xsl:call-template>
+    </fo:inline>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="msgaud">
+  <fo:block>
+    <fo:inline font-weight="bold"
+               keep-with-next.within-line="always">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'msgset'"/>
+        <xsl:with-param name="name" select="'MsgAud'"/>
+      </xsl:call-template>
+    </fo:inline>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="msgexplan">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgexplan/title">
+  <fo:block font-weight="bold"
+            keep-with-next.within-column="always"
+            hyphenate="false">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- For better or worse, revhistory is allowed in content... -->
+
+<xsl:template match="revhistory">
+  <fo:table table-layout="fixed" xsl:use-attribute-sets="revhistory.table.properties">
+    <xsl:call-template name="anchor"/>
+    <fo:table-column column-number="1" column-width="proportional-column-width(1)"/>
+    <fo:table-column column-number="2" column-width="proportional-column-width(1)"/>
+    <fo:table-column column-number="3" column-width="proportional-column-width(1)"/>
+    <fo:table-body start-indent="0pt" end-indent="0pt">
+      <fo:table-row>
+        <fo:table-cell number-columns-spanned="3" xsl:use-attribute-sets="revhistory.table.cell.properties">
+          <fo:block xsl:use-attribute-sets="revhistory.title.properties">
+            <xsl:choose>
+              <xsl:when test="title|info/title">
+                <xsl:apply-templates select="title|info/title" mode="titlepage.mode"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:call-template name="gentext">
+                  <xsl:with-param name="key" select="'RevHistory'"/>
+                </xsl:call-template>
+              </xsl:otherwise>
+            </xsl:choose>
+          </fo:block>
+        </fo:table-cell>
+      </fo:table-row>
+      <xsl:apply-templates/>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+<xsl:template match="revhistory/title">
+  <!-- Handled in titlepage.mode -->
+</xsl:template>
+
+<xsl:template match="revhistory/revision">
+  <xsl:variable name="revnumber" select="revnumber"/>
+  <xsl:variable name="revdate"   select="date"/>
+  <xsl:variable name="revauthor" select="authorinitials|author"/>
+  <xsl:variable name="revremark" select="revremark|revdescription"/>
+  <fo:table-row>
+    <fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties">
+      <fo:block>
+        <xsl:call-template name="anchor"/>
+        <xsl:if test="$revnumber">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'Revision'"/>
+          </xsl:call-template>
+          <xsl:call-template name="gentext.space"/>
+          <xsl:apply-templates select="$revnumber[1]"/>
+        </xsl:if>
+      </fo:block>
+    </fo:table-cell>
+    <fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties">
+      <fo:block>
+        <xsl:apply-templates select="$revdate[1]"/>
+      </fo:block>
+    </fo:table-cell>
+    <fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties">
+      <fo:block>
+        <xsl:for-each select="$revauthor">
+          <xsl:apply-templates select="."/>
+          <xsl:if test="position() != last()">
+            <xsl:text>, </xsl:text>
+          </xsl:if>
+        </xsl:for-each>
+      </fo:block>
+    </fo:table-cell>
+  </fo:table-row>
+  <xsl:if test="$revremark">
+    <fo:table-row>
+      <fo:table-cell number-columns-spanned="3" xsl:use-attribute-sets="revhistory.table.cell.properties">
+        <fo:block>
+          <xsl:apply-templates select="$revremark[1]"/>
+        </fo:block>
+      </fo:table-cell>
+    </fo:table-row>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/date">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/author">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revremark">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="ackno|acknowledgements[parent::article]">
+  <fo:block xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="highlights">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/callout.xsl b/applications/content/template/docbook/fo/callout.xsl
new file mode 100644
index 0000000..85ec40f
--- /dev/null
+++ b/applications/content/template/docbook/fo/callout.xsl
@@ -0,0 +1,265 @@
+<?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:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim"
+                xmlns:xverb="com.nwalsh.xalan.Verbatim"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                exclude-result-prefixes="sverb xverb lxslt"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xverb"
+                 functions="insertCallouts"/>
+
+<xsl:template match="programlistingco|screenco">
+  <xsl:variable name="verbatim" select="programlisting|screen"/>
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="$use.extensions != '0'
+                    and $callouts.extension != '0'">
+      <xsl:variable name="rtf">
+        <xsl:apply-templates select="$verbatim">
+          <xsl:with-param name="suppress-numbers" select="'1'"/>
+        </xsl:apply-templates>
+      </xsl:variable>
+
+      <xsl:variable name="rtf-with-callouts">
+        <xsl:choose>
+          <xsl:when test="contains($vendor, 'SAXON ')">
+            <xsl:copy-of select="sverb:insertCallouts(areaspec,$rtf)"/>
+          </xsl:when>
+          <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+            <xsl:copy-of select="xverb:insertCallouts(areaspec,$rtf)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message terminate="yes">
+              <xsl:text>Don't know how to do callouts with </xsl:text>
+              <xsl:value-of select="$vendor"/>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$verbatim/@linenumbering = 'numbered'
+                        and $linenumbering.extension != '0'">
+          <xsl:call-template name="number.rtf.lines">
+            <xsl:with-param name="rtf" select="$rtf-with-callouts"/>
+            <xsl:with-param name="pi.context"
+                            select="programlisting|screen"/>
+          </xsl:call-template>
+          <xsl:apply-templates select="calloutlist"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:copy-of select="$rtf-with-callouts"/>
+          <xsl:apply-templates select="calloutlist"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="areaspec|areaset|area">
+</xsl:template>
+
+<xsl:template match="areaset" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="area" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="co">
+  <fo:inline>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates select="." mode="callout-bug"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="coref">
+  <!-- tricky; this relies on the fact that we can process the "co" that's -->
+  <!-- "over there" as if it were "right here" -->
+
+  <xsl:variable name="co" select="key('id', @linkend)"/>
+  <xsl:choose>
+    <xsl:when test="not($co)">
+      <xsl:message>
+        <xsl:text>Error: coref link is broken: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+      </xsl:message>
+    </xsl:when>
+    <xsl:when test="local-name($co) != 'co'">
+      <xsl:message>
+        <xsl:text>Error: coref doesn't point to a co: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:inline>
+        <xsl:call-template name="anchor"/>
+        <xsl:apply-templates select="$co" mode="callout-bug"/>
+      </fo:inline>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="co" mode="callout-bug">
+  <xsl:call-template name="callout-bug">
+    <xsl:with-param name="conum">
+      <xsl:number count="co"
+                  level="any"
+                  from="programlisting|screen|literallayout|synopsis"
+                  format="1"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="callout-bug">
+  <xsl:param name="conum" select='1'/>
+
+  <xsl:choose>
+    <!-- Draw callouts as images -->
+    <xsl:when test="$callout.graphics != '0'
+                    and $conum &lt;= $callout.graphics.number.limit">
+      <xsl:variable name="filename"
+                    select="concat($callout.graphics.path, $conum,
+		                   $callout.graphics.extension)"/>
+
+      <fo:external-graphic content-width="{$callout.icon.size}"
+                           width="{$callout.icon.size}">
+        <xsl:attribute name="src">
+          <xsl:choose>
+            <xsl:when test="$passivetex.extensions != 0
+                            or $fop.extensions != 0
+                            or $arbortext.extensions != 0">
+              <xsl:value-of select="$filename"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:text>url(</xsl:text>
+              <xsl:value-of select="$filename"/>
+              <xsl:text>)</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+      </fo:external-graphic>
+    </xsl:when>
+
+    <xsl:when test="$callout.unicode != 0
+                    and $conum &lt;= $callout.unicode.number.limit">
+      <xsl:variable name="comarkup">
+        <xsl:choose>
+          <xsl:when test="$callout.unicode.start.character = 10102">
+            <xsl:choose>
+              <xsl:when test="$conum = 1">&#10102;</xsl:when>
+              <xsl:when test="$conum = 2">&#10103;</xsl:when>
+              <xsl:when test="$conum = 3">&#10104;</xsl:when>
+              <xsl:when test="$conum = 4">&#10105;</xsl:when>
+              <xsl:when test="$conum = 5">&#10106;</xsl:when>
+              <xsl:when test="$conum = 6">&#10107;</xsl:when>
+              <xsl:when test="$conum = 7">&#10108;</xsl:when>
+              <xsl:when test="$conum = 8">&#10109;</xsl:when>
+              <xsl:when test="$conum = 9">&#10110;</xsl:when>
+              <xsl:when test="$conum = 10">&#10111;</xsl:when>
+              <xsl:when test="$conum = 11">&#9451;</xsl:when>
+              <xsl:when test="$conum = 12">&#9452;</xsl:when>
+              <xsl:when test="$conum = 13">&#9453;</xsl:when>
+              <xsl:when test="$conum = 14">&#9454;</xsl:when>
+              <xsl:when test="$conum = 15">&#9455;</xsl:when>
+              <xsl:when test="$conum = 16">&#9456;</xsl:when>
+              <xsl:when test="$conum = 17">&#9457;</xsl:when>
+              <xsl:when test="$conum = 18">&#9458;</xsl:when>
+              <xsl:when test="$conum = 19">&#9459;</xsl:when>
+              <xsl:when test="$conum = 20">&#9460;</xsl:when>
+            </xsl:choose>
+          </xsl:when>
+          <xsl:when test="$callout.unicode.start.character = 9312">
+            <xsl:choose>
+              <xsl:when test="$conum = 1">&#9312;</xsl:when>
+              <xsl:when test="$conum = 2">&#9313;</xsl:when>
+              <xsl:when test="$conum = 3">&#9314;</xsl:when>
+              <xsl:when test="$conum = 4">&#9315;</xsl:when>
+              <xsl:when test="$conum = 5">&#9316;</xsl:when>
+              <xsl:when test="$conum = 6">&#9317;</xsl:when>
+              <xsl:when test="$conum = 7">&#9318;</xsl:when>
+              <xsl:when test="$conum = 8">&#9319;</xsl:when>
+              <xsl:when test="$conum = 9">&#9320;</xsl:when>
+              <xsl:when test="$conum = 10">&#9321;</xsl:when>
+              <xsl:when test="$conum = 11">&#9322;</xsl:when>
+              <xsl:when test="$conum = 12">&#9323;</xsl:when>
+              <xsl:when test="$conum = 13">&#9324;</xsl:when>
+              <xsl:when test="$conum = 14">&#9325;</xsl:when>
+              <xsl:when test="$conum = 15">&#9326;</xsl:when>
+              <xsl:when test="$conum = 16">&#9327;</xsl:when>
+              <xsl:when test="$conum = 17">&#9328;</xsl:when>
+              <xsl:when test="$conum = 18">&#9329;</xsl:when>
+              <xsl:when test="$conum = 19">&#9330;</xsl:when>
+              <xsl:when test="$conum = 20">&#9331;</xsl:when>
+            </xsl:choose>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message>
+              <xsl:text>Don't know how to generate Unicode callouts </xsl:text>
+              <xsl:text>when $callout.unicode.start.character is </xsl:text>
+              <xsl:value-of select="$callout.unicode.start.character"/>
+            </xsl:message>
+            <fo:inline background-color="#404040"
+                       color="white"
+                       padding-top="0.1em"
+                       padding-bottom="0.1em"
+                       padding-start="0.2em"
+                       padding-end="0.2em"
+                       baseline-shift="0.1em"
+                       font-family="{$body.fontset}"
+                       font-weight="bold"
+                       font-size="75%">
+              <xsl:value-of select="$conum"/>
+            </fo:inline>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$callout.unicode.font != ''">
+          <fo:inline font-family="{$callout.unicode.font}">
+            <xsl:copy-of select="$comarkup"/>
+          </fo:inline>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:copy-of select="$comarkup"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <!-- Most safe: draw a dark gray square with a white number inside -->
+    <xsl:otherwise>
+      <fo:inline background-color="#404040"
+                 color="white"
+                 padding-top="0.1em"
+                 padding-bottom="0.1em"
+                 padding-start="0.2em"
+                 padding-end="0.2em"
+                 baseline-shift="0.1em"
+                 font-family="{$body.fontset}"
+                 font-weight="bold"
+                 font-size="75%">
+        <xsl:value-of select="$conum"/>
+      </fo:inline>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/component.xsl b/applications/content/template/docbook/fo/component.xsl
new file mode 100644
index 0000000..3a06632
--- /dev/null
+++ b/applications/content/template/docbook/fo/component.xsl
@@ -0,0 +1,954 @@
+<?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:axf="http://www.antennahouse.com/names/XSL/Extensions"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+
+<xsl:template name="component.title">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="pagewide" select="0"/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="title">
+    <xsl:apply-templates select="$node" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </xsl:variable>
+
+  <xsl:variable name="titleabbrev">
+    <xsl:apply-templates select="$node" mode="titleabbrev.markup"/>
+  </xsl:variable>
+
+  <xsl:variable name="level">
+    <xsl:choose>
+      <xsl:when test="ancestor::section">
+        <xsl:value-of select="count(ancestor::section)+1"/>
+      </xsl:when>
+      <xsl:when test="ancestor::sect5">6</xsl:when>
+      <xsl:when test="ancestor::sect4">5</xsl:when>
+      <xsl:when test="ancestor::sect3">4</xsl:when>
+      <xsl:when test="ancestor::sect2">3</xsl:when>
+      <xsl:when test="ancestor::sect1">2</xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="$passivetex.extensions != 0">
+    <fotex:bookmark xmlns:fotex="http://www.tug.org/fotex"
+                    fotex-bookmark-level="2"
+                    fotex-bookmark-label="{$id}">
+      <xsl:value-of select="$titleabbrev"/>
+    </fotex:bookmark>
+  </xsl:if>
+
+  <fo:block xsl:use-attribute-sets="component.title.properties">
+    <xsl:if test="$pagewide != 0">
+      <!-- Doesn't work to use 'all' here since not a child of fo:flow -->
+      <xsl:attribute name="span">inherit</xsl:attribute>
+    </xsl:if>
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:if test="$axf.extensions != 0">
+      <xsl:attribute name="axf:outline-level">
+        <xsl:value-of select="count($node/ancestor::*)"/>
+      </xsl:attribute>
+      <xsl:attribute name="axf:outline-expand">false</xsl:attribute>
+      <xsl:attribute name="axf:outline-title">
+        <xsl:value-of select="normalize-space($title)"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <!-- Let's handle the case where a component (bibliography, for example)
+         occurs inside a section; will we need parameters for this?
+         Danger Will Robinson: using section.title.level*.properties here
+         runs the risk that someone will set something other than
+         font-size there... -->
+    <xsl:choose>
+      <xsl:when test="$level=2">
+        <fo:block xsl:use-attribute-sets="section.title.level2.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$level=3">
+        <fo:block xsl:use-attribute-sets="section.title.level3.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$level=4">
+        <fo:block xsl:use-attribute-sets="section.title.level4.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$level=5">
+        <fo:block xsl:use-attribute-sets="section.title.level5.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$level=6">
+        <fo:block xsl:use-attribute-sets="section.title.level6.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- not in a section: do nothing special -->
+        <xsl:copy-of select="$title"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="dedication" mode="dedication">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <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:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="component.titlepage.properties">
+        <xsl:call-template name="dedication.titlepage"/>
+      </fo:block>
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="dedication"></xsl:template> <!-- see mode="dedication" -->
+<xsl:template match="dedication/docinfo"></xsl:template>
+<xsl:template match="dedication/title"></xsl:template>
+<xsl:template match="dedication/subtitle"></xsl:template>
+<xsl:template match="dedication/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="acknowledgements" mode="acknowledgements">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <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:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="component.titlepage.properties">
+        <xsl:call-template name="acknowledgements.titlepage"/>
+      </fo:block>
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="acknowledgements"></xsl:template>
+<xsl:template match="acknowledgements/info"></xsl:template>
+<xsl:template match="acknowledgements/title"></xsl:template>
+<xsl:template match="acknowledgements/titleabbrev"></xsl:template>
+<xsl:template match="acknowledgements/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="colophon">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <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:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="component.titlepage.properties">
+        <xsl:call-template name="colophon.titlepage"/>
+      </fo:block>
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="colophon/title"></xsl:template>
+<xsl:template match="colophon/subtitle"></xsl:template>
+<xsl:template match="colophon/titleabbrev"></xsl:template>
+
+<!-- article/colophon has no page sequence -->
+<xsl:template match="article/colophon">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <fo:block xsl:use-attribute-sets="component.titlepage.properties">
+      <xsl:call-template name="colophon.titlepage"/>
+    </fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="preface">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <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:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="component.titlepage.properties">
+        <xsl:call-template name="preface.titlepage"/>
+      </fo:block>
+
+      <xsl:call-template name="make.component.tocs"/>
+
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="preface/docinfo|prefaceinfo"></xsl:template>
+<xsl:template match="preface/info"></xsl:template>
+<xsl:template match="preface/title"></xsl:template>
+<xsl:template match="preface/titleabbrev"></xsl:template>
+<xsl:template match="preface/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="chapter">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <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:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="component.titlepage.properties">
+        <xsl:call-template name="chapter.titlepage"/>
+      </fo:block>
+
+      <xsl:call-template name="make.component.tocs"/>
+
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="chapter/docinfo|chapterinfo"></xsl:template>
+<xsl:template match="chapter/info"></xsl:template>
+<xsl:template match="chapter/title"></xsl:template>
+<xsl:template match="chapter/titleabbrev"></xsl:template>
+<xsl:template match="chapter/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="appendix">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <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:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="component.titlepage.properties">
+        <xsl:call-template name="appendix.titlepage"/>
+      </fo:block>
+
+      <xsl:call-template name="make.component.tocs"/>
+
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="appendix/docinfo|appendixinfo"></xsl:template>
+<xsl:template match="appendix/info"></xsl:template>
+<xsl:template match="appendix/title"></xsl:template>
+<xsl:template match="appendix/titleabbrev"></xsl:template>
+<xsl:template match="appendix/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="article">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <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:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="component.titlepage.properties">
+        <xsl:call-template name="article.titlepage"/>
+      </fo:block>
+
+      <xsl:call-template name="make.component.tocs"/>
+
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="article/artheader"></xsl:template>
+<xsl:template match="article/articleinfo"></xsl:template>
+<xsl:template match="article/info"></xsl:template>
+<xsl:template match="article/title"></xsl:template>
+<xsl:template match="article/subtitle"></xsl:template>
+<xsl:template match="article/titleabbrev"></xsl:template>
+
+<xsl:template match="article/appendix">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="object.title.markup"/>
+  </xsl:variable>
+
+  <xsl:variable name="titleabbrev">
+    <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+  </xsl:variable>
+
+  <fo:block id='{$id}'>
+    <xsl:if test="$axf.extensions != 0">
+      <xsl:attribute name="axf:outline-level">
+        <xsl:value-of select="count(ancestor::*)+2"/>
+      </xsl:attribute>
+      <xsl:attribute name="axf:outline-expand">false</xsl:attribute>
+      <xsl:attribute name="axf:outline-title">
+        <xsl:value-of select="normalize-space($titleabbrev)"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$passivetex.extensions != 0">
+      <fotex:bookmark xmlns:fotex="http://www.tug.org/fotex" 
+                      fotex-bookmark-level="{count(ancestor::*)+2}" 
+                      fotex-bookmark-label="{$id}">
+        <xsl:value-of select="$titleabbrev"/>
+      </fotex:bookmark>
+    </xsl:if>
+
+    <fo:block xsl:use-attribute-sets="article.appendix.title.properties">
+      <fo:marker marker-class-name="section.head.marker">
+        <xsl:choose>
+          <xsl:when test="$titleabbrev = ''">
+            <xsl:value-of select="$title"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$titleabbrev"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </fo:marker>
+      <xsl:copy-of select="$title"/>
+    </fo:block>
+
+    <xsl:call-template name="make.component.tocs"/>
+
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- Utility template to create a page sequence for an element -->
+<xsl:template match="*" mode="page.sequence" name="page.sequence">
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <xsl:param name="master-reference">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:param>
+  <xsl:param name="element" select="local-name(.)"/>
+  <xsl:param name="gentext-key" select="local-name(.)"/>
+  <xsl:param name="language">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:param name="format">
+    <xsl:call-template name="page.number.format">
+      <xsl:with-param name="master-reference" select="$master-reference"/>
+      <xsl:with-param name="element" select="$element"/>
+    </xsl:call-template>
+  </xsl:param>
+
+  <xsl:param name="initial-page-number">
+    <xsl:call-template name="initial.page.number">
+      <xsl:with-param name="master-reference" select="$master-reference"/>
+      <xsl:with-param name="element" select="$element"/>
+    </xsl:call-template>
+  </xsl:param>
+
+  <xsl:param name="force-page-count">
+    <xsl:call-template name="force.page.count">
+      <xsl:with-param name="master-reference" select="$master-reference"/>
+      <xsl:with-param name="element" select="$element"/>
+    </xsl:call-template>
+  </xsl:param>
+
+  <fo:page-sequence hyphenate="{$hyphenate}"
+                    master-reference="{$master-reference}">
+    <xsl:attribute name="language">
+      <xsl:value-of select="$language"/>
+    </xsl:attribute>
+    <xsl:attribute name="format">
+      <xsl:value-of select="$format"/>
+    </xsl:attribute>
+
+    <xsl:attribute name="initial-page-number">
+      <xsl:value-of select="$initial-page-number"/>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:value-of select="$force-page-count"/>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-reference" select="$master-reference"/>
+      <xsl:with-param name="gentext-key" select="$gentext-key"/>
+    </xsl:apply-templates>
+
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-reference" select="$master-reference"/>
+      <xsl:with-param name="gentext-key" select="$gentext-key"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <xsl:copy-of select="$content"/>
+
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template name="make.component.tocs">
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="contains($toc.params, 'toc')">
+    <xsl:call-template name="component.toc">
+      <xsl:with-param name="toc.title.p" 
+                      select="contains($toc.params, 'title')"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params,'figure') and .//figure">
+    <xsl:call-template name="component.list.of.titles">
+      <xsl:with-param name="titles" select="'figure'"/>
+      <xsl:with-param name="nodes" select=".//figure"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params,'table') and .//table">
+    <xsl:call-template name="component.list.of.titles">
+      <xsl:with-param name="titles" select="'table'"/>
+      <xsl:with-param name="nodes" select=".//table[not(@tocentry = 0)]"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params,'example') and .//example">
+    <xsl:call-template name="component.list.of.titles">
+      <xsl:with-param name="titles" select="'example'"/>
+      <xsl:with-param name="nodes" select=".//example"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params,'equation') and 
+                 .//equation[title or info/title]">
+    <xsl:call-template name="component.list.of.titles">
+      <xsl:with-param name="titles" select="'equation'"/>
+      <xsl:with-param name="nodes" 
+                      select=".//equation[title or info/title]"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params,'procedure') and 
+                 .//procedure[title or info/title]">
+    <xsl:call-template name="component.list.of.titles">
+      <xsl:with-param name="titles" select="'procedure'"/>
+      <xsl:with-param name="nodes" 
+                      select=".//procedure[title or info/title]"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$toc.params = ''">
+    </xsl:when>
+    <xsl:when test="$toc.params = 'nop'">
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template match="topic">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:element name="fo:{$section.container.element}">
+    <xsl:attribute name="id"><xsl:value-of 
+                        select="$id"/></xsl:attribute>
+    <xsl:call-template name="topic.titlepage"/>
+
+    <xsl:apply-templates/>
+
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="/topic | book/topic" name="topic.page.sequence">
+  <xsl:variable name="master-reference">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:apply-templates select="." mode="page.sequence">
+    <xsl:with-param name="master-reference" select="$master-reference"/>
+    <xsl:with-param name="content">
+      <xsl:element name="fo:{$section.container.element}">
+        <xsl:attribute name="id"><xsl:value-of 
+                            select="$id"/></xsl:attribute>
+        <xsl:call-template name="topic.titlepage"/>
+    
+        <xsl:apply-templates/>
+
+      </xsl:element>
+    </xsl:with-param>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="topic/info"></xsl:template>
+<xsl:template match="topic/title"></xsl:template>
+<xsl:template match="topic/subtitle"></xsl:template>
+<xsl:template match="topic/titleabbrev"></xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/fo/division.xsl b/applications/content/template/docbook/fo/division.xsl
new file mode 100644
index 0000000..4bdec7f
--- /dev/null
+++ b/applications/content/template/docbook/fo/division.xsl
@@ -0,0 +1,614 @@
+<?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:axf="http://www.antennahouse.com/names/XSL/Extensions"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="division.title">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="$node" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </xsl:variable>
+
+  <xsl:if test="$passivetex.extensions != 0">
+    <fotex:bookmark xmlns:fotex="http://www.tug.org/fotex"
+                    fotex-bookmark-level="1"
+                    fotex-bookmark-label="{$id}">
+      <xsl:value-of select="$title"/>
+    </fotex:bookmark>
+  </xsl:if>
+
+  <fo:block keep-with-next.within-column="always"
+            hyphenate="false">
+    <xsl:if test="$axf.extensions != 0">
+      <xsl:attribute name="axf:outline-level">
+        <xsl:choose>
+          <xsl:when test="count($node/ancestor::*) > 0">
+            <xsl:value-of select="count($node/ancestor::*)"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+      <xsl:attribute name="axf:outline-expand">false</xsl:attribute>
+      <xsl:attribute name="axf:outline-title">
+        <xsl:value-of select="normalize-space($title)"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:copy-of select="$title"/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="preamble"
+                select="*[not(self::book or self::set or self::setindex)]"/>
+
+  <xsl:variable name="content" select="book|set|setindex"/>
+
+  <xsl:variable name="titlepage-master-reference">
+    <xsl:call-template name="select.pagemaster">
+      <xsl:with-param name="pageclass" select="'titlepage'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="lot-master-reference">
+    <xsl:call-template name="select.pagemaster">
+      <xsl:with-param name="pageclass" select="'lot'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$preamble">
+    <fo:page-sequence hyphenate="{$hyphenate}"
+                      master-reference="{$titlepage-master-reference}">
+      <xsl:attribute name="language">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:attribute>
+      <xsl:attribute name="format">
+        <xsl:call-template name="page.number.format">
+          <xsl:with-param name="master-reference" 
+                          select="$titlepage-master-reference"/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <xsl:attribute name="initial-page-number">
+        <xsl:call-template name="initial.page.number">
+          <xsl:with-param name="master-reference" 
+                          select="$titlepage-master-reference"/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <xsl:attribute name="force-page-count">
+        <xsl:call-template name="force.page.count">
+          <xsl:with-param name="master-reference" 
+                          select="$titlepage-master-reference"/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <xsl:attribute name="hyphenation-character">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'hyphenation-character'"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:attribute name="hyphenation-push-character-count">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:attribute name="hyphenation-remain-character-count">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <xsl:apply-templates select="." mode="running.head.mode">
+        <xsl:with-param name="master-reference" select="$titlepage-master-reference"/>
+      </xsl:apply-templates>
+
+      <xsl:apply-templates select="." mode="running.foot.mode">
+        <xsl:with-param name="master-reference" select="$titlepage-master-reference"/>
+      </xsl:apply-templates>
+
+      <fo:flow flow-name="xsl-region-body">
+        <xsl:call-template name="set.flow.properties">
+          <xsl:with-param name="element" select="local-name(.)"/>
+          <xsl:with-param name="master-reference" 
+                          select="$titlepage-master-reference"/>
+        </xsl:call-template>
+
+        <fo:block id="{$id}">
+          <xsl:call-template name="set.titlepage"/>
+        </fo:block>
+      </fo:flow>
+    </fo:page-sequence>
+  </xsl:if>
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="contains($toc.params, 'toc')">
+    <fo:page-sequence hyphenate="{$hyphenate}"
+                      master-reference="{$lot-master-reference}">
+      <xsl:attribute name="language">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:attribute>
+      <xsl:attribute name="format">
+        <xsl:call-template name="page.number.format">
+          <xsl:with-param name="element" select="'toc'"/>
+          <xsl:with-param name="master-reference"
+                          select="$lot-master-reference"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:attribute name="initial-page-number">
+        <xsl:call-template name="initial.page.number">
+          <xsl:with-param name="master-reference"
+                          select="$lot-master-reference"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:attribute name="force-page-count">
+        <xsl:call-template name="force.page.count">
+          <xsl:with-param name="master-reference"
+                          select="$lot-master-reference"/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <xsl:attribute name="hyphenation-character">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'hyphenation-character'"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:attribute name="hyphenation-push-character-count">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:attribute name="hyphenation-remain-character-count">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <xsl:apply-templates select="." mode="running.head.mode">
+        <xsl:with-param name="master-reference" select="$lot-master-reference"/>
+      </xsl:apply-templates>
+
+      <xsl:apply-templates select="." mode="running.foot.mode">
+        <xsl:with-param name="master-reference" select="$lot-master-reference"/>
+      </xsl:apply-templates>
+
+      <fo:flow flow-name="xsl-region-body">
+        <xsl:call-template name="set.flow.properties">
+          <xsl:with-param name="element" select="local-name(.)"/>
+          <xsl:with-param name="master-reference" 
+                          select="$lot-master-reference"/>
+        </xsl:call-template>
+
+        <xsl:call-template name="set.toc"/>
+      </fo:flow>
+    </fo:page-sequence>
+  </xsl:if>
+
+  <xsl:apply-templates select="$content"/>
+</xsl:template>
+
+<xsl:template match="set/setinfo"></xsl:template>
+<xsl:template match="set/title"></xsl:template>
+<xsl:template match="set/subtitle"></xsl:template>
+<xsl:template match="set/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="preamble"
+                select="title|subtitle|titleabbrev|bookinfo|info"/>
+
+  <xsl:variable name="content"
+                select="node()[not(self::title or self::subtitle
+                            or self::titleabbrev
+                            or self::info
+                            or self::bookinfo)]"/>
+
+  <xsl:variable name="titlepage-master-reference">
+    <xsl:call-template name="select.pagemaster">
+      <xsl:with-param name="pageclass" select="'titlepage'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="front.cover"/>
+
+  <xsl:if test="$preamble">
+    <xsl:call-template name="page.sequence">
+      <xsl:with-param name="master-reference"
+                      select="$titlepage-master-reference"/>
+      <xsl:with-param name="content">
+        <fo:block id="{$id}">
+          <xsl:call-template name="book.titlepage"/>
+        </fo:block>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:apply-templates select="dedication" mode="dedication"/>
+  <xsl:apply-templates select="acknowledgements" mode="acknowledgements"/>
+
+  <xsl:call-template name="make.book.tocs"/>
+
+  <xsl:apply-templates select="$content"/>
+
+  <xsl:call-template name="back.cover"/>
+
+</xsl:template>
+
+<xsl:template match="book/bookinfo"></xsl:template>
+<xsl:template match="book/info"></xsl:template>
+<xsl:template match="book/title"></xsl:template>
+<xsl:template match="book/subtitle"></xsl:template>
+<xsl:template match="book/titleabbrev"></xsl:template>
+
+<!-- Placeholder templates -->
+<xsl:template name="front.cover"/>
+<xsl:template name="back.cover"/>
+
+<!-- ================================================================= -->
+<xsl:template name="make.book.tocs">
+
+  <xsl:variable name="lot-master-reference">
+    <xsl:call-template name="select.pagemaster">
+      <xsl:with-param name="pageclass" select="'lot'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="contains($toc.params, 'toc')">
+    <xsl:call-template name="page.sequence">
+      <xsl:with-param name="master-reference"
+                      select="$lot-master-reference"/>
+      <xsl:with-param name="element" select="'toc'"/>
+      <xsl:with-param name="gentext-key" select="'TableofContents'"/>
+      <xsl:with-param name="content">
+        <xsl:call-template name="division.toc">
+          <xsl:with-param name="toc.title.p" 
+                          select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params,'figure') and .//figure">
+    <xsl:call-template name="page.sequence">
+      <xsl:with-param name="master-reference"
+                      select="$lot-master-reference"/>
+      <xsl:with-param name="element" select="'toc'"/>
+      <xsl:with-param name="gentext-key" select="'ListofFigures'"/>
+      <xsl:with-param name="content">
+        <xsl:call-template name="list.of.titles">
+          <xsl:with-param name="titles" select="'figure'"/>
+          <xsl:with-param name="nodes" select=".//figure"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params,'table') and .//table">
+    <xsl:call-template name="page.sequence">
+      <xsl:with-param name="master-reference"
+                      select="$lot-master-reference"/>
+      <xsl:with-param name="element" select="'toc'"/>
+      <xsl:with-param name="gentext-key" select="'ListofTables'"/>
+      <xsl:with-param name="content">
+        <xsl:call-template name="list.of.titles">
+          <xsl:with-param name="titles" select="'table'"/>
+          <xsl:with-param name="nodes" select=".//table[not(@tocentry = 0)]"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params,'example') and .//example">
+    <xsl:call-template name="page.sequence">
+      <xsl:with-param name="master-reference"
+                      select="$lot-master-reference"/>
+      <xsl:with-param name="element" select="'toc'"/>
+      <xsl:with-param name="gentext-key" select="'ListofExample'"/>
+      <xsl:with-param name="content">
+        <xsl:call-template name="list.of.titles">
+          <xsl:with-param name="titles" select="'example'"/>
+          <xsl:with-param name="nodes" select=".//example"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params,'equation') and 
+                 .//equation[title or info/title]">
+    <xsl:call-template name="page.sequence">
+      <xsl:with-param name="master-reference"
+                      select="$lot-master-reference"/>
+      <xsl:with-param name="element" select="'toc'"/>
+      <xsl:with-param name="gentext-key" select="'ListofEquations'"/>
+      <xsl:with-param name="content">
+        <xsl:call-template name="list.of.titles">
+          <xsl:with-param name="titles" select="'equation'"/>
+          <xsl:with-param name="nodes" 
+                          select=".//equation[title or info/title]"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params,'procedure') and 
+                 .//procedure[title or info/title]">
+    <xsl:call-template name="page.sequence">
+      <xsl:with-param name="master-reference"
+                      select="$lot-master-reference"/>
+      <xsl:with-param name="element" select="'toc'"/>
+      <xsl:with-param name="gentext-key" select="'ListofProcedures'"/>
+      <xsl:with-param name="content">
+        <xsl:call-template name="list.of.titles">
+          <xsl:with-param name="titles" select="'procedure'"/>
+          <xsl:with-param name="nodes" 
+                          select=".//procedure[title or info/title]"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+<!-- ==================================================================== -->
+
+<xsl:template match="part">
+  <xsl:if test="not(partintro)">
+    <xsl:apply-templates select="." mode="part.titlepage.mode"/>
+    <xsl:call-template name="generate.part.toc"/>
+  </xsl:if>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="part" mode="part.titlepage.mode">
+  <!-- done this way to force the context node to be the part -->
+  <xsl:param name="additional.content"/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="titlepage-master-reference">
+    <xsl:call-template name="select.pagemaster">
+      <xsl:with-param name="pageclass" select="'titlepage'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <fo:page-sequence hyphenate="{$hyphenate}"
+                    master-reference="{$titlepage-master-reference}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" 
+                        select="$titlepage-master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" 
+                        select="$titlepage-master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" 
+                        select="$titlepage-master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-reference" select="$titlepage-master-reference"/>
+    </xsl:apply-templates>
+
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-reference" select="$titlepage-master-reference"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" 
+                        select="$titlepage-master-reference"/>
+      </xsl:call-template>
+
+      <fo:block id="{$id}">
+        <xsl:call-template name="part.titlepage"/>
+      </fo:block>
+      <xsl:copy-of select="$additional.content"/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="part/docinfo|partinfo"></xsl:template>
+<xsl:template match="part/info"></xsl:template>
+<xsl:template match="part/title"></xsl:template>
+<xsl:template match="part/subtitle"></xsl:template>
+<xsl:template match="part/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="generate.part.toc">
+  <xsl:param name="part" select="."/>
+
+  <xsl:variable name="lot-master-reference">
+    <xsl:call-template name="select.pagemaster">
+      <xsl:with-param name="pageclass" select="'lot'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="$part"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="nodes" select="reference|
+                                     preface|
+                                     chapter|
+                                     appendix|
+                                     article|
+                                     bibliography|
+                                     glossary|
+                                     index"/>
+
+  <xsl:if test="count($nodes) &gt; 0 and contains($toc.params, 'toc')">
+    <fo:page-sequence hyphenate="{$hyphenate}"
+                      master-reference="{$lot-master-reference}">
+      <xsl:attribute name="language">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:attribute>
+      <xsl:attribute name="format">
+        <xsl:call-template name="page.number.format">
+          <xsl:with-param name="element" select="'toc'"/>
+          <xsl:with-param name="master-reference" 
+                          select="$lot-master-reference"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:attribute name="initial-page-number">
+        <xsl:call-template name="initial.page.number">
+          <xsl:with-param name="element" select="'toc'"/>
+          <xsl:with-param name="master-reference" 
+                          select="$lot-master-reference"/>
+         </xsl:call-template>
+      </xsl:attribute>
+      <xsl:attribute name="force-page-count">
+        <xsl:call-template name="force.page.count">
+          <xsl:with-param name="master-reference" 
+                          select="$lot-master-reference"/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <xsl:attribute name="hyphenation-character">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'hyphenation-character'"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:attribute name="hyphenation-push-character-count">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:attribute name="hyphenation-remain-character-count">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <xsl:apply-templates select="$part" mode="running.head.mode">
+        <xsl:with-param name="master-reference" select="$lot-master-reference"/>
+      </xsl:apply-templates>
+
+      <xsl:apply-templates select="$part" mode="running.foot.mode">
+        <xsl:with-param name="master-reference" select="$lot-master-reference"/>
+      </xsl:apply-templates>
+
+      <fo:flow flow-name="xsl-region-body">
+        <xsl:call-template name="set.flow.properties">
+          <xsl:with-param name="element" select="local-name(.)"/>
+          <xsl:with-param name="master-reference" 
+                          select="$lot-master-reference"/>
+        </xsl:call-template>
+
+        <xsl:call-template name="division.toc">
+          <xsl:with-param name="toc-context" select="$part"/>
+          <xsl:with-param name="toc.title.p" 
+                          select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+
+      </fo:flow>
+    </fo:page-sequence>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="part/partintro">
+  <xsl:apply-templates select=".." mode="part.titlepage.mode">
+    <xsl:with-param name="additional.content">
+      <xsl:if test="title">
+        <xsl:call-template name="partintro.titlepage"/>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:apply-templates>
+
+  <xsl:call-template name="generate.part.toc">
+    <xsl:with-param name="part" select=".."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="partintro/title"></xsl:template>
+<xsl:template match="partintro/subtitle"></xsl:template>
+<xsl:template match="partintro/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book" mode="division.number">
+  <xsl:number from="set" count="book" format="1."/>
+</xsl:template>
+
+<xsl:template match="part" mode="division.number">
+  <xsl:number from="book" count="part" format="I."/>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/fo/docbook.xsl b/applications/content/template/docbook/fo/docbook.xsl
new file mode 100644
index 0000000..189401f
--- /dev/null
+++ b/applications/content/template/docbook/fo/docbook.xsl
@@ -0,0 +1,335 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:ng="http://docbook.org/docbook-ng"
+                xmlns:db="http://docbook.org/ns/docbook"
+                exclude-result-prefixes="db ng exsl"
+                version='1.0'>
+
+<!-- It is important to use indent="no" here, otherwise verbatim -->
+<!-- environments get broken by indented tags...at least when the -->
+<!-- callout extension is used...at least with some processors -->
+<xsl:output method="xml" indent="no"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION.xsl"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/utility.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="../common/olink.xsl"/>
+<xsl:include href="../common/targets.xsl"/>
+<xsl:include href="../common/pi.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="autoidx.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="htmltbl.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="fo.xsl"/>
+<xsl:include href="fo-rtf.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="biblio-iso690.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="task.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="pagesetup.xsl"/>
+<xsl:include href="pi.xsl"/>
+<xsl:include href="spaces.xsl"/>
+<xsl:include href="ebnf.xsl"/>
+<xsl:include href="../html/chunker.xsl"/>
+<xsl:include href="annotations.xsl"/>
+<xsl:include href="../common/stripns.xsl"/>
+
+<xsl:include href="fop.xsl"/>
+<xsl:include href="fop1.xsl"/>
+<xsl:include href="passivetex.xsl"/>
+<xsl:include href="xep.xsl"/>
+<xsl:include href="axf.xsl"/>
+<xsl:include href="ptc.xsl"/>
+
+<xsl:param name="stylesheet.result.type" select="'fo'"/>
+
+<!-- ==================================================================== -->
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:text>Element </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text> in namespace '</xsl:text>
+    <xsl:value-of select="namespace-uri(.)"/>
+    <xsl:text>' encountered</xsl:text>
+    <xsl:if test="parent::*">
+      <xsl:text> in </xsl:text>
+      <xsl:value-of select="name(parent::*)"/>
+    </xsl:if>
+    <xsl:text>, but no template matches.</xsl:text>
+  </xsl:message>
+  
+  <fo:block color="red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/> 
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </fo:block>
+</xsl:template>
+
+<!-- Update this list if new root elements supported -->
+<xsl:variable name="root.elements" select="' appendix article bibliography book chapter colophon dedication glossary index part preface qandaset refentry reference sect1 section set setindex '"/>
+
+<xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <xsl:when test="$exsl.node.set.available != 0
+                    and (*/self::ng:* or */self::db:*)">
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>stripped namespace before processing</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:variable name="nons">
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:variable>
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates select="exsl:node-set($nons)"/>
+    </xsl:when>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="*/self::ng:* or */self::db:*">
+      <xsl:message terminate="yes">
+        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+        <xsl:text> cannot proceed.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:variable name="root.element" select="key('id', $rootid)"/>
+          <xsl:choose>
+            <xsl:when test="count($root.element) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:when test="not(contains($root.elements, concat(' ', local-name($root.element), ' ')))">
+              <xsl:message terminate="yes">
+                <xsl:text>ERROR: Document root element ($rootid=</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>) for FO output </xsl:text>
+                <xsl:text>must be one of the following elements:</xsl:text>
+                <xsl:value-of select="$root.elements"/>
+              </xsl:message>
+            </xsl:when>
+            <!-- Otherwise proceed -->
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or
+                            $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="$root.element"
+                                     mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="$root.element"
+                                     mode="process.root"/>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <!-- Otherwise process the document root element -->
+        <xsl:otherwise>
+          <xsl:variable name="document.element" select="*[1]"/>
+          <xsl:choose>
+            <xsl:when test="not(contains($root.elements,
+                     concat(' ', local-name($document.element), ' ')))">
+              <xsl:message terminate="yes">
+                <xsl:text>ERROR: Document root element for FO output </xsl:text>
+                <xsl:text>must be one of the following elements:</xsl:text>
+                <xsl:value-of select="$root.elements"/>
+              </xsl:message>
+            </xsl:when>
+            <!-- Otherwise proceed -->
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or
+                            $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="/"
+                                     mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="/"
+                                     mode="process.root"/>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="document.element" select="self::*"/>
+
+  <xsl:call-template name="root.messages"/>
+
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$document.element/title[1]">
+        <xsl:value-of select="$document.element/title[1]"/>
+      </xsl:when>
+      <xsl:otherwise>[could not find document title]</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  
+  <!-- Include all id values in XEP output -->
+  <xsl:if test="$xep.extensions != 0">
+    <xsl:processing-instruction 
+     name="xep-pdf-drop-unused-destinations">false</xsl:processing-instruction>
+  </xsl:if>
+
+  <fo:root xsl:use-attribute-sets="root.properties">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language">
+        <xsl:with-param name="target" select="/*[1]"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:if test="$xep.extensions != 0">
+      <xsl:call-template name="xep-pis"/>
+      <xsl:call-template name="xep-document-information"/>
+    </xsl:if>
+    <xsl:if test="$axf.extensions != 0">
+      <xsl:call-template name="axf-document-information"/>
+    </xsl:if>
+
+    <xsl:call-template name="setup.pagemasters"/>
+
+    <xsl:if test="$fop.extensions != 0">
+      <xsl:apply-templates select="$document.element" mode="fop.outline"/>
+    </xsl:if>
+
+    <xsl:if test="$fop1.extensions != 0">
+      <xsl:call-template name="fop1-document-information"/>
+      <xsl:variable name="bookmarks">
+        <xsl:apply-templates select="$document.element" 
+                             mode="fop1.outline"/>
+      </xsl:variable>
+      <xsl:if test="string($bookmarks) != ''">
+        <fo:bookmark-tree>
+          <xsl:copy-of select="$bookmarks"/>
+        </fo:bookmark-tree>
+      </xsl:if>
+      <xsl:apply-templates select="$document.element" 
+                           mode="fop1.foxdest"/>
+    </xsl:if>
+
+    <xsl:if test="$xep.extensions != 0">
+      <xsl:variable name="bookmarks">
+        <xsl:apply-templates select="$document.element" mode="xep.outline"/>
+      </xsl:variable>
+      <xsl:if test="string($bookmarks) != ''">
+        <rx:outline xmlns:rx="http://www.renderx.com/XSL/Extensions">
+          <xsl:copy-of select="$bookmarks"/>
+        </rx:outline>
+      </xsl:if>
+    </xsl:if>
+
+    <xsl:if test="$arbortext.extensions != 0 and $ati.xsl11.bookmarks != 0">
+      <xsl:variable name="bookmarks">
+        <xsl:apply-templates select="$document.element"
+                             mode="ati.xsl11.bookmarks"/>
+      </xsl:variable>
+      <xsl:if test="string($bookmarks) != ''">
+        <fo:bookmark-tree>
+          <xsl:copy-of select="$bookmarks"/>
+        </fo:bookmark-tree>
+      </xsl:if>
+    </xsl:if>
+
+    <xsl:apply-templates select="$document.element"/>
+  </fo:root>
+</xsl:template>
+
+<xsl:template name="root.messages">
+  <!-- redefine this any way you'd like to output messages -->
+  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+  <xsl:message>
+    <xsl:text>Making </xsl:text>
+    <xsl:value-of select="$page.orientation"/>
+    <xsl:text> pages on </xsl:text>
+    <xsl:value-of select="$paper.type"/>
+    <xsl:text> paper (</xsl:text>
+    <xsl:value-of select="$page.width"/>
+    <xsl:text>x</xsl:text>
+    <xsl:value-of select="$page.height"/>
+    <xsl:text>)</xsl:text>
+  </xsl:message>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/ebnf.xsl b/applications/content/template/docbook/fo/ebnf.xsl
new file mode 100644
index 0000000..d9cc04a
--- /dev/null
+++ b/applications/content/template/docbook/fo/ebnf.xsl
@@ -0,0 +1,325 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year><year>2001</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>HTML EBNF Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This reference describes the templates and parameters relevant
+to formatting EBNF markup.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productionset">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="title">
+      <fo:block id="{$id}" xsl:use-attribute-sets="formal.object.properties">
+        <xsl:call-template name="formal.object.heading">
+          <xsl:with-param name="placement" select="'before'"/>
+        </xsl:call-template>
+
+        <fo:table table-layout="fixed" width="100%">
+          <fo:table-column column-number="1" column-width="3%"/>
+          <fo:table-column column-number="2" column-width="15%"/>
+          <fo:table-column column-number="3" column-width="5%"/>
+          <fo:table-column column-number="4" column-width="52%"/>
+          <fo:table-column column-number="5" column-width="25%"/>
+          <fo:table-body start-indent="0pt" end-indent="0pt">
+            <xsl:apply-templates select="production|productionrecap"/>
+          </fo:table-body>
+        </fo:table>
+      </fo:block>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:table id="{$id}" table-layout="fixed" width="100%">
+        <fo:table-column column-number="1" column-width="3%"/>
+        <fo:table-column column-number="2" column-width="15%"/>
+        <fo:table-column column-number="3" column-width="5%"/>
+        <fo:table-column column-number="4" column-width="52%"/>
+        <fo:table-column column-number="5" column-width="25%"/>
+        <fo:table-body start-indent="0pt" end-indent="0pt">
+          <xsl:apply-templates select="production|productionrecap"/>
+        </fo:table-body>
+      </fo:table>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="productionset/title">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="production">
+  <xsl:param name="recap" select="false()"/>
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <fo:table-row>
+    <fo:table-cell>
+      <fo:block text-align="start">
+        <xsl:text>[</xsl:text>
+        <xsl:number count="production" level="any"/>
+        <xsl:text>]</xsl:text>
+      </fo:block>
+    </fo:table-cell>
+    <fo:table-cell>
+      <fo:block text-align="end">
+        <xsl:choose>
+          <xsl:when test="$recap">
+            <fo:basic-link internal-destination="{$id}"
+                           xsl:use-attribute-sets="xref.properties">
+              <xsl:apply-templates select="lhs"/>
+            </fo:basic-link>
+          </xsl:when>
+          <xsl:otherwise>
+            <fo:wrapper id="{$id}">
+              <xsl:apply-templates select="lhs"/>
+            </fo:wrapper>
+          </xsl:otherwise>
+        </xsl:choose>
+      </fo:block>
+    </fo:table-cell>
+    <fo:table-cell>
+      <fo:block text-align="center">
+        <xsl:copy-of select="$ebnf.assignment"/>
+      </fo:block>
+    </fo:table-cell>
+    <fo:table-cell>
+      <fo:block>
+        <xsl:apply-templates select="rhs"/>
+        <xsl:copy-of select="$ebnf.statement.terminator"/>
+      </fo:block>
+    </fo:table-cell>
+    <fo:table-cell border-start-width="3pt">
+      <fo:block text-align="start">
+        <xsl:choose>
+          <xsl:when test="rhs/lineannotation|constraint">
+            <xsl:apply-templates select="rhs/lineannotation" mode="rhslo"/>
+            <xsl:apply-templates select="constraint"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text>&#160;</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </fo:block>
+    </fo:table-cell>
+  </fo:table-row>
+</xsl:template>
+
+<xsl:template match="productionrecap">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:if test="count($targets)=0">
+    <xsl:message>
+      <xsl:text>Error: no ID for productionrecap linkend: </xsl:text>
+      <xsl:value-of select="@linkend"/>
+      <xsl:text>.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="count($targets)>1">
+    <xsl:message>
+      <xsl:text>Warning: multiple "IDs" for productionrecap linkend: </xsl:text>
+      <xsl:value-of select="@linkend"/>
+      <xsl:text>.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:apply-templates select="$target">
+    <xsl:with-param name="recap" select="true()"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="lhs">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="rhs">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="nonterminal">
+  <xsl:variable name="linkend">
+    <xsl:call-template name="xpointer.idref">
+      <xsl:with-param name="xpointer" select="@def"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="$linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="check.idref.targets">
+    <xsl:with-param name="linkend" select="$linkend"/>
+    <xsl:with-param name="element-list">production</xsl:with-param>
+  </xsl:call-template>
+
+  <!-- If you don't provide content, you can't point outside this doc. -->
+  <xsl:choose>
+    <xsl:when test="*|text()"><!--nop--></xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$linkend = ''">
+	<xsl:message>
+	  <xsl:text>Non-terminals with no content must point to </xsl:text>
+	  <xsl:text>production elements in the current document.</xsl:text>
+	</xsl:message>
+	<xsl:message>
+	  <xsl:text>Invalid xpointer for empty nt: </xsl:text>
+	  <xsl:value-of select="@def"/>
+	</xsl:message>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:variable name="href">
+    <xsl:choose>
+      <xsl:when test="$linkend != ''">
+	<xsl:variable name="targets" select="key('id',$linkend)"/>
+	<xsl:variable name="target" select="$targets[1]"/>
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$target"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="@def"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:basic-link internal-destination="{$href}"
+                 xsl:use-attribute-sets="xref.properties">
+    <xsl:choose>
+      <xsl:when test="*|text()">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="$linkend != ''">
+            <xsl:variable name="targets" select="key('id',$linkend)"/>
+            <xsl:variable name="target" select="$targets[1]"/>
+            <xsl:apply-templates select="$target/lhs"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text>???</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:basic-link>
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation" mode="rhslo">
+  <xsl:text>/*&#160;</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>&#160;*/</xsl:text>
+</xsl:template>
+
+<xsl:template match="constraint">
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="check.idref.targets">
+    <xsl:with-param name="linkend" select="@linkend"/>
+    <xsl:with-param name="element-list">constraintdef</xsl:with-param>
+  </xsl:call-template>
+
+  <xsl:variable name="href">
+    <xsl:variable name="targets" select="key('id',@linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$target"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="preceding-sibling::constraint">
+    <fo:inline linefeed-treatment="preserve">&#xA;</fo:inline>
+  </xsl:if>
+  <xsl:text>[&#160;</xsl:text>
+
+  <xsl:choose>
+    <xsl:when test="@role">
+      <xsl:value-of select="@role"/>
+      <xsl:text>: </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="targets" select="key('id',@linkend)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+      <xsl:if test="$target/@role">
+	<xsl:value-of select="$target/@role"/>
+	<xsl:text>: </xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <fo:basic-link internal-destination="{$href}"
+                 xsl:use-attribute-sets="xref.properties">
+    <xsl:variable name="targets" select="key('id',@linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+    <xsl:apply-templates select="$target" mode="title.markup"/>
+  </fo:basic-link>
+  <xsl:text>&#160;]</xsl:text>
+</xsl:template>
+
+<xsl:template match="constraintdef">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <fo:block id="{$id}">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="constraintdef/title">
+  <fo:block font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/fo-rtf.xsl b/applications/content/template/docbook/fo/fo-rtf.xsl
new file mode 100644
index 0000000..87f2818
--- /dev/null
+++ b/applications/content/template/docbook/fo/fo-rtf.xsl
@@ -0,0 +1,154 @@
+<?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:exsl="http://exslt.org/common"
+                xmlns:set="http://exslt.org/sets"
+                exclude-result-prefixes="exsl set"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheet distribution.
+     See ../README or http://docbook.sf.net/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- This module contains templates that match against FO nodes. It is used
+     to post-process result tree fragments for some sorts of cleanup.
+     These templates can only ever be fired by a processor that supports
+     exslt:node-set(). -->
+
+<!-- ==================================================================== -->
+
+<!-- insert.fo.fnum mode templates insert a particular RTF at the beginning
+     of the first paragraph in the primary RTF. In fact, they are inserting
+     a footnote-number, so we tinker a few other things too, like spacing and
+     font-sizes. -->
+
+<xsl:template match="/" mode="insert.fo.fnum">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:apply-templates mode="insert.fo.fnum">
+    <xsl:with-param name="mark" select="$mark"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.fo.fnum">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="insert.fo.fnum">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="fo:block" mode="insert.fo.fnum">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:for-each select="@*">
+      <xsl:choose>
+        <xsl:when test="starts-with(name(.), 'space-before')"/>
+        <xsl:when test="starts-with(name(.), 'space-after')"/>
+        <xsl:when test="starts-with(name(.), 'font-size')"/>
+        <xsl:otherwise>
+          <xsl:copy-of select="."/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+    <xsl:if test="not(preceding::fo:block)">
+      <xsl:copy-of select="$mark"/>
+    </xsl:if>
+    <xsl:apply-templates mode="insert.fo.fnum">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="insert.fo.fnum">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- insert.fo.block mode templates insert a particular RTF at the beginning
+     of the first paragraph in the primary RTF. -->
+
+<xsl:template match="/" mode="insert.fo.block">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:apply-templates mode="insert.fo.block">
+    <xsl:with-param name="mark" select="$mark"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.fo.block">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="insert.fo.block">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="fo:block" mode="insert.fo.block">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:if test="not(preceding::fo:block)">
+      <xsl:copy-of select="$mark"/>
+    </xsl:if>
+    <xsl:apply-templates mode="insert.fo.block">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="insert.fo.block">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- insert.fo.text mode templates insert a particular RTF at the beginning
+     of the first text-node in the primary RTF. -->
+
+<xsl:template match="/" mode="insert.fo.text">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:apply-templates mode="insert.fo.text">
+    <xsl:with-param name="mark" select="$mark"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.fo.text">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="insert.fo.text">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="insert.fo.text">
+  <xsl:param name="mark" select="'?'"/>
+
+  <xsl:if test="not(preceding::text())">
+    <xsl:copy-of select="$mark"/>
+  </xsl:if>
+
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="processing-instruction()|comment()" mode="insert.fo.text">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/fo.xsl b/applications/content/template/docbook/fo/fo.xsl
new file mode 100644
index 0000000..3c50529
--- /dev/null
+++ b/applications/content/template/docbook/fo/fo.xsl
@@ -0,0 +1,117 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- These variables set the margin-left or -right attribute value for FO output based on
+     the writing-mode specified in the gentext file for the document's lang. -->
+
+<xsl:param name="direction.align.start">
+  <xsl:choose>
+    <!-- FOP does not support writing-mode="rl-tb" -->
+    <xsl:when test="$fop.extensions != 0">left</xsl:when>
+    <xsl:when test="$fop1.extensions != 0">left</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'lr')">left</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'rl')">right</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'tb')">top</xsl:when>
+    <xsl:otherwise>left</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:param name="direction.align.end">
+  <xsl:choose>
+    <xsl:when test="$fop.extensions != 0">right</xsl:when>
+    <xsl:when test="$fop1.extensions != 0">right</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'lr')">right</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'rl')">left</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'tb')">bottom</xsl:when>
+    <xsl:otherwise>right</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:param name="direction.mode">
+  <xsl:choose>
+    <xsl:when test="$fop.extensions != 0 and
+                    starts-with($writing.mode, 'rl')">
+      <xsl:message>WARNING: FOP does not support right-to-left writing-mode</xsl:message>
+      <xsl:text>lr-tb</xsl:text>
+    </xsl:when>
+    <xsl:when test="$fop1.extensions != 0 and
+                    starts-with($writing.mode, 'rl')">
+      <xsl:message>WARNING: FOP does not support right-to-left writing-mode</xsl:message>
+      <xsl:text>lr-tb</xsl:text>
+    </xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'lr')">lr-tb</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'rl')">rl-tb</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'tb')">tb-rl</xsl:when>
+    <xsl:otherwise>lr-tb</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+
+<xsl:template name="anchor">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="conditional" select="1"/>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:if test="$conditional = 0 or $node/@id or $node/@xml:id">
+    <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="dingbat">
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:variable name="symbol">
+    <xsl:choose>
+      <xsl:when test="$dingbat='bullet'">o</xsl:when>
+      <xsl:when test="$dingbat='copyright'">&#x00A9;</xsl:when>
+      <xsl:when test="$dingbat='trademark'">&#x2122;</xsl:when>
+      <xsl:when test="$dingbat='trade'">&#x2122;</xsl:when>
+      <xsl:when test="$dingbat='registered'">&#x00AE;</xsl:when>
+      <xsl:when test="$dingbat='service'">(SM)</xsl:when>
+      <xsl:when test="$dingbat='ldquo'">"</xsl:when>
+      <xsl:when test="$dingbat='rdquo'">"</xsl:when>
+      <xsl:when test="$dingbat='lsquo'">'</xsl:when>
+      <xsl:when test="$dingbat='rsquo'">'</xsl:when>
+      <xsl:when test="$dingbat='em-dash'">&#x2014;</xsl:when>
+      <xsl:when test="$dingbat='en-dash'">-</xsl:when>
+      <xsl:otherwise>o</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$dingbat.font.family = ''">
+      <xsl:copy-of select="$symbol"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:inline font-family="{$dingbat.font.family}">
+        <xsl:copy-of select="$symbol"/>
+      </fo:inline>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="href.target">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/fo/footnote.xsl b/applications/content/template/docbook/fo/footnote.xsl
new file mode 100644
index 0000000..93468c9
--- /dev/null
+++ b/applications/content/template/docbook/fo/footnote.xsl
@@ -0,0 +1,220 @@
+<?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:xlink="http://www.w3.org/1999/xlink"
+                xmlns:exsl="http://exslt.org/common"
+                exclude-result-prefixes="exsl xlink"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template name="format.footnote.mark">
+  <xsl:param name="mark" select="'?'"/>
+  <fo:inline xsl:use-attribute-sets="footnote.mark.properties">
+    <xsl:choose>
+      <xsl:when test="$fop.extensions != 0">
+        <xsl:attribute name="vertical-align">super</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:attribute name="baseline-shift">super</xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:copy-of select="$mark"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="footnote">
+  <xsl:choose>
+    <xsl:when test="ancestor::table or ancestor::informaltable">
+      <xsl:call-template name="format.footnote.mark">
+        <xsl:with-param name="mark">
+          <xsl:apply-templates select="." mode="footnote.number"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:footnote>
+        <fo:inline>
+          <xsl:call-template name="format.footnote.mark">
+            <xsl:with-param name="mark">
+              <xsl:apply-templates select="." mode="footnote.number"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </fo:inline>
+        <fo:footnote-body xsl:use-attribute-sets="footnote.properties">
+          <xsl:apply-templates/>
+        </fo:footnote-body>
+      </fo:footnote>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="footnoteref">
+  <xsl:variable name="footnote" select="key('id',@linkend)"/>
+
+  <xsl:if test="not(local-name($footnote) = 'footnote')">
+   <xsl:message terminate="yes">
+ERROR: A footnoteref element has a linkend that points to an element that is not a footnote. 
+Typically this happens when an id attribute is accidentally applied to the child of a footnote element. 
+target element: <xsl:value-of select="local-name($footnote)"/>
+linkend/id: <xsl:value-of select="@linkend"/>
+   </xsl:message>
+  </xsl:if>
+
+  <xsl:call-template name="format.footnote.mark">
+    <xsl:with-param name="mark">
+      <xsl:apply-templates select="$footnote" mode="footnote.number"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="footnote" mode="footnote.number">
+  <xsl:choose>
+    <xsl:when test="string-length(@label) != 0">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="ancestor::table or ancestor::informaltable">
+      <xsl:variable name="tfnum">
+        <xsl:number level="any" from="table|informaltable" format="1"/>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="string-length($table.footnote.number.symbols) &gt;= $tfnum">
+          <xsl:value-of select="substring($table.footnote.number.symbols, $tfnum, 1)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number level="any" from="table|informaltable"
+                      format="{$table.footnote.number.format}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="fnum">
+        <!-- * Determine the footnote number to display for this footnote, -->
+        <!-- * by counting all foonotes, ulinks, and any elements that have -->
+        <!-- * an xlink:href attribute that meets the following criteria: -->
+        <!-- * -->
+        <!-- * - the content of the element is not a URI that is the same -->
+        <!-- *   URI as the value of the href attribute -->
+        <!-- * - the href attribute is not an internal ID reference (does -->
+        <!-- *   not start with a hash sign) -->
+        <!-- * - the href is not part of an olink reference (the element -->
+        <!-- * - does not have an xlink:role attribute that indicates it is -->
+        <!-- *   an olink, and the hrf does not contain a hash sign) -->
+        <!-- * - the element either has no xlink:type attribute or has -->
+        <!-- *   an xlink:type attribute whose value is 'simple' -->
+        <!-- *  -->
+        <!-- * Note that hyperlinks are counted only if both the value of -->
+        <!-- * ulink.footnotes is non-zero and the value of ulink.show is -->
+        <!-- * non-zero -->
+        <!-- FIXME: list in @from is probably not complete -->
+        <xsl:number level="any" 
+                    from="chapter|appendix|preface|article|refentry|bibliography" 
+                    count="footnote[not(@label)][not(ancestor::table) and not(ancestor::informaltable)]
+                    |ulink[$ulink.footnotes != 0][node()][@url != .][not(ancestor::footnote)][$ulink.show != 0]
+                    |*[node()][@xlink:href][not(@xlink:href = .)][not(starts-with(@xlink:href,'#'))]
+                      [not(contains(@xlink:href,'#') and @xlink:role = $xolink.role)]
+                      [not(@xlink:type) or @xlink:type='simple']
+                      [not(ancestor::footnote)][$ulink.footnotes != 0][$ulink.show != 0]
+                    "
+                    format="1"/>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="string-length($footnote.number.symbols) &gt;= $fnum">
+          <xsl:value-of select="substring($footnote.number.symbols, $fnum, 1)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number value="$fnum" format="{$footnote.number.format}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="footnote.body.number">
+  <xsl:variable name="footnote.mark">
+    <xsl:call-template name="format.footnote.mark">
+      <xsl:with-param name="mark">
+        <xsl:apply-templates select="ancestor::footnote" mode="footnote.number"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="fo">
+    <xsl:apply-templates select="."/>
+  </xsl:variable>
+
+  <xsl:variable name="fo-nodes" select="exsl:node-set($fo)"/>
+
+  <xsl:choose>
+    <xsl:when test="$fo-nodes//fo:block">
+      <xsl:apply-templates select="$fo-nodes" mode="insert.fo.fnum">
+        <xsl:with-param name="mark" select="$footnote.mark"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="$fo-nodes" mode="insert.fo.text">
+        <xsl:with-param name="mark" select="$footnote.mark"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="footnote/para[1]
+                     |footnote/simpara[1]
+                     |footnote/formalpara[1]"
+              priority="2">
+  <!-- this only works if the first thing in a footnote is a para, -->
+  <!-- which is ok, because it usually is. -->
+  <fo:block>
+    <xsl:call-template name="format.footnote.mark">
+      <xsl:with-param name="mark">
+        <xsl:apply-templates select="ancestor::footnote" mode="footnote.number"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="footnote" mode="table.footnote.mode">
+  <xsl:choose>
+    <xsl:when test="local-name(*[1]) = 'para' or local-name(*[1]) = 'simpara'">
+      <fo:block xsl:use-attribute-sets="table.footnote.properties">
+        <xsl:apply-templates/>
+      </fo:block>
+    </xsl:when>
+
+    <xsl:when test="$exsl.node.set.available != 0">
+      <fo:block xsl:use-attribute-sets="table.footnote.properties">
+        <xsl:apply-templates select="*[1]" mode="footnote.body.number"/>
+        <xsl:apply-templates select="*[position() &gt; 1]"/>
+      </fo:block>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>Warning: footnote number may not be generated </xsl:text>
+        <xsl:text>correctly; </xsl:text>
+        <xsl:value-of select="local-name(*[1])"/>
+        <xsl:text> unexpected as first child of footnote.</xsl:text>
+      </xsl:message>
+      <fo:block xsl:use-attribute-sets="table.footnote.properties">
+        <xsl:apply-templates/>
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/fop.xsl b/applications/content/template/docbook/fo/fop.xsl
new file mode 100644
index 0000000..a5a6c21
--- /dev/null
+++ b/applications/content/template/docbook/fo/fop.xsl
@@ -0,0 +1,93 @@
+<?xml version='1.0' encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:fox="http://xml.apache.org/fop/extensions"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+     (c) Stephane Bline Peregrine Systems 2001
+     Driver file to allow pdf bookmarking (based on fop implementation).
+     ******************************************************************** -->
+<!--
+In PDF bookmarks can't be used characters with code>255. This version of file
+translates characters with code>255 back to ASCII.
+
+   Pavel Zampach (zampach@volny.cz)
+-->
+
+<xsl:variable name="a-dia" select=
+"'&#257;&#259;&#261;&#263;&#265;&#267;&#269;&#271;&#273;&#275;&#277;&#279;&#281;&#283;&#339;&#285;&#287;&#289;&#291;&#293;&#295;&#297;&#299;&#301;&#303;&#305;&#309;&#311;&#314;&#316;&#318;&#320;&#322;&#324;&#326;&#328;&#331;&#333;&#335;&#337;&#341;&#343;&#345;&#347;&#349;&#351;&#353;&#355;&#357;&#359;&#361;&#363;&#365;&#367;&#369;&#371;&#373;&#375;&#378;&#380;&#382;&#256;&#258;&#260;&#262;&#264;&#266;&#268;&#270;&#272;&#274;&#276;&#278;&#280;&#282;&#338;&#284;&#286;&#288;&#290;&#292;&#294;&#296;&#298;&#300;&#302;&#304;&#308;&#310;&#313;&#315;&#317;&#319;&#321;&#323;&#325;&#327;&#330;&#332;&#334;&#336;&#340;&#342;&#344;&#346;&#348;&#350;&#352;&#354;&#356;&#358;&#360;&#362;&#364;&#366;&#368;&#370;&#372;&#374;&#376;&#377;&#379;&#381;'"/>
+<xsl:variable name="a-asc" select=
+"'aaaccccddeeeeeegggghhiiiiijklllllnnnnooorrrsssstttuuuuuuwyzzzAAACCCCDDEEEEEEGGGGHHIIIIIJKLLLLLNNNNOOORRRSSSSTTTUUUUUUWYYZZZ'"/>
+
+<xsl:template match="*" mode="fop.outline">
+  <xsl:variable name="id">
+    <xsl:value-of select="(@id|@xml:id)[1]"/>
+  </xsl:variable>
+  <xsl:if test="$id != ''">
+    <fox:destination internal-destination="{$id}"/>
+  </xsl:if>
+  <xsl:apply-templates select="*" mode="fop.outline"/>
+</xsl:template>
+
+<xsl:template match="set|book|part|reference|preface|chapter|appendix|article
+                     |glossary|bibliography|index|setindex
+                     |refentry
+                     |sect1|sect2|sect3|sect4|sect5|section"
+              mode="fop.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="self::index and $generate.index = 0"/>	
+    <xsl:when test="parent::*">
+      <fox:outline internal-destination="{$id}">
+        <fox:label>
+          <xsl:value-of select="normalize-space(translate($bookmark-label, $a-dia, $a-asc))"/>
+        </fox:label>
+        <xsl:apply-templates select="*" mode="fop.outline"/>
+      </fox:outline>
+    </xsl:when>
+    <xsl:otherwise>
+      <fox:outline internal-destination="{$id}">
+        <fox:label>
+          <xsl:value-of select="normalize-space(translate($bookmark-label, $a-dia, $a-asc))"/>
+        </fox:label>
+      </fox:outline>
+
+      <xsl:variable name="toc.params">
+        <xsl:call-template name="find.path.params">
+          <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:if test="contains($toc.params, 'toc')
+                    and (book|part|reference|preface|chapter|appendix|article
+                         |glossary|bibliography|index|setindex
+                         |refentry
+                         |sect1|sect2|sect3|sect4|sect5|section)">
+        <fox:outline internal-destination="toc...{$id}">
+          <fox:label>
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'TableofContents'"/>
+            </xsl:call-template>
+          </fox:label>
+        </fox:outline>
+      </xsl:if>
+      <xsl:apply-templates select="*" mode="fop.outline"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <fox:destination internal-destination="{$id}"/>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/fo/fop1.xsl b/applications/content/template/docbook/fo/fop1.xsl
new file mode 100644
index 0000000..9cea9ce
--- /dev/null
+++ b/applications/content/template/docbook/fo/fop1.xsl
@@ -0,0 +1,228 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fox="http://xmlgraphics.apache.org/fop/extensions"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:variable name="bookmarks.state">
+  <xsl:choose>
+    <xsl:when test="$bookmarks.collapse != 0">hide</xsl:when>
+    <xsl:otherwise>show</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<xsl:template match="*" mode="fop1.outline">
+  <xsl:apply-templates select="*" mode="fop1.outline"/>
+</xsl:template>
+
+<xsl:template match="set|book|part|reference|
+                     preface|chapter|appendix|article|topic
+                     |glossary|bibliography|index|setindex
+                     |refentry
+                     |sect1|sect2|sect3|sect4|sect5|section"
+              mode="fop1.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="self::index and $generate.index = 0"/>	
+    <xsl:when test="parent::*">
+      <fo:bookmark internal-destination="{$id}">
+	<xsl:attribute name="starting-state">
+	  <xsl:value-of select="$bookmarks.state"/>
+	</xsl:attribute>
+        <fo:bookmark-title>
+          <xsl:value-of select="normalize-space($bookmark-label)"/>
+        </fo:bookmark-title>
+        <xsl:apply-templates select="*" mode="fop1.outline"/>
+      </fo:bookmark>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:bookmark internal-destination="{$id}">
+	<xsl:attribute name="starting-state">
+	  <xsl:value-of select="$bookmarks.state"/>
+	</xsl:attribute>
+        <fo:bookmark-title>
+          <xsl:value-of select="normalize-space($bookmark-label)"/>
+        </fo:bookmark-title>
+      </fo:bookmark>
+
+      <xsl:variable name="toc.params">
+        <xsl:call-template name="find.path.params">
+          <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:if test="contains($toc.params, 'toc')
+                    and (book|part|reference|preface|chapter|appendix|article|topic
+                         |glossary|bibliography|index|setindex
+                         |refentry
+                         |sect1|sect2|sect3|sect4|sect5|section)">
+        <fo:bookmark internal-destination="toc...{$id}">
+          <fo:bookmark-title>
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'TableofContents'"/>
+            </xsl:call-template>
+          </fo:bookmark-title>
+        </fo:bookmark>
+      </xsl:if>
+      <xsl:apply-templates select="*" mode="fop1.outline"/>
+    </xsl:otherwise>
+  </xsl:choose>
+<!--
+  <fo:bookmark internal-destination="{$id}"/>
+-->
+</xsl:template>
+
+<xsl:template match="*" mode="fop1.foxdest">
+  <xsl:apply-templates select="*" mode="fop1.foxdest"/>
+</xsl:template>
+
+<xsl:template match="set|book|part|reference|
+                     preface|chapter|appendix|article|topic
+                     |glossary|bibliography|index|setindex
+                     |refentry
+                     |sect1|sect2|sect3|sect4|sect5|section"
+              mode="fop1.foxdest">
+  <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>
+  <!--xsl:if test="$id != ''">
+    <fox:destination internal-destination="{$id}"/>
+  </xsl:if-->
+
+  <!-- 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="self::index and $generate.index = 0"/>	
+    <xsl:when test="parent::*">
+      <fox:destination internal-destination="{$id}"/>
+        <xsl:apply-templates select="*" mode="fop1.foxdest"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <fox:destination internal-destination="{$id}"/>
+      <xsl:apply-templates select="*" mode="fop1.foxdest"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<!-- Metadata support ("Document Properties" in Adobe Reader) -->
+<xsl:template name="fop1-document-information">
+  <xsl:variable name="authors" select="(//author|//editor|//corpauthor|//authorgroup)[1]"/>
+
+  <xsl:variable name="title">
+    <xsl:apply-templates select="/*[1]" mode="label.markup"/>
+    <xsl:apply-templates select="/*[1]" mode="title.markup"/>
+    <xsl:variable name="subtitle">
+      <xsl:apply-templates select="/*[1]" mode="subtitle.markup">
+        <xsl:with-param name="verbose" select="0"/>
+      </xsl:apply-templates>
+    </xsl:variable>
+    <xsl:if test="$subtitle !=''">
+      <xsl:text> - </xsl:text>
+      <xsl:value-of select="$subtitle"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <fo:declarations>
+    <x:xmpmeta xmlns:x="adobe:ns:meta/">
+      <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+        <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+          <!-- Dublin Core properties go here -->
+
+          <!-- Title -->
+          <dc:title><xsl:value-of select="normalize-space($title)"/></dc:title>
+
+          <!-- Author -->
+	  <xsl:if test="$authors">
+	    <xsl:variable name="author">
+	      <xsl:choose>
+		<xsl:when test="$authors[self::authorgroup]">
+                  <xsl:call-template name="person.name.list">
+                    <xsl:with-param name="person.list" 
+                       select="$authors/*[self::author|self::corpauthor|
+                                     self::othercredit|self::editor]"/>
+                  </xsl:call-template>
+                </xsl:when>
+                <xsl:when test="$authors[self::corpauthor]">
+                  <xsl:value-of select="$authors"/>
+                </xsl:when>
+                <xsl:when test="$authors[orgname]">
+                  <xsl:value-of select="$authors/orgname"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:call-template name="person.name">
+                    <xsl:with-param name="node" select="$authors"/>
+                  </xsl:call-template>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:variable>
+
+            <dc:creator><xsl:value-of select="normalize-space($author)"/></dc:creator>
+          </xsl:if>
+
+          <!-- Subject -->
+          <xsl:if test="//subjectterm">
+            <dc:description>
+              <xsl:for-each select="//subjectterm">
+                <xsl:value-of select="normalize-space(.)"/>
+                <xsl:if test="position() != last()">
+                  <xsl:text>, </xsl:text>
+                </xsl:if>
+              </xsl:for-each>
+            </dc:description>
+          </xsl:if>
+        </rdf:Description>
+
+        <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+          <!-- PDF properties go here -->
+
+          <!-- Keywords -->
+          <xsl:if test="//keyword">
+            <pdf:Keywords>
+              <xsl:for-each select="//keyword">
+                <xsl:value-of select="normalize-space(.)"/>
+                <xsl:if test="position() != last()">
+                  <xsl:text>, </xsl:text>
+                </xsl:if>
+              </xsl:for-each>
+            </pdf:Keywords>
+          </xsl:if>
+        </rdf:Description>
+
+        <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
+          <!-- XMP properties go here -->
+
+          <!-- Creator Tool -->
+          <xmp:CreatorTool>DocBook XSL Stylesheets with Apache FOP</xmp:CreatorTool>
+        </rdf:Description>
+
+      </rdf:RDF>
+    </x:xmpmeta>
+  </fo:declarations>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/formal.xsl b/applications/content/template/docbook/fo/formal.xsl
new file mode 100644
index 0000000..99b3c7f
--- /dev/null
+++ b/applications/content/template/docbook/fo/formal.xsl
@@ -0,0 +1,642 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- formal.object creates a basic block containing the
+     result of processing the object, including its title
+     and any keep-together properties.
+     The template calling formal.object may wrap these results in a
+     float or pgwide block. -->
+
+<xsl:template name="formal.object">
+  <xsl:param name="placement" select="'before'"/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="content">
+    <xsl:if test="$placement = 'before'">
+      <xsl:call-template name="formal.object.heading">
+        <xsl:with-param name="placement" select="$placement"/>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:if test="$placement != 'before'">
+      <xsl:call-template name="formal.object.heading">
+        <xsl:with-param name="placement" select="$placement"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <!-- tables have their own templates and 
+         are not handled by formal.object -->
+    <xsl:when test="self::figure">
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="figure.properties">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$content"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:when test="self::example">
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="example.properties">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$content"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:when test="self::equation">
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="equation.properties">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$content"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:when test="self::procedure">
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="procedure.properties">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$content"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="formal.object.properties">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$content"/>
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="formal.object.heading">
+  <xsl:param name="object" select="."/>
+  <xsl:param name="placement" select="'before'"/>
+
+  <fo:block xsl:use-attribute-sets="formal.title.properties">
+    <xsl:choose>
+      <xsl:when test="$placement = 'before'">
+        <xsl:attribute
+               name="keep-with-next.within-column">always</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:attribute
+               name="keep-with-previous.within-column">always</xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates select="$object" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </fo:block>
+</xsl:template>
+
+<xsl:template name="informal.object">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <!-- Some don't have a pgwide attribute, so may use a PI -->
+  <xsl:variable name="pgwide.pi">
+    <xsl:call-template name="pi.dbfo_pgwide"/>
+  </xsl:variable>
+
+  <xsl:variable name="pgwide">
+    <xsl:choose>
+      <xsl:when test="@pgwide">
+        <xsl:value-of select="@pgwide"/>
+      </xsl:when>
+      <xsl:when test="$pgwide.pi">
+        <xsl:value-of select="$pgwide.pi"/>
+      </xsl:when>
+      <!-- child element may set pgwide -->
+      <xsl:when test="*[@pgwide]">
+        <xsl:value-of select="*[@pgwide][1]/@pgwide"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <!-- informaltables have their own templates and 
+         are not handled by formal.object -->
+    <xsl:when test="local-name(.) = 'equation'">
+      <xsl:choose>
+        <xsl:when test="$pgwide = '1'">
+          <fo:block id="{$id}"
+                    xsl:use-attribute-sets="pgwide.properties
+                                            equation.properties">
+            <xsl:if test="$keep.together != ''">
+              <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                              select="$keep.together"/></xsl:attribute>
+            </xsl:if>
+            <xsl:call-template name="equation.without.title"/>
+          </fo:block>
+        </xsl:when>
+        <xsl:otherwise>
+          <fo:block id="{$id}"
+                    xsl:use-attribute-sets="equation.properties">
+            <xsl:if test="$keep.together != ''">
+              <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                              select="$keep.together"/></xsl:attribute>
+            </xsl:if>
+            <xsl:call-template name="equation.without.title"/>
+          </fo:block>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'procedure'">
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="procedure.properties">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:apply-templates/>
+      </fo:block>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'informalfigure'">
+      <xsl:choose>
+        <xsl:when test="$pgwide = '1'">
+          <fo:block id="{$id}"
+                    xsl:use-attribute-sets="pgwide.properties
+                                            informalfigure.properties">
+            <xsl:if test="$keep.together != ''">
+              <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                              select="$keep.together"/></xsl:attribute>
+            </xsl:if>
+            <xsl:apply-templates/>
+          </fo:block>
+        </xsl:when>
+        <xsl:otherwise>
+          <fo:block id="{$id}"
+                    xsl:use-attribute-sets="informalfigure.properties">
+            <xsl:if test="$keep.together != ''">
+              <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                              select="$keep.together"/></xsl:attribute>
+            </xsl:if>
+            <xsl:apply-templates/>
+          </fo:block>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'informalexample'">
+      <xsl:choose>
+        <xsl:when test="$pgwide = '1'">
+          <fo:block id="{$id}"
+                    xsl:use-attribute-sets="pgwide.properties
+                                            informalexample.properties">
+            <xsl:if test="$keep.together != ''">
+              <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                              select="$keep.together"/></xsl:attribute>
+            </xsl:if>
+            <xsl:apply-templates/>
+          </fo:block>
+        </xsl:when>
+        <xsl:otherwise>
+          <fo:block id="{$id}"
+                    xsl:use-attribute-sets="informalexample.properties">
+            <xsl:if test="$keep.together != ''">
+              <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                              select="$keep.together"/></xsl:attribute>
+            </xsl:if>
+            <xsl:apply-templates/>
+          </fo:block>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'informalequation'">
+      <xsl:choose>
+        <xsl:when test="$pgwide = '1'">
+          <fo:block id="{$id}"
+                    xsl:use-attribute-sets="pgwide.properties
+                                            informalequation.properties">
+            <xsl:if test="$keep.together != ''">
+              <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                              select="$keep.together"/></xsl:attribute>
+            </xsl:if>
+            <xsl:apply-templates/>
+          </fo:block>
+        </xsl:when>
+        <xsl:otherwise>
+          <fo:block id="{$id}"
+                    xsl:use-attribute-sets="informalequation.properties">
+            <xsl:if test="$keep.together != ''">
+              <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                              select="$keep.together"/></xsl:attribute>
+            </xsl:if>
+            <xsl:apply-templates/>
+          </fo:block>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block id="{$id}" 
+                xsl:use-attribute-sets="informal.object.properties">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:apply-templates/>
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="equation.without.title">
+  <!-- Lay out equation and number next to equation using a table -->
+  <fo:table table-layout="fixed" width="100%">
+    <fo:table-column column-width="proportional-column-width(15)"/>
+    <fo:table-column column-width="proportional-column-width(1)"/>
+    <fo:table-body start-indent="0pt" end-indent="0pt">
+      <fo:table-row>
+        <fo:table-cell padding-end="6pt">
+          <fo:block>
+            <xsl:apply-templates/>
+          </fo:block>
+        </fo:table-cell>
+        <fo:table-cell xsl:use-attribute-sets="equation.number.properties">
+          <fo:block>
+            <xsl:text>(</xsl:text>
+            <xsl:apply-templates select="." mode="label.markup"/>
+            <xsl:text>)</xsl:text>
+          </fo:block>
+        </fo:table-cell>
+      </fo:table-row>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+<xsl:template name="semiformal.object">
+  <xsl:param name="placement" select="'before'"/>
+  <xsl:choose>
+    <xsl:when test="title or info/title">
+      <xsl:call-template name="formal.object">
+        <xsl:with-param name="placement" select="$placement"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="informal.object"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure">
+  <xsl:variable name="param.placement"
+              select="substring-after(normalize-space($formal.title.placement),
+                                      concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="figure">
+    <xsl:choose>
+      <xsl:when test="@pgwide = '1'">
+        <fo:block xsl:use-attribute-sets="pgwide.properties">
+          <xsl:call-template name="formal.object">
+            <xsl:with-param name="placement" select="$placement"/>
+          </xsl:call-template>
+        </fo:block>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="formal.object">
+          <xsl:with-param name="placement" select="$placement"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="floatstyle">
+    <xsl:call-template name="floatstyle"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$floatstyle != ''">
+      <xsl:call-template name="floater">
+        <xsl:with-param name="position" select="$floatstyle"/>
+        <xsl:with-param name="content" select="$figure"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$figure"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="example">
+  <xsl:variable name="param.placement"
+             select="substring-after(normalize-space($formal.title.placement),
+                                     concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Example doesn't have a pgwide attribute, so may use a PI -->
+  <xsl:variable name="pgwide.pi">
+    <xsl:call-template name="pi.dbfo_pgwide"/>
+  </xsl:variable>
+
+  <xsl:variable name="pgwide">
+    <xsl:choose>
+      <xsl:when test="$pgwide.pi">
+        <xsl:value-of select="$pgwide.pi"/>
+      </xsl:when>
+      <!-- child element may set pgwide -->
+      <xsl:when test="*[@pgwide]">
+        <xsl:value-of select="*[@pgwide][1]/@pgwide"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Get align value from internal mediaobject -->
+  <xsl:variable name="align">
+    <xsl:if test="mediaobject|mediaobjectco">
+      <xsl:variable name="olist" select="mediaobject/imageobject
+                     |mediaobjectco/imageobjectco
+                     |mediaobject/videoobject
+                     |mediaobject/audioobject
+                     |mediaobject/textobject"/>
+
+      <xsl:variable name="object.index">
+        <xsl:call-template name="select.mediaobject.index">
+          <xsl:with-param name="olist" select="$olist"/>
+          <xsl:with-param name="count" select="1"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="object" select="$olist[position() = $object.index]"/>
+
+      <xsl:value-of select="$object/descendant::imagedata[@align][1]/@align"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="example">
+    <xsl:choose>
+      <xsl:when test="$pgwide = '1'">
+        <fo:block xsl:use-attribute-sets="pgwide.properties">
+          <xsl:if test="$align != ''">
+            <xsl:attribute name="text-align">
+              <xsl:value-of select="$align"/>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:call-template name="formal.object">
+            <xsl:with-param name="placement" select="$placement"/>
+          </xsl:call-template>
+        </fo:block>
+      </xsl:when>
+      <xsl:otherwise>
+        <fo:block>
+          <xsl:if test="$align != ''">
+            <xsl:attribute name="text-align">
+              <xsl:value-of select="$align"/>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:call-template name="formal.object">
+            <xsl:with-param name="placement" select="$placement"/>
+          </xsl:call-template>
+        </fo:block>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="floatstyle">
+    <xsl:call-template name="floatstyle"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$floatstyle != ''">
+      <xsl:call-template name="floater">
+        <xsl:with-param name="position" select="$floatstyle"/>
+        <xsl:with-param name="content" select="$example"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$example"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<!-- Unified handling of CALS and HTML tables, formal and not -->
+<!-- Creates a hierarchy of nested containers:
+     - Outer container does a float.
+     - Nested container does block-container for rotation
+     - Nested block contains title, layout table and footnotes
+     - Nested layout table placeholder template supports extensions.
+     - fo:table is innermost.
+     Created from the innermost and working out.
+     Not all layers apply to every table.
+-->
+<xsl:template match="table|informaltable">
+  <xsl:if test="tgroup/tbody/tr
+                |tgroup/thead/tr
+                |tgroup/tfoot/tr">
+    <xsl:message terminate="yes">
+      <xsl:text>Broken table: tr descendent of CALS Table.</xsl:text>
+      <xsl:text>The text in the first tr is:&#10;</xsl:text>
+      <xsl:value-of 
+               select="(tgroup//tr)[1]"/>
+    </xsl:message>
+  </xsl:if>
+  <xsl:if test="not(tgroup) and .//row">
+    <xsl:message terminate="yes">
+      <xsl:text>Broken table: row descendent of HTML table.</xsl:text>
+      <xsl:text>The text in the first row is:&#10;</xsl:text>
+      <xsl:value-of 
+               select=".//row[1]"/>
+    </xsl:message>
+  </xsl:if>
+
+  <!-- Contains fo:table, not title or footnotes -->
+  <xsl:variable name="table.content">
+    <xsl:call-template name="make.table.content"/>
+  </xsl:variable>
+
+  <!-- Optional layout table template for extensions -->
+  <xsl:variable name="table.layout">
+    <xsl:call-template name="table.layout">
+      <xsl:with-param name="table.content" select="$table.content"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- fo:block contains title, layout table, and footnotes  -->
+  <xsl:variable name="table.block">
+    <xsl:call-template name="table.block">
+      <xsl:with-param name="table.layout" select="$table.layout"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- pgwide or orient container -->
+  <xsl:variable name="table.container">
+    <xsl:call-template name="table.container">
+      <xsl:with-param name="table.block" select="$table.block"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- float or not -->
+  <xsl:variable name="floatstyle">
+    <xsl:call-template name="floatstyle"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$floatstyle != ''">
+      <xsl:call-template name="floater">
+        <xsl:with-param name="position" select="$floatstyle"/>
+        <xsl:with-param name="content" select="$table.container"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$table.container"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+
+<xsl:template match="equation">
+  <xsl:variable name="param.placement"
+              select="substring-after(normalize-space($formal.title.placement),
+                                      concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Equation doesn't have a pgwide attribute, so may use a PI -->
+  <xsl:variable name="pgwide">
+    <xsl:call-template name="pi.dbfo_pgwide"/>
+  </xsl:variable>
+
+  <xsl:variable name="equation">
+    <xsl:choose>
+      <xsl:when test="$pgwide = '1'">
+        <fo:block xsl:use-attribute-sets="pgwide.properties">
+          <xsl:call-template name="semiformal.object">
+            <xsl:with-param name="placement" select="$placement"/>
+          </xsl:call-template>
+        </fo:block>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="semiformal.object">
+          <xsl:with-param name="placement" select="$placement"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="floatstyle">
+    <xsl:call-template name="floatstyle"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$floatstyle != ''">
+      <xsl:call-template name="floater">
+        <xsl:with-param name="position" select="$floatstyle"/>
+        <xsl:with-param name="content" select="$equation"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$equation"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure/title"></xsl:template>
+<xsl:template match="figure/titleabbrev"></xsl:template>
+<xsl:template match="table/title"></xsl:template>
+<xsl:template match="table/titleabbrev"></xsl:template>
+<xsl:template match="table/textobject"></xsl:template>
+<xsl:template match="example/title"></xsl:template>
+<xsl:template match="example/titleabbrev"></xsl:template>
+<xsl:template match="equation/title"></xsl:template>
+<xsl:template match="equation/titleabbrev"></xsl:template>
+
+<xsl:template match="informalfigure">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informalexample">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informaltable/textobject"></xsl:template>
+
+<xsl:template match="informalequation">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template name="floatstyle">
+  <xsl:if test="(@float and @float != '0') or @floatstyle != ''">
+    <xsl:choose>
+      <xsl:when test="@floatstyle != ''">
+        <xsl:value-of select="@floatstyle"/>
+      </xsl:when>
+      <xsl:when test="@float = '1'">
+        <xsl:value-of select="$default.float.class"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@float"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/glossary.xsl b/applications/content/template/docbook/fo/glossary.xsl
new file mode 100644
index 0000000..a317f4e
--- /dev/null
+++ b/applications/content/template/docbook/fo/glossary.xsl
@@ -0,0 +1,1169 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:xlink='http://www.w3.org/1999/xlink'
+                exclude-result-prefixes="xlink"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossary">
+  <xsl:call-template name="make-glossary"/>
+</xsl:template>
+
+<xsl:template match="glossdiv/title"/>
+<xsl:template match="glossdiv/subtitle"/>
+<xsl:template match="glossdiv/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-glossary">
+  <xsl:param name="divs" select="glossdiv"/>
+  <xsl:param name="entries" select="glossentry"/>
+  <xsl:param name="preamble" select="*[not(self::title
+                                           or self::subtitle
+                                           or self::glossdiv
+                                           or self::glossentry)]"/>
+
+  &setup-language-variable;
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="presentation">
+    <xsl:call-template name="pi.dbfo_glossary-presentation"/>
+  </xsl:variable>
+
+  <xsl:variable name="term-width">
+    <xsl:call-template name="pi.dbfo_glossterm-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="width">
+    <xsl:choose>
+      <xsl:when test="$term-width = ''">
+        <xsl:value-of select="$glossterm.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$term-width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="glossary.titlepage"/>
+  </fo:block>
+
+  <xsl:if test="$preamble">
+    <xsl:apply-templates select="$preamble"/>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$presentation = 'list'">
+      <xsl:apply-templates select="$divs" mode="glossary.as.list">
+        <xsl:with-param name="width" select="$width"/>
+      </xsl:apply-templates>
+      <xsl:if test="$entries">
+        <fo:list-block provisional-distance-between-starts="{$width}"
+                       provisional-label-separation="{$glossterm.separation}"
+                       xsl:use-attribute-sets="normal.para.spacing">
+          <xsl:choose>
+            <xsl:when test="$glossary.sort != 0">
+              <xsl:apply-templates select="$entries" mode="glossary.as.list">
+                                  <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="$entries" mode="glossary.as.list"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </fo:list-block>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="$presentation = 'blocks'">
+      <xsl:apply-templates select="$divs" mode="glossary.as.blocks"/>
+      <xsl:choose>
+        <xsl:when test="$glossary.sort != 0">
+          <xsl:apply-templates select="$entries" mode="glossary.as.blocks">
+                          <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$entries" mode="glossary.as.blocks"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$glossary.as.blocks != 0">
+      <xsl:apply-templates select="$divs" mode="glossary.as.blocks"/>
+      <xsl:choose>
+        <xsl:when test="$glossary.sort != 0">
+          <xsl:apply-templates select="$entries" mode="glossary.as.blocks">
+                                <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$entries" mode="glossary.as.blocks"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="$divs" mode="glossary.as.list">
+        <xsl:with-param name="width" select="$width"/>
+      </xsl:apply-templates>
+      <xsl:if test="$entries">
+        <fo:list-block provisional-distance-between-starts="{$width}"
+                       provisional-label-separation="{$glossterm.separation}"
+                       xsl:use-attribute-sets="normal.para.spacing">
+          <xsl:choose>
+            <xsl:when test="$glossary.sort != 0">
+              <xsl:apply-templates select="$entries" mode="glossary.as.list">
+                                        <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="$entries" mode="glossary.as.list"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </fo:list-block>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="book/glossary|part/glossary|/glossary" priority="2">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <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:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="make-glossary"/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="glossary/glossaryinfo"></xsl:template>
+<xsl:template match="glossary/info"></xsl:template>
+<xsl:template match="glossary/title"></xsl:template>
+<xsl:template match="glossary/subtitle"></xsl:template>
+<xsl:template match="glossary/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glosslist">
+  &setup-language-variable;
+
+  <xsl:variable name="presentation">
+    <xsl:call-template name="pi.dbfo_glosslist-presentation"/>
+  </xsl:variable>
+
+  <xsl:variable name="term-width">
+    <xsl:call-template name="pi.dbfo_glossterm-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="width">
+    <xsl:choose>
+      <xsl:when test="$term-width = ''">
+        <xsl:value-of select="$glossterm.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$term-width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="title or info/title">
+    <xsl:apply-templates select="(title|info/title)[1]" mode="list.title.mode"/>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$presentation = 'list'">
+      <fo:list-block provisional-distance-between-starts="{$width}"
+                     provisional-label-separation="{$glossterm.separation}"
+                     xsl:use-attribute-sets="normal.para.spacing">
+        <xsl:choose>
+          <xsl:when test="$glossary.sort != 0">
+            <xsl:apply-templates select="glossentry" mode="glossary.as.list">
+                                <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+            </xsl:apply-templates>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="glossentry" mode="glossary.as.list"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </fo:list-block>
+    </xsl:when>
+    <xsl:when test="$presentation = 'blocks'">
+      <xsl:choose>
+        <xsl:when test="$glossary.sort != 0">
+          <xsl:apply-templates select="glossentry" mode="glossary.as.blocks">
+                                <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="glossentry" mode="glossary.as.blocks"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$glosslist.as.blocks != 0">
+      <xsl:choose>
+        <xsl:when test="$glossary.sort != 0">
+          <xsl:apply-templates select="glossentry" mode="glossary.as.blocks">
+                                <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="glossentry" mode="glossary.as.blocks"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:list-block provisional-distance-between-starts="{$width}"
+                     provisional-label-separation="{$glossterm.separation}"
+                     xsl:use-attribute-sets="normal.para.spacing">
+        <xsl:choose>
+          <xsl:when test="$glossary.sort != 0">
+            <xsl:apply-templates select="glossentry" mode="glossary.as.list">
+                                <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+            </xsl:apply-templates>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="glossentry" mode="glossary.as.list"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </fo:list-block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Glossary collection -->
+
+<xsl:template match="glossary[@role='auto']" priority="2">
+  <xsl:variable name="collection" select="document($glossary.collection, .)"/>
+  <xsl:if test="$glossary.collection = ''">
+    <xsl:message>
+      <xsl:text>Warning: processing automatic glossary </xsl:text>
+      <xsl:text>without a glossary.collection file.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not($collection) and $glossary.collection != ''">
+    <xsl:message>
+      <xsl:text>Warning: processing automatic glossary but unable to </xsl:text>
+      <xsl:text>open glossary.collection file '</xsl:text>
+      <xsl:value-of select="$glossary.collection"/>
+      <xsl:text>'</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:call-template name="make-auto-glossary"/>
+</xsl:template>
+
+<xsl:template name="make-auto-glossary">
+  <xsl:param name="collection" select="document($glossary.collection, .)"/>
+  <xsl:param name="terms" select="//glossterm[not(parent::glossdef)]|//firstterm"/>
+  <xsl:param name="preamble" select="*[not(self::title
+                                           or self::subtitle
+                                           or self::glossdiv
+                                           or self::glossentry)]"/>
+
+  &setup-language-variable;
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="presentation">
+    <xsl:call-template name="pi.dbfo_glossary-presentation"/>
+  </xsl:variable>
+
+  <xsl:variable name="term-width">
+    <xsl:call-template name="pi.dbfo_glossterm-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="width">
+    <xsl:choose>
+      <xsl:when test="$term-width = ''">
+        <xsl:value-of select="$glossterm.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$term-width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="$glossary.collection = ''">
+    <xsl:message>
+      <xsl:text>Warning: processing automatic glossary </xsl:text>
+      <xsl:text>without a glossary.collection file.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="glossary.titlepage"/>
+  </fo:block>
+
+  <xsl:if test="$preamble">
+    <xsl:apply-templates select="$preamble"/>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="glossdiv and $collection//glossdiv">
+      <xsl:for-each select="$collection//glossdiv">
+        <!-- first see if there are any in this div -->
+        <xsl:variable name="exist.test">
+          <xsl:for-each select="glossentry">
+            <xsl:variable name="cterm" select="glossterm"/>
+            <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+              <xsl:value-of select="glossterm"/>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:variable>
+
+        <xsl:if test="$exist.test != ''">
+          <xsl:choose>
+            <xsl:when test="$presentation = 'list'">
+              <xsl:apply-templates select="." mode="auto-glossary-as-list">
+                <xsl:with-param name="width" select="$width"/>
+                <xsl:with-param name="terms" select="$terms"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:when test="$presentation = 'blocks'">
+              <xsl:apply-templates select="." mode="auto-glossary-as-blocks">
+                <xsl:with-param name="terms" select="$terms"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:when test="$glossary.as.blocks != 0">
+              <xsl:apply-templates select="." mode="auto-glossary-as-blocks">
+                <xsl:with-param name="terms" select="$terms"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="." mode="auto-glossary-as-list">
+                <xsl:with-param name="width" select="$width"/>
+                <xsl:with-param name="terms" select="$terms"/>
+              </xsl:apply-templates>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:if>
+      </xsl:for-each>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$presentation = 'list'">
+          <fo:list-block provisional-distance-between-starts="{$width}"
+                         provisional-label-separation="{$glossterm.separation}"
+                         xsl:use-attribute-sets="normal.para.spacing">
+            <xsl:choose>
+              <xsl:when test="$glossary.sort != 0">
+                <xsl:for-each select="$collection//glossentry">
+                                <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+                  <xsl:variable name="cterm" select="glossterm"/>
+                  <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                    <xsl:apply-templates select="." 
+                                         mode="auto-glossary-as-list"/>
+                  </xsl:if>
+                </xsl:for-each>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:for-each select="$collection//glossentry">
+                  <xsl:variable name="cterm" select="glossterm"/>
+                  <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                    <xsl:apply-templates select="." 
+                                         mode="auto-glossary-as-list"/>
+                  </xsl:if>
+                </xsl:for-each>
+              </xsl:otherwise>
+            </xsl:choose>
+          </fo:list-block>
+        </xsl:when>
+        <xsl:when test="$presentation = 'blocks' or
+                        $glossary.as.blocks != 0">
+          <xsl:choose>
+            <xsl:when test="$glossary.sort != 0">
+              <xsl:for-each select="$collection//glossentry">
+                                        <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+                <xsl:variable name="cterm" select="glossterm"/>
+                <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                  <xsl:apply-templates select="." 
+                                       mode="auto-glossary-as-blocks"/>
+                </xsl:if>
+              </xsl:for-each>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:for-each select="$collection//glossentry">
+                <xsl:variable name="cterm" select="glossterm"/>
+                <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                  <xsl:apply-templates select="." 
+                                       mode="auto-glossary-as-blocks"/>
+                </xsl:if>
+              </xsl:for-each>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <fo:list-block provisional-distance-between-starts="{$width}"
+                         provisional-label-separation="{$glossterm.separation}"
+                         xsl:use-attribute-sets="normal.para.spacing">
+            <xsl:choose>
+              <xsl:when test="$glossary.sort != 0">
+                <xsl:for-each select="$collection//glossentry">
+
+                                <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+                  <xsl:variable name="cterm" select="glossterm"/>
+                  <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                    <xsl:apply-templates select="." 
+                                         mode="auto-glossary-as-list"/>
+                  </xsl:if>
+                </xsl:for-each>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:for-each select="$collection//glossentry">
+                  <xsl:variable name="cterm" select="glossterm"/>
+                  <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                    <xsl:apply-templates select="." 
+                                         mode="auto-glossary-as-list"/>
+                  </xsl:if>
+                </xsl:for-each>
+              </xsl:otherwise>
+            </xsl:choose>
+          </fo:list-block>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="book/glossary[@role='auto']|
+                     part/glossary[@role='auto']|
+                     /glossary[@role='auto']" priority="2.5">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:variable name="master-reference">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <xsl:if test="$glossary.collection = ''">
+    <xsl:message>
+      <xsl:text>Warning: processing automatic glossary </xsl:text>
+      <xsl:text>without a glossary.collection file.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <fo:page-sequence hyphenate="{$hyphenate}"
+                    master-reference="{$master-reference}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="make-auto-glossary"/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="glossdiv" mode="auto-glossary-as-list">
+  <xsl:param name="width" select="$glossterm.width"/>
+  <xsl:param name="terms" select="."/>
+
+  &setup-language-variable;
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="preamble"
+                select="*[not(self::title
+                            or self::subtitle
+                            or self::glossentry)]"/>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="glossdiv.titlepage"/>
+  </fo:block>
+
+  <xsl:apply-templates select="$preamble"/>
+
+  <fo:list-block provisional-distance-between-starts="{$width}"
+                 provisional-label-separation="{$glossterm.separation}"
+                 xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:choose>
+      <xsl:when test="$glossary.sort != 0">
+        <xsl:for-each select="glossentry">
+                                <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+          <xsl:variable name="cterm" select="glossterm"/>
+          <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+            <xsl:apply-templates select="." mode="auto-glossary-as-list"/>
+          </xsl:if>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:for-each select="glossentry">
+          <xsl:variable name="cterm" select="glossterm"/>
+          <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+            <xsl:apply-templates select="." mode="auto-glossary-as-list"/>
+          </xsl:if>
+        </xsl:for-each>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:list-block>
+</xsl:template>
+
+<xsl:template match="glossentry" mode="auto-glossary-as-list">
+  <xsl:apply-templates select="." mode="glossary.as.list"/>
+</xsl:template>
+
+<xsl:template match="glossdiv" mode="auto-glossary-as-blocks">
+  <xsl:param name="terms" select="."/>
+
+  &setup-language-variable;
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="preamble"
+                select="*[not(self::title
+                            or self::subtitle
+                            or self::glossentry)]"/>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="glossdiv.titlepage"/>
+  </fo:block>
+
+  <xsl:apply-templates select="$preamble"/>
+
+  <xsl:choose>
+    <xsl:when test="$glossary.sort != 0">
+      <xsl:for-each select="glossentry">
+                                <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+        <xsl:variable name="cterm" select="glossterm"/>
+        <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+          <xsl:apply-templates select="." mode="auto-glossary-as-blocks"/>
+        </xsl:if>
+      </xsl:for-each>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:for-each select="glossentry">
+        <xsl:variable name="cterm" select="glossterm"/>
+        <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+          <xsl:apply-templates select="." mode="auto-glossary-as-blocks"/>
+        </xsl:if>
+      </xsl:for-each>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template match="glossentry" mode="auto-glossary-as-blocks">
+  <xsl:apply-templates select="." mode="glossary.as.blocks"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Format glossary as a list -->
+
+<xsl:template match="glossdiv" mode="glossary.as.list">
+  <xsl:param name="width" select="$glossterm.width"/>
+
+  &setup-language-variable;
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="entries" select="glossentry"/>
+
+  <xsl:variable name="preamble"
+                select="*[not(self::title
+                            or self::subtitle
+                            or self::glossentry)]"/>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="glossdiv.titlepage"/>
+  </fo:block>
+
+  <xsl:apply-templates select="$preamble"/>
+
+  <fo:list-block provisional-distance-between-starts="{$width}"
+                 provisional-label-separation="{$glossterm.separation}"
+                 xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:choose>
+      <xsl:when test="$glossary.sort != 0">
+        <xsl:apply-templates select="$entries" mode="glossary.as.list">
+                                <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="$entries" mode="glossary.as.list"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:list-block>
+</xsl:template>
+
+<!--
+GlossEntry ::=
+  GlossTerm, Acronym?, Abbrev?,
+  (IndexTerm)*,
+  RevHistory?,
+  (GlossSee | GlossDef+)
+-->
+
+<xsl:template match="glossentry" mode="glossary.as.list">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:list-item xsl:use-attribute-sets="glossentry.list.item.properties">
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional">
+        <xsl:choose>
+          <xsl:when test="$glossterm.auto.link != 0
+                          or $glossary.collection != ''">0</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <fo:list-item-label end-indent="label-end()">
+      <fo:block xsl:use-attribute-sets="glossterm.list.properties">
+        <xsl:choose>
+          <xsl:when test="$glossentry.show.acronym = 'primary'">
+            <xsl:choose>
+              <xsl:when test="acronym|abbrev">
+                <xsl:apply-templates select="acronym|abbrev" 
+                                     mode="glossary.as.list"/>
+                <xsl:text> (</xsl:text>
+                <xsl:apply-templates select="glossterm" 
+                                     mode="glossary.as.list"/>
+                <xsl:text>)</xsl:text>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:apply-templates select="glossterm" 
+                                     mode="glossary.as.list"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+
+          <xsl:when test="$glossentry.show.acronym = 'yes'">
+            <xsl:apply-templates select="glossterm" mode="glossary.as.list"/>
+
+            <xsl:if test="acronym|abbrev">
+              <xsl:text> (</xsl:text>
+              <xsl:apply-templates select="acronym|abbrev" 
+                                   mode="glossary.as.list"/>
+              <xsl:text>)</xsl:text>
+            </xsl:if>
+          </xsl:when>
+
+          <xsl:otherwise>
+            <xsl:apply-templates select="glossterm" mode="glossary.as.list"/>
+          </xsl:otherwise>
+        </xsl:choose>
+        <xsl:apply-templates select="indexterm"/>
+      </fo:block>
+    </fo:list-item-label>
+
+    <fo:list-item-body start-indent="body-start()">
+      <fo:block xsl:use-attribute-sets="glossdef.list.properties">
+        <xsl:apply-templates select="glosssee|glossdef" mode="glossary.as.list"/>
+      </fo:block>
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+
+<xsl:template match="glossentry/glossterm" mode="glossary.as.list">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <fo:inline id="{$id}">
+    <xsl:apply-templates/>
+  </fo:inline>
+  <xsl:if test="following-sibling::glossterm">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/acronym" mode="glossary.as.list">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/abbrev" mode="glossary.as.list">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/revhistory" mode="glossary.as.list">
+</xsl:template>
+
+<xsl:template match="glossentry/glosssee" mode="glossary.as.list">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="key('id', $otherterm)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="xlink" select="@xlink:href"/>
+
+  <fo:block>
+    <xsl:variable name="template">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'glossary'"/>
+        <xsl:with-param name="name" select="'see'"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="title">
+      <xsl:choose>
+        <xsl:when test="$target">
+          <fo:basic-link internal-destination="{$otherterm}"
+                         xsl:use-attribute-sets="xref.properties">
+            <xsl:apply-templates select="$target" mode="xref-to"/>
+          </fo:basic-link>
+        </xsl:when>
+        <xsl:when test="$xlink">
+          <xsl:call-template name="simple.xlink">
+            <xsl:with-param name="content">
+              <xsl:apply-templates/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$otherterm != '' and not($target)">
+          <xsl:message>
+            <xsl:text>Warning: glosssee @otherterm reference not found: </xsl:text>
+            <xsl:value-of select="$otherterm"/>
+          </xsl:message>
+          <xsl:apply-templates mode="glossary.as.list"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="glossary.as.list"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:call-template name="substitute-markup">
+      <xsl:with-param name="template" select="$template"/>
+      <xsl:with-param name="title" select="$title"/>
+    </xsl:call-template>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="glossentry/glossdef" mode="glossary.as.list">
+  <xsl:apply-templates select="*[local-name(.) != 'glossseealso']"/>
+  <xsl:if test="glossseealso">
+    <fo:block>
+      <xsl:variable name="template">
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'glossary'"/>
+          <xsl:with-param name="name" select="'seealso'"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:variable name="title">
+        <xsl:apply-templates select="glossseealso" mode="glossary.as.list"/>
+      </xsl:variable>
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="template" select="$template"/>
+        <xsl:with-param name="title" select="$title"/>
+      </xsl:call-template>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/glossdef/para[1]|glossentry/glossdef/simpara[1]"
+              mode="glossary.as.list">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="glossseealso" mode="glossary.as.list">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="key('id', $otherterm)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="xlink" select="@xlink:href"/>
+
+  <xsl:choose>
+    <xsl:when test="$target">
+      <fo:basic-link internal-destination="{$otherterm}"
+                     xsl:use-attribute-sets="xref.properties">
+        <xsl:apply-templates select="$target" mode="xref-to"/>
+      </fo:basic-link>
+    </xsl:when>
+    <xsl:when test="$xlink">
+      <xsl:call-template name="simple.xlink">
+        <xsl:with-param name="content">
+          <xsl:apply-templates/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$otherterm != '' and not($target)">
+      <xsl:message>
+        <xsl:text>Warning: glossseealso @otherterm reference not found: </xsl:text>
+        <xsl:value-of select="$otherterm"/>
+      </xsl:message>
+      <xsl:apply-templates mode="glossary.as.list"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="glossary.as.list"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="position() = last()"/>
+    <xsl:otherwise>
+		<xsl:call-template name="gentext.template">
+		  <xsl:with-param name="context" select="'glossary'"/>
+		  <xsl:with-param name="name" select="'seealso-separator'"/>
+		</xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Format glossary blocks -->
+
+<xsl:template match="glossdiv" mode="glossary.as.blocks">
+  &setup-language-variable;
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="entries" select="glossentry"/>
+  <xsl:variable name="preamble"
+                select="*[not(self::title
+                            or self::subtitle
+                            or self::glossentry)]"/>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="glossdiv.titlepage"/>
+  </fo:block>
+
+  <xsl:apply-templates select="$preamble"/>
+
+  <xsl:choose>
+    <xsl:when test="$glossary.sort != 0">
+      <xsl:apply-templates select="$entries" mode="glossary.as.blocks">
+                  <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="$entries" mode="glossary.as.blocks"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!--
+GlossEntry ::=
+  GlossTerm, Acronym?, Abbrev?,
+  (IndexTerm)*,
+  RevHistory?,
+  (GlossSee | GlossDef+)
+-->
+
+<xsl:template match="glossentry" mode="glossary.as.blocks">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block xsl:use-attribute-sets="glossterm.block.properties">
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional">
+        <xsl:choose>
+          <xsl:when test="$glossterm.auto.link != 0
+                          or $glossary.collection != ''">0</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="$glossentry.show.acronym = 'primary'">
+        <xsl:choose>
+          <xsl:when test="acronym|abbrev">
+            <xsl:apply-templates select="acronym|abbrev" mode="glossary.as.blocks"/>
+            <xsl:text> (</xsl:text>
+            <xsl:apply-templates select="glossterm" mode="glossary.as.blocks"/>
+            <xsl:text>)</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="glossterm" mode="glossary.as.blocks"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:when test="$glossentry.show.acronym = 'yes'">
+        <xsl:apply-templates select="glossterm" mode="glossary.as.blocks"/>
+
+        <xsl:if test="acronym|abbrev">
+          <xsl:text> (</xsl:text>
+          <xsl:apply-templates select="acronym|abbrev" mode="glossary.as.blocks"/>
+          <xsl:text>)</xsl:text>
+        </xsl:if>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <xsl:apply-templates select="glossterm" mode="glossary.as.blocks"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:apply-templates select="indexterm"/>
+  </fo:block>
+
+  <fo:block xsl:use-attribute-sets="glossdef.block.properties">
+    <xsl:apply-templates select="glosssee|glossdef" mode="glossary.as.blocks"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="glossentry/glossterm" mode="glossary.as.blocks">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <fo:inline id="{$id}">
+    <xsl:apply-templates/>
+  </fo:inline>
+  <xsl:if test="following-sibling::glossterm">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/acronym" mode="glossary.as.blocks">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/abbrev" mode="glossary.as.blocks">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/glosssee" mode="glossary.as.blocks">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="key('id', $otherterm)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="xlink" select="@xlink:href"/>
+
+  <xsl:variable name="template">
+    <xsl:call-template name="gentext.template">
+      <xsl:with-param name="context" select="'glossary'"/>
+      <xsl:with-param name="name" select="'see'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$target">
+        <fo:basic-link internal-destination="{$otherterm}"
+                       xsl:use-attribute-sets="xref.properties">
+          <xsl:apply-templates select="$target" mode="xref-to"/>
+        </fo:basic-link>
+      </xsl:when>
+      <xsl:when test="$xlink">
+        <xsl:call-template name="simple.xlink">
+          <xsl:with-param name="content">
+            <xsl:apply-templates/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="$otherterm != '' and not($target)">
+        <xsl:message>
+          <xsl:text>Warning: glosssee @otherterm reference not found: </xsl:text>
+          <xsl:value-of select="$otherterm"/>
+        </xsl:message>
+        <xsl:apply-templates mode="glossary.as.blocks"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates mode="glossary.as.blocks"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:call-template name="substitute-markup">
+    <xsl:with-param name="template" select="$template"/>
+    <xsl:with-param name="title" select="$title"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="glossentry/glossdef" mode="glossary.as.blocks">
+  <xsl:apply-templates select="*[local-name(.) != 'glossseealso']"
+                       mode="glossary.as.blocks"/>
+  <xsl:if test="glossseealso">
+    <fo:block>
+      <xsl:variable name="template">
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'glossary'"/>
+          <xsl:with-param name="name" select="'seealso'"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:variable name="title">
+        <xsl:apply-templates select="glossseealso" mode="glossary.as.blocks"/>
+      </xsl:variable>
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="template" select="$template"/>
+        <xsl:with-param name="title" select="$title"/>
+      </xsl:call-template>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/glossdef/para[1]|glossentry/glossdef/simpara[1]"
+              mode="glossary.as.blocks">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- Handle any other glossdef content normally -->
+<xsl:template match="*" mode="glossary.as.blocks">
+  <xsl:apply-templates select="." />
+</xsl:template>
+
+<xsl:template match="glossseealso" mode="glossary.as.blocks">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="key('id', $otherterm)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="xlink" select="@xlink:href"/>
+
+  <xsl:choose>
+    <xsl:when test="$target">
+      <fo:basic-link internal-destination="{$otherterm}"
+                     xsl:use-attribute-sets="xref.properties">
+        <xsl:apply-templates select="$target" mode="xref-to"/>
+      </fo:basic-link>
+    </xsl:when>
+    <xsl:when test="$xlink">
+      <xsl:call-template name="simple.xlink">
+        <xsl:with-param name="content">
+          <xsl:apply-templates/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$otherterm != '' and not($target)">
+      <xsl:message>
+        <xsl:text>Warning: glossseealso @otherterm reference not found: </xsl:text>
+        <xsl:value-of select="$otherterm"/>
+      </xsl:message>
+      <xsl:apply-templates mode="glossary.as.blocks"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="glossary.as.blocks"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="position() = last()"/>
+    <xsl:otherwise>
+		<xsl:call-template name="gentext.template">
+		  <xsl:with-param name="context" select="'glossary'"/>
+		  <xsl:with-param name="name" select="'seealso-separator'"/>
+		</xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/graphics.xsl b/applications/content/template/docbook/fo/graphics.xsl
new file mode 100644
index 0000000..215a6b0
--- /dev/null
+++ b/applications/content/template/docbook/fo/graphics.xsl
@@ -0,0 +1,812 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY lowercase "'abcdefghijklmnopqrstuvwxyz'">
+<!ENTITY uppercase "'ABCDEFGHIJKLMNOPQRSTUVWXYZ'">
+ ]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:xlink="http://www.w3.org/1999/xlink"
+                xmlns:stext="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.TextFactory"
+                xmlns:xtext="com.nwalsh.xalan.Text"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                exclude-result-prefixes="xlink stext xtext lxslt"
+                extension-element-prefixes="stext xtext"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     Contributors:
+     Colin Paul Adams, <colin@colina.demon.co.uk>
+     Paul Grosso, <pgrosso@arbortext.com>
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- Graphic format tests for the FO backend -->
+
+<xsl:param name="graphic.notations">
+  <!-- n.b. exactly one leading space, one trailing space, and one inter-word space -->
+  <xsl:choose>
+    <xsl:when test="$passivetex.extensions != 0">
+      <xsl:text> PNG PDF JPG JPEG linespecific </xsl:text>
+    </xsl:when>
+    <xsl:when test="$fop1.extensions != 0">
+      <xsl:text> BMP GIF TIFF SVG PNG EPS JPG JPEG linespecific </xsl:text>
+    </xsl:when>
+    <xsl:when test="$fop.extensions != 0">
+      <xsl:text> BMP GIF TIFF SVG PNG EPS JPG JPEG linespecific </xsl:text>
+    </xsl:when>
+    <xsl:when test="$arbortext.extensions != 0">
+      <xsl:text> PNG PDF JPG JPEG linespecific GIF GIF87a GIF89a TIFF BMP </xsl:text>
+    </xsl:when>
+    <xsl:when test="$xep.extensions != 0">
+      <xsl:text> SVG PNG PDF JPG JPEG linespecific GIF GIF87a GIF89a TIFF BMP </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text> PNG PDF JPG JPEG linespecific GIF GIF87a GIF89a TIFF BMP </xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:template name="is.graphic.format">
+  <xsl:param name="format"/>
+  <xsl:if test="contains($graphic.notations, concat(' ',$format,' '))">1</xsl:if>
+</xsl:template>
+
+<xsl:param name="graphic.extensions">
+  <!-- n.b. exactly one leading space, one trailing space, and one inter-word space -->
+  <xsl:choose>
+    <xsl:when test="$passivetex.extensions != 0">
+      <xsl:text> png pdf jpg jpeg </xsl:text>
+    </xsl:when>
+    <xsl:when test="$fop1.extensions != 0">
+      <xsl:text> bmp gif tif tiff svg png pdf jpg jpeg eps </xsl:text>
+    </xsl:when>
+    <xsl:when test="$fop.extensions != 0">
+      <xsl:text> bmp gif tif tiff svg png pdf jpg jpeg eps </xsl:text>
+    </xsl:when>
+    <xsl:when test="$arbortext.extensions != 0">
+      <xsl:text> png pdf jpg jpeg gif tif tiff bmp </xsl:text>
+    </xsl:when>
+    <xsl:when test="$xep.extensions != 0">
+      <xsl:text> svg png pdf jpg jpeg gif tif tiff bmp eps </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text> svg png pdf jpg jpeg gif tif tiff bmp eps </xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:template name="is.graphic.extension">
+  <xsl:param name="ext"/>
+  <xsl:variable name="lcext" select="translate($ext,
+                                       'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
+                                       'abcdefghijklmnopqrstuvwxyz')"/>
+
+  <xsl:if test="contains($graphic.extensions,
+                         concat(' ', $lcext, ' '))">1</xsl:if>
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+
+<xsl:template match="screenshot">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="screeninfo">
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Override these templates for FO -->
+<!-- ==================================================================== -->
+
+<xsl:template name="image.scalefit">
+  <xsl:choose>
+    <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
+    <xsl:when test="@contentwidth">0</xsl:when>
+    <xsl:when test="@contentdepth and 
+                    @contentdepth != '100%'">0</xsl:when>
+    <xsl:when test="@scale">0</xsl:when>
+    <xsl:when test="@scalefit"><xsl:value-of select="@scalefit"/></xsl:when>
+    <xsl:when test="@width or @depth">1</xsl:when>
+    <xsl:when test="$default.image.width != ''">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="image.scale">
+  <xsl:choose>
+    <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
+    <xsl:when test="@contentwidth or @contentdepth">1.0</xsl:when>
+    <xsl:when test="@scale">
+      <xsl:value-of select="@scale div 100.0"/>
+    </xsl:when>
+    <xsl:otherwise>1.0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="image.filename">
+  <xsl:choose>
+    <xsl:when test="svg:*" xmlns:svg="http://www.w3.org/2000/svg">
+      <!-- no filename for inline SVG content -->
+    </xsl:when>
+    <xsl:when test="mml:*" xmlns:mml="http://www.w3.org/1998/Math/MathML">
+      <!-- no filename for inline MathML content -->
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'graphic'
+                    or local-name(.) = 'inlinegraphic'">
+      <!-- handle legacy graphic and inlinegraphic by new template --> 
+      <xsl:call-template name="mediaobject.filename">
+        <xsl:with-param name="object" select="."/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- imagedata, videodata, audiodata -->
+      <xsl:call-template name="mediaobject.filename">
+        <xsl:with-param name="object" select=".."/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="image.src">
+  <xsl:param name="filename"/>
+
+  <xsl:choose>
+    <xsl:when test="svg:*" xmlns:svg="http://www.w3.org/2000/svg">
+      <!-- no src attribute for inline SVG content -->
+    </xsl:when>
+    <xsl:when test="mml:*" xmlns:mml="http://www.w3.org/1998/Math/MathML">
+      <!-- no src attribute for inline MathML content -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="fo-external-image">
+        <xsl:with-param name="filename">
+          <xsl:if test="$img.src.path != '' and
+                        not(starts-with($filename, '/')) and
+                        not(contains($filename, '://'))">
+            <xsl:value-of select="$img.src.path"/>
+          </xsl:if>
+          <xsl:value-of select="$filename"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="image.content.type">
+  <xsl:if test="@format">
+    <xsl:call-template name="graphic.format.content-type">
+      <xsl:with-param name="format" select="@format"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="image.bgcolor">
+  <xsl:call-template name="pi.dbfo_background-color">
+    <xsl:with-param name="node" select=".."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="image.width">
+  <xsl:choose>
+    <xsl:when test="$ignore.image.scaling != 0">auto</xsl:when>
+    <xsl:when test="contains(@width,'%')">
+      <xsl:value-of select="@width"/>
+    </xsl:when>
+    <xsl:when test="@width and not(@width = '')">
+      <xsl:call-template name="length-spec">
+        <xsl:with-param name="length" select="@width"/>
+        <xsl:with-param name="default.units" select="'px'"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="not(@depth) and $default.image.width != ''">
+      <xsl:call-template name="length-spec">
+        <xsl:with-param name="length" select="$default.image.width"/>
+        <xsl:with-param name="default.units" select="'px'"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>auto</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="image.height">
+  <xsl:choose>
+    <xsl:when test="$ignore.image.scaling != 0">auto</xsl:when>
+    <xsl:when test="contains(@depth,'%')">
+      <xsl:value-of select="@depth"/>
+    </xsl:when>
+    <xsl:when test="@depth">
+      <xsl:call-template name="length-spec">
+        <xsl:with-param name="length" select="@depth"/>
+        <xsl:with-param name="default.units" select="'px'"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>auto</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="image.content.width">
+  <xsl:param name="scalefit" select="0"/>
+  <xsl:param name="scale" select="'1.0'"/>
+
+  <xsl:choose>
+    <xsl:when test="$ignore.image.scaling != 0">auto</xsl:when>
+    <xsl:when test="contains(@contentwidth,'%')">
+      <xsl:value-of select="@contentwidth"/>
+    </xsl:when>
+    <xsl:when test="@contentwidth">
+      <xsl:call-template name="length-spec">
+        <xsl:with-param name="length" select="@contentwidth"/>
+        <xsl:with-param name="default.units" select="'px'"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="number($scale) != 1.0">
+      <xsl:value-of select="$scale * 100"/>
+      <xsl:text>%</xsl:text>
+    </xsl:when>
+    <xsl:when test="$scalefit = 1">scale-to-fit</xsl:when>
+    <xsl:otherwise>auto</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="image.content.height">
+  <xsl:param name="scalefit" select="0"/>
+  <xsl:param name="scale" select="0"/>
+
+  <xsl:choose>
+    <xsl:when test="$ignore.image.scaling != 0">auto</xsl:when>
+    <xsl:when test="contains(@contentdepth,'%')">
+      <xsl:value-of select="@contentdepth"/>
+    </xsl:when>
+    <xsl:when test="@contentdepth">
+      <xsl:call-template name="length-spec">
+        <xsl:with-param name="length" select="@contentdepth"/>
+        <xsl:with-param name="default.units" select="'px'"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="number($scale) != 1.0">
+      <xsl:value-of select="$scale * 100"/>
+      <xsl:text>%</xsl:text>
+    </xsl:when>
+    <xsl:when test="$scalefit = 1">scale-to-fit</xsl:when>
+    <xsl:otherwise>auto</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="image.align">
+  <xsl:value-of select="@align"/>
+</xsl:template>
+
+<xsl:template name="image.valign">
+  <xsl:if test="@valign">
+    <xsl:choose>
+      <xsl:when test="ancestor::inlinemediaobject or ancestor-or-self::inlinegraphic">
+        <xsl:choose>
+          <xsl:when test="@valign = 'top'">baseline</xsl:when>
+          <xsl:when test="@valign = 'middle'">central</xsl:when>
+          <xsl:when test="@valign = 'bottom'">text-before-edge</xsl:when>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="@valign = 'top'">before</xsl:when>
+          <xsl:when test="@valign = 'middle'">center</xsl:when>
+          <xsl:when test="@valign = 'bottom'">after</xsl:when>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+  
+<xsl:template name="process.image">
+  <!-- When this template is called, the current node should be  -->
+  <!-- a graphic, inlinegraphic, imagedata, or videodata. All    -->
+  <!-- those elements have the same set of attributes, so we can -->
+  <!-- handle them all in one place.                             -->
+
+  <!-- Compute each attribute value with its own customizable template call -->
+  <xsl:variable name="scalefit">
+    <xsl:call-template name="image.scalefit"/>
+  </xsl:variable>
+
+  <xsl:variable name="scale">
+    <xsl:call-template name="image.scale"/>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="image.filename"/>
+  </xsl:variable>
+
+  <xsl:variable name="src">
+    <xsl:call-template name="image.src">
+      <xsl:with-param name="filename" select="$filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="content.type">
+    <xsl:call-template name="image.content.type"/>
+  </xsl:variable>
+
+  <xsl:variable name="bgcolor">
+    <xsl:call-template name="image.bgcolor"/>
+  </xsl:variable>
+
+  <xsl:variable name="width">
+    <xsl:call-template name="image.width"/>
+  </xsl:variable>
+
+  <xsl:variable name="height">
+    <xsl:call-template name="image.height"/>
+  </xsl:variable>
+
+  <xsl:variable name="content.width">
+    <xsl:call-template name="image.content.width">
+      <xsl:with-param name="scalefit" select="$scalefit"/>
+      <xsl:with-param name="scale" select="$scale"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="content.height">
+    <xsl:call-template name="image.content.height">
+      <xsl:with-param name="scalefit" select="$scalefit"/>
+      <xsl:with-param name="scale" select="$scale"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="align">
+    <xsl:call-template name="image.align"/>
+  </xsl:variable>
+
+  <xsl:variable name="valign">
+    <xsl:call-template name="image.valign"/>
+  </xsl:variable>
+
+  <xsl:variable name="element.name">
+    <xsl:choose>
+      <xsl:when test="svg:*" xmlns:svg="http://www.w3.org/2000/svg">
+        <xsl:text>fo:instream-foreign-object</xsl:text>
+      </xsl:when>
+      <xsl:when test="mml:*" xmlns:mml="http://www.w3.org/1998/Math/MathML">
+        <xsl:text>fo:instream-foreign-object</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>fo:external-graphic</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$element.name}">
+
+    <xsl:if test="$src != ''">
+      <xsl:attribute name="src">
+        <xsl:value-of select="$src"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$width != ''">
+      <xsl:attribute name="width">
+        <xsl:value-of select="$width"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$height != ''">
+      <xsl:attribute name="height">
+        <xsl:value-of select="$height"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$content.width != ''">
+      <xsl:attribute name="content-width">
+        <xsl:value-of select="$content.width"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$content.height != ''">
+      <xsl:attribute name="content-height">
+        <xsl:value-of select="$content.height"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$content.type != ''">
+      <xsl:attribute name="content-type">
+        <xsl:value-of select="concat('content-type:',$content.type)"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$bgcolor != ''">
+      <xsl:attribute name="background-color">
+        <xsl:value-of select="$bgcolor"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$align != ''">
+      <xsl:attribute name="text-align">
+        <xsl:value-of select="$align"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$valign != ''">
+      <xsl:variable name="att.name">
+        <xsl:choose>
+          <xsl:when test="ancestor::inlinemediaobject or ancestor-or-self::inlinegraphic">
+            <xsl:text>alignment-baseline</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text>display-align</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+      <xsl:attribute name="{$att.name}">
+        <xsl:value-of select="$valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <!-- copy literal SVG elements to output -->
+    <xsl:if test="svg:*" xmlns:svg="http://www.w3.org/2000/svg">
+      <xsl:call-template name="process.svg"/>
+    </xsl:if>
+
+    <xsl:if test="mml:*" xmlns:mml="http://www.w3.org/1998/Math/MathML">
+      <xsl:call-template name="process.mml"/>
+    </xsl:if>
+
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="graphic">
+  <xsl:choose>
+    <xsl:when test="parent::inlineequation">
+      <xsl:call-template name="process.image"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block>
+        <xsl:if test="@align">
+          <xsl:attribute name="text-align">
+            <xsl:value-of select="@align"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:call-template name="process.image"/>
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="inlinegraphic">
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="@fileref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@format='linespecific'">
+      <xsl:choose>
+        <xsl:when test="$use.extensions != '0'
+                        and $textinsert.extension != '0'">
+          <xsl:choose>
+            <xsl:when test="contains($vendor, 'SAXON')">
+              <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/>
+            </xsl:when>
+            <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+              <xtext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message terminate="yes">
+                <xsl:text>Don't know how to insert files with </xsl:text>
+                <xsl:value-of select="$vendor"/>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+	<xsl:otherwise>
+	  <xsl:message terminate="yes">
+	    <xsl:text>Cannot insert </xsl:text><xsl:value-of select="$filename"/>
+	    <xsl:text>. Check use.extensions and textinsert.extension parameters.</xsl:text> 
+	  </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process.image"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="mediaobject|mediaobjectco">
+
+  <xsl:variable name="olist" select="imageobject|imageobjectco
+                     |videoobject|audioobject
+                     |textobject"/>
+
+  <xsl:variable name="object.index">
+    <xsl:call-template name="select.mediaobject.index">
+      <xsl:with-param name="olist" select="$olist"/>
+      <xsl:with-param name="count" select="1"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="object" select="$olist[position() = $object.index]"/>
+
+  <xsl:variable name="align">
+    <xsl:value-of select="$object/descendant::imagedata[@align][1]/@align"/>
+  </xsl:variable>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:if test="$align != '' ">
+      <xsl:attribute name="text-align">
+        <xsl:value-of select="$align"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="$object"/>
+    <xsl:apply-templates select="caption"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="inlinemediaobject">
+  <xsl:call-template name="select.mediaobject"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="imageobjectco">
+  <xsl:choose>
+    <!-- select one imageobject? -->
+    <xsl:when test="$use.role.for.mediaobject != 0 and
+                    count(imageobject) &gt; 1 and
+                    imageobject[@role]">
+      <xsl:variable name="olist" select="imageobject"/>
+    
+      <xsl:variable name="object.index">
+        <xsl:call-template name="select.mediaobject.index">
+          <xsl:with-param name="olist" select="$olist"/>
+          <xsl:with-param name="count" select="1"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:variable name="object" select="$olist[position() = $object.index]"/>
+    
+      <xsl:apply-templates select="$object"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- otherwise process them all -->
+      <xsl:apply-templates select="imageobject"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:apply-templates select="calloutlist"/>
+
+</xsl:template>
+
+<xsl:template match="imageobject">
+  <xsl:choose>
+    <xsl:when test="imagedata">
+      <xsl:apply-templates select="imagedata"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:instream-foreign-object>
+        <xsl:apply-templates mode="copy-all"/>
+      </fo:instream-foreign-object>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="copy-all">
+  <xsl:copy>
+    <xsl:for-each select="@*">
+      <xsl:copy/>
+    </xsl:for-each>
+    <xsl:apply-templates mode="copy-all"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|comment()|processing-instruction()" mode="copy-all">
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template name="process.mml">
+  <xsl:apply-templates mode="copy-all" select="*"/>
+</xsl:template>
+
+<xsl:template name="process.svg">
+  <xsl:apply-templates mode="copy-all" select="*"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="imagedata">
+  <xsl:choose>
+    <xsl:when test="@format='linespecific'">
+      <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+    
+      <xsl:variable name="filename">
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$use.extensions != '0'
+                        and $textinsert.extension != '0'">
+          <xsl:choose>
+            <xsl:when test="contains($vendor, 'SAXON')">
+              <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/>
+            </xsl:when>
+            <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+              <xtext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message terminate="yes">
+                <xsl:text>Don't know how to insert files with </xsl:text>
+                <xsl:value-of select="$vendor"/>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+	  <xsl:message terminate="yes">
+	    <xsl:text>Cannot insert </xsl:text><xsl:value-of select="$filename"/>
+	    <xsl:text>. Check use.extensions and textinsert.extension parameters.</xsl:text> 
+	  </xsl:message>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process.image"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="videoobject">
+  <xsl:apply-templates select="videodata"/>
+</xsl:template>
+
+<xsl:template match="videodata">
+  <xsl:call-template name="process.image"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="audioobject">
+  <xsl:apply-templates select="audiodata"/>
+</xsl:template>
+
+<xsl:template match="audiodata">
+  <xsl:call-template name="process.image"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="textobject">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="textdata">
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="@fileref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="encoding">
+    <xsl:choose>
+      <xsl:when test="@encoding">
+        <xsl:value-of select="@encoding"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$textdata.default.encoding"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$use.extensions != '0'
+                    and $textinsert.extension != '0'">
+      <xsl:choose>
+        <xsl:when test="element-available('stext:insertfile')">
+          <stext:insertfile href="{$filename}" encoding="{$encoding}"/>
+        </xsl:when>
+        <xsl:when test="element-available('xtext:insertfile')">
+          <xtext:insertfile href="{$filename}"/>
+        </xsl:when>
+	<xsl:otherwise>
+	  <xsl:message terminate="yes">
+	    <xsl:text>Don't know how to insert files with </xsl:text>
+	    <xsl:value-of select="$vendor"/>
+	  </xsl:message>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+	<xsl:text>Cannot insert </xsl:text><xsl:value-of select="$filename"/>
+	<xsl:text>. Check use.extensions and textinsert.extension parameters.</xsl:text> 
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="mediaobject/caption">
+  <fo:block>
+    <xsl:if test="@align = 'right' or @align = 'left' or @align='center'">
+      <xsl:attribute name="text-align"><xsl:value-of
+                         select="@align"/></xsl:attribute>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="fo-external-image">
+  <xsl:param name="filename"/>
+
+  <xsl:choose>
+    <xsl:when test="$passivetex.extensions != 0
+                    or $fop.extensions != 0">
+      <xsl:value-of select="$filename"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="concat('url(', $filename, ')')"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Resolve xml:base attributes -->
+<xsl:template match="@fileref">
+  <!-- need a check for absolute urls -->
+  <xsl:choose>
+    <xsl:when test="contains(., ':') or starts-with(.,'/')">
+      <!-- it has a uri scheme or starts with '/', so it is an absolute uri -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:when test="$keep.relative.image.uris != 0">
+      <!-- leave it alone -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- its a relative uri -->
+      <xsl:call-template name="relative-uri">
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/highlight.xsl b/applications/content/template/docbook/fo/highlight.xsl
new file mode 100644
index 0000000..9abb553
--- /dev/null
+++ b/applications/content/template/docbook/fo/highlight.xsl
@@ -0,0 +1,77 @@
+<?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:xslthl="http://xslthl.sf.net"
+                exclude-result-prefixes="xslthl"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:import href="../highlighting/common.xsl"/>
+
+<xsl:template match='xslthl:keyword' mode="xslthl">
+  <fo:inline font-weight="bold"><xsl:apply-templates mode="xslthl"/></fo:inline>
+</xsl:template>
+
+<xsl:template match='xslthl:string' mode="xslthl">
+  <fo:inline font-weight="bold" font-style="italic"><xsl:apply-templates mode="xslthl"/></fo:inline>
+</xsl:template>
+
+<xsl:template match='xslthl:comment' mode="xslthl">
+  <fo:inline font-style="italic"><xsl:apply-templates mode="xslthl"/></fo:inline>
+</xsl:template>
+
+<xsl:template match='xslthl:tag' mode="xslthl">
+  <fo:inline font-weight="bold"><xsl:apply-templates mode="xslthl"/></fo:inline>
+</xsl:template>
+
+<xsl:template match='xslthl:attribute' mode="xslthl">
+  <fo:inline font-weight="bold"><xsl:apply-templates mode="xslthl"/></fo:inline>
+</xsl:template>
+
+<xsl:template match='xslthl:value' mode="xslthl">
+  <fo:inline font-weight="bold"><xsl:apply-templates mode="xslthl"/></fo:inline>
+</xsl:template>
+
+<!--
+<xsl:template match='xslthl:html'>
+  <span style='background:#AFF'><font color='blue'><xsl:apply-templates/></font></span>
+</xsl:template>
+
+<xsl:template match='xslthl:xslt'>
+  <span style='background:#AAA'><font color='blue'><xsl:apply-templates/></font></span>
+</xsl:template>
+
+<xsl:template match='xslthl:section'>
+  <span style='background:yellow'><xsl:apply-templates/></span>
+</xsl:template>
+-->
+
+<xsl:template match='xslthl:number' mode="xslthl">
+  <xsl:apply-templates mode="xslthl"/>
+</xsl:template>
+
+<xsl:template match='xslthl:annotation' mode="xslthl">
+  <fo:inline color="gray"><xsl:apply-templates mode="xslthl"/></fo:inline>
+</xsl:template>
+
+<xsl:template match='xslthl:directive' mode="xslthl">
+  <xsl:apply-templates mode="xslthl"/>
+</xsl:template>
+
+<!-- Not sure which element will be in final XSLTHL 2.0 -->
+<xsl:template match='xslthl:doccomment|xslthl:doctype' mode="xslthl">
+  <fo:inline font-weight="bold"><xsl:apply-templates mode="xslthl"/></fo:inline>
+</xsl:template>
+
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/fo/htmltbl.xsl b/applications/content/template/docbook/fo/htmltbl.xsl
new file mode 100644
index 0000000..6fb02c8
--- /dev/null
+++ b/applications/content/template/docbook/fo/htmltbl.xsl
@@ -0,0 +1,426 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- Outputs an fo:table only, not the caption -->
+<xsl:template match="table|informaltable" mode="htmlTable">
+
+  <xsl:variable name="numcols">
+    <xsl:call-template name="widest-html-row">
+      <xsl:with-param name="rows" select=".//tr"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="prop-columns"
+                select=".//col[contains(@width, '%')] |
+                        .//colgroup[contains(@width, '%')]"/>
+
+  <xsl:variable name="table.width">
+    <xsl:call-template name="table.width"/>
+  </xsl:variable>
+
+  <fo:table xsl:use-attribute-sets="table.table.properties">
+    <xsl:choose>
+      <xsl:when test="$fop.extensions != 0 or
+                      $fop1.extensions != 0 or
+                      $passivetex.extensions != 0">
+        <xsl:attribute name="table-layout">fixed</xsl:attribute>
+      </xsl:when>
+    </xsl:choose>
+
+    <xsl:attribute name="width">
+      <xsl:choose>
+        <xsl:when test="@width">
+          <xsl:value-of select="@width"/>
+        </xsl:when>
+        <xsl:when test="$table.width">
+          <xsl:value-of select="$table.width"/>
+        </xsl:when>
+        <xsl:otherwise>100%</xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+
+    <xsl:call-template name="table.frame">
+      <xsl:with-param name="frame">
+        <xsl:choose>
+          <xsl:when test="@frame = 'box'">all</xsl:when>
+          <xsl:when test="@frame = 'border'">all</xsl:when>
+          <xsl:when test="@frame = 'below'">bottom</xsl:when>
+          <xsl:when test="@frame = 'above'">top</xsl:when>
+          <xsl:when test="@frame = 'hsides'">topbot</xsl:when>
+          <xsl:when test="@frame = 'vsides'">sides</xsl:when>
+          <xsl:when test="@frame = 'lhs'">lhs</xsl:when>
+          <xsl:when test="@frame = 'rhs'">rhs</xsl:when>
+          <xsl:when test="@frame = 'void'">none</xsl:when>
+          <xsl:when test="@border != '' and @border != 0">all</xsl:when>
+          <xsl:when test="@border != '' and @border = 0">none</xsl:when>
+          <xsl:when test="@frame != ''">
+            <xsl:value-of select="@frame"/>
+          </xsl:when>
+          <xsl:when test="$default.table.frame != ''">
+            <xsl:value-of select="$default.table.frame"/>
+          </xsl:when>
+          <xsl:otherwise>all</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:call-template name="make-html-table-columns">
+      <xsl:with-param name="count" select="$numcols"/>
+    </xsl:call-template>
+
+    <xsl:apply-templates select="thead" mode="htmlTable"/>
+    <xsl:apply-templates select="tfoot" mode="htmlTable"/>
+    <xsl:choose>
+      <xsl:when test="tbody">
+        <xsl:apply-templates select="tbody" mode="htmlTable"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <fo:table-body start-indent="0pt" end-indent="0pt">
+          <xsl:apply-templates select="tr" mode="htmlTable"/>
+        </fo:table-body>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:table>
+
+</xsl:template>
+
+<!-- This template writes rowsep or colsep equivalant for html tables -->
+<xsl:template name="html.table.cell.rules">
+  <xsl:variable name="border" 
+                select="(ancestor::table |
+                         ancestor::informaltable)[last()]/@border"/>
+  <xsl:variable name="table.rules"
+                select="(ancestor::table |
+                         ancestor::informaltable)[last()]/@rules"/>
+
+  <xsl:variable name="rules">
+    <xsl:choose>
+      <xsl:when test="$table.rules != ''">
+        <xsl:value-of select="$table.rules"/>
+      </xsl:when>
+      <xsl:when test="$default.table.rules != ''">
+        <xsl:value-of select="$default.table.rules"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$border != '' and $border != 0">
+      <xsl:attribute name="border">
+        <xsl:value-of select="$table.cell.border.thickness"/>
+        <xsl:text> </xsl:text>
+        <xsl:value-of select="$table.cell.border.style"/>
+        <xsl:text> </xsl:text>
+        <xsl:value-of select="$table.cell.border.color"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="$rules = 'none'">
+      <xsl:attribute name="border-start-style">none</xsl:attribute>
+      <xsl:attribute name="border-end-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-style">none</xsl:attribute>
+      <xsl:attribute name="border-bottom-style">none</xsl:attribute>
+    </xsl:when>
+
+    <xsl:when test="$rules = 'cols' and following-sibling::*">
+      <!-- If not the last column, add border after -->
+      <xsl:attribute name="border-start-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-style">none</xsl:attribute>
+      <xsl:attribute name="border-bottom-style">none</xsl:attribute>
+      <xsl:attribute name="border-end-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-end-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-end-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+    </xsl:when>
+    <!-- If not the last row, add border below -->
+    <xsl:when test="$rules = 'rows'">
+      <xsl:variable name="rowborder">
+        <xsl:choose>
+          <!-- If in thead and tbody has rows, add border -->
+          <xsl:when test="parent::tr/parent::thead/
+                          following-sibling::tbody/tr">1</xsl:when>
+          <!-- If in tbody and tfoot has rows, add border -->
+          <xsl:when test="parent::tr/parent::tbody/
+                          following-sibling::tfoot/tr">1</xsl:when>
+          <xsl:when test="parent::tr/parent::tbody/
+                          preceding-sibling::tfoot/tr">1</xsl:when>
+          <!-- If following rows, but not rowspan reaches last row -->
+          <xsl:when test="parent::tr/following-sibling::tr and
+             not(@rowspan = count(parent::tr/following-sibling::tr) + 1)">1</xsl:when>
+          <xsl:otherwise>0</xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:if test="$rowborder = 1">
+        <xsl:attribute name="border-start-style">none</xsl:attribute>
+        <xsl:attribute name="border-end-style">none</xsl:attribute>
+        <xsl:attribute name="border-top-style">none</xsl:attribute>
+        <xsl:attribute name="border-bottom-style">
+          <xsl:value-of select="$table.frame.border.style"/>
+        </xsl:attribute>
+        <xsl:attribute name="border-bottom-width">
+          <xsl:value-of select="$table.frame.border.thickness"/>
+        </xsl:attribute>
+        <xsl:attribute name="border-bottom-color">
+          <xsl:value-of select="$table.frame.border.color"/>
+        </xsl:attribute>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="$rules = 'all'">
+      <xsl:attribute name="border-start-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-style">none</xsl:attribute>
+
+      <xsl:variable name="rowborder">
+        <xsl:choose>
+          <!-- If in thead and tbody has rows, add border -->
+          <xsl:when test="parent::tr/parent::thead/
+                          following-sibling::tbody/tr">1</xsl:when>
+          <!-- If in tbody and tfoot has rows, add border -->
+          <xsl:when test="parent::tr/parent::tbody/
+                          following-sibling::tfoot/tr">1</xsl:when>
+          <xsl:when test="parent::tr/parent::tbody/
+                          preceding-sibling::tfoot/tr">1</xsl:when>
+          <!-- If following rows, but not rowspan reaches last row -->
+          <xsl:when test="parent::tr/following-sibling::tr and
+             not(@rowspan = count(parent::tr/following-sibling::tr) + 1)">1</xsl:when>
+          <xsl:otherwise>0</xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:if test="$rowborder = 1">
+        <xsl:attribute name="border-bottom-style">
+          <xsl:value-of select="$table.frame.border.style"/>
+        </xsl:attribute>
+        <xsl:attribute name="border-bottom-width">
+          <xsl:value-of select="$table.frame.border.thickness"/>
+        </xsl:attribute>
+        <xsl:attribute name="border-bottom-color">
+          <xsl:value-of select="$table.frame.border.color"/>
+        </xsl:attribute>
+      </xsl:if>
+
+      <xsl:if test="following-sibling::*">
+        <!-- If not the last column, add border after -->
+        <xsl:attribute name="border-end-style">
+          <xsl:value-of select="$table.frame.border.style"/>
+        </xsl:attribute>
+        <xsl:attribute name="border-end-width">
+          <xsl:value-of select="$table.frame.border.thickness"/>
+        </xsl:attribute>
+        <xsl:attribute name="border-end-color">
+          <xsl:value-of select="$table.frame.border.color"/>
+        </xsl:attribute>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="$rules = 'groups' and ancestor::thead 
+                    and not(parent::tr/following-sibling::tr)">
+      <xsl:attribute name="border-start-style">none</xsl:attribute>
+      <xsl:attribute name="border-end-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-style">none</xsl:attribute>
+      <xsl:attribute name="border-bottom-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-bottom-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-bottom-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="$rules = 'groups' and ancestor::tfoot 
+                    and not(parent::tr/preceding-sibling::tr)">
+      <xsl:attribute name="border-start-style">none</xsl:attribute>
+      <xsl:attribute name="border-end-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-top-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-top-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="caption" mode="htmlTable">
+  <!-- Handled by formal.object.heading -->
+</xsl:template>
+
+<xsl:template name="widest-html-row">
+  <xsl:param name="rows" select="''"/>
+  <xsl:param name="count" select="0"/>
+  <xsl:choose>
+    <xsl:when test="count($rows) = 0">
+      <xsl:value-of select="$count"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$count &gt; count($rows[1]/*)">
+          <xsl:call-template name="widest-html-row">
+            <xsl:with-param name="rows" select="$rows[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="widest-html-row">
+            <xsl:with-param name="rows" select="$rows[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="count($rows[1]/*)"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="make-html-table-columns">
+  <xsl:param name="count" select="0"/>
+  <xsl:param name="number" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="col|colgroup/col">
+      <xsl:for-each select="col|colgroup/col">
+        <fo:table-column>
+          <xsl:attribute name="column-number">
+            <xsl:number from="table|informaltable" level="any" format="1"/>
+          </xsl:attribute>
+          <xsl:if test="@width">
+            <xsl:attribute name="column-width">
+              <xsl:choose>
+                <xsl:when test="$fop.extensions != 0 and 
+                                contains(@width, '%')">
+                  <xsl:value-of select="concat('proportional-column-width(',
+                                               substring-before(@width, '%'),
+                                               ')')"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="@width"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+          </xsl:if>
+        </fo:table-column>
+      </xsl:for-each>
+    </xsl:when>
+    <xsl:when test="$fop.extensions != 0">
+      <xsl:if test="$number &lt;= $count">
+        <fo:table-column column-number="{$number}"
+                         column-width="{6.5 div $count}in"/>
+        <xsl:call-template name="make-html-table-columns">
+          <xsl:with-param name="count" select="$count"/>
+          <xsl:with-param name="number" select="$number + 1"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tbody" mode="htmlTable">
+  <fo:table-body start-indent="0pt"
+                 end-indent="0pt">
+    <xsl:apply-templates mode="htmlTable"/>
+  </fo:table-body>
+</xsl:template>
+
+<xsl:template match="tfoot" mode="htmlTable">
+  <fo:table-footer start-indent="0pt"
+                   end-indent="0pt">
+    <xsl:apply-templates mode="htmlTable"/>
+  </fo:table-footer>
+</xsl:template>
+
+<xsl:template match="th|td" mode="htmlTable">
+  <xsl:variable name="bgcolor.pi">
+    <xsl:call-template name="pi.dbfo_bgcolor"/>
+  </xsl:variable>
+
+  <xsl:variable name="bgcolor">
+    <xsl:choose>
+      <xsl:when test="$bgcolor.pi != ''">
+        <xsl:value-of select="$bgcolor.pi"/>
+      </xsl:when>
+      <xsl:when test="string-length(@bgcolor) != 0">
+        <xsl:value-of select="@bgcolor"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="align">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="row" select="parent::tr"/>
+      <xsl:with-param name="attribute" select="'align'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="valign">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="row" select="parent::tr"/>
+      <xsl:with-param name="attribute" select="'valign'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <fo:table-cell xsl:use-attribute-sets="table.cell.padding">
+    <xsl:call-template name="table.cell.properties">
+      <xsl:with-param name="bgcolor.pi" select="$bgcolor"/>
+      <xsl:with-param name="rowsep.inherit" select="0"/>
+      <xsl:with-param name="align.inherit" select="$align"/>
+      <xsl:with-param name="valign.inherit" select="$valign"/>
+      <xsl:with-param name="colsep.inherit" select="0"/>
+    </xsl:call-template>
+
+    <xsl:if test="@colspan &gt; 1">
+      <xsl:attribute name="number-columns-spanned">
+        <xsl:value-of select="@colspan"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="@rowspan &gt; 1">
+      <xsl:attribute name="number-rows-spanned">
+        <xsl:value-of select="@rowspan"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <fo:block>
+      <xsl:call-template name="table.cell.block.properties"/>
+      <xsl:apply-templates/>
+    </fo:block>
+  </fo:table-cell>
+</xsl:template>
+
+<xsl:template match="thead" mode="htmlTable">
+  <fo:table-header start-indent="0pt"
+                   end-indent="0pt">
+    <xsl:apply-templates mode="htmlTable"/>
+  </fo:table-header>
+</xsl:template>
+
+<xsl:template match="tr" mode="htmlTable">
+  <fo:table-row>
+    <xsl:call-template name="table.row.properties"/>
+    <xsl:apply-templates mode="htmlTable"/>
+  </fo:table-row>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/index.xsl b/applications/content/template/docbook/fo/index.xsl
new file mode 100644
index 0000000..53a9b29
--- /dev/null
+++ b/applications/content/template/docbook/fo/index.xsl
@@ -0,0 +1,484 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+]>
+<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$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="index">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+ <xsl:if test="$generate.index != 0">
+  <xsl:choose>
+    <xsl:when test="$make.index.markup != 0">
+      <fo:block>
+        <xsl:call-template name="generate-index-markup">
+          <xsl:with-param name="scope" select="(ancestor::book|/)[last()]"/>
+        </xsl:call-template>
+      </fo:block>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block id="{$id}">
+        <xsl:call-template name="index.titlepage"/>
+      </fo:block>
+      <xsl:apply-templates/>
+      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+        <xsl:call-template name="generate-index">
+          <xsl:with-param name="scope" select="(ancestor::book|/)[last()]"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="book/index|part/index">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+ <xsl:if test="$generate.index != 0">
+  <xsl:variable name="master-reference">
+    <xsl:call-template name="select.pagemaster">
+      <xsl:with-param name="pageclass">
+        <xsl:if test="$make.index.markup != 0">body</xsl:if>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <fo:page-sequence hyphenate="{$hyphenate}"
+                    master-reference="{$master-reference}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="component.titlepage.properties">
+        <xsl:call-template name="index.titlepage"/>
+      </fo:block>
+      <xsl:apply-templates/>
+      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+
+        <xsl:choose>
+          <xsl:when test="$make.index.markup != 0">
+            <fo:block wrap-option='no-wrap'
+                      white-space-collapse='false'
+                      xsl:use-attribute-sets="monospace.verbatim.properties"
+                      linefeed-treatment="preserve">
+              <xsl:call-template name="generate-index-markup">
+                <xsl:with-param name="scope" select="(ancestor::book|/)[last()]"/>
+              </xsl:call-template>
+            </fo:block>
+          </xsl:when>
+          <xsl:when test="indexentry|indexdiv/indexentry">
+            <xsl:apply-templates/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="generate-index">
+              <xsl:with-param name="scope" select="(ancestor::book|/)[last()]"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </fo:flow>
+  </fo:page-sequence>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="setindex">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+ <xsl:if test="$generate.index != 0">
+  <xsl:variable name="master-reference">
+    <xsl:call-template name="select.pagemaster">
+      <xsl:with-param name="pageclass">
+        <xsl:choose>
+          <xsl:when test="$make.index.markup != 0">body</xsl:when>
+          <xsl:otherwise>index</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <fo:page-sequence hyphenate="{$hyphenate}"
+                    master-reference="{$master-reference}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <fo:block id="{$id}">
+        <xsl:call-template name="setindex.titlepage"/>
+      </fo:block>
+      <xsl:apply-templates/>
+      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+
+        <xsl:choose>
+          <xsl:when test="$make.index.markup != 0">
+            <fo:block wrap-option='no-wrap'
+                      white-space-collapse='false'
+                      xsl:use-attribute-sets="monospace.verbatim.properties"
+                      linefeed-treatment="preserve">
+              <xsl:call-template name="generate-index-markup">
+                <xsl:with-param name="scope" select="/"/>
+              </xsl:call-template>
+            </fo:block>
+          </xsl:when>
+          <xsl:when test="indexentry|indexdiv/indexentry">
+            <xsl:apply-templates/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="generate-index">
+              <xsl:with-param name="scope" select="/"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </fo:flow>
+  </fo:page-sequence>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="index/indexinfo"></xsl:template>
+<xsl:template match="index/info"></xsl:template>
+<xsl:template match="index/title"></xsl:template>
+<xsl:template match="index/subtitle"></xsl:template>
+<xsl:template match="index/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="indexdiv.title">
+  <xsl:param name="title"/>
+  <xsl:param name="titlecontent"/>
+
+  <fo:block xsl:use-attribute-sets="index.div.title.properties">
+    <xsl:choose>
+      <xsl:when test="$title">
+        <xsl:apply-templates select="." mode="object.title.markup">
+          <xsl:with-param name="allow-anchors" select="1"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$titlecontent"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="indexdiv">
+  <fo:block>
+    <xsl:call-template name="indexdiv.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="indexdiv/title"/>
+<xsl:template match="indexdiv/subtitle"/>
+<xsl:template match="indexdiv/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<!-- Text used for distiguishing between normal and significant entries -->
+<xsl:variable name="significant.flag">.tnacifingis</xsl:variable>
+
+<xsl:template match="indexterm" name="indexterm">
+  <!-- Temporal workaround for bug in AXF -->
+  <xsl:variable name="wrapper.name">
+    <xsl:choose>
+      <xsl:when test="$axf.extensions != 0 or $fop1.extensions != 0">
+        <xsl:call-template name="inline.or.block"/>
+      </xsl:when>
+      <xsl:otherwise>fo:wrapper</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$wrapper.name}">
+    <xsl:attribute name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:attribute>
+    <xsl:choose>
+      <xsl:when test="$xep.extensions != 0">
+        <xsl:attribute name="rx:key">
+          <xsl:value-of select="&primary;"/>
+          <xsl:if test="@significance='preferred'"><xsl:value-of select="$significant.flag"/></xsl:if>
+          <xsl:if test="secondary">
+            <xsl:text>, </xsl:text>
+            <xsl:value-of select="&secondary;"/>
+          </xsl:if>
+          <xsl:if test="tertiary">
+            <xsl:text>, </xsl:text>
+            <xsl:value-of select="&tertiary;"/>
+          </xsl:if>
+        </xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:comment>
+          <xsl:call-template name="comment-escape-string">
+            <xsl:with-param name="string">
+              <xsl:value-of select="primary"/>
+              <xsl:if test="secondary">
+                <xsl:text>, </xsl:text>
+                <xsl:value-of select="secondary"/>
+              </xsl:if>
+              <xsl:if test="tertiary">
+                <xsl:text>, </xsl:text>
+                <xsl:value-of select="tertiary"/>
+              </xsl:if>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:comment>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="indexterm[@class='startofrange']">
+  <xsl:choose>
+    <xsl:when test="$xep.extensions != 0">
+      <rx:begin-index-range>
+        <xsl:call-template name="anchor"/>
+        <xsl:attribute name="rx:key">
+          <xsl:value-of select="&primary;"/>
+          <xsl:if test="@significance='preferred'"><xsl:value-of select="$significant.flag"/></xsl:if>
+          <xsl:if test="secondary">
+            <xsl:text>, </xsl:text>
+            <xsl:value-of select="&secondary;"/>
+          </xsl:if>
+          <xsl:if test="tertiary">
+            <xsl:text>, </xsl:text>
+            <xsl:value-of select="&tertiary;"/>
+          </xsl:if>
+        </xsl:attribute>
+      </rx:begin-index-range>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="indexterm"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm[@class='endofrange']">
+  <xsl:choose>
+    <xsl:when test="$xep.extensions != 0">
+      <rx:end-index-range>
+        <xsl:attribute name="ref-id">
+          <xsl:value-of select="@startref"/>
+        </xsl:attribute>
+      </rx:end-index-range>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="indexterm"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexentry">
+  <fo:block>
+    <!-- don't process 'seeie's from here -->
+    <xsl:apply-templates select="primaryie|secondaryie|tertiaryie|seealsoie"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="primaryie">
+  <fo:block>
+    <xsl:apply-templates/>
+    <xsl:if test="following-sibling::seeie">
+      <xsl:text> (</xsl:text>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'see'"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="following-sibling::seeie"/>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="secondaryie">
+  <fo:block start-indent="1pc">
+    <xsl:apply-templates/>
+    <xsl:if test="following-sibling::seeie">
+      <xsl:text> (</xsl:text>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'see'"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="following-sibling::seeie"/>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="tertiaryie">
+  <fo:block start-indent="2pc">
+    <xsl:apply-templates/>
+    <xsl:if test="following-sibling::seeie">
+      <xsl:text> (</xsl:text>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'see'"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="following-sibling::seeie"/>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="seeie">
+  <fo:inline>
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="seealsoie">
+  <fo:block>
+    <xsl:attribute name="start-indent">
+      <xsl:choose>
+        <xsl:when test="(preceding-sibling::tertiaryie |
+                         preceding-sibling::secondaryie)[last()]
+                         [self::tertiaryie]">3pc</xsl:when>
+        <xsl:when test="(preceding-sibling::tertiaryie |
+                         preceding-sibling::secondaryie)[last()]
+                         [self::secondaryie]">2pc</xsl:when>
+        <xsl:otherwise>1pc</xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+    <xsl:text>(</xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'seealso'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </fo:block>
+</xsl:template>
+
+<!-- Determines if an object should be inserted as an fo:inline
+     or an fo:block.  Used for indexterms -->
+<xsl:template name="inline.or.block">
+  <xsl:param name="parentnode" select=".."/>
+
+  <xsl:variable name="parent" select="concat('|', local-name($parentnode), '|')"/>
+
+  <xsl:variable name="block.parents" select="'|answer|appendix|appendixinfo|article|articleinfo|bibliodiv|bibliography|bibliographyinfo|blockinfo|blockquote|bookinfo|callout|caution|chapter|chapterinfo|dedication|example|figure|formalpara|funcsynopsisinfo|glossary|glossaryinfo|glossdef|glossdiv|glossentry|highlights|important|index|indexinfo|info|informalexample|informalfigure|informaltable|itemizedlist|legalnotice|listitem|msgexplan|msgtext|note|objectinfo|orderedlist|partinfo|partintro|preface|prefaceinfo|procedure|qandadiv|qandaset|question|refentry|refentryinfo|referenceinfo|refmeta|refmiscinfo|refsect1|refsect1info|refsect2|refsect2info|refsect3|refsect3info|refsection|refsectioninfo|refsynopsisdiv|refsynopsisdivinfo|revdescription|screeninfo|sect1|sect1info|sect2|sect2info|sect3|sect3info|sect4|sect4info|sect5|sect5info|section|sectioninfo|setindex|setindexinfo|setinfo|sidebar|sidebarinfo|simplesect|step|table|task|taskprerequisites|taskrelated|tasksummary|tip|topic|variablelist|warning|'"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($block.parents, $parent)">fo:block</xsl:when>
+    <xsl:when test="$fop1.extensions != 0">fo:wrapper</xsl:when>
+    <xsl:otherwise>fo:inline</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/info.xsl b/applications/content/template/docbook/fo/info.xsl
new file mode 100644
index 0000000..5bb00e2
--- /dev/null
+++ b/applications/content/template/docbook/fo/info.xsl
@@ -0,0 +1,34 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- These templates define the "default behavior" for info
+     elements.  Even if you don't process the *info wrappers,
+     some of these elements are needed because the elements are
+     processed from named templates that are called with modes.
+     Since modes aren't sticky, these rules apply. 
+     (TODO: clarify this comment) -->
+
+<!-- ==================================================================== -->
+<!-- called from named templates in a given mode -->
+
+<xsl:template match="corpauthor">
+  <fo:inline>
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/inline.xsl b/applications/content/template/docbook/fo/inline.xsl
new file mode 100644
index 0000000..db25ebb
--- /dev/null
+++ b/applications/content/template/docbook/fo/inline.xsl
@@ -0,0 +1,1304 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:xlink='http://www.w3.org/1999/xlink'
+                exclude-result-prefixes="xlink"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:key name="glossentries" match="glossentry" use="normalize-space(glossterm)"/>
+<xsl:key name="glossentries" match="glossentry" use="normalize-space(glossterm/@baseform)"/>
+
+<xsl:template name="simple.xlink">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <xsl:param name="linkend" select="$node/@linkend"/>
+  <xsl:param name="xhref" select="$node/@xlink:href"/>
+
+  <xsl:choose>
+    <xsl:when test="$xhref
+                    and (not($node/@xlink:type) or 
+                         $node/@xlink:type='simple')">
+
+      <!-- Is it a local idref? -->
+      <xsl:variable name="is.idref">
+        <xsl:choose>
+          <!-- if the href starts with # and does not contain an "(" -->
+          <!-- or if the href starts with #xpointer(id(, it's just an ID -->
+          <xsl:when test="starts-with($xhref,'#')
+                          and (not(contains($xhref,'&#40;'))
+                          or starts-with($xhref,
+                                     '#xpointer&#40;id&#40;'))">1</xsl:when>
+          <xsl:otherwise>0</xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <!-- Is it an olink ? -->
+      <xsl:variable name="is.olink">
+        <xsl:choose>
+          <!-- If xlink:role="http://docbook.org/xlink/role/olink" -->
+          <!-- and if the href contains # -->
+          <xsl:when test="contains($xhref,'#') and
+               @xlink:role = $xolink.role">1</xsl:when>
+          <xsl:otherwise>0</xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$is.olink = 1">
+          <xsl:call-template name="olink">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:when>
+
+        <xsl:when test="$is.idref = 1">
+
+          <xsl:variable name="idref">
+            <xsl:call-template name="xpointer.idref">
+              <xsl:with-param name="xpointer" select="$xhref"/>
+            </xsl:call-template>
+          </xsl:variable>
+
+          <xsl:variable name="targets" select="key('id',$idref)"/>
+          <xsl:variable name="target" select="$targets[1]"/>
+
+          <xsl:call-template name="check.id.unique">
+            <xsl:with-param name="linkend" select="$idref"/>
+          </xsl:call-template>
+
+          <xsl:choose>
+            <xsl:when test="count($target) = 0">
+              <xsl:message>
+                <xsl:text>XLink to nonexistent id: </xsl:text>
+                <xsl:value-of select="$idref"/>
+              </xsl:message>
+              <xsl:copy-of select="$content"/>
+            </xsl:when>
+
+            <xsl:otherwise>
+              <fo:basic-link internal-destination="{$idref}">
+                <xsl:apply-templates select="." mode="simple.xlink.properties"/>
+                <xsl:copy-of select="$content"/>
+              </fo:basic-link>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+
+        <!-- otherwise it's a URI -->
+        <xsl:otherwise>
+          <fo:basic-link external-destination="url({$xhref})">
+            <xsl:apply-templates select="." mode="simple.xlink.properties"/>
+            <xsl:copy-of select="$content"/>
+          </fo:basic-link>
+          <!-- * Call the template for determining whether the URL for this -->
+          <!-- * hyperlink is displayed, and how to display it (either inline or -->
+          <!-- * as a numbered footnote). -->
+          <xsl:call-template name="hyperlink.url.display">
+            <xsl:with-param name="url" select="$xhref"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="$linkend">
+      <xsl:variable name="targets" select="key('id',$linkend)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+
+      <xsl:call-template name="check.id.unique">
+        <xsl:with-param name="linkend" select="$linkend"/>
+      </xsl:call-template>
+
+      <xsl:choose>
+        <xsl:when test="count($target) = 0">
+          <xsl:message>
+            <xsl:text>XLink to nonexistent id: </xsl:text>
+            <xsl:value-of select="$linkend"/>
+          </xsl:message>
+          <xsl:copy-of select="$content"/>
+        </xsl:when>
+
+        <xsl:otherwise>
+          <fo:basic-link internal-destination="{$linkend}">
+            <xsl:apply-templates select="." mode="simple.xlink.properties"/>
+            <xsl:copy-of select="$content"/>
+          </fo:basic-link>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="inline.charseq">
+  <xsl:param name="content">
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="@dir">
+      <fo:inline>
+        <xsl:attribute name="direction">
+          <xsl:choose>
+            <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
+            <xsl:otherwise>rtl</xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+        <xsl:copy-of select="$content"/>
+      </fo:inline>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.monoseq">
+  <xsl:param name="content">
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+
+  <fo:inline xsl:use-attribute-sets="monospace.properties">
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="@dir">
+      <xsl:attribute name="direction">
+        <xsl:choose>
+          <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
+          <xsl:otherwise>rtl</xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="inline.boldseq">
+  <xsl:param name="content">
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+
+  <fo:inline font-weight="bold">
+    <xsl:if test="@dir">
+      <xsl:attribute name="direction">
+        <xsl:choose>
+          <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
+          <xsl:otherwise>rtl</xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="inline.italicseq">
+  <xsl:param name="content">
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+
+  <fo:inline font-style="italic">
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="@dir">
+      <xsl:attribute name="direction">
+        <xsl:choose>
+          <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
+          <xsl:otherwise>rtl</xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="inline.boldmonoseq">
+  <xsl:param name="content">
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+
+  <fo:inline font-weight="bold" xsl:use-attribute-sets="monospace.properties">
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="@dir">
+      <xsl:attribute name="direction">
+        <xsl:choose>
+          <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
+          <xsl:otherwise>rtl</xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="inline.italicmonoseq">
+  <xsl:param name="content">
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+
+  <fo:inline font-style="italic" xsl:use-attribute-sets="monospace.properties">
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="@dir">
+      <xsl:attribute name="direction">
+        <xsl:choose>
+          <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
+          <xsl:otherwise>rtl</xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="inline.superscriptseq">
+  <xsl:param name="content">
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+
+  <fo:inline xsl:use-attribute-sets="superscript.properties">
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="@dir">
+      <xsl:attribute name="direction">
+        <xsl:choose>
+          <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
+          <xsl:otherwise>rtl</xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:choose>
+      <xsl:when test="$fop.extensions != 0">
+        <xsl:attribute name="vertical-align">super</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:attribute name="baseline-shift">super</xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="inline.subscriptseq">
+  <xsl:param name="content">
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+
+  <fo:inline xsl:use-attribute-sets="subscript.properties">
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="@dir">
+      <xsl:attribute name="direction">
+        <xsl:choose>
+          <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
+          <xsl:otherwise>rtl</xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:choose>
+      <xsl:when test="$fop.extensions != 0">
+        <xsl:attribute name="vertical-align">sub</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:attribute name="baseline-shift">sub</xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- some special cases -->
+
+<xsl:template match="author">
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="content">
+      <xsl:call-template name="person.name"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="editor">
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="content">
+      <xsl:call-template name="person.name"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="othercredit">
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="content">
+      <xsl:call-template name="person.name"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="authorinitials">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="accel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="action">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="application">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="classname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="exceptionname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="interfacename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="methodname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="command">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="computeroutput">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="constant">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="database">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="date">
+  <!-- should this support locale-specific formatting? how? -->
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorcode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortype">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortext">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="envar">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="filename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="function">
+  <xsl:choose>
+    <xsl:when test="$function.parens != '0'
+                    and (parameter or function or replaceable)">
+      <xsl:variable name="nodes" select="text()|*"/>
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:call-template name="simple.xlink">
+            <xsl:with-param name="content">
+              <xsl:apply-templates select="$nodes[1]"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>(</xsl:text>
+      <xsl:apply-templates select="$nodes[position()>1]"/>
+      <xsl:text>)</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+     <xsl:call-template name="inline.monoseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="function/parameter" priority="2">
+  <xsl:call-template name="inline.italicmonoseq"/>
+  <xsl:if test="following-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="function/replaceable" priority="2">
+  <xsl:call-template name="inline.italicmonoseq"/>
+  <xsl:if test="following-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="guibutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guiicon">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guilabel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenuitem">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guisubmenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="hardware">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interface">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interfacedefinition">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keycap">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="keycode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keysym">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="literal">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="code">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="medialabel">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="shortcut">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="mousebutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="option">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="package">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="parameter">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="property">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="prompt">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="replaceable">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="returnvalue">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="structfield">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="structname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="symbol">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="systemitem">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="token">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="type">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="userinput">
+  <xsl:call-template name="inline.boldmonoseq"/>
+</xsl:template>
+
+<xsl:template match="abbrev">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="acronym">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="citerefentry">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="citetitle">
+  <xsl:choose>
+    <xsl:when test="@pubwork = 'article'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.italicseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="emphasis">
+  <xsl:variable name="depth">
+    <xsl:call-template name="dot.count">
+      <xsl:with-param name="string">
+        <xsl:number level="multiple"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@role='bold' or @role='strong'">
+      <xsl:call-template name="inline.boldseq"/>
+    </xsl:when>
+    <xsl:when test="@role='underline'">
+      <fo:inline text-decoration="underline">
+        <xsl:call-template name="inline.charseq"/>
+      </fo:inline>
+    </xsl:when>
+    <xsl:when test="@role='strikethrough'">
+      <fo:inline text-decoration="line-through">
+        <xsl:call-template name="inline.charseq"/>
+      </fo:inline>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$depth mod 2 = 1">
+          <fo:inline font-style="normal">
+            <xsl:apply-templates/>
+          </fo:inline>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="inline.italicseq"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="foreignphrase">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="markup">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phrase">
+  <fo:inline>
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="inline.charseq"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="quote">
+  <xsl:variable name="depth">
+    <xsl:call-template name="dot.count">
+      <xsl:with-param name="string"><xsl:number level="multiple"/></xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="$depth mod 2 = 0">
+        <xsl:call-template name="gentext.startquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.endquote"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="gentext.nestedstartquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.nestedendquote"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:inline>
+    <xsl:call-template name="anchor"/>
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+
+</xsl:template>
+
+<xsl:template match="varname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="wordasword">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="lineannotation">
+  <fo:inline font-style="italic">
+    <xsl:call-template name="inline.charseq"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="superscript">
+  <xsl:call-template name="inline.superscriptseq"/>
+</xsl:template>
+
+<xsl:template match="subscript">
+  <xsl:call-template name="inline.subscriptseq"/>
+</xsl:template>
+
+<xsl:template match="trademark">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:choose>
+    <xsl:when test="@class = 'copyright'
+                    or @class = 'registered'">
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat" select="@class"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="@class = 'service'">
+      <xsl:call-template name="inline.superscriptseq">
+        <xsl:with-param name="content" select="'SM'"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat" select="'trademark'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="firstterm">
+  <xsl:call-template name="glossterm">
+    <xsl:with-param name="firstterm" select="1"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="glossterm" name="glossterm">
+  <xsl:param name="firstterm" select="0"/>
+
+  <xsl:choose>
+    <xsl:when test="($firstterm.only.link = 0 or $firstterm = 1) and @linkend">
+      <xsl:variable name="targets" select="key('id',@linkend)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+
+      <xsl:choose>
+        <xsl:when test="$target">
+          <fo:basic-link internal-destination="{@linkend}" 
+                         xsl:use-attribute-sets="xref.properties">
+            <xsl:call-template name="inline.italicseq"/>
+          </fo:basic-link>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="inline.italicseq"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="not(@linkend)
+                    and ($firstterm.only.link = 0 or $firstterm = 1)
+                    and ($glossterm.auto.link != 0)
+                    and $glossary.collection != ''">
+      <xsl:variable name="term">
+        <xsl:choose>
+          <xsl:when test="@baseform"><xsl:value-of select="@baseform"/></xsl:when>
+          <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+      <xsl:variable name="cterm"
+           select="(document($glossary.collection,.)//glossentry[glossterm=$term])[1]"/>
+
+      <xsl:choose>
+        <xsl:when test="not($cterm)">
+          <xsl:message>
+            <xsl:text>There's no entry for </xsl:text>
+            <xsl:value-of select="$term"/>
+            <xsl:text> in </xsl:text>
+            <xsl:value-of select="$glossary.collection"/>
+          </xsl:message>
+          <xsl:call-template name="inline.italicseq"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:variable name="id">
+            <xsl:call-template name="object.id">
+              <xsl:with-param name="object" select="$cterm"/>
+            </xsl:call-template>
+          </xsl:variable>
+          <fo:basic-link internal-destination="{$id}"
+                         xsl:use-attribute-sets="xref.properties">
+            <xsl:call-template name="inline.italicseq"/>
+          </fo:basic-link>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="not(@linkend)
+                    and ($firstterm.only.link = 0 or $firstterm = 1)
+                    and $glossterm.auto.link != 0">
+      <xsl:variable name="term">
+        <xsl:choose>
+          <xsl:when test="@baseform">
+            <xsl:value-of select="normalize-space(@baseform)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="normalize-space(.)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="targets"
+                    select="key('glossentries', $term)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+
+      <xsl:choose>
+        <xsl:when test="count($targets)=0">
+          <xsl:message>
+            <xsl:text>Error: no glossentry for glossterm: </xsl:text>
+            <xsl:value-of select="."/>
+            <xsl:text>.</xsl:text>
+          </xsl:message>
+          <xsl:call-template name="inline.italicseq"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:variable name="termid">
+            <xsl:call-template name="object.id">
+              <xsl:with-param name="object" select="$target"/>
+            </xsl:call-template>
+          </xsl:variable>
+
+          <fo:basic-link internal-destination="{$termid}"
+                         xsl:use-attribute-sets="xref.properties">
+            <xsl:call-template name="inline.charseq"/>
+          </fo:basic-link>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.italicseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="termdef">
+  <fo:inline>
+    <xsl:call-template name="gentext.template">
+      <xsl:with-param name="context" select="'termdef'"/>
+      <xsl:with-param name="name" select="'prefix'"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+    <xsl:call-template name="gentext.template">
+      <xsl:with-param name="context" select="'termdef'"/>
+      <xsl:with-param name="name" select="'suffix'"/>
+    </xsl:call-template>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="sgmltag|tag">
+  <xsl:variable name="class">
+    <xsl:choose>
+      <xsl:when test="@class">
+        <xsl:value-of select="@class"/>
+      </xsl:when>
+      <xsl:otherwise>element</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$class='attribute'">
+      <xsl:call-template name="inline.monoseq"/>
+    </xsl:when>
+    <xsl:when test="$class='attvalue'">
+      <xsl:call-template name="inline.monoseq"/>
+    </xsl:when>
+    <xsl:when test="$class='element'">
+      <xsl:call-template name="inline.monoseq"/>
+    </xsl:when>
+    <xsl:when test="$class='endtag'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;/</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='genentity'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&amp;</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='numcharref'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&amp;#</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='paramentity'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>%</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='pi'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;?</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='xmlpi'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;?</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>?&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='starttag'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='emptytag'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>/&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='sgmlcomment' or $class='comment'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;!--</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>--&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.charseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="email">
+  <xsl:call-template name="inline.monoseq">
+    <xsl:with-param name="content">
+      <fo:inline keep-together.within-line="always" hyphenate="false">
+        <xsl:if test="not($email.delimiters.enabled = 0)">
+          <xsl:text>&lt;</xsl:text>
+        </xsl:if>
+        <xsl:choose>
+          <xsl:when test="not($email.mailto.enabled = 0)">
+            <fo:basic-link xsl:use-attribute-sets="xref.properties"
+                           keep-together.within-line="always" hyphenate="false">
+              <xsl:attribute name="external-destination">
+                mailto:<xsl:value-of select="string(.)" />
+              </xsl:attribute>
+              <xsl:apply-templates/>
+            </fo:basic-link>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+        <xsl:if test="not($email.delimiters.enabled = 0)">
+          <xsl:text>&gt;</xsl:text>
+        </xsl:if>
+      </fo:inline>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="keycombo">
+  <xsl:variable name="action" select="@action"/>
+  <xsl:variable name="joinchar">
+    <xsl:choose>
+      <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when>
+      <xsl:when test="$action='simul'">+</xsl:when>
+      <xsl:when test="$action='press'">-</xsl:when>
+      <xsl:when test="$action='click'">-</xsl:when>
+      <xsl:when test="$action='double-click'">-</xsl:when>
+      <xsl:when test="$action='other'"></xsl:when>
+      <xsl:otherwise>+</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:for-each select="*">
+    <xsl:if test="position()>1"><xsl:value-of select="$joinchar"/></xsl:if>
+    <xsl:apply-templates select="."/>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="uri">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="menuchoice">
+  <xsl:variable name="shortcut" select="./shortcut"/>
+  <xsl:call-template name="process.menuchoice"/>
+  <xsl:if test="$shortcut">
+    <xsl:text> (</xsl:text>
+    <xsl:apply-templates select="$shortcut"/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.menuchoice">
+  <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:variable name="mm.separator">
+    <xsl:choose>
+      <xsl:when test="($fop.extensions != 0 or $fop1.extensions != 0 ) and
+                contains($menuchoice.menu.separator, '&#x2192;')">
+        <fo:inline font-family="Symbol">
+          <xsl:copy-of select="$menuchoice.menu.separator"/>
+        </fo:inline>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$menuchoice.menu.separator"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($nodelist)"></xsl:when>
+    <xsl:when test="$count=1">
+      <xsl:apply-templates select="$nodelist[$count=position()]"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="node" select="$nodelist[$count=position()]"/>
+      <xsl:choose>
+        <xsl:when test="local-name($node)='guimenuitem'
+                        or local-name($node)='guisubmenu'">
+          <xsl:copy-of select="$mm.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:copy-of select="$menuchoice.separator"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:apply-templates select="$node"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="optional">
+  <xsl:value-of select="$arg.choice.opt.open.str"/>
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:value-of select="$arg.choice.opt.close.str"/>
+</xsl:template>
+
+<xsl:template match="citation">
+  <!-- todo: integrate with bibliography collection -->
+  <xsl:variable name="targets" select="(//biblioentry | //bibliomixed)[abbrev = string(current())]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <!-- try automatic linking based on match to abbrev -->
+    <xsl:when test="$target and not(xref) and not(link)">
+
+      <xsl:text>[</xsl:text>
+      <fo:basic-link>
+        <xsl:attribute name="internal-destination">
+          <xsl:call-template name="object.id">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:choose>
+          <xsl:when test="$bibliography.numbered != 0">
+            <xsl:apply-templates select="$target" mode="citation"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="inline.charseq"/>
+          </xsl:otherwise>
+        </xsl:choose>
+     
+      </fo:basic-link>
+      <xsl:text>]</xsl:text>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:text>[</xsl:text>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:text>]</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="citebiblioid">
+  <xsl:variable name="targets" select="//*[biblioid = string(current())]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <!-- try automatic linking based on match to parent of biblioid -->
+    <xsl:when test="$target and not(xref) and not(link)">
+
+      <xsl:text>[</xsl:text>
+      <fo:basic-link>
+        <xsl:attribute name="internal-destination">
+          <xsl:call-template name="object.id">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:call-template name="inline.charseq"/>
+            
+      </fo:basic-link>
+      <xsl:text>]</xsl:text>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:text>[</xsl:text>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:text>]</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="citation">
+  <xsl:number from="bibliography" count="biblioentry|bibliomixed"
+              level="any" format="1"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="comment[&comment.block.parents;]|remark[&comment.block.parents;]">
+  <xsl:if test="$show.comments != 0">
+    <fo:block font-style="italic">
+      <xsl:call-template name="inline.charseq"/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="comment|remark">
+  <xsl:if test="$show.comments != 0">
+    <fo:inline font-style="italic">
+      <xsl:call-template name="inline.charseq"/>
+    </fo:inline>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productname">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:if test="@class">
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat" select="@class"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="productnumber">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="pob|street|city|state|postcode|country|otheraddr">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phone|fax">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- in Addresses, for example -->
+<xsl:template match="honorific|firstname|surname|lineage|othername">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="person">
+  <xsl:apply-templates select="personname"/>
+</xsl:template>
+
+<xsl:template match="personname">
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="content">
+      <xsl:call-template name="person.name"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="jobtitle">
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="content">
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="org">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="orgname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="orgdiv">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="affiliation">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="beginpage">
+  <!-- does nothing; this *is not* markup to force a page break. -->
+</xsl:template>
+
+<xsl:template match="*" mode="simple.xlink.properties">
+  <!-- Placeholder template to apply properties to links made from
+       elements other than xref, link, and olink.
+       This template should generate attributes only, as it is
+       applied right after the opening <fo:basic-link> tag.
+       -->
+  <!-- for example
+  <xsl:attribute name="color">blue</xsl:attribute>
+  -->
+  <!-- Since this is a mode, you can create different
+       templates with different properties for different linking elements -->
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/fo/keywords.xsl b/applications/content/template/docbook/fo/keywords.xsl
new file mode 100644
index 0000000..6e4b156
--- /dev/null
+++ b/applications/content/template/docbook/fo/keywords.xsl
@@ -0,0 +1,21 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="keywordset"></xsl:template>
+<xsl:template match="subjectset"></xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/lists.xsl b/applications/content/template/docbook/fo/lists.xsl
new file mode 100644
index 0000000..8f7b471
--- /dev/null
+++ b/applications/content/template/docbook/fo/lists.xsl
@@ -0,0 +1,1404 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="itemizedlist">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <xsl:variable name="pi-label-width">
+    <xsl:call-template name="pi.dbfo_label-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="label-width">
+    <xsl:choose>
+      <xsl:when test="$pi-label-width = ''">
+        <xsl:value-of select="$itemizedlist.label.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$pi-label-width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="title">
+    <xsl:apply-templates select="title" mode="list.title.mode"/>
+  </xsl:if>
+
+  <!-- Preserve order of PIs and comments -->
+  <xsl:apply-templates 
+      select="*[not(self::listitem
+                or self::title
+                or self::titleabbrev)]
+              |comment()[not(preceding-sibling::listitem)]
+              |processing-instruction()[not(preceding-sibling::listitem)]"/>
+
+  <xsl:variable name="content">
+    <xsl:apply-templates 
+          select="listitem
+                  |comment()[preceding-sibling::listitem]
+                  |processing-instruction()[preceding-sibling::listitem]"/>
+  </xsl:variable>
+
+  <!-- nested lists don't add extra list-block spacing -->
+  <xsl:choose>
+    <xsl:when test="ancestor::listitem">
+      <fo:list-block id="{$id}" xsl:use-attribute-sets="itemizedlist.properties">
+        <xsl:attribute name="provisional-distance-between-starts">
+          <xsl:value-of select="$label-width"/>
+        </xsl:attribute>
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$content"/>
+      </fo:list-block>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:list-block id="{$id}" xsl:use-attribute-sets="list.block.spacing itemizedlist.properties">
+        <xsl:attribute name="provisional-distance-between-starts">
+          <xsl:value-of select="$label-width"/>
+        </xsl:attribute>
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$content"/>
+      </fo:list-block>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template match="itemizedlist/title|orderedlist/title">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="variablelist/title" mode="vl.as.list">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="variablelist/title" mode="vl.as.blocks">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="itemizedlist/titleabbrev|orderedlist/titleabbrev">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="procedure/titleabbrev">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="variablelist/titleabbrev" mode="vl.as.list">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="variablelist/titleabbrev" mode="vl.as.blocks">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="itemizedlist/listitem">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <xsl:variable name="item.contents">
+    <fo:list-item-label end-indent="label-end()" xsl:use-attribute-sets="itemizedlist.label.properties">
+      <fo:block>
+        <xsl:call-template name="itemizedlist.label.markup">
+          <xsl:with-param name="itemsymbol">
+            <xsl:call-template name="list.itemsymbol">
+              <xsl:with-param name="node" select="parent::itemizedlist"/>
+            </xsl:call-template>
+          </xsl:with-param>
+        </xsl:call-template>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <xsl:choose>
+        <!-- * work around broken passivetex list-item-body rendering -->
+        <xsl:when test="$passivetex.extensions = '1'">
+          <xsl:apply-templates/>
+        </xsl:when>
+        <xsl:otherwise>
+          <fo:block>
+            <xsl:apply-templates/>
+          </fo:block>
+        </xsl:otherwise>
+      </xsl:choose>
+    </fo:list-item-body>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="parent::*/@spacing = 'compact'">
+      <fo:list-item id="{$id}" xsl:use-attribute-sets="compact.list.item.spacing">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$item.contents"/>
+      </fo:list-item>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:list-item id="{$id}" xsl:use-attribute-sets="list.item.spacing">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$item.contents"/>
+      </fo:list-item>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="itemizedlist.label.markup">
+  <xsl:param name="itemsymbol" select="'disc'"/>
+
+  <xsl:choose>
+    <xsl:when test="$itemsymbol='none'"></xsl:when>
+    <xsl:when test="$itemsymbol='disc'">&#x2022;</xsl:when>
+    <xsl:when test="$itemsymbol='bullet'">&#x2022;</xsl:when>
+    <xsl:when test="$itemsymbol='endash'">&#x2013;</xsl:when>
+    <xsl:when test="$itemsymbol='emdash'">&#x2014;</xsl:when>
+    <!-- Some of these may work in your XSL-FO processor and fonts -->
+    <!--
+    <xsl:when test="$itemsymbol='square'">&#x25A0;</xsl:when>
+    <xsl:when test="$itemsymbol='box'">&#x25A0;</xsl:when>
+    <xsl:when test="$itemsymbol='smallblacksquare'">&#x25AA;</xsl:when>
+    <xsl:when test="$itemsymbol='circle'">&#x25CB;</xsl:when>
+    <xsl:when test="$itemsymbol='opencircle'">&#x25CB;</xsl:when>
+    <xsl:when test="$itemsymbol='whitesquare'">&#x25A1;</xsl:when>
+    <xsl:when test="$itemsymbol='smallwhitesquare'">&#x25AB;</xsl:when>
+    <xsl:when test="$itemsymbol='round'">&#x25CF;</xsl:when>
+    <xsl:when test="$itemsymbol='blackcircle'">&#x25CF;</xsl:when>
+    <xsl:when test="$itemsymbol='whitebullet'">&#x25E6;</xsl:when>
+    <xsl:when test="$itemsymbol='triangle'">&#x2023;</xsl:when>
+    <xsl:when test="$itemsymbol='point'">&#x203A;</xsl:when>
+    <xsl:when test="$itemsymbol='hand'"><fo:inline 
+                         font-family="Wingdings 2">A</fo:inline></xsl:when>
+    -->
+    <xsl:otherwise>&#x2022;</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="orderedlist">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="pi-label-width">
+    <xsl:call-template name="pi.dbfo_label-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="label-width">
+    <xsl:choose>
+      <xsl:when test="$pi-label-width = ''">
+        <xsl:value-of select="$orderedlist.label.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$pi-label-width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <xsl:if test="title">
+    <xsl:apply-templates select="title" mode="list.title.mode"/>
+  </xsl:if>
+
+  <!-- Preserve order of PIs and comments -->
+  <xsl:apply-templates 
+      select="*[not(self::listitem
+                or self::title
+                or self::titleabbrev)]
+              |comment()[not(preceding-sibling::listitem)]
+              |processing-instruction()[not(preceding-sibling::listitem)]"/>
+
+  <xsl:variable name="content">
+    <xsl:apply-templates 
+          select="listitem
+                  |comment()[preceding-sibling::listitem]
+                  |processing-instruction()[preceding-sibling::listitem]"/>
+  </xsl:variable>
+
+  <!-- nested lists don't add extra list-block spacing -->
+  <xsl:choose>
+    <xsl:when test="ancestor::listitem">
+      <fo:list-block id="{$id}" xsl:use-attribute-sets="orderedlist.properties">
+        <xsl:attribute name="provisional-distance-between-starts">
+          <xsl:value-of select="$label-width"/>
+        </xsl:attribute>
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$content"/>
+      </fo:list-block>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:list-block id="{$id}" xsl:use-attribute-sets="list.block.spacing orderedlist.properties">
+        <xsl:attribute name="provisional-distance-between-starts">
+          <xsl:value-of select="$label-width"/>
+        </xsl:attribute>
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$content"/>
+      </fo:list-block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <xsl:variable name="item.contents">
+    <fo:list-item-label end-indent="label-end()" xsl:use-attribute-sets="orderedlist.label.properties">
+      <fo:block>
+        <xsl:apply-templates select="." mode="item-number"/>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <fo:block>
+        <xsl:apply-templates/>
+      </fo:block>
+    </fo:list-item-body>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="parent::*/@spacing = 'compact'">
+      <fo:list-item id="{$id}" xsl:use-attribute-sets="compact.list.item.spacing">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$item.contents"/>
+      </fo:list-item>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:list-item id="{$id}" xsl:use-attribute-sets="list.item.spacing">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$item.contents"/>
+      </fo:list-item>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="listitem/*[1][local-name()='para' or 
+                                   local-name()='simpara' or 
+                                   local-name()='formalpara']
+                     |glossdef/*[1][local-name()='para' or 
+                                   local-name()='simpara' or 
+                                   local-name()='formalpara']
+                     |step/*[1][local-name()='para' or 
+                                   local-name()='simpara' or 
+                                   local-name()='formalpara']
+                     |callout/*[1][local-name()='para' or 
+                                   local-name()='simpara' or 
+                                   local-name()='formalpara']"
+              priority="2">
+  <fo:block>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="variablelist">
+  <xsl:variable name="presentation">
+    <xsl:call-template name="pi.dbfo_list-presentation"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$presentation = 'list'">
+      <xsl:apply-templates select="." mode="vl.as.list"/>
+    </xsl:when>
+    <xsl:when test="$presentation = 'blocks'">
+      <xsl:apply-templates select="." mode="vl.as.blocks"/>
+    </xsl:when>
+    <xsl:when test="$variablelist.as.blocks != 0">
+      <xsl:apply-templates select="." mode="vl.as.blocks"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="." mode="vl.as.list"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="variablelist" mode="vl.as.list">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <xsl:variable name="term-width">
+    <xsl:call-template name="pi.dbfo_term-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="termlength">
+    <xsl:choose>
+      <xsl:when test="$term-width != ''">
+        <xsl:value-of select="$term-width"/>
+      </xsl:when>
+      <xsl:when test="@termlength">
+        <xsl:variable name="termlength.is.number">
+          <xsl:value-of select="@termlength + 0"/>
+        </xsl:variable>
+        <xsl:choose>
+          <xsl:when test="string($termlength.is.number) = 'NaN'">
+            <!-- if the term length isn't just a number, assume it's a measurement -->
+            <xsl:value-of select="@termlength"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="@termlength"/>
+            <xsl:choose>
+              <!-- workaround for passivetex lack of support for non-constant expressions -->
+              <xsl:when test="$passivetex.extensions != 0">
+                <xsl:text>em</xsl:text>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:text>em * 0.60</xsl:text>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="longest.term">
+          <xsl:with-param name="terms" select="varlistentry/term"/>
+          <xsl:with-param name="maxlength" select="$variablelist.max.termlength"/>
+        </xsl:call-template>
+        <xsl:choose>
+          <!-- workaround for passivetex lack of support for non-constant expressions -->
+          <xsl:when test="$passivetex.extensions != 0">
+            <xsl:text>em</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text>em * 0.60</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:text>term width: </xsl:text>
+    <xsl:value-of select="$termlength"/>
+  </xsl:message>
+-->
+
+  <xsl:variable name="label-separation">1em</xsl:variable>
+  <xsl:variable name="distance-between-starts">
+    <xsl:choose>
+      <!-- workaround for passivetex lack of support for non-constant expressions -->
+      <xsl:when test="$passivetex.extensions != 0">
+        <xsl:value-of select="$termlength"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$termlength"/>
+        <xsl:text>+</xsl:text>
+        <xsl:value-of select="$label-separation"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="title">
+    <xsl:apply-templates select="title" mode="list.title.mode"/>
+  </xsl:if>
+
+  <!-- Preserve order of PIs and comments -->
+  <xsl:apply-templates 
+    select="*[not(self::varlistentry
+              or self::title
+              or self::titleabbrev)]
+            |comment()[not(preceding-sibling::varlistentry)]
+            |processing-instruction()[not(preceding-sibling::varlistentry)]"/>
+
+  <xsl:variable name="content">
+    <xsl:apply-templates mode="vl.as.list"
+      select="varlistentry
+              |comment()[preceding-sibling::varlistentry]
+              |processing-instruction()[preceding-sibling::varlistentry]"/>
+  </xsl:variable>
+
+  <!-- nested lists don't add extra list-block spacing -->
+  <xsl:choose>
+    <xsl:when test="ancestor::listitem">
+      <fo:list-block id="{$id}"
+                     provisional-distance-between-starts=
+                        "{$distance-between-starts}"
+                     provisional-label-separation="{$label-separation}">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$content"/>
+      </fo:list-block>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:list-block id="{$id}"
+                     provisional-distance-between-starts=
+                        "{$distance-between-starts}"
+                     provisional-label-separation="{$label-separation}"
+                     xsl:use-attribute-sets="list.block.spacing">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$content"/>
+      </fo:list-block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="longest.term">
+  <xsl:param name="longest" select="0"/>
+  <xsl:param name="terms" select="."/>
+  <xsl:param name="maxlength" select="-1"/>
+
+  <!-- Process out any indexterms in the term -->
+  <xsl:variable name="term.text">
+    <xsl:apply-templates select="$terms[1]"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$longest &gt; $maxlength and $maxlength &gt; 0">
+      <xsl:value-of select="$maxlength"/>
+    </xsl:when>
+    <xsl:when test="not($terms)">
+      <xsl:value-of select="$longest"/>
+    </xsl:when>
+    <xsl:when test="string-length($term.text) &gt; $longest">
+      <xsl:call-template name="longest.term">
+        <xsl:with-param name="longest" 
+            select="string-length($term.text)"/>
+        <xsl:with-param name="maxlength" select="$maxlength"/>
+        <xsl:with-param name="terms" select="$terms[position() &gt; 1]"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="longest.term">
+        <xsl:with-param name="longest" select="$longest"/>
+        <xsl:with-param name="maxlength" select="$maxlength"/>
+        <xsl:with-param name="terms" select="$terms[position() &gt; 1]"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varlistentry" mode="vl.as.list">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <xsl:variable name="item.contents">
+    <fo:list-item-label end-indent="label-end()" text-align="start">
+      <fo:block xsl:use-attribute-sets="variablelist.term.properties">
+        <xsl:apply-templates select="term"/>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <fo:block>
+        <xsl:apply-templates select="listitem"/>
+      </fo:block>
+    </fo:list-item-body>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="parent::*/@spacing = 'compact'">
+      <fo:list-item id="{$id}"
+          xsl:use-attribute-sets="compact.list.item.spacing">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$item.contents"/>
+      </fo:list-item>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:list-item id="{$id}" xsl:use-attribute-sets="list.item.spacing">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$item.contents"/>
+      </fo:list-item>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+
+<xsl:template match="variablelist" mode="vl.as.blocks">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <!-- termlength is irrelevant -->
+
+  <xsl:if test="title">
+    <xsl:apply-templates select="title" mode="list.title.mode"/>
+  </xsl:if>
+
+  <!-- Preserve order of PIs and comments -->
+  <xsl:apply-templates 
+    select="*[not(self::varlistentry
+              or self::title
+              or self::titleabbrev)]
+            |comment()[not(preceding-sibling::varlistentry)]
+            |processing-instruction()[not(preceding-sibling::varlistentry)]"/>
+
+  <xsl:variable name="content">
+    <xsl:apply-templates mode="vl.as.blocks"
+      select="varlistentry
+              |comment()[preceding-sibling::varlistentry]
+              |processing-instruction()[preceding-sibling::varlistentry]"/>
+  </xsl:variable>
+
+  <!-- nested lists don't add extra list-block spacing -->
+  <xsl:choose>
+    <xsl:when test="ancestor::listitem">
+      <fo:block id="{$id}">
+        <xsl:copy-of select="$content"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block id="{$id}" xsl:use-attribute-sets="list.block.spacing">
+        <xsl:copy-of select="$content"/>
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varlistentry" mode="vl.as.blocks">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <fo:block id="{$id}" xsl:use-attribute-sets="variablelist.term.properties
+                                               list.item.spacing"  
+      keep-together.within-column="always" 
+      keep-with-next.within-column="always">
+    <xsl:apply-templates select="term"/>
+  </fo:block>
+
+  <fo:block>
+    <xsl:attribute name="margin-{$direction.align.start}">0.25in</xsl:attribute>
+    <xsl:apply-templates select="listitem"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="varlistentry/term">
+  <fo:inline>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </fo:inline>
+  <xsl:choose>
+    <xsl:when test="not(following-sibling::term)"/> <!-- do nothing -->
+    <xsl:otherwise>
+      <!-- * if we have multiple terms in the same varlistentry, generate -->
+      <!-- * a separator (", " by default) and/or an additional line -->
+      <!-- * break after each one except the last -->
+      <fo:inline><xsl:value-of select="$variablelist.term.separator"/></fo:inline>
+      <xsl:if test="not($variablelist.term.break.after = '0')">
+        <fo:block/>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varlistentry/listitem">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="title" mode="list.title.mode">
+  <xsl:call-template name="formal.object.heading">
+    <xsl:with-param name="object" select=".."/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="simplelist|simplelist[@type='vert']">
+  <!-- with no type specified, the default is 'vert' -->
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="explicit.table.width">
+    <xsl:call-template name="dbfo-attribute">
+      <xsl:with-param name="pis"
+                      select="processing-instruction('dbfo')"/>
+      <xsl:with-param name="attribute" select="'list-width'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="table.width">
+    <xsl:choose>
+      <xsl:when test="$explicit.table.width != ''">
+        <xsl:value-of select="$explicit.table.width"/>
+      </xsl:when>
+      <xsl:when test="$default.table.width = ''">
+        <xsl:text>100%</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$default.table.width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:table id="{$id}" xsl:use-attribute-sets="normal.para.spacing">
+
+    <xsl:choose>
+      <xsl:when test="$axf.extensions != 0 or $xep.extensions != 0">
+        <xsl:attribute name="table-layout">auto</xsl:attribute>
+        <xsl:if test="$explicit.table.width != ''">
+          <xsl:attribute name="width"><xsl:value-of 
+          select="$explicit.table.width"/></xsl:attribute>
+        </xsl:if>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:attribute name="table-layout">fixed</xsl:attribute>
+        <xsl:attribute name="width"><xsl:value-of 
+                                      select="$table.width"/></xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:call-template name="simplelist.table.columns">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+    <fo:table-body start-indent="0pt" end-indent="0pt">
+      <xsl:call-template name="simplelist.vert">
+        <xsl:with-param name="cols">
+          <xsl:choose>
+            <xsl:when test="@columns">
+              <xsl:value-of select="@columns"/>
+            </xsl:when>
+            <xsl:otherwise>1</xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='inline']">
+  <!-- if dbchoice PI exists, use that to determine the choice separator -->
+  <!-- (that is, equivalent of "and" or "or" in current locale), or literal -->
+  <!-- value of "choice" otherwise -->
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:inline id="{$id}"><xsl:variable name="localized-choice-separator">
+    <xsl:choose>
+      <xsl:when test="processing-instruction('dbchoice')">
+        <xsl:call-template name="select.choice.separator"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- empty -->
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:for-each select="member">
+    <xsl:apply-templates/>
+    <xsl:choose>
+      <xsl:when test="position() = last()"/> <!-- do nothing -->
+      <xsl:otherwise>
+        <xsl:text>, </xsl:text>
+        <xsl:if test="position() = last() - 1">
+          <xsl:if test="$localized-choice-separator != ''">
+            <xsl:value-of select="$localized-choice-separator"/>
+            <xsl:text> </xsl:text>
+          </xsl:if>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each></fo:inline>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='horiz']">
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="explicit.table.width">
+    <xsl:call-template name="pi.dbfo_list-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="table.width">
+    <xsl:choose>
+      <xsl:when test="$explicit.table.width != ''">
+        <xsl:value-of select="$explicit.table.width"/>
+      </xsl:when>
+      <xsl:when test="$default.table.width = ''">
+        <xsl:text>100%</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$default.table.width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:table id="{$id}" xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:choose>
+      <xsl:when test="$axf.extensions != 0 or $xep.extensions != 0">
+        <xsl:attribute name="table-layout">auto</xsl:attribute>
+        <xsl:if test="$explicit.table.width != ''">
+          <xsl:attribute name="width"><xsl:value-of 
+                             select="$explicit.table.width"/></xsl:attribute>
+        </xsl:if>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:attribute name="table-layout">fixed</xsl:attribute>
+        <xsl:attribute name="width"><xsl:value-of 
+                                      select="$table.width"/></xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="simplelist.table.columns">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+    <fo:table-body start-indent="0pt" end-indent="0pt">
+      <xsl:call-template name="simplelist.horiz">
+        <xsl:with-param name="cols">
+          <xsl:choose>
+            <xsl:when test="@columns">
+              <xsl:value-of select="@columns"/>
+            </xsl:when>
+            <xsl:otherwise>1</xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+<xsl:template name="simplelist.table.columns">
+  <xsl:param name="cols" select="1"/>
+  <xsl:param name="curcol" select="1"/>
+  <fo:table-column column-number="{$curcol}"
+                   column-width="proportional-column-width(1)"/>
+  <xsl:if test="$curcol &lt; $cols">
+    <xsl:call-template name="simplelist.table.columns">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="curcol" select="$curcol + 1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+
+  <xsl:if test="$cell &lt;= count($members)">
+    <fo:table-row>
+      <xsl:call-template name="simplelist.horiz.row">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="cell" select="$cell"/>
+        <xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+   </fo:table-row>
+    <xsl:call-template name="simplelist.horiz">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell + $cols"/>
+      <xsl:with-param name="members" select="$members"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <fo:table-cell>
+      <fo:block>
+        <xsl:if test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:if>
+      </fo:block>
+    </fo:table-cell>
+    <xsl:call-template name="simplelist.horiz.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="rows"
+             select="floor((count($members)+$cols - 1) div $cols)"/>
+
+  <xsl:if test="$cell &lt;= $rows">
+    <fo:table-row>
+      <xsl:call-template name="simplelist.vert.row">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="rows" select="$rows"/>
+        <xsl:with-param name="cell" select="$cell"/>
+        <xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+   </fo:table-row>
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="rows" select="$rows"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="rows">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <fo:table-cell>
+      <fo:block>
+        <xsl:if test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:if>
+      </fo:block>
+    </fo:table-cell>
+    <xsl:call-template name="simplelist.vert.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="rows" select="$rows"/>
+      <xsl:with-param name="cell" select="$cell+$rows"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="member">
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="content">
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="procedure">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="param.placement"
+                select="substring-after(normalize-space($formal.title.placement),
+                                        concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Preserve order of PIs and comments -->
+  <xsl:variable name="preamble"
+        select="*[not(self::step
+                  or self::title
+                  or self::titleabbrev)]
+                |comment()[not(preceding-sibling::step)]
+                |processing-instruction()[not(preceding-sibling::step)]"/>
+
+  <xsl:variable name="steps" 
+                select="step
+                        |comment()[preceding-sibling::step]
+                        |processing-instruction()[preceding-sibling::step]"/>
+
+  <fo:block id="{$id}" xsl:use-attribute-sets="procedure.properties list.block.spacing">
+    <xsl:if test="./title and $placement = 'before'">
+      <!-- n.b. gentext code tests for $formal.procedures and may make an "informal" -->
+      <!-- heading even though we called formal.object.heading. odd but true. -->
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="$preamble"/>
+
+    <fo:list-block xsl:use-attribute-sets="list.block.spacing"
+                   provisional-distance-between-starts="2em"
+                   provisional-label-separation="0.2em">
+      <xsl:apply-templates select="$steps"/>
+    </fo:list-block>
+
+    <xsl:if test="./title and $placement != 'before'">
+      <!-- n.b. gentext code tests for $formal.procedures and may make an "informal" -->
+      <!-- heading even though we called formal.object.heading. odd but true. -->
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="procedure/title">
+</xsl:template>
+
+<xsl:template match="substeps">
+  <fo:list-block xsl:use-attribute-sets="list.block.spacing"
+                 provisional-distance-between-starts="2em"
+                 provisional-label-separation="0.2em">
+    <xsl:apply-templates/>
+  </fo:list-block>
+</xsl:template>
+
+<xsl:template match="procedure/step|substeps/step">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <fo:list-item xsl:use-attribute-sets="list.item.spacing">
+    <xsl:if test="$keep.together != ''">
+      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                      select="$keep.together"/></xsl:attribute>
+    </xsl:if>
+    <fo:list-item-label end-indent="label-end()">
+      <fo:block id="{$id}">
+        <!-- dwc: fix for one step procedures. Use a bullet if there's no step 2 -->
+        <xsl:choose>
+          <xsl:when test="count(../step) = 1">
+            <xsl:text>&#x2022;</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="." mode="number">
+              <xsl:with-param name="recursive" select="0"/>
+            </xsl:apply-templates>.
+          </xsl:otherwise>
+        </xsl:choose>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <fo:block>
+        <xsl:apply-templates/>
+      </fo:block>
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+
+<xsl:template match="stepalternatives">
+  <fo:list-block provisional-distance-between-starts="2em"
+                 provisional-label-separation="0.2em">
+    <xsl:apply-templates select="step"/>
+  </fo:list-block>
+</xsl:template>
+
+<xsl:template match="stepalternatives/step">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <fo:list-item xsl:use-attribute-sets="list.item.spacing">
+    <xsl:if test="$keep.together != ''">
+      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                      select="$keep.together"/></xsl:attribute>
+    </xsl:if>
+    <fo:list-item-label end-indent="label-end()">
+      <fo:block id="{$id}">
+        <xsl:text>&#x2022;</xsl:text>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <fo:block>
+        <xsl:apply-templates/>
+      </fo:block>
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+
+<xsl:template match="step/title">
+  <fo:block font-weight="bold"
+            keep-together.within-column="always" 
+            keep-with-next.within-column="always">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="segmentedlist">
+  <xsl:variable name="presentation">
+    <xsl:call-template name="pi.dbfo_list-presentation"/>
+  </xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$presentation = 'table'">
+      <fo:block id="{$id}">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:apply-templates select="." mode="seglist-table"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:when test="$presentation = 'list'">
+      <fo:block id="{$id}">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:apply-templates/>
+      </fo:block>
+    </xsl:when>
+    <xsl:when test="$segmentedlist.as.table != 0">
+      <fo:block id="{$id}">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+        <xsl:apply-templates select="." mode="seglist-table"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block id="{$id}">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                          select="$keep.together"/></xsl:attribute>
+        </xsl:if>
+
+        <xsl:apply-templates/>
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="segmentedlist/title">
+  <xsl:apply-templates select="." mode="list.title.mode" />
+</xsl:template>
+
+<xsl:template match="segtitle">
+</xsl:template>
+
+<xsl:template match="segtitle" mode="segtitle-in-seg">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seglistitem">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <fo:block id="{$id}">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="seg">
+  <xsl:variable name="segnum" select="count(preceding-sibling::seg)+1"/>
+  <xsl:variable name="seglist" select="ancestor::segmentedlist"/>
+  <xsl:variable name="segtitles" select="$seglist/segtitle"/>
+
+  <!--
+     Note: segtitle is only going to be the right thing in a well formed
+     SegmentedList.  If there are too many Segs or too few SegTitles,
+     you'll get something odd...maybe an error
+  -->
+
+  <fo:block>
+    <fo:inline font-weight="bold">
+      <xsl:apply-templates select="$segtitles[$segnum=position()]"
+                           mode="segtitle-in-seg"/>
+      <xsl:text>: </xsl:text>
+    </fo:inline>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="segmentedlist" mode="seglist-table">
+  <xsl:apply-templates select="title" mode="list.title.mode" />
+  <fo:table table-layout="fixed">
+    <xsl:call-template name="segmentedlist.table.columns">
+      <xsl:with-param name="cols" select="count(segtitle)"/>
+    </xsl:call-template>
+    <fo:table-header start-indent="0pt" end-indent="0pt">
+      <fo:table-row>
+        <xsl:apply-templates select="segtitle" mode="seglist-table"/>
+      </fo:table-row>
+    </fo:table-header>
+    <fo:table-body start-indent="0pt" end-indent="0pt">
+      <xsl:apply-templates select="seglistitem" mode="seglist-table"/>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+<xsl:template name="segmentedlist.table.columns">
+  <xsl:param name="cols" select="1"/>
+  <xsl:param name="curcol" select="1"/>
+
+  <fo:table-column column-number="{$curcol}"
+                   column-width="proportional-column-width(1)"/>
+  <xsl:if test="$curcol &lt; $cols">
+    <xsl:call-template name="segmentedlist.table.columns">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="segtitle" mode="seglist-table">
+  <fo:table-cell>
+    <fo:block font-weight="bold">
+      <xsl:apply-templates/>
+    </fo:block>
+  </fo:table-cell>
+</xsl:template>
+
+<xsl:template match="seglistitem" mode="seglist-table">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <fo:table-row id="{$id}">
+    <xsl:apply-templates mode="seglist-table"/>
+  </fo:table-row>
+</xsl:template>
+
+<xsl:template match="seg" mode="seglist-table">
+  <fo:table-cell>
+    <fo:block>
+      <xsl:apply-templates/>
+    </fo:block>
+  </fo:table-cell>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="calloutlist">
+  <xsl:variable name="id">
+  <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="pi-label-width">
+    <xsl:call-template name="pi.dbfo_label-width"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}"
+            text-align="{$alignment}">
+    <!-- The above restores alignment altered by image align attribute -->
+    <xsl:if test="title|info/title">
+      <xsl:apply-templates select="(title|info/title)[1]" 
+                           mode="list.title.mode"/>
+    </xsl:if>
+
+    <!-- Preserve order of PIs and comments -->
+    <xsl:apply-templates 
+         select="*[not(self::callout or self::title or self::titleabbrev)]
+                   |comment()[not(preceding-sibling::callout)]
+                   |processing-instruction()[not(preceding-sibling::callout)]"/>
+
+    <fo:list-block xsl:use-attribute-sets="calloutlist.properties">
+
+      <xsl:if test="$pi-label-width != ''">
+        <xsl:attribute name="provisional-distance-between-starts">
+          <xsl:value-of select="$pi-label-width"/>
+        </xsl:attribute>
+      </xsl:if>
+      
+      <xsl:apply-templates select="callout
+                                |comment()[preceding-sibling::callout]
+                                |processing-instruction()[preceding-sibling::callout]"/>
+    </fo:list-block>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="calloutlist/title">
+</xsl:template>
+
+<xsl:template match="callout">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <fo:list-item id="{$id}" xsl:use-attribute-sets="callout.properties">
+    <xsl:if test="$keep.together != ''">
+      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+                      select="$keep.together"/></xsl:attribute>
+    </xsl:if>
+    <fo:list-item-label end-indent="label-end()">
+      <fo:block>
+        <xsl:call-template name="callout.arearefs">
+          <xsl:with-param name="arearefs" select="@arearefs"/>
+        </xsl:call-template>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <fo:block>
+        <xsl:apply-templates/>
+      </fo:block>
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+
+<xsl:template name="callout.arearefs">
+  <xsl:param name="arearefs"></xsl:param>
+  <xsl:if test="$arearefs!=''">
+    <xsl:choose>
+      <xsl:when test="substring-before($arearefs,' ')=''">
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef" select="$arearefs"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef"
+                          select="substring-before($arearefs,' ')"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="callout.arearefs">
+      <xsl:with-param name="arearefs"
+                      select="substring-after($arearefs,' ')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="callout.arearef">
+  <xsl:param name="arearef"></xsl:param>
+  <xsl:variable name="targets" select="key('id',$arearef)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <xsl:when test="count($target)=0">
+      <xsl:value-of select="$arearef"/>
+      <xsl:text>: ???</xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($target)='co'">
+      <xsl:apply-templates select="$target" mode="callout-bug"/>
+    </xsl:when>
+    <xsl:when test="local-name($target)='areaset'">
+      <xsl:call-template name="callout-bug">
+        <xsl:with-param name="conum">
+          <xsl:apply-templates select="$target" mode="conumber"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($target)='area'">
+      <xsl:choose>
+        <xsl:when test="$target/parent::areaset">
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target/parent::areaset"
+                                   mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target" mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>???</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="orderedlist-starting-number">
+  <xsl:param name="list" select="."/>
+  <xsl:variable name="pi-start">
+    <xsl:call-template name="pi.dbfo_start">
+      <xsl:with-param name="node" select="$list"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:call-template name="output-orderedlist-starting-number">
+    <xsl:with-param name="list" select="$list"/>
+    <xsl:with-param name="pi-start" select="$pi-start"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/math.xsl b/applications/content/template/docbook/fo/math.xsl
new file mode 100644
index 0000000..d7f66a6
--- /dev/null
+++ b/applications/content/template/docbook/fo/math.xsl
@@ -0,0 +1,140 @@
+<?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:mml="http://www.w3.org/1998/Math/MathML"
+                exclude-result-prefixes="mml"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="inlineequation">
+  <xsl:choose>
+    <xsl:when test="$passivetex.extensions != 0 and $tex.math.in.alt != ''">
+      <xsl:apply-templates select="alt[@role='tex'] | inlinemediaobject/textobject[@role='tex']">
+        <xsl:with-param name="output.delims">
+          <xsl:call-template name="tex.math.output.delims"/>
+        </xsl:with-param>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="alt">
+</xsl:template>
+
+<xsl:template match="mathphrase">
+  <fo:inline>
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+
+<!-- "Support" for MathML -->
+
+<xsl:template match="mml:math" xmlns:mml="http://www.w3.org/1998/Math/MathML">
+  <xsl:choose>
+    <!-- * If user is using passivetex, we don't wrap the output in -->
+    <!-- * fo:instream-foreign-object (which passivetex doesn't support). -->
+    <xsl:when test="not($passivetex.extensions = 0)">
+      <xsl:copy>
+        <xsl:copy-of select="@*"/>
+        <xsl:apply-templates/>
+      </xsl:copy>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:instream-foreign-object>
+        <xsl:copy>
+          <xsl:copy-of select="@*"/>
+          <xsl:apply-templates/>
+        </xsl:copy>
+      </fo:instream-foreign-object>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="mml:*" xmlns:mml="http://www.w3.org/1998/Math/MathML">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="equation/graphic | informalequation/graphic">
+  <xsl:if test="$tex.math.in.alt = ''">
+    <fo:block>
+      <xsl:call-template name="process.image"/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="inlineequation/alt[@role='tex'] | 
+                     inlineequation/inlinemediaobject/textobject[@role='tex']" priority="1">
+  <xsl:param name="output.delims" select="1"/>
+  <xsl:if test="$passivetex.extensions != 0 and $tex.math.in.alt != ''">
+    <xsl:processing-instruction name="xmltex">
+      <xsl:if test="$output.delims != 0">
+        <xsl:text>$</xsl:text>
+      </xsl:if>
+      <xsl:value-of select="."/>
+      <xsl:if test="$output.delims != 0">
+        <xsl:text>$</xsl:text>
+      </xsl:if>
+    </xsl:processing-instruction>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="equation/alt[@role='tex'] | informalequation/alt[@role='tex'] |
+                     equation/mediaobject/textobject[@role='tex'] |
+                     informalequation/mediaobject/textobject[@role='tex']" priority="1">
+  <xsl:variable name="output.delims">
+    <xsl:call-template name="tex.math.output.delims"/>
+  </xsl:variable>
+  <xsl:if test="$passivetex.extensions != 0 and $tex.math.in.alt != ''">
+    <xsl:processing-instruction name="xmltex">
+      <xsl:if test="$output.delims != 0">
+        <xsl:text>$$</xsl:text>
+      </xsl:if>
+      <xsl:value-of select="."/>
+      <xsl:if test="$output.delims != 0">
+        <xsl:text>$$</xsl:text>
+      </xsl:if>
+    </xsl:processing-instruction>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="alt[@role='tex']">
+  <xsl:if test="$passivetex.extensions != 0 and $tex.math.in.alt != ''">
+    <xsl:message>
+      Your equation is misplaced. It should be in inlineequation, equation or informalequation.
+    </xsl:message>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="tex.math.output.delims">
+  <xsl:variable name="pi.delims">
+    <xsl:call-template name="pi-attribute">
+      <xsl:with-param name="pis" select=".//processing-instruction('dbtex')"/>
+      <xsl:with-param name="attribute" select="'delims'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="result">
+    <xsl:choose>
+      <xsl:when test="$pi.delims = 'no'">0</xsl:when>
+      <xsl:when test="$pi.delims = '' and $tex.math.delims = 0">0</xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:value-of select="$result"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/pagesetup.xsl b/applications/content/template/docbook/fo/pagesetup.xsl
new file mode 100644
index 0000000..8cd845e
--- /dev/null
+++ b/applications/content/template/docbook/fo/pagesetup.xsl
@@ -0,0 +1,3447 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheet distribution.
+     See ../README or http://docbook.sf.net/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:param name="body.fontset">
+  <xsl:value-of select="$body.font.family"/>
+  <xsl:if test="$body.font.family != ''
+                and $symbol.font.family  != ''">,</xsl:if>
+    <xsl:value-of select="$symbol.font.family"/>
+</xsl:param>
+
+<xsl:param name="title.fontset">
+  <xsl:value-of select="$title.font.family"/>
+  <xsl:if test="$title.font.family != ''
+                and $symbol.font.family  != ''">,</xsl:if>
+    <xsl:value-of select="$symbol.font.family"/>
+</xsl:param>
+
+<!-- These are internal parameters are for the individual precedence attributes -->
+<xsl:param name="region.start.precedence">
+  <xsl:choose>
+    <xsl:when test="$side.region.precedence = 'true'">true</xsl:when>
+    <xsl:otherwise>false</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:param name="region.end.precedence">
+  <xsl:choose>
+    <xsl:when test="$side.region.precedence = 'true'">true</xsl:when>
+    <xsl:otherwise>false</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:param name="region.before.precedence">
+  <xsl:choose>
+    <xsl:when test="$side.region.precedence = 'true'">false</xsl:when>
+    <xsl:otherwise>true</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:param name="region.after.precedence">
+  <xsl:choose>
+    <xsl:when test="$side.region.precedence = 'true'">false</xsl:when>
+    <xsl:otherwise>true</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:template name="setup.pagemasters">
+  <fo:layout-master-set>
+    <!-- blank pages -->
+    <fo:simple-page-master master-name="blank"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.outer"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.inner"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">blank</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body display-align="center"
+                      margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+        <xsl:if test="$fop.extensions = 0 and $fop1.extensions = 0">
+          <xsl:attribute name="region-name">blank-body</xsl:attribute>
+        </xsl:if>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-blank"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-blank"
+                       extent="{$region.after.extent}"
+                       precedence="{$region.after.precedence}"
+                       display-align="after"/>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">blank</xsl:with-param>
+        <xsl:with-param name="pageclass">blank</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">blank</xsl:with-param>
+        <xsl:with-param name="pageclass">blank</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <!-- title pages -->
+    <fo:simple-page-master master-name="titlepage-first"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.inner"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.outer"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">titlepage-first</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.titlepage}"
+                      column-count="{$column.count.titlepage}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-first"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-first"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                        display-align="after"/>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">first</xsl:with-param>
+        <xsl:with-param name="pageclass">titlepage</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">first</xsl:with-param>
+        <xsl:with-param name="pageclass">titlepage</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <fo:simple-page-master master-name="titlepage-odd"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.inner"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.outer"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">titlepage-odd</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.titlepage}"
+                      column-count="{$column.count.titlepage}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-odd"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-odd"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                        display-align="after"/>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">odd</xsl:with-param>
+        <xsl:with-param name="pageclass">titlepage</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">odd</xsl:with-param>
+        <xsl:with-param name="pageclass">titlepage</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <fo:simple-page-master master-name="titlepage-even"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.outer"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.inner"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">titlepage-even</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.titlepage}"
+                      column-count="{$column.count.titlepage}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-even"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-even"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                        display-align="after"/>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">even</xsl:with-param>
+        <xsl:with-param name="pageclass">titlepage</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">even</xsl:with-param>
+        <xsl:with-param name="pageclass">titlepage</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <!-- list-of-title pages -->
+    <fo:simple-page-master master-name="lot-first"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.inner"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.outer"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">lot-first</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.lot}"
+                      column-count="{$column.count.lot}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-first"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-first"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                       display-align="after"/>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">first</xsl:with-param>
+        <xsl:with-param name="pageclass">lot</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">first</xsl:with-param>
+        <xsl:with-param name="pageclass">lot</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <fo:simple-page-master master-name="lot-odd"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.inner"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.outer"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">lot-odd</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.lot}"
+                      column-count="{$column.count.lot}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-odd"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-odd"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                        display-align="after"/>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">odd</xsl:with-param>
+        <xsl:with-param name="pageclass">lot</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">odd</xsl:with-param>
+        <xsl:with-param name="pageclass">lot</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <fo:simple-page-master master-name="lot-even"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.outer"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.inner"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">lot-even</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.lot}"
+                      column-count="{$column.count.lot}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-even"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-even"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                        display-align="after"/>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">even</xsl:with-param>
+        <xsl:with-param name="pageclass">lot</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">even</xsl:with-param>
+        <xsl:with-param name="pageclass">lot</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <!-- frontmatter pages -->
+    <fo:simple-page-master master-name="front-first"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.inner"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.outer"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">front-first</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.front}"
+                      column-count="{$column.count.front}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-first"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-first"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                        display-align="after"/>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">first</xsl:with-param>
+        <xsl:with-param name="pageclass">front</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">first</xsl:with-param>
+        <xsl:with-param name="pageclass">front</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <fo:simple-page-master master-name="front-odd"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.inner"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.outer"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">front-odd</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.front}"
+                      column-count="{$column.count.front}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-odd"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-odd"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                        display-align="after"/>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">odd</xsl:with-param>
+        <xsl:with-param name="pageclass">front</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">odd</xsl:with-param>
+        <xsl:with-param name="pageclass">front</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <fo:simple-page-master master-name="front-even"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.outer"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.inner"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">front-even</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.front}"
+                      column-count="{$column.count.front}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-even"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-even"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                        display-align="after"/>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">even</xsl:with-param>
+        <xsl:with-param name="pageclass">front</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">even</xsl:with-param>
+        <xsl:with-param name="pageclass">front</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <!-- body pages -->
+    <fo:simple-page-master master-name="body-first"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.inner"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.outer"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">body-first</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.body}"
+                      column-count="{$column.count.body}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-first"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-first"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                       display-align="after"/>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">first</xsl:with-param>
+        <xsl:with-param name="pageclass">body</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">first</xsl:with-param>
+        <xsl:with-param name="pageclass">body</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <fo:simple-page-master master-name="body-odd"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.inner"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.outer"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">body-odd</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.body}"
+                      column-count="{$column.count.body}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-odd"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-odd"
+                       extent="{$region.after.extent}"
+                       precedence="{$region.after.precedence}"
+                       display-align="after"/>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="pageclass">body</xsl:with-param>
+        <xsl:with-param name="sequence">odd</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="pageclass">body</xsl:with-param>
+        <xsl:with-param name="sequence">odd</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <fo:simple-page-master master-name="body-even"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.outer"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.inner"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">body-even</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.body}"
+                      column-count="{$column.count.body}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-even"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-even"
+                       extent="{$region.after.extent}"
+                       precedence="{$region.after.precedence}"
+                       display-align="after"/>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="pageclass">body</xsl:with-param>
+        <xsl:with-param name="sequence">even</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="pageclass">body</xsl:with-param>
+        <xsl:with-param name="sequence">even</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <!-- backmatter pages -->
+    <fo:simple-page-master master-name="back-first"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.inner"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.outer"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">back-first</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.back}"
+                      column-count="{$column.count.back}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-first"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-first"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                       display-align="after"/>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">first</xsl:with-param>
+        <xsl:with-param name="pageclass">back</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">first</xsl:with-param>
+        <xsl:with-param name="pageclass">back</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <fo:simple-page-master master-name="back-odd"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.inner"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.outer"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">back-odd</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.back}"
+                      column-count="{$column.count.back}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-odd"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-odd"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                       display-align="after"/>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">odd</xsl:with-param>
+        <xsl:with-param name="pageclass">back</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">odd</xsl:with-param>
+        <xsl:with-param name="pageclass">back</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <fo:simple-page-master master-name="back-even"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.outer"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.inner"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">back-even</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.back}"
+                      column-count="{$column.count.back}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-even"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-even"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                       display-align="after"/>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">even</xsl:with-param>
+        <xsl:with-param name="pageclass">back</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">even</xsl:with-param>
+        <xsl:with-param name="pageclass">back</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <!-- index pages -->
+    <fo:simple-page-master master-name="index-first"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.inner"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.outer"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">index-first</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.index}"
+                      column-count="{$column.count.index}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-first"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-first"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                       display-align="after"/>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">first</xsl:with-param>
+        <xsl:with-param name="pageclass">index</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">first</xsl:with-param>
+        <xsl:with-param name="pageclass">index</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <fo:simple-page-master master-name="index-odd"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.inner"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.outer"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">index-odd</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.index}"
+                      column-count="{$column.count.index}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-odd"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-odd"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                       display-align="after"/>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">odd</xsl:with-param>
+        <xsl:with-param name="pageclass">index</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">odd</xsl:with-param>
+        <xsl:with-param name="pageclass">index</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <fo:simple-page-master master-name="index-even"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}">
+      <xsl:attribute name="margin-{$direction.align.start}">
+        <xsl:value-of select="$page.margin.outer"/>
+	<xsl:if test="$fop.extensions != 0">
+	  <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+        </xsl:if>
+      </xsl:attribute>
+      <xsl:attribute name="margin-{$direction.align.end}">
+        <xsl:value-of select="$page.margin.inner"/>
+      </xsl:attribute>
+      <xsl:if test="$axf.extensions != 0">
+        <xsl:call-template name="axf-page-master-properties">
+          <xsl:with-param name="page.master">index-even</xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+      <fo:region-body margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"
+                      column-gap="{$column.gap.index}"
+                      column-count="{$column.count.index}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$body.margin.outer"/>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$body.margin.inner"/>
+        </xsl:attribute>
+      </fo:region-body>
+      <fo:region-before region-name="xsl-region-before-even"
+                        extent="{$region.before.extent}"
+                        precedence="{$region.before.precedence}"
+                        display-align="before"/>
+      <fo:region-after region-name="xsl-region-after-even"
+                       extent="{$region.after.extent}"
+                        precedence="{$region.after.precedence}"
+                       display-align="after"/>
+      <xsl:call-template name="region.outer">
+        <xsl:with-param name="sequence">even</xsl:with-param>
+        <xsl:with-param name="pageclass">index</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="region.inner">
+        <xsl:with-param name="sequence">even</xsl:with-param>
+        <xsl:with-param name="pageclass">index</xsl:with-param>
+      </xsl:call-template>
+    </fo:simple-page-master>
+
+    <xsl:if test="$draft.mode != 'no'">
+      <!-- draft blank pages -->
+      <fo:simple-page-master master-name="blank-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.outer"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.inner"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">blank-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-blank"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-blank"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">blank</xsl:with-param>
+          <xsl:with-param name="pageclass">blank</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">blank</xsl:with-param>
+          <xsl:with-param name="pageclass">blank</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <!-- draft title pages -->
+      <fo:simple-page-master master-name="titlepage-first-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.inner"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.outer"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">titlepage-first-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.titlepage}"
+                        column-count="{$column.count.titlepage}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-first"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-first"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">first</xsl:with-param>
+          <xsl:with-param name="pageclass">titlepage</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">first</xsl:with-param>
+          <xsl:with-param name="pageclass">titlepage</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <fo:simple-page-master master-name="titlepage-odd-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.inner"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.outer"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">titlepage-odd-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.titlepage}"
+                        column-count="{$column.count.titlepage}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-odd"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-odd"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">odd</xsl:with-param>
+          <xsl:with-param name="pageclass">titlepage</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">odd</xsl:with-param>
+          <xsl:with-param name="pageclass">titlepage</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <fo:simple-page-master master-name="titlepage-even-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.outer"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.inner"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">titlepage-even-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.titlepage}"
+                        column-count="{$column.count.titlepage}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-even"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-even"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">even</xsl:with-param>
+          <xsl:with-param name="pageclass">titlepage</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">even</xsl:with-param>
+          <xsl:with-param name="pageclass">titlepage</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <!-- draft list-of-title pages -->
+      <fo:simple-page-master master-name="lot-first-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.inner"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.outer"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">lot-first-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.lot}"
+                        column-count="{$column.count.lot}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-first"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-first"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">first</xsl:with-param>
+          <xsl:with-param name="pageclass">lot</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">first</xsl:with-param>
+          <xsl:with-param name="pageclass">lot</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <fo:simple-page-master master-name="lot-odd-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.inner"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.outer"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">lot-odd-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.lot}"
+                        column-count="{$column.count.lot}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-odd"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-odd"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">odd</xsl:with-param>
+          <xsl:with-param name="pageclass">lot</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">odd</xsl:with-param>
+          <xsl:with-param name="pageclass">lot</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <fo:simple-page-master master-name="lot-even-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.outer"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.inner"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">lot-even-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.lot}"
+                        column-count="{$column.count.lot}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-even"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-even"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">even</xsl:with-param>
+          <xsl:with-param name="pageclass">lot</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">even</xsl:with-param>
+          <xsl:with-param name="pageclass">lot</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <!-- draft frontmatter pages -->
+      <fo:simple-page-master master-name="front-first-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.inner"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.outer"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">front-first-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.front}"
+                        column-count="{$column.count.front}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-first"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-first"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">first</xsl:with-param>
+          <xsl:with-param name="pageclass">front</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">first</xsl:with-param>
+          <xsl:with-param name="pageclass">front</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <fo:simple-page-master master-name="front-odd-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.inner"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.outer"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">front-odd-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.front}"
+                        column-count="{$column.count.front}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-odd"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-odd"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">odd</xsl:with-param>
+          <xsl:with-param name="pageclass">front</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">odd</xsl:with-param>
+          <xsl:with-param name="pageclass">front</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <fo:simple-page-master master-name="front-even-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.outer"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.inner"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">front-even-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.front}"
+                        column-count="{$column.count.front}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-even"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-even"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">even</xsl:with-param>
+          <xsl:with-param name="pageclass">front</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">even</xsl:with-param>
+          <xsl:with-param name="pageclass">front</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <!-- draft body pages -->
+      <fo:simple-page-master master-name="body-first-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.inner"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.outer"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">body-first-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.body}"
+                        column-count="{$column.count.body}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-first"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-first"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">first</xsl:with-param>
+          <xsl:with-param name="pageclass">body</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">first</xsl:with-param>
+          <xsl:with-param name="pageclass">body</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <fo:simple-page-master master-name="body-odd-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.inner"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.outer"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">body-odd-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.body}"
+                        column-count="{$column.count.body}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-odd"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-odd"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">odd</xsl:with-param>
+          <xsl:with-param name="pageclass">body</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">odd</xsl:with-param>
+          <xsl:with-param name="pageclass">body</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <fo:simple-page-master master-name="body-even-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.outer"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.inner"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">body-even-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.body}"
+                        column-count="{$column.count.body}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-even"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-even"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">even</xsl:with-param>
+          <xsl:with-param name="pageclass">body</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">even</xsl:with-param>
+          <xsl:with-param name="pageclass">body</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <!-- draft backmatter pages -->
+      <fo:simple-page-master master-name="back-first-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.inner"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.outer"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">back-first-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.back}"
+                        column-count="{$column.count.back}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-first"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-first"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">first</xsl:with-param>
+          <xsl:with-param name="pageclass">back</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">first</xsl:with-param>
+          <xsl:with-param name="pageclass">back</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <fo:simple-page-master master-name="back-odd-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.inner"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.outer"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">back-odd-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.back}"
+                        column-count="{$column.count.back}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-odd"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-odd"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">odd</xsl:with-param>
+          <xsl:with-param name="pageclass">back</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">odd</xsl:with-param>
+          <xsl:with-param name="pageclass">back</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <fo:simple-page-master master-name="back-even-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.outer"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.inner"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">back-even-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.back}"
+                        column-count="{$column.count.back}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-even"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-even"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">even</xsl:with-param>
+          <xsl:with-param name="pageclass">back</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">even</xsl:with-param>
+          <xsl:with-param name="pageclass">back</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <!-- draft index pages -->
+      <fo:simple-page-master master-name="index-first-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.inner"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.outer"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">index-first-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.index}"
+                        column-count="{$column.count.index}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-first"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-first"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">first</xsl:with-param>
+          <xsl:with-param name="pageclass">index</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">first</xsl:with-param>
+          <xsl:with-param name="pageclass">index</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <fo:simple-page-master master-name="index-odd-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.inner"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.outer"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">index-odd-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.index}"
+                        column-count="{$column.count.index}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-odd"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-odd"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">odd</xsl:with-param>
+          <xsl:with-param name="pageclass">index</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">odd</xsl:with-param>
+          <xsl:with-param name="pageclass">index</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+
+      <fo:simple-page-master master-name="index-even-draft"
+                             page-width="{$page.width}"
+                             page-height="{$page.height}"
+                             margin-top="{$page.margin.top}"
+                             margin-bottom="{$page.margin.bottom}">
+        <xsl:attribute name="margin-{$direction.align.start}">
+          <xsl:value-of select="$page.margin.outer"/>
+	  <xsl:if test="$fop.extensions != 0">
+	    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:attribute name="margin-{$direction.align.end}">
+          <xsl:value-of select="$page.margin.inner"/>
+        </xsl:attribute>
+        <xsl:if test="$axf.extensions != 0">
+          <xsl:call-template name="axf-page-master-properties">
+            <xsl:with-param name="page.master">index-even-draft</xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+        <fo:region-body margin-bottom="{$body.margin.bottom}"
+                        margin-top="{$body.margin.top}"
+                        column-gap="{$column.gap.index}"
+                        column-count="{$column.count.index}">
+          <xsl:attribute name="margin-{$direction.align.start}">
+            <xsl:value-of select="$body.margin.outer"/>
+          </xsl:attribute>
+          <xsl:attribute name="margin-{$direction.align.end}">
+            <xsl:value-of select="$body.margin.inner"/>
+          </xsl:attribute>
+          <xsl:if test="$draft.watermark.image != ''">
+            <xsl:attribute name="background-image">
+              <xsl:call-template name="fo-external-image">
+                <xsl:with-param name="filename" select="$draft.watermark.image"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
+            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
+            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
+            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
+          </xsl:if>
+        </fo:region-body>
+        <fo:region-before region-name="xsl-region-before-even"
+                          extent="{$region.before.extent}"
+                          precedence="{$region.before.precedence}"
+                          display-align="before"/>
+        <fo:region-after region-name="xsl-region-after-even"
+                         extent="{$region.after.extent}"
+                          precedence="{$region.after.precedence}"
+                         display-align="after"/>
+        <xsl:call-template name="region.outer">
+          <xsl:with-param name="sequence">even</xsl:with-param>
+          <xsl:with-param name="pageclass">index</xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="region.inner">
+          <xsl:with-param name="sequence">even</xsl:with-param>
+          <xsl:with-param name="pageclass">index</xsl:with-param>
+        </xsl:call-template>
+      </fo:simple-page-master>
+    </xsl:if>
+
+    <!-- setup for title page(s) -->
+    <fo:page-sequence-master master-name="titlepage">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-reference="blank"
+                                              blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-reference="titlepage-first"
+                                              page-position="first"/>
+        <fo:conditional-page-master-reference master-reference="titlepage-odd"
+                                              odd-or-even="odd"/>
+        <fo:conditional-page-master-reference 
+                                              odd-or-even="even">
+          <xsl:attribute name="master-reference">
+            <xsl:choose>
+              <xsl:when test="$double.sided != 0">titlepage-even</xsl:when>
+              <xsl:otherwise>titlepage-odd</xsl:otherwise>
+            </xsl:choose>
+          </xsl:attribute>
+        </fo:conditional-page-master-reference>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+
+    <!-- setup for lots -->
+    <fo:page-sequence-master master-name="lot">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-reference="blank"
+                                              blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-reference="lot-first"
+                                              page-position="first"/>
+        <fo:conditional-page-master-reference master-reference="lot-odd"
+                                              odd-or-even="odd"/>
+        <fo:conditional-page-master-reference 
+                                              odd-or-even="even">
+          <xsl:attribute name="master-reference">
+            <xsl:choose>
+              <xsl:when test="$double.sided != 0">lot-even</xsl:when>
+              <xsl:otherwise>lot-odd</xsl:otherwise>
+            </xsl:choose>
+          </xsl:attribute>
+        </fo:conditional-page-master-reference>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+
+    <!-- setup front matter -->
+    <fo:page-sequence-master master-name="front">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-reference="blank"
+                                              blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-reference="front-first"
+                                              page-position="first"/>
+        <fo:conditional-page-master-reference master-reference="front-odd"
+                                              odd-or-even="odd"/>
+        <fo:conditional-page-master-reference 
+                                              odd-or-even="even">
+          <xsl:attribute name="master-reference">
+            <xsl:choose>
+              <xsl:when test="$double.sided != 0">front-even</xsl:when>
+              <xsl:otherwise>front-odd</xsl:otherwise>
+            </xsl:choose>
+          </xsl:attribute>
+        </fo:conditional-page-master-reference>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+
+    <!-- setup for body pages -->
+    <fo:page-sequence-master master-name="body">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-reference="blank"
+                                              blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-reference="body-first"
+                                              page-position="first"/>
+        <fo:conditional-page-master-reference master-reference="body-odd"
+                                              odd-or-even="odd"/>
+        <fo:conditional-page-master-reference 
+                                              odd-or-even="even">
+          <xsl:attribute name="master-reference">
+            <xsl:choose>
+              <xsl:when test="$double.sided != 0">body-even</xsl:when>
+              <xsl:otherwise>body-odd</xsl:otherwise>
+            </xsl:choose>
+          </xsl:attribute>
+        </fo:conditional-page-master-reference>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+
+    <!-- setup back matter -->
+    <fo:page-sequence-master master-name="back">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-reference="blank"
+                                              blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-reference="back-first"
+                                              page-position="first"/>
+        <fo:conditional-page-master-reference master-reference="back-odd"
+                                              odd-or-even="odd"/>
+        <fo:conditional-page-master-reference 
+                                              odd-or-even="even">
+          <xsl:attribute name="master-reference">
+            <xsl:choose>
+              <xsl:when test="$double.sided != 0">back-even</xsl:when>
+              <xsl:otherwise>back-odd</xsl:otherwise>
+            </xsl:choose>
+          </xsl:attribute>
+        </fo:conditional-page-master-reference>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+
+    <!-- setup back matter -->
+    <fo:page-sequence-master master-name="index">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-reference="blank"
+                                              blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-reference="index-first"
+                                              page-position="first"/>
+        <fo:conditional-page-master-reference master-reference="index-odd"
+                                              odd-or-even="odd"/>
+        <fo:conditional-page-master-reference 
+                                              odd-or-even="even">
+          <xsl:attribute name="master-reference">
+            <xsl:choose>
+              <xsl:when test="$double.sided != 0">index-even</xsl:when>
+              <xsl:otherwise>index-odd</xsl:otherwise>
+            </xsl:choose>
+          </xsl:attribute>
+        </fo:conditional-page-master-reference>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+
+    <xsl:if test="$draft.mode != 'no'">
+      <!-- setup for draft title page(s) -->
+      <fo:page-sequence-master master-name="titlepage-draft">
+        <fo:repeatable-page-master-alternatives>
+          <fo:conditional-page-master-reference master-reference="blank-draft"
+                                                blank-or-not-blank="blank"/>
+          <fo:conditional-page-master-reference master-reference="titlepage-first-draft"
+                                                page-position="first"/>
+          <fo:conditional-page-master-reference master-reference="titlepage-odd-draft"
+                                                odd-or-even="odd"/>
+          <fo:conditional-page-master-reference 
+                                                odd-or-even="even">
+            <xsl:attribute name="master-reference">
+              <xsl:choose>
+                <xsl:when test="$double.sided != 0">titlepage-even-draft</xsl:when>
+                <xsl:otherwise>titlepage-odd-draft</xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+          </fo:conditional-page-master-reference>
+        </fo:repeatable-page-master-alternatives>
+      </fo:page-sequence-master>
+
+      <!-- setup for draft lots -->
+      <fo:page-sequence-master master-name="lot-draft">
+        <fo:repeatable-page-master-alternatives>
+          <fo:conditional-page-master-reference master-reference="blank-draft"
+                                                blank-or-not-blank="blank"/>
+          <fo:conditional-page-master-reference master-reference="lot-first-draft"
+                                                page-position="first"/>
+          <fo:conditional-page-master-reference master-reference="lot-odd-draft"
+                                                odd-or-even="odd"/>
+          <fo:conditional-page-master-reference 
+                                                odd-or-even="even">
+            <xsl:attribute name="master-reference">
+              <xsl:choose>
+                <xsl:when test="$double.sided != 0">lot-even-draft</xsl:when>
+                <xsl:otherwise>lot-odd-draft</xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+          </fo:conditional-page-master-reference>
+        </fo:repeatable-page-master-alternatives>
+      </fo:page-sequence-master>
+
+      <!-- setup draft front matter -->
+      <fo:page-sequence-master master-name="front-draft">
+        <fo:repeatable-page-master-alternatives>
+          <fo:conditional-page-master-reference master-reference="blank-draft"
+                                                blank-or-not-blank="blank"/>
+          <fo:conditional-page-master-reference master-reference="front-first-draft"
+                                                page-position="first"/>
+          <fo:conditional-page-master-reference master-reference="front-odd-draft"
+                                                odd-or-even="odd"/>
+          <fo:conditional-page-master-reference 
+                                                odd-or-even="even">
+            <xsl:attribute name="master-reference">
+              <xsl:choose>
+                <xsl:when test="$double.sided != 0">front-even-draft</xsl:when>
+                <xsl:otherwise>front-odd-draft</xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+          </fo:conditional-page-master-reference>
+        </fo:repeatable-page-master-alternatives>
+      </fo:page-sequence-master>
+
+      <!-- setup for draft body pages -->
+      <fo:page-sequence-master master-name="body-draft">
+        <fo:repeatable-page-master-alternatives>
+          <fo:conditional-page-master-reference master-reference="blank-draft"
+                                                blank-or-not-blank="blank"/>
+          <fo:conditional-page-master-reference master-reference="body-first-draft"
+                                                page-position="first"/>
+          <fo:conditional-page-master-reference master-reference="body-odd-draft"
+                                                odd-or-even="odd"/>
+          <fo:conditional-page-master-reference 
+                                                odd-or-even="even">
+            <xsl:attribute name="master-reference">
+              <xsl:choose>
+                <xsl:when test="$double.sided != 0">body-even-draft</xsl:when>
+                <xsl:otherwise>body-odd-draft</xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+          </fo:conditional-page-master-reference>
+        </fo:repeatable-page-master-alternatives>
+      </fo:page-sequence-master>
+
+      <!-- setup draft back matter -->
+      <fo:page-sequence-master master-name="back-draft">
+        <fo:repeatable-page-master-alternatives>
+          <fo:conditional-page-master-reference master-reference="blank-draft"
+                                                blank-or-not-blank="blank"/>
+          <fo:conditional-page-master-reference master-reference="back-first-draft"
+                                                page-position="first"/>
+          <fo:conditional-page-master-reference master-reference="back-odd-draft"
+                                                odd-or-even="odd"/>
+          <fo:conditional-page-master-reference 
+                                                odd-or-even="even">
+            <xsl:attribute name="master-reference">
+              <xsl:choose>
+                <xsl:when test="$double.sided != 0">back-even-draft</xsl:when>
+                <xsl:otherwise>back-odd-draft</xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+          </fo:conditional-page-master-reference>
+        </fo:repeatable-page-master-alternatives>
+      </fo:page-sequence-master>
+
+      <!-- setup draft index pages -->
+      <fo:page-sequence-master master-name="index-draft">
+        <fo:repeatable-page-master-alternatives>
+          <fo:conditional-page-master-reference master-reference="blank-draft"
+                                                blank-or-not-blank="blank"/>
+          <fo:conditional-page-master-reference master-reference="index-first-draft"
+                                                page-position="first"/>
+          <fo:conditional-page-master-reference master-reference="index-odd-draft"
+                                                odd-or-even="odd"/>
+          <fo:conditional-page-master-reference 
+                                                odd-or-even="even">
+            <xsl:attribute name="master-reference">
+              <xsl:choose>
+                <xsl:when test="$double.sided != 0">index-even-draft</xsl:when>
+                <xsl:otherwise>index-odd-draft</xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+          </fo:conditional-page-master-reference>
+        </fo:repeatable-page-master-alternatives>
+      </fo:page-sequence-master>
+    </xsl:if>
+
+    <xsl:call-template name="user.pagemasters"/>
+
+    </fo:layout-master-set>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="user.pagemasters"/> <!-- intentionally empty -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="select.pagemaster">
+  <xsl:param name="element" select="local-name(.)"/>
+  <xsl:param name="pageclass" select="''"/>
+
+  <xsl:variable name="pagemaster">
+    <xsl:choose>
+      <xsl:when test="$pageclass != ''">
+        <xsl:value-of select="$pageclass"/>
+      </xsl:when>
+      <xsl:when test="$pageclass = 'lot'">lot</xsl:when>
+      <xsl:when test="$element = 'dedication'">front</xsl:when>
+      <xsl:when test="$element = 'acknowledgements'">front</xsl:when>
+      <xsl:when test="$element = 'preface'">front</xsl:when>
+      <xsl:when test="$element = 'appendix'">back</xsl:when>
+      <xsl:when test="$element = 'glossary'">back</xsl:when>
+      <xsl:when test="$element = 'bibliography'">back</xsl:when>
+      <xsl:when test="$element = 'index'">index</xsl:when>
+      <xsl:when test="$element = 'colophon'">back</xsl:when>
+      <xsl:otherwise>body</xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:choose>
+      <xsl:when test="$draft.mode = 'yes'">
+        <xsl:text>-draft</xsl:text>
+      </xsl:when>
+      <xsl:when test="$draft.mode = 'no'">
+        <!-- nop -->
+      </xsl:when>
+      <xsl:when test="ancestor-or-self::*[@status][1]/@status = 'draft'">
+        <xsl:text>-draft</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- nop -->
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="select.user.pagemaster">
+    <xsl:with-param name="element" select="$element"/>
+    <xsl:with-param name="pageclass" select="$pageclass"/>
+    <xsl:with-param name="default-pagemaster" select="$pagemaster"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="select.user.pagemaster">
+  <xsl:param name="element"/>
+  <xsl:param name="pageclass"/>
+  <xsl:param name="default-pagemaster"/>
+
+  <!-- by default, return the default. But if you've created your own
+       pagemasters in user.pagemasters, you might want to select one here. -->
+  <xsl:value-of select="$default-pagemaster"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="head.sep.rule">
+  <xsl:param name="pageclass"/>
+  <xsl:param name="sequence"/>
+  <xsl:param name="gentext-key"/>
+
+  <xsl:if test="$header.rule != 0">
+    <xsl:attribute name="border-bottom-width">0.5pt</xsl:attribute>
+    <xsl:attribute name="border-bottom-style">solid</xsl:attribute>
+    <xsl:attribute name="border-bottom-color">black</xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="foot.sep.rule">
+  <xsl:param name="pageclass"/>
+  <xsl:param name="sequence"/>
+  <xsl:param name="gentext-key"/>
+
+  <xsl:if test="$footer.rule != 0">
+    <xsl:attribute name="border-top-width">0.5pt</xsl:attribute>
+    <xsl:attribute name="border-top-style">solid</xsl:attribute>
+    <xsl:attribute name="border-top-color">black</xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="running.head.mode">
+  <xsl:param name="master-reference" select="'unknown'"/>
+  <xsl:param name="gentext-key" select="local-name(.)"/>
+
+  <!-- remove -draft from reference -->
+  <xsl:variable name="pageclass">
+    <xsl:choose>
+      <xsl:when test="contains($master-reference, '-draft')">
+        <xsl:value-of select="substring-before($master-reference, '-draft')"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$master-reference"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:static-content flow-name="xsl-region-before-first">
+    <fo:block xsl:use-attribute-sets="header.content.properties">
+      <xsl:call-template name="header.table">
+        <xsl:with-param name="pageclass" select="$pageclass"/>
+        <xsl:with-param name="sequence" select="'first'"/>
+        <xsl:with-param name="gentext-key" select="$gentext-key"/>
+      </xsl:call-template>
+    </fo:block>
+  </fo:static-content>
+
+  <fo:static-content flow-name="xsl-region-before-odd">
+    <fo:block xsl:use-attribute-sets="header.content.properties">
+      <xsl:call-template name="header.table">
+        <xsl:with-param name="pageclass" select="$pageclass"/>
+        <xsl:with-param name="sequence" select="'odd'"/>
+        <xsl:with-param name="gentext-key" select="$gentext-key"/>
+      </xsl:call-template>
+    </fo:block>
+  </fo:static-content>
+
+  <fo:static-content flow-name="xsl-region-before-even">
+    <fo:block xsl:use-attribute-sets="header.content.properties">
+      <xsl:call-template name="header.table">
+        <xsl:with-param name="pageclass" select="$pageclass"/>
+        <xsl:with-param name="sequence" select="'even'"/>
+        <xsl:with-param name="gentext-key" select="$gentext-key"/>
+      </xsl:call-template>
+    </fo:block>
+  </fo:static-content>
+
+  <fo:static-content flow-name="xsl-region-before-blank">
+    <fo:block xsl:use-attribute-sets="header.content.properties">
+      <xsl:call-template name="header.table">
+        <xsl:with-param name="pageclass" select="$pageclass"/>
+        <xsl:with-param name="sequence" select="'blank'"/>
+        <xsl:with-param name="gentext-key" select="$gentext-key"/>
+      </xsl:call-template>
+    </fo:block>
+  </fo:static-content>
+
+  <xsl:call-template name="footnote-separator"/>
+
+  <xsl:if test="$fop.extensions = 0 and $fop1.extensions = 0">
+    <xsl:call-template name="blank.page.content"/>
+  </xsl:if>
+
+  <xsl:apply-templates select="." mode="region.inner.mode">
+    <xsl:with-param name="master-reference" select="$master-reference"/>
+    <xsl:with-param name="gentext-key" select="$gentext-key"/>
+  </xsl:apply-templates>
+
+  <xsl:apply-templates select="." mode="region.outer.mode">
+    <xsl:with-param name="master-reference" select="$master-reference"/>
+    <xsl:with-param name="gentext-key" select="$gentext-key"/>
+  </xsl:apply-templates>
+
+</xsl:template>
+
+<xsl:template name="footnote-separator">
+  <fo:static-content flow-name="xsl-footnote-separator">
+    <fo:block>
+      <fo:leader xsl:use-attribute-sets="footnote.sep.leader.properties"/>
+    </fo:block>
+  </fo:static-content>
+</xsl:template>
+
+<xsl:template name="blank.page.content">
+  <fo:static-content flow-name="blank-body">
+    <fo:block text-align="center"/>
+  </fo:static-content>
+</xsl:template>
+
+<xsl:template name="running.side.content">
+  <xsl:apply-templates select="." mode="region.inner.mode"/>
+</xsl:template>
+
+<xsl:template name="header.table">
+  <xsl:param name="pageclass" select="''"/>
+  <xsl:param name="sequence" select="''"/>
+  <xsl:param name="gentext-key" select="''"/>
+
+  <!-- default is a single table style for all headers -->
+  <!-- Customize it for different page classes or sequence location -->
+
+  <xsl:choose>
+      <xsl:when test="$pageclass = 'index'">
+          <xsl:attribute name="margin-{$direction.align.start}">0pt</xsl:attribute>
+      </xsl:when>
+  </xsl:choose>
+
+  <xsl:variable name="column1">
+    <xsl:choose>
+      <xsl:when test="$double.sided = 0">1</xsl:when>
+      <xsl:when test="$sequence = 'first' or $sequence = 'odd'">1</xsl:when>
+      <xsl:otherwise>3</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="column3">
+    <xsl:choose>
+      <xsl:when test="$double.sided = 0">3</xsl:when>
+      <xsl:when test="$sequence = 'first' or $sequence = 'odd'">3</xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="candidate">
+    <fo:table xsl:use-attribute-sets="header.table.properties">
+      <xsl:call-template name="head.sep.rule">
+        <xsl:with-param name="pageclass" select="$pageclass"/>
+        <xsl:with-param name="sequence" select="$sequence"/>
+        <xsl:with-param name="gentext-key" select="$gentext-key"/>
+      </xsl:call-template>
+
+      <fo:table-column column-number="1">
+        <xsl:attribute name="column-width">
+          <xsl:text>proportional-column-width(</xsl:text>
+          <xsl:call-template name="header.footer.width">
+            <xsl:with-param name="location">header</xsl:with-param>
+            <xsl:with-param name="position" select="$column1"/>
+            <xsl:with-param name="pageclass" select="$pageclass"/>
+            <xsl:with-param name="sequence" select="$sequence"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+          </xsl:call-template>
+          <xsl:text>)</xsl:text>
+        </xsl:attribute>
+      </fo:table-column>
+      <fo:table-column column-number="2">
+        <xsl:attribute name="column-width">
+          <xsl:text>proportional-column-width(</xsl:text>
+          <xsl:call-template name="header.footer.width">
+            <xsl:with-param name="location">header</xsl:with-param>
+            <xsl:with-param name="position" select="2"/>
+            <xsl:with-param name="pageclass" select="$pageclass"/>
+            <xsl:with-param name="sequence" select="$sequence"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+          </xsl:call-template>
+          <xsl:text>)</xsl:text>
+        </xsl:attribute>
+      </fo:table-column>
+      <fo:table-column column-number="3">
+        <xsl:attribute name="column-width">
+          <xsl:text>proportional-column-width(</xsl:text>
+          <xsl:call-template name="header.footer.width">
+            <xsl:with-param name="location">header</xsl:with-param>
+            <xsl:with-param name="position" select="$column3"/>
+            <xsl:with-param name="pageclass" select="$pageclass"/>
+            <xsl:with-param name="sequence" select="$sequence"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+          </xsl:call-template>
+          <xsl:text>)</xsl:text>
+        </xsl:attribute>
+      </fo:table-column>
+
+      <fo:table-body>
+        <fo:table-row>
+          <xsl:attribute name="block-progression-dimension.minimum">
+            <xsl:value-of select="$header.table.height"/>
+          </xsl:attribute>
+          <fo:table-cell text-align="start"
+                         display-align="before">
+            <xsl:if test="$fop.extensions = 0">
+              <xsl:attribute name="relative-align">baseline</xsl:attribute>
+            </xsl:if>
+            <fo:block>
+              <xsl:call-template name="header.content">
+                <xsl:with-param name="pageclass" select="$pageclass"/>
+                <xsl:with-param name="sequence" select="$sequence"/>
+                <xsl:with-param name="position" select="$direction.align.start"/>
+                <xsl:with-param name="gentext-key" select="$gentext-key"/>
+              </xsl:call-template>
+            </fo:block>
+          </fo:table-cell>
+          <fo:table-cell text-align="center"
+                         display-align="before">
+            <xsl:if test="$fop.extensions = 0">
+              <xsl:attribute name="relative-align">baseline</xsl:attribute>
+            </xsl:if>
+            <fo:block>
+              <xsl:call-template name="header.content">
+                <xsl:with-param name="pageclass" select="$pageclass"/>
+                <xsl:with-param name="sequence" select="$sequence"/>
+                <xsl:with-param name="position" select="'center'"/>
+                <xsl:with-param name="gentext-key" select="$gentext-key"/>
+              </xsl:call-template>
+            </fo:block>
+          </fo:table-cell>
+          <fo:table-cell text-align="right"
+                         display-align="before">
+            <xsl:if test="$fop.extensions = 0">
+              <xsl:attribute name="relative-align">baseline</xsl:attribute>
+            </xsl:if>
+            <fo:block>
+              <xsl:call-template name="header.content">
+                <xsl:with-param name="pageclass" select="$pageclass"/>
+                <xsl:with-param name="sequence" select="$sequence"/>
+                <xsl:with-param name="position" select="$direction.align.end"/>
+                <xsl:with-param name="gentext-key" select="$gentext-key"/>
+              </xsl:call-template>
+            </fo:block>
+          </fo:table-cell>
+        </fo:table-row>
+      </fo:table-body>
+    </fo:table>
+  </xsl:variable>
+
+  <!-- Really output a header? -->
+  <xsl:choose>
+    <xsl:when test="$pageclass = 'titlepage' and $gentext-key = 'book'
+                    and $sequence='first'">
+      <!-- no, book titlepages have no headers at all -->
+    </xsl:when>
+    <xsl:when test="$sequence = 'blank' and $headers.on.blank.pages = 0">
+      <!-- no output -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$candidate"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="header.content">
+  <xsl:param name="pageclass" select="''"/>
+  <xsl:param name="sequence" select="''"/>
+  <xsl:param name="position" select="''"/>
+  <xsl:param name="gentext-key" select="''"/>
+
+<!--
+  <fo:block>
+    <xsl:value-of select="$pageclass"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$sequence"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$position"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$gentext-key"/>
+  </fo:block>
+-->
+
+  <fo:block>
+
+    <!-- sequence can be odd, even, first, blank -->
+    <!-- position can be left, center, right -->
+    <xsl:choose>
+      <xsl:when test="$sequence = 'blank'">
+        <!-- nothing -->
+      </xsl:when>
+
+      <xsl:when test="$position='left'">
+        <!-- Same for odd, even, empty, and blank sequences -->
+        <xsl:call-template name="draft.text"/>
+      </xsl:when>
+
+      <xsl:when test="($sequence='odd' or $sequence='even') and $position='center'">
+        <xsl:if test="$pageclass != 'titlepage'">
+          <xsl:choose>
+            <xsl:when test="ancestor::book and ($double.sided != 0)">
+              <fo:retrieve-marker retrieve-class-name="section.head.marker"
+                                  retrieve-position="first-including-carryover"
+                                  retrieve-boundary="page-sequence"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:if>
+      </xsl:when>
+
+      <xsl:when test="$position='center'">
+        <!-- nothing for empty and blank sequences -->
+      </xsl:when>
+
+      <xsl:when test="$position='right'">
+        <!-- Same for odd, even, empty, and blank sequences -->
+        <xsl:call-template name="draft.text"/>
+      </xsl:when>
+
+      <xsl:when test="$sequence = 'first'">
+        <!-- nothing for first pages -->
+      </xsl:when>
+
+      <xsl:when test="$sequence = 'blank'">
+        <!-- nothing for blank pages -->
+      </xsl:when>
+    </xsl:choose>
+  </fo:block>
+</xsl:template>
+
+<xsl:template name="header.footer.width">
+  <xsl:param name="location" select="'header'"/>
+  <xsl:param name="position" select="1"/>
+  <xsl:param name="pageclass" select="''"/>
+  <xsl:param name="sequence" select="''"/>
+  <xsl:param name="gentext-key" select="''"/>
+
+  <!-- The location param is either 'header' or 'footer'.
+       The position param is one of '1', '2', or '3' to indicate
+       which column of the header or footer table. -->
+       
+  <!-- The pageclass, sequence, and gentext-key values are passed
+       from the header.table or footer.table template.  They are
+       not currently used, but are made available here
+       for customization of this template. -->
+
+  <xsl:variable name="width.set">
+    <xsl:choose>
+      <xsl:when test="$location = 'header'">
+        <xsl:value-of select="normalize-space($header.column.widths)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="normalize-space($footer.column.widths)"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+
+  <xsl:variable name="width">
+    <xsl:choose>
+      <xsl:when test="$position = 1">
+        <xsl:value-of select="substring-before($width.set, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$position = 2">
+        <xsl:value-of select="substring-before(substring-after($width.set, ' '), ' ')"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="substring-after(substring-after($width.set, ' '), ' ')"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Make sure it is a number -->
+  <xsl:choose>
+    <xsl:when test = "$width = number($width)">
+      <xsl:value-of select="$width"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>Error: value in <xsl:value-of select="$location"/>.column.widths at position <xsl:value-of select="$position"/> is not a number.</xsl:message>
+      <xsl:text>1</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="draft.text">
+  <xsl:choose>
+    <xsl:when test="$draft.mode = 'yes'">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Draft'"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$draft.mode = 'no'">
+      <!-- nop -->
+    </xsl:when>
+    <xsl:when test="ancestor-or-self::*[@status][1]/@status = 'draft'">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Draft'"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- nop -->
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="running.foot.mode">
+  <xsl:param name="master-reference" select="'unknown'"/>
+  <xsl:param name="gentext-key" select="local-name(.)"/>
+
+  <!-- remove -draft from reference -->
+  <xsl:variable name="pageclass">
+    <xsl:choose>
+      <xsl:when test="contains($master-reference, '-draft')">
+        <xsl:value-of select="substring-before($master-reference, '-draft')"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$master-reference"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:static-content flow-name="xsl-region-after-first">
+    <fo:block xsl:use-attribute-sets="footer.content.properties">
+      <xsl:call-template name="footer.table">
+        <xsl:with-param name="pageclass" select="$pageclass"/>
+        <xsl:with-param name="sequence" select="'first'"/>
+        <xsl:with-param name="gentext-key" select="$gentext-key"/>
+      </xsl:call-template>
+    </fo:block>
+  </fo:static-content>
+
+  <fo:static-content flow-name="xsl-region-after-odd">
+    <fo:block xsl:use-attribute-sets="footer.content.properties">
+      <xsl:call-template name="footer.table">
+        <xsl:with-param name="pageclass" select="$pageclass"/>
+        <xsl:with-param name="sequence" select="'odd'"/>
+        <xsl:with-param name="gentext-key" select="$gentext-key"/>
+      </xsl:call-template>
+    </fo:block>
+  </fo:static-content>
+
+  <fo:static-content flow-name="xsl-region-after-even">
+    <fo:block xsl:use-attribute-sets="footer.content.properties">
+      <xsl:call-template name="footer.table">
+        <xsl:with-param name="pageclass" select="$pageclass"/>
+        <xsl:with-param name="sequence" select="'even'"/>
+        <xsl:with-param name="gentext-key" select="$gentext-key"/>
+      </xsl:call-template>
+    </fo:block>
+  </fo:static-content>
+
+  <fo:static-content flow-name="xsl-region-after-blank">
+    <fo:block xsl:use-attribute-sets="footer.content.properties">
+      <xsl:call-template name="footer.table">
+        <xsl:with-param name="pageclass" select="$pageclass"/>
+        <xsl:with-param name="sequence" select="'blank'"/>
+        <xsl:with-param name="gentext-key" select="$gentext-key"/>
+      </xsl:call-template>
+    </fo:block>
+  </fo:static-content>
+</xsl:template>
+
+<xsl:template name="footer.table">
+  <xsl:param name="pageclass" select="''"/>
+  <xsl:param name="sequence" select="''"/>
+  <xsl:param name="gentext-key" select="''"/>
+
+  <!-- default is a single table style for all footers -->
+  <!-- Customize it for different page classes or sequence location -->
+
+  <xsl:choose>
+      <xsl:when test="$pageclass = 'index'">
+          <xsl:attribute name="margin-{$direction.align.start}">0pt</xsl:attribute>
+      </xsl:when>
+  </xsl:choose>
+
+  <xsl:variable name="column1">
+    <xsl:choose>
+      <xsl:when test="$double.sided = 0">1</xsl:when>
+      <xsl:when test="$sequence = 'first' or $sequence = 'odd'">1</xsl:when>
+      <xsl:otherwise>3</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="column3">
+    <xsl:choose>
+      <xsl:when test="$double.sided = 0">3</xsl:when>
+      <xsl:when test="$sequence = 'first' or $sequence = 'odd'">3</xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="candidate">
+    <fo:table xsl:use-attribute-sets="footer.table.properties">
+      <xsl:call-template name="foot.sep.rule">
+        <xsl:with-param name="pageclass" select="$pageclass"/>
+        <xsl:with-param name="sequence" select="$sequence"/>
+        <xsl:with-param name="gentext-key" select="$gentext-key"/>
+      </xsl:call-template>
+      <fo:table-column column-number="1">
+        <xsl:attribute name="column-width">
+          <xsl:text>proportional-column-width(</xsl:text>
+          <xsl:call-template name="header.footer.width">
+            <xsl:with-param name="location">footer</xsl:with-param>
+            <xsl:with-param name="position" select="$column1"/>
+            <xsl:with-param name="pageclass" select="$pageclass"/>
+            <xsl:with-param name="sequence" select="$sequence"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+          </xsl:call-template>
+          <xsl:text>)</xsl:text>
+        </xsl:attribute>
+      </fo:table-column>
+      <fo:table-column column-number="2">
+        <xsl:attribute name="column-width">
+          <xsl:text>proportional-column-width(</xsl:text>
+          <xsl:call-template name="header.footer.width">
+            <xsl:with-param name="location">footer</xsl:with-param>
+            <xsl:with-param name="position" select="2"/>
+            <xsl:with-param name="pageclass" select="$pageclass"/>
+            <xsl:with-param name="sequence" select="$sequence"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+          </xsl:call-template>
+          <xsl:text>)</xsl:text>
+        </xsl:attribute>
+      </fo:table-column>
+      <fo:table-column column-number="3">
+        <xsl:attribute name="column-width">
+          <xsl:text>proportional-column-width(</xsl:text>
+          <xsl:call-template name="header.footer.width">
+            <xsl:with-param name="location">footer</xsl:with-param>
+            <xsl:with-param name="position" select="$column3"/>
+            <xsl:with-param name="pageclass" select="$pageclass"/>
+            <xsl:with-param name="sequence" select="$sequence"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+          </xsl:call-template>
+          <xsl:text>)</xsl:text>
+        </xsl:attribute>
+      </fo:table-column>
+
+      <fo:table-body>
+        <fo:table-row>
+          <xsl:attribute name="block-progression-dimension.minimum">
+            <xsl:value-of select="$footer.table.height"/>
+          </xsl:attribute>
+          <fo:table-cell text-align="start"
+                         display-align="after">
+            <xsl:if test="$fop.extensions = 0">
+              <xsl:attribute name="relative-align">baseline</xsl:attribute>
+            </xsl:if>
+            <fo:block>
+              <xsl:call-template name="footer.content">
+                <xsl:with-param name="pageclass" select="$pageclass"/>
+                <xsl:with-param name="sequence" select="$sequence"/>
+                <xsl:with-param name="position" select="$direction.align.start"/>
+                <xsl:with-param name="gentext-key" select="$gentext-key"/>
+              </xsl:call-template>
+            </fo:block>
+          </fo:table-cell>
+          <fo:table-cell text-align="center"
+                         display-align="after">
+            <xsl:if test="$fop.extensions = 0">
+              <xsl:attribute name="relative-align">baseline</xsl:attribute>
+            </xsl:if>
+            <fo:block>
+              <xsl:call-template name="footer.content">
+                <xsl:with-param name="pageclass" select="$pageclass"/>
+                <xsl:with-param name="sequence" select="$sequence"/>
+                <xsl:with-param name="position" select="'center'"/>
+                <xsl:with-param name="gentext-key" select="$gentext-key"/>
+              </xsl:call-template>
+            </fo:block>
+          </fo:table-cell>
+          <fo:table-cell text-align="end"
+                         display-align="after">
+            <xsl:if test="$fop.extensions = 0">
+              <xsl:attribute name="relative-align">baseline</xsl:attribute>
+            </xsl:if>
+            <fo:block>
+              <xsl:call-template name="footer.content">
+                <xsl:with-param name="pageclass" select="$pageclass"/>
+                <xsl:with-param name="sequence" select="$sequence"/>
+                <xsl:with-param name="position" select="$direction.align.end"/>
+                <xsl:with-param name="gentext-key" select="$gentext-key"/>
+              </xsl:call-template>
+            </fo:block>
+          </fo:table-cell>
+        </fo:table-row>
+      </fo:table-body>
+    </fo:table>
+  </xsl:variable>
+
+  <!-- Really output a footer? -->
+  <xsl:choose>
+    <xsl:when test="$pageclass='titlepage' and $gentext-key='book'
+                    and $sequence='first'">
+      <!-- no, book titlepages have no footers at all -->
+    </xsl:when>
+    <xsl:when test="$sequence = 'blank' and $footers.on.blank.pages = 0">
+      <!-- no output -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$candidate"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="footer.content">
+  <xsl:param name="pageclass" select="''"/>
+  <xsl:param name="sequence" select="''"/>
+  <xsl:param name="position" select="''"/>
+  <xsl:param name="gentext-key" select="''"/>
+
+<!--
+  <fo:block>
+    <xsl:value-of select="$pageclass"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$sequence"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$position"/>
+    <xsl:text>, </xsl:text>
+    <xsl:value-of select="$gentext-key"/>
+  </fo:block>
+-->
+
+  <fo:block>
+    <!-- pageclass can be front, body, back -->
+    <!-- sequence can be odd, even, first, blank -->
+    <!-- position can be left, center, right -->
+    <xsl:choose>
+      <xsl:when test="$pageclass = 'titlepage'">
+        <!-- nop; no footer on title pages -->
+      </xsl:when>
+
+      <xsl:when test="$double.sided != 0 and $sequence = 'even'
+                      and $position='left'">
+        <fo:page-number/>
+      </xsl:when>
+
+      <xsl:when test="$double.sided != 0 and ($sequence = 'odd' or $sequence = 'first')
+                      and $position='right'">
+        <fo:page-number/>
+      </xsl:when>
+
+      <xsl:when test="$double.sided = 0 and $position='center'">
+        <fo:page-number/>
+      </xsl:when>
+
+      <xsl:when test="$sequence='blank'">
+        <xsl:choose>
+          <xsl:when test="$double.sided != 0 and $position = 'left'">
+            <fo:page-number/>
+          </xsl:when>
+          <xsl:when test="$double.sided = 0 and $position = 'center'">
+            <fo:page-number/>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- nop -->
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+
+      <xsl:otherwise>
+        <!-- nop -->
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template match="*" mode="region.inner.mode">
+  <xsl:param name="master-reference" select="'unknown'"/>
+  <xsl:param name="gentext-key" select="local-name(.)"/>
+
+  <!-- remove -draft from reference -->
+  <xsl:variable name="pageclass">
+    <xsl:choose>
+      <xsl:when test="contains($master-reference, '-draft')">
+        <xsl:value-of select="substring-before($master-reference, '-draft')"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$master-reference"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:static-content flow-name="xsl-region-inner-first">
+    <xsl:call-template name="inner.region.content">
+      <xsl:with-param name="pageclass" select="$pageclass"/>
+      <xsl:with-param name="sequence" select="'first'"/>
+      <xsl:with-param name="gentext-key" select="$gentext-key"/>
+    </xsl:call-template>
+  </fo:static-content>
+
+  <fo:static-content flow-name="xsl-region-inner-odd">
+    <xsl:call-template name="inner.region.content">
+      <xsl:with-param name="pageclass" select="$pageclass"/>
+      <xsl:with-param name="sequence" select="'odd'"/>
+      <xsl:with-param name="gentext-key" select="$gentext-key"/>
+    </xsl:call-template>
+  </fo:static-content>
+
+  <fo:static-content flow-name="xsl-region-inner-even">
+    <xsl:call-template name="inner.region.content">
+      <xsl:with-param name="pageclass" select="$pageclass"/>
+      <xsl:with-param name="sequence" select="'even'"/>
+      <xsl:with-param name="gentext-key" select="$gentext-key"/>
+    </xsl:call-template>
+  </fo:static-content>
+
+  <fo:static-content flow-name="xsl-region-inner-blank">
+    <xsl:call-template name="inner.region.content">
+      <xsl:with-param name="pageclass" select="$pageclass"/>
+      <xsl:with-param name="sequence" select="'blank'"/>
+      <xsl:with-param name="gentext-key" select="$gentext-key"/>
+    </xsl:call-template>
+  </fo:static-content>
+
+</xsl:template>
+
+<xsl:template match="*" mode="region.outer.mode">
+  <xsl:param name="master-reference" select="'unknown'"/>
+  <xsl:param name="gentext-key" select="local-name(.)"/>
+
+  <!-- remove -draft from reference -->
+  <xsl:variable name="pageclass">
+    <xsl:choose>
+      <xsl:when test="contains($master-reference, '-draft')">
+        <xsl:value-of select="substring-before($master-reference, '-draft')"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$master-reference"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:static-content flow-name="xsl-region-outer-first">
+    <xsl:call-template name="outer.region.content">
+      <xsl:with-param name="pageclass" select="$pageclass"/>
+      <xsl:with-param name="sequence" select="'first'"/>
+      <xsl:with-param name="gentext-key" select="$gentext-key"/>
+    </xsl:call-template>
+  </fo:static-content>
+
+  <fo:static-content flow-name="xsl-region-outer-odd">
+    <xsl:call-template name="outer.region.content">
+      <xsl:with-param name="pageclass" select="$pageclass"/>
+      <xsl:with-param name="sequence" select="'odd'"/>
+      <xsl:with-param name="gentext-key" select="$gentext-key"/>
+    </xsl:call-template>
+  </fo:static-content>
+
+  <fo:static-content flow-name="xsl-region-outer-even">
+    <xsl:call-template name="outer.region.content">
+      <xsl:with-param name="pageclass" select="$pageclass"/>
+      <xsl:with-param name="sequence" select="'even'"/>
+      <xsl:with-param name="gentext-key" select="$gentext-key"/>
+    </xsl:call-template>
+  </fo:static-content>
+
+  <fo:static-content flow-name="xsl-region-outer-blank">
+    <xsl:call-template name="outer.region.content">
+      <xsl:with-param name="pageclass" select="$pageclass"/>
+      <xsl:with-param name="sequence" select="'blank'"/>
+      <xsl:with-param name="gentext-key" select="$gentext-key"/>
+    </xsl:call-template>
+  </fo:static-content>
+
+</xsl:template>
+
+<xsl:template name="inner.region.content">
+  <xsl:param name="pageclass" select="''"/>
+  <xsl:param name="sequence" select="''"/>
+  <xsl:param name="position" select="''"/>
+  <xsl:param name="gentext-key" select="''"/>
+
+  <!-- pageclass can be front, body, back -->
+  <!-- sequence can be odd, even, first, blank -->
+  <!-- position can be left, center, right -->
+
+  <!-- Customize to add side region content-->
+  <fo:block xsl:use-attribute-sets="inner.region.content.properties">
+    <!-- Add your content here -->
+  </fo:block>
+</xsl:template>
+
+<xsl:template name="outer.region.content">
+  <xsl:param name="pageclass" select="''"/>
+  <xsl:param name="sequence" select="''"/>
+  <xsl:param name="position" select="''"/>
+  <xsl:param name="gentext-key" select="''"/>
+
+  <!-- pageclass can be front, body, back -->
+  <!-- sequence can be odd, even, first, blank -->
+  <!-- position can be left, center, right -->
+
+  <!-- Customize to add side region content-->
+  <fo:block xsl:use-attribute-sets="outer.region.content.properties">
+    <!-- Add your content here -->
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="page.number.format">
+  <xsl:param name="element" select="local-name(.)"/>
+  <xsl:param name="master-reference" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="$element = 'toc' and self::book">i</xsl:when>
+    <xsl:when test="$element = 'set'">i</xsl:when>
+    <xsl:when test="$element = 'book'">i</xsl:when>
+    <xsl:when test="$element = 'preface'">i</xsl:when>
+    <xsl:when test="$element = 'dedication'">i</xsl:when>
+    <xsl:when test="$element = 'acknowledgements'">i</xsl:when>
+    <xsl:otherwise>1</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="initial.page.number">
+  <xsl:param name="element" select="local-name(.)"/>
+  <xsl:param name="master-reference" select="''"/>
+
+  <!-- Select the first content that the stylesheet places
+       after the TOC -->
+  <xsl:variable name="first.book.content" 
+                select="ancestor::book/*[
+                          not(self::title or
+                              self::subtitle or
+                              self::titleabbrev or
+                              self::bookinfo or
+                              self::info or
+                              self::dedication or
+                              self::acknowledgements or
+                              self::preface or
+                              self::toc or
+                              self::lot)][1]"/>
+  <xsl:choose>
+    <!-- double-sided output -->
+    <xsl:when test="$double.sided != 0">
+      <xsl:choose>
+        <xsl:when test="$element = 'toc'">auto-odd</xsl:when>
+        <xsl:when test="$element = 'book'">1</xsl:when>
+        <!-- preface typically continues TOC roman numerals -->
+        <!-- Change page.number.format if not -->
+        <xsl:when test="$element = 'preface'">auto-odd</xsl:when>
+        <xsl:when test="($element = 'dedication' or $element = 'article') 
+                    and not(preceding::chapter
+                            or preceding::preface
+                            or preceding::appendix
+                            or preceding::article
+                            or preceding::dedication
+                            or parent::part
+                            or parent::reference)">1</xsl:when>
+        <xsl:when test="generate-id($first.book.content) =
+                        generate-id(.)">1</xsl:when>
+        <xsl:otherwise>auto-odd</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <!-- single-sided output -->
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$element = 'toc'">auto</xsl:when>
+        <xsl:when test="$element = 'book'">1</xsl:when>
+        <xsl:when test="$element = 'preface'">auto</xsl:when>
+       <xsl:when test="($element = 'dedication' or $element = 'article') and
+                        not(preceding::chapter
+                            or preceding::preface
+                            or preceding::appendix
+                            or preceding::article
+                            or preceding::dedication
+                            or parent::part
+                            or parent::reference)">1</xsl:when>
+        <xsl:when test="generate-id($first.book.content) =
+                        generate-id(.)">1</xsl:when>
+        <xsl:otherwise>auto</xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="force.page.count">
+  <xsl:param name="element" select="local-name(.)"/>
+  <xsl:param name="master-reference" select="''"/>
+
+  <xsl:choose>
+    <!-- double-sided output -->
+    <xsl:when test="$double.sided != 0">end-on-even</xsl:when>
+    <!-- single-sided output -->
+    <xsl:otherwise>no-force</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="set.flow.properties">
+  <xsl:param name="element" select="local-name(.)"/>
+  <xsl:param name="master-reference" select="''"/>
+
+  <!-- This template is called after each <fo:flow> starts. -->
+  <!-- Customize this template to set attributes on fo:flow -->
+
+  <!-- remove -draft from reference -->
+  <xsl:variable name="pageclass">
+    <xsl:choose>
+      <xsl:when test="contains($master-reference, '-draft')">
+        <xsl:value-of select="substring-before($master-reference, '-draft')"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$master-reference"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$fop.extensions != 0 or $passivetex.extensions != 0">
+      <!-- body.start.indent does not work well with these processors -->
+    </xsl:when>
+    <xsl:when test="starts-with($pageclass, 'body') or
+                    starts-with($pageclass, 'lot') or
+                    starts-with($pageclass, 'front') or
+                    $element = 'preface' or
+                    (starts-with($pageclass, 'back') and
+                    $element = 'appendix')">
+      <xsl:attribute name="start-indent">
+        <xsl:value-of select="$body.start.indent"/>
+      </xsl:attribute>
+      <xsl:attribute name="end-indent">
+        <xsl:value-of select="$body.end.indent"/>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+<!-- ==================================================================== -->
+
+<!-- Customize this template for custom side regions -->
+<xsl:template name="region.inner">
+  <xsl:param name="sequence">blank</xsl:param>
+  <xsl:param name="classname">blank</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$sequence = 'first' or $sequence = 'odd'">
+      <fo:region-start xsl:use-attribute-sets="region.inner.properties">
+        <xsl:attribute name="region-name">
+          <xsl:text>xsl-region-inner-</xsl:text>
+          <xsl:value-of select="$sequence"/>
+        </xsl:attribute>
+        <xsl:attribute name="precedence">
+          <xsl:value-of select="$region.start.precedence"/>
+        </xsl:attribute>
+        <xsl:attribute name="extent">
+          <xsl:value-of select="$region.inner.extent"/>
+        </xsl:attribute>
+      </fo:region-start>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:region-end xsl:use-attribute-sets="region.inner.properties">
+        <xsl:attribute name="region-name">
+          <xsl:text>xsl-region-inner-</xsl:text>
+          <xsl:value-of select="$sequence"/>
+        </xsl:attribute>
+        <xsl:attribute name="precedence">
+          <xsl:value-of select="$region.end.precedence"/>
+        </xsl:attribute>
+        <xsl:attribute name="extent">
+          <xsl:value-of select="$region.inner.extent"/>
+        </xsl:attribute>
+      </fo:region-end>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Customize this template for custom side regions -->
+<xsl:template name="region.outer">
+  <xsl:param name="sequence">blank</xsl:param>
+  <xsl:param name="classname">blank</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$sequence = 'first' or $sequence = 'odd'">
+      <fo:region-end xsl:use-attribute-sets="region.outer.properties">
+        <xsl:attribute name="region-name">
+          <xsl:text>xsl-region-outer-</xsl:text>
+          <xsl:value-of select="$sequence"/>
+        </xsl:attribute>
+        <xsl:attribute name="precedence">
+          <xsl:value-of select="$region.start.precedence"/>
+        </xsl:attribute>
+        <xsl:attribute name="extent">
+          <xsl:value-of select="$region.outer.extent"/>
+        </xsl:attribute>
+      </fo:region-end>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:region-start xsl:use-attribute-sets="region.outer.properties">
+        <xsl:attribute name="region-name">
+          <xsl:text>xsl-region-outer-</xsl:text>
+          <xsl:value-of select="$sequence"/>
+        </xsl:attribute>
+        <xsl:attribute name="precedence">
+          <xsl:value-of select="$region.end.precedence"/>
+        </xsl:attribute>
+        <xsl:attribute name="extent">
+          <xsl:value-of select="$region.outer.extent"/>
+        </xsl:attribute>
+      </fo:region-start>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/param.xml b/applications/content/template/docbook/fo/param.xml
new file mode 100644
index 0000000..0062159
--- /dev/null
+++ b/applications/content/template/docbook/fo/param.xml
@@ -0,0 +1,13212 @@
+<?xml version="1.0" encoding="ASCII"?>
+<book version="5.0">
+<info>
+<title>FO Parameter Reference</title>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author>
+  <personname>
+    <surname>Walsh</surname>
+    <firstname>Norman</firstname>
+  </personname>
+</author>
+<copyright>
+  <year>1999</year>
+  <year>2000</year>
+  <year>2001</year>
+  <year>2002</year>
+  <year>2003</year>
+  <year>2004</year>
+  <year>2005</year>
+  <year>2006</year>
+  <year>2007</year>
+  <year>2008</year>
+  <year>2009</year>
+  <year>2010</year>
+  <year>2011</year>
+  <holder>Norman Walsh</holder>
+</copyright>
+<abstract>
+  <para>This is reference documentation for all user-configurable
+  parameters in the DocBook XSL FO stylesheets (for generating
+  XSL-FO output destined for final print/PDF output).</para>
+</abstract>
+</info>
+<reference xml:id="admons"><title>Admonitions</title>
+<refentry version="5.0" xml:id="admon.graphics">
+<refmeta>
+<refentrytitle>admon.graphics</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics</refname>
+<refpurpose>Use graphics in admonitions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="admon.graphics.frag">
+&lt;xsl:param name="admon.graphics" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), admonitions are presented in an alternate style that uses
+a graphic.  Default graphics are provided in the distribution.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="admon.graphics.extension">
+<refmeta>
+<refentrytitle>admon.graphics.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics.extension</refname>
+<refpurpose>Filename extension for admonition graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="admon.graphics.extension.frag">
+&lt;xsl:param name="admon.graphics.extension"&gt;.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the filename extension to use on admonition graphics.</para>
+
+<itemizedlist>
+  <para>The DocBook XSL distribution provides admonition graphics in the following formats:</para>
+  <listitem><para>GIF (extension: <filename class="extension">.gif</filename>)</para></listitem>
+  <listitem><para>PNG (extension: <filename class="extension">.png</filename>)</para></listitem>
+  <listitem><para>SVG (extension: <filename class="extension">.svg</filename>)</para></listitem>
+  <listitem><para>TIFF (extension: <filename class="extension">.tif</filename>)</para></listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="admon.graphics.path">
+<refmeta>
+<refentrytitle>admon.graphics.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics.path</refname>
+<refpurpose>Path to admonition graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="admon.graphics.path.frag">&lt;xsl:param name="admon.graphics.path"&gt;images/&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the path to the directory containing the admonition graphics
+(caution.png, important.png etc). This location is normally relative
+to the output html directory. See <parameter>base.dir</parameter></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="admon.textlabel">
+<refmeta>
+<refentrytitle>admon.textlabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.textlabel</refname>
+<refpurpose>Use text label in admonitions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="admon.textlabel.frag">
+&lt;xsl:param name="admon.textlabel" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), admonitions are presented with a generated
+text label such as Note or Warning in the appropriate language.
+If zero, such labels are turned off, but any title child
+of the admonition element are still output.
+The default value is 1.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="admonition.title.properties">
+
+<refmeta>
+  <refentrytitle>admonition.title.properties</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admonition.title.properties</refname>
+<refpurpose>To set the style for admonitions titles.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="admonition.title.properties.frag">
+&lt;xsl:attribute-set name="admonition.title.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;14pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>How do you want admonitions titles styled? </para>
+<para>Set the font-size, weight etc to the style required.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="admonition.properties">
+<refmeta>
+  <refentrytitle>admonition.properties</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>admonition.properties</refname>
+<refpurpose>To set the style for admonitions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="admonition.properties.frag">&lt;xsl:attribute-set name="admonition.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>How do you want admonitions styled? </para>
+<para>Set the font-size, weight, etc. to the style required</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="graphical.admonition.properties">
+<refmeta>
+<refentrytitle>graphical.admonition.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphical.admonition.properties</refname>
+<refpurpose>To add properties to the outer block of a graphical admonition.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="graphical.admonition.properties.frag">&lt;xsl:attribute-set name="graphical.admonition.properties"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the outer block containing the
+entire graphical admonition, including its title.
+It is used when the parameter
+<parameter>admon.graphics</parameter> is set to nonzero.
+Use this attribute-set to set the space above and below,
+and any indent for the whole admonition.</para>
+
+<para>In addition to these properties, a graphical admonition
+also applies the <parameter>admonition.title.properties</parameter>
+attribute-set to the title, and applies the
+<parameter>admonition.properties</parameter> attribute-set
+to the rest of the content.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="nongraphical.admonition.properties">
+<refmeta>
+<refentrytitle>nongraphical.admonition.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nongraphical.admonition.properties</refname>
+<refpurpose>To add properties to the outer block of a nongraphical admonition.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="nongraphical.admonition.properties.frag">&lt;xsl:attribute-set name="nongraphical.admonition.properties"&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.start}"&gt;0.25in&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.end}"&gt;0.25in&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the outer block containing the
+entire nongraphical admonition, including its title.
+It is used when the parameter
+<parameter>admon.graphics</parameter> is set to zero.
+Use this attribute-set to set the space above and below,
+and any indent for the whole admonition.</para>
+
+<para>In addition to these properties, a nongraphical admonition
+also applies the <parameter>admonition.title.properties</parameter>
+attribute-set to the title, and the
+<parameter>admonition.properties</parameter> attribute-set
+to the rest of the content.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="callouts"><title>Callouts</title>
+<refentry version="5.0" xml:id="calloutlist.properties">
+<refmeta>
+<refentrytitle>calloutlist.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>calloutlist.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by calloutlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="calloutlist.properties.frag">&lt;xsl:attribute-set name="calloutlist.properties"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="provisional-distance-between-starts"&gt;2.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="provisional-label-separation"&gt;0.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to the fo:list-block generated by calloutlist.
+Typically used to adjust spacing or margins of the entire list.
+Change the <literal>provisional-distance-between-starts</literal> attribute to
+change the indent of the list paragraphs relative to the
+callout numbers.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.properties">
+<refmeta>
+<refentrytitle>callout.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.properties</refname>
+<refpurpose>Properties that apply to the list-item generated by each callout within a calloutlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.properties.frag">&lt;xsl:attribute-set name="callout.properties"&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to the fo:list-item generated by each callout within a calloutlist. Typically used to add spacing properties.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.defaultcolumn">
+<refmeta>
+<refentrytitle>callout.defaultcolumn</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.defaultcolumn</refname>
+<refpurpose>Indicates what column callouts appear in by default</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.defaultcolumn.frag">
+&lt;xsl:param name="callout.defaultcolumn"&gt;60&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If a callout does not identify a column (for example, if it uses
+the <literal>linerange</literal> <tag class="attribute">unit</tag>),
+it will appear in the default column.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.graphics">
+<refmeta>
+<refentrytitle>callout.graphics</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics</refname>
+<refpurpose>Use graphics for callouts?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.graphics.frag">
+&lt;xsl:param name="callout.graphics" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, callouts are presented with graphics (e.g., reverse-video
+circled numbers instead of "(1)", "(2)", etc.).
+Default graphics are provided in the distribution.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.graphics.extension">
+<refmeta>
+<refentrytitle>callout.graphics.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.extension</refname>
+<refpurpose>Filename extension for callout graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.graphics.extension.frag">
+
+&lt;xsl:param name="callout.graphics.extension"&gt;.svg&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Sets the filename extension to use on callout graphics. </para>
+
+<itemizedlist>
+<para>The Docbook XSL distribution provides callout graphics in the following formats:</para>
+<listitem><para>SVG (extension: <filename class="extension">.svg</filename>)</para></listitem>
+<listitem><para>PNG (extension: <filename class="extension">.png</filename>)</para></listitem>
+<listitem><para>GIF (extension: <filename class="extension">.gif</filename>)</para></listitem>
+</itemizedlist>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.graphics.number.limit">
+<refmeta>
+<refentrytitle>callout.graphics.number.limit</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.number.limit</refname>
+<refpurpose>Number of the largest callout graphic</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.graphics.number.limit.frag">
+
+&lt;xsl:param name="callout.graphics.number.limit"&gt;30&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.graphics</parameter> is non-zero, graphics
+are used to represent callout numbers instead of plain text. The value
+of <parameter>callout.graphics.number.limit</parameter> is the largest
+number for which a graphic exists. If the callout number exceeds this
+limit, the default presentation "(plain text instead of a graphic)"
+will  be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.graphics.path">
+<refmeta>
+<refentrytitle>callout.graphics.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.path</refname>
+<refpurpose>Path to callout graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.graphics.path.frag">
+&lt;xsl:param name="callout.graphics.path"&gt;images/callouts/&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the path to the directory holding the callout graphics. his
+location is normally relative to the output html directory. see
+base.dir. Always terminate the directory with / since the graphic file
+is appended to this string, hence needs the separator.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.icon.size">
+<refmeta>
+<refentrytitle>callout.icon.size</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.icon.size</refname>
+<refpurpose>Specifies the size of callout marker icons</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.icon.size.frag">
+&lt;xsl:param name="callout.icon.size"&gt;7pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the size of the callout marker icons.
+The default size is 7 points.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.unicode">
+<refmeta>
+<refentrytitle>callout.unicode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode</refname>
+<refpurpose>Use Unicode characters rather than images for callouts.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.unicode.frag">&lt;xsl:param name="callout.unicode" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The stylesheets can use either an image of the numbers one to ten, or the single Unicode character which represents the numeral, in white on a black background. Use this to select the Unicode character option.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.unicode.font">
+<refmeta>
+<refentrytitle>callout.unicode.font</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode.font</refname>
+<refpurpose>Specify a font for Unicode glyphs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.unicode.font.frag">
+&lt;xsl:param name="callout.unicode.font"&gt;ZapfDingbats&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The name of the font to specify around Unicode callout glyphs.
+If set to the empty string, no font change will occur.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.unicode.number.limit">
+<refmeta>
+<refentrytitle>callout.unicode.number.limit</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode.number.limit</refname>
+<refpurpose>Number of the largest unicode callout character</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.unicode.number.limit.frag">
+&lt;xsl:param name="callout.unicode.number.limit"&gt;10&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.unicode</parameter>
+is non-zero, unicode characters are used to represent
+callout numbers. The value of
+<parameter>callout.unicode.number.limit</parameter>
+is
+the largest number for which a unicode character exists. If the callout number
+exceeds this limit, the default presentation "(nnn)" will always
+be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.unicode.start.character">
+<refmeta>
+<refentrytitle>callout.unicode.start.character</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode.start.character</refname>
+<refpurpose>First Unicode character to use, decimal value.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.unicode.start.character.frag">
+&lt;xsl:param name="callout.unicode.start.character"&gt;10102&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.graphics</parameter> is zero and <parameter>callout.unicode</parameter>
+is non-zero, unicode characters are used to represent
+callout numbers. The value of
+<parameter>callout.unicode.start.character</parameter>
+is the decimal unicode value used for callout number one. Currently, 
+only values 9312 and 10102 are supported in the stylesheets for this parameter. 
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callouts.extension">
+<refmeta>
+<refentrytitle>callouts.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callouts.extension</refname>
+<refpurpose>Enable the callout extension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callouts.extension.frag">
+&lt;xsl:param name="callouts.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The callouts extension processes <tag>areaset</tag>
+elements in <tag>programlistingco</tag> and other text-based
+callout elements.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="toc_index"><title>ToC/LoT/Index Generation</title>
+<refentry version="5.0" xml:id="autotoc.label.separator">
+<refmeta>
+<refentrytitle>autotoc.label.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>autotoc.label.separator</refname>
+<refpurpose>Separator between labels and titles in the ToC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="autotoc.label.separator.frag">
+&lt;xsl:param name="autotoc.label.separator"&gt;. &lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>String used to separate labels and titles in a table of contents.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="process.empty.source.toc">
+<refmeta>
+<refentrytitle>process.empty.source.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>process.empty.source.toc</refname>
+<refpurpose>Generate automated TOC if <tag>toc</tag> element occurs in a source document?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="process.empty.source.toc.frag">&lt;xsl:param name="process.empty.source.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies that if an empty <tag>toc</tag> element is found in a
+source document, an automated TOC is generated at this point in the
+document.
+<note>
+  <para>Depending on what the value of the
+  <parameter>generate.toc</parameter> parameter is, setting this
+  parameter to <literal>1</literal> could result in generation of
+  duplicate automated TOCs. So the
+  <parameter>process.empty.source.toc</parameter> is primarily useful
+  as an "override": by placing an empty <tag>toc</tag> in your
+  document and setting this parameter to <literal>1</literal>, you can
+  force a TOC to be generated even if <tag>generate.toc</tag>
+  says not to.</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="process.source.toc">
+<refmeta>
+<refentrytitle>process.source.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>process.source.toc</refname>
+<refpurpose>Process a non-empty <tag>toc</tag> element if it occurs in a source document?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="process.source.toc.frag">&lt;xsl:param name="process.source.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies that the contents of a non-empty "hard-coded"
+<tag>toc</tag> element in a source document are processed to
+generate a TOC in output.
+<note>
+  <para>This parameter has no effect on automated generation of
+  TOCs. An automated TOC may still be generated along with the
+  "hard-coded" TOC. To suppress automated TOC generation, adjust the
+  value of the <parameter>generate.toc</parameter> paramameter.</para>
+
+  <para>The <tag>process.source.toc</tag> parameter also has
+  no effect if the <tag>toc</tag> element is empty; handling
+  for empty <tag>toc</tag> is controlled by the
+  <parameter>process.empty.source.toc</parameter> parameter.</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.toc">
+<refmeta>
+<refentrytitle>generate.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">table</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.toc</refname>
+<refpurpose>Control generation of ToCs and LoTs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="generate.toc.frag">
+
+&lt;xsl:param name="generate.toc"&gt;
+/appendix toc,title
+article/appendix  nop
+/article  toc,title
+book      toc,title,figure,table,example,equation
+/chapter  toc,title
+part      toc,title
+/preface  toc,title
+reference toc,title
+/sect1    toc
+/sect2    toc
+/sect3    toc
+/sect4    toc
+/sect5    toc
+/section  toc
+set       toc,title
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter has a structured value. It is a table of space-delimited
+path/value pairs. Each path identifies some element in the source document
+using a restricted subset of XPath (only the implicit child axis, no wildcards,
+no predicates). Paths can be either relative or absolute.</para>
+
+<para>When processing a particular element, the stylesheets consult this table to
+determine if a ToC (or LoT(s)) should be generated.</para>
+
+<para>For example, consider the entry:</para>
+
+<screen>book toc,figure</screen>
+
+<para>This indicates that whenever a <tag>book</tag> is formatted, a
+Table Of Contents and a List of Figures should be generated. Similarly,</para>
+
+<screen>/chapter toc</screen>
+
+<para>indicates that whenever a document <emphasis>that has a root
+of</emphasis> <tag>chapter</tag> is formatted, a Table of
+Contents should be generated. The entry <literal>chapter</literal> would match
+all chapters, but <literal>/chapter</literal> matches only <tag>chapter</tag>
+document elements.</para>
+
+<para>Generally, the longest match wins. So, for example, if you want to distinguish
+articles in books from articles in parts, you could use these two entries:</para>
+
+<screen>book/article toc,figure
+part/article toc</screen>
+
+<para>Note that an article in a part can never match a <literal>book/article</literal>,
+so if you want nothing to be generated for articles in parts, you can simply leave
+that rule out.</para>
+
+<para>If you want to leave the rule in, to make it explicit that you're turning
+something off, use the value <quote>nop</quote>. For example, the following
+entry disables ToCs and LoTs for articles:</para>
+
+<screen>article nop</screen>
+
+<para>Do not simply leave the word <quote>article</quote> in the file
+without a matching value. That'd be just begging the silly little
+path/value parser to get confused.</para>
+
+<para>Section ToCs are further controlled by the
+<parameter>generate.section.toc.level</parameter> parameter.
+For a given section level to have a ToC, it must have both an entry in 
+<parameter>generate.toc</parameter> and be within the range enabled by
+<parameter>generate.section.toc.level</parameter>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.index">
+<refmeta>
+<refentrytitle>generate.index</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.index</refname>
+<refpurpose>Do you want an index?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="generate.index.frag">&lt;xsl:param name="generate.index" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specify if an index should be generated. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="make.index.markup">
+<refmeta>
+<refentrytitle>make.index.markup</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.index.markup</refname>
+<refpurpose>Generate XML index markup in the index?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="make.index.markup.frag">
+&lt;xsl:param name="make.index.markup" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter enables a very neat trick for getting properly
+merged, collated back-of-the-book indexes. G. Ken Holman suggested
+this trick at Extreme Markup Languages 2002 and I'm indebted to him
+for it.</para>
+
+<para>Jeni Tennison's excellent code in
+<filename>autoidx.xsl</filename> does a great job of merging and
+sorting <tag>indexterm</tag>s in the document and building a
+back-of-the-book index. However, there's one thing that it cannot
+reasonably be expected to do: merge page numbers into ranges. (I would
+not have thought that it could collate and suppress duplicate page
+numbers, but in fact it appears to manage that task somehow.)</para>
+
+<para>Ken's trick is to produce a document in which the index at the
+back of the book is <quote>displayed</quote> in XML. Because the index
+is generated by the FO processor, all of the page numbers have been resolved.
+It's a bit hard to explain, but what it boils down to is that instead of having
+an index at the back of the book that looks like this:</para>
+
+<blockquote>
+<formalpara><info><title>A</title></info>
+<para>ap1, 1, 2, 3</para>
+</formalpara>
+</blockquote>
+
+<para>you get one that looks like this:</para>
+
+<blockquote>
+<programlisting>&lt;indexdiv&gt;A&lt;/indexdiv&gt;
+&lt;indexentry&gt;
+&lt;primaryie&gt;ap1&lt;/primaryie&gt;,
+&lt;phrase role="pageno"&gt;1&lt;/phrase&gt;,
+&lt;phrase role="pageno"&gt;2&lt;/phrase&gt;,
+&lt;phrase role="pageno"&gt;3&lt;/phrase&gt;
+&lt;/indexentry&gt;</programlisting>
+</blockquote>
+
+<para>After building a PDF file with this sort of odd-looking index, you can
+extract the text from the PDF file and the result is a proper index expressed in
+XML.</para>
+
+<para>Now you have data that's amenable to processing and a simple Perl script
+(such as <filename>fo/pdf2index</filename>) can
+merge page ranges and generate a proper index.</para>
+
+<para>Finally, reformat your original document using this literal index instead of
+an automatically generated one and <quote>bingo</quote>!</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.method">
+<refmeta>
+<refentrytitle>index.method</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">basic</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kosek</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kimber</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.method</refname>
+<refpurpose>Select method used to group index entries in an index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.method.frag">
+&lt;xsl:param name="index.method"&gt;basic&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter lets you select which method to use for sorting and grouping
+ index entries in an index.
+Indexes in Latin-based languages that have accented characters typically
+sort together accented words and unaccented words.
+Thus <quote>&#193;</quote> (U+00C1 LATIN CAPITAL LETTER A WITH ACUTE) would sort together
+with <quote>A</quote> (U+0041 LATIN CAPITAL LETTER A), so both would appear in the <quote>A</quote>
+section of the index.
+Languages using other alphabets (such as Russian,  which is written in the Cyrillic alphabet)
+and languages using ideographic chararacters (such as Japanese)
+require grouping specific to the languages and alphabets.
+</para>
+
+<para>The default indexing method is limited.
+It can group accented characters in Latin-based languages only.
+It cannot handle non-Latin alphabets or ideographic languages.
+The other indexing methods require extensions of one type or
+another, and do not work with
+all XSLT processors, which is why they are not used by default.</para>
+
+<para>The three choices for indexing method are:</para>
+<variablelist>
+<varlistentry>
+<term><literal>basic</literal></term>
+<listitem>
+<para>
+(default)  Sort and groups words based only on the Latin alphabet.
+Words with accented Latin letters will group and sort with
+their respective primary letter, but
+words in non-Latin alphabets will be
+put in the <quote>Symbols</quote> section of the index.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>kosek</literal></term>
+<listitem>
+<para>
+This method sorts and groups words based on letter groups configured in
+the DocBook locale file for the given language.
+See, for example, the French locale file <filename>common/fr.xml</filename>.
+This method requires that the XSLT processor
+supports the EXSLT extensions (most do).
+It also requires support for using 
+user-defined functions in xsl:key (xsltproc does not).
+</para>
+<para>This method is suitable for any language for which you can
+list all the individual characters that should appear
+in each letter group in an index.
+It is probably not practical to use it for ideographic languages
+such as Chinese that have hundreds or thousands of characters.
+</para>
+
+<para>To use the kosek method, you must:</para>
+
+<orderedlist>
+<listitem>
+<para>Use a processor that supports its extensions, such as
+Saxon 6 or Xalan (xsltproc and Saxon 8 do not).
+</para>
+</listitem>
+<listitem>
+<para>Set the index.method parameter's value to <quote>kosek</quote>.
+</para>
+</listitem>
+<listitem>
+<para>Import the appropriate index extensions stylesheet module
+<filename>fo/autoidx-kosek.xsl</filename> or 
+<filename>html/autoidx-kosek.xsl</filename> into your
+customization.
+</para>
+</listitem>
+</orderedlist>
+
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>kimber</literal></term>
+<listitem>
+<para>
+This method uses extensions to the Saxon processor to implement
+sophisticated indexing processes. It uses its own 
+configuration file, which can include information for any number of
+languages. Each language's configuration can group
+words using one of two processes. In the
+enumerated process similar to that used in the kosek method,
+you indicate the groupings character-by-character.
+In the between-key process, you specify the
+break-points in the sort order that should start a new group.
+The latter configuration is useful for ideographic languages
+such as Chinese, Japanese, and Korean.
+You can also define your own collation algorithms and how you
+want mixed Latin-alphabet words sorted.</para>
+<itemizedlist>
+<listitem>
+<para>For a whitepaper describing the extensions, see:
+<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.innodata-isogen.com/knowledge_center/white_papers/back_of_book_for_xsl_fo.pdf">http://www.innodata-isogen.com/knowledge_center/white_papers/back_of_book_for_xsl_fo.pdf</link>.
+</para>
+</listitem>
+<listitem>
+<para>To download the extension library, see
+<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport">http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport</link>.
+</para>
+</listitem>
+</itemizedlist>
+
+<para>To use the kimber method, you must:</para>
+
+<orderedlist>
+<listitem>
+<para>Use Saxon (version 6 or 8) as your XSLT processor.
+</para>
+</listitem>
+<listitem>
+<para>Install and configure the Innodata Isogen library, using
+the documentation that comes with it.
+</para>
+</listitem>
+<listitem>
+<para>Set the index.method parameter's value to <quote>kimber</quote>.
+</para>
+</listitem>
+<listitem>
+<para>Import the appropriate index extensions stylesheet module
+<filename>fo/autoidx-kimber.xsl</filename> or 
+<filename>html/autoidx-kimber.xsl</filename> into your
+customization.
+</para>
+</listitem>
+</orderedlist>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.on.type">
+<refmeta>
+<refentrytitle>index.on.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.on.type</refname>
+<refpurpose>Select indexterms based on <tag class="attribute">type</tag>
+attribute value</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.on.type.frag">
+&lt;xsl:param name="index.on.type" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, 
+then an <tag>index</tag> element that has a
+<tag class="attribute">type</tag> attribute
+value will contain only those <tag>indexterm</tag>
+elements with a matching <tag class="attribute">type</tag> attribute value.
+If an <tag>index</tag> has no <tag class="attribute">type</tag>
+attribute or it is blank, then the index will contain
+all <tag>indexterm</tag>s in the current scope.
+</para>
+
+<para>
+If <literal>index.on.type</literal> is zero, then the
+<tag class="attribute">type</tag> attribute has no effect
+on selecting indexterms for an index.
+</para>
+
+<para>For those using DocBook version 4.2 or earlier,
+the <tag class="attribute">type</tag> attribute is not available
+for index terms.  However, you can achieve the same
+effect by using the <tag class="attribute">role</tag> attribute
+in the same manner on <tag>indexterm</tag>
+and <tag>index</tag>, and setting the stylesheet parameter 
+<parameter>index.on.role</parameter> to a nonzero value.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.on.role">
+<refmeta>
+<refentrytitle>index.on.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.on.role</refname>
+<refpurpose>Select indexterms based on <tag class="attribute">role</tag> value</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.on.role.frag">
+&lt;xsl:param name="index.on.role" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, 
+then an <tag>index</tag> element that has a
+<tag class="attribute">role</tag> attribute
+value will contain only those <tag>indexterm</tag>
+elements with a matching role value.
+If an <tag>index</tag> has no <tag class="attribute">role</tag>
+attribute or it is blank, then the index will contain
+all <tag>indexterm</tag>s in the current scope.
+</para>
+<para>
+If <literal>index.on.role</literal> is zero, then the
+<tag class="attribute">role</tag> attribute has no effect
+on selecting indexterms for an index.
+</para>
+
+<para>If you are using DocBook version 4.3 or later, you should
+use the <tag class="attribute">type</tag> attribute instead of <tag class="attribute">role</tag>
+on <tag>indexterm</tag> and <tag>index</tag>,
+and set the <parameter>index.on.type</parameter> to a nonzero
+value.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.preferred.page.properties">
+<refmeta>
+<refentrytitle>index.preferred.page.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.preferred.page.properties</refname>
+<refpurpose>Properties used to emphasize page number references for
+significant index terms</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.preferred.page.properties.frag">
+&lt;xsl:attribute-set name="index.preferred.page.properties"&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>Properties used to emphasize page number references for
+significant index terms (<tag class="attribute">significance</tag>=<tag class="attvalue">preferred</tag>). Currently works only with
+XEP.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.entry.properties">
+<refmeta>
+<refentrytitle>index.entry.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.entry.properties</refname>
+<refpurpose>Properties applied to the formatted entries
+in an index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.entry.properties.frag">
+&lt;xsl:attribute-set name="index.entry.properties"&gt;
+  &lt;xsl:attribute name="start-indent"&gt;0pt&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is applied to the block containing
+the entries in a letter division in an index.  It can be used to set the
+font-size, font-family, and other inheritable properties that will be
+applied to all index entries.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.div.title.properties">
+<refmeta>
+<refentrytitle>index.div.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.div.title.properties</refname>
+<refpurpose>Properties associated with the letter headings in an
+index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.div.title.properties.frag">
+&lt;xsl:attribute-set name="index.div.title.properties"&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.start}"&gt;0pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-size"&gt;14.4pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-family"&gt;&lt;xsl:value-of select="$title.fontset"&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 name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;&lt;xsl:value-of select="concat($body.font.master,'pt')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;&lt;xsl:value-of select="concat($body.font.master,'pt * 0.8')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;&lt;xsl:value-of select="concat($body.font.master,'pt * 1.2')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="start-indent"&gt;0pt&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is used on the letter headings that separate
+the divisions in an index.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.number.separator">
+<refmeta>
+<refentrytitle>index.number.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.number.separator</refname>
+<refpurpose>Override for punctuation separating page numbers in index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.number.separator.frag">
+&lt;xsl:param name="index.number.separator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you to override the text to insert between
+page references in a formatted index entry.  Typically 
+that would be a comma and a space.
+</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'number-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+override the gentext with the content of this parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+</para>
+
+<para>In HTML index output, section title references are used instead of
+page number references.  This punctuation appears between
+such section titles in an HTML index.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.range.separator">
+<refmeta>
+<refentrytitle>index.range.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.range.separator</refname>
+<refpurpose>Override for punctuation separating the two numbers
+in a page range in index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.range.separator.frag">
+&lt;xsl:param name="index.range.separator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you
+to override the text to insert between
+the two numbers of a page range in an index.
+This parameter is only used by those XSL-FO processors
+that support an extension for generating such page ranges
+(such as XEP).</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'range-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+override the gentext with the content of this parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+</para>
+
+<para>In HTML index output, section title references are used instead of
+page number references. So there are no page ranges
+and this parameter has no effect.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.term.separator">
+<refmeta>
+<refentrytitle>index.term.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.term.separator</refname>
+<refpurpose>Override for punctuation separating an index term 
+from its list of page references in an index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.term.separator.frag">
+&lt;xsl:param name="index.term.separator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you to override
+the text to insert between
+the end of an index term and its list of page references.
+Typically that might be a comma and a space.
+</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'term-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+fill in the content for this normally empty 
+override parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+For fo output, it could be an <tag>fo:leader</tag>
+element to provide space of a specific length, or a dot leader.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="xep.index.item.properties">
+<refmeta>
+<refentrytitle>xep.index.item.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xep.index.item.properties</refname>
+<refpurpose>Properties associated with XEP index-items</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xep.index.item.properties.frag">
+&lt;xsl:attribute-set name="xep.index.item.properties" use-attribute-sets="index.page.number.properties"&gt;
+  &lt;xsl:attribute name="merge-subsequent-page-numbers"&gt;true&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="link-back"&gt;true&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties associated with XEP index-items, which generate
+page numbers in an index processed by XEP. For more info see
+the XEP documentation section "Indexes" in
+<uri xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.renderx.com/reference.html#Indexes">http://www.renderx.com/reference.html#Indexes</uri>.</para>
+
+<para>This attribute-set also adds by default any properties from the
+<tag class="attribute">index.page.number.properties</tag>
+attribute-set.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.section.depth">
+<refmeta>
+<refentrytitle>toc.section.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.section.depth</refname>
+<refpurpose>How deep should recursive <tag>section</tag>s appear
+in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.section.depth.frag">&lt;xsl:param name="toc.section.depth"&gt;2&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the depth to which recursive sections should appear in the
+TOC.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.max.depth">
+<refmeta>
+<refentrytitle>toc.max.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.max.depth</refname>
+<refpurpose>How many levels should be created for each TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.max.depth.frag">&lt;xsl:param name="toc.max.depth"&gt;8&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximal depth of TOC on all levels.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.indent.width">
+<refmeta>
+<refentrytitle>toc.indent.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">float</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.indent.width</refname>
+<refpurpose>Amount of indentation for TOC entries</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.indent.width.frag">
+&lt;xsl:param name="toc.indent.width"&gt;24&lt;/xsl:param&gt;
+&lt;!-- inconsistant point specification? --&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies, in points, the distance by which each level of the
+TOC is indented from its parent.</para>
+
+<para>This value is expressed in points, without
+a unit (in other words, it is a bare number). Using a bare number allows the stylesheet
+to perform calculations that would otherwise have to be performed by the FO processor
+because not all processors support expressions.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.line.properties">
+<refmeta>
+<refentrytitle>toc.line.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.line.properties</refname>
+<refpurpose>Properties for lines in ToCs and LoTs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.line.properties.frag">
+&lt;xsl:attribute-set name="toc.line.properties"&gt;
+  &lt;xsl:attribute name="text-align-last"&gt;justify&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="end-indent"&gt;&lt;xsl:value-of select="concat($toc.indent.width, 'pt')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="last-line-end-indent"&gt;&lt;xsl:value-of select="concat('-', $toc.indent.width, 'pt')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties which are applied to every line in ToC (or LoT). You can
+modify them in order to change appearance of all, or some lines. For
+example, in order to make lines for chapters bold, specify the
+following in your customization layer:</para>
+
+<programlisting>&lt;xsl:attribute-set name="toc.line.properties"&gt;
+  &lt;xsl:attribute name="font-weight"&gt;
+   &lt;xsl:choose&gt;
+    &lt;xsl:when test="self::chapter"&gt;bold&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;normal&lt;/xsl:otherwise&gt;
+   &lt;/xsl:choose&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.margin.properties">
+<refmeta>
+<refentrytitle>toc.margin.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.margin.properties</refname>
+<refpurpose>Margin properties used on Tables of Contents</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.margin.properties.frag">
+&lt;xsl:attribute-set name="toc.margin.properties"&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>This attribute set is used on Tables of Contents. These attributes are set
+on the wrapper that surrounds the ToC block, not on each individual lines.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="bridgehead.in.toc">
+<refmeta>
+<refentrytitle>bridgehead.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bridgehead.in.toc</refname>
+<refpurpose>Should bridgehead elements appear in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="bridgehead.in.toc.frag">&lt;xsl:param name="bridgehead.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>bridgehead</tag>s appear in the TOC. Note that
+this option is not fully supported and may be removed in a future
+version of the stylesheets.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="simplesect.in.toc">
+<refmeta>
+<refentrytitle>simplesect.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>simplesect.in.toc</refname>
+<refpurpose>Should <tag>simplesect</tag> elements appear in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="simplesect.in.toc.frag">&lt;xsl:param name="simplesect.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>simplesect</tag>s will be included in the TOC.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.section.toc.level">
+<refmeta>
+<refentrytitle>generate.section.toc.level</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.section.toc.level</refname>
+<refpurpose>Control depth of TOC generation in sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="generate.section.toc.level.frag">
+&lt;xsl:param name="generate.section.toc.level" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>generate.section.toc.level</parameter> parameter
+controls the depth of <tag>section</tag> in which TOCs will be generated. Note
+that this is related to, but not the same as
+<parameter>toc.section.depth</parameter>, which controls the depth to
+which TOC entries will be generated in a given TOC.</para>
+<para>If, for example, <parameter>generate.section.toc.level</parameter>
+is <literal>3</literal>, TOCs will be generated in first, second, and third
+level sections, but not in fourth level sections.
+</para>
+
+</refsection>
+</refentry>
+
+
+
+
+</reference>
+<reference xml:id="fo_ext"><title>Processor Extensions</title>
+<refentry version="5.0" xml:id="arbortext.extensions">
+<refmeta>
+<refentrytitle>arbortext.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>arbortext.extensions</refname>
+<refpurpose>Enable Arbortext extensions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="arbortext.extensions.frag">&lt;xsl:param name="arbortext.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.arbortext.com/">Arbortext</link>
+extensions will be used.
+</para>
+<para>This parameter can also affect which graphics file formats
+are supported</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="axf.extensions">
+<refmeta>
+<refentrytitle>axf.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>axf.extensions</refname>
+<refpurpose>Enable XSL Formatter extensions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="axf.extensions.frag">
+&lt;xsl:param name="axf.extensions" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.antennahouse.com/">XSL Formatter</link>
+extensions will be used. XSL Formatter extensions consists of PDF bookmarks,
+document information and better index processing.</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="fop.extensions">
+<refmeta>
+<refentrytitle>fop.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>fop.extensions</refname>
+<refpurpose>Enable extensions for FOP version 0.20.5 and earlier</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="fop.extensions.frag">&lt;xsl:param name="fop.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extensions intended for
+<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://xml.apache.org/fop/">FOP</link>
+version 0.20.5 and earlier will be used.
+At present, this consists of PDF bookmarks.
+</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported.</para>
+
+<para>If you are using a version of FOP beyond
+version 0.20.5, then use the <parameter>fop1.extensions</parameter> parameter
+instead.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="fop1.extensions">
+<refmeta>
+<refentrytitle>fop1.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>fop1.extensions</refname>
+<refpurpose>Enable extensions for FOP version 0.90 and later</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="fop1.extensions.frag">&lt;xsl:param name="fop1.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extensions for 
+<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://xml.apache.org/fop/">FOP</link>
+version 0.90 and later will be used.
+</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported.</para>
+
+<para>The original <parameter>fop.extensions</parameter> parameter
+should still be used for FOP version 0.20.5 and earlier.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="passivetex.extensions">
+<refmeta>
+<refentrytitle>passivetex.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>passivetex.extensions</refname>
+<refpurpose>Enable PassiveTeX extensions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="passivetex.extensions.frag">&lt;xsl:param name="passivetex.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://projects.oucs.ox.ac.uk/passivetex/">PassiveTeX</link>
+extensions will be used. At present, this consists of PDF bookmarks
+and sorted index terms.
+</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported</para>
+
+<note>
+  <para>PassiveTeX is incomplete and development has ceased. In most cases, 
+another XSL-FO engine is probably a better choice.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="tex.math.in.alt">
+<refmeta>
+<refentrytitle>tex.math.in.alt</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">plain</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">latex</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tex.math.in.alt</refname>
+<refpurpose>TeX notation used for equations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="tex.math.in.alt.frag">
+&lt;xsl:param name="tex.math.in.alt"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want type math directly in TeX notation in equations,
+this parameter specifies notation used. Currently are supported two
+values -- <literal>plain</literal> and <literal>latex</literal>. Empty
+value means that you are not using TeX math at all.</para>
+
+<para>Preferred way for including TeX alternative of math is inside of
+<tag>textobject</tag> element. Eg.:</para>
+
+<programlisting>&lt;inlineequation&gt;
+&lt;inlinemediaobject&gt;
+&lt;imageobject&gt;
+&lt;imagedata fileref="eq1.gif"/&gt;
+&lt;/imageobject&gt;
+&lt;textobject&gt;&lt;phrase&gt;E=mc squared&lt;/phrase&gt;&lt;/textobject&gt;
+&lt;textobject role="tex"&gt;&lt;phrase&gt;E=mc^2&lt;/phrase&gt;&lt;/textobject&gt;
+&lt;/inlinemediaobject&gt;
+&lt;/inlineequation&gt;</programlisting>
+
+<para>If you are using <tag>graphic</tag> element, you can
+store TeX inside <tag>alt</tag> element:</para>
+
+<programlisting>&lt;inlineequation&gt;
+&lt;alt role="tex"&gt;a^2+b^2=c^2&lt;/alt&gt;
+&lt;graphic fileref="a2b2c2.gif"/&gt;  
+&lt;/inlineequation&gt;</programlisting>
+
+<para>If you want use this feature, you should process your FO with
+PassiveTeX, which only supports TeX math notation. When calling
+stylsheet, don't forget to specify also
+passivetex.extensions=1.</para>
+
+<para>If you want equations in HTML, just process generated file
+<filename>tex-math-equations.tex</filename> by TeX or LaTeX. Then run
+dvi2bitmap program on result DVI file. You will get images for
+equations in your document.</para>
+
+<warning>
+  <para>This feature is useful for print/PDF output only if you
+    use the obsolete and now unsupported PassiveTeX XSL-FO
+    engine.</para>
+</warning>
+
+</refsection>
+
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>tex.math.delims</parameter>,
+    <parameter>passivetex.extensions</parameter>,
+    <parameter>tex.math.file</parameter></para>
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" xml:id="tex.math.delims">
+<refmeta>
+<refentrytitle>tex.math.delims</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tex.math.delims</refname>
+<refpurpose>Should equations output for processing by TeX be
+surrounded by math mode delimiters?</refpurpose>
+</refnamediv> 
+
+<refsynopsisdiv>
+<programlisting xml:id="tex.math.delims.frag">
+&lt;xsl:param name="tex.math.delims" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>For compatibility with DSSSL based DBTeXMath from Allin Cottrell
+you should set this parameter to 0.</para>
+
+<warning>
+  <para>This feature is useful for print/PDF output only if you
+  use the obsolete and now unsupported PassiveTeX XSL-FO
+  engine.</para>
+</warning>
+
+</refsection>
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>tex.math.in.alt</parameter>,
+    <parameter>passivetex.extensions</parameter></para>
+</refsection>
+
+<refsection><info><title>See Also</title></info>
+  <para>You can also use the <tag class="xmlpi">dbtex delims</tag> processing
+    instruction to control whether delimiters are output.</para>
+</refsection>
+
+
+</refentry>
+
+<refentry version="5.0" xml:id="xep.extensions">
+<refmeta>
+<refentrytitle>xep.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xep.extensions</refname>
+<refpurpose>Enable XEP extensions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xep.extensions.frag">&lt;xsl:param name="xep.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.renderx.com/">XEP</link>
+extensions will be used. XEP extensions consists of PDF bookmarks,
+document information and better index processing.
+</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported</para>
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="dbk_ext"><title>Stylesheet Extensions</title>
+<refentry version="5.0" xml:id="linenumbering.everyNth">
+<refmeta>
+<refentrytitle>linenumbering.everyNth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.everyNth</refname>
+<refpurpose>Indicate which lines should be numbered</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="linenumbering.everyNth.frag">
+&lt;xsl:param name="linenumbering.everyNth"&gt;5&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If line numbering is enabled, everyNth line will be
+numbered. Note that numbering is one based, not zero based.
+</para>
+<para>See also <parameter>linenumbering.extension</parameter>,
+<parameter>linenumbering.separator</parameter>,
+<parameter>linenumbering.width</parameter> and
+<parameter>use.extensions</parameter></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="linenumbering.extension">
+<refmeta>
+<refentrytitle>linenumbering.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.extension</refname>
+<refpurpose>Enable the line numbering extension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="linenumbering.extension.frag">
+&lt;xsl:param name="linenumbering.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, verbatim environments (<tag>address</tag>, <tag>literallayout</tag>,
+<tag>programlisting</tag>, <tag>screen</tag>, <tag>synopsis</tag>) that specify line numbering will
+have line numbers.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="linenumbering.separator">
+<refmeta>
+<refentrytitle>linenumbering.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.separator</refname>
+<refpurpose>Specify a separator between line numbers and lines</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="linenumbering.separator.frag">
+&lt;xsl:param name="linenumbering.separator"&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The separator is inserted between line numbers and lines in the
+verbatim environment. The default value is a single white space.
+ Note the interaction with <parameter>linenumbering.width</parameter>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="linenumbering.width">
+<refmeta>
+<refentrytitle>linenumbering.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.width</refname>
+<refpurpose>Indicates the width of line numbers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="linenumbering.width.frag">
+&lt;xsl:param name="linenumbering.width"&gt;3&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If line numbering is enabled, line numbers will appear right
+justified in a field "width" characters wide.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="tablecolumns.extension">
+<refmeta>
+<refentrytitle>tablecolumns.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tablecolumns.extension</refname>
+<refpurpose>Enable the table columns extension function</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="tablecolumns.extension.frag">
+&lt;xsl:param name="tablecolumns.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The table columns extension function adjusts the widths of table
+columns in the HTML result to more accurately reflect the specifications
+in the CALS table.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="textinsert.extension">
+  <refmeta>
+    <refentrytitle>textinsert.extension</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>textinsert.extension</refname>
+    <refpurpose>Enables the textinsert extension element</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <programlisting xml:id="textinsert.extension.frag">
+  &lt;xsl:param name="textinsert.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+  </refsynopsisdiv>
+  <refsection><info><title>Description</title></info>
+    <para>The textinsert extension element inserts the contents of
+      a file into the result tree (as text).</para>
+    <note>
+      <para>To use the textinsert extension element, you must use
+        either Saxon or Xalan as your XSLT processor (it doesn&#8217;t
+        work with xsltproc), along with either the DocBook Saxon
+        extensions or DocBook Xalan extensions (for more
+        information about those extensions, see <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="InstallingAProcessor.html#SaxonExtensions">DocBook Saxon Extensions</link> and <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="InstallingAProcessor.html#XalanExtensions">DocBook Xalan Extensions</link>), and you must set both
+        the <parameter>use.extensions</parameter> and
+        <parameter>textinsert.extension</parameter> parameters to
+        <literal>1</literal>.</para>
+      <para>As an alternative to using the textinsert element,
+        consider using an Xinclude element with the
+        <literal>parse="text"</literal> attribute and value
+        specified, as detailed in <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="ExternalCode.html#XIncludeCode">Using XInclude for text inclusions</link>.</para>
+    </note>
+  </refsection>
+  <refsection><info><title>See Also</title></info>
+    <para>You can also use the <tag class="xmlpi">dbhtml-include&#160;href</tag> processing
+      instruction to insert external files &#8212; both files containing
+      plain text and files with markup content (including HTML
+      content).</para>
+  </refsection>
+  <refsection><info><title>More information</title></info>
+    <para>For how-to documentation on inserting contents of
+      external code files and other text files into output, see
+      <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="ExternalCode.html">External code files</link>.</para>
+    <para>For guidelines on inserting contents of
+      HTML files into output, see <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="InsertExtHtml.html">Inserting external HTML code</link>.</para>
+  </refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="textdata.default.encoding">
+<refmeta>
+<refentrytitle>textdata.default.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>textdata.default.encoding</refname>
+<refpurpose>Default encoding of external text files which are included
+using textdata element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="textdata.default.encoding.frag">
+&lt;xsl:param name="textdata.default.encoding"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the encoding of any external text files included using
+<tag>textdata</tag> element. This value is used only when you do
+not specify encoding by the appropriate attribute 
+directly on textdata. An empty string is interpreted as the system
+default encoding.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="use.extensions">
+<refmeta>
+<refentrytitle>use.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.extensions</refname>
+<refpurpose>Enable extensions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="use.extensions.frag">
+&lt;xsl:param name="use.extensions" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extensions may be used. Each extension is
+further controlled by its own parameter. But if
+<parameter>use.extensions</parameter> is zero, no extensions will
+be used.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="labels"><title>Automatic labelling</title>
+<refentry version="5.0" xml:id="appendix.autolabel">
+<refmeta>
+<refentrytitle>appendix.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>appendix.autolabel</refname>
+<refpurpose>Specifies the labeling format for Appendix titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="appendix.autolabel.frag">
+&lt;xsl:param name="appendix.autolabel"&gt;A&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then appendices will be numbered using the
+parameter value as the number format if the value matches one of the
+following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (upperalpha).
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chapter.autolabel">
+<refmeta>
+<refentrytitle>chapter.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chapter.autolabel</refname>
+<refpurpose>Specifies the labeling format for Chapter titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="chapter.autolabel.frag">
+&lt;xsl:param name="chapter.autolabel" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then chapters will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (arabic).
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="part.autolabel">
+<refmeta>
+<refentrytitle>part.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>part.autolabel</refname>
+<refpurpose>Specifies the labeling format for Part titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="part.autolabel.frag">
+&lt;xsl:param name="part.autolabel"&gt;I&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then parts will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (upperroman).
+</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="reference.autolabel">
+<refmeta>
+<refentrytitle>reference.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>reference.autolabel</refname>
+<refpurpose>Specifies the labeling format for Reference titles</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="reference.autolabel.frag">
+  &lt;xsl:param name="reference.autolabel"&gt;I&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, references will be numbered using the parameter
+  value as the number format if the value matches one of the
+  following:
+</para>
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+<para>Any non-zero value other than the above will generate
+the default number format (upperroman).
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="preface.autolabel">
+<refmeta>
+<refentrytitle>preface.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>preface.autolabel</refname>
+<refpurpose>Specifices the labeling format for Preface titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="preface.autolabel.frag">&lt;xsl:param name="preface.autolabel" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero then prefaces will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (arabic).
+</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.autolabel">
+<refmeta>
+<refentrytitle>section.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.autolabel</refname>
+<refpurpose>Are sections enumerated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.autolabel.frag">&lt;xsl:param name="section.autolabel" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), unlabeled sections will be enumerated.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.autolabel.max.depth">
+<refmeta>
+<refentrytitle>section.autolabel.max.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.autolabel.max.depth</refname>
+<refpurpose>The deepest level of sections that are numbered.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.autolabel.max.depth.frag">
+&lt;xsl:param name="section.autolabel.max.depth"&gt;8&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When section numbering is turned on by the
+<parameter>section.autolabel</parameter> parameter, then this
+parameter controls the depth of <tag>section</tag> nesting that is
+numbered.  Sections nested to a level deeper than this value will not
+be numbered.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.label.includes.component.label">
+<refmeta>
+<refentrytitle>section.label.includes.component.label</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.label.includes.component.label</refname>
+<refpurpose>Do section labels include the component label?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.label.includes.component.label.frag">&lt;xsl:param name="section.label.includes.component.label" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, section labels are prefixed with the label of the
+component that contains them.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="label.from.part">
+<refmeta>
+<refentrytitle>label.from.part</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>label.from.part</refname>
+<refpurpose>Renumber components in each part?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="label.from.part.frag">
+&lt;xsl:param name="label.from.part" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>label.from.part</parameter> is non-zero, then
+  numbering of components &#8212; <tag>preface</tag>,
+  <tag>chapter</tag>, <tag>appendix</tag>, and
+  <tag>reference</tag> (when <tag>reference</tag> occurs at the
+  component level) &#8212; is re-started within each
+  <tag>part</tag>.</para>
+<para>If <parameter>label.from.part</parameter> is zero (the
+  default), numbering of components is <emphasis>not</emphasis>
+  re-started within each <tag>part</tag>; instead, components are
+  numbered sequentially throughout each <tag>book</tag>,
+  regardless of whether or not they occur within <tag>part</tag>
+  instances.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="component.label.includes.part.label">
+<refmeta>
+<refentrytitle>component.label.includes.part.label</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>component.label.includes.part.label</refname>
+<refpurpose>Do component labels include the part label?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="component.label.includes.part.label.frag">&lt;xsl:param name="component.label.includes.part.label" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, number labels for <tag>chapter</tag>,
+<tag>appendix</tag>, and other component elements are prefixed with
+the label of the part element that contains them.  So you might see
+Chapter II.3 instead of Chapter 3.  Also, the labels for formal
+elements such as <tag>table</tag> and <tag>figure</tag> will include
+the part label.  If there is no part element container, then no prefix
+is generated.
+</para>
+<para>
+This feature is most useful when the
+<parameter>label.from.part</parameter> parameter is turned on.
+In that case, there would be more than one <tag>chapter</tag>
+<quote>1</quote>, and the extra part label prefix will identify
+each chapter unambiguously.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="xslt"><title>XSLT Processing</title>
+<refentry version="5.0" xml:id="rootid">
+<refmeta>
+<refentrytitle>rootid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>rootid</refname>
+<refpurpose>Specify the root element to format</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="rootid.frag">
+&lt;xsl:param name="rootid"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>rootid</parameter> is not empty, it must be the
+value of an ID that occurs in the document being formatted. The entire
+document will be loaded and parsed, but formatting will begin at the
+element identified, rather than at the root. For example, this allows
+you to process only <tag>chapter</tag> 4 of a <tag>book</tag>.</para>
+<para>Because the entire document is available to the processor, automatic
+numbering, cross references, and other dependencies are correctly
+resolved.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="meta"><title>Meta/*Info</title>
+<refentry version="5.0" xml:id="make.single.year.ranges">
+<refmeta>
+<refentrytitle>make.single.year.ranges</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.single.year.ranges</refname>
+<refpurpose>Print single-year ranges (e.g., 1998-1999)</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="make.single.year.ranges.frag">
+&lt;xsl:param name="make.single.year.ranges" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, year ranges that span a single year will be printed
+in range notation (1998-1999) instead of discrete notation
+(1998, 1999).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="make.year.ranges">
+<refmeta>
+<refentrytitle>make.year.ranges</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.year.ranges</refname>
+<refpurpose>Collate copyright years into ranges?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="make.year.ranges.frag">&lt;xsl:param name="make.year.ranges" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, multiple copyright <tag>year</tag> elements will be
+collated into ranges.
+This works only if each year number is put into a separate
+year element.  The copyright element permits multiple
+year elements. If a year element contains a dash or
+a comma, then that year element will not be merged into
+any range.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="author.othername.in.middle">
+<refmeta>
+<refentrytitle>author.othername.in.middle</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>author.othername.in.middle</refname>
+<refpurpose>Is <tag>othername</tag> in <tag>author</tag> a
+middle name?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="author.othername.in.middle.frag">
+&lt;xsl:param name="author.othername.in.middle" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the <tag>othername</tag> of an <tag>author</tag>
+appears between the <tag>firstname</tag> and
+<tag>surname</tag>.  Otherwise, <tag>othername</tag>
+is suppressed.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="refentry"><title>Reference Pages</title>
+<refentry version="5.0" xml:id="funcsynopsis.decoration">
+<refmeta>
+<refentrytitle>funcsynopsis.decoration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>funcsynopsis.decoration</refname>
+<refpurpose>Decorate elements of a <tag>funcsynopsis</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="funcsynopsis.decoration.frag">
+&lt;xsl:param name="funcsynopsis.decoration" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, elements of the <tag>funcsynopsis</tag> will be
+decorated (e.g. rendered as bold or italic text). The decoration is controlled by
+templates that can be redefined in a customization layer.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="funcsynopsis.style">
+<refmeta>
+<refentrytitle>funcsynopsis.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ansi</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kr</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>funcsynopsis.style</refname>
+<refpurpose>What style of <tag>funcsynopsis</tag> should be generated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="funcsynopsis.style.frag">&lt;xsl:param name="funcsynopsis.style"&gt;kr&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>funcsynopsis.style</parameter> is <literal>ansi</literal>,
+ANSI-style function synopses are generated for a
+<tag>funcsynopsis</tag>, otherwise K&amp;R-style
+function synopses are generated.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="function.parens">
+<refmeta>
+<refentrytitle>function.parens</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>function.parens</refname>
+<refpurpose>Generate parens after a function?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="function.parens.frag">
+&lt;xsl:param name="function.parens" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the formatting of a <tag>function</tag> element
+will include generated parentheses.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.generate.name">
+<refmeta>
+<refentrytitle>refentry.generate.name</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.generate.name</refname>
+<refpurpose>Output NAME header before <tag>refname</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.generate.name.frag">
+&lt;xsl:param name="refentry.generate.name" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a "NAME" section title is output before the list
+of <tag>refname</tag>s. This parameter and
+<parameter>refentry.generate.title</parameter> are mutually
+exclusive. This means that if you change this parameter to zero, you
+should set <parameter>refentry.generate.title</parameter> to non-zero unless
+you want get quite strange output.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.generate.title">
+<refmeta>
+<refentrytitle>refentry.generate.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.generate.title</refname>
+<refpurpose>Output title before <tag>refname</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.generate.title.frag">
+&lt;xsl:param name="refentry.generate.title" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the reference page title or first name is
+output before the list of <tag>refname</tag>s. This parameter and
+<parameter>refentry.generate.name</parameter> are mutually exclusive.
+This means that if you change this parameter to non-zero, you
+should set <parameter>refentry.generate.name</parameter> to zero unless
+you want get quite strange output.</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.pagebreak">
+<refmeta>
+<refentrytitle>refentry.pagebreak</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.pagebreak</refname>
+<refpurpose>Start each refentry on a new page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.pagebreak.frag">&lt;xsl:param name="refentry.pagebreak" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero (the default), each <tag>refentry</tag>
+element will start on a new page.  If zero, a page
+break will not be generated between <tag>refentry</tag> elements.
+The exception is when the <tag>refentry</tag> elements are children of
+a <tag>part</tag> element, in which case the page breaks are always
+retained.  That is because a <tag>part</tag> element does not generate
+a page-sequence for its children, so each <tag>refentry</tag> must
+start its own page-sequence.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.title.properties">
+<refmeta>
+<refentrytitle>refentry.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.title.properties</refname>
+<refpurpose>Title properties for a refentry title</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.title.properties.frag">
+&lt;xsl:attribute-set name="refentry.title.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$title.fontset"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-size"&gt;18pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1.0em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.4em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;0.6em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="start-indent"&gt;&lt;xsl:value-of select="$title.margin.left"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Formatting properties applied to the title generated for the
+<tag>refnamediv</tag> part of output for
+<tag>refentry</tag> when the value of the
+<parameter>refentry.generate.title</parameter> parameter is
+non-zero. The font size is supplied by the appropriate <parameter>section.level<replaceable>X</replaceable>.title.properties</parameter>
+attribute-set, computed from the location of the
+<tag>refentry</tag> in the section hierarchy.</para>
+
+<note>
+  <para>This parameter has no effect on the the title generated for
+  the <tag>refnamediv</tag> part of output for
+  <tag>refentry</tag> when the value of the
+  <parameter>refentry.generate.name</parameter> parameter is
+  non-zero. By default, that title is formatted with the same
+  properties as the titles for all other first-level children of
+  <tag>refentry</tag>.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.xref.manvolnum">
+<refmeta>
+<refentrytitle>refentry.xref.manvolnum</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.xref.manvolnum</refname>
+<refpurpose>Output <tag>manvolnum</tag> as part of 
+<tag>refentry</tag> cross-reference?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.xref.manvolnum.frag">
+&lt;xsl:param name="refentry.xref.manvolnum" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>if non-zero, the <tag>manvolnum</tag> is used when cross-referencing
+<tag>refentry</tag>s, either with <tag>xref</tag>
+or <tag>citerefentry</tag>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refclass.suppress">
+<refmeta>
+<refentrytitle>refclass.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refclass.suppress</refname>
+<refpurpose>Suppress display of refclass contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refclass.suppress.frag">
+&lt;xsl:param name="refclass.suppress" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>refclass.suppress</parameter> is
+non-zero, then display of <tag>refclass</tag> contents is
+suppressed in output.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="tables"><title>Tables</title>
+<refentry version="5.0" xml:id="default.table.width">
+<refmeta>
+<refentrytitle>default.table.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.table.width</refname>
+<refpurpose>The default width of tables</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="default.table.width.frag">
+&lt;xsl:param name="default.table.width"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, this value will be used for the
+<literal>width</literal> attribute on <tag>table</tag>s that do not specify an
+alternate width (with the <tag class="xmlpi">dbhtml table-width</tag> or 
+<tag class="xmlpi">dbfo table-width</tag> processing instruction).</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="nominal.table.width">
+<refmeta>
+<refentrytitle>nominal.table.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nominal.table.width</refname>
+<refpurpose>The (absolute) nominal width of tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="nominal.table.width.frag">
+&lt;xsl:param name="nominal.table.width"&gt;6in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In order to convert CALS column widths into HTML column widths, it
+is sometimes necessary to have an absolute table width to use for conversion
+of mixed absolute and relative widths. This value must be an absolute
+length (not a percentage).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="default.table.frame">
+<refmeta>
+<refentrytitle>default.table.frame</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.table.frame</refname>
+<refpurpose>The default framing of tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="default.table.frame.frag">
+&lt;xsl:param name="default.table.frame"&gt;all&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This value will be used when there is no frame attribute on the
+table. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="default.table.rules">
+<refmeta>
+<refentrytitle>default.table.rules</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.table.rules</refname>
+<refpurpose>The default column and row rules for tables using HTML markup</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="default.table.rules.frag">
+&lt;xsl:param name="default.table.rules"&gt;none&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Tables using HTML markup elements can use an attribute
+named <tag class="attribute">rules</tag> on the <tag>table</tag> or
+<tag>informaltable</tag> element
+to specify whether column and row border rules should be 
+displayed. This parameter lets you specify a global default
+style for all HTML tables that don't otherwise have
+that attribute.</para>
+<para>These are the supported values:</para>
+
+<variablelist>
+<varlistentry><term>all</term>
+<listitem>
+<para>Rules will appear between all rows and columns.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>rows</term>
+<listitem>
+<para>Rules will appear between rows only.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>cols</term>
+<listitem>
+<para>Rules will appear between columns only.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>groups</term>
+<listitem>
+<para>Rules will appear between row groups (thead, tfoot, tbody).
+No support for rules between column groups yet.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>none</term>
+<listitem>
+<para>No rules.  This is the default value.
+</para>
+</listitem>
+</varlistentry>
+
+</variablelist>
+
+<para>The border after the last row and the border after
+the last column are not affected by
+this setting. Those borders are controlled by
+the <tag class="attribute">frame</tag> attribute on the table element.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.cell.padding">
+<refmeta>
+<refentrytitle>table.cell.padding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.padding</refname>
+<refpurpose>Specifies the padding of table cells</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.cell.padding.frag">
+&lt;xsl:attribute-set name="table.cell.padding"&gt;
+  &lt;xsl:attribute name="padding-start"&gt;2pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-end"&gt;2pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-top"&gt;2pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-bottom"&gt;2pt&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the padding of table cells.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.frame.border.thickness">
+<refmeta>
+<refentrytitle>table.frame.border.thickness</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.thickness</refname>
+<refpurpose>Specifies the thickness of the frame border</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.frame.border.thickness.frag">
+&lt;xsl:param name="table.frame.border.thickness"&gt;0.5pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the thickness of the border on the table's frame.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.frame.border.style">
+<refmeta>
+<refentrytitle>table.frame.border.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dotted</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dashed</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">double</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">groove</refmiscinfo>                       
+<refmiscinfo class="other" otherclass="value">ridge</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">inset</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outset</refmiscinfo>          
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.style</refname>
+<refpurpose>Specifies the border style of table frames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.frame.border.style.frag">
+&lt;xsl:param name="table.frame.border.style"&gt;solid&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border style of table frames.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.frame.border.color">
+<refmeta>
+<refentrytitle>table.frame.border.color</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.color</refname>
+<refpurpose>Specifies the border color of table frames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.frame.border.color.frag">
+
+&lt;xsl:param name="table.frame.border.color"&gt;black&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border color of table frames.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.cell.border.thickness">
+<refmeta>
+<refentrytitle>table.cell.border.thickness</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.thickness</refname>
+<refpurpose>Specifies the thickness of table cell borders</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.cell.border.thickness.frag">
+&lt;xsl:param name="table.cell.border.thickness"&gt;0.5pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, specifies the thickness of borders on table
+cells. The units are points. See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/CSS21/box.html#border-width-properties">
+CSS</link></para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.cell.border.style">
+<refmeta>
+<refentrytitle>table.cell.border.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dotted</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dashed</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">double</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">groove</refmiscinfo>                       
+<refmiscinfo class="other" otherclass="value">ridge</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">inset</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outset</refmiscinfo>          
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.style</refname>
+<refpurpose>Specifies the border style of table cells</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.cell.border.style.frag">
+&lt;xsl:param name="table.cell.border.style"&gt;solid&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border style of table cells.</para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.cell.border.color">
+<refmeta>
+<refentrytitle>table.cell.border.color</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.color</refname>
+<refpurpose>Specifies the border color of table cells</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.cell.border.color.frag">
+
+&lt;xsl:param name="table.cell.border.color"&gt;black&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the color of table cell borders. If non-zero, the value is used
+for the border coloration. See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/CSS21/syndata.html#value-def-color">CSS</link>. A
+<literal>color</literal> is either a keyword or a numerical RGB specification.
+Keywords are aqua, black, blue, fuchsia, gray, green, lime, maroon,
+navy, olive, orange, purple, red, silver, teal, white, and
+yellow.</para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.table.properties">
+<refmeta>
+<refentrytitle>table.table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.table.properties</refname>
+<refpurpose>Properties associated with a table</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.table.properties.frag">
+&lt;xsl:attribute-set name="table.table.properties"&gt;
+  &lt;xsl:attribute name="border-before-width.conditionality"&gt;retain&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="border-collapse"&gt;collapse&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for tables. This parameter should really
+have been called <literal>table.properties</literal>, but that parameter
+name was inadvertently established for the block-level properties
+of the table as a whole.
+</para>
+
+<para>See also <parameter>table.properties</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.caption.properties">
+<refmeta>
+<refentrytitle>table.caption.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.caption.properties</refname>
+<refpurpose>Properties associated with a table caption</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.caption.properties.frag">
+&lt;xsl:attribute-set name="table.caption.properties"&gt;
+  &lt;xsl:attribute name="keep-together.within-column"&gt;always&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for table caption element (not the table title).</para>
+
+<para>See also <parameter>table.properties</parameter>.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="links"><title>Linking</title>
+<refentry version="5.0" xml:id="current.docid"> 
+<refmeta> 
+<refentrytitle>current.docid</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>current.docid</refname> 
+<refpurpose>targetdoc identifier for the document being
+processed</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="current.docid.frag">
+&lt;xsl:param name="current.docid"&gt;&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When olinks between documents are resolved for HTML output, the stylesheet can compute the relative path between the current document and the target document. The stylesheet needs to know the <literal>targetdoc</literal> identifiers for both documents, as they appear in the <parameter>target.database.document</parameter> database file. This parameter passes to the stylesheet
+the targetdoc identifier of the current document, since that
+identifier does not appear in the document itself. </para>
+<para>This parameter can also be used for print output. If an olink's  <literal>targetdoc</literal>  id differs from the <literal>current.docid</literal>, then the stylesheet can append the target document's title to the generated olink text. That identifies to the reader that the link is to a different document, not the current document. See also <parameter>olink.doctitle</parameter> to enable that feature.</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" xml:id="collect.xref.targets"> 
+<refmeta> 
+<refentrytitle>collect.xref.targets</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">only</refmiscinfo>
+</refmeta> 
+<refnamediv> 
+<refname>collect.xref.targets</refname> 
+<refpurpose>Controls whether cross reference data is
+collected</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="collect.xref.targets.frag">
+&lt;xsl:param name="collect.xref.targets"&gt;no&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>
+In order to resolve olinks efficiently, the stylesheets can
+generate an external data file containing information about
+all potential cross reference endpoints in a document.
+This parameter determines whether the collection process is run when the document is processed by the stylesheet. The default value is  <literal>no</literal>, which means the data file is not generated during processing. The other choices are <literal>yes</literal>, which means the data file is created and the document is processed for output, and <literal>only</literal>, which means the data file is created but the document is not processed for output.
+See also <parameter>targets.filename</parameter>.
+</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" xml:id="insert.olink.page.number">
+<refmeta>
+<refentrytitle>insert.olink.page.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.olink.page.number</refname>
+<refpurpose>Turns page numbers in olinks on and off</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="insert.olink.page.number.frag">
+&lt;xsl:param name="insert.olink.page.number"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines if
+cross references made between documents with
+<tag>olink</tag> will 
+include page number citations.
+In most cases this is only applicable to references in printed output.
+</para>
+<para>The parameter has three possible values.
+</para>
+<variablelist>
+<varlistentry>
+<term>no</term>
+<listitem><para>No page number references will be generated for olinks.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>yes</term>
+<listitem><para>Page number references will be generated
+for all <tag>olink</tag> references.
+The style of page reference may be changed
+if an <tag class="attribute">xrefstyle</tag>
+attribute is used.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>maybe</term>
+<listitem><para>Page number references will not be generated
+for an <tag>olink</tag> element unless 
+it has an
+<tag class="attribute">xrefstyle</tag>
+attribute whose value specifies a page reference.
+</para></listitem>
+</varlistentry>
+</variablelist>
+<para>Olinks that point to targets within the same document
+are treated as <tag>xref</tag>s, and controlled by
+the <parameter>insert.xref.page.number</parameter> parameter.
+</para>
+
+<para>Page number references for olinks to
+external documents can only be inserted if the 
+information exists in the olink database. 
+This means each olink target element 
+(<tag>div</tag> or <tag>obj</tag>)
+must have a <tag class="attribute">page</tag> attribute
+whose value is its page number in the target document.
+The XSL stylesheets are not able to extract that information
+during processing because pages have not yet been created in
+XSLT transformation.  Only the XSL-FO processor knows what
+page each element is placed on.
+Therefore some postprocessing must take place to populate
+page numbers in the olink database.
+</para>
+
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="insert.olink.pdf.frag">
+<refmeta>
+<refentrytitle>insert.olink.pdf.frag</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.olink.pdf.frag</refname>
+<refpurpose>Add fragment identifiers for links into PDF files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="insert.olink.pdf.frag.frag">
+&lt;xsl:param name="insert.olink.pdf.frag" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines whether
+the cross reference URIs to PDF documents made with
+<tag>olink</tag> will 
+include fragment identifiers.
+</para>
+
+<para>When forming a URI to link to a PDF document,
+a fragment identifier (typically a '#' followed by an
+id value) appended to the PDF filename can be used by
+the PDF viewer to open
+the PDF file to a location within the document instead of
+the first page.
+However, not all PDF files have id
+values embedded in them, and not all PDF viewers can
+handle fragment identifiers. 
+</para>
+
+<para>If <parameter>insert.olink.pdf.frag</parameter> is set
+to a non-zero value, then any olink targeting a
+PDF file will have the fragment identifier appended to the URI.
+The URI is formed by concatenating the value of the
+<parameter>olink.base.uri</parameter> parameter, the
+value of the <tag class="attribute">baseuri</tag>
+attribute from the <tag class="element">document</tag>
+element in the olink database with the matching
+<tag class="attribute">targetdoc</tag> value,
+and the value of the <tag class="attribute">href</tag>
+attribute for the targeted element in the olink database.
+The <tag class="attribute">href</tag> attribute
+contains the fragment identifier.
+</para>
+
+<para>If <parameter>insert.olink.pdf.frag</parameter> is set
+to zero (the default value), then 
+the <tag class="attribute">href</tag> attribute
+from the olink database
+is not appended to PDF olinks, so the fragment identifier is left off.
+A PDF olink is any olink for which the
+<tag class="attribute">baseuri</tag> attribute
+from the matching <tag class="element">document</tag>
+element in the olink database ends with '.pdf'.
+Any other olinks will still have the fragment identifier added.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="olink.base.uri"> 
+<refmeta> 
+<refentrytitle>olink.base.uri</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>olink.base.uri</refname> 
+<refpurpose>Base URI used in olink hrefs</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="olink.base.uri.frag">
+&lt;xsl:param name="olink.base.uri"&gt;&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When cross reference data is collected for resolving olinks, it
+may be necessary to prepend a base URI to each target's href. This
+parameter lets you set that base URI when cross reference data is
+collected. This feature is needed when you want to link to a document
+that is processed without chunking. The output filename for such a
+document is not known to the XSL stylesheet; the only target
+information consists of fragment identifiers such as
+<literal>#idref</literal>. To enable the resolution of olinks between
+documents, you should pass the name of the HTML output file as the
+value of this parameter. Then the hrefs recorded in the cross
+reference data collection look like
+<literal>outfile.html#idref</literal>, which can be reached as links
+from other documents.</para>
+</refsection> 
+</refentry>
+
+<refentry version="5.0" xml:id="olink.debug">
+<refmeta>
+<refentrytitle>olink.debug</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.debug</refname>
+<refpurpose>Turn on debugging messages for olinks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="olink.debug.frag">
+&lt;xsl:param name="olink.debug" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then each olink will generate several
+messages about how it is being resolved during processing.
+This is useful when an olink does not resolve properly
+and the standard error messages are not sufficient to
+find the problem. 
+</para>
+
+<para>You may need to read through the olink XSL templates
+to understand the context for some of the debug messages.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="olink.doctitle"> 
+<refmeta> 
+<refentrytitle>olink.doctitle</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta> 
+<refnamediv> 
+<refname>olink.doctitle</refname> 
+<refpurpose>show the document title for external olinks?</refpurpose>
+
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="olink.doctitle.frag">
+&lt;xsl:param name="olink.doctitle"&gt;no&lt;/xsl:param&gt; 
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When olinks between documents are resolved, the generated text
+may not make it clear that the reference is to another document.
+It is possible for the stylesheets to append the other document's
+title to external olinks. For this to happen, two parameters must
+be set.</para>
+<itemizedlist>
+<listitem>
+<para>This <parameter>olink.doctitle</parameter> parameter
+should be set to either <literal>yes</literal> or <literal>maybe</literal>
+to enable this feature.
+</para>
+</listitem>
+<listitem>
+<para>And you should also set the <parameter>current.docid</parameter>
+parameter to the document id for the  document currently
+being processed for output.
+</para>
+</listitem>
+</itemizedlist>
+
+<para>
+Then if an olink's  <literal>targetdoc</literal> id differs from
+the <literal>current.docid</literal> value, the stylesheet knows
+that it is a reference to another document and can
+append the target document's
+title to the generated olink text. </para> 
+
+<para>The text for the target document's title is copied from the
+olink database from the <tag>ttl</tag> element
+of the top-level <tag>div</tag> for that document.
+If that <tag>ttl</tag> element is missing or empty,
+no title is output.
+</para>
+
+<para>The supported values for <parameter>olink.doctitle</parameter> are:
+</para>
+<variablelist>
+<varlistentry>
+<term><literal>yes</literal></term>
+<listitem>
+<para>
+Always insert the title to the target document if it is not
+the current document.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>no</literal></term>
+<listitem>
+<para>
+Never insert the title to the target document, even if requested
+in an <tag class="attribute">xrefstyle</tag> attribute.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>maybe</literal></term>
+<listitem>
+<para>
+Only insert the title to the target document, if requested
+in an <tag class="attribute">xrefstyle</tag> attribute.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>An <tag class="attribute">xrefstyle</tag> attribute
+may override the global setting for individual olinks.
+The following values are supported in an
+<tag class="attribute">xrefstyle</tag>
+attribute using the <literal>select:</literal> syntax:
+</para>
+
+<variablelist>
+<varlistentry>
+<term><literal>docname</literal></term>
+<listitem>
+<para>
+Insert the target document name for this olink using the
+<literal>docname</literal> gentext template, but only
+if the value of <parameter>olink.doctitle</parameter>
+is not <literal>no</literal>.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>docnamelong</literal></term>
+<listitem>
+<para>
+Insert the target document name for this olink using the
+<literal>docnamelong</literal> gentext template, but only
+if the value of <parameter>olink.doctitle</parameter>
+is not <literal>no</literal>.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>nodocname</literal></term>
+<listitem>
+<para>
+Omit the target document name even if
+the value of <parameter>olink.doctitle</parameter>
+is <literal>yes</literal>.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>Another way of inserting the target document name 
+for a single olink is to employ an
+<tag class="attribute">xrefstyle</tag>
+attribute using the <literal>template:</literal> syntax.
+The <literal>%o</literal> placeholder (the letter o, not zero)
+in such a template
+will be filled in with the target document's title when it is processed.
+This will occur regardless of 
+the value of <parameter>olink.doctitle</parameter>.
+</para>
+<para>Note that prior to version 1.66 of the XSL stylesheets,
+the allowed values for this parameter were 0 and 1.  Those
+values are still supported and mapped to 'no' and 'yes', respectively.
+</para>
+</refsection> 
+</refentry>
+
+<refentry version="5.0" xml:id="olink.lang.fallback.sequence"> 
+<refmeta> 
+<refentrytitle>olink.lang.fallback.sequence</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>olink.lang.fallback.sequence</refname> 
+<refpurpose>look up translated documents if olink not found?</refpurpose>
+
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="olink.lang.fallback.sequence.frag">
+&lt;xsl:param name="olink.lang.fallback.sequence"&gt;&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+
+<para>This parameter defines a list of lang values
+to search among to resolve olinks.
+</para>
+
+<para>Normally an olink tries to resolve to a document in the same
+language as the olink itself.  The language of an olink
+is determined by its nearest ancestor element with a
+<tag class="attribute">lang</tag> attribute, otherwise the
+value of the <parameter>l10n.gentext.default.lang</parameter>
+parameter.
+</para>
+
+<para>An olink database can contain target data for the same
+document in multiple languages.  Each set of data has the
+same value for the <tag>targetdoc</tag> attribute in
+the <tag>document</tag> element in the database, but with a 
+different <tag>lang</tag> attribute value.
+</para>
+
+<para>When an olink is being resolved, the target is first
+sought in the document with the same language as the olink.
+If no match is found there, then this parameter is consulted
+for additional languages to try.</para>
+
+<para>The <parameter>olink.lang.fallback.sequence</parameter>
+must be a whitespace separated list of lang values to
+try.  The first one with a match in the olink database is used.
+The default value is empty.</para>
+
+<para>For example, a document might be written in German
+and contain an olink with
+<literal>targetdoc="adminguide"</literal>.
+When the document is processed, the processor
+first looks for a target dataset in the
+olink database starting with:</para>
+
+<literallayout><literal>&lt;document targetdoc="adminguide" lang="de"&gt;</literal>.
+</literallayout>
+
+<para>If there is no such element, then the
+<parameter>olink.lang.fallback.sequence</parameter> 
+parameter is consulted.
+If its value is, for example, <quote>fr en</quote>, then the processor next
+looks for <literal>targetdoc="adminguide" lang="fr"</literal>, and
+then for <literal>targetdoc="adminguide" lang="en"</literal>.
+If there is still no match, it looks for
+<literal>targetdoc="adminguide"</literal> with no
+lang attribute.
+</para>
+
+<para>This parameter is useful when a set of documents is only
+partially translated, or is in the process of being translated.  
+If a target of an olink has not yet been translated, then this
+parameter permits the processor to look for the document in
+other languages.  This assumes the reader would rather have
+a link to a document in a different language than to have
+a broken link.
+</para>
+
+</refsection> 
+</refentry>
+
+<refentry version="5.0" xml:id="olink.properties">
+<refmeta>
+<refentrytitle>olink.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.properties</refname>
+<refpurpose>Properties associated with the cross-reference 
+text of an olink.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="olink.properties.frag">
+&lt;xsl:attribute-set name="olink.properties"&gt;
+  &lt;xsl:attribute name="show-destination"&gt;replace&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This <literal>attribute set</literal> is applied to the
+<literal>fo:basic-link</literal> element of an olink. It is not applied to the
+optional page number or optional title of the external
+document.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="prefer.internal.olink">
+<refmeta>
+<refentrytitle>prefer.internal.olink</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>prefer.internal.olink</refname>
+<refpurpose>Prefer a local olink reference to an external reference</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="prefer.internal.olink.frag">
+&lt;xsl:param name="prefer.internal.olink" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you are re-using XML content modules in multiple documents,
+you may want to redirect some of your olinks.  This parameter
+permits you to redirect an olink to the current document.
+</para>
+
+<para>For example: you are writing documentation for a  product, 
+which includes 3 manuals: a little installation
+booklet (booklet.xml), a user 
+guide (user.xml), and a reference manual (reference.xml).
+All 3 documents begin with the same introduction section (intro.xml) that 
+contains a reference to the customization section (custom.xml) which is 
+included in both user.xml and reference.xml documents.
+</para>
+
+<para>How do you write the link to custom.xml in intro.xml
+so that it is interpreted correctly in all 3 documents?</para>
+<itemizedlist>
+<listitem><para>If you use xref, it will fail in user.xml.</para>
+</listitem>
+<listitem><para>If you use olink (pointing to reference.xml),
+the reference in user.xml  
+will point to the customization section of the reference manual, while it is 
+actually available in user.xml.</para>
+</listitem>
+</itemizedlist>
+
+<para>If you set the <parameter>prefer.internal.olink</parameter>
+parameter to a non-zero value, then the processor will
+first look in the olink database
+for the olink's <tag>targetptr</tag> attribute value
+in document matching the <parameter>current.docid</parameter>
+parameter value.  If it isn't found there, then
+it tries the document in the database
+with the <tag>targetdoc</tag>
+value that matches the olink's <tag>targetdoc</tag>
+attribute.
+</para>
+
+<para>This feature permits an olink reference to resolve to
+the current document if there is an element
+with an id matching the olink's <tag>targetptr</tag>
+value.  The current document's olink data must be
+included in the target database for this to work.</para>
+
+<caution>
+<para>There is a potential for incorrect links if
+the same <tag>id</tag> attribute value is used for different
+content in different documents.
+Some of your olinks may be redirected to the current document
+when they shouldn't be.  It is not possible to control
+individual olink instances.</para>
+</caution>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="target.database.document"> 
+<refmeta> 
+<refentrytitle>target.database.document</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>target.database.document</refname> 
+<refpurpose>Name of master database file for resolving
+olinks</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> 
+<programlisting xml:id="target.database.document.frag">
+ &lt;xsl:param name="target.database.document"&gt;olinkdb.xml&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info>
+ 
+<para>
+To resolve olinks between documents, the stylesheets use a master
+database document that identifies the target datafiles for all the
+documents within the scope of the olinks. This parameter value is the
+URI of the master document to be read during processing to resolve
+olinks.  The default value is <filename>olinkdb.xml</filename>.</para>
+
+<para>The data structure of the file is defined in the
+<filename>targetdatabase.dtd</filename> DTD.  The database file
+provides the high level elements to record the identifiers, locations,
+and relationships of documents. The cross reference data for
+individual documents is generally pulled into the database using
+system entity references or XIncludes. See also
+<parameter>targets.filename</parameter>.  </para> </refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="targets.filename"> 
+<refmeta> 
+<refentrytitle>targets.filename</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>targets.filename</refname> 
+<refpurpose>Name of cross reference targets data file</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="targets.filename.frag">
+&lt;xsl:param name="targets.filename"&gt;target.db&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info>
+ 
+<para>
+In order to resolve olinks efficiently, the stylesheets can
+generate an external data file containing information about
+all potential cross reference endpoints in a document.
+This parameter lets you change the name of the generated
+file from the default name <filename>target.db</filename>.
+The name must agree with that used in the target database
+used to resolve olinks during processing.
+See also <parameter>target.database.document</parameter>.
+</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" xml:id="use.local.olink.style"> 
+<refmeta> 
+<refentrytitle>use.local.olink.style</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>use.local.olink.style</refname> 
+<refpurpose>Process olinks using xref style of current
+document</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="use.local.olink.style.frag">
+&lt;xsl:param name="use.local.olink.style" select="0"&gt;&lt;/xsl:param&gt; </programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When cross reference data is collected for use by olinks, the data for each potential target includes one field containing a completely assembled cross reference string, as if it were an xref generated in that document. Other fields record the separate title, number, and element name of each target. When an olink is formed to a target from another document, the olink resolves to that preassembled string by default. If the <parameter>use.local.olink.style</parameter> parameter is set to non-zero, then instead the cross
+reference string is formed again from the target title, number, and
+element name, using the stylesheet processing the targeting document.
+Then olinks will match the xref style in the targeting document
+rather than in the target document. If  both documents are processed
+with the same stylesheet, then the results will be the same.</para> 
+</refsection> 
+</refentry>
+
+</reference>
+<reference xml:id="xrefs"><title>Cross References</title>
+<refentry version="5.0" xml:id="insert.xref.page.number">
+<refmeta>
+<refentrytitle>insert.xref.page.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.xref.page.number</refname>
+<refpurpose>Turns page numbers in xrefs on and off</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="insert.xref.page.number.frag">
+&lt;xsl:param name="insert.xref.page.number"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines if
+cross references (<tag>xref</tag>s) in
+printed output will
+include page number citations.
+It has three possible values.
+</para>
+<variablelist>
+<varlistentry>
+<term>no</term>
+<listitem><para>No page number references will be generated.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>yes</term>
+<listitem><para>Page number references will be generated
+for all <tag>xref</tag> elements.
+The style of page reference may be changed
+if an <tag class="attribute">xrefstyle</tag>
+attribute is used.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>maybe</term>
+<listitem><para>Page number references will not be generated
+for an <tag>xref</tag> element unless 
+it has an
+<tag class="attribute">xrefstyle</tag>
+attribute whose value specifies a page reference.
+</para></listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="xref.properties">
+<refmeta>
+<refentrytitle>xref.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.properties</refname>
+<refpurpose>Properties associated with cross-reference text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xref.properties.frag">
+&lt;xsl:attribute-set name="xref.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is used to set properties
+on cross reference text.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="xref.label-title.separator">
+<refmeta>
+<refentrytitle>xref.label-title.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.label-title.separator</refname>
+<refpurpose>Punctuation or space separating label from title in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xref.label-title.separator.frag">&lt;xsl:param name="xref.label-title.separator"&gt;: &lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both label and title,
+then the value of this parameter is inserted between
+label and title in the output.  
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="xref.label-page.separator">
+<refmeta>
+<refentrytitle>xref.label-page.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.label-page.separator</refname>
+<refpurpose>Punctuation or space separating label from page number in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xref.label-page.separator.frag">&lt;xsl:param name="xref.label-page.separator"&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both label and page
+but no title,
+then the value of this parameter is inserted between
+label and page number in the output.  
+If a title is included, then other separators are used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="xref.title-page.separator">
+<refmeta>
+<refentrytitle>xref.title-page.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.title-page.separator</refname>
+<refpurpose>Punctuation or space separating title from page number in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xref.title-page.separator.frag">&lt;xsl:param name="xref.title-page.separator"&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both title and page number,
+then the value of this parameter is inserted between
+title and page number in the output.  
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="insert.link.page.number">
+<refmeta>
+<refentrytitle>insert.link.page.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.link.page.number</refname>
+<refpurpose>Turns page numbers in link elements on and off</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="insert.link.page.number.frag">
+&lt;xsl:param name="insert.link.page.number"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines if
+cross references using the <tag>link</tag> element in
+printed output will
+include standard page number citations.
+It has three possible values.
+</para>
+<variablelist>
+<varlistentry>
+<term>no</term>
+<listitem><para>No page number references will be generated.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>yes</term>
+<listitem><para>Page number references will be generated
+for all <tag>link</tag> elements.
+The style of page reference may be changed
+if an <tag class="attribute">xrefstyle</tag>
+attribute is used.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>maybe</term>
+<listitem><para>Page number references will not be generated
+for a <tag>link</tag> element unless 
+it has an
+<tag class="attribute">xrefstyle</tag>
+attribute whose value specifies a page reference.
+</para></listitem>
+</varlistentry>
+</variablelist>
+
+<para>Although the <tag>xrefstyle</tag> attribute
+can be used to turn the page reference on or off, it cannot be
+used to control the formatting of the page number as it
+can in <tag>xref</tag>.
+In <tag>link</tag> it will always format with
+the style established by the
+gentext template with <literal>name="page.citation"</literal>
+in the <literal>l:context name="xref"</literal>.
+</para>
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="lists"><title>Lists</title>
+<refentry version="5.0" xml:id="compact.list.item.spacing">
+<refmeta>
+<refentrytitle>compact.list.item.spacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>compact.list.item.spacing</refname>
+<refpurpose>What space do you want between list items (when spacing="compact")?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="compact.list.item.spacing.frag">&lt;xsl:attribute-set name="compact.list.item.spacing"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;0em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;0.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify what spacing you want between each list item when
+<tag class="attribute">spacing</tag> is
+<quote><literal>compact</literal></quote>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="itemizedlist.properties">
+<refmeta>
+<refentrytitle>itemizedlist.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>itemizedlist.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by itemizedlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="itemizedlist.properties.frag">&lt;xsl:attribute-set name="itemizedlist.properties" use-attribute-sets="list.block.properties"&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each fo:list-block generated by itemizedlist.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="itemizedlist.label.properties">
+<refmeta>
+<refentrytitle>itemizedlist.label.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>itemizedlist.label.properties</refname>
+<refpurpose>Properties that apply to each label inside itemized list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="itemizedlist.label.properties.frag">&lt;xsl:attribute-set name="itemizedlist.label.properties"&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each label inside itemized list. E.g.:</para>
+<programlisting>&lt;xsl:attribute-set name="itemizedlist.label.properties"&gt;
+  &lt;xsl:attribute name="text-align"&gt;right&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="itemizedlist.label.width">
+<refmeta>
+<refentrytitle>itemizedlist.label.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+  <refname>itemizedlist.label.width</refname>
+<refpurpose>The default width of the label (bullet) in an itemized list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+  <programlisting xml:id="itemizedlist.label.width.frag">
+    &lt;xsl:param name="itemizedlist.label.width"&gt;1.0em&lt;/xsl:param&gt;
+  </programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Specifies the default width of the label (usually a bullet or other
+symbol) in an itemized list. You can override the default value on any
+particular list with the &#8220;dbfo&#8221; processing instruction using the
+&#8220;label-width&#8221; pseudoattribute.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="list.block.properties">
+<refmeta>
+<refentrytitle>list.block.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>list.block.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="list.block.properties.frag">&lt;xsl:attribute-set name="list.block.properties"&gt;
+  &lt;xsl:attribute name="provisional-label-separation"&gt;0.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="provisional-distance-between-starts"&gt;1.5em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each fo:list-block generated by itemizedlist/orderedlist.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="list.block.spacing">
+<refmeta>
+<refentrytitle>list.block.spacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>list.block.spacing</refname>
+<refpurpose>What spacing do you want before and after lists?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="list.block.spacing.frag">&lt;xsl:attribute-set name="list.block.spacing"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify the spacing required before and after a list. It is necessary to specify the space after a list block because lists can come inside of paras.  </para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="list.item.spacing">
+<refmeta>
+<refentrytitle>list.item.spacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>list.item.spacing</refname>
+<refpurpose>What space do you want between list items?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="list.item.spacing.frag">&lt;xsl:attribute-set name="list.item.spacing"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify what spacing you want between each list item.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="orderedlist.properties">
+<refmeta>
+<refentrytitle>orderedlist.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>orderedlist.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by orderedlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="orderedlist.properties.frag">&lt;xsl:attribute-set name="orderedlist.properties" use-attribute-sets="list.block.properties"&gt;
+  &lt;xsl:attribute name="provisional-distance-between-starts"&gt;2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each fo:list-block generated by orderedlist.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="orderedlist.label.properties">
+<refmeta>
+<refentrytitle>orderedlist.label.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>orderedlist.label.properties</refname>
+<refpurpose>Properties that apply to each label inside ordered list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="orderedlist.label.properties.frag">&lt;xsl:attribute-set name="orderedlist.label.properties"&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each label inside ordered list. E.g.:</para>
+<programlisting>&lt;xsl:attribute-set name="orderedlist.label.properties"&gt;
+  &lt;xsl:attribute name="text-align"&gt;right&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="orderedlist.label.width">
+<refmeta>
+<refentrytitle>orderedlist.label.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>orderedlist.label.width</refname>
+<refpurpose>The default width of the label (number) in an ordered list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="orderedlist.label.width.frag">
+&lt;xsl:param name="orderedlist.label.width"&gt;1.2em&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Specifies the default width of the label (usually a number or
+sequence of numbers) in an ordered list. You can override the default
+value on any particular list with the &#8220;dbfo&#8221; processing instruction
+using the &#8220;label-width&#8221; pseudoattribute.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="variablelist.max.termlength">
+<refmeta>
+<refentrytitle>variablelist.max.termlength</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">number</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.max.termlength</refname>
+<refpurpose>Specifies the longest term in variablelists</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="variablelist.max.termlength.frag">
+&lt;xsl:param name="variablelist.max.termlength"&gt;24&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In variablelists, the <tag>listitem</tag>
+is indented to leave room for the 
+<tag>term</tag> elements. That indent may be computed
+if it is not specified with a <tag class="attribute">termlength</tag>
+attribute on the <tag>variablelist</tag> element.
+</para>
+<para>
+The computation counts characters in the 
+<tag>term</tag> elements in the list
+to find the longest term.  However, some terms are very long
+and would produce extreme indents.  This parameter lets you
+set a maximum character count.  Any terms longer than the maximum
+would line wrap.  The default value is 24.
+</para>
+<para>
+The character counts are converted to physical widths
+by multiplying by 0.50em. There will be some variability
+in how many actual characters fit in the space
+since some characters are wider than others.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="variablelist.term.separator">
+<refmeta>
+<refentrytitle>variablelist.term.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.term.separator</refname>
+<refpurpose>Text to separate <tag>term</tag>s within a multi-term
+<tag>varlistentry</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="variablelist.term.separator.frag">
+&lt;xsl:param name="variablelist.term.separator"&gt;, &lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When a <tag>varlistentry</tag> contains multiple <tag>term</tag>
+elements, the string specified in the value of the
+<parameter>variablelist.term.separator</parameter> parameter is placed
+after each <tag>term</tag> except the last.</para>
+
+<note>
+  <para>To generate a line break between multiple <tag>term</tag>s in
+  a <tag>varlistentry</tag>, set a non-zero value for the
+  <parameter>variablelist.term.break.after</parameter> parameter. If
+  you do so, you may also want to set the value of the
+  <parameter>variablelist.term.separator</parameter> parameter to an
+  empty string (to suppress rendering of the default comma and space
+  after each <tag>term</tag>).</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="variablelist.term.properties">
+<refmeta>
+<refentrytitle>variablelist.term.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.term.properties</refname>
+<refpurpose>To add properties to the term elements in a variablelist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="variablelist.term.properties.frag">
+&lt;xsl:attribute-set name="variablelist.term.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+term in a variablelist.
+Use this attribute-set to set
+font properties or alignment, for example.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="variablelist.term.break.after">
+<refmeta>
+<refentrytitle>variablelist.term.break.after</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.term.break.after</refname>
+<refpurpose>Generate line break after each <tag>term</tag> within a
+multi-term <tag>varlistentry</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="variablelist.term.break.after.frag">
+&lt;xsl:param name="variablelist.term.break.after"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set a non-zero value for the
+<parameter>variablelist.term.break.after</parameter> parameter to
+generate a line break between <tag>term</tag>s in a
+multi-term <tag>varlistentry</tag>.</para>
+
+<note>
+<para>If you set a non-zero value for
+<parameter>variablelist.term.break.after</parameter>, you may also
+want to set the value of the
+<parameter>variablelist.term.separator</parameter> parameter to an
+empty string (to suppress rendering of the default comma and space
+after each <tag>term</tag>).</para>
+</note>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="qa"><title>QAndASet</title>
+<refentry version="5.0" xml:id="qandadiv.autolabel">
+<refmeta>
+<refentrytitle>qandadiv.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qandadiv.autolabel</refname>
+<refpurpose>Are divisions in QAndASets enumerated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qandadiv.autolabel.frag">&lt;xsl:param name="qandadiv.autolabel" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, unlabeled qandadivs will be enumerated.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.inherit.numeration">
+<refmeta>
+<refentrytitle>qanda.inherit.numeration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.inherit.numeration</refname>
+<refpurpose>Does enumeration of QandASet components inherit the numeration of parent elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.inherit.numeration.frag">
+&lt;xsl:param name="qanda.inherit.numeration" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, numbered <tag>qandadiv</tag> elements and
+<tag>question</tag> and <tag>answer</tag> inherit the enumeration of
+the ancestors of the <tag>qandaset</tag>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.defaultlabel">
+<refmeta>
+<refentrytitle>qanda.defaultlabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">number</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">qanda</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.defaultlabel</refname>
+<refpurpose>Sets the default for defaultlabel on QandASet.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.defaultlabel.frag">
+&lt;xsl:param name="qanda.defaultlabel"&gt;number&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If no <literal>defaultlabel</literal> attribute is specified on
+a <tag>qandaset</tag>, this value is used. It is generally one of the legal
+values for the defaultlabel attribute (<literal>none</literal>, 
+<literal>number</literal> or
+<literal>qanda</literal>), or one of the additional stylesheet-specific values
+(<literal>qnumber</literal> or <literal>qnumberanda</literal>).
+The default value is 'number'.
+</para>
+<para>The values are rendered as follows:</para>
+<variablelist>
+<varlistentry><term><literal>qanda</literal></term>
+<listitem>
+<para><tag>question</tag>s are labeled "Q:" and
+<tag>answer</tag>s are labeled "A:". </para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>number</literal></term>
+<listitem>
+<para>The questions are enumerated and the answers
+are not labeled. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>qnumber</literal></term>
+<listitem>
+<para>The questions are labeled "Q:" followed by a number, and answers are not 
+labeled. 
+When sections are numbered, adding a label
+to the number distinguishes the question numbers
+from the section numbers.
+This value is not allowed in the
+<tag class="attribute">defaultlabel</tag> attribute
+of a <tag>qandaset</tag> element.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>qnumberanda</literal></term>
+<listitem>
+<para>The questions are labeled "Q:" followed by a number, and
+the answers are labeled "A:". 
+When sections are numbered, adding a label
+to the number distinguishes the question numbers
+from the section numbers.
+This value is not allowed in the
+<tag class="attribute">defaultlabel</tag> attribute
+of a <tag>qandaset</tag> element.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>none</literal></term>
+<listitem>
+<para>No distinguishing label precedes Questions or Answers. 
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.in.toc">
+<refmeta>
+<refentrytitle>qanda.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.in.toc</refname>
+<refpurpose>Should qandaentry questions appear in 
+the document table of contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.in.toc.frag">&lt;xsl:param name="qanda.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), then the generated table of contents
+for a document will include <tag>qandaset</tag> titles, 
+<tag>qandadiv</tag> titles,
+and <tag>question</tag> elements.  The default value (zero) excludes
+them from the TOC.
+</para>
+<para>This parameter does not affect any tables of contents
+that may be generated inside a qandaset or qandadiv.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.nested.in.toc">
+<refmeta>
+<refentrytitle>qanda.nested.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.nested.in.toc</refname>
+<refpurpose>Should nested answer/qandaentry instances appear in TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.nested.in.toc.frag">
+&lt;xsl:param name="qanda.nested.in.toc" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, instances of <tag>qandaentry</tag>
+that are children of <tag>answer</tag> elements are shown in
+the TOC.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="biblio"><title>Bibliography</title>
+<refentry version="5.0" xml:id="bibliography.style">
+<refmeta>
+<refentrytitle>bibliography.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">normal</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">iso690</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.style</refname>
+<refpurpose>Style used for formatting of biblioentries.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="bibliography.style.frag">
+&lt;xsl:param name="bibliography.style"&gt;normal&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Currently only <literal>normal</literal> and
+<literal>iso690</literal> styles are supported.</para>
+
+<para>In order to use ISO690 style to the full extent you might need
+to use additional markup described on <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://wiki.docbook.org/topic/ISO690Bibliography">the
+following WiKi page</link>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="biblioentry.item.separator">
+<refmeta>
+<refentrytitle>biblioentry.item.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>biblioentry.item.separator</refname>
+<refpurpose>Text to separate bibliography entries</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="biblioentry.item.separator.frag">&lt;xsl:param name="biblioentry.item.separator"&gt;. &lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Text to separate bibliography entries
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="bibliography.collection">
+<refmeta>
+<refentrytitle>bibliography.collection</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.collection</refname>
+<refpurpose>Name of the bibliography collection file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="bibliography.collection.frag">
+&lt;xsl:param name="bibliography.collection"&gt;http://docbook.sourceforge.net/release/bibliography/bibliography.xml&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Maintaining bibliography entries across a set of documents is tedious, time
+consuming, and error prone. It makes much more sense, usually, to store all of
+the bibliography entries in a single place and simply <quote>extract</quote>
+the ones you need in each document.</para>
+
+<para>That's the purpose of the
+<parameter>bibliography.collection</parameter> parameter. To setup a global
+bibliography <quote>database</quote>, follow these steps:</para>
+
+<para>First, create a stand-alone bibliography document that contains all of
+the documents that you wish to reference. Make sure that each bibliography
+entry (whether you use <tag>biblioentry</tag> or <tag>bibliomixed</tag>)
+has an ID.</para>
+
+<para>My global bibliography, <filename>~/bibliography.xml</filename> begins
+like this:</para>
+
+<informalexample>
+<programlisting>&lt;!DOCTYPE bibliography
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"&gt;
+&lt;bibliography&gt;&lt;title&gt;References&lt;/title&gt;
+
+&lt;bibliomixed id="xml-rec"&gt;&lt;abbrev&gt;XML 1.0&lt;/abbrev&gt;Tim Bray,
+Jean Paoli, C. M. Sperberg-McQueen, and Eve Maler, editors.
+&lt;citetitle&gt;&lt;ulink url="http://www.w3.org/TR/REC-xml"&gt;Extensible Markup
+Language (XML) 1.0 Second Edition&lt;/ulink&gt;&lt;/citetitle&gt;.
+World Wide Web Consortium, 2000.
+&lt;/bibliomixed&gt;
+
+&lt;bibliomixed id="xml-names"&gt;&lt;abbrev&gt;Namespaces&lt;/abbrev&gt;Tim Bray,
+Dave Hollander,
+and Andrew Layman, editors.
+&lt;citetitle&gt;&lt;ulink url="http://www.w3.org/TR/REC-xml-names/"&gt;Namespaces in
+XML&lt;/ulink&gt;&lt;/citetitle&gt;.
+World Wide Web Consortium, 1999.
+&lt;/bibliomixed&gt;
+
+&lt;!-- ... --&gt;
+&lt;/bibliography&gt;
+</programlisting>
+</informalexample>
+
+<para>When you create a bibliography in your document, simply
+provide <emphasis>empty</emphasis> <tag>bibliomixed</tag>
+entries for each document that you wish to cite. Make sure that these
+elements have the same ID as the corresponding <quote>real</quote>
+entry in your global bibliography.</para>
+
+<para>For example:</para>
+
+<informalexample>
+<programlisting>&lt;bibliography&gt;&lt;title&gt;Bibliography&lt;/title&gt;
+
+&lt;bibliomixed id="xml-rec"/&gt;
+&lt;bibliomixed id="xml-names"/&gt;
+&lt;bibliomixed id="DKnuth86"&gt;Donald E. Knuth. &lt;citetitle&gt;Computers and
+Typesetting: Volume B, TeX: The Program&lt;/citetitle&gt;. Addison-Wesley,
+1986.  ISBN 0-201-13437-3.
+&lt;/bibliomixed&gt;
+&lt;bibliomixed id="relaxng"/&gt;
+
+&lt;/bibliography&gt;</programlisting>
+</informalexample>
+
+<para>Note that it's perfectly acceptable to mix entries from your
+global bibliography with <quote>normal</quote> entries. You can use
+<tag>xref</tag> or other elements to cross-reference your
+bibliography entries in exactly the same way you do now.</para>
+
+<para>Finally, when you are ready to format your document, simply set the
+<parameter>bibliography.collection</parameter> parameter (in either a
+customization layer or directly through your processor's interface) to
+point to your global bibliography.</para>
+
+<para>A relative path in the parameter is interpreted in one
+of two ways:</para>
+<orderedlist numeration="loweralpha">
+  <listitem>
+    <para>If your document contains no links to empty bibliographic elements,
+    then the path is relative to the file containing
+    the first <tag>bibliomixed</tag> element in the document.</para>
+  </listitem>
+  <listitem>
+    <para>If your document does contain links to empty bibliographic elements,
+    then the path is relative to the file containing
+    the first such link element in the document.</para>
+  </listitem>
+</orderedlist>
+<para>Once the collection file is opened by the first instance described
+above, it stays open for the current document
+and the relative path is not reinterpreted again.</para>
+
+<para>The stylesheets will format the bibliography in your document as if
+all of the entries referenced appeared there literally.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="bibliography.numbered">
+<refmeta>
+<refentrytitle>bibliography.numbered</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.numbered</refname>
+<refpurpose>Should bibliography entries be numbered?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="bibliography.numbered.frag">
+&lt;xsl:param name="bibliography.numbered" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero bibliography entries will be numbered</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="biblioentry.properties">
+<refmeta>
+  <refentrytitle>biblioentry.properties</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>biblioentry.properties</refname>
+<refpurpose>To set the style for biblioentry.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="biblioentry.properties.frag">&lt;xsl:attribute-set name="biblioentry.properties" use-attribute-sets="normal.para.spacing"&gt;
+  &lt;xsl:attribute name="start-indent"&gt;0.5in&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-indent"&gt;-0.5in&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>How do you want biblioentry styled? </para>
+<para>Set the font-size, weight, space-above and space-below, indents, etc. to the style required</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="glossary"><title>Glossary</title>
+<refentry version="5.0" xml:id="glossterm.auto.link">
+<refmeta>
+<refentrytitle>glossterm.auto.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.auto.link</refname>
+<refpurpose>Generate links from glossterm to glossentry automatically?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossterm.auto.link.frag">
+&lt;xsl:param name="glossterm.auto.link" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, links from inline <tag>glossterm</tag>s to the corresponding 
+<tag>glossentry</tag> elements in a <tag>glossary</tag> or <tag>glosslist</tag> 
+will be automatically generated. This is useful when your glossterms are consistent 
+and you don't want to add links manually.</para>
+
+<para>The automatic link generation feature is not used on <tag>glossterm</tag> elements
+that have a <tag class="attribute">linkend</tag> attribute.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="firstterm.only.link">
+<refmeta>
+<refentrytitle>firstterm.only.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>firstterm.only.link</refname>
+<refpurpose>Does automatic glossterm linking only apply to firstterms?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="firstterm.only.link.frag">
+&lt;xsl:param name="firstterm.only.link" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, only <tag>firstterm</tag>s will be automatically linked
+to the glossary. If glossary linking is not enabled, this parameter
+has no effect.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossary.collection">
+<refmeta>
+<refentrytitle>glossary.collection</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossary.collection</refname>
+<refpurpose>Name of the glossary collection file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossary.collection.frag">
+&lt;xsl:param name="glossary.collection"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Glossaries maintained independently across a set of documents
+are likely to become inconsistent unless considerable effort is
+expended to keep them in sync. It makes much more sense, usually, to
+store all of the glossary entries in a single place and simply
+<quote>extract</quote> the ones you need in each document.</para>
+
+<para>That's the purpose of the
+<parameter>glossary.collection</parameter> parameter. To setup a global
+glossary <quote>database</quote>, follow these steps:</para>
+
+<refsection><info><title>Setting Up the Glossary Database</title></info>
+
+<para>First, create a stand-alone glossary document that contains all of
+the entries that you wish to reference. Make sure that each glossary
+entry has an ID.</para>
+
+<para>Here's an example glossary:</para>
+
+<informalexample>
+<programlisting>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE glossary
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"&gt;
+&lt;glossary&gt;
+&lt;glossaryinfo&gt;
+&lt;editor&gt;&lt;firstname&gt;Eric&lt;/firstname&gt;&lt;surname&gt;Raymond&lt;/surname&gt;&lt;/editor&gt;
+&lt;title&gt;Jargon File 4.2.3 (abridged)&lt;/title&gt;
+&lt;releaseinfo&gt;Just some test data&lt;/releaseinfo&gt;
+&lt;/glossaryinfo&gt;
+
+&lt;glossdiv&gt;&lt;title&gt;0&lt;/title&gt;
+
+&lt;glossentry&gt;
+&lt;glossterm&gt;0&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;Numeric zero, as opposed to the letter `O' (the 15th letter of
+the English alphabet). In their unmodified forms they look a lot
+alike, and various kluges invented to make them visually distinct have
+compounded the confusion. If your zero is center-dotted and letter-O
+is not, or if letter-O looks almost rectangular but zero looks more
+like an American football stood on end (or the reverse), you're
+probably looking at a modern character display (though the dotted zero
+seems to have originated as an option on IBM 3270 controllers). If
+your zero is slashed but letter-O is not, you're probably looking at
+an old-style ASCII graphic set descended from the default typewheel on
+the venerable ASR-33 Teletype (Scandinavians, for whom /O is a letter,
+curse this arrangement). (Interestingly, the slashed zero long
+predates computers; Florian Cajori's monumental "A History of
+Mathematical Notations" notes that it was used in the twelfth and
+thirteenth centuries.) If letter-O has a slash across it and the zero
+does not, your display is tuned for a very old convention used at IBM
+and a few other early mainframe makers (Scandinavians curse &lt;emphasis&gt;this&lt;/emphasis&gt;
+arrangement even more, because it means two of their letters collide).
+Some Burroughs/Unisys equipment displays a zero with a &lt;emphasis&gt;reversed&lt;/emphasis&gt;
+slash. Old CDC computers rendered letter O as an unbroken oval and 0
+as an oval broken at upper right and lower left. And yet another
+convention common on early line printers left zero unornamented but
+added a tail or hook to the letter-O so that it resembled an inverted
+Q or cursive capital letter-O (this was endorsed by a draft ANSI
+standard for how to draw ASCII characters, but the final standard
+changed the distinguisher to a tick-mark in the upper-left corner).
+Are we sufficiently confused yet?&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+
+&lt;glossentry&gt;
+&lt;glossterm&gt;1TBS&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para role="accidence"&gt;
+&lt;phrase role="pronounce"&gt;&lt;/phrase&gt;
+&lt;phrase role="partsofspeach"&gt;n&lt;/phrase&gt;
+&lt;/para&gt;
+&lt;para&gt;The "One True Brace Style"&lt;/para&gt;
+&lt;glossseealso&gt;indent style&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+
+&lt;!-- ... --&gt;
+
+&lt;/glossdiv&gt;
+
+&lt;!-- ... --&gt;
+
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+
+</refsection>
+
+<refsection><info><title>Marking Up Glossary Terms</title></info>
+
+<para>That takes care of the glossary database, now you have to get the entries
+into your document. Unlike bibliography entries, which can be empty, creating
+<quote>placeholder</quote> glossary entries would be very tedious. So instead,
+support for <parameter>glossary.collection</parameter> relies on implicit linking.</para>
+
+<para>In your source document, simply use <tag>firstterm</tag> and
+<tag>glossterm</tag> to identify the terms you wish to have included
+in the glossary. The stylesheets assume that you will either set the
+<tag class="attribute">baseform</tag> attribute correctly, or that the
+content of the element exactly matches a term in your glossary.</para>
+
+<para>If you're using a <parameter>glossary.collection</parameter>, don't
+make explicit links on the terms in your document.</para>
+
+<para>So, in your document, you might write things like this:</para>
+
+<informalexample>
+<programlisting>&lt;para&gt;This is dummy text, without any real meaning.
+The point is simply to reference glossary terms like &lt;glossterm&gt;0&lt;/glossterm&gt;
+and the &lt;firstterm baseform="1TBS"&gt;One True Brace Style (1TBS)&lt;/firstterm&gt;.
+The &lt;glossterm&gt;1TBS&lt;/glossterm&gt;, as you can probably imagine, is a nearly
+religious issue.&lt;/para&gt;</programlisting>
+</informalexample>
+
+<para>If you set the <parameter>firstterm.only.link</parameter> parameter,
+only the terms marked with <tag>firstterm</tag> will be links.
+Otherwise, all the terms will be linked.</para>
+
+</refsection>
+
+<refsection><info><title>Marking Up the Glossary</title></info>
+
+<para>The glossary itself has to be identified for the stylesheets. For lack
+of a better choice, the <tag class="attribute">role</tag> is used.
+To identify the glossary as the target for automatic processing, set
+the role to <quote><literal>auto</literal></quote>. The title of this
+glossary (and any other information from the <tag>glossaryinfo</tag>
+that's rendered by your stylesheet) will be displayed, but the entries will
+come from the database.
+</para>
+
+<para>Unfortunately, the glossary can't be empty, so you must put in
+at least one <tag>glossentry</tag>. The content of this entry
+is irrelevant, it will not be rendered:</para>
+
+<informalexample>
+<programlisting>&lt;glossary role="auto"&gt;
+&lt;glossentry&gt;
+&lt;glossterm&gt;Irrelevant&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;If you can see this, the document was processed incorrectly. Use
+the &lt;parameter&gt;glossary.collection&lt;/parameter&gt; parameter.&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+
+<para>What about glossary divisions? If your glossary database has glossary
+divisions <emphasis>and</emphasis> your automatic glossary contains at least
+one <tag>glossdiv</tag>, the automic glossary will have divisions.
+If the <tag>glossdiv</tag> is missing from either location, no divisions
+will be rendered.</para>
+
+<para>Glossary entries (and divisions, if appropriate) in the glossary will
+occur in precisely the order they occur in your database.</para>
+
+</refsection>
+
+<refsection><info><title>Formatting the Document</title></info>
+
+<para>Finally, when you are ready to format your document, simply set the
+<parameter>glossary.collection</parameter> parameter (in either a
+customization layer or directly through your processor's interface) to
+point to your global glossary.</para>
+
+<para>A relative path in the parameter is interpreted in one
+of two ways:</para>
+<orderedlist numeration="loweralpha">
+  <listitem>
+    <para>If the parameter <literal>glossterm.auto.link</literal>
+    is set to zero, then the path is relative to the file containing
+    the empty <tag>glossary</tag> element in the document.</para>
+  </listitem>
+  <listitem>
+    <para>If the parameter <literal>glossterm.auto.link</literal>
+    is set to non-zero, then the path is relative to the file containing
+    the first inline <tag>glossterm</tag> or
+    <tag>firstterm</tag> in the document to be linked.</para>
+  </listitem>
+</orderedlist>
+<para>Once the collection file is opened by the first instance described
+above, it stays open for the current document
+and the relative path is not reinterpreted again.</para>
+
+<para>The stylesheets will format the glossary in your document as if
+all of the entries implicilty referenced appeared there literally.</para>
+</refsection>
+
+<refsection><info><title>Limitations</title></info>
+
+<para>Glossary cross-references <emphasis>within the glossary</emphasis> are
+not supported. For example, this <emphasis>will not</emphasis> work:</para>
+
+<informalexample>
+<programlisting>&lt;glossentry&gt;
+&lt;glossterm&gt;gloss-1&lt;/glossterm&gt;
+&lt;glossdef&gt;&lt;para&gt;A description that references &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/para&gt;
+&lt;glossseealso&gt;gloss-2&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;</programlisting>
+</informalexample>
+
+<para>If you put glossary cross-references in your glossary that way,
+you'll get the cryptic error: <computeroutput>Warning:
+glossary.collection specified, but there are 0 automatic
+glossaries</computeroutput>.</para>
+
+<para>Instead, you must do two things:</para>
+
+<orderedlist>
+<listitem>
+<para>Markup your glossary using <tag>glossseealso</tag>:</para>
+
+<informalexample>
+<programlisting>&lt;glossentry&gt;
+&lt;glossterm&gt;gloss-1&lt;/glossterm&gt;
+&lt;glossdef&gt;&lt;para&gt;A description that references &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/para&gt;
+&lt;glossseealso&gt;gloss-2&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;</programlisting>
+</informalexample>
+</listitem>
+
+<listitem>
+<para>Make sure there is at least one <tag>glossterm</tag> reference to
+<glossterm>gloss-2</glossterm> <emphasis>in your document</emphasis>. The
+easiest way to do that is probably within a <tag>remark</tag> in your
+automatic glossary:</para>
+
+<informalexample>
+<programlisting>&lt;glossary role="auto"&gt;
+&lt;remark&gt;Make sure there's a reference to &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/remark&gt;
+&lt;glossentry&gt;
+&lt;glossterm&gt;Irrelevant&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;If you can see this, the document was processed incorrectly. Use
+the &lt;parameter&gt;glossary.collection&lt;/parameter&gt; parameter.&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+</listitem>
+</orderedlist>
+</refsection>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossary.as.blocks">
+<refmeta>
+<refentrytitle>glossary.as.blocks</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossary.as.blocks</refname>
+<refpurpose>Present glossarys using blocks instead of lists?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossary.as.blocks.frag">
+&lt;xsl:param name="glossary.as.blocks" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>glossary</tag>s will be formatted as
+blocks.</para>
+
+<para>If you have long <tag>glossterm</tag>s, proper list
+markup in the FO case may produce unattractive lists. By setting this
+parameter, you can force the stylesheets to produce block markup
+instead of proper lists.</para>
+
+<para>You can override this setting with a processing instruction as the
+child of <tag>glossary</tag>: <tag class="xmlpi">dbfo
+glossary-presentation="blocks"</tag> or <tag class="xmlpi">dbfo
+glossary-presentation="list"</tag></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glosslist.as.blocks">
+<refmeta>
+<refentrytitle>glosslist.as.blocks</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glosslist.as.blocks</refname>
+<refpurpose>Use blocks for glosslists?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glosslist.as.blocks.frag">
+&lt;xsl:param name="glosslist.as.blocks" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>See <parameter>glossary.as.blocks</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossentry.list.item.properties">
+<refmeta>
+<refentrytitle>glossentry.list.item.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossentry.list.item.properties</refname>
+<refpurpose>To add properties to each glossentry in a list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossentry.list.item.properties.frag">&lt;xsl:attribute-set name="glossentry.list.item.properties"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the fo:list-item containing a
+glossentry in a glossary when the <parameter>glossary.as.blocks</parameter> parameter
+is zero.
+Use this attribute-set to set
+spacing between entries, for example.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossterm.block.properties">
+<refmeta>
+<refentrytitle>glossterm.block.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.block.properties</refname>
+<refpurpose>To add properties to the block of a glossentry's glossterm.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossterm.block.properties.frag">&lt;xsl:attribute-set name="glossterm.block.properties"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-together.within-column"&gt;always&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+glossary term in a glossary when the <parameter>glossary.as.blocks</parameter> parameter
+is non-zero.
+Use this attribute-set to set the space above and below,
+font properties,
+and any indent for the glossary term.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossdef.block.properties">
+<refmeta>
+<refentrytitle>glossdef.block.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossdef.block.properties</refname>
+<refpurpose>To add properties to the block of a glossary definition.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossdef.block.properties.frag">&lt;xsl:attribute-set name="glossdef.block.properties"&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.start}"&gt;.25in&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+glossary definition in a glossary when
+the <parameter>glossary.as.blocks</parameter> parameter
+is non-zero.
+Use this attribute-set to set the space above and below,
+any font properties,
+and any indent for the glossary definition.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossterm.list.properties">
+<refmeta>
+<refentrytitle>glossterm.list.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.list.properties</refname>
+<refpurpose>To add properties to the glossterm in a list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossterm.list.properties.frag">
+&lt;xsl:attribute-set name="glossterm.list.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+glossary term in a glossary when the <parameter>glossary.as.blocks</parameter> parameter
+is zero.
+Use this attribute-set to set
+font properties, for example.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossdef.list.properties">
+<refmeta>
+<refentrytitle>glossdef.list.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossdef.list.properties</refname>
+<refpurpose>To add properties to the glossary definition in a list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossdef.list.properties.frag">
+&lt;xsl:attribute-set name="glossdef.list.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+glossary definition in a glossary when
+the <parameter>glossary.as.blocks</parameter> parameter
+is zero.
+Use this attribute-set to set font properties, for example.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossterm.width">
+<refmeta>
+<refentrytitle>glossterm.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.width</refname>
+<refpurpose>Width of glossterm in list presentation mode</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossterm.width.frag">
+&lt;xsl:param name="glossterm.width"&gt;2in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the width reserved for glossary terms when
+a list presentation is used.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossterm.separation">
+<refmeta>
+<refentrytitle>glossterm.separation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.separation</refname>
+<refpurpose>Separation between glossary terms and descriptions in list mode</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossterm.separation.frag">
+&lt;xsl:param name="glossterm.separation"&gt;0.25in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the miminum horizontal
+separation between glossary terms and descriptions when
+they are presented side-by-side using lists
+when the <parameter>glossary.as.blocks</parameter>
+is zero.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossentry.show.acronym">
+<refmeta>
+<refentrytitle>glossentry.show.acronym</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">primary</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossentry.show.acronym</refname>
+<refpurpose>Display <tag>glossentry</tag> acronyms?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossentry.show.acronym.frag">
+&lt;xsl:param name="glossentry.show.acronym"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A setting of <quote>yes</quote> means they should be displayed;
+<quote>no</quote> means they shouldn't. If <quote>primary</quote> is used,
+then they are shown as the primary text for the entry.</para>
+
+<note>
+<para>This setting controls both <tag>acronym</tag> and
+<tag>abbrev</tag> elements in the <tag>glossentry</tag>.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossary.sort">
+<refmeta>
+<refentrytitle>glossary.sort</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossary.sort</refname>
+<refpurpose>Sort glossentry elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossary.sort.frag">
+&lt;xsl:param name="glossary.sort" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then the glossentry elements within a
+glossary, glossdiv, or glosslist are sorted on the glossterm, using
+the current lang setting.  If zero (the default), then
+glossentry elements are not sorted and are presented
+in document order.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="misc"><title>Miscellaneous</title>
+<refentry version="5.0" xml:id="formal.procedures">
+<refmeta>
+<refentrytitle>formal.procedures</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.procedures</refname>
+<refpurpose>Selects formal or informal procedures</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="formal.procedures.frag">
+&lt;xsl:param name="formal.procedures" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Formal procedures are numbered and always have a title.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="formal.title.placement">
+<refmeta>
+<refentrytitle>formal.title.placement</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">table</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.title.placement</refname>
+<refpurpose>Specifies where formal object titles should occur</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="formal.title.placement.frag">
+&lt;xsl:param name="formal.title.placement"&gt;
+figure before
+example before
+equation before
+table before
+procedure before
+task before
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies where formal object titles should occur. For each formal object
+type (<tag>figure</tag>,
+<tag>example</tag>,
+<tag>equation</tag>,
+<tag>table</tag>, and <tag>procedure</tag>)
+you can specify either the keyword
+<quote><literal>before</literal></quote> or
+<quote><literal>after</literal></quote>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="runinhead.default.title.end.punct">
+<refmeta>
+<refentrytitle>runinhead.default.title.end.punct</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>runinhead.default.title.end.punct</refname>
+<refpurpose>Default punctuation character on a run-in-head</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="runinhead.default.title.end.punct.frag">&lt;xsl:param name="runinhead.default.title.end.punct"&gt;.&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, For a <tag>formalpara</tag>, use the specified
+string as the separator between the title and following text. The period is the default value.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="runinhead.title.end.punct">
+<refmeta>
+<refentrytitle>runinhead.title.end.punct</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>runinhead.title.end.punct</refname>
+<refpurpose>Characters that count as punctuation on a run-in-head</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="runinhead.title.end.punct.frag">
+&lt;xsl:param name="runinhead.title.end.punct"&gt;.!?:&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specify which characters are to be counted as punctuation. These
+characters are checked for a match with the last character of the
+title. If no match is found, the
+<parameter>runinhead.default.title.end.punct</parameter> contents are
+inserted. This is to avoid duplicated punctuation in the output.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="show.comments">
+<refmeta>
+<refentrytitle>show.comments</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>show.comments</refname>
+<refpurpose>Display <tag>remark</tag> elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="show.comments.frag">
+&lt;xsl:param name="show.comments" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, comments will be displayed, otherwise they
+are suppressed.  Comments here refers to the <tag>remark</tag> element
+(which was called <literal>comment</literal> prior to DocBook
+4.0), not XML comments (&lt;-- like this --&gt;) which are
+unavailable.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="punct.honorific">
+<refmeta>
+<refentrytitle>punct.honorific</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>punct.honorific</refname>
+<refpurpose>Punctuation after an honorific in a personal name.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="punct.honorific.frag">
+&lt;xsl:param name="punct.honorific"&gt;.&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the punctuation that should be added after an
+honorific in a personal name.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="segmentedlist.as.table">
+<refmeta>
+<refentrytitle>segmentedlist.as.table</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>segmentedlist.as.table</refname>
+<refpurpose>Format segmented lists as tables?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="segmentedlist.as.table.frag">
+&lt;xsl:param name="segmentedlist.as.table" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>segmentedlist</tag>s will be formatted as
+tables.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="variablelist.as.blocks">
+<refmeta>
+<refentrytitle>variablelist.as.blocks</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.as.blocks</refname>
+<refpurpose>Format <tag>variablelist</tag>s lists as blocks?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="variablelist.as.blocks.frag">
+&lt;xsl:param name="variablelist.as.blocks" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>variablelist</tag>s will be formatted as
+blocks.</para>
+
+<para>If you have long terms, proper list markup in the FO case may produce
+unattractive lists. By setting this parameter, you can force the stylesheets
+to produce block markup instead of proper lists.</para>
+
+<para>You can override this setting with a processing instruction as the
+child of <tag>variablelist</tag>: <tag class="xmlpi">dbfo
+list-presentation="blocks"</tag> or <tag class="xmlpi">dbfo
+list-presentation="list"</tag>.</para>
+
+<para>When using <literal>list-presentation="list"</literal>,
+you can also control the amount of space used for the <tag>term</tag>s with 
+the <tag class="xmlpi">dbfo term-width=".25in"</tag> processing instruction,
+the <tag class="attribute">termlength</tag> attribute on <tag>variablelist</tag>,
+or allow the stylesheets to attempt to calculate the amount of space to leave based on the 
+number of letters in the longest term.  
+</para>
+
+<programlisting>  &lt;variablelist&gt;
+        &lt;?dbfo list-presentation="list"?&gt;
+        &lt;?dbfo term-width="1.5in"?&gt;
+        &lt;?dbhtml list-presentation="table"?&gt;
+        &lt;?dbhtml term-width="1.5in"?&gt;
+        &lt;varlistentry&gt;
+          &lt;term&gt;list&lt;/term&gt;
+          &lt;listitem&gt;
+                &lt;para&gt;
+                  Formatted as a list even if variablelist.as.blocks is set to 1.
+                &lt;/para&gt;
+          &lt;/listitem&gt;
+        &lt;/varlistentry&gt;
+  &lt;/variablelist&gt;</programlisting>
+
+
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" xml:id="blockquote.properties">
+<refmeta>
+  <refentrytitle>blockquote.properties</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>blockquote.properties</refname>
+<refpurpose>To set the style for block quotations.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="blockquote.properties.frag">
+&lt;xsl:attribute-set name="blockquote.properties"&gt;
+&lt;xsl:attribute name="margin-{$direction.align.start}"&gt;0.5in&lt;/xsl:attribute&gt;
+&lt;xsl:attribute name="margin-{$direction.align.end}"&gt;0.5in&lt;/xsl:attribute&gt;
+&lt;xsl:attribute name="space-after.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+&lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+&lt;xsl:attribute name="space-after.maximum"&gt;2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>blockquote.properties</parameter> attribute set specifies
+the formating properties of block quotations.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="ulink.show">
+<refmeta>
+<refentrytitle>ulink.show</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.show</refname>
+<refpurpose>Display URLs after <tag>ulink</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ulink.show.frag">
+&lt;xsl:param name="ulink.show" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the URL of each <tag>ulink</tag> will
+appear after the text of the link. If the text of the link and the URL
+are identical, the URL is suppressed. </para>
+
+<para>See also <parameter>ulink.footnotes</parameter>.</para>
+
+<note><para>DocBook 5 does not have an <tag>ulink</tag> element. When processing 
+DocBoook 5 documents, <parameter>ulink.show</parameter> applies to all inline 
+elements that are marked up with <tag class="attribute">xlink:href</tag> attributes 
+that point to external resources.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="ulink.footnotes">
+<refmeta>
+<refentrytitle>ulink.footnotes</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.footnotes</refname>
+<refpurpose>Generate footnotes for <tag>ulink</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ulink.footnotes.frag">
+&lt;xsl:param name="ulink.footnotes" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, and if <parameter>ulink.show</parameter> also is non-zero,
+the URL of each <tag>ulink</tag> will appear as a footnote.</para>
+
+<note><para>DocBook 5 does not have an <tag>ulink</tag> element. When processing 
+DocBoook 5 documents, <parameter>ulink.footnotes</parameter> applies to all inline 
+elements that are marked up with <tag class="attribute">xlink:href</tag> attributes 
+that point to external resources.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="ulink.hyphenate">
+<refmeta>
+<refentrytitle>ulink.hyphenate</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.hyphenate</refname>
+<refpurpose>Allow URLs to be automatically hyphenated</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ulink.hyphenate.frag">
+&lt;xsl:param name="ulink.hyphenate"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If not empty, the specified character (or more generally,
+content) is added to URLs after every character included in the string
+in the <parameter>ulink.hyphenate.chars</parameter> parameter (default
+is <quote>/</quote>) to enable hyphenation of ulinks. If the character
+in this parameter is a Unicode soft hyphen (0x00AD) or Unicode
+zero-width space (0x200B), some FO processors will be able to
+reasonably hyphenate long URLs.</para>
+
+<para>Note that this hyphenation process is only applied when the
+ulink element is empty and the url attribute is reused as the link
+text.  It is not applied if the ulink has literal text content. The
+same applies in in DocBook 5, where ulink was replaced with link with
+an xlink:href attribute.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="ulink.hyphenate.chars">
+<refmeta>
+<refentrytitle>ulink.hyphenate.chars</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.hyphenate.chars</refname>
+<refpurpose>List of characters to allow ulink URLs to be automatically
+hyphenated on</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ulink.hyphenate.chars.frag">
+&lt;xsl:param name="ulink.hyphenate.chars"&gt;/&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the <parameter>ulink.hyphenate</parameter> parameter is not
+empty, then hyphenation of ulinks is turned on, and any character
+contained in this parameter is treated as an allowable hyphenation
+point. This and <parameter>ulink.hyphenate</parameter> work together,
+one is pointless without the other being set to a non-empty value</para>
+
+<para>The default value is <quote>/</quote>, but the parameter could
+be customized to contain other URL characters, as for example:</para>
+<programlisting>
+&lt;xsl:param name="ulink.hyphenate.chars"&gt;:/@&amp;?.#&lt;/xsl:param&gt;
+</programlisting>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="shade.verbatim">
+<refmeta>
+<refentrytitle>shade.verbatim</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>shade.verbatim</refname>
+<refpurpose>Should verbatim environments be shaded?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="shade.verbatim.frag">&lt;xsl:param name="shade.verbatim" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In the FO stylesheet, if this parameter is non-zero then the
+<property>shade.verbatim.style</property> properties will be applied
+to verbatim environments.</para>
+
+<para>In the HTML stylesheet, this parameter is now deprecated. Use
+CSS instead.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="shade.verbatim.style">
+<refmeta>
+<refentrytitle>shade.verbatim.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>shade.verbatim.style</refname>
+<refpurpose>Properties that specify the style of shaded verbatim listings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="shade.verbatim.style.frag">
+
+&lt;xsl:attribute-set name="shade.verbatim.style"&gt;
+  &lt;xsl:attribute name="background-color"&gt;#E0E0E0&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties that specify the style of shaded verbatim listings. The
+parameters specified (the border and background color) are added to
+the styling of the xsl-fo output. A border might be specified as "thin
+black solid" for example. See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/2004/WD-xsl11-20041216/#border">xsl-fo</link></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="hyphenate.verbatim">
+<refmeta>
+<refentrytitle>hyphenate.verbatim</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>hyphenate.verbatim</refname>
+<refpurpose>Should verbatim environments be hyphenated on space characters?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="hyphenate.verbatim.frag">&lt;xsl:param name="hyphenate.verbatim" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the lines of program listing are too long to fit into one
+line it is quite common to split them at space and indicite by hook
+arrow that code continues on the next line. You can turn on this
+behaviour for <tag>programlisting</tag>,
+<tag>screen</tag> and <tag>synopsis</tag> elements by
+using this parameter.</para>
+
+<para>Note that you must also enable line wrapping for verbatim environments and
+select appropriate hyphenation character (e.g. hook arrow). This can
+be done using <parameter>monospace.verbatim.properties</parameter>
+attribute set:</para>
+
+<programlisting>&lt;xsl:attribute-set name="monospace.verbatim.properties" 
+                   use-attribute-sets="verbatim.properties monospace.properties"&gt;
+  &lt;xsl:attribute name="wrap-option"&gt;wrap&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenation-character"&gt;&amp;#x25BA;&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+
+<para>For a list of arrows available in Unicode see <uri xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.unicode.org/charts/PDF/U2190.pdf">http://www.unicode.org/charts/PDF/U2190.pdf</uri> and <uri xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.unicode.org/charts/PDF/U2900.pdf">http://www.unicode.org/charts/PDF/U2900.pdf</uri> and make sure that
+selected character is available in the font you are using for verbatim
+environments.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="hyphenate.verbatim.characters">
+<refmeta>
+<refentrytitle>hyphenate.verbatim.characters</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>hyphenate.verbatim.characters</refname>
+<refpurpose>List of characters after which a line break can occur in listings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="hyphenate.verbatim.characters.frag">
+&lt;xsl:param name="hyphenate.verbatim.characters"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you enable <parameter>hyphenate.verbatim</parameter> line
+breaks are allowed only on space characters. If this is not enough for
+your document, you can specify list of additional characters after
+which line break is allowed in this parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="use.svg">
+<refmeta>
+<refentrytitle>use.svg</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.svg</refname>
+<refpurpose>Allow SVG in the result tree?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="use.svg.frag">
+&lt;xsl:param name="use.svg" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, SVG will be considered an acceptable image format. SVG
+is passed through to the result tree, so correct rendering of the resulting
+diagram depends on the formatter (FO processor or web browser) that is used
+to process the output from the stylesheet.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="use.role.as.xrefstyle">
+<refmeta>
+<refentrytitle>use.role.as.xrefstyle</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.role.as.xrefstyle</refname>
+<refpurpose>Use <tag class="attribute">role</tag> attribute for
+<tag class="attribute">xrefstyle</tag> on <tag>xref</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="use.role.as.xrefstyle.frag">
+&lt;xsl:param name="use.role.as.xrefstyle" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In DocBook documents that conform to a schema older than V4.3, this parameter allows 
+<tag class="attribute">role</tag> to serve the purpose of specifying the cross reference style.</para>
+
+<para>If non-zero, the <tag class="attribute">role</tag> attribute on
+<tag>xref</tag> will be used to select the cross reference style.
+In DocBook V4.3, the <tag class="attribute">xrefstyle</tag> attribute was added for this purpose.
+If the <tag class="attribute">xrefstyle</tag> attribute is present, 
+<tag class="attribute">role</tag> will be ignored, regardless of the setting
+of this parameter.</para>
+
+</refsection>
+
+<refsection><info><title>Example</title></info>
+
+<para>The following small stylesheet shows how to configure the
+stylesheets to make use of the cross reference style:</para>
+
+<programlisting>&lt;?xml version="1.0"?&gt;
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0"&gt;
+
+&lt;xsl:import href="../xsl/html/docbook.xsl"/&gt;
+
+&lt;xsl:output method="html"/&gt;
+
+&lt;xsl:param name="local.l10n.xml" select="document('')"/&gt;
+&lt;l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"&gt;
+  &lt;l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="en"&gt;
+   &lt;l:context name="xref"&gt;
+      &lt;l:template name="chapter" style="title" text="Chapter %n, %t"/&gt;
+      &lt;l:template name="chapter" text="Chapter %n"/&gt;
+    &lt;/l:context&gt;
+  &lt;/l:l10n&gt;
+&lt;/l:i18n&gt;
+
+&lt;/xsl:stylesheet&gt;</programlisting>
+
+<para>With this stylesheet, the cross references in the following document:</para>
+
+<programlisting>&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+                  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"&gt;
+&lt;book id="book"&gt;&lt;title&gt;Book&lt;/title&gt;
+
+&lt;preface&gt;
+&lt;title&gt;Preface&lt;/title&gt;
+
+&lt;para&gt;Normal: &lt;xref linkend="ch1"/&gt;.&lt;/para&gt;
+&lt;para&gt;Title: &lt;xref xrefstyle="title" linkend="ch1"/&gt;.&lt;/para&gt;
+
+&lt;/preface&gt;
+
+&lt;chapter id="ch1"&gt;
+&lt;title&gt;First Chapter&lt;/title&gt;
+
+&lt;para&gt;Irrelevant.&lt;/para&gt;
+
+&lt;/chapter&gt;
+&lt;/book&gt;</programlisting>
+
+<para>will appear as:</para>
+
+<informalexample>
+<para>Normal: Chapter 1.</para>
+<para>Title: Chapter 1, <emphasis>First Chapter</emphasis>.</para>
+</informalexample>
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" xml:id="menuchoice.separator">
+<refmeta>
+<refentrytitle>menuchoice.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>menuchoice.separator</refname>
+<refpurpose>Separator between items of a <tag>menuchoice</tag>
+other than <tag>guimenuitem</tag> and
+<tag>guisubmenu</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="menuchoice.separator.frag">
+&lt;xsl:param name="menuchoice.separator"&gt;+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator used to connect items of a <tag>menuchoice</tag> other
+than <tag>guimenuitem</tag> and <tag>guisubmenu</tag>. The latter
+elements are linked with <parameter>menuchoice.menu.separator</parameter>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="menuchoice.menu.separator">
+<refmeta>
+<refentrytitle>menuchoice.menu.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>menuchoice.menu.separator</refname>
+<refpurpose>Separator between items of a <tag>menuchoice</tag>
+with <tag>guimenuitem</tag> or
+<tag>guisubmenu</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="menuchoice.menu.separator.frag">
+&lt;xsl:param name="menuchoice.menu.separator"&gt; &#8594; &lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator used to connect items of a <tag>menuchoice</tag> with
+<tag>guimenuitem</tag> or <tag>guisubmenu</tag>. Other elements
+are linked with <parameter>menuchoice.separator</parameter>.
+</para>
+<para>The default value is &amp;#x2192;, which is the
+&amp;rarr; (right arrow) character entity.  
+The current FOP (0.20.5) requires setting the font-family
+explicitly.
+</para>
+<para>The default value also includes spaces around the arrow,
+which will allow a line to break.  Replace the spaces with
+&amp;#xA0; (nonbreaking space) if you don't want those
+spaces to break.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="default.float.class">
+<refmeta>
+<refentrytitle>default.float.class</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.float.class</refname>
+<refpurpose>Specifies the default float class</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="default.float.class.frag">
+&lt;xsl:param name="default.float.class"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="contains($stylesheet.result.type,'html')"&gt;left&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;before&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the direction in which a float should be placed. for
+xsl-fo this is before, for html it is left. For Western texts, the
+before direction is the top of the page.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footnote.number.format">
+<refmeta>
+<refentrytitle>footnote.number.format</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footnote.number.format</refname>
+<refpurpose>Identifies the format used for footnote numbers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footnote.number.format.frag">
+&lt;xsl:param name="footnote.number.format"&gt;1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>footnote.number.format</parameter> specifies the format
+to use for footnote numeration (1, i, I, a, or A).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.footnote.number.format">
+<refmeta>
+<refentrytitle>table.footnote.number.format</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.footnote.number.format</refname>
+<refpurpose>Identifies the format used for footnote numbers in tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.footnote.number.format.frag">
+&lt;xsl:param name="table.footnote.number.format"&gt;a&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>table.footnote.number.format</parameter> specifies the format
+to use for footnote numeration (1, i, I, a, or A) in tables.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footnote.number.symbols">
+<refmeta>
+<refentrytitle>footnote.number.symbols</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype"/>
+</refmeta>
+<refnamediv>
+<refname>footnote.number.symbols</refname>
+<refpurpose>Special characters to use as footnote markers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footnote.number.symbols.frag">
+&lt;xsl:param name="footnote.number.symbols"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>footnote.number.symbols</parameter> is not the empty string,
+footnotes will use the characters it contains as footnote symbols. For example,
+<quote>*&amp;#x2020;&amp;#x2021;&amp;#x25CA;&amp;#x2720;</quote> will identify
+footnotes with <quote>*</quote>, <quote>&#8224;</quote>, <quote>&#8225;</quote>,
+<quote>&#9674;</quote>, and <quote>&#10016;</quote>. If there are more footnotes
+than symbols, the stylesheets will fall back to numbered footnotes using
+<parameter>footnote.number.format</parameter>.</para>
+
+<para>The use of symbols for footnotes depends on the ability of your
+processor (or browser) to render the symbols you select. Not all systems are
+capable of displaying the full range of Unicode characters. If the quoted characters
+in the preceding paragraph are not displayed properly, that's a good indicator
+that you may have trouble using those symbols for footnotes.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.footnote.number.symbols">
+<refmeta>
+<refentrytitle>table.footnote.number.symbols</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.footnote.number.symbols</refname>
+<refpurpose>Special characters to use a footnote markers in tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.footnote.number.symbols.frag">
+&lt;xsl:param name="table.footnote.number.symbols"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>table.footnote.number.symbols</parameter> is not the empty string,
+table footnotes will use the characters it contains as footnote symbols. For example,
+<quote>*&amp;#x2020;&amp;#x2021;&amp;#x25CA;&amp;#x2720;</quote> will identify
+footnotes with <quote>*</quote>, <quote>&#8224;</quote>, <quote>&#8225;</quote>,
+<quote>&#9674;</quote>, and <quote>&#10016;</quote>. If there are more footnotes
+than symbols, the stylesheets will fall back to numbered footnotes using
+<parameter>table.footnote.number.format</parameter>.</para>
+
+<para>The use of symbols for footnotes depends on the ability of your
+processor (or browser) to render the symbols you select. Not all systems are
+capable of displaying the full range of Unicode characters. If the quoted characters
+in the preceding paragraph are not displayed properly, that's a good indicator
+that you may have trouble using those symbols for footnotes.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footnote.properties">
+<refmeta>
+<refentrytitle>footnote.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>footnote.properties</refname>
+<refpurpose>Properties applied to each footnote body
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footnote.properties.frag">
+&lt;xsl:attribute-set name="footnote.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;&lt;xsl:value-of select="$body.fontset"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-size"&gt;&lt;xsl:value-of select="$footnote.font.size"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;normal&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-style"&gt;normal&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;&lt;xsl:value-of select="$alignment"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="start-indent"&gt;0pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-indent"&gt;0pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;&lt;xsl:value-of select="$hyphenate"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="wrap-option"&gt;wrap&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="linefeed-treatment"&gt;treat-as-space&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is applied to the footnote-block 
+for each footnote.
+It can be used to set the
+font-size, font-family, and other inheritable properties that will be
+applied to all footnotes.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.footnote.properties">
+<refmeta>
+<refentrytitle>table.footnote.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.footnote.properties</refname>
+<refpurpose>Properties applied to each table footnote body
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.footnote.properties.frag">
+&lt;xsl:attribute-set name="table.footnote.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;&lt;xsl:value-of select="$body.fontset"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-size"&gt;&lt;xsl:value-of select="$footnote.font.size"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;normal&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-style"&gt;normal&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before"&gt;2pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;&lt;xsl:value-of select="$alignment"&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 attribute set is applied to the footnote-block 
+for each table footnote.
+It can be used to set the
+font-size, font-family, and other inheritable properties that will be
+applied to all table footnotes.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footnote.mark.properties">
+<refmeta>
+<refentrytitle>footnote.mark.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>footnote.mark.properties</refname>
+<refpurpose>Properties applied to each footnote mark
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footnote.mark.properties.frag">
+&lt;xsl:attribute-set name="footnote.mark.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;&lt;xsl:value-of select="$body.fontset"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-size"&gt;75%&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;normal&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-style"&gt;normal&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is applied to the footnote mark used
+for each footnote.
+It should contain only inline properties.
+</para>
+
+<para>The property to make the mark a superscript is contained in the
+footnote template itself, because the current version of FOP reports
+an error if baseline-shift is used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footnote.sep.leader.properties">
+<refmeta>
+<refentrytitle>footnote.sep.leader.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footnote.sep.leader.properties</refname>
+<refpurpose>Properties associated with footnote separators</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footnote.sep.leader.properties.frag">
+&lt;xsl:attribute-set name="footnote.sep.leader.properties"&gt;
+  &lt;xsl:attribute name="color"&gt;black&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="leader-pattern"&gt;rule&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="leader-length"&gt;1in&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for the rule line that separates the
+footnotes from the body text.
+These are properties applied to the fo:leader used as
+the separator.
+</para>
+<para>If you want to do more than just set properties on
+the leader element, then you can customize the template
+named <literal>footnote.separator</literal> in 
+<filename>fo/pagesetup.xsl</filename>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="xref.with.number.and.title">
+<refmeta>
+<refentrytitle>xref.with.number.and.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.with.number.and.title</refname>
+<refpurpose>Use number and title in cross references</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xref.with.number.and.title.frag">
+&lt;xsl:param name="xref.with.number.and.title" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A cross reference may include the number (for example, the number of
+an example or figure) and the <tag>title</tag> which is a required child of some
+targets. This parameter inserts both the relevant number as well as
+the title into the link. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="superscript.properties">
+<refmeta>
+<refentrytitle>superscript.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>superscript.properties</refname>
+<refpurpose>Properties associated with superscripts</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="superscript.properties.frag">
+&lt;xsl:attribute-set name="superscript.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;75%&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies styling properties for superscripts.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="subscript.properties">
+<refmeta>
+<refentrytitle>subscript.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>subscript.properties</refname>
+<refpurpose>Properties associated with subscripts</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="subscript.properties.frag">
+&lt;xsl:attribute-set name="subscript.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;75%&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies styling properties for subscripts.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="pgwide.properties">
+<refmeta>
+<refentrytitle>pgwide.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>pgwide.properties</refname>
+<refpurpose>Properties to make a figure or table page wide.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="pgwide.properties.frag">
+&lt;xsl:attribute-set name="pgwide.properties"&gt;
+  &lt;xsl:attribute name="start-indent"&gt;0pt&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is used to set the properties
+that make a figure or table "page wide" in fo output.
+It comes into effect when an attribute <literal>pgwide="1"</literal>
+is used.
+</para>
+
+<para>
+By default, it sets <parameter>start-indent</parameter>
+to <literal>0pt</literal>.
+In a stylesheet that sets the parameter
+<parameter>body.start.indent</parameter>
+to a non-zero value in order to indent body text,
+this attribute set can be used to outdent pgwide
+figures to the start margin.
+</para>
+
+<para>If a document uses a multi-column page layout,
+then this attribute set could try setting <parameter>span</parameter>
+to a value of <literal>all</literal>.  However, this may
+not work with some processors because a span property must be on an
+fo:block that is a direct child of fo:flow.  It may work in
+some processors anyway.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="highlight.source">
+<refmeta>
+<refentrytitle>highlight.source</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.source</refname>
+<refpurpose>Should the content of <tag>programlisting</tag>
+be syntactically highlighted?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="highlight.source.frag">
+&lt;xsl:param name="highlight.source" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When this parameter is non-zero, the stylesheets will try to do syntax highlighting of the 
+content of <tag>programlisting</tag> elements. You specify the language for each programlisting 
+by using the <tag class="attribute">language</tag> attribute. The <parameter>highlight.default.language</parameter> 
+parameter can be used to specify the language for programlistings without a <tag class="attribute">language</tag> 
+attribute. Syntax highlighting also works for <tag>screen</tag> and <tag>synopsis</tag> elements.</para>
+
+<para>The actual highlighting work is done by the XSLTHL extension module. This is an external Java library that has to be 
+downloaded separately (see below).</para>
+
+<itemizedlist>
+<para>In order to use this extension, you must</para> 
+
+<listitem><para>add <filename>xslthl-2.x.x.jar</filename> to your Java classpath. The latest version is available
+from <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sourceforge.net/projects/xslthl">the XSLT syntax highlighting project</link> 
+at SourceForge.</para>
+</listitem>
+<listitem>
+<para>use a customization layer in which you import one of the following stylesheet modules: 
+<itemizedlist>
+  <listitem>
+    <para><filename>html/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>xhtml/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>xhtml-1_1/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>fo/highlight.xsl</filename>
+    </para>
+</listitem>
+</itemizedlist>
+</para>
+</listitem>
+<listitem><para>let either the <literal>xslthl.config</literal> Java system property or the
+<parameter>highlight.xslthl.config</parameter> parameter point to the configuration file for syntax 
+highlighting (using URL syntax). DocBook XSL comes with a ready-to-use configuration file, 
+<filename>highlighting/xslthl-config.xml</filename>.</para>
+</listitem>
+</itemizedlist>
+
+<para>The extension works with Saxon 6.5.x and Xalan-J. (Saxon 8.5 or later is also supported, but since it is 
+an XSLT 2.0 processor it is not guaranteed to work with DocBook XSL in all circumstances.)</para>
+
+<para>The following is an example of a Saxon 6 command adapted for syntax highlighting, to be used on Windows:</para>
+
+<informalexample>
+<para><command>java -cp c:/Java/saxon.jar;c:/Java/xslthl-2.0.1.jar 
+-Dxslthl.config=file:///c:/docbook-xsl/highlighting/xslthl-config.xml com.icl.saxon.StyleSheet 
+-o test.html test.xml myhtml.xsl</command></para>
+</informalexample>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="highlight.xslthl.config">
+<refmeta>
+<refentrytitle>highlight.xslthl.config</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.xslthl.config</refname>
+<refpurpose>Location of XSLTHL configuration file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="highlight.xslthl.config.frag">
+&lt;xsl:param name="highlight.xslthl.config"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This location has precedence over the corresponding Java property.</para>
+
+<para>Please note that usually you have to specify location as URL not
+just as a simple path on the local
+filesystem. E.g. <filename>file:///home/user/xslthl/my-xslthl-config.xml</filename>.</para>
+
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="highlight.default.language">
+<refmeta>
+<refentrytitle>highlight.default.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.default.language</refname>
+<refpurpose>Default language of programlisting</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="highlight.default.language.frag">
+&lt;xsl:param name="highlight.default.language"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This language is used when there is no language attribute on programlisting.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="email.delimiters.enabled">
+<refmeta>
+<refentrytitle>email.delimiters.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>email.delimiters.enabled</refname>
+<refpurpose>Generate delimiters around email addresses?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="email.delimiters.enabled.frag">
+&lt;xsl:param name="email.delimiters.enabled" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, delimiters
+
+<footnote><para>For delimiters, the
+stylesheets are currently hard-coded to output angle
+brackets.</para></footnote> 
+
+are generated around e-mail addresses
+(the output of the <tag>email</tag> element).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="email.mailto.enabled">
+<refmeta>
+<refentrytitle>email.mailto.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>email.mailto.enabled</refname>
+<refpurpose>Generate mailto: links for email addresses?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="email.mailto.enabled.frag">
+&lt;xsl:param name="email.mailto.enabled" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero the generated output for the <tag>email</tag> element
+will be a clickable mailto: link that brings up the default mail client
+on the system.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.container.element">
+<refmeta>
+<refentrytitle>section.container.element</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">block</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">wrapper</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.container.element</refname>
+<refpurpose>Select XSL-FO element name to contain sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.container.element.frag">
+&lt;xsl:param name="section.container.element"&gt;block&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the element name for outer container of
+each section. The choices are <literal>block</literal> (default)
+or <literal>wrapper</literal>.
+The <literal>fo:</literal> namespace prefix is added
+by the stylesheet to form the full element name.
+</para>
+
+<para>This element receives the section <literal>id</literal>
+attribute and the appropriate section level attribute-set.
+</para>
+
+<para>Changing this parameter to <literal>wrapper</literal>
+is only necessary when producing multi-column output
+that contains page-wide spans.  Using <literal>fo:wrapper</literal>
+avoids the nesting of <literal>fo:block</literal>
+elements that prevents spans from working (the standard says
+a span must be on a block that is a direct child of 
+<literal>fo:flow</literal>).
+</para>
+
+<para>If set to <literal>wrapper</literal>, the
+section attribute-sets only support properties
+that are inheritable.  That's because there is no
+block to apply them to.  Properties such as
+font-family are inheritable, but properties such as
+border are not.
+</para>
+
+<para>Only some XSL-FO processors need to use this parameter.
+The Antenna House processor, for example, will handle 
+spans in nested blocks without changing the element name.
+The RenderX XEP product and FOP follow the XSL-FO standard 
+and need to use <literal>wrapper</literal>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="monospace.verbatim.font.width">
+<refmeta>
+<refentrytitle>monospace.verbatim.font.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>monospace.verbatim.font.width</refname>
+<refpurpose>Width of a single monospace font character</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="monospace.verbatim.font.width.frag">
+&lt;xsl:param name="monospace.verbatim.font.width"&gt;0.60em&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies with em units the width of a single character
+of the monospace font. The default value is <literal>0.6em</literal>.</para>
+
+<para>This parameter is only used when a <tag>screen</tag>
+or <tag>programlisting</tag> element has a 
+<tag class="attribute">width</tag> attribute, which is
+expressed as a plain integer to indicate the maximum character count
+of each line.
+To convert this character count to an actual maximum width
+measurement, the width of the font characters must be provided.
+Different monospace fonts have different character width,
+so this parameter should be adjusted to fit the 
+monospace font being used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="exsl.node.set.available">
+<refmeta>
+<refentrytitle>exsl.node.set.available</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>exsl.node.set.available</refname>
+<refpurpose>Is the test function-available('exsl:node-set') true?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="exsl.node.set.available.frag">&lt;xsl:param name="exsl.node.set.available"&gt; 
+  &lt;xsl:choose&gt;
+    &lt;xsl:when exsl:foo="" test="function-available('exsl:node-set') or                        contains(system-property('xsl:vendor'),                          'Apache Software Foundation')"&gt;1&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;0&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+then the exsl:node-set() function is available to be used in
+the stylesheet.
+If zero, then the function is not available.
+This param automatically detects the presence of
+the function and does not normally need to be set manually.</para>
+
+<para>This param was created to handle a long-standing
+bug in the Xalan processor that fails to detect the
+function even though it is available.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="bookmarks.collapse">
+<refmeta>
+<refentrytitle>bookmarks.collapse</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo> 
+</refmeta>
+<refnamediv>
+<refname>bookmarks.collapse</refname>
+<refpurpose>Specifies the initial state of bookmarks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="bookmarks.collapse.frag">
+&lt;xsl:param name="bookmarks.collapse" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the bookmark tree is collapsed so that only the 
+top-level bookmarks are displayed initially. Otherwise, the whole tree 
+of bookmarks is displayed.</para>
+
+<para>This parameter currently works with FOP 0.93 or later.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.consistent.ids">
+<refmeta>
+<refentrytitle>generate.consistent.ids</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.consistent.ids</refname>
+<refpurpose>Generate consistent id values if document is unchanged</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="generate.consistent.ids.frag">
+&lt;xsl:param name="generate.consistent.ids" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When the stylesheet assigns an id value to an output element,
+the generate-id() function may be used.  That function may not
+produce consistent values between runs.  Version control
+systems may misidentify the changing id values as changes
+to the document.</para>
+
+<para>If you set this parameter's value to 1, then the
+template named <literal>object.id</literal> will replace
+the use of the function generate-id() with
+<literal>&lt;xsl:number level="multiple" count="*"/&gt;</literal>.
+This counts preceding elements to generate a unique number for
+the id value.</para>
+
+<caution>
+<para>This param does not associate permanent unique id values
+with particular elements.
+The id values are consistent only as long as the document
+structure does not change.
+If the document structure changes, then the counting
+of elements changes, and all id values after
+the first such change may be different, even when there is
+no change to the element itself or its output.
+</para>
+</caution>
+
+<para>The default value of this parameter is zero, so generate-id() is used
+by default.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="base.dir">
+<refmeta>
+<refentrytitle>base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>base.dir</refname>
+<refpurpose>The base directory of chunks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="base.dir.frag">
+&lt;xsl:param name="base.dir"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If specified, the <parameter>base.dir</parameter> parameter identifies
+the output directory for chunks. (If not specified, the output directory
+is system dependent.)</para>
+
+<para>Starting with version 1.77 of the stylesheets, 
+the param's value will have a trailing slash added if it does
+not already have one.</para>
+
+<caution><para>Do not use <parameter>base.dir</parameter>
+to add a filename prefix string to chunked  files. 
+Instead, use the <parameter>chunked.filename.prefix</parameter>
+parameter.</para></caution>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunk.quietly">
+<refmeta>
+<refentrytitle>chunk.quietly</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.quietly</refname>
+<refpurpose>Omit the chunked filename messages.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="chunk.quietly.frag">
+&lt;xsl:param name="chunk.quietly" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), the XSL processor emits a message naming
+each separate chunk filename as it is being output.
+If nonzero, then the messages are suppressed.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="graphics"><title>Graphics</title>
+<refentry version="5.0" xml:id="graphic.default.extension">
+<refmeta>
+<refentrytitle>graphic.default.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphic.default.extension</refname>
+<refpurpose>Default extension for graphic filenames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="graphic.default.extension.frag">&lt;xsl:param name="graphic.default.extension"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If a <tag>graphic</tag> or <tag>mediaobject</tag>
+includes a reference to a filename that does not include an extension,
+and the <tag class="attribute">format</tag> attribute is
+<emphasis>unspecified</emphasis>, the default extension will be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="default.image.width">
+<refmeta>
+<refentrytitle>default.image.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.image.width</refname>
+<refpurpose>The default width of images</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="default.image.width.frag">
+&lt;xsl:param name="default.image.width"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If specified, this value will be used for the
+<tag class="attribute">width</tag> attribute on images that do not specify any 
+<emphasis xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title="DocBook 5: The Definitive Guide" xlink:href="http://docbook.org/tdg5/en/html/imagedata.html#viewport.area">viewport dimensions</emphasis>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="preferred.mediaobject.role">
+<refmeta>
+<refentrytitle>preferred.mediaobject.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>preferred.mediaobject.role</refname>
+<refpurpose>Select which mediaobject to use based on
+this value of an object's <tag class="attribute">role</tag> attribute.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="preferred.mediaobject.role.frag">
+&lt;xsl:param name="preferred.mediaobject.role"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A mediaobject may contain several objects such as imageobjects.
+If the parameter <parameter>use.role.for.mediaobject</parameter> is
+non-zero, then the <literal>role</literal> attribute on
+<tag>imageobject</tag>s and other objects within a
+<tag>mediaobject</tag> container will be used to select which object
+will be used.  If one of the objects has a role value that matches the
+<parameter>preferred.mediaobject.role</parameter> parameter, then it
+has first priority for selection.  If more than one has such a role
+value, the first one is used.
+</para>
+<para>
+See the <parameter>use.role.for.mediaobject</parameter> parameter
+for the sequence of selection.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="use.role.for.mediaobject">
+<refmeta>
+<refentrytitle>use.role.for.mediaobject</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.role.for.mediaobject</refname>
+<refpurpose>Use <tag class="attribute">role</tag> attribute 
+value for selecting which of several objects within a mediaobject to use.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="use.role.for.mediaobject.frag">
+&lt;xsl:param name="use.role.for.mediaobject" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the <tag class="attribute">role</tag> attribute on
+<tag>imageobject</tag>s or other objects within a <tag>mediaobject</tag> container will be used to select which object will be
+used.
+</para>
+<para>
+The order of selection when then parameter is non-zero is:
+</para>
+<orderedlist>
+<listitem>
+    <para>If the stylesheet parameter <parameter>preferred.mediaobject.role</parameter> has a value, then the object whose role equals that value is selected.</para>
+</listitem>
+<listitem>
+<para>Else if an object's role attribute has a value of
+<literal>html</literal> for HTML processing or
+<literal>fo</literal> for FO output, then the first
+of such objects is selected.
+</para>
+</listitem>
+<listitem>
+<para>Else the first suitable object is selected.</para>
+</listitem>
+</orderedlist>
+<para>
+If the value of 
+<parameter>use.role.for.mediaobject</parameter>
+is zero, then role attributes are not considered
+and the first suitable object
+with or without a role value is used.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="ignore.image.scaling">
+<refmeta>
+<refentrytitle>ignore.image.scaling</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ignore.image.scaling</refname>
+<refpurpose>Tell the stylesheets to ignore the author's image scaling attributes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ignore.image.scaling.frag">
+&lt;xsl:param name="ignore.image.scaling" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the scaling attributes on graphics and media objects are
+ignored.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="img.src.path">
+<refmeta>
+<refentrytitle>img.src.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>img.src.path</refname>
+<refpurpose>Path to HTML/FO image files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="img.src.path.frag">&lt;xsl:param name="img.src.path"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Add a path prefix to the value of the <tag class="attribute">fileref</tag> 
+attribute of <tag>graphic</tag>, <tag>inlinegraphic</tag>, and <tag>imagedata</tag> elements. The resulting 
+compound path is used in the output as the value of the <tag class="attribute">src</tag> 
+attribute of <tag class="element">img</tag> (HTML) or <tag class="element">external-graphic</tag> (FO).
+</para>
+
+<para>
+The path given by <literal>img.src.path</literal> could be relative to the directory where the HTML/FO
+files are created, or it could be an absolute URI.
+The default value is empty.
+Be sure to include a trailing slash if needed.
+</para>
+
+<para>This prefix is not applied to any filerefs that start
+with "/" or contain "//:".
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="keep.relative.image.uris">
+<refmeta>
+<refentrytitle>keep.relative.image.uris</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>keep.relative.image.uris</refname>
+<refpurpose>Should image URIs be resolved against xml:base?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="keep.relative.image.uris.frag">
+
+&lt;xsl:param name="keep.relative.image.uris" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, relative URIs (in, for example
+<literal>fileref</literal> attributes) will be used in the generated
+output. Otherwise, the URIs will be made absolute with respect to the
+base URI.</para>
+
+<para>Note that the stylesheets calculate (and use) the absolute form
+for some purposes, this only applies to the resulting output.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="general"><title>Pagination and General Styles</title>
+<partintro xml:id="margins_partintro">
+<section xml:id="margins_intro"><title>Understanding XSL FO Margins</title>
+
+<para>To make sense of the parameters in this section, it's useful to
+consider <xref linkend="fig.pagemodel"/>.</para>
+
+<figure xml:id="fig.pagemodel">
+  <title>Page Model</title>
+  <mediaobject xml:id="fo-pageregions-image">
+    <imageobject role="html">
+      <imagedata fileref="page.png"/>
+    </imageobject>
+    <imageobject role="fo">
+      <imagedata fileref="fo/page.png"/>
+    </imageobject>
+    <textobject><phrase>Figure showing page margins</phrase></textobject>
+    <textobject>
+      <para>This figure shows the physical page with the various FO page regions
+      identified.</para>
+    </textobject>
+  </mediaobject>
+</figure>
+
+<para>First, let's consider the regions on the page.</para>
+
+<para>The white region is the physical page. Its dimensions are determined by
+the <parameter>page.height</parameter> and <parameter>page.width</parameter>
+parameters.</para>
+
+<para>The yellow region is the region-body. The size and placement of
+the region body is constrained by the dimensions labelled in the
+figure.</para>
+
+<para>The pink region at the top of the page is the region-before. The
+darker area inside the region-before is the header text. In XSL, the default
+display alignment for a region is <literal>before</literal>, but the
+DocBook stylesheets still explicitly make it <literal>before</literal>. That's
+why the darker area is at the top.</para>
+
+<para>The pink region at the bottom of the page is the region-after.
+The darker area is the footer text. In XSL, the default display
+alignment for a region is <literal>before</literal>,
+but the DocBook stylesheets explicitly make it
+<literal>after</literal>. That's why the darker area is at the bottom.</para>
+
+<para>The dimensions in the figure are:</para>
+
+<orderedlist numeration="upperalpha">
+<listitem><para>The page-master margin-top.
+</para></listitem>
+<listitem><para>The region-before extent.
+</para></listitem>
+<listitem><para>The region-body margin-top.
+</para></listitem>
+<listitem><para>The region-after extent.
+</para></listitem>
+<listitem><para>The page-master margin-bottom.
+</para></listitem>
+<listitem><para>The region-body margin-bottom.
+</para></listitem>
+<listitem><para>The sum of the page-master margin-left and the
+region-body margin-left. In DocBook, the region-body margin-left is
+zero by default, so this is simply the page-master margin-left.
+</para></listitem>
+<listitem><para>The sum of the page-master margin-right and the
+region-body margin-right. In DocBook, the region-body margin-right is
+zero by default, so this is simply the page-master margin-right.
+</para></listitem>
+</orderedlist>
+
+</section>
+</partintro>
+
+<refentry version="5.0" xml:id="page.height">
+<refmeta>
+<refentrytitle>page.height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.height</refname>
+<refpurpose>The height of the physical page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="page.height.frag">&lt;xsl:param name="page.height"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$page.orientation = 'portrait'"&gt;
+      &lt;xsl:value-of select="$page.height.portrait"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:value-of select="$page.width.portrait"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The page height is generally calculated from the
+<parameter>paper.type</parameter> and
+<parameter>page.orientation</parameter> parameters.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="page.height.portrait">
+<refmeta>
+<refentrytitle>page.height.portrait</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.height.portrait</refname>
+<refpurpose>Specify the physical size of the long edge of the page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="page.height.portrait.frag">&lt;xsl:param name="page.height.portrait"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$paper.type = 'A4landscape'"&gt;210mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'USletter'"&gt;11in&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'USlandscape'"&gt;8.5in&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = '4A0'"&gt;2378mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = '2A0'"&gt;1682mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A0'"&gt;1189mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A1'"&gt;841mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A2'"&gt;594mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A3'"&gt;420mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A4'"&gt;297mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A5'"&gt;210mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A6'"&gt;148mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A7'"&gt;105mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A8'"&gt;74mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A9'"&gt;52mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A10'"&gt;37mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B0'"&gt;1414mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B1'"&gt;1000mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B2'"&gt;707mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B3'"&gt;500mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B4'"&gt;353mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B5'"&gt;250mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B6'"&gt;176mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B7'"&gt;125mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B8'"&gt;88mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B9'"&gt;62mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B10'"&gt;44mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C0'"&gt;1297mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C1'"&gt;917mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C2'"&gt;648mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C3'"&gt;458mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C4'"&gt;324mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C5'"&gt;229mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C6'"&gt;162mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C7'"&gt;114mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C8'"&gt;81mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C9'"&gt;57mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C10'"&gt;40mm&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;11in&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The portrait page height is the length of the long
+edge of the physical page.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="page.margin.bottom">
+<refmeta>
+<refentrytitle>page.margin.bottom</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.margin.bottom</refname>
+<refpurpose>The bottom margin of the page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="page.margin.bottom.frag">
+&lt;xsl:param name="page.margin.bottom"&gt;0.5in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The bottom page margin is the distance from the bottom of the region-after
+to the physical bottom of the page.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="page.margin.inner">
+<refmeta>
+<refentrytitle>page.margin.inner</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.margin.inner</refname>
+<refpurpose>The inner page margin</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="page.margin.inner.frag">&lt;xsl:param name="page.margin.inner"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$double.sided != 0"&gt;1.25in&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;1in&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The inner page margin is the distance from bound edge of the
+page to the first column of text. </para>
+
+<para>The inner page margin is the distance from bound edge of the
+page to the outer edge of the first column of text.</para>
+
+<para>In left-to-right text direction,
+this is the left margin of recto (front side) pages.
+For single-sided output, it is the left margin
+of all pages.</para>
+
+<para>In right-to-left text direction,
+this is the right margin of recto pages.
+For single-sided output, this is the
+right margin of all pages.</para>
+
+<note>
+<para>Current versions (at least as of version 4.13)
+of the XEP XSL-FO processor do not
+correctly handle these margin settings for documents
+with right-to-left text direction.
+The workaround in that situation is to reverse
+the values for <parameter>page.margin.inner</parameter>
+and <parameter>page.margin.outer</parameter>, until
+this bug is fixed by RenderX.  It does not affect documents
+with left-to-right text direction.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="page.margin.outer">
+<refmeta>
+<refentrytitle>page.margin.outer</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.margin.outer</refname>
+<refpurpose>The outer page margin</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="page.margin.outer.frag">&lt;xsl:param name="page.margin.outer"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$double.sided != 0"&gt;0.75in&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;1in&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The outer page margin is the distance from non-bound edge of the
+page to the outer edge of the last column of text.</para>
+
+<para>In left-to-right text direction,
+this is the right margin of recto (front side) pages.
+For single-sided output, it is the right margin
+of all pages.</para>
+
+<para>In right-to-left text direction,
+this is the left margin of recto pages.
+For single-sided output, this is the
+left margin of all pages.</para>
+
+<note>
+<para>Current versions (at least as of version 4.13)
+of the XEP XSL-FO processor do not
+correctly handle these margin settings for documents
+with right-to-left text direction.
+The workaround in that situation is to reverse
+the values for <parameter>page.margin.inner</parameter>
+and <parameter>page.margin.outer</parameter>, until
+this bug is fixed by RenderX.  It does not affect documents
+with left-to-right text direction.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="page.margin.top">
+<refmeta>
+<refentrytitle>page.margin.top</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.margin.top</refname>
+<refpurpose>The top margin of the page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="page.margin.top.frag">
+&lt;xsl:param name="page.margin.top"&gt;0.5in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The top page margin is the distance from the physical top of the
+page to the top of the region-before.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="page.orientation">
+<refmeta>
+<refentrytitle>page.orientation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">portrait</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">landscape</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.orientation</refname>
+<refpurpose>Select the page orientation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="page.orientation.frag">
+&lt;xsl:param name="page.orientation"&gt;portrait&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para> Select one from portrait or landscape.
+In portrait orientation, the short edge is horizontal; in
+landscape orientation, it is vertical.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="page.width">
+<refmeta>
+<refentrytitle>page.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.width</refname>
+<refpurpose>The width of the physical page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="page.width.frag">&lt;xsl:param name="page.width"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$page.orientation = 'portrait'"&gt;
+      &lt;xsl:value-of select="$page.width.portrait"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:value-of select="$page.height.portrait"&gt;&lt;/xsl:value-of&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The page width is generally calculated from the
+<parameter>paper.type</parameter> and 
+<parameter>page.orientation</parameter> parameters.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="page.width.portrait">
+<refmeta>
+<refentrytitle>page.width.portrait</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.width.portrait</refname>
+<refpurpose>Specify the physical size of the short edge of the page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="page.width.portrait.frag">&lt;xsl:param name="page.width.portrait"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$paper.type = 'USletter'"&gt;8.5in&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = '4A0'"&gt;1682mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = '2A0'"&gt;1189mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A0'"&gt;841mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A1'"&gt;594mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A2'"&gt;420mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A3'"&gt;297mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A4'"&gt;210mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A5'"&gt;148mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A6'"&gt;105mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A7'"&gt;74mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A8'"&gt;52mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A9'"&gt;37mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A10'"&gt;26mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B0'"&gt;1000mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B1'"&gt;707mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B2'"&gt;500mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B3'"&gt;353mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B4'"&gt;250mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B5'"&gt;176mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B6'"&gt;125mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B7'"&gt;88mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B8'"&gt;62mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B9'"&gt;44mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B10'"&gt;31mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C0'"&gt;917mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C1'"&gt;648mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C2'"&gt;458mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C3'"&gt;324mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C4'"&gt;229mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C5'"&gt;162mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C6'"&gt;114mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C7'"&gt;81mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C8'"&gt;57mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C9'"&gt;40mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C10'"&gt;28mm&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;8.5in&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The portrait page width is the length of the short
+edge of the physical page.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="paper.type">
+<refmeta>
+<refentrytitle>paper.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="list-type">open</refmiscinfo>
+<refmiscinfo class="other" otherclass="list-type">open</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">USletter<alt>8.5x11in</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">USlandscape<alt>11x8.5in</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">USlegal<alt>8.5inx14in</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">USlegallandscape<alt>14inx8.5in</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">4A0<alt>2378x1682mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">2A0<alt>1682x1189mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A0<alt>1189x841mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A1<alt>841x594mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A2<alt>594x420mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A3<alt>420x297mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A4<alt>297x210mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A5<alt>210x148mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A6<alt>148x105mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A7<alt>105x74mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A8<alt>74x52mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A9<alt>52x37mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A10<alt>37x26mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B0<alt>1414x1000mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B1<alt>1000x707mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B2<alt>707x500mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B3<alt>500x353mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B4<alt>353x250mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B5<alt>250x176mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B6<alt>176x125mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B7<alt>125x88mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B8<alt>88x62mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B9<alt>62x44mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B10<alt>44x31mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C0<alt>1297x917mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C1<alt>917x648mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C2<alt>648x458mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C3<alt>458x324mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C4<alt>324x229mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C5<alt>229x162mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C6<alt>162x114mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C7<alt>114x81mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C8<alt>81x57mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C9<alt>57x40mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C10<alt>40x28mm</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>paper.type</refname>
+<refpurpose>Select the paper type</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="paper.type.frag">
+&lt;xsl:param name="paper.type"&gt;USletter&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The paper type is a convenient way to specify the paper size.
+The list of known paper sizes includes USletter and most of the A,
+B, and C sizes. See <parameter>page.width.portrait</parameter>, for example.
+
+
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="double.sided">
+<refmeta>
+<refentrytitle>double.sided</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>double.sided</refname>
+<refpurpose>Is the document to be printed double sided?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="double.sided.frag">
+&lt;xsl:param name="double.sided" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Double-sided documents are printed with a slightly wider margin
+on the binding edge of the page.
+</para>
+<para>FIXME: The current set of parameters does not take writing direction
+into account.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="body.margin.bottom">
+<refmeta>
+<refentrytitle>body.margin.bottom</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.margin.bottom</refname>
+<refpurpose>The bottom margin of the body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="body.margin.bottom.frag">
+&lt;xsl:param name="body.margin.bottom"&gt;0.5in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The body bottom margin is the distance from the last line of text
+in the page body to the bottom of the region-after.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="body.margin.top">
+<refmeta>
+<refentrytitle>body.margin.top</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.margin.top</refname>
+<refpurpose>To specify the size of the top margin of a page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="body.margin.top.frag">
+&lt;xsl:param name="body.margin.top"&gt;0.5in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The body top margin is the distance from the top of the
+region-before to the first line of text in the page body.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="body.margin.inner">
+<refmeta>
+<refentrytitle>body.margin.inner</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.margin.inner</refname>
+<refpurpose>Specify the size of the inner margin of the body region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="body.margin.inner.frag">
+&lt;xsl:param name="body.margin.inner"&gt;0in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The inner body margin is the extra inner side 
+(binding side) margin taken from the body
+region in addition to the inner page margin.
+It makes room for a side region for text content whose width is 
+specified by the <parameter>region.inner.extent</parameter>
+parameter.</para>
+
+<para>For double-sided output,
+this side region 
+is <literal>fo:region-start</literal> on a odd-numbered page,
+and <literal>fo:region-end</literal> on an even-numbered page.</para>
+
+<para>For single-sided output,
+this side region
+is <literal>fo:region-start</literal> for all pages.</para>
+
+<para>This correspondence applies to all languages,
+both left-to-right and right-to-left writing modes.</para>
+
+<para>The default value is zero.</para>
+
+<para>See also
+<parameter>region.inner.extent</parameter>,
+<parameter>region.outer.extent</parameter>,
+<parameter>body.margin.outer</parameter>,
+<parameter>side.region.precedence</parameter>.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="body.margin.outer">
+<refmeta>
+<refentrytitle>body.margin.outer</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.margin.outer</refname>
+<refpurpose>Specify the size of the outer margin of the body region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="body.margin.outer.frag">
+&lt;xsl:param name="body.margin.outer"&gt;0in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The outer body margin is the extra outer side 
+(opposite the binding side) margin taken
+from the body
+region in addition to the outer page margin.
+It makes room for a side region for text content whose width is 
+specified by the <parameter>region.outer.extent</parameter>
+parameter.</para>
+
+<para>For double-sided output,
+this side region 
+is <literal>fo:region-end</literal> on a odd-numbered page,
+and <literal>fo:region-start</literal> on an even-numbered page.</para>
+
+<para>For single-sided output,
+this side region
+is <literal>fo:region-end</literal> for all pages.</para>
+
+<para>This correspondence applies to all languages,
+both left-to-right and right-to-left writing modes.</para>
+
+<para>The default value is zero.</para>
+
+<para>See also
+<parameter>region.inner.extent</parameter>,
+<parameter>region.outer.extent</parameter>,
+<parameter>body.margin.inner</parameter>,
+<parameter>side.region.precedence</parameter>.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="body.start.indent">
+<refmeta>
+<refentrytitle>body.start.indent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.start.indent</refname>
+<refpurpose>The start-indent for the body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="body.start.indent.frag">
+&lt;xsl:param name="body.start.indent"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$fop.extensions != 0"&gt;0pt&lt;/xsl:when&gt;
+    &lt;xsl:when test="$passivetex.extensions != 0"&gt;0pt&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;4pc&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter provides
+the means of indenting the body text relative to
+section titles.
+For left-to-right text direction, it indents the left side.
+For right-to-left text direction, it indents the right side.
+It is used in place of the 
+<parameter>title.margin.left</parameter> for
+all XSL-FO processors except FOP 0.25.
+It enables support for side floats to appear
+in the indented margin area.
+</para>
+<para>This start-indent property is added to the fo:flow
+for certain page sequences.  Which page-sequences it is 
+applied to is determined by the template named
+<literal>set.flow.properties</literal>.
+By default, that template adds it to the flow
+for page-sequences using the <quote>body</quote>
+master-reference, as well as appendixes and prefaces.
+</para>
+<para>If this parameter is used, section titles should have
+a start-indent value of 0pt if they are to be
+outdented relative to the body text.
+</para>
+
+<para>If you are using FOP, then set this parameter to a zero
+width value and set the <parameter>title.margin.left</parameter>
+parameter to the negative value of the desired indent.
+</para>
+
+<para>See also <parameter>body.end.indent</parameter> and
+<parameter>title.margin.left</parameter>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="body.end.indent">
+<refmeta>
+<refentrytitle>body.end.indent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.end.indent</refname>
+<refpurpose>The end-indent for the body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="body.end.indent.frag">
+&lt;xsl:param name="body.end.indent"&gt;0pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This end-indent property is added to the fo:flow
+for certain page sequences.  Which page-sequences it is 
+applied to is determined by the template named
+<literal>set.flow.properties</literal>.
+By default, that template adds it to the flow
+for page-sequences using the <quote>body</quote>
+master-reference, as well as appendixes and prefaces.
+</para>
+
+<para>See also <parameter>body.start.indent</parameter>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="alignment">
+<refmeta>
+<refentrytitle>alignment</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+  <refmiscinfo class="other" otherclass="list-type">open</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">left</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">start</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">right</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">end</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">center</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">justify</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>alignment</refname>
+<refpurpose>Specify the default text alignment</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="alignment.frag">&lt;xsl:param name="alignment"&gt;justify&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The default text alignment is used for most body text.
+Allowed values are 
+<literal>left</literal>,
+<literal>right</literal>,
+<literal>start</literal>,
+<literal>end</literal>,
+<literal>center</literal>,
+<literal>justify</literal>.
+The default value is <literal>justify</literal>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="hyphenate">
+<refmeta>
+<refentrytitle>hyphenate</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="list-type">closed</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">true</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">false</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>hyphenate</refname>
+<refpurpose>Specify hyphenation behavior</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="hyphenate.frag">&lt;xsl:param name="hyphenate"&gt;true&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, words may be hyphenated. Otherwise, they may not.</para>
+<para>See also <parameter>ulink.hyphenate.chars</parameter> </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="line-height">
+<refmeta>
+<refentrytitle>line-height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>line-height</refname>
+<refpurpose>Specify the line-height property</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="line-height.frag">
+&lt;xsl:param name="line-height"&gt;normal&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the line-height property.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="column.count.back">
+<refmeta>
+<refentrytitle>column.count.back</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.back</refname>
+<refpurpose>Number of columns on back matter pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="column.count.back.frag">
+&lt;xsl:param name="column.count.back" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on back matter (appendix, glossary, etc.) pages.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="column.count.body">
+<refmeta>
+<refentrytitle>column.count.body</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.body</refname>
+<refpurpose>Number of columns on body pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="column.count.body.frag">
+&lt;xsl:param name="column.count.body" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on body pages.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="column.count.front">
+<refmeta>
+<refentrytitle>column.count.front</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.front</refname>
+<refpurpose>Number of columns on front matter pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="column.count.front.frag">
+&lt;xsl:param name="column.count.front" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on front matter (dedication, preface, etc.) pages.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="column.count.index">
+<refmeta>
+<refentrytitle>column.count.index</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.index</refname>
+<refpurpose>Number of columns on index pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="column.count.index.frag">
+&lt;xsl:param name="column.count.index"&gt;2&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on index pages.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="column.count.lot">
+<refmeta>
+<refentrytitle>column.count.lot</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.lot</refname>
+<refpurpose>Number of columns on a 'List-of-Titles' page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="column.count.lot.frag">
+&lt;xsl:param name="column.count.lot" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on a page sequence containing the Table of Contents,
+List of Figures, etc.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="column.count.titlepage">
+<refmeta>
+<refentrytitle>column.count.titlepage</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.titlepage</refname>
+<refpurpose>Number of columns on a title page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="column.count.titlepage.frag">
+&lt;xsl:param name="column.count.titlepage" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on a title page</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="column.gap.back">
+<refmeta>
+<refentrytitle>column.gap.back</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.back</refname>
+<refpurpose>Gap between columns in back matter</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="column.gap.back.frag">
+&lt;xsl:param name="column.gap.back"&gt;12pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns in back matter (if
+<parameter>column.count.back</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="column.gap.body">
+<refmeta>
+<refentrytitle>column.gap.body</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.body</refname>
+<refpurpose>Gap between columns in the body</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="column.gap.body.frag">
+&lt;xsl:param name="column.gap.body"&gt;12pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns in body matter (if
+<parameter>column.count.body</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="column.gap.front">
+<refmeta>
+<refentrytitle>column.gap.front</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.front</refname>
+<refpurpose>Gap between columns in the front matter</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="column.gap.front.frag">
+&lt;xsl:param name="column.gap.front"&gt;12pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns in front matter (if
+<parameter>column.count.front</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="column.gap.index">
+<refmeta>
+<refentrytitle>column.gap.index</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.index</refname>
+<refpurpose>Gap between columns in the index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="column.gap.index.frag">
+&lt;xsl:param name="column.gap.index"&gt;12pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns in indexes (if
+<parameter>column.count.index</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="column.gap.lot">
+<refmeta>
+<refentrytitle>column.gap.lot</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.lot</refname>
+<refpurpose>Gap between columns on a 'List-of-Titles' page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="column.gap.lot.frag">
+&lt;xsl:param name="column.gap.lot"&gt;12pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns on 'List-of-Titles' pages (if
+<parameter>column.count.lot</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="column.gap.titlepage">
+<refmeta>
+<refentrytitle>column.gap.titlepage</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.titlepage</refname>
+<refpurpose>Gap between columns on title pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="column.gap.titlepage.frag">
+&lt;xsl:param name="column.gap.titlepage"&gt;12pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns on title pages (if
+<parameter>column.count.titlepage</parameter> is greater than one).</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="region.after.extent">
+<refmeta>
+<refentrytitle>region.after.extent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.after.extent</refname>
+<refpurpose>Specifies the height of the footer.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="region.after.extent.frag">
+&lt;xsl:param name="region.after.extent"&gt;0.4in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The region after extent is the height of the area where footers
+are printed.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="region.before.extent">
+<refmeta>
+<refentrytitle>region.before.extent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.before.extent</refname>
+<refpurpose>Specifies the height of the header</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="region.before.extent.frag">
+&lt;xsl:param name="region.before.extent"&gt;0.4in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The region before extent is the height of the area where headers
+are printed.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="region.inner.extent">
+<refmeta>
+<refentrytitle>region.inner.extent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.inner.extent</refname>
+<refpurpose>Specifies the width of the inner side region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="region.inner.extent.frag">
+&lt;xsl:param name="region.inner.extent"&gt;0in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The region inner extent is the width of the optional
+text area next to the inner side (binding side) of the
+body region.  </para>
+
+<para>For double-sided output, this side region 
+is <literal>fo:region-start</literal> on a odd-numbered page,
+and <literal>fo:region-end</literal> on an even-numbered page.</para>
+
+<para>For single-sided output, this side region
+is <literal>fo:region-start</literal> for all pages.</para>
+
+<para>This correspondence applies to all languages,
+both left-to-right and right-to-left writing modes.</para>
+
+<para>The default value of this parameter is zero.  If you enlarge this extent,
+be sure to also enlarge the <parameter>body.margin.inner</parameter>
+parameter to make room for its content, otherwise any text in
+the side region may overlap with the body text.</para>
+
+<para>See also
+<parameter>region.outer.extent</parameter>,
+<parameter>body.margin.inner</parameter>,
+<parameter>body.margin.outer</parameter>,
+<parameter>side.region.precedence</parameter>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="region.outer.extent">
+<refmeta>
+<refentrytitle>region.outer.extent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.outer.extent</refname>
+<refpurpose>Specifies the width of the outer side region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="region.outer.extent.frag">
+&lt;xsl:param name="region.outer.extent"&gt;0in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The region outer extent is the width of the optional
+text area next to the outer side (opposite the binding side) of the
+body region.  </para>
+
+<para>For double-sided output, this side region 
+is <literal>fo:region-end</literal> on a odd-numbered page,
+and <literal>fo:region-start</literal> on an even-numbered page.</para>
+
+<para>For single-sided output, this side region
+is <literal>fo:region-end</literal> for all pages.</para>
+
+<para>This correspondence applies to all languages,
+both left-to-right and right-to-left writing modes.</para>
+
+<para>The default value of this parameter is zero.  If you enlarge this extent,
+be sure to also enlarge the <parameter>body.margin.outer</parameter>
+parameter to make room for its content, otherwise any text in
+the side region may overlap with the body text.</para>
+
+<para>See also
+<parameter>region.inner.extent</parameter>,
+<parameter>body.margin.inner</parameter>,
+<parameter>body.margin.outer</parameter>,
+<parameter>side.region.precedence</parameter>.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="default.units">
+<refmeta>
+<refentrytitle>default.units</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">cm</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">mm</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">in</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">pt</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">pc</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">px</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">em</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.units</refname>
+<refpurpose>Default units for an unqualified dimension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="default.units.frag">
+&lt;xsl:param name="default.units"&gt;pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If an unqualified dimension is encountered (for example, in a
+graphic width), the <parameter>default.units</parameter> will be used for the
+units. Unqualified dimensions are not allowed in XSL Formatting Objects.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="normal.para.spacing">
+<refmeta>
+<refentrytitle>normal.para.spacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>normal.para.spacing</refname>
+<refpurpose>What space do you want between normal paragraphs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="normal.para.spacing.frag">&lt;xsl:attribute-set name="normal.para.spacing"&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify the spacing required between normal paragraphs as well as
+the following block-level elements:
+</para>
+<literallayout>ackno
+acknowledgements
+cmdsynopsis
+glosslist
+sidebar
+simpara
+simplelist
+</literallayout>
+<para>To customize the spacing, you need to reset all three attributes.</para>
+
+<para>To specify properties on just <tag>para</tag> elements without
+affecting these other elements,
+use the
+<link linkend="para.properties">para.properties</link>
+attribute-set. </para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="para.properties">
+<refmeta>
+<refentrytitle>para.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>para.properties</refname>
+<refpurpose>Properties to apply to para elements</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="para.properties.frag">&lt;xsl:attribute-set name="para.properties" use-attribute-sets="normal.para.spacing"&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify properties to apply to the fo:block of a para element,
+such as <literal>text-indent</literal>.
+Although the default attribute-set is empty, it uses the attribute-set
+named <literal>normal.para.spacing</literal> to add vertical space before
+each para. The <literal>para.properties</literal> attribute-set can override those 
+spacing properties for para only.</para>
+<para>See also
+<link linkend="normal.para.spacing">normal.para.spacing</link>.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="body.font.master">
+<refmeta>
+<refentrytitle>body.font.master</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">number</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.font.master</refname>
+<refpurpose>Specifies the default point size for body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="body.font.master.frag">
+&lt;xsl:param name="body.font.master"&gt;10&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The body font size is specified in two parameters
+(<parameter>body.font.master</parameter> and <parameter>body.font.size</parameter>)
+so that math can be performed on the font size by XSLT.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="body.font.size">
+<refmeta>
+<refentrytitle>body.font.size</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.font.size</refname>
+<refpurpose>Specifies the default font size for body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="body.font.size.frag">
+&lt;xsl:param name="body.font.size"&gt;
+ &lt;xsl:value-of select="$body.font.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>The body font size is specified in two parameters
+(<parameter>body.font.master</parameter> and <parameter>body.font.size</parameter>)
+so that math can be performed on the font size by XSLT.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footnote.font.size">
+<refmeta>
+<refentrytitle>footnote.font.size</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footnote.font.size</refname>
+<refpurpose>The font size for footnotes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footnote.font.size.frag">&lt;xsl:param name="footnote.font.size"&gt;
+ &lt;xsl:value-of select="$body.font.master * 0.8"&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>The footnote font size is used for...footnotes!
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="title.margin.left">
+<refmeta>
+<refentrytitle>title.margin.left</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>title.margin.left</refname>
+<refpurpose>Adjust the left margin for titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="title.margin.left.frag">
+&lt;xsl:param name="title.margin.left"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$fop.extensions != 0"&gt;-4pc&lt;/xsl:when&gt;
+    &lt;xsl:when test="$passivetex.extensions != 0"&gt;0pt&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;0pt&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter provides
+the means of adjusting the left margin for titles
+when the XSL-FO processor being used is
+an old version of FOP (0.25 and earlier).
+It is only useful when the <parameter>fop.extensions</parameter>
+is nonzero.</para>
+
+<para>The left margin of the body region
+is calculated to include this space,
+and titles are outdented to the left outside
+the body region by this amount,
+effectively leaving titles at the intended left margin
+and the body text indented.
+Currently this method is only used for old FOP because
+it cannot properly use the <parameter>body.start.indent</parameter>
+parameter.
+</para>
+<para>
+The default value when the <parameter>fop.extensions</parameter>
+parameter is nonzero is -4pc, which means the
+body text is indented 4 picas relative to
+the titles.
+The default value when the <parameter>fop.extensions</parameter>
+parameter equals zero is 0pt, and
+the body indent should instead be specified
+using the <parameter>body.start.indent</parameter>
+parameter.
+</para>
+<para>
+If you set the value to zero, be sure to still include
+a unit indicator such as <literal>0pt</literal>, or
+the FO processor will report errors.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="draft.mode">
+<refmeta>
+<refentrytitle>draft.mode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>draft.mode</refname>
+<refpurpose>Select draft mode</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="draft.mode.frag">
+&lt;xsl:param name="draft.mode"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects draft mode. If <parameter>draft.mode</parameter> is
+<quote><literal>yes</literal></quote>, the entire document will be treated
+as a draft. If it is <quote><literal>no</literal></quote>, the entire document
+will be treated as a final copy. If it is <quote><literal>maybe</literal></quote>,
+individual sections will be treated as draft or final independently, depending
+on how their <literal>status</literal> attribute is set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="draft.watermark.image">
+<refmeta>
+<refentrytitle>draft.watermark.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>draft.watermark.image</refname>
+<refpurpose>The URI of the image to be used for draft watermarks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="draft.watermark.image.frag">
+&lt;xsl:param name="draft.watermark.image"&gt;images/draft.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The image to be used for draft watermarks.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="headers.on.blank.pages">
+<refmeta>
+<refentrytitle>headers.on.blank.pages</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>headers.on.blank.pages</refname>
+<refpurpose>Put headers on blank pages?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="headers.on.blank.pages.frag">
+&lt;xsl:param name="headers.on.blank.pages" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, headers will be placed on blank pages.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footers.on.blank.pages">
+<refmeta>
+<refentrytitle>footers.on.blank.pages</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footers.on.blank.pages</refname>
+<refpurpose>Put footers on blank pages?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footers.on.blank.pages.frag">
+&lt;xsl:param name="footers.on.blank.pages" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, footers will be placed on blank pages.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="header.rule">
+<refmeta>
+<refentrytitle>header.rule</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.rule</refname>
+<refpurpose>Rule under headers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="header.rule.frag">
+&lt;xsl:param name="header.rule" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a rule will be drawn below the page headers.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footer.rule">
+<refmeta>
+<refentrytitle>footer.rule</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.rule</refname>
+<refpurpose>Rule over footers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footer.rule.frag">
+&lt;xsl:param name="footer.rule" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a rule will be drawn above the page footers.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="header.column.widths">
+<refmeta>
+<refentrytitle>header.column.widths</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.column.widths</refname>
+<refpurpose>Specify relative widths of header areas</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><programlisting xml:id="header.column.widths.frag">
+&lt;xsl:param name="header.column.widths"&gt;1 1 1&lt;/xsl:param&gt;
+</programlisting></refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Page headers in print output use a three column table
+to position text at the left, center, and right side of
+the header on the page.
+This parameter lets you specify the relative sizes of the
+three columns.  The default value is
+"1 1 1".</para>
+
+<para>The parameter value must be three numbers, separated
+by white space. The first number represents the relative
+width of the inside header for
+double-sided output.  The second number is the relative
+width of the center header.  The third number is the
+relative width of the outside header for
+double-sided output.
+</para>
+<para>For single-sided output, the first number is the
+relative width of left header for left-to-right
+text direction, or the right header for right-to-left
+text direction.  
+The third number is the
+relative width of right header for left-to-right
+text direction, or the left header for right-to-left
+text direction.</para>
+
+<para>The numbers are used to specify the column widths
+for the table that makes up the header area.
+In the FO output, this looks like:
+</para>
+
+<programlisting>
+&lt;fo:table-column column-number="1" 
+    column-width="proportional-column-width(1)"/&gt;
+</programlisting>
+
+<para>
+The <literal>proportional-column-width()</literal>
+function computes a column width by dividing its
+argument by the total of the arguments for all the columns, and
+then multiplying the result by the width of the whole table
+(assuming all the column specs use the function).
+Its argument can be any positive integer or floating point number.
+Zero is an acceptable value, although some FO processors
+may warn about it, in which case using a very small number might
+be more satisfactory.
+</para>
+
+<para>For example, the value "1 2 1" means the center
+header should have twice the width of the other areas.
+A value of "0 0 1" means the entire header area
+is reserved for the right (or outside) header text.
+Note that to keep the center area centered on
+the page, the left and right values must be
+the same. A specification like "1 2 3" means the
+center area is no longer centered on the page
+since the right area is three times the width of the left area.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footer.column.widths">
+<refmeta>
+<refentrytitle>footer.column.widths</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.column.widths</refname>
+<refpurpose>Specify relative widths of footer areas</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><programlisting xml:id="footer.column.widths.frag">
+&lt;xsl:param name="footer.column.widths"&gt;1 1 1&lt;/xsl:param&gt;
+</programlisting></refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Page footers in print output use a three column table
+to position text at the left, center, and right side of
+the footer on the page.
+This parameter lets you specify the relative sizes of the
+three columns.  The default value is
+"1 1 1".</para>
+
+<para>The parameter value must be three numbers, separated
+by white space. The first number represents the relative
+width of the inside footer for
+double-sided output.  The second number is the relative
+width of the center footer.  The third number is the
+relative width of the outside footer for
+double-sided output.
+</para>
+<para>For single-sided output, the first number is the
+relative width of left footer for left-to-right
+text direction, or the right footer for right-to-left
+text direction.  
+The third number is the
+relative width of right footer for left-to-right
+text direction, or the left footer for right-to-left
+text direction.</para>
+
+<para>The numbers are used to specify the column widths
+for the table that makes up the footer area.
+In the FO output, this looks like:
+</para>
+
+<programlisting>
+&lt;fo:table-column column-number="1" 
+    column-width="proportional-column-width(1)"/&gt;
+</programlisting>
+
+<para>
+The <literal>proportional-column-width()</literal>
+function computes a column width by dividing its
+argument by the total of the arguments for all the columns, and
+then multiplying the result by the width of the whole table
+(assuming all the column specs use the function).
+Its argument can be any positive integer or floating point number.
+Zero is an acceptable value, although some FO processors
+may warn about it, in which case using a very small number might
+be more satisfactory.
+</para>
+
+<para>For example, the value "1 2 1" means the center
+footer should have twice the width of the other areas.
+A value of "0 0 1" means the entire footer area
+is reserved for the right (or outside) footer text.
+Note that to keep the center area centered on
+the page, the left and right values must be
+the same. A specification like "1 2 3" means the
+center area is no longer centered on the page
+since the right area is three times the width of the left area.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="header.table.properties">
+<refmeta>
+<refentrytitle>header.table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.table.properties</refname>
+<refpurpose>Apply properties to the header layout table</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="header.table.properties.frag">
+&lt;xsl:attribute-set name="header.table.properties"&gt;
+  &lt;xsl:attribute name="table-layout"&gt;fixed&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="width"&gt;100%&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties applied to the table that lays out the page header.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="header.table.height">
+<refmeta>
+<refentrytitle>header.table.height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.table.height</refname>
+<refpurpose>Specify the minimum height of the table containing the running page headers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><programlisting xml:id="header.table.height.frag">
+&lt;xsl:param name="header.table.height"&gt;14pt&lt;/xsl:param&gt;
+</programlisting></refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Page headers in print output use a three column table
+to position text at the left, center, and right side of
+the header on the page.
+This parameter lets you specify the minimum height 
+of the single row in the table.  
+Since this specifies only the minimum height,
+the table should automatically grow to fit taller content.
+The default value is "14pt".</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footer.table.properties">
+<refmeta>
+<refentrytitle>footer.table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.table.properties</refname>
+<refpurpose>Apply properties to the footer layout table</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footer.table.properties.frag">
+&lt;xsl:attribute-set name="footer.table.properties"&gt;
+  &lt;xsl:attribute name="table-layout"&gt;fixed&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="width"&gt;100%&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties applied to the table that lays out the page footer.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footer.table.height">
+<refmeta>
+<refentrytitle>footer.table.height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.table.height</refname>
+<refpurpose>Specify the minimum height of the table containing the running page footers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><programlisting xml:id="footer.table.height.frag">
+&lt;xsl:param name="footer.table.height"&gt;14pt&lt;/xsl:param&gt;
+</programlisting></refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Page footers in print output use a three column table
+to position text at the left, center, and right side of
+the footer on the page.
+This parameter lets you specify the minimum height 
+of the single row in the table.  
+Since this specifies only the minimum height,
+the table should automatically grow to fit taller content.
+The default value is "14pt".</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="header.content.properties">
+<refmeta>
+<refentrytitle>header.content.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.content.properties</refname>
+<refpurpose>Properties of page header content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="header.content.properties.frag">
+&lt;xsl:attribute-set name="header.content.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$body.fontset"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-left"&gt;
+    &lt;xsl:value-of select="$title.margin.left"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties of page header content.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footer.content.properties">
+<refmeta>
+<refentrytitle>footer.content.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.content.properties</refname>
+<refpurpose>Properties of page footer content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footer.content.properties.frag">
+&lt;xsl:attribute-set name="footer.content.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$body.fontset"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-left"&gt;
+    &lt;xsl:value-of select="$title.margin.left"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties of page footer content.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="marker.section.level">
+<refmeta>
+<refentrytitle>marker.section.level</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>marker.section.level</refname>
+<refpurpose>Control depth of sections shown in running headers or footers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="marker.section.level.frag">
+&lt;xsl:param name="marker.section.level"&gt;2&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>marker.section.level</parameter> parameter
+controls the depth of section levels that may be displayed
+in running headers and footers.  For example, if the value
+is 2 (the default), then titles from <tag>sect1</tag> and 
+<tag>sect2</tag> or equivalent <tag>section</tag>
+elements are candidates for use in running headers and
+footers.
+</para>
+<para>Each candidate title is marked in the FO output with a
+<tag>&lt;fo:marker marker-class-name="section.head.marker"&gt;</tag>
+element.
+</para>
+<para>In order for such titles to appear in headers
+or footers, the <literal>header.content</literal>
+or <literal>footer.content</literal> template
+must be customized to retrieve the marker using
+an output element such as:
+</para>
+<programlisting>
+&lt;fo:retrieve-marker retrieve-class-name="section.head.marker"
+                       retrieve-position="first-including-carryover"
+                       retrieve-boundary="page-sequence"/&gt;
+</programlisting>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="side.region.precedence"> 
+<refmeta> 
+<refentrytitle>side.region.precedence</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>side.region.precedence</refname> 
+<refpurpose>Determines side region page layout precedence</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="side.region.precedence.frag">
+&lt;xsl:param name="side.region.precedence"&gt;false&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>If optional side regions on a page
+are established using parameters such as
+<parameter>body.margin.inner</parameter>, 
+<parameter>region.inner.extent</parameter>, etc., then this
+parameter determines what happens at the corners where the
+side regions meet the header and footer regions.</para>
+
+<para>If the value of this parameter is <literal>true</literal>,
+then the side regions have precedence and extend higher
+and lower, while the header and footer regions are narrower
+and fit inside the side regions.</para>
+
+<para>If the value of this parameter is <literal>false</literal>
+(the default value), then the header and footer regions 
+have precedence and extend over and below the side regions.
+Any value other than <literal>true</literal> or
+<literal>false</literal> is taken to be <literal>false</literal>.</para>
+
+<para>If you need to set precedence separately for
+individual regions, then you can set four
+parameters that are normally internal to the stylesheet.
+These four parameters are normally set based
+on the value from <parameter>side.region.precedence</parameter>:</para>
+
+<programlisting>region.before.precedence
+region.after.precedence
+region.start.precedence
+region.end.precedence</programlisting>
+
+<para>See also
+<parameter>region.inner.extent</parameter>,
+<parameter>region.outer.extent</parameter>,
+<parameter>body.margin.inner</parameter>,
+<parameter>body.margin.outer</parameter>.
+</para>
+</refsection> </refentry>
+
+<refentry version="5.0" xml:id="region.inner.properties">
+<refmeta>
+<refentrytitle>region.inner.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.inner.properties</refname>
+<refpurpose>Properties of running inner side region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="region.inner.properties.frag">
+&lt;xsl:attribute-set name="region.inner.properties"&gt;
+  &lt;xsl:attribute name="border-width"&gt;0&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding"&gt;0&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="reference-orientation"&gt;90&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The FO stylesheet supports optional side regions
+similar to the header and footer regions.
+Any attributes declared in this attribute-set 
+are applied to the region element in the page master
+on the inner side (binding side) of the page.
+This corresponds to <literal>&lt;fo:regin-start&gt;</literal>
+on odd-numbered pages and <literal>&lt;fo:region-end&gt;</literal>
+on even-numbered pages.
+For single-sided output, it always corresponds to
+<literal>&lt;fo:regin-start&gt;</literal>.</para>
+
+<para>You can customize the template named 
+<literal>inner.region.content</literal> to specify
+the content of the inner side region.</para>
+
+<para>See also
+<parameter>inner.region.content.properties</parameter>,
+<parameter>page.margin.inner</parameter>, 
+<parameter>body.margin.inner</parameter>,
+and the corresponding <literal>outer</literal>
+parameters.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="region.outer.properties">
+<refmeta>
+<refentrytitle>region.outer.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.outer.properties</refname>
+<refpurpose>Properties of running outer side region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="region.outer.properties.frag">
+&lt;xsl:attribute-set name="region.outer.properties"&gt;
+  &lt;xsl:attribute name="border-width"&gt;0&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding"&gt;0&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="reference-orientation"&gt;90&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The FO stylesheet supports optional side regions
+similar to the header and footer regions.
+Any attributes declared in this attribute-set 
+are applied to the region element in the page master
+on the outer side (opposite the binding side) of the page.
+This corresponds to <literal>&lt;fo:regin-start&gt;</literal>
+on odd-numbered pages and <literal>&lt;fo:region-end&gt;</literal>
+on even-numbered pages.
+For single-sided output, it always corresponds to
+<literal>&lt;fo:regin-start&gt;</literal>.</para>
+
+<para>You can customize the template named 
+<literal>outer.region.content</literal> to specify
+the content of the outer side region.</para>
+
+<para>See also
+<parameter>outer.region.content.properties</parameter>,
+<parameter>page.margin.outer</parameter>, 
+<parameter>body.margin.outer</parameter>,
+and the corresponding <literal>inner</literal>
+parameters.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="inner.region.content.properties">
+<refmeta>
+<refentrytitle>inner.region.content.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>inner.region.content.properties</refname>
+<refpurpose>Properties of running inner side content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="inner.region.content.properties.frag">
+&lt;xsl:attribute-set name="inner.region.content.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The FO stylesheet supports optional side regions
+similar to the header and footer regions.
+Any attributes declared in this attribute-set 
+are applied to the fo:block in the side region
+on the inner side (binding side) of the page.
+This corresponds to the <literal>start</literal>
+region on odd-numbered pages and the <literal>end</literal>
+region on even-numbered pages.
+For single-sided output, it always corresponds to
+the <literal>start</literal> region.</para>
+
+<para>You can customize the template named 
+<literal>inner.region.content</literal> to specify
+the content of the inner side region.</para>
+
+<para>See also
+<parameter>region.inner.properties</parameter>,
+<parameter>page.margin.inner</parameter>, 
+<parameter>body.margin.inner</parameter>,
+and the corresponding <literal>outer</literal>
+parameters.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="outer.region.content.properties">
+<refmeta>
+<refentrytitle>outer.region.content.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>outer.region.content.properties</refname>
+<refpurpose>Properties of running outer side content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="outer.region.content.properties.frag">
+&lt;xsl:attribute-set name="outer.region.content.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The FO stylesheet supports optional side regions
+similar to the header and footer regions.
+Any attributes declared in this attribute-set 
+are applied to the fo:block in the side region
+on the outer side (opposite the binding side) of the page.
+This corresponds to the <literal>start</literal>
+region on odd-numbered pages and the <literal>end</literal>
+region on even-numbered pages.
+For single-sided output, it always corresponds to
+the <literal>start</literal> region.</para>
+
+<para>You can customize the template named 
+<literal>outer.region.content</literal> to specify
+the content of the outer side region.</para>
+
+<para>See also
+<parameter>region.outer.properties</parameter>,
+<parameter>page.margin.outer</parameter>, 
+<parameter>body.margin.outer</parameter>,
+and the corresponding <literal>inner</literal>
+parameters.</para>
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="fonts"><title>Font Families</title>
+<refentry version="5.0" xml:id="body.font.family">
+<refmeta>
+<refentrytitle>body.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>body.font.family</refname>
+<refpurpose>The default font family for body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="body.font.family.frag">
+&lt;xsl:param name="body.font.family"&gt;serif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The body font family is the default font used for text in the page body.</para>
+<para>If more than one font is required, enter the font names,
+separated by a comma, e.g.</para>
+<literallayout>
+  &lt;xsl:param name="body.font.family"&gt;Arial, SimSun, serif&lt;/xsl:param&gt;
+
+</literallayout>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="dingbat.font.family">
+<refmeta>
+<refentrytitle>dingbat.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>dingbat.font.family</refname>
+<refpurpose>The font family for copyright, quotes, and other symbols</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="dingbat.font.family.frag">
+&lt;xsl:param name="dingbat.font.family"&gt;serif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The dingbat font family is used for dingbats. If it is defined
+as the empty string, no font change is effected around dingbats.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="monospace.font.family">
+<refmeta>
+<refentrytitle>monospace.font.family</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>monospace.font.family</refname>
+<refpurpose>The default font family for monospace environments</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="monospace.font.family.frag">
+&lt;xsl:param name="monospace.font.family"&gt;monospace&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The monospace font family is used for verbatim environments
+(program listings, screens, etc.).
+</para>
+<para>If more than one font is required, enter the font names,
+separated by a comma, e.g.</para>
+<literallayout>
+  &lt;xsl:param name="body.font.family"&gt;Arial, SimSun, serif&lt;/xsl:param&gt;
+
+</literallayout>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="sans.font.family">
+<refmeta>
+<refentrytitle>sans.font.family</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sans.font.family</refname>
+<refpurpose>The default sans-serif font family</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="sans.font.family.frag">
+&lt;xsl:param name="sans.font.family"&gt;sans-serif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The default sans-serif font family. At the present, this isn't
+actually used by the stylesheets.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="title.font.family">
+<refmeta>
+<refentrytitle>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>title.font.family</refname>
+<refpurpose>The default font family for titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="title.font.family.frag">
+&lt;xsl:param name="title.font.family"&gt;sans-serif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The title font family is used for titles (chapter, section, figure,
+etc.)
+</para>
+<para>If more than one font is required, enter the font names,
+separated by a comma, e.g.</para>
+<literallayout>
+  &lt;xsl:param name="body.font.family"&gt;Arial, SimSun, serif&lt;/xsl:param&gt;
+
+</literallayout>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="symbol.font.family">
+<refmeta>
+<refentrytitle>symbol.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>symbol.font.family</refname>
+<refpurpose>The font families to be searched for symbols outside
+    of the body font</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="symbol.font.family.frag">
+&lt;xsl:param name="symbol.font.family"&gt;Symbol,ZapfDingbats&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A typical body or title font does not contain all
+the character glyphs that DocBook supports.  This parameter
+specifies additional fonts that should be searched for
+special characters not in the normal font.
+These symbol font names are automatically appended
+to the body or title font family name when fonts
+are specified in a 
+<tag class="attribute">font-family</tag>
+property in the FO output.
+</para>
+<para>The symbol font names should be entered as a
+comma-separated list.  The default value is
+<literal>Symbol,ZapfDingbats</literal>.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="propsets"><title>Property Sets</title>
+<refentry version="5.0" xml:id="formal.object.properties">
+<refmeta>
+<refentrytitle>formal.object.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.object.properties</refname>
+<refpurpose>Properties associated with a formal object such as a figure, or other component that has a title</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="formal.object.properties.frag">
+&lt;xsl:attribute-set name="formal.object.properties"&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-together.within-column"&gt;always&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for formal objects in docbook. Specify the spacing
+before and after the object.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="formal.title.properties">
+<refmeta>
+<refentrytitle>formal.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.title.properties</refname>
+<refpurpose>Style the title element of formal object such as a figure.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="formal.title.properties.frag">
+&lt;xsl:attribute-set name="formal.title.properties" use-attribute-sets="normal.para.spacing"&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.2"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.4em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;0.6em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;0.8em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify how the title should be styled. Specify the font size and weight of the title of the formal object.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="informal.object.properties">
+<refmeta>
+<refentrytitle>informal.object.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informal.object.properties</refname>
+<refpurpose>Properties associated with an informal (untitled) object, such as an informalfigure</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="informal.object.properties.frag">&lt;xsl:attribute-set name="informal.object.properties"&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>The styling for informal objects in docbook. Specify the spacing before and after the object.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="monospace.properties">
+<refmeta>
+<refentrytitle>monospace.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>monospace.properties</refname>
+<refpurpose>Properties of monospaced content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="monospace.properties.frag">
+&lt;xsl:attribute-set name="monospace.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$monospace.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>Specifies the font name for monospaced output. This property set
+used to set the font-size as well, but that doesn't work very well
+when different fonts are used (as they are in titles and paragraphs,
+for example).</para>
+
+<para>If you want to set the font-size in a customization layer, it's
+probably going to be more appropriate to set font-size-adjust, if your
+formatter supports it.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="verbatim.properties">
+<refmeta>
+<refentrytitle>verbatim.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>verbatim.properties</refname>
+<refpurpose>Properties associated with verbatim text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="verbatim.properties.frag">
+&lt;xsl:attribute-set name="verbatim.properties"&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-after.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="wrap-option"&gt;no-wrap&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="white-space-collapse"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="white-space-treatment"&gt;preserve&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="linefeed-treatment"&gt;preserve&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>This attribute set is used on all verbatim environments.</para>
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" xml:id="monospace.verbatim.properties">
+<refmeta>
+<refentrytitle>monospace.verbatim.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>monospace.verbatim.properties</refname>
+<refpurpose>What font and size do you want for monospaced content?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="monospace.verbatim.properties.frag">
+&lt;xsl:attribute-set name="monospace.verbatim.properties" use-attribute-sets="verbatim.properties monospace.properties"&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="wrap-option"&gt;no-wrap&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify the font name and size you want for monospaced output</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="sidebar.properties">
+<refmeta>
+<refentrytitle>sidebar.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sidebar.properties</refname>
+<refpurpose>Attribute set for sidebar properties</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="sidebar.properties.frag">
+&lt;xsl:attribute-set name="sidebar.properties" use-attribute-sets="formal.object.properties"&gt;
+  &lt;xsl:attribute name="border-style"&gt;solid&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="border-width"&gt;1pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="border-color"&gt;black&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="background-color"&gt;#DDDDDD&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-start"&gt;12pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-end"&gt;12pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-top"&gt;6pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="padding-bottom"&gt;6pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.start}"&gt;0pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.end}"&gt;0pt&lt;/xsl:attribute&gt;
+&lt;!--
+  &lt;xsl:attribute name="margin-top"&gt;6pt&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="margin-bottom"&gt;6pt&lt;/xsl:attribute&gt;
+--&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for sidebars.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="sidebar.title.properties">
+<refmeta>
+<refentrytitle>sidebar.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sidebar.title.properties</refname>
+<refpurpose>Attribute set for sidebar titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="sidebar.title.properties.frag">
+&lt;xsl:attribute-set name="sidebar.title.properties"&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for sidebars titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="sidebar.float.type">
+<refmeta>
+<refentrytitle>sidebar.float.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">before</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">left</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">start</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">right</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">end</refmiscinfo>     
+<refmiscinfo class="other" otherclass="value">inside</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outside</refmiscinfo> 
+</refmeta>
+<refnamediv>
+<refname>sidebar.float.type</refname>
+<refpurpose>Select type of float for sidebar elements</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="sidebar.float.type.frag">
+&lt;xsl:param name="sidebar.float.type"&gt;none&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the type of float for sidebar elements.
+</para>
+<itemizedlist>
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>none</literal></quote>, then 
+no float is used.
+</para>
+</listitem>
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>before</literal></quote>, then 
+the float appears at the top of the page.  On some processors,
+that may be the next page rather than the current page.
+</para>
+</listitem>
+
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>left</literal></quote>,
+then a left side float is used.
+</para>
+</listitem>
+
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>start</literal></quote>,
+then when the text direction is left-to-right a left side float is used.
+When the text direction is right-to-left, a right side float is used.
+</para>
+</listitem>
+
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>right</literal></quote>,
+then a right side float is used.
+</para>
+</listitem>
+
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>end</literal></quote>,
+then when the text direction is left-to-right a right side float is used.
+When the text direction is right-to-left, a left side float is used.
+</para>
+</listitem>
+
+<listitem>
+<para>If your XSL-FO processor supports floats positioned on the
+<quote><literal>inside</literal></quote> or
+<quote><literal>outside</literal></quote>
+of double-sided pages, then you have those two 
+options for side floats as well.
+</para>
+</listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="sidebar.float.width">
+<refmeta>
+<refentrytitle>sidebar.float.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sidebar.float.width</refname>
+<refpurpose>Set the default width for sidebars</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="sidebar.float.width.frag">
+&lt;xsl:param name="sidebar.float.width"&gt;1in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the default width for sidebars when used as a side float.
+The width determines the degree to which the sidebar block intrudes into
+the text area.
+</para>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>before</literal></quote> or 
+<quote><literal>none</literal></quote>, then 
+this parameter is ignored.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="margin.note.properties">
+<refmeta>
+<refentrytitle>margin.note.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>margin.note.properties</refname>
+<refpurpose>Attribute set for margin.note properties</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="margin.note.properties.frag">
+&lt;xsl:attribute-set name="margin.note.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;90%&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for margin notes.
+By default, margin notes are not implemented for any
+element. A stylesheet customization is needed to make
+use of this attribute-set.</para>
+
+<para>You can use a template named <quote>floater</quote>
+to create the customization.
+That template can create side floats by specifying the
+content and characteristics as template parameters.
+</para>
+
+<para>For example:</para>
+<programlisting>&lt;xsl:template match="para[@role='marginnote']"&gt;
+  &lt;xsl:call-template name="floater"&gt;
+    &lt;xsl:with-param name="position"&gt;
+      &lt;xsl:value-of select="$margin.note.float.type"/&gt;
+    &lt;/xsl:with-param&gt;
+    &lt;xsl:with-param name="width"&gt;
+      &lt;xsl:value-of select="$margin.note.width"/&gt;
+    &lt;/xsl:with-param&gt;
+    &lt;xsl:with-param name="content"&gt;
+      &lt;xsl:apply-imports/&gt;
+    &lt;/xsl:with-param&gt;
+  &lt;/xsl:call-template&gt;
+&lt;/xsl:template&gt;</programlisting>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="margin.note.title.properties">
+<refmeta>
+<refentrytitle>margin.note.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>margin.note.title.properties</refname>
+<refpurpose>Attribute set for margin note titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="margin.note.title.properties.frag">
+&lt;xsl:attribute-set name="margin.note.title.properties"&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for margin note titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="margin.note.float.type">
+<refmeta>
+<refentrytitle>margin.note.float.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">before</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">left</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">start</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">right</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">end</refmiscinfo>     
+<refmiscinfo class="other" otherclass="value">inside</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outside</refmiscinfo> 
+</refmeta>
+<refnamediv>
+<refname>margin.note.float.type</refname>
+<refpurpose>Select type of float for margin note customizations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="margin.note.float.type.frag">
+&lt;xsl:param name="margin.note.float.type"&gt;none&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the type of float for margin notes.
+DocBook does not define a margin note element, so this
+feature must be implemented as a customization of the stylesheet.
+See <parameter>margin.note.properties</parameter> for
+an example.
+</para>
+<itemizedlist>
+<listitem>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>none</literal></quote>, then 
+no float is used.
+</para>
+</listitem>
+<listitem>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>before</literal></quote>, then 
+the float appears at the top of the page.  On some processors,
+that may be the next page rather than the current page.
+</para>
+</listitem>
+<listitem>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>left</literal></quote> or
+<quote><literal>start</literal></quote>, then 
+a left side float is used.
+</para>
+</listitem>
+<listitem>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>right</literal></quote> or
+<quote><literal>end</literal></quote>, then 
+a right side float is used.
+</para>
+</listitem>
+<listitem>
+<para>If your XSL-FO processor supports floats positioned on the
+<quote><literal>inside</literal></quote> or
+<quote><literal>outside</literal></quote>
+of double-sided pages, then you have those two 
+options for side floats as well.
+</para>
+</listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="margin.note.width">
+<refmeta>
+<refentrytitle>margin.note.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>margin.note.width</refname>
+<refpurpose>Set the default width for margin notes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="margin.note.width.frag">
+&lt;xsl:param name="margin.note.width"&gt;1in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the default width for margin notes when used as a side
+float.  The width determines the degree to which the margin note block
+intrudes into the text area.
+</para>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>before</literal></quote> or 
+<quote><literal>none</literal></quote>, then 
+this parameter is ignored.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="component.title.properties">
+<refmeta>
+<refentrytitle>component.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>component.title.properties</refname>
+<refpurpose>Properties for component titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="component.title.properties.frag">
+&lt;xsl:attribute-set name="component.title.properties"&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;&lt;xsl:value-of select="concat($body.font.master, 'pt')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;&lt;xsl:value-of select="concat($body.font.master, 'pt * 0.8')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;&lt;xsl:value-of select="concat($body.font.master, 'pt * 1.2')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;
+    &lt;xsl:choose&gt;
+      &lt;xsl:when test="((parent::article | parent::articleinfo | parent::info/parent::article) and not(ancestor::book) and not(self::bibliography))         or (parent::slides | parent::slidesinfo)"&gt;center&lt;/xsl:when&gt;
+      &lt;xsl:otherwise&gt;start&lt;/xsl:otherwise&gt;
+    &lt;/xsl:choose&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="start-indent"&gt;&lt;xsl:value-of select="$title.margin.left"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties common to all component titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="component.titlepage.properties">
+<refmeta>
+<refentrytitle>component.titlepage.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>component.titlepage.properties</refname>
+<refpurpose>Properties for component titlepages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="component.titlepage.properties.frag">
+&lt;xsl:attribute-set name="component.titlepage.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that are applied to the outer block containing
+all the component title page information. 
+Its main use is to set a <literal>span="all"</literal>
+property on the block that is a direct child of the flow.</para>
+
+<para>This attribute-set also applies to index titlepages. It is empty by default.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.title.properties">
+<refmeta>
+<refentrytitle>section.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.properties</refname>
+<refpurpose>Properties for section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.title.properties.frag">
+&lt;xsl:attribute-set name="section.title.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$title.fontset"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;!-- font size is calculated dynamically by section.heading template --&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1.0em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="start-indent"&gt;&lt;xsl:value-of select="$title.margin.left"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties common to all section titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.title.level1.properties">
+<refmeta>
+<refentrytitle>section.title.level1.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level1.properties</refname>
+<refpurpose>Properties for level-1 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.title.level1.properties.frag">
+&lt;xsl:attribute-set name="section.title.level1.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 2.0736"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-1 section titles.</para>
+
+</refsection>
+</refentry>
+
+
+<refentry version="5.0" xml:id="section.title.level2.properties">
+<refmeta>
+<refentrytitle>section.title.level2.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level2.properties</refname>
+<refpurpose>Properties for level-2 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.title.level2.properties.frag">
+&lt;xsl:attribute-set name="section.title.level2.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.728"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-2 section titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.title.level3.properties">
+<refmeta>
+<refentrytitle>section.title.level3.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level3.properties</refname>
+<refpurpose>Properties for level-3 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.title.level3.properties.frag">
+&lt;xsl:attribute-set name="section.title.level3.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.44"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-3 section titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.title.level4.properties">
+<refmeta>
+<refentrytitle>section.title.level4.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level4.properties</refname>
+<refpurpose>Properties for level-4 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.title.level4.properties.frag">
+&lt;xsl:attribute-set name="section.title.level4.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.2"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-4 section titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.title.level5.properties">
+<refmeta>
+<refentrytitle>section.title.level5.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level5.properties</refname>
+<refpurpose>Properties for level-5 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.title.level5.properties.frag">
+&lt;xsl:attribute-set name="section.title.level5.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-5 section titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.title.level6.properties">
+<refmeta>
+<refentrytitle>section.title.level6.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level6.properties</refname>
+<refpurpose>Properties for level-6 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.title.level6.properties.frag">
+&lt;xsl:attribute-set name="section.title.level6.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-6 section titles. This property set is actually
+used for all titles below level 5.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.properties">
+<refmeta>
+<refentrytitle>section.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.properties</refname>
+<refpurpose>Properties for all section levels</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.properties.frag">
+&lt;xsl:attribute-set name="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of all section levels, and therefore apply to
+the whole section.  
+This attribute set is inherited by the
+more specific attribute sets such as
+<tag>section.level1.properties</tag>.
+The default is empty.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.level1.properties">
+<refmeta>
+<refentrytitle>section.level1.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level1.properties</refname>
+<refpurpose>Properties for level-1 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.level1.properties.frag">
+&lt;xsl:attribute-set name="section.level1.properties" use-attribute-sets="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-1 section, and therefore apply to
+the whole section.  This includes <tag>sect1</tag>
+elements and <tag>section</tag> elements at level 1.
+</para>
+
+<para>For example, you could start each level-1 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level1.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.level2.properties">
+<refmeta>
+<refentrytitle>section.level2.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level2.properties</refname>
+<refpurpose>Properties for level-2 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.level2.properties.frag">
+&lt;xsl:attribute-set name="section.level2.properties" use-attribute-sets="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-2 section, and therefore apply to
+the whole section.  This includes <tag>sect2</tag>
+elements and <tag>section</tag> elements at level 2.
+</para>
+
+<para>For example, you could start each level-2 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level2.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.level3.properties">
+<refmeta>
+<refentrytitle>section.level3.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level3.properties</refname>
+<refpurpose>Properties for level-3 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.level3.properties.frag">
+&lt;xsl:attribute-set name="section.level3.properties" use-attribute-sets="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-3 section, and therefore apply to
+the whole section.  This includes <tag>sect3</tag>
+elements and <tag>section</tag> elements at level 3.
+</para>
+
+<para>For example, you could start each level-3 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level3.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.level4.properties">
+<refmeta>
+<refentrytitle>section.level4.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level4.properties</refname>
+<refpurpose>Properties for level-4 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.level4.properties.frag">
+&lt;xsl:attribute-set name="section.level4.properties" use-attribute-sets="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-4 section, and therefore apply to
+the whole section.  This includes <tag>sect4</tag>
+elements and <tag>section</tag> elements at level 4.
+</para>
+
+<para>For example, you could start each level-4 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level4.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.level5.properties">
+<refmeta>
+<refentrytitle>section.level5.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level5.properties</refname>
+<refpurpose>Properties for level-5 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.level5.properties.frag">
+&lt;xsl:attribute-set name="section.level5.properties" use-attribute-sets="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-5 section, and therefore apply to
+the whole section.  This includes <tag>sect5</tag>
+elements and <tag>section</tag> elements at level 5.
+</para>
+
+<para>For example, you could start each level-5 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level5.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.level6.properties">
+<refmeta>
+<refentrytitle>section.level6.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level6.properties</refname>
+<refpurpose>Properties for level-6 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.level6.properties.frag">
+&lt;xsl:attribute-set name="section.level6.properties" use-attribute-sets="section.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level 6 or lower section, and therefore apply to
+the whole section.  This includes 
+<tag>section</tag> elements at level 6 and lower.
+</para>
+
+<para>For example, you could start each level-6 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level6.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="figure.properties">
+<refmeta>
+<refentrytitle>figure.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>figure.properties</refname>
+<refpurpose>Properties associated with a figure</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="figure.properties.frag">
+&lt;xsl:attribute-set name="figure.properties" use-attribute-sets="formal.object.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for figures.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="example.properties">
+<refmeta>
+<refentrytitle>example.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>example.properties</refname>
+<refpurpose>Properties associated with a example</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="example.properties.frag">
+&lt;xsl:attribute-set name="example.properties" use-attribute-sets="formal.object.properties"&gt;
+    &lt;xsl:attribute name="keep-together.within-column"&gt;auto&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for examples.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="equation.properties">
+<refmeta>
+<refentrytitle>equation.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>equation.properties</refname>
+<refpurpose>Properties associated with a equation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="equation.properties.frag">
+&lt;xsl:attribute-set name="equation.properties" use-attribute-sets="formal.object.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for equations.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="equation.number.properties">
+<refmeta>
+<refentrytitle>equation.number.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>equation.number.properties</refname>
+<refpurpose>Properties that apply to the <tag>fo:table-cell</tag> containing the number
+of an <tag>equation</tag> that does not have a title.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="equation.number.properties.frag">&lt;xsl:attribute-set name="equation.number.properties"&gt;
+  &lt;xsl:attribute name="text-align"&gt;end&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="display-align"&gt;center&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to the fo:table-cell containing the number
+of an equation when it has no title. The number in an equation with a
+title is formatted along with the title, and this attribute-set does not apply.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.properties">
+<refmeta>
+<refentrytitle>table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.properties</refname>
+<refpurpose>Properties associated with the block surrounding a table</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.properties.frag">
+&lt;xsl:attribute-set name="table.properties" use-attribute-sets="formal.object.properties"&gt;
+  &lt;xsl:attribute name="keep-together.within-column"&gt;auto&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Block styling properties for tables. This parameter should really
+have been called <literal>table.block.properties</literal> or something
+like that, but we&#8217;re leaving it to avoid backwards-compatibility
+problems.</para>
+
+<para>See also <parameter>table.table.properties</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="task.properties">
+<refmeta>
+<refentrytitle>task.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>task.properties</refname>
+<refpurpose>Properties associated with a task</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="task.properties.frag">
+&lt;xsl:attribute-set name="task.properties" use-attribute-sets="formal.object.properties"&gt;
+    &lt;xsl:attribute name="keep-together.within-column"&gt;auto&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties to style the entire block containing a task element.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="informalfigure.properties">
+<refmeta>
+<refentrytitle>informalfigure.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informalfigure.properties</refname>
+<refpurpose>Properties associated with an informalfigure</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="informalfigure.properties.frag">
+&lt;xsl:attribute-set name="informalfigure.properties" use-attribute-sets="informal.object.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for informalfigures.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="informalexample.properties">
+<refmeta>
+<refentrytitle>informalexample.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informalexample.properties</refname>
+<refpurpose>Properties associated with an informalexample</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="informalexample.properties.frag">
+&lt;xsl:attribute-set name="informalexample.properties" use-attribute-sets="informal.object.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for informalexamples.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="informalequation.properties">
+<refmeta>
+<refentrytitle>informalequation.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informalequation.properties</refname>
+<refpurpose>Properties associated with an informalequation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="informalequation.properties.frag">
+&lt;xsl:attribute-set name="informalequation.properties" use-attribute-sets="informal.object.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for informalequations.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="informaltable.properties">
+<refmeta>
+<refentrytitle>informaltable.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informaltable.properties</refname>
+<refpurpose>Properties associated with the block surrounding an informaltable</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="informaltable.properties.frag">
+&lt;xsl:attribute-set name="informaltable.properties" use-attribute-sets="informal.object.properties"&gt;&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Block styling properties for informaltables. This parameter should really
+have been called <literal>informaltable.block.properties</literal> or something
+like that, but we&#8217;re leaving it to avoid backwards-compatibility
+problems.</para>
+
+<para>See also <parameter>table.table.properties</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="procedure.properties">
+<refmeta>
+<refentrytitle>procedure.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>procedure.properties</refname>
+<refpurpose>Properties associated with a procedure</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="procedure.properties.frag">
+&lt;xsl:attribute-set name="procedure.properties" use-attribute-sets="formal.object.properties"&gt;
+  &lt;xsl:attribute name="keep-together.within-column"&gt;auto&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for procedures.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="root.properties">
+<refmeta>
+<refentrytitle>root.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>root.properties</refname>
+<refpurpose>The properties of the fo:root element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="root.properties.frag">
+&lt;xsl:attribute-set name="root.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$body.fontset"&gt;&lt;/xsl:value-of&gt;
+  &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="text-align"&gt;
+    &lt;xsl:value-of select="$alignment"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="line-height"&gt;
+    &lt;xsl:value-of select="$line-height"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-selection-strategy"&gt;character-by-character&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="line-height-shift-adjustment"&gt;disregard-shifts&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="writing-mode"&gt;
+    &lt;xsl:value-of select="$direction.mode"&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 property set is used on the <tag>fo:root</tag> element of
+an FO file. It defines a set of default, global parameters.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.title.properties">
+<refmeta>
+<refentrytitle>qanda.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.properties</refname>
+<refpurpose>Properties for qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.title.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;
+    &lt;xsl:value-of select="$title.fontset"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
+  &lt;!-- font size is calculated dynamically by qanda.heading template --&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;1.0em&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties common to all qanda set titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.title.level1.properties">
+<refmeta>
+<refentrytitle>qanda.title.level1.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level1.properties</refname>
+<refpurpose>Properties for level-1 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.title.level1.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.level1.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 2.0736"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-1 qanda set titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.title.level2.properties">
+<refmeta>
+<refentrytitle>qanda.title.level2.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level2.properties</refname>
+<refpurpose>Properties for level-2 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.title.level2.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.level2.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.728"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-2 qanda set titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.title.level3.properties">
+<refmeta>
+<refentrytitle>qanda.title.level3.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level3.properties</refname>
+<refpurpose>Properties for level-3 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.title.level3.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.level3.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.44"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-3 qanda set titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.title.level4.properties">
+<refmeta>
+<refentrytitle>qanda.title.level4.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level4.properties</refname>
+<refpurpose>Properties for level-4 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.title.level4.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.level4.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master * 1.2"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-4 qanda set titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.title.level5.properties">
+<refmeta>
+<refentrytitle>qanda.title.level5.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level5.properties</refname>
+<refpurpose>Properties for level-5 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.title.level5.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.level5.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-5 qanda set titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.title.level6.properties">
+<refmeta>
+<refentrytitle>qanda.title.level6.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level6.properties</refname>
+<refpurpose>Properties for level-6 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.title.level6.properties.frag">
+&lt;xsl:attribute-set name="qanda.title.level6.properties"&gt;
+  &lt;xsl:attribute name="font-size"&gt;
+    &lt;xsl:value-of select="$body.font.master"&gt;&lt;/xsl:value-of&gt;
+    &lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-6 qanda set titles.
+This property set is actually
+used for all titles below level 5.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="article.appendix.title.properties">
+<refmeta>
+<refentrytitle>article.appendix.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>article.appendix.title.properties</refname>
+<refpurpose>Properties for appendix titles that appear in an article</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="article.appendix.title.properties.frag">
+&lt;xsl:attribute-set name="article.appendix.title.properties" use-attribute-sets="section.title.properties                          section.title.level1.properties"&gt;
+  &lt;xsl:attribute name="margin-{$direction.align.start}"&gt;
+    &lt;xsl:value-of select="$title.margin.left"&gt;&lt;/xsl:value-of&gt;
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties for the title of an appendix that
+appears inside an article.  The default is to use
+the properties of sect1 titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="abstract.properties">
+<refmeta>
+<refentrytitle>abstract.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>abstract.properties</refname>
+<refpurpose>Properties associated with the block surrounding an abstract</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="abstract.properties.frag">
+&lt;xsl:attribute-set name="abstract.properties"&gt;
+  &lt;xsl:attribute name="start-indent"&gt;0.0in&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="end-indent"&gt;0.0in&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Block styling properties for abstract.</para>
+
+<para>See also <parameter>abstract.title.properties</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="abstract.title.properties">
+<refmeta>
+<refentrytitle>abstract.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>abstract.title.properties</refname>
+<refpurpose>Properties for abstract titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="abstract.title.properties.frag">
+&lt;xsl:attribute-set name="abstract.title.properties"&gt;
+  &lt;xsl:attribute name="font-family"&gt;&lt;xsl:value-of select="$title.fontset"&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 name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.optimum"&gt;&lt;xsl:value-of select="concat($body.font.master, 'pt')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.minimum"&gt;&lt;xsl:value-of select="concat($body.font.master, 'pt * 0.8')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="space-before.maximum"&gt;&lt;xsl:value-of select="concat($body.font.master, 'pt * 1.2')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text-align"&gt;center&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties for abstract titles.</para>
+
+<para>See also <parameter>abstract.properties</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.page.number.properties">
+<refmeta>
+<refentrytitle>index.page.number.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.page.number.properties</refname>
+<refpurpose>Properties associated with index page numbers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.page.number.properties.frag">
+&lt;xsl:attribute-set name="index.page.number.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties associated with page numbers in indexes. 
+Changing color to indicate the page number is a link is
+one possibility.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="revhistory.table.properties">
+<refmeta>
+<refentrytitle>revhistory.table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>revhistory.table.properties</refname>
+<refpurpose>The properties of table used for formatting revhistory</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="revhistory.table.properties.frag">
+&lt;xsl:attribute-set name="revhistory.table.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This property set defines appearance of revhistory table.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="revhistory.table.cell.properties">
+<refmeta>
+<refentrytitle>revhistory.table.cell.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>revhistory.table.cell.properties</refname>
+<refpurpose>The properties of table cells used for formatting revhistory</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="revhistory.table.cell.properties.frag">
+&lt;xsl:attribute-set name="revhistory.table.cell.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This property set defines appearance of individual cells in revhistory table.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="revhistory.title.properties">
+<refmeta>
+<refentrytitle>revhistory.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>revhistory.title.properties</refname>
+<refpurpose>The properties of revhistory title</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="revhistory.title.properties.frag">
+&lt;xsl:attribute-set name="revhistory.title.properties"&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This property set defines appearance of revhistory title.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="profiling"><title>Profiling</title>
+<partintro xml:id="profiling_partintro">
+<para>The following parameters can be used for attribute-based
+profiling of your document. For more information about profiling, see 
+<link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="Profiling.html">Profiling (conditional text)</link>.</para>
+</partintro>
+<refentry version="5.0" xml:id="profile.arch">
+<refmeta>
+<refentrytitle>profile.arch</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.arch</refname>
+<refpurpose>Target profile for <tag class="attribute">arch</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.arch.frag">
+&lt;xsl:param name="profile.arch"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.audience">
+<refmeta>
+<refentrytitle>profile.audience</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.audience</refname>
+<refpurpose>Target profile for <tag class="attribute">audience</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.audience.frag">
+&lt;xsl:param name="profile.audience"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.condition">
+<refmeta>
+<refentrytitle>profile.condition</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.condition</refname>
+<refpurpose>Target profile for <tag class="attribute">condition</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.condition.frag">
+&lt;xsl:param name="profile.condition"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.conformance">
+<refmeta>
+<refentrytitle>profile.conformance</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.conformance</refname>
+<refpurpose>Target profile for <tag class="attribute">conformance</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.conformance.frag">
+&lt;xsl:param name="profile.conformance"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.lang">
+<refmeta>
+<refentrytitle>profile.lang</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.lang</refname>
+<refpurpose>Target profile for <tag class="attribute">lang</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.lang.frag">
+&lt;xsl:param name="profile.lang"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.os">
+<refmeta>
+<refentrytitle>profile.os</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.os</refname>
+<refpurpose>Target profile for <tag class="attribute">os</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.os.frag">
+&lt;xsl:param name="profile.os"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.revision">
+<refmeta>
+<refentrytitle>profile.revision</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.revision</refname>
+<refpurpose>Target profile for <tag class="attribute">revision</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.revision.frag">
+&lt;xsl:param name="profile.revision"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.revisionflag">
+<refmeta>
+<refentrytitle>profile.revisionflag</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.revisionflag</refname>
+<refpurpose>Target profile for <tag class="attribute">revisionflag</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.revisionflag.frag">
+&lt;xsl:param name="profile.revisionflag"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.role">
+<refmeta>
+<refentrytitle>profile.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.role</refname>
+<refpurpose>Target profile for <tag class="attribute">role</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.role.frag">
+&lt;xsl:param name="profile.role"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+<warning>
+<para>Note that <tag class="attribute">role</tag> is often
+used for other purposes than profiling. For example it is commonly
+used to get emphasize in bold font:</para>
+
+<programlisting>&lt;emphasis role="bold"&gt;very important&lt;/emphasis&gt;</programlisting>
+
+<para>If you are using <tag class="attribute">role</tag> for
+these purposes do not forget to add values like <literal>bold</literal> to
+value of this parameter. If you forgot you will get document with
+small pieces missing which are very hard to track.</para>
+
+<para>For this reason it is not recommended to use <tag class="attribute">role</tag> attribute for profiling. You should
+rather use profiling specific attributes like <tag class="attribute">userlevel</tag>, <tag class="attribute">os</tag>, <tag class="attribute">arch</tag>, <tag class="attribute">condition</tag>, etc.</para>
+</warning>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.security">
+<refmeta>
+<refentrytitle>profile.security</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.security</refname>
+<refpurpose>Target profile for <tag class="attribute">security</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.security.frag">
+&lt;xsl:param name="profile.security"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.status">
+<refmeta>
+<refentrytitle>profile.status</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.status</refname>
+<refpurpose>Target profile for <tag class="attribute">status</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.status.frag">
+&lt;xsl:param name="profile.status"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.userlevel">
+<refmeta>
+<refentrytitle>profile.userlevel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.userlevel</refname>
+<refpurpose>Target profile for <tag class="attribute">userlevel</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.userlevel.frag">
+&lt;xsl:param name="profile.userlevel"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.vendor">
+<refmeta>
+<refentrytitle>profile.vendor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.vendor</refname>
+<refpurpose>Target profile for <tag class="attribute">vendor</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.vendor.frag">
+&lt;xsl:param name="profile.vendor"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.wordsize">
+<refmeta>
+<refentrytitle>profile.wordsize</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.wordsize</refname>
+<refpurpose>Target profile for <tag class="attribute">wordsize</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.wordsize.frag">
+&lt;xsl:param name="profile.wordsize"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.attribute">
+<refmeta>
+<refentrytitle>profile.attribute</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.attribute</refname>
+<refpurpose>Name of user-specified profiling attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.attribute.frag">
+&lt;xsl:param name="profile.attribute"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter is used in conjuction with
+<parameter>profile.value</parameter>.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.value">
+<refmeta>
+<refentrytitle>profile.value</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.value</refname>
+<refpurpose>Target profile for user-specified attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.value.frag">
+&lt;xsl:param name="profile.value"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When you are using this parameter you must also specify name of
+profiling attribute with parameter
+<parameter>profile.attribute</parameter>.</para>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.separator">
+<refmeta>
+<refentrytitle>profile.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.separator</refname>
+<refpurpose>Separator character for compound profile values</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.separator.frag">
+&lt;xsl:param name="profile.separator"&gt;;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator character used for compound profile values. See <parameter>profile.arch</parameter></para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="l10n"><title>Localization</title>
+<refentry version="5.0" xml:id="l10n.gentext.language">
+<refmeta>
+<refentrytitle>l10n.gentext.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.gentext.language</refname>
+<refpurpose>Sets the gentext language</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="l10n.gentext.language.frag">
+&lt;xsl:param name="l10n.gentext.language"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If this parameter is set to any value other than the empty string, its
+value will be used as the value for the language when generating text. Setting
+<parameter>l10n.gentext.language</parameter> overrides any settings within the
+document being formatted.</para>
+
+<para>It's much more likely that you might want to set the
+<parameter>l10n.gentext.default.language</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="l10n.gentext.default.language">
+  <refmeta>
+    <refentrytitle>l10n.gentext.default.language</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>l10n.gentext.default.language</refname>
+    <refpurpose>Sets the default language for generated text</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+<programlisting xml:id="l10n.gentext.default.language.frag">
+&lt;xsl:param name="l10n.gentext.default.language"&gt;en&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of the <parameter>l10n.gentext.default.language</parameter>
+parameter is used as the language for generated text if no setting is provided
+in the source document.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="l10n.gentext.use.xref.language">
+<refmeta>
+<refentrytitle>l10n.gentext.use.xref.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.gentext.use.xref.language</refname>
+<refpurpose>Use the language of target when generating cross-reference text?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="l10n.gentext.use.xref.language.frag">
+&lt;xsl:param name="l10n.gentext.use.xref.language" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the language of the target will be used when
+generating cross reference text. Usually, the <quote>current</quote>
+language is used when generating text (that is, the language of the
+element that contains the cross-reference element). But setting this parameter
+allows the language of the element <emphasis>pointed to</emphasis> to control
+the generated text.</para>
+
+<para>Consider the following example:</para>
+
+<informalexample>
+<programlisting>&lt;para lang="en"&gt;See also &lt;xref linkend="chap3"/&gt;.&lt;/para&gt;
+</programlisting>
+</informalexample>
+
+<para>Suppose that Chapter 3 happens to be written in German.
+If <parameter>l10n.gentext.use.xref.language</parameter> is non-zero, the
+resulting text will be something like this:</para>
+
+<blockquote>
+<para>See also Kapital 3.</para>
+</blockquote>
+
+<para>Where the more traditional rendering would be:</para>
+
+<blockquote>
+<para>See also Chapter 3.</para>
+</blockquote>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="l10n.lang.value.rfc.compliant">
+<refmeta>
+<refentrytitle>l10n.lang.value.rfc.compliant</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.lang.value.rfc.compliant</refname>
+<refpurpose>Make value of lang attribute RFC compliant?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="l10n.lang.value.rfc.compliant.frag">
+&lt;xsl:param name="l10n.lang.value.rfc.compliant" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, ensure that the values for all <tag class="attribute">lang</tag> attributes in HTML output are RFC
+compliant<footnote><para>Section 8.1.1, <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/REC-html40/struct/dirlang.html#h-8.1.1">Language Codes</link>, in the HTML 4.0 Recommendation states that:
+
+<blockquote><para>[RFC1766] defines and explains the language codes
+that must be used in HTML documents.</para>
+<para>Briefly, language codes consist of a primary code and a possibly
+empty series of subcodes:
+
+<literallayout class="monospaced">language-code = primary-code ( "-" subcode )*</literallayout>
+</para>
+<para>And in RFC 1766, <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.ietf.org/rfc/rfc1766.txt">Tags for the Identification
+of Languages</link>, the EBNF for "language tag" is given as:
+
+<literallayout class="monospaced">Language-Tag = Primary-tag *( "-" Subtag )
+Primary-tag = 1*8ALPHA
+Subtag = 1*8ALPHA</literallayout>
+</para>
+</blockquote>
+</para></footnote>.
+
+by taking any underscore characters in any <tag class="attribute">lang</tag> values found in source documents, and
+replacing them with hyphen characters in output HTML files. For
+example, <literal>zh_CN</literal> in a source document becomes
+<literal>zh-CN</literal> in the HTML output form that source.
+
+<note>
+<para>This parameter does not cause any case change in <tag class="attribute">lang</tag> values, because RFC 1766
+explicitly states that all "language tags" (as it calls them) "are
+to be treated as case insensitive".</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="writing.mode">
+<refmeta>
+<refentrytitle>writing.mode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>writing.mode</refname>
+<refpurpose>Direction of text flow based on locale</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="writing.mode.frag">
+&lt;xsl:param name="writing.mode"&gt;
+  &lt;xsl:call-template name="gentext"&gt;
+    &lt;xsl:with-param name="key"&gt;writing-mode&lt;/xsl:with-param&gt;
+    &lt;xsl:with-param name="lang"&gt;
+      &lt;xsl:call-template name="l10n.language"&gt;
+        &lt;xsl:with-param name="target" select="/*[1]"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:with-param&gt;
+  &lt;/xsl:call-template&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets direction of text flow and text alignment based on locale.
+The value is normally taken from the gentext file for the 
+lang attribute of the document's root element, using the 
+key name 'writing-mode' to look it up in the gentext file.
+But the param can also be
+set on the command line to override that gentext value.
+</para>
+<para>Accepted values are:
+<variablelist>
+  <varlistentry>
+    <term>lr-tb</term>
+    <listitem>
+      <para>Left-to-right text flow in each line, lines stack top to bottom.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>rl-tb</term>
+    <listitem>
+      <para>Right-to-left text flow in each line, lines stack top to bottom.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>tb-rl</term>
+    <listitem>
+      <para>Top-to-bottom text flow in each vertical line, lines stack right to left.
+      Supported by only a few XSL-FO processors. Not supported in HTML output.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>lr</term>
+    <listitem>
+      <para>Shorthand for lr-tb.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>rl</term>
+    <listitem>
+      <para>Shorthand for rl-tb.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>tb</term>
+    <listitem>
+      <para>Shorthand for tb-rl.</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="ebnf"><title>EBNF</title>
+<refentry version="5.0" xml:id="ebnf.assignment">
+<refmeta>
+<refentrytitle>ebnf.assignment</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.assignment</refname>
+<refpurpose>The EBNF production assignment operator</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ebnf.assignment.frag">
+
+&lt;xsl:param name="ebnf.assignment"&gt;
+  &lt;fo:inline font-family="{$monospace.font.family}"&gt;
+    &lt;xsl:text&gt;::=&lt;/xsl:text&gt;
+  &lt;/fo:inline&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>ebnf.assignment</parameter> parameter determines what
+text is used to show <quote>assignment</quote> in <tag>production</tag>s
+in <tag>productionset</tag>s.</para>
+
+<para>While <quote><literal>::=</literal></quote> is common, so are several
+other operators.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="ebnf.statement.terminator">
+<refmeta>
+<refentrytitle>ebnf.statement.terminator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.statement.terminator</refname>
+<refpurpose>Punctuation that ends an EBNF statement.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ebnf.statement.terminator.frag">
+
+&lt;xsl:param name="ebnf.statement.terminator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>ebnf.statement.terminator</parameter> parameter determines what
+text is used to terminate each <tag>production</tag>
+in <tag>productionset</tag>.</para>
+
+<para>Some notations end each statement with a period.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="prepress"><title>Prepress</title>
+<refentry version="5.0" xml:id="crop.marks">
+<refmeta>
+<refentrytitle>crop.marks</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>crop.marks</refname>
+<refpurpose>Output crop marks?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="crop.marks.frag">
+&lt;xsl:param name="crop.marks" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, crop marks will be added to each page. Currently this
+works only with XEP if you have <parameter>xep.extensions</parameter> set.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="crop.mark.width">
+<refmeta>
+<refentrytitle>crop.mark.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>crop.mark.width</refname>
+<refpurpose>Width of crop marks.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="crop.mark.width.frag">
+&lt;xsl:param name="crop.mark.width"&gt;0.5pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Width of crop marks. Crop marks are controlled by
+<parameter>crop.marks</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="crop.mark.offset">
+<refmeta>
+<refentrytitle>crop.mark.offset</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>crop.mark.offset</refname>
+<refpurpose>Length of crop marks.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="crop.mark.offset.frag">
+&lt;xsl:param name="crop.mark.offset"&gt;24pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Length of crop marks. Crop marks are controlled by
+<parameter>crop.marks</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="crop.mark.bleed">
+<refmeta>
+<refentrytitle>crop.mark.bleed</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>crop.mark.bleed</refname>
+<refpurpose>Length of invisible part of crop marks.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="crop.mark.bleed.frag">
+&lt;xsl:param name="crop.mark.bleed"&gt;6pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Length of invisible part of crop marks. Crop marks are controlled by
+<parameter>crop.marks</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+
+<appendix xml:id="stylesheet"><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;xsl:stylesheet exclude-result-prefixes="src" version="1.0"&gt;
+
+&lt;!-- This file is generated from param.xweb --&gt;
+
+&lt;!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** --&gt;
+
+&lt;src:fragref linkend="abstract.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="abstract.title.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="admon.graphics.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="admon.graphics.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="admon.graphics.path.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="admon.textlabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="admonition.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="admonition.title.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="base.dir.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="graphical.admonition.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="nongraphical.admonition.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="alignment.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="appendix.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="arbortext.extensions.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="article.appendix.title.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="author.othername.in.middle.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="autotoc.label.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="axf.extensions.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="biblioentry.item.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="biblioentry.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="bibliography.collection.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="bibliography.numbered.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="bibliography.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="blockquote.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="body.font.family.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="body.font.master.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="body.font.size.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="body.margin.bottom.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="body.margin.top.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="body.start.indent.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="body.end.indent.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="bookmarks.collapse.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="bridgehead.in.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="calloutlist.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.defaultcolumn.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.graphics.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.graphics.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.icon.size.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.graphics.number.limit.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.graphics.path.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.unicode.font.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.unicode.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.unicode.number.limit.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.unicode.start.character.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callouts.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="chapter.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="chunk.quietly.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="collect.xref.targets.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="column.count.back.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="column.count.body.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="column.count.front.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="column.count.index.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="column.count.lot.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="column.count.titlepage.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="column.gap.back.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="column.gap.body.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="column.gap.front.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="column.gap.index.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="column.gap.lot.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="column.gap.titlepage.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="compact.list.item.spacing.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="component.label.includes.part.label.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="component.title.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="component.titlepage.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="crop.marks.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="crop.mark.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="crop.mark.offset.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="crop.mark.bleed.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="current.docid.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="default.float.class.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="default.image.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="default.table.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="default.table.frame.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="default.table.rules.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="default.units.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="dingbat.font.family.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="double.sided.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="draft.mode.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="draft.watermark.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ebnf.assignment.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ebnf.statement.terminator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="email.delimiters.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="email.mailto.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="equation.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="equation.number.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="example.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="exsl.node.set.available.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="figure.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="firstterm.only.link.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footer.content.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footer.rule.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footer.column.widths.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footer.table.height.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footer.table.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footers.on.blank.pages.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footnote.font.size.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footnote.number.format.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footnote.number.symbols.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footnote.mark.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footnote.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footnote.sep.leader.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="fop.extensions.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="fop1.extensions.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="formal.object.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="formal.procedures.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="formal.title.placement.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="formal.title.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="funcsynopsis.decoration.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="funcsynopsis.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="function.parens.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.consistent.ids.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.index.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.section.toc.level.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossary.as.blocks.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossary.collection.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossary.sort.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossentry.show.acronym.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glosslist.as.blocks.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossterm.auto.link.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossterm.separation.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossterm.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossentry.list.item.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossterm.list.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossterm.block.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossdef.list.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossdef.block.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="graphic.default.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="header.content.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="header.rule.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="header.column.widths.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="header.table.height.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="header.table.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="headers.on.blank.pages.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="highlight.default.language.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="highlight.source.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="highlight.xslthl.config.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="hyphenate.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="hyphenate.verbatim.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="hyphenate.verbatim.characters.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ignore.image.scaling.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="img.src.path.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.method.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.on.role.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.on.type.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.page.number.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="informalequation.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="informalexample.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="informalfigure.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="informal.object.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="informaltable.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.preferred.page.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.div.title.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.entry.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.number.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.range.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.term.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="insert.link.page.number.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="insert.xref.page.number.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="itemizedlist.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="itemizedlist.label.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="itemizedlist.label.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="keep.relative.image.uris.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="l10n.gentext.default.language.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="l10n.gentext.language.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="l10n.gentext.use.xref.language.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="l10n.lang.value.rfc.compliant.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="label.from.part.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="line-height.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="linenumbering.everyNth.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="linenumbering.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="linenumbering.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="linenumbering.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="list.block.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="list.block.spacing.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="list.item.spacing.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="make.index.markup.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="make.single.year.ranges.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="make.year.ranges.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="margin.note.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="margin.note.title.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="margin.note.float.type.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="margin.note.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="marker.section.level.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="menuchoice.menu.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="menuchoice.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="monospace.font.family.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="monospace.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="monospace.verbatim.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="monospace.verbatim.font.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="nominal.table.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="normal.para.spacing.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.doctitle.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.base.uri.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.debug.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.lang.fallback.sequence.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="orderedlist.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="orderedlist.label.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="orderedlist.label.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="prefer.internal.olink.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="insert.olink.page.number.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="insert.olink.pdf.frag.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="page.height.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="page.height.portrait.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="page.margin.bottom.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="page.margin.inner.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="page.margin.outer.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="page.margin.top.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="page.orientation.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="page.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="page.width.portrait.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="paper.type.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="part.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="passivetex.extensions.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="pgwide.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="preface.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="preferred.mediaobject.role.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="procedure.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="process.empty.source.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="process.source.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.arch.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.audience.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.attribute.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.condition.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.conformance.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.lang.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.os.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.revision.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.revisionflag.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.role.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.security.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.status.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.userlevel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.value.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.vendor.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.wordsize.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="punct.honorific.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.defaultlabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.in.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.nested.in.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.inherit.numeration.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qandadiv.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.title.level1.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.title.level2.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.title.level3.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.title.level4.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.title.level5.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.title.level6.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.title.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.generate.name.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.generate.title.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.pagebreak.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.title.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.xref.manvolnum.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="reference.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refclass.suppress.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="region.after.extent.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="region.before.extent.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="revhistory.table.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="revhistory.table.cell.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="revhistory.title.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="root.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="rootid.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="runinhead.default.title.end.punct.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="runinhead.title.end.punct.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="sans.font.family.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.autolabel.max.depth.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.container.element.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.label.includes.component.label.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.title.level1.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.title.level2.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.title.level3.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.title.level4.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.title.level5.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.title.level6.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.title.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.level1.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.level2.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.level3.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.level4.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.level5.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.level6.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="segmentedlist.as.table.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="shade.verbatim.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="shade.verbatim.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="show.comments.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="sidebar.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="sidebar.title.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="sidebar.float.type.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="sidebar.float.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="simplesect.in.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="subscript.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="superscript.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="symbol.font.family.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.cell.border.color.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.cell.border.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.cell.border.thickness.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.cell.padding.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.footnote.number.format.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.footnote.number.symbols.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.footnote.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.frame.border.color.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.frame.border.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.frame.border.thickness.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="tablecolumns.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.table.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.caption.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="target.database.document.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="targets.filename.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="task.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="textdata.default.encoding.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="tex.math.delims.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="tex.math.in.alt.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="textinsert.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="title.font.family.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="title.margin.left.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.indent.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.line.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.margin.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.max.depth.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.section.depth.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ulink.footnotes.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ulink.hyphenate.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ulink.hyphenate.chars.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ulink.show.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="use.extensions.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="use.local.olink.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="use.role.as.xrefstyle.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="use.role.for.mediaobject.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="use.svg.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="variablelist.as.blocks.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="variablelist.max.termlength.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="variablelist.term.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="variablelist.term.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="variablelist.term.break.after.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="verbatim.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="writing.mode.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xep.extensions.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xep.index.item.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xref.label-page.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xref.label-title.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xref.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xref.title-page.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xref.with.number.and.title.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="region.inner.extent.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="region.outer.extent.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="body.margin.inner.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="body.margin.outer.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="side.region.precedence.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="inner.region.content.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="outer.region.content.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="region.inner.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="region.outer.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="para.properties.frag"&gt;&lt;/src:fragref&gt;
+
+&lt;/xsl:stylesheet&gt;
+</programlisting>
+
+</appendix>
+</book>
diff --git a/applications/content/template/docbook/fo/param.xsl b/applications/content/template/docbook/fo/param.xsl
new file mode 100644
index 0000000..12636c7
--- /dev/null
+++ b/applications/content/template/docbook/fo/param.xsl
@@ -0,0 +1,988 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- This file is generated from param.xweb -->
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:attribute-set name="abstract.properties">
+  <xsl:attribute name="start-indent">0.0in</xsl:attribute>
+  <xsl:attribute name="end-indent">0.0in</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="abstract.title.properties">
+  <xsl:attribute name="font-family"><xsl:value-of select="$title.fontset"/></xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="space-before.optimum"><xsl:value-of select="concat($body.font.master, 'pt')"/></xsl:attribute>
+  <xsl:attribute name="space-before.minimum"><xsl:value-of select="concat($body.font.master, 'pt * 0.8')"/></xsl:attribute>
+  <xsl:attribute name="space-before.maximum"><xsl:value-of select="concat($body.font.master, 'pt * 1.2')"/></xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="text-align">center</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="admon.graphics.extension">.png</xsl:param>
+<xsl:param name="admon.graphics" select="0"/>
+<xsl:param name="admon.graphics.path">images/</xsl:param>
+<xsl:param name="admon.textlabel" select="1"/>
+<xsl:attribute-set name="admonition.properties"/>
+<xsl:attribute-set name="admonition.title.properties">
+  <xsl:attribute name="font-size">14pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="base.dir"/>
+<xsl:attribute-set name="graphical.admonition.properties">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="nongraphical.admonition.properties">
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="margin-{$direction.align.start}">0.25in</xsl:attribute>
+  <xsl:attribute name="margin-{$direction.align.end}">0.25in</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="alignment">justify</xsl:param>
+<xsl:param name="appendix.autolabel">A</xsl:param>
+<xsl:param name="arbortext.extensions" select="0"/>
+<xsl:attribute-set name="article.appendix.title.properties" use-attribute-sets="section.title.properties                          section.title.level1.properties">
+  <xsl:attribute name="margin-{$direction.align.start}">
+    <xsl:value-of select="$title.margin.left"/>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="author.othername.in.middle" select="1"/>
+<xsl:param name="autotoc.label.separator">. </xsl:param>
+<xsl:param name="axf.extensions" select="0"/>
+<xsl:param name="biblioentry.item.separator">. </xsl:param>
+<xsl:attribute-set name="biblioentry.properties" use-attribute-sets="normal.para.spacing">
+  <xsl:attribute name="start-indent">0.5in</xsl:attribute>
+  <xsl:attribute name="text-indent">-0.5in</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="bibliography.collection">http://docbook.sourceforge.net/release/bibliography/bibliography.xml</xsl:param>
+
+<xsl:param name="bibliography.numbered" select="0"/>
+<xsl:param name="bibliography.style">normal</xsl:param>
+<xsl:attribute-set name="blockquote.properties">
+<xsl:attribute name="margin-{$direction.align.start}">0.5in</xsl:attribute>
+<xsl:attribute name="margin-{$direction.align.end}">0.5in</xsl:attribute>
+<xsl:attribute name="space-after.minimum">0.5em</xsl:attribute>
+<xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+<xsl:attribute name="space-after.maximum">2em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="body.font.family">serif</xsl:param>
+<xsl:param name="body.font.master">10</xsl:param>
+<xsl:param name="body.font.size">
+ <xsl:value-of select="$body.font.master"/><xsl:text>pt</xsl:text>
+</xsl:param>
+<xsl:param name="body.margin.bottom">0.5in</xsl:param>
+<xsl:param name="body.margin.top">0.5in</xsl:param>
+<xsl:param name="body.start.indent">
+  <xsl:choose>
+    <xsl:when test="$fop.extensions != 0">0pt</xsl:when>
+    <xsl:when test="$passivetex.extensions != 0">0pt</xsl:when>
+    <xsl:otherwise>4pc</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="body.end.indent">0pt</xsl:param>
+<xsl:param name="bookmarks.collapse" select="1"/>
+<xsl:param name="bridgehead.in.toc" select="0"/>
+<xsl:attribute-set name="calloutlist.properties">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="provisional-distance-between-starts">2.2em</xsl:attribute>
+  <xsl:attribute name="provisional-label-separation">0.2em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="callout.properties">
+</xsl:attribute-set>
+<xsl:param name="callout.defaultcolumn">60</xsl:param>
+
+<xsl:param name="callout.graphics.extension">.svg</xsl:param>
+<xsl:param name="callout.graphics" select="1"/>
+<xsl:param name="callout.icon.size">7pt</xsl:param>
+
+<xsl:param name="callout.graphics.number.limit">30</xsl:param>
+<xsl:param name="callout.graphics.path">images/callouts/</xsl:param>
+<xsl:param name="callout.unicode.font">ZapfDingbats</xsl:param>
+<xsl:param name="callout.unicode" select="0"/>
+<xsl:param name="callout.unicode.number.limit">10</xsl:param>
+<xsl:param name="callout.unicode.start.character">10102</xsl:param>
+<xsl:param name="callouts.extension" select="1"/>
+<xsl:param name="chapter.autolabel" select="1"/>
+<xsl:param name="chunk.quietly" select="0"/>
+<xsl:param name="collect.xref.targets">no</xsl:param>
+<xsl:param name="column.count.back" select="1"/>
+<xsl:param name="column.count.body" select="1"/>
+<xsl:param name="column.count.front" select="1"/>
+<xsl:param name="column.count.index">2</xsl:param>
+<xsl:param name="column.count.lot" select="1"/>
+<xsl:param name="column.count.titlepage" select="1"/>
+<xsl:param name="column.gap.back">12pt</xsl:param>
+<xsl:param name="column.gap.body">12pt</xsl:param>
+<xsl:param name="column.gap.front">12pt</xsl:param>
+<xsl:param name="column.gap.index">12pt</xsl:param>
+<xsl:param name="column.gap.lot">12pt</xsl:param>
+<xsl:param name="column.gap.titlepage">12pt</xsl:param>
+<xsl:attribute-set name="compact.list.item.spacing">
+  <xsl:attribute name="space-before.optimum">0em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">0.2em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="component.label.includes.part.label" select="0"/>
+<xsl:attribute-set name="component.title.properties">
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="space-before.optimum"><xsl:value-of select="concat($body.font.master, 'pt')"/></xsl:attribute>
+  <xsl:attribute name="space-before.minimum"><xsl:value-of select="concat($body.font.master, 'pt * 0.8')"/></xsl:attribute>
+  <xsl:attribute name="space-before.maximum"><xsl:value-of select="concat($body.font.master, 'pt * 1.2')"/></xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="text-align">
+    <xsl:choose>
+      <xsl:when test="((parent::article | parent::articleinfo | parent::info/parent::article) and not(ancestor::book) and not(self::bibliography))         or (parent::slides | parent::slidesinfo)">center</xsl:when>
+      <xsl:otherwise>start</xsl:otherwise>
+    </xsl:choose>
+  </xsl:attribute>
+  <xsl:attribute name="start-indent"><xsl:value-of select="$title.margin.left"/></xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="component.titlepage.properties">
+</xsl:attribute-set>
+<xsl:param name="crop.marks" select="0"/>
+<xsl:param name="crop.mark.width">0.5pt</xsl:param>
+<xsl:param name="crop.mark.offset">24pt</xsl:param>
+<xsl:param name="crop.mark.bleed">6pt</xsl:param>
+<xsl:param name="current.docid"/>
+<xsl:param name="default.float.class">
+  <xsl:choose>
+    <xsl:when test="contains($stylesheet.result.type,'html')">left</xsl:when>
+    <xsl:otherwise>before</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="default.image.width"/>
+<xsl:param name="default.table.width"/>
+<xsl:param name="default.table.frame">all</xsl:param>
+<xsl:param name="default.table.rules">none</xsl:param>
+<xsl:param name="default.units">pt</xsl:param>
+<xsl:param name="dingbat.font.family">serif</xsl:param>
+<xsl:param name="double.sided" select="0"/>
+<xsl:param name="draft.mode">no</xsl:param>
+<xsl:param name="draft.watermark.image">images/draft.png</xsl:param>
+
+<xsl:param name="ebnf.assignment">
+  <fo:inline xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="{$monospace.font.family}">
+    <xsl:text>::=</xsl:text>
+  </fo:inline>
+</xsl:param>
+
+<xsl:param name="ebnf.statement.terminator"/>
+<xsl:param name="email.delimiters.enabled" select="1"/>
+<xsl:param name="email.mailto.enabled" select="0"/>
+<xsl:attribute-set name="equation.properties" use-attribute-sets="formal.object.properties"/>
+<xsl:attribute-set name="equation.number.properties">
+  <xsl:attribute name="text-align">end</xsl:attribute>
+  <xsl:attribute name="display-align">center</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="example.properties" use-attribute-sets="formal.object.properties">
+    <xsl:attribute name="keep-together.within-column">auto</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="exsl.node.set.available"> 
+  <xsl:choose>
+    <xsl:when xmlns:exsl="http://exslt.org/common" exsl:foo="" test="function-available('exsl:node-set') or                        contains(system-property('xsl:vendor'),                          'Apache Software Foundation')">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:attribute-set name="figure.properties" use-attribute-sets="formal.object.properties"/>
+<xsl:param name="firstterm.only.link" select="0"/>
+<xsl:attribute-set name="footer.content.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$body.fontset"/>
+  </xsl:attribute>
+  <xsl:attribute name="margin-left">
+    <xsl:value-of select="$title.margin.left"/>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="footer.rule" select="1"/>
+<xsl:param name="footer.column.widths">1 1 1</xsl:param>
+<xsl:param name="footer.table.height">14pt</xsl:param>
+<xsl:attribute-set name="footer.table.properties">
+  <xsl:attribute name="table-layout">fixed</xsl:attribute>
+  <xsl:attribute name="width">100%</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="footers.on.blank.pages" select="1"/>
+<xsl:param name="footnote.font.size">
+ <xsl:value-of select="$body.font.master * 0.8"/><xsl:text>pt</xsl:text>
+</xsl:param>
+<xsl:param name="footnote.number.format">1</xsl:param>
+<xsl:param name="footnote.number.symbols"/>
+<xsl:attribute-set name="footnote.mark.properties">
+  <xsl:attribute name="font-family"><xsl:value-of select="$body.fontset"/></xsl:attribute>
+  <xsl:attribute name="font-size">75%</xsl:attribute>
+  <xsl:attribute name="font-weight">normal</xsl:attribute>
+  <xsl:attribute name="font-style">normal</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="footnote.properties">
+  <xsl:attribute name="font-family"><xsl:value-of select="$body.fontset"/></xsl:attribute>
+  <xsl:attribute name="font-size"><xsl:value-of select="$footnote.font.size"/></xsl:attribute>
+  <xsl:attribute name="font-weight">normal</xsl:attribute>
+  <xsl:attribute name="font-style">normal</xsl:attribute>
+  <xsl:attribute name="text-align"><xsl:value-of select="$alignment"/></xsl:attribute>
+  <xsl:attribute name="start-indent">0pt</xsl:attribute>
+  <xsl:attribute name="text-indent">0pt</xsl:attribute>
+  <xsl:attribute name="hyphenate"><xsl:value-of select="$hyphenate"/></xsl:attribute>
+  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
+  <xsl:attribute name="linefeed-treatment">treat-as-space</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="footnote.sep.leader.properties">
+  <xsl:attribute name="color">black</xsl:attribute>
+  <xsl:attribute name="leader-pattern">rule</xsl:attribute>
+  <xsl:attribute name="leader-length">1in</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="fop.extensions" select="0"/>
+<xsl:param name="fop1.extensions" select="0"/>
+<xsl:attribute-set name="formal.object.properties">
+  <xsl:attribute name="space-before.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">2em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">2em</xsl:attribute>
+  <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="formal.procedures" select="1"/>
+<xsl:param name="formal.title.placement">
+figure before
+example before
+equation before
+table before
+procedure before
+task before
+</xsl:param>
+<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">0.4em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">0.6em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">0.8em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="funcsynopsis.decoration" select="1"/>
+<xsl:param name="funcsynopsis.style">kr</xsl:param>
+<xsl:param name="function.parens" select="0"/>
+<xsl:param name="generate.consistent.ids" select="0"/>
+<xsl:param name="generate.index" select="1"/>
+<xsl:param name="generate.section.toc.level" select="0"/>
+
+<xsl:param name="generate.toc">
+/appendix toc,title
+article/appendix  nop
+/article  toc,title
+book      toc,title,figure,table,example,equation
+/chapter  toc,title
+part      toc,title
+/preface  toc,title
+reference toc,title
+/sect1    toc
+/sect2    toc
+/sect3    toc
+/sect4    toc
+/sect5    toc
+/section  toc
+set       toc,title
+</xsl:param>
+<xsl:param name="glossary.as.blocks" select="0"/>
+<xsl:param name="glossary.collection"/>
+<xsl:param name="glossary.sort" select="0"/>
+<xsl:param name="glossentry.show.acronym">no</xsl:param>
+<xsl:param name="glosslist.as.blocks" select="0"/>
+<xsl:param name="glossterm.auto.link" select="0"/>
+<xsl:param name="glossterm.separation">0.25in</xsl:param>
+<xsl:param name="glossterm.width">2in</xsl:param>
+<xsl:attribute-set name="glossentry.list.item.properties">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="glossterm.list.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="glossterm.block.properties">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="glossdef.list.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="glossdef.block.properties">
+  <xsl:attribute name="margin-{$direction.align.start}">.25in</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="graphic.default.extension"/>
+<xsl:attribute-set name="header.content.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$body.fontset"/>
+  </xsl:attribute>
+  <xsl:attribute name="margin-left">
+    <xsl:value-of select="$title.margin.left"/>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="header.rule" select="1"/>
+<xsl:param name="header.column.widths">1 1 1</xsl:param>
+<xsl:param name="header.table.height">14pt</xsl:param>
+<xsl:attribute-set name="header.table.properties">
+  <xsl:attribute name="table-layout">fixed</xsl:attribute>
+  <xsl:attribute name="width">100%</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="headers.on.blank.pages" select="1"/>
+<xsl:param name="highlight.default.language"/>
+<xsl:param name="highlight.source" select="0"/>
+<xsl:param name="highlight.xslthl.config"/>
+<xsl:param name="hyphenate">true</xsl:param>
+<xsl:param name="hyphenate.verbatim" select="0"/>
+<xsl:param name="hyphenate.verbatim.characters"/>
+<xsl:param name="ignore.image.scaling" select="0"/>
+<xsl:param name="img.src.path"/>
+<xsl:param name="index.method">basic</xsl:param>
+<xsl:param name="index.on.role" select="0"/>
+<xsl:param name="index.on.type" select="0"/>
+<xsl:attribute-set name="index.page.number.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="informalequation.properties" use-attribute-sets="informal.object.properties"/>
+<xsl:attribute-set name="informalexample.properties" use-attribute-sets="informal.object.properties"/>
+<xsl:attribute-set name="informalfigure.properties" use-attribute-sets="informal.object.properties"/>
+<xsl:attribute-set name="informal.object.properties">
+  <xsl:attribute name="space-before.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">2em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">2em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="informaltable.properties" use-attribute-sets="informal.object.properties"/>
+<xsl:attribute-set name="index.preferred.page.properties">
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="index.div.title.properties">
+  <xsl:attribute name="margin-{$direction.align.start}">0pt</xsl:attribute>
+  <xsl:attribute name="font-size">14.4pt</xsl:attribute>
+  <xsl:attribute name="font-family"><xsl:value-of select="$title.fontset"/></xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="space-before.optimum"><xsl:value-of select="concat($body.font.master,'pt')"/></xsl:attribute>
+  <xsl:attribute name="space-before.minimum"><xsl:value-of select="concat($body.font.master,'pt * 0.8')"/></xsl:attribute>
+  <xsl:attribute name="space-before.maximum"><xsl:value-of select="concat($body.font.master,'pt * 1.2')"/></xsl:attribute>
+  <xsl:attribute name="start-indent">0pt</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="index.entry.properties">
+  <xsl:attribute name="start-indent">0pt</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="index.number.separator"/>
+<xsl:param name="index.range.separator"/>
+<xsl:param name="index.term.separator"/>
+<xsl:param name="insert.link.page.number">no</xsl:param>
+<xsl:param name="insert.xref.page.number">no</xsl:param>
+<xsl:attribute-set name="itemizedlist.properties" use-attribute-sets="list.block.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="itemizedlist.label.properties">
+</xsl:attribute-set>
+    <xsl:param name="itemizedlist.label.width">1.0em</xsl:param>
+  
+
+<xsl:param name="keep.relative.image.uris" select="0"/>
+<xsl:param name="l10n.gentext.default.language">en</xsl:param>
+<xsl:param name="l10n.gentext.language"/>
+<xsl:param name="l10n.gentext.use.xref.language" select="0"/>
+<xsl:param name="l10n.lang.value.rfc.compliant" select="1"/>
+<xsl:param name="label.from.part" select="0"/>
+<xsl:param name="line-height">normal</xsl:param>
+<xsl:param name="linenumbering.everyNth">5</xsl:param>
+<xsl:param name="linenumbering.extension" select="1"/>
+<xsl:param name="linenumbering.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="linenumbering.width">3</xsl:param>
+<xsl:attribute-set name="list.block.properties">
+  <xsl:attribute name="provisional-label-separation">0.2em</xsl:attribute>
+  <xsl:attribute name="provisional-distance-between-starts">1.5em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="list.block.spacing">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="list.item.spacing">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="make.index.markup" select="0"/>
+<xsl:param name="make.single.year.ranges" select="0"/>
+<xsl:param name="make.year.ranges" select="0"/>
+<xsl:attribute-set name="margin.note.properties">
+  <xsl:attribute name="font-size">90%</xsl:attribute>
+  <xsl:attribute name="text-align">start</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="margin.note.title.properties">
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="text-align">start</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="margin.note.float.type">none</xsl:param>
+<xsl:param name="margin.note.width">1in</xsl:param>
+<xsl:param name="marker.section.level">2</xsl:param>
+<xsl:param name="menuchoice.menu.separator"> → </xsl:param>
+<xsl:param name="menuchoice.separator">+</xsl:param>
+<xsl:param name="monospace.font.family">monospace</xsl:param>
+<xsl:attribute-set name="monospace.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$monospace.font.family"/>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="monospace.verbatim.properties" use-attribute-sets="verbatim.properties monospace.properties">
+  <xsl:attribute name="text-align">start</xsl:attribute>
+  <xsl:attribute name="wrap-option">no-wrap</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="monospace.verbatim.font.width">0.60em</xsl:param>
+<xsl:param name="nominal.table.width">6in</xsl:param>
+<xsl:attribute-set name="normal.para.spacing">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="olink.doctitle">no</xsl:param> 
+<xsl:param name="olink.base.uri"/>
+<xsl:param name="olink.debug" select="0"/>
+<xsl:attribute-set name="olink.properties">
+  <xsl:attribute name="show-destination">replace</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="olink.lang.fallback.sequence"/>
+<xsl:attribute-set name="orderedlist.properties" use-attribute-sets="list.block.properties">
+  <xsl:attribute name="provisional-distance-between-starts">2em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="orderedlist.label.properties">
+</xsl:attribute-set>
+<xsl:param name="orderedlist.label.width">1.2em</xsl:param>
+<xsl:param name="prefer.internal.olink" select="0"/>
+<xsl:param name="insert.olink.page.number">no</xsl:param>
+<xsl:param name="insert.olink.pdf.frag" select="0"/>
+<xsl:param name="page.height">
+  <xsl:choose>
+    <xsl:when test="$page.orientation = 'portrait'">
+      <xsl:value-of select="$page.height.portrait"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$page.width.portrait"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="page.height.portrait">
+  <xsl:choose>
+    <xsl:when test="$paper.type = 'A4landscape'">210mm</xsl:when>
+    <xsl:when test="$paper.type = 'USletter'">11in</xsl:when>
+    <xsl:when test="$paper.type = 'USlandscape'">8.5in</xsl:when>
+    <xsl:when test="$paper.type = '4A0'">2378mm</xsl:when>
+    <xsl:when test="$paper.type = '2A0'">1682mm</xsl:when>
+    <xsl:when test="$paper.type = 'A0'">1189mm</xsl:when>
+    <xsl:when test="$paper.type = 'A1'">841mm</xsl:when>
+    <xsl:when test="$paper.type = 'A2'">594mm</xsl:when>
+    <xsl:when test="$paper.type = 'A3'">420mm</xsl:when>
+    <xsl:when test="$paper.type = 'A4'">297mm</xsl:when>
+    <xsl:when test="$paper.type = 'A5'">210mm</xsl:when>
+    <xsl:when test="$paper.type = 'A6'">148mm</xsl:when>
+    <xsl:when test="$paper.type = 'A7'">105mm</xsl:when>
+    <xsl:when test="$paper.type = 'A8'">74mm</xsl:when>
+    <xsl:when test="$paper.type = 'A9'">52mm</xsl:when>
+    <xsl:when test="$paper.type = 'A10'">37mm</xsl:when>
+    <xsl:when test="$paper.type = 'B0'">1414mm</xsl:when>
+    <xsl:when test="$paper.type = 'B1'">1000mm</xsl:when>
+    <xsl:when test="$paper.type = 'B2'">707mm</xsl:when>
+    <xsl:when test="$paper.type = 'B3'">500mm</xsl:when>
+    <xsl:when test="$paper.type = 'B4'">353mm</xsl:when>
+    <xsl:when test="$paper.type = 'B5'">250mm</xsl:when>
+    <xsl:when test="$paper.type = 'B6'">176mm</xsl:when>
+    <xsl:when test="$paper.type = 'B7'">125mm</xsl:when>
+    <xsl:when test="$paper.type = 'B8'">88mm</xsl:when>
+    <xsl:when test="$paper.type = 'B9'">62mm</xsl:when>
+    <xsl:when test="$paper.type = 'B10'">44mm</xsl:when>
+    <xsl:when test="$paper.type = 'C0'">1297mm</xsl:when>
+    <xsl:when test="$paper.type = 'C1'">917mm</xsl:when>
+    <xsl:when test="$paper.type = 'C2'">648mm</xsl:when>
+    <xsl:when test="$paper.type = 'C3'">458mm</xsl:when>
+    <xsl:when test="$paper.type = 'C4'">324mm</xsl:when>
+    <xsl:when test="$paper.type = 'C5'">229mm</xsl:when>
+    <xsl:when test="$paper.type = 'C6'">162mm</xsl:when>
+    <xsl:when test="$paper.type = 'C7'">114mm</xsl:when>
+    <xsl:when test="$paper.type = 'C8'">81mm</xsl:when>
+    <xsl:when test="$paper.type = 'C9'">57mm</xsl:when>
+    <xsl:when test="$paper.type = 'C10'">40mm</xsl:when>
+    <xsl:otherwise>11in</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="page.margin.bottom">0.5in</xsl:param>
+<xsl:param name="page.margin.inner">
+  <xsl:choose>
+    <xsl:when test="$double.sided != 0">1.25in</xsl:when>
+    <xsl:otherwise>1in</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="page.margin.outer">
+  <xsl:choose>
+    <xsl:when test="$double.sided != 0">0.75in</xsl:when>
+    <xsl:otherwise>1in</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="page.margin.top">0.5in</xsl:param>
+<xsl:param name="page.orientation">portrait</xsl:param>
+<xsl:param name="page.width">
+  <xsl:choose>
+    <xsl:when test="$page.orientation = 'portrait'">
+      <xsl:value-of select="$page.width.portrait"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$page.height.portrait"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="page.width.portrait">
+  <xsl:choose>
+    <xsl:when test="$paper.type = 'USletter'">8.5in</xsl:when>
+    <xsl:when test="$paper.type = '4A0'">1682mm</xsl:when>
+    <xsl:when test="$paper.type = '2A0'">1189mm</xsl:when>
+    <xsl:when test="$paper.type = 'A0'">841mm</xsl:when>
+    <xsl:when test="$paper.type = 'A1'">594mm</xsl:when>
+    <xsl:when test="$paper.type = 'A2'">420mm</xsl:when>
+    <xsl:when test="$paper.type = 'A3'">297mm</xsl:when>
+    <xsl:when test="$paper.type = 'A4'">210mm</xsl:when>
+    <xsl:when test="$paper.type = 'A5'">148mm</xsl:when>
+    <xsl:when test="$paper.type = 'A6'">105mm</xsl:when>
+    <xsl:when test="$paper.type = 'A7'">74mm</xsl:when>
+    <xsl:when test="$paper.type = 'A8'">52mm</xsl:when>
+    <xsl:when test="$paper.type = 'A9'">37mm</xsl:when>
+    <xsl:when test="$paper.type = 'A10'">26mm</xsl:when>
+    <xsl:when test="$paper.type = 'B0'">1000mm</xsl:when>
+    <xsl:when test="$paper.type = 'B1'">707mm</xsl:when>
+    <xsl:when test="$paper.type = 'B2'">500mm</xsl:when>
+    <xsl:when test="$paper.type = 'B3'">353mm</xsl:when>
+    <xsl:when test="$paper.type = 'B4'">250mm</xsl:when>
+    <xsl:when test="$paper.type = 'B5'">176mm</xsl:when>
+    <xsl:when test="$paper.type = 'B6'">125mm</xsl:when>
+    <xsl:when test="$paper.type = 'B7'">88mm</xsl:when>
+    <xsl:when test="$paper.type = 'B8'">62mm</xsl:when>
+    <xsl:when test="$paper.type = 'B9'">44mm</xsl:when>
+    <xsl:when test="$paper.type = 'B10'">31mm</xsl:when>
+    <xsl:when test="$paper.type = 'C0'">917mm</xsl:when>
+    <xsl:when test="$paper.type = 'C1'">648mm</xsl:when>
+    <xsl:when test="$paper.type = 'C2'">458mm</xsl:when>
+    <xsl:when test="$paper.type = 'C3'">324mm</xsl:when>
+    <xsl:when test="$paper.type = 'C4'">229mm</xsl:when>
+    <xsl:when test="$paper.type = 'C5'">162mm</xsl:when>
+    <xsl:when test="$paper.type = 'C6'">114mm</xsl:when>
+    <xsl:when test="$paper.type = 'C7'">81mm</xsl:when>
+    <xsl:when test="$paper.type = 'C8'">57mm</xsl:when>
+    <xsl:when test="$paper.type = 'C9'">40mm</xsl:when>
+    <xsl:when test="$paper.type = 'C10'">28mm</xsl:when>
+    <xsl:otherwise>8.5in</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="paper.type">USletter</xsl:param>
+<xsl:param name="part.autolabel">I</xsl:param>
+<xsl:param name="passivetex.extensions" select="0"/>
+<xsl:attribute-set name="pgwide.properties">
+  <xsl:attribute name="start-indent">0pt</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="preface.autolabel" select="0"/>
+<xsl:param name="preferred.mediaobject.role"/>
+<xsl:attribute-set name="procedure.properties" use-attribute-sets="formal.object.properties">
+  <xsl:attribute name="keep-together.within-column">auto</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="process.empty.source.toc" select="0"/>
+<xsl:param name="process.source.toc" select="0"/>
+<xsl:param name="profile.arch"/>
+<xsl:param name="profile.audience"/>
+<xsl:param name="profile.attribute"/>
+<xsl:param name="profile.condition"/>
+<xsl:param name="profile.conformance"/>
+<xsl:param name="profile.lang"/>
+<xsl:param name="profile.os"/>
+<xsl:param name="profile.revision"/>
+<xsl:param name="profile.revisionflag"/>
+<xsl:param name="profile.role"/>
+<xsl:param name="profile.security"/>
+<xsl:param name="profile.separator">;</xsl:param>
+<xsl:param name="profile.status"/>
+<xsl:param name="profile.userlevel"/>
+<xsl:param name="profile.value"/>
+<xsl:param name="profile.vendor"/>
+<xsl:param name="profile.wordsize"/>
+<xsl:param name="punct.honorific">.</xsl:param>
+<xsl:param name="qanda.defaultlabel">number</xsl:param>
+<xsl:param name="qanda.in.toc" select="0"/>
+<xsl:param name="qanda.nested.in.toc" select="0"/>
+<xsl:param name="qanda.inherit.numeration" select="1"/>
+<xsl:param name="qandadiv.autolabel" select="1"/>
+<xsl:attribute-set name="qanda.title.level1.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 2.0736"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="qanda.title.level2.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 1.728"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="qanda.title.level3.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 1.44"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="qanda.title.level4.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 1.2"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="qanda.title.level5.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="qanda.title.level6.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="qanda.title.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$title.fontset"/>
+  </xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <!-- font size is calculated dynamically by qanda.heading template -->
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1.0em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="refentry.generate.name" select="1"/>
+<xsl:param name="refentry.generate.title" select="0"/>
+<xsl:param name="refentry.pagebreak" select="1"/>
+<xsl:attribute-set name="refentry.title.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$title.fontset"/>
+  </xsl:attribute>
+  <xsl:attribute name="font-size">18pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="space-after">1em</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1.0em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.4em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">0.6em</xsl:attribute>
+  <xsl:attribute name="start-indent"><xsl:value-of select="$title.margin.left"/></xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="refentry.xref.manvolnum" select="1"/>
+  <xsl:param name="reference.autolabel">I</xsl:param>
+<xsl:param name="refclass.suppress" select="0"/>
+<xsl:param name="region.after.extent">0.4in</xsl:param>
+<xsl:param name="region.before.extent">0.4in</xsl:param>
+<xsl:attribute-set name="revhistory.table.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="revhistory.table.cell.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="revhistory.title.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="root.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$body.fontset"/>
+  </xsl:attribute>
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.size"/>
+  </xsl:attribute>
+  <xsl:attribute name="text-align">
+    <xsl:value-of select="$alignment"/>
+  </xsl:attribute>
+  <xsl:attribute name="line-height">
+    <xsl:value-of select="$line-height"/>
+  </xsl:attribute>
+  <xsl:attribute name="font-selection-strategy">character-by-character</xsl:attribute>
+  <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
+  <xsl:attribute name="writing-mode">
+    <xsl:value-of select="$direction.mode"/>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="rootid"/>
+<xsl:param name="runinhead.default.title.end.punct">.</xsl:param>
+<xsl:param name="runinhead.title.end.punct">.!?:</xsl:param>
+<xsl:param name="sans.font.family">sans-serif</xsl:param>
+<xsl:param name="section.autolabel" select="0"/>
+<xsl:param name="section.autolabel.max.depth">8</xsl:param>
+<xsl:param name="section.container.element">block</xsl:param>
+<xsl:param name="section.label.includes.component.label" select="0"/>
+<xsl:attribute-set name="section.title.level1.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 2.0736"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="section.title.level2.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 1.728"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="section.title.level3.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 1.44"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="section.title.level4.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 1.2"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="section.title.level5.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="section.title.level6.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="section.title.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$title.fontset"/>
+  </xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <!-- font size is calculated dynamically by section.heading template -->
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1.0em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="text-align">start</xsl:attribute>
+  <xsl:attribute name="start-indent"><xsl:value-of select="$title.margin.left"/></xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="section.level1.properties" use-attribute-sets="section.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="section.level2.properties" use-attribute-sets="section.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="section.level3.properties" use-attribute-sets="section.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="section.level4.properties" use-attribute-sets="section.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="section.level5.properties" use-attribute-sets="section.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="section.level6.properties" use-attribute-sets="section.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="section.properties">
+</xsl:attribute-set>
+<xsl:param name="segmentedlist.as.table" select="0"/>
+<xsl:param name="shade.verbatim" select="0"/>
+
+<xsl:attribute-set name="shade.verbatim.style">
+  <xsl:attribute name="background-color">#E0E0E0</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="show.comments" select="1"/>
+<xsl:attribute-set name="sidebar.properties" use-attribute-sets="formal.object.properties">
+  <xsl:attribute name="border-style">solid</xsl:attribute>
+  <xsl:attribute name="border-width">1pt</xsl:attribute>
+  <xsl:attribute name="border-color">black</xsl:attribute>
+  <xsl:attribute name="background-color">#DDDDDD</xsl:attribute>
+  <xsl:attribute name="padding-start">12pt</xsl:attribute>
+  <xsl:attribute name="padding-end">12pt</xsl:attribute>
+  <xsl:attribute name="padding-top">6pt</xsl:attribute>
+  <xsl:attribute name="padding-bottom">6pt</xsl:attribute>
+  <xsl:attribute name="margin-{$direction.align.start}">0pt</xsl:attribute>
+  <xsl:attribute name="margin-{$direction.align.end}">0pt</xsl:attribute>
+<!--
+  <xsl:attribute name="margin-top">6pt</xsl:attribute>
+  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
+-->
+</xsl:attribute-set>
+<xsl:attribute-set name="sidebar.title.properties">
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="text-align">start</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="sidebar.float.type">none</xsl:param>
+<xsl:param name="sidebar.float.width">1in</xsl:param>
+<xsl:param name="simplesect.in.toc" select="0"/>
+<xsl:attribute-set name="subscript.properties">
+  <xsl:attribute name="font-size">75%</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="superscript.properties">
+  <xsl:attribute name="font-size">75%</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="symbol.font.family">Symbol,ZapfDingbats</xsl:param>
+
+<xsl:param name="table.cell.border.color">black</xsl:param>
+<xsl:param name="table.cell.border.style">solid</xsl:param>
+<xsl:param name="table.cell.border.thickness">0.5pt</xsl:param>
+<xsl:attribute-set name="table.cell.padding">
+  <xsl:attribute name="padding-start">2pt</xsl:attribute>
+  <xsl:attribute name="padding-end">2pt</xsl:attribute>
+  <xsl:attribute name="padding-top">2pt</xsl:attribute>
+  <xsl:attribute name="padding-bottom">2pt</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="table.footnote.number.format">a</xsl:param>
+<xsl:param name="table.footnote.number.symbols"/>
+<xsl:attribute-set name="table.footnote.properties">
+  <xsl:attribute name="font-family"><xsl:value-of select="$body.fontset"/></xsl:attribute>
+  <xsl:attribute name="font-size"><xsl:value-of select="$footnote.font.size"/></xsl:attribute>
+  <xsl:attribute name="font-weight">normal</xsl:attribute>
+  <xsl:attribute name="font-style">normal</xsl:attribute>
+  <xsl:attribute name="space-before">2pt</xsl:attribute>
+  <xsl:attribute name="text-align"><xsl:value-of select="$alignment"/></xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:param name="table.frame.border.color">black</xsl:param>
+<xsl:param name="table.frame.border.style">solid</xsl:param>
+<xsl:param name="table.frame.border.thickness">0.5pt</xsl:param>
+<xsl:attribute-set name="table.properties" use-attribute-sets="formal.object.properties">
+  <xsl:attribute name="keep-together.within-column">auto</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="tablecolumns.extension" select="1"/>
+<xsl:attribute-set name="table.table.properties">
+  <xsl:attribute name="border-before-width.conditionality">retain</xsl:attribute>
+  <xsl:attribute name="border-collapse">collapse</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="table.caption.properties">
+  <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+ <xsl:param name="target.database.document">olinkdb.xml</xsl:param>
+<xsl:param name="targets.filename">target.db</xsl:param>
+<xsl:attribute-set name="task.properties" use-attribute-sets="formal.object.properties">
+    <xsl:attribute name="keep-together.within-column">auto</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="textdata.default.encoding"/>
+<xsl:param name="tex.math.delims" select="1"/>
+<xsl:param name="tex.math.in.alt"/>
+  <xsl:param name="textinsert.extension" select="1"/>
+<xsl:param name="title.font.family">sans-serif</xsl:param>
+<xsl:param name="title.margin.left">
+  <xsl:choose>
+    <xsl:when test="$fop.extensions != 0">-4pc</xsl:when>
+    <xsl:when test="$passivetex.extensions != 0">0pt</xsl:when>
+    <xsl:otherwise>0pt</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="toc.indent.width">24</xsl:param>
+<!-- inconsistant point specification? -->
+<xsl:attribute-set name="toc.line.properties">
+  <xsl:attribute name="text-align-last">justify</xsl:attribute>
+  <xsl:attribute name="text-align">start</xsl:attribute>
+  <xsl:attribute name="end-indent"><xsl:value-of select="concat($toc.indent.width, 'pt')"/></xsl:attribute>
+  <xsl:attribute name="last-line-end-indent"><xsl:value-of select="concat('-', $toc.indent.width, 'pt')"/></xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="toc.margin.properties">
+  <xsl:attribute name="space-before.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">2em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">2em</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="toc.max.depth">8</xsl:param>
+<xsl:param name="toc.section.depth">2</xsl:param>
+<xsl:param name="ulink.footnotes" select="0"/>
+<xsl:param name="ulink.hyphenate"/>
+<xsl:param name="ulink.hyphenate.chars">/</xsl:param>
+<xsl:param name="ulink.show" select="1"/>
+<xsl:param name="use.extensions" select="0"/>
+<xsl:param name="use.local.olink.style" select="0"/> 
+<xsl:param name="use.role.as.xrefstyle" select="1"/>
+<xsl:param name="use.role.for.mediaobject" select="1"/>
+<xsl:param name="use.svg" select="1"/>
+<xsl:param name="variablelist.as.blocks" select="0"/>
+<xsl:param name="variablelist.max.termlength">24</xsl:param>
+<xsl:param name="variablelist.term.separator">, </xsl:param>
+<xsl:attribute-set name="variablelist.term.properties">
+</xsl:attribute-set>
+<xsl:param name="variablelist.term.break.after">0</xsl:param>
+<xsl:attribute-set name="verbatim.properties">
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="wrap-option">no-wrap</xsl:attribute>
+  <xsl:attribute name="white-space-collapse">false</xsl:attribute>
+  <xsl:attribute name="white-space-treatment">preserve</xsl:attribute>
+  <xsl:attribute name="linefeed-treatment">preserve</xsl:attribute>
+  <xsl:attribute name="text-align">start</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="writing.mode">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">writing-mode</xsl:with-param>
+    <xsl:with-param name="lang">
+      <xsl:call-template name="l10n.language">
+        <xsl:with-param name="target" select="/*[1]"/>
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:param>
+<xsl:param name="xep.extensions" select="0"/>
+<xsl:attribute-set name="xep.index.item.properties" use-attribute-sets="index.page.number.properties">
+  <xsl:attribute name="merge-subsequent-page-numbers">true</xsl:attribute>
+  <xsl:attribute name="link-back">true</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="xref.label-page.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="xref.label-title.separator">: </xsl:param>
+<xsl:attribute-set name="xref.properties">
+</xsl:attribute-set>
+<xsl:param name="xref.title-page.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="xref.with.number.and.title" select="1"/>
+<xsl:param name="region.inner.extent">0in</xsl:param>
+<xsl:param name="region.outer.extent">0in</xsl:param>
+<xsl:param name="body.margin.inner">0in</xsl:param>
+<xsl:param name="body.margin.outer">0in</xsl:param>
+<xsl:param name="side.region.precedence">false</xsl:param>
+<xsl:attribute-set name="inner.region.content.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="outer.region.content.properties">
+</xsl:attribute-set>
+<xsl:attribute-set name="region.inner.properties">
+  <xsl:attribute name="border-width">0</xsl:attribute>
+  <xsl:attribute name="padding">0</xsl:attribute>
+  <xsl:attribute name="reference-orientation">90</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="region.outer.properties">
+  <xsl:attribute name="border-width">0</xsl:attribute>
+  <xsl:attribute name="padding">0</xsl:attribute>
+  <xsl:attribute name="reference-orientation">90</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="para.properties" use-attribute-sets="normal.para.spacing">
+</xsl:attribute-set>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/fo/passivetex.xsl b/applications/content/template/docbook/fo/passivetex.xsl
new file mode 100644
index 0000000..9fa13dd
--- /dev/null
+++ b/applications/content/template/docbook/fo/passivetex.xsl
@@ -0,0 +1,36 @@
+<?xml version='1.0' encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+      This extension stops PassiveTeX from merging subsequent '-' to 
+      dashes. You must set passivetex.extensions to '1' if you want get
+      this functionality.
+     ******************************************************************** -->
+
+<xsl:template name="passivetex.dash.subst">
+  <xsl:param name="string"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, '--')">
+      <xsl:variable name="rest">
+        <xsl:call-template name="passivetex.dash.subst">
+          <xsl:with-param name="string"
+                          select="concat('-', substring-after($string, '--'))"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="concat(substring-before($string, '--'),
+                                   '-&#x200b;',
+                                   $rest)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$string"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/fo/pdf2index b/applications/content/template/docbook/fo/pdf2index
new file mode 100644
index 0000000..c14d8ec
--- /dev/null
+++ b/applications/content/template/docbook/fo/pdf2index
@@ -0,0 +1,140 @@
+#!/usr/bin/perl -- # -*- Perl -*-
+
+# this needs some cleanup...
+
+my $PSTOTEXT = "pstotext";
+
+my $pdf = shift @ARGV;
+
+my $index = "";
+my $inindex = 0;
+open (F, "$PSTOTEXT $pdf |");
+while (<F>) {
+    if (/^<\/index/) {
+	$index .= $_;
+	$inindex = 0;
+    }
+    $inindex = 1 if /^<index/;
+
+    if ($inindex) {
+	$index .= $_ if /^\s*</;
+    }
+}
+
+my $cindex = "";
+while ($index =~ /^(.*?)((<phrase role=\"pageno\">.*?<\/phrase>\s*)+)/s) {
+    $cindex .= $1;
+    $_ = $2;
+    $index = $'; # '
+
+    my @pages = m/<phrase role=\"pageno\">.*?<\/phrase>\s*/sg;
+
+    # Expand ranges
+    if ($#pages >= 0) {
+	my @mpages = ();
+	foreach my $page (@pages) {
+	    my $pageno = &pageno($page);
+	    if ($pageno =~ /^([0-9]+)[^0-9]([0-9]+)$/) { # funky -
+		for (my $count = $1; $count <= $2; $count++) {
+		    push (@mpages, "<phrase role=\"$pageno\">$count</phrase>");
+		}
+	    } else {
+		push (@mpages, $page);
+	    }
+	}
+	@pages = sort rangesort @mpages;
+    }
+
+    # Remove duplicates...
+    if ($#pages > 0) {
+	my @mpages = ();
+	my $current = "";
+	foreach my $page (@pages) {
+	    my $pageno = &pageno($page);
+	    if ($pageno ne $current) {
+		push (@mpages, $page);
+		$current = $pageno;
+	    }
+	}
+	@pages = @mpages;
+    }
+
+    # Collapse ranges...
+    if ($#pages > 1) {
+	my @cpages = ();
+	while (@pages) {
+	    my $count = 0;
+	    my $len = &rangelen($count, @pages);
+	    if ($len <= 2) {
+		my $page = shift @pages;
+		push (@cpages, $page);
+	    } else {
+		my $fpage = shift @pages;
+		my $lpage = "";
+		while ($len > 1) {
+		    $lpage = shift @pages;
+		    $len--;
+		}
+		my $fpno = &pageno($fpage);
+		my $lpno = &pageno($lpage);
+		$fpage =~ s/>$fpno</>${fpno}-$lpno</s;
+		push (@cpages, $fpage);
+	    }
+	}
+	@pages = @cpages;
+    }
+
+    my $page = shift @pages;
+    $page =~ s/\s*$//s;
+    $cindex .= $page;
+    while (@pages) {
+	$page = shift @pages;
+	$page =~ s/\s*$//s;
+	$cindex .= ", $page";
+    }
+}
+$cindex .= $index;
+
+print "$cindex\n";
+
+sub pageno {
+    my $page = shift;
+
+    $page =~ s/^<phrase.*?>//;
+    $page =~ s/^<link.*?>//;
+
+    return $1 if $page =~ /^([^<>]+)/;
+    return "?";
+}
+
+sub rangesort {
+    my $apno = &pageno($a);
+    my $bpno = &pageno($b);
+
+    # Make sure roman pages come before arabic ones, otherwise sort them in order
+    return -1 if ($apno !~ /^\d+/ && $bpno =~ /^\d+/);
+    return  1 if ($apno =~ /^\d+/ && $bpno !~ /^\d+/);
+    return $apno <=> $bpno;
+}
+
+sub rangelen {
+    my $count = shift;
+    my @pages = @_;
+    my $len = 1;
+    my $inrange = 1;
+
+    my $current = &pageno($pages[$count]);
+    while ($count < $#pages && $inrange) {
+	$count++;
+	my $next = &pageno($pages[$count]);
+	if ($current + 1 eq $next) {
+	    $current = $next;
+	    $inrange = 1;
+	    $len++;
+	} else {
+	    $inrange = 0;
+	}
+    }
+
+    return $len;
+}
diff --git a/applications/content/template/docbook/fo/pi.xml b/applications/content/template/docbook/fo/pi.xml
new file mode 100644
index 0000000..db73ea0
--- /dev/null
+++ b/applications/content/template/docbook/fo/pi.xml
@@ -0,0 +1,1002 @@
+<?xml version="1.0"?>
+
+<reference><info><title>FO Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+
+    
+<para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the DocBook
+      XSL stylesheets for FO output.
+      <note>
+        
+<para>You add these PIs at particular points in a document to
+          cause specific “exceptions” to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it’s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+
+      </note>
+    </para>
+
+  </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_background-color">
+<refnamediv>
+<refname>dbfo_background-color</refname>
+<refpurpose>Sets background color for an image</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo background-color="<replaceable>color</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo background-color</tag> PI before or
+      after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
+      <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
+      sibling to the element, to set a background color for the
+      image.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
+        <listitem>
+          
+<para>An HTML color value</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="BGcolor.html">Background color</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_bgcolor">
+<refnamediv>
+<refname>dbfo_bgcolor</refname>
+<refpurpose>Sets background color on a table row or table cell</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo bgcolor</tag> PI as child of a table row
+      or cell to set a background color for that table row or cell.</para>
+
+    
+<para>This PI works for both CALS and HTML tables.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
+        <listitem>
+          
+<para>An HTML color value</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="BGtableColor.html#CellBGColor">Cell background color</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_float-type">
+<refnamediv>
+<refname>dbfo_float-type</refname>
+<refpurpose>Specifies float behavior for a sidebar</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo float-type="margin.note"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo float-type</tag> PI to specify the float
+      behavior for a <tag>sidebar</tag> (to cause the sidebar to be
+      displayed as a marginal note).</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>float-type="margin.note"</term>
+        <listitem>
+          
+<para>Specifies that the <tag>sidebar</tag> should be
+            displayed as a marginal note.</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>sidebar.float.type</parameter> (parameter),
+      <parameter>sidebar.float.width</parameter> (parameter), 
+      <parameter>sidebar.properties</parameter> (attribute-set),
+      <parameter>sidebar.title.properties</parameter> (attribute-set)
+    </para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="SideFloats.html#SidebarFloats">A sidebar as
+        side float</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_funcsynopsis-style">
+<refnamediv>
+<refname>dbfo_funcsynopsis-style</refname>
+<refpurpose>Specifies presentation style for a funcsynopsis</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo funcsynopsis-style="kr"|"ansi"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo funcsynopsis-style</tag> PI as a child of
+      a <tag>funcsynopsis</tag> or anywhere within a funcsynopsis
+      to control the presentation style for output of all
+      <tag>funcprototype</tag> instances within that funcsynopsis.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>funcsynopsis-style="kr"</term>
+        <listitem>
+          
+<para>Displays <tag>funcprototype</tag> output in K&amp;R style</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>funcsynopsis-style="ansi"</term>
+        <listitem>
+          
+<para>Displays <tag>funcprototype</tag> output in ANSI style</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>funcsynopsis.style</parameter></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_glossary-presentation">
+<refnamediv>
+<refname>dbfo_glossary-presentation</refname>
+<refpurpose>Specifies presentation style for a glossary</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo glossary-presentation="list"|"blocks"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo glossary-presentation</tag> PI as a child of
+      a <tag>glossary</tag> to control its presentation style.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>glossary-presentation="list"</term>
+        <listitem>
+          
+<para>Displays the glossary as a list</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>glossary-presentation="blocks"</term>
+        <listitem>
+          
+<para>Displays the glossary as blocks</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>glossary.as.blocks</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Glossaries.html#GlossaryFormatPrint">Glossary
+        formatting in print</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_glosslist-presentation">
+<refnamediv>
+<refname>dbfo_glosslist-presentation</refname>
+<refpurpose>Specifies presentation style for a glosslist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo glosslist-presentation="list"|"blocks"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo glosslist-presentation</tag> PI as a child of
+      a <tag>glosslist</tag> to control its presentation style.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>glosslist-presentation="list"</term>
+        <listitem>
+          
+<para>Displays the glosslist as a list</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>glosslist-presentation="blocks"</term>
+        <listitem>
+          
+<para>Displays the glosslist as blocks</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>glosslist.as.blocks</parameter> </para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Glossaries.html#GlossaryFormatPrint">Glossary
+        formatting in print</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_glossterm-width">
+<refnamediv>
+<refname>dbfo_glossterm-width</refname>
+<refpurpose>Specifies the glossterm width for a glossary or
+    glosslist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo glossterm-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo glossterm-width</tag> PI as a child of a
+      <tag>glossary</tag> or <tag>glosslist</tag> to specify the
+      width for output of <tag>glossterm</tag> instances in the
+      output.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>glossterm-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the glossterm width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>glossterm.width</parameter>,
+      <parameter>glossterm.separation</parameter>
+    </para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Glossaries.html#GlossaryFormatPrint">Glossary
+        formatting in print</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_keep-together">
+<refnamediv>
+<refname>dbfo_keep-together</refname>
+<refpurpose>Specifies “keep” behavior for a table, example,
+    figure, equation, procedure, or task</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo keep-together="auto"|"always"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo keep-together</tag> PI as a child of a
+      formal object (<tag>table</tag>, <tag>example</tag>,
+      <tag>figure</tag>, <tag>equation</tag>, <tag>procedure</tag>, or
+      <tag>task</tag>) to specify “keep” behavior (to allow the object to 
+    “break” across a page).</para>
+
+    
+<para>The PI also works with <tag>informaltable</tag>, <tag>informalexample</tag>,
+      <tag>informalfigure</tag> and <tag>informalequation</tag>.
+    </para>
+
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>keep-together="auto"</term>
+        <listitem>
+          
+<para>Enables the object to break across a page</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>keep-together="always"</term>
+        <listitem>
+          
+<para>Prevents the object from breaking across a page (the
+            default stylesheet behavior)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para>formal.object.properties</para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="PageBreaking.html#KeepTogetherPI">Keep-together processing instruction</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_label-width">
+<refnamediv>
+<refname>dbfo_label-width</refname>
+<refpurpose>Specifies the label width for a qandaset, itemizedlist, orderedlist
+  or calloutlist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo label-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo label-width</tag> PI as a child of a
+      <tag>qandaset</tag>, <tag>itemizedlist</tag>, <tag>orderedlist</tag>, 
+      or <tag>calloutlist</tag> to specify the width of labels.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the label width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_linenumbering.everyNth">
+<refnamediv>
+<refname>dbfo_linenumbering.everyNth</refname>
+<refpurpose>Specifies interval for line numbers in verbatims</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo linenumbering.everyNth</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the interval at which lines are numbered.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies numbering interval; a number is output
+            before every <replaceable>N</replaceable>th line</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>linenumbering.everyNth</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_linenumbering.separator">
+<refnamediv>
+<refname>dbfo_linenumbering.separator</refname>
+<refpurpose>Specifies separator text for line numbers in verbatims</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo linenumbering.separator</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the separator text output between the line numbers and content.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the text (zero or more characters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>linenumbering.separator</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_linenumbering.width">
+<refnamediv>
+<refname>dbfo_linenumbering.width</refname>
+<refpurpose>Specifies width for line numbers in verbatims</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo linenumbering.width</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the width set aside for line numbers.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the width (inluding units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>linenumbering.width</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_list-presentation">
+<refnamediv>
+<refname>dbfo_list-presentation</refname>
+<refpurpose>Specifies presentation style for a variablelist or
+    segmentedlist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo list-presentation="list"|"blocks"|"table"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo list-presentation</tag> PI as a child of
+      a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
+      control the presentation style for the list (to cause it, for
+      example, to be displayed as a table).</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>list-presentation="list"</term>
+        <listitem>
+          
+<para>Displays the list as a list</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="blocks"</term>
+        <listitem>
+          
+<para>(<tag>variablelist</tag> only) Displays the list as blocks</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="table"</term>
+        <listitem>
+          
+<para>(<tag>segmentedlist</tag> only) Displays the list as a table</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<itemizedlist>
+      <listitem>
+        
+<para><parameter>variablelist.as.blocks</parameter></para>
+
+      </listitem>
+      <listitem>
+        
+<para><parameter>variablelist.as.table</parameter></para>
+
+      </listitem>
+    </itemizedlist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#ListIndents">Variable list formatting in print</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_list-width">
+<refnamediv>
+<refname>dbfo_list-width</refname>
+<refpurpose>Specifies the width of a horizontal simplelist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo list-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo list-width</tag> PI as a child of a
+      <tag>simplelist</tag> whose <tag class="attribute">class</tag>
+      value is <literal>horizontal</literal>, to specify the width
+      of the <tag>simplelist</tag>.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the <tag>simplelist</tag> width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_orientation">
+<refnamediv>
+<refname>dbfo_orientation</refname>
+<refpurpose>Specifies the orientation for a CALS table row or cell</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo orientation="0"|"90"|"180"|"270"|"-90"|"-180"|"-270"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo orientation</tag> PI as a child of a CALS
+      <tag>table</tag> row or cell to specify the orientation
+      (rotation) for the row or cell.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>orientation="0"|"90"|"180"|"270"|"-90"|"-180"|"-270"</term>
+        <listitem>
+          
+<para>Specifies the number of degrees by which the cell or
+            row is rotated</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_pgwide">
+<refnamediv>
+<refname>dbfo_pgwide</refname>
+<refpurpose>Specifies if an <tag>equation</tag> or <tag>example</tag> goes across full page width</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo pgwide="0"|"1"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo pgwide</tag> PI as a child of an
+      <tag>equation</tag> or <tag>example</tag> to specify that the
+      content should rendered across the full width of the page.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>pgwide="0"</term>
+        <listitem>
+          
+<para>If zero, the content is rendered across the current
+            text flow</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>pgwide="1"</term>
+        <listitem>
+          
+<para>If <code>1</code> (or any non-zero value), the
+            content is rendered across the full width of the page</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>pgwide.properties</parameter></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_rotated-width">
+<refnamediv>
+<refname>dbfo_rotated-width</refname>
+<refpurpose>Specifies the width for a CALS table <tag>entry</tag> or
+    <tag>row</tag></refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo rotated-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo rotated-width</tag> PI as a child of 
+      <tag>entry</tag> or <tag>row</tag> instance in a CALS table to specify the
+      width of that the <tag>entry</tag> or <tag>row</tag>; or
+      use it higher up in table to cause the width to be inherited
+      recursively down.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>rotated-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the width of a row or cell (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_sidebar-width">
+<refnamediv>
+<refname>dbfo_sidebar-width</refname>
+<refpurpose>Specifies the width of a sidebar</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo sidebar-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo sidebar-width</tag> PI as a child of a
+      <tag>sidebar</tag> to specify the width of the sidebar.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>sidebar-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the <tag>sidebar</tag> width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>sidebar.float.type parameter</parameter>,
+      <parameter>sidebar.float.width parameter</parameter>, 
+      <parameter>sidebar.properties attribute-set</parameter>,
+      <parameter>sidebar.title.properties</parameter>
+    </para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="SideFloats.html#SidebarFloats">A sidebar as
+        side float</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_start">
+<refnamediv>
+<refname>dbfo_start</refname>
+<refpurpose>(obsolete) Sets the starting number on an ordered list</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo start="<replaceable>character</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para><emphasis>This PI is obsolete</emphasis>. The intent of
+      it was to provide a means for setting a specific starting
+      number for an ordered list. Instead of this PI, set a value
+      for the <literal>override</literal> attribute on the first
+      <tag>listitem</tag> in the list; that will have the same
+      effect as what this PI was intended for.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>start="<replaceable>character</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the character to use as the starting
+            number; use 0-9, a-z, A-Z, or lowercase or uppercase
+            Roman numerals</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Orderedlists.html#ListStartNum">List starting number</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_table-width">
+<refnamediv>
+<refname>dbfo_table-width</refname>
+<refpurpose>Specifies the width for a CALS table or for revhistory
+    output</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo table-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo table-width</tag> PI as a child or
+      sibling of a CALS <tag>table</tag>, or as a child of an
+      <tag>informaltable</tag>, <tag>entrytbl</tag>, or
+      <tag>revhistory</tag> instance (which is rendered as a table
+      in output) to specify the width of the table in output.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the table width (including units or as a percentage)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Tables.html#TableWidth">Table width</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_term-width">
+<refnamediv>
+<refname>dbfo_term-width</refname>
+<refpurpose>Specifies the term width for a variablelist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo term-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo term-width</tag> PI as a child of a
+      <tag>variablelist</tag> to specify the width for
+      <tag>term</tag> output.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the term width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#ListIndents">Variable list formatting in print</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_toc">
+<refnamediv>
+<refname>dbfo_toc</refname>
+<refpurpose>Specifies whether a TOC should be generated for a qandaset</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo toc="0"|"1"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo toc</tag> PI as a child of a
+      <tag>qandaset</tag> to specify whether a table of contents
+      (TOC) is generated for the <tag>qandaset</tag>.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>toc="0"</term>
+        <listitem>
+          
+<para>If zero, no TOC is generated</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>toc="1"</term>
+        <listitem>
+          
+<para>If <code>1</code> (or any non-zero value),
+            a TOC is generated</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="QandAtoc.html">Q and A list of questions</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo-need">
+<refnamediv>
+<refname>dbfo-need</refname>
+<refpurpose>Specify a need for space (a kind of soft page break)</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo-need height="<replaceable>n</replaceable>" [space-before="<replaceable>n</replaceable>"]</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>A “need” is a request for space on a page.  If the
+      requested space is not available, the page breaks and the
+      content that follows the need request appears on the next
+      page. If the requested space is available, then no page break
+      is inserted.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>height="<replaceable>n</replaceable>"</term>
+        <listitem>
+          
+<para>The amount of height needed (including units)</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>space-before="<replaceable>n</replaceable>"</term>
+        <listitem>
+          
+<para>The amount of extra vertical space to add (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="PageBreaking.html#SoftPageBreaks">Soft page breaks</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfo_row-height">
+<refnamediv>
+<refname>dbfo_row-height</refname>
+<refpurpose>Specifies the height for a CALS table row</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfo row-height="<replaceable>height</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfo row-height</tag> PI as a child of a
+      <tag>row</tag> to specify the height of the row.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>row-height="<replaceable>height</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the row height (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="RowHeight.html">Row height</link></para>
+
+  </refsect1></refentry>
+</reference>
+
diff --git a/applications/content/template/docbook/fo/pi.xsl b/applications/content/template/docbook/fo/pi.xsl
new file mode 100644
index 0000000..4637738
--- /dev/null
+++ b/applications/content/template/docbook/fo/pi.xsl
@@ -0,0 +1,1098 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+  xmlns:fo="http://www.w3.org/1999/XSL/Format"
+  xmlns:xlink="http://www.w3.org/1999/xlink"
+  exclude-result-prefixes="doc xlink"
+  version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns=""><info><title>FO Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+
+  <partintro id="partintro">
+    <title>Introduction</title>
+
+    <para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the DocBook
+      XSL stylesheets for FO output.
+      <note>
+        <para>You add these PIs at particular points in a document to
+          cause specific “exceptions” to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it’s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+      </note>
+    </para>
+  </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<doc:pi name="dbfo_background-color" xmlns="">
+  <refpurpose>Sets background color for an image</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo background-color</tag> PI before or
+      after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
+      <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
+      sibling to the element, to set a background color for the
+      image.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo background-color="<replaceable>color</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
+        <listitem>
+          <para>An HTML color value</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="BGcolor.html"
+        >Background color</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_background-color">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'background-color'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_bgcolor" xmlns="">
+  <refpurpose>Sets background color on a table row or table cell</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo bgcolor</tag> PI as child of a table row
+      or cell to set a background color for that table row or cell.</para>
+    <para>This PI works for both CALS and HTML tables.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
+        <listitem>
+          <para>An HTML color value</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="BGtableColor.html#CellBGColor"
+        >Cell background color</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_bgcolor">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'bgcolor'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_float-type" xmlns="">
+  <refpurpose>Specifies float behavior for a sidebar</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo float-type</tag> PI to specify the float
+      behavior for a <tag>sidebar</tag> (to cause the sidebar to be
+      displayed as a marginal note).</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo float-type="margin.note"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>float-type="margin.note"</term>
+        <listitem>
+          <para>Specifies that the <tag>sidebar</tag> should be
+            displayed as a marginal note.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>sidebar.float.type</parameter> (parameter),
+      <parameter>sidebar.float.width</parameter> (parameter), 
+      <parameter>sidebar.properties</parameter> (attribute-set),
+      <parameter>sidebar.title.properties</parameter> (attribute-set)
+    </para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg" xlink:href="SideFloats.html#SidebarFloats" >A sidebar as
+        side float</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_float-type">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'float-type'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_funcsynopsis-style" xmlns="">
+  <refpurpose>Specifies presentation style for a funcsynopsis</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo funcsynopsis-style</tag> PI as a child of
+      a <tag>funcsynopsis</tag> or anywhere within a funcsynopsis
+      to control the presentation style for output of all
+      <tag>funcprototype</tag> instances within that funcsynopsis.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo funcsynopsis-style="kr"|"ansi"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>funcsynopsis-style="kr"</term>
+        <listitem>
+          <para>Displays <tag>funcprototype</tag> output in K&amp;R style</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>funcsynopsis-style="ansi"</term>
+        <listitem>
+          <para>Displays <tag>funcprototype</tag> output in ANSI style</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>funcsynopsis.style</parameter></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_funcsynopsis-style">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'funcsynopsis-style'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_glossary-presentation" xmlns="">
+  <refpurpose>Specifies presentation style for a glossary</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo glossary-presentation</tag> PI as a child of
+      a <tag>glossary</tag> to control its presentation style.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo glossary-presentation="list"|"blocks"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>glossary-presentation="list"</term>
+        <listitem>
+          <para>Displays the glossary as a list</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>glossary-presentation="blocks"</term>
+        <listitem>
+          <para>Displays the glossary as blocks</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>glossary.as.blocks</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg" xlink:href="Glossaries.html#GlossaryFormatPrint" >Glossary
+        formatting in print</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_glossary-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'glossary-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_glosslist-presentation" xmlns="">
+  <refpurpose>Specifies presentation style for a glosslist</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo glosslist-presentation</tag> PI as a child of
+      a <tag>glosslist</tag> to control its presentation style.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo glosslist-presentation="list"|"blocks"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>glosslist-presentation="list"</term>
+        <listitem>
+          <para>Displays the glosslist as a list</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>glosslist-presentation="blocks"</term>
+        <listitem>
+          <para>Displays the glosslist as blocks</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>glosslist.as.blocks</parameter> </para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg" xlink:href="Glossaries.html#GlossaryFormatPrint" >Glossary
+        formatting in print</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_glosslist-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'glosslist-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_glossterm-width" xmlns="">
+  <refpurpose>Specifies the glossterm width for a glossary or
+    glosslist</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo glossterm-width</tag> PI as a child of a
+      <tag>glossary</tag> or <tag>glosslist</tag> to specify the
+      width for output of <tag>glossterm</tag> instances in the
+      output.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo glossterm-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>glossterm-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the glossterm width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>glossterm.width</parameter>,
+      <parameter>glossterm.separation</parameter>
+    </para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg" xlink:href="Glossaries.html#GlossaryFormatPrint" >Glossary
+        formatting in print</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_glossterm-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'glossterm-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_keep-together" xmlns="">
+  <refpurpose>Specifies “keep” behavior for a table, example,
+    figure, equation, procedure, or task</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo keep-together</tag> PI as a child of a
+      formal object (<tag>table</tag>, <tag>example</tag>,
+      <tag>figure</tag>, <tag>equation</tag>, <tag>procedure</tag>, or
+      <tag>task</tag>) to specify “keep” behavior (to allow the object to 
+    “break” across a page).</para>
+    <para>The PI also works with <tag>informaltable</tag>, <tag>informalexample</tag>,
+      <tag>informalfigure</tag> and <tag>informalequation</tag>.
+    </para>
+
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo keep-together="auto"|"always"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>keep-together="auto"</term>
+        <listitem>
+          <para>Enables the object to break across a page</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>keep-together="always"</term>
+        <listitem>
+          <para>Prevents the object from breaking across a page (the
+            default stylesheet behavior)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para>formal.object.properties</para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg" xlink:href="PageBreaking.html#KeepTogetherPI"
+        >Keep-together processing instruction</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_keep-together">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'keep-together'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_label-width" xmlns="">
+  <refpurpose>Specifies the label width for a qandaset, itemizedlist, orderedlist
+  or calloutlist</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo label-width</tag> PI as a child of a
+      <tag>qandaset</tag>, <tag>itemizedlist</tag>, <tag>orderedlist</tag>, 
+      or <tag>calloutlist</tag> to specify the width of labels.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo label-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the label width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="QandAformat.html"
+        >Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_label-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'label-width'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi name="dbfo_linenumbering.everyNth" xmlns="">
+  <refpurpose>Specifies interval for line numbers in verbatims</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo linenumbering.everyNth</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the interval at which lines are numbered.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
+        <listitem>
+          <para>Specifies numbering interval; a number is output
+            before every <replaceable>N</replaceable>th line</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>linenumbering.everyNth</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="AnnotateListing.html#LineNumbering"
+        >Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_linenumbering.everyNth">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_linenumbering.separator" xmlns="">
+  <refpurpose>Specifies separator text for line numbers in verbatims</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo linenumbering.separator</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the separator text output between the line numbers and content.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>linenumbering.separator</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="AnnotateListing.html#LineNumbering"
+        >Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_linenumbering.separator">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_linenumbering.width" xmlns="">
+  <refpurpose>Specifies width for line numbers in verbatims</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo linenumbering.width</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the width set aside for line numbers.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the width (inluding units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>linenumbering.width</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="AnnotateListing.html#LineNumbering"
+        >Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_linenumbering.width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_list-presentation" xmlns="">
+  <refpurpose>Specifies presentation style for a variablelist or
+    segmentedlist</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo list-presentation</tag> PI as a child of
+      a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
+      control the presentation style for the list (to cause it, for
+      example, to be displayed as a table).</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo list-presentation="list"|"blocks"|"table"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>list-presentation="list"</term>
+        <listitem>
+          <para>Displays the list as a list</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="blocks"</term>
+        <listitem>
+          <para>(<tag>variablelist</tag> only) Displays the list as blocks</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="table"</term>
+        <listitem>
+          <para>(<tag>segmentedlist</tag> only) Displays the list as a table</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <itemizedlist>
+      <listitem>
+        <para><parameter>variablelist.as.blocks</parameter></para>
+      </listitem>
+      <listitem>
+        <para><parameter>variablelist.as.table</parameter></para>
+      </listitem>
+    </itemizedlist>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Variablelists.html#ListIndents"
+        >Variable list formatting in print</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_list-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'list-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_list-width" xmlns="">
+  <refpurpose>Specifies the width of a horizontal simplelist</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo list-width</tag> PI as a child of a
+      <tag>simplelist</tag> whose <tag class="attribute">class</tag>
+      value is <literal>horizontal</literal>, to specify the width
+      of the <tag>simplelist</tag>.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo list-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the <tag>simplelist</tag> width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_list-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'list-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_orientation" xmlns="">
+  <refpurpose>Specifies the orientation for a CALS table row or cell</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo orientation</tag> PI as a child of a CALS
+      <tag>table</tag> row or cell to specify the orientation
+      (rotation) for the row or cell.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo orientation="0"|"90"|"180"|"270"|"-90"|"-180"|"-270"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>orientation="0"|"90"|"180"|"270"|"-90"|"-180"|"-270"</term>
+        <listitem>
+          <para>Specifies the number of degrees by which the cell or
+            row is rotated</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_orientation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'orientation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_pgwide" xmlns="">
+  <refpurpose>Specifies if an <tag>equation</tag> or <tag>example</tag> goes across full page width</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo pgwide</tag> PI as a child of an
+      <tag>equation</tag> or <tag>example</tag> to specify that the
+      content should rendered across the full width of the page.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo pgwide="0"|"1"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>pgwide="0"</term>
+        <listitem>
+          <para>If zero, the content is rendered across the current
+            text flow</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>pgwide="1"</term>
+        <listitem>
+          <para>If <code>1</code> (or any non-zero value), the
+            content is rendered across the full width of the page</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>pgwide.properties</parameter></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_pgwide">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'pgwide'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_rotated-width" xmlns="">
+  <refpurpose>Specifies the width for a CALS table <tag>entry</tag> or
+    <tag>row</tag></refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo rotated-width</tag> PI as a child of 
+      <tag>entry</tag> or <tag>row</tag> instance in a CALS table to specify the
+      width of that the <tag>entry</tag> or <tag>row</tag>; or
+      use it higher up in table to cause the width to be inherited
+      recursively down.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo rotated-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>rotated-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the width of a row or cell (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_rotated-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'rotated-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_sidebar-width" xmlns="">
+  <refpurpose>Specifies the width of a sidebar</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo sidebar-width</tag> PI as a child of a
+      <tag>sidebar</tag> to specify the width of the sidebar.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo sidebar-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>sidebar-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the <tag>sidebar</tag> width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>sidebar.float.type parameter</parameter>,
+      <parameter>sidebar.float.width parameter</parameter>, 
+      <parameter>sidebar.properties attribute-set</parameter>,
+      <parameter>sidebar.title.properties</parameter>
+    </para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg" xlink:href="SideFloats.html#SidebarFloats" >A sidebar as
+        side float</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_sidebar-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'sidebar-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_start" xmlns="">
+  <refpurpose>(obsolete) Sets the starting number on an ordered list</refpurpose>
+  <refdescription>
+    <para><emphasis>This PI is obsolete</emphasis>. The intent of
+      it was to provide a means for setting a specific starting
+      number for an ordered list. Instead of this PI, set a value
+      for the <literal>override</literal> attribute on the first
+      <tag>listitem</tag> in the list; that will have the same
+      effect as what this PI was intended for.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo start="<replaceable>character</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>start="<replaceable>character</replaceable>"</term>
+        <listitem>
+          <para>Specifies the character to use as the starting
+            number; use 0-9, a-z, A-Z, or lowercase or uppercase
+            Roman numerals</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Orderedlists.html#ListStartNum"
+        >List starting number</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_start">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'start'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_table-width" xmlns="">
+  <refpurpose>Specifies the width for a CALS table or for revhistory
+    output</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo table-width</tag> PI as a child or
+      sibling of a CALS <tag>table</tag>, or as a child of an
+      <tag>informaltable</tag>, <tag>entrytbl</tag>, or
+      <tag>revhistory</tag> instance (which is rendered as a table
+      in output) to specify the width of the table in output.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo table-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the table width (including units or as a percentage)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Tables.html#TableWidth"
+        >Table width</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_table-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'table-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_term-width" xmlns="">
+  <refpurpose>Specifies the term width for a variablelist</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo term-width</tag> PI as a child of a
+      <tag>variablelist</tag> to specify the width for
+      <tag>term</tag> output.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo term-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the term width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Variablelists.html#ListIndents"
+        >Variable list formatting in print</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_term-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'term-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_toc" xmlns="">
+  <refpurpose>Specifies whether a TOC should be generated for a qandaset</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo toc</tag> PI as a child of a
+      <tag>qandaset</tag> to specify whether a table of contents
+      (TOC) is generated for the <tag>qandaset</tag>.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo toc="0"|"1"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>toc="0"</term>
+        <listitem>
+          <para>If zero, no TOC is generated</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>toc="1"</term>
+        <listitem>
+          <para>If <code>1</code> (or any non-zero value),
+            a TOC is generated</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="QandAtoc.html"
+        >Q and A list of questions</link>,
+      <link role="tcg"
+        xlink:href="QandAformat.html"
+        >Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_toc">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'toc'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo-need" xmlns="">
+  <refpurpose>Specify a need for space (a kind of soft page break)</refpurpose>
+  <refdescription>
+    <para>A “need” is a request for space on a page.  If the
+      requested space is not available, the page breaks and the
+      content that follows the need request appears on the next
+      page. If the requested space is available, then no page break
+      is inserted.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo-need height="<replaceable>n</replaceable>" [space-before="<replaceable>n</replaceable>"]</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>height="<replaceable>n</replaceable>"</term>
+        <listitem>
+          <para>The amount of height needed (including units)</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>space-before="<replaceable>n</replaceable>"</term>
+        <listitem>
+          <para>The amount of extra vertical space to add (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="PageBreaking.html#SoftPageBreaks"
+        >Soft page breaks</link></para>
+  </refsee>
+</doc:pi>
+
+<doc:pi name="dbfo_row-height" xmlns="">
+  <refpurpose>Specifies the height for a CALS table row</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfo row-height</tag> PI as a child of a
+      <tag>row</tag> to specify the height of the row.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo row-height="<replaceable>height</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>row-height="<replaceable>height</replaceable>"</term>
+        <listitem>
+          <para>Specifies the row height (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="RowHeight.html"
+        >Row height</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_row-height">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'row-height'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+
+<xsl:template name="pi.dbfo-need">
+  <xsl:variable name="pi-height">
+    <xsl:call-template name="dbfo-attribute">
+      <xsl:with-param name="pis" select="."/>
+      <xsl:with-param name="attribute" select="'height'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="height">
+    <xsl:choose>
+      <xsl:when test="$pi-height != ''">
+        <xsl:value-of select="$pi-height"/>
+      </xsl:when>
+      <xsl:otherwise>0pt</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="pi-before">
+    <xsl:call-template name="dbfo-attribute">
+      <xsl:with-param name="pis" select="."/>
+      <xsl:with-param name="attribute" select="'space-before'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="spacer">
+    <fo:block-container width="100%" height="{$height}">
+      <fo:block><fo:leader leader-length="0pt"/></fo:block>
+    </fo:block-container>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$fop1.extensions != 0">
+      <!-- Doesn't work in fop -->
+    </xsl:when>
+    <xsl:when test="$fop.extensions != 0">
+      <!-- Doesn't work in fop -->
+    </xsl:when>
+    <xsl:when test="$pi-before != '' and
+      not(following-sibling::listitem) and
+      not(following-sibling::step)">
+      <fo:block space-after="0pt" space-before="{$pi-before}">
+        <xsl:copy-of select="$spacer"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:when test="following-sibling::para">
+      <fo:block space-after="0pt" 
+        xsl:use-attribute-sets="normal.para.spacing">
+        <xsl:copy-of select="$spacer"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:when test="following-sibling::table or
+      following-sibling::figure or
+      following-sibling::example or
+      following-sibling::equation">
+      <fo:block space-after="0pt" 
+        xsl:use-attribute-sets="formal.object.properties">
+        <xsl:copy-of select="$spacer"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:when test="following-sibling::informaltable or
+      following-sibling::informalfigure or
+      following-sibling::informalexample or
+      following-sibling::informalequation">
+      <fo:block space-after="0pt" 
+        xsl:use-attribute-sets="informal.object.properties">
+        <xsl:copy-of select="$spacer"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:when test="following-sibling::itemizedlist or
+      following-sibling::orderedlist or
+      following-sibling::variablelist or
+      following-sibling::simplelist">
+      <fo:block space-after="0pt" 
+        xsl:use-attribute-sets="informal.object.properties">
+        <xsl:copy-of select="$spacer"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:when test="following-sibling::listitem or
+      following-sibling::step">
+      <fo:list-item space-after="0pt" 
+        xsl:use-attribute-sets="informal.object.properties">
+        <fo:list-item-label>
+          <fo:block line-height="0pt"/>
+        </fo:list-item-label>
+        <fo:list-item-body start-indent="0pt" end-indent="0pt">
+          <xsl:copy-of select="$spacer"/>
+        </fo:list-item-body>
+      </fo:list-item>
+    </xsl:when>
+    <xsl:when test="following-sibling::sect1 or
+      following-sibling::sect2 or
+      following-sibling::sect3 or
+      following-sibling::sect4 or
+      following-sibling::sect5 or
+      following-sibling::section">
+      <fo:block space-after="0pt" 
+        xsl:use-attribute-sets="section.title.properties">
+        <xsl:copy-of select="$spacer"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block space-after="0pt" space-before="0em">
+        <xsl:copy-of select="$spacer"/>
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="$fop1.extensions != 0">
+      <!-- Doesn't work in fop -->
+    </xsl:when>
+    <xsl:when test="$fop.extensions != 0">
+      <!-- Doesn't work in fop -->
+    </xsl:when>
+    <xsl:when test="following-sibling::listitem or
+      following-sibling::step">
+      <fo:list-item space-before.precedence="force"
+        space-before="-{$height}"
+        space-after="0pt"
+        space-after.precedence="force">
+        <fo:list-item-label>
+          <fo:block line-height="0pt"/>
+        </fo:list-item-label>
+        <fo:list-item-body start-indent="0pt" end-indent="0pt">
+          <fo:block line-height="0pt"/>
+        </fo:list-item-body>
+      </fo:list-item>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block space-before.precedence="force"
+        space-before="-{$height}"
+        space-after="0pt"
+        space-after.precedence="force">
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbfo-attribute">
+  <!-- * dbfo-attribute is an interal utility template for retrieving -->
+  <!-- * pseudo-attributes/parameters from PIs -->
+  <xsl:param name="pis" select="processing-instruction('dbfo')"/>
+  <xsl:param name="attribute">filename</xsl:param>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$pis"/>
+    <xsl:with-param name="attribute" select="$attribute"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction()">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbfo-need')">
+  <xsl:call-template name="pi.dbfo-need"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/profile-docbook.xsl b/applications/content/template/docbook/fo/profile-docbook.xsl
new file mode 100644
index 0000000..dd5f371
--- /dev/null
+++ b/applications/content/template/docbook/fo/profile-docbook.xsl
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exslt="http://exslt.org/common" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="db ng exsl exslt" version="1.0">
+
+<!-- It is important to use indent="no" here, otherwise verbatim -->
+<!-- environments get broken by indented tags...at least when the -->
+<!-- callout extension is used...at least with some processors -->
+<xsl:output method="xml" indent="no"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION.xsl"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/utility.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="../common/olink.xsl"/>
+<xsl:include href="../common/targets.xsl"/>
+<xsl:include href="../common/pi.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="autoidx.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="htmltbl.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="fo.xsl"/>
+<xsl:include href="fo-rtf.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="biblio-iso690.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="task.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="pagesetup.xsl"/>
+<xsl:include href="pi.xsl"/>
+<xsl:include href="spaces.xsl"/>
+<xsl:include href="ebnf.xsl"/>
+<xsl:include href="../html/chunker.xsl"/>
+<xsl:include href="annotations.xsl"/>
+<xsl:include href="../common/stripns.xsl"/>
+
+<xsl:include href="fop.xsl"/>
+<xsl:include href="fop1.xsl"/>
+<xsl:include href="passivetex.xsl"/>
+<xsl:include href="xep.xsl"/>
+<xsl:include href="axf.xsl"/>
+<xsl:include href="ptc.xsl"/>
+
+<xsl:param name="stylesheet.result.type" select="'fo'"/>
+
+<!-- ==================================================================== -->
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:text>Element </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text> in namespace '</xsl:text>
+    <xsl:value-of select="namespace-uri(.)"/>
+    <xsl:text>' encountered</xsl:text>
+    <xsl:if test="parent::*">
+      <xsl:text> in </xsl:text>
+      <xsl:value-of select="name(parent::*)"/>
+    </xsl:if>
+    <xsl:text>, but no template matches.</xsl:text>
+  </xsl:message>
+  
+  <fo:block color="red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/> 
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </fo:block>
+</xsl:template>
+
+<!-- Update this list if new root elements supported -->
+<xsl:variable name="root.elements" select="' appendix article bibliography book chapter colophon dedication glossary index part preface qandaset refentry reference sect1 section set setindex '"/>
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <xsl:when test="false()"/>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="false()"/>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:variable name="root.element" select="key('id', $rootid)"/>
+          <xsl:choose>
+            <xsl:when test="count($root.element) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:when test="not(contains($root.elements, concat(' ', local-name($root.element), ' ')))">
+              <xsl:message terminate="yes">
+                <xsl:text>ERROR: Document root element ($rootid=</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>) for FO output </xsl:text>
+                <xsl:text>must be one of the following elements:</xsl:text>
+                <xsl:value-of select="$root.elements"/>
+              </xsl:message>
+            </xsl:when>
+            <!-- Otherwise proceed -->
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="$root.element" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="$root.element" mode="process.root"/>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <!-- Otherwise process the document root element -->
+        <xsl:otherwise>
+          <xsl:variable name="document.element" select="*[1]"/>
+          <xsl:choose>
+            <xsl:when test="not(contains($root.elements,                      concat(' ', local-name($document.element), ' ')))">
+              <xsl:message terminate="yes">
+                <xsl:text>ERROR: Document root element for FO output </xsl:text>
+                <xsl:text>must be one of the following elements:</xsl:text>
+                <xsl:value-of select="$root.elements"/>
+              </xsl:message>
+            </xsl:when>
+            <!-- Otherwise proceed -->
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="document.element" select="self::*"/>
+
+  <xsl:call-template name="root.messages"/>
+
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$document.element/title[1]">
+        <xsl:value-of select="$document.element/title[1]"/>
+      </xsl:when>
+      <xsl:otherwise>[could not find document title]</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  
+  <!-- Include all id values in XEP output -->
+  <xsl:if test="$xep.extensions != 0">
+    <xsl:processing-instruction name="xep-pdf-drop-unused-destinations">false</xsl:processing-instruction>
+  </xsl:if>
+
+  <fo:root xsl:use-attribute-sets="root.properties">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language">
+        <xsl:with-param name="target" select="/*[1]"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:if test="$xep.extensions != 0">
+      <xsl:call-template name="xep-pis"/>
+      <xsl:call-template name="xep-document-information"/>
+    </xsl:if>
+    <xsl:if test="$axf.extensions != 0">
+      <xsl:call-template name="axf-document-information"/>
+    </xsl:if>
+
+    <xsl:call-template name="setup.pagemasters"/>
+
+    <xsl:if test="$fop.extensions != 0">
+      <xsl:apply-templates select="$document.element" mode="fop.outline"/>
+    </xsl:if>
+
+    <xsl:if test="$fop1.extensions != 0">
+      <xsl:call-template name="fop1-document-information"/>
+      <xsl:variable name="bookmarks">
+        <xsl:apply-templates select="$document.element" mode="fop1.outline"/>
+      </xsl:variable>
+      <xsl:if test="string($bookmarks) != ''">
+        <fo:bookmark-tree>
+          <xsl:copy-of select="$bookmarks"/>
+        </fo:bookmark-tree>
+      </xsl:if>
+      <xsl:apply-templates select="$document.element" mode="fop1.foxdest"/>
+    </xsl:if>
+
+    <xsl:if test="$xep.extensions != 0">
+      <xsl:variable name="bookmarks">
+        <xsl:apply-templates select="$document.element" mode="xep.outline"/>
+      </xsl:variable>
+      <xsl:if test="string($bookmarks) != ''">
+        <rx:outline xmlns:rx="http://www.renderx.com/XSL/Extensions">
+          <xsl:copy-of select="$bookmarks"/>
+        </rx:outline>
+      </xsl:if>
+    </xsl:if>
+
+    <xsl:if test="$arbortext.extensions != 0 and $ati.xsl11.bookmarks != 0">
+      <xsl:variable name="bookmarks">
+        <xsl:apply-templates select="$document.element" mode="ati.xsl11.bookmarks"/>
+      </xsl:variable>
+      <xsl:if test="string($bookmarks) != ''">
+        <fo:bookmark-tree>
+          <xsl:copy-of select="$bookmarks"/>
+        </fo:bookmark-tree>
+      </xsl:if>
+    </xsl:if>
+
+    <xsl:apply-templates select="$document.element"/>
+  </fo:root>
+</xsl:template>
+
+<xsl:template name="root.messages">
+  <!-- redefine this any way you'd like to output messages -->
+  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+  <xsl:message>
+    <xsl:text>Making </xsl:text>
+    <xsl:value-of select="$page.orientation"/>
+    <xsl:text> pages on </xsl:text>
+    <xsl:value-of select="$paper.type"/>
+    <xsl:text> paper (</xsl:text>
+    <xsl:value-of select="$page.width"/>
+    <xsl:text>x</xsl:text>
+    <xsl:value-of select="$page.height"/>
+    <xsl:text>)</xsl:text>
+  </xsl:message>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/ptc.xsl b/applications/content/template/docbook/fo/ptc.xsl
new file mode 100644
index 0000000..a8874d8
--- /dev/null
+++ b/applications/content/template/docbook/fo/ptc.xsl
@@ -0,0 +1,77 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		xmlns:fo="http://www.w3.org/1999/XSL/Format"
+		version="1.0">
+
+<!-- ================================================================ -->
+<!--                                                                  -->
+<!-- PTC/Arbortext Code for XSL 1.1 bookmark support                  -->
+<!--                                                                  -->
+<!-- ================================================================ -->
+
+<xsl:param name="ati.xsl11.bookmarks" select="1"/>
+
+<xsl:variable name="ati-a-dia" select=
+"'&#257;&#259;&#261;&#263;&#265;&#267;&#269;&#271;&#273;&#275;&#277;&#279;&#281;&#283;&#339;&#285;&#287;&#289;&#291;&#293;&#295;&#297;&#299;&#301;&#303;&#305;&#309;&#311;&#314;&#316;&#318;&#320;&#322;&#324;&#326;&#328;&#331;&#333;&#335;&#337;&#341;&#343;&#345;&#347;&#349;&#351;&#353;&#355;&#357;&#359;&#361;&#363;&#365;&#367;&#369;&#371;&#373;&#375;&#378;&#380;&#382;&#256;&#258;&#260;&#262;&#264;&#266;&#268;&#270;&#272;&#274;&#276;&#278;&#280;&#282;&#338;&#284;&#286;&#288;&#290;&#292;&#294;&#296;&#298;&#300;&#302;&#304;&#308;&#310;&#313;&#315;&#317;&#319;&#321;&#323;&#325;&#327;&#330;&#332;&#334;&#336;&#340;&#342;&#344;&#346;&#348;&#350;&#352;&#354;&#356;&#358;&#360;&#362;&#364;&#366;&#368;&#370;&#372;&#374;&#376;&#377;&#379;&#381;'"/>
+
+<xsl:variable name="ati-a-asc" select=
+"'aaaccccddeeeeeegggghhiiiiijklllllnnnnooorrrsssstttuuuuuuwyzzzAAACCCCDDEEEEEEGGGGHHIIIIIJKLLLLLNNNNOOORRRSSSSTTTUUUUUUWYYZZZ'"/>
+
+<xsl:template match="*" mode="ati.xsl11.bookmarks">
+  <xsl:apply-templates select="*" mode="ati.xsl11.bookmarks"/>
+</xsl:template>
+
+<xsl:template match="set|book|part|reference|preface|chapter|appendix|article
+                     |glossary|bibliography|index|setindex
+                     |refentry
+                     |sect1|sect2|sect3|sect4|sect5|section"
+              mode="ati.xsl11.bookmarks">
+  <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="self::index and $generate.index = 0"/>	
+    <xsl:when test="parent::*">
+      <fo:bookmark internal-destination="{$id}">
+        <fo:bookmark-title>
+          <xsl:value-of select="translate($bookmark-label, $ati-a-dia, $ati-a-asc)"/>
+        </fo:bookmark-title>
+        <xsl:apply-templates select="*" mode="ati.xsl11.bookmarks"/>
+      </fo:bookmark>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:bookmark internal-destination="{$id}">
+        <fo:bookmark-title>
+          <xsl:value-of select="translate($bookmark-label, $ati-a-dia, $ati-a-asc)"/>
+        </fo:bookmark-title>
+      </fo:bookmark>
+
+      <xsl:variable name="toc.params">
+        <xsl:call-template name="find.path.params">
+          <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:if test="contains($toc.params, 'toc')
+                    and section|sect1|refentry
+                        |article|bibliography|glossary
+                        |appendix">
+        <fo:bookmark internal-destination="toc...{$id}">
+          <fo:bookmark-title>
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'TableofContents'"/>
+            </xsl:call-template>
+          </fo:bookmark-title>
+        </fo:bookmark>
+      </xsl:if>
+      <xsl:apply-templates select="*" mode="ati.xsl11.bookmarks"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/qandaset.xsl b/applications/content/template/docbook/fo/qandaset.xsl
new file mode 100644
index 0000000..f6c4d39
--- /dev/null
+++ b/applications/content/template/docbook/fo/qandaset.xsl
@@ -0,0 +1,395 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="qandaset" name="process.qandaset">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="label-length">
+    <xsl:call-template name="qandaset.label.length"/>
+  </xsl:variable>
+  
+  <xsl:variable name="toc">
+    <xsl:call-template name="pi.dbfo_toc"/>
+  </xsl:variable>
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="content">
+    <fo:block id="{$id}">
+      <xsl:choose>
+        <xsl:when test="parent::*">
+          <xsl:if test="blockinfo/title|info/title|title">
+            <xsl:apply-templates select="(blockinfo/title|
+                                          info/title|title)[1]"/>
+          </xsl:if>
+        </xsl:when>
+        <!-- If it is the root element -->
+        <xsl:otherwise>
+          <xsl:call-template name="qandaset.titlepage"/>
+        </xsl:otherwise>
+      </xsl:choose>
+  
+      <xsl:if test="(contains($toc.params, 'toc') and $toc != '0') 
+                    or $toc = '1'">
+        <xsl:call-template name="qandaset.toc">
+          <xsl:with-param name="toc.title.p"
+                          select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+      </xsl:if>
+
+      <xsl:call-template name="qandaset.toc.separator"/>
+
+      <xsl:apply-templates select="*[local-name(.) != 'title'
+                                   and local-name(.) != 'titleabbrev'
+                                   and local-name(.) != 'qandadiv'
+                                   and local-name(.) != 'qandaentry']"/>
+      <xsl:apply-templates select="qandadiv"/>
+  
+      <xsl:if test="qandaentry">
+        <fo:list-block xsl:use-attribute-sets="list.block.spacing"
+                       provisional-label-separation="0.2em">
+          <xsl:attribute name="provisional-distance-between-starts">
+            <xsl:choose>
+              <xsl:when test="$label-length != ''">
+                <xsl:value-of select="$label-length"/>
+              </xsl:when>
+              <xsl:otherwise>2.5em</xsl:otherwise>
+            </xsl:choose>
+          </xsl:attribute>
+          <xsl:apply-templates select="qandaentry"/>
+        </fo:list-block>
+      </xsl:if>
+    </fo:block>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="parent::*">
+      <xsl:copy-of select="$content"/>
+    </xsl:when>
+    <!-- Otherwise create a page sequence -->
+    <xsl:otherwise>
+      <xsl:apply-templates select="." mode="page.sequence">
+        <xsl:with-param name="content" select="$content"/>
+        <xsl:with-param name="master-reference" select="'body'"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+  
+</xsl:template>
+
+<xsl:template name="qandaset.label.length">
+  <xsl:param name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:param>
+
+  <xsl:variable name="label-width">
+    <xsl:call-template name="pi.dbfo_label-width"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$label-width != ''">
+      <xsl:value-of select="$label-width"/>
+    </xsl:when>
+    <xsl:when test="descendant::label">
+      <xsl:call-template name="longest.term">
+        <xsl:with-param name="terms" select="descendant::label"/>
+        <xsl:with-param name="maxlength" select="20"/>
+      </xsl:call-template>
+      <xsl:text>em * 0.50</xsl:text>
+    </xsl:when>
+    <xsl:when test="contains($deflabel, 'qnumber') and
+                    $qandadiv.autolabel != 0 and
+                    $qanda.inherit.numeration != 0">
+      <xsl:text>5em</xsl:text>
+    </xsl:when>
+    <xsl:when test="$deflabel ='qnumber' and
+                    $qandadiv.autolabel != 0 and
+                    $qanda.inherit.numeration != 0">
+      <xsl:text>4em</xsl:text>
+    </xsl:when>
+    <xsl:when test="$deflabel = 'number'">
+      <xsl:text>3em</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>2.5em</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandaset/blockinfo/title|qandset/info/title|qandaset/title">
+  <xsl:variable name="enclsect" select="(ancestor::section
+                                        | ancestor::simplesect
+                                        | ancestor::sect5
+                                        | ancestor::sect4
+                                        | ancestor::sect3
+                                        | ancestor::sect2
+                                        | ancestor::sect1
+                                        | ancestor::refsect3
+                                        | ancestor::refsect2
+                                        | ancestor::refsect1)[last()]"/>
+  <xsl:variable name="sectlvl">
+    <xsl:call-template name="section.level">
+      <xsl:with-param name="node" select="$enclsect"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="qanda.heading">
+    <xsl:with-param name="level" select="$sectlvl + 1"/>
+    <xsl:with-param name="marker" select="0"/>
+    <xsl:with-param name="title">
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="qandaset/blockinfo|qandaset/info">
+  <!-- what should this template really do? -->
+  <xsl:apply-templates select="legalnotice" mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="qandadiv">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+
+  <xsl:variable name="label-length">
+    <xsl:call-template name="qandaset.label.length"/>
+  </xsl:variable>
+  
+  <fo:block id="{$id}">
+    <xsl:apply-templates select="(blockinfo/title|info/title|title)[1]"/>
+    <xsl:apply-templates select="*[local-name(.) != 'title'
+                                 and local-name(.) != 'titleabbrev'
+                                 and local-name(.) != 'qandadiv'
+                                 and local-name(.) != 'qandaentry']"/>
+    <fo:block>
+      <xsl:apply-templates select="qandadiv"/>
+
+      <xsl:if test="qandaentry">
+        <fo:list-block xsl:use-attribute-sets="list.block.spacing"
+                       provisional-label-separation="0.2em">
+          <xsl:attribute name="provisional-distance-between-starts">
+            <xsl:choose>
+              <xsl:when test="$label-length != ''">
+                <xsl:value-of select="$label-length"/>
+              </xsl:when>
+              <xsl:otherwise>2.5em</xsl:otherwise>
+            </xsl:choose>
+          </xsl:attribute>
+          <xsl:apply-templates select="qandaentry"/>
+        </fo:list-block>
+      </xsl:if>
+    </fo:block>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="qandadiv/blockinfo/title|qandadiv/info/title|qandadiv/title">
+  <xsl:variable name="enclsect" select="(ancestor::section
+                                        | ancestor::simplesect
+                                        | ancestor::sect5
+                                        | ancestor::sect4
+                                        | ancestor::sect3
+                                        | ancestor::sect2
+                                        | ancestor::sect1
+                                        | ancestor::refsect3
+                                        | ancestor::refsect2
+                                        | ancestor::refsect1)[last()]"/>
+  <xsl:variable name="sectlvl">
+    <xsl:call-template name="section.level">
+      <xsl:with-param name="node" select="$enclsect"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="qanda.heading">
+    <xsl:with-param name="level"  select="$sectlvl + 1 + count(ancestor::qandadiv)"/>
+    <xsl:with-param name="marker" select="0"/>
+    <xsl:with-param name="title">
+      <xsl:apply-templates select="parent::qandadiv" mode="label.markup"/>
+      <xsl:if test="$qandadiv.autolabel != 0">
+        <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+        <xsl:text> </xsl:text>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="qandaentry">
+  <!-- Omit revhistory from fo:list-block because it is a table -->
+  <xsl:apply-templates select="question|answer"/>
+</xsl:template>
+
+<xsl:template match="question">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:variable name="entry.id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="parent::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+
+
+  <xsl:variable name="label.content">
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:if test="contains($deflabel, 'number') and not(label)">
+      <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <fo:list-item id="{$entry.id}" xsl:use-attribute-sets="list.item.spacing">
+    <fo:list-item-label id="{$id}" end-indent="label-end()">
+        <xsl:if test="string-length($label.content) &gt; 0">
+			<fo:block font-weight="bold">
+			  <xsl:copy-of select="$label.content"/>          
+			</fo:block>
+        </xsl:if>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <xsl:choose>
+        <xsl:when test="$deflabel = 'none' and not(label)">
+          <fo:block font-weight="bold">
+            <xsl:apply-templates select="*[local-name(.)!='label']"/>
+          </fo:block>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="*[local-name(.)!='label']"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <!-- Uncomment this line to get revhistory output in the question -->
+      <!-- <xsl:apply-templates select="preceding-sibling::revhistory"/> -->
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+
+<xsl:template match="answer">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <xsl:variable name="entry.id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="parent::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+
+      <xsl:variable name="answer.label">
+        <xsl:apply-templates select="." mode="label.markup"/>
+      </xsl:variable>
+
+  <fo:list-item xsl:use-attribute-sets="list.item.spacing">
+    <fo:list-item-label id="{$id}" end-indent="label-end()">
+      <xsl:choose>
+        <xsl:when test="string-length($answer.label) &gt; 0">
+			<fo:block font-weight="bold">
+			  <xsl:copy-of select="$answer.label"/>
+			</fo:block>
+        </xsl:when>
+        <xsl:otherwise>
+			<fo:block/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <xsl:apply-templates select="*[local-name(.)!='label' and local-name(.) != 'qandaentry']"/>
+      <!-- * handle nested answer/qandaentry instances -->
+      <!-- * (bug 1509043 from Daniel Leidert) -->
+      <xsl:if test="descendant::question">
+        <xsl:call-template name="process.qandaset"/>
+      </xsl:if>
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+
+<xsl:template match="*" mode="qanda.defaultlabel">
+  <xsl:choose>
+    <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+      <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]
+                            /@defaultlabel"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$qanda.defaultlabel"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="label">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template name="qanda.heading">
+  <xsl:param name="level" select="1"/>
+  <xsl:param name="marker" select="0"/>
+  <xsl:param name="title"/>
+  <xsl:param name="titleabbrev"/>
+
+  <fo:block xsl:use-attribute-sets="qanda.title.properties">
+    <xsl:if test="$marker != 0">
+      <fo:marker marker-class-name="section.head.marker">
+        <xsl:choose>
+          <xsl:when test="$titleabbrev = ''">
+            <xsl:value-of select="$title"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$titleabbrev"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </fo:marker>
+    </xsl:if>
+    <xsl:choose>
+      <xsl:when test="$level=1">
+        <fo:block xsl:use-attribute-sets="qanda.title.level1.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$level=2">
+        <fo:block xsl:use-attribute-sets="qanda.title.level2.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$level=3">
+        <fo:block xsl:use-attribute-sets="qanda.title.level3.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$level=4">
+        <fo:block xsl:use-attribute-sets="qanda.title.level4.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$level=5">
+        <fo:block xsl:use-attribute-sets="qanda.title.level5.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:otherwise>
+        <fo:block xsl:use-attribute-sets="qanda.title.level6.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:block>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/refentry.xsl b/applications/content/template/docbook/fo/refentry.xsl
new file mode 100644
index 0000000..2d9ceb0
--- /dev/null
+++ b/applications/content/template/docbook/fo/refentry.xsl
@@ -0,0 +1,672 @@
+<?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:axf="http://www.antennahouse.com/names/XSL/Extensions"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="reference">
+   <!-- If there is a partintro, it triggers the page  sequence -->
+   <xsl:if test="not(partintro)">
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:variable>
+    <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:attribute name="format">
+        <xsl:call-template name="page.number.format">
+          <xsl:with-param name="master-reference" select="$master-reference"/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <xsl:attribute name="initial-page-number">
+        <xsl:call-template name="initial.page.number">
+          <xsl:with-param name="master-reference" select="$master-reference"/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <xsl:attribute name="force-page-count">
+        <xsl:call-template name="force.page.count">
+          <xsl:with-param name="master-reference" select="$master-reference"/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <xsl:attribute name="hyphenation-character">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'hyphenation-character'"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:attribute name="hyphenation-push-character-count">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:attribute name="hyphenation-remain-character-count">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+        </xsl:call-template>
+      </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">
+        <xsl:call-template name="set.flow.properties">
+          <xsl:with-param name="element" select="local-name(.)"/>
+          <xsl:with-param name="master-reference" select="$master-reference"/>
+        </xsl:call-template>
+
+        <fo:block id="{$id}">
+          <xsl:call-template name="reference.titlepage"/>
+        </fo:block>
+
+        <xsl:variable name="toc.params">
+          <xsl:call-template name="find.path.params">
+            <xsl:with-param name="table" 
+                            select="normalize-space($generate.toc)"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:if test="contains($toc.params, 'toc')">
+          <xsl:call-template name="component.toc">
+            <xsl:with-param name="toc.title.p" 
+                            select="contains($toc.params, 'title')"/>
+          </xsl:call-template>
+          <xsl:call-template name="component.toc.separator"/>
+        </xsl:if>
+
+        <!-- Create one page sequence if no pagebreaks needed -->
+        <xsl:if test="$refentry.pagebreak = 0">
+          <xsl:apply-templates select="refentry"/>
+        </xsl:if>
+      </fo:flow>
+    </fo:page-sequence>
+  </xsl:if>
+  <xsl:apply-templates select="partintro"/>
+  <xsl:if test="$refentry.pagebreak != 0">
+    <xsl:apply-templates select="refentry"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="reference" mode="reference.titlepage.mode">
+  <xsl:call-template name="reference.titlepage"/>
+</xsl:template>
+
+<xsl:template match="reference/partintro">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::reference"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <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:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+      <fo:block id="{$id}">
+        <xsl:apply-templates select=".." mode="reference.titlepage.mode"/>
+      </fo:block>
+      <xsl:if test="title">
+        <xsl:call-template name="partintro.titlepage"/>
+      </xsl:if>
+      <xsl:apply-templates/>
+
+      <!-- switch contexts to generate any toc -->
+      <xsl:for-each select="..">
+        <xsl:variable name="toc.params">
+          <xsl:call-template name="find.path.params">
+            <xsl:with-param name="table" 
+                            select="normalize-space($generate.toc)"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:if test="contains($toc.params, 'toc')">
+          <xsl:call-template name="component.toc">
+            <xsl:with-param name="toc.title.p" 
+                            select="contains($toc.params, 'title')"/>
+          </xsl:call-template>
+          <xsl:call-template name="component.toc.separator"/>
+        </xsl:if>
+      </xsl:for-each>
+
+      <!-- Create one page sequence if no pagebreaks needed -->
+      <xsl:if test="$refentry.pagebreak = 0">
+        <xsl:apply-templates select="../refentry"/>
+      </xsl:if>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="reference/docinfo|refentry/refentryinfo"></xsl:template>
+<xsl:template match="reference/info"></xsl:template>
+<xsl:template match="reference/title"></xsl:template>
+<xsl:template match="reference/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="refentry">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="master-reference">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <xsl:variable name="refentry.content">
+    <fo:block id="{$id}">
+      <xsl:apply-templates/>
+    </fo:block>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not(parent::*) or 
+                    (parent::reference and $refentry.pagebreak != 0) or 
+                    parent::part">
+      <!-- make a page sequence -->
+      <fo:page-sequence hyphenate="{$hyphenate}"
+                        master-reference="{$master-reference}">
+        <xsl:attribute name="language">
+          <xsl:call-template name="l10n.language"/>
+        </xsl:attribute>
+        <xsl:attribute name="format">
+          <xsl:call-template name="page.number.format">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:attribute name="initial-page-number">
+          <xsl:call-template name="initial.page.number">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:attribute name="force-page-count">
+          <xsl:call-template name="force.page.count">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:attribute name="hyphenation-character">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'hyphenation-character'"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="hyphenation-push-character-count">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="hyphenation-remain-character-count">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+          </xsl:call-template>
+        </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">
+          <xsl:call-template name="set.flow.properties">
+            <xsl:with-param name="element" select="local-name(.)"/>
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+          </xsl:call-template>
+
+          <xsl:copy-of select="$refentry.content"/>
+        </fo:flow>
+      </fo:page-sequence>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block>
+        <xsl:if test="$refentry.pagebreak != 0">
+          <xsl:attribute name="break-before">page</xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$refentry.content"/>
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refmeta">
+  <xsl:apply-templates select=".//indexterm"/>
+</xsl:template>
+
+<xsl:template match="manvolnum">
+  <xsl:if test="$refentry.xref.manvolnum != 0">
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refmiscinfo">
+</xsl:template>
+
+<xsl:template match="refentrytitle">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="refnamediv">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+
+    <!-- if refentry.generate.name is non-zero, then we need to generate a -->
+    <!-- localized "Name" subheading for this refnamdiv (unless it has a -->
+    <!-- preceding sibling that is a refnamediv, in which case we have already -->
+    <!-- generated a "Name" subheading, so we don't need to do it again -->
+    <xsl:if test="$refentry.generate.name != 0">
+        <xsl:choose>
+          <xsl:when test="preceding-sibling::refnamediv">
+            <!-- no generated title on secondary refnamedivs! -->
+          </xsl:when>
+          <xsl:otherwise>
+            <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                      xsl:use-attribute-sets="refnamediv.titlepage.recto.style"
+                      font-family="{$title.fontset}">
+              <!-- Contents of what is now the format.refentry.subheading -->
+              <!-- template were formerly intended to be used only to -->
+              <!-- process those subsections of Refentry that have "real" -->
+              <!-- title children. So as a kludge to get around the fact -->
+              <!-- that the template still basically "expects" to be -->
+              <!-- processing that kind of a node, when we call the -->
+              <!-- template to process generated titles, we must call it -->
+              <!-- with values for the "offset" and "section" parameters -->
+              <!-- that are different from the default values in the -->
+              <!-- format.refentry.subheading template itself. Because -->
+              <!-- those defaults are the values appropriate for processing -->
+              <!-- "real" title nodes. -->
+              <xsl:call-template name="format.refentry.subheading">
+                <xsl:with-param name="section" select="self::*"/>
+                <xsl:with-param name="offset" select="1"/>
+                <xsl:with-param name="gentext.key" select="'RefName'"/>
+              </xsl:call-template>
+            </fo:block>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+
+      <xsl:if test="$refentry.generate.title != 0">
+  <xsl:variable name="section.level">
+    <xsl:call-template name="refentry.level">
+      <xsl:with-param name="node" select="ancestor::refentry"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="reftitle">
+        <xsl:choose>
+          <xsl:when test="../refmeta/refentrytitle">
+            <xsl:apply-templates select="../refmeta/refentrytitle"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="refname[1]"/>
+          </xsl:otherwise>
+        </xsl:choose>
+  </xsl:variable>
+
+  <!-- xsl:use-attribute-sets takes only a Qname, not a variable -->
+    <xsl:choose>
+      <xsl:when test="preceding-sibling::refnamediv">
+	<!-- no title on secondary refnamedivs! -->
+      </xsl:when>
+      <xsl:when test="$section.level = 1">
+        <fo:block xsl:use-attribute-sets="refentry.title.properties">
+          <fo:block xsl:use-attribute-sets="section.title.level1.properties">
+            <xsl:value-of select="$reftitle"/>
+          </fo:block>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$section.level = 2">
+        <fo:block xsl:use-attribute-sets="refentry.title.properties">
+          <fo:block xsl:use-attribute-sets="section.title.level2.properties">
+            <xsl:value-of select="$reftitle"/>
+          </fo:block>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$section.level = 3">
+        <fo:block xsl:use-attribute-sets="refentry.title.properties">
+          <fo:block xsl:use-attribute-sets="section.title.level3.properties">
+            <xsl:value-of select="$reftitle"/>
+          </fo:block>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$section.level = 4">
+        <fo:block xsl:use-attribute-sets="refentry.title.properties">
+          <fo:block xsl:use-attribute-sets="section.title.level4.properties">
+            <xsl:value-of select="$reftitle"/>
+          </fo:block>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$section.level = 5">
+        <fo:block xsl:use-attribute-sets="refentry.title.properties">
+          <fo:block xsl:use-attribute-sets="section.title.level5.properties">
+            <xsl:value-of select="$reftitle"/>
+          </fo:block>
+        </fo:block>
+      </xsl:when>
+      <xsl:otherwise>
+        <fo:block xsl:use-attribute-sets="refentry.title.properties">
+          <fo:block xsl:use-attribute-sets="section.title.level6.properties">
+            <xsl:value-of select="$reftitle"/>
+          </fo:block>
+        </fo:block>
+      </xsl:otherwise>
+    </xsl:choose>
+    </xsl:if>
+
+    <fo:block>
+      <xsl:if test="not(following-sibling::refnamediv)">
+	<xsl:attribute name="space-after">1em</xsl:attribute>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </fo:block>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="refname">
+  <xsl:if test="not(preceding-sibling::refdescriptor)">
+    <xsl:apply-templates/>
+    <xsl:if test="following-sibling::refname">
+      <xsl:text>, </xsl:text>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refpurpose">
+  <xsl:if test="node()">
+    <xsl:text> </xsl:text>
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat">em-dash</xsl:with-param>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refdescriptor">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refclass">
+  <xsl:if test="$refclass.suppress = 0">
+  <fo:block font-weight="bold">
+    <xsl:if test="@role">
+      <xsl:value-of select="@role"/>
+      <xsl:text>: </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:if test="not(refsynopsisdivinfo/title|docinfo/title|info/title|title)">
+      <!-- * if we there is no appropriate title for this Refsynopsisdiv, -->
+      <!-- * then we need to call format.refentry.subheading to generate one -->
+      <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xsl:use-attribute-sets="refsynopsisdiv.titlepage.recto.style"
+                font-family="{$title.fontset}">
+        <!-- Contents of what is now the format.refentry.subheading -->
+        <!-- template were formerly intended to be used only to -->
+        <!-- process those subsections of Refentry that have "real" -->
+        <!-- title children. So as a kludge to get around the fact -->
+        <!-- that the template still basically "expects" to be -->
+        <!-- processing that kind of a node, when we call the -->
+        <!-- template to process generated titles, we must call it -->
+        <!-- with values for the "offset" and "section" parameters -->
+        <!-- that are different from the default values in the -->
+        <!-- format.refentry.subheading template itself. Because -->
+        <!-- those defaults are the values appropriate for processing -->
+        <!-- "real" title nodes. -->
+        <xsl:call-template name="format.refentry.subheading">
+          <xsl:with-param name="section" select="parent::*"/>
+          <xsl:with-param name="offset" select="1"/>
+          <xsl:with-param name="gentext.key" select="'RefSynopsisDiv'"/>
+        </xsl:call-template>
+      </fo:block>
+    </xsl:if>
+    <xsl:call-template name="refsynopsisdiv.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="refsection">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="refsection.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="refsect1">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="refsect1.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="refsect2">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="refsect2.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="refsect3">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="refsect3.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv/title
+                     |refsection/title
+                     |refsect1/title
+                     |refsect2/title
+                     |refsect3/title">
+  <!-- nop; titlepage.mode instead -->
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv/title
+                     |refsection/title
+                     |refsect1/title
+                     |refsect2/title
+                     |refsect3/title
+                     |refsynopsisdiv/info/title
+                     |refsection/info/title
+                     |refsect1/info/title
+                     |refsect2/info/title
+                     |refsect3/info/title"
+              mode="titlepage.mode"
+              priority="2">
+  <xsl:call-template name="format.refentry.subheading"/>
+</xsl:template>
+
+<xsl:template name="format.refentry.subheading">
+<!-- This template is now called to process generated titles for -->
+<!-- Refnamediv and Refsynopsisdiv, as well as "real" titles for -->
+<!-- Refsynopsisdiv, Refsection, and Refsect[1-3]. -->
+<!-- -->
+<!-- But the contents of this template were formerly intended to be used -->
+<!-- only to process those subsections of Refentry that have "real" title -->
+<!-- children. So as a kludge to get around the fact that the template -->
+<!-- still basically "expects" to be processing that kind of a node, the -->
+<!-- "offset" parameter was added and the "section" variable was changed to -->
+<!-- a parameter so that when called for a generated title on a Refnamediv -->
+<!-- or Refsynopsisdiv, we can call it like this: -->
+<!-- -->
+<!--     <xsl:call-template name="format.refentry.subheading"> -->
+<!--       <xsl:with-param name="section" select="self::*"/> -->
+<!--       <xsl:with-param name="offset" select="1"/> -->
+<!--       <xsl:with-param name="gentext.key" select="'RefName'"/> -->
+<!--     </xsl:call-template> -->
+<!-- -->
+  <xsl:param name="section" 
+             select="(ancestor::refsynopsisdiv 
+                     |ancestor::refsection
+                     |ancestor::refsect1
+                     |ancestor::refsect2
+                     |ancestor::refsect3)[last()]"/>
+  <xsl:param name="offset" select="0"/>
+  <xsl:param name="gentext.key"/>
+
+  <fo:block keep-with-next.within-column="always">
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id">
+        <xsl:with-param name="object" select="$section"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="level">
+      <xsl:call-template name="section.level">
+        <xsl:with-param name="node" select="$section"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="title">
+      <!-- If we have a non-empty value for the $gentext.key param, then we -->
+      <!-- generate an appropriate title here. Otherwise, we have a real -->
+      <!-- title child, so we copy contents of that to the result tree. -->
+      <xsl:choose>
+        <xsl:when test="$gentext.key != ''">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="$gentext.key"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$section" mode="object.title.markup">
+            <xsl:with-param name="allow-anchors" select="1"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:if test="$passivetex.extensions != 0">
+      <fotex:bookmark xmlns:fotex="http://www.tug.org/fotex" 
+                      fotex-bookmark-level="{$level + 2 + $offset}" 
+                      fotex-bookmark-label="{$id}">
+        <xsl:value-of select="$title"/>
+      </fotex:bookmark>
+    </xsl:if>
+
+    <xsl:if test="$axf.extensions != 0">
+      <xsl:attribute name="axf:outline-level">
+        <xsl:value-of select="count(ancestor::*)-1 + $offset"/>
+      </xsl:attribute>
+      <xsl:attribute name="axf:outline-expand">false</xsl:attribute>
+      <xsl:attribute name="axf:outline-title">
+        <xsl:value-of select="$title"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:call-template name="section.heading">
+      <xsl:with-param name="level" select="$level + $offset"/>
+      <xsl:with-param name="title" select="$title"/>
+    </xsl:call-template>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="refsectioninfo|refsection/info"></xsl:template>
+<xsl:template match="refsect1info|refsect1/info"></xsl:template>
+<xsl:template match="refsect2info|refsect2/info"></xsl:template>
+<xsl:template match="refsect3info|refsect3/info"></xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/sections.xsl b/applications/content/template/docbook/fo/sections.xsl
new file mode 100644
index 0000000..54d2bbe
--- /dev/null
+++ b/applications/content/template/docbook/fo/sections.xsl
@@ -0,0 +1,764 @@
+<?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:axf="http://www.antennahouse.com/names/XSL/Extensions"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="section">
+  <xsl:choose>
+    <xsl:when test="$rootid = @id or $rootid = @xml:id">
+      <xsl:call-template name="section.page.sequence"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id"/>
+      </xsl:variable>
+
+      <xsl:variable name="renderas">
+        <xsl:choose>
+          <xsl:when test="@renderas = 'sect1'">1</xsl:when>
+          <xsl:when test="@renderas = 'sect2'">2</xsl:when>
+          <xsl:when test="@renderas = 'sect3'">3</xsl:when>
+          <xsl:when test="@renderas = 'sect4'">4</xsl:when>
+          <xsl:when test="@renderas = 'sect5'">5</xsl:when>
+          <xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="level">
+        <xsl:choose>
+          <xsl:when test="$renderas != ''">
+            <xsl:value-of select="$renderas"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="section.level"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <!-- xsl:use-attribute-sets takes only a Qname, not a variable -->
+      <xsl:choose>
+        <xsl:when test="$level = 1">
+          <xsl:element name="fo:{$section.container.element}"
+		       use-attribute-sets="section.level1.properties">
+            <xsl:attribute name="id"><xsl:value-of 
+                                select="$id"/></xsl:attribute>
+            <xsl:call-template name="section.content"/>
+          </xsl:element>
+        </xsl:when>
+        <xsl:when test="$level = 2">
+          <xsl:element name="fo:{$section.container.element}"
+		       use-attribute-sets="section.level2.properties">
+            <xsl:attribute name="id"><xsl:value-of 
+                                select="$id"/></xsl:attribute>
+            <xsl:call-template name="section.content"/>
+          </xsl:element>
+        </xsl:when>
+        <xsl:when test="$level = 3">
+          <xsl:element name="fo:{$section.container.element}"
+                       use-attribute-sets="section.level3.properties">
+            <xsl:attribute name="id"><xsl:value-of 
+                                select="$id"/></xsl:attribute>
+            <xsl:call-template name="section.content"/>
+          </xsl:element>
+        </xsl:when>
+        <xsl:when test="$level = 4">
+          <xsl:element name="fo:{$section.container.element}"
+                       use-attribute-sets="section.level4.properties">
+            <xsl:attribute name="id"><xsl:value-of 
+                                select="$id"/></xsl:attribute>
+            <xsl:call-template name="section.content"/>
+          </xsl:element>
+        </xsl:when>
+        <xsl:when test="$level = 5">
+          <xsl:element name="fo:{$section.container.element}"
+		       use-attribute-sets="section.level5.properties">
+            <xsl:attribute name="id"><xsl:value-of 
+                                select="$id"/></xsl:attribute>
+            <xsl:call-template name="section.content"/>
+          </xsl:element>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:element name="fo:{$section.container.element}"
+		       use-attribute-sets="section.level6.properties">
+            <xsl:attribute name="id"><xsl:value-of 
+                                select="$id"/></xsl:attribute>
+            <xsl:call-template name="section.content"/>
+          </xsl:element>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="section.content">
+  <xsl:call-template name="section.titlepage"/>
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="contains($toc.params, 'toc')
+                and (count(ancestor::section)+1) &lt;= 
+		$generate.section.toc.level">
+    <xsl:call-template name="section.toc">
+      <xsl:with-param name="toc.title.p" 
+                      select="contains($toc.params, 'title')"/>
+    </xsl:call-template>
+   <xsl:call-template name="section.toc.separator"/>
+  </xsl:if>
+
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="/section" name="section.page.sequence">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <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:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <fo:block id="{$id}" 
+            xsl:use-attribute-sets="section.level1.properties">
+        <xsl:call-template name="section.titlepage"/>
+      </fo:block>
+
+      <xsl:variable name="toc.params">
+        <xsl:call-template name="find.path.params">
+          <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:if test="contains($toc.params, 'toc')
+                    and (count(ancestor::section)+1) &lt;= 
+		    $generate.section.toc.level">
+        <xsl:call-template name="section.toc">
+          <xsl:with-param name="toc.title.p" 
+                          select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+        <xsl:call-template name="section.toc.separator"/>
+      </xsl:if>
+
+      <xsl:apply-templates/>
+   </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="section/title
+                     |simplesect/title
+                     |sect1/title
+                     |sect2/title
+                     |sect3/title
+                     |sect4/title
+                     |sect5/title
+                     |section/info/title
+                     |simplesect/info/title
+                     |sect1/info/title
+                     |sect2/info/title
+                     |sect3/info/title
+                     |sect4/info/title
+                     |sect5/info/title
+                     |section/sectioninfo/title
+                     |sect1/sect1info/title
+                     |sect2/sect2info/title
+                     |sect3/sect3info/title
+                     |sect4/sect4info/title
+                     |sect5/sect5info/title"
+              mode="titlepage.mode"
+              priority="2">
+
+  <xsl:variable name="section" 
+                select="(ancestor::section |
+                        ancestor::simplesect |
+                        ancestor::sect1 |
+                        ancestor::sect2 |
+                        ancestor::sect3 |
+                        ancestor::sect4 |
+                        ancestor::sect5)[position() = last()]"/>
+
+  <fo:block keep-with-next.within-column="always">
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id">
+        <xsl:with-param name="object" select="$section"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="renderas">
+      <xsl:choose>
+        <xsl:when test="$section/@renderas = 'sect1'">1</xsl:when>
+        <xsl:when test="$section/@renderas = 'sect2'">2</xsl:when>
+        <xsl:when test="$section/@renderas = 'sect3'">3</xsl:when>
+        <xsl:when test="$section/@renderas = 'sect4'">4</xsl:when>
+        <xsl:when test="$section/@renderas = 'sect5'">5</xsl:when>
+        <xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+    <xsl:variable name="level">
+      <xsl:choose>
+        <xsl:when test="$renderas != ''">
+          <xsl:value-of select="$renderas"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="section.level">
+            <xsl:with-param name="node" select="$section"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:variable name="marker">
+      <xsl:choose>
+        <xsl:when test="$level &lt;= $marker.section.level">1</xsl:when>
+        <xsl:otherwise>0</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:variable name="title">
+      <xsl:apply-templates select="$section" mode="object.title.markup">
+        <xsl:with-param name="allow-anchors" select="1"/>
+      </xsl:apply-templates>
+    </xsl:variable>
+
+    <xsl:variable name="marker.title">
+      <xsl:apply-templates select="$section" mode="titleabbrev.markup">
+        <xsl:with-param name="allow-anchors" select="0"/>
+      </xsl:apply-templates>
+    </xsl:variable>
+
+    <xsl:if test="$passivetex.extensions != 0">
+      <fotex:bookmark xmlns:fotex="http://www.tug.org/fotex" 
+                      fotex-bookmark-level="{$level + 2}" 
+                      fotex-bookmark-label="{$id}">
+        <xsl:value-of select="$marker.title"/>
+      </fotex:bookmark>
+    </xsl:if>
+
+    <xsl:if test="$axf.extensions != 0">
+      <xsl:attribute name="axf:outline-level">
+        <xsl:value-of select="count(ancestor::*)-1"/>
+      </xsl:attribute>
+      <xsl:attribute name="axf:outline-expand">false</xsl:attribute>
+      <xsl:attribute name="axf:outline-title">
+        <xsl:value-of select="normalize-space($title)"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:call-template name="section.heading">
+      <xsl:with-param name="level" select="$level"/>
+      <xsl:with-param name="title" select="$title"/>
+      <xsl:with-param name="marker" select="$marker"/>
+      <xsl:with-param name="marker.title" select="$marker.title"/>
+    </xsl:call-template>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="sect1">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:element name="fo:{$section.container.element}"
+               use-attribute-sets="section.level1.properties">
+    <xsl:attribute name="id"><xsl:value-of 
+                        select="$id"/></xsl:attribute>
+    <xsl:call-template name="sect1.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')
+                  and $generate.section.toc.level &gt;= 1">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" 
+                        select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="/sect1">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <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:attribute name="format">
+      <xsl:call-template name="page.number.format">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="initial-page-number">
+      <xsl:call-template name="initial.page.number">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="force-page-count">
+      <xsl:call-template name="force.page.count">
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:attribute name="hyphenation-character">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-character'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-push-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:attribute name="hyphenation-remain-character-count">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
+      </xsl:call-template>
+    </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">
+      <xsl:call-template name="set.flow.properties">
+        <xsl:with-param name="element" select="local-name(.)"/>
+        <xsl:with-param name="master-reference" select="$master-reference"/>
+      </xsl:call-template>
+
+      <fo:block id="{$id}" 
+                xsl:use-attribute-sets="section.level1.properties">
+        <xsl:call-template name="sect1.titlepage"/>
+      </fo:block>
+
+      <xsl:variable name="toc.params">
+        <xsl:call-template name="find.path.params">
+          <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:if test="contains($toc.params, 'toc')
+                    and $generate.section.toc.level &gt;= 1">
+        <xsl:call-template name="section.toc">
+          <xsl:with-param name="toc.title.p" 
+                          select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+        <xsl:call-template name="section.toc.separator"/>
+      </xsl:if>
+
+      <xsl:apply-templates/>
+   </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="sect2">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:element name="fo:{$section.container.element}"
+	       use-attribute-sets="section.level2.properties">
+    <xsl:attribute name="id"><xsl:value-of 
+                        select="$id"/></xsl:attribute>
+    <xsl:call-template name="sect2.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')
+                   and $generate.section.toc.level &gt;= 2">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" 
+                        select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect3">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:element name="fo:{$section.container.element}"
+	       use-attribute-sets="section.level3.properties">
+    <xsl:attribute name="id"><xsl:value-of 
+                        select="$id"/></xsl:attribute>
+    <xsl:call-template name="sect3.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')
+                  and $generate.section.toc.level &gt;= 3">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" 
+                        select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect4">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:element name="fo:{$section.container.element}"
+	       use-attribute-sets="section.level4.properties">
+    <xsl:attribute name="id"><xsl:value-of 
+                        select="$id"/></xsl:attribute>
+    <xsl:call-template name="sect4.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')
+                  and $generate.section.toc.level &gt;= 4">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" 
+                        select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect5">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:element name="fo:{$section.container.element}"
+	       use-attribute-sets="section.level5.properties">
+    <xsl:attribute name="id"><xsl:value-of 
+                        select="$id"/></xsl:attribute>
+    <xsl:call-template name="sect5.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')
+                  and $generate.section.toc.level &gt;= 5">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" 
+                        select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="simplesect">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:element name="fo:{$section.container.element}">
+    <xsl:attribute name="id"><xsl:value-of 
+                        select="$id"/></xsl:attribute>
+    <xsl:call-template name="simplesect.titlepage"/>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sectioninfo"></xsl:template>
+<xsl:template match="section/info"></xsl:template>
+<xsl:template match="section/title"></xsl:template>
+<xsl:template match="section/titleabbrev"></xsl:template>
+<xsl:template match="section/subtitle"></xsl:template>
+
+<xsl:template match="sect1info"></xsl:template>
+<xsl:template match="sect1/info"></xsl:template>
+<xsl:template match="sect1/title"></xsl:template>
+<xsl:template match="sect1/titleabbrev"></xsl:template>
+<xsl:template match="sect1/subtitle"></xsl:template>
+
+<xsl:template match="sect2info"></xsl:template>
+<xsl:template match="sect2/info"></xsl:template>
+<xsl:template match="sect2/title"></xsl:template>
+<xsl:template match="sect2/titleabbrev"></xsl:template>
+<xsl:template match="sect2/subtitle"></xsl:template>
+
+<xsl:template match="sect3info"></xsl:template>
+<xsl:template match="sect3/info"></xsl:template>
+<xsl:template match="sect3/title"></xsl:template>
+<xsl:template match="sect3/titleabbrev"></xsl:template>
+<xsl:template match="sect3/subtitle"></xsl:template>
+
+<xsl:template match="sect4info"></xsl:template>
+<xsl:template match="sect4/info"></xsl:template>
+<xsl:template match="sect4/title"></xsl:template>
+<xsl:template match="sect4/titleabbrev"></xsl:template>
+<xsl:template match="sect4/subtitle"></xsl:template>
+
+<xsl:template match="sect5info"></xsl:template>
+<xsl:template match="sect5/info"></xsl:template>
+<xsl:template match="sect5/title"></xsl:template>
+<xsl:template match="sect5/titleabbrev"></xsl:template>
+<xsl:template match="sect5/subtitle"></xsl:template>
+
+<xsl:template match="simplesect/info"></xsl:template>
+<xsl:template match="simplesect/title"></xsl:template>
+<xsl:template match="simplesect/titleabbrev"></xsl:template>
+<xsl:template match="simplesect/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="section.heading">
+  <xsl:param name="level" select="1"/>
+  <xsl:param name="marker" select="1"/>
+  <xsl:param name="title"/>
+  <xsl:param name="marker.title"/>
+
+  <fo:block xsl:use-attribute-sets="section.title.properties">
+    <xsl:if test="$marker != 0">
+      <fo:marker marker-class-name="section.head.marker">
+        <xsl:copy-of select="$marker.title"/>
+      </fo:marker>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$level=1">
+        <fo:block xsl:use-attribute-sets="section.title.level1.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$level=2">
+        <fo:block xsl:use-attribute-sets="section.title.level2.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$level=3">
+        <fo:block xsl:use-attribute-sets="section.title.level3.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$level=4">
+        <fo:block xsl:use-attribute-sets="section.title.level4.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="$level=5">
+        <fo:block xsl:use-attribute-sets="section.title.level5.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:when>
+      <xsl:otherwise>
+        <fo:block xsl:use-attribute-sets="section.title.level6.properties">
+          <xsl:copy-of select="$title"/>
+        </fo:block>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bridgehead">
+  <xsl:variable name="container"
+                select="(ancestor::appendix
+                        |ancestor::article
+                        |ancestor::bibliography
+                        |ancestor::chapter
+                        |ancestor::glossary
+                        |ancestor::glossdiv
+                        |ancestor::index
+                        |ancestor::partintro
+                        |ancestor::preface
+                        |ancestor::refsect1
+                        |ancestor::refsect2
+                        |ancestor::refsect3
+                        |ancestor::sect1
+                        |ancestor::sect2
+                        |ancestor::sect3
+                        |ancestor::sect4
+                        |ancestor::sect5
+                        |ancestor::section
+                        |ancestor::setindex
+                        |ancestor::simplesect)[last()]"/>
+
+  <xsl:variable name="clevel">
+    <xsl:choose>
+      <xsl:when test="local-name($container) = 'appendix'
+                      or local-name($container) = 'chapter'
+                      or local-name($container) = 'article'
+                      or local-name($container) = 'bibliography'
+                      or local-name($container) = 'glossary'
+                      or local-name($container) = 'index'
+                      or local-name($container) = 'partintro'
+                      or local-name($container) = 'preface'
+                      or local-name($container) = 'setindex'">2</xsl:when>
+      <xsl:when test="local-name($container) = 'glossdiv'">
+        <xsl:value-of select="count(ancestor::glossdiv)+2"/>
+      </xsl:when>
+      <xsl:when test="local-name($container) = 'sect1'
+                      or local-name($container) = 'sect2'
+                      or local-name($container) = 'sect3'
+                      or local-name($container) = 'sect4'
+                      or local-name($container) = 'sect5'
+                      or local-name($container) = 'refsect1'
+                      or local-name($container) = 'refsect2'
+                      or local-name($container) = 'refsect3'
+                      or local-name($container) = 'section'
+                      or local-name($container) = 'simplesect'">
+        <xsl:variable name="slevel">
+          <xsl:call-template name="section.level">
+            <xsl:with-param name="node" select="$container"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="$slevel + 1"/>
+      </xsl:when>
+      <xsl:otherwise>2</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="level">
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">1</xsl:when>
+      <xsl:when test="@renderas = 'sect2'">2</xsl:when>
+      <xsl:when test="@renderas = 'sect3'">3</xsl:when>
+      <xsl:when test="@renderas = 'sect4'">4</xsl:when>
+      <xsl:when test="@renderas = 'sect5'">5</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$clevel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="marker">
+    <xsl:choose>
+      <xsl:when test="$level &lt;= $marker.section.level">1</xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="marker.title">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="section.heading">
+      <xsl:with-param name="level" select="$level"/>
+      <xsl:with-param name="title">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+      <xsl:with-param name="marker" select="$marker"/>
+      <xsl:with-param name="marker.title" select="$marker.title"/>
+    </xsl:call-template>
+  </fo:block>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/fo/spaces.xsl b/applications/content/template/docbook/fo/spaces.xsl
new file mode 100644
index 0000000..04759a4
--- /dev/null
+++ b/applications/content/template/docbook/fo/spaces.xsl
@@ -0,0 +1,274 @@
+<?xml version='1.0' encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+     XSL-FO specification treats all space characters like ordinary spaces.
+     We need to map them to fo:leader with different widths in order to
+     simulate desired behaviour.
+     ******************************************************************** -->
+
+<xsl:template match="text()[namespace-uri(..) = '' or 
+		     namespace-uri(..) = 'http://docbook.org/ns/docbook']">
+  <xsl:choose>
+    <xsl:when test="$passivetex.extensions != 0">
+      <xsl:call-template name="passivetex.dash.subst">
+        <xsl:with-param name="string">
+	  <xsl:call-template name="space.2000.subst">
+	    <xsl:with-param name="string" select="."/>
+	  </xsl:call-template>
+	</xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="space.2000.subst">
+	<xsl:with-param name="string" select="."/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:param name="space.enquad.width">0.5em</xsl:param>   <!-- U+2000 -->
+<xsl:param name="space.emquad.width">1em</xsl:param>     <!-- U+2001 -->
+<xsl:param name="space.enspace.width">0.5em</xsl:param>  <!-- U+2002 -->
+<xsl:param name="space.emspace.width">1em</xsl:param>    <!-- U+2003 -->
+<xsl:param name="space.3emspace.width">0.33em</xsl:param><!-- U+2004 -->
+<xsl:param name="space.4emspace.width">0.25em</xsl:param><!-- U+2005 -->
+<xsl:param name="space.6emspace.width">0.16em</xsl:param><!-- U+2006 -->
+<xsl:param name="space.figspace.width"></xsl:param>      <!-- U+2007 -->
+<xsl:param name="space.punctspace.width"></xsl:param>    <!-- U+2008 -->
+<xsl:param name="space.thinspace.width">0.2em</xsl:param><!-- U+2009 -->
+<xsl:param name="space.hairspace.width">0.1em</xsl:param><!-- U+200A -->
+
+<xsl:template name="space.2000.subst">
+  <xsl:param name="string"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, '&#x2000;') and $space.enquad.width != ''">
+      <xsl:call-template name="space.2001.subst">
+	<xsl:with-param name="string" select="substring-before($string, '&#x2000;')"/>
+      </xsl:call-template>
+      <fo:leader leader-length="{$space.enquad.width}"/>
+      <xsl:call-template name="space.2000.subst">
+	<xsl:with-param name="string" select="substring-after($string, '&#x2000;')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="space.2001.subst">
+	<xsl:with-param name="string" select="$string"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="space.2001.subst">
+  <xsl:param name="string"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, '&#x2001;') and $space.emquad.width != ''">
+      <xsl:call-template name="space.2002.subst">
+	<xsl:with-param name="string" select="substring-before($string, '&#x2001;')"/>
+      </xsl:call-template>
+      <fo:leader leader-length="{$space.emquad.width}"/>
+      <xsl:call-template name="space.2001.subst">
+	<xsl:with-param name="string" select="substring-after($string, '&#x2001;')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="space.2002.subst">
+	<xsl:with-param name="string" select="$string"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="space.2002.subst">
+  <xsl:param name="string"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, '&#x2002;') and $space.enspace.width != ''">
+      <xsl:call-template name="space.2003.subst">
+	<xsl:with-param name="string" select="substring-before($string, '&#x2002;')"/>
+      </xsl:call-template>
+      <fo:leader leader-length="{$space.enspace.width}"/>
+      <xsl:call-template name="space.2002.subst">
+	<xsl:with-param name="string" select="substring-after($string, '&#x2002;')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="space.2003.subst">
+	<xsl:with-param name="string" select="$string"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="space.2003.subst">
+  <xsl:param name="string"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, '&#x2003;') and $space.emspace.width != ''">
+      <xsl:call-template name="space.2004.subst">
+	<xsl:with-param name="string" select="substring-before($string, '&#x2003;')"/>
+      </xsl:call-template>
+      <fo:leader leader-length="{$space.emspace.width}"/>
+      <xsl:call-template name="space.2003.subst">
+	<xsl:with-param name="string" select="substring-after($string, '&#x2003;')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="space.2004.subst">
+	<xsl:with-param name="string" select="$string"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="space.2004.subst">
+  <xsl:param name="string"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, '&#x2004;') and $space.3emspace.width != ''">
+      <xsl:call-template name="space.2005.subst">
+	<xsl:with-param name="string" select="substring-before($string, '&#x2004;')"/>
+      </xsl:call-template>
+      <fo:leader leader-length="{$space.3emspace.width}"/>
+      <xsl:call-template name="space.2004.subst">
+	<xsl:with-param name="string" select="substring-after($string, '&#x2004;')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="space.2005.subst">
+	<xsl:with-param name="string" select="$string"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="space.2005.subst">
+  <xsl:param name="string"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, '&#x2005;') and $space.4emspace.width != ''">
+      <xsl:call-template name="space.2006.subst">
+	<xsl:with-param name="string" select="substring-before($string, '&#x2005;')"/>
+      </xsl:call-template>
+      <fo:leader leader-length="{$space.4emspace.width}"/>
+      <xsl:call-template name="space.2005.subst">
+	<xsl:with-param name="string" select="substring-after($string, '&#x2005;')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="space.2006.subst">
+	<xsl:with-param name="string" select="$string"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="space.2006.subst">
+  <xsl:param name="string"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, '&#x2006;') and $space.6emspace.width != ''">
+      <xsl:call-template name="space.2007.subst">
+	<xsl:with-param name="string" select="substring-before($string, '&#x2006;')"/>
+      </xsl:call-template>
+      <fo:leader leader-length="{$space.6emspace.width}"/>
+      <xsl:call-template name="space.2006.subst">
+	<xsl:with-param name="string" select="substring-after($string, '&#x2006;')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="space.2007.subst">
+	<xsl:with-param name="string" select="$string"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="space.2007.subst">
+  <xsl:param name="string"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, '&#x2007;') and $space.figspace.width != ''">
+      <xsl:call-template name="space.2008.subst">
+	<xsl:with-param name="string" select="substring-before($string, '&#x2007;')"/>
+      </xsl:call-template>
+      <fo:leader leader-length="{$space.figspace.width}"/>
+      <xsl:call-template name="space.2007.subst">
+	<xsl:with-param name="string" select="substring-after($string, '&#x2007;')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="space.2008.subst">
+	<xsl:with-param name="string" select="$string"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="space.2008.subst">
+  <xsl:param name="string"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, '&#x2008;') and $space.punctspace.width != ''">
+      <xsl:call-template name="space.2009.subst">
+	<xsl:with-param name="string" select="substring-before($string, '&#x2008;')"/>
+      </xsl:call-template>
+      <fo:leader leader-length="{$space.punctspace.width}"/>
+      <xsl:call-template name="space.2008.subst">
+	<xsl:with-param name="string" select="substring-after($string, '&#x2008;')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="space.2009.subst">
+	<xsl:with-param name="string" select="$string"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="space.2009.subst">
+  <xsl:param name="string"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, '&#x2009;') and $space.thinspace.width != ''">
+      <xsl:call-template name="space.200A.subst">
+	<xsl:with-param name="string" select="substring-before($string, '&#x2009;')"/>
+      </xsl:call-template>
+      <fo:leader leader-length="{$space.thinspace.width}"/>
+      <xsl:call-template name="space.2009.subst">
+	<xsl:with-param name="string" select="substring-after($string, '&#x2009;')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="space.200A.subst">
+	<xsl:with-param name="string" select="$string"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="space.200A.subst">
+  <xsl:param name="string"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, '&#x200A;') and $space.hairspace.width != ''">
+      <xsl:value-of select="substring-before($string, '&#x200A;')"/>
+      <fo:leader leader-length="{$space.hairspace.width}"/>
+      <xsl:call-template name="space.200A.subst">
+	<xsl:with-param name="string" select="substring-after($string, '&#x200A;')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$string"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/fo/synop.xsl b/applications/content/template/docbook/fo/synop.xsl
new file mode 100644
index 0000000..7025185
--- /dev/null
+++ b/applications/content/template/docbook/fo/synop.xsl
@@ -0,0 +1,1007 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY RE "&#10;">
+<!ENTITY nbsp "&#160;">
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- synopsis is in verbatim -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="cmdsynopsis">
+  <fo:block xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command">
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command[1]" priority="2">
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="group|arg" name="group-or-arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:variable name="sepchar">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*/@sepchar">
+        <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text> </xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:if test="preceding-sibling::*">
+    <xsl:value-of select="$sepchar"/>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.open.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.open.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates/>
+  <xsl:choose>
+    <xsl:when test="$rep='repeat'">
+      <xsl:value-of select="$arg.rep.repeat.str"/>
+    </xsl:when>
+    <xsl:when test="$rep='norepeat'">
+      <xsl:value-of select="$arg.rep.norepeat.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.rep.def.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.close.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.close.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="group/arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:if test="preceding-sibling::*">
+    <xsl:value-of select="$arg.or.sep"/>
+  </xsl:if>
+  <xsl:call-template name="group-or-arg"/>
+</xsl:template>
+
+<xsl:template match="sbr">
+  <fo:block/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="synopfragmentref">
+  <xsl:variable name="target" select="key('id',@linkend)"/>
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="$target" mode="synopfragment.number"/>
+  </xsl:variable>
+  <fo:inline font-style="italic">
+    <fo:basic-link internal-destination="{@linkend}"
+                   xsl:use-attribute-sets="xref.properties">
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$snum"/>
+      <xsl:text>)</xsl:text>
+    </fo:basic-link>
+    <xsl:text>&#160;</xsl:text>
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="synopfragment" mode="synopfragment.number">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="synopfragment">
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="." mode="synopfragment.number"/>
+  </xsl:variable>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <fo:block id="{$id}">
+    <xsl:text>(</xsl:text>
+    <xsl:value-of select="$snum"/>
+    <xsl:text>)</xsl:text>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="funcsynopsis">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsisinfo">
+  <fo:block space-after.minimum="0.8em"
+            space-after.optimum="1em"
+            space-after.maximum="1.2em">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="funcprototype">
+
+  <xsl:variable name="style">
+    <xsl:call-template name="funcsynopsis.style"/>
+  </xsl:variable>
+
+  <fo:block font-family="{$monospace.font.family}"
+          space-before.minimum="0.8em"
+          space-before.optimum="1em"
+          space-before.maximum="1.2em">
+    <xsl:apply-templates/>
+    
+    <xsl:if test="$style='kr'">
+      <fo:block
+          space-before.minimum="0.8em"
+          space-before.optimum="1em"
+          space-before.maximum="1.2em">
+      <xsl:apply-templates select="./paramdef" mode="kr-funcsynopsis-mode"/>
+      </fo:block>
+    </xsl:if>
+
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="funcdef">
+  <fo:inline font-family="{$monospace.font.family}">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="funcdef/function">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <fo:inline font-weight="bold">
+        <xsl:apply-templates/>
+      </fo:inline>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void">
+
+  <xsl:variable name="style">
+    <xsl:call-template name="funcsynopsis.style"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$style='ansi'">
+      <xsl:text>(void);</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>();</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varargs">
+  <xsl:text>(...);</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef">
+
+  <xsl:variable name="style">
+    <xsl:call-template name="funcsynopsis.style"/>
+  </xsl:variable>
+  
+  <xsl:variable name="paramnum">
+    <xsl:number count="paramdef" format="1"/>
+  </xsl:variable>
+  <xsl:if test="$paramnum=1">(</xsl:if>
+  <xsl:choose>
+    <xsl:when test="$style='ansi'">
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="./parameter"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="following-sibling::paramdef">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>);</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <xsl:call-template name="inline.italicseq"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="following-sibling::parameter">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-funcsynopsis-mode">
+  <fo:block>
+    <xsl:apply-templates/>
+    <xsl:text>;</xsl:text>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="funcparams">
+  <xsl:text>(</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>)</xsl:text>
+</xsl:template>
+
+<!-- Return value of PI or parameter -->
+<xsl:template name="funcsynopsis.style">
+  <xsl:variable name="pi.style">
+    <xsl:call-template name="pi.dbfo_funcsynopsis-style">
+      <xsl:with-param name="node" select="ancestor::funcsynopsis/descendant-or-self::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$pi.style != ''">
+      <xsl:value-of select="$pi.style"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$funcsynopsis.style"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:variable name="default-classsynopsis-language">java</xsl:variable>
+
+<xsl:template match="classsynopsis
+                     |fieldsynopsis
+                     |methodsynopsis
+                     |constructorsynopsis
+                     |destructorsynopsis">
+  <xsl:param name="language">
+    <xsl:choose>
+      <xsl:when test="@language">
+	<xsl:value-of select="@language"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="$default-classsynopsis-language"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <!--
+  <xsl:message>process <xsl:value-of select="local-name(.)"/> in <xsl:value-of select="$language"/></xsl:message>
+  -->
+
+  <xsl:choose>
+    <xsl:when test="$language='java' or $language='Java'">
+      <xsl:apply-templates select="." mode="java"/>
+    </xsl:when>
+    <xsl:when test="$language='perl' or $language='Perl'">
+      <xsl:apply-templates select="." mode="perl"/>
+    </xsl:when>
+    <xsl:when test="$language='idl' or $language='IDL'">
+      <xsl:apply-templates select="." mode="idl"/>
+    </xsl:when>
+    <xsl:when test="$language='cpp' or $language='c++' or $language='C++'">
+      <xsl:apply-templates select="." mode="cpp"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Unrecognized language on </xsl:text>
+        <xsl:value-of select="local-name(.)"/>
+        <xsl:text>: </xsl:text>
+	<xsl:value-of select="$language"/>
+      </xsl:message>
+      <xsl:apply-templates select=".">
+	<xsl:with-param name="language"
+	  select="$default-classsynopsis-language"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="synop-break">
+  <xsl:if test="parent::classsynopsis
+                or (following-sibling::fieldsynopsis
+                    |following-sibling::methodsynopsis
+                    |following-sibling::constructorsynopsis
+                    |following-sibling::destructorsynopsis)">
+    <fo:inline>&RE;</fo:inline>
+  </xsl:if>
+</xsl:template>
+
+<!-- ===== Java ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="java">
+  <fo:block wrap-option='no-wrap'
+            white-space-collapse='false'
+            linefeed-treatment="preserve"
+            xsl:use-attribute-sets="monospace.verbatim.properties">
+    <xsl:apply-templates select="ooclass[1]" mode="java"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text> extends</xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="java"/>
+      <xsl:if test="oointerface|ooexception">
+        <xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text>implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="java"/>
+      <xsl:if test="ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text>throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="java"/>
+    </xsl:if>
+    <xsl:text>&nbsp;{&RE;</xsl:text>
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="java"/>
+    <xsl:text>}</xsl:text>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="java">
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="java">
+  <xsl:choose>
+    <xsl:when test="preceding-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text> </xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="java">
+  <xsl:apply-templates mode="java"/>
+  <xsl:if test="following-sibling::*">
+    <xsl:text>&nbsp;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="classname" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="java">
+  <fo:block wrap-option='no-wrap'
+            white-space-collapse='false'
+            linefeed-treatment="preserve"
+            xsl:use-attribute-sets="monospace.verbatim.properties">
+    <xsl:text>&nbsp;&nbsp;</xsl:text>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>;</xsl:text>
+    <xsl:call-template name="synop-break"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="type" mode="java">
+  <xsl:apply-templates mode="java"/>
+  <xsl:text>&nbsp;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varname" mode="java">
+  <xsl:apply-templates mode="java"/>
+  <xsl:text>&nbsp;</xsl:text>
+</xsl:template>
+
+<xsl:template match="initializer" mode="java">
+  <xsl:text>=&nbsp;</xsl:text>
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="void" mode="java">
+  <xsl:text>void&nbsp;</xsl:text>
+</xsl:template>
+
+<xsl:template match="methodname" mode="java">
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="java">
+  <xsl:param name="indent">0</xsl:param>
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>,&RE;</xsl:text>
+    <xsl:if test="$indent &gt; 0">
+      <xsl:call-template name="copy-string">
+	<xsl:with-param name="string">&nbsp;</xsl:with-param>
+	<xsl:with-param name="count" select="$indent + 1"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:if>
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="parameter" mode="java">
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template mode="java"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="decl">
+    <xsl:text>  </xsl:text>
+    <xsl:apply-templates select="$start-modifiers" mode="java"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="java"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="java"/>
+  </xsl:variable>
+
+  <fo:block wrap-option='no-wrap'
+            white-space-collapse='false'
+            linefeed-treatment="preserve"
+            xsl:use-attribute-sets="monospace.verbatim.properties">
+    <xsl:copy-of select="$decl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="java">
+      <xsl:with-param name="indent" select="string-length($decl)"/>
+    </xsl:apply-templates>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="java"/>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="java"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </fo:block>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== C++ ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="cpp">
+  <fo:block wrap-option='no-wrap'
+            white-space-collapse='false'
+            linefeed-treatment="preserve"
+            xsl:use-attribute-sets="monospace.verbatim.properties">
+    <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="cpp"/>
+      <xsl:if test="oointerface|ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="cpp"/>
+      <xsl:if test="ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="cpp"/>
+    </xsl:if>
+    <xsl:text>&nbsp;{&RE;</xsl:text>
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="cpp"/>
+    <xsl:text>}</xsl:text>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="cpp">
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="cpp">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="cpp">
+  <xsl:apply-templates mode="cpp"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
+</xsl:template>
+
+<xsl:template match="classname" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="cpp">
+  <fo:block wrap-option='no-wrap'
+            white-space-collapse='false'
+            linefeed-treatment="preserve"
+            xsl:use-attribute-sets="monospace.verbatim.properties">
+    <xsl:text>&nbsp;&nbsp;</xsl:text>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>;</xsl:text>
+  </fo:block>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="cpp">
+  <xsl:apply-templates mode="cpp"/>
+  <xsl:text>&nbsp;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varname" mode="cpp">
+  <xsl:apply-templates mode="cpp"/>
+  <xsl:text>&nbsp;</xsl:text>
+</xsl:template>
+
+<xsl:template match="initializer" mode="cpp">
+  <xsl:text>=&nbsp;</xsl:text>
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="void" mode="cpp">
+  <xsl:text>void&nbsp;</xsl:text>
+</xsl:template>
+
+<xsl:template match="methodname" mode="cpp">
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="cpp">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="parameter" mode="cpp">
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template mode="cpp"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+  <fo:block wrap-option='no-wrap'
+            white-space-collapse='false'
+            linefeed-treatment="preserve"
+            xsl:use-attribute-sets="monospace.verbatim.properties">
+    <xsl:text>  </xsl:text>
+    <xsl:apply-templates select="$start-modifiers" mode="cpp"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="cpp"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="cpp"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="cpp"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="cpp"/>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="cpp"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </fo:block>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== IDL ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="idl">
+  <fo:block wrap-option='no-wrap'
+            white-space-collapse='false'
+            linefeed-treatment="preserve"
+            xsl:use-attribute-sets="monospace.verbatim.properties">
+    <xsl:text>interface </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="idl"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="idl"/>
+      <xsl:if test="oointerface|ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="idl"/>
+      <xsl:if test="ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="idl"/>
+    </xsl:if>
+    <xsl:text>&nbsp;{&RE;</xsl:text>
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="idl"/>
+    <xsl:text>}</xsl:text>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="idl">
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="idl">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="idl">
+  <xsl:apply-templates mode="idl"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
+</xsl:template>
+
+<xsl:template match="classname" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="idl">
+  <fo:block wrap-option='no-wrap'
+            white-space-collapse='false'
+            linefeed-treatment="preserve"
+            xsl:use-attribute-sets="monospace.verbatim.properties">
+    <xsl:text>&nbsp;&nbsp;</xsl:text>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>;</xsl:text>
+  </fo:block>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="idl">
+  <xsl:apply-templates mode="idl"/>
+  <xsl:text>&nbsp;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varname" mode="idl">
+  <xsl:apply-templates mode="idl"/>
+  <xsl:text>&nbsp;</xsl:text>
+</xsl:template>
+
+<xsl:template match="initializer" mode="idl">
+  <xsl:text>=&nbsp;</xsl:text>
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="void" mode="idl">
+  <xsl:text>void&nbsp;</xsl:text>
+</xsl:template>
+
+<xsl:template match="methodname" mode="idl">
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="idl">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="parameter" mode="idl">
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template mode="idl"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+  <fo:block wrap-option='no-wrap'
+            white-space-collapse='false'
+            linefeed-treatment="preserve"
+            xsl:use-attribute-sets="monospace.verbatim.properties">
+    <xsl:text>  </xsl:text>
+    <xsl:apply-templates select="$start-modifiers" mode="idl"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="idl"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="idl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="idl"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;raises(</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="idl"/>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="idl"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </fo:block>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== Perl ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="perl">
+  <fo:block wrap-option='no-wrap'
+            white-space-collapse='false'
+            linefeed-treatment="preserve"
+            xsl:use-attribute-sets="monospace.verbatim.properties">
+    <xsl:text>package </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="perl"/>
+    <xsl:text>;&RE;</xsl:text>
+
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>@ISA = (</xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="perl"/>
+      <xsl:text>);&RE;</xsl:text>
+    </xsl:if>
+
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="perl"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="perl">
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="perl">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="perl">
+  <xsl:apply-templates mode="perl"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
+</xsl:template>
+
+<xsl:template match="classname" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="perl">
+  <fo:block wrap-option='no-wrap'
+            white-space-collapse='false'
+            linefeed-treatment="preserve"
+            xsl:use-attribute-sets="monospace.verbatim.properties">
+    <xsl:text>&nbsp;&nbsp;</xsl:text>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>;</xsl:text>
+  </fo:block>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="perl">
+  <xsl:apply-templates mode="perl"/>
+  <xsl:text>&nbsp;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varname" mode="perl">
+  <xsl:apply-templates mode="perl"/>
+  <xsl:text>&nbsp;</xsl:text>
+</xsl:template>
+
+<xsl:template match="initializer" mode="perl">
+  <xsl:text>=&nbsp;</xsl:text>
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="void" mode="perl">
+  <xsl:text>void&nbsp;</xsl:text>
+</xsl:template>
+
+<xsl:template match="methodname" mode="perl">
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="perl">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="parameter" mode="perl">
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template mode="perl"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+  <fo:block wrap-option='no-wrap'
+            white-space-collapse='false'
+            linefeed-treatment="preserve"
+            xsl:use-attribute-sets="monospace.verbatim.properties">
+    <xsl:text>sub </xsl:text>
+
+    <xsl:apply-templates select="methodname" mode="perl"/>
+    <xsl:text> { ... };</xsl:text>
+    <xsl:call-template name="synop-break"/>
+  </fo:block>
+</xsl:template>
+
+<!-- Used when not occurring as a child of classsynopsis -->
+<xsl:template match="ooclass|oointerface|ooexception">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * DocBook 5 allows linking elements (link, olink, and xref) -->
+<!-- * within the OO *synopsis elements (classsynopsis, fieldsynopsis, -->
+<!-- * methodsynopsis, constructorsynopsis, destructorsynopsis) and -->
+<!-- * their children. So we need to have mode="java|cpp|idl|perl" -->
+<!-- * per-mode matches for those linking elements in order for them -->
+<!-- * to be processed as expected. -->
+
+<xsl:template match="link|olink|xref" mode="java">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="cpp">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="idl">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="perl">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/table.xml b/applications/content/template/docbook/fo/table.xml
new file mode 100644
index 0000000..c3b4c36
--- /dev/null
+++ b/applications/content/template/docbook/fo/table.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0"?>
+
+<reference xml:id="table-templates"><?dbhtml dir="fo"?>
+  
+  <info>
+    <title>Formatting Object Table Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    
+<para>This is technical reference documentation for the FO
+      table-processing templates in the DocBook XSL Stylesheets.</para>
+
+    
+<para>This is not intended to be user documentation.  It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+
+  </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.calc.column.width">
+<refnamediv>
+<refname>calc.column.width</refname>
+<refpurpose>Calculate an XSL FO table column width specification from a
+CALS table column width specification.</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="calc.column.width"&gt;
+&lt;xsl:param name="colwidth"&gt;1*&lt;/xsl:param&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>CALS expresses table column widths in the following basic
+forms:</para>
+
+
+
+<itemizedlist>
+<listitem>
+
+<para><emphasis>99.99units</emphasis>, a fixed length specifier.</para>
+
+</listitem>
+<listitem>
+
+<para><emphasis>99.99</emphasis>, a fixed length specifier without any units.</para>
+
+</listitem>
+<listitem>
+
+<para><emphasis>99.99*</emphasis>, a relative length specifier.</para>
+
+</listitem>
+<listitem>
+
+<para><emphasis>99.99*+99.99units</emphasis>, a combination of both.</para>
+
+</listitem>
+</itemizedlist>
+
+
+
+<para>The CALS units are points (pt), picas (pi), centimeters (cm),
+millimeters (mm), and inches (in). These are the same units as XSL,
+except that XSL abbreviates picas "pc" instead of "pi". If a length
+specifier has no units, the CALS default unit (pt) is assumed.</para>
+
+
+
+<para>Relative length specifiers are represented in XSL with the
+proportional-column-width() function.</para>
+
+
+
+<para>Here are some examples:</para>
+
+
+
+<itemizedlist>
+<listitem>
+
+<para>"36pt" becomes "36pt"</para>
+
+</listitem>
+<listitem>
+
+<para>"3pi" becomes "3pc"</para>
+
+</listitem>
+<listitem>
+
+<para>"36" becomes "36pt"</para>
+
+</listitem>
+<listitem>
+
+<para>"3*" becomes "proportional-column-width(3)"</para>
+
+</listitem>
+<listitem>
+
+<para>"3*+2pi" becomes "proportional-column-width(3)+2pc"</para>
+
+</listitem>
+<listitem>
+
+<para>"1*+2" becomes "proportional-column-width(1)+2pt"</para>
+
+</listitem>
+</itemizedlist>
+
+</refsect1><refsect1><title>Parameters</title>
+
+<variablelist>
+<varlistentry><term>colwidth</term>
+<listitem>
+
+<para>The CALS column width specification.</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsect1><refsect1><title>Returns</title>
+
+<para>The XSL column width specification.</para>
+
+</refsect1></refentry>
+</reference>
+
diff --git a/applications/content/template/docbook/fo/table.xsl b/applications/content/template/docbook/fo/table.xsl
new file mode 100644
index 0000000..334aa22
--- /dev/null
+++ b/applications/content/template/docbook/fo/table.xsl
@@ -0,0 +1,1691 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:rx="http://www.renderx.com/XSL/Extensions"
+                xmlns:stbl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Table"
+                xmlns:xtbl="com.nwalsh.xalan.Table"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                xmlns:ptbl="http://nwalsh.com/xslt/ext/xsltproc/python/Table"
+                exclude-result-prefixes="doc stbl xtbl lxslt ptbl"
+                version='1.0'>
+
+<xsl:include href="../common/table.xsl"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="" xml:id="table-templates">
+  <?dbhtml dir="fo"?>
+  <info>
+    <title>Formatting Object Table Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    <para>This is technical reference documentation for the FO
+      table-processing templates in the DocBook XSL Stylesheets.</para>
+    <para>This is not intended to be user documentation.  It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+  </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<lxslt:component prefix="xtbl"
+                 functions="adjustColumnWidths"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make.table.content">
+  <xsl:choose>
+    <xsl:when test="tgroup|mediaobject|graphic">
+      <xsl:call-template name="calsTable"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="." mode="htmlTable"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="calsTable">
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <xsl:for-each select="tgroup">
+
+    <fo:table xsl:use-attribute-sets="table.table.properties">
+      <xsl:if test="$keep.together != ''">
+        <xsl:attribute name="keep-together.within-column">
+          <xsl:value-of select="$keep.together"/>
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:call-template name="table.frame"/>
+      <xsl:if test="following-sibling::tgroup">
+        <xsl:attribute name="border-bottom-width">0pt</xsl:attribute>
+        <xsl:attribute name="border-bottom-style">none</xsl:attribute>
+        <xsl:attribute name="padding-bottom">0pt</xsl:attribute>
+        <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
+        <xsl:attribute name="space-after">0pt</xsl:attribute>
+        <xsl:attribute name="space-after.minimum">0pt</xsl:attribute>
+        <xsl:attribute name="space-after.optimum">0pt</xsl:attribute>
+        <xsl:attribute name="space-after.maximum">0pt</xsl:attribute>
+      </xsl:if>
+      <xsl:if test="preceding-sibling::tgroup">
+        <xsl:attribute name="border-top-width">0pt</xsl:attribute>
+        <xsl:attribute name="border-top-style">none</xsl:attribute>
+        <xsl:attribute name="padding-top">0pt</xsl:attribute>
+        <xsl:attribute name="margin-top">0pt</xsl:attribute>
+        <xsl:attribute name="space-before">0pt</xsl:attribute>
+        <xsl:attribute name="space-before.minimum">0pt</xsl:attribute>
+        <xsl:attribute name="space-before.optimum">0pt</xsl:attribute>
+        <xsl:attribute name="space-before.maximum">0pt</xsl:attribute>
+      </xsl:if>
+      <xsl:apply-templates select="."/>
+    </fo:table>
+
+    <xsl:for-each select="mediaobject|graphic">
+      <xsl:apply-templates select="."/>
+    </xsl:for-each>
+
+  </xsl:for-each>
+
+  <xsl:apply-templates select="caption"/>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- Placeholder template enables wrapping a fo:table in
+     another table for purposes of layout or applying
+     extensions such as XEP table-omit-initial-header to
+     create "continued" titles on page breaks. -->
+<xsl:template name="table.layout">
+  <xsl:param name="table.content" select="NOTANODE"/>
+
+  <xsl:copy-of select="$table.content"/>
+</xsl:template>
+
+<xsl:template name="table.block">
+  <xsl:param name="table.layout" select="NOTANODE"/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="param.placement"
+                select="substring-after(normalize-space(
+                   $formal.title.placement), concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="self::table">
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="table.properties">
+        <xsl:if test="$keep.together != ''">
+          <xsl:attribute name="keep-together.within-column">
+            <xsl:value-of select="$keep.together"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:if test="$placement = 'before'">
+          <xsl:call-template name="formal.object.heading">
+            <xsl:with-param name="placement" select="$placement"/>
+          </xsl:call-template>
+        </xsl:if>
+        <xsl:copy-of select="$table.layout"/>
+        <xsl:call-template name="table.footnote.block"/>
+        <xsl:if test="$placement != 'before'">
+          <xsl:call-template name="formal.object.heading">
+            <xsl:with-param name="placement" select="$placement"/>
+          </xsl:call-template>
+        </xsl:if>
+      </fo:block>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block id="{$id}"
+                xsl:use-attribute-sets="informaltable.properties">
+        <xsl:copy-of select="$table.layout"/>
+        <xsl:call-template name="table.footnote.block"/>
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+
+
+</xsl:template>
+
+<!-- Output a table's footnotes in a block -->
+<xsl:template name="table.footnote.block">
+  <xsl:if test=".//footnote">
+    <fo:block keep-with-previous.within-column="always">
+      <xsl:apply-templates select=".//footnote" mode="table.footnote.mode"/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="table.container">
+  <xsl:param name="table.block"/>
+  <xsl:choose>
+    <xsl:when test="@orient='land' and 
+                    $fop.extensions = 0 and 
+                    $passivetex.extensions = 0" >
+      <fo:block-container reference-orientation="90"
+            padding="6pt"
+            xsl:use-attribute-sets="list.block.spacing">
+        <xsl:attribute name="width">
+          <xsl:call-template name="table.width"/>
+        </xsl:attribute>
+        <fo:block start-indent="0pt" end-indent="0pt">
+          <xsl:copy-of select="$table.block"/>
+        </fo:block>
+      </fo:block-container>
+    </xsl:when>
+    <xsl:when test="@pgwide = 1">
+      <fo:block xsl:use-attribute-sets="pgwide.properties">
+        <xsl:copy-of select="$table.block"/>
+      </fo:block>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$table.block"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="empty.table.cell">
+  <xsl:param name="colnum" select="0"/>
+
+  <xsl:variable name="rowsep">
+    <xsl:choose>
+      <!-- If this is the last row, rowsep never applies (except when 
+           the ancestor tgroup has a following sibling tgroup) -->
+      <xsl:when test="not(ancestor-or-self::row[1]/following-sibling::row
+                          or ancestor-or-self::thead/following-sibling::tbody
+                          or ancestor-or-self::tbody/preceding-sibling::tfoot)
+                          and not(ancestor::tgroup/following-sibling::tgroup)">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="NOT-AN-ELEMENT-NAME"/>
+          <xsl:with-param name="row" select="ancestor-or-self::row[1]"/>
+          <xsl:with-param name="colnum" select="$colnum"/>
+          <xsl:with-param name="attribute" select="'rowsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="colsep">
+    <xsl:choose>
+      <!-- If this is the last column, colsep never applies. -->
+      <xsl:when test="number($colnum) &gt;= ancestor::tgroup/@cols">0</xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="NOT-AN-ELEMENT-NAME"/>
+          <xsl:with-param name="row" select="ancestor-or-self::row[1]"/>
+          <xsl:with-param name="colnum" select="$colnum"/>
+          <xsl:with-param name="attribute" select="'colsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:table-cell text-align="center"
+                 display-align="center"
+                 xsl:use-attribute-sets="table.cell.padding">
+    <xsl:if test="$xep.extensions != 0">
+      <!-- Suggested by RenderX to workaround a bug in their implementation -->
+      <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$rowsep &gt; 0">
+      <xsl:call-template name="border">
+        <xsl:with-param name="side" select="'bottom'"/>
+      </xsl:call-template>
+    </xsl:if>
+
+    <xsl:if test="$colsep &gt; 0 and number($colnum) &lt; ancestor::tgroup/@cols">
+      <xsl:call-template name="border">
+        <xsl:with-param name="side" select="'end'"/>
+      </xsl:call-template>
+    </xsl:if>
+
+    <!-- fo:table-cell should not be empty -->
+    <fo:block/>
+  </fo:table-cell>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="table.frame">
+  <xsl:param name="frame">
+    <xsl:choose>
+      <xsl:when test="../@frame">
+        <xsl:value-of select="../@frame"/>
+      </xsl:when>
+      <xsl:when test="$default.table.frame != ''">
+        <xsl:value-of select="$default.table.frame"/>
+      </xsl:when>
+      <xsl:otherwise>all</xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+
+  <xsl:choose>
+    <xsl:when test="$frame='all'">
+      <xsl:attribute name="border-start-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-end-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-top-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-bottom-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-start-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-end-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-top-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-bottom-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-start-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-end-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-top-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-bottom-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="$frame='bottom'">
+      <xsl:attribute name="border-start-style">none</xsl:attribute>
+      <xsl:attribute name="border-end-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-style">none</xsl:attribute>
+      <xsl:attribute name="border-bottom-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-bottom-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-bottom-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="$frame='sides'">
+      <xsl:attribute name="border-start-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-end-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-top-style">none</xsl:attribute>
+      <xsl:attribute name="border-bottom-style">none</xsl:attribute>
+      <xsl:attribute name="border-start-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-end-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-start-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-end-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="$frame='lhs'">
+      <xsl:attribute name="border-start-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-end-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-style">none</xsl:attribute>
+      <xsl:attribute name="border-bottom-style">none</xsl:attribute>
+      <xsl:attribute name="border-start-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-start-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="$frame='rhs'">
+      <xsl:attribute name="border-end-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-end-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-style">none</xsl:attribute>
+      <xsl:attribute name="border-bottom-style">none</xsl:attribute>
+      <xsl:attribute name="border-end-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-end-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="$frame='top'">
+      <xsl:attribute name="border-start-style">none</xsl:attribute>
+      <xsl:attribute name="border-end-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-bottom-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-top-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="$frame='topbot'">
+      <xsl:attribute name="border-start-style">none</xsl:attribute>
+      <xsl:attribute name="border-end-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-bottom-style">
+        <xsl:value-of select="$table.frame.border.style"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-top-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-bottom-width">
+        <xsl:value-of select="$table.frame.border.thickness"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-top-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+      <xsl:attribute name="border-bottom-color">
+        <xsl:value-of select="$table.frame.border.color"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="$frame='none'">
+      <xsl:attribute name="border-start-style">none</xsl:attribute>
+      <xsl:attribute name="border-end-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-style">none</xsl:attribute>
+      <xsl:attribute name="border-bottom-style">none</xsl:attribute>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>Impossible frame on table: </xsl:text>
+        <xsl:value-of select="$frame"/>
+      </xsl:message>
+      <xsl:attribute name="border-start-style">none</xsl:attribute>
+      <xsl:attribute name="border-end-style">none</xsl:attribute>
+      <xsl:attribute name="border-top-style">none</xsl:attribute>
+      <xsl:attribute name="border-bottom-style">none</xsl:attribute>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="border">
+  <xsl:param name="side" select="'start'"/>
+
+  <xsl:attribute name="border-{$side}-width">
+    <xsl:value-of select="$table.cell.border.thickness"/>
+  </xsl:attribute>
+  <xsl:attribute name="border-{$side}-style">
+    <xsl:value-of select="$table.cell.border.style"/>
+  </xsl:attribute>
+  <xsl:attribute name="border-{$side}-color">
+    <xsl:value-of select="$table.cell.border.color"/>
+  </xsl:attribute>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="tgroup" name="tgroup">
+  <xsl:if test="not(@cols) or @cols = '' or string(number(@cols)) = 'NaN'">
+    <xsl:message terminate="yes">
+      <xsl:text>Error: CALS tables must specify the number of columns.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="table.width">
+    <xsl:call-template name="table.width"/>
+  </xsl:variable>
+
+  <xsl:variable name="colspecs">
+    <xsl:choose>
+      <xsl:when test="$use.extensions != 0
+                      and $tablecolumns.extension != 0">
+        <xsl:call-template name="generate.colgroup.raw">
+          <xsl:with-param name="cols" select="@cols"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="generate.colgroup">
+          <xsl:with-param name="cols" select="@cols"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="prop-columns"
+                select=".//colspec[contains(@colwidth, '*')]"/>
+  <xsl:if test="count($prop-columns) != 0 or
+                $fop.extensions != 0 or
+                $fop1.extensions != 0 or
+                $passivetex.extensions != 0">
+    <xsl:attribute name="table-layout">fixed</xsl:attribute>
+  </xsl:if>
+ 
+    <xsl:attribute name="width">
+      <xsl:value-of select="$table.width"/>
+    </xsl:attribute>
+ 
+  <xsl:choose>
+    <xsl:when test="$use.extensions != 0
+                    and $tablecolumns.extension != 0">
+      <xsl:choose>
+        <xsl:when test="function-available('stbl:adjustColumnWidths')">
+          <xsl:copy-of select="stbl:adjustColumnWidths($colspecs)"/>
+        </xsl:when>
+        <xsl:when test="function-available('xtbl:adjustColumnWidths')">
+          <xsl:copy-of select="xtbl:adjustColumnWidths($colspecs)"/>
+        </xsl:when>
+        <xsl:when test="function-available('ptbl:adjustColumnWidths')">
+          <xsl:copy-of select="ptbl:adjustColumnWidths($colspecs)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message terminate="yes">
+            <xsl:text>No adjustColumnWidths function available.</xsl:text>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$colspecs"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:apply-templates select="thead"/>
+  <xsl:apply-templates select="tfoot"/>
+  <xsl:apply-templates select="tbody"/>
+</xsl:template>
+
+<xsl:template match="colspec"></xsl:template>
+
+<xsl:template name="table.width">
+
+  <xsl:variable name="numcols">
+    <xsl:call-template name="widest-html-row">
+      <xsl:with-param name="rows" select=".//tr"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="explicit.table.width">
+    <xsl:choose>
+      <xsl:when test="self::entrytbl">
+        <xsl:call-template name="pi.dbfo_table-width"/>
+      </xsl:when>
+      <xsl:when test="self::table or self::informaltable">
+        <xsl:call-template name="pi.dbfo_table-width"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * no dbfo@table-width PI as a child of this table, so check -->
+        <!-- * the parent of this table to see if the table has any -->
+        <!-- * sibling dbfo@table-width PIs (FIXME: 2007-07 MikeSmith: we -->
+        <!-- * should really instead be checking here just to see if the -->
+        <!-- * first preceding sibling of this table is a -->
+        <!-- * dbfo@table-width PI) -->
+        <xsl:call-template name="pi.dbfo_table-width">
+          <xsl:with-param name="node" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="column.sum">
+    <xsl:choose>
+      <!-- CALS table -->
+      <xsl:when test="tgroup/@cols">
+        <!-- change context to the first tgroup -->
+        <xsl:for-each select="tgroup[1]">
+          <xsl:if test="count(colspec) = @cols">
+            <xsl:for-each select="colspec">
+              <xsl:if test="position() != 1">
+                <xsl:text> + </xsl:text>
+              </xsl:if>
+              <xsl:choose>
+                <xsl:when test="not(@colwidth)">NOWIDTH</xsl:when>
+                <xsl:when test="contains(@colwidth, '*')">NOWIDTH</xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="@colwidth"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:for-each>
+          </xsl:if>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- HTML table -->
+        <xsl:if test="count(col|colgroup/col) = $numcols">
+          <xsl:for-each select="col|colgroup/col">
+            <xsl:if test="position() != 1">
+              <xsl:text> + </xsl:text>
+            </xsl:if>
+            <xsl:choose>
+              <xsl:when test="not(@width)">NOWIDTH</xsl:when>
+              <xsl:when test="contains(@width, '%')">NOWIDTH</xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="@width"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:for-each>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="column.sum.width">
+    <xsl:if test="not(contains($column.sum, 'NOWIDTH'))">
+      <xsl:value-of select="$column.sum"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="prop-columns"
+                select=".//colspec[contains(@colwidth, '*')]"/>
+
+  <xsl:variable name="table.width">
+    <xsl:choose>
+      <xsl:when test="$explicit.table.width != ''">
+        <xsl:value-of select="$explicit.table.width"/>
+      </xsl:when>
+      <xsl:when test="$column.sum.width != ''">
+        <xsl:value-of select="$column.sum.width"/>
+      </xsl:when>
+      <xsl:when test="$default.table.width = ''">
+        <xsl:choose>
+          <!-- These processors don't support table-layout="auto" -->
+          <xsl:when test="$fop.extensions != 0 or
+                          $fop1.extensions != 0 or
+                          $passivetex.extensions != 0">
+            <xsl:text>100%</xsl:text>
+          </xsl:when>
+          <!-- Proportional columns imply 100% width -->
+          <xsl:when test="count($prop-columns) != 0">
+            <xsl:text>100%</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text>auto</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$default.table.width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:value-of select="$table.width"/>
+
+</xsl:template>
+
+<xsl:template match="spanspec"></xsl:template>
+
+<xsl:template match="thead">
+  <xsl:variable name="tgroup" select="parent::*"/>
+
+  <fo:table-header start-indent="0pt" end-indent="0pt">
+    <xsl:choose>
+      <!-- Use recursion if @morerows is used -->
+      <xsl:when test="row/entry/@morerows|ro/entrytbl/@morerows">
+        <xsl:apply-templates select="row[1]">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'recurse'"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="row">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'loop'" />
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:table-header>
+</xsl:template>
+
+<xsl:template match="tfoot">
+  <xsl:variable name="tgroup" select="parent::*"/>
+
+  <fo:table-footer start-indent="0pt" end-indent="0pt">
+    <xsl:choose>
+      <!-- Use recursion if @morerows is used -->
+      <xsl:when test="row/entry/@morerows|ro/entrytbl/@morerows">
+        <xsl:apply-templates select="row[1]">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'recurse'"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="row">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'loop'" />
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:table-footer>
+</xsl:template>
+
+<xsl:template match="tbody">
+  <xsl:variable name="tgroup" select="parent::*"/>
+
+  <fo:table-body start-indent="0pt" end-indent="0pt">
+    <xsl:choose>
+      <!-- Use recursion if @morerows is used -->
+      <xsl:when test="row/entry/@morerows|ro/entrytbl/@morerows">
+        <xsl:apply-templates select="row[1]">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'recurse'"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="row">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'loop'" />
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:table-body>
+</xsl:template>
+
+<xsl:template match="row">
+  <xsl:param name="spans"/>
+  <xsl:param name="browserows"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($spans, '0')">
+      <xsl:call-template name="normal-row">
+        <xsl:with-param name="spans" select="$spans"/>
+        <xsl:with-param name="browserows" select="$browserows"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <!--
+      <xsl:message>
+        <xsl:text>Ignoring row: </xsl:text>
+        <xsl:value-of select="$spans"/>
+        <xsl:text> = </xsl:text>
+        <xsl:call-template name="consume-row">
+          <xsl:with-param name="spans" select="$spans"/>
+        </xsl:call-template>
+      </xsl:message>
+      -->
+
+      <xsl:if test="normalize-space(.//text()) != ''">
+        <xsl:message>Warning: overlapped row contains content!</xsl:message>
+      </xsl:if>
+
+      <fo:table-row>
+        <xsl:comment> This row intentionally left blank </xsl:comment>
+        <fo:table-cell><fo:block/></fo:table-cell>
+      </fo:table-row>
+
+      <xsl:if test="$browserows = 'recurse'">
+        <xsl:apply-templates select="following-sibling::row[1]">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="consume-row">
+              <xsl:with-param name="spans" select="$spans"/>
+            </xsl:call-template>
+          </xsl:with-param>
+        </xsl:apply-templates>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="normal-row">
+  <xsl:param name="spans"/>
+  <xsl:param name="browserows"/>
+
+  <fo:table-row>
+    <xsl:call-template name="table.row.properties"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:apply-templates select="(entry|entrytbl)[1]">
+      <xsl:with-param name="spans" select="$spans"/>
+    </xsl:apply-templates>
+  </fo:table-row>
+
+  <xsl:if test="$browserows = 'recurse'">
+    <xsl:if test="following-sibling::row">
+      <xsl:variable name="nextspans">
+        <xsl:apply-templates select="(entry|entrytbl)[1]" mode="span">
+          <xsl:with-param name="spans" select="$spans"/>
+        </xsl:apply-templates>
+      </xsl:variable>
+  
+      <xsl:apply-templates select="following-sibling::row[1]">
+        <xsl:with-param name="spans" select="$nextspans"/>
+        <xsl:with-param name="browserows" select="$browserows"/>
+      </xsl:apply-templates>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<!-- customize this template to add row properties -->
+<xsl:template name="table.row.properties">
+
+  <xsl:variable name="row-height">
+    <xsl:if test="processing-instruction('dbfo')">
+      <xsl:call-template name="pi.dbfo_row-height"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="$row-height != ''">
+    <xsl:attribute name="block-progression-dimension">
+      <xsl:value-of select="$row-height"/>
+    </xsl:attribute>
+  </xsl:if>
+
+  <xsl:variable name="bgcolor">
+    <xsl:call-template name="pi.dbfo_bgcolor"/>
+  </xsl:variable>
+
+  <xsl:if test="$bgcolor != ''">
+    <xsl:attribute name="background-color">
+      <xsl:value-of select="$bgcolor"/>
+    </xsl:attribute>
+  </xsl:if>
+
+  <!-- Keep header row with next row -->
+  <xsl:if test="ancestor::thead">
+    <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  </xsl:if>
+
+</xsl:template>
+
+<xsl:template match="entry|entrytbl" name="entry">
+  <xsl:param name="col" select="1"/>
+  <xsl:param name="spans"/>
+
+  <xsl:variable name="row" select="parent::row"/>
+  <xsl:variable name="group" select="$row/parent::*[1]"/>
+  <xsl:variable name="frame" select="ancestor::tgroup/parent::*/@frame"/>
+
+  <xsl:variable name="empty.cell" select="count(node()) = 0"/>
+
+  <xsl:variable name="named.colnum">
+    <xsl:call-template name="entry.colnum"/>
+  </xsl:variable>
+
+  <xsl:variable name="entry.colnum">
+    <xsl:choose>
+      <xsl:when test="$named.colnum &gt; 0">
+        <xsl:value-of select="$named.colnum"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$col"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="entry.colspan">
+    <xsl:choose>
+      <xsl:when test="@spanname or @namest">
+        <xsl:call-template name="calculate.colspan"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="following.spans">
+    <xsl:call-template name="calculate.following.spans">
+      <xsl:with-param name="colspan" select="$entry.colspan"/>
+      <xsl:with-param name="spans" select="$spans"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="rowsep">
+    <xsl:choose>
+      <!-- If this is the last row, rowsep never applies (except when 
+           the ancestor tgroup has a following sibling tgroup) -->
+      <xsl:when test="not(ancestor-or-self::row[1]/following-sibling::row
+                          or ancestor-or-self::thead/following-sibling::tbody
+                          or ancestor-or-self::tbody/preceding-sibling::tfoot)
+                          and not(ancestor::tgroup/following-sibling::tgroup)">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <!-- Check for morerows too -->
+      <xsl:when test="(@morerows and count(ancestor-or-self::row[1]/
+                       following-sibling::row) = @morerows )
+                      and not (ancestor-or-self::thead/following-sibling::tbody
+                       or ancestor-or-self::tbody/preceding-sibling::tfoot)
+                       and not(ancestor::tgroup/following-sibling::tgroup)">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="."/>
+          <xsl:with-param name="colnum" select="$entry.colnum"/>
+          <xsl:with-param name="attribute" select="'rowsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+<!--
+  <xsl:message><xsl:value-of select="."/>: <xsl:value-of select="$rowsep"/></xsl:message>
+-->
+
+  <xsl:variable name="colsep">
+    <xsl:choose>
+      <!-- If this is the last column, colsep never applies. -->
+      <xsl:when test="$following.spans = ''">0</xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="."/>
+          <xsl:with-param name="colnum" select="$entry.colnum"/>
+          <xsl:with-param name="attribute" select="'colsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="valign">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'valign'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="align">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'align'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="char">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'char'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="charoff">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'charoff'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$spans != '' and not(starts-with($spans,'0:'))">
+      <xsl:call-template name="entry">
+        <xsl:with-param name="col" select="$col+1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="number($entry.colnum) &gt; $col">
+      <xsl:call-template name="empty.table.cell">
+        <xsl:with-param name="colnum" select="$col"/>
+      </xsl:call-template>
+      <xsl:call-template name="entry">
+        <xsl:with-param name="col" select="$col+1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:variable name="cell.content">
+        <fo:block>
+          <xsl:call-template name="table.cell.block.properties"/>
+
+          <!-- are we missing any indexterms? -->
+          <xsl:if test="not(preceding-sibling::entry)
+                        and not(parent::row/preceding-sibling::row)">
+            <!-- this is the first entry of the first row -->
+            <xsl:if test="ancestor::thead or
+                          (ancestor::tbody
+                           and not(ancestor::tbody/preceding-sibling::thead
+                                   or ancestor::tbody/preceding-sibling::tbody))">
+              <!-- of the thead or the first tbody -->
+              <xsl:apply-templates select="ancestor::tgroup/preceding-sibling::indexterm"/>
+            </xsl:if>
+          </xsl:if>
+
+          <!--
+          <xsl:text>(</xsl:text>
+          <xsl:value-of select="$rowsep"/>
+          <xsl:text>,</xsl:text>
+          <xsl:value-of select="$colsep"/>
+          <xsl:text>)</xsl:text>
+          -->
+          <xsl:choose>
+            <xsl:when test="$empty.cell">
+              <xsl:text>&#160;</xsl:text>
+            </xsl:when>
+            <xsl:when test="self::entrytbl">
+              <xsl:variable name="prop-columns"
+                            select=".//colspec[contains(@colwidth, '*')]"/>
+              <fo:table xsl:use-attribute-sets="table.table.properties">
+                <xsl:if test="count($prop-columns) != 0">
+                  <xsl:attribute name="table-layout">fixed</xsl:attribute>
+                </xsl:if>
+                <xsl:call-template name="tgroup"/>
+              </fo:table>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </fo:block>
+      </xsl:variable>
+
+      <xsl:variable name="cell-orientation">
+        <xsl:call-template name="pi.dbfo_orientation">
+          <xsl:with-param name="node" select="ancestor-or-self::entry"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="row-orientation">
+        <xsl:call-template name="pi.dbfo_orientation">
+          <xsl:with-param name="node" select="ancestor-or-self::row"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="cell-width">
+        <xsl:call-template name="pi.dbfo_rotated-width">
+          <xsl:with-param name="node" select="ancestor-or-self::entry"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="row-width">
+        <xsl:call-template name="pi.dbfo_rotated-width">
+          <xsl:with-param name="node" select="ancestor-or-self::row"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="orientation">
+        <xsl:choose>
+          <xsl:when test="$cell-orientation != ''">
+            <xsl:value-of select="$cell-orientation"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$row-orientation"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="rotated-width">
+        <xsl:choose>
+          <xsl:when test="$cell-width != ''">
+            <xsl:value-of select="$cell-width"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$row-width"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="bgcolor">
+        <xsl:call-template name="pi.dbfo_bgcolor">
+          <xsl:with-param name="node" select="ancestor-or-self::entry"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <fo:table-cell xsl:use-attribute-sets="table.cell.padding">
+        <xsl:call-template name="table.cell.properties">
+          <xsl:with-param name="bgcolor.pi" select="$bgcolor"/>
+          <xsl:with-param name="rowsep.inherit" select="$rowsep"/>
+          <xsl:with-param name="colsep.inherit" select="$colsep"/>
+          <xsl:with-param name="col" select="$col"/>
+          <xsl:with-param name="valign.inherit" select="$valign"/>
+          <xsl:with-param name="align.inherit" select="$align"/>
+          <xsl:with-param name="char.inherit" select="$char"/>
+        </xsl:call-template>
+
+        <xsl:call-template name="anchor"/>
+
+        <xsl:if test="@morerows">
+          <xsl:attribute name="number-rows-spanned">
+            <xsl:value-of select="@morerows+1"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$entry.colspan &gt; 1">
+          <xsl:attribute name="number-columns-spanned">
+            <xsl:value-of select="$entry.colspan"/>
+          </xsl:attribute>
+        </xsl:if>
+
+<!--
+        <xsl:if test="@charoff">
+          <xsl:attribute name="charoff">
+            <xsl:value-of select="@charoff"/>
+          </xsl:attribute>
+        </xsl:if>
+-->
+
+        <xsl:choose>
+          <xsl:when test="$fop.extensions = 0 and $passivetex.extensions = 0
+                          and $orientation != ''">
+            <fo:block-container reference-orientation="{$orientation}">
+              <xsl:if test="$rotated-width != ''">
+                <xsl:attribute name="width">
+                  <xsl:value-of select="$rotated-width"/>
+                </xsl:attribute>
+              </xsl:if>
+              <xsl:copy-of select="$cell.content"/>
+            </fo:block-container>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:copy-of select="$cell.content"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </fo:table-cell>
+
+      <xsl:choose>
+        <xsl:when test="following-sibling::entry|following-sibling::entrytbl">
+          <xsl:apply-templates select="(following-sibling::entry
+                                       |following-sibling::entrytbl)[1]">
+            <xsl:with-param name="col" select="$col+$entry.colspan"/>
+            <xsl:with-param name="spans" select="$following.spans"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="finaltd">
+            <xsl:with-param name="spans" select="$following.spans"/>
+            <xsl:with-param name="col" select="$col+$entry.colspan"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Expand this template to add properties to any fo:table-cell -->
+<xsl:template name="table.cell.properties">
+  <xsl:param name="bgcolor.pi" select="''"/>
+  <xsl:param name="rowsep.inherit" select="1"/>
+  <xsl:param name="colsep.inherit" select="1"/>
+  <xsl:param name="col" select="1"/>
+  <xsl:param name="valign.inherit" select="''"/>
+  <xsl:param name="align.inherit" select="''"/>
+  <xsl:param name="char.inherit" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="ancestor::tgroup">
+      <xsl:if test="$bgcolor.pi != ''">
+        <xsl:attribute name="background-color">
+          <xsl:value-of select="$bgcolor.pi"/>
+        </xsl:attribute>
+      </xsl:if>
+
+      <xsl:if test="$rowsep.inherit &gt; 0">
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'bottom'"/>
+        </xsl:call-template>
+      </xsl:if>
+
+      <xsl:if test="$colsep.inherit &gt; 0 and 
+                      $col &lt; (ancestor::tgroup/@cols|ancestor::entrytbl/@cols)[last()]">
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'end'"/>
+        </xsl:call-template>
+      </xsl:if>
+
+      <xsl:if test="$valign.inherit != ''">
+        <xsl:attribute name="display-align">
+          <xsl:choose>
+            <xsl:when test="$valign.inherit='top'">before</xsl:when>
+            <xsl:when test="$valign.inherit='middle'">center</xsl:when>
+            <xsl:when test="$valign.inherit='bottom'">after</xsl:when>
+            <xsl:otherwise>
+              <xsl:message>
+                <xsl:text>Unexpected valign value: </xsl:text>
+                <xsl:value-of select="$valign.inherit"/>
+                <xsl:text>, center used.</xsl:text>
+              </xsl:message>
+              <xsl:text>center</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+      </xsl:if>
+
+      <xsl:choose>
+        <xsl:when test="$align.inherit = 'char' and $char.inherit != ''">
+          <xsl:attribute name="text-align">
+            <xsl:value-of select="$char.inherit"/>
+          </xsl:attribute>
+        </xsl:when>
+        <xsl:when test="$align.inherit != ''">
+          <xsl:attribute name="text-align">
+            <xsl:value-of select="$align.inherit"/>
+          </xsl:attribute>
+        </xsl:when>
+      </xsl:choose>
+
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- HTML table -->
+      <xsl:if test="$bgcolor.pi != ''">
+        <xsl:attribute name="background-color">
+          <xsl:value-of select="$bgcolor.pi"/>
+        </xsl:attribute>
+      </xsl:if>
+
+      <xsl:if test="$align.inherit != ''">
+        <xsl:attribute name="text-align">
+          <xsl:value-of select="$align.inherit"/>
+        </xsl:attribute>
+      </xsl:if>
+
+      <xsl:if test="$valign.inherit != ''">
+        <xsl:attribute name="display-align">
+          <xsl:choose>
+            <xsl:when test="$valign.inherit='top'">before</xsl:when>
+            <xsl:when test="$valign.inherit='middle'">center</xsl:when>
+            <xsl:when test="$valign.inherit='bottom'">after</xsl:when>
+            <xsl:otherwise>
+              <xsl:message>
+                <xsl:text>Unexpected valign value: </xsl:text>
+                <xsl:value-of select="$valign.inherit"/>
+                <xsl:text>, center used.</xsl:text>
+              </xsl:message>
+              <xsl:text>center</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+      </xsl:if>
+
+      <xsl:call-template name="html.table.cell.rules"/>
+
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<!-- Expand this template to add properties to any cell's block -->
+<xsl:template name="table.cell.block.properties">
+  <!-- highlight this entry? -->
+  <xsl:choose>
+    <xsl:when test="ancestor::thead or ancestor::tfoot">
+      <xsl:attribute name="font-weight">bold</xsl:attribute>
+    </xsl:when>
+    <!-- Make row headers bold too -->
+    <xsl:when test="ancestor::tbody and 
+                    (ancestor::table[@rowheader = 'firstcol'] or
+                    ancestor::informaltable[@rowheader = 'firstcol']) and
+                    ancestor-or-self::entry[1][count(preceding-sibling::entry) = 0]">
+      <xsl:attribute name="font-weight">bold</xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="entry|entrytbl" name="sentry" mode="span">
+  <xsl:param name="col" select="1"/>
+  <xsl:param name="spans"/>
+
+  <xsl:variable name="entry.colnum">
+    <xsl:call-template name="entry.colnum"/>
+  </xsl:variable>
+
+  <xsl:variable name="entry.colspan">
+    <xsl:choose>
+      <xsl:when test="@spanname or @namest">
+        <xsl:call-template name="calculate.colspan"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="following.spans">
+    <xsl:call-template name="calculate.following.spans">
+      <xsl:with-param name="colspan" select="$entry.colspan"/>
+      <xsl:with-param name="spans" select="$spans"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$spans != '' and not(starts-with($spans,'0:'))">
+      <xsl:value-of select="substring-before($spans,':')-1"/>
+      <xsl:text>:</xsl:text>
+      <xsl:call-template name="sentry">
+        <xsl:with-param name="col" select="$col+1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="number($entry.colnum) &gt; $col">
+      <xsl:text>0:</xsl:text>
+      <xsl:call-template name="sentry">
+        <xsl:with-param name="col" select="$col + 1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="copy-string">
+        <xsl:with-param name="count" select="$entry.colspan"/>
+        <xsl:with-param name="string">
+          <xsl:choose>
+            <xsl:when test="@morerows">
+              <xsl:value-of select="@morerows"/>
+            </xsl:when>
+            <xsl:otherwise>0</xsl:otherwise>
+          </xsl:choose>
+          <xsl:text>:</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+
+      <xsl:choose>
+        <xsl:when test="following-sibling::entry|following-sibling::entrytbl">
+          <xsl:apply-templates select="(following-sibling::entry
+                                       |following-sibling::entrytbl)[1]"
+                               mode="span">
+            <xsl:with-param name="col" select="$col+$entry.colspan"/>
+            <xsl:with-param name="spans" select="$following.spans"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="sfinaltd">
+            <xsl:with-param name="spans" select="$following.spans"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.colgroup.raw">
+  <xsl:param name="cols" select="1"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>$cols"></xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="generate.col.raw">
+        <xsl:with-param name="countcol" select="$count"/>
+      </xsl:call-template>
+      <xsl:call-template name="generate.colgroup.raw">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.colgroup">
+  <xsl:param name="cols" select="1"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>$cols"></xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="generate.col">
+        <xsl:with-param name="countcol" select="$count"/>
+      </xsl:call-template>
+      <xsl:call-template name="generate.colgroup">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.col.raw">
+  <!-- generate the table-column for column countcol -->
+  <xsl:param name="countcol">1</xsl:param>
+  <xsl:param name="colspecs" select="./colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:param name="colnum">1</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($colspecs)">
+      <fo:table-column column-number="{$countcol}"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+
+      <xsl:variable name="colspec.colnum">
+        <xsl:choose>
+          <xsl:when test="$colspec/@colnum">
+            <xsl:value-of select="$colspec/@colnum"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$colnum"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="colspec.colwidth">
+        <xsl:choose>
+          <xsl:when test="normalize-space($colspec/@colwidth)='*'">1*</xsl:when>
+          <xsl:when test="$colspec/@colwidth">
+            <xsl:value-of select="$colspec/@colwidth"/>
+          </xsl:when>
+          <xsl:otherwise>1*</xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$colspec.colnum=$countcol">
+          <fo:table-column column-number="{$countcol}">
+            <xsl:attribute name="column-width">
+              <xsl:value-of select="$colspec.colwidth"/>
+            </xsl:attribute>
+          </fo:table-column>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="generate.col.raw">
+            <xsl:with-param name="countcol" select="$countcol"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="colnum">
+              <xsl:choose>
+                <xsl:when test="$colspec/@colnum">
+                  <xsl:value-of select="$colspec/@colnum + 1"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="$colnum + 1"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+           </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.col">
+  <!-- generate the table-column for column countcol -->
+  <xsl:param name="countcol">1</xsl:param>
+  <xsl:param name="colspecs" select="./colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:param name="colnum">1</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($colspecs)">
+      <fo:table-column column-number="{$countcol}">
+        <xsl:variable name="colwidth">
+          <xsl:call-template name="calc.column.width"/>
+        </xsl:variable>
+          <xsl:attribute name="column-width">
+            <xsl:value-of select="$colwidth"/>
+          </xsl:attribute>
+      </fo:table-column>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+
+      <xsl:variable name="colspec.colnum">
+        <xsl:choose>
+          <xsl:when test="$colspec/@colnum">
+            <xsl:value-of select="$colspec/@colnum"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$colnum"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="colspec.colwidth">
+        <xsl:choose>
+          <xsl:when test="$colspec/@colwidth">
+            <xsl:value-of select="$colspec/@colwidth"/>
+          </xsl:when>
+          <xsl:otherwise>1*</xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$colspec.colnum=$countcol">
+          <fo:table-column column-number="{$countcol}">
+            <xsl:variable name="colwidth">
+              <xsl:call-template name="calc.column.width">
+                <xsl:with-param name="colwidth">
+                  <xsl:value-of select="$colspec.colwidth"/>
+                </xsl:with-param>
+              </xsl:call-template>
+            </xsl:variable>
+              <xsl:attribute name="column-width">
+                <xsl:value-of select="$colwidth"/>
+              </xsl:attribute>
+          </fo:table-column>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="generate.col">
+            <xsl:with-param name="countcol" select="$countcol"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="colnum">
+              <xsl:choose>
+                <xsl:when test="$colspec/@colnum">
+                  <xsl:value-of select="$colspec/@colnum + 1"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="$colnum + 1"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+           </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<doc:template name="calc.column.width" xmlns="">
+<refpurpose>Calculate an XSL FO table column width specification from a
+CALS table column width specification.</refpurpose>
+
+<refdescription>
+<para>CALS expresses table column widths in the following basic
+forms:</para>
+
+<itemizedlist>
+<listitem>
+<para><emphasis>99.99units</emphasis>, a fixed length specifier.</para>
+</listitem>
+<listitem>
+<para><emphasis>99.99</emphasis>, a fixed length specifier without any units.</para>
+</listitem>
+<listitem>
+<para><emphasis>99.99*</emphasis>, a relative length specifier.</para>
+</listitem>
+<listitem>
+<para><emphasis>99.99*+99.99units</emphasis>, a combination of both.</para>
+</listitem>
+</itemizedlist>
+
+<para>The CALS units are points (pt), picas (pi), centimeters (cm),
+millimeters (mm), and inches (in). These are the same units as XSL,
+except that XSL abbreviates picas "pc" instead of "pi". If a length
+specifier has no units, the CALS default unit (pt) is assumed.</para>
+
+<para>Relative length specifiers are represented in XSL with the
+proportional-column-width() function.</para>
+
+<para>Here are some examples:</para>
+
+<itemizedlist>
+<listitem>
+<para>"36pt" becomes "36pt"</para>
+</listitem>
+<listitem>
+<para>"3pi" becomes "3pc"</para>
+</listitem>
+<listitem>
+<para>"36" becomes "36pt"</para>
+</listitem>
+<listitem>
+<para>"3*" becomes "proportional-column-width(3)"</para>
+</listitem>
+<listitem>
+<para>"3*+2pi" becomes "proportional-column-width(3)+2pc"</para>
+</listitem>
+<listitem>
+<para>"1*+2" becomes "proportional-column-width(1)+2pt"</para>
+</listitem>
+</itemizedlist>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>colwidth</term>
+<listitem>
+<para>The CALS column width specification.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>The XSL column width specification.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="calc.column.width">
+  <xsl:param name="colwidth">1*</xsl:param>
+
+  <!-- Ok, the colwidth could have any one of the following forms: -->
+  <!--        1*       = proportional width -->
+  <!--         *       = same as 1* -->
+  <!--     1unit       = 1.0 units wide -->
+  <!--         1       = 1pt wide -->
+  <!--  1*+1unit       = proportional width + some fixed width -->
+  <!--      1*+1       = proportional width + some fixed width -->
+
+  <!-- If it has a proportional width, translate it to XSL -->
+  <xsl:if test="contains($colwidth, '*')">
+    <xsl:text>proportional-column-width(</xsl:text>
+    <xsl:choose>
+      <xsl:when test="substring-before($colwidth, '*') != ''"> 
+        <xsl:value-of select="substring-before($colwidth, '*')"/>
+      </xsl:when>
+      <xsl:otherwise>
+         <xsl:text>1.00</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+
+  <!-- Now grab the non-proportional part of the specification -->
+  <xsl:variable name="width-units">
+    <xsl:choose>
+      <xsl:when test="contains($colwidth, '*')">
+        <xsl:value-of
+             select="normalize-space(substring-after($colwidth, '*'))"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="normalize-space($colwidth)"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Ok, now the width-units could have any one of the following forms: -->
+  <!--                 = <empty string> -->
+  <!--     1unit       = 1.0 units wide -->
+  <!--         1       = 1pt wide -->
+  <!-- with an optional leading sign -->
+
+  <!-- Grab the width part by blanking out the units part and discarding -->
+  <!-- whitespace. It's not pretty, but it works. -->
+  <xsl:variable name="width"
+       select="normalize-space(translate($width-units,
+                                         '+-0123456789.abcdefghijklmnopqrstuvwxyz',
+                                         '+-0123456789.'))"/>
+
+  <!-- Grab the units part by blanking out the width part and discarding -->
+  <!-- whitespace. It's not pretty, but it works. -->
+  <xsl:variable name="units"
+       select="normalize-space(translate($width-units,
+                                         'abcdefghijklmnopqrstuvwxyz+-0123456789.',
+                                         'abcdefghijklmnopqrstuvwxyz'))"/>
+
+  <!-- Output the width -->
+  <xsl:value-of select="$width"/>
+
+  <!-- Output the units, translated appropriately -->
+  <xsl:choose>
+    <xsl:when test="$units = 'pi'">pc</xsl:when>
+    <xsl:when test="$units = '' and $width != ''">pt</xsl:when>
+    <xsl:otherwise><xsl:value-of select="$units"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="table/caption">
+  <fo:block xsl:use-attribute-sets="table.caption.properties">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/task.xsl b/applications/content/template/docbook/fo/task.xsl
new file mode 100644
index 0000000..6cb548d
--- /dev/null
+++ b/applications/content/template/docbook/fo/task.xsl
@@ -0,0 +1,91 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="task">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="param.placement"
+                select="substring-after(normalize-space($formal.title.placement),
+                                        concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="preamble"
+                select="*[not(self::title
+                              or self::titleabbrev)]"/>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}"
+            xsl:use-attribute-sets="task.properties">
+
+    <xsl:if test="$keep.together != ''">
+      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+      select="$keep.together"/></xsl:attribute>
+    </xsl:if>
+
+    <xsl:call-template name="anchor"/>
+
+    <xsl:if test="title and $placement = 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="$preamble"/>
+
+    <xsl:if test="title and $placement != 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="task/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="tasksummary">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="tasksummary/title"/>
+
+<xsl:template match="taskprerequisites">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="taskprerequisites/title"/>
+
+<xsl:template match="taskrelated">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="taskrelated/title"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/titlepage.templates.xml b/applications/content/template/docbook/fo/titlepage.templates.xml
new file mode 100644
index 0000000..36a7495
--- /dev/null
+++ b/applications/content/template/docbook/fo/titlepage.templates.xml
@@ -0,0 +1,1586 @@
+<!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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheet distribution.
+     See ../README or http://docbook.sf.net/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="article" t:wrapper="fo:block"
+             font-family="{$title.fontset}">
+
+  <t:titlepage-content t:side="recto"
+	     start-indent="0pt"
+             text-align="center">
+
+    <title t:named-template="component.title"
+	   param:node="ancestor-or-self::article[1]"
+	   keep-with-next.within-column="always"
+	   font-size="&hsize5;"
+	   font-weight="bold"/>
+
+    <subtitle/>
+
+    <corpauthor space-before="0.5em"
+                font-size="&hsize2;"/>
+    <authorgroup space-before="0.5em"
+                 font-size="&hsize2;"/>
+    <author space-before="0.5em"
+            font-size="&hsize2;"/>
+
+    <!-- If you add editor, include this t:predicate attribute
+         because only the first editor generates the list of editors.
+    <editor t:predicate="[position() = 1]"/>
+    -->
+    <othercredit space-before="0.5em"/>
+    <releaseinfo space-before="0.5em"/>
+    <copyright space-before="0.5em"/>
+    <legalnotice text-align="start"
+                 margin-left="0.5in"
+                 margin-right="0.5in"
+                 font-family="{$body.fontset}"/>
+    <pubdate space-before="0.5em"/>
+    <revision space-before="0.5em"/>
+    <revhistory space-before="0.5em"/>
+    <abstract space-before="0.5em"
+	      text-align="start"
+	      margin-left="0.5in"
+              margin-right="0.5in"
+              font-family="{$body.fontset}"/>
+    <itermset/>
+  </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:titlepage t:element="set" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+      <title
+	     t:named-template="division.title"
+	     param:node="ancestor-or-self::set[1]"
+	     text-align="center"
+	     font-size="&hsize5;"
+	     space-before="&hsize5space;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    <subtitle
+	      font-family="{$title.fontset}"
+	      text-align="center"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+    <itermset/>
+  </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:titlepage t:element="book" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:named-template="division.title"
+	     param:node="ancestor-or-self::book[1]"
+	     text-align="center"
+	     font-size="&hsize5;"
+	     space-before="&hsize5space;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+      <subtitle
+		text-align="center"
+		font-size="&hsize4;"
+		space-before="&hsize4space;"
+		font-family="{$title.fontset}"/>
+      <corpauthor font-size="&hsize3;"
+		  keep-with-next.within-column="always"
+		  space-before="2in"/>
+      <authorgroup space-before="2in"/>
+      <author font-size="&hsize3;"
+	      space-before="&hsize2space;"
+	      keep-with-next.within-column="always"/>
+      <!-- If you add editor, include this t:predicate attribute
+           because only the first editor generates the list of editors.
+      <editor t:predicate="[position() = 1]"/>
+      -->
+      <itermset/>
+    </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+      <title
+	     t:named-template="book.verso.title"
+	     font-size="&hsize2;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+      <corpauthor/>
+      <authorgroup t:named-template="verso.authorgroup"/>
+      <author/>
+      <!-- If you add editor, include this t:predicate attribute
+           because only the first editor generates the list of editors.
+      <editor t:predicate="[position() = 1]"/>
+      -->
+      <othercredit/>
+      <releaseinfo space-before="0.5em"/>
+      <pubdate space-before="1em"/>
+      <copyright/>
+      <abstract/>
+      <legalnotice font-size="8pt"/>
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+      <fo:block break-after="page"/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+      <fo:block break-after="page"/>
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="part" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+      <title
+	     t:named-template="division.title"
+	     param:node="ancestor-or-self::part[1]"
+	     text-align="center"
+	     font-size="&hsize5;"
+	     space-before="&hsize5space;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    <subtitle
+	      text-align="center"
+	      font-size="&hsize4;"
+	      space-before="&hsize4space;"
+	      font-weight='bold'
+	      font-style='italic'
+	      font-family="{$title.fontset}"/>
+    <itermset/>
+  </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:titlepage t:element="partintro" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   text-align="center"
+	   font-size="&hsize5;"
+	   font-weight="bold"
+	   space-before="1em"
+	   font-family="{$title.fontset}"/>
+    <subtitle
+	      text-align="center"
+	      font-size="&hsize2;"
+	      font-weight="bold"
+	      font-style="italic"
+	      font-family="{$title.fontset}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+    <itermset/>
+  </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:titlepage t:element="reference" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+      <title
+	     t:named-template="division.title"
+	     param:node="ancestor-or-self::reference[1]"
+	     text-align="center"
+	     font-size="&hsize5;"
+	     space-before="&hsize5space;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    <subtitle
+	      font-family="{$title.fontset}"
+	      text-align="center"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+    <itermset/>
+  </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:titlepage t:element="refsynopsisdiv" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   font-family="{$title.fontset}"/>
+    <itermset/>
+  </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:titlepage t:element="refsection" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   font-family="{$title.fontset}"/>
+    <itermset/>
+  </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:titlepage t:element="refsect1" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   font-family="{$title.fontset}"/>
+    <itermset/>
+  </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:titlepage t:element="refsect2" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   font-family="{$title.fontset}"/>
+    <itermset/>
+  </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:titlepage t:element="refsect3" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   font-family="{$title.fontset}"/>
+    <itermset/>
+  </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:titlepage t:element="dedication" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="component.title"
+	     param:node="ancestor-or-self::dedication[1]"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize5;"
+	     font-family="{$title.fontset}"
+	     font-weight="bold"/>
+      <subtitle
+		font-family="{$title.fontset}"/>
+      <itermset/>
+    </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>
+
+<!-- ==================================================================== -->
+
+<!-- Same formatting as dedication -->
+ <t:titlepage t:element="acknowledgements" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="component.title"
+	     param:node="ancestor-or-self::acknowledgements[1]"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize5;"
+	     font-family="{$title.fontset}"
+	     font-weight="bold"/>
+      <subtitle
+		font-family="{$title.fontset}"/>
+      <itermset/>
+    </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:titlepage t:element="preface" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="component.title"
+	     param:node="ancestor-or-self::preface[1]"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize5;"
+	     font-family="{$title.fontset}"
+	     font-weight="bold"/>
+      <subtitle
+		font-family="{$title.fontset}"/>
+      <corpauthor/>
+      <authorgroup/>
+      <author/>
+      <othercredit/>
+      <releaseinfo/>
+      <copyright/>
+      <legalnotice/>
+      <pubdate/>
+      <revision/>
+      <revhistory/>
+      <abstract/>
+      <itermset/>
+    </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:titlepage t:element="chapter" t:wrapper="fo:block"
+               font-family="{$title.fontset}">
+    <t:titlepage-content t:side="recto" margin-left="{$title.margin.left}">
+      <title t:named-template="component.title"
+	     param:node="ancestor-or-self::chapter[1]"
+	     font-size="&hsize5;"
+	     font-weight="bold"/>
+
+      <subtitle space-before="0.5em"
+		font-style="italic"
+		font-size="&hsize2;"
+		font-weight="bold"/>
+
+      <corpauthor  space-before="0.5em"
+	           space-after="0.5em"
+                   font-size="&hsize2;"/>
+
+      <authorgroup space-before="0.5em"
+	           space-after="0.5em"
+                   font-size="&hsize2;"/>
+
+      <author      space-before="0.5em"
+	           space-after="0.5em"
+                   font-size="&hsize2;"/>
+
+      <othercredit/>
+      <releaseinfo/>
+      <copyright/>
+      <legalnotice/>
+      <pubdate/>
+      <revision/>
+      <revhistory/>
+      <abstract/>
+      <itermset/>
+    </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:titlepage t:element="appendix" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:named-template="component.title"
+	     param:node="ancestor-or-self::appendix[1]"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize5;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+      <subtitle
+		font-family="{$title.fontset}"/>
+      <corpauthor/>
+      <authorgroup/>
+      <author/>
+      <othercredit/>
+      <releaseinfo/>
+      <copyright/>
+      <legalnotice/>
+      <pubdate/>
+      <revision/>
+      <revhistory/>
+      <abstract/>
+      <itermset/>
+    </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:titlepage t:element="section" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   margin-left="{$title.margin.left}"
+	   font-family="{$title.fontset}"/>
+    <subtitle
+	      font-family="{$title.fontset}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+    <itermset/>
+  </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:titlepage t:element="sect1" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   margin-left="{$title.margin.left}"
+	   font-family="{$title.fontset}"/>
+    <subtitle
+	      font-family="{$title.fontset}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+    <itermset/>
+  </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:titlepage t:element="sect2" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   margin-left="{$title.margin.left}"
+	   font-family="{$title.fontset}"/>
+    <subtitle
+	      font-family="{$title.fontset}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+    <itermset/>
+  </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:titlepage t:element="sect3" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   margin-left="{$title.margin.left}"
+	   font-family="{$title.fontset}"/>
+    <subtitle
+	      font-family="{$title.fontset}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+    <itermset/>
+  </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:titlepage t:element="sect4" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   margin-left="{$title.margin.left}"
+	   font-family="{$title.fontset}"/>
+    <subtitle
+	      font-family="{$title.fontset}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+    <itermset/>
+  </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:titlepage t:element="sect5" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   margin-left="{$title.margin.left}"
+	   font-family="{$title.fontset}"/>
+    <subtitle
+	      font-family="{$title.fontset}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+    <itermset/>
+  </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:titlepage t:element="simplesect" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   margin-left="{$title.margin.left}"
+	   font-family="{$title.fontset}"/>
+    <subtitle
+	      font-family="{$title.fontset}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+    <itermset/>
+  </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:titlepage t:element="topic" t:wrapper="fo:block">
+  <t:titlepage-content t:side="recto">
+    <title
+	   font-weight="bold"
+           font-size="&hsize3;"
+           space-before="1em"
+           space-after="1em"
+	   font-family="{$title.fontset}"/>
+    <subtitle
+	      font-family="{$title.fontset}"/>
+  </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:titlepage t:element="bibliography" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="component.title"
+	     param:node="ancestor-or-self::bibliography[1]"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize5;"
+	     font-family="{$title.fontset}"
+	     font-weight="bold"/>
+      <subtitle
+		font-family="{$title.fontset}"/>
+      <itermset/>
+    </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:titlepage t:element="bibliodiv" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title t:named-template="component.title"
+	     param:node="ancestor-or-self::bibliodiv[1]"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize4;"
+	     font-family="{$title.fontset}"
+	     font-weight="bold"/>
+      <subtitle
+		font-family="{$title.fontset}"/>
+      <itermset/>
+    </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:titlepage t:element="glossary" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="component.title"
+	     param:node="ancestor-or-self::glossary[1]"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize5;"
+	     font-family="{$title.fontset}"
+	     font-weight="bold"/>
+      <subtitle
+		font-family="{$title.fontset}"/>
+      <itermset/>
+    </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:titlepage t:element="glossdiv" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title t:named-template="component.title"
+	     param:node="ancestor-or-self::glossdiv[1]"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize4;"
+	     font-family="{$title.fontset}"
+	     font-weight="bold"/>
+      <subtitle
+		font-family="{$title.fontset}"/>
+      <itermset/>
+    </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:titlepage t:element="index" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="component.title"
+	     param:node="ancestor-or-self::index[1]"
+             param:pagewide="1"
+	     margin-left="0pt"
+	     font-size="&hsize5;"
+	     font-family="{$title.fontset}"
+	     font-weight="bold"/>
+      <subtitle
+		font-family="{$title.fontset}"/>
+      <itermset/>
+    </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>
+
+<!-- ==================================================================== -->
+
+  <!-- The indexdiv.title template is used so that manual and -->
+  <!-- automatically generated indexdiv titles get the same -->
+  <!-- formatting. -->
+
+  <t:titlepage t:element="indexdiv" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title t:force="1"
+	     t:named-template="indexdiv.title"
+	     param:title="title"/>
+      <subtitle
+		font-family="{$title.fontset}"/>
+      <itermset/>
+    </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:titlepage t:element="setindex" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="component.title"
+	     param:node="ancestor-or-self::setindex[1]"
+             param:pagewide="1"
+	     margin-left="0pt"
+	     font-size="&hsize5;"
+	     font-family="{$title.fontset}"
+	     font-weight="bold"/>
+      <subtitle
+		font-family="{$title.fontset}"/>
+      <itermset/>
+    </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:titlepage t:element="colophon" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="component.title"
+	     param:node="ancestor-or-self::colophon[1]"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize5;"
+	     font-family="{$title.fontset}"
+	     font-weight="bold"/>
+      <subtitle
+		font-family="{$title.fontset}"/>
+      <itermset/>
+    </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:titlepage t:element="sidebar" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title 
+	     font-family="{$title.fontset}"
+	     font-weight="bold"/>
+      <subtitle
+		font-family="{$title.fontset}"/>
+      <itermset/>
+    </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:titlepage t:element="qandaset" t:wrapper="fo:block"
+             font-family="{$title.fontset}">
+
+  <t:titlepage-content t:side="recto"
+	     start-indent="0pt"
+             text-align="center">
+
+    <title t:named-template="component.title"
+	   param:node="ancestor-or-self::qandaset[1]"
+	   keep-with-next.within-column="always"
+	   font-size="&hsize5;"
+	   font-weight="bold"/>
+
+    <subtitle/>
+
+    <corpauthor space-before="0.5em"
+                font-size="&hsize2;"/>
+    <authorgroup space-before="0.5em"
+                 font-size="&hsize2;"/>
+    <author space-before="0.5em"
+            font-size="&hsize2;"/>
+
+    <othercredit space-before="0.5em"/>
+    <releaseinfo space-before="0.5em"/>
+    <copyright space-before="0.5em"/>
+    <legalnotice text-align="start"
+                 margin-left="0.5in"
+                 margin-right="0.5in"
+                 font-family="{$body.fontset}"/>
+    <pubdate space-before="0.5em"/>
+    <revision space-before="0.5em"/>
+    <revhistory space-before="0.5em"/>
+    <abstract space-before="0.5em"
+	      text-align="start"
+	      margin-left="0.5in"
+              margin-right="0.5in"
+              font-family="{$body.fontset}"/>
+    <itermset/>
+  </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:titlepage t:element="table.of.contents" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="gentext"
+	     param:key="'TableofContents'"
+             space-before.minimum="1em"
+             space-before.optimum="1.5em"
+             space-before.maximum="2em"
+	     space-after="0.5em"
+	     margin-left="{$title.margin.left}"
+	     start-indent="0pt"
+	     font-size="&hsize3;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    </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:titlepage t:element="list.of.tables" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="gentext"
+	     param:key="'ListofTables'"
+             space-before.minimum="1em"
+             space-before.optimum="1.5em"
+             space-before.maximum="2em"
+	     space-after="0.5em"
+	     margin-left="{$title.margin.left}"
+	     start-indent="0pt"
+	     font-size="&hsize3;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    </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:titlepage t:element="list.of.figures" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="gentext"
+	     param:key="'ListofFigures'"
+             space-before.minimum="1em"
+             space-before.optimum="1.5em"
+             space-before.maximum="2em"
+	     space-after="0.5em"
+	     margin-left="{$title.margin.left}"
+	     start-indent="0pt"
+	     font-size="&hsize3;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    </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:titlepage t:element="list.of.examples" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="gentext"
+	     param:key="'ListofExamples'"
+             space-before.minimum="1em"
+             space-before.optimum="1.5em"
+             space-before.maximum="2em"
+	     space-after="0.5em"
+	     margin-left="{$title.margin.left}"
+	     start-indent="0pt"
+	     font-size="&hsize3;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    </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:titlepage t:element="list.of.equations" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="gentext"
+	     param:key="'ListofEquations'"
+             space-before.minimum="1em"
+             space-before.optimum="1.5em"
+             space-before.maximum="2em"
+	     space-after="0.5em"
+	     margin-left="{$title.margin.left}"
+	     start-indent="0pt"
+	     font-size="&hsize3;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    </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:titlepage t:element="list.of.procedures" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="gentext"
+	     param:key="'ListofProcedures'"
+             space-before.minimum="1em"
+             space-before.optimum="1.5em"
+             space-before.maximum="2em"
+	     space-after="0.5em"
+	     margin-left="{$title.margin.left}"
+	     start-indent="0pt"
+	     font-size="&hsize3;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    </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:titlepage t:element="list.of.unknowns" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="gentext"
+	     param:key="'ListofUnknown'"
+             space-before.minimum="1em"
+             space-before.optimum="1.5em"
+             space-before.maximum="2em"
+	     space-after="0.5em"
+	     margin-left="{$title.margin.left}"
+	     start-indent="0pt"
+	     font-size="&hsize3;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    </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:titlepage t:element="component.list.of.tables" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="gentext"
+	     param:key="'ListofTables'"
+             space-before.minimum="1em"
+             space-before.optimum="1em"
+             space-before.maximum="1em"
+	     space-after="0.5em"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize1;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    </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:titlepage t:element="component.list.of.figures" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="gentext"
+	     param:key="'ListofFigures'"
+             space-before.minimum="1em"
+             space-before.optimum="1em"
+             space-before.maximum="1em"
+	     space-after="0.5em"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize1;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    </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:titlepage t:element="component.list.of.examples" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="gentext"
+	     param:key="'ListofExamples'"
+             space-before.minimum="1em"
+             space-before.optimum="1em"
+             space-before.maximum="1em"
+	     space-after="0.5em"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize1;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    </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:titlepage t:element="component.list.of.equations" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="gentext"
+	     param:key="'ListofEquations'"
+             space-before.minimum="1em"
+             space-before.optimum="1em"
+             space-before.maximum="1em"
+	     space-after="0.5em"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize1;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    </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:titlepage t:element="component.list.of.procedures" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="gentext"
+	     param:key="'ListofProcedures'"
+             space-before.minimum="1em"
+             space-before.optimum="1em"
+             space-before.maximum="1em"
+	     space-after="0.5em"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize1;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    </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:titlepage t:element="component.list.of.unknowns" t:wrapper="fo:block">
+    <t:titlepage-content t:side="recto">
+      <title
+	     t:force="1"
+	     t:named-template="gentext"
+	     param:key="'ListofUnknown'"
+             space-before.minimum="1em"
+             space-before.optimum="1em"
+             space-before.maximum="1em"
+	     space-after="0.5em"
+	     margin-left="{$title.margin.left}"
+	     font-size="&hsize1;"
+	     font-weight="bold"
+	     font-family="{$title.fontset}"/>
+    </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/applications/content/template/docbook/fo/titlepage.templates.xsl b/applications/content/template/docbook/fo/titlepage.templates.xsl
new file mode 100644
index 0000000..ed0cffd
--- /dev/null
+++ b/applications/content/template/docbook/fo/titlepage.templates.xsl
@@ -0,0 +1,5972 @@
+<?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="article.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="articleinfo/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/title"/>
+    </xsl:when>
+    <xsl:when test="artheader/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="articleinfo/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="artheader/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/abstract"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/abstract"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/itermset"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/itermset"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="{$title.fontset}">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="article.titlepage.before.recto"/>
+      <xsl:call-template name="article.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 start-indent="0pt" text-align="center"><xsl:copy-of select="$recto.content"/></fo:block>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="article.titlepage.before.verso"/>
+      <xsl:call-template name="article.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="article.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="article.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="article.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="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" keep-with-next.within-column="always" font-size="24.8832pt" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::article[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" space-before="0.5em" font-size="14.4pt">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" space-before="0.5em" font-size="14.4pt">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" space-before="0.5em" font-size="14.4pt">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" space-before="0.5em">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" space-before="0.5em">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" space-before="0.5em">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" text-align="start" margin-left="0.5in" margin-right="0.5in" font-family="{$body.fontset}">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" space-before="0.5em">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" space-before="0.5em">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" space-before="0.5em">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" space-before="0.5em" text-align="start" margin-left="0.5in" margin-right="0.5in" font-family="{$body.fontset}">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="set.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="setinfo/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="setinfo/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/othercredit"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/abstract"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/itermset"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="set.titlepage.before.recto"/>
+      <xsl:call-template name="set.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="set.titlepage.before.verso"/>
+      <xsl:call-template name="set.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="set.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="set.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="set.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="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style" text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::set[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style" font-family="{$title.fontset}" text-align="center">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="book.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="bookinfo/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="bookinfo/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/itermset"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.verso">
+  <xsl:choose>
+    <xsl:when test="bookinfo/title">
+      <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/author"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/othercredit"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/abstract"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/legalnotice"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/legalnotice"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.separator"><fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" break-after="page"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.verso"><fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" break-after="page"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="book.titlepage.before.recto"/>
+      <xsl:call-template name="book.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="book.titlepage.before.verso"/>
+      <xsl:call-template name="book.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="book.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="book.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="book.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="book.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style" text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::book[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style" text-align="center" font-size="20.736pt" space-before="15.552pt" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style" font-size="17.28pt" keep-with-next.within-column="always" space-before="2in">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style" space-before="2in">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="book.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style" font-size="17.28pt" space-before="10.8pt" keep-with-next.within-column="always">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="book.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="title" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style" font-size="14.4pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="book.verso.title">
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
+<xsl:call-template name="verso.authorgroup">
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style" space-before="0.5em">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style" space-before="1em">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style" font-size="8pt">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="part.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="partinfo/title">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="partinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/itermset"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="part.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="part.titlepage.before.recto"/>
+      <xsl:call-template name="part.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="part.titlepage.before.verso"/>
+      <xsl:call-template name="part.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="part.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="part.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="part.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="part.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="part.titlepage.recto.style" text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::part[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="part.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="part.titlepage.recto.style" text-align="center" font-size="20.736pt" space-before="15.552pt" font-weight="bold" font-style="italic" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="part.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="partintroinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="partintroinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/abstract"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/itermset"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="partintro.titlepage.before.recto"/>
+      <xsl:call-template name="partintro.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="partintro.titlepage.before.verso"/>
+      <xsl:call-template name="partintro.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="partintro.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.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="partintro.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="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style" text-align="center" font-size="24.8832pt" font-weight="bold" space-before="1em" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style" text-align="center" font-size="14.4pt" font-weight="bold" font-style="italic" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="referenceinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="referenceinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/abstract"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/itermset"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="reference.titlepage.before.recto"/>
+      <xsl:call-template name="reference.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="reference.titlepage.before.verso"/>
+      <xsl:call-template name="reference.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="reference.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.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="reference.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="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style" text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::reference[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style" font-family="{$title.fontset}" text-align="center">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="refsynopsisdiv.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="refsynopsisdivinfo/title">
+      <xsl:apply-templates mode="refsynopsisdiv.titlepage.recto.auto.mode" select="refsynopsisdivinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="refsynopsisdiv.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="refsynopsisdiv.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="refsynopsisdiv.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="refsynopsisdiv.titlepage.recto.auto.mode" select="refsynopsisdivinfo/itermset"/>
+  <xsl:apply-templates mode="refsynopsisdiv.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="refsynopsisdiv.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="refsynopsisdiv.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="refsynopsisdiv.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="refsynopsisdiv.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="refsynopsisdiv.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="refsynopsisdiv.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="refsynopsisdiv.titlepage.before.recto"/>
+      <xsl:call-template name="refsynopsisdiv.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="refsynopsisdiv.titlepage.before.verso"/>
+      <xsl:call-template name="refsynopsisdiv.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="refsynopsisdiv.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="refsynopsisdiv.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="refsynopsisdiv.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="refsynopsisdiv.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="refsynopsisdiv.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="refsynopsisdiv.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="refsynopsisdiv.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="refsynopsisdiv.titlepage.recto.style">
+<xsl:apply-templates select="." mode="refsynopsisdiv.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="refsection.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="refsectioninfo/title">
+      <xsl:apply-templates mode="refsection.titlepage.recto.auto.mode" select="refsectioninfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="refsection.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="refsection.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="refsection.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="refsection.titlepage.recto.auto.mode" select="refsectioninfo/itermset"/>
+  <xsl:apply-templates mode="refsection.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="refsection.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="refsection.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="refsection.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="refsection.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="refsection.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="refsection.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="refsection.titlepage.before.recto"/>
+      <xsl:call-template name="refsection.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="refsection.titlepage.before.verso"/>
+      <xsl:call-template name="refsection.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="refsection.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="refsection.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="refsection.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="refsection.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="refsection.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="refsection.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="refsection.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="refsection.titlepage.recto.style">
+<xsl:apply-templates select="." mode="refsection.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="refsect1.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="refsect1info/title">
+      <xsl:apply-templates mode="refsect1.titlepage.recto.auto.mode" select="refsect1info/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="refsect1.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="refsect1.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="refsect1.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="refsect1.titlepage.recto.auto.mode" select="refsect1info/itermset"/>
+  <xsl:apply-templates mode="refsect1.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="refsect1.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="refsect1.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="refsect1.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="refsect1.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="refsect1.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="refsect1.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="refsect1.titlepage.before.recto"/>
+      <xsl:call-template name="refsect1.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="refsect1.titlepage.before.verso"/>
+      <xsl:call-template name="refsect1.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="refsect1.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="refsect1.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="refsect1.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="refsect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="refsect1.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="refsect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="refsect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="refsect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="refsect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="refsect2.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="refsect2info/title">
+      <xsl:apply-templates mode="refsect2.titlepage.recto.auto.mode" select="refsect2info/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="refsect2.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="refsect2.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="refsect2.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="refsect2.titlepage.recto.auto.mode" select="refsect2info/itermset"/>
+  <xsl:apply-templates mode="refsect2.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="refsect2.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="refsect2.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="refsect2.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="refsect2.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="refsect2.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="refsect2.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="refsect2.titlepage.before.recto"/>
+      <xsl:call-template name="refsect2.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="refsect2.titlepage.before.verso"/>
+      <xsl:call-template name="refsect2.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="refsect2.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="refsect2.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="refsect2.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="refsect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="refsect2.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="refsect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="refsect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="refsect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="refsect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="refsect3.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="refsect3info/title">
+      <xsl:apply-templates mode="refsect3.titlepage.recto.auto.mode" select="refsect3info/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="refsect3.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="refsect3.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="refsect3.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="refsect3.titlepage.recto.auto.mode" select="refsect3info/itermset"/>
+  <xsl:apply-templates mode="refsect3.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="refsect3.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="refsect3.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="refsect3.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="refsect3.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="refsect3.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="refsect3.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="refsect3.titlepage.before.recto"/>
+      <xsl:call-template name="refsect3.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="refsect3.titlepage.before.verso"/>
+      <xsl:call-template name="refsect3.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="refsect3.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="refsect3.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="refsect3.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="refsect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="refsect3.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="refsect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="refsect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="refsect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="refsect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="dedication.titlepage.recto.style" margin-left="{$title.margin.left}" font-size="24.8832pt" font-family="{$title.fontset}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="dedicationinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="dedicationinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="dedicationinfo/itermset"/>
+  <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="dedication.titlepage.before.recto"/>
+      <xsl:call-template name="dedication.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="dedication.titlepage.before.verso"/>
+      <xsl:call-template name="dedication.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="dedication.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.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="dedication.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="subtitle" mode="dedication.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="dedication.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="dedication.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="acknowledgements.titlepage.recto.style" margin-left="{$title.margin.left}" font-size="24.8832pt" font-family="{$title.fontset}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::acknowledgements[1]"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="acknowledgementsinfo/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="acknowledgementsinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="acknowledgementsinfo/itermset"/>
+  <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="acknowledgements.titlepage.before.recto"/>
+      <xsl:call-template name="acknowledgements.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="acknowledgements.titlepage.before.verso"/>
+      <xsl:call-template name="acknowledgements.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="acknowledgements.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="acknowledgements.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="acknowledgements.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="subtitle" mode="acknowledgements.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="acknowledgements.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="acknowledgements.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="acknowledgements.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="acknowledgements.titlepage.recto.style">
+<xsl:apply-templates select="." mode="acknowledgements.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style" margin-left="{$title.margin.left}" font-size="24.8832pt" font-family="{$title.fontset}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::preface[1]"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/abstract"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/itermset"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="preface.titlepage.before.recto"/>
+      <xsl:call-template name="preface.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="preface.titlepage.before.verso"/>
+      <xsl:call-template name="preface.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="preface.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.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="preface.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="subtitle" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="chapterinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="chapterinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/abstract"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/itermset"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="{$title.fontset}">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="chapter.titlepage.before.recto"/>
+      <xsl:call-template name="chapter.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 margin-left="{$title.margin.left}"><xsl:copy-of select="$recto.content"/></fo:block>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="chapter.titlepage.before.verso"/>
+      <xsl:call-template name="chapter.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="chapter.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.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="chapter.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="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style" font-size="24.8832pt" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style" space-before="0.5em" font-style="italic" font-size="14.4pt" font-weight="bold">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style" space-before="0.5em" space-after="0.5em" font-size="14.4pt">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style" space-before="0.5em" space-after="0.5em" font-size="14.4pt">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style" space-before="0.5em" space-after="0.5em" font-size="14.4pt">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="appendixinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="appendixinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/abstract"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/itermset"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="appendix.titlepage.before.recto"/>
+      <xsl:call-template name="appendix.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="appendix.titlepage.before.verso"/>
+      <xsl:call-template name="appendix.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="appendix.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.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="appendix.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="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style" margin-left="{$title.margin.left}" font-size="24.8832pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::appendix[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="section.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sectioninfo/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sectioninfo/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/othercredit"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/abstract"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/itermset"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="section.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="section.titlepage.before.recto"/>
+      <xsl:call-template name="section.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="section.titlepage.before.verso"/>
+      <xsl:call-template name="section.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="section.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="section.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="section.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="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style" margin-left="{$title.margin.left}" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect1info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect1info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/othercredit"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/abstract"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/itermset"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect1.titlepage.before.recto"/>
+      <xsl:call-template name="sect1.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="sect1.titlepage.before.verso"/>
+      <xsl:call-template name="sect1.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="sect1.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.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="sect1.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="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style" margin-left="{$title.margin.left}" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect2info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect2info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/othercredit"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/abstract"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/itermset"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect2.titlepage.before.recto"/>
+      <xsl:call-template name="sect2.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="sect2.titlepage.before.verso"/>
+      <xsl:call-template name="sect2.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="sect2.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.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="sect2.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="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style" margin-left="{$title.margin.left}" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect3info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect3info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/othercredit"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/abstract"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/itermset"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect3.titlepage.before.recto"/>
+      <xsl:call-template name="sect3.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="sect3.titlepage.before.verso"/>
+      <xsl:call-template name="sect3.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="sect3.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.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="sect3.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="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style" margin-left="{$title.margin.left}" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect4info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect4info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/othercredit"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/abstract"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/itermset"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect4.titlepage.before.recto"/>
+      <xsl:call-template name="sect4.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="sect4.titlepage.before.verso"/>
+      <xsl:call-template name="sect4.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="sect4.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.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="sect4.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="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style" margin-left="{$title.margin.left}" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect5info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect5info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/othercredit"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/abstract"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/itermset"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect5.titlepage.before.recto"/>
+      <xsl:call-template name="sect5.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="sect5.titlepage.before.verso"/>
+      <xsl:call-template name="sect5.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="sect5.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.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="sect5.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="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style" margin-left="{$title.margin.left}" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/abstract"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/itermset"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="simplesect.titlepage.before.recto"/>
+      <xsl:call-template name="simplesect.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="simplesect.titlepage.before.verso"/>
+      <xsl:call-template name="simplesect.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="simplesect.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.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="simplesect.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="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style" margin-left="{$title.margin.left}" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="topic.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="topicinfo/title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="topicinfo/subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="topic.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="topic.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="topic.titlepage.before.recto"/>
+      <xsl:call-template name="topic.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="topic.titlepage.before.verso"/>
+      <xsl:call-template name="topic.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="topic.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="topic.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="topic.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="topic.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="topic.titlepage.recto.style" font-weight="bold" font-size="17.28pt" space-before="1em" space-after="1em" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="topic.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="topic.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="bibliography.titlepage.recto.style" margin-left="{$title.margin.left}" font-size="24.8832pt" font-family="{$title.fontset}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::bibliography[1]"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="bibliographyinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="bibliographyinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="bibliographyinfo/itermset"/>
+  <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="bibliography.titlepage.before.recto"/>
+      <xsl:call-template name="bibliography.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="bibliography.titlepage.before.verso"/>
+      <xsl:call-template name="bibliography.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="bibliography.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="bibliography.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="bibliography.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="subtitle" mode="bibliography.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="bibliography.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="bibliography.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="bibliography.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:apply-templates select="." mode="bibliography.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="bibliodiv.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="bibliodivinfo/title">
+      <xsl:apply-templates mode="bibliodiv.titlepage.recto.auto.mode" select="bibliodivinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="bibliodiv.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="bibliodiv.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="bibliodiv.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="bibliodivinfo/subtitle">
+      <xsl:apply-templates mode="bibliodiv.titlepage.recto.auto.mode" select="bibliodivinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="bibliodiv.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="bibliodiv.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="bibliodiv.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="bibliodiv.titlepage.recto.auto.mode" select="bibliodivinfo/itermset"/>
+  <xsl:apply-templates mode="bibliodiv.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="bibliodiv.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="bibliodiv.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="bibliodiv.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="bibliodiv.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="bibliodiv.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="bibliodiv.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="bibliodiv.titlepage.before.recto"/>
+      <xsl:call-template name="bibliodiv.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="bibliodiv.titlepage.before.verso"/>
+      <xsl:call-template name="bibliodiv.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="bibliodiv.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="bibliodiv.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="bibliodiv.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="bibliodiv.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="bibliodiv.titlepage.recto.style" margin-left="{$title.margin.left}" font-size="20.736pt" font-family="{$title.fontset}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::bibliodiv[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliodiv.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="bibliodiv.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="bibliodiv.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="bibliodiv.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="bibliodiv.titlepage.recto.style">
+<xsl:apply-templates select="." mode="bibliodiv.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="glossary.titlepage.recto.style" margin-left="{$title.margin.left}" font-size="24.8832pt" font-family="{$title.fontset}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::glossary[1]"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="glossaryinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="glossaryinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="glossaryinfo/itermset"/>
+  <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="glossary.titlepage.before.recto"/>
+      <xsl:call-template name="glossary.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="glossary.titlepage.before.verso"/>
+      <xsl:call-template name="glossary.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="glossary.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="glossary.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="glossary.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="subtitle" mode="glossary.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="glossary.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="glossary.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="glossary.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:apply-templates select="." mode="glossary.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="glossdiv.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="glossdivinfo/title">
+      <xsl:apply-templates mode="glossdiv.titlepage.recto.auto.mode" select="glossdivinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="glossdiv.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="glossdiv.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="glossdiv.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="glossdivinfo/subtitle">
+      <xsl:apply-templates mode="glossdiv.titlepage.recto.auto.mode" select="glossdivinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="glossdiv.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="glossdiv.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="glossdiv.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="glossdiv.titlepage.recto.auto.mode" select="glossdivinfo/itermset"/>
+  <xsl:apply-templates mode="glossdiv.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="glossdiv.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="glossdiv.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="glossdiv.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="glossdiv.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="glossdiv.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="glossdiv.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="glossdiv.titlepage.before.recto"/>
+      <xsl:call-template name="glossdiv.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="glossdiv.titlepage.before.verso"/>
+      <xsl:call-template name="glossdiv.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="glossdiv.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="glossdiv.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="glossdiv.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="glossdiv.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="glossdiv.titlepage.recto.style" margin-left="{$title.margin.left}" font-size="20.736pt" font-family="{$title.fontset}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::glossdiv[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="glossdiv.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="glossdiv.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="glossdiv.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="glossdiv.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="glossdiv.titlepage.recto.style">
+<xsl:apply-templates select="." mode="glossdiv.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="index.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="index.titlepage.recto.style" margin-left="0pt" font-size="24.8832pt" font-family="{$title.fontset}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::index[1]"/>
+<xsl:with-param name="pagewide" select="1"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="indexinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="indexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="indexinfo/itermset"/>
+  <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="index.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="index.titlepage.before.recto"/>
+      <xsl:call-template name="index.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="index.titlepage.before.verso"/>
+      <xsl:call-template name="index.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="index.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="index.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="index.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="subtitle" mode="index.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="index.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="index.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="index.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:apply-templates select="." mode="index.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="indexdiv.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="indexdiv.titlepage.recto.style">
+<xsl:call-template name="indexdiv.title">
+<xsl:with-param name="title" select="title"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="indexdivinfo/subtitle">
+      <xsl:apply-templates mode="indexdiv.titlepage.recto.auto.mode" select="indexdivinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="indexdiv.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="indexdiv.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="indexdiv.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="indexdiv.titlepage.recto.auto.mode" select="indexdivinfo/itermset"/>
+  <xsl:apply-templates mode="indexdiv.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="indexdiv.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="indexdiv.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="indexdiv.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="indexdiv.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="indexdiv.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="indexdiv.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="indexdiv.titlepage.before.recto"/>
+      <xsl:call-template name="indexdiv.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="indexdiv.titlepage.before.verso"/>
+      <xsl:call-template name="indexdiv.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="indexdiv.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="indexdiv.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="indexdiv.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="subtitle" mode="indexdiv.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="indexdiv.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="indexdiv.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="indexdiv.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="indexdiv.titlepage.recto.style">
+<xsl:apply-templates select="." mode="indexdiv.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="setindex.titlepage.recto.style" margin-left="0pt" font-size="24.8832pt" font-family="{$title.fontset}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::setindex[1]"/>
+<xsl:with-param name="pagewide" select="1"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="setindexinfo/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="setindexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="setindexinfo/itermset"/>
+  <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="setindex.titlepage.before.recto"/>
+      <xsl:call-template name="setindex.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="setindex.titlepage.before.verso"/>
+      <xsl:call-template name="setindex.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="setindex.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="setindex.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="setindex.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="subtitle" mode="setindex.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="setindex.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="setindex.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="setindex.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="setindex.titlepage.recto.style">
+<xsl:apply-templates select="." mode="setindex.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="colophon.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="colophon.titlepage.recto.style" margin-left="{$title.margin.left}" font-size="24.8832pt" font-family="{$title.fontset}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::colophon[1]"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="colophoninfo/subtitle">
+      <xsl:apply-templates mode="colophon.titlepage.recto.auto.mode" select="colophoninfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="colophon.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="colophon.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="colophon.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="colophon.titlepage.recto.auto.mode" select="colophoninfo/itermset"/>
+  <xsl:apply-templates mode="colophon.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="colophon.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="colophon.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="colophon.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="colophon.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="colophon.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="colophon.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="colophon.titlepage.before.recto"/>
+      <xsl:call-template name="colophon.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="colophon.titlepage.before.verso"/>
+      <xsl:call-template name="colophon.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="colophon.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="colophon.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="colophon.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="subtitle" mode="colophon.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="colophon.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="colophon.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="colophon.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="colophon.titlepage.recto.style">
+<xsl:apply-templates select="." mode="colophon.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sidebarinfo/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sidebarinfo/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/itermset"/>
+  <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/itermset"/>
+  <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sidebar.titlepage.before.recto"/>
+      <xsl:call-template name="sidebar.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="sidebar.titlepage.before.verso"/>
+      <xsl:call-template name="sidebar.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="sidebar.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="sidebar.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="sidebar.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="sidebar.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sidebar.titlepage.recto.style" font-family="{$title.fontset}" font-weight="bold">
+<xsl:apply-templates select="." mode="sidebar.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sidebar.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sidebar.titlepage.recto.style" font-family="{$title.fontset}">
+<xsl:apply-templates select="." mode="sidebar.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="sidebar.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sidebar.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sidebar.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="qandaset.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="qandasetinfo/title">
+      <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/title"/>
+    </xsl:when>
+    <xsl:when test="blockinfo/title">
+      <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="qandasetinfo/subtitle">
+      <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="blockinfo/subtitle">
+      <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/corpauthor"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/corpauthor"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/authorgroup"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/authorgroup"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/author"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/author"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/othercredit"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/othercredit"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/releaseinfo"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/releaseinfo"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/copyright"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/copyright"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/legalnotice"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/legalnotice"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/pubdate"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/pubdate"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/revision"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/revision"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/revhistory"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/revhistory"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/abstract"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/abstract"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/abstract"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="qandasetinfo/itermset"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="blockinfo/itermset"/>
+  <xsl:apply-templates mode="qandaset.titlepage.recto.auto.mode" select="info/itermset"/>
+</xsl:template>
+
+<xsl:template name="qandaset.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="qandaset.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="qandaset.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="qandaset.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="qandaset.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="{$title.fontset}">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="qandaset.titlepage.before.recto"/>
+      <xsl:call-template name="qandaset.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 start-indent="0pt" text-align="center"><xsl:copy-of select="$recto.content"/></fo:block>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="qandaset.titlepage.before.verso"/>
+      <xsl:call-template name="qandaset.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="qandaset.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="qandaset.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="qandaset.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="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style" keep-with-next.within-column="always" font-size="24.8832pt" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::qandaset[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style">
+<xsl:apply-templates select="." mode="qandaset.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style" space-before="0.5em" font-size="14.4pt">
+<xsl:apply-templates select="." mode="qandaset.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style" space-before="0.5em" font-size="14.4pt">
+<xsl:apply-templates select="." mode="qandaset.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style" space-before="0.5em" font-size="14.4pt">
+<xsl:apply-templates select="." mode="qandaset.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style" space-before="0.5em">
+<xsl:apply-templates select="." mode="qandaset.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style" space-before="0.5em">
+<xsl:apply-templates select="." mode="qandaset.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style" space-before="0.5em">
+<xsl:apply-templates select="." mode="qandaset.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style" text-align="start" margin-left="0.5in" margin-right="0.5in" font-family="{$body.fontset}">
+<xsl:apply-templates select="." mode="qandaset.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style" space-before="0.5em">
+<xsl:apply-templates select="." mode="qandaset.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style" space-before="0.5em">
+<xsl:apply-templates select="." mode="qandaset.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style" space-before="0.5em">
+<xsl:apply-templates select="." mode="qandaset.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style" space-before="0.5em" text-align="start" margin-left="0.5in" margin-right="0.5in" font-family="{$body.fontset}">
+<xsl:apply-templates select="." mode="qandaset.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="itermset" mode="qandaset.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="qandaset.titlepage.recto.style">
+<xsl:apply-templates select="." mode="qandaset.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="table.of.contents.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="table.of.contents.titlepage.recto.style" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="{$title.margin.left}" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'TableofContents'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="table.of.contents.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="table.of.contents.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="table.of.contents.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="table.of.contents.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="table.of.contents.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="table.of.contents.titlepage.before.recto"/>
+      <xsl:call-template name="table.of.contents.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="table.of.contents.titlepage.before.verso"/>
+      <xsl:call-template name="table.of.contents.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="table.of.contents.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="table.of.contents.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="table.of.contents.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 name="list.of.tables.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="list.of.tables.titlepage.recto.style" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="{$title.margin.left}" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofTables'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="list.of.tables.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="list.of.tables.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="list.of.tables.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="list.of.tables.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="list.of.tables.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="list.of.tables.titlepage.before.recto"/>
+      <xsl:call-template name="list.of.tables.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="list.of.tables.titlepage.before.verso"/>
+      <xsl:call-template name="list.of.tables.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="list.of.tables.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.tables.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="list.of.tables.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 name="list.of.figures.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="list.of.figures.titlepage.recto.style" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="{$title.margin.left}" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofFigures'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="list.of.figures.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="list.of.figures.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="list.of.figures.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="list.of.figures.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="list.of.figures.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="list.of.figures.titlepage.before.recto"/>
+      <xsl:call-template name="list.of.figures.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="list.of.figures.titlepage.before.verso"/>
+      <xsl:call-template name="list.of.figures.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="list.of.figures.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.figures.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="list.of.figures.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 name="list.of.examples.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="list.of.examples.titlepage.recto.style" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="{$title.margin.left}" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofExamples'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="list.of.examples.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="list.of.examples.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="list.of.examples.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="list.of.examples.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="list.of.examples.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="list.of.examples.titlepage.before.recto"/>
+      <xsl:call-template name="list.of.examples.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="list.of.examples.titlepage.before.verso"/>
+      <xsl:call-template name="list.of.examples.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="list.of.examples.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.examples.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="list.of.examples.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 name="list.of.equations.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="list.of.equations.titlepage.recto.style" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="{$title.margin.left}" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofEquations'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="list.of.equations.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="list.of.equations.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="list.of.equations.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="list.of.equations.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="list.of.equations.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="list.of.equations.titlepage.before.recto"/>
+      <xsl:call-template name="list.of.equations.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="list.of.equations.titlepage.before.verso"/>
+      <xsl:call-template name="list.of.equations.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="list.of.equations.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.equations.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="list.of.equations.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 name="list.of.procedures.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="list.of.procedures.titlepage.recto.style" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="{$title.margin.left}" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofProcedures'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="list.of.procedures.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="list.of.procedures.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="list.of.procedures.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="list.of.procedures.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="list.of.procedures.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="list.of.procedures.titlepage.before.recto"/>
+      <xsl:call-template name="list.of.procedures.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="list.of.procedures.titlepage.before.verso"/>
+      <xsl:call-template name="list.of.procedures.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="list.of.procedures.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.procedures.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="list.of.procedures.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 name="list.of.unknowns.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="list.of.unknowns.titlepage.recto.style" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="{$title.margin.left}" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofUnknown'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="list.of.unknowns.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="list.of.unknowns.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="list.of.unknowns.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="list.of.unknowns.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="list.of.unknowns.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="list.of.unknowns.titlepage.before.recto"/>
+      <xsl:call-template name="list.of.unknowns.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="list.of.unknowns.titlepage.before.verso"/>
+      <xsl:call-template name="list.of.unknowns.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="list.of.unknowns.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.unknowns.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="list.of.unknowns.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 name="component.list.of.tables.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="component.list.of.tables.titlepage.recto.style" space-before.minimum="1em" space-before.optimum="1em" space-before.maximum="1em" space-after="0.5em" margin-left="{$title.margin.left}" font-size="12pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofTables'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="component.list.of.tables.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="component.list.of.tables.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="component.list.of.tables.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="component.list.of.tables.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="component.list.of.tables.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="component.list.of.tables.titlepage.before.recto"/>
+      <xsl:call-template name="component.list.of.tables.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="component.list.of.tables.titlepage.before.verso"/>
+      <xsl:call-template name="component.list.of.tables.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="component.list.of.tables.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="component.list.of.tables.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="component.list.of.tables.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 name="component.list.of.figures.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="component.list.of.figures.titlepage.recto.style" space-before.minimum="1em" space-before.optimum="1em" space-before.maximum="1em" space-after="0.5em" margin-left="{$title.margin.left}" font-size="12pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofFigures'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="component.list.of.figures.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="component.list.of.figures.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="component.list.of.figures.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="component.list.of.figures.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="component.list.of.figures.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="component.list.of.figures.titlepage.before.recto"/>
+      <xsl:call-template name="component.list.of.figures.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="component.list.of.figures.titlepage.before.verso"/>
+      <xsl:call-template name="component.list.of.figures.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="component.list.of.figures.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="component.list.of.figures.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="component.list.of.figures.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 name="component.list.of.examples.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="component.list.of.examples.titlepage.recto.style" space-before.minimum="1em" space-before.optimum="1em" space-before.maximum="1em" space-after="0.5em" margin-left="{$title.margin.left}" font-size="12pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofExamples'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="component.list.of.examples.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="component.list.of.examples.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="component.list.of.examples.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="component.list.of.examples.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="component.list.of.examples.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="component.list.of.examples.titlepage.before.recto"/>
+      <xsl:call-template name="component.list.of.examples.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="component.list.of.examples.titlepage.before.verso"/>
+      <xsl:call-template name="component.list.of.examples.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="component.list.of.examples.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="component.list.of.examples.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="component.list.of.examples.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 name="component.list.of.equations.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="component.list.of.equations.titlepage.recto.style" space-before.minimum="1em" space-before.optimum="1em" space-before.maximum="1em" space-after="0.5em" margin-left="{$title.margin.left}" font-size="12pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofEquations'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="component.list.of.equations.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="component.list.of.equations.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="component.list.of.equations.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="component.list.of.equations.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="component.list.of.equations.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="component.list.of.equations.titlepage.before.recto"/>
+      <xsl:call-template name="component.list.of.equations.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="component.list.of.equations.titlepage.before.verso"/>
+      <xsl:call-template name="component.list.of.equations.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="component.list.of.equations.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="component.list.of.equations.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="component.list.of.equations.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 name="component.list.of.procedures.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="component.list.of.procedures.titlepage.recto.style" space-before.minimum="1em" space-before.optimum="1em" space-before.maximum="1em" space-after="0.5em" margin-left="{$title.margin.left}" font-size="12pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofProcedures'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="component.list.of.procedures.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="component.list.of.procedures.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="component.list.of.procedures.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="component.list.of.procedures.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="component.list.of.procedures.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="component.list.of.procedures.titlepage.before.recto"/>
+      <xsl:call-template name="component.list.of.procedures.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="component.list.of.procedures.titlepage.before.verso"/>
+      <xsl:call-template name="component.list.of.procedures.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="component.list.of.procedures.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="component.list.of.procedures.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="component.list.of.procedures.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 name="component.list.of.unknowns.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="component.list.of.unknowns.titlepage.recto.style" space-before.minimum="1em" space-before.optimum="1em" space-before.maximum="1em" space-after="0.5em" margin-left="{$title.margin.left}" font-size="12pt" font-weight="bold" font-family="{$title.fontset}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofUnknown'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="component.list.of.unknowns.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="component.list.of.unknowns.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="component.list.of.unknowns.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="component.list.of.unknowns.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="component.list.of.unknowns.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="component.list.of.unknowns.titlepage.before.recto"/>
+      <xsl:call-template name="component.list.of.unknowns.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="component.list.of.unknowns.titlepage.before.verso"/>
+      <xsl:call-template name="component.list.of.unknowns.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="component.list.of.unknowns.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="component.list.of.unknowns.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="component.list.of.unknowns.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:stylesheet>
+
diff --git a/applications/content/template/docbook/fo/titlepage.xsl b/applications/content/template/docbook/fo/titlepage.xsl
new file mode 100644
index 0000000..c21149e
--- /dev/null
+++ b/applications/content/template/docbook/fo/titlepage.xsl
@@ -0,0 +1,792 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:attribute-set name="book.titlepage.recto.style">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$title.fontset"/>
+  </xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="font-size">12pt</xsl:attribute>
+  <xsl:attribute name="text-align">center</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="book.titlepage.verso.style">
+  <xsl:attribute name="font-size">10pt</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="article.titlepage.recto.style"/>
+<xsl:attribute-set name="article.titlepage.verso.style"/>
+
+<xsl:attribute-set name="set.titlepage.recto.style"/>
+<xsl:attribute-set name="set.titlepage.verso.style"/>
+
+<xsl:attribute-set name="part.titlepage.recto.style">
+  <xsl:attribute name="text-align">center</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="part.titlepage.verso.style"/>
+
+<xsl:attribute-set name="partintro.titlepage.recto.style"/>
+<xsl:attribute-set name="partintro.titlepage.verso.style"/>
+
+<xsl:attribute-set name="reference.titlepage.recto.style"/>
+<xsl:attribute-set name="reference.titlepage.verso.style"/>
+
+<xsl:attribute-set name="dedication.titlepage.recto.style"/>
+<xsl:attribute-set name="dedication.titlepage.verso.style"/>
+
+<xsl:attribute-set name="acknowledgements.titlepage.recto.style"/>
+<xsl:attribute-set name="acknowledgements.titlepage.verso.style"/>
+
+<xsl:attribute-set name="preface.titlepage.recto.style"/>
+<xsl:attribute-set name="preface.titlepage.verso.style"/>
+
+<xsl:attribute-set name="chapter.titlepage.recto.style"/>
+<xsl:attribute-set name="chapter.titlepage.verso.style"/>
+
+<xsl:attribute-set name="appendix.titlepage.recto.style"/>
+<xsl:attribute-set name="appendix.titlepage.verso.style"/>
+
+<xsl:attribute-set name="bibliography.titlepage.recto.style"/>
+<xsl:attribute-set name="bibliography.titlepage.verso.style"/>
+
+<xsl:attribute-set name="bibliodiv.titlepage.recto.style"/>
+<xsl:attribute-set name="bibliodiv.titlepage.verso.style"/>
+
+<xsl:attribute-set name="glossary.titlepage.recto.style"/>
+<xsl:attribute-set name="glossary.titlepage.verso.style"/>
+
+<xsl:attribute-set name="glossdiv.titlepage.recto.style"/>
+<xsl:attribute-set name="glossdiv.titlepage.verso.style"/>
+
+<xsl:attribute-set name="index.titlepage.recto.style"/>
+<xsl:attribute-set name="index.titlepage.verso.style"/>
+
+<xsl:attribute-set name="setindex.titlepage.recto.style"/>
+<xsl:attribute-set name="setindex.titlepage.verso.style"/>
+
+<xsl:attribute-set name="indexdiv.titlepage.recto.style"/>
+<xsl:attribute-set name="indexdiv.titlepage.verso.style"/>
+
+<xsl:attribute-set name="colophon.titlepage.recto.style"/>
+<xsl:attribute-set name="colophon.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sidebar.titlepage.recto.style"/>
+<xsl:attribute-set name="sidebar.titlepage.verso.style"/>
+
+<xsl:attribute-set name="qandaset.titlepage.recto.style"/>
+<xsl:attribute-set name="qandaset.titlepage.verso.style"/>
+
+<xsl:attribute-set name="section.titlepage.recto.style">
+  <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="section.titlepage.verso.style">
+  <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="sect1.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect1.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect2.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect2.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect3.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect3.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect4.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect4.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect5.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect5.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="simplesect.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="simplesect.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="topic.titlepage.recto.style"/>
+<xsl:attribute-set name="topic.titlepage.verso.style"/>
+
+<xsl:attribute-set name="refnamediv.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="refnamediv.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="refsynopsisdiv.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="refsynopsisdiv.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="refsection.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="refsection.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="refsect1.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="refsect1.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="refsect2.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="refsect2.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="refsect3.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="refsect3.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/>
+<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.procedures.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.procedures.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="component.list.of.tables.titlepage.recto.style"/>
+<xsl:attribute-set name="component.list.of.tables.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="component.list.of.figures.titlepage.recto.style"/>
+<xsl:attribute-set name="component.list.of.figures.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="component.list.of.equations.titlepage.recto.style"/>
+<xsl:attribute-set name="component.list.of.equations.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="component.list.of.examples.titlepage.recto.style"/>
+<xsl:attribute-set name="component.list.of.examples.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="component.list.of.procedures.titlepage.recto.style"/>
+<xsl:attribute-set name="component.list.of.procedures.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="component.list.of.unknowns.titlepage.recto.style"/>
+<xsl:attribute-set name="component.list.of.unknowns.contents.titlepage.verso.style"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="titlepage.mode">
+  <!-- if an element isn't found in this mode, try the default mode -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="abbrev" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="abstract" mode="titlepage.mode">
+  <fo:block xsl:use-attribute-sets="abstract.properties">
+    <fo:block xsl:use-attribute-sets="abstract.title.properties">
+      <xsl:choose>
+	<xsl:when test="title|info/title">
+	  <xsl:apply-templates select="title|info/title"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:call-template name="gentext">
+	    <xsl:with-param name="key" select="'Abstract'"/>
+	  </xsl:call-template>
+	</xsl:otherwise>
+      </xsl:choose>
+    </fo:block>
+    <xsl:apply-templates select="*[not(self::title)]" mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="abstract/title" mode="titlepage.mode"/>
+
+<xsl:template match="abstract/title" mode="titlepage.abstract.title.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="address" mode="titlepage.mode">
+  <!-- use the normal address handling code -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="titlepage.mode">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="author" mode="titlepage.mode">
+  <fo:block>
+    <xsl:call-template name="anchor"/>
+    <xsl:choose>
+      <xsl:when test="orgname">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="person.name"/>
+        <xsl:if test="affiliation/orgname">
+          <xsl:text>, </xsl:text>
+          <xsl:apply-templates select="affiliation/orgname" mode="titlepage.mode"/>
+        </xsl:if>
+        <xsl:if test="email|affiliation/address/email">
+          <xsl:text> </xsl:text>
+          <xsl:apply-templates select="(email|affiliation/address/email)[1]"/>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="authorblurb" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="titlepage.mode">
+  <fo:wrapper>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:wrapper>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="collab" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="collabname" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="titlepage.mode">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="confdates" mode="titlepage.mode">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="titlepage.mode">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="confnum" mode="titlepage.mode">
+  <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="contractnum" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="contrib" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="copyright" mode="titlepage.mode">
+  <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"/>
+</xsl:template>
+
+<xsl:template match="year" mode="titlepage.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="titlepage.mode">
+  <xsl:apply-templates/>
+  <xsl:if test="position() &lt; last()">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="corpname" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="date" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="edition" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+  <xsl:call-template name="gentext.space"/>
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Edition'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="editor" mode="titlepage.mode">
+  <!-- The first editor is dealt with in the following template,
+       which in turn displays all editors of the same mode. -->
+</xsl:template>
+
+<xsl:template match="editor[1]" priority="2" mode="titlepage.mode">
+  <xsl:call-template name="gentext.edited.by"/>
+  <xsl:call-template name="gentext.space"/>
+  <xsl:call-template name="person.name.list">
+    <xsl:with-param name="person.list" select="../editor"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="firstname" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="graphic" mode="titlepage.mode">
+  <!-- use the normal graphic handling code -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="honorific" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="isbn" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="issn" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="biblioid" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="itermset" mode="titlepage.mode">
+  <xsl:apply-templates select="indexterm"/>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="titlepage.mode">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="keywordset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="titlepage.mode">
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:if test="title"> <!-- FIXME: add param for using default title? -->
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice/title" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="lineage" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="modespec" mode="titlepage.mode">
+  <!-- discard -->
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="titlepage.mode">
+  <xsl:if test="preceding-sibling::*[1][self::orgname]">
+    <xsl:text> </xsl:text>
+  </xsl:if>
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="orgname" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.mode">
+  <xsl:variable name="contrib" select="string(contrib)"/>
+  <xsl:choose>
+    <xsl:when test="contrib">
+      <xsl:if test="not(preceding-sibling::othercredit[string(contrib)=$contrib])">
+        <fo:block>
+          <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:apply-templates select="following-sibling::othercredit[string(contrib)=$contrib]" mode="titlepage.othercredits"/>
+        </fo:block>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block><xsl:call-template name="person.name"/></fo:block>
+      <xsl:apply-templates mode="titlepage.mode" select="./affiliation"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.othercredits">
+  <xsl:text>, </xsl:text>
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="othername" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="productname" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="publisher" mode="titlepage.mode">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="publishername" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="titlepage.mode">
+
+  <xsl:variable name="explicit.table.width">
+    <xsl:call-template name="pi.dbfo_table-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="table.width">
+    <xsl:choose>
+      <xsl:when test="$explicit.table.width != ''">
+        <xsl:value-of select="$explicit.table.width"/>
+      </xsl:when>
+      <xsl:when test="$default.table.width = ''">
+        <xsl:text>100%</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$default.table.width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+ <fo:table table-layout="fixed" width="{$table.width}" xsl:use-attribute-sets="revhistory.table.properties">
+    <fo:table-column column-number="1" column-width="proportional-column-width(1)"/>
+    <fo:table-column column-number="2" column-width="proportional-column-width(1)"/>
+    <fo:table-column column-number="3" column-width="proportional-column-width(1)"/>
+    <fo:table-body start-indent="0pt" end-indent="0pt">
+      <fo:table-row>
+        <fo:table-cell number-columns-spanned="3" xsl:use-attribute-sets="revhistory.table.cell.properties">
+          <fo:block xsl:use-attribute-sets="revhistory.title.properties">
+	    <xsl:choose>
+	      <xsl:when test="title|info/title">
+		<xsl:apply-templates select="title|info/title" mode="titlepage.mode"/>
+	      </xsl:when>
+	      <xsl:otherwise>
+		<xsl:call-template name="gentext">
+		  <xsl:with-param name="key" select="'RevHistory'"/>
+		</xsl:call-template>
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </fo:block>
+        </fo:table-cell>
+      </fo:table-row>
+      <xsl:apply-templates select="*[not(self::title)]" mode="titlepage.mode"/>
+    </fo:table-body>
+  </fo:table>
+
+</xsl:template>
+
+
+<xsl:template match="revhistory/revision" mode="titlepage.mode">
+  <xsl:variable name="revnumber" select="revnumber"/>
+  <xsl:variable name="revdate"   select="date"/>
+  <xsl:variable name="revauthor" select="authorinitials|author"/>
+  <xsl:variable name="revremark" select="revremark|revdescription"/>
+  <fo:table-row>
+    <fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties">
+      <fo:block>
+        <xsl:if test="$revnumber">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'Revision'"/>
+          </xsl:call-template>
+          <xsl:call-template name="gentext.space"/>
+          <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/>
+        </xsl:if>
+      </fo:block>
+    </fo:table-cell>
+    <fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties">
+      <fo:block>
+        <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/>
+      </fo:block>
+    </fo:table-cell>
+    <fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties">
+      <fo:block>
+        <xsl:for-each select="$revauthor">
+          <xsl:apply-templates select="." mode="titlepage.mode"/>
+          <xsl:if test="position() != last()">
+            <xsl:text>, </xsl:text>
+          </xsl:if>
+        </xsl:for-each>
+      </fo:block>
+    </fo:table-cell>
+  </fo:table-row>
+  <xsl:if test="$revremark">
+    <fo:table-row>
+      <fo:table-cell number-columns-spanned="3" xsl:use-attribute-sets="revhistory.table.cell.properties">
+        <fo:block>
+          <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/>
+        </fo:block>
+      </fo:table-cell>
+    </fo:table-row>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/date" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/author" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revremark" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subjectset" mode="titlepage.mode">
+  <!-- discard -->
+</xsl:template>
+
+<xsl:template match="subtitle" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="surname" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Book templates -->
+
+<!-- Note: these templates cannot use *.titlepage.recto.mode or
+     *.titlepage.verso.mode. If they do then subsequent use of a custom
+     titlepage.templates.xml file will not work correctly. -->
+
+<!-- book recto -->
+
+<xsl:template match="bookinfo/authorgroup|book/info/authorgroup"
+              mode="titlepage.mode" priority="2">
+  <fo:block>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<!-- book verso -->
+
+<xsl:template name="book.verso.title">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+
+    <xsl:if test="following-sibling::subtitle
+                  |following-sibling::info/subtitle
+                  |following-sibling::bookinfo/subtitle">
+      <xsl:text>: </xsl:text>
+
+      <xsl:apply-templates select="(following-sibling::subtitle
+                                   |following-sibling::info/subtitle
+                                   |following-sibling::bookinfo/subtitle)[1]"
+                           mode="book.verso.subtitle.mode"/>
+    </xsl:if>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="book.verso.subtitle.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+  <xsl:if test="following-sibling::subtitle">
+    <xsl:text>: </xsl:text>
+    <xsl:apply-templates select="following-sibling::subtitle[1]"
+                         mode="book.verso.subtitle.mode"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="verso.authorgroup">
+  <fo:block>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'by'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:call-template name="person.name.list">
+      <xsl:with-param name="person.list" select="author|corpauthor|editor"/>
+    </xsl:call-template>
+  </fo:block>
+  <xsl:apply-templates select="othercredit" mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="bookinfo/author|book/info/author"
+              mode="titlepage.mode" priority="2">
+  <fo:block>
+    <xsl:call-template name="person.name"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="bookinfo/corpauthor|book/info/corpauthor"
+              mode="titlepage.mode" priority="2">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="bookinfo/pubdate|book/info/pubdate"
+              mode="titlepage.mode" priority="2">
+  <fo:block>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'pubdate'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/toc.xsl b/applications/content/template/docbook/fo/toc.xsl
new file mode 100644
index 0000000..4095c63
--- /dev/null
+++ b/applications/content/template/docbook/fo/toc.xsl
@@ -0,0 +1,332 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- only set, book and part puts toc in its own page sequence -->
+
+<xsl:template match="set/toc | book/toc | part/toc">
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="parent::*"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Do not output the toc element if one is already generated
+       by the use of $generate.toc parameter, or if
+       generating a source toc is turned off -->
+  <xsl:if test="not(contains($toc.params, 'toc')) and
+                ($process.source.toc != 0 or $process.empty.source.toc != 0)">
+    <!-- Don't generate a page sequence unless there is content -->
+    <xsl:variable name="content">
+      <xsl:choose>
+        <xsl:when test="* and $process.source.toc != 0">
+          <xsl:apply-templates />
+        </xsl:when>
+        <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
+          <!-- trick to switch context node to parent element -->
+          <xsl:for-each select="parent::*">
+            <xsl:choose>
+              <xsl:when test="self::set">
+                <xsl:call-template name="set.toc">
+                  <xsl:with-param name="toc.title.p" 
+                                  select="contains($toc.params, 'title')"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="self::book">
+                <xsl:call-template name="division.toc">
+                  <xsl:with-param name="toc.title.p" 
+                                  select="contains($toc.params, 'title')"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="self::part">
+                <xsl:call-template name="division.toc">
+                  <xsl:with-param name="toc.title.p" 
+                                  select="contains($toc.params, 'title')"/>
+                </xsl:call-template>
+              </xsl:when>
+            </xsl:choose>
+          </xsl:for-each>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:if test="string-length(normalize-space($content)) != 0">
+      <xsl:variable name="lot-master-reference">
+        <xsl:call-template name="select.pagemaster">
+          <xsl:with-param name="pageclass" select="'lot'"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:call-template name="page.sequence">
+        <xsl:with-param name="master-reference"
+                        select="$lot-master-reference"/>
+        <xsl:with-param name="element" select="'toc'"/>
+        <xsl:with-param name="gentext-key" select="'TableofContents'"/>
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+  
+<xsl:template match="chapter/toc | appendix/toc | preface/toc | article/toc">
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="parent::*"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Do not output the toc element if one is already generated
+       by the use of $generate.toc parameter, or if
+       generating a source toc is turned off -->
+  <xsl:if test="not(contains($toc.params, 'toc')) and
+                ($process.source.toc != 0 or $process.empty.source.toc != 0)">
+    <xsl:choose>
+      <xsl:when test="* and $process.source.toc != 0">
+        <fo:block>
+          <xsl:apply-templates/> 
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
+        <!-- trick to switch context node to section element -->
+        <xsl:for-each select="parent::*">
+          <xsl:call-template name="component.toc">
+            <xsl:with-param name="toc.title.p" 
+                            select="contains($toc.params, 'title')"/>
+          </xsl:call-template>
+        </xsl:for-each>
+      </xsl:when>
+    </xsl:choose>
+    <xsl:call-template name="component.toc.separator"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="section/toc
+                    |sect1/toc
+                    |sect2/toc
+                    |sect3/toc
+                    |sect4/toc
+                    |sect5/toc">
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="parent::*"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Do not output the toc element if one is already generated
+       by the use of $generate.toc parameter, or if
+       generating a source toc is turned off -->
+  <xsl:if test="not(contains($toc.params, 'toc')) and
+                ($process.source.toc != 0 or $process.empty.source.toc != 0)">
+    <xsl:choose>
+      <xsl:when test="* and $process.source.toc != 0">
+        <fo:block>
+          <xsl:apply-templates/> 
+        </fo:block>
+      </xsl:when>
+      <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
+        <!-- trick to switch context node to section element -->
+        <xsl:for-each select="parent::*">
+          <xsl:call-template name="section.toc">
+            <xsl:with-param name="toc.title.p" 
+                            select="contains($toc.params, 'title')"/>
+          </xsl:call-template>
+        </xsl:for-each>
+      </xsl:when>
+    </xsl:choose>
+    <xsl:call-template name="section.toc.separator"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="tocpart|tocchap
+                     |toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+  <xsl:apply-templates select="tocentry"/>
+  <xsl:if test="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+    <fo:block start-indent="{count(ancestor::*)*2}pc">
+      <xsl:apply-templates select="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="tocentry|lotentry|tocdiv|tocfront|tocback">
+  <fo:block text-align-last="justify"
+            end-indent="2pc"
+            last-line-end-indent="-2pc">
+    <fo:inline keep-with-next.within-line="always">
+      <xsl:choose>
+        <xsl:when test="@linkend">
+          <fo:basic-link internal-destination="{@linkend}">
+            <xsl:apply-templates/>
+          </fo:basic-link>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </fo:inline>
+
+    <xsl:choose>
+      <xsl:when test="@linkend">
+        <fo:inline keep-together.within-line="always">
+          <xsl:text> </xsl:text>
+          <fo:leader leader-pattern="dots"
+                     keep-with-next.within-line="always"/>
+          <xsl:text> </xsl:text>
+          <fo:basic-link internal-destination="{@linkend}">
+            <xsl:choose>
+              <xsl:when test="@pagenum">
+                <xsl:value-of select="@pagenum"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <fo:page-number-citation ref-id="{@linkend}"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </fo:basic-link>
+        </fo:inline>
+      </xsl:when>
+      <xsl:when test="@pagenum">
+        <fo:inline keep-together.within-line="always">
+          <xsl:text> </xsl:text>
+          <fo:leader leader-pattern="dots"
+                     keep-with-next.within-line="always"/>
+          <xsl:text> </xsl:text>
+          <xsl:value-of select="@pagenum"/>
+        </fo:inline>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- just the leaders, what else can I do? -->
+        <fo:inline keep-together.within-line="always">
+          <xsl:text> </xsl:text>
+          <fo:leader leader-pattern="space"
+                     keep-with-next.within-line="always"/>
+        </fo:inline>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="toc/title">
+  <fo:block font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="toc/subtitle">
+  <fo:block font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="toc/titleabbrev">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- A lot element must have content, because there is no attribute
+     to select what kind of list should be generated -->
+<xsl:template match="book/lot | part/lot">
+  <!-- Don't generate a page sequence unless there is content -->
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="* and $process.source.toc != 0">
+        <xsl:apply-templates />
+      </xsl:when>
+      <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
+        <xsl:call-template name="process.empty.lot"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="string-length(normalize-space($content)) != 0">
+    <xsl:variable name="lot-master-reference">
+      <xsl:call-template name="select.pagemaster">
+        <xsl:with-param name="pageclass" select="'lot'"/>
+      </xsl:call-template>
+    </xsl:variable>
+  
+    <xsl:call-template name="page.sequence">
+      <xsl:with-param name="master-reference"
+                      select="$lot-master-reference"/>
+      <xsl:with-param name="element" select="'toc'"/>
+      <xsl:with-param name="content" select="$content"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+  
+<xsl:template match="chapter/lot | appendix/lot | preface/lot | article/lot">
+  <xsl:choose>
+    <xsl:when test="* and $process.source.toc != 0">
+      <fo:block>
+        <xsl:apply-templates/> 
+      </fo:block>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:when>
+    <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
+      <xsl:call-template name="process.empty.lot"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="section/lot
+                    |sect1/lot
+                    |sect2/lot
+                    |sect3/lot
+                    |sect4/lot
+                    |sect5/lot">
+  <xsl:choose>
+    <xsl:when test="* and $process.source.toc != 0">
+      <fo:block>
+        <xsl:apply-templates/> 
+      </fo:block>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:when>
+    <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
+      <xsl:call-template name="process.empty.lot"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.empty.lot">
+  <!-- An empty lot element does not provide any information to indicate
+       what should be included in it.  You can customize this
+       template to generate a lot based on @role or something -->
+  <xsl:message>
+    <xsl:text>Warning: don't know what to generate for </xsl:text>
+    <xsl:text>lot that has no children.</xsl:text>
+  </xsl:message>
+</xsl:template>
+
+<xsl:template match="lot/title">
+  <fo:block font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="lot/subtitle">
+  <fo:block font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="lot/titleabbrev">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/verbatim.xsl b/applications/content/template/docbook/fo/verbatim.xsl
new file mode 100644
index 0000000..63e702b
--- /dev/null
+++ b/applications/content/template/docbook/fo/verbatim.xsl
@@ -0,0 +1,496 @@
+<?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:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim"
+                xmlns:xverb="com.nwalsh.xalan.Verbatim"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                xmlns:exsl="http://exslt.org/common"
+                exclude-result-prefixes="sverb xverb lxslt exsl"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- XSLTHL highlighting is turned off by default. See highlighting/README
+     for instructions on how to turn on XSLTHL -->
+<xsl:template name="apply-highlighting">
+    <xsl:apply-templates/>
+</xsl:template>
+
+<lxslt:component prefix="xverb"
+                 functions="numberLines"/>
+
+<xsl:template match="programlisting|screen|synopsis">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="$suppress-numbers = '0'
+                      and @linenumbering = 'numbered'
+                      and $use.extensions != '0'
+                      and $linenumbering.extension != '0'">
+        <xsl:call-template name="number.rtf.lines">
+          <xsl:with-param name="rtf">
+            <xsl:choose>
+              <xsl:when test="$highlight.source != 0">
+                <xsl:call-template name="apply-highlighting"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:apply-templates/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="$highlight.source != 0">
+            <xsl:call-template name="apply-highlighting"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <xsl:variable name="block.content">
+    <xsl:choose>
+      <xsl:when test="$shade.verbatim != 0">
+        <fo:block id="{$id}"
+             xsl:use-attribute-sets="monospace.verbatim.properties shade.verbatim.style">
+	  <xsl:if test="$keep.together != ''">
+	    <xsl:attribute name="keep-together.within-column"><xsl:value-of
+	    select="$keep.together"/></xsl:attribute>
+	  </xsl:if>
+          <xsl:choose>
+            <xsl:when test="$hyphenate.verbatim != 0 and 
+                            $exsl.node.set.available != 0">
+              <xsl:apply-templates select="exsl:node-set($content)" 
+                                   mode="hyphenate.verbatim"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:copy-of select="$content"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </fo:block>
+      </xsl:when>
+      <xsl:otherwise>
+        <fo:block id="{$id}"
+                  xsl:use-attribute-sets="monospace.verbatim.properties">
+	  <xsl:if test="$keep.together != ''">
+	    <xsl:attribute name="keep-together.within-column"><xsl:value-of
+	    select="$keep.together"/></xsl:attribute>
+	  </xsl:if>
+          <xsl:choose>
+            <xsl:when test="$hyphenate.verbatim != 0 and 
+                            $exsl.node.set.available != 0">
+              <xsl:apply-templates select="exsl:node-set($content)" 
+                                   mode="hyphenate.verbatim"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:copy-of select="$content"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </fo:block>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <!-- Need a block-container for these features -->
+    <xsl:when test="@width != '' or
+                    (self::programlisting and
+                    starts-with($writing.mode, 'rl'))">
+      <fo:block-container start-indent="0pt" end-indent="0pt">
+        <xsl:if test="@width != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="concat(@width, '*', $monospace.verbatim.font.width)"/>
+          </xsl:attribute>
+        </xsl:if>
+        <!-- All known program code is left-to-right -->
+        <xsl:if test="self::programlisting and
+                      starts-with($writing.mode, 'rl')">
+          <xsl:attribute name="writing-mode">lr-tb</xsl:attribute>
+        </xsl:if>
+        <xsl:copy-of select="$block.content"/>
+      </fo:block-container>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$block.content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template match="literallayout">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:variable name="keep.together">
+    <xsl:call-template name="pi.dbfo_keep-together"/>
+  </xsl:variable>
+
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="$suppress-numbers = '0'
+                      and @linenumbering = 'numbered'
+                      and $use.extensions != '0'
+                      and $linenumbering.extension != '0'">
+        <xsl:call-template name="number.rtf.lines">
+          <xsl:with-param name="rtf">
+            <xsl:apply-templates/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@class='monospaced'">
+      <xsl:choose>
+        <xsl:when test="$shade.verbatim != 0">
+          <fo:block id="{$id}"
+                    xsl:use-attribute-sets="monospace.verbatim.properties shade.verbatim.style">
+	    <xsl:if test="$keep.together != ''">
+	      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+	      select="$keep.together"/></xsl:attribute>
+	    </xsl:if>
+            <xsl:copy-of select="$content"/>
+          </fo:block>
+        </xsl:when>
+        <xsl:otherwise>
+          <fo:block id="{$id}"
+                    xsl:use-attribute-sets="monospace.verbatim.properties">
+	    <xsl:if test="$keep.together != ''">
+	      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+	      select="$keep.together"/></xsl:attribute>
+	    </xsl:if>
+            <xsl:copy-of select="$content"/>
+          </fo:block>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$shade.verbatim != 0">
+          <fo:block id="{$id}"
+                    xsl:use-attribute-sets="verbatim.properties shade.verbatim.style">
+	    <xsl:if test="$keep.together != ''">
+	      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+	      select="$keep.together"/></xsl:attribute>
+	    </xsl:if>
+            <xsl:copy-of select="$content"/>
+          </fo:block>
+        </xsl:when>
+        <xsl:otherwise>
+          <fo:block id="{$id}"
+                    xsl:use-attribute-sets="verbatim.properties">
+	    <xsl:if test="$keep.together != ''">
+	      <xsl:attribute name="keep-together.within-column"><xsl:value-of
+	      select="$keep.together"/></xsl:attribute>
+	    </xsl:if>
+            <xsl:copy-of select="$content"/>
+          </fo:block>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="address">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="$suppress-numbers = '0'
+                      and @linenumbering = 'numbered'
+                      and $use.extensions != '0'
+                      and $linenumbering.extension != '0'">
+        <xsl:call-template name="number.rtf.lines">
+          <xsl:with-param name="rtf">
+            <xsl:apply-templates/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:block xsl:use-attribute-sets="verbatim.properties">
+    <xsl:copy-of select="$content"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template name="number.rtf.lines">
+  <xsl:param name="rtf" select="''"/>
+  <xsl:param name="pi.context" select="."/>
+
+  <!-- Save the global values -->
+  <xsl:variable name="global.linenumbering.everyNth"
+                select="$linenumbering.everyNth"/>
+
+  <xsl:variable name="global.linenumbering.separator"
+                select="$linenumbering.separator"/>
+
+  <xsl:variable name="global.linenumbering.width"
+                select="$linenumbering.width"/>
+
+  <!-- Extract the <?dbfo linenumbering.*?> PI values -->
+  <xsl:variable name="pi.linenumbering.everyNth">
+    <xsl:call-template name="pi.dbfo_linenumbering.everyNth">
+      <xsl:with-param name="node" select="$pi.context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="pi.linenumbering.separator">
+    <xsl:call-template name="pi.dbfo_linenumbering.separator">
+      <xsl:with-param name="node" select="$pi.context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="pi.linenumbering.width">
+    <xsl:call-template name="pi.dbfo_linenumbering.width">
+      <xsl:with-param name="node" select="$pi.context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Construct the 'in-context' values -->
+  <xsl:variable name="linenumbering.everyNth">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.everyNth != ''">
+        <xsl:value-of select="$pi.linenumbering.everyNth"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.everyNth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.separator">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.separator != ''">
+        <xsl:value-of select="$pi.linenumbering.separator"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.separator"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.width">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.width != ''">
+        <xsl:value-of select="$pi.linenumbering.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.startinglinenumber">
+    <xsl:choose>
+      <xsl:when test="$pi.context/@startinglinenumber">
+        <xsl:value-of select="$pi.context/@startinglinenumber"/>
+      </xsl:when>
+      <xsl:when test="$pi.context/@continuation='continues'">
+        <xsl:variable name="lastLine">
+          <xsl:choose>
+            <xsl:when test="$pi.context/self::programlisting">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings"
+                     select="preceding::programlisting[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::screen">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings"
+                     select="preceding::screen[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::literallayout">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings"
+                     select="preceding::literallayout[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::address">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings"
+                     select="preceding::address[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::synopsis">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings"
+                     select="preceding::synopsis[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message>
+                <xsl:text>Unexpected verbatim environment: </xsl:text>
+                <xsl:value-of select="local-name(.)"/>
+              </xsl:message>
+              <xsl:value-of select="0"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+
+        <xsl:value-of select="$lastLine + 1"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="function-available('sverb:numberLines')">
+      <xsl:copy-of select="sverb:numberLines($rtf)"/>
+    </xsl:when>
+    <xsl:when test="function-available('xverb:numberLines')">
+      <xsl:copy-of select="xverb:numberLines($rtf)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>No numberLines function available.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ======================================================================== -->
+
+<xsl:template name="lastLineNumber">
+  <xsl:param name="listings"/>
+  <xsl:param name="number" select="0"/>
+
+  <xsl:variable name="lines">
+    <xsl:call-template name="countLines">
+      <xsl:with-param name="listing" select="string($listings[1])"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not($listings)">
+      <xsl:value-of select="$number"/>
+    </xsl:when>
+    <xsl:when test="$listings[1]/@startinglinenumber">
+      <xsl:value-of select="$number + $listings[1]/@startinglinenumber + $lines - 1"/>
+    </xsl:when>
+    <xsl:when test="$listings[1]/@continuation='continues'">
+      <xsl:call-template name="lastLineNumber">
+        <xsl:with-param name="listings" select="listings[position() &gt; 1]"/>
+        <xsl:with-param name="number" select="$number + $lines"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$lines"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="countLines">
+  <xsl:param name="listing"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($listing, '&#10;')">
+      <xsl:call-template name="countLines">
+        <xsl:with-param name="listing" select="substring-after($listing, '&#10;')"/>
+        <xsl:with-param name="count" select="$count + 1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$count"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ======================================================================== -->
+
+<xsl:template match="node()|@*" mode="hyphenate.verbatim">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="hyphenate.verbatim"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()" mode="hyphenate.verbatim" priority="2">
+  <xsl:call-template name="hyphenate.verbatim.block">
+    <xsl:with-param name="content" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="hyphenate.verbatim.block">
+  <xsl:param name="content" select="''"/>
+  <xsl:param name="count" select="1"/>
+
+  <!-- recurse on lines first to keep recursion depth reasonable -->
+  <xsl:choose>
+    <xsl:when test="contains($content, '&#xA;')">
+      <xsl:variable name="line" select="substring-before($content, '&#xA;')"/>
+      <xsl:variable name="rest" select="substring-after($content, '&#xA;')"/>
+      <xsl:call-template name="hyphenate.verbatim">
+        <xsl:with-param name="content" select="concat($line, '&#xA;')"/>
+      </xsl:call-template>
+      <xsl:call-template name="hyphenate.verbatim.block">
+        <xsl:with-param name="content" select="$rest"/>
+        <xsl:with-param name="count" select="$count + 1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="hyphenate.verbatim">
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+  
+</xsl:template>
+
+<xsl:template name="hyphenate.verbatim">
+  <xsl:param name="content"/>
+  <xsl:variable name="head" select="substring($content, 1, 1)"/>
+  <xsl:variable name="tail" select="substring($content, 2)"/>
+  <xsl:choose>
+    <!-- Place soft-hyphen after space or non-breakable space. -->
+    <xsl:when test="$head = ' ' or $head = '&#160;'">
+      <xsl:text>&#160;</xsl:text>
+      <xsl:text>&#x00AD;</xsl:text>
+    </xsl:when>
+    <xsl:when test="$hyphenate.verbatim.characters != '' and
+                    translate($head, $hyphenate.verbatim.characters, '') = '' and not($tail = '')">
+      <xsl:value-of select="$head"/>
+      <xsl:text>&#x00AD;</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$head"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="$tail">
+    <xsl:call-template name="hyphenate.verbatim">
+      <xsl:with-param name="content" select="$tail"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/xep.xsl b/applications/content/template/docbook/fo/xep.xsl
new file mode 100644
index 0000000..782ab37
--- /dev/null
+++ b/applications/content/template/docbook/fo/xep.xsl
@@ -0,0 +1,183 @@
+<?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$
+     ********************************************************************
+     (c) Stephane Bline Peregrine Systems 2001
+     Implementation of xep extensions:
+       * Pdf bookmarks (based on the XEP 2.5 implementation)
+       * Document information (XEP 2.5 meta information extensions)
+     ******************************************************************** -->
+
+<!-- FIXME: Norm, I changed things so that the top-level element (book or set)
+     does not appear in the TOC. Is this the right thing? -->
+
+<xsl:template name="xep-document-information">
+  <rx:meta-info>
+    <xsl:variable name="authors" 
+                  select="(//author|//editor|//corpauthor|//authorgroup)[1]"/>
+    <xsl:if test="$authors">
+      <xsl:variable name="author">
+        <xsl:choose>
+          <xsl:when test="$authors[self::authorgroup]">
+            <xsl:call-template name="person.name.list">
+              <xsl:with-param name="person.list" 
+                        select="$authors/*[self::author|self::corpauthor|
+                               self::othercredit|self::editor]"/>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:when test="$authors[self::corpauthor]">
+            <xsl:value-of select="$authors"/>
+          </xsl:when>
+          <xsl:when test="$authors[orgname]">
+            <xsl:value-of select="$authors/orgname"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="person.name">
+              <xsl:with-param name="node" select="$authors"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+      <xsl:element name="rx:meta-field">
+        <xsl:attribute name="name">author</xsl:attribute>
+        <xsl:attribute name="value">
+          <xsl:value-of select="normalize-space($author)"/>
+        </xsl:attribute>
+      </xsl:element>
+    </xsl:if>
+
+    <xsl:variable name="title">
+      <xsl:apply-templates select="/*[1]" mode="label.markup"/>
+      <xsl:apply-templates select="/*[1]" mode="title.markup"/>
+    </xsl:variable>
+
+    <xsl:element name="rx:meta-field">
+      <xsl:attribute name="name">creator</xsl:attribute>
+      <xsl:attribute name="value">
+        <xsl:text>DocBook </xsl:text>
+        <xsl:value-of select="$DistroTitle"/>
+        <xsl:text> V</xsl:text>
+        <xsl:value-of select="$VERSION"/>
+      </xsl:attribute>
+    </xsl:element>
+
+    <xsl:element name="rx:meta-field">
+      <xsl:attribute name="name">title</xsl:attribute>
+      <xsl:attribute name="value">
+        <xsl:value-of select="normalize-space($title)"/>
+      </xsl:attribute>
+    </xsl:element>
+
+    <xsl:if test="//keyword">
+      <xsl:element name="rx:meta-field">
+        <xsl:attribute name="name">keywords</xsl:attribute>
+        <xsl:attribute name="value">
+          <xsl:for-each select="//keyword">
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:if test="position() != last()">
+              <xsl:text>, </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </xsl:element>
+    </xsl:if>
+
+    <xsl:if test="//subjectterm">
+      <xsl:element name="rx:meta-field">
+        <xsl:attribute name="name">subject</xsl:attribute>
+        <xsl:attribute name="value">
+          <xsl:for-each select="//subjectterm">
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:if test="position() != last()">
+              <xsl:text>, </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </xsl:element>
+    </xsl:if>
+  </rx:meta-info>
+</xsl:template>
+
+<!-- ********************************************************************
+     Pdf bookmarks
+     ******************************************************************** -->
+
+<xsl:template match="*" mode="xep.outline">
+  <xsl:apply-templates select="*" mode="xep.outline"/>
+</xsl:template>
+
+<xsl:template match="set|book|part|reference|preface|chapter|appendix|article
+                     |glossary|bibliography|index|setindex|topic
+                     |refentry|refsynopsisdiv
+                     |refsect1|refsect2|refsect3|refsection
+                     |sect1|sect2|sect3|sect4|sect5|section"
+              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="self::index and $generate.index = 0"/>	
+    <xsl:when test="parent::*">
+      <rx:bookmark internal-destination="{$id}">
+        <rx:bookmark-label>
+          <xsl:value-of select="normalize-space($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="normalize-space($bookmark-label)"/>
+          </rx:bookmark-label>
+        </rx:bookmark>
+      </xsl:if>
+
+      <xsl:variable name="toc.params">
+        <xsl:call-template name="find.path.params">
+          <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:if test="contains($toc.params, 'toc')
+                    and set|book|part|reference|section|sect1|refentry
+                        |article|topic|bibliography|glossary|chapter
+                        |appendix">
+        <rx:bookmark internal-destination="toc...{$id}">
+          <rx:bookmark-label>
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'TableofContents'"/>
+            </xsl:call-template>
+          </rx:bookmark-label>
+        </rx:bookmark>
+      </xsl:if>
+      <xsl:apply-templates select="*" mode="xep.outline"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xep-pis">
+  <xsl:if test="$crop.marks != 0">
+    <xsl:processing-instruction name="xep-pdf-crop-mark-width"><xsl:value-of select="$crop.mark.width"/></xsl:processing-instruction>
+    <xsl:processing-instruction name="xep-pdf-crop-offset"><xsl:value-of select="$crop.mark.offset"/></xsl:processing-instruction>
+    <xsl:processing-instruction name="xep-pdf-bleed"><xsl:value-of select="$crop.mark.bleed"/></xsl:processing-instruction>
+  </xsl:if>
+
+  <xsl:call-template name="user-xep-pis"/>
+</xsl:template>
+
+<!-- Placeholder for user defined PIs -->
+<xsl:template name="user-xep-pis"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/fo/xref.xsl b/applications/content/template/docbook/fo/xref.xsl
new file mode 100644
index 0000000..62cd2f2
--- /dev/null
+++ b/applications/content/template/docbook/fo/xref.xsl
@@ -0,0 +1,1565 @@
+<?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:exsl="http://exslt.org/common"
+                xmlns:xlink='http://www.w3.org/1999/xlink'
+                exclude-result-prefixes="exsl xlink"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- Use internal variable for olink xlink role for consistency -->
+<xsl:variable 
+      name="xolink.role">http://docbook.org/xlink/role/olink</xsl:variable>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="anchor">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="wrapper.name">
+    <xsl:call-template name="inline.or.block"/>
+  </xsl:variable>
+
+  <xsl:element name="{$wrapper.name}">
+    <xsl:attribute name="id">
+      <xsl:value-of select="$id"/>
+    </xsl:attribute>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="xref" name="xref">
+  <xsl:param name="xhref" select="@xlink:href"/>
+  <!-- is the @xlink:href a local idref link? -->
+  <xsl:param name="xlink.idref">
+    <xsl:if test="starts-with($xhref,'#')
+                  and (not(contains($xhref,'&#40;'))
+                  or starts-with($xhref, '#xpointer&#40;id&#40;'))">
+      <xsl:call-template name="xpointer.idref">
+        <xsl:with-param name="xpointer" select="$xhref"/>
+      </xsl:call-template>
+   </xsl:if>
+  </xsl:param>
+  <xsl:param name="xlink.targets" select="key('id',$xlink.idref)"/>
+  <xsl:param name="linkend.targets" select="key('id',@linkend)"/>
+  <xsl:param name="target" select="($xlink.targets | $linkend.targets)[1]"/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:variable name="xrefstyle">
+    <xsl:choose>
+      <xsl:when test="@role and not(@xrefstyle) 
+                      and $use.role.as.xrefstyle != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@xrefstyle"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="content">
+    <fo:inline xsl:use-attribute-sets="xref.properties">
+      <xsl:choose>
+        <xsl:when test="@endterm">
+          <xsl:variable name="etargets" select="key('id',@endterm)"/>
+          <xsl:variable name="etarget" select="$etargets[1]"/>
+          <xsl:choose>
+            <xsl:when test="count($etarget) = 0">
+              <xsl:message>
+                <xsl:value-of select="count($etargets)"/>
+                <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+                <xsl:value-of select="@endterm"/>
+              </xsl:message>
+              <xsl:text>???</xsl:text>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="$etarget" mode="endterm"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+  
+        <xsl:when test="$target/@xreflabel">
+          <xsl:call-template name="xref.xreflabel">
+            <xsl:with-param name="target" select="$target"/>
+          </xsl:call-template>
+        </xsl:when>
+  
+        <xsl:when test="$target">
+          <xsl:if test="not(parent::citation)">
+            <xsl:apply-templates select="$target" mode="xref-to-prefix"/>
+          </xsl:if>
+  
+          <xsl:apply-templates select="$target" mode="xref-to">
+            <xsl:with-param name="referrer" select="."/>
+            <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+          </xsl:apply-templates>
+  
+          <xsl:if test="not(parent::citation)">
+            <xsl:apply-templates select="$target" mode="xref-to-suffix"/>
+          </xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>ERROR: xref linking to </xsl:text>
+            <xsl:value-of select="@linkend|@xlink:href"/>
+            <xsl:text> has no generated link text.</xsl:text>
+          </xsl:message>
+          <xsl:text>???</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </fo:inline>
+  </xsl:variable>
+
+  <!-- Convert it into an active link -->
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+
+  <!-- Add standard page reference? -->
+  <xsl:choose>
+    <xsl:when test="not($target)">
+      <!-- page numbers only for local targets -->
+    </xsl:when>
+    <xsl:when test="starts-with(normalize-space($xrefstyle), 'select:') 
+                  and contains($xrefstyle, 'nopage')">
+      <!-- negative xrefstyle in instance turns it off -->
+    </xsl:when>
+    <!-- positive xrefstyle already handles it -->
+    <xsl:when test="not(starts-with(normalize-space($xrefstyle), 'select:') 
+                  and (contains($xrefstyle, 'page')
+                       or contains($xrefstyle, 'Page')))
+                  and ( $insert.xref.page.number = 'yes' 
+                     or $insert.xref.page.number = '1')
+                  or (local-name($target) = 'para' and
+		      $xrefstyle = '')">
+      <xsl:apply-templates select="$target" mode="page.citation">
+        <xsl:with-param name="id" select="$target/@id|$target/@xml:id"/>
+      </xsl:apply-templates>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- Handled largely like an xref -->
+<!-- To be done: add support for begin, end, and units attributes -->
+<xsl:template match="biblioref" name="biblioref">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:choose>
+    <xsl:when test="$refelem=''">
+      <xsl:message>
+        <xsl:text>XRef to nonexistent id: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+      </xsl:message>
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+
+    <xsl:when test="@endterm">
+      <fo:basic-link internal-destination="{@linkend}"
+                     xsl:use-attribute-sets="xref.properties">
+        <xsl:variable name="etargets" select="key('id',@endterm)"/>
+        <xsl:variable name="etarget" select="$etargets[1]"/>
+        <xsl:choose>
+          <xsl:when test="count($etarget) = 0">
+            <xsl:message>
+              <xsl:value-of select="count($etargets)"/>
+              <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+              <xsl:value-of select="@endterm"/>
+            </xsl:message>
+            <xsl:text>???</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="$etarget" mode="endterm"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </fo:basic-link>
+    </xsl:when>
+
+    <xsl:when test="$target/@xreflabel">
+      <fo:basic-link internal-destination="{@linkend}"
+                     xsl:use-attribute-sets="xref.properties">
+        <xsl:call-template name="xref.xreflabel">
+          <xsl:with-param name="target" select="$target"/>
+        </xsl:call-template>
+      </fo:basic-link>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:if test="not(parent::citation)">
+        <xsl:apply-templates select="$target" mode="xref-to-prefix"/>
+      </xsl:if>
+
+      <fo:basic-link internal-destination="{@linkend}"
+                     xsl:use-attribute-sets="xref.properties">
+        <xsl:apply-templates select="$target" mode="xref-to">
+          <xsl:with-param name="referrer" select="."/>
+          <xsl:with-param name="xrefstyle">
+            <xsl:choose>
+              <xsl:when test="@role and not(@xrefstyle) and $use.role.as.xrefstyle != 0">
+                <xsl:value-of select="@role"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="@xrefstyle"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:apply-templates>
+      </fo:basic-link>
+
+      <xsl:if test="not(parent::citation)">
+        <xsl:apply-templates select="$target" mode="xref-to-suffix"/>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="endterm">
+  <!-- Process the children of the endterm element -->
+  <xsl:variable name="endterm">
+    <xsl:apply-templates select="child::node()"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:apply-templates select="exsl:node-set($endterm)" mode="remove-ids"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$endterm"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="remove-ids">
+  <xsl:copy>
+    <xsl:for-each select="@*">
+      <xsl:choose>
+        <xsl:when test="name(.) != 'id'">
+          <xsl:copy/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>removing <xsl:value-of select="name(.)"/></xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+    <xsl:apply-templates mode="remove-ids"/>
+  </xsl:copy>
+</xsl:template>
+
+<!--- ==================================================================== -->
+
+<xsl:template match="*" mode="xref-to-prefix"/>
+<xsl:template match="*" mode="xref-to-suffix"/>
+
+<xsl:template match="*" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+
+  <xsl:if test="$verbose != 0">
+    <xsl:message>
+      <xsl:text>Don't know what gentext to create for xref to: "</xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:text>"</xsl:text>
+    </xsl:message>
+    <xsl:text>???</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="title" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <!-- if you xref to a title, xref to the parent... -->
+  <xsl:choose>
+    <!-- FIXME: how reliable is this? -->
+    <xsl:when test="contains(local-name(parent::*), 'info')">
+      <xsl:apply-templates select="parent::*[2]" mode="xref-to">
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="parent::*" mode="xref-to">
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="abstract|article|authorblurb|bibliodiv|bibliomset
+                     |biblioset|blockquote|calloutlist|caution|colophon
+                     |constraintdef|formalpara|glossdiv|important|indexdiv
+                     |itemizedlist|legalnotice|lot|msg|msgexplan|msgmain
+                     |msgrel|msgset|msgsub|note|orderedlist|partintro
+                     |productionset|qandadiv|refsynopsisdiv|segmentedlist
+                     |set|setindex|sidebar|tip|toc|variablelist|warning"
+              mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <!-- catch-all for things with (possibly optional) titles -->
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="author|editor|othercredit|personname" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:call-template name="person.name.list"/>
+</xsl:template>
+
+<xsl:template match="figure|example|table|equation" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="procedure" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="task" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="(.//command)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="(.//function)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="dedication|acknowledgements|preface|chapter|appendix" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to-prefix">
+  <xsl:text>[</xsl:text>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to-suffix">
+  <xsl:text>]</xsl:text>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <!-- handles both biblioentry and bibliomixed -->
+  <xsl:choose>
+    <xsl:when test="string(.) = ''">
+      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+      <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
+      <xsl:variable name="entry" select="$bib/bibliography/
+                                         *[@id=$id or @xml:id=$id][1]"/>
+      <xsl:choose>
+        <xsl:when test="$entry">
+          <xsl:choose>
+            <xsl:when test="$bibliography.numbered != 0">
+              <xsl:number from="bibliography" count="biblioentry|bibliomixed"
+                          level="any" format="1"/>
+            </xsl:when>
+            <xsl:when test="local-name($entry/*[1]) = 'abbrev'">
+              <xsl:apply-templates select="$entry/*[1]"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="(@id|@xml:id)[1]"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>No bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </xsl:message>
+          <xsl:value-of select="(@id|@xml:id)[1]"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$bibliography.numbered != 0">
+          <xsl:number from="bibliography" count="biblioentry|bibliomixed"
+                      level="any" format="1"/>
+        </xsl:when>
+        <xsl:when test="local-name(*[1]) = 'abbrev'">
+          <xsl:apply-templates select="*[1]"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="(@id|@xml:id)[1]"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossary" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="glossentry" mode="xref-to">
+  <xsl:choose>
+    <xsl:when test="$glossentry.show.acronym = 'primary'">
+      <xsl:choose>
+        <xsl:when test="acronym|abbrev">
+          <xsl:apply-templates select="(acronym|abbrev)[1]"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="glossterm[1]" mode="xref-to"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="glossterm[1]" mode="xref-to"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossterm|firstterm" mode="xref-to">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="index" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="listitem" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="section|simplesect
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3|refsection" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+  <!-- What about "in Chapter X"? -->
+</xsl:template>
+
+<xsl:template match="topic" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+  <!-- What about "in Chapter X"? -->
+</xsl:template>
+
+<xsl:template match="qandaset" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="question[1]" mode="xref-to">
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="question|answer" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="string-length(label) != 0">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <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:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="part|reference" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="refmeta/refentrytitle">
+      <xsl:apply-templates select="refmeta/refentrytitle"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="refnamediv/refname[1]"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates select="refmeta/manvolnum"/>
+</xsl:template>
+
+<xsl:template match="refnamediv" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="refname[1]" mode="xref-to">
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refname" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates mode="xref-to">
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="step" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Step'"/>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="." mode="number"/>
+</xsl:template>
+
+<xsl:template match="varlistentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="term[1]" mode="xref-to">
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="varlistentry/term" mode="xref-to">
+  <xsl:param name="verbose" select="1"/>
+  <!-- to avoid the comma that will be generated if there are several terms -->
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="." mode="callout-bug"/>
+</xsl:template>
+
+<xsl:template match="area|areaset" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="callout-bug">
+    <xsl:with-param name="conum">
+      <xsl:apply-templates select="." mode="conumber"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="book" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- These are elements for which no link text exists, so an xref to one
+     uses the xrefstyle attribute if specified, or if not it falls back
+     to the container element's link text -->
+<xsl:template match="para|phrase|simpara|anchor|quote" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose"/>
+
+  <xsl:variable name="context" select="(ancestor::simplesect
+                                       |ancestor::section
+                                       |ancestor::sect1
+                                       |ancestor::sect2
+                                       |ancestor::sect3
+                                       |ancestor::sect4
+                                       |ancestor::sect5
+                                       |ancestor::topic
+                                       |ancestor::refsection
+                                       |ancestor::refsect1
+                                       |ancestor::refsect2
+                                       |ancestor::refsect3
+                                       |ancestor::chapter
+                                       |ancestor::appendix
+                                       |ancestor::preface
+                                       |ancestor::partintro
+                                       |ancestor::dedication
+                                       |ancestor::acknowledgements
+                                       |ancestor::colophon
+                                       |ancestor::bibliography
+                                       |ancestor::index
+                                       |ancestor::glossary
+                                       |ancestor::glossentry
+                                       |ancestor::listitem
+                                       |ancestor::varlistentry)[last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="$xrefstyle != ''">
+      <xsl:apply-templates select="." mode="object.xref.markup">
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$verbose != 0">
+        <xsl:message>
+          <xsl:text>WARNING: xref to &lt;</xsl:text>
+          <xsl:value-of select="local-name()"/>
+          <xsl:text> id="</xsl:text>
+          <xsl:value-of select="@id|@xml:id"/>
+          <xsl:text>"&gt; has no generated text. Trying its ancestor elements.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+      <xsl:apply-templates select="$context" mode="xref-to">
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="xref-to">
+  <xsl:value-of select="primary"/>
+</xsl:template>
+
+<xsl:template match="primary|secondary|tertiary" mode="xref-to">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="link" name="link">
+  <xsl:param name="linkend" select="@linkend"/>
+  <xsl:param name="targets" select="key('id',$linkend)"/>
+  <xsl:param name="target" select="$targets[1]"/>
+
+  <xsl:variable name="xrefstyle">
+    <xsl:choose>
+      <xsl:when test="@role and not(@xrefstyle) 
+                      and $use.role.as.xrefstyle != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@xrefstyle"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="content">
+    <fo:inline xsl:use-attribute-sets="xref.properties">
+      <xsl:choose>
+        <xsl:when test="count(child::node()) &gt; 0">
+          <!-- If it has content, use it -->
+          <xsl:apply-templates/>
+        </xsl:when>
+        <!-- look for an endterm -->
+        <xsl:when test="@endterm">
+          <xsl:variable name="etargets" select="key('id',@endterm)"/>
+          <xsl:variable name="etarget" select="$etargets[1]"/>
+          <xsl:choose>
+            <xsl:when test="count($etarget) = 0">
+              <xsl:message>
+                <xsl:value-of select="count($etargets)"/>
+                <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+                <xsl:value-of select="@endterm"/>
+              </xsl:message>
+              <xsl:text>???</xsl:text>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:apply-templates select="$etarget" mode="endterm"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <!-- Use the xlink:href if no other text -->
+        <xsl:when test="@xlink:href">
+	  <fo:inline hyphenate="false">
+	    <xsl:call-template name="hyphenate-url">
+	      <xsl:with-param name="url" select="@xlink:href"/>
+	    </xsl:call-template>
+	  </fo:inline>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>Link element has no content and no Endterm. </xsl:text>
+            <xsl:text>Nothing to show in the link to </xsl:text>
+            <xsl:value-of select="$target"/>
+          </xsl:message>
+          <xsl:text>???</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </fo:inline>
+  </xsl:variable>
+
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="node" select="."/>
+    <xsl:with-param name="linkend" select="$linkend"/>
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+
+  <!-- Add standard page reference? -->
+  <xsl:choose>
+    <!-- page numbering on link only enabled for @linkend -->
+    <!-- There is no link element in DB5 with xlink:href -->
+    <xsl:when test="not($linkend)">
+    </xsl:when>
+    <!-- negative xrefstyle in instance turns it off -->
+    <xsl:when test="starts-with(normalize-space($xrefstyle), 'select:') 
+                  and contains($xrefstyle, 'nopage')">
+    </xsl:when>
+    <xsl:when test="(starts-with(normalize-space($xrefstyle), 'select:') 
+                  and $insert.link.page.number = 'maybe'  
+                  and (contains($xrefstyle, 'page')
+                       or contains($xrefstyle, 'Page')))
+                  or ( $insert.link.page.number = 'yes' 
+                     or $insert.link.page.number = '1')
+                  or local-name($target) = 'para'">
+      <xsl:apply-templates select="$target" mode="page.citation">
+        <xsl:with-param name="id" select="$linkend"/>
+      </xsl:apply-templates>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="ulink" name="ulink">
+  <xsl:param name="url" select="@url"/>
+
+  <xsl:variable name ="ulink.url">
+    <xsl:call-template name="fo-external-image">
+      <xsl:with-param name="filename" select="$url"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <fo:basic-link xsl:use-attribute-sets="xref.properties"
+                 external-destination="{$ulink.url}">
+    <xsl:choose>
+      <xsl:when test="count(child::node())=0 or (string(.) = $url)">
+	<fo:inline hyphenate="false">
+	  <xsl:call-template name="hyphenate-url">
+	    <xsl:with-param name="url" select="$url"/>
+	  </xsl:call-template>
+	</fo:inline>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:basic-link>
+  <!-- * Call the template for determining whether the URL for this -->
+  <!-- * hyperlink is displayed, and how to display it (either inline or -->
+  <!-- * as a numbered footnote). -->
+  <xsl:call-template name="hyperlink.url.display">
+    <xsl:with-param name="url" select="$url"/>
+    <xsl:with-param name="ulink.url" select="$ulink.url"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="hyperlink.url.display">
+  <!-- * This template is called for all external hyperlinks (ulinks and -->
+  <!-- * for all simple xlinks); it determines whether the URL for the -->
+  <!-- * hyperlink is displayed, and how to display it (either inline or -->
+  <!-- * as a numbered footnote). -->
+  <xsl:param name="url"/>
+  <xsl:param name="ulink.url">
+    <!-- * ulink.url is just the value of the URL wrapped in 'url(...)' -->
+    <xsl:call-template name="fo-external-image">
+      <xsl:with-param name="filename" select="$url"/>
+    </xsl:call-template>
+  </xsl:param>
+
+  <xsl:if test="count(child::node()) != 0
+                and string(.) != $url
+                and $ulink.show != 0">
+    <!-- * Display the URL for this hyperlink only if it is non-empty, -->
+    <!-- * and the value of its content is not a URL that is the same as -->
+    <!-- * URL it links to, and if ulink.show is non-zero. -->
+    <xsl:choose>
+      <xsl:when test="$ulink.footnotes != 0 and not(ancestor::footnote)">
+        <!-- * ulink.show and ulink.footnote are both non-zero; that -->
+        <!-- * means we display the URL as a footnote (instead of inline) -->
+        <fo:footnote>
+          <xsl:call-template name="ulink.footnote.number"/>
+          <fo:footnote-body xsl:use-attribute-sets="footnote.properties">
+            <fo:block>
+              <xsl:call-template name="ulink.footnote.number"/>
+              <xsl:text> </xsl:text>
+              <fo:basic-link external-destination="{$ulink.url}">
+                <xsl:value-of select="$url"/>
+              </fo:basic-link>
+            </fo:block>
+          </fo:footnote-body>
+        </fo:footnote>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * ulink.show is non-zero, but ulink.footnote is not; that -->
+        <!-- * means we display the URL inline -->
+        <fo:inline hyphenate="false">
+          <!-- * put square brackets around the URL -->
+          <xsl:text> [</xsl:text>
+          <fo:basic-link external-destination="{$ulink.url}">
+            <xsl:call-template name="hyphenate-url">
+              <xsl:with-param name="url" select="$url"/>
+            </xsl:call-template>
+          </fo:basic-link>
+          <xsl:text>]</xsl:text>
+        </fo:inline>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+
+</xsl:template>
+
+<xsl:template name="ulink.footnote.number">
+  <fo:inline xsl:use-attribute-sets="footnote.mark.properties">
+    <xsl:choose>
+      <xsl:when test="$fop.extensions != 0">
+        <xsl:attribute name="vertical-align">super</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:attribute name="baseline-shift">super</xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:variable name="fnum">
+      <!-- * Determine the footnote number to display for this hyperlink, -->
+      <!-- * by counting all foonotes, ulinks, and any elements that have -->
+      <!-- * an xlink:href attribute that meets the following criteria: -->
+      <!-- * -->
+      <!-- * - the content of the element is not a URI that is the same -->
+      <!-- *   URI as the value of the href attribute -->
+      <!-- * - the href attribute is not an internal ID reference (does -->
+      <!-- *   not start with a hash sign) -->
+      <!-- * - the href is not part of an olink reference (the element -->
+      <!-- * - does not have an xlink:role attribute that indicates it is -->
+      <!-- *   an olink, and the href does not contain a hash sign) -->
+      <!-- * - the element either has no xlink:type attribute or has -->
+      <!-- *   an xlink:type attribute whose value is 'simple' -->
+      <!-- FIXME: list in @from is probably not complete -->
+      <xsl:number level="any" 
+                  from="chapter|appendix|preface|article|refentry|bibliography[not(parent::article)]"
+                  count="footnote[not(@label)][not(ancestor::tgroup)]
+                  |ulink[node()][@url != .][not(ancestor::footnote)]
+                  |*[node()][@xlink:href][not(@xlink:href = .)][not(starts-with(@xlink:href,'#'))]
+                    [not(contains(@xlink:href,'#') and @xlink:role = $xolink.role)]
+                    [not(@xlink:type) or @xlink:type='simple']
+                    [not(ancestor::footnote)]"
+                  format="1"/>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="string-length($footnote.number.symbols) &gt;= $fnum">
+        <xsl:value-of select="substring($footnote.number.symbols, $fnum, 1)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:number value="$fnum" format="{$footnote.number.format}"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="hyphenate-url">
+  <xsl:param name="url" select="''"/>
+  <xsl:choose>
+    <xsl:when test="$ulink.hyphenate = ''">
+      <xsl:value-of select="$url"/>
+    </xsl:when>
+    <xsl:when test="string-length($url) &gt; 1">
+      <xsl:variable name="char" select="substring($url, 1, 1)"/>
+      <xsl:value-of select="$char"/>
+      <xsl:if test="contains($ulink.hyphenate.chars, $char)">
+        <!-- Do not hyphen in-between // -->
+        <xsl:if test="not($char = '/' and substring($url,2,1) = '/')">
+          <xsl:copy-of select="$ulink.hyphenate"/>
+        </xsl:if>
+      </xsl:if>
+      <!-- recurse to the next character -->
+      <xsl:call-template name="hyphenate-url">
+        <xsl:with-param name="url" select="substring($url, 2)"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$url"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="olink" name="olink">
+  <!-- olink content may be passed in from xlink olink -->
+  <xsl:param name="content" select="NOTANELEMENT"/>
+
+  <xsl:variable name="localinfo" select="@localinfo"/>
+
+  <xsl:choose>
+    <!-- olinks resolved by stylesheet and target database -->
+    <xsl:when test="@targetdoc or @targetptr or
+                    (@xlink:role=$xolink.role and
+                     contains(@xlink:href, '#') )" >
+
+      <xsl:variable name="targetdoc.att">
+        <xsl:choose>
+          <xsl:when test="@targetdoc != ''">
+            <xsl:value-of select="@targetdoc"/>
+          </xsl:when>
+          <xsl:when test="@xlink:role=$xolink.role and
+                       contains(@xlink:href, '#')" >
+            <xsl:value-of select="substring-before(@xlink:href, '#')"/>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="targetptr.att">
+        <xsl:choose>
+          <xsl:when test="@targetptr != ''">
+            <xsl:value-of select="@targetptr"/>
+          </xsl:when>
+          <xsl:when test="@xlink:role=$xolink.role and
+                       contains(@xlink:href, '#')" >
+            <xsl:value-of select="substring-after(@xlink:href, '#')"/>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="olink.lang">
+        <xsl:call-template name="l10n.language">
+          <xsl:with-param name="xref-context" select="true()"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:variable name="target.database.filename">
+        <xsl:call-template name="select.target.database">
+          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+          <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:variable name="target.database" 
+          select="document($target.database.filename, /)"/>
+    
+      <xsl:if test="$olink.debug != 0">
+        <xsl:message>
+          <xsl:text>Olink debug: root element of target.database is '</xsl:text>
+          <xsl:value-of select="local-name($target.database/*[1])"/>
+          <xsl:text>'.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+    
+      <xsl:variable name="olink.key">
+        <xsl:call-template name="select.olink.key">
+          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+          <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:if test="string-length($olink.key) = 0">
+        <xsl:message>
+          <xsl:text>Error: unresolved olink: </xsl:text>
+          <xsl:text>targetdoc/targetptr = '</xsl:text>
+          <xsl:value-of select="$targetdoc.att"/>
+          <xsl:text>/</xsl:text>
+          <xsl:value-of select="$targetptr.att"/>
+          <xsl:text>'.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+
+      <xsl:variable name="href">
+        <xsl:call-template name="make.olink.href">
+          <xsl:with-param name="olink.key" select="$olink.key"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <!-- Olink that points to internal id can be a link -->
+      <xsl:variable name="linkend">
+        <xsl:call-template name="olink.as.linkend">
+          <xsl:with-param name="olink.key" select="$olink.key"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="hottext">
+        <xsl:choose>
+          <xsl:when test="string-length($content) != 0">
+            <xsl:copy-of select="$content"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="olink.hottext">
+              <xsl:with-param name="olink.key" select="$olink.key"/>
+              <xsl:with-param name="olink.lang" select="$olink.lang"/>
+              <xsl:with-param name="target.database" select="$target.database"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="olink.docname.citation">
+        <xsl:call-template name="olink.document.citation">
+          <xsl:with-param name="olink.key" select="$olink.key"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="olink.page.citation">
+        <xsl:call-template name="olink.page.citation">
+          <xsl:with-param name="olink.key" select="$olink.key"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+          <xsl:with-param name="linkend" select="$linkend"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$linkend != ''">
+          <fo:basic-link internal-destination="{$linkend}"
+                       xsl:use-attribute-sets="xref.properties">
+            <xsl:call-template name="anchor"/>
+            <xsl:copy-of select="$hottext"/>
+            <xsl:copy-of select="$olink.page.citation"/>
+          </fo:basic-link>
+        </xsl:when>
+        <xsl:when test="$href != ''">
+          <xsl:choose>
+            <xsl:when test="$fop1.extensions != 0">
+              <xsl:variable name="mybeg" select="substring-before($href,'#')"/>
+              <xsl:variable name="myend" select="substring-after($href,'#')"/>
+              <fo:basic-link external-destination="url({concat($mybeg,'#dest=',$myend)})"
+                             xsl:use-attribute-sets="olink.properties">
+                <xsl:copy-of select="$hottext"/>
+              </fo:basic-link>
+              <xsl:copy-of select="$olink.page.citation"/>
+              <xsl:copy-of select="$olink.docname.citation"/>
+            </xsl:when>
+            <xsl:when test="$xep.extensions != 0">
+              <fo:basic-link external-destination="url({$href})"
+                             xsl:use-attribute-sets="olink.properties">
+                <xsl:call-template name="anchor"/>
+                <xsl:copy-of select="$hottext"/>
+              </fo:basic-link>
+              <xsl:copy-of select="$olink.page.citation"/>
+              <xsl:copy-of select="$olink.docname.citation"/>
+            </xsl:when>
+            <xsl:when test="$axf.extensions != 0">
+              <fo:basic-link external-destination="{$href}"
+                             xsl:use-attribute-sets="olink.properties">
+                <xsl:copy-of select="$hottext"/>
+              </fo:basic-link>
+              <xsl:copy-of select="$olink.page.citation"/>
+              <xsl:copy-of select="$olink.docname.citation"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <fo:basic-link external-destination="{$href}"
+                             xsl:use-attribute-sets="olink.properties">
+                <xsl:copy-of select="$hottext"/>
+              </fo:basic-link>
+              <xsl:copy-of select="$olink.page.citation"/>
+              <xsl:copy-of select="$olink.docname.citation"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:copy-of select="$hottext"/>
+          <xsl:copy-of select="$olink.page.citation"/>
+          <xsl:copy-of select="$olink.docname.citation"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <!-- olink never implemented in FO for old olink entity syntax -->
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.olink.docname.markup">
+  <xsl:param name="docname" select="''"/>
+  
+  <fo:inline font-style="italic">
+    <xsl:value-of select="$docname"/>
+  </fo:inline>
+
+</xsl:template>
+
+<!-- This prevents error message when processing olinks with xrefstyle -->
+<xsl:template match="olink" mode="object.xref.template"/>
+
+
+<xsl:template name="olink.as.linkend">
+  <xsl:param name="olink.key" select="''"/>
+  <xsl:param name="olink.lang" select="''"/>
+  <xsl:param name="target.database" select="NotANode"/>
+
+  <xsl:variable name="targetdoc">
+    <xsl:value-of select="substring-before($olink.key, '/')"/>
+  </xsl:variable>
+
+  <xsl:variable name="targetptr">
+    <xsl:value-of 
+       select="substring-before(substring-after($olink.key, '/'), '/')"/>
+  </xsl:variable>
+
+  <xsl:variable name="target.lang">
+    <xsl:variable name="candidate">
+      <xsl:for-each select="$target.database" >
+        <xsl:value-of 
+                  select="key('targetptr-key', $olink.key)[1]/@lang" />
+      </xsl:for-each>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$candidate != ''">
+        <xsl:value-of select="$candidate"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$olink.lang"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="$current.docid = $targetdoc and 
+                $olink.lang = $target.lang">
+    <xsl:variable name="targets" select="key('id',$targetptr)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+    <xsl:if test="$target">
+      <xsl:value-of select="$targetptr"/>
+    </xsl:if>
+  </xsl:if>
+
+</xsl:template>
+
+
+<xsl:template name="olink.outline">
+  <xsl:param name="outline.base.uri"/>
+  <xsl:param name="localinfo"/>
+  <xsl:param name="return" select="href"/>
+
+  <xsl:message terminate="yes">Fatal error: olink.outline template: what is this supposed to do?</xsl:message>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="title.xref">
+  <xsl:param name="target" select="."/>
+  <xsl:choose>
+    <xsl:when test="local-name($target) = 'figure'
+                    or local-name($target) = 'example'
+                    or local-name($target) = 'equation'
+                    or local-name($target) = 'table'
+                    or local-name($target) = 'dedication'
+                    or local-name($target) = 'acknowledgements'
+                    or local-name($target) = 'preface'
+                    or local-name($target) = 'bibliography'
+                    or local-name($target) = 'glossary'
+                    or local-name($target) = 'index'
+                    or local-name($target) = 'setindex'
+                    or local-name($target) = 'colophon'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:apply-templates select="$target" mode="title.markup"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:inline font-style="italic">
+        <xsl:apply-templates select="$target" mode="title.markup"/>
+      </fo:inline>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="number.xref">
+  <xsl:param name="target" select="."/>
+  <xsl:apply-templates select="$target" mode="label.markup"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="xref.xreflabel">
+  <!-- called to process an xreflabel...you might use this to make  -->
+  <!-- xreflabels come out in the right font for different targets, -->
+  <!-- for example. -->
+  <xsl:param name="target" select="."/>
+  <xsl:value-of select="$target/@xreflabel"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="title" mode="xref">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="command" mode="xref">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="function" mode="xref">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="*" mode="page.citation">
+  <xsl:param name="id" select="'???'"/>
+
+  <fo:basic-link internal-destination="{$id}"
+                 xsl:use-attribute-sets="xref.properties">
+    <fo:inline keep-together.within-line="always">
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="template">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="name" select="'page.citation'"/>
+            <xsl:with-param name="context" select="'xref'"/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+    </fo:inline>
+  </fo:basic-link>
+</xsl:template>
+
+<xsl:template match="*" mode="pagenumber.markup">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <fo:page-number-citation ref-id="{$id}"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="insert.title.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="title"/>
+
+  <xsl:choose>
+    <!-- FIXME: what about the case where titleabbrev is inside the info? -->
+    <xsl:when test="$purpose = 'xref' and titleabbrev">
+      <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$title"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="chapter|appendix" mode="insert.title.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="title"/>
+
+  <xsl:choose>
+    <xsl:when test="$purpose = 'xref'">
+      <fo:inline font-style="italic">
+        <xsl:copy-of select="$title"/>
+      </fo:inline>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$title"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.subtitle.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="subtitle"/>
+
+  <xsl:copy-of select="$subtitle"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.label.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="label"/>
+
+  <xsl:copy-of select="$label"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.pagenumber.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="pagenumber"/>
+
+  <xsl:copy-of select="$pagenumber"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.direction.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="direction"/>
+
+  <xsl:copy-of select="$direction"/>
+</xsl:template>
+
+<xsl:template match="olink" mode="pagenumber.markup">
+  <!-- Local olinks can use page-citation -->
+  <xsl:variable name="targetdoc.att" select="@targetdoc"/>
+  <xsl:variable name="targetptr.att" select="@targetptr"/>
+
+  <xsl:variable name="olink.lang">
+    <xsl:call-template name="l10n.language">
+      <xsl:with-param name="xref-context" select="true()"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="target.database.filename">
+    <xsl:call-template name="select.target.database">
+      <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+      <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+      <xsl:with-param name="olink.lang" select="$olink.lang"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="target.database" 
+      select="document($target.database.filename, /)"/>
+
+  <xsl:if test="$olink.debug != 0">
+    <xsl:message>
+      <xsl:text>Olink debug: root element of target.database is '</xsl:text>
+      <xsl:value-of select="local-name($target.database/*[1])"/>
+      <xsl:text>'.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="olink.key">
+    <xsl:call-template name="select.olink.key">
+      <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+      <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+      <xsl:with-param name="olink.lang" select="$olink.lang"/>
+      <xsl:with-param name="target.database" select="$target.database"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Olink that points to internal id can be a link -->
+  <xsl:variable name="linkend">
+    <xsl:call-template name="olink.as.linkend">
+      <xsl:with-param name="olink.key" select="$olink.key"/>
+      <xsl:with-param name="olink.lang" select="$olink.lang"/>
+      <xsl:with-param name="target.database" select="$target.database"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$linkend != ''">
+      <fo:page-number-citation ref-id="{$linkend}"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>Olink error: no page number linkend for local olink '</xsl:text>
+        <xsl:value-of select="$olink.key"/>
+        <xsl:text>'</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/highlighting/README b/applications/content/template/docbook/highlighting/README
new file mode 100644
index 0000000..0b31d32
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/README
@@ -0,0 +1,16 @@
+To use the syntax higlighting extension with DocBook-XSL 1.74.3+, you must:
+1. Use a processor that works with the extension: Saxon 6 or Xalan-J.
+2. Add the latest version of xslthl-2.X.X.jar to your classpath.
+3. Set the highlight.source parameter to 1.
+4. Import into your customization one of the following stylesheet module:
+  * html/highlight.xsl
+  * xhtml/highlight.xsl
+  * xhtml-1_1/highlight.xsl
+  * fo/highlight.xsl
+5. Use that customiztion layer.
+
+
+Note: Saxon 8.5 or later is also supported, but since it is an XSLT 2.0
+processor it is not guaranteed to work with DocBook-XSL in all
+circumstances. 
+
diff --git a/applications/content/template/docbook/highlighting/c-hl.xml b/applications/content/template/docbook/highlighting/c-hl.xml
new file mode 100644
index 0000000..44ab02d
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/c-hl.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+	<!--
+		Syntax highlighting definition for C xslthl - XSLT Syntax Highlighting http://sourceforge.net/projects/xslthl/
+		Copyright (C) 2005-2008 Michal Molhanec, Jirka Kosek, Michiel Hendriks This software is provided 'as-is', without any
+		express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this
+		software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and
+		to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not
+		be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an
+		acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must
+		be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be
+		removed or altered from any source distribution. Michal Molhanec <mol1111 at users.sourceforge.net> Jirka Kosek <kosek
+		at users.sourceforge.net> Michiel Hendriks <elmuerte at users.sourceforge.net>
+	-->
+<highlighters>
+	<highlighter type="multiline-comment">
+		<start>/**</start>
+		<end>*/</end>
+		<style>doccomment</style>
+	</highlighter>
+	<highlighter type="oneline-comment">
+		<start>///</start>
+		<style>doccomment</style>
+	</highlighter>
+	<highlighter type="multiline-comment">
+		<start>/*</start>
+		<end>*/</end>
+	</highlighter>
+	<highlighter type="oneline-comment">//</highlighter>
+	<highlighter type="oneline-comment">
+		<!-- use the online-comment highlighter to detect directives -->
+		<start>#</start>
+		<lineBreakEscape>\</lineBreakEscape>
+		<style>directive</style>
+	</highlighter>
+	<highlighter type="string">
+		<string>"</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="string">
+		<string>'</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="hexnumber">
+		<prefix>0x</prefix>
+		<suffix>ul</suffix>
+		<suffix>lu</suffix>
+		<suffix>u</suffix>
+		<suffix>l</suffix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="number">
+		<point>.</point>
+		<pointStarts />
+		<exponent>e</exponent>
+		<suffix>ul</suffix>
+		<suffix>lu</suffix>
+		<suffix>u</suffix>
+		<suffix>f</suffix>
+		<suffix>l</suffix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="keywords">
+		<keyword>auto</keyword>
+		<keyword>_Bool</keyword>
+		<keyword>break</keyword>
+		<keyword>case</keyword>
+		<keyword>char</keyword>
+		<keyword>_Complex</keyword>
+		<keyword>const</keyword>
+		<keyword>continue</keyword>
+		<keyword>default</keyword>
+		<keyword>do</keyword>
+		<keyword>double</keyword>
+		<keyword>else</keyword>
+		<keyword>enum</keyword>
+		<keyword>extern</keyword>
+		<keyword>float</keyword>
+		<keyword>for</keyword>
+		<keyword>goto</keyword>
+		<keyword>if</keyword>
+		<keyword>_Imaginary</keyword>
+		<keyword>inline</keyword>
+		<keyword>int</keyword>
+		<keyword>long</keyword>
+		<keyword>register</keyword>
+		<keyword>restrict</keyword>
+		<keyword>return</keyword>
+		<keyword>short</keyword>
+		<keyword>signed</keyword>
+		<keyword>sizeof</keyword>
+		<keyword>static</keyword>
+		<keyword>struct</keyword>
+		<keyword>switch</keyword>
+		<keyword>typedef</keyword>
+		<keyword>union</keyword>
+		<keyword>unsigned</keyword>
+		<keyword>void</keyword>
+		<keyword>volatile</keyword>
+		<keyword>while</keyword>
+	</highlighter>
+</highlighters>
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/common.xsl b/applications/content/template/docbook/highlighting/common.xsl
new file mode 100644
index 0000000..170cdfc
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/common.xsl
@@ -0,0 +1,120 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+
+		xmlns:s6hl="http://net.sf.xslthl/ConnectorSaxon6" 
+		xmlns:sbhl="http://net.sf.xslthl/ConnectorSaxonB" 
+		xmlns:xhl="http://net.sf.xslthl/ConnectorXalan"
+		xmlns:saxon6="http://icl.com/saxon" 
+		xmlns:saxonb="http://saxon.sf.net/" 
+		xmlns:xalan="http://xml.apache.org/xalan"
+		
+		xmlns:exsl="http://exslt.org/common"
+		xmlns:xslthl="http://xslthl.sf.net"
+		exclude-result-prefixes="exsl xslthl s6hl sbhl xhl"
+		version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- this construction is needed to have the saxon and xalan connectors working alongside each other -->
+<xalan:component prefix="xhl" functions="highlight"> 
+  <xalan:script lang="javaclass" src="xalan://net.sf.xslthl.ConnectorXalan" /> 
+</xalan:component> 
+
+<!-- for saxon 6 -->
+<saxon6:script implements-prefix="s6hl" language="java" src="java:net.sf.xslthl.ConnectorSaxon6" />
+
+<!-- for saxon 8.5 and later -->
+<saxonb:script implements-prefix="sbhl" language="java" src="java:net.sf.xslthl.ConnectorSaxonB" />
+
+
+<!-- You can override this template to do more complex mapping of
+     language attribute to highlighter language ID (see xslthl-config.xml) -->
+<xsl:template name="language.to.xslthl">
+  <xsl:param name="context"/>
+
+  <xsl:choose>
+    <xsl:when test="$context/@language != ''">
+      <xsl:value-of select="$context/@language"/>
+    </xsl:when>
+    <xsl:when test="$highlight.default.language != ''">
+      <xsl:value-of select="$highlight.default.language"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="apply-highlighting">
+  <xsl:choose>
+    <!-- Do we want syntax highlighting -->
+    <xsl:when test="$highlight.source != 0">
+      <xsl:variable name="language">
+	<xsl:call-template name="language.to.xslthl">
+	  <xsl:with-param name="context" select="."/>
+	</xsl:call-template>
+      </xsl:variable>
+      <xsl:choose>
+	<xsl:when test="$language != ''">
+	  <xsl:variable name="content">
+	    <xsl:apply-templates/>
+	  </xsl:variable>
+	  <xsl:choose>
+	    <xsl:when test="function-available('s6hl:highlight')">
+	      <xsl:apply-templates select="s6hl:highlight($language, exsl:node-set($content), $highlight.xslthl.config)"
+				   mode="xslthl"/>
+	    </xsl:when>
+	    <xsl:when test="function-available('sbhl:highlight')">
+	      <xsl:apply-templates select="sbhl:highlight($language, exsl:node-set($content), $highlight.xslthl.config)"
+				   mode="xslthl"/>
+	    </xsl:when>
+	    <xsl:when test="function-available('xhl:highlight')">
+	      <xsl:apply-templates select="xhl:highlight($language, exsl:node-set($content), $highlight.xslthl.config)"
+				   mode="xslthl"/>
+	    </xsl:when>
+	    <xsl:otherwise>
+	      <xsl:copy-of select="$content"/>
+	    </xsl:otherwise>
+	  </xsl:choose>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:apply-templates/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <!-- No syntax highlighting -->
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- A fallback when the specific style isn't recognized -->
+<xsl:template match="xslthl:*" mode="xslthl">
+  <xsl:message>
+    <xsl:text>unprocessed xslthl style: </xsl:text>
+    <xsl:value-of select="local-name(.)" />
+  </xsl:message>
+  <xsl:apply-templates mode="xslthl"/>
+</xsl:template>
+
+<!-- Copy over already produced markup (FO/HTML) -->
+<xsl:template match="node()" mode="xslthl" priority="-1">
+  <xsl:copy>
+    <xsl:apply-templates select="node()" mode="xslthl"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="*" mode="xslthl">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates select="node()" mode="xslthl"/>
+  </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/highlighting/cpp-hl.xml b/applications/content/template/docbook/highlighting/cpp-hl.xml
new file mode 100644
index 0000000..2213b7c
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/cpp-hl.xml
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Syntax highlighting definition for C++
+
+xslthl - XSLT Syntax Highlighting
+http://sourceforge.net/projects/xslthl/
+Copyright (C) 2005-2008 Michal Molhanec, Jirka Kosek, Michiel Hendriks
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Michal Molhanec <mol1111 at users.sourceforge.net>
+Jirka Kosek <kosek at users.sourceforge.net>
+Michiel Hendriks <elmuerte at users.sourceforge.net>
+
+-->
+<highlighters>
+	<highlighter type="multiline-comment">
+		<start>/**</start>
+		<end>*/</end>
+		<style>doccomment</style>
+	</highlighter>
+	<highlighter type="oneline-comment">
+		<start>///</start>
+		<style>doccomment</style>
+	</highlighter>
+	<highlighter type="multiline-comment">
+		<start>/*</start>
+		<end>*/</end>
+	</highlighter>
+	<highlighter type="oneline-comment">//</highlighter>
+	<highlighter type="oneline-comment">
+		<!-- use the online-comment highlighter to detect directives -->
+		<start>#</start>
+		<lineBreakEscape>\</lineBreakEscape>
+		<style>directive</style>
+	</highlighter>
+	<highlighter type="string">
+		<string>"</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="string">
+		<string>'</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="hexnumber">
+		<prefix>0x</prefix>
+		<suffix>ul</suffix>
+		<suffix>lu</suffix>
+		<suffix>u</suffix>
+		<suffix>l</suffix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="number">
+		<point>.</point>
+		<pointStarts />
+		<exponent>e</exponent>
+		<suffix>ul</suffix>
+		<suffix>lu</suffix>
+		<suffix>u</suffix>
+		<suffix>f</suffix>
+		<suffix>l</suffix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="keywords">
+		<!-- C keywords -->
+		<keyword>auto</keyword>
+		<keyword>_Bool</keyword>
+		<keyword>break</keyword>
+		<keyword>case</keyword>
+		<keyword>char</keyword>
+		<keyword>_Complex</keyword>
+		<keyword>const</keyword>
+		<keyword>continue</keyword>
+		<keyword>default</keyword>
+		<keyword>do</keyword>
+		<keyword>double</keyword>
+		<keyword>else</keyword>
+		<keyword>enum</keyword>
+		<keyword>extern</keyword>
+		<keyword>float</keyword>
+		<keyword>for</keyword>
+		<keyword>goto</keyword>
+		<keyword>if</keyword>
+		<keyword>_Imaginary</keyword>
+		<keyword>inline</keyword>
+		<keyword>int</keyword>
+		<keyword>long</keyword>
+		<keyword>register</keyword>
+		<keyword>restrict</keyword>
+		<keyword>return</keyword>
+		<keyword>short</keyword>
+		<keyword>signed</keyword>
+		<keyword>sizeof</keyword>
+		<keyword>static</keyword>
+		<keyword>struct</keyword>
+		<keyword>switch</keyword>
+		<keyword>typedef</keyword>
+		<keyword>union</keyword>
+		<keyword>unsigned</keyword>
+		<keyword>void</keyword>
+		<keyword>volatile</keyword>
+		<keyword>while</keyword>
+		<!-- C++ keywords -->
+		<keyword>asm</keyword>
+		<keyword>dynamic_cast</keyword>
+		<keyword>namespace</keyword>
+		<keyword>reinterpret_cast</keyword>
+		<keyword>try</keyword>
+		<keyword>bool</keyword>
+		<keyword>explicit</keyword>
+		<keyword>new</keyword>
+		<keyword>static_cast</keyword>
+		<keyword>typeid</keyword>
+		<keyword>catch</keyword>
+		<keyword>false</keyword>
+		<keyword>operator</keyword>
+		<keyword>template</keyword>
+		<keyword>typename</keyword>
+		<keyword>class</keyword>
+		<keyword>friend</keyword>
+		<keyword>private</keyword>
+		<keyword>this</keyword>
+		<keyword>using</keyword>
+		<keyword>const_cast</keyword>
+		<keyword>inline</keyword>
+		<keyword>public</keyword>
+		<keyword>throw</keyword>
+		<keyword>virtual</keyword>
+		<keyword>delete</keyword>
+		<keyword>mutable</keyword>
+		<keyword>protected</keyword>
+		<keyword>true</keyword>
+		<keyword>wchar_t</keyword>
+	</highlighter>
+</highlighters>
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/csharp-hl.xml b/applications/content/template/docbook/highlighting/csharp-hl.xml
new file mode 100644
index 0000000..c8599e1
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/csharp-hl.xml
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Syntax highlighting definition for C#
+
+xslthl - XSLT Syntax Highlighting
+http://sourceforge.net/projects/xslthl/
+Copyright (C) 2005-2008 Michal Molhanec, Jirka Kosek, Michiel Hendriks
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Michal Molhanec <mol1111 at users.sourceforge.net>
+Jirka Kosek <kosek at users.sourceforge.net>
+Michiel Hendriks <elmuerte at users.sourceforge.net>
+
+-->
+<highlighters>
+	<highlighter type="multiline-comment">
+		<start>/**</start>
+		<end>*/</end>
+		<style>doccomment</style>
+	</highlighter>
+	<highlighter type="oneline-comment">
+		<start>///</start>
+		<style>doccomment</style>
+	</highlighter>
+	<highlighter type="multiline-comment">
+		<start>/*</start>
+		<end>*/</end>
+	</highlighter>
+	<highlighter type="oneline-comment">//</highlighter>
+	<highlighter type="annotation">
+		<!-- annotations are called (custom) "attributes" in .NET -->
+		<start>[</start>
+		<end>]</end>
+		<valueStart>(</valueStart>
+		<valueEnd>)</valueEnd>
+	</highlighter>
+	<highlighter type="oneline-comment">
+		<!-- C# supports a couple of directives -->
+		<start>#</start>
+		<lineBreakEscape>\</lineBreakEscape>
+		<style>directive</style>
+	</highlighter>
+	<highlighter type="string">
+		<!-- strings starting with an "@" can span multiple lines -->
+		<string>@"</string>
+		<endString>"</endString>
+		<escape>\</escape>
+		<spanNewLines />
+	</highlighter>
+	<highlighter type="string">
+		<string>"</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="string">
+		<string>'</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="hexnumber">
+		<prefix>0x</prefix>
+		<suffix>ul</suffix>
+		<suffix>lu</suffix>
+		<suffix>u</suffix>
+		<suffix>l</suffix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="number">
+		<point>.</point>
+		<pointStarts />
+		<exponent>e</exponent>
+		<suffix>ul</suffix>
+		<suffix>lu</suffix>
+		<suffix>u</suffix>
+		<suffix>f</suffix>
+		<suffix>d</suffix>
+		<suffix>m</suffix>
+		<suffix>l</suffix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="keywords">
+		<keyword>abstract</keyword>
+		<keyword>as</keyword>
+		<keyword>base</keyword>
+		<keyword>bool</keyword>
+		<keyword>break</keyword>
+		<keyword>byte</keyword>
+		<keyword>case</keyword>
+		<keyword>catch</keyword>
+		<keyword>char</keyword>
+		<keyword>checked</keyword>
+		<keyword>class</keyword>
+		<keyword>const</keyword>
+		<keyword>continue</keyword>
+		<keyword>decimal</keyword>
+		<keyword>default</keyword>
+		<keyword>delegate</keyword>
+		<keyword>do</keyword>
+		<keyword>double</keyword>
+		<keyword>else</keyword>
+		<keyword>enum</keyword>
+		<keyword>event</keyword>
+		<keyword>explicit</keyword>
+		<keyword>extern</keyword>
+		<keyword>false</keyword>
+		<keyword>finally</keyword>
+		<keyword>fixed</keyword>
+		<keyword>float</keyword>
+		<keyword>for</keyword>
+		<keyword>foreach</keyword>
+		<keyword>goto</keyword>
+		<keyword>if</keyword>
+		<keyword>implicit</keyword>
+		<keyword>in</keyword>
+		<keyword>int</keyword>
+		<keyword>interface</keyword>
+		<keyword>internal</keyword>
+		<keyword>is</keyword>
+		<keyword>lock</keyword>
+		<keyword>long</keyword>
+		<keyword>namespace</keyword>
+		<keyword>new</keyword>
+		<keyword>null</keyword>
+		<keyword>object</keyword>
+		<keyword>operator</keyword>
+		<keyword>out</keyword>
+		<keyword>override</keyword>
+		<keyword>params</keyword>
+		<keyword>private</keyword>
+		<keyword>protected</keyword>
+		<keyword>public</keyword>
+		<keyword>readonly</keyword>
+		<keyword>ref</keyword>
+		<keyword>return</keyword>
+		<keyword>sbyte</keyword>
+		<keyword>sealed</keyword>
+		<keyword>short</keyword>
+		<keyword>sizeof</keyword>
+		<keyword>stackalloc</keyword>
+		<keyword>static</keyword>
+		<keyword>string</keyword>
+		<keyword>struct</keyword>
+		<keyword>switch</keyword>
+		<keyword>this</keyword>
+		<keyword>throw</keyword>
+		<keyword>true</keyword>
+		<keyword>try</keyword>
+		<keyword>typeof</keyword>
+		<keyword>uint</keyword>
+		<keyword>ulong</keyword>
+		<keyword>unchecked</keyword>
+		<keyword>unsafe</keyword>
+		<keyword>ushort</keyword>
+		<keyword>using</keyword>
+		<keyword>virtual</keyword>
+		<keyword>void</keyword>
+		<keyword>volatile</keyword>
+		<keyword>while</keyword>
+	</highlighter>
+	<highlighter type="keywords">
+		<!-- special words, not really keywords -->
+		<keyword>add</keyword>
+		<keyword>alias</keyword>
+		<keyword>from</keyword>
+		<keyword>get</keyword>
+		<keyword>global</keyword>
+		<keyword>group</keyword>
+		<keyword>into</keyword>
+		<keyword>join</keyword>
+		<keyword>orderby</keyword>
+		<keyword>partial</keyword>
+		<keyword>remove</keyword>
+		<keyword>select</keyword>
+		<keyword>set</keyword>
+		<keyword>value</keyword>
+		<keyword>where</keyword>
+		<keyword>yield</keyword>
+	</highlighter>
+</highlighters>
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/delphi-hl.xml b/applications/content/template/docbook/highlighting/delphi-hl.xml
new file mode 100644
index 0000000..6cf8c4e
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/delphi-hl.xml
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Syntax highlighting definition for Delphi (also suitable for Pascal)
+
+xslthl - XSLT Syntax Highlighting
+http://sourceforge.net/projects/xslthl/
+Copyright (C) 2005-2008 Michal Molhanec, Jirka Kosek, Michiel Hendriks
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Michal Molhanec <mol1111 at users.sourceforge.net>
+Jirka Kosek <kosek at users.sourceforge.net>
+Michiel Hendriks <elmuerte at users.sourceforge.net>
+
+-->
+<highlighters>
+        <highlighter type="multiline-comment">
+                <!-- multiline comments starting with an $ are directives -->
+                <start>{$</start>
+                <end>}</end>
+                <style>directive</style>
+        </highlighter>
+        <highlighter type="multiline-comment">
+                <!-- multiline comments starting with an $ are directives -->
+                <start>(*$</start>
+                <end>)</end>
+                <style>directive</style>
+        </highlighter>
+        <highlighter type="multiline-comment">
+                <start>{</start>
+                <end>}</end>
+        </highlighter>
+        <highlighter type="multiline-comment">
+                <start>(*</start>
+                <end>*)</end>
+        </highlighter>
+        <highlighter type="oneline-comment">//</highlighter>
+        <highlighter type="string">
+                <string>'</string>
+                <doubleEscapes />
+        </highlighter>
+        <highlighter type="hexnumber">
+                <prefix>#$</prefix>
+                <ignoreCase />
+                <style>string</style>           
+        </highlighter>
+        <highlighter type="number">
+                <prefix>#</prefix>
+                <ignoreCase />
+                <style>string</style>           
+        </highlighter>
+        <highlighter type="hexnumber">
+                <prefix>$</prefix>
+                <ignoreCase />
+        </highlighter>
+        <highlighter type="number">
+                <point>.</point>
+                <exponent>e</exponent>
+                <ignoreCase />
+        </highlighter>
+        <highlighter type="keywords">
+                <!-- Reserved words -->
+                <keyword>and</keyword>
+                <keyword>else</keyword>
+                <keyword>inherited</keyword>
+                <keyword>packed</keyword>
+                <keyword>then</keyword>
+                <keyword>array</keyword>
+                <keyword>end</keyword>
+                <keyword>initialization</keyword>
+                <keyword>procedure</keyword>
+                <keyword>threadvar</keyword>
+                <keyword>as</keyword>
+                <keyword>except</keyword>
+                <keyword>inline</keyword>
+                <keyword>program</keyword>
+                <keyword>to</keyword>
+                <keyword>asm</keyword>
+                <keyword>exports</keyword>
+                <keyword>interface</keyword>
+                <keyword>property</keyword>
+                <keyword>try</keyword>
+                <keyword>begin</keyword>
+                <keyword>file</keyword>
+                <keyword>is</keyword>
+                <keyword>raise</keyword>
+                <keyword>type</keyword>
+                <keyword>case</keyword>
+                <keyword>final</keyword>
+                <keyword>label</keyword>
+                <keyword>record</keyword>
+                <keyword>unit</keyword>
+                <keyword>class</keyword>
+                <keyword>finalization</keyword>
+                <keyword>library</keyword>
+                <keyword>repeat</keyword>
+                <keyword>unsafe</keyword>
+                <keyword>const</keyword>
+                <keyword>finally</keyword>
+                <keyword>mod</keyword>
+                <keyword>resourcestring</keyword>
+                <keyword>until</keyword>
+                <keyword>constructor</keyword>
+                <keyword>for</keyword>
+                <keyword>nil</keyword>
+                <keyword>sealed</keyword>
+                <keyword>uses</keyword>
+                <keyword>destructor</keyword>
+                <keyword>function</keyword>
+                <keyword>not</keyword>
+                <keyword>set</keyword>
+                <keyword>var</keyword>
+                <keyword>dispinterface</keyword>
+                <keyword>goto</keyword>
+                <keyword>object</keyword>
+                <keyword>shl</keyword>
+                <keyword>while</keyword>
+                <keyword>div</keyword>
+                <keyword>if</keyword>
+                <keyword>of</keyword>
+                <keyword>shr</keyword>
+                <keyword>with</keyword>
+                <keyword>do</keyword>
+                <keyword>implementation</keyword>
+                <keyword>or</keyword>
+                <keyword>static</keyword>
+                <keyword>xor</keyword>
+                <keyword>downto</keyword>
+                <keyword>in</keyword>
+                <keyword>out</keyword>
+                <keyword>string</keyword>
+                <keyword>exit</keyword> 
+                <keyword>break</keyword>
+                <keyword>continue</keyword>
+
+                <!-- Special meaning -->
+                <keyword>at</keyword>
+                <keyword>on</keyword>
+  
+                <!-- Directives -->
+                <keyword>absolute</keyword>
+                <keyword>dynamic</keyword>
+                <keyword>local</keyword>
+                <keyword>platform</keyword>
+                <keyword>requires</keyword>
+                <keyword>abstract</keyword>
+                <keyword>export</keyword>
+                <keyword>message</keyword>
+                <keyword>private</keyword>
+                <keyword>resident</keyword>
+                <keyword>assembler</keyword>
+                <keyword>external</keyword>
+                <keyword>name</keyword>
+                <keyword>protected</keyword>
+                <keyword>safecall</keyword>
+                <keyword>automated</keyword>
+                <keyword>far</keyword>
+                <keyword>near</keyword>
+                <keyword>public</keyword>
+                <keyword>stdcall</keyword>
+                <keyword>cdecl</keyword>
+                <keyword>forward</keyword>
+                <keyword>nodefault</keyword>
+                <keyword>published</keyword>
+                <keyword>stored</keyword>
+                <keyword>contains</keyword>
+                <keyword>implements</keyword>
+                <keyword>overload</keyword>
+                <keyword>read</keyword>
+                <keyword>varargs</keyword>
+                <keyword>default</keyword>
+                <keyword>index</keyword>
+                <keyword>override</keyword>
+                <keyword>readonly</keyword>
+                <keyword>virtual</keyword>
+                <keyword>deprecated</keyword>
+                <keyword>inline</keyword>
+                <keyword>package</keyword>
+                <keyword>register</keyword>
+                <keyword>write</keyword>
+                <keyword>dispid</keyword>
+                <keyword>library</keyword>
+                <keyword>pascal</keyword>
+                <keyword>reintroduce</keyword>
+                <keyword>writeonly</keyword>
+
+                <!-- Native pascal types of data  -->
+                <keyword>byte</keyword>
+                <keyword>shortint</keyword>
+                <keyword>word</keyword>
+                <keyword>smallint</keyword>
+                <keyword>longint</keyword>
+                <keyword>integer</keyword>
+                <keyword>cardinal</keyword>
+                <keyword>char</keyword>
+                <keyword>real</keyword>
+                <keyword>double</keyword>
+                <keyword>single</keyword>
+                <keyword>extended</keyword>
+                <keyword>comp</keyword>
+                <keyword>boolean</keyword>
+
+                <ignoreCase />
+        </highlighter>
+</highlighters>
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/ini-hl.xml b/applications/content/template/docbook/highlighting/ini-hl.xml
new file mode 100644
index 0000000..84be9c6
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/ini-hl.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Syntax highlighting definition for ini files
+
+xslthl - XSLT Syntax Highlighting
+http://sourceforge.net/projects/xslthl/
+Copyright (C) 2005-2008 Michal Molhanec, Jirka Kosek, Michiel Hendriks
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Michal Molhanec <mol1111 at users.sourceforge.net>
+Jirka Kosek <kosek at users.sourceforge.net>
+Michiel Hendriks <elmuerte at users.sourceforge.net>
+
+-->
+<highlighters>
+	<highlighter type="oneline-comment">;</highlighter>
+	<highlighter type="regex">	
+		<!-- ini sections -->
+		<pattern>^(\[.+\]\s*)$</pattern>
+		<style>keyword</style>
+		<flags>MULTILINE</flags>
+	</highlighter>
+	<highlighter type="regex">
+		<!-- the keys in an ini section -->
+		<pattern>^(.+)(?==)</pattern>
+		<style>attribute</style>
+		<flags>MULTILINE</flags>
+	</highlighter>
+</highlighters>
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/java-hl.xml b/applications/content/template/docbook/highlighting/java-hl.xml
new file mode 100644
index 0000000..d499d83
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/java-hl.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Syntax highlighting definition for Java
+
+xslthl - XSLT Syntax Highlighting
+http://sourceforge.net/projects/xslthl/
+Copyright (C) 2005-2008 Michal Molhanec, Jirka Kosek, Michiel Hendriks
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Michal Molhanec <mol1111 at users.sourceforge.net>
+Jirka Kosek <kosek at users.sourceforge.net>
+Michiel Hendriks <elmuerte at users.sourceforge.net>
+
+-->
+<highlighters>
+	<highlighter type="multiline-comment">
+		<start>/**</start>
+		<end>*/</end>
+		<style>doccomment</style>
+	</highlighter>
+	<highlighter type="multiline-comment">
+		<start>/*</start>
+		<end>*/</end>
+	</highlighter>
+	<highlighter type="oneline-comment">//</highlighter>
+	<highlighter type="string">
+		<string>"</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="string">
+		<string>'</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="annotation">
+		<start>@</start>
+		<valueStart>(</valueStart>
+		<valueEnd>)</valueEnd>
+	</highlighter>
+	<highlighter type="hexnumber">
+		<prefix>0x</prefix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="number">
+		<point>.</point>
+		<exponent>e</exponent>
+		<suffix>f</suffix>
+		<suffix>d</suffix>
+		<suffix>l</suffix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="keywords">
+		<keyword>abstract</keyword>
+		<keyword>boolean</keyword>
+		<keyword>break</keyword>
+		<keyword>byte</keyword>
+		<keyword>case</keyword>
+		<keyword>catch</keyword>
+		<keyword>char</keyword>
+		<keyword>class</keyword>
+		<keyword>const</keyword>
+		<keyword>continue</keyword>
+		<keyword>default</keyword>
+		<keyword>do</keyword>
+		<keyword>double</keyword>
+		<keyword>else</keyword>
+		<keyword>extends</keyword>
+		<keyword>final</keyword>
+		<keyword>finally</keyword>
+		<keyword>float</keyword>
+		<keyword>for</keyword>
+		<keyword>goto</keyword>
+		<keyword>if</keyword>
+		<keyword>implements</keyword>
+		<keyword>import</keyword>
+		<keyword>instanceof</keyword>
+		<keyword>int</keyword>
+		<keyword>interface</keyword>
+		<keyword>long</keyword>
+		<keyword>native</keyword>
+		<keyword>new</keyword>
+		<keyword>package</keyword>
+		<keyword>private</keyword>
+		<keyword>protected</keyword>
+		<keyword>public</keyword>
+		<keyword>return</keyword>
+		<keyword>short</keyword>
+		<keyword>static</keyword>
+		<keyword>strictfp</keyword>
+		<keyword>super</keyword>
+		<keyword>switch</keyword>
+		<keyword>synchronized</keyword>
+		<keyword>this</keyword>
+		<keyword>throw</keyword>
+		<keyword>throws</keyword>
+		<keyword>transient</keyword>
+		<keyword>try</keyword>
+		<keyword>void</keyword>
+		<keyword>volatile</keyword>
+		<keyword>while</keyword>
+	</highlighter>
+</highlighters>
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/javascript-hl.xml b/applications/content/template/docbook/highlighting/javascript-hl.xml
new file mode 100644
index 0000000..5749b88
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/javascript-hl.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Syntax highlighting definition for JavaScript
+
+xslthl - XSLT Syntax Highlighting
+http://sourceforge.net/projects/xslthl/
+Copyright (C) 2005-2008 Michal Molhanec, Jirka Kosek, Michiel Hendriks
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Michal Molhanec <mol1111 at users.sourceforge.net>
+Jirka Kosek <kosek at users.sourceforge.net>
+Michiel Hendriks <elmuerte at users.sourceforge.net>
+
+-->
+<highlighters>
+	<highlighter type="multiline-comment">
+		<start>/*</start>
+		<end>*/</end>
+	</highlighter>
+	<highlighter type="oneline-comment">//</highlighter>
+	<highlighter type="string">
+		<string>"</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="string">
+		<string>'</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="hexnumber">
+		<prefix>0x</prefix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="number">
+		<point>.</point>
+		<exponent>e</exponent>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="keywords">
+		<keyword>break</keyword>
+		<keyword>case</keyword>
+		<keyword>catch</keyword>
+		<keyword>continue</keyword>
+		<keyword>default</keyword>
+		<keyword>delete</keyword>
+		<keyword>do</keyword>
+		<keyword>else</keyword>
+		<keyword>finally</keyword>
+		<keyword>for</keyword>
+		<keyword>function</keyword>
+		<keyword>if</keyword>
+		<keyword>in</keyword>
+		<keyword>instanceof</keyword>
+		<keyword>new</keyword>
+		<keyword>return</keyword>
+		<keyword>switch</keyword>
+		<keyword>this</keyword>
+		<keyword>throw</keyword>
+		<keyword>try</keyword>
+		<keyword>typeof</keyword>
+		<keyword>var</keyword>
+		<keyword>void</keyword>
+		<keyword>while</keyword>
+		<keyword>with</keyword>
+		<!-- future keywords -->
+		<keyword>abstract</keyword>
+		<keyword>boolean</keyword>
+		<keyword>byte</keyword>
+		<keyword>char</keyword>
+		<keyword>class</keyword>
+		<keyword>const</keyword>
+		<keyword>debugger</keyword>
+		<keyword>double</keyword>
+		<keyword>enum</keyword>
+		<keyword>export</keyword>
+		<keyword>extends</keyword>
+		<keyword>final</keyword>
+		<keyword>float</keyword>
+		<keyword>goto</keyword>
+		<keyword>implements</keyword>
+		<keyword>import</keyword>
+		<keyword>int</keyword>
+		<keyword>interface</keyword>
+		<keyword>long</keyword>
+		<keyword>native</keyword>
+		<keyword>package</keyword>
+		<keyword>private</keyword>
+		<keyword>protected</keyword>
+		<keyword>public</keyword>
+		<keyword>short</keyword>
+		<keyword>static</keyword>
+		<keyword>super</keyword>
+		<keyword>synchronized</keyword>
+		<keyword>throws</keyword>
+		<keyword>transient</keyword>
+		<keyword>volatile</keyword>
+	</highlighter>
+	<highlighter type="keywords">
+		<keyword>prototype</keyword>
+		<!-- Global Objects -->
+		<keyword>Array</keyword>
+		<keyword>Boolean</keyword>
+		<keyword>Date</keyword>
+		<keyword>Error</keyword>
+		<keyword>EvalError</keyword>
+		<keyword>Function</keyword>
+		<keyword>Math</keyword>
+		<keyword>Number</keyword>
+		<keyword>Object</keyword>
+		<keyword>RangeError</keyword>
+		<keyword>ReferenceError</keyword>
+		<keyword>RegExp</keyword>
+		<keyword>String</keyword>
+		<keyword>SyntaxError</keyword>
+		<keyword>TypeError</keyword>
+		<keyword>URIError</keyword>
+		<!-- Global functions -->
+		<keyword>decodeURI</keyword>
+		<keyword>decodeURIComponent</keyword>
+		<keyword>encodeURI</keyword>
+		<keyword>encodeURIComponent</keyword>
+		<keyword>eval</keyword>
+		<keyword>isFinite</keyword>
+		<keyword>isNaN</keyword>
+		<keyword>parseFloat</keyword>
+		<keyword>parseInt</keyword>
+		<!-- Global properties -->
+		<keyword>Infinity</keyword>
+		<keyword>NaN</keyword>
+		<keyword>undefined</keyword>
+	</highlighter>
+</highlighters>
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/m2-hl.xml b/applications/content/template/docbook/highlighting/m2-hl.xml
new file mode 100644
index 0000000..a3ef314
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/m2-hl.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Syntax highlighting definition for Modulo-2
+
+xslthl - XSLT Syntax Highlighting
+http://sourceforge.net/projects/xslthl/
+Copyright (C) 2005-2008 Michal Molhanec, Jirka Kosek, Michiel Hendriks
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Michal Molhanec <mol1111 at users.sourceforge.net>
+Jirka Kosek <kosek at users.sourceforge.net>
+Michiel Hendriks <elmuerte at users.sourceforge.net>
+
+-->
+<highlighters>
+	<highlighter type="nested-multiline-comment">
+		<start>(*</start>
+		<end>*)</end>
+	</highlighter>
+	<highlighter type="string">
+		<string>"</string>
+	</highlighter>
+	<highlighter type="string">
+		<string>'</string>
+	</highlighter>
+	<highlighter type="number">
+		<point>.</point>
+		<exponent>e</exponent>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="keywords">
+		<keyword>and</keyword>
+		<keyword>array</keyword>
+		<keyword>begin</keyword>
+		<keyword>by</keyword>
+		<keyword>case</keyword>
+		<keyword>const</keyword>
+		<keyword>definition</keyword>
+		<keyword>div</keyword>
+		<keyword>do</keyword>
+		<keyword>else</keyword>
+		<keyword>elsif</keyword>
+		<keyword>end</keyword>
+		<keyword>exit</keyword>
+		<keyword>export</keyword>
+		<keyword>for</keyword>
+		<keyword>from</keyword>
+		<keyword>if</keyword>
+		<keyword>implementation</keyword>
+		<keyword>import</keyword>
+		<keyword>in</keyword>
+		<keyword>loop</keyword>
+		<keyword>mod</keyword>
+		<keyword>module</keyword>
+		<keyword>not</keyword>
+		<keyword>of</keyword>
+		<keyword>or</keyword>
+		<keyword>pointer</keyword>
+		<keyword>procedure</keyword>
+		<keyword>qualified</keyword>
+		<keyword>record</keyword>
+		<keyword>repeat</keyword>
+		<keyword>return</keyword>
+		<keyword>set</keyword>
+		<keyword>then</keyword>
+		<keyword>to</keyword>
+		<keyword>type</keyword>
+		<keyword>until</keyword>
+		<keyword>var</keyword>
+		<keyword>while</keyword>
+		<keyword>with</keyword>
+		<ignoreCase />
+	</highlighter>
+</highlighters>
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/myxml-hl.xml b/applications/content/template/docbook/highlighting/myxml-hl.xml
new file mode 100644
index 0000000..efa90d7
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/myxml-hl.xml
@@ -0,0 +1,116 @@
+<?xml version='1.0'?>
+<!--
+
+  Bakalarska prace: Zvyraznovani syntaxe v XSLT
+  Michal Molhanec 2005
+
+  myxml-hl.xml - konfigurace zvyraznovace XML, ktera zvlast zvyrazni
+                 HTML elementy a XSL elementy
+
+-->
+<highlighters>
+
+<wholehighlighter type='xml'>
+  <elementSet>
+    <style>html</style>
+    <element>A</element>
+    <element>ABBR</element>
+    <element>ACRONYM</element>
+    <element>ADDRESS</element>
+    <element>APPLET</element>
+    <element>AREA</element>
+    <element>B</element>
+    <element>BASE</element>
+    <element>BASEFONT</element>
+    <element>BDO</element>
+    <element>BIG</element>
+    <element>BLOCKQUOTE</element>
+    <element>BODY</element>
+    <element>BR</element>
+    <element>BUTTON</element>
+    <element>CAPTION</element>
+    <element>CENTER</element>
+    <element>CITE</element>
+    <element>CODE</element>
+    <element>COL</element>
+    <element>COLGROUP</element>
+    <element>DD</element>
+    <element>DEL</element>
+    <element>DFN</element>
+    <element>DIR</element>
+    <element>DIV</element>
+    <element>DL</element>
+    <element>DT</element>
+    <element>EM</element>
+    <element>FIELDSET</element>
+    <element>FONT</element>
+    <element>FORM</element>
+    <element>FRAME</element>
+    <element>FRAMESET</element>
+    <element>H1</element>
+    <element>H2</element>
+    <element>H3</element>
+    <element>H4</element>
+    <element>H5</element>
+    <element>H6</element>
+    <element>HEAD</element>
+    <element>HR</element>
+    <element>HTML</element>
+    <element>I</element>
+    <element>IFRAME</element>
+    <element>IMG</element>
+    <element>INPUT</element>
+    <element>INS</element>
+    <element>ISINDEX</element>
+    <element>KBD</element>
+    <element>LABEL</element>
+    <element>LEGEND</element>
+    <element>LI</element>
+    <element>LINK</element>
+    <element>MAP</element>
+    <element>MENU</element>
+    <element>META</element>
+    <element>NOFRAMES</element>
+    <element>NOSCRIPT</element>
+    <element>OBJECT</element>
+    <element>OL</element>
+    <element>OPTGROUP</element>
+    <element>OPTION</element>
+    <element>P</element>
+    <element>PARAM</element>
+    <element>PRE</element>
+    <element>Q</element>
+    <element>S</element>
+    <element>SAMP</element>
+    <element>SCRIPT</element>
+    <element>SELECT</element>
+    <element>SMALL</element>
+    <element>SPAN</element>
+    <element>STRIKE</element>
+    <element>STRONG</element>
+    <element>STYLE</element>
+    <element>SUB</element>
+    <element>SUP</element>
+    <element>TABLE</element>
+    <element>TBODY</element>
+    <element>TD</element>
+    <element>TEXTAREA</element>
+    <element>TFOOT</element>
+    <element>TH</element>
+    <element>THEAD</element>
+    <element>TITLE</element>
+    <element>TR</element>
+    <element>TT</element>
+    <element>U</element>
+    <element>UL</element>
+    <element>VAR</element>
+    <element>XMP</element>
+    <ignoreCase/>
+  </elementSet>
+  <elementPrefix>
+    <style>xslt</style>
+    <prefix>xsl:</prefix>
+  </elementPrefix>
+</wholehighlighter>
+
+</highlighters>
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/perl-hl.xml b/applications/content/template/docbook/highlighting/perl-hl.xml
new file mode 100644
index 0000000..23fdfd8
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/perl-hl.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Syntax highlighting definition for Perl
+
+xslthl - XSLT Syntax Highlighting
+http://sourceforge.net/projects/xslthl/
+Copyright (C) 2005-2008 Michal Molhanec, Jirka Kosek, Michiel Hendriks
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Michal Molhanec <mol1111 at users.sourceforge.net>
+Jirka Kosek <kosek at users.sourceforge.net>
+Michiel Hendriks <elmuerte at users.sourceforge.net>
+
+-->
+<highlighters>
+	<highlighter type="oneline-comment">#</highlighter>
+	<highlighter type="heredoc">
+		<start>&lt;&lt;</start>
+		<quote>'</quote>
+		<quote>"</quote>
+		<noWhiteSpace/>
+	</highlighter>
+	<highlighter type="string">
+		<string>"</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="string">
+		<string>'</string>
+		<escape>\</escape>
+		<spanNewLines/>
+	</highlighter>
+	<highlighter type="hexnumber">
+		<prefix>0x</prefix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="number">
+		<point>.</point>
+		<pointStarts />
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="keywords">
+		<keyword>if</keyword>
+		<keyword>unless</keyword>
+		<keyword>while</keyword>
+		<keyword>until</keyword>
+		<keyword>foreach</keyword>
+		<keyword>else</keyword>
+		<keyword>elsif</keyword>
+		<keyword>for</keyword>
+		<keyword>when</keyword>
+		<keyword>default</keyword>
+		<keyword>given</keyword>
+		<!-- Keywords related to the control flow of your perl program  -->
+		<keyword>caller</keyword>
+		<keyword>continue</keyword> 
+		<keyword>die</keyword>
+		<keyword>do</keyword>
+		<keyword>dump</keyword>
+		<keyword>eval</keyword>
+		<keyword>exit</keyword>
+		<keyword>goto</keyword>
+		<keyword>last</keyword>
+		<keyword>next</keyword>
+		<keyword>redo</keyword>
+		<keyword>return</keyword>
+		<keyword>sub</keyword>
+		<keyword>wantarray</keyword>
+		<!-- Keywords related to scoping  -->
+		<keyword>caller</keyword>
+		<keyword>import</keyword>
+		<keyword>local</keyword>
+		<keyword>my</keyword>
+		<keyword>package</keyword>
+		<keyword>use</keyword>
+		<!-- Keywords related to perl modules  -->
+		<keyword>do</keyword>
+		<keyword>import</keyword>
+		<keyword>no</keyword>
+		<keyword>package</keyword>
+		<keyword>require</keyword>
+		<keyword>use</keyword>
+		<!-- Keywords related to classes and object-orientedness  -->
+		<keyword>bless</keyword>
+		<keyword>dbmclose</keyword>
+		<keyword>dbmopen</keyword>
+		<keyword>package</keyword>
+		<keyword>ref</keyword>
+		<keyword>tie</keyword>
+		<keyword>tied</keyword>
+		<keyword>untie</keyword>
+		<keyword>use</keyword>
+		<!-- operators -->
+		<keyword>and</keyword>
+		<keyword>or</keyword>
+		<keyword>not</keyword>
+		<keyword>eq</keyword>
+		<keyword>ne</keyword>
+		<keyword>lt</keyword>
+		<keyword>gt</keyword>
+		<keyword>le</keyword>
+		<keyword>ge</keyword>
+		<keyword>cmp</keyword>
+	</highlighter>
+</highlighters>
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/php-hl.xml b/applications/content/template/docbook/highlighting/php-hl.xml
new file mode 100644
index 0000000..0daa348
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/php-hl.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Syntax highlighting definition for PHP
+
+xslthl - XSLT Syntax Highlighting
+http://sourceforge.net/projects/xslthl/
+Copyright (C) 2005-2008 Michal Molhanec, Jirka Kosek, Michiel Hendriks
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Michal Molhanec <mol1111 at users.sourceforge.net>
+Jirka Kosek <kosek at users.sourceforge.net>
+Michiel Hendriks <elmuerte at users.sourceforge.net>
+
+-->
+<highlighters>
+	<highlighter type="multiline-comment">
+		<start>/**</start>
+		<end>*/</end>
+		<style>doccomment</style>
+	</highlighter>
+	<highlighter type="oneline-comment">
+		<start>///</start>
+		<style>doccomment</style>
+	</highlighter>
+	<highlighter type="multiline-comment">
+		<start>/*</start>
+		<end>*/</end>
+	</highlighter>
+	<highlighter type="oneline-comment">//</highlighter>
+	<highlighter type="oneline-comment">#</highlighter>
+	<highlighter type="string">
+		<string>"</string>
+		<escape>\</escape>
+		<spanNewLines />
+	</highlighter>
+	<highlighter type="string">
+		<string>'</string>
+		<escape>\</escape>
+		<spanNewLines />
+	</highlighter>
+	<highlighter type="heredoc">
+		<start>&lt;&lt;&lt;</start>
+	</highlighter>
+	<highlighter type="hexnumber">
+		<prefix>0x</prefix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="number">
+		<point>.</point>
+		<exponent>e</exponent>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="keywords">
+		<keyword>and</keyword>
+		<keyword>or</keyword>
+		<keyword>xor</keyword>
+		<keyword>__FILE__</keyword>
+		<keyword>exception</keyword>
+		<keyword>__LINE__</keyword>
+		<keyword>array</keyword>
+		<keyword>as</keyword>
+		<keyword>break</keyword>
+		<keyword>case</keyword>
+		<keyword>class</keyword>
+		<keyword>const</keyword>
+		<keyword>continue</keyword>
+		<keyword>declare</keyword>
+		<keyword>default</keyword>
+		<keyword>die</keyword>
+		<keyword>do</keyword>
+		<keyword>echo</keyword>
+		<keyword>else</keyword>
+		<keyword>elseif</keyword>
+		<keyword>empty</keyword>
+		<keyword>enddeclare</keyword>
+		<keyword>endfor</keyword>
+		<keyword>endforeach</keyword>
+		<keyword>endif</keyword>
+		<keyword>endswitch</keyword>
+		<keyword>endwhile</keyword>
+		<keyword>eval</keyword>
+		<keyword>exit</keyword>
+		<keyword>extends</keyword>
+		<keyword>for</keyword>
+		<keyword>foreach</keyword>
+		<keyword>function</keyword>
+		<keyword>global</keyword>
+		<keyword>if</keyword>
+		<keyword>include</keyword>
+		<keyword>include_once</keyword>
+		<keyword>isset</keyword>
+		<keyword>list</keyword>
+		<keyword>new</keyword>
+		<keyword>print</keyword>
+		<keyword>require</keyword>
+		<keyword>require_once</keyword>
+		<keyword>return</keyword>
+		<keyword>static</keyword>
+		<keyword>switch</keyword>
+		<keyword>unset</keyword>
+		<keyword>use</keyword>
+		<keyword>var</keyword>
+		<keyword>while</keyword>
+		<keyword>__FUNCTION__</keyword>
+		<keyword>__CLASS__</keyword>
+		<keyword>__METHOD__</keyword>
+		<keyword>final</keyword>
+		<keyword>php_user_filter</keyword>
+		<keyword>interface</keyword>
+		<keyword>implements</keyword>
+		<keyword>extends</keyword>
+		<keyword>public</keyword>
+		<keyword>private</keyword>
+		<keyword>protected</keyword>
+		<keyword>abstract</keyword>
+		<keyword>clone</keyword>
+		<keyword>try</keyword>
+		<keyword>catch</keyword>
+		<keyword>throw</keyword>
+		<keyword>cfunction</keyword>
+		<keyword>old_function</keyword>
+		<keyword>true</keyword>
+		<keyword>false</keyword>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="word">
+		<!-- highlight the php open and close tags as directives -->
+		<word>?&gt;</word>
+		<word>&lt;?php</word>
+		<word>&lt;?=</word>
+		<style>directive</style>
+	</highlighter>
+</highlighters>
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/python-hl.xml b/applications/content/template/docbook/highlighting/python-hl.xml
new file mode 100644
index 0000000..1b1f087
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/python-hl.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Syntax highlighting definition for Python
+
+xslthl - XSLT Syntax Highlighting
+http://sourceforge.net/projects/xslthl/
+Copyright (C) 2005-2008 Michal Molhanec, Jirka Kosek, Michiel Hendriks
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Michal Molhanec <mol1111 at users.sourceforge.net>
+Jirka Kosek <kosek at users.sourceforge.net>
+Michiel Hendriks <elmuerte at users.sourceforge.net>
+
+-->
+<highlighters>
+	<highlighter type="annotation">
+		<!-- these are actually called decorators -->
+		<start>@</start>
+		<valueStart>(</valueStart>
+		<valueEnd>)</valueEnd>
+	</highlighter>
+	<highlighter type="oneline-comment">#</highlighter>
+	<highlighter type="string">
+		<string>"""</string>
+		<spanNewLines />
+	</highlighter>
+	<highlighter type="string">
+		<string>'''</string>
+		<spanNewLines />
+	</highlighter>
+	<highlighter type="string">
+		<string>"</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="string">
+		<string>'</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="hexnumber">
+		<prefix>0x</prefix>
+		<suffix>l</suffix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="number">
+		<point>.</point>
+		<pointStarts />
+		<exponent>e</exponent>
+		<suffix>l</suffix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="keywords">
+		<keyword>and</keyword>
+		<keyword>del</keyword>
+		<keyword>from</keyword>
+		<keyword>not</keyword>
+		<keyword>while</keyword>
+		<keyword>as</keyword>
+		<keyword>elif</keyword>
+		<keyword>global</keyword>
+		<keyword>or</keyword>
+		<keyword>with</keyword>
+		<keyword>assert</keyword>
+		<keyword>else</keyword>
+		<keyword>if</keyword>
+		<keyword>pass</keyword>
+		<keyword>yield</keyword>
+		<keyword>break</keyword>
+		<keyword>except</keyword>
+		<keyword>import</keyword>
+		<keyword>print</keyword>
+		<keyword>class</keyword>
+		<keyword>exec</keyword>
+		<keyword>in</keyword>
+		<keyword>raise</keyword>
+		<keyword>continue</keyword>
+		<keyword>finally</keyword>
+		<keyword>is</keyword>
+		<keyword>return</keyword>
+		<keyword>def</keyword>
+		<keyword>for</keyword>
+		<keyword>lambda</keyword>
+		<keyword>try</keyword>
+	</highlighter>
+</highlighters>
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/ruby-hl.xml b/applications/content/template/docbook/highlighting/ruby-hl.xml
new file mode 100644
index 0000000..2f74352
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/ruby-hl.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Syntax highlighting definition for Ruby
+
+xslthl - XSLT Syntax Highlighting
+http://sourceforge.net/projects/xslthl/
+Copyright (C) 2005-2008 Michal Molhanec, Jirka Kosek, Michiel Hendriks
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Michal Molhanec <mol1111 at users.sourceforge.net>
+Jirka Kosek <kosek at users.sourceforge.net>
+Michiel Hendriks <elmuerte at users.sourceforge.net>
+
+-->
+<highlighters>
+	<highlighter type="oneline-comment">#</highlighter>
+	<highlighter type="heredoc">
+		<start>&lt;&lt;</start>
+		<noWhiteSpace/>
+	</highlighter>
+	<highlighter type="string">
+		<string>"</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="string">
+		<string>%Q{</string>
+		<endString>}</endString>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="string">
+		<string>%/</string>
+		<endString>/</endString>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="string">
+		<string>'</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="string">
+		<string>%q{</string>
+		<endString>}</endString>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="hexnumber">
+		<prefix>0x</prefix>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="number">
+		<point>.</point>
+		<exponent>e</exponent>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="keywords">
+		<keyword>alias</keyword>
+		<keyword>and</keyword>
+		<keyword>BEGIN</keyword>
+		<keyword>begin</keyword>
+		<keyword>break</keyword>
+		<keyword>case</keyword>
+		<keyword>class</keyword>
+		<keyword>def</keyword>
+		<keyword>defined</keyword>
+		<keyword>do</keyword>
+		<keyword>else</keyword>
+		<keyword>elsif</keyword>
+		<keyword>END</keyword>
+		<keyword>end</keyword>
+		<keyword>ensure</keyword>
+		<keyword>false</keyword>
+		<keyword>for</keyword>
+		<keyword>if</keyword>
+		<keyword>in</keyword>
+		<keyword>module</keyword>
+		<keyword>next</keyword>
+		<keyword>nil</keyword>
+		<keyword>not</keyword>
+		<keyword>or</keyword>
+		<keyword>redo</keyword>
+		<keyword>rescue</keyword>
+		<keyword>retry</keyword>
+		<keyword>return</keyword>
+		<keyword>self</keyword>
+		<keyword>super</keyword>
+		<keyword>then</keyword>
+		<keyword>true</keyword>
+		<keyword>undef</keyword>
+		<keyword>unless</keyword>
+		<keyword>until</keyword>
+		<keyword>when</keyword>
+		<keyword>while</keyword>
+		<keyword>yield</keyword>
+	</highlighter>
+</highlighters>
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/tcl-hl.xml b/applications/content/template/docbook/highlighting/tcl-hl.xml
new file mode 100644
index 0000000..7a8fa9f
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/tcl-hl.xml
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+xslthl highlighter definition fof Tcl/Tk.
+written by Arndt Roger Schneider
+
+Copyright 2008 Arndt Roger Schneider
+License: xlib/libpng
+
+This software is provided "as-is", without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must
+   not claim that you wrote the original software. If you use this
+   software in a product, an acknowledgment in the product
+   documentation would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must
+   not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+   distribution.
+   
+-->
+<highlighters>
+	<highlighter type="oneline-comment">#</highlighter>
+	<highlighter type="string">
+		<string>"</string>
+		<escape>\</escape>
+	</highlighter>
+	<highlighter type="regex">
+		<pattern>-[\p{javaJavaIdentifierStart}][\p{javaJavaIdentifierPart}]+
+		</pattern>
+		<style>none</style>
+	</highlighter>
+	<highlighter type="number">
+		<point>.</point>
+		<ignoreCase />
+	</highlighter>
+	<highlighter type="keywords">
+		<!-- Tcl and itcl / structural -->
+		<keyword>if</keyword>
+		<keyword>then</keyword>
+		<keyword>else</keyword>
+		<keyword>elseif</keyword>
+		<keyword>for</keyword>
+		<keyword>foreach</keyword>
+		<keyword>break</keyword>
+		<keyword>continue</keyword>
+		<keyword>while</keyword>
+		<keyword>eval</keyword>
+		<keyword>case</keyword>
+		<keyword>in</keyword>
+		<keyword>switch</keyword>
+		<keyword>default</keyword>
+		<keyword>exit</keyword>
+		<keyword>error</keyword>
+		<keyword>proc</keyword>
+		<keyword>rename</keyword>
+		<keyword>exec</keyword>
+		<keyword>return</keyword>
+		<keyword>uplevel</keyword>
+		<keyword>upvar</keyword>
+		<keyword>constructor</keyword>
+		<keyword>destructor</keyword>
+		<keyword>itcl_class</keyword>
+		<keyword>loop</keyword>
+		<keyword>for_array_keys</keyword>
+		<keyword>for_recursive_glob</keyword>
+		<keyword>for_file</keyword>
+		<keyword>method</keyword>
+		<keyword>body</keyword>
+		<keyword>configbody</keyword>
+		<keyword>catch</keyword>
+		<keyword>namespace</keyword>
+		<keyword>class</keyword>
+		<keyword>array</keyword>
+		<keyword>set</keyword>
+		<keyword>unset</keyword>
+		<keyword>package</keyword>
+		<keyword>source</keyword>
+
+    <!-- Additional commands -->
+		<keyword>subst</keyword>
+		<keyword>list</keyword>
+		<keyword>format</keyword>
+		<keyword>lappend</keyword>
+		<keyword>option</keyword>
+		<keyword>expr</keyword>
+		<keyword>puts</keyword>
+		<keyword>winfo</keyword>
+		<keyword>lindex</keyword>
+		<keyword>string</keyword>
+
+
+    <!-- Runtime Library / structural -->
+		<keyword>verified</keyword>
+		<keyword>seteach</keyword>
+		<keyword>fixme</keyword>
+		<keyword>debug</keyword>
+		<keyword>rtl::debug</keyword>
+		<keyword>rtl::verified</keyword>
+		<keyword>rtl::template</keyword>
+		<keyword>rtl::seteach</keyword>
+
+    <!-- Runtime Library / Additional -->
+		<keyword>mkProc</keyword>
+		<keyword>getCreator</keyword>
+		<keyword>properties</keyword>
+		<keyword>lappendunique</keyword>
+		<keyword>rtl::lappendunique</keyword>
+
+    <!-- geometry managers from Tk -->
+		<keyword>place</keyword>
+		<keyword>pack</keyword>
+		<keyword>grid</keyword>
+
+
+    <!-- Additional Tk stuff -->
+		<keyword>image</keyword>
+		<keyword>font</keyword>
+		<keyword>focus</keyword>
+		<keyword>tk</keyword>
+		<keyword>bind</keyword>
+		<keyword>after</keyword>
+
+    <!-- Window classes from Tk, ... -->
+		<keyword>toplevel</keyword>
+		<keyword>frame</keyword>
+		<keyword>entry</keyword>
+		<keyword>listbox</keyword>
+		<keyword>button</keyword>
+		<keyword>radiobutton</keyword>
+		<keyword>checkbutton</keyword>
+		<keyword>canvas</keyword>
+		<keyword>menu</keyword>
+		<keyword>menubutton</keyword>
+		<keyword>text</keyword>
+		<keyword>label</keyword>
+		<keyword>message</keyword>
+		<!--
+			The rest of Tk's windows is omitted: scrollbar, scale, panedwindow, labelframe, spinbox ...
+		-->
+
+    <!-- ... from tkZinc, ... -->
+		<keyword>zinc</keyword>
+  
+    <!-- ... from tkpath, ... -->
+		<keyword>tkpath::gradient</keyword>
+
+    <!-- ... from Runtime Library, ... -->
+		<keyword>rtl_combobox</keyword>
+		<keyword>rtl_tree</keyword>
+		<keyword>rtl_tabset</keyword>
+		<keyword>rtl_mlistbox</keyword>
+		<keyword>rtl_gridwin</keyword>
+		<keyword>rtlysizer</keyword>
+		<keyword>rtlxsizer</keyword>
+		<!--
+			The rest of RTL's windows is omitted: spinbox, decoratedframe, symbolbar, symbolbarcustomize, question ...
+		-->
+
+    <!-- ... from GEI, ... -->
+		<keyword>goolbar</keyword>
+		<keyword>gstripes</keyword>
+		<keyword>zoolbar</keyword>
+		<keyword>gistbox</keyword>
+		<keyword>gooleditor</keyword>
+		<keyword>galette</keyword>
+	</highlighter>
+</highlighters>
+	<!--
+		Local Variables: mode: sgml coding: utf-8-unix sgml-indent-step: 2 sgml-indent-data: t sgml-set-face: t
+		sgml-insert-missing-element-comment: nil End:
+	-->
\ No newline at end of file
diff --git a/applications/content/template/docbook/highlighting/xslthl-config.xml b/applications/content/template/docbook/highlighting/xslthl-config.xml
new file mode 100644
index 0000000..910289a
--- /dev/null
+++ b/applications/content/template/docbook/highlighting/xslthl-config.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+
+xslthl - XSLT Syntax Highlighting
+http://sourceforge.net/projects/xslthl/
+Copyright (C) 2005-2008 Michal Molhanec, Jirka Kosek, Michiel Hendriks
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Michal Molhanec <mol1111 at users.sourceforge.net>
+Jirka Kosek <kosek at users.sourceforge.net>
+Michiel Hendriks <elmuerte at users.sourceforge.net>
+
+-->
+<xslthl-config>
+	<highlighter id="java" file="java-hl.xml" />
+	<highlighter id="delphi" file="delphi-hl.xml" />
+	<highlighter id="pascal" file="delphi-hl.xml" />
+	<highlighter id="ini" file="ini-hl.xml" />
+	<highlighter id="php" file="php-hl.xml" />
+	<highlighter id="myxml" file="myxml-hl.xml" />
+	<highlighter id="m2" file="m2-hl.xml" />
+	<highlighter id="tcl" file="tcl-hl.xml" />
+	<highlighter id="c" file="c-hl.xml" />
+	<highlighter id="cpp" file="cpp-hl.xml" />
+	<highlighter id="csharp" file="csharp-hl.xml" />
+	<highlighter id="python" file="python-hl.xml" />
+	<highlighter id="ruby" file="ruby-hl.xml" />
+	<highlighter id="perl" file="perl-hl.xml" />	
+	<highlighter id="javascript" file="javascript-hl.xml" />
+	<namespace prefix="xslthl" uri="http://xslthl.sf.net" />
+</xslthl-config>
\ No newline at end of file
diff --git a/applications/content/template/docbook/html/admon.xsl b/applications/content/template/docbook/html/admon.xsl
new file mode 100644
index 0000000..78a60d5
--- /dev/null
+++ b/applications/content/template/docbook/html/admon.xsl
@@ -0,0 +1,139 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="*" mode="admon.graphic.width">
+  <xsl:param name="node" select="."/>
+  <xsl:text>25</xsl:text>
+</xsl:template>
+
+<xsl:template match="note|important|warning|caution|tip">
+  <xsl:choose>
+    <xsl:when test="$admon.graphics != 0">
+      <xsl:call-template name="graphical.admonition"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="nongraphical.admonition"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="admon.graphic">
+  <xsl:param name="node" select="."/>
+  <xsl:value-of select="$admon.graphics.path"/>
+  <xsl:choose>
+    <xsl:when test="local-name($node)='note'">note</xsl:when>
+    <xsl:when test="local-name($node)='warning'">warning</xsl:when>
+    <xsl:when test="local-name($node)='caution'">caution</xsl:when>
+    <xsl:when test="local-name($node)='tip'">tip</xsl:when>
+    <xsl:when test="local-name($node)='important'">important</xsl:when>
+    <xsl:otherwise>note</xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$admon.graphics.extension"/>
+</xsl:template>
+
+<xsl:template name="graphical.admonition">
+  <xsl:variable name="admon.type">
+    <xsl:choose>
+      <xsl:when test="local-name(.)='note'">Note</xsl:when>
+      <xsl:when test="local-name(.)='warning'">Warning</xsl:when>
+      <xsl:when test="local-name(.)='caution'">Caution</xsl:when>
+      <xsl:when test="local-name(.)='tip'">Tip</xsl:when>
+      <xsl:when test="local-name(.)='important'">Important</xsl:when>
+      <xsl:otherwise>Note</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="alt">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="$admon.type"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="$admon.style != ''">
+      <xsl:attribute name="style">
+        <xsl:value-of select="$admon.style"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <table border="{$table.border.off}">
+      <!-- omit summary attribute in html5 output -->
+      <xsl:if test="$div.element != 'section'">
+        <xsl:attribute name="summary">
+          <xsl:value-of select="$admon.type"/>
+          <xsl:if test="title|info/title">
+            <xsl:text>: </xsl:text>
+            <xsl:value-of select="(title|info/title)[1]"/>
+          </xsl:if>
+        </xsl:attribute>
+      </xsl:if>
+      <tr>
+        <td rowspan="2" align="center" valign="top">
+          <xsl:attribute name="width">
+            <xsl:apply-templates select="." mode="admon.graphic.width"/>
+          </xsl:attribute>
+          <img alt="[{$alt}]">
+            <xsl:attribute name="src">
+              <xsl:call-template name="admon.graphic"/>
+            </xsl:attribute>
+          </img>
+        </td>
+        <th align="{$direction.align.start}">
+          <xsl:call-template name="anchor"/>
+          <xsl:if test="$admon.textlabel != 0 or title or info/title">
+            <xsl:apply-templates select="." mode="object.title.markup"/>
+          </xsl:if>
+        </th>
+      </tr>
+      <tr>
+        <td align="{$direction.align.start}" valign="top">
+          <xsl:apply-templates/>
+        </td>
+      </tr>
+    </table>
+  </div>
+</xsl:template>
+
+<xsl:template name="nongraphical.admonition">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="$admon.style">
+      <xsl:attribute name="style">
+        <xsl:value-of select="$admon.style"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$admon.textlabel != 0 or title or info/title">
+      <h3 class="title">
+        <xsl:call-template name="anchor"/>
+        <xsl:apply-templates select="." mode="object.title.markup"/>
+      </h3>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="note/title"></xsl:template>
+<xsl:template match="important/title"></xsl:template>
+<xsl:template match="warning/title"></xsl:template>
+<xsl:template match="caution/title"></xsl:template>
+<xsl:template match="tip/title"></xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/annotations.xsl b/applications/content/template/docbook/html/annotations.xsl
new file mode 100644
index 0000000..f010632
--- /dev/null
+++ b/applications/content/template/docbook/html/annotations.xsl
@@ -0,0 +1,169 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:template name="add.annotation.links">
+  <xsl:param name="scripts" select="normalize-space($annotation.js)"/>
+  <xsl:choose>
+    <xsl:when test="contains($scripts, ' ')">
+      <script type="text/javascript" src="{substring-before($scripts, ' ')}"/>
+      <xsl:call-template name="add.annotation.links">
+        <xsl:with-param name="scripts" select="substring-after($scripts, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <script type="text/javascript" src="{$scripts}"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="annotation"/>
+
+<xsl:template name="apply-annotations">
+  <xsl:if test="$annotation.support != 0">
+  <!-- do any annotations apply to the context node? -->
+  <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
+
+  <xsl:variable name="aids">
+    <xsl:for-each select="//annotation">
+      <xsl:if test="@annotates=$id
+                    or starts-with(@annotates, concat($id, ' '))
+                    or contains(@annotates, concat(' ', $id, ' '))
+                    or substring(@annotates, string-length(@annotates)-3)
+                       = concat(' ', $id)">
+        <xsl:value-of select="generate-id()"/>
+        <xsl:text> </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:if test="normalize-space(@annotations) != ''">
+      <xsl:call-template name="annotations-pointed-to">
+        <xsl:with-param name="annotations"
+                        select="normalize-space(@annotations)"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="$aids != ''">
+    <xsl:call-template name="apply-annotations-by-gid">
+      <xsl:with-param name="gids" select="normalize-space($aids)"/>
+    </xsl:call-template>
+  </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="annotations-pointed-to">
+  <xsl:param name="annotations"/>
+  <xsl:choose>
+    <xsl:when test="contains($annotations, ' ')">
+      <xsl:variable name='a'
+                    select="key('id', substring-before($annotations, ' '))"/>
+      <xsl:if test="$a">
+        <xsl:value-of select="generate-id($a)"/>
+        <xsl:text> </xsl:text>
+      </xsl:if>
+      <xsl:call-template name="annotations-pointed-to">
+        <xsl:with-param name="annotations"
+                        select="substring-after($annotations, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name='a'
+                    select="key('id', $annotations)"/>
+      <xsl:if test="$a">
+        <xsl:value-of select="generate-id($a)"/>
+        <xsl:text> </xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="apply-annotations-by-gid">
+  <xsl:param name="gids"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($gids, ' ')">
+      <xsl:variable name="gid" select="substring-before($gids, ' ')"/>
+      <xsl:apply-templates select="key('gid', $gid)"
+                           mode="annotation-inline"/>
+      <xsl:call-template name="apply-annotations-by-gid">
+        <xsl:with-param name="gids"
+                        select="substring-after($gids, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="key('gid', $gids)"
+                           mode="annotation-inline"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="annotation" mode="annotation-inline">
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="title">
+        <xsl:value-of select="title"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>[Annotation #</xsl:text>
+        <xsl:number count="annotation" level="any" format="1"/>
+        <xsl:text>]</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <a href="#annot-{generate-id(.)}" title="{$title}"
+     name="anch-{generate-id(.)}" id="anch-{generate-id(.)}">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:attribute name="onClick">
+      <xsl:text>popup_</xsl:text>
+      <xsl:value-of select="generate-id(.)"/>
+      <xsl:text>.showPopup('anch-</xsl:text>
+      <xsl:value-of select="generate-id(.)"/>
+      <xsl:text>'); return false;</xsl:text>
+    </xsl:attribute>
+    <img src="{$annotation.graphic.open}" border="0" alt="{$title}"/>
+  </a>
+</xsl:template>
+
+<xsl:template match="annotation" mode="annotation-popup">
+  <div class="annotation-nocss">
+    <p>
+      <a name="annot-{generate-id(.)}"/>
+      <xsl:text>Annotation #</xsl:text>
+      <xsl:number count="annotation" level="any" format="1"/>
+      <xsl:text>:</xsl:text>
+    </p>
+  </div>
+
+  <div id="popup-{generate-id(.)}" class="annotation-popup">
+    <xsl:if test="string-length(.) &gt; 300">
+      <xsl:attribute name="style">width:400px</xsl:attribute>
+    </xsl:if>
+
+    <xsl:call-template name="annotation-title"/>
+    <div class="annotation-body">
+      <xsl:apply-templates select="*[local-name(.) != 'title']"/>
+    </div>
+    <div class="annotation-close">
+      <a href="#" onclick="popup_{generate-id(.)}.hidePopup();return false;">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <img src="{$annotation.graphic.close}" alt="X" border="0"/>
+      </a>
+    </div>
+  </div>
+</xsl:template>
+
+<xsl:template name="annotation-title">
+  <div class="annotation-title">
+    <xsl:choose>
+      <xsl:when test="title">
+        <xsl:apply-templates select="title/node()"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>Annotation</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/autoidx-kimber.xsl b/applications/content/template/docbook/html/autoidx-kimber.xsl
new file mode 100644
index 0000000..c396d3a
--- /dev/null
+++ b/applications/content/template/docbook/html/autoidx-kimber.xsl
@@ -0,0 +1,165 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+
+<!-- Documents using the kimber index method must have a lang attribute -->
+<!-- Only one of these should be present in the entity -->
+<!ENTITY lang 'concat(/*/@lang, /*/@xml:lang)'>
+
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:k="http://www.isogen.com/functions/com.isogen.saxoni18n.Saxoni18nService"
+                exclude-result-prefixes="k"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "kimber" method contributed by Eliot Kimber of Innodata Isogen.  -->
+<!-- ==================================================================== -->
+<!--   *** THIS MODULE ONLY WORKS WITH SAXON 6 OR SAXON 8 ***             -->
+<!-- ==================================================================== -->
+
+
+<xsl:include href="../common/autoidx-kimber.xsl"/>
+
+<!-- Java sort apparently works only on lang part, not country -->
+<xsl:param name="sort.lang">
+  <xsl:choose>
+    <xsl:when test="contains(&lang;, '-')">
+      <xsl:value-of select="substring-before(&lang;, '-')"/>
+    </xsl:when>
+    <xsl:when test="contains(&lang;, '_')">
+      <xsl:value-of select="substring-before(&lang;, '_')"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="&lang;"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:template name="generate-kimber-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="not(contains($vendor, 'SAXON '))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+      <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not(function-available('k:getIndexGroupKey'))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+      <xsl:text>Innodata Isogen &#x0A;Java extensions for </xsl:text>
+      <xsl:text>internationalized indexes. &#x0A;Install those </xsl:text>
+      <xsl:text>extensions, or use a different index method.&#x0A;</xsl:text>
+      <xsl:text>For more information, see:&#x0A;</xsl:text>
+      <xsl:text>http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="role">
+    <xsl:if test="$index.on.role != 0">
+      <xsl:value-of select="@role"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:if test="$index.on.type != 0">
+      <xsl:value-of select="@type"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="terms"
+                select="//indexterm[count(.|key('k-group', k:getIndexGroupKey(&lang;, &primary;))[&scope;][1]) = 1 and not(@class = 'endofrange')]"/>
+
+  <xsl:variable name="alphabetical"
+                select="$terms[not(starts-with(
+                k:getIndexGroupKey(&lang;, &primary;),
+                '#NUMERIC'
+                ))]"/>
+
+  <xsl:variable name="others"
+                select="$terms[starts-with(
+                k:getIndexGroupKey(&lang;, &primary;),
+                '#NUMERIC'
+                )]"/>
+
+  <div class="index">
+    <xsl:if test="$others">
+      <div class="indexdev">
+        <h3>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'index symbols'"/>
+          </xsl:call-template>
+        </h3>
+        <dl>
+          <xsl:apply-templates select="$others"
+                               mode="index-symbol-div">
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort lang="{$sort.lang}"
+                select="k:getIndexGroupSortKey(&lang;,
+                        k:getIndexGroupKey(&lang;, &primary;))"/>
+          </xsl:apply-templates>
+        </dl>
+      </div>
+    </xsl:if>
+
+    <xsl:apply-templates select="$alphabetical"
+                         mode="index-div-kimber">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort lang="{$sort.lang}"
+             select="k:getIndexGroupSortKey(&lang;,
+                     k:getIndexGroupKey(&lang;, &primary;))"/>
+    </xsl:apply-templates>
+  </div>
+
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-kimber">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key"
+          select="k:getIndexGroupKey(&lang;, &primary;)"/>
+
+  <xsl:variable name="label"
+          select="k:getIndexGroupLabel(&lang;, $key)"/>
+
+  <xsl:if test="key('k-group', $label)[&scope;][count(.|key('primary', &primary;)[&scope;][1]) = 1]">
+    <div class="indexdiv">
+      <h3>
+        <xsl:value-of select="$label"/>
+      </h3>
+      <dl>
+        <xsl:apply-templates select="key('k-group', $key)[&scope;]
+                            [count(.|key('primary', &primary;)[&scope;]
+                            [1])=1]"
+                             mode="index-primary">
+          <xsl:sort select="&primary;" lang="{$sort.lang}"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+        </xsl:apply-templates>
+      </dl>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/autoidx-kosek.xsl b/applications/content/template/docbook/html/autoidx-kosek.xsl
new file mode 100644
index 0000000..515798f
--- /dev/null
+++ b/applications/content/template/docbook/html/autoidx-kosek.xsl
@@ -0,0 +1,120 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:i="urn:cz-kosek:functions:index"
+                xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
+                xmlns:func="http://exslt.org/functions"
+                xmlns:k="http://www.isogen.com/functions/com.isogen.saxoni18n.Saxoni18nService"
+                xmlns:exslt="http://exslt.org/common"
+                extension-element-prefixes="func exslt"
+                exclude-result-prefixes="func exslt i l k"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "kosek" method contributed by Jirka Kosek. -->
+
+<xsl:include href="../common/autoidx-kosek.xsl"/>
+
+<xsl:template name="generate-kosek-index">
+  <xsl:param name="scope" select="(ancestor::book|/)[last()]"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="contains($vendor, 'libxslt')">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+      <xsl:text>work with the xsltproc XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="contains($vendor, 'Saxonica')">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+      <xsl:text>work with the Saxon 8 XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="$exsl.node.set.available = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the </xsl:text>
+      <xsl:text>exslt:node-set() function. Use a processor that </xsl:text>
+      <xsl:text>has it, or use a different index method.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not(function-available('i:group-index'))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the&#xA;</xsl:text>
+      <xsl:text>index extension functions be imported:&#xA;</xsl:text>
+      <xsl:text>  xsl:import href="common/autoidx-kosek.xsl"</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="role">
+    <xsl:if test="$index.on.role != 0">
+      <xsl:value-of select="@role"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:if test="$index.on.type != 0">
+      <xsl:value-of select="@type"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="terms"
+                select="//indexterm[count(.|key('group-code', i:group-index(&primary;))[&scope;][1]) = 1 and not(@class = 'endofrange')]"/>
+
+  <div class="index">
+    <xsl:apply-templates select="$terms" mode="index-div-kosek">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="i:group-index(&primary;)" data-type="number"/>
+    </xsl:apply-templates>
+  </div>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-kosek">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key"
+                select="i:group-index(&primary;)"/>
+
+  <xsl:variable name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:variable>
+
+  <xsl:if test="key('group-code', $key)[&scope;][count(.|key('primary', &primary;)[&scope;][1]) = 1]">
+    <div class="indexdiv">
+      <h3>
+        <xsl:value-of select="i:group-letter($key)"/>
+      </h3>
+      <dl>
+        <xsl:apply-templates select="key('group-code', $key)[&scope;][count(.|key('primary', &primary;)[&scope;][1])=1]"
+                             mode="index-primary">
+          <xsl:sort select="&primary;" lang="{$lang}"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+        </xsl:apply-templates>
+      </dl>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/autoidx-ng.xsl b/applications/content/template/docbook/html/autoidx-ng.xsl
new file mode 100644
index 0000000..57884cc
--- /dev/null
+++ b/applications/content/template/docbook/html/autoidx-ng.xsl
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheet distribution.
+     See ../README or http://docbook.sf.net/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- You should have this directly in your customization file. -->
+<!-- This file is there only to retain backward compatibility. -->
+<xsl:import href="autoidx-kosek.xsl"/>
+<xsl:param name="index.method">kosek</xsl:param>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/autoidx.xsl b/applications/content/template/docbook/html/autoidx.xsl
new file mode 100644
index 0000000..0d2bec8
--- /dev/null
+++ b/applications/content/template/docbook/html/autoidx.xsl
@@ -0,0 +1,797 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exslt="http://exslt.org/common"
+                extension-element-prefixes="exslt"
+                exclude-result-prefixes="exslt"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "basic" method derived from Jeni Tennison's work. -->
+<!-- The "kosek" method contributed by Jirka Kosek. -->
+<!-- The "kimber" method contributed by Eliot Kimber of Innodata Isogen. -->
+
+<xsl:variable name="kimber.imported" select="0"/>
+<xsl:variable name="kosek.imported" select="0"/>
+
+<xsl:key name="letter"
+         match="indexterm"
+         use="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
+
+<xsl:key name="primary"
+         match="indexterm"
+         use="&primary;"/>
+
+<xsl:key name="secondary"
+         match="indexterm"
+         use="concat(&primary;, &sep;, &secondary;)"/>
+
+<xsl:key name="tertiary"
+         match="indexterm"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+
+<xsl:key name="endofrange"
+         match="indexterm[@class='endofrange']"
+         use="@startref"/>
+
+<xsl:key name="primary-section"
+         match="indexterm[not(secondary) and not(see)]"
+         use="concat(&primary;, &sep;, &section.id;)"/>
+
+<xsl:key name="secondary-section"
+         match="indexterm[not(tertiary) and not(see)]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &section.id;)"/>
+
+<xsl:key name="tertiary-section"
+         match="indexterm[not(see)]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, &section.id;)"/>
+
+<xsl:key name="see-also"
+         match="indexterm[seealso]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso)"/>
+
+<xsl:key name="see"
+         match="indexterm[see]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see)"/>
+
+<xsl:key name="sections" match="*[@id or @xml:id]" use="@id|@xml:id"/>
+
+
+<xsl:template name="generate-index">
+  <xsl:param name="scope" select="(ancestor::book|/)[last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="$index.method = 'kosek'">
+      <xsl:call-template name="generate-kosek-index">
+        <xsl:with-param name="scope" select="$scope"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$index.method = 'kimber'">
+      <xsl:call-template name="generate-kimber-index">
+        <xsl:with-param name="scope" select="$scope"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="generate-basic-index">
+        <xsl:with-param name="scope" select="$scope"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+      
+<xsl:template name="generate-basic-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="role">
+    <xsl:if test="$index.on.role != 0">
+      <xsl:value-of select="@role"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:if test="$index.on.type != 0">
+      <xsl:value-of select="@type"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="terms"
+                select="//indexterm
+                        [count(.|key('letter',
+                          translate(substring(&primary;, 1, 1),
+                             &lowercase;,
+                             &uppercase;))
+                          [&scope;][1]) = 1
+                          and not(@class = 'endofrange')]"/>
+
+  <xsl:variable name="alphabetical"
+                select="$terms[contains(concat(&lowercase;, &uppercase;),
+                                        substring(&primary;, 1, 1))]"/>
+
+  <xsl:variable name="others" select="$terms[not(contains(concat(&lowercase;,
+                                                 &uppercase;),
+                                             substring(&primary;, 1, 1)))]"/>
+  <div class="index">
+    <xsl:if test="$others">
+      <xsl:choose>
+        <xsl:when test="normalize-space($type) != '' and 
+                        $others[@type = $type][count(.|key('primary', &primary;)[&scope;][1]) = 1]">
+          <div class="indexdiv">
+            <h3>
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key" select="'index symbols'"/>
+              </xsl:call-template>
+            </h3>
+            <dl>
+              <xsl:apply-templates select="$others[count(.|key('primary', &primary;)[&scope;][1]) = 1]"
+                                   mode="index-symbol-div">
+                <xsl:with-param name="position" select="position()"/>                                
+                <xsl:with-param name="scope" select="$scope"/>
+                <xsl:with-param name="role" select="$role"/>
+                <xsl:with-param name="type" select="$type"/>
+                <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+              </xsl:apply-templates>
+            </dl>
+          </div>
+        </xsl:when>
+        <xsl:when test="normalize-space($type) != ''"> 
+          <!-- Output nothing, as there isn't a match for $other using this $type -->
+        </xsl:when>  
+        <xsl:otherwise>
+          <div class="indexdiv">
+            <h3>
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key" select="'index symbols'"/>
+              </xsl:call-template>
+            </h3>
+            <dl>
+              <xsl:apply-templates select="$others[count(.|key('primary',
+                                          &primary;)[&scope;][1]) = 1]"
+                                  mode="index-symbol-div">
+                <xsl:with-param name="position" select="position()"/>                                
+                <xsl:with-param name="scope" select="$scope"/>
+                <xsl:with-param name="role" select="$role"/>
+                <xsl:with-param name="type" select="$type"/>
+                <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+              </xsl:apply-templates>
+            </dl>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:apply-templates select="$alphabetical[count(.|key('letter',
+                                 translate(substring(&primary;, 1, 1),
+                                           &lowercase;,&uppercase;))[&scope;][1]) = 1]"
+                         mode="index-div-basic">
+      <xsl:with-param name="position" select="position()"/>
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+    </xsl:apply-templates>
+  </div>
+</xsl:template>
+
+<!-- This template not used if html/autoidx-kosek.xsl is imported -->
+<xsl:template name="generate-kosek-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="contains($vendor, 'libxslt')">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+      <xsl:text>work with the xsltproc XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+
+  <xsl:if test="$exsl.node.set.available = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the </xsl:text>
+      <xsl:text>exslt:node-set() function. Use a processor that </xsl:text>
+      <xsl:text>has it, or use a different index method.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="$kosek.imported = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the&#xA;</xsl:text>
+      <xsl:text>kosek index extensions be imported:&#xA;</xsl:text>
+      <xsl:text>  xsl:import href="html/autoidx-kosek.xsl"</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+</xsl:template>
+
+<!-- This template not used if html/autoidx-kimber.xsl is imported -->
+<xsl:template name="generate-kimber-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="not(contains($vendor, 'SAXON '))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+      <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="$kimber.imported = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the&#xA;</xsl:text>
+      <xsl:text>kimber index extensions be imported:&#xA;</xsl:text>
+      <xsl:text>  xsl:import href="html/autoidx-kimber.xsl"</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-basic">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key"
+                select="translate(substring(&primary;, 1, 1),
+                         &lowercase;,&uppercase;)"/>
+
+  <xsl:if test="key('letter', $key)[&scope;]
+                [count(.|key('primary', &primary;)[&scope;][1]) = 1]">
+    <div class="indexdiv">
+      <xsl:if test="contains(concat(&lowercase;, &uppercase;), $key)">
+        <h3>
+          <xsl:value-of select="translate($key, &lowercase;, &uppercase;)"/>
+        </h3>
+      </xsl:if>
+      <dl>
+        <xsl:apply-templates select="key('letter', $key)[&scope;]
+                                     [count(.|key('primary', &primary;)
+                                     [&scope;][1])=1]"
+                             mode="index-primary">
+          <xsl:with-param name="position" select="position()"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+          <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+        </xsl:apply-templates>
+      </dl>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-symbol-div">
+  <xsl:param name="scope" select="/"/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="translate(substring(&primary;, 1, 1),
+                                             &lowercase;,&uppercase;)"/>
+
+  <xsl:apply-templates select="key('letter', $key)
+                               [&scope;][count(.|key('primary', &primary;)[1]) = 1]"
+                       mode="index-primary">
+    <xsl:with-param name="position" select="position()"/>
+    <xsl:with-param name="scope" select="$scope"/>
+    <xsl:with-param name="role" select="$role"/>
+    <xsl:with-param name="type" select="$type"/>
+    <xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-primary">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="&primary;"/>
+  <xsl:variable name="refs" select="key('primary', $key)[&scope;]"/>
+  <dt>
+    <xsl:for-each select="$refs/primary">
+      <xsl:if test="@id or @xml:id">
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <a name="{(@id|@xml:id)[1]}"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <span>
+              <xsl:call-template name="id.attribute"/>
+            </span>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:value-of select="primary"/>
+    <xsl:choose>
+      <xsl:when test="$index.links.to.section = 1">
+        <xsl:for-each select="$refs[@zone != '' or generate-id() = generate-id(key('primary-section', concat($key, &sep;, &section.id;))[&scope;][1])]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:for-each select="$refs[not(see) 
+                              and not(secondary)][&scope;]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$refs[not(secondary)]/*[self::see]">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &sep;, &sep;, see))[&scope;][1])]"
+                           mode="index-see">
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+        <xsl:sort select="translate(see, &lowercase;, &uppercase;)"/>
+      </xsl:apply-templates>
+    </xsl:if>
+  </dt>
+  <xsl:choose>
+    <xsl:when test="$refs/secondary or $refs[not(secondary)]/*[self::seealso]">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &sep;, &sep;, seealso))[&scope;][1])]"
+                               mode="index-seealso">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(seealso, &lowercase;, &uppercase;)"/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="$refs[secondary and count(.|key('secondary', concat($key, &sep;, &secondary;))[&scope;][1]) = 1]" 
+                               mode="index-secondary">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(&secondary;, &lowercase;, &uppercase;)"/>
+          </xsl:apply-templates>
+        </dl>
+      </dd>
+    </xsl:when>
+    <!-- HTML5 requires dd for each dt -->
+    <xsl:when test="$div.element = 'section'">
+      <dd></dd>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-secondary">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;)"/>
+  <xsl:variable name="refs" select="key('secondary', $key)[&scope;]"/>
+  <dt>
+    <xsl:for-each select="$refs/secondary">
+      <xsl:if test="@id or @xml:id">
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <a name="{(@id|@xml:id)[1]}"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <span>
+              <xsl:call-template name="id.attribute"/>
+            </span>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:value-of select="secondary"/>
+    <xsl:choose>
+      <xsl:when test="$index.links.to.section = 1">
+        <xsl:for-each select="$refs[@zone != '' or generate-id() = generate-id(key('secondary-section', concat($key, &sep;, &section.id;))[&scope;][1])]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:for-each select="$refs[not(see) 
+                                and not(tertiary)][&scope;]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$refs[not(tertiary)]/*[self::see]">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, see))[&scope;][1])]"
+                           mode="index-see">
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+        <xsl:sort select="translate(see, &lowercase;, &uppercase;)"/>
+      </xsl:apply-templates>
+    </xsl:if>
+  </dt>
+  <xsl:choose>
+    <xsl:when test="$refs/tertiary or $refs[not(tertiary)]/*[self::seealso]">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, seealso))[&scope;][1])]"
+                               mode="index-seealso">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(seealso, &lowercase;, &uppercase;)"/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="$refs[tertiary and count(.|key('tertiary', concat($key, &sep;, &tertiary;))[&scope;][1]) = 1]" 
+                               mode="index-tertiary">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(&tertiary;, &lowercase;, &uppercase;)"/>
+          </xsl:apply-templates>
+        </dl>
+      </dd>
+    </xsl:when>
+    <!-- HTML5 requires dd for each dt -->
+    <xsl:when test="$div.element = 'section'">
+      <dd></dd>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-tertiary">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+  <xsl:variable name="refs" select="key('tertiary', $key)[&scope;]"/>
+  <dt>
+    <xsl:for-each select="$refs/tertiary">
+      <xsl:if test="@id or @xml:id">
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <a name="{(@id|@xml:id)[1]}"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <span>
+              <xsl:call-template name="id.attribute"/>
+            </span>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:value-of select="tertiary"/>
+    <xsl:choose>
+      <xsl:when test="$index.links.to.section = 1">
+        <xsl:for-each select="$refs[@zone != '' or generate-id() = generate-id(key('tertiary-section', concat($key, &sep;, &section.id;))[&scope;][1])]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:for-each select="$refs[not(see)][&scope;]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$refs/see">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see))[&scope;][1])]"
+                           mode="index-see">
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+        <xsl:sort select="translate(see, &lowercase;, &uppercase;)"/>
+      </xsl:apply-templates>
+    </xsl:if>
+  </dt>
+  <xsl:choose>
+    <xsl:when test="$refs/seealso">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso))[&scope;][1])]"
+                               mode="index-seealso">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(seealso, &lowercase;, &uppercase;)"/>
+          </xsl:apply-templates>
+        </dl>
+      </dd>
+    </xsl:when>
+    <!-- HTML5 requires dd for each dt -->
+    <xsl:when test="$div.element = 'section'">
+      <dd></dd>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="reference">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="position"/>
+  <xsl:param name="separator" select="''"/>
+  
+  <xsl:variable name="term.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.term.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="number.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.number.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="range.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.range.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$separator != ''">
+      <xsl:value-of select="$separator"/>
+    </xsl:when>
+    <xsl:when test="$position = 1">
+      <xsl:value-of select="$term.separator"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$number.separator"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="@zone and string(@zone)">
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="normalize-space(@zone)"/>
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <a>
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:variable name="title">
+          <xsl:choose>
+            <xsl:when test="&section;/titleabbrev and $index.prefer.titleabbrev != 0">
+              <xsl:apply-templates select="&section;" mode="titleabbrev.markup"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="&section;" mode="title.markup"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+
+        <xsl:attribute name="href">
+          <xsl:choose>
+            <xsl:when test="$index.links.to.section = 1">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="&section;"/>
+                <xsl:with-param name="context" 
+                                select="(//index[&scope;] | //setindex[&scope;])[1]"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="."/>
+                <xsl:with-param name="context" 
+                                select="(//index[&scope;] | //setindex[&scope;])[1]"/>
+              </xsl:call-template>
+            </xsl:otherwise>
+          </xsl:choose>
+
+        </xsl:attribute>
+
+        <xsl:value-of select="$title"/> <!-- text only -->
+      </a>
+
+      <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
+      <xsl:if test="key('endofrange', $id)[&scope;]">
+        <xsl:apply-templates select="key('endofrange', $id)[&scope;][last()]"
+                             mode="reference">
+          <xsl:with-param name="position" select="position()"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+          <xsl:with-param name="separator" select="$range.separator"/>
+        </xsl:apply-templates>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="reference">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="zones"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($zones, ' ')">
+      <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
+      <xsl:variable name="target" select="key('sections', $zone)"/>
+
+      <a>
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target[1]"/>
+            <xsl:with-param name="context" select="//index[&scope;][1]"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+      </a>
+      <xsl:text>, </xsl:text>
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="substring-after($zones, ' ')"/>
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="zone" select="$zones"/>
+      <xsl:variable name="target" select="key('sections', $zone)"/>
+
+      <a>
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target[1]"/>
+            <xsl:with-param name="context" select="//index[&scope;][1]"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+      </a>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-see">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:text> (</xsl:text>
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'see'"/>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:value-of select="see"/>
+  <xsl:text>)</xsl:text>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-seealso">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:for-each select="seealso">
+    <xsl:sort select="translate(., &lowercase;, &uppercase;)"/>
+    <dt>
+    <xsl:text>(</xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'seealso'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="."/>
+    <xsl:text>)</xsl:text>
+    </dt>
+    <xsl:if test="$div.element = 'section'">
+      <dd></dd>
+    </xsl:if>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="*" mode="index-title-content">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="&section;" mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template name="index.separator">
+  <xsl:param name="key" select="''"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$key = 'index.term.separator'">
+      <xsl:choose>
+        <!-- Use the override if not blank -->
+        <xsl:when test="$index.term.separator != ''">
+          <xsl:copy-of select="$index.term.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="lang" select="$lang"/>
+            <xsl:with-param name="context">index</xsl:with-param>
+            <xsl:with-param name="name">term-separator</xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$key = 'index.number.separator'">
+      <xsl:choose>
+        <!-- Use the override if not blank -->
+        <xsl:when test="$index.number.separator != ''">
+          <xsl:copy-of select="$index.number.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="lang" select="$lang"/>
+            <xsl:with-param name="context">index</xsl:with-param>
+            <xsl:with-param name="name">number-separator</xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$key = 'index.range.separator'">
+      <xsl:choose>
+        <!-- Use the override if not blank -->
+        <xsl:when test="$index.range.separator != ''">
+          <xsl:copy-of select="$index.range.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="lang" select="$lang"/>
+            <xsl:with-param name="context">index</xsl:with-param>
+            <xsl:with-param name="name">range-separator</xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/autotoc.xsl b/applications/content/template/docbook/html/autotoc.xsl
new file mode 100644
index 0000000..3188b8a
--- /dev/null
+++ b/applications/content/template/docbook/html/autotoc.xsl
@@ -0,0 +1,726 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:variable name="toc.listitem.type">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">dt</xsl:when>
+    <xsl:otherwise>li</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<!-- this is just hack because dl and ul aren't completely isomorphic -->
+<xsl:variable name="toc.dd.type">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">dd</xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<xsl:template name="make.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+  <xsl:param name="nodes" select="/NOT-AN-ELEMENT"/>
+
+  <xsl:variable name="nodes.plus" select="$nodes | qandaset"/>
+
+  <xsl:variable name="toc.title">
+    <xsl:if test="$toc.title.p">
+      <xsl:choose>
+        <xsl:when test="$make.clean.html != 0">
+          <div class="toc-title">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key">TableofContents</xsl:with-param>
+            </xsl:call-template>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <p>
+            <b>
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key">TableofContents</xsl:with-param>
+              </xsl:call-template>
+            </b>
+          </p>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$manual.toc != ''">
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id"/>
+      </xsl:variable>
+      <xsl:variable name="toc" select="document($manual.toc, .)"/>
+      <xsl:variable name="tocentry" select="$toc//tocentry[@linkend=$id]"/>
+      <xsl:if test="$tocentry and $tocentry/*">
+        <div class="toc">
+          <xsl:copy-of select="$toc.title"/>
+          <xsl:element name="{$toc.list.type}">
+            <xsl:call-template name="manual-toc">
+              <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
+            </xsl:call-template>
+          </xsl:element>
+        </div>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$qanda.in.toc != 0">
+          <xsl:if test="$nodes.plus">
+            <div class="toc">
+              <xsl:copy-of select="$toc.title"/>
+              <xsl:element name="{$toc.list.type}">
+                <xsl:apply-templates select="$nodes.plus" mode="toc">
+                  <xsl:with-param name="toc-context" select="$toc-context"/>
+                </xsl:apply-templates>
+              </xsl:element>
+            </div>
+          </xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$nodes">
+            <div class="toc">
+              <xsl:copy-of select="$toc.title"/>
+              <xsl:element name="{$toc.list.type}">
+                <xsl:apply-templates select="$nodes" mode="toc">
+                  <xsl:with-param name="toc-context" select="$toc-context"/>
+                </xsl:apply-templates>
+              </xsl:element>
+            </div>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="make.lots">
+  <xsl:param name="toc.params" select="''"/>
+  <xsl:param name="toc"/>
+
+  <xsl:if test="contains($toc.params, 'toc')">
+    <xsl:copy-of select="$toc"/>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'figure')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'figure'"/>
+      <xsl:with-param name="nodes" select=".//figure"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'table')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'table'"/>
+      <xsl:with-param name="nodes" select=".//table[not(@tocentry = 0)]"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'example')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'example'"/>
+      <xsl:with-param name="nodes" select=".//example"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'equation')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'equation'"/>
+      <xsl:with-param name="nodes" select=".//equation[title or info/title]"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'procedure')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'procedure'"/>
+      <xsl:with-param name="nodes" select=".//procedure[title]"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="set.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:call-template name="make.toc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+    <xsl:with-param name="nodes" select="book|setindex|set"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="division.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:call-template name="make.toc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+    <xsl:with-param name="nodes" select="part|reference
+                                         |preface|chapter|appendix
+                                         |article
+                                         |topic
+                                         |bibliography|glossary|index
+                                         |refentry
+                                         |bridgehead[$bridgehead.in.toc != 0]"/>
+
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="component.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:call-template name="make.toc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+    <xsl:with-param name="nodes" select="section|sect1
+                                         |simplesect[$simplesect.in.toc != 0]
+                                         |topic
+                                         |refentry
+                                         |article|bibliography|glossary
+                                         |appendix|index
+                                         |bridgehead[not(@renderas)
+                                                     and $bridgehead.in.toc != 0]
+                                         |.//bridgehead[@renderas='sect1'
+                                                        and $bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="component.toc.separator">
+  <!-- Customize to output something between
+       component.toc and first output -->
+</xsl:template>
+
+<xsl:template name="section.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:call-template name="make.toc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+    <xsl:with-param name="nodes"
+                    select="section|sect1|sect2|sect3|sect4|sect5|refentry
+                           |bridgehead[$bridgehead.in.toc != 0]"/>
+
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="section.toc.separator">
+  <!-- Customize to output something between
+       section.toc and first output -->
+</xsl:template>
+<!-- ==================================================================== -->
+
+<xsl:template name="subtoc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="nodes" select="NOT-AN-ELEMENT"/>
+
+  <xsl:variable name="nodes.plus" select="$nodes | qandaset"/>
+
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:choose>
+        <xsl:when test="$qanda.in.toc != 0">
+          <xsl:apply-templates mode="toc" select="$nodes.plus">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="toc" select="$nodes">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="depth">
+    <xsl:choose>
+      <xsl:when test="local-name(.) = 'section'">
+        <xsl:value-of select="count(ancestor::section) + 1"/>
+      </xsl:when>
+      <xsl:when test="local-name(.) = 'sect1'">1</xsl:when>
+      <xsl:when test="local-name(.) = 'sect2'">2</xsl:when>
+      <xsl:when test="local-name(.) = 'sect3'">3</xsl:when>
+      <xsl:when test="local-name(.) = 'sect4'">4</xsl:when>
+      <xsl:when test="local-name(.) = 'sect5'">5</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect1'">1</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect2'">2</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect3'">3</xsl:when>
+      <xsl:when test="local-name(.) = 'topic'">1</xsl:when>
+      <xsl:when test="local-name(.) = 'simplesect'">
+        <!-- sigh... -->
+        <xsl:choose>
+          <xsl:when test="local-name(..) = 'section'">
+            <xsl:value-of select="count(ancestor::section)"/>
+          </xsl:when>
+          <xsl:when test="local-name(..) = 'sect1'">2</xsl:when>
+          <xsl:when test="local-name(..) = 'sect2'">3</xsl:when>
+          <xsl:when test="local-name(..) = 'sect3'">4</xsl:when>
+          <xsl:when test="local-name(..) = 'sect4'">5</xsl:when>
+          <xsl:when test="local-name(..) = 'sect5'">6</xsl:when>
+          <xsl:when test="local-name(..) = 'topic'">2</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect1'">2</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect2'">3</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect3'">4</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:call-template name="toc.line">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+    <xsl:if test="$toc.listitem.type = 'li' and
+                  ( (self::set or self::book or self::part) or 
+                        $toc.section.depth > $depth) and 
+                  ( ($qanda.in.toc = 0 and count($nodes)&gt;0) or
+                    ($qanda.in.toc != 0 and count($nodes.plus)&gt;0) )
+                  and $toc.max.depth > $depth.from.context">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li' and
+                  ( (self::set or self::book or self::part) or 
+                        $toc.section.depth > $depth) and 
+                ( ($qanda.in.toc = 0 and count($nodes)&gt;0) or
+                  ($qanda.in.toc != 0 and count($nodes.plus)&gt;0) )
+                and $toc.max.depth > $depth.from.context">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="toc.line">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="depth" select="1"/>
+  <xsl:param name="depth.from.context" select="8"/>
+
+ <span>
+  <xsl:attribute name="class"><xsl:value-of select="local-name(.)"/></xsl:attribute>
+
+  <!-- * if $autotoc.label.in.hyperlink is zero, then output the label -->
+  <!-- * before the hyperlinked title (as the DSSSL stylesheet does) -->
+  <xsl:if test="$autotoc.label.in.hyperlink = 0">
+    <xsl:variable name="label">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:copy-of select="$label"/>
+    <xsl:if test="$label != ''">
+      <xsl:value-of select="$autotoc.label.separator"/>
+    </xsl:if>
+  </xsl:if>
+
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="context" select="$toc-context"/>
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    
+  <!-- * if $autotoc.label.in.hyperlink is non-zero, then output the label -->
+  <!-- * as part of the hyperlinked title -->
+  <xsl:if test="not($autotoc.label.in.hyperlink = 0)">
+    <xsl:variable name="label">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:copy-of select="$label"/>
+    <xsl:if test="$label != ''">
+      <xsl:value-of select="$autotoc.label.separator"/>
+    </xsl:if>
+  </xsl:if>
+
+    <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+  </a>
+  </span>
+</xsl:template>
+
+<xsl:template match="book" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="part|reference
+                                         |preface|chapter|appendix
+                                         |article
+                                         |topic
+                                         |bibliography|glossary|index
+                                         |refentry
+                                         |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="setindex" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <!-- If the setindex tag is not empty, it should be it in the TOC -->
+  <xsl:if test="* or $generate.index != 0">
+    <xsl:call-template name="subtoc">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="part|reference" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="appendix|chapter|article|topic
+                                         |index|glossary|bibliography
+                                         |preface|reference|refentry
+                                         |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix|article|topic" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="section|sect1
+                                         |simplesect[$simplesect.in.toc != 0]
+                                         |topic
+                                         |refentry
+                                         |glossary|bibliography|index
+                                         |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect1" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="sect2
+                                         |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect2" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="sect3
+                                         |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect3" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="sect4
+                                         |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect4" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="sect5
+                                         |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect5" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="simplesect" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="section|refentry
+                                         |simplesect[$simplesect.in.toc != 0]
+                                         |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="topic" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="section|refentry
+                                         |simplesect[$simplesect.in.toc != 0]
+                                         |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:if test="$bridgehead.in.toc != 0">
+    <xsl:call-template name="subtoc">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="index" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <!-- If the index tag is not empty, it should be it in the TOC -->
+  <xsl:if test="* or $generate.index != 0">
+    <xsl:call-template name="subtoc">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refentry" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="refmeta" select=".//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select=".//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+  <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/>
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]"
+			     mode="titleabbrev.markup"/>
+      </xsl:when>
+      <xsl:when test="$refdesc">
+        <xsl:apply-templates select="$refdesc"
+			     mode="titleabbrev.markup"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]"
+			     mode="titleabbrev.markup"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <span class='refentrytitle'>
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:copy-of select="$title"/>
+      </a>
+    </span>
+    <span class='refpurpose'>
+      <xsl:if test="$annotate.toc != 0">
+        <!-- * DocBook 5 says inlinemediaobject (among other things) -->
+        <!-- * is allowed in refpurpose; so we need to run -->
+        <!-- * apply-templates on refpurpose here, instead of value-of  -->
+        <xsl:apply-templates select="refnamediv/refpurpose" mode="no.anchor.mode"/>
+      </xsl:if>
+    </span>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="title" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="object" select=".."/>
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </a>
+</xsl:template>
+
+<xsl:template name="manual-toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="tocentry"/>
+
+  <!-- be careful, we don't want to change the current document to the other tree! -->
+
+  <xsl:if test="$tocentry">
+    <xsl:variable name="node" select="key('id', $tocentry/@linkend)"/>
+
+    <xsl:element name="{$toc.listitem.type}">
+      <xsl:variable name="label">
+        <xsl:apply-templates select="$node" mode="label.markup"/>
+      </xsl:variable>
+      <xsl:copy-of select="$label"/>
+      <xsl:if test="$label != ''">
+        <xsl:value-of select="$autotoc.label.separator"/>
+      </xsl:if>
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$node"/>
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$node" mode="titleabbrev.markup"/>
+      </a>
+    </xsl:element>
+
+    <xsl:if test="$tocentry/*">
+      <xsl:element name="{$toc.list.type}">
+        <xsl:call-template name="manual-toc">
+          <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
+        </xsl:call-template>
+      </xsl:element>
+    </xsl:if>
+
+    <xsl:if test="$tocentry/following-sibling::*">
+      <xsl:call-template name="manual-toc">
+        <xsl:with-param name="tocentry" select="$tocentry/following-sibling::*[1]"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="list.of.titles">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="titles" select="'table'"/>
+  <xsl:param name="nodes" select=".//table"/>
+
+  <xsl:if test="$nodes">
+    <div class="list-of-{$titles}s">
+      <xsl:choose>
+        <xsl:when test="$make.clean.html != 0">
+          <div class="toc-title">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key">
+                <xsl:choose>
+                  <xsl:when test="$titles='table'">ListofTables</xsl:when>
+                  <xsl:when test="$titles='figure'">ListofFigures</xsl:when>
+                  <xsl:when test="$titles='equation'">ListofEquations</xsl:when>
+                  <xsl:when test="$titles='example'">ListofExamples</xsl:when>
+                  <xsl:when test="$titles='procedure'">ListofProcedures</xsl:when>
+                  <xsl:otherwise>ListofUnknown</xsl:otherwise>
+                </xsl:choose>
+              </xsl:with-param>
+            </xsl:call-template>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <p>
+            <b>
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key">
+                  <xsl:choose>
+                    <xsl:when test="$titles='table'">ListofTables</xsl:when>
+                    <xsl:when test="$titles='figure'">ListofFigures</xsl:when>
+                    <xsl:when test="$titles='equation'">ListofEquations</xsl:when>
+                    <xsl:when test="$titles='example'">ListofExamples</xsl:when>
+                    <xsl:when test="$titles='procedure'">ListofProcedures</xsl:when>
+                    <xsl:otherwise>ListofUnknown</xsl:otherwise>
+                  </xsl:choose>
+                </xsl:with-param>
+              </xsl:call-template>
+            </b>
+          </p>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:element name="{$toc.list.type}">
+        <xsl:apply-templates select="$nodes" mode="toc">
+          <xsl:with-param name="toc-context" select="$toc-context"/>
+        </xsl:apply-templates>
+      </xsl:element>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation|procedure" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:variable name="label">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:copy-of select="$label"/>
+    <xsl:if test="$label != ''">
+      <xsl:value-of select="$autotoc.label.separator"/>
+    </xsl:if>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="toc-context" select="$toc-context"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+    </a>
+  </xsl:element>
+</xsl:template>
+
+<!-- Used only if qanda.in.toc parameter is non-zero -->
+<xsl:template match="qandaset" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="qandadiv | qandaentry"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="qandadiv|qandaentry" mode="toc">
+  <xsl:apply-templates select="." mode="qandatoc.mode"/>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/html/biblio-iso690.xsl b/applications/content/template/docbook/html/biblio-iso690.xsl
new file mode 100644
index 0000000..c51d271
--- /dev/null
+++ b/applications/content/template/docbook/html/biblio-iso690.xsl
@@ -0,0 +1,1300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     The original code for processing bibliography in ISO690 style
+     was provided by Jana Dvorakova <jana4u@seznam.cz>
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- if biblioentry.alt.primary.seps is set to nonzero value then use alternative separators for primary responsibility - $alt.person.two.sep, $alt.person.last.sep, $alt.person.more.sep  -->
+<xsl:param name="biblioentry.alt.primary.seps" select="0"/>
+
+<!-- how many authors will be printed if there is more than three authors - set to number 1 (default value), 2 or 3 -->
+<xsl:param name="biblioentry.primary.count" select="1"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="iso690.makecitation">
+<!-- Types of resources -->
+  <xsl:choose>
+
+    <!-- SYSTEMS OF ELECTRONIC COMMUNICATION : ENTIRE MESSAGE SYSTEM -->
+    <!-- same as Monographs -->
+    <xsl:when test="./@role='messagesystem'">
+      <xsl:call-template name="iso690.monogr"/>
+    </xsl:when>
+
+    <!-- SYSTEMS OF ELECTRONIC COMMUNICATION : ELECTRONIC MESSAGES -->
+    <!-- same as Contributions to Monographs -->
+    <xsl:when test="./@role='message'">
+      <xsl:call-template name="iso690.paper.mon"/>
+    </xsl:when>
+
+    <!-- SERIALS -->
+    <xsl:when test="./@role='serial' or ./biblioid/@class='issn' or ./issn">
+      <xsl:call-template name="iso690.serial"/>
+    </xsl:when>
+
+    <!-- PARTS OF MONOGRAPHS -->
+    <xsl:when test="./@role='part' or (./bibliomisc[@role='secnum']|./bibliomisc[@role='sectitle'])">
+      <xsl:call-template name="iso690.monogr.part"/>
+    </xsl:when>
+
+    <!-- CONTRIBUTIONS TO MONOGRAPHS -->
+    <xsl:when test="./@role='contribution' or (./biblioset/@relation='part' and ./biblioset/@relation='book')">
+      <xsl:call-template name="iso690.paper.mon"/>
+    </xsl:when>
+
+    <!-- ARTICLES, ETC., IN SERIALS -->
+    <xsl:when test="./@role='article' or (./biblioset/@relation='journal' and ./biblioset/@relation='article')">
+      <xsl:call-template name="iso690.article"/>
+    </xsl:when>
+
+    <!-- PATENT DOCUMENTS -->
+    <xsl:when test="./@role='patent' or (./bibliomisc[@role='patenttype'] and ./bibliomisc[@role='patentnum'])">
+      <xsl:call-template name="iso690.patent"/>
+    </xsl:when>
+
+    <!-- MONOGRAPHS -->
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.monogr"/>
+    </xsl:otherwise>
+
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- MONOGRAPHS -->
+<xsl:template name="iso690.monogr">
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility -->
+  <xsl:call-template name="iso690.secondary"/>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition"/>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.pub"/>
+  <!-- Extent -->
+  <xsl:call-template name="iso690.extent"/>
+  <!-- Series -->
+  <xsl:call-template name="iso690.serie"/>
+  <!-- Notes -->
+  <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access -->
+  <xsl:call-template name="iso690.access"/>
+  <!-- Standard number -->
+  <xsl:call-template name="iso690.isbn"/>
+</xsl:template>
+
+<!-- SERIALS -->
+<xsl:template name="iso690.serial">
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Responsibility [nonEL] -->
+  <xsl:if test="not(./bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition">
+    <xsl:with-param name="after" select="./bibliomisc[@role='issuing']"/>
+  </xsl:call-template>
+  <!-- Issue designation (date and/or num) [nonEL] -->
+  <xsl:if test="not(./bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.issuing"/>
+  </xsl:if>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.pub"/>
+  <!-- Series -->
+  <xsl:call-template name="iso690.serie"/>
+  <!-- Notes -->
+  <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access -->
+  <xsl:call-template name="iso690.access"/>
+  <!-- Standard number -->
+  <xsl:call-template name="iso690.issn"/>
+</xsl:template>
+
+<!-- PARTS OF MONOGRAPHS -->
+<xsl:template name="iso690.monogr.part">
+  <!-- Primary responsibility of host document -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title and Type of medium of host document -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility of host document [EL] -->
+  <xsl:if test="./bibliomisc[@role='medium']">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition">
+    <xsl:with-param name="after" select="./volumenum"/>
+  </xsl:call-template>
+  <!-- Numeration of the part [nonEL]-->
+  <xsl:if test="not(./bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.partnr"/>
+  <!-- Subordinate responsibility [nonEL] -->
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.pub"/>
+  <!-- Location within host -->
+  <xsl:call-template name="iso690.part.location"/>
+  <xsl:if test="./bibliomisc[@role='medium']">
+  <!-- Numeration within host document [EL] -->
+  <!-- Notes [EL] -->
+    <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access [EL] -->
+    <xsl:call-template name="iso690.access"/>
+  <!-- Standard number [EL] -->
+    <xsl:call-template name="iso690.isbn"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- CONTRIBUTIONS TO MONOGRAPHS -->
+<xsl:template name="iso690.paper.mon">
+<!-- Contribution -->
+  <xsl:apply-templates mode="iso690.paper.part" select="./biblioset[@relation='part']"/>
+<!-- In -->
+  <xsl:text>In </xsl:text>
+<!-- Host -->
+  <xsl:apply-templates mode="iso690.paper.book" select="./biblioset[@relation='book']"/>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.paper.part">
+<!-- Contribution -->
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title -->
+  <xsl:call-template name="iso690.title">
+    <xsl:with-param name="italic" select="0"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.paper.book">
+<!-- Host -->
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility [EL] -->
+  <xsl:if test="./bibliomisc[@role='medium']">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition"/>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template  name="iso690.paper.pub"/>
+  <!-- Numeration within host document [EL] -->
+  <!-- Location within host -->
+  <xsl:call-template name="iso690.location"/>
+  <xsl:if test="./bibliomisc[@role='medium']">
+  <!-- Notes [EL] -->
+    <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access [EL] -->
+    <xsl:call-template name="iso690.access"/>
+  <!-- Standard number [EL] -->
+    <xsl:call-template name="iso690.isbn"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ARTICLES, ETC., IN SERIALS -->
+<xsl:template name="iso690.article">
+<!-- Article -->
+  <xsl:apply-templates mode="iso690.article.art" select="./biblioset[@relation='article']"/>
+<!-- Serial -->
+  <xsl:apply-templates mode="iso690.article.jour" select="./biblioset[@relation='journal']"/>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.article.art">
+<!-- Article -->
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title -->
+  <xsl:call-template name="iso690.title">
+    <xsl:with-param name="italic" select="0"/>
+  </xsl:call-template>
+  <!-- Subordinate responsibility [nonEL] -->
+  <xsl:if test="not(../*/bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.article.jour">
+<!-- Serial -->
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition">
+    <xsl:with-param name="after" select="./pubdate[not(@role='issuing')]|./volumenum|./issuenum|./pagenums"/>
+  </xsl:call-template>
+  <!-- Number designation [EL] -->
+  <!-- Location within host -->
+  <xsl:call-template name="iso690.article.location"/>
+  <xsl:if test="./bibliomisc[@role='medium']">
+  <!-- Notes [EL] -->
+    <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access [EL] -->
+    <xsl:call-template name="iso690.access"/>
+  <!-- Standard number [EL] -->
+    <xsl:call-template name="iso690.issn"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- PATENT DOCUMENTS -->
+<xsl:template name="iso690.patent">
+  <!-- Primary responsibility (applicant) -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title of the invention -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility -->
+  <xsl:call-template name="iso690.secondary"/>
+  <!-- Notes -->
+  <xsl:call-template name="iso690.notice"/>
+  <!-- Identification -->
+  <xsl:call-template name="iso690.pat.ident"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Elements -->
+
+<!-- Primary responsibility -->
+<xsl:template name="iso690.primary">
+  <xsl:param name="primary.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./authorgroup/author|./author">
+      <xsl:call-template name="iso690.author.list">
+        <xsl:with-param name="person.list" select=".//authorgroup/author|.//author"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="./authorgroup/editor|./editor">
+      <xsl:call-template name="iso690.author.list">
+        <xsl:with-param name="person.list" select=".//authorgroup/editor|.//editor"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="./authorgroup/corpauthor|./corpauthor">
+      <xsl:call-template name="iso690.author.list">
+        <xsl:with-param name="person.list" select=".//authorgroup/corpauthor|.//corpauthor"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="(./firstname)and(./surname)">
+        <xsl:call-template name="iso690.author"/>
+        <xsl:call-template name="iso690.endsep">
+          <xsl:with-param name="text" select="string(./firstname[1])"/>
+          <xsl:with-param name="sep" select="$primary.sep"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.author.list">
+  <xsl:param name="person.list"
+             select="author|corpauthor|editor"/>
+  <xsl:param name="person.count" select="count($person.list)"/>
+  <xsl:param name="count" select="1"/>
+  <xsl:param name="group" select="./authorgroup[@role='many']"/>
+  <xsl:param name="many" select="0"/>
+
+  <xsl:param name="primary.many">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.many'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="primary.editor">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.editor'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="primary.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.sep'"/></xsl:call-template>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count &gt; $person.count"></xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$person.count &lt; 4 and not($group)">
+          <xsl:call-template name="iso690.author">
+            <xsl:with-param name="node" select="$person.list[position()=$count]"/>
+          </xsl:call-template>
+          <xsl:choose>
+            <xsl:when test="$person.count = 2 and $count = 1 and $biblioentry.alt.primary.seps != 0">
+              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.two.sep'"/></xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$person.count = 2 and $count = 1">
+              <xsl:call-template name="gentext.template">
+                <xsl:with-param name="context" select="'authorgroup'"/>
+                <xsl:with-param name="name" select="'sep2'"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$person.count &gt; 2 and $count+1 = $person.count and $biblioentry.alt.primary.seps != 0">
+              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.last.sep'"/></xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$person.count &gt; 2 and $count+1 = $person.count">
+              <xsl:call-template name="gentext.template">
+                <xsl:with-param name="context" select="'authorgroup'"/>
+                <xsl:with-param name="name" select="'seplast'"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$count &lt; $person.count and $biblioentry.alt.primary.seps != 0">
+              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.more.sep'"/></xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$count &lt; $person.count">
+              <xsl:call-template name="gentext.template">
+                <xsl:with-param name="context" select="'authorgroup'"/>
+                <xsl:with-param name="name" select="'sep'"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="($count = $person.count)">
+              <xsl:choose>
+                <xsl:when test="$many!=0">
+                  <xsl:if test="name($person.list[position()=$count])='editor'">
+                    <xsl:value-of select="$primary.editor"/>
+                  </xsl:if>
+                  <xsl:value-of select="$primary.many"/>
+                  <xsl:call-template name="iso690.endsep">
+                    <xsl:with-param name="text" select="$primary.many"/>
+                    <xsl:with-param name="sep" select="$primary.sep"/>
+                  </xsl:call-template>
+                </xsl:when>
+                <xsl:when test="name($person.list[position()=$count])='editor'">
+                  <xsl:value-of select="$primary.editor"/>
+                  <xsl:value-of select="$primary.sep"/>
+                </xsl:when>
+                <xsl:when test="name($person.list[position()=$count])='corpauthor'">
+                  <xsl:call-template name="iso690.endsep">
+                    <xsl:with-param name="text" select="string($person.list[position()=$count])"/>
+                    <xsl:with-param name="sep" select="$primary.sep"/>
+                  </xsl:call-template>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:call-template name="iso690.endsep">
+                    <xsl:with-param name="text" select="string($person.list[position()=$count]//firstname[1])"/>
+                    <xsl:with-param name="sep" select="$primary.sep"/>
+                  </xsl:call-template>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:when>
+          </xsl:choose>
+
+          <xsl:call-template name="iso690.author.list">
+            <xsl:with-param name="person.list" select="$person.list"/>
+            <xsl:with-param name="person.count" select="$person.count"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="many" select="$many"/>
+            <xsl:with-param name="group"/>
+          </xsl:call-template>
+        </xsl:when>
+
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="($biblioentry.primary.count&gt;=3) and ($person.count&gt;=3)">
+              <xsl:call-template name="iso690.author.list">
+                <xsl:with-param name="person.list" select="$person.list[1]|$person.list[2]|$person.list[3]"/>
+                <xsl:with-param name="person.count" select="3"/>
+                <xsl:with-param name="count" select="1"/>
+                <xsl:with-param name="many" select="1"/>
+                <xsl:with-param name="group"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="($biblioentry.primary.count&gt;1) and  ($person.count&gt;1)">
+              <xsl:call-template name="iso690.author.list">
+                <xsl:with-param name="person.list" select="$person.list[1]|$person.list[2]"/>
+                <xsl:with-param name="person.count" select="2"/>
+                <xsl:with-param name="count" select="1"/>
+                <xsl:with-param name="many" select="1"/>
+                <xsl:with-param name="group"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="iso690.author.list">
+                <xsl:with-param name="person.list" select="$person.list[1]"/>
+                <xsl:with-param name="person.count" select="1"/>
+                <xsl:with-param name="count" select="1"/>
+                <xsl:with-param name="many" select="1"/>
+                <xsl:with-param name="group"/>
+              </xsl:call-template>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.author">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="lastfirst.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'lastfirst.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="name($node)!='corpauthor'">
+      <span style="text-transform:uppercase">
+        <xsl:apply-templates mode="iso690.mode" select="$node//surname[1]"/>
+      </span>
+      <xsl:if test="$node//surname and $node//firstname">
+        <xsl:value-of select="$lastfirst.sep"/>
+      </xsl:if>
+      <xsl:apply-templates mode="iso690.mode" select="$node//firstname[1]"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <span style="text-transform:uppercase">
+        <xsl:apply-templates mode="iso690.mode" select="$node"/>
+      </span>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="corpauthor|firstname|surname" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Title and Type of medium -->
+<xsl:template name="iso690.title">
+  <xsl:param name="medium" select="./bibliomisc[@role='medium']"/>
+  <xsl:param name="italic" select="1"/>
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'title.sep'"/></xsl:call-template>
+  </xsl:param>
+
+  <xsl:apply-templates mode="iso690.mode" select="./title">
+    <xsl:with-param name="medium" select="$medium"/>
+    <xsl:with-param name="italic" select="$italic"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="title" mode="iso690.mode">
+  <xsl:param name="medium"/>
+  <xsl:param name="italic" select="1"/>
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'title.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="medium1">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'medium1'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="medium2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'medium2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="$italic=1">
+      <xsl:call-template name="iso690.italic.title"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.make.title"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="$medium">
+    <xsl:value-of select="$medium1"/>
+    <xsl:apply-templates mode="iso690.mode" select="$medium"/>
+    <xsl:value-of select="$medium2"/>
+  </xsl:if>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="concat(string(.),string(../subtitle))"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="iso690.italic.title">
+  <i>
+    <xsl:call-template name="iso690.make.title"/>
+  </i>
+</xsl:template>
+
+<xsl:template name="iso690.make.title">
+  <xsl:param name="submaintitle.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'submaintitle.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:if test="../subtitle|../info/subtitle">
+    <xsl:value-of select="$submaintitle.sep"/>
+    <xsl:apply-templates mode="iso690.mode" select="../subtitle|../info/subtitle"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='medium']" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Subordinate responsibility -->
+<xsl:template name="iso690.secondary">
+  <xsl:param name="secondary.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'secondary.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="secondary.person.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'secondary.person.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:for-each select="./bibliomisc[@role='secondary']">
+    <xsl:apply-templates mode="iso690.mode" select="."/>
+    <xsl:choose>
+      <xsl:when test="position()=count(../bibliomisc[@role='secondary'])">
+        <xsl:call-template name="iso690.endsep">
+          <xsl:with-param name="text" select="string(.)"/>
+          <xsl:with-param name="sep" select="$secondary.sep"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$secondary.person.sep"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='secondary']" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Edition -->
+<xsl:template name="iso690.edition">
+  <xsl:param name="after"/>
+  <xsl:param name="edition.serial.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'edition.serial.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="string($after)!=''">
+      <xsl:apply-templates mode="iso690.mode" select="./edition">
+        <xsl:with-param name="sep" select="$edition.serial.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./edition"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="edition" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'edition.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Issue designation (date and/or num) -->
+<xsl:template name="iso690.issuing">
+  <xsl:param name="issuing.div">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.div'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.range">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.range'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum[2] and ./issuenum[2]">
+      <xsl:call-template name="iso690.issuedate"/>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[1]">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum[1]">
+        <xsl:with-param name="sep" select="$issuing.range"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[2]">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum[2]">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum[2]">
+      <xsl:call-template name="iso690.issuedate"/>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[1]">
+        <xsl:with-param name="sep" select="$issuing.range"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[2]">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum and ./issuenum">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pubdate[@role='issuing']">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./volumenum">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./issuenum">
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.issuedate">
+  <xsl:param name="issuing.div">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.div'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.range">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.range'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./pubdate[@role='issuing'][2]">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing'][1]">
+        <xsl:with-param name="sep" select="$issuing.range"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing'][2]">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="pubdate[@role='issuing']" mode="iso690.mode">
+  <xsl:param name="sep"/>
+  <xsl:variable name="substr" select="substring(string(.),string-length(string(.)))"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.space">
+    <xsl:with-param name="text" select="$substr"/>
+  </xsl:call-template>
+  <xsl:choose>
+    <xsl:when test="$substr='-'">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="' '"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(.)"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Numeration of the part -->
+<xsl:template name="iso690.partnr">
+  <xsl:param name="partnr.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'partnr.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+    <xsl:with-param name="sep" select="$partnr.sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+<xsl:template name="iso690.pub">
+  <xsl:param name="onlydate" select="0"/>
+  <xsl:param name="placesep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'placepubl.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="pubsep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'publyear.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="endsep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'pubinfo.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="(./publisher/publishername|./publishername|./publisher/address/city)and($onlydate=0)and(./pubdate[not(@role='issuing')]|./copyright/year|./date[@role='upd']|./date[@role='upd'])">
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/address/city">
+        <xsl:with-param name="sep" select="$placesep"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/publishername|./publishername">
+        <xsl:with-param name="sep" select="$pubsep"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]|./copyright/year">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:apply-templates>
+      <xsl:if test="not(./pubdate[not(@role='issuing')]|./copyright/year)">
+        <xsl:call-template name="iso690.data">
+          <xsl:with-param name="sep" select="$endsep"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="(./publisher/publishername|./publishername)and(./publisher/address/city)and($onlydate=0)">
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/address/city">
+        <xsl:with-param name="sep" select="$placesep"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/publishername|./publishername">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="($onlydate=1)or(./pubdate[not(@role='issuing')]|./copyright/year)">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]|./copyright/year">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:apply-templates>
+      <xsl:if test="$onlydate=1">
+        <xsl:call-template name="iso690.location">
+          <xsl:with-param name="onlypages" select="1"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="not(./pubdate[not(@role='issuing')]|./copyright/year)">
+      <xsl:call-template name="iso690.data">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.paper.pub">
+  <xsl:param name="spec.pubinfo.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'spec.pubinfo.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./volumnum|./issuenum|./pagenums">
+      <xsl:call-template name="iso690.pub">
+        <xsl:with-param name="endsep" select="$spec.pubinfo.sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.pub"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.data">
+  <xsl:param name="sep"/>
+  <xsl:param name="datecit2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./date[@role='upd']">
+    <xsl:with-param name="sep"/>
+  </xsl:apply-templates>
+  <xsl:apply-templates mode="iso690.mode" select="./date[@role='cit']"/>
+  <xsl:choose>
+    <xsl:when test="./date[@role='cit']">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="$datecit2"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="./date[@role='upd']">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(./date[@role='upd'])"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="publisher/address/city|publishername" mode="iso690.mode">
+  <xsl:param name="sep"/>
+  <xsl:param name="upd" select="0"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="pubdate|copyright/year" mode="iso690.mode">
+  <xsl:param name="sep"/>
+  <xsl:param name="upd" select="1"/>
+  <xsl:param name="datecit2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:variable name="substr" select="substring(string(.),string-length(string(.)))"/>
+  <xsl:if test="name(.)!='pubdate'">
+    <xsl:value-of select="'&#x00A9;'"/><!-- copyright -->
+  </xsl:if>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.space">
+    <xsl:with-param name="text" select="$substr"/>
+  </xsl:call-template>
+  <xsl:if test="$upd!=0">
+    <xsl:choose>
+      <xsl:when test="name(.)='pubdate'">
+        <xsl:apply-templates mode="iso690.mode" select="../date[@role='upd']"/>
+        <xsl:apply-templates mode="iso690.mode" select="../date[@role='cit']"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates mode="iso690.mode" select="../../date[@role='upd']"/>
+        <xsl:apply-templates mode="iso690.mode" select="../../date[@role='cit']"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="../date[@role='cit']|../../date[@role='cit'] and $upd!=0">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="$datecit2"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="../date[@role='upd']|../../date[@role='upd'] and $upd!=0">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(../date[@role='upd'])"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$substr='-'">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="' '"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(.)"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.space">
+  <xsl:param name="text" select="substring(string(.),string-length(string(.)))"/>
+  <xsl:if test="$text='-'">
+    <xsl:value-of select="' '"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- Date of update/revision -->
+<xsl:template match="date[@role='upd']" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'upd.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$sep"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Date of citation -->
+<xsl:template match="date[@role='cit']" mode="iso690.mode">
+  <xsl:param name="datecit1">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit1'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="datecit2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$datecit1"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$datecit2"/>
+</xsl:template>
+
+<!-- Extent -->
+<xsl:template name="iso690.extent">
+  <xsl:param name="extent.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'extent.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./pagenums">
+    <xsl:with-param name="sep" select="$extent.sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Location within host -->
+<xsl:template name="iso690.part.location">
+  <xsl:param name="location.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./pagenums">
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']"/>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='sectitle']"/>
+      <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+    </xsl:when>
+    <xsl:when test="./bibliomisc[@role='sectitle']">
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']"/>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='sectitle']">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.article.location">
+  <xsl:param name="location.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="locs.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="not(./date[@role='upd']|./date[@role='cit'])">
+      <xsl:choose>
+        <xsl:when test="./volumenum|./issuenum|./pagenums">
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="upd" select="0"/>
+            <xsl:with-param name="sep" select="$locs.sep"/>
+          </xsl:apply-templates>
+          <xsl:call-template name="iso690.location"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="sep" select="$location.sep"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="./volumenum|./issuenum|./pagenums">
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="upd" select="0"/>
+            <xsl:with-param name="sep" select="$locs.sep"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="upd" select="0"/>
+            <xsl:with-param name="sep" select="$location.sep"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:choose>
+        <xsl:when test="./issuenum">
+          <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+          <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+            <xsl:with-param name="sep"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+            <xsl:with-param name="sep"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:choose>
+        <xsl:when test="./pagenums">
+          <xsl:call-template name="iso690.data">
+            <xsl:with-param name="sep" select="$locs.sep"/>
+          </xsl:call-template>
+          <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="iso690.data">
+            <xsl:with-param name="sep" select="$location.sep"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.location">
+  <xsl:param name="location.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./volumenum and not(./issuenum) and not(./pagenums)">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./issuenum and not(./pagenums)">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pagenums">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum"/>
+      <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='secnum']|bibliomisc[@role='sectitle']" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="volumenum|issuenum" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Series -->
+<xsl:template name="iso690.serie">
+  <xsl:apply-templates mode="iso690.mode" select=".//bibliomisc[@role='serie']"/>
+</xsl:template>
+
+<!-- Notes -->
+<xsl:template name="iso690.notice">
+  <xsl:apply-templates mode="iso690.mode" select=".//bibliomisc[not(@role)]"/>
+</xsl:template>
+
+<xsl:template match="bibliomisc[not(@role)]|bibliomisc[@role='serie']" mode="iso690.mode">
+  <xsl:param name="notice.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'notice.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$notice.sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Avaibility and access -->
+<xsl:template name="iso690.access">
+  <xsl:for-each select="./biblioid[@class='uri']|./bibliomisc[@role='access']">
+    <xsl:choose>
+      <xsl:when test="position()=1">
+        <xsl:apply-templates mode="iso690.mode" select="."/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates mode="iso690.mode" select=".">
+          <xsl:with-param name="firstacc" select="0"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="biblioid[@class='uri']/ulink|bibliomisc[@role='access']/ulink" mode="iso690.mode">
+  <xsl:param name="link1">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'link1'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="link2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'link2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$link1"/>
+  <xsl:call-template name="ulink"/>
+  <xsl:value-of select="$link2"/>
+</xsl:template>
+
+<xsl:template match="biblioid[@class='uri']|bibliomisc[@role='access']" mode="iso690.mode">
+  <xsl:param name="firstacc" select="1"/>
+  <xsl:param name="access">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="acctoo">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'acctoo'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="onwww">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'onwww'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="oninet">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'oninet'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="access.end">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access.end'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="access.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="$firstacc=1">
+      <xsl:value-of select="$access"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$acctoo"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="(./ulink)and(string(./ulink)=string(.))">
+      <xsl:choose>
+        <xsl:when test="(starts-with(./ulink/@url,'http://')or(starts-with(./ulink/@url,'https://')))">
+          <xsl:value-of select="$onwww"/>
+          <xsl:value-of select="$access.end"/>
+          <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$oninet"/>
+          <xsl:value-of select="$access.end"/>
+          <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="(./ulink)and(string(./ulink)!=string(.))">
+      <xsl:value-of select="text()[1]"/>
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="text()[1]"/>
+        <xsl:with-param name="sep" select="$access.end"/>
+      </xsl:call-template>
+      <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$access.sep"/>
+</xsl:template>
+
+<!-- Standard number - ISBN -->
+<xsl:template name="iso690.isbn">
+  <xsl:choose>
+    <xsl:when test="./biblioid/@class='isbn'">
+      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='isbn']"/>
+    </xsl:when>
+    <xsl:when test="./isbn">
+      <xsl:apply-templates mode="iso690.mode" select="./isbn"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="isbn|biblioid[@class='isbn']" mode="iso690.mode">
+  <xsl:param name="isbn">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'isbn'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="stdnum.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'stdnum.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$isbn"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$stdnum.sep"/>
+</xsl:template>
+
+<!-- Standard number - ISSN -->
+<xsl:template name="iso690.issn">
+  <xsl:choose>
+    <xsl:when test="./biblioid/@class='issn'">
+      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='issn']"/>
+    </xsl:when>
+    <xsl:when test="./issn">
+      <xsl:apply-templates mode="iso690.mode" select="./issn"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="issn|biblioid[@class='issn']" mode="iso690.mode">
+  <xsl:param name="issn">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issn'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="stdnum.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'stdnum.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$issn"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$stdnum.sep"/>
+</xsl:template>
+
+<!-- Identification of patent document -->
+<xsl:template name="iso690.pat.ident">
+  <xsl:param name="patdate.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patdate.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./address/country"/>
+  <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='patenttype']"/>
+  <xsl:choose>
+    <xsl:when test="./biblioid[@class='other' and @otherclass='patentnum']">
+      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='other' and @otherclass='patentnum']"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='patentnum']"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+    <xsl:with-param name="sep" select="$patdate.sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Country or issuing office -->
+<xsl:template match="address/country" mode="iso690.mode">
+  <xsl:param name="patcountry.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patcountry.sep'"/></xsl:call-template>
+  </xsl:param>
+  <i>
+    <xsl:apply-templates mode="iso690.mode"/>
+  </i>
+  <xsl:value-of select="$patcountry.sep"/>
+</xsl:template>
+
+<!-- Kind of patent document -->
+<xsl:template match="bibliomisc[@role='patenttype']" mode="iso690.mode">
+  <xsl:param name="pattype.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'pattype.sep'"/></xsl:call-template>
+  </xsl:param>
+  <i>
+    <xsl:apply-templates mode="iso690.mode"/>
+  </i>
+  <xsl:value-of select="$pattype.sep"/>
+</xsl:template>
+
+<!-- Number -->
+<xsl:template match="biblioid[@class='other' and @otherclass='patentnum']|bibliomisc[@role='patentnum']" mode="iso690.mode">
+  <xsl:param name="patnum.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patnum.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$patnum.sep"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Supplementary templates -->
+
+<xsl:template name="iso690.endsep">
+  <xsl:param name="text"/>
+  <xsl:param name="sep" select=". "/>
+  <xsl:choose>
+    <xsl:when test="substring($text,string-length($text))!=substring($sep,1,1)">
+      <xsl:value-of select="$sep"/>
+    </xsl:when>
+    <xsl:when test="substring($text,string-length($text))=' '">
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="' '"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="iso690.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/biblio.xsl b/applications/content/template/docbook/html/biblio.xsl
new file mode 100644
index 0000000..de2b8a0
--- /dev/null
+++ b/applications/content/template/docbook/html/biblio.xsl
@@ -0,0 +1,1382 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliography">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="bibliography.titlepage"/>
+
+    <xsl:apply-templates/>
+
+    <xsl:if test="not(parent::article)">
+      <xsl:call-template name="process.footnotes"/>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="bibliography/bibliographyinfo"></xsl:template>
+<xsl:template match="bibliography/info"></xsl:template>
+<xsl:template match="bibliography/title"></xsl:template>
+<xsl:template match="bibliography/subtitle"></xsl:template>
+<xsl:template match="bibliography/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliodiv">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="bibliodiv/title">
+  <h3>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliolist">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="blockinfo/title|info/title|title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+    <xsl:apply-templates select="*[not(self::blockinfo)
+                                   and not(self::info)
+                                   and not(self::title)
+                                   and not(self::titleabbrev)
+                                   and not(self::biblioentry)
+                                   and not(self::bibliomixed)]"/>
+    <xsl:apply-templates select="biblioentry|bibliomixed"/>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="biblioentry">
+  <xsl:param name="label">
+    <xsl:call-template name="biblioentry.label"/>
+  </xsl:param>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string(.) = ''">
+      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+      <xsl:variable name="entry" select="$bib/bibliography//
+                                         *[@id=$id or @xml:id=$id][1]"/>
+      <xsl:choose>
+        <xsl:when test="$entry">
+          <xsl:choose>
+            <xsl:when test="$bibliography.numbered != 0">
+              <xsl:apply-templates select="$entry">
+                <xsl:with-param name="label" select="$label"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="$entry"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>No bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </xsl:message>
+          <div>
+            <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="anchor"/>
+            <p>
+              <xsl:copy-of select="$label"/>
+              <xsl:text>Error: no bibliography entry: </xsl:text>
+              <xsl:value-of select="$id"/>
+              <xsl:text> found in </xsl:text>
+              <xsl:value-of select="$bibliography.collection"/>
+            </p>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <p>
+          <xsl:copy-of select="$label"/>
+	  <xsl:choose>
+	    <xsl:when test="$bibliography.style = 'iso690'">
+	      <xsl:call-template name="iso690.makecitation"/>
+	    </xsl:when>
+	    <xsl:otherwise>
+	      <xsl:apply-templates mode="bibliography.mode"/>
+	    </xsl:otherwise>
+	  </xsl:choose>
+        </p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliomixed">
+  <xsl:param name="label">
+    <xsl:call-template name="biblioentry.label"/>
+  </xsl:param>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string(.) = ''">
+      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+      <xsl:variable name="entry" select="$bib/bibliography//
+                                         *[@id=$id or @xml:id=$id][1]"/>
+      <xsl:choose>
+        <xsl:when test="$entry">
+          <xsl:choose>
+            <xsl:when test="$bibliography.numbered != 0">
+              <xsl:apply-templates select="$entry">
+                <xsl:with-param name="label" select="$label"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="$entry"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>No bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </xsl:message>
+          <div>
+            <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="anchor"/>
+            <p>
+              <xsl:copy-of select="$label"/>
+              <xsl:text>Error: no bibliography entry: </xsl:text>
+              <xsl:value-of select="$id"/>
+              <xsl:text> found in </xsl:text>
+              <xsl:value-of select="$bibliography.collection"/>
+            </p>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <p>
+          <xsl:call-template name="common.html.attributes"/>
+          <xsl:copy-of select="$label"/>
+          <xsl:apply-templates mode="bibliomixed.mode"/>
+        </p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="biblioentry.label">
+  <xsl:param name="node" select="."/>
+
+  <xsl:choose>
+    <xsl:when test="$bibliography.numbered != 0">
+      <xsl:text>[</xsl:text>
+      <xsl:number from="bibliography" count="biblioentry|bibliomixed"
+                  level="any" format="1"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($node/child::*[1]) = 'abbrev'">
+      <xsl:text>[</xsl:text>
+      <xsl:apply-templates select="$node/abbrev[1]"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="$node/@xreflabel">
+      <xsl:text>[</xsl:text>
+      <xsl:value-of select="$node/@xreflabel"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="$node/@id">
+      <xsl:text>[</xsl:text>
+      <xsl:value-of select="$node/@id"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="$node/@xml:id">
+      <xsl:text>[</xsl:text>
+      <xsl:value-of select="$node/@xml:id"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:otherwise><!-- nop --></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliography.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliography.mode">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="address" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artheader|articleinfo|info" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <xsl:when test="orgname">
+        <xsl:apply-templates select="orgname" mode="bibliography.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="person.name"/>
+        <xsl:copy-of select="$biblioentry.item.separator"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="person.name.list"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="biblioset/title|biblioset/citetitle" 
+              mode="bibliography.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article' or @pubwork='article'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:apply-templates/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <i><xsl:apply-templates/></i>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:copy-of select="$biblioentry.item.separator"/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="citetitle" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <xsl:when test="@pubwork = 'article'">
+        <xsl:call-template name="gentext.startquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.endquote"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inline.italicseq"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="collabname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confdates" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confnum" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confsponsor" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="copyright" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <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:apply-templates select="year" mode="bibliography.mode"/>
+    <xsl:if test="holder">
+      <xsl:call-template name="gentext.space"/>
+      <xsl:apply-templates select="holder" mode="bibliography.mode"/>
+    </xsl:if>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="year" mode="bibliography.mode">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="corpauthor" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="person.name"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliography.mode">
+  <!-- suppressed; how could this be represented? -->
+</xsl:template>
+
+<xsl:template match="seriesinfo" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <i><xsl:apply-templates mode="bibliography.mode"/></i>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource"
+              mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- See FR #1934434 and http://doi.org -->
+<xsl:template match="biblioid[@class='doi']"
+              mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <a href="{concat('http://dx.doi.org/', .)}">doi:<xsl:value-of select="."/></a>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliomixed.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliomixed.mode">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="address" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <xsl:when test="orgname">
+        <xsl:apply-templates select="orgname" mode="bibliomixed.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="person.name"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bibliomset" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomset/title|bibliomset/citetitle" 
+              mode="bibliomixed.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article' or @pubwork='article'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:apply-templates/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <i><xsl:apply-templates/></i>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <xsl:when test="@pubwork = 'article'">
+        <xsl:call-template name="gentext.startquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.endquote"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inline.italicseq"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+
+<xsl:template match="collab" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="copyright" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliomixed.mode">
+  <!-- suppressed; how could this be represented? -->
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource"
+              mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<!-- See FR #1934434 and http://doi.org -->
+<xsl:template match="biblioid[@class='doi']"
+              mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <a href="{concat('http://dx.doi.org/', .)}">doi:<xsl:value-of select="."/></a>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/block.xsl b/applications/content/template/docbook/html/block.xsl
new file mode 100644
index 0000000..aac0367
--- /dev/null
+++ b/applications/content/template/docbook/html/block.xsl
@@ -0,0 +1,568 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- What should we do about styling blockinfo? -->
+
+<xsl:template match="blockinfo|info">
+  <!-- suppress -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="block.object">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="para">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class">
+      <xsl:if test="@role and $para.propagates.style != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:if>
+    </xsl:with-param>
+    <xsl:with-param name="content">
+      <xsl:if test="position() = 1 and parent::listitem">
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="node" select="parent::listitem"/>
+        </xsl:call-template>
+      </xsl:if>
+
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="paragraph">
+  <xsl:param name="class" select="''"/>
+  <xsl:param name="content"/>
+
+  <xsl:variable name="p">
+    <p>
+      <xsl:call-template name="id.attribute"/>
+      <xsl:choose>
+        <xsl:when test="$class != ''">
+          <xsl:call-template name="common.html.attributes">
+            <xsl:with-param name="class" select="$class"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="common.html.attributes">
+            <xsl:with-param name="class" select="''"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:copy-of select="$content"/>
+    </p>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$html.cleanup != 0">
+      <xsl:call-template name="unwrap.p">
+        <xsl:with-param name="p" select="$p"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$p"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="simpara">
+  <!-- see also listitem/simpara in lists.xsl -->
+  <p>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="locale.html.attributes"/>
+    <xsl:if test="@role and $para.propagates.style != 0">
+      <xsl:apply-templates select="." mode="class.attribute">
+        <xsl:with-param name="class" select="@role"/>
+      </xsl:apply-templates>
+    </xsl:if>
+
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="formalpara">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class">
+      <xsl:if test="@role and $para.propagates.style != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:if>
+    </xsl:with-param>
+    <xsl:with-param name="content">
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Only use title from info -->
+<xsl:template match="formalpara/info">
+  <xsl:apply-templates select="title"/>
+</xsl:template>
+
+<xsl:template match="formalpara/title|formalpara/info/title">
+  <xsl:variable name="titleStr">
+      <xsl:apply-templates/>
+  </xsl:variable>
+  <xsl:variable name="lastChar">
+    <xsl:if test="$titleStr != ''">
+      <xsl:value-of select="substring($titleStr,string-length($titleStr),1)"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <span class="formalpara-title">
+        <xsl:copy-of select="$titleStr"/>
+        <xsl:if test="$lastChar != ''
+                      and not(contains($runinhead.title.end.punct, $lastChar))">
+          <xsl:value-of select="$runinhead.default.title.end.punct"/>
+        </xsl:if>
+        <xsl:text>&#160;</xsl:text>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <b>
+        <xsl:copy-of select="$titleStr"/>
+        <xsl:if test="$lastChar != ''
+                      and not(contains($runinhead.title.end.punct, $lastChar))">
+          <xsl:value-of select="$runinhead.default.title.end.punct"/>
+        </xsl:if>
+        <xsl:text>&#160;</xsl:text>
+      </b>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="formalpara/para">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="blockquote">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:choose>
+      <xsl:when test="attribution">
+        <table border="{$table.border.off}" class="blockquote">
+          <xsl:if test="$css.decoration != 0">
+            <xsl:attribute name="style">
+              <xsl:text>width: 100%; cellspacing: 0; cellpadding: 0;</xsl:text>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:if test="$div.element != 'section'">
+            <xsl:attribute name="summary">Block quote</xsl:attribute>
+          </xsl:if>
+          <tr>
+            <td width="10%" valign="top">&#160;</td>
+            <td width="80%" valign="top">
+              <xsl:apply-templates select="child::*[local-name(.)!='attribution']"/>
+            </td>
+            <td width="10%" valign="top">&#160;</td>
+          </tr>
+          <tr>
+            <td width="10%" valign="top">&#160;</td>
+            <td colspan="2" align="{$direction.align.end}" valign="top">
+              <xsl:text>--</xsl:text>
+              <xsl:apply-templates select="attribution"/>
+            </td>
+          </tr>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <blockquote>
+          <xsl:call-template name="common.html.attributes"/>
+          <xsl:apply-templates/>
+        </blockquote>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="blockquote/title|blockquote/info/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="blockquote-title">
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <div class="blockquote-title">
+        <p>
+          <b>
+            <xsl:apply-templates/>
+          </b>
+        </p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Use an em dash per Chicago Manual of Style and https://sourceforge.net/tracker/index.php?func=detail&aid=2793878&group_id=21935&atid=373747 -->
+<xsl:template match="epigraph">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates select="para|simpara|formalpara|literallayout"/>
+    <xsl:if test="attribution">
+      <div class="attribution">
+        <span>&#x2014;<xsl:apply-templates select="attribution"/></span>
+      </div>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="attribution">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="abstract|sidebar">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="sidebar.titlepage"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="abstract/title|sidebar/title">
+</xsl:template>
+
+<xsl:template match="sidebar/sidebarinfo|sidebar/info"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="msgset">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgentry">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="simplemsgentry">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msg">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgmain">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgmain/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <span class="msgmain-title">
+        <xsl:apply-templates/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <b><xsl:apply-templates/></b>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgsub">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgsub/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <span class="msgsub-title">
+        <xsl:apply-templates/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <b><xsl:apply-templates/></b>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgrel">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgrel/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <span class="msgrel-title">
+        <xsl:apply-templates/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <b><xsl:apply-templates/></b>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgtext">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msginfo">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msglevel">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="msglevel">
+        <span class="msglevel-title">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgLevel'"/>
+          </xsl:call-template>
+        </span>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <b>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgLevel'"/>
+          </xsl:call-template>
+        </b>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgorig">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="msgorig">
+        <span class="msgorig-title">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgOrig'"/>
+          </xsl:call-template>
+        </span>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <b>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgOrig'"/>
+          </xsl:call-template>
+        </b>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgaud">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="msgaud">
+        <span class="msgaud-title">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgAud'"/>
+          </xsl:call-template>
+        </span>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <b>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgAud'"/>
+          </xsl:call-template>
+        </b>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgexplan">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgexplan/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="msgexplan">
+        <span class="msgexplan-title">
+          <xsl:apply-templates/>
+        </span>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <b>
+          <xsl:apply-templates/>
+        </b>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="revhistory">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <table>
+      <xsl:if test="$css.decoration != 0">
+        <xsl:attribute name="style">
+          <xsl:text>border-style:solid; width:100%;</xsl:text>
+        </xsl:attribute>
+      </xsl:if>
+      <!-- include summary attribute if not HTML5 -->
+      <xsl:if test="$div.element != 'section'">
+        <xsl:attribute name="summary">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key">revhistory</xsl:with-param>
+          </xsl:call-template>
+        </xsl:attribute>
+      </xsl:if>
+      <tr>
+        <th align="{$direction.align.start}" valign="top" colspan="3">
+          <b>
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'RevHistory'"/>
+            </xsl:call-template>
+          </b>
+        </th>
+      </tr>
+      <xsl:apply-templates/>
+    </table>
+  </div>
+</xsl:template>
+
+<xsl:template match="revhistory/revision">
+  <xsl:variable name="revnumber" select="revnumber"/>
+  <xsl:variable name="revdate"   select="date"/>
+  <xsl:variable name="revauthor" select="authorinitials|author"/>
+  <xsl:variable name="revremark" select="revremark|revdescription"/>
+  <tr>
+    <td align="{$direction.align.start}">
+      <xsl:if test="$revnumber">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'Revision'"/>
+        </xsl:call-template>
+        <xsl:call-template name="gentext.space"/>
+        <xsl:apply-templates select="$revnumber"/>
+      </xsl:if>
+    </td>
+    <td align="{$direction.align.start}">
+      <xsl:apply-templates select="$revdate"/>
+    </td>
+    <xsl:choose>
+      <xsl:when test="count($revauthor)=0">
+        <td align="{$direction.align.start}">
+          <xsl:call-template name="dingbat">
+            <xsl:with-param name="dingbat">nbsp</xsl:with-param>
+          </xsl:call-template>
+        </td>
+      </xsl:when>
+      <xsl:otherwise>
+        <td align="{$direction.align.start}">
+          <xsl:for-each select="$revauthor">
+            <xsl:apply-templates select="."/>
+            <xsl:if test="position() != last()">
+              <xsl:text>, </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </td>
+      </xsl:otherwise>
+    </xsl:choose>
+  </tr>
+  <xsl:if test="$revremark">
+    <tr>
+      <td align="{$direction.align.start}" colspan="3">
+        <xsl:apply-templates select="$revremark"/>
+      </td>
+    </tr>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/date">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials">
+  <xsl:text>, </xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials[1]" priority="2">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revremark">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="ackno|acknowledgements[parent::article]">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="highlights">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/callout.xsl b/applications/content/template/docbook/html/callout.xsl
new file mode 100644
index 0000000..610a5d2
--- /dev/null
+++ b/applications/content/template/docbook/html/callout.xsl
@@ -0,0 +1,222 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim"
+                xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                exclude-result-prefixes="sverb xverb lxslt"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xverb"
+                 functions="insertCallouts"/>
+
+<xsl:template match="programlistingco|screenco">
+  <xsl:variable name="verbatim" select="programlisting|screen"/>
+
+  <xsl:choose>
+    <xsl:when test="$use.extensions != '0'
+                    and $callouts.extension != '0'">
+      <xsl:variable name="rtf">
+        <xsl:apply-templates select="$verbatim">
+          <xsl:with-param name="suppress-numbers" select="'1'"/>
+        </xsl:apply-templates>
+      </xsl:variable>
+
+      <xsl:variable name="rtf-with-callouts">
+        <xsl:choose>
+          <xsl:when test="function-available('sverb:insertCallouts')">
+            <xsl:copy-of select="sverb:insertCallouts(areaspec,$rtf)"/>
+          </xsl:when>
+          <xsl:when test="function-available('xverb:insertCallouts')">
+            <xsl:copy-of select="xverb:insertCallouts(areaspec,$rtf)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message terminate="yes">
+              <xsl:text>No insertCallouts function is available.</xsl:text>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$verbatim/@linenumbering = 'numbered'
+                        and $linenumbering.extension != '0'">
+          <div>
+            <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf-with-callouts"/>
+              <xsl:with-param name="pi.context"
+                              select="programlisting|screen"/>
+            </xsl:call-template>
+            <xsl:apply-templates select="calloutlist"/>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <div>
+            <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:copy-of select="$rtf-with-callouts"/>
+            <xsl:apply-templates select="calloutlist"/>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="areaspec|areaset|area">
+</xsl:template>
+
+<xsl:template match="areaset" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="area" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="co" name="co">
+  <!-- Support a single linkend in HTML -->
+  <xsl:variable name="targets" select="key('id', @linkends)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:choose>
+    <xsl:when test="$target">
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <!-- force an id attribute here -->
+            <xsl:if test="@id or @xml:id">
+              <xsl:attribute name="name">
+                <xsl:value-of select="(@id|@xml:id)[1]"/>
+              </xsl:attribute>
+            </xsl:if>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="id.attribute"/>
+          </xsl:otherwise>
+        </xsl:choose>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="." mode="callout-bug"/>
+      </a>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$generate.id.attributes != 0">
+        <xsl:if test="@id or @xml:id">
+          <span>
+             <xsl:attribute name="id">
+                <xsl:value-of select="(@id|@xml:id)[1]"/>
+              </xsl:attribute>
+          </span>
+        </xsl:if>
+      </xsl:if>
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates select="." mode="callout-bug"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="coref">
+  <!-- tricky; this relies on the fact that we can process the "co" that's -->
+  <!-- "over there" as if it were "right here" -->
+
+  <xsl:variable name="co" select="key('id', @linkend)"/>
+  <xsl:choose>
+    <xsl:when test="not($co)">
+      <xsl:message>
+        <xsl:text>Error: coref link is broken: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+      </xsl:message>
+    </xsl:when>
+    <xsl:when test="local-name($co) != 'co'">
+      <xsl:message>
+        <xsl:text>Error: coref doesn't point to a co: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="$co"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="co" mode="callout-bug">
+  <xsl:call-template name="callout-bug">
+    <xsl:with-param name="conum">
+      <xsl:number count="co"
+                  level="any"
+                  from="programlisting|screen|literallayout|synopsis"
+                  format="1"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="callout-bug">
+  <xsl:param name="conum" select='1'/>
+
+  <xsl:choose>
+    <xsl:when test="$callout.graphics != 0
+                    and $conum &lt;= $callout.graphics.number.limit">
+      <!-- Added span to make valid in XHTML 1 -->
+      <span><img src="{$callout.graphics.path}{$conum}{$callout.graphics.extension}"
+           alt="{$conum}" border="0"/></span>
+    </xsl:when>
+    <xsl:when test="$callout.unicode != 0
+                    and $conum &lt;= $callout.unicode.number.limit">
+      <xsl:choose>
+        <xsl:when test="$callout.unicode.start.character = 10102">
+          <xsl:choose>
+            <xsl:when test="$conum = 1">&#10102;</xsl:when>
+            <xsl:when test="$conum = 2">&#10103;</xsl:when>
+            <xsl:when test="$conum = 3">&#10104;</xsl:when>
+            <xsl:when test="$conum = 4">&#10105;</xsl:when>
+            <xsl:when test="$conum = 5">&#10106;</xsl:when>
+            <xsl:when test="$conum = 6">&#10107;</xsl:when>
+            <xsl:when test="$conum = 7">&#10108;</xsl:when>
+            <xsl:when test="$conum = 8">&#10109;</xsl:when>
+            <xsl:when test="$conum = 9">&#10110;</xsl:when>
+            <xsl:when test="$conum = 10">&#10111;</xsl:when>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>Don't know how to generate Unicode callouts </xsl:text>
+            <xsl:text>when $callout.unicode.start.character is </xsl:text>
+            <xsl:value-of select="$callout.unicode.start.character"/>
+          </xsl:message>
+          <xsl:text>(</xsl:text>
+          <xsl:value-of select="$conum"/>
+          <xsl:text>)</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$conum"/>
+      <xsl:text>)</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/changebars.xsl b/applications/content/template/docbook/html/changebars.xsl
new file mode 100644
index 0000000..80e681b
--- /dev/null
+++ b/applications/content/template/docbook/html/changebars.xsl
@@ -0,0 +1,122 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<xsl:import href="docbook.xsl"/>
+
+<xsl:param name="show.revisionflag" select="'1'"/>
+
+<xsl:template name="system.head.content">
+<xsl:param name="node" select="."/>
+
+<style type="text/css">
+<xsl:text>
+div.added    { background-color: #ffff99; 
+               text-decoration: underline; }
+div.deleted  { text-decoration: line-through;
+               background-color: #FF7F7F; }
+div.changed  { background-color: #99ff99; }
+div.off      {  }
+
+span.added   { background-color: #ffff99; 
+               text-decoration: underline; }
+span.deleted { text-decoration: line-through;
+               background-color: #FF7F7F; }
+span.changed { background-color: #99ff99; }
+span.off     {  }
+</xsl:text>
+</style>
+</xsl:template>
+
+<xsl:template match="*[@revisionflag]">
+  <xsl:call-template name="block.or.inline.revision"/>
+</xsl:template>
+
+<xsl:template name="block.or.inline.revision">
+  <xsl:param name="revisionflag" select="@revisionflag"/>
+  
+  <xsl:choose>
+    <xsl:when test="local-name(.) = 'para'
+		    or local-name(.) = 'formalpara'
+		    or local-name(.) = 'simpara'
+		    or local-name(.) = 'simplesect'
+		    or local-name(.) = 'section'                    
+		    or local-name(.) = 'sect1'
+		    or local-name(.) = 'sect2'
+		    or local-name(.) = 'sect3'
+		    or local-name(.) = 'sect4'
+		    or local-name(.) = 'sect5'
+		    or local-name(.) = 'topic'                    
+		    or local-name(.) = 'chapter'
+		    or local-name(.) = 'preface'
+		    or local-name(.) = 'itemizedlist'
+		    or local-name(.) = 'orderedlist'
+		    or local-name(.) = 'variablelist'
+		    or local-name(.) = 'varlistentry'
+		    or local-name(.) = 'informaltable'
+		    or local-name(.) = 'informalexample'
+		    or local-name(.) = 'note'
+		    or local-name(.) = 'example'
+		    or local-name(.) = 'mediaobject'
+		    or local-name(.) = 'sidebar'
+		    or local-name(.) = 'glossary'
+		    or local-name(.) = 'glossentry'                    
+		    or local-name(.) = 'bibliography'
+		    or local-name(.) = 'index'                    
+		    or local-name(.) = 'appendix'">
+      <div class='{$revisionflag}'>
+	<xsl:apply-imports/>
+      </div>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'phrase'
+		    or local-name(.) = 'ulink'
+		    or local-name(.) = 'link'
+		    or local-name(.) = 'olink'
+		    or local-name(.) = 'inlinemediaobject'
+		    or local-name(.) = 'filename'
+		    or local-name(.) = 'literal'
+		    or local-name(.) = 'member'
+		    or local-name(.) = 'term'
+		    or local-name(.) = 'guilabel'
+		    or local-name(.) = 'glossterm'
+		    or local-name(.) = 'sgmltag'
+		    or local-name(.) = 'tag'
+		    or local-name(.) = 'quote'
+		    or local-name(.) = 'emphasis'
+		    or local-name(.) = 'command'
+		    or local-name(.) = 'xref'">
+      <span class='{$revisionflag}'>
+	<xsl:apply-imports/>
+      </span>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'listitem'
+                    or local-name(.) = 'entry'
+                    or local-name(.) = 'title'">
+      <!-- nop; these are handled directly in the stylesheet -->
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Revisionflag on unexpected element: </xsl:text>
+	<xsl:value-of select="local-name(.)"/>
+	<xsl:text> (Assuming block)</xsl:text>
+      </xsl:message>
+      <div class='{$revisionflag}'>
+	<xsl:apply-imports/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/chunk-changebars.xsl b/applications/content/template/docbook/html/chunk-changebars.xsl
new file mode 100644
index 0000000..c94bd4c
--- /dev/null
+++ b/applications/content/template/docbook/html/chunk-changebars.xsl
@@ -0,0 +1,99 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0"
+		version="1.0"
+                exclude-result-prefixes="exsl cf">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This file is a variant of chunk.xsl, to be used for generating chunked 
+     output with highlighting based on change markup. -->
+
+<xsl:import href="changebars.xsl"/>
+<xsl:import href="chunk-common.xsl"/>
+
+<!-- This customization of "process-chunk-element" is needed in order to make change 
+     highlighting be inherited by chunked children of an element with change markup. -->
+<xsl:template name="process-chunk-element">
+  <xsl:param name="content">
+    <xsl:choose>
+
+      <xsl:when test="ancestor-or-self::*[@revisionflag] and $show.revisionflag != 0">
+	<xsl:variable name="revisionflag" select="ancestor-or-self::*[@revisionflag][1]/@revisionflag" />
+	<xsl:call-template name="block.or.inline.revision">
+	  <xsl:with-param name="revisionflag" select="$revisionflag"/>
+	</xsl:call-template>
+      </xsl:when>
+
+      <xsl:otherwise>
+	<xsl:apply-imports/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$chunk.fast != 0 and $exsl.node.set.available != 0">
+      <xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/>
+      <xsl:variable name="genid" select="generate-id()"/>
+
+      <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/>
+
+      <xsl:variable name="prevdiv"
+                    select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/>
+      <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/>
+
+      <xsl:variable name="nextdiv"
+                    select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/>
+      <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and parent::*">
+          <xsl:copy-of select="$content"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="process-chunk">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and not(parent::*)">
+          <xsl:call-template name="chunk-all-sections">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$onechunk != 0">
+          <xsl:copy-of select="$content"/>
+        </xsl:when>
+        <xsl:when test="$chunk.first.sections = 0">
+          <xsl:call-template name="chunk-first-section-with-parent">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="chunk-all-sections">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:include href="chunk-code.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/chunk-code.xsl b/applications/content/template/docbook/html/chunk-code.xsl
new file mode 100644
index 0000000..aa18e17
--- /dev/null
+++ b/applications/content/template/docbook/html/chunk-code.xsl
@@ -0,0 +1,689 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0"
+                xmlns:ng="http://docbook.org/docbook-ng"
+                xmlns:db="http://docbook.org/ns/docbook"
+                exclude-result-prefixes="exsl cf ng db"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="chunk-filename">
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="fn">
+    <xsl:apply-templates select="." mode="recursive-chunk-filename"/>
+  </xsl:variable>
+
+  <!--
+  <xsl:message>
+    <xsl:value-of select="$ischunk"/>
+    <xsl:text> (</xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text>) </xsl:text>
+    <xsl:value-of select="$fn"/>
+    <xsl:text>, </xsl:text>
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:message>
+  -->
+
+  <!-- 2003-11-25 by ndw:
+       The following test used to read test="$ischunk != 0 and $fn != ''"
+       I've removed the ischunk part of the test so that href.to.uri and
+       href.from.uri will be fully qualified even if the source or target
+       isn't a chunk. I *think* that if $fn != '' then it's appropriate
+       to put the directory on the front, even if the element isn't a
+       chunk. I could be wrong. -->
+
+  <xsl:if test="$fn != ''">
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:if>
+
+  <xsl:value-of select="$chunked.filename.prefix"/>
+
+  <xsl:value-of select="$fn"/>
+  <!-- You can't add the html.ext here because dbhtml filename= may already -->
+  <!-- have added it. It really does have to be handled in the recursive template -->
+</xsl:template>
+
+<xsl:template match="*" mode="recursive-chunk-filename">
+  <xsl:param name="recursive" select="false()"/>
+
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="dbhtml-filename">
+    <xsl:call-template name="pi.dbhtml_filename"/>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="$dbhtml-filename != ''">
+        <xsl:value-of select="$dbhtml-filename"/>
+      </xsl:when>
+      <!-- if this is the root element, use the root.filename -->
+      <xsl:when test="not(parent::*) and $root.filename != ''">
+        <xsl:value-of select="$root.filename"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <!-- Special case -->
+      <xsl:when test="self::legalnotice and not($generate.legalnotice.link = 0)">
+        <xsl:choose>
+          <xsl:when test="(@id or @xml:id) and not($use.id.as.filename = 0)">
+            <!-- * if this legalnotice has an ID, then go ahead and use -->
+            <!-- * just the value of that ID as the basename for the file -->
+            <!-- * (that is, without prepending an "ln-" too it) -->
+            <xsl:value-of select="(@id|@xml:id)[1]"/>
+            <xsl:value-of select="$html.ext"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- * otherwise, if this legalnotice does not have an ID, -->
+            <!-- * then we generate an ID... -->
+            <xsl:variable name="id">
+              <xsl:call-template name="object.id"/>
+            </xsl:variable>
+            <!-- * ...and then we take that generated ID, prepend an -->
+            <!-- * "ln-" to it, and use that as the basename for the file -->
+            <xsl:value-of select="concat('ln-',$id,$html.ext)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <!-- if there's no dbhtml filename, and if we're to use IDs as -->
+      <!-- filenames, then use the ID to generate the filename. -->
+      <xsl:when test="(@id or @xml:id) and $use.id.as.filename != 0">
+        <xsl:value-of select="(@id|@xml:id)[1]"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </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="recursive-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:value-of select="$filename"/>
+    </xsl:when>
+
+    <xsl:when test="self::set">
+      <xsl:value-of select="$root.filename"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::book">
+      <xsl:text>bk</xsl:text>
+      <xsl:number level="any" format="01"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::article">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ar</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::preface">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>pr</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::chapter">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ch</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::appendix">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ap</xsl:text>
+      <xsl:number level="any" format="a" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::part">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>pt</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::reference">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>rn</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::refentry">
+      <xsl:choose>
+        <xsl:when test="parent::reference">
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="/set">
+            <!-- in a set, make sure we inherit the right book info... -->
+            <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+              <xsl:with-param name="recursive" select="true()"/>
+            </xsl:apply-templates>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>re</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::colophon">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>co</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::sect1
+                    or self::sect2
+                    or self::sect3
+                    or self::sect4
+                    or self::sect5
+                    or self::section">
+      <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+        <xsl:with-param name="recursive" select="true()"/>
+      </xsl:apply-templates>
+      <xsl:text>s</xsl:text>
+      <xsl:number format="01"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::bibliography">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>bi</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::glossary">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>go</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::index">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>ix</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::setindex">
+      <xsl:text>si</xsl:text>
+      <xsl:number level="any" format="01" from="set"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::topic">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>to</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </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>
+
+<!-- ==================================================================== -->
+
+
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="find.chunks">
+  <xsl:variable name="chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$chunk != 0">
+      <cf:div id="{generate-id()}">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:apply-templates select="*" mode="find.chunks"/>
+      </cf:div>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="*" mode="find.chunks"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Leave legalnotice chunk out of the list for Next and Prev -->
+<xsl:template match="legalnotice" mode="find.chunks"/>
+
+<xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+	 stylesheets for DocBook5 if you don't want to use this feature.-->
+    <xsl:when test="$exsl.node.set.available != 0 
+                    and (*/self::ng:* or */self::db:*)">
+
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+
+      <xsl:apply-templates select="exsl:node-set($no.namespace)"/>
+    </xsl:when>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="*/self::ng:* or */self::db:*">
+      <xsl:message terminate="yes">
+        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+        <xsl:text> cannot proceed.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count(key('id',$rootid)) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or
+                            $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)"
+                                     mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="key('id',$rootid)"
+                                     mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="key('id',$rootid)"
+                                       mode="collect.tex.math"/>
+                </xsl:if>
+                <xsl:if test="$generate.manifest != 0">
+                  <xsl:call-template name="generate.manifest">
+                    <xsl:with-param name="node" select="key('id',$rootid)"/>
+                  </xsl:call-template>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or
+                        $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="/" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="/" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="/" mode="collect.tex.math"/>
+            </xsl:if>
+            <xsl:if test="$generate.manifest != 0">
+              <xsl:call-template name="generate.manifest">
+                <xsl:with-param name="node" select="/"/>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:apply-templates select="."/>
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="set|book|part|preface|chapter|appendix
+                     |article
+                     |topic
+                     |reference|refentry
+                     |book/glossary|article/glossary|part/glossary
+                     |book/bibliography|article/bibliography|part/bibliography
+                     |colophon">
+  <xsl:choose>
+    <xsl:when test="$onechunk != 0 and parent::*">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not(parent::*)">
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:when>
+    <xsl:when test="$ischunk = 0">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex
+                     |book/index
+                     |article/index
+                     |part/index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. -->
+  <xsl:if test="count(*)>0 or $generate.index != '0'">
+    <xsl:call-template name="process-chunk-element"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- Resolve xml:base attributes -->
+<xsl:template match="@fileref">
+  <!-- need a check for absolute urls -->
+  <xsl:choose>
+    <xsl:when test="contains(., ':')">
+      <!-- it has a uri scheme so it is an absolute uri -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:when test="$keep.relative.image.uris != 0">
+      <!-- leave it alone -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- its a relative uri -->
+      <xsl:call-template name="relative-uri">
+        <xsl:with-param name="destdir">
+          <xsl:call-template name="dbhtml-dir">
+            <xsl:with-param name="context" select=".."/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template match="set|book|part|preface|chapter|appendix
+                     |article
+                     |topic
+                     |reference|refentry
+                     |sect1|sect2|sect3|sect4|sect5
+                     |section
+                     |book/glossary|article/glossary|part/glossary
+                     |book/bibliography|article/bibliography|part/bibliography
+                     |colophon"
+              mode="enumerate-files">
+  <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+  <xsl:if test="$ischunk='1'">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir">
+        <xsl:if test="$manifest.in.base.dir = 0">
+          <xsl:value-of select="$chunk.base.dir"/>
+        </xsl:if>
+      </xsl:with-param>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+  <xsl:apply-templates select="*" mode="enumerate-files"/>
+</xsl:template>
+
+<xsl:template match="book/index|article/index|part/index"
+              mode="enumerate-files">
+  <xsl:if test="$htmlhelp.output != 1">
+    <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+    <xsl:if test="$ischunk='1'">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir">
+          <xsl:if test="$manifest.in.base.dir = 0">
+            <xsl:value-of select="$chunk.base.dir"/>
+          </xsl:if>
+        </xsl:with-param>
+        <xsl:with-param name="base.name">
+          <xsl:apply-templates mode="chunk-filename" select="."/>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>&#10;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="*" mode="enumerate-files"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="enumerate-files">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <xsl:if test="$generate.legalnotice.link != 0">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir">
+        <xsl:if test="$manifest.in.base.dir = 0">
+          <xsl:value-of select="$chunk.base.dir"/>
+        </xsl:if>
+      </xsl:with-param>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="mediaobject[imageobject] | inlinemediaobject[imageobject]" mode="enumerate-files">
+  <xsl:variable name="longdesc.uri">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject"
+                      select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="mediaobject" select="."/>
+
+  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="$mediaobject"/>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="enumerate-files">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/chunk-common.xsl b/applications/content/template/docbook/html/chunk-common.xsl
new file mode 100644
index 0000000..f4338da
--- /dev/null
+++ b/applications/content/template/docbook/html/chunk-common.xsl
@@ -0,0 +1,1977 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0"
+                xmlns:ng="http://docbook.org/docbook-ng"
+                xmlns:db="http://docbook.org/ns/docbook"
+                version="1.0"
+                exclude-result-prefixes="exsl cf ng db">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:param name="onechunk" select="0"/>
+<xsl:param name="refentry.separator" select="0"/>
+<xsl:param name="chunk.fast" select="0"/>
+
+<xsl:key name="genid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:variable name="chunk.hierarchy">
+  <xsl:if test="$chunk.fast != 0">
+    <xsl:choose>
+      <!-- Are we handling a docbook5 document? -->
+      <xsl:when test="$exsl.node.set.available != 0
+                      and (*/self::ng:* or */self::db:*)">
+        <xsl:if test="$chunk.quietly = 0">
+          <xsl:message>Computing stripped namespace chunks...</xsl:message>
+        </xsl:if>
+        <xsl:apply-templates mode="find.chunks" select="exsl:node-set($no.namespace)"/>
+      </xsl:when>
+      <xsl:when test="$exsl.node.set.available != 0">
+        <xsl:if test="$chunk.quietly = 0">
+          <xsl:message>Computing chunks...</xsl:message>
+        </xsl:if>
+
+        <xsl:apply-templates select="/*" mode="find.chunks"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:if test="$chunk.quietly = 0">
+          <xsl:message>
+            <xsl:text>Fast chunking requires exsl:node-set(). </xsl:text>
+            <xsl:text>Using "slow" chunking.</xsl:text>
+          </xsl:message>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:variable>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$chunk.fast != 0 and $exsl.node.set.available != 0">
+      <xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/>
+      <xsl:variable name="genid" select="generate-id()"/>
+
+      <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/>
+
+      <xsl:variable name="prevdiv"
+                    select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/>
+      <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/>
+
+      <xsl:variable name="nextdiv"
+                    select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/>
+      <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and parent::*">
+          <xsl:copy-of select="$content"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="process-chunk">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and not(parent::*)">
+          <xsl:call-template name="chunk-all-sections">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$onechunk != 0">
+          <xsl:copy-of select="$content"/>
+        </xsl:when>
+        <xsl:when test="$chunk.first.sections = 0">
+          <xsl:call-template name="chunk-first-section-with-parent">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="chunk-all-sections">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process-chunk">
+  <xsl:param name="prev" select="."/>
+  <xsl:param name="next" select="."/>
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunkfn">
+    <xsl:if test="$ischunk='1'">
+      <xsl:apply-templates mode="chunk-filename" select="."/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="$ischunk='0'">
+    <xsl:message>
+      <xsl:text>Error </xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:text> is not a chunk!</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+      <xsl:with-param name="base.name" select="$chunkfn"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="chunk-element-content">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:with-param>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-first-section-with-parent">
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <!-- These xpath expressions are really hairy. The trick is to pick sections -->
+  <!-- that are not first children and are not the children of first children -->
+
+  <!-- Break these variables into pieces to work around
+       http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6063 -->
+
+  <xsl:variable name="prev-v1"
+     select="(ancestor::sect1[$chunk.section.depth &gt; 0 
+	                           and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect1][1]
+
+             |ancestor::sect2[$chunk.section.depth &gt; 1
+                               and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect2
+                               and parent::sect1[preceding-sibling::sect1]][1]
+
+             |ancestor::sect3[$chunk.section.depth &gt; 2
+                               and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect3
+                               and parent::sect2[preceding-sibling::sect2]
+                               and ancestor::sect1[preceding-sibling::sect1]][1]
+
+             |ancestor::sect4[$chunk.section.depth &gt; 3
+                               and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect4
+                               and parent::sect3[preceding-sibling::sect3]
+                               and ancestor::sect2[preceding-sibling::sect2]
+                               and ancestor::sect1[preceding-sibling::sect1]][1]
+
+             |ancestor::sect5[$chunk.section.depth &gt; 4
+                               and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect5
+                               and parent::sect4[preceding-sibling::sect4]
+                               and ancestor::sect3[preceding-sibling::sect3]
+                               and ancestor::sect2[preceding-sibling::sect2]
+                               and ancestor::sect1[preceding-sibling::sect1]][1]
+
+             |ancestor::section[$chunk.section.depth &gt; count(ancestor::section)
+	                            and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                                and not(ancestor::section[not(preceding-sibling::section)])][1])[last()]"/>
+
+  <xsl:variable name="prev-v2"
+     select="(preceding::sect1[$chunk.section.depth &gt; 0
+                               and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect1][1]
+
+             |preceding::sect2[$chunk.section.depth &gt; 1
+                               and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect2
+                               and parent::sect1[preceding-sibling::sect1]][1]
+
+             |preceding::sect3[$chunk.section.depth &gt; 2
+                               and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect3
+                               and parent::sect2[preceding-sibling::sect2]
+                               and ancestor::sect1[preceding-sibling::sect1]][1]
+
+             |preceding::sect4[$chunk.section.depth &gt; 3
+                               and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect4
+                               and parent::sect3[preceding-sibling::sect3]
+                               and ancestor::sect2[preceding-sibling::sect2]
+                               and ancestor::sect1[preceding-sibling::sect1]][1]
+
+             |preceding::sect5[$chunk.section.depth &gt; 4
+                               and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect5
+                               and parent::sect4[preceding-sibling::sect4]
+                               and ancestor::sect3[preceding-sibling::sect3]
+                               and ancestor::sect2[preceding-sibling::sect2]
+                               and ancestor::sect1[preceding-sibling::sect1]][1]
+
+             |preceding::section[$chunk.section.depth &gt; count(ancestor::section)
+  	                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                                 and preceding-sibling::section
+                                 and not(ancestor::section[not(preceding-sibling::section)])][1])[last()]"/>
+
+  <xsl:variable name="prev"
+    select="(preceding::book[1]
+             |preceding::preface[1]
+             |preceding::chapter[1]
+             |preceding::appendix[1]
+             |preceding::part[1]
+             |preceding::reference[1]
+             |preceding::refentry[1]
+             |preceding::colophon[1]
+             |preceding::article[1]
+             |preceding::topic[1]
+             |preceding::bibliography[parent::article or parent::book or parent::part][1]
+             |preceding::glossary[parent::article or parent::book or parent::part][1]
+             |preceding::index[$generate.index != 0]
+                               [parent::article or parent::book or parent::part][1]
+             |preceding::setindex[$generate.index != 0][1]
+             |ancestor::set
+             |ancestor::book[1]
+             |ancestor::preface[1]
+             |ancestor::chapter[1]
+             |ancestor::appendix[1]
+             |ancestor::part[1]
+             |ancestor::reference[1]
+             |ancestor::article[1]
+             |ancestor::topic[1]
+             |$prev-v1
+             |$prev-v2)[last()]"/>
+
+  <xsl:variable name="next-v1"
+    select="(following::sect1[$chunk.section.depth &gt; 0
+	                           and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect1][1]
+
+             |following::sect2[$chunk.section.depth &gt; 1
+	                           and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect2
+                               and parent::sect1[preceding-sibling::sect1]][1]
+
+             |following::sect3[$chunk.section.depth &gt; 2
+	                           and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect3
+                               and parent::sect2[preceding-sibling::sect2]
+                               and ancestor::sect1[preceding-sibling::sect1]][1]
+
+             |following::sect4[$chunk.section.depth &gt; 3
+	                           and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect4
+                               and parent::sect3[preceding-sibling::sect3]
+                               and ancestor::sect2[preceding-sibling::sect2]
+                               and ancestor::sect1[preceding-sibling::sect1]][1]
+
+             |following::sect5[$chunk.section.depth &gt; 4
+	                           and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect5
+                               and parent::sect4[preceding-sibling::sect4]
+                               and ancestor::sect3[preceding-sibling::sect3]
+                               and ancestor::sect2[preceding-sibling::sect2]
+                               and ancestor::sect1[preceding-sibling::sect1]][1]
+
+             |following::section[$chunk.section.depth &gt; count(ancestor::section)
+  	                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                                 and preceding-sibling::section 
+                                 and not(ancestor::section[not(preceding-sibling::section)])][1])[1]"/>
+
+  <xsl:variable name="next-v2"
+    select="(descendant::sect1[$chunk.section.depth &gt; 0
+	                           and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect1][1]
+
+             |descendant::sect2[$chunk.section.depth &gt; 1
+	                           and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect2
+                               and parent::sect1[preceding-sibling::sect1]][1]
+
+             |descendant::sect3[$chunk.section.depth &gt; 2
+	                           and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect3
+                               and parent::sect2[preceding-sibling::sect2]
+                               and ancestor::sect1[preceding-sibling::sect1]][1]
+
+             |descendant::sect4[$chunk.section.depth &gt; 3
+	                           and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect4
+                               and parent::sect3[preceding-sibling::sect3]
+                               and ancestor::sect2[preceding-sibling::sect2]
+                               and ancestor::sect1[preceding-sibling::sect1]][1]
+
+             |descendant::sect5[$chunk.section.depth &gt; 4
+	                           and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                               and preceding-sibling::sect5
+                               and parent::sect4[preceding-sibling::sect4]
+                               and ancestor::sect3[preceding-sibling::sect3]
+                               and ancestor::sect2[preceding-sibling::sect2]
+                               and ancestor::sect1[preceding-sibling::sect1]][1]
+
+             |descendant::section[$chunk.section.depth &gt; count(ancestor::section)
+   	                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])
+                                 and preceding-sibling::section
+                                 and not(ancestor::section[not(preceding-sibling::section)])])[1]"/>
+
+  <xsl:variable name="next"
+    select="(following::book[1]
+             |following::preface[1]
+             |following::chapter[1]
+             |following::appendix[1]
+             |following::part[1]
+             |following::reference[1]
+             |following::refentry[1]
+             |following::colophon[1]
+             |following::bibliography[parent::article or parent::book or parent::part][1]
+             |following::glossary[parent::article or parent::book or parent::part][1]
+             |following::index[$generate.index != 0]
+                               [parent::article or parent::book or parent::part][1]
+             |following::article[1]
+             |following::topic[1]
+             |following::setindex[$generate.index != 0][1]
+             |descendant::book[1]
+             |descendant::preface[1]
+             |descendant::chapter[1]
+             |descendant::appendix[1]
+             |descendant::article[1]
+             |descendant::topic[1]
+             |descendant::bibliography[parent::article or parent::book or parent::part][1]
+             |descendant::glossary[parent::article or parent::book or parent::part][1]
+             |descendant::index[$generate.index != 0]
+                               [parent::article or parent::book or parent::part][1]
+             |descendant::colophon[1]
+             |descendant::setindex[$generate.index != 0][1]
+             |descendant::part[1]
+             |descendant::reference[1]
+             |descendant::refentry[1]
+             |$next-v1
+             |$next-v2)[1]"/>
+
+  <xsl:call-template name="process-chunk">
+    <xsl:with-param name="prev" select="$prev"/>
+    <xsl:with-param name="next" select="$next"/>
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-all-sections">
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:variable name="prev-v1"
+    select="(preceding::sect1[$chunk.section.depth &gt; 0 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |preceding::sect2[$chunk.section.depth &gt; 1 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |preceding::sect3[$chunk.section.depth &gt; 2 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |preceding::sect4[$chunk.section.depth &gt; 3 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |preceding::sect5[$chunk.section.depth &gt; 4 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |preceding::section[$chunk.section.depth &gt; count(ancestor::section) and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1])[last()]"/>
+
+  <xsl:variable name="prev-v2"
+    select="(ancestor::sect1[$chunk.section.depth &gt; 0 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |ancestor::sect2[$chunk.section.depth &gt; 1 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |ancestor::sect3[$chunk.section.depth &gt; 2 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |ancestor::sect4[$chunk.section.depth &gt; 3 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |ancestor::sect5[$chunk.section.depth &gt; 4 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |ancestor::section[$chunk.section.depth &gt; count(ancestor::section) and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1])[last()]"/>
+
+  <xsl:variable name="prev"
+    select="(preceding::book[1]
+             |preceding::preface[1]
+             |preceding::chapter[1]
+             |preceding::appendix[1]
+             |preceding::part[1]
+             |preceding::reference[1]
+             |preceding::refentry[1]
+             |preceding::colophon[1]
+             |preceding::article[1]
+             |preceding::topic[1]
+             |preceding::bibliography[parent::article or parent::book or parent::part][1]
+             |preceding::glossary[parent::article or parent::book or parent::part][1]
+             |preceding::index[$generate.index != 0]
+                               [parent::article or parent::book or parent::part][1]
+             |preceding::setindex[$generate.index != 0][1]
+             |ancestor::set
+             |ancestor::book[1]
+             |ancestor::preface[1]
+             |ancestor::chapter[1]
+             |ancestor::appendix[1]
+             |ancestor::part[1]
+             |ancestor::reference[1]
+             |ancestor::article[1]
+             |ancestor::topic[1]
+             |$prev-v1
+             |$prev-v2)[last()]"/>
+
+  <xsl:variable name="next-v1"
+    select="(following::sect1[$chunk.section.depth &gt; 0 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |following::sect2[$chunk.section.depth &gt; 1 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |following::sect3[$chunk.section.depth &gt; 2 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |following::sect4[$chunk.section.depth &gt; 3 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |following::sect5[$chunk.section.depth &gt; 4 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |following::section[$chunk.section.depth &gt; count(ancestor::section) and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1])[1]"/>
+
+  <xsl:variable name="next-v2"
+    select="(descendant::sect1[$chunk.section.depth &gt; 0 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |descendant::sect2[$chunk.section.depth &gt; 1 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |descendant::sect3[$chunk.section.depth &gt; 2 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |descendant::sect4[$chunk.section.depth &gt; 3 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |descendant::sect5[$chunk.section.depth &gt; 4 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]
+             |descendant::section[$chunk.section.depth 
+                                  &gt; count(ancestor::section) and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1])[1]"/>
+
+  <xsl:variable name="next"
+    select="(following::book[1]
+             |following::preface[1]
+             |following::chapter[1]
+             |following::appendix[1]
+             |following::part[1]
+             |following::reference[1]
+             |following::refentry[1]
+             |following::colophon[1]
+             |following::bibliography[parent::article or parent::book or parent::part][1]
+             |following::glossary[parent::article or parent::book or parent::part][1]
+             |following::index[$generate.index != 0]
+                               [parent::article or parent::book][1]
+             |following::article[1]
+             |following::topic[1]
+             |following::setindex[$generate.index != 0][1]
+             |descendant::book[1]
+             |descendant::preface[1]
+             |descendant::chapter[1]
+             |descendant::appendix[1]
+             |descendant::article[1]
+             |descendant::topic[1]
+             |descendant::bibliography[parent::article or parent::book][1]
+             |descendant::glossary[parent::article or parent::book or parent::part][1]
+             |descendant::index[$generate.index != 0]
+                               [parent::article or parent::book][1]
+             |descendant::colophon[1]
+             |descendant::setindex[$generate.index != 0][1]
+             |descendant::part[1]
+             |descendant::reference[1]
+             |descendant::refentry[1]
+             |$next-v1
+             |$next-v2)[1]"/>
+
+  <xsl:call-template name="process-chunk">
+    <xsl:with-param name="prev" select="$prev"/>
+    <xsl:with-param name="next" select="$next"/>
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make.lots">
+  <xsl:param name="toc.params" select="''"/>
+  <xsl:param name="toc"/>
+
+  <xsl:variable name="lots">
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:copy-of select="$toc"/>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'figure')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'figure'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'figure'"/>
+                <xsl:with-param name="nodes" select=".//figure"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'figure'"/>
+            <xsl:with-param name="nodes" select=".//figure"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'table')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'table'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'table'"/>
+                <xsl:with-param name="nodes" select=".//table[not(@tocentry = 0)]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'table'"/>
+            <xsl:with-param name="nodes" select=".//table[not(@tocentry = 0)]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'example')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'example'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'example'"/>
+                <xsl:with-param name="nodes" select=".//example"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'example'"/>
+            <xsl:with-param name="nodes" select=".//example"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'equation')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'equation'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'equation'"/>
+                <xsl:with-param name="nodes" select=".//equation[title or info/title]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'equation'"/>
+            <xsl:with-param name="nodes" select=".//equation[title or info/title]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'procedure')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'procedure'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'procedure'"/>
+                <xsl:with-param name="nodes" select=".//procedure[title]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'procedure'"/>
+            <xsl:with-param name="nodes" select=".//procedure[title]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="string($lots) != ''">
+    <xsl:choose>
+      <xsl:when test="$chunk.tocs.and.lots != 0 and not(parent::*)">
+        <xsl:call-template name="write.chunk">
+          <xsl:with-param name="filename">
+            <xsl:call-template name="make-relative-filename">
+              <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+              <xsl:with-param name="base.name">
+                <xsl:call-template name="dbhtml-dir"/>
+                <xsl:value-of select="$chunked.filename.prefix"/>
+                <xsl:apply-templates select="." mode="recursive-chunk-filename">
+                  <xsl:with-param name="recursive" select="true()"/>
+                </xsl:apply-templates>
+                <xsl:text>-toc</xsl:text>
+                <xsl:value-of select="$html.ext"/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="content">
+            <xsl:call-template name="chunk-element-content">
+              <xsl:with-param name="prev" select="/foo"/>
+              <xsl:with-param name="next" select="/foo"/>
+              <xsl:with-param name="nav.context" select="'toc'"/>
+              <xsl:with-param name="content">
+                <xsl:if test="$chunk.tocs.and.lots.has.title != 0">
+                  <h1>
+                    <xsl:apply-templates select="." mode="object.title.markup"/>
+                  </h1>
+                </xsl:if>
+                <xsl:copy-of select="$lots"/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="quiet" select="$chunk.quietly"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$lots"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="make.lot.chunk">
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="lot"/>
+
+  <xsl:if test="string($lot) != ''">
+    <xsl:variable name="filename">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+        <xsl:with-param name="base.name">
+          <xsl:call-template name="dbhtml-dir"/>
+          <xsl:value-of select="$type"/>
+          <xsl:text>-toc</xsl:text>
+          <xsl:value-of select="$html.ext"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="href">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir" select="''"/>
+        <xsl:with-param name="base.name">
+          <xsl:call-template name="dbhtml-dir"/>
+          <xsl:value-of select="$type"/>
+          <xsl:text>-toc</xsl:text>
+          <xsl:value-of select="$html.ext"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="write.chunk">
+      <xsl:with-param name="filename" select="$filename"/>
+      <xsl:with-param name="content">
+        <xsl:call-template name="chunk-element-content">
+          <xsl:with-param name="prev" select="/foo"/>
+          <xsl:with-param name="next" select="/foo"/>
+          <xsl:with-param name="nav.context" select="'toc'"/>
+          <xsl:with-param name="content">
+            <xsl:copy-of select="$lot"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:with-param>
+      <xsl:with-param name="quiet" select="$chunk.quietly"/>
+    </xsl:call-template>
+    <!-- And output a link to this file -->
+    <div>
+      <xsl:attribute name="class">
+        <xsl:text>ListofTitles</xsl:text>
+      </xsl:attribute>
+      <a href="{$href}">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key">
+            <xsl:choose>
+              <xsl:when test="$type='table'">ListofTables</xsl:when>
+              <xsl:when test="$type='figure'">ListofFigures</xsl:when>
+              <xsl:when test="$type='equation'">ListofEquations</xsl:when>
+              <xsl:when test="$type='example'">ListofExamples</xsl:when>
+              <xsl:when test="$type='procedure'">ListofProcedures</xsl:when>
+              <xsl:otherwise>ListofUnknown</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+      </a>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="in.other.chunk">
+  <xsl:param name="chunk" select="."/>
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:text>in.other.chunk: </xsl:text>
+    <xsl:value-of select="name($chunk)"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="name($node)"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$chunk = $node"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$is.chunk"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+    <xsl:when test="$chunk = $node">0</xsl:when>
+    <xsl:when test="$is.chunk = 1">1</xsl:when>
+    <xsl:when test="count($node) = 0">0</xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="in.other.chunk">
+        <xsl:with-param name="chunk" select="$chunk"/>
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="count.footnotes.in.this.chunk">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="footnotes" select="$node//footnote"/>
+  <xsl:param name="count" select="0"/>
+
+<!--
+  <xsl:message>
+    <xsl:text>count.footnotes.in.this.chunk: </xsl:text>
+    <xsl:value-of select="name($node)"/>
+  </xsl:message>
+-->
+
+  <xsl:variable name="in.other.chunk">
+    <xsl:call-template name="in.other.chunk">
+      <xsl:with-param name="chunk" select="$node"/>
+      <xsl:with-param name="node" select="$footnotes[1]"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="count($footnotes) = 0">
+      <xsl:value-of select="$count"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$in.other.chunk != 0">
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$footnotes[1]/ancestor::table
+                        |$footnotes[1]/ancestor::informaltable">
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count + 1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.footnotes.in.this.chunk">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="footnotes" select="$node//footnote"/>
+
+<!--
+  <xsl:message>process.footnotes.in.this.chunk</xsl:message>
+-->
+
+  <xsl:variable name="in.other.chunk">
+    <xsl:call-template name="in.other.chunk">
+      <xsl:with-param name="chunk" select="$node"/>
+      <xsl:with-param name="node" select="$footnotes[1]"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="count($footnotes) = 0">
+      <!-- nop -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$in.other.chunk != 0">
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$footnotes[1]/ancestor::table
+                        |$footnotes[1]/ancestor::informaltable">
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$footnotes[1]"
+                               mode="process.footnote.mode"/>
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.footnotes">
+  <xsl:variable name="footnotes" select=".//footnote"/>
+  <xsl:variable name="fcount">
+    <xsl:call-template name="count.footnotes.in.this.chunk">
+      <xsl:with-param name="node" select="."/>
+      <xsl:with-param name="footnotes" select="$footnotes"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text> fcount: </xsl:text>
+    <xsl:value-of select="$fcount"/>
+  </xsl:message>
+-->
+
+  <!-- Only bother to do this if there's at least one non-table footnote -->
+  <xsl:if test="$fcount &gt; 0">
+    <div class="footnotes">
+      <xsl:call-template name="footnotes.attributes"/>
+      <br/>
+      <hr>
+        <xsl:choose>
+          <xsl:when test="$make.clean.html != 0">
+            <xsl:attribute name="class">footnote-hr</xsl:attribute>
+          </xsl:when>
+          <xsl:when test="$css.decoration != 0">
+            <xsl:attribute name="style">
+              <xsl:value-of select="concat('width:100; align:',
+                                            $direction.align.start,
+                                            ';')"/>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:attribute name="width">100</xsl:attribute>
+            <xsl:attribute name="align"><xsl:value-of 
+                      select="$direction.align.start"/></xsl:attribute>
+          </xsl:otherwise>
+        </xsl:choose>
+      </hr>
+      <xsl:call-template name="process.footnotes.in.this.chunk">
+        <xsl:with-param name="node" select="."/>
+        <xsl:with-param name="footnotes" select="$footnotes"/>
+      </xsl:call-template>
+    </div>
+  </xsl:if>
+
+  <!-- FIXME: When chunking, only the annotations actually used
+              in this chunk should be referenced. I don't think it
+              does any harm to reference them all, but it adds
+              unnecessary bloat to each chunk. -->
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <div class="annotation-list">
+      <div class="annotation-nocss">
+        <p>The following annotations are from this essay. You are seeing
+        them here because your browser doesn’t support the user-interface
+        techniques used to make them appear as ‘popups’ on modern browsers.</p>
+      </div>
+
+      <xsl:apply-templates select="//annotation"
+                           mode="annotation-popup"/>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.chunk.footnotes">
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+  <xsl:if test="$is.chunk = 1">
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+  <!-- returns 1 if $node is a chunk -->
+
+  <!-- ==================================================================== -->
+  <!-- What's a chunk?
+
+       The root element
+       appendix
+       article
+       bibliography  in article or part or book
+       book
+       chapter
+       colophon
+       glossary      in article or part or book
+       index         in article or part or book
+       part
+       preface
+       refentry
+       reference
+       sect{1,2,3,4,5}  if position()>1 && depth < chunk.section.depth
+       section          if position()>1 && depth < chunk.section.depth
+       set
+       setindex
+       topic
+                                                                            -->
+  <!-- ==================================================================== -->
+
+<!--
+  <xsl:message>
+    <xsl:text>chunk: </xsl:text>
+    <xsl:value-of select="name($node)"/>
+    <xsl:text>(</xsl:text>
+    <xsl:value-of select="$node/@id"/>
+    <xsl:text>)</xsl:text>
+    <xsl:text> csd: </xsl:text>
+    <xsl:value-of select="$chunk.section.depth"/>
+    <xsl:text> cfs: </xsl:text>
+    <xsl:value-of select="$chunk.first.sections"/>
+    <xsl:text> ps: </xsl:text>
+    <xsl:value-of select="count($node/parent::section)"/>
+    <xsl:text> prs: </xsl:text>
+    <xsl:value-of select="count($node/preceding-sibling::section)"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+	  <xsl:when test="$node/parent::*/processing-instruction('dbhtml')[normalize-space(.) = 'stop-chunking']">0</xsl:when>
+    <xsl:when test="not($node/parent::*)">1</xsl:when>
+
+    <xsl:when test="local-name($node) = 'sect1'
+                    and $chunk.section.depth &gt;= 1
+                    and ($chunk.first.sections != 0
+                         or count($node/preceding-sibling::sect1) &gt; 0)">
+      <xsl:text>1</xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'sect2'
+                    and $chunk.section.depth &gt;= 2
+                    and ($chunk.first.sections != 0
+                         or count($node/preceding-sibling::sect2) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'sect3'
+                    and $chunk.section.depth &gt;= 3
+                    and ($chunk.first.sections != 0
+                         or count($node/preceding-sibling::sect3) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'sect4'
+                    and $chunk.section.depth &gt;= 4
+                    and ($chunk.first.sections != 0
+                         or count($node/preceding-sibling::sect4) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'sect5'
+                    and $chunk.section.depth &gt;= 5
+                    and ($chunk.first.sections != 0
+                         or count($node/preceding-sibling::sect5) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'section'
+                    and $chunk.section.depth &gt;= count($node/ancestor::section)+1
+                    and ($chunk.first.sections != 0
+                         or count($node/preceding-sibling::section) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="local-name($node)='preface'">1</xsl:when>
+    <xsl:when test="local-name($node)='chapter'">1</xsl:when>
+    <xsl:when test="local-name($node)='appendix'">1</xsl:when>
+    <xsl:when test="local-name($node)='article'">1</xsl:when>
+    <xsl:when test="local-name($node)='topic'">1</xsl:when>
+    <xsl:when test="local-name($node)='part'">1</xsl:when>
+    <xsl:when test="local-name($node)='reference'">1</xsl:when>
+    <xsl:when test="local-name($node)='refentry'">1</xsl:when>
+    <xsl:when test="local-name($node)='index' and ($generate.index != 0 or count($node/*) > 0)
+                    and (local-name($node/parent::*) = 'article'
+                    or local-name($node/parent::*) = 'book'
+                    or local-name($node/parent::*) = 'part'
+                    )">1</xsl:when>
+    <xsl:when test="local-name($node)='bibliography'
+                    and (local-name($node/parent::*) = 'article'
+                    or local-name($node/parent::*) = 'book'
+                    or local-name($node/parent::*) = 'part'
+                    )">1</xsl:when>
+    <xsl:when test="local-name($node)='glossary'
+                    and (local-name($node/parent::*) = 'article'
+                    or local-name($node/parent::*) = 'book'
+                    or local-name($node/parent::*) = 'part'
+                    )">1</xsl:when>
+    <xsl:when test="local-name($node)='colophon'">1</xsl:when>
+    <xsl:when test="local-name($node)='book'">1</xsl:when>
+    <xsl:when test="local-name($node)='set'">1</xsl:when>
+    <xsl:when test="local-name($node)='setindex'">1</xsl:when>
+    <xsl:when test="local-name($node)='legalnotice'
+                    and $generate.legalnotice.link != 0">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="href.target.uri">
+  <xsl:param name="object" select="."/>
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:apply-templates mode="chunk-filename" select="$object"/>
+
+  <xsl:if test="$ischunk='0'">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="href.target">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="object" select="."/>
+  <xsl:param name="toc-context" select="."/>
+  <!-- * If $toc-context contains some node other than the current node, -->
+  <!-- * it means we're processing a link in a TOC. In that case, to -->
+  <!-- * ensure the link will work correctly, we need to take a look at -->
+  <!-- * where the file containing the TOC will get written, and where -->
+  <!-- * the file that's being linked to will get written. -->
+  <xsl:variable name="toc-output-dir">
+    <xsl:if test="not($toc-context = .)">
+      <!-- * Get the $toc-context node and all its ancestors, look down -->
+      <!-- * through them to find the last/closest node to the -->
+      <!-- * toc-context node that has a "dbhtml dir" PI, and get the -->
+      <!-- * directory name from that. That's the name of the directory -->
+      <!-- * to which the current toc output file will get written. -->
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context"
+          select="$toc-context/ancestor-or-self::*[processing-instruction('dbhtml')[contains(.,'dir')]][last()]"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="linked-file-output-dir">
+    <xsl:if test="not($toc-context = .)">
+      <!-- * Get the current node and all its ancestors, look down -->
+      <!-- * through them to find the last/closest node to the current -->
+      <!-- * node that has a "dbhtml dir" PI, and get the directory name -->
+      <!-- * from that.  That's the name of the directory to which the -->
+      <!-- * file that's being linked to will get written. -->
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context"
+          select="ancestor-or-self::*[processing-instruction('dbhtml')[contains(.,'dir')]][last()]"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="href.to.uri">
+    <xsl:call-template name="href.target.uri">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href.from.uri">
+    <xsl:choose>
+      <xsl:when test="not($toc-context = .)">
+        <xsl:call-template name="href.target.uri">
+          <xsl:with-param name="object" select="$toc-context"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="href.target.uri">
+          <xsl:with-param name="object" select="$context"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <!-- * <xsl:message>toc-context: <xsl:value-of select="local-name($toc-context)"/></xsl:message> -->
+  <!-- * <xsl:message>node: <xsl:value-of select="local-name(.)"/></xsl:message> -->
+  <!-- * <xsl:message>context: <xsl:value-of select="local-name($context)"/></xsl:message> -->
+  <!-- * <xsl:message>object: <xsl:value-of select="local-name($object)"/></xsl:message> -->
+  <!-- * <xsl:message>toc-output-dir: <xsl:value-of select="$toc-output-dir"/></xsl:message> -->
+  <!-- * <xsl:message>linked-file-output-dir: <xsl:value-of select="$linked-file-output-dir"/></xsl:message> -->
+  <!-- * <xsl:message>href.to.uri: <xsl:value-of select="$href.to.uri"/></xsl:message> -->
+  <!-- * <xsl:message>href.from.uri: <xsl:value-of select="$href.from.uri"/></xsl:message> -->
+  <xsl:variable name="href.to">
+    <xsl:choose>
+      <!-- * 2007-07-19, MikeSmith: Added the following conditional to -->
+      <!-- * deal with a problem case for links in TOCs. It checks to see -->
+      <!-- * if the output dir that a TOC will get written to is -->
+      <!-- * different from the output dir of the file being linked to. -->
+      <!-- * If it is different, we do not call trim.common.uri.paths. -->
+      <!-- *  -->
+      <!-- * Reason why I added that conditional is: I ran into a bug for -->
+      <!-- * this case: -->
+      <!-- *  -->
+      <!-- * 1. we are chunking into separate dirs -->
+      <!-- *  -->
+      <!-- * 2. output for the TOC is written to current dir, but the file -->
+      <!-- *    being linked to is written to some subdir "foo". -->
+      <!-- *  -->
+      <!-- * For that case, links to that file in that TOC did not show -->
+      <!-- * the correct path - they omitted the "foo". -->
+      <!-- *  -->
+      <!-- * The cause of that problem was that the trim.common.uri.paths -->
+      <!-- * template[1] was being called under all conditions. But it's -->
+      <!-- * apparent that we don't want to call trim.common.uri.paths in -->
+      <!-- * the case where a linked file is being written to a different -->
+      <!-- * directory than the TOC that contains the link, because doing -->
+      <!-- * so will cause a necessary (not redundant) directory-name -->
+      <!-- * part of the link to get inadvertently trimmed, resulting in -->
+      <!-- * a broken link to that file. Thus, added the conditional. -->
+      <!-- *  -->
+      <!-- * [1] The purpose of the trim.common.uri.paths template is to -->
+      <!-- * prevent cases where, if we didn't call it, we end up with -->
+      <!-- * unnecessary, redundant directory names getting output; for -->
+      <!-- * example, "foo/foo/refname.html". -->
+      <xsl:when test="not($toc-output-dir = $linked-file-output-dir)">
+        <xsl:value-of select="$href.to.uri"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="trim.common.uri.paths">
+          <xsl:with-param name="uriA" select="$href.to.uri"/>
+          <xsl:with-param name="uriB" select="$href.from.uri"/>
+          <xsl:with-param name="return" select="'A'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="href.from">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$href.to.uri"/>
+      <xsl:with-param name="uriB" select="$href.from.uri"/>
+      <xsl:with-param name="return" select="'B'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="depth">
+    <xsl:call-template name="count.uri.path.depth">
+      <xsl:with-param name="filename" select="$href.from"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:call-template name="copy-string">
+      <xsl:with-param name="string" select="'../'"/>
+      <xsl:with-param name="count" select="$depth"/>
+    </xsl:call-template>
+    <xsl:value-of select="$href.to"/>
+  </xsl:variable>
+  <!--
+  <xsl:message>
+    <xsl:text>In </xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text> (</xsl:text>
+    <xsl:value-of select="$href.from"/>
+    <xsl:text>,</xsl:text>
+    <xsl:value-of select="$depth"/>
+    <xsl:text>) </xsl:text>
+    <xsl:value-of select="name($object)"/>
+    <xsl:text> href=</xsl:text>
+    <xsl:value-of select="$href"/>
+  </xsl:message>
+  -->
+  <xsl:value-of select="$href"/>
+</xsl:template>
+
+<!-- Returns the complete olink href value if found -->
+<!-- Must take into account any dbhtml dir of the chunk containing the olink -->
+<xsl:template name="make.olink.href">
+  <xsl:param name="olink.key" select="''"/>
+  <xsl:param name="target.database"/>
+
+  <xsl:if test="$olink.key != ''">
+    <xsl:variable name="target.href" >
+      <xsl:for-each select="$target.database" >
+        <xsl:value-of select="key('targetptr-key', $olink.key)[1]/@href" />
+      </xsl:for-each>
+    </xsl:variable>
+  
+    <!-- an olink starting point may be in a subdirectory, so need
+         the "from" reference point to compute a relative path -->
+
+    <xsl:variable name="from.href">
+      <xsl:call-template name="olink.from.uri">
+        <xsl:with-param name="target.database" select="$target.database"/>
+        <xsl:with-param name="object" select="."/>
+        <xsl:with-param name="object.targetdoc" select="$current.docid"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <!-- If the from.href has directory path, then must "../" upward
+         to document level -->
+    <xsl:variable name="upward.from.path">
+      <xsl:call-template name="upward.path">
+        <xsl:with-param name="path" select="$from.href"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="targetdoc">
+      <xsl:value-of select="substring-before($olink.key, '/')"/>
+    </xsl:variable>
+  
+    <!-- Does the target database use a sitemap? -->
+    <xsl:variable name="use.sitemap">
+      <xsl:choose>
+        <xsl:when test="$target.database//sitemap">1</xsl:when>
+        <xsl:otherwise>0</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+  
+    <!-- Get the baseuri for this targetptr -->
+    <xsl:variable name="baseuri" >
+      <xsl:choose>
+        <!-- Does the database use a sitemap? -->
+        <xsl:when test="$use.sitemap != 0" >
+          <xsl:choose>
+            <!-- Was current.docid parameter set? -->
+            <xsl:when test="$current.docid != ''">
+              <!-- Was it found in the database? -->
+              <xsl:variable name="currentdoc.key" >
+                <xsl:for-each select="$target.database" >
+                  <xsl:value-of select="key('targetdoc-key',
+                                        $current.docid)/@targetdoc" />
+                </xsl:for-each>
+              </xsl:variable>
+              <xsl:choose>
+                <xsl:when test="$currentdoc.key != ''">
+                  <xsl:for-each select="$target.database" >
+                    <xsl:call-template name="targetpath" >
+                      <xsl:with-param name="dirnode" 
+                          select="key('targetdoc-key', $current.docid)/parent::dir"/>
+                      <xsl:with-param name="targetdoc" select="$targetdoc"/>
+                    </xsl:call-template>
+                  </xsl:for-each >
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:message>
+                    <xsl:text>Olink error: cannot compute relative </xsl:text>
+                    <xsl:text>sitemap path because $current.docid '</xsl:text>
+                    <xsl:value-of select="$current.docid"/>
+                    <xsl:text>' not found in target database.</xsl:text>
+                  </xsl:message>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message>
+                <xsl:text>Olink warning: cannot compute relative </xsl:text>
+                <xsl:text>sitemap path without $current.docid parameter</xsl:text>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose> 
+          <!-- In either case, add baseuri from its document entry-->
+          <xsl:variable name="docbaseuri">
+            <xsl:for-each select="$target.database" >
+              <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri" />
+            </xsl:for-each>
+          </xsl:variable>
+          <xsl:if test="$docbaseuri != ''" >
+            <xsl:value-of select="$docbaseuri"/>
+          </xsl:if>
+        </xsl:when>
+        <!-- No database sitemap in use -->
+        <xsl:otherwise>
+          <!-- Just use any baseuri from its document entry -->
+          <xsl:variable name="docbaseuri">
+            <xsl:for-each select="$target.database" >
+              <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri" />
+            </xsl:for-each>
+          </xsl:variable>
+          <xsl:if test="$docbaseuri != ''" >
+            <xsl:value-of select="$docbaseuri"/>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+    <!-- Form the href information -->
+    <xsl:if test="not(contains($baseuri, ':'))">
+      <!-- if not an absolute uri, add upward path from olink chunk -->
+      <xsl:value-of select="$upward.from.path"/>
+    </xsl:if>
+
+    <xsl:if test="$baseuri != ''">
+      <xsl:value-of select="$baseuri"/>
+      <xsl:if test="substring($target.href,1,1) != '#'">
+        <!--xsl:text>/</xsl:text-->
+      </xsl:if>
+    </xsl:if>
+    <!-- optionally turn off frag for PDF references -->
+    <xsl:if test="not($insert.olink.pdf.frag = 0 and
+          translate(substring($baseuri, string-length($baseuri) - 3),
+                    'PDF', 'pdf') = '.pdf'
+          and starts-with($target.href, '#') )">
+      <xsl:value-of select="$target.href"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<!-- Computes "../" to reach top -->
+<xsl:template name="upward.path">
+  <xsl:param name="path" select="''"/>
+  <xsl:choose> 
+    <!-- Don't bother with absolute uris -->
+    <xsl:when test="contains($path, ':')"/>
+    <xsl:when test="starts-with($path, '/')"/>
+    <xsl:when test="contains($path, '/')">
+      <xsl:text>../</xsl:text>
+      <xsl:call-template name="upward.path">
+        <xsl:with-param name="path" select="substring-after($path, '/')"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="html.head">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:variable name="this" select="."/>
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <head>
+    <xsl:call-template name="system.head.content"/>
+    <xsl:call-template name="head.content"/>
+
+    <!-- home link not valid in HTML5 -->
+    <xsl:if test="$home and $div.element != 'section'">
+      <link rel="home">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$home"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$home"
+                               mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <!-- up link not valid in HTML5 -->
+    <xsl:if test="$up and $div.element != 'section'">
+      <link rel="up">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$up"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$up" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$prev">
+      <link rel="prev">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$prev"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$prev" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$next">
+      <link rel="next">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$next"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$next" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$html.extra.head.links != 0">
+      <xsl:for-each select="//part
+                            |//reference
+                            |//preface
+                            |//chapter
+                            |//article
+                            |//refentry
+                            |//appendix[not(parent::article)]|appendix
+                            |//glossary[not(parent::article)]|glossary
+                            |//index[not(parent::article)]|index">
+        <link rel="{local-name(.)}">
+          <xsl:attribute name="href">
+            <xsl:call-template name="href.target">
+              <xsl:with-param name="context" select="$this"/>
+              <xsl:with-param name="object" select="."/>
+            </xsl:call-template>
+          </xsl:attribute>
+          <xsl:attribute name="title">
+            <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+          </xsl:attribute>
+        </link>
+      </xsl:for-each>
+
+      <xsl:for-each select="section|sect1|refsection|refsect1">
+        <link>
+          <xsl:attribute name="rel">
+            <xsl:choose>
+              <xsl:when test="local-name($this) = 'section'
+                              or local-name($this) = 'refsection'">
+                <xsl:value-of select="'subsection'"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="'section'"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:attribute>
+          <xsl:attribute name="href">
+            <xsl:call-template name="href.target">
+              <xsl:with-param name="context" select="$this"/>
+              <xsl:with-param name="object" select="."/>
+            </xsl:call-template>
+          </xsl:attribute>
+          <xsl:attribute name="title">
+            <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+          </xsl:attribute>
+        </link>
+      </xsl:for-each>
+
+      <xsl:for-each select="sect2|sect3|sect4|sect5|refsect2|refsect3">
+        <link rel="subsection">
+          <xsl:attribute name="href">
+            <xsl:call-template name="href.target">
+              <xsl:with-param name="context" select="$this"/>
+              <xsl:with-param name="object" select="."/>
+            </xsl:call-template>
+          </xsl:attribute>
+          <xsl:attribute name="title">
+            <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+          </xsl:attribute>
+        </link>
+      </xsl:for-each>
+    </xsl:if>
+
+    <!-- * if we have a legalnotice and user wants it output as a -->
+    <!-- * separate page and $html.head.legalnotice.link.types is -->
+    <!-- * non-empty, we generate a link or links for each value in -->
+    <!-- * $html.head.legalnotice.link.types -->
+    <xsl:if test="//legalnotice
+                  and not($generate.legalnotice.link = 0)
+                  and not($html.head.legalnotice.link.types = '')">
+      <xsl:call-template name="make.legalnotice.head.links"/>
+    </xsl:if>
+
+    <xsl:call-template name="user.head.content"/>
+  </head>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="header.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <xsl:variable name="row1" select="$navig.showtitles != 0"/>
+  <xsl:variable name="row2" select="count($prev) &gt; 0
+                                    or (count($up) &gt; 0 
+                                        and generate-id($up) != generate-id($home)
+                                        and $navig.showtitles != 0)
+                                    or count($next) &gt; 0"/>
+
+  <xsl:if test="$suppress.navigation = '0' and $suppress.header.navigation = '0'">
+    <div class="navheader">
+      <xsl:if test="$row1 or $row2">
+        <table width="100%" summary="Navigation header">
+          <xsl:if test="$row1">
+            <tr>
+              <th colspan="3" align="center">
+                <xsl:apply-templates select="." mode="object.title.markup"/>
+              </th>
+            </tr>
+          </xsl:if>
+
+          <xsl:if test="$row2">
+            <tr>
+              <td width="20%" align="{$direction.align.start}">
+                <xsl:if test="count($prev)>0">
+                  <a accesskey="p">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$prev"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                    <xsl:call-template name="navig.content">
+                      <xsl:with-param name="direction" select="'prev'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+                <xsl:text>&#160;</xsl:text>
+              </td>
+              <th width="60%" align="center">
+                <xsl:choose>
+                  <xsl:when test="count($up) > 0
+                                  and generate-id($up) != generate-id($home)
+                                  and $navig.showtitles != 0">
+                    <xsl:apply-templates select="$up" mode="object.title.markup"/>
+                  </xsl:when>
+                  <xsl:otherwise>&#160;</xsl:otherwise>
+                </xsl:choose>
+              </th>
+              <td width="20%" align="{$direction.align.end}">
+                <xsl:text>&#160;</xsl:text>
+                <xsl:if test="count($next)>0">
+                  <a accesskey="n">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$next"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                    <xsl:call-template name="navig.content">
+                      <xsl:with-param name="direction" select="'next'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+              </td>
+            </tr>
+          </xsl:if>
+        </table>
+      </xsl:if>
+      <xsl:if test="$header.rule != 0">
+        <hr/>
+      </xsl:if>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="footer.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <xsl:variable name="row1" select="count($prev) &gt; 0
+                                    or count($up) &gt; 0
+                                    or count($next) &gt; 0"/>
+
+  <xsl:variable name="row2" select="($prev and $navig.showtitles != 0)
+                                    or (generate-id($home) != generate-id(.)
+                                        or $nav.context = 'toc')
+                                    or ($chunk.tocs.and.lots != 0
+                                        and $nav.context != 'toc')
+                                    or ($next and $navig.showtitles != 0)"/>
+
+  <xsl:if test="$suppress.navigation = '0' and $suppress.footer.navigation = '0'">
+    <div class="navfooter">
+      <xsl:if test="$footer.rule != 0">
+        <hr/>
+      </xsl:if>
+
+      <xsl:if test="$row1 or $row2">
+        <table width="100%" summary="Navigation footer">
+          <xsl:if test="$row1">
+            <tr>
+              <td width="40%" align="{$direction.align.start}">
+                <xsl:if test="count($prev)>0">
+                  <a accesskey="p">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$prev"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                    <xsl:call-template name="navig.content">
+                      <xsl:with-param name="direction" select="'prev'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+                <xsl:text>&#160;</xsl:text>
+              </td>
+              <td width="20%" align="center">
+                <xsl:choose>
+                  <xsl:when test="count($up)&gt;0
+                                  and generate-id($up) != generate-id($home)">
+                    <a accesskey="u">
+                      <xsl:attribute name="href">
+                        <xsl:call-template name="href.target">
+                          <xsl:with-param name="object" select="$up"/>
+                        </xsl:call-template>
+                      </xsl:attribute>
+                      <xsl:call-template name="navig.content">
+                        <xsl:with-param name="direction" select="'up'"/>
+                      </xsl:call-template>
+                    </a>
+                  </xsl:when>
+                  <xsl:otherwise>&#160;</xsl:otherwise>
+                </xsl:choose>
+              </td>
+              <td width="40%" align="{$direction.align.end}">
+                <xsl:text>&#160;</xsl:text>
+                <xsl:if test="count($next)>0">
+                  <a accesskey="n">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$next"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                    <xsl:call-template name="navig.content">
+                      <xsl:with-param name="direction" select="'next'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+              </td>
+            </tr>
+          </xsl:if>
+
+          <xsl:if test="$row2">
+            <tr>
+              <td width="40%" align="{$direction.align.start}" valign="top">
+                <xsl:if test="$navig.showtitles != 0">
+                  <xsl:apply-templates select="$prev" mode="object.title.markup"/>
+                </xsl:if>
+                <xsl:text>&#160;</xsl:text>
+              </td>
+              <td width="20%" align="center">
+                <xsl:choose>
+                  <xsl:when test="$home != . or $nav.context = 'toc'">
+                    <a accesskey="h">
+                      <xsl:attribute name="href">
+                        <xsl:call-template name="href.target">
+                          <xsl:with-param name="object" select="$home"/>
+                        </xsl:call-template>
+                      </xsl:attribute>
+                      <xsl:call-template name="navig.content">
+                        <xsl:with-param name="direction" select="'home'"/>
+                      </xsl:call-template>
+                    </a>
+                    <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+                      <xsl:text>&#160;|&#160;</xsl:text>
+                    </xsl:if>
+                  </xsl:when>
+                  <xsl:otherwise>&#160;</xsl:otherwise>
+                </xsl:choose>
+
+                <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+                  <a accesskey="t">
+                    <xsl:attribute name="href">
+                      <xsl:value-of select="$chunked.filename.prefix"/>
+                      <xsl:apply-templates select="/*[1]"
+                                           mode="recursive-chunk-filename">
+                        <xsl:with-param name="recursive" select="true()"/>
+                      </xsl:apply-templates>
+                      <xsl:text>-toc</xsl:text>
+                      <xsl:value-of select="$html.ext"/>
+                    </xsl:attribute>
+                    <xsl:call-template name="gentext">
+                      <xsl:with-param name="key" select="'nav-toc'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+              </td>
+              <td width="40%" align="{$direction.align.end}" valign="top">
+                <xsl:text>&#160;</xsl:text>
+                <xsl:if test="$navig.showtitles != 0">
+                  <xsl:apply-templates select="$next" mode="object.title.markup"/>
+                </xsl:if>
+              </td>
+            </tr>
+          </xsl:if>
+        </table>
+      </xsl:if>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="navig.content">
+    <xsl:param name="direction" select="next"/>
+    <xsl:variable name="navtext">
+        <xsl:choose>
+            <xsl:when test="$direction = 'prev'">
+                <xsl:call-template name="gentext.nav.prev"/>
+            </xsl:when>
+            <xsl:when test="$direction = 'next'">
+                <xsl:call-template name="gentext.nav.next"/>
+            </xsl:when>
+            <xsl:when test="$direction = 'up'">
+                <xsl:call-template name="gentext.nav.up"/>
+            </xsl:when>
+            <xsl:when test="$direction = 'home'">
+                <xsl:call-template name="gentext.nav.home"/>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:text>xxx</xsl:text>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:variable>
+
+    <xsl:choose>
+        <xsl:when test="$navig.graphics != 0">
+            <img>
+                <xsl:attribute name="src">
+                    <xsl:value-of select="$navig.graphics.path"/>
+                    <xsl:value-of select="$direction"/>
+                    <xsl:value-of select="$navig.graphics.extension"/>
+                </xsl:attribute>
+                <xsl:attribute name="alt">
+                    <xsl:value-of select="$navtext"/>
+                </xsl:attribute>
+            </img>
+        </xsl:when>
+        <xsl:otherwise>
+            <xsl:value-of select="$navtext"/>
+        </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * The following template assumes that the first legalnotice -->
+<!-- * instance found in a document applies to the contents of the -->
+<!-- * entire document. It generates an HTML link in each chunk, back -->
+<!-- * to the file containing the contents of the first legalnotice. -->
+<!-- * -->
+<!-- * Actually, it may generate multiple link instances in each chunk, -->
+<!-- * because it walks through the space-separated list of link -->
+<!-- * types specified in the $html.head.legalnotice.link.types param, -->
+<!-- * popping off link types and generating links for them until it -->
+<!-- * depletes the list. -->
+  
+<xsl:template name="make.legalnotice.head.links">
+  <!-- * the following ID is used as part of the legalnotice filename; -->
+  <!-- * we need it in order to construct the filename for use in the -->
+  <!-- * value of the href attribute on the link -->
+
+  <xsl:param name="ln-node" select="(//legalnotice)[1]"/>
+  
+  <xsl:param name="linktype">
+    <xsl:choose>
+      <xsl:when test="contains($html.head.legalnotice.link.types, ' ')">
+        <xsl:value-of
+            select="normalize-space(
+                    substring-before($html.head.legalnotice.link.types, ' '))"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$html.head.legalnotice.link.types"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+  <xsl:param
+      name="remaining.linktypes"
+      select="concat(
+              normalize-space(
+              substring-after($html.head.legalnotice.link.types, ' ')),' ')"/>
+  <xsl:if test="not($linktype = '')">
+
+    <!-- Compute name of legalnotice file (see titlepage.xsl) -->
+    <xsl:variable name="file">
+      <xsl:call-template name="ln.or.rh.filename">
+	<xsl:with-param name="node" select="$ln-node"/>
+      </xsl:call-template>
+    </xsl:variable>
+   
+    <link rel="{$linktype}">
+      <xsl:attribute name="href">
+        <xsl:value-of select="$file"/>
+      </xsl:attribute>
+      <xsl:attribute name="title">
+        <xsl:apply-templates select="(//legalnotice)[1]"
+                             mode="object.title.markup.textonly"/>
+      </xsl:attribute>
+    </link>
+    <xsl:call-template name="make.legalnotice.head.links">
+      <!-- * pop the next value off the list of link types -->
+      <xsl:with-param
+          name="linktype"
+          select="substring-before($remaining.linktypes, ' ')"/>
+      <!-- * remove the link type from the list of remaining link types -->
+      <xsl:with-param
+          name="remaining.linktypes"
+          select="substring-after($remaining.linktypes, ' ')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="chunk-element-content">
+  <xsl:param name="prev"/>
+  <xsl:param name="next"/>
+  <xsl:param name="nav.context"/>
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:call-template name="user.preroot"/>
+
+  <html>
+    <xsl:call-template name="root.attributes"/>
+    <xsl:call-template name="html.head">
+      <xsl:with-param name="prev" select="$prev"/>
+      <xsl:with-param name="next" select="$next"/>
+    </xsl:call-template>
+
+    <body>
+      <xsl:call-template name="body.attributes"/>
+
+      <xsl:call-template name="user.header.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="header.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="user.header.content"/>
+
+      <xsl:copy-of select="$content"/>
+
+      <xsl:call-template name="user.footer.content"/>
+
+      <xsl:call-template name="footer.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="user.footer.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$chunk.append"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="generate.manifest">
+  <xsl:param name="node" select="/"/>
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="$manifest"/>
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+      <xsl:apply-templates select="$node" mode="enumerate-files"/>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$chunker.output.encoding"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-dir">
+  <xsl:param name="context" select="."/>
+  <!-- directories are now inherited from previous levels -->
+  <xsl:variable name="ppath">
+    <xsl:if test="$context/parent::*">
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="$context/parent::*"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="path">
+    <xsl:call-template name="pi.dbhtml_dir">
+      <xsl:with-param name="node" select="$context"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$path = ''">
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+        <xsl:if test="substring($ppath, string-length($ppath), 1) != '/'">
+          <xsl:text>/</xsl:text>
+        </xsl:if>
+      </xsl:if>
+      <xsl:value-of select="$path"/>
+      <xsl:text>/</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/chunk.xsl b/applications/content/template/docbook/html/chunk.xsl
new file mode 100644
index 0000000..b45fe3b
--- /dev/null
+++ b/applications/content/template/docbook/html/chunk.xsl
@@ -0,0 +1,52 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+		version="1.0"
+                exclude-result-prefixes="exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- First import the non-chunking templates that format elements
+     within each chunk file. In a customization, you should
+     create a separate non-chunking customization layer such
+     as mydocbook.xsl that imports the original docbook.xsl and
+     customizes any presentation templates. Then your chunking
+     customization should import mydocbook.xsl instead of
+     docbook.xsl.  -->
+<xsl:import href="docbook.xsl"/>
+
+<!-- chunk-common.xsl contains all the named templates for chunking.
+     In a customization file, you import chunk-common.xsl, then
+     add any customized chunking templates of the same name. 
+     They will have import precedence over the original 
+     chunking templates in chunk-common.xsl. -->
+<xsl:import href="chunk-common.xsl"/>
+
+<!-- The manifest.xsl module is no longer imported because its
+     templates were moved into chunk-common and chunk-code -->
+
+<!-- chunk-code.xsl contains all the chunking templates that use
+     a match attribute.  In a customization it should be referenced
+     using <xsl:include> instead of <xsl:import>, and then add
+     any customized chunking templates with match attributes. But be sure
+     to add a priority="1" to such customized templates to resolve
+     its conflict with the original, since they have the
+     same import precedence.
+     
+     Using xsl:include prevents adding another layer
+     of import precedence, which would cause any
+     customizations that use xsl:apply-imports to wrongly
+     apply the chunking version instead of the original
+     non-chunking version to format an element.  -->
+<xsl:include href="chunk-code.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/chunker.xsl b/applications/content/template/docbook/html/chunker.xsl
new file mode 100644
index 0000000..fe4c9aa
--- /dev/null
+++ b/applications/content/template/docbook/html/chunker.xsl
@@ -0,0 +1,452 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:saxon="http://icl.com/saxon"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                xmlns:redirect="http://xml.apache.org/xalan/redirect"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+		version="1.0"
+                exclude-result-prefixes="saxon lxslt redirect exsl doc"
+                extension-element-prefixes="saxon redirect lxslt exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This stylesheet works with XSLT implementations that support -->
+<!-- exsl:document, saxon:output, or Xalan's redirect:write -->
+<!-- Note: Only Saxon 6.4.2 or later is supported. -->
+
+<xsl:param name="chunker.output.method" select="'html'"/>
+<xsl:param name="chunker.output.encoding" select="'ISO-8859-1'"/>
+<xsl:param name="chunker.output.indent" select="'no'"/>
+<xsl:param name="chunker.output.omit-xml-declaration" select="'no'"/>
+<xsl:param name="chunker.output.standalone" select="'no'"/>
+<xsl:param name="chunker.output.doctype-public" select="''"/>
+<xsl:param name="chunker.output.doctype-system" select="''"/>
+<xsl:param name="chunker.output.media-type" select="''"/>
+<xsl:param name="chunker.output.cdata-section-elements" select="''"/>
+
+<!-- Make sure base.dir has a trailing slash now -->
+<xsl:param name="chunk.base.dir">
+  <xsl:choose>
+    <xsl:when test="string-length($base.dir) = 0"></xsl:when>
+    <!-- make sure to add trailing slash if omitted by user -->
+    <xsl:when test="substring($base.dir, string-length($base.dir), 1) = '/'">
+      <xsl:value-of select="$base.dir"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="concat($base.dir, '/')"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:param name="saxon.character.representation" select="'entity;decimal'"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+  <xsl:param name="base.dir" select="'./'"/>
+  <xsl:param name="base.name" select="''"/>
+
+  <xsl:choose>
+    <!-- put Saxon first to work around a bug in libxslt -->
+    <xsl:when test="element-available('saxon:output')">
+      <!-- Saxon doesn't make the chunks relative -->
+      <xsl:value-of select="concat($chunk.base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:when test="element-available('exsl:document')">
+      <!-- EXSL document does make the chunks relative, I think -->
+      <xsl:choose>
+        <xsl:when test="count(parent::*) = 0">
+          <xsl:value-of select="concat($chunk.base.dir,$base.name)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$base.name"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="element-available('redirect:write')">
+      <!-- Xalan doesn't make the chunks relative -->
+      <xsl:value-of select="concat($chunk.base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>Don't know how to chunk with </xsl:text>
+        <xsl:value-of select="system-property('xsl:vendor')"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="quiet" select="$chunk.quietly"/>
+  <xsl:param name="suppress-context-node-name" select="0"/>
+  <xsl:param name="message-prolog"/>
+  <xsl:param name="message-epilog"/>
+
+  <xsl:param name="method" select="$chunker.output.method"/>
+  <xsl:param name="encoding" select="$chunker.output.encoding"/>
+  <xsl:param name="indent" select="$chunker.output.indent"/>
+  <xsl:param name="omit-xml-declaration"
+             select="$chunker.output.omit-xml-declaration"/>
+  <xsl:param name="standalone" select="$chunker.output.standalone"/>
+  <xsl:param name="doctype-public" select="$chunker.output.doctype-public"/>
+  <xsl:param name="doctype-system" select="$chunker.output.doctype-system"/>
+  <xsl:param name="media-type" select="$chunker.output.media-type"/>
+  <xsl:param name="cdata-section-elements"
+             select="$chunker.output.cdata-section-elements"/>
+
+  <xsl:param name="content"/>
+
+  <xsl:if test="$quiet = 0">
+    <xsl:message>
+      <xsl:if test="not($message-prolog = '')">
+        <xsl:value-of select="$message-prolog"/>
+      </xsl:if>
+      <xsl:text>Writing </xsl:text>
+      <xsl:value-of select="$filename"/>
+      <xsl:if test="name(.) != '' and $suppress-context-node-name = 0">
+        <xsl:text> for </xsl:text>
+        <xsl:value-of select="name(.)"/>
+        <xsl:if test="@id or @xml:id">
+          <xsl:text>(</xsl:text>
+          <xsl:value-of select="(@id|@xml:id)[1]"/>
+          <xsl:text>)</xsl:text>
+        </xsl:if>
+      </xsl:if>
+      <xsl:if test="not($message-epilog = '')">
+        <xsl:value-of select="$message-epilog"/>
+      </xsl:if>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="element-available('exsl:document')">
+      <xsl:choose>
+        <!-- Handle the permutations ... -->
+        <xsl:when test="$media-type != ''">
+          <xsl:choose>
+            <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+              <exsl:document href="{$filename}"
+                             method="{$method}"
+                             encoding="{$encoding}"
+                             indent="{$indent}"
+                             omit-xml-declaration="{$omit-xml-declaration}"
+                             cdata-section-elements="{$cdata-section-elements}"
+                             media-type="{$media-type}"
+                             doctype-public="{$doctype-public}"
+                             doctype-system="{$doctype-system}"
+                             standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+              <exsl:document href="{$filename}"
+                             method="{$method}"
+                             encoding="{$encoding}"
+                             indent="{$indent}"
+                             omit-xml-declaration="{$omit-xml-declaration}"
+                             cdata-section-elements="{$cdata-section-elements}"
+                             media-type="{$media-type}"
+                             doctype-public="{$doctype-public}"
+                             standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+              <exsl:document href="{$filename}"
+                             method="{$method}"
+                             encoding="{$encoding}"
+                             indent="{$indent}"
+                             omit-xml-declaration="{$omit-xml-declaration}"
+                             cdata-section-elements="{$cdata-section-elements}"
+                             media-type="{$media-type}"
+                             doctype-system="{$doctype-system}"
+                             standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+              <exsl:document href="{$filename}"
+                             method="{$method}"
+                             encoding="{$encoding}"
+                             indent="{$indent}"
+                             omit-xml-declaration="{$omit-xml-declaration}"
+                             cdata-section-elements="{$cdata-section-elements}"
+                             media-type="{$media-type}"
+                             standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+              <exsl:document href="{$filename}"
+                             method="{$method}"
+                             encoding="{$encoding}"
+                             indent="{$indent}"
+                             omit-xml-declaration="{$omit-xml-declaration}"
+                             cdata-section-elements="{$cdata-section-elements}"
+                             doctype-public="{$doctype-public}"
+                             doctype-system="{$doctype-system}"
+                             standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+              <exsl:document href="{$filename}"
+                             method="{$method}"
+                             encoding="{$encoding}"
+                             indent="{$indent}"
+                             omit-xml-declaration="{$omit-xml-declaration}"
+                             cdata-section-elements="{$cdata-section-elements}"
+                             doctype-public="{$doctype-public}"
+                             standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+              <exsl:document href="{$filename}"
+                             method="{$method}"
+                             encoding="{$encoding}"
+                             indent="{$indent}"
+                             omit-xml-declaration="{$omit-xml-declaration}"
+                             cdata-section-elements="{$cdata-section-elements}"
+                             doctype-system="{$doctype-system}"
+                             standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+              <exsl:document href="{$filename}"
+                             method="{$method}"
+                             encoding="{$encoding}"
+                             indent="{$indent}"
+                             omit-xml-declaration="{$omit-xml-declaration}"
+                             cdata-section-elements="{$cdata-section-elements}"
+                             standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="element-available('saxon:output')">
+      <xsl:choose>
+        <!-- Handle the permutations ... -->
+        <xsl:when test="$media-type != ''">
+          <xsl:choose>
+            <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}"
+                            href="{$filename}"
+                            method="{$method}"
+                            encoding="{$encoding}"
+                            indent="{$indent}"
+                            omit-xml-declaration="{$omit-xml-declaration}"
+                            cdata-section-elements="{$cdata-section-elements}"
+                            media-type="{$media-type}"
+                            doctype-public="{$doctype-public}"
+                            doctype-system="{$doctype-system}"
+                            standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}"
+                            href="{$filename}"
+                            method="{$method}"
+                            encoding="{$encoding}"
+                            indent="{$indent}"
+                            omit-xml-declaration="{$omit-xml-declaration}"
+                            cdata-section-elements="{$cdata-section-elements}"
+                            media-type="{$media-type}"
+                            doctype-public="{$doctype-public}"
+                            standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}"
+                            href="{$filename}"
+                            method="{$method}"
+                            encoding="{$encoding}"
+                            indent="{$indent}"
+                            omit-xml-declaration="{$omit-xml-declaration}"
+                            cdata-section-elements="{$cdata-section-elements}"
+                            media-type="{$media-type}"
+                            doctype-system="{$doctype-system}"
+                            standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+              <saxon:output saxon:character-representation="{$saxon.character.representation}"
+                            href="{$filename}"
+                            method="{$method}"
+                            encoding="{$encoding}"
+                            indent="{$indent}"
+                            omit-xml-declaration="{$omit-xml-declaration}"
+                            cdata-section-elements="{$cdata-section-elements}"
+                            media-type="{$media-type}"
+                            standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}"
+                            href="{$filename}"
+                            method="{$method}"
+                            encoding="{$encoding}"
+                            indent="{$indent}"
+                            omit-xml-declaration="{$omit-xml-declaration}"
+                            cdata-section-elements="{$cdata-section-elements}"
+                            doctype-public="{$doctype-public}"
+                            doctype-system="{$doctype-system}"
+                            standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}"
+                            href="{$filename}"
+                            method="{$method}"
+                            encoding="{$encoding}"
+                            indent="{$indent}"
+                            omit-xml-declaration="{$omit-xml-declaration}"
+                            cdata-section-elements="{$cdata-section-elements}"
+                            doctype-public="{$doctype-public}"
+                            standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}"
+                            href="{$filename}"
+                            method="{$method}"
+                            encoding="{$encoding}"
+                            indent="{$indent}"
+                            omit-xml-declaration="{$omit-xml-declaration}"
+                            cdata-section-elements="{$cdata-section-elements}"
+                            doctype-system="{$doctype-system}"
+                            standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+              <saxon:output saxon:character-representation="{$saxon.character.representation}"
+                            href="{$filename}"
+                            method="{$method}"
+                            encoding="{$encoding}"
+                            indent="{$indent}"
+                            omit-xml-declaration="{$omit-xml-declaration}"
+                            cdata-section-elements="{$cdata-section-elements}"
+                            standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="element-available('redirect:write')">
+      <!-- Xalan uses redirect -->
+      <redirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </redirect:write>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="system-property('xsl:vendor')"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk.with.doctype">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="quiet" select="$chunk.quietly"/>
+
+  <xsl:param name="method" select="$chunker.output.method"/>
+  <xsl:param name="encoding" select="$chunker.output.encoding"/>
+  <xsl:param name="indent" select="$chunker.output.indent"/>
+  <xsl:param name="omit-xml-declaration"
+             select="$chunker.output.omit-xml-declaration"/>
+  <xsl:param name="standalone" select="$chunker.output.standalone"/>
+  <xsl:param name="doctype-public" select="$chunker.output.doctype-public"/>
+  <xsl:param name="doctype-system" select="$chunker.output.doctype-system"/>
+  <xsl:param name="media-type" select="$chunker.output.media-type"/>
+  <xsl:param name="cdata-section-elements"
+             select="$chunker.output.cdata-section-elements"/>
+
+  <xsl:param name="content"/>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="quiet" select="$quiet"/>
+    <xsl:with-param name="method" select="$method"/>
+    <xsl:with-param name="encoding" select="$encoding"/>
+    <xsl:with-param name="indent" select="$indent"/>
+    <xsl:with-param name="omit-xml-declaration" select="$omit-xml-declaration"/>
+    <xsl:with-param name="standalone" select="$standalone"/>
+    <xsl:with-param name="doctype-public" select="$doctype-public"/>
+    <xsl:with-param name="doctype-system" select="$doctype-system"/>
+    <xsl:with-param name="media-type" select="$media-type"/>
+    <xsl:with-param name="cdata-section-elements" select="$cdata-section-elements"/>
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="write.text.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="quiet" select="$chunk.quietly"/>
+  <xsl:param name="suppress-context-node-name" select="0"/>
+  <xsl:param name="message-prolog"/>
+  <xsl:param name="message-epilog"/>
+  <xsl:param name="method" select="'text'"/>
+  <xsl:param name="encoding" select="$chunker.output.encoding"/>
+  <xsl:param name="media-type" select="$chunker.output.media-type"/>
+  <xsl:param name="content"/>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="quiet" select="$quiet"/>
+    <xsl:with-param name="suppress-context-node-name" select="$suppress-context-node-name"/>
+    <xsl:with-param name="message-prolog" select="$message-prolog"/>
+    <xsl:with-param name="message-epilog" select="$message-epilog"/>
+    <xsl:with-param name="method" select="$method"/>
+    <xsl:with-param name="encoding" select="$encoding"/>
+    <xsl:with-param name="indent" select="'no'"/>
+    <xsl:with-param name="omit-xml-declaration" select="'no'"/>
+    <xsl:with-param name="standalone" select="'no'"/>
+    <xsl:with-param name="doctype-public"/>
+    <xsl:with-param name="doctype-system"/>
+    <xsl:with-param name="media-type" select="$media-type"/>
+    <xsl:with-param name="cdata-section-elements"/>
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/chunkfast.xsl b/applications/content/template/docbook/html/chunkfast.xsl
new file mode 100644
index 0000000..d7e910b
--- /dev/null
+++ b/applications/content/template/docbook/html/chunkfast.xsl
@@ -0,0 +1,72 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0"
+		version="1.0"
+                exclude-result-prefixes="cf exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="chunk.xsl"/>
+<xsl:param name="chunk.fast" select="1"/>
+
+<xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+  <xsl:choose>
+    <xsl:when test="$chunk.fast != 0 and $exsl.node.set.available != 0">
+      <xsl:variable name="genid" select="generate-id()"/>
+
+      <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/>
+
+      <xsl:variable name="prevdiv"
+                    select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/>
+      <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/>
+
+      <xsl:variable name="nextdiv"
+                    select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/>
+      <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and parent::*">
+          <xsl:apply-imports/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="process-chunk">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and not(parent::*)">
+          <xsl:call-template name="chunk-all-sections"/>
+        </xsl:when>
+        <xsl:when test="$onechunk != 0">
+          <xsl:apply-imports/>
+        </xsl:when>
+        <xsl:when test="$chunk.first.sections = 0">
+          <xsl:call-template name="chunk-first-section-with-parent"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="chunk-all-sections"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/chunktoc.xsl b/applications/content/template/docbook/html/chunktoc.xsl
new file mode 100644
index 0000000..48588a1
--- /dev/null
+++ b/applications/content/template/docbook/html/chunktoc.xsl
@@ -0,0 +1,550 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+		version="1.0"
+                exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="docbook.xsl"/>
+<xsl:import href="chunk-common.xsl"/>
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+  <!-- returns 1 if $node is a chunk -->
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="chunks" select="document($chunk.toc,/)"/>
+
+  <xsl:choose>
+    <xsl:when test="$chunks//tocentry[@linkend=$id]">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="chunk-filename">
+  <!-- returns the filename of a chunk -->
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunks" select="document($chunk.toc,/)"/>
+
+  <xsl:variable name="chunk" select="$chunks//tocentry[@linkend=$id]"/>
+  <xsl:variable name="filename">
+    <xsl:call-template name="pi.dbhtml_filename">
+      <xsl:with-param name="node" select="$chunk"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$chunk">
+      <xsl:value-of select="$filename"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="parent::*" mode="chunk-filename"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunks" select="document($chunk.toc,/)"/>
+
+  <xsl:variable name="chunk" select="$chunks//tocentry[@linkend=$id]"/>
+  <xsl:variable name="prev-id"
+                select="($chunk/preceding::tocentry
+                         |$chunk/ancestor::tocentry)[last()]/@linkend"/>
+  <xsl:variable name="next-id"
+                select="($chunk/following::tocentry
+                         |$chunk/child::tocentry)[1]/@linkend"/>
+
+  <xsl:variable name="prev" select="key('id',$prev-id)"/>
+  <xsl:variable name="next" select="key('id',$next-id)"/>
+
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunkfn">
+    <xsl:if test="$ischunk='1'">
+      <xsl:apply-templates mode="chunk-filename" select="."/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+      <xsl:with-param name="base.name" select="$chunkfn"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$ischunk = 0">
+      <xsl:apply-imports/>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="$filename"/>
+        <xsl:with-param name="content">
+          <xsl:call-template name="chunk-element-content">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+          </xsl:call-template>
+        </xsl:with-param>
+        <xsl:with-param name="quiet" select="$chunk.quietly"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book/appendix">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book/glossary">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book/bibliography">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="dedication" mode="dedication">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="preface|chapter">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="part|reference">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="refentry">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="colophon">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="topic">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article/appendix">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article/glossary">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article/bibliography">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$ischunk != 0">
+      <xsl:call-template name="process-chunk"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-imports/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex
+                     |book/index
+                     |article/index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. -->
+  <xsl:if test="count(*)>0 or $generate.index != '0'">
+    <xsl:call-template name="process-chunk"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$chunk.toc = ''">
+      <xsl:message terminate="yes">
+        <xsl:text>The chunk.toc file is not set.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+	 stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="$exsl.node.set.available != 0
+                    and (*/self::ng:* or */self::db:*)">
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>stripped namespace before processing</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:variable name="nons">
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:variable>
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates select="exsl:node-set($nons)"/>
+    </xsl:when>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="*/self::ng:* or */self::db:*">
+      <xsl:message terminate="yes">
+        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+        <xsl:text> cannot proceed.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count(key('id',$rootid)) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or
+                            $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)"
+                                     mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="key('id',$rootid)"
+                                     mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="key('id',$rootid)"
+                                       mode="collect.tex.math"/>
+                </xsl:if>
+                <xsl:if test="$generate.manifest != 0">
+                  <xsl:call-template name="generate.manifest">
+                    <xsl:with-param name="node" select="key('id',$rootid)"/>
+                  </xsl:call-template>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or
+                        $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="/" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="/" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="/" mode="collect.tex.math"/>
+            </xsl:if>
+            <xsl:if test="$generate.manifest != 0">
+              <xsl:call-template name="generate.manifest">
+                <xsl:with-param name="node" select="/"/>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:apply-templates select="."/>
+  <xsl:call-template name="generate.css"/>
+</xsl:template>
+
+<xsl:template name="make.lots">
+  <xsl:param name="toc.params" select="''"/>
+  <xsl:param name="toc"/>
+
+  <xsl:variable name="lots">
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:copy-of select="$toc"/>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'figure')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'figure'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'figure'"/>
+                <xsl:with-param name="nodes" select=".//figure"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'figure'"/>
+            <xsl:with-param name="nodes" select=".//figure"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'table')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'table'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'table'"/>
+                <xsl:with-param name="nodes" select=".//table"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'table'"/>
+            <xsl:with-param name="nodes" select=".//table"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'example')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'example'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'example'"/>
+                <xsl:with-param name="nodes" select=".//example"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'example'"/>
+            <xsl:with-param name="nodes" select=".//example"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'equation')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'equation'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'equation'"/>
+                <xsl:with-param name="nodes" select=".//equation"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'equation'"/>
+            <xsl:with-param name="nodes" select=".//equation"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'procedure')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'procedure'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'procedure'"/>
+                <xsl:with-param name="nodes" select=".//procedure[title]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'procedure'"/>
+            <xsl:with-param name="nodes" select=".//procedure[title]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="string($lots) != ''">
+    <xsl:choose>
+      <xsl:when test="$chunk.tocs.and.lots != 0 and not(parent::*)">
+        <xsl:call-template name="write.chunk">
+          <xsl:with-param name="filename">
+            <xsl:call-template name="make-relative-filename">
+              <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+              <xsl:with-param name="base.name">
+                <xsl:call-template name="dbhtml-dir"/>
+                <xsl:apply-templates select="." mode="recursive-chunk-filename">
+                  <xsl:with-param name="recursive" select="true()"/>
+                </xsl:apply-templates>
+                <xsl:text>-toc</xsl:text>
+                <xsl:value-of select="$html.ext"/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="content">
+            <xsl:call-template name="chunk-element-content">
+              <xsl:with-param name="prev" select="/foo"/>
+              <xsl:with-param name="next" select="/foo"/>
+              <xsl:with-param name="nav.context" select="'toc'"/>
+              <xsl:with-param name="content">
+                <h1>
+                  <xsl:apply-templates select="." mode="object.title.markup"/>
+                </h1>
+                <xsl:copy-of select="$lots"/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="quiet" select="$chunk.quietly"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$lots"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="make.lot.chunk">
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="lot"/>
+
+  <xsl:if test="string($lot) != ''">
+    <xsl:variable name="filename">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+        <xsl:with-param name="base.name">
+          <xsl:call-template name="dbhtml-dir"/>
+          <xsl:value-of select="$type"/>
+          <xsl:text>-toc</xsl:text>
+          <xsl:value-of select="$html.ext"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="href">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir" select="''"/>
+        <xsl:with-param name="base.name">
+          <xsl:call-template name="dbhtml-dir"/>
+          <xsl:value-of select="$type"/>
+          <xsl:text>-toc</xsl:text>
+          <xsl:value-of select="$html.ext"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="write.chunk">
+      <xsl:with-param name="filename" select="$filename"/>
+      <xsl:with-param name="content">
+        <xsl:call-template name="chunk-element-content">
+          <xsl:with-param name="prev" select="/foo"/>
+          <xsl:with-param name="next" select="/foo"/>
+          <xsl:with-param name="nav.context" select="'toc'"/>
+          <xsl:with-param name="content">
+            <xsl:copy-of select="$lot"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:with-param>
+      <xsl:with-param name="quiet" select="$chunk.quietly"/>
+    </xsl:call-template>
+    <!-- And output a link to this file -->
+    <div>
+      <xsl:attribute name="class">
+        <xsl:text>ListofTitles</xsl:text>
+      </xsl:attribute>
+      <a href="{$href}">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key">
+            <xsl:choose>
+              <xsl:when test="$type='table'">ListofTables</xsl:when>
+              <xsl:when test="$type='figure'">ListofFigures</xsl:when>
+              <xsl:when test="$type='equation'">ListofEquations</xsl:when>
+              <xsl:when test="$type='example'">ListofExamples</xsl:when>
+              <xsl:when test="$type='procedure'">ListofProcedures</xsl:when>
+              <xsl:otherwise>ListofUnknown</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+      </a>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/component.xsl b/applications/content/template/docbook/html/component.xsl
new file mode 100644
index 0000000..6d4d191
--- /dev/null
+++ b/applications/content/template/docbook/html/component.xsl
@@ -0,0 +1,471 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- Set to 2 for backwards compatibility -->
+<xsl:param name="component.heading.level" select="2"/>
+
+<xsl:template name="component.title">
+  <xsl:param name="node" select="."/>
+
+  <!-- This handles the case where a component (bibliography, for example)
+       occurs inside a section; will we need parameters for this? -->
+
+  <!-- This "level" is a section level.  To compute <h> level, add 1. -->
+  <xsl:variable name="level">
+    <xsl:choose>
+      <!-- chapters and other book children should get <h1> -->
+      <xsl:when test="$node/parent::book">0</xsl:when>
+      <xsl:when test="ancestor::section">
+        <xsl:value-of select="count(ancestor::section)+1"/>
+      </xsl:when>
+      <xsl:when test="ancestor::sect5">6</xsl:when>
+      <xsl:when test="ancestor::sect4">5</xsl:when>
+      <xsl:when test="ancestor::sect3">4</xsl:when>
+      <xsl:when test="ancestor::sect2">3</xsl:when>
+      <xsl:when test="ancestor::sect1">2</xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="h{$level+1}">
+    <xsl:attribute name="class">title</xsl:attribute>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select="$node"/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="$node" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="component.subtitle">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="subtitle"
+                select="($node/docinfo/subtitle
+                        |$node/info/subtitle
+                        |$node/prefaceinfo/subtitle
+                        |$node/chapterinfo/subtitle
+                        |$node/appendixinfo/subtitle
+                        |$node/articleinfo/subtitle
+                        |$node/artheader/subtitle
+                        |$node/subtitle)[1]"/>
+
+  <xsl:if test="$subtitle">
+    <h3 class="subtitle">
+      <xsl:call-template name="id.attribute"/>
+      <i>
+        <xsl:apply-templates select="$node" mode="object.subtitle.markup"/>
+      </i>
+    </h3>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.separator">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="dedication" mode="dedication">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="dedication.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="dedication/title|dedication/info/title" 
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::dedication[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="dedication/subtitle|dedication/info/subtitle" 
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::dedication[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="dedication"></xsl:template> <!-- see mode="dedication" -->
+<xsl:template match="dedication/title"></xsl:template>
+<xsl:template match="dedication/subtitle"></xsl:template>
+<xsl:template match="dedication/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="acknowledgements" mode="acknowledgements">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="acknowledgements.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="acknowledgements/title|acknowledgements/info/title" 
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::acknowledgements[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="acknowledgements/subtitle|acknowledgements/info/subtitle" 
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::acknowledgements[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="acknowledgements"></xsl:template> <!-- see mode="acknowledgements" -->
+<xsl:template match="acknowledgements/title"></xsl:template>
+<xsl:template match="acknowledgements/subtitle"></xsl:template>
+<xsl:template match="acknowledgements/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="colophon">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="component.title"/>
+    <xsl:call-template name="component.subtitle"/>
+
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="colophon/title"></xsl:template>
+<xsl:template match="colophon/subtitle"></xsl:template>
+<xsl:template match="colophon/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="preface">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="preface.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:call-template name="component.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="preface/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::preface[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface/subtitle
+                     |preface/prefaceinfo/subtitle
+                     |preface/info/subtitle
+                     |preface/docinfo/subtitle"
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::preface[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface/docinfo|prefaceinfo"></xsl:template>
+<xsl:template match="preface/info"></xsl:template>
+<xsl:template match="preface/title"></xsl:template>
+<xsl:template match="preface/titleabbrev"></xsl:template>
+<xsl:template match="preface/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="chapter">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="chapter.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:call-template name="component.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="chapter/title|chapter/chapterinfo/title|chapter/info/title"
+	      mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::chapter[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter/subtitle
+                     |chapter/chapterinfo/subtitle
+                     |chapter/info/subtitle
+                     |chapter/docinfo/subtitle"
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::chapter[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter/docinfo|chapterinfo"></xsl:template>
+<xsl:template match="chapter/info"></xsl:template>
+<xsl:template match="chapter/title"></xsl:template>
+<xsl:template match="chapter/titleabbrev"></xsl:template>
+<xsl:template match="chapter/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="appendix">
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="parent::article and $ischunk = 0">
+        <xsl:call-template name="section.heading">
+          <xsl:with-param name="level" select="1"/>
+          <xsl:with-param name="title">
+            <xsl:apply-templates select="." mode="object.title.markup"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="component.separator"/>
+        <xsl:call-template name="appendix.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:call-template name="component.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+
+    <xsl:if test="not(parent::article) or $ischunk != 0">
+      <xsl:call-template name="process.footnotes"/>
+    </xsl:if>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="appendix/title|appendix/appendixinfo/title"
+	      mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::appendix[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="appendix/subtitle
+                     |appendix/appendixinfo/subtitle
+                     |appendix/info/subtitle
+                     |appendix/docinfo/subtitle"
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::appendix[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="appendix/docinfo|appendixinfo"></xsl:template>
+<xsl:template match="appendix/info"></xsl:template>
+<xsl:template match="appendix/title"></xsl:template>
+<xsl:template match="appendix/titleabbrev"></xsl:template>
+<xsl:template match="appendix/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="article">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="article.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.lots">
+      <xsl:with-param name="toc.params" select="$toc.params"/>
+      <xsl:with-param name="toc">
+        <xsl:call-template name="component.toc">
+          <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="article/title|article/articleinfo/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::article[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="article/subtitle
+                     |article/articleinfo/subtitle
+                     |article/info/subtitle
+                     |article/artheader/subtitle"
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::article[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="article/artheader|article/articleinfo"></xsl:template>
+<xsl:template match="article/info"></xsl:template>
+<xsl:template match="article/title"></xsl:template>
+<xsl:template match="article/titleabbrev"></xsl:template>
+<xsl:template match="article/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="topic">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="topic.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:apply-templates/>
+
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="topic/title|topic/info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::topic[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="topic/subtitle
+                     |topic/info/subtitle"
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::topic[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="topic/info"></xsl:template>
+<xsl:template match="topic/title"></xsl:template>
+<xsl:template match="topic/titleabbrev"></xsl:template>
+<xsl:template match="topic/subtitle"></xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/html/division.xsl b/applications/content/template/docbook/html/division.xsl
new file mode 100644
index 0000000..daa9584
--- /dev/null
+++ b/applications/content/template/docbook/html/division.xsl
@@ -0,0 +1,212 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="language.attribute"/>
+    <xsl:if test="$generate.id.attributes != 0">
+      <xsl:attribute name="id">
+        <xsl:call-template name="object.id"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:call-template name="set.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.lots">
+      <xsl:with-param name="toc.params" select="$toc.params"/>
+      <xsl:with-param name="toc">
+        <xsl:call-template name="set.toc">
+          <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="set/setinfo"></xsl:template>
+<xsl:template match="set/title"></xsl:template>
+<xsl:template match="set/titleabbrev"></xsl:template>
+<xsl:template match="set/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="book.titlepage"/>
+
+    <xsl:apply-templates select="dedication" mode="dedication"/>
+    <xsl:apply-templates select="acknowledgements" mode="acknowledgements"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.lots">
+      <xsl:with-param name="toc.params" select="$toc.params"/>
+      <xsl:with-param name="toc">
+        <xsl:call-template name="division.toc">
+          <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="book/bookinfo"></xsl:template>
+<xsl:template match="book/info"></xsl:template>
+<xsl:template match="book/title"></xsl:template>
+<xsl:template match="book/titleabbrev"></xsl:template>
+<xsl:template match="book/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="part">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="part.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:if test="not(partintro) and contains($toc.params, 'toc')">
+      <xsl:call-template name="division.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="part" mode="make.part.toc">
+  <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="reference" mode="make.part.toc">
+  <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="part/docinfo"></xsl:template>
+<xsl:template match="part/partinfo"></xsl:template>
+<xsl:template match="part/info"></xsl:template>
+<xsl:template match="part/title"></xsl:template>
+<xsl:template match="part/titleabbrev"></xsl:template>
+<xsl:template match="part/subtitle"></xsl:template>
+
+<xsl:template match="partintro">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="partintro.titlepage"/>
+    <xsl:apply-templates/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="node" select="parent::*"/>
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:if test="contains($toc.params, 'toc')">
+      <!-- not ancestor::part because partintro appears in reference -->
+      <xsl:apply-templates select="parent::*" mode="make.part.toc"/>
+    </xsl:if>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="partintro/title"></xsl:template>
+<xsl:template match="partintro/titleabbrev"></xsl:template>
+<xsl:template match="partintro/subtitle"></xsl:template>
+
+<xsl:template match="partintro/title" mode="partintro.title.mode">
+  <h2>
+    <xsl:apply-templates/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="partintro/subtitle" mode="partintro.title.mode">
+  <h3>
+    <i><xsl:apply-templates/></i>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book" mode="division.number">
+  <xsl:number from="set" count="book" format="1."/>
+</xsl:template>
+
+<xsl:template match="part" mode="division.number">
+  <xsl:number from="book" count="part" format="I."/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="division.title">
+  <xsl:param name="node" select="."/>
+
+  <h1>
+    <xsl:attribute name="class">title</xsl:attribute>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select="$node"/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="$node" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </h1>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/html/docbook.css.xml b/applications/content/template/docbook/html/docbook.css.xml
new file mode 100644
index 0000000..f1509bf
--- /dev/null
+++ b/applications/content/template/docbook/html/docbook.css.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<style>
+
+/********************************/
+/* start of styles in block.xsl */
+
+.formalpara-title {
+  font-weight: bold;
+}
+
+div.blockquote-title {
+  font-weight: bold;
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msgmain-title {
+  font-weight: bold;
+}
+
+span.msgsub-title {
+  font-weight: bold;
+}
+
+span.msgrel-title {
+  font-weight: bold;
+}
+
+div.msglevel, div.msgorig, div.msgaud {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msglevel-title, span.msgorig-title, span.msgaud-title {
+  font-weight: bold;
+}
+
+div.msgexplan {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msgexplan-title {
+  font-weight: bold;
+}
+
+/* end of styles in block.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in autotoc.xsl */
+
+
+/* end of styles in autotoc.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in formal.xsl */
+
+div.figure-title {
+  font-weight: bold;
+}
+
+div.example-title {
+  font-weight: bold;
+}
+
+div.equation-title {
+  font-weight: bold;
+}
+
+div.table-title {
+  font-weight: bold;
+}
+
+div.sidebar-title {
+  font-weight: bold;
+}
+
+
+/* end of styles in formal.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in verbatim.xsl */
+
+div.programlisting {
+  white-space: pre;
+  font-family: monospace;
+}
+
+div.screen {
+  white-space: pre;
+  font-family: monospace;
+}
+
+div.synopsis {
+  white-space: pre;
+  font-family: monospace;
+}
+
+/* end of styles in verbatim.xsl */
+/********************************/
+
+/* footnote rule */
+hr.footnote-hr {
+  width: 100;
+}
+
+</style>
diff --git a/applications/content/template/docbook/html/docbook.xsl b/applications/content/template/docbook/html/docbook.xsl
new file mode 100644
index 0000000..bf860e5
--- /dev/null
+++ b/applications/content/template/docbook/html/docbook.xsl
@@ -0,0 +1,527 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:ng="http://docbook.org/docbook-ng"
+                xmlns:db="http://docbook.org/ns/docbook"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:exslt="http://exslt.org/common"
+                exclude-result-prefixes="db ng exsl exslt"
+                version='1.0'>
+
+<xsl:output method="html"
+            encoding="ISO-8859-1"
+            indent="no"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION.xsl"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/utility.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="../common/targets.xsl"/>
+<xsl:include href="../common/olink.xsl"/>
+<xsl:include href="../common/pi.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="autoidx.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="htmltbl.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="html.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="biblio-iso690.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="task.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="pi.xsl"/>
+<xsl:include href="ebnf.xsl"/>
+<xsl:include href="chunker.xsl"/>
+<xsl:include href="html-rtf.xsl"/>
+<xsl:include href="annotations.xsl"/>
+<xsl:include href="../common/stripns.xsl"/>
+
+<xsl:param name="stylesheet.result.type" select="'html'"/>
+<xsl:param name="htmlhelp.output" select="0"/>
+
+<!-- ==================================================================== -->
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+<xsl:key name="gid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:text>Element </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text> in namespace '</xsl:text>
+    <xsl:value-of select="namespace-uri(.)"/>
+    <xsl:text>' encountered</xsl:text>
+    <xsl:if test="parent::*">
+      <xsl:text> in </xsl:text>
+      <xsl:value-of select="name(parent::*)"/>
+    </xsl:if>
+    <xsl:text>, but no template matches.</xsl:text>
+  </xsl:message>
+
+  <span style="color: red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="text()">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="body.attributes">
+  <xsl:attribute name="bgcolor">white</xsl:attribute>
+  <xsl:attribute name="text">black</xsl:attribute>
+  <xsl:attribute name="link">#0000FF</xsl:attribute>
+  <xsl:attribute name="vlink">#840084</xsl:attribute>
+  <xsl:attribute name="alink">#0000FF</xsl:attribute>
+  <xsl:if test="starts-with($writing.mode, 'rl')">
+    <xsl:attribute name="dir">rtl</xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="head.content">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="title">
+    <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/>
+  </xsl:param>
+
+  <title>
+    <xsl:copy-of select="$title"/>
+  </title>
+
+  <xsl:if test="$html.base != ''">
+    <base href="{$html.base}"/>
+  </xsl:if>
+
+  <!-- Insert links to CSS files or insert literal style elements -->
+  <xsl:call-template name="generate.css"/>
+
+  <xsl:if test="$html.stylesheet != ''">
+    <xsl:call-template name="output.html.stylesheets">
+      <xsl:with-param name="stylesheets" select="normalize-space($html.stylesheet)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$html.script != ''">
+    <xsl:call-template name="output.html.scripts">
+      <xsl:with-param name="scripts" select="normalize-space($html.script)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$link.mailto.url != ''">
+    <link rev="made"
+          href="{$link.mailto.url}"/>
+  </xsl:if>
+
+  <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/>
+
+  <xsl:if test="$generate.meta.abstract != 0">
+    <xsl:variable name="info" select="(articleinfo
+                                      |bookinfo
+                                      |prefaceinfo
+                                      |chapterinfo
+                                      |appendixinfo
+                                      |sectioninfo
+                                      |sect1info
+                                      |sect2info
+                                      |sect3info
+                                      |sect4info
+                                      |sect5info
+                                      |referenceinfo
+                                      |refentryinfo
+                                      |partinfo
+                                      |info
+                                      |docinfo)[1]"/>
+    <xsl:if test="$info and $info/abstract">
+      <meta name="description">
+        <xsl:attribute name="content">
+          <xsl:for-each select="$info/abstract[1]/*">
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:if test="position() &lt; last()">
+              <xsl:text> </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </meta>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:if test="($draft.mode = 'yes' or
+                ($draft.mode = 'maybe' and
+                ancestor-or-self::*[@status][1]/@status = 'draft'))
+                and $draft.watermark.image != ''">
+    <style type="text/css"><xsl:text>
+body { background-image: url('</xsl:text>
+<xsl:value-of select="$draft.watermark.image"/><xsl:text>');
+       background-repeat: no-repeat;
+       background-position: top left;
+       /* The following properties make the watermark "fixed" on the page. */
+       /* I think that's just a bit too distracting for the reader... */
+       /* background-attachment: fixed; */
+       /* background-position: center center; */
+     }</xsl:text>
+    </style>
+  </xsl:if>
+  <xsl:apply-templates select="." mode="head.keywords.content"/>
+</xsl:template>
+
+<xsl:template name="output.html.stylesheets">
+  <xsl:param name="stylesheets" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($stylesheets, ' ')">
+      <xsl:variable name="css.filename" select="substring-before($stylesheets, ' ')"/>
+
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$css.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.stylesheets">
+        <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$stylesheets != ''">
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$stylesheets"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="output.html.scripts">
+  <xsl:param name="scripts" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($scripts, ' ')">
+      <xsl:variable name="script.filename" select="substring-before($scripts, ' ')"/>
+
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$script.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.scripts">
+        <xsl:with-param name="scripts" select="substring-after($scripts, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$scripts != ''">
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$scripts"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="head.keywords.content">
+  <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="artheader/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sectioninfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="info/keywordset" mode="html.header"/>
+
+  <xsl:if test="$inherit.keywords != 0
+                and parent::*">
+    <xsl:apply-templates select="parent::*" mode="head.keywords.content"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="system.head.content">
+  <xsl:param name="node" select="."/>
+
+  <!-- FIXME: When chunking, only the annotations actually used
+              in this chunk should be referenced. I don't think it
+              does any harm to reference them all, but it adds
+              unnecessary bloat to each chunk. -->
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <xsl:call-template name="add.annotation.links"/>
+    <script type="text/javascript">
+      <xsl:text>&#10;// Create PopupWindow objects</xsl:text>
+      <xsl:for-each select="//annotation">
+        <xsl:text>&#10;var popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text> = new PopupWindow("popup-</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>");&#10;</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.offsetY = 15;&#10;</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.autoHide();&#10;</xsl:text>
+      </xsl:for-each>
+    </script>
+
+    <style type="text/css">
+      <xsl:value-of select="$annotation.css"/>
+    </style>
+  </xsl:if>
+
+  <!-- system.head.content is like user.head.content, except that
+       it is called before head.content. This is important because it
+       means, for example, that <style> elements output by system.head.content
+       have a lower CSS precedence than the users stylesheet. -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="user.preroot">
+  <!-- Pre-root output, can be used to output comments and PIs. -->
+  <!-- This must not output any element content! -->
+</xsl:template>
+
+<xsl:template name="user.head.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<!-- To use the same stripped nodeset everywhere, it should
+be created as a global variable here.
+Used by docbook.xsl, chunk-code.xsl and chunkfast.xsl -->
+<xsl:variable name="no.namespace">
+  <xsl:if test="$exsl.node.set.available != 0
+                    and (*/self::ng:* or */self::db:*)">
+    <xsl:apply-templates select="/*" mode="stripNS"/>
+  </xsl:if>
+</xsl:variable>
+
+<xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="$exsl.node.set.available != 0
+                    and (*/self::ng:* or */self::db:*)">
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>stripped namespace before processing</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <!-- DEBUG: to save stripped document.
+      <xsl:message>Saving stripped document.</xsl:message>
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="'/tmp/stripped.xml'"/>
+        <xsl:with-param name="method" select="'xml'"/>
+        <xsl:with-param name="content">
+          <xsl:copy-of select="exsl:node-set($no.namespace)"/>
+        </xsl:with-param>
+      </xsl:call-template>
+      -->
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates select="exsl:node-set($no.namespace)"/>
+    </xsl:when>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="*/self::ng:* or */self::db:*">
+      <xsl:message terminate="yes">
+        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+        <xsl:text> cannot proceed.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count(key('id',$rootid)) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or
+                            $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)"
+                                     mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="key('id',$rootid)"
+                                     mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="key('id',$rootid)"
+                                       mode="collect.tex.math"/>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or
+                        $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="/" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="/" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="/" mode="collect.tex.math"/>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="doc" select="self::*"/>
+
+  <xsl:call-template name="user.preroot"/>
+  <xsl:call-template name="root.messages"/>
+
+  <html>
+    <xsl:call-template name="root.attributes"/>
+    <head>
+      <xsl:call-template name="system.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="user.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </head>
+    <body>
+      <xsl:call-template name="body.attributes"/>
+      <xsl:call-template name="user.header.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:apply-templates select="."/>
+      <xsl:call-template name="user.footer.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$html.append"/>
+  
+  <!-- Generate any css files only once, not once per chunk -->
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<xsl:template name="root.attributes">
+  <!-- customize to add attributes to <html> element  -->
+</xsl:template>
+
+<xsl:template name="root.messages">
+  <!-- redefine this any way you'd like to output messages -->
+  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+
+  <!-- The default is that we are not chunking... -->
+  <xsl:text>0</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/ebnf.xsl b/applications/content/template/docbook/html/ebnf.xsl
new file mode 100644
index 0000000..5aadc1a
--- /dev/null
+++ b/applications/content/template/docbook/html/ebnf.xsl
@@ -0,0 +1,331 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>HTML EBNF Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This reference describes the templates and parameters relevant
+to formatting EBNF markup.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productionset">
+  <table width="100%" cellpadding="5">
+    <xsl:if test="$ebnf.table.bgcolor != ''">
+      <xsl:attribute name="bgcolor">
+        <xsl:value-of select="$ebnf.table.bgcolor"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$ebnf.table.border != 0">
+      <xsl:attribute name="border">1</xsl:attribute>
+    </xsl:if>
+    <xsl:attribute name="class">
+      <xsl:value-of select="local-name(.)"/>
+    </xsl:attribute>
+    <xsl:attribute name="summary">
+      <xsl:text>EBNF</xsl:text>
+      <xsl:if test="title|info/title">
+        <xsl:text> for </xsl:text>
+        <xsl:value-of select="title|info/title[1]"/>
+      </xsl:if>
+    </xsl:attribute>
+
+    <xsl:if test="title|info/title">
+      <tr>
+        <th align="{$direction.align.start}" valign="top">
+          <xsl:apply-templates select="." mode="class.attribute"/>
+          <xsl:apply-templates select="title|info/title[1]"/>
+        </th>
+      </tr>
+    </xsl:if>
+    <tr>
+      <td>
+        <table border="0" width="99%" cellpadding="0">
+          <xsl:if test="$ebnf.table.bgcolor != ''">
+            <xsl:attribute name="bgcolor">
+              <xsl:value-of select="$ebnf.table.bgcolor"/>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:attribute name="class">
+            <xsl:value-of select="local-name(.)"/>
+          </xsl:attribute>
+          <xsl:attribute name="summary">EBNF productions</xsl:attribute>
+          <xsl:apply-templates select="production|productionrecap"/>
+        </table>
+      </td>
+    </tr>
+  </table>
+</xsl:template>
+
+<xsl:template match="productionset/title">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="production">
+  <xsl:param name="recap" select="false()"/>
+  <tr>
+    <td align="{$direction.align.start}" valign="top" width="3%">
+      <xsl:text>[</xsl:text>
+      <xsl:number count="production" level="any"/>
+      <xsl:text>]</xsl:text>
+    </td>
+    <td align="{$direction.align.end}" valign="top" width="10%">
+      <xsl:choose>
+        <xsl:when test="$recap">
+          <a>
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="."/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:apply-templates select="lhs"/>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="id.attribute"/>
+          <xsl:call-template name="anchor"/>
+          <xsl:apply-templates select="lhs"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <td valign="top" width="5%" align="center">
+      <xsl:copy-of select="$ebnf.assignment"/>
+    </td>
+    <td valign="top" width="52%">
+      <xsl:apply-templates select="rhs"/>
+      <xsl:copy-of select="$ebnf.statement.terminator"/>
+    </td>
+    <td align="{$direction.align.start}" valign="top" width="30%">
+      <xsl:choose>
+        <xsl:when test="rhs/lineannotation|constraint">
+          <xsl:apply-templates select="rhs/lineannotation" mode="rhslo"/>
+          <xsl:apply-templates select="constraint"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>&#160;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="productionrecap">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:if test="count($targets)=0">
+    <xsl:message>
+      <xsl:text>Error: no ID for productionrecap linkend: </xsl:text>
+      <xsl:value-of select="@linkend"/>
+      <xsl:text>.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="count($targets)>1">
+    <xsl:message>
+      <xsl:text>Warning: multiple "IDs" for productionrecap linkend: </xsl:text>
+      <xsl:value-of select="@linkend"/>
+      <xsl:text>.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:apply-templates select="$target">
+    <xsl:with-param name="recap" select="true()"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="lhs">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="rhs">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::rhs">
+    <xsl:text> |</xsl:text>
+    <br/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="nonterminal">
+  <xsl:variable name="linkend">
+    <xsl:call-template name="xpointer.idref">
+      <xsl:with-param name="xpointer" select="@def"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="$linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="check.idref.targets">
+    <xsl:with-param name="linkend" select="$linkend"/>
+    <xsl:with-param name="element-list">production</xsl:with-param>
+  </xsl:call-template>
+
+  <!-- If you don't provide content, you can't point outside this doc. -->
+  <xsl:choose>
+    <xsl:when test="*|text()"><!--nop--></xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$linkend = ''">
+        <xsl:message>
+          <xsl:text>Non-terminals with no content must point to </xsl:text>
+          <xsl:text>production elements in the current document.</xsl:text>
+        </xsl:message>
+        <xsl:message>
+          <xsl:text>Invalid xpointer for empty nt: </xsl:text>
+          <xsl:value-of select="@def"/>
+        </xsl:message>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:variable name="href">
+    <xsl:choose>
+      <xsl:when test="$linkend != ''">
+        <xsl:variable name="targets" select="key('id',$linkend)"/>
+        <xsl:variable name="target" select="$targets[1]"/>
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select="$target"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@def"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <a href="{$href}">
+    <xsl:choose>
+      <xsl:when test="*|text()">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="$linkend != ''">
+            <xsl:variable name="targets" select="key('id',$linkend)"/>
+            <xsl:variable name="target" select="$targets[1]"/>
+            <xsl:apply-templates select="$target/lhs"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text>???</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </a>
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation" mode="rhslo">
+  <xsl:text>/*&#160;</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>&#160;*/</xsl:text>
+  <br/>
+</xsl:template>
+
+<xsl:template match="constraint">
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="check.idref.targets">
+    <xsl:with-param name="linkend" select="@linkend"/>
+    <xsl:with-param name="element-list">constraintdef</xsl:with-param>
+  </xsl:call-template>
+
+  <xsl:variable name="href">
+    <xsl:variable name="targets" select="key('id',@linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+    <xsl:call-template name="href.target">
+      <xsl:with-param name="object" select="$target"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:text>[&#160;</xsl:text>
+
+  <xsl:choose>
+    <xsl:when test="@role">
+      <xsl:value-of select="@role"/>
+      <xsl:text>: </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="targets" select="key('id',@linkend)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+      <xsl:if test="$target/@role">
+        <xsl:value-of select="$target/@role"/>
+        <xsl:text>: </xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <a href="{$href}">
+    <xsl:variable name="targets" select="key('id',@linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+    <xsl:apply-templates select="$target" mode="title.markup"/>
+  </a>
+  <xsl:text>&#160;]</xsl:text>
+  <xsl:if test="following-sibling::constraint">
+    <br/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="constraintdef">
+  <div>
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="constraintdef/title">
+  <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/footnote.xsl b/applications/content/template/docbook/html/footnote.xsl
new file mode 100644
index 0000000..b385c9a
--- /dev/null
+++ b/applications/content/template/docbook/html/footnote.xsl
@@ -0,0 +1,350 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                exclude-result-prefixes="exsl"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- This template generates just the footnote marker inline.
+The footnote text is handled in name="process.footnote".
+The footnote marker gets an id of @id, while the
+footnote text gets an id of #ftn.@id. They cross link to each other. -->
+<xsl:template match="footnote">
+  <xsl:variable name="href">
+    <xsl:text>#ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <a href="{$href}">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <sup>
+      <xsl:apply-templates select="." mode="class.attribute"/>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:text>[</xsl:text>
+      <xsl:apply-templates select="." mode="footnote.number"/>
+      <xsl:text>]</xsl:text>
+    </sup>
+  </a>
+</xsl:template>
+
+<xsl:template match="footnoteref">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="footnote" select="$targets[1]"/>
+
+  <xsl:if test="not(local-name($footnote) = 'footnote')">
+   <xsl:message terminate="yes">
+ERROR: A footnoteref element has a linkend that points to an element that is not a footnote. 
+Typically this happens when an id attribute is accidentally applied to the child of a footnote element. 
+target element: <xsl:value-of select="local-name($footnote)"/>
+linkend/id: <xsl:value-of select="@linkend"/>
+   </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="target.href">
+    <xsl:call-template name="href.target">
+      <xsl:with-param name="object" select="$footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="href">
+    <xsl:value-of select="substring-before($target.href, '#')"/>
+    <xsl:text>#ftn.</xsl:text>
+    <xsl:value-of select="substring-after($target.href, '#')"/>
+  </xsl:variable>
+
+  <a href="{$href}">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="id.attribute"/>
+    <sup>
+      <xsl:apply-templates select="." mode="class.attribute"/>
+      <xsl:text>[</xsl:text>
+      <xsl:apply-templates select="$footnote" mode="footnote.number"/>
+      <xsl:text>]</xsl:text>
+    </sup>
+  </a>
+</xsl:template>
+
+<xsl:template match="footnote" mode="footnote.number">
+  <xsl:choose>
+    <xsl:when test="string-length(@label) != 0">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="ancestor::table or ancestor::informaltable">
+      <xsl:variable name="tfnum">
+        <xsl:number level="any" from="table|informaltable" format="1"/>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="string-length($table.footnote.number.symbols) &gt;= $tfnum">
+          <xsl:value-of select="substring($table.footnote.number.symbols, $tfnum, 1)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number level="any" from="table | informaltable"
+                      format="{$table.footnote.number.format}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="pfoot" select="preceding::footnote[not(@label)]"/>
+      <xsl:variable name="ptfoot" select="preceding::table//footnote |
+                                          preceding::informaltable//footnote"/>
+      <xsl:variable name="fnum" select="count($pfoot) - count($ptfoot) + 1"/>
+
+      <xsl:choose>
+        <xsl:when test="string-length($footnote.number.symbols) &gt;= $fnum">
+          <xsl:value-of select="substring($footnote.number.symbols, $fnum, 1)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number value="$fnum" format="{$footnote.number.format}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="footnote/para[1]|footnote/simpara[1]" priority="2">
+  <!-- this only works if the first thing in a footnote is a para, -->
+  <!-- which is ok, because it usually is. -->
+  <xsl:variable name="href">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class">
+      <xsl:if test="@role and $para.propagates.style != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:if>
+    </xsl:with-param>
+    <xsl:with-param name="content">
+      <a href="{$href}">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <sup>
+          <xsl:apply-templates select="." mode="class.attribute"/>
+          <xsl:text>[</xsl:text>
+          <xsl:apply-templates select="ancestor::footnote" mode="footnote.number"/>
+          <xsl:text>] </xsl:text>
+        </sup>
+      </a>
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="footnote.body.number">
+  <xsl:variable name="name">
+    <xsl:text>ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="footnote.mark">
+    <a href="{$href}">
+      <xsl:apply-templates select="." mode="class.attribute"/>
+      <xsl:choose>
+        <xsl:when test="$generate.id.attributes = 0">
+          <xsl:if test="@id or @xml:id">
+            <xsl:attribute name="name">
+              <xsl:value-of select="@id|@xml:id"/>
+            </xsl:attribute>
+          </xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="id.attribute"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <sup>
+        <xsl:text>[</xsl:text>
+        <xsl:apply-templates select="ancestor::footnote"
+                             mode="footnote.number"/>
+        <xsl:text>] </xsl:text>
+      </sup>
+    </a>
+  </xsl:variable>
+
+  <xsl:variable name="html">
+    <xsl:apply-templates select="."/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:variable name="html-nodes" select="exsl:node-set($html)"/>
+      <xsl:choose>
+        <xsl:when test="$html-nodes//p">
+          <xsl:apply-templates select="$html-nodes" mode="insert.html.p">
+            <xsl:with-param name="mark" select="$footnote.mark"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$html-nodes" mode="insert.html.text">
+            <xsl:with-param name="mark" select="$footnote.mark"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$html"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!--
+<xsl:template name="count-element-from">
+  <xsl:param name="from" select=".."/>
+  <xsl:param name="to" select="."/>
+  <xsl:param name="count" select="0"/>
+  <xsl:param name="list" select="$from/following::*[local-name(.)=local-name($to)]
+                                 |$from/descendant-or-self::*[local-name(.)=local-name($to)]"/>
+
+  <xsl:choose>
+    <xsl:when test="not($list)">
+      <xsl:text>-1</xsl:text>
+    </xsl:when>
+    <xsl:when test="$list[1] = $to">
+      <xsl:value-of select="$count + 1"/>
+    </xsl:when>
+    <xsl:otherwise>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+-->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.footnotes">
+  <xsl:variable name="footnotes" select=".//footnote"/>
+  <xsl:variable name="table.footnotes"
+                select=".//table//footnote | .//informaltable//footnote"/>
+
+  <!-- Only bother to do this if there's at least one non-table footnote -->
+  <xsl:if test="count($footnotes)>count($table.footnotes)">
+    <div class="footnotes">
+      <xsl:call-template name="footnotes.attributes"/>
+      <br/>
+      <hr>
+        <xsl:choose>
+          <xsl:when test="$make.clean.html != 0">
+            <xsl:attribute name="class">footnote-hr</xsl:attribute>
+          </xsl:when>
+          <xsl:when test="$css.decoration != 0">
+            <xsl:attribute name="style">
+              <xsl:value-of select="concat('width:100; align:',
+                                            $direction.align.start,
+                                            ';')"/>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:attribute name="width">100</xsl:attribute>
+            <xsl:attribute name="align"><xsl:value-of 
+                      select="$direction.align.start"/></xsl:attribute>
+          </xsl:otherwise>
+        </xsl:choose>
+      </hr>
+      <xsl:apply-templates select="$footnotes" mode="process.footnote.mode"/>
+    </div>
+  </xsl:if>
+
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <div class="annotation-list">
+      <div class="annotation-nocss">
+	<p>The following annotations are from this essay. You are seeing
+	them here because your browser doesn’t support the user-interface
+	techniques used to make them appear as ‘popups’ on modern browsers.</p>
+      </div>
+
+      <xsl:apply-templates select="//annotation"
+			   mode="annotation-popup"/>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="footnotes.attributes">
+  <!-- customizable for footnotes attributes -->
+</xsl:template>
+
+<xsl:template name="process.chunk.footnotes">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="footnote" name="process.footnote" mode="process.footnote.mode">
+  <xsl:variable name="id">
+    <xsl:text>ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="local-name(*[1]) = 'para' or local-name(*[1]) = 'simpara'">
+      <div id="{$id}">
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+
+    <xsl:when test="$html.cleanup != 0 and 
+                    $exsl.node.set.available != 0">
+      <div id="{$id}">
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:apply-templates select="*[1]" mode="footnote.body.number"/>
+        <xsl:apply-templates select="*[position() &gt; 1]"/>
+      </div>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>Warning: footnote number may not be generated </xsl:text>
+        <xsl:text>correctly; </xsl:text>
+        <xsl:value-of select="local-name(*[1])"/>
+        <xsl:text> unexpected as first child of footnote.</xsl:text>
+      </xsl:message>
+      <div id="{$id}">
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="table//footnote | informaltable//footnote"
+              mode="process.footnote.mode">
+</xsl:template>
+
+<xsl:template match="footnote" mode="table.footnote.mode">
+  <xsl:call-template name="process.footnote"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/formal.xsl b/applications/content/template/docbook/html/formal.xsl
new file mode 100644
index 0000000..d16541d
--- /dev/null
+++ b/applications/content/template/docbook/html/formal.xsl
@@ -0,0 +1,507 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:param name="formal.object.break.after">1</xsl:param>
+
+<xsl:template name="formal.object">
+  <xsl:param name="placement" select="'before'"/>
+  <xsl:param name="class">
+    <xsl:apply-templates select="." mode="class.value"/>
+  </xsl:param>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:variable name="content">
+    <div class="{$class}">
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    
+      <xsl:choose>
+        <xsl:when test="$placement = 'before'">
+          <xsl:call-template name="formal.object.heading"/>
+          <div class="{$class}-contents">
+            <xsl:apply-templates/>
+          </div>
+          <!-- HACK: This doesn't belong inside formal.object; it 
+               should be done by the table template, but I want 
+               the link to be inside the DIV, so... -->
+          <xsl:if test="local-name(.) = 'table'">
+            <xsl:call-template name="table.longdesc"/>
+          </xsl:if>
+    
+          <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+          <div class="{$class}-contents"><xsl:apply-templates/></div>
+          <!-- HACK: This doesn't belong inside formal.object; it 
+               should be done by the table template, but I want 
+               the link to be inside the DIV, so... -->
+          <xsl:if test="local-name(.) = 'table'">
+            <xsl:call-template name="table.longdesc"/>
+          </xsl:if>
+    
+          <xsl:call-template name="formal.object.heading"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </div>
+    <xsl:if test="not($formal.object.break.after = '0')">
+      <br class="{$class}-break"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="floatstyle">
+    <xsl:call-template name="floatstyle"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$floatstyle != ''">
+      <xsl:call-template name="floater">
+        <xsl:with-param name="class"><xsl:value-of 
+                     select="$class"/>-float</xsl:with-param>
+        <xsl:with-param name="floatstyle" select="$floatstyle"/>
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="formal.object.heading">
+  <xsl:param name="object" select="."/>
+  <xsl:param name="title">
+    <xsl:apply-templates select="$object" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </xsl:param>
+
+
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <xsl:variable name="html.class" select="concat(local-name($object),'-title')"/>
+      <div class="{$html.class}">
+        <xsl:copy-of select="$title"/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p class="title">
+        <b>
+          <xsl:copy-of select="$title"/>
+        </b>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="informal.object">
+  <xsl:param name="class">
+    <xsl:apply-templates select="." mode="class.value"/>
+  </xsl:param>
+
+  <xsl:variable name="content">
+    <div class="{$class}">
+      <xsl:call-template name="id.attribute"/>
+      <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+  
+      <!-- HACK: This doesn't belong inside formal.object; it 
+           should be done by the table template, but I want 
+           the link to be inside the DIV, so... -->
+      <xsl:if test="local-name(.) = 'informaltable'">
+        <xsl:call-template name="table.longdesc"/>
+      </xsl:if>
+  
+      <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+    </div>
+  </xsl:variable>
+
+  <xsl:variable name="floatstyle">
+    <xsl:call-template name="floatstyle"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$floatstyle != ''">
+      <xsl:call-template name="floater">
+        <xsl:with-param name="class"><xsl:value-of 
+                     select="$class"/>-float</xsl:with-param>
+        <xsl:with-param name="floatstyle" select="$floatstyle"/>
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="semiformal.object">
+  <xsl:param name="placement" select="'before'"/>
+  <xsl:param name="class" select="local-name(.)"/>
+
+  <xsl:choose>
+    <xsl:when test="title or info/title">
+      <xsl:call-template name="formal.object">
+        <xsl:with-param name="placement" select="$placement"/>
+        <xsl:with-param name="class" select="$class"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="informal.object">
+        <xsl:with-param name="class" select="$class"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure">
+  <xsl:variable name="param.placement"
+                select="substring-after(normalize-space($formal.title.placement),
+                                        concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="formal.object">
+    <xsl:with-param name="placement" select="$placement"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="table">
+  <xsl:choose>
+    <xsl:when test="tgroup|mediaobject|graphic">
+      <xsl:call-template name="calsTable"/>
+    </xsl:when>
+    <xsl:when test="caption">
+      <xsl:call-template name="htmlTable.with.caption"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- do not use xsl:copy because of XHTML's needs -->
+      <xsl:element name="table" namespace="">
+        <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+        <xsl:attribute name="id">
+          <xsl:call-template name="object.id"/>
+        </xsl:attribute>
+        <xsl:call-template name="htmlTable"/>
+      </xsl:element>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Handle html markup table like formal.object -->
+<xsl:template name="htmlTable.with.caption">
+  <xsl:param name="class">
+    <xsl:apply-templates select="." mode="class.value"/>
+  </xsl:param>
+
+  <xsl:variable name="param.placement"
+                select="substring-after(normalize-space($formal.title.placement),
+                                        concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:variable name="content">
+    <div class="{$class}">
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    
+      <xsl:choose>
+        <xsl:when test="$placement = 'before'">
+
+          <xsl:call-template name="formal.object.heading"/>
+
+          <div class="{$class}-contents">
+            <xsl:apply-templates select="." mode="htmlTable"/>
+          </div>
+
+          <xsl:call-template name="table.longdesc"/>
+    
+          <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+
+          <div class="{$class}-contents">
+            <xsl:apply-templates select="." mode="htmlTable"/>
+          </div>
+
+          <xsl:call-template name="table.longdesc"/>
+    
+          <xsl:call-template name="formal.object.heading"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </div>
+    <xsl:if test="not($formal.object.break.after = '0')">
+      <br class="{$class}-break"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="floatstyle">
+    <xsl:call-template name="floatstyle"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$floatstyle != ''">
+      <xsl:call-template name="floater">
+        <xsl:with-param name="class"><xsl:value-of 
+                     select="$class"/>-float</xsl:with-param>
+        <xsl:with-param name="floatstyle" select="$floatstyle"/>
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="calsTable">
+  <xsl:if test="tgroup/tbody/tr
+                |tgroup/thead/tr
+                |tgroup/tfoot/tr">
+    <xsl:message terminate="yes">Broken table: tr descendent of CALS Table.</xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="param.placement"
+                select="substring-after(normalize-space($formal.title.placement),
+                                        concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="formal.object">
+    <xsl:with-param name="placement" select="$placement"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="table|informaltable" mode="class.value">
+  <xsl:choose>
+    <xsl:when test="@tabstyle">
+      <xsl:value-of select="@tabstyle"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="local-name(.)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="htmlTable">
+  <xsl:if test="tgroup/tbody/row
+                |tgroup/thead/row
+                |tgroup/tfoot/row">
+    <xsl:message terminate="yes">Broken table: row descendent of HTML table.</xsl:message>
+  </xsl:if>
+
+  <xsl:apply-templates mode="htmlTable"/>
+
+  <xsl:if test=".//footnote|../title//footnote">
+    <tbody class="footnotes">
+      <tr>
+        <td colspan="50">
+          <xsl:apply-templates select=".//footnote|../title//footnote" mode="table.footnote.mode"/>
+        </td>
+      </tr>
+    </tbody>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="example">
+  <xsl:variable name="param.placement"
+             select="substring-after(normalize-space($formal.title.placement),
+                     concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="formal.object">
+    <xsl:with-param name="placement" select="$placement"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="equation">
+  <xsl:variable name="param.placement"
+              select="substring-after(normalize-space($formal.title.placement),
+                                      concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="formal.object">
+    <xsl:with-param name="placement" select="$placement"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="figure/title"></xsl:template>
+<xsl:template match="figure/titleabbrev"></xsl:template>
+<xsl:template match="table/title"></xsl:template>
+<xsl:template match="table/titleabbrev"></xsl:template>
+<xsl:template match="table/textobject"></xsl:template>
+<xsl:template match="example/title"></xsl:template>
+<xsl:template match="example/titleabbrev"></xsl:template>
+<xsl:template match="equation/title"></xsl:template>
+<xsl:template match="equation/titleabbrev"></xsl:template>
+
+<xsl:template match="informalfigure">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informalexample">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informaltable">
+  <xsl:choose>
+    <xsl:when test="tgroup|mediaobject|graphic">
+      <xsl:call-template name="informal.object"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:element name="table" namespace="">
+        <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+        <xsl:attribute name="id">
+          <xsl:call-template name="object.id"/>
+        </xsl:attribute>
+        <xsl:call-template name="htmlTable"/>
+      </xsl:element>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="informaltable/textobject"></xsl:template>
+
+<xsl:template name="table.longdesc">
+  <!-- HACK: This doesn't belong inside formal.objectt; it should be done by -->
+  <!-- the table template, but I want the link to be inside the DIV, so... -->
+  <xsl:variable name="longdesc.uri">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="irrelevant">
+    <!-- write.longdesc returns the filename ... -->
+    <xsl:call-template name="write.longdesc">
+      <xsl:with-param name="mediaobject" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$html.longdesc != 0 and $html.longdesc.link != 0
+                and textobject[not(phrase)]">
+    <xsl:call-template name="longdesc.link">
+      <xsl:with-param name="longdesc.uri" select="$longdesc.uri"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="informalequation">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template name="floatstyle">
+  <xsl:if test="(@float and @float != '0') or @floatstyle != ''">
+    <xsl:choose>
+      <xsl:when test="@floatstyle != ''">
+        <xsl:value-of select="@floatstyle"/>
+      </xsl:when>
+      <xsl:when test="@float = '1'">
+        <xsl:value-of select="$default.float.class"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@float"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="floater">
+  <xsl:param name="content"/>
+  <xsl:param name="class" select="'float'"/>
+  <xsl:param name="floatstyle" select="'left'"/>
+
+  <div class="{$class}">
+    <xsl:if test="$floatstyle = 'left' or $floatstyle = 'right'">
+      <xsl:attribute name="style">
+        <xsl:text>float: </xsl:text>
+        <xsl:value-of select="$floatstyle"/>
+        <xsl:text>;</xsl:text>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:copy-of select="$content"/>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/glossary.xsl b/applications/content/template/docbook/html/glossary.xsl
new file mode 100644
index 0000000..e754302
--- /dev/null
+++ b/applications/content/template/docbook/html/glossary.xsl
@@ -0,0 +1,521 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xlink='http://www.w3.org/1999/xlink'
+                exclude-result-prefixes="xlink"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossary">
+  &setup-language-variable;
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="glossary.titlepage"/>
+
+    <xsl:choose>
+      <xsl:when test="glossdiv">
+        <xsl:apply-templates select="(glossdiv[1]/preceding-sibling::*)"/>
+      </xsl:when>
+      <xsl:when test="glossentry">
+        <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:choose>
+      <xsl:when test="glossdiv">
+        <xsl:apply-templates select="glossdiv"/>
+      </xsl:when>
+      <xsl:when test="glossentry">
+        <dl>
+          <xsl:choose>
+            <xsl:when test="$glossary.sort != 0">
+              <xsl:apply-templates select="glossentry">
+				<xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="glossentry"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </dl>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- empty glossary -->
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="not(parent::article)">
+      <xsl:call-template name="process.footnotes"/>
+    </xsl:if>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="glossary/glossaryinfo"></xsl:template>
+<xsl:template match="glossary/info"></xsl:template>
+<xsl:template match="glossary/title"></xsl:template>
+<xsl:template match="glossary/subtitle"></xsl:template>
+<xsl:template match="glossary/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glosslist">
+  &setup-language-variable;
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="blockinfo/title|info/title|title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+    <dl>
+      <xsl:choose>
+        <xsl:when test="$glossary.sort != 0">
+          <xsl:apply-templates select="glossentry">
+				<xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="glossentry"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </dl>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossdiv">
+  &setup-language-variable;
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+
+    <dl>
+      <xsl:choose>
+        <xsl:when test="$glossary.sort != 0">
+          <xsl:apply-templates select="glossentry">
+            <xsl:sort lang="{$language}"
+                      select="translate(glossterm, $lowercase, 
+                                        $uppercase)"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="glossentry"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </dl>
+  </div>
+</xsl:template>
+
+<xsl:template match="glossdiv/title">
+  <h3>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!--
+GlossEntry ::=
+  GlossTerm, Acronym?, Abbrev?,
+  (IndexTerm)*,
+  RevHistory?,
+  (GlossSee | GlossDef+)
+-->
+
+<xsl:template match="glossentry">
+  <xsl:choose>
+    <xsl:when test="$glossentry.show.acronym = 'primary'">
+      <dt>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+
+        <xsl:choose>
+          <xsl:when test="acronym|abbrev">
+            <xsl:apply-templates select="acronym|abbrev"/>
+            <xsl:text> (</xsl:text>
+            <xsl:apply-templates select="glossterm"/>
+            <xsl:text>)</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="glossterm"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </dt>
+    </xsl:when>
+    <xsl:when test="$glossentry.show.acronym = 'yes'">
+      <dt>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+
+        <xsl:apply-templates select="glossterm"/>
+
+        <xsl:if test="acronym|abbrev">
+          <xsl:text> (</xsl:text>
+          <xsl:apply-templates select="acronym|abbrev"/>
+          <xsl:text>)</xsl:text>
+        </xsl:if>
+      </dt>
+    </xsl:when>
+    <xsl:otherwise>
+      <dt>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+
+        <xsl:apply-templates select="glossterm"/>
+      </dt>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:apply-templates select="indexterm|revhistory|glosssee|glossdef"/>
+</xsl:template>
+
+<xsl:template match="glossentry/glossterm">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::glossterm">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/acronym">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/abbrev">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/revhistory">
+</xsl:template>
+
+<xsl:template match="glossentry/glosssee">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="key('id', $otherterm)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="xlink" select="@xlink:href"/>
+
+  <dd>
+    <p>
+      <xsl:variable name="template">
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'glossary'"/>
+          <xsl:with-param name="name" select="'see'"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="title">
+        <xsl:choose>
+          <xsl:when test="$target">
+            <a>
+              <xsl:apply-templates select="." mode="common.html.attributes"/>
+              <xsl:call-template name="id.attribute"/>
+              <xsl:attribute name="href">
+                <xsl:call-template name="href.target">
+                  <xsl:with-param name="object" select="$target"/>
+                </xsl:call-template>
+              </xsl:attribute>
+              <xsl:apply-templates select="$target" mode="xref-to"/>
+            </a>
+          </xsl:when>
+          <xsl:when test="$xlink">
+            <xsl:call-template name="simple.xlink">
+              <xsl:with-param name="content">
+                <xsl:apply-templates/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:when test="$otherterm != '' and not($target)">
+            <xsl:message>
+              <xsl:text>Warning: glosssee @otherterm reference not found: </xsl:text>
+              <xsl:value-of select="$otherterm"/>
+            </xsl:message>
+            <xsl:apply-templates/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="template" select="$template"/>
+        <xsl:with-param name="title" select="$title"/>
+      </xsl:call-template>
+    </p>
+  </dd>
+</xsl:template>
+
+<xsl:template match="glossentry/glossdef">
+  <dd>
+    <xsl:apply-templates select="*[local-name(.) != 'glossseealso']"/>
+    <xsl:if test="glossseealso">
+      <p>
+        <xsl:variable name="template">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'glossary'"/>
+            <xsl:with-param name="name" select="'seealso'"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:variable name="title">
+          <xsl:apply-templates select="glossseealso"/>
+        </xsl:variable>
+        <xsl:call-template name="substitute-markup">
+          <xsl:with-param name="template" select="$template"/>
+          <xsl:with-param name="title" select="$title"/>
+        </xsl:call-template>
+      </p>
+    </xsl:if>
+  </dd>
+</xsl:template>
+
+<xsl:template match="glossseealso">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="key('id', $otherterm)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="xlink" select="@xlink:href"/>
+
+  <xsl:choose>
+    <xsl:when test="$target">
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target" mode="xref-to"/>
+      </a>
+    </xsl:when>
+    <xsl:when test="$xlink">
+      <xsl:call-template name="simple.xlink">
+        <xsl:with-param name="content">
+          <xsl:apply-templates/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$otherterm != '' and not($target)">
+      <xsl:message>
+        <xsl:text>Warning: glossseealso @otherterm reference not found: </xsl:text>
+        <xsl:value-of select="$otherterm"/>
+      </xsl:message>
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="position() = last()"/>
+    <xsl:otherwise>
+		<xsl:call-template name="gentext.template">
+		  <xsl:with-param name="context" select="'glossary'"/>
+		  <xsl:with-param name="name" select="'seealso-separator'"/>
+		</xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- Glossary collection -->
+
+<xsl:template match="glossary[@role='auto']" priority="2">
+  &setup-language-variable;
+  <xsl:variable name="terms" 
+                select="//glossterm[not(parent::glossdef)]|//firstterm"/>
+  <xsl:variable name="collection" select="document($glossary.collection, .)"/>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:if test="$glossary.collection = ''">
+    <xsl:message>
+      <xsl:text>Warning: processing automatic glossary </xsl:text>
+      <xsl:text>without a glossary.collection file.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not($collection) and $glossary.collection != ''">
+    <xsl:message>
+      <xsl:text>Warning: processing automatic glossary but unable to </xsl:text>
+      <xsl:text>open glossary.collection file '</xsl:text>
+      <xsl:value-of select="$glossary.collection"/>
+      <xsl:text>'</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="glossary.titlepage"/>
+
+    <xsl:choose>
+      <xsl:when test="glossdiv and $collection//glossdiv">
+        <xsl:for-each select="$collection//glossdiv">
+          <!-- first see if there are any in this div -->
+          <xsl:variable name="exist.test">
+            <xsl:for-each select="glossentry">
+              <xsl:variable name="cterm" select="glossterm"/>
+              <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                <xsl:value-of select="glossterm"/>
+              </xsl:if>
+            </xsl:for-each>
+          </xsl:variable>
+
+          <xsl:if test="$exist.test != ''">
+            <xsl:apply-templates select="." mode="auto-glossary">
+              <xsl:with-param name="terms" select="$terms"/>
+            </xsl:apply-templates>
+          </xsl:if>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <dl>
+          <xsl:choose>
+            <xsl:when test="$glossary.sort != 0">
+              <xsl:for-each select="$collection//glossentry">
+				<xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+                <xsl:variable name="cterm" select="glossterm"/>
+                <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                  <xsl:apply-templates select="." mode="auto-glossary"/>
+                </xsl:if>
+              </xsl:for-each>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:for-each select="$collection//glossentry">
+                <xsl:variable name="cterm" select="glossterm"/>
+                <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                  <xsl:apply-templates select="." mode="auto-glossary"/>
+                </xsl:if>
+              </xsl:for-each>
+            </xsl:otherwise>
+          </xsl:choose>
+        </dl>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="not(parent::article)">
+      <xsl:call-template name="process.footnotes"/>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="auto-glossary">
+  <!-- pop back out to the default mode for most elements -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="glossdiv" mode="auto-glossary">
+  <xsl:param name="terms" select="."/>
+
+  &setup-language-variable;
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+
+    <dl>
+      <xsl:choose>
+        <xsl:when test="$glossary.sort != 0">
+          <xsl:for-each select="glossentry">
+				<xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;))"/>
+            <xsl:variable name="cterm" select="glossterm"/>
+            <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+              <xsl:apply-templates select="." mode="auto-glossary"/>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:for-each select="glossentry">
+            <xsl:variable name="cterm" select="glossterm"/>
+            <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+              <xsl:apply-templates select="." mode="auto-glossary"/>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:otherwise>
+      </xsl:choose>
+    </dl>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/graphics.xsl b/applications/content/template/docbook/html/graphics.xsl
new file mode 100644
index 0000000..127a4d0
--- /dev/null
+++ b/applications/content/template/docbook/html/graphics.xsl
@@ -0,0 +1,1568 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xlink="http://www.w3.org/1999/xlink"
+                xmlns:stext="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.TextFactory"
+                xmlns:simg="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.ImageIntrinsics"
+                xmlns:ximg="xalan://com.nwalsh.xalan.ImageIntrinsics"
+                xmlns:xtext="xalan://com.nwalsh.xalan.Text"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                exclude-result-prefixes="xlink stext xtext lxslt simg ximg"
+                extension-element-prefixes="stext xtext"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     Contributors:
+     Colin Paul Adams, <colin@colina.demon.co.uk>
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xtext" elements="insertfile"/>
+<lxslt:component prefix="ximg" functions="new getWidth getDepth"/>
+
+<!-- ==================================================================== -->
+<!-- Graphic format tests for the HTML backend -->
+
+<xsl:template name="is.graphic.format">
+  <xsl:param name="format"></xsl:param>
+  <xsl:if test="$format = 'SVG'
+                or $format = 'PNG'
+                or $format = 'JPG'
+                or $format = 'JPEG'
+                or $format = 'linespecific'
+                or $format = 'GIF'
+                or $format = 'GIF87a'
+                or $format = 'GIF89a'
+                or $format = 'BMP'">1</xsl:if>
+</xsl:template>
+
+<xsl:template name="is.graphic.extension">
+  <xsl:param name="ext"></xsl:param>
+  <xsl:variable name="lcext" select="translate($ext,
+                                       'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
+                                       'abcdefghijklmnopqrstuvwxyz')"/>
+  <xsl:if test="$lcext = 'svg'
+             or $lcext = 'png'
+             or $lcext = 'jpeg'
+             or $lcext = 'jpg'
+             or $lcext = 'avi'
+             or $lcext = 'mpg'
+             or $lcext = 'mp4'
+             or $lcext = 'mpeg'
+             or $lcext = 'qt'
+             or $lcext = 'gif'
+             or $lcext = 'acc'
+             or $lcext = 'mp1'
+             or $lcext = 'mp2'
+             or $lcext = 'mp3'
+             or $lcext = 'mp4'
+             or $lcext = 'm4v'
+             or $lcext = 'm4a'
+             or $lcext = 'wav'
+             or $lcext = 'ogv'
+             or $lcext = 'ogg'
+             or $lcext = 'webm'
+             or $lcext = 'bmp'">1</xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="screenshot">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="screeninfo">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.image">
+  <!-- When this template is called, the current node should be  -->
+  <!-- a graphic, inlinegraphic, imagedata, or videodata. All    -->
+  <!-- those elements have the same set of attributes, so we can -->
+  <!-- handle them all in one place.                             -->
+  <xsl:param name="tag" select="'img'"/>
+  <xsl:param name="alt"/>
+  <xsl:param name="longdesc"/>
+
+  <!-- The HTML img element only supports the notion of content-area
+       scaling; it doesn't support the distinction between a
+       content-area and a viewport-area, so we have to make some
+       compromises.
+
+       1. If only the content-area is specified, everything is fine.
+          (If you ask for a three inch image, that's what you'll get.)
+
+       2. If only the viewport-area is provided:
+          - If scalefit=1, treat it as both the content-area and
+            the viewport-area. (If you ask for an image in a five inch
+            area, we'll make the image five inches to fill that area.)
+          - If scalefit=0, ignore the viewport-area specification.
+
+          Note: this is not quite the right semantic and has the additional
+          problem that it can result in anamorphic scaling, which scalefit
+          should never cause.
+
+       3. If both the content-area and the viewport-area is specified
+          on a graphic element, ignore the viewport-area.
+          (If you ask for a three inch image in a five inch area, we'll assume
+           it's better to give you a three inch image in an unspecified area
+           than a five inch image in a five inch area.
+
+       Relative units also cause problems. As a general rule, the stylesheets
+       are operating too early and too loosely coupled with the rendering engine
+       to know things like the current font size or the actual dimensions of
+       an image. Therefore:
+
+       1. We use a fixed size for pixels, $pixels.per.inch
+
+       2. We use a fixed size for "em"s, $points.per.em
+
+       Percentages are problematic. In the following discussion, we speak
+       of width and contentwidth, but the same issues apply to depth and
+       contentdepth
+
+       1. A width of 50% means "half of the available space for the image."
+          That's fine. But note that in HTML, this is a dynamic property and
+          the image size will vary if the browser window is resized.
+
+       2. A contentwidth of 50% means "half of the actual image width". But
+          the stylesheets have no way to assess the image's actual size. Treating
+          this as a width of 50% is one possibility, but it produces behavior
+          (dynamic scaling) that seems entirely out of character with the
+          meaning.
+
+          Instead, the stylesheets define a $nominal.image.width
+          and convert percentages to actual values based on that nominal size.
+
+       Scale can be problematic. Scale applies to the contentwidth, so
+       a scale of 50 when a contentwidth is not specified is analagous to a
+       width of 50%. (If a contentwidth is specified, the scaling factor can
+       be applied to that value and no problem exists.)
+
+       If scale is specified but contentwidth is not supplied, the
+       nominal.image.width is used to calculate a base size
+       for scaling.
+
+       Warning: as a consequence of these decisions, unless the aspect ratio
+       of your image happens to be exactly the same as (nominal width / nominal height),
+       specifying contentwidth="50%" and contentdepth="50%" is NOT going to
+       scale the way you expect (or really, the way it should).
+
+       Don't do that. In fact, a percentage value is not recommended for content
+       size at all. Use scale instead.
+
+       Finally, align and valign are troublesome. Horizontal alignment is now
+       supported by wrapping the image in a <div align="{@align}"> (in block
+       contexts!). I can't think of anything (practical) to do about vertical
+       alignment.
+  -->
+
+  <xsl:variable name="width-units">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"></xsl:when>
+      <xsl:when test="@width">
+        <xsl:call-template name="length-units">
+          <xsl:with-param name="length" select="@width"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="not(@depth) and $default.image.width != ''">
+        <xsl:call-template name="length-units">
+          <xsl:with-param name="length" select="$default.image.width"/>
+        </xsl:call-template>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="width">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"></xsl:when>
+      <xsl:when test="@width">
+        <xsl:choose>
+          <xsl:when test="$width-units = '%'">
+            <xsl:value-of select="@width"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="length-spec">
+              <xsl:with-param name="length" select="@width"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:when test="not(@depth) and $default.image.width != ''">
+        <xsl:value-of select="$default.image.width"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scalefit">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
+      <xsl:when test="@contentwidth or @contentdepth">0</xsl:when>
+      <xsl:when test="@scale">0</xsl:when>
+      <xsl:when test="@scalefit"><xsl:value-of select="@scalefit"/></xsl:when>
+      <xsl:when test="$width != '' or @depth">1</xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scale">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0">1.0</xsl:when>
+      <xsl:when test="@contentwidth or @contentdepth">1.0</xsl:when>
+      <xsl:when test="@scale">
+        <xsl:value-of select="@scale div 100.0"/>
+      </xsl:when>
+      <xsl:otherwise>1.0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="local-name(.) = 'graphic'
+                      or local-name(.) = 'inlinegraphic'">
+        <!-- handle legacy graphic and inlinegraphic by new template --> 
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- imagedata, videodata, audiodata -->
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="output_filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="$filename"/>
+      </xsl:when>
+      <!--
+        Moved test for $keep.relative.image.uris to template below:
+            <xsl:template match="@fileref">
+      -->
+      <xsl:otherwise>
+        <xsl:value-of select="$filename"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="img.src.path.pi">
+    <xsl:call-template name="pi.dbhtml_img.src.path">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="filename.for.graphicsize">
+    <xsl:choose>
+      <xsl:when test="$img.src.path.pi != ''">
+        <xsl:value-of select="concat($img.src.path.pi, $filename)"/>
+      </xsl:when>
+      <xsl:when test="$img.src.path != '' and
+                      $graphicsize.use.img.src.path != 0 and
+                      $tag = 'img' and
+                      not(starts-with($filename, '/')) and
+                      not(contains($filename, '://'))">
+        <xsl:value-of select="concat($img.src.path, $filename)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$filename"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="realintrinsicwidth">
+    <!-- This funny compound test works around a bug in XSLTC -->
+    <xsl:choose>
+      <xsl:when test="$use.extensions != 0 and $graphicsize.extension != 0
+                      and not(@format='SVG')">
+        <xsl:choose>
+          <xsl:when test="function-available('simg:getWidth')">
+            <xsl:value-of select="simg:getWidth(simg:new($filename.for.graphicsize),
+                                                $nominal.image.width)"/>
+          </xsl:when>
+          <xsl:when test="function-available('ximg:getWidth')">
+            <xsl:value-of select="ximg:getWidth(ximg:new($filename.for.graphicsize),
+                                                $nominal.image.width)"/>
+          </xsl:when>
+          <xsl:otherwise>
+           <xsl:value-of select="0"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="0"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="intrinsicwidth">
+    <xsl:choose>
+      <xsl:when test="$realintrinsicwidth = 0">
+       <xsl:value-of select="$nominal.image.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:value-of select="$realintrinsicwidth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="intrinsicdepth">
+    <!-- This funny compound test works around a bug in XSLTC -->
+    <xsl:choose>
+      <xsl:when test="$use.extensions != 0 and $graphicsize.extension != 0
+                      and not(@format='SVG')">
+        <xsl:choose>
+          <xsl:when test="function-available('simg:getDepth')">
+            <xsl:value-of select="simg:getDepth(simg:new($filename.for.graphicsize),
+                                                $nominal.image.depth)"/>
+          </xsl:when>
+          <xsl:when test="function-available('ximg:getDepth')">
+            <xsl:value-of select="ximg:getDepth(ximg:new($filename.for.graphicsize),
+                                                $nominal.image.depth)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$nominal.image.depth"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$nominal.image.depth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="contentwidth">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"></xsl:when>
+      <xsl:when test="@contentwidth">
+        <xsl:variable name="units">
+          <xsl:call-template name="length-units">
+            <xsl:with-param name="length" select="@contentwidth"/>
+          </xsl:call-template>
+        </xsl:variable>
+
+        <xsl:choose>
+          <xsl:when test="$units = '%'">
+            <xsl:variable name="cmagnitude">
+              <xsl:call-template name="length-magnitude">
+                <xsl:with-param name="length" select="@contentwidth"/>
+              </xsl:call-template>
+            </xsl:variable>
+            <xsl:value-of select="$intrinsicwidth * $cmagnitude div 100.0"/>
+            <xsl:text>px</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="length-spec">
+              <xsl:with-param name="length" select="@contentwidth"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$intrinsicwidth"/>
+        <xsl:text>px</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scaled.contentwidth">
+    <xsl:if test="$contentwidth != ''">
+      <xsl:variable name="cwidth.in.points">
+        <xsl:call-template name="length-in-points">
+          <xsl:with-param name="length" select="$contentwidth"/>
+          <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+          <xsl:with-param name="em.size" select="$points.per.em"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$cwidth.in.points div 72.0 * $pixels.per.inch * $scale"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="html.width">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"></xsl:when>
+      <xsl:when test="$width-units = '%'">
+        <xsl:value-of select="$width"/>
+      </xsl:when>
+      <xsl:when test="$width != ''">
+        <xsl:variable name="width.in.points">
+          <xsl:call-template name="length-in-points">
+            <xsl:with-param name="length" select="$width"/>
+            <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+            <xsl:with-param name="em.size" select="$points.per.em"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="round($width.in.points div 72.0 * $pixels.per.inch)"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="contentdepth">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"></xsl:when>
+      <xsl:when test="@contentdepth">
+        <xsl:variable name="units">
+          <xsl:call-template name="length-units">
+            <xsl:with-param name="length" select="@contentdepth"/>
+          </xsl:call-template>
+        </xsl:variable>
+
+        <xsl:choose>
+          <xsl:when test="$units = '%'">
+            <xsl:variable name="cmagnitude">
+              <xsl:call-template name="length-magnitude">
+                <xsl:with-param name="length" select="@contentdepth"/>
+              </xsl:call-template>
+            </xsl:variable>
+            <xsl:value-of select="$intrinsicdepth * $cmagnitude div 100.0"/>
+            <xsl:text>px</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="length-spec">
+              <xsl:with-param name="length" select="@contentdepth"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$intrinsicdepth"/>
+        <xsl:text>px</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scaled.contentdepth">
+    <xsl:if test="$contentdepth != ''">
+      <xsl:variable name="cdepth.in.points">
+        <xsl:call-template name="length-in-points">
+          <xsl:with-param name="length" select="$contentdepth"/>
+          <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+          <xsl:with-param name="em.size" select="$points.per.em"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$cdepth.in.points div 72.0 * $pixels.per.inch * $scale"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="depth-units">
+    <xsl:if test="@depth">
+      <xsl:call-template name="length-units">
+        <xsl:with-param name="length" select="@depth"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="depth">
+    <xsl:if test="@depth">
+      <xsl:choose>
+        <xsl:when test="$depth-units = '%'">
+          <xsl:value-of select="@depth"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="length-spec">
+            <xsl:with-param name="length" select="@depth"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="html.depth">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"></xsl:when>
+      <xsl:when test="$depth-units = '%'">
+        <xsl:value-of select="$depth"/>
+      </xsl:when>
+      <xsl:when test="@depth and @depth != ''">
+        <xsl:variable name="depth.in.points">
+          <xsl:call-template name="length-in-points">
+            <xsl:with-param name="length" select="$depth"/>
+            <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+            <xsl:with-param name="em.size" select="$points.per.em"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="round($depth.in.points div 72.0 * $pixels.per.inch)"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="viewport">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
+      <xsl:when test="local-name(.) = 'inlinegraphic'
+                      or ancestor::inlinemediaobject
+                      or ancestor::inlineequation">0</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$make.graphic.viewport"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+<!--
+  <xsl:message>=====================================
+scale: <xsl:value-of select="$scale"/>, <xsl:value-of select="$scalefit"/>
+@contentwidth <xsl:value-of select="@contentwidth"/>
+$contentwidth <xsl:value-of select="$contentwidth"/>
+scaled.contentwidth: <xsl:value-of select="$scaled.contentwidth"/>
+@width: <xsl:value-of select="@width"/>
+width: <xsl:value-of select="$width"/>
+html.width: <xsl:value-of select="$html.width"/>
+@contentdepth <xsl:value-of select="@contentdepth"/>
+$contentdepth <xsl:value-of select="$contentdepth"/>
+scaled.contentdepth: <xsl:value-of select="$scaled.contentdepth"/>
+@depth: <xsl:value-of select="@depth"/>
+depth: <xsl:value-of select="$depth"/>
+html.depth: <xsl:value-of select="$html.depth"/>
+align: <xsl:value-of select="@align"/>
+valign: <xsl:value-of select="@valign"/></xsl:message>
+-->
+
+  <xsl:variable name="scaled"
+              select="@width|@depth|@contentwidth|@contentdepth
+                        |@scale|@scalefit"/>
+
+  <xsl:variable name="img">
+    <xsl:choose>
+      <xsl:when test="@format = 'SVG'">
+        <object type="image/svg+xml">
+	  <xsl:attribute name="data">
+	    <xsl:choose>
+	      <xsl:when test="$img.src.path != '' and
+                           $tag = 'img' and
+			   not(starts-with($output_filename, '/')) and
+			   not(contains($output_filename, '://'))">
+		<xsl:value-of select="$img.src.path"/>
+	      </xsl:when>
+           </xsl:choose>
+	   <xsl:value-of select="$output_filename"/>
+	  </xsl:attribute>
+	  <xsl:call-template name="process.image.attributes">
+            <!--xsl:with-param name="alt" select="$alt"/ there's no alt here-->
+            <xsl:with-param name="html.depth" select="$html.depth"/>
+            <xsl:with-param name="html.width" select="$html.width"/>
+            <xsl:with-param name="longdesc" select="$longdesc"/>
+            <xsl:with-param name="scale" select="$scale"/>
+            <xsl:with-param name="scalefit" select="$scalefit"/>
+            <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
+            <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
+            <xsl:with-param name="viewport" select="$viewport"/>
+          </xsl:call-template>
+          <xsl:if test="@align">
+            <xsl:attribute name="align">
+                <xsl:choose>
+                  <xsl:when test="@align = 'center'">middle</xsl:when>
+                  <xsl:otherwise>
+                    <xsl:value-of select="@align"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:if test="$use.embed.for.svg != 0">
+	    <embed type="image/svg+xml">
+	      <xsl:attribute name="src">
+		<xsl:choose>
+                  <xsl:when test="$img.src.path != '' and
+				  $tag = 'img' and
+				  not(starts-with($output_filename, '/')) and
+				  not(contains($output_filename, '://'))">
+		    <xsl:value-of select="$img.src.path"/>
+                  </xsl:when>
+		</xsl:choose>
+		<xsl:value-of select="$output_filename"/>
+              </xsl:attribute>
+              <xsl:call-template name="process.image.attributes">
+                <!--xsl:with-param name="alt" select="$alt"/ there's no alt here -->
+                <xsl:with-param name="html.depth" select="$html.depth"/>
+                <xsl:with-param name="html.width" select="$html.width"/>
+                <xsl:with-param name="longdesc" select="$longdesc"/>
+                <xsl:with-param name="scale" select="$scale"/>
+                <xsl:with-param name="scalefit" select="$scalefit"/>
+                <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
+                <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
+                <xsl:with-param name="viewport" select="$viewport"/>
+              </xsl:call-template>
+            </embed>
+          </xsl:if>
+        </object>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$tag}">
+         <xsl:if test="$tag = 'img' and ../../self::imageobjectco">
+           <xsl:variable name="mapname">
+             <xsl:call-template name="object.id">
+               <xsl:with-param name="object" select="../../areaspec"/>
+             </xsl:call-template>
+           </xsl:variable>
+           <xsl:choose>
+             <xsl:when test="$scaled">
+              <!-- It might be possible to handle some scaling; needs -->
+              <!-- more investigation -->
+              <xsl:message>
+                <xsl:text>Warning: imagemaps not supported </xsl:text>
+                <xsl:text>on scaled images</xsl:text>
+              </xsl:message>
+             </xsl:when>
+             <xsl:otherwise>
+              <xsl:attribute name="border">0</xsl:attribute>
+              <xsl:attribute name="usemap">
+                <xsl:value-of select="concat('#', $mapname)"/>
+              </xsl:attribute>
+             </xsl:otherwise>
+           </xsl:choose>
+         </xsl:if>
+
+          <xsl:attribute name="src">
+           <xsl:choose>
+             <xsl:when test="$img.src.path != '' and
+                           $tag = 'img' and
+                             not(starts-with($output_filename, '/')) and
+                           not(contains($output_filename, '://'))">
+               <xsl:value-of select="$img.src.path"/>
+             </xsl:when>
+           </xsl:choose>
+            <xsl:value-of select="$output_filename"/>
+          </xsl:attribute>
+
+          <xsl:if test="@align">
+            <xsl:attribute name="align">
+              <xsl:choose>
+                <xsl:when test="@align = 'center'">middle</xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="@align"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+          </xsl:if>
+
+          <xsl:call-template name="process.image.attributes">
+            <xsl:with-param name="alt">
+              <xsl:choose>
+                <xsl:when test="$alt != ''">
+                  <xsl:copy-of select="$alt"/>
+                </xsl:when>
+                <xsl:when test="ancestor::figure">
+                  <xsl:value-of select="normalize-space(ancestor::figure/title)"/>
+                </xsl:when>
+              </xsl:choose>
+            </xsl:with-param>
+            <xsl:with-param name="html.depth" select="$html.depth"/>
+            <xsl:with-param name="html.width" select="$html.width"/>
+            <xsl:with-param name="longdesc" select="$longdesc"/>
+            <xsl:with-param name="scale" select="$scale"/>
+            <xsl:with-param name="scalefit" select="$scalefit"/>
+            <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
+            <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
+            <xsl:with-param name="viewport" select="$viewport"/>
+          </xsl:call-template>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="bgcolor">
+    <xsl:call-template name="pi.dbhtml_background-color">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="use.viewport"
+                select="$viewport != 0
+                        and ($html.width != ''
+                             or ($html.depth != '' and $depth-units != '%')
+                             or $bgcolor != ''
+                             or @valign)"/>
+
+  <xsl:choose>
+    <xsl:when test="$use.viewport">
+      <table border="{$table.border.off}">
+        <xsl:if test="$div.element != 'section'">
+          <xsl:attribute name="summary">manufactured viewport for HTML img</xsl:attribute>
+        </xsl:if>
+        <xsl:if test="$css.decoration != ''">
+          <xsl:attribute name="style">cellpadding: 0; cellspacing: 0;</xsl:attribute>
+        </xsl:if>
+        <xsl:if test="$html.width != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="$html.width"/>
+          </xsl:attribute>
+        </xsl:if>
+        <tr>
+          <xsl:if test="$html.depth != '' and $depth-units != '%'">
+            <!-- don't do this for percentages because browsers get confused -->
+            <xsl:choose>
+              <xsl:when test="$css.decoration != 0">
+                <xsl:attribute name="style">
+                  <xsl:text>height: </xsl:text>
+                  <xsl:value-of select="$html.depth"/>
+                  <xsl:text>px</xsl:text>
+                </xsl:attribute>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:attribute name="height">
+                  <xsl:value-of select="$html.depth"/>
+                </xsl:attribute>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:if>
+          <td>
+            <xsl:if test="$bgcolor != ''">
+              <xsl:choose>
+                <xsl:when test="$css.decoration != 0">
+                  <xsl:attribute name="style">
+                    <xsl:text>background-color: </xsl:text>
+                    <xsl:value-of select="$bgcolor"/>
+                  </xsl:attribute>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:attribute name="bgcolor">
+                    <xsl:value-of select="$bgcolor"/>
+                  </xsl:attribute>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:if>
+            <xsl:if test="@align">
+              <xsl:attribute name="align">
+                <xsl:value-of select="@align"/>
+              </xsl:attribute>
+            </xsl:if>
+            <xsl:if test="@valign">
+              <xsl:attribute name="valign">
+                <xsl:value-of select="@valign"/>
+              </xsl:attribute>
+            </xsl:if>
+            <xsl:copy-of select="$img"/>
+          </td>
+        </tr>
+      </table>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$img"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:if test="$tag = 'img' and ../../self::imageobjectco and not($scaled)">
+    <xsl:variable name="mapname">
+      <xsl:call-template name="object.id">
+        <xsl:with-param name="object" select="../../areaspec"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <map name="{$mapname}">
+      <xsl:for-each select="../../areaspec//area">
+        <xsl:variable name="units">
+          <xsl:choose>
+            <xsl:when test="@units = 'other' and @otherunits">
+              <xsl:value-of select="@otherunits"/>
+            </xsl:when>
+            <xsl:when test="@units">
+              <xsl:value-of select="@units"/>
+            </xsl:when>
+            <!-- areaspec|areaset/area -->
+            <xsl:when test="../@units = 'other' and ../@otherunits">
+              <xsl:value-of select="../@otherunits"/>
+            </xsl:when>
+            <xsl:when test="../@units">
+              <xsl:value-of select="../@units"/>
+            </xsl:when>
+            <!-- areaspec/areaset/area -->
+            <xsl:when test="../../@units = 'other' and ../../@otherunits">
+              <xsl:value-of select="../@otherunits"/>
+            </xsl:when>
+            <xsl:when test="../../@units">
+              <xsl:value-of select="../../@units"/>
+            </xsl:when>
+            <xsl:otherwise>calspair</xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+ 
+        <xsl:choose>
+          <xsl:when test="$units = 'calspair' or
+                          $units = 'imagemap'">
+            <xsl:variable name="coords" select="normalize-space(@coords)"/>
+
+            <area shape="rect">
+              <xsl:variable name="linkends">
+                <xsl:choose>
+                  <xsl:when test="@linkends">
+                    <xsl:value-of select="normalize-space(@linkends)"/>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:value-of select="normalize-space(../@linkends)"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:variable>
+ 
+              <xsl:variable name="href">
+                <xsl:choose>
+                  <xsl:when test="@xlink:href">
+                    <xsl:value-of select="@xlink:href"/>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:value-of select="../@xlink:href"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:variable>
+ 
+              <xsl:choose>
+                <xsl:when test="$linkends != ''">
+                  <xsl:variable name="linkend">
+                    <xsl:choose>
+                      <xsl:when test="contains($linkends, ' ')">
+                        <xsl:value-of select="substring-before($linkends, ' ')"/>
+                      </xsl:when>
+                      <xsl:otherwise>
+                        <xsl:value-of select="$linkends"/>
+                      </xsl:otherwise>
+                    </xsl:choose>
+                  </xsl:variable>
+                  
+                  <xsl:variable name="target" select="key('id', $linkend)[1]"/>
+                 
+                  <xsl:if test="$target">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$target"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                  </xsl:if>
+                </xsl:when>
+                <xsl:when test="$href != ''">
+                  <xsl:attribute name="href">
+                    <xsl:value-of select="$href"/>
+                  </xsl:attribute>
+                </xsl:when>
+              </xsl:choose>
+ 
+              <xsl:if test="alt">
+                <xsl:attribute name="alt">
+                  <xsl:value-of select="alt[1]"/>
+                </xsl:attribute>
+              </xsl:if>
+ 
+              <xsl:attribute name="coords">
+                <xsl:choose>
+                  <xsl:when test="$units = 'calspair'">
+
+                    <xsl:variable name="p1"
+                                select="substring-before($coords, ' ')"/>
+                    <xsl:variable name="p2"
+                                select="substring-after($coords, ' ')"/>
+         
+                    <xsl:variable name="x1" select="substring-before($p1,',')"/>
+                    <xsl:variable name="y1" select="substring-after($p1,',')"/>
+                    <xsl:variable name="x2" select="substring-before($p2,',')"/>
+                    <xsl:variable name="y2" select="substring-after($p2,',')"/>
+         
+                    <xsl:variable name="x1p" select="$x1 div 100.0"/>
+                    <xsl:variable name="y1p" select="$y1 div 100.0"/>
+                    <xsl:variable name="x2p" select="$x2 div 100.0"/>
+                    <xsl:variable name="y2p" select="$y2 div 100.0"/>
+         
+         <!--
+                    <xsl:message>
+                      <xsl:text>units: </xsl:text>
+                      <xsl:value-of select="$units"/>
+                      <xsl:text> </xsl:text>
+                      <xsl:value-of select="$x1p"/><xsl:text>, </xsl:text>
+                      <xsl:value-of select="$y1p"/><xsl:text>, </xsl:text>
+                      <xsl:value-of select="$x2p"/><xsl:text>, </xsl:text>
+                      <xsl:value-of select="$y2p"/><xsl:text>, </xsl:text>
+                    </xsl:message>
+         
+                    <xsl:message>
+                      <xsl:text>      </xsl:text>
+                      <xsl:value-of select="$intrinsicwidth"/>
+                      <xsl:text>, </xsl:text>
+                      <xsl:value-of select="$intrinsicdepth"/>
+                    </xsl:message>
+         
+                    <xsl:message>
+                      <xsl:text>      </xsl:text>
+                      <xsl:value-of select="$units"/>
+                      <xsl:text> </xsl:text>
+                      <xsl:value-of 
+                            select="round($x1p * $intrinsicwidth div 100.0)"/>
+                      <xsl:text>,</xsl:text>
+                      <xsl:value-of select="round($intrinsicdepth
+                                       - ($y2p * $intrinsicdepth div 100.0))"/>
+                      <xsl:text>,</xsl:text>
+                      <xsl:value-of select="round($x2p * 
+                                            $intrinsicwidth div 100.0)"/>
+                      <xsl:text>,</xsl:text>
+                      <xsl:value-of select="round($intrinsicdepth
+                                       - ($y1p * $intrinsicdepth div 100.0))"/>
+                    </xsl:message>
+         -->
+                    <xsl:value-of 
+                             select="round($x1p * $intrinsicwidth div 100.0)"/>
+                    <xsl:text>,</xsl:text>
+                    <xsl:value-of select="round($intrinsicdepth
+                                        - ($y2p * $intrinsicdepth div 100.0))"/>
+                    <xsl:text>,</xsl:text>
+                    <xsl:value-of 
+                             select="round($x2p * $intrinsicwidth div 100.0)"/>
+                    <xsl:text>,</xsl:text>
+                    <xsl:value-of select="round($intrinsicdepth
+                                      - ($y1p * $intrinsicdepth div 100.0))"/>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:copy-of select="$coords"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:attribute>
+            </area>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message>
+              <xsl:text>Warning: only calspair or </xsl:text>
+              <xsl:text>otherunits='imagemap' supported </xsl:text>
+              <xsl:text>in imageobjectco</xsl:text>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:for-each>
+    </map>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.image.attributes">
+  <xsl:param name="alt"/>
+  <xsl:param name="html.width"/>
+  <xsl:param name="html.depth"/>
+  <xsl:param name="longdesc"/>
+  <xsl:param name="scale"/>
+  <xsl:param name="scalefit"/>
+  <xsl:param name="scaled.contentdepth"/>
+  <xsl:param name="scaled.contentwidth"/>
+  <xsl:param name="viewport"/>
+
+  <xsl:choose>
+    <xsl:when test="@contentwidth or @contentdepth">
+      <!-- ignore @width/@depth, @scale, and @scalefit if specified -->
+      <xsl:if test="@contentwidth and $scaled.contentwidth != ''">
+        <xsl:attribute name="width">
+          <xsl:value-of select="$scaled.contentwidth"/>
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:if test="@contentdepth and $scaled.contentdepth != ''">
+        <xsl:attribute name="height">
+          <xsl:value-of select="$scaled.contentdepth"/>
+        </xsl:attribute>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="number($scale) != 1.0">
+      <!-- scaling is always uniform, so we only have to specify one dimension -->
+      <!-- ignore @scalefit if specified -->
+      <xsl:attribute name="width">
+        <xsl:value-of select="$scaled.contentwidth"/>
+      </xsl:attribute>
+    </xsl:when>
+
+    <xsl:when test="$scalefit != 0">
+      <xsl:choose>
+        <xsl:when test="contains($html.width, '%')">
+          <xsl:choose>
+            <xsl:when test="$viewport != 0">
+              <!-- The *viewport* will be scaled, so use 100% here! -->
+              <xsl:attribute name="width">
+                <xsl:value-of select="'100%'"/>
+              </xsl:attribute>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:attribute name="width">
+                <xsl:value-of select="$html.width"/>
+              </xsl:attribute>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+
+        <xsl:when test="contains($html.depth, '%')">
+          <!-- HTML doesn't deal with this case very well...do nothing -->
+        </xsl:when>
+
+        <xsl:when test="$scaled.contentwidth != '' and $html.width != ''
+                        and $scaled.contentdepth != '' and $html.depth != ''">
+          <!-- scalefit should not be anamorphic; figure out which direction -->
+          <!-- has the limiting scale factor and scale in that direction -->
+          <xsl:choose>
+            <xsl:when test="$html.width div $scaled.contentwidth &gt;
+                            $html.depth div $scaled.contentdepth">
+              <xsl:attribute name="height">
+                <xsl:value-of select="$html.depth"/>
+              </xsl:attribute>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:attribute name="width">
+                <xsl:value-of select="$html.width"/>
+              </xsl:attribute>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+
+        <xsl:when test="$scaled.contentwidth != '' and $html.width != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="$html.width"/>
+          </xsl:attribute>
+        </xsl:when>
+
+        <xsl:when test="$scaled.contentdepth != '' and $html.depth != ''">
+          <xsl:attribute name="height">
+            <xsl:value-of select="$html.depth"/>
+          </xsl:attribute>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:if test="$alt != ''">
+    <xsl:attribute name="alt">
+      <xsl:value-of select="normalize-space($alt)"/>
+    </xsl:attribute>
+  </xsl:if>
+
+  <!-- Turn off longdesc attribute since not supported by browsers
+  <xsl:if test="$longdesc != ''">
+    <xsl:attribute name="longdesc">
+      <xsl:value-of select="$longdesc"/>
+    </xsl:attribute>
+  </xsl:if>
+  -->
+
+  <xsl:if test="@align and $viewport = 0">
+    <xsl:attribute name="align">
+      <xsl:choose>
+        <xsl:when test="@align = 'center'">middle</xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="@align"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="graphic">
+  <xsl:choose>
+    <xsl:when test="parent::inlineequation">
+      <span>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:call-template name="anchor"/>
+        <xsl:call-template name="process.image"/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="@align">
+          <xsl:attribute name="align">
+            <xsl:value-of select="@align"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:call-template name="anchor"/>
+        <xsl:call-template name="process.image"/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="inlinegraphic">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="@fileref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:choose>
+    <xsl:when test="@format='linespecific'">
+      <xsl:choose>
+        <xsl:when test="$use.extensions != '0'
+                        and $textinsert.extension != '0'">
+          <xsl:choose>
+            <xsl:when test="element-available('stext:insertfile')">
+              <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/>
+            </xsl:when>
+            <xsl:when test="element-available('xtext:insertfile')">
+              <xtext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message terminate="yes">
+                <xsl:text>No insertfile extension available.</xsl:text>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+	  <xsl:message terminate="yes">
+	    <xsl:text>Cannot insert </xsl:text><xsl:value-of select="$filename"/>
+	    <xsl:text>. Check use.extensions and textinsert.extension parameters.</xsl:text> 
+	  </xsl:message>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process.image"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="mediaobject|mediaobjectco">
+
+  <xsl:variable name="olist" select="imageobject|imageobjectco
+                     |videoobject|audioobject
+                     |textobject"/>
+
+  <xsl:variable name="object.index">
+    <xsl:call-template name="select.mediaobject.index">
+      <xsl:with-param name="olist" select="$olist"/>
+      <xsl:with-param name="count" select="1"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="object" select="$olist[position() = $object.index]"/>
+
+  <xsl:variable name="align">
+    <xsl:value-of select="$object/descendant::imagedata[@align][1]/@align"/>
+  </xsl:variable>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:if test="$align != '' ">
+      <xsl:attribute name="align">
+        <xsl:value-of select="$align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:apply-templates select="$object"/>
+    <xsl:apply-templates select="caption"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="inlinemediaobject">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="select.mediaobject"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="programlisting/inlinemediaobject
+                     |screen/inlinemediaobject" priority="2">
+  <!-- the additional span causes problems in some cases -->
+  <xsl:call-template name="select.mediaobject"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="imageobjectco">
+  <xsl:call-template name="anchor"/>
+  <xsl:choose>
+    <!-- select one imageobject? -->
+    <xsl:when test="$use.role.for.mediaobject != 0 and
+                    count(imageobject) &gt; 1 and
+                    imageobject[@role]">
+      <xsl:variable name="olist" select="imageobject"/>
+    
+      <xsl:variable name="object.index">
+        <xsl:call-template name="select.mediaobject.index">
+          <xsl:with-param name="olist" select="$olist"/>
+          <xsl:with-param name="count" select="1"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:variable name="object" select="$olist[position() = $object.index]"/>
+    
+      <xsl:apply-templates select="$object"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- otherwise process them all -->
+      <xsl:apply-templates select="imageobject"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:apply-templates select="calloutlist"/>
+
+</xsl:template>
+
+<xsl:template match="imageobject">
+  <xsl:apply-templates select="imagedata"/>
+</xsl:template>
+
+<xsl:template match="imagedata">
+  <xsl:variable name="filename">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <!-- Handle MathML and SVG markup in imagedata -->
+    <xsl:when test="mml:*" xmlns:mml="http://www.w3.org/1998/Math/MathML">
+      <xsl:apply-templates/>
+    </xsl:when>
+    
+    <xsl:when test="svg:*" xmlns:svg="http://www.w3.org/2000/svg">
+      <xsl:apply-templates/>
+    </xsl:when>
+
+    <xsl:when test="@format='linespecific'">
+      <xsl:choose>
+        <xsl:when test="$use.extensions != '0'
+                        and $textinsert.extension != '0'">
+          <xsl:choose>
+            <xsl:when test="element-available('stext:insertfile')">
+              <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/>
+            </xsl:when>
+            <xsl:when test="element-available('xtext:insertfile')">
+              <xtext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message terminate="yes">
+                <xsl:text>No insertfile extension available.</xsl:text>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"
+             href="{$filename}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="longdesc.uri">
+        <xsl:call-template name="longdesc.uri">
+          <xsl:with-param name="mediaobject"
+                          select="ancestor::imageobject/parent::*"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="phrases"
+                    select="ancestor::mediaobject/textobject[phrase]
+                            |ancestor::inlinemediaobject/textobject[phrase]
+                            |ancestor::mediaobjectco/textobject[phrase]"/>
+
+      <xsl:call-template name="process.image">
+        <xsl:with-param name="alt">
+          <xsl:apply-templates select="$phrases[not(@role) or @role!='tex'][1]"/>
+        </xsl:with-param>
+        <xsl:with-param name="longdesc">
+          <xsl:call-template name="write.longdesc">
+            <xsl:with-param name="mediaobject"
+                            select="ancestor::imageobject/parent::*"/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+
+      <xsl:if test="$html.longdesc != 0 and $html.longdesc.link != 0
+                    and ancestor::imageobject/parent::*/textobject[not(phrase)]">
+        <xsl:call-template name="longdesc.link">
+          <xsl:with-param name="longdesc.uri" select="$longdesc.uri"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="longdesc.uri">
+  <xsl:param name="mediaobject" select="."/>
+  <xsl:if test="$html.longdesc">
+    <xsl:if test="$mediaobject/textobject[not(phrase)]">
+      <xsl:variable name="dbhtml.dir">
+        <xsl:call-template name="dbhtml-dir"/>
+      </xsl:variable>
+      <xsl:variable name="filename">
+        <xsl:call-template name="make-relative-filename">
+          <xsl:with-param name="base.dir">
+            <xsl:choose>
+              <xsl:when test="$dbhtml.dir != ''">
+                <xsl:value-of select="$dbhtml.dir"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="$chunk.base.dir"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+          <xsl:with-param name="base.name">
+            <xsl:choose>
+              <xsl:when test="
+                $mediaobject/@*[local-name() = 'id']
+                and not($use.id.as.filename = 0)">
+                <!-- * if this mediaobject has an ID, then we use the -->
+                <!-- * value of that ID as basename for the "longdesc" -->
+                <!-- * file (that is, without prepending an "ld-" too it) -->
+                <xsl:value-of select="$mediaobject/@*[local-name() = 'id']"/>
+                <xsl:value-of select="$html.ext"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <!-- * otherwise, if this mediaobject does not have an -->
+                <!-- * ID, then we generate an ID... -->
+                <xsl:variable name="image-id">
+                  <xsl:call-template name="object.id">
+                    <xsl:with-param name="object" select="$mediaobject"/>
+                  </xsl:call-template>
+                </xsl:variable>
+                <!-- * ...and then we take that generated ID, prepend an -->
+                <!-- * "ld-" to it, and use that as the basename for the file -->
+                <xsl:value-of select="concat('ld-',$image-id,$html.ext)"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:value-of select="$filename"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="write.longdesc">
+  <xsl:param name="mediaobject" select="."/>
+  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
+    <xsl:variable name="filename">
+      <xsl:call-template name="longdesc.uri">
+        <xsl:with-param name="mediaobject" select="$mediaobject"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:value-of select="$filename"/>
+
+    <xsl:call-template name="write.chunk">
+      <xsl:with-param name="filename" select="$filename"/>
+      <xsl:with-param name="quiet" select="$chunk.quietly"/>
+      <xsl:with-param name="content">
+      <xsl:call-template name="user.preroot"/>
+        <html>
+          <head>
+            <xsl:call-template name="system.head.content"/>
+            <xsl:call-template name="head.content">
+              <xsl:with-param name="title" select="'Long Description'"/>
+            </xsl:call-template>
+            <xsl:call-template name="user.head.content"/>
+          </head>
+          <body>
+            <xsl:call-template name="body.attributes"/>
+            <xsl:for-each select="$mediaobject/textobject[not(phrase)]">
+              <xsl:apply-templates select="./*"/>
+            </xsl:for-each>
+          </body>
+        </html>
+        <xsl:value-of select="$chunk.append"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="longdesc.link">
+  <xsl:param name="longdesc.uri" select="''"/>
+
+  <xsl:variable name="this.uri">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+      <xsl:with-param name="base.name">
+        <xsl:call-template name="href.target.uri"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="href.to">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$longdesc.uri"/>
+      <xsl:with-param name="uriB" select="$this.uri"/>
+      <xsl:with-param name="return" select="'A'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <div class="longdesc-link" align="{$direction.align.end}">
+    <br clear="all"/>
+    <span class="longdesc-link">
+      <xsl:text>[</xsl:text>
+      <a href="{$href.to}" target="longdesc">D</a>
+      <xsl:text>]</xsl:text>
+    </span>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="videoobject">
+  <xsl:apply-templates select="videodata"/>
+</xsl:template>
+
+<xsl:template match="videodata">
+  <xsl:call-template name="process.image">
+    <xsl:with-param name="tag" select="'embed'"/>
+    <xsl:with-param name="alt">
+      <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="audioobject">
+  <xsl:apply-templates select="audiodata"/>
+</xsl:template>
+
+<xsl:template match="audiodata">
+  <xsl:call-template name="process.image">
+    <xsl:with-param name="tag" select="'embed'"/>
+    <xsl:with-param name="alt">
+      <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="textobject">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="textdata">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="@fileref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="encoding">
+    <xsl:choose>
+      <xsl:when test="@encoding">
+        <xsl:value-of select="@encoding"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$textdata.default.encoding"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$use.extensions != '0'
+                    and $textinsert.extension != '0'">
+      <xsl:choose>
+        <xsl:when test="element-available('stext:insertfile')">
+          <stext:insertfile href="{$filename}" encoding="{$encoding}"/>
+        </xsl:when>
+        <xsl:when test="element-available('xtext:insertfile')">
+          <xtext:insertfile href="{$filename}"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message terminate="yes">
+            <xsl:text>No insertfile extension available.</xsl:text>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+	<xsl:text>Cannot insert </xsl:text><xsl:value-of select="$filename"/>
+	<xsl:text>. Check use.extensions and textinsert.extension parameters.</xsl:text> 
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="caption">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="@align = 'right' or @align = 'left' or @align='center'">
+      <xsl:attribute name="align"><xsl:value-of
+                         select="@align"/></xsl:attribute>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- "Support" for SVG -->
+
+<xsl:template match="svg:*" xmlns:svg="http://www.w3.org/2000/svg">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+
+<!-- The following works sometimes, but needs to take into account
+             1. When there is no /*/@xml:base
+             2. When the chunks are going somewhere else
+<xsl:variable name="relpath">
+  <xsl:call-template name="relative-uri">
+    <xsl:with-param name="filename" select="@fileref"/>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:choose>
+  <xsl:when test="/*/@xml:base
+                  and starts-with($relpath,/*/@xml:base)">
+    <xsl:value-of select="substring-after($relpath,/*/@xml:base)"/>
+  </xsl:when>
+  <xsl:otherwise>
+    <xsl:value-of select="@fileref"/>
+  </xsl:otherwise>
+</xsl:choose>
+<xsl:value-of select="@fileref"/>
+      </xsl:when>
+-->
+<!-- Resolve xml:base attributes -->
+<xsl:template match="@fileref">
+  <!-- need a check for absolute urls -->
+  <xsl:choose>
+    <xsl:when test="contains(., ':')">
+      <!-- it has a uri scheme so it is an absolute uri -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:when test="$keep.relative.image.uris != 0">
+      <!-- leave it alone -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- its a relative uri that needs xml:base processing -->
+      <xsl:call-template name="relative-uri">
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/highlight.xsl b/applications/content/template/docbook/html/highlight.xsl
new file mode 100644
index 0000000..73d456b
--- /dev/null
+++ b/applications/content/template/docbook/html/highlight.xsl
@@ -0,0 +1,86 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xslthl="http://xslthl.sf.net" exclude-result-prefixes="xslthl" version="1.0">
+  <!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     and other information.
+
+     ******************************************************************** -->
+  <xsl:import href="../highlighting/common.xsl"/>
+  <xsl:template match="xslthl:keyword" mode="xslthl">
+    <strong class="hl-keyword">
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:string" mode="xslthl">
+    <strong class="hl-string">
+      <em style="color:red">
+        <xsl:apply-templates mode="xslthl"/>
+      </em>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:comment" mode="xslthl">
+    <em class="hl-comment" style="color: silver">
+      <xsl:apply-templates mode="xslthl"/>
+    </em>
+  </xsl:template>
+  <xsl:template match="xslthl:directive" mode="xslthl">
+    <span class="hl-directive" style="color: maroon">
+      <xsl:apply-templates mode="xslthl"/>
+    </span>
+  </xsl:template>
+  <xsl:template match="xslthl:tag" mode="xslthl">
+    <strong class="hl-tag" style="color: #000096">
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:attribute" mode="xslthl">
+    <span class="hl-attribute" style="color: #F5844C">
+      <xsl:apply-templates mode="xslthl"/>
+    </span>
+  </xsl:template>
+  <xsl:template match="xslthl:value" mode="xslthl">
+    <span class="hl-value" style="color: #993300">
+      <xsl:apply-templates mode="xslthl"/>
+    </span>
+  </xsl:template>
+  <xsl:template match="xslthl:html" mode="xslthl">
+    <strong>
+      <em style="color: red">
+        <xsl:apply-templates mode="xslthl"/>
+      </em>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:xslt" mode="xslthl">
+    <strong style="color: #0066FF">
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+  <!-- Not emitted since XSLTHL 2.0 -->
+  <xsl:template match="xslthl:section" mode="xslthl">
+    <strong>
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:number" mode="xslthl">
+    <span class="hl-number">
+      <xsl:apply-templates mode="xslthl"/>
+    </span>
+  </xsl:template>
+  <xsl:template match="xslthl:annotation" mode="xslthl">
+    <em>
+      <span class="hl-annotation" style="color: gray">
+        <xsl:apply-templates mode="xslthl"/>
+      </span>
+    </em>
+  </xsl:template>
+  <!-- Not sure which element will be in final XSLTHL 2.0 -->
+  <xsl:template match="xslthl:doccomment|xslthl:doctype" mode="xslthl">
+    <strong class="hl-tag" style="color: blue">
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/html-rtf.xsl b/applications/content/template/docbook/html/html-rtf.xsl
new file mode 100644
index 0000000..bd53d96
--- /dev/null
+++ b/applications/content/template/docbook/html/html-rtf.xsl
@@ -0,0 +1,336 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:set="http://exslt.org/sets"
+                exclude-result-prefixes="exsl set"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This module contains templates that match against HTML nodes. It is used
+     to post-process result tree fragments for some sorts of cleanup.
+     These templates can only ever be fired by a processor that supports
+     exslt:node-set(). -->
+
+<!-- ==================================================================== -->
+
+<!-- insert.html.p mode templates insert a particular RTF at the beginning
+     of the first paragraph in the primary RTF. -->
+
+<xsl:template match="/" mode="insert.html.p">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:apply-templates mode="insert.html.p">
+    <xsl:with-param name="mark" select="$mark"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.html.p">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="insert.html.p">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml"
+              match="html:p|p" mode="insert.html.p">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:if test="not(preceding::p|preceding::html:p)">
+      <xsl:copy-of select="$mark"/>
+    </xsl:if>
+    <xsl:apply-templates mode="insert.html.p">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="insert.html.p">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- insert.html.text mode templates insert a particular RTF at the beginning
+     of the first text-node in the primary RTF. -->
+
+<xsl:template match="/" mode="insert.html.text">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:apply-templates mode="insert.html.text">
+    <xsl:with-param name="mark" select="$mark"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.html.text">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="insert.html.text">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="insert.html.text">
+  <xsl:param name="mark" select="'?'"/>
+
+  <xsl:if test="not(preceding::text())">
+    <xsl:copy-of select="$mark"/>
+  </xsl:if>
+
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="processing-instruction()|comment()" mode="insert.html.text">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- unwrap.p mode templates remove blocks from HTML p elements (and
+     other places where blocks aren't allowed) -->
+
+<xsl:template name="unwrap.p">
+  <xsl:param name="p"/>
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0
+                    and function-available('set:leading')
+                    and function-available('set:trailing')">
+      <xsl:apply-templates select="exsl:node-set($p)" mode="unwrap.p"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$p"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml"
+              match="html:p|p" mode="unwrap.p">
+  <!-- xmlns:html is necessary for the xhtml stylesheet case -->
+  <xsl:variable name="blocks" xmlns:html="http://www.w3.org/1999/xhtml"
+                select="address|blockquote|div|hr|h1|h2|h3|h4|h5|h6
+                        |layer|p|pre|table|dl|menu|ol|ul|form
+                        |html:address|html:blockquote|html:div|html:hr
+                        |html:h1|html:h2|html:h3|html:h4|html:h5|html:h6
+                        |html:layer|html:p|html:pre|html:table|html:dl
+                        |html:menu|html:ol|html:ul|html:form"/>
+  <xsl:choose>
+    <xsl:when test="$blocks">
+      <xsl:call-template name="unwrap.p.nodes">
+        <xsl:with-param name="wrap" select="."/>
+        <xsl:with-param name="first" select="1"/>
+        <xsl:with-param name="nodes" select="node()"/>
+        <xsl:with-param name="blocks" select="$blocks"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy>
+        <xsl:copy-of select="@*"/>
+        <xsl:apply-templates mode="unwrap.p"/>
+      </xsl:copy>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="unwrap.p">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="unwrap.p"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="unwrap.p">
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template name="unwrap.p.nodes">
+  <xsl:param name="wrap" select="."/>
+  <xsl:param name="first" select="0"/>
+  <xsl:param name="nodes"/>
+  <xsl:param name="blocks"/>
+  <xsl:variable name="block" select="$blocks[1]"/>
+
+  <!-- This template should never get called if these functions aren't available -->
+  <!-- but this test is still necessary so that processors don't choke on the -->
+  <!-- function calls if they don't support the set: functions -->
+  <xsl:if test="function-available('set:leading')
+                and function-available('set:trailing')">
+    <xsl:choose>
+      <xsl:when test="$blocks">
+        <xsl:variable name="leading" select="set:leading($nodes,$block)"/>
+        <xsl:variable name="trailing" select="set:trailing($nodes,$block)"/>
+
+        <xsl:if test="(($wrap/@id or $wrap/@xml:id) 
+                        and $first = 1) or $leading">
+          <xsl:element name="{local-name($wrap)}" namespace="{namespace-uri($wrap)}">
+            <xsl:for-each select="$wrap/@*">
+              <xsl:if test="$first != 0 or local-name(.) != 'id'">
+                <xsl:copy/>
+              </xsl:if>
+            </xsl:for-each>
+            <xsl:apply-templates select="$leading" mode="unwrap.p"/>
+          </xsl:element>
+        </xsl:if>
+
+        <xsl:apply-templates select="$block" mode="unwrap.p"/>
+
+        <xsl:if test="$trailing">
+          <xsl:call-template name="unwrap.p.nodes">
+            <xsl:with-param name="wrap" select="$wrap"/>
+            <xsl:with-param name="nodes" select="$trailing"/>
+            <xsl:with-param name="blocks" select="$blocks[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <xsl:if test="(($wrap/@id or $wrap/@xml:id) and $first = 1) or $nodes">
+          <xsl:element name="{local-name($wrap)}" namespace="{namespace-uri($wrap)}">
+            <xsl:for-each select="$wrap/@*">
+              <xsl:if test="$first != 0 or local-name(.) != 'id'">
+                <xsl:copy/>
+              </xsl:if>
+            </xsl:for-each>
+            <xsl:apply-templates select="$nodes" mode="unwrap.p"/>
+          </xsl:element>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- make.verbatim.mode replaces spaces and newlines -->
+
+<xsl:template match="/" mode="make.verbatim.mode">
+  <xsl:apply-templates mode="make.verbatim.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="make.verbatim.mode">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="make.verbatim.mode"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="processing-instruction()|comment()" mode="make.verbatim.mode">
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="text()" mode="make.verbatim.mode">
+  <xsl:variable name="text" select="translate(., ' ', '&#160;')"/>
+
+  <xsl:choose>
+    <xsl:when test="not(contains($text, '&#xA;'))">
+      <xsl:value-of select="$text"/>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:variable name="len" select="string-length($text)"/>
+
+      <xsl:choose>
+        <xsl:when test="$len = 1">
+          <br/><xsl:text>&#xA;</xsl:text>
+        </xsl:when>
+
+        <xsl:otherwise>
+          <xsl:variable name="half" select="$len div 2"/>
+          <xsl:call-template name="make-verbatim-recursive">
+            <xsl:with-param name="text" select="substring($text, 1, $half)"/>
+          </xsl:call-template>
+          <xsl:call-template name="make-verbatim-recursive">
+            <xsl:with-param name="text"
+                            select="substring($text, ($half + 1), $len)"/>
+          </xsl:call-template>
+    	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="make-verbatim-recursive">
+  <xsl:param name="text" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="not(contains($text, '&#xA;'))">
+      <xsl:value-of select="$text"/>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:variable name="len" select="string-length($text)"/>
+
+      <xsl:choose>
+        <xsl:when test="$len = 1">
+          <br/><xsl:text>&#xA;</xsl:text>
+        </xsl:when>
+
+        <xsl:otherwise>
+    	  <xsl:variable name="half" select="$len div 2"/>
+          <xsl:call-template name="make-verbatim-recursive">
+    	    <xsl:with-param name="text" select="substring($text, 1, $half)"/>
+    	  </xsl:call-template>
+    	  <xsl:call-template name="make-verbatim-recursive">
+    	    <xsl:with-param name="text"
+    			    select="substring($text, ($half + 1), $len)"/>
+    	  </xsl:call-template>
+    	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- remove.empty.div mode templates remove empty blocks -->
+
+<xsl:template name="remove.empty.div">
+  <xsl:param name="div"/>
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:apply-templates select="exsl:node-set($div)" mode="remove.empty.div"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$div"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml"
+              match="html:p|p|html:div|div" mode="remove.empty.div">
+  <xsl:if test="node()">
+    <xsl:copy>
+      <xsl:copy-of select="@*"/>
+      <xsl:apply-templates mode="remove.empty.div"/>
+    </xsl:copy>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="*" mode="remove.empty.div">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="remove.empty.div"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="remove.empty.div">
+  <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/html.xsl b/applications/content/template/docbook/html/html.xsl
new file mode 100644
index 0000000..54a9404
--- /dev/null
+++ b/applications/content/template/docbook/html/html.xsl
@@ -0,0 +1,698 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- These variables set the align attribute value for HTML output based on
+     the writing-mode specified in the gentext file for the document's lang. -->
+
+<xsl:variable name="direction.align.start">
+  <xsl:choose>
+    <xsl:when test="starts-with($writing.mode, 'lr')">left</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'rl')">right</xsl:when>
+    <xsl:otherwise>left</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<xsl:variable name="direction.align.end">
+  <xsl:choose>
+    <xsl:when test="starts-with($writing.mode, 'lr')">right</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'rl')">left</xsl:when>
+    <xsl:otherwise>right</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<xsl:variable name="direction.mode">
+  <xsl:choose>
+    <xsl:when test="starts-with($writing.mode, 'lr')">ltr</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'rl')">rtl</xsl:when>
+    <xsl:otherwise>ltr</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<!-- Support switching to <section> for HTML5 stylesheet -->
+<!-- This is an internal variable that does not need to be set by a user -->
+<xsl:variable name="div.element">div</xsl:variable>
+<!-- Support turning off table  border with border="" for HTML5 -->
+<xsl:variable name="table.border.off">0</xsl:variable>
+
+<!-- The generate.html.title template is currently used for generating HTML -->
+<!-- "title" attributes for some inline elements only, but not for any -->
+<!-- block elements. It is called in eleven places in the inline.xsl -->
+<!-- file. But it's called by all the inline.* templates (e.g., -->
+<!-- inline.boldseq), which in turn are called by other (element) -->
+<!-- templates, so it results, currently, in supporting generation of the -->
+<!-- HTML "title" attribute for a total of about 92 elements. -->
+<!-- You can use mode="html.title.attribute" to get a title for -->
+<!-- an element specified by a param, including targets of cross references. -->
+<xsl:template name="generate.html.title">
+  <xsl:apply-templates select="." mode="html.title.attribute"/>
+</xsl:template>
+
+<xsl:template match="acronym|abbrev" mode="html.title.attribute">
+  <xsl:if test="alt">
+    <xsl:attribute name="title">
+      <xsl:value-of select="normalize-space(alt)"/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<!-- Generate a title attribute for the context node -->
+<!-- This may be the target of an xref -->
+<xsl:template match="*" mode="html.title.attribute">
+  <xsl:variable name="is.title">
+    <xsl:call-template name="gentext.template.exists">
+      <xsl:with-param name="context" select="'title'"/>
+      <xsl:with-param name="name" select="local-name(.)"/>
+      <xsl:with-param name="lang">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="is.title-numbered">
+    <xsl:call-template name="gentext.template.exists">
+      <xsl:with-param name="context" select="'title-numbered'"/>
+      <xsl:with-param name="name" select="local-name(.)"/>
+      <xsl:with-param name="lang">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="is.title-unnumbered">
+    <xsl:call-template name="gentext.template.exists">
+      <xsl:with-param name="context" select="'title-unnumbered'"/>
+      <xsl:with-param name="name" select="local-name(.)"/>
+      <xsl:with-param name="lang">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="has.title.markup">
+    <xsl:apply-templates select="." mode="title.markup">
+      <xsl:with-param name="verbose" select="0"/>
+    </xsl:apply-templates>
+  </xsl:variable>
+
+  <xsl:variable name="gentext.title">
+    <xsl:if test="$has.title.markup != '???TITLE???' and
+                  ($is.title != 0 or
+                  $is.title-numbered != 0 or
+                  $is.title-unnumbered != 0)">
+      <xsl:apply-templates select="."
+                           mode="object.title.markup.textonly"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string-length($gentext.title) != 0">
+      <xsl:attribute name="title">
+        <xsl:value-of select="$gentext.title"/>
+      </xsl:attribute>
+    </xsl:when>
+    <!-- Fall back to alt if available -->
+    <xsl:when test="alt">
+      <xsl:attribute name="title">
+        <xsl:value-of select="normalize-space(alt)"/>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="html.title.attribute">
+  <xsl:apply-templates select="question" mode="html.title.attribute"/>
+</xsl:template>
+
+<xsl:template match="question" mode="html.title.attribute">
+  <xsl:variable name="label.text">
+    <xsl:apply-templates select="." mode="qanda.label"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string-length($label.text) != 0">
+      <xsl:attribute name="title">
+        <xsl:value-of select="$label.text"/>
+      </xsl:attribute>
+    </xsl:when>
+    <!-- Fall back to alt if available -->
+    <xsl:when test="alt">
+      <xsl:attribute name="title">
+        <xsl:value-of select="normalize-space(alt)"/>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="dir">
+  <xsl:param name="inherit" select="0"/>
+
+  <xsl:variable name="dir">
+    <xsl:choose>
+      <xsl:when test="@dir">
+        <xsl:value-of select="@dir"/>
+      </xsl:when>
+      <xsl:when test="$inherit != 0">
+        <xsl:value-of select="ancestor::*/@dir[1]"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="$dir != ''">
+    <xsl:attribute name="dir">
+      <xsl:value-of select="$dir"/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="anchor">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="conditional" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$generate.id.attributes != 0">
+      <!-- No named anchors output when this param is set -->
+    </xsl:when>
+    <xsl:when test="$conditional = 0 or $node/@id or $node/@xml:id">
+      <a>
+        <xsl:attribute name="name">
+          <xsl:call-template name="object.id">
+            <xsl:with-param name="object" select="$node"/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </a>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="id.attribute">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="conditional" select="1"/>
+  <xsl:choose>
+    <xsl:when test="$generate.id.attributes = 0">
+      <!-- No id attributes when this param is zero -->
+    </xsl:when>
+    <xsl:when test="$conditional = 0 or $node/@id or $node/@xml:id">
+      <xsl:attribute name="id">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$node"/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="href.target.uri">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="href.target">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="href.target.with.base.dir">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="object" select="."/>
+  <xsl:if test="$manifest.in.base.dir = 0">
+    <xsl:value-of select="$chunk.base.dir"/>
+  </xsl:if>
+  <xsl:call-template name="href.target">
+    <xsl:with-param name="context" select="$context"/>
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="dingbat">
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:call-template name="dingbat.characters">
+    <xsl:with-param name="dingbat" select="$dingbat"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="dingbat.characters">
+  <!-- now that I'm using the real serializer, all that dingbat malarky -->
+  <!-- isn't necessary anymore... -->
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:choose>
+    <xsl:when test="$dingbat='bullet'">&#x2022;</xsl:when>
+    <xsl:when test="$dingbat='copyright'">&#x00A9;</xsl:when>
+    <xsl:when test="$dingbat='trademark'">&#x2122;</xsl:when>
+    <xsl:when test="$dingbat='trade'">&#x2122;</xsl:when>
+    <xsl:when test="$dingbat='registered'">&#x00AE;</xsl:when>
+    <xsl:when test="$dingbat='service'">(SM)</xsl:when>
+    <xsl:when test="$dingbat='nbsp'">&#x00A0;</xsl:when>
+    <xsl:when test="$dingbat='ldquo'">&#x201C;</xsl:when>
+    <xsl:when test="$dingbat='rdquo'">&#x201D;</xsl:when>
+    <xsl:when test="$dingbat='lsquo'">&#x2018;</xsl:when>
+    <xsl:when test="$dingbat='rsquo'">&#x2019;</xsl:when>
+    <xsl:when test="$dingbat='em-dash'">&#x2014;</xsl:when>
+    <xsl:when test="$dingbat='mdash'">&#x2014;</xsl:when>
+    <xsl:when test="$dingbat='en-dash'">&#x2013;</xsl:when>
+    <xsl:when test="$dingbat='ndash'">&#x2013;</xsl:when>
+    <xsl:otherwise>
+      <xsl:text>&#x2022;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="id.warning">
+  <xsl:if test="$id.warnings != 0 and not(@id) and not(@xml:id) and parent::*">
+    <xsl:variable name="title">
+      <xsl:choose>
+        <xsl:when test="title">
+          <xsl:value-of select="title[1]"/>
+        </xsl:when>
+        <xsl:when test="substring(local-name(*[1]),
+                                  string-length(local-name(*[1])-3) = 'info')
+                        and *[1]/title">
+          <xsl:value-of select="*[1]/title[1]"/>
+        </xsl:when>
+        <xsl:when test="refmeta/refentrytitle">
+          <xsl:value-of select="refmeta/refentrytitle"/>
+        </xsl:when>
+        <xsl:when test="refnamediv/refname">
+          <xsl:value-of select="refnamediv/refname[1]"/>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:message>
+      <xsl:text>ID recommended on </xsl:text>
+      <xsl:value-of select="local-name(.)"/>
+      <xsl:if test="$title != ''">
+        <xsl:text>: </xsl:text>
+        <xsl:choose>
+          <xsl:when test="string-length($title) &gt; 40">
+            <xsl:value-of select="substring($title,1,40)"/>
+            <xsl:text>...</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$title"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:message>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.class.attribute">
+  <xsl:param name="class" select="local-name(.)"/>
+  <xsl:apply-templates select="." mode="class.attribute">
+    <xsl:with-param name="class" select="$class"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="class.attribute">
+  <xsl:param name="class" select="local-name(.)"/>
+  <!-- permit customization of class attributes -->
+  <!-- Use element name by default -->
+  <xsl:variable name="class.value">
+    <xsl:apply-templates select="." mode="class.value">
+      <xsl:with-param name="class" select="$class"/>
+    </xsl:apply-templates>
+  </xsl:variable>
+
+  <xsl:if test="string-length(normalize-space($class.value)) != 0">
+    <xsl:attribute name="class">
+      <xsl:value-of select="$class.value"/>
+    </xsl:attribute>
+  </xsl:if> 
+</xsl:template>
+
+<xsl:template match="*" mode="class.value">
+  <xsl:param name="class" select="local-name(.)"/>
+  <!-- permit customization of class value only -->
+  <!-- Use element name by default -->
+  <xsl:value-of select="$class"/>
+</xsl:template>
+
+<!-- Apply common attributes such as class, lang, dir -->
+<xsl:template name="common.html.attributes">
+  <xsl:param name="inherit" select="0"/>
+  <xsl:param name="class" select="local-name(.)"/>
+  <xsl:apply-templates select="." mode="common.html.attributes">
+    <xsl:with-param name="class" select="$class"/>
+    <xsl:with-param name="inherit" select="$inherit"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="common.html.attributes">
+  <xsl:param name="class" select="local-name(.)"/>
+  <xsl:param name="inherit" select="0"/>
+  <xsl:call-template name="generate.html.lang"/>
+  <xsl:call-template name="dir">
+    <xsl:with-param name="inherit" select="$inherit"/>
+  </xsl:call-template>
+  <xsl:apply-templates select="." mode="class.attribute">
+    <xsl:with-param name="class" select="$class"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Apply common attributes not including class -->
+<xsl:template name="locale.html.attributes">
+  <xsl:apply-templates select="." mode="locale.html.attributes"/>
+</xsl:template>
+
+<xsl:template match="*" mode="locale.html.attributes">
+  <xsl:call-template name="generate.html.lang"/>
+  <xsl:call-template name="dir"/>
+</xsl:template>
+
+<!-- Pass through any lang attributes -->
+<xsl:template name="generate.html.lang">
+  <xsl:apply-templates select="." mode="html.lang.attribute"/>
+</xsl:template>
+
+<xsl:template match="*" mode="html.lang.attribute">
+  <!-- match the attribute name to the output type -->
+  <xsl:choose>
+    <xsl:when test="@lang and $stylesheet.result.type = 'html'">
+      <xsl:attribute name="lang">
+        <xsl:value-of select="@lang"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="@lang and $stylesheet.result.type = 'xhtml'">
+      <xsl:attribute name="xml:lang">
+        <xsl:value-of select="@lang"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="@xml:lang and $stylesheet.result.type = 'html'">
+      <xsl:attribute name="lang">
+        <xsl:value-of select="@xml:lang"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="@xml:lang and $stylesheet.result.type = 'xhtml'">
+      <xsl:attribute name="xml:lang">
+        <xsl:value-of select="@xml:lang"/>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Insert link to css or insert literal CSS in head element -->
+<xsl:template name="generate.css">
+  <xsl:choose>
+    <xsl:when test="$generate.css.header = 0">
+      <xsl:call-template name="generate.css.links"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="generate.css.headers"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.css.headers">
+  <xsl:call-template name="generate.default.css.header"/>
+  <xsl:call-template name="generate.custom.css.header"/>
+</xsl:template>
+
+<xsl:template name="generate.default.css.header">
+  <xsl:if test="$make.clean.html != 0 and 
+                $docbook.css.source != ''">
+    <!-- Select default file relative to stylesheet -->
+    <xsl:variable name="css.node" select="document($docbook.css.source)/*[1]"/>
+
+    <xsl:call-template name="output.css.header">
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.custom.css.header">
+  <xsl:if test="$custom.css.source != ''">
+    <!-- Select custom file relative to document -->
+    <xsl:variable name="css.node" select="document($custom.css.source,.)/*[1]"/>
+
+    <xsl:call-template name="output.css.header">
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="output.css.header">
+  <xsl:param name="css.node"/> 
+
+  <xsl:choose>
+    <xsl:when test="count($css.node) = 0">
+    </xsl:when>
+    <xsl:otherwise>
+      <style type="text/css">
+        <xsl:copy-of select="$css.node/text()"/>
+      </style>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="generate.css.links">
+  <xsl:call-template name="generate.default.css.link"/>
+  <xsl:call-template name="generate.custom.css.link"/>
+</xsl:template>
+
+<xsl:template name="generate.default.css.link">
+  <xsl:if test="$make.clean.html != 0 and 
+                $docbook.css.link != 0 and
+                $docbook.css.source != ''">
+    <xsl:variable name="filename">
+      <xsl:call-template name="css.output.filename">
+        <xsl:with-param name="src" select="$docbook.css.source"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.css.link">
+      <xsl:with-param name="css.filename" select="$filename"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.custom.css.link">
+  <xsl:if test="$custom.css.source != ''">
+    <xsl:variable name="filename">
+      <xsl:call-template name="css.output.filename">
+        <xsl:with-param name="src" select="$custom.css.source"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.css.link">
+      <xsl:with-param name="css.filename" select="$filename"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- a CSS link reference must take into account the relative
+     path to a CSS file when chunked HTML is output to more than one directory -->
+<xsl:template name="make.css.link">
+  <xsl:param name="css.filename" select="''"/>
+
+  <xsl:variable name="href">
+    <xsl:call-template name="relative.path.link">
+      <xsl:with-param name="target.pathname" select="$css.filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="string-length($css.filename) != 0">
+    <link rel="stylesheet" 
+          type="text/css"
+          href="{$href}"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- And the same applies to script links -->
+<xsl:template name="make.script.link">
+  <xsl:param name="script.filename" select="''"/>
+
+  <xsl:variable name="src">
+    <xsl:call-template name="relative.path.link">
+      <xsl:with-param name="target.pathname" select="$script.filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="string-length($script.filename) != 0">
+    <script>
+      <xsl:attribute name="src">
+        <xsl:value-of select="$src"/>
+      </xsl:attribute>
+      <xsl:attribute name="type">
+        <xsl:value-of select="$html.script.type"/>
+      </xsl:attribute>
+      <xsl:call-template name="other.script.attributes">
+        <xsl:with-param name="script.filename" select="$script.filename"/>
+      </xsl:call-template>
+    </script>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="other.script.attributes">
+  <xsl:param name="script.filename"/>
+  <!-- Placeholder template to allow customization to 
+       insert additional script element attributes if needed -->
+</xsl:template>
+
+<xsl:template name="relative.path.link">
+  <xsl:param name="target.pathname"/>
+  
+  <xsl:variable name="href.to.uri" select="$target.pathname"/>
+
+  <xsl:variable name="href.from.uri">
+    <xsl:call-template name="href.target.uri">
+      <xsl:with-param name="object" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="href.to">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$href.to.uri"/>
+      <xsl:with-param name="uriB" select="$href.from.uri"/>
+      <xsl:with-param name="return" select="'A'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="href.from">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$href.to.uri"/>
+      <xsl:with-param name="uriB" select="$href.from.uri"/>
+      <xsl:with-param name="return" select="'B'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="depth">
+    <xsl:call-template name="count.uri.path.depth">
+      <xsl:with-param name="filename" select="$href.from"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:call-template name="copy-string">
+      <xsl:with-param name="string" select="'../'"/>
+      <xsl:with-param name="count" select="$depth"/>
+    </xsl:call-template>
+    <xsl:value-of select="$href.to"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$href"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="generate.css.files">
+  <xsl:call-template name="generate.default.css.file"/>
+  <xsl:call-template name="generate.custom.css.file"/>
+</xsl:template>
+
+<xsl:template name="generate.default.css.file">
+  <xsl:if test="$make.clean.html != 0 and 
+                $generate.css.header = 0 and
+                $docbook.css.source != ''">
+    <!-- Select default file relative to stylesheet -->
+    <xsl:variable name="css.node" select="document($docbook.css.source)/*[1]"/>
+
+    <xsl:call-template name="generate.css.file">
+      <xsl:with-param name="src" select="$docbook.css.source"/>
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.custom.css.file">
+  <xsl:if test="$custom.css.source != '' and
+                $generate.css.header = 0">
+    <!-- Select custom file relative to document -->
+    <xsl:variable name="css.node" select="document($custom.css.source,.)/*[1]"/>
+
+    <xsl:call-template name="generate.css.file">
+      <xsl:with-param name="src" select="$custom.css.source"/>
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.css.file">
+  <xsl:param name="css.node"/> 
+  <xsl:param name="src" select="''"/> 
+
+  <xsl:variable name="css.text" select="$css.node/text()"/>
+
+  <xsl:choose>
+    <xsl:when test="count($css.node) = 0">
+      <xsl:message>
+        <xsl:text>ERROR: no root element for CSS source file'</xsl:text>
+        <xsl:value-of select="$src"/>
+        <xsl:text>'.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="filename">
+        <xsl:call-template name="css.output.pathname">
+          <xsl:with-param name="src" select="$src"/>
+          <xsl:with-param name="content" select="$css.node"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:call-template name="write.text.chunk">
+        <xsl:with-param name="filename" select="$filename"/>
+        <xsl:with-param name="content" select="$css.text"/>
+      </xsl:call-template>
+
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="css.output.filename">
+  <xsl:param name="content"/>
+  <xsl:param name="src" select="''"/>
+  
+  <xsl:variable name="candidate">
+    <xsl:choose>
+      <xsl:when test="string-length($src) = 0">
+        <xsl:message>
+          <xsl:text>ERROR: missing CSS input filename.</xsl:text>
+        </xsl:message>
+      </xsl:when>
+      <xsl:when test="substring($src,string-length($src)-3) = '.xml'">
+        <xsl:value-of select="substring($src, 1, string-length($src) - 4)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$src"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:value-of select="$candidate"/>
+</xsl:template>
+
+<xsl:template name="css.output.pathname">
+  <xsl:param name="content"/>
+  <xsl:param name="src" select="''"/>
+
+  <xsl:variable name="file">
+    <xsl:call-template name="css.output.filename">
+      <xsl:with-param name="content" select="$content"/>
+      <xsl:with-param name="src" select="$src"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="path" select="concat($chunk.base.dir, $file)"/>
+  <xsl:value-of select="$path"/>
+  
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/html/htmltbl.xsl b/applications/content/template/docbook/html/htmltbl.xsl
new file mode 100644
index 0000000..606dc8b
--- /dev/null
+++ b/applications/content/template/docbook/html/htmltbl.xsl
@@ -0,0 +1,136 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="table" mode="htmlTable">
+  <xsl:element name="table" namespace="">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+    <xsl:attribute name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:attribute>
+    <xsl:call-template name="htmlTable"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="colgroup" mode="htmlTable">
+  <xsl:element name="{local-name()}" namespace="">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+    <xsl:apply-templates mode="htmlTable"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="col" mode="htmlTable">
+  <xsl:element name="{local-name()}" namespace="">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+  </xsl:element>
+</xsl:template>
+
+<!-- Handled by formal.object.title template -->
+<xsl:template match="caption" mode="htmlTable"/>
+
+<xsl:template match="tbody|thead|tfoot|tr" mode="htmlTable">
+  <xsl:element name="{local-name(.)}">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+    <xsl:apply-templates mode="htmlTable"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="th|td" mode="htmlTable">
+  <xsl:element name="{local-name(.)}">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+    <xsl:apply-templates/> <!-- *not* mode=htmlTable -->
+  </xsl:element>
+</xsl:template>
+
+<!-- don't copy through DocBook-specific attributes on HTML table markup -->
+<!-- default behavior is to not copy through because there are more
+     DocBook attributes than HTML attributes -->
+<xsl:template mode="htmlTableAtt" match="@*"/>
+
+<!-- copy these through -->
+<xsl:template mode="htmlTableAtt"
+              match="@abbr
+                   | @align
+                   | @axis
+                   | @bgcolor
+                   | @border
+                   | @cellpadding
+                   | @cellspacing
+                   | @char
+                   | @charoff
+                   | @class
+                   | @dir
+                   | @frame
+                   | @headers
+                   | @height
+                   | @lang
+                   | @nowrap
+                   | @onclick
+                   | @ondblclick
+                   | @onkeydown
+                   | @onkeypress
+                   | @onkeyup
+                   | @onmousedown
+                   | @onmousemove
+                   | @onmouseout
+                   | @onmouseover
+                   | @onmouseup
+                   | @rules
+                   | @style
+                   | @summary
+                   | @title
+                   | @valign
+                   | @valign
+                   | @width
+                   | @xml:lang">
+  <xsl:copy-of select="."/>
+</xsl:template>
+
+<xsl:template match="@span|@rowspan|@colspan" mode="htmlTableAtt">
+  <!-- No need to copy through the DTD's default value "1" of the attribute -->
+  <xsl:if test="number(.) != 1">
+    <xsl:attribute name="{local-name(.)}">
+      <xsl:value-of select="."/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<!-- map floatstyle to HTML float values -->
+<xsl:template match="@floatstyle" mode="htmlTableAtt">
+  <xsl:attribute name="style">
+    <xsl:text>float: </xsl:text>
+    <xsl:choose>
+      <xsl:when test="contains(., 'left')">left</xsl:when>
+      <xsl:when test="contains(., 'right')">right</xsl:when>
+      <xsl:when test="contains(., 'start')">
+        <xsl:value-of select="$direction.align.start"/>
+      </xsl:when>
+      <xsl:when test="contains(., 'end')">
+        <xsl:value-of select="$direction.align.end"/>
+      </xsl:when>
+      <xsl:when test="contains(., 'inside')">
+        <xsl:value-of select="$direction.align.start"/>
+      </xsl:when>
+      <xsl:when test="contains(., 'outside')">
+        <xsl:value-of select="$direction.align.end"/>
+      </xsl:when>
+      <xsl:when test="contains(., 'before')">none</xsl:when>
+      <xsl:when test="contains(., 'none')">none</xsl:when>
+    </xsl:choose>
+    <xsl:text>;</xsl:text>
+  </xsl:attribute>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/index.xsl b/applications/content/template/docbook/html/index.xsl
new file mode 100644
index 0000000..7dbea50
--- /dev/null
+++ b/applications/content/template/docbook/html/index.xsl
@@ -0,0 +1,279 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. Unless generate.index -->
+  <!-- is non-zero, in which case, this is where the automatically -->
+  <!-- generated index should go. -->
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:if test="count(*)>0 or $generate.index != '0'">
+    <div>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="index.titlepage"/>
+      <xsl:choose>
+	<xsl:when test="indexdiv">
+	  <xsl:apply-templates/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:apply-templates select="*[not(self::indexentry)]"/>
+	  <!-- Because it's actually valid for Index to have neither any -->
+	  <!-- Indexdivs nor any Indexentries, we need to check and make -->
+	  <!-- sure that at least one Indexentry exists, and generate a -->
+	  <!-- wrapper dl if there is at least one; otherwise, do nothing. -->
+	  <xsl:if test="indexentry">
+	    <!-- The indexentry template assumes a parent dl wrapper has -->
+	    <!-- been generated; for Indexes that have Indexdivs, the dl -->
+	    <!-- wrapper is generated by the indexdiv template; however, -->
+	    <!-- for Indexes that lack Indexdivs, if we don't generate a -->
+	    <!-- dl here, HTML output will not be valid. -->
+	    <dl>
+	      <xsl:apply-templates select="indexentry"/>
+	    </dl>
+	  </xsl:if>
+	</xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+        <xsl:call-template name="generate-index">
+          <xsl:with-param name="scope" select="(ancestor::book|/)[last()]"/>
+        </xsl:call-template>
+      </xsl:if>
+
+      <xsl:if test="not(parent::article)">
+        <xsl:call-template name="process.footnotes"/>
+      </xsl:if>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="setindex">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. Unless generate.index -->
+  <!-- is non-zero, in which case, this is where the automatically -->
+  <!-- generated index should go. -->
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:if test="count(*)>0 or $generate.index != '0'">
+    <div>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="setindex.titlepage"/>
+      <xsl:apply-templates/>
+
+      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+        <xsl:call-template name="generate-index">
+          <xsl:with-param name="scope" select="/"/>
+        </xsl:call-template>
+      </xsl:if>
+
+      <xsl:if test="not(parent::article)">
+        <xsl:call-template name="process.footnotes"/>
+      </xsl:if>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="index/indexinfo"></xsl:template>
+<xsl:template match="index/info"></xsl:template>
+<xsl:template match="index/title"></xsl:template>
+<xsl:template match="index/subtitle"></xsl:template>
+<xsl:template match="index/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexdiv">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates select="*[not(self::indexentry)]"/>
+    <dl>
+      <xsl:apply-templates select="indexentry"/>
+    </dl>
+  </div>
+</xsl:template>
+
+<xsl:template match="indexdiv/title">
+  <h3>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexterm">
+  <!-- this one must have a name, even if it doesn't have an ID -->
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <a class="indexterm" name="{$id}"/>
+</xsl:template>
+
+<xsl:template match="primary|secondary|tertiary|see|seealso">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexentry">
+  <xsl:apply-templates select="primaryie"/>
+</xsl:template>
+
+<xsl:template match="primaryie">
+  <dt>
+    <xsl:apply-templates/>
+  </dt>
+  <dd>
+    <xsl:apply-templates select="following-sibling::seeie
+                                   [not(preceding-sibling::secondaryie)]"
+                         mode="indexentry"/>
+    <xsl:apply-templates select="following-sibling::seealsoie
+                                   [not(preceding-sibling::secondaryie)]"
+                         mode="indexentry"/>
+    <xsl:apply-templates select="following-sibling::secondaryie"
+                         mode="indexentry"/>
+  </dd>
+</xsl:template>
+
+<!-- Handled in mode to convert flat list to structured output -->
+<xsl:template match="secondaryie">
+</xsl:template>
+<xsl:template match="tertiaryie">
+</xsl:template>
+<xsl:template match="seeie|seealsoie">
+</xsl:template>
+
+<xsl:template match="secondaryie" mode="indexentry">
+  <dl>
+    <dt>
+      <xsl:apply-templates/>
+    </dt>
+    <dd>
+      <!-- select following see* elements up to next secondaryie or tertiary or end -->
+      <xsl:variable name="after.this"
+              select="following-sibling::*"/>
+      <xsl:variable name="next.entry"
+              select="(following-sibling::secondaryie|following-sibling::tertiaryie)[1]"/>
+      <xsl:variable name="before.entry"
+                    select="$next.entry/preceding-sibling::*"/>
+      <xsl:variable name="see.intersection"
+             select="$after.this[count(.|$before.entry) = count($before.entry)]
+                                [self::seeie or self::seealsoie]"/>
+      <xsl:choose>
+        <xsl:when test="count($see.intersection) != 0">
+          <xsl:apply-templates select="$see.intersection" mode="indexentry"/>
+        </xsl:when>
+        <xsl:when test="count($next.entry) = 0">
+          <xsl:apply-templates select="following-sibling::seeie"
+                               mode="indexentry"/>
+          <xsl:apply-templates select="following-sibling::seealsoie"
+                               mode="indexentry"/>
+        </xsl:when>
+      </xsl:choose>
+
+      <!-- now process any tertiaryie before the next secondaryie -->
+      <xsl:variable name="before.next.secondary" 
+              select="following-sibling::secondaryie[1]/preceding-sibling::*"/>
+      <xsl:variable name="tertiary.intersection"
+             select="$after.this[count(.|$before.next.secondary) = 
+                                 count($before.next.secondary)]
+                                [not(self::seeie) and not(self::seealsoie)]"/>
+      <xsl:choose>
+        <xsl:when test="count($tertiary.intersection) != 0">
+          <xsl:apply-templates select="$tertiary.intersection"
+                               mode="indexentry"/>
+        </xsl:when>
+        <xsl:when test="not(following-sibling::secondaryie)">
+          <xsl:apply-templates select="following-sibling::tertiaryie"
+                               mode="indexentry"/>
+        </xsl:when>
+      </xsl:choose>
+    </dd>
+  </dl>
+</xsl:template>
+
+<xsl:template match="tertiaryie" mode="indexentry">
+  <dl>
+    <dt>
+      <xsl:apply-templates/>
+    </dt>
+    <dd>
+      <!-- select following see* elements up to next secondaryie or tertiary or end -->
+      <xsl:variable name="after.this"
+              select="following-sibling::*"/>
+      <xsl:variable name="next.entry"
+              select="(following-sibling::secondaryie|following-sibling::tertiaryie)[1]"/>
+      <xsl:variable name="before.entry"
+                    select="$next.entry/preceding-sibling::*"/>
+      <xsl:variable name="see.intersection"
+             select="$after.this[count(.|$before.entry) = count($before.entry)]
+                                [self::seeie or self::seealsoie]"/>
+      <xsl:choose>
+        <xsl:when test="count($see.intersection) != 0">
+          <xsl:apply-templates select="$see.intersection" mode="indexentry"/>
+        </xsl:when>
+        <xsl:when test="count($next.entry) = 0">
+          <xsl:apply-templates select="following-sibling::seeie"
+                               mode="indexentry"/>
+          <xsl:apply-templates select="following-sibling::seealsoie"
+                               mode="indexentry"/>
+        </xsl:when>
+      </xsl:choose>
+    </dd>
+  </dl>
+</xsl:template>
+
+<xsl:template match="seeie" mode="indexentry">
+  <dt>
+    <xsl:text>(</xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'see'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </dt>
+</xsl:template>
+
+<xsl:template match="seealsoie" mode="indexentry">
+  <div>
+    <xsl:text>(</xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'seealso'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/info.xsl b/applications/content/template/docbook/html/info.xsl
new file mode 100644
index 0000000..0179cea
--- /dev/null
+++ b/applications/content/template/docbook/html/info.xsl
@@ -0,0 +1,45 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- These templates define the "default behavior" for info
+     elements.  Even if you don't process the *info wrappers,
+     some of these elements are needed because the elements are
+     processed from named templates that are called with modes.
+     Since modes aren't sticky, these rules apply. 
+     (TODO: clarify this comment) -->
+
+<!-- ==================================================================== -->
+<!-- called from named templates in a given mode -->
+
+<xsl:template match="corpauthor">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="jobtitle">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/inline.xsl b/applications/content/template/docbook/html/inline.xsl
new file mode 100644
index 0000000..7453fa2
--- /dev/null
+++ b/applications/content/template/docbook/html/inline.xsl
@@ -0,0 +1,1518 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xlink='http://www.w3.org/1999/xlink'
+                xmlns:suwl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.UnwrapLinks"
+                exclude-result-prefixes="xlink suwl"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:key name="glossentries" match="glossentry" use="normalize-space(glossterm)"/>
+<xsl:key name="glossentries" match="glossentry" use="normalize-space(glossterm/@baseform)"/>
+
+<xsl:template name="simple.xlink">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <xsl:param name="linkend" select="$node/@linkend"/>
+  <xsl:param name="xhref" select="$node/@xlink:href"/>
+
+  <!-- Support for @xlink:show -->
+  <xsl:variable name="target.show">
+    <xsl:choose>
+      <xsl:when test="$node/@xlink:show = 'new'">_blank</xsl:when>
+      <xsl:when test="$node/@xlink:show = 'replace'">_top</xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="link">
+    <xsl:choose>
+      <xsl:when test="$xhref and 
+                      (not($node/@xlink:type) or 
+                           $node/@xlink:type='simple')">
+
+        <!-- Is it a local idref or a uri? -->
+        <xsl:variable name="is.idref">
+          <xsl:choose>
+            <!-- if the href starts with # and does not contain an "(" -->
+            <!-- or if the href starts with #xpointer(id(, it's just an ID -->
+            <xsl:when test="starts-with($xhref,'#')
+                            and (not(contains($xhref,'&#40;'))
+                            or starts-with($xhref,
+                                       '#xpointer&#40;id&#40;'))">1</xsl:when>
+            <xsl:otherwise>0</xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+
+        <!-- Is it an olink ? -->
+        <xsl:variable name="is.olink">
+          <xsl:choose>
+            <!-- If xlink:role="http://docbook.org/xlink/role/olink" -->
+            <!-- and if the href contains # -->
+            <xsl:when test="contains($xhref,'#') and
+                 @xlink:role = $xolink.role">1</xsl:when>
+            <xsl:otherwise>0</xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+
+        <xsl:choose>
+          <xsl:when test="$is.olink = 1">
+            <xsl:call-template name="olink">
+              <xsl:with-param name="content" select="$content"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$is.idref = 1">
+
+            <xsl:variable name="idref">
+              <xsl:call-template name="xpointer.idref">
+                <xsl:with-param name="xpointer" select="$xhref"/>
+              </xsl:call-template>
+            </xsl:variable>
+
+            <xsl:variable name="targets" select="key('id',$idref)"/>
+            <xsl:variable name="target" select="$targets[1]"/>
+
+            <xsl:call-template name="check.id.unique">
+              <xsl:with-param name="linkend" select="$idref"/>
+            </xsl:call-template>
+
+            <xsl:choose>
+              <xsl:when test="count($target) = 0">
+                <xsl:message>
+                  <xsl:text>XLink to nonexistent id: </xsl:text>
+                  <xsl:value-of select="$idref"/>
+                </xsl:message>
+                <xsl:copy-of select="$content"/>
+              </xsl:when>
+
+              <xsl:otherwise>
+                <a>
+                  <xsl:apply-templates select="." mode="common.html.attributes"/>
+                  <xsl:call-template name="id.attribute"/>
+
+                  <xsl:attribute name="href">
+                    <xsl:call-template name="href.target">
+                      <xsl:with-param name="object" select="$target"/>
+                    </xsl:call-template>
+                  </xsl:attribute>
+
+                  <xsl:choose>
+                    <xsl:when test="$node/@xlink:title">
+                      <xsl:attribute name="title">
+                        <xsl:value-of select="$node/@xlink:title"/>
+                      </xsl:attribute>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:apply-templates select="$target"
+                                           mode="html.title.attribute"/>
+                    </xsl:otherwise>
+                  </xsl:choose>
+
+                  <xsl:if test="$target.show !=''">
+                    <xsl:attribute name="target">
+                      <xsl:value-of select="$target.show"/>
+                    </xsl:attribute>
+                  </xsl:if>
+
+                  <xsl:copy-of select="$content"/>
+
+                </a>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+
+          <!-- otherwise it's a URI -->
+          <xsl:otherwise>
+            <a>
+              <xsl:apply-templates select="." mode="common.html.attributes"/>
+              <xsl:call-template name="id.attribute"/>
+              <xsl:attribute name="href">
+                <xsl:value-of select="$xhref"/>
+              </xsl:attribute>
+              <xsl:if test="$node/@xlink:title">
+                <xsl:attribute name="title">
+                  <xsl:value-of select="$node/@xlink:title"/>
+                </xsl:attribute>
+              </xsl:if>
+
+              <!-- For URIs, use @xlink:show if defined, otherwise use ulink.target -->
+              <xsl:choose>
+                <xsl:when test="$target.show !=''">
+                  <xsl:attribute name="target">
+                    <xsl:value-of select="$target.show"/>
+                  </xsl:attribute>
+                </xsl:when>
+                <xsl:when test="$ulink.target !=''">
+                  <xsl:attribute name="target">
+                    <xsl:value-of select="$ulink.target"/>
+                  </xsl:attribute>
+                </xsl:when>
+              </xsl:choose>
+              
+              <xsl:copy-of select="$content"/>
+            </a>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:when test="$linkend">
+        <xsl:variable name="targets" select="key('id',$linkend)"/>
+        <xsl:variable name="target" select="$targets[1]"/>
+
+        <xsl:call-template name="check.id.unique">
+          <xsl:with-param name="linkend" select="$linkend"/>
+        </xsl:call-template>
+
+        <a>
+          <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:call-template name="id.attribute"/>
+          <xsl:attribute name="href">
+            <xsl:call-template name="href.target">
+              <xsl:with-param name="object" select="$target"/>
+            </xsl:call-template>
+          </xsl:attribute>
+
+          <xsl:apply-templates select="$target" mode="html.title.attribute"/>
+
+          <xsl:copy-of select="$content"/>
+          
+        </a>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$content"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="function-available('suwl:unwrapLinks')">
+      <xsl:copy-of select="suwl:unwrapLinks($link)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$link"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.charseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <!-- * if you want output from the inline.charseq template wrapped in -->
+  <!-- * something other than a Span, call the template with some value -->
+  <!-- * for the 'wrapper-name' param -->
+  <xsl:param name="wrapper-name">span</xsl:param>
+  <xsl:element name="{$wrapper-name}">
+    <xsl:attribute name="class">
+      <xsl:value-of select="local-name(.)"/>
+    </xsl:attribute>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="dir"/>
+    <xsl:call-template name="generate.html.title"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="inline.monoseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </code>
+</xsl:template>
+
+<xsl:template name="inline.boldseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+
+    <!-- don't put <strong> inside figure, example, or table titles -->
+    <xsl:choose>
+      <xsl:when test="local-name(..) = 'title'
+                      and (local-name(../..) = 'figure'
+                      or local-name(../..) = 'example'
+                      or local-name(../..) = 'table')">
+        <xsl:copy-of select="$content"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <strong>
+          <xsl:copy-of select="$content"/>
+        </strong>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="apply-annotations"/>
+  </span>
+</xsl:template>
+
+<xsl:template name="inline.italicseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <em>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </em>
+</xsl:template>
+
+<xsl:template name="inline.boldmonoseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <!-- don't put <strong> inside figure, example, or table titles -->
+  <!-- or other titles that may already be represented with <strong>'s. -->
+  <xsl:choose>
+    <xsl:when test="local-name(..) = 'title'
+                    and (local-name(../..) = 'figure'
+                         or local-name(../..) = 'example'
+                         or local-name(../..) = 'table'
+                         or local-name(../..) = 'formalpara')">
+      <code>
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:copy-of select="$content"/>
+        <xsl:call-template name="apply-annotations"/>
+      </code>
+    </xsl:when>
+    <xsl:otherwise>
+      <strong>
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <code>
+          <xsl:call-template name="generate.html.title"/>
+          <xsl:call-template name="dir"/>
+          <xsl:copy-of select="$content"/>
+        </code>
+        <xsl:call-template name="apply-annotations"/>
+      </strong>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.italicmonoseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <em>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <code>
+      <xsl:call-template name="generate.html.title"/>
+      <xsl:call-template name="dir"/>
+      <xsl:copy-of select="$content"/>
+      <xsl:call-template name="apply-annotations"/>
+    </code>
+  </em>
+</xsl:template>
+
+<xsl:template name="inline.superscriptseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <sup>
+    <xsl:call-template name="generate.html.title"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="dir"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </sup>
+</xsl:template>
+
+<xsl:template name="inline.subscriptseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <sub>
+    <xsl:call-template name="generate.html.title"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="dir"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </sub>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- some special cases -->
+
+<xsl:template match="author">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="editor">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorinitials">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="accel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="action">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="application">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="classname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="exceptionname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="interfacename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="methodname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="command">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="computeroutput">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="constant">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="database">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="date">
+  <!-- should this support locale-specific formatting? how? -->
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorcode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortype">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortext">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="envar">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="filename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="function">
+  <xsl:choose>
+    <xsl:when test="$function.parens != '0'
+                    and (parameter or function or replaceable)">
+      <xsl:variable name="nodes" select="text()|*"/>
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:call-template name="simple.xlink">
+            <xsl:with-param name="content">
+              <xsl:apply-templates select="$nodes[1]"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>(</xsl:text>
+      <xsl:apply-templates select="$nodes[position()>1]"/>
+      <xsl:text>)</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+     <xsl:call-template name="inline.monoseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="function/parameter" priority="2">
+  <xsl:call-template name="inline.italicmonoseq"/>
+  <xsl:if test="following-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="function/replaceable" priority="2">
+  <xsl:call-template name="inline.italicmonoseq"/>
+  <xsl:if test="following-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="guibutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guiicon">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guilabel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenuitem">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guisubmenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="hardware">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interface">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interfacedefinition">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keycap">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="keycode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keysym">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="literal">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="code">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="medialabel">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="shortcut">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="mousebutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="option">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="package">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="parameter">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="property">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="prompt">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="replaceable" priority="1">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="returnvalue">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="structfield">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="structname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="symbol">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="systemitem">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="token">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="type">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="userinput">
+  <xsl:call-template name="inline.boldmonoseq"/>
+</xsl:template>
+
+<xsl:template match="abbrev">
+  <xsl:call-template name="inline.charseq">
+    <xsl:with-param name="wrapper-name">abbr</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="acronym">
+  <xsl:call-template name="inline.charseq">
+    <xsl:with-param name="wrapper-name">acronym</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="citerefentry">
+  <xsl:choose>
+    <xsl:when test="$citerefentry.link != '0'">
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="generate.citerefentry.link"/>
+        </xsl:attribute>
+        <xsl:call-template name="inline.charseq"/>
+      </a>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.charseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.citerefentry.link">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template name="x.generate.citerefentry.link">
+  <xsl:text>http://example.com/cgi-bin/man.cgi?</xsl:text>
+  <xsl:value-of select="refentrytitle"/>
+  <xsl:text>(</xsl:text>
+  <xsl:value-of select="manvolnum"/>
+  <xsl:text>)</xsl:text>
+</xsl:template>
+
+<xsl:template match="citetitle">
+  <xsl:choose>
+    <xsl:when test="@pubwork = 'article'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.italicseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="emphasis">
+  <span>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <!-- We don't want empty @class values, so do not propagate empty @roles -->
+      <xsl:when test="@role  and
+                      normalize-space(@role) != '' and
+                      $emphasis.propagates.style != 0">
+        <xsl:apply-templates select="." mode="common.html.attributes">
+          <xsl:with-param name="class" select="@role"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:choose>
+          <xsl:when test="@role = 'bold' or @role='strong'">
+            <!-- backwards compatibility: make bold into b elements, but -->
+            <!-- don't put bold inside figure, example, or table titles -->
+            <xsl:choose>
+              <xsl:when test="local-name(..) = 'title'
+                              and (local-name(../..) = 'figure'
+                              or local-name(../..) = 'example'
+                              or local-name(../..) = 'table')">
+                <xsl:apply-templates/>
+              </xsl:when>
+              <xsl:otherwise>
+                <strong><xsl:apply-templates/></strong>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+          <xsl:when test="@role and $emphasis.propagates.style != 0">
+            <xsl:apply-templates/>
+          </xsl:when>
+          <xsl:otherwise>
+            <em><xsl:apply-templates/></em>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </span>
+</xsl:template>
+
+<xsl:template match="foreignphrase">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="inline.italicseq"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="markup">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phrase">
+  <span>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="locale.html.attributes"/>
+    <!-- We don't want empty @class values, so do not propagate empty @roles -->
+    <xsl:choose>
+      <xsl:when test="@role and 
+                     normalize-space(@role) != '' and
+                     $phrase.propagates.style != 0">
+        <xsl:apply-templates select="." mode="class.attribute">
+          <xsl:with-param name="class" select="@role"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="." mode="class.attribute"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="dir"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="quote">
+  <xsl:variable name="depth">
+    <xsl:call-template name="dot.count">
+      <xsl:with-param name="string">
+        <xsl:number level="multiple"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:choose>
+      <xsl:when test="$depth mod 2 = 0">
+        <xsl:call-template name="gentext.startquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.endquote"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="gentext.nestedstartquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.nestedendquote"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="wordasword">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="lineannotation">
+  <em>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="inline.charseq"/>
+  </em>
+</xsl:template>
+
+<xsl:template match="superscript">
+  <xsl:call-template name="inline.superscriptseq"/>
+</xsl:template>
+
+<xsl:template match="subscript">
+  <xsl:call-template name="inline.subscriptseq"/>
+</xsl:template>
+
+<xsl:template match="trademark">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:choose>
+    <xsl:when test="@class = 'copyright'
+                    or @class = 'registered'">
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat" select="@class"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="@class = 'service'">
+      <sup>SM</sup>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat" select="'trademark'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="firstterm">
+  <xsl:call-template name="glossterm">
+    <xsl:with-param name="firstterm" select="1"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="glossterm" name="glossterm">
+  <xsl:param name="firstterm" select="0"/>
+
+  <!-- To avoid extra <a name=""> anchor from inline.italicseq -->
+  <xsl:variable name="content">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="($firstterm.only.link = 0 or $firstterm = 1) and @linkend">
+      <xsl:variable name="targets" select="key('id',@linkend)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+
+      <xsl:call-template name="check.id.unique">
+        <xsl:with-param name="linkend" select="@linkend"/>
+      </xsl:call-template>
+
+      <xsl:choose>
+        <xsl:when test="$target">
+          <a>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:if test="@id or @xml:id">
+              <xsl:attribute name="name">
+                <xsl:value-of select="(@id|@xml:id)[1]"/>
+              </xsl:attribute>
+            </xsl:if>
+
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="$target"/>
+              </xsl:call-template>
+            </xsl:attribute>
+
+            <xsl:call-template name="inline.italicseq">
+              <xsl:with-param name="content" select="$content"/>
+            </xsl:call-template>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="inline.italicseq">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="not(@linkend)
+                    and ($firstterm.only.link = 0 or $firstterm = 1)
+                    and ($glossterm.auto.link != 0)
+                    and $glossary.collection != ''">
+      <xsl:variable name="term">
+        <xsl:choose>
+          <xsl:when test="@baseform"><xsl:value-of select="@baseform"/></xsl:when>
+          <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="cterm"
+           select="(document($glossary.collection,.)//glossentry[glossterm=$term])[1]"/>
+
+      <!-- HACK HACK HACK! But it works... -->
+      <!-- You'd need to do more work if you wanted to chunk on glossdiv, though -->
+
+      <xsl:variable name="glossary" select="//glossary[@role='auto']"/>
+
+      <xsl:if test="count($glossary) != 1">
+        <xsl:message>
+          <xsl:text>Warning: glossary.collection specified, but there are </xsl:text>
+          <xsl:value-of select="count($glossary)"/>
+          <xsl:text> automatic glossaries</xsl:text>
+        </xsl:message>
+      </xsl:if>
+
+      <xsl:variable name="glosschunk">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select="$glossary"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="chunkbase">
+        <xsl:choose>
+          <xsl:when test="contains($glosschunk, '#')">
+            <xsl:value-of select="substring-before($glosschunk, '#')"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$glosschunk"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="not($cterm)">
+          <xsl:message>
+            <xsl:text>There's no entry for </xsl:text>
+            <xsl:value-of select="$term"/>
+            <xsl:text> in </xsl:text>
+            <xsl:value-of select="$glossary.collection"/>
+          </xsl:message>
+          <xsl:call-template name="inline.italicseq"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:variable name="id">
+            <xsl:call-template name="object.id">
+              <xsl:with-param name="object" select="$cterm"/>
+            </xsl:call-template>
+          </xsl:variable>
+          <a href="{$chunkbase}#{$id}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="inline.italicseq">
+              <xsl:with-param name="content" select="$content"/>
+            </xsl:call-template>
+          </a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="not(@linkend)
+                    and ($firstterm.only.link = 0 or $firstterm = 1)
+                    and $glossterm.auto.link != 0">
+      <xsl:variable name="term">
+        <xsl:choose>
+          <xsl:when test="@baseform">
+            <xsl:value-of select="normalize-space(@baseform)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="normalize-space(.)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+      <xsl:variable name="targets"
+                    select="key('glossentries', $term)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+
+      <xsl:choose>
+        <xsl:when test="count($targets)=0">
+          <xsl:message>
+            <xsl:text>Error: no glossentry for glossterm: </xsl:text>
+            <xsl:value-of select="."/>
+            <xsl:text>.</xsl:text>
+          </xsl:message>
+          <xsl:call-template name="inline.italicseq"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <a>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:if test="@id or @xml:id">
+              <xsl:attribute name="name">
+                <xsl:value-of select="(@id|@xml:id)[1]"/>
+              </xsl:attribute>
+            </xsl:if>
+
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="$target"/>
+              </xsl:call-template>
+            </xsl:attribute>
+
+            <xsl:call-template name="inline.italicseq">
+              <xsl:with-param name="content" select="$content"/>
+            </xsl:call-template>
+          </a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="inline.italicseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="termdef">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="gentext.template">
+      <xsl:with-param name="context" select="'termdef'"/>
+      <xsl:with-param name="name" select="'prefix'"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+    <xsl:call-template name="gentext.template">
+      <xsl:with-param name="context" select="'termdef'"/>
+      <xsl:with-param name="name" select="'suffix'"/>
+    </xsl:call-template>
+  </span>
+</xsl:template>
+
+<xsl:template match="sgmltag|tag">
+  <xsl:call-template name="format.sgmltag"/>
+</xsl:template>
+
+<xsl:template name="format.sgmltag">
+  <xsl:param name="class">
+    <xsl:choose>
+      <xsl:when test="@class">
+        <xsl:value-of select="@class"/>
+      </xsl:when>
+      <xsl:otherwise>element</xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="$class='attribute'">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test="$class='attvalue'">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test="$class='element'">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test="$class='endtag'">
+        <xsl:text>&lt;/</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='genentity'">
+        <xsl:text>&amp;</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='numcharref'">
+        <xsl:text>&amp;#</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='paramentity'">
+        <xsl:text>%</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='pi'">
+        <xsl:text>&lt;?</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='xmlpi'">
+        <xsl:text>&lt;?</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>?&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='starttag'">
+        <xsl:text>&lt;</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='emptytag'">
+        <xsl:text>&lt;</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>/&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='sgmlcomment' or $class='comment'">
+        <xsl:text>&lt;!--</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>--&gt;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes">
+      <xsl:with-param name="class" select="concat('sgmltag-', $class)"/>
+    </xsl:apply-templates>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content" select="$content"/>
+    </xsl:call-template>
+  </code>
+</xsl:template>
+
+<xsl:template match="email">
+  <xsl:call-template name="inline.monoseq">
+    <xsl:with-param name="content">
+      <xsl:if test="not($email.delimiters.enabled = 0)">
+        <xsl:text>&lt;</xsl:text>
+      </xsl:if>
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:attribute name="href">
+          <xsl:text>mailto:</xsl:text>
+          <xsl:value-of select="."/>
+        </xsl:attribute>
+        <xsl:apply-templates/>
+      </a>
+      <xsl:if test="not($email.delimiters.enabled = 0)">
+        <xsl:text>&gt;</xsl:text>
+      </xsl:if>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="keycombo">
+  <xsl:variable name="action" select="@action"/>
+  <xsl:variable name="joinchar">
+    <xsl:choose>
+      <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when>
+      <xsl:when test="$action='simul'">+</xsl:when>
+      <xsl:when test="$action='press'">-</xsl:when>
+      <xsl:when test="$action='click'">-</xsl:when>
+      <xsl:when test="$action='double-click'">-</xsl:when>
+      <xsl:when test="$action='other'"></xsl:when>
+      <xsl:otherwise>+</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:for-each select="*">
+    <xsl:if test="position()>1"><xsl:value-of select="$joinchar"/></xsl:if>
+    <xsl:apply-templates select="."/>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="uri">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="menuchoice">
+  <xsl:variable name="shortcut" select="./shortcut"/>
+  <xsl:call-template name="process.menuchoice"/>
+  <xsl:if test="$shortcut">
+    <xsl:text> (</xsl:text>
+    <xsl:apply-templates select="$shortcut"/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.menuchoice">
+  <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($nodelist)"></xsl:when>
+    <xsl:when test="$count=1">
+      <xsl:apply-templates select="$nodelist[$count=position()]"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="node" select="$nodelist[$count=position()]"/>
+      <xsl:choose>
+        <xsl:when test="local-name($node)='guimenuitem'
+                        or local-name($node)='guisubmenu'">
+          <xsl:value-of select="$menuchoice.menu.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$menuchoice.separator"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:apply-templates select="$node"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="optional">
+  <xsl:value-of select="$arg.choice.opt.open.str"/>
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:value-of select="$arg.choice.opt.close.str"/>
+</xsl:template>
+
+<xsl:template match="citation">
+  <!-- todo: integrate with bibliography collection -->
+  <xsl:variable name="targets" select="(//biblioentry | //bibliomixed)[abbrev = string(current())]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <!-- try automatic linking based on match to abbrev -->
+    <xsl:when test="$target and not(xref) and not(link)">
+
+      <xsl:text>[</xsl:text>
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:choose>
+          <xsl:when test="$bibliography.numbered != 0">
+            <xsl:call-template name="id.attribute"/>
+            <xsl:apply-templates select="$target" mode="citation"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="inline.charseq"/>
+          </xsl:otherwise>
+        </xsl:choose>
+
+      </a>
+      <xsl:text>]</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>[</xsl:text>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:text>]</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="citebiblioid">
+  <xsl:variable name="targets" select="//*[biblioid = string(current())]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <!-- try automatic linking based on match to parent of biblioid -->
+    <xsl:when test="$target and not(xref) and not(link)">
+
+      <xsl:text>[</xsl:text>
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:call-template name="inline.charseq"/>
+
+      </a>
+      <xsl:text>]</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>[</xsl:text>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:text>]</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="citation">
+  <xsl:number from="bibliography" count="biblioentry|bibliomixed"
+              level="any" format="1"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="comment[&comment.block.parents;]|remark[&comment.block.parents;]">
+  <xsl:if test="$show.comments != 0">
+    <p class="remark"><em><xsl:call-template name="inline.charseq"/></em></p>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="comment|remark">
+  <xsl:if test="$show.comments != 0">
+    <em><xsl:call-template name="inline.charseq"/></em>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productname">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:if test="@class">
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat" select="@class"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="productnumber">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="pob|street|city|state|postcode|country|otheraddr">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phone|fax">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- in Addresses, for example -->
+<xsl:template match="honorific|firstname|surname|lineage|othername">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="person">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates select="personname"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="personname">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="org">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgdiv">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="affiliation">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="beginpage">
+  <!-- does nothing; this *is not* markup to force a page break. -->
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/html/keywords.xsl b/applications/content/template/docbook/html/keywords.xsl
new file mode 100644
index 0000000..1ca7374
--- /dev/null
+++ b/applications/content/template/docbook/html/keywords.xsl
@@ -0,0 +1,35 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="keywordset"></xsl:template>
+<xsl:template match="subjectset"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="keywordset" mode="html.header">
+  <meta name="keywords">
+    <xsl:attribute name="content">
+      <xsl:apply-templates select="keyword" mode="html.header"/>
+    </xsl:attribute>
+  </meta>
+</xsl:template>
+
+<xsl:template match="keyword" mode="html.header">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::keyword">, </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/lists.xsl b/applications/content/template/docbook/html/lists.xsl
new file mode 100644
index 0000000..a9832a1
--- /dev/null
+++ b/applications/content/template/docbook/html/lists.xsl
@@ -0,0 +1,1287 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="itemizedlist">
+  <!-- Handle spacing="compact" as multiple class attribute instead
+       of the deprecated HTML compact attribute -->
+  <xsl:variable name="default.class">
+    <xsl:value-of select="local-name()"/>
+    <xsl:if test="@spacing = 'compact'">
+      <xsl:text> compact</xsl:text>
+    </xsl:if>
+  </xsl:variable>
+  
+  <xsl:variable name="style.value">
+    <xsl:variable name="type">
+      <xsl:call-template name="list.itemsymbol"/>
+    </xsl:variable>
+
+    <xsl:text>list-style-type: </xsl:text>
+    <xsl:value-of select="$type"/>
+    <xsl:text>; </xsl:text>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="title|info/title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <!-- Preserve order of PIs and comments -->
+    <xsl:apply-templates 
+        select="*[not(self::listitem
+                  or self::title
+                  or self::titleabbrev)]
+                |comment()[not(preceding-sibling::listitem)]
+                |processing-instruction()[not(preceding-sibling::listitem)]"/>
+
+    <ul>
+      <xsl:call-template name="generate.class.attribute">
+        <xsl:with-param name="class" select="$default.class"/>
+      </xsl:call-template>
+      <xsl:choose>
+        <xsl:when test="$css.decoration != 0">
+          <xsl:attribute name="style">
+            <xsl:value-of select="$style.value"/>
+          </xsl:attribute>
+        </xsl:when>
+        <xsl:when test="$make.clean.html != 0">
+          <!-- styled by separate css only -->
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- use the old @type attribute -->
+          <xsl:attribute name="type">
+            <xsl:call-template name="list.itemsymbol"/>
+          </xsl:attribute>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:apply-templates 
+            select="listitem
+                    |comment()[preceding-sibling::listitem]
+                    |processing-instruction()[preceding-sibling::listitem]"/>
+    </ul>
+  </div>
+</xsl:template>
+
+<xsl:template match="itemizedlist/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="itemizedlist/listitem">
+  <xsl:variable name="mark" select="../@mark"/>
+  <xsl:variable name="override" select="@override"/>
+
+  <xsl:variable name="usemark">
+    <xsl:choose>
+      <xsl:when test="$override != ''">
+        <xsl:value-of select="$override"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$mark"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="cssmark">
+    <xsl:choose>
+      <xsl:when test="$usemark = 'opencircle'">circle</xsl:when>
+      <xsl:when test="$usemark = 'bullet'">disc</xsl:when>
+      <xsl:when test="$usemark = 'box'">square</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$usemark"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <li>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="$css.decoration = '1' and $cssmark != ''">
+      <xsl:attribute name="style">
+        <xsl:text>list-style-type: </xsl:text>
+        <xsl:value-of select="$cssmark"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <!-- we can't just drop the anchor in since some browsers (Opera)
+         get confused about line breaks if we do. So if the first child
+         is a para, assume the para will put in the anchor. Otherwise,
+         put the anchor in anyway. -->
+    <xsl:if test="local-name(child::*[1]) != 'para'">
+      <xsl:call-template name="anchor"/>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+        <div class="{@revisionflag}">
+          <xsl:apply-templates/>
+        </div>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </li>
+</xsl:template>
+
+<xsl:template match="orderedlist">
+  <!-- Handle spacing="compact" as multiple class attribute instead
+       of the deprecated HTML compact attribute -->
+  <xsl:variable name="default.class">
+    <xsl:value-of select="local-name()"/>
+    <xsl:if test="@spacing = 'compact'">
+      <xsl:text> compact</xsl:text>
+    </xsl:if>
+  </xsl:variable>
+  
+  <xsl:variable name="start">
+    <xsl:call-template name="orderedlist-starting-number"/>
+  </xsl:variable>
+
+  <xsl:variable name="numeration">
+    <xsl:call-template name="list.numeration"/>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:choose>
+      <xsl:when test="$numeration='arabic'">1</xsl:when>
+      <xsl:when test="$numeration='loweralpha'">a</xsl:when>
+      <xsl:when test="$numeration='lowerroman'">i</xsl:when>
+      <xsl:when test="$numeration='upperalpha'">A</xsl:when>
+      <xsl:when test="$numeration='upperroman'">I</xsl:when>
+      <!-- What!? This should never happen -->
+      <xsl:otherwise>
+        <xsl:message>
+          <xsl:text>Unexpected numeration: </xsl:text>
+          <xsl:value-of select="$numeration"/>
+        </xsl:message>
+        <xsl:value-of select="1"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:if test="title|info/title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <!-- Preserve order of PIs and comments -->
+    <xsl:apply-templates 
+        select="*[not(self::listitem
+                  or self::title
+                  or self::titleabbrev)]
+                |comment()[not(preceding-sibling::listitem)]
+                |processing-instruction()[not(preceding-sibling::listitem)]"/>
+
+    <xsl:choose>
+      <xsl:when test="@inheritnum='inherit' and ancestor::listitem[parent::orderedlist]">
+        <table border="{$table.border.off}">
+          <xsl:call-template name="generate.class.attribute">
+            <xsl:with-param name="class" select="$default.class"/>
+          </xsl:call-template>
+          <colgroup>
+            <col align="{$direction.align.start}" valign="top"/>
+            <col/>
+          </colgroup>
+          <tbody>
+            <xsl:apply-templates 
+                mode="orderedlist-table"
+                select="listitem
+                        |comment()[preceding-sibling::listitem]
+                        |processing-instruction()[preceding-sibling::listitem]"/>
+          </tbody>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <ol>
+          <xsl:call-template name="generate.class.attribute">
+            <xsl:with-param name="class" select="$default.class"/>
+          </xsl:call-template>
+          <xsl:if test="$start != '1'">
+            <xsl:attribute name="start">
+              <xsl:value-of select="$start"/>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:if test="$numeration != ''">
+            <xsl:attribute name="type">
+              <xsl:value-of select="$type"/>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:apply-templates 
+                select="listitem
+                        |comment()[preceding-sibling::listitem]
+                        |processing-instruction()[preceding-sibling::listitem]"/>
+        </ol>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="orderedlist/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem">
+  <li>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="@override">
+      <xsl:attribute name="value">
+        <xsl:value-of select="@override"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <!-- we can't just drop the anchor in since some browsers (Opera)
+         get confused about line breaks if we do. So if the first child
+         is a para, assume the para will put in the anchor. Otherwise,
+         put the anchor in anyway. -->
+    <xsl:if test="local-name(child::*[1]) != 'para'">
+      <xsl:call-template name="anchor"/>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+        <div class="{@revisionflag}">
+          <xsl:apply-templates/>
+        </div>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </li>
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem" mode="orderedlist-table">
+  <tr>
+    <td>
+      <xsl:apply-templates select="." mode="item-number"/>
+    </td>
+    <td>
+      <xsl:if test="local-name(child::*[1]) != 'para'">
+        <xsl:call-template name="id.attribute"/>
+        <xsl:call-template name="anchor"/>
+      </xsl:if>
+
+      <xsl:choose>
+        <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+          <div class="{@revisionflag}">
+            <xsl:apply-templates/>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="variablelist">
+  <xsl:variable name="pi-presentation">
+    <xsl:call-template name="pi.dbhtml_list-presentation"/>
+  </xsl:variable>
+  <!-- Handle spacing="compact" as multiple class attribute instead
+       of the deprecated HTML compact attribute -->
+  <xsl:variable name="default.class">
+    <xsl:value-of select="local-name()"/>
+    <xsl:if test="@spacing = 'compact'">
+      <xsl:text> compact</xsl:text>
+    </xsl:if>
+  </xsl:variable>
+  
+
+  <xsl:variable name="presentation">
+    <xsl:choose>
+      <xsl:when test="$pi-presentation != ''">
+        <xsl:value-of select="$pi-presentation"/>
+      </xsl:when>
+      <xsl:when test="$variablelist.as.table != 0">
+        <xsl:value-of select="'table'"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="'list'"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="list-width">
+    <xsl:call-template name="pi.dbhtml_list-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="term-width">
+    <xsl:call-template name="pi.dbhtml_term-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="table-summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="title|info/title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$presentation = 'table'">
+        <!-- Preserve order of PIs and comments -->
+        <xsl:apply-templates 
+          select="*[not(self::varlistentry
+                    or self::title
+                    or self::titleabbrev)]
+                  |comment()[not(preceding-sibling::varlistentry)]
+                  |processing-instruction()[not(preceding-sibling::varlistentry)]"/>
+        <table border="{$table.border.off}">
+          <xsl:call-template name="generate.class.attribute">
+            <xsl:with-param name="class" select="$default.class"/>
+          </xsl:call-template>
+          <xsl:if test="$list-width != ''">
+            <xsl:attribute name="width">
+              <xsl:value-of select="$list-width"/>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:if test="$table-summary != ''">
+            <xsl:attribute name="summary">
+              <xsl:value-of select="$table-summary"/>
+            </xsl:attribute>
+          </xsl:if>
+          <colgroup>
+            <col align="{$direction.align.start}" valign="top">
+              <xsl:if test="$term-width != ''">
+                <xsl:attribute name="width">
+                  <xsl:value-of select="$term-width"/>
+                </xsl:attribute>
+              </xsl:if>
+            </col>
+            <col/>
+          </colgroup>
+          <tbody>
+            <xsl:apply-templates mode="varlist-table"
+              select="varlistentry
+                      |comment()[preceding-sibling::varlistentry]
+                      |processing-instruction()[preceding-sibling::varlistentry]"/>
+          </tbody>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- Preserve order of PIs and comments -->
+        <xsl:apply-templates 
+          select="*[not(self::varlistentry
+                    or self::title
+                    or self::titleabbrev)]
+                  |comment()[not(preceding-sibling::varlistentry)]
+                  |processing-instruction()[not(preceding-sibling::varlistentry)]"/>
+        <dl>
+          <xsl:call-template name="generate.class.attribute">
+            <xsl:with-param name="class" select="$default.class"/>
+          </xsl:call-template>
+          <xsl:apply-templates 
+              select="varlistentry
+                      |comment()[preceding-sibling::varlistentry]
+                      |processing-instruction()[preceding-sibling::varlistentry]"/>
+        </dl>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="variablelist/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="itemizedlist/titleabbrev|orderedlist/titleabbrev">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="variablelist/titleabbrev">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="listitem" mode="xref">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="listitem/simpara" priority="2">
+  <!-- If a listitem contains only a single simpara, don't output
+       the <p> wrapper; this has the effect of creating an li
+       with simple text content. -->
+  <xsl:choose>
+    <xsl:when test="not(preceding-sibling::*)
+                    and not (following-sibling::*)">
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:choose>
+          <xsl:when test="@role and $para.propagates.style != 0">
+            <xsl:call-template name="common.html.attributes">
+              <xsl:with-param name="class" select="@role"/>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="common.html.attributes"/>
+          </xsl:otherwise>
+        </xsl:choose>
+
+        <xsl:call-template name="anchor"/>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varlistentry">
+  <dt>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates select="term"/>
+  </dt>
+  <dd>
+    <xsl:apply-templates select="listitem"/>
+  </dd>
+</xsl:template>
+
+<xsl:template match="varlistentry" mode="varlist-table">
+  <xsl:variable name="presentation">
+    <xsl:call-template name="pi.dbhtml_term-presentation">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="separator">
+    <xsl:call-template name="pi.dbhtml_term-separator">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <tr>
+    <xsl:call-template name="tr.attributes">
+      <xsl:with-param name="rownum">
+        <xsl:number from="variablelist" count="varlistentry"/>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <td>
+      <xsl:call-template name="id.attribute"/>
+      <p>
+      <xsl:call-template name="anchor"/>
+      <xsl:choose>
+        <xsl:when test="$presentation = 'bold'">
+          <strong>
+            <xsl:apply-templates select="term"/>
+            <xsl:value-of select="$separator"/>
+          </strong>
+        </xsl:when>
+        <xsl:when test="$presentation = 'italic'">
+          <em>
+            <xsl:apply-templates select="term"/>
+            <xsl:value-of select="$separator"/>
+          </em>
+        </xsl:when>
+        <xsl:when test="$presentation = 'bold-italic'">
+          <strong>
+            <em>
+              <xsl:apply-templates select="term"/>
+              <xsl:value-of select="$separator"/>
+            </em>
+          </strong>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="term"/>
+          <xsl:value-of select="$separator"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      </p>
+    </td>
+    <td>
+      <xsl:apply-templates select="listitem"/>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="varlistentry/term">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:choose>
+      <xsl:when test="position() = last()"/> <!-- do nothing -->
+      <xsl:otherwise>
+        <!-- * if we have multiple terms in the same varlistentry, generate -->
+        <!-- * a separator (", " by default) and/or an additional line -->
+        <!-- * break after each one except the last -->
+        <xsl:value-of select="$variablelist.term.separator"/>
+        <xsl:if test="not($variablelist.term.break.after = '0')">
+          <br/>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+<xsl:template match="varlistentry/listitem">
+  <!-- we can't just drop the anchor in since some browsers (Opera)
+       get confused about line breaks if we do. So if the first child
+       is a para, assume the para will put in the anchor. Otherwise,
+       put the anchor in anyway. -->
+  <xsl:if test="local-name(child::*[1]) != 'para'">
+    <xsl:call-template name="anchor"/>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+      <div class="{@revisionflag}">
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="simplelist">
+  <!-- with no type specified, the default is 'vert' -->
+  <xsl:call-template name="anchor"/>
+  <table border="{$table.border.off}">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Simple list</xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='inline']">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <!-- if dbchoice PI exists, use that to determine the choice separator -->
+    <!-- (that is, equivalent of "and" or "or" in current locale), or literal -->
+    <!-- value of "choice" otherwise -->
+    <xsl:variable name="localized-choice-separator">
+      <xsl:choose>
+        <xsl:when test="processing-instruction('dbchoice')">
+          <xsl:call-template name="select.choice.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- empty -->
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+    <xsl:for-each select="member">
+      <xsl:call-template name="simple.xlink">
+        <xsl:with-param name="content">
+          <xsl:apply-templates/>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:choose>
+        <xsl:when test="position() = last()"/> <!-- do nothing -->
+        <xsl:otherwise>
+          <xsl:text>, </xsl:text>
+          <xsl:if test="position() = last() - 1">
+            <xsl:if test="$localized-choice-separator != ''">
+              <xsl:value-of select="$localized-choice-separator"/>
+              <xsl:text> </xsl:text>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+  </span>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='horiz']">
+  <xsl:call-template name="anchor"/>
+  <table border="{$table.border.off}">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Simple list</xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="simplelist.horiz">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='vert']">
+  <xsl:call-template name="anchor"/>
+  <table border="{$table.border.off}">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Simple list</xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+
+  <xsl:if test="$cell &lt;= count($members)">
+    <tr>
+      <xsl:call-template name="tr.attributes">
+        <xsl:with-param name="row" select="$members[1]"/>
+        <xsl:with-param name="rownum" select="(($cell - 1) div $cols) + 1"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="simplelist.horiz.row">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="cell" select="$cell"/>
+        <xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+   </tr>
+    <xsl:call-template name="simplelist.horiz">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell + $cols"/>
+      <xsl:with-param name="members" select="$members"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <td>
+      <xsl:choose>
+        <xsl:when test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>&#160;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <xsl:call-template name="simplelist.horiz.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="rows"
+             select="floor((count($members)+$cols - 1) div $cols)"/>
+
+  <xsl:if test="$cell &lt;= $rows">
+    <tr>
+      <xsl:call-template name="tr.attributes">
+        <xsl:with-param name="row" select="$members[1]"/>
+        <xsl:with-param name="rownum" select="$cell"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="simplelist.vert.row">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="rows" select="$rows"/>
+        <xsl:with-param name="cell" select="$cell"/>
+        <xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+    </tr>
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="rows" select="$rows"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="rows">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <td>
+      <xsl:choose>
+        <xsl:when test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>&#160;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <xsl:call-template name="simplelist.vert.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="rows" select="$rows"/>
+      <xsl:with-param name="cell" select="$cell+$rows"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="member">
+  <xsl:call-template name="anchor"/>
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="content">
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="procedure">
+  <xsl:variable name="param.placement"
+                select="substring-after(normalize-space($formal.title.placement),
+                                        concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Preserve order of PIs and comments -->
+  <xsl:variable name="preamble"
+        select="*[not(self::step
+                  or self::title
+                  or self::titleabbrev)]
+                |comment()[not(preceding-sibling::step)]
+                |processing-instruction()[not(preceding-sibling::step)]"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional">
+        <xsl:choose>
+          <xsl:when test="title">0</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional">
+        <xsl:choose>
+          <xsl:when test="title">0</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:if test="(title or info/title) and $placement = 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="$preamble"/>
+
+    <xsl:choose>
+      <xsl:when test="count(step) = 1">
+        <ul>
+          <xsl:call-template name="generate.class.attribute"/>
+          <xsl:apply-templates 
+            select="step
+                    |comment()[preceding-sibling::step]
+                    |processing-instruction()[preceding-sibling::step]"/>
+        </ul>
+      </xsl:when>
+      <xsl:otherwise>
+        <ol>
+          <xsl:call-template name="generate.class.attribute"/>
+          <xsl:attribute name="type">
+            <xsl:value-of select="substring($procedure.step.numeration.formats,1,1)"/>
+          </xsl:attribute>
+          <xsl:apply-templates 
+            select="step
+                    |comment()[preceding-sibling::step]
+                    |processing-instruction()[preceding-sibling::step]"/>
+        </ol>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="(title or info/title) and $placement != 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="procedure/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="substeps">
+  <xsl:variable name="numeration">
+    <xsl:call-template name="procedure.step.numeration"/>
+  </xsl:variable>
+
+  <xsl:call-template name="anchor"/>
+
+  <ol type="{$numeration}">
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </ol>
+</xsl:template>
+
+<xsl:template match="step">
+  <li>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </li>
+</xsl:template>
+
+<xsl:template match="stepalternatives">
+  <xsl:call-template name="anchor"/>
+  <ul>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </ul>
+</xsl:template>
+
+<xsl:template match="step/title">
+  <p>
+    <xsl:call-template name="common.html.attributes"/>
+    <b>
+      <xsl:apply-templates/>
+    </b>
+  </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="segmentedlist">
+  <xsl:variable name="presentation">
+    <xsl:call-template name="pi.dbhtml_list-presentation"/>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:choose>
+      <xsl:when test="$presentation = 'table'">
+        <xsl:apply-templates select="." mode="seglist-table"/>
+      </xsl:when>
+      <xsl:when test="$presentation = 'list'">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test="$segmentedlist.as.table != 0">
+        <xsl:apply-templates select="." mode="seglist-table"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="segmentedlist/title">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <strong>
+      <span>
+        <xsl:call-template name="generate.class.attribute"/>
+        <xsl:apply-templates/>
+      </span>
+    </strong>
+  </div>
+</xsl:template>
+
+<xsl:template match="segtitle">
+</xsl:template>
+
+<xsl:template match="segtitle" mode="segtitle-in-seg">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seglistitem">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="seg">
+  <xsl:variable name="segnum" select="count(preceding-sibling::seg)+1"/>
+  <xsl:variable name="seglist" select="ancestor::segmentedlist"/>
+  <xsl:variable name="segtitles" select="$seglist/segtitle"/>
+
+  <!--
+     Note: segtitle is only going to be the right thing in a well formed
+     SegmentedList.  If there are too many Segs or too few SegTitles,
+     you'll get something odd...maybe an error
+  -->
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <strong>
+      <span class="segtitle">
+        <xsl:apply-templates select="$segtitles[$segnum=position()]"
+                             mode="segtitle-in-seg"/>
+        <xsl:text>: </xsl:text>
+      </span>
+    </strong>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="segmentedlist" mode="seglist-table">
+  <xsl:variable name="table-summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <xsl:variable name="list-width">
+    <xsl:call-template name="pi.dbhtml_list-width"/>
+  </xsl:variable>
+
+  <xsl:apply-templates select="title"/>
+
+  <table border="{$table.border.off}">
+    <xsl:if test="$list-width != ''">
+      <xsl:attribute name="width">
+        <xsl:value-of select="$list-width"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$table-summary != '' and $div.element != 'section'">
+      <xsl:attribute name="summary">
+        <xsl:value-of select="$table-summary"/>
+      </xsl:attribute>
+    </xsl:if>
+    <thead>
+      <tr class="segtitle">
+        <xsl:call-template name="tr.attributes">
+          <xsl:with-param name="row" select="segtitle[1]"/>
+          <xsl:with-param name="rownum" select="1"/>
+        </xsl:call-template>
+        <xsl:apply-templates select="segtitle" mode="seglist-table"/>
+      </tr>
+    </thead>
+    <tbody>
+      <xsl:apply-templates select="seglistitem" mode="seglist-table"/>
+    </tbody>
+  </table>
+</xsl:template>
+
+<xsl:template match="segtitle" mode="seglist-table">
+  <th><xsl:apply-templates/></th>
+</xsl:template>
+
+<xsl:template match="seglistitem" mode="seglist-table">
+  <xsl:variable name="seglinum">
+    <xsl:number from="segmentedlist" count="seglistitem"/>
+  </xsl:variable>
+
+  <tr>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="tr.attributes">
+      <xsl:with-param name="rownum" select="$seglinum + 1"/>
+    </xsl:call-template>
+    <xsl:apply-templates mode="seglist-table"/>
+  </tr>
+</xsl:template>
+
+<xsl:template match="seg" mode="seglist-table">
+  <td>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </td>
+</xsl:template>
+
+<xsl:template match="seg[1]" mode="seglist-table">
+  <td>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select="ancestor::seglistitem"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </td>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="calloutlist">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="title|info/title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <!-- Preserve order of PIs and comments -->
+    <xsl:apply-templates 
+         select="*[not(self::callout or self::title or self::titleabbrev)]
+                   |comment()[not(preceding-sibling::callout)]
+                   |processing-instruction()[not(preceding-sibling::callout)]"/>
+
+    <xsl:choose>
+      <xsl:when test="$callout.list.table != 0">
+        <table border="{$table.border.off}">
+          <xsl:if test="$div.element != 'section'">
+            <xsl:attribute name="summary">Callout list</xsl:attribute>
+          </xsl:if>
+          <xsl:apply-templates select="callout
+                                |comment()[preceding-sibling::callout]
+                                |processing-instruction()[preceding-sibling::callout]"/>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <dl>
+          <xsl:apply-templates select="." mode="class.attribute"/>
+          <xsl:apply-templates select="callout
+                                |comment()[preceding-sibling::callout]
+                                |processing-instruction()[preceding-sibling::callout]"/>
+        </dl>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="calloutlist/title">
+</xsl:template>
+
+<xsl:template match="callout">
+  <xsl:choose>
+    <xsl:when test="$callout.list.table != 0">
+      <tr>
+        <xsl:call-template name="tr.attributes">
+          <xsl:with-param name="rownum">
+            <xsl:number from="calloutlist" count="callout"/>
+          </xsl:with-param>
+        </xsl:call-template>
+
+        <td width="5%" valign="top" align="{$direction.align.start}">
+          <xsl:call-template name="id.attribute"/>
+          <p>
+            <xsl:call-template name="anchor"/>
+            <xsl:call-template name="callout.arearefs">
+              <xsl:with-param name="arearefs" select="@arearefs"/>
+            </xsl:call-template>
+          </p>
+        </td>
+        <td valign="top" align="{$direction.align.start}">
+          <xsl:apply-templates/>
+        </td>
+      </tr>
+    </xsl:when>
+    <xsl:otherwise>
+      <dt>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:call-template name="anchor"/>
+        <xsl:call-template name="callout.arearefs">
+          <xsl:with-param name="arearefs" select="@arearefs"/>
+        </xsl:call-template>
+      </dt>
+      <dd><xsl:apply-templates/></dd>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="callout/simpara" priority="2">
+  <!-- If a callout contains only a single simpara, don't output
+       the <p> wrapper; this has the effect of creating an li
+       with simple text content. -->
+  <xsl:choose>
+    <xsl:when test="not(preceding-sibling::*)
+                    and not (following-sibling::*)">
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="@role and $para.propagates.style != 0">
+          <xsl:choose>
+            <xsl:when test="@role and $para.propagates.style != 0">
+              <xsl:call-template name="common.html.attributes">
+                <xsl:with-param name="class" select="@role"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="common.html.attributes"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:if>
+
+        <xsl:call-template name="anchor"/>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="callout.arearefs">
+  <xsl:param name="arearefs"></xsl:param>
+  <xsl:if test="$arearefs!=''">
+    <xsl:choose>
+      <xsl:when test="substring-before($arearefs,' ')=''">
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef" select="$arearefs"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef"
+                          select="substring-before($arearefs,' ')"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="callout.arearefs">
+      <xsl:with-param name="arearefs"
+                      select="substring-after($arearefs,' ')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="callout.arearef">
+  <xsl:param name="arearef"></xsl:param>
+  <xsl:variable name="targets" select="key('id',$arearef)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="$arearef"/>
+  </xsl:call-template>
+
+  <xsl:choose>
+    <xsl:when test="count($target)=0">
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($target)='co'">
+      <a>
+        <xsl:attribute name="href">
+          <xsl:text>#</xsl:text>
+          <xsl:value-of select="$arearef"/>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target" mode="callout-bug"/>
+      </a>
+      <xsl:text> </xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($target)='areaset'">
+      <xsl:call-template name="callout-bug">
+        <xsl:with-param name="conum">
+          <xsl:apply-templates select="$target" mode="conumber"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($target)='area'">
+      <xsl:choose>
+        <xsl:when test="$target/parent::areaset">
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target/parent::areaset"
+                                   mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target" mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>???</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="orderedlist-starting-number">
+  <xsl:param name="list" select="."/>
+  <xsl:variable name="pi-start">
+    <xsl:call-template name="pi.dbhtml_start">
+      <xsl:with-param name="node" select="$list"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:call-template name="output-orderedlist-starting-number">
+    <xsl:with-param name="list" select="$list"/>
+    <xsl:with-param name="pi-start" select="$pi-start"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/maketoc.xsl b/applications/content/template/docbook/html/maketoc.xsl
new file mode 100644
index 0000000..5353b67
--- /dev/null
+++ b/applications/content/template/docbook/html/maketoc.xsl
@@ -0,0 +1,86 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+		version="1.0"
+                exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="docbook.xsl"/>
+<xsl:import href="chunk.xsl"/>
+
+<xsl:output method="xml" indent="no" encoding='utf-8'/>
+
+<xsl:param name="toc.list.type" select="'tocentry'"/>
+
+<!-- refentry in autotoc.xsl does not use subtoc, so must
+     handle it explicitly here. -->
+<xsl:template match="refentry" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+
+<xsl:template name="subtoc">
+  <xsl:param name="nodes" select="NOT-AN-ELEMENT"/>
+  <xsl:variable name="filename">
+    <xsl:apply-templates select="." mode="chunk-filename"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:if test="$chunk != 0">
+    <xsl:call-template name="indent-spaces"/>
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:variable>
+    <tocentry linkend="{$id}">
+      <xsl:processing-instruction name="dbhtml">
+        <xsl:text>filename="</xsl:text>
+        <xsl:value-of select="$filename"/>
+        <xsl:text>"</xsl:text>
+      </xsl:processing-instruction>
+      <xsl:text>&#xA;</xsl:text>
+      <xsl:apply-templates mode="toc" select="$nodes"/>
+      <xsl:call-template name="indent-spaces"/>
+    </tocentry>
+    <xsl:text>&#xA;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="indent-spaces">
+  <xsl:param name="node" select="."/>
+  <xsl:text>  </xsl:text>
+  <xsl:if test="$node/parent::*">
+    <xsl:call-template name="indent-spaces">
+      <xsl:with-param name="node" select="$node/parent::*"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/" priority="-1">
+  <xsl:text>&#xA;</xsl:text>
+  <toc role="chunk-toc">
+    <xsl:text>&#xA;</xsl:text>
+    <xsl:apply-templates select="/" mode="toc"/>
+  </toc>
+  <xsl:text>&#xA;</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/manifest.xsl b/applications/content/template/docbook/html/manifest.xsl
new file mode 100644
index 0000000..7e1e1f3
--- /dev/null
+++ b/applications/content/template/docbook/html/manifest.xsl
@@ -0,0 +1,22 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                version="1.0"
+                exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- OBSOLETE. The templates from this file were moved to                 -->
+<!-- chunk-common.xsl and chunk-code.xsl.                                 -->
+<!-- ==================================================================== -->
+
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/math.xsl b/applications/content/template/docbook/html/math.xsl
new file mode 100644
index 0000000..2d2ec2c
--- /dev/null
+++ b/applications/content/template/docbook/html/math.xsl
@@ -0,0 +1,271 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:mml="http://www.w3.org/1998/Math/MathML"
+                exclude-result-prefixes="mml"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="inlineequation">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="alt">
+</xsl:template>
+
+<xsl:template match="mathphrase">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- "Support" for MathML -->
+
+<xsl:template match="mml:*" xmlns:mml="http://www.w3.org/1998/Math/MathML">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+<!-- Support for TeX math in alt -->
+
+<xsl:template match="*" mode="collect.tex.math">
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename" select="$tex.math.file"/>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+      <xsl:choose>
+        <xsl:when test="$tex.math.in.alt = 'plain'">
+          <xsl:call-template name="tex.math.plain.head"/>
+          <xsl:apply-templates select="." mode="collect.tex.math.plain"/>
+          <xsl:call-template name="tex.math.plain.tail"/>
+        </xsl:when>
+        <xsl:when test="$tex.math.in.alt = 'latex'">
+          <xsl:call-template name="tex.math.latex.head"/>
+          <xsl:apply-templates select="." mode="collect.tex.math.latex"/>
+          <xsl:call-template name="tex.math.latex.tail"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            Unsupported TeX math notation: 
+            <xsl:value-of select="$tex.math.in.alt"/>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$chunker.output.encoding"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- PlainTeX -->
+
+<xsl:template name="tex.math.plain.head">
+  <xsl:text>\nopagenumbers &#xA;</xsl:text>
+</xsl:template>
+
+<xsl:template name="tex.math.plain.tail">
+  <xsl:text>\bye &#xA;</xsl:text>
+</xsl:template>
+
+<xsl:template match="inlineequation" mode="collect.tex.math.plain">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="graphic">
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="graphic"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.filename">
+          <xsl:with-param name="olist" select="inlinemediaobject/*"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="output.delims">
+    <xsl:call-template name="tex.math.output.delims"/>
+  </xsl:variable>
+  <xsl:variable name="tex" select="alt[@role='tex'] | inlinemediaobject/textobject[@role='tex']"/>
+  <xsl:if test="$tex">
+    <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:text>} &#xA;</xsl:text>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$</xsl:text>
+    </xsl:if>
+    <xsl:value-of select="$tex"/>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$ &#xA;</xsl:text>
+    </xsl:if>
+    <xsl:text>\vfill\eject &#xA;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="equation|informalequation" mode="collect.tex.math.plain">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="graphic">
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="graphic"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.filename">
+          <xsl:with-param name="olist" select="mediaobject/*"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="output.delims">
+    <xsl:call-template name="tex.math.output.delims"/>
+  </xsl:variable>
+  <xsl:variable name="tex" select="alt[@role='tex'] | mediaobject/textobject[@role='tex']"/>
+  <xsl:if test="$tex">
+    <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:text>} &#xA;</xsl:text>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$$</xsl:text>
+    </xsl:if>
+    <xsl:value-of select="$tex"/>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$$ &#xA;</xsl:text>
+    </xsl:if>
+    <xsl:text>\vfill\eject &#xA;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="collect.tex.math.plain"/>
+
+<!-- LaTeX -->
+
+<xsl:template name="tex.math.latex.head">
+  <xsl:text>\documentclass{article} &#xA;</xsl:text>
+  <xsl:text>\pagestyle{empty} &#xA;</xsl:text>
+  <xsl:text>\begin{document} &#xA;</xsl:text>
+</xsl:template>
+
+<xsl:template name="tex.math.latex.tail">
+  <xsl:text>\end{document} &#xA;</xsl:text>
+</xsl:template>
+
+<xsl:template match="inlineequation" mode="collect.tex.math.latex">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="graphic">
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="graphic"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.filename">
+          <xsl:with-param name="olist" select="inlinemediaobject/*"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="output.delims">
+    <xsl:call-template name="tex.math.output.delims"/>
+  </xsl:variable>
+  <xsl:variable name="tex" select="alt[@role='tex'] | inlinemediaobject/textobject[@role='tex']"/>
+  <xsl:if test="$tex">
+    <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:text>} &#xA;</xsl:text>
+    <xsl:if test="$output.delims != 0">  
+      <xsl:text>$</xsl:text>
+    </xsl:if>
+    <xsl:value-of select="$tex"/>
+    <xsl:if test="$output.delims != 0">  
+      <xsl:text>$ &#xA;</xsl:text>
+    </xsl:if>
+    <xsl:text>\newpage &#xA;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="equation|informalequation" mode="collect.tex.math.latex">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="graphic">
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="graphic"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.filename">
+          <xsl:with-param name="olist" select="mediaobject/*"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="output.delims">
+    <xsl:call-template name="tex.math.output.delims"/>
+  </xsl:variable>
+  <xsl:variable name="tex" select="alt[@role='tex'] | mediaobject/textobject[@role='tex']"/>
+  <xsl:if test="$tex">
+    <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:text>} &#xA;</xsl:text>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$$</xsl:text>
+    </xsl:if>
+    <xsl:value-of select="$tex"/>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$$ &#xA;</xsl:text>
+    </xsl:if>
+    <xsl:text>\newpage &#xA;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="collect.tex.math.latex"/>
+
+<!-- Extracting image filename from mediaobject and graphic elements -->
+
+<xsl:template name="select.mediaobject.filename">
+  <xsl:param name="olist"
+             select="imageobject|imageobjectco
+                     |videoobject|audioobject|textobject"/>
+
+  <xsl:variable name="mediaobject.index">
+    <xsl:call-template name="select.mediaobject.index">
+      <xsl:with-param name="olist" select="$olist"/>
+      <xsl:with-param name="count" select="1"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$mediaobject.index != ''">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object"
+                      select="$olist[position() = $mediaobject.index]"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="tex.math.output.delims">
+  <xsl:variable name="pi.delims">
+    <xsl:call-template name="pi.dbtex_delims">
+      <xsl:with-param name="node" select="descendant-or-self::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="result">
+    <xsl:choose>
+      <xsl:when test="$pi.delims = 'no'">0</xsl:when>
+      <xsl:when test="$pi.delims = '' and $tex.math.delims = 0">0</xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:value-of select="$result"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/oldchunker.xsl b/applications/content/template/docbook/html/oldchunker.xsl
new file mode 100644
index 0000000..353d366
--- /dev/null
+++ b/applications/content/template/docbook/html/oldchunker.xsl
@@ -0,0 +1,202 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:saxon="http://icl.com/saxon"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                xmlns:redirect="http://xml.apache.org/xalan/redirect"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+		version="1.1"
+                exclude-result-prefixes="doc"
+                extension-element-prefixes="saxon redirect lxslt">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This stylesheet works with Saxon and Xalan; for XT use xtchunker.xsl -->
+
+<!-- ==================================================================== -->
+
+<xsl:param name="default.encoding" select="'ISO-8859-1'" doc:type='string'/>
+
+<doc:param name="default.encoding" xmlns="">
+<refpurpose>Encoding used in generated HTML pages</refpurpose>
+<refdescription>
+<para>This encoding is used in files generated by chunking stylesheet. Currently
+only Saxon is able to change output encoding.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="saxon.character.representation" select="'entity;decimal'" doc:type='string'/>
+
+<doc:param name="saxon.character.representation" xmlns="">
+<refpurpose>Saxon character representation used in generated HTML pages</refpurpose>
+<refdescription>
+<para>This character representation is used in files generated by chunking stylesheet. If
+you want to suppress entity references for characters with direct representation 
+in default.encoding, set this parameter to value <literal>native</literal>. 
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+  <xsl:param name="base.dir" select="'./'"/>
+  <xsl:param name="base.name" select="''"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>Chunking isn't supported with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="$default.encoding"/>
+  <xsl:param name="indent" select="'no'"/>
+  <xsl:param name="content" select="''"/>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:if test="name(.) != ''">
+      <xsl:text> for </xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:if test="@id">
+        <xsl:text>(</xsl:text>
+        <xsl:value-of select="@id"/>
+        <xsl:text>)</xsl:text>
+      </xsl:if>
+    </xsl:if>
+  </xsl:message>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON 6.2')">
+      <!-- Saxon 6.2.x uses xsl:document -->
+      <xsl:document href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </xsl:document>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon uses saxon:output -->
+      <saxon:output file="{$filename}"
+                    href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </saxon:output>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan uses redirect -->
+      <redirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </redirect:write>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk.with.doctype">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="$default.encoding"/>
+  <xsl:param name="indent" select="'no'"/>
+  <xsl:param name="doctype-public" select="''"/>
+  <xsl:param name="doctype-system" select="''"/>
+  <xsl:param name="content" select="''"/>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:if test="name(.) != ''">
+      <xsl:text> for </xsl:text>
+      <xsl:value-of select="name(.)"/>
+    </xsl:if>
+  </xsl:message>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON 6.2')">
+      <!-- Saxon 6.2.x uses xsl:document -->
+      <xsl:document href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    doctype-public="{$doctype-public}"
+                    doctype-system="{$doctype-system}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </xsl:document>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon uses saxon:output -->
+      <saxon:output file="{$filename}"
+                    href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    doctype-public="{$doctype-public}"
+                    doctype-system="{$doctype-system}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </saxon:output>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan uses redirect -->
+      <redirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </redirect:write>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/onechunk.xsl b/applications/content/template/docbook/html/onechunk.xsl
new file mode 100644
index 0000000..857b188
--- /dev/null
+++ b/applications/content/template/docbook/html/onechunk.xsl
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                version="1.0"
+                exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="chunk.xsl"/>
+
+<!-- Ok, using the onechunk parameter makes this all work again. -->
+<!-- It does have the disadvantage that it only works for documents that have -->
+<!-- a root element that is considered a chunk by the chunk.xsl stylesheet. -->
+<!-- Ideally, onechunk would let anything be a chunk. But not today. -->
+
+<xsl:param name="onechunk" select="1"/>
+<xsl:param name="suppress.navigation">1</xsl:param>
+
+<xsl:template name="href.target.uri">
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/param.xml b/applications/content/template/docbook/html/param.xml
new file mode 100644
index 0000000..c4bc71d
--- /dev/null
+++ b/applications/content/template/docbook/html/param.xml
@@ -0,0 +1,11355 @@
+<?xml version="1.0" encoding="ASCII"?>
+<book version="5.0">
+<info>
+<title>HTML Parameter Reference</title>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author>
+  <personname>
+    <surname>Walsh</surname>
+    <firstname>Norman</firstname>
+  </personname>
+</author>
+<copyright>
+  <year>1999</year>
+  <year>2000</year>
+  <year>2001</year>
+  <year>2002</year>
+  <year>2003</year>
+  <year>2004</year>
+  <year>2005</year>
+  <year>2006</year>
+  <year>2007</year>
+ <year>2008</year>
+  <year>2009</year>
+  <year>2010</year>
+  <year>2011</year>
+  <holder>Norman Walsh</holder>
+</copyright>
+<abstract>
+  <para>This is reference documentation for all user-configurable
+  parameters in the DocBook XSL HTML stylesheets (for generating
+  HTML output).</para>
+</abstract>
+</info>
+<reference xml:id="admons"><title>Admonitions</title>
+<refentry version="5.0" xml:id="admon.graphics.extension">
+<refmeta>
+<refentrytitle>admon.graphics.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics.extension</refname>
+<refpurpose>Filename extension for admonition graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="admon.graphics.extension.frag">
+&lt;xsl:param name="admon.graphics.extension"&gt;.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the filename extension to use on admonition graphics.</para>
+
+<itemizedlist>
+  <para>The DocBook XSL distribution provides admonition graphics in the following formats:</para>
+  <listitem><para>GIF (extension: <filename class="extension">.gif</filename>)</para></listitem>
+  <listitem><para>PNG (extension: <filename class="extension">.png</filename>)</para></listitem>
+  <listitem><para>SVG (extension: <filename class="extension">.svg</filename>)</para></listitem>
+  <listitem><para>TIFF (extension: <filename class="extension">.tif</filename>)</para></listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="admon.graphics.path">
+<refmeta>
+<refentrytitle>admon.graphics.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics.path</refname>
+<refpurpose>Path to admonition graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="admon.graphics.path.frag">&lt;xsl:param name="admon.graphics.path"&gt;images/&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the path to the directory containing the admonition graphics
+(caution.png, important.png etc). This location is normally relative
+to the output html directory. See <parameter>base.dir</parameter></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="admon.graphics">
+<refmeta>
+<refentrytitle>admon.graphics</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics</refname>
+<refpurpose>Use graphics in admonitions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="admon.graphics.frag">
+&lt;xsl:param name="admon.graphics" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), admonitions are presented in an alternate style that uses
+a graphic.  Default graphics are provided in the distribution.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="admon.textlabel">
+<refmeta>
+<refentrytitle>admon.textlabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.textlabel</refname>
+<refpurpose>Use text label in admonitions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="admon.textlabel.frag">
+&lt;xsl:param name="admon.textlabel" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), admonitions are presented with a generated
+text label such as Note or Warning in the appropriate language.
+If zero, such labels are turned off, but any title child
+of the admonition element are still output.
+The default value is 1.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="admon.style">
+<refmeta>
+<refentrytitle>admon.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.style</refname>
+<refpurpose>Specifies the CSS style attribute that should be added to
+admonitions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="admon.style.frag">&lt;xsl:param name="admon.style"&gt;
+  &lt;xsl:value-of select="concat('margin-', $direction.align.start,            ': 0.5in; margin-', $direction.align.end, ': 0.5in;')"&gt;&lt;/xsl:value-of&gt;
+&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the value of the CSS <tag class="attribute">style</tag>
+attribute that should be added to admonitions.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="callouts"><title>Callouts</title>
+<refentry version="5.0" xml:id="callout.defaultcolumn">
+<refmeta>
+<refentrytitle>callout.defaultcolumn</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.defaultcolumn</refname>
+<refpurpose>Indicates what column callouts appear in by default</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.defaultcolumn.frag">
+&lt;xsl:param name="callout.defaultcolumn"&gt;60&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If a callout does not identify a column (for example, if it uses
+the <literal>linerange</literal> <tag class="attribute">unit</tag>),
+it will appear in the default column.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.graphics.extension">
+<refmeta>
+<refentrytitle>callout.graphics.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.extension</refname>
+<refpurpose>Filename extension for callout graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.graphics.extension.frag">
+&lt;xsl:param name="callout.graphics.extension"&gt;.png&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Sets the filename extension to use on callout graphics. </para>
+
+<itemizedlist>
+<para>The Docbook XSL distribution provides callout graphics in the following formats:</para>
+<listitem><para>SVG (extension: <filename class="extension">.svg</filename>)</para></listitem>
+<listitem><para>PNG (extension: <filename class="extension">.png</filename>)</para></listitem>
+<listitem><para>GIF (extension: <filename class="extension">.gif</filename>)</para></listitem>
+</itemizedlist>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.graphics.number.limit">
+<refmeta>
+<refentrytitle>callout.graphics.number.limit</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.number.limit</refname>
+<refpurpose>Number of the largest callout graphic</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.graphics.number.limit.frag">
+&lt;xsl:param name="callout.graphics.number.limit"&gt;15&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.graphics</parameter> is non-zero, graphics
+are used to represent callout numbers instead of plain text. The value
+of <parameter>callout.graphics.number.limit</parameter> is the largest
+number for which a graphic exists. If the callout number exceeds this
+limit, the default presentation "(plain text instead of a graphic)"
+will  be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.graphics.path">
+<refmeta>
+<refentrytitle>callout.graphics.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.path</refname>
+<refpurpose>Path to callout graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.graphics.path.frag">
+&lt;xsl:param name="callout.graphics.path"&gt;images/callouts/&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the path to the directory holding the callout graphics. his
+location is normally relative to the output html directory. see
+base.dir. Always terminate the directory with / since the graphic file
+is appended to this string, hence needs the separator.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.graphics">
+<refmeta>
+<refentrytitle>callout.graphics</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics</refname>
+<refpurpose>Use graphics for callouts?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.graphics.frag">
+&lt;xsl:param name="callout.graphics" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, callouts are presented with graphics (e.g., reverse-video
+circled numbers instead of "(1)", "(2)", etc.).
+Default graphics are provided in the distribution.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.list.table">
+<refmeta>
+<refentrytitle>callout.list.table</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.list.table</refname>
+<refpurpose>Present callout lists using a table?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.list.table.frag">
+&lt;xsl:param name="callout.list.table" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The default presentation of <tag>calloutlist</tag>s uses
+an HTML <tag>DL</tag> element. Some browsers don't align DLs very well
+if <parameter>callout.graphics</parameter> is used. With this option
+turned on, <tag>calloutlist</tag>s are presented in an HTML
+<tag>TABLE</tag>, which usually results in better alignment
+of the callout number with the callout description.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.unicode.number.limit">
+<refmeta>
+<refentrytitle>callout.unicode.number.limit</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode.number.limit</refname>
+<refpurpose>Number of the largest unicode callout character</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.unicode.number.limit.frag">
+&lt;xsl:param name="callout.unicode.number.limit"&gt;10&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.unicode</parameter>
+is non-zero, unicode characters are used to represent
+callout numbers. The value of
+<parameter>callout.unicode.number.limit</parameter>
+is
+the largest number for which a unicode character exists. If the callout number
+exceeds this limit, the default presentation "(nnn)" will always
+be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.unicode.start.character">
+<refmeta>
+<refentrytitle>callout.unicode.start.character</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode.start.character</refname>
+<refpurpose>First Unicode character to use, decimal value.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.unicode.start.character.frag">
+&lt;xsl:param name="callout.unicode.start.character"&gt;10102&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.graphics</parameter> is zero and <parameter>callout.unicode</parameter>
+is non-zero, unicode characters are used to represent
+callout numbers. The value of
+<parameter>callout.unicode.start.character</parameter>
+is the decimal unicode value used for callout number one. Currently, 
+only values 9312 and 10102 are supported in the stylesheets for this parameter. 
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callout.unicode">
+<refmeta>
+<refentrytitle>callout.unicode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode</refname>
+<refpurpose>Use Unicode characters rather than images for callouts.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callout.unicode.frag">&lt;xsl:param name="callout.unicode" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The stylesheets can use either an image of the numbers one to ten, or the single Unicode character which represents the numeral, in white on a black background. Use this to select the Unicode character option.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="callouts.extension">
+<refmeta>
+<refentrytitle>callouts.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callouts.extension</refname>
+<refpurpose>Enable the callout extension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="callouts.extension.frag">
+&lt;xsl:param name="callouts.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The callouts extension processes <tag>areaset</tag>
+elements in <tag>programlistingco</tag> and other text-based
+callout elements.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="ebnf"><title>EBNF</title>
+<refentry version="5.0" xml:id="ebnf.table.bgcolor">
+<refmeta>
+<refentrytitle>ebnf.table.bgcolor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.table.bgcolor</refname>
+<refpurpose>Background color for EBNF tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ebnf.table.bgcolor.frag">
+&lt;xsl:param name="ebnf.table.bgcolor"&gt;#F5DCB3&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the background color for EBNF tables (a pale brown). No
+<tag>bgcolor</tag> attribute is output if
+<parameter>ebnf.table.bgcolor</parameter> is set to the null string. </para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="ebnf.table.border">
+<refmeta>
+<refentrytitle>ebnf.table.border</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.table.border</refname>
+<refpurpose>Selects border on EBNF tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ebnf.table.border.frag">&lt;xsl:param name="ebnf.table.border" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the border on EBNF tables. If non-zero, the tables have
+borders, otherwise they don't.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="ebnf.assignment">
+<refmeta>
+<refentrytitle>ebnf.assignment</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.assignment</refname>
+<refpurpose>The EBNF production assignment operator</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ebnf.assignment.frag">
+&lt;xsl:param name="ebnf.assignment"&gt;
+&lt;code&gt;::=&lt;/code&gt;
+&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>ebnf.assignment</parameter> parameter determines what
+text is used to show <quote>assignment</quote> in <tag>production</tag>s
+in <tag>productionset</tag>s.</para>
+
+<para>While <quote><literal>::=</literal></quote> is common, so are several
+other operators.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="ebnf.statement.terminator">
+<refmeta>
+<refentrytitle>ebnf.statement.terminator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.statement.terminator</refname>
+<refpurpose>Punctuation that ends an EBNF statement.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ebnf.statement.terminator.frag">
+&lt;xsl:param name="ebnf.statement.terminator"&gt;&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>ebnf.statement.terminator</parameter> parameter determines what
+text is used to terminate each <tag>production</tag>
+in <tag>productionset</tag>.</para>
+
+<para>Some notations end each statement with a period.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="toc_index"><title>ToC/LoT/Index Generation</title>
+<refentry version="5.0" xml:id="annotate.toc">
+<refmeta>
+<refentrytitle>annotate.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotate.toc</refname>
+<refpurpose>Annotate the Table of Contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="annotate.toc.frag">&lt;xsl:param name="annotate.toc" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, TOCs will be annotated. At present, this just means
+that the <tag>refpurpose</tag> of <tag>refentry</tag>
+TOC entries will be displayed.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="autotoc.label.separator">
+<refmeta>
+<refentrytitle>autotoc.label.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>autotoc.label.separator</refname>
+<refpurpose>Separator between labels and titles in the ToC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="autotoc.label.separator.frag">
+&lt;xsl:param name="autotoc.label.separator"&gt;. &lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>String used to separate labels and titles in a table of contents.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="autotoc.label.in.hyperlink">
+<refmeta>
+<refentrytitle>autotoc.label.in.hyperlink</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>autotoc.label.in.hyperlink</refname>
+<refpurpose>Include label in hyperlinked titles in TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="autotoc.label.in.hyperlink.frag">&lt;xsl:param name="autotoc.label.in.hyperlink" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>autotoc.label.in.hyperlink</parameter> is non-zero, labels
+are included in hyperlinked titles in the TOC. If it is instead zero,
+labels are still displayed prior to the hyperlinked titles, but
+are not hyperlinked along with the titles.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="process.source.toc">
+<refmeta>
+<refentrytitle>process.source.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>process.source.toc</refname>
+<refpurpose>Process a non-empty <tag>toc</tag> element if it occurs in a source document?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="process.source.toc.frag">&lt;xsl:param name="process.source.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies that the contents of a non-empty "hard-coded"
+<tag>toc</tag> element in a source document are processed to
+generate a TOC in output.
+<note>
+  <para>This parameter has no effect on automated generation of
+  TOCs. An automated TOC may still be generated along with the
+  "hard-coded" TOC. To suppress automated TOC generation, adjust the
+  value of the <parameter>generate.toc</parameter> paramameter.</para>
+
+  <para>The <tag>process.source.toc</tag> parameter also has
+  no effect if the <tag>toc</tag> element is empty; handling
+  for empty <tag>toc</tag> is controlled by the
+  <parameter>process.empty.source.toc</parameter> parameter.</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="process.empty.source.toc">
+<refmeta>
+<refentrytitle>process.empty.source.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>process.empty.source.toc</refname>
+<refpurpose>Generate automated TOC if <tag>toc</tag> element occurs in a source document?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="process.empty.source.toc.frag">&lt;xsl:param name="process.empty.source.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies that if an empty <tag>toc</tag> element is found in a
+source document, an automated TOC is generated at this point in the
+document.
+<note>
+  <para>Depending on what the value of the
+  <parameter>generate.toc</parameter> parameter is, setting this
+  parameter to <literal>1</literal> could result in generation of
+  duplicate automated TOCs. So the
+  <parameter>process.empty.source.toc</parameter> is primarily useful
+  as an "override": by placing an empty <tag>toc</tag> in your
+  document and setting this parameter to <literal>1</literal>, you can
+  force a TOC to be generated even if <tag>generate.toc</tag>
+  says not to.</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="bridgehead.in.toc">
+<refmeta>
+<refentrytitle>bridgehead.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bridgehead.in.toc</refname>
+<refpurpose>Should bridgehead elements appear in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="bridgehead.in.toc.frag">&lt;xsl:param name="bridgehead.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>bridgehead</tag>s appear in the TOC. Note that
+this option is not fully supported and may be removed in a future
+version of the stylesheets.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="simplesect.in.toc">
+<refmeta>
+<refentrytitle>simplesect.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>simplesect.in.toc</refname>
+<refpurpose>Should <tag>simplesect</tag> elements appear in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="simplesect.in.toc.frag">&lt;xsl:param name="simplesect.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>simplesect</tag>s will be included in the TOC.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="manual.toc">
+<refmeta>
+<refentrytitle>manual.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>manual.toc</refname>
+<refpurpose>An explicit TOC to be used for the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="manual.toc.frag">
+&lt;xsl:param name="manual.toc"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>manual.toc</parameter> identifies an explicit TOC that
+will be used for building the printed TOC.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.list.type">
+<refmeta>
+<refentrytitle>toc.list.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dl</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ul</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ol</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.list.type</refname>
+<refpurpose>Type of HTML list element to use for Tables of Contents</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.list.type.frag">&lt;xsl:param name="toc.list.type"&gt;dl&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When an automatically generated Table of Contents (or List of Titles)
+is produced, this HTML element will be used to make the list.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.section.depth">
+<refmeta>
+<refentrytitle>toc.section.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.section.depth</refname>
+<refpurpose>How deep should recursive <tag>section</tag>s appear
+in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.section.depth.frag">&lt;xsl:param name="toc.section.depth"&gt;2&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the depth to which recursive sections should appear in the
+TOC.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.max.depth">
+<refmeta>
+<refentrytitle>toc.max.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.max.depth</refname>
+<refpurpose>How many levels should be created for each TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.max.depth.frag">&lt;xsl:param name="toc.max.depth"&gt;8&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximal depth of TOC on all levels.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.toc">
+<refmeta>
+<refentrytitle>generate.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">table</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.toc</refname>
+<refpurpose>Control generation of ToCs and LoTs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="generate.toc.frag">
+&lt;xsl:param name="generate.toc"&gt;
+appendix  toc,title
+article/appendix  nop
+article   toc,title
+book      toc,title,figure,table,example,equation
+chapter   toc,title
+part      toc,title
+preface   toc,title
+qandadiv  toc
+qandaset  toc
+reference toc,title
+sect1     toc
+sect2     toc
+sect3     toc
+sect4     toc
+sect5     toc
+section   toc
+set       toc,title
+&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter has a structured value. It is a table of space-delimited
+path/value pairs. Each path identifies some element in the source document
+using a restricted subset of XPath (only the implicit child axis, no wildcards,
+no predicates). Paths can be either relative or absolute.</para>
+
+<para>When processing a particular element, the stylesheets consult this table to
+determine if a ToC (or LoT(s)) should be generated.</para>
+
+<para>For example, consider the entry:</para>
+
+<screen>book toc,figure</screen>
+
+<para>This indicates that whenever a <tag>book</tag> is formatted, a
+Table Of Contents and a List of Figures should be generated. Similarly,</para>
+
+<screen>/chapter toc</screen>
+
+<para>indicates that whenever a document <emphasis>that has a root
+of</emphasis> <tag>chapter</tag> is formatted, a Table of
+Contents should be generated. The entry <literal>chapter</literal> would match
+all chapters, but <literal>/chapter</literal> matches only <tag>chapter</tag>
+document elements.</para>
+
+<para>Generally, the longest match wins. So, for example, if you want to distinguish
+articles in books from articles in parts, you could use these two entries:</para>
+
+<screen>book/article toc,figure
+part/article toc</screen>
+
+<para>Note that an article in a part can never match a <literal>book/article</literal>,
+so if you want nothing to be generated for articles in parts, you can simply leave
+that rule out.</para>
+
+<para>If you want to leave the rule in, to make it explicit that you're turning
+something off, use the value <quote>nop</quote>. For example, the following
+entry disables ToCs and LoTs for articles:</para>
+
+<screen>article nop</screen>
+
+<para>Do not simply leave the word <quote>article</quote> in the file
+without a matching value. That'd be just begging the silly little
+path/value parser to get confused.</para>
+
+<para>Section ToCs are further controlled by the
+<parameter>generate.section.toc.level</parameter> parameter.
+For a given section level to have a ToC, it must have both an entry in 
+<parameter>generate.toc</parameter> and be within the range enabled by
+<parameter>generate.section.toc.level</parameter>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.section.toc.level">
+<refmeta>
+<refentrytitle>generate.section.toc.level</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.section.toc.level</refname>
+<refpurpose>Control depth of TOC generation in sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="generate.section.toc.level.frag">
+&lt;xsl:param name="generate.section.toc.level" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>generate.section.toc.level</parameter> parameter
+controls the depth of <tag>section</tag> in which TOCs will be generated. Note
+that this is related to, but not the same as
+<parameter>toc.section.depth</parameter>, which controls the depth to
+which TOC entries will be generated in a given TOC.</para>
+<para>If, for example, <parameter>generate.section.toc.level</parameter>
+is <literal>3</literal>, TOCs will be generated in first, second, and third
+level sections, but not in fourth level sections.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.index">
+<refmeta>
+<refentrytitle>generate.index</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.index</refname>
+<refpurpose>Do you want an index?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="generate.index.frag">&lt;xsl:param name="generate.index" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specify if an index should be generated. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.method">
+<refmeta>
+<refentrytitle>index.method</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">basic</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kosek</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kimber</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.method</refname>
+<refpurpose>Select method used to group index entries in an index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.method.frag">
+&lt;xsl:param name="index.method"&gt;basic&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter lets you select which method to use for sorting and grouping
+ index entries in an index.
+Indexes in Latin-based languages that have accented characters typically
+sort together accented words and unaccented words.
+Thus <quote>&#193;</quote> (U+00C1 LATIN CAPITAL LETTER A WITH ACUTE) would sort together
+with <quote>A</quote> (U+0041 LATIN CAPITAL LETTER A), so both would appear in the <quote>A</quote>
+section of the index.
+Languages using other alphabets (such as Russian,  which is written in the Cyrillic alphabet)
+and languages using ideographic chararacters (such as Japanese)
+require grouping specific to the languages and alphabets.
+</para>
+
+<para>The default indexing method is limited.
+It can group accented characters in Latin-based languages only.
+It cannot handle non-Latin alphabets or ideographic languages.
+The other indexing methods require extensions of one type or
+another, and do not work with
+all XSLT processors, which is why they are not used by default.</para>
+
+<para>The three choices for indexing method are:</para>
+<variablelist>
+<varlistentry>
+<term><literal>basic</literal></term>
+<listitem>
+<para>
+(default)  Sort and groups words based only on the Latin alphabet.
+Words with accented Latin letters will group and sort with
+their respective primary letter, but
+words in non-Latin alphabets will be
+put in the <quote>Symbols</quote> section of the index.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>kosek</literal></term>
+<listitem>
+<para>
+This method sorts and groups words based on letter groups configured in
+the DocBook locale file for the given language.
+See, for example, the French locale file <filename>common/fr.xml</filename>.
+This method requires that the XSLT processor
+supports the EXSLT extensions (most do).
+It also requires support for using 
+user-defined functions in xsl:key (xsltproc does not).
+</para>
+<para>This method is suitable for any language for which you can
+list all the individual characters that should appear
+in each letter group in an index.
+It is probably not practical to use it for ideographic languages
+such as Chinese that have hundreds or thousands of characters.
+</para>
+
+<para>To use the kosek method, you must:</para>
+
+<orderedlist>
+<listitem>
+<para>Use a processor that supports its extensions, such as
+Saxon 6 or Xalan (xsltproc and Saxon 8 do not).
+</para>
+</listitem>
+<listitem>
+<para>Set the index.method parameter's value to <quote>kosek</quote>.
+</para>
+</listitem>
+<listitem>
+<para>Import the appropriate index extensions stylesheet module
+<filename>fo/autoidx-kosek.xsl</filename> or 
+<filename>html/autoidx-kosek.xsl</filename> into your
+customization.
+</para>
+</listitem>
+</orderedlist>
+
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>kimber</literal></term>
+<listitem>
+<para>
+This method uses extensions to the Saxon processor to implement
+sophisticated indexing processes. It uses its own 
+configuration file, which can include information for any number of
+languages. Each language's configuration can group
+words using one of two processes. In the
+enumerated process similar to that used in the kosek method,
+you indicate the groupings character-by-character.
+In the between-key process, you specify the
+break-points in the sort order that should start a new group.
+The latter configuration is useful for ideographic languages
+such as Chinese, Japanese, and Korean.
+You can also define your own collation algorithms and how you
+want mixed Latin-alphabet words sorted.</para>
+<itemizedlist>
+<listitem>
+<para>For a whitepaper describing the extensions, see:
+<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.innodata-isogen.com/knowledge_center/white_papers/back_of_book_for_xsl_fo.pdf">http://www.innodata-isogen.com/knowledge_center/white_papers/back_of_book_for_xsl_fo.pdf</link>.
+</para>
+</listitem>
+<listitem>
+<para>To download the extension library, see
+<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport">http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport</link>.
+</para>
+</listitem>
+</itemizedlist>
+
+<para>To use the kimber method, you must:</para>
+
+<orderedlist>
+<listitem>
+<para>Use Saxon (version 6 or 8) as your XSLT processor.
+</para>
+</listitem>
+<listitem>
+<para>Install and configure the Innodata Isogen library, using
+the documentation that comes with it.
+</para>
+</listitem>
+<listitem>
+<para>Set the index.method parameter's value to <quote>kimber</quote>.
+</para>
+</listitem>
+<listitem>
+<para>Import the appropriate index extensions stylesheet module
+<filename>fo/autoidx-kimber.xsl</filename> or 
+<filename>html/autoidx-kimber.xsl</filename> into your
+customization.
+</para>
+</listitem>
+</orderedlist>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.on.type">
+<refmeta>
+<refentrytitle>index.on.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.on.type</refname>
+<refpurpose>Select indexterms based on <tag class="attribute">type</tag>
+attribute value</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.on.type.frag">
+&lt;xsl:param name="index.on.type" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, 
+then an <tag>index</tag> element that has a
+<tag class="attribute">type</tag> attribute
+value will contain only those <tag>indexterm</tag>
+elements with a matching <tag class="attribute">type</tag> attribute value.
+If an <tag>index</tag> has no <tag class="attribute">type</tag>
+attribute or it is blank, then the index will contain
+all <tag>indexterm</tag>s in the current scope.
+</para>
+
+<para>
+If <literal>index.on.type</literal> is zero, then the
+<tag class="attribute">type</tag> attribute has no effect
+on selecting indexterms for an index.
+</para>
+
+<para>For those using DocBook version 4.2 or earlier,
+the <tag class="attribute">type</tag> attribute is not available
+for index terms.  However, you can achieve the same
+effect by using the <tag class="attribute">role</tag> attribute
+in the same manner on <tag>indexterm</tag>
+and <tag>index</tag>, and setting the stylesheet parameter 
+<parameter>index.on.role</parameter> to a nonzero value.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.on.role">
+<refmeta>
+<refentrytitle>index.on.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.on.role</refname>
+<refpurpose>Select indexterms based on <tag class="attribute">role</tag> value</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.on.role.frag">
+&lt;xsl:param name="index.on.role" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, 
+then an <tag>index</tag> element that has a
+<tag class="attribute">role</tag> attribute
+value will contain only those <tag>indexterm</tag>
+elements with a matching role value.
+If an <tag>index</tag> has no <tag class="attribute">role</tag>
+attribute or it is blank, then the index will contain
+all <tag>indexterm</tag>s in the current scope.
+</para>
+<para>
+If <literal>index.on.role</literal> is zero, then the
+<tag class="attribute">role</tag> attribute has no effect
+on selecting indexterms for an index.
+</para>
+
+<para>If you are using DocBook version 4.3 or later, you should
+use the <tag class="attribute">type</tag> attribute instead of <tag class="attribute">role</tag>
+on <tag>indexterm</tag> and <tag>index</tag>,
+and set the <parameter>index.on.type</parameter> to a nonzero
+value.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.links.to.section">
+<refmeta>
+<refentrytitle>index.links.to.section</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.links.to.section</refname>
+<refpurpose>HTML index entries link to container section title</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.links.to.section.frag">
+&lt;xsl:param name="index.links.to.section" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero, then an index entry in an index links
+directly to the location of the
+generated <tag>anchor</tag> that is output
+for the indexterm. If two identical indexterm elements
+exist in the same section, then both entries appear
+in the index with the same title but link to different
+locations.</para>
+
+<para>If non-zero, then an index entry in an index links to the
+section title containing the <tag>indexterm</tag>, rather than
+directly to the <tag>anchor</tag> output for the indexterm.
+Duplicate indexterm entries in the same section are dropped.
+</para>
+
+<para>The default value is 1, so index entries link to
+section titles by default.</para>
+
+<para>In both cases, the link text in an index entry is the
+title of the section containing the indexterm.
+That is because HTML does not have numbered pages.
+It also provides the reader with context information
+for each link.</para>
+
+<para>This parameter lets you choose which style of
+index linking you want. </para>
+
+<itemizedlist>
+<listitem>
+<para>When set to 0, an index entry takes you 
+to the precise location of its corresponding indexterm.
+However, if you have a lot of duplicate
+entries in sections, then you have a lot of duplicate
+titles in the index, which makes it more cluttered.
+The reader may not recognize why duplicate titles
+appear until they follow the links. Also, the links
+may land the reader in the middle of a section where the
+section title is not visible, which may also be
+confusing to the reader.</para>
+</listitem>
+<listitem>
+<para>When set to 1, an index entry link is
+less precise, but duplicate titles in the
+index entries are eliminated. 
+Landing on the section title location may confirm the reader's
+expectation that a link that
+shows a section title will take them to that section title,
+not a location within the section.
+</para>
+</listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.prefer.titleabbrev">
+<refmeta>
+<refentrytitle>index.prefer.titleabbrev</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.prefer.titleabbrev</refname>
+<refpurpose>Should abbreviated titles be used as back references?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.prefer.titleabbrev.frag">
+&lt;xsl:param name="index.prefer.titleabbrev" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, and if a <tag>titleabbrev</tag> is defined, the abbreviated title
+is used as the link text of a back reference in the index.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.term.separator">
+<refmeta>
+<refentrytitle>index.term.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.term.separator</refname>
+<refpurpose>Override for punctuation separating an index term 
+from its list of page references in an index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.term.separator.frag">
+&lt;xsl:param name="index.term.separator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you to override
+the text to insert between
+the end of an index term and its list of page references.
+Typically that might be a comma and a space.
+</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'term-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+fill in the content for this normally empty 
+override parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+For fo output, it could be an <tag>fo:leader</tag>
+element to provide space of a specific length, or a dot leader.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.number.separator">
+<refmeta>
+<refentrytitle>index.number.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.number.separator</refname>
+<refpurpose>Override for punctuation separating page numbers in index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.number.separator.frag">
+&lt;xsl:param name="index.number.separator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you to override the text to insert between
+page references in a formatted index entry.  Typically 
+that would be a comma and a space.
+</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'number-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+override the gentext with the content of this parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+</para>
+
+<para>In HTML index output, section title references are used instead of
+page number references.  This punctuation appears between
+such section titles in an HTML index.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="index.range.separator">
+<refmeta>
+<refentrytitle>index.range.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.range.separator</refname>
+<refpurpose>Override for punctuation separating the two numbers
+in a page range in index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="index.range.separator.frag">
+&lt;xsl:param name="index.range.separator"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you
+to override the text to insert between
+the two numbers of a page range in an index.
+This parameter is only used by those XSL-FO processors
+that support an extension for generating such page ranges
+(such as XEP).</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'range-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+override the gentext with the content of this parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+</para>
+
+<para>In HTML index output, section title references are used instead of
+page number references. So there are no page ranges
+and this parameter has no effect.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="dbk_ext"><title>Stylesheet Extensions</title>
+<refentry version="5.0" xml:id="linenumbering.everyNth">
+<refmeta>
+<refentrytitle>linenumbering.everyNth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.everyNth</refname>
+<refpurpose>Indicate which lines should be numbered</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="linenumbering.everyNth.frag">
+&lt;xsl:param name="linenumbering.everyNth"&gt;5&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If line numbering is enabled, everyNth line will be
+numbered. Note that numbering is one based, not zero based.
+</para>
+<para>See also <parameter>linenumbering.extension</parameter>,
+<parameter>linenumbering.separator</parameter>,
+<parameter>linenumbering.width</parameter> and
+<parameter>use.extensions</parameter></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="linenumbering.extension">
+<refmeta>
+<refentrytitle>linenumbering.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.extension</refname>
+<refpurpose>Enable the line numbering extension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="linenumbering.extension.frag">
+&lt;xsl:param name="linenumbering.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, verbatim environments (<tag>address</tag>, <tag>literallayout</tag>,
+<tag>programlisting</tag>, <tag>screen</tag>, <tag>synopsis</tag>) that specify line numbering will
+have line numbers.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="linenumbering.separator">
+<refmeta>
+<refentrytitle>linenumbering.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.separator</refname>
+<refpurpose>Specify a separator between line numbers and lines</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="linenumbering.separator.frag">
+&lt;xsl:param name="linenumbering.separator"&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The separator is inserted between line numbers and lines in the
+verbatim environment. The default value is a single white space.
+ Note the interaction with <parameter>linenumbering.width</parameter>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="linenumbering.width">
+<refmeta>
+<refentrytitle>linenumbering.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.width</refname>
+<refpurpose>Indicates the width of line numbers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="linenumbering.width.frag">
+&lt;xsl:param name="linenumbering.width"&gt;3&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If line numbering is enabled, line numbers will appear right
+justified in a field "width" characters wide.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="tablecolumns.extension">
+<refmeta>
+<refentrytitle>tablecolumns.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tablecolumns.extension</refname>
+<refpurpose>Enable the table columns extension function</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="tablecolumns.extension.frag">
+&lt;xsl:param name="tablecolumns.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The table columns extension function adjusts the widths of table
+columns in the HTML result to more accurately reflect the specifications
+in the CALS table.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="textinsert.extension">
+  <refmeta>
+    <refentrytitle>textinsert.extension</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>textinsert.extension</refname>
+    <refpurpose>Enables the textinsert extension element</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <programlisting xml:id="textinsert.extension.frag">
+  &lt;xsl:param name="textinsert.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+  </refsynopsisdiv>
+  <refsection><info><title>Description</title></info>
+    <para>The textinsert extension element inserts the contents of
+      a file into the result tree (as text).</para>
+    <note>
+      <para>To use the textinsert extension element, you must use
+        either Saxon or Xalan as your XSLT processor (it doesn&#8217;t
+        work with xsltproc), along with either the DocBook Saxon
+        extensions or DocBook Xalan extensions (for more
+        information about those extensions, see <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="InstallingAProcessor.html#SaxonExtensions">DocBook Saxon Extensions</link> and <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="InstallingAProcessor.html#XalanExtensions">DocBook Xalan Extensions</link>), and you must set both
+        the <parameter>use.extensions</parameter> and
+        <parameter>textinsert.extension</parameter> parameters to
+        <literal>1</literal>.</para>
+      <para>As an alternative to using the textinsert element,
+        consider using an Xinclude element with the
+        <literal>parse="text"</literal> attribute and value
+        specified, as detailed in <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="ExternalCode.html#XIncludeCode">Using XInclude for text inclusions</link>.</para>
+    </note>
+  </refsection>
+  <refsection><info><title>See Also</title></info>
+    <para>You can also use the <tag class="xmlpi">dbhtml-include&#160;href</tag> processing
+      instruction to insert external files &#8212; both files containing
+      plain text and files with markup content (including HTML
+      content).</para>
+  </refsection>
+  <refsection><info><title>More information</title></info>
+    <para>For how-to documentation on inserting contents of
+      external code files and other text files into output, see
+      <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="ExternalCode.html">External code files</link>.</para>
+    <para>For guidelines on inserting contents of
+      HTML files into output, see <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="InsertExtHtml.html">Inserting external HTML code</link>.</para>
+  </refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="textdata.default.encoding">
+<refmeta>
+<refentrytitle>textdata.default.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>textdata.default.encoding</refname>
+<refpurpose>Default encoding of external text files which are included
+using textdata element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="textdata.default.encoding.frag">
+&lt;xsl:param name="textdata.default.encoding"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the encoding of any external text files included using
+<tag>textdata</tag> element. This value is used only when you do
+not specify encoding by the appropriate attribute 
+directly on textdata. An empty string is interpreted as the system
+default encoding.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="graphicsize.extension">
+<refmeta>
+<refentrytitle>graphicsize.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphicsize.extension</refname>
+<refpurpose>Enable the getWidth()/getDepth() extension functions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="graphicsize.extension.frag">
+&lt;xsl:param name="graphicsize.extension" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero (and if <parameter>use.extensions</parameter> is non-zero
+and if you're using a processor that supports extension functions), the
+<function>getWidth</function> and <function>getDepth</function> functions
+will be used to extract image sizes from graphics.</para>
+
+<para>The main supported image formats are GIF, JPEG, and PNG. Somewhat cruder 
+support for EPS and PDF images is also available.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="graphicsize.use.img.src.path">
+<refmeta>
+<refentrytitle>graphicsize.use.img.src.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphicsize.use.img.src.path</refname>
+<refpurpose>Prepend <parameter>img.src.path</parameter> before
+filenames passed to extension functions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="graphicsize.use.img.src.path.frag">
+&lt;xsl:param name="graphicsize.use.img.src.path" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero <parameter>img.src.path</parameter> parameter will
+be appended before filenames passed to extension functions for
+measuring image dimensions.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="use.extensions">
+<refmeta>
+<refentrytitle>use.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.extensions</refname>
+<refpurpose>Enable extensions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="use.extensions.frag">
+&lt;xsl:param name="use.extensions" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extensions may be used. Each extension is
+further controlled by its own parameter. But if
+<parameter>use.extensions</parameter> is zero, no extensions will
+be used.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="labels"><title>Automatic labelling</title>
+<refentry version="5.0" xml:id="chapter.autolabel">
+<refmeta>
+<refentrytitle>chapter.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chapter.autolabel</refname>
+<refpurpose>Specifies the labeling format for Chapter titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="chapter.autolabel.frag">
+&lt;xsl:param name="chapter.autolabel" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then chapters will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (arabic).
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="appendix.autolabel">
+<refmeta>
+<refentrytitle>appendix.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>appendix.autolabel</refname>
+<refpurpose>Specifies the labeling format for Appendix titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="appendix.autolabel.frag">
+&lt;xsl:param name="appendix.autolabel"&gt;A&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then appendices will be numbered using the
+parameter value as the number format if the value matches one of the
+following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (upperalpha).
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="part.autolabel">
+<refmeta>
+<refentrytitle>part.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>part.autolabel</refname>
+<refpurpose>Specifies the labeling format for Part titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="part.autolabel.frag">
+&lt;xsl:param name="part.autolabel"&gt;I&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then parts will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (upperroman).
+</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="reference.autolabel">
+<refmeta>
+<refentrytitle>reference.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>reference.autolabel</refname>
+<refpurpose>Specifies the labeling format for Reference titles</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="reference.autolabel.frag">
+  &lt;xsl:param name="reference.autolabel"&gt;I&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, references will be numbered using the parameter
+  value as the number format if the value matches one of the
+  following:
+</para>
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+<para>Any non-zero value other than the above will generate
+the default number format (upperroman).
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="preface.autolabel">
+<refmeta>
+<refentrytitle>preface.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>preface.autolabel</refname>
+<refpurpose>Specifices the labeling format for Preface titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="preface.autolabel.frag">&lt;xsl:param name="preface.autolabel" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero then prefaces will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (arabic).
+</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qandadiv.autolabel">
+<refmeta>
+<refentrytitle>qandadiv.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qandadiv.autolabel</refname>
+<refpurpose>Are divisions in QAndASets enumerated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qandadiv.autolabel.frag">&lt;xsl:param name="qandadiv.autolabel" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, unlabeled qandadivs will be enumerated.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.autolabel">
+<refmeta>
+<refentrytitle>section.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.autolabel</refname>
+<refpurpose>Are sections enumerated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.autolabel.frag">&lt;xsl:param name="section.autolabel" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), unlabeled sections will be enumerated.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.autolabel.max.depth">
+<refmeta>
+<refentrytitle>section.autolabel.max.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.autolabel.max.depth</refname>
+<refpurpose>The deepest level of sections that are numbered.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.autolabel.max.depth.frag">
+&lt;xsl:param name="section.autolabel.max.depth"&gt;8&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When section numbering is turned on by the
+<parameter>section.autolabel</parameter> parameter, then this
+parameter controls the depth of <tag>section</tag> nesting that is
+numbered.  Sections nested to a level deeper than this value will not
+be numbered.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="section.label.includes.component.label">
+<refmeta>
+<refentrytitle>section.label.includes.component.label</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.label.includes.component.label</refname>
+<refpurpose>Do section labels include the component label?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="section.label.includes.component.label.frag">&lt;xsl:param name="section.label.includes.component.label" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, section labels are prefixed with the label of the
+component that contains them.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="label.from.part">
+<refmeta>
+<refentrytitle>label.from.part</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>label.from.part</refname>
+<refpurpose>Renumber components in each part?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="label.from.part.frag">
+&lt;xsl:param name="label.from.part" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>label.from.part</parameter> is non-zero, then
+  numbering of components &#8212; <tag>preface</tag>,
+  <tag>chapter</tag>, <tag>appendix</tag>, and
+  <tag>reference</tag> (when <tag>reference</tag> occurs at the
+  component level) &#8212; is re-started within each
+  <tag>part</tag>.</para>
+<para>If <parameter>label.from.part</parameter> is zero (the
+  default), numbering of components is <emphasis>not</emphasis>
+  re-started within each <tag>part</tag>; instead, components are
+  numbered sequentially throughout each <tag>book</tag>,
+  regardless of whether or not they occur within <tag>part</tag>
+  instances.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="component.label.includes.part.label">
+<refmeta>
+<refentrytitle>component.label.includes.part.label</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>component.label.includes.part.label</refname>
+<refpurpose>Do component labels include the part label?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="component.label.includes.part.label.frag">&lt;xsl:param name="component.label.includes.part.label" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, number labels for <tag>chapter</tag>,
+<tag>appendix</tag>, and other component elements are prefixed with
+the label of the part element that contains them.  So you might see
+Chapter II.3 instead of Chapter 3.  Also, the labels for formal
+elements such as <tag>table</tag> and <tag>figure</tag> will include
+the part label.  If there is no part element container, then no prefix
+is generated.
+</para>
+<para>
+This feature is most useful when the
+<parameter>label.from.part</parameter> parameter is turned on.
+In that case, there would be more than one <tag>chapter</tag>
+<quote>1</quote>, and the extra part label prefix will identify
+each chapter unambiguously.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+
+<reference xml:id="html"><title>HTML</title>
+<refentry version="5.0" xml:id="html.base">
+<refmeta>
+<refentrytitle>html.base</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.base</refname>
+<refpurpose>An HTML base URI</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.base.frag">
+&lt;xsl:param name="html.base"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If html.base is set, it is used for the <tag>base</tag> element
+in the <tag>head</tag> of the html documents.  The parameter specifies
+the base URL for all relative URLs in the document.  This is useful
+for dynamically served html where the base URI needs to be
+shifted.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="html.stylesheet">
+<refmeta>
+<refentrytitle>html.stylesheet</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.stylesheet</refname>
+<refpurpose>Name of the stylesheet(s) to use in the generated HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.stylesheet.frag">
+&lt;xsl:param name="html.stylesheet"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>html.stylesheet</parameter> parameter is either
+empty, indicating that no stylesheet <tag>link</tag> tag should be
+generated in the html output, or it is a list of one or more
+stylesheet files.</para>
+
+<para>Multiple stylesheets are space-delimited. If you need to
+reference a stylesheet URI that includes a space, encode it with
+<literal>%20</literal>. A separate html <literal>link</literal> element will
+be generated for each stylesheet in the order they are listed in the
+parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="html.stylesheet.type">
+<refmeta>
+<refentrytitle>html.stylesheet.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.stylesheet.type</refname>
+<refpurpose>The type of the stylesheet used in the generated HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.stylesheet.type.frag">&lt;xsl:param name="html.stylesheet.type"&gt;text/css&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The type of the stylesheet to place in the HTML <tag>link</tag> tag.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="css.decoration">
+<refmeta>
+<refentrytitle>css.decoration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>css.decoration</refname>
+<refpurpose>Enable CSS decoration of elements</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="css.decoration.frag">
+&lt;xsl:param name="css.decoration" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, then html elements produced by the stylesheet may be
+decorated with <literal>style</literal> attributes.  For example, the
+<literal>li</literal> tags produced for list items may include a
+fragment of CSS in the <literal>style</literal> attribute which sets
+the CSS property "list-style-type".
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="html.script">
+<refmeta>
+<refentrytitle>html.script</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.script</refname>
+<refpurpose>Name of the script(s) to use in the generated HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.script.frag">
+&lt;xsl:param name="html.script"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>html.script</parameter> parameter is either
+empty (default), indicating that no <tag>script</tag> element should be
+generated in the html output, or it is a list of one or more
+script locations.</para>
+
+<para>Multiple script locations are space-delimited. If you need to
+reference a script URI that includes a space, encode it with
+<literal>%20</literal>. A separate html <literal>script</literal> element will
+be generated for each script in the order they are listed in the
+parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="html.script.type">
+<refmeta>
+<refentrytitle>html.script.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.script.type</refname>
+<refpurpose>The type of script used in the generated HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.script.type.frag">&lt;xsl:param name="html.script.type"&gt;text/javascript&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The type of script to place in the HTML <tag>script</tag> element.
+Specifically, the value of the <tag>script</tag> element's <tag>type</tag>
+attribute.
+The default value is <literal>text/javascript</literal>.
+This param is used only when the stylesheet parameter
+<tag>html.script</tag> is non-blank and specifies the location of a script.</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="spacing.paras">
+<refmeta>
+<refentrytitle>spacing.paras</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>spacing.paras</refname>
+<refpurpose>Insert additional &lt;p&gt; elements for spacing?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="spacing.paras.frag">
+&lt;xsl:param name="spacing.paras" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When non-zero, additional, empty paragraphs are inserted in
+several contexts (for example, around informal figures), to create a
+more pleasing visual appearance in many browsers.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="emphasis.propagates.style">
+<refmeta>
+<refentrytitle>emphasis.propagates.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>emphasis.propagates.style</refname>
+<refpurpose>Pass emphasis role attribute through to HTML?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="emphasis.propagates.style.frag">
+&lt;xsl:param name="emphasis.propagates.style" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, the <literal>role</literal> attribute of
+<tag>emphasis</tag> elements will be passed through to the HTML as a
+class attribute on a <literal>span</literal> that surrounds the
+emphasis.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="para.propagates.style">
+<refmeta>
+<refentrytitle>para.propagates.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>para.propagates.style</refname>
+<refpurpose>Pass para role attribute through to HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="para.propagates.style.frag">
+&lt;xsl:param name="para.propagates.style" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, the role attribute of <tag>para</tag> elements
+will be passed through to the HTML as a class attribute on the
+<tag>p</tag> generated for the paragraph.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="phrase.propagates.style">
+<refmeta>
+<refentrytitle>phrase.propagates.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>phrase.propagates.style</refname>
+<refpurpose>Pass phrase role attribute through to HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="phrase.propagates.style.frag">
+&lt;xsl:param name="phrase.propagates.style" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the role attribute of <tag>phrase</tag> elements
+will be passed through to the HTML as a <literal>class</literal>
+attribute on a <literal>span</literal> that surrounds the
+phrase.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="entry.propagates.style">
+<refmeta>
+<refentrytitle>entry.propagates.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>entry.propagates.style</refname>
+<refpurpose>Pass entry role attribute through to HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="entry.propagates.style.frag">
+&lt;xsl:param name="entry.propagates.style" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, the role attribute of <tag>entry</tag> elements
+will be passed through to the HTML as a class attribute on the
+<tag>td</tag> or <tag>th</tag> generated for the table
+cell.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="html.longdesc">
+<refmeta>
+<refentrytitle>html.longdesc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.longdesc</refname>
+<refpurpose>Should longdesc URIs be created?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="html.longdesc.frag">
+&lt;xsl:param name="html.longdesc" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, HTML files will be created for the
+<literal>longdesc</literal> attribute. These files
+are created from the <tag>textobject</tag>s in
+<tag>mediaobject</tag>s and
+<tag>inlinemediaobject</tag>.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="html.longdesc.link">
+<refmeta>
+<refentrytitle>html.longdesc.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.longdesc.link</refname>
+<refpurpose>Should a link to the longdesc be included in the HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.longdesc.link.frag">
+&lt;xsl:param name="html.longdesc.link" select="$html.longdesc"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, links will be created to the
+HTML files created for the
+<literal>longdesc</literal> attribute. It makes no
+sense to enable this option without also enabling the
+<parameter>html.longdesc</parameter> parameter.</para>
+
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="make.valid.html">
+<refmeta>
+<refentrytitle>make.valid.html</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.valid.html</refname>
+<refpurpose>Attempt to make sure the HTML output is valid HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="make.valid.html.frag">
+&lt;xsl:param name="make.valid.html" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>make.valid.html</parameter> is true, the stylesheets take
+extra effort to ensure that the resulting HTML is valid. This may mean that some
+<tag>para</tag> tags are translated into HTML <tag>div</tag>s or
+that other substitutions occur.</para>
+
+<para>This parameter is different from <parameter>html.cleanup</parameter>
+because it changes the resulting markup; it does not use extension functions
+to manipulate result-tree-fragments and is therefore applicable to any
+XSLT processor.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="html.cleanup">
+<refmeta>
+<refentrytitle>html.cleanup</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.cleanup</refname>
+<refpurpose>Attempt to clean up the resulting HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.cleanup.frag">
+&lt;xsl:param name="html.cleanup" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, and if the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.exslt.org/">EXSLT</link>
+extensions are supported by your processor, the resulting HTML will be
+<quote>cleaned up</quote>. This improves the chances that the
+resulting HTML will be valid. It may also improve the formatting of
+some elements.</para>
+
+<para>This parameter is different from <parameter>make.valid.html</parameter>
+because it uses extension functions to manipulate result-tree-fragments.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="html.append">
+<refmeta>
+<refentrytitle>html.append</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.append</refname>
+<refpurpose>Specifies content to append to HTML output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.append.frag">&lt;xsl:param name="html.append"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies content to append to the end of HTML files output by
+the <filename>html/docbook.xsl</filename> stylesheet, after the
+closing <code>&lt;html&gt;</code> tag. You probably don&#8217;t want to set any
+value for this parameter; but if you do, the only value it should ever
+be set to is a newline character: <code>&amp;#x0a;</code> or
+<code>&amp;#10;</code></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="draft.mode">
+<refmeta>
+<refentrytitle>draft.mode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>draft.mode</refname>
+<refpurpose>Select draft mode</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="draft.mode.frag">
+&lt;xsl:param name="draft.mode"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects draft mode. If <parameter>draft.mode</parameter> is
+<quote><literal>yes</literal></quote>, the entire document will be treated
+as a draft. If it is <quote><literal>no</literal></quote>, the entire document
+will be treated as a final copy. If it is <quote><literal>maybe</literal></quote>,
+individual sections will be treated as draft or final independently, depending
+on how their <literal>status</literal> attribute is set.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="draft.watermark.image">
+<refmeta>
+<refentrytitle>draft.watermark.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>draft.watermark.image</refname>
+<refpurpose>The URI of the image to be used for draft watermarks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="draft.watermark.image.frag">
+&lt;xsl:param name="draft.watermark.image"&gt;images/draft.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The image to be used for draft watermarks.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.id.attributes">
+<refmeta>
+<refentrytitle>generate.id.attributes</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.id.attributes</refname>
+<refpurpose>Generate ID attributes on container elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="generate.id.attributes.frag">
+&lt;xsl:param name="generate.id.attributes" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the HTML stylesheet will generate ID attributes on
+containers. For example, the markup:</para>
+
+<screen>&lt;section id="foo"&gt;&lt;title&gt;Some Title&lt;/title&gt;
+&lt;para&gt;Some para.&lt;/para&gt;
+&lt;/section&gt;</screen>
+
+<para>might produce:</para>
+
+<screen>&lt;div class="section" id="foo"&gt;
+&lt;h2&gt;Some Title&lt;/h2&gt;
+&lt;p&gt;Some para.&lt;/p&gt;
+&lt;/div&gt;</screen>
+
+<para>The alternative is to generate anchors:</para>
+
+<screen>&lt;div class="section"&gt;
+&lt;h2&gt;&lt;a name="foo"&gt;&lt;/a&gt;Some Title&lt;/h2&gt;
+&lt;p&gt;Some para.&lt;/p&gt;
+&lt;/div&gt;</screen>
+
+<para>Because the <tag class="attribute">name</tag> attribute of
+the <tag>a</tag> element and the <tag class="attribute">id</tag>
+attribute of other tags are both of type <quote>ID</quote>, producing both
+generates invalid documents.</para>
+
+<para>As of version 1.50, you can use this switch to control which type of
+identifier is generated. For backwards-compatibility, generating
+<tag>a</tag> anchors is preferred.</para>
+
+<para>Note: at present, this switch is incompletely implemented.
+Disabling ID attributes will suppress them, but enabling ID attributes
+will not suppress the anchors.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.consistent.ids">
+<refmeta>
+<refentrytitle>generate.consistent.ids</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.consistent.ids</refname>
+<refpurpose>Generate consistent id values if document is unchanged</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="generate.consistent.ids.frag">
+&lt;xsl:param name="generate.consistent.ids" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When the stylesheet assigns an id value to an output element,
+the generate-id() function may be used.  That function may not
+produce consistent values between runs.  Version control
+systems may misidentify the changing id values as changes
+to the document.</para>
+
+<para>If you set this parameter's value to 1, then the
+template named <literal>object.id</literal> will replace
+the use of the function generate-id() with
+<literal>&lt;xsl:number level="multiple" count="*"/&gt;</literal>.
+This counts preceding elements to generate a unique number for
+the id value.</para>
+
+<caution>
+<para>This param does not associate permanent unique id values
+with particular elements.
+The id values are consistent only as long as the document
+structure does not change.
+If the document structure changes, then the counting
+of elements changes, and all id values after
+the first such change may be different, even when there is
+no change to the element itself or its output.
+</para>
+</caution>
+
+<para>The default value of this parameter is zero, so generate-id() is used
+by default.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.meta.abstract">
+<refmeta>
+<refentrytitle>generate.meta.abstract</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.meta.abstract</refname>
+<refpurpose>Generate HTML <tag>META</tag> element from <tag>abstract</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="generate.meta.abstract.frag">
+&lt;xsl:param name="generate.meta.abstract" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, document abstracts will be reproduced in the HTML
+<literal>head</literal>, with <literal>&gt;meta name="description" content="..."</literal></para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="make.clean.html">
+<refmeta>
+<refentrytitle>make.clean.html</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.clean.html</refname>
+<refpurpose>Make HTML conform to modern coding standards</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="make.clean.html.frag">
+&lt;xsl:param name="make.clean.html" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>make.clean.html</parameter> is true, the stylesheets take
+extra effort to ensure that the resulting HTML is conforms to
+modern HTML coding standards.  In addition to eliminating
+excessive and noncompliant coding, it moves presentation
+HTML coding to a CSS stylesheet.</para>
+
+<para>The resulting HTML is dependent on
+CSS for formatting, and so the stylesheet is capable of
+generating a supporting CSS file. The <parameter>docbook.css.source</parameter>
+and <parameter>custom.css.source</parameter> parameters control
+how a CSS file is generated.</para>
+
+<para>If you require your CSS to reside in the HTML 
+<tag>head</tag> element, then the <parameter>generate.css.header</parameter>
+can be used to do that.</para>
+
+<para>The <parameter>make.clean.html</parameter> parameter is
+different from <parameter>html.cleanup</parameter>
+because the former changes the resulting markup; it does not use extension functions
+like the latter to manipulate result-tree-fragments,
+and is therefore applicable to any XSLT processor.</para>
+
+<para>If <parameter>make.clean.html</parameter> is set to zero (the default),
+then the stylesheet retains its original 
+<quote>old style</quote>
+HTML formatting features.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="docbook.css.source">
+  <refmeta>
+    <refentrytitle>docbook.css.source</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>docbook.css.source</refname>
+    <refpurpose>Name of the default CSS input file</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting xml:id="docbook.css.source.frag">&lt;xsl:param name="docbook.css.source"&gt;docbook.css.xml&lt;/xsl:param&gt;</programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+<para>The <parameter>docbook.css.source</parameter> parameter
+specifies the name of the file containing the default DocBook
+CSS styles.  Those styles are necessary when the
+<parameter>make.clean.html</parameter> parameter is nonzero.</para>
+
+<para>The file is a well-formed XML file that
+must consist of a single <tag>style</tag> root
+element that contains CSS styles as its text content.
+The default value of the parameter (and filename)
+is <literal>docbook.css.xml</literal>.
+The stylesheets ship with the default file. You can substitute
+your own and specify its path in this parameter.</para>
+
+<para>If <parameter>docbook.css.source</parameter> is not blank,
+and <parameter>make.clean.html</parameter> is nonzero, then
+the stylesheet takes the following actions:</para>
+
+<orderedlist>
+  <listitem>
+    <para>The stylesheet uses the XSLT <literal>document()</literal>
+    function to open the file specified by the parameter and
+    load it into a variable.</para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet forms an output pathname consisting of the
+    value of the <parameter>base.dir</parameter> parameter (if it is set)
+    and the value of <parameter>docbook.css.source</parameter>,
+    with the <literal>.xml</literal> suffix stripped off.
+    </para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet removes the <tag>style</tag>
+    wrapper element and writes just the CSS text content to the output file.</para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet adds a <tag>link</tag> element to the
+    HTML <tag>HEAD</tag> element to reference the external CSS stylesheet.
+    For example:</para>
+    <programlisting>&lt;link rel="stylesheet" href="docbook.css" type="text/css"&gt;
+    </programlisting>
+    <para>However, if the <parameter>docbook.css.link</parameter>
+    parameter is set to zero, then no <tag>link</tag> is written
+    for the default CSS file.  That is useful if a custom
+    CSS file will import the default CSS stylesheet to ensure
+    proper cascading of styles.</para>
+  </listitem>
+</orderedlist>
+
+<para>If the <parameter>docbook.css.source</parameter> parameter
+is changed from its default <literal>docbook.css.xml</literal> to blank,
+then no default CSS is generated. Likewise if the
+<parameter>make.clean.html</parameter> parameter is set to zero,
+then no default CSS is generated. The 
+<parameter>custom.css.source</parameter> parameter can be used
+instead to generate a complete custom CSS file.</para>
+
+<para>You can use the <parameter>generate.css.header</parameter>
+parameter to instead write the CSS to each HTML <tag>HEAD</tag>
+element in a <tag>style</tag> tag instead of an external CSS file.</para>
+
+  </refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="docbook.css.link">
+<refmeta>
+<refentrytitle>docbook.css.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>docbook.css.link</refname>
+<refpurpose>Insert a link referencing the default CSS stylesheet</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="docbook.css.link.frag">
+&lt;xsl:param name="docbook.css.link" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The stylesheets are capable of generating a default
+CSS stylesheet file.  The parameters 
+<parameter>make.clean.html</parameter> and
+<parameter>docbook.css.source</parameter> control that feature.</para>
+
+<para>Normally if a default CSS file is generated, then 
+the stylesheet inserts a <tag>link</tag> tag in the HTML
+<tag>HEAD</tag> element to reference it.
+However, you can omit that <tag>link</tag> reference if
+you set the <parameter>docbook.css.link</parameter> to zero
+(1 is the default).</para>
+
+<para>This parameter is useful when you want to import the 
+default CSS into a custom CSS file generated using the
+<parameter>custom.css.source</parameter> parameter.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="custom.css.source">
+  <refmeta>
+    <refentrytitle>custom.css.source</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>custom.css.source</refname>
+    <refpurpose>Name of a custom CSS input file</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting xml:id="custom.css.source.frag">&lt;xsl:param name="custom.css.source"&gt;&lt;/xsl:param&gt;</programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+<para>The <parameter>custom.css.source</parameter>
+parameter enables you to add CSS styles to DocBook's
+HTML output.</para>
+
+<para>The parameter
+specifies the name of a file containing custom
+CSS styles.  The file must be a well-formed XML file that
+consists of a single <tag>style</tag> root
+element that contains CSS styles as its text content.
+For example:</para>
+<programlisting>&lt;?xml version="1.0"?&gt;
+&lt;style&gt;
+h2 {
+  font-weight: bold;
+  color: blue;
+}
+...
+&lt;/style&gt;
+</programlisting>
+
+<para>The filename specified by the parameter
+should have a <literal>.xml</literal>
+filename suffix, although that is not required.
+The default value of this parameter is blank.</para>
+
+<para>If <parameter>custom.css.source</parameter> is not blank, then
+the stylesheet takes the following actions.
+These actions take place regardless of the value of
+the <parameter>make.clean.html</parameter> parameter.</para>
+
+<orderedlist>
+  <listitem>
+    <para>The stylesheet uses the XSLT <literal>document()</literal>
+    function to open the file specified by the parameter and
+    load it into a variable.</para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet forms an output pathname consisting of the
+    value of the <parameter>base.dir</parameter> parameter (if it is set)
+    and the value of <parameter>custom.css.source</parameter>,
+    with the <literal>.xml</literal> suffix stripped off.
+    </para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet removes the <tag>style</tag>
+    wrapper element and writes just the CSS text content to the output file.</para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet adds a <tag>link</tag> element to the
+    HTML <tag>HEAD</tag> element to reference this external CSS stylesheet.
+    For example:
+    <programlisting>&lt;link rel="stylesheet" href="custom.css" type="text/css"&gt;
+    </programlisting>
+    </para>
+  </listitem>
+</orderedlist>
+
+
+
+<para>If the <parameter>make.clean.html</parameter> parameter is nonzero
+(the default is zero),
+and if the <parameter>docbook.css.source</parameter> parameter
+is not blank (the default is not blank),
+then the stylesheet will also generate a default CSS file
+and add a <tag>link</tag> tag to reference it.
+The <tag>link</tag> to the custom CSS comes after the 
+<tag>link</tag> to the default, so it should cascade properly
+in most browsers.
+If you do not want two <tag>link</tag> tags, and
+instead want your custom CSS to import the default generated
+CSS file, then do the following:
+</para>
+
+<orderedlist>
+  <listitem>
+    <para>Add a line like the following to your custom CSS source file:</para>
+    <programlisting>@import url("docbook.css")
+    </programlisting>
+  </listitem>
+  <listitem>
+    <para>Set the <parameter>docbook.css.link</parameter> parameter 
+    to zero. This will omit the <tag>link</tag> tag
+    that references the default CSS file.</para>
+  </listitem>
+</orderedlist>
+
+<para>If you set <parameter>make.clean.html</parameter> to nonzero but
+you do not want the default CSS generated, then also set
+the <parameter>docbook.css.source</parameter> parameter to blank.
+Then no default CSS will be generated, and so
+all CSS styles must come from your custom CSS file.</para>
+
+<para>You can use the <parameter>generate.css.header</parameter>
+parameter to instead write the CSS to each HTML <tag>HEAD</tag>
+element in a <tag>style</tag> tag instead of an external CSS file.</para>
+
+  </refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.css.header">
+<refmeta>
+<refentrytitle>generate.css.header</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.css.header</refname>
+<refpurpose>Insert generated CSS styles in HEAD element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="generate.css.header.frag">
+&lt;xsl:param name="generate.css.header" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The stylesheets are capable of generating both default
+and custom CSS stylesheet files.  The parameters 
+<parameter>make.clean.html</parameter>,
+<parameter>docbook.css.source</parameter>, and
+<parameter>custom.css.source</parameter> control that feature.</para>
+
+<para>If you require that CSS styles reside in the HTML 
+<tag>HEAD</tag> element instead of external CSS files,
+then set the <parameter>generate.css.header</parameter>
+parameter to nonzero (it is zero by default).
+Then instead of generating the CSS in external files,
+they are wrapped in <tag>style</tag> elements in
+the <tag>HEAD</tag> element of each HTML output file.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="xslt"><title>XSLT Processing</title>
+<refentry version="5.0" xml:id="rootid">
+<refmeta>
+<refentrytitle>rootid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>rootid</refname>
+<refpurpose>Specify the root element to format</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="rootid.frag">
+&lt;xsl:param name="rootid"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>rootid</parameter> is not empty, it must be the
+value of an ID that occurs in the document being formatted. The entire
+document will be loaded and parsed, but formatting will begin at the
+element identified, rather than at the root. For example, this allows
+you to process only <tag>chapter</tag> 4 of a <tag>book</tag>.</para>
+<para>Because the entire document is available to the processor, automatic
+numbering, cross references, and other dependencies are correctly
+resolved.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="suppress.navigation">
+<refmeta>
+<refentrytitle>suppress.navigation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>suppress.navigation</refname>
+<refpurpose>Disable header and footer navigation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="suppress.navigation.frag">
+&lt;xsl:param name="suppress.navigation" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, header and footer navigation will be suppressed.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="suppress.header.navigation">
+<refmeta>
+<refentrytitle>suppress.header.navigation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>suppress.header.navigation</refname>
+<refpurpose>Disable header navigation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="suppress.header.navigation.frag">
+&lt;xsl:param name="suppress.header.navigation" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, header navigation will be suppressed.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="suppress.footer.navigation">
+<refmeta>
+<refentrytitle>suppress.footer.navigation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>suppress.footer.navigation</refname>
+<refpurpose>Disable footer navigation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="suppress.footer.navigation.frag">&lt;xsl:param name="suppress.footer.navigation"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, footer navigation will be suppressed.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="header.rule">
+<refmeta>
+<refentrytitle>header.rule</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.rule</refname>
+<refpurpose>Rule under headers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="header.rule.frag">
+&lt;xsl:param name="header.rule" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a rule will be drawn below the page headers.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footer.rule">
+<refmeta>
+<refentrytitle>footer.rule</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.rule</refname>
+<refpurpose>Rule over footers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footer.rule.frag">
+&lt;xsl:param name="footer.rule" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a rule will be drawn above the page footers.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="id.warnings">
+<refmeta>
+<refentrytitle>id.warnings</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>id.warnings</refname>
+<refpurpose>Should warnings be generated for titled elements without IDs?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="id.warnings.frag">
+&lt;xsl:param name="id.warnings" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, the stylesheet will issue a warning for any element
+(other than the root element) which has a <tag>title</tag> but does not have an
+ID.</para>
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="meta"><title>Meta/*Info and Titlepages</title>
+<refentry version="5.0" xml:id="inherit.keywords">
+<refmeta>
+<refentrytitle>inherit.keywords</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>inherit.keywords</refname>
+<refpurpose>Inherit keywords from ancestor elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="inherit.keywords.frag">
+&lt;xsl:param name="inherit.keywords" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>inherit.keywords</parameter>
+is non-zero, the keyword <literal>meta</literal> for each HTML
+<literal>head</literal> element will include all of the keywords from
+ancestor elements. Otherwise, only the keywords from the current section
+will be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="make.single.year.ranges">
+<refmeta>
+<refentrytitle>make.single.year.ranges</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.single.year.ranges</refname>
+<refpurpose>Print single-year ranges (e.g., 1998-1999)</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="make.single.year.ranges.frag">
+&lt;xsl:param name="make.single.year.ranges" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, year ranges that span a single year will be printed
+in range notation (1998-1999) instead of discrete notation
+(1998, 1999).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="make.year.ranges">
+<refmeta>
+<refentrytitle>make.year.ranges</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.year.ranges</refname>
+<refpurpose>Collate copyright years into ranges?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="make.year.ranges.frag">&lt;xsl:param name="make.year.ranges" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, multiple copyright <tag>year</tag> elements will be
+collated into ranges.
+This works only if each year number is put into a separate
+year element.  The copyright element permits multiple
+year elements. If a year element contains a dash or
+a comma, then that year element will not be merged into
+any range.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="author.othername.in.middle">
+<refmeta>
+<refentrytitle>author.othername.in.middle</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>author.othername.in.middle</refname>
+<refpurpose>Is <tag>othername</tag> in <tag>author</tag> a
+middle name?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="author.othername.in.middle.frag">
+&lt;xsl:param name="author.othername.in.middle" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the <tag>othername</tag> of an <tag>author</tag>
+appears between the <tag>firstname</tag> and
+<tag>surname</tag>.  Otherwise, <tag>othername</tag>
+is suppressed.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="blurb.on.titlepage.enabled">
+<refmeta>
+<refentrytitle>blurb.on.titlepage.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>blurb.on.titlepage.enabled</refname>
+<refpurpose>Display personblurb and authorblurb on title pages?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="blurb.on.titlepage.enabled.frag">
+&lt;xsl:param name="blurb.on.titlepage.enabled" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, output from <tag>authorblurb</tag> and
+<tag>personblurb</tag> elements is displayed on title pages. If zero
+(the default), output from those elements is suppressed on title pages
+(unless you are using a <literal>titlepage</literal> customization
+that causes them to be included).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="contrib.inline.enabled">
+<refmeta>
+<refentrytitle>contrib.inline.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>contrib.inline.enabled</refname>
+<refpurpose>Display contrib output inline?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="contrib.inline.enabled.frag">&lt;xsl:param name="contrib.inline.enabled"&gt;1&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero (the default), output of the <tag>contrib</tag> element is
+displayed as inline content rather than as block content.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="editedby.enabled">
+<refmeta>
+<refentrytitle>editedby.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>editedby.enabled</refname>
+<refpurpose>Display &#8220;Edited by&#8221; heading above editor name?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="editedby.enabled.frag">&lt;xsl:param name="editedby.enabled"&gt;1&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a localized <emphasis role="bold">Edited
+by</emphasis> heading is displayed above editor names in output of the
+<tag>editor</tag> element.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="abstract.notitle.enabled">
+<refmeta>
+<refentrytitle>abstract.notitle.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>abstract.notitle.enabled</refname>
+<refpurpose>Suppress display of abstract titles?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+  <programlisting xml:id="abstract.notitle.enabled.frag">&lt;xsl:param name="abstract.notitle.enabled" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, in output of the <tag>abstract</tag> element on titlepages,
+display of the abstract title is suppressed.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="othercredit.like.author.enabled">
+<refmeta>
+<refentrytitle>othercredit.like.author.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>othercredit.like.author.enabled</refname>
+<refpurpose>Display othercredit in same style as author?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="othercredit.like.author.enabled.frag">&lt;xsl:param name="othercredit.like.author.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, output of the
+<tag>othercredit</tag> element on titlepages is displayed in
+the same style as <tag>author</tag> and
+<tag>editor</tag> output. If zero then
+<tag>othercredit</tag> output is displayed using a style
+different than that of <tag>author</tag> and
+<tag>editor</tag>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.legalnotice.link">
+<refmeta>
+<refentrytitle>generate.legalnotice.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.legalnotice.link</refname>
+<refpurpose>Write legalnotice to separate chunk and generate link?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="generate.legalnotice.link.frag">&lt;xsl:param name="generate.legalnotice.link" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>generate.legalnotice.link</parameter>
+is non-zero, the stylesheet:
+
+<itemizedlist>
+  <listitem>
+    <para>writes the contents of <tag>legalnotice</tag> to a separate
+    HTML file</para>
+  </listitem>
+  <listitem>
+    <para>inserts a hyperlink to the <tag>legalnotice</tag> file</para>
+  </listitem>
+  <listitem>
+    <para>adds (in the HTML <literal>head</literal>) either a single
+    <literal>link</literal> or element or multiple
+    <literal>link</literal> elements (depending on the value of the
+    <parameter>html.head.legalnotice.link.multiple</parameter>
+    parameter), with the value or values derived from the
+    <parameter>html.head.legalnotice.link.types</parameter>
+    parameter</para>
+  </listitem>
+  </itemizedlist>
+
+  Otherwise, if <parameter>generate.legalnotice.link</parameter> is
+  zero, <tag>legalnotice</tag> contents are rendered on the title
+  page.</para>
+
+<para>The name of the separate HTML file is computed as follows:
+
+<orderedlist>
+<listitem>
+  <para>If a filename is given by the <tag class="xmlpi">dbhtml filename</tag> 
+processing instruction, that filename is used.</para>
+</listitem>
+<listitem>
+  <para>If the legalnotice has an <tag class="attribute">id</tag>/<tag class="attribute">xml:id</tag> 
+attribute, and if <parameter>use.id.as.filename</parameter> != 0, the filename 
+is the concatenation of the id value and the value of the <parameter>html.ext</parameter> 
+parameter.</para>
+</listitem>
+<listitem>
+  <para>If the legalnotice does not have an <tag class="attribute">id</tag>/<tag class="attribute">xml:id</tag>
+ attribute, or if <parameter>use.id.as.filename</parameter> = 0, the filename is the concatenation of "ln-", 
+auto-generated id value, and <parameter>html.ext</parameter> value.
+  </para>
+</listitem>
+</orderedlist>
+
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.revhistory.link">
+<refmeta>
+<refentrytitle>generate.revhistory.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.revhistory.link</refname>
+<refpurpose>Write revhistory to separate chunk and generate link?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="generate.revhistory.link.frag">&lt;xsl:param name="generate.revhistory.link" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the contents of <tag>revhistory</tag> are written
+to a separate HTML file and a link to the file is
+generated. Otherwise, <tag>revhistory</tag> contents are rendered on
+the title page.</para>
+
+<para>The name of the separate HTML file is computed as follows:
+
+<orderedlist>
+<listitem>
+  <para>If a filename is given by the <tag class="xmlpi">dbhtml filename</tag> processing instruction, 
+that filename is used.</para>
+</listitem>
+<listitem>
+  <para>If the revhistory has an <tag class="attribute">id</tag>/<tag class="attribute">xml:id</tag> 
+attribute, and if <parameter>use.id.as.filename</parameter> != 0, the filename is the concatenation of 
+the id value and the value of the <parameter>html.ext</parameter> parameter.</para>
+</listitem>
+<listitem>
+  <para>If the revhistory does not have an <tag class="attribute">id</tag>/<tag class="attribute">xml:id</tag> 
+attribute, or if <parameter>use.id.as.filename</parameter> = 0, the filename is the concatenation of "rh-", 
+auto-generated id value, and <parameter>html.ext</parameter> value.
+  </para>
+</listitem>
+</orderedlist>
+
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="html.head.legalnotice.link.types">
+<refmeta>
+<refentrytitle>html.head.legalnotice.link.types</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.head.legalnotice.link.types</refname>
+<refpurpose>Specifies link types for legalnotice link in html head</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.head.legalnotice.link.types.frag">
+&lt;xsl:param name="html.head.legalnotice.link.types"&gt;copyright&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of
+<parameter>html.head.legalnotice.link.types</parameter> is a
+space-separated list of link types, as described in <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/html401/types.html#type-links">Section 6.12
+of the HTML 4.01 specification</link>. If the value of the
+<parameter>generate.legalnotice.link</parameter> parameter is
+non-zero, then the stylesheet generates (in the
+<literal>head</literal> section of the HTML source) either a single
+HTML <literal>link</literal> element or, if the value of the
+<parameter>html.head.legalnotice.link.multiple</parameter> is
+non-zero, one <literal>link</literal> element for each link type
+specified. Each <literal>link</literal> has the following attributes:
+
+<itemizedlist>
+  <listitem>
+    <para>a <tag class="attribute">rel</tag> attribute whose
+    value is derived from the value of
+    <parameter>html.head.legalnotice.link.types</parameter></para>
+  </listitem>
+  <listitem>
+    <para>an <tag class="attribute">href</tag> attribute whose
+    value is set to the URL of the file containing the
+    <tag>legalnotice</tag></para>
+  </listitem>
+  <listitem>
+    <para>a <tag class="attribute">title</tag> attribute whose
+    value is set to the title of the corresponding
+    <tag>legalnotice</tag> (or a title programatically
+    determined by the stylesheet)</para>
+  </listitem>
+</itemizedlist>
+
+For example:
+
+<screen>  &lt;link rel="license" href="ln-id2524073.html" title="Legal Notice"&gt;</screen>
+</para>
+
+<refsection><info><title>About the default value</title></info>
+  
+  <para>In an ideal world, the default value of
+  <parameter>html.head.legalnotice.link.types</parameter> would
+  probably be &#8220;<literal>license</literal>&#8221;, since the content of the
+  DocBook <tag>legalnotice</tag> is typically license
+  information, not copyright information. However, the default value
+  is &#8220;<literal>copyright</literal>&#8221; for pragmatic reasons: because
+  that&#8217;s among the set of &#8220;recognized link types&#8221; listed in <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/html401/types.html#type-links">Section
+  6.12 of the HTML 4.01 specification</link>, and because certain
+  browsers and browser extensions are preconfigured to recognize that
+  value.</para>
+</refsection>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="html.head.legalnotice.link.multiple">
+<refmeta>
+<refentrytitle>html.head.legalnotice.link.multiple</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.head.legalnotice.link.multiple</refname>
+<refpurpose>Generate multiple link instances in html head for legalnotice?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.head.legalnotice.link.multiple.frag">
+&lt;xsl:param name="html.head.legalnotice.link.multiple" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>html.head.legalnotice.link.multiple</parameter> is
+non-zero and the value of
+<parameter>html.head.legalnotice.link.types</parameter> contains
+multiple link types, then the stylesheet generates (in the
+<literal>head</literal> section of the HTML source) one
+<literal>link</literal> element for each link type specified. For
+example, if the value of
+<parameter>html.head.legalnotice.link.types</parameter> is
+&#8220;<literal>copyright license</literal>&#8221;:
+
+<screen>  &lt;link rel="copyright" href="ln-id2524073.html" title="Legal Notice"&gt;
+  &lt;link rel="license" href="ln-id2524073.html" title="Legal Notice"&gt;</screen>
+
+ Otherwise, the stylesheet generates generates a single
+ <literal>link</literal> instance; for example:
+
+<screen>  &lt;link rel="copyright license" href="ln-id2524073.html" title="Legal Notice"&gt;</screen>
+ 
+</para>
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="refentry"><title>Reference Pages</title>
+<refentry version="5.0" xml:id="funcsynopsis.decoration">
+<refmeta>
+<refentrytitle>funcsynopsis.decoration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>funcsynopsis.decoration</refname>
+<refpurpose>Decorate elements of a <tag>funcsynopsis</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="funcsynopsis.decoration.frag">
+&lt;xsl:param name="funcsynopsis.decoration" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, elements of the <tag>funcsynopsis</tag> will be
+decorated (e.g. rendered as bold or italic text). The decoration is controlled by
+templates that can be redefined in a customization layer.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="funcsynopsis.style">
+<refmeta>
+<refentrytitle>funcsynopsis.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ansi</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kr</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>funcsynopsis.style</refname>
+<refpurpose>What style of <tag>funcsynopsis</tag> should be generated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="funcsynopsis.style.frag">&lt;xsl:param name="funcsynopsis.style"&gt;kr&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>funcsynopsis.style</parameter> is <literal>ansi</literal>,
+ANSI-style function synopses are generated for a
+<tag>funcsynopsis</tag>, otherwise K&amp;R-style
+function synopses are generated.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="function.parens">
+<refmeta>
+<refentrytitle>function.parens</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>function.parens</refname>
+<refpurpose>Generate parens after a function?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="function.parens.frag">
+&lt;xsl:param name="function.parens" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the formatting of a <tag>function</tag> element
+will include generated parentheses.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.generate.name">
+<refmeta>
+<refentrytitle>refentry.generate.name</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.generate.name</refname>
+<refpurpose>Output NAME header before <tag>refname</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.generate.name.frag">
+&lt;xsl:param name="refentry.generate.name" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a "NAME" section title is output before the list
+of <tag>refname</tag>s. This parameter and
+<parameter>refentry.generate.title</parameter> are mutually
+exclusive. This means that if you change this parameter to zero, you
+should set <parameter>refentry.generate.title</parameter> to non-zero unless
+you want get quite strange output.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.generate.title">
+<refmeta>
+<refentrytitle>refentry.generate.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.generate.title</refname>
+<refpurpose>Output title before <tag>refname</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.generate.title.frag">
+&lt;xsl:param name="refentry.generate.title" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the reference page title or first name is
+output before the list of <tag>refname</tag>s. This parameter and
+<parameter>refentry.generate.name</parameter> are mutually exclusive.
+This means that if you change this parameter to non-zero, you
+should set <parameter>refentry.generate.name</parameter> to zero unless
+you want get quite strange output.</para>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.xref.manvolnum">
+<refmeta>
+<refentrytitle>refentry.xref.manvolnum</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.xref.manvolnum</refname>
+<refpurpose>Output <tag>manvolnum</tag> as part of 
+<tag>refentry</tag> cross-reference?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.xref.manvolnum.frag">
+&lt;xsl:param name="refentry.xref.manvolnum" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>if non-zero, the <tag>manvolnum</tag> is used when cross-referencing
+<tag>refentry</tag>s, either with <tag>xref</tag>
+or <tag>citerefentry</tag>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="citerefentry.link">
+<refmeta>
+<refentrytitle>citerefentry.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>citerefentry.link</refname>
+<refpurpose>Generate URL links when cross-referencing RefEntrys?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="citerefentry.link.frag">
+&lt;xsl:param name="citerefentry.link" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a web link will be generated, presumably
+to an online man-&gt;HTML gateway. The text of the link is
+generated by the <literal>generate.citerefentry.link</literal> template.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.separator">
+<refmeta>
+<refentrytitle>refentry.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.separator</refname>
+<refpurpose>Generate a separator between consecutive RefEntry elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.separator.frag">
+&lt;xsl:param name="refentry.separator" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, a separator will be generated between consecutive
+reference pages.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refclass.suppress">
+<refmeta>
+<refentrytitle>refclass.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refclass.suppress</refname>
+<refpurpose>Suppress display of refclass contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refclass.suppress.frag">
+&lt;xsl:param name="refclass.suppress" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>refclass.suppress</parameter> is
+non-zero, then display of <tag>refclass</tag> contents is
+suppressed in output.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="tables"><title>Tables</title>
+<refentry version="5.0" xml:id="default.table.width">
+<refmeta>
+<refentrytitle>default.table.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.table.width</refname>
+<refpurpose>The default width of tables</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="default.table.width.frag">
+&lt;xsl:param name="default.table.width"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, this value will be used for the
+<literal>width</literal> attribute on <tag>table</tag>s that do not specify an
+alternate width (with the <tag class="xmlpi">dbhtml table-width</tag> or 
+<tag class="xmlpi">dbfo table-width</tag> processing instruction).</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="nominal.table.width">
+<refmeta>
+<refentrytitle>nominal.table.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nominal.table.width</refname>
+<refpurpose>The (absolute) nominal width of tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="nominal.table.width.frag">
+&lt;xsl:param name="nominal.table.width"&gt;6in&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In order to convert CALS column widths into HTML column widths, it
+is sometimes necessary to have an absolute table width to use for conversion
+of mixed absolute and relative widths. This value must be an absolute
+length (not a percentage).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.borders.with.css">
+<refmeta>
+<refentrytitle>table.borders.with.css</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.borders.with.css</refname>
+<refpurpose>Use CSS to specify table, row, and cell borders?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.borders.with.css.frag">
+&lt;xsl:param name="table.borders.with.css" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, CSS will be used to draw table borders.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.cell.border.style">
+<refmeta>
+<refentrytitle>table.cell.border.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dotted</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dashed</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">double</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">groove</refmiscinfo>                       
+<refmiscinfo class="other" otherclass="value">ridge</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">inset</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outset</refmiscinfo>          
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.style</refname>
+<refpurpose>Specifies the border style of table cells</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.cell.border.style.frag">
+&lt;xsl:param name="table.cell.border.style"&gt;solid&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border style of table cells.</para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.cell.border.thickness">
+<refmeta>
+<refentrytitle>table.cell.border.thickness</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.thickness</refname>
+<refpurpose>Specifies the thickness of table cell borders</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.cell.border.thickness.frag">
+&lt;xsl:param name="table.cell.border.thickness"&gt;0.5pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, specifies the thickness of borders on table
+cells. The units are points. See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/CSS21/box.html#border-width-properties">
+CSS</link></para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.cell.border.color">
+<refmeta>
+<refentrytitle>table.cell.border.color</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.color</refname>
+<refpurpose>Specifies the border color of table cells</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.cell.border.color.frag">
+&lt;xsl:param name="table.cell.border.color"&gt;&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the color of table cell borders. If non-zero, the value is used
+for the border coloration. See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/CSS21/syndata.html#value-def-color">CSS</link>. A
+<literal>color</literal> is either a keyword or a numerical RGB specification.
+Keywords are aqua, black, blue, fuchsia, gray, green, lime, maroon,
+navy, olive, orange, purple, red, silver, teal, white, and
+yellow.</para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.frame.border.style">
+<refmeta>
+<refentrytitle>table.frame.border.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dotted</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dashed</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">double</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">groove</refmiscinfo>                       
+<refmiscinfo class="other" otherclass="value">ridge</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">inset</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outset</refmiscinfo>          
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.style</refname>
+<refpurpose>Specifies the border style of table frames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.frame.border.style.frag">
+&lt;xsl:param name="table.frame.border.style"&gt;solid&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border style of table frames.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.frame.border.thickness">
+<refmeta>
+<refentrytitle>table.frame.border.thickness</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.thickness</refname>
+<refpurpose>Specifies the thickness of the frame border</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.frame.border.thickness.frag">
+&lt;xsl:param name="table.frame.border.thickness"&gt;0.5pt&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the thickness of the border on the table's frame.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.frame.border.color">
+<refmeta>
+<refentrytitle>table.frame.border.color</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.color</refname>
+<refpurpose>Specifies the border color of table frames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.frame.border.color.frag">
+&lt;xsl:param name="table.frame.border.color"&gt;&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border color of table frames.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="default.table.frame">
+<refmeta>
+<refentrytitle>default.table.frame</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.table.frame</refname>
+<refpurpose>The default framing of tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="default.table.frame.frag">
+&lt;xsl:param name="default.table.frame"&gt;all&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This value will be used when there is no frame attribute on the
+table. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="html.cellspacing">
+<refmeta>
+<refentrytitle>html.cellspacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.cellspacing</refname>
+<refpurpose>Default value for cellspacing in HTML tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.cellspacing.frag">
+&lt;xsl:param name="html.cellspacing"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, this value will be used as the default cellspacing
+value in HTML tables. nn for pixels or nn% for percentage
+length. E.g. 5 or 5%</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="html.cellpadding">
+<refmeta>
+<refentrytitle>html.cellpadding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.cellpadding</refname>
+<refpurpose>Default value for cellpadding in HTML tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.cellpadding.frag">
+&lt;xsl:param name="html.cellpadding"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, this value will be used as the default cellpadding value
+in HTML tables. nn for pixels or nn% for percentage length. E.g. 5 or
+5%</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="qa"><title>QAndASet</title>
+<refentry version="5.0" xml:id="qanda.defaultlabel">
+<refmeta>
+<refentrytitle>qanda.defaultlabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">number</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">qanda</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.defaultlabel</refname>
+<refpurpose>Sets the default for defaultlabel on QandASet.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.defaultlabel.frag">
+&lt;xsl:param name="qanda.defaultlabel"&gt;number&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If no <literal>defaultlabel</literal> attribute is specified on
+a <tag>qandaset</tag>, this value is used. It is generally one of the legal
+values for the defaultlabel attribute (<literal>none</literal>, 
+<literal>number</literal> or
+<literal>qanda</literal>), or one of the additional stylesheet-specific values
+(<literal>qnumber</literal> or <literal>qnumberanda</literal>).
+The default value is 'number'.
+</para>
+<para>The values are rendered as follows:</para>
+<variablelist>
+<varlistentry><term><literal>qanda</literal></term>
+<listitem>
+<para><tag>question</tag>s are labeled "Q:" and
+<tag>answer</tag>s are labeled "A:". </para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>number</literal></term>
+<listitem>
+<para>The questions are enumerated and the answers
+are not labeled. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>qnumber</literal></term>
+<listitem>
+<para>The questions are labeled "Q:" followed by a number, and answers are not 
+labeled. 
+When sections are numbered, adding a label
+to the number distinguishes the question numbers
+from the section numbers.
+This value is not allowed in the
+<tag class="attribute">defaultlabel</tag> attribute
+of a <tag>qandaset</tag> element.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>qnumberanda</literal></term>
+<listitem>
+<para>The questions are labeled "Q:" followed by a number, and
+the answers are labeled "A:". 
+When sections are numbered, adding a label
+to the number distinguishes the question numbers
+from the section numbers.
+This value is not allowed in the
+<tag class="attribute">defaultlabel</tag> attribute
+of a <tag>qandaset</tag> element.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>none</literal></term>
+<listitem>
+<para>No distinguishing label precedes Questions or Answers. 
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.inherit.numeration">
+<refmeta>
+<refentrytitle>qanda.inherit.numeration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.inherit.numeration</refname>
+<refpurpose>Does enumeration of QandASet components inherit the numeration of parent elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.inherit.numeration.frag">
+&lt;xsl:param name="qanda.inherit.numeration" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, numbered <tag>qandadiv</tag> elements and
+<tag>question</tag> and <tag>answer</tag> inherit the enumeration of
+the ancestors of the <tag>qandaset</tag>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.in.toc">
+<refmeta>
+<refentrytitle>qanda.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.in.toc</refname>
+<refpurpose>Should qandaentry questions appear in 
+the document table of contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.in.toc.frag">&lt;xsl:param name="qanda.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), then the generated table of contents
+for a document will include <tag>qandaset</tag> titles, 
+<tag>qandadiv</tag> titles,
+and <tag>question</tag> elements.  The default value (zero) excludes
+them from the TOC.
+</para>
+<para>This parameter does not affect any tables of contents
+that may be generated inside a qandaset or qandadiv.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="qanda.nested.in.toc">
+<refmeta>
+<refentrytitle>qanda.nested.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.nested.in.toc</refname>
+<refpurpose>Should nested answer/qandaentry instances appear in TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="qanda.nested.in.toc.frag">
+&lt;xsl:param name="qanda.nested.in.toc" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, instances of <tag>qandaentry</tag>
+that are children of <tag>answer</tag> elements are shown in
+the TOC.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="links"><title>Linking</title>
+<refentry version="5.0" xml:id="target.database.document"> 
+<refmeta> 
+<refentrytitle>target.database.document</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>target.database.document</refname> 
+<refpurpose>Name of master database file for resolving
+olinks</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> 
+<programlisting xml:id="target.database.document.frag">
+ &lt;xsl:param name="target.database.document"&gt;olinkdb.xml&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info>
+ 
+<para>
+To resolve olinks between documents, the stylesheets use a master
+database document that identifies the target datafiles for all the
+documents within the scope of the olinks. This parameter value is the
+URI of the master document to be read during processing to resolve
+olinks.  The default value is <filename>olinkdb.xml</filename>.</para>
+
+<para>The data structure of the file is defined in the
+<filename>targetdatabase.dtd</filename> DTD.  The database file
+provides the high level elements to record the identifiers, locations,
+and relationships of documents. The cross reference data for
+individual documents is generally pulled into the database using
+system entity references or XIncludes. See also
+<parameter>targets.filename</parameter>.  </para> </refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="targets.filename"> 
+<refmeta> 
+<refentrytitle>targets.filename</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>targets.filename</refname> 
+<refpurpose>Name of cross reference targets data file</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="targets.filename.frag">
+&lt;xsl:param name="targets.filename"&gt;target.db&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info>
+ 
+<para>
+In order to resolve olinks efficiently, the stylesheets can
+generate an external data file containing information about
+all potential cross reference endpoints in a document.
+This parameter lets you change the name of the generated
+file from the default name <filename>target.db</filename>.
+The name must agree with that used in the target database
+used to resolve olinks during processing.
+See also <parameter>target.database.document</parameter>.
+</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" xml:id="olink.base.uri"> 
+<refmeta> 
+<refentrytitle>olink.base.uri</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>olink.base.uri</refname> 
+<refpurpose>Base URI used in olink hrefs</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="olink.base.uri.frag">
+&lt;xsl:param name="olink.base.uri"&gt;&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When cross reference data is collected for resolving olinks, it
+may be necessary to prepend a base URI to each target's href. This
+parameter lets you set that base URI when cross reference data is
+collected. This feature is needed when you want to link to a document
+that is processed without chunking. The output filename for such a
+document is not known to the XSL stylesheet; the only target
+information consists of fragment identifiers such as
+<literal>#idref</literal>. To enable the resolution of olinks between
+documents, you should pass the name of the HTML output file as the
+value of this parameter. Then the hrefs recorded in the cross
+reference data collection look like
+<literal>outfile.html#idref</literal>, which can be reached as links
+from other documents.</para>
+</refsection> 
+</refentry>
+
+<refentry version="5.0" xml:id="use.local.olink.style"> 
+<refmeta> 
+<refentrytitle>use.local.olink.style</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>use.local.olink.style</refname> 
+<refpurpose>Process olinks using xref style of current
+document</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="use.local.olink.style.frag">
+&lt;xsl:param name="use.local.olink.style" select="0"&gt;&lt;/xsl:param&gt; </programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When cross reference data is collected for use by olinks, the data for each potential target includes one field containing a completely assembled cross reference string, as if it were an xref generated in that document. Other fields record the separate title, number, and element name of each target. When an olink is formed to a target from another document, the olink resolves to that preassembled string by default. If the <parameter>use.local.olink.style</parameter> parameter is set to non-zero, then instead the cross
+reference string is formed again from the target title, number, and
+element name, using the stylesheet processing the targeting document.
+Then olinks will match the xref style in the targeting document
+rather than in the target document. If  both documents are processed
+with the same stylesheet, then the results will be the same.</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" xml:id="current.docid"> 
+<refmeta> 
+<refentrytitle>current.docid</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>current.docid</refname> 
+<refpurpose>targetdoc identifier for the document being
+processed</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="current.docid.frag">
+&lt;xsl:param name="current.docid"&gt;&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When olinks between documents are resolved for HTML output, the stylesheet can compute the relative path between the current document and the target document. The stylesheet needs to know the <literal>targetdoc</literal> identifiers for both documents, as they appear in the <parameter>target.database.document</parameter> database file. This parameter passes to the stylesheet
+the targetdoc identifier of the current document, since that
+identifier does not appear in the document itself. </para>
+<para>This parameter can also be used for print output. If an olink's  <literal>targetdoc</literal>  id differs from the <literal>current.docid</literal>, then the stylesheet can append the target document's title to the generated olink text. That identifies to the reader that the link is to a different document, not the current document. See also <parameter>olink.doctitle</parameter> to enable that feature.</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" xml:id="olink.doctitle"> 
+<refmeta> 
+<refentrytitle>olink.doctitle</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta> 
+<refnamediv> 
+<refname>olink.doctitle</refname> 
+<refpurpose>show the document title for external olinks?</refpurpose>
+
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="olink.doctitle.frag">
+&lt;xsl:param name="olink.doctitle"&gt;no&lt;/xsl:param&gt; 
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When olinks between documents are resolved, the generated text
+may not make it clear that the reference is to another document.
+It is possible for the stylesheets to append the other document's
+title to external olinks. For this to happen, two parameters must
+be set.</para>
+<itemizedlist>
+<listitem>
+<para>This <parameter>olink.doctitle</parameter> parameter
+should be set to either <literal>yes</literal> or <literal>maybe</literal>
+to enable this feature.
+</para>
+</listitem>
+<listitem>
+<para>And you should also set the <parameter>current.docid</parameter>
+parameter to the document id for the  document currently
+being processed for output.
+</para>
+</listitem>
+</itemizedlist>
+
+<para>
+Then if an olink's  <literal>targetdoc</literal> id differs from
+the <literal>current.docid</literal> value, the stylesheet knows
+that it is a reference to another document and can
+append the target document's
+title to the generated olink text. </para> 
+
+<para>The text for the target document's title is copied from the
+olink database from the <tag>ttl</tag> element
+of the top-level <tag>div</tag> for that document.
+If that <tag>ttl</tag> element is missing or empty,
+no title is output.
+</para>
+
+<para>The supported values for <parameter>olink.doctitle</parameter> are:
+</para>
+<variablelist>
+<varlistentry>
+<term><literal>yes</literal></term>
+<listitem>
+<para>
+Always insert the title to the target document if it is not
+the current document.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>no</literal></term>
+<listitem>
+<para>
+Never insert the title to the target document, even if requested
+in an <tag class="attribute">xrefstyle</tag> attribute.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>maybe</literal></term>
+<listitem>
+<para>
+Only insert the title to the target document, if requested
+in an <tag class="attribute">xrefstyle</tag> attribute.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>An <tag class="attribute">xrefstyle</tag> attribute
+may override the global setting for individual olinks.
+The following values are supported in an
+<tag class="attribute">xrefstyle</tag>
+attribute using the <literal>select:</literal> syntax:
+</para>
+
+<variablelist>
+<varlistentry>
+<term><literal>docname</literal></term>
+<listitem>
+<para>
+Insert the target document name for this olink using the
+<literal>docname</literal> gentext template, but only
+if the value of <parameter>olink.doctitle</parameter>
+is not <literal>no</literal>.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>docnamelong</literal></term>
+<listitem>
+<para>
+Insert the target document name for this olink using the
+<literal>docnamelong</literal> gentext template, but only
+if the value of <parameter>olink.doctitle</parameter>
+is not <literal>no</literal>.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>nodocname</literal></term>
+<listitem>
+<para>
+Omit the target document name even if
+the value of <parameter>olink.doctitle</parameter>
+is <literal>yes</literal>.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>Another way of inserting the target document name 
+for a single olink is to employ an
+<tag class="attribute">xrefstyle</tag>
+attribute using the <literal>template:</literal> syntax.
+The <literal>%o</literal> placeholder (the letter o, not zero)
+in such a template
+will be filled in with the target document's title when it is processed.
+This will occur regardless of 
+the value of <parameter>olink.doctitle</parameter>.
+</para>
+<para>Note that prior to version 1.66 of the XSL stylesheets,
+the allowed values for this parameter were 0 and 1.  Those
+values are still supported and mapped to 'no' and 'yes', respectively.
+</para>
+</refsection> 
+</refentry>
+
+<refentry version="5.0" xml:id="olink.debug">
+<refmeta>
+<refentrytitle>olink.debug</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.debug</refname>
+<refpurpose>Turn on debugging messages for olinks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="olink.debug.frag">
+&lt;xsl:param name="olink.debug" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then each olink will generate several
+messages about how it is being resolved during processing.
+This is useful when an olink does not resolve properly
+and the standard error messages are not sufficient to
+find the problem. 
+</para>
+
+<para>You may need to read through the olink XSL templates
+to understand the context for some of the debug messages.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="olink.properties">
+<refmeta>
+<refentrytitle>olink.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.properties</refname>
+<refpurpose>Properties associated with the cross-reference 
+text of an olink.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="olink.properties.frag">
+&lt;xsl:attribute-set name="olink.properties"&gt;
+  &lt;xsl:attribute name="show-destination"&gt;replace&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This <literal>attribute set</literal> is applied to the
+<literal>fo:basic-link</literal> element of an olink. It is not applied to the
+optional page number or optional title of the external
+document.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="olink.lang.fallback.sequence"> 
+<refmeta> 
+<refentrytitle>olink.lang.fallback.sequence</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>olink.lang.fallback.sequence</refname> 
+<refpurpose>look up translated documents if olink not found?</refpurpose>
+
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="olink.lang.fallback.sequence.frag">
+&lt;xsl:param name="olink.lang.fallback.sequence"&gt;&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+
+<para>This parameter defines a list of lang values
+to search among to resolve olinks.
+</para>
+
+<para>Normally an olink tries to resolve to a document in the same
+language as the olink itself.  The language of an olink
+is determined by its nearest ancestor element with a
+<tag class="attribute">lang</tag> attribute, otherwise the
+value of the <parameter>l10n.gentext.default.lang</parameter>
+parameter.
+</para>
+
+<para>An olink database can contain target data for the same
+document in multiple languages.  Each set of data has the
+same value for the <tag>targetdoc</tag> attribute in
+the <tag>document</tag> element in the database, but with a 
+different <tag>lang</tag> attribute value.
+</para>
+
+<para>When an olink is being resolved, the target is first
+sought in the document with the same language as the olink.
+If no match is found there, then this parameter is consulted
+for additional languages to try.</para>
+
+<para>The <parameter>olink.lang.fallback.sequence</parameter>
+must be a whitespace separated list of lang values to
+try.  The first one with a match in the olink database is used.
+The default value is empty.</para>
+
+<para>For example, a document might be written in German
+and contain an olink with
+<literal>targetdoc="adminguide"</literal>.
+When the document is processed, the processor
+first looks for a target dataset in the
+olink database starting with:</para>
+
+<literallayout><literal>&lt;document targetdoc="adminguide" lang="de"&gt;</literal>.
+</literallayout>
+
+<para>If there is no such element, then the
+<parameter>olink.lang.fallback.sequence</parameter> 
+parameter is consulted.
+If its value is, for example, <quote>fr en</quote>, then the processor next
+looks for <literal>targetdoc="adminguide" lang="fr"</literal>, and
+then for <literal>targetdoc="adminguide" lang="en"</literal>.
+If there is still no match, it looks for
+<literal>targetdoc="adminguide"</literal> with no
+lang attribute.
+</para>
+
+<para>This parameter is useful when a set of documents is only
+partially translated, or is in the process of being translated.  
+If a target of an olink has not yet been translated, then this
+parameter permits the processor to look for the document in
+other languages.  This assumes the reader would rather have
+a link to a document in a different language than to have
+a broken link.
+</para>
+
+</refsection> 
+</refentry>
+
+<refentry version="5.0" xml:id="insert.olink.page.number">
+<refmeta>
+<refentrytitle>insert.olink.page.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.olink.page.number</refname>
+<refpurpose>Turns page numbers in olinks on and off</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="insert.olink.page.number.frag">
+&lt;xsl:param name="insert.olink.page.number"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines if
+cross references made between documents with
+<tag>olink</tag> will 
+include page number citations.
+In most cases this is only applicable to references in printed output.
+</para>
+<para>The parameter has three possible values.
+</para>
+<variablelist>
+<varlistentry>
+<term>no</term>
+<listitem><para>No page number references will be generated for olinks.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>yes</term>
+<listitem><para>Page number references will be generated
+for all <tag>olink</tag> references.
+The style of page reference may be changed
+if an <tag class="attribute">xrefstyle</tag>
+attribute is used.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>maybe</term>
+<listitem><para>Page number references will not be generated
+for an <tag>olink</tag> element unless 
+it has an
+<tag class="attribute">xrefstyle</tag>
+attribute whose value specifies a page reference.
+</para></listitem>
+</varlistentry>
+</variablelist>
+<para>Olinks that point to targets within the same document
+are treated as <tag>xref</tag>s, and controlled by
+the <parameter>insert.xref.page.number</parameter> parameter.
+</para>
+
+<para>Page number references for olinks to
+external documents can only be inserted if the 
+information exists in the olink database. 
+This means each olink target element 
+(<tag>div</tag> or <tag>obj</tag>)
+must have a <tag class="attribute">page</tag> attribute
+whose value is its page number in the target document.
+The XSL stylesheets are not able to extract that information
+during processing because pages have not yet been created in
+XSLT transformation.  Only the XSL-FO processor knows what
+page each element is placed on.
+Therefore some postprocessing must take place to populate
+page numbers in the olink database.
+</para>
+
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="insert.olink.pdf.frag">
+<refmeta>
+<refentrytitle>insert.olink.pdf.frag</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.olink.pdf.frag</refname>
+<refpurpose>Add fragment identifiers for links into PDF files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="insert.olink.pdf.frag.frag">
+&lt;xsl:param name="insert.olink.pdf.frag" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines whether
+the cross reference URIs to PDF documents made with
+<tag>olink</tag> will 
+include fragment identifiers.
+</para>
+
+<para>When forming a URI to link to a PDF document,
+a fragment identifier (typically a '#' followed by an
+id value) appended to the PDF filename can be used by
+the PDF viewer to open
+the PDF file to a location within the document instead of
+the first page.
+However, not all PDF files have id
+values embedded in them, and not all PDF viewers can
+handle fragment identifiers. 
+</para>
+
+<para>If <parameter>insert.olink.pdf.frag</parameter> is set
+to a non-zero value, then any olink targeting a
+PDF file will have the fragment identifier appended to the URI.
+The URI is formed by concatenating the value of the
+<parameter>olink.base.uri</parameter> parameter, the
+value of the <tag class="attribute">baseuri</tag>
+attribute from the <tag class="element">document</tag>
+element in the olink database with the matching
+<tag class="attribute">targetdoc</tag> value,
+and the value of the <tag class="attribute">href</tag>
+attribute for the targeted element in the olink database.
+The <tag class="attribute">href</tag> attribute
+contains the fragment identifier.
+</para>
+
+<para>If <parameter>insert.olink.pdf.frag</parameter> is set
+to zero (the default value), then 
+the <tag class="attribute">href</tag> attribute
+from the olink database
+is not appended to PDF olinks, so the fragment identifier is left off.
+A PDF olink is any olink for which the
+<tag class="attribute">baseuri</tag> attribute
+from the matching <tag class="element">document</tag>
+element in the olink database ends with '.pdf'.
+Any other olinks will still have the fragment identifier added.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="prefer.internal.olink">
+<refmeta>
+<refentrytitle>prefer.internal.olink</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>prefer.internal.olink</refname>
+<refpurpose>Prefer a local olink reference to an external reference</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="prefer.internal.olink.frag">
+&lt;xsl:param name="prefer.internal.olink" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you are re-using XML content modules in multiple documents,
+you may want to redirect some of your olinks.  This parameter
+permits you to redirect an olink to the current document.
+</para>
+
+<para>For example: you are writing documentation for a  product, 
+which includes 3 manuals: a little installation
+booklet (booklet.xml), a user 
+guide (user.xml), and a reference manual (reference.xml).
+All 3 documents begin with the same introduction section (intro.xml) that 
+contains a reference to the customization section (custom.xml) which is 
+included in both user.xml and reference.xml documents.
+</para>
+
+<para>How do you write the link to custom.xml in intro.xml
+so that it is interpreted correctly in all 3 documents?</para>
+<itemizedlist>
+<listitem><para>If you use xref, it will fail in user.xml.</para>
+</listitem>
+<listitem><para>If you use olink (pointing to reference.xml),
+the reference in user.xml  
+will point to the customization section of the reference manual, while it is 
+actually available in user.xml.</para>
+</listitem>
+</itemizedlist>
+
+<para>If you set the <parameter>prefer.internal.olink</parameter>
+parameter to a non-zero value, then the processor will
+first look in the olink database
+for the olink's <tag>targetptr</tag> attribute value
+in document matching the <parameter>current.docid</parameter>
+parameter value.  If it isn't found there, then
+it tries the document in the database
+with the <tag>targetdoc</tag>
+value that matches the olink's <tag>targetdoc</tag>
+attribute.
+</para>
+
+<para>This feature permits an olink reference to resolve to
+the current document if there is an element
+with an id matching the olink's <tag>targetptr</tag>
+value.  The current document's olink data must be
+included in the target database for this to work.</para>
+
+<caution>
+<para>There is a potential for incorrect links if
+the same <tag>id</tag> attribute value is used for different
+content in different documents.
+Some of your olinks may be redirected to the current document
+when they shouldn't be.  It is not possible to control
+individual olink instances.</para>
+</caution>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="link.mailto.url">
+<refmeta>
+<refentrytitle>link.mailto.url</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>link.mailto.url</refname>
+<refpurpose>Mailto URL for the LINK REL=made HTML HEAD element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="link.mailto.url.frag">
+&lt;xsl:param name="link.mailto.url"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If not the empty string, this address will be used for the
+rel=made <literal>link</literal> element in the html <literal>head</literal>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="ulink.target">
+<refmeta>
+<refentrytitle>ulink.target</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.target</refname>
+<refpurpose>The HTML anchor target for ULinks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ulink.target.frag">
+&lt;xsl:param name="ulink.target"&gt;_top&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>ulink.target</parameter> is non-zero, its value will
+be used for the <literal>target</literal> attribute
+on anchors generated for <tag>ulink</tag>s.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="olink.fragid">
+<refmeta>
+<refentrytitle>olink.fragid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.fragid</refname>
+<refpurpose>Names the fragment identifier portion of an OLink resolver query</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="olink.fragid.frag">
+&lt;xsl:param name="olink.fragid"&gt;fragid=&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>The fragment identifier portion of an <tag>olink</tag> target.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="olink.outline.ext">
+<refmeta>
+<refentrytitle>olink.outline.ext</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.outline.ext</refname>
+<refpurpose>The extension of OLink outline files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="olink.outline.ext.frag">
+&lt;xsl:param name="olink.outline.ext"&gt;.olink&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The extension to be expected for  OLink outline files</para>
+<para>Bob has this parameter as dead. Please don't use</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="olink.pubid">
+<refmeta>
+<refentrytitle>olink.pubid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.pubid</refname>
+<refpurpose>Names the public identifier portion of an OLink resolver query</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="olink.pubid.frag">
+&lt;xsl:param name="olink.pubid"&gt;pubid&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para/>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="olink.sysid">
+<refmeta>
+<refentrytitle>olink.sysid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.sysid</refname>
+<refpurpose>Names the system identifier portion of an OLink resolver query</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="olink.sysid.frag">
+&lt;xsl:param name="olink.sysid"&gt;sysid&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="olink.resolver">
+<refmeta>
+<refentrytitle>olink.resolver</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.resolver</refname>
+<refpurpose>The root name of the OLink resolver (usually a script)</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="olink.resolver.frag">
+  &lt;xsl:param name="olink.resolver"&gt;/cgi-bin/olink&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>FIXME:</para>
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="xrefs"><title>Cross References</title>
+<refentry version="5.0" xml:id="collect.xref.targets"> 
+<refmeta> 
+<refentrytitle>collect.xref.targets</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">only</refmiscinfo>
+</refmeta> 
+<refnamediv> 
+<refname>collect.xref.targets</refname> 
+<refpurpose>Controls whether cross reference data is
+collected</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <programlisting xml:id="collect.xref.targets.frag">
+&lt;xsl:param name="collect.xref.targets"&gt;no&lt;/xsl:param&gt;
+</programlisting> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>
+In order to resolve olinks efficiently, the stylesheets can
+generate an external data file containing information about
+all potential cross reference endpoints in a document.
+This parameter determines whether the collection process is run when the document is processed by the stylesheet. The default value is  <literal>no</literal>, which means the data file is not generated during processing. The other choices are <literal>yes</literal>, which means the data file is created and the document is processed for output, and <literal>only</literal>, which means the data file is created but the document is not processed for output.
+See also <parameter>targets.filename</parameter>.
+</para> 
+</refsection> 
+</refentry>
+
+<refentry version="5.0" xml:id="insert.xref.page.number">
+<refmeta>
+<refentrytitle>insert.xref.page.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.xref.page.number</refname>
+<refpurpose>Turns page numbers in xrefs on and off</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="insert.xref.page.number.frag">
+&lt;xsl:param name="insert.xref.page.number"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines if
+cross references (<tag>xref</tag>s) in
+printed output will
+include page number citations.
+It has three possible values.
+</para>
+<variablelist>
+<varlistentry>
+<term>no</term>
+<listitem><para>No page number references will be generated.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>yes</term>
+<listitem><para>Page number references will be generated
+for all <tag>xref</tag> elements.
+The style of page reference may be changed
+if an <tag class="attribute">xrefstyle</tag>
+attribute is used.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>maybe</term>
+<listitem><para>Page number references will not be generated
+for an <tag>xref</tag> element unless 
+it has an
+<tag class="attribute">xrefstyle</tag>
+attribute whose value specifies a page reference.
+</para></listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="use.role.as.xrefstyle">
+<refmeta>
+<refentrytitle>use.role.as.xrefstyle</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.role.as.xrefstyle</refname>
+<refpurpose>Use <tag class="attribute">role</tag> attribute for
+<tag class="attribute">xrefstyle</tag> on <tag>xref</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="use.role.as.xrefstyle.frag">
+&lt;xsl:param name="use.role.as.xrefstyle" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In DocBook documents that conform to a schema older than V4.3, this parameter allows 
+<tag class="attribute">role</tag> to serve the purpose of specifying the cross reference style.</para>
+
+<para>If non-zero, the <tag class="attribute">role</tag> attribute on
+<tag>xref</tag> will be used to select the cross reference style.
+In DocBook V4.3, the <tag class="attribute">xrefstyle</tag> attribute was added for this purpose.
+If the <tag class="attribute">xrefstyle</tag> attribute is present, 
+<tag class="attribute">role</tag> will be ignored, regardless of the setting
+of this parameter.</para>
+
+</refsection>
+
+<refsection><info><title>Example</title></info>
+
+<para>The following small stylesheet shows how to configure the
+stylesheets to make use of the cross reference style:</para>
+
+<programlisting>&lt;?xml version="1.0"?&gt;
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0"&gt;
+
+&lt;xsl:import href="../xsl/html/docbook.xsl"/&gt;
+
+&lt;xsl:output method="html"/&gt;
+
+&lt;xsl:param name="local.l10n.xml" select="document('')"/&gt;
+&lt;l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"&gt;
+  &lt;l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="en"&gt;
+   &lt;l:context name="xref"&gt;
+      &lt;l:template name="chapter" style="title" text="Chapter %n, %t"/&gt;
+      &lt;l:template name="chapter" text="Chapter %n"/&gt;
+    &lt;/l:context&gt;
+  &lt;/l:l10n&gt;
+&lt;/l:i18n&gt;
+
+&lt;/xsl:stylesheet&gt;</programlisting>
+
+<para>With this stylesheet, the cross references in the following document:</para>
+
+<programlisting>&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+                  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"&gt;
+&lt;book id="book"&gt;&lt;title&gt;Book&lt;/title&gt;
+
+&lt;preface&gt;
+&lt;title&gt;Preface&lt;/title&gt;
+
+&lt;para&gt;Normal: &lt;xref linkend="ch1"/&gt;.&lt;/para&gt;
+&lt;para&gt;Title: &lt;xref xrefstyle="title" linkend="ch1"/&gt;.&lt;/para&gt;
+
+&lt;/preface&gt;
+
+&lt;chapter id="ch1"&gt;
+&lt;title&gt;First Chapter&lt;/title&gt;
+
+&lt;para&gt;Irrelevant.&lt;/para&gt;
+
+&lt;/chapter&gt;
+&lt;/book&gt;</programlisting>
+
+<para>will appear as:</para>
+
+<informalexample>
+<para>Normal: Chapter 1.</para>
+<para>Title: Chapter 1, <emphasis>First Chapter</emphasis>.</para>
+</informalexample>
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" xml:id="xref.with.number.and.title">
+<refmeta>
+<refentrytitle>xref.with.number.and.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.with.number.and.title</refname>
+<refpurpose>Use number and title in cross references</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xref.with.number.and.title.frag">
+&lt;xsl:param name="xref.with.number.and.title" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A cross reference may include the number (for example, the number of
+an example or figure) and the <tag>title</tag> which is a required child of some
+targets. This parameter inserts both the relevant number as well as
+the title into the link. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="xref.label-page.separator">
+<refmeta>
+<refentrytitle>xref.label-page.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.label-page.separator</refname>
+<refpurpose>Punctuation or space separating label from page number in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xref.label-page.separator.frag">&lt;xsl:param name="xref.label-page.separator"&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both label and page
+but no title,
+then the value of this parameter is inserted between
+label and page number in the output.  
+If a title is included, then other separators are used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="xref.label-title.separator">
+<refmeta>
+<refentrytitle>xref.label-title.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.label-title.separator</refname>
+<refpurpose>Punctuation or space separating label from title in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xref.label-title.separator.frag">&lt;xsl:param name="xref.label-title.separator"&gt;: &lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both label and title,
+then the value of this parameter is inserted between
+label and title in the output.  
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="xref.title-page.separator">
+<refmeta>
+<refentrytitle>xref.title-page.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.title-page.separator</refname>
+<refpurpose>Punctuation or space separating title from page number in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="xref.title-page.separator.frag">&lt;xsl:param name="xref.title-page.separator"&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both title and page number,
+then the value of this parameter is inserted between
+title and page number in the output.  
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="lists"><title>Lists</title>
+<refentry version="5.0" xml:id="segmentedlist.as.table">
+<refmeta>
+<refentrytitle>segmentedlist.as.table</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>segmentedlist.as.table</refname>
+<refpurpose>Format segmented lists as tables?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="segmentedlist.as.table.frag">
+&lt;xsl:param name="segmentedlist.as.table" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>segmentedlist</tag>s will be formatted as
+tables.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="variablelist.as.table">
+<refmeta>
+<refentrytitle>variablelist.as.table</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.as.table</refname>
+<refpurpose>Format <tag>variablelist</tag>s as tables?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="variablelist.as.table.frag">
+&lt;xsl:param name="variablelist.as.table" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>variablelist</tag>s will be formatted as
+tables. A processing instruction exists to specify a particular width for the 
+column containing the <tag>term</tag>s:   
+<tag class="xmlpi">dbhtml term-width=".25in"</tag></para>
+
+<para>You can override this setting with a processing instruction as the
+child of <tag>variablelist</tag>: <tag class="xmlpi">dbhtml
+list-presentation="table"</tag> or <tag class="xmlpi">dbhtml
+list-presentation="list"</tag>.</para>
+
+<para>This parameter only applies to the HTML transformations. In the
+FO case, proper list markup is robust enough to handle the formatting.
+But see also <parameter>variablelist.as.blocks</parameter>.</para>
+
+<programlisting>  &lt;variablelist&gt;
+        &lt;?dbhtml list-presentation="table"?&gt;
+        &lt;?dbhtml term-width="1.5in"?&gt;
+        &lt;?dbfo list-presentation="list"?&gt;
+        &lt;?dbfo term-width="1in"?&gt;
+        &lt;varlistentry&gt;
+          &lt;term&gt;list&lt;/term&gt;
+          &lt;listitem&gt;
+                &lt;para&gt;
+                  Formatted as a table even if variablelist.as.table is set to 0.
+                &lt;/para&gt;
+          &lt;/listitem&gt;
+        &lt;/varlistentry&gt;
+  &lt;/variablelist&gt;</programlisting>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="variablelist.term.separator">
+<refmeta>
+<refentrytitle>variablelist.term.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.term.separator</refname>
+<refpurpose>Text to separate <tag>term</tag>s within a multi-term
+<tag>varlistentry</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="variablelist.term.separator.frag">
+&lt;xsl:param name="variablelist.term.separator"&gt;, &lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When a <tag>varlistentry</tag> contains multiple <tag>term</tag>
+elements, the string specified in the value of the
+<parameter>variablelist.term.separator</parameter> parameter is placed
+after each <tag>term</tag> except the last.</para>
+
+<note>
+  <para>To generate a line break between multiple <tag>term</tag>s in
+  a <tag>varlistentry</tag>, set a non-zero value for the
+  <parameter>variablelist.term.break.after</parameter> parameter. If
+  you do so, you may also want to set the value of the
+  <parameter>variablelist.term.separator</parameter> parameter to an
+  empty string (to suppress rendering of the default comma and space
+  after each <tag>term</tag>).</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="variablelist.term.break.after">
+<refmeta>
+<refentrytitle>variablelist.term.break.after</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.term.break.after</refname>
+<refpurpose>Generate line break after each <tag>term</tag> within a
+multi-term <tag>varlistentry</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="variablelist.term.break.after.frag">
+&lt;xsl:param name="variablelist.term.break.after"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set a non-zero value for the
+<parameter>variablelist.term.break.after</parameter> parameter to
+generate a line break between <tag>term</tag>s in a
+multi-term <tag>varlistentry</tag>.</para>
+
+<note>
+<para>If you set a non-zero value for
+<parameter>variablelist.term.break.after</parameter>, you may also
+want to set the value of the
+<parameter>variablelist.term.separator</parameter> parameter to an
+empty string (to suppress rendering of the default comma and space
+after each <tag>term</tag>).</para>
+</note>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="biblio"><title>Bibliography</title>
+<refentry version="5.0" xml:id="bibliography.style">
+<refmeta>
+<refentrytitle>bibliography.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">normal</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">iso690</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.style</refname>
+<refpurpose>Style used for formatting of biblioentries.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="bibliography.style.frag">
+&lt;xsl:param name="bibliography.style"&gt;normal&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Currently only <literal>normal</literal> and
+<literal>iso690</literal> styles are supported.</para>
+
+<para>In order to use ISO690 style to the full extent you might need
+to use additional markup described on <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://wiki.docbook.org/topic/ISO690Bibliography">the
+following WiKi page</link>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="biblioentry.item.separator">
+<refmeta>
+<refentrytitle>biblioentry.item.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>biblioentry.item.separator</refname>
+<refpurpose>Text to separate bibliography entries</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="biblioentry.item.separator.frag">&lt;xsl:param name="biblioentry.item.separator"&gt;. &lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Text to separate bibliography entries
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="bibliography.collection">
+<refmeta>
+<refentrytitle>bibliography.collection</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.collection</refname>
+<refpurpose>Name of the bibliography collection file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="bibliography.collection.frag">
+&lt;xsl:param name="bibliography.collection"&gt;http://docbook.sourceforge.net/release/bibliography/bibliography.xml&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Maintaining bibliography entries across a set of documents is tedious, time
+consuming, and error prone. It makes much more sense, usually, to store all of
+the bibliography entries in a single place and simply <quote>extract</quote>
+the ones you need in each document.</para>
+
+<para>That's the purpose of the
+<parameter>bibliography.collection</parameter> parameter. To setup a global
+bibliography <quote>database</quote>, follow these steps:</para>
+
+<para>First, create a stand-alone bibliography document that contains all of
+the documents that you wish to reference. Make sure that each bibliography
+entry (whether you use <tag>biblioentry</tag> or <tag>bibliomixed</tag>)
+has an ID.</para>
+
+<para>My global bibliography, <filename>~/bibliography.xml</filename> begins
+like this:</para>
+
+<informalexample>
+<programlisting>&lt;!DOCTYPE bibliography
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"&gt;
+&lt;bibliography&gt;&lt;title&gt;References&lt;/title&gt;
+
+&lt;bibliomixed id="xml-rec"&gt;&lt;abbrev&gt;XML 1.0&lt;/abbrev&gt;Tim Bray,
+Jean Paoli, C. M. Sperberg-McQueen, and Eve Maler, editors.
+&lt;citetitle&gt;&lt;ulink url="http://www.w3.org/TR/REC-xml"&gt;Extensible Markup
+Language (XML) 1.0 Second Edition&lt;/ulink&gt;&lt;/citetitle&gt;.
+World Wide Web Consortium, 2000.
+&lt;/bibliomixed&gt;
+
+&lt;bibliomixed id="xml-names"&gt;&lt;abbrev&gt;Namespaces&lt;/abbrev&gt;Tim Bray,
+Dave Hollander,
+and Andrew Layman, editors.
+&lt;citetitle&gt;&lt;ulink url="http://www.w3.org/TR/REC-xml-names/"&gt;Namespaces in
+XML&lt;/ulink&gt;&lt;/citetitle&gt;.
+World Wide Web Consortium, 1999.
+&lt;/bibliomixed&gt;
+
+&lt;!-- ... --&gt;
+&lt;/bibliography&gt;
+</programlisting>
+</informalexample>
+
+<para>When you create a bibliography in your document, simply
+provide <emphasis>empty</emphasis> <tag>bibliomixed</tag>
+entries for each document that you wish to cite. Make sure that these
+elements have the same ID as the corresponding <quote>real</quote>
+entry in your global bibliography.</para>
+
+<para>For example:</para>
+
+<informalexample>
+<programlisting>&lt;bibliography&gt;&lt;title&gt;Bibliography&lt;/title&gt;
+
+&lt;bibliomixed id="xml-rec"/&gt;
+&lt;bibliomixed id="xml-names"/&gt;
+&lt;bibliomixed id="DKnuth86"&gt;Donald E. Knuth. &lt;citetitle&gt;Computers and
+Typesetting: Volume B, TeX: The Program&lt;/citetitle&gt;. Addison-Wesley,
+1986.  ISBN 0-201-13437-3.
+&lt;/bibliomixed&gt;
+&lt;bibliomixed id="relaxng"/&gt;
+
+&lt;/bibliography&gt;</programlisting>
+</informalexample>
+
+<para>Note that it's perfectly acceptable to mix entries from your
+global bibliography with <quote>normal</quote> entries. You can use
+<tag>xref</tag> or other elements to cross-reference your
+bibliography entries in exactly the same way you do now.</para>
+
+<para>Finally, when you are ready to format your document, simply set the
+<parameter>bibliography.collection</parameter> parameter (in either a
+customization layer or directly through your processor's interface) to
+point to your global bibliography.</para>
+
+<para>A relative path in the parameter is interpreted in one
+of two ways:</para>
+<orderedlist numeration="loweralpha">
+  <listitem>
+    <para>If your document contains no links to empty bibliographic elements,
+    then the path is relative to the file containing
+    the first <tag>bibliomixed</tag> element in the document.</para>
+  </listitem>
+  <listitem>
+    <para>If your document does contain links to empty bibliographic elements,
+    then the path is relative to the file containing
+    the first such link element in the document.</para>
+  </listitem>
+</orderedlist>
+<para>Once the collection file is opened by the first instance described
+above, it stays open for the current document
+and the relative path is not reinterpreted again.</para>
+
+<para>The stylesheets will format the bibliography in your document as if
+all of the entries referenced appeared there literally.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="bibliography.numbered">
+<refmeta>
+<refentrytitle>bibliography.numbered</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.numbered</refname>
+<refpurpose>Should bibliography entries be numbered?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="bibliography.numbered.frag">
+&lt;xsl:param name="bibliography.numbered" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero bibliography entries will be numbered</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="glossary"><title>Glossary</title>
+<refentry version="5.0" xml:id="glossterm.auto.link">
+<refmeta>
+<refentrytitle>glossterm.auto.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.auto.link</refname>
+<refpurpose>Generate links from glossterm to glossentry automatically?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossterm.auto.link.frag">
+&lt;xsl:param name="glossterm.auto.link" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, links from inline <tag>glossterm</tag>s to the corresponding 
+<tag>glossentry</tag> elements in a <tag>glossary</tag> or <tag>glosslist</tag> 
+will be automatically generated. This is useful when your glossterms are consistent 
+and you don't want to add links manually.</para>
+
+<para>The automatic link generation feature is not used on <tag>glossterm</tag> elements
+that have a <tag class="attribute">linkend</tag> attribute.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="firstterm.only.link">
+<refmeta>
+<refentrytitle>firstterm.only.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>firstterm.only.link</refname>
+<refpurpose>Does automatic glossterm linking only apply to firstterms?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="firstterm.only.link.frag">
+&lt;xsl:param name="firstterm.only.link" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, only <tag>firstterm</tag>s will be automatically linked
+to the glossary. If glossary linking is not enabled, this parameter
+has no effect.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossary.collection">
+<refmeta>
+<refentrytitle>glossary.collection</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossary.collection</refname>
+<refpurpose>Name of the glossary collection file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossary.collection.frag">
+&lt;xsl:param name="glossary.collection"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Glossaries maintained independently across a set of documents
+are likely to become inconsistent unless considerable effort is
+expended to keep them in sync. It makes much more sense, usually, to
+store all of the glossary entries in a single place and simply
+<quote>extract</quote> the ones you need in each document.</para>
+
+<para>That's the purpose of the
+<parameter>glossary.collection</parameter> parameter. To setup a global
+glossary <quote>database</quote>, follow these steps:</para>
+
+<refsection><info><title>Setting Up the Glossary Database</title></info>
+
+<para>First, create a stand-alone glossary document that contains all of
+the entries that you wish to reference. Make sure that each glossary
+entry has an ID.</para>
+
+<para>Here's an example glossary:</para>
+
+<informalexample>
+<programlisting>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE glossary
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"&gt;
+&lt;glossary&gt;
+&lt;glossaryinfo&gt;
+&lt;editor&gt;&lt;firstname&gt;Eric&lt;/firstname&gt;&lt;surname&gt;Raymond&lt;/surname&gt;&lt;/editor&gt;
+&lt;title&gt;Jargon File 4.2.3 (abridged)&lt;/title&gt;
+&lt;releaseinfo&gt;Just some test data&lt;/releaseinfo&gt;
+&lt;/glossaryinfo&gt;
+
+&lt;glossdiv&gt;&lt;title&gt;0&lt;/title&gt;
+
+&lt;glossentry&gt;
+&lt;glossterm&gt;0&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;Numeric zero, as opposed to the letter `O' (the 15th letter of
+the English alphabet). In their unmodified forms they look a lot
+alike, and various kluges invented to make them visually distinct have
+compounded the confusion. If your zero is center-dotted and letter-O
+is not, or if letter-O looks almost rectangular but zero looks more
+like an American football stood on end (or the reverse), you're
+probably looking at a modern character display (though the dotted zero
+seems to have originated as an option on IBM 3270 controllers). If
+your zero is slashed but letter-O is not, you're probably looking at
+an old-style ASCII graphic set descended from the default typewheel on
+the venerable ASR-33 Teletype (Scandinavians, for whom /O is a letter,
+curse this arrangement). (Interestingly, the slashed zero long
+predates computers; Florian Cajori's monumental "A History of
+Mathematical Notations" notes that it was used in the twelfth and
+thirteenth centuries.) If letter-O has a slash across it and the zero
+does not, your display is tuned for a very old convention used at IBM
+and a few other early mainframe makers (Scandinavians curse &lt;emphasis&gt;this&lt;/emphasis&gt;
+arrangement even more, because it means two of their letters collide).
+Some Burroughs/Unisys equipment displays a zero with a &lt;emphasis&gt;reversed&lt;/emphasis&gt;
+slash. Old CDC computers rendered letter O as an unbroken oval and 0
+as an oval broken at upper right and lower left. And yet another
+convention common on early line printers left zero unornamented but
+added a tail or hook to the letter-O so that it resembled an inverted
+Q or cursive capital letter-O (this was endorsed by a draft ANSI
+standard for how to draw ASCII characters, but the final standard
+changed the distinguisher to a tick-mark in the upper-left corner).
+Are we sufficiently confused yet?&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+
+&lt;glossentry&gt;
+&lt;glossterm&gt;1TBS&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para role="accidence"&gt;
+&lt;phrase role="pronounce"&gt;&lt;/phrase&gt;
+&lt;phrase role="partsofspeach"&gt;n&lt;/phrase&gt;
+&lt;/para&gt;
+&lt;para&gt;The "One True Brace Style"&lt;/para&gt;
+&lt;glossseealso&gt;indent style&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+
+&lt;!-- ... --&gt;
+
+&lt;/glossdiv&gt;
+
+&lt;!-- ... --&gt;
+
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+
+</refsection>
+
+<refsection><info><title>Marking Up Glossary Terms</title></info>
+
+<para>That takes care of the glossary database, now you have to get the entries
+into your document. Unlike bibliography entries, which can be empty, creating
+<quote>placeholder</quote> glossary entries would be very tedious. So instead,
+support for <parameter>glossary.collection</parameter> relies on implicit linking.</para>
+
+<para>In your source document, simply use <tag>firstterm</tag> and
+<tag>glossterm</tag> to identify the terms you wish to have included
+in the glossary. The stylesheets assume that you will either set the
+<tag class="attribute">baseform</tag> attribute correctly, or that the
+content of the element exactly matches a term in your glossary.</para>
+
+<para>If you're using a <parameter>glossary.collection</parameter>, don't
+make explicit links on the terms in your document.</para>
+
+<para>So, in your document, you might write things like this:</para>
+
+<informalexample>
+<programlisting>&lt;para&gt;This is dummy text, without any real meaning.
+The point is simply to reference glossary terms like &lt;glossterm&gt;0&lt;/glossterm&gt;
+and the &lt;firstterm baseform="1TBS"&gt;One True Brace Style (1TBS)&lt;/firstterm&gt;.
+The &lt;glossterm&gt;1TBS&lt;/glossterm&gt;, as you can probably imagine, is a nearly
+religious issue.&lt;/para&gt;</programlisting>
+</informalexample>
+
+<para>If you set the <parameter>firstterm.only.link</parameter> parameter,
+only the terms marked with <tag>firstterm</tag> will be links.
+Otherwise, all the terms will be linked.</para>
+
+</refsection>
+
+<refsection><info><title>Marking Up the Glossary</title></info>
+
+<para>The glossary itself has to be identified for the stylesheets. For lack
+of a better choice, the <tag class="attribute">role</tag> is used.
+To identify the glossary as the target for automatic processing, set
+the role to <quote><literal>auto</literal></quote>. The title of this
+glossary (and any other information from the <tag>glossaryinfo</tag>
+that's rendered by your stylesheet) will be displayed, but the entries will
+come from the database.
+</para>
+
+<para>Unfortunately, the glossary can't be empty, so you must put in
+at least one <tag>glossentry</tag>. The content of this entry
+is irrelevant, it will not be rendered:</para>
+
+<informalexample>
+<programlisting>&lt;glossary role="auto"&gt;
+&lt;glossentry&gt;
+&lt;glossterm&gt;Irrelevant&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;If you can see this, the document was processed incorrectly. Use
+the &lt;parameter&gt;glossary.collection&lt;/parameter&gt; parameter.&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+
+<para>What about glossary divisions? If your glossary database has glossary
+divisions <emphasis>and</emphasis> your automatic glossary contains at least
+one <tag>glossdiv</tag>, the automic glossary will have divisions.
+If the <tag>glossdiv</tag> is missing from either location, no divisions
+will be rendered.</para>
+
+<para>Glossary entries (and divisions, if appropriate) in the glossary will
+occur in precisely the order they occur in your database.</para>
+
+</refsection>
+
+<refsection><info><title>Formatting the Document</title></info>
+
+<para>Finally, when you are ready to format your document, simply set the
+<parameter>glossary.collection</parameter> parameter (in either a
+customization layer or directly through your processor's interface) to
+point to your global glossary.</para>
+
+<para>A relative path in the parameter is interpreted in one
+of two ways:</para>
+<orderedlist numeration="loweralpha">
+  <listitem>
+    <para>If the parameter <literal>glossterm.auto.link</literal>
+    is set to zero, then the path is relative to the file containing
+    the empty <tag>glossary</tag> element in the document.</para>
+  </listitem>
+  <listitem>
+    <para>If the parameter <literal>glossterm.auto.link</literal>
+    is set to non-zero, then the path is relative to the file containing
+    the first inline <tag>glossterm</tag> or
+    <tag>firstterm</tag> in the document to be linked.</para>
+  </listitem>
+</orderedlist>
+<para>Once the collection file is opened by the first instance described
+above, it stays open for the current document
+and the relative path is not reinterpreted again.</para>
+
+<para>The stylesheets will format the glossary in your document as if
+all of the entries implicilty referenced appeared there literally.</para>
+</refsection>
+
+<refsection><info><title>Limitations</title></info>
+
+<para>Glossary cross-references <emphasis>within the glossary</emphasis> are
+not supported. For example, this <emphasis>will not</emphasis> work:</para>
+
+<informalexample>
+<programlisting>&lt;glossentry&gt;
+&lt;glossterm&gt;gloss-1&lt;/glossterm&gt;
+&lt;glossdef&gt;&lt;para&gt;A description that references &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/para&gt;
+&lt;glossseealso&gt;gloss-2&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;</programlisting>
+</informalexample>
+
+<para>If you put glossary cross-references in your glossary that way,
+you'll get the cryptic error: <computeroutput>Warning:
+glossary.collection specified, but there are 0 automatic
+glossaries</computeroutput>.</para>
+
+<para>Instead, you must do two things:</para>
+
+<orderedlist>
+<listitem>
+<para>Markup your glossary using <tag>glossseealso</tag>:</para>
+
+<informalexample>
+<programlisting>&lt;glossentry&gt;
+&lt;glossterm&gt;gloss-1&lt;/glossterm&gt;
+&lt;glossdef&gt;&lt;para&gt;A description that references &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/para&gt;
+&lt;glossseealso&gt;gloss-2&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;</programlisting>
+</informalexample>
+</listitem>
+
+<listitem>
+<para>Make sure there is at least one <tag>glossterm</tag> reference to
+<glossterm>gloss-2</glossterm> <emphasis>in your document</emphasis>. The
+easiest way to do that is probably within a <tag>remark</tag> in your
+automatic glossary:</para>
+
+<informalexample>
+<programlisting>&lt;glossary role="auto"&gt;
+&lt;remark&gt;Make sure there's a reference to &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/remark&gt;
+&lt;glossentry&gt;
+&lt;glossterm&gt;Irrelevant&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;If you can see this, the document was processed incorrectly. Use
+the &lt;parameter&gt;glossary.collection&lt;/parameter&gt; parameter.&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+</listitem>
+</orderedlist>
+</refsection>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossary.sort">
+<refmeta>
+<refentrytitle>glossary.sort</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossary.sort</refname>
+<refpurpose>Sort glossentry elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossary.sort.frag">
+&lt;xsl:param name="glossary.sort" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then the glossentry elements within a
+glossary, glossdiv, or glosslist are sorted on the glossterm, using
+the current lang setting.  If zero (the default), then
+glossentry elements are not sorted and are presented
+in document order.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="glossentry.show.acronym">
+<refmeta>
+<refentrytitle>glossentry.show.acronym</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">primary</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossentry.show.acronym</refname>
+<refpurpose>Display <tag>glossentry</tag> acronyms?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="glossentry.show.acronym.frag">
+&lt;xsl:param name="glossentry.show.acronym"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A setting of <quote>yes</quote> means they should be displayed;
+<quote>no</quote> means they shouldn't. If <quote>primary</quote> is used,
+then they are shown as the primary text for the entry.</para>
+
+<note>
+<para>This setting controls both <tag>acronym</tag> and
+<tag>abbrev</tag> elements in the <tag>glossentry</tag>.</para>
+</note>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="misc"><title>Miscellaneous</title>
+<refentry version="5.0" xml:id="formal.procedures">
+<refmeta>
+<refentrytitle>formal.procedures</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.procedures</refname>
+<refpurpose>Selects formal or informal procedures</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="formal.procedures.frag">
+&lt;xsl:param name="formal.procedures" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Formal procedures are numbered and always have a title.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="formal.title.placement">
+<refmeta>
+<refentrytitle>formal.title.placement</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">table</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.title.placement</refname>
+<refpurpose>Specifies where formal object titles should occur</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="formal.title.placement.frag">
+&lt;xsl:param name="formal.title.placement"&gt;
+figure before
+example before
+equation before
+table before
+procedure before
+task before
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies where formal object titles should occur. For each formal object
+type (<tag>figure</tag>,
+<tag>example</tag>,
+<tag>equation</tag>,
+<tag>table</tag>, and <tag>procedure</tag>)
+you can specify either the keyword
+<quote><literal>before</literal></quote> or
+<quote><literal>after</literal></quote>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="runinhead.default.title.end.punct">
+<refmeta>
+<refentrytitle>runinhead.default.title.end.punct</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>runinhead.default.title.end.punct</refname>
+<refpurpose>Default punctuation character on a run-in-head</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="runinhead.default.title.end.punct.frag">&lt;xsl:param name="runinhead.default.title.end.punct"&gt;.&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, For a <tag>formalpara</tag>, use the specified
+string as the separator between the title and following text. The period is the default value.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="runinhead.title.end.punct">
+<refmeta>
+<refentrytitle>runinhead.title.end.punct</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>runinhead.title.end.punct</refname>
+<refpurpose>Characters that count as punctuation on a run-in-head</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="runinhead.title.end.punct.frag">
+&lt;xsl:param name="runinhead.title.end.punct"&gt;.!?:&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specify which characters are to be counted as punctuation. These
+characters are checked for a match with the last character of the
+title. If no match is found, the
+<parameter>runinhead.default.title.end.punct</parameter> contents are
+inserted. This is to avoid duplicated punctuation in the output.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="show.comments">
+<refmeta>
+<refentrytitle>show.comments</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>show.comments</refname>
+<refpurpose>Display <tag>remark</tag> elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="show.comments.frag">
+&lt;xsl:param name="show.comments" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, comments will be displayed, otherwise they
+are suppressed.  Comments here refers to the <tag>remark</tag> element
+(which was called <literal>comment</literal> prior to DocBook
+4.0), not XML comments (&lt;-- like this --&gt;) which are
+unavailable.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="show.revisionflag">
+<refmeta>
+<refentrytitle>show.revisionflag</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>show.revisionflag</refname>
+<refpurpose>Enable decoration of elements that have a revisionflag</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="show.revisionflag.frag">
+&lt;xsl:param name="show.revisionflag" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If <parameter>show.revisionflag</parameter> is turned on, then the stylesheets
+may produce additional markup designed to allow a CSS stylesheet to
+highlight elements that have specific revisionflag settings.</para>
+
+<para>The markup inserted will be usually be either a &lt;span&gt; or
+&lt;div&gt; with an appropriate <literal>class</literal>
+attribute. (The value of the class attribute will be the same as the
+value of the revisionflag attribute). In some contexts, for example
+tables, where extra markup would be structurally illegal, the class
+attribute will be added to the appropriate container element.</para>
+
+<para>In general, the stylesheets only test for revisionflag in contexts
+where an importing stylesheet would have to redefine whole templates.
+Most of the revisionflag processing is expected to be done by another
+stylesheet, for example <filename>changebars.xsl</filename>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="shade.verbatim">
+<refmeta>
+<refentrytitle>shade.verbatim</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>shade.verbatim</refname>
+<refpurpose>Should verbatim environments be shaded?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="shade.verbatim.frag">&lt;xsl:param name="shade.verbatim" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In the FO stylesheet, if this parameter is non-zero then the
+<property>shade.verbatim.style</property> properties will be applied
+to verbatim environments.</para>
+
+<para>In the HTML stylesheet, this parameter is now deprecated. Use
+CSS instead.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="shade.verbatim.style">
+<refmeta>
+<refentrytitle>shade.verbatim.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>shade.verbatim.style</refname>
+<refpurpose>Properties that specify the style of shaded verbatim listings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="shade.verbatim.style.frag">
+&lt;xsl:attribute-set name="shade.verbatim.style"&gt;
+  &lt;xsl:attribute name="border"&gt;0&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="bgcolor"&gt;#E0E0E0&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties that specify the style of shaded verbatim listings. The
+parameters specified (the border and background color) are added to
+the styling of the xsl-fo output. A border might be specified as "thin
+black solid" for example. See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/2004/WD-xsl11-20041216/#border">xsl-fo</link></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="punct.honorific">
+<refmeta>
+<refentrytitle>punct.honorific</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>punct.honorific</refname>
+<refpurpose>Punctuation after an honorific in a personal name.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="punct.honorific.frag">
+&lt;xsl:param name="punct.honorific"&gt;.&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the punctuation that should be added after an
+honorific in a personal name.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="tex.math.in.alt">
+<refmeta>
+<refentrytitle>tex.math.in.alt</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">plain</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">latex</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tex.math.in.alt</refname>
+<refpurpose>TeX notation used for equations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="tex.math.in.alt.frag">
+&lt;xsl:param name="tex.math.in.alt"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want type math directly in TeX notation in equations,
+this parameter specifies notation used. Currently are supported two
+values -- <literal>plain</literal> and <literal>latex</literal>. Empty
+value means that you are not using TeX math at all.</para>
+
+<para>Preferred way for including TeX alternative of math is inside of
+<tag>textobject</tag> element. Eg.:</para>
+
+<programlisting>&lt;inlineequation&gt;
+&lt;inlinemediaobject&gt;
+&lt;imageobject&gt;
+&lt;imagedata fileref="eq1.gif"/&gt;
+&lt;/imageobject&gt;
+&lt;textobject&gt;&lt;phrase&gt;E=mc squared&lt;/phrase&gt;&lt;/textobject&gt;
+&lt;textobject role="tex"&gt;&lt;phrase&gt;E=mc^2&lt;/phrase&gt;&lt;/textobject&gt;
+&lt;/inlinemediaobject&gt;
+&lt;/inlineequation&gt;</programlisting>
+
+<para>If you are using <tag>graphic</tag> element, you can
+store TeX inside <tag>alt</tag> element:</para>
+
+<programlisting>&lt;inlineequation&gt;
+&lt;alt role="tex"&gt;a^2+b^2=c^2&lt;/alt&gt;
+&lt;graphic fileref="a2b2c2.gif"/&gt;  
+&lt;/inlineequation&gt;</programlisting>
+
+<para>If you want use this feature, you should process your FO with
+PassiveTeX, which only supports TeX math notation. When calling
+stylsheet, don't forget to specify also
+passivetex.extensions=1.</para>
+
+<para>If you want equations in HTML, just process generated file
+<filename>tex-math-equations.tex</filename> by TeX or LaTeX. Then run
+dvi2bitmap program on result DVI file. You will get images for
+equations in your document.</para>
+
+<warning>
+  <para>This feature is useful for print/PDF output only if you
+    use the obsolete and now unsupported PassiveTeX XSL-FO
+    engine.</para>
+</warning>
+
+</refsection>
+
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>tex.math.delims</parameter>,
+    <parameter>passivetex.extensions</parameter>,
+    <parameter>tex.math.file</parameter></para>
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" xml:id="tex.math.file">
+<refmeta>
+<refentrytitle>tex.math.file</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tex.math.file</refname>
+<refpurpose>Name of temporary file for generating images from equations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="tex.math.file.frag">
+&lt;xsl:param name="tex.math.file"&gt;tex-math-equations.tex&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Name of auxiliary file for TeX equations. This file can be
+processed by dvi2bitmap to get bitmap versions of equations for HTML
+output.</para>
+
+</refsection>
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>tex.math.in.alt</parameter>,
+    <parameter>tex.math.delims</parameter>,
+  </para>
+</refsection>
+<refsection><info><title>More information</title></info>
+  <para>For how-to documentation on embedding TeX equations and
+    generating output from them, see
+    <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="TexMath.html">DBTeXMath</link>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="tex.math.delims">
+<refmeta>
+<refentrytitle>tex.math.delims</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tex.math.delims</refname>
+<refpurpose>Should equations output for processing by TeX be
+surrounded by math mode delimiters?</refpurpose>
+</refnamediv> 
+
+<refsynopsisdiv>
+<programlisting xml:id="tex.math.delims.frag">
+&lt;xsl:param name="tex.math.delims" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>For compatibility with DSSSL based DBTeXMath from Allin Cottrell
+you should set this parameter to 0.</para>
+
+<warning>
+  <para>This feature is useful for print/PDF output only if you
+  use the obsolete and now unsupported PassiveTeX XSL-FO
+  engine.</para>
+</warning>
+
+</refsection>
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>tex.math.in.alt</parameter>,
+    <parameter>passivetex.extensions</parameter></para>
+</refsection>
+
+<refsection><info><title>See Also</title></info>
+  <para>You can also use the <tag class="xmlpi">dbtex delims</tag> processing
+    instruction to control whether delimiters are output.</para>
+</refsection>
+
+
+</refentry>
+
+<refentry version="5.0" xml:id="pixels.per.inch">
+<refmeta>
+<refentrytitle>pixels.per.inch</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>pixels.per.inch</refname>
+<refpurpose>How many pixels are there per inch?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="pixels.per.inch.frag">
+&lt;xsl:param name="pixels.per.inch"&gt;90&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When lengths are converted to pixels, this value is used to
+determine the size of a pixel. The default value is taken from the
+<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/2004/WD-xsl11-20041216/">XSL
+Recommendation</link>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="points.per.em">
+<refmeta>
+<refentrytitle>points.per.em</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">number</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>points.per.em</refname>
+<refpurpose>Specify the nominal size of an em-space in points</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="points.per.em.frag">
+&lt;xsl:param name="points.per.em"&gt;10&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The fixed value used for calculations based upon the size of a
+character. The assumption made is that ten point font is in use. This
+assumption may not be valid.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="use.svg">
+<refmeta>
+<refentrytitle>use.svg</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.svg</refname>
+<refpurpose>Allow SVG in the result tree?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="use.svg.frag">
+&lt;xsl:param name="use.svg" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, SVG will be considered an acceptable image format. SVG
+is passed through to the result tree, so correct rendering of the resulting
+diagram depends on the formatter (FO processor or web browser) that is used
+to process the output from the stylesheet.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="menuchoice.separator">
+<refmeta>
+<refentrytitle>menuchoice.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>menuchoice.separator</refname>
+<refpurpose>Separator between items of a <tag>menuchoice</tag>
+other than <tag>guimenuitem</tag> and
+<tag>guisubmenu</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="menuchoice.separator.frag">
+&lt;xsl:param name="menuchoice.separator"&gt;+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator used to connect items of a <tag>menuchoice</tag> other
+than <tag>guimenuitem</tag> and <tag>guisubmenu</tag>. The latter
+elements are linked with <parameter>menuchoice.menu.separator</parameter>.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="menuchoice.menu.separator">
+<refmeta>
+<refentrytitle>menuchoice.menu.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>menuchoice.menu.separator</refname>
+<refpurpose>Separator between items of a <tag>menuchoice</tag>
+with <tag>guimenuitem</tag> or
+<tag>guisubmenu</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="menuchoice.menu.separator.frag">
+&lt;xsl:param name="menuchoice.menu.separator"&gt; &#8594; &lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator used to connect items of a <tag>menuchoice</tag> with
+<tag>guimenuitem</tag> or <tag>guisubmenu</tag>. Other elements
+are linked with <parameter>menuchoice.separator</parameter>.
+</para>
+<para>The default value is &amp;#x2192;, which is the
+&amp;rarr; (right arrow) character entity.  
+The current FOP (0.20.5) requires setting the font-family
+explicitly.
+</para>
+<para>The default value also includes spaces around the arrow,
+which will allow a line to break.  Replace the spaces with
+&amp;#xA0; (nonbreaking space) if you don't want those
+spaces to break.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="default.float.class">
+<refmeta>
+<refentrytitle>default.float.class</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.float.class</refname>
+<refpurpose>Specifies the default float class</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="default.float.class.frag">
+&lt;xsl:param name="default.float.class"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="contains($stylesheet.result.type,'html')"&gt;left&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;before&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the direction in which a float should be placed. for
+xsl-fo this is before, for html it is left. For Western texts, the
+before direction is the top of the page.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footnote.number.format">
+<refmeta>
+<refentrytitle>footnote.number.format</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footnote.number.format</refname>
+<refpurpose>Identifies the format used for footnote numbers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footnote.number.format.frag">
+&lt;xsl:param name="footnote.number.format"&gt;1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>footnote.number.format</parameter> specifies the format
+to use for footnote numeration (1, i, I, a, or A).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.footnote.number.format">
+<refmeta>
+<refentrytitle>table.footnote.number.format</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.footnote.number.format</refname>
+<refpurpose>Identifies the format used for footnote numbers in tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.footnote.number.format.frag">
+&lt;xsl:param name="table.footnote.number.format"&gt;a&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>table.footnote.number.format</parameter> specifies the format
+to use for footnote numeration (1, i, I, a, or A) in tables.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footnote.number.symbols">
+<refmeta>
+<refentrytitle>footnote.number.symbols</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype"/>
+</refmeta>
+<refnamediv>
+<refname>footnote.number.symbols</refname>
+<refpurpose>Special characters to use as footnote markers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footnote.number.symbols.frag">
+&lt;xsl:param name="footnote.number.symbols"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>footnote.number.symbols</parameter> is not the empty string,
+footnotes will use the characters it contains as footnote symbols. For example,
+<quote>*&amp;#x2020;&amp;#x2021;&amp;#x25CA;&amp;#x2720;</quote> will identify
+footnotes with <quote>*</quote>, <quote>&#8224;</quote>, <quote>&#8225;</quote>,
+<quote>&#9674;</quote>, and <quote>&#10016;</quote>. If there are more footnotes
+than symbols, the stylesheets will fall back to numbered footnotes using
+<parameter>footnote.number.format</parameter>.</para>
+
+<para>The use of symbols for footnotes depends on the ability of your
+processor (or browser) to render the symbols you select. Not all systems are
+capable of displaying the full range of Unicode characters. If the quoted characters
+in the preceding paragraph are not displayed properly, that's a good indicator
+that you may have trouble using those symbols for footnotes.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.footnote.number.symbols">
+<refmeta>
+<refentrytitle>table.footnote.number.symbols</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.footnote.number.symbols</refname>
+<refpurpose>Special characters to use a footnote markers in tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.footnote.number.symbols.frag">
+&lt;xsl:param name="table.footnote.number.symbols"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>table.footnote.number.symbols</parameter> is not the empty string,
+table footnotes will use the characters it contains as footnote symbols. For example,
+<quote>*&amp;#x2020;&amp;#x2021;&amp;#x25CA;&amp;#x2720;</quote> will identify
+footnotes with <quote>*</quote>, <quote>&#8224;</quote>, <quote>&#8225;</quote>,
+<quote>&#9674;</quote>, and <quote>&#10016;</quote>. If there are more footnotes
+than symbols, the stylesheets will fall back to numbered footnotes using
+<parameter>table.footnote.number.format</parameter>.</para>
+
+<para>The use of symbols for footnotes depends on the ability of your
+processor (or browser) to render the symbols you select. Not all systems are
+capable of displaying the full range of Unicode characters. If the quoted characters
+in the preceding paragraph are not displayed properly, that's a good indicator
+that you may have trouble using those symbols for footnotes.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="highlight.source">
+<refmeta>
+<refentrytitle>highlight.source</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.source</refname>
+<refpurpose>Should the content of <tag>programlisting</tag>
+be syntactically highlighted?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="highlight.source.frag">
+&lt;xsl:param name="highlight.source" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When this parameter is non-zero, the stylesheets will try to do syntax highlighting of the 
+content of <tag>programlisting</tag> elements. You specify the language for each programlisting 
+by using the <tag class="attribute">language</tag> attribute. The <parameter>highlight.default.language</parameter> 
+parameter can be used to specify the language for programlistings without a <tag class="attribute">language</tag> 
+attribute. Syntax highlighting also works for <tag>screen</tag> and <tag>synopsis</tag> elements.</para>
+
+<para>The actual highlighting work is done by the XSLTHL extension module. This is an external Java library that has to be 
+downloaded separately (see below).</para>
+
+<itemizedlist>
+<para>In order to use this extension, you must</para> 
+
+<listitem><para>add <filename>xslthl-2.x.x.jar</filename> to your Java classpath. The latest version is available
+from <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sourceforge.net/projects/xslthl">the XSLT syntax highlighting project</link> 
+at SourceForge.</para>
+</listitem>
+<listitem>
+<para>use a customization layer in which you import one of the following stylesheet modules: 
+<itemizedlist>
+  <listitem>
+    <para><filename>html/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>xhtml/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>xhtml-1_1/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>fo/highlight.xsl</filename>
+    </para>
+</listitem>
+</itemizedlist>
+</para>
+</listitem>
+<listitem><para>let either the <literal>xslthl.config</literal> Java system property or the
+<parameter>highlight.xslthl.config</parameter> parameter point to the configuration file for syntax 
+highlighting (using URL syntax). DocBook XSL comes with a ready-to-use configuration file, 
+<filename>highlighting/xslthl-config.xml</filename>.</para>
+</listitem>
+</itemizedlist>
+
+<para>The extension works with Saxon 6.5.x and Xalan-J. (Saxon 8.5 or later is also supported, but since it is 
+an XSLT 2.0 processor it is not guaranteed to work with DocBook XSL in all circumstances.)</para>
+
+<para>The following is an example of a Saxon 6 command adapted for syntax highlighting, to be used on Windows:</para>
+
+<informalexample>
+<para><command>java -cp c:/Java/saxon.jar;c:/Java/xslthl-2.0.1.jar 
+-Dxslthl.config=file:///c:/docbook-xsl/highlighting/xslthl-config.xml com.icl.saxon.StyleSheet 
+-o test.html test.xml myhtml.xsl</command></para>
+</informalexample>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="highlight.xslthl.config">
+<refmeta>
+<refentrytitle>highlight.xslthl.config</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.xslthl.config</refname>
+<refpurpose>Location of XSLTHL configuration file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="highlight.xslthl.config.frag">
+&lt;xsl:param name="highlight.xslthl.config"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This location has precedence over the corresponding Java property.</para>
+
+<para>Please note that usually you have to specify location as URL not
+just as a simple path on the local
+filesystem. E.g. <filename>file:///home/user/xslthl/my-xslthl-config.xml</filename>.</para>
+
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="highlight.default.language">
+<refmeta>
+<refentrytitle>highlight.default.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.default.language</refname>
+<refpurpose>Default language of programlisting</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="highlight.default.language.frag">
+&lt;xsl:param name="highlight.default.language"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This language is used when there is no language attribute on programlisting.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="email.delimiters.enabled">
+<refmeta>
+<refentrytitle>email.delimiters.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>email.delimiters.enabled</refname>
+<refpurpose>Generate delimiters around email addresses?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="email.delimiters.enabled.frag">
+&lt;xsl:param name="email.delimiters.enabled" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, delimiters
+
+<footnote><para>For delimiters, the
+stylesheets are currently hard-coded to output angle
+brackets.</para></footnote> 
+
+are generated around e-mail addresses
+(the output of the <tag>email</tag> element).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="exsl.node.set.available">
+<refmeta>
+<refentrytitle>exsl.node.set.available</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>exsl.node.set.available</refname>
+<refpurpose>Is the test function-available('exsl:node-set') true?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="exsl.node.set.available.frag">&lt;xsl:param name="exsl.node.set.available"&gt; 
+  &lt;xsl:choose&gt;
+    &lt;xsl:when exsl:foo="" test="function-available('exsl:node-set') or                        contains(system-property('xsl:vendor'),                          'Apache Software Foundation')"&gt;1&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;0&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+then the exsl:node-set() function is available to be used in
+the stylesheet.
+If zero, then the function is not available.
+This param automatically detects the presence of
+the function and does not normally need to be set manually.</para>
+
+<para>This param was created to handle a long-standing
+bug in the Xalan processor that fails to detect the
+function even though it is available.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="annos"><title>Annotations</title>
+<refentry version="5.0" xml:id="annotation.support">
+<refmeta>
+<refentrytitle>annotation.support</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.support</refname>
+<refpurpose>Enable annotations?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="annotation.support.frag">
+&lt;xsl:param name="annotation.support" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the stylesheets will attempt to support annotation
+elements in HTML by including some JavaScript (see
+<parameter>annotation.js</parameter>).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="annotation.js">
+<refmeta>
+<refentrytitle>annotation.js</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.js</refname>
+<refpurpose>URIs identifying JavaScript files with support for annotation popups</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="annotation.js.frag">
+
+&lt;xsl:param name="annotation.js"&gt;
+&lt;xsl:text&gt;http://docbook.sourceforge.net/release/script/AnchorPosition.js http://docbook.sourceforge.net/release/script/PopupWindow.js&lt;/xsl:text&gt;&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <property>annotation.support</property> is enabled and the
+document contains <tag>annotation</tag>s, then the URIs listed
+in this parameter will be included. These JavaScript files are required
+for popup annotation support.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="annotation.css">
+<refmeta>
+<refentrytitle>annotation.css</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.css</refname>
+<refpurpose>CSS rules for annotations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="annotation.css.frag">
+&lt;xsl:param name="annotation.css"&gt;
+/* ======================================================================
+   Annotations
+*/
+
+div.annotation-list  { visibility: hidden;
+                     }
+
+div.annotation-nocss { position: absolute;
+                       visibility: hidden;
+                     }
+
+div.annotation-popup { position: absolute;
+                       z-index: 4;
+                       visibility: hidden;
+                       padding: 0px;
+                       margin: 2px;
+                       border-style: solid;
+                       border-width: 1px;
+                       width: 200px;
+		       background-color: white;
+                     }
+
+div.annotation-title { padding: 1px;
+                       font-weight: bold;
+                       border-bottom-style: solid;
+                       border-bottom-width: 1px;
+		       color: white;
+		       background-color: black;
+                     }
+
+div.annotation-body  { padding: 2px;
+                     }
+
+div.annotation-body p { margin-top: 0px;
+                        padding-top: 0px;
+                      }
+
+div.annotation-close { position: absolute;
+                       top: 2px;
+                       right: 2px;
+                     }
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>annotation.support</parameter> is enabled and the
+document contains <tag>annotation</tag>s, then the CSS in this
+parameter will be included in the document.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="annotation.graphic.open">
+<refmeta>
+<refentrytitle>annotation.graphic.open</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.graphic.open</refname>
+<refpurpose>Image for identifying a link that opens an annotation popup</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="annotation.graphic.open.frag">
+&lt;xsl:param name="annotation.graphic.open"&gt;http://docbook.sourceforge.net/release/images/annot-open.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This image is used inline to identify the location of
+annotations. It may be replaced by a user provided graphic. The size should be approximately 10x10 pixels.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="annotation.graphic.close">
+<refmeta>
+<refentrytitle>annotation.graphic.close</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.graphic.close</refname>
+<refpurpose>Image for identifying a link that closes an annotation popup</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="annotation.graphic.close.frag">
+&lt;xsl:param name="annotation.graphic.close"&gt;
+http://docbook.sourceforge.net/release/images/annot-close.png&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This image is used on popup annotations as the &#8220;x&#8221; that the
+user can click to dismiss the popup.</para>
+<para>This image is used on popup annotations as the &#8220;x&#8221; that the user can
+click to dismiss the popup. It may be replaced by a user provided graphic. The size should be approximately 10x10 pixels.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="graphics"><title>Graphics</title>
+<refentry version="5.0" xml:id="img.src.path">
+<refmeta>
+<refentrytitle>img.src.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>img.src.path</refname>
+<refpurpose>Path to HTML/FO image files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="img.src.path.frag">&lt;xsl:param name="img.src.path"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Add a path prefix to the value of the <tag class="attribute">fileref</tag> 
+attribute of <tag>graphic</tag>, <tag>inlinegraphic</tag>, and <tag>imagedata</tag> elements. The resulting 
+compound path is used in the output as the value of the <tag class="attribute">src</tag> 
+attribute of <tag class="element">img</tag> (HTML) or <tag class="element">external-graphic</tag> (FO).
+</para>
+
+<para>
+The path given by <literal>img.src.path</literal> could be relative to the directory where the HTML/FO
+files are created, or it could be an absolute URI.
+The default value is empty.
+Be sure to include a trailing slash if needed.
+</para>
+
+<para>This prefix is not applied to any filerefs that start
+with "/" or contain "//:".
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="keep.relative.image.uris">
+<refmeta>
+<refentrytitle>keep.relative.image.uris</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>keep.relative.image.uris</refname>
+<refpurpose>Should image URIs be resolved against xml:base?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="keep.relative.image.uris.frag">
+&lt;xsl:param name="keep.relative.image.uris" select="1"&gt;&lt;/xsl:param&gt;
+
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, relative URIs (in, for example
+<literal>fileref</literal> attributes) will be used in the generated
+output. Otherwise, the URIs will be made absolute with respect to the
+base URI.</para>
+
+<para>Note that the stylesheets calculate (and use) the absolute form
+for some purposes, this only applies to the resulting output.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="graphic.default.extension">
+<refmeta>
+<refentrytitle>graphic.default.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphic.default.extension</refname>
+<refpurpose>Default extension for graphic filenames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="graphic.default.extension.frag">&lt;xsl:param name="graphic.default.extension"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If a <tag>graphic</tag> or <tag>mediaobject</tag>
+includes a reference to a filename that does not include an extension,
+and the <tag class="attribute">format</tag> attribute is
+<emphasis>unspecified</emphasis>, the default extension will be used.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="default.image.width">
+<refmeta>
+<refentrytitle>default.image.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.image.width</refname>
+<refpurpose>The default width of images</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="default.image.width.frag">
+&lt;xsl:param name="default.image.width"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If specified, this value will be used for the
+<tag class="attribute">width</tag> attribute on images that do not specify any 
+<emphasis xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title="DocBook 5: The Definitive Guide" xlink:href="http://docbook.org/tdg5/en/html/imagedata.html#viewport.area">viewport dimensions</emphasis>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="nominal.image.width">
+<refmeta>
+<refentrytitle>nominal.image.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nominal.image.width</refname>
+<refpurpose>The nominal image width</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="nominal.image.width.frag">
+&lt;xsl:param name="nominal.image.width" select="6 * $pixels.per.inch"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Graphic widths expressed as a percentage are problematic. In the
+following discussion, we speak of width and contentwidth, but
+the same issues apply to depth and contentdepth.</para>
+
+<para>A width of 50% means "half of the available space for the image."
+That's fine. But note that in HTML, this is a dynamic property and
+the image size will vary if the browser window is resized.</para>
+
+<para>A contentwidth of 50% means "half of the actual image width".
+But what does that mean if the stylesheets cannot assess the image's
+actual size? Treating this as a width of 50% is one possibility, but
+it produces behavior (dynamic scaling) that seems entirely out of
+character with the meaning.</para>
+
+<para>Instead, the stylesheets define a
+<parameter>nominal.image.width</parameter> and convert percentages to
+actual values based on that nominal size.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="nominal.image.depth">
+<refmeta>
+<refentrytitle>nominal.image.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nominal.image.depth</refname>
+<refpurpose>Nominal image depth</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="nominal.image.depth.frag">
+&lt;xsl:param name="nominal.image.depth" select="4 * $pixels.per.inch"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>See <parameter>nominal.image.width</parameter>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="use.embed.for.svg">
+<refmeta>
+<refentrytitle>use.embed.for.svg</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.embed.for.svg</refname>
+<refpurpose>Use HTML <tag>embed</tag> for SVG?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="use.embed.for.svg.frag">
+&lt;xsl:param name="use.embed.for.svg" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, an <tag>embed</tag> element will be created for
+SVG figures. An <tag>object</tag> is <emphasis>always</emphasis> created,
+this parameter merely controls whether or not an additional <tag>embed</tag>
+is generated inside the <tag>object</tag>.</para>
+
+<para>On the plus side, this may be more portable among browsers and plug-ins.
+On the minus side, it isn't valid HTML.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="make.graphic.viewport">
+<refmeta>
+<refentrytitle>make.graphic.viewport</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.graphic.viewport</refname>
+<refpurpose>Use tables in HTML to make viewports for graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="make.graphic.viewport.frag">
+&lt;xsl:param name="make.graphic.viewport" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The HTML <tag>img</tag> element only supports the notion
+of content-area scaling; it doesn't support the distinction between a
+content-area and a viewport-area, so we have to make some compromises.</para>
+
+<para>If <parameter>make.graphic.viewport</parameter> is non-zero, a table
+will be used to frame the image. This creates an effective viewport-area.
+</para>
+
+<para>Tables and alignment don't work together, so this parameter is ignored
+if alignment is specified on an image.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="preferred.mediaobject.role">
+<refmeta>
+<refentrytitle>preferred.mediaobject.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>preferred.mediaobject.role</refname>
+<refpurpose>Select which mediaobject to use based on
+this value of an object's <tag class="attribute">role</tag> attribute.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="preferred.mediaobject.role.frag">
+&lt;xsl:param name="preferred.mediaobject.role"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A mediaobject may contain several objects such as imageobjects.
+If the parameter <parameter>use.role.for.mediaobject</parameter> is
+non-zero, then the <literal>role</literal> attribute on
+<tag>imageobject</tag>s and other objects within a
+<tag>mediaobject</tag> container will be used to select which object
+will be used.  If one of the objects has a role value that matches the
+<parameter>preferred.mediaobject.role</parameter> parameter, then it
+has first priority for selection.  If more than one has such a role
+value, the first one is used.
+</para>
+<para>
+See the <parameter>use.role.for.mediaobject</parameter> parameter
+for the sequence of selection.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="use.role.for.mediaobject">
+<refmeta>
+<refentrytitle>use.role.for.mediaobject</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.role.for.mediaobject</refname>
+<refpurpose>Use <tag class="attribute">role</tag> attribute 
+value for selecting which of several objects within a mediaobject to use.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="use.role.for.mediaobject.frag">
+&lt;xsl:param name="use.role.for.mediaobject" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the <tag class="attribute">role</tag> attribute on
+<tag>imageobject</tag>s or other objects within a <tag>mediaobject</tag> container will be used to select which object will be
+used.
+</para>
+<para>
+The order of selection when then parameter is non-zero is:
+</para>
+<orderedlist>
+<listitem>
+    <para>If the stylesheet parameter <parameter>preferred.mediaobject.role</parameter> has a value, then the object whose role equals that value is selected.</para>
+</listitem>
+<listitem>
+<para>Else if an object's role attribute has a value of
+<literal>html</literal> for HTML processing or
+<literal>fo</literal> for FO output, then the first
+of such objects is selected.
+</para>
+</listitem>
+<listitem>
+<para>Else the first suitable object is selected.</para>
+</listitem>
+</orderedlist>
+<para>
+If the value of 
+<parameter>use.role.for.mediaobject</parameter>
+is zero, then role attributes are not considered
+and the first suitable object
+with or without a role value is used.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="ignore.image.scaling">
+<refmeta>
+<refentrytitle>ignore.image.scaling</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ignore.image.scaling</refname>
+<refpurpose>Tell the stylesheets to ignore the author's image scaling attributes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="ignore.image.scaling.frag">
+&lt;xsl:param name="ignore.image.scaling" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the scaling attributes on graphics and media objects are
+ignored.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="chunking"><title>Chunking</title>
+<refentry version="5.0" xml:id="chunker.output.cdata-section-elements">
+<refmeta>
+<refentrytitle>chunker.output.cdata-section-elements</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.cdata-section-elements</refname>
+<refpurpose>List of elements to escape with CDATA sections</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="chunker.output.cdata-section-elements.frag">
+&lt;xsl:param name="chunker.output.cdata-section-elements"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the list of elements that should be escaped
+as CDATA sections by the chunking stylesheet.  Not all processors support
+specification of this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunker.output.doctype-public">
+<refmeta>
+<refentrytitle>chunker.output.doctype-public</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.doctype-public</refname>
+<refpurpose>Public identifer to use in the document type of generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="chunker.output.doctype-public.frag">
+&lt;xsl:param name="chunker.output.doctype-public"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the public identifier that should be used by
+the chunking stylesheet in the document type declaration of chunked pages.
+Not all processors support specification of
+this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunker.output.doctype-system">
+<refmeta>
+<refentrytitle>chunker.output.doctype-system</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.doctype-system</refname>
+<refpurpose>System identifier to use for the document type in generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="chunker.output.doctype-system.frag">
+&lt;xsl:param name="chunker.output.doctype-system"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the system identifier that should be used by
+the chunking stylesheet in the document type declaration of chunked pages.
+Not all processors support specification of
+this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunker.output.encoding">
+<refmeta>
+<refentrytitle>chunker.output.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.encoding</refname>
+<refpurpose>Encoding used in generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="chunker.output.encoding.frag">
+&lt;xsl:param name="chunker.output.encoding"&gt;ISO-8859-1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the encoding to be used in files
+generated by the chunking stylesheet. Not all processors support
+specification of this parameter.
+</para>
+<para>This parameter used to be named <literal>default.encoding</literal>.</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunker.output.indent">
+<refmeta>
+<refentrytitle>chunker.output.indent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.indent</refname>
+<refpurpose>Specification of indentation on generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="chunker.output.indent.frag">
+&lt;xsl:param name="chunker.output.indent"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the value of the indent
+specification for generated pages. Not all processors support
+specification of this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunker.output.media-type">
+<refmeta>
+<refentrytitle>chunker.output.media-type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.media-type</refname>
+<refpurpose>Media type to use in generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="chunker.output.media-type.frag">
+&lt;xsl:param name="chunker.output.media-type"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the media type that should be used by
+the chunking stylesheet. Not all processors support specification of
+this parameter.
+</para>
+<para>This parameter specifies the media type that should be used by the
+chunking stylesheet. This should be one from those defined in
+<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.ietf.org/rfc/rfc2045.txt">[RFC2045]</link>  and
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.ietf.org/rfc/rfc2046.txt">[RFC2046]</link> </para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+<para>It must be one from html, xml or text</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunker.output.method">
+<refmeta>
+<refentrytitle>chunker.output.method</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">html</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">xml</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.method</refname>
+<refpurpose>Method used in generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="chunker.output.method.frag">
+&lt;xsl:param name="chunker.output.method"&gt;html&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the output method to be used in files
+generated by the chunking stylesheet.
+</para>
+<para>This parameter used to be named <literal>output.method</literal>.</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunker.output.omit-xml-declaration">
+<refmeta>
+<refentrytitle>chunker.output.omit-xml-declaration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.omit-xml-declaration</refname>
+<refpurpose>Omit-xml-declaration for generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="chunker.output.omit-xml-declaration.frag">
+&lt;xsl:param name="chunker.output.omit-xml-declaration"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the value of the omit-xml-declaration
+specification for generated pages. Not all processors support
+specification of this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunker.output.standalone">
+<refmeta>
+<refentrytitle>chunker.output.standalone</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.standalone</refname>
+<refpurpose>Standalone declaration for generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="chunker.output.standalone.frag">
+&lt;xsl:param name="chunker.output.standalone"&gt;no&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the value of the standalone
+  specification for generated pages. It must be either
+  <literal>yes</literal> or <literal>no</literal>. Not all
+  processors support specification of this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="saxon.character.representation">
+<refmeta>
+<refentrytitle>saxon.character.representation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>saxon.character.representation</refname>
+<refpurpose>Saxon character representation used in generated HTML pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+  <programlisting xml:id="saxon.character.representation.frag">&lt;xsl:param name="saxon.character.representation" select="'entity;decimal'"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter has effect only when Saxon 6 is used (version 6.4.2 or later). 
+It sets the character representation in files generated by the chunking stylesheets. 
+If you want to suppress entity references for characters with direct representations in 
+<parameter>chunker.output.encoding</parameter>, set the parameter value to <literal>native</literal>. 
+</para>
+
+<para> For more information, see <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="OutputEncoding.html#SaxonCharacter">Saxon output character representation</link>.</para>
+
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" xml:id="html.ext">
+<refmeta>
+<refentrytitle>html.ext</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.ext</refname>
+<refpurpose>Identifies the extension of generated HTML files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.ext.frag">
+&lt;xsl:param name="html.ext"&gt;.html&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The extension identified by <parameter>html.ext</parameter> will
+be used as the filename extension for chunks created by this
+stylesheet. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="use.id.as.filename">
+<refmeta>
+<refentrytitle>use.id.as.filename</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.id.as.filename</refname>
+<refpurpose>Use ID value of chunk elements as the filename?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="use.id.as.filename.frag">
+&lt;xsl:param name="use.id.as.filename" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>use.id.as.filename</parameter>
+is non-zero, the filename of chunk elements that have IDs will be
+derived from the ID value.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="html.extra.head.links">
+<refmeta>
+<refentrytitle>html.extra.head.links</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.extra.head.links</refname>
+<refpurpose>Toggle extra HTML head link information</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="html.extra.head.links.frag">
+&lt;xsl:param name="html.extra.head.links" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extra <tag>link</tag> elements will be
+generated in the <tag>head</tag> of chunked HTML files. These
+extra links point to chapters, appendixes, sections, etc. as supported
+by the <quote>Site Navigation Bar</quote> in Mozilla 1.0 (as of CR1, at least).
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="root.filename">
+<refmeta>
+<refentrytitle>root.filename</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>root.filename</refname>
+<refpurpose>Identifies the name of the root HTML file when chunking</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="root.filename.frag">
+&lt;xsl:param name="root.filename"&gt;index&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>root.filename</parameter> is the base filename for
+the chunk created for the root of each document processed.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="base.dir">
+<refmeta>
+<refentrytitle>base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>base.dir</refname>
+<refpurpose>The base directory of chunks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="base.dir.frag">
+&lt;xsl:param name="base.dir"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If specified, the <parameter>base.dir</parameter> parameter identifies
+the output directory for chunks. (If not specified, the output directory
+is system dependent.)</para>
+
+<para>Starting with version 1.77 of the stylesheets, 
+the param's value will have a trailing slash added if it does
+not already have one.</para>
+
+<caution><para>Do not use <parameter>base.dir</parameter>
+to add a filename prefix string to chunked  files. 
+Instead, use the <parameter>chunked.filename.prefix</parameter>
+parameter.</para></caution>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunked.filename.prefix">
+<refmeta>
+<refentrytitle>chunked.filename.prefix</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunked.filename.prefix</refname>
+<refpurpose>Filename prefix for chunked files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="chunked.filename.prefix.frag">
+&lt;xsl:param name="chunked.filename.prefix"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If specified, the <parameter>chunked.filename.prefix</parameter> 
+parameter specifies a prefix string to add to each generated chunk filename.
+For example:</para>
+<programlisting>&lt;xsl:param name="chunked.filename.prefix"&gt;admin-&lt;xsl:param&gt;</programlisting>
+<para>will produce chunked filenames like:</para>
+<programlisting>admin-index.html
+admin-ch01.html
+admin-ch01s01.html
+...
+</programlisting>
+
+<caution><para>Trying to use the <parameter>base.dir</parameter>
+parameter to add a string prefix (by omitting the trailing slash)
+no longer works (it never worked completely anyway). That parameter
+value should contain only a directory path, and
+now gets a trailing slash appended if it was omitted from the param.</para></caution>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="generate.manifest">
+  <refmeta>
+    <refentrytitle>generate.manifest</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>generate.manifest</refname>
+    <refpurpose>Generate a manifest file?</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting xml:id="generate.manifest.frag">&lt;xsl:param name="generate.manifest" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>If non-zero, a list of HTML files generated by the
+      stylesheet transformation is written to the file named by
+      the <parameter>manifest</parameter> parameter.</para>
+
+  </refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="manifest">
+  <refmeta>
+    <refentrytitle>manifest</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>manifest</refname>
+    <refpurpose>Name of manifest file</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting xml:id="manifest.frag">
+    &lt;xsl:param name="manifest"&gt;HTML.manifest&lt;/xsl:param&gt;
+    </programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>The name of the file to which a manifest is written (if the
+      value of the <parameter>generate.manifest</parameter> parameter
+      is non-zero).</para>
+
+  </refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="manifest.in.base.dir">
+<refmeta>
+<refentrytitle>manifest.in.base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>manifest.in.base.dir</refname>
+<refpurpose>Should the manifest file be written into <parameter>base.dir</parameter>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="manifest.in.base.dir.frag">
+&lt;xsl:param name="manifest.in.base.dir" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the manifest file as well as project files for HTML Help and
+Eclipse Help are written into <parameter>base.dir</parameter> instead
+of the current directory.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunk.toc">
+<refmeta>
+<refentrytitle>chunk.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.toc</refname>
+<refpurpose>An explicit TOC to be used for chunking</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="chunk.toc.frag">
+&lt;xsl:param name="chunk.toc"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>chunk.toc</parameter> identifies an explicit TOC that
+will be used for chunking. This parameter is only used by the
+<filename>chunktoc.xsl</filename> stylesheet (and customization layers built
+from it).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunk.tocs.and.lots">
+<refmeta>
+<refentrytitle>chunk.tocs.and.lots</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.tocs.and.lots</refname>
+<refpurpose>Should ToC and LoTs be in separate chunks?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="chunk.tocs.and.lots.frag">
+&lt;xsl:param name="chunk.tocs.and.lots" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, ToC and LoT (List of Examples, List of Figures, etc.)
+will be put in a separate chunk. At the moment, this chunk is not in the
+normal forward/backward navigation list. Instead, a new link is added to the
+navigation footer.</para>
+
+<para>This feature is still somewhat experimental. Feedback welcome.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunk.separate.lots">
+<refmeta>
+<refentrytitle>chunk.separate.lots</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.separate.lots</refname>
+<refpurpose>Should each LoT be in its own separate chunk?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="chunk.separate.lots.frag">
+&lt;xsl:param name="chunk.separate.lots" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, each of the ToC and LoTs
+(List of Examples, List of Figures, etc.)
+will be put in its own separate chunk.
+The title page includes generated links to each of the separate files.
+</para>
+<para>
+This feature depends on the
+<parameter>chunk.tocs.and.lots</parameter>
+parameter also being non-zero. 
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunk.tocs.and.lots.has.title">
+<refmeta>
+<refentrytitle>chunk.tocs.and.lots.has.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.tocs.and.lots.has.title</refname>
+<refpurpose>Should ToC and LoTs in a separate chunks have title?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="chunk.tocs.and.lots.has.title.frag">
+&lt;xsl:param name="chunk.tocs.and.lots.has.title" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero title of document is shown before ToC/LoT in
+separate chunk.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunk.section.depth">
+<refmeta>
+<refentrytitle>chunk.section.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.section.depth</refname>
+<refpurpose>Depth to which sections should be chunked</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="chunk.section.depth.frag">
+&lt;xsl:param name="chunk.section.depth" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter sets the depth of section chunking.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunk.first.sections">
+<refmeta>
+<refentrytitle>chunk.first.sections</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.first.sections</refname>
+<refpurpose>Chunk the first top-level section?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="chunk.first.sections.frag">
+&lt;xsl:param name="chunk.first.sections" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a chunk will be created for the first top-level
+<tag>sect1</tag> or <tag>section</tag> elements in
+each component. Otherwise, that section will be part of the chunk for
+its parent.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunk.quietly">
+<refmeta>
+<refentrytitle>chunk.quietly</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.quietly</refname>
+<refpurpose>Omit the chunked filename messages.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="chunk.quietly.frag">
+&lt;xsl:param name="chunk.quietly" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), the XSL processor emits a message naming
+each separate chunk filename as it is being output.
+If nonzero, then the messages are suppressed.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="chunk.append">
+<refmeta>
+<refentrytitle>chunk.append</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.append</refname>
+<refpurpose>Specifies content to append to chunked HTML output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="chunk.append.frag">&lt;xsl:param name="chunk.append"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies content to append to the end of HTML files output by
+the <filename>html/chunk.xsl</filename> stylesheet, after the closing
+<code>&lt;html&gt;</code> tag. You probably don&#8217;t want to set any value
+for this parameter; but if you do, the only value it should ever be
+set to is a newline character: <code>&amp;#x0a;</code> or
+<code>&amp;#10;</code></para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="navig.graphics">
+<refmeta>
+<refentrytitle>navig.graphics</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navig.graphics</refname>
+<refpurpose>Use graphics in navigational headers and footers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="navig.graphics.frag">
+&lt;xsl:param name="navig.graphics" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the navigational headers and footers in chunked
+HTML are presented in an alternate style that uses graphical icons for
+Next, Previous, Up, and Home.  Default graphics are provided in the
+distribution. If zero, text is used instead of graphics.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="navig.graphics.extension">
+<refmeta>
+<refentrytitle>navig.graphics.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navig.graphics.extension</refname>
+<refpurpose>Extension for navigational graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="navig.graphics.extension.frag">
+&lt;xsl:param name="navig.graphics.extension"&gt;.gif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the filename extension to use on navigational graphics used
+in the headers and footers of chunked HTML.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="navig.graphics.path">
+<refmeta>
+<refentrytitle>navig.graphics.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navig.graphics.path</refname>
+<refpurpose>Path to navigational graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="navig.graphics.path.frag">
+&lt;xsl:param name="navig.graphics.path"&gt;images/&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the path, probably relative to the directory where the HTML
+files are created, to the navigational graphics used in the
+headers and footers of chunked HTML.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="navig.showtitles">
+<refmeta>
+<refentrytitle>navig.showtitles</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navig.showtitles</refname>
+<refpurpose>Display titles in HTML headers and footers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="navig.showtitles.frag">&lt;xsl:param name="navig.showtitles"&gt;1&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+the headers and footers of chunked HTML
+display the titles of the next and previous chunks,
+along with the words 'Next' and 'Previous' (or the
+equivalent graphical icons if navig.graphics is true).
+If false (zero), then only the words 'Next' and 'Previous'
+(or the icons) are displayed.
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="profiling"><title>Profiling</title>
+<partintro xml:id="partintro">
+<para>The following parameters can be used for attribute-based
+profiling of your document. For more information about profiling, see 
+<link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="Profiling.html">Profiling (conditional text)</link>.</para>
+</partintro>
+<refentry version="5.0" xml:id="profile.arch">
+<refmeta>
+<refentrytitle>profile.arch</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.arch</refname>
+<refpurpose>Target profile for <tag class="attribute">arch</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.arch.frag">
+&lt;xsl:param name="profile.arch"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.audience">
+<refmeta>
+<refentrytitle>profile.audience</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.audience</refname>
+<refpurpose>Target profile for <tag class="attribute">audience</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.audience.frag">
+&lt;xsl:param name="profile.audience"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.condition">
+<refmeta>
+<refentrytitle>profile.condition</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.condition</refname>
+<refpurpose>Target profile for <tag class="attribute">condition</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.condition.frag">
+&lt;xsl:param name="profile.condition"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.conformance">
+<refmeta>
+<refentrytitle>profile.conformance</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.conformance</refname>
+<refpurpose>Target profile for <tag class="attribute">conformance</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.conformance.frag">
+&lt;xsl:param name="profile.conformance"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.lang">
+<refmeta>
+<refentrytitle>profile.lang</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.lang</refname>
+<refpurpose>Target profile for <tag class="attribute">lang</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.lang.frag">
+&lt;xsl:param name="profile.lang"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.os">
+<refmeta>
+<refentrytitle>profile.os</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.os</refname>
+<refpurpose>Target profile for <tag class="attribute">os</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.os.frag">
+&lt;xsl:param name="profile.os"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.revision">
+<refmeta>
+<refentrytitle>profile.revision</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.revision</refname>
+<refpurpose>Target profile for <tag class="attribute">revision</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.revision.frag">
+&lt;xsl:param name="profile.revision"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.revisionflag">
+<refmeta>
+<refentrytitle>profile.revisionflag</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.revisionflag</refname>
+<refpurpose>Target profile for <tag class="attribute">revisionflag</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.revisionflag.frag">
+&lt;xsl:param name="profile.revisionflag"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.role">
+<refmeta>
+<refentrytitle>profile.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.role</refname>
+<refpurpose>Target profile for <tag class="attribute">role</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.role.frag">
+&lt;xsl:param name="profile.role"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+<warning>
+<para>Note that <tag class="attribute">role</tag> is often
+used for other purposes than profiling. For example it is commonly
+used to get emphasize in bold font:</para>
+
+<programlisting>&lt;emphasis role="bold"&gt;very important&lt;/emphasis&gt;</programlisting>
+
+<para>If you are using <tag class="attribute">role</tag> for
+these purposes do not forget to add values like <literal>bold</literal> to
+value of this parameter. If you forgot you will get document with
+small pieces missing which are very hard to track.</para>
+
+<para>For this reason it is not recommended to use <tag class="attribute">role</tag> attribute for profiling. You should
+rather use profiling specific attributes like <tag class="attribute">userlevel</tag>, <tag class="attribute">os</tag>, <tag class="attribute">arch</tag>, <tag class="attribute">condition</tag>, etc.</para>
+</warning>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.security">
+<refmeta>
+<refentrytitle>profile.security</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.security</refname>
+<refpurpose>Target profile for <tag class="attribute">security</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.security.frag">
+&lt;xsl:param name="profile.security"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.status">
+<refmeta>
+<refentrytitle>profile.status</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.status</refname>
+<refpurpose>Target profile for <tag class="attribute">status</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.status.frag">
+&lt;xsl:param name="profile.status"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.userlevel">
+<refmeta>
+<refentrytitle>profile.userlevel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.userlevel</refname>
+<refpurpose>Target profile for <tag class="attribute">userlevel</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.userlevel.frag">
+&lt;xsl:param name="profile.userlevel"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.vendor">
+<refmeta>
+<refentrytitle>profile.vendor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.vendor</refname>
+<refpurpose>Target profile for <tag class="attribute">vendor</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.vendor.frag">
+&lt;xsl:param name="profile.vendor"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.wordsize">
+<refmeta>
+<refentrytitle>profile.wordsize</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.wordsize</refname>
+<refpurpose>Target profile for <tag class="attribute">wordsize</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.wordsize.frag">
+&lt;xsl:param name="profile.wordsize"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.attribute">
+<refmeta>
+<refentrytitle>profile.attribute</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.attribute</refname>
+<refpurpose>Name of user-specified profiling attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.attribute.frag">
+&lt;xsl:param name="profile.attribute"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter is used in conjuction with
+<parameter>profile.value</parameter>.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.value">
+<refmeta>
+<refentrytitle>profile.value</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.value</refname>
+<refpurpose>Target profile for user-specified attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.value.frag">
+&lt;xsl:param name="profile.value"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When you are using this parameter you must also specify name of
+profiling attribute with parameter
+<parameter>profile.attribute</parameter>.</para>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, &#8230;) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, &#8230;).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="profile.separator">
+<refmeta>
+<refentrytitle>profile.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.separator</refname>
+<refpurpose>Separator character for compound profile values</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="profile.separator.frag">
+&lt;xsl:param name="profile.separator"&gt;;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator character used for compound profile values. See <parameter>profile.arch</parameter></para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="htmlhelp"><title>HTML Help</title>
+<refentry version="5.0" xml:id="htmlhelp.encoding">
+<refmeta>
+<refentrytitle>htmlhelp.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.encoding</refname>
+<refpurpose>Character encoding to use in files for HTML Help compiler.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.encoding.frag">
+&lt;xsl:param name="htmlhelp.encoding"&gt;iso-8859-1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The HTML Help Compiler is not UTF-8 aware, so you should always use an
+appropriate single-byte encoding here. See also <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="HtmlHelp.html#HelpProcOptions" role="tcg">Processing options</link>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.autolabel">
+<refmeta>
+<refentrytitle>htmlhelp.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.autolabel</refname>
+<refpurpose>Should tree-like ToC use autonumbering feature?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.autolabel.frag">
+&lt;xsl:param name="htmlhelp.autolabel" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set this to non-zero to include chapter and section numbers into ToC
+in the left panel.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.chm">
+<refmeta>
+<refentrytitle>htmlhelp.chm</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.chm</refname>
+<refpurpose>Filename of output HTML Help file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.chm.frag">
+&lt;xsl:param name="htmlhelp.chm"&gt;htmlhelp.chm&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the  name of resulting CHM file</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.default.topic">
+<refmeta>
+<refentrytitle>htmlhelp.default.topic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.default.topic</refname>
+<refpurpose>Name of file with default topic</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.default.topic.frag">
+&lt;xsl:param name="htmlhelp.default.topic"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Normally first chunk of document is displayed when you open HTML
+Help file. If you want to display another topic, simply set its
+filename by this parameter.</para>
+
+<para>This is useful especially if you don't generate ToC in front of
+your document and you also hide root element in ToC. E.g.:</para>
+
+<programlisting>&lt;xsl:param name="generate.book.toc" select="0"/&gt;
+&lt;xsl:param name="htmlhelp.hhc.show.root" select="0"/&gt;
+&lt;xsl:param name="htmlhelp.default.topic"&gt;pr01.html&lt;/xsl:param&gt;
+</programlisting>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.display.progress">
+<refmeta>
+<refentrytitle>htmlhelp.display.progress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.display.progress</refname>
+<refpurpose>Display compile progress?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.display.progress.frag">
+&lt;xsl:param name="htmlhelp.display.progress" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to to display compile progress
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.hhp">
+<refmeta>
+<refentrytitle>htmlhelp.hhp</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhp</refname>
+<refpurpose>Filename of project file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.hhp.frag">
+&lt;xsl:param name="htmlhelp.hhp"&gt;htmlhelp.hhp&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Change this parameter if you want different name of project
+file than htmlhelp.hhp.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.hhc">
+<refmeta>
+<refentrytitle>htmlhelp.hhc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc</refname>
+<refpurpose>Filename of TOC file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.hhc.frag">
+&lt;xsl:param name="htmlhelp.hhc"&gt;toc.hhc&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the name of the TOC file. The default is <filename>toc.hhc</filename>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.hhk">
+<refmeta>
+<refentrytitle>htmlhelp.hhk</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhk</refname>
+<refpurpose>Filename of index file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.hhk.frag">
+&lt;xsl:param name="htmlhelp.hhk"&gt;index.hhk&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>set the name of the index file. The default is <filename>index.hhk</filename>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.hhp.tail">
+<refmeta>
+<refentrytitle>htmlhelp.hhp.tail</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhp.tail</refname>
+<refpurpose>Additional content for project file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.hhp.tail.frag">
+&lt;xsl:param name="htmlhelp.hhp.tail"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want to include some additional parameters into project file,
+store appropriate part of project file into this parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.hhp.window">
+<refmeta>
+<refentrytitle>htmlhelp.hhp.window</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhp.window</refname>
+<refpurpose>Name of default window.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.hhp.window.frag">
+&lt;xsl:param name="htmlhelp.hhp.window"&gt;Main&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Name of default window. If empty no [WINDOWS] section will be
+added to project file.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.hhp.windows">
+<refmeta>
+<refentrytitle>htmlhelp.hhp.windows</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhp.windows</refname>
+<refpurpose>Definition of additional windows</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.hhp.windows.frag">
+&lt;xsl:param name="htmlhelp.hhp.windows"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Content of this parameter is placed at the end of [WINDOWS]
+section of project file. You can use it for defining your own
+addtional windows.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.enhanced.decompilation">
+<refmeta>
+<refentrytitle>htmlhelp.enhanced.decompilation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.enhanced.decompilation</refname>
+<refpurpose>Allow enhanced decompilation of CHM?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.enhanced.decompilation.frag">
+&lt;xsl:param name="htmlhelp.enhanced.decompilation" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When non-zero this parameter enables enhanced decompilation of CHM.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.enumerate.images">
+<refmeta>
+<refentrytitle>htmlhelp.enumerate.images</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.enumerate.images</refname>
+<refpurpose>Should the paths to all used images be added to the project file?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.enumerate.images.frag">
+&lt;xsl:param name="htmlhelp.enumerate.images" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero if you insert images into your documents as
+external binary entities or if you are using absolute image paths.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.force.map.and.alias">
+<refmeta>
+<refentrytitle>htmlhelp.force.map.and.alias</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.force.map.and.alias</refname>
+<refpurpose>Should [MAP] and [ALIAS] sections be added to the project file unconditionally?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.force.map.and.alias.frag">
+&lt;xsl:param name="htmlhelp.force.map.and.alias" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+  <para>Set to non-zero if you have your own
+    <literal>alias.h</literal> and <literal>context.h</literal>
+    files and you want to include references to them in the project
+    file.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.map.file">
+<refmeta>
+<refentrytitle>htmlhelp.map.file</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.map.file</refname>
+<refpurpose>Filename of map file.</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.map.file.frag">
+&lt;xsl:param name="htmlhelp.map.file"&gt;context.h&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Set the name of map file. The default is
+  <filename>context.h</filename>. (used for context-sensitive
+  help).</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.alias.file">
+<refmeta>
+<refentrytitle>htmlhelp.alias.file</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.alias.file</refname>
+<refpurpose>Filename of alias file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.alias.file.frag">
+&lt;xsl:param name="htmlhelp.alias.file"&gt;alias.h&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the alias file (used for context-sensitive help).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.hhc.section.depth">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.section.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.section.depth</refname>
+<refpurpose>Depth of TOC for sections in a left pane.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.hhc.section.depth.frag">
+&lt;xsl:param name="htmlhelp.hhc.section.depth"&gt;5&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the section depth in the left pane of HTML Help viewer. </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.hhc.show.root">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.show.root</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.show.root</refname>
+<refpurpose>Should there be an entry for the root element in the ToC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.hhc.show.root.frag">
+&lt;xsl:param name="htmlhelp.hhc.show.root" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If set to zero, there will be no entry for the root element in the 
+ToC. This is useful when you want to provide the user with an expanded
+ToC as a default.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.hhc.folders.instead.books">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.folders.instead.books</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.folders.instead.books</refname>
+<refpurpose>Use folder icons in ToC (instead of book icons)?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.hhc.folders.instead.books.frag">
+&lt;xsl:param name="htmlhelp.hhc.folders.instead.books" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero for folder-like icons or zero for book-like icons in the ToC. 
+If you want to use folder-like icons, you must switch off the binary ToC using 
+<parameter>htmlhelp.hhc.binary</parameter>.
+
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.hhc.binary">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.binary</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.binary</refname>
+<refpurpose>Generate binary ToC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.hhc.binary.frag">
+&lt;xsl:param name="htmlhelp.hhc.binary" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to generate a binary TOC. You must create a binary TOC
+if you want to add Prev/Next buttons to toolbar (which is default
+behaviour). Files with binary TOC can't be merged.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.hhc.width">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.width</refname>
+<refpurpose>Width of navigation pane</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.hhc.width.frag">
+&lt;xsl:param name="htmlhelp.hhc.width"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the width of the navigation pane (containing TOC and
+other navigation tabs) in pixels.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.title">
+<refmeta>
+<refentrytitle>htmlhelp.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.title</refname>
+<refpurpose>Title of HTML Help</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.title.frag">
+&lt;xsl:param name="htmlhelp.title"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Content of this parameter will be used as a title for generated
+HTML Help. If empty, title will be automatically taken from document.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.show.menu">
+<refmeta>
+<refentrytitle>htmlhelp.show.menu</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.show.menu</refname>
+<refpurpose>Should the menu bar be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.show.menu.frag">
+&lt;xsl:param name="htmlhelp.show.menu" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to have an application menu bar in your HTML Help window.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.show.toolbar.text">
+<refmeta>
+<refentrytitle>htmlhelp.show.toolbar.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.show.toolbar.text</refname>
+<refpurpose>Show text under toolbar buttons?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.show.toolbar.text.frag">
+&lt;xsl:param name="htmlhelp.show.toolbar.text" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to display texts under toolbar buttons, zero to switch
+off displays.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.show.advanced.search">
+<refmeta>
+<refentrytitle>htmlhelp.show.advanced.search</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.show.advanced.search</refname>
+<refpurpose>Should advanced search features be available?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.show.advanced.search.frag">
+&lt;xsl:param name="htmlhelp.show.advanced.search" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want advanced search features in your help, turn this
+parameter to 1.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.show.favorities">
+<refmeta>
+<refentrytitle>htmlhelp.show.favorities</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.show.favorities</refname>
+<refpurpose>Should the Favorites tab be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.show.favorities.frag">
+&lt;xsl:param name="htmlhelp.show.favorities" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include a Favorites tab in the navigation pane 
+of the help window.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.hideshow">
+<refmeta>
+<refentrytitle>htmlhelp.button.hideshow</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.hideshow</refname>
+<refpurpose>Should the Hide/Show button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.hideshow.frag">
+&lt;xsl:param name="htmlhelp.button.hideshow" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the  Hide/Show button shown on toolbar</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.back">
+<refmeta>
+<refentrytitle>htmlhelp.button.back</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.back</refname>
+<refpurpose>Should the Back button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.back.frag">
+&lt;xsl:param name="htmlhelp.button.back" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the  Hide/Show button shown on toolbar</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.forward">
+<refmeta>
+<refentrytitle>htmlhelp.button.forward</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.forward</refname>
+<refpurpose>Should the Forward button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.forward.frag">
+&lt;xsl:param name="htmlhelp.button.forward" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the  Forward button  on the toolbar.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.stop">
+<refmeta>
+<refentrytitle>htmlhelp.button.stop</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.stop</refname>
+<refpurpose>Should the Stop button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.stop.frag">
+&lt;xsl:param name="htmlhelp.button.stop" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want Stop button shown on toolbar, turn this
+parameter to 1.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.refresh">
+<refmeta>
+<refentrytitle>htmlhelp.button.refresh</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.refresh</refname>
+<refpurpose>Should the Refresh button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.refresh.frag">
+&lt;xsl:param name="htmlhelp.button.refresh" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Stop button  on the toolbar.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.home">
+<refmeta>
+<refentrytitle>htmlhelp.button.home</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.home</refname>
+<refpurpose>Should the Home button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.home.frag">
+&lt;xsl:param name="htmlhelp.button.home" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Home button  on the toolbar.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.home.url">
+<refmeta>
+<refentrytitle>htmlhelp.button.home.url</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.home.url</refname>
+<refpurpose>URL address of page accessible by Home button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.home.url.frag">
+&lt;xsl:param name="htmlhelp.button.home.url"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>URL address of page accessible by Home button.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.options">
+<refmeta>
+<refentrytitle>htmlhelp.button.options</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.options</refname>
+<refpurpose>Should the Options button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.options.frag">
+&lt;xsl:param name="htmlhelp.button.options" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want Options button shown on toolbar, turn this
+parameter to 1.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.print">
+<refmeta>
+<refentrytitle>htmlhelp.button.print</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.print</refname>
+<refpurpose>Should the Print button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.print.frag">
+&lt;xsl:param name="htmlhelp.button.print" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Print button  on the toolbar.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.locate">
+<refmeta>
+<refentrytitle>htmlhelp.button.locate</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.locate</refname>
+<refpurpose>Should the Locate button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.locate.frag">
+&lt;xsl:param name="htmlhelp.button.locate" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want Locate button shown on toolbar, turn this
+parameter to 1.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.jump1">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump1</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump1</refname>
+<refpurpose>Should the Jump1 button be shown?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.jump1.frag">
+&lt;xsl:param name="htmlhelp.button.jump1" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+  <para>Set to non-zero to include the <literal>Jump1</literal> button on the toolbar.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.jump1.url">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump1.url</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump1.url</refname>
+<refpurpose>URL address of page accessible by Jump1 button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.jump1.url.frag">
+&lt;xsl:param name="htmlhelp.button.jump1.url"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>URL address of page accessible by Jump1 button.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.jump1.title">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump1.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump1.title</refname>
+<refpurpose>Title of Jump1 button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.jump1.title.frag">
+&lt;xsl:param name="htmlhelp.button.jump1.title"&gt;User1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Title of Jump1 button.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.jump2">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump2</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump2</refname>
+<refpurpose>Should the Jump2 button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.jump2.frag">
+&lt;xsl:param name="htmlhelp.button.jump2" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Jump2 button  on the toolbar.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.jump2.url">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump2.url</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump2.url</refname>
+<refpurpose>URL address of page accessible by Jump2 button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.jump2.url.frag">
+&lt;xsl:param name="htmlhelp.button.jump2.url"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>URL address of page accessible by Jump2 button.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.jump2.title">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump2.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump2.title</refname>
+<refpurpose>Title of Jump2 button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.jump2.title.frag">
+&lt;xsl:param name="htmlhelp.button.jump2.title"&gt;User2&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Title of Jump2 button.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.next">
+<refmeta>
+<refentrytitle>htmlhelp.button.next</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.next</refname>
+<refpurpose>Should the Next button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.next.frag">
+&lt;xsl:param name="htmlhelp.button.next" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Next button  on the toolbar.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.prev">
+<refmeta>
+<refentrytitle>htmlhelp.button.prev</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.prev</refname>
+<refpurpose>Should the Prev button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.prev.frag">
+&lt;xsl:param name="htmlhelp.button.prev" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Prev button  on the toolbar.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.button.zoom">
+<refmeta>
+<refentrytitle>htmlhelp.button.zoom</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.zoom</refname>
+<refpurpose>Should the Zoom button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.button.zoom.frag">
+&lt;xsl:param name="htmlhelp.button.zoom" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Zoom button  on the toolbar.
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.remember.window.position">
+<refmeta>
+<refentrytitle>htmlhelp.remember.window.position</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.remember.window.position</refname>
+<refpurpose>Remember help window position?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.remember.window.position.frag">
+&lt;xsl:param name="htmlhelp.remember.window.position" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to remember help window position between starts.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.window.geometry">
+<refmeta>
+<refentrytitle>htmlhelp.window.geometry</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.window.geometry</refname>
+<refpurpose>Set initial geometry of help window</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.window.geometry.frag">
+&lt;xsl:param name="htmlhelp.window.geometry"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies initial position of help
+window. E.g.</para>
+
+<programlisting>&lt;xsl:param name="htmlhelp.window.geometry"&gt;[160,64,992,704]&lt;/xsl:param&gt;</programlisting>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.use.hhk">
+<refmeta>
+<refentrytitle>htmlhelp.use.hhk</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.use.hhk</refname>
+<refpurpose>Should the index be built using the HHK file?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.use.hhk.frag">
+&lt;xsl:param name="htmlhelp.use.hhk" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the index is created using the HHK file (instead of using <tag role="html">object</tag>
+elements in the HTML files). For more information, see <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="HtmlHelp.html#HHGenIndex">Generating an index</link>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="htmlhelp.only">
+<refmeta>
+<refentrytitle>htmlhelp.only</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.only</refname>
+<refpurpose>Should only project files be generated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="htmlhelp.only.frag">
+&lt;xsl:param name="htmlhelp.only" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+
+<para>Set to non-zero if you want to play with various HTML Help parameters
+and you don't need to regenerate all HTML files. This setting will not
+process whole document, only project files (hhp, hhc, hhk,...) will be
+generated.</para>
+
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="eclipse_help"><title>Eclipse Help Platform</title>
+<refentry version="5.0" xml:id="eclipse.autolabel">
+<refmeta>
+<refentrytitle>eclipse.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>eclipse.autolabel</refname>
+<refpurpose>Should tree-like ToC use autonumbering feature?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="eclipse.autolabel.frag">
+&lt;xsl:param name="eclipse.autolabel" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want to include chapter and section numbers into ToC in
+the left panel, set this parameter to 1.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="eclipse.plugin.name">
+<refmeta>
+<refentrytitle>eclipse.plugin.name</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>eclipse.plugin.name</refname>
+<refpurpose>Eclipse Help plugin name</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="eclipse.plugin.name.frag">
+&lt;xsl:param name="eclipse.plugin.name"&gt;DocBook Online Help Sample&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Eclipse Help plugin name.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="eclipse.plugin.id">
+<refmeta>
+<refentrytitle>eclipse.plugin.id</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>eclipse.plugin.id</refname>
+<refpurpose>Eclipse Help plugin id</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="eclipse.plugin.id.frag">
+&lt;xsl:param name="eclipse.plugin.id"&gt;com.example.help&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Eclipse Help plugin id. You should change this id to something
+unique for each help.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="eclipse.plugin.provider">
+<refmeta>
+<refentrytitle>eclipse.plugin.provider</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>eclipse.plugin.provider</refname>
+<refpurpose>Eclipse Help plugin provider name</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="eclipse.plugin.provider.frag">
+&lt;xsl:param name="eclipse.plugin.provider"&gt;Example provider&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Eclipse Help plugin provider name.</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="webhelp"><title>WebHelp</title>
+<refentry version="5.0" xml:id="webhelp.autolabel">
+<refmeta>
+<refentrytitle>webhelp.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.autolabel</refname>
+<refpurpose>Should tree-like ToC use autonumbering feature?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="webhelp.autolabel.frag">
+&lt;xsl:param name="webhelp.autolabel"&gt;0&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>To include chapter and section numbers the table of contents pane, set this parameter to 1.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="webhelp.base.dir">
+<refmeta>
+<refentrytitle>webhelp.base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.base.dir</refname>
+<refpurpose>The base directory for webhelp output.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="webhelp.base.dir.frag">
+&lt;xsl:param name="webhelp.base.dir"&gt;docs&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If specified, the <parameter>webhelp.base.dir</parameter>
+parameter identifies the output directory for webhelp. (If not
+specified, the output directory is system dependent.) By default, this
+parameter is set to <filename>docs</filename>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="webhelp.common.dir">
+<refmeta>
+<refentrytitle>webhelp.common.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.common.dir</refname>
+<refpurpose>Path to the directory for the common webhelp resources (JavaScript, css, common images, etc).</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="webhelp.common.dir.frag">
+&lt;xsl:param name="webhelp.common.dir"&gt;../common/&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>By default, webhelp creates a common directory containing resources such as JavaScript files, css, common images, etc. In some cases you may prefer to store these files in a standard location on your site and point all webhelp documents to that location. You can use this parameter to control the urls written to these common resources. For example, you might set this parameter to <code>/common</code> and create a single common directory at the root of your web server.  </para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="webhelp.default.topic">
+<refmeta>
+<refentrytitle>webhelp.default.topic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.default.topic</refname>
+<refpurpose>The name of the file to which the start file in the webhelp base directory redirects</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="webhelp.default.topic.frag">
+&lt;xsl:param name="webhelp.default.topic"&gt;index.html&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Currently webhelp creates a base directory and puts the output
+files in a <filename>content</filename> subdirectory. It creates a
+file in the base directory that redirects to a configured file in the
+<filename>content</filename> directory. The
+<parameter>webhelp.default.topic</parameter> parameter lets you
+configure the name of the file that is redirected to.
+<note>
+  <para>This parameter will be removed from a future version of
+  webhelp along with the <filename>content</filename>
+  directory.</para>
+</note>
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="webhelp.include.search.tab">
+<refmeta>
+<refentrytitle>webhelp.include.search.tab</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.include.search.tab</refname>
+<refpurpose>Should the webhelp output include a Search tab?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="webhelp.include.search.tab.frag">
+&lt;xsl:param name="webhelp.include.search.tab"&gt;true&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Set this parameter to 0 to suppress the search tab from webhelp output.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="webhelp.indexer.language">
+<refmeta>
+<refentrytitle>webhelp.indexer.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype"/>
+</refmeta>
+<refnamediv>
+<refname>webhelp.indexer.language</refname>
+<refpurpose>The language to use for creating the webhelp search index.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="webhelp.indexer.language.frag">
+&lt;xsl:param name="webhelp.indexer.language"&gt;en&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>To support stemming in the client-side webhelp stemmer, you must provide the language code. By default, the following languages are supported:
+<itemizedlist>
+  <listitem>
+    <para><code>en</code>: English</para>
+  </listitem>
+  <listitem>
+    <para><code>de</code>: German</para>
+  </listitem>
+  <listitem>
+    <para><code>fr</code>: French</para>
+  </listitem>
+  <listitem>
+    <para><code>zh</code>: Chinese</para>
+  </listitem>
+  <listitem>
+    <para><code>ja</code>: Japanese</para>
+  </listitem>
+  <listitem>
+    <para><code>ko</code>: Korean</para>
+  </listitem>
+</itemizedlist>
+See the webhelp documentation for information on adding support for additional languages.
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="webhelp.start.filename">
+<refmeta>
+<refentrytitle>webhelp.start.filename</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.start.filename</refname>
+<refpurpose>The name of the start file in the webhelp base directory.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="webhelp.start.filename.frag">
+&lt;xsl:param name="webhelp.start.filename"&gt;index.html&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Currently webhelp creates a base directory and puts the output
+files in a <filename>content</filename> subdirectory. It creates a
+file in the base directory that redirects to a configured file in the
+<filename>content</filename> directory. The <parameter>webhelp.start.filename</parameter> parameter lets you configure the name of the redirect file.
+<note>
+  <para>This parameter will be removed from a future version of
+  webhelp along with the <filename>content</filename>
+  directory.</para>
+</note>
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="webhelp.tree.cookie.id">
+<refmeta>
+<refentrytitle>webhelp.tree.cookie.id</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.tree.cookie.id</refname>
+<refpurpose>Controls how the cookie that stores the webhelp toc state is named.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="webhelp.tree.cookie.id.frag">
+&lt;xsl:param name="webhelp.tree.cookie.id" select="concat( 'treeview-', count(//node()) )"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The webhelp output does not use a frameset. Instead, the table of contents is a div on each page. To preserve the state of the table of contents as the user navigates from page to page, webhelp stores the state in a cookie and reads that cookie when you get to the next page. If you've published several webhelp documents on the same domain, it is important that each cookie have a unique id. In lieu of calling on a GUID generator, by default this parameter is just set to the number of nodes in the document on the assumption that it is unlikely that you will have more than one document with the exact number of nodes. A more optimal solution would be for the user to pass in some unique, stable identifier from the build system to use as the webhelp cookie id. For example, if you have safeguards in place to ensure that the xml:id of the root element of each document will be unique on your site, then you could set webhelptree.cookie.id as follows:
+<programlisting>
+  &lt;xsl:param name="webhelp.tree.cookie.id"&gt;
+    &lt;xsl:choose&gt;
+      &lt;xsl:when test="/*/@xml:id"&gt;
+	&lt;xsl:value-of select="concat('treeview-',/*/@xml:id)"/&gt;
+      &lt;/xsl:when&gt;
+      &lt;xsl:otherwise&gt;
+	&lt;xsl:value-of select="concat( 'treeview-', count(//node()) )"/&gt;
+      &lt;/xsl:otherwise&gt;
+    &lt;/xsl:choose&gt;
+  &lt;/xsl:param&gt;
+  </programlisting>
+ </para>
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="javahelp"><title>JavaHelp</title>
+<refentry version="5.0" xml:id="javahelp.encoding">
+<refmeta>
+<refentrytitle>javahelp.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>javahelp.encoding</refname>
+<refpurpose>Character encoding to use in control files for JavaHelp.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="javahelp.encoding.frag">
+&lt;xsl:param name="javahelp.encoding"&gt;iso-8859-1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+  
+<para>JavaHelp crashes on some characters when written as character
+references. In that case you can use this parameter to select an appropriate encoding.</para>
+  
+</refsection>
+</refentry>
+
+
+
+
+</reference>
+<reference xml:id="l10n"><title>Localization</title>
+<refentry version="5.0" xml:id="l10n.gentext.language">
+<refmeta>
+<refentrytitle>l10n.gentext.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.gentext.language</refname>
+<refpurpose>Sets the gentext language</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="l10n.gentext.language.frag">
+&lt;xsl:param name="l10n.gentext.language"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If this parameter is set to any value other than the empty string, its
+value will be used as the value for the language when generating text. Setting
+<parameter>l10n.gentext.language</parameter> overrides any settings within the
+document being formatted.</para>
+
+<para>It's much more likely that you might want to set the
+<parameter>l10n.gentext.default.language</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="l10n.gentext.default.language">
+  <refmeta>
+    <refentrytitle>l10n.gentext.default.language</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>l10n.gentext.default.language</refname>
+    <refpurpose>Sets the default language for generated text</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+<programlisting xml:id="l10n.gentext.default.language.frag">
+&lt;xsl:param name="l10n.gentext.default.language"&gt;en&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of the <parameter>l10n.gentext.default.language</parameter>
+parameter is used as the language for generated text if no setting is provided
+in the source document.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="l10n.gentext.use.xref.language">
+<refmeta>
+<refentrytitle>l10n.gentext.use.xref.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.gentext.use.xref.language</refname>
+<refpurpose>Use the language of target when generating cross-reference text?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="l10n.gentext.use.xref.language.frag">
+&lt;xsl:param name="l10n.gentext.use.xref.language" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the language of the target will be used when
+generating cross reference text. Usually, the <quote>current</quote>
+language is used when generating text (that is, the language of the
+element that contains the cross-reference element). But setting this parameter
+allows the language of the element <emphasis>pointed to</emphasis> to control
+the generated text.</para>
+
+<para>Consider the following example:</para>
+
+<informalexample>
+<programlisting>&lt;para lang="en"&gt;See also &lt;xref linkend="chap3"/&gt;.&lt;/para&gt;
+</programlisting>
+</informalexample>
+
+<para>Suppose that Chapter 3 happens to be written in German.
+If <parameter>l10n.gentext.use.xref.language</parameter> is non-zero, the
+resulting text will be something like this:</para>
+
+<blockquote>
+<para>See also Kapital 3.</para>
+</blockquote>
+
+<para>Where the more traditional rendering would be:</para>
+
+<blockquote>
+<para>See also Chapter 3.</para>
+</blockquote>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="l10n.lang.value.rfc.compliant">
+<refmeta>
+<refentrytitle>l10n.lang.value.rfc.compliant</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.lang.value.rfc.compliant</refname>
+<refpurpose>Make value of lang attribute RFC compliant?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="l10n.lang.value.rfc.compliant.frag">
+&lt;xsl:param name="l10n.lang.value.rfc.compliant" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, ensure that the values for all <tag class="attribute">lang</tag> attributes in HTML output are RFC
+compliant<footnote><para>Section 8.1.1, <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/REC-html40/struct/dirlang.html#h-8.1.1">Language Codes</link>, in the HTML 4.0 Recommendation states that:
+
+<blockquote><para>[RFC1766] defines and explains the language codes
+that must be used in HTML documents.</para>
+<para>Briefly, language codes consist of a primary code and a possibly
+empty series of subcodes:
+
+<literallayout class="monospaced">language-code = primary-code ( "-" subcode )*</literallayout>
+</para>
+<para>And in RFC 1766, <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.ietf.org/rfc/rfc1766.txt">Tags for the Identification
+of Languages</link>, the EBNF for "language tag" is given as:
+
+<literallayout class="monospaced">Language-Tag = Primary-tag *( "-" Subtag )
+Primary-tag = 1*8ALPHA
+Subtag = 1*8ALPHA</literallayout>
+</para>
+</blockquote>
+</para></footnote>.
+
+by taking any underscore characters in any <tag class="attribute">lang</tag> values found in source documents, and
+replacing them with hyphen characters in output HTML files. For
+example, <literal>zh_CN</literal> in a source document becomes
+<literal>zh-CN</literal> in the HTML output form that source.
+
+<note>
+<para>This parameter does not cause any case change in <tag class="attribute">lang</tag> values, because RFC 1766
+explicitly states that all "language tags" (as it calls them) "are
+to be treated as case insensitive".</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="writing.mode">
+<refmeta>
+<refentrytitle>writing.mode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>writing.mode</refname>
+<refpurpose>Direction of text flow based on locale</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="writing.mode.frag">
+&lt;xsl:param name="writing.mode"&gt;
+  &lt;xsl:call-template name="gentext"&gt;
+    &lt;xsl:with-param name="key"&gt;writing-mode&lt;/xsl:with-param&gt;
+    &lt;xsl:with-param name="lang"&gt;
+      &lt;xsl:call-template name="l10n.language"&gt;
+        &lt;xsl:with-param name="target" select="/*[1]"&gt;&lt;/xsl:with-param&gt;
+      &lt;/xsl:call-template&gt;
+    &lt;/xsl:with-param&gt;
+  &lt;/xsl:call-template&gt;
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets direction of text flow and text alignment based on locale.
+The value is normally taken from the gentext file for the 
+lang attribute of the document's root element, using the 
+key name 'writing-mode' to look it up in the gentext file.
+But the param can also be
+set on the command line to override that gentext value.
+</para>
+<para>Accepted values are:
+<variablelist>
+  <varlistentry>
+    <term>lr-tb</term>
+    <listitem>
+      <para>Left-to-right text flow in each line, lines stack top to bottom.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>rl-tb</term>
+    <listitem>
+      <para>Right-to-left text flow in each line, lines stack top to bottom.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>tb-rl</term>
+    <listitem>
+      <para>Top-to-bottom text flow in each vertical line, lines stack right to left.
+      Supported by only a few XSL-FO processors. Not supported in HTML output.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>lr</term>
+    <listitem>
+      <para>Shorthand for lr-tb.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>rl</term>
+    <listitem>
+      <para>Shorthand for rl-tb.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>tb</term>
+    <listitem>
+      <para>Shorthand for tb-rl.</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+</para>
+
+</refsection>
+</refentry>
+
+</reference>
+<appendix xml:id="stylesheet"><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$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** --&gt;
+
+&lt;src:fragref linkend="abstract.notitle.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="admon.graphics.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="admon.graphics.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="admon.graphics.path.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="admon.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="admon.textlabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="annotate.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="annotation.css.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="annotation.graphic.close.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="annotation.graphic.open.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="annotation.js.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="annotation.support.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="appendix.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="author.othername.in.middle.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="autotoc.label.in.hyperlink.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="autotoc.label.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="base.dir.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="biblioentry.item.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="bibliography.collection.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="bibliography.numbered.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="bibliography.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="blurb.on.titlepage.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="bridgehead.in.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.defaultcolumn.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.graphics.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.graphics.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.graphics.number.limit.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.graphics.path.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.list.table.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.unicode.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.unicode.number.limit.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callout.unicode.start.character.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="callouts.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="chapter.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="chunk.append.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="chunk.first.sections.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="chunk.quietly.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="chunk.section.depth.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="chunk.separate.lots.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="chunk.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="chunk.tocs.and.lots.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="chunk.tocs.and.lots.has.title.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="chunked.filename.prefix.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="citerefentry.link.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="collect.xref.targets.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="component.label.includes.part.label.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="contrib.inline.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="css.decoration.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="current.docid.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="custom.css.source.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="default.float.class.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="default.image.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="default.table.frame.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="default.table.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="docbook.css.link.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="docbook.css.source.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="draft.mode.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="draft.watermark.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ebnf.assignment.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ebnf.statement.terminator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ebnf.table.bgcolor.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ebnf.table.border.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="eclipse.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="eclipse.plugin.id.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="eclipse.plugin.name.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="eclipse.plugin.provider.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="editedby.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="email.delimiters.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="emphasis.propagates.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="entry.propagates.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="exsl.node.set.available.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="firstterm.only.link.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footer.rule.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footnote.number.format.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footnote.number.symbols.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="formal.procedures.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="formal.title.placement.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="funcsynopsis.decoration.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="funcsynopsis.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="function.parens.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.consistent.ids.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.css.header.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.id.attributes.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.index.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.legalnotice.link.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.manifest.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.meta.abstract.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.revhistory.link.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.section.toc.level.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="generate.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossary.collection.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossary.sort.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossentry.show.acronym.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="glossterm.auto.link.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="graphic.default.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="graphicsize.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="graphicsize.use.img.src.path.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="header.rule.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="highlight.default.language.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="highlight.source.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="highlight.xslthl.config.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.append.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.base.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.cellpadding.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.cellspacing.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.cleanup.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.ext.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.extra.head.links.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.head.legalnotice.link.multiple.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.head.legalnotice.link.types.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.longdesc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.longdesc.link.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.script.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.script.type.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.stylesheet.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="html.stylesheet.type.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.alias.file.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.back.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.forward.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.hideshow.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.home.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.home.url.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.jump1.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.jump1.title.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.jump1.url.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.jump2.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.jump2.title.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.jump2.url.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.locate.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.next.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.options.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.prev.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.print.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.refresh.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.stop.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.button.zoom.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.chm.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.default.topic.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.display.progress.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.encoding.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.enhanced.decompilation.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.enumerate.images.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.force.map.and.alias.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.hhc.binary.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.hhc.folders.instead.books.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.hhc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.hhc.section.depth.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.hhc.show.root.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.hhc.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.hhk.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.hhp.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.hhp.tail.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.hhp.window.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.hhp.windows.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.map.file.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.only.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.remember.window.position.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.show.advanced.search.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.show.favorities.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.show.menu.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.show.toolbar.text.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.title.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.use.hhk.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="htmlhelp.window.geometry.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="id.warnings.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ignore.image.scaling.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="img.src.path.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.links.to.section.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.method.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.number.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.on.role.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.on.type.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.prefer.titleabbrev.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.range.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="index.term.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="inherit.keywords.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="insert.olink.page.number.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="insert.olink.pdf.frag.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="insert.xref.page.number.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="javahelp.encoding.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="keep.relative.image.uris.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="l10n.gentext.default.language.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="l10n.gentext.language.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="l10n.gentext.use.xref.language.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="l10n.lang.value.rfc.compliant.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="label.from.part.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="linenumbering.everyNth.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="linenumbering.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="linenumbering.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="linenumbering.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="link.mailto.url.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="make.clean.html.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="make.graphic.viewport.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="make.single.year.ranges.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="make.valid.html.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="make.year.ranges.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="manifest.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="manifest.in.base.dir.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="manual.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="menuchoice.menu.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="menuchoice.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="navig.graphics.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="navig.graphics.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="navig.graphics.path.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="navig.showtitles.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="nominal.image.depth.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="nominal.image.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="nominal.table.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.base.uri.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.debug.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.doctitle.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.fragid.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.lang.fallback.sequence.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.outline.ext.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.properties.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.pubid.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.resolver.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="olink.sysid.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="othercredit.like.author.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="para.propagates.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="part.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="phrase.propagates.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="pixels.per.inch.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="points.per.em.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="preface.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="prefer.internal.olink.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="preferred.mediaobject.role.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="process.empty.source.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="process.source.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.arch.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.attribute.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.audience.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.condition.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.conformance.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.lang.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.os.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.revision.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.revisionflag.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.role.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.security.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.status.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.userlevel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.value.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.vendor.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="profile.wordsize.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="punct.honorific.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.defaultlabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.in.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.inherit.numeration.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qanda.nested.in.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="qandadiv.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refclass.suppress.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.generate.name.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.generate.title.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.xref.manvolnum.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="reference.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="root.filename.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="rootid.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="runinhead.default.title.end.punct.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="runinhead.title.end.punct.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.autolabel.max.depth.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="section.label.includes.component.label.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="segmentedlist.as.table.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="shade.verbatim.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="shade.verbatim.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="show.comments.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="show.revisionflag.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="simplesect.in.toc.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="spacing.paras.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="suppress.footer.navigation.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="suppress.header.navigation.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="suppress.navigation.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.borders.with.css.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.cell.border.color.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.cell.border.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.cell.border.thickness.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.footnote.number.format.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.footnote.number.symbols.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.frame.border.color.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.frame.border.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.frame.border.thickness.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="tablecolumns.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="target.database.document.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="targets.filename.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="tex.math.delims.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="tex.math.file.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="tex.math.in.alt.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="textdata.default.encoding.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="textinsert.extension.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.list.type.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.max.depth.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.section.depth.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="ulink.target.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="use.embed.for.svg.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="use.extensions.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="use.id.as.filename.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="use.local.olink.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="use.role.as.xrefstyle.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="use.role.for.mediaobject.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="use.svg.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="variablelist.as.table.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="variablelist.term.break.after.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="variablelist.term.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="webhelp.autolabel.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="webhelp.base.dir.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="webhelp.common.dir.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="webhelp.default.topic.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="webhelp.include.search.tab.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="webhelp.indexer.language.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="webhelp.start.filename.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="webhelp.tree.cookie.id.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="writing.mode.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xref.label-page.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xref.label-title.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xref.title-page.separator.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="xref.with.number.and.title.frag"&gt;&lt;/src:fragref&gt;
+
+&lt;/xsl:stylesheet&gt;
+</programlisting>
+
+</appendix>
+</book>
diff --git a/applications/content/template/docbook/html/param.xsl b/applications/content/template/docbook/html/param.xsl
new file mode 100644
index 0000000..3c2cef5
--- /dev/null
+++ b/applications/content/template/docbook/html/param.xsl
@@ -0,0 +1,447 @@
+<?xml version="1.0"?>
+<!-- This file is generated from param.xweb -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:param name="abstract.notitle.enabled" select="0"/>
+<xsl:param name="admon.graphics.extension">.png</xsl:param>
+<xsl:param name="admon.graphics" select="0"/>
+<xsl:param name="admon.graphics.path">images/</xsl:param>
+<xsl:param name="admon.style">
+  <xsl:value-of select="concat('margin-', $direction.align.start,            ': 0.5in; margin-', $direction.align.end, ': 0.5in;')"/>
+</xsl:param>
+<xsl:param name="admon.textlabel" select="1"/>
+<xsl:param name="annotate.toc" select="1"/>
+<xsl:param name="annotation.css">
+/* ======================================================================
+   Annotations
+*/
+
+div.annotation-list  { visibility: hidden;
+                     }
+
+div.annotation-nocss { position: absolute;
+                       visibility: hidden;
+                     }
+
+div.annotation-popup { position: absolute;
+                       z-index: 4;
+                       visibility: hidden;
+                       padding: 0px;
+                       margin: 2px;
+                       border-style: solid;
+                       border-width: 1px;
+                       width: 200px;
+		       background-color: white;
+                     }
+
+div.annotation-title { padding: 1px;
+                       font-weight: bold;
+                       border-bottom-style: solid;
+                       border-bottom-width: 1px;
+		       color: white;
+		       background-color: black;
+                     }
+
+div.annotation-body  { padding: 2px;
+                     }
+
+div.annotation-body p { margin-top: 0px;
+                        padding-top: 0px;
+                      }
+
+div.annotation-close { position: absolute;
+                       top: 2px;
+                       right: 2px;
+                     }
+</xsl:param>
+<xsl:param name="annotation.graphic.close">
+http://docbook.sourceforge.net/release/images/annot-close.png</xsl:param>
+<xsl:param name="annotation.graphic.open">http://docbook.sourceforge.net/release/images/annot-open.png</xsl:param>
+
+<xsl:param name="annotation.js">
+<xsl:text>http://docbook.sourceforge.net/release/script/AnchorPosition.js http://docbook.sourceforge.net/release/script/PopupWindow.js</xsl:text></xsl:param>
+
+<xsl:param name="annotation.support" select="0"/>
+<xsl:param name="appendix.autolabel">A</xsl:param>
+<xsl:param name="author.othername.in.middle" select="1"/>
+<xsl:param name="autotoc.label.in.hyperlink" select="1"/>
+<xsl:param name="autotoc.label.separator">. </xsl:param>
+<xsl:param name="base.dir"/>
+<xsl:param name="biblioentry.item.separator">. </xsl:param>
+<xsl:param name="bibliography.collection">http://docbook.sourceforge.net/release/bibliography/bibliography.xml</xsl:param>
+
+<xsl:param name="bibliography.numbered" select="0"/>
+<xsl:param name="bibliography.style">normal</xsl:param>
+<xsl:param name="blurb.on.titlepage.enabled" select="0"/>
+<xsl:param name="bridgehead.in.toc" select="0"/>
+<xsl:param name="callout.defaultcolumn">60</xsl:param>
+<xsl:param name="callout.graphics.extension">.png</xsl:param>
+
+<xsl:param name="callout.graphics" select="1"/>
+<xsl:param name="callout.graphics.number.limit">15</xsl:param>
+
+<xsl:param name="callout.graphics.path">images/callouts/</xsl:param>
+<xsl:param name="callout.list.table" select="1"/>
+<xsl:param name="callout.unicode" select="0"/>
+<xsl:param name="callout.unicode.number.limit">10</xsl:param>
+<xsl:param name="callout.unicode.start.character">10102</xsl:param>
+<xsl:param name="callouts.extension" select="1"/>
+<xsl:param name="chapter.autolabel" select="1"/>
+<xsl:param name="chunk.append"/>
+<xsl:param name="chunk.first.sections" select="0"/>
+<xsl:param name="chunk.quietly" select="0"/>
+<xsl:param name="chunk.section.depth" select="1"/>
+<xsl:param name="chunk.separate.lots" select="0"/>
+<xsl:param name="chunk.toc"/>
+<xsl:param name="chunk.tocs.and.lots" select="0"/>
+<xsl:param name="chunk.tocs.and.lots.has.title" select="1"/>
+<xsl:param name="chunked.filename.prefix"/>
+<xsl:param name="citerefentry.link" select="0"/>
+<xsl:param name="collect.xref.targets">no</xsl:param>
+<xsl:param name="component.label.includes.part.label" select="0"/>
+<xsl:param name="contrib.inline.enabled">1</xsl:param>
+<xsl:param name="css.decoration" select="1"/>
+<xsl:param name="current.docid"/>
+<xsl:param name="custom.css.source"/>
+<xsl:param name="default.float.class">
+  <xsl:choose>
+    <xsl:when test="contains($stylesheet.result.type,'html')">left</xsl:when>
+    <xsl:otherwise>before</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="default.image.width"/>
+<xsl:param name="default.table.frame">all</xsl:param>
+<xsl:param name="default.table.width"/>
+<xsl:param name="docbook.css.link" select="1"/>
+<xsl:param name="docbook.css.source">docbook.css.xml</xsl:param>
+<xsl:param name="draft.mode">no</xsl:param>
+<xsl:param name="draft.watermark.image">images/draft.png</xsl:param>
+<xsl:param name="ebnf.assignment">
+<code>::=</code>
+</xsl:param>
+
+<xsl:param name="ebnf.statement.terminator"/>
+
+<xsl:param name="ebnf.table.bgcolor">#F5DCB3</xsl:param>
+<xsl:param name="ebnf.table.border" select="1"/>
+<xsl:param name="eclipse.autolabel" select="0"/>
+<xsl:param name="eclipse.plugin.id">com.example.help</xsl:param>
+<xsl:param name="eclipse.plugin.name">DocBook Online Help Sample</xsl:param>
+<xsl:param name="eclipse.plugin.provider">Example provider</xsl:param>
+<xsl:param name="editedby.enabled">1</xsl:param>
+<xsl:param name="email.delimiters.enabled" select="1"/>
+<xsl:param name="emphasis.propagates.style" select="1"/>
+<xsl:param name="entry.propagates.style" select="1"/>
+<xsl:param name="exsl.node.set.available"> 
+  <xsl:choose>
+    <xsl:when xmlns:exsl="http://exslt.org/common" exsl:foo="" test="function-available('exsl:node-set') or                        contains(system-property('xsl:vendor'),                          'Apache Software Foundation')">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="firstterm.only.link" select="0"/>
+<xsl:param name="footer.rule" select="1"/>
+<xsl:param name="footnote.number.format">1</xsl:param>
+<xsl:param name="footnote.number.symbols"/>
+<xsl:param name="formal.procedures" select="1"/>
+<xsl:param name="formal.title.placement">
+figure before
+example before
+equation before
+table before
+procedure before
+task before
+</xsl:param>
+<xsl:param name="funcsynopsis.decoration" select="1"/>
+<xsl:param name="funcsynopsis.style">kr</xsl:param>
+<xsl:param name="function.parens" select="0"/>
+<xsl:param name="generate.consistent.ids" select="0"/>
+<xsl:param name="generate.css.header" select="0"/>
+<xsl:param name="generate.id.attributes" select="0"/>
+<xsl:param name="generate.index" select="1"/>
+<xsl:param name="generate.legalnotice.link" select="0"/>
+<xsl:param name="generate.manifest" select="0"/>
+<xsl:param name="generate.meta.abstract" select="1"/>
+<xsl:param name="generate.revhistory.link" select="0"/>
+<xsl:param name="generate.section.toc.level" select="0"/>
+<xsl:param name="generate.toc">
+appendix  toc,title
+article/appendix  nop
+article   toc,title
+book      toc,title,figure,table,example,equation
+chapter   toc,title
+part      toc,title
+preface   toc,title
+qandadiv  toc
+qandaset  toc
+reference toc,title
+sect1     toc
+sect2     toc
+sect3     toc
+sect4     toc
+sect5     toc
+section   toc
+set       toc,title
+</xsl:param>
+
+<xsl:param name="glossary.collection"/>
+<xsl:param name="glossary.sort" select="0"/>
+<xsl:param name="glossentry.show.acronym">no</xsl:param>
+<xsl:param name="glossterm.auto.link" select="0"/>
+<xsl:param name="graphic.default.extension"/>
+<xsl:param name="graphicsize.extension" select="1"/>
+<xsl:param name="graphicsize.use.img.src.path" select="0"/>
+<xsl:param name="header.rule" select="1"/>
+<xsl:param name="highlight.default.language"/>
+<xsl:param name="highlight.source" select="0"/>
+<xsl:param name="highlight.xslthl.config"/>
+<xsl:param name="html.append"/>
+<xsl:param name="html.base"/>
+<xsl:param name="html.cellpadding"/>
+<xsl:param name="html.cellspacing"/>
+<xsl:param name="html.cleanup" select="1"/>
+<xsl:param name="html.ext">.html</xsl:param>
+<xsl:param name="html.extra.head.links" select="0"/>
+<xsl:param name="html.head.legalnotice.link.multiple" select="1"/>
+<xsl:param name="html.head.legalnotice.link.types">copyright</xsl:param>
+<xsl:param name="html.longdesc" select="1"/>
+<xsl:param name="html.longdesc.link" select="$html.longdesc"/>
+<xsl:param name="html.script"/>
+<xsl:param name="html.script.type">text/javascript</xsl:param>
+<xsl:param name="html.stylesheet"/>
+<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+<xsl:param name="htmlhelp.alias.file">alias.h</xsl:param>
+<xsl:param name="htmlhelp.autolabel" select="0"/>
+<xsl:param name="htmlhelp.button.back" select="1"/>
+<xsl:param name="htmlhelp.button.forward" select="0"/>
+<xsl:param name="htmlhelp.button.hideshow" select="1"/>
+<xsl:param name="htmlhelp.button.home" select="0"/>
+<xsl:param name="htmlhelp.button.home.url"/>
+<xsl:param name="htmlhelp.button.jump1" select="0"/>
+<xsl:param name="htmlhelp.button.jump1.title">User1</xsl:param>
+<xsl:param name="htmlhelp.button.jump1.url"/>
+<xsl:param name="htmlhelp.button.jump2" select="0"/>
+<xsl:param name="htmlhelp.button.jump2.title">User2</xsl:param>
+<xsl:param name="htmlhelp.button.jump2.url"/>
+<xsl:param name="htmlhelp.button.locate" select="0"/>
+<xsl:param name="htmlhelp.button.next" select="1"/>
+<xsl:param name="htmlhelp.button.options" select="1"/>
+<xsl:param name="htmlhelp.button.prev" select="1"/>
+<xsl:param name="htmlhelp.button.print" select="1"/>
+<xsl:param name="htmlhelp.button.refresh" select="0"/>
+<xsl:param name="htmlhelp.button.stop" select="0"/>
+<xsl:param name="htmlhelp.button.zoom" select="0"/>
+<xsl:param name="htmlhelp.chm">htmlhelp.chm</xsl:param>
+<xsl:param name="htmlhelp.default.topic"/>
+<xsl:param name="htmlhelp.display.progress" select="1"/>
+<xsl:param name="htmlhelp.encoding">iso-8859-1</xsl:param>
+<xsl:param name="htmlhelp.enhanced.decompilation" select="0"/>
+<xsl:param name="htmlhelp.enumerate.images" select="0"/>
+<xsl:param name="htmlhelp.force.map.and.alias" select="0"/>
+<xsl:param name="htmlhelp.hhc.binary" select="1"/>
+<xsl:param name="htmlhelp.hhc.folders.instead.books" select="1"/>
+<xsl:param name="htmlhelp.hhc">toc.hhc</xsl:param>
+<xsl:param name="htmlhelp.hhc.section.depth">5</xsl:param>
+<xsl:param name="htmlhelp.hhc.show.root" select="1"/>
+<xsl:param name="htmlhelp.hhc.width"/>
+<xsl:param name="htmlhelp.hhk">index.hhk</xsl:param>
+<xsl:param name="htmlhelp.hhp">htmlhelp.hhp</xsl:param>
+<xsl:param name="htmlhelp.hhp.tail"/>
+<xsl:param name="htmlhelp.hhp.window">Main</xsl:param>
+<xsl:param name="htmlhelp.hhp.windows"/>
+<xsl:param name="htmlhelp.map.file">context.h</xsl:param>
+<xsl:param name="htmlhelp.only" select="0"/>
+<xsl:param name="htmlhelp.remember.window.position" select="0"/>
+<xsl:param name="htmlhelp.show.advanced.search" select="0"/>
+<xsl:param name="htmlhelp.show.favorities" select="0"/>
+<xsl:param name="htmlhelp.show.menu" select="0"/>
+<xsl:param name="htmlhelp.show.toolbar.text" select="1"/>
+<xsl:param name="htmlhelp.title"/>
+<xsl:param name="htmlhelp.use.hhk" select="0"/>
+<xsl:param name="htmlhelp.window.geometry"/>
+<xsl:param name="id.warnings" select="0"/>
+<xsl:param name="ignore.image.scaling" select="0"/>
+<xsl:param name="img.src.path"/>
+<xsl:param name="index.links.to.section" select="1"/>
+<xsl:param name="index.method">basic</xsl:param>
+<xsl:param name="index.number.separator"/>
+<xsl:param name="index.on.role" select="0"/>
+<xsl:param name="index.on.type" select="0"/>
+<xsl:param name="index.prefer.titleabbrev" select="0"/>
+<xsl:param name="index.range.separator"/>
+<xsl:param name="index.term.separator"/>
+<xsl:param name="inherit.keywords" select="1"/>
+<xsl:param name="insert.olink.page.number">no</xsl:param>
+<xsl:param name="insert.olink.pdf.frag" select="0"/>
+<xsl:param name="insert.xref.page.number">no</xsl:param>
+<xsl:param name="javahelp.encoding">iso-8859-1</xsl:param>
+<xsl:param name="keep.relative.image.uris" select="1"/>
+
+<xsl:param name="l10n.gentext.default.language">en</xsl:param>
+<xsl:param name="l10n.gentext.language"/>
+<xsl:param name="l10n.gentext.use.xref.language" select="0"/>
+<xsl:param name="l10n.lang.value.rfc.compliant" select="1"/>
+<xsl:param name="label.from.part" select="0"/>
+<xsl:param name="linenumbering.everyNth">5</xsl:param>
+<xsl:param name="linenumbering.extension" select="1"/>
+<xsl:param name="linenumbering.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="linenumbering.width">3</xsl:param>
+<xsl:param name="link.mailto.url"/>
+<xsl:param name="make.clean.html" select="0"/>
+<xsl:param name="make.graphic.viewport" select="1"/>
+<xsl:param name="make.single.year.ranges" select="0"/>
+<xsl:param name="make.valid.html" select="0"/>
+<xsl:param name="make.year.ranges" select="0"/>
+    <xsl:param name="manifest">HTML.manifest</xsl:param>
+    
+<xsl:param name="manifest.in.base.dir" select="0"/>
+<xsl:param name="manual.toc"/>
+<xsl:param name="menuchoice.menu.separator"> → </xsl:param>
+<xsl:param name="menuchoice.separator">+</xsl:param>
+<xsl:param name="navig.graphics.extension">.gif</xsl:param>
+<xsl:param name="navig.graphics" select="0"/>
+<xsl:param name="navig.graphics.path">images/</xsl:param>
+<xsl:param name="navig.showtitles">1</xsl:param>
+<xsl:param name="nominal.image.depth" select="4 * $pixels.per.inch"/>
+<xsl:param name="nominal.image.width" select="6 * $pixels.per.inch"/>
+<xsl:param name="nominal.table.width">6in</xsl:param>
+<xsl:param name="olink.base.uri"/>
+<xsl:param name="olink.debug" select="0"/>
+<xsl:param name="olink.doctitle">no</xsl:param> 
+<xsl:param name="olink.fragid">fragid=</xsl:param>
+<xsl:param name="olink.lang.fallback.sequence"/>
+<xsl:param name="olink.outline.ext">.olink</xsl:param>
+<xsl:attribute-set name="olink.properties">
+  <xsl:attribute name="show-destination">replace</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="olink.pubid">pubid</xsl:param>
+  <xsl:param name="olink.resolver">/cgi-bin/olink</xsl:param>
+<xsl:param name="olink.sysid">sysid</xsl:param>
+<xsl:param name="othercredit.like.author.enabled">0</xsl:param>
+<xsl:param name="para.propagates.style" select="1"/>
+<xsl:param name="part.autolabel">I</xsl:param>
+<xsl:param name="phrase.propagates.style" select="1"/>
+<xsl:param name="pixels.per.inch">90</xsl:param>
+<xsl:param name="points.per.em">10</xsl:param>
+<xsl:param name="preface.autolabel" select="0"/>
+<xsl:param name="prefer.internal.olink" select="0"/>
+<xsl:param name="preferred.mediaobject.role"/>
+<xsl:param name="process.empty.source.toc" select="0"/>
+<xsl:param name="process.source.toc" select="0"/>
+<xsl:param name="profile.arch"/>
+<xsl:param name="profile.attribute"/>
+<xsl:param name="profile.audience"/>
+<xsl:param name="profile.condition"/>
+<xsl:param name="profile.conformance"/>
+<xsl:param name="profile.lang"/>
+<xsl:param name="profile.os"/>
+<xsl:param name="profile.revision"/>
+<xsl:param name="profile.revisionflag"/>
+<xsl:param name="profile.role"/>
+<xsl:param name="profile.security"/>
+<xsl:param name="profile.separator">;</xsl:param>
+<xsl:param name="profile.status"/>
+<xsl:param name="profile.userlevel"/>
+<xsl:param name="profile.value"/>
+<xsl:param name="profile.vendor"/>
+<xsl:param name="profile.wordsize"/>
+<xsl:param name="punct.honorific">.</xsl:param>
+<xsl:param name="qanda.defaultlabel">number</xsl:param>
+<xsl:param name="qanda.in.toc" select="0"/>
+<xsl:param name="qanda.inherit.numeration" select="1"/>
+<xsl:param name="qanda.nested.in.toc" select="0"/>
+<xsl:param name="qandadiv.autolabel" select="1"/>
+<xsl:param name="refclass.suppress" select="0"/>
+<xsl:param name="refentry.generate.name" select="1"/>
+<xsl:param name="refentry.generate.title" select="0"/>
+<xsl:param name="refentry.separator" select="1"/>
+<xsl:param name="refentry.xref.manvolnum" select="1"/>
+  <xsl:param name="reference.autolabel">I</xsl:param>
+<xsl:param name="root.filename">index</xsl:param>
+<xsl:param name="rootid"/>
+<xsl:param name="runinhead.default.title.end.punct">.</xsl:param>
+<xsl:param name="runinhead.title.end.punct">.!?:</xsl:param>
+<xsl:param name="section.autolabel" select="0"/>
+<xsl:param name="section.autolabel.max.depth">8</xsl:param>
+<xsl:param name="section.label.includes.component.label" select="0"/>
+<xsl:param name="segmentedlist.as.table" select="0"/>
+<xsl:param name="shade.verbatim" select="0"/>
+<xsl:attribute-set name="shade.verbatim.style">
+  <xsl:attribute name="border">0</xsl:attribute>
+  <xsl:attribute name="bgcolor">#E0E0E0</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:param name="show.comments" select="1"/>
+<xsl:param name="show.revisionflag" select="0"/>
+<xsl:param name="simplesect.in.toc" select="0"/>
+<xsl:param name="spacing.paras" select="0"/>
+<xsl:param name="suppress.footer.navigation">0</xsl:param>
+<xsl:param name="suppress.header.navigation" select="0"/>
+<xsl:param name="suppress.navigation" select="0"/>
+<xsl:param name="table.borders.with.css" select="0"/>
+<xsl:param name="table.cell.border.color"/>
+
+<xsl:param name="table.cell.border.style">solid</xsl:param>
+<xsl:param name="table.cell.border.thickness">0.5pt</xsl:param>
+<xsl:param name="table.footnote.number.format">a</xsl:param>
+<xsl:param name="table.footnote.number.symbols"/>
+<xsl:param name="table.frame.border.color"/>
+
+<xsl:param name="table.frame.border.style">solid</xsl:param>
+<xsl:param name="table.frame.border.thickness">0.5pt</xsl:param>
+<xsl:param name="tablecolumns.extension" select="1"/>
+ <xsl:param name="target.database.document">olinkdb.xml</xsl:param>
+<xsl:param name="targets.filename">target.db</xsl:param>
+<xsl:param name="tex.math.delims" select="1"/>
+<xsl:param name="tex.math.file">tex-math-equations.tex</xsl:param>
+<xsl:param name="tex.math.in.alt"/>
+<xsl:param name="textdata.default.encoding"/>
+  <xsl:param name="textinsert.extension" select="1"/>
+<xsl:param name="toc.list.type">dl</xsl:param>
+<xsl:param name="toc.max.depth">8</xsl:param>
+<xsl:param name="toc.section.depth">2</xsl:param>
+<xsl:param name="ulink.target">_top</xsl:param>
+<xsl:param name="use.embed.for.svg" select="0"/>
+<xsl:param name="use.extensions" select="0"/>
+<xsl:param name="use.id.as.filename" select="0"/>
+<xsl:param name="use.local.olink.style" select="0"/> 
+<xsl:param name="use.role.as.xrefstyle" select="1"/>
+<xsl:param name="use.role.for.mediaobject" select="1"/>
+<xsl:param name="use.svg" select="1"/>
+<xsl:param name="variablelist.as.table" select="0"/>
+<xsl:param name="variablelist.term.break.after">0</xsl:param>
+<xsl:param name="variablelist.term.separator">, </xsl:param>
+<xsl:param name="webhelp.autolabel">0</xsl:param>
+<xsl:param name="webhelp.base.dir">docs</xsl:param>
+<xsl:param name="webhelp.common.dir">../common/</xsl:param>
+<xsl:param name="webhelp.default.topic">index.html</xsl:param>
+<xsl:param name="webhelp.include.search.tab">true</xsl:param>
+<xsl:param name="webhelp.indexer.language">en</xsl:param>
+<xsl:param name="webhelp.start.filename">index.html</xsl:param>
+<xsl:param name="webhelp.tree.cookie.id" select="concat( 'treeview-', count(//node()) )"/>
+<xsl:param name="writing.mode">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">writing-mode</xsl:with-param>
+    <xsl:with-param name="lang">
+      <xsl:call-template name="l10n.language">
+        <xsl:with-param name="target" select="/*[1]"/>
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:param>
+<xsl:param name="xref.label-page.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="xref.label-title.separator">: </xsl:param>
+<xsl:param name="xref.title-page.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="xref.with.number.and.title" select="1"/>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/html/pi.xml b/applications/content/template/docbook/html/pi.xml
new file mode 100644
index 0000000..7a9036d
--- /dev/null
+++ b/applications/content/template/docbook/html/pi.xml
@@ -0,0 +1,1152 @@
+<?xml version="1.0"?>
+
+<reference><info><title>HTML Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    
+<para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the DocBook
+      XSL stylesheets for HTML output.
+      <note>
+        
+<para>You add these PIs at particular points in a document to
+          cause specific “exceptions” to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it’s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+
+      </note>
+    </para>
+
+  </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_background-color">
+<refnamediv>
+<refname>dbhtml_background-color</refname>
+<refpurpose>Sets background color for an image</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml background-color="<replaceable>color</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml background-color</tag> PI before or
+      after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
+      <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
+      sibling to the element, to set a background color for the
+      image.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
+        <listitem>
+          
+<para>An HTML color value</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="BGcolor.html">Background color</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_bgcolor">
+<refnamediv>
+<refname>dbhtml_bgcolor</refname>
+<refpurpose>Sets background color on a CALS table row or table cell</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml bgcolor</tag> PI as child of a CALS table row
+      or cell to set a background color for that table row or cell.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
+        <listitem>
+          
+<para>An HTML color value</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="BGtableColor.html#CellBGColor">Cell background color</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_cellpadding">
+<refnamediv>
+<refname>dbhtml_cellpadding</refname>
+<refpurpose>Specifies cellpadding in CALS table or qandaset output</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml cellpadding="<replaceable>number</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml cellpadding</tag> PI as a child of a
+      CALS <tag>table</tag> or <tag>qandaset</tag> to specify the value
+      for the HTML <literal>cellpadding</literal> attribute in the
+      output HTML table.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>cellpadding="<replaceable>number</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the cellpadding</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>html.cellpadding</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="CellSpacing.html">Cell spacing and cell padding</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_cellspacing">
+<refnamediv>
+<refname>dbhtml_cellspacing</refname>
+<refpurpose>Specifies cellspacing in CALS table or qandaset output</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml cellspacing="<replaceable>number</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml cellspacing</tag> PI as a child of a
+      CALS <tag>table</tag> or <tag>qandaset</tag> to specify the value
+      for the HTML <literal>cellspacing</literal> attribute in the
+      output HTML table.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>cellspacing="<replaceable>number</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the cellspacing</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>html.cellspacing</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="CellSpacing.html">Cell spacing and cell padding</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+
+    </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_class">
+<refnamediv>
+<refname>dbhtml_class</refname>
+<refpurpose>Set value of the class attribute for a CALS table row</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml class="<replaceable>name</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml class</tag> PI as a child of a
+      <tag>row</tag> to specify a <literal>class</literal>
+      attribute and value in the HTML output for that row.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>class="<replaceable>name</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the class name</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="CSSTableCells.html">Table styles in HTML output</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_dir">
+<refnamediv>
+<refname>dbhtml_dir</refname>
+<refpurpose>Specifies a directory name in which to write files</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml dir="<replaceable>path</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>When chunking output, use the <tag class="xmlpi">dbhtml dir</tag> PI
+      as a child of a chunk source to cause the output of that
+      chunk to be written to the specified directory; also, use it
+      as a child of a <tag>mediaobject</tag> to specify a
+      directory into which any long-description files for that
+      <tag>mediaobject</tag> will be written.</para>
+
+
+
+<para>The output directory specification is inherited by all
+chunks of the descendants of the element.  If descendants need
+to go to a different directory, then add another 
+<tag class="xmlpi">dbhtml dir</tag> processing
+instruction as a child of the source element
+for that chunk, and specify the path relative to the
+ancestor path.</para>
+
+
+
+<para>For example, to put most chunk files into 
+<filename class="directory">shared</filename>
+but one chapter into 
+<filename class="directory">exception</filename>
+at the same level, use:</para>
+
+
+<programlisting>&lt;book&gt;
+  &lt;?dbhtml dir="shared"?&gt;
+  ...
+  &lt;chapter&gt;
+    &lt;?dbhtml dir="../exception"?&gt;
+  &lt;/chapter&gt;
+&lt;/book&gt;
+</programlisting>
+
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>dir="<replaceable>path</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the pathname for the directory</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>base.dir</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Chunking.html#dbhtmlDirPI">dbhtml dir processing instruction</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_filename">
+<refnamediv>
+<refname>dbhtml_filename</refname>
+<refpurpose>Specifies a filename for a chunk</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml filename="<replaceable>filename</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>When chunking output, use the <tag class="xmlpi">dbhtml filename</tag>
+      PI as a child of a chunk source to specify a filename for
+      the output file for that chunk. Include the filename suffix.</para>
+
+
+
+<para>You cannot include a directory path in the filename value,
+or your links may not work.  Add a 
+<tag class="xmlpi">dbhtml dir</tag> processing instruction
+to specify the output directory. You can also combine the two
+specifications in one processing instruction: 
+<tag class="xmlpi">dbhtml dir="mydir" filename="myfile.html"</tag>.</para>
+
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>filename="<replaceable>path</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the filename for the file</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>use.id.as.filename</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Chunking.html#DbhtmlFilenames">dbhtml filenames</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_funcsynopsis-style">
+<refnamediv>
+<refname>dbhtml_funcsynopsis-style</refname>
+<refpurpose>Specifies presentation style for a funcsynopsis</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml funcsynopsis-style="kr"|"ansi"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml funcsynopsis-style</tag> PI as a child of
+      a <tag>funcsynopsis</tag> or anywhere within a funcsynopsis
+      to control the presentation style for output of all
+      <tag>funcprototype</tag> instances within that funcsynopsis.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>funcsynopsis-style="kr"</term>
+        <listitem>
+          
+<para>Displays <tag>funcprototype</tag> output in K&amp;R style</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>funcsynopsis-style="ansi"</term>
+        <listitem>
+          
+<para>Displays <tag>funcprototype</tag> output in ANSI style</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>funcsynopsis.style</parameter></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_img.src.path">
+<refnamediv>
+<refname>dbhtml_img.src.path</refname>
+<refpurpose>Specifies a path to the location of an image file</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml img.src.path="<replaceable>path</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml img.src.path</tag> PI before or
+      after an image (<tag>graphic</tag>,
+      <tag>inlinegraphic</tag>, <tag>imagedata</tag>, or
+      <tag>videodata</tag> element) as a sibling to the element,
+      to specify a path to the location of the image; in HTML
+      output, the value specified for the
+      <code>img.src.path</code> attribute is prepended to the
+      filename.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>img.src.path="<replaceable>path</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the pathname to prepend to the name of the image file</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>img.src.path</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="GraphicsLocations.html#UsingFileref">Using fileref</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_label-width">
+<refnamediv>
+<refname>dbhtml_label-width</refname>
+<refpurpose>Specifies the label width for a qandaset</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml label-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml label-width</tag> PI as a child of a
+      <tag>qandaset</tag> to specify the width of labels.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the label width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_linenumbering.everyNth">
+<refnamediv>
+<refname>dbhtml_linenumbering.everyNth</refname>
+<refpurpose>Specifies interval for line numbers in verbatims</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml linenumbering.everyNth</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the interval at which lines are numbered.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies numbering interval; a number is output
+            before every <replaceable>N</replaceable>th line</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>linenumbering.everyNth</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_linenumbering.separator">
+<refnamediv>
+<refname>dbhtml_linenumbering.separator</refname>
+<refpurpose>Specifies separator text for line numbers in verbatims</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml linenumbering.separator</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the separator text output between the line numbers and content.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the text (zero or more characters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>linenumbering.separator</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_linenumbering.width">
+<refnamediv>
+<refname>dbhtml_linenumbering.width</refname>
+<refpurpose>Specifies width for line numbers in verbatims</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml linenumbering.width</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the width set aside for line numbers.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the width (inluding units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>linenumbering.width</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_list-presentation">
+<refnamediv>
+<refname>dbhtml_list-presentation</refname>
+<refpurpose>Specifies presentation style for a variablelist or
+    segmentedlist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml list-presentation="list"|"table"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml list-presentation</tag> PI as a child of
+      a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
+      control the presentation style for the list (to cause it, for
+      example, to be displayed as a table).</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>list-presentation="list"</term>
+        <listitem>
+          
+<para>Displays the list as a list</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="table"</term>
+        <listitem>
+          
+<para>Displays the list as a table</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<itemizedlist>
+      <listitem>
+        
+<para><parameter>variablelist.as.table</parameter></para>
+
+      </listitem>
+      <listitem>
+        
+<para><parameter>segmentedlist.as.table</parameter></para>
+
+      </listitem>
+    </itemizedlist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_list-width">
+<refnamediv>
+<refname>dbhtml_list-width</refname>
+<refpurpose>Specifies the width of a variablelist or simplelist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml list-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml list-width</tag> PI as a child of a
+      <tag>variablelist</tag> or a <tag>simplelist</tag> presented
+      as a table, to specify the output width.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the output width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_row-height">
+<refnamediv>
+<refname>dbhtml_row-height</refname>
+<refpurpose>Specifies the height for a CALS table row</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml row-height="<replaceable>height</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml row-height</tag> PI as a child of a
+      <tag>row</tag> to specify the height of the row.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>row-height="<replaceable>height</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the row height (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="RowHeight.html">Row height</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_start">
+<refnamediv>
+<refname>dbhtml_start</refname>
+<refpurpose>(obsolete) Sets the starting number on an ordered list</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml start="<replaceable>character</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para><emphasis>This PI is obsolete</emphasis>. The intent of
+      this PI was to provide a means for setting a specific starting
+      number for an ordered list. Instead of this PI, set a value
+      for the <literal>override</literal> attribute on the first
+      <tag>listitem</tag> in the list; that will have the same
+      effect as what this PI was intended for.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>start="<replaceable>character</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the character to use as the starting
+            number; use 0-9, a-z, A-Z, or lowercase or uppercase
+            Roman numerals</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Orderedlists.html#ListStartNum">List starting number</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_stop-chunking">
+<refnamediv>
+<refname>dbhtml_stop-chunking</refname>
+<refpurpose>Do not chunk any descendants of this element.</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml stop-chunking</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>When generating chunked HTML output, adding this PI as the child of an element that contains elements that would normally be generated on separate pages if generating chunked output causes chunking to stop at this point. No descendants of the current element will be split into new HTML pages:
+<programlisting>&lt;section&gt;
+&lt;title&gt;Configuring pencil&lt;/title&gt;
+&lt;?dbhtml stop-chunking?&gt;
+
+...
+
+&lt;/section&gt;</programlisting>
+</para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Chunking.html">Chunking into multiple HTML files</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_table-summary">
+<refnamediv>
+<refname>dbhtml_table-summary</refname>
+<refpurpose>Specifies summary for CALS table, variablelist, segmentedlist, or qandaset output</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml table-summary="<replaceable>text</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml table-summary</tag> PI as a child of
+      a CALS <tag>table</tag>, <tag>variablelist</tag>,
+      <tag>segmentedlist</tag>, or <tag>qandaset</tag> to specify
+      the text for the HTML <literal>summary</literal> attribute
+      in the output HTML table.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>table-summary="<replaceable>text</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the summary text (zero or more characters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link>,
+      <link role="tcg" xlink:href="TableSummary.html">Table summary text</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_table-width">
+<refnamediv>
+<refname>dbhtml_table-width</refname>
+<refpurpose>Specifies the width for a CALS table</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml table-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml table-width</tag> PI as a child of a
+      CALS <tag>table</tag> to specify the width of the table in
+      output.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the table width (including units or as a percentage)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>default.table.width</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Tables.html#TableWidth">Table width</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_term-presentation">
+<refnamediv>
+<refname>dbhtml_term-presentation</refname>
+<refpurpose>Sets character formatting for terms in a variablelist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml term-presentation="bold"|"italic"|"bold-italic"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml term-presentation</tag> PI as a child
+      of a <tag>variablelist</tag> to set character formatting for
+      the <tag>term</tag> output of the list.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>term-presentation="<replaceable>bold</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies that terms are displayed in bold</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>term-presentation="<replaceable>italic</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies that terms are displayed in italic</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>term-presentation="<replaceable>bold-italic</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies that terms are displayed in bold-italic</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_term-separator">
+<refnamediv>
+<refname>dbhtml_term-separator</refname>
+<refpurpose>Specifies separator text among terms in a varlistentry</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml term-separator="<replaceable>text</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml term-separator</tag> PI as a child
+      of a <tag>variablelist</tag> to specify the separator text
+      among <tag>term</tag> instances.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>term-separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the text (zero or more characters)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>variablelist.term.separator</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_term-width">
+<refnamediv>
+<refname>dbhtml_term-width</refname>
+<refpurpose>Specifies the term width for a variablelist</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml term-width="<replaceable>width</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml term-width</tag> PI as a child of a
+      <tag>variablelist</tag> to specify the width for
+      <tag>term</tag> output.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the term width (including units)</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml_toc">
+<refnamediv>
+<refname>dbhtml_toc</refname>
+<refpurpose>Specifies whether a TOC should be generated for a qandaset</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml toc="0"|"1"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml toc</tag> PI as a child of a
+      <tag>qandaset</tag> to specify whether a table of contents
+      (TOC) is generated for the <tag>qandaset</tag>.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>toc="0"</term>
+        <listitem>
+          
+<para>If zero, no TOC is generated</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>toc="1"</term>
+        <listitem>
+          
+<para>If <code>1</code> (or any non-zero value),
+            a TOC is generated</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="QandAtoc.html">Q and A list of questions</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbcmdlist">
+<refnamediv>
+<refname>dbcmdlist</refname>
+<refpurpose>Generates a hyperlinked list of commands</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbcmdlist</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbcmdlist</tag> PI as the child of any
+      element (for example, <tag>refsynopsisdiv</tag>) containing multiple
+      <tag>cmdsynopsis</tag> instances; a hyperlinked navigational
+      “command list” will be generated at the top of output for that
+      element, enabling users to quickly jump
+      to each command synopsis.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<para>[No parameters]</para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbfunclist">
+<refnamediv>
+<refname>dbfunclist</refname>
+<refpurpose>Generates a hyperlinked list of functions</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbfunclist</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbfunclist</tag> PI as the child of any
+      element (for example, <tag>refsynopsisdiv</tag>) containing multiple
+      <tag>funcsynopsis</tag> instances; a hyperlinked
+      navigational “function list” will be generated at the top of
+      output for that element, enabling users to quickly
+      jump to to each function synopsis.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<para>[No parameters]</para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhtml-include_href">
+<refnamediv>
+<refname>dbhtml-include_href</refname>
+<refpurpose>Copies an external well-formed HTML/XML file into current doc</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhtml-include href="<replaceable>URI</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhtml-include href</tag> PI anywhere in a
+      document to cause the contents of the file referenced by the
+      <code>href</code> pseudo-attribute to be copied/inserted “as
+      is” into your HTML output at the point in document order
+      where the PI occurs in the source.</para>
+
+    <note>
+      
+<para>The referenced file may contain plain text (as long as
+        it is “wrapped” in an <tag>html</tag> element — see the
+        note below) or markup in any arbitrary vocabulary,
+        including HTML — but it must conform to XML
+        well-formedness constraints (because the feature in XSLT
+        1.0 for opening external files, the
+        <function>document()</function> function, can only handle
+        files that meet XML well-formedness constraints).</para>
+
+      
+<para>Among other things, XML well-formedness constraints
+        require a document to have <emphasis>a single root
+          element</emphasis>. So if the content you want to
+        include is plain text or is markup that does
+        <emphasis>not</emphasis> have a single root element,
+        <emphasis role="strong">wrap the content in an
+          <tag>html</tag> element</emphasis>. The stylesheets will
+        strip out that surrounding <tag>html</tag> “wrapper” when
+        they find it, leaving just the content you want to
+        insert.</para>
+
+    </note>
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>href="<replaceable>URI</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies the URI for the file to include; the URI
+            can be, for example, a remote <literal>http:</literal>
+            URI, or a local filesystem <literal>file:</literal>
+            URI</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>textinsert.extension</parameter></para>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="InsertExtHtml.html">Inserting external HTML code</link>,
+      <link role="tcg" xlink:href="ExternalCode.html">External code files</link></para>
+
+  </refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbhh">
+<refnamediv>
+<refname>dbhh</refname>
+<refpurpose>Sets topic name and topic id for context-sensitive HTML Help</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbhh topicname="<replaceable>name</replaceable>" topicid="<replaceable>id</replaceable>"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbhh</tag> PI as a child of components
+      that should be used as targets for context-sensitive help requests.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>topicname="<replaceable>name</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies a unique string constant that identifies a help topic</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>topicid="<replaceable>id</replaceable>"</term>
+        <listitem>
+          
+<para>Specifies a unique integer value for the <literal>topicname</literal> string</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="tcg"><title>Related Information in <link xlink:href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</link></title>
+    
+<para><link role="tcg" xlink:href="HtmlHelp.html#HHContextHelp">Context-sensitive help</link></para>
+
+  </refsect1></refentry>
+</reference>
+
diff --git a/applications/content/template/docbook/html/pi.xsl b/applications/content/template/docbook/html/pi.xsl
new file mode 100644
index 0000000..2e55508
--- /dev/null
+++ b/applications/content/template/docbook/html/pi.xsl
@@ -0,0 +1,1296 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                xmlns:xlink="http://www.w3.org/1999/xlink"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns=""><info><title>HTML Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    <para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the DocBook
+      XSL stylesheets for HTML output.
+      <note>
+        <para>You add these PIs at particular points in a document to
+          cause specific “exceptions” to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it’s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+      </note>
+    </para>
+  </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<doc:pi name="dbhtml_background-color" xmlns="">
+  <refpurpose>Sets background color for an image</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml background-color</tag> PI before or
+      after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
+      <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
+      sibling to the element, to set a background color for the
+      image.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml background-color="<replaceable>color</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
+        <listitem>
+          <para>An HTML color value</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="BGcolor.html"
+        >Background color</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_background-color">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'background-color'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_bgcolor" xmlns="">
+  <refpurpose>Sets background color on a CALS table row or table cell</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml bgcolor</tag> PI as child of a CALS table row
+      or cell to set a background color for that table row or cell.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
+        <listitem>
+          <para>An HTML color value</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="BGtableColor.html#CellBGColor"
+        >Cell background color</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_bgcolor">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'bgcolor'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_cellpadding" xmlns="">
+  <refpurpose>Specifies cellpadding in CALS table or qandaset output</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml cellpadding</tag> PI as a child of a
+      CALS <tag>table</tag> or <tag>qandaset</tag> to specify the value
+      for the HTML <literal>cellpadding</literal> attribute in the
+      output HTML table.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml cellpadding="<replaceable>number</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>cellpadding="<replaceable>number</replaceable>"</term>
+        <listitem>
+          <para>Specifies the cellpadding</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>html.cellpadding</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="CellSpacing.html"
+        >Cell spacing and cell padding</link>,
+      <link role="tcg" xlink:href="QandAformat.html"
+        >Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_cellpadding">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'cellpadding'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_cellspacing" xmlns="">
+  <refpurpose>Specifies cellspacing in CALS table or qandaset output</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml cellspacing</tag> PI as a child of a
+      CALS <tag>table</tag> or <tag>qandaset</tag> to specify the value
+      for the HTML <literal>cellspacing</literal> attribute in the
+      output HTML table.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml cellspacing="<replaceable>number</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>cellspacing="<replaceable>number</replaceable>"</term>
+        <listitem>
+          <para>Specifies the cellspacing</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>html.cellspacing</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="CellSpacing.html"
+        >Cell spacing and cell padding</link>,
+      <link role="tcg"
+        xlink:href="QandAformat.html"
+        >Q and A formatting</link></para>
+    </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_cellspacing">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'cellspacing'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_class" xmlns="">
+  <refpurpose>Set value of the class attribute for a CALS table row</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml class</tag> PI as a child of a
+      <tag>row</tag> to specify a <literal>class</literal>
+      attribute and value in the HTML output for that row.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml class="<replaceable>name</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>class="<replaceable>name</replaceable>"</term>
+        <listitem>
+          <para>Specifies the class name</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="CSSTableCells.html"
+        >Table styles in HTML output</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_class">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'class'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi name="dbhtml_dir" xmlns="">
+  <refpurpose>Specifies a directory name in which to write files</refpurpose>
+  <refdescription>
+    <para>When chunking output, use the <tag class="xmlpi">dbhtml dir</tag> PI
+      as a child of a chunk source to cause the output of that
+      chunk to be written to the specified directory; also, use it
+      as a child of a <tag>mediaobject</tag> to specify a
+      directory into which any long-description files for that
+      <tag>mediaobject</tag> will be written.</para>
+
+<para>The output directory specification is inherited by all
+chunks of the descendants of the element.  If descendants need
+to go to a different directory, then add another 
+<tag class="xmlpi">dbhtml dir</tag> processing
+instruction as a child of the source element
+for that chunk, and specify the path relative to the
+ancestor path.</para>
+
+<para>For example, to put most chunk files into 
+<filename class="directory">shared</filename>
+but one chapter into 
+<filename class="directory">exception</filename>
+at the same level, use:</para>
+
+<programlisting><![CDATA[<book>
+  <?dbhtml dir="shared"?>
+  ...
+  <chapter>
+    <?dbhtml dir="../exception"?>
+  </chapter>
+</book>
+]]></programlisting>
+
+
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml dir="<replaceable>path</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>dir="<replaceable>path</replaceable>"</term>
+        <listitem>
+          <para>Specifies the pathname for the directory</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>base.dir</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Chunking.html#dbhtmlDirPI"
+        >dbhtml dir processing instruction</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_dir">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'dir'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_filename" xmlns="">
+  <refpurpose>Specifies a filename for a chunk</refpurpose>
+  <refdescription>
+<para>When chunking output, use the <tag class="xmlpi">dbhtml filename</tag>
+      PI as a child of a chunk source to specify a filename for
+      the output file for that chunk. Include the filename suffix.</para>
+
+<para>You cannot include a directory path in the filename value,
+or your links may not work.  Add a 
+<tag class="xmlpi">dbhtml dir</tag> processing instruction
+to specify the output directory. You can also combine the two
+specifications in one processing instruction: 
+<tag class="xmlpi">dbhtml dir="mydir" filename="myfile.html"</tag>.</para>
+
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml filename="<replaceable>filename</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>filename="<replaceable>path</replaceable>"</term>
+        <listitem>
+          <para>Specifies the filename for the file</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>use.id.as.filename</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Chunking.html#DbhtmlFilenames"
+        >dbhtml filenames</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_filename">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'filename'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_funcsynopsis-style" xmlns="">
+  <refpurpose>Specifies presentation style for a funcsynopsis</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml funcsynopsis-style</tag> PI as a child of
+      a <tag>funcsynopsis</tag> or anywhere within a funcsynopsis
+      to control the presentation style for output of all
+      <tag>funcprototype</tag> instances within that funcsynopsis.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml funcsynopsis-style="kr"|"ansi"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>funcsynopsis-style="kr"</term>
+        <listitem>
+          <para>Displays <tag>funcprototype</tag> output in K&amp;R style</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>funcsynopsis-style="ansi"</term>
+        <listitem>
+          <para>Displays <tag>funcprototype</tag> output in ANSI style</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>funcsynopsis.style</parameter></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_funcsynopsis-style">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'funcsynopsis-style'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_img.src.path" xmlns="">
+  <refpurpose>Specifies a path to the location of an image file</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml img.src.path</tag> PI before or
+      after an image (<tag>graphic</tag>,
+      <tag>inlinegraphic</tag>, <tag>imagedata</tag>, or
+      <tag>videodata</tag> element) as a sibling to the element,
+      to specify a path to the location of the image; in HTML
+      output, the value specified for the
+      <code>img.src.path</code> attribute is prepended to the
+      filename.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml img.src.path="<replaceable>path</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>img.src.path="<replaceable>path</replaceable>"</term>
+        <listitem>
+          <para>Specifies the pathname to prepend to the name of the image file</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>img.src.path</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="GraphicsLocations.html#UsingFileref"
+        >Using fileref</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_img.src.path">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'img.src.path'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_label-width" xmlns="">
+  <refpurpose>Specifies the label width for a qandaset</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml label-width</tag> PI as a child of a
+      <tag>qandaset</tag> to specify the width of labels.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml label-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the label width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="QandAformat.html"
+        >Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_label-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'label-width'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi name="dbhtml_linenumbering.everyNth" xmlns="">
+  <refpurpose>Specifies interval for line numbers in verbatims</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml linenumbering.everyNth</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the interval at which lines are numbered.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
+        <listitem>
+          <para>Specifies numbering interval; a number is output
+            before every <replaceable>N</replaceable>th line</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>linenumbering.everyNth</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="AnnotateListing.html#LineNumbering"
+        >Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.everyNth">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_linenumbering.separator" xmlns="">
+  <refpurpose>Specifies separator text for line numbers in verbatims</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml linenumbering.separator</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the separator text output between the line numbers and content.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>linenumbering.separator</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="AnnotateListing.html#LineNumbering"
+        >Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.separator">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_linenumbering.width" xmlns="">
+  <refpurpose>Specifies width for line numbers in verbatims</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml linenumbering.width</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the width set aside for line numbers.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the width (inluding units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>linenumbering.width</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="AnnotateListing.html#LineNumbering"
+        >Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_list-presentation" xmlns="">
+  <refpurpose>Specifies presentation style for a variablelist or
+    segmentedlist</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml list-presentation</tag> PI as a child of
+      a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
+      control the presentation style for the list (to cause it, for
+      example, to be displayed as a table).</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml list-presentation="list"|"table"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>list-presentation="list"</term>
+        <listitem>
+          <para>Displays the list as a list</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="table"</term>
+        <listitem>
+          <para>Displays the list as a table</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <itemizedlist>
+      <listitem>
+        <para><parameter>variablelist.as.table</parameter></para>
+      </listitem>
+      <listitem>
+        <para><parameter>segmentedlist.as.table</parameter></para>
+      </listitem>
+    </itemizedlist>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Variablelists.html#VarListFormatting"
+        >Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_list-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'list-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_list-width" xmlns="">
+  <refpurpose>Specifies the width of a variablelist or simplelist</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml list-width</tag> PI as a child of a
+      <tag>variablelist</tag> or a <tag>simplelist</tag> presented
+      as a table, to specify the output width.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml list-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the output width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Variablelists.html#VarListFormatting"
+        >Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_list-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'list-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_row-height" xmlns="">
+  <refpurpose>Specifies the height for a CALS table row</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml row-height</tag> PI as a child of a
+      <tag>row</tag> to specify the height of the row.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml row-height="<replaceable>height</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>row-height="<replaceable>height</replaceable>"</term>
+        <listitem>
+          <para>Specifies the row height (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="RowHeight.html"
+        >Row height</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_row-height">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'row-height'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi name="dbhtml_start" xmlns="">
+  <refpurpose>(obsolete) Sets the starting number on an ordered list</refpurpose>
+  <refdescription>
+    <para><emphasis>This PI is obsolete</emphasis>. The intent of
+      this PI was to provide a means for setting a specific starting
+      number for an ordered list. Instead of this PI, set a value
+      for the <literal>override</literal> attribute on the first
+      <tag>listitem</tag> in the list; that will have the same
+      effect as what this PI was intended for.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml start="<replaceable>character</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>start="<replaceable>character</replaceable>"</term>
+        <listitem>
+          <para>Specifies the character to use as the starting
+            number; use 0-9, a-z, A-Z, or lowercase or uppercase
+            Roman numerals</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Orderedlists.html#ListStartNum"
+        >List starting number</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_start">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'start'"/>
+  </xsl:call-template>
+</xsl:template>
+
+  <doc:pi name="dbhtml_stop-chunking" xmlns="">
+	<refpurpose>Do not chunk any descendants of this element.</refpurpose>
+	<refdescription>
+    <para>When generating chunked HTML output, adding this PI as the child of an element that contains elements that would normally be generated on separate pages if generating chunked output causes chunking to stop at this point. No descendants of the current element will be split into new HTML pages:
+<programlisting><![CDATA[<section>
+<title>Configuring pencil</title>
+<?dbhtml stop-chunking?>
+
+...
+
+</section>]]></programlisting>
+</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml stop-chunking</tag></synopsis>
+  </refsynopsisdiv>	
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Chunking.html"
+        >Chunking into multiple HTML files</link></para>
+  </refsee>
+  </doc:pi>
+  <!-- The code that handles the stop-chunking pi is in chunk-common.xsl -->
+
+<doc:pi name="dbhtml_table-summary" xmlns="">
+  <refpurpose>Specifies summary for CALS table, variablelist, segmentedlist, or qandaset output</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml table-summary</tag> PI as a child of
+      a CALS <tag>table</tag>, <tag>variablelist</tag>,
+      <tag>segmentedlist</tag>, or <tag>qandaset</tag> to specify
+      the text for the HTML <literal>summary</literal> attribute
+      in the output HTML table.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml table-summary="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>table-summary="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the summary text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Variablelists.html#VarListFormatting"
+        >Variable list formatting in HTML</link>,
+      <link role="tcg" xlink:href="TableSummary.html"
+        >Table summary text</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_table-summary">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'table-summary'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_table-width" xmlns="">
+  <refpurpose>Specifies the width for a CALS table</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml table-width</tag> PI as a child of a
+      CALS <tag>table</tag> to specify the width of the table in
+      output.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml table-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the table width (including units or as a percentage)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>default.table.width</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Tables.html#TableWidth"
+        >Table width</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_table-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'table-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_term-presentation" xmlns="">
+  <refpurpose>Sets character formatting for terms in a variablelist</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml term-presentation</tag> PI as a child
+      of a <tag>variablelist</tag> to set character formatting for
+      the <tag>term</tag> output of the list.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml term-presentation="bold"|"italic"|"bold-italic"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>term-presentation="<replaceable>bold</replaceable>"</term>
+        <listitem>
+          <para>Specifies that terms are displayed in bold</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>term-presentation="<replaceable>italic</replaceable>"</term>
+        <listitem>
+          <para>Specifies that terms are displayed in italic</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>term-presentation="<replaceable>bold-italic</replaceable>"</term>
+        <listitem>
+          <para>Specifies that terms are displayed in bold-italic</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Variablelists.html#VarListFormatting"
+        >Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'term-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_term-separator" xmlns="">
+  <refpurpose>Specifies separator text among terms in a varlistentry</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml term-separator</tag> PI as a child
+      of a <tag>variablelist</tag> to specify the separator text
+      among <tag>term</tag> instances.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml term-separator="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>term-separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>variablelist.term.separator</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Variablelists.html#VarListFormatting"
+        >Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-separator">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'term-separator'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_term-width" xmlns="">
+  <refpurpose>Specifies the term width for a variablelist</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml term-width</tag> PI as a child of a
+      <tag>variablelist</tag> to specify the width for
+      <tag>term</tag> output.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml term-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the term width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Variablelists.html#VarListFormatting"
+        >Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'term-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbhtml_toc" xmlns="">
+  <refpurpose>Specifies whether a TOC should be generated for a qandaset</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml toc</tag> PI as a child of a
+      <tag>qandaset</tag> to specify whether a table of contents
+      (TOC) is generated for the <tag>qandaset</tag>.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml toc="0"|"1"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>toc="0"</term>
+        <listitem>
+          <para>If zero, no TOC is generated</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>toc="1"</term>
+        <listitem>
+          <para>If <code>1</code> (or any non-zero value),
+            a TOC is generated</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="QandAtoc.html"
+        >Q and A list of questions</link>,
+      <link role="tcg"
+        xlink:href="QandAformat.html"
+        >Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_toc">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'toc'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbcmdlist" xmlns="">
+  <refpurpose>Generates a hyperlinked list of commands</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbcmdlist</tag> PI as the child of any
+      element (for example, <tag>refsynopsisdiv</tag>) containing multiple
+      <tag>cmdsynopsis</tag> instances; a hyperlinked navigational
+      “command list” will be generated at the top of output for that
+      element, enabling users to quickly jump
+      to each command synopsis.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbcmdlist</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <para>[No parameters]</para>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbcmdlist">
+  <xsl:variable name="cmdsynopses" select="..//cmdsynopsis"/>
+  <xsl:if test="count($cmdsynopses)&lt;1">
+    <xsl:message><xsl:text>No cmdsynopsis elements matched dbcmdlist PI, perhaps it's nested too deep?</xsl:text>
+    </xsl:message>
+  </xsl:if>
+  <dl>
+    <xsl:call-template name="process.cmdsynopsis.list">
+      <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+    </xsl:call-template>
+  </dl>
+</xsl:template>
+
+<doc:pi name="dbfunclist" xmlns="">
+  <refpurpose>Generates a hyperlinked list of functions</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbfunclist</tag> PI as the child of any
+      element (for example, <tag>refsynopsisdiv</tag>) containing multiple
+      <tag>funcsynopsis</tag> instances; a hyperlinked
+      navigational “function list” will be generated at the top of
+      output for that element, enabling users to quickly
+      jump to to each function synopsis.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfunclist</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <para>[No parameters]</para>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfunclist">
+  <xsl:variable name="funcsynopses" select="..//funcsynopsis"/>
+  <xsl:if test="count($funcsynopses)&lt;1">
+    <xsl:message><xsl:text>No funcsynopsis elements matched dbfunclist PI, perhaps it's nested too deep?</xsl:text>
+    </xsl:message>
+  </xsl:if>
+  <dl>
+    <xsl:call-template name="process.funcsynopsis.list">
+      <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+    </xsl:call-template>
+  </dl>
+</xsl:template>
+
+<doc:pi name="dbhtml-include_href" xmlns="">
+  <refpurpose>Copies an external well-formed HTML/XML file into current doc</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhtml-include href</tag> PI anywhere in a
+      document to cause the contents of the file referenced by the
+      <code>href</code> pseudo-attribute to be copied/inserted “as
+      is” into your HTML output at the point in document order
+      where the PI occurs in the source.</para>
+    <note>
+      <para>The referenced file may contain plain text (as long as
+        it is “wrapped” in an <tag>html</tag> element — see the
+        note below) or markup in any arbitrary vocabulary,
+        including HTML — but it must conform to XML
+        well-formedness constraints (because the feature in XSLT
+        1.0 for opening external files, the
+        <function>document()</function> function, can only handle
+        files that meet XML well-formedness constraints).</para>
+      <para>Among other things, XML well-formedness constraints
+        require a document to have <emphasis>a single root
+          element</emphasis>. So if the content you want to
+        include is plain text or is markup that does
+        <emphasis>not</emphasis> have a single root element,
+        <emphasis role="strong">wrap the content in an
+          <tag>html</tag> element</emphasis>. The stylesheets will
+        strip out that surrounding <tag>html</tag> “wrapper” when
+        they find it, leaving just the content you want to
+        insert.</para>
+    </note>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhtml-include href="<replaceable>URI</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>href="<replaceable>URI</replaceable>"</term>
+        <listitem>
+          <para>Specifies the URI for the file to include; the URI
+            can be, for example, a remote <literal>http:</literal>
+            URI, or a local filesystem <literal>file:</literal>
+            URI</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>textinsert.extension</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="InsertExtHtml.html"
+        >Inserting external HTML code</link>,
+      <link role="tcg"
+        xlink:href="ExternalCode.html"
+        >External code files</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml-include">
+  <xsl:param name="href">
+    <xsl:call-template name="dbhtml-attribute">
+      <xsl:with-param name="pis" select="."/>
+      <xsl:with-param name="attribute">href</xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="$href != ''">
+      <xsl:variable name="content" select="document($href,/)"/>
+      <xsl:choose>
+        <xsl:when test="$content/*">
+          <xsl:choose>
+            <xsl:when test="$content/*[1][self::html]">
+              <!-- include just the children of html wrapper -->
+              <xsl:copy-of select="$content/*[1]/node()"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:copy-of select="$content"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>ERROR: dbhtml-include processing instruction </xsl:text>
+            <xsl:text>href has no content.</xsl:text>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>ERROR: dbhtml-include processing instruction has </xsl:text>
+        <xsl:text>missing or empty href value.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- There are two templates matching this PI in htmlhelp-common.xsl -->
+<doc:pi name="dbhh" xmlns="">
+  <refpurpose>Sets topic name and topic id for context-sensitive HTML Help</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbhh</tag> PI as a child of components
+      that should be used as targets for context-sensitive help requests.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbhh topicname="<replaceable>name</replaceable>" topicid="<replaceable>id</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>topicname="<replaceable>name</replaceable>"</term>
+        <listitem>
+          <para>Specifies a unique string constant that identifies a help topic</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>topicid="<replaceable>id</replaceable>"</term>
+        <listitem>
+          <para>Specifies a unique integer value for the <literal>topicname</literal> string</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="HtmlHelp.html#HHContextHelp"
+        >Context-sensitive help</link></para>
+  </refsee>
+</doc:pi>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-attribute">
+  <!-- * dbhtml-attribute is an interal utility template for retrieving -->
+  <!-- * pseudo-attributes/parameters from PIs -->
+  <xsl:param name="pis" select="processing-instruction('dbhtml')"/>
+  <xsl:param name="attribute">filename</xsl:param>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$pis"/>
+    <xsl:with-param name="attribute" select="$attribute"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction()">
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbcmdlist')">
+  <xsl:call-template name="pi.dbcmdlist"/>
+</xsl:template>
+<xsl:template name="process.cmdsynopsis.list">
+  <xsl:param name="cmdsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($cmdsynopses)"></xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$cmdsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:text>#</xsl:text>
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+             <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.cmdsynopsis.list">
+          <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbfunclist')">
+  <xsl:call-template name="pi.dbfunclist"/>
+</xsl:template>
+<xsl:template name="process.funcsynopsis.list">
+  <xsl:param name="funcsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($funcsynopses)"></xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$funcsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:text>#</xsl:text>
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+              <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+                <xsl:with-param name="target" select="$cmdsyn"/>
+              </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.funcsynopsis.list">
+          <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbhtml-include')">
+  <xsl:call-template name="pi.dbhtml-include"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-dir">
+  <xsl:param name="context" select="."/>
+  <!-- directories are now inherited from previous levels -->
+  <xsl:variable name="ppath">
+    <xsl:if test="$context/parent::*">
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="$context/parent::*"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="path">
+    <xsl:call-template name="pi.dbhtml_dir">
+      <xsl:with-param name="node" select="$context"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$path = ''">
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+        <xsl:if test="substring($ppath, string-length($ppath), 1) != '/'">
+          <xsl:text>/</xsl:text>
+        </xsl:if>
+      </xsl:if>
+      <xsl:value-of select="$path"/>
+      <xsl:text>/</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/profile-chunk-code.xsl b/applications/content/template/docbook/html/profile-chunk-code.xsl
new file mode 100644
index 0000000..2e2df26
--- /dev/null
+++ b/applications/content/template/docbook/html/profile-chunk-code.xsl
@@ -0,0 +1,639 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exslt="http://exslt.org/common" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="exsl cf ng db exslt" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="chunk-filename">
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="fn">
+    <xsl:apply-templates select="." mode="recursive-chunk-filename"/>
+  </xsl:variable>
+
+  <!--
+  <xsl:message>
+    <xsl:value-of select="$ischunk"/>
+    <xsl:text> (</xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text>) </xsl:text>
+    <xsl:value-of select="$fn"/>
+    <xsl:text>, </xsl:text>
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:message>
+  -->
+
+  <!-- 2003-11-25 by ndw:
+       The following test used to read test="$ischunk != 0 and $fn != ''"
+       I've removed the ischunk part of the test so that href.to.uri and
+       href.from.uri will be fully qualified even if the source or target
+       isn't a chunk. I *think* that if $fn != '' then it's appropriate
+       to put the directory on the front, even if the element isn't a
+       chunk. I could be wrong. -->
+
+  <xsl:if test="$fn != ''">
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:if>
+
+  <xsl:value-of select="$chunked.filename.prefix"/>
+
+  <xsl:value-of select="$fn"/>
+  <!-- You can't add the html.ext here because dbhtml filename= may already -->
+  <!-- have added it. It really does have to be handled in the recursive template -->
+</xsl:template>
+
+<xsl:template match="*" mode="recursive-chunk-filename">
+  <xsl:param name="recursive" select="false()"/>
+
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="dbhtml-filename">
+    <xsl:call-template name="pi.dbhtml_filename"/>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="$dbhtml-filename != ''">
+        <xsl:value-of select="$dbhtml-filename"/>
+      </xsl:when>
+      <!-- if this is the root element, use the root.filename -->
+      <xsl:when test="not(parent::*) and $root.filename != ''">
+        <xsl:value-of select="$root.filename"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <!-- Special case -->
+      <xsl:when test="self::legalnotice and not($generate.legalnotice.link = 0)">
+        <xsl:choose>
+          <xsl:when test="(@id or @xml:id) and not($use.id.as.filename = 0)">
+            <!-- * if this legalnotice has an ID, then go ahead and use -->
+            <!-- * just the value of that ID as the basename for the file -->
+            <!-- * (that is, without prepending an "ln-" too it) -->
+            <xsl:value-of select="(@id|@xml:id)[1]"/>
+            <xsl:value-of select="$html.ext"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- * otherwise, if this legalnotice does not have an ID, -->
+            <!-- * then we generate an ID... -->
+            <xsl:variable name="id">
+              <xsl:call-template name="object.id"/>
+            </xsl:variable>
+            <!-- * ...and then we take that generated ID, prepend an -->
+            <!-- * "ln-" to it, and use that as the basename for the file -->
+            <xsl:value-of select="concat('ln-',$id,$html.ext)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <!-- if there's no dbhtml filename, and if we're to use IDs as -->
+      <!-- filenames, then use the ID to generate the filename. -->
+      <xsl:when test="(@id or @xml:id) and $use.id.as.filename != 0">
+        <xsl:value-of select="(@id|@xml:id)[1]"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </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="recursive-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:value-of select="$filename"/>
+    </xsl:when>
+
+    <xsl:when test="self::set">
+      <xsl:value-of select="$root.filename"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::book">
+      <xsl:text>bk</xsl:text>
+      <xsl:number level="any" format="01"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::article">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ar</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::preface">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>pr</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::chapter">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ch</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::appendix">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ap</xsl:text>
+      <xsl:number level="any" format="a" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::part">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>pt</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::reference">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>rn</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::refentry">
+      <xsl:choose>
+        <xsl:when test="parent::reference">
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="/set">
+            <!-- in a set, make sure we inherit the right book info... -->
+            <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+              <xsl:with-param name="recursive" select="true()"/>
+            </xsl:apply-templates>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>re</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::colophon">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>co</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::sect1                     or self::sect2                     or self::sect3                     or self::sect4                     or self::sect5                     or self::section">
+      <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+        <xsl:with-param name="recursive" select="true()"/>
+      </xsl:apply-templates>
+      <xsl:text>s</xsl:text>
+      <xsl:number format="01"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::bibliography">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>bi</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::glossary">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>go</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::index">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>ix</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::setindex">
+      <xsl:text>si</xsl:text>
+      <xsl:number level="any" format="01" from="set"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::topic">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>to</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </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>
+
+<!-- ==================================================================== -->
+
+
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="find.chunks">
+  <xsl:variable name="chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$chunk != 0">
+      <cf:div id="{generate-id()}">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:apply-templates select="*" mode="find.chunks"/>
+      </cf:div>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="*" mode="find.chunks"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Leave legalnotice chunk out of the list for Next and Prev -->
+<xsl:template match="legalnotice" mode="find.chunks"/>
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+	 stylesheets for DocBook5 if you don't want to use this feature.-->
+    <xsl:when test="false()"/>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="false()"/>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="collect.tex.math"/>
+                </xsl:if>
+                <xsl:if test="$generate.manifest != 0">
+                  <xsl:call-template name="generate.manifest">
+                    <xsl:with-param name="node" select="key('id',$rootid)"/>
+                  </xsl:call-template>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="$profiled-nodes" mode="collect.tex.math"/>
+            </xsl:if>
+            <xsl:if test="$generate.manifest != 0">
+              <xsl:call-template name="generate.manifest">
+                <xsl:with-param name="node" select="$profiled-nodes"/>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:apply-templates select="."/>
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |topic                      |reference|refentry                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon">
+  <xsl:choose>
+    <xsl:when test="$onechunk != 0 and parent::*">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not(parent::*)">
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:when>
+    <xsl:when test="$ischunk = 0">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex                      |book/index                      |article/index                      |part/index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. -->
+  <xsl:if test="count(*)&gt;0 or $generate.index != '0'">
+    <xsl:call-template name="process-chunk-element"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- Resolve xml:base attributes -->
+<xsl:template match="@fileref">
+  <!-- need a check for absolute urls -->
+  <xsl:choose>
+    <xsl:when test="contains(., ':')">
+      <!-- it has a uri scheme so it is an absolute uri -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:when test="$keep.relative.image.uris != 0">
+      <!-- leave it alone -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- its a relative uri -->
+      <xsl:call-template name="relative-uri">
+        <xsl:with-param name="destdir">
+          <xsl:call-template name="dbhtml-dir">
+            <xsl:with-param name="context" select=".."/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |topic                      |reference|refentry                      |sect1|sect2|sect3|sect4|sect5                      |section                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon" mode="enumerate-files">
+  <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+  <xsl:if test="$ischunk='1'">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir">
+        <xsl:if test="$manifest.in.base.dir = 0">
+          <xsl:value-of select="$chunk.base.dir"/>
+        </xsl:if>
+      </xsl:with-param>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+  <xsl:apply-templates select="*" mode="enumerate-files"/>
+</xsl:template>
+
+<xsl:template match="book/index|article/index|part/index" mode="enumerate-files">
+  <xsl:if test="$htmlhelp.output != 1">
+    <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+    <xsl:if test="$ischunk='1'">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir">
+          <xsl:if test="$manifest.in.base.dir = 0">
+            <xsl:value-of select="$chunk.base.dir"/>
+          </xsl:if>
+        </xsl:with-param>
+        <xsl:with-param name="base.name">
+          <xsl:apply-templates mode="chunk-filename" select="."/>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>
+</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="*" mode="enumerate-files"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="enumerate-files">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <xsl:if test="$generate.legalnotice.link != 0">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir">
+        <xsl:if test="$manifest.in.base.dir = 0">
+          <xsl:value-of select="$chunk.base.dir"/>
+        </xsl:if>
+      </xsl:with-param>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="mediaobject[imageobject] | inlinemediaobject[imageobject]" mode="enumerate-files">
+  <xsl:variable name="longdesc.uri">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="mediaobject" select="."/>
+
+  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="$mediaobject"/>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="enumerate-files">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/profile-chunk.xsl b/applications/content/template/docbook/html/profile-chunk.xsl
new file mode 100644
index 0000000..879654e
--- /dev/null
+++ b/applications/content/template/docbook/html/profile-chunk.xsl
@@ -0,0 +1,52 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+		version="1.0"
+                exclude-result-prefixes="exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- First import the non-chunking templates that format elements
+     within each chunk file. In a customization, you should
+     create a separate non-chunking customization layer such
+     as mydocbook.xsl that imports the original docbook.xsl and
+     customizes any presentation templates. Then your chunking
+     customization should import mydocbook.xsl instead of
+     docbook.xsl.  -->
+<xsl:import href="docbook.xsl"/>
+
+<!-- chunk-common.xsl contains all the named templates for chunking.
+     In a customization file, you import chunk-common.xsl, then
+     add any customized chunking templates of the same name. 
+     They will have import precedence over the original 
+     chunking templates in chunk-common.xsl. -->
+<xsl:import href="chunk-common.xsl"/>
+
+<!-- The manifest.xsl module is no longer imported because its
+     templates were moved into chunk-common and chunk-code -->
+
+<!-- chunk-code.xsl contains all the chunking templates that use
+     a match attribute.  In a customization it should be referenced
+     using <xsl:include> instead of <xsl:import>, and then add
+     any customized chunking templates with match attributes. But be sure
+     to add a priority="1" to such customized templates to resolve
+     its conflict with the original, since they have the
+     same import precedence.
+     
+     Using xsl:include prevents adding another layer
+     of import precedence, which would cause any
+     customizations that use xsl:apply-imports to wrongly
+     apply the chunking version instead of the original
+     non-chunking version to format an element.  -->
+<xsl:include href="profile-chunk-code.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/profile-docbook.xsl b/applications/content/template/docbook/html/profile-docbook.xsl
new file mode 100644
index 0000000..7b5a0b0
--- /dev/null
+++ b/applications/content/template/docbook/html/profile-docbook.xsl
@@ -0,0 +1,462 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns:exslt="http://exslt.org/common" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="db ng exsl exslt exslt" version="1.0">
+
+<xsl:output method="html" encoding="ISO-8859-1" indent="no"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION.xsl"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/utility.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="../common/targets.xsl"/>
+<xsl:include href="../common/olink.xsl"/>
+<xsl:include href="../common/pi.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="autoidx.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="htmltbl.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="html.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="biblio-iso690.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="task.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="pi.xsl"/>
+<xsl:include href="ebnf.xsl"/>
+<xsl:include href="chunker.xsl"/>
+<xsl:include href="html-rtf.xsl"/>
+<xsl:include href="annotations.xsl"/>
+<xsl:include href="../common/stripns.xsl"/>
+
+<xsl:param name="stylesheet.result.type" select="'html'"/>
+<xsl:param name="htmlhelp.output" select="0"/>
+
+<!-- ==================================================================== -->
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+<xsl:key name="gid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:text>Element </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text> in namespace '</xsl:text>
+    <xsl:value-of select="namespace-uri(.)"/>
+    <xsl:text>' encountered</xsl:text>
+    <xsl:if test="parent::*">
+      <xsl:text> in </xsl:text>
+      <xsl:value-of select="name(parent::*)"/>
+    </xsl:if>
+    <xsl:text>, but no template matches.</xsl:text>
+  </xsl:message>
+
+  <span style="color: red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="text()">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="body.attributes">
+  <xsl:attribute name="bgcolor">white</xsl:attribute>
+  <xsl:attribute name="text">black</xsl:attribute>
+  <xsl:attribute name="link">#0000FF</xsl:attribute>
+  <xsl:attribute name="vlink">#840084</xsl:attribute>
+  <xsl:attribute name="alink">#0000FF</xsl:attribute>
+  <xsl:if test="starts-with($writing.mode, 'rl')">
+    <xsl:attribute name="dir">rtl</xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="head.content">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="title">
+    <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/>
+  </xsl:param>
+
+  <title>
+    <xsl:copy-of select="$title"/>
+  </title>
+
+  <xsl:if test="$html.base != ''">
+    <base href="{$html.base}"/>
+  </xsl:if>
+
+  <!-- Insert links to CSS files or insert literal style elements -->
+  <xsl:call-template name="generate.css"/>
+
+  <xsl:if test="$html.stylesheet != ''">
+    <xsl:call-template name="output.html.stylesheets">
+      <xsl:with-param name="stylesheets" select="normalize-space($html.stylesheet)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$html.script != ''">
+    <xsl:call-template name="output.html.scripts">
+      <xsl:with-param name="scripts" select="normalize-space($html.script)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$link.mailto.url != ''">
+    <link rev="made" href="{$link.mailto.url}"/>
+  </xsl:if>
+
+  <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/>
+
+  <xsl:if test="$generate.meta.abstract != 0">
+    <xsl:variable name="info" select="(articleinfo                                       |bookinfo                                       |prefaceinfo                                       |chapterinfo                                       |appendixinfo                                       |sectioninfo                                       |sect1info                                       |sect2info                                       |sect3info                                       |sect4info                                       |sect5info                                       |referenceinfo                                       |refentryinfo                                       |partinfo                                       |info                                       |docinfo)[1]"/>
+    <xsl:if test="$info and $info/abstract">
+      <meta name="description">
+        <xsl:attribute name="content">
+          <xsl:for-each select="$info/abstract[1]/*">
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:if test="position() &lt; last()">
+              <xsl:text> </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </meta>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:if test="($draft.mode = 'yes' or                 ($draft.mode = 'maybe' and                 ancestor-or-self::*[@status][1]/@status = 'draft'))                 and $draft.watermark.image != ''">
+    <style type="text/css"><xsl:text>
+body { background-image: url('</xsl:text>
+<xsl:value-of select="$draft.watermark.image"/><xsl:text>');
+       background-repeat: no-repeat;
+       background-position: top left;
+       /* The following properties make the watermark "fixed" on the page. */
+       /* I think that's just a bit too distracting for the reader... */
+       /* background-attachment: fixed; */
+       /* background-position: center center; */
+     }</xsl:text>
+    </style>
+  </xsl:if>
+  <xsl:apply-templates select="." mode="head.keywords.content"/>
+</xsl:template>
+
+<xsl:template name="output.html.stylesheets">
+  <xsl:param name="stylesheets" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($stylesheets, ' ')">
+      <xsl:variable name="css.filename" select="substring-before($stylesheets, ' ')"/>
+
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$css.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.stylesheets">
+        <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$stylesheets != ''">
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$stylesheets"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="output.html.scripts">
+  <xsl:param name="scripts" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($scripts, ' ')">
+      <xsl:variable name="script.filename" select="substring-before($scripts, ' ')"/>
+
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$script.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.scripts">
+        <xsl:with-param name="scripts" select="substring-after($scripts, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$scripts != ''">
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$scripts"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="head.keywords.content">
+  <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="artheader/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sectioninfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="info/keywordset" mode="html.header"/>
+
+  <xsl:if test="$inherit.keywords != 0                 and parent::*">
+    <xsl:apply-templates select="parent::*" mode="head.keywords.content"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="system.head.content">
+  <xsl:param name="node" select="."/>
+
+  <!-- FIXME: When chunking, only the annotations actually used
+              in this chunk should be referenced. I don't think it
+              does any harm to reference them all, but it adds
+              unnecessary bloat to each chunk. -->
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <xsl:call-template name="add.annotation.links"/>
+    <script type="text/javascript">
+      <xsl:text>
+// Create PopupWindow objects</xsl:text>
+      <xsl:for-each select="//annotation">
+        <xsl:text>
+var popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text> = new PopupWindow("popup-</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>");
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.offsetY = 15;
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.autoHide();
+</xsl:text>
+      </xsl:for-each>
+    </script>
+
+    <style type="text/css">
+      <xsl:value-of select="$annotation.css"/>
+    </style>
+  </xsl:if>
+
+  <!-- system.head.content is like user.head.content, except that
+       it is called before head.content. This is important because it
+       means, for example, that <style> elements output by system.head.content
+       have a lower CSS precedence than the users stylesheet. -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="user.preroot">
+  <!-- Pre-root output, can be used to output comments and PIs. -->
+  <!-- This must not output any element content! -->
+</xsl:template>
+
+<xsl:template name="user.head.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<!-- To use the same stripped nodeset everywhere, it should
+be created as a global variable here.
+Used by docbook.xsl, chunk-code.xsl and chunkfast.xsl -->
+<xsl:variable name="no.namespace">
+  <xsl:if test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">
+    <xsl:apply-templates select="/*" mode="stripNS"/>
+  </xsl:if>
+</xsl:variable>
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="false()"/>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="false()"/>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="collect.tex.math"/>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="$profiled-nodes" mode="collect.tex.math"/>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="doc" select="self::*"/>
+
+  <xsl:call-template name="user.preroot"/>
+  <xsl:call-template name="root.messages"/>
+
+  <html>
+    <xsl:call-template name="root.attributes"/>
+    <head>
+      <xsl:call-template name="system.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="user.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </head>
+    <body>
+      <xsl:call-template name="body.attributes"/>
+      <xsl:call-template name="user.header.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:apply-templates select="."/>
+      <xsl:call-template name="user.footer.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$html.append"/>
+  
+  <!-- Generate any css files only once, not once per chunk -->
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<xsl:template name="root.attributes">
+  <!-- customize to add attributes to <html> element  -->
+</xsl:template>
+
+<xsl:template name="root.messages">
+  <!-- redefine this any way you'd like to output messages -->
+  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+
+  <!-- The default is that we are not chunking... -->
+  <xsl:text>0</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/profile-onechunk.xsl b/applications/content/template/docbook/html/profile-onechunk.xsl
new file mode 100644
index 0000000..486710b
--- /dev/null
+++ b/applications/content/template/docbook/html/profile-onechunk.xsl
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                version="1.0"
+                exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="profile-chunk.xsl"/>
+
+<!-- Ok, using the onechunk parameter makes this all work again. -->
+<!-- It does have the disadvantage that it only works for documents that have -->
+<!-- a root element that is considered a chunk by the chunk.xsl stylesheet. -->
+<!-- Ideally, onechunk would let anything be a chunk. But not today. -->
+
+<xsl:param name="onechunk" select="1"/>
+<xsl:param name="suppress.navigation">1</xsl:param>
+
+<xsl:template name="href.target.uri">
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/qandaset.xsl b/applications/content/template/docbook/html/qandaset.xsl
new file mode 100644
index 0000000..b8bc2f9
--- /dev/null
+++ b/applications/content/template/docbook/html/qandaset.xsl
@@ -0,0 +1,456 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="qandaset">
+  <xsl:variable name="title" select="(blockinfo/title|info/title|title)[1]"/>
+  <xsl:variable name="preamble" select="*[local-name(.) != 'title'
+                                          and local-name(.) != 'titleabbrev'
+                                          and local-name(.) != 'qandadiv'
+                                          and local-name(.) != 'qandaentry']"/>
+  <xsl:variable name="toc">
+    <xsl:call-template name="pi.dbhtml_toc"/>
+  </xsl:variable>
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="$title"/>
+    <xsl:if test="not($title)">
+      <!-- andhor is output on title if there is one -->
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:if test="((contains($toc.params, 'toc') and $toc != '0') or $toc = '1')
+                  and not(ancestor::answer and not($qanda.nested.in.toc=0))">
+      <xsl:call-template name="process.qanda.toc"/>
+    </xsl:if>
+    <xsl:apply-templates select="$preamble"/>
+    <xsl:call-template name="process.qandaset"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="qandaset/blockinfo/title|
+                     qandaset/info/title|
+                     qandaset/title">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qanda.section.level"/>
+  </xsl:variable>
+  <xsl:element name="h{string(number($qalevel)+1)}">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandaset/blockinfo|qandaset/info">
+  <!-- what should this template really do? -->
+  <xsl:apply-templates select="legalnotice" mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="qandadiv">
+  <xsl:variable name="preamble" select="*[local-name(.) != 'title'
+                                          and local-name(.) != 'titleabbrev'
+                                          and local-name(.) != 'qandadiv'
+                                          and local-name(.) != 'qandaentry']"/>
+
+  <xsl:if test="blockinfo/title|info/title|title">
+    <tr class="qandadiv">
+      <td align="{$direction.align.start}" valign="top" colspan="2">
+        <xsl:apply-templates select="(blockinfo/title|info/title|title)[1]"/>
+      </td>
+    </tr>
+  </xsl:if>
+
+  <xsl:variable name="toc">
+    <xsl:call-template name="pi.dbhtml_toc"/>
+  </xsl:variable>
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="(contains($toc.params, 'toc') and $toc != '0') or $toc = '1'">
+    <tr class="toc">
+      <td align="{$direction.align.start}" valign="top" colspan="2">
+        <xsl:call-template name="process.qanda.toc"/>
+      </td>
+    </tr>
+  </xsl:if>
+  <xsl:if test="$preamble">
+    <tr class="toc">
+      <td align="{$direction.align.start}" valign="top" colspan="2">
+        <xsl:apply-templates select="$preamble"/>
+      </td>
+    </tr>
+  </xsl:if>
+  <xsl:apply-templates select="qandadiv|qandaentry"/>
+</xsl:template>
+
+<xsl:template match="qandadiv/blockinfo/title|
+                     qandadiv/info/title|
+                     qandadiv/title">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qandadiv.section.level"/>
+  </xsl:variable>
+
+  <xsl:element name="h{string(number($qalevel)+1)}">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="parent::qandadiv" mode="label.markup"/>
+    <xsl:if test="$qandadiv.autolabel != 0">
+      <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+      <xsl:text> </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandaentry">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="question">
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+
+  <tr>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <!-- capture the id of the  quandaentry -->
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <td align="{$direction.align.start}" valign="top">
+      <!-- and the id of the question too -->
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="node" select=".."/>
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+
+      <xsl:variable name="label.content">
+        <xsl:apply-templates select="." mode="qanda.label"/>
+      </xsl:variable>
+
+      <xsl:if test="string-length($label.content) &gt; 0">
+        <p><b>
+          <xsl:copy-of select="$label.content"/>
+        </b></p>
+      </xsl:if>
+    </td>
+    <td align="{$direction.align.start}" valign="top">
+      <xsl:choose>
+        <xsl:when test="$deflabel = 'none' and not(label)">
+          <b><xsl:apply-templates select="*[local-name(.) != 'label']"/></b>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="*[local-name(.) != 'label']"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="*" mode="qanda.defaultlabel">
+  <xsl:choose>
+    <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+      <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]
+                            /@defaultlabel"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$qanda.defaultlabel"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question" mode="qanda.label">
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+  <xsl:apply-templates select="." mode="label.markup"/>
+  <xsl:if test="contains($deflabel, 'number') and not(label)">
+    <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="answer">
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+
+  <tr>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <td align="{$direction.align.start}" valign="top">
+      <xsl:call-template name="anchor"/>
+      <xsl:variable name="answer.label">
+        <xsl:apply-templates select="." mode="label.markup"/>
+      </xsl:variable>
+      <xsl:if test="string-length($answer.label) &gt; 0">
+        <p><b>
+          <xsl:copy-of select="$answer.label"/>
+        </b></p>
+      </xsl:if>
+    </td>
+    <td align="{$direction.align.start}" valign="top">
+      <xsl:apply-templates select="*[local-name(.) != 'label'
+        and local-name(.) != 'qandaentry']"/>
+      <!-- * handle nested answer/qandaentry instances -->
+      <!-- * (bug 1509043 from Daniel Leidert) -->
+      <xsl:if test="descendant::question">
+        <xsl:call-template name="process.qandaset"/>
+      </xsl:if>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="answer" mode="qanda.label">
+  <xsl:apply-templates select="." mode="label.markup"/>
+</xsl:template>
+
+<xsl:template match="label">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.qanda.toc">
+  <!-- * if user wants nested qandaset and qandaentry in main Qandaset TOC, -->
+  <!-- * then don't also include the nested stuff in the sub TOCs -->
+  <dl>
+    <xsl:apply-templates select="qandadiv" mode="qandatoc.mode"/>
+    <xsl:apply-templates select="qandaset|qandaentry" mode="qandatoc.mode"/>
+  </dl>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="qandatoc.mode">
+  <dt><xsl:apply-templates select="title" mode="qandatoc.mode"/></dt>
+  <dd><xsl:call-template name="process.qanda.toc"/></dd>
+</xsl:template>
+
+<xsl:template match="qandadiv/blockinfo/title|
+                     qandadiv/info/title|
+                     qandadiv/title" mode="qandatoc.mode">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qandadiv.section.level"/>
+  </xsl:variable>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="parent::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="div.label">
+    <xsl:apply-templates select="parent::qandadiv" mode="label.markup"/>
+  </xsl:variable>
+  <xsl:if test="string-length($div.label) != 0">
+    <xsl:copy-of select="$div.label"/>
+    <xsl:value-of select="$autotoc.label.separator"/>
+  </xsl:if>
+  <xsl:text> </xsl:text>
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="object" select="parent::*"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </a>
+</xsl:template>
+
+<xsl:template match="qandaset" mode="qandatoc.mode">
+  <xsl:for-each select="qandaentry">
+    <xsl:apply-templates select="." mode="qandatoc.mode"/>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="qandatoc.mode">
+  <xsl:apply-templates select="question" mode="qandatoc.mode"/>
+</xsl:template>
+
+<xsl:template match="question" mode="qandatoc.mode">
+  <xsl:variable name="firstch">
+    <!-- Use a titleabbrev or title if available -->
+    <xsl:choose>
+      <xsl:when test="../blockinfo/titleabbrev">
+        <xsl:apply-templates select="../blockinfo/titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../blockinfo/title">
+        <xsl:apply-templates select="../blockinfo/title[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../info/titleabbrev">
+        <xsl:apply-templates select="../info/titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../titleabbrev">
+        <xsl:apply-templates select="../titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../info/title">
+        <xsl:apply-templates select="../info/title[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../title">
+        <xsl:apply-templates select="../title[1]/node()"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="(*[local-name(.)!='label'])[1]/node()"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="deflabel">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+        <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]
+                              /@defaultlabel"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$qanda.defaultlabel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <dt>
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:if test="contains($deflabel,'number') and not(label)">
+      <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+    </xsl:if>
+    <xsl:text> </xsl:text>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:value-of select="$firstch"/>
+    </a>
+  </dt>
+  <!-- * include nested qandaset/qandaentry in TOC if user wants it -->
+  <xsl:if test="not($qanda.nested.in.toc = 0)">
+    <xsl:apply-templates select="following-sibling::answer" mode="qandatoc.mode"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="answer" mode="qandatoc.mode">
+  <xsl:if test="descendant::question">
+    <dd>
+      <xsl:call-template name="process.qanda.toc"/>
+    </dd>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.qandaset">
+
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+
+  <xsl:variable name="label-width">
+    <xsl:call-template name="pi.dbhtml_label-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="table-summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellpadding">
+    <xsl:call-template name="pi.dbhtml_cellpadding"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellspacing">
+    <xsl:call-template name="pi.dbhtml_cellspacing"/>
+  </xsl:variable>
+
+  <table border="{$table.border.off}">
+    <xsl:if test="$css.decoration != 0">
+      <xsl:attribute name="style">width: 100%;</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$table-summary != ''">
+      <xsl:attribute name="summary">
+        <xsl:value-of select="$table-summary"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$cellpadding != ''">
+      <xsl:attribute name="cellpadding">
+        <xsl:value-of select="$cellpadding"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$cellspacing != ''">
+      <xsl:attribute name="cellspacing">
+        <xsl:value-of select="$cellspacing"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <colgroup>
+      <col align="{$direction.align.start}">
+        <xsl:attribute name="width">
+          <xsl:choose>
+            <xsl:when test="$label-width != ''">
+              <xsl:value-of select="$label-width"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:text>1%</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+      </col>
+      <col/>
+    </colgroup>
+    <tbody>
+      <xsl:apply-templates select="qandaentry|qandadiv"/>
+    </tbody>
+  </table>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="no.wrapper.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/refentry.xsl b/applications/content/template/docbook/html/refentry.xsl
new file mode 100644
index 0000000..2c7ede9
--- /dev/null
+++ b/applications/content/template/docbook/html/refentry.xsl
@@ -0,0 +1,305 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="reference">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="reference.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="not(partintro) and contains($toc.params, 'toc')">
+      <xsl:call-template name="division.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="reference" mode="division.number">
+  <xsl:number from="book" count="reference" format="I."/>
+</xsl:template>
+
+<xsl:template match="reference/docinfo"></xsl:template>
+<xsl:template match="reference/referenceinfo"></xsl:template>
+<xsl:template match="reference/title"></xsl:template>
+<xsl:template match="reference/subtitle"></xsl:template>
+<xsl:template match="reference/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="refentry.title">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="refmeta" select="$node//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select="$node//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+  <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/>
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]" mode="title"/>
+      </xsl:when>
+      <xsl:when test="$refdesc">
+	<xsl:apply-templates select="$refdesc[1]" mode="title"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]" mode="title"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <h1 class="title">
+    <xsl:copy-of select="$title"/>
+  </h1>
+</xsl:template>
+
+<xsl:template match="refentry">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:if test="$refentry.separator != 0 and preceding-sibling::refentry">
+      <div class="refentry.separator">
+        <hr/>
+      </div>
+    </xsl:if>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="refentry.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="refentry/docinfo|refentry/refentryinfo"></xsl:template>
+<xsl:template match="refentry/info"></xsl:template>
+
+<xsl:template match="refentrytitle|refname|refdescriptor" mode="title">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refmeta">
+</xsl:template>
+
+<xsl:template match="manvolnum">
+  <xsl:if test="$refentry.xref.manvolnum != 0">
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refmiscinfo">
+</xsl:template>
+
+<xsl:template match="refentrytitle">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="refnamediv">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:choose>
+      <xsl:when test="preceding-sibling::refnamediv">
+	<!-- no title on secondary refnamedivs! -->
+      </xsl:when>
+      <xsl:when test="$refentry.generate.name != 0">
+        <h2>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'RefName'"/>
+          </xsl:call-template>
+        </h2>
+      </xsl:when>
+      <xsl:when test="$refentry.generate.title != 0">
+        <h2>
+          <xsl:choose>
+            <xsl:when test="../refmeta/refentrytitle">
+              <xsl:apply-templates select="../refmeta/refentrytitle"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="refname[1]"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </h2>
+      </xsl:when>
+    </xsl:choose>
+
+    <p>
+      <xsl:apply-templates/>
+    </p>
+  </div>
+</xsl:template>
+
+<xsl:template match="refname">
+  <xsl:if test="not(preceding-sibling::refdescriptor)">
+    <xsl:apply-templates/>
+    <xsl:if test="following-sibling::refname">
+      <xsl:text>, </xsl:text>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refpurpose">
+  <xsl:if test="node()">
+    <xsl:text> </xsl:text>
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat">em-dash</xsl:with-param>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refdescriptor">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refclass">
+  <xsl:if test="$refclass.suppress = 0">
+  <b>
+    <xsl:if test="@role">
+      <xsl:value-of select="@role"/>
+      <xsl:text>: </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </b>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <h2>
+      <xsl:choose>
+        <xsl:when test="refsynopsisdiv/title|title">
+          <xsl:apply-templates select="(refsynopsisdiv/title|title)[1]"
+                               mode="titlepage.mode"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'RefSynopsisDiv'"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </h2>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="refsynopsisdivinfo"></xsl:template>
+
+<xsl:template match="refsynopsisdiv/title">
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv/title" mode="titlepage.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refsection|refsect1|refsect2|refsect3">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <!-- pick up info title -->
+    <xsl:apply-templates select="(title|info/title)[1]"/>
+    <xsl:apply-templates select="node()[not(self::title) and not(self::info)]"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="refsection/title|refsection/info/title">
+  <!-- the ID is output in the block.object call for refsect1 -->
+  <xsl:variable name="level" select="count(ancestor-or-self::refsection)"/>
+  <xsl:variable name="refsynopsisdiv">
+    <xsl:text>0</xsl:text>
+    <xsl:if test="ancestor::refsynopsisdiv">1</xsl:if>
+  </xsl:variable>
+  <xsl:variable name="hlevel">
+    <xsl:choose>
+      <xsl:when test="$level+$refsynopsisdiv &gt; 5">6</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$level+1+$refsynopsisdiv"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:element name="h{$hlevel}">
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="refsect1/title|refsect1/info/title">
+  <!-- the ID is output in the block.object call for refsect1 -->
+  <h2>
+    <xsl:apply-templates/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="refsect2/title|refsect2/info/title">
+  <!-- the ID is output in the block.object call for refsect2 -->
+  <h3>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<xsl:template match="refsect3/title|refsect3/info/title">
+  <!-- the ID is output in the block.object call for refsect3 -->
+  <h4>
+    <xsl:apply-templates/>
+  </h4>
+</xsl:template>
+
+<xsl:template match="refsectioninfo|refsection/info"></xsl:template>
+<xsl:template match="refsect1info|refsect1/info"></xsl:template>
+<xsl:template match="refsect2info|refsect2/info"></xsl:template>
+<xsl:template match="refsect3info|refsect3/info"></xsl:template>
+
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/sections.xsl b/applications/content/template/docbook/html/sections.xsl
new file mode 100644
index 0000000..d2a1b54
--- /dev/null
+++ b/applications/content/template/docbook/html/sections.xsl
@@ -0,0 +1,636 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="section">
+  <xsl:variable name="depth" select="count(ancestor::section)+1"/>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="section.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')
+                  and $depth &lt;= $generate.section.toc.level">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="section.title">
+  <!-- the context node should be the title of a section when called -->
+  <xsl:variable name="section" select="(ancestor::section
+                                        |ancestor::simplesect
+                                        |ancestor::sect1
+                                        |ancestor::sect2
+                                        |ancestor::sect3
+                                        |ancestor::sect4
+                                        |ancestor::sect5)[last()]"/>
+
+  <xsl:variable name="renderas">
+    <xsl:choose>
+      <xsl:when test="$section/@renderas = 'sect1'">1</xsl:when>
+      <xsl:when test="$section/@renderas = 'sect2'">2</xsl:when>
+      <xsl:when test="$section/@renderas = 'sect3'">3</xsl:when>
+      <xsl:when test="$section/@renderas = 'sect4'">4</xsl:when>
+      <xsl:when test="$section/@renderas = 'sect5'">5</xsl:when>
+      <xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="level">
+    <xsl:choose>
+      <xsl:when test="$renderas != ''">
+        <xsl:value-of select="$renderas"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="section.level">
+          <xsl:with-param name="node" select="$section"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="section.heading">
+    <xsl:with-param name="section" select="$section"/>
+    <xsl:with-param name="level" select="$level"/>
+    <xsl:with-param name="title">
+      <xsl:apply-templates select="$section" mode="object.title.markup">
+        <xsl:with-param name="allow-anchors" select="1"/>
+      </xsl:apply-templates>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section/title
+                    |section/info/title
+                    |sectioninfo/title" 
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect1">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect2'">
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect3'">
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect4'">
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect5'">
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')
+                  and $generate.section.toc.level &gt;= 1">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect1/title
+                    |sect1/info/title
+                    |sect1info/title" 
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect2">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect3'">
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect4'">
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect5'">
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')
+                  and $generate.section.toc.level &gt;= 2">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect2/title
+                    |sect2/info/title
+                    |sect2info/title" 
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect3">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect2'">
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect4'">
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect5'">
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')
+                  and $generate.section.toc.level &gt;= 3">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect3/title
+                    |sect3/info/title
+                    |sect3info/title" 
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect4">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect2'">
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect3'">
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect5'">
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')
+                  and $generate.section.toc.level &gt;= 4">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect4/title
+                    |sect4/info/title
+                    |sect4info/title" 
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect5">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect2'">
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect3'">
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect4'">
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')
+                  and $generate.section.toc.level &gt;= 5">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect5/title
+                    |sect5/info/title
+                    |sect5info/title" 
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="simplesect">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="simplesect.titlepage"/>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="simplesect/title|simplesect/info/title" 
+              mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="section/title"></xsl:template>
+<xsl:template match="section/titleabbrev"></xsl:template>
+<xsl:template match="section/subtitle"></xsl:template>
+<xsl:template match="sectioninfo"></xsl:template>
+<xsl:template match="section/info"></xsl:template>
+
+<xsl:template match="sect1/title"></xsl:template>
+<xsl:template match="sect1/titleabbrev"></xsl:template>
+<xsl:template match="sect1/subtitle"></xsl:template>
+<xsl:template match="sect1info"></xsl:template>
+<xsl:template match="sect1/info"></xsl:template>
+
+<xsl:template match="sect2/title"></xsl:template>
+<xsl:template match="sect2/subtitle"></xsl:template>
+<xsl:template match="sect2/titleabbrev"></xsl:template>
+<xsl:template match="sect2info"></xsl:template>
+<xsl:template match="sect2/info"></xsl:template>
+
+<xsl:template match="sect3/title"></xsl:template>
+<xsl:template match="sect3/subtitle"></xsl:template>
+<xsl:template match="sect3/titleabbrev"></xsl:template>
+<xsl:template match="sect3info"></xsl:template>
+<xsl:template match="sect3/info"></xsl:template>
+
+<xsl:template match="sect4/title"></xsl:template>
+<xsl:template match="sect4/subtitle"></xsl:template>
+<xsl:template match="sect4/titleabbrev"></xsl:template>
+<xsl:template match="sect4info"></xsl:template>
+<xsl:template match="sect4/info"></xsl:template>
+
+<xsl:template match="sect5/title"></xsl:template>
+<xsl:template match="sect5/subtitle"></xsl:template>
+<xsl:template match="sect5/titleabbrev"></xsl:template>
+<xsl:template match="sect5info"></xsl:template>
+<xsl:template match="sect5/info"></xsl:template>
+
+<xsl:template match="simplesect/title"></xsl:template>
+<xsl:template match="simplesect/subtitle"></xsl:template>
+<xsl:template match="simplesect/titleabbrev"></xsl:template>
+<xsl:template match="simplesect/info"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="section.heading">
+  <xsl:param name="section" select="."/>
+  <xsl:param name="level" select="1"/>
+  <xsl:param name="allow-anchors" select="1"/>
+  <xsl:param name="title"/>
+  <xsl:param name="class" select="'title'"/>
+
+  <xsl:variable name="id">
+    <xsl:choose>
+      <!-- Make sure the subtitle doesn't get the same id as the title -->
+      <xsl:when test="self::subtitle">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="."/>
+        </xsl:call-template>
+      </xsl:when>
+      <!-- if title is in an *info wrapper, get the grandparent -->
+      <xsl:when test="contains(local-name(..), 'info')">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="../.."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- HTML H level is one higher than section level -->
+  <xsl:variable name="hlevel">
+    <xsl:choose>
+      <!-- highest valid HTML H level is H6; so anything nested deeper
+           than 5 levels down just becomes H6 -->
+      <xsl:when test="$level &gt; 5">6</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$level + 1"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:element name="h{$hlevel}">
+    <xsl:attribute name="class"><xsl:value-of select="$class"/></xsl:attribute>
+    <xsl:if test="$css.decoration != '0'">
+      <xsl:if test="$hlevel&lt;3">
+        <xsl:attribute name="style">clear: both</xsl:attribute>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="$allow-anchors != 0">
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="node" select="$section"/>
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:copy-of select="$title"/>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bridgehead">
+  <xsl:variable name="container"
+                select="(ancestor::appendix
+                        |ancestor::article
+                        |ancestor::bibliography
+                        |ancestor::chapter
+                        |ancestor::glossary
+                        |ancestor::glossdiv
+                        |ancestor::index
+                        |ancestor::partintro
+                        |ancestor::preface
+                        |ancestor::refsect1
+                        |ancestor::refsect2
+                        |ancestor::refsect3
+                        |ancestor::sect1
+                        |ancestor::sect2
+                        |ancestor::sect3
+                        |ancestor::sect4
+                        |ancestor::sect5
+                        |ancestor::section
+                        |ancestor::setindex
+                        |ancestor::simplesect)[last()]"/>
+
+  <xsl:variable name="clevel">
+    <xsl:choose>
+      <xsl:when test="local-name($container) = 'appendix'
+                      or local-name($container) = 'chapter'
+                      or local-name($container) = 'article'
+                      or local-name($container) = 'bibliography'
+                      or local-name($container) = 'glossary'
+                      or local-name($container) = 'index'
+                      or local-name($container) = 'partintro'
+                      or local-name($container) = 'preface'
+                      or local-name($container) = 'setindex'">1</xsl:when>
+      <xsl:when test="local-name($container) = 'glossdiv'">
+        <xsl:value-of select="count(ancestor::glossdiv)+1"/>
+      </xsl:when>
+      <xsl:when test="local-name($container) = 'sect1'
+                      or local-name($container) = 'sect2'
+                      or local-name($container) = 'sect3'
+                      or local-name($container) = 'sect4'
+                      or local-name($container) = 'sect5'
+                      or local-name($container) = 'refsect1'
+                      or local-name($container) = 'refsect2'
+                      or local-name($container) = 'refsect3'
+                      or local-name($container) = 'section'
+                      or local-name($container) = 'simplesect'">
+        <xsl:variable name="slevel">
+          <xsl:call-template name="section.level">
+            <xsl:with-param name="node" select="$container"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="$slevel + 1"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- HTML H level is one higher than section level -->
+  <xsl:variable name="hlevel">
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">2</xsl:when>
+      <xsl:when test="@renderas = 'sect2'">3</xsl:when>
+      <xsl:when test="@renderas = 'sect3'">4</xsl:when>
+      <xsl:when test="@renderas = 'sect4'">5</xsl:when>
+      <xsl:when test="@renderas = 'sect5'">6</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$clevel + 1"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="h{$hlevel}">
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="section/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="simplesect/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect1/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect2/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect3/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect4/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect5/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template name="section.subtitle">
+  <!-- the context node should be the subtitle of a section when called -->
+  <xsl:variable name="section" select="(ancestor::section
+                                        |ancestor::simplesect
+                                        |ancestor::sect1
+                                        |ancestor::sect2
+                                        |ancestor::sect3
+                                        |ancestor::sect4
+                                        |ancestor::sect5)[last()]"/>
+
+  <xsl:variable name="level">
+    <xsl:call-template name="section.level">
+      <xsl:with-param name="node" select="$section"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="section.heading">
+    <xsl:with-param name="section" select=".."/>
+    <xsl:with-param name="allow-anchors" select="0"/>
+    <!-- subtitle heading level one higher than section level -->
+    <xsl:with-param name="level" select="$level + 1"/>
+    <xsl:with-param name="class" select="'subtitle'"/>
+    <xsl:with-param name="title">
+      <xsl:apply-templates select="$section" mode="object.subtitle.markup">
+        <xsl:with-param name="allow-anchors" select="0"/>
+      </xsl:apply-templates>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/html/synop.xsl b/applications/content/template/docbook/html/synop.xsl
new file mode 100644
index 0000000..c92e9c7
--- /dev/null
+++ b/applications/content/template/docbook/html/synop.xsl
@@ -0,0 +1,1653 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY nbsp "&#160;">
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- synopsis is in verbatim -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="cmdsynopsis">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <p>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:if test="..//processing-instruction('dbcmdlist')">
+        <!-- * Placing a dbcmdlist PI as a child of a particular element -->
+        <!-- * creates a hyperlinked list of all cmdsynopsis instances -->
+        <!-- * that are descendants of that element; so for any -->
+        <!-- * cmdsynopsis that is a descendant of an element containing -->
+        <!-- * a dbcmdlist PI, we need to output an a@id instance so that -->
+        <!-- * we will have something to link to -->
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </p>
+  </div>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command">
+  <br/>
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command[1]" priority="2">
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="group|arg" name="group-or-arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:variable name="sepchar">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*/@sepchar">
+        <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text> </xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="preceding-sibling::*">
+    <xsl:value-of select="$sepchar"/>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.open.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.open.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates/>
+  <xsl:choose>
+    <xsl:when test="$rep='repeat'">
+      <xsl:value-of select="$arg.rep.repeat.str"/>
+    </xsl:when>
+    <xsl:when test="$rep='norepeat'">
+      <xsl:value-of select="$arg.rep.norepeat.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.rep.def.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.close.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.close.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="group/arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:if test="preceding-sibling::*">
+    <xsl:value-of select="$arg.or.sep"/>
+  </xsl:if>
+  <xsl:call-template name="group-or-arg"/>
+</xsl:template>
+
+<xsl:template match="sbr">
+  <br/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="synopfragmentref">
+  <xsl:variable name="target" select="key('id',@linkend)"/>
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="$target" mode="synopfragment.number"/>
+  </xsl:variable>
+  <i>
+    <a href="#{@linkend}">
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$snum"/>
+      <xsl:text>)</xsl:text>
+    </a>
+    <xsl:text>&#160;</xsl:text>
+    <xsl:apply-templates/>
+  </i>
+</xsl:template>
+
+<xsl:template match="synopfragment" mode="synopfragment.number">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="synopfragment">
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="." mode="synopfragment.number"/>
+  </xsl:variable>
+  <!-- You can't introduce another <p> here, because you're 
+       already in a <p> from cmdsynopsis-->
+  <span>
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:variable>
+    <a name="{$id}">
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$snum"/>
+      <xsl:text>)</xsl:text>
+    </a>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<xsl:template match="funcsynopsis">
+  <xsl:if test="..//processing-instruction('dbfunclist')">
+    <!-- * Placing a dbfunclist PI as a child of a particular element -->
+    <!-- * creates a hyperlinked list of all funcsynopsis instances that -->
+    <!-- * are descendants of that element; so for any funcsynopsis that is -->
+    <!-- * a descendant of an element containing a dbfunclist PI, we need -->
+    <!-- * to output an a@id instance so that we will have something to -->
+    <!-- * link to -->
+    <span>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </span>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+  </xsl:if>
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsisinfo">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </pre>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype -->
+<!--
+
+funcprototype ::= (funcdef,
+                   (void|varargs|paramdef+))
+
+funcdef       ::= (#PCDATA|type|replaceable|function)*
+
+paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
+-->
+
+<xsl:template match="funcprototype">
+  <xsl:variable name="html-style">
+    <xsl:call-template name="pi.dbhtml_funcsynopsis-style">
+      <xsl:with-param name="node" select="ancestor::funcsynopsis/descendant-or-self::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="style">
+    <xsl:choose>
+      <xsl:when test="$html-style != ''">
+        <xsl:value-of select="$html-style"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$funcsynopsis.style"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+<!-- * 2008-02-17. the code no longer relies on the funcsynopsis.tabular.threshold -->
+<!-- * param at all (the stuff below has been commented out since mid -->
+<!-- * 2006), so I completely removed the funcsynopsis.tabular.threshold param -->
+<!-- * .. MikeSmith -->
+<!--
+  <xsl:variable name="tabular-p"
+                select="$funcsynopsis.tabular.threshold &gt; 0
+                        and string-length(.) &gt; $funcsynopsis.tabular.threshold"/>
+-->
+
+  <xsl:variable name="tabular-p" select="true()"/>
+
+  <xsl:choose>
+    <xsl:when test="$style = 'kr' and $tabular-p">
+      <xsl:apply-templates select="." mode="kr-tabular"/>
+    </xsl:when>
+    <xsl:when test="$style = 'kr'">
+      <xsl:apply-templates select="." mode="kr-nontabular"/>
+    </xsl:when>
+    <xsl:when test="$style = 'ansi' and $tabular-p">
+      <xsl:apply-templates select="." mode="ansi-tabular"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="." mode="ansi-nontabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: kr, non-tabular -->
+
+<xsl:template match="funcprototype" mode="kr-nontabular">
+  <p>
+    <xsl:apply-templates mode="kr-nontabular"/>
+    <xsl:if test="paramdef">
+      <br/>
+      <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/>
+    </xsl:if>
+  </p>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="kr-nontabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="kr-nontabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="kr-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="kr-nontabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="kr-nontabular">
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="kr-nontabular">
+  <xsl:text>...</xsl:text>
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-nontabular">
+  <xsl:apply-templates select="parameter" mode="kr-nontabular"/>
+  <xsl:choose>
+    <xsl:when test="following-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>)</code>
+      <xsl:text>;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-nontabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-nontabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-funcsynopsis-mode">
+  <xsl:if test="preceding-sibling::paramdef"><br/></xsl:if>
+  <code>
+    <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+  </code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-funcsynopsis-mode">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="kr-funcsynopsis-mode">
+  <code>(</code>
+  <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+  <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: kr, tabular -->
+
+<xsl:template match="funcprototype" mode="kr-tabular">
+  <table border="{$table.border.off}" class="funcprototype-table">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Function synopsis</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$css.decoration != 0">
+      <xsl:attribute name="style">cellspacing: 0; cellpadding: 0;</xsl:attribute>
+    </xsl:if>
+    <tr>
+      <td>
+        <xsl:apply-templates select="funcdef" mode="kr-tabular"/>
+      </td>
+      <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="kr-tabular"/>
+    </tr>
+    <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
+      <tr>
+        <td>&#160;</td>
+        <xsl:apply-templates select="." mode="kr-tabular"/>
+      </tr>
+    </xsl:for-each>
+  </table>
+  <xsl:if test="paramdef">
+    <div class="paramdef-list">
+      <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/>
+    </div>
+  </xsl:if>
+  <div class="funcprototype-spacer">&#160;</div> <!-- hACk: blank div for vertical spacing -->
+</xsl:template>
+
+<xsl:template match="funcdef" mode="kr-tabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="kr-tabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="kr-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="kr-tabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="kr-tabular">
+  <td>
+    <code>)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="varargs" mode="kr-tabular">
+  <td>
+    <xsl:text>...</xsl:text>
+    <code>)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-tabular">
+  <td>
+    <xsl:apply-templates select="parameter" mode="kr-tabular"/>
+    <xsl:choose>
+      <xsl:when test="following-sibling::*">
+	<xsl:text>, </xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+	<code>)</code>
+	<xsl:text>;</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-tabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-tabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-tabular-funcsynopsis-mode">
+  <xsl:variable name="type">
+    <xsl:choose>
+      <xsl:when test="type">
+	<xsl:apply-templates select="type"
+			     mode="kr-tabular-funcsynopsis-mode"/>
+      </xsl:when>
+      <xsl:when test="normalize-space(parameter/preceding-sibling::node()[not(self::parameter)]) != ''">
+	<xsl:copy-of select="parameter/preceding-sibling::node()[not(self::parameter)]"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <tr>
+    <xsl:choose>
+      <xsl:when test="$type != '' and funcparams">
+        <td>
+	  <code>
+	    <xsl:copy-of select="$type"/>
+	  </code>
+          <xsl:text>&#160;</xsl:text>
+        </td>
+        <td>
+	  <code>
+	    <xsl:choose>
+	      <xsl:when test="type">
+		<xsl:apply-templates select="type/following-sibling::*"
+				     mode="kr-tabular-funcsynopsis-mode"/>
+	      </xsl:when>
+	      <xsl:otherwise>
+		<xsl:apply-templates select="*"
+				     mode="kr-tabular-funcsynopsis-mode"/>
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </code>
+        </td>
+      </xsl:when>
+
+      <xsl:when test="funcparams">
+        <td colspan="2">
+	  <code>
+	    <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+	  </code>
+        </td>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <td>
+	  <code>
+	    <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]"
+				 mode="kr-tabular-funcsynopsis-mode"/>
+	  </code>
+          <xsl:text>&#160;</xsl:text>
+        </td>
+        <td>
+	  <code>
+	    <xsl:apply-templates select="parameter"
+				 mode="kr-tabular"/>
+	    <xsl:apply-templates select="parameter/following-sibling::*[not(self::parameter)]"
+				 mode="kr-tabular-funcsynopsis-mode"/>
+	    <xsl:text>;</xsl:text>
+	  </code>
+        </td>
+      </xsl:otherwise>
+    </xsl:choose>
+  </tr>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-tabular-funcsynopsis-mode">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="kr-tabular-funcsynopsis-mode">
+  <code>(</code>
+  <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: ansi, non-tabular -->
+
+<xsl:template match="funcprototype" mode="ansi-nontabular">
+  <p>
+    <xsl:apply-templates mode="ansi-nontabular"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="ansi-nontabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="ansi-nontabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="ansi-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="ansi-nontabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="ansi-nontabular">
+  <code>void)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="ansi-nontabular">
+  <xsl:text>...</xsl:text>
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="ansi-nontabular">
+  <xsl:apply-templates mode="ansi-nontabular"/>
+  <xsl:choose>
+    <xsl:when test="following-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>)</code>
+      <xsl:text>;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="ansi-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="ansi-nontabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="ansi-nontabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="ansi-nontabular">
+  <code>(</code>
+  <xsl:apply-templates mode="ansi-nontabular"/>
+  <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: ansi, tabular -->
+
+<xsl:template match="funcprototype" mode="ansi-tabular">
+  <table border="{$table.border.off}" 
+    class="funcprototype-table"
+    >
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Function synopsis</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$css.decoration != 0">
+      <xsl:attribute name="style">cellspacing: 0; cellpadding: 0;</xsl:attribute>
+    </xsl:if>
+    <tr>
+      <td>
+        <xsl:apply-templates select="funcdef" mode="ansi-tabular"/>
+      </td>
+      <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="ansi-tabular"/>
+    </tr>
+    <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
+      <tr>
+        <td>&#160;</td>
+        <xsl:apply-templates select="." mode="ansi-tabular"/>
+      </tr>
+    </xsl:for-each>
+  </table>
+  <div class="funcprototype-spacer">&#160;</div> <!-- hACk: blank div for vertical spacing -->
+</xsl:template>
+
+<xsl:template match="funcdef" mode="ansi-tabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="ansi-tabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="ansi-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="kr-tabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="ansi-tabular">
+  <td>
+    <code>void)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="varargs" mode="ansi-tabular">
+  <td>
+    <xsl:text>...</xsl:text>
+    <code>)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="ansi-tabular">
+      <td>
+        <xsl:apply-templates mode="ansi-tabular"/>
+        <xsl:choose>
+          <xsl:when test="following-sibling::*">
+            <xsl:text>, </xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <code>)</code>
+            <xsl:text>;</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </td>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="ansi-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="ansi-tabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="ansi-tabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="ansi-tabular">
+  <code>(</code>
+  <xsl:apply-templates/>
+  <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:variable name="default-classsynopsis-language">java</xsl:variable>
+
+<xsl:template match="classsynopsis
+                     |fieldsynopsis
+                     |methodsynopsis
+                     |constructorsynopsis
+                     |destructorsynopsis">
+  <xsl:param name="language">
+    <xsl:choose>
+      <xsl:when test="@language">
+	<xsl:value-of select="@language"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="$default-classsynopsis-language"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$language='java' or $language='Java'">
+      <xsl:apply-templates select="." mode="java"/>
+    </xsl:when>
+    <xsl:when test="$language='perl' or $language='Perl'">
+      <xsl:apply-templates select="." mode="perl"/>
+    </xsl:when>
+    <xsl:when test="$language='idl' or $language='IDL'">
+      <xsl:apply-templates select="." mode="idl"/>
+    </xsl:when>
+    <xsl:when test="$language='cpp' or $language='c++' or $language='C++'">
+      <xsl:apply-templates select="." mode="cpp"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Unrecognized language on </xsl:text>
+        <xsl:value-of select="local-name(.)"/>
+        <xsl:text>: </xsl:text>
+	<xsl:value-of select="$language"/>
+      </xsl:message>
+      <xsl:apply-templates select=".">
+	<xsl:with-param name="language"
+	  select="$default-classsynopsis-language"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="synop-break">
+  <xsl:if test="parent::classsynopsis
+                or (following-sibling::fieldsynopsis
+                    |following-sibling::methodsynopsis
+                    |following-sibling::constructorsynopsis
+                    |following-sibling::destructorsynopsis)">
+    <br/>
+  </xsl:if>
+</xsl:template>
+
+
+<!-- ===== Java ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="java">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates select="ooclass[1]" mode="java"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text> extends</xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="java"/>
+      <xsl:if test="oointerface|ooexception">
+        <br/>
+	<xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text>implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="java"/>
+      <xsl:if test="ooexception">
+        <br/>
+	<xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text>throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="java"/>
+    </xsl:if>
+    <xsl:text>&nbsp;{</xsl:text>
+    <br/>
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="java"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="java">
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="java">
+  <xsl:choose>
+    <xsl:when test="preceding-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text> </xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="java">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&nbsp;&nbsp;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>=&nbsp;</xsl:text>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="java">
+  <xsl:param name="indent">0</xsl:param>
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>,</xsl:text>
+    <br/>
+    <xsl:if test="$indent &gt; 0">
+      <xsl:call-template name="copy-string">
+	<xsl:with-param name="string">&nbsp;</xsl:with-param>
+	<xsl:with-param name="count" select="$indent + 1"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="java"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="decl">
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&nbsp;&nbsp;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$start-modifiers" mode="java"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="java"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="java"/>
+  </xsl:variable>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$decl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="java">
+      <xsl:with-param name="indent" select="string-length($decl)"/>
+    </xsl:apply-templates>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <br/>
+      <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="java"/>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="java"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== C++ ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="cpp">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="cpp"/>
+      <xsl:if test="oointerface|ooexception">
+        <br/>
+	<xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="cpp"/>
+      <xsl:if test="ooexception">
+        <br/>
+	<xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="cpp"/>
+    </xsl:if>
+    <xsl:text>&nbsp;{</xsl:text>
+    <br/>
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="cpp"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="cpp">
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="cpp">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="cpp">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&nbsp;&nbsp;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>=&nbsp;</xsl:text>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="cpp">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="cpp"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&nbsp;&nbsp;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$start-modifiers" mode="cpp"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="cpp"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="cpp"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="cpp"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <br/>
+      <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="cpp"/>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="cpp"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== IDL ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="idl">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>interface </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="idl"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="idl"/>
+      <xsl:if test="oointerface|ooexception">
+        <br/>
+	<xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="idl"/>
+      <xsl:if test="ooexception">
+        <br/>
+	<xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="idl"/>
+    </xsl:if>
+    <xsl:text>&nbsp;{</xsl:text>
+    <br/>
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="idl"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="idl">
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="idl">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="idl">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&nbsp;&nbsp;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>=&nbsp;</xsl:text>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="idl">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="idl"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&nbsp;&nbsp;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$start-modifiers" mode="idl"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="idl"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="idl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="idl"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <br/>
+      <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;raises(</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="idl"/>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="idl"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== Perl ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="perl">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>package </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="perl"/>
+    <xsl:text>;</xsl:text>
+    <br/>
+
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>@ISA = (</xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="perl"/>
+      <xsl:text>);</xsl:text>
+      <br/>
+    </xsl:if>
+
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="perl"/>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="perl">
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="perl">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="perl">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&nbsp;&nbsp;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>=&nbsp;</xsl:text>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="perl">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="perl"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>sub </xsl:text>
+
+    <xsl:apply-templates select="methodname" mode="perl"/>
+    <xsl:text> { ... };</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- Used when not occurring as a child of classsynopsis -->
+<xsl:template match="ooclass|oointerface|ooexception">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * DocBook 5 allows linking elements (link, olink, and xref) -->
+<!-- * within the OO *synopsis elements (classsynopsis, fieldsynopsis, -->
+<!-- * methodsynopsis, constructorsynopsis, destructorsynopsis) and -->
+<!-- * their children. So we need to have mode="java|cpp|idl|perl" -->
+<!-- * per-mode matches for those linking elements in order for them -->
+<!-- * to be processed as expected. -->
+
+<xsl:template match="link|olink|xref" mode="java">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="cpp">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="idl">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="perl">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="ansi-nontabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="ansi-tabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="kr-nontabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="kr-tabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/table.xsl b/applications/content/template/docbook/html/table.xsl
new file mode 100644
index 0000000..af7c425
--- /dev/null
+++ b/applications/content/template/docbook/html/table.xsl
@@ -0,0 +1,1209 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                xmlns:stbl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Table"
+                xmlns:xtbl="xalan://com.nwalsh.xalan.Table"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                xmlns:ptbl="http://nwalsh.com/xslt/ext/xsltproc/python/Table"
+                exclude-result-prefixes="doc stbl xtbl lxslt ptbl"
+                version='1.0'>
+
+<xsl:include href="../common/table.xsl"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xtbl"
+                 functions="adjustColumnWidths"/>
+
+<xsl:template name="empty.table.cell">
+  <xsl:param name="colnum" select="0"/>
+
+  <xsl:variable name="rowsep">
+    <xsl:choose>
+      <!-- If this is the last row, rowsep never applies. -->
+      <xsl:when test="not(ancestor-or-self::row[1]/following-sibling::row
+                          or ancestor-or-self::thead/following-sibling::tbody
+                          or ancestor-or-self::tbody/preceding-sibling::tfoot)">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="NOT-AN-ELEMENT-NAME"/>
+          <xsl:with-param name="row" select="ancestor-or-self::row[1]"/>
+          <xsl:with-param name="colnum" select="$colnum"/>
+          <xsl:with-param name="attribute" select="'rowsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="colsep">
+    <xsl:choose>
+      <!-- If this is the last column, colsep never applies. -->
+      <xsl:when test="number($colnum) &gt;= ancestor::tgroup/@cols">0</xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="NOT-AN-ELEMENT-NAME"/>
+          <xsl:with-param name="row" select="ancestor-or-self::row[1]"/>
+          <xsl:with-param name="colnum" select="$colnum"/>
+          <xsl:with-param name="attribute" select="'colsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <td class="auto-generated">
+    <xsl:if test="$table.borders.with.css != 0">
+      <xsl:attribute name="style">
+        <xsl:if test="$colsep &gt; 0">
+          <xsl:call-template name="border">
+            <xsl:with-param name="side" select="'right'"/>
+          </xsl:call-template>
+        </xsl:if>
+        <xsl:if test="$rowsep &gt; 0">
+          <xsl:call-template name="border">
+            <xsl:with-param name="side" select="'bottom'"/>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:text>&#160;</xsl:text>
+  </td>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="border">
+  <xsl:param name="side" select="'left'"/>
+  <xsl:param name="padding" select="0"/>
+  <xsl:param name="style" select="$table.cell.border.style"/>
+  <xsl:param name="color" select="$table.cell.border.color"/>
+  <xsl:param name="thickness" select="$table.cell.border.thickness"/>
+
+  <!-- Note: Some browsers (mozilla) require at least a width and style. -->
+
+  <xsl:choose>
+    <xsl:when test="($thickness != ''
+                     and $style != ''
+                     and $color != '')
+                    or ($thickness != ''
+                        and $style != '')
+                    or ($thickness != '')">
+      <!-- use the compound property if we can: -->
+      <!-- it saves space and probably works more reliably -->
+      <xsl:text>border-</xsl:text>
+      <xsl:value-of select="$side"/>
+      <xsl:text>: </xsl:text>
+      <xsl:value-of select="$thickness"/>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$style"/>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$color"/>
+      <xsl:text>; </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- we need to specify the styles individually -->
+      <xsl:if test="$thickness != ''">
+        <xsl:text>border-</xsl:text>
+        <xsl:value-of select="$side"/>
+        <xsl:text>-width: </xsl:text>
+        <xsl:value-of select="$thickness"/>
+        <xsl:text>; </xsl:text>
+      </xsl:if>
+
+      <xsl:if test="$style != ''">
+        <xsl:text>border-</xsl:text>
+        <xsl:value-of select="$side"/>
+        <xsl:text>-style: </xsl:text>
+        <xsl:value-of select="$style"/>
+        <xsl:text>; </xsl:text>
+      </xsl:if>
+
+      <xsl:if test="$color != ''">
+        <xsl:text>border-</xsl:text>
+        <xsl:value-of select="$side"/>
+        <xsl:text>-color: </xsl:text>
+        <xsl:value-of select="$color"/>
+        <xsl:text>; </xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="tgroup" name="tgroup">
+  <xsl:if test="not(@cols) or @cols = '' or string(number(@cols)) = 'NaN'">
+    <xsl:message terminate="yes">
+      <xsl:text>Error: CALS tables must specify the number of columns.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellspacing">
+    <xsl:call-template name="pi.dbhtml_cellspacing"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellpadding">
+    <xsl:call-template name="pi.dbhtml_cellpadding"/>
+  </xsl:variable>
+
+  <table>
+    <xsl:choose>
+      <!-- If there's a textobject/phrase for the table summary, use it -->
+      <xsl:when test="../textobject/phrase">
+        <xsl:attribute name="summary">
+          <xsl:value-of select="../textobject/phrase"/>
+        </xsl:attribute>
+      </xsl:when>
+
+      <!-- If there's a <?dbhtml table-summary="foo"?> PI, use it for
+           the HTML table summary attribute -->
+      <xsl:when test="$summary != ''">
+        <xsl:attribute name="summary">
+          <xsl:value-of select="$summary"/>
+        </xsl:attribute>
+      </xsl:when>
+
+      <!-- Otherwise, if there's a title, use that -->
+      <xsl:when test="../title">
+        <xsl:attribute name="summary">
+          <!-- This screws up on inline markup and footnotes, oh well... -->
+          <xsl:value-of select="string(../title)"/>
+        </xsl:attribute>
+      </xsl:when>
+
+      <!-- Otherwise, forget the whole idea -->
+      <xsl:otherwise><!-- nevermind --></xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$cellspacing != '' or $html.cellspacing != ''">
+      <xsl:attribute name="cellspacing">
+        <xsl:choose>
+          <xsl:when test="$cellspacing != ''">
+            <xsl:value-of select="$cellspacing"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$html.cellspacing"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$cellpadding != '' or $html.cellpadding != ''">
+      <xsl:attribute name="cellpadding">
+        <xsl:choose>
+          <xsl:when test="$cellpadding != ''">
+            <xsl:value-of select="$cellpadding"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$html.cellpadding"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="../@pgwide=1 or local-name(.) = 'entrytbl'">
+      <xsl:attribute name="width">100%</xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$table.borders.with.css != 0">
+        <xsl:choose>
+          <xsl:when test="../@frame='all' or (not(../@frame) and $default.table.frame='all')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'top'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'bottom'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'left'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'right'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='topbot' or (not(../@frame) and $default.table.frame='topbot')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'top'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'bottom'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='top' or (not(../@frame) and $default.table.frame='top')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'top'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='bottom' or (not(../@frame) and $default.table.frame='bottom')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'bottom'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='sides' or (not(../@frame) and $default.table.frame='sides')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'left'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'right'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='none'">
+            <xsl:attribute name="style">
+              <xsl:text>border: none;</xsl:text>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+            </xsl:attribute>
+          </xsl:otherwise>
+        </xsl:choose>
+
+      </xsl:when>
+      <xsl:when test="../@frame='none' or (not(../@frame) and $default.table.frame='none') or local-name(.) = 'entrytbl'">
+        <xsl:attribute name="border">0</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:attribute name="border">1</xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="colgroup">
+      <colgroup>
+        <xsl:call-template name="generate.colgroup">
+          <xsl:with-param name="cols" select="@cols"/>
+        </xsl:call-template>
+      </colgroup>
+    </xsl:variable>
+
+    <xsl:variable name="explicit.table.width">
+      <xsl:call-template name="pi.dbhtml_table-width">
+        <xsl:with-param name="node" select=".."/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="table.width">
+      <xsl:choose>
+        <xsl:when test="$explicit.table.width != ''">
+          <xsl:value-of select="$explicit.table.width"/>
+        </xsl:when>
+        <xsl:when test="$default.table.width = ''">
+          <xsl:text>100%</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$default.table.width"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:if test="$default.table.width != ''
+                  or $explicit.table.width != ''">
+      <xsl:attribute name="width">
+        <xsl:choose>
+          <xsl:when test="contains($table.width, '%')">
+            <xsl:value-of select="$table.width"/>
+          </xsl:when>
+          <xsl:when test="$use.extensions != 0
+                          and $tablecolumns.extension != 0">
+            <xsl:choose>
+              <xsl:when test="function-available('stbl:convertLength')">
+                <xsl:value-of select="stbl:convertLength($table.width)"/>
+              </xsl:when>
+              <xsl:when test="function-available('xtbl:convertLength')">
+                <xsl:value-of select="xtbl:convertLength($table.width)"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:message terminate="yes">
+                  <xsl:text>No convertLength function available.</xsl:text>
+                </xsl:message>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$table.width"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$use.extensions != 0
+                      and $tablecolumns.extension != 0">
+        <xsl:choose>
+          <xsl:when test="function-available('stbl:adjustColumnWidths')">
+            <xsl:copy-of select="stbl:adjustColumnWidths($colgroup)"/>
+          </xsl:when>
+          <xsl:when test="function-available('xtbl:adjustColumnWidths')">
+            <xsl:copy-of select="xtbl:adjustColumnWidths($colgroup)"/>
+          </xsl:when>
+          <xsl:when test="function-available('ptbl:adjustColumnWidths')">
+            <xsl:copy-of select="ptbl:adjustColumnWidths($colgroup)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message terminate="yes">
+              <xsl:text>No adjustColumnWidths function available.</xsl:text>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$colgroup"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:apply-templates select="thead"/>
+    <xsl:apply-templates select="tfoot"/>
+    <xsl:apply-templates select="tbody"/>
+
+    <xsl:if test=".//footnote|../title//footnote">
+      <tbody class="footnotes">
+        <tr>
+          <td colspan="{@cols}">
+            <xsl:apply-templates select=".//footnote|../title//footnote" mode="table.footnote.mode"/>
+          </td>
+        </tr>
+      </tbody>
+    </xsl:if>
+  </table>
+</xsl:template>
+
+<xsl:template match="tgroup/processing-instruction('dbhtml')">
+  <xsl:variable name="summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <!-- Suppress the table-summary PI -->
+  <xsl:if test="$summary = ''">
+    <xsl:processing-instruction name="dbhtml">
+      <xsl:value-of select="."/>
+    </xsl:processing-instruction>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="colspec"></xsl:template>
+
+<xsl:template match="spanspec"></xsl:template>
+
+<xsl:template match="thead|tfoot">
+  <xsl:element name="{local-name(.)}">
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <!-- recurse on rows only if @morerows is present -->
+      <xsl:when test="row/entry/@morerows|row/entrytbl/@morerows">
+        <xsl:apply-templates select="row[1]">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'recurse'"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="row">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'loop'" />
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="tbody">
+  <tbody>
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="row/entry/@morerows|row/entrytbl/@morerows">
+        <xsl:apply-templates select="row[1]">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'recurse'"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="row">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'loop'" />
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+
+  </tbody>
+</xsl:template>
+
+<xsl:template match="row">
+  <xsl:param name="spans"/>
+  <xsl:param name="browserows"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($spans, '0')">
+      <xsl:call-template name="normal-row">
+        <xsl:with-param name="spans" select="$spans"/>
+        <xsl:with-param name="browserows" select="$browserows"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <!--
+      <xsl:message>
+        <xsl:text>Ignoring row: </xsl:text>
+        <xsl:value-of select="$spans"/>
+        <xsl:text> = </xsl:text>
+        <xsl:call-template name="consume-row">
+          <xsl:with-param name="spans" select="$spans"/>
+        </xsl:call-template>
+      </xsl:message>
+      -->
+
+      <xsl:if test="normalize-space(.//text()) != ''">
+        <xsl:message>Warning: overlapped row contains content!</xsl:message>
+      </xsl:if>
+
+      <tr><xsl:comment> This row intentionally left blank </xsl:comment></tr>
+
+      <xsl:if test="$browserows = 'recurse'">
+        <xsl:apply-templates select="following-sibling::row[1]">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="consume-row">
+              <xsl:with-param name="spans" select="$spans"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="$browserows"/>
+        </xsl:apply-templates>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="normal-row">
+  <xsl:param name="spans"/>
+  <xsl:param name="browserows"/>
+
+  <xsl:variable name="row-height">
+    <xsl:if test="processing-instruction('dbhtml')">
+      <xsl:call-template name="pi.dbhtml_row-height"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="bgcolor">
+    <xsl:if test="processing-instruction('dbhtml')">
+      <xsl:call-template name="pi.dbhtml_bgcolor"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="class">
+    <xsl:if test="processing-instruction('dbhtml')">
+      <xsl:call-template name="pi.dbhtml_class"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <tr>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="tr.attributes">
+      <xsl:with-param name="rownum">
+        <xsl:number from="tgroup" count="row"/>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:if test="$row-height != ''">
+      <xsl:attribute name="height">
+        <xsl:value-of select="$row-height"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$bgcolor != ''">
+      <xsl:attribute name="bgcolor">
+        <xsl:value-of select="$bgcolor"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$class != ''">
+      <xsl:attribute name="class">
+        <xsl:value-of select="$class"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$table.borders.with.css != 0">
+      <xsl:if test="@rowsep = 1 and following-sibling::row">
+        <xsl:attribute name="style">
+          <xsl:call-template name="border">
+            <xsl:with-param name="side" select="'bottom'"/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </xsl:if>
+    </xsl:if>
+
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="(entry|entrytbl)[1]">
+      <xsl:with-param name="spans" select="$spans"/>
+    </xsl:apply-templates>
+  </tr>
+
+  <xsl:if test="$browserows = 'recurse'">
+    <xsl:if test="following-sibling::row">
+      <xsl:variable name="nextspans">
+        <xsl:apply-templates select="(entry|entrytbl)[1]" mode="span">
+          <xsl:with-param name="spans" select="$spans"/>
+        </xsl:apply-templates>
+      </xsl:variable>
+  
+      <xsl:apply-templates select="following-sibling::row[1]">
+        <xsl:with-param name="spans" select="$nextspans"/>
+        <xsl:with-param name="browserows" select="$browserows"/>
+      </xsl:apply-templates>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="entry|entrytbl" name="entry">
+  <xsl:param name="col">
+    <xsl:choose>
+      <xsl:when test="@revisionflag">
+        <xsl:number from="row"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:param name="spans"/>
+
+  <xsl:variable name="cellgi">
+    <xsl:choose>
+      <xsl:when test="ancestor::thead">th</xsl:when>
+      <xsl:when test="ancestor::tfoot">th</xsl:when>
+      <xsl:when test="ancestor::tbody and 
+                      (ancestor::table[@rowheader = 'firstcol'] or
+                      ancestor::informaltable[@rowheader = 'firstcol']) and
+                      ancestor-or-self::entry[1][count(preceding-sibling::entry) = 0]">
+        <xsl:text>th</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>td</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="empty.cell" select="count(node()) = 0"/>
+
+  <xsl:variable name="named.colnum">
+    <xsl:call-template name="entry.colnum"/>
+  </xsl:variable>
+
+  <xsl:variable name="entry.colnum">
+    <xsl:choose>
+      <xsl:when test="$named.colnum &gt; 0">
+        <xsl:value-of select="$named.colnum"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$col"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="entry.colspan">
+    <xsl:choose>
+      <xsl:when test="@spanname or @namest">
+        <xsl:call-template name="calculate.colspan"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="following.spans">
+    <xsl:call-template name="calculate.following.spans">
+      <xsl:with-param name="colspan" select="$entry.colspan"/>
+      <xsl:with-param name="spans" select="$spans"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="rowsep">
+    <xsl:choose>
+      <!-- If this is the last row, rowsep never applies. -->
+      <xsl:when test="ancestor::entrytbl
+                      and not (ancestor-or-self::row[1]/following-sibling::row)
+                      and not (ancestor::thead)">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <xsl:when test="not(ancestor-or-self::row[1]/following-sibling::row
+                          or ancestor-or-self::thead/following-sibling::tbody
+                          or ancestor-or-self::tbody/preceding-sibling::tfoot)">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <xsl:when test="@morerows and not(@morerows &lt; 
+                 count(ancestor-or-self::row[1]/following-sibling::row))">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="."/>
+          <xsl:with-param name="colnum" select="$entry.colnum"/>
+          <xsl:with-param name="attribute" select="'rowsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="colsep">
+    <xsl:choose>
+      <!-- If this is the last column, colsep never applies. -->
+      <xsl:when test="$following.spans = ''">0</xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="."/>
+          <xsl:with-param name="colnum" select="$entry.colnum"/>
+          <xsl:with-param name="attribute" select="'colsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="valign">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'valign'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="align">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'align'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="char">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'char'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="charoff">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'charoff'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$spans != '' and not(starts-with($spans,'0:'))">
+      <xsl:call-template name="entry">
+        <xsl:with-param name="col" select="$col+1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="number($entry.colnum) &gt; $col">
+      <xsl:call-template name="empty.table.cell"/>
+      <xsl:call-template name="entry">
+        <xsl:with-param name="col" select="$col+1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:variable name="bgcolor">
+        <xsl:if test="processing-instruction('dbhtml')">
+          <xsl:call-template name="pi.dbhtml_bgcolor"/>
+        </xsl:if>
+      </xsl:variable>
+
+      <xsl:element name="{$cellgi}">
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="$bgcolor != ''">
+          <xsl:attribute name="bgcolor">
+            <xsl:value-of select="$bgcolor"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:call-template name="locale.html.attributes"/>
+        <xsl:choose>
+          <xsl:when test="$entry.propagates.style != 0 and @role">
+            <xsl:apply-templates select="." mode="class.attribute">
+              <xsl:with-param name="class" select="@role"/>
+            </xsl:apply-templates>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="." mode="class.attribute">
+              <xsl:with-param name="class" select="''"/>
+            </xsl:apply-templates>
+          </xsl:otherwise>
+        </xsl:choose>
+
+        <xsl:if test="$show.revisionflag and @revisionflag">
+          <xsl:attribute name="class">
+            <xsl:value-of select="@revisionflag"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$table.borders.with.css != 0">
+          <xsl:attribute name="style">
+            <xsl:if test="$colsep &gt; 0">
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'right'"/>
+              </xsl:call-template>
+            </xsl:if>
+            <xsl:if test="$rowsep &gt; 0">
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'bottom'"/>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="@morerows &gt; 0">
+          <xsl:attribute name="rowspan">
+            <xsl:value-of select="1+@morerows"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$entry.colspan &gt; 1">
+          <xsl:attribute name="colspan">
+            <xsl:value-of select="$entry.colspan"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$align != ''">
+          <xsl:attribute name="align">
+            <xsl:value-of select="$align"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$valign != ''">
+          <xsl:attribute name="valign">
+            <xsl:value-of select="$valign"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$char != ''">
+          <xsl:attribute name="char">
+            <xsl:value-of select="$char"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$charoff != ''">
+          <xsl:attribute name="charoff">
+            <xsl:value-of select="$charoff"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="not(preceding-sibling::*) and 
+                    (ancestor::row[1]/@id or ancestor::row[1]/@xml:id)">
+          <xsl:call-template name="anchor">
+            <xsl:with-param name="node" select="ancestor::row[1]"/>
+          </xsl:call-template>
+        </xsl:if>
+
+        <xsl:call-template name="anchor"/>
+
+        <xsl:choose>
+          <xsl:when test="$empty.cell">
+            <xsl:text>&#160;</xsl:text>
+          </xsl:when>
+          <xsl:when test="self::entrytbl">
+            <xsl:call-template name="tgroup"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:element>
+
+      <xsl:choose>
+        <xsl:when test="following-sibling::entry|following-sibling::entrytbl">
+          <xsl:apply-templates select="(following-sibling::entry
+                                       |following-sibling::entrytbl)[1]">
+            <xsl:with-param name="col" select="$col+$entry.colspan"/>
+            <xsl:with-param name="spans" select="$following.spans"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="finaltd">
+            <xsl:with-param name="spans" select="$following.spans"/>
+            <xsl:with-param name="col" select="$col+$entry.colspan"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="entry|entrytbl" name="sentry" mode="span">
+  <xsl:param name="col" select="1"/>
+  <xsl:param name="spans"/>
+
+  <xsl:variable name="entry.colnum">
+    <xsl:call-template name="entry.colnum"/>
+  </xsl:variable>
+
+  <xsl:variable name="entry.colspan">
+    <xsl:choose>
+      <xsl:when test="@spanname or @namest">
+        <xsl:call-template name="calculate.colspan"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="following.spans">
+    <xsl:call-template name="calculate.following.spans">
+      <xsl:with-param name="colspan" select="$entry.colspan"/>
+      <xsl:with-param name="spans" select="$spans"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$spans != '' and not(starts-with($spans,'0:'))">
+      <xsl:value-of select="substring-before($spans,':')-1"/>
+      <xsl:text>:</xsl:text>
+      <xsl:call-template name="sentry">
+        <xsl:with-param name="col" select="$col+1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="number($entry.colnum) &gt; $col">
+      <xsl:text>0:</xsl:text>
+      <xsl:call-template name="sentry">
+        <xsl:with-param name="col" select="$col + 1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="copy-string">
+        <xsl:with-param name="count" select="$entry.colspan"/>
+        <xsl:with-param name="string">
+          <xsl:choose>
+            <xsl:when test="@morerows">
+              <xsl:value-of select="@morerows"/>
+            </xsl:when>
+            <xsl:otherwise>0</xsl:otherwise>
+          </xsl:choose>
+          <xsl:text>:</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+
+      <xsl:choose>
+        <xsl:when test="following-sibling::entry|following-sibling::entrytbl">
+          <xsl:apply-templates select="(following-sibling::entry
+                                        |following-sibling::entrytbl)[1]"
+                               mode="span">
+            <xsl:with-param name="col" select="$col+$entry.colspan"/>
+            <xsl:with-param name="spans" select="$following.spans"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="sfinaltd">
+            <xsl:with-param name="spans" select="$following.spans"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.colgroup">
+  <xsl:param name="cols" select="1"/>
+  <xsl:param name="count" select="1"/>
+  <xsl:choose>
+    <xsl:when test="$count &gt; $cols"></xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="generate.col">
+        <xsl:with-param name="countcol" select="$count"/>
+      </xsl:call-template>
+      <xsl:call-template name="generate.colgroup">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.col">
+  <xsl:param name="countcol">1</xsl:param>
+  <xsl:param name="colspecs" select="./colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:param name="colnum">1</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($colspecs)">
+      <col/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+      <xsl:variable name="colspec.colnum">
+        <xsl:choose>
+          <xsl:when test="$colspec/@colnum">
+            <xsl:value-of select="$colspec/@colnum"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$colnum"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$colspec.colnum=$countcol">
+          <col>
+            <xsl:choose>
+              <xsl:when test="$colspec/@colwidth
+                            and $use.extensions != 0
+                            and $tablecolumns.extension != 0">
+                <xsl:attribute name="width">
+                  <xsl:choose>
+                    <xsl:when test="normalize-space($colspec/@colwidth) = '*'">
+                      <xsl:value-of select="'1*'"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:value-of select="$colspec/@colwidth"/>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </xsl:attribute>
+              </xsl:when>
+              <!-- pass through to HTML if no * in colspecs -->
+              <xsl:when test="$colspec/@colwidth and
+                             not($colspec/parent::*/colspec/@colwidth[contains(.,'*')])">
+                <xsl:attribute name="width">
+                  <xsl:choose>
+                    <xsl:when test="normalize-space($colspec/@colwidth) = '*'">
+                      <xsl:value-of select="'1*'"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:value-of select="$colspec/@colwidth"/>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </xsl:attribute>
+              </xsl:when>
+            </xsl:choose>
+
+            <xsl:choose>
+              <xsl:when test="$colspec/@align">
+                <xsl:attribute name="align">
+                  <xsl:value-of select="$colspec/@align"/>
+                </xsl:attribute>
+              </xsl:when>
+              <!-- Suggested by Pavel ZAMPACH <zampach@nemcb.cz> -->
+              <xsl:when test="$colspecs/ancestor::tgroup/@align">
+                <xsl:attribute name="align">
+                  <xsl:value-of select="$colspecs/ancestor::tgroup/@align"/>
+                </xsl:attribute>
+              </xsl:when>
+            </xsl:choose>
+
+            <xsl:if test="$colspec/@char">
+              <xsl:attribute name="char">
+                <xsl:value-of select="$colspec/@char"/>
+              </xsl:attribute>
+            </xsl:if>
+            
+            <xsl:if test="$colspec/@charoff">
+              <xsl:attribute name="charoff">
+                <xsl:value-of select="$colspec/@charoff"/>
+              </xsl:attribute>
+            </xsl:if>
+
+            <xsl:if test="$colspec/@colname">
+              <xsl:attribute name="class">
+                <xsl:value-of select="$colspec/@colname"/>
+              </xsl:attribute>
+            </xsl:if>
+          </col>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="generate.col">
+            <xsl:with-param name="countcol" select="$countcol"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="colnum">
+              <xsl:choose>
+                <xsl:when test="$colspec/@colnum">
+                  <xsl:value-of select="$colspec/@colnum + 1"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="$colnum + 1"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+           </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="colspec.colwidth">
+  <!-- when this macro is called, the current context must be an entry -->
+  <xsl:param name="colname"></xsl:param>
+  <!-- .. = row, ../.. = thead|tbody, ../../.. = tgroup -->
+  <xsl:param name="colspecs" select="../../../../tgroup/colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:choose>
+    <xsl:when test="$count>count($colspecs)"></xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+      <xsl:choose>
+        <xsl:when test="$colspec/@colname=$colname">
+          <xsl:value-of select="$colspec/@colwidth"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="colspec.colwidth">
+            <xsl:with-param name="colname" select="$colname"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="tr.attributes">
+  <xsl:param name="row" select="."/>
+  <xsl:param name="rownum" select="0"/>
+
+  <!-- by default, do nothing. But you might want to say:
+
+  <xsl:if test="$rownum mod 2 = 0">
+    <xsl:attribute name="class">oddrow</xsl:attribute>
+  </xsl:if>
+
+  -->
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/html/task.xsl b/applications/content/template/docbook/html/task.xsl
new file mode 100644
index 0000000..7e9bd78
--- /dev/null
+++ b/applications/content/template/docbook/html/task.xsl
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="task">
+  <xsl:variable name="param.placement"
+                select="substring-after(normalize-space($formal.title.placement),
+                                        concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="preamble"
+                select="*[not(self::title
+                              or self::titleabbrev)]"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:if test="(title or info/title) and $placement = 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="$preamble"/>
+
+    <xsl:if test="(title or info/title) and $placement != 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="task/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="tasksummary">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="tasksummary/title"/>
+
+<xsl:template match="taskprerequisites">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="taskprerequisites/title"/>
+
+<xsl:template match="taskrelated">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="taskrelated/title"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/titlepage.templates.xml b/applications/content/template/docbook/html/titlepage.templates.xml
new file mode 100644
index 0000000..ce6166f
--- /dev/null
+++ b/applications/content/template/docbook/html/titlepage.templates.xml
@@ -0,0 +1,738 @@
+<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
+             xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
+             xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="article" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="set" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="book" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="part" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="division.title"
+           param:node="ancestor-or-self::part[1]"/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </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:titlepage t:element="partintro" t:wrapper="div">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </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:titlepage t:element="reference" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="refentry" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+<!-- uncomment this if you want refentry titlepages
+    <title t:force="1"
+           t:named-template="refentry.title"
+           param:node="ancestor-or-self::refentry[1]"/>
+-->
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator/>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+  <t:titlepage t:element="dedication" t:wrapper="div" class="titlepage">
+    <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::dedication[1]"/>
+    <subtitle/>
+    </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:titlepage t:element="acknowledgements" t:wrapper="div" class="titlepage">
+    <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::acknowledgements[1]"/>
+    <subtitle/>
+    </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:titlepage t:element="preface" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </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:titlepage t:element="chapter" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </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:titlepage t:element="topic" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </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:titlepage t:element="appendix" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </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:titlepage t:element="section" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect1" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect2" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect3" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect4" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect5" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="simplesect" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="bibliography" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::bibliography[1]"/>
+    <subtitle/>
+  </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:titlepage t:element="glossary" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::glossary[1]"/>
+    <subtitle/>
+  </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:titlepage t:element="index" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::index[1]"/>
+    <subtitle/>
+  </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:titlepage t:element="setindex" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::setindex[1]"/>
+    <subtitle/>
+  </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:titlepage t:element="sidebar" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:named-template="formal.object.heading"
+           param:object="ancestor-or-self::sidebar[1]"/>
+    <subtitle/>
+  </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/applications/content/template/docbook/html/titlepage.templates.xsl b/applications/content/template/docbook/html/titlepage.templates.xsl
new file mode 100644
index 0000000..6180573
--- /dev/null
+++ b/applications/content/template/docbook/html/titlepage.templates.xsl
@@ -0,0 +1,4004 @@
+<?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="article.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="articleinfo/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/title"/>
+    </xsl:when>
+    <xsl:when test="artheader/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="articleinfo/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="artheader/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/abstract"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/abstract"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="article.titlepage.before.recto"/>
+      <xsl:call-template name="article.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="article.titlepage.before.verso"/>
+      <xsl:call-template name="article.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="article.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="article.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="article.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="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="set.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="setinfo/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="setinfo/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/othercredit"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/abstract"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="set.titlepage.before.recto"/>
+      <xsl:call-template name="set.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="set.titlepage.before.verso"/>
+      <xsl:call-template name="set.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="set.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="set.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="set.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="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="book.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="bookinfo/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="bookinfo/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/othercredit"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/legalnotice"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revision"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revhistory"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/abstract"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="book.titlepage.before.recto"/>
+      <xsl:call-template name="book.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="book.titlepage.before.verso"/>
+      <xsl:call-template name="book.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="book.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="book.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="book.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="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="part.titlepage.recto">
+  <div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::part[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="partinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/abstract"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="part.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="part.titlepage.before.recto"/>
+      <xsl:call-template name="part.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="part.titlepage.before.verso"/>
+      <xsl:call-template name="part.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="part.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="part.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="part.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="subtitle" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="partintroinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="partintroinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/abstract"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage">
+  <div>
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="partintro.titlepage.before.recto"/>
+      <xsl:call-template name="partintro.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="partintro.titlepage.before.verso"/>
+      <xsl:call-template name="partintro.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="partintro.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.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="partintro.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="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="referenceinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="referenceinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/abstract"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="reference.titlepage.before.recto"/>
+      <xsl:call-template name="reference.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="reference.titlepage.before.verso"/>
+      <xsl:call-template name="reference.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="reference.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.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="reference.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="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.recto">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="refentry.titlepage.before.recto"/>
+      <xsl:call-template name="refentry.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="refentry.titlepage.before.verso"/>
+      <xsl:call-template name="refentry.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="refentry.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="refentry.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="refentry.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 name="dedication.titlepage.recto">
+  <div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="dedicationinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="dedicationinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="dedication.titlepage.before.recto"/>
+      <xsl:call-template name="dedication.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="dedication.titlepage.before.verso"/>
+      <xsl:call-template name="dedication.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="dedication.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.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="dedication.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="subtitle" mode="dedication.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.recto">
+  <div xsl:use-attribute-sets="acknowledgements.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::acknowledgements[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="acknowledgementsinfo/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="acknowledgementsinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="acknowledgements.titlepage.before.recto"/>
+      <xsl:call-template name="acknowledgements.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="acknowledgements.titlepage.before.verso"/>
+      <xsl:call-template name="acknowledgements.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="acknowledgements.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="acknowledgements.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="acknowledgements.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="subtitle" mode="acknowledgements.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="acknowledgements.titlepage.recto.style">
+<xsl:apply-templates select="." mode="acknowledgements.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/abstract"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="preface.titlepage.before.recto"/>
+      <xsl:call-template name="preface.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="preface.titlepage.before.verso"/>
+      <xsl:call-template name="preface.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="preface.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.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="preface.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="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="chapterinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="chapterinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/abstract"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="chapter.titlepage.before.recto"/>
+      <xsl:call-template name="chapter.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="chapter.titlepage.before.verso"/>
+      <xsl:call-template name="chapter.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="chapter.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.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="chapter.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="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="topic.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="topicinfo/title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="topicinfo/subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/corpauthor"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/authorgroup"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/author"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/othercredit"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/releaseinfo"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/copyright"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/legalnotice"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/pubdate"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/revision"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/revhistory"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/abstract"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="topic.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="topic.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="topic.titlepage.before.recto"/>
+      <xsl:call-template name="topic.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="topic.titlepage.before.verso"/>
+      <xsl:call-template name="topic.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="topic.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="topic.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="topic.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="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="appendixinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="appendixinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/abstract"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="appendix.titlepage.before.recto"/>
+      <xsl:call-template name="appendix.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="appendix.titlepage.before.verso"/>
+      <xsl:call-template name="appendix.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="appendix.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.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="appendix.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="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="section.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sectioninfo/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sectioninfo/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/othercredit"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/abstract"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="section.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="section.titlepage.before.recto"/>
+      <xsl:call-template name="section.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="section.titlepage.before.verso"/>
+      <xsl:call-template name="section.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="section.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="section.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="section.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="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect1info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect1info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/othercredit"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/abstract"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect1.titlepage.before.recto"/>
+      <xsl:call-template name="sect1.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect1.titlepage.before.verso"/>
+      <xsl:call-template name="sect1.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect1.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.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="sect1.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="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect2info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect2info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/othercredit"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/abstract"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect2.titlepage.before.recto"/>
+      <xsl:call-template name="sect2.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect2.titlepage.before.verso"/>
+      <xsl:call-template name="sect2.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect2.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.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="sect2.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="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect3info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect3info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/othercredit"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/abstract"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect3.titlepage.before.recto"/>
+      <xsl:call-template name="sect3.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect3.titlepage.before.verso"/>
+      <xsl:call-template name="sect3.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect3.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.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="sect3.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="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect4info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect4info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/othercredit"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/abstract"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect4.titlepage.before.recto"/>
+      <xsl:call-template name="sect4.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect4.titlepage.before.verso"/>
+      <xsl:call-template name="sect4.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect4.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.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="sect4.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="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect5info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect5info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/othercredit"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/abstract"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect5.titlepage.before.recto"/>
+      <xsl:call-template name="sect5.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect5.titlepage.before.verso"/>
+      <xsl:call-template name="sect5.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect5.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.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="sect5.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="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/abstract"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="simplesect.titlepage.before.recto"/>
+      <xsl:call-template name="simplesect.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="simplesect.titlepage.before.verso"/>
+      <xsl:call-template name="simplesect.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="simplesect.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.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="simplesect.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="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.recto">
+  <div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::bibliography[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="bibliographyinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="bibliographyinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="bibliography.titlepage.before.recto"/>
+      <xsl:call-template name="bibliography.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="bibliography.titlepage.before.verso"/>
+      <xsl:call-template name="bibliography.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="bibliography.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="bibliography.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="bibliography.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="subtitle" mode="bibliography.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:apply-templates select="." mode="bibliography.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.recto">
+  <div xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::glossary[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="glossaryinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="glossaryinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="glossary.titlepage.before.recto"/>
+      <xsl:call-template name="glossary.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="glossary.titlepage.before.verso"/>
+      <xsl:call-template name="glossary.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="glossary.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="glossary.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="glossary.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="subtitle" mode="glossary.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:apply-templates select="." mode="glossary.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="index.titlepage.recto">
+  <div xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::index[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="indexinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="indexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="index.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="index.titlepage.before.recto"/>
+      <xsl:call-template name="index.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="index.titlepage.before.verso"/>
+      <xsl:call-template name="index.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="index.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="index.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="index.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="subtitle" mode="index.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:apply-templates select="." mode="index.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.recto">
+  <div xsl:use-attribute-sets="setindex.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::setindex[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="setindexinfo/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="setindexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="setindex.titlepage.before.recto"/>
+      <xsl:call-template name="setindex.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="setindex.titlepage.before.verso"/>
+      <xsl:call-template name="setindex.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="setindex.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="setindex.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="setindex.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="subtitle" mode="setindex.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="setindex.titlepage.recto.style">
+<xsl:apply-templates select="." mode="setindex.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sidebarinfo/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sidebarinfo/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sidebar.titlepage.before.recto"/>
+      <xsl:call-template name="sidebar.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sidebar.titlepage.before.verso"/>
+      <xsl:call-template name="sidebar.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sidebar.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sidebar.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="sidebar.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="sidebar.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sidebar.titlepage.recto.style">
+<xsl:call-template name="formal.object.heading">
+<xsl:with-param name="object" select="ancestor-or-self::sidebar[1]"/>
+</xsl:call-template>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sidebar.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sidebar.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sidebar.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/html/titlepage.xsl b/applications/content/template/docbook/html/titlepage.xsl
new file mode 100644
index 0000000..4107e80
--- /dev/null
+++ b/applications/content/template/docbook/html/titlepage.xsl
@@ -0,0 +1,1123 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:attribute-set name="book.titlepage.recto.style"/>
+<xsl:attribute-set name="book.titlepage.verso.style"/>
+
+<xsl:attribute-set name="article.titlepage.recto.style"/>
+<xsl:attribute-set name="article.titlepage.verso.style"/>
+
+<xsl:attribute-set name="set.titlepage.recto.style"/>
+<xsl:attribute-set name="set.titlepage.verso.style"/>
+
+<xsl:attribute-set name="part.titlepage.recto.style"/>
+<xsl:attribute-set name="part.titlepage.verso.style"/>
+
+<xsl:attribute-set name="partintro.titlepage.recto.style"/>
+<xsl:attribute-set name="partintro.titlepage.verso.style"/>
+
+<xsl:attribute-set name="reference.titlepage.recto.style"/>
+<xsl:attribute-set name="reference.titlepage.verso.style"/>
+
+<xsl:attribute-set name="refentry.titlepage.recto.style"/>
+<xsl:attribute-set name="refentry.titlepage.verso.style"/>
+
+<xsl:attribute-set name="dedication.titlepage.recto.style"/>
+<xsl:attribute-set name="dedication.titlepage.verso.style"/>
+
+<xsl:attribute-set name="acknowledgements.titlepage.recto.style"/>
+<xsl:attribute-set name="acknowledgements.titlepage.verso.style"/>
+
+<xsl:attribute-set name="preface.titlepage.recto.style"/>
+<xsl:attribute-set name="preface.titlepage.verso.style"/>
+
+<xsl:attribute-set name="chapter.titlepage.recto.style"/>
+<xsl:attribute-set name="chapter.titlepage.verso.style"/>
+
+<xsl:attribute-set name="appendix.titlepage.recto.style"/>
+<xsl:attribute-set name="appendix.titlepage.verso.style"/>
+
+<xsl:attribute-set name="bibliography.titlepage.recto.style"/>
+<xsl:attribute-set name="bibliography.titlepage.verso.style"/>
+
+<xsl:attribute-set name="glossary.titlepage.recto.style"/>
+<xsl:attribute-set name="glossary.titlepage.verso.style"/>
+
+<xsl:attribute-set name="index.titlepage.recto.style"/>
+<xsl:attribute-set name="index.titlepage.verso.style"/>
+
+<xsl:attribute-set name="setindex.titlepage.recto.style"/>
+<xsl:attribute-set name="setindex.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sidebar.titlepage.recto.style"/>
+<xsl:attribute-set name="sidebar.titlepage.verso.style"/>
+
+<xsl:attribute-set name="topic.titlepage.recto.style"/>
+<xsl:attribute-set name="topic.titlepage.verso.style"/>
+
+<xsl:attribute-set name="section.titlepage.recto.style"/>
+<xsl:attribute-set name="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect1.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect1.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect2.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect2.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect3.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect3.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect4.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect4.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect5.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect5.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="simplesect.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="simplesect.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/>
+<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="titlepage.mode">
+  <!-- if an element isn't found in this mode, try the default mode -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="abbrev" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="abstract" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="$abstract.notitle.enabled = 0">
+      <xsl:call-template name="formal.object.heading">
+        <xsl:with-param name="title">
+          <xsl:apply-templates select="." mode="title.markup"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="abstract/title" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="address" mode="titlepage.mode">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'
+                    and @linenumbering = 'numbered'
+                    and $use.extensions != '0'
+                    and $linenumbering.extension != '0'">
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="paragraph">
+          <xsl:with-param name="content">
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf"/>
+            </xsl:call-template>
+          </xsl:with-param>
+        </xsl:call-template>
+      </div>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="paragraph">
+          <xsl:with-param name="content">
+            <xsl:call-template name="make-verbatim">
+              <xsl:with-param name="rtf" select="$rtf"/>
+            </xsl:call-template>
+          </xsl:with-param>
+        </xsl:call-template>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author|editor" mode="titlepage.mode">
+  <xsl:call-template name="credits.div"/>
+</xsl:template>
+
+<xsl:template name="credits.div">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="self::editor[position()=1] and not($editedby.enabled = 0)">
+      <h4 class="editedby"><xsl:call-template name="gentext.edited.by"/></h4>
+    </xsl:if>
+    <h3>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:choose>
+        <xsl:when test="orgname">
+          <xsl:apply-templates/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="person.name"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </h3>
+    <xsl:if test="not($contrib.inline.enabled = 0)">
+      <xsl:apply-templates mode="titlepage.mode" select="contrib"/>
+    </xsl:if>
+    <xsl:apply-templates mode="titlepage.mode" select="affiliation"/>
+    <xsl:apply-templates mode="titlepage.mode" select="email"/>
+    <xsl:if test="not($blurb.on.titlepage.enabled = 0)">
+      <xsl:choose>
+        <xsl:when test="$contrib.inline.enabled = 0">
+          <xsl:apply-templates mode="titlepage.mode"
+                               select="contrib|authorblurb|personblurb"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="titlepage.mode"
+                               select="authorblurb|personblurb"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::refentryinfo">
+      <h2>Authors</h2>
+    </xsl:if>
+      
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="collab" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="collabname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="confdates" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confsponsor" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confnum" mode="titlepage.mode">
+  <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="contractnum" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="titlepage.mode">
+  <xsl:choose>
+    <xsl:when test="not($contrib.inline.enabled = 0)">
+      <span>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:apply-templates mode="titlepage.mode"/>
+      </span><xsl:text>&#160;</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <p><xsl:apply-templates mode="titlepage.mode"/></p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="copyright" mode="titlepage.mode">
+
+  <xsl:if test="generate-id() = generate-id(//refentryinfo/copyright[1])
+      and ($stylesheet.result.type = 'html' or $stylesheet.result.type = 'xhtml')">
+    <h2>Copyright</h2>
+  </xsl:if>
+
+  <p>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <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"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="year" mode="titlepage.mode">
+  <xsl:choose>
+    <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+      <span class="{@revisionflag}">
+        <xsl:apply-templates mode="titlepage.mode"/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="holder" mode="titlepage.mode">
+  <xsl:choose>
+    <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+      <span class="{@revisionflag}">
+        <xsl:apply-templates mode="titlepage.mode"/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="position() &lt; last()">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="titlepage.mode">
+  <h3>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </h3>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="titlepage.mode">
+  <p>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'Edition'"/>
+    </xsl:call-template>
+  </p>
+</xsl:template>
+
+<xsl:template match="email" mode="titlepage.mode">
+  <!-- use the normal e-mail handling code -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="firstname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="graphic" mode="titlepage.mode">
+  <!-- use the normal graphic handling code -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="honorific" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="biblioid" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="itermset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="keywordset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="titlepage.mode">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$generate.legalnotice.link != 0">
+      
+      <!-- Compute name of legalnotice file -->
+      <xsl:variable name="file">
+	<xsl:call-template name="ln.or.rh.filename"/>
+      </xsl:variable>
+
+      <xsl:variable name="filename">
+        <xsl:call-template name="make-relative-filename">
+          <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+	  <xsl:with-param name="base.name" select="$file"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="title">
+        <xsl:apply-templates select="." mode="title.markup"/>
+      </xsl:variable>
+
+      <a href="{$file}">
+        <xsl:copy-of select="$title"/>
+      </a>
+
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="$filename"/>
+        <xsl:with-param name="quiet" select="$chunk.quietly"/>
+        <xsl:with-param name="content">
+        <xsl:call-template name="user.preroot"/>
+          <html>
+            <head>
+              <xsl:call-template name="system.head.content"/>
+              <xsl:call-template name="head.content"/>
+              <xsl:call-template name="user.head.content"/>
+            </head>
+            <body>
+              <xsl:call-template name="body.attributes"/>
+              <div>
+                <xsl:apply-templates select="." mode="common.html.attributes"/>
+                <xsl:call-template name="id.attribute">
+                  <xsl:with-param name="conditional" select="0"/>
+                </xsl:call-template>
+                <xsl:apply-templates mode="titlepage.mode"/>
+              </div>
+            </body>
+          </html>
+          <xsl:value-of select="$chunk.append"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <xsl:apply-templates mode="titlepage.mode"/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="legalnotice/title" mode="titlepage.mode">
+  <p class="legalnotice-title"><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="lineage" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modespec" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="titlepage.mode">
+  <xsl:if test="preceding-sibling::*[1][self::orgname]">
+    <xsl:text> </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.mode">
+<xsl:choose>
+  <xsl:when test="not($othercredit.like.author.enabled = 0)">
+  <xsl:variable name="contrib" select="string(contrib)"/>
+  <xsl:choose>
+    <xsl:when test="contrib">
+      <xsl:if test="not(preceding-sibling::othercredit[string(contrib)=$contrib])">
+        <xsl:call-template name="paragraph">
+          <xsl:with-param name="class" select="local-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:apply-templates select="following-sibling::othercredit[string(contrib)=$contrib]" mode="titlepage.othercredits"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="paragraph">
+        <xsl:with-param name="class" select="local-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:when>
+  <xsl:otherwise>
+    <xsl:call-template name="credits.div"/>
+  </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.othercredits">
+  <xsl:text>, </xsl:text>
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="othername" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="productname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="titlepage.mode">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class" select="local-name(.)"/>
+    <xsl:with-param name="content">
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="publisher" mode="titlepage.mode">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class" select="local-name(.)"/>
+    <xsl:with-param name="content">
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="publishername" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="titlepage.mode">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class" select="local-name(.)"/>
+    <xsl:with-param name="content">
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="titlepage.mode">
+  <xsl:variable name="numcols">
+    <xsl:choose>
+      <xsl:when test=".//authorinitials|.//author">3</xsl:when>
+      <xsl:otherwise>2</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:variable name="title">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key">RevHistory</xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="contents">
+    <div>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:call-template name="id.attribute"/>
+      <table>
+        <xsl:if test="$css.decoration != 0">
+          <xsl:attribute name="style">
+            <xsl:text>border-style:solid; width:100%;</xsl:text>
+          </xsl:attribute>
+        </xsl:if>
+        <!-- include summary attribute if not HTML5 -->
+        <xsl:if test="$div.element != 'section'">
+          <xsl:attribute name="summary">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key">revhistory</xsl:with-param>
+            </xsl:call-template>
+          </xsl:attribute>
+        </xsl:if>
+        <tr>
+          <th align="{$direction.align.start}" valign="top" colspan="{$numcols}">
+            <b>
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key" select="'RevHistory'"/>
+              </xsl:call-template>
+            </b>
+          </th>
+        </tr>
+        <xsl:apply-templates mode="titlepage.mode">
+          <xsl:with-param name="numcols" select="$numcols"/>
+        </xsl:apply-templates>
+      </table>
+    </div>
+  </xsl:variable>
+  
+  <xsl:choose>
+    <xsl:when test="$generate.revhistory.link != 0">
+      
+      <!-- Compute name of revhistory file -->
+      <xsl:variable name="file">
+	<xsl:call-template name="ln.or.rh.filename">
+	  <xsl:with-param name="is.ln" select="false()"/>
+	</xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="filename">
+        <xsl:call-template name="make-relative-filename">
+          <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+          <xsl:with-param name="base.name" select="$file"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <a href="{$file}">
+        <xsl:copy-of select="$title"/>
+      </a>
+
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="$filename"/>
+        <xsl:with-param name="quiet" select="$chunk.quietly"/>
+        <xsl:with-param name="content">
+        <xsl:call-template name="user.preroot"/>
+          <html>
+            <head>
+              <xsl:call-template name="system.head.content"/>
+              <xsl:call-template name="head.content">
+                <xsl:with-param name="title">
+                    <xsl:value-of select="$title"/>
+                    <xsl:if test="../../title">
+                        <xsl:value-of select="concat(' (', ../../title, ')')"/>
+                    </xsl:if>
+                </xsl:with-param>
+              </xsl:call-template>
+              <xsl:call-template name="user.head.content"/>
+            </head>
+            <body>
+              <xsl:call-template name="body.attributes"/>
+              <xsl:copy-of select="$contents"/>
+            </body>
+          </html>
+          <xsl:text>&#x0a;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$contents"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="revhistory/revision" mode="titlepage.mode">
+  <xsl:param name="numcols" select="'3'"/>
+  <xsl:variable name="revnumber" select="revnumber"/>
+  <xsl:variable name="revdate"   select="date"/>
+  <xsl:variable name="revauthor" select="authorinitials|author"/>
+  <xsl:variable name="revremark" select="revremark|revdescription"/>
+  <tr>
+    <td align="{$direction.align.start}">
+      <xsl:if test="$revnumber">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'Revision'"/>
+        </xsl:call-template>
+        <xsl:call-template name="gentext.space"/>
+        <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/>
+      </xsl:if>
+    </td>
+    <td align="{$direction.align.start}">
+      <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/>
+    </td>
+    <xsl:choose>
+      <xsl:when test="$revauthor">
+        <td align="{$direction.align.start}">
+          <xsl:for-each select="$revauthor">
+            <xsl:apply-templates select="." mode="titlepage.mode"/>
+            <xsl:if test="position() != last()">
+	      <xsl:text>, </xsl:text>
+	    </xsl:if>
+	  </xsl:for-each>
+        </td>
+      </xsl:when>
+      <xsl:when test="$numcols &gt; 2">
+        <td>&#160;</td>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </tr>
+  <xsl:if test="$revremark">
+    <tr>
+      <td align="{$direction.align.start}" colspan="{$numcols}">
+        <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/>
+      </td>
+    </tr>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/date" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/author" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revremark" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subjectset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="subtitle" mode="titlepage.mode">
+  <h2>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="surname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="titlepage.mode">
+  <xsl:variable name="id">
+    <xsl:choose>
+      <!-- if title is in an *info wrapper, get the grandparent -->
+      <xsl:when test="contains(local-name(..), 'info')">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="../.."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <h1>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:choose>
+      <xsl:when test="$generate.id.attributes = 0">
+        <a name="{$id}"/>
+      </xsl:when>
+      <xsl:otherwise>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:choose>
+      <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+	<span class="{@revisionflag}">
+	  <xsl:apply-templates mode="titlepage.mode"/>
+	</span>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:apply-templates mode="titlepage.mode"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </h1>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="titlepage.mode">
+  <!-- nop; title abbreviations don't belong on the title page! -->
+</xsl:template>
+
+<xsl:template match="volumenum" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<!-- This template computes the filename for legalnotice and revhistory chunks -->
+<xsl:template name="ln.or.rh.filename">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="is.ln" select="true()"/>
+
+  <xsl:variable name="dbhtml-filename">
+    <xsl:call-template name="pi.dbhtml_filename">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+ 
+  <xsl:choose>
+    <!--  1. If there is a dbhtml_filename PI, use that -->
+    <xsl:when test="$dbhtml-filename != ''">
+      <xsl:value-of select="$dbhtml-filename"/>
+    </xsl:when>
+    <xsl:when test="($node/@id or $node/@xml:id) and not($use.id.as.filename = 0)">
+      <!-- * 2. If this legalnotice/revhistory has an ID, then go ahead and use -->
+      <!-- * just the value of that ID as the basename for the file -->
+      <!-- * (that is, without prepending an "ln-" or "rh-" to it) -->
+      <xsl:value-of select="($node/@id|$node/@xml:id)[1]"/>
+      <xsl:value-of select="$html.ext"/>
+    </xsl:when>
+    <xsl:when test="not ($node/@id or $node/@xml:id) or $use.id.as.filename = 0">
+      <!-- * 3. Otherwise, if this legalnotice/revhistory does not have an ID, or -->
+      <!-- * if $use.id.as.filename = 0 -->
+      <!-- * then we generate an ID... -->
+      <xsl:variable name="id">
+	<xsl:value-of select="generate-id($node)"/>
+      </xsl:variable>
+      <!-- * ...and then we take that generated ID, prepend a -->
+      <!-- * prefix to it, and use that as the basename for the file -->
+      <xsl:choose>
+	<xsl:when test="$is.ln">
+	  <xsl:value-of select="concat('ln-',$id,$html.ext)"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:value-of select="concat('rh-',$id,$html.ext)"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+    
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/toc.xsl b/applications/content/template/docbook/html/toc.xsl
new file mode 100644
index 0000000..41d9733
--- /dev/null
+++ b/applications/content/template/docbook/html/toc.xsl
@@ -0,0 +1,352 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set/toc | book/toc | part/toc">
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="parent::*"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Do not output the toc element if one is already generated
+       by the use of $generate.toc parameter, or if
+       generating a source toc is turned off -->
+  <xsl:if test="not(contains($toc.params, 'toc')) and
+                ($process.source.toc != 0 or $process.empty.source.toc != 0)">
+    <xsl:variable name="content">
+      <xsl:choose>
+        <xsl:when test="* and $process.source.toc != 0">
+          <xsl:apply-templates />
+        </xsl:when>
+        <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
+          <!-- trick to switch context node to parent element -->
+          <xsl:for-each select="parent::*">
+            <xsl:choose>
+              <xsl:when test="self::set">
+                <xsl:call-template name="set.toc">
+                  <xsl:with-param name="toc.title.p" 
+                                  select="contains($toc.params, 'title')"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="self::book">
+                <xsl:call-template name="division.toc">
+                  <xsl:with-param name="toc.title.p" 
+                                  select="contains($toc.params, 'title')"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="self::part">
+                <xsl:call-template name="division.toc">
+                  <xsl:with-param name="toc.title.p" 
+                                  select="contains($toc.params, 'title')"/>
+                </xsl:call-template>
+              </xsl:when>
+            </xsl:choose>
+          </xsl:for-each>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:if test="string-length(normalize-space($content)) != 0">
+      <xsl:copy-of select="$content"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+  
+<xsl:template match="chapter/toc | appendix/toc | preface/toc | article/toc">
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="parent::*"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Do not output the toc element if one is already generated
+       by the use of $generate.toc parameter, or if
+       generating a source toc is turned off -->
+  <xsl:if test="not(contains($toc.params, 'toc')) and
+                ($process.source.toc != 0 or $process.empty.source.toc != 0)">
+    <xsl:choose>
+      <xsl:when test="* and $process.source.toc != 0">
+        <div>
+          <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:call-template name="id.attribute"/>
+          <xsl:apply-templates select="title"/> 
+          <dl>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:apply-templates select="*[not(self::title)]"/> 
+          </dl>
+        </div>
+        <xsl:call-template name="component.toc.separator"/>
+      </xsl:when>
+      <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
+        <!-- trick to switch context node to section element -->
+        <xsl:for-each select="parent::*">
+          <xsl:call-template name="component.toc">
+            <xsl:with-param name="toc.title.p" 
+                            select="contains($toc.params, 'title')"/>
+          </xsl:call-template>
+        </xsl:for-each>
+        <xsl:call-template name="component.toc.separator"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="section/toc
+                    |sect1/toc
+                    |sect2/toc
+                    |sect3/toc
+                    |sect4/toc
+                    |sect5/toc">
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="parent::*"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Do not output the toc element if one is already generated
+       by the use of $generate.toc parameter, or if
+       generating a source toc is turned off -->
+  <xsl:if test="not(contains($toc.params, 'toc')) and
+                ($process.source.toc != 0 or $process.empty.source.toc != 0)">
+    <xsl:choose>
+      <xsl:when test="* and $process.source.toc != 0">
+        <div>
+          <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:call-template name="id.attribute"/>
+          <xsl:apply-templates select="title"/> 
+          <dl>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:apply-templates select="*[not(self::title)]"/> 
+          </dl>
+        </div>
+        <xsl:call-template name="section.toc.separator"/>
+      </xsl:when>
+      <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
+        <!-- trick to switch context node to section element -->
+        <xsl:for-each select="parent::*">
+          <xsl:call-template name="section.toc">
+            <xsl:with-param name="toc.title.p" 
+                            select="contains($toc.params, 'title')"/>
+          </xsl:call-template>
+        </xsl:for-each>
+        <xsl:call-template name="section.toc.separator"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="tocpart|tocchap
+                     |toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+  <xsl:variable name="sub-toc">
+    <xsl:if test="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+      <xsl:choose>
+        <xsl:when test="$toc.list.type = 'dl'">
+          <dd>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:element name="{$toc.list.type}">
+              <xsl:apply-templates select="." mode="common.html.attributes"/>
+              <xsl:apply-templates select="tocchap|toclevel1|toclevel2|
+                                           toclevel3|toclevel4|toclevel5"/>
+            </xsl:element>
+          </dd>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:element name="{$toc.list.type}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:apply-templates select="tocchap|toclevel1|toclevel2|
+                                         toclevel3|toclevel4|toclevel5"/>
+          </xsl:element>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:apply-templates select="tocentry[position() != last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">
+      <dt>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:apply-templates select="tocentry[position() = last()]"/>
+      </dt>
+      <xsl:copy-of select="$sub-toc"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <li>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:apply-templates select="tocentry[position() = last()]"/>
+        <xsl:copy-of select="$sub-toc"/>
+      </li>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tocentry|tocdiv|lotentry|tocfront|tocback">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">
+      <dt>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="tocentry-content"/>
+      </dt>
+    </xsl:when>
+    <xsl:otherwise>
+      <li>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="tocentry-content"/>
+      </li>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tocentry[position() = last()]" priority="2">
+  <xsl:call-template name="tocentry-content"/>
+</xsl:template>
+
+<xsl:template name="tocentry-content">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <xsl:when test="@linkend">
+      <xsl:call-template name="check.id.unique">
+        <xsl:with-param name="linkend" select="@linkend"/>
+      </xsl:call-template>
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates/>
+      </a>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="toc/title">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="toc/subtitle">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="toc/titleabbrev">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- A lot element must have content, because there is no attribute
+     to select what kind of list should be generated -->
+<xsl:template match="book/lot | part/lot">
+  <!-- Don't generate a page sequence unless there is content -->
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="* and $process.source.toc != 0">
+        <div>
+          <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:apply-templates />
+        </div>
+      </xsl:when>
+      <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
+        <xsl:call-template name="process.empty.lot"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="string-length(normalize-space($content)) != 0">
+    <xsl:copy-of select="$content"/>
+  </xsl:if>
+</xsl:template>
+  
+<xsl:template match="chapter/lot | appendix/lot | preface/lot | article/lot">
+  <xsl:choose>
+    <xsl:when test="* and $process.source.toc != 0">
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:apply-templates />
+      </div>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:when>
+    <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
+      <xsl:call-template name="process.empty.lot"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="section/lot
+                    |sect1/lot
+                    |sect2/lot
+                    |sect3/lot
+                    |sect4/lot
+                    |sect5/lot">
+  <xsl:choose>
+    <xsl:when test="* and $process.source.toc != 0">
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:apply-templates/>
+      </div>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:when>
+    <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
+      <xsl:call-template name="process.empty.lot"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.empty.lot">
+  <!-- An empty lot element does not provide any information to indicate
+       what should be included in it.  You can customize this
+       template to generate a lot based on @role or something -->
+  <xsl:message>
+    <xsl:text>Warning: don't know what to generate for </xsl:text>
+    <xsl:text>lot that has no children.</xsl:text>
+  </xsl:message>
+</xsl:template>
+
+<xsl:template match="lot/title">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="lot/subtitle">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="lot/titleabbrev">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/verbatim.xsl b/applications/content/template/docbook/html/verbatim.xsl
new file mode 100644
index 0000000..e4dda13
--- /dev/null
+++ b/applications/content/template/docbook/html/verbatim.xsl
@@ -0,0 +1,410 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim"
+                xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                xmlns:exsl="http://exslt.org/common"
+                exclude-result-prefixes="sverb xverb lxslt exsl"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- XSLTHL highlighting is turned off by default. See highlighting/README
+     for instructions on how to turn on XSLTHL -->
+<xsl:template name="apply-highlighting">
+    <xsl:apply-templates/>
+</xsl:template>
+
+<lxslt:component prefix="xverb"
+                 functions="numberLines"/>
+
+<xsl:template match="programlisting|screen|synopsis">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:variable name="div.element">pre</xsl:variable>
+
+  <xsl:if test="$shade.verbatim != 0">
+    <xsl:message>
+      <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text>
+      <xsl:text>Use CSS instead,</xsl:text>
+    </xsl:message>
+    <xsl:message>
+      <xsl:text>for example: pre.</xsl:text>
+      <xsl:value-of select="local-name(.)"/>
+      <xsl:text> { background-color: #E0E0E0; }</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'
+                    and @linenumbering = 'numbered'
+                    and $use.extensions != '0'
+                    and $linenumbering.extension != '0'">
+      <xsl:variable name="rtf">
+        <xsl:choose>
+          <xsl:when test="$highlight.source != 0">
+            <xsl:call-template name="apply-highlighting"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+      <xsl:element name="{$div.element}">
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="@width != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="@width"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:call-template name="number.rtf.lines">
+          <xsl:with-param name="rtf" select="$rtf"/>
+        </xsl:call-template>
+      </xsl:element>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:element name="{$div.element}">
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="@width != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="@width"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:choose>
+          <xsl:when test="$highlight.source != 0">
+            <xsl:call-template name="apply-highlighting"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:element>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="literallayout">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:if test="$shade.verbatim != 0 and @class='monospaced'">
+    <xsl:message>
+      <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text>
+      <xsl:text>Use CSS instead,</xsl:text>
+    </xsl:message>
+    <xsl:message>
+      <xsl:text>for example: pre.</xsl:text>
+      <xsl:value-of select="local-name(.)"/>
+      <xsl:text> { background-color: #E0E0E0; }</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'
+                    and @linenumbering = 'numbered'
+                    and $use.extensions != '0'
+                    and $linenumbering.extension != '0'">
+      <xsl:choose>
+        <xsl:when test="@class='monospaced'">
+          <pre>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf"/>
+            </xsl:call-template>
+          </pre>
+        </xsl:when>
+        <xsl:otherwise>
+          <div>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <p>
+              <xsl:call-template name="number.rtf.lines">
+                <xsl:with-param name="rtf" select="$rtf"/>
+              </xsl:call-template>
+            </p>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="@class='monospaced'">
+          <pre>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:copy-of select="$rtf"/>
+          </pre>
+        </xsl:when>
+        <xsl:otherwise>
+          <div>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <p>
+              <xsl:call-template name="make-verbatim">
+                <xsl:with-param name="rtf" select="$rtf"/>
+              </xsl:call-template>
+            </p>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="address">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'
+                    and @linenumbering = 'numbered'
+                    and $use.extensions != '0'
+                    and $linenumbering.extension != '0'">
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <p>
+          <xsl:call-template name="number.rtf.lines">
+            <xsl:with-param name="rtf" select="$rtf"/>
+          </xsl:call-template>
+        </p>
+      </div>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <p>
+          <xsl:call-template name="make-verbatim">
+            <xsl:with-param name="rtf" select="$rtf"/>
+          </xsl:call-template>
+        </p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="number.rtf.lines">
+  <xsl:param name="rtf" select="''"/>
+  <xsl:param name="pi.context" select="."/>
+
+  <!-- Save the global values -->
+  <xsl:variable name="global.linenumbering.everyNth"
+                select="$linenumbering.everyNth"/>
+
+  <xsl:variable name="global.linenumbering.separator"
+                select="$linenumbering.separator"/>
+
+  <xsl:variable name="global.linenumbering.width"
+                select="$linenumbering.width"/>
+
+  <!-- Extract the <?dbhtml linenumbering.*?> PI values -->
+  <xsl:variable name="pi.linenumbering.everyNth">
+    <xsl:call-template name="pi.dbhtml_linenumbering.everyNth">
+      <xsl:with-param name="node" select="$pi.context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="pi.linenumbering.separator">
+    <xsl:call-template name="pi.dbhtml_linenumbering.separator">
+      <xsl:with-param name="node" select="$pi.context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="pi.linenumbering.width">
+    <xsl:call-template name="pi.dbhtml_linenumbering.width">
+      <xsl:with-param name="node" select="$pi.context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Construct the 'in-context' values -->
+  <xsl:variable name="linenumbering.everyNth">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.everyNth != ''">
+        <xsl:value-of select="$pi.linenumbering.everyNth"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.everyNth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.separator">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.separator != ''">
+        <xsl:value-of select="$pi.linenumbering.separator"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.separator"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.width">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.width != ''">
+        <xsl:value-of select="$pi.linenumbering.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.startinglinenumber">
+    <xsl:choose>
+      <xsl:when test="$pi.context/@startinglinenumber">
+        <xsl:value-of select="$pi.context/@startinglinenumber"/>
+      </xsl:when>
+      <xsl:when test="$pi.context/@continuation='continues'">
+        <xsl:variable name="lastLine">
+          <xsl:choose>
+            <xsl:when test="$pi.context/self::programlisting">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings"
+                     select="preceding::programlisting[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::screen">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings"
+                     select="preceding::screen[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::literallayout">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings"
+                     select="preceding::literallayout[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::address">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings"
+                     select="preceding::address[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::synopsis">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings"
+                     select="preceding::synopsis[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message>
+                <xsl:text>Unexpected verbatim environment: </xsl:text>
+                <xsl:value-of select="local-name($pi.context)"/>
+              </xsl:message>
+              <xsl:value-of select="0"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+
+        <xsl:value-of select="$lastLine + 1"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="function-available('sverb:numberLines')">
+      <xsl:copy-of select="sverb:numberLines($rtf)"/>
+    </xsl:when>
+    <xsl:when test="function-available('xverb:numberLines')">
+      <xsl:copy-of select="xverb:numberLines($rtf)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>No numberLines function available.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="make-verbatim">
+  <xsl:param name="rtf"/>
+
+  <!-- I want to make this RTF verbatim. There are two possibilities: either
+       I have access to the exsl:node-set extension function and I can "do it right"
+       or I have to rely on CSS. -->
+
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:apply-templates select="exsl:node-set($rtf)" mode="make.verbatim.mode"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <span style="white-space: pre;">
+        <xsl:copy-of select="$rtf"/>
+      </span>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ======================================================================== -->
+
+<xsl:template name="lastLineNumber">
+  <xsl:param name="listings"/>
+  <xsl:param name="number" select="0"/>
+
+  <xsl:variable name="lines">
+    <xsl:call-template name="countLines">
+      <xsl:with-param name="listing" select="string($listings[1])"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not($listings)">
+      <xsl:value-of select="$number"/>
+    </xsl:when>
+    <xsl:when test="$listings[1]/@startinglinenumber">
+      <xsl:value-of select="$number + $listings[1]/@startinglinenumber + $lines - 1"/>
+    </xsl:when>
+    <xsl:when test="$listings[1]/@continuation='continues'">
+      <xsl:call-template name="lastLineNumber">
+        <xsl:with-param name="listings" select="listings[position() &gt; 1]"/>
+        <xsl:with-param name="number" select="$number + $lines"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$lines"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="countLines">
+  <xsl:param name="listing"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($listing, '&#10;')">
+      <xsl:call-template name="countLines">
+        <xsl:with-param name="listing" select="substring-after($listing, '&#10;')"/>
+        <xsl:with-param name="count" select="$count + 1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$count"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/html/xref.xsl b/applications/content/template/docbook/html/xref.xsl
new file mode 100644
index 0000000..fee2266
--- /dev/null
+++ b/applications/content/template/docbook/html/xref.xsl
@@ -0,0 +1,1402 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:suwl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.UnwrapLinks"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:xlink='http://www.w3.org/1999/xlink'
+                exclude-result-prefixes="suwl exsl xlink"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- Use internal variable for olink xlink role for consistency -->
+<xsl:variable 
+      name="xolink.role">http://docbook.org/xlink/role/olink</xsl:variable>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="anchor">
+  <xsl:choose>
+    <xsl:when test="$generate.id.attributes = 0">
+      <xsl:call-template name="anchor"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <span>
+        <xsl:call-template name="id.attribute"/>
+      </span>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="xref" name="xref">
+  <xsl:param name="xhref" select="@xlink:href"/>
+  <!-- is the @xlink:href a local idref link? -->
+  <xsl:param name="xlink.idref">
+    <xsl:if test="starts-with($xhref,'#')
+                  and (not(contains($xhref,'&#40;'))
+                  or starts-with($xhref, '#xpointer&#40;id&#40;'))">
+      <xsl:call-template name="xpointer.idref">
+        <xsl:with-param name="xpointer" select="$xhref"/>
+      </xsl:call-template>
+   </xsl:if>
+  </xsl:param>
+  <xsl:param name="xlink.targets" select="key('id',$xlink.idref)"/>
+  <xsl:param name="linkend.targets" select="key('id',@linkend)"/>
+  <xsl:param name="target" select="($xlink.targets | $linkend.targets)[1]"/>
+
+  <xsl:variable name="xrefstyle">
+    <xsl:choose>
+      <xsl:when test="@role and not(@xrefstyle) 
+                      and $use.role.as.xrefstyle != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@xrefstyle"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:variable name="content">
+    <xsl:choose>
+  
+      <xsl:when test="@endterm">
+        <xsl:variable name="etargets" select="key('id',@endterm)"/>
+        <xsl:variable name="etarget" select="$etargets[1]"/>
+        <xsl:choose>
+          <xsl:when test="count($etarget) = 0">
+            <xsl:message>
+              <xsl:value-of select="count($etargets)"/>
+              <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+              <xsl:value-of select="@endterm"/>
+            </xsl:message>
+            <xsl:text>???</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="$etarget" mode="endterm"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+  
+      <xsl:when test="$target/@xreflabel">
+        <xsl:call-template name="xref.xreflabel">
+          <xsl:with-param name="target" select="$target"/>
+        </xsl:call-template>
+      </xsl:when>
+  
+      <xsl:when test="$target">
+        <xsl:if test="not(parent::citation)">
+          <xsl:apply-templates select="$target" mode="xref-to-prefix"/>
+        </xsl:if>
+  
+        <xsl:apply-templates select="$target" mode="xref-to">
+          <xsl:with-param name="referrer" select="."/>
+          <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        </xsl:apply-templates>
+  
+        <xsl:if test="not(parent::citation)">
+          <xsl:apply-templates select="$target" mode="xref-to-suffix"/>
+        </xsl:if>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <xsl:message>
+          <xsl:text>ERROR: xref linking to </xsl:text>
+          <xsl:value-of select="@linkend|@xlink:href"/>
+          <xsl:text> has no generated link text.</xsl:text>
+        </xsl:message>
+        <xsl:text>???</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- biblioref handled largely like an xref -->
+<!-- To be done: add support for begin, end, and units attributes -->
+<xsl:template match="biblioref">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:choose>
+    <xsl:when test="count($target) = 0">
+      <xsl:message>
+        <xsl:text>XRef to nonexistent id: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+      </xsl:message>
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+
+    <xsl:when test="@endterm">
+      <xsl:variable name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select="$target"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="etargets" select="key('id',@endterm)"/>
+      <xsl:variable name="etarget" select="$etargets[1]"/>
+      <xsl:choose>
+        <xsl:when test="count($etarget) = 0">
+          <xsl:message>
+            <xsl:value-of select="count($etargets)"/>
+            <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+            <xsl:value-of select="@endterm"/>
+          </xsl:message>
+          <a href="{$href}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:text>???</xsl:text>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <a href="{$href}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:apply-templates select="$etarget" mode="endterm"/>
+          </a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="$target/@xreflabel">
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:call-template name="xref.xreflabel">
+          <xsl:with-param name="target" select="$target"/>
+        </xsl:call-template>
+      </a>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:variable name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select="$target"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:if test="not(parent::citation)">
+        <xsl:apply-templates select="$target" mode="xref-to-prefix"/>
+      </xsl:if>
+
+      <a href="{$href}">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:if test="$target/title or $target/info/title">
+          <xsl:attribute name="title">
+            <xsl:apply-templates select="$target" mode="xref-title"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:apply-templates select="$target" mode="xref-to">
+          <xsl:with-param name="referrer" select="."/>
+          <xsl:with-param name="xrefstyle">
+            <xsl:choose>
+              <xsl:when test="@role and not(@xrefstyle) and $use.role.as.xrefstyle != 0">
+                <xsl:value-of select="@role"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="@xrefstyle"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:apply-templates>
+      </a>
+
+      <xsl:if test="not(parent::citation)">
+        <xsl:apply-templates select="$target" mode="xref-to-suffix"/>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="endterm">
+  <!-- Process the children of the endterm element -->
+  <xsl:variable name="endterm">
+    <xsl:apply-templates select="child::node()" mode="no.anchor.mode"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:apply-templates select="exsl:node-set($endterm)" mode="remove-ids"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$endterm"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="remove-ids">
+  <xsl:choose>
+    <!-- handle html or xhtml -->
+    <xsl:when test="local-name(.) = 'a'
+                    and (namespace-uri(.) = ''
+                         or namespace-uri(.) = 'http://www.w3.org/1999/xhtml')">
+      <xsl:choose>
+        <xsl:when test="(@name and count(@*) = 1)
+                        or (@id and count(@*) = 1)
+                        or (@xml:id and count(@*) = 1)
+                        or (@xml:id and @name and count(@*) = 2)
+                        or (@id and @name and count(@*) = 2)">
+          <xsl:message>suppress anchor</xsl:message>
+          <!-- suppress the whole thing -->
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:copy>
+            <xsl:for-each select="@*">
+              <xsl:choose>
+                <xsl:when test="local-name(.) != 'name' and local-name(.) != 'id'">
+                  <xsl:copy/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:message>removing <xsl:value-of 
+                             select="local-name(.)"/></xsl:message>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:for-each>
+          </xsl:copy>
+          <xsl:apply-templates mode="remove-ids"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy>
+        <xsl:for-each select="@*">
+          <xsl:choose>
+            <xsl:when test="local-name(.) != 'id'">
+              <xsl:copy/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message>removing <xsl:value-of 
+                        select="local-name(.)"/></xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:for-each>
+        <xsl:apply-templates mode="remove-ids"/>
+      </xsl:copy>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="xref-to-prefix"/>
+<xsl:template match="*" mode="xref-to-suffix"/>
+
+<xsl:template match="*" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:if test="$verbose">
+    <xsl:message>
+      <xsl:text>Don't know what gentext to create for xref to: "</xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:text>", ("</xsl:text>
+      <xsl:value-of select="(@id|@xml:id)[1]"/>
+      <xsl:text>")</xsl:text>
+    </xsl:message>
+  </xsl:if>
+  <xsl:text>???</xsl:text>
+</xsl:template>
+
+<xsl:template match="title" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <!-- if you xref to a title, xref to the parent... -->
+  <xsl:choose>
+    <!-- FIXME: how reliable is this? -->
+    <xsl:when test="contains(local-name(parent::*), 'info')">
+      <xsl:apply-templates select="parent::*[2]" mode="xref-to">
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="parent::*" mode="xref-to">
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="abstract|authorblurb|personblurb|bibliodiv|bibliomset
+                     |biblioset|blockquote|calloutlist|caution|colophon
+                     |constraintdef|formalpara|glossdiv|important|indexdiv
+                     |itemizedlist|legalnotice|lot|msg|msgexplan|msgmain
+                     |msgrel|msgset|msgsub|note|orderedlist|partintro
+                     |productionset|qandadiv|refsynopsisdiv|segmentedlist
+                     |set|setindex|sidebar|tip|toc|variablelist|warning"
+              mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <!-- catch-all for things with (possibly optional) titles -->
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="author|editor|othercredit|personname" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="person.name.list"/>
+</xsl:template>
+
+<xsl:template match="figure|example|table|equation" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="procedure" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="task" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-to">
+  <xsl:apply-templates select="(.//command)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-to">
+  <xsl:apply-templates select="(.//function)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="dedication|acknowledgements|preface|chapter|appendix|article" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to-prefix">
+  <xsl:text>[</xsl:text>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to-suffix">
+  <xsl:text>]</xsl:text>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <!-- handles both biblioentry and bibliomixed -->
+  <xsl:choose>
+    <xsl:when test="string(.) = ''">
+      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+      <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
+      <xsl:variable name="entry" select="$bib/bibliography/
+                                    *[@id=$id or @xml:id=$id][1]"/>
+      <xsl:choose>
+        <xsl:when test="$entry">
+          <xsl:choose>
+            <xsl:when test="$bibliography.numbered != 0">
+              <xsl:number from="bibliography" count="biblioentry|bibliomixed"
+                          level="any" format="1"/>
+            </xsl:when>
+            <xsl:when test="local-name($entry/*[1]) = 'abbrev'">
+              <xsl:apply-templates select="$entry/*[1]" mode="no.anchor.mode"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="(@id|@xml:id)[1]"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>No bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </xsl:message>
+          <xsl:value-of select="(@id|@xml:id)[1]"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$bibliography.numbered != 0">
+          <xsl:number from="bibliography" count="biblioentry|bibliomixed"
+                      level="any" format="1"/>
+        </xsl:when>
+        <xsl:when test="local-name(*[1]) = 'abbrev'">
+          <xsl:apply-templates select="*[1]" mode="no.anchor.mode"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="(@id|@xml:id)[1]"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossary" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="glossentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:choose>
+    <xsl:when test="$glossentry.show.acronym = 'primary'">
+      <xsl:choose>
+        <xsl:when test="acronym|abbrev">
+          <xsl:apply-templates select="(acronym|abbrev)[1]" mode="no.anchor.mode"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="glossterm[1]" mode="xref-to">
+            <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+            <xsl:with-param name="referrer" select="$referrer"/>
+            <xsl:with-param name="verbose" select="$verbose"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="glossterm[1]" mode="xref-to">
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossterm|firstterm" mode="xref-to">
+  <xsl:apply-templates mode="no.anchor.mode"/>
+</xsl:template>
+
+<xsl:template match="index" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="listitem" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="section|simplesect
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3|refsection" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+  <!-- FIXME: What about "in Chapter X"? -->
+</xsl:template>
+
+<xsl:template match="topic" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+  <!-- FIXME: What about "in Chapter X"? -->
+</xsl:template>
+
+<xsl:template match="qandaset" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="question[1]" mode="xref-to">
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="question|answer" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="string-length(label) != 0">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <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:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="part|reference" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:choose>
+    <xsl:when test="refmeta/refentrytitle">
+      <xsl:apply-templates select="refmeta/refentrytitle" mode="no.anchor.mode"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="refnamediv/refname[1]" mode="no.anchor.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates select="refmeta/manvolnum" mode="no.anchor.mode"/>
+</xsl:template>
+
+<xsl:template match="refnamediv" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="refname[1]" mode="xref-to">
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refname" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates mode="xref-to"/>
+</xsl:template>
+
+<xsl:template match="step" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Step'"/>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="." mode="number"/>
+</xsl:template>
+
+<xsl:template match="varlistentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="term[1]" mode="xref-to">
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="primary|secondary|tertiary" mode="xref-to">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="xref-to">
+  <xsl:value-of select="primary"/>
+</xsl:template>
+
+<xsl:template match="varlistentry/term" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:apply-templates mode="no.anchor.mode"/>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:apply-templates select="." mode="callout-bug"/>
+</xsl:template>
+
+<xsl:template match="area|areaset" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="callout-bug">
+    <xsl:with-param name="conum">
+      <xsl:apply-templates select="." mode="conumber"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="book" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- These are elements for which no link text exists, so an xref to one
+     uses the xrefstyle attribute if specified, or if not it falls back
+     to the container element's link text -->
+<xsl:template match="para|phrase|simpara|anchor|quote" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:variable name="context" select="(ancestor::simplesect
+                                       |ancestor::section
+                                       |ancestor::sect1
+                                       |ancestor::sect2
+                                       |ancestor::sect3
+                                       |ancestor::sect4
+                                       |ancestor::sect5
+                                       |ancestor::topic
+                                       |ancestor::refsection
+                                       |ancestor::refsect1
+                                       |ancestor::refsect2
+                                       |ancestor::refsect3
+                                       |ancestor::chapter
+                                       |ancestor::appendix
+                                       |ancestor::preface
+                                       |ancestor::partintro
+                                       |ancestor::dedication
+                                       |ancestor::acknowledgements
+                                       |ancestor::colophon
+                                       |ancestor::bibliography
+                                       |ancestor::index
+                                       |ancestor::glossary
+                                       |ancestor::glossentry
+                                       |ancestor::listitem
+                                       |ancestor::varlistentry)[last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="$xrefstyle != ''">
+      <xsl:apply-templates select="." mode="object.xref.markup">
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="$context" mode="xref-to">
+        <xsl:with-param name="purpose" select="'xref'"/>
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="object.title.markup"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="author" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:call-template name="person.name"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:call-template name="person.name.list"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="(.//command)[1]" mode="xref"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="(.//function)[1]" mode="xref"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-title">
+  <!-- handles both biblioentry and bibliomixed -->
+  <xsl:variable name="title">
+    <xsl:text>[</xsl:text>
+    <xsl:choose>
+      <xsl:when test="local-name(*[1]) = 'abbrev'">
+        <xsl:apply-templates select="*[1]" mode="no.anchor.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="(@id|@xml:id)[1]"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>]</xsl:text>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="step" mode="xref-title">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Step'"/>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="." mode="number"/>
+</xsl:template>
+
+<xsl:template match="step[not(./title)]" mode="title.markup">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Step'"/>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="." mode="number"/>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="callout-bug"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="link" name="link">
+  <xsl:param name="linkend" select="@linkend"/>
+  <xsl:param name="a.target"/>
+  <xsl:param name="xhref" select="@xlink:href"/>
+
+  <xsl:variable name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:choose>
+      <xsl:when test="count(child::node()) &gt; 0">
+        <!-- If it has content, use it -->
+        <xsl:apply-templates mode="no.anchor.mode"/>
+      </xsl:when>
+      <!-- else look for an endterm -->
+      <xsl:when test="@endterm">
+        <xsl:variable name="etargets" select="key('id',@endterm)"/>
+        <xsl:variable name="etarget" select="$etargets[1]"/>
+        <xsl:choose>
+          <xsl:when test="count($etarget) = 0">
+            <xsl:message>
+              <xsl:value-of select="count($etargets)"/>
+              <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+              <xsl:value-of select="@endterm"/>
+            </xsl:message>
+            <xsl:text>???</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+              <xsl:apply-templates select="$etarget" mode="endterm"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <!-- Use the xlink:href if no other text -->
+      <xsl:when test="@xlink:href">
+        <xsl:value-of select="@xlink:href"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:message>
+          <xsl:text>Link element has no content and no Endterm. </xsl:text>
+          <xsl:text>Nothing to show in the link to </xsl:text>
+          <xsl:value-of select="(@xlink:href|@linkend)[1]"/>
+        </xsl:message>
+        <xsl:text>???</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="node" select="."/>
+    <xsl:with-param name="linkend" select="$linkend"/>
+    <xsl:with-param name="content" select="$content"/>
+    <xsl:with-param name="a.target" select="$a.target"/>
+    <xsl:with-param name="xhref" select="$xhref"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="ulink" name="ulink">
+  <xsl:param name="url" select="@url"/>
+  <xsl:variable name="link">
+    <a>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:if test="@id or @xml:id">
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <xsl:attribute name="name">
+              <xsl:value-of select="(@id|@xml:id)[1]"/>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:attribute name="id">
+              <xsl:value-of select="(@id|@xml:id)[1]"/>
+            </xsl:attribute>
+          </xsl:otherwise>
+        </xsl:choose>
+      </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 mode="no.anchor.mode"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </a>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="function-available('suwl:unwrapLinks')">
+      <xsl:copy-of select="suwl:unwrapLinks($link)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$link"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="olink" name="olink">
+  <!-- olink content may be passed in from xlink olink -->
+  <xsl:param name="content" select="NOTANELEMENT"/>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:variable name="localinfo" select="@localinfo"/>
+
+  <xsl:choose>
+    <!-- olinks resolved by stylesheet and target database -->
+    <xsl:when test="@targetdoc or @targetptr or
+                    (@xlink:role=$xolink.role and
+                     contains(@xlink:href, '#') )" >
+
+      <xsl:variable name="targetdoc.att">
+        <xsl:choose>
+          <xsl:when test="@targetdoc != ''">
+            <xsl:value-of select="@targetdoc"/>
+          </xsl:when>
+          <xsl:when test="@xlink:role=$xolink.role and
+                       contains(@xlink:href, '#')" >
+            <xsl:value-of select="substring-before(@xlink:href, '#')"/>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="targetptr.att">
+        <xsl:choose>
+          <xsl:when test="@targetptr != ''">
+            <xsl:value-of select="@targetptr"/>
+          </xsl:when>
+          <xsl:when test="@xlink:role=$xolink.role and
+                       contains(@xlink:href, '#')" >
+            <xsl:value-of select="substring-after(@xlink:href, '#')"/>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="olink.lang">
+        <xsl:call-template name="l10n.language">
+          <xsl:with-param name="xref-context" select="true()"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:variable name="target.database.filename">
+        <xsl:call-template name="select.target.database">
+          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+          <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:variable name="target.database" 
+          select="document($target.database.filename,/)"/>
+    
+      <xsl:if test="$olink.debug != 0">
+        <xsl:message>
+          <xsl:text>Olink debug: root element of target.database '</xsl:text>
+          <xsl:value-of select="$target.database.filename"/>
+          <xsl:text>' is '</xsl:text>
+          <xsl:value-of select="local-name($target.database/*[1])"/>
+          <xsl:text>'.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+    
+      <xsl:variable name="olink.key">
+        <xsl:call-template name="select.olink.key">
+          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+          <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:if test="string-length($olink.key) = 0">
+        <xsl:message>
+          <xsl:text>Error: unresolved olink: </xsl:text>
+          <xsl:text>targetdoc/targetptr = '</xsl:text>
+          <xsl:value-of select="$targetdoc.att"/>
+          <xsl:text>/</xsl:text>
+          <xsl:value-of select="$targetptr.att"/>
+          <xsl:text>'.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+
+      <xsl:variable name="href">
+        <xsl:call-template name="make.olink.href">
+          <xsl:with-param name="olink.key" select="$olink.key"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="hottext">
+        <xsl:choose>
+          <xsl:when test="string-length($content) != 0">
+            <xsl:copy-of select="$content"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="olink.hottext">
+              <xsl:with-param name="olink.key" select="$olink.key"/>
+              <xsl:with-param name="olink.lang" select="$olink.lang"/>
+              <xsl:with-param name="target.database" select="$target.database"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="olink.docname.citation">
+        <xsl:call-template name="olink.document.citation">
+          <xsl:with-param name="olink.key" select="$olink.key"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="olink.page.citation">
+        <xsl:call-template name="olink.page.citation">
+          <xsl:with-param name="olink.key" select="$olink.key"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$href != ''">
+          <a href="{$href}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:copy-of select="$hottext"/>
+          </a>
+          <xsl:copy-of select="$olink.page.citation"/>
+          <xsl:copy-of select="$olink.docname.citation"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <span class="olink">
+            <xsl:call-template name="id.attribute"/>
+            <xsl:copy-of select="$hottext"/>
+          </span>
+          <xsl:copy-of select="$olink.page.citation"/>
+          <xsl:copy-of select="$olink.docname.citation"/>
+        </xsl:otherwise>
+      </xsl:choose>
+
+    </xsl:when>
+
+    <!-- Or use old olink mechanism -->
+    <xsl:otherwise>
+      <xsl:variable name="href">
+        <xsl:choose>
+          <xsl:when test="@linkmode">
+            <!-- use the linkmode to get the base URI, use localinfo as fragid -->
+            <xsl:variable name="modespec" select="key('id',@linkmode)"/>
+            <xsl:if test="count($modespec) != 1
+                          or local-name($modespec) != 'modespec'">
+              <xsl:message>Warning: olink linkmode pointer is wrong.</xsl:message>
+            </xsl:if>
+            <xsl:value-of select="$modespec"/>
+            <xsl:if test="@localinfo">
+              <xsl:text>#</xsl:text>
+              <xsl:value-of select="@localinfo"/>
+            </xsl:if>
+          </xsl:when>
+          <xsl:when test="@type = 'href'">
+            <xsl:call-template name="olink.outline">
+              <xsl:with-param name="outline.base.uri"
+                              select="unparsed-entity-uri(@targetdocent)"/>
+              <xsl:with-param name="localinfo" select="@localinfo"/>
+              <xsl:with-param name="return" select="'href'"/>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$olink.resolver"/>
+            <xsl:text>?</xsl:text>
+            <xsl:value-of select="$olink.sysid"/>
+            <xsl:value-of select="unparsed-entity-uri(@targetdocent)"/>
+            <!-- XSL gives no access to the public identifier (grumble...) -->
+            <xsl:if test="@localinfo">
+              <xsl:text>&amp;</xsl:text>
+              <xsl:value-of select="$olink.fragid"/>
+              <xsl:value-of select="@localinfo"/>
+            </xsl:if>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+    
+      <xsl:choose>
+        <xsl:when test="$href != ''">
+          <a href="{$href}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="olink.hottext"/>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="olink.hottext"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="pagenumber.markup">
+  <!-- no-op in HTML -->
+</xsl:template>
+
+
+<xsl:template name="olink.outline">
+  <xsl:param name="outline.base.uri"/>
+  <xsl:param name="localinfo"/>
+  <xsl:param name="return" select="href"/>
+
+  <xsl:variable name="outline-file"
+                select="concat($outline.base.uri,
+                               $olink.outline.ext)"/>
+
+  <xsl:variable name="outline" select="document($outline-file,.)/div"/>
+
+  <xsl:variable name="node-href">
+    <xsl:choose>
+      <xsl:when test="$localinfo != ''">
+        <xsl:variable name="node" select="$outline//
+                                   *[@id=$localinfo or @xml:id=$localinfo]"/>
+        <xsl:value-of select="$node/@href"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$outline/@href"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="node-xref">
+    <xsl:choose>
+      <xsl:when test="$localinfo != ''">
+        <xsl:variable name="node" select="$outline//
+                               *[@id=$localinfo or @xml:id=$localinfo]"/>
+        <xsl:copy-of select="$node/xref"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$outline/xref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$return = 'href'">
+      <xsl:value-of select="$node-href"/>
+    </xsl:when>
+    <xsl:when test="$return = 'xref'">
+      <xsl:value-of select="$node-xref"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$node-xref"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="xref.xreflabel">
+  <!-- called to process an xreflabel...you might use this to make  -->
+  <!-- xreflabels come out in the right font for different targets, -->
+  <!-- for example. -->
+  <xsl:param name="target" select="."/>
+  <xsl:value-of select="$target/@xreflabel"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="title" mode="xref">
+  <xsl:apply-templates mode="no.anchor.mode"/>
+</xsl:template>
+
+<xsl:template match="command" mode="xref">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="function" mode="xref">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="insert.title.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="title"/>
+
+  <xsl:choose>
+    <!-- FIXME: what about the case where titleabbrev is inside the info? -->
+    <xsl:when test="$purpose = 'xref' and titleabbrev">
+      <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$title"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="chapter|appendix" mode="insert.title.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="title"/>
+
+  <xsl:choose>
+    <xsl:when test="$purpose = 'xref'">
+      <i>
+        <xsl:copy-of select="$title"/>
+      </i>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$title"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.subtitle.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="subtitle"/>
+
+  <xsl:copy-of select="$subtitle"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.label.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="label"/>
+
+  <xsl:copy-of select="$label"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.pagenumber.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="pagenumber"/>
+
+  <xsl:copy-of select="$pagenumber"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.direction.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="direction"/>
+
+  <xsl:copy-of select="$direction"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.olink.docname.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="docname"/>
+
+  <span class="olinkdocname">
+    <xsl:copy-of select="$docname"/>
+  </span>
+
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/htmlhelp/htmlhelp-common.xsl b/applications/content/template/docbook/htmlhelp/htmlhelp-common.xsl
new file mode 100644
index 0000000..9d16fff
--- /dev/null
+++ b/applications/content/template/docbook/htmlhelp/htmlhelp-common.xsl
@@ -0,0 +1,1120 @@
+<?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"
+  xmlns:h="urn:x-hex"
+  xmlns:ng="http://docbook.org/docbook-ng"
+  xmlns:db="http://docbook.org/ns/docbook"
+  version="1.0"
+  exclude-result-prefixes="doc exsl set h db ng">
+
+<!-- ********************************************************************
+     $Id$
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- Customizations of standard HTML stylesheet parameters -->
+
+<!-- no navigation on pages by default, HTML Help provides its own navigation controls -->
+<xsl:param name="suppress.navigation" select="1"/>
+
+<!-- no separate HTML page with index, index is built inside CHM index pane -->
+<xsl:param name="generate.index" select="0"/>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="htmlhelp.generate.index" select="//indexterm[1]|//db:indexterm[1]|//ng:indexterm[1]"/>
+  
+<!-- Set up HTML Help flag -->
+<xsl:variable name="htmlhelp.output" select="1"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/">
+
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <xsl:when test="$exsl.node.set.available != 0
+                    and (*/self::ng:* or */self::db:*)">
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>stripped namespace before processing</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:variable name="nons">
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:variable>
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates select="exsl:node-set($nons)"/>
+    </xsl:when>
+    <xsl:otherwise>
+  <xsl:if test="$htmlhelp.only != 1">
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:choose>
+          <xsl:when test="count(key('id',$rootid)) = 0">
+            <xsl:message terminate="yes">
+              <xsl:text>ID '</xsl:text>
+              <xsl:value-of select="$rootid"/>
+              <xsl:text>' not found in document.</xsl:text>
+            </xsl:message>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message>Formatting from <xsl:value-of select="$rootid"/></xsl:message>
+            <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:if test="$collect.xref.targets = 'yes' or
+                      $collect.xref.targets = 'only'">
+          <xsl:apply-templates select="/" mode="collect.targets"/>
+        </xsl:if>
+        <xsl:if test="$collect.xref.targets != 'only'">
+          <xsl:apply-templates select="/" mode="process.root"/>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+
+
+  <xsl:if test="$collect.xref.targets != 'only'">
+    <xsl:call-template name="hhp"/>
+    <xsl:call-template name="hhc"/>
+    <xsl:if test="($rootid = '' and //processing-instruction('dbhh')) or
+                  ($rootid != '' and key('id',$rootid)//processing-instruction('dbhh'))">
+      <xsl:call-template name="hh-map"/>
+      <xsl:call-template name="hh-alias"/>
+    </xsl:if>
+    <xsl:if test="$htmlhelp.generate.index">
+      <xsl:call-template name="hhk"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="hhp">
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="$htmlhelp.hhp"/>
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="hhp-main"/>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="hhp-main">
+
+  <xsl:variable name="raw.help.title">
+    <xsl:choose>
+      <xsl:when test="$htmlhelp.title = ''">
+        <xsl:choose>
+          <xsl:when test="$rootid != ''">
+            <xsl:apply-templates select="key('id',$rootid)" mode="title.markup"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="/*" mode="title.markup"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$htmlhelp.title"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="help.title" select="normalize-space($raw.help.title)"/>
+  
+<xsl:variable name="default.topic">
+  <xsl:choose>
+    <xsl:when test="$htmlhelp.default.topic != ''">
+      <xsl:value-of select="$htmlhelp.default.topic"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir">
+          <xsl:if test="$manifest.in.base.dir = 0">
+            <xsl:value-of select="$chunk.base.dir"/>
+          </xsl:if>
+        </xsl:with-param>
+        <xsl:with-param name="base.name">
+          <xsl:choose>
+            <xsl:when test="$rootid != ''">
+              <xsl:apply-templates select="key('id',$rootid)" mode="chunk-filename"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="/" mode="chunk-filename"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+<xsl:variable name="xnavigation">
+  <xsl:text>0x</xsl:text>
+  <xsl:call-template name="toHex">
+    <xsl:with-param name="n" select="9504 + $htmlhelp.show.menu * 65536
+                                          + $htmlhelp.show.advanced.search * 131072
+                                          + $htmlhelp.show.favorities * 4096
+                                          + (1 - $htmlhelp.show.toolbar.text) * 64
+                                          + $htmlhelp.remember.window.position * 262144"/>
+  </xsl:call-template>
+</xsl:variable>
+<xsl:variable name="xbuttons">
+  <xsl:text>0x</xsl:text>
+  <xsl:call-template name="toHex">
+    <xsl:with-param name="n" select="0 + $htmlhelp.button.hideshow * 2
+                                       + $htmlhelp.button.back * 4
+                                       + $htmlhelp.button.forward * 8
+                                       + $htmlhelp.button.stop * 16
+                                       + $htmlhelp.button.refresh * 32
+                                       + $htmlhelp.button.home * 64
+                                       + $htmlhelp.button.options * 4096
+                                       + $htmlhelp.button.print * 8192
+                                       + $htmlhelp.button.locate * 2048
+                                       + $htmlhelp.button.jump1 * 262144
+                                       + $htmlhelp.button.jump2 * 524288
+                                       + $htmlhelp.button.next * 2097152
+                                       + $htmlhelp.button.prev * 4194304
+                                       + $htmlhelp.button.zoom * 1048576"/>
+  </xsl:call-template>
+</xsl:variable>
+<xsl:text>[OPTIONS]
+</xsl:text>
+<xsl:if test="$htmlhelp.generate.index">
+<xsl:text>Auto Index=Yes
+</xsl:text></xsl:if>
+<xsl:if test="$htmlhelp.hhc.binary != 0">
+<xsl:text>Binary TOC=Yes
+</xsl:text></xsl:if>
+<xsl:text>Compatibility=1.1 or later
+Compiled file=</xsl:text><xsl:value-of select="$htmlhelp.chm"/><xsl:text>
+Contents file=</xsl:text><xsl:value-of select="$htmlhelp.hhc"/><xsl:text>
+</xsl:text>
+<xsl:if test="$htmlhelp.hhp.window != ''">
+<xsl:text>Default Window=</xsl:text><xsl:value-of select="$htmlhelp.hhp.window"/><xsl:text>
+</xsl:text></xsl:if>
+<xsl:text>Default topic=</xsl:text><xsl:value-of select="$default.topic"/>
+<xsl:text>
+Display compile progress=</xsl:text>
+  <xsl:choose>
+    <xsl:when test="$htmlhelp.display.progress != 1">
+      <xsl:text>No</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>Yes</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+<xsl:text>
+Full-text search=Yes
+</xsl:text>
+<xsl:if test="$htmlhelp.generate.index">
+<xsl:text>Index file=</xsl:text><xsl:value-of select="$htmlhelp.hhk"/><xsl:text>
+</xsl:text></xsl:if>
+<xsl:text>Language=</xsl:text>
+<xsl:for-each select="*">   <!-- Change context from / to root element -->
+  <xsl:call-template name="gentext.template">
+    <xsl:with-param name="context" select="'htmlhelp'"/>
+    <xsl:with-param name="name" select="'langcode'"/>
+  </xsl:call-template>
+</xsl:for-each>
+<xsl:text>
+Title=</xsl:text>
+  <xsl:value-of select="$help.title"/>
+<xsl:text>
+Enhanced decompilation=</xsl:text>
+  <xsl:choose>
+    <xsl:when test="$htmlhelp.enhanced.decompilation != 0">
+      <xsl:text>Yes</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>No</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+
+<xsl:if test="$htmlhelp.hhp.window != ''">
+  <xsl:text>
+
+[WINDOWS]
+</xsl:text>
+<xsl:value-of select="$htmlhelp.hhp.window"/>
+<xsl:text>="</xsl:text>
+<xsl:value-of select="$help.title"/>
+<xsl:text>","</xsl:text><xsl:value-of select="$htmlhelp.hhc"/>
+<xsl:text>",</xsl:text>
+<xsl:if test="$htmlhelp.generate.index">
+  <xsl:text>"</xsl:text>
+  <xsl:value-of select="$htmlhelp.hhk"/>
+  <xsl:text>"</xsl:text>
+</xsl:if>
+<xsl:text>,"</xsl:text>
+<xsl:value-of select="$default.topic"/>
+<xsl:text>",</xsl:text>
+<xsl:text>"</xsl:text>
+<xsl:choose>
+  <xsl:when test="$htmlhelp.button.home != 0">
+    <xsl:value-of select="$htmlhelp.button.home.url"/>
+  </xsl:when>
+  <xsl:otherwise>
+    <xsl:value-of select="$default.topic"/>
+  </xsl:otherwise>
+</xsl:choose>
+<xsl:text>"</xsl:text>
+<xsl:text>,</xsl:text>
+<xsl:if test="$htmlhelp.button.jump1 != 0">
+  <xsl:text>"</xsl:text>
+  <xsl:value-of select="$htmlhelp.button.jump1.url"/>
+  <xsl:text>"</xsl:text>
+</xsl:if>
+<xsl:text>,</xsl:text>
+<xsl:if test="$htmlhelp.button.jump1 != 0">
+  <xsl:text>"</xsl:text>
+  <xsl:value-of select="$htmlhelp.button.jump1.title"/>
+  <xsl:text>"</xsl:text>
+</xsl:if>
+<xsl:text>,</xsl:text>
+<xsl:if test="$htmlhelp.button.jump2 != 0">
+  <xsl:text>"</xsl:text>
+  <xsl:value-of select="$htmlhelp.button.jump2.url"/>
+  <xsl:text>"</xsl:text>
+</xsl:if>
+<xsl:text>,</xsl:text>
+<xsl:if test="$htmlhelp.button.jump2 != 0">
+  <xsl:text>"</xsl:text>
+  <xsl:value-of select="$htmlhelp.button.jump2.title"/>
+  <xsl:text>"</xsl:text>
+</xsl:if>
+<xsl:text>,</xsl:text>
+<xsl:value-of select="$xnavigation"/>
+<xsl:text>,</xsl:text><xsl:value-of select="$htmlhelp.hhc.width"/><xsl:text>,</xsl:text>
+<xsl:value-of select="$xbuttons"/>
+<xsl:text>,</xsl:text><xsl:value-of select="$htmlhelp.window.geometry"/><xsl:text>,,,,,,,0
+</xsl:text>
+</xsl:if>
+
+<!-- 
+  Needs more investigation to generate propetly all fields 
+<xsl:text>search="</xsl:text>
+<xsl:value-of select="normalize-space(//title[1])"/>
+<xsl:text>","toc.hhc","index.hhk","</xsl:text>
+<xsl:value-of select="$root.filename"/>
+<xsl:text>.html","</xsl:text>
+<xsl:value-of select="$root.filename"/>
+<xsl:text>.html",,,,,</xsl:text>
+<xsl:value-of select="$xnavigation"/>
+<xsl:text>,</xsl:text>
+<xsl:value-of select="$htmlhelp.hhc.width"/>
+<xsl:text>,</xsl:text>
+<xsl:value-of select="$xbuttons"/>
+<xsl:text>,</xsl:text>
+<xsl:value-of select="$htmlhelp.window.geometry"/>
+<xsl:text>,,,,,2,,0
+</xsl:text>
+-->
+
+<xsl:if test="$htmlhelp.hhp.windows">
+  <xsl:value-of select="$htmlhelp.hhp.windows"/>
+</xsl:if>
+<xsl:text>
+
+[FILES]
+</xsl:text>
+
+<xsl:choose>
+  <xsl:when test="$rootid != ''">
+    <xsl:apply-templates select="key('id',$rootid)" mode="enumerate-files"/>
+  </xsl:when>
+  <xsl:otherwise>
+    <xsl:apply-templates select="/" mode="enumerate-files"/>
+  </xsl:otherwise>
+</xsl:choose>
+
+<xsl:if test="$htmlhelp.enumerate.images">
+  <xsl:variable name="imagelist">
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:apply-templates select="key('id',$rootid)" mode="enumerate-images"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="/" mode="enumerate-images"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0
+                    and function-available('set:distinct')">
+      <xsl:for-each select="set:distinct(exsl:node-set($imagelist)/filename)">
+        <xsl:value-of select="."/>
+        <xsl:text>&#10;</xsl:text>
+      </xsl:for-each>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$imagelist"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:if>
+
+<xsl:if test="($htmlhelp.force.map.and.alias != 0) or 
+              ($rootid = '' and //processing-instruction('dbhh')) or
+              ($rootid != '' and key('id',$rootid)//processing-instruction('dbhh'))">
+  <xsl:text>
+[ALIAS]
+#include </xsl:text><xsl:value-of select="$htmlhelp.alias.file"/><xsl:text>
+
+[MAP]
+#include </xsl:text><xsl:value-of select="$htmlhelp.map.file"/><xsl:text>
+</xsl:text>
+</xsl:if>
+
+<xsl:value-of select="$htmlhelp.hhp.tail"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="graphic|inlinegraphic[@format!='linespecific']" mode="enumerate-images">
+  <xsl:call-template name="write.filename.enumerate-images">
+    <xsl:with-param name="filename">
+      <xsl:call-template name="mediaobject.filename.enumerate-images">
+        <xsl:with-param name="object" select="."/>
+      </xsl:call-template>  
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="mediaobject|inlinemediaobject" mode="enumerate-images">
+  <xsl:call-template name="select.mediaobject.enumerate-images"/>
+</xsl:template>
+
+<xsl:template name="select.mediaobject.enumerate-images">
+  <xsl:param name="olist"
+             select="imageobject|imageobjectco
+                     |videoobject|audioobject|textobject"/>
+  <xsl:param name="count">1</xsl:param>
+
+  <xsl:if test="$count &lt;= count($olist)">
+    <xsl:variable name="object" select="$olist[position()=$count]"/>
+
+    <xsl:variable name="useobject">
+      <xsl:choose>
+        <!-- The phrase is never used -->
+        <xsl:when test="name($object)='textobject' and $object/phrase">
+          <xsl:text>0</xsl:text>
+        </xsl:when>
+        <!-- The first textobject is a reasonable fallback (but not for image in HH) -->
+        <xsl:when test="name($object)='textobject'">
+          <xsl:text>0</xsl:text>
+        </xsl:when>
+        <!-- If there's only one object, use it -->
+        <xsl:when test="$count = 1 and count($olist) = 1">
+          <xsl:text>1</xsl:text>
+        </xsl:when>
+        <!-- Otherwise, see if this one is a useable graphic -->
+        <xsl:otherwise>
+          <xsl:choose>
+            <!-- peek inside imageobjectco to simplify the test -->
+            <xsl:when test="local-name($object) = 'imageobjectco'">
+              <xsl:call-template name="is.acceptable.mediaobject">
+                <xsl:with-param name="object" select="$object/imageobject"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="is.acceptable.mediaobject">
+                <xsl:with-param name="object" select="$object"/>
+              </xsl:call-template>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:choose>
+      <xsl:when test="$useobject='1' and $object[not(*/@format='linespecific')]">
+        <xsl:call-template name="write.filename.enumerate-images">
+          <xsl:with-param name="filename">
+            <xsl:call-template name="mediaobject.filename.enumerate-images">
+              <xsl:with-param name="object" select="$object"/>
+            </xsl:call-template>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.enumerate-images">
+          <xsl:with-param name="olist" select="$olist"/>
+          <xsl:with-param name="count" select="$count + 1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="mediaobject.filename.enumerate-images">
+  <xsl:param name="object"/>
+
+  <xsl:variable name="urifilename">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="starts-with($urifilename, 'file:/')">
+        <xsl:value-of select="substring-after($urifilename, 'file:/')"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$urifilename"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:value-of select="translate($filename, '/', '\')"/>
+
+</xsl:template>
+
+<xsl:template match="text()" mode="enumerate-images">
+</xsl:template>
+
+<xsl:template name="write.filename.enumerate-images">
+  <xsl:param name="filename"/>
+  <xsl:choose>
+    <xsl:when test="function-available('exsl:node-set') and function-available('set:distinct')">
+      <filename><xsl:value-of select="$filename"/></filename>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$filename"/>
+      <xsl:text>&#10;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- HHC and HHK files are processed by compiler line by line
+     and therefore are very sensitive to whitespaces (linefeeds for sure).  -->
+
+<xsl:template name="hhc">
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="$htmlhelp.hhc"/>
+    </xsl:with-param>
+    <xsl:with-param name="indent" select="'no'"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="hhc-main"/>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="hhc-main">
+<HTML>&lf;
+ <HEAD></HEAD>&lf;
+ <BODY>&lf;
+  <xsl:if test="$htmlhelp.hhc.folders.instead.books != 0">
+   <OBJECT type="text/site properties">&lf;
+     <param name="ImageType" value="Folder"/>&lf;
+   </OBJECT>&lf;
+  </xsl:if>
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:apply-templates select="key('id',$rootid)" mode="hhc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="/" mode="hhc"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$htmlhelp.hhc.show.root != 0">
+      <UL>&lf;
+        <xsl:copy-of select="$content"/>
+      </UL>&lf;
+    </xsl:when>
+    <xsl:otherwise>
+    <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+ </BODY>
+</HTML>
+</xsl:template>
+
+<xsl:template name="hhc.entry">
+  <xsl:param 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:param>
+
+  <LI><OBJECT type="text/sitemap">&lf;
+    <param name="Name">
+      <xsl:attribute name="value">
+          <xsl:value-of select="normalize-space($title)"/>
+      </xsl:attribute>
+    </param>&lf;
+    <param name="Local">
+      <xsl:attribute name="value">
+          <xsl:call-template name="href.target.with.base.dir"/>
+      </xsl:attribute>
+    </param>
+  </OBJECT></LI>&lf;
+</xsl:template>
+
+<xsl:template match="set" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="book">
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <UL>
+      <xsl:if test="contains($toc.params, 'toc') and $htmlhelp.hhc.show.root = 0">
+      <LI><OBJECT type="text/sitemap">&lf;
+          <param name="Name">
+            <xsl:attribute name="value">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'TableofContents'"/>
+            </xsl:call-template>
+            </xsl:attribute>
+          </param>&lf;
+          <param name="Local">
+            <xsl:attribute name="value">
+              <xsl:choose>
+                <xsl:when test="$chunk.tocs.and.lots != 0">
+                  <xsl:apply-templates select="." mode="recursive-chunk-filename">
+                    <xsl:with-param name="recursive" select="true()"/>
+                  </xsl:apply-templates>
+                  <xsl:text>-toc</xsl:text>
+                  <xsl:value-of select="$html.ext"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:call-template name="href.target.with.base.dir"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+          </param>
+      </OBJECT></LI>&lf;
+      </xsl:if>
+      <xsl:apply-templates select="book" mode="hhc"/>
+    </UL>&lf;
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="book" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="part|reference|preface|chapter|appendix|bibliography|article|colophon|glossary">
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <UL>
+      <xsl:if test="contains($toc.params, 'toc') and $htmlhelp.hhc.show.root = 0 and not(parent::*)">
+        <LI><OBJECT type="text/sitemap">&lf;
+            <param name="Name">
+              <xsl:attribute name="value">
+                <xsl:call-template name="gentext">
+                  <xsl:with-param name="key" select="'TableofContents'"/>
+                </xsl:call-template>
+              </xsl:attribute>
+            </param>&lf;
+            <param name="Local">
+              <xsl:attribute name="value">
+                <xsl:choose>
+                  <xsl:when test="$chunk.tocs.and.lots != 0">
+                    <xsl:apply-templates select="." mode="recursive-chunk-filename">
+                      <xsl:with-param name="recursive" select="true()"/>
+                    </xsl:apply-templates>
+                    <xsl:text>-toc</xsl:text>
+                    <xsl:value-of select="$html.ext"/>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:call-template name="href.target.with.base.dir"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:attribute>
+            </param>
+        </OBJECT></LI>&lf;
+      </xsl:if>
+      <xsl:apply-templates select="part|reference|preface|chapter|bibliography|appendix|article|colophon|glossary"
+                           mode="hhc"/>
+    </UL>&lf;
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="part|reference|preface|chapter|bibliography|appendix|article|glossary"
+              mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="article|reference|preface|chapter|appendix|refentry|section|sect1|bibliodiv">
+    <UL>&lf;
+      <xsl:apply-templates
+        select="article|reference|preface|chapter|appendix|refentry|section|sect1|bibliodiv"
+        mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="section" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="section[count(ancestor::section) &lt; $htmlhelp.hhc.section.depth]|refentry">
+    <UL>&lf;
+      <xsl:apply-templates select="section|refentry" mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect1" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="sect2[$htmlhelp.hhc.section.depth > 1]|refentry">
+    <UL>&lf;
+      <xsl:apply-templates select="sect2|refentry"
+                           mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect2" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="sect3[$htmlhelp.hhc.section.depth > 2]|refentry">
+    <UL>&lf;
+      <xsl:apply-templates select="sect3|refentry"
+                           mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect3" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="sect4[$htmlhelp.hhc.section.depth > 3]|refentry">
+    <UL>&lf;
+      <xsl:apply-templates select="sect4|refentry"
+                           mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect4" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="sect5[$htmlhelp.hhc.section.depth > 4]|refentry">
+    <UL>&lf;
+      <xsl:apply-templates select="sect5|refentry"
+                           mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect5|refentry|colophon|bibliodiv" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="refentry">
+    <UL>&lf;
+      <xsl:apply-templates select="refentry"
+                           mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexterm">
+  <xsl:choose>
+    <xsl:when test="$htmlhelp.use.hhk = 0">
+  
+      <xsl:variable name="primary" select="normalize-space(primary)"/>
+      <xsl:variable name="secondary" select="normalize-space(secondary)"/>
+      <xsl:variable name="tertiary" select="normalize-space(tertiary)"/>
+      
+      <xsl:variable name="text">
+        <xsl:value-of select="$primary"/>
+        <xsl:if test="secondary">
+          <xsl:text>, </xsl:text>
+          <xsl:value-of select="$secondary"/>
+        </xsl:if>
+        <xsl:if test="tertiary">
+          <xsl:text>, </xsl:text>
+          <xsl:value-of select="$tertiary"/>
+        </xsl:if>
+      </xsl:variable>
+      
+      <xsl:if test="secondary">
+        <xsl:if test="not(//indexterm[normalize-space(primary)=$primary and not(secondary)])">
+          <xsl:call-template name="write.indexterm">
+            <xsl:with-param name="text" select="$primary"/>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:if>
+
+      <xsl:if test="tertiary">
+        <xsl:if test="not(//indexterm[normalize-space(primary)=$primary and 
+                                      normalize-space(secondary)=$secondary and not(tertiary)])">
+          <xsl:call-template name="write.indexterm">
+            <xsl:with-param name="text" select="concat($primary, ', ', $secondary)"/>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:if>
+      
+      <xsl:call-template name="write.indexterm">
+        <xsl:with-param name="text" select="$text"/>
+      </xsl:call-template>
+      
+    </xsl:when>
+    <xsl:otherwise>
+      <a>
+        <xsl:attribute name="name">
+          <xsl:call-template name="object.id"/>
+        </xsl:attribute>
+      </a>
+    </xsl:otherwise>
+    
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.indexterm">
+  <xsl:param name="text"/>
+  <OBJECT type="application/x-oleobject"
+          classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
+    <param name="Keyword" value="{$text}"/>
+  </OBJECT>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="hhk">
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="$htmlhelp.hhk"/>
+    </xsl:with-param>
+    <xsl:with-param name="indent" select="'no'"/>
+    <xsl:with-param name="content"><xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+<HEAD>
+<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
+<!-- Sitemap 1.0 -->
+</HEAD><BODY>
+<OBJECT type="text/site properties">
+</OBJECT>
+<UL>]]>
+</xsl:text>
+<xsl:if test="($htmlhelp.use.hhk != 0) and $htmlhelp.generate.index">
+  <xsl:choose>
+    <xsl:when test="$rootid != ''">
+      <xsl:apply-templates select="key('id',$rootid)" mode="hhk"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="/" mode="hhk"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:if>
+<xsl:text disable-output-escaping="yes"><![CDATA[</UL>
+</BODY></HTML>]]>
+</xsl:text></xsl:with-param>
+    <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="indexterm[@class='endofrange']" mode="hhk"/>
+
+<xsl:template match="indexterm" mode="hhk">
+  <xsl:variable name="primary" select="normalize-space(primary)"/>
+  <xsl:variable name="secondary" select="normalize-space(secondary)"/>
+  <xsl:variable name="tertiary" select="normalize-space(tertiary)"/>
+
+  <xsl:call-template name="write.indexterm.hhk">
+    <xsl:with-param name="text" select="$primary"/>
+    <xsl:with-param name="seealso" select="seealso"/>
+  </xsl:call-template>
+
+  <xsl:if test="secondary">
+    <xsl:if test="not(//indexterm[normalize-space(primary)=$primary and not(secondary)])">
+      <xsl:call-template name="write.indexterm.hhk">
+        <!-- We must create fake entry when there is secondary without primary --> 
+        <xsl:with-param name="text" select="$primary"/>
+        <xsl:with-param name="seealso" select="$primary"/>
+      </xsl:call-template>
+    </xsl:if>
+    <UL>
+    <xsl:call-template name="write.indexterm.hhk">
+      <xsl:with-param name="text" select="$secondary"/>
+      <xsl:with-param name="seealso" select="secondary/seealso"/>
+    </xsl:call-template>
+    <xsl:if test="tertiary">
+      <UL>&lf;
+      <xsl:call-template name="write.indexterm.hhk">
+        <xsl:with-param name="text" select="$tertiary"/>
+        <xsl:with-param name="seealso" select="tertiary/seealso"/>
+      </xsl:call-template>
+      </UL>
+    </xsl:if>
+    </UL>
+  </xsl:if>
+
+</xsl:template>
+
+<xsl:template name="write.indexterm.hhk">
+  <xsl:param name="text"/>
+  <xsl:param name="seealso"/>
+
+  <LI> <OBJECT type="text/sitemap">&lf;
+    <param name="Name">
+      <xsl:attribute name="value">
+        <xsl:value-of select="$text"/>
+      </xsl:attribute>
+    </param>&lf;
+
+      <xsl:if test="not(seealso)">
+        <xsl:variable name="href">
+          <xsl:call-template name="href.target.with.base.dir"/>
+        </xsl:variable>
+        <xsl:variable name="title">
+          <xsl:call-template name="nearest.title">
+            <xsl:with-param name="object" select=".."/>
+          </xsl:call-template>
+        </xsl:variable>
+
+        <param name="Name">
+          <xsl:attribute name="value">
+          <xsl:value-of select="$title"/>
+          </xsl:attribute>
+        </param>&lf;
+        <param name="Local">
+          <xsl:attribute name="value">
+          <xsl:value-of select="$href"/>
+          </xsl:attribute>
+        </param>&lf;
+      </xsl:if>
+
+      <xsl:if test="seealso">
+        <param name="See Also">
+          <xsl:attribute name="value">
+          <xsl:value-of select="$seealso"/>
+          </xsl:attribute>
+        </param>&lf;
+      </xsl:if>
+      </OBJECT></LI>
+</xsl:template>
+
+<xsl:template match="text()" mode="hhk"/>
+
+<xsl:template name="nearest.title">
+  <xsl:param name="object"/>
+  <xsl:apply-templates select="$object/ancestor-or-self::*[title][1]" mode="title.markup"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="hh-map">
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="$htmlhelp.map.file"/>
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+     <xsl:choose>
+       <xsl:when test="$rootid != ''">
+         <xsl:apply-templates select="key('id',$rootid)" mode="hh-map"/>
+       </xsl:when>
+       <xsl:otherwise>
+         <xsl:apply-templates select="/" mode="hh-map"/>
+       </xsl:otherwise>
+     </xsl:choose>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbhh')" mode="hh-map">
+  <xsl:variable name="topicname">
+    <xsl:call-template name="pi-attribute">
+      <xsl:with-param name="pis"
+                      select="."/>
+      <xsl:with-param name="attribute" select="'topicname'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="topicid">
+    <xsl:call-template name="pi-attribute">
+      <xsl:with-param name="pis"
+                      select="."/>
+      <xsl:with-param name="attribute" select="'topicid'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:text>#define </xsl:text>
+  <xsl:value-of select="$topicname"/>
+  <xsl:text>&#9;</xsl:text>
+  <xsl:value-of select="$topicid"/>
+  <xsl:text>&#xA;</xsl:text>
+</xsl:template>
+
+<xsl:template match="text()" mode="hh-map"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="hh-alias">
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="$htmlhelp.alias.file"/>
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+     <xsl:choose>
+       <xsl:when test="$rootid != ''">
+         <xsl:apply-templates select="key('id',$rootid)" mode="hh-alias"/>
+       </xsl:when>
+       <xsl:otherwise>
+         <xsl:apply-templates select="/" mode="hh-alias"/>
+       </xsl:otherwise>
+     </xsl:choose>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbhh')" mode="hh-alias">
+  <xsl:variable name="topicname">
+    <xsl:call-template name="pi-attribute">
+      <xsl:with-param name="pis"
+                      select="."/>
+      <xsl:with-param name="attribute" select="'topicname'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:call-template name="href.target.with.base.dir">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:value-of select="$topicname"/>
+  <xsl:text>=</xsl:text>
+  <!-- Some versions of HH doesn't like fragment identifires, but some does. -->
+  <!-- <xsl:value-of select="substring-before(concat($href, '#'), '#')"/> -->
+  <xsl:value-of select="$href"/>
+  <xsl:text>&#xA;</xsl:text>
+</xsl:template>
+
+<xsl:template match="text()" mode="hh-alias"/>
+
+<!-- ==================================================================== -->
+<!-- This code can be used to convert any number to hexadecimal format -->
+
+  <h:hex>
+    <d>0</d>
+    <d>1</d>
+    <d>2</d>
+    <d>3</d>
+    <d>4</d>
+    <d>5</d>
+    <d>6</d>
+    <d>7</d>
+    <d>8</d>
+    <d>9</d>
+    <d>A</d>
+    <d>B</d>
+    <d>C</d>
+    <d>D</d>
+    <d>E</d>
+    <d>F</d>
+  </h:hex>
+
+  <xsl:template name="toHex">
+    <xsl:param name="n" select="0"/>
+    <xsl:param name="digit" select="$n mod 16"/>
+    <xsl:param name="rest" select="floor($n div 16)"/>
+    <xsl:if test="$rest > 0">
+      <xsl:call-template name="toHex">
+        <xsl:with-param name="n" select="$rest"/>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:value-of select="document('')//h:hex/d[$digit+1]"/>
+  </xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Modification to standard HTML stylesheets -->
+
+<!-- There are links from ToC pane to bibliodivs, so there must be anchor -->
+<xsl:template match="bibliodiv/title">
+  <h3 class="{name(.)}">
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/htmlhelp/htmlhelp.xsl b/applications/content/template/docbook/htmlhelp/htmlhelp.xsl
new file mode 100644
index 0000000..aa0e7c7
--- /dev/null
+++ b/applications/content/template/docbook/htmlhelp/htmlhelp.xsl
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<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$
+     ******************************************************************** 
+
+     This file is used by htmlhelp.xsl if you want to generate source
+     files for HTML Help.  It is based on the XSL DocBook Stylesheet
+     distribution (especially on JavaHelp code) from Norman Walsh.
+
+     ******************************************************************** -->
+
+<xsl:import href="../html/chunk.xsl"/>
+<xsl:include href="htmlhelp-common.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/htmlhelp/profile-htmlhelp-common.xsl b/applications/content/template/docbook/htmlhelp/profile-htmlhelp-common.xsl
new file mode 100644
index 0000000..92b7af0
--- /dev/null
+++ b/applications/content/template/docbook/htmlhelp/profile-htmlhelp-common.xsl
@@ -0,0 +1,1083 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<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" xmlns:h="urn:x-hex" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exslt="http://exslt.org/common" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" version="1.0" exclude-result-prefixes="doc exsl set h db ng exslt">
+
+<!-- ********************************************************************
+     $Id$
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- Customizations of standard HTML stylesheet parameters -->
+
+<!-- no navigation on pages by default, HTML Help provides its own navigation controls -->
+<xsl:param name="suppress.navigation" select="1"/>
+
+<!-- no separate HTML page with index, index is built inside CHM index pane -->
+<xsl:param name="generate.index" select="0"/>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="htmlhelp.generate.index" select="//indexterm[1]|//db:indexterm[1]|//ng:indexterm[1]"/>
+  
+<!-- Set up HTML Help flag -->
+<xsl:variable name="htmlhelp.output" select="1"/>
+
+<!-- ==================================================================== -->
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <xsl:when test="false()"/>
+    <xsl:otherwise>
+  <xsl:if test="$htmlhelp.only != 1">
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:choose>
+          <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0">
+            <xsl:message terminate="yes">
+              <xsl:text>ID '</xsl:text>
+              <xsl:value-of select="$rootid"/>
+              <xsl:text>' not found in document.</xsl:text>
+            </xsl:message>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message>Formatting from <xsl:value-of select="$rootid"/></xsl:message>
+            <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:if test="$collect.xref.targets = 'yes' or                       $collect.xref.targets = 'only'">
+          <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
+        </xsl:if>
+        <xsl:if test="$collect.xref.targets != 'only'">
+          <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+
+
+  <xsl:if test="$collect.xref.targets != 'only'">
+    <xsl:call-template name="hhp"/>
+    <xsl:call-template name="hhc"/>
+    <xsl:if test="($rootid = '' and //processing-instruction('dbhh')) or                   ($rootid != '' and $profiled-nodes//*[@id=$rootid]//processing-instruction('dbhh'))">
+      <xsl:call-template name="hh-map"/>
+      <xsl:call-template name="hh-alias"/>
+    </xsl:if>
+    <xsl:if test="$htmlhelp.generate.index">
+      <xsl:call-template name="hhk"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="hhp">
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="$htmlhelp.hhp"/>
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="hhp-main"/>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="hhp-main">
+
+  <xsl:variable name="raw.help.title">
+    <xsl:choose>
+      <xsl:when test="$htmlhelp.title = ''">
+        <xsl:choose>
+          <xsl:when test="$rootid != ''">
+            <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="title.markup"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="$profiled-nodes/*" mode="title.markup"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$htmlhelp.title"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="help.title" select="normalize-space($raw.help.title)"/>
+  
+<xsl:variable name="default.topic">
+  <xsl:choose>
+    <xsl:when test="$htmlhelp.default.topic != ''">
+      <xsl:value-of select="$htmlhelp.default.topic"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir">
+          <xsl:if test="$manifest.in.base.dir = 0">
+            <xsl:value-of select="$chunk.base.dir"/>
+          </xsl:if>
+        </xsl:with-param>
+        <xsl:with-param name="base.name">
+          <xsl:choose>
+            <xsl:when test="$rootid != ''">
+              <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="chunk-filename"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="$profiled-nodes" mode="chunk-filename"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+<xsl:variable name="xnavigation">
+  <xsl:text>0x</xsl:text>
+  <xsl:call-template name="toHex">
+    <xsl:with-param name="n" select="9504 + $htmlhelp.show.menu * 65536                                           + $htmlhelp.show.advanced.search * 131072                                           + $htmlhelp.show.favorities * 4096                                           + (1 - $htmlhelp.show.toolbar.text) * 64                                           + $htmlhelp.remember.window.position * 262144"/>
+  </xsl:call-template>
+</xsl:variable>
+<xsl:variable name="xbuttons">
+  <xsl:text>0x</xsl:text>
+  <xsl:call-template name="toHex">
+    <xsl:with-param name="n" select="0 + $htmlhelp.button.hideshow * 2                                        + $htmlhelp.button.back * 4                                        + $htmlhelp.button.forward * 8                                        + $htmlhelp.button.stop * 16                                        + $htmlhelp.button.refresh * 32                                        + $htmlhelp.button.home * 64                                        + $htmlhelp.button.options * 4096                                        + $htmlhelp.button.print * 8192                                        + $htmlhelp.button.locate * 2048                                        + $htmlhelp.button.jump1 * 262144                                        + $htmlhelp.button.jump2 * 524288                                        + $htmlhelp.button.next * 2097152                                        + $htmlhelp.button.prev * 4194304                                        + $htmlhelp.button.zoom * 1048576"/>
+  </xsl:call-template>
+</xsl:variable>
+<xsl:text>[OPTIONS]
+</xsl:text>
+<xsl:if test="$htmlhelp.generate.index">
+<xsl:text>Auto Index=Yes
+</xsl:text></xsl:if>
+<xsl:if test="$htmlhelp.hhc.binary != 0">
+<xsl:text>Binary TOC=Yes
+</xsl:text></xsl:if>
+<xsl:text>Compatibility=1.1 or later
+Compiled file=</xsl:text><xsl:value-of select="$htmlhelp.chm"/><xsl:text>
+Contents file=</xsl:text><xsl:value-of select="$htmlhelp.hhc"/><xsl:text>
+</xsl:text>
+<xsl:if test="$htmlhelp.hhp.window != ''">
+<xsl:text>Default Window=</xsl:text><xsl:value-of select="$htmlhelp.hhp.window"/><xsl:text>
+</xsl:text></xsl:if>
+<xsl:text>Default topic=</xsl:text><xsl:value-of select="$default.topic"/>
+<xsl:text>
+Display compile progress=</xsl:text>
+  <xsl:choose>
+    <xsl:when test="$htmlhelp.display.progress != 1">
+      <xsl:text>No</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>Yes</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+<xsl:text>
+Full-text search=Yes
+</xsl:text>
+<xsl:if test="$htmlhelp.generate.index">
+<xsl:text>Index file=</xsl:text><xsl:value-of select="$htmlhelp.hhk"/><xsl:text>
+</xsl:text></xsl:if>
+<xsl:text>Language=</xsl:text>
+<xsl:for-each select="*">   <!-- Change context from / to root element -->
+  <xsl:call-template name="gentext.template">
+    <xsl:with-param name="context" select="'htmlhelp'"/>
+    <xsl:with-param name="name" select="'langcode'"/>
+  </xsl:call-template>
+</xsl:for-each>
+<xsl:text>
+Title=</xsl:text>
+  <xsl:value-of select="$help.title"/>
+<xsl:text>
+Enhanced decompilation=</xsl:text>
+  <xsl:choose>
+    <xsl:when test="$htmlhelp.enhanced.decompilation != 0">
+      <xsl:text>Yes</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>No</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+
+<xsl:if test="$htmlhelp.hhp.window != ''">
+  <xsl:text>
+
+[WINDOWS]
+</xsl:text>
+<xsl:value-of select="$htmlhelp.hhp.window"/>
+<xsl:text>="</xsl:text>
+<xsl:value-of select="$help.title"/>
+<xsl:text>","</xsl:text><xsl:value-of select="$htmlhelp.hhc"/>
+<xsl:text>",</xsl:text>
+<xsl:if test="$htmlhelp.generate.index">
+  <xsl:text>"</xsl:text>
+  <xsl:value-of select="$htmlhelp.hhk"/>
+  <xsl:text>"</xsl:text>
+</xsl:if>
+<xsl:text>,"</xsl:text>
+<xsl:value-of select="$default.topic"/>
+<xsl:text>",</xsl:text>
+<xsl:text>"</xsl:text>
+<xsl:choose>
+  <xsl:when test="$htmlhelp.button.home != 0">
+    <xsl:value-of select="$htmlhelp.button.home.url"/>
+  </xsl:when>
+  <xsl:otherwise>
+    <xsl:value-of select="$default.topic"/>
+  </xsl:otherwise>
+</xsl:choose>
+<xsl:text>"</xsl:text>
+<xsl:text>,</xsl:text>
+<xsl:if test="$htmlhelp.button.jump1 != 0">
+  <xsl:text>"</xsl:text>
+  <xsl:value-of select="$htmlhelp.button.jump1.url"/>
+  <xsl:text>"</xsl:text>
+</xsl:if>
+<xsl:text>,</xsl:text>
+<xsl:if test="$htmlhelp.button.jump1 != 0">
+  <xsl:text>"</xsl:text>
+  <xsl:value-of select="$htmlhelp.button.jump1.title"/>
+  <xsl:text>"</xsl:text>
+</xsl:if>
+<xsl:text>,</xsl:text>
+<xsl:if test="$htmlhelp.button.jump2 != 0">
+  <xsl:text>"</xsl:text>
+  <xsl:value-of select="$htmlhelp.button.jump2.url"/>
+  <xsl:text>"</xsl:text>
+</xsl:if>
+<xsl:text>,</xsl:text>
+<xsl:if test="$htmlhelp.button.jump2 != 0">
+  <xsl:text>"</xsl:text>
+  <xsl:value-of select="$htmlhelp.button.jump2.title"/>
+  <xsl:text>"</xsl:text>
+</xsl:if>
+<xsl:text>,</xsl:text>
+<xsl:value-of select="$xnavigation"/>
+<xsl:text>,</xsl:text><xsl:value-of select="$htmlhelp.hhc.width"/><xsl:text>,</xsl:text>
+<xsl:value-of select="$xbuttons"/>
+<xsl:text>,</xsl:text><xsl:value-of select="$htmlhelp.window.geometry"/><xsl:text>,,,,,,,0
+</xsl:text>
+</xsl:if>
+
+<!-- 
+  Needs more investigation to generate propetly all fields 
+<xsl:text>search="</xsl:text>
+<xsl:value-of select="normalize-space(//title[1])"/>
+<xsl:text>","toc.hhc","index.hhk","</xsl:text>
+<xsl:value-of select="$root.filename"/>
+<xsl:text>.html","</xsl:text>
+<xsl:value-of select="$root.filename"/>
+<xsl:text>.html",,,,,</xsl:text>
+<xsl:value-of select="$xnavigation"/>
+<xsl:text>,</xsl:text>
+<xsl:value-of select="$htmlhelp.hhc.width"/>
+<xsl:text>,</xsl:text>
+<xsl:value-of select="$xbuttons"/>
+<xsl:text>,</xsl:text>
+<xsl:value-of select="$htmlhelp.window.geometry"/>
+<xsl:text>,,,,,2,,0
+</xsl:text>
+-->
+
+<xsl:if test="$htmlhelp.hhp.windows">
+  <xsl:value-of select="$htmlhelp.hhp.windows"/>
+</xsl:if>
+<xsl:text>
+
+[FILES]
+</xsl:text>
+
+<xsl:choose>
+  <xsl:when test="$rootid != ''">
+    <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="enumerate-files"/>
+  </xsl:when>
+  <xsl:otherwise>
+    <xsl:apply-templates select="$profiled-nodes" mode="enumerate-files"/>
+  </xsl:otherwise>
+</xsl:choose>
+
+<xsl:if test="$htmlhelp.enumerate.images">
+  <xsl:variable name="imagelist">
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="enumerate-images"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="$profiled-nodes" mode="enumerate-images"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0                     and function-available('set:distinct')">
+      <xsl:for-each select="set:distinct(exsl:node-set($imagelist)/filename)">
+        <xsl:value-of select="."/>
+        <xsl:text>
+</xsl:text>
+      </xsl:for-each>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$imagelist"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:if>
+
+<xsl:if test="($htmlhelp.force.map.and.alias != 0) or                ($rootid = '' and //processing-instruction('dbhh')) or               ($rootid != '' and $profiled-nodes//*[@id=$rootid]//processing-instruction('dbhh'))">
+  <xsl:text>
+[ALIAS]
+#include </xsl:text><xsl:value-of select="$htmlhelp.alias.file"/><xsl:text>
+
+[MAP]
+#include </xsl:text><xsl:value-of select="$htmlhelp.map.file"/><xsl:text>
+</xsl:text>
+</xsl:if>
+
+<xsl:value-of select="$htmlhelp.hhp.tail"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="graphic|inlinegraphic[@format!='linespecific']" mode="enumerate-images">
+  <xsl:call-template name="write.filename.enumerate-images">
+    <xsl:with-param name="filename">
+      <xsl:call-template name="mediaobject.filename.enumerate-images">
+        <xsl:with-param name="object" select="."/>
+      </xsl:call-template>  
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="mediaobject|inlinemediaobject" mode="enumerate-images">
+  <xsl:call-template name="select.mediaobject.enumerate-images"/>
+</xsl:template>
+
+<xsl:template name="select.mediaobject.enumerate-images">
+  <xsl:param name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject|textobject"/>
+  <xsl:param name="count">1</xsl:param>
+
+  <xsl:if test="$count &lt;= count($olist)">
+    <xsl:variable name="object" select="$olist[position()=$count]"/>
+
+    <xsl:variable name="useobject">
+      <xsl:choose>
+        <!-- The phrase is never used -->
+        <xsl:when test="name($object)='textobject' and $object/phrase">
+          <xsl:text>0</xsl:text>
+        </xsl:when>
+        <!-- The first textobject is a reasonable fallback (but not for image in HH) -->
+        <xsl:when test="name($object)='textobject'">
+          <xsl:text>0</xsl:text>
+        </xsl:when>
+        <!-- If there's only one object, use it -->
+        <xsl:when test="$count = 1 and count($olist) = 1">
+          <xsl:text>1</xsl:text>
+        </xsl:when>
+        <!-- Otherwise, see if this one is a useable graphic -->
+        <xsl:otherwise>
+          <xsl:choose>
+            <!-- peek inside imageobjectco to simplify the test -->
+            <xsl:when test="local-name($object) = 'imageobjectco'">
+              <xsl:call-template name="is.acceptable.mediaobject">
+                <xsl:with-param name="object" select="$object/imageobject"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="is.acceptable.mediaobject">
+                <xsl:with-param name="object" select="$object"/>
+              </xsl:call-template>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:choose>
+      <xsl:when test="$useobject='1' and $object[not(*/@format='linespecific')]">
+        <xsl:call-template name="write.filename.enumerate-images">
+          <xsl:with-param name="filename">
+            <xsl:call-template name="mediaobject.filename.enumerate-images">
+              <xsl:with-param name="object" select="$object"/>
+            </xsl:call-template>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.enumerate-images">
+          <xsl:with-param name="olist" select="$olist"/>
+          <xsl:with-param name="count" select="$count + 1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="mediaobject.filename.enumerate-images">
+  <xsl:param name="object"/>
+
+  <xsl:variable name="urifilename">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="starts-with($urifilename, 'file:/')">
+        <xsl:value-of select="substring-after($urifilename, 'file:/')"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$urifilename"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:value-of select="translate($filename, '/', '\')"/>
+
+</xsl:template>
+
+<xsl:template match="text()" mode="enumerate-images">
+</xsl:template>
+
+<xsl:template name="write.filename.enumerate-images">
+  <xsl:param name="filename"/>
+  <xsl:choose>
+    <xsl:when test="function-available('exsl:node-set') and function-available('set:distinct')">
+      <filename><xsl:value-of select="$filename"/></filename>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$filename"/>
+      <xsl:text>
+</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- HHC and HHK files are processed by compiler line by line
+     and therefore are very sensitive to whitespaces (linefeeds for sure).  -->
+
+<xsl:template name="hhc">
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="$htmlhelp.hhc"/>
+    </xsl:with-param>
+    <xsl:with-param name="indent" select="'no'"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="hhc-main"/>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="hhc-main">
+<HTML><xsl:text>
+</xsl:text>
+ <HEAD/><xsl:text>
+</xsl:text>
+ <BODY><xsl:text>
+</xsl:text>
+  <xsl:if test="$htmlhelp.hhc.folders.instead.books != 0">
+   <OBJECT type="text/site properties"><xsl:text>
+</xsl:text>
+     <param name="ImageType" value="Folder"/><xsl:text>
+</xsl:text>
+   </OBJECT><xsl:text>
+</xsl:text>
+  </xsl:if>
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="hhc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="$profiled-nodes" mode="hhc"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$htmlhelp.hhc.show.root != 0">
+      <UL><xsl:text>
+</xsl:text>
+        <xsl:copy-of select="$content"/>
+      </UL><xsl:text>
+</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+    <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+ </BODY>
+</HTML>
+</xsl:template>
+
+<xsl:template name="hhc.entry">
+  <xsl:param 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:param>
+
+  <LI><OBJECT type="text/sitemap"><xsl:text>
+</xsl:text>
+    <param name="Name">
+      <xsl:attribute name="value">
+          <xsl:value-of select="normalize-space($title)"/>
+      </xsl:attribute>
+    </param><xsl:text>
+</xsl:text>
+    <param name="Local">
+      <xsl:attribute name="value">
+          <xsl:call-template name="href.target.with.base.dir"/>
+      </xsl:attribute>
+    </param>
+  </OBJECT></LI><xsl:text>
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="set" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="book">
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <UL>
+      <xsl:if test="contains($toc.params, 'toc') and $htmlhelp.hhc.show.root = 0">
+      <LI><OBJECT type="text/sitemap"><xsl:text>
+</xsl:text>
+          <param name="Name">
+            <xsl:attribute name="value">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'TableofContents'"/>
+            </xsl:call-template>
+            </xsl:attribute>
+          </param><xsl:text>
+</xsl:text>
+          <param name="Local">
+            <xsl:attribute name="value">
+              <xsl:choose>
+                <xsl:when test="$chunk.tocs.and.lots != 0">
+                  <xsl:apply-templates select="." mode="recursive-chunk-filename">
+                    <xsl:with-param name="recursive" select="true()"/>
+                  </xsl:apply-templates>
+                  <xsl:text>-toc</xsl:text>
+                  <xsl:value-of select="$html.ext"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:call-template name="href.target.with.base.dir"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+          </param>
+      </OBJECT></LI><xsl:text>
+</xsl:text>
+      </xsl:if>
+      <xsl:apply-templates select="book" mode="hhc"/>
+    </UL><xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="book" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="part|reference|preface|chapter|appendix|bibliography|article|colophon|glossary">
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <UL>
+      <xsl:if test="contains($toc.params, 'toc') and $htmlhelp.hhc.show.root = 0 and not(parent::*)">
+        <LI><OBJECT type="text/sitemap"><xsl:text>
+</xsl:text>
+            <param name="Name">
+              <xsl:attribute name="value">
+                <xsl:call-template name="gentext">
+                  <xsl:with-param name="key" select="'TableofContents'"/>
+                </xsl:call-template>
+              </xsl:attribute>
+            </param><xsl:text>
+</xsl:text>
+            <param name="Local">
+              <xsl:attribute name="value">
+                <xsl:choose>
+                  <xsl:when test="$chunk.tocs.and.lots != 0">
+                    <xsl:apply-templates select="." mode="recursive-chunk-filename">
+                      <xsl:with-param name="recursive" select="true()"/>
+                    </xsl:apply-templates>
+                    <xsl:text>-toc</xsl:text>
+                    <xsl:value-of select="$html.ext"/>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:call-template name="href.target.with.base.dir"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:attribute>
+            </param>
+        </OBJECT></LI><xsl:text>
+</xsl:text>
+      </xsl:if>
+      <xsl:apply-templates select="part|reference|preface|chapter|bibliography|appendix|article|colophon|glossary" mode="hhc"/>
+    </UL><xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="part|reference|preface|chapter|bibliography|appendix|article|glossary" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="article|reference|preface|chapter|appendix|refentry|section|sect1|bibliodiv">
+    <UL><xsl:text>
+</xsl:text>
+      <xsl:apply-templates select="article|reference|preface|chapter|appendix|refentry|section|sect1|bibliodiv" mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="section" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="section[count(ancestor::section) &lt; $htmlhelp.hhc.section.depth]|refentry">
+    <UL><xsl:text>
+</xsl:text>
+      <xsl:apply-templates select="section|refentry" mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect1" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="sect2[$htmlhelp.hhc.section.depth &gt; 1]|refentry">
+    <UL><xsl:text>
+</xsl:text>
+      <xsl:apply-templates select="sect2|refentry" mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect2" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="sect3[$htmlhelp.hhc.section.depth &gt; 2]|refentry">
+    <UL><xsl:text>
+</xsl:text>
+      <xsl:apply-templates select="sect3|refentry" mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect3" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="sect4[$htmlhelp.hhc.section.depth &gt; 3]|refentry">
+    <UL><xsl:text>
+</xsl:text>
+      <xsl:apply-templates select="sect4|refentry" mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect4" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="sect5[$htmlhelp.hhc.section.depth &gt; 4]|refentry">
+    <UL><xsl:text>
+</xsl:text>
+      <xsl:apply-templates select="sect5|refentry" mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect5|refentry|colophon|bibliodiv" mode="hhc">
+  <xsl:if test="$htmlhelp.hhc.show.root != 0 or parent::*">
+    <xsl:call-template name="hhc.entry"/>
+  </xsl:if>
+  <xsl:if test="refentry">
+    <UL><xsl:text>
+</xsl:text>
+      <xsl:apply-templates select="refentry" mode="hhc"/>
+    </UL>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexterm">
+  <xsl:choose>
+    <xsl:when test="$htmlhelp.use.hhk = 0">
+  
+      <xsl:variable name="primary" select="normalize-space(primary)"/>
+      <xsl:variable name="secondary" select="normalize-space(secondary)"/>
+      <xsl:variable name="tertiary" select="normalize-space(tertiary)"/>
+      
+      <xsl:variable name="text">
+        <xsl:value-of select="$primary"/>
+        <xsl:if test="secondary">
+          <xsl:text>, </xsl:text>
+          <xsl:value-of select="$secondary"/>
+        </xsl:if>
+        <xsl:if test="tertiary">
+          <xsl:text>, </xsl:text>
+          <xsl:value-of select="$tertiary"/>
+        </xsl:if>
+      </xsl:variable>
+      
+      <xsl:if test="secondary">
+        <xsl:if test="not(//indexterm[normalize-space(primary)=$primary and not(secondary)])">
+          <xsl:call-template name="write.indexterm">
+            <xsl:with-param name="text" select="$primary"/>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:if>
+
+      <xsl:if test="tertiary">
+        <xsl:if test="not(//indexterm[normalize-space(primary)=$primary and                                        normalize-space(secondary)=$secondary and not(tertiary)])">
+          <xsl:call-template name="write.indexterm">
+            <xsl:with-param name="text" select="concat($primary, ', ', $secondary)"/>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:if>
+      
+      <xsl:call-template name="write.indexterm">
+        <xsl:with-param name="text" select="$text"/>
+      </xsl:call-template>
+      
+    </xsl:when>
+    <xsl:otherwise>
+      <a>
+        <xsl:attribute name="name">
+          <xsl:call-template name="object.id"/>
+        </xsl:attribute>
+      </a>
+    </xsl:otherwise>
+    
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.indexterm">
+  <xsl:param name="text"/>
+  <OBJECT type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
+    <param name="Keyword" value="{$text}"/>
+  </OBJECT>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="hhk">
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="$htmlhelp.hhk"/>
+    </xsl:with-param>
+    <xsl:with-param name="indent" select="'no'"/>
+    <xsl:with-param name="content"><xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
+&lt;HTML&gt;
+&lt;HEAD&gt;
+&lt;meta name="GENERATOR" content="Microsoft&amp;reg; HTML Help Workshop 4.1"&gt;
+&lt;!-- Sitemap 1.0 --&gt;
+&lt;/HEAD&gt;&lt;BODY&gt;
+&lt;OBJECT type="text/site properties"&gt;
+&lt;/OBJECT&gt;
+&lt;UL&gt;
+</xsl:text>
+<xsl:if test="($htmlhelp.use.hhk != 0) and $htmlhelp.generate.index">
+  <xsl:choose>
+    <xsl:when test="$rootid != ''">
+      <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="hhk"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="$profiled-nodes" mode="hhk"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:if>
+<xsl:text disable-output-escaping="yes">&lt;/UL&gt;
+&lt;/BODY&gt;&lt;/HTML&gt;
+</xsl:text></xsl:with-param>
+    <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="indexterm[@class='endofrange']" mode="hhk"/>
+
+<xsl:template match="indexterm" mode="hhk">
+  <xsl:variable name="primary" select="normalize-space(primary)"/>
+  <xsl:variable name="secondary" select="normalize-space(secondary)"/>
+  <xsl:variable name="tertiary" select="normalize-space(tertiary)"/>
+
+  <xsl:call-template name="write.indexterm.hhk">
+    <xsl:with-param name="text" select="$primary"/>
+    <xsl:with-param name="seealso" select="seealso"/>
+  </xsl:call-template>
+
+  <xsl:if test="secondary">
+    <xsl:if test="not(//indexterm[normalize-space(primary)=$primary and not(secondary)])">
+      <xsl:call-template name="write.indexterm.hhk">
+        <!-- We must create fake entry when there is secondary without primary --> 
+        <xsl:with-param name="text" select="$primary"/>
+        <xsl:with-param name="seealso" select="$primary"/>
+      </xsl:call-template>
+    </xsl:if>
+    <UL>
+    <xsl:call-template name="write.indexterm.hhk">
+      <xsl:with-param name="text" select="$secondary"/>
+      <xsl:with-param name="seealso" select="secondary/seealso"/>
+    </xsl:call-template>
+    <xsl:if test="tertiary">
+      <UL><xsl:text>
+</xsl:text>
+      <xsl:call-template name="write.indexterm.hhk">
+        <xsl:with-param name="text" select="$tertiary"/>
+        <xsl:with-param name="seealso" select="tertiary/seealso"/>
+      </xsl:call-template>
+      </UL>
+    </xsl:if>
+    </UL>
+  </xsl:if>
+
+</xsl:template>
+
+<xsl:template name="write.indexterm.hhk">
+  <xsl:param name="text"/>
+  <xsl:param name="seealso"/>
+
+  <LI> <OBJECT type="text/sitemap"><xsl:text>
+</xsl:text>
+    <param name="Name">
+      <xsl:attribute name="value">
+        <xsl:value-of select="$text"/>
+      </xsl:attribute>
+    </param><xsl:text>
+</xsl:text>
+
+      <xsl:if test="not(seealso)">
+        <xsl:variable name="href">
+          <xsl:call-template name="href.target.with.base.dir"/>
+        </xsl:variable>
+        <xsl:variable name="title">
+          <xsl:call-template name="nearest.title">
+            <xsl:with-param name="object" select=".."/>
+          </xsl:call-template>
+        </xsl:variable>
+
+        <param name="Name">
+          <xsl:attribute name="value">
+          <xsl:value-of select="$title"/>
+          </xsl:attribute>
+        </param><xsl:text>
+</xsl:text>
+        <param name="Local">
+          <xsl:attribute name="value">
+          <xsl:value-of select="$href"/>
+          </xsl:attribute>
+        </param><xsl:text>
+</xsl:text>
+      </xsl:if>
+
+      <xsl:if test="seealso">
+        <param name="See Also">
+          <xsl:attribute name="value">
+          <xsl:value-of select="$seealso"/>
+          </xsl:attribute>
+        </param><xsl:text>
+</xsl:text>
+      </xsl:if>
+      </OBJECT></LI>
+</xsl:template>
+
+<xsl:template match="text()" mode="hhk"/>
+
+<xsl:template name="nearest.title">
+  <xsl:param name="object"/>
+  <xsl:apply-templates select="$object/ancestor-or-self::*[title][1]" mode="title.markup"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="hh-map">
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="$htmlhelp.map.file"/>
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+     <xsl:choose>
+       <xsl:when test="$rootid != ''">
+         <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="hh-map"/>
+       </xsl:when>
+       <xsl:otherwise>
+         <xsl:apply-templates select="$profiled-nodes" mode="hh-map"/>
+       </xsl:otherwise>
+     </xsl:choose>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbhh')" mode="hh-map">
+  <xsl:variable name="topicname">
+    <xsl:call-template name="pi-attribute">
+      <xsl:with-param name="pis" select="."/>
+      <xsl:with-param name="attribute" select="'topicname'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="topicid">
+    <xsl:call-template name="pi-attribute">
+      <xsl:with-param name="pis" select="."/>
+      <xsl:with-param name="attribute" select="'topicid'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:text>#define </xsl:text>
+  <xsl:value-of select="$topicname"/>
+  <xsl:text>	</xsl:text>
+  <xsl:value-of select="$topicid"/>
+  <xsl:text>
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="text()" mode="hh-map"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="hh-alias">
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="$htmlhelp.alias.file"/>
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+     <xsl:choose>
+       <xsl:when test="$rootid != ''">
+         <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="hh-alias"/>
+       </xsl:when>
+       <xsl:otherwise>
+         <xsl:apply-templates select="$profiled-nodes" mode="hh-alias"/>
+       </xsl:otherwise>
+     </xsl:choose>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbhh')" mode="hh-alias">
+  <xsl:variable name="topicname">
+    <xsl:call-template name="pi-attribute">
+      <xsl:with-param name="pis" select="."/>
+      <xsl:with-param name="attribute" select="'topicname'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:call-template name="href.target.with.base.dir">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:value-of select="$topicname"/>
+  <xsl:text>=</xsl:text>
+  <!-- Some versions of HH doesn't like fragment identifires, but some does. -->
+  <!-- <xsl:value-of select="substring-before(concat($href, '#'), '#')"/> -->
+  <xsl:value-of select="$href"/>
+  <xsl:text>
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="text()" mode="hh-alias"/>
+
+<!-- ==================================================================== -->
+<!-- This code can be used to convert any number to hexadecimal format -->
+
+  <h:hex>
+    <d>0</d>
+    <d>1</d>
+    <d>2</d>
+    <d>3</d>
+    <d>4</d>
+    <d>5</d>
+    <d>6</d>
+    <d>7</d>
+    <d>8</d>
+    <d>9</d>
+    <d>A</d>
+    <d>B</d>
+    <d>C</d>
+    <d>D</d>
+    <d>E</d>
+    <d>F</d>
+  </h:hex>
+
+  <xsl:template name="toHex">
+    <xsl:param name="n" select="0"/>
+    <xsl:param name="digit" select="$n mod 16"/>
+    <xsl:param name="rest" select="floor($n div 16)"/>
+    <xsl:if test="$rest &gt; 0">
+      <xsl:call-template name="toHex">
+        <xsl:with-param name="n" select="$rest"/>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:value-of select="document('')//h:hex/d[$digit+1]"/>
+  </xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Modification to standard HTML stylesheets -->
+
+<!-- There are links from ToC pane to bibliodivs, so there must be anchor -->
+<xsl:template match="bibliodiv/title">
+  <h3 class="{name(.)}">
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/htmlhelp/profile-htmlhelp.xsl b/applications/content/template/docbook/htmlhelp/profile-htmlhelp.xsl
new file mode 100644
index 0000000..046f7b0
--- /dev/null
+++ b/applications/content/template/docbook/htmlhelp/profile-htmlhelp.xsl
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<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$
+     ******************************************************************** 
+
+     This file is used by htmlhelp.xsl if you want to generate source
+     files for HTML Help.  It is based on the XSL DocBook Stylesheet
+     distribution (especially on JavaHelp code) from Norman Walsh.
+
+     ******************************************************************** -->
+
+<xsl:import href="../html/chunk.xsl"/>
+<xsl:include href="profile-htmlhelp-common.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/images/annot-close.png b/applications/content/template/docbook/images/annot-close.png
new file mode 100644
index 0000000..b9e1a0d
--- /dev/null
+++ b/applications/content/template/docbook/images/annot-close.png
Binary files differ
diff --git a/applications/content/template/docbook/images/annot-open.png b/applications/content/template/docbook/images/annot-open.png
new file mode 100644
index 0000000..71040ec
--- /dev/null
+++ b/applications/content/template/docbook/images/annot-open.png
Binary files differ
diff --git a/applications/content/template/docbook/images/blank.png b/applications/content/template/docbook/images/blank.png
new file mode 100644
index 0000000..764bf4f
--- /dev/null
+++ b/applications/content/template/docbook/images/blank.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/1.gif b/applications/content/template/docbook/images/callouts/1.gif
new file mode 100644
index 0000000..9e7a87f
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/1.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/1.png b/applications/content/template/docbook/images/callouts/1.png
new file mode 100644
index 0000000..7d47343
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/1.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/1.svg b/applications/content/template/docbook/images/callouts/1.svg
new file mode 100644
index 0000000..e2e87dc
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/1.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M10.428,10.411h0.56c3.78,0,4.788-1.96,4.872-3.444h3.22v19.88h-3.92V13.154h-4.732V10.411z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/10.gif b/applications/content/template/docbook/images/callouts/10.gif
new file mode 100644
index 0000000..e80f7f8
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/10.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/10.png b/applications/content/template/docbook/images/callouts/10.png
new file mode 100644
index 0000000..997bbc8
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/10.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/10.svg b/applications/content/template/docbook/images/callouts/10.svg
new file mode 100644
index 0000000..4740f58
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/10.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M3.815,10.758h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.04h-3.36V13.11H3.815V10.758z"/>
+		<path style="fill:#FFFFFF;" d="M22.175,7.806c4.009,0,5.904,2.76,5.904,8.736c0,5.975-1.896,8.76-5.904,8.76
+			c-4.008,0-5.904-2.785-5.904-8.76C16.271,10.566,18.167,7.806,22.175,7.806z M22.175,22.613c1.921,0,2.448-1.68,2.448-6.071
+			c0-4.393-0.527-6.049-2.448-6.049c-1.92,0-2.448,1.656-2.448,6.049C19.727,20.934,20.255,22.613,22.175,22.613z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/11.gif b/applications/content/template/docbook/images/callouts/11.gif
new file mode 100644
index 0000000..67f91a2
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/11.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/11.png b/applications/content/template/docbook/images/callouts/11.png
new file mode 100644
index 0000000..ce47dac
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/11.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/11.svg b/applications/content/template/docbook/images/callouts/11.svg
new file mode 100644
index 0000000..09a0b2c
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/11.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M5.209,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H5.209V10.412z"/>
+		<path style="fill:#FFFFFF;" d="M18.553,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.359V12.764h-4.056V10.412z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/12.gif b/applications/content/template/docbook/images/callouts/12.gif
new file mode 100644
index 0000000..54c4b42
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/12.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/12.png b/applications/content/template/docbook/images/callouts/12.png
new file mode 100644
index 0000000..31daf4e
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/12.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/12.svg b/applications/content/template/docbook/images/callouts/12.svg
new file mode 100644
index 0000000..9794044
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/12.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M4.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H4.813V10.412z"/>
+		<path style="fill:#FFFFFF;" d="M17.316,13.484c0-5.545,4.056-6.024,5.568-6.024c3.265,0,5.856,1.92,5.856,5.376
+			c0,2.928-1.896,4.416-3.553,5.544c-2.256,1.584-3.432,2.353-3.815,3.145h7.392V24.5h-11.64c0.12-1.992,0.264-4.08,3.96-6.768
+			c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.353-2.424c-2.352,0-2.423,1.944-2.447,3.192H17.316z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/13.gif b/applications/content/template/docbook/images/callouts/13.gif
new file mode 100644
index 0000000..dd5d7d9
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/13.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/13.png b/applications/content/template/docbook/images/callouts/13.png
new file mode 100644
index 0000000..14021a8
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/13.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/13.svg b/applications/content/template/docbook/images/callouts/13.svg
new file mode 100644
index 0000000..64268bb
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/13.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M3.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H3.813V10.412z"/>
+		<path style="fill:#FFFFFF;" d="M20.611,14.636h0.529c1.008,0,2.855-0.096,2.855-2.304c0-0.624-0.288-2.185-2.137-2.185
+			c-2.303,0-2.303,2.185-2.303,2.784h-3.12c0-3.191,1.8-5.472,5.64-5.472c2.279,0,5.279,1.152,5.279,4.752
+			c0,1.728-1.08,2.808-2.039,3.24V15.5c0.6,0.168,2.568,1.056,2.568,3.96c0,3.216-2.377,5.496-5.809,5.496
+			c-1.607,0-5.928-0.36-5.928-5.688h3.288l-0.024,0.024c0,0.912,0.24,2.976,2.496,2.976c1.344,0,2.52-0.911,2.52-2.808
+			c0-2.328-2.256-2.424-3.816-2.424V14.636z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/14.gif b/applications/content/template/docbook/images/callouts/14.gif
new file mode 100644
index 0000000..3d7a952
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/14.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/14.png b/applications/content/template/docbook/images/callouts/14.png
new file mode 100644
index 0000000..64014b7
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/14.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/14.svg b/applications/content/template/docbook/images/callouts/14.svg
new file mode 100644
index 0000000..469aa97
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/14.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M4.146,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H4.146V10.412z"/>
+		<path style="fill:#FFFFFF;" d="M28.457,20.732h-1.896V24.5h-3.36v-3.768h-6.72v-2.904L22.746,7.46h3.815v10.656h1.896V20.732z
+			 M23.201,18.116c0-4.128,0.072-6.792,0.072-7.32h-0.048l-4.272,7.32H23.201z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/15.gif b/applications/content/template/docbook/images/callouts/15.gif
new file mode 100644
index 0000000..1c9183d
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/15.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/15.png b/applications/content/template/docbook/images/callouts/15.png
new file mode 100644
index 0000000..0d65765
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/15.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/15.svg b/applications/content/template/docbook/images/callouts/15.svg
new file mode 100644
index 0000000..8202233
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/15.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M3.479,11.079h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.04h-3.36V13.43H3.479V11.079z"/>
+		<path style="fill:#FFFFFF;" d="M19.342,14.943c0.625-0.433,1.392-0.937,3.048-0.937c2.279,0,5.16,1.584,5.16,5.496
+			c0,2.328-1.176,6.121-6.192,6.121c-2.664,0-5.376-1.584-5.544-5.016h3.36c0.144,1.391,0.888,2.326,2.376,2.326
+			c1.607,0,2.544-1.367,2.544-3.191c0-1.512-0.72-3.047-2.496-3.047c-0.456,0-1.608,0.023-2.256,1.223l-3-0.143l1.176-9.361h9.36
+			v2.832h-6.937L19.342,14.943z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/16.svg b/applications/content/template/docbook/images/callouts/16.svg
new file mode 100644
index 0000000..01d6bf8
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/16.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M3.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H3.813V10.412z"/>
+		<path style="fill:#FFFFFF;" d="M24.309,11.78c-0.097-0.96-0.721-1.633-1.969-1.633c-2.184,0-2.688,2.496-2.808,4.704L19.58,14.9
+			c0.456-0.624,1.296-1.416,3.191-1.416c3.529,0,5.209,2.712,5.209,5.256c0,3.72-2.28,6.216-5.568,6.216
+			c-5.16,0-6.168-4.32-6.168-8.568c0-3.24,0.432-8.928,6.336-8.928c0.695,0,2.641,0.264,3.48,1.104
+			c0.936,0.912,1.271,1.416,1.584,3.217H24.309z M22.172,16.172c-1.271,0-2.568,0.792-2.568,2.928c0,1.849,1.056,3.168,2.664,3.168
+			c1.225,0,2.353-0.936,2.353-3.239C24.62,16.868,23.229,16.172,22.172,16.172z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/17.svg b/applications/content/template/docbook/images/callouts/17.svg
new file mode 100644
index 0000000..0a04c55
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/17.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M3.479,11.079h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.04h-3.36V13.43H3.479V11.079z"/>
+		<path style="fill:#FFFFFF;" d="M27.838,11.006c-1.631,1.776-5.807,6.816-6.215,14.16h-3.457c0.36-6.816,4.632-12.24,6.072-13.776
+			h-8.472l0.072-2.976h12V11.006z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/18.svg b/applications/content/template/docbook/images/callouts/18.svg
new file mode 100644
index 0000000..1cb891b
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/18.svg
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M4.813,10.412h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76V24.5h-3.36V12.764H4.813V10.412z"/>
+		<path style="fill:#FFFFFF;" d="M23.172,24.956c-4.392,0-5.904-2.856-5.904-5.185c0-0.863,0-3.119,2.592-4.319
+			c-1.344-0.672-2.064-1.752-2.064-3.336c0-2.904,2.328-4.656,5.304-4.656c3.528,0,5.4,2.088,5.4,4.44
+			c0,1.464-0.6,2.712-1.968,3.432c1.632,0.815,2.544,1.896,2.544,4.104C29.076,21.596,27.684,24.956,23.172,24.956z M23.124,16.916
+			c-1.224,0-2.4,0.792-2.4,2.64c0,1.632,0.936,2.712,2.472,2.712c1.752,0,2.424-1.512,2.424-2.688
+			C25.62,18.38,24.996,16.916,23.124,16.916z M25.284,12.26c0-1.296-0.888-2.112-1.968-2.112c-1.512,0-2.305,0.864-2.305,2.112
+			c0,1.008,0.744,2.112,2.185,2.112C24.516,14.372,25.284,13.484,25.284,12.26z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/19.svg b/applications/content/template/docbook/images/callouts/19.svg
new file mode 100644
index 0000000..e6fbb17
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/19.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M4.146,10.746h0.48c3.24,0,4.104-1.681,4.176-2.952h2.76v17.041h-3.36V13.097H4.146V10.746z"/>
+		<path style="fill:#FFFFFF;" d="M20.225,20.898v0.023c0.192,1.176,0.936,1.68,1.968,1.68c1.392,0,2.783-1.176,2.808-4.752
+			l-0.048-0.049c-0.768,1.152-2.088,1.441-3.24,1.441c-3.264,0-5.16-2.473-5.16-5.329c0-4.176,2.472-6.12,5.808-6.12
+			c5.904,0,6,6.36,6,8.76c0,6.601-3.12,8.736-6.192,8.736c-2.904,0-4.992-1.68-5.28-4.391H20.225z M22.434,16.553
+			c1.176,0,2.472-0.84,2.472-2.855c0-1.944-0.841-3.145-2.568-3.145c-0.864,0-2.424,0.433-2.424,2.88
+			C19.913,16.001,21.161,16.553,22.434,16.553z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/2.gif b/applications/content/template/docbook/images/callouts/2.gif
new file mode 100644
index 0000000..94d42a3
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/2.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/2.png b/applications/content/template/docbook/images/callouts/2.png
new file mode 100644
index 0000000..5d09341
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/2.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/2.svg b/applications/content/template/docbook/images/callouts/2.svg
new file mode 100644
index 0000000..07d0339
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/2.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M9.668,12.328c0-6.469,4.732-7.028,6.496-7.028c3.808,0,6.833,2.24,6.833,6.271
+			c0,3.416-2.213,5.152-4.145,6.469c-2.632,1.848-4.004,2.744-4.452,3.668h8.624v3.472H9.444c0.14-2.324,0.308-4.76,4.62-7.896
+			c3.584-2.604,5.012-3.612,5.012-5.853c0-1.315-0.84-2.828-2.744-2.828c-2.744,0-2.828,2.269-2.856,3.725H9.668z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/20.svg b/applications/content/template/docbook/images/callouts/20.svg
new file mode 100644
index 0000000..ccbfd40
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/20.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+			c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+			c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+		<path style="fill:#FFFFFF;" d="M23.172,7.46c4.008,0,5.904,2.76,5.904,8.736c0,5.976-1.896,8.76-5.904,8.76
+			s-5.904-2.784-5.904-8.76C17.268,10.22,19.164,7.46,23.172,7.46z M23.172,22.268c1.92,0,2.448-1.68,2.448-6.071
+			c0-4.393-0.528-6.049-2.448-6.049s-2.448,1.656-2.448,6.049C20.724,20.588,21.252,22.268,23.172,22.268z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/21.svg b/applications/content/template/docbook/images/callouts/21.svg
new file mode 100644
index 0000000..93ec53f
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/21.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M5.306,13.151c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+			c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392v2.976H5.114c0.12-1.992,0.264-4.08,3.96-6.768
+			c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H5.306z"/>
+		<path style="fill:#FFFFFF;" d="M19.49,10.079h0.48c3.239,0,4.104-1.681,4.176-2.952h2.761v17.04h-3.361V12.431H19.49V10.079z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/22.svg b/applications/content/template/docbook/images/callouts/22.svg
new file mode 100644
index 0000000..f48c5f3
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/22.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+			c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+			c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+		<path style="fill:#FFFFFF;" d="M17.316,13.484c0-5.545,4.056-6.024,5.568-6.024c3.265,0,5.856,1.92,5.856,5.376
+			c0,2.928-1.896,4.416-3.553,5.544c-2.256,1.584-3.432,2.353-3.815,3.145h7.392V24.5h-11.64c0.12-1.992,0.264-4.08,3.96-6.768
+			c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.353-2.424c-2.352,0-2.423,1.944-2.447,3.192H17.316z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/23.svg b/applications/content/template/docbook/images/callouts/23.svg
new file mode 100644
index 0000000..6624212
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/23.svg
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+			c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+			c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+		<path style="fill:#FFFFFF;" d="M21.612,14.636h0.528c1.008,0,2.855-0.096,2.855-2.304c0-0.624-0.287-2.185-2.136-2.185
+			c-2.304,0-2.304,2.185-2.304,2.784h-3.12c0-3.191,1.8-5.472,5.64-5.472c2.28,0,5.28,1.152,5.28,4.752
+			c0,1.728-1.08,2.808-2.04,3.24V15.5c0.6,0.168,2.568,1.056,2.568,3.96c0,3.216-2.377,5.496-5.809,5.496
+			c-1.607,0-5.928-0.36-5.928-5.688h3.288l-0.024,0.024c0,0.912,0.24,2.976,2.496,2.976c1.344,0,2.521-0.911,2.521-2.808
+			c0-2.328-2.257-2.424-3.816-2.424V14.636z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/24.svg b/applications/content/template/docbook/images/callouts/24.svg
new file mode 100644
index 0000000..a3d5525
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/24.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M4.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+			c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H4.78c0.12-1.992,0.264-4.08,3.96-6.768
+			c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H4.972z"/>
+		<path style="fill:#FFFFFF;" d="M30.124,20.732h-1.896V24.5h-3.36v-3.768h-6.72v-2.904L24.412,7.46h3.816v10.656h1.896V20.732z
+			 M24.868,18.116c0-4.128,0.071-6.792,0.071-7.32h-0.047l-4.272,7.32H24.868z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/25.svg b/applications/content/template/docbook/images/callouts/25.svg
new file mode 100644
index 0000000..56614a9
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/25.svg
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+			c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+			c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+		<path style="fill:#FFFFFF;" d="M20.676,14.276c0.624-0.433,1.393-0.937,3.049-0.937c2.279,0,5.16,1.584,5.16,5.496
+			c0,2.328-1.177,6.12-6.193,6.12c-2.664,0-5.375-1.584-5.543-5.016h3.36c0.144,1.392,0.889,2.327,2.376,2.327
+			c1.608,0,2.544-1.367,2.544-3.191c0-1.513-0.72-3.048-2.496-3.048c-0.455,0-1.607,0.023-2.256,1.224l-3-0.144l1.176-9.36h9.36
+			v2.832h-6.937L20.676,14.276z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/26.svg b/applications/content/template/docbook/images/callouts/26.svg
new file mode 100644
index 0000000..56faeac
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/26.svg
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+			c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+			c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+		<path style="fill:#FFFFFF;" d="M25.309,11.78c-0.097-0.96-0.721-1.633-1.969-1.633c-2.184,0-2.688,2.496-2.808,4.704L20.58,14.9
+			c0.456-0.624,1.296-1.416,3.191-1.416c3.529,0,5.209,2.712,5.209,5.256c0,3.72-2.28,6.216-5.568,6.216
+			c-5.16,0-6.168-4.32-6.168-8.568c0-3.24,0.432-8.928,6.336-8.928c0.695,0,2.641,0.264,3.48,1.104
+			c0.936,0.912,1.271,1.416,1.584,3.217H25.309z M23.172,16.172c-1.271,0-2.568,0.792-2.568,2.928c0,1.849,1.056,3.168,2.664,3.168
+			c1.225,0,2.353-0.936,2.353-3.239C25.62,16.868,24.229,16.172,23.172,16.172z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/27.svg b/applications/content/template/docbook/images/callouts/27.svg
new file mode 100644
index 0000000..a75c812
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/27.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+			c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+			c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+		<path style="fill:#FFFFFF;" d="M29.172,10.34c-1.632,1.776-5.808,6.816-6.216,14.16H19.5c0.36-6.816,4.632-12.24,6.072-13.776
+			H17.1l0.072-2.976h12V10.34z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/28.svg b/applications/content/template/docbook/images/callouts/28.svg
new file mode 100644
index 0000000..7f8cf1a
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/28.svg
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+			c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+			c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+		<path style="fill:#FFFFFF;" d="M23.172,24.956c-4.392,0-5.904-2.856-5.904-5.185c0-0.863,0-3.119,2.592-4.319
+			c-1.344-0.672-2.064-1.752-2.064-3.336c0-2.904,2.328-4.656,5.304-4.656c3.528,0,5.4,2.088,5.4,4.44
+			c0,1.464-0.6,2.712-1.968,3.432c1.632,0.815,2.544,1.896,2.544,4.104C29.076,21.596,27.684,24.956,23.172,24.956z M23.124,16.916
+			c-1.224,0-2.4,0.792-2.4,2.64c0,1.632,0.936,2.712,2.472,2.712c1.752,0,2.424-1.512,2.424-2.688
+			C25.62,18.38,24.996,16.916,23.124,16.916z M25.284,12.26c0-1.296-0.888-2.112-1.968-2.112c-1.512,0-2.305,0.864-2.305,2.112
+			c0,1.008,0.744,2.112,2.185,2.112C24.516,14.372,25.284,13.484,25.284,12.26z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/29.svg b/applications/content/template/docbook/images/callouts/29.svg
new file mode 100644
index 0000000..cb63adf
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/29.svg
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M3.972,13.484c0-5.545,4.056-6.024,5.568-6.024c3.264,0,5.856,1.92,5.856,5.376
+			c0,2.928-1.896,4.416-3.552,5.544c-2.256,1.584-3.432,2.353-3.816,3.145h7.392V24.5H3.78c0.12-1.992,0.264-4.08,3.96-6.768
+			c3.072-2.232,4.296-3.097,4.296-5.017c0-1.128-0.72-2.424-2.352-2.424c-2.352,0-2.424,1.944-2.448,3.192H3.972z"/>
+		<path style="fill:#FFFFFF;" d="M20.893,20.564v0.023c0.191,1.176,0.936,1.68,1.967,1.68c1.393,0,2.785-1.176,2.809-4.752
+			l-0.048-0.048c-0.769,1.152-2.088,1.44-3.24,1.44c-3.264,0-5.16-2.473-5.16-5.328c0-4.176,2.472-6.12,5.807-6.12
+			c5.904,0,6.001,6.36,6.001,8.76c0,6.601-3.12,8.736-6.192,8.736c-2.904,0-4.992-1.68-5.28-4.392H20.893z M23.1,16.22
+			c1.176,0,2.473-0.84,2.473-2.855c0-1.944-0.84-3.145-2.568-3.145c-0.863,0-2.424,0.433-2.424,2.88
+			C20.58,15.668,21.828,16.22,23.1,16.22z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/3.gif b/applications/content/template/docbook/images/callouts/3.gif
new file mode 100644
index 0000000..dd3541a
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/3.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/3.png b/applications/content/template/docbook/images/callouts/3.png
new file mode 100644
index 0000000..ef7b700
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/3.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/3.svg b/applications/content/template/docbook/images/callouts/3.svg
new file mode 100644
index 0000000..918be80
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/3.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M15.127,14.005h0.616c1.176,0,3.332-0.112,3.332-2.688c0-0.728-0.336-2.548-2.492-2.548
+			c-2.688,0-2.688,2.548-2.688,3.248h-3.64c0-3.724,2.1-6.384,6.58-6.384c2.66,0,6.16,1.344,6.16,5.544
+			c0,2.016-1.261,3.276-2.38,3.78v0.056c0.699,0.196,2.996,1.232,2.996,4.62c0,3.752-2.772,6.412-6.776,6.412
+			c-1.876,0-6.916-0.42-6.916-6.636h3.836l-0.028,0.027c0,1.064,0.28,3.473,2.912,3.473c1.568,0,2.94-1.064,2.94-3.276
+			c0-2.716-2.632-2.828-4.452-2.828V14.005z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/30.svg b/applications/content/template/docbook/images/callouts/30.svg
new file mode 100644
index 0000000..dc43ba1
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/30.svg
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M8.268,14.636h0.528c1.008,0,2.856-0.096,2.856-2.304c0-0.624-0.288-2.185-2.136-2.185
+			c-2.304,0-2.304,2.185-2.304,2.784h-3.12c0-3.191,1.8-5.472,5.64-5.472c2.28,0,5.28,1.152,5.28,4.752
+			c0,1.728-1.08,2.808-2.04,3.24V15.5c0.6,0.168,2.568,1.056,2.568,3.96c0,3.216-2.376,5.496-5.808,5.496
+			c-1.608,0-5.928-0.36-5.928-5.688h3.288l-0.024,0.024c0,0.912,0.24,2.976,2.496,2.976c1.344,0,2.52-0.911,2.52-2.808
+			c0-2.328-2.256-2.424-3.816-2.424V14.636z"/>
+		<path style="fill:#FFFFFF;" d="M23.172,7.46c4.008,0,5.904,2.76,5.904,8.736c0,5.976-1.896,8.76-5.904,8.76
+			s-5.904-2.784-5.904-8.76C17.268,10.22,19.164,7.46,23.172,7.46z M23.172,22.268c1.92,0,2.448-1.68,2.448-6.071
+			c0-4.393-0.528-6.049-2.448-6.049s-2.448,1.656-2.448,6.049C20.724,20.588,21.252,22.268,23.172,22.268z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/4.gif b/applications/content/template/docbook/images/callouts/4.gif
new file mode 100644
index 0000000..4bcbf7e
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/4.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/4.png b/applications/content/template/docbook/images/callouts/4.png
new file mode 100644
index 0000000..adb8364
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/4.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/4.svg b/applications/content/template/docbook/images/callouts/4.svg
new file mode 100644
index 0000000..8eb6a53
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/4.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M21.891,20.784h-2.212v4.396h-3.92v-4.396h-7.84v-3.389L15.227,5.3h4.452v12.432h2.212V20.784z
+			 M15.759,17.731c0-4.815,0.084-7.924,0.084-8.54h-0.056l-4.984,8.54H15.759z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/5.gif b/applications/content/template/docbook/images/callouts/5.gif
new file mode 100644
index 0000000..1c62b4f
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/5.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/5.png b/applications/content/template/docbook/images/callouts/5.png
new file mode 100644
index 0000000..4d7eb46
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/5.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/5.svg b/applications/content/template/docbook/images/callouts/5.svg
new file mode 100644
index 0000000..ca7a9f2
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/5.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M14.035,14.252c0.728-0.504,1.624-1.092,3.556-1.092c2.66,0,6.02,1.848,6.02,6.411
+			c0,2.717-1.372,7.141-7.224,7.141c-3.108,0-6.272-1.849-6.468-5.853h3.92c0.168,1.624,1.036,2.717,2.772,2.717
+			c1.876,0,2.968-1.597,2.968-3.725c0-1.764-0.839-3.556-2.912-3.556c-0.532,0-1.876,0.028-2.632,1.428l-3.5-0.168l1.372-10.92
+			h10.919v3.304h-8.092L14.035,14.252z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/6.gif b/applications/content/template/docbook/images/callouts/6.gif
new file mode 100644
index 0000000..23bc555
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/6.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/6.png b/applications/content/template/docbook/images/callouts/6.png
new file mode 100644
index 0000000..0ba694a
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/6.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/6.svg b/applications/content/template/docbook/images/callouts/6.svg
new file mode 100644
index 0000000..783a0b9
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/6.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M19.106,10.673c-0.112-1.12-0.84-1.904-2.296-1.904c-2.548,0-3.136,2.912-3.276,5.488l0.056,0.056
+			c0.532-0.728,1.512-1.651,3.724-1.651c4.116,0,6.077,3.164,6.077,6.131c0,4.34-2.66,7.252-6.497,7.252
+			c-6.02,0-7.196-5.039-7.196-9.996c0-3.78,0.504-10.416,7.392-10.416c0.812,0,3.08,0.308,4.061,1.288
+			c1.092,1.063,1.483,1.652,1.848,3.752H19.106z M16.614,15.797c-1.484,0-2.996,0.924-2.996,3.416c0,2.156,1.232,3.697,3.108,3.697
+			c1.428,0,2.745-1.094,2.745-3.781C19.471,16.609,17.846,15.797,16.614,15.797z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/7.gif b/applications/content/template/docbook/images/callouts/7.gif
new file mode 100644
index 0000000..e55ce89
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/7.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/7.png b/applications/content/template/docbook/images/callouts/7.png
new file mode 100644
index 0000000..472e96f
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/7.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/7.svg b/applications/content/template/docbook/images/callouts/7.svg
new file mode 100644
index 0000000..59b3714
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/7.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M24.28,9.66c-1.904,2.071-6.776,7.951-7.252,16.52h-4.032c0.42-7.952,5.404-14.28,7.084-16.072
+			h-9.884l0.084-3.472h14V9.66z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/8.gif b/applications/content/template/docbook/images/callouts/8.gif
new file mode 100644
index 0000000..49375e0
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/8.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/8.png b/applications/content/template/docbook/images/callouts/8.png
new file mode 100644
index 0000000..5e60973
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/8.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/8.svg b/applications/content/template/docbook/images/callouts/8.svg
new file mode 100644
index 0000000..c1803a3
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/8.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M16.28,26.712c-5.124,0-6.888-3.332-6.888-6.048c0-1.009,0-3.641,3.024-5.04
+			c-1.568-0.784-2.408-2.044-2.408-3.893c0-3.388,2.716-5.432,6.188-5.432c4.116,0,6.3,2.436,6.3,5.18
+			c0,1.708-0.7,3.164-2.296,4.004c1.903,0.952,2.968,2.212,2.968,4.788C23.168,22.792,21.544,26.712,16.28,26.712z M16.224,17.332
+			c-1.428,0-2.8,0.924-2.8,3.08c0,1.903,1.092,3.164,2.884,3.164c2.043,0,2.829-1.765,2.829-3.137
+			C19.137,19.04,18.408,17.332,16.224,17.332z M18.744,11.899c0-1.512-1.036-2.464-2.296-2.464c-1.764,0-2.688,1.008-2.688,2.464
+			c0,1.177,0.868,2.464,2.548,2.464C17.848,14.363,18.744,13.328,18.744,11.899z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/callouts/9.gif b/applications/content/template/docbook/images/callouts/9.gif
new file mode 100644
index 0000000..da12a4f
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/9.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/9.png b/applications/content/template/docbook/images/callouts/9.png
new file mode 100644
index 0000000..a0676d2
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/9.png
Binary files differ
diff --git a/applications/content/template/docbook/images/callouts/9.svg b/applications/content/template/docbook/images/callouts/9.svg
new file mode 100644
index 0000000..bc149d3
--- /dev/null
+++ b/applications/content/template/docbook/images/callouts/9.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.0" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="33" height="33" viewBox="0 0 33 33"
+	 style="overflow:visible;enable-background:new 0 0 33 33;" xml:space="preserve">
+<circle style="stroke:#000000;" cx="16.5" cy="16.5" r="16"/>
+<g>
+	<g style="enable-background:new    ;">
+		<path style="fill:#FFFFFF;" d="M13.953,21.921v0.027c0.224,1.372,1.092,1.961,2.296,1.961c1.624,0,3.248-1.372,3.276-5.545
+			l-0.057-0.056c-0.896,1.344-2.436,1.68-3.78,1.68c-3.808,0-6.02-2.884-6.02-6.216c0-4.872,2.884-7.14,6.776-7.14
+			c6.888,0,7,7.42,7,10.22c0,7.7-3.641,10.192-7.224,10.192c-3.388,0-5.824-1.96-6.16-5.124H13.953z M16.529,16.853
+			c1.372,0,2.884-0.979,2.884-3.332c0-2.268-0.98-3.668-2.996-3.668c-1.008,0-2.828,0.504-2.828,3.36
+			C13.589,16.209,15.045,16.853,16.529,16.853z"/>
+	</g>
+</g>
+</svg>
diff --git a/applications/content/template/docbook/images/caution.gif b/applications/content/template/docbook/images/caution.gif
new file mode 100644
index 0000000..d9f5e5b
--- /dev/null
+++ b/applications/content/template/docbook/images/caution.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/caution.png b/applications/content/template/docbook/images/caution.png
new file mode 100644
index 0000000..5b7809c
--- /dev/null
+++ b/applications/content/template/docbook/images/caution.png
Binary files differ
diff --git a/applications/content/template/docbook/images/caution.svg b/applications/content/template/docbook/images/caution.svg
new file mode 100644
index 0000000..dd84f3f
--- /dev/null
+++ b/applications/content/template/docbook/images/caution.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:#FFFFFF;stroke:none;">
+	<!ENTITY st1 "fill:#FFFFFF;stroke-width:6.6112;stroke-linecap:round;stroke-linejoin:round;">
+	<!ENTITY st2 "stroke:#FFFFFF;stroke-width:6.6112;">
+	<!ENTITY st3 "fill:none;stroke:none;">
+	<!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+	<!ENTITY st5 "stroke:none;">
+]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+	<g id="Layer_x0020_3" style="&st4;">
+		<g>
+			<path style="&st2;" d="M41.7,35.3L26.6,9.4c-0.6-1-1.7-1.7-2.9-1.6c-1.2,0-2.3,0.7-2.9,1.7L6.3,35.4c-0.6,1-0.6,2.3,0,3.3c0.6,1,1.7,1.6,2.9,1.6h29.6c1.2,0,2.3-0.6,2.9-1.7c0.6-1,0.6-2.3,0-3.3z"/>
+			<path style="&st1;" d="M23.7,11L9.2,37h29.6L23.7,11z"/>
+			<path style="&st0;" d="M23.7,11.9L10.3,36.1h27.5l-14-24.1z"/>
+			<g>
+				<path style="&st5;" d="M24.1,34c-1.1,0-1.8-0.8-1.8-1.8c0-1.1,0.7-1.8,1.8-1.8c1.1,0,1.8,0.7,1.8,1.8c0,1-0.7,1.8-1.8,1.8h0z M22.9,29.3l-0.4-9.1h3.2l-0.4,9.1h-2.3z"/>
+			</g>
+		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st4;">
+		<path style="&st3;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>
diff --git a/applications/content/template/docbook/images/caution.tif b/applications/content/template/docbook/images/caution.tif
new file mode 100644
index 0000000..4a28294
--- /dev/null
+++ b/applications/content/template/docbook/images/caution.tif
Binary files differ
diff --git a/applications/content/template/docbook/images/colorsvg/caution.svg b/applications/content/template/docbook/images/colorsvg/caution.svg
new file mode 100644
index 0000000..7a0db0b
--- /dev/null
+++ b/applications/content/template/docbook/images/colorsvg/caution.svg
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [

+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">

+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">

+]>

+<svg  version="1.1" id="caution" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="48" height="48" viewBox="0 0 48 48"

+	 overflow="visible" enable-background="new 0 0 48 48" xml:space="preserve">

+<g>

+	<g>

+		<g>

+			<path stroke="#FFFFFF" stroke-width="6.6112" d="M41.629,36.303L26.527,10.403c-0.602-1-1.698-1.7-2.898-1.6

+				c-1.2,0-2.3,0.7-2.9,1.7l-14.5,25.899c-0.6,1-0.6,2.301,0,3.301s1.7,1.6,2.9,1.6h29.599c1.199,0,2.301-0.6,2.899-1.699

+				C42.229,38.604,42.229,37.303,41.629,36.303L41.629,36.303z"/>

+			<g>

+				<path fill="#FFFFFF" stroke="#FFCC00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" d="M23.581,12.003

+					l-14.5,26H38.68L23.581,12.003z"/>

+				<polygon fill="#FFFFFF" stroke="#FFCD00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.582,12.054 9.137,37.953 38.622,37.953 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFCE00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.583,12.104 9.193,37.9 38.566,37.9 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFCF00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.583,12.153 9.25,37.854 38.508,37.854 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFD000" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.584,12.205 9.309,37.805 38.451,37.805 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFD100" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.585,12.253 9.364,37.753 38.395,37.753 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFD200" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.586,12.304 9.421,37.703 38.337,37.703 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFD300" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.587,12.354 9.479,37.652 38.279,37.652 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFD400" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.588,12.403 9.537,37.604 38.223,37.604 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFD500" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.589,12.455 9.591,37.553 38.166,37.553 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFD600" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.591,12.503 9.649,37.503 38.109,37.503 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFD700" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.591,12.554 9.707,37.453 38.053,37.453 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFD800" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.593,12.604 9.764,37.402 37.996,37.402 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFD900" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.594,12.653 9.819,37.354 37.939,37.354 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFDA00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.596,12.705 9.876,37.303 37.882,37.303 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFDB00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.597,12.753 9.935,37.253 37.824,37.253 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFDC00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.599,12.804 9.991,37.203 37.768,37.203 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFDD00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.601,12.854 10.047,37.152 37.711,37.152 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFDE00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.602,12.903 10.104,37.104 37.654,37.104 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFDF00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.603,12.955 10.163,37.053 37.598,37.053 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFE000" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.604,13.003 10.218,37.003 37.54,37.003 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFE100" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.604,13.054 10.275,36.953 37.482,36.953 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFE200" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.605,13.104 10.333,36.902 37.427,36.902 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFE300" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.606,13.153 10.389,36.854 37.37,36.854 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFE400" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.607,13.205 10.445,36.805 37.312,36.805 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFE500" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.608,13.253 10.502,36.753 37.256,36.753 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFE600" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.609,13.304 10.561,36.703 37.197,36.703 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFE600" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.61,13.354 10.617,36.652 37.143,36.652 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFE700" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.611,13.403 10.673,36.604 37.085,36.604 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFE800" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.613,13.455 10.73,36.553 37.027,36.553 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFE900" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.614,13.503 10.789,36.503 36.971,36.503 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFEA00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.616,13.554 10.844,36.453 36.914,36.453 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFEB00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.617,13.604 10.901,36.402 36.857,36.402 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFEC00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.618,13.653 10.958,36.354 36.8,36.354 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFED00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.619,13.705 11.017,36.303 36.742,36.303 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFEE00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.622,13.753 11.071,36.253 36.688,36.253 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFEF00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.623,13.804 11.129,36.203 36.63,36.203 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFF000" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.624,13.854 11.188,36.152 36.572,36.152 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFF100" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.625,13.903 11.243,36.104 36.516,36.104 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFF200" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.625,13.955 11.299,36.053 36.459,36.053 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFF300" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.626,14.003 11.356,36.003 36.4,36.003 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFF400" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.627,14.054 11.415,35.953 36.346,35.953 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFF500" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.628,14.104 11.471,35.902 36.288,35.902 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFF600" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.629,14.153 11.527,35.854 36.232,35.854 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFF700" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.63,14.205 11.584,35.805 36.174,35.805 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFF800" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.631,14.253 11.643,35.753 36.117,35.753 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFF900" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.632,14.304 11.699,35.703 36.061,35.703 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFFA00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.633,14.354 11.754,35.652 36.003,35.652 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFFB00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.635,14.403 11.812,35.604 35.945,35.604 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFFC00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.637,14.455 11.869,35.555 35.891,35.555 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFFD00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.638,14.503 11.925,35.503 35.833,35.503 				"/>

+				<polygon fill="#FFFFFF" stroke="#FFFE00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+					23.639,14.554 11.982,35.453 35.775,35.453 				"/>

+				<path fill="#FFFFFF" stroke="#FFFF00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" d="M23.64,14.604

+					l-11.6,20.8h23.678L23.64,14.604z"/>

+			</g>

+		</g>

+		

+			<linearGradient id="XMLID_50_" gradientUnits="userSpaceOnUse" x1="395.8457" y1="758.1504" x2="395.8457" y2="785.7822" gradientTransform="matrix(1 0 0 1 -372 -747)">

+			<stop  offset="0" style="stop-color:#FFFFFF"/>

+			<stop  offset="1" style="stop-color:#FFFF00"/>

+		</linearGradient>

+		<path fill="url(#XMLID_50_)" d="M38.891,34.532L26.055,12.519c-0.511-0.85-1.443-1.445-2.462-1.36

+			c-1.02,0-1.955,0.595-2.465,1.445L8.8,34.617c-0.51,0.851-0.51,1.953,0,2.805c0.51,0.852,1.445,1.36,2.465,1.36h25.158

+			c1.021,0,1.956-0.511,2.467-1.445C39.4,36.484,39.4,35.382,38.891,34.532L38.891,34.532z"/>

+	</g>

+	<g>

+		<path d="M23.929,33.948c-1.1,0-1.8-0.8-1.8-1.8c0-1.102,0.7-1.801,1.8-1.801c1.101,0,1.8,0.699,1.8,1.801

+			C25.729,33.148,25.029,33.948,23.929,33.948L23.929,33.948z M22.729,29.248l-0.4-9.1h3.2l-0.399,9.1h-2.297H22.729z"/>

+	</g>

+</g>

+<g id="crop_x0020_marks">

+	<path fill="none" d="M47.93,49.049H-0.071v-48H47.93V49.049z"/>

+</g>

+</svg>

diff --git a/applications/content/template/docbook/images/colorsvg/home.svg b/applications/content/template/docbook/images/colorsvg/home.svg
new file mode 100644
index 0000000..d6dbc01
--- /dev/null
+++ b/applications/content/template/docbook/images/colorsvg/home.svg
@@ -0,0 +1,498 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [

+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">

+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">

+]>

+<svg  version="1.1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="48" height="48" viewBox="0 0 48 48"

+	 overflow="visible" enable-background="new 0 0 48 48" xml:space="preserve">

+<g id="Home">

+	<g>

+		<g id="Chimney">

+			<g>

+				<path fill="#660000" d="M30.417,17.563c2.776,2.348,8.258,0.835,7.742,0.434c0-1.2,0-6.9,0-6.9c0-1.2-0.802-2-2-2h-4.802

+					c-1,0-1.698,0.6-1.899,1.5C28.648,9.916,28.359,15.822,30.417,17.563z"/>

+				<path fill="#670000" d="M30.422,17.556c2.771,2.343,8.244,0.833,7.729,0.433c0-1.199,0-6.889,0-6.889

+					c0-1.198-0.799-1.997-1.996-1.997h-4.793c-0.998,0-1.695,0.599-1.896,1.498C28.657,9.921,28.368,15.818,30.422,17.556z"/>

+				<path fill="#680000" d="M30.428,17.548c2.768,2.34,8.229,0.832,7.717,0.432c0-1.196,0-6.876,0-6.876

+					c0-1.196-0.799-1.993-1.994-1.993h-4.783c-0.997,0-1.693,0.598-1.895,1.495C28.665,9.927,28.377,15.813,30.428,17.548z"/>

+				<path fill="#690000" d="M30.434,17.541c2.762,2.336,8.215,0.831,7.703,0.432c0-1.194,0-6.865,0-6.865

+					c0-1.194-0.798-1.989-1.99-1.989H31.37c-0.994,0-1.69,0.596-1.892,1.492C28.674,9.932,28.387,15.809,30.434,17.541z"/>

+				<path fill="#6B0000" d="M30.438,17.533c2.758,2.332,8.203,0.829,7.69,0.431c0-1.192,0-6.853,0-6.853

+					c0-1.192-0.796-1.987-1.987-1.987h-4.768c-0.993,0-1.688,0.596-1.889,1.49C28.682,9.937,28.395,15.804,30.438,17.533z"/>

+				<path fill="#6C0000" d="M30.443,17.525c2.752,2.328,8.188,0.828,7.677,0.43c0-1.19,0-6.841,0-6.841

+					c0-1.19-0.795-1.983-1.983-1.983h-4.76c-0.99,0-1.686,0.595-1.885,1.487C28.689,9.943,28.402,15.799,30.443,17.525z"/>

+				<path fill="#6D0000" d="M30.448,17.518c2.747,2.323,8.174,0.826,7.663,0.429c0-1.188,0-6.829,0-6.829

+					c0-1.188-0.793-1.979-1.979-1.979h-4.751c-0.99,0-1.682,0.593-1.881,1.485C28.698,9.949,28.412,15.795,30.448,17.518z"/>

+				<path fill="#6E0000" d="M30.454,17.51c2.743,2.32,8.159,0.825,7.649,0.429c0-1.187,0-6.818,0-6.818

+					c0-1.186-0.791-1.976-1.977-1.976h-4.744c-0.986,0-1.679,0.592-1.877,1.482C28.707,9.954,28.421,15.791,30.454,17.51z"/>

+				<path fill="#6F0000" d="M30.46,17.503c2.738,2.315,8.146,0.824,7.636,0.427c0-1.184,0-6.806,0-6.806

+					c0-1.184-0.789-1.973-1.972-1.973h-4.735c-0.986,0-1.677,0.592-1.875,1.479C28.715,9.96,28.43,15.786,30.46,17.503z"/>

+				<path fill="#700000" d="M30.465,17.495c2.733,2.312,8.131,0.822,7.623,0.427c0-1.182,0-6.794,0-6.794

+					c0-1.182-0.789-1.969-1.969-1.969h-4.729c-0.983,0-1.673,0.59-1.871,1.477C28.725,9.965,28.438,15.781,30.465,17.495z"/>

+				<path fill="#720000" d="M30.471,17.487c2.729,2.308,8.116,0.821,7.609,0.426c0-1.18,0-6.782,0-6.782

+					c0-1.179-0.787-1.966-1.967-1.966h-4.719c-0.982,0-1.67,0.589-1.867,1.475C28.73,9.97,28.447,15.776,30.471,17.487z"/>

+				<path fill="#730000" d="M30.477,17.48c2.724,2.304,8.103,0.819,7.597,0.426c0-1.178,0-6.771,0-6.771

+					c0-1.177-0.786-1.962-1.962-1.962H31.4c-0.981,0-1.668,0.589-1.865,1.472C28.74,9.976,28.456,15.772,30.477,17.48z"/>

+				<path fill="#740000" d="M30.48,17.473c2.72,2.299,8.088,0.817,7.584,0.424c0-1.176,0-6.759,0-6.759

+					c0-1.175-0.785-1.959-1.959-1.959h-4.703c-0.979,0-1.664,0.587-1.861,1.469C28.748,9.981,28.465,15.767,30.48,17.473z"/>

+				<path fill="#750000" d="M30.484,17.465c2.717,2.295,8.076,0.816,7.572,0.424c0-1.174,0-6.747,0-6.747

+					c0-1.174-0.783-1.956-1.957-1.956h-4.693c-0.979,0-1.661,0.586-1.858,1.467C28.757,9.987,28.475,15.763,30.484,17.465z"/>

+				<path fill="#760000" d="M30.491,17.458c2.71,2.292,8.061,0.815,7.558,0.423c0-1.172,0-6.735,0-6.735

+					c0-1.171-0.781-1.953-1.953-1.953H31.41c-0.977,0-1.658,0.585-1.854,1.465C28.766,9.993,28.482,15.758,30.491,17.458z"/>

+				<path fill="#770000" d="M30.496,17.45c2.706,2.288,8.047,0.813,7.545,0.422c0-1.17,0-6.724,0-6.724

+					c0-1.169-0.781-1.949-1.949-1.949h-4.678c-0.975,0-1.656,0.584-1.854,1.461C28.773,9.998,28.491,15.754,30.496,17.45z"/>

+				<path fill="#790000" d="M30.502,17.442c2.701,2.284,8.032,0.812,7.531,0.422c0-1.167,0-6.712,0-6.712

+					c0-1.167-0.779-1.945-1.945-1.945h-4.671c-0.972,0-1.651,0.583-1.849,1.458C28.781,10.004,28.5,15.749,30.502,17.442z"/>

+				<path fill="#7A0000" d="M30.507,17.435c2.696,2.28,8.019,0.811,7.519,0.421c0-1.166,0-6.7,0-6.7

+					c0-1.166-0.777-1.942-1.942-1.942h-4.661c-0.971,0-1.648,0.583-1.845,1.457C28.79,10.009,28.509,15.745,30.507,17.435z"/>

+				<path fill="#7B0000" d="M30.514,17.427c2.689,2.276,8.004,0.81,7.504,0.42c0-1.164,0-6.688,0-6.688

+					c0-1.163-0.776-1.938-1.938-1.938h-4.653c-0.97,0-1.646,0.582-1.842,1.454C28.798,10.014,28.518,15.74,30.514,17.427z"/>

+				<path fill="#7C0000" d="M30.518,17.42c2.688,2.271,7.99,0.808,7.491,0.419c0-1.162,0-6.677,0-6.677

+					c0-1.161-0.774-1.935-1.935-1.935h-4.646c-0.968,0-1.645,0.58-1.839,1.451C28.807,10.02,28.525,15.736,30.518,17.42z"/>

+				<path fill="#7D0000" d="M30.521,17.412c2.683,2.268,7.978,0.806,7.479,0.418c0-1.159,0-6.665,0-6.665

+					c0-1.159-0.774-1.932-1.933-1.932h-4.637c-0.967,0-1.642,0.58-1.836,1.449C28.814,10.025,28.535,15.73,30.521,17.412z"/>

+				<path fill="#7E0000" d="M30.527,17.404c2.678,2.264,7.963,0.805,7.466,0.418c0-1.157,0-6.652,0-6.652

+					c0-1.158-0.772-1.929-1.929-1.929h-4.629c-0.965,0-1.639,0.578-1.832,1.446C28.823,10.031,28.544,15.726,30.527,17.404z"/>

+				<path fill="#800000" d="M30.533,17.397c2.673,2.26,7.947,0.804,7.451,0.417c0-1.155,0-6.641,0-6.641

+					c0-1.155-0.771-1.925-1.924-1.925h-4.621c-0.963,0-1.635,0.577-1.83,1.443C28.831,10.037,28.553,15.722,30.533,17.397z"/>

+				<path fill="#810000" d="M30.538,17.39c2.668,2.255,7.935,0.802,7.438,0.417c0-1.153,0-6.629,0-6.629

+					c0-1.153-0.77-1.922-1.922-1.922h-4.611c-0.961,0-1.633,0.576-1.826,1.442C28.84,10.042,28.562,15.717,30.538,17.39z"/>

+				<path fill="#820000" d="M30.544,17.382c2.663,2.252,7.92,0.801,7.427,0.416c0-1.151,0-6.618,0-6.618

+					c0-1.151-0.77-1.918-1.92-1.918h-4.604c-0.961,0-1.631,0.575-1.823,1.438C28.85,10.047,28.57,15.713,30.544,17.382z"/>

+				<path fill="#830000" d="M30.549,17.375c2.659,2.248,7.906,0.799,7.413,0.415c0-1.149,0-6.606,0-6.606

+					c0-1.149-0.769-1.915-1.915-1.915H31.45c-0.957,0-1.626,0.574-1.819,1.436C28.855,10.053,28.579,15.708,30.549,17.375z"/>

+				<path fill="#840000" d="M30.555,17.367c2.653,2.243,7.893,0.797,7.399,0.414c0-1.147,0-6.594,0-6.594

+					c0-1.147-0.767-1.911-1.912-1.911h-4.588c-0.955,0-1.623,0.573-1.815,1.434C28.865,10.059,28.588,15.704,30.555,17.367z"/>

+				<path fill="#850000" d="M30.561,17.359c2.648,2.24,7.877,0.797,7.387,0.414c0-1.145,0-6.583,0-6.583

+					c0-1.145-0.766-1.908-1.908-1.908h-4.58c-0.954,0-1.621,0.572-1.812,1.431C28.873,10.064,28.598,15.699,30.561,17.359z"/>

+				<path fill="#860000" d="M30.564,17.352c2.645,2.235,7.863,0.795,7.373,0.413c0-1.143,0-6.57,0-6.57

+					c0-1.143-0.764-1.905-1.904-1.905h-4.571c-0.953,0-1.618,0.571-1.81,1.428C28.882,10.069,28.605,15.694,30.564,17.352z"/>

+				<path fill="#880000" d="M30.57,17.344c2.64,2.232,7.85,0.794,7.359,0.412c0-1.141,0-6.559,0-6.559

+					c0-1.141-0.762-1.901-1.902-1.901h-4.562c-0.949,0-1.613,0.57-1.806,1.426C28.891,10.075,28.613,15.689,30.57,17.344z"/>

+				<path fill="#890000" d="M30.576,17.337c2.634,2.228,7.835,0.792,7.346,0.411c0-1.139,0-6.547,0-6.547

+					c0-1.139-0.76-1.898-1.896-1.898h-4.557c-0.947,0-1.611,0.569-1.803,1.423C28.898,10.08,28.623,15.685,30.576,17.337z"/>

+				<path fill="#8A0000" d="M30.581,17.33c2.63,2.223,7.821,0.79,7.333,0.41c0-1.137,0-6.535,0-6.535

+					c0-1.137-0.76-1.894-1.895-1.894h-4.547c-0.947,0-1.609,0.567-1.801,1.421C28.906,10.086,28.632,15.681,30.581,17.33z"/>

+				<path fill="#8B0000" d="M30.587,17.321c2.625,2.22,7.808,0.79,7.319,0.41c0-1.135,0-6.523,0-6.523

+					c0-1.135-0.758-1.891-1.891-1.891h-4.539c-0.945,0-1.606,0.567-1.797,1.418C28.915,10.091,28.641,15.676,30.587,17.321z"/>

+				<path fill="#8C0000" d="M30.592,17.314c2.62,2.216,7.793,0.788,7.307,0.409c0-1.132,0-6.512,0-6.512

+					c0-1.132-0.756-1.887-1.887-1.887H31.48c-0.943,0-1.604,0.566-1.793,1.416C28.923,10.097,28.648,15.671,30.592,17.314z"/>

+				<path fill="#8D0000" d="M30.598,17.307c2.614,2.211,7.778,0.787,7.293,0.409c0-1.131,0-6.5,0-6.5

+					c0-1.13-0.754-1.884-1.884-1.884h-4.522c-0.941,0-1.601,0.564-1.791,1.413C28.932,10.103,28.658,15.667,30.598,17.307z"/>

+				<path fill="#8F0000" d="M30.604,17.299c2.609,2.208,7.765,0.785,7.279,0.408c0-1.128,0-6.488,0-6.488

+					c0-1.128-0.753-1.881-1.881-1.881h-4.516c-0.939,0-1.598,0.564-1.786,1.411C28.939,10.107,28.668,15.662,30.604,17.299z"/>

+				<path fill="#900000" d="M30.607,17.292c2.605,2.204,7.75,0.784,7.268,0.407c0-1.127,0-6.477,0-6.477

+					c0-1.127-0.753-1.877-1.878-1.877h-4.506c-0.938,0-1.595,0.563-1.783,1.408C28.948,10.113,28.676,15.658,30.607,17.292z"/>

+				<path fill="#910000" d="M30.611,17.284c2.604,2.199,7.738,0.782,7.256,0.406c0-1.124,0-6.464,0-6.464

+					c0-1.125-0.751-1.874-1.874-1.874h-4.498c-0.938,0-1.593,0.562-1.781,1.405C28.956,10.119,28.686,15.653,30.611,17.284z"/>

+				<path fill="#920000" d="M30.618,17.276c2.597,2.196,7.723,0.781,7.241,0.406c0-1.123,0-6.453,0-6.453

+					c0-1.123-0.75-1.871-1.871-1.871h-4.49c-0.936,0-1.588,0.561-1.775,1.403C28.965,10.124,28.693,15.649,30.618,17.276z"/>

+				<path fill="#930000" d="M30.623,17.269c2.592,2.191,7.709,0.779,7.229,0.404c0-1.12,0-6.441,0-6.441

+					c0-1.121-0.748-1.867-1.867-1.867h-4.481c-0.935,0-1.586,0.56-1.772,1.4C28.973,10.13,28.703,15.644,30.623,17.269z"/>

+				<path fill="#940000" d="M30.629,17.261c2.587,2.188,7.694,0.778,7.214,0.404c0-1.119,0-6.43,0-6.43

+					c0-1.119-0.745-1.863-1.862-1.863h-4.475c-0.932,0-1.583,0.559-1.771,1.397C28.98,10.135,28.711,15.64,30.629,17.261z"/>

+				<path fill="#960000" d="M30.634,17.254c2.583,2.184,7.681,0.776,7.201,0.403c0-1.116,0-6.417,0-6.417

+					c0-1.116-0.745-1.86-1.86-1.86H31.51c-0.93,0-1.58,0.558-1.768,1.395C28.988,10.141,28.721,15.635,30.634,17.254z"/>

+				<path fill="#970000" d="M30.641,17.247c2.576,2.179,7.666,0.775,7.188,0.402c0-1.115,0-6.406,0-6.406

+					c0-1.114-0.744-1.856-1.855-1.856h-4.459c-0.928,0-1.576,0.557-1.764,1.393C28.998,10.146,28.729,15.63,30.641,17.247z"/>

+				<path fill="#980000" d="M30.645,17.239c2.573,2.176,7.652,0.774,7.176,0.401c0-1.112,0-6.394,0-6.394

+					c0-1.112-0.742-1.853-1.854-1.853h-4.448c-0.928,0-1.574,0.556-1.762,1.39C29.006,10.151,28.738,15.625,30.645,17.239z"/>

+				<path fill="#990000" d="M30.65,17.231c2.567,2.172,7.638,0.772,7.16,0.401c0-1.11,0-6.383,0-6.383c0-1.11-0.74-1.85-1.85-1.85

+					H31.52c-0.924,0-1.57,0.555-1.758,1.387C29.016,10.157,28.747,15.621,30.65,17.231z"/>

+				<path fill="#9A0000" d="M30.654,17.224c2.563,2.167,7.625,0.771,7.148,0.4c0-1.108,0-6.371,0-6.371

+					c0-1.108-0.74-1.846-1.847-1.846h-4.433c-0.924,0-1.568,0.554-1.756,1.385C29.021,10.163,28.755,15.616,30.654,17.224z"/>

+				<path fill="#9B0000" d="M30.66,17.216c2.561,2.164,7.609,0.769,7.136,0.399c0-1.106,0-6.359,0-6.359

+					c0-1.106-0.737-1.843-1.844-1.843h-4.425c-0.922,0-1.564,0.553-1.752,1.382C29.031,10.168,28.766,15.612,30.66,17.216z"/>

+				<path fill="#9C0000" d="M30.666,17.209c2.555,2.16,7.596,0.768,7.122,0.399c0-1.104,0-6.347,0-6.347

+					c0-1.104-0.737-1.84-1.84-1.84h-4.417c-0.92,0-1.562,0.552-1.748,1.38C29.039,10.174,28.771,15.607,30.666,17.209z"/>

+				<path fill="#9E0000" d="M30.671,17.201c2.55,2.155,7.582,0.767,7.108,0.398c0-1.102,0-6.335,0-6.335

+					c0-1.102-0.735-1.836-1.836-1.836h-4.408c-0.918,0-1.561,0.551-1.745,1.377C29.048,10.179,28.782,15.603,30.671,17.201z"/>

+				<path fill="#9F0000" d="M30.677,17.193c2.544,2.152,7.567,0.765,7.097,0.397c0-1.1,0-6.324,0-6.324

+					c0-1.1-0.735-1.833-1.834-1.833H31.54c-0.916,0-1.558,0.549-1.741,1.375C29.057,10.185,28.79,15.598,30.677,17.193z"/>

+				<path fill="#A00000" d="M30.682,17.186c2.541,2.147,7.555,0.764,7.082,0.396c0-1.098,0-6.312,0-6.312

+					c0-1.098-0.731-1.829-1.828-1.829h-4.393c-0.915,0-1.555,0.548-1.738,1.372C29.064,10.19,28.8,15.594,30.682,17.186z"/>

+				<path fill="#A10000" d="M30.688,17.178c2.535,2.144,7.539,0.763,7.068,0.396c0-1.096,0-6.3,0-6.3

+					c0-1.096-0.73-1.826-1.826-1.826h-4.384c-0.912,0-1.551,0.547-1.733,1.37C29.072,10.196,28.809,15.589,30.688,17.178z"/>

+				<path fill="#A20000" d="M30.691,17.171c2.531,2.14,7.525,0.761,7.057,0.395c0-1.094,0-6.289,0-6.289

+					c0-1.093-0.73-1.822-1.822-1.822H31.55c-0.911,0-1.548,0.546-1.731,1.367C29.081,10.201,28.816,15.584,30.691,17.171z"/>

+				<path fill="#A30000" d="M30.697,17.163c2.525,2.136,7.512,0.76,7.043,0.395c0-1.092,0-6.277,0-6.277

+					c0-1.091-0.729-1.819-1.819-1.819h-4.366c-0.91,0-1.546,0.545-1.729,1.365C29.089,10.207,28.825,15.58,30.697,17.163z"/>

+				<path fill="#A50000" d="M30.703,17.156c2.521,2.132,7.497,0.758,7.029,0.394c0-1.09,0-6.265,0-6.265

+					c0-1.09-0.729-1.816-1.815-1.816h-4.358c-0.908,0-1.543,0.544-1.727,1.362C29.098,10.212,28.835,15.575,30.703,17.156z"/>

+				<path fill="#A60000" d="M30.708,17.148c2.517,2.127,7.483,0.756,7.017,0.393c0-1.087,0-6.253,0-6.253

+					c0-1.088-0.727-1.812-1.812-1.812h-4.351c-0.906,0-1.541,0.543-1.724,1.359C29.105,10.218,28.844,15.571,30.708,17.148z"/>

+				<path fill="#A70000" d="M30.714,17.141c2.511,2.124,7.47,0.755,7.003,0.392c0-1.086,0-6.241,0-6.241

+					c0-1.085-0.725-1.809-1.81-1.809h-4.343c-0.904,0-1.537,0.542-1.719,1.357C29.113,10.223,28.854,15.566,30.714,17.141z"/>

+				<path fill="#A80000" d="M30.719,17.133c2.508,2.12,7.455,0.753,6.99,0.391c0-1.083,0-6.229,0-6.229

+					c0-1.083-0.725-1.806-1.807-1.806h-4.334c-0.902,0-1.533,0.542-1.717,1.354C29.122,10.229,28.861,15.562,30.719,17.133z"/>

+				<path fill="#A90000" d="M30.725,17.125c2.502,2.116,7.44,0.752,6.978,0.391c0-1.082,0-6.218,0-6.218

+					c0-1.081-0.724-1.802-1.804-1.802h-4.325c-0.901,0-1.53,0.54-1.714,1.352C29.131,10.234,28.87,15.557,30.725,17.125z"/>

+				<path fill="#AA0000" d="M30.729,17.118c2.498,2.111,7.428,0.75,6.965,0.39c0-1.08,0-6.206,0-6.206

+					c0-1.079-0.721-1.798-1.799-1.798h-4.318c-0.899,0-1.528,0.539-1.71,1.349C29.139,10.24,28.879,15.552,30.729,17.118z"/>

+				<path fill="#AC0000" d="M30.734,17.11c2.492,2.108,7.412,0.75,6.951,0.389c0-1.078,0-6.194,0-6.194

+					c0-1.077-0.721-1.795-1.797-1.795h-4.311c-0.896,0-1.523,0.538-1.705,1.346C29.146,10.245,28.889,15.548,30.734,17.11z"/>

+				<path fill="#AD0000" d="M30.74,17.103c2.486,2.104,7.398,0.748,6.937,0.389c0-1.076,0-6.183,0-6.183

+					c0-1.075-0.718-1.792-1.792-1.792h-4.302c-0.896,0-1.521,0.537-1.702,1.344C29.154,10.251,28.896,15.543,30.74,17.103z"/>

+				<path fill="#AE0000" d="M30.745,17.096c2.483,2.1,7.385,0.746,6.924,0.388c0-1.074,0-6.171,0-6.171

+					c0-1.073-0.717-1.789-1.788-1.789h-4.294c-0.896,0-1.519,0.537-1.698,1.341C29.164,10.256,28.904,15.539,30.745,17.096z"/>

+				<path fill="#AF0000" d="M30.751,17.088c2.478,2.096,7.37,0.745,6.91,0.387c0-1.072,0-6.159,0-6.159

+					c0-1.071-0.716-1.785-1.785-1.785h-4.285c-0.893,0-1.517,0.535-1.696,1.339C29.172,10.262,28.914,15.534,30.751,17.088z"/>

+				<path fill="#B00000" d="M30.756,17.08c2.475,2.092,7.355,0.744,6.896,0.387c0-1.07,0-6.147,0-6.147

+					c0-1.069-0.713-1.782-1.781-1.782h-4.277c-0.891,0-1.513,0.535-1.691,1.336C29.182,10.267,28.923,15.53,30.756,17.08z"/>

+				<path fill="#B10000" d="M30.762,17.073c2.469,2.088,7.342,0.743,6.885,0.386c0-1.067,0-6.136,0-6.136

+					c0-1.067-0.713-1.778-1.778-1.778h-4.271c-0.889,0-1.51,0.533-1.688,1.334C29.188,10.272,28.932,15.525,30.762,17.073z"/>

+				<path fill="#B30000" d="M30.768,17.065c2.463,2.083,7.328,0.741,6.871,0.385c0-1.065,0-6.124,0-6.124

+					c0-1.065-0.712-1.775-1.775-1.775h-4.262c-0.887,0-1.506,0.532-1.687,1.332C29.197,10.278,28.939,15.521,30.768,17.065z"/>

+				<path fill="#B40000" d="M30.771,17.058c2.459,2.08,7.313,0.74,6.857,0.384c0-1.063,0-6.112,0-6.112

+					c0-1.063-0.71-1.771-1.771-1.771h-4.252c-0.887,0-1.506,0.531-1.685,1.329C29.205,10.284,28.949,15.516,30.771,17.058z"/>

+				<path fill="#B50000" d="M30.777,17.05c2.453,2.076,7.3,0.738,6.845,0.383c0-1.062,0-6.101,0-6.101

+					c0-1.061-0.709-1.768-1.769-1.768h-4.244c-0.885,0-1.502,0.53-1.682,1.326C29.214,10.289,28.958,15.511,30.777,17.05z"/>

+				<path fill="#B60000" d="M30.782,17.043c2.45,2.071,7.286,0.736,6.831,0.382c0-1.059,0-6.088,0-6.088

+					c0-1.059-0.707-1.765-1.766-1.765h-4.236c-0.881,0-1.498,0.529-1.676,1.323C29.223,10.294,28.967,15.507,30.782,17.043z"/>

+				<path fill="#B70000" d="M30.787,17.035c2.445,2.067,7.271,0.735,6.818,0.382c0-1.057,0-6.077,0-6.077

+					c0-1.057-0.705-1.761-1.762-1.761h-4.229c-0.881,0-1.495,0.528-1.674,1.321C29.23,10.3,28.977,15.502,30.787,17.035z"/>

+				<path fill="#B80000" d="M30.793,17.028c2.439,2.063,7.258,0.733,6.807,0.381c0-1.055,0-6.065,0-6.065

+					c0-1.055-0.705-1.758-1.76-1.758h-4.22c-0.879,0-1.493,0.527-1.67,1.318C29.238,10.306,28.984,15.498,30.793,17.028z"/>

+				<path fill="#B90000" d="M30.798,17.02c2.437,2.06,7.244,0.732,6.792,0.38c0-1.053,0-6.053,0-6.053

+					c0-1.053-0.703-1.754-1.754-1.754h-4.212c-0.877,0-1.49,0.526-1.667,1.316C29.247,10.311,28.993,15.493,30.798,17.02z"/>

+				<path fill="#BB0000" d="M30.805,17.013c2.43,2.056,7.229,0.731,6.777,0.379c0-1.051,0-6.042,0-6.042

+					c0-1.051-0.701-1.751-1.751-1.751h-4.204c-0.875,0-1.486,0.525-1.663,1.313C29.255,10.316,29.002,15.488,30.805,17.013z"/>

+				<path fill="#BC0000" d="M30.809,17.005c2.428,2.052,7.217,0.729,6.767,0.379c0-1.049,0-6.03,0-6.03

+					c0-1.048-0.7-1.748-1.748-1.748h-4.195c-0.873,0-1.483,0.524-1.659,1.311C29.264,10.322,29.012,15.484,30.809,17.005z"/>

+				<path fill="#BD0000" d="M30.814,16.998c2.42,2.047,7.201,0.728,6.752,0.378c0-1.047,0-6.018,0-6.018

+					c0-1.046-0.699-1.744-1.744-1.744h-4.188c-0.872,0-1.481,0.523-1.657,1.309C29.271,10.328,29.02,15.48,30.814,16.998z"/>

+				<path fill="#BE0000" d="M30.818,16.99c2.418,2.044,7.188,0.727,6.74,0.377c0-1.045,0-6.006,0-6.006

+					c0-1.044-0.699-1.74-1.742-1.74h-4.178c-0.871,0-1.479,0.522-1.654,1.305C29.279,10.333,29.027,15.475,30.818,16.99z"/>

+				<path fill="#BF0000" d="M30.824,16.982c2.412,2.04,7.174,0.725,6.727,0.376c0-1.043,0-5.994,0-5.994

+					c0-1.043-0.695-1.737-1.736-1.737h-4.172c-0.869,0-1.476,0.521-1.65,1.303C29.288,10.338,29.037,15.47,30.824,16.982z"/>

+				<path fill="#C00000" d="M30.83,16.975c2.406,2.036,7.158,0.724,6.713,0.376c0-1.041,0-5.982,0-5.982

+					c0-1.041-0.695-1.734-1.734-1.734h-4.162c-0.867,0-1.473,0.52-1.647,1.3C29.297,10.344,29.046,15.466,30.83,16.975z"/>

+				<path fill="#C20000" d="M30.835,16.967c2.403,2.032,7.146,0.722,6.7,0.375c0-1.039,0-5.971,0-5.971

+					c0-1.039-0.694-1.73-1.73-1.73H31.65c-0.865,0-1.471,0.519-1.646,1.298C29.305,10.35,29.055,15.461,30.835,16.967z"/>

+				<path fill="#C30000" d="M30.841,16.96c2.397,2.027,7.132,0.721,6.687,0.375c0-1.037,0-5.959,0-5.959

+					c0-1.037-0.691-1.727-1.728-1.727h-4.146c-0.863,0-1.467,0.518-1.643,1.295C29.312,10.355,29.062,15.457,30.841,16.96z"/>

+				<path fill="#C40000" d="M30.846,16.952c2.395,2.023,7.117,0.72,6.674,0.374c0-1.035,0-5.948,0-5.948

+					c0-1.034-0.69-1.724-1.725-1.724h-4.138c-0.862,0-1.464,0.517-1.64,1.293C29.32,10.36,29.072,15.452,30.846,16.952z"/>

+				<path fill="#C50000" d="M30.852,16.945c2.39,2.02,7.104,0.718,6.66,0.373c0-1.033,0-5.936,0-5.936

+					c0-1.032-0.689-1.72-1.721-1.72H31.66c-0.859,0-1.46,0.516-1.635,1.291C29.33,10.366,29.081,15.447,30.852,16.945z"/>

+				<path fill="#C60000" d="M30.855,16.937c2.385,2.016,7.09,0.717,6.646,0.373c0-1.031,0-5.924,0-5.924

+					c0-1.03-0.688-1.717-1.717-1.717h-4.122c-0.858,0-1.458,0.515-1.631,1.288C29.338,10.372,29.09,15.443,30.855,16.937z"/>

+				<path fill="#C70000" d="M30.861,16.93c2.38,2.012,7.074,0.715,6.634,0.372c0-1.029,0-5.913,0-5.913

+					c0-1.028-0.687-1.713-1.714-1.713h-4.113c-0.855,0-1.455,0.514-1.628,1.285C29.348,10.377,29.1,15.438,30.861,16.93z"/>

+				<path fill="#C90000" d="M30.867,16.922c2.374,2.008,7.061,0.714,6.619,0.371c0-1.027,0-5.9,0-5.9c0-1.026-0.686-1.71-1.709-1.71

+					h-4.105c-0.855,0-1.451,0.513-1.625,1.282C29.354,10.382,29.107,15.434,30.867,16.922z"/>

+				<path fill="#CA0000" d="M30.872,16.915c2.37,2.003,7.047,0.712,6.606,0.37c0-1.024,0-5.889,0-5.889

+					c0-1.024-0.685-1.707-1.707-1.707h-4.098c-0.854,0-1.447,0.512-1.621,1.28C29.363,10.388,29.116,15.429,30.872,16.915z"/>

+				<path fill="#CB0000" d="M30.878,16.907c2.364,2,7.032,0.711,6.595,0.37c0-1.022,0-5.877,0-5.877

+					c0-1.022-0.684-1.703-1.703-1.703h-4.09c-0.853,0-1.447,0.511-1.619,1.277C29.371,10.394,29.125,15.424,30.878,16.907z"/>

+				<path fill="#CC0000" d="M30.883,16.899c2.36,1.996,7.02,0.709,6.581,0.369c0-1.021,0-5.865,0-5.865c0-1.02-0.682-1.7-1.7-1.7

+					h-4.08c-0.851,0-1.443,0.51-1.615,1.275C29.38,10.399,29.134,15.42,30.883,16.899z"/>

+			</g>

+			

+				<linearGradient id="Chimney_Highlight_1_" gradientUnits="userSpaceOnUse" x1="219.5195" y1="-239.7031" x2="219.5195" y2="-247.9902" gradientTransform="matrix(1 0 0 -1 -186 -230)">

+				<stop  offset="0" style="stop-color:#FFFFFF"/>

+				<stop  offset="1" style="stop-color:#CC0000"/>

+			</linearGradient>

+			<path id="Chimney_Highlight" fill="url(#Chimney_Highlight_1_)" d="M30.883,16.899c2.36,1.996,7.02,0.709,6.581,0.369

+				c0-1.021,0-5.865,0-5.865c0-1.02-0.682-1.7-1.7-1.7h-4.08c-0.851,0-1.443,0.51-1.615,1.275

+				C29.38,10.399,29.134,15.42,30.883,16.899z"/>

+		</g>

+		<g id="House">

+			<g>

+				<path fill="#FFCC00" d="M8.5,24.788c0,2.4,0,14.2,0,14.2c0,1.101,0.8,1.9,1.8,1.9h27.4c1.1,0,1.899-0.9,1.899-2

+					c0,0,0-11.8,0-14.2C40.6,24.688,7.4,24.788,8.5,24.788z"/>

+				<path fill="#FFCD00" d="M8.545,24.812c0,2.395,0,14.159,0,14.159c0,1.097,0.798,1.895,1.794,1.895h27.322

+					c1.097,0,1.894-0.897,1.894-1.993c0,0,0-11.767,0-14.16C40.552,24.711,7.448,24.812,8.545,24.812z"/>

+				<path fill="#FFCE00" d="M8.589,24.835c0,2.387,0,14.119,0,14.119c0,1.094,0.795,1.889,1.79,1.889h27.242

+					c1.094,0,1.889-0.896,1.889-1.988c0,0,0-11.73,0-14.118C40.504,24.735,7.496,24.835,8.589,24.835z"/>

+				<path fill="#FFCF00" d="M8.634,24.857c0,2.38,0,14.077,0,14.077c0,1.091,0.793,1.884,1.785,1.884h27.163

+					c1.09,0,1.883-0.894,1.883-1.981c0,0,0-11.698,0-14.078C40.456,24.758,7.543,24.857,8.634,24.857z"/>

+				<path fill="#FFD000" d="M8.68,24.88c0,2.373,0,14.037,0,14.037c0,1.088,0.791,1.879,1.779,1.879h27.084

+					c1.087,0,1.877-0.892,1.877-1.979c0,0,0-11.663,0-14.036C40.409,24.782,7.592,24.88,8.68,24.88z"/>

+				<path fill="#FFD100" d="M8.725,24.903c0,2.366,0,13.995,0,13.995c0,1.085,0.788,1.874,1.773,1.874h27.006

+					c1.083,0,1.872-0.889,1.872-1.973c0,0,0-11.629,0-13.994C40.361,24.806,7.64,24.903,8.725,24.903z"/>

+				<path fill="#FFD200" d="M8.769,24.925c0,2.359,0,13.955,0,13.955c0,1.082,0.786,1.867,1.769,1.867h26.926

+					c1.081,0,1.866-0.884,1.866-1.965c0,0,0-11.596,0-13.953C40.312,24.829,7.688,24.925,8.769,24.925z"/>

+				<path fill="#FFD300" d="M8.814,24.949c0,2.354,0,13.914,0,13.914c0,1.078,0.784,1.861,1.763,1.861h26.848

+					c1.077,0,1.86-0.882,1.86-1.959c0,0,0-11.562,0-13.914C40.266,24.852,7.736,24.949,8.814,24.949z"/>

+				<path fill="#FFD400" d="M8.858,24.973c0,2.345,0,13.872,0,13.872c0,1.074,0.781,1.855,1.758,1.855h26.768

+					c1.074,0,1.854-0.88,1.854-1.953c0,0,0-11.526,0-13.873C40.217,24.876,7.784,24.973,8.858,24.973z"/>

+				<path fill="#FFD500" d="M8.903,24.997c0,2.338,0,13.83,0,13.83c0,1.072,0.779,1.853,1.753,1.853h26.689

+					c1.07,0,1.85-0.877,1.85-1.948c0,0,0-11.493,0-13.832C40.17,24.898,7.832,24.997,8.903,24.997z"/>

+				<path fill="#FFD600" d="M8.949,25.019c0,2.331,0,13.791,0,13.791c0,1.068,0.777,1.846,1.748,1.846h26.61

+					c1.067,0,1.846-0.875,1.846-1.941c0,0,0-11.459,0-13.791C40.122,24.921,7.88,25.019,8.949,25.019z"/>

+				<path fill="#FFD700" d="M8.993,25.042c0,2.324,0,13.75,0,13.75c0,1.064,0.774,1.84,1.743,1.84h26.532

+					c1.064,0,1.838-0.871,1.838-1.937c0,0,0-11.426,0-13.75C40.074,24.945,7.928,25.042,8.993,25.042z"/>

+				<path fill="#FFD800" d="M9.039,25.065c0,2.316,0,13.708,0,13.708c0,1.063,0.772,1.835,1.737,1.835h26.453

+					c1.062,0,1.834-0.869,1.834-1.931c0,0,0-11.392,0-13.71C40.027,24.968,7.977,25.065,9.039,25.065z"/>

+				<path fill="#FFD900" d="M9.083,25.087c0,2.312,0,13.668,0,13.668c0,1.061,0.77,1.83,1.732,1.83h26.373

+					c1.06,0,1.828-0.867,1.828-1.926c0,0,0-11.356,0-13.668C39.979,24.993,8.024,25.087,9.083,25.087z"/>

+				<path fill="#FFDA00" d="M9.128,25.111c0,2.304,0,13.626,0,13.626c0,1.057,0.767,1.824,1.727,1.824h26.293

+					c1.056,0,1.822-0.864,1.822-1.919c0,0,0-11.323,0-13.627C39.932,25.016,8.072,25.111,9.128,25.111z"/>

+				<path fill="#FFDB00" d="M9.172,25.134c0,2.297,0,13.586,0,13.586c0,1.053,0.766,1.818,1.722,1.818h26.215

+					c1.052,0,1.816-0.861,1.816-1.914c0,0,0-11.289,0-13.586C39.884,25.04,8.12,25.134,9.172,25.134z"/>

+				<path fill="#FFDC00" d="M9.217,25.157c0,2.29,0,13.545,0,13.545c0,1.051,0.763,1.812,1.717,1.812H37.07

+					c1.049,0,1.812-0.858,1.812-1.907c0,0,0-11.256,0-13.545C39.836,25.062,8.168,25.157,9.217,25.157z"/>

+				<path fill="#FFDD00" d="M9.263,25.18c0,2.282,0,13.505,0,13.505c0,1.046,0.76,1.807,1.711,1.807h26.055

+					c1.047,0,1.808-0.855,1.808-1.902c0,0,0-11.221,0-13.502C39.788,25.085,8.216,25.18,9.263,25.18z"/>

+				<path fill="#FFDE00" d="M9.307,25.204c0,2.275,0,13.463,0,13.463c0,1.043,0.758,1.801,1.707,1.801h25.978

+					c1.043,0,1.801-0.854,1.801-1.896c0,0,0-11.188,0-13.463C39.74,25.109,8.265,25.204,9.307,25.204z"/>

+				<path fill="#FFDF00" d="M9.352,25.226c0,2.27,0,13.423,0,13.423c0,1.04,0.756,1.796,1.701,1.796h25.899

+					c1.039,0,1.795-0.852,1.795-1.89c0,0,0-11.153,0-13.423C39.691,25.132,8.312,25.226,9.352,25.226z"/>

+				<path fill="#FFE000" d="M9.397,25.251c0,2.262,0,13.379,0,13.379c0,1.037,0.753,1.791,1.696,1.791h25.819

+					c1.036,0,1.79-0.849,1.79-1.883c0,0,0-11.119,0-13.383C39.645,25.155,8.36,25.251,9.397,25.251z"/>

+				<path fill="#FFE100" d="M9.442,25.272c0,2.255,0,13.34,0,13.34c0,1.034,0.751,1.785,1.691,1.785h25.74

+					c1.033,0,1.784-0.846,1.784-1.879c0,0,0-11.084,0-13.34C39.598,25.179,8.408,25.272,9.442,25.272z"/>

+				<path fill="#FFE200" d="M9.486,25.296c0,2.248,0,13.299,0,13.299c0,1.029,0.749,1.779,1.686,1.779h25.662

+					c1.029,0,1.777-0.844,1.777-1.873c0,0,0-11.051,0-13.299C39.549,25.202,8.457,25.296,9.486,25.296z"/>

+				<path fill="#FFE300" d="M9.532,25.318c0,2.241,0,13.259,0,13.259c0,1.027,0.747,1.773,1.68,1.773h25.583

+					c1.025,0,1.771-0.84,1.771-1.866c0,0,0-11.017,0-13.259C39.502,25.226,8.504,25.318,9.532,25.318z"/>

+				<path fill="#FFE400" d="M9.577,25.341c0,2.234,0,13.218,0,13.218c0,1.024,0.744,1.769,1.675,1.769h25.503

+					c1.022,0,1.769-0.838,1.769-1.859c0,0,0-10.983,0-13.219C39.454,25.249,8.553,25.341,9.577,25.341z"/>

+				<path fill="#FFE500" d="M9.621,25.364c0,2.229,0,13.178,0,13.178c0,1.021,0.742,1.763,1.67,1.763h25.424

+					c1.02,0,1.764-0.835,1.764-1.855c0,0,0-10.948,0-13.176C39.406,25.272,8.601,25.364,9.621,25.364z"/>

+				<path fill="#FFE600" d="M9.666,25.388c0,2.221,0,13.135,0,13.135c0,1.02,0.74,1.758,1.665,1.758h25.345

+					c1.018,0,1.758-0.832,1.758-1.85c0,0,0-10.914,0-13.135C39.357,25.296,8.648,25.388,9.666,25.388z"/>

+				<path fill="#FFE600" d="M9.711,25.411c0,2.215,0,13.094,0,13.094c0,1.016,0.737,1.754,1.66,1.754h25.266

+					c1.016,0,1.752-0.83,1.752-1.846c0,0,0-10.879,0-13.094C39.311,25.319,8.696,25.411,9.711,25.411z"/>

+				<path fill="#FFE700" d="M9.756,25.434c0,2.207,0,13.054,0,13.054c0,1.012,0.735,1.747,1.654,1.747h25.188

+					c1.012,0,1.746-0.827,1.746-1.839c0,0,0-10.846,0-13.053C39.264,25.343,8.745,25.434,9.756,25.434z"/>

+				<path fill="#FFE800" d="M9.801,25.458c0,2.199,0,13.013,0,13.013c0,1.008,0.732,1.741,1.649,1.741h25.108

+					c1.008,0,1.74-0.825,1.74-1.834c0,0,0-10.812,0-13.012C39.215,25.366,8.792,25.458,9.801,25.458z"/>

+				<path fill="#FFE900" d="M9.845,25.48c0,2.192,0,12.972,0,12.972c0,1.006,0.73,1.735,1.644,1.735h25.029

+					c1.006,0,1.735-0.822,1.735-1.827c0,0,0-10.777,0-12.971C39.167,25.39,8.84,25.48,9.845,25.48z"/>

+				<path fill="#FFEA00" d="M9.89,25.503c0,2.187,0,12.931,0,12.931c0,1.002,0.729,1.729,1.639,1.729h24.95

+					c1.002,0,1.729-0.818,1.729-1.82c0,0,0-10.744,0-12.93C39.12,25.413,8.889,25.503,9.89,25.503z"/>

+				<path fill="#FFEB00" d="M9.935,25.526c0,2.18,0,12.891,0,12.891c0,0.998,0.726,1.725,1.634,1.725h24.871

+					c1,0,1.726-0.817,1.726-1.814c0,0,0-10.711,0-12.89C39.072,25.437,8.937,25.526,9.935,25.526z"/>

+				<path fill="#FFEC00" d="M9.98,25.548c0,2.174,0,12.85,0,12.85c0,0.996,0.724,1.721,1.628,1.721H36.4

+					c0.994,0,1.719-0.814,1.719-1.811c0,0,0-10.676,0-12.85C39.023,25.46,8.985,25.548,9.98,25.548z"/>

+				<path fill="#FFED00" d="M10.025,25.572c0,2.165,0,12.808,0,12.808c0,0.992,0.721,1.715,1.623,1.715h24.713

+					c0.99,0,1.713-0.812,1.713-1.805c0,0,0-10.642,0-12.808C38.977,25.482,9.033,25.572,10.025,25.572z"/>

+				<path fill="#FFEE00" d="M10.07,25.595c0,2.158,0,12.768,0,12.768c0,0.989,0.719,1.708,1.618,1.708h24.635

+					c0.987,0,1.706-0.809,1.706-1.798c0,0,0-10.607,0-12.768C38.93,25.505,9.081,25.595,10.07,25.595z"/>

+				<path fill="#FFEF00" d="M10.114,25.618c0,2.151,0,12.727,0,12.727c0,0.986,0.717,1.703,1.613,1.703h24.555

+					c0.985,0,1.702-0.808,1.702-1.793c0,0,0-10.573,0-12.726C38.881,25.529,9.129,25.618,10.114,25.618z"/>

+				<path fill="#FFF000" d="M10.159,25.642c0,2.145,0,12.686,0,12.686c0,0.982,0.714,1.696,1.608,1.696h24.476

+					c0.981,0,1.696-0.804,1.696-1.786c0,0,0-10.54,0-12.685C38.833,25.553,9.177,25.642,10.159,25.642z"/>

+				<path fill="#FFF100" d="M10.204,25.665c0,2.138,0,12.644,0,12.644c0,0.979,0.712,1.692,1.603,1.692h24.397

+					c0.979,0,1.69-0.802,1.69-1.78c0,0,0-10.507,0-12.644C38.785,25.577,9.225,25.665,10.204,25.665z"/>

+				<path fill="#FFF200" d="M10.249,25.688c0,2.131,0,12.603,0,12.603c0,0.978,0.71,1.688,1.597,1.688h24.318

+					c0.977,0,1.686-0.799,1.686-1.773c0,0,0-10.473,0-12.604C38.736,25.6,9.273,25.688,10.249,25.688z"/>

+				<path fill="#FFF300" d="M10.294,25.71c0,2.125,0,12.562,0,12.562c0,0.975,0.708,1.682,1.592,1.682h24.239

+					c0.973,0,1.68-0.797,1.68-1.77c0,0,0-10.438,0-12.562C38.689,25.624,9.321,25.71,10.294,25.71z"/>

+				<path fill="#FFF400" d="M10.339,25.733c0,2.117,0,12.521,0,12.521c0,0.97,0.705,1.675,1.587,1.675h24.16

+					c0.969,0,1.674-0.793,1.674-1.763c0,0,0-10.403,0-12.521C38.643,25.646,9.369,25.733,10.339,25.733z"/>

+				<path fill="#FFF500" d="M10.384,25.757c0,2.109,0,12.479,0,12.479c0,0.969,0.703,1.67,1.582,1.67h24.081

+					c0.967,0,1.669-0.79,1.669-1.757c0,0,0-10.369,0-12.479C38.596,25.669,9.417,25.757,10.384,25.757z"/>

+				<path fill="#FFF600" d="M10.428,25.779c0,2.104,0,12.438,0,12.438c0,0.965,0.701,1.664,1.577,1.664h24.002

+					c0.964,0,1.663-0.787,1.663-1.75c0,0,0-10.336,0-12.438C38.547,25.693,9.465,25.779,10.428,25.779z"/>

+				<path fill="#FFF700" d="M10.473,25.803c0,2.097,0,12.397,0,12.397c0,0.961,0.698,1.659,1.571,1.659h23.923

+					c0.96,0,1.658-0.786,1.658-1.746c0,0,0-10.302,0-12.397C38.499,25.716,9.513,25.803,10.473,25.803z"/>

+				<path fill="#FFF800" d="M10.518,25.827c0,2.088,0,12.355,0,12.355c0,0.958,0.696,1.654,1.566,1.654h23.844

+					c0.957,0,1.653-0.783,1.653-1.74c0,0,0-10.268,0-12.356C38.451,25.74,9.561,25.827,10.518,25.827z"/>

+				<path fill="#FFF900" d="M10.563,25.849c0,2.083,0,12.316,0,12.316c0,0.953,0.693,1.647,1.561,1.647h23.765

+					c0.953,0,1.647-0.78,1.647-1.733c0,0,0-10.233,0-12.316C38.402,25.763,9.609,25.849,10.563,25.849z"/>

+				<path fill="#FFFA00" d="M10.608,25.872c0,2.075,0,12.275,0,12.275c0,0.951,0.691,1.643,1.556,1.643H35.85

+					c0.95,0,1.643-0.777,1.643-1.729c0,0,0-10.199,0-12.275C38.355,25.786,9.657,25.872,10.608,25.872z"/>

+				<path fill="#FFFB00" d="M10.653,25.896c0,2.068,0,12.232,0,12.232c0,0.949,0.689,1.639,1.55,1.639h23.607

+					c0.946,0,1.637-0.775,1.637-1.723c0,0,0-10.166,0-12.234C38.309,25.81,9.705,25.896,10.653,25.896z"/>

+				<path fill="#FFFC00" d="M10.697,25.917c0,2.062,0,12.193,0,12.193c0,0.945,0.687,1.633,1.545,1.633H35.77

+					c0.944,0,1.631-0.772,1.631-1.718c0,0,0-10.132,0-12.192C38.262,25.833,9.753,25.917,10.697,25.917z"/>

+				<path fill="#FFFD00" d="M10.742,25.941c0,2.056,0,12.151,0,12.151c0,0.941,0.685,1.627,1.541,1.627h23.449

+					c0.939,0,1.625-0.771,1.625-1.711c0,0,0-10.098,0-12.152C38.213,25.856,9.801,25.941,10.742,25.941z"/>

+				<path fill="#FFFE00" d="M10.787,25.964c0,2.048,0,12.11,0,12.11c0,0.939,0.682,1.621,1.535,1.621h23.37

+					c0.938,0,1.619-0.768,1.619-1.705c0,0,0-10.062,0-12.11C38.165,25.88,9.849,25.964,10.787,25.964z"/>

+				<path fill="#FFFF00" d="M10.832,25.987c0,2.041,0,12.07,0,12.07c0,0.936,0.68,1.615,1.53,1.615h23.291

+					c0.936,0,1.615-0.766,1.615-1.699c0,0,0-10.029,0-12.07C38.117,25.903,9.897,25.987,10.832,25.987z"/>

+			</g>

+			

+				<linearGradient id="House_Highlight_1_" gradientUnits="userSpaceOnUse" x1="210.0469" y1="-255.9038" x2="210.0469" y2="-269.6733" gradientTransform="matrix(1 0 0 -1 -186 -230)">

+				<stop  offset="0" style="stop-color:#FFFFFF"/>

+				<stop  offset="1" style="stop-color:#FFFF00"/>

+			</linearGradient>

+			<path id="House_Highlight" fill="url(#House_Highlight_1_)" d="M10.832,25.987c0,2.041,0,12.07,0,12.07

+				c0,0.936,0.68,1.615,1.53,1.615h23.291c0.936,0,1.615-0.766,1.615-1.699c0,0,0-10.029,0-12.07

+				C38.117,25.903,9.897,25.987,10.832,25.987z"/>

+		</g>

+		<g id="Roof">

+			<g>

+				<path fill="#006600" d="M22.8,6.963l-17.7,15.1l0,0c-0.3,0.301-0.5,0.801-0.5,1.2c0,0.2,0,0.399,0.1,0.601c0.3,0.6,0.9,1,1.6,1

+					l35.3-0.1c0.801,0,1.4-0.5,1.7-1.201c0.101-0.199,0.101-0.4,0.101-0.6c0-0.5-0.199-1-0.699-1.4L25.4,6.963l0.1,0.1

+					C24.8,6.363,23.7,6.263,22.8,6.963L22.8,6.963z"/>

+				<path fill="#006700" d="M22.803,6.989L5.155,22.044l0,0c-0.299,0.3-0.499,0.799-0.499,1.197c0,0.2,0,0.398,0.1,0.599

+					c0.299,0.598,0.897,0.997,1.595,0.997l35.198-0.1c0.799,0,1.396-0.5,1.695-1.197c0.102-0.198,0.102-0.399,0.102-0.598

+					c0-0.498-0.199-0.997-0.699-1.396L25.396,6.989l0.1,0.099C24.798,6.391,23.701,6.291,22.803,6.989L22.803,6.989z"/>

+				<path fill="#006800" d="M22.807,7.014L5.209,22.026l0,0c-0.298,0.299-0.497,0.796-0.497,1.193c0,0.199,0,0.397,0.1,0.598

+					c0.298,0.596,0.895,0.994,1.591,0.994l35.096-0.1c0.796,0,1.394-0.498,1.69-1.194c0.1-0.198,0.1-0.397,0.1-0.596

+					c0-0.497-0.198-0.995-0.696-1.393l-17.2-14.514l0.099,0.099C24.795,6.417,23.702,6.317,22.807,7.014L22.807,7.014z"/>

+				<path fill="#006900" d="M22.81,7.039L5.264,22.008l0,0c-0.298,0.298-0.496,0.793-0.496,1.189c0,0.198,0,0.396,0.099,0.596

+					c0.297,0.594,0.893,0.99,1.586,0.99l34.995-0.099c0.794,0,1.388-0.497,1.686-1.19c0.101-0.198,0.101-0.397,0.101-0.594

+					c0-0.496-0.198-0.991-0.694-1.389L25.389,7.039l0.1,0.099C24.793,6.444,23.703,6.345,22.81,7.039L22.81,7.039z"/>

+				<path fill="#006A00" d="M22.814,7.064L5.318,21.989l0,0c-0.296,0.298-0.494,0.792-0.494,1.187c0,0.198,0,0.395,0.099,0.594

+					c0.295,0.593,0.89,0.987,1.582,0.987l34.892-0.098c0.793,0,1.386-0.494,1.682-1.187c0.1-0.197,0.1-0.396,0.1-0.593

+					c0-0.494-0.197-0.988-0.691-1.384l-17.1-14.431l0.098,0.099C24.791,6.471,23.704,6.372,22.814,7.064L22.814,7.064z"/>

+				<path fill="#006B00" d="M22.817,7.089L5.373,21.971l0,0C5.077,22.267,4.88,22.76,4.88,23.154c0,0.197,0,0.394,0.099,0.592

+					c0.295,0.591,0.887,0.984,1.577,0.984l34.792-0.099c0.789,0,1.381-0.493,1.676-1.183c0.1-0.196,0.1-0.395,0.1-0.591

+					c0-0.493-0.197-0.986-0.689-1.38L25.381,7.089l0.098,0.098C24.788,6.498,23.705,6.399,22.817,7.089L22.817,7.089z"/>

+				<path fill="#006C00" d="M22.821,7.114L5.427,21.953l0,0c-0.295,0.295-0.492,0.787-0.492,1.179c0,0.197,0,0.393,0.099,0.59

+					c0.294,0.589,0.884,0.981,1.572,0.981l34.688-0.098c0.787,0,1.376-0.492,1.671-1.181c0.1-0.196,0.1-0.393,0.1-0.589

+					c0-0.492-0.196-0.983-0.688-1.376l-17-14.347l0.099,0.098C24.786,6.524,23.706,6.426,22.821,7.114L22.821,7.114z"/>

+				<path fill="#006D00" d="M22.824,7.139L5.481,21.934l0,0c-0.294,0.295-0.49,0.785-0.49,1.176c0,0.196,0,0.391,0.098,0.589

+					c0.293,0.587,0.882,0.98,1.567,0.98l34.587-0.099c0.784,0,1.372-0.49,1.666-1.176c0.099-0.195,0.099-0.393,0.099-0.588

+					c0-0.49-0.195-0.979-0.688-1.372L25.372,7.139l0.099,0.098C24.783,6.551,23.706,6.453,22.824,7.139L22.824,7.139z"/>

+				<path fill="#006E00" d="M22.827,7.164L5.536,21.915l0,0c-0.293,0.294-0.488,0.783-0.488,1.173c0,0.195,0,0.39,0.098,0.587

+					c0.293,0.585,0.879,0.977,1.563,0.977l34.484-0.097c0.783,0,1.369-0.49,1.662-1.173c0.098-0.194,0.098-0.391,0.098-0.586

+					c0-0.489-0.195-0.977-0.684-1.368L25.367,7.164l0.098,0.098C24.781,6.578,23.707,6.48,22.827,7.164L22.827,7.164z"/>

+				<path fill="#006F00" d="M22.831,7.189L5.591,21.897l0,0c-0.292,0.292-0.487,0.78-0.487,1.168c0,0.195,0,0.39,0.097,0.585

+					c0.292,0.584,0.876,0.973,1.558,0.973l34.384-0.097c0.779,0,1.363-0.487,1.655-1.169c0.099-0.194,0.099-0.39,0.099-0.584

+					c0-0.487-0.194-0.974-0.683-1.364L25.363,7.189l0.099,0.098C24.779,6.605,23.708,6.507,22.831,7.189L22.831,7.189z"/>

+				<path fill="#007000" d="M22.834,7.215L5.646,21.879l0,0c-0.292,0.292-0.486,0.778-0.486,1.165c0,0.195,0,0.388,0.098,0.584

+					c0.291,0.582,0.874,0.971,1.554,0.971l34.281-0.098c0.778,0,1.36-0.485,1.651-1.166c0.098-0.193,0.098-0.389,0.098-0.583

+					c0-0.485-0.193-0.971-0.68-1.36L25.359,7.215l0.098,0.097C24.775,6.632,23.709,6.535,22.834,7.215L22.834,7.215z"/>

+				<path fill="#007100" d="M22.838,7.24L5.7,21.86l0,0c-0.291,0.292-0.484,0.775-0.484,1.162c0,0.194,0,0.387,0.097,0.582

+					c0.29,0.58,0.871,0.967,1.549,0.967l34.18-0.096c0.774,0,1.354-0.484,1.646-1.162c0.1-0.193,0.1-0.388,0.1-0.581

+					c0-0.484-0.194-0.968-0.68-1.356L25.355,7.24l0.097,0.097C24.773,6.659,23.709,6.562,22.838,7.24L22.838,7.24z"/>

+				<path fill="#007200" d="M22.842,7.265L5.755,21.842l0,0C5.465,22.133,5.272,22.615,5.272,23c0,0.194,0,0.386,0.097,0.581

+					c0.289,0.578,0.868,0.964,1.544,0.964l34.077-0.096c0.773,0,1.353-0.483,1.642-1.159c0.097-0.192,0.097-0.387,0.097-0.579

+					c0-0.483-0.191-0.965-0.676-1.352L25.352,7.265l0.098,0.096C24.771,6.686,23.711,6.589,22.842,7.265L22.842,7.265z"/>

+				<path fill="#007300" d="M22.845,7.29L5.809,21.824l0,0c-0.29,0.29-0.481,0.771-0.481,1.155c0,0.193,0,0.385,0.096,0.579

+					c0.289,0.577,0.867,0.961,1.54,0.961l33.976-0.097c0.771,0,1.35-0.481,1.638-1.155c0.097-0.192,0.097-0.386,0.097-0.577

+					c0-0.481-0.191-0.963-0.674-1.348L25.348,7.29l0.098,0.096C24.771,6.712,23.711,6.616,22.845,7.29L22.845,7.29z"/>

+				<path fill="#007400" d="M22.848,7.315L5.863,21.805l0,0c-0.288,0.289-0.48,0.769-0.48,1.152c0,0.192,0,0.383,0.096,0.576

+					c0.288,0.575,0.864,0.959,1.535,0.959l33.875-0.096c0.769,0,1.344-0.479,1.631-1.152c0.098-0.191,0.098-0.384,0.098-0.575

+					c0-0.479-0.192-0.959-0.672-1.344L25.344,7.315l0.096,0.096C24.768,6.739,23.712,6.643,22.848,7.315L22.848,7.315z"/>

+				<path fill="#007500" d="M22.852,7.34L5.918,21.787l0,0c-0.288,0.288-0.479,0.767-0.479,1.148c0,0.191,0,0.382,0.096,0.575

+					c0.287,0.574,0.861,0.956,1.53,0.956l33.772-0.096c0.767,0,1.34-0.478,1.627-1.148c0.097-0.19,0.097-0.383,0.097-0.574

+					c0-0.479-0.19-0.957-0.67-1.34L25.34,7.34l0.096,0.095C24.766,6.767,23.713,6.67,22.852,7.34L22.852,7.34z"/>

+				<path fill="#007600" d="M22.855,7.365L5.973,21.768l0,0c-0.287,0.287-0.477,0.764-0.477,1.145c0,0.191,0,0.381,0.095,0.573

+					c0.286,0.572,0.858,0.953,1.526,0.953l33.67-0.095c0.764,0,1.336-0.477,1.622-1.146c0.096-0.19,0.096-0.382,0.096-0.572

+					c0-0.477-0.19-0.954-0.668-1.336L25.336,7.365l0.096,0.095C24.764,6.793,23.714,6.697,22.855,7.365L22.855,7.365z"/>

+				<path fill="#007700" d="M22.858,7.391L6.027,21.75l0,0c-0.286,0.286-0.476,0.762-0.476,1.142c0,0.19,0,0.38,0.095,0.571

+					c0.285,0.57,0.856,0.95,1.521,0.95l33.567-0.095c0.763,0,1.332-0.476,1.617-1.141c0.097-0.189,0.097-0.381,0.097-0.57

+					c0-0.476-0.19-0.951-0.666-1.332L25.331,7.391l0.096,0.095C24.762,6.82,23.715,6.725,22.858,7.391L22.858,7.391z"/>

+				<path fill="#007800" d="M22.862,7.416L6.082,21.731l0,0c-0.285,0.285-0.475,0.759-0.475,1.138c0,0.19,0,0.379,0.095,0.57

+					c0.284,0.568,0.854,0.947,1.517,0.947l33.467-0.095c0.76,0,1.328-0.474,1.61-1.138c0.097-0.189,0.097-0.379,0.097-0.568

+					c0-0.474-0.189-0.948-0.664-1.328L25.327,7.416l0.095,0.095C24.758,6.847,23.716,6.751,22.862,7.416L22.862,7.416z"/>

+				<path fill="#007900" d="M22.865,7.441L6.136,21.713l0,0c-0.284,0.284-0.473,0.757-0.473,1.135c0,0.189,0,0.377,0.095,0.567

+					c0.283,0.567,0.851,0.944,1.512,0.944l33.365-0.094c0.758,0,1.324-0.473,1.607-1.135c0.095-0.188,0.095-0.378,0.095-0.566

+					c0-0.473-0.188-0.945-0.662-1.324L25.323,7.441l0.095,0.094C24.756,6.874,23.716,6.779,22.865,7.441L22.865,7.441z"/>

+				<path fill="#007A00" d="M22.869,7.466L6.19,21.694l0,0c-0.283,0.283-0.471,0.754-0.471,1.131c0,0.188,0,0.376,0.094,0.566

+					c0.283,0.564,0.848,0.941,1.507,0.941l33.263-0.094c0.755,0,1.319-0.471,1.603-1.131c0.096-0.188,0.096-0.377,0.096-0.565

+					c0-0.471-0.188-0.942-0.66-1.32L25.318,7.466l0.095,0.094C24.754,6.901,23.717,6.806,22.869,7.466L22.869,7.466z"/>

+				<path fill="#007B00" d="M22.872,7.491L6.245,21.676l0,0c-0.282,0.283-0.47,0.752-0.47,1.128c0,0.188,0,0.375,0.094,0.564

+					c0.282,0.563,0.846,0.939,1.503,0.939l33.161-0.094c0.753,0,1.316-0.469,1.598-1.127c0.096-0.187,0.096-0.376,0.096-0.563

+					c0-0.47-0.188-0.939-0.658-1.316L25.314,7.491l0.095,0.094C24.751,6.927,23.718,6.833,22.872,7.491L22.872,7.491z"/>

+				<path fill="#007C00" d="M22.876,7.516L6.299,21.658l0,0c-0.281,0.281-0.468,0.75-0.468,1.124c0,0.188,0,0.374,0.094,0.562

+					c0.281,0.562,0.843,0.936,1.499,0.936l33.059-0.093c0.75,0,1.312-0.468,1.594-1.124c0.094-0.187,0.094-0.375,0.094-0.562

+					c0-0.468-0.188-0.937-0.656-1.312L25.312,7.516l0.094,0.094C24.749,6.954,23.719,6.86,22.876,7.516L22.876,7.516z"/>

+				<path fill="#007D00" d="M22.879,7.542L6.354,21.639l0,0c-0.281,0.281-0.467,0.748-0.467,1.121c0,0.187,0,0.373,0.094,0.561

+					c0.28,0.56,0.84,0.933,1.494,0.933l32.958-0.093c0.748,0,1.308-0.467,1.586-1.121c0.096-0.186,0.096-0.374,0.096-0.56

+					c0-0.467-0.188-0.934-0.654-1.307L25.307,7.542L25.4,7.635C24.746,6.981,23.72,6.887,22.879,7.542L22.879,7.542z"/>

+				<path fill="#007E00" d="M22.883,7.566L6.408,21.621l0,0c-0.279,0.28-0.465,0.745-0.465,1.117c0,0.187,0,0.372,0.093,0.559

+					c0.279,0.558,0.838,0.93,1.489,0.93l32.856-0.093c0.746,0,1.305-0.465,1.583-1.117c0.095-0.186,0.095-0.373,0.095-0.559

+					c0-0.465-0.188-0.93-0.652-1.303L25.303,7.566l0.094,0.093C24.744,7.008,23.721,6.915,22.883,7.566L22.883,7.566z"/>

+				<path fill="#007F00" d="M22.886,7.592L6.463,21.603l0,0c-0.279,0.279-0.464,0.743-0.464,1.113c0,0.186,0,0.371,0.093,0.558

+					c0.278,0.556,0.835,0.927,1.484,0.927l32.754-0.092c0.743,0,1.3-0.464,1.577-1.114c0.094-0.185,0.094-0.372,0.094-0.557

+					c0-0.464-0.187-0.928-0.649-1.299L25.299,7.592l0.094,0.092C24.742,7.035,23.722,6.941,22.886,7.592L22.886,7.592z"/>

+				<path fill="#007F00" d="M22.89,7.617L6.518,21.584l0,0c-0.278,0.278-0.462,0.741-0.462,1.11c0,0.185,0,0.369,0.092,0.556

+					c0.276,0.555,0.833,0.924,1.48,0.924l32.651-0.092c0.742,0,1.297-0.462,1.572-1.11c0.094-0.185,0.094-0.371,0.094-0.555

+					c0-0.462-0.186-0.925-0.647-1.295L25.295,7.617l0.094,0.092C24.738,7.062,23.723,6.969,22.89,7.617L22.89,7.617z"/>

+				<path fill="#008000" d="M22.893,7.642L6.572,21.565l0,0c-0.277,0.277-0.461,0.739-0.461,1.107c0,0.185,0,0.368,0.092,0.554

+					c0.276,0.553,0.83,0.921,1.475,0.921l32.55-0.092c0.738,0,1.291-0.461,1.566-1.106c0.094-0.184,0.094-0.369,0.094-0.553

+					c0-0.461-0.185-0.922-0.646-1.292L25.291,7.642l0.093,0.092C24.736,7.088,23.724,6.996,22.893,7.642L22.893,7.642z"/>

+				<path fill="#008100" d="M22.896,7.667l-16.27,13.88l0,0c-0.276,0.277-0.459,0.736-0.459,1.104c0,0.184,0,0.367,0.092,0.552

+					c0.275,0.551,0.827,0.918,1.471,0.918l32.448-0.091c0.736,0,1.288-0.459,1.562-1.104c0.093-0.183,0.093-0.368,0.093-0.551

+					c0-0.459-0.185-0.919-0.644-1.287L25.287,7.667l0.092,0.092C24.734,7.116,23.725,7.023,22.896,7.667L22.896,7.667z"/>

+				<path fill="#008200" d="M22.9,7.692L6.681,21.529l0,0c-0.275,0.275-0.458,0.734-0.458,1.1c0,0.184,0,0.366,0.092,0.55

+					c0.275,0.549,0.825,0.916,1.466,0.916l32.347-0.091c0.733,0,1.284-0.458,1.558-1.1c0.094-0.183,0.094-0.367,0.094-0.55

+					c0-0.458-0.184-0.917-0.643-1.283L25.282,7.692l0.093,0.091C24.732,7.143,23.725,7.05,22.9,7.692L22.9,7.692z"/>

+				<path fill="#008300" d="M22.903,7.717L6.735,21.51l0,0c-0.274,0.275-0.457,0.731-0.457,1.096c0,0.183,0,0.365,0.091,0.549

+					c0.274,0.547,0.822,0.913,1.461,0.913l32.245-0.091c0.731,0,1.28-0.457,1.554-1.096c0.092-0.182,0.092-0.366,0.092-0.548

+					c0-0.457-0.183-0.914-0.64-1.279L25.277,7.717l0.093,0.091C24.73,7.169,23.726,7.078,22.903,7.717L22.903,7.717z"/>

+				<path fill="#008400" d="M22.907,7.742L6.79,21.492l0,0c-0.273,0.274-0.456,0.729-0.456,1.093c0,0.183,0,0.364,0.091,0.547

+					c0.273,0.546,0.82,0.909,1.457,0.909l32.144-0.09c0.729,0,1.274-0.455,1.548-1.093c0.092-0.181,0.092-0.364,0.092-0.546

+					c0-0.455-0.183-0.911-0.638-1.275L25.273,7.742l0.093,0.091C24.729,7.196,23.727,7.105,22.907,7.742L22.907,7.742z"/>

+				<path fill="#008500" d="M22.911,7.768L6.845,21.474l0,0c-0.272,0.273-0.454,0.727-0.454,1.089c0,0.182,0,0.363,0.091,0.546

+					c0.272,0.543,0.817,0.906,1.452,0.906l32.041-0.09c0.729,0,1.271-0.454,1.543-1.089c0.092-0.181,0.092-0.363,0.092-0.544

+					c0-0.454-0.182-0.908-0.635-1.271L25.271,7.768l0.09,0.09C24.727,7.223,23.728,7.132,22.911,7.768L22.911,7.768z"/>

+				<path fill="#008600" d="M22.914,7.792L6.899,21.455l0,0c-0.272,0.272-0.453,0.725-0.453,1.086c0,0.181,0,0.361,0.091,0.543

+					c0.271,0.542,0.814,0.904,1.447,0.904l31.939-0.09c0.726,0,1.269-0.452,1.538-1.086c0.092-0.18,0.092-0.362,0.092-0.542

+					c0-0.452-0.181-0.905-0.634-1.267L25.268,7.792l0.09,0.09C24.725,7.25,23.729,7.159,22.914,7.792L22.914,7.792z"/>

+				<path fill="#008700" d="M22.917,7.818L6.954,21.437l0,0c-0.271,0.271-0.451,0.722-0.451,1.083c0,0.181,0,0.36,0.09,0.542

+					c0.271,0.54,0.812,0.901,1.443,0.901l31.837-0.09c0.723,0,1.264-0.451,1.533-1.082c0.092-0.18,0.092-0.361,0.092-0.541

+					c0-0.451-0.182-0.902-0.633-1.263L25.264,7.818l0.09,0.09C24.723,7.277,23.729,7.186,22.917,7.818L22.917,7.818z"/>

+				<path fill="#008800" d="M22.921,7.843L7.008,21.418l0,0c-0.27,0.27-0.45,0.72-0.45,1.079c0,0.18,0,0.359,0.09,0.54

+					c0.27,0.539,0.809,0.898,1.438,0.898l31.734-0.09c0.722,0,1.261-0.449,1.529-1.079c0.09-0.179,0.09-0.36,0.09-0.539

+					c0-0.449-0.18-0.899-0.629-1.259L25.259,7.843l0.091,0.09C24.719,7.303,23.73,7.213,22.921,7.843L22.921,7.843z"/>

+				<path fill="#008900" d="M22.924,7.868L7.062,21.4l0,0c-0.269,0.269-0.448,0.717-0.448,1.075c0,0.18,0,0.358,0.09,0.539

+					c0.269,0.537,0.807,0.895,1.434,0.895l31.633-0.089c0.72,0,1.256-0.448,1.523-1.075c0.092-0.179,0.092-0.359,0.092-0.538

+					c0-0.448-0.181-0.896-0.629-1.255L25.255,7.868l0.091,0.089C24.717,7.331,23.731,7.241,22.924,7.868L22.924,7.868z"/>

+				<path fill="#008A00" d="M22.928,7.893L7.117,21.381l0,0C6.849,21.65,6.67,22.097,6.67,22.453c0,0.179,0,0.357,0.089,0.537

+					c0.268,0.536,0.804,0.893,1.429,0.893l31.533-0.089c0.715,0,1.252-0.446,1.518-1.072c0.092-0.178,0.092-0.358,0.092-0.536

+					c0-0.446-0.18-0.894-0.626-1.251L25.25,7.893l0.09,0.089C24.714,7.357,23.732,7.268,22.928,7.893L22.928,7.893z"/>

+				<path fill="#008B00" d="M22.931,7.918L7.172,21.363l0,0c-0.268,0.268-0.445,0.713-0.445,1.069c0,0.178,0,0.355,0.089,0.535

+					c0.267,0.534,0.801,0.89,1.424,0.89l31.43-0.089c0.714,0,1.248-0.445,1.514-1.068c0.09-0.178,0.09-0.357,0.09-0.534

+					c0-0.445-0.178-0.891-0.623-1.247L25.246,7.918l0.09,0.089C24.712,7.384,23.733,7.295,22.931,7.918L22.931,7.918z"/>

+				<path fill="#008C00" d="M22.935,7.943L7.227,21.345l0,0c-0.267,0.267-0.444,0.71-0.444,1.065c0,0.178,0,0.354,0.089,0.533

+					c0.266,0.532,0.799,0.887,1.42,0.887l31.328-0.089c0.711,0,1.243-0.443,1.509-1.065c0.09-0.177,0.09-0.355,0.09-0.532

+					c0-0.444-0.178-0.888-0.621-1.243L25.242,7.943l0.089,0.089C24.71,7.411,23.734,7.322,22.935,7.943L22.935,7.943z"/>

+				<path fill="#008D00" d="M22.938,7.968L7.281,21.326l0,0c-0.266,0.266-0.442,0.708-0.442,1.062c0,0.177,0,0.353,0.088,0.532

+					c0.264,0.53,0.796,0.883,1.415,0.883l31.227-0.088c0.709,0,1.24-0.442,1.505-1.062c0.09-0.176,0.09-0.354,0.09-0.53

+					c0-0.442-0.177-0.885-0.62-1.239L25.238,7.968l0.089,0.088C24.707,7.438,23.735,7.349,22.938,7.968L22.938,7.968z"/>

+				<path fill="#008E00" d="M22.941,7.994L7.335,21.308l0,0c-0.265,0.265-0.441,0.706-0.441,1.058c0,0.177,0,0.352,0.088,0.53

+					c0.264,0.528,0.793,0.881,1.411,0.881l31.125-0.088c0.707,0,1.235-0.441,1.5-1.058c0.088-0.176,0.088-0.353,0.088-0.529

+					c0-0.441-0.176-0.882-0.617-1.235L25.234,7.994l0.089,0.088C24.705,7.465,23.736,7.376,22.941,7.994L22.941,7.994z"/>

+				<path fill="#008F00" d="M22.945,8.019L7.39,21.289l0,0c-0.264,0.264-0.44,0.704-0.44,1.055c0,0.176,0,0.351,0.088,0.528

+					c0.263,0.527,0.791,0.878,1.406,0.878l31.022-0.088c0.704,0,1.231-0.439,1.494-1.055c0.089-0.175,0.089-0.352,0.089-0.527

+					c0-0.439-0.176-0.879-0.615-1.231L25.229,8.019l0.09,0.088C24.703,7.492,23.736,7.403,22.945,8.019L22.945,8.019z"/>

+				<path fill="#009000" d="M22.948,8.044L7.444,21.271l0,0c-0.263,0.263-0.438,0.701-0.438,1.051c0,0.175,0,0.35,0.087,0.526

+					c0.263,0.525,0.789,0.875,1.401,0.875l30.921-0.088c0.702,0,1.228-0.438,1.489-1.051c0.089-0.174,0.089-0.351,0.089-0.525

+					c0-0.438-0.177-0.876-0.614-1.227L25.227,8.044l0.088,0.087C24.7,7.519,23.737,7.431,22.948,8.044L22.948,8.044z"/>

+				<path fill="#009100" d="M22.952,8.069L7.499,21.252l0,0c-0.262,0.262-0.437,0.699-0.437,1.048c0,0.175,0,0.349,0.087,0.524

+					c0.262,0.523,0.786,0.872,1.397,0.872l30.819-0.087c0.699,0,1.224-0.436,1.484-1.047c0.088-0.174,0.088-0.35,0.088-0.524

+					c0-0.436-0.174-0.873-0.611-1.223L25.223,8.069l0.088,0.087C24.698,7.545,23.738,7.458,22.952,8.069L22.952,8.069z"/>

+				<path fill="#009200" d="M22.955,8.094L7.553,21.234l0,0c-0.261,0.262-0.435,0.697-0.435,1.044c0,0.174,0,0.347,0.087,0.523

+					c0.259,0.521,0.783,0.869,1.392,0.869l30.717-0.087c0.697,0,1.22-0.435,1.479-1.044c0.088-0.173,0.088-0.348,0.088-0.522

+					c0-0.435-0.174-0.87-0.609-1.218L25.218,8.094l0.089,0.087C24.695,7.572,23.739,7.485,22.955,8.094L22.955,8.094z"/>

+				<path fill="#009300" d="M22.959,8.119L7.608,21.215l0,0c-0.26,0.261-0.434,0.695-0.434,1.041c0,0.174,0,0.346,0.087,0.521

+					c0.26,0.52,0.781,0.867,1.388,0.867l30.615-0.087c0.695,0,1.217-0.434,1.475-1.041c0.089-0.173,0.089-0.348,0.089-0.521

+					c0-0.433-0.175-0.867-0.606-1.214L25.214,8.119l0.088,0.087C24.693,7.599,23.74,7.512,22.959,8.119L22.959,8.119z"/>

+				<path fill="#009400" d="M22.962,8.145l-15.3,13.053l0,0c-0.26,0.26-0.433,0.692-0.433,1.037c0,0.173,0,0.345,0.086,0.52

+					c0.259,0.518,0.778,0.863,1.383,0.863l30.514-0.086c0.692,0,1.212-0.432,1.47-1.038c0.088-0.172,0.088-0.346,0.088-0.519

+					c0-0.432-0.172-0.864-0.605-1.21L25.21,8.145l0.087,0.086C24.691,7.626,23.741,7.539,22.962,8.145L22.962,8.145z"/>

+				<path fill="#009500" d="M22.966,8.169L7.717,21.179l0,0c-0.259,0.259-0.431,0.69-0.431,1.034c0,0.173,0,0.344,0.086,0.518

+					c0.257,0.517,0.775,0.86,1.378,0.86l30.412-0.086c0.689,0,1.207-0.431,1.465-1.034c0.087-0.171,0.087-0.345,0.087-0.517

+					c0-0.431-0.172-0.861-0.604-1.207L25.206,8.169l0.087,0.086C24.688,7.653,23.742,7.566,22.966,8.169L22.966,8.169z"/>

+				<path fill="#009600" d="M22.969,8.195L7.771,21.16l0,0c-0.258,0.258-0.43,0.688-0.43,1.03c0,0.172,0,0.343,0.086,0.516

+					c0.257,0.515,0.773,0.858,1.374,0.858l30.311-0.086c0.688,0,1.203-0.429,1.459-1.03c0.088-0.171,0.088-0.344,0.088-0.515

+					c0-0.429-0.172-0.859-0.602-1.203L25.201,8.195l0.087,0.085C24.688,7.68,23.743,7.593,22.969,8.195L22.969,8.195z"/>

+				<path fill="#009700" d="M22.973,8.22L7.826,21.142l0,0c-0.257,0.257-0.428,0.686-0.428,1.027c0,0.171,0,0.341,0.085,0.514

+					c0.255,0.513,0.771,0.855,1.369,0.855l30.208-0.086c0.687,0,1.198-0.428,1.455-1.027c0.086-0.17,0.086-0.343,0.086-0.513

+					c0-0.428-0.172-0.856-0.6-1.198L25.197,8.22l0.087,0.085C24.686,7.707,23.743,7.621,22.973,8.22L22.973,8.22z"/>

+				<path fill="#009800" d="M22.976,8.245L7.88,21.124l0,0c-0.256,0.256-0.427,0.683-0.427,1.023c0,0.171,0,0.34,0.085,0.512

+					c0.256,0.511,0.768,0.852,1.364,0.852l30.106-0.085c0.684,0,1.195-0.426,1.45-1.023c0.086-0.17,0.086-0.342,0.086-0.512

+					c0-0.426-0.17-0.853-0.599-1.194L25.193,8.245l0.086,0.085C24.682,7.733,23.744,7.647,22.976,8.245L22.976,8.245z"/>

+				<path fill="#009900" d="M22.979,8.27L7.935,21.105l0,0C7.68,21.36,7.51,21.786,7.51,22.125c0,0.17,0,0.339,0.085,0.511

+					c0.255,0.509,0.765,0.849,1.36,0.849L38.959,23.4c0.682,0,1.191-0.425,1.445-1.02c0.086-0.169,0.086-0.34,0.086-0.51

+					c0-0.425-0.17-0.85-0.596-1.19L25.189,8.27l0.086,0.085C24.68,7.76,23.745,7.675,22.979,8.27L22.979,8.27z"/>

+			</g>

+			

+				<linearGradient id="Roof_Highlight_1_" gradientUnits="userSpaceOnUse" x1="210" y1="-237.8638" x2="210" y2="-253.4849" gradientTransform="matrix(1 0 0 -1 -186 -230)">

+				<stop  offset="0" style="stop-color:#FFFFFF"/>

+				<stop  offset="1" style="stop-color:#009900"/>

+			</linearGradient>

+			<path id="Roof_Highlight" fill="url(#Roof_Highlight_1_)" d="M22.979,8.27L7.935,21.105l0,0C7.68,21.36,7.51,21.786,7.51,22.125

+				c0,0.17,0,0.339,0.085,0.51c0.255,0.51,0.765,0.85,1.36,0.85L38.959,23.4c0.682,0,1.191-0.425,1.445-1.021

+				c0.086-0.169,0.086-0.34,0.086-0.51c0-0.424-0.17-0.85-0.596-1.189L25.189,8.27l0.086,0.085C24.68,7.76,23.745,7.675,22.979,8.27

+				L22.979,8.27z"/>

+		</g>

+	</g>

+</g>

+<g id="Layer_2">

+	<g id="crop_x0020_marks">

+		<path fill="none" d="M48,47.687H0v-48h48V47.687z"/>

+	</g>

+</g>

+</svg>

diff --git a/applications/content/template/docbook/images/colorsvg/important.svg b/applications/content/template/docbook/images/colorsvg/important.svg
new file mode 100644
index 0000000..803ad8d
--- /dev/null
+++ b/applications/content/template/docbook/images/colorsvg/important.svg
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [

+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">

+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">

+]>

+<svg  version="1.1" id="Caution" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="48" height="48" viewBox="0 0 48 48"

+	 overflow="visible" enable-background="new 0 0 48 48" xml:space="preserve">

+<g>

+	<path stroke="#FFFFFF" stroke-width="6.6112" d="M42.35,35.841L27.248,9.941c-0.602-1-1.699-1.7-2.899-1.6c-1.2,0-2.3,0.7-2.9,1.7

+		l-14.5,25.901c-0.6,1-0.6,2.299,0,3.299c0.6,1,1.7,1.6,2.9,1.6h29.601c1.199,0,2.301-0.6,2.898-1.697

+		C42.949,38.142,42.949,36.841,42.35,35.841L42.35,35.841z"/>

+	<g>

+		<path fill="#FFFFFF" stroke="#009900" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" d="M24.349,11.586

+			l-14.5,26h29.601L24.349,11.586z"/>

+		<polygon fill="#FFFFFF" stroke="#009A00" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.35,11.611 9.877,37.562 39.42,37.562 		"/>

+		<polygon fill="#FFFFFF" stroke="#009B01" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.35,11.637 9.907,37.536 39.391,37.536 		"/>

+		<polygon fill="#FFFFFF" stroke="#009C01" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.351,11.662 9.935,37.511 39.361,37.511 		"/>

+		<polygon fill="#FFFFFF" stroke="#009D02" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.352,11.688 9.963,37.485 39.334,37.485 		"/>

+		<polygon fill="#FFFFFF" stroke="#009E02" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.352,11.712 9.993,37.46 39.305,37.46 		"/>

+		<polygon fill="#FFFFFF" stroke="#009F03" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.353,11.738 10.021,37.435 39.275,37.435 		"/>

+		<polygon fill="#FFFFFF" stroke="#00A003" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.353,11.763 10.049,37.409 39.248,37.409 		"/>

+		<polygon fill="#FFFFFF" stroke="#00A104" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.354,11.789 10.079,37.386 39.219,37.386 		"/>

+		<polygon fill="#FFFFFF" stroke="#00A204" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.354,11.813 10.106,37.36 39.189,37.36 		"/>

+		<polygon fill="#FFFFFF" stroke="#00A305" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.354,11.838 10.135,37.335 39.16,37.335 		"/>

+		<polygon fill="#FFFFFF" stroke="#00A405" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.355,11.864 10.166,37.31 39.133,37.31 		"/>

+		<polygon fill="#FFFFFF" stroke="#00A506" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.355,11.89 10.193,37.284 39.104,37.284 		"/>

+		<polygon fill="#FFFFFF" stroke="#00A606" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.355,11.915 10.223,37.259 39.074,37.259 		"/>

+		<polygon fill="#FFFFFF" stroke="#00A707" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.356,11.939 10.25,37.233 39.047,37.233 		"/>

+		<polygon fill="#FFFFFF" stroke="#00A807" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.357,11.965 10.279,37.21 39.018,37.21 		"/>

+		<polygon fill="#FFFFFF" stroke="#00A908" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.357,11.99 10.309,37.183 38.988,37.183 		"/>

+		<polygon fill="#FFFFFF" stroke="#00AA08" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.357,12.016 10.336,37.157 38.959,37.157 		"/>

+		<polygon fill="#FFFFFF" stroke="#00AB09" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.358,12.041 10.367,37.132 38.932,37.132 		"/>

+		<polygon fill="#FFFFFF" stroke="#00AC09" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.359,12.066 10.396,37.106 38.902,37.106 		"/>

+		<polygon fill="#FFFFFF" stroke="#00AD0A" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.359,12.091 10.423,37.083 38.873,37.083 		"/>

+		<polygon fill="#FFFFFF" stroke="#00AE0A" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.36,12.116 10.453,37.056 38.846,37.056 		"/>

+		<polygon fill="#FFFFFF" stroke="#00AF0B" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.361,12.142 10.48,37.032 38.816,37.032 		"/>

+		<polygon fill="#FFFFFF" stroke="#00B00B" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.362,12.167 10.509,37.007 38.789,37.007 		"/>

+		<polygon fill="#FFFFFF" stroke="#00B10C" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.362,12.191 10.539,36.981 38.76,36.981 		"/>

+		<polygon fill="#FFFFFF" stroke="#00B20C" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.362,12.217 10.566,36.956 38.729,36.956 		"/>

+		<polygon fill="#FFFFFF" stroke="#00B30D" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.363,12.242 10.596,36.931 38.701,36.931 		"/>

+		<polygon fill="#FFFFFF" stroke="#00B40D" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.364,12.269 10.625,36.905 38.674,36.905 		"/>

+		<polygon fill="#FFFFFF" stroke="#00B50E" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.364,12.293 10.653,36.88 38.645,36.88 		"/>

+		<polygon fill="#FFFFFF" stroke="#00B60E" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.366,12.317 10.682,36.854 38.613,36.854 		"/>

+		<polygon fill="#FFFFFF" stroke="#00B70F" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.367,12.343 10.71,36.829 38.586,36.829 		"/>

+		<polygon fill="#FFFFFF" stroke="#00B80F" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.367,12.37 10.739,36.804 38.559,36.804 		"/>

+		<polygon fill="#FFFFFF" stroke="#00B910" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.368,12.395 10.769,36.778 38.527,36.778 		"/>

+		<polygon fill="#FFFFFF" stroke="#00BA10" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.368,12.419 10.796,36.755 38.5,36.755 		"/>

+		<polygon fill="#FFFFFF" stroke="#00BB11" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.369,12.444 10.826,36.728 38.471,36.728 		"/>

+		<polygon fill="#FFFFFF" stroke="#00BC11" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.37,12.469 10.854,36.704 38.441,36.704 		"/>

+		<polygon fill="#FFFFFF" stroke="#00BD12" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.37,12.496 10.883,36.677 38.414,36.677 		"/>

+		<polygon fill="#FFFFFF" stroke="#00BE12" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.371,12.521 10.912,36.651 38.385,36.651 		"/>

+		<polygon fill="#FFFFFF" stroke="#00BF13" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.371,12.545 10.94,36.628 38.355,36.628 		"/>

+		<polygon fill="#FFFFFF" stroke="#00C013" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.372,12.57 10.969,36.603 38.328,36.603 		"/>

+		<polygon fill="#FFFFFF" stroke="#00C114" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.372,12.595 10.999,36.577 38.299,36.577 		"/>

+		<polygon fill="#FFFFFF" stroke="#00C214" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.373,12.622 11.026,36.552 38.27,36.552 		"/>

+		<polygon fill="#FFFFFF" stroke="#00C315" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.373,12.646 11.056,36.526 38.242,36.526 		"/>

+		<polygon fill="#FFFFFF" stroke="#00C415" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.374,12.672 11.084,36.503 38.213,36.503 		"/>

+		<polygon fill="#FFFFFF" stroke="#00C516" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.375,12.696 11.113,36.476 38.184,36.476 		"/>

+		<polygon fill="#FFFFFF" stroke="#00C616" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.375,12.721 11.142,36.45 38.154,36.45 		"/>

+		<polygon fill="#FFFFFF" stroke="#00C717" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.375,12.748 11.17,36.425 38.127,36.425 		"/>

+		<polygon fill="#FFFFFF" stroke="#00C817" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.375,12.773 11.2,36.401 38.098,36.401 		"/>

+		<polygon fill="#FFFFFF" stroke="#00C918" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.376,12.797 11.229,36.376 38.068,36.376 		"/>

+		<polygon fill="#FFFFFF" stroke="#00CA18" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.376,12.822 11.256,36.349 38.041,36.349 		"/>

+		<polygon fill="#FFFFFF" stroke="#00CB19" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.377,12.849 11.286,36.325 38.012,36.325 		"/>

+		<polygon fill="#FFFFFF" stroke="#00CC19" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.378,12.875 11.314,36.3 37.982,36.3 		"/>

+		<polygon fill="#FFFFFF" stroke="#00CC1A" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.378,12.899 11.342,36.274 37.955,36.274 		"/>

+		<polygon fill="#FFFFFF" stroke="#00CD1A" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.379,12.923 11.372,36.249 37.926,36.249 		"/>

+		<polygon fill="#FFFFFF" stroke="#00CE1B" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.379,12.949 11.4,36.224 37.896,36.224 		"/>

+		<polygon fill="#FFFFFF" stroke="#00CF1B" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.38,12.975 11.43,36.198 37.867,36.198 		"/>

+		<polygon fill="#FFFFFF" stroke="#00D01C" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.381,13 11.458,36.173 37.84,36.173 		"/>

+		<polygon fill="#FFFFFF" stroke="#00D11C" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.381,13.024 11.486,36.147 37.811,36.147 		"/>

+		<polygon fill="#FFFFFF" stroke="#00D21D" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.381,13.05 11.516,36.124 37.781,36.124 		"/>

+		<polygon fill="#FFFFFF" stroke="#00D31D" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.382,13.075 11.543,36.097 37.754,36.097 		"/>

+		<polygon fill="#FFFFFF" stroke="#00D41E" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.383,13.102 11.572,36.071 37.725,36.071 		"/>

+		<polygon fill="#FFFFFF" stroke="#00D51E" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.383,13.126 11.602,36.046 37.695,36.046 		"/>

+		<polygon fill="#FFFFFF" stroke="#00D61F" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.384,13.151 11.63,36.022 37.666,36.022 		"/>

+		<polygon fill="#FFFFFF" stroke="#00D71F" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.385,13.176 11.66,35.997 37.639,35.997 		"/>

+		<polygon fill="#FFFFFF" stroke="#00D820" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.385,13.201 11.688,35.972 37.609,35.972 		"/>

+		<polygon fill="#FFFFFF" stroke="#00D920" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.387,13.228 11.716,35.946 37.58,35.946 		"/>

+		<polygon fill="#FFFFFF" stroke="#00DA21" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.387,13.252 11.746,35.921 37.553,35.921 		"/>

+		<polygon fill="#FFFFFF" stroke="#00DB21" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.388,13.277 11.773,35.896 37.521,35.896 		"/>

+		<polygon fill="#FFFFFF" stroke="#00DC22" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.389,13.302 11.802,35.872 37.494,35.872 		"/>

+		<polygon fill="#FFFFFF" stroke="#00DD22" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.389,13.327 11.832,35.845 37.465,35.845 		"/>

+		<polygon fill="#FFFFFF" stroke="#00DE23" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.39,13.354 11.86,35.819 37.438,35.819 		"/>

+		<polygon fill="#FFFFFF" stroke="#00DF23" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.39,13.378 11.89,35.796 37.408,35.796 		"/>

+		<polygon fill="#FFFFFF" stroke="#00E024" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.391,13.403 11.917,35.769 37.379,35.769 		"/>

+		<polygon fill="#FFFFFF" stroke="#00E124" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.391,13.429 11.946,35.743 37.352,35.743 		"/>

+		<polygon fill="#FFFFFF" stroke="#00E225" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.392,13.455 11.976,35.718 37.32,35.718 		"/>

+		<polygon fill="#FFFFFF" stroke="#00E325" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.393,13.479 12.003,35.694 37.293,35.694 		"/>

+		<polygon fill="#FFFFFF" stroke="#00E426" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.393,13.504 12.033,35.669 37.264,35.669 		"/>

+		<polygon fill="#FFFFFF" stroke="#00E526" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.394,13.529 12.062,35.644 37.234,35.644 		"/>

+		<polygon fill="#FFFFFF" stroke="#00E627" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.394,13.556 12.09,35.618 37.207,35.618 		"/>

+		<polygon fill="#FFFFFF" stroke="#00E727" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.395,13.581 12.12,35.593 37.178,35.593 		"/>

+		<polygon fill="#FFFFFF" stroke="#00E828" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.396,13.605 12.147,35.567 37.148,35.567 		"/>

+		<polygon fill="#FFFFFF" stroke="#00E928" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.396,13.63 12.176,35.544 37.121,35.544 		"/>

+		<polygon fill="#FFFFFF" stroke="#00EA29" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.396,13.655 12.206,35.517 37.092,35.517 		"/>

+		<polygon fill="#FFFFFF" stroke="#00EB29" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.396,13.682 12.233,35.491 37.062,35.491 		"/>

+		<polygon fill="#FFFFFF" stroke="#00EC2A" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.397,13.707 12.263,35.466 37.035,35.466 		"/>

+		<polygon fill="#FFFFFF" stroke="#00ED2A" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.397,13.732 12.292,35.44 37.006,35.44 		"/>

+		<polygon fill="#FFFFFF" stroke="#00EE2B" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.398,13.756 12.319,35.417 36.977,35.417 		"/>

+		<polygon fill="#FFFFFF" stroke="#00EF2B" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.398,13.782 12.349,35.392 36.949,35.392 		"/>

+		<polygon fill="#FFFFFF" stroke="#00F02C" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.399,13.808 12.377,35.366 36.92,35.366 		"/>

+		<polygon fill="#FFFFFF" stroke="#00F12C" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.399,13.833 12.407,35.341 36.891,35.341 		"/>

+		<polygon fill="#FFFFFF" stroke="#00F22D" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.4,13.858 12.436,35.315 36.861,35.315 		"/>

+		<polygon fill="#FFFFFF" stroke="#00F32D" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.401,13.883 12.463,35.29 36.834,35.29 		"/>

+		<polygon fill="#FFFFFF" stroke="#00F42E" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.401,13.908 12.493,35.265 36.805,35.265 		"/>

+		<polygon fill="#FFFFFF" stroke="#00F52E" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.402,13.934 12.521,35.239 36.775,35.239 		"/>

+		<polygon fill="#FFFFFF" stroke="#00F62F" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.402,13.959 12.549,35.214 36.748,35.214 		"/>

+		<polygon fill="#FFFFFF" stroke="#00F72F" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.403,13.983 12.579,35.188 36.719,35.188 		"/>

+		<polygon fill="#FFFFFF" stroke="#00F830" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.404,14.009 12.607,35.165 36.689,35.165 		"/>

+		<polygon fill="#FFFFFF" stroke="#00F930" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.404,14.034 12.637,35.138 36.662,35.138 		"/>

+		<polygon fill="#FFFFFF" stroke="#00FA31" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.405,14.061 12.666,35.112 36.633,35.112 		"/>

+		<polygon fill="#FFFFFF" stroke="#00FB31" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.405,14.085 12.693,35.089 36.604,35.089 		"/>

+		<polygon fill="#FFFFFF" stroke="#00FC32" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.407,14.11 12.723,35.063 36.574,35.063 		"/>

+		<polygon fill="#FFFFFF" stroke="#00FD32" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.408,14.135 12.75,35.038 36.547,35.038 		"/>

+		<polygon fill="#FFFFFF" stroke="#00FE33" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" points="

+			24.408,14.16 12.779,35.013 36.518,35.013 		"/>

+		<path fill="#FFFFFF" stroke="#00FF33" stroke-width="6.6112" stroke-linecap="round" stroke-linejoin="round" d="M24.409,14.187

+			l-11.6,20.801h23.68L24.409,14.187z"/>

+	</g>

+	

+		<linearGradient id="XMLID_4_" gradientUnits="userSpaceOnUse" x1="582.6475" y1="-987.77" x2="582.6475" y2="-1015.4038" gradientTransform="matrix(1 0 0 -1 -558 -977)">

+		<stop  offset="0" style="stop-color:#FFFFFF"/>

+		<stop  offset="1" style="stop-color:#00FF33"/>

+	</linearGradient>

+	<path fill="url(#XMLID_4_)" d="M39.693,34.153L26.857,12.138c-0.51-0.85-1.443-1.445-2.463-1.36c-1.021,0-1.955,0.595-2.465,1.445

+		L9.604,34.239c-0.511,0.85-0.511,1.953,0,2.805c0.51,0.852,1.444,1.359,2.465,1.359h25.16c1.021,0,1.955-0.51,2.465-1.445

+		C40.203,36.106,40.203,35.003,39.693,34.153L39.693,34.153z"/>

+	<g>

+		<path d="M24.648,33.487c-1.1,0-1.8-0.801-1.8-1.801c0-1.102,0.7-1.801,1.8-1.801c1.1,0,1.801,0.699,1.801,1.801

+			C26.449,32.687,25.748,33.487,24.648,33.487L24.648,33.487z M23.449,28.786l-0.4-9.1h3.2l-0.4,9.1H23.55H23.449z"/>

+	</g>

+</g>

+<g id="crop_x0020_marks">

+	<path fill="none" d="M48.648,48.586h-48v-48h48V48.586z"/>

+</g>

+</svg>

diff --git a/applications/content/template/docbook/images/colorsvg/next.svg b/applications/content/template/docbook/images/colorsvg/next.svg
new file mode 100644
index 0000000..52b73cf
--- /dev/null
+++ b/applications/content/template/docbook/images/colorsvg/next.svg
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [

+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">

+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">

+]>

+<svg  version="1.1" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="48" height="48" viewBox="0 0 48 48"

+	 overflow="visible" enable-background="new 0 0 48 48" xml:space="preserve">

+<g>

+	<path fill="#FFFFFF" stroke="#FFFFFF" stroke-width="7.5901" stroke-linejoin="round" d="M22.34,41.101c0,0.301,0.3,0.301,0.5,0.2

+		l16.6-16.899c0.5-0.5,0.4-0.7,0-1l-16.6-16.7c-0.1-0.1-0.4-0.1-0.4,0.1v10H8.84c-0.3,0-0.5,0.2-0.5,0.4v13.299

+		c0,0.4,0.2,0.5,0.6,0.5h13.5L22.34,41.101z"/>

+	<g>

+		<path fill="#0033CC" d="M22.34,41.101c0,0.301,0.3,0.301,0.5,0.2l16.6-16.899c0.5-0.5,0.4-0.7,0-1l-16.6-16.7

+			c-0.1-0.1-0.4-0.1-0.4,0.1v10H8.84c-0.3,0-0.5,0.2-0.5,0.4v13.299c0,0.4,0.2,0.5,0.6,0.5h13.5L22.34,41.101z"/>

+		<path fill="#0134CC" d="M22.351,41.074c0,0.3,0.3,0.3,0.5,0.2L39.427,24.4c0.5-0.499,0.4-0.699,0-0.999L22.85,6.729

+			c-0.1-0.1-0.399-0.1-0.399,0.099v9.984H8.87c-0.299,0-0.5,0.2-0.5,0.4v13.279c0,0.398,0.2,0.499,0.6,0.499H22.45L22.351,41.074z"

+			/>

+		<path fill="#0235CD" d="M22.359,41.047c0,0.3,0.299,0.3,0.499,0.2l16.553-16.848c0.5-0.498,0.399-0.697,0-0.997L22.858,6.755

+			c-0.1-0.1-0.399-0.1-0.399,0.1v9.969H8.897c-0.299,0-0.499,0.199-0.499,0.399v13.258c0,0.398,0.2,0.498,0.598,0.498h13.462

+			L22.359,41.047z"/>

+		<path fill="#0336CD" d="M22.369,41.021c0,0.301,0.299,0.301,0.498,0.199l16.53-16.82c0.498-0.498,0.397-0.696,0-0.995

+			L22.866,6.783c-0.1-0.1-0.398-0.1-0.398,0.099v9.953H8.926c-0.299,0-0.498,0.199-0.498,0.398v13.239

+			c0,0.397,0.199,0.496,0.598,0.496h13.442L22.369,41.021z"/>

+		<path fill="#0437CE" d="M22.378,40.994c0,0.299,0.298,0.299,0.497,0.198l16.506-16.794c0.496-0.497,0.397-0.695,0-0.994

+			L22.876,6.81c-0.1-0.1-0.398-0.1-0.398,0.099v9.937H8.956c-0.298,0-0.498,0.199-0.498,0.398v13.217c0,0.397,0.2,0.496,0.597,0.496

+			h13.423L22.378,40.994z"/>

+		<path fill="#0538CE" d="M22.389,40.968c0,0.299,0.298,0.299,0.496,0.198l16.483-16.769c0.496-0.496,0.397-0.694,0-0.992

+			L22.884,6.836c-0.099-0.099-0.397-0.099-0.397,0.099v9.922H8.983c-0.297,0-0.496,0.199-0.496,0.397V30.45

+			c0,0.396,0.199,0.496,0.596,0.496h13.404L22.389,40.968z"/>

+		<path fill="#0639CF" d="M22.398,40.94c0,0.299,0.298,0.299,0.496,0.199l16.46-16.742c0.495-0.496,0.396-0.694,0-0.991

+			L22.894,6.863c-0.099-0.099-0.396-0.099-0.396,0.099v9.906H9.012c-0.297,0-0.496,0.198-0.496,0.396V30.44

+			c0,0.396,0.199,0.494,0.595,0.494h13.386L22.398,40.94z"/>

+		<path fill="#073ACF" d="M22.407,40.914c0,0.298,0.298,0.298,0.495,0.198l16.437-16.716c0.494-0.495,0.396-0.692,0-0.989

+			L22.902,6.891c-0.099-0.099-0.396-0.099-0.396,0.099v9.891H9.041c-0.296,0-0.495,0.198-0.495,0.396v13.154

+			c0,0.396,0.198,0.493,0.594,0.493h13.367L22.407,40.914z"/>

+		<path fill="#083BD0" d="M22.417,40.888c0,0.297,0.297,0.297,0.495,0.198l16.413-16.689c0.494-0.494,0.396-0.691,0-0.987

+			L22.912,6.917c-0.099-0.099-0.396-0.099-0.396,0.099v9.875H9.069c-0.296,0-0.494,0.198-0.494,0.396v13.133

+			c0,0.395,0.198,0.493,0.594,0.493h13.347L22.417,40.888z"/>

+		<path fill="#093CD0" d="M22.426,40.86c0,0.297,0.296,0.297,0.493,0.197l16.39-16.662c0.492-0.494,0.395-0.69,0-0.986L22.919,6.943

+			c-0.099-0.099-0.395-0.099-0.395,0.098v9.86H9.099c-0.296,0-0.494,0.197-0.494,0.395V30.41c0,0.396,0.198,0.493,0.593,0.493

+			h13.328L22.426,40.86z"/>

+		<path fill="#0A3DD1" d="M22.437,40.834c0,0.297,0.296,0.297,0.493,0.196l16.367-16.636c0.492-0.493,0.395-0.689,0-0.984

+			L22.928,6.97c-0.099-0.099-0.394-0.099-0.394,0.098v9.844H9.127c-0.296,0-0.493,0.197-0.493,0.394v13.093

+			c0,0.395,0.197,0.492,0.592,0.492h13.309L22.437,40.834z"/>

+		<path fill="#0B3ED1" d="M22.445,40.808c0,0.297,0.296,0.297,0.492,0.197l16.343-16.61c0.492-0.492,0.395-0.688,0-0.982

+			L22.938,6.999C22.84,6.9,22.544,6.9,22.544,7.097v9.829H9.155c-0.295,0-0.493,0.196-0.493,0.394v13.072

+			c0,0.394,0.198,0.49,0.591,0.49h13.29L22.445,40.808z"/>

+		<path fill="#0C3FD2" d="M22.456,40.78c0,0.296,0.295,0.296,0.492,0.197l16.319-16.584c0.49-0.491,0.395-0.687,0-0.982

+			L22.946,7.024c-0.098-0.098-0.393-0.098-0.393,0.098v9.813H9.185c-0.294,0-0.492,0.196-0.492,0.393v13.05

+			c0,0.394,0.197,0.491,0.59,0.491h13.271L22.456,40.78z"/>

+		<path fill="#0D40D2" d="M22.464,40.754c0,0.295,0.294,0.295,0.491,0.196l16.295-16.558c0.489-0.49,0.393-0.686,0-0.98

+			L22.956,7.051c-0.099-0.098-0.393-0.098-0.393,0.097v9.797H9.212c-0.294,0-0.49,0.197-0.49,0.393v13.031

+			c0,0.393,0.196,0.489,0.588,0.489h13.252L22.464,40.754z"/>

+		<path fill="#0E41D3" d="M22.475,40.728c0,0.295,0.294,0.295,0.49,0.196l16.272-16.531c0.49-0.489,0.394-0.684,0-0.978L22.964,7.08

+			c-0.098-0.098-0.392-0.098-0.392,0.097v9.782H9.241c-0.294,0-0.49,0.196-0.49,0.392v13.01c0,0.392,0.196,0.488,0.588,0.488h13.233

+			L22.475,40.728z"/>

+		<path fill="#0F42D3" d="M22.483,40.701c0,0.294,0.294,0.294,0.49,0.194l16.248-16.504c0.488-0.488,0.393-0.683,0-0.977

+			L22.974,7.105c-0.098-0.098-0.391-0.098-0.391,0.097v9.767H9.271c-0.293,0-0.489,0.195-0.489,0.391v12.988

+			c0,0.392,0.196,0.487,0.587,0.487h13.214L22.483,40.701z"/>

+		<path fill="#1043D4" d="M22.494,40.675c0,0.293,0.294,0.293,0.489,0.194l16.226-16.478c0.487-0.488,0.392-0.683,0-0.975

+			L22.982,7.132c-0.098-0.098-0.391-0.098-0.391,0.097v9.751H9.298c-0.293,0-0.489,0.195-0.489,0.39v12.967

+			c0,0.392,0.196,0.487,0.586,0.487H22.59L22.494,40.675z"/>

+		<path fill="#1144D4" d="M22.502,40.647c0,0.293,0.293,0.293,0.488,0.194L39.191,24.39c0.487-0.487,0.392-0.682,0-0.974

+			L22.991,7.16c-0.098-0.098-0.391-0.098-0.391,0.097v9.735H9.328c-0.293,0-0.488,0.195-0.488,0.39v12.948

+			c0,0.39,0.195,0.486,0.585,0.486h13.176L22.502,40.647z"/>

+		<path fill="#1245D5" d="M22.514,40.621c0,0.292,0.292,0.292,0.487,0.194L39.177,24.39c0.488-0.486,0.392-0.68,0-0.972L23,7.188

+			c-0.098-0.098-0.39-0.098-0.39,0.096v9.72H9.356c-0.292,0-0.487,0.195-0.487,0.39v12.926c0,0.39,0.195,0.486,0.585,0.486H22.61

+			L22.514,40.621z"/>

+		<path fill="#1346D5" d="M22.522,40.595c0,0.292,0.292,0.292,0.487,0.194L39.165,24.39c0.485-0.485,0.389-0.679,0-0.97

+			L23.009,7.213c-0.098-0.097-0.389-0.097-0.389,0.097v9.704H9.384c-0.292,0-0.486,0.194-0.486,0.389V30.31

+			c0,0.389,0.195,0.484,0.584,0.484h13.138L22.522,40.595z"/>

+		<path fill="#1447D6" d="M22.531,40.567c0,0.291,0.292,0.291,0.486,0.193l16.132-16.372c0.484-0.484,0.389-0.678,0-0.969

+			L23.018,7.241c-0.097-0.097-0.389-0.097-0.389,0.097v9.688H9.414c-0.292,0-0.486,0.194-0.486,0.388v12.885

+			c0,0.388,0.195,0.483,0.583,0.483h13.118L22.531,40.567z"/>

+		<path fill="#1548D6" d="M22.542,40.541c0,0.291,0.292,0.291,0.485,0.192l16.107-16.346c0.484-0.484,0.389-0.677,0-0.968

+			L23.026,7.268c-0.097-0.097-0.388-0.097-0.388,0.097v9.672H9.441c-0.291,0-0.485,0.194-0.485,0.388v12.865

+			c0,0.388,0.194,0.483,0.582,0.483h13.099L22.542,40.541z"/>

+		<path fill="#1649D7" d="M22.551,40.515c0,0.291,0.291,0.291,0.484,0.193l16.083-16.321c0.485-0.483,0.389-0.676,0-0.966

+			L23.036,7.294c-0.097-0.097-0.388-0.097-0.388,0.096v9.657H9.47c-0.291,0-0.484,0.193-0.484,0.387v12.844

+			c0,0.387,0.194,0.481,0.582,0.481h13.08L22.551,40.515z"/>

+		<path fill="#174AD7" d="M22.561,40.487c0,0.291,0.291,0.291,0.484,0.193l16.061-16.294c0.483-0.482,0.388-0.674,0-0.964

+			L23.044,7.321c-0.097-0.096-0.387-0.096-0.387,0.097v9.641H9.5c-0.29,0-0.483,0.193-0.483,0.386v12.823

+			c0,0.387,0.193,0.481,0.58,0.481h13.062L22.561,40.487z"/>

+		<path fill="#184BD8" d="M22.57,40.462c0,0.289,0.29,0.289,0.483,0.191l16.038-16.267c0.481-0.481,0.387-0.673,0-0.962

+			L23.053,7.349c-0.097-0.096-0.387-0.096-0.387,0.096v9.626H9.527c-0.29,0-0.483,0.193-0.483,0.385v12.802

+			c0,0.386,0.193,0.481,0.58,0.481h13.042L22.57,40.462z"/>

+		<path fill="#194CD8" d="M22.58,40.435c0,0.289,0.29,0.289,0.482,0.192l16.014-16.242c0.481-0.481,0.387-0.672,0-0.961

+			L23.062,7.375c-0.097-0.096-0.386-0.096-0.386,0.096v9.611H9.557c-0.289,0-0.482,0.192-0.482,0.385v12.782

+			c0,0.384,0.193,0.479,0.579,0.479h13.023L22.58,40.435z"/>

+		<path fill="#1A4DD9" d="M22.589,40.408c0,0.288,0.289,0.288,0.482,0.192l15.99-16.216c0.48-0.48,0.386-0.672,0-0.959L23.071,7.402

+			c-0.097-0.096-0.385-0.096-0.385,0.095v9.595H9.585c-0.289,0-0.482,0.192-0.482,0.384v12.761c0,0.385,0.193,0.479,0.578,0.479

+			h13.004L22.589,40.408z"/>

+		<path fill="#1B4ED9" d="M22.6,40.382c0,0.288,0.289,0.288,0.481,0.192l15.967-16.19c0.48-0.479,0.385-0.67,0-0.958L23.081,7.43

+			c-0.096-0.096-0.384-0.096-0.384,0.095v9.58H9.614c-0.288,0-0.481,0.192-0.481,0.384v12.741c0,0.383,0.193,0.478,0.577,0.478

+			h12.985L22.6,40.382z"/>

+		<path fill="#1C4FDA" d="M22.608,40.354c0,0.289,0.289,0.289,0.48,0.192l15.943-16.164c0.479-0.478,0.386-0.669,0-0.957

+			L23.088,7.457c-0.096-0.096-0.384-0.096-0.384,0.095v9.564H9.643c-0.288,0-0.48,0.191-0.48,0.383v12.719

+			c0,0.383,0.192,0.479,0.577,0.479h12.966L22.608,40.354z"/>

+		<path fill="#1D50DA" d="M22.619,40.328c0,0.287,0.288,0.287,0.479,0.19l15.92-16.136c0.479-0.478,0.384-0.668,0-0.955

+			L23.098,7.482c-0.096-0.096-0.384-0.096-0.384,0.095v9.548H9.67c-0.288,0-0.479,0.191-0.479,0.382v12.699

+			c0,0.382,0.191,0.479,0.575,0.479h12.947L22.619,40.328z"/>

+		<path fill="#1E51DB" d="M22.628,40.302c0,0.287,0.288,0.287,0.479,0.191l15.896-16.111c0.479-0.477,0.385-0.667,0-0.954

+			L23.106,7.51c-0.096-0.096-0.383-0.096-0.383,0.094v9.533H9.699c-0.287,0-0.479,0.191-0.479,0.382v12.679

+			c0,0.382,0.191,0.477,0.575,0.477h12.928L22.628,40.302z"/>

+		<path fill="#1F52DB" d="M22.637,40.274c0,0.287,0.288,0.287,0.479,0.19L38.99,24.381c0.478-0.476,0.382-0.666,0-0.952

+			L23.115,7.538c-0.095-0.096-0.382-0.096-0.382,0.094v9.517H9.729c-0.287,0-0.478,0.191-0.478,0.381v12.657

+			c0,0.381,0.191,0.477,0.574,0.477h12.909L22.637,40.274z"/>

+		<path fill="#2053DC" d="M22.647,40.249c0,0.285,0.287,0.285,0.478,0.189l15.85-16.058c0.477-0.475,0.382-0.665,0-0.95

+			L23.125,7.563c-0.096-0.095-0.382-0.095-0.382,0.095v9.501H9.757c-0.286,0-0.478,0.19-0.478,0.381v12.636

+			c0,0.381,0.191,0.475,0.573,0.475h12.89L22.647,40.249z"/>

+		<path fill="#2154DC" d="M22.656,40.222c0,0.285,0.287,0.285,0.477,0.19L38.96,24.38c0.477-0.475,0.381-0.664,0-0.949L23.133,7.59

+			c-0.096-0.095-0.382-0.095-0.382,0.095v9.486H9.786c-0.286,0-0.477,0.19-0.477,0.38v12.617c0,0.379,0.191,0.474,0.572,0.474

+			h12.871L22.656,40.222z"/>

+		<path fill="#2255DD" d="M22.667,40.194c0,0.285,0.286,0.285,0.477,0.189l15.802-16.004c0.476-0.474,0.382-0.663,0-0.947

+			L23.143,7.618c-0.096-0.095-0.381-0.095-0.381,0.094v9.471H9.814c-0.285,0-0.476,0.189-0.476,0.379v12.596

+			c0,0.379,0.191,0.473,0.572,0.473h12.851L22.667,40.194z"/>

+		<path fill="#2356DD" d="M22.675,40.169c0,0.284,0.286,0.284,0.476,0.189l15.779-15.979c0.475-0.473,0.381-0.662,0-0.945

+			L23.151,7.645c-0.095-0.094-0.38-0.094-0.38,0.094v9.455H9.843c-0.285,0-0.475,0.189-0.475,0.378v12.574

+			c0,0.379,0.19,0.474,0.571,0.474h12.832L22.675,40.169z"/>

+		<path fill="#2457DE" d="M22.686,40.144c0,0.282,0.285,0.282,0.475,0.188l15.756-15.953c0.474-0.472,0.379-0.66,0-0.944

+			L23.159,7.671c-0.095-0.094-0.379-0.094-0.379,0.094v9.439H9.873c-0.285,0-0.475,0.189-0.475,0.378v12.554

+			c0,0.378,0.19,0.472,0.569,0.472H22.78L22.686,40.144z"/>

+		<path fill="#2558DE" d="M22.694,40.115c0,0.282,0.285,0.282,0.474,0.188l15.733-15.925c0.473-0.471,0.379-0.66,0-0.942

+			L23.168,7.698c-0.095-0.094-0.379-0.094-0.379,0.094v9.424H9.9c-0.284,0-0.474,0.189-0.474,0.377v12.535

+			c0,0.376,0.189,0.471,0.568,0.471h12.794L22.694,40.115z"/>

+		<path fill="#2659DF" d="M22.705,40.089c0,0.283,0.284,0.283,0.473,0.188l15.708-15.899c0.474-0.471,0.38-0.659,0-0.941

+			L23.177,7.726c-0.095-0.094-0.379-0.094-0.379,0.094v9.408H9.929c-0.284,0-0.473,0.188-0.473,0.377v12.514

+			c0,0.376,0.189,0.469,0.568,0.469h12.775L22.705,40.089z"/>

+		<path fill="#275ADF" d="M22.714,40.063c0,0.281,0.284,0.281,0.473,0.188l15.685-15.874c0.473-0.47,0.379-0.658,0-0.939

+			L23.188,7.752c-0.095-0.094-0.378-0.094-0.378,0.094v9.392H9.958c-0.283,0-0.472,0.188-0.472,0.376v12.492

+			c0,0.375,0.189,0.47,0.567,0.47H22.81L22.714,40.063z"/>

+		<path fill="#285BE0" d="M22.724,40.036c0,0.281,0.283,0.281,0.472,0.188l15.662-15.847c0.472-0.469,0.378-0.656,0-0.938

+			L23.195,7.779c-0.095-0.094-0.377-0.094-0.377,0.094v9.376H9.986c-0.283,0-0.472,0.188-0.472,0.375v12.472

+			c0,0.375,0.189,0.467,0.566,0.467h12.737L22.724,40.036z"/>

+		<path fill="#295CE0" d="M22.732,40.009c0,0.281,0.283,0.281,0.471,0.188l15.639-15.82c0.471-0.468,0.377-0.655,0-0.936

+			L23.205,7.807c-0.094-0.094-0.377-0.094-0.377,0.093v9.361H10.016c-0.283,0-0.471,0.188-0.471,0.375v12.451

+			c0,0.374,0.188,0.468,0.565,0.468h12.718L22.732,40.009z"/>

+		<path fill="#2A5DE1" d="M22.742,39.981c0,0.28,0.283,0.28,0.47,0.188l15.615-15.793c0.471-0.468,0.377-0.654,0-0.935L23.212,7.833

+			c-0.094-0.094-0.376-0.094-0.376,0.093v9.345H10.044c-0.282,0-0.471,0.188-0.471,0.375v12.431c0,0.374,0.188,0.467,0.565,0.467

+			h12.699L22.742,39.981z"/>

+		<path fill="#2B5EE1" d="M22.752,39.956c0,0.279,0.282,0.279,0.469,0.188l15.592-15.768c0.469-0.467,0.376-0.653,0-0.933

+			L23.223,7.86c-0.094-0.093-0.375-0.093-0.375,0.093v9.331H10.072c-0.282,0-0.47,0.187-0.47,0.373v12.41

+			c0,0.373,0.188,0.466,0.563,0.466h12.68L22.752,39.956z"/>

+		<path fill="#2C5FE2" d="M22.761,39.929c0,0.28,0.282,0.28,0.469,0.188l15.567-15.742c0.47-0.466,0.377-0.652,0-0.932L23.231,7.887

+			c-0.094-0.093-0.375-0.093-0.375,0.092v9.315H10.102c-0.281,0-0.469,0.187-0.469,0.373v12.388c0,0.372,0.188,0.465,0.563,0.465

+			h12.661L22.761,39.929z"/>

+		<path fill="#2D60E2" d="M22.771,39.901c0,0.279,0.281,0.279,0.469,0.187l15.544-15.714c0.469-0.465,0.375-0.65,0-0.93

+			L23.239,7.914c-0.094-0.093-0.375-0.093-0.375,0.093v9.299H10.129c-0.28,0-0.468,0.186-0.468,0.373v12.367

+			c0,0.372,0.188,0.465,0.562,0.465h12.642L22.771,39.901z"/>

+		<path fill="#2E61E3" d="M22.781,39.876c0,0.277,0.281,0.277,0.468,0.186l15.521-15.688c0.468-0.464,0.375-0.649,0-0.928

+			L23.25,7.94c-0.094-0.093-0.375-0.093-0.375,0.092v9.284H10.158c-0.28,0-0.467,0.186-0.467,0.372v12.347

+			c0,0.372,0.188,0.464,0.561,0.464h12.623L22.781,39.876z"/>

+		<path fill="#2F62E3" d="M22.792,39.851c0,0.277,0.28,0.277,0.467,0.186l15.499-15.663c0.466-0.464,0.373-0.649,0-0.927

+			l-15.5-15.479c-0.093-0.092-0.374-0.092-0.374,0.092v9.268H10.188c-0.28,0-0.467,0.186-0.467,0.372v12.325

+			c0,0.371,0.187,0.463,0.56,0.463h12.604L22.792,39.851z"/>

+		<path fill="#3063E4" d="M22.799,39.821c0,0.279,0.281,0.279,0.467,0.187l15.475-15.636c0.465-0.463,0.373-0.648,0-0.925

+			L23.267,7.995c-0.093-0.092-0.373-0.092-0.373,0.092v9.252H10.215c-0.279,0-0.466,0.185-0.466,0.371v12.305

+			c0,0.369,0.187,0.461,0.56,0.461h12.584L22.799,39.821z"/>

+		<path fill="#3164E4" d="M22.81,39.796c0,0.277,0.28,0.277,0.466,0.186l15.451-15.61c0.465-0.462,0.372-0.646,0-0.924L23.275,8.021

+			c-0.094-0.092-0.373-0.092-0.373,0.092v9.237H10.245c-0.279,0-0.465,0.185-0.465,0.37v12.285c0,0.369,0.187,0.461,0.559,0.461

+			h12.565L22.81,39.796z"/>

+		<path fill="#3265E5" d="M22.819,39.771c0,0.276,0.279,0.276,0.465,0.185l15.428-15.583c0.465-0.461,0.373-0.646,0-0.922

+			L23.284,8.048c-0.093-0.092-0.372-0.092-0.372,0.092v9.221H10.273c-0.279,0-0.464,0.185-0.464,0.37v12.265

+			c0,0.369,0.186,0.46,0.558,0.46h12.546L22.819,39.771z"/>

+		<path fill="#3366E5" d="M22.83,39.743c0,0.275,0.278,0.275,0.464,0.185l15.404-15.557c0.464-0.46,0.371-0.645,0-0.921

+			L23.293,8.076c-0.093-0.092-0.372-0.092-0.372,0.092v9.206h-12.62c-0.278,0-0.464,0.184-0.464,0.369v12.243

+			c0,0.369,0.186,0.461,0.557,0.461h12.527L22.83,39.743z"/>

+		<path fill="#3366E6" d="M22.838,39.716c0,0.276,0.278,0.276,0.464,0.186l15.38-15.532c0.463-0.459,0.371-0.643,0-0.918

+			L23.302,8.103c-0.093-0.092-0.371-0.092-0.371,0.091v9.19H10.331c-0.278,0-0.463,0.185-0.463,0.368v12.222

+			c0,0.368,0.186,0.459,0.556,0.459h12.508L22.838,39.716z"/>

+		<path fill="#3467E6" d="M22.849,39.688c0,0.275,0.278,0.275,0.463,0.185l15.357-15.504c0.461-0.458,0.369-0.642,0-0.917

+			L23.312,8.129C23.217,8.038,22.94,8.038,22.94,8.22v9.174H10.358c-0.277,0-0.462,0.184-0.462,0.368v12.203

+			c0,0.366,0.185,0.458,0.555,0.458H22.94L22.849,39.688z"/>

+		<path fill="#3568E7" d="M22.857,39.663c0,0.275,0.277,0.275,0.462,0.184l15.333-15.478c0.461-0.458,0.37-0.641,0-0.916

+			L23.319,8.156c-0.093-0.092-0.37-0.092-0.37,0.091v9.159H10.387c-0.277,0-0.461,0.184-0.461,0.367v12.182

+			c0,0.366,0.185,0.457,0.554,0.457h12.47L22.857,39.663z"/>

+		<path fill="#3669E7" d="M22.867,39.637c0,0.274,0.277,0.274,0.461,0.183l15.31-15.452c0.461-0.458,0.368-0.64,0-0.915

+			l-15.31-15.27c-0.092-0.091-0.369-0.091-0.369,0.091v9.143H10.417c-0.277,0-0.461,0.184-0.461,0.366v12.16

+			c0,0.365,0.184,0.457,0.553,0.457h12.451L22.867,39.637z"/>

+		<path fill="#376AE8" d="M22.877,39.608c0,0.274,0.276,0.274,0.46,0.184l15.287-15.425c0.461-0.457,0.369-0.639,0-0.913

+			L23.337,8.21c-0.092-0.091-0.368-0.091-0.368,0.091v9.127H10.445c-0.276,0-0.46,0.183-0.46,0.366v12.14

+			c0,0.365,0.184,0.455,0.552,0.455h12.432L22.877,39.608z"/>

+		<path fill="#386BE8" d="M22.886,39.583c0,0.273,0.276,0.273,0.46,0.184l15.263-15.4c0.459-0.456,0.368-0.638,0-0.911L23.347,8.237

+			c-0.092-0.091-0.368-0.091-0.368,0.091v9.112H10.474c-0.275,0-0.459,0.183-0.459,0.365v12.119c0,0.363,0.184,0.454,0.552,0.454

+			h12.413L22.886,39.583z"/>

+		<path fill="#396CE9" d="M22.896,39.558c0,0.272,0.276,0.272,0.459,0.182l15.239-15.374c0.459-0.455,0.367-0.637,0-0.91

+			L23.355,8.265c-0.092-0.091-0.368-0.091-0.368,0.09v9.097H10.502c-0.275,0-0.459,0.183-0.459,0.364v12.099

+			c0,0.364,0.184,0.454,0.551,0.454h12.394L22.896,39.558z"/>

+		<path fill="#3A6DE9" d="M22.905,39.528c0,0.273,0.276,0.273,0.459,0.184l15.217-15.348c0.457-0.454,0.366-0.635,0-0.908

+			L23.364,8.292c-0.092-0.091-0.367-0.091-0.367,0.09v9.081H10.531c-0.275,0-0.458,0.182-0.458,0.364v12.079

+			c0,0.361,0.184,0.453,0.55,0.453h12.374L22.905,39.528z"/>

+		<path fill="#3B6EEA" d="M22.916,39.503c0,0.271,0.275,0.271,0.458,0.182l15.193-15.32c0.456-0.453,0.366-0.634,0-0.906

+			L23.374,8.318c-0.092-0.091-0.366-0.091-0.366,0.09v9.065H10.56c-0.274,0-0.458,0.182-0.458,0.363v12.057

+			c0,0.362,0.183,0.453,0.549,0.453h12.355L22.916,39.503z"/>

+		<path fill="#3C6FEA" d="M22.924,39.478c0,0.271,0.274,0.271,0.457,0.181l15.17-15.294c0.455-0.453,0.365-0.633,0-0.905

+			L23.381,8.344c-0.092-0.09-0.366-0.09-0.366,0.09v9.05H10.588c-0.274,0-0.457,0.181-0.457,0.363v12.036

+			c0,0.361,0.183,0.451,0.548,0.451h12.336L22.924,39.478z"/>

+		<path fill="#3D70EB" d="M22.935,39.45c0,0.271,0.274,0.271,0.456,0.181l15.146-15.269c0.455-0.452,0.365-0.632,0-0.904

+			L23.391,8.373c-0.091-0.09-0.365-0.09-0.365,0.09v9.034H10.617c-0.274,0-0.456,0.181-0.456,0.362v12.017

+			c0,0.36,0.182,0.45,0.547,0.45h12.317L22.935,39.45z"/>

+		<path fill="#3E71EB" d="M22.943,39.424c0,0.271,0.274,0.271,0.456,0.181l15.123-15.243c0.455-0.451,0.363-0.631,0-0.902

+			L23.399,8.398c-0.091-0.09-0.365-0.09-0.365,0.09v9.019h-12.39c-0.273,0-0.455,0.181-0.455,0.361v11.994

+			c0,0.361,0.182,0.451,0.546,0.451h12.298L22.943,39.424z"/>

+		<path fill="#3F72EC" d="M22.954,39.397c0,0.271,0.273,0.271,0.455,0.181l15.099-15.217c0.455-0.45,0.365-0.63,0-0.9L23.408,8.425

+			c-0.091-0.09-0.364-0.09-0.364,0.089v9.003h-12.37c-0.272,0-0.455,0.18-0.455,0.361v11.974c0,0.359,0.182,0.449,0.546,0.449

+			h12.279L22.954,39.397z"/>

+		<path fill="#4073EC" d="M22.962,39.37c0,0.27,0.273,0.27,0.455,0.18l15.076-15.188c0.453-0.45,0.363-0.629,0-0.898L23.417,8.453

+			c-0.091-0.09-0.363-0.09-0.363,0.089v8.988H10.704c-0.272,0-0.454,0.18-0.454,0.36v11.954c0,0.358,0.182,0.448,0.545,0.448h12.26

+			L22.962,39.37z"/>

+		<path fill="#4174ED" d="M22.973,39.344c0,0.271,0.272,0.271,0.454,0.181L38.479,24.36c0.452-0.449,0.362-0.628,0-0.897

+			L23.426,8.48c-0.091-0.09-0.363-0.09-0.363,0.089v8.972H10.731c-0.272,0-0.453,0.18-0.453,0.359v11.933

+			c0,0.357,0.181,0.447,0.544,0.447h12.241L22.973,39.344z"/>

+		<path fill="#4275ED" d="M22.982,39.315c0,0.271,0.272,0.271,0.453,0.181l15.028-15.137c0.453-0.448,0.363-0.626,0-0.896

+			L23.436,8.506c-0.091-0.09-0.362-0.09-0.362,0.089v8.957H10.76c-0.271,0-0.453,0.18-0.453,0.358v11.913

+			c0,0.357,0.181,0.445,0.543,0.445h12.222L22.982,39.315z"/>

+		<path fill="#4376EE" d="M22.991,39.29c0,0.27,0.272,0.27,0.453,0.179l15.005-15.109c0.451-0.447,0.362-0.625,0-0.894L23.444,8.534

+			c-0.091-0.089-0.362-0.089-0.362,0.089v8.94H10.79c-0.271,0-0.452,0.18-0.452,0.358v11.893c0,0.355,0.181,0.444,0.542,0.444

+			h12.203L22.991,39.29z"/>

+		<path fill="#4477EE" d="M23.001,39.265c0,0.268,0.271,0.268,0.452,0.178l14.981-15.083c0.449-0.446,0.361-0.625,0-0.893

+			L23.454,8.561c-0.091-0.089-0.361-0.089-0.361,0.089v8.925H10.817c-0.271,0-0.451,0.179-0.451,0.357v11.87

+			c0,0.356,0.181,0.445,0.542,0.445h12.184L23.001,39.265z"/>

+		<path fill="#4578EF" d="M23.01,39.237c0,0.268,0.271,0.268,0.451,0.178l14.959-15.058c0.449-0.445,0.359-0.624,0-0.891

+			L23.461,8.587c-0.09-0.089-0.361-0.089-0.361,0.089v8.91H10.847c-0.27,0-0.45,0.179-0.45,0.356v11.851

+			c0,0.354,0.18,0.444,0.541,0.444h12.165L23.01,39.237z"/>

+		<path fill="#4679EF" d="M23.021,39.21c0,0.268,0.271,0.268,0.45,0.18l14.935-15.032c0.449-0.445,0.36-0.623,0-0.889L23.47,8.614

+			c-0.09-0.089-0.36-0.089-0.36,0.089v8.894H10.875c-0.27,0-0.45,0.179-0.45,0.356v11.83c0,0.354,0.18,0.444,0.54,0.444H23.11

+			L23.021,39.21z"/>

+		<path fill="#477AF0" d="M23.03,39.185c0,0.267,0.27,0.267,0.449,0.178l14.912-15.005c0.447-0.444,0.359-0.622,0-0.888

+			L23.479,8.642c-0.09-0.089-0.359-0.089-0.359,0.088v8.878H10.903c-0.27,0-0.449,0.178-0.449,0.356v11.809

+			c0,0.354,0.18,0.441,0.539,0.441h12.127L23.03,39.185z"/>

+		<path fill="#487BF0" d="M23.041,39.157c0,0.266,0.269,0.266,0.448,0.177l14.89-14.979c0.446-0.443,0.357-0.62,0-0.886

+			L23.488,8.668c-0.09-0.089-0.359-0.089-0.359,0.088v8.863H10.933c-0.269,0-0.448,0.177-0.448,0.354v11.788

+			c0,0.354,0.179,0.441,0.538,0.441h12.107L23.041,39.157z"/>

+		<path fill="#497CF1" d="M23.049,39.13c0,0.268,0.269,0.268,0.448,0.178l14.865-14.952c0.446-0.442,0.357-0.619,0-0.885

+			L23.498,8.695c-0.09-0.088-0.358-0.088-0.358,0.088v8.848H10.961c-0.269,0-0.448,0.177-0.448,0.354v11.767

+			c0,0.354,0.179,0.44,0.538,0.44H23.14L23.049,39.13z"/>

+		<path fill="#4A7DF1" d="M23.06,39.104c0,0.266,0.269,0.266,0.447,0.176l14.841-14.925c0.446-0.442,0.356-0.618,0-0.883

+			L23.506,8.723c-0.09-0.088-0.358-0.088-0.358,0.088v8.832H10.989c-0.268,0-0.447,0.177-0.447,0.354v11.747

+			c0,0.354,0.179,0.439,0.537,0.439h12.069L23.06,39.104z"/>

+		<path fill="#4B7EF2" d="M23.068,39.077c0,0.265,0.269,0.265,0.447,0.177l14.817-14.899c0.445-0.441,0.357-0.617,0-0.882

+			L23.516,8.75c-0.09-0.088-0.357-0.088-0.357,0.088v8.816h-12.14c-0.268,0-0.446,0.177-0.446,0.354v11.726

+			c0,0.353,0.179,0.439,0.536,0.439h12.05L23.068,39.077z"/>

+		<path fill="#4C7FF2" d="M23.079,39.051c0,0.265,0.268,0.265,0.446,0.177l14.794-14.874c0.444-0.44,0.356-0.616,0-0.88

+			L23.523,8.775c-0.089-0.088-0.357-0.088-0.357,0.088v8.8h-12.12c-0.268,0-0.446,0.176-0.446,0.353v11.705

+			c0,0.353,0.178,0.439,0.535,0.439h12.031L23.079,39.051z"/>

+		<path fill="#4D80F3" d="M23.087,39.024c0,0.264,0.268,0.264,0.445,0.176l14.771-14.848c0.443-0.439,0.355-0.615,0-0.878

+			L23.532,8.803c-0.089-0.088-0.356-0.088-0.356,0.087v8.785H11.075c-0.267,0-0.445,0.176-0.445,0.352v11.685

+			c0,0.352,0.178,0.438,0.534,0.438h12.012L23.087,39.024z"/>

+		<path fill="#4E81F3" d="M23.098,38.997c0,0.264,0.267,0.264,0.445,0.176l14.748-14.82c0.442-0.438,0.354-0.614,0-0.877

+			L23.542,8.831c-0.089-0.088-0.356-0.088-0.356,0.087v8.769H11.104c-0.266,0-0.444,0.176-0.444,0.352v11.665

+			c0,0.35,0.178,0.437,0.533,0.437h11.993L23.098,38.997z"/>

+		<path fill="#4F82F4" d="M23.107,38.972c0,0.262,0.267,0.262,0.444,0.174l14.723-14.794c0.441-0.438,0.355-0.613,0-0.875

+			L23.55,8.856c-0.089-0.087-0.355-0.087-0.355,0.087v8.754H11.132c-0.266,0-0.443,0.176-0.443,0.351V29.69

+			c0,0.351,0.177,0.438,0.532,0.438h11.974L23.107,38.972z"/>

+		<path fill="#5083F4" d="M23.116,38.944c0,0.262,0.266,0.262,0.443,0.175l14.699-14.769c0.443-0.437,0.354-0.611,0-0.874

+			L23.56,8.883c-0.089-0.087-0.354-0.087-0.354,0.087v8.738H11.162c-0.266,0-0.443,0.175-0.443,0.35v11.622

+			c0,0.35,0.177,0.437,0.531,0.437h11.955L23.116,38.944z"/>

+		<path fill="#5184F5" d="M23.126,38.918c0,0.263,0.266,0.263,0.442,0.174l14.677-14.741c0.441-0.436,0.354-0.61,0-0.872

+			L23.568,8.911c-0.089-0.087-0.354-0.087-0.354,0.087v8.723H11.19c-0.265,0-0.442,0.175-0.442,0.35v11.603

+			c0,0.348,0.177,0.436,0.531,0.436h11.936L23.126,38.918z"/>

+		<path fill="#5285F5" d="M23.135,38.892c0,0.262,0.266,0.262,0.442,0.174L38.23,24.35c0.44-0.436,0.354-0.609,0-0.871L23.578,8.938

+			c-0.088-0.087-0.354-0.087-0.354,0.087v8.707H11.218c-0.265,0-0.441,0.175-0.441,0.349v11.581c0,0.348,0.177,0.434,0.53,0.434

+			h11.917L23.135,38.892z"/>

+		<path fill="#5386F6" d="M23.146,38.864c0,0.261,0.265,0.261,0.441,0.174l14.629-14.689c0.44-0.435,0.354-0.608,0-0.869

+			L23.586,8.964c-0.088-0.087-0.353-0.087-0.353,0.086v8.691H11.248c-0.264,0-0.441,0.174-0.441,0.348v11.562

+			c0,0.347,0.177,0.433,0.529,0.433h11.898L23.146,38.864z"/>

+		<path fill="#5487F6" d="M23.154,38.838c0,0.261,0.264,0.261,0.44,0.174l14.608-14.663c0.438-0.434,0.352-0.607,0-0.867

+			L23.595,8.992c-0.088-0.087-0.353-0.087-0.353,0.086v8.676H11.276c-0.264,0-0.44,0.174-0.44,0.348v11.54

+			c0,0.346,0.176,0.433,0.528,0.433h11.878L23.154,38.838z"/>

+		<path fill="#5588F7" d="M23.165,38.812c0,0.26,0.264,0.26,0.44,0.174l14.583-14.637c0.438-0.433,0.353-0.606,0-0.866L23.604,9.019

+			c-0.088-0.086-0.352-0.086-0.352,0.086v8.661H11.304c-0.263,0-0.439,0.173-0.439,0.347v11.52c0,0.346,0.176,0.432,0.527,0.432

+			h11.859L23.165,38.812z"/>

+		<path fill="#5689F7" d="M23.173,38.784c0,0.26,0.264,0.26,0.439,0.173l14.561-14.609c0.438-0.433,0.351-0.605,0-0.865

+			L23.612,9.045c-0.088-0.086-0.351-0.086-0.351,0.086v8.645H11.333c-0.263,0-0.438,0.173-0.438,0.346v11.499

+			c0,0.345,0.175,0.431,0.526,0.431h11.84L23.173,38.784z"/>

+		<path fill="#578AF8" d="M23.184,38.758c0,0.259,0.263,0.259,0.438,0.173l14.537-14.584c0.437-0.432,0.351-0.604,0-0.863

+			L23.622,9.072c-0.088-0.086-0.351-0.086-0.351,0.086v8.629H11.362c-0.263,0-0.438,0.173-0.438,0.346V29.61

+			c0,0.346,0.175,0.432,0.525,0.432h11.821L23.184,38.758z"/>

+		<path fill="#588BF8" d="M23.192,38.731c0,0.258,0.263,0.258,0.438,0.172l14.513-14.558c0.436-0.431,0.35-0.603,0-0.861L23.63,9.1

+			c-0.087-0.086-0.35-0.086-0.35,0.086v8.614h-11.89c-0.262,0-0.437,0.173-0.437,0.345v11.456c0,0.344,0.175,0.43,0.524,0.43H23.28

+			L23.192,38.731z"/>

+		<path fill="#598CF9" d="M23.203,38.704c0,0.259,0.262,0.259,0.437,0.173l14.488-14.532c0.437-0.43,0.351-0.602,0-0.86L23.64,9.126

+			c-0.088-0.086-0.35-0.086-0.35,0.085v8.598h-11.87c-0.262,0-0.437,0.172-0.437,0.344v11.438c0,0.344,0.175,0.428,0.524,0.428

+			h11.784L23.203,38.704z"/>

+		<path fill="#5A8DF9" d="M23.212,38.678c0,0.259,0.262,0.259,0.436,0.173l14.466-14.506c0.436-0.429,0.35-0.6,0-0.858L23.648,9.153

+			c-0.088-0.086-0.349-0.086-0.349,0.085v8.583H11.448c-0.262,0-0.436,0.172-0.436,0.344v11.416c0,0.343,0.174,0.428,0.523,0.428

+			h11.764L23.212,38.678z"/>

+		<path fill="#5B8EFA" d="M23.222,38.651c0,0.257,0.262,0.257,0.436,0.17L38.1,24.343c0.434-0.428,0.349-0.599,0-0.856L23.657,9.181

+			c-0.087-0.085-0.349-0.085-0.349,0.085v8.567H11.477c-0.261,0-0.435,0.171-0.435,0.343v11.394c0,0.343,0.174,0.428,0.522,0.428

+			h11.745L23.222,38.651z"/>

+		<path fill="#5C8FFA" d="M23.231,38.625c0,0.256,0.261,0.256,0.435,0.171l14.418-14.453c0.435-0.428,0.349-0.598,0-0.855

+			L23.667,9.208c-0.087-0.085-0.348-0.085-0.348,0.085v8.551H11.505c-0.261,0-0.434,0.172-0.434,0.343v11.375

+			c0,0.34,0.173,0.426,0.521,0.426h11.726L23.231,38.625z"/>

+		<path fill="#5D90FB" d="M23.24,38.599c0,0.256,0.261,0.256,0.434,0.17L38.07,24.342c0.433-0.427,0.349-0.598,0-0.854L23.674,9.233

+			c-0.087-0.085-0.347-0.085-0.347,0.085v8.536H11.534c-0.26,0-0.434,0.171-0.434,0.342V29.55c0,0.342,0.173,0.426,0.52,0.426

+			h11.707L23.24,38.599z"/>

+		<path fill="#5E91FB" d="M23.25,38.571c0,0.256,0.26,0.256,0.434,0.171l14.371-14.401c0.432-0.426,0.347-0.596,0-0.852

+			L23.685,9.261c-0.087-0.085-0.347-0.085-0.347,0.084v8.521H11.562c-0.259,0-0.433,0.171-0.433,0.342V29.54

+			c0,0.34,0.173,0.424,0.52,0.424h11.688L23.25,38.571z"/>

+		<path fill="#5F92FC" d="M23.26,38.545c0,0.255,0.26,0.255,0.433,0.17l14.349-14.374c0.432-0.425,0.347-0.595,0-0.85L23.692,9.289

+			c-0.087-0.085-0.346-0.085-0.346,0.084v8.504H11.591c-0.259,0-0.432,0.171-0.432,0.341V29.53c0,0.339,0.173,0.423,0.519,0.423

+			h11.669L23.26,38.545z"/>

+		<path fill="#6093FC" d="M23.27,38.519c0,0.254,0.259,0.254,0.432,0.17l14.326-14.347c0.431-0.425,0.345-0.594,0-0.849

+			L23.702,9.314c-0.087-0.085-0.346-0.085-0.346,0.084v8.489H11.621c-0.259,0-0.432,0.17-0.432,0.34v11.291

+			c0,0.34,0.173,0.424,0.518,0.424h11.649L23.27,38.519z"/>

+		<path fill="#6194FD" d="M23.279,38.491c0,0.255,0.259,0.255,0.431,0.17l14.302-14.322c0.429-0.424,0.345-0.593,0-0.847

+			L23.71,9.341c-0.086-0.084-0.345-0.084-0.345,0.084v8.473H11.648c-0.259,0-0.431,0.17-0.431,0.34v11.271

+			c0,0.338,0.172,0.422,0.517,0.422h11.63L23.279,38.491z"/>

+		<path fill="#6295FD" d="M23.29,38.465c0,0.254,0.258,0.254,0.43,0.169l14.28-14.294c0.428-0.423,0.344-0.592,0-0.846L23.719,9.369

+			c-0.086-0.084-0.344-0.084-0.344,0.084v8.458H11.677c-0.258,0-0.43,0.17-0.43,0.339v11.25c0,0.338,0.172,0.422,0.516,0.422h11.612

+			L23.29,38.465z"/>

+		<path fill="#6396FE" d="M23.298,38.438c0,0.254,0.258,0.254,0.43,0.17l14.255-14.269c0.428-0.422,0.344-0.591,0-0.844

+			l-14.255-14.1c-0.086-0.084-0.344-0.084-0.344,0.084v8.442H11.707c-0.258,0-0.429,0.169-0.429,0.338v11.228

+			c0,0.338,0.171,0.422,0.515,0.422h11.592L23.298,38.438z"/>

+		<path fill="#6497FE" d="M23.309,38.412c0,0.253,0.257,0.253,0.429,0.168l14.23-14.242c0.428-0.422,0.344-0.59,0-0.843

+			L23.737,9.422c-0.086-0.084-0.344-0.084-0.344,0.083v8.427H11.734c-0.257,0-0.429,0.169-0.429,0.338v11.209

+			c0,0.336,0.171,0.418,0.514,0.418h11.573L23.309,38.412z"/>

+		<path fill="#6598FF" d="M23.317,38.385c0,0.253,0.257,0.253,0.429,0.169l14.208-14.216c0.428-0.42,0.344-0.588,0-0.841

+			L23.747,9.45c-0.086-0.084-0.343-0.084-0.343,0.083v8.411h-11.64c-0.257,0-0.428,0.169-0.428,0.337v11.188

+			c0,0.336,0.171,0.419,0.514,0.419h11.554L23.317,38.385z"/>

+		<path fill="#6699FF" d="M23.328,38.358c0,0.252,0.257,0.252,0.428,0.168l14.185-14.19c0.426-0.42,0.342-0.587,0-0.839

+			L23.754,9.477c-0.086-0.084-0.342-0.084-0.342,0.083v8.396h-11.62c-0.256,0-0.427,0.168-0.427,0.336v11.167

+			c0,0.335,0.171,0.418,0.513,0.418h11.535L23.328,38.358z"/>

+	</g>

+	

+		<linearGradient id="XMLID_10_" gradientUnits="userSpaceOnUse" x1="210.7969" y1="-239.4214" x2="210.7969" y2="-268.5771" gradientTransform="matrix(1 0 0 -1 -186 -230)">

+		<stop  offset="0" style="stop-color:#FFFFFF"/>

+		<stop  offset="1" style="stop-color:#6699FF"/>

+	</linearGradient>

+	<path fill="url(#XMLID_10_)" d="M23.328,38.358c0,0.252,0.257,0.252,0.428,0.168l14.185-14.19c0.426-0.42,0.342-0.587,0-0.839

+		L23.754,9.477c-0.086-0.084-0.342-0.084-0.342,0.083v8.396h-11.62c-0.256,0-0.427,0.168-0.427,0.336v11.167

+		c0,0.335,0.171,0.418,0.513,0.418h11.535L23.328,38.358z"/>

+</g>

+<g id="crop_x0020_marks">

+	<path fill="none" d="M48.06,47.999h-48v-48h48V47.999z"/>

+</g>

+</svg>

diff --git a/applications/content/template/docbook/images/colorsvg/note.svg b/applications/content/template/docbook/images/colorsvg/note.svg
new file mode 100644
index 0000000..e94c610
--- /dev/null
+++ b/applications/content/template/docbook/images/colorsvg/note.svg
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [

+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">

+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">

+]>

+<svg  version="1.1" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="25.5" height="25.5" viewBox="0 0 25.5 25.5"

+	 overflow="visible" enable-background="new 0 0 25.5 25.5" xml:space="preserve">

+<g id="Layer_x0020_1">

+	<g>

+		<path fill="#1F60A9" d="M25.5,12.7c0,7-5.7,12.7-12.7,12.7C5.7,25.5,0,19.8,0,12.7C0,5.6,5.7,0,12.7,0s12.7,5.7,12.7,12.7H25.5z"

+			/>

+		<path fill="#2060AA" d="M25.473,12.7c0,6.983-5.688,12.671-12.672,12.671C5.718,25.471,0.03,19.783,0.03,12.7

+			S5.718,0.029,12.701,0.029c6.984,0,12.671,5.687,12.671,12.671H25.473z"/>

+		<path fill="#2160AB" d="M25.443,12.7c0,6.968-5.674,12.642-12.643,12.642C5.734,25.439,0.061,19.768,0.061,12.7

+			c0-7.068,5.674-12.642,12.642-12.642c6.968,0,12.641,5.674,12.641,12.642H25.443z"/>

+		<path fill="#2160AC" d="M25.415,12.7c0,6.95-5.661,12.612-12.612,12.612C5.752,25.412,0.091,19.751,0.091,12.7

+			c0-7.051,5.661-12.612,12.612-12.612S25.316,5.749,25.316,12.7H25.415z"/>

+		<path fill="#2260AD" d="M25.387,12.7c0,6.936-5.648,12.583-12.583,12.583C5.769,25.383,0.121,19.734,0.121,12.7

+			c0-7.035,5.648-12.583,12.583-12.583c6.937,0,12.583,5.648,12.583,12.583H25.387z"/>

+		<path fill="#2360AE" d="M25.357,12.701c0,6.919-5.635,12.554-12.553,12.554C5.787,25.354,0.152,19.719,0.152,12.701

+			c0-7.019,5.635-12.554,12.554-12.554S25.26,5.782,25.26,12.701H25.357z"/>

+		<path fill="#2460AF" d="M25.33,12.7c0,6.903-5.622,12.524-12.525,12.524C5.803,25.323,0.181,19.702,0.181,12.7

+			S5.803,0.175,12.706,0.175c6.903,0,12.524,5.621,12.524,12.525H25.33z"/>

+		<path fill="#2560B0" d="M25.302,12.701c0,6.887-5.608,12.496-12.496,12.496C5.82,25.294,0.212,19.686,0.212,12.701

+			c0-6.986,5.608-12.496,12.496-12.496c6.888,0,12.496,5.608,12.496,12.496H25.302z"/>

+		<path fill="#2661B1" d="M25.273,12.7c0,6.87-5.597,12.467-12.467,12.467C5.837,25.266,0.242,19.67,0.242,12.7

+			c0-6.969,5.595-12.467,12.467-12.467c6.871,0,12.467,5.596,12.467,12.467H25.273z"/>

+		<path fill="#2661B2" d="M25.245,12.7c0,6.854-5.583,12.438-12.438,12.438C5.854,25.234,0.272,19.652,0.272,12.7

+			S5.854,0.262,12.709,0.262c6.855,0,12.438,5.583,12.438,12.438H25.245z"/>

+		<path fill="#2761B3" d="M25.216,12.7c0,6.839-5.567,12.407-12.408,12.407C5.872,25.205,0.303,19.637,0.303,12.7

+			c0-6.937,5.569-12.408,12.408-12.408S25.12,5.861,25.12,12.7H25.216z"/>

+		<path fill="#2861B4" d="M25.188,12.7c0,6.823-5.557,12.38-12.378,12.38C5.889,25.177,0.333,19.62,0.333,12.7

+			c0-6.92,5.556-12.379,12.379-12.379c6.823,0,12.38,5.556,12.38,12.379H25.188z"/>

+		<path fill="#2961B5" d="M25.16,12.7c0,6.807-5.543,12.35-12.351,12.35C5.906,25.146,0.363,19.604,0.363,12.7

+			c0-6.904,5.543-12.35,12.35-12.35s12.35,5.543,12.35,12.35H25.16z"/>

+		<path fill="#2A61B6" d="M25.131,12.7c0,6.792-5.529,12.321-12.32,12.321C5.923,25.117,0.393,19.588,0.393,12.7

+			c0-6.888,5.53-12.32,12.321-12.32s12.32,5.53,12.32,12.32H25.131z"/>

+		<path fill="#2A61B7" d="M25.104,12.7c0,6.774-5.518,12.292-12.292,12.292C5.94,25.088,0.424,19.57,0.424,12.7

+			c0-6.872,5.517-12.292,12.291-12.292c6.773,0,12.292,5.517,12.292,12.292H25.104z"/>

+		<path fill="#2B61B8" d="M25.075,12.7c0,6.759-5.505,12.263-12.263,12.263C5.958,25.059,0.455,19.555,0.455,12.7

+			c0-6.855,5.503-12.262,12.262-12.262c6.76,0,12.262,5.504,12.262,12.262H25.075z"/>

+		<path fill="#2C61B9" d="M25.046,12.7c0,6.743-5.489,12.233-12.232,12.233C5.975,25.029,0.484,19.539,0.484,12.7

+			c0-6.839,5.491-12.233,12.233-12.233c6.743,0,12.233,5.491,12.233,12.233H25.046z"/>

+		<path fill="#2D61BA" d="M25.018,12.7c0,6.727-5.478,12.204-12.204,12.204C5.992,25,0.514,19.521,0.514,12.7

+			c0-6.822,5.478-12.204,12.204-12.204S24.922,5.973,24.922,12.7H25.018z"/>

+		<path fill="#2E61BB" d="M24.988,12.7c0,6.711-5.463,12.175-12.173,12.175C6.009,24.971,0.544,19.506,0.544,12.7

+			c0-6.807,5.464-12.175,12.175-12.175S24.895,5.99,24.895,12.7H24.988z"/>

+		<path fill="#2F61BC" d="M24.962,12.701c0,6.693-5.45,12.145-12.146,12.145C6.026,24.941,0.575,19.49,0.575,12.701

+			c0-6.79,5.451-12.146,12.146-12.146c6.695,0,12.146,5.452,12.146,12.146H24.962z"/>

+		<path fill="#2F61BD" d="M24.934,12.7c0,6.678-5.438,12.116-12.117,12.116C6.043,24.911,0.605,19.475,0.605,12.7

+			S6.043,0.584,12.722,0.584c6.678,0,12.116,5.438,12.116,12.116H24.934z"/>

+		<path fill="#3061BE" d="M24.904,12.7c0,6.661-5.426,12.087-12.087,12.087C6.06,24.882,0.635,19.457,0.635,12.7

+			c0-6.757,5.425-12.087,12.087-12.087c6.661,0,12.086,5.425,12.086,12.087H24.904z"/>

+		<path fill="#3162BF" d="M24.876,12.7c0,6.646-5.412,12.059-12.058,12.059C6.078,24.854,0.666,19.439,0.666,12.7

+			c0-6.741,5.412-12.058,12.058-12.058S24.783,6.054,24.783,12.7H24.876z"/>

+		<path fill="#3262C0" d="M24.85,12.701c0,6.63-5.399,12.027-12.03,12.027C6.095,24.823,0.696,19.425,0.696,12.701

+			c0-6.725,5.399-12.029,12.029-12.029c6.628,0,12.028,5.399,12.028,12.029H24.85z"/>

+		<path fill="#3362C1" d="M24.818,12.7c0,6.614-5.385,11.999-12,11.999C6.112,24.794,0.727,19.408,0.727,12.7s5.385-12,12-12

+			c6.614,0,12,5.386,12,12H24.818z"/>

+		<path fill="#3362C2" d="M24.791,12.7c0,6.598-5.373,11.97-11.971,11.97C6.129,24.764,0.756,19.393,0.756,12.7

+			S6.129,0.73,12.727,0.73c6.597,0,11.968,5.372,11.968,11.97H24.791z"/>

+		<path fill="#3462C3" d="M24.764,12.7c0,6.582-5.359,11.94-11.942,11.94C6.146,24.734,0.787,19.375,0.787,12.7

+			c0-6.676,5.359-11.941,11.941-11.941c6.583,0,11.941,5.36,11.941,11.941H24.764z"/>

+		<path fill="#3562C4" d="M24.734,12.7c0,6.565-5.348,11.911-11.913,11.911C6.164,24.705,0.817,19.359,0.817,12.7

+			S6.164,0.788,12.729,0.788c6.566,0,11.912,5.347,11.912,11.912H24.734z"/>

+		<path fill="#3662C5" d="M24.706,12.7c0,6.55-5.333,11.883-11.883,11.883C6.181,24.676,0.847,19.343,0.847,12.7

+			c0-6.643,5.333-11.883,11.883-11.883c6.549,0,11.881,5.333,11.881,11.883H24.706z"/>

+		<path fill="#3762C6" d="M24.678,12.7c0,6.534-5.32,11.854-11.854,11.854C6.198,24.646,0.877,19.326,0.877,12.7

+			S6.198,0.846,12.731,0.846c6.535,0,11.853,5.32,11.853,11.854H24.678z"/>

+		<path fill="#3762C7" d="M24.648,12.7c0,6.518-5.308,11.823-11.824,11.823C6.215,24.617,0.908,19.311,0.908,12.7

+			c0-6.611,5.307-11.824,11.824-11.824S24.557,6.183,24.557,12.7H24.648z"/>

+		<path fill="#3862C8" d="M24.621,12.7c0,6.502-5.294,11.795-11.795,11.795C6.232,24.588,0.938,19.294,0.938,12.7

+			c0-6.594,5.293-11.795,11.795-11.795c6.501,0,11.794,5.294,11.794,11.795H24.621z"/>

+		<path fill="#3962C9" d="M24.593,12.7c0,6.485-5.28,11.766-11.766,11.766C6.249,24.559,0.968,19.277,0.968,12.7

+			c0-6.578,5.281-11.766,11.766-11.766S24.5,6.215,24.5,12.7H24.593z"/>

+		<path fill="#3A62CA" d="M24.564,12.7c0,6.469-5.27,11.737-11.737,11.737C6.266,24.527,0.999,19.261,0.999,12.7

+			c0-6.561,5.267-11.737,11.736-11.737c6.469,0,11.738,5.268,11.738,11.736L24.564,12.7L24.564,12.7z"/>

+		<path fill="#3B62CB" d="M24.536,12.7c0,6.452-5.255,11.707-11.708,11.707C6.284,24.5,1.029,19.245,1.029,12.7

+			c0-6.545,5.255-11.707,11.707-11.707s11.708,5.255,11.708,11.708L24.536,12.7L24.536,12.7z"/>

+		<path fill="#3C62CC" d="M24.508,12.701c0,6.438-5.24,11.678-11.678,11.678c-6.529,0.092-11.77-5.15-11.77-11.678

+			c0-6.528,5.241-11.679,11.678-11.679S24.416,6.263,24.416,12.7L24.508,12.701L24.508,12.701z"/>

+		<path fill="#3C62CD" d="M24.479,12.7c0,6.421-5.229,11.649-11.648,11.649C6.318,24.439,1.09,19.212,1.09,12.7

+			c0-6.513,5.228-11.649,11.649-11.649c6.42,0,11.65,5.228,11.65,11.649H24.479z"/>

+		<path fill="#3D63CE" d="M24.45,12.7c0,6.403-5.216,11.618-11.62,11.618C6.335,24.41,1.12,19.195,1.12,12.7

+			c0-6.497,5.215-11.62,11.62-11.62c6.404,0,11.619,5.215,11.619,11.62H24.45z"/>

+		<path fill="#3E63CF" d="M24.423,12.7c0,6.389-5.202,11.591-11.591,11.591C6.353,24.382,1.15,19.18,1.15,12.7

+			c0-6.48,5.203-11.591,11.591-11.591c6.388,0,11.59,5.203,11.59,11.591H24.423z"/>

+		<path fill="#3F63D0" d="M24.395,12.701c0,6.373-5.188,11.561-11.562,11.561C6.37,24.354,1.18,19.164,1.18,12.701

+			c0-6.464,5.189-11.562,11.562-11.562c6.371,0,11.562,5.189,11.562,11.562H24.395z"/>

+		<path fill="#4063D1" d="M24.365,12.7c0,6.356-5.176,11.532-11.532,11.532C6.387,24.322,1.21,19.146,1.21,12.7

+			c0-6.447,5.177-11.533,11.533-11.533c6.354,0,11.532,5.176,11.532,11.533H24.365z"/>

+		<path fill="#4063D2" d="M24.337,12.7c0,6.341-5.163,11.503-11.503,11.503C6.403,24.293,1.24,19.13,1.24,12.7

+			c0-6.431,5.163-11.503,11.503-11.503c6.34,0,11.504,5.163,11.504,11.503H24.337z"/>

+		<path fill="#4163D3" d="M24.311,12.7c0,6.323-5.15,11.474-11.476,11.474C6.42,24.264,1.271,19.114,1.271,12.7

+			c0-6.415,5.149-11.474,11.474-11.474c6.323,0,11.474,5.15,11.474,11.474H24.311z"/>

+		<path fill="#4263D4" d="M24.281,12.701c0,6.308-5.137,11.445-11.445,11.445C6.438,24.234,1.301,19.1,1.301,12.701

+			c0-6.399,5.137-11.445,11.445-11.445c6.307,0,11.445,5.136,11.445,11.445H24.281z"/>

+		<path fill="#4363D4" d="M24.253,12.7c0,6.292-5.124,11.416-11.416,11.416C6.455,24.205,1.332,19.082,1.332,12.7

+			c0-6.382,5.123-11.415,11.415-11.415S24.163,6.408,24.163,12.7H24.253z"/>

+		<path fill="#4463D5" d="M24.225,12.7c0,6.276-5.111,11.387-11.387,11.387C6.472,24.176,1.362,19.064,1.362,12.7

+			c0-6.366,5.11-11.386,11.386-11.386c6.275,0,11.387,5.11,11.387,11.386H24.225z"/>

+		<path fill="#4563D6" d="M24.195,12.7c0,6.26-5.098,11.356-11.357,11.356C6.49,24.146,1.392,19.049,1.392,12.7

+			c0-6.35,5.098-11.357,11.357-11.357S24.105,6.441,24.105,12.7H24.195z"/>

+		<path fill="#4563D7" d="M24.167,12.7c0,6.243-5.084,11.327-11.328,11.327C6.506,24.116,1.422,19.033,1.422,12.7

+			S6.506,1.372,12.75,1.372S24.078,6.456,24.078,12.7H24.167z"/>

+		<path fill="#4663D8" d="M24.139,12.7c0,6.228-5.07,11.299-11.299,11.299C6.523,24.087,1.453,19.018,1.453,12.7

+			S6.523,1.401,12.751,1.401c6.228,0,11.298,5.071,11.298,11.299H24.139z"/>

+		<path fill="#4763D9" d="M24.109,12.7c0,6.212-5.058,11.271-11.27,11.271C6.541,24.059,1.483,19,1.483,12.7

+			c0-6.3,5.058-11.27,11.27-11.27S24.023,6.488,24.023,12.7H24.109z"/>

+		<path fill="#4863DA" d="M24.082,12.7c0,6.194-5.045,11.239-11.24,11.239C6.558,24.027,1.513,18.982,1.513,12.7

+			c0-6.284,5.045-11.24,11.24-11.24c6.195,0,11.241,5.045,11.241,11.24H24.082z"/>

+		<path fill="#4964DB" d="M24.055,12.7c0,6.18-5.033,11.211-11.212,11.211c-6.268,0.088-11.3-4.943-11.3-11.211

+			c0-6.268,5.032-11.211,11.211-11.211c6.18,0,11.212,5.032,11.212,11.211H24.055z"/>

+		<path fill="#4964DC" d="M24.025,12.7c0,6.164-5.02,11.182-11.183,11.182C6.592,23.971,1.574,18.951,1.574,12.7

+			S6.593,1.518,12.756,1.518S23.938,6.537,23.938,12.7H24.025z"/>

+		<path fill="#4A64DD" d="M23.997,12.7c0,6.147-5.006,11.153-11.153,11.153C6.609,23.939,1.604,18.936,1.604,12.7

+			S6.609,1.547,12.757,1.547c6.146,0,11.152,5.006,11.152,11.153H23.997z"/>

+		<path fill="#4B64DE" d="M23.969,12.7c0,6.131-4.992,11.124-11.124,11.124C6.626,23.91,1.634,18.918,1.634,12.7

+			c0-6.219,4.992-11.124,11.124-11.124c6.131,0,11.124,4.992,11.124,11.124H23.969z"/>

+		<path fill="#4C64DF" d="M23.939,12.7c0,6.114-4.979,11.095-11.094,11.095C6.644,23.882,1.665,18.902,1.665,12.7

+			c0-6.203,4.979-11.094,11.094-11.094c6.115,0,11.095,4.979,11.095,11.094H23.939z"/>

+		<path fill="#4D64E0" d="M23.912,12.7c0,6.1-4.967,11.065-11.065,11.065C6.661,23.852,1.695,18.886,1.695,12.7

+			c0-6.186,4.966-11.065,11.065-11.065c6.098,0,11.065,4.966,11.065,11.065H23.912z"/>

+		<path fill="#4E64E1" d="M23.884,12.7c0,6.083-4.952,11.036-11.036,11.036C6.678,23.822,1.725,18.869,1.725,12.7

+			c0-6.17,4.954-11.036,11.036-11.036c6.083,0,11.036,4.954,11.036,11.036H23.884z"/>

+		<path fill="#4E64E2" d="M23.855,12.7c0,6.067-4.94,11.007-11.007,11.007C6.695,23.793,1.755,18.854,1.755,12.7

+			c0-6.154,4.94-11.007,11.007-11.007c6.066,0,11.005,4.94,11.005,11.007H23.855z"/>

+		<path fill="#4F64E3" d="M23.827,12.7c0,6.051-4.929,10.978-10.978,10.978C6.712,23.764,1.786,18.837,1.786,12.7

+			c0-6.137,4.927-10.978,10.978-10.978c6.05,0,10.977,4.927,10.977,10.978H23.827z"/>

+		<path fill="#5064E4" d="M23.799,12.7c0,6.034-4.914,10.948-10.949,10.948C6.729,23.734,1.816,18.82,1.816,12.7

+			c0-6.121,4.914-10.948,10.948-10.948c6.034,0,10.949,4.914,10.949,10.948H23.799z"/>

+		<path fill="#5164E5" d="M23.771,12.7c0,6.019-4.901,10.919-10.919,10.919C6.747,23.705,1.846,18.805,1.846,12.7

+			c0-6.105,4.9-10.919,10.919-10.919c6.018,0,10.918,4.9,10.918,10.919H23.771z"/>

+		<path fill="#5264E6" d="M23.742,12.7c0,6.003-4.889,10.89-10.891,10.89C6.764,23.675,1.876,18.788,1.876,12.7

+			c0-6.088,4.888-10.89,10.89-10.89c6.001,0,10.89,4.888,10.89,10.89H23.742z"/>

+		<path fill="#5264E7" d="M23.714,12.7c0,5.985-4.875,10.86-10.861,10.86C6.781,23.646,1.906,18.771,1.906,12.7

+			c0-6.072,4.875-10.861,10.861-10.861c5.985,0,10.86,4.875,10.86,10.861H23.714z"/>

+		<path fill="#5364E8" d="M23.686,12.7c0,5.971-4.861,10.832-10.832,10.832C6.798,23.616,1.937,18.755,1.937,12.7

+			c0-6.056,4.862-10.832,10.832-10.832C18.738,1.869,23.6,6.73,23.6,12.7H23.686z"/>

+		<path fill="#5464E9" d="M23.657,12.7c0,5.954-4.849,10.803-10.803,10.803C6.815,23.587,1.967,18.739,1.967,12.7

+			c0-6.04,4.849-10.802,10.803-10.802c5.955,0,10.802,4.848,10.802,10.802H23.657z"/>

+		<path fill="#5565EA" d="M23.629,12.7c0,5.938-4.836,10.772-10.774,10.772C6.833,23.559,1.998,18.723,1.998,12.7

+			c0-6.023,4.835-10.773,10.773-10.773S23.544,6.762,23.544,12.7H23.629z"/>

+		<path fill="#5665EB" d="M23.602,12.7c0,5.922-4.824,10.743-10.746,10.743C6.85,23.527,2.027,18.706,2.027,12.7

+			c0-6.006,4.822-10.744,10.744-10.744c5.922,0,10.745,4.822,10.745,10.744H23.602z"/>

+		<path fill="#5665EC" d="M23.572,12.7c0,5.905-4.811,10.715-10.715,10.715C6.867,23.499,2.058,18.689,2.058,12.7

+			c0-5.99,4.809-10.715,10.714-10.715S23.486,6.794,23.486,12.7H23.572z"/>

+		<path fill="#5765ED" d="M23.544,12.7c0,5.89-4.797,10.686-10.687,10.686C6.884,23.471,2.088,18.674,2.088,12.7

+			c0-5.974,4.796-10.686,10.686-10.686c5.889,0,10.686,4.796,10.686,10.686H23.544z"/>

+		<path fill="#5865EE" d="M23.516,12.7c0,5.874-4.783,10.655-10.657,10.655C6.901,23.439,2.118,18.657,2.118,12.7

+			c0-5.958,4.783-10.657,10.657-10.657c5.874,0,10.657,4.784,10.657,10.657H23.516z"/>

+		<path fill="#5965EF" d="M23.486,12.7c0,5.858-4.771,10.627-10.627,10.627C6.918,23.41,2.148,18.641,2.148,12.7

+			c0-5.941,4.77-10.627,10.627-10.627S23.402,6.843,23.402,12.7H23.486z"/>

+		<path fill="#5A65F0" d="M23.459,12.7c0,5.842-4.758,10.598-10.599,10.598C6.936,23.381,2.179,18.625,2.179,12.7

+			c0-5.925,4.757-10.598,10.598-10.598c5.841,0,10.598,4.757,10.598,10.598H23.459z"/>

+		<path fill="#5B65F1" d="M23.432,12.7c0,5.825-4.744,10.569-10.571,10.569C6.953,23.352,2.209,18.607,2.209,12.7

+			c0-5.909,4.744-10.569,10.569-10.569c5.826,0,10.57,4.744,10.57,10.569H23.432z"/>

+		<path fill="#5B65F2" d="M23.4,12.7c0,5.81-4.729,10.54-10.54,10.54C6.97,23.322,2.239,18.592,2.239,12.7

+			c0-5.892,4.73-10.54,10.54-10.54c5.809,0,10.54,4.73,10.54,10.54H23.4z"/>

+		<path fill="#5C65F3" d="M23.373,12.7c0,5.794-4.719,10.511-10.511,10.511C6.987,23.293,2.27,18.576,2.27,12.7

+			S6.987,2.189,12.78,2.189c5.793,0,10.511,4.717,10.511,10.511H23.373z"/>

+		<path fill="#5D65F4" d="M23.346,12.7c0,5.776-4.705,10.481-10.482,10.481C7.004,23.264,2.3,18.561,2.3,12.7

+			S7.004,2.219,12.781,2.219c5.775,0,10.48,4.704,10.48,10.481H23.346z"/>

+		<path fill="#5E65F5" d="M23.316,12.7c0,5.762-4.691,10.452-10.453,10.452C7.021,23.232,2.33,18.543,2.33,12.7

+			c0-5.843,4.691-10.452,10.452-10.452c5.761,0,10.452,4.691,10.452,10.452H23.316z"/>

+		<path fill="#5F65F6" d="M23.288,12.7c0,5.745-4.679,10.423-10.423,10.423C7.039,23.204,2.36,18.525,2.36,12.7

+			c0-5.827,4.678-10.423,10.423-10.423c5.744,0,10.423,4.678,10.423,10.423H23.288z"/>

+		<path fill="#5F65F7" d="M23.26,12.7c0,5.729-4.664,10.394-10.394,10.394C7.056,23.175,2.391,18.511,2.391,12.7

+			c0-5.811,4.665-10.393,10.394-10.393c5.729,0,10.393,4.665,10.393,10.394L23.26,12.7L23.26,12.7z"/>

+		<path fill="#6066F8" d="M23.23,12.7c0,5.713-4.651,10.364-10.364,10.364C7.073,23.146,2.421,18.494,2.421,12.7

+			S7.073,2.335,12.786,2.335c5.712,0,10.364,4.652,10.364,10.365H23.23z"/>

+		<path fill="#6166F9" d="M23.203,12.7c0,5.696-4.639,10.335-10.335,10.335C7.09,23.116,2.451,18.479,2.451,12.7

+			S7.09,2.365,12.786,2.365S23.121,7.004,23.121,12.7H23.203z"/>

+		<path fill="#6266FA" d="M23.175,12.7c0,5.681-4.626,10.306-10.307,10.306C7.107,23.087,2.481,18.462,2.481,12.7

+			c0-5.762,4.626-10.306,10.307-10.306c5.68,0,10.306,4.625,10.306,10.306H23.175z"/>

+		<path fill="#6366FB" d="M23.146,12.7c0,5.665-4.613,10.276-10.277,10.276C7.124,23.059,2.512,18.445,2.512,12.7

+			c0-5.746,4.612-10.277,10.277-10.277S23.064,7.036,23.064,12.7H23.146z"/>

+		<path fill="#6466FC" d="M23.118,12.7c0,5.647-4.601,10.248-10.248,10.248C7.142,23.027,2.542,18.43,2.542,12.7

+			c0-5.729,4.6-10.248,10.248-10.248c5.647,0,10.247,4.6,10.247,10.248H23.118z"/>

+		<path fill="#6466FD" d="M23.09,12.7c0,5.633-4.587,10.219-10.219,10.219C7.159,22.998,2.572,18.412,2.572,12.7

+			c0-5.713,4.586-10.219,10.219-10.219c5.632,0,10.219,4.586,10.219,10.219H23.09z"/>

+		<path fill="#6566FE" d="M23.062,12.7c0,5.616-4.574,10.188-10.19,10.188C7.176,22.969,2.603,18.396,2.603,12.7

+			S7.176,2.511,12.792,2.511c5.615,0,10.188,4.573,10.188,10.189H23.062z"/>

+		<path fill="#6666FF" d="M23.033,12.7c0,5.601-4.561,10.159-10.161,10.159c-5.68,0.08-10.24-4.479-10.24-10.159

+			c0-5.68,4.56-10.16,10.16-10.16c5.601,0,10.16,4.56,10.16,10.16H23.033z"/>

+	</g>

+	

+		<linearGradient id="XMLID_12_" gradientUnits="userSpaceOnUse" x1="198.625" y1="-253.916" x2="198.625" y2="-262.334" gradientTransform="matrix(1 0 0 -1 -186 -252.5)">

+		<stop  offset="0" style="stop-color:#FFFFFF"/>

+		<stop  offset="1" style="stop-color:#6666FF"/>

+	</linearGradient>

+	<ellipse fill="url(#XMLID_12_)" cx="12.625" cy="5.625" rx="7.542" ry="4.209"/>

+	<g>

+		<path fill="#FFFFFF" d="M14.1,19.2c0,0.2,0,0.3-0.3,0.3H12c-0.2,0-0.3-0.1-0.3-0.3v-7.1h-1.4c-0.2,0-0.3-0.1-0.3-0.3v-1.2

+			c0-0.2,0-0.3,0.3-0.3h3.5c0.2,0,0.3,0.1,0.3,0.3v8.5V19.2z M13,9.2c-0.8,0-1.5-0.7-1.5-1.5c0-0.8,0.7-1.5,1.5-1.5s1.5,0.7,1.5,1.5

+			C14.5,8.5,13.8,9.2,13,9.2z"/>

+	</g>

+</g>

+</svg>

diff --git a/applications/content/template/docbook/images/colorsvg/prev.svg b/applications/content/template/docbook/images/colorsvg/prev.svg
new file mode 100644
index 0000000..7ceddec
--- /dev/null
+++ b/applications/content/template/docbook/images/colorsvg/prev.svg
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [

+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">

+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">

+]>

+<svg  version="1.1" id="Previous" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="48" height="48" viewBox="0 0 48 48"

+	 overflow="visible" enable-background="new 0 0 48 48" xml:space="preserve">

+<g>

+	<path fill="#FFFFFF" stroke="#FFFFFF" stroke-width="7.5901" stroke-linejoin="round" d="M25.659,6.898c0-0.301-0.3-0.301-0.5-0.2

+		l-16.6,16.9c-0.5,0.5-0.4,0.7,0,1l16.6,16.7c0.103,0.101,0.399,0.101,0.399-0.1v-10h13.601c0.301,0,0.5-0.2,0.5-0.4v-13.3

+		c0-0.4-0.199-0.5-0.601-0.5h-13.5L25.659,6.898z"/>

+	<g>

+		<path fill="#0033CC" d="M25.659,6.898c0-0.301-0.3-0.301-0.5-0.2l-16.6,16.9c-0.5,0.5-0.4,0.7,0,1l16.6,16.7

+			c0.103,0.101,0.399,0.101,0.399-0.1v-10h13.601c0.301,0,0.5-0.2,0.5-0.4v-13.3c0-0.4-0.199-0.5-0.601-0.5h-13.5L25.659,6.898z"/>

+		<path fill="#0134CC" d="M25.648,6.925c0-0.3-0.299-0.3-0.498-0.2L8.575,23.6c-0.499,0.499-0.4,0.698,0,1L25.15,41.271

+			c0.101,0.102,0.398,0.102,0.398-0.1v-9.984h13.58c0.303,0,0.5-0.197,0.5-0.397V17.508c0-0.4-0.197-0.499-0.6-0.499H25.55

+			L25.648,6.925z"/>

+		<path fill="#0235CD" d="M25.641,6.953c0-0.3-0.3-0.3-0.498-0.2L8.588,23.601c-0.499,0.498-0.399,0.697,0,0.997l16.553,16.647

+			c0.101,0.101,0.398,0.101,0.398-0.101v-9.971h13.562c0.299,0,0.498-0.197,0.498-0.398V17.519c0-0.399-0.199-0.499-0.6-0.499H25.54

+			L25.641,6.953z"/>

+		<path fill="#0336CD" d="M25.63,6.979c0-0.299-0.299-0.299-0.498-0.199L8.603,23.601c-0.498,0.498-0.399,0.696,0,0.997

+			l16.529,16.62c0.101,0.101,0.397,0.101,0.397-0.099v-9.954h13.544c0.299,0,0.495-0.199,0.495-0.397v-13.24

+			c0-0.399-0.196-0.498-0.598-0.498H25.532L25.63,6.979z"/>

+		<path fill="#0437CE" d="M25.622,7.005c0-0.299-0.299-0.299-0.498-0.199L8.619,23.602c-0.498,0.497-0.398,0.695,0,0.994

+			l16.505,16.598c0.101,0.1,0.396,0.1,0.396-0.102v-9.938h13.521c0.301,0,0.498-0.197,0.498-0.396V17.54

+			c0-0.397-0.197-0.497-0.598-0.497h-13.42L25.622,7.005z"/>

+		<path fill="#0538CE" d="M25.611,7.033c0-0.298-0.299-0.298-0.498-0.199L8.633,23.602c-0.497,0.496-0.398,0.694,0,0.994

+			l16.48,16.568c0.101,0.1,0.398,0.1,0.398-0.1v-9.924h13.502c0.299,0,0.498-0.197,0.498-0.396V17.548

+			c0-0.397-0.199-0.496-0.598-0.496h-13.4L25.611,7.033z"/>

+		<path fill="#0639CF" d="M25.602,7.06c0-0.298-0.297-0.298-0.496-0.199L8.646,23.603c-0.496,0.496-0.396,0.693,0,0.99

+			l16.458,16.546c0.101,0.101,0.396,0.101,0.396-0.1v-9.907h13.482c0.301,0,0.496-0.196,0.496-0.396V17.56

+			c0-0.396-0.195-0.495-0.595-0.495H25.503L25.602,7.06z"/>

+		<path fill="#073ACF" d="M25.592,7.085c0-0.298-0.298-0.298-0.494-0.199L8.662,23.603c-0.495,0.495-0.396,0.692,0,0.989

+			l16.436,16.518c0.1,0.102,0.396,0.102,0.396-0.098V31.12h13.465c0.297,0,0.494-0.197,0.494-0.396V17.569

+			c0-0.396-0.197-0.495-0.595-0.495H25.493L25.592,7.085z"/>

+		<path fill="#083BD0" d="M25.583,7.111c0-0.297-0.297-0.297-0.494-0.198L8.677,23.604c-0.494,0.494-0.396,0.691,0,0.987

+			l16.412,16.493c0.101,0.1,0.396,0.1,0.396-0.1v-9.877h13.447c0.297,0,0.493-0.195,0.493-0.396V17.58

+			c0-0.396-0.196-0.494-0.594-0.494H25.484L25.583,7.111z"/>

+		<path fill="#093CD0" d="M25.573,7.139c0-0.296-0.296-0.296-0.494-0.197L8.69,23.604c-0.493,0.494-0.395,0.69,0,0.985l16.389,16.47

+			c0.103,0.099,0.396,0.099,0.396-0.101V31.1h13.428c0.298,0,0.494-0.197,0.494-0.396V17.589c0-0.395-0.196-0.493-0.594-0.493

+			H25.475L25.573,7.139z"/>

+		<path fill="#0A3DD1" d="M25.562,7.165c0-0.296-0.295-0.296-0.492-0.197L8.706,23.604c-0.493,0.492-0.395,0.688,0,0.983

+			l16.366,16.44c0.1,0.098,0.396,0.098,0.396-0.101v-9.845h13.405c0.297,0,0.494-0.196,0.494-0.396V17.596

+			c0-0.395-0.197-0.492-0.592-0.492H25.464L25.562,7.165z"/>

+		<path fill="#0B3ED1" d="M25.555,7.191c0-0.295-0.296-0.295-0.492-0.197L8.72,23.605c-0.492,0.491-0.394,0.688,0,0.982

+			l16.342,16.414c0.1,0.099,0.395,0.099,0.395-0.099v-9.828h13.391c0.295,0,0.49-0.197,0.49-0.395V17.609

+			c0-0.393-0.195-0.491-0.59-0.491H25.456L25.555,7.191z"/>

+		<path fill="#0C3FD2" d="M25.544,7.219c0-0.295-0.295-0.295-0.491-0.196L8.734,23.606c-0.491,0.49-0.394,0.687,0,0.98

+			l16.318,16.389c0.099,0.101,0.394,0.101,0.394-0.098v-9.812h13.369c0.297,0,0.492-0.194,0.492-0.394V17.62

+			c0-0.393-0.195-0.49-0.591-0.49H25.445L25.544,7.219z"/>

+		<path fill="#0D40D2" d="M25.534,7.245c0-0.294-0.293-0.294-0.49-0.196L8.749,23.606c-0.491,0.489-0.394,0.685,0,0.979

+			l16.295,16.362c0.099,0.098,0.394,0.098,0.394-0.098v-9.798h13.35c0.295,0,0.49-0.196,0.49-0.395V17.628

+			c0-0.392-0.195-0.489-0.588-0.489H25.438L25.534,7.245z"/>

+		<path fill="#0E41D3" d="M25.525,7.271c0-0.294-0.295-0.294-0.489-0.196L8.764,23.607c-0.49,0.489-0.393,0.685,0,0.979

+			l16.271,16.335c0.102,0.101,0.395,0.101,0.395-0.097v-9.782h13.33c0.295,0,0.488-0.194,0.488-0.394V17.64

+			c0-0.392-0.193-0.489-0.588-0.489H25.428L25.525,7.271z"/>

+		<path fill="#0F42D3" d="M25.516,7.298c0-0.293-0.293-0.293-0.488-0.195L8.778,23.607c-0.489,0.489-0.392,0.684,0,0.978

+			l16.248,16.312c0.101,0.099,0.394,0.099,0.394-0.099v-9.767H38.73c0.293,0,0.49-0.195,0.49-0.393V17.65

+			c0-0.391-0.197-0.488-0.589-0.488H25.417L25.516,7.298z"/>

+		<path fill="#1043D4" d="M25.505,7.325c0-0.293-0.293-0.293-0.487-0.195L8.792,23.608c-0.488,0.488-0.391,0.683,0,0.976

+			l16.224,16.283c0.101,0.098,0.394,0.098,0.394-0.098v-9.752H38.7c0.295,0,0.489-0.192,0.489-0.39V17.661

+			c0-0.391-0.194-0.487-0.586-0.487H25.409L25.505,7.325z"/>

+		<path fill="#1144D4" d="M25.497,7.352c0-0.292-0.293-0.292-0.487-0.194L8.808,23.608c-0.488,0.487-0.391,0.682,0,0.974

+			L25.009,40.84c0.099,0.1,0.392,0.1,0.392-0.097v-9.734h13.272c0.293,0,0.488-0.194,0.488-0.39V17.67

+			c0-0.39-0.195-0.487-0.586-0.487H25.398L25.497,7.352z"/>

+		<path fill="#1245D5" d="M25.486,7.378c0-0.292-0.293-0.292-0.487-0.195L8.822,23.609c-0.487,0.486-0.39,0.68,0,0.973l16.177,16.23

+			c0.099,0.099,0.392,0.099,0.392-0.099v-9.72h13.254c0.293,0,0.485-0.194,0.485-0.391V17.681c0-0.389-0.192-0.486-0.584-0.486

+			H25.391L25.486,7.378z"/>

+		<path fill="#1346D5" d="M25.479,7.406c0-0.292-0.293-0.292-0.486-0.195L8.837,23.61c-0.487,0.485-0.39,0.679,0,0.971

+			l16.154,16.206c0.098,0.097,0.389,0.097,0.389-0.098v-9.705h13.236c0.291,0,0.485-0.192,0.485-0.389V17.69

+			c0-0.388-0.194-0.485-0.584-0.485H25.38L25.479,7.406z"/>

+		<path fill="#1447D6" d="M25.468,7.432c0-0.292-0.292-0.292-0.485-0.194L8.852,23.611c-0.485,0.484-0.389,0.678,0,0.969

+			l16.13,16.18c0.1,0.098,0.389,0.098,0.389-0.096v-9.688h13.217c0.291,0,0.486-0.192,0.486-0.39V17.702

+			c0-0.388-0.195-0.484-0.584-0.484H25.37L25.468,7.432z"/>

+		<path fill="#1548D6" d="M25.458,7.458c0-0.291-0.291-0.291-0.485-0.194L8.866,23.611c-0.484,0.483-0.388,0.677,0,0.968

+			L24.973,40.73c0.1,0.099,0.389,0.099,0.389-0.097v-9.673h13.197c0.291,0,0.483-0.193,0.483-0.388V17.71

+			c0-0.387-0.192-0.483-0.582-0.483H25.359L25.458,7.458z"/>

+		<path fill="#1649D7" d="M25.448,7.484c0-0.291-0.289-0.291-0.484-0.194L8.88,23.613c-0.484,0.482-0.388,0.675,0,0.965

+			l16.083,16.128c0.098,0.099,0.389,0.099,0.389-0.097v-9.657h13.178c0.291,0,0.484-0.192,0.484-0.388V17.722

+			c0-0.387-0.193-0.482-0.582-0.482h-13.08L25.448,7.484z"/>

+		<path fill="#174AD7" d="M25.439,7.512c0-0.29-0.291-0.29-0.483-0.193L8.895,23.614c-0.483,0.482-0.387,0.675,0,0.963l16.06,16.104

+			c0.1,0.096,0.391,0.096,0.391-0.098v-9.645H38.5c0.291,0,0.484-0.191,0.484-0.385V17.731c0-0.386-0.193-0.481-0.58-0.481H25.343

+			L25.439,7.512z"/>

+		<path fill="#184BD8" d="M25.43,7.539c0-0.29-0.289-0.29-0.482-0.193L8.91,23.614c-0.482,0.482-0.387,0.674,0,0.962L24.947,40.65

+			c0.098,0.098,0.387,0.098,0.387-0.096V30.93h13.141c0.291,0,0.48-0.193,0.48-0.388v-12.8c0-0.385-0.189-0.481-0.578-0.481H25.333

+			L25.43,7.539z"/>

+		<path fill="#194CD8" d="M25.419,7.564c0-0.289-0.289-0.289-0.481-0.192L8.923,23.614c-0.481,0.481-0.386,0.673,0,0.961

+			l16.015,16.05c0.097,0.098,0.386,0.098,0.386-0.098v-9.608h13.118c0.291,0,0.482-0.19,0.482-0.386V17.751

+			c0-0.385-0.191-0.48-0.578-0.48H25.323L25.419,7.564z"/>

+		<path fill="#1A4DD9" d="M25.411,7.59c0-0.288-0.289-0.288-0.479-0.192L8.938,23.615c-0.481,0.48-0.385,0.671,0,0.96L24.93,40.598

+			c0.096,0.096,0.385,0.096,0.385-0.096v-9.595h13.102c0.289,0,0.48-0.192,0.48-0.386V17.762c0-0.384-0.191-0.479-0.578-0.479

+			H25.314L25.411,7.59z"/>

+		<path fill="#1B4ED9" d="M25.4,7.618c0-0.288-0.289-0.288-0.479-0.191L8.954,23.616c-0.481,0.479-0.385,0.67,0,0.958L24.919,40.57

+			c0.099,0.097,0.386,0.097,0.386-0.096v-9.58h13.082c0.288,0,0.479-0.189,0.479-0.383V17.771c0-0.383-0.191-0.479-0.576-0.479

+			H25.305L25.4,7.618z"/>

+		<path fill="#1C4FDA" d="M25.393,7.645c0-0.287-0.289-0.287-0.48-0.191L8.968,23.617c-0.48,0.479-0.384,0.669,0,0.958

+			l15.941,15.971c0.099,0.097,0.385,0.097,0.385-0.095v-9.562h13.062c0.289,0,0.48-0.193,0.48-0.384V17.782

+			c0-0.383-0.191-0.478-0.577-0.478H25.294L25.393,7.645z"/>

+		<path fill="#1D50DA" d="M25.38,7.67c0-0.287-0.286-0.287-0.479-0.19L8.981,23.617c-0.479,0.478-0.384,0.667,0,0.955L24.9,40.518

+			c0.097,0.096,0.384,0.096,0.384-0.098v-9.548h13.043c0.289,0,0.479-0.188,0.479-0.383V17.792c0-0.382-0.19-0.477-0.576-0.477

+			H25.286L25.38,7.67z"/>

+		<path fill="#1E51DB" d="M25.372,7.698c0-0.287-0.287-0.287-0.479-0.191L8.997,23.618c-0.479,0.477-0.383,0.667,0,0.954

+			L24.893,40.49c0.098,0.095,0.385,0.095,0.385-0.096v-9.533H38.3c0.287,0,0.479-0.189,0.479-0.381V17.803

+			c0-0.382-0.191-0.476-0.574-0.476h-12.93L25.372,7.698z"/>

+		<path fill="#1F52DB" d="M25.361,7.725c0-0.286-0.284-0.286-0.479-0.19L9.012,23.619c-0.478,0.475-0.383,0.666,0,0.951

+			l15.872,15.895c0.097,0.096,0.384,0.096,0.384-0.095v-9.519h13.004c0.287,0,0.479-0.189,0.479-0.381V17.812

+			c0-0.381-0.19-0.476-0.574-0.476H25.268L25.361,7.725z"/>

+		<path fill="#2053DC" d="M25.354,7.75c0-0.286-0.287-0.286-0.479-0.19L9.025,23.619c-0.477,0.475-0.382,0.665,0,0.951

+			l15.849,15.867c0.099,0.095,0.385,0.095,0.385-0.098v-9.501h12.982c0.286,0,0.479-0.188,0.479-0.381V17.823

+			c0-0.38-0.188-0.475-0.574-0.475h-12.89L25.354,7.75z"/>

+		<path fill="#2154DC" d="M25.343,7.777c0-0.286-0.286-0.286-0.477-0.19L9.04,23.619c-0.476,0.475-0.381,0.664,0,0.949L24.867,40.41

+			c0.096,0.095,0.383,0.095,0.383-0.094V30.83h12.965c0.287,0,0.479-0.189,0.479-0.38V17.832c0-0.379-0.188-0.474-0.569-0.474

+			H25.249L25.343,7.777z"/>

+		<path fill="#2255DD" d="M25.333,7.805c0-0.285-0.285-0.285-0.478-0.19L9.056,23.62c-0.476,0.474-0.381,0.663,0,0.948

+			l15.801,15.812c0.098,0.096,0.383,0.096,0.383-0.095v-9.472h12.945c0.285,0,0.477-0.188,0.477-0.381V17.842

+			c0-0.378-0.188-0.473-0.569-0.473H25.238L25.333,7.805z"/>

+		<path fill="#2356DD" d="M25.325,7.832c0-0.284-0.285-0.284-0.478-0.189L9.069,23.621c-0.475,0.473-0.381,0.662,0,0.945

+			l15.779,15.791c0.096,0.094,0.381,0.094,0.381-0.098v-9.451h12.929c0.284,0,0.477-0.189,0.477-0.379V17.853

+			c0-0.378-0.188-0.472-0.569-0.472H25.229L25.325,7.832z"/>

+		<path fill="#2457DE" d="M25.314,7.857c0-0.284-0.285-0.284-0.477-0.189L9.084,23.622c-0.474,0.472-0.38,0.66,0,0.944L24.838,40.33

+			c0.098,0.094,0.381,0.094,0.381-0.094v-9.439h12.908c0.285,0,0.475-0.189,0.475-0.378V17.863c0-0.378-0.188-0.471-0.567-0.471

+			H25.221L25.314,7.857z"/>

+		<path fill="#2558DE" d="M25.305,7.883c0-0.283-0.283-0.283-0.474-0.188L9.099,23.622c-0.473,0.471-0.379,0.659,0,0.942

+			L24.831,40.3c0.095,0.097,0.379,0.097,0.379-0.094v-9.424H38.1c0.284,0,0.475-0.188,0.475-0.38V17.873

+			c0-0.377-0.188-0.47-0.568-0.47H25.21L25.305,7.883z"/>

+		<path fill="#2659DF" d="M25.294,7.911c0-0.283-0.282-0.283-0.474-0.188l-15.708,15.9c-0.473,0.47-0.378,0.658,0,0.941

+			L24.82,40.275c0.097,0.094,0.38,0.094,0.38-0.094v-9.408h12.868c0.285,0,0.476-0.188,0.476-0.377V17.882

+			c0-0.376-0.188-0.469-0.567-0.469H25.2L25.294,7.911z"/>

+		<path fill="#275ADF" d="M25.286,7.938c0-0.282-0.283-0.282-0.474-0.188L9.127,23.624c-0.472,0.469-0.378,0.657,0,0.938

+			L24.812,40.25c0.097,0.094,0.379,0.094,0.379-0.093v-9.394h12.851c0.283,0,0.476-0.188,0.476-0.379V17.894

+			c0-0.375-0.188-0.469-0.566-0.469h-12.76L25.286,7.938z"/>

+		<path fill="#285BE0" d="M25.275,7.963c0-0.282-0.282-0.282-0.473-0.188L9.143,23.624c-0.471,0.469-0.377,0.656,0,0.938

+			l15.662,15.658c0.096,0.094,0.379,0.094,0.379-0.094V30.75h12.83c0.282,0,0.473-0.188,0.473-0.376V17.902

+			c0-0.375-0.188-0.468-0.564-0.468h-12.74L25.275,7.963z"/>

+		<path fill="#295CE0" d="M25.268,7.991c0-0.281-0.283-0.281-0.474-0.188L9.158,23.624c-0.471,0.468-0.377,0.655,0,0.937

+			l15.638,15.633c0.095,0.096,0.377,0.096,0.377-0.092V30.74h12.812c0.283,0,0.473-0.188,0.473-0.375V17.914

+			c0-0.375-0.188-0.467-0.564-0.467H25.171L25.268,7.991z"/>

+		<path fill="#2A5DE1" d="M25.257,8.018c0-0.281-0.282-0.281-0.471-0.188L9.171,23.625c-0.47,0.467-0.377,0.654,0,0.936

+			l15.615,15.605c0.094,0.093,0.377,0.093,0.377-0.093v-9.347h12.793c0.28,0,0.471-0.188,0.471-0.375V17.923

+			c0-0.374-0.188-0.467-0.563-0.467h-12.7L25.257,8.018z"/>

+		<path fill="#2B5EE1" d="M25.247,8.043c0-0.28-0.28-0.28-0.472-0.187L9.187,23.625c-0.469,0.467-0.376,0.653,0,0.934l15.59,15.582

+			c0.096,0.092,0.377,0.092,0.377-0.094v-9.33h12.773c0.28,0,0.471-0.188,0.471-0.373v-12.41c0-0.373-0.188-0.466-0.562-0.466

+			H25.152L25.247,8.043z"/>

+		<path fill="#2C5FE2" d="M25.238,8.07c0-0.28-0.282-0.28-0.471-0.186L9.201,23.625c-0.468,0.466-0.375,0.652,0,0.932L24.77,40.114

+			c0.096,0.093,0.375,0.093,0.375-0.095v-9.312h12.754c0.281,0,0.471-0.188,0.471-0.373V17.943c0-0.373-0.188-0.465-0.562-0.465

+			H25.145L25.238,8.07z"/>

+		<path fill="#2D60E2" d="M25.229,8.097c0-0.28-0.279-0.28-0.469-0.187L9.214,23.626c-0.468,0.465-0.375,0.651,0,0.931L24.76,40.086

+			c0.094,0.094,0.374,0.094,0.374-0.093v-9.3H37.87c0.278,0,0.469-0.188,0.469-0.371V17.954c0-0.372-0.188-0.464-0.562-0.464H25.134

+			L25.229,8.097z"/>

+		<path fill="#2E61E3" d="M25.219,8.124c0-0.279-0.281-0.279-0.468-0.186L9.229,23.627c-0.467,0.464-0.375,0.649,0,0.928

+			l15.522,15.506c0.095,0.094,0.373,0.094,0.373-0.094v-9.281h12.718c0.28,0,0.467-0.188,0.467-0.373v-12.35

+			c0-0.371-0.187-0.463-0.562-0.463H25.124L25.219,8.124z"/>

+		<path fill="#2F62E3" d="M25.208,8.15c0-0.279-0.278-0.279-0.467-0.186L9.245,23.628c-0.466,0.463-0.374,0.648,0,0.927

+			l15.499,15.479c0.094,0.093,0.373,0.093,0.373-0.095v-9.268h12.695c0.28,0,0.469-0.186,0.469-0.371V17.975

+			c0-0.371-0.188-0.463-0.562-0.463H25.116L25.208,8.15z"/>

+		<path fill="#3063E4" d="M25.2,8.177c0-0.278-0.279-0.278-0.468-0.185L9.259,23.628c-0.465,0.462-0.373,0.647,0,0.925l15.476,15.45

+			c0.094,0.093,0.373,0.093,0.373-0.092V30.66h12.678c0.279,0,0.467-0.188,0.467-0.371V17.984c0-0.37-0.188-0.462-0.561-0.462

+			H25.105L25.2,8.177z"/>

+		<path fill="#3164E4" d="M25.189,8.204c0-0.277-0.278-0.277-0.465-0.185L9.273,23.629c-0.465,0.462-0.373,0.646,0,0.924

+			l15.452,15.426c0.092,0.092,0.371,0.092,0.371-0.092v-9.238h12.658c0.279,0,0.467-0.187,0.467-0.371V17.995

+			c0-0.37-0.188-0.461-0.561-0.461H25.098L25.189,8.204z"/>

+		<path fill="#3265E5" d="M25.182,8.229c0-0.277-0.279-0.277-0.466-0.185L9.289,23.629c-0.464,0.461-0.372,0.645,0,0.921

+			l15.428,15.4c0.094,0.093,0.372,0.093,0.372-0.093v-9.217h12.64c0.276,0,0.465-0.188,0.465-0.369V18.004

+			c0-0.369-0.188-0.46-0.559-0.46H25.087L25.182,8.229z"/>

+		<path fill="#3366E5" d="M25.171,8.256c0-0.276-0.278-0.276-0.465-0.184L9.304,23.63c-0.463,0.46-0.372,0.644,0,0.92l15.404,15.373

+			c0.093,0.093,0.371,0.093,0.371-0.092v-9.205h12.619c0.276,0,0.465-0.185,0.465-0.369V18.015c0-0.368-0.188-0.459-0.56-0.459

+			H25.079L25.171,8.256z"/>

+		<path fill="#3366E6" d="M25.161,8.284c0-0.276-0.276-0.276-0.463-0.184L9.317,23.631c-0.462,0.459-0.371,0.643,0,0.919

+			l15.381,15.347c0.094,0.095,0.37,0.095,0.37-0.09v-9.188h12.601c0.279,0,0.466-0.187,0.466-0.368V18.024

+			c0-0.367-0.187-0.458-0.558-0.458H25.068L25.161,8.284z"/>

+		<path fill="#3467E6" d="M25.15,8.311c0-0.276-0.276-0.276-0.463-0.184L9.332,23.631c-0.462,0.459-0.371,0.642,0,0.917

+			L24.688,39.87c0.096,0.091,0.371,0.091,0.371-0.093v-9.174h12.582c0.276,0,0.463-0.187,0.463-0.369V18.035

+			c0-0.367-0.187-0.458-0.558-0.458H25.059L25.15,8.311z"/>

+		<path fill="#3568E7" d="M25.143,8.336c0-0.275-0.277-0.275-0.463-0.183L9.347,23.632c-0.461,0.458-0.37,0.641,0,0.917

+			L24.68,39.846c0.094,0.092,0.37,0.092,0.37-0.093v-9.157h12.562c0.277,0,0.463-0.186,0.463-0.367V18.044

+			c0-0.366-0.186-0.457-0.555-0.457H25.05L25.143,8.336z"/>

+		<path fill="#3669E7" d="M25.133,8.364c0-0.275-0.277-0.275-0.462-0.183L9.361,23.632c-0.461,0.458-0.369,0.64,0,0.916

+			l15.31,15.271c0.095,0.093,0.369,0.093,0.369-0.09v-9.146h12.543c0.276,0,0.463-0.185,0.463-0.367V18.055

+			c0-0.365-0.187-0.456-0.555-0.456H25.04L25.133,8.364z"/>

+		<path fill="#376AE8" d="M25.122,8.39c0-0.274-0.274-0.274-0.461-0.183L9.375,23.633c-0.459,0.457-0.368,0.639,0,0.914

+			L24.663,39.79c0.092,0.091,0.366,0.091,0.366-0.091V30.57h12.525c0.275,0,0.461-0.184,0.461-0.364V18.064

+			c0-0.365-0.186-0.455-0.555-0.455H25.029L25.122,8.39z"/>

+		<path fill="#386BE8" d="M25.113,8.417c0-0.274-0.276-0.274-0.461-0.183L9.39,23.634c-0.459,0.456-0.368,0.638,0,0.912

+			l15.262,15.218c0.095,0.09,0.369,0.09,0.369-0.091v-9.112h12.504c0.275,0,0.461-0.184,0.461-0.365v-12.12

+			c0-0.364-0.186-0.455-0.553-0.455H25.021L25.113,8.417z"/>

+		<path fill="#396CE9" d="M25.104,8.442c0-0.273-0.273-0.273-0.459-0.182L9.405,23.636c-0.458,0.455-0.368,0.636,0,0.909

+			l15.24,15.189c0.092,0.093,0.367,0.093,0.367-0.09v-9.097h12.485c0.274,0,0.459-0.183,0.459-0.364v-12.1

+			c0-0.363-0.185-0.454-0.552-0.454H25.012L25.104,8.442z"/>

+		<path fill="#3A6DE9" d="M25.094,8.47c0-0.273-0.273-0.273-0.457-0.182L9.419,23.636c-0.458,0.455-0.367,0.636,0,0.908

+			l15.216,15.165c0.092,0.091,0.367,0.091,0.367-0.09v-9.081h12.466c0.274,0,0.459-0.185,0.459-0.364V18.096

+			c0-0.363-0.185-0.453-0.552-0.453H25.003L25.094,8.47z"/>

+		<path fill="#3B6EEA" d="M25.085,8.497c0-0.272-0.274-0.272-0.459-0.181L9.435,23.637c-0.457,0.453-0.366,0.634,0,0.906

+			l15.193,15.141c0.093,0.09,0.365,0.09,0.365-0.092v-9.064h12.446c0.271,0,0.457-0.182,0.457-0.361v-12.06

+			c0-0.362-0.186-0.452-0.549-0.452H24.993L25.085,8.497z"/>

+		<path fill="#3C6FEA" d="M25.075,8.522c0-0.272-0.272-0.272-0.457-0.181L9.449,23.637c-0.457,0.453-0.366,0.633,0,0.905

+			l15.169,15.112c0.092,0.091,0.362,0.091,0.362-0.09v-9.051h12.431c0.272,0,0.457-0.183,0.457-0.363V18.116

+			c0-0.362-0.185-0.452-0.55-0.452H24.982L25.075,8.522z"/>

+		<path fill="#3D70EB" d="M25.064,8.549c0-0.271-0.272-0.271-0.455-0.181L9.462,23.638c-0.455,0.452-0.365,0.632,0,0.903

+			l15.147,15.087c0.093,0.093,0.363,0.093,0.363-0.089v-9.035h12.409c0.272,0,0.456-0.181,0.456-0.359v-12.02

+			c0-0.361-0.184-0.451-0.549-0.451H24.975L25.064,8.549z"/>

+		<path fill="#3E71EB" d="M25.057,8.577c0-0.271-0.273-0.271-0.455-0.181L9.478,23.639c-0.455,0.451-0.364,0.631,0,0.901

+			l15.124,15.062c0.09,0.09,0.362,0.09,0.362-0.09v-9.021h12.392c0.272,0,0.455-0.183,0.455-0.361V18.136

+			c0-0.36-0.183-0.45-0.547-0.45h-12.3L25.057,8.577z"/>

+		<path fill="#3F72EC" d="M25.046,8.603c0-0.27-0.272-0.27-0.455-0.18L9.493,23.639c-0.454,0.45-0.364,0.63,0,0.9l15.099,15.035

+			c0.092,0.09,0.364,0.09,0.364-0.09V30.48h12.369c0.272,0,0.454-0.183,0.454-0.359V18.146c0-0.36-0.182-0.449-0.547-0.449H24.956

+			L25.046,8.603z"/>

+		<path fill="#4073EC" d="M25.038,8.629c0-0.27-0.272-0.27-0.455-0.18L9.506,23.64c-0.453,0.45-0.363,0.629,0,0.898l15.075,15.01

+			c0.092,0.091,0.362,0.091,0.362-0.09v-8.985h12.353c0.272,0,0.455-0.183,0.455-0.361V18.157c0-0.359-0.183-0.448-0.545-0.448

+			H24.945L25.038,8.629z"/>

+		<path fill="#4174ED" d="M25.027,8.656c0-0.269-0.272-0.269-0.454-0.179L9.521,23.641c-0.453,0.449-0.363,0.627,0,0.896

+			L24.573,39.52c0.092,0.09,0.362,0.09,0.362-0.09v-8.972h12.332c0.271,0,0.453-0.181,0.453-0.36V18.166

+			c0-0.358-0.182-0.447-0.544-0.447H24.938L25.027,8.656z"/>

+		<path fill="#4275ED" d="M25.018,8.683c0-0.269-0.271-0.269-0.453-0.179L9.537,23.641c-0.452,0.448-0.362,0.626,0,0.896

+			l15.027,14.957c0.092,0.09,0.362,0.09,0.362-0.09v-8.955h12.312c0.271,0,0.453-0.18,0.453-0.359V18.177

+			c0-0.358-0.182-0.447-0.543-0.447H24.927L25.018,8.683z"/>

+		<path fill="#4376EE" d="M25.008,8.709c0-0.269-0.271-0.269-0.451-0.179L9.551,23.642c-0.451,0.447-0.361,0.625,0,0.895

+			l15.006,14.932c0.09,0.09,0.36,0.09,0.36-0.089v-8.94H37.21c0.271,0,0.453-0.18,0.453-0.356V18.187

+			c0-0.357-0.183-0.446-0.543-0.446H24.917L25.008,8.709z"/>

+		<path fill="#4477EE" d="M24.997,8.735c0-0.268-0.271-0.268-0.45-0.179L9.564,23.642c-0.45,0.446-0.361,0.625,0,0.893

+			l14.982,14.904c0.091,0.09,0.36,0.09,0.36-0.088v-8.928H37.18c0.271,0,0.451-0.179,0.451-0.355V18.197

+			c0-0.356-0.181-0.445-0.542-0.445h-12.18L24.997,8.735z"/>

+		<path fill="#4578EF" d="M24.988,8.763c0-0.268-0.271-0.268-0.449-0.178L9.58,23.643c-0.449,0.445-0.36,0.623,0,0.891l14.958,14.88

+			c0.09,0.089,0.358,0.089,0.358-0.089v-8.909h12.256c0.271,0,0.451-0.18,0.451-0.357V18.207c0-0.356-0.182-0.444-0.541-0.444

+			H24.898L24.988,8.763z"/>

+		<path fill="#4679EF" d="M24.979,8.79c0-0.267-0.271-0.267-0.449-0.178L9.595,23.644c-0.449,0.445-0.36,0.622,0,0.891

+			l14.934,14.851c0.091,0.091,0.359,0.091,0.359-0.088v-8.896h12.234c0.271,0,0.451-0.18,0.451-0.355V18.216

+			c0-0.355-0.184-0.443-0.541-0.443H24.891L24.979,8.79z"/>

+		<path fill="#477AF0" d="M24.971,8.815c0-0.267-0.271-0.267-0.451-0.178L9.608,23.644c-0.448,0.444-0.359,0.621,0,0.889

+			L24.52,39.357c0.09,0.09,0.36,0.09,0.36-0.088v-8.879h12.218c0.27,0,0.448-0.18,0.448-0.354V18.228

+			c0-0.355-0.183-0.443-0.541-0.443H24.88L24.971,8.815z"/>

+		<path fill="#487BF0" d="M24.96,8.842c0-0.266-0.271-0.266-0.448-0.177L9.624,23.645c-0.448,0.443-0.359,0.62,0,0.888

+			l14.888,14.801c0.09,0.088,0.358,0.088,0.358-0.088v-8.863h12.196c0.271,0,0.449-0.178,0.449-0.355v-11.79

+			c0-0.354-0.182-0.442-0.539-0.442H24.87L24.96,8.842z"/>

+		<path fill="#497CF1" d="M24.95,8.87c0-0.266-0.269-0.266-0.447-0.177L9.638,23.645c-0.447,0.442-0.358,0.619,0,0.886

+			l14.865,14.773c0.09,0.09,0.356,0.09,0.356-0.09v-8.846H37.04c0.271,0,0.446-0.18,0.446-0.354V18.248

+			c0-0.353-0.18-0.441-0.536-0.441H24.859L24.95,8.87z"/>

+		<path fill="#4A7DF1" d="M24.939,8.896c0-0.265-0.268-0.265-0.446-0.177L9.652,23.646c-0.446,0.442-0.357,0.618,0,0.883

+			l14.841,14.75c0.089,0.088,0.358,0.088,0.358-0.088v-8.832H37.01c0.27,0,0.448-0.178,0.448-0.354V18.257

+			c0-0.353-0.183-0.44-0.537-0.44H24.852L24.939,8.896z"/>

+		<path fill="#4B7EF2" d="M24.932,8.922c0-0.265-0.269-0.265-0.447-0.177L9.667,23.646c-0.445,0.441-0.357,0.617,0,0.881

+			l14.818,14.724c0.089,0.088,0.357,0.088,0.357-0.088V30.35h12.141c0.268,0,0.447-0.18,0.447-0.354V18.268

+			c0-0.353-0.181-0.44-0.537-0.44H24.842L24.932,8.922z"/>

+		<path fill="#4C7FF2" d="M24.921,8.949c0-0.264-0.269-0.264-0.445-0.176L9.682,23.646c-0.444,0.44-0.356,0.616,0,0.879

+			l14.794,14.697c0.088,0.088,0.355,0.088,0.355-0.089v-8.801h12.121c0.269,0,0.444-0.177,0.444-0.354V18.277

+			c0-0.352-0.18-0.438-0.535-0.438h-12.03L24.921,8.949z"/>

+		<path fill="#4D80F3" d="M24.913,8.976c0-0.264-0.269-0.264-0.444-0.176L9.697,23.647c-0.444,0.439-0.356,0.615,0,0.878

+			l14.771,14.672c0.091,0.088,0.355,0.088,0.355-0.088v-8.784h12.102c0.269,0,0.445-0.179,0.445-0.354V18.288

+			c0-0.351-0.181-0.438-0.535-0.438H24.823L24.913,8.976z"/>

+		<path fill="#4E81F3" d="M24.902,9.002c0-0.264-0.268-0.264-0.444-0.176L9.71,23.647c-0.443,0.439-0.355,0.614,0,0.876

+			L24.458,39.17c0.089,0.088,0.354,0.088,0.354-0.087v-8.771h12.082c0.268,0,0.444-0.176,0.444-0.354V18.297

+			c0-0.35-0.178-0.437-0.532-0.437H24.812L24.902,9.002z"/>

+		<path fill="#4F82F4" d="M24.895,9.028c0-0.263-0.269-0.263-0.444-0.175L9.726,23.648c-0.442,0.438-0.354,0.612,0,0.875

+			L24.45,39.145c0.089,0.088,0.354,0.088,0.354-0.086v-8.754h12.062c0.267,0,0.442-0.178,0.442-0.354V18.308

+			c0-0.349-0.18-0.436-0.533-0.436H24.805L24.895,9.028z"/>

+		<path fill="#5083F4" d="M24.884,9.056c0-0.262-0.268-0.262-0.443-0.175L9.74,23.649c-0.441,0.437-0.354,0.611,0,0.875l14.7,14.595

+			c0.089,0.087,0.354,0.087,0.354-0.087v-8.737h12.045c0.267,0,0.44-0.176,0.44-0.353V18.317c0-0.349-0.178-0.436-0.53-0.436H24.794

+			L24.884,9.056z"/>

+		<path fill="#5184F5" d="M24.874,9.082c0-0.262-0.269-0.262-0.442-0.175L9.754,23.649c-0.441,0.437-0.354,0.61,0,0.873

+			l14.677,14.566c0.088,0.088,0.354,0.088,0.354-0.086v-8.723h12.025c0.266,0,0.44-0.176,0.44-0.35V18.329

+			c0-0.348-0.176-0.435-0.53-0.435H24.786L24.874,9.082z"/>

+		<path fill="#5285F5" d="M24.863,9.108c0-0.262-0.264-0.262-0.44-0.174L9.769,23.65c-0.44,0.436-0.353,0.609,0,0.872l14.654,14.541

+			c0.089,0.086,0.353,0.086,0.353-0.086V30.27h12.008c0.264,0,0.439-0.176,0.439-0.351V18.338c0-0.348-0.177-0.434-0.529-0.434

+			H24.775L24.863,9.108z"/>

+		<path fill="#5386F6" d="M24.854,9.136c0-0.261-0.266-0.261-0.44-0.174l-14.63,14.69c-0.439,0.435-0.353,0.608,0,0.87l14.63,14.517

+			c0.089,0.087,0.353,0.087,0.353-0.086V30.26H36.75c0.266,0,0.439-0.175,0.439-0.349V18.349c0-0.347-0.176-0.433-0.527-0.433

+			H24.768L24.854,9.136z"/>

+		<path fill="#5487F6" d="M24.846,9.163c0-0.261-0.265-0.261-0.441-0.174L9.798,23.651c-0.439,0.434-0.352,0.607,0,0.867

+			l14.606,14.49c0.088,0.086,0.352,0.086,0.352-0.086v-8.676h11.967c0.264,0,0.439-0.176,0.439-0.35V18.358

+			c0-0.346-0.178-0.432-0.527-0.432H24.757L24.846,9.163z"/>

+		<path fill="#5588F7" d="M24.835,9.188c0-0.26-0.265-0.26-0.439-0.173L9.812,23.652c-0.438,0.433-0.352,0.606,0,0.866L24.395,38.98

+			c0.088,0.088,0.352,0.088,0.352-0.086v-8.66h11.946c0.265,0,0.439-0.174,0.439-0.348V18.369c0-0.346-0.178-0.432-0.527-0.432

+			H24.747L24.835,9.188z"/>

+		<path fill="#5689F7" d="M24.827,9.215c0-0.26-0.265-0.26-0.438-0.173L9.828,23.653c-0.437,0.432-0.351,0.604,0,0.865l14.56,14.438

+			c0.088,0.086,0.352,0.086,0.352-0.086v-8.646h11.928c0.266,0,0.438-0.176,0.438-0.349v-11.5c0-0.345-0.176-0.431-0.525-0.431

+			H24.74L24.827,9.215z"/>

+		<path fill="#578AF8" d="M24.816,9.242c0-0.259-0.264-0.259-0.438-0.172L9.842,23.653c-0.437,0.432-0.35,0.604,0,0.863

+			l14.537,14.41c0.088,0.086,0.35,0.086,0.35-0.086v-8.629h11.91c0.262,0,0.438-0.173,0.438-0.346V18.389

+			c0-0.344-0.176-0.43-0.524-0.43H24.729L24.816,9.242z"/>

+		<path fill="#588BF8" d="M24.807,9.269c0-0.259-0.262-0.259-0.437-0.172L9.856,23.655c-0.436,0.431-0.35,0.603,0,0.863

+			L24.37,38.898c0.088,0.086,0.349,0.086,0.349-0.084v-8.612h11.891c0.264,0,0.438-0.175,0.438-0.347V18.398

+			c0-0.344-0.176-0.429-0.524-0.429H24.719L24.807,9.269z"/>

+		<path fill="#598CF9" d="M24.796,9.294c0-0.258-0.261-0.258-0.438-0.172L9.872,23.655c-0.435,0.43-0.349,0.602,0,0.861

+			L24.36,38.872c0.088,0.086,0.35,0.086,0.35-0.085v-8.602h11.871c0.263,0,0.438-0.172,0.438-0.344V18.41

+			c0-0.343-0.177-0.429-0.522-0.429H24.71L24.796,9.294z"/>

+		<path fill="#5A8DF9" d="M24.788,9.322c0-0.258-0.263-0.258-0.437-0.172L9.886,23.656c-0.435,0.429-0.349,0.6,0,0.857

+			l14.466,14.334c0.088,0.086,0.349,0.086,0.349-0.088v-8.58h11.854c0.262,0,0.438-0.174,0.438-0.346V18.418

+			c0-0.342-0.177-0.427-0.522-0.427H24.7L24.788,9.322z"/>

+		<path fill="#5B8EFA" d="M24.777,9.349c0-0.257-0.262-0.257-0.436-0.171L9.9,23.657c-0.434,0.428-0.348,0.6,0,0.856L24.342,38.82

+			c0.087,0.086,0.348,0.086,0.348-0.084v-8.567h11.834c0.261,0,0.437-0.172,0.437-0.344V18.43c0-0.342-0.176-0.427-0.522-0.427

+			H24.689L24.777,9.349z"/>

+		<path fill="#5C8FFA" d="M24.77,9.375c0-0.257-0.262-0.257-0.436-0.171L9.915,23.657c-0.433,0.428-0.348,0.599,0,0.854

+			l14.419,14.281c0.087,0.086,0.348,0.086,0.348-0.085v-8.551h11.812c0.262,0,0.438-0.174,0.438-0.346V18.439

+			c0-0.341-0.176-0.426-0.521-0.426H24.682L24.77,9.375z"/>

+		<path fill="#5D90FB" d="M24.759,9.401c0-0.256-0.26-0.256-0.434-0.17L9.93,23.658c-0.432,0.427-0.347,0.597,0,0.855l14.396,14.254

+			c0.087,0.086,0.347,0.086,0.347-0.084v-8.537h11.794c0.26,0,0.436-0.172,0.436-0.342V18.45c0-0.341-0.176-0.425-0.521-0.425

+			h-11.71L24.759,9.401z"/>

+		<path fill="#5E91FB" d="M24.749,9.429c0-0.256-0.26-0.256-0.435-0.17l-14.371,14.4c-0.432,0.426-0.346,0.596,0,0.852L24.315,38.74

+			c0.087,0.085,0.346,0.085,0.346-0.086v-8.521h11.774c0.26,0,0.435-0.172,0.435-0.342V18.459c0-0.34-0.175-0.424-0.521-0.424

+			H24.663L24.749,9.429z"/>

+		<path fill="#5F92FC" d="M24.741,9.455c0-0.255-0.261-0.255-0.434-0.17L9.958,23.659c-0.431,0.425-0.346,0.595,0,0.851

+			l14.349,14.202c0.087,0.085,0.345,0.085,0.345-0.084v-8.505h11.757c0.258,0,0.434-0.171,0.434-0.341V18.47

+			c0-0.339-0.176-0.423-0.521-0.423h-11.67L24.741,9.455z"/>

+		<path fill="#6093FC" d="M24.73,9.481c0-0.255-0.259-0.255-0.433-0.17L9.974,23.66c-0.43,0.425-0.345,0.594,0,0.849l14.325,14.179

+			c0.087,0.084,0.346,0.084,0.346-0.084v-8.489H36.38c0.259,0,0.433-0.171,0.433-0.341V18.479c0-0.339-0.174-0.423-0.521-0.423

+			H24.645L24.73,9.481z"/>

+		<path fill="#6194FD" d="M24.721,9.507c0-0.254-0.259-0.254-0.431-0.169L9.988,23.661c-0.43,0.424-0.345,0.593,0,0.847

+			l14.302,14.15c0.086,0.085,0.344,0.085,0.344-0.084V30.1h11.718c0.258,0,0.432-0.17,0.432-0.342v-11.27

+			c0-0.338-0.174-0.422-0.518-0.422H24.634L24.721,9.507z"/>

+		<path fill="#6295FD" d="M24.71,9.535c0-0.254-0.257-0.254-0.429-0.169L10.002,23.661c-0.429,0.423-0.344,0.592,0,0.846

+			L24.28,38.631c0.086,0.085,0.343,0.085,0.343-0.083V30.09H36.32c0.258,0,0.432-0.17,0.432-0.34V18.5

+			c0-0.337-0.174-0.421-0.52-0.421H24.623L24.71,9.535z"/>

+		<path fill="#6396FE" d="M24.702,9.561c0-0.253-0.259-0.253-0.43-0.169l-14.256,14.27c-0.428,0.422-0.343,0.591,0,0.844

+			l14.255,14.1c0.086,0.084,0.342,0.084,0.342-0.084V30.08h11.681c0.258,0,0.431-0.17,0.431-0.338v-11.23

+			c0-0.337-0.173-0.42-0.517-0.42H24.616L24.702,9.561z"/>

+		<path fill="#6497FE" d="M24.691,9.587c0-0.253-0.257-0.253-0.429-0.168l-14.23,14.243c-0.427,0.422-0.343,0.59,0,0.843

+			l14.231,14.072c0.086,0.084,0.342,0.084,0.342-0.083v-8.428h11.66c0.258,0,0.43-0.17,0.43-0.338V18.521

+			c0-0.336-0.172-0.42-0.516-0.42H24.605L24.691,9.587z"/>

+		<path fill="#6598FF" d="M24.684,9.615c0-0.252-0.258-0.252-0.43-0.168L10.045,23.663c-0.426,0.42-0.342,0.588,0,0.841

+			l14.208,14.047c0.086,0.084,0.343,0.084,0.343-0.084v-8.41h11.641c0.257,0,0.429-0.168,0.429-0.336V18.531

+			c0-0.335-0.172-0.418-0.515-0.418H24.598L24.684,9.615z"/>

+		<path fill="#6699FF" d="M24.673,9.642c0-0.252-0.257-0.252-0.428-0.168L10.06,23.664c-0.426,0.42-0.342,0.587,0,0.839

+			l14.185,14.021c0.086,0.084,0.342,0.084,0.342-0.084v-8.396h11.621c0.256,0,0.429-0.169,0.429-0.337V18.541

+			c0-0.335-0.173-0.418-0.515-0.418H24.587L24.673,9.642z"/>

+	</g>

+	

+		<linearGradient id="XMLID_16_" gradientUnits="userSpaceOnUse" x1="-1112.2041" y1="1225.4229" x2="-1112.2041" y2="1254.5781" gradientTransform="matrix(-1 0 0 1 -1089 -1216)">

+		<stop  offset="0" style="stop-color:#FFFFFF"/>

+		<stop  offset="1" style="stop-color:#6699FF"/>

+	</linearGradient>

+	<path fill="url(#XMLID_16_)" d="M24.673,9.642c0-0.252-0.257-0.252-0.428-0.168L10.06,23.664c-0.426,0.42-0.342,0.587,0,0.839

+		l14.185,14.021c0.086,0.084,0.342,0.084,0.342-0.084v-8.396h11.621c0.256,0,0.429-0.169,0.429-0.337V18.541

+		c0-0.335-0.173-0.418-0.515-0.418H24.587L24.673,9.642z"/>

+</g>

+<g id="crop_x0020_marks">

+	<path fill="none" d="M-0.06,0.001h48v48h-48V0.001z"/>

+</g>

+</svg>

diff --git a/applications/content/template/docbook/images/colorsvg/tip.svg b/applications/content/template/docbook/images/colorsvg/tip.svg
new file mode 100644
index 0000000..7ec92e3
--- /dev/null
+++ b/applications/content/template/docbook/images/colorsvg/tip.svg
@@ -0,0 +1,367 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [

+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">

+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">

+]>

+<svg  version="1.1" id="Tip" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="48" height="48" viewBox="0 0 48 48"

+	 overflow="visible" enable-background="new 0 0 48 48" xml:space="preserve">

+<g>

+	<path stroke="#FFFFFF" stroke-width="5.6139" d="M9.525,18.6c0,8,6.5,14.4,14.4,14.4c8.001,0,14.399-6.5,14.399-14.4

+		c0-8-6.5-14.4-14.399-14.4C15.925,4.2,9.525,10.7,9.525,18.6z M12.825,18.6c0-6.2,5-11.2,11.2-11.2c6.2,0,11.2,5,11.2,11.2

+		c0,6.2-5,11.2-11.2,11.2C17.825,29.8,12.825,24.8,12.825,18.6z"/>

+	<path stroke="#FFFFFF" stroke-width="5.6139" d="M28.125,37.9l-7.6,0.8c-0.9,0.1-1.5,0.899-1.4,1.8s0.9,1.5,1.8,1.4l7.601-0.801

+		c0.9-0.102,1.5-0.899,1.4-1.802C29.824,38.4,29.025,37.8,28.125,37.9z"/>

+	<path stroke="#FFFFFF" stroke-width="5.6139" d="M28.125,34.8l-7.6,0.8c-0.9,0.101-1.5,0.9-1.4,1.801c0.1,0.897,0.9,1.5,1.8,1.397

+		l7.601-0.8c0.9-0.102,1.5-0.898,1.4-1.8C29.824,35.3,29.025,34.7,28.125,34.8z"/>

+	<path stroke="#FFFFFF" stroke-width="5.6139" d="M28.125,31.6l-7.6,0.801c-0.9,0.1-1.5,0.897-1.4,1.8c0.1,0.899,0.9,1.5,1.8,1.399

+		l7.601-0.802c0.9-0.1,1.5-0.897,1.4-1.8C29.824,32.1,29.025,31.5,28.125,31.6z"/>

+	<path stroke="#FFFFFF" stroke-width="5.6139" d="M23.125,41.3v0.9c0,0.899,0.7,1.6,1.6,1.6c0.9,0,1.6-0.7,1.6-1.6v-0.9h-3.299

+		H23.125z"/>

+	<path fill="#FFFFFF" d="M35.926,18.7c0,6.6-5.4,12-12.001,12c-6.6,0-12-5.4-12-12c0-6.6,5.4-12,12-12

+		C30.525,6.7,35.926,12.1,35.926,18.7z"/>

+	<g>

+		<path fill="#FFFF00" d="M9.625,18.6c0,8,6.5,14.4,14.4,14.4c8,0,14.401-6.5,14.401-14.4c0-8-6.5-14.4-14.401-14.4

+			C16.025,4.2,9.625,10.7,9.625,18.6z"/>

+		<path fill="#FFFF01" d="M9.647,18.6c0-7.889,6.391-14.379,14.379-14.379c7.89,0,14.378,6.391,14.378,14.379

+			c0,7.889-6.391,14.378-14.378,14.378C16.137,32.979,9.647,26.588,9.647,18.6z"/>

+		<path fill="#FFFF02" d="M9.668,18.6c0-7.878,6.382-14.358,14.358-14.358c7.878,0,14.359,6.382,14.359,14.358

+			c0,7.876-6.383,14.358-14.359,14.358C16.149,32.958,9.668,26.576,9.668,18.6z"/>

+		<path fill="#FFFF03" d="M9.69,18.6c0-7.867,6.373-14.337,14.337-14.337c7.868,0,14.338,6.373,14.338,14.337

+			c0,7.867-6.373,14.337-14.338,14.337C16.16,32.938,9.69,26.564,9.69,18.6z"/>

+		<path fill="#FFFF04" d="M9.712,18.6c0-7.855,6.363-14.316,14.316-14.316c7.855,0,14.316,6.363,14.316,14.316

+			c0,7.856-6.363,14.316-14.316,14.316C16.172,32.916,9.712,26.553,9.712,18.6z"/>

+		<path fill="#FFFF05" d="M9.733,18.6c0-7.844,6.354-14.295,14.295-14.295c7.847,0,14.296,6.354,14.296,14.295

+			c0,7.843-6.354,14.294-14.296,14.294C16.184,32.896,9.733,26.541,9.733,18.6z"/>

+		<path fill="#FFFF06" d="M9.754,18.6c0-7.833,6.345-14.274,14.274-14.274c7.833,0,14.275,6.345,14.275,14.274

+			c0,7.833-6.346,14.274-14.275,14.274C16.196,32.874,9.754,26.529,9.754,18.6z"/>

+		<path fill="#FFFF07" d="M9.776,18.6c0-7.822,6.336-14.253,14.254-14.253c7.822,0,14.253,6.335,14.253,14.253

+			c0,7.823-6.336,14.253-14.253,14.253C16.208,32.854,9.776,26.518,9.776,18.6z"/>

+		<path fill="#FFFF08" d="M9.798,18.6c0-7.811,6.326-14.232,14.232-14.232c7.812,0,14.234,6.326,14.234,14.232

+			c0,7.811-6.328,14.233-14.234,14.233C16.219,32.833,9.798,26.506,9.798,18.6z"/>

+		<path fill="#FFFF09" d="M9.819,18.6c0-7.8,6.317-14.211,14.211-14.211c7.8,0,14.212,6.317,14.212,14.211

+			c0,7.8-6.318,14.21-14.212,14.21C16.231,32.812,9.819,26.494,9.819,18.6z"/>

+		<path fill="#FFFF0A" d="M9.84,18.6c0-7.789,6.309-14.191,14.191-14.191c7.79,0,14.192,6.309,14.192,14.191

+			c0,7.789-6.309,14.191-14.192,14.191C16.243,32.791,9.84,26.482,9.84,18.6z"/>

+		<path fill="#FFFF0B" d="M9.862,18.6c0-7.778,6.299-14.17,14.17-14.17c7.779,0,14.169,6.299,14.169,14.17

+			c0,7.778-6.299,14.169-14.169,14.169C16.254,32.77,9.862,26.471,9.862,18.6z"/>

+		<path fill="#FFFF0C" d="M9.884,18.6c0-7.767,6.29-14.149,14.149-14.149c7.768,0,14.149,6.29,14.149,14.149

+			c0,7.767-6.291,14.149-14.149,14.149C16.266,32.749,9.884,26.459,9.884,18.6z"/>

+		<path fill="#FFFF0D" d="M9.905,18.6c0-7.756,6.281-14.128,14.128-14.128c7.756,0,14.129,6.281,14.129,14.128

+			c0,7.755-6.281,14.128-14.129,14.128C16.278,32.729,9.905,26.447,9.905,18.6z"/>

+		<path fill="#FFFF0E" d="M9.927,18.6c0-7.745,6.272-14.107,14.107-14.107c7.746,0,14.107,6.272,14.107,14.107

+			c0,7.746-6.27,14.107-14.107,14.107C16.29,32.707,9.927,26.436,9.927,18.6z"/>

+		<path fill="#FFFF0F" d="M9.949,18.6c0-7.733,6.263-14.086,14.086-14.086c7.733,0,14.088,6.262,14.088,14.086

+			c0,7.733-6.266,14.085-14.088,14.085C16.302,32.688,9.949,26.423,9.949,18.6z"/>

+		<path fill="#FFFF10" d="M9.97,18.6c0-7.722,6.253-14.065,14.065-14.065c7.723,0,14.067,6.253,14.067,14.065

+			c0,7.722-6.254,14.066-14.067,14.066C16.313,32.666,9.97,26.411,9.97,18.6z"/>

+		<path fill="#FFFF11" d="M9.992,18.6c0-7.711,6.244-14.044,14.044-14.044c7.712,0,14.044,6.245,14.044,14.044

+			c0,7.71-6.244,14.044-14.044,14.044C16.325,32.645,9.992,26.398,9.992,18.6z"/>

+		<path fill="#FFFF12" d="M10.013,18.6c0-7.7,6.235-14.023,14.023-14.023c7.7,0,14.024,6.235,14.024,14.023

+			c0,7.7-6.236,14.023-14.024,14.023C16.337,32.623,10.013,26.389,10.013,18.6z"/>

+		<path fill="#FFFF13" d="M10.035,18.6c0-7.688,6.226-14.002,14.002-14.002c7.689,0,14.004,6.226,14.004,14.002

+			c0,7.689-6.229,14.001-14.004,14.001C16.348,32.604,10.035,26.376,10.035,18.6z"/>

+		<path fill="#FFFF14" d="M10.057,18.6c0-7.678,6.217-13.981,13.981-13.981c7.679,0,13.981,6.217,13.981,13.981

+			c0,7.677-6.217,13.981-13.981,13.981C16.36,32.581,10.057,26.364,10.057,18.6z"/>

+		<path fill="#FFFF15" d="M10.078,18.6c0-7.667,6.208-13.961,13.961-13.961C31.707,4.639,38,10.847,38,18.6

+			c0,7.667-6.209,13.96-13.961,13.96C16.372,32.561,10.078,26.354,10.078,18.6z"/>

+		<path fill="#FFFF16" d="M10.1,18.6c0-7.655,6.198-13.94,13.939-13.94c7.656,0,13.941,6.199,13.941,13.94

+			c0,7.656-6.201,13.94-13.941,13.94C16.384,32.54,10.1,26.341,10.1,18.6z"/>

+		<path fill="#FFFF17" d="M10.121,18.6c0-7.644,6.189-13.919,13.919-13.919c7.646,0,13.919,6.189,13.919,13.919

+			c0,7.644-6.189,13.917-13.919,13.917C16.396,32.52,10.121,26.329,10.121,18.6z"/>

+		<path fill="#FFFF18" d="M10.143,18.6c0-7.633,6.181-13.898,13.898-13.898c7.633,0,13.898,6.18,13.898,13.898

+			c0,7.632-6.182,13.898-13.898,13.898C16.408,32.498,10.143,26.316,10.143,18.6z"/>

+		<path fill="#FFFF19" d="M10.164,18.6c0-7.622,6.171-13.877,13.877-13.877c7.623,0,13.877,6.171,13.877,13.877

+			c0,7.623-6.172,13.876-13.877,13.876C16.419,32.479,10.164,26.307,10.164,18.6z"/>

+		<path fill="#FFFF1A" d="M10.186,18.6c0-7.611,6.162-13.856,13.856-13.856c7.61,0,13.856,6.162,13.856,13.856

+			c0,7.611-6.162,13.856-13.856,13.856C16.431,32.456,10.186,26.294,10.186,18.6z"/>

+		<path fill="#FFFF1B" d="M10.208,18.6c0-7.6,6.153-13.835,13.835-13.835c7.602,0,13.836,6.153,13.836,13.835

+			c0,7.6-6.152,13.835-13.836,13.835C16.443,32.436,10.208,26.282,10.208,18.6z"/>

+		<path fill="#FFFF1C" d="M10.229,18.6c0-7.589,6.144-13.814,13.814-13.814c7.59,0,13.814,6.144,13.814,13.814

+			c0,7.587-6.145,13.814-13.814,13.814C16.454,32.414,10.229,26.271,10.229,18.6z"/>

+		<path fill="#FFFF1D" d="M10.251,18.6c0-7.578,6.135-13.793,13.793-13.793c7.579,0,13.794,6.135,13.794,13.793

+			c0,7.578-6.137,13.792-13.794,13.792C16.466,32.395,10.251,26.259,10.251,18.6z"/>

+		<path fill="#FFFF1E" d="M10.272,18.6c0-7.566,6.125-13.772,13.772-13.772c7.567,0,13.772,6.125,13.772,13.772

+			c0,7.567-6.125,13.773-13.772,13.773C16.478,32.373,10.272,26.247,10.272,18.6z"/>

+		<path fill="#FFFF1F" d="M10.294,18.6c0-7.556,6.116-13.752,13.751-13.752c7.557,0,13.752,6.117,13.752,13.752

+			c0,7.554-6.117,13.751-13.752,13.751C16.49,32.352,10.294,26.234,10.294,18.6z"/>

+		<path fill="#FFFF20" d="M10.315,18.6c0-7.544,6.107-13.731,13.731-13.731c7.544,0,13.731,6.107,13.731,13.731

+			c0,7.544-6.107,13.731-13.731,13.731C16.502,32.331,10.315,26.225,10.315,18.6z"/>

+		<path fill="#FFFF21" d="M10.337,18.6c0-7.533,6.098-13.71,13.709-13.71c7.534,0,13.71,6.098,13.71,13.71

+			c0,7.534-6.1,13.708-13.71,13.708C16.513,32.311,10.337,26.212,10.337,18.6z"/>

+		<path fill="#FFFF22" d="M10.358,18.6c0-7.522,6.088-13.688,13.689-13.688c7.521,0,13.689,6.088,13.689,13.688

+			c0,7.522-6.09,13.689-13.689,13.689C16.525,32.289,10.358,26.199,10.358,18.6z"/>

+		<path fill="#FFFF23" d="M10.38,18.6c0-7.511,6.08-13.668,13.668-13.668c7.511,0,13.669,6.08,13.669,13.668

+			c0,7.511-6.08,13.667-13.669,13.667C16.537,32.268,10.38,26.188,10.38,18.6z"/>

+		<path fill="#FFFF24" d="M10.401,18.6c0-7.5,6.071-13.647,13.647-13.647c7.501,0,13.647,6.07,13.647,13.647

+			c0,7.5-6.07,13.647-13.647,13.647C16.549,32.247,10.401,26.176,10.401,18.6z"/>

+		<path fill="#FFFF25" d="M10.423,18.6c0-7.489,6.062-13.626,13.626-13.626c7.49,0,13.627,6.061,13.627,13.626

+			c0,7.489-6.062,13.625-13.627,13.625C16.56,32.227,10.423,26.164,10.423,18.6z"/>

+		<path fill="#FFFF26" d="M10.445,18.6c0-7.478,6.052-13.605,13.605-13.605c7.478,0,13.606,6.052,13.606,13.605

+			c0,7.478-6.053,13.605-13.606,13.605C16.572,32.205,10.445,26.152,10.445,18.6z"/>

+		<path fill="#FFFF27" d="M10.466,18.6c0-7.467,6.043-13.584,13.584-13.584c7.468,0,13.585,6.043,13.585,13.584

+			c0,7.466-6.043,13.583-13.585,13.583C16.584,32.186,10.466,26.141,10.466,18.6z"/>

+		<path fill="#FFFF28" d="M10.488,18.6c0-7.456,6.034-13.563,13.563-13.563c7.457,0,13.562,6.034,13.562,13.563

+			c0,7.457-6.033,13.563-13.562,13.563C16.596,32.163,10.488,26.129,10.488,18.6z"/>

+		<path fill="#FFFF29" d="M10.509,18.6c0-7.445,6.025-13.542,13.542-13.542c7.445,0,13.543,6.024,13.543,13.542

+			c0,7.444-6.025,13.542-13.543,13.542C16.608,32.143,10.509,26.117,10.509,18.6z"/>

+		<path fill="#FFFF2A" d="M10.531,18.6c0-7.434,6.016-13.522,13.521-13.522c7.435,0,13.521,6.016,13.521,13.522

+			c0,7.433-6.016,13.521-13.521,13.521C16.619,32.121,10.531,26.105,10.531,18.6z"/>

+		<path fill="#FFFF2B" d="M10.552,18.6c0-7.422,6.006-13.501,13.501-13.501c7.422,0,13.502,6.007,13.502,13.501

+			c0,7.421-6.008,13.5-13.502,13.5C16.631,32.102,10.552,26.094,10.552,18.6z"/>

+		<path fill="#FFFF2C" d="M10.574,18.6c0-7.411,5.997-13.479,13.479-13.479c7.412,0,13.48,5.997,13.48,13.479

+			c0,7.411-5.998,13.48-13.48,13.48C16.643,32.08,10.574,26.082,10.574,18.6z"/>

+		<path fill="#FFFF2D" d="M10.596,18.6c0-7.4,5.988-13.458,13.458-13.458c7.401,0,13.46,5.988,13.46,13.458

+			c0,7.4-5.988,13.458-13.46,13.458C16.654,32.059,10.596,26.07,10.596,18.6z"/>

+		<path fill="#FFFF2E" d="M10.617,18.6c0-7.389,5.979-13.438,13.438-13.438c7.389,0,13.438,5.979,13.438,13.438

+			c0,7.389-5.979,13.438-13.438,13.438C16.666,32.038,10.617,26.059,10.617,18.6z"/>

+		<path fill="#FFFF2F" d="M10.639,18.6c0-7.377,5.97-13.417,13.417-13.417c7.377,0,13.417,5.97,13.417,13.417

+			c0,7.376-5.971,13.417-13.417,13.417C16.678,32.018,10.639,26.047,10.639,18.6z"/>

+		<path fill="#FFFF30" d="M10.66,18.6c0-7.366,5.96-13.396,13.396-13.396c7.368,0,13.395,5.961,13.395,13.396

+			c0,7.367-5.961,13.396-13.395,13.396C16.69,31.996,10.66,26.035,10.66,18.6z"/>

+		<path fill="#FFFF31" d="M10.682,18.6c0-7.355,5.951-13.375,13.375-13.375c7.355,0,13.375,5.952,13.375,13.375

+			c0,7.355-5.951,13.375-13.375,13.375C16.701,31.977,10.682,26.023,10.682,18.6z"/>

+		<path fill="#FFFF32" d="M10.703,18.6c0-7.344,5.943-13.354,13.354-13.354c7.343,0,13.355,5.943,13.355,13.354

+			c0,7.343-5.943,13.354-13.355,13.354C16.713,31.954,10.703,26.012,10.703,18.6z"/>

+		<path fill="#FFFF33" d="M10.725,18.6c0-7.333,5.933-13.333,13.333-13.333c7.334,0,13.334,5.934,13.334,13.333

+			c0,7.333-5.934,13.333-13.334,13.333C16.725,31.934,10.725,26,10.725,18.6z"/>

+		<path fill="#FFFF34" d="M10.747,18.6c0-7.322,5.924-13.312,13.312-13.312c7.322,0,13.312,5.924,13.312,13.312

+			c0,7.322-5.926,13.312-13.312,13.312C16.737,31.912,10.747,25.988,10.747,18.6z"/>

+		<path fill="#FFFF35" d="M10.768,18.6c0-7.311,5.915-13.292,13.292-13.292c7.311,0,13.292,5.915,13.292,13.292

+			c0,7.311-5.914,13.292-13.292,13.292C16.749,31.893,10.768,25.977,10.768,18.6z"/>

+		<path fill="#FFFF36" d="M10.79,18.6c0-7.3,5.906-13.271,13.271-13.271c7.3,0,13.271,5.906,13.271,13.271

+			c0,7.298-5.904,13.27-13.271,13.27C16.76,31.87,10.79,25.964,10.79,18.6z"/>

+		<path fill="#FFFF37" d="M10.811,18.6c0-7.289,5.897-13.25,13.25-13.25c7.289,0,13.25,5.896,13.25,13.25

+			c0,7.289-5.896,13.25-13.25,13.25C16.772,31.85,10.811,25.952,10.811,18.6z"/>

+		<path fill="#FFFF38" d="M10.833,18.6c0-7.278,5.888-13.229,13.229-13.229c7.278,0,13.229,5.887,13.229,13.229

+			c0,7.278-5.889,13.228-13.229,13.228C16.784,31.828,10.833,25.939,10.833,18.6z"/>

+		<path fill="#FFFF39" d="M10.854,18.6c0-7.267,5.878-13.208,13.208-13.208c7.268,0,13.208,5.878,13.208,13.208

+			c0,7.266-5.877,13.208-13.208,13.208C16.796,31.809,10.854,25.93,10.854,18.6z"/>

+		<path fill="#FFFF3A" d="M10.876,18.6c0-7.255,5.869-13.187,13.187-13.187c7.255,0,13.187,5.869,13.187,13.187

+			c0,7.255-5.869,13.187-13.187,13.187C16.807,31.787,10.876,25.917,10.876,18.6z"/>

+		<path fill="#FFFF3B" d="M10.898,18.6c0-7.245,5.86-13.166,13.166-13.166c7.245,0,13.167,5.86,13.167,13.166

+			c0,7.244-5.859,13.166-13.167,13.166C16.819,31.766,10.898,25.904,10.898,18.6z"/>

+		<path fill="#FFFF3C" d="M10.92,18.6c0-7.233,5.851-13.145,13.145-13.145c7.234,0,13.146,5.851,13.146,13.145

+			c0,7.233-5.854,13.145-13.146,13.145C16.831,31.745,10.92,25.895,10.92,18.6z"/>

+		<path fill="#FFFF3D" d="M10.941,18.6c0-7.222,5.842-13.125,13.124-13.125c7.222,0,13.125,5.842,13.125,13.125

+			c0,7.222-5.842,13.125-13.125,13.125C16.843,31.725,10.941,25.882,10.941,18.6z"/>

+		<path fill="#FFFF3E" d="M10.963,18.6c0-7.211,5.833-13.104,13.103-13.104c7.211,0,13.104,5.833,13.104,13.104

+			c0,7.21-5.832,13.103-13.104,13.103C16.855,31.703,10.963,25.87,10.963,18.6z"/>

+		<path fill="#FFFF3F" d="M10.984,18.6c0-7.2,5.823-13.082,13.083-13.082c7.201,0,13.083,5.823,13.083,13.082

+			c0,7.2-5.824,13.083-13.083,13.083C16.866,31.684,10.984,25.857,10.984,18.6z"/>

+		<path fill="#FFFF40" d="M11.005,18.6c0-7.189,5.815-13.062,13.062-13.062c7.189,0,13.062,5.814,13.062,13.062

+			c0,7.189-5.812,13.061-13.062,13.061C16.878,31.661,11.005,25.848,11.005,18.6z"/>

+		<path fill="#FFFF41" d="M11.027,18.6c0-7.178,5.805-13.041,13.041-13.041c7.178,0,13.042,5.805,13.042,13.041

+			c0,7.177-5.805,13.041-13.042,13.041C16.889,31.641,11.027,25.835,11.027,18.6z"/>

+		<path fill="#FFFF42" d="M11.048,18.6c0-7.167,5.796-13.02,13.02-13.02c7.167,0,13.02,5.796,13.02,13.02

+			c0,7.167-5.797,13.02-13.02,13.02C16.901,31.62,11.048,25.823,11.048,18.6z"/>

+		<path fill="#FFFF43" d="M11.07,18.6c0-7.156,5.787-12.999,12.998-12.999c7.157,0,13,5.787,13,12.999c0,7.155-5.787,13-13,13

+			C16.913,31.6,11.07,25.812,11.07,18.6z"/>

+		<path fill="#FFFF44" d="M11.091,18.6c0-7.145,5.778-12.978,12.978-12.978c7.146,0,12.978,5.778,12.978,12.978

+			c0,7.144-5.777,12.978-12.978,12.978C16.925,31.578,11.091,25.8,11.091,18.6z"/>

+		<path fill="#FFFF45" d="M11.113,18.6c0-7.133,5.769-12.957,12.957-12.957c7.133,0,12.958,5.769,12.958,12.957

+			c0,7.132-5.77,12.957-12.958,12.957C16.937,31.557,11.113,25.788,11.113,18.6z"/>

+		<path fill="#FFFF46" d="M11.135,18.6c0-7.123,5.759-12.936,12.936-12.936c7.123,0,12.937,5.759,12.937,12.936

+			c0,7.123-5.76,12.936-12.937,12.936C16.949,31.536,11.135,25.775,11.135,18.6z"/>

+		<path fill="#FFFF47" d="M11.157,18.6c0-7.111,5.75-12.915,12.915-12.915c7.112,0,12.915,5.75,12.915,12.915

+			c0,7.111-5.75,12.916-12.915,12.916C16.96,31.516,11.157,25.766,11.157,18.6z"/>

+		<path fill="#FFFF48" d="M11.178,18.6c0-7.1,5.741-12.894,12.895-12.894c7.101,0,12.894,5.741,12.894,12.894

+			c0,7.099-5.74,12.894-12.894,12.894C16.972,31.494,11.178,25.752,11.178,18.6z"/>

+		<path fill="#FFFF49" d="M11.199,18.6c0-7.089,5.732-12.873,12.874-12.873c7.089,0,12.873,5.731,12.873,12.873

+			c0,7.087-5.73,12.873-12.873,12.873C16.984,31.473,11.199,25.74,11.199,18.6z"/>

+		<path fill="#FFFF4A" d="M11.221,18.6c0-7.078,5.723-12.852,12.852-12.852c7.078,0,12.853,5.722,12.853,12.852

+			c0,7.078-5.725,12.852-12.854,12.852C16.995,31.452,11.221,25.729,11.221,18.6z"/>

+		<path fill="#FFFF4B" d="M11.242,18.6c0-7.067,5.714-12.832,12.832-12.832c7.067,0,12.833,5.713,12.833,12.832

+			c0,7.066-5.715,12.832-12.833,12.832C17.007,31.432,11.242,25.717,11.242,18.6z"/>

+		<path fill="#FFFF4C" d="M11.264,18.6c0-7.056,5.705-12.811,12.811-12.811c7.056,0,12.812,5.704,12.812,12.811

+			c0,7.054-5.705,12.81-12.812,12.81C17.019,31.41,11.264,25.705,11.264,18.6z"/>

+		<path fill="#FFFF4D" d="M11.286,18.6c0-7.044,5.695-12.79,12.79-12.79c7.045,0,12.79,5.695,12.79,12.79

+			c0,7.044-5.693,12.791-12.79,12.791C17.031,31.391,11.286,25.693,11.286,18.6z"/>

+		<path fill="#FFFF4E" d="M11.307,18.6c0-7.033,5.686-12.769,12.769-12.769c7.034,0,12.77,5.686,12.77,12.769

+			c0,7.034-5.688,12.768-12.77,12.768C17.043,31.368,11.307,25.684,11.307,18.6z"/>

+		<path fill="#FFFF4F" d="M11.329,18.6c0-7.022,5.677-12.748,12.748-12.748c7.023,0,12.748,5.677,12.748,12.748

+			c0,7.022-5.678,12.748-12.748,12.748C17.054,31.348,11.329,25.67,11.329,18.6z"/>

+		<path fill="#FFFF50" d="M11.351,18.6c0-7.011,5.667-12.727,12.727-12.727c7.012,0,12.727,5.668,12.727,12.727

+			c0,7.011-5.668,12.727-12.727,12.727C17.066,31.327,11.351,25.658,11.351,18.6z"/>

+		<path fill="#FFFF51" d="M11.372,18.6c0-7,5.659-12.706,12.706-12.706c7,0,12.705,5.659,12.705,12.706

+			c0,7-5.658,12.707-12.705,12.707C17.078,31.307,11.372,25.646,11.372,18.6z"/>

+		<path fill="#FFFF52" d="M11.394,18.6c0-6.989,5.65-12.685,12.685-12.685c6.987,0,12.685,5.65,12.685,12.685

+			c0,6.989-5.648,12.685-12.685,12.685C17.09,31.285,11.394,25.635,11.394,18.6z"/>

+		<path fill="#FFFF53" d="M11.415,18.6c0-6.978,5.641-12.664,12.664-12.664c6.978,0,12.665,5.641,12.665,12.664

+			c0,6.978-5.641,12.664-12.665,12.664C17.102,31.264,11.415,25.623,11.415,18.6z"/>

+		<path fill="#FFFF54" d="M11.437,18.6c0-6.967,5.631-12.643,12.643-12.643c6.967,0,12.645,5.631,12.645,12.643

+			c0,6.966-5.633,12.643-12.645,12.643C17.113,31.243,11.437,25.611,11.437,18.6z"/>

+		<path fill="#FFFF55" d="M11.459,18.6c0-6.956,5.622-12.623,12.622-12.623c6.956,0,12.622,5.623,12.622,12.623

+			c0,6.957-5.621,12.623-12.622,12.623C17.125,31.223,11.459,25.6,11.459,18.6z"/>

+		<path fill="#FFFF56" d="M11.48,18.6c0-6.944,5.613-12.602,12.602-12.602c6.945,0,12.602,5.613,12.602,12.602

+			c0,6.944-5.613,12.601-12.602,12.601C17.137,31.201,11.48,25.588,11.48,18.6z"/>

+		<path fill="#FFFF57" d="M11.502,18.6c0-6.934,5.604-12.581,12.581-12.581c6.933,0,12.581,5.604,12.581,12.581

+			c0,6.933-5.604,12.582-12.581,12.582C17.149,31.182,11.502,25.576,11.502,18.6z"/>

+		<path fill="#FFFF58" d="M11.523,18.6c0-6.922,5.595-12.56,12.56-12.56c6.923,0,12.56,5.595,12.56,12.56

+			c0,6.921-5.594,12.559-12.56,12.559C17.16,31.159,11.523,25.564,11.523,18.6z"/>

+		<path fill="#FFFF59" d="M11.545,18.6c0-6.911,5.585-12.539,12.539-12.539c6.912,0,12.539,5.585,12.539,12.539

+			c0,6.911-5.586,12.539-12.539,12.539C17.172,31.139,11.545,25.553,11.545,18.6z"/>

+		<path fill="#FFFF5A" d="M11.566,18.6c0-6.9,5.577-12.518,12.518-12.518c6.9,0,12.518,5.576,12.518,12.518

+			c0,6.9-5.576,12.517-12.518,12.517C17.184,31.117,11.566,25.541,11.566,18.6z"/>

+		<path fill="#FFFF5B" d="M11.588,18.6c0-6.889,5.567-12.497,12.497-12.497c6.89,0,12.497,5.567,12.497,12.497

+			c0,6.889-5.566,12.498-12.497,12.498C17.195,31.098,11.588,25.529,11.588,18.6z"/>

+		<path fill="#FFFF5C" d="M11.609,18.6c0-6.878,5.558-12.476,12.476-12.476c6.878,0,12.476,5.559,12.476,12.476

+			c0,6.876-5.559,12.476-12.476,12.476C17.208,31.076,11.609,25.518,11.609,18.6z"/>

+		<path fill="#FFFF5D" d="M11.631,18.6c0-6.867,5.549-12.455,12.455-12.455c6.867,0,12.455,5.549,12.455,12.455

+			c0,6.867-5.549,12.455-12.455,12.455C17.219,31.055,11.631,25.506,11.631,18.6z"/>

+		<path fill="#FFFF5E" d="M11.652,18.6c0-6.855,5.54-12.434,12.434-12.434c6.855,0,12.434,5.54,12.434,12.434

+			c0,6.855-5.539,12.434-12.434,12.434C17.231,31.034,11.652,25.494,11.652,18.6z"/>

+		<path fill="#FFFF5F" d="M11.674,18.6c0-6.844,5.531-12.413,12.413-12.413c6.845,0,12.415,5.531,12.415,12.413

+			c0,6.843-5.531,12.414-12.415,12.414C17.243,31.014,11.674,25.482,11.674,18.6z"/>

+		<path fill="#FFFF60" d="M11.695,18.6c0-6.833,5.521-12.392,12.393-12.392c6.834,0,12.393,5.521,12.393,12.392

+			c0,6.833-5.521,12.392-12.393,12.392C17.254,30.992,11.695,25.471,11.695,18.6z"/>

+		<path fill="#FFFF61" d="M11.717,18.6c0-6.822,5.513-12.371,12.372-12.371c6.823,0,12.372,5.512,12.372,12.371

+			c0,6.822-5.514,12.371-12.372,12.371C17.266,30.971,11.717,25.459,11.717,18.6z"/>

+		<path fill="#FFFF62" d="M11.739,18.6c0-6.811,5.503-12.351,12.35-12.351c6.812,0,12.351,5.503,12.351,12.351

+			c0,6.811-5.504,12.35-12.351,12.35C17.278,30.95,11.739,25.447,11.739,18.6z"/>

+		<path fill="#FFFF63" d="M11.76,18.6c0-6.8,5.494-12.33,12.33-12.33c6.799,0,12.33,5.494,12.33,12.33

+			c0,6.798-5.494,12.33-12.33,12.33C17.29,30.93,11.76,25.436,11.76,18.6z"/>

+		<path fill="#FFFF64" d="M11.782,18.6c0-6.789,5.485-12.309,12.309-12.309c6.79,0,12.31,5.485,12.31,12.309

+			c0,6.789-5.484,12.308-12.31,12.308C17.301,30.908,11.782,25.423,11.782,18.6z"/>

+		<path fill="#FFFF65" d="M11.803,18.6c0-6.778,5.476-12.288,12.288-12.288c6.778,0,12.288,5.476,12.288,12.288

+			c0,6.778-5.477,12.289-12.288,12.289C17.313,30.889,11.803,25.411,11.803,18.6z"/>

+		<path fill="#FFFF66" d="M11.825,18.6c0-6.767,5.467-12.267,12.267-12.267c6.768,0,12.268,5.466,12.268,12.267

+			c0,6.766-5.467,12.266-12.268,12.266C17.325,30.866,11.825,25.398,11.825,18.6z"/>

+		<path fill="#FFFF67" d="M11.847,18.6c0-6.756,5.457-12.246,12.246-12.246c6.757,0,12.247,5.458,12.247,12.246

+			c0,6.755-5.459,12.246-12.247,12.246C17.337,30.846,11.847,25.389,11.847,18.6z"/>

+		<path fill="#FFFF68" d="M11.868,18.6c0-6.745,5.449-12.225,12.225-12.225c6.745,0,12.226,5.448,12.226,12.225

+			c0,6.746-5.449,12.224-12.226,12.224C17.348,30.824,11.868,25.376,11.868,18.6z"/>

+		<path fill="#FFFF69" d="M11.89,18.6c0-6.733,5.439-12.204,12.204-12.204c6.732,0,12.205,5.439,12.205,12.204

+			c0,6.733-5.439,12.205-12.205,12.205C17.36,30.805,11.89,25.364,11.89,18.6z"/>

+		<path fill="#FFFF6A" d="M11.911,18.6c0-6.723,5.43-12.183,12.183-12.183c6.723,0,12.184,5.43,12.184,12.183

+			c0,6.722-5.43,12.183-12.184,12.183C17.372,30.783,11.911,25.354,11.911,18.6z"/>

+		<path fill="#FFFF6B" d="M11.933,18.6c0-6.711,5.421-12.162,12.162-12.162c6.712,0,12.163,5.421,12.163,12.162

+			c0,6.71-5.422,12.162-12.163,12.162C17.384,30.762,11.933,25.341,11.933,18.6z"/>

+		<path fill="#FFFF6C" d="M11.954,18.6c0-6.7,5.412-12.141,12.142-12.141c6.701,0,12.141,5.412,12.141,12.141

+			c0,6.7-5.412,12.141-12.141,12.141C17.396,30.741,11.954,25.329,11.954,18.6z"/>

+		<path fill="#FFFF6D" d="M11.976,18.6c0-6.689,5.402-12.121,12.12-12.121c6.688,0,12.121,5.403,12.121,12.121

+			c0,6.689-5.402,12.121-12.121,12.121C17.407,30.721,11.976,25.316,11.976,18.6z"/>

+		<path fill="#FFFF6E" d="M11.998,18.6c0-6.678,5.393-12.099,12.099-12.099c6.679,0,12.099,5.393,12.099,12.099

+			c0,6.677-5.393,12.099-12.099,12.099C17.419,30.699,11.998,25.307,11.998,18.6z"/>

+		<path fill="#FFFF6F" d="M12.019,18.6c0-6.667,5.384-12.079,12.079-12.079c6.667,0,12.078,5.384,12.078,12.079

+			c0,6.667-5.383,12.078-12.078,12.078C17.431,30.678,12.019,25.294,12.019,18.6z"/>

+		<path fill="#FFFF70" d="M12.041,18.6c0-6.656,5.375-12.058,12.058-12.058c6.655,0,12.057,5.375,12.057,12.058

+			c0,6.655-5.375,12.057-12.057,12.057C17.442,30.657,12.041,25.282,12.041,18.6z"/>

+		<path fill="#FFFF71" d="M12.062,18.6c0-6.645,5.366-12.037,12.037-12.037c6.645,0,12.036,5.366,12.036,12.037

+			c0,6.644-5.365,12.037-12.036,12.037C17.454,30.637,12.062,25.271,12.062,18.6z"/>

+		<path fill="#FFFF72" d="M12.084,18.6c0-6.633,5.357-12.016,12.016-12.016c6.632,0,12.015,5.357,12.015,12.016

+			c0,6.632-5.355,12.015-12.015,12.015C17.466,30.615,12.084,25.259,12.084,18.6z"/>

+		<path fill="#FFFF73" d="M12.105,18.6c0-6.622,5.348-11.995,11.995-11.995c6.623,0,11.996,5.348,11.996,11.995

+			c0,6.623-5.35,11.996-11.996,11.996C17.478,30.596,12.105,25.247,12.105,18.6z"/>

+		<path fill="#FFFF74" d="M12.127,18.6c0-6.611,5.338-11.974,11.974-11.974c6.612,0,11.973,5.339,11.973,11.974

+			c0,6.611-5.338,11.973-11.973,11.973C17.49,30.573,12.127,25.234,12.127,18.6z"/>

+		<path fill="#FFFF75" d="M12.149,18.6c0-6.6,5.329-11.953,11.953-11.953c6.599,0,11.953,5.33,11.953,11.953

+			c0,6.6-5.328,11.953-11.953,11.953C17.502,30.553,12.149,25.225,12.149,18.6z"/>

+		<path fill="#FFFF76" d="M12.17,18.6c0-6.589,5.32-11.932,11.932-11.932c6.589,0,11.931,5.32,11.931,11.932

+			c0,6.587-5.318,11.932-11.931,11.932C17.513,30.532,12.17,25.212,12.17,18.6z"/>

+		<path fill="#FFFF77" d="M12.192,18.6c0-6.578,5.311-11.911,11.911-11.911c6.579,0,11.913,5.311,11.913,11.911

+			c0,6.578-5.312,11.911-11.913,11.911C17.525,30.511,12.192,25.2,12.192,18.6z"/>

+		<path fill="#FFFF78" d="M12.213,18.6c0-6.567,5.302-11.89,11.891-11.89c6.568,0,11.89,5.302,11.89,11.89

+			c0,6.567-5.303,11.89-11.89,11.89C17.537,30.49,12.213,25.188,12.213,18.6z"/>

+		<path fill="#FFFF79" d="M12.235,18.6c0-6.556,5.292-11.87,11.869-11.87c6.556,0,11.869,5.293,11.869,11.87

+			c0,6.554-5.293,11.869-11.869,11.869C17.548,30.469,12.235,25.176,12.235,18.6z"/>

+		<path fill="#FFFF7A" d="M12.256,18.6c0-6.544,5.284-11.849,11.848-11.849c6.544,0,11.847,5.284,11.847,11.849

+			c0,6.544-5.281,11.848-11.847,11.848C17.56,30.448,12.256,25.164,12.256,18.6z"/>

+		<path fill="#FFFF7B" d="M12.278,18.6c0-6.533,5.274-11.828,11.828-11.828c6.533,0,11.828,5.274,11.828,11.828

+			c0,6.533-5.275,11.828-11.828,11.828C17.572,30.428,12.278,25.152,12.278,18.6z"/>

+		<path fill="#FFFF7C" d="M12.299,18.6c0-6.522,5.266-11.807,11.807-11.807c6.523,0,11.808,5.265,11.808,11.807

+			c0,6.522-5.268,11.806-11.808,11.806C17.584,30.406,12.299,25.141,12.299,18.6z"/>

+		<path fill="#FFFF7D" d="M12.321,18.6c0-6.511,5.256-11.786,11.786-11.786c6.51,0,11.786,5.256,11.786,11.786

+			c0,6.511-5.256,11.786-11.786,11.786C17.595,30.386,12.321,25.129,12.321,18.6z"/>

+		<path fill="#FFFF7E" d="M12.342,18.6c0-6.5,5.247-11.765,11.765-11.765c6.5,0,11.764,5.247,11.764,11.765

+			c0,6.5-5.246,11.764-11.764,11.764C17.608,30.364,12.342,25.117,12.342,18.6z"/>

+		<path fill="#FFFF7F" d="M12.364,18.6c0-6.489,5.238-11.744,11.744-11.744c6.49,0,11.744,5.238,11.744,11.744

+			c0,6.489-5.238,11.744-11.744,11.744C17.619,30.344,12.364,25.105,12.364,18.6z"/>

+		<path fill="#FFFF80" d="M12.386,18.6c0-6.478,5.229-11.723,11.723-11.723c6.479,0,11.723,5.229,11.723,11.723

+			c0,6.477-5.229,11.722-11.723,11.722C17.631,30.322,12.386,25.094,12.386,18.6z"/>

+		<path fill="#FFFF81" d="M12.407,18.6c0-6.467,5.22-11.702,11.702-11.702c6.465,0,11.702,5.22,11.702,11.702

+			c0,6.466-5.219,11.702-11.702,11.702C17.643,30.302,12.407,25.082,12.407,18.6z"/>

+		<path fill="#FFFF82" d="M12.429,18.6c0-6.456,5.21-11.681,11.681-11.681c6.455,0,11.681,5.21,11.681,11.681

+			c0,6.457-5.209,11.681-11.681,11.681C17.654,30.281,12.429,25.07,12.429,18.6z"/>

+		<path fill="#FFFF83" d="M12.45,18.6c0-6.444,5.202-11.66,11.661-11.66c6.444,0,11.661,5.201,11.661,11.66

+			c0,6.444-5.203,11.66-11.661,11.66C17.666,30.26,12.45,25.059,12.45,18.6z"/>

+		<path fill="#FFFF84" d="M12.472,18.6c0-6.434,5.192-11.639,11.639-11.639c6.434,0,11.639,5.192,11.639,11.639

+			c0,6.433-5.191,11.639-11.639,11.639C17.678,30.239,12.472,25.047,12.472,18.6z"/>

+		<path fill="#FFFF85" d="M12.493,18.6c0-6.422,5.183-11.619,11.619-11.619c6.421,0,11.619,5.183,11.619,11.619

+			c0,6.421-5.184,11.618-11.619,11.618C17.69,30.218,12.493,25.035,12.493,18.6z"/>

+		<path fill="#FFFF86" d="M12.515,18.6c0-6.411,5.174-11.598,11.598-11.598c6.411,0,11.598,5.174,11.598,11.598

+			c0,6.411-5.174,11.597-11.598,11.597C17.701,30.197,12.515,25.023,12.515,18.6z"/>

+		<path fill="#FFFF87" d="M12.537,18.6c0-6.4,5.165-11.577,11.577-11.577c6.4,0,11.578,5.165,11.578,11.577

+			c0,6.4-5.166,11.577-11.578,11.577C17.713,30.177,12.537,25.012,12.537,18.6z"/>

+		<path fill="#FFFF88" d="M12.558,18.6c0-6.389,5.156-11.556,11.556-11.556c6.39,0,11.556,5.155,11.556,11.556

+			c0,6.388-5.156,11.554-11.556,11.554C17.725,30.154,12.558,25,12.558,18.6z"/>

+		<path fill="#FFFF89" d="M12.58,18.6c0-6.378,5.146-11.535,11.535-11.535c6.377,0,11.534,5.146,11.534,11.535

+			c0,6.376-5.145,11.535-11.534,11.535C17.737,30.135,12.58,24.988,12.58,18.6z"/>

+		<path fill="#FFFF8A" d="M12.601,18.6c0-6.367,5.138-11.514,11.514-11.514c6.368,0,11.514,5.137,11.514,11.514

+			c0,6.367-5.139,11.513-11.514,11.513C17.749,30.113,12.601,24.977,12.601,18.6z"/>

+		<path fill="#FFFF8B" d="M12.623,18.6c0-6.356,5.128-11.493,11.493-11.493c6.355,0,11.494,5.128,11.494,11.493

+			c0,6.355-5.129,11.493-11.494,11.493C17.76,30.093,12.623,24.965,12.623,18.6z"/>

+		<path fill="#FFFF8C" d="M12.645,18.6c0-6.345,5.119-11.472,11.472-11.472c6.344,0,11.473,5.119,11.473,11.472

+			c0,6.343-5.119,11.47-11.473,11.47C17.772,30.07,12.645,24.953,12.645,18.6z"/>

+		<path fill="#FFFF8D" d="M12.666,18.6c0-6.333,5.11-11.451,11.451-11.451c6.333,0,11.452,5.11,11.452,11.451

+			c0,6.333-5.109,11.451-11.452,11.451C17.784,30.051,12.666,24.941,12.666,18.6z"/>

+		<path fill="#FFFF8E" d="M12.688,18.6c0-6.322,5.101-11.43,11.43-11.43c6.322,0,11.431,5.101,11.431,11.43

+			c0,6.322-5.102,11.429-11.431,11.429C17.796,30.029,12.688,24.93,12.688,18.6z"/>

+		<path fill="#FFFF8F" d="M12.709,18.6c0-6.312,5.092-11.409,11.41-11.409c6.311,0,11.409,5.091,11.409,11.409

+			c0,6.311-5.092,11.409-11.409,11.409C17.807,30.009,12.709,24.917,12.709,18.6z"/>

+		<path fill="#FFFF90" d="M12.731,18.6c0-6.3,5.083-11.388,11.389-11.388c6.3,0,11.388,5.082,11.388,11.388

+			c0,6.298-5.082,11.388-11.388,11.388C17.819,29.988,12.731,24.904,12.731,18.6z"/>

+		<path fill="#FFFF91" d="M12.753,18.6c0-6.289,5.073-11.368,11.367-11.368c6.288,0,11.366,5.073,11.366,11.368

+			c0,6.289-5.072,11.367-11.366,11.367C17.831,29.967,12.753,24.895,12.753,18.6z"/>

+		<path fill="#FFFF92" d="M12.774,18.6c0-6.278,5.064-11.347,11.347-11.347c6.277,0,11.346,5.064,11.346,11.347

+			c0,6.278-5.062,11.345-11.346,11.345C17.842,29.945,12.774,24.882,12.774,18.6z"/>

+		<path fill="#FFFF93" d="M12.796,18.6c0-6.267,5.055-11.326,11.326-11.326c6.267,0,11.325,5.055,11.325,11.326

+			c0,6.266-5.055,11.326-11.325,11.326C17.854,29.926,12.796,24.87,12.796,18.6z"/>

+		<path fill="#FFFF94" d="M12.817,18.6c0-6.256,5.046-11.305,11.305-11.305c6.257,0,11.306,5.046,11.306,11.305

+			c0,6.255-5.047,11.304-11.306,11.304C17.866,29.904,12.817,24.857,12.817,18.6z"/>

+		<path fill="#FFFF95" d="M12.838,18.6c0-6.245,5.037-11.284,11.284-11.284c6.243,0,11.282,5.037,11.282,11.284

+			c0,6.246-5.035,11.284-11.282,11.284C17.878,29.884,12.838,24.848,12.838,18.6z"/>

+		<path fill="#FFFF96" d="M12.86,18.6c0-6.233,5.028-11.263,11.263-11.263c6.232,0,11.262,5.028,11.262,11.263

+			c0,6.233-5.027,11.261-11.262,11.261C17.89,29.861,12.86,24.835,12.86,18.6z"/>

+		<path fill="#FFFF97" d="M12.882,18.6c0-6.223,5.018-11.242,11.242-11.242c6.222,0,11.241,5.019,11.241,11.242

+			c0,6.222-5.018,11.242-11.241,11.242C17.901,29.842,12.882,24.823,12.882,18.6z"/>

+		<path fill="#FFFF98" d="M12.903,18.6c0-6.211,5.009-11.221,11.221-11.221S35.346,12.388,35.346,18.6

+			c0,6.21-5.01,11.22-11.222,11.22C17.913,29.82,12.903,24.812,12.903,18.6z"/>

+		<path fill="#FFFF99" d="M12.925,18.6c0-6.2,5-11.2,11.2-11.2c6.199,0,11.199,5,11.199,11.2c0,6.2-5,11.2-11.199,11.2

+			C17.925,29.8,12.925,24.8,12.925,18.6z"/>

+	</g>

+	

+		<linearGradient id="XMLID_67_" gradientUnits="userSpaceOnUse" x1="396.2324" y1="753.8262" x2="396.2324" y2="763.584" gradientTransform="matrix(1 0 0 1 -372 -747)">

+		<stop  offset="0" style="stop-color:#FFFFFF"/>

+		<stop  offset="1" style="stop-color:#FFFF99"/>

+	</linearGradient>

+	<path fill="url(#XMLID_67_)" d="M15.358,11.705c0-2.701,3.961-4.879,8.875-4.879c4.912,0,8.875,2.178,8.875,4.879

+		s-3.963,4.879-8.875,4.879C19.32,16.583,15.358,14.405,15.358,11.705z"/>

+	<path fill="#666666" d="M23.125,41.3v0.9c0,0.899,0.7,1.6,1.6,1.6c0.9,0,1.6-0.7,1.6-1.6v-0.9h-3.299H23.125z"/>

+	

+		<linearGradient id="XMLID_68_" gradientUnits="userSpaceOnUse" x1="396.625" y1="784.8896" x2="396.625" y2="788.9111" gradientTransform="matrix(1 0 0 1 -372 -747)">

+		<stop  offset="0" style="stop-color:#FFFFFF"/>

+		<stop  offset="1" style="stop-color:#000000"/>

+	</linearGradient>

+	<path fill="url(#XMLID_68_)" d="M28.225,37.9l-7.6,0.8c-0.9,0.1-1.5,0.899-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.801

+		c0.9-0.102,1.5-0.899,1.4-1.802C29.926,38.4,29.125,37.8,28.225,37.9z"/>

+	

+		<linearGradient id="XMLID_69_" gradientUnits="userSpaceOnUse" x1="396.625" y1="781.6895" x2="396.625" y2="785.7109" gradientTransform="matrix(1 0 0 1 -372 -747)">

+		<stop  offset="0" style="stop-color:#FFFFFF"/>

+		<stop  offset="1" style="stop-color:#000000"/>

+	</linearGradient>

+	<path fill="url(#XMLID_69_)" d="M28.225,34.7l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8

+		c0.9-0.101,1.5-0.9,1.4-1.801C29.926,35.2,29.125,34.6,28.225,34.7z"/>

+	

+		<linearGradient id="XMLID_70_" gradientUnits="userSpaceOnUse" x1="396.625" y1="778.5889" x2="396.625" y2="782.6104" gradientTransform="matrix(1 0 0 1 -372 -747)">

+		<stop  offset="0" style="stop-color:#FFFFFF"/>

+		<stop  offset="1" style="stop-color:#000000"/>

+	</linearGradient>

+	<path fill="url(#XMLID_70_)" d="M28.225,31.6l-7.6,0.801c-0.9,0.1-1.5,0.897-1.4,1.8c0.1,0.899,0.9,1.5,1.8,1.399l7.6-0.802

+		c0.9-0.1,1.5-0.897,1.4-1.8S29.125,31.5,28.225,31.6z"/>

+	<path fill="none" stroke="#000000" stroke-width="1.0944" d="M22.325,28.3l-3.5-10.7c0,0,6.601,3.9,10.5,0"/>

+</g>

+<g id="crop_x0020_marks">

+	<path fill="none" d="M47.975,48h-48V0h48V48z"/>

+</g>

+</svg>

diff --git a/applications/content/template/docbook/images/colorsvg/up.svg b/applications/content/template/docbook/images/colorsvg/up.svg
new file mode 100644
index 0000000..8eca45f
--- /dev/null
+++ b/applications/content/template/docbook/images/colorsvg/up.svg
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [

+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">

+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">

+]>

+<svg  version="1.1" id="Up" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="48" height="48" viewBox="0 0 48 48"

+	 overflow="visible" enable-background="new 0 0 48 48" xml:space="preserve">

+<g>

+	<path fill="#FFFFFF" stroke="#FFFFFF" stroke-width="7.5901" stroke-linejoin="round" d="M41.104,25.661

+		c0.301,0,0.301-0.3,0.198-0.5l-16.899-16.6c-0.5-0.5-0.7-0.4-1,0l-16.7,16.6c-0.1,0.103-0.1,0.399,0.1,0.399h10v13.601

+		c0,0.301,0.2,0.5,0.4,0.5h13.299c0.398,0,0.5-0.199,0.5-0.601v-13.5L41.104,25.661z"/>

+	<g>

+		<path fill="#0033CC" d="M41.104,25.661c0.301,0,0.301-0.3,0.198-0.5l-16.899-16.6c-0.5-0.5-0.7-0.4-1,0l-16.7,16.6

+			c-0.1,0.103-0.1,0.399,0.1,0.399h10v13.601c0,0.301,0.2,0.5,0.4,0.5h13.299c0.398,0,0.5-0.199,0.5-0.601v-13.5L41.104,25.661z"/>

+		<path fill="#0134CC" d="M41.075,25.65c0.3,0,0.3-0.299,0.198-0.498L24.402,8.577c-0.499-0.499-0.699-0.4-0.998,0L6.73,25.152

+			c-0.1,0.101-0.1,0.397,0.099,0.397h9.984v13.581c0,0.303,0.2,0.499,0.4,0.499h13.279c0.398,0,0.499-0.196,0.499-0.601V25.55

+			L41.075,25.65z"/>

+		<path fill="#0235CD" d="M41.049,25.643c0.301,0,0.301-0.3,0.199-0.498L24.401,8.591c-0.498-0.498-0.697-0.399-0.996,0

+			L6.757,25.145c-0.1,0.101-0.1,0.397,0.099,0.397h9.969v13.562c0,0.301,0.199,0.5,0.399,0.5H30.48c0.397,0,0.498-0.199,0.498-0.601

+			V25.542L41.049,25.643z"/>

+		<path fill="#0336CD" d="M41.021,25.632c0.299,0,0.299-0.299,0.199-0.498L24.4,8.604c-0.498-0.498-0.696-0.399-0.995,0

+			L6.783,25.134c-0.099,0.101-0.099,0.398,0.099,0.398h9.953v13.543c0,0.299,0.199,0.495,0.398,0.495h13.24

+			c0.396,0,0.495-0.196,0.495-0.596v-13.44L41.021,25.632z"/>

+		<path fill="#0437CE" d="M40.995,25.622c0.299,0,0.299-0.299,0.198-0.496L24.4,8.62c-0.497-0.497-0.696-0.398-0.994,0L6.811,25.126

+			c-0.099,0.101-0.099,0.396,0.099,0.396h9.938v13.523c0,0.299,0.199,0.496,0.397,0.496h13.217c0.396,0,0.496-0.197,0.496-0.598

+			v-13.42L40.995,25.622z"/>

+		<path fill="#0538CE" d="M40.969,25.614c0.299,0,0.299-0.3,0.198-0.498L24.399,8.634c-0.496-0.496-0.694-0.397-0.992,0

+			L6.837,25.116c-0.099,0.102-0.099,0.397,0.099,0.397h9.922v13.504c0,0.299,0.199,0.496,0.398,0.496h13.195

+			c0.396,0,0.494-0.197,0.494-0.597V25.514L40.969,25.614z"/>

+		<path fill="#0639CF" d="M40.941,25.604c0.297,0,0.297-0.297,0.197-0.496L24.399,8.649c-0.496-0.496-0.693-0.397-0.99,0

+			L6.864,25.107c-0.099,0.101-0.099,0.396,0.099,0.396h9.906v13.483c0,0.3,0.199,0.496,0.397,0.496h13.173

+			c0.396,0,0.496-0.196,0.496-0.596V25.505L40.941,25.604z"/>

+		<path fill="#073ACF" d="M40.915,25.594c0.298,0,0.298-0.298,0.196-0.494L24.398,8.664c-0.495-0.495-0.692-0.397-0.989,0

+			L6.891,25.1c-0.099,0.101-0.099,0.396,0.098,0.396h9.892V38.96c0,0.298,0.198,0.494,0.396,0.494h13.155

+			c0.396,0,0.494-0.196,0.494-0.593V25.495L40.915,25.594z"/>

+		<path fill="#083BD0" d="M40.891,25.585c0.297,0,0.297-0.297,0.196-0.496l-16.69-16.41c-0.494-0.494-0.691-0.396-0.987,0

+			L6.918,25.089c-0.099,0.101-0.099,0.396,0.098,0.396h9.875V38.93c0,0.299,0.198,0.495,0.396,0.495h13.134

+			c0.396,0,0.494-0.196,0.494-0.595V25.486L40.891,25.585z"/>

+		<path fill="#093CD0" d="M40.859,25.575c0.3,0,0.3-0.296,0.199-0.494L24.397,8.692c-0.493-0.494-0.69-0.396-0.985,0L6.945,25.081

+			c-0.098,0.101-0.098,0.396,0.098,0.396h9.86v13.428c0,0.298,0.197,0.494,0.395,0.494h13.113c0.396,0,0.491-0.196,0.491-0.594

+			V25.477L40.859,25.575z"/>

+		<path fill="#0A3DD1" d="M40.835,25.564c0.296,0,0.296-0.295,0.197-0.491L24.396,8.707c-0.492-0.493-0.689-0.395-0.984,0

+			L6.972,25.073c-0.098,0.098-0.098,0.395,0.098,0.395h9.844v13.408c0,0.295,0.197,0.492,0.394,0.492h13.09

+			c0.396,0,0.492-0.197,0.492-0.593V25.465L40.835,25.564z"/>

+		<path fill="#0B3ED1" d="M40.811,25.557c0.295,0,0.295-0.296,0.195-0.492L24.396,8.723c-0.492-0.493-0.688-0.394-0.983,0

+			L6.999,25.062c-0.098,0.101-0.098,0.396,0.098,0.396h9.829v13.388c0,0.297,0.197,0.491,0.394,0.491h13.073

+			c0.395,0,0.489-0.194,0.489-0.59V25.458L40.811,25.557z"/>

+		<path fill="#0C3FD2" d="M40.782,25.546c0.295,0,0.295-0.295,0.194-0.491L24.395,8.736c-0.491-0.492-0.687-0.394-0.981,0

+			L7.026,25.055c-0.098,0.1-0.098,0.396,0.098,0.396h9.813v13.368c0,0.296,0.197,0.49,0.393,0.49h13.051

+			c0.395,0,0.49-0.194,0.49-0.588V25.448L40.782,25.546z"/>

+		<path fill="#0D40D2" d="M40.755,25.536c0.295,0,0.295-0.293,0.196-0.49L24.394,8.75c-0.489-0.491-0.685-0.393-0.979,0

+			L7.053,25.046c-0.098,0.099-0.098,0.394,0.098,0.394h9.797V38.79c0,0.297,0.196,0.492,0.392,0.492h13.03

+			c0.394,0,0.489-0.195,0.489-0.591V25.438L40.755,25.536z"/>

+		<path fill="#0E41D3" d="M40.729,25.527c0.293,0,0.293-0.295,0.195-0.489L24.394,8.766c-0.489-0.489-0.685-0.392-0.978,0

+			L7.08,25.038c-0.097,0.099-0.097,0.394,0.098,0.394h9.782V38.76c0,0.295,0.196,0.489,0.392,0.489h13.007

+			c0.394,0,0.488-0.194,0.488-0.588V25.43L40.729,25.527z"/>

+		<path fill="#0F42D3" d="M40.702,25.518c0.294,0,0.294-0.293,0.194-0.488L24.393,8.781c-0.488-0.489-0.683-0.392-0.976,0

+			L7.107,25.027c-0.097,0.101-0.097,0.394,0.098,0.394h9.766v13.312c0,0.295,0.195,0.49,0.391,0.49h12.99

+			c0.393,0,0.487-0.195,0.487-0.588V25.419L40.702,25.518z"/>

+		<path fill="#1043D4" d="M40.676,25.508c0.293,0,0.293-0.294,0.195-0.488L24.392,8.794c-0.487-0.488-0.682-0.392-0.975,0

+			L7.134,25.02c-0.097,0.101-0.097,0.394,0.097,0.394h9.75v13.293c0,0.293,0.196,0.485,0.391,0.485H30.34

+			c0.393,0,0.487-0.192,0.487-0.586V25.411L40.676,25.508z"/>

+		<path fill="#1144D4" d="M40.646,25.497c0.293,0,0.293-0.293,0.194-0.487l-16.45-16.2c-0.487-0.488-0.681-0.391-0.973,0L7.16,25.01

+			C7.063,25.107,7.063,25.4,7.257,25.4h9.735v13.271c0,0.294,0.195,0.487,0.39,0.487H30.33c0.389,0,0.484-0.193,0.484-0.586V25.4

+			L40.646,25.497z"/>

+		<path fill="#1245D5" d="M40.622,25.489c0.293,0,0.293-0.294,0.194-0.488L24.391,8.824c-0.486-0.487-0.68-0.39-0.972,0

+			L7.188,25.001c-0.097,0.099-0.097,0.392,0.096,0.392h9.72v13.254c0,0.293,0.195,0.486,0.389,0.486h12.925

+			c0.391,0,0.486-0.193,0.486-0.585V25.393L40.622,25.489z"/>

+		<path fill="#1346D5" d="M40.598,25.479c0.291,0,0.291-0.291,0.192-0.484L24.391,8.838c-0.485-0.486-0.679-0.39-0.97,0

+			L7.215,24.993c-0.097,0.099-0.097,0.39,0.096,0.39h9.704v13.235c0,0.291,0.195,0.485,0.389,0.485h12.907

+			c0.391,0,0.484-0.194,0.484-0.584V25.382L40.598,25.479z"/>

+		<path fill="#1447D6" d="M40.568,25.471c0.291,0,0.291-0.293,0.193-0.486L24.39,8.853c-0.484-0.485-0.678-0.389-0.968,0

+			L7.242,24.982c-0.097,0.1-0.097,0.391,0.096,0.391h9.688v13.215c0,0.293,0.194,0.486,0.388,0.486H30.3

+			c0.39,0,0.484-0.193,0.484-0.582v-13.12L40.568,25.471z"/>

+		<path fill="#1548D6" d="M40.542,25.46c0.291,0,0.291-0.291,0.192-0.485L24.389,8.868c-0.483-0.485-0.677-0.388-0.966,0

+			L7.269,24.975c-0.097,0.101-0.097,0.392,0.096,0.392h9.673v13.194c0,0.291,0.193,0.483,0.387,0.483h12.864

+			c0.387,0,0.482-0.192,0.482-0.582V25.361L40.542,25.46z"/>

+		<path fill="#1649D7" d="M40.518,25.45c0.291,0,0.291-0.291,0.191-0.483L24.389,8.881c-0.483-0.484-0.676-0.388-0.966,0

+			L7.295,24.966c-0.096,0.099-0.096,0.388,0.096,0.388h9.657v13.181c0,0.291,0.193,0.481,0.387,0.481h12.842

+			c0.388,0,0.48-0.19,0.48-0.582v-13.08L40.518,25.45z"/>

+		<path fill="#174AD7" d="M40.488,25.441c0.289,0,0.289-0.291,0.193-0.483L24.388,8.896c-0.482-0.483-0.675-0.388-0.964,0

+			L7.323,24.956c-0.096,0.099-0.096,0.39,0.096,0.39h9.642v13.155c0,0.291,0.193,0.483,0.386,0.483h12.825

+			c0.386,0,0.479-0.192,0.479-0.58V25.346L40.488,25.441z"/>

+		<path fill="#184BD8" d="M40.463,25.432c0.289,0,0.289-0.289,0.191-0.481L24.387,8.912c-0.481-0.482-0.673-0.387-0.962,0

+			L7.349,24.948c-0.096,0.098-0.096,0.387,0.096,0.387h9.626v13.14c0,0.291,0.193,0.483,0.386,0.483h12.802

+			c0.388,0,0.479-0.192,0.479-0.58V25.335L40.463,25.432z"/>

+		<path fill="#194CD8" d="M40.438,25.421c0.289,0,0.289-0.289,0.19-0.481L24.386,8.926c-0.48-0.481-0.672-0.386-0.96,0L7.376,24.938

+			c-0.096,0.1-0.096,0.389,0.096,0.389h9.61v13.117c0,0.291,0.192,0.482,0.385,0.482h12.782c0.385,0,0.479-0.191,0.479-0.578V25.325

+			L40.438,25.421z"/>

+		<path fill="#1A4DD9" d="M40.409,25.413c0.289,0,0.289-0.289,0.19-0.481L24.386,8.939c-0.48-0.481-0.671-0.385-0.959,0

+			L7.403,24.932c-0.096,0.096-0.096,0.385,0.096,0.385h9.595v13.103c0,0.289,0.192,0.479,0.384,0.479h12.76

+			c0.385,0,0.479-0.19,0.479-0.578V25.316L40.409,25.413z"/>

+		<path fill="#1B4ED9" d="M40.383,25.402c0.288,0,0.288-0.288,0.191-0.479L24.386,8.956c-0.479-0.481-0.67-0.385-0.958,0

+			L7.43,24.921c-0.095,0.099-0.095,0.386,0.096,0.386h9.579v13.082c0,0.288,0.192,0.479,0.384,0.479H30.23

+			c0.383,0,0.479-0.191,0.479-0.576V25.307L40.383,25.402z"/>

+		<path fill="#1C4FDA" d="M40.355,25.395c0.287,0,0.287-0.289,0.188-0.479L24.385,8.97c-0.479-0.48-0.669-0.384-0.956,0

+			L7.457,24.913c-0.096,0.097-0.096,0.385,0.095,0.385h9.563v13.062c0,0.289,0.192,0.479,0.383,0.479h12.72

+			c0.384,0,0.479-0.19,0.479-0.575V25.296L40.355,25.395z"/>

+		<path fill="#1D50DA" d="M40.329,25.383c0.287,0,0.287-0.287,0.19-0.479L24.384,8.983c-0.478-0.479-0.668-0.384-0.955,0

+			L7.484,24.902c-0.095,0.099-0.095,0.386,0.095,0.386h9.548v13.043c0,0.287,0.191,0.479,0.382,0.479h12.699

+			c0.383,0,0.478-0.191,0.478-0.576V25.288L40.329,25.383z"/>

+		<path fill="#1E51DB" d="M40.303,25.374c0.286,0,0.286-0.287,0.19-0.479L24.384,8.999c-0.477-0.479-0.667-0.383-0.953,0

+			L7.511,24.895c-0.095,0.099-0.095,0.385,0.094,0.385h9.533v13.022c0,0.287,0.191,0.479,0.382,0.479h12.678

+			c0.382,0,0.477-0.189,0.477-0.574v-12.93L40.303,25.374z"/>

+		<path fill="#1F52DB" d="M40.275,25.364c0.285,0,0.285-0.287,0.188-0.479L24.383,9.014c-0.476-0.478-0.666-0.383-0.951,0

+			L7.539,24.886c-0.095,0.097-0.095,0.384,0.094,0.384h9.517v13.004c0,0.287,0.191,0.479,0.381,0.479h12.658

+			c0.381,0,0.476-0.19,0.476-0.573V25.27L40.275,25.364z"/>

+		<path fill="#2053DC" d="M40.25,25.354c0.285,0,0.285-0.285,0.188-0.479L24.382,9.027c-0.475-0.477-0.665-0.382-0.95,0

+			L7.565,24.876c-0.095,0.097-0.095,0.383,0.094,0.383h9.501v12.984c0,0.286,0.19,0.479,0.381,0.479h12.637

+			c0.381,0,0.477-0.189,0.477-0.572V25.259L40.25,25.354z"/>

+		<path fill="#2154DC" d="M40.225,25.346c0.283,0,0.283-0.287,0.188-0.478L24.381,9.042c-0.474-0.476-0.664-0.381-0.948,0

+			L7.591,24.868c-0.094,0.096-0.094,0.383,0.095,0.383h9.486v12.965c0,0.287,0.19,0.478,0.38,0.478h12.616

+			c0.38,0,0.475-0.188,0.475-0.569V25.249L40.225,25.346z"/>

+		<path fill="#2255DD" d="M40.195,25.335c0.285,0,0.285-0.285,0.188-0.478L24.38,9.057c-0.474-0.475-0.663-0.381-0.947,0

+			L7.619,24.859c-0.094,0.097-0.094,0.382,0.094,0.382h9.471v12.946c0,0.285,0.189,0.476,0.379,0.476h12.596

+			c0.378,0,0.473-0.188,0.473-0.57V25.241L40.195,25.335z"/>

+		<path fill="#2356DD" d="M40.17,25.327c0.284,0,0.284-0.285,0.188-0.478L24.381,9.072c-0.473-0.475-0.662-0.38-0.945,0

+			l-15.79,15.78c-0.094,0.097-0.094,0.381,0.094,0.381h9.455V38.16c0,0.285,0.189,0.476,0.379,0.476h12.574

+			c0.377,0,0.473-0.188,0.473-0.569V25.23L40.17,25.327z"/>

+		<path fill="#2457DE" d="M40.145,25.316c0.282,0,0.282-0.284,0.188-0.478L24.38,9.085c-0.472-0.474-0.661-0.38-0.944,0

+			L7.673,24.841c-0.095,0.097-0.095,0.382,0.094,0.382h9.439V38.13c0,0.285,0.189,0.476,0.378,0.476h12.555

+			c0.379,0,0.473-0.188,0.473-0.569V25.223L40.145,25.316z"/>

+		<path fill="#2558DE" d="M40.116,25.307c0.282,0,0.282-0.285,0.188-0.476L24.379,9.101c-0.472-0.474-0.66-0.379-0.942,0

+			L7.699,24.831c-0.094,0.097-0.094,0.381,0.094,0.381h9.424v12.89c0,0.284,0.189,0.476,0.377,0.476h12.533

+			c0.378,0,0.473-0.188,0.473-0.568V25.212L40.116,25.307z"/>

+		<path fill="#2659DF" d="M40.09,25.298c0.283,0,0.283-0.284,0.188-0.475L24.379,9.116c-0.471-0.473-0.659-0.379-0.94,0

+			L7.727,24.823c-0.094,0.096-0.094,0.381,0.094,0.381h9.408v12.869c0,0.282,0.189,0.473,0.377,0.473h12.512

+			c0.376,0,0.47-0.188,0.47-0.567V25.204L40.09,25.298z"/>

+		<path fill="#275ADF" d="M40.062,25.288c0.28,0,0.28-0.283,0.188-0.474L24.378,9.13c-0.47-0.472-0.657-0.378-0.938,0L7.754,24.814

+			c-0.094,0.097-0.094,0.379,0.093,0.379h9.393v12.851c0,0.285,0.188,0.474,0.376,0.474h12.489c0.377,0,0.472-0.188,0.472-0.565

+			V25.193L40.062,25.288z"/>

+		<path fill="#285BE0" d="M40.037,25.277c0.279,0,0.279-0.282,0.188-0.471L24.377,9.145c-0.469-0.471-0.656-0.378-0.937,0

+			L7.781,24.807c-0.094,0.096-0.094,0.377,0.093,0.377h9.377v12.832c0,0.283,0.188,0.474,0.376,0.474H30.1

+			c0.375,0,0.467-0.188,0.467-0.566V25.184L40.037,25.277z"/>

+		<path fill="#295CE0" d="M40.01,25.27c0.281,0,0.281-0.283,0.188-0.474L24.376,9.159c-0.468-0.47-0.655-0.377-0.936,0L7.807,24.796

+			c-0.093,0.097-0.093,0.378,0.093,0.378h9.361v12.812c0,0.281,0.188,0.471,0.375,0.471h12.45c0.374,0,0.467-0.188,0.467-0.562

+			V25.174L40.01,25.27z"/>

+		<path fill="#2A5DE1" d="M39.982,25.259c0.281,0,0.281-0.282,0.188-0.471L24.376,9.174c-0.467-0.469-0.654-0.376-0.934,0

+			L7.834,24.788c-0.093,0.096-0.093,0.377,0.093,0.377h9.346v12.793c0,0.283,0.188,0.472,0.375,0.472h12.43

+			c0.373,0,0.467-0.188,0.467-0.563v-12.7L39.982,25.259z"/>

+		<path fill="#2B5EE1" d="M39.957,25.249c0.279,0,0.279-0.281,0.188-0.472L24.376,9.188c-0.466-0.469-0.652-0.376-0.933,0

+			L7.861,24.779c-0.093,0.095-0.093,0.375,0.093,0.375h9.33V37.93c0,0.282,0.188,0.471,0.374,0.471h12.408

+			c0.373,0,0.467-0.188,0.467-0.563v-12.68L39.957,25.249z"/>

+		<path fill="#2C5FE2" d="M39.932,25.239c0.278,0,0.278-0.281,0.188-0.47L24.375,9.203c-0.465-0.468-0.652-0.375-0.931,0

+			L7.888,24.771c-0.093,0.096-0.093,0.375,0.092,0.375h9.314V37.9c0,0.281,0.187,0.47,0.374,0.47h12.389

+			c0.373,0,0.465-0.188,0.465-0.562V25.146L39.932,25.239z"/>

+		<path fill="#2D60E2" d="M39.902,25.229c0.279,0,0.279-0.277,0.187-0.468L24.374,9.217c-0.465-0.467-0.651-0.375-0.929,0

+			L7.915,24.762c-0.093,0.094-0.093,0.374,0.092,0.374h9.299V37.87c0,0.28,0.187,0.469,0.373,0.469h12.368

+			c0.371,0,0.465-0.188,0.465-0.562V25.136L39.902,25.229z"/>

+		<path fill="#2E61E3" d="M39.877,25.221c0.277,0,0.277-0.279,0.188-0.468L24.374,9.231c-0.464-0.466-0.649-0.374-0.928,0

+			L7.942,24.753c-0.092,0.095-0.092,0.373,0.092,0.373h9.284v12.717c0,0.281,0.186,0.47,0.372,0.47h12.347

+			c0.372,0,0.464-0.188,0.464-0.562V25.126L39.877,25.221z"/>

+		<path fill="#2F62E3" d="M39.852,25.212c0.277,0,0.277-0.28,0.188-0.469L24.373,9.248c-0.463-0.466-0.648-0.374-0.926,0

+			L7.969,24.745c-0.092,0.094-0.092,0.373,0.092,0.373h9.268v12.696c0,0.278,0.186,0.468,0.371,0.468h12.325

+			c0.371,0,0.463-0.188,0.463-0.562V25.118L39.852,25.212z"/>

+		<path fill="#3063E4" d="M39.823,25.202c0.276,0,0.276-0.279,0.186-0.468L24.372,9.262c-0.462-0.465-0.647-0.373-0.925,0

+			L7.996,24.734c-0.092,0.095-0.092,0.373,0.092,0.373h9.252v12.679c0,0.278,0.186,0.467,0.371,0.467h12.307

+			c0.369,0,0.461-0.188,0.461-0.562V25.107L39.823,25.202z"/>

+		<path fill="#3164E4" d="M39.797,25.191c0.277,0,0.277-0.278,0.186-0.467L24.373,9.274c-0.462-0.465-0.646-0.373-0.923,0

+			L8.023,24.727C7.931,24.82,7.931,25.1,8.115,25.1h9.236v12.657c0,0.279,0.186,0.466,0.371,0.466h12.284

+			c0.369,0,0.461-0.187,0.461-0.56V25.1L39.797,25.191z"/>

+		<path fill="#3265E5" d="M39.771,25.184c0.275,0,0.275-0.279,0.186-0.467L24.371,9.29c-0.461-0.464-0.645-0.372-0.922,0

+			L8.05,24.717c-0.092,0.094-0.092,0.372,0.091,0.372h9.221v12.64c0,0.279,0.185,0.465,0.37,0.465h12.264

+			c0.367,0,0.46-0.186,0.46-0.558V25.089L39.771,25.184z"/>

+		<path fill="#3366E5" d="M39.744,25.173c0.275,0,0.275-0.278,0.186-0.465L24.371,9.306c-0.46-0.463-0.644-0.372-0.92,0

+			L8.077,24.708c-0.092,0.094-0.092,0.371,0.091,0.371h9.206V37.7c0,0.276,0.185,0.463,0.369,0.463h12.241

+			c0.369,0,0.461-0.187,0.461-0.558V25.081L39.744,25.173z"/>

+		<path fill="#3366E6" d="M39.717,25.163c0.276,0,0.276-0.277,0.186-0.463L24.37,9.319c-0.459-0.462-0.643-0.371-0.918,0L8.104,24.7

+			c-0.092,0.094-0.092,0.37,0.091,0.37h9.189v12.601c0,0.279,0.185,0.465,0.369,0.465h12.224c0.366,0,0.459-0.186,0.459-0.557V25.07

+			L39.717,25.163z"/>

+		<path fill="#3467E6" d="M39.689,25.152c0.273,0,0.273-0.276,0.185-0.463L24.369,9.333c-0.458-0.462-0.642-0.371-0.917,0

+			L8.131,24.689c-0.092,0.095-0.092,0.371,0.091,0.371h9.174v12.582c0,0.274,0.184,0.463,0.368,0.463h12.202

+			c0.366,0,0.458-0.188,0.458-0.558V25.061L39.689,25.152z"/>

+		<path fill="#3568E7" d="M39.664,25.145c0.273,0,0.273-0.276,0.186-0.463L24.369,9.349c-0.458-0.461-0.641-0.37-0.916,0

+			L8.158,24.682c-0.091,0.094-0.091,0.37,0.091,0.37h9.159v12.562c0,0.276,0.184,0.461,0.367,0.461h12.181

+			c0.367,0,0.458-0.185,0.458-0.556V25.05L39.664,25.145z"/>

+		<path fill="#3669E7" d="M39.639,25.135c0.273,0,0.273-0.277,0.185-0.462L24.368,9.364c-0.458-0.46-0.64-0.37-0.914,0l-15.27,15.31

+			c-0.091,0.094-0.091,0.368,0.091,0.368h9.144v12.543c0,0.276,0.183,0.463,0.366,0.463h12.158c0.365,0,0.457-0.187,0.457-0.555

+			V25.042L39.639,25.135z"/>

+		<path fill="#376AE8" d="M39.609,25.124c0.272,0,0.272-0.274,0.184-0.461L24.367,9.377c-0.457-0.459-0.639-0.369-0.912,0

+			L8.211,24.663c-0.091,0.094-0.091,0.369,0.091,0.369h9.127v12.522c0,0.274,0.184,0.461,0.366,0.461h12.141

+			c0.363,0,0.455-0.187,0.455-0.554v-12.43L39.609,25.124z"/>

+		<path fill="#386BE8" d="M39.584,25.116c0.271,0,0.271-0.277,0.184-0.462L24.368,9.393c-0.456-0.459-0.638-0.368-0.911,0

+			L8.239,24.654c-0.091,0.093-0.091,0.369,0.09,0.369h9.112v12.504c0,0.274,0.183,0.462,0.365,0.462h12.12

+			c0.363,0,0.454-0.188,0.454-0.554V25.023L39.584,25.116z"/>

+		<path fill="#396CE9" d="M39.559,25.105c0.272,0,0.272-0.274,0.183-0.459L24.366,9.407c-0.455-0.458-0.636-0.367-0.909,0

+			L8.266,24.646c-0.091,0.093-0.091,0.367,0.09,0.367h9.096v12.483c0,0.272,0.183,0.459,0.365,0.459h12.098

+			c0.362,0,0.454-0.187,0.454-0.552V25.014L39.559,25.105z"/>

+		<path fill="#3A6DE9" d="M39.529,25.096c0.271,0,0.271-0.275,0.184-0.457L24.365,9.421c-0.454-0.458-0.635-0.367-0.907,0

+			L8.293,24.639c-0.091,0.092-0.091,0.364,0.09,0.364h9.081v12.468c0,0.274,0.182,0.459,0.364,0.459h12.076

+			c0.363,0,0.453-0.185,0.453-0.552V25.003L39.529,25.096z"/>

+		<path fill="#3B6EEA" d="M39.504,25.087c0.271,0,0.271-0.274,0.184-0.459L24.365,9.436c-0.454-0.457-0.634-0.366-0.906,0

+			L8.319,24.628c-0.09,0.093-0.09,0.367,0.09,0.367h9.065v12.446c0,0.272,0.182,0.457,0.363,0.457h12.06

+			c0.359,0,0.451-0.185,0.451-0.549V24.995L39.504,25.087z"/>

+		<path fill="#3C6FEA" d="M39.479,25.077c0.271,0,0.271-0.272,0.183-0.457L24.364,9.451c-0.453-0.456-0.633-0.366-0.905,0

+			L8.346,24.62c-0.09,0.092-0.09,0.364,0.09,0.364h9.05v12.429c0,0.274,0.182,0.457,0.363,0.457h12.036

+			c0.361,0,0.451-0.183,0.451-0.55V24.984L39.479,25.077z"/>

+		<path fill="#3D70EB" d="M39.451,25.066c0.271,0,0.271-0.272,0.181-0.457L24.363,9.464c-0.452-0.455-0.632-0.365-0.903,0

+			L8.374,24.609c-0.09,0.093-0.09,0.367,0.089,0.367h9.034v12.406c0,0.271,0.181,0.456,0.362,0.456h12.016

+			c0.359,0,0.45-0.185,0.45-0.549V24.977L39.451,25.066z"/>

+		<path fill="#3E71EB" d="M39.424,25.059c0.271,0,0.271-0.272,0.182-0.457L24.363,9.479c-0.451-0.455-0.631-0.365-0.901,0

+			L8.4,24.602c-0.09,0.092-0.09,0.365,0.09,0.365h9.019v12.389c0,0.272,0.181,0.457,0.362,0.457h11.992

+			c0.361,0,0.451-0.185,0.451-0.547V24.967L39.424,25.059z"/>

+		<path fill="#3F72EC" d="M39.396,25.048c0.271,0,0.271-0.272,0.182-0.455L24.362,9.495c-0.45-0.454-0.63-0.364-0.9,0L8.427,24.593

+			c-0.09,0.093-0.09,0.363,0.089,0.363h9.003v12.371c0,0.272,0.181,0.455,0.361,0.455h11.976c0.357,0,0.447-0.183,0.447-0.548

+			V24.956L39.396,25.048z"/>

+		<path fill="#4073EC" d="M39.371,25.038c0.271,0,0.271-0.272,0.18-0.455L24.362,9.509c-0.45-0.453-0.629-0.363-0.898,0

+			L8.454,24.583c-0.09,0.093-0.09,0.362,0.089,0.362h8.987v12.354c0,0.271,0.181,0.454,0.36,0.454h11.954

+			c0.358,0,0.448-0.183,0.448-0.545v-12.26L39.371,25.038z"/>

+		<path fill="#4174ED" d="M39.346,25.029c0.271,0,0.271-0.271,0.18-0.454L24.361,9.523c-0.449-0.453-0.627-0.363-0.897,0

+			L8.481,24.575c-0.089,0.092-0.089,0.362,0.089,0.362h8.972V37.27c0,0.272,0.18,0.455,0.359,0.455h11.933

+			c0.357,0,0.445-0.183,0.445-0.545V24.938L39.346,25.029z"/>

+		<path fill="#4275ED" d="M39.316,25.02c0.271,0,0.271-0.271,0.181-0.453L24.36,9.539c-0.448-0.452-0.626-0.362-0.895,0

+			L8.508,24.566c-0.09,0.091-0.09,0.36,0.088,0.36h8.957V37.24c0,0.271,0.18,0.451,0.359,0.451h11.912

+			c0.355,0,0.445-0.183,0.445-0.543V24.93L39.316,25.02z"/>

+		<path fill="#4376EE" d="M39.291,25.01c0.27,0,0.27-0.271,0.18-0.453L24.36,9.553c-0.447-0.451-0.625-0.361-0.894,0L8.535,24.559

+			c-0.089,0.09-0.089,0.362,0.089,0.362h8.941v12.293c0,0.271,0.179,0.451,0.358,0.451h11.892c0.356,0,0.445-0.181,0.445-0.543

+			V24.919L39.291,25.01z"/>

+		<path fill="#4477EE" d="M39.266,24.999c0.27,0,0.27-0.271,0.18-0.451L24.359,9.566c-0.446-0.45-0.625-0.361-0.893,0L8.562,24.549

+			c-0.089,0.09-0.089,0.362,0.088,0.362h8.925v12.272c0,0.271,0.179,0.45,0.358,0.45h11.87c0.356,0,0.445-0.182,0.445-0.542V24.911

+			L39.266,24.999z"/>

+		<path fill="#4578EF" d="M39.236,24.991c0.27,0,0.27-0.271,0.18-0.451L24.359,9.582c-0.446-0.45-0.624-0.36-0.891,0L8.589,24.54

+			C8.5,24.63,8.5,24.9,8.677,24.9h8.91v12.254c0,0.271,0.179,0.451,0.357,0.451h11.85c0.354,0,0.442-0.182,0.442-0.541V24.9

+			L39.236,24.991z"/>

+		<path fill="#4679EF" d="M39.211,24.98c0.27,0,0.27-0.271,0.18-0.449L24.358,9.597c-0.445-0.449-0.622-0.36-0.889,0L8.616,24.531

+			c-0.089,0.089-0.089,0.359,0.088,0.359h8.894v12.233c0,0.271,0.179,0.451,0.356,0.451h11.83c0.354,0,0.442-0.183,0.442-0.541

+			V24.891L39.211,24.98z"/>

+		<path fill="#477AF0" d="M39.186,24.973c0.269,0,0.269-0.271,0.178-0.451L24.357,9.61c-0.444-0.448-0.621-0.359-0.888,0

+			L8.643,24.521c-0.088,0.09-0.088,0.358,0.088,0.358h8.878v12.218c0,0.271,0.179,0.448,0.356,0.448h11.809

+			c0.354,0,0.441-0.182,0.441-0.54V24.882L39.186,24.973z"/>

+		<path fill="#487BF0" d="M39.158,24.962c0.267,0,0.267-0.271,0.178-0.448L24.356,9.625c-0.443-0.447-0.62-0.359-0.886,0

+			L8.669,24.514c-0.088,0.09-0.088,0.358,0.088,0.358h8.863v12.196c0,0.271,0.178,0.449,0.355,0.449h11.789

+			c0.354,0,0.44-0.181,0.44-0.539V24.872L39.158,24.962z"/>

+		<path fill="#497CF1" d="M39.132,24.952c0.267,0,0.267-0.269,0.179-0.447L24.356,9.64c-0.442-0.446-0.619-0.358-0.884,0

+			L8.697,24.504c-0.088,0.09-0.088,0.357,0.087,0.357h8.847V37.04c0,0.271,0.178,0.449,0.355,0.449h11.768

+			c0.354,0,0.439-0.181,0.439-0.539V24.861L39.132,24.952z"/>

+		<path fill="#4A7DF1" d="M39.104,24.943c0.269,0,0.269-0.271,0.18-0.448L24.355,9.655c-0.442-0.446-0.618-0.358-0.883,0

+			L8.724,24.496c-0.088,0.089-0.088,0.357,0.087,0.357h8.832v12.16c0,0.268,0.177,0.445,0.354,0.445h11.747

+			c0.354,0,0.439-0.182,0.439-0.537V24.854L39.104,24.943z"/>

+		<path fill="#4B7EF2" d="M39.078,24.934c0.265,0,0.265-0.269,0.177-0.447L24.355,9.67c-0.441-0.445-0.617-0.357-0.881,0

+			L8.751,24.486c-0.088,0.091-0.088,0.357,0.087,0.357h8.816v12.14c0,0.27,0.177,0.447,0.354,0.447h11.727

+			c0.354,0,0.438-0.18,0.438-0.535V24.844L39.078,24.934z"/>

+		<path fill="#4C7FF2" d="M39.052,24.924c0.265,0,0.265-0.27,0.177-0.446L24.354,9.684c-0.44-0.444-0.616-0.356-0.879,0

+			L8.777,24.478c-0.088,0.09-0.088,0.355,0.087,0.355h8.8v12.121c0,0.269,0.177,0.444,0.353,0.444h11.706

+			c0.354,0,0.438-0.178,0.438-0.534V24.833L39.052,24.924z"/>

+		<path fill="#4D80F3" d="M39.023,24.913c0.266,0,0.266-0.269,0.178-0.444L24.354,9.699c-0.439-0.444-0.615-0.356-0.878,0

+			L8.804,24.469c-0.087,0.09-0.087,0.356,0.087,0.356h8.785v12.101c0,0.268,0.177,0.444,0.353,0.444h11.684

+			c0.352,0,0.438-0.179,0.438-0.533V24.825L39.023,24.913z"/>

+		<path fill="#4E81F3" d="M38.998,24.904c0.266,0,0.266-0.269,0.176-0.445L24.353,9.712c-0.439-0.443-0.614-0.355-0.877,0

+			L8.832,24.459c-0.088,0.089-0.088,0.355,0.086,0.355h8.77v12.082c0,0.269,0.176,0.443,0.352,0.443h11.664

+			c0.351,0,0.438-0.179,0.438-0.531V24.814L38.998,24.904z"/>

+		<path fill="#4F82F4" d="M38.973,24.896c0.264,0,0.264-0.27,0.176-0.445L24.353,9.728c-0.438-0.442-0.613-0.355-0.875,0

+			L8.858,24.451c-0.087,0.089-0.087,0.355,0.087,0.355h8.754V36.87c0,0.266,0.176,0.442,0.351,0.442h11.644

+			c0.352,0,0.438-0.18,0.438-0.533V24.807L38.973,24.896z"/>

+		<path fill="#5083F4" d="M38.943,24.886c0.264,0,0.264-0.268,0.177-0.444l-14.769-14.7c-0.437-0.441-0.611-0.354-0.874,0

+			l-14.593,14.7c-0.087,0.09-0.087,0.354,0.086,0.354h8.738v12.043c0,0.267,0.176,0.443,0.351,0.443h11.623

+			c0.351,0,0.438-0.179,0.438-0.531V24.796L38.943,24.886z"/>

+		<path fill="#5184F5" d="M38.919,24.876c0.263,0,0.263-0.267,0.174-0.443L24.351,9.756c-0.437-0.441-0.61-0.354-0.872,0

+			L8.912,24.434c-0.087,0.089-0.087,0.354,0.086,0.354h8.723v12.022c0,0.267,0.175,0.44,0.35,0.44h11.602

+			c0.349,0,0.437-0.178,0.437-0.528V24.788L38.919,24.876z"/>

+		<path fill="#5285F5" d="M38.893,24.866c0.262,0,0.262-0.267,0.176-0.441L24.351,9.771c-0.436-0.44-0.609-0.353-0.871,0

+			L8.939,24.425c-0.087,0.089-0.087,0.353,0.086,0.353h8.707v12.009c0,0.265,0.175,0.438,0.349,0.438h11.581

+			c0.348,0,0.436-0.177,0.436-0.529V24.777L38.893,24.866z"/>

+		<path fill="#5386F6" d="M38.863,24.855c0.263,0,0.263-0.266,0.176-0.44L24.35,9.786c-0.435-0.439-0.608-0.353-0.869,0

+			L8.966,24.415C8.88,24.504,8.88,24.77,9.052,24.77h8.691v11.983c0,0.267,0.175,0.44,0.349,0.44h11.561

+			c0.349,0,0.435-0.176,0.435-0.528V24.77L38.863,24.855z"/>

+		<path fill="#5487F6" d="M38.839,24.848c0.261,0,0.261-0.267,0.175-0.439L24.349,9.801c-0.434-0.439-0.607-0.352-0.867,0

+			L8.993,24.407c-0.087,0.089-0.087,0.353,0.086,0.353h8.676v11.967c0,0.267,0.174,0.44,0.348,0.44h11.54

+			c0.349,0,0.435-0.178,0.435-0.528v-11.88L38.839,24.848z"/>

+		<path fill="#5588F7" d="M38.812,24.837c0.262,0,0.262-0.264,0.174-0.439L24.349,9.814c-0.433-0.438-0.606-0.352-0.866,0

+			L9.02,24.397c-0.086,0.088-0.086,0.352,0.086,0.352h8.66v11.949c0,0.262,0.174,0.438,0.347,0.438h11.519

+			c0.347,0,0.433-0.177,0.433-0.528V24.749L38.812,24.837z"/>

+		<path fill="#5689F7" d="M38.785,24.829c0.26,0,0.26-0.265,0.173-0.439L24.348,9.83c-0.432-0.438-0.604-0.351-0.864,0L9.047,24.389

+			c-0.086,0.088-0.086,0.353,0.085,0.353h8.645V36.67c0,0.264,0.174,0.438,0.347,0.438h11.498c0.345,0,0.431-0.176,0.431-0.524

+			v-11.84L38.785,24.829z"/>

+		<path fill="#578AF8" d="M38.759,24.818c0.261,0,0.261-0.264,0.175-0.438L24.347,9.844c-0.432-0.437-0.604-0.35-0.863,0

+			L9.074,24.379c-0.086,0.088-0.086,0.352,0.085,0.352h8.629v11.91c0,0.262,0.173,0.438,0.346,0.438h11.476

+			c0.348,0,0.434-0.177,0.434-0.524V24.73L38.759,24.818z"/>

+		<path fill="#588BF8" d="M38.73,24.809c0.258,0,0.258-0.263,0.172-0.438L24.347,9.858c-0.431-0.436-0.603-0.35-0.861,0

+			L9.101,24.372c-0.086,0.088-0.086,0.351,0.085,0.351H17.8v11.892c0,0.262,0.173,0.438,0.345,0.438h11.458

+			c0.344,0,0.428-0.177,0.428-0.524V24.721L38.73,24.809z"/>

+		<path fill="#598CF9" d="M38.705,24.799c0.259,0,0.259-0.262,0.173-0.438L24.346,9.873c-0.43-0.435-0.602-0.349-0.86,0

+			L9.128,24.361c-0.086,0.088-0.086,0.351,0.085,0.351h8.598v11.869c0,0.263,0.173,0.438,0.345,0.438h11.436

+			c0.344,0,0.43-0.178,0.43-0.524V24.712L38.705,24.799z"/>

+		<path fill="#5A8DF9" d="M38.68,24.79c0.258,0,0.258-0.265,0.172-0.438L24.345,9.888c-0.429-0.435-0.6-0.349-0.858,0L9.155,24.353

+			c-0.086,0.088-0.086,0.35,0.085,0.35h8.583v11.852c0,0.262,0.172,0.438,0.344,0.438h11.414c0.343,0,0.428-0.177,0.428-0.524

+			V24.702L38.68,24.79z"/>

+		<path fill="#5B8EFA" d="M38.65,24.779c0.259,0,0.259-0.262,0.173-0.437L24.345,9.902c-0.428-0.434-0.599-0.348-0.856,0

+			L9.182,24.345c-0.085,0.087-0.085,0.348,0.085,0.348h8.567v11.832c0,0.262,0.172,0.438,0.343,0.438h11.396

+			c0.342,0,0.427-0.176,0.427-0.523V24.691L38.65,24.779z"/>

+		<path fill="#5C8FFA" d="M38.626,24.771c0.256,0,0.256-0.263,0.171-0.437L24.344,9.917c-0.428-0.433-0.599-0.348-0.855,0

+			L9.209,24.335c-0.085,0.087-0.085,0.349,0.084,0.349h8.552v11.812c0,0.262,0.172,0.438,0.343,0.438h11.375

+			c0.342,0,0.426-0.176,0.426-0.521V24.684L38.626,24.771z"/>

+		<path fill="#5D90FB" d="M38.6,24.761c0.258,0,0.258-0.261,0.172-0.434L24.344,9.932c-0.427-0.432-0.598-0.347-0.854,0

+			L9.235,24.327c-0.085,0.087-0.085,0.347,0.084,0.347h8.536v11.794c0,0.261,0.172,0.435,0.343,0.435h11.353

+			c0.342,0,0.428-0.174,0.428-0.521V24.674L38.6,24.761z"/>

+		<path fill="#5E91FB" d="M38.57,24.751c0.258,0,0.258-0.26,0.173-0.434l-14.4-14.372c-0.426-0.432-0.596-0.346-0.852,0

+			L9.263,24.317c-0.085,0.087-0.085,0.346,0.084,0.346h8.52v11.776c0,0.259,0.171,0.433,0.342,0.433h11.332

+			c0.34,0,0.424-0.174,0.424-0.521V24.663L38.57,24.751z"/>

+		<path fill="#5F92FC" d="M38.546,24.743c0.255,0,0.255-0.262,0.17-0.435L24.342,9.96c-0.425-0.431-0.595-0.346-0.85,0L9.29,24.309

+			c-0.085,0.087-0.085,0.347,0.084,0.347h8.504v11.756c0,0.258,0.171,0.434,0.341,0.434h11.311c0.342,0,0.426-0.176,0.426-0.521

+			V24.654L38.546,24.743z"/>

+		<path fill="#6093FC" d="M38.521,24.732c0.254,0,0.254-0.26,0.17-0.435L24.342,9.976c-0.425-0.43-0.594-0.345-0.849,0L9.316,24.3

+			c-0.085,0.087-0.085,0.347,0.084,0.347h8.489v11.735c0,0.259,0.171,0.433,0.341,0.433h11.292c0.34,0,0.424-0.174,0.424-0.521

+			V24.646L38.521,24.732z"/>

+		<path fill="#6194FD" d="M38.492,24.723c0.255,0,0.255-0.259,0.17-0.432L24.341,9.99c-0.424-0.43-0.593-0.345-0.847,0L9.343,24.291

+			c-0.084,0.086-0.084,0.345,0.084,0.345H17.9v11.718c0,0.258,0.17,0.433,0.34,0.433h11.27c0.34,0,0.424-0.175,0.424-0.519V24.636

+			L38.492,24.723z"/>

+		<path fill="#6295FD" d="M38.466,24.712c0.255,0,0.255-0.258,0.169-0.43L24.34,10.004c-0.423-0.429-0.592-0.344-0.846,0

+			L9.37,24.283c-0.084,0.086-0.084,0.345,0.084,0.345h8.458v11.697c0,0.258,0.17,0.43,0.339,0.43H29.5

+			c0.338,0,0.422-0.172,0.422-0.516V24.626L38.466,24.712z"/>

+		<path fill="#6396FE" d="M38.438,24.704c0.254,0,0.254-0.259,0.17-0.431L24.34,10.019c-0.422-0.428-0.591-0.343-0.844,0

+			L9.397,24.273c-0.084,0.086-0.084,0.345,0.083,0.345h8.442v11.678c0,0.259,0.17,0.431,0.339,0.431H29.49

+			c0.338,0,0.422-0.172,0.422-0.517V24.618L38.438,24.704z"/>

+		<path fill="#6497FE" d="M38.413,24.693c0.252,0,0.252-0.257,0.168-0.429l-14.242-14.23c-0.422-0.427-0.59-0.343-0.843,0

+			L9.424,24.265c-0.084,0.086-0.084,0.342,0.083,0.342h8.427v11.66c0,0.258,0.169,0.43,0.338,0.43H29.48

+			c0.336,0,0.42-0.172,0.42-0.516V24.607L38.413,24.693z"/>

+		<path fill="#6598FF" d="M38.387,24.686c0.254,0,0.254-0.259,0.17-0.43L24.338,10.047c-0.42-0.426-0.588-0.342-0.841,0

+			L9.451,24.255c-0.084,0.086-0.084,0.343,0.083,0.343h8.411V36.24c0,0.256,0.169,0.428,0.337,0.428h11.187

+			c0.338,0,0.42-0.172,0.42-0.516V24.6L38.387,24.686z"/>

+		<path fill="#6699FF" d="M38.357,24.675c0.252,0,0.252-0.257,0.168-0.428L24.338,10.062c-0.42-0.426-0.587-0.342-0.839,0

+			L9.478,24.247c-0.084,0.086-0.084,0.342,0.083,0.342h8.396V36.21c0,0.256,0.169,0.429,0.337,0.429h11.167

+			c0.335,0,0.418-0.173,0.418-0.515V24.589L38.357,24.675z"/>

+	</g>

+	

+		<linearGradient id="XMLID_20_" gradientUnits="userSpaceOnUse" x1="-1371.771" y1="-727.9985" x2="-1398.6362" y2="-727.9985" gradientTransform="matrix(4.371139e-08 -1 -1 -4.371139e-08 -703.999 -1361.9985)">

+		<stop  offset="0" style="stop-color:#FFFFFF"/>

+		<stop  offset="1" style="stop-color:#6699FF"/>

+	</linearGradient>

+	<path fill="url(#XMLID_20_)" d="M38.357,24.675c0.252,0,0.252-0.257,0.168-0.428L24.338,10.062c-0.42-0.426-0.587-0.342-0.839,0

+		L9.478,24.247c-0.084,0.086-0.084,0.342,0.083,0.342h8.396V36.21c0,0.256,0.169,0.429,0.337,0.429h11.167

+		c0.335,0,0.418-0.173,0.418-0.515V24.589L38.357,24.675z"/>

+</g>

+<g id="crop_x0020_marks">

+	<path fill="none" d="M48-0.058v48H0v-48H48z"/>

+</g>

+</svg>

diff --git a/applications/content/template/docbook/images/colorsvg/warning.svg b/applications/content/template/docbook/images/colorsvg/warning.svg
new file mode 100644
index 0000000..ae0081d
--- /dev/null
+++ b/applications/content/template/docbook/images/colorsvg/warning.svg
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [

+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">

+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">

+]>

+<svg  version="1.1" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="48" height="48" viewBox="0 0 48 48"

+	 overflow="visible" enable-background="new 0 0 48 48" xml:space="preserve">

+<g>

+	<path stroke="#FFFFFF" stroke-width="7.9139" stroke-linejoin="round" d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2

+		L31.6,42.3H16.4z"/>

+	<g>

+		<path fill="#990000" d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2L31.6,42.3H16.4z"/>

+		<polygon fill="#9A0000" points="16.415,42.266 5.736,31.586 5.736,16.416 16.415,5.737 31.585,5.737 42.266,16.416 42.266,31.586 

+			31.585,42.266 		"/>

+		<polygon fill="#9B0000" points="16.429,42.23 5.771,31.572 5.771,16.432 16.429,5.774 31.57,5.774 42.229,16.432 42.229,31.572 

+			31.57,42.23 		"/>

+		<polygon fill="#9C0000" points="16.444,42.195 5.806,31.559 5.806,16.447 16.444,5.81 31.557,5.81 42.191,16.447 42.191,31.559 

+			31.557,42.195 		"/>

+		<polygon fill="#9D0000" points="16.459,42.162 5.842,31.545 5.842,16.464 16.459,5.847 31.54,5.847 42.157,16.464 42.157,31.545 

+			31.54,42.162 		"/>

+		<polygon fill="#9E0000" points="16.473,42.128 5.877,31.531 5.877,16.479 16.473,5.884 31.525,5.884 42.122,16.479 42.122,31.531 

+			31.525,42.128 		"/>

+		<polygon fill="#9F0000" points="16.488,42.094 5.914,31.52 5.914,16.496 16.488,5.921 31.512,5.921 42.087,16.496 42.087,31.52 

+			31.512,42.094 		"/>

+		<polygon fill="#A00000" points="16.503,42.061 5.949,31.505 5.949,16.511 16.503,5.958 31.496,5.958 42.051,16.511 42.051,31.505 

+			31.496,42.061 		"/>

+		<polygon fill="#A10000" points="16.518,42.025 5.984,31.491 5.984,16.528 16.518,5.994 31.48,5.994 42.016,16.528 42.016,31.491 

+			31.48,42.025 		"/>

+		<polygon fill="#A20000" points="16.533,41.991 6.02,31.479 6.02,16.544 16.533,6.031 31.467,6.031 41.98,16.544 41.98,31.479 

+			31.467,41.991 		"/>

+		<polygon fill="#A30000" points="16.547,41.956 6.055,31.464 6.055,16.56 16.547,6.067 31.452,6.067 41.943,16.56 41.943,31.464 

+			31.452,41.956 		"/>

+		<polygon fill="#A40000" points="16.562,41.923 6.091,31.451 6.091,16.576 16.562,6.104 31.438,6.104 41.909,16.576 41.909,31.451 

+			31.438,41.923 		"/>

+		<polygon fill="#A50000" points="16.577,41.889 6.126,31.438 6.126,16.592 16.577,6.141 31.423,6.141 41.873,16.592 41.873,31.438 

+			31.423,41.889 		"/>

+		<polygon fill="#A60000" points="16.592,41.854 6.162,31.424 6.162,16.607 16.592,6.177 31.407,6.177 41.838,16.607 41.838,31.424 

+			31.407,41.854 		"/>

+		<polygon fill="#A70000" points="16.606,41.818 6.197,31.41 6.197,16.624 16.606,6.214 31.395,6.214 41.803,16.624 41.803,31.41 

+			31.395,41.818 		"/>

+		<polygon fill="#A80000" points="16.622,41.785 6.233,31.396 6.233,16.64 16.622,6.251 31.379,6.251 41.768,16.64 41.768,31.396 

+			31.379,41.785 		"/>

+		<polygon fill="#A90000" points="16.636,41.751 6.269,31.383 6.269,16.655 16.636,6.288 31.363,6.288 41.73,16.655 41.73,31.383 

+			31.363,41.751 		"/>

+		<polygon fill="#AA0000" points="16.65,41.716 6.304,31.369 6.304,16.671 16.65,6.325 31.35,6.325 41.695,16.671 41.695,31.369 

+			31.35,41.716 		"/>

+		<polygon fill="#AB0000" points="16.666,41.682 6.339,31.355 6.339,16.688 16.666,6.361 31.334,6.361 41.66,16.688 41.66,31.355 

+			31.334,41.682 		"/>

+		<polygon fill="#AC0000" points="16.681,41.648 6.375,31.343 6.375,16.704 16.681,6.398 31.318,6.398 41.625,16.704 41.625,31.343 

+			31.318,41.648 		"/>

+		<polygon fill="#AD0000" points="16.695,41.613 6.411,31.329 6.411,16.719 16.695,6.435 31.305,6.435 41.589,16.719 41.589,31.329 

+			31.305,41.613 		"/>

+		<polygon fill="#AE0000" points="16.709,41.579 6.446,31.314 6.446,16.735 16.709,6.472 31.29,6.472 41.555,16.735 41.555,31.314 

+			31.29,41.579 		"/>

+		<polygon fill="#AF0000" points="16.725,41.545 6.482,31.302 6.482,16.751 16.725,6.509 31.273,6.509 41.52,16.751 41.52,31.302 

+			31.273,41.545 		"/>

+		<polygon fill="#B00000" points="16.739,41.511 6.518,31.288 6.518,16.767 16.739,6.545 31.262,6.545 41.482,16.767 41.482,31.288 

+			31.262,41.511 		"/>

+		<polygon fill="#B10000" points="16.754,41.477 6.553,31.273 6.553,16.783 16.754,6.582 31.245,6.582 41.447,16.783 41.447,31.273 

+			31.245,41.477 		"/>

+		<polygon fill="#B20000" points="16.769,41.441 6.588,31.261 6.588,16.799 16.769,6.619 31.23,6.619 41.411,16.799 41.411,31.261 

+			31.23,41.441 		"/>

+		<polygon fill="#B30000" points="16.783,41.407 6.624,31.248 6.624,16.815 16.783,6.656 31.216,6.656 41.376,16.815 41.376,31.248 

+			31.216,41.407 		"/>

+		<polygon fill="#B40000" points="16.799,41.373 6.66,31.234 6.66,16.832 16.799,6.693 31.202,6.693 41.341,16.832 41.341,31.234 

+			31.202,41.373 		"/>

+		<polygon fill="#B50000" points="16.813,41.339 6.695,31.221 6.695,16.847 16.813,6.729 31.188,6.729 41.305,16.847 41.305,31.221 

+			31.188,41.339 		"/>

+		<polygon fill="#B60000" points="16.828,41.305 6.73,31.207 6.73,16.863 16.828,6.765 31.172,6.765 41.27,16.863 41.27,31.207 

+			31.172,41.305 		"/>

+		<polygon fill="#B70000" points="16.843,41.27 6.766,31.193 6.766,16.879 16.843,6.802 31.157,6.802 41.232,16.879 41.232,31.193 

+			31.157,41.27 		"/>

+		<polygon fill="#B80000" points="16.858,41.236 6.802,31.182 6.802,16.896 16.858,6.839 31.143,6.839 41.198,16.896 41.198,31.182 

+			31.143,41.236 		"/>

+		<polygon fill="#B90000" points="16.872,41.202 6.837,31.166 6.837,16.911 16.872,6.876 31.128,6.876 41.163,16.911 41.163,31.166 

+			31.128,41.202 		"/>

+		<polygon fill="#BA0000" points="16.887,41.167 6.873,31.152 6.873,16.927 16.887,6.913 31.111,6.913 41.127,16.927 41.127,31.152 

+			31.111,41.167 		"/>

+		<polygon fill="#BB0000" points="16.902,41.133 6.908,31.139 6.908,16.943 16.902,6.949 31.098,6.949 41.092,16.943 41.092,31.139 

+			31.098,41.133 		"/>

+		<polygon fill="#BC0000" points="16.917,41.1 6.944,31.126 6.944,16.959 16.917,6.986 31.083,6.986 41.057,16.959 41.057,31.126 

+			31.083,41.1 		"/>

+		<polygon fill="#BD0000" points="16.931,41.064 6.979,31.111 6.979,16.975 16.931,7.023 31.068,7.023 41.021,16.975 41.021,31.111 

+			31.068,41.064 		"/>

+		<polygon fill="#BE0000" points="16.946,41.029 7.015,31.1 7.015,16.991 16.946,7.06 31.055,7.06 40.984,16.991 40.984,31.1 

+			31.055,41.029 		"/>

+		<polygon fill="#BF0000" points="16.96,40.995 7.051,31.085 7.051,17.007 16.96,7.097 31.039,7.097 40.949,17.007 40.949,31.085 

+			31.039,40.995 		"/>

+		<polygon fill="#C00000" points="16.976,40.962 7.086,31.072 7.086,17.023 16.976,7.133 31.023,7.133 40.914,17.023 40.914,31.072 

+			31.023,40.962 		"/>

+		<polygon fill="#C10000" points="16.99,40.927 7.121,31.059 7.121,17.039 16.99,7.17 31.01,7.17 40.878,17.039 40.878,31.059 

+			31.01,40.927 		"/>

+		<polygon fill="#C20000" points="17.004,40.893 7.157,31.044 7.157,17.054 17.004,7.207 30.994,7.207 40.843,17.054 40.843,31.044 

+			30.994,40.893 		"/>

+		<polygon fill="#C30000" points="17.02,40.857 7.192,31.031 7.192,17.07 17.02,7.244 30.979,7.244 40.809,17.07 40.809,31.031 

+			30.979,40.857 		"/>

+		<polygon fill="#C40000" points="17.035,40.824 7.229,31.018 7.229,17.086 17.035,7.281 30.966,7.281 40.771,17.086 40.771,31.018 

+			30.966,40.824 		"/>

+		<polygon fill="#C50000" points="17.049,40.789 7.263,31.004 7.263,17.103 17.049,7.317 30.95,7.317 40.736,17.103 40.736,31.004 

+			30.95,40.789 		"/>

+		<polygon fill="#C60000" points="17.064,40.755 7.299,30.99 7.299,17.119 17.064,7.354 30.936,7.354 40.701,17.119 40.701,30.99 

+			30.936,40.755 		"/>

+		<polygon fill="#C70000" points="17.079,40.721 7.334,30.977 7.334,17.135 17.079,7.391 30.921,7.391 40.665,17.135 40.665,30.977 

+			30.921,40.721 		"/>

+		<polygon fill="#C80000" points="17.094,40.688 7.371,30.964 7.371,17.151 17.094,7.428 30.906,7.428 40.63,17.151 40.63,30.964 

+			30.906,40.688 		"/>

+		<polygon fill="#C90000" points="17.108,40.652 7.406,30.949 7.406,17.167 17.108,7.464 30.893,7.464 40.594,17.167 40.594,30.949 

+			30.893,40.652 		"/>

+		<polygon fill="#CA0000" points="17.123,40.618 7.441,30.936 7.441,17.182 17.123,7.5 30.877,7.5 40.559,17.182 40.559,30.936 

+			30.877,40.618 		"/>

+		<polygon fill="#CB0000" points="17.138,40.584 7.477,30.923 7.477,17.199 17.138,7.537 30.861,7.537 40.523,17.199 40.523,30.923 

+			30.861,40.584 		"/>

+		<polygon fill="#CC0000" points="17.153,40.55 7.513,30.909 7.513,17.215 17.153,7.574 30.848,7.574 40.486,17.215 40.486,30.909 

+			30.848,40.55 		"/>

+		<polygon fill="#CC0000" points="17.167,40.516 7.548,30.896 7.548,17.23 17.167,7.611 30.832,7.611 40.452,17.23 40.452,30.896 

+			30.832,40.516 		"/>

+		<polygon fill="#CD0000" points="17.182,40.48 7.583,30.882 7.583,17.246 17.182,7.647 30.816,7.647 40.416,17.246 40.416,30.882 

+			30.816,40.48 		"/>

+		<polygon fill="#CE0000" points="17.197,40.445 7.619,30.868 7.619,17.262 17.197,7.685 30.803,7.685 40.381,17.262 40.381,30.868 

+			30.803,40.445 		"/>

+		<polygon fill="#CF0000" points="17.211,40.412 7.654,30.855 7.654,17.278 17.211,7.721 30.788,7.721 40.346,17.278 40.346,30.855 

+			30.788,40.412 		"/>

+		<polygon fill="#D00000" points="17.226,40.378 7.69,30.842 7.69,17.294 17.226,7.758 30.773,7.758 40.311,17.294 40.311,30.842 

+			30.773,40.378 		"/>

+		<polygon fill="#D10000" points="17.241,40.344 7.726,30.828 7.726,17.311 17.241,7.794 30.759,7.794 40.273,17.311 40.273,30.828 

+			30.759,40.344 		"/>

+		<polygon fill="#D20000" points="17.256,40.311 7.761,30.814 7.761,17.326 17.256,7.831 30.744,7.831 40.238,17.326 40.238,30.814 

+			30.744,40.311 		"/>

+		<polygon fill="#D30000" points="17.271,40.273 7.796,30.801 7.796,17.342 17.271,7.868 30.729,7.868 40.203,17.342 40.203,30.801 

+			30.729,40.273 		"/>

+		<polygon fill="#D40000" points="17.285,40.24 7.832,30.787 7.832,17.358 17.285,7.905 30.715,7.905 40.168,17.358 40.168,30.787 

+			30.715,40.24 		"/>

+		<polygon fill="#D50000" points="17.3,40.206 7.868,30.773 7.868,17.374 17.3,7.941 30.7,7.941 40.132,17.374 40.132,30.773 

+			30.7,40.206 		"/>

+		<polygon fill="#D60000" points="17.315,40.172 7.903,30.761 7.903,17.39 17.315,7.979 30.686,7.979 40.098,17.39 40.098,30.761 

+			30.686,40.172 		"/>

+		<polygon fill="#D70000" points="17.33,40.139 7.938,30.747 7.938,17.406 17.33,8.015 30.67,8.015 40.062,17.406 40.062,30.747 

+			30.67,40.139 		"/>

+		<polygon fill="#D80000" points="17.344,40.104 7.974,30.732 7.974,17.422 17.344,8.052 30.654,8.052 40.025,17.422 40.025,30.732 

+			30.654,40.104 		"/>

+		<polygon fill="#D90000" points="17.359,40.068 8.01,30.721 8.01,17.438 17.359,8.089 30.641,8.089 39.99,17.438 39.99,30.721 

+			30.641,40.068 		"/>

+		<polygon fill="#DA0000" points="17.374,40.034 8.045,30.706 8.045,17.454 17.374,8.125 30.626,8.125 39.954,17.454 39.954,30.706 

+			30.626,40.034 		"/>

+		<polygon fill="#DB0000" points="17.389,40 8.081,30.691 8.081,17.47 17.389,8.162 30.611,8.162 39.919,17.47 39.919,30.691 

+			30.611,40 		"/>

+		<polygon fill="#DC0000" points="17.403,39.966 8.116,30.68 8.116,17.486 17.403,8.199 30.598,8.199 39.884,17.486 39.884,30.68 

+			30.598,39.966 		"/>

+		<polygon fill="#DD0000" points="17.418,39.932 8.152,30.665 8.152,17.502 17.418,8.235 30.582,8.235 39.848,17.502 39.848,30.665 

+			30.582,39.932 		"/>

+		<polygon fill="#DE0000" points="17.433,39.896 8.188,30.652 8.188,17.518 17.433,8.272 30.566,8.272 39.812,17.518 39.812,30.652 

+			30.566,39.896 		"/>

+		<polygon fill="#DF0000" points="17.448,39.863 8.223,30.639 8.223,17.534 17.448,8.309 30.553,8.309 39.775,17.534 39.775,30.639 

+			30.553,39.863 		"/>

+		<polygon fill="#E00000" points="17.462,39.828 8.258,30.625 8.258,17.55 17.462,8.346 30.537,8.346 39.741,17.55 39.741,30.625 

+			30.537,39.828 		"/>

+		<polygon fill="#E10000" points="17.477,39.794 8.294,30.611 8.294,17.565 17.477,8.383 30.521,8.383 39.706,17.565 39.706,30.611 

+			30.521,39.794 		"/>

+		<polygon fill="#E20000" points="17.492,39.76 8.33,30.598 8.33,17.582 17.492,8.419 30.508,8.419 39.67,17.582 39.67,30.598 

+			30.508,39.76 		"/>

+		<polygon fill="#E30000" points="17.507,39.727 8.365,30.584 8.365,17.598 17.507,8.456 30.493,8.456 39.635,17.598 39.635,30.584 

+			30.493,39.727 		"/>

+		<polygon fill="#E40000" points="17.521,39.691 8.4,30.57 8.4,17.614 17.521,8.493 30.479,8.493 39.6,17.614 39.6,30.57 

+			30.479,39.691 		"/>

+		<polygon fill="#E50000" points="17.536,39.657 8.436,30.559 8.436,17.63 17.536,8.529 30.464,8.529 39.562,17.63 39.562,30.559 

+			30.464,39.657 		"/>

+		<polygon fill="#E60000" points="17.551,39.623 8.472,30.544 8.472,17.646 17.551,8.566 30.449,8.566 39.527,17.646 39.527,30.544 

+			30.449,39.623 		"/>

+		<polygon fill="#E70000" points="17.566,39.589 8.507,30.529 8.507,17.662 17.566,8.603 30.436,8.603 39.492,17.662 39.492,30.529 

+			30.436,39.589 		"/>

+		<polygon fill="#E80000" points="17.581,39.555 8.542,30.518 8.542,17.678 17.581,8.64 30.419,8.64 39.457,17.678 39.457,30.518 

+			30.419,39.555 		"/>

+		<polygon fill="#E90000" points="17.595,39.52 8.578,30.503 8.578,17.693 17.595,8.676 30.404,8.676 39.422,17.693 39.422,30.503 

+			30.404,39.52 		"/>

+		<polygon fill="#EA0000" points="17.61,39.484 8.614,30.489 8.614,17.709 17.61,8.713 30.391,8.713 39.387,17.709 39.387,30.489 

+			30.391,39.484 		"/>

+		<polygon fill="#EB0000" points="17.625,39.451 8.649,30.477 8.649,17.726 17.625,8.75 30.375,8.75 39.352,17.726 39.352,30.477 

+			30.375,39.451 		"/>

+		<polygon fill="#EC0000" points="17.64,39.417 8.685,30.462 8.685,17.742 17.64,8.787 30.359,8.787 39.314,17.742 39.314,30.462 

+			30.359,39.417 		"/>

+		<polygon fill="#ED0000" points="17.654,39.383 8.72,30.449 8.72,17.757 17.654,8.823 30.346,8.823 39.279,17.757 39.279,30.449 

+			30.346,39.383 		"/>

+		<polygon fill="#EE0000" points="17.669,39.35 8.756,30.436 8.756,17.773 17.669,8.86 30.331,8.86 39.244,17.773 39.244,30.436 

+			30.331,39.35 		"/>

+		<polygon fill="#EF0000" points="17.684,39.312 8.792,30.422 8.792,17.79 17.684,8.897 30.316,8.897 39.208,17.79 39.208,30.422 

+			30.316,39.312 		"/>

+		<polygon fill="#F00000" points="17.699,39.279 8.827,30.408 8.827,17.805 17.699,8.934 30.302,8.934 39.173,17.805 39.173,30.408 

+			30.302,39.279 		"/>

+		<polygon fill="#F10000" points="17.713,39.245 8.862,30.395 8.862,17.821 17.713,8.971 30.286,8.971 39.137,17.821 39.137,30.395 

+			30.286,39.245 		"/>

+		<polygon fill="#F20000" points="17.728,39.211 8.898,30.381 8.898,17.837 17.728,9.007 30.271,9.007 39.102,17.837 39.102,30.381 

+			30.271,39.211 		"/>

+		<polygon fill="#F30000" points="17.743,39.177 8.934,30.367 8.934,17.853 17.743,9.044 30.257,9.044 39.066,17.853 39.066,30.367 

+			30.257,39.177 		"/>

+		<polygon fill="#F40000" points="17.758,39.143 8.969,30.354 8.969,17.869 17.758,9.081 30.242,9.081 39.029,17.869 39.029,30.354 

+			30.242,39.143 		"/>

+		<polygon fill="#F50000" points="17.772,39.107 9.004,30.341 9.004,17.885 17.772,9.117 30.229,9.117 38.995,17.885 38.995,30.341 

+			30.229,39.107 		"/>

+		<polygon fill="#F60000" points="17.787,39.073 9.04,30.327 9.04,17.901 17.787,9.154 30.213,9.154 38.959,17.901 38.959,30.327 

+			30.213,39.073 		"/>

+		<polygon fill="#F70000" points="17.802,39.039 9.076,30.312 9.076,17.917 17.802,9.191 30.198,9.191 38.924,17.917 38.924,30.312 

+			30.198,39.039 		"/>

+		<polygon fill="#F80000" points="17.816,39.005 9.111,30.3 9.111,17.933 17.816,9.228 30.184,9.228 38.889,17.933 38.889,30.3 

+			30.184,39.005 		"/>

+		<polygon fill="#F90000" points="17.832,38.971 9.146,30.286 9.146,17.949 17.832,9.265 30.169,9.265 38.854,17.949 38.854,30.286 

+			30.169,38.971 		"/>

+		<polygon fill="#FA0000" points="17.846,38.938 9.182,30.271 9.182,17.965 17.846,9.301 30.154,9.301 38.816,17.965 38.816,30.271 

+			30.154,38.938 		"/>

+		<polygon fill="#FB0000" points="17.861,38.902 9.218,30.259 9.218,17.981 17.861,9.338 30.139,9.338 38.782,17.981 38.782,30.259 

+			30.139,38.902 		"/>

+		<polygon fill="#FC0000" points="17.875,38.867 9.253,30.246 9.253,17.997 17.875,9.375 30.124,9.375 38.746,17.997 38.746,30.246 

+			30.124,38.867 		"/>

+		<polygon fill="#FD0000" points="17.891,38.833 9.289,30.232 9.289,18.013 17.891,9.411 30.109,9.411 38.711,18.013 38.711,30.232 

+			30.109,38.833 		"/>

+		<polygon fill="#FE0000" points="17.905,38.799 9.324,30.219 9.324,18.029 17.905,9.448 30.096,9.448 38.675,18.029 38.675,30.219 

+			30.096,38.799 		"/>

+		<path fill="#FF0000" d="M17.92,38.766l-8.56-8.561v-12.16l8.56-8.56h12.16l8.561,8.56v12.16l-8.561,8.561H17.92z"/>

+	</g>

+	

+		<linearGradient id="XMLID_46_" gradientUnits="userSpaceOnUse" x1="582" y1="-986.6099" x2="582" y2="-1015.8911" gradientTransform="matrix(1 0 0 -1 -558 -977)">

+		<stop  offset="0" style="stop-color:#FFFFFF"/>

+		<stop  offset="1" style="stop-color:#FF0000"/>

+	</linearGradient>

+	<path fill="url(#XMLID_46_)" d="M17.92,38.891L9.36,30.33V18.17l8.56-8.56h12.16l8.561,8.56v12.16l-8.561,8.561H17.92z"/>

+	<path d="M11.7,17.7l18.7,18.7l5.896-5.9L17.6,11.7l-5.9,5.9V17.7z"/>

+	<path d="M11.7,30.5l5.9,5.9l18.7-18.7L30.4,11.8L11.7,30.5z"/>

+</g>

+<g id="crop_x0020_marks">

+	<path fill="none" d="M48,48H0V0h48V48z"/>

+</g>

+</svg>

diff --git a/applications/content/template/docbook/images/draft.png b/applications/content/template/docbook/images/draft.png
new file mode 100644
index 0000000..59673fe
--- /dev/null
+++ b/applications/content/template/docbook/images/draft.png
Binary files differ
diff --git a/applications/content/template/docbook/images/draft.svg b/applications/content/template/docbook/images/draft.svg
new file mode 100644
index 0000000..39dbe6a
--- /dev/null
+++ b/applications/content/template/docbook/images/draft.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- 
+  Written by Thomas Schraitle <tom_schr@web.de>
+-->
+<svg version="1.1"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   id="draft-svg">
+  <g id="draft"  transform="rotate(-45)translate(-300,200)">
+     <!--<circle r="2mm" cx="100mm" cy="100mm" fill="black"/>-->
+     <text x="100mm" y="100mm" fill="lightgray"
+        font-size="140pt" text-anchor="middle">Draft</text>
+  </g>
+</svg>
diff --git a/applications/content/template/docbook/images/home.gif b/applications/content/template/docbook/images/home.gif
new file mode 100644
index 0000000..6784f5b
--- /dev/null
+++ b/applications/content/template/docbook/images/home.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/home.png b/applications/content/template/docbook/images/home.png
new file mode 100644
index 0000000..cbb711d
--- /dev/null
+++ b/applications/content/template/docbook/images/home.png
Binary files differ
diff --git a/applications/content/template/docbook/images/home.svg b/applications/content/template/docbook/images/home.svg
new file mode 100644
index 0000000..e803a31
--- /dev/null
+++ b/applications/content/template/docbook/images/home.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#000000;stroke-miterlimit:4;">
+	<!ENTITY st1 "fill:none;stroke:none;">
+	<!ENTITY st2 "fill:#000000;">
+	<!ENTITY st3 "fill:none;stroke:#FFFFFF;stroke-width:6.3469;stroke-linejoin:round;">
+	<!ENTITY st4 "fill-rule:evenodd;clip-rule:evenodd;stroke:none;">
+	<!ENTITY st5 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+	<g id="Layer_x0020_3" style="&st0;">
+		<g style="&st4;">
+			<path style="&st3;" d="M22.9,7.1L5.1,21.8l0,0c-0.3,0.3-0.5,0.8-0.5,1.2c0,0.2,0,0.4,0.1,0.6c0.3,0.6,0.9,1,1.6,1c0,0,1.1,0,2.2,0c0,2.4,0,14.2,0,14.2c0,1.1,0.8,1.9,1.8,1.9h27.4c1.1,0,1.9-0.9,1.9-2c0,0,0-11.8,0-14.2c1,0,2,0,2,0c0.8,0,1.4-0.5,1.7-1.2
+				c0.1-0.2,0.1-0.4,0.1-0.6c0-0.5-0.2-1-0.7-1.4c0,0-3.6-3-4.5-3.7c0-1.2,0-6.9,0-6.9c0-1.2-0.8-2-2-2h-4.8c-1,0-1.7,0.6-1.9,1.5c-1.9-1.6-4.1-3.5-4.1-3.5l0.1,0.1c-0.7-0.7-1.8-0.8-2.7-0.1z"/>
+			<path style="&st2;" d="M22.9,7.1L5.1,21.8l0,0c-0.3,0.3-0.5,0.8-0.5,1.2c0,0.2,0,0.4,0.1,0.6c0.3,0.6,0.9,1,1.6,1c0,0,1.1,0,2.2,0c0,2.4,0,14.2,0,14.2c0,1.1,0.8,1.9,1.8,1.9h27.4c1.1,0,1.9-0.9,1.9-2c0,0,0-11.8,0-14.2c1,0,2,0,2,0c0.8,0,1.4-0.5,1.7-1.2
+				c0.1-0.2,0.1-0.4,0.1-0.6c0-0.5-0.2-1-0.7-1.4c0,0-3.6-3-4.5-3.7c0-1.2,0-6.9,0-6.9c0-1.2-0.8-2-2-2h-4.8c-1,0-1.7,0.6-1.9,1.5c-1.9-1.6-4.1-3.5-4.1-3.5l0.1,0.1c-0.7-0.7-1.8-0.8-2.7-0.1z"/>
+			<path style="&st2;" d="M41.8,22.8l-5.1-4.2v-0.1L31,13.7v0l-6.5-5.5C24.2,8,24,8,23.8,8.2L6.2,22.9c-0.1,0.1-0.1,0.3,0.1,0.3h1.6H10h28.1h1.2h2.3c0.2,0,0.4-0.2,0.2-0.4z"/>
+			<path d="M35.8,16.8l0-5.1c0-0.2-0.1-0.4-0.3-0.4h-3.2c-0.2,0-0.3,0.1-0.3,0.3v2.2l3.9,2.9z"/>
+			<path d="M11.9,24.7V37c0,0.3,0.1,0.4,0.3,0.4h23.6c0.3,0,0.4-0.2,0.4-0.4V24.7H11.9z"/>
+		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st5;">
+		<path style="&st1;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>
diff --git a/applications/content/template/docbook/images/important.gif b/applications/content/template/docbook/images/important.gif
new file mode 100644
index 0000000..6795d9a
--- /dev/null
+++ b/applications/content/template/docbook/images/important.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/important.png b/applications/content/template/docbook/images/important.png
new file mode 100644
index 0000000..12c90f6
--- /dev/null
+++ b/applications/content/template/docbook/images/important.png
Binary files differ
diff --git a/applications/content/template/docbook/images/important.svg b/applications/content/template/docbook/images/important.svg
new file mode 100644
index 0000000..dd84f3f
--- /dev/null
+++ b/applications/content/template/docbook/images/important.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:#FFFFFF;stroke:none;">
+	<!ENTITY st1 "fill:#FFFFFF;stroke-width:6.6112;stroke-linecap:round;stroke-linejoin:round;">
+	<!ENTITY st2 "stroke:#FFFFFF;stroke-width:6.6112;">
+	<!ENTITY st3 "fill:none;stroke:none;">
+	<!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+	<!ENTITY st5 "stroke:none;">
+]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+	<g id="Layer_x0020_3" style="&st4;">
+		<g>
+			<path style="&st2;" d="M41.7,35.3L26.6,9.4c-0.6-1-1.7-1.7-2.9-1.6c-1.2,0-2.3,0.7-2.9,1.7L6.3,35.4c-0.6,1-0.6,2.3,0,3.3c0.6,1,1.7,1.6,2.9,1.6h29.6c1.2,0,2.3-0.6,2.9-1.7c0.6-1,0.6-2.3,0-3.3z"/>
+			<path style="&st1;" d="M23.7,11L9.2,37h29.6L23.7,11z"/>
+			<path style="&st0;" d="M23.7,11.9L10.3,36.1h27.5l-14-24.1z"/>
+			<g>
+				<path style="&st5;" d="M24.1,34c-1.1,0-1.8-0.8-1.8-1.8c0-1.1,0.7-1.8,1.8-1.8c1.1,0,1.8,0.7,1.8,1.8c0,1-0.7,1.8-1.8,1.8h0z M22.9,29.3l-0.4-9.1h3.2l-0.4,9.1h-2.3z"/>
+			</g>
+		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st4;">
+		<path style="&st3;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>
diff --git a/applications/content/template/docbook/images/important.tif b/applications/content/template/docbook/images/important.tif
new file mode 100644
index 0000000..184de63
--- /dev/null
+++ b/applications/content/template/docbook/images/important.tif
Binary files differ
diff --git a/applications/content/template/docbook/images/next.gif b/applications/content/template/docbook/images/next.gif
new file mode 100644
index 0000000..aa1516e
--- /dev/null
+++ b/applications/content/template/docbook/images/next.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/next.png b/applications/content/template/docbook/images/next.png
new file mode 100644
index 0000000..45835bf
--- /dev/null
+++ b/applications/content/template/docbook/images/next.png
Binary files differ
diff --git a/applications/content/template/docbook/images/next.svg b/applications/content/template/docbook/images/next.svg
new file mode 100644
index 0000000..75fa83e
--- /dev/null
+++ b/applications/content/template/docbook/images/next.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:none;stroke:none;">
+	<!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;">
+	<!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+	<!ENTITY st3 "stroke:none;">
+]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+	<g id="Layer_x0020_3" style="&st2;">
+		<g>
+			<path style="&st1;" d="M22.4,41.1c0,0.3,0.3,0.3,0.5,0.2l16.6-16.9c0.5-0.5,0.4-0.7,0-1L22.9,6.7c-0.1-0.1-0.4-0.1-0.4,0.1v10H8.9c-0.3,0-0.5,0.2-0.5,0.4l0,13.3C8.4,30.9,8.6,31,9,31h13.5l-0.1,10.1z"/>
+			<path style="&st3;" d="M22.4,41.1c0,0.3,0.3,0.3,0.5,0.2l16.6-16.9c0.5-0.5,0.4-0.7,0-1L22.9,6.7c-0.1-0.1-0.4-0.1-0.4,0.1v10H8.9c-0.3,0-0.5,0.2-0.5,0.4l0,13.3C8.4,30.9,8.6,31,9,31h13.5l-0.1,10.1z"/>
+		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st2;">
+		<path style="&st0;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>
diff --git a/applications/content/template/docbook/images/note.gif b/applications/content/template/docbook/images/note.gif
new file mode 100644
index 0000000..f329d35
--- /dev/null
+++ b/applications/content/template/docbook/images/note.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/note.png b/applications/content/template/docbook/images/note.png
new file mode 100644
index 0000000..d0c3c64
--- /dev/null
+++ b/applications/content/template/docbook/images/note.png
Binary files differ
diff --git a/applications/content/template/docbook/images/note.svg b/applications/content/template/docbook/images/note.svg
new file mode 100644
index 0000000..648299d
--- /dev/null
+++ b/applications/content/template/docbook/images/note.svg
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:none;stroke:#FFFFFF;stroke-width:12.1438;stroke-linejoin:round;">
+	<!ENTITY st1 "fill:none;stroke-width:1.2429;">
+	<!ENTITY st2 "fill:#FFFFFF;stroke:none;">
+	<!ENTITY st3 "fill:none;stroke:#FFFFFF;stroke-width:12.7649;stroke-linejoin:round;">
+	<!ENTITY st4 "fill:#FFFFFF;stroke-width:6.3824;stroke-linejoin:round;">
+	<!ENTITY st5 "fill:none;stroke:none;">
+	<!ENTITY st6 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+	<!ENTITY st7 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:12.7649;stroke-linejoin:round;">
+	<!ENTITY st8 "stroke:none;">
+	<!ENTITY st9 "fill:none;stroke-width:4.9715;stroke-linejoin:round;">
+]>
+<svg  xmlns="http://www.w3.org/2000/svg" width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve">
+	<g id="Layer_x0020_1" style="&st6;">
+		<path style="&st0;" d="M35.7,19.8v18.9H11V8.8h13.9l10.8,11z"/>
+		<path style="&st3;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/>
+		<path style="&st7;" d="M35.7,8.8H11v29.9h24.7V8.8z"/>
+		<path style="&st4;" d="M35.7,8.8H11v29.9h24.7V8.8z"/>
+		<path style="&st2;" d="M35.7,8.8H11v29.9h24.7V8.8z"/>
+	</g>
+	<g id="Layer_x0020_4" style="&st6;">
+		<path style="&st9;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/>
+		<path style="&st8;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/>
+		<path style="&st8;" d="M20.6,14.7l-2.5,2.5L17,13.4l3.6,1.3z"/>
+		<path style="&st1;" d="M19.6,22.2l3-0.3l2.4-2.4l0.4-2.8"/>
+		<path style="&st2;" d="M20.4,14.9L18.3,17l1.6,5.2l2.7-0.3l2.4-2.4l0.3-2.4l-5-2.2z"/>
+	</g>
+	<g id="crop" style="&st6;">
+		<path style="&st5;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>
diff --git a/applications/content/template/docbook/images/note.tif b/applications/content/template/docbook/images/note.tif
new file mode 100644
index 0000000..08644d6
--- /dev/null
+++ b/applications/content/template/docbook/images/note.tif
Binary files differ
diff --git a/applications/content/template/docbook/images/prev.gif b/applications/content/template/docbook/images/prev.gif
new file mode 100644
index 0000000..64ca8f3
--- /dev/null
+++ b/applications/content/template/docbook/images/prev.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/prev.png b/applications/content/template/docbook/images/prev.png
new file mode 100644
index 0000000..cf24654
--- /dev/null
+++ b/applications/content/template/docbook/images/prev.png
Binary files differ
diff --git a/applications/content/template/docbook/images/prev.svg b/applications/content/template/docbook/images/prev.svg
new file mode 100644
index 0000000..6d88ffd
--- /dev/null
+++ b/applications/content/template/docbook/images/prev.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:none;stroke:none;">
+	<!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;">
+	<!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+	<!ENTITY st3 "stroke:none;">
+]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+	<g id="Layer_x0020_3" style="&st2;">
+		<g>
+			<path style="&st1;" d="M25.6,6.9c0-0.3-0.3-0.3-0.5-0.2L8.4,23.6c-0.5,0.5-0.4,0.7,0,1l16.6,16.6c0.1,0.1,0.4,0.1,0.4-0.1v-10h13.6c0.3,0,0.5-0.2,0.5-0.4l0-13.3c0-0.3-0.2-0.5-0.5-0.5H25.5l0.1-10.1z"/>
+			<path style="&st3;" d="M25.6,6.9c0-0.3-0.3-0.3-0.5-0.2L8.4,23.6c-0.5,0.5-0.4,0.7,0,1l16.6,16.6c0.1,0.1,0.4,0.1,0.4-0.1v-10h13.6c0.3,0,0.5-0.2,0.5-0.4l0-13.3c0-0.3-0.2-0.5-0.5-0.5H25.5l0.1-10.1z"/>
+		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st2;">
+		<path style="&st0;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>
diff --git a/applications/content/template/docbook/images/tip.gif b/applications/content/template/docbook/images/tip.gif
new file mode 100644
index 0000000..823f2b4
--- /dev/null
+++ b/applications/content/template/docbook/images/tip.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/tip.png b/applications/content/template/docbook/images/tip.png
new file mode 100644
index 0000000..5c4aab3
--- /dev/null
+++ b/applications/content/template/docbook/images/tip.png
Binary files differ
diff --git a/applications/content/template/docbook/images/tip.svg b/applications/content/template/docbook/images/tip.svg
new file mode 100644
index 0000000..4a64a15
--- /dev/null
+++ b/applications/content/template/docbook/images/tip.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:none;stroke:#000000;stroke-width:1.0944;">
+	<!ENTITY st1 "fill:#FFFFFF;stroke:none;">
+	<!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#FFFFFF;stroke-width:5.6139;stroke-miterlimit:4;">
+	<!ENTITY st3 "fill:none;stroke:none;">
+	<!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+	<!ENTITY st5 "stroke:none;">
+]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+	<g id="Layer_x0020_3" style="&st2;">
+		<g>
+			<path d="M9.5,18.6c0,8,6.5,14.4,14.4,14.4c8,0,14.4-6.5,14.4-14.4c0-8-6.5-14.4-14.4-14.4c-8,0-14.4,6.5-14.4,14.4z M12.8,18.6c0-6.2,5-11.2,11.2-11.2c6.2,0,11.2,5,11.2,11.2c0,6.2-5,11.2-11.2,11.2c-6.2,0-11.2-5-11.2-11.2z"/>
+			<path d="M28.1,37.9l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/>
+			<path d="M28.1,34.8l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/>
+			<path d="M28.1,31.6l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8s0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8s-0.9-1.5-1.8-1.4z"/>
+			<path d="M23.1,41.3v0.9c0,0.9,0.7,1.6,1.6,1.6c0.9,0,1.6-0.7,1.6-1.6v-0.9h-3.3z"/>
+			<path style="&st1;" d="M35.9,18.7c0,6.6-5.4,12-12,12c-6.6,0-12-5.4-12-12s5.4-12,12-12c6.6,0,12,5.4,12,12z"/>
+			<path style="&st5;" d="M9.6,18.6c0,8,6.5,14.4,14.4,14.4c8,0,14.4-6.5,14.4-14.4c0-8-6.5-14.4-14.4-14.4c-8,0-14.4,6.5-14.4,14.4z M12.9,18.6c0-6.2,5-11.2,11.2-11.2c6.2,0,11.2,5,11.2,11.2c0,6.2-5,11.2-11.2,11.2c-6.2,0-11.2-5-11.2-11.2z"/>
+			<path style="&st5;" d="M28.2,37.9l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/>
+			<path style="&st5;" d="M28.2,34.7l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/>
+			<path style="&st5;" d="M28.2,31.6l-7.6,0.8c-0.9,0.1-1.5,0.9-1.4,1.8c0.1,0.9,0.9,1.5,1.8,1.4l7.6-0.8c0.9-0.1,1.5-0.9,1.4-1.8c-0.1-0.9-0.9-1.5-1.8-1.4z"/>
+			<path style="&st5;" d="M23.1,41.3v0.9c0,0.9,0.7,1.6,1.6,1.6s1.6-0.7,1.6-1.6v-0.9h-3.3z"/>
+			<path style="&st0;" d="M22.3,28.3l-3.5-10.7c0,0,6.6,3.9,10.5,0"/>
+		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st4;">
+		<path style="&st3;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>
diff --git a/applications/content/template/docbook/images/tip.tif b/applications/content/template/docbook/images/tip.tif
new file mode 100644
index 0000000..4a3d8c7
--- /dev/null
+++ b/applications/content/template/docbook/images/tip.tif
Binary files differ
diff --git a/applications/content/template/docbook/images/toc-blank.png b/applications/content/template/docbook/images/toc-blank.png
new file mode 100644
index 0000000..6ffad17
--- /dev/null
+++ b/applications/content/template/docbook/images/toc-blank.png
Binary files differ
diff --git a/applications/content/template/docbook/images/toc-minus.png b/applications/content/template/docbook/images/toc-minus.png
new file mode 100644
index 0000000..abbb020
--- /dev/null
+++ b/applications/content/template/docbook/images/toc-minus.png
Binary files differ
diff --git a/applications/content/template/docbook/images/toc-plus.png b/applications/content/template/docbook/images/toc-plus.png
new file mode 100644
index 0000000..941312c
--- /dev/null
+++ b/applications/content/template/docbook/images/toc-plus.png
Binary files differ
diff --git a/applications/content/template/docbook/images/up.gif b/applications/content/template/docbook/images/up.gif
new file mode 100644
index 0000000..aabc2d0
--- /dev/null
+++ b/applications/content/template/docbook/images/up.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/up.png b/applications/content/template/docbook/images/up.png
new file mode 100644
index 0000000..07634de
--- /dev/null
+++ b/applications/content/template/docbook/images/up.png
Binary files differ
diff --git a/applications/content/template/docbook/images/up.svg b/applications/content/template/docbook/images/up.svg
new file mode 100644
index 0000000..d31aa9c
--- /dev/null
+++ b/applications/content/template/docbook/images/up.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:none;stroke:none;">
+	<!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;">
+	<!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+	<!ENTITY st3 "stroke:none;">
+]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+	<g id="Layer_x0020_3" style="&st2;">
+		<g>
+			<path style="&st1;" d="M41.1,25.6c0.3,0,0.3-0.3,0.2-0.5L24.4,8.4c-0.5-0.5-0.7-0.4-1,0L6.7,25.1c-0.1,0.1-0.1,0.4,0.1,0.4h10v13.6c0,0.3,0.2,0.5,0.4,0.5l13.3,0c0.3,0,0.5-0.2,0.5-0.5V25.5l10.1,0.1z"/>
+			<path style="&st3;" d="M41.1,25.6c0.3,0,0.3-0.3,0.2-0.5L24.4,8.4c-0.5-0.5-0.7-0.4-1,0L6.7,25.1c-0.1,0.1-0.1,0.4,0.1,0.4h10v13.6c0,0.3,0.2,0.5,0.4,0.5l13.3,0c0.3,0,0.5-0.2,0.5-0.5V25.5l10.1,0.1z"/>
+		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st2;">
+		<path style="&st0;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>
diff --git a/applications/content/template/docbook/images/warning.gif b/applications/content/template/docbook/images/warning.gif
new file mode 100644
index 0000000..3adf191
--- /dev/null
+++ b/applications/content/template/docbook/images/warning.gif
Binary files differ
diff --git a/applications/content/template/docbook/images/warning.png b/applications/content/template/docbook/images/warning.png
new file mode 100644
index 0000000..1c33db8
--- /dev/null
+++ b/applications/content/template/docbook/images/warning.png
Binary files differ
diff --git a/applications/content/template/docbook/images/warning.svg b/applications/content/template/docbook/images/warning.svg
new file mode 100644
index 0000000..fc8d748
--- /dev/null
+++ b/applications/content/template/docbook/images/warning.svg
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:#000000;stroke:#FFFFFF;stroke-width:7.9139;stroke-linejoin:round;">
+	<!ENTITY st1 "fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#000000;stroke-miterlimit:4;">
+	<!ENTITY st2 "fill:none;stroke:none;">
+	<!ENTITY st3 "fill:#000000;">
+	<!ENTITY st4 "fill-rule:evenodd;clip-rule:evenodd;stroke:none;">
+	<!ENTITY st5 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
+]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+	<g id="Layer_x0020_4" style="&st1;">
+		<g style="&st4;">
+			<path style="&st0;" d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2L31.6,42.3H16.4z"/>
+			<path style="&st3;" d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2L31.6,42.3H16.4z"/>
+			<path d="M11.7,17.7l18.7,18.7l5.9-5.9L17.6,11.7l-5.9,5.9z"/>
+			<path d="M11.7,30.5l5.9,5.9l18.7-18.7l-5.9-5.9L11.7,30.5z"/>
+		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st5;">
+		<path style="&st2;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>
diff --git a/applications/content/template/docbook/images/warning.tif b/applications/content/template/docbook/images/warning.tif
new file mode 100644
index 0000000..7b6611e
--- /dev/null
+++ b/applications/content/template/docbook/images/warning.tif
Binary files differ
diff --git a/applications/content/template/docbook/install.sh b/applications/content/template/docbook/install.sh
new file mode 100755
index 0000000..aebf1ea
--- /dev/null
+++ b/applications/content/template/docbook/install.sh
@@ -0,0 +1,977 @@
+#!/bin/bash
+# $Id$
+# $Source$ #
+
+# install.sh - Set up user environment for a XML/XSLT distribution
+
+# This is as an interactive installer for updating your
+# environment to use an XML/XSLT distribution such as the DocBook
+# XSL Stylesheets. Its main purpose is to configure your
+# environment with XML catalog data and schema "locating rules"
+# data provided in the XML/XSLT distribution.
+#
+# Although this installer was created for the DocBook project, it
+# is a general-purpose tool that can be used with any XML/XSLT
+# distribution that provides XML/SGML catalogs and locating rules.
+#
+# This script is mainly intended to make things easier for you if
+# you want to install a particular XML/XSLT distribution that has
+# not (yet) been packaged for your OS distro (Debian, Fedora,
+# whatever), or to use "snapshot" or development releases 
+#
+# It works by updating your shell startup file (e.g., .bashrc and
+# .cshrc) and .emacs file and by finding or creating a writable
+# CatalogManager.properties file to update.
+#
+# It makes backup copies of any files it touches, and also
+# generates a uninstall.sh script for reverting its changes.
+#
+# In the same directory where it is located, it expects to find
+# the following four files:
+#   - locatingrules.xml
+#   - catalog.xml
+#   - catalog
+#   - .urilist
+# And if it's unable to locate a CatalogManager.properties file in
+# your environment, it expects to find an "example" one in the
+# same directory as itself, which it copies over to your
+# ~/.resolver directory.
+#
+# If the distribution contains any executables, change the value
+# of the thisBinDir to a colon-separated list of the pathnames of
+# the directories that contain those executables.
+
+# mydir is the "canonical" absolute pathname for install.sh
+mydir=$(cd -P $(dirname $0) && pwd -P) || exit 1
+
+thisLocatingRules=$mydir/locatingrules.xml
+thisXmlCatalog=$mydir/catalog.xml
+thisSgmlCatalog=$mydir/catalog
+
+# .urilist file contains a list of pairs of local pathnames and
+# URIs to test for catalog resolution
+thisUriList=$mydir/.urilist
+exampleCatalogManager=$mydir/.CatalogManager.properties.example
+thisCatalogManager=$HOME/.resolver/CatalogManager.properties
+
+# thisBinDir directory is a colon-separated list of the pathnames
+# to all directories that contain executables provided with the
+# distribution (for example, the DocBook XSL Stylesheets
+# distribution contains a "docbook-xsl-update" convenience script
+# for rsync'ing up to the latest docbook-xsl snapshot). The
+# install.sh script adds the value of thisBinDir to your PATH
+# environment variable
+thisBinDir=$mydir/tools/bin
+
+emit_message() {
+  echo "$1" 1>&2
+}
+
+if [ ! "${*#--batch}" = "$*" ]; then
+  batchmode="Yes";
+else
+  batchmode="No";
+  emit_message
+  if [ ! "$1" = "--test" ]; then 
+    emit_message "NOTE: For non-interactive installs/uninstalls, use --batch"
+    if [ ! "$1" = "--uninstall" ]; then
+      emit_message
+    fi
+  fi
+fi
+
+osName="Unidentified"
+if uname -s | grep -qi "cygwin"; then
+  osName="Cygwin"
+fi
+
+classPathSeparator=":"
+if [ "$osName" = "Cygwin" ]; then
+  thisJavaXmlCatalog=$(cygpath -m $thisXmlCatalog)
+  classPathSeparator=";"
+else
+  thisJavaXmlCatalog=$thisXmlCatalog
+fi
+
+main() {
+  removeOldFiles
+  checkRoot
+  updateCatalogManager
+  checkForResolver
+  writeDotFiles
+  updateUserStartupFiles
+  updateUserDotEmacs
+  writeUninstallFile
+  writeTestFile
+  printExitMessage
+}
+
+removeOldFiles() {
+  rm -f $mydir/.profile.incl
+  rm -f $mydir/.cshrc.incl
+  rm -f $mydir/.emacs.el
+}
+
+checkRoot() {
+  if [ $(id -u)  == "0" ]; then
+    cat 1>&2 <<EOF
+
+WARNING: This install script is meant to be run as a non-root
+         user, but you are running it as root.
+
+EOF
+    read -s -n1 -p "Are you sure you want to continue? [No] "
+    emit_message "$REPLY"
+    case $REPLY in
+      [yY])
+      emit_message
+      ;;
+      *) emit_message "OK, exiting without making changes."
+      exit
+      ;;
+    esac
+  fi
+  return 0
+}
+
+updateCatalogManager() {
+
+  #  - finds or creates a writable CatalogManager.properties file
+  #
+  #  - adds the catalog.xml file for this distribution to the
+  #    CatalogManager.properties file found
+
+  if [ -z "$CLASSPATH" ]; then
+    cat 1>&2 <<EOF
+
+NOTE: There is no CLASSPATH variable set in your environment.
+      No attempt was made to find a CatalogManager.properties
+      file.  Using $thisCatalogManager instead
+EOF
+  else
+    # split CLASSPATH in a list of pathnames by replacing all separator
+    # characters with spaces
+    if [ "$osName" = "Cygwin" ]; then
+      pathnames=$(echo $CLASSPATH | tr ";" " ")
+    else
+      pathnames=$(echo $CLASSPATH | tr ":" " ")
+    fi
+    for path in $pathnames; do
+    if [ "$osName" = "Cygwin" ]; then
+      path=$(cygpath -u $path)
+    fi
+      # strip out trailing slash from pathname
+      path=$(echo $path | sed 's/\/$//')
+      # find CatalogManager.properties file
+      if [ -f $path/CatalogManager.properties ];
+      then
+        existingCatalogManager=$path/CatalogManager.properties
+        break
+      fi
+    done
+  fi
+  # end of CLASSPATH check
+
+  if [ -w "$existingCatalogManager" ]; then
+    # existing CatalogManager.properties was found and it is
+    # writable, so use it
+    myCatalogManager=$existingCatalogManager
+  else
+    if [ -f "$existingCatalogManager" ]; then
+      # a non-writable CatalogManager.properties exists, so emit a
+      # note saying that it won't be used
+      cat 1>&2 <<EOF
+NOTE: $existingCatalogManager file found,
+      but you don't have permission to write to it.
+      Will instead use:
+      $thisCatalogManager
+EOF
+    else
+      # CLASSPATH is set, but no CatalogManager.properties found
+      if [ -n "$CLASSPATH" ]; then
+        cat 1>&2 <<EOF
+NOTE: No CatalogManager.properties found from CLASSPATH.
+      Will instead use:
+      $thisCatalogManager
+EOF
+      fi
+    fi
+    if [ "$batchmode" = "Yes" ]; then
+      emit_message
+    fi
+    # end of check for existing writable CatalogManager.properties
+
+    if [ -f $thisCatalogManager ]; then
+      myCatalogManager=$thisCatalogManager
+    else
+      REPLY=""
+      if [ ! "$batchmode" = "Yes" ]; then
+        emit_message
+        read -s -n1 -p "Create $thisCatalogManager file? [Yes] "
+        emit_message "$REPLY"
+        emit_message
+      fi
+      case $REPLY in
+        [nNqQ])
+        emitNoChangeMsg
+        ;;
+        *)
+        if [ ! -d "${thisCatalogManager%/*}" ]; then
+          mkdir -p ${thisCatalogManager%/*}
+        fi
+        cp $mydir/.CatalogManager.properties.example $thisCatalogManager || exit 1
+        emit_message "NOTE: Created the following file:"
+        emit_message "      $thisCatalogManager"
+        myCatalogManager=$thisCatalogManager
+        ;;
+      esac
+      # end of creating "private" CatalogManager.properties
+    fi
+    # end of check for "private" CatalogManager.properties
+  fi
+  # end of check finding/creating writable CatalogManager.properties
+
+  if [ -n "$myCatalogManager" ]; then
+    etcXmlCatalog=
+    catalogsLine=$(grep "^catalogs=" $myCatalogManager)
+    if [ -f /etc/xml/catalog ] && [ "$osName" != "Cygwin" ] \
+      && [ "${catalogsLine#*/etc/xml/catalog*}" = "$catalogsLine" ]; then
+      cat 1>&2 <<EOF
+
+WARNING: /etc/xml/catalog exists but was not found in:
+         $myCatalogManager
+         If /etc/xml/catalog file has content, you probably
+         should reference it in:
+         $myCatalogManager
+         This installer can automatically add it for you,
+         but BE WARNED that once it has been added, the
+         uninstaller for this distribution CANNOT REMOVE IT
+         automatically during uninstall. If you no longer want
+         it included, you will need to remove it manually.
+
+EOF
+      REPLY=""
+      if [ ! "$batchmode" = "Yes" ]; then
+        read -s -n1 -p "Add /etc/xml/catalog to $myCatalogManager? [Yes] "
+        emit_message "$REPLY"
+      fi
+      case $REPLY in
+        [nNqQ])
+        emit_message
+        ;;
+        *)
+        etcXmlCatalog=/etc/xml/catalog
+        ;;
+      esac
+    fi
+
+    catalogBackup="$myCatalogManager.$$.bak"
+    if [ ! -w "${myCatalogManager%/*}" ]; then
+      emit_message
+      emit_message "WARNING: ${myCatalogManager%/*} directory is not writable."
+      emit_message
+      emitNoChangeMsg
+    else
+      REPLY=""
+      if [ ! "$batchmode" = "Yes" ]; then
+        emit_message
+        emit_message "Add $thisJavaXmlCatalog"
+        read -s -n1 -p "to $myCatalogManager file? [Yes] "
+        emit_message "$REPLY"
+        emit_message
+      fi
+      case $REPLY in
+        [nNqQ])
+        emitNoChangeMsg
+        ;;
+        *)
+        if [ "$catalogsLine" ] ; then
+          if [ "${catalogsLine#*$thisJavaXmlCatalog*}" != "$catalogsLine" ]; then
+            emit_message "NOTE: $thisJavaXmlCatalog"
+            emit_message "      already in:"
+            emit_message "      $myCatalogManager"
+          else
+            mv $myCatalogManager $catalogBackup || exit 1
+            sed "s#^catalogs=\(.*\)\$#catalogs=$thisJavaXmlCatalog;\1;$etcXmlCatalog#" $catalogBackup \
+            | sed 's/;\+/;/' | sed 's/;$//' > $myCatalogManager || exit 1
+            emit_message "NOTE: Successfully updated the following file:"
+            emit_message "      $myCatalogManager"
+            emit_message "      Backup written to:"
+            emit_message "      $catalogBackup"
+          fi
+        else
+          mv $myCatalogManager $catalogBackup || exit 1
+          cp $catalogBackup $myCatalogManager
+          echo "catalogs=$thisJavaXmlCatalog;$etcXmlCatalog" \
+          | sed 's/;\+/;/' | sed 's/;$//' >> $myCatalogManager || exit 1
+          emit_message "NOTE: \"catalogs=\" line added to $myCatalogManager."
+          emit_message "      Backup written to $catalogBackup"
+        fi
+        ;;
+      esac
+      # end of backing up and updating CatalogManager.properties
+    fi
+  fi
+  # end of CatalogManager.properties updates
+
+  if [ "$osName" = "Cygwin" ]; then
+    myCatalogManager=$(cygpath -m $myCatalogManager)
+  fi
+  return 0
+}
+
+writeDotFiles() {
+  while read; do
+    echo "$REPLY" >> $mydir/.profile.incl
+  done <<EOF
+# $thisBinDir is not in PATH, so add it
+if [ "\${PATH#*$thisBinDir*}" = "\$PATH" ]; then
+  PATH="$thisBinDir:\$PATH"
+  export PATH
+fi
+if [ -z "\$XML_CATALOG_FILES" ]; then
+  XML_CATALOG_FILES="$thisXmlCatalog"
+else
+  # $thisXmlCatalog is not in XML_CATALOG_FILES, so add it
+  if [ "\${XML_CATALOG_FILES#*$thisXmlCatalog*}" = "\$XML_CATALOG_FILES" ]; then
+    XML_CATALOG_FILES="$thisXmlCatalog \$XML_CATALOG_FILES"
+  fi
+fi
+# /etc/xml/catalog exists but is not in XML_CATALOG_FILES, so add it
+if [ -f /etc/xml/catalog ] && \
+  [ "\${XML_CATALOG_FILES#*/etc/xml/catalog*}" = "\$XML_CATALOG_FILES" ]; then
+  XML_CATALOG_FILES="\$XML_CATALOG_FILES /etc/xml/catalog"
+fi
+export XML_CATALOG_FILES
+
+if [ -z "\$SGML_CATALOG_FILES" ]; then
+  SGML_CATALOG_FILES="$thisSgmlCatalog"
+else
+  # $thisSgmlCatalog is not in SGML_CATALOG_FILES, so add it
+  if [ "\${SGML_CATALOG_FILES#*$thisSgmlCatalog}" = "\$SGML_CATALOG_FILES" ]; then
+    SGML_CATALOG_FILES="$thisSgmlCatalog:\$SGML_CATALOG_FILES"
+  fi
+fi
+# /etc/sgml/catalog exists but is not in SGML_CATALOG_FILES, so add it
+if [ -f /etc/sgml/catalog ] && \
+  [ "\${SGML_CATALOG_FILES#*/etc/sgml/catalog*}" = "\$SGML_CATALOG_FILES" ]; then
+  SGML_CATALOG_FILES="\$SGML_CATALOG_FILES:/etc/sgml/catalog"
+fi
+export SGML_CATALOG_FILES
+EOF
+
+while read; do
+  echo "$REPLY" >> $mydir/.cshrc.incl
+done <<EOF
+# $thisBinDir is not in PATH, so add it
+if ( "\\\`echo \$PATH | grep -v $thisBinDir\\\`" != "" ) then
+  setenv PATH "$thisBinDir:\$PATH"
+endif
+if ( ! $\?XML_CATALOG_FILES ) then
+  setenv XML_CATALOG_FILES "$thisXmlCatalog"
+# $thisXmlCatalog is not in XML_CATALOG_FILES, so add it
+else if ( "\\\`echo \$XML_CATALOG_FILES | grep -v $thisXmlCatalog\\\`" != "" ) then
+  setenv XML_CATALOG_FILES "$thisXmlCatalog \$XML_CATALOG_FILES"
+endif
+endif
+# /etc/xml/catalog exists but is not in XML_CATALOG_FILES, so add it
+if ( -f /etc/xml/catalog && "\\\`echo \$XML_CATALOG_FILES | grep -v /etc/xml/catalog\\\`" != "" ) then
+  setenv XML_CATALOG_FILES "\$XML_CATALOG_FILES /etc/xml/catalog"
+endif
+
+endif
+if ( ! $\?SGML_CATALOG_FILES ) then
+  setenv SGML_CATALOG_FILES "$thisSgmlCatalog"
+else if ( "\\\`echo \$SGML_CATALOG_FILES | grep -v $thisSgmlCatalog\\\`" != "" ) then
+  setenv SGML_CATALOG_FILES "$thisSgmlCatalog:\$SGML_CATALOG_FILES"
+endif
+endif
+# /etc/SGML/catalog exists but is not in SGML_CATALOG_FILES, so add it
+if ( -f /etc/sgml/catalog && "\\\`echo \$SGML_CATALOG_FILES | grep -v /etc/sgml/catalog\\\`" != "" ) then
+  setenv SGML_CATALOG_FILES {\$SGML_CATALOG_FILES}:/etc/sgml/catalog
+endif
+EOF
+
+if [ -n "$myCatalogManager" ]; then
+  myCatalogManagerDir=${myCatalogManager%/*}
+  while read; do
+    echo "$REPLY" >> $mydir/.profile.incl
+  done <<EOF
+
+
+if [ -z "\$CLASSPATH" ]; then
+  CLASSPATH="$myCatalogManagerDir"
+else
+  # $myCatalogManagerDir is not in CLASSPATH, so add it
+  if [ "\${CLASSPATH#*$myCatalogManagerDir*}" = "\$CLASSPATH" ]; then
+    CLASSPATH="$myCatalogManagerDir$classPathSeparator\$CLASSPATH"
+  fi
+fi
+export CLASSPATH
+EOF
+
+  while read; do
+    echo "$REPLY" >> $mydir/.cshrc.incl
+  done <<EOF
+
+
+if ( ! $\?CLASSPATH ) then
+  setenv CLASSPATH "$myCatalogManagerDir"
+# $myCatalogManagerDir is not in CLASSPATH, so add it
+else if ( "\\\`echo \$CLASSPATH | grep -v $myCatalogManagerDir\\\`" != "" ) then
+  setenv CLASSPATH "$myCatalogManagerDir$classPathSeparator\$CLASSPATH"
+endif
+endif
+EOF
+
+fi
+
+while read; do
+  echo "$REPLY" >> $mydir/.emacs.el
+done <<EOF
+(add-hook
+  'nxml-mode-hook
+  (lambda ()
+    (setq rng-schema-locating-files-default
+          (append '("$thisLocatingRules")
+                  rng-schema-locating-files-default ))))
+EOF
+
+return 0
+}
+
+updateUserStartupFiles() {
+  if [ ! "$batchmode" = "Yes" ]; then
+  cat 1>&2 <<EOF
+
+NOTE: To source your environment correctly for using the catalog
+      files in this distribution, you need to update one or more
+      of your shell startup files. This installer can
+      automatically make the necessary changes. Or, if you prefer,
+      you can make the changes manually.
+
+EOF
+  else
+    emit_message
+  fi
+
+  # if running csh or tcsh, target .cshrc and .tcshrc files for
+  # update; otherwise, target .bash_* and .profiles
+
+  parent=$(ps -p $PPID | grep "/")
+  if [ "${parent#*csh}" != "$parent" ] || [ "${parent#*tcsh}" != "$parent" ]; then
+    myStartupFiles=".cshrc .tcshrc"
+    appendLine="source $mydir/.cshrc.incl"
+  else
+    myStartupFiles=".bash_profile .bash_login .profile .bashrc"
+    appendLine=". $mydir/.profile.incl"
+  fi
+
+  for file in $myStartupFiles; do
+    if [ -f "$HOME/$file" ]; then
+      dotFileBackup=$HOME/$file.$$.bak
+      REPLY=""
+      if [ ! "$batchmode" = "Yes" ]; then
+        read -s -n1 -p "Update $HOME/$file? [Yes] "
+        emit_message "$REPLY"
+      fi
+      case $REPLY in
+        [nNqQ])
+        cat 1>&2 <<EOF
+
+NOTE: No change made to $HOME/$file. You either need
+      to add the following line to it, or manually source
+      the shell environment for this distribution each
+      time you want use it.
+
+$appendLine
+
+EOF
+        ;;
+        *)
+        lineExists="$(grep "$appendLine" $HOME/$file )"
+        if [ ! "$lineExists" ]; then
+          mv $HOME/$file $dotFileBackup     || exit 1
+          cp $dotFileBackup $HOME/$file     || exit 1
+          echo "$appendLine" >> $HOME/$file || exit 1
+          cat 1>&2 <<EOF
+NOTE: Successfully updated the following file:
+      $HOME/$file 
+      Backup written to:
+      $dotFileBackup
+
+EOF
+        else
+          cat 1>&2 <<EOF
+NOTE: The following file already contains information for this
+      distribution, so I did not update it.
+      $HOME/$file
+
+EOF
+        fi
+        ;;
+      esac
+    fi
+  done
+  if [ -z "$dotFileBackup" ]; then
+    if [ ! "$batchmode" = "Yes" ]; then
+      emit_message
+    fi
+    cat 1>&2 <<EOF
+NOTE: No shell startup files updated. You can source the
+      environment for this distribution manually, each time you
+      want to use it, by typing the following.
+
+$appendLine
+
+EOF
+  fi
+}
+
+updateUserDotEmacs() {
+  if [ -f $thisLocatingRules ]; then
+  cat 1>&2 <<EOF
+
+NOTE: This distribution includes a "schema locating rules" file
+      for Emacs/nXML.  To use it, you should update either your
+      .emacs or .emacs.el file.  This installer can automatically
+      make the necessary changes. Or, if you prefer, you can make
+      the changes manually.
+
+EOF
+
+  emacsAppendLine="(load-file \"$mydir/.emacs.el\")"
+  myEmacsFile=
+  for file in .emacs .emacs.el; do
+    if [ -f "$HOME/$file" ]; then
+      myEmacsFile=$HOME/$file
+      break
+    fi
+  done
+  if [ ! -f "$myEmacsFile" ]; then
+    REPLY=""
+    if [ ! "$batchmode" = "Yes" ]; then
+      read -s -n1 -p "No .emacs or .emacs.el file. Create one? [No] "
+      emit_message "$REPLY"
+      emit_message
+    fi
+    case $REPLY in
+      [yY])
+      myEmacsFile=$HOME/.emacs
+      touch $myEmacsFile
+      ;;
+      *)
+      cat 1>&2 <<EOF
+NOTE: No Emacs changes made. To use this distribution with,
+      Emacs/nXML, you can create a .emacs file and manually add
+      the following line to it, or you can run it as a command
+      within Emacs.
+
+$emacsAppendLine
+
+EOF
+      ;;
+    esac
+  fi
+  if [ -n "$myEmacsFile" ]; then
+    REPLY=""
+    if [ ! "$batchmode" = "Yes" ]; then
+      read -s -n1 -p  "Update $myEmacsFile? [Yes] "
+      emit_message "$REPLY"
+      emit_message
+    fi
+    case $REPLY in
+      [nNqQ])
+      cat 1>&2 <<EOF
+
+NOTE: No change made to $myEmacsFile. To use this distribution
+      with Emacs/nXML, you can manually add the following line
+      to your $myEmacsFile, or you can run it as a command
+      within Emacs.
+
+$emacsAppendLine
+
+EOF
+      ;;
+      *)
+      lineExists="$(grep "$emacsAppendLine" $myEmacsFile)"
+      if [ ! "$lineExists" ]; then
+        dotEmacsBackup=$myEmacsFile.$$.bak
+        mv $myEmacsFile $dotEmacsBackup    || exit 1
+        cp $dotEmacsBackup $myEmacsFile    || exit 1
+        echo "$emacsAppendLine" >> $myEmacsFile || exit 1
+        cat 1>&2 <<EOF
+NOTE: Successfully updated the following file:
+      $myEmacsFile
+      Backup written to:
+      $dotEmacsBackup
+EOF
+      else
+        cat 1>&2 <<EOF
+
+NOTE: The following file already contains information for this
+      distribution, so I did not update it.
+      $myEmacsFile
+
+EOF
+      fi
+      ;;
+    esac
+  fi
+fi
+}
+
+uninstall() {
+  if [ ! "$batchmode" = "Yes" ]; then
+  cat 1>&2 <<EOF
+
+NOTE: To "uninstall" this distribution, the changes made to your
+      CatalogManagers.properties, startup files, and/or .emacs
+      file need to be reverted. This uninstaller can automatically
+      revert them.  Or, if you prefer, you can revert them manually.
+
+EOF
+  fi
+
+  if [ "$osName" = "Cygwin" ]; then
+    thisXmlCatalog=$thisJavaXmlCatalog
+  fi
+
+  # make "escaped" version of PWD to use with sed and grep
+  escapedPwd=$(echo $mydir | sed "s#/#\\\\\/#g")
+
+  # check to see if a non-empty value for catalogManager was fed
+  # to uninstaller.
+  if [ -n ${1#--catalogManager=} ]; then
+    myCatalogManager=${1#--catalogManager=}
+    catalogBackup="$myCatalogManager.$$.bak"
+    catalogsLine=$(grep "^catalogs=" $myCatalogManager)
+    if [ "$catalogsLine" ] ; then
+      if [ "${catalogsLine#*$thisXmlCatalog*}" != "$catalogsLine" ]; then
+        REPLY=""
+        if [ ! "$batchmode" = "Yes" ]; then
+          read -s -n1 -p "Revert $myCatalogManager? [Yes] "
+          emit_message "$REPLY"
+        fi
+        case $REPLY in
+          [nNqQ]*)
+          cat 1>&2 <<EOF
+
+NOTE: No change made to $myCatalogManager. You need to manually
+      remove the following path from the "catalog=" line.
+
+          $thisXmlCatalog
+
+EOF
+          ;;
+          *)
+          mv $myCatalogManager $catalogBackup || exit 1
+          sed "s#^catalogs=\(.*\)$thisXmlCatalog\(.*\)\$#catalogs=\1\2#" $catalogBackup \
+          | sed 's/;\+/;/' | sed 's/;$//' | sed 's/=;/=/' > $myCatalogManager || exit 1
+          cat 1>&2 <<EOF
+NOTE: Successfully updated the following file:
+      $myCatalogManager
+      Backup written to:
+      $catalogBackup
+
+EOF
+          ;;
+        esac
+      else
+        emit_message "NOTE: No data for this distribution found in:"
+        emit_message "       $myCatalogManager"
+        emit_message
+      fi
+    else
+      cat 1>&2 <<EOF
+NOTE: No data for this distribution was found in the following
+      file, so I did not revert it.
+      $myCatalogManager
+EOF
+    fi
+  fi
+
+  if [ -n "$myEmacsFile" ]; then 
+    # check to see if a non-empty value for --dotEmacs file was fed
+    # to uninstaller.
+    if [ -n ${2#--dotEmacs=} ]; then
+      myEmacsFile=${2#--dotEmacs=}
+      revertLine="(load-file \"$escapedPwd\/\.emacs\.el\")"
+      loadLine="$(grep "$revertLine" "$myEmacsFile")"
+      if [ -n "$loadLine" ]; then
+        emit_message
+        REPLY=""
+        if [ ! "$batchmode" = "Yes" ]; then
+          read -s -n1 -p "Revert $myEmacsFile? [Yes] "
+          emit_message "$REPLY"
+        fi
+        case $REPLY in
+          [nNqQ]*)
+          cat 1>&2 <<EOF
+
+NOTE: No change made to $myEmacsFile. You need to manually
+remove the following line.
+
+(load-file \"$mydir/.emacs.el\")
+
+EOF
+          ;;
+          *)
+          dotEmacsBackup=$myEmacsFile.$$.bak
+          sed -e "/$revertLine/d" -i".$$.bak" $myEmacsFile  || exit 1
+          cat 1>&2 <<EOF
+NOTE: successfully reverted the following file:
+      $myEmacsFile
+      Backup written to:
+      $dotEmacsBackup
+
+EOF
+          ;;
+        esac
+      else
+        emit_message "NOTE: No data for this distribution found in:"
+        emit_message "      $myEmacsFile"
+      fi
+    fi
+  fi
+
+  # check all startup files
+  myStartupFiles=".bash_profile .bash_login .profile .bashrc .cshrc .tcshrc"
+  for file in $myStartupFiles; do
+    if [ -e "$HOME/$file" ]; then
+      case $file in
+        .tcshrc|.cshrc)
+        revertLine="source $mydir/.cshrc.incl"
+        revertLineEsc="source $escapedPwd\/\.cshrc\.incl"
+        ;;
+        *)
+        revertLine=". $mydir/.profile.incl"
+        revertLineEsc="\. $escapedPwd\/\.profile\.incl"
+        ;;
+      esac
+      lineExists="$(grep "$revertLineEsc" $HOME/$file )"
+      if [ "$lineExists" ]; then
+        REPLY=""
+        if [ ! "$batchmode" = "Yes" ]; then
+          read -s -n1 -p "Update $HOME/$file? [Yes] "
+          emit_message "$REPLY"
+        fi
+        case $REPLY in
+          [nNqQ]*)
+          cat 1>&2 <<EOF
+
+NOTE: No change made to $HOME/$file. You need to manually remove
+      the following line from it.
+
+ $revertLine
+
+EOF
+          ;;
+          *)
+          dotFileBackup=$HOME/$file.$$.bak
+          sed -e "/$revertLineEsc/d" -i".$$.bak" $HOME/$file  || exit 1
+          cat 1>&2 <<EOF
+NOTE: Successfully updated the following file:
+      $HOME/$file
+      Backup written to:
+      $dotFileBackup
+
+EOF
+          ;;
+        esac
+      else
+        emit_message "NOTE: No data for this distribution found in:"
+        emit_message "      $HOME/$file"
+        emit_message
+      fi
+    fi
+  done
+  removeOldFiles
+  emit_message "Done. Deleted uninstall.sh file."
+  rm -f $mydir/test.sh      || exit 1
+  rm -f $mydir/uninstall.sh || exit 1
+}
+
+writeUninstallFile() {
+  uninstallFile=$mydir/uninstall.sh
+  echo '#!/bin/bash'                               > $uninstallFile || exit 1
+  echo 'mydir=$(cd -P $(dirname $0) && pwd -P)'   >> $uninstallFile || exit 1
+  echo "\$mydir/install.sh \\"                    >> $uninstallFile || exit 1
+  echo "  --uninstall \\"                         >> $uninstallFile || exit 1
+  echo "  --catalogManager=$myCatalogManager \\"  >> $uninstallFile || exit 1
+  echo "  --dotEmacs='$myEmacsFile' \\"           >> $uninstallFile || exit 1
+  echo '  $@'                                     >> $uninstallFile || exit 1
+  chmod 755 $uninstallFile || exit 1
+}
+
+writeTestFile() {
+  testFile=$mydir/test.sh
+  echo "#!/bin/bash"                                > $testFile || exit 1
+  echo 'mydir=$(cd -P $(dirname $0) && pwd -P)'    >> $testFile || exit 1
+  echo '$mydir/install.sh --test'                  >> $testFile || exit 1
+  chmod 755 $testFile || exit 1
+}
+
+printExitMessage() {
+  cat 1>&2 <<EOF
+To source your shell environment for this distribution, type the
+following:
+
+$appendLine
+
+EOF
+}
+
+checkForResolver() {
+  resolverResponse="$(java org.apache.xml.resolver.apps.resolver uri -u foo 2>/dev/null)"
+  if [ -z "$resolverResponse" ]; then
+    cat 1>&2 <<EOF
+
+NOTE: Your environment does not seem to contain the Apache XML
+      Commons Resolver; without that, you can't use XML catalogs
+      with Java applications. For more information, see the "How
+      to use a catalog file" section in Bob Stayton's "DocBook
+      XSL: The Complete Guide"
+
+      http://sagehill.net/docbookxsl/UseCatalog.html
+
+EOF
+  fi
+}
+
+emitNoChangeMsg() {
+  cat 1>&2 <<EOF
+
+NOTE: No changes were made to CatalogManagers.properties. To
+      provide your Java tools with XML catalog information for
+      this distribution, you will need to make the appropriate
+      changes manually.
+
+EOF
+}
+
+testCatalogs() {
+  if [ ! -f "$thisXmlCatalog" ]; then
+    cat 1>&2 <<EOF
+
+FATAL: $thisXmlCatalog file needed but not found. Stopping.
+EOF
+  exit
+  fi
+
+  if [ -z "$XML_CATALOG_FILES" ]; then
+    emit_message
+    emit_message "WARNING: XML_CATALOG_FILES not set. Not testing with xmlcatalog."
+  else
+    xmlCatalogResponse="$(xmlcatalog 2>/dev/null)"
+    if [ -z "$xmlCatalogResponse" ]; then
+    cat 1>&2 <<EOF
+
+WARNING: Cannot locate the "xmlcatalog" command. Make sure that
+         you have libxml2 and its associated utilities installed.
+
+         http://xmlsoft.org/
+
+EOF
+    else
+      emit_message "Testing with xmlcatalog..."
+      # read in pathname-uri pairs from .urilist file
+      while read pair; do
+        if [ ! "${pair%* *}" = "." ]; then
+          path=$mydir/${pair%* *}
+        else
+          path=$mydir/
+        fi
+        uri=${pair#* *}
+        emit_message
+        emit_message "  Tested: $uri"
+        for catalog in $XML_CATALOG_FILES; do
+          response="$(xmlcatalog $catalog $uri| grep -v "No entry")"
+          if [ -n "$response" ]; then
+            if [ "$response" = "$path" ]; then
+              emit_message "  Result: $path"
+              break
+            else
+              emit_message "  Result: FAILED"
+            fi
+          fi
+        done
+      done < $mydir/.urilist
+    fi
+  fi
+
+  if [ -z "$CLASSPATH" ]; then
+    emit_message
+    emit_message "NOTE: CLASSPATH not set. Not testing with Apache XML Commons Resolver."
+  else
+    if [ "$(checkForResolver)" ]; then
+      checkForResolver
+    else
+      emit_message
+      emit_message "Testing with Apache XML Commons Resolver..."
+      # read in pathname-uri pairs from .urilist file
+      while read pair; do
+        if [ ! "${pair%* *}" = "." ]; then
+          path=$mydir/${pair%* *}
+        else
+          path=$mydir/
+        fi
+        uri=${pair#* *}
+        emit_message
+        emit_message "  Tested: $uri"
+        if [ ${uri%.dtd} != $uri ]; then
+          response="$(java org.apache.xml.resolver.apps.resolver system -s $uri | grep "Result")"
+        else
+          response="$(java org.apache.xml.resolver.apps.resolver uri -u $uri | grep "Result")"
+        fi
+        if [ "$response" ]; then
+          if [ "${response#*$path}" != "$response" ]; then
+            emit_message "  Result: $path"
+          else
+            emit_message "  Result: FAILED"
+          fi
+          echo
+        fi
+      done < $mydir/.urilist
+    fi
+  fi
+}
+
+# get opts and execute appropriate function
+case $1 in
+  *-uninstall)
+  uninstall $2 $3 $4
+  ;;
+  *-test)
+  testCatalogs
+  ;;
+  *)
+  main
+  ;;
+esac
+
+# Copyright
+# ---------
+# Copyright 2005-2007 Michael(tm) Smith <smith@sideshowbarker.net>
+# 
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation
+# files (the "Software"), to deal in the Software without
+# restriction, including without limitation the rights to use, copy,
+# modify, merge, publish, distribute, sublicense, and/or sell copies
+# of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+# 
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+# vim: number
diff --git a/applications/content/template/docbook/javahelp/javahelp.xsl b/applications/content/template/docbook/javahelp/javahelp.xsl
new file mode 100644
index 0000000..2bbc605
--- /dev/null
+++ b/applications/content/template/docbook/javahelp/javahelp.xsl
@@ -0,0 +1,621 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+  xmlns:ng="http://docbook.org/docbook-ng"
+  xmlns:db="http://docbook.org/ns/docbook"
+  xmlns:exsl="http://exslt.org/common"
+  version="1.0"
+  exclude-result-prefixes="doc ng db exsl">
+
+<xsl:import href="../html/chunk.xsl"/>
+
+<xsl:output method="html"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <xsl:when test="$exsl.node.set.available != 0
+                    and (*/self::ng:* or */self::db:*)">
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>stripped namespace before processing</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:variable name="nons">
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:variable>
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates select="exsl:node-set($nons)"/>
+    </xsl:when>
+    <xsl:otherwise>
+  <xsl:choose>
+    <xsl:when test="$rootid != ''">
+      <xsl:choose>
+        <xsl:when test="count(key('id',$rootid)) = 0">
+          <xsl:message terminate="yes">
+            <xsl:text>ID '</xsl:text>
+            <xsl:value-of select="$rootid"/>
+            <xsl:text>' not found in document.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>Formatting from <xsl:value-of select="$rootid"/></xsl:message>
+          <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="/" mode="process.root"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:for-each select="/">    <!-- This is just a hook for building profiling stylesheets -->
+    <xsl:call-template name="helpset"/>
+    <xsl:call-template name="helptoc"/>
+    <xsl:call-template name="helpmap"/>
+    <xsl:call-template name="helpidx"/>
+  </xsl:for-each>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:param name="suppress.navigation" select="1"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="helpset">
+  <xsl:call-template name="write.chunk.with.doctype">
+    <xsl:with-param name="filename" select="concat($chunk.base.dir,'jhelpset.hs')"/>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="doctype-public" select="'-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN'"/>
+    <xsl:with-param name="doctype-system" select="'http://java.sun.com/products/javahelp/helpset_1_0.dtd'"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="helpset.content"/>
+    </xsl:with-param>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="helpset.content">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <helpset version="1.0">
+    <title>
+      <xsl:value-of select="normalize-space($title)"/>
+    </title>
+
+    <!-- maps -->
+    <maps>
+      <homeID>top</homeID>
+      <mapref location="jhelpmap.jhm"/>
+    </maps>
+
+    <!-- views -->
+    <view>
+      <name>TOC</name>
+      <label>Table Of Contents</label>
+      <type>javax.help.TOCView</type>
+      <data>jhelptoc.xml</data>
+    </view>
+
+    <view>
+      <name>Index</name>
+      <label>Index</label>
+      <type>javax.help.IndexView</type>
+      <data>jhelpidx.xml</data>
+    </view>
+
+    <view>
+      <name>Search</name>
+      <label>Search</label>
+      <type>javax.help.SearchView</type>
+      <data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
+    </view>
+  </helpset>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="helptoc">
+  <xsl:call-template name="write.chunk.with.doctype">
+    <xsl:with-param name="filename" select="concat($chunk.base.dir,'jhelptoc.xml')"/>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="doctype-public" select="'-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN'"/>
+    <xsl:with-param name="doctype-system" select="'http://java.sun.com/products/javahelp/toc_1_0.dtd'"/>
+    <xsl:with-param name="encoding" select="$javahelp.encoding"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="helptoc.content"/>
+    </xsl:with-param>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="helptoc.content">
+  <toc version="1.0">
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:apply-templates select="key('id',$rootid)" mode="jhtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="." mode="jhtoc"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </toc>
+</xsl:template>
+
+<xsl:template match="set" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="book" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="book" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="part|reference|preface|chapter|appendix|article|colophon|glossary|bibliography"
+                         mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="part|reference|preface|chapter|appendix|article"
+              mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates
+      select="article|preface|chapter|appendix|refentry|section|sect1|glossary|bibliography"
+      mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="section" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="section" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="sect1" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="sect2" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="sect2" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="sect3" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="sect3" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="sect4" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="sect4" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="sect5" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="sect5|colophon|refentry" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+  </tocitem>
+</xsl:template>
+
+
+<xsl:template match="glossary" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="title">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'Glossary'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="$title"/>
+    </xsl:attribute>
+  </tocitem>
+
+</xsl:template>
+
+<xsl:template match="bibliography" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="title">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'Bibliography'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="$title"/>
+    </xsl:attribute>
+    
+  </tocitem>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="helpmap">
+  <xsl:call-template name="write.chunk.with.doctype">
+    <xsl:with-param name="filename" select="concat($chunk.base.dir, 'jhelpmap.jhm')"/>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="doctype-public" select="'-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN'"/>
+    <xsl:with-param name="doctype-system" select="'http://java.sun.com/products/javahelp/map_1_0.dtd'"/>
+    <xsl:with-param name="encoding" select="$javahelp.encoding"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="helpmap.content"/>
+    </xsl:with-param>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="helpmap.content">
+  <map version="1.0">
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:apply-templates select="key('id',$rootid)//set
+                                     | key('id',$rootid)//book
+                                     | key('id',$rootid)//part
+                                     | key('id',$rootid)//reference
+                                     | key('id',$rootid)//preface
+                                     | key('id',$rootid)//chapter
+                                     | key('id',$rootid)//appendix
+                                     | key('id',$rootid)//article
+                                     | key('id',$rootid)//colophon
+                                     | key('id',$rootid)//refentry
+                                     | key('id',$rootid)//section
+                                     | key('id',$rootid)//sect1
+                                     | key('id',$rootid)//sect2
+                                     | key('id',$rootid)//sect3
+                                     | key('id',$rootid)//sect4
+                                     | key('id',$rootid)//sect5
+                                     | key('id',$rootid)//indexterm 
+                                     | key('id',$rootid)//glossary
+                                     | key('id',$rootid)//bibliography
+				     | key('id',$rootid)//*[@id]"
+                             mode="map"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="//set
+                                     | //book
+                                     | //part
+                                     | //reference
+                                     | //preface
+                                     | //chapter
+                                     | //appendix
+                                     | //article
+                                     | //colophon
+                                     | //refentry
+                                     | //section
+                                     | //sect1
+                                     | //sect2
+                                     | //sect3
+                                     | //sect4
+                                     | //sect5
+                                     | //indexterm
+                                     | //glossary
+                                     | //bibliography
+				     | //*[@id]"
+                             mode="map"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </map>
+</xsl:template>
+
+<xsl:template match="set" mode="map">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <mapID target="{$id}">
+    <xsl:attribute name="url">
+      <xsl:call-template name="href.target.uri"/>
+    </xsl:attribute>
+  </mapID>
+</xsl:template>
+
+<xsl:template match="book" mode="map">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <mapID target="{$id}">
+    <xsl:attribute name="url">
+      <xsl:call-template name="href.target.uri"/>
+    </xsl:attribute>
+  </mapID>
+</xsl:template>
+
+<xsl:template match="part|reference|preface|chapter|appendix|refentry|article|glossary|bibliography"
+              mode="map">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <mapID target="{$id}">
+    <xsl:attribute name="url">
+      <xsl:call-template name="href.target.uri"/>
+    </xsl:attribute>
+  </mapID>
+</xsl:template>
+
+<xsl:template match="section|sect1|sect2|sect3|sect4|sect5|colophon" mode="map">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <mapID target="{$id}">
+    <xsl:attribute name="url">
+      <xsl:call-template name="href.target.uri"/>
+    </xsl:attribute>
+  </mapID>
+</xsl:template>
+
+<xsl:template match="indexterm[@class='endofrange']" mode="map"/>
+
+<xsl:template match="indexterm" mode="map">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <mapID target="{$id}">
+    <xsl:attribute name="url">
+      <xsl:call-template name="href.target.uri"/>
+    </xsl:attribute>
+  </mapID>
+</xsl:template>
+
+<xsl:template match="*[@id]" mode="map">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <mapID target="{$id}">
+    <xsl:attribute name="url">
+      <xsl:call-template name="href.target.uri"/>
+    </xsl:attribute>
+  </mapID>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="helpidx">
+  <xsl:call-template name="write.chunk.with.doctype">
+    <xsl:with-param name="filename" select="concat($chunk.base.dir, 'jhelpidx.xml')"/>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="doctype-public" select="'-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN'"/>
+    <xsl:with-param name="doctype-system" select="'http://java.sun.com/products/javahelp/index_1_0.dtd'"/>
+    <xsl:with-param name="encoding" select="$javahelp.encoding"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="helpidx.content"/>
+    </xsl:with-param>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="helpidx.content">
+  <index version="1.0">
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:apply-templates select="key('id',$rootid)//indexterm" mode="idx">
+	  <xsl:sort select="primary"/>
+	  <xsl:sort select="secondary"/>
+	  <xsl:sort select="tertiary"/>
+	</xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="//indexterm" mode="idx">
+          <xsl:sort select="primary"/>
+	  <xsl:sort select="secondary"/>
+	  <xsl:sort select="tertiary"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+  </index>
+</xsl:template>
+
+<xsl:template match="indexterm[@class='endofrange']" mode="idx"/>
+
+<xsl:template match="indexterm" mode="idx">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="text">
+    <xsl:value-of select="normalize-space(primary)"/>
+    <xsl:if test="secondary">
+      <xsl:text>, </xsl:text>
+      <xsl:value-of select="normalize-space(secondary)"/>
+    </xsl:if>
+    <xsl:if test="tertiary">
+      <xsl:text>, </xsl:text>
+      <xsl:value-of select="normalize-space(tertiary)"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="see">
+      <xsl:variable name="see"><xsl:value-of select="normalize-space(see)"/></xsl:variable>
+      <indexitem text="{$text} see '{$see}'"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <indexitem text="{$text}" target="{$id}"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Kludge for Xalan outputting &trade; which fails in javahelp -->
+<xsl:template name="dingbat.characters">
+  <!-- now that I'm using the real serializer, all that dingbat malarky -->
+  <!-- isn't necessary anymore... -->
+  <xsl:param name="dingbat">bullet</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$dingbat='bullet'">&#x2022;</xsl:when>
+    <xsl:when test="$dingbat='copyright'">&#x00A9;</xsl:when>
+    <xsl:when test="$dingbat='trademark' or $dingbat='trade'">
+      <xsl:choose>
+        <xsl:when test="contains(system-property('xsl:vendor'),
+                                 'Apache Software Foundation')">
+          <sup>TM</sup>
+        </xsl:when>
+        <xsl:otherwise>&#x2122;</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$dingbat='registered'">&#x00AE;</xsl:when>
+    <xsl:when test="$dingbat='service'">(SM)</xsl:when>
+    <xsl:when test="$dingbat='nbsp'">&#x00A0;</xsl:when>
+    <xsl:when test="$dingbat='ldquo'">&#x201C;</xsl:when>
+    <xsl:when test="$dingbat='rdquo'">&#x201D;</xsl:when>
+    <xsl:when test="$dingbat='lsquo'">&#x2018;</xsl:when>
+    <xsl:when test="$dingbat='rsquo'">&#x2019;</xsl:when>
+    <xsl:when test="$dingbat='em-dash'">&#x2014;</xsl:when>
+    <xsl:when test="$dingbat='mdash'">&#x2014;</xsl:when>
+    <xsl:when test="$dingbat='en-dash'">&#x2013;</xsl:when>
+    <xsl:when test="$dingbat='ndash'">&#x2013;</xsl:when>
+    <xsl:otherwise>
+      <xsl:text>&#x2022;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/javahelp/profile-javahelp.xsl b/applications/content/template/docbook/javahelp/profile-javahelp.xsl
new file mode 100644
index 0000000..b234ddc
--- /dev/null
+++ b/applications/content/template/docbook/javahelp/profile-javahelp.xsl
@@ -0,0 +1,545 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns:exslt="http://exslt.org/common" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" version="1.0" exclude-result-prefixes="doc ng db exsl exslt">
+
+<xsl:import href="../html/chunk.xsl"/>
+
+<xsl:output method="html"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <xsl:when test="false()"/>
+    <xsl:otherwise>
+  <xsl:choose>
+    <xsl:when test="$rootid != ''">
+      <xsl:choose>
+        <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0">
+          <xsl:message terminate="yes">
+            <xsl:text>ID '</xsl:text>
+            <xsl:value-of select="$rootid"/>
+            <xsl:text>' not found in document.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>Formatting from <xsl:value-of select="$rootid"/></xsl:message>
+          <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:for-each select="$profiled-nodes">    <!-- This is just a hook for building profiling stylesheets -->
+    <xsl:call-template name="helpset"/>
+    <xsl:call-template name="helptoc"/>
+    <xsl:call-template name="helpmap"/>
+    <xsl:call-template name="helpidx"/>
+  </xsl:for-each>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:param name="suppress.navigation" select="1"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="helpset">
+  <xsl:call-template name="write.chunk.with.doctype">
+    <xsl:with-param name="filename" select="concat($chunk.base.dir,'jhelpset.hs')"/>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="doctype-public" select="'-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN'"/>
+    <xsl:with-param name="doctype-system" select="'http://java.sun.com/products/javahelp/helpset_1_0.dtd'"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="helpset.content"/>
+    </xsl:with-param>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="helpset.content">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <helpset version="1.0">
+    <title>
+      <xsl:value-of select="normalize-space($title)"/>
+    </title>
+
+    <!-- maps -->
+    <maps>
+      <homeID>top</homeID>
+      <mapref location="jhelpmap.jhm"/>
+    </maps>
+
+    <!-- views -->
+    <view>
+      <name>TOC</name>
+      <label>Table Of Contents</label>
+      <type>javax.help.TOCView</type>
+      <data>jhelptoc.xml</data>
+    </view>
+
+    <view>
+      <name>Index</name>
+      <label>Index</label>
+      <type>javax.help.IndexView</type>
+      <data>jhelpidx.xml</data>
+    </view>
+
+    <view>
+      <name>Search</name>
+      <label>Search</label>
+      <type>javax.help.SearchView</type>
+      <data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
+    </view>
+  </helpset>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="helptoc">
+  <xsl:call-template name="write.chunk.with.doctype">
+    <xsl:with-param name="filename" select="concat($chunk.base.dir,'jhelptoc.xml')"/>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="doctype-public" select="'-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN'"/>
+    <xsl:with-param name="doctype-system" select="'http://java.sun.com/products/javahelp/toc_1_0.dtd'"/>
+    <xsl:with-param name="encoding" select="$javahelp.encoding"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="helptoc.content"/>
+    </xsl:with-param>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="helptoc.content">
+  <toc version="1.0">
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:apply-templates select="key('id',$rootid)" mode="jhtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="." mode="jhtoc"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </toc>
+</xsl:template>
+
+<xsl:template match="set" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="book" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="book" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="part|reference|preface|chapter|appendix|article|colophon|glossary|bibliography" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="part|reference|preface|chapter|appendix|article" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="article|preface|chapter|appendix|refentry|section|sect1|glossary|bibliography" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="section" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="section" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="sect1" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="sect2" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="sect2" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="sect3" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="sect3" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="sect4" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="sect4" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+    <xsl:apply-templates select="sect5" mode="jhtoc"/>
+  </tocitem>
+</xsl:template>
+
+<xsl:template match="sect5|colophon|refentry" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="normalize-space($title)"/>
+    </xsl:attribute>
+  </tocitem>
+</xsl:template>
+
+
+<xsl:template match="glossary" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="title">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'Glossary'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="$title"/>
+    </xsl:attribute>
+  </tocitem>
+
+</xsl:template>
+
+<xsl:template match="bibliography" mode="jhtoc">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="title">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'Bibliography'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <tocitem target="{$id}">
+    <xsl:attribute name="text">
+      <xsl:value-of select="$title"/>
+    </xsl:attribute>
+    
+  </tocitem>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="helpmap">
+  <xsl:call-template name="write.chunk.with.doctype">
+    <xsl:with-param name="filename" select="concat($chunk.base.dir, 'jhelpmap.jhm')"/>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="doctype-public" select="'-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN'"/>
+    <xsl:with-param name="doctype-system" select="'http://java.sun.com/products/javahelp/map_1_0.dtd'"/>
+    <xsl:with-param name="encoding" select="$javahelp.encoding"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="helpmap.content"/>
+    </xsl:with-param>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="helpmap.content">
+  <map version="1.0">
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:apply-templates select="key('id',$rootid)//set                                      | key('id',$rootid)//book                                      | key('id',$rootid)//part                                      | key('id',$rootid)//reference                                      | key('id',$rootid)//preface                                      | key('id',$rootid)//chapter                                      | key('id',$rootid)//appendix                                      | key('id',$rootid)//article                                      | key('id',$rootid)//colophon                                      | key('id',$rootid)//refentry                                      | key('id',$rootid)//section                                      | key('id',$rootid)//sect1                                      | key('id',$rootid)//sect2                                      | key('id',$rootid)//sect3                                      | key('id',$rootid)//sect4                                      | key('id',$rootid)//sect5                                      | key('id',$rootid)//indexterm                                       | key('id',$rootid)//glossary                                      | key('id',$rootid)//bibliography          | key('id',$rootid)//*[@id]" mode="map"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="//set                                      | //book                                      | //part                                      | //reference                                      | //preface                                      | //chapter                                      | //appendix                                      | //article                                      | //colophon                                      | //refentry                                      | //section                                      | //sect1                                      | //sect2                                      | //sect3                                      | //sect4                                      | //sect5                                      | //indexterm                                      | //glossary                                      | //bibliography          | //*[@id]" mode="map"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </map>
+</xsl:template>
+
+<xsl:template match="set" mode="map">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <mapID target="{$id}">
+    <xsl:attribute name="url">
+      <xsl:call-template name="href.target.uri"/>
+    </xsl:attribute>
+  </mapID>
+</xsl:template>
+
+<xsl:template match="book" mode="map">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <mapID target="{$id}">
+    <xsl:attribute name="url">
+      <xsl:call-template name="href.target.uri"/>
+    </xsl:attribute>
+  </mapID>
+</xsl:template>
+
+<xsl:template match="part|reference|preface|chapter|appendix|refentry|article|glossary|bibliography" mode="map">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <mapID target="{$id}">
+    <xsl:attribute name="url">
+      <xsl:call-template name="href.target.uri"/>
+    </xsl:attribute>
+  </mapID>
+</xsl:template>
+
+<xsl:template match="section|sect1|sect2|sect3|sect4|sect5|colophon" mode="map">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <mapID target="{$id}">
+    <xsl:attribute name="url">
+      <xsl:call-template name="href.target.uri"/>
+    </xsl:attribute>
+  </mapID>
+</xsl:template>
+
+<xsl:template match="indexterm[@class='endofrange']" mode="map"/>
+
+<xsl:template match="indexterm" mode="map">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <mapID target="{$id}">
+    <xsl:attribute name="url">
+      <xsl:call-template name="href.target.uri"/>
+    </xsl:attribute>
+  </mapID>
+</xsl:template>
+
+<xsl:template match="*[@id]" mode="map">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <mapID target="{$id}">
+    <xsl:attribute name="url">
+      <xsl:call-template name="href.target.uri"/>
+    </xsl:attribute>
+  </mapID>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="helpidx">
+  <xsl:call-template name="write.chunk.with.doctype">
+    <xsl:with-param name="filename" select="concat($chunk.base.dir, 'jhelpidx.xml')"/>
+    <xsl:with-param name="method" select="'xml'"/>
+    <xsl:with-param name="indent" select="'yes'"/>
+    <xsl:with-param name="doctype-public" select="'-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN'"/>
+    <xsl:with-param name="doctype-system" select="'http://java.sun.com/products/javahelp/index_1_0.dtd'"/>
+    <xsl:with-param name="encoding" select="$javahelp.encoding"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="helpidx.content"/>
+    </xsl:with-param>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="helpidx.content">
+  <index version="1.0">
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:apply-templates select="key('id',$rootid)//indexterm" mode="idx">
+	  <xsl:sort select="primary"/>
+	  <xsl:sort select="secondary"/>
+	  <xsl:sort select="tertiary"/>
+	</xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="//indexterm" mode="idx">
+          <xsl:sort select="primary"/>
+	  <xsl:sort select="secondary"/>
+	  <xsl:sort select="tertiary"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+  </index>
+</xsl:template>
+
+<xsl:template match="indexterm[@class='endofrange']" mode="idx"/>
+
+<xsl:template match="indexterm" mode="idx">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="text">
+    <xsl:value-of select="normalize-space(primary)"/>
+    <xsl:if test="secondary">
+      <xsl:text>, </xsl:text>
+      <xsl:value-of select="normalize-space(secondary)"/>
+    </xsl:if>
+    <xsl:if test="tertiary">
+      <xsl:text>, </xsl:text>
+      <xsl:value-of select="normalize-space(tertiary)"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="see">
+      <xsl:variable name="see"><xsl:value-of select="normalize-space(see)"/></xsl:variable>
+      <indexitem text="{$text} see '{$see}'"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <indexitem text="{$text}" target="{$id}"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Kludge for Xalan outputting &trade; which fails in javahelp -->
+<xsl:template name="dingbat.characters">
+  <!-- now that I'm using the real serializer, all that dingbat malarky -->
+  <!-- isn't necessary anymore... -->
+  <xsl:param name="dingbat">bullet</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$dingbat='bullet'">&#8226;</xsl:when>
+    <xsl:when test="$dingbat='copyright'">&#169;</xsl:when>
+    <xsl:when test="$dingbat='trademark' or $dingbat='trade'">
+      <xsl:choose>
+        <xsl:when test="contains(system-property('xsl:vendor'),                                  'Apache Software Foundation')">
+          <sup>TM</sup>
+        </xsl:when>
+        <xsl:otherwise>&#8482;</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$dingbat='registered'">&#174;</xsl:when>
+    <xsl:when test="$dingbat='service'">(SM)</xsl:when>
+    <xsl:when test="$dingbat='nbsp'">&#160;</xsl:when>
+    <xsl:when test="$dingbat='ldquo'">&#8220;</xsl:when>
+    <xsl:when test="$dingbat='rdquo'">&#8221;</xsl:when>
+    <xsl:when test="$dingbat='lsquo'">&#8216;</xsl:when>
+    <xsl:when test="$dingbat='rsquo'">&#8217;</xsl:when>
+    <xsl:when test="$dingbat='em-dash'">&#8212;</xsl:when>
+    <xsl:when test="$dingbat='mdash'">&#8212;</xsl:when>
+    <xsl:when test="$dingbat='en-dash'">&#8211;</xsl:when>
+    <xsl:when test="$dingbat='ndash'">&#8211;</xsl:when>
+    <xsl:otherwise>
+      <xsl:text>&#8226;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/lib/lib.xsl b/applications/content/template/docbook/lib/lib.xsl
new file mode 100644
index 0000000..f3cf78d
--- /dev/null
+++ b/applications/content/template/docbook/lib/lib.xsl
@@ -0,0 +1,531 @@
+<?xml version="1.0"?>
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     This module implements DTD-independent functions
+
+     ******************************************************************** -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:template name="dot.count">
+  <!-- Returns the number of "." characters in a string -->
+  <xsl:param name="string"/>
+  <xsl:param name="count" select="0"/>
+  <xsl:choose>
+    <xsl:when test="contains($string, '.')">
+      <xsl:call-template name="dot.count">
+        <xsl:with-param name="string" select="substring-after($string, '.')"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$count"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="copy-string">
+  <!-- returns 'count' copies of 'string' -->
+  <xsl:param name="string"/>
+  <xsl:param name="count" select="0"/>
+  <xsl:param name="result"/>
+
+  <xsl:choose>
+    <xsl:when test="$count&gt;0">
+      <xsl:call-template name="copy-string">
+        <xsl:with-param name="string" select="$string"/>
+        <xsl:with-param name="count" select="$count - 1"/>
+        <xsl:with-param name="result">
+          <xsl:value-of select="$result"/>
+          <xsl:value-of select="$string"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$result"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="string.subst">
+  <xsl:param name="string"/>
+  <xsl:param name="target"/>
+  <xsl:param name="replacement"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, $target)">
+      <xsl:variable name="rest">
+        <xsl:call-template name="string.subst">
+          <xsl:with-param name="string" select="substring-after($string, $target)"/>
+          <xsl:with-param name="target" select="$target"/>
+          <xsl:with-param name="replacement" select="$replacement"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="concat(substring-before($string, $target),                                    $replacement,                                    $rest)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$string"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="xpointer.idref">
+  <xsl:param name="xpointer">http://...</xsl:param>
+  <xsl:choose>
+    <xsl:when test="starts-with($xpointer, '#xpointer(id(')">
+      <xsl:variable name="rest" select="substring-after($xpointer, '#xpointer(id(')"/>
+      <xsl:variable name="quote" select="substring($rest, 1, 1)"/>
+      <xsl:value-of select="substring-before(substring-after($xpointer, $quote), $quote)"/>
+    </xsl:when>
+    <xsl:when test="starts-with($xpointer, '#')">
+      <xsl:value-of select="substring-after($xpointer, '#')"/>
+    </xsl:when>
+    <!-- otherwise it's a pointer to some other document -->
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="length-magnitude">
+  <xsl:param name="length" select="'0pt'"/>
+
+  <xsl:choose>
+    <xsl:when test="string-length($length) = 0"/>
+    <xsl:when test="substring($length,1,1) = '0'                     or substring($length,1,1) = '1'                     or substring($length,1,1) = '2'                     or substring($length,1,1) = '3'                     or substring($length,1,1) = '4'                     or substring($length,1,1) = '5'                     or substring($length,1,1) = '6'                     or substring($length,1,1) = '7'                     or substring($length,1,1) = '8'                     or substring($length,1,1) = '9'                     or substring($length,1,1) = '.'">
+      <xsl:value-of select="substring($length,1,1)"/>
+      <xsl:call-template name="length-magnitude">
+        <xsl:with-param name="length" select="substring($length,2)"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="length-units">
+  <xsl:param name="length" select="'0pt'"/>
+  <xsl:param name="default.units" select="'px'"/>
+  <xsl:variable name="magnitude">
+    <xsl:call-template name="length-magnitude">
+      <xsl:with-param name="length" select="$length"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="units">
+    <xsl:value-of select="substring($length, string-length($magnitude)+1)"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$units = ''">
+      <xsl:value-of select="$default.units"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$units"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="length-spec">
+  <xsl:param name="length" select="'0pt'"/>
+  <xsl:param name="default.units" select="'px'"/>
+
+  <xsl:variable name="magnitude">
+    <xsl:call-template name="length-magnitude">
+      <xsl:with-param name="length" select="$length"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="units">
+    <xsl:value-of select="substring($length, string-length($magnitude)+1)"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$magnitude"/>
+  <xsl:choose>
+    <xsl:when test="$units='cm'                     or $units='mm'                     or $units='in'                     or $units='pt'                     or $units='pc'                     or $units='px'                     or $units='em'">
+      <xsl:value-of select="$units"/>
+    </xsl:when>
+    <xsl:when test="$units = ''">
+      <xsl:value-of select="$default.units"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>Unrecognized unit of measure: </xsl:text>
+        <xsl:value-of select="$units"/>
+        <xsl:text>.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="length-in-points">
+  <xsl:param name="length" select="'0pt'"/>
+  <xsl:param name="em.size" select="10"/>
+  <xsl:param name="pixels.per.inch" select="90"/>
+
+  <xsl:variable name="magnitude">
+    <xsl:call-template name="length-magnitude">
+      <xsl:with-param name="length" select="$length"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="units">
+    <xsl:value-of select="substring($length, string-length($magnitude)+1)"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$units = 'pt'">
+      <xsl:value-of select="$magnitude"/>
+    </xsl:when>
+    <xsl:when test="$units = 'cm'">
+      <xsl:value-of select="$magnitude div 2.54 * 72.0"/>
+    </xsl:when>
+    <xsl:when test="$units = 'mm'">
+      <xsl:value-of select="$magnitude div 25.4 * 72.0"/>
+    </xsl:when>
+    <xsl:when test="$units = 'in'">
+      <xsl:value-of select="$magnitude * 72.0"/>
+    </xsl:when>
+    <xsl:when test="$units = 'pc'">
+      <xsl:value-of select="$magnitude * 12.0"/>
+    </xsl:when>
+    <xsl:when test="$units = 'px'">
+      <xsl:value-of select="$magnitude div $pixels.per.inch * 72.0"/>
+    </xsl:when>
+    <xsl:when test="$units = 'em'">
+      <xsl:value-of select="$magnitude * $em.size"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>Unrecognized unit of measure: </xsl:text>
+        <xsl:value-of select="$units"/>
+        <xsl:text>.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="pi-attribute">
+  <xsl:param name="pis" select="processing-instruction('BOGUS_PI')"/>
+  <xsl:param name="attribute">filename</xsl:param>
+  <xsl:param name="count">1</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count&gt;count($pis)">
+      <!-- not found -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="pi">
+        <xsl:value-of select="$pis[$count]"/>
+      </xsl:variable>
+      <xsl:variable name="pivalue">
+        <xsl:value-of select="concat(' ', normalize-space($pi))"/>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="contains($pivalue,concat(' ', $attribute, '='))">
+          <xsl:variable name="rest" select="substring-after($pivalue,concat(' ', $attribute,'='))"/>
+          <xsl:variable name="quote" select="substring($rest,1,1)"/>
+          <xsl:value-of select="substring-before(substring($rest,2),$quote)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="pi-attribute">
+            <xsl:with-param name="pis" select="$pis"/>
+            <xsl:with-param name="attribute" select="$attribute"/>
+            <xsl:with-param name="count" select="$count + 1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="lookup.key">
+  <xsl:param name="key" select="''"/>
+  <xsl:param name="table" select="''"/>
+
+  <xsl:if test="contains($table, ' ')">
+    <xsl:choose>
+      <xsl:when test="substring-before($table, ' ') = $key">
+        <xsl:variable name="rest" select="substring-after($table, ' ')"/>
+        <xsl:choose>
+          <xsl:when test="contains($rest, ' ')">
+            <xsl:value-of select="substring-before($rest, ' ')"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$rest"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="lookup.key">
+          <xsl:with-param name="key" select="$key"/>
+          <xsl:with-param name="table" select="substring-after(substring-after($table,' '), ' ')"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+<xsl:template name="xpath.location">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="path" select="''"/>
+
+  <xsl:variable name="next.path">
+    <xsl:value-of select="local-name($node)"/>
+    <xsl:if test="$path != ''">/</xsl:if>
+    <xsl:value-of select="$path"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$node/parent::*">
+      <xsl:call-template name="xpath.location">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+        <xsl:with-param name="path" select="$next.path"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>/</xsl:text>
+      <xsl:value-of select="$next.path"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="comment-escape-string">
+  <xsl:param name="string" select="''"/>
+
+  <xsl:if test="starts-with($string, '-')">
+    <xsl:text> </xsl:text>
+  </xsl:if>
+
+  <xsl:call-template name="comment-escape-string.recursive">
+    <xsl:with-param name="string" select="$string"/>
+  </xsl:call-template>
+
+  <xsl:if test="substring($string, string-length($string), 1) = '-'">
+    <xsl:text> </xsl:text>
+  </xsl:if>
+</xsl:template>
+<xsl:template name="comment-escape-string.recursive">
+  <xsl:param name="string" select="''"/>
+  <xsl:choose>
+    <xsl:when test="contains($string, '--')">
+      <xsl:value-of select="substring-before($string, '--')"/>
+      <xsl:value-of select="'- -'"/>
+      <xsl:call-template name="comment-escape-string.recursive">
+        <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:template name="str.tokenize.keep.delimiters">
+    <xsl:param name="string" select="''"/>
+    <xsl:param name="delimiters" select="' '"/>
+    <xsl:choose>
+      <xsl:when test="not($string)"/>
+      <xsl:when test="not($delimiters)">
+        <xsl:call-template name="str.tokenize.keep.delimiters-characters">
+          <xsl:with-param name="string" select="$string"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
+          <xsl:with-param name="string" select="$string"/>
+          <xsl:with-param name="delimiters" select="$delimiters"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+  <xsl:template name="str.tokenize.keep.delimiters-characters">
+    <xsl:param name="string"/>
+    <xsl:if test="$string">
+      <ssb:token xmlns:ssb="http://sideshowbarker.net/ns"><xsl:value-of select="substring($string, 1, 1)"/></ssb:token>
+      <xsl:call-template name="str.tokenize.keep.delimiters-characters">
+        <xsl:with-param name="string" select="substring($string, 2)"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:template>
+  <xsl:template name="str.tokenize.keep.delimiters-delimiters">
+    <xsl:param name="string"/>
+    <xsl:param name="delimiters"/>
+    <xsl:variable name="delimiter" select="substring($delimiters, 1, 1)"/>
+    <xsl:choose>
+      <xsl:when test="not($delimiter)">
+        <ssb:token xmlns:ssb="http://sideshowbarker.net/ns"><xsl:value-of select="$string"/></ssb:token>
+      </xsl:when>
+      <xsl:when test="contains($string, $delimiter)">
+        <xsl:if test="not(starts-with($string, $delimiter))">
+          <xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
+            <xsl:with-param name="string" select="substring-before($string, $delimiter)"/>
+            <xsl:with-param name="delimiters" select="substring($delimiters, 2)"/>
+          </xsl:call-template>
+        </xsl:if>
+        <!-- output each delimiter -->
+        <xsl:value-of select="$delimiter"/>
+        <xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
+          <xsl:with-param name="string" select="substring-after($string, $delimiter)"/>
+          <xsl:with-param name="delimiters" select="$delimiters"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
+          <xsl:with-param name="string" select="$string"/>
+          <xsl:with-param name="delimiters" select="substring($delimiters, 2)"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+    <xsl:template name="apply-string-subst-map">
+      <xsl:param name="content"/>
+      <xsl:param name="map.contents"/>
+      <xsl:variable name="replaced_text">
+        <xsl:call-template name="string.subst">
+          <xsl:with-param name="string" select="$content"/>
+          <xsl:with-param name="target" select="$map.contents[1]/@oldstring"/>
+          <xsl:with-param name="replacement" select="$map.contents[1]/@newstring"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="$map.contents[2]">
+          <xsl:call-template name="apply-string-subst-map">
+            <xsl:with-param name="content" select="$replaced_text"/>
+            <xsl:with-param name="map.contents" select="$map.contents[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$replaced_text"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:template>
+  
+<xsl:template name="count.uri.path.depth">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="count" select="0"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($filename, '/')">
+      <xsl:call-template name="count.uri.path.depth">
+        <xsl:with-param name="filename" select="substring-after($filename, '/')"/>
+        <xsl:with-param name="count" select="$count + 1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$count"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="trim.common.uri.paths">
+  <xsl:param name="uriA" select="''"/>
+  <xsl:param name="uriB" select="''"/>
+  <xsl:param name="return" select="'A'"/>
+
+  <!-- Resolve any ../ in the path -->
+  <xsl:variable name="trimmed.uriA">
+    <xsl:call-template name="resolve.path">
+      <xsl:with-param name="filename" select="$uriA"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="trimmed.uriB">
+    <xsl:call-template name="resolve.path">
+      <xsl:with-param name="filename" select="$uriB"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="contains($trimmed.uriA, '/') and contains($trimmed.uriB, '/')                     and substring-before($trimmed.uriA, '/') = substring-before($trimmed.uriB, '/')">
+      <xsl:call-template name="trim.common.uri.paths">
+        <xsl:with-param name="uriA" select="substring-after($trimmed.uriA, '/')"/>
+        <xsl:with-param name="uriB" select="substring-after($trimmed.uriB, '/')"/>
+        <xsl:with-param name="return" select="$return"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$return = 'A'">
+          <xsl:value-of select="$trimmed.uriA"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$trimmed.uriB"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="resolve.path">
+  <xsl:param name="filename" select="''"/>
+  <xsl:choose>
+    <!-- Leading .. are not eliminated -->
+    <xsl:when test="starts-with($filename, '../')">
+      <xsl:value-of select="'../'"/>
+      <xsl:call-template name="resolve.path">
+        <xsl:with-param name="filename" select="substring-after($filename, '../')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="contains($filename, '/../')">
+      <xsl:call-template name="resolve.path">
+        <xsl:with-param name="filename">
+          <xsl:call-template name="dirname">
+            <xsl:with-param name="filename" select="substring-before($filename, '/../')"/>
+          </xsl:call-template>
+          <xsl:value-of select="substring-after($filename, '/../')"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$filename"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="dirname">
+  <xsl:param name="filename" select="''"/>
+  <xsl:if test="contains($filename, '/')">
+    <xsl:value-of select="substring-before($filename, '/')"/>
+    <xsl:text>/</xsl:text>
+    <xsl:call-template name="dirname">
+      <xsl:with-param name="filename" select="substring-after($filename, '/')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+
+  <xsl:template name="trim.text">
+    <xsl:param name="contents" select="."/>
+    <xsl:variable name="contents-left-trimmed">
+      <xsl:call-template name="trim-left">
+        <xsl:with-param name="contents" select="$contents"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="contents-trimmed">
+      <xsl:call-template name="trim-right">
+        <xsl:with-param name="contents" select="$contents-left-trimmed"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:value-of select="$contents-trimmed"/>
+  </xsl:template>
+
+  <xsl:template name="trim-left">
+    <xsl:param name="contents"/>
+    <xsl:choose>
+      <xsl:when test="starts-with($contents,'&#10;') or                       starts-with($contents,'&#13;') or                       starts-with($contents,' ') or                       starts-with($contents,'&#9;')">
+        <xsl:call-template name="trim-left">
+          <xsl:with-param name="contents" select="substring($contents, 2)"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$contents"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template name="trim-right">
+    <xsl:param name="contents"/>
+    <xsl:variable name="last-char">
+      <xsl:value-of select="substring($contents, string-length($contents), 1)"/>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="($last-char = '&#10;') or                       ($last-char = '&#13;') or                       ($last-char = ' ') or                       ($last-char = '&#9;')">
+        <xsl:call-template name="trim-right">
+          <xsl:with-param name="contents" select="substring($contents, 1, string-length($contents) - 1)"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$contents"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/log b/applications/content/template/docbook/log
new file mode 100644
index 0000000..9037840
--- /dev/null
+++ b/applications/content/template/docbook/log
@@ -0,0 +1,646 @@
+------------------------------------------------------------------------
+r9371 | bobstayton | 2012-05-19 22:48:13 +0000 (Sat, 19 May 2012) | 2 lines
+
+Version 1.77.0 release
+
+------------------------------------------------------------------------
+r8935 | abdelazer | 2010-11-01 21:04:48 +0000 (Mon, 01 Nov 2010) | 1 line
+
+Restored VERSION file to snapshot state
+------------------------------------------------------------------------
+r8933 | abdelazer | 2010-11-01 19:58:53 +0000 (Mon, 01 Nov 2010) | 1 line
+
+Version 1.76.1 released
+------------------------------------------------------------------------
+r8902 | abdelazer | 2010-09-03 23:34:06 +0000 (Fri, 03 Sep 2010) | 1 line
+
+Restored VERSION file to snapshot state
+------------------------------------------------------------------------
+r8893 | abdelazer | 2010-08-28 04:32:12 +0000 (Sat, 28 Aug 2010) | 1 line
+
+Version 1.76.0 released
+------------------------------------------------------------------------
+r8502 | abdelazer | 2009-07-21 03:01:50 +0000 (Tue, 21 Jul 2009) | 1 line
+
+Restored VERSION file to snapshot state
+------------------------------------------------------------------------
+r8499 | abdelazer | 2009-07-21 01:58:25 +0000 (Tue, 21 Jul 2009) | 1 line
+
+Version 1.75.2 released
+------------------------------------------------------------------------
+r8447 | abdelazer | 2009-05-28 01:18:40 +0000 (Thu, 28 May 2009) | 1 line
+
+Restored VERSION file to snapshot state
+------------------------------------------------------------------------
+r8444 | abdelazer | 2009-05-28 00:17:40 +0000 (Thu, 28 May 2009) | 1 line
+
+I think you have to edit more than README.BUILD says...
+------------------------------------------------------------------------
+r8443 | abdelazer | 2009-05-28 00:14:27 +0000 (Thu, 28 May 2009) | 1 line
+
+Version 1.75.1 released
+------------------------------------------------------------------------
+r8431 | abdelazer | 2009-05-07 12:50:29 +0000 (Thu, 07 May 2009) | 1 line
+
+Restored VERSION file to _next_ snapshot state
+------------------------------------------------------------------------
+r8430 | abdelazer | 2009-05-07 03:58:45 +0000 (Thu, 07 May 2009) | 1 line
+
+Restored VERSION file to snapshot state
+------------------------------------------------------------------------
+r8426 | abdelazer | 2009-05-07 01:30:29 +0000 (Thu, 07 May 2009) | 1 line
+
+fix previous release
+------------------------------------------------------------------------
+r8425 | abdelazer | 2009-05-07 01:29:39 +0000 (Thu, 07 May 2009) | 1 line
+
+Version 1.75.0 released
+------------------------------------------------------------------------
+r8273 | abdelazer | 2009-02-25 01:07:35 +0000 (Wed, 25 Feb 2009) | 1 line
+
+Restored VERSION file to snapshot state
+------------------------------------------------------------------------
+r8270 | abdelazer | 2009-02-24 22:18:36 +0000 (Tue, 24 Feb 2009) | 1 line
+
+Version 1.74.3 released
+------------------------------------------------------------------------
+r8263 | abdelazer | 2009-02-20 13:25:04 +0000 (Fri, 20 Feb 2009) | 1 line
+
+No, we are going to 1.74.3
+------------------------------------------------------------------------
+r8262 | abdelazer | 2009-02-20 06:03:05 +0000 (Fri, 20 Feb 2009) | 1 line
+
+Restored VERSION file to snapshot state
+------------------------------------------------------------------------
+r8260 | abdelazer | 2009-02-20 05:14:06 +0000 (Fri, 20 Feb 2009) | 1 line
+
+Version 1.74.2 released
+------------------------------------------------------------------------
+r8250 | abdelazer | 2009-02-17 15:00:48 +0000 (Tue, 17 Feb 2009) | 1 line
+
+Version 1.74.1 released
+------------------------------------------------------------------------
+r8051 | xmldoc | 2008-06-14 04:54:05 +0000 (Sat, 14 Jun 2008) | 2 lines
+
+set some ignores
+
+------------------------------------------------------------------------
+r8037 | abdelazer | 2008-06-02 15:16:47 +0000 (Mon, 02 Jun 2008) | 1 line
+
+Restored VERSION file to snapshot state
+------------------------------------------------------------------------
+r8033 | abdelazer | 2008-06-01 21:07:37 +0000 (Sun, 01 Jun 2008) | 1 line
+
+Version 1.74.0 released
+------------------------------------------------------------------------
+r7940 | xmldoc | 2008-03-23 04:37:37 +0000 (Sun, 23 Mar 2008) | 5 lines
+
+use XSLT method to determine version number from VERSION file
+(instead of grep hack); also, use w3m as the default browser for
+generating plain-text output from HTML (with GC_NPROCS=1 to
+prevent it from hanging under OSX/Darwin)
+
+------------------------------------------------------------------------
+r7636 | xmldoc | 2008-01-09 11:16:59 +0000 (Wed, 09 Jan 2008) | 3 lines
+
+Don't build reference.pdf file except for official releases
+(because it takes too damn long to build...)
+
+------------------------------------------------------------------------
+r7566 | xmldoc | 2007-11-24 15:57:13 +0000 (Sat, 24 Nov 2007) | 9 lines
+
+Remove xsl:output and omit-xml-declaration element, because it
+seems to be causing problems with xsltproc. Closes bug #1785732.
+Thanks to Denis Gillain for reporting.
+I remember that the reason I added this originally was to work
+around some other but in xsltproc (I think it was that it was
+emitting an xml declaration even when output method is set to
+text, or something) so this change is going to probably going to
+cause a regression of that, but oh well
+
+------------------------------------------------------------------------
+r7400 | xmldoc | 2007-08-30 22:57:37 +0000 (Thu, 30 Aug 2007) | 3 lines
+
+Post 1.73.2 wrap-up; restored VERSION and RELEASE-NOTES.xml files
+to snapshot state.
+
+------------------------------------------------------------------------
+r7388 | xmldoc | 2007-08-30 10:27:34 +0000 (Thu, 30 Aug 2007) | 2 lines
+
+Version 1.73.2 released
+
+------------------------------------------------------------------------
+r7374 | xmldoc | 2007-08-29 14:11:41 +0000 (Wed, 29 Aug 2007) | 3 lines
+
+Re-revert to snapshot state so that we can get one last snapshot
+out before the 1.73.2 release.
+
+------------------------------------------------------------------------
+r7294 | xmldoc | 2007-08-28 09:13:34 +0000 (Tue, 28 Aug 2007) | 2 lines
+
+Added hook to return title of distribution.
+
+------------------------------------------------------------------------
+r7260 | xmldoc | 2007-08-20 00:35:42 +0000 (Mon, 20 Aug 2007) | 1 line
+
+Restored VERSION and RELEASE-NOTES.xml files to snapshot state
+------------------------------------------------------------------------
+r7256 | xmldoc | 2007-08-19 13:35:20 +0000 (Sun, 19 Aug 2007) | 1 line
+
+Version 1.73.1 released
+------------------------------------------------------------------------
+r7224 | xmldoc | 2007-08-09 10:35:12 +0000 (Thu, 09 Aug 2007) | 4 lines
+
+Use "-pre" instead of "+pre" because version number ends up in ID
+values and causes errors because it's not an NCName (getting
+really tired of that arbitrary and unnecessary restriction...)
+
+------------------------------------------------------------------------
+r7210 | xmldoc | 2007-08-09 07:48:28 +0000 (Thu, 09 Aug 2007) | 2 lines
+
+Restored the VERSION file to current snapshot state.
+
+------------------------------------------------------------------------
+r7204 | xmldoc | 2007-08-09 07:42:33 +0000 (Thu, 09 Aug 2007) | 2 lines
+
+temporarily reverting for tagging purposes
+
+------------------------------------------------------------------------
+r7176 | xmldoc | 2007-08-06 10:07:03 +0000 (Mon, 06 Aug 2007) | 1 line
+
+Restored VERSION and RELEASE-NOTES.xml files to snapshot state
+------------------------------------------------------------------------
+r7159 | xmldoc | 2007-07-27 07:00:22 +0000 (Fri, 27 Jul 2007) | 7 lines
+
+- Added the "tag" make target (unfinished) for tagging releases.
+- Renamed get-element.xsl to eval-xpath.xsl and modified it to be
+  capable of getting string value of a node based on an XPath
+  expression provided on the command line.
+- Removed get-param.xsl as changes to the xsl/VERSION file make
+  get-params.xsl obsolete.
+
+------------------------------------------------------------------------
+r7117 | xmldoc | 2007-07-22 14:34:57 +0000 (Sun, 22 Jul 2007) | 2 lines
+
+Version 1.73.0 released
+
+------------------------------------------------------------------------
+r7116 | xmldoc | 2007-07-22 14:33:49 +0000 (Sun, 22 Jul 2007) | 2 lines
+
+Version 1.73.0 released
+
+------------------------------------------------------------------------
+r7115 | xmldoc | 2007-07-22 14:17:36 +0000 (Sun, 22 Jul 2007) | 2 lines
+
+Version 1.73.0 released
+
+------------------------------------------------------------------------
+r7114 | xmldoc | 2007-07-22 14:03:43 +0000 (Sun, 22 Jul 2007) | 2 lines
+
+Version 1.73.0 released
+
+------------------------------------------------------------------------
+r6901 | xmldoc | 2007-06-28 16:56:37 +0000 (Thu, 28 Jun 2007) | 2 lines
+
+Updated freshmeat "CVS" URL
+
+------------------------------------------------------------------------
+r6896 | xmldoc | 2007-06-28 04:04:50 +0000 (Thu, 28 Jun 2007) | 2 lines
+
+Added VersionFileURL element (=URL RCS keyword).
+
+------------------------------------------------------------------------
+r6556 | xmldoc | 2007-01-25 10:25:23 +0000 (Thu, 25 Jan 2007) | 3 lines
+
+Moved all release metadata to VERSION file, and updated release
+build to rely on it.
+
+------------------------------------------------------------------------
+r6554 | xmldoc | 2007-01-24 13:07:21 +0000 (Wed, 24 Jan 2007) | 2 lines
+
+Moved docbook-xsl to 1.72.1+pre snapshot state.
+
+------------------------------------------------------------------------
+r6549 | xmldoc | 2007-01-23 12:29:58 +0000 (Tue, 23 Jan 2007) | 2 lines
+
+Changed fm:Release-Focus to "Major feature enhancements"
+
+------------------------------------------------------------------------
+r6545 | xmldoc | 2007-01-22 19:41:45 +0000 (Mon, 22 Jan 2007) | 2 lines
+
+Checkpointing release-note edits for review.
+
+------------------------------------------------------------------------
+r6536 | xmldoc | 2007-01-21 08:37:12 +0000 (Sun, 21 Jan 2007) | 5 lines
+
+Changed VERSION file to include distro title (DocBook XSL
+Stylesheets), and updated HTML, FO, and manpages stylesheets to
+use that in their metadata sections (e.g., in HTML, the
+<meta name="generator" ...> contents).
+
+------------------------------------------------------------------------
+r6371 | xmldoc | 2006-10-19 09:47:42 +0000 (Thu, 19 Oct 2006) | 2 lines
+
+Version 1.71.1 released
+
+------------------------------------------------------------------------
+r6275 | xmldoc | 2006-09-09 14:49:26 +0000 (Sat, 09 Sep 2006) | 2 lines
+
+Version 1.71.0 released
+
+------------------------------------------------------------------------
+r6002 | xmldoc | 2006-05-26 06:44:29 +0000 (Fri, 26 May 2006) | 2 lines
+
+Version 1.70.1 released
+
+------------------------------------------------------------------------
+r5984 | xmldoc | 2006-05-17 08:24:54 +0000 (Wed, 17 May 2006) | 2 lines
+
+Version 1.70.0 released
+
+------------------------------------------------------------------------
+r5151 | xmldoc | 2005-08-11 23:31:07 +0000 (Thu, 11 Aug 2005) | 2 lines
+
+Version 1.69.1 released.
+
+------------------------------------------------------------------------
+r5150 | xmldoc | 2005-08-11 23:29:01 +0000 (Thu, 11 Aug 2005) | 2 lines
+
+Version 1.69.1 released.
+
+------------------------------------------------------------------------
+r5109 | xmldoc | 2005-07-18 01:44:15 +0000 (Mon, 18 Jul 2005) | 2 lines
+
+Version 1.69.0 released.
+
+------------------------------------------------------------------------
+r4317 | xmldoc | 2005-02-14 07:21:03 +0000 (Mon, 14 Feb 2005) | 2 lines
+
+Version 1.68.1 released.
+
+------------------------------------------------------------------------
+r4306 | xmldoc | 2005-02-09 12:34:51 +0000 (Wed, 09 Feb 2005) | 2 lines
+
+Version 1.68.0 released
+
+------------------------------------------------------------------------
+r4067 | xmldoc | 2004-12-02 08:40:32 +0000 (Thu, 02 Dec 2004) | 2 lines
+
+Version 1.67.2 released.
+
+------------------------------------------------------------------------
+r4063 | xmldoc | 2004-12-02 03:49:19 +0000 (Thu, 02 Dec 2004) | 2 lines
+
+Version 1.67.1 released.
+
+------------------------------------------------------------------------
+r3986 | xmldoc | 2004-11-09 20:10:06 +0000 (Tue, 09 Nov 2004) | 2 lines
+
+Version 1.67.0 released.
+
+------------------------------------------------------------------------
+r3880 | nwalsh | 2004-10-17 21:30:29 +0000 (Sun, 17 Oct 2004) | 2 lines
+
+Capitalization tweaks necessary for the latest freshmeat script
+
+------------------------------------------------------------------------
+r3840 | xmldoc | 2004-09-20 03:25:43 +0000 (Mon, 20 Sep 2004) | 2 lines
+
+Version 1.66.1 released.
+
+------------------------------------------------------------------------
+r3837 | bobstayton | 2004-09-19 05:58:48 +0000 (Sun, 19 Sep 2004) | 2 lines
+
+Move to 1.66.1.
+
+------------------------------------------------------------------------
+r3808 | bobstayton | 2004-09-11 08:20:24 +0000 (Sat, 11 Sep 2004) | 2 lines
+
+Updated version to 1.66.0
+
+------------------------------------------------------------------------
+r3498 | nwalsh | 2004-03-09 10:15:17 +0000 (Tue, 09 Mar 2004) | 2 lines
+
+Version 1.65.1 released
+
+------------------------------------------------------------------------
+r3481 | nwalsh | 2004-02-27 20:43:23 +0000 (Fri, 27 Feb 2004) | 2 lines
+
+No really, version 1.65.0 released.
+
+------------------------------------------------------------------------
+r3480 | nwalsh | 2004-02-27 20:41:23 +0000 (Fri, 27 Feb 2004) | 2 lines
+
+Version 1.65.0 released.
+
+------------------------------------------------------------------------
+r3383 | nwalsh | 2004-01-08 13:14:18 +0000 (Thu, 08 Jan 2004) | 2 lines
+
+Tweaks for freshmeat-submit
+
+------------------------------------------------------------------------
+r3252 | nwalsh | 2003-12-17 14:57:33 +0000 (Wed, 17 Dec 2003) | 2 lines
+
+Prepare to support freshmeat-submit for next release
+
+------------------------------------------------------------------------
+r3246 | nwalsh | 2003-12-15 21:28:52 +0000 (Mon, 15 Dec 2003) | 2 lines
+
+Version 1.64.0 released.
+
+------------------------------------------------------------------------
+r3242 | nwalsh | 2003-12-15 20:57:03 +0000 (Mon, 15 Dec 2003) | 2 lines
+
+Version 1.63.0 released.
+
+------------------------------------------------------------------------
+r3146 | nwalsh | 2003-09-29 10:54:10 +0000 (Mon, 29 Sep 2003) | 2 lines
+
+Version 1.62.4 released.
+
+------------------------------------------------------------------------
+r3135 | nwalsh | 2003-09-28 20:35:30 +0000 (Sun, 28 Sep 2003) | 2 lines
+
+Version 1.62.3 released.
+
+------------------------------------------------------------------------
+r3126 | nwalsh | 2003-09-28 14:57:48 +0000 (Sun, 28 Sep 2003) | 2 lines
+
+Version 1.62.2 released.
+
+------------------------------------------------------------------------
+r3123 | nwalsh | 2003-09-27 20:41:24 +0000 (Sat, 27 Sep 2003) | 2 lines
+
+Version 1.62.1 released.
+
+------------------------------------------------------------------------
+r3073 | nwalsh | 2003-08-31 01:55:47 +0000 (Sun, 31 Aug 2003) | 2 lines
+
+Version 1.62.0 released.
+
+------------------------------------------------------------------------
+r2934 | nwalsh | 2003-06-22 17:48:29 +0000 (Sun, 22 Jun 2003) | 2 lines
+
+Version 1.61.3 released.
+
+------------------------------------------------------------------------
+r2885 | nwalsh | 2003-05-22 23:26:44 +0000 (Thu, 22 May 2003) | 2 lines
+
+Version 1.61.2 released.
+
+------------------------------------------------------------------------
+r2882 | nwalsh | 2003-05-19 19:43:30 +0000 (Mon, 19 May 2003) | 2 lines
+
+Post 1.61.1 updates
+
+------------------------------------------------------------------------
+r2879 | nwalsh | 2003-05-18 19:17:00 +0000 (Sun, 18 May 2003) | 2 lines
+
+Version 1.61.1 released.
+
+------------------------------------------------------------------------
+r2877 | nwalsh | 2003-05-18 14:46:08 +0000 (Sun, 18 May 2003) | 2 lines
+
+Version 1.60.1 released.
+
+------------------------------------------------------------------------
+r2868 | nwalsh | 2003-05-08 15:14:27 +0000 (Thu, 08 May 2003) | 2 lines
+
+Post 1.61.0 hacking
+
+------------------------------------------------------------------------
+r2866 | nwalsh | 2003-05-08 14:44:24 +0000 (Thu, 08 May 2003) | 2 lines
+
+Version 1.61.0 released.
+
+------------------------------------------------------------------------
+r2594 | nwalsh | 2003-01-24 22:37:50 +0000 (Fri, 24 Jan 2003) | 2 lines
+
+Version 1.60.1 released.
+
+------------------------------------------------------------------------
+r2538 | nwalsh | 2003-01-21 00:53:17 +0000 (Tue, 21 Jan 2003) | 2 lines
+
+Version 1.60.0 released.
+
+------------------------------------------------------------------------
+r2482 | nwalsh | 2003-01-17 13:50:43 +0000 (Fri, 17 Jan 2003) | 2 lines
+
+Version 1.59.2 released.
+
+------------------------------------------------------------------------
+r2443 | nwalsh | 2003-01-12 18:26:00 +0000 (Sun, 12 Jan 2003) | 2 lines
+
+Version 1.59.1 released.
+
+------------------------------------------------------------------------
+r2417 | nwalsh | 2003-01-01 21:46:15 +0000 (Wed, 01 Jan 2003) | 2 lines
+
+Version 1.59.0 released.
+
+------------------------------------------------------------------------
+r2266 | nwalsh | 2002-11-29 13:54:15 +0000 (Fri, 29 Nov 2002) | 2 lines
+
+Version 1.58.1 released.
+
+------------------------------------------------------------------------
+r2246 | nwalsh | 2002-11-17 17:28:15 +0000 (Sun, 17 Nov 2002) | 2 lines
+
+Version 1.58.0 released.
+
+------------------------------------------------------------------------
+r2199 | nwalsh | 2002-10-22 11:19:18 +0000 (Tue, 22 Oct 2002) | 2 lines
+
+Version 1.57.0 released.
+
+------------------------------------------------------------------------
+r2170 | nwalsh | 2002-10-09 13:14:52 +0000 (Wed, 09 Oct 2002) | 2 lines
+
+Version 1.56.1 released.
+
+------------------------------------------------------------------------
+r2166 | nwalsh | 2002-10-09 10:05:02 +0000 (Wed, 09 Oct 2002) | 2 lines
+
+Version 1.56.0 released.
+
+------------------------------------------------------------------------
+r2079 | nwalsh | 2002-09-17 11:30:08 +0000 (Tue, 17 Sep 2002) | 2 lines
+
+Version 1.55.0 released.
+
+------------------------------------------------------------------------
+r1992 | nwalsh | 2002-09-03 13:59:01 +0000 (Tue, 03 Sep 2002) | 2 lines
+
+Version 1.54.1 released.
+
+------------------------------------------------------------------------
+r1986 | nwalsh | 2002-09-03 11:04:33 +0000 (Tue, 03 Sep 2002) | 2 lines
+
+Version 1.54.0 released.
+
+------------------------------------------------------------------------
+r1922 | nwalsh | 2002-07-28 19:08:54 +0000 (Sun, 28 Jul 2002) | 2 lines
+
+Version 1.53.0 released.
+
+------------------------------------------------------------------------
+r1838 | nwalsh | 2002-07-10 10:34:47 +0000 (Wed, 10 Jul 2002) | 2 lines
+
+Version 1.52.2 released.
+
+------------------------------------------------------------------------
+r1826 | nwalsh | 2002-07-08 09:40:16 +0000 (Mon, 08 Jul 2002) | 2 lines
+
+Keep CVS and real releases distinct
+
+------------------------------------------------------------------------
+r1824 | nwalsh | 2002-07-08 09:07:49 +0000 (Mon, 08 Jul 2002) | 2 lines
+
+Version 1.52.1 released.
+
+------------------------------------------------------------------------
+r1818 | nwalsh | 2002-07-07 23:39:39 +0000 (Sun, 07 Jul 2002) | 2 lines
+
+Version 1.52.0 released.
+
+------------------------------------------------------------------------
+r1580 | nwalsh | 2002-06-03 10:28:11 +0000 (Mon, 03 Jun 2002) | 2 lines
+
+Version 1.51.1 released.
+
+------------------------------------------------------------------------
+r1578 | nwalsh | 2002-06-02 21:20:34 +0000 (Sun, 02 Jun 2002) | 2 lines
+
+Version 1.51.0 released.
+
+------------------------------------------------------------------------
+r1480 | nwalsh | 2002-05-16 17:35:22 +0000 (Thu, 16 May 2002) | 2 lines
+
+Oops again.
+
+------------------------------------------------------------------------
+r1479 | nwalsh | 2002-05-16 17:27:43 +0000 (Thu, 16 May 2002) | 2 lines
+
+Oops.
+
+------------------------------------------------------------------------
+r1477 | nwalsh | 2002-05-16 17:22:26 +0000 (Thu, 16 May 2002) | 2 lines
+
+Version 1.50.1-EXP2 released.
+
+------------------------------------------------------------------------
+r1351 | nwalsh | 2002-03-25 21:14:10 +0000 (Mon, 25 Mar 2002) | 2 lines
+
+Version 1.50.1-EXP released.
+
+------------------------------------------------------------------------
+r1305 | nwalsh | 2002-03-21 01:44:14 +0000 (Thu, 21 Mar 2002) | 2 lines
+
+Version 1.50.0 released.
+
+------------------------------------------------------------------------
+r1232 | nwalsh | 2002-03-14 14:00:13 +0000 (Thu, 14 Mar 2002) | 2 lines
+
+Keep CVS versions distinct from real releases
+
+------------------------------------------------------------------------
+r1164 | nwalsh | 2002-02-20 23:15:24 +0000 (Wed, 20 Feb 2002) | 2 lines
+
+Version 1.49 released.
+
+------------------------------------------------------------------------
+r1076 | nwalsh | 2002-01-06 21:11:38 +0000 (Sun, 06 Jan 2002) | 2 lines
+
+Version 1.48 released.
+
+------------------------------------------------------------------------
+r926 | nwalsh | 2001-11-28 15:14:45 +0000 (Wed, 28 Nov 2001) | 2 lines
+
+Keep CVS versions distinct from real releases
+
+------------------------------------------------------------------------
+r924 | nwalsh | 2001-11-28 14:20:10 +0000 (Wed, 28 Nov 2001) | 2 lines
+
+Version 1.47 released.
+
+------------------------------------------------------------------------
+r768 | nwalsh | 2001-10-13 22:24:36 +0000 (Sat, 13 Oct 2001) | 2 lines
+
+Version 1.46 released.
+
+------------------------------------------------------------------------
+r706 | nwalsh | 2001-09-29 19:11:31 +0000 (Sat, 29 Sep 2001) | 2 lines
+
+Keep CVS versions distinct from real releases
+
+------------------------------------------------------------------------
+r704 | nwalsh | 2001-09-29 18:44:39 +0000 (Sat, 29 Sep 2001) | 2 lines
+
+Version 1.45 released.
+
+------------------------------------------------------------------------
+r636 | nwalsh | 2001-08-14 15:03:31 +0000 (Tue, 14 Aug 2001) | 2 lines
+
+Version 1.44 released.
+
+------------------------------------------------------------------------
+r633 | nwalsh | 2001-08-13 22:05:42 +0000 (Mon, 13 Aug 2001) | 2 lines
+
+Keep CVS versions distinct from real releases
+
+------------------------------------------------------------------------
+r630 | nwalsh | 2001-08-13 22:01:58 +0000 (Mon, 13 Aug 2001) | 2 lines
+
+Version 1.43 released.
+
+------------------------------------------------------------------------
+r590 | nwalsh | 2001-08-06 13:33:05 +0000 (Mon, 06 Aug 2001) | 2 lines
+
+Keep CVS versions distinct from real releases
+
+------------------------------------------------------------------------
+r588 | nwalsh | 2001-08-06 13:25:39 +0000 (Mon, 06 Aug 2001) | 2 lines
+
+Version 1.42 released.
+
+------------------------------------------------------------------------
+r574 | nwalsh | 2001-08-04 22:00:35 +0000 (Sat, 04 Aug 2001) | 2 lines
+
+Make VERSION a parameter so that it isn't an error some stylesheets override it
+
+------------------------------------------------------------------------
+r457 | nwalsh | 2001-07-09 10:01:46 +0000 (Mon, 09 Jul 2001) | 2 lines
+
+Version 1.41 released.
+
+------------------------------------------------------------------------
+r345 | nwalsh | 2001-06-14 18:39:36 +0000 (Thu, 14 Jun 2001) | 2 lines
+
+Version 1.40 released.
+
+------------------------------------------------------------------------
+r288 | nwalsh | 2001-05-24 20:32:04 +0000 (Thu, 24 May 2001) | 2 lines
+
+Version 1.39 released.
+
+------------------------------------------------------------------------
+r276 | nwalsh | 2001-05-21 19:25:17 +0000 (Mon, 21 May 2001) | 2 lines
+
+Version 1.38 released.
+
+------------------------------------------------------------------------
+r195 | nwalsh | 2001-04-20 11:57:57 +0000 (Fri, 20 Apr 2001) | 2 lines
+
+Version 1.37 released.
+
+------------------------------------------------------------------------
+r106 | nwalsh | 2001-04-04 11:56:43 +0000 (Wed, 04 Apr 2001) | 2 lines
+
+Version 1.36 released.
+
+------------------------------------------------------------------------
+r69 | nwalsh | 2001-04-02 13:03:45 +0000 (Mon, 02 Apr 2001) | 2 lines
+
+Initial checkin
+
+------------------------------------------------------------------------
diff --git a/applications/content/template/docbook/manpages/ChangeLog.20020917 b/applications/content/template/docbook/manpages/ChangeLog.20020917
new file mode 100644
index 0000000..c170cc0
--- /dev/null
+++ b/applications/content/template/docbook/manpages/ChangeLog.20020917
@@ -0,0 +1,195 @@
+Note: This changelog is a record of descriptions of all changes
+made to the DocBook XSL manpages stylesheets during the time when
+they were maintained in their original home in the
+[cvs]/docbook/contrib/xsl/db2man area of the DocBook Project
+source-code repository at Sourceforge; that is, from October 2001
+(when they were contributed to the project by Martijn van Beers)
+until September 2002 (when they were moved to the
+[cvs]/docbook/xsl/manpages area and became a standard part of all
+subsequent DocBook XSL Stylesheets releases).
+
+2002-09-17  Norman Walsh <nwalsh@users.sourceforge.net>
+
+	* README, db2man.xsl, lists.xsl, sect23.xsl, synop.xsl, xref.xsl: 
+	Moved to docbook/xsl/manpages
+
+	* db2man.xsl, synop.xsl: Patch from Joe Orton
+
+2002-06-16  <lotr@users.sourceforge.net>
+
+	* db2man.xsl: commit patch sent by Joe Orton:
+	
+	  This patch adds support for using the productname, date and title out of
+	  a <referenceinfo> if one is present, rather than having to add each of
+	  these individually for every refentry.
+
+	* db2man.xsl: Tim Waugh sent:
+	
+	  This patch normalizes space in each refname before displaying it in
+	  the name section.
+
+2002-05-21  <lotr@users.sourceforge.net>
+
+	* xref.xsl: from Joe Orton:
+	this patch allows cross-referencing to a specific refname.  I
+	need this since I'm documenting several different (but related)
+	functions per refentry, and want to cross-reference them individually,
+	rather than just by the title used for the refentry as a whole.
+
+2002-05-17  <lotr@users.sourceforge.net>
+
+	* lists.xsl: apply glosslist support patch from twaugh
+
+2002-05-15  <lotr@users.sourceforge.net>
+
+	* db2man.xsl: slightly sanitize the filenames we generate. again from twaugh
+
+	* db2man.xsl: Apply twaugh's fix for making the entity transform stuff work
+
+2002-05-14  <lotr@users.sourceforge.net>
+
+	* db2man.xsl: generalize the tip template for all admonitions
+	(caution,important,note,tip,warning)
+
+	* db2man.xsl: Apply Joe Orton's <tip> patch, modified to be indented. Also show "Tip"
+	in the title.
+	
+	so if <tip><title>foo</title></tip>, you get
+	      Tip: foo
+
+	* synop.xsl: rewrote funcprototype. It used to convert all its children to a single
+	string and the split it up again through recursion. Now has a nice
+	foreach loop for the paramdefs, which seems much cleaner than throwing
+	everything in a big string before processing it.
+
+2002-05-10  <lotr@users.sourceforge.net>
+
+	* db2man.xsl: add support for simpara
+
+	* db2man.xsl, lists.xsl: fix refsect2 titles
+
+	* synop.xsl: also from twaugh:
+	
+	I found some input that goes wrong with the synop.xsl we have in CVS:
+	
+	<group choice="opt">
+	  <arg>-o <replaceable>FILE</replaceable></arg>
+	  <arg>--output=<replaceable>FILE</replaceable></arg>
+	</group>
+	
+	It gets rendered as (with *bold* and _italic_):
+	
+	[*-o FILE* | *--output=FILE*]
+	
+	The desired markup should look like:
+	The following macro does the trick:
+	
+	[\fB-o \fIFILE\fR\fR | \fB--output=\fIFILE\fR\fR]
+	
+	The trouble is that the named template 'bold' uses value-of, and so
+	strips <replaceable> of its significance.
+	
+	Another thing I found is that the arg/replaceable template is
+	superfluous altogether: db2man.xsl has a 'replaceable' template which
+	does the same thing.
+	
+	Here is a patch to make those two modifications.
+	
+	NOTE TO SELF: must try to fix bold template so we can use it everywhere
+
+2002-05-09  <lotr@users.sourceforge.net>
+
+	* db2man.xsl: oops, removed too much
+
+	* db2man.xsl: remove stuff that's apparently left-over from sect23.xsl
+
+	* db2man.xsl, lists.xsl, synop.xsl: batch of patches from twaugh:
+	* This patch (based on one from Jirka Kosek) adds support for
+	  block-level elements inside <para>s---<screen>s for example, or lists.
+	* This patch replaces entities (like '&#x8212;') with sensible
+	  characters or groups of characters.
+	* This patch adds support for sbr.
+	* This patch normalizes spaces in varlistentry terms.
+	* This patch normalizes spaces in terminal varlistentry terms.
+	* This patch allows variable lists to be nested (once).
+	* This patch prevents variable list item paragraphs from merging into
+	  one another.
+	* This patch improves the rendering of itemized lists, and adds support
+	  for ordered lists and procedures.
+	* This patch makes some small adjustments to group/arg: don't put extra
+	  spaces in where they aren't needed, and normalize the space of $arg.
+	* This patch makes adjustments to cmdsynopsis elements.  In particular,
+	  they can now be wrapped if no <sbr/> is provided.
+	* This patch adds funcsynopsis//* support.  Again, wrapping is done
+	  automatically.
+
+	* synop.xsl: make synopsises work for --arg=foo <arg>s too
+
+	* synop.xsl: remove unneccesary adding of whitespace for arg/replaceable
+
+2002-05-01  <lotr@users.sourceforge.net>
+
+	* db2man.xsl: This patch adds support for multiple refnames.
+	
+	(another twaugh patch)
+
+	* db2man.xsl: modified ulink patch from twaugh. Be nice to content-less ulinks. But we
+	don't accomodate silly people who don't understand ulink and put the
+	url as the content too.
+
+	* db2man.xsl, synop.xsl: db2man.xsl:
+	  * temporarily add some params that chunker.xsl needs
+	  * fix bold/italic templates
+	  * update calls to bold/italic templates for new syntax
+	synop.xsl:
+	  * add support for synopfragment
+	  * update calls to bold/italic templates for new syntax
+
+2002-04-30  <lotr@users.sourceforge.net>
+
+	* db2man.xsl: Add twaug's patch for xref support
+
+	* db2man.xsl: This patch adds support for:
+	
+	- Multiple authors.
+	- A (single) man page editor.
+	
+	(another patch from twaugh)
+
+	* db2man.xsl: more twaugh patches:
+	- Use refentrytitle, not refname[1], for title.
+	- Upper-case it.
+	- Use date, productname, and title.
+	- Pick up author from main document if not contained in refentry.
+	- Use refname[1] for man page filename, not refentrytitle.
+
+	* db2man.xsl: add varname support
+
+	* db2man.xsl: This patch makes userinput (an inline element) have inline formatting.
+
+	* db2man.xsl: This patch adds support for the top-level document being something
+	other than an article.
+	
+	It also emits a helpful warning if no refentry elements are found.
+
+	* db2man.xsl: next twaugh patch:
+	  Instead of writing to stdout, create a file for each
+	  refentry.  Plus, for bonus points, a file for each additional refname
+	  within that entry (pointing to the main page).
+
+	* db2man.xsl: Add named templates for bold-ifying and italicizing stuff. Inspired
+	by yet another twaugh patch
+
+	* db2man.xsl, lists.xsl, sect23.xsl: consistently use &#10; instead of a newline
+
+	* db2man.xsl, synop.xsl: * add support for informalexample, screen, errorcode, constant, type,
+	  quote, programlisting and citerefentry
+	* use the 'bold' and 'italic' named templates
+
+	* xref.xsl: New file.
+
+2001-12-01  Norman Walsh <nwalsh@users.sourceforge.net>
+
+	* README, db2man.xsl, lists.xsl, sect23.xsl, synop.xsl: 
+	New file.
+
diff --git a/applications/content/template/docbook/manpages/block.xsl b/applications/content/template/docbook/manpages/block.xsl
new file mode 100644
index 0000000..74f809e
--- /dev/null
+++ b/applications/content/template/docbook/manpages/block.xsl
@@ -0,0 +1,411 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                exclude-result-prefixes="exsl"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="caution|important|note|tip|warning">
+  <xsl:call-template name="roff-if-start">
+    <xsl:with-param name="condition">n</xsl:with-param>
+  </xsl:call-template>
+  <xsl:text>.sp&#10;</xsl:text>
+  <xsl:call-template name="roff-if-end"/>
+  <xsl:text>.RS 4&#10;</xsl:text>
+  <xsl:if test="not($man.output.better.ps.enabled = 0)">
+    <xsl:text>.BM yellow&#10;</xsl:text>
+  </xsl:if>
+  <xsl:call-template name="pinch.together"/>
+  <xsl:text>.ps +1&#10;</xsl:text>
+  <xsl:call-template name="make.bold.title"/>
+  <xsl:text>.ps -1&#10;</xsl:text>
+  <xsl:text>.br&#10;</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>.sp .5v&#10;</xsl:text>
+  <xsl:if test="not($man.output.better.ps.enabled = 0)">
+    <xsl:text>.EM yellow&#10;</xsl:text>
+  </xsl:if>
+  <xsl:text>.RE&#10;</xsl:text>
+</xsl:template> 
+
+<xsl:template match="formalpara">
+  <xsl:variable name="title.wrapper">
+    <xsl:value-of select="normalize-space(title[1])"/>
+  </xsl:variable>
+  <xsl:text>.PP&#10;</xsl:text>
+  <!-- * don't put linebreak after head; instead render it as a "run in" -->
+  <!-- * head, that is, inline, with a period and space following it -->
+  <xsl:call-template name="bold">
+    <xsl:with-param name="node" select="exsl:node-set($title.wrapper)"/>
+    <xsl:with-param name="context" select="."/>
+  </xsl:call-template>
+  <xsl:text>. </xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="formalpara/para">
+  <xsl:call-template name="mixed-block"/>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="para">
+  <!-- * FIXME: Need to extract the ancestor::footnote, etc. checking and -->
+  <!-- * move to named template so that we can call it from templates for -->
+  <!-- * other block elements also -->
+  <xsl:choose>
+    <!-- * If a para is a descendant of a footnote, etc., then indent it -->
+    <!-- * (unless it is the first child, in which case don't generate -->
+    <!-- * anything at all to mark its start). -->
+    <!-- * FIXME: *blurb checking should not be munged in here the way -->
+    <!-- * it currently is; this probably breaks blurb indenting. -->
+    <xsl:when test="ancestor::footnote or
+                    ancestor::annotation or
+                    ancestor::authorblurb or
+                    ancestor::personblurb or
+                    ancestor::callout">
+      <xsl:if test="preceding-sibling::*[not(name() ='')]">
+        <xsl:text>.sp</xsl:text>
+        <xsl:text>&#10;</xsl:text>
+        <xsl:text>.RS 4n</xsl:text>
+        <xsl:text>&#10;</xsl:text>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>.PP</xsl:text>
+      <xsl:text>&#10;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:call-template name="mixed-block"/>
+    <xsl:if test="ancestor::footnote or
+                  ancestor::annotation or
+                  ancestor::authorblurb or
+                  ancestor::personblurb">
+      <xsl:if test="preceding-sibling::*[not(name() ='')]">
+        <xsl:text>&#10;</xsl:text>
+        <xsl:text>.RE</xsl:text>
+        <xsl:text>&#10;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="simpara">
+  <xsl:choose>
+    <xsl:when test="ancestor::footnote or
+                    ancestor::annotation or
+                    ancestor::authorblurb or
+                    ancestor::personblurb or
+                    ancestor::callout">
+      <xsl:if test="preceding-sibling::*[not(name() ='')]">
+        <xsl:text>.sp</xsl:text>
+        <xsl:text>&#10;</xsl:text>
+        <xsl:text>.RS 4n</xsl:text>
+        <xsl:text>&#10;</xsl:text>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>.sp</xsl:text>
+      <xsl:text>&#10;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:variable name="content">
+    <xsl:apply-templates/>
+  </xsl:variable>
+  <xsl:value-of select="normalize-space($content)"/>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * Yes, address, synopsis, and funcsynopsisinfo are verbatim environments. -->
+<xsl:template match="literallayout|programlisting|screen|
+                     address|synopsis|funcsynopsisinfo">
+  <xsl:param name="indent">
+    <!-- * Only indent this verbatim if $man.indent.verbatims is -->
+    <!-- * non-zero and it is not a child of a *synopsis element or a -->
+    <!-- * descendant of a refsynopsisdiv -->
+    <xsl:if test="not($man.indent.verbatims = 0)
+      and not(substring(local-name(..),
+      string-length(local-name(..))-7) = 'synopsis')
+      and not(ancestor::*[local-name() = 'refsynopsisdiv'])
+      ">
+      <xsl:text>Yes</xsl:text>
+    </xsl:if>
+  </xsl:param>
+
+  <!-- * if this verbatim environment starts with a newline/linebreak -->
+  <!-- * (that is, if there is a linebreak after the opening tag), that -->
+  <!-- * break would otherwise show up in output; that does not seem to -->
+  <!-- * be what most users would expect, so we check to see if it does -->
+  <!-- * indeed start with a leading newline. if so, later in this -->
+  <!-- * template, we adjust for the leading new line by doing some -->
+  <!-- * monkeyshines with "sp -1" vertical spacing -->
+  <xsl:variable name="adjust-for-leading-newline">
+    <xsl:if test="substring(., 1, 1) = '&#10;'">Yes</xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <!-- * Check to see if this verbatim item is within a parent element that -->
+    <!-- * allows mixed content. -->
+    <!-- * -->
+    <!-- * If it is within a mixed-content parent, then a line space is -->
+    <!-- * already added before it by the mixed-block template, so we don't -->
+    <!-- * need to add one here. -->
+    <!-- * -->
+    <!-- * If it is not within a mixed-content parent, then we need to add a -->
+    <!-- * line space before it. -->
+    <xsl:when test="parent::caption|parent::entry|parent::para|
+                    parent::td|parent::th" /> <!-- do nothing -->
+    <xsl:otherwise>
+      <xsl:text>&#10;</xsl:text>
+      <xsl:text>.sp&#10;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="$indent = 'Yes'">
+    <!-- * start indented section -->
+    <xsl:call-template name="roff-if-start"/>
+    <!-- * only indent in TTY output, not in non-TTY/PS -->
+    <xsl:text>.RS</xsl:text> 
+    <xsl:if test="not($man.indent.width = '')">
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$man.indent.width"/>
+    </xsl:if>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:call-template name="roff-if-end"/>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="self::funcsynopsisinfo">
+      <!-- * All Funcsynopsisinfo content is by default rendered in bold, -->
+      <!-- * because the man(7) man page says this: -->
+      <!-- * -->
+      <!-- *   For functions, the arguments are always specified using -->
+      <!-- *   italics, even in the SYNOPSIS section, where the rest of -->
+      <!-- *   the function is specified in bold -->
+      <!-- * -->
+      <!-- * Look through the contents of the man/man2 and man3 directories -->
+      <!-- * on your system, and you'll see that most existing pages do follow -->
+      <!-- * this "bold everything in function synopsis" rule. -->
+      <!-- * -->
+      <!-- * Users who don't want the bold output can choose to adjust the -->
+      <!-- * man.font.funcsynopsisinfo parameter on their own. So even if you -->
+      <!-- * don't personally like the way it looks, please don't change the -->
+      <!-- * default to be non-bold - because it's a convention that's -->
+      <!-- * followed is the vast majority of existing man pages that document -->
+      <!-- * functions, and we need to follow it by default, like it or no. -->
+      <xsl:text>.ft </xsl:text>
+      <xsl:value-of select="$man.font.funcsynopsisinfo"/>
+      <xsl:text>&#10;</xsl:text>
+      <xsl:call-template name="verbatim-block-start"/>
+      <xsl:text>.nf&#10;</xsl:text>
+      <xsl:apply-templates/>
+      <xsl:text>&#10;</xsl:text>
+      <xsl:text>.fi&#10;</xsl:text>
+      <xsl:call-template name="verbatim-block-end"/>
+      <xsl:text>.ft&#10;</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- * Other verbatims do not need to get bolded -->
+      <xsl:call-template name="verbatim-block-start"/>
+      <xsl:text>.nf&#10;</xsl:text>
+      <xsl:choose>
+        <xsl:when test="self::literallayout|self::programlisting|self::screen
+          and not(ancestor::*[local-name() = 'refsynopsisdiv'])
+          and not($man.output.better.ps.enabled = 0)
+          ">
+          <!-- * if this is a literallayout|programlisting|screen, -->
+          <!-- * and user has set man.output.better.ps.enabled to non-zero, -->
+          <!-- * then we put a background behind it in non-TTY output; except -->
+          <!-- * if it’s a descendant of a refsynopsisdiv (as can be -->
+          <!-- * found in the git docs) -->
+          <xsl:choose>
+            <!-- * if content has a leading newline, we need to back up -->
+            <!-- * one line vertically to get it boxed correctly -->
+            <xsl:when test="not($adjust-for-leading-newline = '')">
+              <xsl:call-template name="roff-if-start">
+                <xsl:with-param name="condition">t</xsl:with-param>
+              </xsl:call-template>
+              <xsl:text>.sp -1&#10;</xsl:text>
+              <xsl:call-template name="roff-if-end"/>
+              <xsl:text>.BB lightgray</xsl:text>
+              <xsl:text> </xsl:text>
+              <xsl:text>adjust-for-leading-newline&#10;</xsl:text>
+              <!-- * in non-TTY output, for the case where we have a -->
+              <!-- * leading newline, we need to also back up one line -->
+              <!-- * vertically inside the background box -->
+              <xsl:text>.sp -1&#10;</xsl:text>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:text>.BB lightgray&#10;</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+          <xsl:apply-templates/>
+          <xsl:text>&#10;</xsl:text>
+          <xsl:choose>
+            <xsl:when test="not($adjust-for-leading-newline = '')">
+              <xsl:text>.EB lightgray</xsl:text>
+              <xsl:text> </xsl:text>
+              <xsl:text>adjust-for-leading-newline&#10;</xsl:text>
+              <xsl:call-template name="roff-if-start">
+                <xsl:with-param name="condition">t</xsl:with-param>
+              </xsl:call-template>
+              <!-- * in non-TTY output, for the case where we have a -->
+              <!-- * leading newline, we need to add back at the end of -->
+              <!-- * the content some of the vertical space we chopped -->
+              <!-- * off at the beginning -->
+              <xsl:text>.sp 1&#10;</xsl:text>
+              <xsl:call-template name="roff-if-end"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:text>.EB lightgray&#10;</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- * otherwise this is not a literallayout|programlisting|screen, -->
+          <!-- * so we don’t put a background behind -->
+          <xsl:apply-templates/>
+          <xsl:text>&#10;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:text>.fi&#10;</xsl:text>
+      <xsl:call-template name="verbatim-block-end"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="$indent = 'Yes'">
+    <!-- * end indented section -->
+    <xsl:call-template name="roff-if-start"/>
+    <xsl:text>.RE&#10;</xsl:text> 
+    <xsl:call-template name="roff-if-end"/>
+  </xsl:if>
+  <!-- * if this verbatim environment has a following sibling node, -->
+  <!-- * output a line of space to separate the content -->
+  <xsl:if test="following-sibling::text()
+    |following-sibling::para
+    |following-sibling::simpara">
+    <xsl:text>.sp&#10;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="table|informaltable">
+  <xsl:apply-templates select="." mode="to.tbl">
+    <!--* we call the to.tbl mode with the "source" param so that we can -->
+    <!--* preserve the context information and pass it down to the -->
+    <!--* named templates that do the actual table processing -->
+    <xsl:with-param name="source" select="ancestor::refentry/refnamediv[1]/refname[1]"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="informalexample">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="figure|example">
+  <xsl:variable name="param.placement"
+                select="substring-after(normalize-space($formal.title.placement),
+                        concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:text>.PP&#10;</xsl:text>
+  <xsl:call-template name="formal.object">
+    <xsl:with-param name="placement" select="$placement"/>
+  </xsl:call-template>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="mediaobject">
+  <xsl:text>.sp</xsl:text>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:text>.RS</xsl:text> 
+  <xsl:if test="not($list-indent = '')">
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$list-indent"/>
+  </xsl:if>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:text>.RE&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="imageobject">
+  <xsl:text>[IMAGE]</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="textobject[parent::inlinemediaobject]">
+  <xsl:text>[</xsl:text>
+  <xsl:value-of select="."/>
+  <xsl:text>]</xsl:text>
+</xsl:template>
+
+<xsl:template match="textobject">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="formal.object">
+  <xsl:param name="placement" select="'before'"/>
+  <xsl:param name="class" select="local-name(.)"/>
+
+  <xsl:choose>
+    <xsl:when test="$placement = 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="formal.object.heading">
+  <xsl:param name="object" select="."/>
+  <xsl:param name="title">
+    <xsl:apply-templates select="$object" mode="object.title.markup.textonly"/>
+  </xsl:param>
+  <xsl:call-template name="bold">
+    <xsl:with-param name="node" select="exsl:node-set($title)"/>
+    <xsl:with-param name="context" select="."/>
+  </xsl:call-template>
+
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * suppress abstract -->
+<xsl:template match="abstract"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/manpages/charmap.groff.xsl b/applications/content/template/docbook/manpages/charmap.groff.xsl
new file mode 100644
index 0000000..c7e776d
--- /dev/null
+++ b/applications/content/template/docbook/manpages/charmap.groff.xsl
@@ -0,0 +1,6013 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<xsl:stylesheet version="2.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:u="http://docbook.sf.net/xmlns/unichar/1.0"
+                exclude-result-prefixes="u">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:character-map name="groff">
+
+  <!-- * *************************************************************** -->
+  <!-- *    Commentary -->
+  <!-- * *************************************************************** -->
+  <!-- * -->
+  <!-- * This file maps a selection of Unicode symbols and special -->
+  <!-- * characters (about 800) to corresponding groff escape sequences.-->
+  <!-- * -->
+  <!-- * Although the format of this file follows the "character map" -->
+  <!-- * format described in the XSLT 2.0 specification[1], the file can -->
+  <!-- * also be used with an appropriate XSLT 1.0 stylesheet and any -->
+  <!-- * XSLT 1.0 processor. -->
+  <!-- * -->
+  <!-- *   [1] http://www.w3.org/TR/xslt20/#character-maps -->
+  <!-- * -->
+  <!-- * In order to make the character map more readable, and to make -->
+  <!-- * it possible to create subsets of it at run time, it uses the -->
+  <!-- * following "extension attributes" (in the "unichar" namespace): -->
+  <!-- * -->
+  <!-- *   - u:name   = ISO character name (e.g., "OHM SIGN") -->
+  <!-- *   - u:entity = ISO entity name (e.g., "ohm") -->
+  <!-- *   - u:block  = Unicode block name (e.g., "Letterlike Symbols") -->
+  <!-- *   - u:class  = character class (e.g., "bullets") -->
+  <!-- * -->
+  <!-- * Use of such extension attributes is permitted by the XSLT 2.0 -->
+  <!-- * spec; see the "Extension Attributes" section[2]. -->
+  <!-- * -->
+  <!-- *   [2] http://www.w3.org/TR/xslt20/#extension-attributes -->
+  <!-- * -->
+  <!-- * *************************************************************** -->
+  <!-- *    Acknowledgements -->
+  <!-- * *************************************************************** -->
+  <!-- * The following references were consulted when selecting roff -->
+  <!-- * mappings and character information: -->
+  <!-- * -->
+  <!-- *   - groff_char(7) man page[3] -->
+  <!-- *   - groff info file[4]; in particular, the "Page Motions" node[5] -->
+  <!-- *   - tables in "Character Sets" chapter of "XML In a Nutshell"[6] -->
+  <!-- *   - Zvon Character Search[7] -->
+  <!-- * -->
+  <!-- *   [3] http://www.linux.se/showMan.php?TITLE=groff_char&SECTION=7 -->
+  <!-- *   [4] http://www.fifi.org/cgi-bin/info2www?(groff) -->
+  <!-- *   [5] http://www.fifi.org/cgi-bin/info2www?(groff)Page+Motions -->
+  <!-- *   [6] http://www.ibiblio.org/xml/books/xian2/ -->
+  <!-- *   [7] http://zvon.org/other/charSearch/PHP/search.php -->
+  <!-- * -->
+  <!-- * The initial version of this file (before the "string" mappings -->
+  <!-- * were added) was generated by taking the "unichars.el" file from -->
+  <!-- * Norm Walsh's "xmlunicode.el"[8] elisp distro, and running a -->
+  <!-- * script on it to convert it to XML. -->
+  <!-- * -->
+  <!-- *   [8] http://nwalsh.com/emacs/xmlchars/ -->
+  <!-- * -->
+  <!-- * The idea for implementing a character map in the DocBook Project -->
+  <!-- * manpages system was inspired by Steve Cheng's docbook2x[9]; -->
+  <!-- * in particular, its "utf8trans" utility and character-map system. -->
+  <!-- * -->
+  <!-- *   [9] http://docbook2x.sourceforge.net/ -->
+  <!-- * -->
+  <!-- * ################################################################# -->
+
+  <!-- * ***************************************************************** -->
+  <!-- * Begin: Latin-1/ISO-8859-1 -->
+  <!-- * x00a0 to x00ff -->
+  <!-- * ***************************************************************** -->
+
+  <!-- * A no-break space can be written two ways in roff; the difference, -->
+  <!-- * according to the "Page Motions" node in the groff info page, is: -->
+  <!-- * -->
+  <!-- *   "\ " = -->
+  <!-- *   An unbreakable and unpaddable (i.e. not expanded during filling) -->
+  <!-- *   space. -->
+  <!-- * -->
+  <!-- *   "\~" = -->
+  <!-- *   An unbreakable space that stretches like a normal -->
+  <!-- *   inter-word space when a line is adjusted."  -->
+  <!-- * -->
+  <!-- * Unfortunately, roff seems to do some weird things with long -->
+  <!-- * lines that only have words separated by "\~" spaces, so it's -->
+  <!-- * safer just to stick with the "\ " space -->
+  <xsl:output-character
+   character="&#x00a0;"
+   u:name="NO-BREAK SPACE"
+   u:entity="nbsp"
+   string="\ \&amp;"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00a1;"
+   u:name="INVERTED EXCLAMATION MARK"
+   u:entity="iexcl"
+   string="\(r!"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00a2;"
+   u:name="CENT SIGN"
+   u:entity="cent"
+   string="\(ct"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00a3;"
+   u:name="POUND SIGN"
+   u:entity="pound"
+   string="\(Po"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00a4;"
+   u:name="CURRENCY SIGN"
+   u:entity="curren"
+   string="\(Cs"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00a5;"
+   u:name="YEN SIGN"
+   u:entity="yen"
+   string="\(Ye"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00a6;"
+   u:name="BROKEN BAR"
+   u:entity="brvbar"
+   string="\(bb"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00a7;"
+   u:name="SECTION SIGN"
+   u:entity="sect"
+   string="\(sc"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00a8;"
+   u:name="DIAERESIS"
+   u:entity="Dot"
+   string="\(ad"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00a9;"
+   u:name="COPYRIGHT SIGN"
+   u:entity="copy"
+   string="\(co"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00aa;"
+   u:name="FEMININE ORDINAL INDICATOR"
+   u:entity="ordf"
+   string="\(Of"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00ab;"
+   u:name="LEFT-POINTING DOUBLE ANGLE QUOTATION MARK"
+   u:entity="laquo"
+   string="\(Fo"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00ac;"
+   u:name="NOT SIGN"
+   u:entity="not"
+   string="\(no"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <!-- * groff_char(7) man page sayxsl: "the soft hyphen control character -->
+  <!-- * (prints as itself).  groff never use this character for output -->
+  <!-- * (thus it is omitted in the table below); the input character 173 -->
+  <!-- * is onto \%." -->
+  <xsl:output-character
+   character="&#x00ad;"
+   u:name="SOFT HYPHEN"
+   u:entity="shy"
+   string="\%"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00ae;"
+   u:name="REGISTERED SIGN"
+   u:entity="reg"
+   string="\(rg"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00af;"
+   u:name="MACRON"
+   u:entity="macr"
+   string="\(a-"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00b0;"
+   u:name="DEGREE SIGN"
+   u:entity="deg"
+   string="\(de"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00b1;"
+   u:name="PLUS-MINUS SIGN"
+   u:entity="plusmn"
+   string="\(+-"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00b2;"
+   u:name="SUPERSCRIPT TWO"
+   u:entity="sup2"
+   string="\(S2"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00b3;"
+   u:name="SUPERSCRIPT THREE"
+   u:entity="sup3"
+   string="\(S3"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00b4;"
+   u:name="ACUTE ACCENT"
+   u:entity="acute"
+   string="\(aa"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00b5;"
+   u:name="MICRO SIGN"
+   u:entity="micro"
+   string="\(mc"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00b6;"
+   u:name="PILCROW SIGN"
+   u:entity="para"
+   string="\(ps"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <!-- * according to groff_char(7), I think the escape string \(pc -->
+  <!-- * "periodcentered" could also be used for middot; not sure which -->
+  <!-- * is better, but "md" mnemonic is a better fit :-) -->
+  <xsl:output-character
+   character="&#x00b7;"
+   u:name="MIDDLE DOT"
+   u:entity="middot"
+   string="\(md"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00b8;"
+   u:name="CEDILLA"
+   u:entity="cedil"
+   string="\(ac"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00b9;"
+   u:name="SUPERSCRIPT ONE"
+   u:entity="sup1"
+   string="\(S1"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00ba;"
+   u:name="MASCULINE ORDINAL INDICATOR"
+   u:entity="ordm"
+   string="\(Om"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00bb;"
+   u:name="RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK"
+   u:entity="raquo"
+   string="\(Fc"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00bc;"
+   u:name="VULGAR FRACTION ONE QUARTER"
+   u:entity="frac14"
+   string="\(14"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00bd;"
+   u:name="VULGAR FRACTION ONE HALF"
+   u:entity="frac12"
+   string="\(12"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00be;"
+   u:name="VULGAR FRACTION THREE QUARTERS"
+   u:entity="frac34"
+   string="\(34"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00bf;"
+   u:name="INVERTED QUESTION MARK"
+   u:entity="iquest"
+   string="\(r?"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00c0;"
+   u:name="LATIN CAPITAL LETTER A WITH GRAVE"
+   u:entity="Agrave"
+   string="\(`A"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00c1;"
+   u:name="LATIN CAPITAL LETTER A WITH ACUTE"
+   u:entity="Aacute"
+   string="\('A"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00c2;"
+   u:name="LATIN CAPITAL LETTER A WITH CIRCUMFLEX"
+   u:entity="Acirc"
+   string="\(^A"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00c3;"
+   u:name="LATIN CAPITAL LETTER A WITH TILDE"
+   u:entity="Atilde"
+   string="\(~A"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00c4;"
+   u:name="LATIN CAPITAL LETTER A WITH DIAERESIS"
+   u:entity="Auml"
+   string="\(:A"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00c5;"
+   u:name="LATIN CAPITAL LETTER A WITH RING ABOVE"
+   u:entity="Aring"
+   string="\(oA"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00c6;"
+   u:name="LATIN CAPITAL LETTER AE"
+   u:entity="AElig"
+   string="\(AE"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00c7;"
+   u:name="LATIN CAPITAL LETTER C WITH CEDILLA"
+   u:entity="Ccedil"
+   string="\(,C"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00c8;"
+   u:name="LATIN CAPITAL LETTER E WITH GRAVE"
+   u:entity="Egrave"
+   string="\(`E"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00c9;"
+   u:name="LATIN CAPITAL LETTER E WITH ACUTE"
+   u:entity="Eacute"
+   string="\('E"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00ca;"
+   u:name="LATIN CAPITAL LETTER E WITH CIRCUMFLEX"
+   u:entity="Ecirc"
+   string="\(^E"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00cb;"
+   u:name="LATIN CAPITAL LETTER E WITH DIAERESIS"
+   u:entity="Euml"
+   string="\(:E"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00cc;"
+   u:name="LATIN CAPITAL LETTER I WITH GRAVE"
+   u:entity="Igrave"
+   string="\(`I"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00cd;"
+   u:name="LATIN CAPITAL LETTER I WITH ACUTE"
+   u:entity="Iacute"
+   string="\('I"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00ce;"
+   u:name="LATIN CAPITAL LETTER I WITH CIRCUMFLEX"
+   u:entity="Icirc"
+   string="\(^I"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00cf;"
+   u:name="LATIN CAPITAL LETTER I WITH DIAERESIS"
+   u:entity="Iuml"
+   string="\(:I"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00d0;"
+   u:name="LATIN CAPITAL LETTER ETH"
+   u:entity="ETH"
+   string="\(-D"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00d1;"
+   u:name="LATIN CAPITAL LETTER N WITH TILDE"
+   u:entity="Ntilde"
+   string="\(~N"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00d2;"
+   u:name="LATIN CAPITAL LETTER O WITH GRAVE"
+   u:entity="Ograve"
+   string="\(`O"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00d3;"
+   u:name="LATIN CAPITAL LETTER O WITH ACUTE"
+   u:entity="Oacute"
+   string="\('O"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00d4;"
+   u:name="LATIN CAPITAL LETTER O WITH CIRCUMFLEX"
+   u:entity="Ocirc"
+   string="\(^O"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00d5;"
+   u:name="LATIN CAPITAL LETTER O WITH TILDE"
+   u:entity="Otilde"
+   string="\(~O"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00d6;"
+   u:name="LATIN CAPITAL LETTER O WITH DIAERESIS"
+   u:entity="Ouml"
+   string="\(:O"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00d7;"
+   u:name="MULTIPLICATION SIGN"
+   u:entity="times"
+   string="\(mu"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00d8;"
+   u:name="LATIN CAPITAL LETTER O WITH STROKE"
+   u:entity="Oslash"
+   string="\(/O"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00d9;"
+   u:name="LATIN CAPITAL LETTER U WITH GRAVE"
+   u:entity="Ugrave"
+   string="\(`U"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00da;"
+   u:name="LATIN CAPITAL LETTER U WITH ACUTE"
+   u:entity="Uacute"
+   string="\('U"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00db;"
+   u:name="LATIN CAPITAL LETTER U WITH CIRCUMFLEX"
+   u:entity="Ucirc"
+   string="\(^U"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00dc;"
+   u:name="LATIN CAPITAL LETTER U WITH DIAERESIS"
+   u:entity="Uuml"
+   string="\(:U"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00dd;"
+   u:name="LATIN CAPITAL LETTER Y WITH ACUTE"
+   u:entity="Yacute"
+   string="\('Y"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00de;"
+   u:name="LATIN CAPITAL LETTER THORN"
+   u:entity="THORN"
+   string="\(TP"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00df;"
+   u:name="LATIN SMALL LETTER SHARP S"
+   u:entity="szlig"
+   string="\(ss"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00e0;"
+   u:name="LATIN SMALL LETTER A WITH GRAVE"
+   u:entity="agrave"
+   string="\(`a"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00e1;"
+   u:name="LATIN SMALL LETTER A WITH ACUTE"
+   u:entity="aacute"
+   string="\('a"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00e2;"
+   u:name="LATIN SMALL LETTER A WITH CIRCUMFLEX"
+   u:entity="acirc"
+   string="\(^a"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00e3;"
+   u:name="LATIN SMALL LETTER A WITH TILDE"
+   u:entity="atilde"
+   string="\(~a"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00e4;"
+   u:name="LATIN SMALL LETTER A WITH DIAERESIS"
+   u:entity="auml"
+   string="\(:a"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00e5;"
+   u:name="LATIN SMALL LETTER A WITH RING ABOVE"
+   u:entity="aring"
+   string="\(oa"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00e6;"
+   u:name="LATIN SMALL LETTER AE"
+   u:entity="aelig"
+   string="\(ae"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00e7;"
+   u:name="LATIN SMALL LETTER C WITH CEDILLA"
+   u:entity="ccedil"
+   string="\(,c"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00e8;"
+   u:name="LATIN SMALL LETTER E WITH GRAVE"
+   u:entity="egrave"
+   string="\(`e"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00e9;"
+   u:name="LATIN SMALL LETTER E WITH ACUTE"
+   u:entity="eacute"
+   string="\('e"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00ea;"
+   u:name="LATIN SMALL LETTER E WITH CIRCUMFLEX"
+   u:entity="ecirc"
+   string="\(^e"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00eb;"
+   u:name="LATIN SMALL LETTER E WITH DIAERESIS"
+   u:entity="euml"
+   string="\(:e"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00ec;"
+   u:name="LATIN SMALL LETTER I WITH GRAVE"
+   u:entity="igrave"
+   string="\(`i"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00ed;"
+   u:name="LATIN SMALL LETTER I WITH ACUTE"
+   u:entity="iacute"
+   string="\('i"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00ee;"
+   u:name="LATIN SMALL LETTER I WITH CIRCUMFLEX"
+   u:entity="icirc"
+   string="\(^i"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00ef;"
+   u:name="LATIN SMALL LETTER I WITH DIAERESIS"
+   u:entity="iuml"
+   string="\(:i"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00f0;"
+   u:name="LATIN SMALL LETTER ETH"
+   u:entity="eth"
+   string="\(Sd"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00f1;"
+   u:name="LATIN SMALL LETTER N WITH TILDE"
+   u:entity="ntilde"
+   string="\(~n"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00f2;"
+   u:name="LATIN SMALL LETTER O WITH GRAVE"
+   u:entity="ograve"
+   string="\(`o"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00f3;"
+   u:name="LATIN SMALL LETTER O WITH ACUTE"
+   u:entity="oacute"
+   string="\('o"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00f4;"
+   u:name="LATIN SMALL LETTER O WITH CIRCUMFLEX"
+   u:entity="ocirc"
+   string="\(^o"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00f5;"
+   u:name="LATIN SMALL LETTER O WITH TILDE"
+   u:entity="otilde"
+   string="\(~o"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00f6;"
+   u:name="LATIN SMALL LETTER O WITH DIAERESIS"
+   u:entity="ouml"
+   string="\(:o"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00f7;"
+   u:name="DIVISION SIGN"
+   u:entity="divide"
+   string="\(di"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="symbols"
+   />
+  <xsl:output-character
+   character="&#x00f8;"
+   u:name="LATIN SMALL LETTER O WITH STROKE"
+   u:entity="oslash"
+   string="\(/o"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00f9;"
+   u:name="LATIN SMALL LETTER U WITH GRAVE"
+   u:entity="ugrave"
+   string="\(`u"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00fa;"
+   u:name="LATIN SMALL LETTER U WITH ACUTE"
+   u:entity="uacute"
+   string="\('u"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00fb;"
+   u:name="LATIN SMALL LETTER U WITH CIRCUMFLEX"
+   u:entity="ucirc"
+   string="\(^u"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00fc;"
+   u:name="LATIN SMALL LETTER U WITH DIAERESIS"
+   u:entity="uuml"
+   string="\(:u"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00fd;"
+   u:name="LATIN SMALL LETTER Y WITH ACUTE"
+   u:entity="yacute"
+   string="\('y"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00fe;"
+   u:name="LATIN SMALL LETTER THORN"
+   u:entity="thorn"
+   string="\(Tp"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <xsl:output-character
+   character="&#x00ff;"
+   u:name="LATIN SMALL LETTER Y WITH DIAERESIS"
+   u:entity="yuml"
+   string="\(:y"
+   u:block="C1 Controls And Latin-1 Supplement (Latin-1 Supplement)"
+   u:class="letters"
+   />
+  <!-- * **************************************************************** -->
+  <!-- *   End: Latin-1/ISO-8859-1 -->
+  <!-- * **************************************************************** -->
+  
+  <!-- * **************************************************************** -->
+  <!-- *   Begin: -->
+  <!-- * -->
+  <!-- *     - x0100 to x017f (Latin Extended-A) -->
+  <!-- *     - x0180 to x023f (Latin Extended-B) -->
+  <!-- *     - x0250 to x02ad (IPA Extensions) -->
+  <!-- *     - x02b0 to x02ee (Spacing Modifier Letters) -->
+  <!-- *     - x0300 to x036f (Combining Diacritical Marks) -->
+  <!-- * -->
+  <!-- *   Other than the following exceptions, characters in these -->
+  <!-- *   blocks don't have any roff equivalents -->
+  <!-- * **************************************************************** -->
+
+  <xsl:output-character
+   character="&#x0131;"
+   u:name="LATIN SMALL LETTER DOTLESS I"
+   u:entity="inodot"
+   string="\(.i"
+   u:block="Latin Extended-A"
+   />
+  <xsl:output-character
+   character="&#x0132;"
+   u:name="LATIN CAPITAL LIGATURE IJ"
+   u:entity="IJlig"
+   string="\(IJ"
+   u:block="Latin Extended-A"
+   />
+  <xsl:output-character
+   character="&#x0133;"
+   u:name="LATIN SMALL LIGATURE IJ"
+   u:entity="ijlig"
+   string="\(ij"
+   u:block="Latin Extended-A"
+   />
+  <xsl:output-character
+   character="&#x0141;"
+   u:name="LATIN CAPITAL LETTER L WITH STROKE"
+   u:entity="Lstrok"
+   string="\(/L"
+   u:block="Latin Extended-A"
+   />
+  <xsl:output-character
+   character="&#x0142;"
+   u:name="LATIN SMALL LETTER L WITH STROKE"
+   u:entity="lstrok"
+   string="\(/l"
+   u:block="Latin Extended-A"
+   />
+  <xsl:output-character
+   character="&#x0152;"
+   u:name="LATIN CAPITAL LIGATURE OE"
+   u:entity="OElig"
+   string="\(OE"
+   u:block="Latin Extended-A"
+   />
+  <xsl:output-character
+   character="&#x0153;"
+   u:name="LATIN SMALL LIGATURE OE"
+   u:entity="oelig"
+   string="\(oe"
+   u:block="Latin Extended-A"
+   />
+  <xsl:output-character
+   character="&#x160;"
+   u:name="LATIN CAPITAL LETTER S WITH CARON"
+   u:entity="Scaron"
+   string="\(vS"
+   u:block="Latin Extended-A"
+   />
+  <xsl:output-character
+   character="&#x161;"
+   u:name="LATIN SMALL LETTER S WITH CARON"
+   u:entity="scaron"
+   string="\(vs"
+   u:block="Latin Extended-A"
+   />
+  <xsl:output-character
+   character="&#x17D;"
+   u:name="LATIN CAPITAL LETTER Z WITH CARON"
+   u:entity="Zcaron"
+   string="\(vZ"
+   u:block="Latin Extended-A"
+   />
+  <xsl:output-character
+   character="&#x17E;"
+   u:name="LATIN SMALL LETTER Z WITH CARON"
+   u:entity="zcaron"
+   string="\(vz"
+   u:block="Latin Extended-A"
+   />
+  <xsl:output-character
+   character="&#x0192;"
+   u:name="LATIN SMALL LETTER F WITH HOOK"
+   u:entity="fnof"
+   string="\(Fn"
+   u:block="Latin Extended-B"
+   />
+  <xsl:output-character
+   character="&#x02c6;"
+   u:name="MODIFIER LETTER CIRCUMFLEX ACCENT"
+   u:entity="circ"
+   string="\(a^"
+   u:block="Spacing Modifier Letters"
+   />
+  <xsl:output-character
+   character="&#x02c7;"
+   u:name="CARON"
+   u:entity="caron"
+   string="\(ac"
+   u:block="Spacing Modifier Letters"
+   />
+  <xsl:output-character
+   character="&#x02c9;"
+   u:name="MODIFIER LETTER MACRON"
+   string="\(a-"
+   u:block="Spacing Modifier Letters"
+   />
+  <xsl:output-character
+   character="&#x02d8;"
+   u:name="BREVE"
+   u:entity="breve"
+   string="\(ab"
+   u:block="Spacing Modifier Letters"
+   />
+<!-- * there does not seem to by any roff equivalent for "dot above" -->
+<!-- * <xsl:output-character -->
+<!-- *  character="&#x02d9;" -->
+<!-- *  u:name="DOT ABOVE" -->
+<!-- *  u:entity="dot" -->
+<!-- *  /> -->
+  <xsl:output-character
+   character="&#x02da;"
+   u:name="RING ABOVE"
+   u:entity="ring"
+   string="\(ao"
+   u:block="Spacing Modifier Letters"
+   />
+  <xsl:output-character
+   character="&#x02db;"
+   u:name="OGONEK"
+   u:entity="ogon"
+   string="\(ho"
+   u:block="Spacing Modifier Letters"
+   />
+  <!-- groff_char(7) calls Unicode x02dd a "Hungarian umlaut"  -->
+  <xsl:output-character
+   character="&#x02dd;"
+   u:name="DOUBLE ACUTE ACCENT"
+   u:entity="dblac"
+   string='\(a"'
+   u:block="Spacing Modifier Letters"
+   />
+
+  <!-- * **************************************************************** -->
+  <!-- *   End: -->
+  <!-- *     - Latin Extended-A -->
+  <!-- *     - Latin Extended-B -->
+  <!-- *     - IPA Extensions -->
+  <!-- *     - Spacing Modifier Letters -->
+  <!-- *     - Combining Diacritical Marks -->
+  <!-- * **************************************************************** -->
+  
+  <!-- * **************************************************************** -->
+  <!-- *   Begin: Greek and Coptic -->
+  <!-- *     x0370 to x03ff -->
+  <!-- * **************************************************************** -->
+  
+  <xsl:output-character
+   character="&#x0391;"
+   u:name="GREEK CAPITAL LETTER ALPHA"
+   u:entity="Agr"
+   string="\(*A)"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x0392;"
+   u:name="GREEK CAPITAL LETTER BETA"
+   u:entity="Bgr"
+   string="\(*B"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x0393;"
+   u:name="GREEK CAPITAL LETTER GAMMA"
+   u:entity="Gamma"
+   string="\(*G"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x0394;"
+   u:name="GREEK CAPITAL LETTER DELTA"
+   u:entity="Delta"
+   string="\(*D"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x0395;"
+   u:name="GREEK CAPITAL LETTER EPSILON"
+   u:entity="Egr"
+   string="\(*E"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x0396;"
+   u:name="GREEK CAPITAL LETTER ZETA"
+   u:entity="Zgr"
+   string="\(*Z"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x0397;"
+   u:name="GREEK CAPITAL LETTER ETA"
+   u:entity="EEgr"
+   string="\(*Y"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x0398;"
+   u:name="GREEK CAPITAL LETTER THETA"
+   u:entity="THgr"
+   string="\(*H"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x0399;"
+   u:name="GREEK CAPITAL LETTER IOTA"
+   u:entity="Igr"
+   string="\(*I"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x039a;"
+   u:name="GREEK CAPITAL LETTER KAPPA"
+   u:entity="Kgr"
+   string="\(*K"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x039b;"
+   u:name="GREEK CAPITAL LETTER LAMDA"
+   u:entity="Lambda"
+   string="\(*L"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x039c;"
+   u:name="GREEK CAPITAL LETTER MU"
+   u:entity="Mgr"
+   string="\(*M"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x039d;"
+   u:name="GREEK CAPITAL LETTER NU"
+   u:entity="Ngr"
+   string="\(*N"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x039e;"
+   u:name="GREEK CAPITAL LETTER XI"
+   u:entity="Xgr"
+   string="\(*C"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x039f;"
+   u:name="GREEK CAPITAL LETTER OMICRON"
+   u:entity="Ogr"
+   string="\(*O"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03a0;"
+   u:name="GREEK CAPITAL LETTER PI"
+   u:entity="Pgr"
+   string="\(*P"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03a1;"
+   u:name="GREEK CAPITAL LETTER RHO"
+   u:entity="Rgr"
+   string="\(*R"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03a3;"
+   u:name="GREEK CAPITAL LETTER SIGMA"
+   u:entity="Sgr"
+   string="\(*S"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03a4;"
+   u:name="GREEK CAPITAL LETTER TAU"
+   u:entity="Tgr"
+   string="\(*T"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03a5;"
+   u:name="GREEK CAPITAL LETTER UPSILON"
+   u:entity="Ugr"
+   string="\(*U"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03a6;"
+   u:name="GREEK CAPITAL LETTER PHI"
+   u:entity="PHgr"
+   string="\(*F"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03a7;"
+   u:name="GREEK CAPITAL LETTER CHI"
+   u:entity="KHgr"
+   string="\(*X"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03a8;"
+   u:name="GREEK CAPITAL LETTER PSI"
+   u:entity="PSgr"
+   string="\(*Q"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03a9;"
+   u:name="GREEK CAPITAL LETTER OMEGA"
+   u:entity="OHgr"
+   string="\(*W"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03aa;"
+   u:name="GREEK CAPITAL LETTER IOTA WITH DIALYTIKA"
+   u:entity="Idigr"
+   string="\(*I"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03ab;"
+   u:name="GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA"
+   u:entity="Udigr"
+   string="\(*U"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03ac;"
+   u:name="GREEK SMALL LETTER ALPHA WITH TONOS"
+   u:entity="aacgr"
+   string="\(*a"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03ad;"
+   u:name="GREEK SMALL LETTER EPSILON WITH TONOS"
+   u:entity="eacgr"
+   string="\(*e"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03ae;"
+   u:name="GREEK SMALL LETTER ETA WITH TONOS"
+   u:entity="eeacgr"
+   string="\(*y"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03af;"
+   u:name="GREEK SMALL LETTER IOTA WITH TONOS"
+   u:entity="iacgr"
+   string="\(*i"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03b0;"
+   u:name="GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS"
+   u:entity="udiagr"
+   string="\(*u"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03b1;"
+   u:name="GREEK SMALL LETTER ALPHA"
+   u:entity="agr"
+   string="\(*a"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03b2;"
+   u:name="GREEK SMALL LETTER BETA"
+   u:entity="beta"
+   string="\(*b"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03b3;"
+   u:name="GREEK SMALL LETTER GAMMA"
+   u:entity="gamma"
+   string="\(*g"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03b4;"
+   u:name="GREEK SMALL LETTER DELTA"
+   u:entity="delta"
+   string="\(*d"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03b5;"
+   u:name="GREEK SMALL LETTER EPSILON"
+   u:entity="epsi"
+   string="\(*e"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03b6;"
+   u:name="GREEK SMALL LETTER ZETA"
+   u:entity="zeta"
+   string="\(*z"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03b7;"
+   u:name="GREEK SMALL LETTER ETA"
+   u:entity="eegr"
+   string="\(*y"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03b8;"
+   u:name="GREEK SMALL LETTER THETA"
+   u:entity="thetas"
+   string="\(*h"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03b9;"
+   u:name="GREEK SMALL LETTER IOTA"
+   u:entity="igr"
+   string="\(*i"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03ba;"
+   u:name="GREEK SMALL LETTER KAPPA"
+   u:entity="kappa"
+   string="\(*k"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03bb;"
+   u:name="GREEK SMALL LETTER LAMDA"
+   u:entity="lambda"
+   string="\(*l"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03bc;"
+   u:name="GREEK SMALL LETTER MU"
+   u:entity="mgr"
+   string="\(*m"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03bd;"
+   u:name="GREEK SMALL LETTER NU"
+   u:entity="ngr"
+   string="\(*n"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03be;"
+   u:name="GREEK SMALL LETTER XI"
+   u:entity="xgr"
+   string="\(*c"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03bf;"
+   u:name="GREEK SMALL LETTER OMICRON"
+   u:entity="ogr"
+   string="\(*o"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03c0;"
+   u:name="GREEK SMALL LETTER PI"
+   u:entity="pgr"
+   string="\(*p"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03c1;"
+   u:name="GREEK SMALL LETTER RHO"
+   u:entity="rgr"
+   string="\(*r"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03c2;"
+   u:name="GREEK SMALL LETTER FINAL SIGMA"
+   u:entity="sfgr"
+   string="\(ts"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03c3;"
+   u:name="GREEK SMALL LETTER SIGMA"
+   u:entity="sgr"
+   string="\(*s"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03c4;"
+   u:name="GREEK SMALL LETTER TAU"
+   u:entity="tau"
+   string="\(*t"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03c5;"
+   u:name="GREEK SMALL LETTER UPSILON"
+   u:entity="ugr"
+   string="\(*u"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03c6;"
+   u:name="GREEK SMALL LETTER PHI"
+   u:entity="phgr"
+   string="\(*f"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03c7;"
+   u:name="GREEK SMALL LETTER CHI"
+   u:entity="chi"
+   string="\(*x"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03c8;"
+   u:name="GREEK SMALL LETTER PSI"
+   u:entity="psgr"
+   string="\(*q"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03c9;"
+   u:name="GREEK SMALL LETTER OMEGA"
+   u:entity="ohgr"
+   string="\(*w"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03ca;"
+   u:name="GREEK SMALL LETTER IOTA WITH DIALYTIKA"
+   u:entity="idigr"
+   string="\(*i"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03cb;"
+   u:name="GREEK SMALL LETTER UPSILON WITH DIALYTIKA"
+   u:entity="udigr"
+   string="\(*u"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03cc;"
+   u:name="GREEK SMALL LETTER OMICRON WITH TONOS"
+   u:entity="oacgr"
+   string="\(*o"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03cd;"
+   u:name="GREEK SMALL LETTER UPSILON WITH TONOS"
+   u:entity="uacgr"
+   string="\(*u"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03ce;"
+   u:name="GREEK SMALL LETTER OMEGA WITH TONOS"
+   u:entity="ohacgr"
+   string="\(*w"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03d0;"
+   u:name="GREEK BETA SYMBOL"
+   string="\(*B"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03d1;"
+   u:name="GREEK THETA SYMBOL"
+   u:entity="thetav"
+   string="\(+h"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03d2;"
+   u:name="GREEK UPSILON WITH HOOK SYMBOL"
+   u:entity="Upsi"
+   string="\(*U"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03d3;"
+   u:name="GREEK UPSILON WITH ACUTE AND HOOK SYMBOL"
+   string="\(*U"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03d4;"
+   u:name="GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL"
+   string="\(*U"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03d5;"
+   u:name="GREEK PHI SYMBOL"
+   u:entity="phis"
+   string="\(+f"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03d6;"
+   u:name="GREEK PI SYMBOL"
+   u:entity="piv"
+   string="\(+p"
+   u:block="Greek and Coptic"
+   />
+  <!-- no mappings for remaining chars x03d7 to x03ef -->
+  <xsl:output-character
+   character="&#x03f0;"
+   u:name="GREEK KAPPA SYMBOL"
+   u:entity="kappav"
+   string="(*k"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03f1;"
+   u:name="GREEK RHO SYMBOL"
+   u:entity="rhov"
+   string="\(*r"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03f2;"
+   u:name="GREEK LUNATE SIGMA SYMBOL"
+   string="\(*s"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03f4;"
+   u:name="GREEK CAPITAL THETA SYMBOL"
+   string="\(*H"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03f5;"
+   u:name="GREEK LUNATE EPSILON SYMBOL"
+   string="\(*e"
+   u:block="Greek and Coptic"
+   />
+  <xsl:output-character
+   character="&#x03f6;"
+   u:name="GREEK REVERSED LUNATE EPSILON SYMBOL"
+   u:entity="bepsi"
+   string="\(*e"
+   u:block="Greek and Coptic"
+   />
+
+  <!-- * ***************************************************************** -->
+  <!-- *   End: Greek and Coptic -->
+  <!-- * ***************************************************************** -->
+  
+  <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+  <!-- *   Cyrillic -->
+  <!-- *   x0400 to x04ff -->
+  <!-- *   - do nothing - -->
+  <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+  
+  <!-- * ***************************************************************** -->
+  <!-- *   Begin: General Punctuation -->
+  <!-- *   x2000 to x206f -->
+  <!-- * ***************************************************************** -->
+  
+  <!-- * first, spaces of various widths -->
+
+  <!-- * Note: There does not seem to be either a real em space or en space -->
+  <!-- * in roff; to approximate them, this character map assumes that in -->
+  <!-- * most fonts, an en space is about the same as the width of a digit -->
+  <!-- * (in roff, "\0"), so an em space (which by definition is -->
+  <!-- * equal to the width of two en spaces) is about the same as the width -->
+  <!-- * of two digits (thus, in roff, "\0\0") -->
+
+  <xsl:output-character
+   character="&#x2000;"
+   u:name="EN QUAD"
+   string="\0"
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+  <xsl:output-character
+   character="&#x2001;"
+   u:name="EM QUAD"
+   string="\0\0"
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+  <xsl:output-character
+   character="&#x2002;"
+   u:name="EN SPACE"
+   u:entity="ensp"
+   string="\0"
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+  <xsl:output-character
+   character="&#x2003;"
+   u:name="EM SPACE"
+   u:entity="emsp"
+   string="\0\0"
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+  <!-- * roughly same width as a normal space -->
+  <xsl:output-character
+   character="&#x2004;"
+   u:name="THREE-PER-EM SPACE"
+   u:entity="emsp13"
+   string=" "
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+  <!-- * roughly same width as a normal space -->
+  <xsl:output-character
+   character="&#x2005;"
+   u:name="FOUR-PER-EM SPACE"
+   u:entity="emsp14"
+   string=" "
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+  <!-- * roughly same width as a normal space -->
+  <xsl:output-character
+   character="&#x2006;"
+   u:name="SIX-PER-EM SPACE"
+   string=" "
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+  <!-- * same as roff "digit" space -->
+  <xsl:output-character
+   character="&#x2007;"
+   u:name="FIGURE SPACE"
+   u:entity="numsp"
+   string="\0"
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+  <!-- * punctuation space in most fonts is actually closer to a normal -->
+  <!-- * space than it is to a thin space -->
+  <xsl:output-character
+   character="&#x2008;"
+   u:name="PUNCTUATION SPACE"
+   u:entity="puncsp"
+   string=" "
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+  <!-- * Note: Not sure how best to deal with thin space, because the roff -->
+  <!-- * thin space, "\^", prints as a zero-width space in TTY -->
+  <!-- * output. However, it seems that, unlike a hair space, a thin space, -->
+  <!-- * at 1/12 of an em, is still recognizable to most people as a space, -->
+  <!-- * so treating it as zero-width seems wrong. So, for the sake of making -->
+  <!-- * TTY output look OK, just substitute with a normal space; but real -->
+  <!-- * roff escape is "\(\^" -->
+  <xsl:output-character
+   character="&#x2009;"
+   u:name="THIN SPACE"
+   u:entity="thinsp"
+   string=" "
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+  <!-- * I don't think there's a standard definition of what a hair -->
+  <!-- * space is; some guides just say it's "less than 1/5 of an em" or -->
+  <!-- * that it's "narrower than a thin space"; seems like in practice, -->
+  <!-- * it's *a lot* narrower than a thin space, to the point where -->
+  <!-- * it's close to being a non-space, so here it's substituted with -->
+  <!-- * roff equivalent of a zero-width no-break space -->
+  <xsl:output-character
+   character="&#x200a;"
+   u:name="HAIR SPACE"
+   u:entity="hairsp"
+   string="\&amp;"
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+  <!-- * map to roff "zero-width break point"  -->
+  <xsl:output-character
+   character="&#x200b;"
+   u:name="ZERO WIDTH SPACE"
+   string="\:"
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+
+  <!-- *   x200c and x200d have special purposes in some Indic languages (I -->
+  <!-- *   think); for the "correct" zero-width space, according to Unicode docs, -->
+  <!-- *   use x2060, not x200c or x200d -->
+  <!-- *     <xsl:output-character -->
+  <!-- *      character="&#x200c;" -->
+  <!-- *      u:name="ZERO WIDTH NON-JOINER" -->
+  <!-- *      string="\:" -->
+  <!-- *      /> -->
+  <!-- *     <xsl:output-character -->
+  <!-- *      character="&#x200d;" -->
+  <!-- *      u:name="ZERO WIDTH JOINER" -->
+  <!-- *      string="\&amp;" -->
+  <!-- *      /> -->
+  <!-- * non-visible  -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x200e;" -->
+  <!-- *      u:name="LEFT-TO-RIGHT MARK" -->
+  <!-- *      /> -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x200f;" -->
+  <!-- *      u:name="RIGHT-TO-LEFT MARK" -->
+  <!-- *      /> -->
+
+  <!-- * .................................................... -->
+  <!-- * next, hyphens and various dashes, bars, underscores  -->
+  <xsl:output-character
+   character="&#x2010;"
+   u:name="HYPHEN"
+   u:entity="hyphen"
+   string="\(hy"
+   u:block="General Punctuation"
+   u:class="dashes"
+   />
+  <!-- * although the groff docs do not make it clear, testing -->
+  <!-- * indicates that the only reliable way to make a non-breaking -->
+  <!-- * hyphen is to put just a backslash in front of it. -->
+  <!-- * -->
+  <!-- * based on testing, it also appears that no character is needed -->
+  <!-- * after the hyphen in order to make it non-breaking -->
+  <xsl:output-character
+   character="&#x2011;"
+   u:name="NON-BREAKING HYPHEN"
+   string="\-"
+   u:block="General Punctuation"
+   u:class="dashes"
+   />
+  <!-- * roughly same width as en dash -->
+  <xsl:output-character
+   character="&#x2012;"
+   u:name="FIGURE DASH"
+   string="\(en"
+   u:block="General Punctuation"
+   u:class="dashes"
+   />
+  <xsl:output-character
+   character="&#x2013;"
+   u:name="EN DASH"
+   u:entity="ndash"
+   string="\(en"
+   u:block="General Punctuation"
+   u:class="dashes"
+   />
+  <xsl:output-character
+   character="&#x2014;"
+   u:name="EM DASH"
+   u:entity="mdash"
+   string="\(em"
+   u:block="General Punctuation"
+   u:class="dashes"
+   />
+  <!-- * seems roughly same width as em dash -->
+  <xsl:output-character
+   character="&#x2015;"
+   u:name="HORIZONTAL BAR"
+   u:entity="horbar"
+   string="\(em"
+   u:block="General Punctuation"
+   u:class="dashes"
+   />
+  <xsl:output-character
+   character="&#x2016;"
+   u:name="DOUBLE VERTICAL LINE"
+   u:entity="Verbar"
+   string="\(bv\(bv"
+   u:block="General Punctuation"
+   />
+  <!-- * no double-underscore in roff; so just make it a single -->
+  <!-- * underscore -->
+  <xsl:output-character
+   character="&#x2017;"
+   u:name="DOUBLE LOW LINE"
+   string="_"
+   u:block="General Punctuation"
+   />
+
+  <!-- * .................................................... -->
+  <!-- * various quotation marks -->
+  <xsl:output-character
+   character="&#x2018;"
+   u:name="LEFT SINGLE QUOTATION MARK"
+   u:entity="lsquo"
+   string="\(oq"
+   u:block="General Punctuation"
+   u:class="quotes"
+   />
+  <xsl:output-character
+   character="&#x2019;"
+   u:name="RIGHT SINGLE QUOTATION MARK"
+   u:entity="rsquo"
+   string="\(cq"
+   u:block="General Punctuation"
+   u:class="quotes"
+   />
+  <xsl:output-character
+   character="&#x201a;"
+   u:name="SINGLE LOW-9 QUOTATION MARK"
+   u:entity="lsquor"
+   string="\(bq"
+   u:block="General Punctuation"
+   u:class="quotes"
+   />
+  <!-- * no roff equiv; treat same as lsquo -->
+  <xsl:output-character
+   character="&#x201b;"
+   u:name="SINGLE HIGH-REVERSED-9 QUOTATION MARK"
+   string="\(oq"
+   u:block="General Punctuation"
+   u:class="quotes"
+   />
+  <xsl:output-character
+   character="&#x201c;"
+   u:name="LEFT DOUBLE QUOTATION MARK"
+   u:entity="ldquo"
+   string="\(lq"
+   u:block="General Punctuation"
+   u:class="quotes"
+   />
+  <xsl:output-character
+   character="&#x201d;"
+   u:name="RIGHT DOUBLE QUOTATION MARK"
+   u:entity="rdquo"
+   string="\(rq"
+   u:block="General Punctuation"
+   u:class="quotes"
+   />
+  <xsl:output-character
+   character="&#x201e;"
+   u:name="DOUBLE LOW-9 QUOTATION MARK"
+   u:entity="ldquor"
+   string="\(Bq"
+   u:block="General Punctuation"
+   u:class="quotes"
+   />
+  <!-- * no roff equiv; treat same as rdquo -->
+  <xsl:output-character
+   character="&#x201f;"
+   u:name="DOUBLE HIGH-REVERSED-9 QUOTATION MARK"
+   string="\(rq"
+   u:block="General Punctuation"
+   u:class="quotes"
+   />
+
+  <!-- * .................................................... -->
+  <!-- * various symbols -->
+  <xsl:output-character
+   character="&#x2020;"
+   u:name="DAGGER"
+   u:entity="dagger"
+   string="\(dg"
+   u:block="General Punctuation_daggers"
+   />
+  <xsl:output-character
+   character="&#x2021;"
+   u:name="DOUBLE DAGGER"
+   u:entity="Dagger"
+   string="\(dd"
+   u:block="General Punctuation_daggers"
+   />
+  <xsl:output-character
+   character="&#x2022;"
+   u:name="BULLET"
+   u:entity="bull"
+   string="\(bu"
+   u:block="General Punctuation"
+   u:class="bullets"
+   />
+  <!-- * no roff equiv -->
+  <xsl:output-character
+   character="&#x2023;"
+   u:name="TRIANGULAR BULLET"
+   string=">\&amp;"
+   u:block="General Punctuation"
+   u:class="bullets"
+   />
+  <!-- * no roff equiv -->
+  <xsl:output-character
+   character="&#x2024;"
+   u:name="ONE DOT LEADER"
+   string="\&amp;."
+   u:block="General Punctuation_leaders"
+   />
+  <!-- * no roff equiv -->
+  <xsl:output-character
+   character="&#x2025;"
+   u:name="TWO DOT LEADER"
+   u:entity="nldr"
+   string="\&amp;.."
+   u:block="General Punctuation_leaders"
+   />
+  <!-- * no roff equiv -->
+  <xsl:output-character
+   character="&#x2026;"
+   u:name="HORIZONTAL ELLIPSIS"
+   u:entity="hellip"
+   string="\&amp;..."
+   u:block="General Punctuation"
+   />
+  <!-- what is "hyphenation point" used for? looks like middot to me... -->
+  <xsl:output-character
+   character="&#x2027;"
+   u:name="HYPHENATION POINT"
+   string="\(md"
+   u:block="General Punctuation"
+   />
+  <!-- * Begin x2028 to x202e - no idea what to do with these -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2028;" -->
+  <!-- *      u:name="LINE SEPARATOR" -->
+  <!-- *      /> -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2029;" -->
+  <!-- *      u:name="PARAGRAPH SEPARATOR" -->
+  <!-- *      /> -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x202a;" -->
+  <!-- *      u:name="LEFT-TO-RIGHT EMBEDDING" -->
+  <!-- *      /> -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x202b;" -->
+  <!-- *      u:name="RIGHT-TO-LEFT EMBEDDING" -->
+  <!-- *      /> -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x202c;" -->
+  <!-- *      u:name="POP DIRECTIONAL FORMATTING" -->
+  <!-- *      /> -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x202d;" -->
+  <!-- *      u:name="LEFT-TO-RIGHT OVERRIDE" -->
+  <!-- *      /> -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x202e;" -->
+  <!-- *      u:name="RIGHT-TO-LEFT OVERRIDE" -->
+  <!-- *      /> -->
+  <!-- *      End x2028 to x202e - no idea what to do with these -->
+
+  <!-- * seems like "narrow" nbsp is basically the same as a no-break -->
+  <!-- * space -->
+  <xsl:output-character
+   character="&#x202f;"
+   u:name="NARROW NO-BREAK SPACE"
+   string="\ "
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+  <xsl:output-character
+   character="&#x2030;"
+   u:name="PER MILLE SIGN"
+   u:entity="permil"
+   string="\(%0"
+   u:block="General Punctuation"
+   />
+  <!-- * no roff equiv; no idea what to do with it -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2031;" -->
+  <!-- *      u:name="PER TEN THOUSAND SIGN" -->
+  <!-- *      /> -->
+  <xsl:output-character
+   character="&#x2032;"
+   u:name="PRIME"
+   u:entity="prime"
+   string="\(fm"
+   u:block="General Punctuation"
+   u:class="primes"
+   />
+  <xsl:output-character
+   character="&#x2033;"
+   u:name="DOUBLE PRIME"
+   u:entity="Prime"
+   string="\(sd"
+   u:block="General Punctuation"
+   u:class="primes"
+   />
+  <xsl:output-character
+   character="&#x2034;"
+   u:name="TRIPLE PRIME"
+   u:entity="tprime"
+   string="\(sd\(fm"
+   u:block="General Punctuation"
+   u:class="primes"
+   />
+  <!-- * no idea for these  -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2035;" -->
+  <!-- *      u:name="REVERSED PRIME" -->
+  <!-- *      u:entity="bprime" -->
+  <!-- *      /> -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2036;" -->
+  <!-- *      u:name="REVERSED DOUBLE PRIME" -->
+  <!-- *      /> -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2037;" -->
+  <!-- *      u:name="REVERSED TRIPLE PRIME" -->
+  <!-- *      /> -->
+
+  <!-- * there is no low caret in roff -->
+  <xsl:output-character
+   character="&#x2038;"
+   u:name="CARET"
+   string="^"
+   u:block="General Punctuation"
+   />
+  <xsl:output-character
+   character="&#x2039;"
+   u:name="SINGLE LEFT-POINTING ANGLE QUOTATION MARK"
+   string="\(fo"
+   u:block="General Punctuation"
+   u:class="quotes"
+   />
+  <xsl:output-character
+   character="&#x203a;"
+   u:name="SINGLE RIGHT-POINTING ANGLE QUOTATION MARK"
+   string="\(fc"
+   u:block="General Punctuation"
+   u:class="quotes"
+   />
+  <!-- * not in roff -->
+  <xsl:output-character
+   character="&#x203b;"
+   u:name="REFERENCE MARK"
+   string="*"
+   u:block="General Punctuation"
+   />
+  <xsl:output-character
+   character="&#x203c;"
+   u:name="DOUBLE EXCLAMATION MARK"
+   string="!!"
+   u:block="General Punctuation"
+   />
+  <xsl:output-character
+   character="&#x203d;"
+   u:name="INTERROBANG"
+   string="?!"
+   u:block="General Punctuation"
+   />
+  <xsl:output-character
+   character="&#x203e;"
+   u:name="OVERLINE"
+   string="\(rn"
+   u:block="General Punctuation"
+   />
+  <xsl:output-character
+   character="&#x203f;"
+   u:name="UNDERTIE"
+   string="\(ul"
+   u:block="General Punctuation"
+   />
+  <!-- * not in roff -->
+  <xsl:output-character
+   character="&#x2040;"
+   u:name="CHARACTER TIE"
+   string="\(rn"
+   u:block="General Punctuation"
+   />
+  <!-- * not in roff -->
+  <xsl:output-character
+   character="&#x2041;"
+   u:name="CARET INSERTION POINT"
+   u:entity="caret"
+   string="^"
+   u:block="General Punctuation"
+   />
+  <!-- * not in roff -->
+  <xsl:output-character
+   character="&#x2042;"
+   u:name="ASTERISM"
+   string="*"
+   u:block="General Punctuation"
+   />
+  <!-- * not in roff; just make bold hyphen -->
+  <xsl:output-character
+   character="&#x2043;"
+   u:name="HYPHEN BULLET"
+   u:entity="hybull"
+   string="\fB-\fR"
+   u:block="General Punctuation"
+   u:class="bullets"
+   />
+  <xsl:output-character
+   character="&#x2044;"
+   u:name="FRACTION SLASH"
+   string="\(sl"
+   u:block="General Punctuation"
+   />
+  <!-- * not in roff -->
+  <xsl:output-character
+   character="&#x2045;"
+   u:name="LEFT SQUARE BRACKET WITH QUILL"
+   string="["
+   u:block="General Punctuation"
+   />
+  <!-- * not in roff -->
+  <xsl:output-character
+   character="&#x2046;"
+   u:name="RIGHT SQUARE BRACKET WITH QUILL"
+   string="]"
+   u:block="General Punctuation"
+   />
+  <xsl:output-character
+   character="&#x2047;"
+   u:name="DOUBLE QUESTION MARK"
+   string="??"
+   u:block="General Punctuation"
+   />
+  <xsl:output-character
+   character="&#x2048;"
+   u:name="QUESTION EXCLAMATION MARK"
+   string="?!"
+   u:block="General Punctuation"
+   />
+  <xsl:output-character
+   character="&#x2049;"
+   u:name="EXCLAMATION QUESTION MARK"
+   string="!?"
+   u:block="General Punctuation"
+   />
+  <!-- * not in roff -->
+  <xsl:output-character
+   character="&#x204a;"
+   u:name="TIRONIAN SIGN ET"
+   string="7"
+   u:block="General Punctuation"
+   />
+  <!-- * not in roff; just replace with un-reversed pilcrow -->
+  <xsl:output-character
+   character="&#x204b;"
+   u:name="REVERSED PILCROW SIGN"
+   string="\(ps"
+   u:block="General Punctuation"
+   />
+  <!-- * not in roff; just make regular bullet -->
+  <xsl:output-character
+   character="&#x204c;"
+   u:name="BLACK LEFTWARDS BULLET"
+   string="\(bu"
+   u:block="General Punctuation"
+   />
+  <!-- * not in roff; just make regular bullet -->
+  <xsl:output-character
+   character="&#x204d;"
+   u:name="BLACK RIGHTWARDS BULLET"
+   string="\(bu"
+   u:block="General Punctuation"
+   />
+  <xsl:output-character
+   character="&#x204e;"
+   u:name="LOW ASTERISK"
+   string="*"
+   u:block="General Punctuation"
+   />
+
+  <!-- * ............................................................... -->
+  <!-- *   Remaining General Punctuation -->
+  <!-- *   from x2050 to x206f -->
+  <!-- *   only map a couple of these -->
+  <!-- * ............................................................... -->
+
+  <!-- * basically same as a normal space -->
+  <xsl:output-character
+   character="&#x205f;"
+   u:name="MEDIUM MATHEMATICAL SPACE"
+   string=" "
+   u:block="General Punctuation"
+   u:class="spaces"
+   />
+  <!-- * Regarding x2060 vs. xFEFF, the document "Unicode Standard Annex #14, -->
+  <!-- * Line Breaking Properties"[1] says: -->
+  <!-- * -->
+  <!-- *   The word joiner character [x2060 a.k.a "WJ"] is the preferred -->
+  <!-- *   choice for an invisible character to keep other characters -->
+  <!-- *   together that would otherwise be split across the line at a direct -->
+  <!-- *   break. The character FEFF has the same effect, but because it is -->
+  <!-- *   also used in an unrelated way as a byte order mark, the use of the -->
+  <!-- *   WJ as the preferred interword glue simplifies the handling of FEFF. -->
+  <!-- * -->
+  <!-- * [1] http://www.unicode.org/reports/tr14/ -->
+  <!-- * -->
+  <!-- * The groff docs seem ambiguous about whether \& is a joiner and -->
+  <!-- * prevents breaks, but, based on testing, seems like it does -->
+  <xsl:output-character
+   character="&#x2060;"
+   u:name="WORD JOINER"
+   string="\&amp;"
+   u:block="General Punctuation"
+   />
+
+  <!-- * ***************************************************************** -->
+  <!-- *   End: General Punctuation -->
+  <!-- * ***************************************************************** -->
+  
+  <!-- * ***************************************************************** -->
+  <!-- *   Begin: Superscripts and Subscripts -->
+  <!-- *    x2070 to x209f -->
+  <!-- *    For superscripts, just do a^n thing -->
+  <!-- *    For subscripts, just do a_n -->
+  <!-- * ***************************************************************** -->
+
+  <xsl:output-character
+   character="&#x2070;"
+   u:name="SUPERSCRIPT ZERO"
+   string="^0"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2071;"
+   u:name="SUPERSCRIPT LATIN SMALL LETTER I"
+   string="^i"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2074;"
+   u:name="SUPERSCRIPT FOUR"
+   string="^4"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2075;"
+   u:name="SUPERSCRIPT FIVE"
+   string="^5"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2076;"
+   u:name="SUPERSCRIPT SIX"
+   string="^6"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2077;"
+   u:name="SUPERSCRIPT SEVEN"
+   string="^7"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2078;"
+   u:name="SUPERSCRIPT EIGHT"
+   string="^8"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2079;"
+   u:name="SUPERSCRIPT NINE"
+   string="^9"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x207a;"
+   u:name="SUPERSCRIPT PLUS SIGN"
+   string="^+"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x207b;"
+   u:name="SUPERSCRIPT MINUS"
+   string="^-"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x207c;"
+   u:name="SUPERSCRIPT EQUALS SIGN"
+   string="^="
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x207d;"
+   u:name="SUPERSCRIPT LEFT PARENTHESIS"
+   string="^("
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x207e;"
+   u:name="SUPERSCRIPT RIGHT PARENTHESIS"
+   string="^)"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x207f;"
+   u:name="SUPERSCRIPT LATIN SMALL LETTER N"
+   string="^n"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2080;"
+   u:name="SUBSCRIPT ZERO"
+   string="_0"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2081;"
+   u:name="SUBSCRIPT ONE"
+   string="_1"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2082;"
+   u:name="SUBSCRIPT TWO"
+   string="_2"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2083;"
+   u:name="SUBSCRIPT THREE"
+   string="_3"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2084;"
+   u:name="SUBSCRIPT FOUR"
+   string="_4"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2085;"
+   u:name="SUBSCRIPT FIVE"
+   string="_5"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2086;"
+   u:name="SUBSCRIPT SIX"
+   string="_6"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2087;"
+   u:name="SUBSCRIPT SEVEN"
+   string="_7"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2088;"
+   u:name="SUBSCRIPT EIGHT"
+   string="_8"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x2089;"
+   u:name="SUBSCRIPT NINE"
+   string="_9"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x208a;"
+   u:name="SUBSCRIPT PLUS SIGN"
+   string="_+"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x208b;"
+   u:name="SUBSCRIPT MINUS"
+   string="_-"
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x208c;"
+   u:name="SUBSCRIPT EQUALS SIGN"
+   string="_="
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x208d;"
+   u:name="SUBSCRIPT LEFT PARENTHESIS"
+   string="_("
+   u:block="Superscripts and Subscripts"
+   />
+  <xsl:output-character
+   character="&#x208e;"
+   u:name="SUBSCRIPT RIGHT PARENTHESIS"
+   string="_)"
+   u:block="Superscripts and Subscripts"
+   />
+  <!-- * ***************************************************************** -->
+  <!-- *   End: Superscripts and Subscripts -->
+  <!-- *     x2070 to x209f -->
+  <!-- * ***************************************************************** -->
+
+  <!-- * ***************************************************************** -->
+  <!-- *   Begin: Currency Symbols -->
+  <!-- *     x20a0 to x20b1 -->
+  <!-- *     No mappings for any of these; just spell out -->
+  <!-- * ***************************************************************** -->
+
+  <xsl:output-character
+   character="&#x20a0;"
+   u:name="EURO-CURRENCY SIGN"
+   string="EUR"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20a1;"
+   u:name="COLON SIGN"
+   string="COLON"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20a2;"
+   u:name="CRUZEIRO SIGN"
+   string="CRUZEIRO"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20a3;"
+   u:name="FRENCH FRANC SIGN"
+   string="FRANC"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20a4;"
+   u:name="LIRA SIGN"
+   string="LIRA"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20a5;"
+   u:name="MILL SIGN"
+   string="MILL"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20a6;"
+   u:name="NAIRA SIGN"
+   string="NAIRA"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20a7;"
+   u:name="PESETA SIGN"
+   string="PESETA"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20a8;"
+   u:name="RUPEE SIGN"
+   string="RUPEE"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20a9;"
+   u:name="WON SIGN"
+   string="WON"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20aa;"
+   u:name="NEW SHEQEL SIGN"
+   string="SHEQEL"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20ab;"
+   u:name="DONG SIGN"
+   string="DONG"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20ac;"
+   u:name="EURO SIGN"
+   string="EUR"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20ad;"
+   u:name="KIP SIGN"
+   string="KIP"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20ae;"
+   u:name="TUGRIK SIGN"
+   string="TUGRIK"
+   u:block="Currency Symbols"
+   />
+  <xsl:output-character
+   character="&#x20af;"
+   u:name="DRACHMA SIGN"
+   string="DRACHMA"
+   u:block="Currency Symbols"
+   />
+  <!-- <xsl:output-character -->
+  <!--  character="&#x20b0;" -->
+  <!--  u:name="GERMAN PENNY SIGN" -->
+  <!--  string="?" -->
+  <!--  u:block="Currency Symbols" -->
+  <!--  /> -->
+  <xsl:output-character
+   character="&#x20b1;"
+   u:name="PESO SIGN"
+   string="PESO"
+   u:block="Currency Symbols"
+   />
+
+  <!-- * ***************************************************************** -->
+  <!-- *   End: Currency Symbols -->
+  <!-- *   x20a0 to x20b1 -->
+  <!-- * ***************************************************************** -->
+
+  <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+  <!-- *   Combining Diacritical Marks for Symbols -->
+  <!-- *     x20d0 to x20ff -->
+  <!-- *     - do nothing - -->
+  <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+  <!-- * ***************************************************************** -->
+  <!-- *   Begin: Letterlike Symbols -->
+  <!-- *     x2100 to x214b -->
+  <!-- * -->
+  <!-- *     No mappings for any of these, and nothing appropriate for -->
+  <!-- *     most of them; so, just spell out the ones that we can -->
+  <!-- * ***************************************************************** -->
+
+  <xsl:output-character
+   character="&#x2103;"
+   u:name="DEGREE CELSIUS"
+   string="\(deC"
+   u:block="Letterlike Symbols"
+   />
+  <xsl:output-character
+   character="&#x2105;"
+   u:name="CARE OF"
+   u:entity="incare"
+   string="c/o"
+   u:block="Letterlike Symbols"
+   />
+  <xsl:output-character
+   character="&#x2109;"
+   u:name="DEGREE FAHRENHEIT"
+   string="\(deF"
+   u:block="Letterlike Symbols"
+   />
+  <!-- roff Ifraktur -->
+  <xsl:output-character
+   character="&#x2111;"
+   u:name="BLACK-LETTER CAPITAL I"
+   string="\(Im"
+   u:block="Letterlike Symbols"
+   />
+  <xsl:output-character
+   character="&#x2113;"
+   u:name="SCRIPT SMALL L"
+   u:entity="ell"
+   string="l"
+   u:block="Letterlike Symbols"
+   />
+  <xsl:output-character
+   character="&#x2116;"
+   u:name="NUMERO SIGN"
+   u:entity="numero"
+   string="No."
+   u:block="Letterlike Symbols"
+   />
+  <xsl:output-character
+   character="&#x2118;"
+   u:name="SCRIPT CAPITAL P"
+   u:entity="weierp"
+   string="\(wp"
+   u:block="Letterlike Symbols"
+   />
+  <xsl:output-character
+   character="&#x211c;"
+   u:name="BLACK-LETTER CAPITAL R"
+   u:entity="real"
+   string="\(Re"
+   u:block="Letterlike Symbols"
+   />
+  <xsl:output-character
+   character="&#x211e;"
+   u:name="PRESCRIPTION TAKE"
+   u:entity="rx"
+   string="Rx"
+   u:block="Letterlike Symbols"
+   />
+  <xsl:output-character
+   character="&#x2120;"
+   u:name="SERVICE MARK"
+   string="(SM)"
+   u:block="Letterlike Symbols"
+   />
+  <!-- * We don't do "\(tm" for &#x2122; because for console output, groff -->
+  <!-- * just renders that as "tm", without any preceding space, parens, -->
+  <!-- * or anything. So it just gets run into the preceding word; i.e.: -->
+  <!-- * -->
+  <!-- *  Product&#x2122; -> Producttm -->
+  <!-- * -->
+  <!-- * That it probably not what most people would want. So we just -->
+  <!-- * render it as (TM) instead, Thus: -->
+  <!-- * -->
+  <!-- *  Product&#x2122; -> Product(TM) -->
+  <xsl:output-character
+   character="&#x2122;"
+   u:name="TRADE MARK SIGN"
+   u:entity="trade"
+   string="(TM)"
+   u:block="Letterlike Symbols"
+   />
+  <xsl:output-character
+   character="&#x2126;"
+   u:name="OHM SIGN"
+   u:entity="ohm"
+   string="\(*W"
+   u:block="Letterlike Symbols"
+   />
+  <xsl:output-character
+   character="&#x212a;"
+   u:name="KELVIN SIGN"
+   string="K"
+   u:block="Letterlike Symbols"
+   />
+  <xsl:output-character
+   character="&#x212b;"
+   u:name="ANGSTROM SIGN"
+   u:entity="angst"
+   string="\(oA"
+   u:block="Letterlike Symbols"
+   />
+  <xsl:output-character
+   character="&#x2135;"
+   u:name="ALEF SYMBOL"
+   u:entity="aleph"
+   string="\(Ah"
+   u:block="Letterlike Symbols"
+   />
+
+  <!-- * ***************************************************************** -->
+  <!-- *   End: Letterlike Symbols -->
+  <!-- *     x2100 to x214b -->
+  <!-- * ***************************************************************** -->
+  
+  <!-- * ***************************************************************** -->
+  <!-- *   Begin: Number Forms -->
+  <!-- *     x2150 to x218f -->
+  <!-- * -->
+  <!-- *   No mappings for any of these, and nothing appropriate for most -->
+  <!-- *   of them; so, just spell out the ones that we can -->
+  <!-- * ***************************************************************** -->
+
+  <xsl:output-character
+   character="&#x2153;"
+   u:name="VULGAR FRACTION ONE THIRD"
+   u:entity="frac13"
+   string="1/3"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2154;"
+   u:name="VULGAR FRACTION TWO THIRDS"
+   u:entity="frac23"
+   string="2/3"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2155;"
+   u:name="VULGAR FRACTION ONE FIFTH"
+   u:entity="frac15"
+   string="1/5"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2156;"
+   u:name="VULGAR FRACTION TWO FIFTHS"
+   u:entity="frac25"
+   string="2/5"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2157;"
+   u:name="VULGAR FRACTION THREE FIFTHS"
+   u:entity="frac35"
+   string="3/5"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2158;"
+   u:name="VULGAR FRACTION FOUR FIFTHS"
+   u:entity="frac45"
+   string="4/5"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2159;"
+   u:name="VULGAR FRACTION ONE SIXTH"
+   u:entity="frac16"
+   string="1/6"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x215a;"
+   u:name="VULGAR FRACTION FIVE SIXTHS"
+   u:entity="frac56"
+   string="5/6"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x215b;"
+   u:name="VULGAR FRACTION ONE EIGHTH"
+   u:entity="frac18"
+   string="1/8"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x215c;"
+   u:name="VULGAR FRACTION THREE EIGHTHS"
+   u:entity="frac38"
+   string="3/8"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x215d;"
+   u:name="VULGAR FRACTION FIVE EIGHTHS"
+   u:entity="frac58"
+   string="5/8"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x215e;"
+   u:name="VULGAR FRACTION SEVEN EIGHTHS"
+   u:entity="frac78"
+   string="7/8"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x215f;"
+   u:name="FRACTION NUMERATOR ONE"
+   string="1/"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2160;"
+   u:name="ROMAN NUMERAL ONE"
+   string="I"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2161;"
+   u:name="ROMAN NUMERAL TWO"
+   string="II"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2162;"
+   u:name="ROMAN NUMERAL THREE"
+   string="III"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2163;"
+   u:name="ROMAN NUMERAL FOUR"
+   string="IV"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2164;"
+   u:name="ROMAN NUMERAL FIVE"
+   string="V"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2165;"
+   u:name="ROMAN NUMERAL SIX"
+   string="VI"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2166;"
+   u:name="ROMAN NUMERAL SEVEN"
+   string="VII"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2167;"
+   u:name="ROMAN NUMERAL EIGHT"
+   string="VIII"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2168;"
+   u:name="ROMAN NUMERAL NINE"
+   string="IX"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2169;"
+   u:name="ROMAN NUMERAL TEN"
+   string="X"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x216a;"
+   u:name="ROMAN NUMERAL ELEVEN"
+   string="XI"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x216b;"
+   u:name="ROMAN NUMERAL TWELVE"
+   string="XII"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x216c;"
+   u:name="ROMAN NUMERAL FIFTY"
+   string="L"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x216d;"
+   u:name="ROMAN NUMERAL ONE HUNDRED"
+   string="C"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x216e;"
+   u:name="ROMAN NUMERAL FIVE HUNDRED"
+   string="D"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x216f;"
+   u:name="ROMAN NUMERAL ONE THOUSAND"
+   string="M"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2170;"
+   u:name="SMALL ROMAN NUMERAL ONE"
+   string="i"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2171;"
+   u:name="SMALL ROMAN NUMERAL TWO"
+   string="ii"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2172;"
+   u:name="SMALL ROMAN NUMERAL THREE"
+   string="iii"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2173;"
+   u:name="SMALL ROMAN NUMERAL FOUR"
+   string="iv"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2174;"
+   u:name="SMALL ROMAN NUMERAL FIVE"
+   string="v"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2175;"
+   u:name="SMALL ROMAN NUMERAL SIX"
+   string="vi"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2176;"
+   u:name="SMALL ROMAN NUMERAL SEVEN"
+   string="vii"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2177;"
+   u:name="SMALL ROMAN NUMERAL EIGHT"
+   string="viii"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2178;"
+   u:name="SMALL ROMAN NUMERAL NINE"
+   string="ix"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2179;"
+   u:name="SMALL ROMAN NUMERAL TEN"
+   string="x"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x217a;"
+   u:name="SMALL ROMAN NUMERAL ELEVEN"
+   string="xi"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x217b;"
+   u:name="SMALL ROMAN NUMERAL TWELVE"
+   string="xii"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x217c;"
+   u:name="SMALL ROMAN NUMERAL FIFTY"
+   string="l"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x217d;"
+   u:name="SMALL ROMAN NUMERAL ONE HUNDRED"
+   string="c"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x217e;"
+   u:name="SMALL ROMAN NUMERAL FIVE HUNDRED"
+   string="d"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x217f;"
+   u:name="SMALL ROMAN NUMERAL ONE THOUSAND"
+   string="m"
+   u:block="Number Forms"
+   />
+  <xsl:output-character
+   character="&#x2180;"
+   u:name="ROMAN NUMERAL ONE THOUSAND C D"
+   string="CD"
+   u:block="Number Forms"
+   />
+
+  <!-- * ***************************************************************** -->
+  <!-- *   End: Number Forms -->
+  <!-- *     x2150 to x218f -->
+  <!-- * ***************************************************************** -->
+
+  <!-- * ***************************************************************** -->
+  <!-- *   Begin: Arrows -->
+  <!-- *   x2190 to x21ff -->
+  <!-- * ***************************************************************** -->
+
+  <xsl:output-character
+   character="&#x2190;"
+   u:name="LEFTWARDS ARROW"
+   u:entity="larr"
+   string="\(&lt;-"
+   u:block="Arrows"
+   />
+  <xsl:output-character
+   character="&#x2191;"
+   u:name="UPWARDS ARROW"
+   u:entity="uarr"
+   string="\(ua"
+   u:block="Arrows"
+   />
+  <xsl:output-character
+   character="&#x2192;"
+   u:name="RIGHTWARDS ARROW"
+   u:entity="rarr"
+   string="\(->"
+   u:block="Arrows"
+   />
+  <xsl:output-character
+   character="&#x2193;"
+   u:name="DOWNWARDS ARROW"
+   u:entity="darr"
+   string="\(da"
+   u:block="Arrows"
+   />
+  <xsl:output-character
+   character="&#x2194;"
+   u:name="LEFT RIGHT ARROW"
+   u:entity="harr"
+   string="\(&lt;>"
+   u:block="Arrows"
+   />
+  <xsl:output-character
+   character="&#x2195;"
+   u:name="UP DOWN ARROW"
+   u:entity="varr"
+   string="\(va"
+   u:block="Arrows"
+   />
+  <xsl:output-character
+   character="&#x21b5;"
+   u:name="DOWNWARDS ARROW WITH CORNER LEFTWARDS"
+   u:entity="crarr"
+   string="\(CR"
+   u:block="Arrows"
+   />
+  <xsl:output-character
+   character="&#x21d0;"
+   u:name="LEFTWARDS DOUBLE ARROW"
+   u:entity="lArr"
+   string="\(la"
+   u:block="Arrows"
+   />
+  <xsl:output-character
+   character="&#x21d1;"
+   u:name="UPWARDS DOUBLE ARROW"
+   u:entity="uArr"
+   string="\(uA"
+   u:block="Arrows"
+   />
+  <xsl:output-character
+   character="&#x21d2;"
+   u:name="RIGHTWARDS DOUBLE ARROW"
+   u:entity="rArr"
+   string="\(rA"
+   u:block="Arrows"
+   />
+  <xsl:output-character
+   character="&#x21d3;"
+   u:name="DOWNWARDS DOUBLE ARROW"
+   u:entity="dArr"
+   string="\(dA"
+   u:block="Arrows"
+   />
+  <xsl:output-character
+   character="&#x21d4;"
+   u:name="LEFT RIGHT DOUBLE ARROW"
+   u:entity="hArr"
+   string="\(hA"
+   u:block="Arrows"
+   />
+  <!-- no roff equiv; render same as single arrow -->
+  <xsl:output-character
+   character="&#x21d5;"
+   u:name="UP DOWN DOUBLE ARROW"
+   u:entity="vArr"
+   string="\(va"
+   u:block="Arrows"
+   />
+
+  <!-- * ***************************************************************** -->
+  <!-- *   Begin: Mathematical Operators -->
+  <!-- *     x2200 to x22ff -->
+  <!-- * ***************************************************************** -->
+
+  <xsl:output-character
+   character="&#x2200;"
+   u:name="FOR ALL"
+   u:entity="forall"
+   string="\(fa"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2201;"
+   u:name="COMPLEMENT"
+   u:entity="comp"
+   string="C"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2202;"
+   u:name="PARTIAL DIFFERENTIAL"
+   u:entity="part"
+   string="\(pd"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2203;"
+   u:name="THERE EXISTS"
+   u:entity="exist"
+   string="\(te"
+   u:block="Mathematical Operators"
+   />
+  <!-- * no roff equiv  -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2204;" -->
+  <!-- *      u:name="THERE DOES NOT EXIST" -->
+  <!-- *      u:entity="nexist" -->
+  <!-- *      /> -->
+  <xsl:output-character
+   character="&#x2205;"
+   u:name="EMPTY SET"
+   u:entity="empty"
+   string="\(es"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2206;"
+   u:name="INCREMENT"
+   string="\(*D"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2207;"
+   u:name="NABLA"
+   u:entity="nabla"
+   string="\(gr"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2208;"
+   u:name="ELEMENT OF"
+   u:entity="isin"
+   string="\(mo"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2209;"
+   u:name="NOT AN ELEMENT OF"
+   u:entity="notin"
+   string="\(nm"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x220a;"
+   u:name="SMALL ELEMENT OF"
+   string="\(mo"
+   u:block="Mathematical Operators"
+   />
+
+  <xsl:output-character
+   character="&#x220b;"
+   u:name="CONTAINS AS MEMBER"
+   u:entity="ni"
+   string="\(st"
+   u:block="Mathematical Operators"
+   />
+  <!-- * not in roff  -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x220c;" -->
+  <!-- *      u:name="DOES NOT CONTAIN AS MEMBER" -->
+  <!-- *      /> -->
+  <xsl:output-character
+   character="&#x220d;"
+   u:name="SMALL CONTAINS AS MEMBER"
+   string="\(st"
+   u:block="Mathematical Operators"
+   />
+  <!-- * not in roff -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x220e;" -->
+  <!-- *      u:name="END OF PROOF" -->
+  <!-- *      /> -->
+  <xsl:output-character
+   character="&#x220f;"
+   u:name="N-ARY PRODUCT"
+   u:entity="prod"
+   string="\(product"
+   u:block="Mathematical Operators"
+   />
+  <!-- * not in roff -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2210;" -->
+  <!-- *      u:name="N-ARY COPRODUCT" -->
+  <!-- *      u:entity="coprod" -->
+  <!-- *      /> -->
+  <xsl:output-character
+   character="&#x2211;"
+   u:name="N-ARY SUMMATION"
+   u:entity="sum"
+   string="\(sum"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2212;"
+   u:name="MINUS SIGN"
+   u:entity="minus"
+   string="\-"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2213;"
+   u:name="MINUS-OR-PLUS SIGN"
+   u:entity="mnplus"
+   string="\(+-"
+   u:block="Mathematical Operators"
+   />
+  <!-- * not in roff -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2214;" -->
+  <!-- *      u:name="DOT PLUS" -->
+  <!-- *      u:entity="plusdo" -->
+  <!-- *      /> -->
+  <xsl:output-character
+   character="&#x2215;"
+   u:name="DIVISION SLASH"
+   string="\(f/"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2216;"
+   u:name="SET MINUS"
+   u:entity="setmn"
+   string="\e"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2217;"
+   u:name="ASTERISK OPERATOR"
+   u:entity="lowast"
+   string="\(**"
+   u:block="Mathematical Operators"
+   />
+  <!-- * not in roff -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2218;" -->
+  <!-- *      u:name="RING OPERATOR" -->
+  <!-- *      u:entity="compfn" -->
+  <!-- *      /> -->
+  <xsl:output-character
+   character="&#x2219;"
+   u:name="BULLET OPERATOR"
+   string="\(bu"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x221a;"
+   u:name="SQUARE ROOT"
+   u:entity="radic"
+   string="\(sr"
+   u:block="Mathematical Operators"
+   />
+  <!-- * not in roff -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x221b;" -->
+  <!-- *      u:name="CUBE ROOT" -->
+  <!-- *      /> -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x221c;" -->
+  <!-- *      u:name="FOURTH ROOT" -->
+  <!-- *      /> -->
+  <xsl:output-character
+   character="&#x221d;"
+   u:name="PROPORTIONAL TO"
+   u:entity="prop"
+   string="\(pt"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x221e;"
+   u:name="INFINITY"
+   u:entity="infin"
+   string="\(if"
+   u:block="Mathematical Operators"
+   />
+  <!-- * not in roff -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x221f;" -->
+  <!-- *      u:name="RIGHT ANGLE" -->
+  <!-- *      u:entity="ang90" -->
+  <!-- *      /> -->
+  <xsl:output-character
+   character="&#x2220;"
+   u:name="ANGLE"
+   u:entity="ang"
+   string="\(/_"
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * 0x2221 to 0x2226 not in roff; -->
+  <!-- * but fake a parallel sign with vert bars -->
+
+  <xsl:output-character
+   character="&#x2225;"
+   u:name="PARALLEL TO"
+   u:entity="par"
+   string="\(bv\(bv"
+   u:block="Mathematical Operators"
+   />
+
+  <xsl:output-character
+   character="&#x2227;"
+   u:name="LOGICAL AND"
+   u:entity="and"
+   string="\(AN"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2228;"
+   u:name="LOGICAL OR"
+   u:entity="or"
+   string="\(OR"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2229;"
+   u:name="INTERSECTION"
+   u:entity="cap"
+   string="\(ca"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x222a;"
+   u:name="UNION"
+   u:entity="cup"
+   string="\(cu"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x222b;"
+   u:name="INTEGRAL"
+   u:entity="int"
+   string="\(is"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x222c;"
+   u:name="DOUBLE INTEGRAL"
+   string="\(is\(is"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x222d;"
+   u:name="TRIPLE INTEGRAL"
+   string="\(is\(is\(is"
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * 0x222e to 0x2233 not in roff -->
+
+  <xsl:output-character
+   character="&#x2234;"
+   u:name="THEREFORE"
+   u:entity="there4"
+   string="\(tf"
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * not in roff -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2235;" -->
+  <!-- *      u:name="BECAUSE" -->
+  <!-- *      u:entity="becaus" -->
+  <!-- *      /> -->
+  <xsl:output-character
+   character="&#x2236;"
+   u:name="RATIO"
+   string=":"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2237;"
+   u:name="PROPORTION"
+   string="::"
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * 0x2238 to 0x223b not in roff -->
+
+  <xsl:output-character
+   character="&#x223c;"
+   u:name="TILDE OPERATOR"
+   u:entity="sim"
+   string="\(ti"
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * 0x223d to 0x224b not in roff -->
+
+  <xsl:output-character
+   character="&#x2245;"
+   u:name="APPROXIMATELY EQUAL TO"
+   u:entity="cong"
+   string="\(=~"
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * not in roff -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2246;" -->
+  <!-- *      u:name="APPROXIMATELY BUT NOT ACTUALLY EQUAL TO" -->
+  <!-- *      /> -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2247;" -->
+  <!-- *      u:name="NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO" -->
+  <!-- *      u:entity="ncong" -->
+  <!-- *      /> -->
+
+  <xsl:output-character
+   character="&#x2248;"
+   u:name="ALMOST EQUAL TO"
+   u:entity="asymp"
+   string="\(~~"
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * x2249 to x2253 not in roff -->
+
+  <xsl:output-character
+   character="&#x2254;"
+   u:name="COLON EQUALS"
+   u:entity="colone"
+   string=":="
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2255;"
+   u:name="EQUALS COLON"
+   u:entity="ecolon"
+   string="=:"
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * x2256 to x2255 not in roff -->
+
+  <xsl:output-character
+   character="&#x225f;"
+   u:name="QUESTIONED EQUAL TO"
+   string="?="
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2260;"
+   u:name="NOT EQUAL TO"
+   u:entity="ne"
+   string="\(!="
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2261;"
+   u:name="IDENTICAL TO"
+   u:entity="equiv"
+   string="\(=="
+   u:block="Mathematical Operators"
+   />
+  <!-- * not in roff -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2262;" -->
+  <!-- *      u:name="NOT IDENTICAL TO" -->
+  <!-- *      u:entity="nequiv" -->
+  <!-- *      /> -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2263;" -->
+  <!-- *      u:name="STRICTLY EQUIVALENT TO" -->
+  <!-- *      /> -->
+  <xsl:output-character
+   character="&#x2264;"
+   u:name="LESS-THAN OR EQUAL TO"
+   u:entity="le"
+   string="\(&lt;="
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2265;"
+   u:name="GREATER-THAN OR EQUAL TO"
+   u:entity="ge"
+   string="\(>="
+   u:block="Mathematical Operators"
+   />
+  <!-- * x2266 to x2269 not in roff -->
+
+  <xsl:output-character
+   character="&#x226a;"
+   u:name="MUCH LESS-THAN"
+   u:entity="Lt"
+   string="&lt;&lt;"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x226b;"
+   u:name="MUCH GREATER-THAN"
+   u:entity="Gt"
+   string=">>"
+   u:block="Mathematical Operators"
+   />
+  <!-- * x226c to x2281 not in roff -->
+
+  <xsl:output-character
+   character="&#x2282;"
+   u:name="SUBSET OF"
+   u:entity="sub"
+   string="\(sb"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2283;"
+   u:name="SUPERSET OF"
+   u:entity="sup"
+   string="\(sp"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2284;"
+   u:name="NOT A SUBSET OF"
+   u:entity="nsub"
+   string="\(nb"
+   u:block="Mathematical Operators"
+   />
+  <!-- * not in roff -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x2285;" -->
+  <!-- *      u:name="NOT A SUPERSET OF" -->
+  <!-- *      u:entity="nsup" -->
+  <!-- *      /> -->
+  <xsl:output-character
+   character="&#x2286;"
+   u:name="SUBSET OF OR EQUAL TO"
+   u:entity="sube"
+   string="\(ib"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2287;"
+   u:name="SUPERSET OF OR EQUAL TO"
+   u:entity="supe"
+   string="\(ip"
+   u:block="Mathematical Operators"
+   />
+  <!-- * x2288 to x2294 not in roff -->
+
+  <xsl:output-character
+   character="&#x2295;"
+   u:name="CIRCLED PLUS"
+   u:entity="oplus"
+   string="\(c+"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2296;"
+   u:name="CIRCLED MINUS"
+   u:entity="ominus"
+   string="\(c*"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x2297;"
+   u:name="CIRCLED TIMES"
+   u:entity="otimes"
+   string="\(c*"
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * x2298 to x22a4 not in roff -->
+
+  <xsl:output-character
+   character="&#x22a5;"
+   u:name="UP TACK"
+   u:entity="bottom"
+   string="\(pp"
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * x22a6 to x22bf not in roff -->
+
+  <xsl:output-character
+   character="&#x22c0;"
+   u:name="N-ARY LOGICAL AND"
+   string="\(AN"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x22c1;"
+   u:name="N-ARY LOGICAL OR"
+   string="\(OR"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x22c2;"
+   u:name="N-ARY INTERSECTION"
+   string="\(ca"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x22c3;"
+   u:name="N-ARY UNION"
+   string="\(cu"
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * not in roff -->
+  <!-- *      <xsl:output-character -->
+  <!-- *      character="&#x22c4;" -->
+  <!-- *      u:name="DIAMOND OPERATOR" -->
+  <!-- *      u:entity="diam" -->
+  <!-- *      /> -->
+  <xsl:output-character
+   character="&#x22c5;"
+   u:name="DOT OPERATOR"
+   u:entity="sdot"
+   string="\(md"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x22c6;"
+   u:name="STAR OPERATOR"
+   u:entity="sstarf"
+   string="\(**"
+   u:block="Mathematical Operators"
+   />
+  <!-- * x22c7 to x22cd not in roff -->
+
+  <xsl:output-character
+   character="&#x22ce;"
+   u:name="CURLY LOGICAL OR"
+   u:entity="cuvee"
+   string="\(OR"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x22cf;"
+   u:name="CURLY LOGICAL AND"
+   u:entity="cuwed"
+   string="\(AN"
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * x22d0 to x22d7 not in roff -->
+
+  <xsl:output-character
+   character="&#x22d8;"
+   u:name="VERY MUCH LESS-THAN"
+   u:entity="Ll"
+   string="&lt;&lt;&lt;"
+   u:block="Mathematical Operators"
+   />
+  <xsl:output-character
+   character="&#x22d9;"
+   u:name="VERY MUCH GREATER-THAN"
+   u:entity="Gg"
+   string=">>>"
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * x22da to x22ee not in roff -->
+
+  <xsl:output-character
+   character="&#x22ef;"
+   u:name="MIDLINE HORIZONTAL ELLIPSIS"
+   string="\&amp;..."
+   u:block="Mathematical Operators"
+   />
+
+  <!-- * x22fo to x22ff not in roff -->
+
+  <!-- * ***************************************************************** -->
+  <!-- *   End: Mathematical Operators -->
+  <!-- * ***************************************************************** -->
+  
+  <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+  <!-- *   Miscellaneous Technical -->
+  <!-- *     x2300 to x23ff -->
+  <!-- *     - do nothing except for angle brackets - -->
+  <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+  <xsl:output-character
+   character="&#x2329;"
+   u:name="LEFT-POINTING ANGLE BRACKET"
+   u:entity="lang"
+   string="\(la"
+   u:block="Miscellaneous Technical"
+   />
+  <xsl:output-character
+   character="&#x232a;"
+   u:name="RIGHT-POINTING ANGLE BRACKET"
+   u:entity="rang"
+   string="\(ra"
+   u:block="Miscellaneous Technical"
+   />
+
+  <!-- * ***************************************************************** -->
+  <!-- *   Begin: Control Pictures -->
+  <!-- *     x2400 to x243f -->
+  <!-- * ***************************************************************** -->
+
+  <xsl:output-character
+   character="&#x2400;"
+   u:name="SYMBOL FOR NULL"
+   string="NUL"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2401;"
+   u:name="SYMBOL FOR START OF HEADING"
+   string="SOH"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2402;"
+   u:name="SYMBOL FOR START OF TEXT"
+   string="STX"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2403;"
+   u:name="SYMBOL FOR END OF TEXT"
+   string="ETX"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2404;"
+   u:name="SYMBOL FOR END OF TRANSMISSION"
+   string="EOT"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2405;"
+   u:name="SYMBOL FOR ENQUIRY"
+   string="ENQ"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2406;"
+   u:name="SYMBOL FOR ACKNOWLEDGE"
+   string="ACK"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2407;"
+   u:name="SYMBOL FOR BELL"
+   string="BEL"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2408;"
+   u:name="SYMBOL FOR BACKSPACE"
+   string="BS"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2409;"
+   u:name="SYMBOL FOR HORIZONTAL TABULATION"
+   string="HT"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x240a;"
+   u:name="SYMBOL FOR LINE FEED"
+   string="LF"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x240b;"
+   u:name="SYMBOL FOR VERTICAL TABULATION"
+   string="VT"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x240c;"
+   u:name="SYMBOL FOR FORM FEED"
+   string="FF"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x240d;"
+   u:name="SYMBOL FOR CARRIAGE RETURN"
+   string="CR"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x240e;"
+   u:name="SYMBOL FOR SHIFT OUT"
+   string="SO"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x240f;"
+   u:name="SYMBOL FOR SHIFT IN"
+   string="SI"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2410;"
+   u:name="SYMBOL FOR DATA LINK ESCAPE"
+   string="DLE"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2411;"
+   u:name="SYMBOL FOR DEVICE CONTROL ONE"
+   string="DC1"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2412;"
+   u:name="SYMBOL FOR DEVICE CONTROL TWO"
+   string="DC2"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2413;"
+   u:name="SYMBOL FOR DEVICE CONTROL THREE"
+   string="DC3"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2414;"
+   u:name="SYMBOL FOR DEVICE CONTROL FOUR"
+   string="DC4"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2415;"
+   u:name="SYMBOL FOR NEGATIVE ACKNOWLEDGE"
+   string="NAK"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2416;"
+   u:name="SYMBOL FOR SYNCHRONOUS IDLE"
+   string="SYN"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2417;"
+   u:name="SYMBOL FOR END OF TRANSMISSION BLOCK"
+   string="ETB"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2418;"
+   u:name="SYMBOL FOR CANCEL"
+   string="CAN"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2419;"
+   u:name="SYMBOL FOR END OF MEDIUM"
+   string="EM"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x241a;"
+   u:name="SYMBOL FOR SUBSTITUTE"
+   string="SUB"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x241b;"
+   u:name="SYMBOL FOR ESCAPE"
+   string="ESC"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x241c;"
+   u:name="SYMBOL FOR FILE SEPARATOR"
+   string="FS"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x241d;"
+   u:name="SYMBOL FOR GROUP SEPARATOR"
+   string="GS"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x241e;"
+   u:name="SYMBOL FOR RECORD SEPARATOR"
+   string="RS"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x241f;"
+   u:name="SYMBOL FOR UNIT SEPARATOR"
+   string="US"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2420;"
+   u:name="SYMBOL FOR SPACE"
+   string="SP"
+   u:block="Control Pictures"
+   />
+  <xsl:output-character
+   character="&#x2421;"
+   u:name="SYMBOL FOR DELETE"
+   string="DEL"
+   u:block="Control Pictures"
+   />
+  <!-- * no roff equivs for x2422 and x2423 -->
+  <!-- *   <xsl:output-character -->
+  <!-- *    character="&#x2422;" -->
+  <!-- *    u:name="BLANK SYMBOL" -->
+  <!-- *    string="?" -->
+  <!-- *    u:block="Control Pictures" -->
+  <!-- *    /> -->
+  <!-- * I think there should be a roff equiv for &blank;, but as far as I -->
+  <!-- * know, there is not... -->
+  <!-- *   <xsl:output-character -->
+  <!-- *    character="&#x2423;" -->
+  <!-- *    u:name="OPEN BOX" -->
+  <!-- *    u:entity="blank" -->
+  <!-- *    string="?" -->
+  <!-- *    u:block="Control Pictures" -->
+  <!-- *    /> -->
+  <xsl:output-character
+   character="&#x2424;"
+   u:name="SYMBOL FOR NEWLINE"
+   string="NL"
+   u:block="Control Pictures"
+   />
+
+  <!-- * ***************************************************************** -->
+  <!-- *   End: Control Pictures -->
+  <!-- * ***************************************************************** -->
+
+  <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+  <!-- *   Optical Character Recognition -->
+  <!-- *     x2440 to x24ff -->
+  <!-- *     - do nothing - -->
+  <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+  <!-- * ***************************************************************** -->
+  <!-- *   Begin: Enclosed Alphanumerics -->
+  <!-- *     x2460 to x24ff -->
+  <!-- * ***************************************************************** -->
+
+  <xsl:output-character
+   character="&#x2460;"
+   u:name="CIRCLED DIGIT ONE"
+   string="1"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2461;"
+   u:name="CIRCLED DIGIT TWO"
+   string="2"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2462;"
+   u:name="CIRCLED DIGIT THREE"
+   string="3"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2463;"
+   u:name="CIRCLED DIGIT FOUR"
+   string="4"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2464;"
+   u:name="CIRCLED DIGIT FIVE"
+   string="5"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2465;"
+   u:name="CIRCLED DIGIT SIX"
+   string="6"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2466;"
+   u:name="CIRCLED DIGIT SEVEN"
+   string="7"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2467;"
+   u:name="CIRCLED DIGIT EIGHT"
+   string="8"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2468;"
+   u:name="CIRCLED DIGIT NINE"
+   string="9"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2469;"
+   u:name="CIRCLED NUMBER TEN"
+   string="10"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x246a;"
+   u:name="CIRCLED NUMBER ELEVEN"
+   string="11"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x246b;"
+   u:name="CIRCLED NUMBER TWELVE"
+   string="12"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x246c;"
+   u:name="CIRCLED NUMBER THIRTEEN"
+   string="13"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x246d;"
+   u:name="CIRCLED NUMBER FOURTEEN"
+   string="14"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x246e;"
+   u:name="CIRCLED NUMBER FIFTEEN" 
+   string="15"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x246f;"
+   u:name="CIRCLED NUMBER SIXTEEN"
+   string="16"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2470;"
+   u:name="CIRCLED NUMBER SEVENTEEN"
+   string="17"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2471;"
+   u:name="CIRCLED NUMBER EIGHTEEN"
+   string="18"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2472;"
+   u:name="CIRCLED NUMBER NINETEEN"
+   string="19"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2473;"
+   u:name="CIRCLED NUMBER TWENTY"
+   string="20"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2474;"
+   u:name="PARENTHESIZED DIGIT ONE"
+   string="(1)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2475;"
+   u:name="PARENTHESIZED DIGIT TWO"
+   string="(2)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2476;"
+   u:name="PARENTHESIZED DIGIT THREE"
+   string="(3)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2477;"
+   u:name="PARENTHESIZED DIGIT FOUR"
+   string="(4)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2478;"
+   u:name="PARENTHESIZED DIGIT FIVE"
+   string="(5)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2479;"
+   u:name="PARENTHESIZED DIGIT SIX"
+   string="(6)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x247a;"
+   u:name="PARENTHESIZED DIGIT SEVEN"
+   string="(7)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x247b;"
+   u:name="PARENTHESIZED DIGIT EIGHT"
+   string="(8)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x247c;"
+   u:name="PARENTHESIZED DIGIT NINE"
+   string="(9)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x247d;"
+   u:name="PARENTHESIZED NUMBER TEN"
+   string="(10)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x247e;"
+   u:name="PARENTHESIZED NUMBER ELEVEN"
+   string="(11)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x247f;"
+   u:name="PARENTHESIZED NUMBER TWELVE"
+   string="(12)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2480;"
+   u:name="PARENTHESIZED NUMBER THIRTEEN"
+   string="(13)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2481;"
+   u:name="PARENTHESIZED NUMBER FOURTEEN"
+   string="(14)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2482;"
+   u:name="PARENTHESIZED NUMBER FIFTEEN"
+   string="(15)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2483;"
+   u:name="PARENTHESIZED NUMBER SIXTEEN"
+   string="(16)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2484;"
+   u:name="PARENTHESIZED NUMBER SEVENTEEN"
+   string="(17)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2485;"
+   u:name="PARENTHESIZED NUMBER EIGHTEEN"
+   string="(18)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2486;"
+   u:name="PARENTHESIZED NUMBER NINETEEN"
+   string="(19)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2487;"
+   u:name="PARENTHESIZED NUMBER TWENTY"
+   string="(20)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2488;"
+   u:name="DIGIT ONE FULL STOP"
+   string="1."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2489;"
+   u:name="DIGIT TWO FULL STOP"
+   string="2."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x248a;"
+   u:name="DIGIT THREE FULL STOP"
+   string="3."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x248b;"
+   u:name="DIGIT FOUR FULL STOP"
+   string="4."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x248c;"
+   u:name="DIGIT FIVE FULL STOP"
+   string="5."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x248d;"
+   u:name="DIGIT SIX FULL STOP"
+   string="6."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x248e;"
+   u:name="DIGIT SEVEN FULL STOP"
+   string="7."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x248f;"
+   u:name="DIGIT EIGHT FULL STOP"
+   string="8."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2490;"
+   u:name="DIGIT NINE FULL STOP"
+   string="9."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2491;"
+   u:name="NUMBER TEN FULL STOP"
+   string="10."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2492;"
+   u:name="NUMBER ELEVEN FULL STOP"
+   string="11."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2493;"
+   u:name="NUMBER TWELVE FULL STOP"
+   string="12."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2494;"
+   u:name="NUMBER THIRTEEN FULL STOP"
+   string="13."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2495;"
+   u:name="NUMBER FOURTEEN FULL STOP"
+   string="14."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2496;"
+   u:name="NUMBER FIFTEEN FULL STOP"
+   string="15."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2497;"
+   u:name="NUMBER SIXTEEN FULL STOP"
+   string="16."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2498;"
+   u:name="NUMBER SEVENTEEN FULL STOP"
+   string="17."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x2499;"
+   u:name="NUMBER EIGHTEEN FULL STOP"
+   string="18."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x249a;"
+   u:name="NUMBER NINETEEN FULL STOP"
+   string="19."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x249b;"
+   u:name="NUMBER TWENTY FULL STOP"
+   string="20."
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x249c;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER A"
+   string="(a)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x249d;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER B"
+   string="(b)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x249e;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER C"
+   string="(c)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x249f;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER D"
+   string="(d)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24a0;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER E"
+   string="(e)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24a1;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER F"
+   string="(f)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24a2;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER G"
+   string="(g)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24a3;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER H"
+   string="(h)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24a4;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER I"
+   string="(i)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24a5;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER J"
+   string="(j)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24a6;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER K"
+   string="(k)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24a7;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER L"
+   string="(l)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24a8;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER M"
+   string="(m)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24a9;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER N"
+   string="(n)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24aa;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER O"
+   string="(o)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24ab;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER P"
+   string="(p)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24ac;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER Q"
+   string="(q)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24ad;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER R"
+   string="(r)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24ae;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER S"
+   string="(s)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24af;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER T"
+   string="(t)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24b0;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER U"
+   string="(u)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24b1;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER V"
+   string="(v)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24b2;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER W"
+   string="(w)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24b3;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER X"
+   string="(x)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24b4;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER Y"
+   string="(y)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24b5;"
+   u:name="PARENTHESIZED LATIN SMALL LETTER Z"
+   string="(z)"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24b6;"
+   u:name="CIRCLED LATIN CAPITAL LETTER A"
+   string="A"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24b7;"
+   u:name="CIRCLED LATIN CAPITAL LETTER B"
+   string="B"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24b8;"
+   u:name="CIRCLED LATIN CAPITAL LETTER C"
+   string="C"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24b9;"
+   u:name="CIRCLED LATIN CAPITAL LETTER D"
+   string="D"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24ba;"
+   u:name="CIRCLED LATIN CAPITAL LETTER E"
+   string="E"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24bb;"
+   u:name="CIRCLED LATIN CAPITAL LETTER F"
+   string="F"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24bc;"
+   u:name="CIRCLED LATIN CAPITAL LETTER G"
+   string="G"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24bd;"
+   u:name="CIRCLED LATIN CAPITAL LETTER H"
+   string="H"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24be;"
+   u:name="CIRCLED LATIN CAPITAL LETTER I"
+   string="I"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24bf;"
+   u:name="CIRCLED LATIN CAPITAL LETTER J"
+   string="J"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24c0;"
+   u:name="CIRCLED LATIN CAPITAL LETTER K"
+   string="K"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24c1;"
+   u:name="CIRCLED LATIN CAPITAL LETTER L"
+   string="L"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24c2;"
+   u:name="CIRCLED LATIN CAPITAL LETTER M"
+   string="M"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24c3;"
+   u:name="CIRCLED LATIN CAPITAL LETTER N"
+   string="N"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24c4;"
+   u:name="CIRCLED LATIN CAPITAL LETTER O"
+   string="O"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24c5;"
+   u:name="CIRCLED LATIN CAPITAL LETTER P"
+   string="P"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24c6;"
+   u:name="CIRCLED LATIN CAPITAL LETTER Q"
+   string="Q"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24c7;"
+   u:name="CIRCLED LATIN CAPITAL LETTER R"
+   string="R"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24c8;"
+   u:name="CIRCLED LATIN CAPITAL LETTER S"
+   u:entity="oS"
+   string="S"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24c9;"
+   u:name="CIRCLED LATIN CAPITAL LETTER T"
+   string="T"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24ca;"
+   u:name="CIRCLED LATIN CAPITAL LETTER U"
+   string="U"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24cb;"
+   u:name="CIRCLED LATIN CAPITAL LETTER V"
+   string="V"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24cc;"
+   u:name="CIRCLED LATIN CAPITAL LETTER W"
+   string="W"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24cd;"
+   u:name="CIRCLED LATIN CAPITAL LETTER X"
+   string="X"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24ce;"
+   u:name="CIRCLED LATIN CAPITAL LETTER Y"
+   string="Y"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24cf;"
+   u:name="CIRCLED LATIN CAPITAL LETTER Z"
+   string="Z"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24d0;"
+   u:name="CIRCLED LATIN SMALL LETTER A"
+   string="a"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24d1;"
+   u:name="CIRCLED LATIN SMALL LETTER B"
+   string="b"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24d2;"
+   u:name="CIRCLED LATIN SMALL LETTER C"
+   string="c"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24d3;"
+   u:name="CIRCLED LATIN SMALL LETTER D"
+   string="d"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24d4;"
+   u:name="CIRCLED LATIN SMALL LETTER E"
+   string="e"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24d5;"
+   u:name="CIRCLED LATIN SMALL LETTER F"
+   string="f"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24d6;"
+   u:name="CIRCLED LATIN SMALL LETTER G"
+   string="g"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24d7;"
+   u:name="CIRCLED LATIN SMALL LETTER H"
+   string="h"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24d8;"
+   u:name="CIRCLED LATIN SMALL LETTER I"
+   string="i"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24d9;"
+   u:name="CIRCLED LATIN SMALL LETTER J"
+   string="j"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24da;"
+   u:name="CIRCLED LATIN SMALL LETTER K"
+   string="k"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24db;"
+   u:name="CIRCLED LATIN SMALL LETTER L"
+   string="l"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24dc;"
+   u:name="CIRCLED LATIN SMALL LETTER M"
+   string="m"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24dd;"
+   u:name="CIRCLED LATIN SMALL LETTER N"
+   string="n"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24de;"
+   u:name="CIRCLED LATIN SMALL LETTER O"
+   string="o"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24df;"
+   u:name="CIRCLED LATIN SMALL LETTER P"
+   string="p"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24e0;"
+   u:name="CIRCLED LATIN SMALL LETTER Q"
+   string="q"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24e1;"
+   u:name="CIRCLED LATIN SMALL LETTER R"
+   string="r"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24e2;"
+   u:name="CIRCLED LATIN SMALL LETTER S"
+   string="s"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24e3;"
+   u:name="CIRCLED LATIN SMALL LETTER T"
+   string="t"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24e4;"
+   u:name="CIRCLED LATIN SMALL LETTER U"
+   string="u"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24e5;"
+   u:name="CIRCLED LATIN SMALL LETTER V"
+   string="b"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24e6;"
+   u:name="CIRCLED LATIN SMALL LETTER W"
+   string="w"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24e7;"
+   u:name="CIRCLED LATIN SMALL LETTER X"
+   string="x"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24e8;"
+   u:name="CIRCLED LATIN SMALL LETTER Y"
+   string="y"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24e9;"
+   u:name="CIRCLED LATIN SMALL LETTER Z"
+   string="z"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24ea;"
+   u:name="CIRCLED DIGIT ZERO"
+   string="0"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24eb;"
+   u:name="NEGATIVE CIRCLED NUMBER ELEVEN"
+   string="11"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24ec;"
+   u:name="NEGATIVE CIRCLED NUMBER TWELVE"
+   string="12"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24ed;"
+   u:name="NEGATIVE CIRCLED NUMBER THIRTEEN"
+   string="13"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24ee;"
+   u:name="NEGATIVE CIRCLED NUMBER FOURTEEN"
+   string="14"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24ef;"
+   u:name="NEGATIVE CIRCLED NUMBER FIFTEEN"
+   string="15"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24f0;"
+   u:name="NEGATIVE CIRCLED NUMBER SIXTEEN"
+   string="16"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24f1;"
+   u:name="NEGATIVE CIRCLED NUMBER SEVENTEEN"
+   string="17"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24f2;"
+   u:name="NEGATIVE CIRCLED NUMBER EIGHTEEN"
+   string="18"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24f3;"
+   u:name="NEGATIVE CIRCLED NUMBER NINETEEN"
+   string="19"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24f4;"
+   u:name="NEGATIVE CIRCLED NUMBER TWENTY"
+   string="20"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24f5;"
+   u:name="DOUBLE CIRCLED DIGIT ONE"
+   string="1"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24f6;"
+   u:name="DOUBLE CIRCLED DIGIT TWO"
+   string="2"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24f7;"
+   u:name="DOUBLE CIRCLED DIGIT THREE"
+   string="3"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24f8;"
+   u:name="DOUBLE CIRCLED DIGIT FOUR"
+   string="4"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24f9;"
+   u:name="DOUBLE CIRCLED DIGIT FIVE"
+   string="5"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24fa;"
+   u:name="DOUBLE CIRCLED DIGIT SIX"
+   string="6"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24fb;"
+   u:name="DOUBLE CIRCLED DIGIT SEVEN"
+   string="7"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24fc;"
+   u:name="DOUBLE CIRCLED DIGIT EIGHT"
+   string="8"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24fd;"
+   u:name="DOUBLE CIRCLED DIGIT NINE"
+   string="9"
+   u:block="Enclosed Alphanumerics"
+   />
+  <xsl:output-character
+   character="&#x24fe;"
+   u:name="DOUBLE CIRCLED NUMBER TEN"
+   string="10"
+   u:block="Enclosed Alphanumerics"
+   />
+
+  <!-- * ***************************************************************** -->
+  <!-- *   End: Enclosed Alphanumerics -->
+  <!-- * ***************************************************************** -->
+
+  <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+  <!-- *   Box Drawing -->
+  <!-- *     x2500 to x257f -->
+  <!-- *   Block Elements -->
+  <!-- *     x2580 to x259f -->
+  <!-- *   - do nothing - -->
+  <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+  
+  <!-- * ***************************************************************** -->
+  <!-- *   Begin: Geometric Shapes -->
+  <!-- *     x25a0 to x25f7 -->
+  <!-- * ***************************************************************** -->
+
+  <xsl:output-character
+   character="&#x25a1;"
+   u:name="WHITE SQUARE"
+   u:entity="squ"
+   string="\(sq"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25a2;"
+   u:name="WHITE SQUARE WITH ROUNDED CORNERS"
+   string="\(sq"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25ab;"
+   u:name="WHITE SMALL SQUARE"
+   string="\(sq"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25ba;"
+   u:name="BLACK RIGHT-POINTING POINTER"
+   string="\fB>\fR"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25bb;"
+   u:name="WHITE RIGHT-POINTING POINTER"
+   string=">"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25bc;"
+   u:name="BLACK DOWN-POINTING TRIANGLE"
+   string="\fBv\fR"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25bd;"
+   u:name="WHITE DOWN-POINTING TRIANGLE"
+   u:entity="xdtri"
+   string="v"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25c4;"
+   u:name="BLACK LEFT-POINTING POINTER"
+   string="\fB&lt;\fR"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25c5;"
+   u:name="WHITE LEFT-POINTING POINTER"
+   string="&lt;"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25c6;"
+   u:name="BLACK DIAMOND"
+   string="\(DI"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25c7;"
+   u:name="WHITE DIAMOND"
+   string="\(lz"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25ca;"
+   u:name="LOZENGE"
+   u:entity="loz"
+   string="\(lz"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25cb;"
+   u:name="WHITE CIRCLE"
+   u:entity="cir"
+   string="\(ci"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25cf;"
+   u:name="BLACK CIRCLE"
+   string="\(bu"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25e6;"
+   u:name="WHITE BULLET"
+   string="\(ci"
+   u:block="Geometric Shapes"
+   />
+  <xsl:output-character
+   character="&#x25ef;"
+   u:name="LARGE CIRCLE"
+   u:entity="xcirc"
+   string="\(ci"
+   u:block="Geometric Shapes"
+   />
+  <!-- * ***************************************************************** -->
+  <!-- *   End: Geometric Shapes -->
+  <!-- *   x25a0 to x25f7 -->
+  <!-- * ***************************************************************** -->
+
+  <!-- * ***************************************************************** -->
+  <!-- *   Begin: Miscellaneous Symbols -->
+  <!-- *   x2600 to x26ff -->
+  <!-- * ***************************************************************** -->
+  
+  <xsl:output-character
+   character="&#x261a;"
+   u:name="BLACK LEFT POINTING INDEX"
+   string="\(lh"
+   u:block="Miscellaneous Symbols"
+   />
+  <xsl:output-character
+   character="&#x261b;"
+   u:name="BLACK RIGHT POINTING INDEX"
+   string="\(rh)"
+   u:block="Miscellaneous Symbols"
+   />
+  <xsl:output-character
+   character="&#x261c;"
+   u:name="WHITE LEFT POINTING INDEX"
+   string="\(lh"
+   u:block="Miscellaneous Symbols"
+   />
+  <xsl:output-character
+   character="&#x261e;"
+   u:name="WHITE RIGHT POINTING INDEX"
+   string="\(rh)"
+   u:block="Miscellaneous Symbols"
+   />
+  <xsl:output-character
+   character="&#x2660;"
+   u:name="BLACK SPADE SUIT"
+   u:entity="spades"
+   string="\(SP"
+   u:block="Miscellaneous Symbols"
+   />
+  <xsl:output-character
+   character="&#x2661;"
+   u:name="WHITE HEART SUIT"
+   string="\(HE"
+   u:block="Miscellaneous Symbols"
+   />
+  <xsl:output-character
+   character="&#x2662;"
+   u:name="WHITE DIAMOND SUIT"
+   string="\(DI"
+   u:block="Miscellaneous Symbols"
+   />
+  <xsl:output-character
+   character="&#x2663;"
+   u:name="BLACK CLUB SUIT"
+   u:entity="clubs"
+   string="\(CL"
+   u:block="Miscellaneous Symbols"
+   />
+  <xsl:output-character
+   character="&#x2664;"
+   u:name="WHITE SPADE SUIT"
+   string="\(SP"
+   u:block="Miscellaneous Symbols"
+   />
+  <xsl:output-character
+   character="&#x2665;"
+   u:name="BLACK HEART SUIT"
+   u:entity="hearts"
+   string="\(HE"
+   u:block="Miscellaneous Symbols"
+   />
+  <xsl:output-character
+   character="&#x2666;"
+   u:name="BLACK DIAMOND SUIT"
+   u:entity="diams"
+   string="\(DI"
+   u:block="Miscellaneous Symbols"
+   />
+  <xsl:output-character
+   character="&#x2667;"
+   u:name="WHITE CLUB SUIT"
+   string="\(CL"
+   u:block="Miscellaneous Symbols"
+   />
+
+  <!-- * ***************************************************************** -->
+  <!-- *   End: Miscellaneous Symbols -->
+  <!-- * ***************************************************************** -->
+
+  <!-- * ***************************************************************** -->
+  <!-- *   Begin: Dingbats -->
+  <!-- *     x2700 to x27be -->
+  <!-- *     No roff equiv for most of these; just map to something close -->
+  <!-- * ***************************************************************** -->
+
+  <xsl:output-character
+   character="&#x2713;"
+   u:name="CHECK MARK"
+   u:entity="check"
+   string="\(OK"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2714;"
+   u:name="HEAVY CHECK MARK"
+   string="\fB\(OK\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2715;"
+   u:name="MULTIPLICATION X"
+   string="\(mu"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2716;"
+   u:name="HEAVY MULTIPLICATION X"
+   string="\fB\(mu\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2717;"
+   u:name="BALLOT X"
+   u:entity="cross"
+   string="\(mu"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2718;"
+   u:name="HEAVY BALLOT X"
+   string="\fB\(mu\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2719;"
+   u:name="OUTLINED GREEK CROSS"
+   string="\fB+\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x271a;"
+   u:name="HEAVY GREEK CROSS"
+   string="\fB+\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x271b;"
+   u:name="OPEN CENTRE CROSS"
+   string="\fB+\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x271c;"
+   u:name="HEAVY OPEN CENTRE CROSS"
+   string="\fB+\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x271d;"
+   u:name="LATIN CROSS"
+   string="\fB+\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x271e;"
+   u:name="SHADOWED WHITE LATIN CROSS"
+   string="\fB+\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x271f;"
+   u:name="OUTLINED LATIN CROSS"
+   string="\fB+\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2720;"
+   u:name="MALTESE CROSS"
+   u:entity="malt"
+   string="\fB+\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2721;"
+   u:name="STAR OF DAVID"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2722;"
+   u:name="FOUR TEARDROP-SPOKED ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2723;"
+   u:name="FOUR BALLOON-SPOKED ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2724;"
+   u:name="HEAVY FOUR BALLOON-SPOKED ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2725;"
+   u:name="FOUR CLUB-SPOKED ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2726;"
+   u:name="BLACK FOUR POINTED STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2727;"
+   u:name="WHITE FOUR POINTED STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2729;"
+   u:name="STRESS OUTLINED WHITE STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x272a;"
+   u:name="CIRCLED WHITE STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x272b;"
+   u:name="OPEN CENTRE BLACK STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x272c;"
+   u:name="BLACK CENTRE WHITE STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x272d;"
+   u:name="OUTLINED BLACK STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x272e;"
+   u:name="HEAVY OUTLINED BLACK STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x272f;"
+   u:name="PINWHEEL STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2730;"
+   u:name="SHADOWED WHITE STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2731;"
+   u:name="HEAVY ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2732;"
+   u:name="OPEN CENTRE ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2733;"
+   u:name="EIGHT SPOKED ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2734;"
+   u:name="EIGHT POINTED BLACK STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2735;"
+   u:name="EIGHT POINTED PINWHEEL STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2736;"
+   u:name="SIX POINTED BLACK STAR"
+   u:entity="sext"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2737;"
+   u:name="EIGHT POINTED RECTILINEAR BLACK STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2738;"
+   u:name="HEAVY EIGHT POINTED RECTILINEAR BLACK STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2739;"
+   u:name="TWELVE POINTED BLACK STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x273a;"
+   u:name="SIXTEEN POINTED ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x273b;"
+   u:name="TEARDROP-SPOKED ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x273c;"
+   u:name="OPEN CENTRE TEARDROP-SPOKED ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x273d;"
+   u:name="HEAVY TEARDROP-SPOKED ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x273e;"
+   u:name="SIX PETALLED BLACK AND WHITE FLORETTE"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x273f;"
+   u:name="BLACK FLORETTE"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2740;"
+   u:name="WHITE FLORETTE"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2741;"
+   u:name="EIGHT PETALLED OUTLINED BLACK FLORETTE"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2742;"
+   u:name="CIRCLED OPEN CENTRE EIGHT POINTED STAR"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2743;"
+   u:name="HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2744;"
+   u:name="SNOWFLAKE"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2745;"
+   u:name="TIGHT TRIFOLIATE SNOWFLAKE"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2746;"
+   u:name="HEAVY CHEVRON SNOWFLAKE"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2747;"
+   u:name="SPARKLE"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2748;"
+   u:name="HEAVY SPARKLE"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2749;"
+   u:name="BALLOON-SPOKED ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x274a;"
+   u:name="EIGHT TEARDROP-SPOKED PROPELLER ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x274b;"
+   u:name="HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x274d;"
+   u:name="SHADOWED WHITE CIRCLE"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x274f;"
+   u:name="LOWER RIGHT DROP-SHADOWED WHITE SQUARE"
+   string="\(sq"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2750;"
+   u:name="UPPER RIGHT DROP-SHADOWED WHITE SQUARE"
+   string="\(sq"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2751;"
+   u:name="LOWER RIGHT SHADOWED WHITE SQUARE"
+   string="\(sq"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2752;"
+   u:name="UPPER RIGHT SHADOWED WHITE SQUARE"
+   string="\(sq"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2756;"
+   u:name="BLACK DIAMOND MINUS WHITE X"
+   string="*"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2758;"
+   u:name="LIGHT VERTICAL BAR"
+   string="\(bv"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2759;"
+   u:name="MEDIUM VERTICAL BAR"
+   string="\fB\(bv\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x275a;"
+   u:name="HEAVY VERTICAL BAR"
+   string="\fB\(bv\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x275b;"
+   u:name="HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT"
+   string="\fB\(oq\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x275c;"
+   u:name="HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT"
+   string="\fB\(cq\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x275d;"
+   u:name="HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT"
+   string="\fB\(lq\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x275e;"
+   u:name="HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT"
+   string="\fB\(rq\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2761;"
+   u:name="CURVED STEM PARAGRAPH SIGN ORNAMENT"
+   string="\(ps"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2762;"
+   u:name="HEAVY EXCLAMATION MARK ORNAMENT"
+   string="\fB!\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2763;"
+   u:name="HEAVY HEART EXCLAMATION MARK ORNAMENT"
+   string="\fB!\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2764;"
+   u:name="HEAVY BLACK HEART"
+   string="\fB\(HE\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2765;"
+   u:name="ROTATED HEAVY BLACK HEART BULLET"
+   string="\fB\(HE\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2766;"
+   u:name="FLORAL HEART"
+   string="\fB\(HE\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2767;"
+   u:name="ROTATED FLORAL HEART BULLET"
+   string="\fB\(HE\fR"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2776;"
+   u:name="DINGBAT NEGATIVE CIRCLED DIGIT ONE"
+   string="1"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2777;"
+   u:name="DINGBAT NEGATIVE CIRCLED DIGIT TWO"
+   string="2"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2778;"
+   u:name="DINGBAT NEGATIVE CIRCLED DIGIT THREE"
+   string="3"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2779;"
+   u:name="DINGBAT NEGATIVE CIRCLED DIGIT FOUR"
+   string="4"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x277a;"
+   u:name="DINGBAT NEGATIVE CIRCLED DIGIT FIVE"
+   string="5"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x277b;"
+   u:name="DINGBAT NEGATIVE CIRCLED DIGIT SIX"
+   string="6"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x277c;"
+   u:name="DINGBAT NEGATIVE CIRCLED DIGIT SEVEN"
+   string="7"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x277d;"
+   u:name="DINGBAT NEGATIVE CIRCLED DIGIT EIGHT"
+   string="8"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x277e;"
+   u:name="DINGBAT NEGATIVE CIRCLED DIGIT NINE"
+   string="9"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x277f;"
+   u:name="DINGBAT NEGATIVE CIRCLED NUMBER TEN"
+   string="10"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2780;"
+   u:name="DINGBAT CIRCLED SANS-SERIF DIGIT ONE"
+   string="1"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2781;"
+   u:name="DINGBAT CIRCLED SANS-SERIF DIGIT TWO"
+   string="2"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2782;"
+   u:name="DINGBAT CIRCLED SANS-SERIF DIGIT THREE"
+   string="3"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2783;"
+   u:name="DINGBAT CIRCLED SANS-SERIF DIGIT FOUR"
+   string="4"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2784;"
+   u:name="DINGBAT CIRCLED SANS-SERIF DIGIT FIVE"
+   string="5"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2785;"
+   u:name="DINGBAT CIRCLED SANS-SERIF DIGIT SIX"
+   string="6"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2786;"
+   u:name="DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN"
+   string="7"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2787;"
+   u:name="DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT"
+   string="8"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2788;"
+   u:name="DINGBAT CIRCLED SANS-SERIF DIGIT NINE"
+   string="9"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2789;"
+   u:name="DINGBAT CIRCLED SANS-SERIF NUMBER TEN"
+   string="10"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x278a;"
+   u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE"
+   string="1"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x278b;"
+   u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO"
+   string="2"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x278c;"
+   u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE"
+   string="3"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x278d;"
+   u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR"
+   string="4"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x278e;"
+   u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE"
+   string="5"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x278f;"
+   u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX"
+   string="6"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2790;"
+   u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN"
+   string="7"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2791;"
+   u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT"
+   string="8"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2792;"
+   u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE"
+   string="9"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2793;"
+   u:name="DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN"
+   string="10"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2794;"
+   u:name="HEAVY WIDE-HEADED RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x2799;"
+   u:name="HEAVY RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x279b;"
+   u:name="DRAFTING POINT RIGHTWARDS ARROW"
+   string="\(->"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x279c;"
+   u:name="HEAVY ROUND-TIPPED RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x279d;"
+   u:name="TRIANGLE-HEADED RIGHTWARDS ARROW"
+   string="\(->"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x279e;"
+   u:name="HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x279f;"
+   u:name="DASHED TRIANGLE-HEADED RIGHTWARDS ARROW"
+   string="\(->"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27a0;"
+   u:name="HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27a1;"
+   u:name="BLACK RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27a2;"
+   u:name="THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD"
+   string="\(->"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27a3;"
+   u:name="THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD"
+   string="\(->"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27a4;"
+   u:name="BLACK RIGHTWARDS ARROWHEAD"
+   string="\(->"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27a7;"
+   u:name="SQUAT BLACK RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27a8;"
+   u:name="HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27a9;"
+   u:name="RIGHT-SHADED WHITE RIGHTWARDS ARROW"
+   string="\(rA"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27aa;"
+   u:name="LEFT-SHADED WHITE RIGHTWARDS ARROW"
+   string="\(rA"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27ab;"
+   u:name="BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW"
+   string="\(rA"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27ac;"
+   u:name="FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW"
+   string="\(rA"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27ad;"
+   u:name="HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW"
+   string="\(rA"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27ae;"
+   u:name="HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW"
+   string="\(rA"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27af;"
+   u:name="NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW"
+   string="\(rA"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27b1;"
+   u:name="NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW"
+   string="\(rA"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27b2;"
+   u:name="CIRCLED HEAVY WHITE RIGHTWARDS ARROW"
+   string="\(rA"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27b3;"
+   u:name="WHITE-FEATHERED RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27b4;"
+   u:name="BLACK-FEATHERED SOUTH EAST ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27b5;"
+   u:name="BLACK-FEATHERED RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27b6;"
+   u:name="BLACK-FEATHERED NORTH EAST ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27b7;"
+   u:name="HEAVY BLACK-FEATHERED SOUTH EAST ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27b8;"
+   u:name="HEAVY BLACK-FEATHERED RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27b9;"
+   u:name="HEAVY BLACK-FEATHERED NORTH EAST ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27ba;"
+   u:name="TEARDROP-BARBED RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27bb;"
+   u:name="HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27bc;"
+   u:name="WEDGE-TAILED RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27bd;"
+   u:name="HEAVY WEDGE-TAILED RIGHTWARDS ARROW"
+   string="\fR\(->\fB"
+   u:block="Dingbats"
+   />
+  <xsl:output-character
+   character="&#x27be;"
+   u:name="OPEN-OUTLINED RIGHTWARDS ARROW"
+   string="\fR\(rA\fB"
+   u:block="Dingbats"
+   />
+
+  <!-- * ***************************************************************** -->
+  <!-- *   End: Dingbats -->
+  <!-- * ***************************************************************** -->
+
+  <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+  <!-- *   Miscellaneous Mathematical Symbols -->
+  <!-- *     x27c0 to x27ef -->
+  <!-- *   Supplemental Arrows -->
+  <!-- *     x27f0 to x297f -->
+  <!-- *   Miscellaneous Mathematical Symbols -->
+  <!-- *     x2980 to x29ff -->
+  <!-- *   Supplemental Mathematical Operators -->
+  <!-- *     x2a00 to x2aff -->
+  <!-- *   - no nothing - -->
+  <!-- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+  <!-- * ***************************************************************** -->
+  <!-- *   Begin: Alphabetic Presentation Forms -->
+  <!-- *     xfb00 to xfb04 -->
+  <!-- * ***************************************************************** -->
+
+  <xsl:output-character
+   character="&#xfb00;"
+   u:name="LATIN SMALL LIGATURE FF"
+   u:entity="fflig"
+   string="\(ff"
+   u:block="Alphabetic Presentation Forms"
+   />
+  <xsl:output-character
+   character="&#xfb01;"
+   u:name="LATIN SMALL LIGATURE FI"
+   u:entity="filig"
+   string="\(fi"
+   u:block="Alphabetic Presentation Forms"
+   />
+  <xsl:output-character
+   character="&#xfb02;"
+   u:name="LATIN SMALL LIGATURE FL"
+   u:entity="fllig"
+   string="\(fl"
+   u:block="Alphabetic Presentation Forms"
+   />
+  <xsl:output-character
+   character="&#xfb03;"
+   u:name="LATIN SMALL LIGATURE FFI"
+   u:entity="ffilig"
+   string="\(Fi"
+   u:block="Alphabetic Presentation Forms"
+   />
+  <xsl:output-character
+   character="&#xfb04;"
+   u:name="LATIN SMALL LIGATURE FFL"
+   u:entity="ffllig"
+   string="\(Fl"
+   u:block="Alphabetic Presentation Forms"
+   />
+
+  <!-- * ***************************************************************** -->
+  <!-- *   End: Alphabetic Presentation Forms -->
+  <!-- * ***************************************************************** -->
+
+  <!-- * ================================================================= -->
+
+  <!-- * Regarding x2060 vs. xFEFF, the document "Unicode Standard Annex #14, -->
+  <!-- * Line Breaking Properties"[1] says: -->
+  <!-- * -->
+  <!-- *   The word joiner character [x2060 a.k.a "WJ"] is the preferred -->
+  <!-- *   choice for an invisible character to keep other characters -->
+  <!-- *   together that would otherwise be split across the line at a direct -->
+  <!-- *   break. The character FEFF has the same effect, but because it is -->
+  <!-- *   also used in an unrelated way as a byte order mark, the use of the -->
+  <!-- *   WJ as the preferred interword glue simplifies the handling of FEFF. -->
+  <!-- * -->
+  <!-- * [1] http://www.unicode.org/reports/tr14/ -->
+  <!-- * -->
+  <!-- * We include it here anyway & map to the roff zero-width no-break -->
+  <xsl:output-character
+   character="&#xfeff;"
+   u:name="ZERO WIDTH NO-BREAK SPACE"
+   string="\&amp;"
+   u:block="Arabic Presentation Forms-B"
+   />
+</xsl:character-map>
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/manpages/docbook.xsl b/applications/content/template/docbook/manpages/docbook.xsl
new file mode 100644
index 0000000..6f39f7c
--- /dev/null
+++ b/applications/content/template/docbook/manpages/docbook.xsl
@@ -0,0 +1,311 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:ng="http://docbook.org/docbook-ng"
+                xmlns:db="http://docbook.org/ns/docbook"
+                exclude-result-prefixes="exsl"
+                version='1.0'>
+
+  <xsl:import href="../html/docbook.xsl"/>
+  <xsl:import href="../html/manifest.xsl"/>
+  <!-- * html-synop.xsl file is generated by build -->
+  <xsl:import href="html-synop.xsl"/>
+  <xsl:output method="text"
+              encoding="UTF-8"
+              indent="no"/>
+  <!-- ********************************************************************
+       $Id$
+       ********************************************************************
+
+       This file is part of the XSL DocBook Stylesheet distribution.
+       See ../README or http://docbook.sf.net/release/xsl/current/ for
+       copyright and other information.
+
+       ******************************************************************** -->
+
+  <!-- ==================================================================== -->
+
+  <xsl:include href="../common/refentry.xsl"/>
+  <xsl:include href="../common/charmap.xsl"/>
+  <xsl:include href="param.xsl"/>
+  <xsl:include href="utility.xsl"/>
+  <xsl:include href="info.xsl"/>
+  <xsl:include href="other.xsl"/>
+  <xsl:include href="refentry.xsl"/>
+  <xsl:include href="block.xsl"/>
+  <xsl:include href="inline.xsl"/>
+  <xsl:include href="synop.xsl"/>
+  <xsl:include href="lists.xsl"/>
+  <xsl:include href="endnotes.xsl"/>
+  <xsl:include href="table.xsl"/>
+  <xsl:include href="pi.xsl"/>
+
+  <!-- * we rename the following just to avoid using params with "man" -->
+  <!-- * prefixes in the table.xsl stylesheet (because that stylesheet -->
+  <!-- * can potentially be reused for more than just man output) -->
+  <xsl:param name="tbl.font.headings" select="$man.font.table.headings"/>
+  <xsl:param name="tbl.font.title" select="$man.font.table.title"/>
+
+  <xsl:param name="stylesheet.result.type" select="'manpages'"/>
+
+  <!-- ==================================================================== -->
+
+  <xsl:template match="/">
+    <!-- * Get a title for current doc so that we let the user -->
+    <!-- * know what document we are processing at this point. -->
+    <xsl:variable name="doc.title">
+      <xsl:call-template name="get.doc.title"/>
+    </xsl:variable>
+    <xsl:choose>
+      <!-- * when we find a namespaced document, strip the -->
+      <!-- * namespace and then continue processing it. -->
+      <xsl:when test="//self::db:*">
+        <xsl:call-template name="log.message">
+          <xsl:with-param name="level">Note</xsl:with-param>
+          <xsl:with-param name="source" select="$doc.title"/>
+          <xsl:with-param name="context-desc">
+            <xsl:text>namesp. cut</xsl:text>
+          </xsl:with-param>
+          <xsl:with-param name="message">
+            <xsl:text>stripped namespace before processing</xsl:text>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:variable name="stripns">
+          <xsl:apply-templates mode="stripNS"/>
+        </xsl:variable>
+        <xsl:call-template name="log.message">
+          <xsl:with-param name="level">Note</xsl:with-param>
+          <xsl:with-param name="source" select="$doc.title"/>
+          <xsl:with-param name="context-desc">
+            <xsl:text>namesp. cut</xsl:text>
+          </xsl:with-param>
+          <xsl:with-param name="message">
+            <xsl:text>processing stripped document</xsl:text>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:apply-templates select="exsl:node-set($stripns)"/>
+      </xsl:when>
+      <xsl:when test="//*[local-name() = 'refentry']">
+        <!-- * Check to see if we have any refentry children in this -->
+        <!-- * document; if so, process them. The reason we use -->
+        <!-- * local-name()=refentry (instead of just //refentry) to to -->
+        <!-- * check for refentry children is because this stylsheet is -->
+        <!-- * also post-processed by the stylesheet build to create the -->
+        <!-- * manpages/profile-docbook.xsl, and the refentry child check -->
+        <!-- * in the profile-docbook.xsl stylesheet won't work if we do -->
+        <!-- * a simple //refentry check. -->
+        <xsl:apply-templates select="//refentry"/>
+        <!-- * if $man.output.manifest.enabled is non-zero, -->
+        <!-- * generate a manifest file -->
+        <xsl:if test="not($man.output.manifest.enabled = 0)">
+          <xsl:call-template name="generate.manifest">
+            <xsl:with-param name="filename">
+              <xsl:choose>
+                <xsl:when test="not($man.output.manifest.filename = '')">
+                  <!-- * If a name for the manifest file is specified, -->
+                  <!-- * use that name. -->
+                  <xsl:value-of select="$man.output.manifest.filename"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <!-- * Otherwise, if user has unset -->
+                  <!-- * $man.output.manifest.filename, default to -->
+                  <!-- * using "MAN.MANIFEST" as the filename. Because -->
+                  <!-- * $man.output.manifest.enabled is non-zero and -->
+                  <!-- * so we must have a filename in order to -->
+                  <!-- * generate the manifest. -->
+                  <xsl:text>MAN.MANIFEST</xsl:text>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * Otherwise, the document does not contain any -->
+        <!-- * refentry elements, so log/emit message and stop. -->
+        <xsl:call-template name="log.message">
+          <xsl:with-param name="level">Erro</xsl:with-param>
+          <xsl:with-param name="source" select="$doc.title"/>
+          <xsl:with-param name="context-desc">
+            <xsl:text> no refentry</xsl:text>
+          </xsl:with-param>
+          <xsl:with-param name="message">
+            <xsl:text>No refentry elements found</xsl:text>
+            <xsl:if test="$doc.title != ''">
+            <xsl:text> in "</xsl:text>
+              <xsl:choose>
+                <xsl:when test="string-length($doc.title) &gt; 30">
+                  <xsl:value-of select="substring($doc.title,1,30)"/>
+                  <xsl:text>...</xsl:text>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="$doc.title"/>
+                </xsl:otherwise>
+              </xsl:choose>
+              <xsl:text>"</xsl:text>
+            </xsl:if>
+            <xsl:text>.</xsl:text>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- ============================================================== -->
+
+  <xsl:template match="refentry">
+    <xsl:param name="lang">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:param>
+    <!-- * Just use the first refname found as the "name" of the man -->
+    <!-- * page (which may different from the "title"...) -->
+    <xsl:variable name="first.refname" select="refnamediv[1]/refname[1]"/>
+
+    <xsl:call-template name="root.messages">
+      <xsl:with-param name="refname" select="$first.refname"/>
+    </xsl:call-template>
+
+    <!-- * Because there are several times when we need to check *info of -->
+    <!-- * each refentry and its ancestors, we get those and store the -->
+    <!-- * data from them as a node-set in memory. -->
+
+    <!-- * Make a node-set with contents of *info -->
+    <xsl:variable name="get.info"
+                  select="ancestor-or-self::*/*[substring(local-name(),
+                          string-length(local-name()) - 3) = 'info']"
+                  />
+    <xsl:variable name="info" select="exsl:node-set($get.info)"/>
+
+    <!-- * The get.refentry.metadata template is in -->
+    <!-- * ../common/refentry.xsl. It looks for metadata in $info -->
+    <!-- * and in various other places and then puts it into a form -->
+    <!-- * that's easier for us to digest. -->
+    <xsl:variable name="get.refentry.metadata">
+      <xsl:call-template name="get.refentry.metadata">
+        <xsl:with-param name="refname" select="$first.refname"/>
+        <xsl:with-param name="info" select="$info"/>
+        <xsl:with-param name="prefs" select="$refentry.metadata.prefs"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="refentry.metadata" select="exsl:node-set($get.refentry.metadata)"/>
+
+    <!-- * Assemble the various parts into a complete page, then store into -->
+    <!-- * $manpage.contents so that we can manipluate them further. -->
+    <xsl:variable name="manpage.contents">
+      <!-- * preprocessor invocation (need for legacy AT&T troff use) -->
+      <!-- * this tells troff to pre-process the page through tbl(1) -->
+      <!-- * (groff can figure it out automatically, but AT&T troff can't) -->
+      <xsl:text>'\" t&#10;</xsl:text>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * top.comment = commented-out section at top of roff source -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:call-template name="top.comment">
+        <xsl:with-param name="info"       select="$info"/>
+        <xsl:with-param name="date"       select="$refentry.metadata/date"/>
+        <xsl:with-param name="title"      select="$refentry.metadata/title"/>
+        <xsl:with-param name="manual"     select="$refentry.metadata/manual"/>
+        <xsl:with-param name="source"     select="$refentry.metadata/source"/>
+        <xsl:with-param name="refname"    select="$first.refname"/>
+      </xsl:call-template>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * TH.title.line = title line in header/footer of man page -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:call-template name="TH.title.line">
+        <!-- * .TH TITLE  section  extra1  extra2  extra3 -->
+        <!-- *  -->
+        <!-- * According to the man(7) man page: -->
+        <!-- *  -->
+        <!-- * extra1 = date,   "the date of the last revision" -->
+        <!-- * extra2 = source, "the source of the command" -->
+        <!-- * extra3 = manual, "the title of the manual -->
+        <!-- *                  (e.g., Linux Programmer's Manual)" -->
+        <!-- * -->
+        <!-- * So, we end up with: -->
+        <!-- *  -->
+        <!-- * .TH TITLE  section  date  source  manual -->
+        <!-- * -->
+        <xsl:with-param name="title"   select="$refentry.metadata/title"/>
+        <xsl:with-param name="section" select="$refentry.metadata/section"/>
+        <xsl:with-param name="extra1"  select="$refentry.metadata/date"/>
+        <xsl:with-param name="extra2"  select="$refentry.metadata/source"/>
+        <xsl:with-param name="extra3"  select="$refentry.metadata/manual"/>
+      </xsl:call-template>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * (re)define some macros -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:call-template name="define.portability.macros"/>
+      <xsl:if test="not($man.output.better.ps.enabled = 0)">
+        <xsl:call-template name="define.macros"/>
+      </xsl:if>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * Set default hyphenation, justification, indentation, and -->
+      <!-- * line-breaking -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:call-template name="set.default.formatting"/>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * Main body of man page -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:text>.\" -----------------------------------------------------------------&#10;</xsl:text>
+      <xsl:text>.\" * MAIN CONTENT STARTS HERE *&#10;</xsl:text>
+      <xsl:text>.\" -----------------------------------------------------------------&#10;</xsl:text>
+      <xsl:apply-templates/>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * AUTHOR section -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:if test="not($man.authors.section.enabled = 0)">
+        <xsl:call-template name="author.section">
+          <xsl:with-param name="info" select="$info"/>
+        </xsl:call-template>
+      </xsl:if>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * COPYRIGHT section -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:if test="not($man.copyright.section.enabled = 0)">
+        <xsl:call-template name="copyright.section">
+          <xsl:with-param name="info" select="$info"/>
+        </xsl:call-template>
+      </xsl:if>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * NOTES list (only if user wants endnotes numbered and/or listed) -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:if test="$man.endnotes.list.enabled != 0 or
+                    $man.endnotes.are.numbered != 0">
+        <xsl:call-template name="endnotes.list"/>
+      </xsl:if>
+    </xsl:variable> <!-- * end of manpage.contents -->
+
+    <!-- * Prepare the page contents for final output, then store in -->
+    <!-- * $manpage.contents.prepared so the we can pass it on to the -->
+    <!-- * write.text.chunk() function -->
+    <xsl:variable name="manpage.contents.prepared">
+      <!-- * "Preparing" the page contents involves, at a minimum, -->
+      <!-- * doubling any backslashes found (so they aren't interpreted -->
+      <!-- * as roff escapes). -->
+      <!-- * -->
+      <!-- * If $charmap.enabled is true, "preparing" the page contents also -->
+      <!-- * involves applying a character map to convert Unicode symbols and -->
+      <!-- * special characters into corresponding roff escape sequences. -->
+      <xsl:call-template name="prepare.manpage.contents">
+        <xsl:with-param name="content" select="$manpage.contents"/>
+      </xsl:call-template>
+    </xsl:variable>
+    
+    <!-- * Write the prepared page contents to disk to create -->
+    <!-- * the final man page. -->
+    <xsl:call-template name="write.man.file">
+      <xsl:with-param name="name" select="$first.refname"/>
+      <xsl:with-param name="section" select="$refentry.metadata/section"/>
+      <xsl:with-param name="lang" select="$lang"/>
+      <xsl:with-param name="content" select="$manpage.contents.prepared"/>
+    </xsl:call-template>
+
+    <!-- * Generate "stub" (alias) pages (if any needed) -->
+    <xsl:call-template name="write.stubs">
+      <xsl:with-param name="first.refname" select="$first.refname"/>
+      <xsl:with-param name="section" select="$refentry.metadata/section"/>
+      <xsl:with-param name="lang" select="$lang"/>
+    </xsl:call-template>
+
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/manpages/endnotes.xsl b/applications/content/template/docbook/manpages/endnotes.xsl
new file mode 100644
index 0000000..9a2a433
--- /dev/null
+++ b/applications/content/template/docbook/manpages/endnotes.xsl
@@ -0,0 +1,586 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:ng="http://docbook.org/docbook-ng"
+                xmlns:db="http://docbook.org/ns/docbook"
+                xmlns:xlink="http://www.w3.org/1999/xlink"
+                exclude-result-prefixes="db ng exsl xlink"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- * -->
+<!-- * The templates in this file handle elements whose contents can't -->
+<!-- * be displayed completely within the main text flow in output, but -->
+<!-- * instead need to be displayed "out of line". Those elements are: -->
+<!-- * -->
+<!-- *   - elements providing annotative text (annotation|alt|footnote) -->
+<!-- *   - elements pointing at external resources (ulink, link, and -->
+<!-- *     any elements with xlink:href attributes; and imagedata, -->
+<!-- *     audiodata, and videodata - which (using their fileref -->
+<!-- *     attribute) reference external files -->
+<!-- * -->
+<!-- * Within this stylesheet, the above are collectively referred to as -->
+<!-- * a "notesources". This stylesheet handles those notesources in -->
+<!-- * this way: -->
+<!-- * -->
+<!-- * 1. Constructs a numbered in-memory index of all unique "earmarks“ -->
+<!-- *    of all notesources in the document. For each link, the -->
+<!-- *    earmark is the value of its url or xlink:href attribute; for -->
+<!-- *    each imagedata|audiodata|videodata: the value of its fileref -->
+<!-- *    attribute; for each annotative element: its content. -->
+<!-- * -->
+<!-- *    Notesources with the same earmark are assigned the same -->
+<!-- *    number. -->
+<!-- * -->
+<!-- *    By design, that index excludes any element whose string value -->
+<!-- *    is identical to the value of its url xlink:href attribute). -->
+<!-- * -->
+<!-- * 2. Puts a numbered marker inline to mark the place where the -->
+<!-- *    notesource occurs in the main text flow. -->
+<!-- * -->
+<!-- * 3. Generates a numbered endnotes list (titled NOTES in English) -->
+<!-- *    at the end of the man page, with the contents of each -->
+<!-- *    notesource. -->
+<!-- * -->
+<!-- * Note that table footnotes are not listed in the endnotes list, -->
+<!-- * and are not handled by this stylesheet (they are instead handled -->
+<!-- * by the table.xsl stylesheet). -->
+<!-- * -->
+<!-- * Also, we don't get notesources in *info sections or Refmeta or -->
+<!-- * Refnamediv or Indexterm, because, in manpages output, contents of -->
+<!-- * those are either suppressed or are displayed out of document -->
+<!-- * order - for example, the Info/Author content gets moved to the -->
+<!-- * end of the page. So, if we were to number notesources in the -->
+<!-- * Author content, it would "throw off" the numbering at the -->
+<!-- * beginning of the main text flow. -->
+<!-- * -->
+<!-- * And for the record, one reason we don't use xsl:key to index the -->
+<!-- * earmarks is that we need to get and check the sets of -->
+<!-- * earmarks for uniqueness per-Refentry (not per-document). -->
+<!-- * -->
+<!-- * FIXME: -->
+<!-- * as with "repeat" URLS, alt instances that have the same string value -->
+<!-- * as preceding ones (likely to occur for repeat acroynyms and -->
+<!-- * abbreviations) should be listed only once in the endnotes list, -->
+<!-- * and numbered accordingly inline; split man.indent.width into -->
+<!-- * man.indent.width.value (default 4) and man.indent.width.units -->
+<!-- * (default n); also, if the first child of notesource is some block -->
+<!-- * content other than a (non-formal) paragraph, the current code -->
+<!-- * will probably end up generating a blank line after the -->
+<!-- * corresponding number in the endnotes list... we should probably -->
+<!-- * try to instead display the title of that block content there (if -->
+<!-- * there is one: e.g., the list title, admonition title, etc.) -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="get.all.earmark.indexes.in.current.document">
+  <!-- * Here we create a tree to hold indexes of all earmarks in -->
+  <!-- * the current document. If the current document contains -->
+  <!-- * multiple refentry instances, then this tree will contain -->
+  <!-- * multiple indexes. -->
+  <xsl:if test="$man.endnotes.are.numbered != 0">
+    <!-- * Only create earmark indexes if user wants numbered endnotes -->
+    <xsl:for-each select="//refentry">
+      <earmark.index>
+        <xsl:attribute name="idref">
+          <xsl:value-of select="generate-id()"/>
+        </xsl:attribute>
+        <xsl:for-each
+            select=".//*[self::*[@xlink:href]
+                    or self::ulink
+                    or self::imagedata
+                    or self::audiodata
+                    or self::videodata
+                    or self::footnote[not(ancestor::table)]
+                    or self::annotation
+                    or self::alt]
+                    [(node()
+                      or self::imagedata
+                      or self::audiodata
+                      or self::videodata
+                      )
+                    and not(ancestor::refentryinfo)
+                    and not(ancestor::info)
+                    and not(ancestor::docinfo)
+                    and not(ancestor::refmeta)
+                    and not(ancestor::refnamediv)
+                    and not(ancestor::indexterm)
+                    and not(. = @url)
+                    and not(. = @xlink:href)
+                    and not(@url =
+                    preceding::ulink[node()
+                    and not(ancestor::refentryinfo)
+                    and not(ancestor::info)
+                    and not(ancestor::docinfo)
+                    and not(ancestor::refmeta)
+                    and not(ancestor::refnamediv)
+                    and not(ancestor::indexterm)
+                    and (generate-id(ancestor::refentry)
+                    = generate-id(current()))]/@url)
+                    and not(@xlink:href =
+                    preceding::*[@xlink:href][node()
+                    and not(ancestor::refentryinfo)
+                    and not(ancestor::info)
+                    and not(ancestor::docinfo)
+                    and not(ancestor::refmeta)
+                    and not(ancestor::refnamediv)
+                    and not(ancestor::indexterm)
+                    and (generate-id(ancestor::refentry)
+                    = generate-id(current()))]/@xlink:href)
+                    and not(@fileref =
+                    preceding::*[@fileref][
+                    not(ancestor::refentryinfo)
+                    and not(ancestor::info)
+                    and not(ancestor::docinfo)
+                    and not(ancestor::refmeta)
+                    and not(ancestor::refnamediv)
+                    and not(ancestor::indexterm)
+                    and (generate-id(ancestor::refentry)
+                    = generate-id(current()))]/@fileref)]">
+          <earmark>
+            <xsl:attribute name="id">
+              <xsl:value-of select="generate-id()"/>
+            </xsl:attribute>
+            <xsl:attribute name="number">
+              <xsl:value-of select="position()"/>
+            </xsl:attribute>
+            <xsl:if test="@url|@xlink:href|@fileref">
+              <!-- * Only add a uri attribute if the notesource is -->
+              <!-- * a link or an element that references an external -->
+              <!-- * (an imagedata, audiodata, or videodata element) -->
+              <xsl:attribute name="uri">
+                <xsl:value-of select="@url|@xlink:href|@fileref"/>
+              </xsl:attribute>
+            </xsl:if>
+            <xsl:copy>
+              <xsl:copy-of select="node()"/>
+            </xsl:copy>
+          </earmark>
+        </xsl:for-each>
+      </earmark.index>
+    </xsl:for-each>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*[@xlink:href]|ulink
+  |imagedata|audiodata|videodata
+  |footnote[not(ancestor::table)]
+  |annotation|alt">
+  <xsl:variable name="refname" select="ancestor::refentry/refnamediv[1]/refname[1]"/>
+  <xsl:variable name="all.earmark.indexes.in.current.document.rtf">
+    <xsl:call-template name="get.all.earmark.indexes.in.current.document"/>
+  </xsl:variable>
+  <xsl:variable name="all.earmark.indexes.in.current.document"
+                select="exsl:node-set($all.earmark.indexes.in.current.document.rtf)"/>
+  <xsl:variable name="all.earmarks.in.current.refentry.rtf">
+    <!-- * get the set of all earmarks for the ancestor Refentry of -->
+    <!-- * this notesource -->
+    <xsl:copy-of
+        select="$all.earmark.indexes.in.current.document/earmark.index
+                [@idref =
+                generate-id(current()/ancestor::refentry)]/earmark"/>
+  </xsl:variable>
+  <xsl:variable name="all.earmarks.in.current.refentry"
+                select="exsl:node-set($all.earmarks.in.current.refentry.rtf)"/>
+
+  <!-- * identify the earmark for the current element -->
+  <xsl:variable name="earmark">
+    <xsl:choose>
+      <xsl:when test="@url|@xlink:href">
+        <xsl:value-of select="@url|@xlink:href"/>
+      </xsl:when>
+      <xsl:when test="@fileref">
+        <xsl:value-of select="@fileref"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="generate-id()"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="notesource.number">
+    <!-- * Get the number for this notesource -->
+    <!-- * -->
+    <!-- * If this is an imagedata, audiodata, or videodata element -->
+    <!-- * OR if it's a non-empty element AND its string value is not -->
+    <!-- * equal to the value of its url or xlink:href attribute (if -->
+    <!-- * it has one) AND user wants endnotes numbered, only then -->
+    <!-- * do we output a number for it -->
+    <xsl:if test="(self::imagedata or
+      self::audiodata or
+      self::videodata or
+      (node()
+      and not(. = @url)
+      and not(. = @xlink:href))
+      )
+      and $man.endnotes.are.numbered != 0">
+      <!-- * To select the number for this notesource, we -->
+      <!-- * check the index of all earmarks for the current refentry -->
+      <!-- * and find the number of the indexed earmark which matches -->
+      <!-- * this notesource's earmark. -->
+      <!-- * Note that multiple notesources may share the same -->
+      <!-- * numbered earmark; in that case, they get the same number. -->
+      <!-- * -->
+      <xsl:choose>
+        <xsl:when test="self::ulink or
+          self::*[@xlink:href] or
+          self::imagedata or
+          self::audiodata or
+          self::videodata">
+          <xsl:value-of select="$all.earmarks.in.current.refentry/earmark[@uri = $earmark]/@number"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$all.earmarks.in.current.refentry/earmark[@id  = $earmark]/@number"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="notesource.contents">
+    <xsl:choose>
+      <!-- * check to see if the element is empty or not -->
+      <xsl:when test="node()">
+        <!-- * this is a non-empty node, so process its contents -->
+        <xsl:apply-templates/>
+        <xsl:if test="../footnote or ../annotation">
+          <!-- * if this element is a footnote or annotation, we need to -->
+          <!-- * do some further checking on it, so we can emit warnings -->
+          <!-- * about potential problems -->
+        <xsl:for-each select="node()">
+          <xsl:if test="local-name() != 'para' and
+                        local-name() != 'simpara' and
+                        local-name() !=''">
+            <!-- * for each node we find as a child of a footnote or -->
+            <!-- * annotation, if it's not a para or a text node, emit a -->
+            <!-- * warning... because in manpages output, we can't render -->
+            <!-- * block-level child content of an endnote properly unless -->
+            <!-- * it's wrapped in a para that has some "prefatory" text -->
+            <xsl:variable name="parent-name" select="local-name(..)"/>
+            <xsl:variable name="endnote-number">
+              <xsl:call-template name="pad-string">
+                <!-- * endnote number may be 2 digits, so pad it with a space -->
+                <!-- * if we have only 1 digit -->
+                <xsl:with-param name="padVar" select="concat('#',$notesource.number)"/>
+                <xsl:with-param name="length" select="3"/>
+              </xsl:call-template>
+            </xsl:variable>
+            <xsl:call-template name="log.message">
+              <xsl:with-param name="level">Warn</xsl:with-param>
+              <xsl:with-param name="source" select="$refname"/>
+              <xsl:with-param name="context-desc">
+                <xsl:text>endnote </xsl:text>
+                <xsl:value-of select="$endnote-number"/>
+              </xsl:with-param>
+              <xsl:with-param name="message">
+                <xsl:text>Bad: </xsl:text>
+                <xsl:value-of select="$parent-name"/> 
+                <!-- * figure out which occurance of this element type this -->
+                <!-- * instance is and output a number in square brackets so -->
+                <!-- * that end-user can know which element to fix -->
+                <xsl:text>[</xsl:text>
+                <xsl:value-of select="count(preceding::*[local-name() = $parent-name]) + 1"/>
+                <xsl:text>]</xsl:text>
+                <xsl:text> in source</xsl:text>
+              </xsl:with-param>
+            </xsl:call-template>
+            <xsl:call-template name="log.message">
+              <xsl:with-param name="level">Note</xsl:with-param>
+              <xsl:with-param name="source" select="$refname"/>
+              <xsl:with-param name="context-desc">
+                <xsl:text>endnote </xsl:text>
+                <xsl:value-of select="$endnote-number"/>
+              </xsl:with-param>
+              <xsl:with-param name="message">
+                <xsl:text>Has: </xsl:text>
+                <xsl:value-of select="$parent-name"/> 
+                <xsl:text>/</xsl:text>
+                <xsl:value-of select="local-name(.)"/>
+              </xsl:with-param>
+            </xsl:call-template>
+            <xsl:call-template name="log.message">
+              <xsl:with-param name="level">Note</xsl:with-param>
+              <xsl:with-param name="source" select="$refname"/>
+              <xsl:with-param name="context-desc">
+                <xsl:text>endnote </xsl:text>
+                <xsl:value-of select="$endnote-number"/>
+              </xsl:with-param>
+              <xsl:with-param name="message">
+                <xsl:text>Fix: </xsl:text>
+                <xsl:value-of select="$parent-name"/> 
+                <xsl:text>/</xsl:text>
+                <xsl:text>para/</xsl:text>
+                <xsl:value-of select="local-name(.)"/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:if>
+        </xsl:for-each>
+      </xsl:if>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * Otherwise this is an empty link or an empty imagedata, -->
+        <!-- * audiodata, or videodata element, so we just get the -->
+        <!-- * value of its url, xlink:href, or fileref attribute. -->
+        <xsl:if test="$man.hyphenate.urls = 0
+          and $man.break.after.slash = 0">
+          <!-- * Add hyphenation suppression in URL output only if -->
+          <!-- * break.after.slash is also non-zero -->
+          <xsl:call-template name="suppress.hyphenation"/>
+          <xsl:text>\%</xsl:text>
+        </xsl:if>
+        <xsl:value-of select="$earmark"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="self::ulink or self::*[@xlink:href]">
+    <xsl:variable name="link.wrapper">
+      <xsl:value-of select="normalize-space($notesource.contents)"/>
+    </xsl:variable>
+    <xsl:text>\m[blue]</xsl:text>
+    <!-- * This is a hyperlink, so we need to determine if the user wants -->
+    <!-- * font formatting applied to it, and if so, what font -->
+    <xsl:choose>
+      <xsl:when test="$man.font.links = 'B'">
+        <xsl:call-template name="bold">
+          <xsl:with-param name="node" select="exsl:node-set($link.wrapper)"/>
+          <xsl:with-param name="context" select="."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="$man.font.links = 'I'">
+        <xsl:call-template name="italic">
+          <xsl:with-param name="node" select="exsl:node-set($link.wrapper)"/>
+          <xsl:with-param name="context" select="."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="$man.font.links = ''">
+        <!-- * if man.font.links is empty, user doesn't want links -->
+        <!-- * underlined, so just display content -->
+        <xsl:value-of select="$notesource.contents"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * otherwise the user has specified an unsupported value for -->
+        <!-- * man.font.links, so emit a warning and don't apply any font -->
+        <!-- * formatting -->
+        <xsl:message>
+          <xsl:call-template name="log.message">
+            <xsl:with-param name="level">Warn</xsl:with-param>
+            <xsl:with-param name="source" select="$refname"/>
+            <xsl:with-param name="context-desc">
+              <xsl:text>link font</xsl:text>
+            </xsl:with-param>
+            <xsl:with-param name="message">
+              <xsl:text>invalid $man.font.links value: </xsl:text>
+              <xsl:text>'</xsl:text>
+              <xsl:value-of select="$man.font.links"/>
+              <xsl:text>'</xsl:text>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:message>
+        <xsl:value-of select="$notesource.contents"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>\m[]</xsl:text>
+  </xsl:if>
+
+  <xsl:if test="$notesource.number != ''">
+    <!-- * Format the number by placing it in square brackets. -->
+    <!-- * Also, set the number in font-size -2, and superscripted (\u -->
+    <!-- * means to move up half a line vertically) -->
+    <xsl:text>\&amp;\s-2\u[</xsl:text>
+    <xsl:value-of select="$notesource.number"/>
+    <xsl:text>]\d\s+2</xsl:text>
+    <!-- * Revert superscripting (\d means to move down half a line), and -->
+    <!-- * move the font-size back to what it was before. -->
+    <!-- * Note that the reason for the \& before the opening bracket -->
+    <!-- * is to prevent any possible linebreak from being introduced -->
+    <!-- * between the opening bracket and the following text. -->
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="endnotes.list">
+  <!-- We have stored earmark indexes for all refentry instances in the -->
+  <!-- current document, with the ID for each index being the same ID as -->
+  <!-- its corresponding refentry; so we now need to get the ID for the -->
+  <!-- current refentry so we can grab its corresponding earmark index -->
+  <xsl:variable name="current.refentry.id">
+    <xsl:value-of select="generate-id(.)"/>
+  </xsl:variable>
+
+  <xsl:variable name="endnotes.rtf">
+    <xsl:variable name="all.earmark.indexes.in.current.document.rtf">
+      <xsl:call-template  name="get.all.earmark.indexes.in.current.document"/>
+    </xsl:variable>
+    <xsl:variable name="all.earmark.indexes.in.current.document"
+                  select="exsl:node-set($all.earmark.indexes.in.current.document.rtf)"/>
+      <xsl:copy-of
+          select="$all.earmark.indexes.in.current.document/earmark.index
+                  [@idref = $current.refentry.id]/earmark"/>
+  </xsl:variable>
+
+  <xsl:variable name="endnotes" select="exsl:node-set($endnotes.rtf)"/>
+
+  <!-- * check to see if we have actually found any content to use as -->
+  <!-- * endnotes; if we have, we generate the endnotes list, if not, -->
+  <!-- * we do nothing -->
+  <xsl:if test="$endnotes/node()">
+    <xsl:call-template name="format.endnotes.list">
+      <xsl:with-param name="endnotes" select="$endnotes"/>
+    </xsl:call-template>
+  </xsl:if>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="format.endnotes.list">
+  <xsl:param name="endnotes"/>
+
+  <!-- * ======= make the endnotes-list section heading ============= -->
+  <xsl:call-template name="make.subheading">
+    <xsl:with-param name="title">
+      <xsl:choose>
+        <!-- * if user has specified a heading, use that -->
+        <xsl:when test="$man.endnotes.list.heading != ''">
+          <xsl:value-of select="$man.endnotes.list.heading"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- * otherwise, get localized heading from gentext -->
+          <!-- * (in English, NOTES) -->
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'Notes'"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:with-param>
+  </xsl:call-template>
+
+  <!-- * ================ process each earmark ====================== -->
+  <xsl:for-each select="$endnotes/earmark">
+    <!-- * make paragraph with hanging indent, and starting with a -->
+    <!-- * number in the form " 1." (padded to $man.indent.width - 1) -->
+    <xsl:text>.IP</xsl:text>
+    <xsl:text> "</xsl:text>
+    <xsl:variable name="endnote.number">
+      <xsl:value-of select="@number"/>
+      <xsl:text>.</xsl:text>
+    </xsl:variable>
+    <xsl:call-template name="pad-string">
+      <xsl:with-param name="padVar" select="$endnote.number"/>
+      <!-- FIXME: the following assumes that $man.indent.width is in -->
+      <!-- en's; also, this should probably use $list.indent instead -->
+      <xsl:with-param name="length" select="$man.indent.width - 1"/>
+    </xsl:call-template>
+    <xsl:text>"</xsl:text>
+    <xsl:if test="not($list-indent = '')">
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$list-indent"/>
+    </xsl:if>
+    <xsl:text>&#10;</xsl:text>
+
+    <!-- * ========================================================= -->
+    <!-- *           print the notesource/endnote contents -->
+    <!-- * ========================================================= -->
+    <xsl:choose>
+      <xsl:when test="*/node()">
+        <!-- * if the earmark has non-empty child content, then -->
+        <!-- * its corresponding notesource is either a link or -->
+        <!-- * an instance of annotative text, so we want to -->
+        <!-- * display that content -->
+        <xsl:choose>
+          <xsl:when test="*/node()[name(.)!='']">
+            <!-- * if node is not text only, then process it as-is -->
+            <xsl:apply-templates select="*/node()"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- * otherwise node is text-only, so normalize it -->
+            <xsl:value-of select="normalize-space(*/node())"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * otherwise, this earmark has empty content, -->
+        <!-- * which means its corresponding notesource is an -->
+        <!-- * imagedata, audiodata, or videodata instance; in -->
+        <!-- * that case, we use the value of the notesource's -->
+        <!-- * @fileref attribute (which is stored in the -->
+        <!-- * earmark uri attribute) as the "contents" for -->
+        <!-- * this endnote/notesource -->
+        <xsl:call-template name="display.uri">
+          <xsl:with-param name="uri" select="@uri"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>&#10;</xsl:text>
+
+    <!-- * ========================================================= -->
+    <!-- *           print the URL for links -->
+    <!-- * ========================================================= -->
+    <!-- * In addition to the notesource contents, if the -->
+    <!-- * notesource is a link, we display the URL for the link. -->
+    <!-- * But for notesources that are imagedata, audiodata, or -->
+    <!-- * videodata instances, we don't want to (re)display the -->
+    <!-- * URL for those here, because for those elements, the -->
+    <!-- * notesource contents are the URL (the value of the -->
+    <!-- * @fileref attribute), and we have already rendered them. -->
+    <!-- * -->
+    <!-- * We know an earmark is a link if it has non-empty child -->
+    <!-- * content and a uri attribute; so we check for that -->
+    <!-- * condition here. -->
+    <xsl:if test="*/node() and @uri">
+      <xsl:text>.RS</xsl:text>
+      <xsl:if test="not($list-indent = '')">
+        <xsl:text> </xsl:text>
+        <xsl:value-of select="$list-indent"/>
+      </xsl:if>
+      <xsl:text>&#10;</xsl:text>
+      <!-- * Add hyphenation suppression in URL output only if -->
+      <!-- * $break.after.slash is also non-zero -->
+      <xsl:if test="$man.hyphenate.urls = 0
+                    and $man.break.after.slash = 0">
+        <xsl:call-template name="suppress.hyphenation"/>
+        <xsl:text>\%</xsl:text>
+      </xsl:if>
+      <xsl:call-template name="display.uri">
+        <xsl:with-param name="uri" select="@uri"/>
+      </xsl:call-template>
+      <xsl:text>&#10;</xsl:text>
+      <xsl:text>.RE</xsl:text>
+      <xsl:text>&#10;</xsl:text>
+    </xsl:if>
+
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="display.uri">
+  <xsl:param name="uri"/>
+  <xsl:choose>
+    <xsl:when test="contains($uri, ':')">
+      <!-- * if this URI contains a colon character, it’s probably -->
+      <!-- * an absolute URI with a scheme, so we output it as-is -->
+      <xsl:value-of select="$uri"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- * otherwise this is probably not an absolute URI, so we -->
+      <!-- * need to prepend $man.base.url.for.relative.links to -->
+      <!-- * give the URI some "context" in man-page output -->
+      <xsl:value-of
+        select="concat($man.base.url.for.relative.links, $uri)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/manpages/html-synop.xsl b/applications/content/template/docbook/manpages/html-synop.xsl
new file mode 100644
index 0000000..7701cfc
--- /dev/null
+++ b/applications/content/template/docbook/manpages/html-synop.xsl
@@ -0,0 +1,1668 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- synopsis is in verbatim -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="cmdsynopsis">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <p>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:if test="..//processing-instruction('dbcmdlist')">
+        <!-- * Placing a dbcmdlist PI as a child of a particular element -->
+        <!-- * creates a hyperlinked list of all cmdsynopsis instances -->
+        <!-- * that are descendants of that element; so for any -->
+        <!-- * cmdsynopsis that is a descendant of an element containing -->
+        <!-- * a dbcmdlist PI, we need to output an a@id instance so that -->
+        <!-- * we will have something to link to -->
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </p>
+  </div>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command">
+  <xsl:text>
+.
+</xsl:text>
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command[1]" priority="2">
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="group|arg" name="group-or-arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:variable name="sepchar">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*/@sepchar">
+        <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text> </xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="preceding-sibling::*">
+    <xsl:value-of select="$sepchar"/>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.open.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.open.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates/>
+  <xsl:choose>
+    <xsl:when test="$rep='repeat'">
+      <xsl:value-of select="$arg.rep.repeat.str"/>
+    </xsl:when>
+    <xsl:when test="$rep='norepeat'">
+      <xsl:value-of select="$arg.rep.norepeat.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.rep.def.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.close.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.close.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="group/arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:if test="preceding-sibling::*">
+    <xsl:value-of select="$arg.or.sep"/>
+  </xsl:if>
+  <xsl:call-template name="group-or-arg"/>
+</xsl:template>
+
+<xsl:template match="sbr">
+  <xsl:text>
+.
+</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="synopfragmentref">
+  <xsl:variable name="target" select="key('id',@linkend)"/>
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="$target" mode="synopfragment.number"/>
+  </xsl:variable>
+  <i>
+    <a href="#{@linkend}">
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$snum"/>
+      <xsl:text>)</xsl:text>
+    </a>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </i>
+</xsl:template>
+
+<xsl:template match="synopfragment" mode="synopfragment.number">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="synopfragment">
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="." mode="synopfragment.number"/>
+  </xsl:variable>
+  <!-- You can't introduce another <p> here, because you're 
+       already in a <p> from cmdsynopsis-->
+  <span>
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:variable>
+    <a name="{$id}">
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$snum"/>
+      <xsl:text>)</xsl:text>
+    </a>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<xsl:template match="funcsynopsis">
+  <xsl:if test="..//processing-instruction('dbfunclist')">
+    <!-- * Placing a dbfunclist PI as a child of a particular element -->
+    <!-- * creates a hyperlinked list of all funcsynopsis instances that -->
+    <!-- * are descendants of that element; so for any funcsynopsis that is -->
+    <!-- * a descendant of an element containing a dbfunclist PI, we need -->
+    <!-- * to output an a@id instance so that we will have something to -->
+    <!-- * link to -->
+    <span>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </span>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+  </xsl:if>
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsisinfo">
+  <xsl:text>.sp
+</xsl:text><xsl:text>.nf
+</xsl:text><pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </pre><xsl:text/><xsl:text>.fi
+</xsl:text>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype -->
+<!--
+
+funcprototype ::= (funcdef,
+                   (void|varargs|paramdef+))
+
+funcdef       ::= (#PCDATA|type|replaceable|function)*
+
+paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
+-->
+
+<xsl:template match="funcprototype">
+  <xsl:variable name="html-style">
+    <xsl:call-template name="pi.dbhtml_funcsynopsis-style">
+      <xsl:with-param name="node" select="ancestor::funcsynopsis/descendant-or-self::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="style">
+    <xsl:choose>
+      <xsl:when test="$html-style != ''">
+        <xsl:value-of select="$html-style"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$funcsynopsis.style"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+<!-- * 2008-02-17. the code no longer relies on the funcsynopsis.tabular.threshold -->
+<!-- * param at all (the stuff below has been commented out since mid -->
+<!-- * 2006), so I completely removed the funcsynopsis.tabular.threshold param -->
+<!-- * .. MikeSmith -->
+<!--
+  <xsl:variable name="tabular-p"
+                select="$funcsynopsis.tabular.threshold &gt; 0
+                        and string-length(.) &gt; $funcsynopsis.tabular.threshold"/>
+-->
+
+  <xsl:variable name="tabular-p" select="true()"/>
+
+  <xsl:choose>
+    <xsl:when test="$style = 'kr' and $tabular-p">
+      <xsl:apply-templates select="." mode="kr-tabular"/>
+    </xsl:when>
+    <xsl:when test="$style = 'kr'">
+      <xsl:apply-templates select="." mode="kr-nontabular"/>
+    </xsl:when>
+    <xsl:when test="$style = 'ansi' and $tabular-p">
+      <xsl:apply-templates select="." mode="ansi-tabular"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="." mode="ansi-nontabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: kr, non-tabular -->
+
+<xsl:template match="funcprototype" mode="kr-nontabular">
+  <p>
+    <xsl:apply-templates mode="kr-nontabular"/>
+    <xsl:if test="paramdef">
+      <xsl:text>
+.
+</xsl:text>
+      <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/>
+    </xsl:if>
+  </p>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="kr-nontabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="kr-nontabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="kr-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="kr-nontabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="kr-nontabular">
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="kr-nontabular">
+  <xsl:text>...</xsl:text>
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-nontabular">
+  <xsl:apply-templates select="parameter" mode="kr-nontabular"/>
+  <xsl:choose>
+    <xsl:when test="following-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>)</code>
+      <xsl:text>;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-nontabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-nontabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-funcsynopsis-mode">
+  <xsl:if test="preceding-sibling::paramdef"><xsl:text>
+.
+</xsl:text></xsl:if>
+  <code>
+    <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+  </code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-funcsynopsis-mode">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="kr-funcsynopsis-mode">
+  <code>(</code>
+  <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+  <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: kr, tabular -->
+
+<xsl:template match="funcprototype" mode="kr-tabular">
+  <table border="{$table.border.off}" class="funcprototype-table">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Function synopsis</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$css.decoration != 0">
+      <xsl:attribute name="style">cellspacing: 0; cellpadding: 0;</xsl:attribute>
+    </xsl:if>
+    <tr>
+      <td>
+        <xsl:apply-templates select="funcdef" mode="kr-tabular"/>
+      </td>
+      <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="kr-tabular"/>
+    </tr>
+    <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
+      <tr>
+        <td> </td>
+        <xsl:apply-templates select="." mode="kr-tabular"/>
+      </tr>
+    </xsl:for-each>
+  </table>
+  <xsl:if test="paramdef">
+    <div class="paramdef-list">
+      <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/>
+    </div>
+  </xsl:if>
+  <div class="funcprototype-spacer"> </div> <!-- hACk: blank div for vertical spacing -->
+</xsl:template>
+
+<xsl:template match="funcdef" mode="kr-tabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="kr-tabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="kr-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="kr-tabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="kr-tabular">
+  <td>
+    <code>)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td> </td>
+</xsl:template>
+
+<xsl:template match="varargs" mode="kr-tabular">
+  <td>
+    <xsl:text>...</xsl:text>
+    <code>)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td> </td>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-tabular">
+  <td>
+    <xsl:apply-templates select="parameter" mode="kr-tabular"/>
+    <xsl:choose>
+      <xsl:when test="following-sibling::*">
+	<xsl:text>, </xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+	<code>)</code>
+	<xsl:text>;</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </td>
+  <td> </td>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-tabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-tabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-tabular-funcsynopsis-mode">
+  <xsl:variable name="type">
+    <xsl:choose>
+      <xsl:when test="type">
+	<xsl:apply-templates select="type" mode="kr-tabular-funcsynopsis-mode"/>
+      </xsl:when>
+      <xsl:when test="normalize-space(parameter/preceding-sibling::node()[not(self::parameter)]) != ''">
+	<xsl:copy-of select="parameter/preceding-sibling::node()[not(self::parameter)]"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <tr>
+    <xsl:choose>
+      <xsl:when test="$type != '' and funcparams">
+        <td>
+	  <code>
+	    <xsl:copy-of select="$type"/>
+	  </code>
+          <xsl:text> </xsl:text>
+        </td>
+        <td>
+	  <code>
+	    <xsl:choose>
+	      <xsl:when test="type">
+		<xsl:apply-templates select="type/following-sibling::*" mode="kr-tabular-funcsynopsis-mode"/>
+	      </xsl:when>
+	      <xsl:otherwise>
+		<xsl:apply-templates select="*" mode="kr-tabular-funcsynopsis-mode"/>
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </code>
+        </td>
+      </xsl:when>
+
+      <xsl:when test="funcparams">
+        <td colspan="2">
+	  <code>
+	    <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+	  </code>
+        </td>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <td>
+	  <code>
+	    <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/>
+	  </code>
+          <xsl:text> </xsl:text>
+        </td>
+        <td>
+	  <code>
+	    <xsl:apply-templates select="parameter" mode="kr-tabular"/>
+	    <xsl:apply-templates select="parameter/following-sibling::*[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/>
+	    <xsl:text>;</xsl:text>
+	  </code>
+        </td>
+      </xsl:otherwise>
+    </xsl:choose>
+  </tr>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-tabular-funcsynopsis-mode">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="kr-tabular-funcsynopsis-mode">
+  <code>(</code>
+  <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: ansi, non-tabular -->
+
+<xsl:template match="funcprototype" mode="ansi-nontabular">
+  <p>
+    <xsl:apply-templates mode="ansi-nontabular"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="ansi-nontabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="ansi-nontabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="ansi-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="ansi-nontabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="ansi-nontabular">
+  <code>void)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="ansi-nontabular">
+  <xsl:text>...</xsl:text>
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="ansi-nontabular">
+  <xsl:apply-templates mode="ansi-nontabular"/>
+  <xsl:choose>
+    <xsl:when test="following-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>)</code>
+      <xsl:text>;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="ansi-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="ansi-nontabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="ansi-nontabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="ansi-nontabular">
+  <code>(</code>
+  <xsl:apply-templates mode="ansi-nontabular"/>
+  <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: ansi, tabular -->
+
+<xsl:template match="funcprototype" mode="ansi-tabular">
+  <table border="{$table.border.off}" class="funcprototype-table">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Function synopsis</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$css.decoration != 0">
+      <xsl:attribute name="style">cellspacing: 0; cellpadding: 0;</xsl:attribute>
+    </xsl:if>
+    <tr>
+      <td>
+        <xsl:apply-templates select="funcdef" mode="ansi-tabular"/>
+      </td>
+      <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="ansi-tabular"/>
+    </tr>
+    <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
+      <tr>
+        <td> </td>
+        <xsl:apply-templates select="." mode="ansi-tabular"/>
+      </tr>
+    </xsl:for-each>
+  </table>
+  <div class="funcprototype-spacer"> </div> <!-- hACk: blank div for vertical spacing -->
+</xsl:template>
+
+<xsl:template match="funcdef" mode="ansi-tabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="ansi-tabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="ansi-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="kr-tabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="ansi-tabular">
+  <td>
+    <code>void)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td> </td>
+</xsl:template>
+
+<xsl:template match="varargs" mode="ansi-tabular">
+  <td>
+    <xsl:text>...</xsl:text>
+    <code>)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td> </td>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="ansi-tabular">
+      <td>
+        <xsl:apply-templates mode="ansi-tabular"/>
+        <xsl:choose>
+          <xsl:when test="following-sibling::*">
+            <xsl:text>, </xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <code>)</code>
+            <xsl:text>;</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </td>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="ansi-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="ansi-tabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="ansi-tabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="ansi-tabular">
+  <code>(</code>
+  <xsl:apply-templates/>
+  <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:variable name="default-classsynopsis-language">java</xsl:variable>
+
+<xsl:template match="classsynopsis                      |fieldsynopsis                      |methodsynopsis                      |constructorsynopsis                      |destructorsynopsis">
+  <xsl:param name="language">
+    <xsl:choose>
+      <xsl:when test="@language">
+	<xsl:value-of select="@language"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="$default-classsynopsis-language"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$language='java' or $language='Java'">
+      <xsl:apply-templates select="." mode="java"/>
+    </xsl:when>
+    <xsl:when test="$language='perl' or $language='Perl'">
+      <xsl:apply-templates select="." mode="perl"/>
+    </xsl:when>
+    <xsl:when test="$language='idl' or $language='IDL'">
+      <xsl:apply-templates select="." mode="idl"/>
+    </xsl:when>
+    <xsl:when test="$language='cpp' or $language='c++' or $language='C++'">
+      <xsl:apply-templates select="." mode="cpp"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Unrecognized language on </xsl:text>
+        <xsl:value-of select="local-name(.)"/>
+        <xsl:text>: </xsl:text>
+	<xsl:value-of select="$language"/>
+      </xsl:message>
+      <xsl:apply-templates select=".">
+	<xsl:with-param name="language" select="$default-classsynopsis-language"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="synop-break">
+  <xsl:if test="parent::classsynopsis                 or (following-sibling::fieldsynopsis                     |following-sibling::methodsynopsis                     |following-sibling::constructorsynopsis                     |following-sibling::destructorsynopsis)">
+    <xsl:text>
+.
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+
+<!-- ===== Java ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="java">
+  <xsl:text>.sp
+</xsl:text><xsl:text>.nf
+</xsl:text><pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates select="ooclass[1]" mode="java"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text> extends</xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="java"/>
+      <xsl:if test="oointerface|ooexception">
+        <xsl:text>
+.
+</xsl:text>
+	<xsl:text>    </xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text>implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="java"/>
+      <xsl:if test="ooexception">
+        <xsl:text>
+.
+</xsl:text>
+	<xsl:text>    </xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text>throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="java"/>
+    </xsl:if>
+    <xsl:text> {</xsl:text>
+    <xsl:text>
+.
+</xsl:text>
+    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="java"/>
+    <xsl:text>}</xsl:text>
+  </pre><xsl:text/><xsl:text>.fi
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="java">
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="java">
+  <xsl:choose>
+    <xsl:when test="preceding-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text> </xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text> </xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="java">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>  </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text> </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text> </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>= </xsl:text>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="java">
+  <xsl:param name="indent">0</xsl:param>
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>,</xsl:text>
+    <xsl:text>
+.
+</xsl:text>
+    <xsl:if test="$indent &gt; 0">
+      <xsl:call-template name="copy-string">
+	<xsl:with-param name="string"> </xsl:with-param>
+	<xsl:with-param name="count" select="$indent + 1"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="java" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="decl">
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>  </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$start-modifiers" mode="java"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="java"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="java"/>
+  </xsl:variable>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$decl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="java">
+      <xsl:with-param name="indent" select="string-length($decl)"/>
+    </xsl:apply-templates>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <xsl:text>
+.
+</xsl:text>
+      <xsl:text>    throws </xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="java"/>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="java"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== C++ ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="cpp">
+  <xsl:text>.sp
+</xsl:text><xsl:text>.nf
+</xsl:text><pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="cpp"/>
+      <xsl:if test="oointerface|ooexception">
+        <xsl:text>
+.
+</xsl:text>
+	<xsl:text>    </xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="cpp"/>
+      <xsl:if test="ooexception">
+        <xsl:text>
+.
+</xsl:text>
+	<xsl:text>    </xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="cpp"/>
+    </xsl:if>
+    <xsl:text> {</xsl:text>
+    <xsl:text>
+.
+</xsl:text>
+    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="cpp"/>
+    <xsl:text>}</xsl:text>
+  </pre><xsl:text/><xsl:text>.fi
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="cpp">
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="cpp">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text> </xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="cpp">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>  </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text> </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text> </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>= </xsl:text>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="cpp">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="cpp" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>  </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$start-modifiers" mode="cpp"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="cpp"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="cpp"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="cpp"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <xsl:text>
+.
+</xsl:text>
+      <xsl:text>    throws </xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="cpp"/>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="cpp"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== IDL ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="idl">
+  <xsl:text>.sp
+</xsl:text><xsl:text>.nf
+</xsl:text><pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>interface </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="idl"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="idl"/>
+      <xsl:if test="oointerface|ooexception">
+        <xsl:text>
+.
+</xsl:text>
+	<xsl:text>    </xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="idl"/>
+      <xsl:if test="ooexception">
+        <xsl:text>
+.
+</xsl:text>
+	<xsl:text>    </xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="idl"/>
+    </xsl:if>
+    <xsl:text> {</xsl:text>
+    <xsl:text>
+.
+</xsl:text>
+    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="idl"/>
+    <xsl:text>}</xsl:text>
+  </pre><xsl:text/><xsl:text>.fi
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="idl">
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="idl">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text> </xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="idl">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>  </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text> </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text> </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>= </xsl:text>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="idl">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="idl" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>  </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$start-modifiers" mode="idl"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="idl"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="idl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="idl"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <xsl:text>
+.
+</xsl:text>
+      <xsl:text>    raises(</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="idl"/>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="idl"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== Perl ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="perl">
+  <xsl:text>.sp
+</xsl:text><xsl:text>.nf
+</xsl:text><pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>package </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="perl"/>
+    <xsl:text>;</xsl:text>
+    <xsl:text>
+.
+</xsl:text>
+
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>@ISA = (</xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="perl"/>
+      <xsl:text>);</xsl:text>
+      <xsl:text>
+.
+</xsl:text>
+    </xsl:if>
+
+    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="perl"/>
+  </pre><xsl:text/><xsl:text>.fi
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="perl">
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="perl">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text> </xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="perl">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>  </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text> </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text> </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>= </xsl:text>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="perl">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="perl" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>sub </xsl:text>
+
+    <xsl:apply-templates select="methodname" mode="perl"/>
+    <xsl:text> { ... };</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- Used when not occurring as a child of classsynopsis -->
+<xsl:template match="ooclass|oointerface|ooexception">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * DocBook 5 allows linking elements (link, olink, and xref) -->
+<!-- * within the OO *synopsis elements (classsynopsis, fieldsynopsis, -->
+<!-- * methodsynopsis, constructorsynopsis, destructorsynopsis) and -->
+<!-- * their children. So we need to have mode="java|cpp|idl|perl" -->
+<!-- * per-mode matches for those linking elements in order for them -->
+<!-- * to be processed as expected. -->
+
+<xsl:template match="link|olink|xref" mode="java">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="cpp">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="idl">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="perl">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="ansi-nontabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="ansi-tabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="kr-nontabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="kr-tabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/manpages/info.xsl b/applications/content/template/docbook/manpages/info.xsl
new file mode 100644
index 0000000..73a1f3f
--- /dev/null
+++ b/applications/content/template/docbook/manpages/info.xsl
@@ -0,0 +1,800 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                xmlns:exsl="http://exslt.org/common"
+                exclude-result-prefixes="date exsl"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+  <xsl:variable name="blurb-indent">
+    <xsl:choose>
+      <xsl:when test="not($man.indent.blurbs = 0)">
+        <xsl:value-of select="$man.indent.width"/>
+      </xsl:when>
+      <xsl:when test="not($man.indent.refsect = 0)">
+        <!-- * "zq" is the name of a register we set for -->
+        <!-- * preserving the original default indent value -->
+        <!-- * when $man.indent.refsect is non-zero; -->
+        <!-- * "u" is a roff unit specifier -->
+        <xsl:text>\n(zqu</xsl:text>
+      </xsl:when>
+      <xsl:otherwise/> <!-- * otherwise, just leave it empty -->
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- ================================================================== -->
+  <!-- * About the $info param used in this stylesheet -->
+  <!-- * -->
+  <!-- * The $info param is a "master info" node set that contains -->
+  <!-- * the entire contents of the *info child of the current -->
+  <!-- * Refentry, plus the entire contents of the *info children of -->
+  <!-- * all ancestors of the current Refentry, in document order. -->
+  <!-- * -->
+  <!-- * We try to find a "best match" for selecting content from -->
+  <!-- * $infor; we look through it in reverse document order until we -->
+  <!-- * can find something usable. -->
+  <!-- * -->
+  <!-- * Specifically what the basic metadata-gathering XPath expression -->
+  <!-- * in this stylesheet does is: -->
+  <!-- * -->
+  <!-- *   1. Look through the entire "master info" node set.-->
+  <!-- *   2. Get the last node in the set that contains, for -->
+  <!-- *      example, an Author element. That amounts to being the -->
+  <!-- *      closest *info node to the Refentry - either its *info -->
+  <!-- *      child, or the *info node of its closest ancestor that -->
+  <!-- *      contains an Author. -->
+
+  <!-- ================================================================== -->
+  <!-- * Get user "refentry metadata" preferences -->
+  <!-- ================================================================== -->
+  <!-- * The DocBook XSL stylesheets include several user-configurable -->
+  <!-- * global stylesheet parameters for controlling refentry metadata -->
+  <!-- * gathering. Those parameters are not read directly by the other -->
+  <!-- * refentry metadata-gathering templates. Instead, they are read -->
+  <!-- * only by the get.refentry.metadata.prefs template, which -->
+  <!-- * assembles them into a structure that is then passed to the -->
+  <!-- * other refentry metadata-gathering template. -->
+
+  <xsl:variable name="get.refentry.metadata.prefs">
+    <!-- * get.refentry.metadata.prefs is in common/refentry.xsl -->
+    <xsl:call-template name="get.refentry.metadata.prefs"/>
+  </xsl:variable>
+
+  <xsl:variable name="refentry.metadata.prefs"
+                select="exsl:node-set($get.refentry.metadata.prefs)"/>
+  
+  <!-- * ============================================================== -->
+  <!-- *    Get content for Author metadata field. -->
+  <!-- * ============================================================== -->
+
+  <!-- * The make.roff.metatada.author template and metadata.author -->
+  <!-- * mode are used only for populating the Author field in the -->
+  <!-- * metadata "top comment" we embed in roff source of each page. -->
+  <xsl:template name="make.roff.metadata.author">
+    <xsl:param name="info"/>
+    <xsl:param name="refname"/>
+    <xsl:choose>
+      <xsl:when test="$info//author">
+        <xsl:apply-templates
+            select="(($info[//author])[last()]//author)[1]"
+            mode="metadata.author"/>
+      </xsl:when>
+      <xsl:when test="$info//corpauthor">
+        <xsl:apply-templates
+            select="(($info[//corpauthor])[last()]//corpauthor)[1]"
+            mode="metadata.author"/>
+      </xsl:when>
+      <xsl:when test="$info//editor">
+        <xsl:apply-templates
+            select="(($info[//editor])[last()]//editor)[1]"
+            mode="metadata.author"/>
+      </xsl:when>
+      <xsl:when test="$info//corpcredit">
+        <xsl:apply-templates
+            select="(($info[//corpcredit])[last()]//corpcredit)[1]"
+            mode="metadata.author"/>
+      </xsl:when>
+      <xsl:when test="$info//othercredit">
+        <xsl:apply-templates
+            select="(($info[//othercredit])[last()]//othercredit)[1]"
+            mode="metadata.author"/>
+      </xsl:when>
+      <xsl:when test="$info//collab">
+        <xsl:apply-templates
+            select="(($info[//collab])[last()]//collab)[1]"
+            mode="metadata.author"/>
+      </xsl:when>
+      <xsl:when test="$info//orgname">
+        <xsl:apply-templates
+            select="(($info[//orgname])[last()]//orgname)[1]"
+            mode="metadata.author"/>
+      </xsl:when>
+      <xsl:when test="$info//publishername">
+        <xsl:apply-templates
+            select="(($info[//publishername])[last()]//publishername)[1]"
+            mode="metadata.author"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * otherwise, we need to check to see if we have an "Author" -->
+        <!-- * or "Authors" section in the refentry -->
+        <xsl:variable name="gentext.author">
+          <xsl:text>"</xsl:text>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'Author'"/>
+          </xsl:call-template>
+          <xsl:text>"</xsl:text>
+        </xsl:variable>
+        <xsl:variable name="gentext.AUTHOR">
+          <xsl:if test="not($gentext.author = '')">
+            <xsl:call-template name="string.upper">
+              <xsl:with-param name="string" select="$gentext.author"/>
+            </xsl:call-template>
+          </xsl:if>
+        </xsl:variable>
+        <xsl:variable name="gentext.authors">
+          <xsl:text>"</xsl:text>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'Authors'"/>
+          </xsl:call-template>
+          <xsl:text>"</xsl:text>
+        </xsl:variable>
+        <xsl:variable name="gentext.AUTHORS">
+          <xsl:if test="not($gentext.authors = '')">
+            <xsl:call-template name="string.upper">
+              <xsl:with-param name="string" select="$gentext.authors"/>
+            </xsl:call-template>
+          </xsl:if>
+        </xsl:variable>
+        <!-- * get all refentry/refsect1/title & refentry/refsection/title -->
+        <!-- * instances, delimit each with double quotes, and put them -->
+        <!-- * into a single refsect1.titles string -->
+        <xsl:variable name="refsect1.titles">
+          <xsl:for-each select="refsect1/title">
+            <xsl:text>"</xsl:text>
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:text>"</xsl:text>
+            <xsl:text> </xsl:text>
+          </xsl:for-each>
+          <xsl:for-each select="refsection/title">
+            <xsl:text>"</xsl:text>
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:text>"</xsl:text>
+            <xsl:text> </xsl:text>
+          </xsl:for-each>
+        </xsl:variable>
+        <xsl:variable name="author.section.title">
+          <xsl:choose>
+            <xsl:when test="not($gentext.authors = '') and
+              contains($refsect1.titles,$gentext.authors)">
+              <xsl:value-of select="$gentext.authors"/>
+            </xsl:when>
+            <xsl:when test="not($gentext.AUTHORS = '') and
+              contains($refsect1.titles,$gentext.AUTHORS)">
+              <xsl:value-of select="$gentext.AUTHORS"/>
+            </xsl:when>
+            <xsl:when test="not($gentext.author = '') and
+              contains($refsect1.titles,$gentext.author)">
+              <xsl:value-of select="$gentext.author"/>
+            </xsl:when>
+            <xsl:when test="not($gentext.AUTHOR = '') and
+              contains($refsect1.titles,$gentext.AUTHOR)">
+              <xsl:value-of select="$gentext.AUTHOR"/>
+            </xsl:when>
+            <!-- * git docs (for one) use "DOCUMENTATION" for their authors section -->
+            <xsl:when test="contains($refsect1.titles,'Documentation')">
+              <xsl:text>Documentation</xsl:text>
+            </xsl:when>
+            <xsl:when test="contains($refsect1.titles,'DOCUMENTATION')">
+              <xsl:text>DOCUMENTATION</xsl:text>
+            </xsl:when>
+            <xsl:otherwise/> <!-- * otherwise, leave empty -->
+          </xsl:choose>
+        </xsl:variable>
+        <xsl:choose>
+          <xsl:when test="not($author.section.title = '')">
+            <!-- * if we have a non-empty $author.section.title value, -->
+            <!-- * then reference that title (instead of putting a -->
+            <!-- * specific author name) -->
+            <xsl:text>[see the </xsl:text>
+            <xsl:value-of select="$author.section.title"/>
+            <xsl:text> section]</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- * otherwise we have no info/author content and no Author -->
+            <!-- * or Authors section, so we insert a fixme and report -->
+            <!-- * the problem to the user -->
+            <xsl:text>[FIXME: author] [see http://docbook.sf.net/el/author]</xsl:text>
+            <xsl:if test="$refentry.meta.get.quietly = 0">
+              <xsl:call-template name="log.message">
+                <xsl:with-param name="level">Warn</xsl:with-param>
+                <xsl:with-param name="source" select="$refname"/>
+                <xsl:with-param name="context-desc">meta author</xsl:with-param>
+                <xsl:with-param name="message">
+                  <xsl:text>no refentry/info/author</xsl:text>
+                </xsl:with-param>
+              </xsl:call-template>
+              <xsl:call-template name="log.message">
+                <xsl:with-param name="level">Note</xsl:with-param>
+                <xsl:with-param name="source" select="$refname"/>
+                <xsl:with-param name="context-desc">meta author</xsl:with-param>
+                <xsl:with-param name="message">
+                  <xsl:text>see http://docbook.sf.net/el/author</xsl:text>
+                </xsl:with-param>
+              </xsl:call-template>
+              <xsl:call-template name="log.message">
+                <xsl:with-param name="level">Warn</xsl:with-param>
+                <xsl:with-param name="source" select="$refname"/>
+                <xsl:with-param name="context-desc">meta author</xsl:with-param>
+                <xsl:with-param name="message">
+                  <xsl:text>no author data, so inserted a fixme</xsl:text>
+                </xsl:with-param>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="author|editor|othercredit|collab" mode="metadata.author">
+    <xsl:choose>
+      <xsl:when test="collabname">
+        <!-- * If this node is a Collab, then it should have a -->
+        <!-- * Collabname child, so get that. -->
+        <xsl:variable name="contents">
+          <xsl:apply-templates select="collabname"/>
+        </xsl:variable>
+        <xsl:value-of select="normalize-space($contents)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * Otherwise, this node is not a Collab, but instead -->
+        <!-- * an author|editor|othercredit, which must have a name -->
+        <!-- * of some kind; so get that name -->
+        <xsl:call-template name="person.name.normalized"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:if test=".//email|address/otheraddr/ulink">
+      <xsl:text> </xsl:text>
+      <!-- * For each attribution found, use only the first e-mail -->
+      <!-- * address or ulink value found -->
+      <xsl:apply-templates select="(.//email|address/otheraddr/ulink)[1]"
+                           mode="metadata.author"/>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="email|address/otheraddr/ulink" mode="metadata.author">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:choose>
+      <xsl:when test="self::email">
+        <xsl:variable name="contents">
+          <xsl:apply-templates/>
+        </xsl:variable>
+        <xsl:value-of select="normalize-space($contents)"/>
+      </xsl:when>
+      <xsl:when test="self::ulink">
+        <xsl:variable name="contents">
+          <xsl:apply-templates select="."/>
+        </xsl:variable>
+        <xsl:value-of select="normalize-space($contents)"/>
+      </xsl:when>
+    </xsl:choose>
+    <xsl:text>&gt;</xsl:text>
+  </xsl:template>
+
+  <xsl:template match="corpauthor|corpcredit|orgname|publishername" mode="metadata.author">
+    <xsl:variable name="contents">
+      <xsl:apply-templates/>
+    </xsl:variable>
+    <xsl:value-of select="normalize-space($contents)"/>
+  </xsl:template>
+
+  <!-- * ============================================================== -->
+  <!-- *     Assemble the AUTHOR/AUTHORS section -->
+  <!-- * ============================================================== -->
+
+  <xsl:template name="author.section">
+    <xsl:param name="info"/>
+    <!-- * The $info param is a "master info" node set that contains -->
+    <!-- * the entires contents of the *info child of the current -->
+    <!-- * Refentry, plus the entire contents of the *info children of -->
+    <!-- * all ancestors of the current Refentry, in document order. -->
+    <xsl:choose>
+      <xsl:when test="$info//author|$info//editor|$info//collab|
+                      $info//corpauthor|$info//corpcredit|
+                      $info//othercredit|$info/orgname|
+                      $info/publishername|$info/publisher">
+        <xsl:variable name="authorcount">
+          <xsl:value-of
+              select="count(
+                      $info//author|$info//editor|$info//collab|
+                      $info//corpauthor|$info//corpcredit|
+                      $info//othercredit)">
+          </xsl:value-of>
+        </xsl:variable>
+        <xsl:call-template name="make.subheading">
+          <xsl:with-param name="title">
+            <xsl:call-template name="make.authorsecttitle">
+              <xsl:with-param name="authorcount" select="$authorcount"/>
+            </xsl:call-template>
+          </xsl:with-param>
+        </xsl:call-template>
+        <!-- * Now output all the actual author, editor, etc. content -->
+        <xsl:for-each
+          select="$info//author|$info//editor|$info//collab|
+          $info//corpauthor|$info//corpcredit|
+          $info//othercredit|$info/orgname|
+          $info/publishername|$info/publisher">
+          <xsl:apply-templates select="." mode="authorsect"/>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise/> <!-- * do nothing, no author info found -->
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template name="make.authorsecttitle">
+    <!-- * If we have exactly one attributable person/entity, then output -->
+    <!-- * localized gentext for 'Author'; otherwise, output 'Authors'. -->
+    <xsl:param name="authorcount"/>
+    <xsl:param name="authorsecttitle">
+      <xsl:choose>
+        <xsl:when test="$authorcount = 1">
+          <xsl:text>Author</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>Authors</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:param>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="$authorsecttitle"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="author|editor|othercredit" mode="authorsect">
+    <xsl:variable name="person-name">
+      <xsl:call-template name="person.name.normalized"/>
+    </xsl:variable>
+    <!-- * If we have a person-name or email or ulink content, then -->
+    <!-- * output name and email or ulink content on the same line -->
+    <xsl:choose>
+      <xsl:when test="not($person-name = '') or .//email or address/otheraddr/ulink">
+        <xsl:text>.PP&#10;</xsl:text>
+        <!-- * Display person name in bold -->
+        <xsl:call-template name="bold">
+          <xsl:with-param name="node" select="exsl:node-set($person-name)"/>
+          <xsl:with-param name="context" select="."/>
+        </xsl:call-template>
+        <!-- * Display e-mail address(es) and ulink(s) on same line as name -->
+        <xsl:apply-templates select=".//email|address/otheraddr/ulink" mode="authorsect"/>
+        <xsl:text>&#10;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>.br&#10;</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    <!-- * Display affiliation(s) on separate lines -->
+    <xsl:apply-templates select="affiliation" mode="authorsect"/>
+    <!-- * Display direct-child addresses on separate lines -->
+    <xsl:apply-templates select="address" mode="authorsect"/>
+    <!-- * Call template for handling various attribution possibilities -->
+    <xsl:call-template name="attribution">
+      <xsl:with-param name="person-name" select="$person-name"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="collab" mode="authorsect">
+    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:call-template name="bold">
+      <xsl:with-param name="node" select="collabname"/>
+      <xsl:with-param name="context" select="."/>
+    </xsl:call-template>
+    <!-- * Display e-mail address(es) and ulink(s) on same line as name -->
+    <xsl:apply-templates select=".//email|address/otheraddr/ulink" mode="authorsect"/>
+    <xsl:text>&#10;</xsl:text>
+    <!-- * Display affilition(s) on separate lines -->
+    <xsl:apply-templates select="affiliation" mode="authorsect"/>
+  </xsl:template>
+
+  <xsl:template match="corpauthor|corpcredit|orgname|publishername" mode="authorsect">
+    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:call-template name="bold">
+      <xsl:with-param name="node" select="."/>
+      <xsl:with-param name="context" select="."/>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:if test="self::publishername">
+      <!-- * Display localized "Publisher" gentext -->
+      <xsl:call-template name="publisher.attribution"/>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="publisher" mode="authorsect">
+    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:call-template name="bold">
+      <xsl:with-param name="node" select="publishername"/>
+      <xsl:with-param name="context" select="."/>
+    </xsl:call-template>
+    <!-- * Display e-mail address(es) and ulink(s) on same line as name -->
+    <xsl:apply-templates select=".//email|address/otheraddr/ulink" mode="authorsect"/>
+    <!-- * Display addresses on separate lines -->
+    <xsl:apply-templates select="address" mode="authorsect"/>
+    <!-- * Display localized "Publisher" literal -->
+    <xsl:call-template name="publisher.attribution"/>
+  </xsl:template>
+
+  <xsl:template name="publisher.attribution">
+    <xsl:text>&#10;</xsl:text>
+    <xsl:text>.RS</xsl:text> 
+    <xsl:if test="not($blurb-indent = '')">
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$blurb-indent"/>
+    </xsl:if>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'Publisher'"/>
+    </xsl:call-template>
+    <xsl:text>.&#10;</xsl:text>
+    <xsl:text>.RE&#10;</xsl:text> 
+  </xsl:template>
+
+  <xsl:template match="email|address/otheraddr/ulink" mode="authorsect">
+    <xsl:choose>
+      <xsl:when test="preceding-sibling::*[descendant-or-self::email]
+                      or preceding-sibling::address/otheraddr/ulink
+                      or ancestor::address[preceding-sibling::*[descendant-or-self::email]]
+                      or ancestor::address[preceding-sibling::address/otheraddr/ulink]">
+        <!-- * This is not the first instance, so do nothing. -->
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * This is first instances of an e-mail address or ulink, -->
+        <!-- * so put a space before it. -->
+        <xsl:text> </xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    <!-- * Note that the reason for the \& character after the opening -->
+    <!-- * angle bracket and before the closing angle bracket is to -->
+    <!-- * prevent groff from inserting a linebreak at those points and -->
+    <!-- * outputting a hyphen character where the break occurs -->
+    <xsl:text>&lt;\&amp;</xsl:text>
+    <xsl:choose>
+      <xsl:when test="self::email">
+        <xsl:variable name="contents">
+          <xsl:apply-templates/>
+        </xsl:variable>
+        <xsl:value-of select="normalize-space($contents)"/>
+      </xsl:when>
+      <xsl:when test="self::ulink">
+        <xsl:variable name="contents">
+          <xsl:apply-templates select="."/>
+        </xsl:variable>
+        <xsl:value-of select="normalize-space($contents)"/>
+      </xsl:when>
+    </xsl:choose>
+    <xsl:text>\&amp;&gt;</xsl:text>
+    <xsl:choose>
+      <xsl:when test="not(following-sibling::*[descendant-or-self::email]
+                      or following-sibling::address/otheraddr/ulink
+                      or ancestor::address[following-sibling::*[descendant-or-self::email]]
+                      or ancestor::address[following-sibling::address/otheraddr/ulink])">
+        <!-- * This is the final instance, so do nothing. -->
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * Separate multiple e-mail addresses or ulinks with a comma -->
+        <xsl:text>, </xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="affiliation" mode="authorsect">
+    <!-- * Get the string value of the contents of this Affiliation. If the -->
+    <!-- * affiliation only contains an Address child whose only content is -->
+    <!-- * an email address or ulink, then these contents will end up empty. -->
+    <xsl:variable name="contents">
+      <xsl:apply-templates mode="authorsect"/>
+    </xsl:variable>
+    <!-- * If contents are actually empty except for an email address -->
+    <!-- * or ulink, then output nothing. -->
+    <xsl:if test="$contents != ''">
+      <xsl:text>.br&#10;</xsl:text>
+      <xsl:for-each select="shortaffil|jobtitle|orgname|orgdiv|address">
+        <!-- * only display output of nodes other than email or ulink -->
+        <xsl:apply-templates select="node()[not(self::email) and not(self::otheraddr/ulink)]"/>
+        <xsl:choose>
+          <xsl:when test="position() = last()"/> <!-- do nothing -->
+          <xsl:otherwise>
+            <!-- * only add comma if the node has a child node other than -->
+            <!-- * an email address or ulink -->
+            <xsl:if test="child::node()[not(self::email) and not(self::otheraddr/ulink)]">
+              <xsl:text>, </xsl:text>
+            </xsl:if>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:for-each>
+      <xsl:text>&#10;</xsl:text>
+      <xsl:choose>
+        <xsl:when test="position() = last()"/> <!-- do nothing -->
+        <xsl:otherwise>
+          <!-- * put a line break after every Affiliation instance except -->
+          <!-- * the last one in the set -->
+          <xsl:text>.br&#10;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="address" mode="authorsect">
+    <xsl:variable name="contents"
+                  select="normalize-space(node()[not(self::email)
+                          and not(self::otheraddr/ulink)])"/>
+    <!-- * If this contents of this Address do not contain anything except -->
+    <!-- * an email address or ulink, then output nothing. -->
+    <xsl:if test="$contents != ''">
+      <xsl:text>&#10;</xsl:text>
+      <xsl:text>.br&#10;</xsl:text>
+      <!--* Skip email and ulink descendants of Address (rendered elsewhere) -->
+      <xsl:apply-templates select="node()[not(self::email) and not(self::otheraddr/ulink)]"/>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="attribution">
+    <xsl:param name="person-name"/>
+    <xsl:param name="refname" select="ancestor::refentry/refnamediv[1]/refname[1]"/>
+    <!-- * Determine appropriate attribution for a particular person's role. -->
+    <xsl:choose>
+      <!-- * if we have a *blurb or contrib, just use that -->
+      <xsl:when test="contrib|personblurb|authorblurb">
+        <xsl:apply-templates select="contrib|personblurb|authorblurb" mode="authorsect"/>
+        <xsl:text>&#10;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * otherwise we have no attribution information to use... -->
+        <xsl:if test="not($person-name = '')">
+          <!-- * if we have a person name or organization name -->
+          <!-- * ($person-name can actually be an orgname, not just a -->
+          <!-- * person name), then report to the user that we are -->
+          <!-- * lacking attribution information for that person -->
+          <xsl:if test="$refentry.meta.get.quietly = 0">
+            <xsl:call-template name="log.message">
+              <xsl:with-param name="level">Warn</xsl:with-param>
+              <xsl:with-param name="source" select="$refname"/>
+              <xsl:with-param name="context-desc">AUTHOR sect.</xsl:with-param>
+              <xsl:with-param name="message">
+                <xsl:text>no personblurb|contrib for </xsl:text>
+                <xsl:value-of select="$person-name"/>
+              </xsl:with-param>
+            </xsl:call-template>
+            <xsl:call-template name="log.message">
+              <xsl:with-param name="level">Note</xsl:with-param>
+              <xsl:with-param name="source" select="$refname"/>
+              <xsl:with-param name="context-desc">AUTHOR sect.</xsl:with-param>
+              <xsl:with-param name="message">
+                <xsl:text>see see http://docbook.sf.net/el/contrib</xsl:text>
+              </xsl:with-param>
+            </xsl:call-template>
+            <xsl:call-template name="log.message">
+              <xsl:with-param name="level">Note</xsl:with-param>
+              <xsl:with-param name="source" select="$refname"/>
+              <xsl:with-param name="context-desc">AUTHOR sect.</xsl:with-param>
+              <xsl:with-param name="message">
+                <xsl:text>see see http://docbook.sf.net/el/personblurb</xsl:text>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:if>
+        </xsl:if>
+        <xsl:choose>
+          <!-- * If we have no *blurb or contrib, but this is an Author or -->
+          <!-- * Editor, then render the corresponding localized gentext -->
+          <xsl:when test="self::author">
+            <xsl:text>&#10;</xsl:text>
+            <xsl:text>.RS</xsl:text> 
+            <xsl:if test="not($blurb-indent = '')">
+              <xsl:text> </xsl:text>
+              <xsl:value-of select="$blurb-indent"/>
+            </xsl:if>
+            <xsl:text>&#10;</xsl:text>
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'Author'"/>
+            </xsl:call-template>
+            <xsl:text>.&#10;</xsl:text>
+            <xsl:text>.RE&#10;</xsl:text> 
+          </xsl:when>
+          <xsl:when test="self::editor">
+            <xsl:text>&#10;</xsl:text>
+            <xsl:text>.RS</xsl:text> 
+            <xsl:if test="not($blurb-indent = '')">
+              <xsl:text> </xsl:text>
+              <xsl:value-of select="$blurb-indent"/>
+            </xsl:if>
+            <xsl:text>&#10;</xsl:text>
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'Editor'"/>
+            </xsl:call-template>
+            <xsl:text>.&#10;</xsl:text>
+            <xsl:text>.RE&#10;</xsl:text> 
+          </xsl:when>
+          <!-- * If we have no *blurb or contrib, but this is an Othercredit, -->
+          <!-- * check value of Class attribute and use corresponding gentext. -->
+          <xsl:when test="self::othercredit">
+            <xsl:choose>
+              <xsl:when test="@class and @class != 'other'">
+                <xsl:text>&#10;</xsl:text>
+                <xsl:text>.RS</xsl:text> 
+                <xsl:if test="not($blurb-indent = '')">
+                  <xsl:text> </xsl:text>
+                  <xsl:value-of select="$blurb-indent"/>
+                </xsl:if>
+                <xsl:text>&#10;</xsl:text>
+                <xsl:call-template name="gentext">
+                  <xsl:with-param name="key" select="@class"/>
+                </xsl:call-template>
+                <xsl:text>.&#10;</xsl:text>
+                <xsl:text>.RE&#10;</xsl:text> 
+              </xsl:when>
+              <xsl:otherwise>
+                <!-- * We have an Othercredit, but no usable value for the Class -->
+                <!-- * attribute, so nothing to show, do nothing -->
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- * We have no *blurb or contrib or anything else we can use to -->
+            <!-- * display appropriate attribution for this person, so do nothing -->
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="personblurb|authorblurb" mode="authorsect">
+    <xsl:call-template name="mark.up.blurb.or.contrib"/>
+    <!-- * yeah, it's possible for a *blurb to have a "title" -->
+    <xsl:apply-templates select="title"/>
+    <xsl:apply-templates select="*[not(self::title)]"/>
+    <!-- * If this *blurb has a sibling "name" element of some kind, then -->
+    <!-- * the mark.up.blurb.or.contrib template will generated an "RS" -->
+    <!-- * call that will cause it to be indented; so we need to call -->
+    <!-- * "RE" to restore the previous indent level -->
+    <xsl:if test="../personname|../surname|../firstname
+      |../othername|../lineage|../honorific
+      |../affiliation|../email|../address">
+      <xsl:text>.RE&#10;</xsl:text> 
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="personblurb/title|authorblurb/title">
+    <!-- * always render period after title -->
+    <xsl:variable name="contents">
+      <xsl:apply-templates/>
+    </xsl:variable>
+    <xsl:value-of select="normalize-space($contents)"/>
+    <xsl:text>.</xsl:text>
+    <!-- * render space after Title+period if the title is followed -->
+    <!-- * by something element content -->
+    <xsl:if test="following-sibling::*[name() != '']">
+      <xsl:text> </xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="contrib" mode="authorsect">
+    <xsl:call-template name="mark.up.blurb.or.contrib"/>
+    <xsl:variable name="contents">
+      <xsl:apply-templates/>
+    </xsl:variable>
+    <xsl:value-of select="normalize-space($contents)"/>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:if test="../personname|../surname|../firstname
+      |../othername|../lineage|../honorific
+      |../affiliation|../email|../address">
+      <xsl:text>.RE&#10;</xsl:text> 
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="mark.up.blurb.or.contrib">
+    <xsl:choose>
+      <!-- * If this *blurb has a sibling "name" element of some kind, then -->
+      <!-- * we are already outputting the name content, and we need to -->
+      <!-- * indent the *blurb content after that. -->
+      <xsl:when
+          test="../personname|../surname|../firstname
+                |../othername|../lineage|../honorific
+                |../affiliation|../email|../address">
+        <xsl:text>&#10;</xsl:text>
+        <xsl:text>.RS</xsl:text> 
+        <xsl:if test="not($blurb-indent = '')">
+          <xsl:text> </xsl:text>
+          <xsl:value-of select="$blurb-indent"/>
+        </xsl:if>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * otherwise, we have no "name" content, so don't indent; -->
+        <!-- * instead, decide if we need a .PP or just a .br -->
+        <xsl:choose>
+          <xsl:when test="not(preceding-sibling::*)">
+            <!-- * if this *blurb or contrib has no preceding -->
+            <!-- * siblings, then we need to start a new paragraph -->
+            <xsl:text>.PP</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- * otherwise, this has no preceding siblings, so -->
+            <!-- * just put a linebreak -->
+            <xsl:text>.br</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:template>
+
+  <!-- * ============================================================== -->
+  <!-- *     Assemble the COPYRIGHT section -->
+  <!-- * ============================================================== -->
+  <!-- * The COPYRIGHT section is output only if a copyright or -->
+  <!-- * legalnotice is found. It contains the copyright contents -->
+  <!-- * followed by the legalnotice contents. -->
+  <xsl:template name="copyright.section">
+    <xsl:param name="info"/>
+    <xsl:choose>
+      <xsl:when test="$info//copyright|$info//legalnotice">
+        <xsl:call-template name="make.subheading">
+          <xsl:with-param name="title">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key">Copyright</xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:text>.br&#10;</xsl:text>
+        <!-- * the copyright mode="titlepage.mode" template is -->
+        <!-- * imported from the HTML stylesheets -->
+        <xsl:for-each select="
+          (($info[//copyright])[last()]//copyright)
+          | (($info[//legalnotice])[last()]//legalnotice)">
+          <xsl:choose>
+            <xsl:when test="local-name(.) = 'copyright'">
+              <xsl:variable name="contents">
+                <xsl:apply-templates select="." mode="titlepage.mode"/>
+              </xsl:variable>
+              <xsl:value-of select="normalize-space($contents)"/>
+              <xsl:text>&#10;</xsl:text>
+              <xsl:text>.br&#10;</xsl:text>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="." mode="titlepage.mode"/>
+              <xsl:text>&#10;</xsl:text>
+              <xsl:text>.sp&#10;</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise/> <!-- * do nothing, no copyright or legalnotice found -->
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="legalnotice">
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <!-- * ============================================================== -->
+
+  <!-- * suppress refmeta and all *info (we grab what we need from them -->
+  <!-- * elsewhere) -->
+
+  <xsl:template match="refmeta"/>
+
+  <xsl:template match="info|refentryinfo|referenceinfo|refsynopsisdivinfo
+                       |refsectioninfo|refsect1info|refsect2info|refsect3info
+                       |setinfo|bookinfo|articleinfo|chapterinfo|sectioninfo
+                       |sect1info|sect2info|sect3info|sect4info|sect5info
+                       |partinfo|prefaceinfo|appendixinfo|docinfo"/>
+
+  <!-- ============================================================== -->
+  
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/manpages/inline.xsl b/applications/content/template/docbook/manpages/inline.xsl
new file mode 100644
index 0000000..5a97096
--- /dev/null
+++ b/applications/content/template/docbook/manpages/inline.xsl
@@ -0,0 +1,219 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="replaceable|varname|structfield">
+  <xsl:if test="$man.hyphenate.computer.inlines = 0">
+    <xsl:call-template name="suppress.hyphenation"/>
+  </xsl:if>
+  <xsl:call-template name="italic">
+    <xsl:with-param name="node" select="."/>
+    <xsl:with-param name="context" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="option|userinput|envar|errorcode|constant|markup">
+  <xsl:if test="$man.hyphenate.computer.inlines = 0">
+    <xsl:call-template name="suppress.hyphenation"/>
+  </xsl:if>
+  <xsl:call-template name="bold">
+    <xsl:with-param name="node" select="."/>
+    <xsl:with-param name="context" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="classname">
+  <xsl:if test="$man.hyphenate.computer.inlines = 0">
+    <xsl:call-template name="suppress.hyphenation"/>
+  </xsl:if>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="command">
+  <xsl:if test="$man.hyphenate.computer.inlines = 0">
+    <xsl:call-template name="suppress.hyphenation"/>
+  </xsl:if>
+  <xsl:call-template name="bold">
+    <xsl:with-param name="node" select="."/>
+    <xsl:with-param name="context" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="type[not(ancestor::cmdsynopsis) and
+                     not(ancestor::funcsynopsis)]">
+  <xsl:if test="$man.hyphenate.computer.inlines = 0">
+    <xsl:call-template name="suppress.hyphenation"/>
+  </xsl:if>
+  <xsl:call-template name="bold">
+    <xsl:with-param name="node" select="."/>
+    <xsl:with-param name="context" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="function[not(ancestor::cmdsynopsis) and
+                     not(ancestor::funcsynopsis)]">
+  <xsl:if test="$man.hyphenate.computer.inlines = 0">
+    <xsl:call-template name="suppress.hyphenation"/>
+  </xsl:if>
+  <xsl:call-template name="bold">
+    <xsl:with-param name="node" select="."/>
+    <xsl:with-param name="context" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="parameter[not(ancestor::cmdsynopsis) and
+                     not(ancestor::funcsynopsis)]">
+  <xsl:if test="$man.hyphenate.computer.inlines = 0">
+    <xsl:call-template name="suppress.hyphenation"/>
+  </xsl:if>
+  <xsl:call-template name="italic">
+    <xsl:with-param name="node" select="."/>
+    <xsl:with-param name="context" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="filename">
+  <!-- * add hyphenation suppression in Filename output only if -->
+  <!-- * break.after.slash is also non-zero -->
+  <xsl:if test="$man.hyphenate.filenames = 0 and
+                $man.break.after.slash = 0">
+    <xsl:call-template name="suppress.hyphenation"/>
+  </xsl:if>
+  <!-- * part of the old man(7) man page, now man-pages(7), says, -->
+  <!-- * "Filenames (whether pathnames, or references to files in the -->
+  <!-- * /usr/include directory) are always in italics". But that's dumb, -->
+  <!-- * and looks like crap in PS/printed/PDF output, and there's no -->
+  <!-- * sound rationale for it, so we don't do it. -->
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="emphasis">
+  <xsl:choose>
+    <xsl:when test="
+      @role = 'bold' or
+      @role = 'strong' or
+      @remap = 'B'">
+      <xsl:call-template name="bold">
+        <xsl:with-param name="node" select="."/>
+        <xsl:with-param name="context" select="."/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="italic">
+        <xsl:with-param name="node" select="."/>
+        <xsl:with-param name="context" select="."/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="optional">
+  <xsl:value-of select="$arg.choice.opt.open.str"/>
+  <xsl:apply-templates/>
+  <xsl:value-of select="$arg.choice.opt.close.str"/>
+</xsl:template>
+
+<xsl:template name="do-citerefentry">
+  <xsl:param name="refentrytitle" select="''"/>
+  <xsl:param name="manvolnum" select="''"/>
+  <xsl:variable name="title">
+    <xsl:value-of select="$refentrytitle"/>
+  </xsl:variable>
+  <xsl:call-template name="bold">
+    <xsl:with-param name="node" select="exsl:node-set($title)"/>
+    <xsl:with-param name="context" select="."/>
+  </xsl:call-template>
+  <xsl:text>(</xsl:text>
+  <xsl:value-of select="$manvolnum"/>
+  <xsl:text>)</xsl:text>
+</xsl:template>
+
+<xsl:template match="citerefentry">
+  <xsl:call-template name="do-citerefentry">
+    <xsl:with-param name="refentrytitle" select="refentrytitle"/>
+    <xsl:with-param name="manvolnum" select="manvolnum"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="trademark|productname">
+  <xsl:apply-templates/>
+  <xsl:choose>
+    <!-- * Just use true Unicode chars for copyright, trademark, etc., -->
+    <!-- * symbols (by default, we later automatically translate them -->
+    <!-- * with the apply-string-subst-map template, or with the -->
+    <!-- * default character map, if man.charmap.enabled is true). -->
+    <xsl:when test="@class = 'copyright'">
+      <xsl:text>&#x00a9;</xsl:text>
+    </xsl:when>
+    <xsl:when test="@class = 'registered'">
+      <xsl:text>&#x00ae;</xsl:text>
+    </xsl:when>
+    <xsl:when test="@class = 'service'">
+      <xsl:text>&#x2120;</xsl:text>
+    </xsl:when>
+    <xsl:when test="@class = 'trade'">
+      <xsl:text>&#x2122;</xsl:text>
+    </xsl:when>
+    <!-- * for Trademark element, render a trademark symbol by default -->
+    <!-- * even if no "class" value is specified -->
+    <xsl:when test="self::trademark" >
+      <xsl:text>&#x2122;</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- * otherwise we have a Productname with no value for the -->
+      <!-- * "class" attribute, so don't render any symbol by default -->
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- * span seems to sneak through into output sometimes, possibly due -->
+<!-- * to failed Olink processing; so we need to catch it -->
+<xsl:template match="span">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="inlinemediaobject">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- * indexterm instances produce groff comments like this: -->
+<!-- * .\" primary: secondary: tertiary -->
+<xsl:template match="indexterm">
+  <xsl:text>.\" </xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="primary">
+  <xsl:value-of select="normalize-space(.)"/>
+</xsl:template>
+
+<xsl:template match="secondary|tertiary">
+  <xsl:text>: </xsl:text>
+  <xsl:value-of select="normalize-space(.)"/>
+</xsl:template>
+
+<!-- * non-empty remark instances produce groff comments -->
+<xsl:template match="remark">
+  <xsl:variable name="content" select="normalize-space(.)"/>
+  <xsl:if test="not($content = '')">
+    <xsl:text>.\" </xsl:text>
+    <xsl:value-of select="$content"/>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/manpages/lists.xsl b/applications/content/template/docbook/manpages/lists.xsl
new file mode 100644
index 0000000..42d487f
--- /dev/null
+++ b/applications/content/template/docbook/manpages/lists.xsl
@@ -0,0 +1,604 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:variable name="list-indent">
+  <xsl:choose>
+    <xsl:when test="not($man.indent.lists = 0)">
+      <xsl:value-of select="$man.indent.width"/>
+    </xsl:when>
+    <xsl:when test="not($man.indent.refsect = 0)">
+      <!-- * "zq" is the name of a register we set for -->
+      <!-- * preserving the original default indent value -->
+      <!-- * when $man.indent.refsect is non-zero; -->
+      <!-- * "u" is a roff unit specifier -->
+      <xsl:text>\n(zqu</xsl:text>
+    </xsl:when>
+    <xsl:otherwise/> <!-- * otherwise, just leave it empty -->
+  </xsl:choose>
+</xsl:variable>
+
+<!-- ================================================================== -->
+
+<xsl:template match="para[ancestor::listitem or ancestor::step or ancestor::glossdef]|
+  simpara[ancestor::listitem or ancestor::step or ancestor::glossdef]|
+  remark[ancestor::listitem or ancestor::step or ancestor::glossdef]">
+  <xsl:call-template name="mixed-block"/>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:if test="following-sibling::*[1][
+    self::para or
+    self::simpara or
+    self::remark
+    ]">
+    <!-- * Make sure multiple paragraphs within a list item don't -->
+    <!-- * merge together.                                        -->
+    <xsl:text>.sp&#10;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="bibliolist">
+  <xsl:apply-templates/>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="variablelist|glosslist">
+  <xsl:if test="title">
+    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:call-template name="bold">
+      <xsl:with-param name="node" select="title"/>
+      <xsl:with-param name="context" select="."/>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="varlistentry|glossentry">
+  <xsl:text>.PP&#10;</xsl:text> 
+  <xsl:for-each select="term|glossterm">
+    <xsl:variable name="content">
+      <xsl:apply-templates/>
+    </xsl:variable>
+    <xsl:value-of select="normalize-space($content)"/>
+    <xsl:choose>
+      <xsl:when test="position() = last()"/> <!-- do nothing -->
+      <xsl:otherwise>
+        <!-- * if we have multiple terms in the same varlistentry, generate -->
+        <!-- * a separator (", " by default) and/or an additional line -->
+        <!-- * break after each one except the last -->
+        <!-- * -->
+        <!-- * note that it is not valid to have multiple glossterms -->
+        <!-- * within a glossentry, so this logic never gets exercised -->
+        <!-- * for glossterms (every glossterm is always the last in -->
+        <!-- * its parent glossentry) -->
+        <xsl:value-of select="$variablelist.term.separator"/>
+        <xsl:if test="not($variablelist.term.break.after = '0')">
+          <xsl:text>&#10;</xsl:text>
+          <xsl:text>.br&#10;</xsl:text>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:text>.RS</xsl:text> 
+  <xsl:if test="not($list-indent = '')">
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$list-indent"/>
+  </xsl:if>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>.RE&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varlistentry/term"/>
+<xsl:template match="glossentry/glossterm"/>
+
+<xsl:template match="variablelist[ancestor::listitem or ancestor::step or ancestor::glossdef]|
+  glosslist[ancestor::listitem or ancestor::step or ancestor::glossdef]">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::node() or
+    parent::para[following-sibling::node()] or
+    parent::simpara[following-sibling::node()] or
+    parent::remark[following-sibling::node()]">
+    <xsl:text>.sp</xsl:text> 
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="varlistentry/listitem|glossentry/glossdef">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="itemizedlist/listitem">
+  <!-- * We output a real bullet here (rather than, "\(bu", -->
+  <!-- * the roff bullet) because, when we do character-map -->
+  <!-- * processing before final output, the character-map will -->
+  <!-- * handle conversion of the &#x2022; to "\(bu" for us -->
+  <xsl:text>&#10;</xsl:text>
+  <xsl:text>.sp</xsl:text>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:text>.RS</xsl:text>
+  <xsl:if test="not($list-indent = '')">
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$list-indent"/>
+  </xsl:if>
+  <xsl:text>&#10;</xsl:text>
+  <!-- * if "n" then we are using "nroff", which means the output is for -->
+  <!-- * TTY; so we do some fixed-width-font hackery with \h to make a -->
+  <!-- * hanging indent (instead of using .IP, which has some -->
+  <!-- * undesirable side effects under certain circumstances) -->
+  <xsl:call-template name="roff-if-else-start"/>
+  <xsl:text>\h'-</xsl:text>
+  <xsl:choose>
+    <xsl:when test="not($list-indent = '')">
+      <xsl:text>0</xsl:text>
+      <xsl:value-of select="$list-indent"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>\n(INu</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:text>'</xsl:text>
+  <xsl:text>&#x2022;</xsl:text>
+  <xsl:text>\h'+</xsl:text>
+  <xsl:choose>
+    <xsl:when test="not($list-indent = '')">
+      <xsl:text>0</xsl:text>
+      <xsl:value-of select="$list-indent - 1"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>\n(INu-1</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:text>'\c&#10;</xsl:text>
+  <!-- * else, we are not using for "nroff", but instead "troff" - which -->
+  <!-- * means not for TTY, but for PS or whatever; so we’re not using a -->
+  <!-- * fixed-width font, so use a real .IP instead -->
+  <xsl:call-template name="roff-else"/>
+  <!-- * .IP generates a blank like of space, so let’s go backwards one -->
+  <!-- * line up to compensate for that -->
+  <xsl:text>.sp -1&#10;</xsl:text>
+  <xsl:text>.IP \(bu 2.3&#10;</xsl:text>
+  <!-- * The value 2.3 is the amount of indentation; we use 2.3 instead -->
+  <!-- * of 2 because when the font family is New Century Schoolbook it -->
+  <!-- * seems to require the extra space. -->
+  <xsl:call-template name="roff-if-end"/>
+  <xsl:apply-templates/>
+  <xsl:text>.RE&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem|procedure/step">
+  <xsl:text>&#10;</xsl:text>
+  <xsl:text>.sp</xsl:text>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:text>.RS</xsl:text>
+  <xsl:if test="not($list-indent = '')">
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$list-indent"/>
+  </xsl:if>
+  <xsl:text>&#10;</xsl:text>
+  <!-- * if "n" then we are using "nroff", which means the output is for -->
+  <!-- * TTY; so we do some fixed-width-font hackery with \h to make a -->
+  <!-- * hanging indents (instead of using .IP, which has some -->
+  <!-- * undesirable side effects under certain circumstances) -->
+  <xsl:call-template name="roff-if-else-start"/>
+  <xsl:text>\h'-</xsl:text>
+  <xsl:choose>
+    <xsl:when test="not($list-indent = '')">
+      <xsl:text>0</xsl:text>
+      <xsl:value-of select="$list-indent"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>\n(INu+3n</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:text>'</xsl:text>
+  <xsl:if test="count(preceding-sibling::listitem) &lt; 9">
+    <xsl:text> </xsl:text>
+  </xsl:if>
+  <xsl:number format="1."/>
+  <xsl:text>\h'+</xsl:text>
+  <xsl:choose>
+    <xsl:when test="not($list-indent = '')">
+      <xsl:text>0</xsl:text>
+      <xsl:value-of select="$list-indent - 3"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>1n</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:text>'\c&#10;</xsl:text>
+  <!-- * else, we are not using for "nroff", but instead "troff" - which -->
+  <!-- * means not for TTY, but for PS or whatever; so we’re not using a -->
+  <!-- * fixed-width font, so use a real .IP instead -->
+  <xsl:call-template name="roff-else"/>
+  <!-- * .IP generates a blank line of space, so let’s go backwards one -->
+  <!-- * line up to compensate for that -->
+  <xsl:text>.sp -1&#10;</xsl:text>
+  <xsl:text>.IP "</xsl:text>
+  <xsl:if test="count(preceding-sibling::listitem) &lt; 9">
+    <xsl:text>  </xsl:text>
+  </xsl:if>
+  <xsl:number format="1."/>
+  <xsl:text>" 4.2&#10;</xsl:text>
+  <!-- * The value 4.2 is the amount of indentation; we use 4.2 instead -->
+  <!-- * of 4 because when the font family is Bookman it seems to require -->
+  <!-- * the extra space. -->
+  <xsl:call-template name="roff-if-end"/>
+  <xsl:apply-templates/>
+  <xsl:text>.RE&#10;</xsl:text>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="itemizedlist|orderedlist|procedure">
+  <xsl:if test="title">
+    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:call-template name="bold">
+      <xsl:with-param name="node" select="title"/>
+      <xsl:with-param name="context" select="."/>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+  <!-- * DocBook allows just about any block content to appear in -->
+  <!-- * lists before the actual list items, so we need to get that -->
+  <!-- * content (if any) before getting the list items -->
+  <xsl:apply-templates
+    select="*[not(self::listitem) and not(self::title)]"/>
+  <xsl:apply-templates select="listitem"/>
+  <!-- * If this list is a child of para and has content following -->
+  <!-- * it, within the same para, then add a blank line and move -->
+  <!-- * the left margin back to where it was -->
+  <xsl:if test="parent::para and following-sibling::node()">
+    <xsl:text>.sp</xsl:text>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="itemizedlist[ancestor::listitem or ancestor::step  or ancestor::glossdef]|
+  orderedlist[ancestor::listitem or ancestor::step or ancestor::glossdef]|
+  procedure[ancestor::listitem or ancestor::step or ancestor::glossdef]">
+  <xsl:if test="title">
+    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:call-template name="bold">
+      <xsl:with-param name="node" select="title"/>
+      <xsl:with-param name="context" select="."/>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::node() or
+    parent::para[following-sibling::node()] or
+    parent::simpara[following-sibling::node()] or
+    parent::remark[following-sibling::node()]">
+    <xsl:text>.sp</xsl:text> 
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<!-- ================================================================== -->
+  
+<!-- * for simplelist type="inline", render it as a comma-separated list -->
+<xsl:template match="simplelist[@type='inline']">
+  <!-- * if dbchoice PI exists, use that to determine the choice separator -->
+  <!-- * (that is, equivalent of "and" or "or" in current locale), or literal -->
+  <!-- * value of "choice" otherwise -->
+  <xsl:variable name="localized-choice-separator">
+    <xsl:choose>
+      <xsl:when test="processing-instruction('dbchoice')">
+        <xsl:call-template name="select.choice.separator"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * empty -->
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:for-each select="member">
+    <xsl:apply-templates/>
+    <xsl:choose>
+      <xsl:when test="position() = last()"/> <!-- do nothing -->
+      <xsl:otherwise>
+        <xsl:text>, </xsl:text>
+        <xsl:if test="position() = last() - 1">
+          <xsl:if test="$localized-choice-separator != ''">
+            <xsl:value-of select="$localized-choice-separator"/>
+            <xsl:text> </xsl:text>
+          </xsl:if>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<!-- * if simplelist type is not inline, render it as a one-column vertical -->
+<!-- * list (ignoring the values of the type and columns attributes) -->
+<xsl:template match="simplelist">
+  <xsl:for-each select="member">
+    <xsl:text>.RS</xsl:text> 
+    <xsl:if test="not($list-indent = '')">
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$list-indent"/>
+    </xsl:if>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:text>.RE&#10;</xsl:text>
+  </xsl:for-each>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<!-- * We output Segmentedlist as a table, using tbl(1) markup. There -->
+<!-- * is no option for outputting it in manpages in "list" form. -->
+<xsl:template match="segmentedlist">
+  <xsl:if test="title">
+    <xsl:text>.PP&#10;</xsl:text>
+    <xsl:call-template name="bold">
+      <xsl:with-param name="node" select="title"/>
+      <xsl:with-param name="context" select="."/>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+  <xsl:text>.\" line length increase to cope w/ tbl weirdness&#10;</xsl:text>
+  <xsl:text>.ll +(\n(LLu * 62u / 100u)&#10;</xsl:text>
+  <!-- * .TS = "Table Start" -->
+  <xsl:text>.TS&#10;</xsl:text>
+  <!-- * first output the table "format" spec, which tells tbl(1) how -->
+  <!-- * how to format each row and column. -->
+  <xsl:for-each select=".//segtitle">
+    <!-- * l = "left", which hard-codes left-alignment for tabular -->
+    <!-- * output of all segmentedlist content -->
+    <xsl:text>l</xsl:text>
+  </xsl:for-each>
+  <!-- * last line of table format section must end with a dot -->
+  <xsl:text>.&#10;</xsl:text>
+  <!-- * optionally suppress output of segtitle -->
+  <xsl:choose>
+    <xsl:when test="$man.segtitle.suppress != 0">
+      <!-- * non-zero = "suppress", so do nothing -->
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- * "0" = "do not suppress", so output the segtitle(s) -->
+      <xsl:apply-templates select=".//segtitle" mode="table-title"/>
+      <xsl:text>&#10;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates/>
+  <!-- * .TE = "Table End" -->
+  <xsl:text>.TE&#10;</xsl:text>
+  <xsl:text>.\" line length decrease back to previous value&#10;</xsl:text>
+  <xsl:text>.ll -(\n(LLu * 62u / 100u)&#10;</xsl:text>
+  <!-- * put a blank line of space below the table -->
+  <xsl:text>.sp&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="segmentedlist/segtitle" mode="table-title">
+  <xsl:call-template name="italic">
+    <xsl:with-param name="node" select="."/>
+    <xsl:with-param name="context" select="."/>
+  </xsl:call-template>
+  <xsl:choose>
+    <xsl:when test="position() = last()"/> <!-- do nothing -->
+    <xsl:otherwise>
+      <!-- * tbl(1) treats tab characters as delimiters between -->
+      <!-- * cells; so we need to output a tab after each -->
+      <!-- * segtitle except the last one -->
+      <xsl:text>&#09;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="segmentedlist/seglistitem">
+  <xsl:apply-templates/>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="segmentedlist/seglistitem/seg">
+  <!-- * the T{ and T} stuff are delimiters to tell tbl(1) that -->
+  <!-- * the delimited contents are "text blocks" that groff(1) -->
+  <!-- * needs to process -->
+  <xsl:text>T{&#10;</xsl:text>
+  <xsl:variable name="contents">
+    <xsl:apply-templates/>
+  </xsl:variable>
+  <xsl:value-of select="normalize-space($contents)"/>
+  <xsl:text>&#10;T}</xsl:text>
+  <xsl:choose>
+    <xsl:when test="position() = last()"/> <!-- do nothing -->
+    <xsl:otherwise>
+      <!-- * tbl(1) treats tab characters as delimiters between -->
+      <!-- * cells; so we need to output a tab after each -->
+      <!-- * segtitle except the last one -->
+      <xsl:text>&#09;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="calloutlist">
+  <xsl:if test="title|info/title">
+    <xsl:call-template name="formal.object.heading"/>
+  </xsl:if>
+  <!-- * This template was originally copied over from the HTML -->
+  <!-- * calloutlist template, which precedes the following -->
+  <!-- * apply-templates with the comment "Preserve order of PIs and -->
+  <!-- * comments"; I'm not certain that it will actually have that -->
+  <!-- * effect for all cases, and it seems like there is probably a -->
+  <!-- * better way to do it, but anyway, I’m preserving it here for -->
+  <!-- * consistency. -->
+  <xsl:apply-templates 
+    select="*[not(self::callout or self::title or self::titleabbrev)]
+    |comment()[not(preceding-sibling::callout)]
+    |processing-instruction()[not(preceding-sibling::callout)]"/>
+  <!-- * put callout list into a table -->
+  <xsl:text>.TS&#10;</xsl:text>
+  <xsl:text>tab(:);&#10;</xsl:text>
+  <!-- * the following defines the row layout for the table: two columns, -->
+  <!-- * with the first cell in each row right-aligned, and the second -->
+  <!-- * cell left aligned with a width of 75% of the line length -->
+  <xsl:text>r lw(\n(.lu*75u/100u).&#10;</xsl:text>
+  <xsl:apply-templates select="callout
+    |comment()[preceding-sibling::callout]
+    |processing-instruction()[preceding-sibling::callout]"/>
+  <xsl:text>.TE&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="calloutlist/title"/>
+
+<xsl:template match="callout">
+  <!-- * first cell of each row is the set of callout numbers for this -->
+  <!-- * particular callout -->
+  <xsl:call-template name="callout.arearefs">
+    <xsl:with-param name="arearefs" select="@arearefs"/>
+  </xsl:call-template>
+  <!-- * end of the first cell in the row; the \h hackery is to correct -->
+  <!-- * for the excessive horizontal whitespace that tbl(1) adds between -->
+  <!-- * cells in the same row -->
+  <xsl:text>\h'-2n':</xsl:text>
+  <!-- * start the next cell in the row, which has the prose contents -->
+  <!-- * (description/explanation) for the callout -->
+  <xsl:text>T{&#10;</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>T}&#10;</xsl:text>
+  <!-- * end of the last cell and end of the row -->
+</xsl:template>
+
+<xsl:template name="callout.arearefs">
+  <xsl:param name="arearefs"></xsl:param>
+  <!-- * callout can have multiple values in its arearefs attribute, so -->
+  <!-- * we use the position param to track the postion of each value -->
+  <xsl:param name="position">1</xsl:param>
+  <xsl:if test="$arearefs!=''">
+    <xsl:choose>
+      <xsl:when test="substring-before($arearefs,' ')=''">
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef" select="$arearefs"/>
+          <xsl:with-param name="position" select="$position"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef"
+            select="substring-before($arearefs,' ')"/>
+          <xsl:with-param name="position" select="$position"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="callout.arearefs">
+      <xsl:with-param name="arearefs"
+        select="substring-after($arearefs,' ')"/>
+      <xsl:with-param name="position" select="$position + 1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="callout.arearef">
+  <xsl:param name="arearef"></xsl:param>
+  <!-- * callout can have multiple values in its arearefs attribute, so -->
+  <!-- * we use the position param to track the postion of each value -->
+  <xsl:param name="position"></xsl:param>
+  <xsl:variable name="targets" select="key('id',$arearef)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="$arearef"/>
+  </xsl:call-template>
+
+  <xsl:choose>
+    <xsl:when test="count($target)=0">
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($target)='co'">
+      <!-- * if this is not the first value in the set of values in the -->
+      <!-- * arearef attribute for this callout, then we prepend a groff -->
+      <!-- * non-breaking space to it, to prevent groff from injecting -->
+      <!-- * linebreaks into the output. For callout instances with -->
+      <!-- * multiple values in their arearefs attributes, that results -->
+      <!-- * in all of callout numbers beings listed on the same line. -->
+      <xsl:if test="not($position = 1)">
+        <xsl:text>\ </xsl:text>
+      </xsl:if>
+      <xsl:apply-templates select="$target"
+        mode="calloutlist-callout-number"/>
+    </xsl:when>
+    <!-- * the manpages stylesheet does not really support areaset and -->
+    <!-- * area (because we can't/don't actually render the callout bugs -->
+    <!-- * at the specified coordinates); however, the following (for -->
+    <!-- * what it's worth) might cause the callout numbers in the -->
+    <!-- * calloutlist to be render at least (then again, maybe it won't; -->
+    <!-- * it's not actually been tested... -->
+    <xsl:when test="local-name($target)='areaset'">
+      <xsl:call-template name="callout-bug">
+        <xsl:with-param name="conum">
+          <xsl:apply-templates select="$target" mode="conumber"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($target)='area'">
+      <xsl:choose>
+        <xsl:when test="$target/parent::areaset">
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates
+                select="$target/parent::areaset" mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target"
+                mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>???</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- * we bold the actual callout bugs and put -->
+<!-- * parenthesis around them -->
+<xsl:template name="callout-bug">
+  <xsl:param name="conum" select='1'/>
+  <xsl:text>\fB(</xsl:text>
+  <xsl:value-of select="$conum"/>
+  <xsl:text>)\fR</xsl:text>
+</xsl:template>
+
+<!-- * we bold the callout numbers and follow each -->
+<!-- * with a period -->
+<xsl:template name="calloutlist-callout-number">
+  <xsl:param name="conum" select='1'/>
+  <xsl:text>\fB</xsl:text>
+  <xsl:value-of select="$conum"/>
+  <xsl:text>.\fR</xsl:text>
+</xsl:template>
+
+<xsl:template match="co" mode="calloutlist-callout-number">
+  <xsl:call-template name="calloutlist-callout-number">
+    <xsl:with-param name="conum">
+      <xsl:number count="co"
+        level="any"
+        from="programlisting|screen|literallayout|synopsis"
+        format="1"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/manpages/other.xsl b/applications/content/template/docbook/manpages/other.xsl
new file mode 100644
index 0000000..b38ebe2
--- /dev/null
+++ b/applications/content/template/docbook/manpages/other.xsl
@@ -0,0 +1,888 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:ng="http://docbook.org/docbook-ng"
+                xmlns:db="http://docbook.org/ns/docbook"
+                xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
+                exclude-result-prefixes="exsl"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- * This file contains named templates related to things other than -->
+<!-- * just assembling the actual text of the main text flow of each man -->
+<!-- * page. This "other" stuff currently amounts to these steps: -->
+<!-- * -->
+<!-- *  - get contents of the "map" used to convert special characters -->
+<!-- *  - output boilerplate messages -->
+<!-- *  - escape backslash, dot, dash, and apostrophe characters -->
+<!-- *  - convert non-breaking spaces -->
+<!-- *  - add a comment to top part of roff source of each page -->
+<!-- *  - make a .TH title line (for controlling page header/footer) -->
+<!-- *  - set hyphenation, alignment, indent & line-breaking defaults -->
+<!-- *  - "prepare" the complete man page contents for final output -->
+<!-- *  - write the actual man file to the filesystem -->
+<!-- *  - write any "stub" pages to the filesystem -->
+<!-- * -->
+<!-- * The templates in this file are actually called only once per -->
+<!-- * each Refentry; they are just in a separate file for the purpose -->
+<!-- * of keeping things modular. -->
+
+<!-- ==================================================================== -->
+
+<xsl:preserve-space elements="*"/>
+
+<xsl:strip-space elements="
+abstract affiliation anchor answer appendix area areaset areaspec
+artheader article audiodata audioobject author authorblurb authorgroup
+beginpage bibliodiv biblioentry bibliography biblioset blockquote book
+bookbiblio bookinfo callout calloutlist caption caution chapter
+citerefentry cmdsynopsis co collab colophon colspec confgroup
+copyright dedication docinfo editor entrytbl epigraph equation
+example figure footnote footnoteref formalpara funcprototype
+funcsynopsis glossary glossdef glossdiv glossentry glosslist graphicco
+group highlights imagedata imageobject imageobjectco important index
+indexdiv indexentry indexterm informalequation informalexample
+informalfigure informaltable inlineequation inlinemediaobject
+itemizedlist itermset keycombo keywordset legalnotice listitem lot
+mediaobject mediaobjectco menuchoice msg msgentry msgexplan msginfo
+msgmain msgrel msgset msgsub msgtext note objectinfo
+orderedlist othercredit part partintro preface printhistory procedure
+programlistingco publisher qandadiv qandaentry qandaset question
+refentry reference refmeta refnamediv refsection refsect1 refsect1info refsect2
+refsect2info refsect3 refsect3info refsynopsisdiv refsynopsisdivinfo
+revhistory revision row sbr screenco screenshot sect1 sect1info sect2
+sect2info sect3 sect3info sect4 sect4info sect5 sect5info section
+sectioninfo seglistitem segmentedlist seriesinfo set setindex setinfo
+shortcut sidebar simplelist simplesect spanspec step subject
+subjectset substeps synopfragment table tbody textobject tfoot tgroup
+thead tip toc tocchap toclevel1 toclevel2 toclevel3 toclevel4
+toclevel5 tocpart varargs variablelist varlistentry videodata
+videoobject void warning subjectset
+
+classsynopsis
+constructorsynopsis
+destructorsynopsis
+fieldsynopsis
+methodparam
+methodsynopsis
+ooclass
+ooexception
+oointerface
+simplemsgentry
+manvolnum
+"/>
+
+<!-- ==================================================================== -->
+<!-- * Get character map contents -->
+<!-- ==================================================================== -->
+
+  <xsl:variable name="man.charmap.contents">
+    <xsl:if test="$man.charmap.enabled != 0">
+      <xsl:variable name="lang">
+        <xsl:call-template name="l10n.language">
+          <xsl:with-param name="target" select="//refentry[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:call-template name="read-character-map">
+        <xsl:with-param name="use.subset" select="$man.charmap.use.subset"/>
+        <xsl:with-param name="subset.profile">
+          <xsl:choose>
+            <xsl:when test="$lang = 'en'">
+              <xsl:value-of select="$man.charmap.subset.profile.english"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="$man.charmap.subset.profile"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+        <xsl:with-param name="uri">
+          <xsl:choose>
+            <xsl:when test="$man.charmap.uri != ''">
+              <xsl:value-of select="$man.charmap.uri"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="'../manpages/charmap.groff.xsl'"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="root.messages">
+  <xsl:param name="refname"/>
+  <!-- redefine this any way you'd like to output messages -->
+  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+  <!-- Example:
+  <xsl:if test="//foo">
+    <xsl:call-template name="log.message">
+      <xsl:with-param name="level">Warn</xsl:with-param>
+      <xsl:with-param name="source" select="$refname"/>
+      <xsl:with-param name="context-desc">
+        <xsl:text>limitation</xsl:text>
+      </xsl:with-param>
+      <xsl:with-param name="message">
+        <xsl:text>Output for foo element is not yet supported.</xsl:text>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
+  -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- * Escape roff special chars -->
+<!-- ==================================================================== -->
+
+<!-- ******************************************************************** -->
+<!-- *  -->
+<!-- * The backslash, dot, dash, and apostrophe (\, ., -, ') characters -->
+<!-- * have special meaning for roff, so before we do any other -->
+<!-- * processing, we must escape those characters where they appear in -->
+<!-- * the source content. -->
+<!-- *  -->
+<!-- * Here we also deal with replacing U+00a0 (non-breaking space) with -->
+<!-- * its roff equivalent -->
+<!-- *  -->
+<!-- ******************************************************************** -->
+
+<xsl:template match="//refentry//text()">
+  <xsl:call-template name="escape.roff.specials">
+    <xsl:with-param name="content">
+      <xsl:value-of select="."/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="escape.roff.specials">
+  <xsl:param name="content"/>
+  <xsl:call-template name="convert.nobreak-space">
+    <xsl:with-param name="content">
+      <xsl:call-template name="escape.apostrophe">
+        <xsl:with-param name="content">
+          <xsl:call-template name="escape.dash">
+            <xsl:with-param name="content">
+              <xsl:call-template name="escape.dot">
+                <xsl:with-param name="content">
+                  <xsl:call-template name="escape.backslash">
+                    <xsl:with-param name="content" select="$content"/>
+                  </xsl:call-template>
+                </xsl:with-param>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="escape.backslash">
+  <xsl:param name="content"/>
+  <xsl:call-template name="string.subst">
+    <xsl:with-param name="string" select="$content"/>
+    <xsl:with-param name="target">\</xsl:with-param>
+    <!-- * we use "\e" instead of "\\" because the groff docs say -->
+    <!-- * that's the correct thing to do; also because testing -->
+    <!-- * shows that "\\" doesn't always work as expected; for -->
+    <!-- * example, "\\" within a table seems to mess things up -->
+    <xsl:with-param name="replacement">\e</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="escape.dot">
+  <xsl:param name="content"/>
+  <xsl:call-template name="string.subst">
+    <xsl:with-param name="string" select="$content"/>
+    <xsl:with-param name="target">.</xsl:with-param>
+    <xsl:with-param name="replacement">\&amp;.</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="escape.dash">
+  <xsl:param name="content"/>
+  <xsl:call-template name="string.subst">
+    <xsl:with-param name="string" select="$content"/>
+    <xsl:with-param name="target">-</xsl:with-param>
+    <xsl:with-param name="replacement">\-</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="escape.apostrophe">
+  <xsl:param name="content"/>
+  <xsl:call-template name="string.subst">
+    <xsl:with-param name="string" select="$content"/>
+    <xsl:with-param name="target">'</xsl:with-param>
+    <xsl:with-param name="replacement">\*(Aq</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="convert.nobreak-space">
+  <xsl:param name="content"/>
+  <xsl:call-template name="string.subst">
+    <xsl:with-param name="string" select="$content"/>
+    <xsl:with-param name="target">&#x00a0;</xsl:with-param>
+    <!-- * A no-break space can be written two ways in roff; the -->
+    <!-- * difference, according to the "Page Motions" node in the -->
+    <!-- * groff info page, is: -->
+    <!-- *  -->
+    <!-- *   "\ " = -->
+    <!-- *   An unbreakable and unpaddable (i.e. not expanded -->
+    <!-- *   during filling) space. -->
+    <!-- *  -->
+    <!-- *   "\~" = -->
+    <!-- *   An unbreakable space that stretches like a normal -->
+    <!-- *   inter-word space when a line is adjusted."  -->
+    <!-- *  -->
+    <!-- * Unfortunately, roff seems to do some weird things with -->
+    <!-- * long lines that only have words separated by "\~" -->
+    <!-- * spaces, so it's safer just to stick with the "\ " space -->
+    <!-- *  -->
+    <!-- * We append a "\&" to handle the case of a no-break space that -->
+    <!-- * appears at the end of a line - because later processing will -->
+    <!-- * cause that space to get eaten otherwise. -->
+    <xsl:with-param name="replacement">\ \&amp;</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * top.comment generates a comment containing metadata for the man -->
+<!-- * page; for example, Author, Generator, and Date information -->
+
+  <xsl:template name="top.comment">
+    <xsl:param name="info"/>
+    <xsl:param name="date"/>
+    <xsl:param name="title"/>
+    <xsl:param name="manual"/>
+    <xsl:param name="source"/>
+    <xsl:param name="refname"/>
+    <xsl:text>.\"     Title: </xsl:text>
+    <xsl:call-template name="replace.dots.and.dashes">
+      <xsl:with-param name="content" select="$title"/>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:text>.\"    Author: </xsl:text>
+    <xsl:call-template name="replace.dots.and.dashes">
+      <xsl:with-param name="content">
+        <xsl:call-template name="make.roff.metadata.author">
+          <xsl:with-param name="info" select="$info"/>
+          <xsl:with-param name="refname" select="$refname"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:text>.\" Generator: DocBook </xsl:text>
+    <xsl:value-of select="$DistroTitle"/>
+    <xsl:text> v</xsl:text>
+    <xsl:call-template name="replace.dots.and.dashes">
+      <xsl:with-param name="content" select="$VERSION"/>
+    </xsl:call-template>
+    <xsl:text> &lt;http://docbook.sf.net/></xsl:text>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:text>.\"      Date: </xsl:text>
+    <xsl:call-template name="replace.dots.and.dashes">
+      <xsl:with-param name="content" select="$date"/>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:text>.\"    Manual: </xsl:text>
+    <xsl:call-template name="replace.dots.and.dashes">
+      <xsl:with-param name="content" select="$manual"/>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:text>.\"    Source: </xsl:text>
+    <xsl:call-template name="replace.dots.and.dashes">
+      <xsl:with-param name="content" select="$source"/>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:text>.\"  Language: </xsl:text>
+    <xsl:call-template name="l10n.language.name"/>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:text>.\"</xsl:text>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:template>
+
+<!-- ==================================================================== -->
+
+  <xsl:template name="TH.title.line">
+
+    <!-- * The exact way that .TH contents are displayed is system- -->
+    <!-- * dependent; it varies somewhat between OSes and roff -->
+    <!-- * versions. Below is a description of how Linux systems with -->
+    <!-- * a modern groff seem to render .TH contents. -->
+    <!-- * -->
+    <!-- *   title(section)  extra3  title(section)  <- page header -->
+    <!-- *   extra2          extra1  title(section)  <- page footer-->
+    <!-- * -->
+    <!-- * Or, using the names with which the man(7) man page refers -->
+    <!-- * to the various fields: -->
+    <!-- * -->
+    <!-- *   title(section)  manual  title(section)  <- page header -->
+    <!-- *   source          date    title(section)  <- page footer-->
+    <!-- * -->
+    <!-- * Note that while extra1, extra2, and extra3 are all (nominally) -->
+    <!-- * optional, in practice almost all pages include an "extra1" -->
+    <!-- * field, which is, universally, a date (in some form), and it is -->
+    <!-- * always rendered in the same place (the middle footer position) -->
+    <!-- * -->
+    <!-- * Here are a couple of examples of real-world man pages that -->
+    <!-- * have somewhat useful page headers/footers: -->
+    <!-- * -->
+    <!-- *   gtk-options(7)    GTK+ User's Manual   gtk-options(7) -->
+    <!-- *   GTK+ 1.2              2003-10-20       gtk-options(7) -->
+    <!-- * -->
+    <!-- *   svgalib(7)       Svgalib User Manual       svgalib(7) -->
+    <!-- *   Svgalib 1.4.1      16 December 1999        svgalib(7) -->
+    <!-- * -->
+    <xsl:param name="title"/>
+    <xsl:param name="section"/>
+    <xsl:param name="extra1"/>
+    <xsl:param name="extra2"/>
+    <xsl:param name="extra3"/>
+
+    <xsl:call-template name="mark.subheading"/>
+    <!-- * Note that we generate quotes around _every_ field in the -->
+    <!-- * .TH title line, including the "title" and "section" -->
+    <!-- * fields. That is because we use the contents of those "as -->
+    <!-- * is", unchanged from the DocBook source; and DTD-based -->
+    <!-- * validation does not provide a way to constrain them to be -->
+    <!-- * "space free" -->
+    <xsl:text>.TH "</xsl:text>
+    <xsl:call-template name="string.upper">
+      <xsl:with-param name="string">
+        <xsl:choose>
+          <xsl:when test="$man.th.title.max.length != ''">
+            <xsl:value-of
+                select="normalize-space(substring($title, 1, $man.th.title.max.length))"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="normalize-space($title)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>" "</xsl:text>
+    <xsl:value-of select="normalize-space($section)"/>
+    <xsl:text>" "</xsl:text>
+    <xsl:if test="$man.th.extra1.suppress = 0">
+      <!-- * there is no max.length for the extra1 field; the reason -->
+      <!-- * is, it is almost always a date, and it is not possible -->
+      <!-- * to truncate dates without changing their meaning -->
+      <xsl:value-of select="normalize-space($extra1)"/>
+    </xsl:if>
+    <xsl:text>" "</xsl:text>
+    <xsl:if test="$man.th.extra2.suppress = 0">
+      <xsl:choose>
+        <!-- * if max.length is non-empty, use value to truncate field -->
+        <xsl:when test="$man.th.extra2.max.length != ''">
+          <xsl:value-of
+              select="normalize-space(substring($extra2, 1, $man.th.extra2.max.length))"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="normalize-space($extra2)"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+    <xsl:text>" "</xsl:text>
+    <xsl:if test="$man.th.extra3.suppress = 0">
+      <xsl:choose>
+        <!-- * if max.length is non-empty, use value to truncate field -->
+        <xsl:when test="$man.th.extra3.max.length != ''">
+          <xsl:value-of
+              select="normalize-space(substring($extra3, 1, $man.th.extra3.max.length))"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="normalize-space($extra3)"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+    <xsl:text>"&#10;</xsl:text>
+    <xsl:call-template name="mark.subheading"/>
+  </xsl:template>
+
+  <!-- ============================================================== -->
+
+  <xsl:template name="set.default.formatting">
+    <!-- * Set default hyphenation, justification, indentation and -->
+    <!-- * line-breaking -->
+    <!-- * -->
+    <!-- * If the value of man.hypenate is zero (the default), then -->
+    <!-- * disable hyphenation (".nh" = "no hyphenation") -->
+    <xsl:text>.\" -----------------------------------------------------------------&#10;</xsl:text>
+    <xsl:text>.\" * set default formatting&#10;</xsl:text>
+    <xsl:text>.\" -----------------------------------------------------------------&#10;</xsl:text>
+    <xsl:if test="$man.hyphenate = 0">
+      <xsl:text>.\" disable hyphenation&#10;</xsl:text>
+      <xsl:text>.nh&#10;</xsl:text>
+    </xsl:if>
+    <!-- * If the value of man.justify is zero (the default), then -->
+    <!-- * disable justification (".ad l" means "adjust to left only") -->
+    <xsl:if test="$man.justify = 0">
+      <xsl:text>.\" disable justification</xsl:text>
+      <xsl:text> (adjust text to left margin only)&#10;</xsl:text>
+      <xsl:text>.ad l&#10;</xsl:text>
+    </xsl:if>
+    <xsl:if test="not($man.indent.refsect = 0)">
+      <xsl:text>.\" store initial "default indentation value"&#10;</xsl:text>
+      <xsl:text>.nr zq \n(IN&#10;</xsl:text>
+      <xsl:text>.\" adjust default indentation&#10;</xsl:text>
+      <xsl:text>.nr IN </xsl:text>
+      <xsl:value-of select="$man.indent.width"/>
+      <xsl:text>&#10;</xsl:text>
+      <xsl:text>.\" adjust indentation of SS headings&#10;</xsl:text>
+      <xsl:text>.nr SN \n(IN&#10;</xsl:text>
+    </xsl:if>
+    <!-- * Unless the value of man.break.after.slash is zero (the -->
+    <!-- * default), tell groff that it is OK to break a line -->
+    <!-- * after a slash when needed. -->
+    <xsl:if test="$man.break.after.slash != 0">
+      <xsl:text>.\" enable line breaks after slashes&#10;</xsl:text>
+      <xsl:text>.cflags 4 /&#10;</xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- ================================================================== -->
+
+  <!-- * The prepare.manpage.contents template is called after all -->
+  <!-- * other processing has been done, before serializing the -->
+  <!-- * result of all the other processing. It basically works on -->
+  <!-- * the result as one big string. -->
+  <xsl:template name="prepare.manpage.contents">
+    <xsl:param name="content" select="''"/>
+
+    <!-- * If user has provided a "local" string-substitution map to -->
+    <!-- * be applied /before/ the standard string-substitution map, -->
+    <!-- * apply it. -->
+    <xsl:variable name="pre.adjusted.content">
+      <xsl:choose>
+        <xsl:when test="$man.string.subst.map.local.pre">
+          <!-- * normalized value of man.string.subst.map.local.pre -->
+          <!-- * is non-empty, so get contents of map and apply them -->
+          <xsl:call-template name="apply-string-subst-map">
+            <xsl:with-param name="content" select="$content"/>
+            <xsl:with-param name="map.contents"
+                            select="exsl:node-set($man.string.subst.map.local.pre)/*"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- * value of man.string.subst.map.local.pre is empty, -->
+          <!-- * so just copy original contents -->
+          <xsl:value-of select="$content"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <!-- * Apply standard string-substitution map. The main purpose -->
+    <!-- * of this map is to escape certain characters that have -->
+    <!-- * special meaning in roff, and to replace certain characters -->
+    <!-- * used within the stylesheet internally to represent roff -->
+    <!-- * markup characters. -->
+    <xsl:variable name="adjusted.content">
+      <xsl:call-template name="apply-string-subst-map">
+        <xsl:with-param name="content" select="$pre.adjusted.content"/>
+        <xsl:with-param name="map.contents"
+                        select="exsl:node-set($man.string.subst.map)/*"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <!-- * If user has provided a "local" string-substitution map to -->
+    <!-- * be applied /after/ the standard string-substitution map, -->
+    <!-- * apply it. -->
+    <xsl:variable name="post.adjusted.content">
+      <xsl:choose>
+        <xsl:when test="$man.string.subst.map.local.post">
+          <!-- * normalized value of man.string.subst.map.local.post -->
+          <!-- * is non-empty, so get contents of map and apply them -->
+          <xsl:call-template name="apply-string-subst-map">
+            <xsl:with-param name="content" select="$adjusted.content"/>
+            <xsl:with-param name="map.contents"
+                            select="exsl:node-set($man.string.subst.map.local.post)/*"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- * value of man.string.subst.map.local.post is empty, -->
+          <!-- * so just copy original contents -->
+          <xsl:value-of select="$adjusted.content"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <!-- * Optionally, apply a character map to replace Unicode -->
+    <!-- * symbols and special characters. -->
+    <xsl:choose>
+      <xsl:when test="$man.charmap.enabled != 0">
+        <xsl:call-template name="apply-character-map">
+          <xsl:with-param name="content" select="$post.adjusted.content"/>
+          <xsl:with-param name="map.contents"
+                          select="exsl:node-set($man.charmap.contents)/*"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * if we reach here, value of $man.charmap.enabled is zero, -->
+        <!-- * so we just pass the adjusted contents through "as is" -->
+        <xsl:value-of select="$adjusted.content"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- ================================================================== -->
+  
+  <xsl:template name="write.man.file">
+    <xsl:param name="name"/>
+    <xsl:param name="section"/>
+    <xsl:param name="lang"/>
+    <xsl:param name="content"/>
+    <xsl:param name="filename">
+      <xsl:call-template name="make.adjusted.man.filename">
+        <xsl:with-param name="name" select="$name"/>
+        <xsl:with-param name="section" select="$section"/>
+        <xsl:with-param name="lang" select="$lang"/>
+      </xsl:call-template>
+    </xsl:param>
+    <xsl:call-template name="write.text.chunk">
+      <xsl:with-param name="filename" select="$filename"/>
+      <xsl:with-param name="suppress-context-node-name" select="1"/>
+      <xsl:with-param name="quiet" select="$man.output.quietly"/>
+      <xsl:with-param
+          name="message-prolog"
+          >Note: </xsl:with-param>
+      <xsl:with-param name="encoding" select="$man.output.encoding"/>
+      <xsl:with-param name="content" select="$content"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <!-- ============================================================== -->
+
+  <!-- * A "stub" is sort of alias for another file, intended to be read -->
+  <!-- * and expanded by soelim(1); it's simply a file whose complete -->
+  <!-- * contents are just a single line of the following form: -->
+  <!-- * -->
+  <!-- *  .so manX/realname.X -->
+  <!-- * -->
+  <!-- * "realname" is a name of another man-page file. That .so line is -->
+  <!-- * basically a roff "include" statement.  When the man command finds -->
+  <!-- * it, it calls soelim(1) and includes and displays the contents of -->
+  <!-- * the manX/realqname.X file. -->
+  <!-- * -->
+  <!-- * If a refentry has multiple refnames, we generate a "stub" page for -->
+  <!-- * each refname found, except for the first one. -->
+  <xsl:template name="write.stubs">
+    <xsl:param name="first.refname"/>
+    <xsl:param name="section"/>
+    <xsl:param name="lang"/>
+    <xsl:for-each select="refnamediv/refname">
+      <xsl:if test=". != $first.refname">
+        <xsl:call-template name="write.text.chunk">
+          <xsl:with-param name="filename">
+            <xsl:call-template name="make.adjusted.man.filename">
+              <xsl:with-param name="name" select="."/>
+              <xsl:with-param name="section" select="$section"/>
+              <xsl:with-param name="lang" select="$lang"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="quiet" select="$man.output.quietly"/>
+          <xsl:with-param name="suppress-context-node-name" select="1"/>
+          <xsl:with-param name="message-prolog">Note: </xsl:with-param>
+          <xsl:with-param name="message-epilog"> (soelim stub)</xsl:with-param>
+          <xsl:with-param name="content">
+            <xsl:value-of select="'.so '"/>
+            <xsl:call-template name="make.adjusted.man.filename">
+              <xsl:with-param name="name" select="$first.refname"/>
+              <xsl:with-param name="section" select="$section"/>
+              <xsl:with-param name="lang" select="$lang"/>
+            </xsl:call-template>
+            <xsl:text>&#10;</xsl:text>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:for-each>
+  </xsl:template>
+
+  <!-- ============================================================== -->
+
+  <!-- *  A manifest file is useful for doing "make clean" during -->
+  <!-- *  builds and for other purposes. When we make the manifest -->
+  <!-- *  file, we need to include in it a filename for each man-page -->
+  <!-- *  generated, including any "stub" pages. -->
+  <xsl:template name="generate.manifest">
+    <xsl:variable name="filelist">
+      <xsl:for-each select="//refentry">
+        <!-- * all refname instances in a Refentry inherit their section -->
+        <!-- * numbers from the parent Refentry; so we only need to get -->
+        <!-- * the section once per Refentry, not once per Refname -->
+        <xsl:variable name="section">
+          <xsl:call-template name="get.refentry.section">
+            <xsl:with-param name="quiet" select="1"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:variable name="lang">
+          <xsl:call-template name="l10n.language"/>
+        </xsl:variable>
+        <xsl:for-each select="refnamediv/refname">
+          <xsl:call-template name="make.adjusted.man.filename">
+            <xsl:with-param name="name" select="."/>
+            <xsl:with-param name="section" select="$section"/>
+            <xsl:with-param name="lang" select="$lang"/>
+          </xsl:call-template>
+          <xsl:text>&#10;</xsl:text>
+        </xsl:for-each>
+      </xsl:for-each>
+    </xsl:variable>
+
+    <!-- * we write the manifest file once per document, not once per -->
+    <!-- * Refentry -->
+    <xsl:call-template name="write.text.chunk">
+      <xsl:with-param name="filename">
+        <xsl:value-of select="$man.output.manifest.filename"/>
+      </xsl:with-param>
+      <xsl:with-param name="quiet" select="1"/>
+      <xsl:with-param name="message-prolog">Note: </xsl:with-param>
+      <xsl:with-param name="message-epilog"> (manifest file)</xsl:with-param>
+      <xsl:with-param name="content">
+        <xsl:value-of select="$filelist"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:if test="$man.output.quietly = 0">
+      <xsl:message><xsl:text>&#10;</xsl:text></xsl:message>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- ============================================================== -->
+
+  <!-- There is some stuff, that is not portable between groff/troff. -->
+  <xsl:template name="define.portability.macros">
+    <xsl:text>.\" -----------------------------------------------------------------&#10;</xsl:text>
+    <xsl:text>.\" * Define some portability stuff&#10;</xsl:text>
+    <xsl:text>.\" -----------------------------------------------------------------&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>.\" http://bugs.debian.org/507673&#10;</xsl:text>
+    <xsl:text>.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:text>.ie \n(.g .ds Aq \(aq</xsl:text>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:text>.el       .ds Aq '</xsl:text>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:template>
+
+  <!-- ============================================================== -->
+
+  <xsl:template name="define.macros">
+    <xsl:text>.\" -----------------------------------------------------------------&#10;</xsl:text>
+    <xsl:text>.\" * (re)Define some macros&#10;</xsl:text>
+    <xsl:text>.\" -----------------------------------------------------------------&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>.\" toupper - uppercase a string (locale-aware)&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>.de toupper&#10;</xsl:text>
+    <xsl:text>.tr</xsl:text>
+    <xsl:text> </xsl:text>
+    <xsl:call-template name="make.tr.uppercase.arg"/>
+    <xsl:text>\\$*&#10;</xsl:text>
+    <xsl:text>.tr</xsl:text>
+    <xsl:text> </xsl:text>
+    <xsl:call-template name="make.tr.normalcase.arg"/>
+    <xsl:text>..&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>.\" SH-xref - format a cross-reference to an SH section&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>.de SH-xref
+.ie n \{\
+.\}
+.toupper \\$*
+.el \{\
+\\$*
+.\}
+..&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>.\" SH - level-one heading that works better for non-TTY output&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>.de1 SH&#10;</xsl:text>
+    <xsl:text>.\" put an extra blank line of space above the head in non-TTY output&#10;</xsl:text>
+    <xsl:call-template name="roff-if-start">
+      <xsl:with-param name="condition">t</xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>.sp 1&#10;</xsl:text>
+    <xsl:call-template name="roff-if-end"/>
+    <xsl:text>.sp \\n[PD]u
+.nr an-level 1
+.set-an-margin
+.nr an-prevailing-indent \\n[IN]
+.fi
+.in \\n[an-margin]u
+.ti 0
+.HTML-TAG ".NH \\n[an-level]"
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+\." make the size of the head bigger
+.ps +3
+.ft B
+.ne (2v + 1u)
+.ie n \{\
+.\" if n (TTY output), use uppercase
+.toupper \\$*
+.\}
+.el \{\
+.nr an-break-flag 0
+.\" if not n (not TTY), use normal case (not uppercase)
+\\$1
+.in \\n[an-margin]u
+.ti 0
+.\" if not n (not TTY), put a border/line under subheading
+.sp -.6
+\l'\n(.lu'
+.\}
+..&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>.\" SS - level-two heading that works better for non-TTY output&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>.de1 SS
+.sp \\n[PD]u
+.nr an-level 1
+.set-an-margin
+.nr an-prevailing-indent \\n[IN]
+.fi
+.in \\n[IN]u
+.ti \\n[SN]u
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.ps \\n[PS-SS]u
+\." make the size of the head bigger
+.ps +2
+.ft B
+.ne (2v + 1u)
+.if \\n[.$] \&amp;\\$*
+..&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>.\" BB/EB - put background/screen (filled box) around block of text&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>.de BB
+.if t \{\
+.sp -.5
+.br
+.in +2n
+.ll -2n
+.gcolor red
+.di BX
+.\}
+..
+.de EB
+.if t \{\
+.if "\\$2"adjust-for-leading-newline" \{\
+.sp -1
+.\}
+.br
+.di
+.in
+.ll
+.gcolor
+.nr BW \\n(.lu-\\n(.i
+.nr BH \\n(dn+.5v
+.ne \\n(BHu+.5v
+.ie "\\$2"adjust-for-leading-newline" \{\
+\M[\\$1]\h'1n'\v'+.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
+.\}
+.el \{\
+\M[\\$1]\h'1n'\v'-.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
+.\}
+.in 0
+.sp -.5v
+.nf
+.BX
+.in
+.sp .5v
+.fi
+.\}
+..&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>.\" BM/EM - put colored marker in margin next to block of text&#10;</xsl:text>
+    <xsl:text>.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&#10;</xsl:text>
+    <xsl:text>.de BM
+.if t \{\
+.br
+.ll -2n
+.gcolor red
+.di BX
+.\}
+..
+.de EM
+.if t \{\
+.br
+.di
+.ll
+.gcolor
+.nr BH \\n(dn
+.ne \\n(BHu
+\M[\\$1]\D'P -.75n 0 0 \\n(BHu -(\\n[.i]u - \\n(INu - .75n) 0 0 -\\n(BHu'\M[]
+.in 0
+.nf
+.BX
+.in
+.fi
+.\}
+..&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template name="make.tr.uppercase.arg">
+  <xsl:call-template name="string.shuffle">
+    <xsl:with-param name="string1">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'lowercase.alpha'"/>
+      </xsl:call-template>
+    </xsl:with-param>
+    <xsl:with-param name="string2">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'uppercase.alpha'"/>
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template name="make.tr.normalcase.arg">
+  <xsl:call-template name="string.shuffle">
+    <xsl:with-param name="string1">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'lowercase.alpha'"/>
+      </xsl:call-template>
+    </xsl:with-param>
+    <xsl:with-param name="string2">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'lowercase.alpha'"/>
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template name="string.shuffle">
+  <!-- * given two strings, "shuffle" them together into one -->
+  <xsl:param name="string1"/>
+  <xsl:param name="string2"/>
+  <xsl:value-of select="substring($string1, 1, 1)"/>
+  <xsl:value-of select="substring($string2, 1, 1)"/>
+  <xsl:if test="string-length($string1) > 1">
+    <xsl:call-template name="string.shuffle">
+      <xsl:with-param name="string1">
+        <xsl:value-of select="substring($string1, 2)"/>
+      </xsl:with-param>
+      <xsl:with-param name="string2">
+        <xsl:value-of select="substring($string2, 2)"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/manpages/param.xml b/applications/content/template/docbook/manpages/param.xml
new file mode 100644
index 0000000..a73f96a
--- /dev/null
+++ b/applications/content/template/docbook/manpages/param.xml
@@ -0,0 +1,3220 @@
+<?xml version="1.0" encoding="ASCII"?>
+<book version="5.0">
+  <info>
+    <title>Manpages Parameter Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+    <author>
+      <orgname>The DocBook Project</orgname>
+    </author>
+    <copyright>
+      <year>2005-2011</year>
+      <holder>The DocBook Project</holder>
+    </copyright>
+    <abstract>
+      <para>This is reference documentation for all user-configurable
+      parameters in the DocBook XSL "manpages" stylesheet (for
+      generating groff/nroff output). Note that the manpages
+      stylesheet is a customization layer of the DocBook XSL HTML
+      stylesheet. Therefore, 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 manpages output (in addition to the
+      manpages-specific parameters listed in this section).</para>
+    </abstract>
+  </info>
+  <reference xml:id="general">
+  <title>Hyphenation, justification, and breaking</title>
+<refentry version="5.0" xml:id="man.hyphenate">
+<refmeta>
+<refentrytitle>man.hyphenate</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.hyphenate</refname>
+<refpurpose>Enable hyphenation?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.hyphenate.frag">
+&lt;xsl:param name="man.hyphenate"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, hyphenation is enabled.</para>
+
+<note>
+<para>The default value for this parameter is zero because groff is
+not particularly smart about how it does hyphenation; it can end up
+hyphenating a lot of things that you don't want hyphenated. To
+mitigate that, the default behavior of the stylesheets is to suppress
+hyphenation of computer inlines, filenames, and URLs. (You can
+override the default behavior by setting non-zero values for the
+<parameter>man.hyphenate.urls</parameter>,
+<parameter>man.hyphenate.filenames</parameter>, and
+<parameter>man.hyphenate.computer.inlines</parameter> parameters.) But
+the best way is still to just globally disable hyphenation, as the
+stylesheets do by default.</para>
+
+<para>The only good reason to enabled hyphenation is if you have also
+enabled justification (which is disabled by default). The reason is
+that justified text can look very bad unless you also hyphenate it; to
+quote the <quote>Hypenation</quote> node from the groff info page:
+
+<blockquote>
+  <para><emphasis>Since the odds are not great for finding a set of
+  words, for every output line, which fit nicely on a line without
+  inserting excessive amounts of space between words, 'gtroff'
+  hyphenates words so that it can justify lines without inserting too
+  much space between words.</emphasis></para>
+</blockquote>
+
+So, if you set a non-zero value for the
+<parameter>man.justify</parameter> parameter (to enable
+justification), then you should probably also set a non-zero value for
+<parameter>man.hyphenate</parameter> (to enable hyphenation).</para>
+</note>
+
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.hyphenate.urls">
+<refmeta>
+<refentrytitle>man.hyphenate.urls</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.hyphenate.urls</refname>
+<refpurpose>Hyphenate URLs?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.hyphenate.urls.frag">
+&lt;xsl:param name="man.hyphenate.urls"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), hyphenation is suppressed for output of
+the <tag>ulink</tag> <tag class="attribute">url</tag> attribute.</para>
+
+<note>
+  <para>If hyphenation is already turned off globally (that is, if
+  <parameter>man.hyphenate</parameter> is zero, setting
+  <parameter>man.hyphenate.urls</parameter> is not necessary.</para>
+</note>
+
+<para>If <parameter>man.hyphenate.urls</parameter> is non-zero, URLs
+will not be treated specially and are subject to hyphenation just like
+other words.</para>
+
+<note>
+  <para>If you are thinking about setting a non-zero value for
+  <parameter>man.hyphenate.urls</parameter> in order to make long
+  URLs break across lines, you'd probably be better off
+  experimenting with setting the
+  <parameter>man.break.after.slash</parameter> parameter first. That
+  will cause long URLs to be broken after slashes.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.hyphenate.filenames">
+<refmeta>
+<refentrytitle>man.hyphenate.filenames</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.hyphenate.filenames</refname>
+<refpurpose>Hyphenate filenames?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.hyphenate.filenames.frag">
+&lt;xsl:param name="man.hyphenate.filenames"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), hyphenation is suppressed for
+<tag>filename</tag> output.</para>
+
+<note>
+  <para>If hyphenation is already turned off globally (that is, if
+  <parameter>man.hyphenate</parameter> is zero, setting
+  <parameter>man.hyphenate.filenames</parameter> is not
+  necessary.</para>
+</note>
+
+<para>If <parameter>man.hyphenate.filenames</parameter> is non-zero,
+filenames will not be treated specially and are subject to hyphenation
+just like other words.</para>
+
+<note>
+  <para>If you are thinking about setting a non-zero value for
+  <parameter>man.hyphenate.filenames</parameter> in order to make long
+  filenames/pathnames break across lines, you'd probably be better off
+  experimenting with setting the
+  <parameter>man.break.after.slash</parameter> parameter first. That
+  will cause long pathnames to be broken after slashes.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.hyphenate.computer.inlines">
+<refmeta>
+<refentrytitle>man.hyphenate.computer.inlines</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.hyphenate.computer.inlines</refname>
+<refpurpose>Hyphenate computer inlines?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.hyphenate.computer.inlines.frag">
+&lt;xsl:param name="man.hyphenate.computer.inlines"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), hyphenation is suppressed for
+<quote>computer inlines</quote> such as environment variables,
+constants, etc. This parameter current affects output of the following
+elements:
+<simplelist type="inline">
+  
+  <member><tag>classname</tag></member>
+  <member><tag>constant</tag></member>
+  <member><tag>envar</tag></member>
+  <member><tag>errorcode</tag></member>
+  <member><tag>option</tag></member>
+  <member><tag>replaceable</tag></member>
+  <member><tag>userinput</tag></member>
+  <member><tag>type</tag></member>
+  <member><tag>varname</tag></member>
+</simplelist>
+</para>
+
+<note>
+  <para>If hyphenation is already turned off globally (that is, if
+  <parameter>man.hyphenate</parameter> is zero, setting the
+  <parameter>man.hyphenate.computer.inlines</parameter> is not
+  necessary.</para>
+</note>
+
+<para>If <parameter>man.hyphenate.computer.inlines</parameter> is
+non-zero, computer inlines will not be treated specially and will be
+hyphenated like other words when needed.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.justify">
+<refmeta>
+<refentrytitle>man.justify</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.justify</refname>
+<refpurpose>Justify text to both right and left margins?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.justify.frag">
+&lt;xsl:param name="man.justify"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, text is justified to both the right and left
+margins (or, in roff terminology, "adjusted and filled" to both the
+right and left margins). If zero (the default), text is adjusted to
+the left margin only -- producing what is traditionally called
+"ragged-right" text.</para>
+
+<note>
+<para>The default value for this parameter is zero because justified
+text looks good only when it is also hyphenated. Without hyphenation,
+excessive amounts of space often end up getting between words, in
+order to "pad" lines out to align on the right margin.</para>
+
+<para>The problem is that groff is not particularly smart about how it
+does hyphenation; it can end up hyphenating a lot of things that you
+don't want hyphenated. So, disabling both justification and
+hyphenation ensures that hyphens won't get inserted where you don't
+want to them, and you don't end up with lines containing excessive
+amounts of space between words.</para>
+
+<para>However, if do you decide to set a non-zero value for the
+<parameter>man.justify</parameter> parameter (to enable
+justification), then you should probably also set a non-zero value for
+<parameter>man.hyphenate</parameter> (to enable hyphenation).</para>
+
+<para>Yes, these default settings run counter to how most existing man
+pages are formatted. But there are some notable exceptions, such as
+the <literal>perl</literal> man pages.</para>
+</note>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.break.after.slash">
+<refmeta>
+<refentrytitle>man.break.after.slash</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.break.after.slash</refname>
+<refpurpose>Enable line-breaking after slashes?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.break.after.slash.frag">
+&lt;xsl:param name="man.break.after.slash"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, line-breaking after slashes is enabled. This is
+mainly useful for causing long URLs or pathnames/filenames to be
+broken up or "wrapped" across lines (though it also has the side
+effect of sometimes causing relatively short URLs and pathnames to be
+broken up across lines too).</para>
+
+<para>If zero (the default), line-breaking after slashes is
+disabled. In that case, strings containing slashes (for example, URLs
+or filenames) are not broken across lines, even if they exceed the
+maximum column widith.</para>
+
+<warning>
+  <para>If you set a non-zero value for this parameter, check your
+  man-page output carefuly afterwards, in order to make sure that the
+  setting has not introduced an excessive amount of breaking-up of URLs
+  or pathnames. If your content contains mostly short URLs or
+  pathnames, setting a non-zero value for
+  <parameter>man.break.after.slash</parameter> will probably result in
+  in a significant number of relatively short URLs and pathnames being
+  broken across lines, which is probably not what you want.</para>
+</warning>
+
+</refsection>
+</refentry>
+
+  </reference>
+  <reference xml:id="indent">
+  <title>Indentation</title>
+<refentry version="5.0" xml:id="man.indent.width">
+<refmeta>
+<refentrytitle>man.indent.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.width</refname>
+<refpurpose>Specifies width used for adjusted indents</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.indent.width.frag">
+&lt;xsl:param name="man.indent.width"&gt;4&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The <parameter>man.indent.width</parameter> parameter specifies
+the width used for adjusted indents. The value of
+<parameter>man.indent.width</parameter> is used for indenting of
+lists, verbatims, headings, and elsewhere, depending on whether the
+values of certain <literal>man.indent.*</literal> boolean parameters
+are non-zero.</para>
+
+<para>The value of <parameter>man.indent.width</parameter> should
+include a valid roff measurement unit (for example,
+<literal>n</literal> or <literal>u</literal>). The default value of
+<literal>4n</literal> specifies a 4-en width; when viewed on a
+console, that amounts to the width of four characters. For details
+about roff measurment units, see the <literal>Measurements</literal>
+node in the groff info page.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.indent.refsect">
+<refmeta>
+<refentrytitle>man.indent.refsect</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.refsect</refname>
+<refpurpose>Adjust indentation of refsect* and refsection?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.indent.refsect.frag">
+&lt;xsl:param name="man.indent.refsect" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.indent.refsect</parameter> is
+non-zero, the width of the left margin for
+<tag>refsect1</tag>, <tag>refsect2</tag> and
+<tag>refsect3</tag> contents and titles (and first-level,
+second-level, and third-level nested
+<tag>refsection</tag>instances) is adjusted by the value of
+the <parameter>man.indent.width</parameter> parameter. With
+<parameter>man.indent.width</parameter> set to its default value of
+<literal>3n</literal>, the main results are that:
+
+<itemizedlist>
+  <listitem>
+    <para>contents of <tag>refsect1</tag> are output with a
+    left margin of three characters instead the roff default of seven
+    or eight characters</para>
+  </listitem>
+  <listitem>
+    <para>contents of <tag>refsect2</tag> are displayed in
+    console output with a left margin of six characters instead the of
+    the roff default of seven characters</para>
+  </listitem>
+  <listitem>
+    <para> the contents of <tag>refsect3</tag> and nested
+    <tag>refsection</tag> instances are adjusted
+    accordingly.</para>
+  </listitem>
+</itemizedlist>
+
+If instead the value of <parameter>man.indent.refsect</parameter> is
+zero, no margin adjustment is done for <literal>refsect*</literal>
+output.</para>
+
+<tip>
+  <para>If your content is primarly comprised of
+  <tag>refsect1</tag> and <tag>refsect2</tag> content
+  (or the <tag>refsection</tag> equivalent)&#160;&#8211; with few or
+  no <tag>refsect3</tag> or lower nested sections , you may be
+  able to &#8220;conserve&#8221; space in your output by setting
+  <parameter>man.indent.refsect</parameter> to a non-zero value. Doing
+  so will &#8220;squeeze&#8221; the left margin in such as way as to provide an
+  additional four characters of &#8220;room&#8221; per line in
+  <tag>refsect1</tag> output. That extra room may be useful
+  if, for example, you have many verbatim sections with long lines in
+  them.</para>
+</tip>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.indent.blurbs">
+<refmeta>
+<refentrytitle>man.indent.blurbs</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.blurbs</refname>
+<refpurpose>Adjust indentation of blurbs?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.indent.blurbs.frag">
+&lt;xsl:param name="man.indent.blurbs" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.indent.blurbs</parameter> is
+non-zero, the width of the left margin for
+<tag>authorblurb</tag>, <tag>personblurb</tag>, and
+<tag>contrib</tag> output is set to the value of the
+<parameter>man.indent.width</parameter> parameter
+(<literal>3n</literal> by default). If instead the value of
+<parameter>man.indent.blurbs</parameter> is zero, the built-in roff
+default width (<literal>7.2n</literal>) is used.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.indent.lists">
+<refmeta>
+<refentrytitle>man.indent.lists</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.lists</refname>
+<refpurpose>Adjust indentation of lists?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.indent.lists.frag">
+&lt;xsl:param name="man.indent.lists" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.indent.lists</parameter> is
+non-zero, the width of the left margin for list items in
+<tag>itemizedlist</tag>,
+<tag>orderedlist</tag>,
+<tag>variablelist</tag> output (and output of some other
+lists) is set to the value of the
+<parameter>man.indent.width</parameter> parameter
+(<literal>4n</literal> by default). If instead the value of
+<parameter>man.indent.lists</parameter> is zero, the built-in roff
+default width (<literal>7.2n</literal>) is used.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.indent.verbatims">
+<refmeta>
+<refentrytitle>man.indent.verbatims</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.verbatims</refname>
+<refpurpose>Adjust indentation of verbatims?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.indent.verbatims.frag">
+&lt;xsl:param name="man.indent.verbatims" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.indent.verbatims</parameter> is
+non-zero, the width of the left margin for output of verbatim
+environments (<tag>programlisting</tag>,
+<tag>screen</tag>, and so on) is set to the value of the
+<parameter>man.indent.width</parameter> parameter
+(<literal>3n</literal> by default). If instead the value of
+<parameter>man.indent.verbatims</parameter> is zero, the built-in roff
+default width (<literal>7.2n</literal>) is used.</para>
+
+</refsection>
+</refentry>
+
+  </reference>
+  <reference xml:id="fonts">
+  <title>Fonts</title>
+<refentry version="5.0" xml:id="man.font.funcprototype">
+<refmeta>
+<refentrytitle>man.font.funcprototype</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.funcprototype</refname>
+<refpurpose>Specifies font for funcprototype output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.font.funcprototype.frag">
+  &lt;xsl:param name="man.font.funcprototype"&gt;BI&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.funcprototype</parameter> parameter
+specifies the font for <tag>funcprototype</tag> output. It
+should be a valid roff font name, such as <literal>BI</literal> or
+<literal>B</literal>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.font.funcsynopsisinfo">
+<refmeta>
+<refentrytitle>man.font.funcsynopsisinfo</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.funcsynopsisinfo</refname>
+<refpurpose>Specifies font for funcsynopsisinfo output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.font.funcsynopsisinfo.frag">
+  &lt;xsl:param name="man.font.funcsynopsisinfo"&gt;B&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.funcsynopsisinfo</parameter> parameter
+specifies the font for <tag>funcsynopsisinfo</tag> output. It
+should be a valid roff font name, such as <literal>B</literal> or
+<literal>I</literal>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.font.links">
+<refmeta>
+<refentrytitle>man.font.links</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.links</refname>
+<refpurpose>Specifies font for links</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.font.links.frag">
+&lt;xsl:param name="man.font.links"&gt;B&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.links</parameter> parameter
+specifies the font for output of links (<tag>ulink</tag> instances
+and any instances of any element with an <tag class="attribute">xlink:href</tag> attribute).</para>
+
+<para>The value of <parameter>man.font.links</parameter> must be
+  either <literal>B</literal> or <literal>I</literal>, or empty. If
+the value is empty, no font formatting is applied to links.</para>
+
+<para>If you set <parameter>man.endnotes.are.numbered</parameter> and/or
+<parameter>man.endnotes.list.enabled</parameter> to zero (disabled), then
+you should probably also set an empty value for
+<parameter>man.font.links</parameter>. But if
+<parameter>man.endnotes.are.numbered</parameter> is non-zero (enabled),
+you should probably keep
+<parameter>man.font.links</parameter> set to
+<literal>B</literal> or <literal>I</literal><footnote><para>The
+    main purpose of applying a font format to links in most output
+formats it to indicate that the formatted text is
+&#8220;clickable&#8221;; given that links rendered in man pages are
+not &#8220;real&#8221; hyperlinks that users can click on, it might
+seem like there is never a good reason to have font formatting for
+link contents in man output.</para>
+<para>In fact, if you suppress the
+display of inline link references (by setting
+<parameter>man.endnotes.are.numbered</parameter> to zero), there is no
+good reason to apply font formatting to links. However, if
+<parameter>man.endnotes.are.numbered</parameter> is non-zero, having
+font formatting for links (arguably) serves a purpose: It provides
+&#8220;context&#8221; information about exactly what part of the text
+is being &#8220;annotated&#8221; by the link. Depending on how you
+mark up your content, that context information may or may not
+have value.</para></footnote>.</para>
+</refsection>
+
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>man.endnotes.list.enabled</parameter>,
+    <parameter>man.endnotes.are.numbered</parameter></para>
+</refsection>
+
+</refentry>
+
+<refentry version="5.0" xml:id="man.font.table.headings">
+<refmeta>
+<refentrytitle>man.font.table.headings</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.table.headings</refname>
+<refpurpose>Specifies font for table headings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.font.table.headings.frag">
+  &lt;xsl:param name="man.font.table.headings"&gt;B&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.table.headings</parameter> parameter
+specifies the font for <tag>table</tag> headings. It should be
+a valid roff font, such as <literal>B</literal> or
+<literal>I</literal>.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.font.table.title">
+<refmeta>
+<refentrytitle>man.font.table.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.table.title</refname>
+<refpurpose>Specifies font for table headings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.font.table.title.frag">
+  &lt;xsl:param name="man.font.table.title"&gt;B&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.table.title</parameter> parameter
+specifies the font for <tag>table</tag> titles. It should be
+a valid roff font, such as <literal>B</literal> or
+<literal>I</literal>.</para>
+
+</refsection>
+</refentry>
+
+  </reference>
+  <reference xml:id="synopsis">
+  <title>SYNOPSIS section</title>
+<refentry version="5.0" xml:id="man.funcsynopsis.style">
+<refmeta>
+<refentrytitle>man.funcsynopsis.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ansi</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kr</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.funcsynopsis.style</refname>
+<refpurpose>What style of <tag>funcsynopsis</tag> should be generated?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="man.funcsynopsis.style.frag">&lt;xsl:param name="man.funcsynopsis.style"&gt;ansi&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If <parameter>man.funcsynopsis.style</parameter> is
+<literal>ansi</literal>, ANSI-style function synopses are
+generated for a <tag>funcsynopsis</tag>, otherwise K&amp;R-style
+function synopses are generated.</para>
+</refsection>
+</refentry>
+
+  </reference>
+  <reference xml:id="authors">
+  <title>AUTHORS and COPYRIGHT sections</title>
+  <refentry version="5.0" xml:id="man.authors.section.enabled">
+<refmeta>
+<refentrytitle>man.authors.section.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.authors.section.enabled</refname>
+<refpurpose>Display auto-generated AUTHORS section?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="man.authors.section.enabled.frag">
+&lt;xsl:param name="man.authors.section.enabled"&gt;1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>man.authors.section.enabled</parameter> is non-zero
+(the default), then an <literal>AUTHORS</literal> section is
+generated near the end of each man page. The output of the
+<literal>AUTHORS</literal> section is assembled from any
+<tag>author</tag>, <tag>editor</tag>, and <tag>othercredit</tag>
+metadata found in the contents of the child <tag>info</tag> or
+<tag>refentryinfo</tag> (if any) of the <tag>refentry</tag>
+itself, or from any <tag>author</tag>, <tag>editor</tag>, and
+<tag>othercredit</tag> metadata that may appear in <tag>info</tag>
+contents of any ancestors of the <tag>refentry</tag>.</para>
+
+<para>If the value of
+<parameter>man.authors.section.enabled</parameter> is zero, the
+the auto-generated <literal>AUTHORS</literal> section is
+suppressed.</para>
+
+<para>Set the value of
+  <parameter>man.authors.section.enabled</parameter> to zero if
+  you want to have a manually created <literal>AUTHORS</literal>
+  section in your source, and you want it to appear in output
+  instead of the auto-generated <literal>AUTHORS</literal>
+  section.</para>
+</refsection>
+</refentry>
+
+  <refentry version="5.0" xml:id="man.copyright.section.enabled">
+<refmeta>
+<refentrytitle>man.copyright.section.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.copyright.section.enabled</refname>
+<refpurpose>Display auto-generated COPYRIGHT section?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="man.copyright.section.enabled.frag">
+&lt;xsl:param name="man.copyright.section.enabled"&gt;1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>man.copyright.section.enabled</parameter> is non-zero
+(the default), then a <literal>COPYRIGHT</literal> section is
+generated near the end of each man page. The output of the
+<literal>COPYRIGHT</literal> section is assembled from any
+<tag>copyright</tag> and <tag>legalnotice</tag> metadata found in
+the contents of the child <tag>info</tag> or
+<tag>refentryinfo</tag> (if any) of the <tag>refentry</tag>
+itself, or from any <tag>copyright</tag> and
+<tag>legalnotice</tag> metadata that may appear in <tag>info</tag>
+contents of any ancestors of the <tag>refentry</tag>.</para>
+
+<para>If the value of
+<parameter>man.copyright.section.enabled</parameter> is zero, the
+the auto-generated <literal>COPYRIGHT</literal> section is
+suppressed.</para>
+
+<para>Set the value of
+  <parameter>man.copyright.section.enabled</parameter> to zero if
+  you want to have a manually created <literal>COPYRIGHT</literal>
+  section in your source, and you want it to appear in output
+  instead of the auto-generated <literal>COPYRIGHT</literal>
+  section.</para>
+</refsection>
+</refentry>
+
+  </reference>
+  <reference xml:id="endnotes">
+  <title>Endnotes and link handling</title>
+<refentry version="5.0" xml:id="man.endnotes.list.enabled">
+<refmeta>
+<refentrytitle>man.endnotes.list.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.endnotes.list.enabled</refname>
+<refpurpose>Display endnotes list at end of man page?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.endnotes.list.enabled.frag">
+&lt;xsl:param name="man.endnotes.list.enabled"&gt;1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.endnotes.list.enabled</parameter> is
+non-zero (the default), then an endnotes list is added to the end of
+the output man page.</para>
+
+<para>If the value of <parameter>man.endnotes.list.enabled</parameter> is
+zero, the list is suppressed &#8212; unless link numbering is enabled (that
+is, if <parameter>man.endnotes.are.numbered</parameter> is non-zero), in
+which case, that setting overrides the
+<parameter>man.endnotes.list.enabled</parameter> setting, and the
+endnotes list is still displayed. The reason is that inline
+numbering of notesources associated with endnotes only makes sense
+if a (numbered) list of endnotes is also generated.</para>
+
+<note>
+  <para>Leaving
+  <parameter>man.endnotes.list.enabled</parameter> at its default
+  (non-zero) value ensures that no &#8220;out of line&#8221; information (such
+  as the URLs for hyperlinks and images) gets lost in your
+  man-page output. It just gets &#8220;rearranged&#8221;.</para>
+  <para>So if you&#8217;re thinking about disabling endnotes listing by
+    setting the value of
+    <parameter>man.endnotes.list.enabled</parameter> to zero:
+    Before you do so, first take some time to carefully consider
+    the information needs and experiences of your users. The &#8220;out
+    of line&#8221; information has value even if the presentation of it
+    in text output is not as interactive as it may be in other
+    output formats.</para>
+  <para>As far as the specific case of URLs: Even though the URLs
+    displayed in text output may not be &#8220;real&#8221; (clickable)
+    hyperlinks, many X terminals have convenience features for
+    recognizing URLs and can, for example, present users with
+    an options to open a URL in a browser with the user clicks on
+    the URL is a terminal window. And short of those, users with X
+    terminals can always manually cut and paste the URLs into a web
+    browser.</para>
+  <para>Also, note that various &#8220;man to html&#8221; tools, such as the
+    widely used <command><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://users.actrix.gen.nz/michael/vhman2html.html">man2html</link></command> (<literal>VH-Man2html</literal>)
+    application, automatically mark up URLs with <literal>a@href</literal> markup
+  during conversion &#8212; resulting in &#8220;real&#8221; hyperlinks in HTML
+  output from those tools.</para>
+</note>
+
+<para>To &#8220;turn off&#8221; numbering of endnotes in the
+endnotes list, set <parameter>man.endnotes.are.numbered</parameter>
+to zero. The endnotes list will
+still be displayed; it will just be displayed without the
+numbers<footnote><para>It can still make sense to have
+the list of endnotes displayed even if you have endnotes numbering turned
+off. In that case, your endnotes list basically becomes a &#8220;list
+of references&#8221; without any association with specific text in
+your document. This is probably the best option if you find the inline
+endnotes numbering obtrusive. Your users will still have access to all the &#8220;out of line&#8221;
+such as URLs for hyperlinks.</para></footnote>
+</para>
+
+<para>The default heading for the endnotes list is
+<literal>NOTES</literal>. To change that, set a non-empty
+value for the <parameter>man.endnotes.list.heading</parameter>
+parameter.</para>
+
+<para>In the case of notesources that are links: Along with the
+URL for each link, the endnotes list includes the contents of the
+link. The list thus includes only non-empty<footnote>
+
+<para>A &#8220;non-empty&#8221; link is one that looks like
+this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"&gt;manpages&lt;/ulink&gt;</literallayout>
+an &#8220;empty link&#8221; is on that looks like this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"/&gt;</literallayout>
+</para></footnote> links.
+
+Empty links are never included, and never numbered. They are simply
+displayed inline, without any numbering.</para>
+
+<para>In addition, if there are multiple instances of links in a
+<tag>refentry</tag> that have the same URL, the URL is listed only
+once. The contents listed for that link in the endnotes list are
+the contents of the first link which has that URL.</para>
+
+<para>If you disable endnotes listing, you should probably also set
+<parameter>man.links.are.underlined</parameter> to zero (to disable
+link underlining).</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.endnotes.list.heading">
+<refmeta>
+<refentrytitle>man.endnotes.list.heading</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.endnotes.list.heading</refname>
+<refpurpose>Specifies an alternate name for endnotes list</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.endnotes.list.heading.frag">
+&lt;xsl:param name="man.endnotes.list.heading"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.endnotes.are.numbered</parameter> parameter
+and/or the <parameter>man.endnotes.list.enabled</parameter>
+parameter is non-zero (the defaults for both are non-zero), a
+numbered list of endnotes is generated near the end of each man
+page. The default heading for the list of endnotes is the
+equivalent of the English word <literal>NOTES</literal> in
+the current locale. To cause an alternate heading to be displayed,
+set a non-empty value for the
+<parameter>man.endnotes.list.heading</parameter> parameter &#8212;
+for example, <literal>REFERENCES</literal>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.endnotes.are.numbered">
+<refmeta>
+<refentrytitle>man.endnotes.are.numbered</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.endnotes.are.numbered</refname>
+<refpurpose>Number endnotes?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.endnotes.are.numbered.frag">
+&lt;xsl:param name="man.endnotes.are.numbered"&gt;1&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.endnotes.are.numbered</parameter> is
+non-zero (the default), then for each non-empty<footnote>
+<para>A &#8220;non-empty&#8221; notesource is one that looks like
+this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"&gt;manpages&lt;/ulink&gt;</literallayout>
+an &#8220;empty&#8221; notesource is on that looks like this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"/&gt;</literallayout>
+</para></footnote> &#8220;notesource&#8221;:
+
+<itemizedlist>
+  <listitem>
+    <para>a number (in square brackets) is displayed inline after the
+    rendered inline contents (if any) of the notesource</para>
+  </listitem>
+  <listitem>
+    <para>the contents of the notesource are included in a
+      numbered list of endnotes that is generated at the end of
+      each man page; the number for each endnote corresponds to
+      the inline number for the notesource with which it is
+      associated</para>
+  </listitem>
+</itemizedlist>
+The default heading for the list of endnotes is
+<literal>NOTES</literal>. To output a different heading, set a value
+for the <parameter>man.endnotes.section.heading</parameter>
+parameter.</para>
+
+<note>
+  <para>The endnotes list is also displayed (but without
+    numbers) if the value of
+    <parameter>man.endnotes.list.enabled</parameter> is
+    non-zero.</para>
+</note>
+
+
+<para>If the value of <parameter>man.endnotes.are.numbered</parameter> is
+zero, numbering of endnotess is suppressed; only inline
+contents (if any) of the notesource are displayed inline.
+<important>
+  <para>If you are thinking about disabling endnote numbering by setting
+  the value of <parameter>man.endnotes.are.numbered</parameter> to zero,
+  before you do so, first take some time to carefully
+  consider the information needs and experiences of your users. The
+  square-bracketed numbers displayed inline after notesources may seem
+  obstrusive and aesthetically unpleasing<footnote><para>As far as notesources that are links, ytou might
+  think it would be better to just display URLs for non-empty
+  links inline, after their content, rather than displaying
+  square-bracketed numbers all over the place. But it's not better. In
+  fact, it's not even practical, because many (most) URLs for links
+  are too long to be displayed inline. They end up overflowing the
+  right margin. You can set a non-zero value for
+  <parameter>man.break.after.slash</parameter> parameter to deal with
+  that, but it could be argued that what you end up with is at least
+  as ugly, and definitely more obstrusive, then having short
+  square-bracketed numbers displayed inline.</para></footnote>,
+
+  but in a text-only output format, the
+  numbered-notesources/endnotes-listing mechanism is the only
+  practical way to handle this kind of content.</para>
+
+  <para>Also, users of &#8220;text based&#8221; browsers such as
+  <command>lynx</command> will already be accustomed to seeing inline
+  numbers for links. And various "man to html" applications, such as
+  the widely used <command><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://users.actrix.gen.nz/michael/vhman2html.html">man2html</link></command> (<literal>VH-Man2html</literal>)
+  application, can automatically turn URLs into "real" HTML hyperlinks
+  in output. So leaving <parameter>man.endnotes.are.numbered</parameter>
+  at its default (non-zero) value ensures that no information is
+  lost in your man-page output. It just gets
+  &#8220;rearranged&#8221;.</para>
+</important>
+</para>
+<para>The handling of empty links is not affected by this
+parameter. Empty links are handled simply by displaying their URLs
+inline. Empty links are never auto-numbered.</para>
+
+<para>If you disable endnotes numbering, you should probably also set
+<parameter>man.font.links</parameter> to an empty value (to
+disable font formatting for links.</para>
+</refsection>
+
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>man.endnotes.list.enabled</parameter>,
+    <parameter>man.font.links</parameter></para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.base.url.for.relative.links">
+  <refmeta>
+    <refentrytitle>man.base.url.for.relative.links</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>man.base.url.for.relative.links</refname>
+    <refpurpose>Specifies a base URL for relative links</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting xml:id="man.base.url.for.relative.links.frag">&lt;xsl:param name="man.base.url.for.relative.links"&gt;[set $man.base.url.for.relative.links]/&lt;/xsl:param&gt;</programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>For any &#8220;notesource&#8221; listed in the auto-generated
+      &#8220;NOTES&#8221; section of output man pages (which is generated when
+      the value of the
+      <parameter>man.endnotes.list.enabled</parameter> parameter
+      is non-zero), if the notesource is a link source with a
+      relative URI, the URI is displayed in output with the value
+      of the
+      <parameter>man.base.url.for.relative.links</parameter>
+      parameter prepended to the value of the link URI.</para>
+
+    <note>
+      <para>A link source is an notesource that references an
+        external resource:
+        <itemizedlist>
+          <listitem>
+            <para>a <tag>ulink</tag> element with a <tag class="attribute">url</tag> attribute</para>
+          </listitem>
+          <listitem>
+            <para>any element with an <tag class="attribute">xlink:href</tag> attribute</para>
+          </listitem>
+          <listitem>
+            <para>an <tag>imagedata</tag>, <tag>audiodata</tag>, or
+              <tag>videodata</tag> element</para>
+          </listitem>
+        </itemizedlist>
+      </para>
+    </note>
+
+    <para>If you use relative URIs in link sources in your DocBook
+      <tag>refentry</tag> source, and you leave
+      <parameter>man.base.url.for.relative.links</parameter>
+      unset, the relative links will appear &#8220;as is&#8221; in the &#8220;Notes&#8221;
+      section of any man-page output generated from your source.
+      That&#8217;s probably not what you want, because such relative
+      links are only usable in the context of HTML output. So, to
+      make the links meaningful and usable in the context of
+      man-page output, set a value for
+      <parameter>man.base.url.for.relative.links</parameter> that
+      points to the online version of HTML output generated from
+      your DocBook <tag>refentry</tag> source. For
+      example:
+      <programlisting>&lt;xsl:param name="man.base.url.for.relative.links"
+        &gt;http://www.kernel.org/pub/software/scm/git/docs/&lt;/xsl:param&gt;</programlisting>
+    </para>
+
+  </refsection>
+
+  <refsection><info><title>Related Parameters</title></info>
+    <para><parameter>man.endnotes.list.enabled</parameter></para>
+  </refsection>
+
+</refentry>
+
+  </reference>
+  <reference xml:id="lists">
+  <title>Lists</title>
+<refentry version="5.0" xml:id="man.segtitle.suppress">
+<refmeta>
+<refentrytitle>man.segtitle.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.segtitle.suppress</refname>
+<refpurpose>Suppress display of segtitle contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.segtitle.suppress.frag">
+&lt;xsl:param name="man.segtitle.suppress" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.segtitle.suppress</parameter> is
+non-zero, then display of <tag>segtitle</tag> contents is
+suppressed in output.</para>
+
+</refsection>
+</refentry>
+
+  </reference>
+  <reference xml:id="charmap">
+  <title>Character/string substitution</title>
+<refentry version="5.0" xml:id="man.charmap.enabled">
+<refmeta>
+<refentrytitle>man.charmap.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.enabled</refname>
+<refpurpose>Apply character map before final output?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.charmap.enabled.frag">
+&lt;xsl:param name="man.charmap.enabled" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the <parameter>man.charmap.enabled</parameter>
+parameter is non-zero, a "character map" is used to substitute certain
+Unicode symbols and special characters with appropriate roff/groff
+equivalents, just before writing each man-page file to the
+filesystem. If instead the value of
+<parameter>man.charmap.enabled</parameter> is zero, Unicode characters
+are passed through "as is".</para>
+
+<refsection><info><title>Details</title></info>
+
+<para>For converting certain Unicode symbols and special characters in
+UTF-8 or UTF-16 encoded XML source to appropriate groff/roff
+equivalents in man-page output, the DocBook XSL Stylesheets
+distribution includes a <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">roff character map</link> that is compliant with the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character
+map</link> format as detailed in the XSLT 2.0 specification. The map
+contains more than 800 character mappings and can be considered the
+standard roff character map for the distribution.</para>
+
+<para>You can use the <parameter>man.charmap.uri</parameter>
+parameter to specify a URI for the location for an alternate roff
+character map to use in place of the standard roff character map
+provided in the distribution.</para>
+
+<para>You can also use a subset of a character map. For details,
+see the <parameter>man.charmap.use.subset</parameter>,
+<parameter>man.charmap.subset.profile</parameter>, and
+<parameter>man.charmap.subset.profile.english</parameter>
+parameters.</para>
+
+</refsection>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.charmap.uri">
+<refmeta>
+<refentrytitle>man.charmap.uri</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.uri</refname>
+<refpurpose>URI for custom roff character map</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.charmap.uri.frag">
+&lt;xsl:param name="man.charmap.uri"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>For converting certain Unicode symbols and special characters in
+UTF-8 or UTF-16 encoded XML source to appropriate groff/roff
+equivalents in man-page output, the DocBook XSL Stylesheets
+distribution includes an <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character
+map</link>. That character map can be considered the standard roff
+character map for the distribution.</para>
+
+<para>If the value of the <parameter>man.charmap.uri</parameter>
+parameter is non-empty, that value is used as the URI for the location
+for an alternate roff character map to use in place of the standard
+roff character map provided in the distribution.</para>
+
+<warning>
+<para>Do not set a value for <parameter>man.charmap.uri</parameter>
+unless you have a custom roff character map that differs from the
+standard one provided in the distribution.</para>
+</warning>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.charmap.use.subset">
+<refmeta>
+<refentrytitle>man.charmap.use.subset</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.use.subset</refname>
+<refpurpose>Use subset of character map instead of full map?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.charmap.use.subset.frag">
+&lt;xsl:param name="man.charmap.use.subset" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.charmap.use.subset</parameter> parameter is non-zero,
+a subset of the roff character map is used instead of the full roff
+character map. The profile of the subset used is determined either
+by the value of the
+<parameter>man.charmap.subset.profile</parameter>
+parameter (if the source is not in English) or the
+<parameter>man.charmap.subset.profile.english</parameter>
+parameter (if the source is in English).</para>
+
+<note>
+  <para>You may want to experiment with setting a non-zero value of
+  <parameter>man.charmap.use.subset</parameter>, so that the full
+  character map is used. Depending on which XSLT engine you run,
+  setting a non-zero value for
+  <parameter>man.charmap.use.subset</parameter> may significantly
+  increase the time needed to process your documents. Or it may
+  not. For example, if you set it and run it with xsltproc, it seems
+  to dramatically increase processing time; on the other hand, if you
+  set it and run it with Saxon, it does not seem to increase
+  processing time nearly as much.</para>
+
+  <para>If processing time is not a important concern and/or you can
+  tolerate the increase in processing time imposed by using the full
+  character map, set <parameter>man.charmap.use.subset</parameter> to
+  zero.</para>
+</note>
+
+<refsection><info><title>Details</title></info>
+
+<para>For converting certain Unicode symbols and special characters in
+UTF-8 or UTF-16 encoded XML source to appropriate groff/roff
+equivalents in man-page output, the DocBook XSL Stylesheets
+distribution includes a <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">roff character map</link> that is compliant with the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character
+map</link> format as detailed in the XSLT 2.0 specification. The map
+contains more than 800 character mappings and can be considered the
+standard roff character map for the distribution.</para>
+
+<note>
+<para>You can use the <parameter>man.charmap.uri</parameter>
+parameter to specify a URI for the location for an alternate roff
+character map to use in place of the standard roff character map
+provided in the distribution.</para>
+</note>
+
+<para>Because it is not terrifically efficient to use the standard
+800-character character map in full -- and for most (or all) users,
+never necessary to use it in full -- the DocBook XSL Stylesheets
+support a mechanism for using, within any given character map, a
+subset of character mappings instead of the full set. You can use the
+<parameter>man.charmap.subset.profile</parameter> or
+<parameter>man.charmap.subset.profile.english</parameter>
+parameter to tune the profile of that subset to use.</para>
+
+</refsection>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.charmap.subset.profile">
+<refmeta>
+<refentrytitle>man.charmap.subset.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.subset.profile</refname>
+<refpurpose>Profile of character map subset</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.charmap.subset.profile.frag">
+&lt;xsl:param name="man.charmap.subset.profile"&gt;
+@*[local-name() = 'block'] = 'Miscellaneous Technical' or
+(@*[local-name() = 'block'] = 'C1 Controls And Latin-1 Supplement (Latin-1 Supplement)' and
+ (@*[local-name() = 'class'] = 'symbols' or
+  @*[local-name() = 'class'] = 'letters')
+) or
+@*[local-name() = 'block'] = 'Latin Extended-A'
+or
+(@*[local-name() = 'block'] = 'General Punctuation' and
+ (@*[local-name() = 'class'] = 'spaces' or
+  @*[local-name() = 'class'] = 'dashes' or
+  @*[local-name() = 'class'] = 'quotes' or
+  @*[local-name() = 'class'] = 'bullets'
+ )
+) or
+@*[local-name() = 'name'] = 'HORIZONTAL ELLIPSIS' or
+@*[local-name() = 'name'] = 'WORD JOINER' or
+@*[local-name() = 'name'] = 'SERVICE MARK' or
+@*[local-name() = 'name'] = 'TRADE MARK SIGN' or
+@*[local-name() = 'name'] = 'ZERO WIDTH NO-BREAK SPACE'
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.charmap.use.subset</parameter> parameter is non-zero,
+and your DocBook source is not written in English (that
+  is, if the <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute on the root element
+  in your DocBook source or on the first <tag>refentry</tag>
+  element in your source has a value other than
+  <literal>en</literal>), then the character-map subset specified
+  by the <parameter>man.charmap.subset.profile</parameter>
+  parameter is used instead of the full roff character map.</para>
+
+<para>Otherwise, if the <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute on the root
+  element in your DocBook
+  source or on the first <tag>refentry</tag> element in your source
+  has the value <literal>en</literal> or if it has no <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute, then the character-map
+  subset specified by the
+  <parameter>man.charmap.subset.profile.english</parameter>
+  parameter is used instead of
+  <parameter>man.charmap.subset.profile</parameter>.</para>
+
+<para>The difference between the two subsets is that
+  <parameter>man.charmap.subset.profile</parameter> provides
+  mappings for characters in Western European languages that are
+  not part of the Roman (English) alphabet (ASCII character set).</para>
+
+<para>The value of <parameter>man.charmap.subset.profile</parameter>
+is a string representing an XPath expression that matches attribute
+names and values for <tag namespace="http://docbook.sf.net/xmlns/unichar/1.0">output-character</tag>
+elements in the character map.</para>
+
+<para>The attributes supported in the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">standard roff character map included in the distribution</link> are:
+<variablelist>
+  <varlistentry>
+    <term>character</term>
+    <listitem>
+      <simpara>a raw Unicode character or numeric Unicode
+      character-entity value (either in decimal or hex); all
+      characters have this attribute</simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>name</term>
+    <listitem>
+      <simpara>a standard full/long ISO/Unicode character name (e.g.,
+      "OHM SIGN"); all characters have this attribute</simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>block</term>
+    <listitem>
+      <simpara>a standard Unicode "block" name (e.g., "General
+      Punctuation"); all characters have this attribute. For the full
+      list of Unicode block names supported in the standard roff
+      character map, see <xref linkend="BlocksAndClasses"/>.</simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>class</term>
+    <listitem>
+      <simpara>a class of characters (e.g., "spaces"). Not all
+      characters have this attribute; currently, it is used only with
+      certain characters within the "C1 Controls And Latin-1
+      Supplement" and "General Punctuation" blocks. For details, see
+      <xref linkend="BlocksAndClasses"/>.</simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>entity</term>
+    <listitem>
+      <simpara>an ISO entity name (e.g., "ohm"); not all characters
+      have this attribute, because not all characters have ISO entity
+      names; for example, of the 800 or so characters in the standard
+      roff character map included in the distribution, only around 300
+      have ISO entity names.
+      </simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>string</term>
+    <listitem>
+      <simpara>a string representing an roff/groff escape-code (with
+      "@esc@" used in place of the backslash), or a simple ASCII
+      string; all characters in the roff character map have this
+      attribute</simpara>
+    </listitem>
+  </varlistentry>
+</variablelist>
+</para>
+<para>The value of <parameter>man.charmap.subset.profile</parameter>
+is evaluated as an XPath expression at run-time to select a portion of
+the roff character map to use. You can tune the subset used by adding
+or removing parts. For example, if you need to use a wide range of
+mathematical operators in a document, and you want to have them
+converted into roff markup properly, you might add the following:
+
+<literallayout class="monospaced">  @*[local-name() = 'block'] ='MathematicalOperators' </literallayout>
+
+That will cause a additional set of around 67 additional "math"
+characters to be converted into roff markup. </para>
+
+<note>
+<para>Depending on which XSLT engine you use, either the EXSLT
+<function>dyn:evaluate</function> extension function (for xsltproc or
+Xalan) or <function>saxon:evaluate</function> extension function (for
+Saxon) are used to dynamically evaluate the value of
+<parameter>man.charmap.subset.profile</parameter> at run-time. If you
+don't use xsltproc, Saxon, Xalan -- or some other XSLT engine that
+supports <function>dyn:evaluate</function> -- you must either set the
+value of the <parameter>man.charmap.use.subset</parameter> parameter
+to zero and process your documents using the full character map
+instead, or set the value of the
+<parameter>man.charmap.enabled</parameter> parameter to zero instead
+(so that character-map processing is disabled completely.</para>
+</note>
+
+<para>An alternative to using
+<parameter>man.charmap.subset.profile</parameter> is to create your
+own custom character map, and set the value of
+<parameter>man.charmap.uri</parameter> to the URI/filename for
+that. If you use a custom character map, you will probably want to
+include in it just the characters you want to use, and so you will
+most likely also want to set the value of
+<parameter>man.charmap.use.subset</parameter> to zero.</para>
+<para>You can create a
+custom character map by making a copy of the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">standard roff character map</link> provided in the distribution, and
+then adding to, changing, and/or deleting from that.</para>
+
+<caution>
+<para>If you author your DocBook XML source in UTF-8 or UTF-16
+encoding and aren't sure what OSes or environments your man-page
+output might end up being viewed on, and not sure what version of
+nroff/groff those environments might have, you should be careful about
+what Unicode symbols and special characters you use in your source and
+what parts you add to the value of
+<parameter>man.charmap.subset.profile</parameter>.</para>
+<para>Many of the escape codes used are specific to groff and using
+them may not provide the expected output on an OS or environment that
+uses nroff instead of groff.</para>
+<para>On the other hand, if you intend for your man-page output to be
+viewed only on modern systems (for example, GNU/Linux systems, FreeBSD
+systems, or Cygwin environments) that have a good, up-to-date groff,
+then you can safely include a wide range of Unicode symbols and
+special characters in your UTF-8 or UTF-16 encoded DocBook XML source
+and add any of the supported Unicode block names to the value of
+<parameter>man.charmap.subset.profile</parameter>.</para>
+</caution>
+
+
+<para>For other details, see the documentation for the
+<parameter>man.charmap.use.subset</parameter> parameter.</para>
+
+<refsection xml:id="BlocksAndClasses"><info><title>Supported Unicode block names and "class" values</title></info>
+  
+
+  <para>Below is the full list of Unicode block names and "class"
+  values supported in the standard roff stylesheet provided in the
+  distribution, along with a description of which codepoints from the
+  Unicode range corresponding to that block name or block/class
+  combination are supported.</para>
+
+  <itemizedlist>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=C1%20Controls%20and%20Latin-1%20Supplement%20(Latin-1%20Supplement)">C1 Controls And Latin-1 Supplement (Latin-1 Supplement)</link> (x00a0 to x00ff)
+      <itemizedlist><info><title>class values</title></info>
+        
+        <listitem>
+          <para>symbols</para>
+        </listitem>
+        <listitem>
+          <para>letters</para>
+        </listitem>
+      </itemizedlist></para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Latin%20Extended-A">Latin Extended-A</link> (x0100 to x017f, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Spacing%20Modifier%20Letters">Spacing Modifier Letters</link> (x02b0 to x02ee, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Greek%20and%20Coptic">Greek and Coptic</link> (x0370 to x03ff, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=General%20Punctuation">General Punctuation</link> (x2000 to x206f, partial)
+      <itemizedlist><info><title>class values</title></info>
+        
+        <listitem>
+          <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;start=8192&amp;end=8203">spaces</link></para>
+        </listitem>
+        <listitem>
+          <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;start=8208&amp;end=8213">dashes</link></para>
+        </listitem>
+        <listitem>
+          <para>quotes</para>
+        </listitem>
+        <listitem>
+          <para>daggers</para>
+        </listitem>
+        <listitem>
+          <para>bullets</para>
+        </listitem>
+        <listitem>
+          <para>leaders</para>
+        </listitem>
+        <listitem>
+          <para>primes</para>
+        </listitem>
+      </itemizedlist>
+      </para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Superscripts%20and%20Subscripts">Superscripts and Subscripts</link> (x2070 to x209f)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Currency%20Symbols">Currency Symbols</link> (x20a0 to x20b1)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Letterlike%20Symbols">Letterlike Symbols</link> (x2100 to x214b)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Number%20Forms">Number Forms</link> (x2150 to x218f)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Arrows">Arrows</link> (x2190 to x21ff, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Mathematical%20Operators">Mathematical Operators</link> (x2200 to x22ff, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Control%20Pictures">Control Pictures</link> (x2400 to x243f)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Enclosed%20Alphanumerics">Enclosed Alphanumerics</link> (x2460 to x24ff)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Geometric%20Shapes">Geometric Shapes</link> (x25a0 to x25f7, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Miscellaneous%20Symbols">Miscellaneous Symbols</link> (x2600 to x26ff, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Dingbats">Dingbats</link> (x2700 to x27be, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Alphabetic%20Presentation%20Forms">Alphabetic Presentation Forms</link> (xfb00 to xfb04 only)</para>
+    </listitem>
+  </itemizedlist>
+</refsection>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.charmap.subset.profile.english">
+<refmeta>
+<refentrytitle>man.charmap.subset.profile.english</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.subset.profile.english</refname>
+<refpurpose>Profile of character map subset</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.charmap.subset.profile.english.frag">
+&lt;xsl:param name="man.charmap.subset.profile.english"&gt;
+@*[local-name() = 'block'] = 'Miscellaneous Technical' or
+(@*[local-name() = 'block'] = 'C1 Controls And Latin-1 Supplement (Latin-1 Supplement)' and
+ @*[local-name() = 'class'] = 'symbols')
+or
+(@*[local-name() = 'block'] = 'General Punctuation' and
+ (@*[local-name() = 'class'] = 'spaces' or
+  @*[local-name() = 'class'] = 'dashes' or
+  @*[local-name() = 'class'] = 'quotes' or
+  @*[local-name() = 'class'] = 'bullets'
+ )
+) or
+@*[local-name() = 'name'] = 'HORIZONTAL ELLIPSIS' or
+@*[local-name() = 'name'] = 'WORD JOINER' or
+@*[local-name() = 'name'] = 'SERVICE MARK' or
+@*[local-name() = 'name'] = 'TRADE MARK SIGN' or
+@*[local-name() = 'name'] = 'ZERO WIDTH NO-BREAK SPACE'
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+  <parameter>man.charmap.use.subset</parameter> parameter is
+  non-zero, and your DocBook source is written in English (that
+  is, if its <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute on the root element
+  in your DocBook source or on the first <tag>refentry</tag>
+  element in your source has the value <literal>en</literal> or if
+  it has no <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute), then the
+  character-map subset specified by the
+  <parameter>man.charmap.subset.profile.english</parameter>
+  parameter is used instead of the full roff character map.</para>
+
+<para>Otherwise, if the <tag class="attribute">lang</tag> or <tag class="attribute">xml:lang</tag> attribute
+  on the root element in your DocBook source or on the first
+  <tag>refentry</tag> element in your source has a value other
+  than <literal>en</literal>, then the character-map subset
+  specified by the
+  <parameter>man.charmap.subset.profile</parameter> parameter is
+  used instead of
+  <parameter>man.charmap.subset.profile.english</parameter>.</para>
+
+<para>The difference between the two subsets is that
+  <parameter>man.charmap.subset.profile</parameter> provides
+  mappings for characters in Western European languages that are
+  not part of the Roman (English) alphabet (ASCII character set).</para>
+
+<para>The value of <parameter>man.charmap.subset.profile.english</parameter>
+is a string representing an XPath expression that matches attribute
+names and values for <tag namespace="http://docbook.sf.net/xmlns/unichar/1.0">output-character</tag> elements in the character map.</para>
+
+<para>For other details, see the documentation for the
+<parameter>man.charmap.subset.profile.english</parameter> and
+<parameter>man.charmap.use.subset</parameter> parameters.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.string.subst.map.local.pre">
+<refmeta>
+<refentrytitle>man.string.subst.map.local.pre</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.string.subst.map.local.pre</refname>
+<refpurpose>Specifies &#8220;local&#8221; string substitutions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.string.subst.map.local.pre.frag">
+  &lt;xsl:param name="man.string.subst.map.local.pre"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Use the <parameter>man.string.subst.map.local.pre</parameter>
+parameter to specify any &#8220;local&#8221; string substitutions to perform over
+the entire roff source for each man page <emphasis>before</emphasis>
+performing the string substitutions specified by the <parameter>man.string.subst.map</parameter> parameter.</para>
+
+<para>For details about the format of this parameter, see the
+documentation for the <parameter>man.string.subst.map</parameter>
+parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.string.subst.map">
+<refmeta>
+<refentrytitle>man.string.subst.map</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.string.subst.map</refname>
+<refpurpose>Specifies a set of string substitutions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.string.subst.map.frag">
+&lt;xsl:param name="man.string.subst.map"&gt;
+
+  &lt;!-- * remove no-break marker at beginning of line (stylesheet artifact) --&gt; 
+  &lt;ss:substitution oldstring="&#9618;&#9600;" newstring="&#9618;"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * replace U+2580 no-break marker (stylesheet-added) w/ no-break space --&gt;
+  &lt;ss:substitution oldstring="&#9600;" newstring="\ "&gt;&lt;/ss:substitution&gt;
+
+  &lt;!-- ==================================================================== --&gt;
+
+  &lt;!-- * squeeze multiple newlines before a roff request  --&gt;
+  &lt;ss:substitution oldstring="
+
+." newstring="
+."&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * remove any .sp instances that directly precede a .PP  --&gt;
+  &lt;ss:substitution oldstring=".sp
+.PP" newstring=".PP"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * remove any .sp instances that directly follow a .PP  --&gt;
+  &lt;ss:substitution oldstring=".sp
+.sp" newstring=".sp"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * squeeze multiple .sp instances into a single .sp--&gt;
+  &lt;ss:substitution oldstring=".PP
+.sp" newstring=".PP"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * squeeze multiple newlines after start of no-fill (verbatim) env. --&gt;
+  &lt;ss:substitution oldstring=".nf
+
+" newstring=".nf
+"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * squeeze multiple newlines after REstoring margin --&gt;
+  &lt;ss:substitution oldstring=".RE
+
+" newstring=".RE
+"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * U+2591 is a marker we add before and after every Parameter in --&gt;
+  &lt;!-- * Funcprototype output --&gt;
+  &lt;ss:substitution oldstring="&#9617;" newstring=" "&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * U+2592 is a marker we add for the newline before output of &lt;sbr&gt;; --&gt;
+  &lt;ss:substitution oldstring="&#9618;" newstring="
+"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * --&gt;
+  &lt;!-- * Now deal with some other characters that are added by the --&gt;
+  &lt;!-- * stylesheets during processing. --&gt;
+  &lt;!-- * --&gt;
+  &lt;!-- * bullet --&gt;
+  &lt;ss:substitution oldstring="&#8226;" newstring="\(bu"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * left double quote --&gt;
+  &lt;ss:substitution oldstring="&#8220;" newstring="\(lq"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * right double quote --&gt;
+  &lt;ss:substitution oldstring="&#8221;" newstring="\(rq"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * left single quote --&gt;
+  &lt;ss:substitution oldstring="&#8216;" newstring="\(oq"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * right single quote --&gt;
+  &lt;ss:substitution oldstring="&#8217;" newstring="\(cq"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * copyright sign --&gt;
+  &lt;ss:substitution oldstring="&#169;" newstring="\(co"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * registered sign --&gt;
+  &lt;ss:substitution oldstring="&#174;" newstring="\(rg"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * ...servicemark... --&gt;
+  &lt;!-- * There is no groff equivalent for it. --&gt;
+  &lt;ss:substitution oldstring="&#8480;" newstring="(SM)"&gt;&lt;/ss:substitution&gt;
+  &lt;!-- * ...trademark... --&gt;
+  &lt;!-- * We don't do "\(tm" because for console output, --&gt;
+  &lt;!-- * groff just renders that as "tm"; that is: --&gt;
+  &lt;!-- * --&gt;
+  &lt;!-- *   Product&amp;#x2122; -&gt; Producttm --&gt;
+  &lt;!-- * --&gt;
+  &lt;!-- * So we just make it to "(TM)" instead; thus: --&gt;
+  &lt;!-- * --&gt;
+  &lt;!-- *   Product&amp;#x2122; -&gt; Product(TM) --&gt;
+  &lt;ss:substitution oldstring="&#8482;" newstring="(TM)"&gt;&lt;/ss:substitution&gt;
+
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.string.subst.map</parameter> parameter
+contains <link linkend="map">a map</link> that specifies a set of
+string substitutions to perform over the entire roff source for each
+man page, either just before generating final man-page output (that
+is, before writing man-page files to disk) or, if the value of the
+<parameter>man.charmap.enabled</parameter> parameter is non-zero,
+before applying the roff character map.</para>
+
+<para>You can use <parameter>man.string.subst.map</parameter> as a
+&#8220;lightweight&#8221; character map to perform &#8220;essential&#8221; substitutions --
+that is, substitutions that are <emphasis>always</emphasis> performed,
+even if the value of the <parameter>man.charmap.enabled</parameter>
+parameter is zero. For example, you can use it to replace quotation
+marks or other special characters that are generated by the DocBook
+XSL stylesheets for a particular locale setting (as opposed to those
+characters that are actually in source XML documents), or to replace
+any special characters that may be automatically generated by a
+particular customization of the DocBook XSL stylesheets.</para>
+
+<warning>
+  <para>Do you not change value of the
+  <parameter>man.string.subst.map</parameter> parameter unless you are
+  sure what you are doing. First consider adding your
+  string-substitution mappings to either or both of the following
+  parameters:
+  <variablelist>
+    <varlistentry>
+      <term><parameter>man.string.subst.map.local.pre</parameter></term>
+      <listitem><para>applied before
+      <parameter>man.string.subst.map</parameter></para></listitem>
+    </varlistentry>
+    <varlistentry>
+      <term><parameter>man.string.subst.map.local.post</parameter></term>
+      <listitem><para>applied after
+      <parameter>man.string.subst.map</parameter></para></listitem>
+    </varlistentry>
+  </variablelist>
+  By default, both of those parameters contain no
+  string substitutions. They are intended as a means for you to
+  specify your own local string-substitution mappings.</para>
+
+  <para>If you remove any of default mappings from the value of the
+  <parameter>man.string.subst.map</parameter> parameter, you are
+  likely to end up with broken output. And be very careful about adding
+  anything to it; it&#8217;s used for doing string substitution over the
+  entire roff source of each man page &#8211; it causes target strings to be
+  replaced in roff requests and escapes, not just in the visible
+  contents of the page.</para>
+
+</warning>
+
+<refsection xml:id="map">
+  <info>
+    <title>Contents of the substitution map</title>
+  </info>
+  <para>The string-substitution map contains one or more
+  <tag>ss:substitution</tag> elements, each of which has two
+  attributes:
+  <variablelist>
+    <varlistentry>
+      <term>oldstring</term>
+      <listitem>
+        <simpara>string to replace</simpara>
+      </listitem>
+    </varlistentry>
+    <varlistentry>
+      <term>newstring</term>
+      <listitem>
+        <simpara>string with which to replace <tag class="attribute">oldstring</tag></simpara>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+  It may also include XML comments (that is, delimited with
+  "<literal>&lt;!--</literal>" and "<literal>--&gt;</literal>").
+  </para>
+</refsection>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.string.subst.map.local.post">
+<refmeta>
+<refentrytitle>man.string.subst.map.local.post</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.string.subst.map.local.post</refname>
+<refpurpose>Specifies &#8220;local&#8221; string substitutions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.string.subst.map.local.post.frag">
+&lt;xsl:param name="man.string.subst.map.local.post"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Use the <parameter>man.string.subst.map.local.post</parameter>
+parameter to specify any &#8220;local&#8221; string substitutions to perform over
+the entire roff source for each man page <emphasis>after</emphasis>
+performing the string substitutions specified by the <parameter>man.string.subst.map</parameter> parameter.</para>
+
+<para>For details about the format of this parameter, see the
+documentation for the <parameter>man.string.subst.map</parameter>
+parameter.</para>
+
+</refsection>
+</refentry>
+
+  </reference>
+  <reference xml:id="refmeta">
+  <title>Refentry metadata gathering</title>
+<refentry version="5.0" xml:id="refentry.meta.get.quietly">
+<refmeta>
+<refentrytitle>refentry.meta.get.quietly</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.meta.get.quietly</refname>
+<refpurpose>Suppress notes and warnings when gathering refentry metadata?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.meta.get.quietly.frag">
+&lt;xsl:param name="refentry.meta.get.quietly" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), notes and warnings about &#8220;missing&#8221; markup
+are generated during gathering of refentry metadata. If non-zero, the
+metadata is gathered &#8220;quietly&#8221; -- that is, the notes and warnings are
+suppressed.</para>
+
+<tip>
+  <para>If you are processing a large amount of <tag>refentry</tag>
+  content, you may be able to speed up processing significantly by
+  setting a non-zero value for
+  <parameter>refentry.meta.get.quietly</parameter>.</para>
+</tip>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.date.profile">
+<refmeta>
+<refentrytitle>refentry.date.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.date.profile</refname>
+<refpurpose>Specifies profile for refentry "date" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.date.profile.frag">
+&lt;xsl:param name="refentry.date.profile"&gt;
+  (($info[//date])[last()]/date)[1]|
+  (($info[//pubdate])[last()]/pubdate)[1]
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of <parameter>refentry.date.profile</parameter> is a
+string representing an XPath expression. It is evaluated at run-time
+and used only if <parameter>refentry.date.profile.enabled</parameter>
+is non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering
+logic "hard coded" into the stylesheets is used.</para>
+
+<para> The <literal>man(7)</literal> man page describes this content
+as "the date of the last revision". In man pages, it is the content
+that is usually displayed in the center footer.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.date.profile.enabled">
+<refmeta>
+<refentrytitle>refentry.date.profile.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.date.profile.enabled</refname>
+<refpurpose>Enable refentry "date" profiling?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.date.profile.enabled.frag">
+&lt;xsl:param name="refentry.date.profile.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.date.profile.enabled</parameter> is non-zero, then
+during <tag>refentry</tag> metadata gathering, the info profile
+specified by the customizable
+<parameter>refentry.date.profile</parameter> parameter is used.</para>
+
+<para>If instead the value of
+<parameter>refentry.date.profile.enabled</parameter> is zero (the
+default), then "hard coded" logic within the DocBook XSL stylesheets
+is used for gathering <tag>refentry</tag> "date" data.</para>
+
+<para>If you find that the default <tag>refentry</tag>
+metadata-gathering behavior is causing incorrect "date" data to show
+up in your output, then consider setting a non-zero value for
+<parameter>refentry.date.profile.enabled</parameter> and adjusting the
+value of <parameter>refentry.date.profile</parameter> to cause correct
+data to be gathered. </para>
+
+<para>Note that the terms "source" and "date" have special meanings in
+this context. For details, see the documentation for the
+<parameter>refentry.date.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.manual.profile">
+<refmeta>
+<refentrytitle>refentry.manual.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.manual.profile</refname>
+<refpurpose>Specifies profile for refentry "manual" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.manual.profile.frag">
+&lt;xsl:param name="refentry.manual.profile"&gt;
+  (($info[//title])[last()]/title)[1]|
+  ../title/node()
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of <parameter>refentry.manual.profile</parameter> is
+a string representing an XPath expression. It is evaluated at
+run-time and used only if
+<parameter>refentry.manual.profile.enabled</parameter> is
+non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering logic
+"hard coded" into the stylesheets is used.</para>
+
+<para>In man pages, this content is usually displayed in the middle of
+the header of the page. The <literal>man(7)</literal> man page
+describes this as "the title of the manual (e.g., <citetitle>Linux
+Programmer's Manual</citetitle>)". Here are some examples from
+existing man pages:
+<itemizedlist>
+  <listitem>
+    <para><citetitle>dpkg utilities</citetitle>
+    (<command>dpkg-name</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>User Contributed Perl Documentation</citetitle>
+    (<command>GET</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>GNU Development Tools</citetitle>
+    (<command>ld</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>Emperor Norton Utilities</citetitle>
+    (<command>ddate</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>Debian GNU/Linux manual</citetitle>
+    (<command>faked</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>GIMP Manual Pages</citetitle>
+    (<command>gimp</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>KDOC Documentation System</citetitle>
+    (<command>qt2kdoc</command>)</para>
+  </listitem>
+</itemizedlist>
+</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.manual.profile.enabled">
+<refmeta>
+<refentrytitle>refentry.manual.profile.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.manual.profile.enabled</refname>
+<refpurpose>Enable refentry "manual" profiling?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.manual.profile.enabled.frag">
+&lt;xsl:param name="refentry.manual.profile.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.manual.profile.enabled</parameter> is
+non-zero, then during <tag>refentry</tag> metadata gathering, the info
+profile specified by the customizable
+<parameter>refentry.manual.profile</parameter> parameter is
+used.</para>
+
+<para>If instead the value of
+<parameter>refentry.manual.profile.enabled</parameter> is zero (the
+default), then "hard coded" logic within the DocBook XSL stylesheets
+is used for gathering <tag>refentry</tag> "manual" data.</para>
+
+<para>If you find that the default <tag>refentry</tag>
+metadata-gathering behavior is causing incorrect "manual" data to show
+up in your output, then consider setting a non-zero value for
+<parameter>refentry.manual.profile.enabled</parameter> and adjusting
+the value of <parameter>refentry.manual.profile</parameter> to cause
+correct data to be gathered. </para>
+
+<para>Note that the term "manual" has a special meanings in this
+context. For details, see the documentation for the
+<parameter>refentry.manual.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.source.name.suppress">
+<refmeta>
+<refentrytitle>refentry.source.name.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.source.name.suppress</refname>
+<refpurpose>Suppress "name" part of refentry "source" contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.source.name.suppress.frag">
+&lt;xsl:param name="refentry.source.name.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.source.name.suppress</parameter> is non-zero, then
+during <tag>refentry</tag> metadata gathering, no "source name" data
+is added to the <tag>refentry</tag> "source" contents. Instead (unless
+<parameter>refentry.version.suppress</parameter> is also non-zero),
+only "version" data is added to the "source" contents.</para>
+
+<para>If you find that the <tag>refentry</tag> metadata gathering
+mechanism is causing unwanted "source name" data to show up in your
+output -- for example, in the footer (or possibly header) of a man
+page -- then you might consider setting a non-zero value for
+<parameter>refentry.source.name.suppress</parameter>.</para>
+
+<para>Note that the terms "source", "source name", and "version" have
+special meanings in this context. For details, see the documentation
+for the <parameter>refentry.source.name.profile</parameter>
+parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.source.name.profile">
+<refmeta>
+<refentrytitle>refentry.source.name.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.source.name.profile</refname>
+<refpurpose>Specifies profile for refentry "source name" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.source.name.profile.frag">
+&lt;xsl:param name="refentry.source.name.profile"&gt;
+  (($info[//productname])[last()]/productname)[1]|
+  (($info[//corpname])[last()]/corpname)[1]|
+  (($info[//corpcredit])[last()]/corpcredit)[1]|
+  (($info[//corpauthor])[last()]/corpauthor)[1]|
+  (($info[//orgname])[last()]/orgname)[1]|
+  (($info[//publishername])[last()]/publishername)[1]
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of <parameter>refentry.source.name.profile</parameter>
+is a string representing an XPath expression. It is evaluated at
+run-time and used only if
+<parameter>refentry.source.name.profile.enabled</parameter> is
+non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering logic
+"hard coded" into the stylesheets is used.</para>
+
+<para>A "source name" is one part of a (potentially) two-part
+<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>
+"source" field. In man pages, it is usually displayed in the left
+footer of the page. It typically indicates the software system or
+product that the item documented in the man page belongs to. The
+<literal>man(7)</literal> man page describes it as "the source of
+the command", and provides the following examples:
+<itemizedlist>
+  <listitem>
+    <para>For binaries, use something like: GNU, NET-2, SLS
+    Distribution, MCC Distribution.</para>
+  </listitem>
+  <listitem>
+    <para>For system calls, use the version of the kernel that you
+    are currently looking at: Linux 0.99.11.</para>
+  </listitem>
+  <listitem>
+    <para>For library calls, use the source of the function: GNU, BSD
+    4.3, Linux DLL 4.4.1.</para>
+  </listitem>
+</itemizedlist>
+</para>
+
+<para>In practice, there are many pages that simply have a Version
+number in the "source" field. So, it looks like what we have is a
+two-part field,
+<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>,
+where:
+<variablelist>
+  <varlistentry>
+    <term>Name</term>
+    <listitem>
+      <para>product name (e.g., BSD) or org. name (e.g., GNU)</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Version</term>
+    <listitem>
+      <para>version number</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+Each part is optional. If the <replaceable>Name</replaceable> is a
+product name, then the <replaceable>Version</replaceable> is probably
+the version of the product. Or there may be no
+<replaceable>Name</replaceable>, in which case, if there is a
+<replaceable>Version</replaceable>, it is probably the version
+of the item itself, not the product it is part of. Or, if the
+<replaceable>Name</replaceable> is an organization name, then there
+probably will be no <replaceable>Version</replaceable>.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.source.name.profile.enabled">
+<refmeta>
+<refentrytitle>refentry.source.name.profile.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.source.name.profile.enabled</refname>
+<refpurpose>Enable refentry "source name" profiling?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.source.name.profile.enabled.frag">
+&lt;xsl:param name="refentry.source.name.profile.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.source.name.profile.enabled</parameter> is
+non-zero, then during <tag>refentry</tag> metadata gathering, the info
+profile specified by the customizable
+<parameter>refentry.source.name.profile</parameter> parameter is
+used.</para>
+
+<para>If instead the value of
+<parameter>refentry.source.name.profile.enabled</parameter> is zero (the
+default), then "hard coded" logic within the DocBook XSL stylesheets
+is used for gathering <tag>refentry</tag> "source name" data.</para>
+
+<para>If you find that the default <tag>refentry</tag>
+metadata-gathering behavior is causing incorrect "source name" data to
+show up in your output, then consider setting a non-zero value for
+<parameter>refentry.source.name.profile.enabled</parameter> and
+adjusting the value of
+<parameter>refentry.source.name.profile</parameter> to cause correct
+data to be gathered. </para>
+
+<para>Note that the terms "source" and "source name" have special
+meanings in this context. For details, see the documentation for the
+<parameter>refentry.source.name.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.version.suppress">
+<refmeta>
+<refentrytitle>refentry.version.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.version.suppress</refname>
+<refpurpose>Suppress "version" part of refentry "source" contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.version.suppress.frag">
+&lt;xsl:param name="refentry.version.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>refentry.version.suppress</parameter>
+is non-zero, then during <tag>refentry</tag> metadata gathering, no
+"version" data is added to the <tag>refentry</tag> "source"
+contents. Instead (unless
+<parameter>refentry.source.name.suppress</parameter> is also
+non-zero), only "source name" data is added to the "source"
+contents.</para>
+
+<para>If you find that the <tag>refentry</tag> metadata gathering
+mechanism is causing unwanted "version" data to show up in your output
+-- for example, in the footer (or possibly header) of a man page --
+then you might consider setting a non-zero value for
+<parameter>refentry.version.suppress</parameter>.</para>
+
+<para>Note that the terms "source", "source name", and "version" have
+special meanings in this context. For details, see the documentation
+for the <parameter>refentry.source.name.profile</parameter>
+parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.version.profile">
+<refmeta>
+<refentrytitle>refentry.version.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.version.profile</refname>
+<refpurpose>Specifies profile for refentry "version" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.version.profile.frag">
+&lt;xsl:param name="refentry.version.profile"&gt;
+  (($info[//productnumber])[last()]/productnumber)[1]|
+  (($info[//edition])[last()]/edition)[1]|
+  (($info[//releaseinfo])[last()]/releaseinfo)[1]
+&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of <parameter>refentry.version.profile</parameter> is
+a string representing an XPath expression. It is evaluated at
+run-time and used only if
+<parameter>refentry.version.profile.enabled</parameter> is
+non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering logic
+"hard coded" into the stylesheets is used.</para>
+
+<para>A "source.name" is one part of a (potentially) two-part
+<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>
+"source" field. For more details, see the documentation for the
+<parameter>refentry.source.name.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.version.profile.enabled">
+<refmeta>
+<refentrytitle>refentry.version.profile.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.version.profile.enabled</refname>
+<refpurpose>Enable refentry "version" profiling?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.version.profile.enabled.frag">
+&lt;xsl:param name="refentry.version.profile.enabled"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.version.profile.enabled</parameter> is
+non-zero, then during <tag>refentry</tag> metadata gathering, the info
+profile specified by the customizable
+<parameter>refentry.version.profile</parameter> parameter is
+used.</para>
+
+<para>If instead the value of
+<parameter>refentry.version.profile.enabled</parameter> is zero (the
+default), then "hard coded" logic within the DocBook XSL stylesheets
+is used for gathering <tag>refentry</tag> "version" data.</para>
+
+<para>If you find that the default <tag>refentry</tag>
+metadata-gathering behavior is causing incorrect "version" data to show
+up in your output, then consider setting a non-zero value for
+<parameter>refentry.version.profile.enabled</parameter> and adjusting
+the value of <parameter>refentry.version.profile</parameter> to cause
+correct data to be gathered. </para>
+
+<para>Note that the terms "source" and "version" have special
+meanings in this context. For details, see the documentation for the
+<parameter>refentry.version.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.manual.fallback.profile">
+<refmeta>
+<refentrytitle>refentry.manual.fallback.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.manual.fallback.profile</refname>
+<refpurpose>Specifies profile of "fallback" for refentry "manual" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.manual.fallback.profile.frag">
+&lt;xsl:param name="refentry.manual.fallback.profile"&gt;
+refmeta/refmiscinfo[not(@class = 'date')][1]/node()&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of
+<parameter>refentry.manual.fallback.profile</parameter> is a string
+representing an XPath expression. It is evaluated at run-time and
+used only if no "manual" data can be found by other means (that is,
+either using the <tag>refentry</tag> metadata-gathering logic "hard
+coded" in the stylesheets, or the value of
+<parameter>refentry.manual.profile</parameter>, if it is
+enabled).</para>
+
+<important>
+<para>Depending on which XSLT engine you run, either the EXSLT
+<function>dyn:evaluate</function> extension function (for xsltproc or
+Xalan) or <function>saxon:evaluate</function> extension function (for
+Saxon) are used to dynamically evaluate the value of
+<parameter>refentry.manual.fallback.profile</parameter> at
+run-time. If you don't use xsltproc, Saxon, Xalan -- or some other
+XSLT engine that supports <function>dyn:evaluate</function> -- you
+must manually disable fallback processing by setting an empty value
+for the <parameter>refentry.manual.fallback.profile</parameter>
+parameter.</para>
+</important>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="refentry.source.fallback.profile">
+<refmeta>
+<refentrytitle>refentry.source.fallback.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.source.fallback.profile</refname>
+<refpurpose>Specifies profile of "fallback" for refentry "source" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="refentry.source.fallback.profile.frag">
+&lt;xsl:param name="refentry.source.fallback.profile"&gt;
+refmeta/refmiscinfo[not(@class = 'date')][1]/node()&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of
+<parameter>refentry.source.fallback.profile</parameter> is a string
+representing an XPath expression. It is evaluated at run-time and used
+only if no "source" data can be found by other means (that is, either
+using the <tag>refentry</tag> metadata-gathering logic "hard coded" in
+the stylesheets, or the value of the
+<parameter>refentry.source.name.profile</parameter> and
+<parameter>refentry.version.profile</parameter> parameters, if those
+are enabled).</para>
+
+<important>
+<para>Depending on which XSLT engine you run, either the EXSLT
+<function>dyn:evaluate</function> extension function (for xsltproc or
+Xalan) or <function>saxon:evaluate</function> extension function (for
+Saxon) are used to dynamically evaluate the value of
+<parameter>refentry.source.fallback.profile</parameter> at
+run-time. If you don't use xsltproc, Saxon, Xalan -- or some other
+XSLT engine that supports <function>dyn:evaluate</function> -- you
+must manually disable fallback processing by setting an empty value
+for the <parameter>refentry.source.fallback.profile</parameter>
+parameter.</para>
+</important>
+
+</refsection>
+</refentry>
+
+  </reference>
+  <reference xml:id="th">
+  <title>Page header/footer</title>
+<refentry version="5.0" xml:id="man.th.extra1.suppress">
+<refmeta>
+<refentrytitle>man.th.extra1.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra1.suppress</refname>
+<refpurpose>Suppress extra1 part of header/footer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.th.extra1.suppress.frag">
+&lt;xsl:param name="man.th.extra1.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.th.extra1.suppress</parameter> is
+non-zero, then the <literal>extra1</literal> part of the
+<literal>.TH</literal> title line header/footer is suppressed.</para>
+
+<para>The content of the <literal>extra1</literal> field is almost
+always displayed in the center footer of the page and is, universally,
+a date.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.th.extra2.suppress">
+<refmeta>
+<refentrytitle>man.th.extra2.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra2.suppress</refname>
+<refpurpose>Suppress extra2 part of header/footer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.th.extra2.suppress.frag">
+&lt;xsl:param name="man.th.extra2.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.th.extra2.suppress</parameter> is
+non-zero, then the <literal>extra2</literal> part of the
+<literal>.TH</literal> title line header/footer is suppressed.</para>
+
+<para>The content of the <literal>extra2</literal> field is usually
+displayed in the left footer of the page and is typically "source"
+data, often in the form
+<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>;
+for example, "GTK+ 1.2" (from the <literal>gtk-options(7)</literal>
+man page).</para>
+
+<note>
+  <para>You can use the
+  <parameter>refentry.source.name.suppress</parameter> and
+  <parameter>refentry.version.suppress</parameter> parameters to
+  independently suppress the <replaceable>Name</replaceable> and
+  <replaceable>Version</replaceable> parts of the
+  <literal>extra2</literal> field.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.th.extra3.suppress">
+<refmeta>
+<refentrytitle>man.th.extra3.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra3.suppress</refname>
+<refpurpose>Suppress extra3 part of header/footer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.th.extra3.suppress.frag">
+&lt;xsl:param name="man.th.extra3.suppress"&gt;0&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.th.extra3.suppress</parameter> is
+non-zero, then the <literal>extra3</literal> part of the
+<literal>.TH</literal> title line header/footer is
+suppressed.</para>
+
+<para>The content of the <literal>extra3</literal> field is usually
+displayed in the middle header of the page and is typically a "manual
+name"; for example, "GTK+ User's Manual" (from the
+<literal>gtk-options(7)</literal> man page).</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.th.title.max.length">
+<refmeta>
+<refentrytitle>man.th.title.max.length</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.title.max.length</refname>
+<refpurpose>Maximum length of title in header/footer</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.th.title.max.length.frag">
+&lt;xsl:param name="man.th.title.max.length"&gt;20&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximum permitted length of the title part of the
+man-page <literal>.TH</literal> title line header/footer. If the title
+exceeds the maxiumum specified, it is truncated down to the maximum
+permitted length.</para>
+
+<refsection><info><title>Details</title></info>
+  
+
+<para>Every man page generated using the DocBook stylesheets has a
+title line, specified using the <literal>TH</literal> roff
+macro. Within that title line, there is always, at a minimum, a title,
+followed by a section value (representing a man "section" -- usually
+just a number).</para>
+
+<para>The title and section are displayed, together, in the visible
+header of each page. Where in the header they are displayed depends on
+OS the man page is viewed on, and on what version of nroff/groff/man
+is used for viewing the page. But, at a minimum and across all
+systems, the title and section are displayed on the right-hand column
+of the header. On many systems -- those with a modern groff, including
+Linux systems -- they are displayed twice: both in the left and right
+columns of the header.</para>
+
+<para>So if the length of the title exceeds a certain percentage of
+the column width in which the page is viewed, the left and right
+titles can end up overlapping, making them unreadable, or breaking to
+another line, which doesn't look particularly good.</para>
+
+<para>So the stylesheets provide the
+<parameter>man.th.title.max.length</parameter> parameter as a means
+for truncating titles that exceed the maximum length that can be
+viewing properly in a page header.</para>
+
+<para>The default value is reasonable but somewhat arbitrary. If you
+have pages with long titles, you may want to experiment with changing
+the value in order to achieve the correct aesthetic results.</para>
+</refsection>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.th.extra2.max.length">
+<refmeta>
+<refentrytitle>man.th.extra2.max.length</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra2.max.length</refname>
+<refpurpose>Maximum length of extra2 in header/footer</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.th.extra2.max.length.frag">
+&lt;xsl:param name="man.th.extra2.max.length"&gt;30&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximum permitted length of the
+<literal>extra2</literal> part of the man-page part of the
+<literal>.TH</literal> title line header/footer. If the
+<literal>extra2</literal> content exceeds the maxiumum specified, it
+is truncated down to the maximum permitted length.</para>
+
+<para>The content of the <literal>extra2</literal> field is usually
+displayed in the left footer of the page and is typically "source"
+data indicating the software system or product that the item
+documented in the man page belongs to, often in the form
+<replaceable>Name</replaceable>&#160;<replaceable>Version</replaceable>;
+for example, "GTK+ 1.2" (from the <literal>gtk-options(7)</literal>
+man page).</para>
+
+<para>The default value for this parameter is reasonable but somewhat
+arbitrary. If you are processing pages with long "source" information,
+you may want to experiment with changing the value in order to achieve
+the correct aesthetic results.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.th.extra3.max.length">
+<refmeta>
+<refentrytitle>man.th.extra3.max.length</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra3.max.length</refname>
+<refpurpose>Maximum length of extra3 in header/footer</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.th.extra3.max.length.frag">
+&lt;xsl:param name="man.th.extra3.max.length"&gt;30&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximum permitted length of the
+<literal>extra3</literal> part of the man-page <literal>.TH</literal>
+title line header/footer. If the <literal>extra3</literal> content
+exceeds the maxiumum specified, it is truncated down to the maximum
+permitted length.</para>
+
+<para>The content of the <literal>extra3</literal> field is usually
+displayed in the middle header of the page and is typically a "manual
+name"; for example, "GTK+ User's Manual" (from the
+<literal>gtk-options(7)</literal> man page).</para>
+
+<para>The default value for this parameter is reasonable but somewhat
+arbitrary. If you are processing pages with long "manual names" -- or
+especially if you are processing pages that have both long "title"
+parts (command/function, etc. names) <emphasis>and</emphasis> long
+manual names -- you may want to experiment with changing the value in
+order to achieve the correct aesthetic results.</para>
+</refsection>
+</refentry>
+
+  </reference>
+  <reference xml:id="output">
+  <title>Output</title>
+<refentry version="5.0" xml:id="man.output.manifest.enabled">
+  <refmeta>
+    <refentrytitle>man.output.manifest.enabled</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>man.output.manifest.enabled</refname>
+    <refpurpose>Generate a manifest file?</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting xml:id="man.output.manifest.enabled.frag">&lt;xsl:param name="man.output.manifest.enabled" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>If non-zero, a list of filenames for man pages generated by
+    the stylesheet transformation is written to the file named by the
+    <parameter>man.output.manifest.filename</parameter> parameter.</para>
+
+  </refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.output.manifest.filename">
+  <refmeta>
+    <refentrytitle>man.output.manifest.filename</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>man.output.manifest.filename</refname>
+    <refpurpose>Name of manifest file</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <programlisting xml:id="man.output.manifest.filename.frag">&lt;xsl:param name="man.output.manifest.filename"&gt;MAN.MANIFEST&lt;/xsl:param&gt;</programlisting>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>The <parameter>man.output.manifest.filename</parameter> parameter
+    specifies the name of the file to which the manpages manifest file
+    is written (if the value of the
+    <parameter>man.output.manifest.enabled</parameter> parameter is
+    non-zero).</para>
+
+  </refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.output.in.separate.dir">
+<refmeta>
+<refentrytitle>man.output.in.separate.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.in.separate.dir</refname>
+<refpurpose>Output man-page files in separate output directory?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.output.in.separate.dir.frag">
+&lt;xsl:param name="man.output.in.separate.dir" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <literal>man.output.in.separate.dir</literal>
+parameter is non-zero, man-page files are output in a separate
+directory, specified by the <parameter>man.output.base.dir</parameter>
+parameter; otherwise, if the value of
+<literal>man.output.in.separate.dir</literal> is zero, man-page files
+are not output in a separate directory.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.output.lang.in.name.enabled">
+<refmeta>
+<refentrytitle>man.output.lang.in.name.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.lang.in.name.enabled</refname>
+<refpurpose>Include $LANG value in man-page filename/pathname?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.output.lang.in.name.enabled.frag">
+&lt;xsl:param name="man.output.lang.in.name.enabled" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+  <para>The <parameter>man.output.lang.in.name.enabled</parameter>
+  parameter specifies whether a <literal>$lang</literal> value is
+  included in man-page filenames and pathnames.</para>
+
+  <para>If the value of
+  <parameter>man.output.lang.in.name.enabled</parameter> is non-zero,
+  man-page files are output with the <literal>$lang</literal> value
+  included in their filenames or pathnames as follows;
+
+  <itemizedlist>
+    <listitem>
+      <para>if <parameter>man.output.subdirs.enabled</parameter> is
+      non-zero, each file is output to, e.g., a
+      <filename>man/<replaceable>$lang</replaceable>/man8/foo.8</filename>
+      pathname</para>
+    </listitem>
+    <listitem>
+      <para>if <parameter>man.output.subdirs.enabled</parameter> is
+      zero, each file is output with a
+      <literal>foo.<replaceable>$lang</replaceable>.8</literal>
+      filename</para>
+    </listitem>
+  </itemizedlist>
+  </para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.output.base.dir">
+<refmeta>
+<refentrytitle>man.output.base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.base.dir</refname>
+<refpurpose>Specifies separate output directory</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.output.base.dir.frag">&lt;xsl:param name="man.output.base.dir"&gt;man/&lt;/xsl:param&gt;</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.output.base.dir</parameter> parameter
+specifies the base directory into which man-page files are output. The
+<parameter>man.output.subdirs.enabled</parameter> parameter controls
+whether the files are output in subdirectories within the base
+directory.</para>
+
+<note>
+  <para>The values of the <parameter>man.output.base.dir</parameter>
+  and <parameter>man.output.subdirs.enabled</parameter> parameters are
+  used only if the value of
+  <parameter>man.output.in.separate.dir</parameter> parameter is
+  non-zero. If the value of the
+  <parameter>man.output.in.separate.dir</parameter> is zero, man-page
+  files are not output in a separate directory.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.output.subdirs.enabled">
+<refmeta>
+<refentrytitle>man.output.subdirs.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.subdirs.enabled</refname>
+<refpurpose>Output man-page files in subdirectories within base output directory?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.output.subdirs.enabled.frag">
+&lt;xsl:param name="man.output.subdirs.enabled" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.output.subdirs.enabled</parameter> parameter
+controls whether man-pages files are output in subdirectories within
+the base directory specified by the directory specified by the
+<parameter>man.output.base.dir</parameter> parameter.</para>
+
+<note>
+  <para>The values of the <parameter>man.output.base.dir</parameter>
+  and <parameter>man.output.subdirs.enabled</parameter> parameters are
+  used only if the value of
+  <parameter>man.output.in.separate.dir</parameter> parameter is
+  non-zero. If the value of the
+  <parameter>man.output.in.separate.dir</parameter> is zero, man-page
+  files are not output in a separate directory.</para>
+</note>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.output.quietly">
+<refmeta>
+<refentrytitle>man.output.quietly</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.quietly</refname>
+<refpurpose>Suppress filename messages emitted when generating output?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.output.quietly.frag">
+&lt;xsl:param name="man.output.quietly" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), for each man-page file created, a message
+with the name of the file is emitted. If non-zero, the files are
+output "quietly" -- that is, the filename messages are
+suppressed.</para>
+
+<tip>
+  <para>If you are processing a large amount of <tag>refentry</tag>
+  content, you may be able to speed up processing significantly by
+  setting a non-zero value for
+  <parameter>man.output.quietly</parameter>.</para>
+</tip>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.output.encoding">
+<refmeta>
+<refentrytitle>man.output.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.encoding</refname>
+<refpurpose>Encoding used for man-page output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.output.encoding.frag">
+&lt;xsl:param name="man.output.encoding"&gt;UTF-8&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the encoding to use for files generated
+by the manpages stylesheet. Not all processors support specification
+of this parameter.</para>
+
+<important>
+  <para>If the value of the <parameter>man.charmap.enabled</parameter>
+  parameter is non-zero (the default), keeping the
+  <parameter>man.output.encoding</parameter> parameter at its default
+  value (<literal>UTF-8</literal>) or setting it to
+  <literal>UTF-16</literal> <emphasis role="bold">does not cause your
+  man pages to be output in raw UTF-8 or UTF-16</emphasis> -- because
+  any Unicode characters for which matches are found in the enabled
+  character map will be replaced with roff escape sequences before the
+  final man-page files are generated.</para>
+
+  <para>So if you want to generate "real" UTF-8 man pages, without any
+  character substitution being performed on your content, you need to
+  set <parameter>man.charmap.enabled</parameter> to zero (which will
+  completely disable character-map processing). </para>
+
+  <para>You may also need to set
+  <parameter>man.charmap.enabled</parameter> to zero if you want to
+  output man pages in an encoding other than <literal>UTF-8</literal>
+  or <literal>UTF-16</literal>. Character-map processing is based on
+  Unicode character values and may not work with other output
+  encodings.</para>
+</important>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.output.better.ps.enabled">
+<refmeta>
+<refentrytitle>man.output.better.ps.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.better.ps.enabled</refname>
+<refpurpose>Enable enhanced print/PostScript output?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<programlisting xml:id="man.output.better.ps.enabled.frag">
+&lt;xsl:param name="man.output.better.ps.enabled"&gt;0&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.output.better.ps.enabled</parameter> parameter is
+non-zero, certain markup is embedded in each generated man page
+such that PostScript output from the <command>man -Tps</command>
+command for that page will include a number of enhancements
+designed to improve the quality of that output.</para>
+
+<para>If <parameter>man.output.better.ps.enabled</parameter> is
+zero (the default), no such markup is embedded in generated man
+pages, and no enhancements are included in the PostScript
+output generated from those man pages by the <command>man
+ -Tps</command> command.</para>
+
+<warning>
+  <para>The enhancements provided by this parameter rely on
+    features that are specific to groff (GNU troff) and that are
+    not part of &#8220;classic&#8221; AT&amp;T troff or any of its
+    derivatives. Therefore, any man pages you generate with this
+    parameter enabled will be readable only on systems on which
+    the groff (GNU troff) program is installed, such as GNU/Linux
+    systems. The pages <emphasis role="bold">will not not be
+      readable on systems on with the classic troff (AT&amp;T
+      troff) command is installed</emphasis>.</para>
+</warning>
+
+<para>The value of this parameter only affects PostScript output
+  generated from the <command>man</command> command. It has no
+  effect on output generated using the FO backend.</para>
+
+<tip>
+  <para>You can generate PostScript output for any man page by
+    running the following command:</para>
+  <programlisting>  man <replaceable>FOO</replaceable> -Tps &gt; <replaceable>FOO</replaceable>.ps</programlisting>
+  <para>You can then generate PDF output by running the following
+    command:</para>
+  <programlisting>  ps2pdf <replaceable>FOO</replaceable>.ps</programlisting>
+</tip>
+
+</refsection>
+</refentry>
+
+  </reference>
+  <reference xml:id="other">
+  <title>Other</title>
+<refentry version="5.0" xml:id="man.table.footnotes.divider">
+<refmeta>
+<refentrytitle>man.table.footnotes.divider</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.table.footnotes.divider</refname>
+<refpurpose>Specifies divider string that appears before table footnotes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.table.footnotes.divider.frag">
+&lt;xsl:param name="man.table.footnotes.divider"&gt;----&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In each table that contains footenotes, the string specified by
+the <parameter>man.table.footnotes.divider</parameter> parameter is
+output before the list of footnotes for the table.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.subheading.divider.enabled">
+<refmeta>
+<refentrytitle>man.subheading.divider.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.subheading.divider.enabled</refname>
+<refpurpose>Add divider comment to roff source before/after subheadings?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.subheading.divider.enabled.frag">
+&lt;xsl:param name="man.subheading.divider.enabled"&gt;0&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.subheading.divider.enabled</parameter> parameter is
+non-zero, the contents of the
+<parameter>man.subheading.divider</parameter> parameter are used to
+add a "divider" before and after subheadings in the roff
+output. <emphasis role="bold">The divider is not visisble in the
+rendered man page</emphasis>; it is added as a comment, in the source,
+simply for the purpose of increasing reability of the source.</para>
+
+<para>If <parameter>man.subheading.divider.enabled</parameter> is zero
+(the default), the subheading divider is suppressed.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="man.subheading.divider">
+<refmeta>
+<refentrytitle>man.subheading.divider</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.subheading.divider</refname>
+<refpurpose>Specifies string to use as divider comment before/after subheadings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="man.subheading.divider.frag">
+&lt;xsl:param name="man.subheading.divider"&gt;========================================================================&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.subheading.divider.enabled</parameter> parameter is
+non-zero, the contents of the
+<parameter>man.subheading.divider</parameter> parameter are used to
+add a "divider" before and after subheadings in the roff
+output. <emphasis role="bold">The divider is not visisble in the
+rendered man page</emphasis>; it is added as a comment, in the source,
+simply for the purpose of increasing reability of the source.</para>
+
+<para>If <parameter>man.subheading.divider.enabled</parameter> is zero
+(the default), the subheading divider is suppressed.</para>
+
+</refsection>
+</refentry>
+
+  </reference>
+  <appendix xml:id="stylesheet">
+    <title>The Stylesheet</title>
+
+    <para>The <filename>param.xsl</filename> stylesheet is just a
+    wrapper around all of these parameters.</para>
+
+    <programlisting xml:id="top">
+&lt;xsl:stylesheet exclude-result-prefixes="src" version="1.0"&gt;
+
+&lt;!-- This file is generated from param.xweb --&gt;
+
+&lt;!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** --&gt;
+
+&lt;src:fragref linkend="man.authors.section.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.break.after.slash.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.base.url.for.relative.links.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.charmap.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.charmap.subset.profile.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.charmap.subset.profile.english.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.charmap.uri.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.charmap.use.subset.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.copyright.section.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.endnotes.are.numbered.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.endnotes.list.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.endnotes.list.heading.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.font.funcprototype.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.font.funcsynopsisinfo.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.font.links.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.font.table.headings.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.font.table.title.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.funcsynopsis.style.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.hyphenate.computer.inlines.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.hyphenate.filenames.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.hyphenate.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.hyphenate.urls.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.indent.blurbs.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.indent.lists.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.indent.refsect.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.indent.verbatims.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.indent.width.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.justify.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.output.base.dir.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.output.encoding.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.output.in.separate.dir.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.output.lang.in.name.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.output.manifest.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.output.manifest.filename.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.output.better.ps.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.output.quietly.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.output.subdirs.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.segtitle.suppress.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.string.subst.map.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.string.subst.map.local.post.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.string.subst.map.local.pre.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.subheading.divider.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.subheading.divider.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.table.footnotes.divider.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.th.extra1.suppress.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.th.extra2.max.length.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.th.extra2.suppress.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.th.extra3.max.length.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.th.extra3.suppress.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="man.th.title.max.length.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.date.profile.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.date.profile.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.manual.fallback.profile.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.manual.profile.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.manual.profile.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.meta.get.quietly.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.source.fallback.profile.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.source.name.profile.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.source.name.profile.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.source.name.suppress.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.version.profile.enabled.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.version.profile.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="refentry.version.suppress.frag"&gt;&lt;/src:fragref&gt;
+&lt;/xsl:stylesheet&gt;
+    </programlisting>
+
+  </appendix>
+</book>
diff --git a/applications/content/template/docbook/manpages/param.xsl b/applications/content/template/docbook/manpages/param.xsl
new file mode 100644
index 0000000..0a16794
--- /dev/null
+++ b/applications/content/template/docbook/manpages/param.xsl
@@ -0,0 +1,194 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- This file is generated from param.xweb -->
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:param name="man.authors.section.enabled">1</xsl:param>
+<xsl:param name="man.break.after.slash">0</xsl:param>
+<xsl:param name="man.base.url.for.relative.links">[set $man.base.url.for.relative.links]/</xsl:param>
+<xsl:param name="man.charmap.enabled" select="1"/>
+<xsl:param name="man.charmap.subset.profile">
+@*[local-name() = 'block'] = 'Miscellaneous Technical' or
+(@*[local-name() = 'block'] = 'C1 Controls And Latin-1 Supplement (Latin-1 Supplement)' and
+ (@*[local-name() = 'class'] = 'symbols' or
+  @*[local-name() = 'class'] = 'letters')
+) or
+@*[local-name() = 'block'] = 'Latin Extended-A'
+or
+(@*[local-name() = 'block'] = 'General Punctuation' and
+ (@*[local-name() = 'class'] = 'spaces' or
+  @*[local-name() = 'class'] = 'dashes' or
+  @*[local-name() = 'class'] = 'quotes' or
+  @*[local-name() = 'class'] = 'bullets'
+ )
+) or
+@*[local-name() = 'name'] = 'HORIZONTAL ELLIPSIS' or
+@*[local-name() = 'name'] = 'WORD JOINER' or
+@*[local-name() = 'name'] = 'SERVICE MARK' or
+@*[local-name() = 'name'] = 'TRADE MARK SIGN' or
+@*[local-name() = 'name'] = 'ZERO WIDTH NO-BREAK SPACE'
+</xsl:param>
+<xsl:param name="man.charmap.subset.profile.english">
+@*[local-name() = 'block'] = 'Miscellaneous Technical' or
+(@*[local-name() = 'block'] = 'C1 Controls And Latin-1 Supplement (Latin-1 Supplement)' and
+ @*[local-name() = 'class'] = 'symbols')
+or
+(@*[local-name() = 'block'] = 'General Punctuation' and
+ (@*[local-name() = 'class'] = 'spaces' or
+  @*[local-name() = 'class'] = 'dashes' or
+  @*[local-name() = 'class'] = 'quotes' or
+  @*[local-name() = 'class'] = 'bullets'
+ )
+) or
+@*[local-name() = 'name'] = 'HORIZONTAL ELLIPSIS' or
+@*[local-name() = 'name'] = 'WORD JOINER' or
+@*[local-name() = 'name'] = 'SERVICE MARK' or
+@*[local-name() = 'name'] = 'TRADE MARK SIGN' or
+@*[local-name() = 'name'] = 'ZERO WIDTH NO-BREAK SPACE'
+</xsl:param>
+<xsl:param name="man.charmap.uri"/>
+<xsl:param name="man.charmap.use.subset" select="1"/>
+<xsl:param name="man.copyright.section.enabled">1</xsl:param>
+<xsl:param name="man.endnotes.are.numbered">1</xsl:param>
+<xsl:param name="man.endnotes.list.enabled">1</xsl:param>
+<xsl:param name="man.endnotes.list.heading"/>
+  <xsl:param name="man.font.funcprototype">BI</xsl:param>
+  <xsl:param name="man.font.funcsynopsisinfo">B</xsl:param>
+<xsl:param name="man.font.links">B</xsl:param>
+  <xsl:param name="man.font.table.headings">B</xsl:param>
+  <xsl:param name="man.font.table.title">B</xsl:param>
+<xsl:param name="man.funcsynopsis.style">ansi</xsl:param>
+<xsl:param name="man.hyphenate.computer.inlines">0</xsl:param>
+<xsl:param name="man.hyphenate.filenames">0</xsl:param>
+<xsl:param name="man.hyphenate">0</xsl:param>
+<xsl:param name="man.hyphenate.urls">0</xsl:param>
+<xsl:param name="man.indent.blurbs" select="1"/>
+<xsl:param name="man.indent.lists" select="1"/>
+<xsl:param name="man.indent.refsect" select="0"/>
+<xsl:param name="man.indent.verbatims" select="1"/>
+<xsl:param name="man.indent.width">4</xsl:param>
+<xsl:param name="man.justify">0</xsl:param>
+<xsl:param name="man.output.base.dir">man/</xsl:param>
+<xsl:param name="man.output.encoding">UTF-8</xsl:param>
+<xsl:param name="man.output.in.separate.dir" select="0"/>
+<xsl:param name="man.output.lang.in.name.enabled" select="0"/>
+<xsl:param name="man.output.manifest.enabled" select="0"/>
+<xsl:param name="man.output.manifest.filename">MAN.MANIFEST</xsl:param>
+<xsl:param name="man.output.better.ps.enabled">0</xsl:param>
+<xsl:param name="man.output.quietly" select="0"/>
+<xsl:param name="man.output.subdirs.enabled" select="1"/>
+<xsl:param name="man.segtitle.suppress" select="0"/>
+<xsl:param name="man.string.subst.map">
+
+  <!-- * remove no-break marker at beginning of line (stylesheet artifact) --> 
+  <substitution oldstring="&#x2592;&#x2580;" newstring="&#x2592;"/>
+  <!-- * replace U+2580 no-break marker (stylesheet-added) w/ no-break space -->
+  <substitution oldstring="&#x2580;" newstring="\ "/>
+
+  <!-- ==================================================================== -->
+
+  <!-- * squeeze multiple newlines before a roff request  -->
+  <substitution oldstring="&#10;&#10;." newstring="&#10;."/>
+  <!-- * remove any .sp instances that directly precede a .PP  -->
+  <substitution oldstring=".sp&#10;.PP" newstring=".PP"/>
+  <!-- * remove any .sp instances that directly follow a .PP  -->
+  <substitution oldstring=".sp&#10;.sp" newstring=".sp"/>
+  <!-- * squeeze multiple .sp instances into a single .sp-->
+  <substitution oldstring=".PP&#10;.sp" newstring=".PP"/>
+  <!-- * squeeze multiple newlines after start of no-fill (verbatim) env. -->
+  <substitution oldstring=".nf&#10;&#10;" newstring=".nf&#10;"/>
+  <!-- * squeeze multiple newlines after REstoring margin -->
+  <substitution oldstring=".RE&#10;&#10;" newstring=".RE&#10;"/>
+  <!-- * U+2591 is a marker we add before and after every Parameter in -->
+  <!-- * Funcprototype output -->
+  <substitution oldstring="&#x2591;" newstring=" "/>
+  <!-- * U+2592 is a marker we add for the newline before output of <sbr>; -->
+  <substitution oldstring="&#x2592;" newstring="&#10;"/>
+  <!-- * -->
+  <!-- * Now deal with some other characters that are added by the -->
+  <!-- * stylesheets during processing. -->
+  <!-- * -->
+  <!-- * bullet -->
+  <substitution oldstring="&#x2022;" newstring="\(bu"/>
+  <!-- * left double quote -->
+  <substitution oldstring="&#x201C;" newstring="\(lq"/>
+  <!-- * right double quote -->
+  <substitution oldstring="&#x201D;" newstring="\(rq"/>
+  <!-- * left single quote -->
+  <substitution oldstring="&#x2018;" newstring="\(oq"/>
+  <!-- * right single quote -->
+  <substitution oldstring="&#x2019;" newstring="\(cq"/>
+  <!-- * copyright sign -->
+  <substitution oldstring="&#xA9;" newstring="\(co"/>
+  <!-- * registered sign -->
+  <substitution oldstring="&#xAE;" newstring="\(rg"/>
+  <!-- * ...servicemark... -->
+  <!-- * There is no groff equivalent for it. -->
+  <substitution oldstring="&#x2120;" newstring="(SM)"/>
+  <!-- * ...trademark... -->
+  <!-- * We don't do "\(tm" because for console output, -->
+  <!-- * groff just renders that as "tm"; that is: -->
+  <!-- * -->
+  <!-- *   Product&#x2122; -> Producttm -->
+  <!-- * -->
+  <!-- * So we just make it to "(TM)" instead; thus: -->
+  <!-- * -->
+  <!-- *   Product&#x2122; -> Product(TM) -->
+  <substitution oldstring="&#x2122;" newstring="(TM)"/>
+
+</xsl:param>
+<xsl:param name="man.string.subst.map.local.post"/>
+  <xsl:param name="man.string.subst.map.local.pre"/>
+<xsl:param name="man.subheading.divider.enabled">0</xsl:param>
+<xsl:param name="man.subheading.divider">========================================================================</xsl:param>
+<xsl:param name="man.table.footnotes.divider">----</xsl:param>
+<xsl:param name="man.th.extra1.suppress">0</xsl:param>
+<xsl:param name="man.th.extra2.max.length">30</xsl:param>
+<xsl:param name="man.th.extra2.suppress">0</xsl:param>
+<xsl:param name="man.th.extra3.max.length">30</xsl:param>
+<xsl:param name="man.th.extra3.suppress">0</xsl:param>
+<xsl:param name="man.th.title.max.length">20</xsl:param>
+<xsl:param name="refentry.date.profile.enabled">0</xsl:param>
+<xsl:param name="refentry.date.profile">
+  (($info[//date])[last()]/date)[1]|
+  (($info[//pubdate])[last()]/pubdate)[1]
+</xsl:param>
+<xsl:param name="refentry.manual.fallback.profile">
+refmeta/refmiscinfo[not(@class = 'date')][1]/node()</xsl:param>
+<xsl:param name="refentry.manual.profile.enabled">0</xsl:param>
+<xsl:param name="refentry.manual.profile">
+  (($info[//title])[last()]/title)[1]|
+  ../title/node()
+</xsl:param>
+<xsl:param name="refentry.meta.get.quietly" select="0"/>
+<xsl:param name="refentry.source.fallback.profile">
+refmeta/refmiscinfo[not(@class = 'date')][1]/node()</xsl:param>
+<xsl:param name="refentry.source.name.profile.enabled">0</xsl:param>
+<xsl:param name="refentry.source.name.profile">
+  (($info[//productname])[last()]/productname)[1]|
+  (($info[//corpname])[last()]/corpname)[1]|
+  (($info[//corpcredit])[last()]/corpcredit)[1]|
+  (($info[//corpauthor])[last()]/corpauthor)[1]|
+  (($info[//orgname])[last()]/orgname)[1]|
+  (($info[//publishername])[last()]/publishername)[1]
+</xsl:param>
+<xsl:param name="refentry.source.name.suppress">0</xsl:param>
+<xsl:param name="refentry.version.profile.enabled">0</xsl:param>
+<xsl:param name="refentry.version.profile">
+  (($info[//productnumber])[last()]/productnumber)[1]|
+  (($info[//edition])[last()]/edition)[1]|
+  (($info[//releaseinfo])[last()]/releaseinfo)[1]
+</xsl:param>
+<xsl:param name="refentry.version.suppress">0</xsl:param>
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/manpages/pi.xml b/applications/content/template/docbook/manpages/pi.xml
new file mode 100644
index 0000000..277d8f9
--- /dev/null
+++ b/applications/content/template/docbook/manpages/pi.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+
+<reference><info><title>manpages Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    
+<para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the DocBook
+      XSL stylesheets for manpages output.
+      <note>
+        
+<para>You add these PIs at particular points in a document to
+          cause specific “exceptions” to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it’s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+
+      </note>
+    </para>
+
+  </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="dbman_funcsynopsis-style">
+<refnamediv>
+<refname>dbman_funcsynopsis-style</refname>
+<refpurpose>Specifies presentation style for a funcsynopsis.</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+
+    <synopsis><tag class="xmlpi">dbman funcsynopsis-style="kr"|"ansi"</tag></synopsis>
+  
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+    
+<para>Use the <tag class="xmlpi">dbman
+        funcsynopsis-style</tag> PI as a child of a
+      <tag>funcsynopsis</tag> or anywhere within a funcsynopsis
+      to control the presentation style for output of all
+      <tag>funcprototype</tag> instances within that funcsynopsis.</para>
+
+  </refsect1><refsect1><title>Parameters</title>
+    
+<variablelist>
+      <varlistentry><term>funcsynopsis-style="kr"</term>
+        <listitem>
+          
+<para>Displays the <tag>funcprototype</tag> in K&amp;R style</para>
+
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>funcsynopsis-style="ansi"</term>
+        <listitem>
+          
+<para>Displays the <tag>funcprototype</tag> in ANSI style</para>
+
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </refsect1><refsect1 role="params"><title>Related Global Parameters</title>
+    
+<para><parameter>man.funcsynopsis.style</parameter></para>
+
+  </refsect1></refentry>
+</reference>
+
diff --git a/applications/content/template/docbook/manpages/pi.xsl b/applications/content/template/docbook/manpages/pi.xsl
new file mode 100644
index 0000000..624b0f0
--- /dev/null
+++ b/applications/content/template/docbook/manpages/pi.xsl
@@ -0,0 +1,79 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                xmlns:xlink="http://www.w3.org/1999/xlink"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns=""><info><title>manpages Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    <para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the DocBook
+      XSL stylesheets for manpages output.
+      <note>
+        <para>You add these PIs at particular points in a document to
+          cause specific “exceptions” to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it’s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+      </note>
+    </para>
+  </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<doc:pi name="dbman_funcsynopsis-style" xmlns="">
+  <refpurpose>Specifies presentation style for a funcsynopsis.</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbman
+        funcsynopsis-style</tag> PI as a child of a
+      <tag>funcsynopsis</tag> or anywhere within a funcsynopsis
+      to control the presentation style for output of all
+      <tag>funcprototype</tag> instances within that funcsynopsis.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbman funcsynopsis-style="kr"|"ansi"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>funcsynopsis-style="kr"</term>
+        <listitem>
+          <para>Displays the <tag>funcprototype</tag> in K&amp;R style</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>funcsynopsis-style="ansi"</term>
+        <listitem>
+          <para>Displays the <tag>funcprototype</tag> in ANSI style</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>man.funcsynopsis.style</parameter></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbman_funcsynopsis-style">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbman')"/>
+    <xsl:with-param name="attribute" select="'funcsynopsis-style'"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/manpages/profile-docbook.xsl b/applications/content/template/docbook/manpages/profile-docbook.xsl
new file mode 100644
index 0000000..92cbbc8
--- /dev/null
+++ b/applications/content/template/docbook/manpages/profile-docbook.xsl
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exslt="http://exslt.org/common" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="exsl exslt" version="1.0">
+
+  <xsl:import href="../html/docbook.xsl"/>
+  <xsl:import href="../html/manifest.xsl"/>
+  <!-- * html-synop.xsl file is generated by build -->
+  <xsl:import href="html-synop.xsl"/>
+  <xsl:output method="text" encoding="UTF-8" indent="no"/>
+  <!-- ********************************************************************
+       $Id$
+       ********************************************************************
+
+       This file is part of the XSL DocBook Stylesheet distribution.
+       See ../README or http://docbook.sf.net/release/xsl/current/ for
+       copyright and other information.
+
+       ******************************************************************** -->
+
+  <!-- ==================================================================== -->
+
+  <xsl:include href="../common/refentry.xsl"/>
+  <xsl:include href="../common/charmap.xsl"/>
+  <xsl:include href="param.xsl"/>
+  <xsl:include href="utility.xsl"/>
+  <xsl:include href="info.xsl"/>
+  <xsl:include href="other.xsl"/>
+  <xsl:include href="refentry.xsl"/>
+  <xsl:include href="block.xsl"/>
+  <xsl:include href="inline.xsl"/>
+  <xsl:include href="synop.xsl"/>
+  <xsl:include href="lists.xsl"/>
+  <xsl:include href="endnotes.xsl"/>
+  <xsl:include href="table.xsl"/>
+  <xsl:include href="pi.xsl"/>
+
+  <!-- * we rename the following just to avoid using params with "man" -->
+  <!-- * prefixes in the table.xsl stylesheet (because that stylesheet -->
+  <!-- * can potentially be reused for more than just man output) -->
+  <xsl:param name="tbl.font.headings" select="$man.font.table.headings"/>
+  <xsl:param name="tbl.font.title" select="$man.font.table.title"/>
+
+  <xsl:param name="stylesheet.result.type" select="'manpages'"/>
+
+  <!-- ==================================================================== -->
+
+  <xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+    <!-- * Get a title for current doc so that we let the user -->
+    <!-- * know what document we are processing at this point. -->
+    <xsl:variable name="doc.title">
+      <xsl:call-template name="get.doc.title"/>
+    </xsl:variable>
+    <xsl:choose>
+      <!-- * when we find a namespaced document, strip the -->
+      <!-- * namespace and then continue processing it. -->
+      <xsl:when test="false()"/>
+      <xsl:when test="//*[local-name() = 'refentry']">
+        <!-- * Check to see if we have any refentry children in this -->
+        <!-- * document; if so, process them. The reason we use -->
+        <!-- * local-name()=refentry (instead of just //refentry) to to -->
+        <!-- * check for refentry children is because this stylsheet is -->
+        <!-- * also post-processed by the stylesheet build to create the -->
+        <!-- * manpages/profile-docbook.xsl, and the refentry child check -->
+        <!-- * in the profile-docbook.xsl stylesheet won't work if we do -->
+        <!-- * a simple //refentry check. -->
+        <xsl:apply-templates select="$profiled-nodes//refentry"/>
+        <!-- * if $man.output.manifest.enabled is non-zero, -->
+        <!-- * generate a manifest file -->
+        <xsl:if test="not($man.output.manifest.enabled = 0)">
+          <xsl:call-template name="generate.manifest">
+            <xsl:with-param name="filename">
+              <xsl:choose>
+                <xsl:when test="not($man.output.manifest.filename = '')">
+                  <!-- * If a name for the manifest file is specified, -->
+                  <!-- * use that name. -->
+                  <xsl:value-of select="$man.output.manifest.filename"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <!-- * Otherwise, if user has unset -->
+                  <!-- * $man.output.manifest.filename, default to -->
+                  <!-- * using "MAN.MANIFEST" as the filename. Because -->
+                  <!-- * $man.output.manifest.enabled is non-zero and -->
+                  <!-- * so we must have a filename in order to -->
+                  <!-- * generate the manifest. -->
+                  <xsl:text>MAN.MANIFEST</xsl:text>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * Otherwise, the document does not contain any -->
+        <!-- * refentry elements, so log/emit message and stop. -->
+        <xsl:call-template name="log.message">
+          <xsl:with-param name="level">Erro</xsl:with-param>
+          <xsl:with-param name="source" select="$doc.title"/>
+          <xsl:with-param name="context-desc">
+            <xsl:text> no refentry</xsl:text>
+          </xsl:with-param>
+          <xsl:with-param name="message">
+            <xsl:text>No refentry elements found</xsl:text>
+            <xsl:if test="$doc.title != ''">
+            <xsl:text> in "</xsl:text>
+              <xsl:choose>
+                <xsl:when test="string-length($doc.title) &gt; 30">
+                  <xsl:value-of select="substring($doc.title,1,30)"/>
+                  <xsl:text>...</xsl:text>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="$doc.title"/>
+                </xsl:otherwise>
+              </xsl:choose>
+              <xsl:text>"</xsl:text>
+            </xsl:if>
+            <xsl:text>.</xsl:text>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- ============================================================== -->
+
+  <xsl:template match="refentry">
+    <xsl:param name="lang">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:param>
+    <!-- * Just use the first refname found as the "name" of the man -->
+    <!-- * page (which may different from the "title"...) -->
+    <xsl:variable name="first.refname" select="refnamediv[1]/refname[1]"/>
+
+    <xsl:call-template name="root.messages">
+      <xsl:with-param name="refname" select="$first.refname"/>
+    </xsl:call-template>
+
+    <!-- * Because there are several times when we need to check *info of -->
+    <!-- * each refentry and its ancestors, we get those and store the -->
+    <!-- * data from them as a node-set in memory. -->
+
+    <!-- * Make a node-set with contents of *info -->
+    <xsl:variable name="get.info" select="ancestor-or-self::*/*[substring(local-name(),                           string-length(local-name()) - 3) = 'info']"/>
+    <xsl:variable name="info" select="exsl:node-set($get.info)"/>
+
+    <!-- * The get.refentry.metadata template is in -->
+    <!-- * ../common/refentry.xsl. It looks for metadata in $info -->
+    <!-- * and in various other places and then puts it into a form -->
+    <!-- * that's easier for us to digest. -->
+    <xsl:variable name="get.refentry.metadata">
+      <xsl:call-template name="get.refentry.metadata">
+        <xsl:with-param name="refname" select="$first.refname"/>
+        <xsl:with-param name="info" select="$info"/>
+        <xsl:with-param name="prefs" select="$refentry.metadata.prefs"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="refentry.metadata" select="exsl:node-set($get.refentry.metadata)"/>
+
+    <!-- * Assemble the various parts into a complete page, then store into -->
+    <!-- * $manpage.contents so that we can manipluate them further. -->
+    <xsl:variable name="manpage.contents">
+      <!-- * preprocessor invocation (need for legacy AT&T troff use) -->
+      <!-- * this tells troff to pre-process the page through tbl(1) -->
+      <!-- * (groff can figure it out automatically, but AT&T troff can't) -->
+      <xsl:text>'\" t
+</xsl:text>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * top.comment = commented-out section at top of roff source -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:call-template name="top.comment">
+        <xsl:with-param name="info" select="$info"/>
+        <xsl:with-param name="date" select="$refentry.metadata/date"/>
+        <xsl:with-param name="title" select="$refentry.metadata/title"/>
+        <xsl:with-param name="manual" select="$refentry.metadata/manual"/>
+        <xsl:with-param name="source" select="$refentry.metadata/source"/>
+        <xsl:with-param name="refname" select="$first.refname"/>
+      </xsl:call-template>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * TH.title.line = title line in header/footer of man page -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:call-template name="TH.title.line">
+        <!-- * .TH TITLE  section  extra1  extra2  extra3 -->
+        <!-- *  -->
+        <!-- * According to the man(7) man page: -->
+        <!-- *  -->
+        <!-- * extra1 = date,   "the date of the last revision" -->
+        <!-- * extra2 = source, "the source of the command" -->
+        <!-- * extra3 = manual, "the title of the manual -->
+        <!-- *                  (e.g., Linux Programmer's Manual)" -->
+        <!-- * -->
+        <!-- * So, we end up with: -->
+        <!-- *  -->
+        <!-- * .TH TITLE  section  date  source  manual -->
+        <!-- * -->
+        <xsl:with-param name="title" select="$refentry.metadata/title"/>
+        <xsl:with-param name="section" select="$refentry.metadata/section"/>
+        <xsl:with-param name="extra1" select="$refentry.metadata/date"/>
+        <xsl:with-param name="extra2" select="$refentry.metadata/source"/>
+        <xsl:with-param name="extra3" select="$refentry.metadata/manual"/>
+      </xsl:call-template>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * (re)define some macros -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:call-template name="define.portability.macros"/>
+      <xsl:if test="not($man.output.better.ps.enabled = 0)">
+        <xsl:call-template name="define.macros"/>
+      </xsl:if>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * Set default hyphenation, justification, indentation, and -->
+      <!-- * line-breaking -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:call-template name="set.default.formatting"/>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * Main body of man page -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:text>.\" -----------------------------------------------------------------
+</xsl:text>
+      <xsl:text>.\" * MAIN CONTENT STARTS HERE *
+</xsl:text>
+      <xsl:text>.\" -----------------------------------------------------------------
+</xsl:text>
+      <xsl:apply-templates/>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * AUTHOR section -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:if test="not($man.authors.section.enabled = 0)">
+        <xsl:call-template name="author.section">
+          <xsl:with-param name="info" select="$info"/>
+        </xsl:call-template>
+      </xsl:if>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * COPYRIGHT section -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:if test="not($man.copyright.section.enabled = 0)">
+        <xsl:call-template name="copyright.section">
+          <xsl:with-param name="info" select="$info"/>
+        </xsl:call-template>
+      </xsl:if>
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <!-- * NOTES list (only if user wants endnotes numbered and/or listed) -->
+      <!-- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+      <xsl:if test="$man.endnotes.list.enabled != 0 or                     $man.endnotes.are.numbered != 0">
+        <xsl:call-template name="endnotes.list"/>
+      </xsl:if>
+    </xsl:variable> <!-- * end of manpage.contents -->
+
+    <!-- * Prepare the page contents for final output, then store in -->
+    <!-- * $manpage.contents.prepared so the we can pass it on to the -->
+    <!-- * write.text.chunk() function -->
+    <xsl:variable name="manpage.contents.prepared">
+      <!-- * "Preparing" the page contents involves, at a minimum, -->
+      <!-- * doubling any backslashes found (so they aren't interpreted -->
+      <!-- * as roff escapes). -->
+      <!-- * -->
+      <!-- * If $charmap.enabled is true, "preparing" the page contents also -->
+      <!-- * involves applying a character map to convert Unicode symbols and -->
+      <!-- * special characters into corresponding roff escape sequences. -->
+      <xsl:call-template name="prepare.manpage.contents">
+        <xsl:with-param name="content" select="$manpage.contents"/>
+      </xsl:call-template>
+    </xsl:variable>
+    
+    <!-- * Write the prepared page contents to disk to create -->
+    <!-- * the final man page. -->
+    <xsl:call-template name="write.man.file">
+      <xsl:with-param name="name" select="$first.refname"/>
+      <xsl:with-param name="section" select="$refentry.metadata/section"/>
+      <xsl:with-param name="lang" select="$lang"/>
+      <xsl:with-param name="content" select="$manpage.contents.prepared"/>
+    </xsl:call-template>
+
+    <!-- * Generate "stub" (alias) pages (if any needed) -->
+    <xsl:call-template name="write.stubs">
+      <xsl:with-param name="first.refname" select="$first.refname"/>
+      <xsl:with-param name="section" select="$refentry.metadata/section"/>
+      <xsl:with-param name="lang" select="$lang"/>
+    </xsl:call-template>
+
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/manpages/refentry.xsl b/applications/content/template/docbook/manpages/refentry.xsl
new file mode 100644
index 0000000..875b30a
--- /dev/null
+++ b/applications/content/template/docbook/manpages/refentry.xsl
@@ -0,0 +1,319 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+  <xsl:template match="refnamediv">
+    <xsl:choose>
+      <xsl:when test="preceding-sibling::refnamediv">
+        <!-- * No title on secondary refnamedivs! -->
+        <!-- * Just put a single line break instead -->
+        <xsl:text>.br&#10;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="make.subheading">
+          <xsl:with-param name="title">
+            <xsl:apply-templates select="." mode="subheading.markup"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="mark.subheading"/>
+    <!-- * if we have multiple Refname instances, separate the names -->
+    <!-- * with commas -->
+    <xsl:for-each select="refname">
+      <xsl:if test="position()>1">
+        <xsl:text>, </xsl:text>
+      </xsl:if>
+      <xsl:call-template name="string.subst">
+        <!-- * To create the name(s) for this man page, replace any -->
+        <!-- * spaces in the refname(s) with underscores. This ensures -->
+        <!-- * that tools like lexgrog(1) will be able to parse the name -->
+        <!-- * (lexgrog won’t parse names that contain spaces). -->
+        <xsl:with-param name="string" select="."/>
+        <xsl:with-param name="target" select="' '"/>
+        <xsl:with-param name="replacement" select="'_'"/>
+      </xsl:call-template>
+    </xsl:for-each>
+    <!-- * The man(7) man pages says: -->
+    <!-- * -->
+    <!-- *   The only required heading is NAME, which should be the -->
+    <!-- *   first section and be followed on the next line by a one -->
+    <!-- *   line description of the program: -->
+    <!-- * -->
+    <!-- *      .SH NAME chess \- the game of chess -->
+    <!-- * -->
+    <!-- *   It is extremely important that this format is followed, -->
+    <!-- *   and that there is a backslash before the single dash -->
+    <!-- *   which follows the command name.  This syntax is used by -->
+    <!-- *   the makewhatis(8) program to create a database of short -->
+    <!-- *   command descriptions for the whatis(1) and apropos(1) -->
+    <!-- *   commands. -->
+    <!-- * -->
+    <xsl:if test="refpurpose/node()">
+      <xsl:text> \- </xsl:text>
+      <xsl:variable name="refpurpose">
+        <xsl:apply-templates select="refpurpose/node()"/>
+      </xsl:variable>
+      <xsl:value-of select="normalize-space($refpurpose)"/>
+    </xsl:if>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:template>
+
+  <xsl:template match="refsynopsisdiv">
+    <xsl:call-template name="make.subheading">
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="." mode="subheading.markup"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <xsl:template match="refsect1|refentry/refsection">
+    <xsl:variable name="title">
+      <xsl:apply-templates select="." mode="subheading.markup"/>
+    </xsl:variable>
+    <xsl:call-template name="make.subheading">
+      <xsl:with-param name="title">
+        <xsl:value-of select="normalize-space($title)"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <xsl:template match="refsect2|refentry/refsection/refsection">
+    <xsl:call-template name="mark.subheading"/>
+    <xsl:variable name="title">
+      <xsl:apply-templates
+          select="(info/title
+                  |refsectioninfo/title
+                  |refsect1info/title
+                  |title)[1]/node()"/>
+    </xsl:variable>
+    <xsl:text>.SS "</xsl:text>
+    <xsl:value-of select="normalize-space($title)"/>
+    <xsl:text>"&#10;</xsl:text>
+    <xsl:call-template name="mark.subheading"/>
+    <xsl:choose>
+      <!-- * If default-indentation adjustment is on, then indent the -->
+      <!-- * child content of this Refsect2 -->
+      <xsl:when test="not($man.indent.refsect = 0)">
+        <xsl:text>.RS&#10;</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>.RE&#10;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * If default-indentation adjustment is on, then do not -->
+        <!-- * indent the child content of this Refsect2, because -->
+        <!-- * the title is already "sticking out to the left" -->
+        <!-- * (as the groff_man(7) man page describes it), which -->
+        <!-- * actually means the title is indented by the value of -->
+        <!-- * the SN register, which appears by default to be -->
+        <!-- * about half of the default indentation value -->
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="refsect3|refentry/refsection/refsection/refsection">
+    <xsl:variable name="title">
+      <xsl:value-of select="(info/title
+                            |refsectioninfo/title
+                            |refsect1info/title
+                            |title)[1]"/>
+    </xsl:variable>
+    <xsl:choose>
+      <!-- * If default-indentation adjustment is on, then indent the -->
+      <!-- * child content of this Refsect3 or Refsection. -->
+      <xsl:when test="not($man.indent.refsect != 0)">
+        <xsl:call-template name="nested-section-title"/>
+        <xsl:text>.RS</xsl:text>
+        <xsl:if test="not($man.indent.width = '')">
+          <xsl:text> </xsl:text>
+          <xsl:value-of select="$man.indent.width"/>
+        </xsl:if>
+        <xsl:text>&#10;</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>.RE&#10;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * If default-indentation adjustment is on, then do not -->
+        <!-- * indent the child content of this Refsect2, because -->
+        <!-- * the title is already "sticking out to the left" -->
+        <!-- * (as the groff_man(7) man page describes it), which -->
+        <!-- * actually means the title is indented by the value of -->
+        <!-- * the SN register, which appears by default to be -->
+        <!-- * about half of the default indentation value -->
+        <xsl:text>.ti (\n(SNu * 5u / 3u)&#10;</xsl:text>
+        <xsl:call-template name="nested-section-title"/>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="refsection">
+    <!-- * This template is used for a nested Refsection that is -->
+    <!-- * is a child of a Refsect3-level section (The numberd -->
+    <!-- * Refsect hierarchy in DocBook ends with Refsect3, so -->
+    <!-- * there is not actually a Refsect4 element.) -->
+    <xsl:variable name="title">
+      <xsl:value-of select="(info/title
+                            |refsectioninfo/title
+                            |refsect1info/title
+                            |title)[1]"/>
+    </xsl:variable>
+    <xsl:variable name="indent-width">
+      <xsl:if test="not($man.indent.refsect = 0)">
+        <!-- * If default-indentation adjustment is on, then indent the -->
+        <!-- * child content of this Refsect3 or Refsection. -->
+        <xsl:text>(\n(SNu)&#10;</xsl:text>
+      </xsl:if>
+    </xsl:variable>
+    <xsl:call-template name="nested-section-title"/>
+    <xsl:text>.RS (\n(SNu)&#10;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>.RE&#10;</xsl:text>
+  </xsl:template>
+
+  <!-- ==================================================================== -->
+
+  <xsl:template match="refsect1|refentry/refsection"
+                mode="subheading.markup">
+    <xsl:variable name="title" select="(info/title
+      |refsectioninfo/title
+      |refsect1info/title
+      |title)[1]"/>
+    <xsl:apply-templates select="$title" mode="title.markup"/>
+  </xsl:template>
+
+  <xsl:template match="refsect1|refentry/refsection"
+    mode="title.markup">
+    <!-- * Note: This template is used just for generating the text for -->
+    <!-- * cross-references to Refsect1 or top-level Refsection instances. -->
+    <xsl:variable name="title" select="(info/title
+      |refsectioninfo/title
+      |refsect1info/title
+      |title)[1]"/>
+    <xsl:call-template name="process.SH.xref">
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="$title" mode="title.markup"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+
+  <!-- * Output of Titles from Xref with Endterm needs to be handled -->
+  <!-- * separately from output for Endterm-less Xref -->
+  <xsl:template match="refsect1/title
+    |refentry/refsection/title
+    |refsynopsisdiv/title"
+    mode="endterm">
+    <xsl:call-template name="process.SH.xref">
+      <xsl:with-param name="title">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="refsynopsisdiv" mode="subheading.markup">
+    <xsl:param name="allow-anchors" select="0"/>
+    <xsl:variable name="title">
+      <xsl:call-template name="get.refsynopsisdiv.title">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:value-of select="$title"/>
+  </xsl:template>
+
+  <xsl:template match="refsynopsisdiv" mode="title.markup">
+    <!-- * Note: This template is used just for generating the text for -->
+    <!-- * cross-references to Refsynopsisdiv instances. -->
+    <xsl:param name="allow-anchors" select="0"/>
+    <xsl:variable name="title">
+      <xsl:call-template name="get.refsynopsisdiv.title">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:call-template name="process.SH.xref">
+      <xsl:with-param name="title" select="$title"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template name="get.refsynopsisdiv.title">
+    <xsl:param name="allow-anchors"/>
+    <xsl:choose>
+      <xsl:when test="info/title
+        |refsynopsisdivinfo/title
+        |title">
+        <xsl:apply-templates
+          select="(info/title
+          |refsynopsisdivinfo/title
+          |title)[1]" mode="title.markup">
+          <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'RefSynopsisDiv'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="refnamediv" mode="subheading.markup">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'RefName'"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="refnamediv" mode="title.markup">
+    <xsl:call-template name="process.SH.xref">
+      <xsl:with-param name="title">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'RefName'"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="refnamediv" mode="xref-to">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:template>
+
+  <!-- * suppress any title we don't otherwise process elsewhere -->
+  <xsl:template match="title"/>
+
+  <!-- ==================================================================== -->
+
+  <xsl:template name="process.SH.xref">
+    <xsl:param name="title"/>
+    <xsl:choose>
+      <xsl:when test="not($man.output.better.ps.enabled = 0)">
+        <xsl:text>\c</xsl:text>
+        <xsl:text>&#x2592;</xsl:text>
+        <xsl:text>.SH-xref </xsl:text>
+        <xsl:text>"</xsl:text>
+        <xsl:value-of select="$title"/>
+        <xsl:text>\c"</xsl:text>
+        <xsl:text>&#x2592;</xsl:text>
+        <xsl:text>\&amp;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="string.upper">
+          <xsl:with-param name="string" select="$title"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/manpages/synop.xsl b/applications/content/template/docbook/manpages/synop.xsl
new file mode 100644
index 0000000..ff24821
--- /dev/null
+++ b/applications/content/template/docbook/manpages/synop.xsl
@@ -0,0 +1,432 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                exclude-result-prefixes="exsl"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:variable name="arg.or.sep"> |</xsl:variable>
+
+<!-- * Note: If you're looking for the *Synopsis* element, you won't -->
+<!-- * find any code here for handling it. It's a "verbatim" -->
+<!-- * environment; see the block.xsl file instead. -->
+
+<xsl:template match="synopfragmentref">
+  <xsl:variable name="target" select="key('id',@linkend)"/>
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="$target" mode="synopfragment.number"/>
+  </xsl:variable>
+  <xsl:text>(</xsl:text>
+  <xsl:value-of select="$snum"/>
+  <xsl:text>)</xsl:text>
+  <xsl:text>&#x2580;</xsl:text>
+  <xsl:call-template name="italic">
+    <xsl:with-param name="node" select="."/>
+    <xsl:with-param name="context" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="synopfragment" mode="synopfragment.number">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="synopfragment">
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="." mode="synopfragment.number"/>
+  </xsl:variable>
+  <xsl:text>&#10;</xsl:text>
+  <!-- * If we have a group of Synopfragments, we only want to output a -->
+  <!-- * line of space before the first; so when we find a Synopfragment -->
+  <!-- * which has another Synopfragment as a following sibling, we use-->
+  <!-- * the pinch-together template to close up the line of space -->
+  <!-- * that would otherwise be generated by the .HP macro -->
+  <xsl:if test="following-sibling::*[self::synopfragment]">
+    <xsl:call-template name="pinch.together"/>
+  </xsl:if>
+  <xsl:text>.HP </xsl:text>
+  <xsl:text>\w'</xsl:text>
+  <xsl:text>(</xsl:text>
+  <xsl:value-of select="$snum"/>
+  <xsl:text>)</xsl:text>
+  <xsl:text>\ 'u</xsl:text>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:text>(</xsl:text>
+  <xsl:value-of select="$snum"/>
+  <xsl:text>)</xsl:text>
+  <xsl:text>\ </xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="group|arg" name="group-or-arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:variable name="sepchar">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*/@sepchar">
+        <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text> </xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:if test="position()>1 and
+                not(preceding-sibling::*[1][self::sbr])"
+          ><xsl:value-of select="$sepchar"/></xsl:if>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <!-- * do nothing -->
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.open.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.open.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:variable name="arg">
+    <xsl:apply-templates/>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="local-name(.) = 'arg' and not(ancestor::arg)">
+      <!-- * Prevent arg contents from getting wrapped and broken up -->
+      <xsl:variable name="arg.wrapper">
+        <Arg><xsl:value-of select="normalize-space($arg)"/></Arg>
+      </xsl:variable>
+      <xsl:apply-templates mode="prevent.line.breaking"
+                           select="exsl:node-set($arg.wrapper)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="$rep='repeat'">
+      <xsl:value-of select="$arg.rep.repeat.str"/>
+    </xsl:when>
+    <xsl:when test="$rep='norepeat'">
+      <xsl:value-of select="$arg.rep.norepeat.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.rep.def.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:if test='arg'>
+      <xsl:value-of select="$arg.choice.plain.close.str"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.close.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.close.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="group/arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:if test="position()>1"><xsl:value-of select="$arg.or.sep"/></xsl:if>
+  <xsl:call-template name="group-or-arg"/>
+</xsl:template>
+
+<xsl:template match="sbr">
+  <xsl:text>&#x2592;</xsl:text>
+  <xsl:text>.br&#x2592;</xsl:text>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis">
+  <!-- * if justification is enabled by default, turn it off temporarily -->
+  <xsl:if test="$man.justify != 0">
+    <xsl:text>.ad l&#10;</xsl:text>
+  </xsl:if>
+  <!-- * if hyphenation is enabled by default, turn it off temporarily -->
+  <xsl:if test="$man.hyphenate != 0">
+    <xsl:text>.hy 0&#10;</xsl:text>
+  </xsl:if>
+  <xsl:call-template name="synopsis-block-start"/>
+  <xsl:text>.HP </xsl:text>
+  <xsl:text>\w'</xsl:text>
+  <xsl:variable name="command">
+    <xsl:apply-templates select="command"/>
+  </xsl:variable>
+  <xsl:call-template name="string.subst">
+    <xsl:with-param name="string" select="normalize-space($command)"/>
+    <xsl:with-param name="target" select="' '"/>
+    <xsl:with-param name="replacement" select="'\ '"/>
+  </xsl:call-template>
+  <xsl:text>\ 'u</xsl:text>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:call-template name="synopsis-block-end"/>
+  <!-- * if justification is enabled by default, turn it back on -->
+  <xsl:if test="$man.justify != 0">
+    <xsl:text>.ad&#10;</xsl:text>
+  </xsl:if>
+  <!-- * if hyphenation is enabled by default, turn it back on -->
+  <xsl:if test="$man.hyphenate != 0">
+    <xsl:text>.hy&#10;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- *  Funcsynopis hierarchy starts here -->
+<!-- ==================================================================== -->
+
+<!-- * Note: If you're looking for the *Funcsynopsisinfo* element, -->
+<!-- * you won't find any code here for handling it. It's a "verbatim" -->
+<!-- * environment; see the block.xsl file instead. -->
+
+<!-- * Within funcsynopis output, disable hyphenation, and use -->
+<!-- * left-aligned filling for the duration of the synopsis, so that -->
+<!-- * line breaks only occur between separate paramdefs. -->
+<xsl:template match="funcsynopsis">
+  <!-- * if justification is enabled by default, turn it off temporarily -->
+  <xsl:if test="$man.justify != 0">
+    <xsl:text>.ad l&#10;</xsl:text>
+  </xsl:if>
+  <!-- * if hyphenation is enabled by default, turn it off temporarily -->
+  <xsl:if test="$man.hyphenate != 0">
+    <xsl:text>.hy 0&#10;</xsl:text>
+  </xsl:if>
+  <xsl:apply-templates/>
+  <!-- * if justification is enabled by default, turn it back on -->
+  <xsl:if test="$man.justify != 0">
+    <xsl:text>.ad&#10;</xsl:text>
+  </xsl:if>
+  <!-- * if hyphenation is enabled by default, turn it back on -->
+  <xsl:if test="$man.hyphenate != 0">
+    <xsl:text>.hy&#10;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<!-- * In HTML output, placing a dbfunclist PI as a child of a particular -->
+<!-- * element creates a hyperlinked list of all funcsynopsis instances -->
+<!-- * that are descendants of that element. But we can’t really do this -->
+<!-- * kind of hyperlinked list in manpages output, so we just need to -->
+<!-- * suppress it instead. -->
+<xsl:template match="processing-instruction('dbfunclist')"/>
+
+<!-- * ***************************************************************** -->
+<!-- *           Note about boldface in funcprototype output -->
+<!-- * ***************************************************************** -->
+<!-- * All funcprototype content is by default rendered in bold, -->
+<!-- * because the old man(7) man page, now man-pages(7) says this: -->
+<!-- * -->
+<!-- *   For functions, the arguments are always specified using -->
+<!-- *   italics, even in the SYNOPSIS section, where the rest of -->
+<!-- *   the function is specified in bold -->
+<!-- * -->
+<!-- * Look through the contents of the man/man2 and man3 directories -->
+<!-- * on your system, and you'll see that most existing pages do follow -->
+<!-- * this "bold everything in function synopsis" rule. -->
+<!-- * -->
+<!-- * Users who don't want the bold output can choose to adjust the -->
+<!-- * man.font.funcprototype parameter on their own. So even if you -->
+<!-- * don't personally like the way it looks, please don't change the -->
+<!-- * default to be non-bold - because it's a convention that's -->
+<!-- * followed is the vast majority of existing man pages that document -->
+<!-- * functions, and we need to follow it by default, like it or no. -->
+<!-- * ***************************************************************** -->
+
+<xsl:template match="funcprototype">
+  <xsl:variable name="man-funcprototype-style">
+    <xsl:call-template name="pi.dbman_funcsynopsis-style">
+      <xsl:with-param name="node" select="ancestor::funcsynopsis/descendant-or-self::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="style">
+    <xsl:choose>
+      <xsl:when test="not($man-funcprototype-style = '')">
+        <xsl:value-of select="$man-funcprototype-style"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$man.funcsynopsis.style"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="funcprototype.string.value">
+    <xsl:value-of select="funcdef"/>
+  </xsl:variable>
+  <xsl:variable name="funcprototype">
+    <xsl:apply-templates select="funcdef"/>
+  </xsl:variable>
+  <xsl:call-template name="synopsis-block-start"/>
+  <xsl:text>.HP </xsl:text>
+  <xsl:text>\w'</xsl:text>
+  <xsl:variable name="funcdef">
+    <xsl:apply-templates select="funcdef"/>
+  </xsl:variable>
+  <xsl:call-template name="string.subst">
+    <xsl:with-param name="string" select="normalize-space($funcdef)"/>
+    <xsl:with-param name="target" select="' '"/>
+    <xsl:with-param name="replacement" select="'\ '"/>
+  </xsl:call-template>
+  <xsl:text>('u</xsl:text>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:text>.</xsl:text>
+  <xsl:value-of select="$man.font.funcprototype"/>
+  <xsl:text> </xsl:text>
+  <!-- * The following quotation mark (and the one further below) are -->
+  <!-- * needed to properly delimit the parts of the Funcprototype that -->
+  <!-- * should be rendered in the prevailing font (either Bold or Roman) -->
+  <!-- * from Parameter output that needs to be alternately rendered in -->
+  <!-- * italic. -->
+  <xsl:text>"</xsl:text>
+  <xsl:value-of select="normalize-space($funcprototype)"/>
+  <xsl:text>(</xsl:text>
+  <xsl:choose>
+    <xsl:when test="not($style = 'ansi')">
+      <xsl:apply-templates select="*[local-name() != 'funcdef']" mode="kr"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="*[local-name() != 'funcdef']" mode="ansi"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:text>"</xsl:text>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:if test="paramdef and not($style = 'ansi')">
+    <!-- * if we have any paramdef instances in this funcprototype and -->
+    <!-- * the user has chosen K&R style output (by specifying some style -->
+    <!-- * value other than the default 'ansi'), then we need to generate -->
+    <!-- * the separate list of param definitions for this funcprototype -->
+    <!-- * -->
+    <!-- * we put a blank line after the prototype and before the list, -->
+    <!-- * and we indent the list by whatever width $list-indent is set -->
+    <!-- * to (4 spaces by default) -->
+    <xsl:text>.sp&#10;</xsl:text>
+    <xsl:text>.RS</xsl:text> 
+    <xsl:if test="not($list-indent = '')">
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$list-indent"/>
+    </xsl:if>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:apply-templates select="paramdef" mode="kr-paramdef-list"/>
+    <xsl:text>.RE&#10;</xsl:text>
+  </xsl:if>
+  <xsl:call-template name="synopsis-block-end"/>
+</xsl:template>
+
+<xsl:template match="funcdef">
+  <xsl:apply-templates mode="prevent.line.breaking"/>
+</xsl:template>
+
+<xsl:template match="funcdef/function">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="void" mode="kr">
+  <xsl:text>);</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="kr">
+  <xsl:text>...);</xsl:text>
+</xsl:template>
+
+<xsl:template match="void" mode="ansi">
+  <xsl:text>void);</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="ansi">
+  <xsl:text>...);</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr">
+  <!-- * in K&R-style output, the prototype just contains the parameter -->
+  <!-- * names - because the parameter definitions for each parameter -->
+  <!-- * (including the type information) are displayed in a separate -->
+  <!-- * list following the prototype; so in this mode (which is for the -->
+  <!-- * prototype, not the separate list), we first just want to grab -->
+  <!-- * the parameter for each paramdef -->
+  <xsl:variable name="contents">
+    <xsl:apply-templates select="parameter"/>
+  </xsl:variable>
+  <xsl:apply-templates mode="prevent.line.breaking" select="exsl:node-set($contents)"/>
+  <xsl:choose>
+    <xsl:when test="following-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>);</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="ansi">
+  <!-- * in ANSI-style output, the prototype contains the complete -->
+  <!-- * parameter definitions for each parameter (there is no separate -->
+  <!-- * list of parameter definitions like the one for K&R style -->
+  <xsl:apply-templates mode="prevent.line.breaking" select="."/>
+  <xsl:choose>
+    <xsl:when test="following-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>);</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-paramdef-list">
+  <!-- * this mode is for generating the separate list of parameter -->
+  <!-- * definitions in K&R-style output -->
+  <xsl:text>.br&#10;</xsl:text>
+  <xsl:text>.</xsl:text>
+  <xsl:value-of select="$man.font.funcprototype"/>
+  <xsl:text> </xsl:text>
+  <!-- * The following quotation mark (and the one further below) are -->
+  <!-- * needed to properly delimit the parts of the Funcprototype that -->
+  <!-- * should be rendered in the prevailing font (either Bold or Roman) -->
+  <!-- * from Parameter output that needs to be alternately rendered in -->
+  <!-- * italic. -->
+  <xsl:text>"</xsl:text>
+  <xsl:variable name="contents">
+    <xsl:apply-templates/>
+  </xsl:variable>
+  <xsl:value-of select="normalize-space($contents)"/>
+  <xsl:text>;</xsl:text>
+  <xsl:text>"</xsl:text>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter">
+  <!-- * We use U+2591 here in place of a normal space, because if we -->
+  <!-- * were to just use a normal space, it would get replaced with a -->
+  <!-- * non-breaking space when we run the whole Paramdef through the -->
+  <!-- * prevent.line.breaking template. And as far as why we're -->
+  <!-- * inserting the space and quotation marks around each Parameter -->
+  <!-- * to begin with, the reason is that we need to because we are -->
+  <!-- * outputting Funcsynopsis in either the "BI" or "RI" font, and -->
+  <!-- * the space and quotation marks delimit the text as the -->
+  <!-- * "alternate" or "I" text that needs to be rendered in italic. -->
+  <xsl:text>"&#x2591;"</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>"&#x2591;"</xsl:text>
+</xsl:template>
+
+<xsl:template match="funcparams">
+  <xsl:text>(</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>)</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/manpages/table.xsl b/applications/content/template/docbook/manpages/table.xsl
new file mode 100644
index 0000000..cc747cc
--- /dev/null
+++ b/applications/content/template/docbook/manpages/table.xsl
@@ -0,0 +1,633 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                exclude-result-prefixes="exsl"
+                version='1.0'>
+
+  <!-- ********************************************************************
+       $Id$
+       ********************************************************************
+
+       This file is part of the XSL DocBook Stylesheet distribution.
+       See ../README or http://docbook.sf.net/release/xsl/current/ for
+       copyright and other information.
+
+       ******************************************************************** -->
+  <!--
+  <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/>
+  <xsl:param name="tbl.font.title">B</xsl:param>
+  <xsl:param name="tbl.font.headings">B</xsl:param>
+  -->
+  <xsl:param name="tbl.running.header.from.thead" select="0"/>
+  <xsl:param name="tbl.column.separator.char">:</xsl:param>
+
+  <!-- ==================================================================== -->
+
+  <!-- * This stylesheet transforms DocBook and HTML table source into -->
+  <!-- * tbl(1) markup. -->
+  <!-- * -->
+  <!-- * For details on tbl(1) and its markup syntaxt, see M. E. Lesk,-->
+  <!-- * "Tbl - A Program to Format Tables": -->
+  <!-- * -->
+  <!-- *   http://cm.bell-labs.com/7thEdMan/vol2/tbl -->
+  <!-- *   http://cm.bell-labs.com/cm/cs/doc/76/tbl.ps.gz -->
+  <!-- *   http://www.snake.net/software/troffcvt/tbl.html -->
+
+  <xsl:template match="table|informaltable" mode="to.tbl">
+    <!--* the "source" param is an optional param; it can be any -->
+    <!--* string you want to use that gives some indication of the -->
+    <!--* source context for a table; it gets passed down to the named -->
+    <!--* templates that do the actual table processing; this -->
+    <!--* stylesheet currently uses the "source" information for -->
+    <!--* logging purposes -->
+    <xsl:param name="source"/>
+    <xsl:param name="title">
+      <xsl:if test="local-name(.) = 'table'">
+        <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+      </xsl:if>
+    </xsl:param>
+    <!-- * ============================================================== -->
+    <!-- *    Set global table parameters                                 -->
+    <!-- * ============================================================== -->
+    <!-- * First, set a few parameters based on attributes specified in -->
+    <!-- * the table source. -->
+    <xsl:param name="allbox">
+    <xsl:if test="not(@frame = 'none') and not(@border = '0')">
+      <!-- * By default, put a box around table and between all cells, -->
+      <!-- * unless frame="none" or border="0" -->
+      <xsl:text>allbox </xsl:text>
+    </xsl:if>
+    </xsl:param>
+    <xsl:param name="center">
+    <!-- * If align="center", center the table. Otherwise, tbl(1) -->
+    <!-- * left-aligns it by default; note that there is no support -->
+    <!-- * in tbl(1) for specifying right alignment. -->
+    <xsl:if test="@align = 'center' or tgroup/@align = 'center'">
+      <xsl:text>center </xsl:text>
+    </xsl:if>
+    </xsl:param>
+    <xsl:param name="expand">
+    <!-- * If pgwide="1" or width="100%", then "expand" the table by -->
+    <!-- * making it "as wide as the current line length" (to quote -->
+    <!-- * the tbl(1) guide). -->
+    <xsl:if test="@pgwide = '1' or @width = '100%'">
+      <xsl:text>expand </xsl:text>
+    </xsl:if>
+    </xsl:param>
+
+    <!-- * ============================================================== -->
+    <!-- *    Convert table to HTML                                       -->
+    <!-- * ============================================================== -->
+    <!-- * Process the table by applying the HTML templates from the -->
+    <!-- * DocBook XSL stylesheets to the whole thing; because we don't -->
+    <!-- * override any of the <row>, <entry>, <tr>, <td>, etc. templates, -->
+    <!-- * the templates in the HTML stylesheets (which we import) are -->
+    <!-- * used to process those. -->
+    <xsl:param name="html-table-output">
+      <xsl:choose>
+        <xsl:when test=".//tr">
+          <!-- * If this table has a TR child, it means that it's an -->
+          <!-- * HTML table in the DocBook source, instead of a CALS -->
+          <!-- * table. So we just copy it as-is, while wrapping it -->
+          <!-- * in an element with same name as its original parent. -->
+          <xsl:for-each select="descendant-or-self::table|descendant-or-self::informaltable">
+            <xsl:element name="{local-name(..)}">
+              <table>
+                <xsl:copy-of select="*"/>
+              </table>
+            </xsl:element>
+          </xsl:for-each>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- * Otherwise, this is a CALS table in the DocBook source, -->
+          <!-- * so we need to apply the templates in the HTML -->
+          <!-- * stylesheets to transform it into HTML before we do -->
+          <!-- * any further processing of it. -->
+          <xsl:apply-templates/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:param>
+    <xsl:param name="contents" select="exsl:node-set($html-table-output)"/>
+
+    <!-- ==================================================================== -->
+    <!-- *                       Output the table -->
+    <!-- ==================================================================== -->
+    <!-- * -->
+    <!-- * This is the "driver" part of the code; it calls a series of named
+         * templates (further below) to generate the actual tbl(1) markup, -->
+    <!-- * including the optional "options line", required "format section", -->
+    <!-- * and then the actual contents of the table. -->
+    <!-- * -->
+    <!-- ==================================================================== -->
+
+    <xsl:for-each select="$contents//table">
+      <!-- * ============================================================== -->
+      <!-- *   Output table title                                           -->
+      <!-- * ============================================================== -->
+      <xsl:if test="$title != '' or parent::td">
+        <xsl:text>.sp&#10;</xsl:text>
+        <xsl:call-template name="pinch.together"/>
+        <xsl:text>.</xsl:text>
+        <xsl:value-of select="$tbl.font.title"/>
+        <xsl:text> </xsl:text>
+        <xsl:if test="parent::td">
+          <xsl:text>*[nested&#x2580;table]</xsl:text>
+        </xsl:if>
+        <xsl:value-of select="normalize-space($title)"/>
+        <xsl:text>&#10;</xsl:text>
+      </xsl:if>
+      
+      <!-- * mark the start of the table -->
+      <!-- * "TS" = "table start" -->
+      <xsl:text>.TS</xsl:text>
+      <xsl:if test="thead and $tbl.running.header.from.thead">
+        <!-- * H = "has header" -->
+        <xsl:text> H</xsl:text>
+      </xsl:if>
+      <xsl:text>&#10;</xsl:text>
+
+      <!-- * ============================================================== -->
+      <!-- *   Output "options line"                                         -->
+      <!-- * ============================================================== -->
+      <xsl:variable name="options-line">
+        <xsl:value-of select="$allbox"/>
+        <xsl:value-of select="$center"/>
+        <xsl:value-of select="$expand"/>
+        <xsl:text>tab(</xsl:text>
+        <xsl:value-of select="$tbl.column.separator.char"/>
+        <xsl:text>)</xsl:text>
+      </xsl:variable>
+      <xsl:if test="normalize-space($options-line) != ''">
+        <xsl:value-of select="normalize-space($options-line)"/>
+        <xsl:text>;&#10;</xsl:text>
+      </xsl:if>
+
+      <!-- * ============================================================== -->
+      <!-- *   Output table header rows                                     -->
+      <!-- * ============================================================== -->
+      <xsl:if test="thead">
+        <xsl:call-template name="output.rows">
+          <xsl:with-param name="rows" select="thead/tr"/>
+        </xsl:call-template> 
+        <xsl:text>&#10;</xsl:text>
+
+        <!-- * mark the end of table-header rows -->
+        <xsl:choose>
+          <xsl:when test="$tbl.running.header.from.thead">
+            <!-- * "TH" = "table header end" -->
+            <xsl:text>.TH&#10;</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- * "T&" = "table continuation" and is meant just as a kind -->
+            <!-- * of convenience macro and is sorta equivalent to a "TE" -->
+            <!-- * (table end) followed immediately by a "TS" (table start); -->
+            <!-- * in this case, it marks the end of a table "subsection" -->
+            <!-- * with header rows, and the start of a subsection with body -->
+            <!-- * rows. It's necessary to output it here because the "TH" -->
+            <!-- * macro is not being output, so there's otherwise no way -->
+            <!-- * for tbl(1) to know we have the table "sectioned". -->
+            <xsl:text>.T&amp;&#10;</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+      
+      <!-- * ============================================================== -->
+      <!-- *  Output table body rows                                        -->
+      <!-- * ============================================================== -->
+      <!-- * First create node set with all non-thead rows (tbody+tfoot), -->
+      <!-- * but reordered with the tfoot rows at the end of the node set -->
+      <xsl:variable name="rows-set">
+        <xsl:copy-of select="tbody/tr|tr"/>
+        <xsl:copy-of select="tfoot/tr"/>
+      </xsl:variable>
+      <xsl:call-template name="output.rows">
+        <xsl:with-param name="source" select="$source"/>
+        <xsl:with-param name="rows" select="exsl:node-set($rows-set)"/>
+      </xsl:call-template>
+
+      <!-- * mark the end of the table -->
+      <xsl:text>&#10;</xsl:text>
+      <!-- * .TE = "Table End" -->
+      <xsl:text>.TE&#10;</xsl:text>
+      <!-- * put a blank line of space below the table -->
+      <xsl:text>.sp 1&#10;</xsl:text>
+    </xsl:for-each>
+  </xsl:template>
+
+  <!-- ==================================================================== -->
+  <!-- *                        named templates -->
+  <!-- ==================================================================== -->
+  <!-- * -->
+  <!-- * All of the following are named templates that get called directly -->
+  <!-- * or indirectly by the main "driver" part of the code (above) -->
+  <!-- * -->
+  <!-- ==================================================================== -->
+  
+  <xsl:template name="output.rows">
+    <xsl:param name="source"/>
+    <xsl:param name="rows"/>
+    <!-- * ============================================================== -->
+    <!-- *   Flatten row set into simple list of cells                    -->
+    <!-- * ============================================================== -->
+    <!-- * Now we flatten the structure further into just a set of -->
+    <!-- * cells without the row parents. This basically creates a -->
+    <!-- * copy of the entire contents of the original table, but -->
+    <!-- * restructured in such a way that we can more easily generate -->
+    <!-- * the corresponding tbl(1) markup we need to output. -->
+    <xsl:variable name="cells-list">
+      <xsl:call-template name="build.cell.list">
+        <xsl:with-param name="source" select="$source"/>
+        <xsl:with-param name="rows" select="$rows"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="cells" select="exsl:node-set($cells-list)"/>
+
+    <!-- * Output the table "format section", which tells tbl(1) how to -->
+    <!-- * format each row and column -->
+    <xsl:call-template name="create.table.format">
+      <xsl:with-param name="cells" select="$cells"/>
+    </xsl:call-template>
+
+    <!--* Output the formatted contents of each cell. -->
+    <xsl:for-each select="$cells/cell">
+      <xsl:call-template name="output.cell"/>
+    </xsl:for-each>
+  </xsl:template>
+
+  <!-- * ============================================================== -->
+  <!-- *    Output the tbl(1)-formatted contents of each cell.            -->
+  <!-- * ============================================================== -->
+  <xsl:template name="output.cell">
+    <xsl:choose>
+      <xsl:when test="preceding-sibling::cell[1]/@row != @row or
+                      not(preceding-sibling::cell)">
+        <!-- * If the value of the "row" attribute on this cell is -->
+        <!-- * different from the value of that on the previous cell, it -->
+        <!-- * means we have a new row. So output a line break (as long -->
+        <!-- * as this isn't the first cell in the table) -->
+        <xsl:text>&#10;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * Otherwise we are not at the start of a new row, so we -->
+        <!-- * output a tab character to delimit the contents of this -->
+        <!-- * cell from the contents of the next one. -->
+        <xsl:value-of select="$tbl.column.separator.char"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:choose>
+      <xsl:when test="@type = '^'">
+        <!-- * If this is a dummy cell resulting from the presence of -->
+        <!-- * rowpan attribute in the source, it has no contents, so -->
+        <!-- * we need to handle it differently. -->
+        <xsl:if test="@colspan and @colspan > 1">
+          <!-- * If there is a colspan attribute on this dummy row, then -->
+          <!-- * we need to output a tab character for each column that -->
+          <!-- * it spans. -->
+          <xsl:call-template name="copy-string">
+            <xsl:with-param name="string" select="$tbl.column.separator.char"/>
+            <xsl:with-param name="count">
+              <xsl:value-of select="@colspan - 1"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * Otherwise, we have a "real" cell (not a dummy one) with -->
+        <!-- * contents that we need to output, -->
+        <!-- * -->
+        <!-- * The "T{" and "T}" stuff are delimiters to tell tbl(1) that -->
+        <!-- * the delimited contents are "text blocks" that roff -->
+        <!-- * needs to process -->
+        <xsl:text>T{&#10;</xsl:text>
+        <xsl:copy-of select="."/>
+        <xsl:text>&#10;T}</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- * ============================================================== -->
+  <!-- *   Build a restructured "cell list" copy of the entire table    -->
+  <!-- * ============================================================== -->
+  <xsl:template name="build.cell.list">
+    <xsl:param name="source"/>
+    <xsl:param name="rows"/>
+    <xsl:param  name="cell-data-unsorted">
+      <!-- * This param collects all the "real" cells from the table, -->
+      <!-- * along with "dummy" rows that we generate for keeping -->
+      <!-- * track of Rowspan instances. -->
+      <xsl:apply-templates select="$rows" mode="cell.list">
+        <xsl:with-param name="source" select="$source"/>
+      </xsl:apply-templates>
+    </xsl:param>
+    <xsl:param  name="cell-data-sorted">
+      <!-- * Sort the cells so that the dummy cells get put where we -->
+      <!-- * need them in the structure. Note that we need to specify -->
+      <!-- * data-type="number" here because the default sorting method -->
+      <!-- * for xsl:sort is "text" (alphabetical). -->
+      <xsl:for-each select="exsl:node-set($cell-data-unsorted)/cell">
+        <xsl:sort select="@row" data-type="number"/>
+        <xsl:sort select="@slot" data-type="number"/>
+        <xsl:copy-of select="."/>
+      </xsl:for-each>
+    </xsl:param>
+    <!-- * Return the sorted cell list -->
+    <xsl:copy-of select="$cell-data-sorted"/>
+  </xsl:template>
+
+  <xsl:template match="tr" mode="cell.list">
+    <xsl:param name="source"/>
+    <xsl:variable name="row">
+      <xsl:value-of select="count(preceding-sibling::tr) + 1"/>
+    </xsl:variable>
+    <xsl:for-each select="td|th">
+      <xsl:call-template name="cell">
+        <xsl:with-param name="source" select="$source"/>
+        <xsl:with-param name="row" select="$row"/>
+        <!-- * pass on the element name so we can select the appropriate -->
+        <!-- * roff font for styling the cell contents -->
+        <xsl:with-param name="class" select="name(.)"/>
+      </xsl:call-template>
+    </xsl:for-each>
+  </xsl:template>
+
+  <xsl:template name="cell">
+    <xsl:param name="source"/>
+    <xsl:param name="row"/>
+    <xsl:param name="class"/>
+    <xsl:param name="slot">
+      <!-- * The "slot" is the horizontal position of this cell (usually -->
+      <!-- * just the same as its column, but not so when it is preceded -->
+      <!-- * by cells that have colspans or cells in preceding rows that -->
+      <!-- * that have rowspans). -->
+      <xsl:value-of select="position()"/>
+    </xsl:param>
+    <!-- * For each real TD cell, create a Cell instance; contents will -->
+    <!-- * be the roff-formatted contents of its original table cell. -->
+    <cell type=""
+          row="{$row}"
+          slot="{$slot}"
+          class="{$class}"
+          colspan="{@colspan}"
+          align="{@align}"
+          valign="{@valign}"
+          >
+      <xsl:choose>
+        <xsl:when test=".//tr">
+          <xsl:call-template name="log.message">
+            <xsl:with-param name="level">Warn</xsl:with-param>
+            <xsl:with-param name="source" select="$source"/>
+            <xsl:with-param name="context-desc">tbl convert</xsl:with-param>
+            <xsl:with-param name="message">
+              <xsl:text>Extracted a nested table</xsl:text>
+            </xsl:with-param>
+          </xsl:call-template>
+          <xsl:text>[\fInested&#x2580;table\fR]*&#10;</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- * Apply templates to the child contents of this cell, to -->
+          <!-- * transform them into marked-up roff. -->
+          <xsl:variable name="contents">
+            <xsl:apply-templates/>
+          </xsl:variable>
+          <!-- * We now have the contents in roff (plain-text) form, -->
+          <!-- * but we may also still have unnecessary whitespace at -->
+          <!-- * the beginning and/or end of it, so trim it off. -->
+          <xsl:call-template name="trim.text">
+            <xsl:with-param name="contents" select="$contents"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </cell>
+
+    <!-- * For each instance of a rowspan attribute found, we create N -->
+    <!-- * dummy cells, where N is equal to the value of the rowspan. -->
+    <xsl:if test="@rowspan and @rowspan > 0">
+      <!-- * If this cell is preceded in the same row by cells that -->
+      <!-- * have colspan attributes, then we need to calculate the -->
+      <!-- * "offset" caused by those colspan instances; the formula -->
+      <!-- * is to (1) check for all the preceding cells that have -->
+      <!-- * colspan attributes that are not empty and which have a -->
+      <!-- * value greater than 1, then (2) take the sum of the values -->
+      <!-- * of all those colspan attributes, and subtract from that -->
+      <!-- * the number of such colspan instances found. -->
+      <xsl:variable name="colspan-offset">
+        <xsl:value-of
+            select="sum(preceding-sibling::td[@colspan != ''
+                    and @colspan > 1]/@colspan) -
+                    count(preceding-sibling::td[@colspan != ''
+                    and @colspan > 1]/@colspan)"/>
+      </xsl:variable>
+      <xsl:call-template name="create.dummy.cells">
+        <xsl:with-param name="row" select="$row + 1"/>
+        <!-- * The slot value on each dummy cell must be offset by the -->
+        <!-- * value of $colspan-offset to adjust for preceding colpans -->
+        <xsl:with-param name="slot" select="$slot + $colspan-offset"/>
+        <xsl:with-param name="colspan" select="@colspan"/>
+        <xsl:with-param name="rowspan" select="@rowspan"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="create.dummy.cells">
+    <xsl:param name="row"/>
+    <xsl:param name="slot"/>
+    <xsl:param name="colspan"/>
+    <xsl:param name="rowspan"/>
+    <xsl:choose>
+      <xsl:when test="$rowspan > 1">
+        <!-- * Tail recurse until we have no more rowspans, creating -->
+        <!-- * an empty dummy cell each time. The type value, '^' -->
+        <!-- * is the marker that tbl(1) uses to indicate a -->
+        <!-- * "vertically spanned heading". -->
+        <cell row="{$row}" slot="{$slot}" type="^" colspan="{@colspan}"/>
+        <xsl:call-template name="create.dummy.cells">
+          <xsl:with-param name="row" select="$row + 1"/>
+          <xsl:with-param name="slot" select="$slot"/>
+          <xsl:with-param name="colspan" select="$colspan"/>
+          <xsl:with-param name="rowspan" select="$rowspan - 1"/>
+        </xsl:call-template>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- * ============================================================== -->
+  <!-- *    Build the "format section" for the table                    -->
+  <!-- * ============================================================== -->
+  <!-- * Description from the tbl(1) guide: -->
+  <!-- * -->
+  <!-- * "The format section of the table specifies the layout of the -->
+  <!-- * columns.  Each line in this section corresponds to one line of -->
+  <!-- * the table... and each line contains a key-letter for each -->
+  <!-- * column of the table." -->
+  <xsl:template name="create.table.format">
+    <xsl:param name="cells"/>
+    <xsl:apply-templates mode="table.format" select="$cells"/>
+    <!-- * last line of table format section must end with a dot -->
+    <xsl:text>.</xsl:text>
+  </xsl:template>
+
+  <xsl:template match="cell" mode="table.format">
+    <xsl:choose>
+      <xsl:when test="preceding-sibling::cell[1]/@row != @row">
+        <!-- * If the value of the row attribute on this cell is -->
+        <!-- * different from the value of that on the previous cell, it -->
+        <!-- * means we have a new row. So output a line break. -->
+        <xsl:text>&#xa;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * If this isn't the first cell, output a space before it to -->
+        <!-- * separate it from the preceding key letter. -->
+        <xsl:if test="position() != 1">
+          <xsl:text> </xsl:text>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+    <!-- * Select an appropriate "alignment" key letter based on this -->
+    <!-- * cell's attributes. -->
+    <xsl:choose>
+      <xsl:when test="@type = '^'">
+        <xsl:text>^</xsl:text>
+      </xsl:when>
+      <xsl:when test="@align = 'center'">
+        <xsl:text>c</xsl:text>
+      </xsl:when>
+      <xsl:when test="@align = 'right'">
+        <xsl:text>r</xsl:text>
+      </xsl:when>
+      <xsl:when test="@align = 'char'">
+        <xsl:text>n</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * Default to left alignment. -->
+        <xsl:text>l</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    <!-- * By default, tbl(1) vertically centers cell contents within -->
+    <!-- * their cells; the "t" key latter tells it to top-align the -->
+    <!-- * contents instead. Note that tbl(1) has no options for -->
+    <!-- * bottom or baseline alignment. -->
+    <xsl:if test="@valign = 'top'">
+      <xsl:text>t</xsl:text>
+    </xsl:if>
+    <xsl:if test="@class = 'th'">
+      <!-- * If this is a heading row, generate a font indicator (B or I), -->
+      <!-- * or if the value of $tbl.font.headings is empty, nothing. -->
+      <xsl:value-of select="$tbl.font.headings"/>
+    </xsl:if>
+    <!-- * We only need to deal with colspans whose value is greater -->
+    <!-- * than one (a colspan="1" is the same as having no colspan -->
+    <!-- * attribute at all). -->
+    <xsl:if test="@colspan > 1">
+      <xsl:call-template name="process.colspan">
+        <xsl:with-param name="colspan" select="@colspan - 1"/>
+        <xsl:with-param name="type" select="@type"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:template>
+  
+  <xsl:template name="process.colspan">
+    <xsl:param name="colspan"/>
+    <xsl:param name="type"/>
+    <!-- * Output a space to separate this key letter from preceding one. -->
+    <xsl:text> </xsl:text>
+    <xsl:choose>
+      <xsl:when test="$type = '^'">
+        <!-- * A '^' ("vertically spanned heading" marker) indicates -->
+        <!-- * that the "parent" of this spanned cell is a dummy cell; -->
+        <!-- * in this case, we need to generate a '^' instead of the -->
+        <!-- * normal 's'. -->
+        <xsl:text>^</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- * s = 'spanned heading' -->
+        <xsl:text>s</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:if test="$colspan > 1">
+      <!-- * Tail recurse until we have no more colspans, outputting -->
+      <!-- * another marker each time. -->
+      <xsl:call-template name="process.colspan">
+        <xsl:with-param name="colspan" select="$colspan - 1"/>
+        <xsl:with-param name="type" select="$type"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- * ============================================================== -->
+  <!-- *    colgroup and col                                            -->
+  <!-- * ============================================================== -->
+  <!-- * We currently don't do anything with colgroup. Not sure if it -->
+  <!-- * is widely used enough to bother adding support for it -->
+  <xsl:template match="colgroup"/>
+  <xsl:template match="col"/>
+
+  <!-- * ============================================================== -->
+  <!-- *    table footnotes                                      -->
+  <!-- * ============================================================== -->
+  <xsl:template match="footnote" mode="table.footnote.mode">
+    <xsl:variable name="footnotes" select=".//footnote"/>
+    <xsl:variable name="table.footnotes"
+                  select=".//tgroup//footnote"/>
+    <xsl:value-of select="$man.table.footnotes.divider"/>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:text>.br&#10;</xsl:text>
+    <xsl:apply-templates select="*[1]" mode="footnote.body.number"/>
+    <xsl:apply-templates select="*[position() &gt; 1]"/>
+  </xsl:template>
+
+  <!-- * The following template for footnote.body.number mode was just -->
+  <!-- * lifted from the HTML stylesheets with some minor adjustments -->
+  <xsl:template match="*"  mode="footnote.body.number">
+    <xsl:variable name="name">
+      <xsl:text>ftn.</xsl:text>
+      <xsl:call-template name="object.id">
+        <xsl:with-param name="object" select="ancestor::footnote"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="href">
+      <xsl:text>#</xsl:text>
+      <xsl:call-template name="object.id">
+        <xsl:with-param name="object" select="ancestor::footnote"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="footnote.mark">
+      <xsl:text>[</xsl:text>
+      <xsl:apply-templates select="ancestor::footnote"
+                           mode="footnote.number"/>
+      <xsl:text>]&#10;</xsl:text>
+    </xsl:variable>
+    <xsl:variable name="html">
+      <xsl:apply-templates select="."/>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$exsl.node.set.available != 0">
+        <xsl:variable name="html-nodes" select="exsl:node-set($html)"/>
+        <xsl:choose>
+          <xsl:when test="$html-nodes//p">
+            <xsl:apply-templates select="$html-nodes" mode="insert.html.p">
+              <xsl:with-param name="mark" select="$footnote.mark"/>
+            </xsl:apply-templates>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="$html-nodes" mode="insert.html.text">
+              <xsl:with-param name="mark" select="$footnote.mark"/>
+            </xsl:apply-templates>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$html"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- * The HTML stylesheets output <sup><a>...</a></sup> around -->
+  <!-- * footnote markers in tables -->
+  <xsl:template match="th/sup">
+    <xsl:apply-templates/>
+  </xsl:template>
+  <xsl:template match="a">
+    <xsl:apply-templates/>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/manpages/utility.xsl b/applications/content/template/docbook/manpages/utility.xsl
new file mode 100644
index 0000000..c8ab698
--- /dev/null
+++ b/applications/content/template/docbook/manpages/utility.xsl
@@ -0,0 +1,555 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:dyn="http://exslt.org/dynamic"
+                xmlns:saxon="http://icl.com/saxon"
+                exclude-result-prefixes="exsl dyn saxon"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- * This file contains "utility" templates that are called multiple -->
+<!-- * times per each Refentry. -->
+
+<!-- ==================================================================== -->
+
+  <!-- * NOTE TO DEVELOPERS: For ease of maintenance, the current -->
+  <!-- * manpages stylesheets use the "bold" and "italic" named -->
+  <!-- * templates for anything and everything that needs to get -->
+  <!-- * boldfaced or italicized. -->
+  <!-- * -->
+  <!-- * So if you add anything that needs bold or italic character -->
+  <!-- * formatting, try to apply these templates to it rather than -->
+  <!-- * writing separate code to format it. This can be a little odd if -->
+  <!-- * the content you want to format is not element content; in those -->
+  <!-- * cases, you need to turn it into element content before applying -->
+  <!-- * the template; see examples of this in the existing code. -->
+
+  <xsl:template name="bold">
+    <xsl:param name="node"/>
+    <xsl:param name="context"/>
+    <xsl:choose>
+      <xsl:when test="not($context[ancestor::title])">
+        <xsl:for-each select="$node/node()">
+          <xsl:text>\fB</xsl:text>
+          <xsl:apply-templates select="."/>
+          <xsl:text>\fR</xsl:text>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="$node/node()"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template name="italic">
+    <xsl:param name="node"/>
+    <xsl:param name="context"/>
+    <xsl:for-each select="$node/node()">
+      <xsl:text>\fI</xsl:text>
+      <xsl:apply-templates select="."/>
+      <xsl:text>\fR</xsl:text>
+    </xsl:for-each>
+  </xsl:template>
+
+  <xsl:template name="inline.monoseq">
+    <xsl:call-template name="code-inline-start"/>
+    <xsl:apply-templates/>
+    <xsl:call-template name="code-inline-end"/>
+  </xsl:template>
+
+  <xsl:template name="code-inline-start">
+    <xsl:if test="not($man.output.better.ps.enabled = 0)">
+      <xsl:text>\FC</xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="code-inline-end">
+    <xsl:if test="not($man.output.better.ps.enabled = 0)">
+      <xsl:text>\F[]</xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- ================================================================== -->
+
+  <xsl:template name="verbatim-block-start">
+    <xsl:if test="not($man.output.better.ps.enabled = 0)">
+      <xsl:text>.fam C&#10;</xsl:text>
+      <xsl:text>.ps -1&#10;</xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="verbatim-block-end">
+    <xsl:if test="not($man.output.better.ps.enabled = 0)">
+      <xsl:text>.fam&#10;</xsl:text>
+      <xsl:text>.ps +1&#10;</xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="synopsis-block-start">
+    <xsl:if test="not($man.output.better.ps.enabled = 0)">
+      <xsl:text>.fam C&#10;</xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="synopsis-block-end">
+    <xsl:if test="not($man.output.better.ps.enabled = 0)">
+      <xsl:text>.fam&#10;</xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- ================================================================== -->
+
+  <!-- * NOTE TO DEVELOPERS: For ease of maintenance, the current -->
+  <!-- * manpages stylesheets use the mode="prevent.line.breaking" -->
+  <!-- * templates for anything and everything that needs to have -->
+  <!-- * embedded spaces turned into no-break spaces in output - in -->
+  <!-- * order to prevent that output from getting broken across lines -->
+  <!-- * -->
+  <!-- * So if you add anything that whose output, try to apply this -->
+  <!-- * template to it rather than writing separate code to format -->
+  <!-- * it. This can be a little odd if the content you want to -->
+  <!-- * format is not element content; in those cases, you need to -->
+  <!-- * turn it into element content before applying the template; -->
+  <!-- * see examples of this in the existing code. -->
+  <!-- * -->
+  <!-- * This template is currently called by the funcdef and paramdef -->
+  <!-- * and group/arg templates. -->
+  <xsl:template mode="prevent.line.breaking" match="*">
+    <xsl:variable name="rcontent">
+      <xsl:apply-templates/>
+    </xsl:variable>
+    <xsl:variable name="content">
+      <xsl:value-of select="normalize-space($rcontent)"/>
+    </xsl:variable>
+    <xsl:call-template name="string.subst">
+      <xsl:with-param name="string" select="$content"/>
+      <xsl:with-param name="target" select="' '"/>
+      <!-- * U+2580 is a "UPPER HALF BLOCK"; we use it here because -->
+      <!-- * if we were to just use a normal space, it would get -->
+      <!-- * replaced when normalization is done. We replace it -->
+      <!-- * later with the groff markup for non-breaking space. -->
+      <xsl:with-param name="replacement" select="'&#x2580;'"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <!-- ================================================================== -->
+
+  <xsl:template name="suppress.hyphenation">
+    <!-- * we need to suppress hyphenation inline only if hyphenation is -->
+    <!-- * actually on, and even then only outside of Cmdsynopsis and -->
+    <!-- * Funcsynopsis, where it is already always turned off -->
+    <xsl:if test="$man.hyphenate != 0 and
+                  not(ancestor::cmdsynopsis) and
+                  not(ancestor::funcsynopsis)">
+      <xsl:text>\%</xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- ================================================================== -->
+
+  <!-- * The replace.dots.and.dashes template is used to cause real -->
+  <!-- * dots and dashes to be output in the top comment (instead of -->
+  <!-- * escaped ones as in the source for the text displayed in the -->
+  <!-- * body of the page) -->
+  <xsl:template name="replace.dots.and.dashes">
+    <xsl:param name="content">
+      <xsl:apply-templates/>
+    </xsl:param>
+    <xsl:variable name="dot-content">
+      <xsl:call-template name="string.subst">
+        <xsl:with-param name="string" select="$content"/>
+        <xsl:with-param name="target" select="'\&amp;.'"/>
+        <xsl:with-param name="replacement" select="'.'"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:call-template name="string.subst">
+      <xsl:with-param name="string" select="$dot-content"/>
+      <xsl:with-param name="target" select="'\-'"/>
+      <xsl:with-param name="replacement" select="'-'"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <!-- ================================================================== -->
+
+  <!-- * The nested-section-title template is called for refsect3, and any -->
+  <!-- * refsection nested more than 2 levels deep. -->
+  <xsl:template name="nested-section-title">
+    <xsl:text>.sp&#10;</xsl:text>
+    <xsl:call-template name="pinch.together"/>
+    <xsl:text>.ps +1&#10;</xsl:text>
+    <xsl:call-template name="make.bold.title"/>
+  </xsl:template>
+
+  <xsl:template name="pinch.together">
+    <!-- * arcane roff code to suppress line spacing after headings -->
+    <xsl:text>.it 1 an-trap&#10;</xsl:text>
+    <xsl:text>.nr an-no-space-flag 1&#10;</xsl:text>
+    <xsl:text>.nr an-break-flag 1&#10;</xsl:text>
+    <xsl:text>.br&#10;</xsl:text>
+  </xsl:template>
+
+  <xsl:template name="make.bold.title">
+    <!-- * make title wrapper so that we can use "bold" template to apply -->
+    <!-- * character formatting to it -->
+    <xsl:variable name="title.wrapper">
+      <xsl:choose>
+        <xsl:when test="title">
+          <xsl:value-of select="normalize-space(title[1])"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:call-template name="mark.subheading"/>
+    <xsl:call-template name="bold">
+      <xsl:with-param name="node" select="exsl:node-set($title.wrapper)"/>
+      <xsl:with-param name="context" select="."/>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:call-template name="mark.subheading"/>
+  </xsl:template>
+
+  <!-- ================================================================== -->
+
+  <!-- * The mixed-block template jumps through a few hoops to deal with -->
+  <!-- * mixed-content blocks, so that we don't end up munging verbatim -->
+  <!-- * environments or lists and so that we don't gobble up whitespace -->
+  <!-- * when we shouldn't -->
+  <xsl:template name="mixed-block">
+    <xsl:for-each select="node()">
+      <xsl:choose>
+        <!-- * Check to see if this node is a verbatim environment. -->
+        <!-- * If so, put a line of space before it. -->
+        <!-- * -->
+        <!-- * Yes, address and synopsis are vertabim environments. -->
+        <!-- * -->
+        <!-- * The code here previously also treated informaltable as a -->
+        <!-- * verbatim, presumably to support some kludge; I removed it -->
+        <xsl:when test="self::address|self::literallayout|self::programlisting|
+                        self::screen|self::synopsis">
+          <xsl:text>&#10;</xsl:text>
+          <xsl:text>.sp&#10;</xsl:text>
+          <xsl:call-template name="mark.up.block.start"/>
+          <xsl:apply-templates select="."/>
+        </xsl:when>
+        <!-- * Check to see if this node is a list; if it is, we don't -->
+        <!-- * want to normalize-space(), so we just apply-templates. -->
+        <!-- * Do same for all admonitions -->
+        <xsl:when test="(self::itemizedlist|self::orderedlist|
+                        self::variablelist|self::glosslist|
+                        self::simplelist[@type !='inline']|
+                        self::segmentedlist|
+                        self::caution|self::important|
+                        self::note|self::tip|self::warning|
+                        self::table|self::informaltable)">
+          <xsl:call-template name="mark.up.block.start"/>
+          <xsl:apply-templates select="."/>
+        </xsl:when>
+        <xsl:when test="self::text()">
+          <!-- * Check to see if this is a text node. -->
+          <!-- * -->
+          <!-- * If so, replace all whitespace at the beginning or end of it -->
+          <!-- * with a single linebreak. -->
+          <!-- * -->
+          <xsl:variable name="content">
+            <xsl:apply-templates select="."/>
+          </xsl:variable>
+          <xsl:if
+              test="starts-with(translate(.,'&#9;&#10;&#13; ','    '), ' ')
+                    and preceding-sibling::node()[1][name(.)!='']
+                    and normalize-space($content) != ''
+                    and not(
+                    preceding-sibling::*[1][
+                    self::caution or
+                    self::important or
+                    self::note or
+                    self::tip or
+                    self::warning or
+                    self::variablelist or
+                    self::glosslist or
+                    self::itemizedlist or
+                    self::orderedlist or
+                    self::segmentedlist or
+                    self::procedure or
+                    self::address or
+                    self::literallayout or
+                    self::programlisting or
+                    self::screen or
+                    self::table or
+                    self::informaltable
+                    ]
+                    )
+                    ">
+            <xsl:text>&#10;</xsl:text>
+          </xsl:if>
+          <xsl:value-of select="normalize-space($content)"/>
+          <xsl:if
+              test="(translate(substring(., string-length(.), 1),'&#9;&#10;&#13; ','    ')  = ' '
+                    and following-sibling::node()[1][name(.)!=''])
+                    or following-sibling::node()[1][self::comment()]
+                    or following-sibling::node()[1][self::processing-instruction()]
+                    ">
+            <xsl:if test="normalize-space($content) != ''
+                          or concat(normalize-space($content), ' ') = ' '">
+              <xsl:text>&#10;</xsl:text>
+            </xsl:if>
+          </xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- * At this point, we know that this node is not a verbatim -->
+          <!-- * environment, list, admonition, or text node; so we can -->
+          <!-- * safely normalize-space() it. -->
+          <xsl:variable name="content">
+            <xsl:apply-templates select="."/>
+          </xsl:variable>
+          <xsl:value-of select="normalize-space($content)"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+    <xsl:call-template name="mark.up.block.end"/>
+  </xsl:template>
+
+  <!-- ================================================================== -->
+
+  <!-- * Footnote and annotation contents are displayed using a hanging -->
+  <!-- * indent out to $man.indent.width If a paragraph-level block -->
+  <!-- * element (verbatim, list, or admonition) is the first block -->
+  <!-- * element nested at its same level within the same footnote or -->
+  <!-- * annotation, then we push it over by the same indent width. -->
+  <!-- * -->
+  <!-- * We don't reset the indent for each following sibling, but -->
+  <!-- * instead do it after for-eaching over all block siblings at -->
+  <!-- * the same level. So the effect is that if there are any -->
+  <!-- * following-sibling blocks after the block that starts this -->
+  <!-- * indent, then they just retain the indent that was already set -->
+
+  <xsl:template name="mark.up.block.start">
+    <xsl:choose>
+      <xsl:when test="(ancestor::footnote
+                      or ancestor::annotation)">
+        <xsl:if test="not(preceding-sibling::address|
+                      preceding-sibling::literallayout|
+                      preceding-sibling::programlisting|
+                      preceding-sibling::screen|
+                      preceding-sibling::synopsis|
+                      preceding-sibling::itemizedlist|
+                      preceding-sibling::orderedlist|
+                      preceding-sibling::variablelist|
+                      preceding-sibling::glosslist|
+                      preceding-sibling::simplelist[@type !='inline']|
+                      preceding-sibling::segmentedlist|
+                      preceding-sibling::caution|
+                      preceding-sibling::important|
+                      preceding-sibling::note|
+                      preceding-sibling::tip|
+                      preceding-sibling::warning|
+                      preceding-sibling::table|
+                      preceding-sibling::informaltable
+                      )">
+          <xsl:text>.RS</xsl:text>
+          <xsl:if test="not($list-indent = '')">
+            <xsl:text> </xsl:text>
+            <xsl:value-of select="$list-indent"/>
+          </xsl:if>
+          <xsl:text>&#10;</xsl:text>
+        </xsl:if>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- * Check to see if we were called from a block within a footnote or -->
+  <!-- * annotation; if so, and the block contains any nested block -->
+  <!-- * content, then we know the mark.up.block.end template was already -->
+  <!-- * called to generate a .RS macro to indent that nested block -->
+  <!-- * content; so we need to generate a .RE to set the margin back to -->
+  <!-- * where it was prior to the .RS call. -->
+  <xsl:template name="mark.up.block.end">
+    <xsl:if test="(ancestor::footnote
+                  or ancestor::annotation)">
+      <xsl:if test="address|
+                    literallayout|
+                    programlisting|
+                    screen|
+                    synopsis|
+                    itemizedlist|
+                    orderedlist|
+                    variablelist|
+                    glosslist|
+                    simplelist[@type !='inline']|
+                    segmentedlist|
+                    caution|
+                    important|
+                    note|
+                    tip|
+                    warning|
+                    table|
+                    informaltable">
+        <xsl:text>&#10;</xsl:text>
+        <xsl:text>.RE</xsl:text>
+      <xsl:text>&#10;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- ================================================================== -->
+
+  <!-- * The person.name template in the HTML stylesheets outputs extra -->
+  <!-- * spaces that we need to strip out for manpages output. This -->
+  <!-- * template calls person.name, then tries to do some smart -->
+  <!-- * normalization of the result tree fragment from that. -->
+  <xsl:template name="person.name.normalized">
+    <xsl:variable name="contents">
+      <xsl:call-template name="person.name"/>
+    </xsl:variable>
+    <!-- * We put the output of person.name into a node-set and then we -->
+    <!-- * check it node-by-node and strip out space only where needed. -->
+    <xsl:variable name="contents.tree" select="exsl:node-set($contents)"/>
+    <xsl:for-each select="$contents.tree/node()">
+      <xsl:choose>
+        <!-- * We don't want to monkey with single spaces or commas/periods -->
+        <!-- * followed by spaces, because those are bits of text that are -->
+        <!-- * actually generated by the person.name template itself (that -->
+        <!-- * is, they're not in the source). So, we preserve them. -->
+        <xsl:when test=". = ' ' or . = ', ' or . = '. '">
+          <xsl:value-of select="."/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="normalize-space(.)"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+  </xsl:template>
+
+  <!-- ================================================================== -->
+
+  <xsl:template name="make.adjusted.man.filename">
+    <xsl:param name="name"/>
+    <xsl:param name="lang"/>
+    <xsl:param name="name.with.lang">
+      <xsl:choose>
+        <xsl:when test="$lang != 'en'
+          and not($man.output.lang.in.name.enabled = 0)
+          and ($man.output.subdirs.enabled = 0 or
+          $man.output.in.separate.dir = 0)">
+          <!-- * $lang is not en (English) -->
+          <!-- * AND user has specified man.output.lang.in.name.enabled -->
+          <!-- * AND doesn't want output going into separate dirs, -->
+          <!-- * SO... we include the $lang value in the filename; e.g., -->
+          <!-- * foo.ja.1 -->
+          <xsl:value-of select="concat($name, '.', $lang)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- * user either has man.output.lang.in.name.enabled unset -->
+          <!-- * or has set it but also has man.output.subdirs.enabled -->
+          <!-- * set (in which case the $lang value is used to add a -->
+          <!-- * $lang subdir in the pathname); in either case, we don't -->
+          <!-- * want to include the $lang in the filename -->
+          <xsl:value-of select="$name"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:param>
+    <xsl:param name="section"/>
+    <xsl:param name="dirname">
+      <xsl:if test="not($man.output.in.separate.dir = 0)">
+        <xsl:choose>
+          <xsl:when test="not($man.output.subdirs.enabled = 0)">
+            <xsl:variable name="lang.subdir">
+              <xsl:if test="not($man.output.lang.in.name.enabled = 0)">
+                <!-- * user has man.output.lang.in.name.enabled set, so -->
+                <!-- * we need to add a $lang subdir -->
+                <xsl:value-of select="concat($lang, '/')"/>
+              </xsl:if>
+            </xsl:variable>
+            <xsl:value-of
+                select="concat($man.output.base.dir, $lang.subdir,
+                        'man', normalize-space($section), '/')"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$man.output.base.dir"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:param>
+    <xsl:call-template name="string.subst">
+      <!-- * To create the man filename, replace any spaces in filename with -->
+      <!-- * underscores and then append a dot plus a section number. -->
+      <xsl:with-param name="string"
+                      select="concat($dirname,
+                              normalize-space($name.with.lang),
+                              '.', normalize-space($section))"/>
+      <xsl:with-param name="target" select="' '"/>
+      <xsl:with-param name="replacement" select="'_'"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <!-- ================================================================== -->
+
+  <xsl:template name="make.subheading">
+    <xsl:param name="title"/>
+    <xsl:call-template name="mark.subheading"/>
+    <xsl:text>.SH</xsl:text>
+    <xsl:text> </xsl:text>
+    <xsl:text>"</xsl:text>
+    <xsl:choose>
+      <xsl:when test="not($man.output.better.ps.enabled = 0)">
+        <xsl:value-of select="$title"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="string.upper">
+          <xsl:with-param name="string" select="$title"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>"</xsl:text>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:call-template name="mark.subheading"/>
+  </xsl:template>
+
+  <!-- * Put a horizontal rule or other divider around section titles -->
+  <!-- * in roff source (just to make things easier to read). -->
+  <xsl:template name="mark.subheading">
+    <xsl:if test="$man.subheading.divider.enabled != 0">
+      <xsl:text>.\" </xsl:text>
+      <xsl:value-of select="$man.subheading.divider"/>
+      <xsl:text>&#10;</xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- ================================================================== -->
+
+  <xsl:template name="roff-if-else-start">
+    <xsl:param name="condition">n</xsl:param>
+    <xsl:text>.ie </xsl:text>
+    <xsl:value-of select="$condition"/>
+    <xsl:text> \{\&#10;</xsl:text>
+  </xsl:template>
+
+  <xsl:template name="roff-if-start">
+    <xsl:param name="condition">n</xsl:param>
+    <xsl:text>.if </xsl:text>
+    <xsl:value-of select="$condition"/>
+    <xsl:text> \{\&#10;</xsl:text>
+  </xsl:template>
+
+  <xsl:template name="roff-else">
+    <xsl:text>.\}&#10;</xsl:text>
+    <xsl:text>.el \{\&#10;</xsl:text>
+  </xsl:template>
+
+  <xsl:template name="roff-if-end">
+    <xsl:text>.\}&#10;</xsl:text>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/params/abstract.notitle.enabled.xml b/applications/content/template/docbook/params/abstract.notitle.enabled.xml
new file mode 100644
index 0000000..1771f72
--- /dev/null
+++ b/applications/content/template/docbook/params/abstract.notitle.enabled.xml
@@ -0,0 +1,22 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="abstract.notitle.enabled">
+<refmeta>
+<refentrytitle>abstract.notitle.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>abstract.notitle.enabled</refname>
+<refpurpose>Suppress display of abstract titles?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+  <src:fragment xml:id="abstract.notitle.enabled.frag"><xsl:param name="abstract.notitle.enabled" select="0"/></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, in output of the <tag>abstract</tag> element on titlepages,
+display of the abstract title is suppressed.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/abstract.properties.xml b/applications/content/template/docbook/params/abstract.properties.xml
new file mode 100644
index 0000000..e802312
--- /dev/null
+++ b/applications/content/template/docbook/params/abstract.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="abstract.properties">
+<refmeta>
+<refentrytitle>abstract.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>abstract.properties</refname>
+<refpurpose>Properties associated with the block surrounding an abstract</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="abstract.properties.frag">
+<xsl:attribute-set name="abstract.properties">
+  <xsl:attribute name="start-indent">0.0in</xsl:attribute>
+  <xsl:attribute name="end-indent">0.0in</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Block styling properties for abstract.</para>
+
+<para>See also <parameter>abstract.title.properties</parameter>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/abstract.title.properties.xml b/applications/content/template/docbook/params/abstract.title.properties.xml
new file mode 100644
index 0000000..d01f70c
--- /dev/null
+++ b/applications/content/template/docbook/params/abstract.title.properties.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="abstract.title.properties">
+<refmeta>
+<refentrytitle>abstract.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>abstract.title.properties</refname>
+<refpurpose>Properties for abstract titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="abstract.title.properties.frag">
+<xsl:attribute-set name="abstract.title.properties">
+  <xsl:attribute name="font-family"><xsl:value-of select="$title.fontset"/></xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="space-before.optimum"><xsl:value-of select="concat($body.font.master, 'pt')"/></xsl:attribute>
+  <xsl:attribute name="space-before.minimum"><xsl:value-of select="concat($body.font.master, 'pt * 0.8')"/></xsl:attribute>
+  <xsl:attribute name="space-before.maximum"><xsl:value-of select="concat($body.font.master, 'pt * 1.2')"/></xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="text-align">center</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties for abstract titles.</para>
+
+<para>See also <parameter>abstract.properties</parameter>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/active.toc.xml b/applications/content/template/docbook/params/active.toc.xml
new file mode 100644
index 0000000..f56aee1
--- /dev/null
+++ b/applications/content/template/docbook/params/active.toc.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="active.toc.frag">
+<xsl:param name="active.toc" select="0"/>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/ade.extensions.xml b/applications/content/template/docbook/params/ade.extensions.xml
new file mode 100644
index 0000000..479591b
--- /dev/null
+++ b/applications/content/template/docbook/params/ade.extensions.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<refentry xmlns="http://docbook.org/ns/docbook" 
+          xmlns:xlink="http://www.w3.org/1999/xlink" 
+          xmlns:xi="http://www.w3.org/2001/XInclude" 
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment" 
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+          version="5.0" 
+          xml:id="ade.extensions">
+  <refmeta>
+    <refentrytitle>ade.extensions</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>ade.extensions</refname>
+    <refpurpose>Enable Adobe Digitial Editions extensions for ePub rendering?</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <src:fragment xml:id="ade.extensions.frag">
+      <xsl:param name="ade.extensions" select="0"/>
+    </src:fragment>
+  </refsynopsisdiv>
+  <refsection>
+    <info>
+      <title>Description</title>
+    </info>
+    <para>If non-zero,
+<link xlink:href="http://www.adobe.com/products/digitaleditions/">Adobe Digital Editions</link>
+extensions will be used when rendering to ePub output. Adobe Digital Editions extensions consists 
+rendering and layout extensions.</para>
+    <para>This parameter can also affect which graphics file formats are supported.</para>
+  </refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/admon.graphics.extension.xml b/applications/content/template/docbook/params/admon.graphics.extension.xml
new file mode 100644
index 0000000..f655566
--- /dev/null
+++ b/applications/content/template/docbook/params/admon.graphics.extension.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="admon.graphics.extension">
+<refmeta>
+<refentrytitle>admon.graphics.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics.extension</refname>
+<refpurpose>Filename extension for admonition graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="admon.graphics.extension.frag">
+<xsl:param name="admon.graphics.extension">.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the filename extension to use on admonition graphics.</para>
+
+<itemizedlist>
+  <para>The DocBook XSL distribution provides admonition graphics in the following formats:</para>
+  <listitem><para>GIF (extension: <filename class="extension">.gif</filename>)</para></listitem>
+  <listitem><para>PNG (extension: <filename class="extension">.png</filename>)</para></listitem>
+  <listitem><para>SVG (extension: <filename class="extension">.svg</filename>)</para></listitem>
+  <listitem><para>TIFF (extension: <filename class="extension">.tif</filename>)</para></listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/admon.graphics.path.xml b/applications/content/template/docbook/params/admon.graphics.path.xml
new file mode 100644
index 0000000..32b12b1
--- /dev/null
+++ b/applications/content/template/docbook/params/admon.graphics.path.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="admon.graphics.path">
+<refmeta>
+<refentrytitle>admon.graphics.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics.path</refname>
+<refpurpose>Path to admonition graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="admon.graphics.path.frag"><xsl:param name="admon.graphics.path">images/</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the path to the directory containing the admonition graphics
+(caution.png, important.png etc). This location is normally relative
+to the output html directory. See <parameter>base.dir</parameter></para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/admon.graphics.xml b/applications/content/template/docbook/params/admon.graphics.xml
new file mode 100644
index 0000000..f5e5ae4
--- /dev/null
+++ b/applications/content/template/docbook/params/admon.graphics.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="admon.graphics">
+<refmeta>
+<refentrytitle>admon.graphics</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.graphics</refname>
+<refpurpose>Use graphics in admonitions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="admon.graphics.frag">
+<xsl:param name="admon.graphics" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), admonitions are presented in an alternate style that uses
+a graphic.  Default graphics are provided in the distribution.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/admon.style.xml b/applications/content/template/docbook/params/admon.style.xml
new file mode 100644
index 0000000..5abe022
--- /dev/null
+++ b/applications/content/template/docbook/params/admon.style.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="admon.style">
+<refmeta>
+<refentrytitle>admon.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.style</refname>
+<refpurpose>Specifies the CSS style attribute that should be added to
+admonitions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="admon.style.frag"><xsl:param name="admon.style">
+  <xsl:value-of select="concat('margin-', $direction.align.start,
+           ': 0.5in; margin-', $direction.align.end, ': 0.5in;')"/>
+</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the value of the CSS <tag class="attribute">style</tag>
+attribute that should be added to admonitions.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/admon.textlabel.xml b/applications/content/template/docbook/params/admon.textlabel.xml
new file mode 100644
index 0000000..ea1a53f
--- /dev/null
+++ b/applications/content/template/docbook/params/admon.textlabel.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="admon.textlabel">
+<refmeta>
+<refentrytitle>admon.textlabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admon.textlabel</refname>
+<refpurpose>Use text label in admonitions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="admon.textlabel.frag">
+<xsl:param name="admon.textlabel" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), admonitions are presented with a generated
+text label such as Note or Warning in the appropriate language.
+If zero, such labels are turned off, but any title child
+of the admonition element are still output.
+The default value is 1.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/admonition.properties.xml b/applications/content/template/docbook/params/admonition.properties.xml
new file mode 100644
index 0000000..4dddd26
--- /dev/null
+++ b/applications/content/template/docbook/params/admonition.properties.xml
@@ -0,0 +1,25 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="admonition.properties">
+<refmeta>
+  <refentrytitle>admonition.properties</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>admonition.properties</refname>
+<refpurpose>To set the style for admonitions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="admonition.properties.frag"><xsl:attribute-set name="admonition.properties"/>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>How do you want admonitions styled? </para>
+<para>Set the font-size, weight, etc. to the style required</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/admonition.title.properties.xml b/applications/content/template/docbook/params/admonition.title.properties.xml
new file mode 100644
index 0000000..7af23e6
--- /dev/null
+++ b/applications/content/template/docbook/params/admonition.title.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="admonition.title.properties">
+
+<refmeta>
+  <refentrytitle>admonition.title.properties</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>admonition.title.properties</refname>
+<refpurpose>To set the style for admonitions titles.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="admonition.title.properties.frag">
+<xsl:attribute-set name="admonition.title.properties">
+  <xsl:attribute name="font-size">14pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>How do you want admonitions titles styled? </para>
+<para>Set the font-size, weight etc to the style required.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/alignment.xml b/applications/content/template/docbook/params/alignment.xml
new file mode 100644
index 0000000..9c0a3de
--- /dev/null
+++ b/applications/content/template/docbook/params/alignment.xml
@@ -0,0 +1,41 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="alignment">
+<refmeta>
+<refentrytitle>alignment</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+  <refmiscinfo class="other" otherclass="list-type">open</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">left</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">start</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">right</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">end</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">center</refmiscinfo>
+  <refmiscinfo class="other" otherclass="value">justify</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>alignment</refname>
+<refpurpose>Specify the default text alignment</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="alignment.frag"><xsl:param name="alignment">justify</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The default text alignment is used for most body text.
+Allowed values are 
+<literal>left</literal>,
+<literal>right</literal>,
+<literal>start</literal>,
+<literal>end</literal>,
+<literal>center</literal>,
+<literal>justify</literal>.
+The default value is <literal>justify</literal>.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/annotate.toc.xml b/applications/content/template/docbook/params/annotate.toc.xml
new file mode 100644
index 0000000..667fa32
--- /dev/null
+++ b/applications/content/template/docbook/params/annotate.toc.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="annotate.toc">
+<refmeta>
+<refentrytitle>annotate.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotate.toc</refname>
+<refpurpose>Annotate the Table of Contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="annotate.toc.frag"><xsl:param name="annotate.toc" select="1"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, TOCs will be annotated. At present, this just means
+that the <tag>refpurpose</tag> of <tag>refentry</tag>
+TOC entries will be displayed.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/annotation.css.xml b/applications/content/template/docbook/params/annotation.css.xml
new file mode 100644
index 0000000..560c56a
--- /dev/null
+++ b/applications/content/template/docbook/params/annotation.css.xml
@@ -0,0 +1,71 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="annotation.css">
+<refmeta>
+<refentrytitle>annotation.css</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.css</refname>
+<refpurpose>CSS rules for annotations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="annotation.css.frag">
+<xsl:param name="annotation.css">
+/* ======================================================================
+   Annotations
+*/
+
+div.annotation-list  { visibility: hidden;
+                     }
+
+div.annotation-nocss { position: absolute;
+                       visibility: hidden;
+                     }
+
+div.annotation-popup { position: absolute;
+                       z-index: 4;
+                       visibility: hidden;
+                       padding: 0px;
+                       margin: 2px;
+                       border-style: solid;
+                       border-width: 1px;
+                       width: 200px;
+		       background-color: white;
+                     }
+
+div.annotation-title { padding: 1px;
+                       font-weight: bold;
+                       border-bottom-style: solid;
+                       border-bottom-width: 1px;
+		       color: white;
+		       background-color: black;
+                     }
+
+div.annotation-body  { padding: 2px;
+                     }
+
+div.annotation-body p { margin-top: 0px;
+                        padding-top: 0px;
+                      }
+
+div.annotation-close { position: absolute;
+                       top: 2px;
+                       right: 2px;
+                     }
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>annotation.support</parameter> is enabled and the
+document contains <tag>annotation</tag>s, then the CSS in this
+parameter will be included in the document.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/annotation.graphic.close.xml b/applications/content/template/docbook/params/annotation.graphic.close.xml
new file mode 100644
index 0000000..002ebb4
--- /dev/null
+++ b/applications/content/template/docbook/params/annotation.graphic.close.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="annotation.graphic.close">
+<refmeta>
+<refentrytitle>annotation.graphic.close</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.graphic.close</refname>
+<refpurpose>Image for identifying a link that closes an annotation popup</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="annotation.graphic.close.frag">
+<xsl:param name="annotation.graphic.close">
+http://docbook.sourceforge.net/release/images/annot-close.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This image is used on popup annotations as the “x” that the
+user can click to dismiss the popup.</para>
+<para>This image is used on popup annotations as the “x” that the user can
+click to dismiss the popup. It may be replaced by a user provided graphic. The size should be approximately 10x10 pixels.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/annotation.graphic.open.xml b/applications/content/template/docbook/params/annotation.graphic.open.xml
new file mode 100644
index 0000000..c7d1c32
--- /dev/null
+++ b/applications/content/template/docbook/params/annotation.graphic.open.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="annotation.graphic.open">
+<refmeta>
+<refentrytitle>annotation.graphic.open</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.graphic.open</refname>
+<refpurpose>Image for identifying a link that opens an annotation popup</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="annotation.graphic.open.frag">
+<xsl:param name="annotation.graphic.open">http://docbook.sourceforge.net/release/images/annot-open.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This image is used inline to identify the location of
+annotations. It may be replaced by a user provided graphic. The size should be approximately 10x10 pixels.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/annotation.js.xml b/applications/content/template/docbook/params/annotation.js.xml
new file mode 100644
index 0000000..6c7e97e
--- /dev/null
+++ b/applications/content/template/docbook/params/annotation.js.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="annotation.js">
+<refmeta>
+<refentrytitle>annotation.js</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.js</refname>
+<refpurpose>URIs identifying JavaScript files with support for annotation popups</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="annotation.js.frag">
+
+<xsl:param name="annotation.js">
+<xsl:text>http://docbook.sourceforge.net/release/script/AnchorPosition.js http://docbook.sourceforge.net/release/script/PopupWindow.js</xsl:text></xsl:param>
+
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <property>annotation.support</property> is enabled and the
+document contains <tag>annotation</tag>s, then the URIs listed
+in this parameter will be included. These JavaScript files are required
+for popup annotation support.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/annotation.support.xml b/applications/content/template/docbook/params/annotation.support.xml
new file mode 100644
index 0000000..29e7633
--- /dev/null
+++ b/applications/content/template/docbook/params/annotation.support.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="annotation.support">
+<refmeta>
+<refentrytitle>annotation.support</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>annotation.support</refname>
+<refpurpose>Enable annotations?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="annotation.support.frag">
+<xsl:param name="annotation.support" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the stylesheets will attempt to support annotation
+elements in HTML by including some JavaScript (see
+<parameter>annotation.js</parameter>).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/appendix.autolabel.xml b/applications/content/template/docbook/params/appendix.autolabel.xml
new file mode 100644
index 0000000..bae38fa
--- /dev/null
+++ b/applications/content/template/docbook/params/appendix.autolabel.xml
@@ -0,0 +1,73 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="appendix.autolabel">
+<refmeta>
+<refentrytitle>appendix.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>appendix.autolabel</refname>
+<refpurpose>Specifies the labeling format for Appendix titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="appendix.autolabel.frag">
+<xsl:param name="appendix.autolabel">A</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then appendices will be numbered using the
+parameter value as the number format if the value matches one of the
+following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (upperalpha).
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/arbortext.extensions.xml b/applications/content/template/docbook/params/arbortext.extensions.xml
new file mode 100644
index 0000000..2e571dd
--- /dev/null
+++ b/applications/content/template/docbook/params/arbortext.extensions.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="arbortext.extensions">
+<refmeta>
+<refentrytitle>arbortext.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>arbortext.extensions</refname>
+<refpurpose>Enable Arbortext extensions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="arbortext.extensions.frag"><xsl:param name="arbortext.extensions" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+<link xlink:href="http://www.arbortext.com/">Arbortext</link>
+extensions will be used.
+</para>
+<para>This parameter can also affect which graphics file formats
+are supported</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/article.appendix.title.properties.xml b/applications/content/template/docbook/params/article.appendix.title.properties.xml
new file mode 100644
index 0000000..61337a1
--- /dev/null
+++ b/applications/content/template/docbook/params/article.appendix.title.properties.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="article.appendix.title.properties">
+<refmeta>
+<refentrytitle>article.appendix.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>article.appendix.title.properties</refname>
+<refpurpose>Properties for appendix titles that appear in an article</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="article.appendix.title.properties.frag">
+<xsl:attribute-set name="article.appendix.title.properties" use-attribute-sets="section.title.properties                          section.title.level1.properties">
+  <xsl:attribute name="margin-{$direction.align.start}">
+    <xsl:value-of select="$title.margin.left"/>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties for the title of an appendix that
+appears inside an article.  The default is to use
+the properties of sect1 titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/author.othername.in.middle.xml b/applications/content/template/docbook/params/author.othername.in.middle.xml
new file mode 100644
index 0000000..4ad21dd
--- /dev/null
+++ b/applications/content/template/docbook/params/author.othername.in.middle.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="author.othername.in.middle">
+<refmeta>
+<refentrytitle>author.othername.in.middle</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>author.othername.in.middle</refname>
+<refpurpose>Is <tag>othername</tag> in <tag>author</tag> a
+middle name?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="author.othername.in.middle.frag">
+<xsl:param name="author.othername.in.middle" select="1"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the <tag>othername</tag> of an <tag>author</tag>
+appears between the <tag>firstname</tag> and
+<tag>surname</tag>.  Otherwise, <tag>othername</tag>
+is suppressed.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/autolayout-file.xml b/applications/content/template/docbook/params/autolayout-file.xml
new file mode 100644
index 0000000..150f123
--- /dev/null
+++ b/applications/content/template/docbook/params/autolayout-file.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="autolayout-file">
+<refmeta>
+<refentrytitle>autolayout-file</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>autolayout-file</refname>
+<refpurpose>Identifies the autolayout.xml file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="autolayout-file.frag">
+<xsl:param name="autolayout-file">autolayout.xml</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>When the source pages are spread over several directories, this
+parameter can be set (for example, from the command line of a batch-mode
+XSLT processor) to indicate the location of the autolayout.xml file.</para>
+<para>FIXME: for browser-based use, there needs to be a PI for this...
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/autotoc.label.in.hyperlink.xml b/applications/content/template/docbook/params/autotoc.label.in.hyperlink.xml
new file mode 100644
index 0000000..dced0bd
--- /dev/null
+++ b/applications/content/template/docbook/params/autotoc.label.in.hyperlink.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="autotoc.label.in.hyperlink">
+<refmeta>
+<refentrytitle>autotoc.label.in.hyperlink</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>autotoc.label.in.hyperlink</refname>
+<refpurpose>Include label in hyperlinked titles in TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="autotoc.label.in.hyperlink.frag"><xsl:param name="autotoc.label.in.hyperlink" select="1"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>autotoc.label.in.hyperlink</parameter> is non-zero, labels
+are included in hyperlinked titles in the TOC. If it is instead zero,
+labels are still displayed prior to the hyperlinked titles, but
+are not hyperlinked along with the titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/autotoc.label.separator.xml b/applications/content/template/docbook/params/autotoc.label.separator.xml
new file mode 100644
index 0000000..b9cd53a
--- /dev/null
+++ b/applications/content/template/docbook/params/autotoc.label.separator.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="autotoc.label.separator">
+<refmeta>
+<refentrytitle>autotoc.label.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>autotoc.label.separator</refname>
+<refpurpose>Separator between labels and titles in the ToC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="autotoc.label.separator.frag">
+<xsl:param name="autotoc.label.separator">. </xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>String used to separate labels and titles in a table of contents.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/axf.extensions.xml b/applications/content/template/docbook/params/axf.extensions.xml
new file mode 100644
index 0000000..940a187
--- /dev/null
+++ b/applications/content/template/docbook/params/axf.extensions.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="axf.extensions">
+<refmeta>
+<refentrytitle>axf.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>axf.extensions</refname>
+<refpurpose>Enable XSL Formatter extensions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="axf.extensions.frag">
+<xsl:param name="axf.extensions" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+<link xlink:href="http://www.antennahouse.com/">XSL Formatter</link>
+extensions will be used. XSL Formatter extensions consists of PDF bookmarks,
+document information and better index processing.</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/banner.before.navigation.xml b/applications/content/template/docbook/params/banner.before.navigation.xml
new file mode 100644
index 0000000..0883378
--- /dev/null
+++ b/applications/content/template/docbook/params/banner.before.navigation.xml
@@ -0,0 +1,25 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="banner.before.navigation">
+<refmeta>
+<refentrytitle>banner.before.navigation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>banner.before.navigation</refname>
+<refpurpose>Put banner before navigation?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="banner.before.navigation.frag">
+<xsl:param name="banner.before.navigation" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>FIXME</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/base.dir.xml b/applications/content/template/docbook/params/base.dir.xml
new file mode 100644
index 0000000..4abf9c7
--- /dev/null
+++ b/applications/content/template/docbook/params/base.dir.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="base.dir">
+<refmeta>
+<refentrytitle>base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>base.dir</refname>
+<refpurpose>The base directory of chunks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="base.dir.frag">
+<xsl:param name="base.dir"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If specified, the <parameter>base.dir</parameter> parameter identifies
+the output directory for chunks. (If not specified, the output directory
+is system dependent.)</para>
+
+<para>Starting with version 1.77 of the stylesheets, 
+the param's value will have a trailing slash added if it does
+not already have one.</para>
+
+<caution><para>Do not use <parameter>base.dir</parameter>
+to add a filename prefix string to chunked  files. 
+Instead, use the <parameter>chunked.filename.prefix</parameter>
+parameter.</para></caution>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/biblioentry.item.separator.xml b/applications/content/template/docbook/params/biblioentry.item.separator.xml
new file mode 100644
index 0000000..4a56ad6
--- /dev/null
+++ b/applications/content/template/docbook/params/biblioentry.item.separator.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="biblioentry.item.separator">
+<refmeta>
+<refentrytitle>biblioentry.item.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>biblioentry.item.separator</refname>
+<refpurpose>Text to separate bibliography entries</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="biblioentry.item.separator.frag"><xsl:param name="biblioentry.item.separator">. </xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Text to separate bibliography entries
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/biblioentry.properties.xml b/applications/content/template/docbook/params/biblioentry.properties.xml
new file mode 100644
index 0000000..9e88ddb
--- /dev/null
+++ b/applications/content/template/docbook/params/biblioentry.properties.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="biblioentry.properties">
+<refmeta>
+  <refentrytitle>biblioentry.properties</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>biblioentry.properties</refname>
+<refpurpose>To set the style for biblioentry.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="biblioentry.properties.frag"><xsl:attribute-set name="biblioentry.properties" use-attribute-sets="normal.para.spacing">
+  <xsl:attribute name="start-indent">0.5in</xsl:attribute>
+  <xsl:attribute name="text-indent">-0.5in</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>How do you want biblioentry styled? </para>
+<para>Set the font-size, weight, space-above and space-below, indents, etc. to the style required</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/bibliography.collection.xml b/applications/content/template/docbook/params/bibliography.collection.xml
new file mode 100644
index 0000000..9245405
--- /dev/null
+++ b/applications/content/template/docbook/params/bibliography.collection.xml
@@ -0,0 +1,122 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="bibliography.collection">
+<refmeta>
+<refentrytitle>bibliography.collection</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.collection</refname>
+<refpurpose>Name of the bibliography collection file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="bibliography.collection.frag">
+<xsl:param name="bibliography.collection">http://docbook.sourceforge.net/release/bibliography/bibliography.xml</xsl:param>
+
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Maintaining bibliography entries across a set of documents is tedious, time
+consuming, and error prone. It makes much more sense, usually, to store all of
+the bibliography entries in a single place and simply <quote>extract</quote>
+the ones you need in each document.</para>
+
+<para>That's the purpose of the
+<parameter>bibliography.collection</parameter> parameter. To setup a global
+bibliography <quote>database</quote>, follow these steps:</para>
+
+<para>First, create a stand-alone bibliography document that contains all of
+the documents that you wish to reference. Make sure that each bibliography
+entry (whether you use <tag>biblioentry</tag> or <tag>bibliomixed</tag>)
+has an ID.</para>
+
+<para>My global bibliography, <filename>~/bibliography.xml</filename> begins
+like this:</para>
+
+<informalexample>
+<programlisting>&lt;!DOCTYPE bibliography
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"&gt;
+&lt;bibliography&gt;&lt;title&gt;References&lt;/title&gt;
+
+&lt;bibliomixed id="xml-rec"&gt;&lt;abbrev&gt;XML 1.0&lt;/abbrev&gt;Tim Bray,
+Jean Paoli, C. M. Sperberg-McQueen, and Eve Maler, editors.
+&lt;citetitle&gt;&lt;ulink url="http://www.w3.org/TR/REC-xml"&gt;Extensible Markup
+Language (XML) 1.0 Second Edition&lt;/ulink&gt;&lt;/citetitle&gt;.
+World Wide Web Consortium, 2000.
+&lt;/bibliomixed&gt;
+
+&lt;bibliomixed id="xml-names"&gt;&lt;abbrev&gt;Namespaces&lt;/abbrev&gt;Tim Bray,
+Dave Hollander,
+and Andrew Layman, editors.
+&lt;citetitle&gt;&lt;ulink url="http://www.w3.org/TR/REC-xml-names/"&gt;Namespaces in
+XML&lt;/ulink&gt;&lt;/citetitle&gt;.
+World Wide Web Consortium, 1999.
+&lt;/bibliomixed&gt;
+
+&lt;!-- ... --&gt;
+&lt;/bibliography&gt;
+</programlisting>
+</informalexample>
+
+<para>When you create a bibliography in your document, simply
+provide <emphasis>empty</emphasis> <tag>bibliomixed</tag>
+entries for each document that you wish to cite. Make sure that these
+elements have the same ID as the corresponding <quote>real</quote>
+entry in your global bibliography.</para>
+
+<para>For example:</para>
+
+<informalexample>
+<programlisting>&lt;bibliography&gt;&lt;title&gt;Bibliography&lt;/title&gt;
+
+&lt;bibliomixed id="xml-rec"/&gt;
+&lt;bibliomixed id="xml-names"/&gt;
+&lt;bibliomixed id="DKnuth86"&gt;Donald E. Knuth. &lt;citetitle&gt;Computers and
+Typesetting: Volume B, TeX: The Program&lt;/citetitle&gt;. Addison-Wesley,
+1986.  ISBN 0-201-13437-3.
+&lt;/bibliomixed&gt;
+&lt;bibliomixed id="relaxng"/&gt;
+
+&lt;/bibliography&gt;</programlisting>
+</informalexample>
+
+<para>Note that it's perfectly acceptable to mix entries from your
+global bibliography with <quote>normal</quote> entries. You can use
+<tag>xref</tag> or other elements to cross-reference your
+bibliography entries in exactly the same way you do now.</para>
+
+<para>Finally, when you are ready to format your document, simply set the
+<parameter>bibliography.collection</parameter> parameter (in either a
+customization layer or directly through your processor's interface) to
+point to your global bibliography.</para>
+
+<para>A relative path in the parameter is interpreted in one
+of two ways:</para>
+<orderedlist numeration="loweralpha">
+  <listitem>
+    <para>If your document contains no links to empty bibliographic elements,
+    then the path is relative to the file containing
+    the first <tag>bibliomixed</tag> element in the document.</para>
+  </listitem>
+  <listitem>
+    <para>If your document does contain links to empty bibliographic elements,
+    then the path is relative to the file containing
+    the first such link element in the document.</para>
+  </listitem>
+</orderedlist>
+<para>Once the collection file is opened by the first instance described
+above, it stays open for the current document
+and the relative path is not reinterpreted again.</para>
+
+<para>The stylesheets will format the bibliography in your document as if
+all of the entries referenced appeared there literally.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/bibliography.numbered.xml b/applications/content/template/docbook/params/bibliography.numbered.xml
new file mode 100644
index 0000000..593a1fa
--- /dev/null
+++ b/applications/content/template/docbook/params/bibliography.numbered.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="bibliography.numbered">
+<refmeta>
+<refentrytitle>bibliography.numbered</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.numbered</refname>
+<refpurpose>Should bibliography entries be numbered?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="bibliography.numbered.frag">
+<xsl:param name="bibliography.numbered" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero bibliography entries will be numbered</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/bibliography.style.xml b/applications/content/template/docbook/params/bibliography.style.xml
new file mode 100644
index 0000000..363e980
--- /dev/null
+++ b/applications/content/template/docbook/params/bibliography.style.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="bibliography.style">
+<refmeta>
+<refentrytitle>bibliography.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">normal</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">iso690</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bibliography.style</refname>
+<refpurpose>Style used for formatting of biblioentries.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id='bibliography.style.frag'>
+<xsl:param name="bibliography.style">normal</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Currently only <literal>normal</literal> and
+<literal>iso690</literal> styles are supported.</para>
+
+<para>In order to use ISO690 style to the full extent you might need
+to use additional markup described on <link
+xlink:href="http://wiki.docbook.org/topic/ISO690Bibliography">the
+following WiKi page</link>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/blockquote.properties.xml b/applications/content/template/docbook/params/blockquote.properties.xml
new file mode 100644
index 0000000..76d7f1c
--- /dev/null
+++ b/applications/content/template/docbook/params/blockquote.properties.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="blockquote.properties">
+<refmeta>
+  <refentrytitle>blockquote.properties</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>blockquote.properties</refname>
+<refpurpose>To set the style for block quotations.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="blockquote.properties.frag">
+<xsl:attribute-set name="blockquote.properties">
+<xsl:attribute name="margin-{$direction.align.start}">0.5in</xsl:attribute>
+<xsl:attribute name="margin-{$direction.align.end}">0.5in</xsl:attribute>
+<xsl:attribute name="space-after.minimum">0.5em</xsl:attribute>
+<xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+<xsl:attribute name="space-after.maximum">2em</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>blockquote.properties</parameter> attribute set specifies
+the formating properties of block quotations.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/blurb.on.titlepage.enabled.xml b/applications/content/template/docbook/params/blurb.on.titlepage.enabled.xml
new file mode 100644
index 0000000..27e89d7
--- /dev/null
+++ b/applications/content/template/docbook/params/blurb.on.titlepage.enabled.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="blurb.on.titlepage.enabled">
+<refmeta>
+<refentrytitle>blurb.on.titlepage.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>blurb.on.titlepage.enabled</refname>
+<refpurpose>Display personblurb and authorblurb on title pages?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="blurb.on.titlepage.enabled.frag">
+<xsl:param name="blurb.on.titlepage.enabled" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, output from <tag>authorblurb</tag> and
+<tag>personblurb</tag> elements is displayed on title pages. If zero
+(the default), output from those elements is suppressed on title pages
+(unless you are using a <literal>titlepage</literal> customization
+that causes them to be included).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/body.attributes.xml b/applications/content/template/docbook/params/body.attributes.xml
new file mode 100644
index 0000000..8ee1ad9
--- /dev/null
+++ b/applications/content/template/docbook/params/body.attributes.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="body.attributes">
+<refmeta>
+<refentrytitle>body.attributes</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.attributes</refname>
+<refpurpose>DEPRECATED</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="body.attributes.frag">
+<xsl:attribute-set name="body.attributes">
+  <xsl:attribute name="bgcolor">white</xsl:attribute>
+  <xsl:attribute name="text">black</xsl:attribute>
+  <xsl:attribute name="link">#0000FF</xsl:attribute>
+  <xsl:attribute name="vlink">#840084</xsl:attribute>
+  <xsl:attribute name="alink">#0000FF</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>DEPRECATED</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/body.bg.color.xml b/applications/content/template/docbook/params/body.bg.color.xml
new file mode 100644
index 0000000..8315b85
--- /dev/null
+++ b/applications/content/template/docbook/params/body.bg.color.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="body.bg.color.frag">
+<xsl:param name="body.bg.color">#FFFFFF</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the background color used in the body column of
+tabular slides.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/body.end.indent.xml b/applications/content/template/docbook/params/body.end.indent.xml
new file mode 100644
index 0000000..a5e098c
--- /dev/null
+++ b/applications/content/template/docbook/params/body.end.indent.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="body.end.indent">
+<refmeta>
+<refentrytitle>body.end.indent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.end.indent</refname>
+<refpurpose>The end-indent for the body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="body.end.indent.frag">
+<xsl:param name="body.end.indent">0pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This end-indent property is added to the fo:flow
+for certain page sequences.  Which page-sequences it is 
+applied to is determined by the template named
+<literal>set.flow.properties</literal>.
+By default, that template adds it to the flow
+for page-sequences using the <quote>body</quote>
+master-reference, as well as appendixes and prefaces.
+</para>
+
+<para>See also <parameter>body.start.indent</parameter>.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/body.font.family.xml b/applications/content/template/docbook/params/body.font.family.xml
new file mode 100644
index 0000000..816deb4
--- /dev/null
+++ b/applications/content/template/docbook/params/body.font.family.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="body.font.family">
+<refmeta>
+<refentrytitle>body.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>body.font.family</refname>
+<refpurpose>The default font family for body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="body.font.family.frag">
+<xsl:param name="body.font.family">serif</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The body font family is the default font used for text in the page body.</para>
+<para>If more than one font is required, enter the font names,
+separated by a comma, e.g.</para>
+<literallayout>
+  &lt;xsl:param name="body.font.family">Arial, SimSun, serif&lt;/xsl:param>
+
+</literallayout>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/body.font.master.xml b/applications/content/template/docbook/params/body.font.master.xml
new file mode 100644
index 0000000..323a6a0
--- /dev/null
+++ b/applications/content/template/docbook/params/body.font.master.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="body.font.master">
+<refmeta>
+<refentrytitle>body.font.master</refentrytitle>
+  <refmiscinfo class="other" otherclass="datatype">number</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.font.master</refname>
+<refpurpose>Specifies the default point size for body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="body.font.master.frag">
+<xsl:param name="body.font.master">10</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The body font size is specified in two parameters
+(<parameter>body.font.master</parameter> and <parameter>body.font.size</parameter>)
+so that math can be performed on the font size by XSLT.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/body.font.size.xml b/applications/content/template/docbook/params/body.font.size.xml
new file mode 100644
index 0000000..fc35ade
--- /dev/null
+++ b/applications/content/template/docbook/params/body.font.size.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="body.font.size">
+<refmeta>
+<refentrytitle>body.font.size</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.font.size</refname>
+<refpurpose>Specifies the default font size for body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="body.font.size.frag">
+<xsl:param name="body.font.size">
+ <xsl:value-of select="$body.font.master"/><xsl:text>pt</xsl:text>
+</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The body font size is specified in two parameters
+(<parameter>body.font.master</parameter> and <parameter>body.font.size</parameter>)
+so that math can be performed on the font size by XSLT.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/body.margin.bottom.xml b/applications/content/template/docbook/params/body.margin.bottom.xml
new file mode 100644
index 0000000..2302f64
--- /dev/null
+++ b/applications/content/template/docbook/params/body.margin.bottom.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="body.margin.bottom">
+<refmeta>
+<refentrytitle>body.margin.bottom</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.margin.bottom</refname>
+<refpurpose>The bottom margin of the body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="body.margin.bottom.frag">
+<xsl:param name="body.margin.bottom">0.5in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The body bottom margin is the distance from the last line of text
+in the page body to the bottom of the region-after.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/body.margin.inner.xml b/applications/content/template/docbook/params/body.margin.inner.xml
new file mode 100644
index 0000000..d1d514e
--- /dev/null
+++ b/applications/content/template/docbook/params/body.margin.inner.xml
@@ -0,0 +1,52 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="body.margin.inner">
+<refmeta>
+<refentrytitle>body.margin.inner</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.margin.inner</refname>
+<refpurpose>Specify the size of the inner margin of the body region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="body.margin.inner.frag">
+<xsl:param name="body.margin.inner">0in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The inner body margin is the extra inner side 
+(binding side) margin taken from the body
+region in addition to the inner page margin.
+It makes room for a side region for text content whose width is 
+specified by the <parameter>region.inner.extent</parameter>
+parameter.</para>
+
+<para>For double-sided output,
+this side region 
+is <literal>fo:region-start</literal> on a odd-numbered page,
+and <literal>fo:region-end</literal> on an even-numbered page.</para>
+
+<para>For single-sided output,
+this side region
+is <literal>fo:region-start</literal> for all pages.</para>
+
+<para>This correspondence applies to all languages,
+both left-to-right and right-to-left writing modes.</para>
+
+<para>The default value is zero.</para>
+
+<para>See also
+<parameter>region.inner.extent</parameter>,
+<parameter>region.outer.extent</parameter>,
+<parameter>body.margin.outer</parameter>,
+<parameter>side.region.precedence</parameter>.
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/body.margin.outer.xml b/applications/content/template/docbook/params/body.margin.outer.xml
new file mode 100644
index 0000000..85c57fa
--- /dev/null
+++ b/applications/content/template/docbook/params/body.margin.outer.xml
@@ -0,0 +1,53 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="body.margin.outer">
+<refmeta>
+<refentrytitle>body.margin.outer</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.margin.outer</refname>
+<refpurpose>Specify the size of the outer margin of the body region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="body.margin.outer.frag">
+<xsl:param name="body.margin.outer">0in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The outer body margin is the extra outer side 
+(opposite the binding side) margin taken
+from the body
+region in addition to the outer page margin.
+It makes room for a side region for text content whose width is 
+specified by the <parameter>region.outer.extent</parameter>
+parameter.</para>
+
+<para>For double-sided output,
+this side region 
+is <literal>fo:region-end</literal> on a odd-numbered page,
+and <literal>fo:region-start</literal> on an even-numbered page.</para>
+
+<para>For single-sided output,
+this side region
+is <literal>fo:region-end</literal> for all pages.</para>
+
+<para>This correspondence applies to all languages,
+both left-to-right and right-to-left writing modes.</para>
+
+<para>The default value is zero.</para>
+
+<para>See also
+<parameter>region.inner.extent</parameter>,
+<parameter>region.outer.extent</parameter>,
+<parameter>body.margin.inner</parameter>,
+<parameter>side.region.precedence</parameter>.
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/body.margin.top.xml b/applications/content/template/docbook/params/body.margin.top.xml
new file mode 100644
index 0000000..182bd9f
--- /dev/null
+++ b/applications/content/template/docbook/params/body.margin.top.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="body.margin.top">
+<refmeta>
+<refentrytitle>body.margin.top</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.margin.top</refname>
+<refpurpose>To specify the size of the top margin of a page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="body.margin.top.frag">
+<xsl:param name="body.margin.top">0.5in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The body top margin is the distance from the top of the
+region-before to the first line of text in the page body.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/body.start.indent.xml b/applications/content/template/docbook/params/body.start.indent.xml
new file mode 100644
index 0000000..4e348f1
--- /dev/null
+++ b/applications/content/template/docbook/params/body.start.indent.xml
@@ -0,0 +1,64 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="body.start.indent">
+<refmeta>
+<refentrytitle>body.start.indent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.start.indent</refname>
+<refpurpose>The start-indent for the body text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="body.start.indent.frag">
+<xsl:param name="body.start.indent">
+  <xsl:choose>
+    <xsl:when test="$fop.extensions != 0">0pt</xsl:when>
+    <xsl:when test="$passivetex.extensions != 0">0pt</xsl:when>
+    <xsl:otherwise>4pc</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter provides
+the means of indenting the body text relative to
+section titles.
+For left-to-right text direction, it indents the left side.
+For right-to-left text direction, it indents the right side.
+It is used in place of the 
+<parameter>title.margin.left</parameter> for
+all XSL-FO processors except FOP 0.25.
+It enables support for side floats to appear
+in the indented margin area.
+</para>
+<para>This start-indent property is added to the fo:flow
+for certain page sequences.  Which page-sequences it is 
+applied to is determined by the template named
+<literal>set.flow.properties</literal>.
+By default, that template adds it to the flow
+for page-sequences using the <quote>body</quote>
+master-reference, as well as appendixes and prefaces.
+</para>
+<para>If this parameter is used, section titles should have
+a start-indent value of 0pt if they are to be
+outdented relative to the body text.
+</para>
+
+<para>If you are using FOP, then set this parameter to a zero
+width value and set the <parameter>title.margin.left</parameter>
+parameter to the negative value of the desired indent.
+</para>
+
+<para>See also <parameter>body.end.indent</parameter> and
+<parameter>title.margin.left</parameter>.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/bookmarks.collapse.xml b/applications/content/template/docbook/params/bookmarks.collapse.xml
new file mode 100644
index 0000000..3320056
--- /dev/null
+++ b/applications/content/template/docbook/params/bookmarks.collapse.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="bookmarks.collapse">
+<refmeta>
+<refentrytitle>bookmarks.collapse</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo> 
+</refmeta>
+<refnamediv>
+<refname>bookmarks.collapse</refname>
+<refpurpose>Specifies the initial state of bookmarks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="bookmarks.collapse.frag">
+<xsl:param name="bookmarks.collapse" select="1"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the bookmark tree is collapsed so that only the 
+top-level bookmarks are displayed initially. Otherwise, the whole tree 
+of bookmarks is displayed.</para>
+
+<para>This parameter currently works with FOP 0.93 or later.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/bridgehead.in.toc.xml b/applications/content/template/docbook/params/bridgehead.in.toc.xml
new file mode 100644
index 0000000..490d556
--- /dev/null
+++ b/applications/content/template/docbook/params/bridgehead.in.toc.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="bridgehead.in.toc">
+<refmeta>
+<refentrytitle>bridgehead.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>bridgehead.in.toc</refname>
+<refpurpose>Should bridgehead elements appear in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="bridgehead.in.toc.frag"><xsl:param name="bridgehead.in.toc" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>bridgehead</tag>s appear in the TOC. Note that
+this option is not fully supported and may be removed in a future
+version of the stylesheets.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/bullet.image.xml b/applications/content/template/docbook/params/bullet.image.xml
new file mode 100644
index 0000000..acf2af5
--- /dev/null
+++ b/applications/content/template/docbook/params/bullet.image.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="bullet.image.frag">
+<xsl:param name="bullet.image">toc/bullet.png</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/callout.defaultcolumn.xml b/applications/content/template/docbook/params/callout.defaultcolumn.xml
new file mode 100644
index 0000000..6cae381
--- /dev/null
+++ b/applications/content/template/docbook/params/callout.defaultcolumn.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="callout.defaultcolumn">
+<refmeta>
+<refentrytitle>callout.defaultcolumn</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.defaultcolumn</refname>
+<refpurpose>Indicates what column callouts appear in by default</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="callout.defaultcolumn.frag">
+<xsl:param name="callout.defaultcolumn">60</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If a callout does not identify a column (for example, if it uses
+the <literal>linerange</literal> <tag class="attribute">unit</tag>),
+it will appear in the default column.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/callout.graphics.extension.xml b/applications/content/template/docbook/params/callout.graphics.extension.xml
new file mode 100644
index 0000000..febc690
--- /dev/null
+++ b/applications/content/template/docbook/params/callout.graphics.extension.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="callout.graphics.extension">
+<refmeta>
+<refentrytitle>callout.graphics.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.extension</refname>
+<refpurpose>Filename extension for callout graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="callout.graphics.extension.frag">
+<xsl:param condition="html" name="callout.graphics.extension">.png</xsl:param>
+<xsl:param condition="fo" name="callout.graphics.extension">.svg</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Sets the filename extension to use on callout graphics. </para>
+
+<itemizedlist>
+<para>The Docbook XSL distribution provides callout graphics in the following formats:</para>
+<listitem><para>SVG (extension: <filename class="extension">.svg</filename>)</para></listitem>
+<listitem><para>PNG (extension: <filename class="extension">.png</filename>)</para></listitem>
+<listitem><para>GIF (extension: <filename class="extension">.gif</filename>)</para></listitem>
+</itemizedlist>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/callout.graphics.number.limit.xml b/applications/content/template/docbook/params/callout.graphics.number.limit.xml
new file mode 100644
index 0000000..cde5267
--- /dev/null
+++ b/applications/content/template/docbook/params/callout.graphics.number.limit.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="callout.graphics.number.limit">
+<refmeta>
+<refentrytitle>callout.graphics.number.limit</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.number.limit</refname>
+<refpurpose>Number of the largest callout graphic</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="callout.graphics.number.limit.frag">
+<xsl:param condition="html" name="callout.graphics.number.limit">15</xsl:param>
+<xsl:param condition="fo" name="callout.graphics.number.limit">30</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.graphics</parameter> is non-zero, graphics
+are used to represent callout numbers instead of plain text. The value
+of <parameter>callout.graphics.number.limit</parameter> is the largest
+number for which a graphic exists. If the callout number exceeds this
+limit, the default presentation "(plain text instead of a graphic)"
+will  be used.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/callout.graphics.path.xml b/applications/content/template/docbook/params/callout.graphics.path.xml
new file mode 100644
index 0000000..00e54c1
--- /dev/null
+++ b/applications/content/template/docbook/params/callout.graphics.path.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="callout.graphics.path">
+<refmeta>
+<refentrytitle>callout.graphics.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics.path</refname>
+<refpurpose>Path to callout graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="callout.graphics.path.frag">
+<xsl:param name="callout.graphics.path">images/callouts/</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the path to the directory holding the callout graphics. his
+location is normally relative to the output html directory. see
+base.dir. Always terminate the directory with / since the graphic file
+is appended to this string, hence needs the separator.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/callout.graphics.xml b/applications/content/template/docbook/params/callout.graphics.xml
new file mode 100644
index 0000000..a97ac0d
--- /dev/null
+++ b/applications/content/template/docbook/params/callout.graphics.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="callout.graphics">
+<refmeta>
+<refentrytitle>callout.graphics</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.graphics</refname>
+<refpurpose>Use graphics for callouts?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="callout.graphics.frag">
+<xsl:param name="callout.graphics" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, callouts are presented with graphics (e.g., reverse-video
+circled numbers instead of "(1)", "(2)", etc.).
+Default graphics are provided in the distribution.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/callout.icon.size.xml b/applications/content/template/docbook/params/callout.icon.size.xml
new file mode 100644
index 0000000..d3acae8
--- /dev/null
+++ b/applications/content/template/docbook/params/callout.icon.size.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="callout.icon.size">
+<refmeta>
+<refentrytitle>callout.icon.size</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.icon.size</refname>
+<refpurpose>Specifies the size of callout marker icons</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="callout.icon.size.frag">
+<xsl:param name="callout.icon.size">7pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the size of the callout marker icons.
+The default size is 7 points.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/callout.list.table.xml b/applications/content/template/docbook/params/callout.list.table.xml
new file mode 100644
index 0000000..6fece03
--- /dev/null
+++ b/applications/content/template/docbook/params/callout.list.table.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="callout.list.table">
+<refmeta>
+<refentrytitle>callout.list.table</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.list.table</refname>
+<refpurpose>Present callout lists using a table?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="callout.list.table.frag">
+<xsl:param name="callout.list.table" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The default presentation of <tag>calloutlist</tag>s uses
+an HTML <tag>DL</tag> element. Some browsers don't align DLs very well
+if <parameter>callout.graphics</parameter> is used. With this option
+turned on, <tag>calloutlist</tag>s are presented in an HTML
+<tag>TABLE</tag>, which usually results in better alignment
+of the callout number with the callout description.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/callout.properties.xml b/applications/content/template/docbook/params/callout.properties.xml
new file mode 100644
index 0000000..d50b85f
--- /dev/null
+++ b/applications/content/template/docbook/params/callout.properties.xml
@@ -0,0 +1,23 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="callout.properties">
+<refmeta>
+<refentrytitle>callout.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.properties</refname>
+<refpurpose>Properties that apply to the list-item generated by each callout within a calloutlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="callout.properties.frag"><xsl:attribute-set name="callout.properties">
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to the fo:list-item generated by each callout within a calloutlist. Typically used to add spacing properties.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/callout.unicode.font.xml b/applications/content/template/docbook/params/callout.unicode.font.xml
new file mode 100644
index 0000000..e63bffb
--- /dev/null
+++ b/applications/content/template/docbook/params/callout.unicode.font.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="callout.unicode.font">
+<refmeta>
+<refentrytitle>callout.unicode.font</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode.font</refname>
+<refpurpose>Specify a font for Unicode glyphs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="callout.unicode.font.frag">
+<xsl:param name="callout.unicode.font">ZapfDingbats</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The name of the font to specify around Unicode callout glyphs.
+If set to the empty string, no font change will occur.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/callout.unicode.number.limit.xml b/applications/content/template/docbook/params/callout.unicode.number.limit.xml
new file mode 100644
index 0000000..a9f1f3d
--- /dev/null
+++ b/applications/content/template/docbook/params/callout.unicode.number.limit.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="callout.unicode.number.limit">
+<refmeta>
+<refentrytitle>callout.unicode.number.limit</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode.number.limit</refname>
+<refpurpose>Number of the largest unicode callout character</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="callout.unicode.number.limit.frag">
+<xsl:param name="callout.unicode.number.limit">10</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.unicode</parameter>
+is non-zero, unicode characters are used to represent
+callout numbers. The value of
+<parameter>callout.unicode.number.limit</parameter>
+is
+the largest number for which a unicode character exists. If the callout number
+exceeds this limit, the default presentation "(nnn)" will always
+be used.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/callout.unicode.start.character.xml b/applications/content/template/docbook/params/callout.unicode.start.character.xml
new file mode 100644
index 0000000..2f03124
--- /dev/null
+++ b/applications/content/template/docbook/params/callout.unicode.start.character.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="callout.unicode.start.character">
+<refmeta>
+<refentrytitle>callout.unicode.start.character</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode.start.character</refname>
+<refpurpose>First Unicode character to use, decimal value.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="callout.unicode.start.character.frag">
+<xsl:param name="callout.unicode.start.character">10102</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>callout.graphics</parameter> is zero and <parameter>callout.unicode</parameter>
+is non-zero, unicode characters are used to represent
+callout numbers. The value of
+<parameter>callout.unicode.start.character</parameter>
+is the decimal unicode value used for callout number one. Currently, 
+only values 9312 and 10102 are supported in the stylesheets for this parameter. 
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/callout.unicode.xml b/applications/content/template/docbook/params/callout.unicode.xml
new file mode 100644
index 0000000..4ec6a5f
--- /dev/null
+++ b/applications/content/template/docbook/params/callout.unicode.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="callout.unicode">
+<refmeta>
+<refentrytitle>callout.unicode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callout.unicode</refname>
+<refpurpose>Use Unicode characters rather than images for callouts.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="callout.unicode.frag"><xsl:param name="callout.unicode" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The stylesheets can use either an image of the numbers one to ten, or the single Unicode character which represents the numeral, in white on a black background. Use this to select the Unicode character option.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/calloutlist.properties.xml b/applications/content/template/docbook/params/calloutlist.properties.xml
new file mode 100644
index 0000000..18976bd
--- /dev/null
+++ b/applications/content/template/docbook/params/calloutlist.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="calloutlist.properties">
+<refmeta>
+<refentrytitle>calloutlist.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>calloutlist.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by calloutlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="calloutlist.properties.frag"><xsl:attribute-set name="calloutlist.properties">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="provisional-distance-between-starts">2.2em</xsl:attribute>
+  <xsl:attribute name="provisional-label-separation">0.2em</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to the fo:list-block generated by calloutlist.
+Typically used to adjust spacing or margins of the entire list.
+Change the <literal>provisional-distance-between-starts</literal> attribute to
+change the indent of the list paragraphs relative to the
+callout numbers.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/callouts.extension.xml b/applications/content/template/docbook/params/callouts.extension.xml
new file mode 100644
index 0000000..80b5845
--- /dev/null
+++ b/applications/content/template/docbook/params/callouts.extension.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="callouts.extension">
+<refmeta>
+<refentrytitle>callouts.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>callouts.extension</refname>
+<refpurpose>Enable the callout extension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="callouts.extension.frag">
+<xsl:param name="callouts.extension" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<!-- DP. Note this is not used in the same manner as callout.graphics.extension -->
+<para>The callouts extension processes <tag>areaset</tag>
+elements in <tag>programlistingco</tag> and other text-based
+callout elements.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chapter.autolabel.xml b/applications/content/template/docbook/params/chapter.autolabel.xml
new file mode 100644
index 0000000..32414bc
--- /dev/null
+++ b/applications/content/template/docbook/params/chapter.autolabel.xml
@@ -0,0 +1,71 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chapter.autolabel">
+<refmeta>
+<refentrytitle>chapter.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chapter.autolabel</refname>
+<refpurpose>Specifies the labeling format for Chapter titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="chapter.autolabel.frag">
+<xsl:param name="chapter.autolabel" select="1"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then chapters will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (arabic).
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunk.append.xml b/applications/content/template/docbook/params/chunk.append.xml
new file mode 100644
index 0000000..1f65aad
--- /dev/null
+++ b/applications/content/template/docbook/params/chunk.append.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunk.append">
+<refmeta>
+<refentrytitle>chunk.append</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.append</refname>
+<refpurpose>Specifies content to append to chunked HTML output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="chunk.append.frag"><xsl:param name="chunk.append"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies content to append to the end of HTML files output by
+the <filename>html/chunk.xsl</filename> stylesheet, after the closing
+<code>&lt;html&gt;</code> tag. You probably don’t want to set any value
+for this parameter; but if you do, the only value it should ever be
+set to is a newline character: <code>&amp;#x0a;</code> or
+<code>&amp;#10;</code></para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunk.first.sections.xml b/applications/content/template/docbook/params/chunk.first.sections.xml
new file mode 100644
index 0000000..f0c1b82
--- /dev/null
+++ b/applications/content/template/docbook/params/chunk.first.sections.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunk.first.sections">
+<refmeta>
+<refentrytitle>chunk.first.sections</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.first.sections</refname>
+<refpurpose>Chunk the first top-level section?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="chunk.first.sections.frag">
+<xsl:param name="chunk.first.sections" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a chunk will be created for the first top-level
+<tag>sect1</tag> or <tag>section</tag> elements in
+each component. Otherwise, that section will be part of the chunk for
+its parent.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunk.quietly.xml b/applications/content/template/docbook/params/chunk.quietly.xml
new file mode 100644
index 0000000..8700b29
--- /dev/null
+++ b/applications/content/template/docbook/params/chunk.quietly.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunk.quietly">
+<refmeta>
+<refentrytitle>chunk.quietly</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.quietly</refname>
+<refpurpose>Omit the chunked filename messages.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="chunk.quietly.frag">
+<xsl:param name="chunk.quietly" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), the XSL processor emits a message naming
+each separate chunk filename as it is being output.
+If nonzero, then the messages are suppressed.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunk.section.depth.xml b/applications/content/template/docbook/params/chunk.section.depth.xml
new file mode 100644
index 0000000..d46193c
--- /dev/null
+++ b/applications/content/template/docbook/params/chunk.section.depth.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunk.section.depth">
+<refmeta>
+<refentrytitle>chunk.section.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.section.depth</refname>
+<refpurpose>Depth to which sections should be chunked</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="chunk.section.depth.frag">
+<xsl:param name="chunk.section.depth" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter sets the depth of section chunking.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunk.sections.xml b/applications/content/template/docbook/params/chunk.sections.xml
new file mode 100644
index 0000000..2ffb1a3
--- /dev/null
+++ b/applications/content/template/docbook/params/chunk.sections.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunk.sections">
+<refmeta>
+<refentrytitle>chunk.sections</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.sections</refname>
+<refpurpose>Should top-level sections be chunks in their own right?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="chunk.sections.frag">
+<xsl:param name="chunk.sections" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, chunks will be created for top-level
+<tag>sect1</tag> and <tag>section</tag> elements in
+each component.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunk.separate.lots.xml b/applications/content/template/docbook/params/chunk.separate.lots.xml
new file mode 100644
index 0000000..aa54eab
--- /dev/null
+++ b/applications/content/template/docbook/params/chunk.separate.lots.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunk.separate.lots">
+<refmeta>
+<refentrytitle>chunk.separate.lots</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.separate.lots</refname>
+<refpurpose>Should each LoT be in its own separate chunk?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="chunk.separate.lots.frag">
+<xsl:param name="chunk.separate.lots" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, each of the ToC and LoTs
+(List of Examples, List of Figures, etc.)
+will be put in its own separate chunk.
+The title page includes generated links to each of the separate files.
+</para>
+<para>
+This feature depends on the
+<parameter>chunk.tocs.and.lots</parameter>
+parameter also being non-zero. 
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunk.toc.xml b/applications/content/template/docbook/params/chunk.toc.xml
new file mode 100644
index 0000000..12cdb2c
--- /dev/null
+++ b/applications/content/template/docbook/params/chunk.toc.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunk.toc">
+<refmeta>
+<refentrytitle>chunk.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.toc</refname>
+<refpurpose>An explicit TOC to be used for chunking</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="chunk.toc.frag">
+<xsl:param name="chunk.toc"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>chunk.toc</parameter> identifies an explicit TOC that
+will be used for chunking. This parameter is only used by the
+<filename>chunktoc.xsl</filename> stylesheet (and customization layers built
+from it).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunk.tocs.and.lots.has.title.xml b/applications/content/template/docbook/params/chunk.tocs.and.lots.has.title.xml
new file mode 100644
index 0000000..0bdd31b
--- /dev/null
+++ b/applications/content/template/docbook/params/chunk.tocs.and.lots.has.title.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunk.tocs.and.lots.has.title">
+<refmeta>
+<refentrytitle>chunk.tocs.and.lots.has.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.tocs.and.lots.has.title</refname>
+<refpurpose>Should ToC and LoTs in a separate chunks have title?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="chunk.tocs.and.lots.has.title.frag">
+<xsl:param name="chunk.tocs.and.lots.has.title" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero title of document is shown before ToC/LoT in
+separate chunk.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunk.tocs.and.lots.xml b/applications/content/template/docbook/params/chunk.tocs.and.lots.xml
new file mode 100644
index 0000000..2a01fff
--- /dev/null
+++ b/applications/content/template/docbook/params/chunk.tocs.and.lots.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunk.tocs.and.lots">
+<refmeta>
+<refentrytitle>chunk.tocs.and.lots</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunk.tocs.and.lots</refname>
+<refpurpose>Should ToC and LoTs be in separate chunks?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="chunk.tocs.and.lots.frag">
+<xsl:param name="chunk.tocs.and.lots" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, ToC and LoT (List of Examples, List of Figures, etc.)
+will be put in a separate chunk. At the moment, this chunk is not in the
+normal forward/backward navigation list. Instead, a new link is added to the
+navigation footer.</para>
+
+<para>This feature is still somewhat experimental. Feedback welcome.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunked.filename.prefix.xml b/applications/content/template/docbook/params/chunked.filename.prefix.xml
new file mode 100644
index 0000000..e4282c2
--- /dev/null
+++ b/applications/content/template/docbook/params/chunked.filename.prefix.xml
@@ -0,0 +1,41 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunked.filename.prefix">
+<refmeta>
+<refentrytitle>chunked.filename.prefix</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunked.filename.prefix</refname>
+<refpurpose>Filename prefix for chunked files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="chunked.filename.prefix.frag">
+<xsl:param name="chunked.filename.prefix"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If specified, the <parameter>chunked.filename.prefix</parameter> 
+parameter specifies a prefix string to add to each generated chunk filename.
+For example:</para>
+<programlisting>&lt;xsl:param name="chunked.filename.prefix"&gt;admin-&lt;xsl:param&gt;</programlisting>
+<para>will produce chunked filenames like:</para>
+<programlisting>admin-index.html
+admin-ch01.html
+admin-ch01s01.html
+...
+</programlisting>
+
+<caution><para>Trying to use the <parameter>base.dir</parameter>
+parameter to add a string prefix (by omitting the trailing slash)
+no longer works (it never worked completely anyway). That parameter
+value should contain only a directory path, and
+now gets a trailing slash appended if it was omitted from the param.</para></caution>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunker.output.cdata-section-elements.xml b/applications/content/template/docbook/params/chunker.output.cdata-section-elements.xml
new file mode 100644
index 0000000..3e9be4d
--- /dev/null
+++ b/applications/content/template/docbook/params/chunker.output.cdata-section-elements.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunker.output.cdata-section-elements">
+<refmeta>
+<refentrytitle>chunker.output.cdata-section-elements</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.cdata-section-elements</refname>
+<refpurpose>List of elements to escape with CDATA sections</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="chunker.output.cdata-section-elements.frag">
+<xsl:param name="chunker.output.cdata-section-elements"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the list of elements that should be escaped
+as CDATA sections by the chunking stylesheet.  Not all processors support
+specification of this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunker.output.doctype-public.xml b/applications/content/template/docbook/params/chunker.output.doctype-public.xml
new file mode 100644
index 0000000..6aa6e30
--- /dev/null
+++ b/applications/content/template/docbook/params/chunker.output.doctype-public.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunker.output.doctype-public">
+<refmeta>
+<refentrytitle>chunker.output.doctype-public</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.doctype-public</refname>
+<refpurpose>Public identifer to use in the document type of generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="chunker.output.doctype-public.frag">
+<xsl:param name="chunker.output.doctype-public"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the public identifier that should be used by
+the chunking stylesheet in the document type declaration of chunked pages.
+Not all processors support specification of
+this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunker.output.doctype-system.xml b/applications/content/template/docbook/params/chunker.output.doctype-system.xml
new file mode 100644
index 0000000..2d67906
--- /dev/null
+++ b/applications/content/template/docbook/params/chunker.output.doctype-system.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunker.output.doctype-system">
+<refmeta>
+<refentrytitle>chunker.output.doctype-system</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.doctype-system</refname>
+<refpurpose>System identifier to use for the document type in generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="chunker.output.doctype-system.frag">
+<xsl:param name="chunker.output.doctype-system"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the system identifier that should be used by
+the chunking stylesheet in the document type declaration of chunked pages.
+Not all processors support specification of
+this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunker.output.encoding.xml b/applications/content/template/docbook/params/chunker.output.encoding.xml
new file mode 100644
index 0000000..f8993e9
--- /dev/null
+++ b/applications/content/template/docbook/params/chunker.output.encoding.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunker.output.encoding">
+<refmeta>
+<refentrytitle>chunker.output.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.encoding</refname>
+<refpurpose>Encoding used in generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="chunker.output.encoding.frag">
+<xsl:param name="chunker.output.encoding">ISO-8859-1</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the encoding to be used in files
+generated by the chunking stylesheet. Not all processors support
+specification of this parameter.
+</para>
+<para>This parameter used to be named <literal>default.encoding</literal>.</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunker.output.indent.xml b/applications/content/template/docbook/params/chunker.output.indent.xml
new file mode 100644
index 0000000..3da9ad4
--- /dev/null
+++ b/applications/content/template/docbook/params/chunker.output.indent.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunker.output.indent">
+<refmeta>
+<refentrytitle>chunker.output.indent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.indent</refname>
+<refpurpose>Specification of indentation on generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="chunker.output.indent.frag">
+<xsl:param name="chunker.output.indent">no</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the value of the indent
+specification for generated pages. Not all processors support
+specification of this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunker.output.media-type.xml b/applications/content/template/docbook/params/chunker.output.media-type.xml
new file mode 100644
index 0000000..6186971
--- /dev/null
+++ b/applications/content/template/docbook/params/chunker.output.media-type.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunker.output.media-type">
+<refmeta>
+<refentrytitle>chunker.output.media-type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.media-type</refname>
+<refpurpose>Media type to use in generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="chunker.output.media-type.frag">
+<xsl:param name="chunker.output.media-type"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the media type that should be used by
+the chunking stylesheet. Not all processors support specification of
+this parameter.
+</para>
+<para>This parameter specifies the media type that should be used by the
+chunking stylesheet. This should be one from those defined in
+<link xlink:href="http://www.ietf.org/rfc/rfc2045.txt">[RFC2045]</link>  and
+ <link xlink:href="http://www.ietf.org/rfc/rfc2046.txt">[RFC2046]</link> </para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+<para>It must be one from html, xml or text</para>
+</note>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunker.output.method.xml b/applications/content/template/docbook/params/chunker.output.method.xml
new file mode 100644
index 0000000..dc9359b
--- /dev/null
+++ b/applications/content/template/docbook/params/chunker.output.method.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunker.output.method">
+<refmeta>
+<refentrytitle>chunker.output.method</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">html</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">xml</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.method</refname>
+<refpurpose>Method used in generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="chunker.output.method.frag">
+<xsl:param name="chunker.output.method">html</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the output method to be used in files
+generated by the chunking stylesheet.
+</para>
+<para>This parameter used to be named <literal>output.method</literal>.</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunker.output.omit-xml-declaration.xml b/applications/content/template/docbook/params/chunker.output.omit-xml-declaration.xml
new file mode 100644
index 0000000..4b8262f
--- /dev/null
+++ b/applications/content/template/docbook/params/chunker.output.omit-xml-declaration.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunker.output.omit-xml-declaration">
+<refmeta>
+<refentrytitle>chunker.output.omit-xml-declaration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.omit-xml-declaration</refname>
+<refpurpose>Omit-xml-declaration for generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="chunker.output.omit-xml-declaration.frag">
+<xsl:param name="chunker.output.omit-xml-declaration">no</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the value of the omit-xml-declaration
+specification for generated pages. Not all processors support
+specification of this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/chunker.output.standalone.xml b/applications/content/template/docbook/params/chunker.output.standalone.xml
new file mode 100644
index 0000000..8972c47
--- /dev/null
+++ b/applications/content/template/docbook/params/chunker.output.standalone.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="chunker.output.standalone">
+<refmeta>
+<refentrytitle>chunker.output.standalone</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>chunker.output.standalone</refname>
+<refpurpose>Standalone declaration for generated pages</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="chunker.output.standalone.frag">
+<xsl:param name="chunker.output.standalone">no</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>This parameter specifies the value of the standalone
+  specification for generated pages. It must be either
+  <literal>yes</literal> or <literal>no</literal>. Not all
+  processors support specification of this parameter.
+</para>
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/citerefentry.link.xml b/applications/content/template/docbook/params/citerefentry.link.xml
new file mode 100644
index 0000000..623511b
--- /dev/null
+++ b/applications/content/template/docbook/params/citerefentry.link.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="citerefentry.link">
+<refmeta>
+<refentrytitle>citerefentry.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>citerefentry.link</refname>
+<refpurpose>Generate URL links when cross-referencing RefEntrys?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="citerefentry.link.frag">
+<xsl:param name="citerefentry.link" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a web link will be generated, presumably
+to an online man-&gt;HTML gateway. The text of the link is
+generated by the <literal>generate.citerefentry.link</literal> template.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/collect.xref.targets.xml b/applications/content/template/docbook/params/collect.xref.targets.xml
new file mode 100644
index 0000000..378c969
--- /dev/null
+++ b/applications/content/template/docbook/params/collect.xref.targets.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="collect.xref.targets"> 
+<refmeta> 
+<refentrytitle>collect.xref.targets</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">only</refmiscinfo>
+</refmeta> 
+<refnamediv> 
+<refname>collect.xref.targets</refname> 
+<refpurpose>Controls whether cross reference data is
+collected</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <src:fragment xml:id="collect.xref.targets.frag">
+<xsl:param name="collect.xref.targets">no</xsl:param>
+</src:fragment> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>
+In order to resolve olinks efficiently, the stylesheets can
+generate an external data file containing information about
+all potential cross reference endpoints in a document.
+This parameter determines whether the collection process is run when the document is processed by the stylesheet. The default value is  <literal>no</literal>, which means the data file is not generated during processing. The other choices are <literal>yes</literal>, which means the data file is created and the document is processed for output, and <literal>only</literal>, which means the data file is created but the document is not processed for output.
+See also <parameter>targets.filename</parameter>.
+</para> 
+</refsection> 
+</refentry>
diff --git a/applications/content/template/docbook/params/column.count.back.xml b/applications/content/template/docbook/params/column.count.back.xml
new file mode 100644
index 0000000..95ee76d
--- /dev/null
+++ b/applications/content/template/docbook/params/column.count.back.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="column.count.back">
+<refmeta>
+<refentrytitle>column.count.back</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.back</refname>
+<refpurpose>Number of columns on back matter pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="column.count.back.frag">
+<xsl:param name="column.count.back" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on back matter (appendix, glossary, etc.) pages.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/column.count.body.xml b/applications/content/template/docbook/params/column.count.body.xml
new file mode 100644
index 0000000..a5d65b3
--- /dev/null
+++ b/applications/content/template/docbook/params/column.count.body.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="column.count.body">
+<refmeta>
+<refentrytitle>column.count.body</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.body</refname>
+<refpurpose>Number of columns on body pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="column.count.body.frag">
+<xsl:param name="column.count.body" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on body pages.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/column.count.front.xml b/applications/content/template/docbook/params/column.count.front.xml
new file mode 100644
index 0000000..64ff3ac
--- /dev/null
+++ b/applications/content/template/docbook/params/column.count.front.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="column.count.front">
+<refmeta>
+<refentrytitle>column.count.front</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.front</refname>
+<refpurpose>Number of columns on front matter pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="column.count.front.frag">
+<xsl:param name="column.count.front" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on front matter (dedication, preface, etc.) pages.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/column.count.index.xml b/applications/content/template/docbook/params/column.count.index.xml
new file mode 100644
index 0000000..e485448
--- /dev/null
+++ b/applications/content/template/docbook/params/column.count.index.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="column.count.index">
+<refmeta>
+<refentrytitle>column.count.index</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.index</refname>
+<refpurpose>Number of columns on index pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="column.count.index.frag">
+<xsl:param name="column.count.index">2</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on index pages.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/column.count.lot.xml b/applications/content/template/docbook/params/column.count.lot.xml
new file mode 100644
index 0000000..770988d
--- /dev/null
+++ b/applications/content/template/docbook/params/column.count.lot.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="column.count.lot">
+<refmeta>
+<refentrytitle>column.count.lot</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.lot</refname>
+<refpurpose>Number of columns on a 'List-of-Titles' page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="column.count.lot.frag">
+<xsl:param name="column.count.lot" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on a page sequence containing the Table of Contents,
+List of Figures, etc.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/column.count.titlepage.xml b/applications/content/template/docbook/params/column.count.titlepage.xml
new file mode 100644
index 0000000..3deba6f
--- /dev/null
+++ b/applications/content/template/docbook/params/column.count.titlepage.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="column.count.titlepage">
+<refmeta>
+<refentrytitle>column.count.titlepage</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.titlepage</refname>
+<refpurpose>Number of columns on a title page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="column.count.titlepage.frag">
+<xsl:param name="column.count.titlepage" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Number of columns on a title page</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/column.gap.back.xml b/applications/content/template/docbook/params/column.gap.back.xml
new file mode 100644
index 0000000..3aaa1d3
--- /dev/null
+++ b/applications/content/template/docbook/params/column.gap.back.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="column.gap.back">
+<refmeta>
+<refentrytitle>column.gap.back</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.back</refname>
+<refpurpose>Gap between columns in back matter</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="column.gap.back.frag">
+<xsl:param name="column.gap.back">12pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns in back matter (if
+<parameter>column.count.back</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/column.gap.body.xml b/applications/content/template/docbook/params/column.gap.body.xml
new file mode 100644
index 0000000..57b0168
--- /dev/null
+++ b/applications/content/template/docbook/params/column.gap.body.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="column.gap.body">
+<refmeta>
+<refentrytitle>column.gap.body</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.body</refname>
+<refpurpose>Gap between columns in the body</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="column.gap.body.frag">
+<xsl:param name="column.gap.body">12pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns in body matter (if
+<parameter>column.count.body</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/column.gap.front.xml b/applications/content/template/docbook/params/column.gap.front.xml
new file mode 100644
index 0000000..a6f7263
--- /dev/null
+++ b/applications/content/template/docbook/params/column.gap.front.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="column.gap.front">
+<refmeta>
+<refentrytitle>column.gap.front</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.front</refname>
+<refpurpose>Gap between columns in the front matter</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="column.gap.front.frag">
+<xsl:param name="column.gap.front">12pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns in front matter (if
+<parameter>column.count.front</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/column.gap.index.xml b/applications/content/template/docbook/params/column.gap.index.xml
new file mode 100644
index 0000000..2279f77
--- /dev/null
+++ b/applications/content/template/docbook/params/column.gap.index.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="column.gap.index">
+<refmeta>
+<refentrytitle>column.gap.index</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.index</refname>
+<refpurpose>Gap between columns in the index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="column.gap.index.frag">
+<xsl:param name="column.gap.index">12pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns in indexes (if
+<parameter>column.count.index</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/column.gap.lot.xml b/applications/content/template/docbook/params/column.gap.lot.xml
new file mode 100644
index 0000000..da0fa00
--- /dev/null
+++ b/applications/content/template/docbook/params/column.gap.lot.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="column.gap.lot">
+<refmeta>
+<refentrytitle>column.gap.lot</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.lot</refname>
+<refpurpose>Gap between columns on a 'List-of-Titles' page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="column.gap.lot.frag">
+<xsl:param name="column.gap.lot">12pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns on 'List-of-Titles' pages (if
+<parameter>column.count.lot</parameter> is greater than one).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/column.gap.titlepage.xml b/applications/content/template/docbook/params/column.gap.titlepage.xml
new file mode 100644
index 0000000..7c13dbd
--- /dev/null
+++ b/applications/content/template/docbook/params/column.gap.titlepage.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="column.gap.titlepage">
+<refmeta>
+<refentrytitle>column.gap.titlepage</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.gap.titlepage</refname>
+<refpurpose>Gap between columns on title pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="column.gap.titlepage.frag">
+<xsl:param name="column.gap.titlepage">12pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the gap between columns on title pages (if
+<parameter>column.count.titlepage</parameter> is greater than one).</para>
+
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/compact.list.item.spacing.xml b/applications/content/template/docbook/params/compact.list.item.spacing.xml
new file mode 100644
index 0000000..f48f4a6
--- /dev/null
+++ b/applications/content/template/docbook/params/compact.list.item.spacing.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="compact.list.item.spacing">
+<refmeta>
+<refentrytitle>compact.list.item.spacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>compact.list.item.spacing</refname>
+<refpurpose>What space do you want between list items (when spacing="compact")?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="compact.list.item.spacing.frag"><xsl:attribute-set name="compact.list.item.spacing">
+  <xsl:attribute name="space-before.optimum">0em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">0.2em</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify what spacing you want between each list item when
+<tag class="attribute">spacing</tag> is
+<quote><literal>compact</literal></quote>.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/component.label.includes.part.label.xml b/applications/content/template/docbook/params/component.label.includes.part.label.xml
new file mode 100644
index 0000000..6dd7a68
--- /dev/null
+++ b/applications/content/template/docbook/params/component.label.includes.part.label.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="component.label.includes.part.label">
+<refmeta>
+<refentrytitle>component.label.includes.part.label</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>component.label.includes.part.label</refname>
+<refpurpose>Do component labels include the part label?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="component.label.includes.part.label.frag"><xsl:param name="component.label.includes.part.label" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, number labels for <tag>chapter</tag>,
+<tag>appendix</tag>, and other component elements are prefixed with
+the label of the part element that contains them.  So you might see
+Chapter II.3 instead of Chapter 3.  Also, the labels for formal
+elements such as <tag>table</tag> and <tag>figure</tag> will include
+the part label.  If there is no part element container, then no prefix
+is generated.
+</para>
+<para>
+This feature is most useful when the
+<parameter>label.from.part</parameter> parameter is turned on.
+In that case, there would be more than one <tag>chapter</tag>
+<quote>1</quote>, and the extra part label prefix will identify
+each chapter unambiguously.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/component.title.properties.xml b/applications/content/template/docbook/params/component.title.properties.xml
new file mode 100644
index 0000000..58cd4b4
--- /dev/null
+++ b/applications/content/template/docbook/params/component.title.properties.xml
@@ -0,0 +1,40 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="component.title.properties">
+<refmeta>
+<refentrytitle>component.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>component.title.properties</refname>
+<refpurpose>Properties for component titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="component.title.properties.frag">
+<xsl:attribute-set name="component.title.properties">
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="space-before.optimum"><xsl:value-of select="concat($body.font.master, 'pt')"/></xsl:attribute>
+  <xsl:attribute name="space-before.minimum"><xsl:value-of select="concat($body.font.master, 'pt * 0.8')"/></xsl:attribute>
+  <xsl:attribute name="space-before.maximum"><xsl:value-of select="concat($body.font.master, 'pt * 1.2')"/></xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="text-align">
+    <xsl:choose>
+      <xsl:when test="((parent::article | parent::articleinfo | parent::info/parent::article) and not(ancestor::book) and not(self::bibliography))         or (parent::slides | parent::slidesinfo)">center</xsl:when>
+      <xsl:otherwise>start</xsl:otherwise>
+    </xsl:choose>
+  </xsl:attribute>
+  <xsl:attribute name="start-indent"><xsl:value-of select="$title.margin.left"/></xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties common to all component titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/component.titlepage.properties.xml b/applications/content/template/docbook/params/component.titlepage.properties.xml
new file mode 100644
index 0000000..47179f4
--- /dev/null
+++ b/applications/content/template/docbook/params/component.titlepage.properties.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="component.titlepage.properties">
+<refmeta>
+<refentrytitle>component.titlepage.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>component.titlepage.properties</refname>
+<refpurpose>Properties for component titlepages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="component.titlepage.properties.frag">
+<xsl:attribute-set name="component.titlepage.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that are applied to the outer block containing
+all the component title page information. 
+Its main use is to set a <literal>span="all"</literal>
+property on the block that is a direct child of the flow.</para>
+
+<para>This attribute-set also applies to index titlepages. It is empty by default.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/contrib.inline.enabled.xml b/applications/content/template/docbook/params/contrib.inline.enabled.xml
new file mode 100644
index 0000000..5d5fa99
--- /dev/null
+++ b/applications/content/template/docbook/params/contrib.inline.enabled.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="contrib.inline.enabled">
+<refmeta>
+<refentrytitle>contrib.inline.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>contrib.inline.enabled</refname>
+<refpurpose>Display contrib output inline?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="contrib.inline.enabled.frag"><xsl:param name="contrib.inline.enabled">1</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero (the default), output of the <tag>contrib</tag> element is
+displayed as inline content rather than as block content.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/crop.mark.bleed.xml b/applications/content/template/docbook/params/crop.mark.bleed.xml
new file mode 100644
index 0000000..af3420e
--- /dev/null
+++ b/applications/content/template/docbook/params/crop.mark.bleed.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="crop.mark.bleed">
+<refmeta>
+<refentrytitle>crop.mark.bleed</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>crop.mark.bleed</refname>
+<refpurpose>Length of invisible part of crop marks.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="crop.mark.bleed.frag">
+<xsl:param name="crop.mark.bleed">6pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Length of invisible part of crop marks. Crop marks are controlled by
+<parameter>crop.marks</parameter> parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/crop.mark.offset.xml b/applications/content/template/docbook/params/crop.mark.offset.xml
new file mode 100644
index 0000000..cfd9bd3
--- /dev/null
+++ b/applications/content/template/docbook/params/crop.mark.offset.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="crop.mark.offset">
+<refmeta>
+<refentrytitle>crop.mark.offset</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>crop.mark.offset</refname>
+<refpurpose>Length of crop marks.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="crop.mark.offset.frag">
+<xsl:param name="crop.mark.offset">24pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Length of crop marks. Crop marks are controlled by
+<parameter>crop.marks</parameter> parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/crop.mark.width.xml b/applications/content/template/docbook/params/crop.mark.width.xml
new file mode 100644
index 0000000..86c28b5
--- /dev/null
+++ b/applications/content/template/docbook/params/crop.mark.width.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="crop.mark.width">
+<refmeta>
+<refentrytitle>crop.mark.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>crop.mark.width</refname>
+<refpurpose>Width of crop marks.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="crop.mark.width.frag">
+<xsl:param name="crop.mark.width">0.5pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Width of crop marks. Crop marks are controlled by
+<parameter>crop.marks</parameter> parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/crop.marks.xml b/applications/content/template/docbook/params/crop.marks.xml
new file mode 100644
index 0000000..c68d5a0
--- /dev/null
+++ b/applications/content/template/docbook/params/crop.marks.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="crop.marks">
+<refmeta>
+<refentrytitle>crop.marks</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>crop.marks</refname>
+<refpurpose>Output crop marks?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="crop.marks.frag">
+<xsl:param name="crop.marks" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, crop marks will be added to each page. Currently this
+works only with XEP if you have <parameter>xep.extensions</parameter> set.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/css.decoration.xml b/applications/content/template/docbook/params/css.decoration.xml
new file mode 100644
index 0000000..02e3026
--- /dev/null
+++ b/applications/content/template/docbook/params/css.decoration.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="css.decoration">
+<refmeta>
+<refentrytitle>css.decoration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>css.decoration</refname>
+<refpurpose>Enable CSS decoration of elements</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="css.decoration.frag">
+<xsl:param name="css.decoration" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, then html elements produced by the stylesheet may be
+decorated with <literal>style</literal> attributes.  For example, the
+<literal>li</literal> tags produced for list items may include a
+fragment of CSS in the <literal>style</literal> attribute which sets
+the CSS property "list-style-type".
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/css.stylesheet.dir.xml b/applications/content/template/docbook/params/css.stylesheet.dir.xml
new file mode 100644
index 0000000..e32b178
--- /dev/null
+++ b/applications/content/template/docbook/params/css.stylesheet.dir.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="css.stylesheet.dir.frag">
+<xsl:param name="css.stylesheet.dir"></xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/css.stylesheet.xml b/applications/content/template/docbook/params/css.stylesheet.xml
new file mode 100644
index 0000000..2acc66c
--- /dev/null
+++ b/applications/content/template/docbook/params/css.stylesheet.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="css.stylesheet.frag">
+<xsl:param name="css.stylesheet">slides.css</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/current.docid.xml b/applications/content/template/docbook/params/current.docid.xml
new file mode 100644
index 0000000..93616f2
--- /dev/null
+++ b/applications/content/template/docbook/params/current.docid.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="current.docid"> 
+<refmeta> 
+<refentrytitle>current.docid</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>current.docid</refname> 
+<refpurpose>targetdoc identifier for the document being
+processed</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <src:fragment xml:id="current.docid.frag">
+<xsl:param name="current.docid"/>
+</src:fragment> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When olinks between documents are resolved for HTML output, the stylesheet can compute the relative path between the current document and the target document. The stylesheet needs to know the <literal>targetdoc</literal> identifiers for both documents, as they appear in the <parameter>target.database.document</parameter> database file. This parameter passes to the stylesheet
+the targetdoc identifier of the current document, since that
+identifier does not appear in the document itself. </para>
+<para>This parameter can also be used for print output. If an olink's  <literal>targetdoc</literal>  id differs from the <literal>current.docid</literal>, then the stylesheet can append the target document's title to the generated olink text. That identifies to the reader that the link is to a different document, not the current document. See also <parameter>olink.doctitle</parameter> to enable that feature.</para> 
+</refsection> 
+</refentry>
diff --git a/applications/content/template/docbook/params/currentpage.marker.xml b/applications/content/template/docbook/params/currentpage.marker.xml
new file mode 100644
index 0000000..2bccf30
--- /dev/null
+++ b/applications/content/template/docbook/params/currentpage.marker.xml
@@ -0,0 +1,25 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="currentpage.marker">
+<refmeta>
+<refentrytitle>currentpage.marker</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>currentpage.marker</refname>
+<refpurpose>The text symbol used to mark the current page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="currentpage.marker.frag">
+<xsl:param name="currentpage.marker">@</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Character to use as identifying the current page in </para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/custom.css.source.xml b/applications/content/template/docbook/params/custom.css.source.xml
new file mode 100644
index 0000000..24278ad
--- /dev/null
+++ b/applications/content/template/docbook/params/custom.css.source.xml
@@ -0,0 +1,119 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="custom.css.source">
+  <refmeta>
+    <refentrytitle>custom.css.source</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>custom.css.source</refname>
+    <refpurpose>Name of a custom CSS input file</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <src:fragment xml:id="custom.css.source.frag"><xsl:param name="custom.css.source"></xsl:param></src:fragment>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+<para>The <parameter>custom.css.source</parameter>
+parameter enables you to add CSS styles to DocBook's
+HTML output.</para>
+
+<para>The parameter
+specifies the name of a file containing custom
+CSS styles.  The file must be a well-formed XML file that
+consists of a single <tag>style</tag> root
+element that contains CSS styles as its text content.
+For example:</para>
+<programlisting><![CDATA[<?xml version="1.0"?>
+<style>
+h2 {
+  font-weight: bold;
+  color: blue;
+}
+...
+</style>
+]]></programlisting>
+
+<para>The filename specified by the parameter
+should have a <literal>.xml</literal>
+filename suffix, although that is not required.
+The default value of this parameter is blank.</para>
+
+<para>If <parameter>custom.css.source</parameter> is not blank, then
+the stylesheet takes the following actions.
+These actions take place regardless of the value of
+the <parameter>make.clean.html</parameter> parameter.</para>
+
+<orderedlist>
+  <listitem>
+    <para>The stylesheet uses the XSLT <literal>document()</literal>
+    function to open the file specified by the parameter and
+    load it into a variable.</para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet forms an output pathname consisting of the
+    value of the <parameter>base.dir</parameter> parameter (if it is set)
+    and the value of <parameter>custom.css.source</parameter>,
+    with the <literal>.xml</literal> suffix stripped off.
+    </para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet removes the <tag>style</tag>
+    wrapper element and writes just the CSS text content to the output file.</para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet adds a <tag>link</tag> element to the
+    HTML <tag>HEAD</tag> element to reference this external CSS stylesheet.
+    For example:
+    <programlisting>&lt;link rel="stylesheet" href="custom.css" type="text/css"&gt;
+    </programlisting>
+    </para>
+  </listitem>
+</orderedlist>
+
+
+
+<para>If the <parameter>make.clean.html</parameter> parameter is nonzero
+(the default is zero),
+and if the <parameter>docbook.css.source</parameter> parameter
+is not blank (the default is not blank),
+then the stylesheet will also generate a default CSS file
+and add a <tag>link</tag> tag to reference it.
+The <tag>link</tag> to the custom CSS comes after the 
+<tag>link</tag> to the default, so it should cascade properly
+in most browsers.
+If you do not want two <tag>link</tag> tags, and
+instead want your custom CSS to import the default generated
+CSS file, then do the following:
+</para>
+
+<orderedlist>
+  <listitem>
+    <para>Add a line like the following to your custom CSS source file:</para>
+    <programlisting>@import url("docbook.css")
+    </programlisting>
+  </listitem>
+  <listitem>
+    <para>Set the <parameter>docbook.css.link</parameter> parameter 
+    to zero. This will omit the <tag>link</tag> tag
+    that references the default CSS file.</para>
+  </listitem>
+</orderedlist>
+
+<para>If you set <parameter>make.clean.html</parameter> to nonzero but
+you do not want the default CSS generated, then also set
+the <parameter>docbook.css.source</parameter> parameter to blank.
+Then no default CSS will be generated, and so
+all CSS styles must come from your custom CSS file.</para>
+
+<para>You can use the <parameter>generate.css.header</parameter>
+parameter to instead write the CSS to each HTML <tag>HEAD</tag>
+element in a <tag>style</tag> tag instead of an external CSS file.</para>
+
+  </refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/default.float.class.xml b/applications/content/template/docbook/params/default.float.class.xml
new file mode 100644
index 0000000..1078b60
--- /dev/null
+++ b/applications/content/template/docbook/params/default.float.class.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="default.float.class">
+<refmeta>
+<refentrytitle>default.float.class</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.float.class</refname>
+<refpurpose>Specifies the default float class</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="default.float.class.frag">
+<xsl:param name="default.float.class">
+  <xsl:choose>
+    <xsl:when test="contains($stylesheet.result.type,'html')">left</xsl:when>
+    <xsl:otherwise>before</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the direction in which a float should be placed. for
+xsl-fo this is before, for html it is left. For Western texts, the
+before direction is the top of the page.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/default.image.width.xml b/applications/content/template/docbook/params/default.image.width.xml
new file mode 100644
index 0000000..0e84a72
--- /dev/null
+++ b/applications/content/template/docbook/params/default.image.width.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="default.image.width">
+<refmeta>
+<refentrytitle>default.image.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.image.width</refname>
+<refpurpose>The default width of images</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="default.image.width.frag">
+<xsl:param name="default.image.width"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If specified, this value will be used for the
+<tag class="attribute">width</tag> attribute on images that do not specify any 
+<emphasis xlink:title="DocBook 5: The Definitive Guide"
+	  xlink:href="http://docbook.org/tdg5/en/html/imagedata.html#viewport.area">viewport dimensions</emphasis>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/default.table.frame.xml b/applications/content/template/docbook/params/default.table.frame.xml
new file mode 100644
index 0000000..38c8667
--- /dev/null
+++ b/applications/content/template/docbook/params/default.table.frame.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="default.table.frame">
+<refmeta>
+<refentrytitle>default.table.frame</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.table.frame</refname>
+<refpurpose>The default framing of tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="default.table.frame.frag">
+<xsl:param name="default.table.frame">all</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This value will be used when there is no frame attribute on the
+table. </para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/default.table.rules.xml b/applications/content/template/docbook/params/default.table.rules.xml
new file mode 100644
index 0000000..ed698ec
--- /dev/null
+++ b/applications/content/template/docbook/params/default.table.rules.xml
@@ -0,0 +1,76 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="default.table.rules">
+<refmeta>
+<refentrytitle>default.table.rules</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.table.rules</refname>
+<refpurpose>The default column and row rules for tables using HTML markup</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="default.table.rules.frag">
+<xsl:param name="default.table.rules">none</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Tables using HTML markup elements can use an attribute
+named <tag class="attribute">rules</tag> on the <tag>table</tag> or
+<tag>informaltable</tag> element
+to specify whether column and row border rules should be 
+displayed. This parameter lets you specify a global default
+style for all HTML tables that don't otherwise have
+that attribute.</para>
+<para>These are the supported values:</para>
+
+<variablelist>
+<varlistentry><term>all</term>
+<listitem>
+<para>Rules will appear between all rows and columns.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>rows</term>
+<listitem>
+<para>Rules will appear between rows only.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>cols</term>
+<listitem>
+<para>Rules will appear between columns only.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>groups</term>
+<listitem>
+<para>Rules will appear between row groups (thead, tfoot, tbody).
+No support for rules between column groups yet.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>none</term>
+<listitem>
+<para>No rules.  This is the default value.
+</para>
+</listitem>
+</varlistentry>
+
+</variablelist>
+
+<para>The border after the last row and the border after
+the last column are not affected by
+this setting. Those borders are controlled by
+the <tag class="attribute">frame</tag> attribute on the table element.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/default.table.width.xml b/applications/content/template/docbook/params/default.table.width.xml
new file mode 100644
index 0000000..184ce52
--- /dev/null
+++ b/applications/content/template/docbook/params/default.table.width.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="default.table.width">
+<refmeta>
+<refentrytitle>default.table.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.table.width</refname>
+<refpurpose>The default width of tables</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="default.table.width.frag">
+<xsl:param name="default.table.width"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, this value will be used for the
+<literal>width</literal> attribute on <tag>table</tag>s that do not specify an
+alternate width (with the <tag class="xmlpi">dbhtml table-width</tag> or 
+<tag class="xmlpi">dbfo table-width</tag> processing instruction).</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/default.units.xml b/applications/content/template/docbook/params/default.units.xml
new file mode 100644
index 0000000..f83c822
--- /dev/null
+++ b/applications/content/template/docbook/params/default.units.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="default.units">
+<refmeta>
+<refentrytitle>default.units</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">cm</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">mm</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">in</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">pt</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">pc</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">px</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">em</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>default.units</refname>
+<refpurpose>Default units for an unqualified dimension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="default.units.frag">
+<xsl:param name="default.units">pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If an unqualified dimension is encountered (for example, in a
+graphic width), the <parameter>default.units</parameter> will be used for the
+units. Unqualified dimensions are not allowed in XSL Formatting Objects.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/dingbat.font.family.xml b/applications/content/template/docbook/params/dingbat.font.family.xml
new file mode 100644
index 0000000..f9719cf
--- /dev/null
+++ b/applications/content/template/docbook/params/dingbat.font.family.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="dingbat.font.family">
+<refmeta>
+<refentrytitle>dingbat.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>dingbat.font.family</refname>
+<refpurpose>The font family for copyright, quotes, and other symbols</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="dingbat.font.family.frag">
+<xsl:param name="dingbat.font.family">serif</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The dingbat font family is used for dingbats. If it is defined
+as the empty string, no font change is effected around dingbats.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/docbook.css.link.xml b/applications/content/template/docbook/params/docbook.css.link.xml
new file mode 100644
index 0000000..6d9e6e6
--- /dev/null
+++ b/applications/content/template/docbook/params/docbook.css.link.xml
@@ -0,0 +1,42 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="docbook.css.link">
+<refmeta>
+<refentrytitle>docbook.css.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>docbook.css.link</refname>
+<refpurpose>Insert a link referencing the default CSS stylesheet</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="docbook.css.link.frag">
+<xsl:param name="docbook.css.link" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The stylesheets are capable of generating a default
+CSS stylesheet file.  The parameters 
+<parameter>make.clean.html</parameter> and
+<parameter>docbook.css.source</parameter> control that feature.</para>
+
+<para>Normally if a default CSS file is generated, then 
+the stylesheet inserts a <tag>link</tag> tag in the HTML
+<tag>HEAD</tag> element to reference it.
+However, you can omit that <tag>link</tag> reference if
+you set the <parameter>docbook.css.link</parameter> to zero
+(1 is the default).</para>
+
+<para>This parameter is useful when you want to import the 
+default CSS into a custom CSS file generated using the
+<parameter>custom.css.source</parameter> parameter.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/docbook.css.source.xml b/applications/content/template/docbook/params/docbook.css.source.xml
new file mode 100644
index 0000000..8ba7eb7
--- /dev/null
+++ b/applications/content/template/docbook/params/docbook.css.source.xml
@@ -0,0 +1,83 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="docbook.css.source">
+  <refmeta>
+    <refentrytitle>docbook.css.source</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>docbook.css.source</refname>
+    <refpurpose>Name of the default CSS input file</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <src:fragment xml:id="docbook.css.source.frag"><xsl:param name="docbook.css.source">docbook.css.xml</xsl:param></src:fragment>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+<para>The <parameter>docbook.css.source</parameter> parameter
+specifies the name of the file containing the default DocBook
+CSS styles.  Those styles are necessary when the
+<parameter>make.clean.html</parameter> parameter is nonzero.</para>
+
+<para>The file is a well-formed XML file that
+must consist of a single <tag>style</tag> root
+element that contains CSS styles as its text content.
+The default value of the parameter (and filename)
+is <literal>docbook.css.xml</literal>.
+The stylesheets ship with the default file. You can substitute
+your own and specify its path in this parameter.</para>
+
+<para>If <parameter>docbook.css.source</parameter> is not blank,
+and <parameter>make.clean.html</parameter> is nonzero, then
+the stylesheet takes the following actions:</para>
+
+<orderedlist>
+  <listitem>
+    <para>The stylesheet uses the XSLT <literal>document()</literal>
+    function to open the file specified by the parameter and
+    load it into a variable.</para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet forms an output pathname consisting of the
+    value of the <parameter>base.dir</parameter> parameter (if it is set)
+    and the value of <parameter>docbook.css.source</parameter>,
+    with the <literal>.xml</literal> suffix stripped off.
+    </para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet removes the <tag>style</tag>
+    wrapper element and writes just the CSS text content to the output file.</para>
+  </listitem>
+  <listitem>
+    <para>The stylesheet adds a <tag>link</tag> element to the
+    HTML <tag>HEAD</tag> element to reference the external CSS stylesheet.
+    For example:</para>
+    <programlisting>&lt;link rel="stylesheet" href="docbook.css" type="text/css"&gt;
+    </programlisting>
+    <para>However, if the <parameter>docbook.css.link</parameter>
+    parameter is set to zero, then no <tag>link</tag> is written
+    for the default CSS file.  That is useful if a custom
+    CSS file will import the default CSS stylesheet to ensure
+    proper cascading of styles.</para>
+  </listitem>
+</orderedlist>
+
+<para>If the <parameter>docbook.css.source</parameter> parameter
+is changed from its default <literal>docbook.css.xml</literal> to blank,
+then no default CSS is generated. Likewise if the
+<parameter>make.clean.html</parameter> parameter is set to zero,
+then no default CSS is generated. The 
+<parameter>custom.css.source</parameter> parameter can be used
+instead to generate a complete custom CSS file.</para>
+
+<para>You can use the <parameter>generate.css.header</parameter>
+parameter to instead write the CSS to each HTML <tag>HEAD</tag>
+element in a <tag>style</tag> tag instead of an external CSS file.</para>
+
+  </refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/double.sided.xml b/applications/content/template/docbook/params/double.sided.xml
new file mode 100644
index 0000000..3758f1f
--- /dev/null
+++ b/applications/content/template/docbook/params/double.sided.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="double.sided">
+<refmeta>
+<refentrytitle>double.sided</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>double.sided</refname>
+<refpurpose>Is the document to be printed double sided?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="double.sided.frag">
+<xsl:param name="double.sided" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Double-sided documents are printed with a slightly wider margin
+on the binding edge of the page.
+</para>
+<para>FIXME: The current set of parameters does not take writing direction
+into account.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/draft.mode.xml b/applications/content/template/docbook/params/draft.mode.xml
new file mode 100644
index 0000000..2f62d06
--- /dev/null
+++ b/applications/content/template/docbook/params/draft.mode.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="draft.mode">
+<refmeta>
+<refentrytitle>draft.mode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>draft.mode</refname>
+<refpurpose>Select draft mode</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="draft.mode.frag">
+<xsl:param name="draft.mode">no</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects draft mode. If <parameter>draft.mode</parameter> is
+<quote><literal>yes</literal></quote>, the entire document will be treated
+as a draft. If it is <quote><literal>no</literal></quote>, the entire document
+will be treated as a final copy. If it is <quote><literal>maybe</literal></quote>,
+individual sections will be treated as draft or final independently, depending
+on how their <literal>status</literal> attribute is set.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/draft.watermark.image.xml b/applications/content/template/docbook/params/draft.watermark.image.xml
new file mode 100644
index 0000000..ef053a0
--- /dev/null
+++ b/applications/content/template/docbook/params/draft.watermark.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="draft.watermark.image">
+<refmeta>
+<refentrytitle>draft.watermark.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>draft.watermark.image</refname>
+<refpurpose>The URI of the image to be used for draft watermarks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="draft.watermark.image.frag">
+<xsl:param name="draft.watermark.image">images/draft.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The image to be used for draft watermarks.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/dry-run.xml b/applications/content/template/docbook/params/dry-run.xml
new file mode 100644
index 0000000..dd481c3
--- /dev/null
+++ b/applications/content/template/docbook/params/dry-run.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="dry-run">
+<refmeta>
+<refentrytitle>dry-run</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>dry-run</refname>
+<refpurpose>Indicates that no files should be produced</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+  <src:fragment xml:id="dry-run.frag">
+    <xsl:param name="dry-run" select="0"/>
+  </src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>When using the XSLT processor to manage dependencies and construct
+the website, this parameter can be used to suppress the generation of
+new and updated files. Effectively, this allows you to see what the
+stylesheet would do, without actually making any changes.</para>
+<para>Only applies when XSLT-based chunking is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/dynamic.toc.xml b/applications/content/template/docbook/params/dynamic.toc.xml
new file mode 100644
index 0000000..232f19e
--- /dev/null
+++ b/applications/content/template/docbook/params/dynamic.toc.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="dynamic.toc.frag">
+<xsl:param name="dynamic.toc" select="0"/>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/ebnf.assignment.xml b/applications/content/template/docbook/params/ebnf.assignment.xml
new file mode 100644
index 0000000..5c89748
--- /dev/null
+++ b/applications/content/template/docbook/params/ebnf.assignment.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="ebnf.assignment">
+<refmeta>
+<refentrytitle>ebnf.assignment</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.assignment</refname>
+<refpurpose>The EBNF production assignment operator</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="ebnf.assignment.frag">
+<xsl:param condition="html" name="ebnf.assignment">
+<code xmlns="">::=</code>
+</xsl:param>
+<xsl:param xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" condition="fo" name="ebnf.assignment">
+  <fo:inline font-family="{$monospace.font.family}">
+    <xsl:text>::=</xsl:text>
+  </fo:inline>
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>ebnf.assignment</parameter> parameter determines what
+text is used to show <quote>assignment</quote> in <tag>production</tag>s
+in <tag>productionset</tag>s.</para>
+
+<para>While <quote><literal>::=</literal></quote> is common, so are several
+other operators.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/ebnf.statement.terminator.xml b/applications/content/template/docbook/params/ebnf.statement.terminator.xml
new file mode 100644
index 0000000..4e8bd12
--- /dev/null
+++ b/applications/content/template/docbook/params/ebnf.statement.terminator.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="ebnf.statement.terminator">
+<refmeta>
+<refentrytitle>ebnf.statement.terminator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.statement.terminator</refname>
+<refpurpose>Punctuation that ends an EBNF statement.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="ebnf.statement.terminator.frag">
+<xsl:param condition="html" name="ebnf.statement.terminator"/>
+<xsl:param condition="fo" name="ebnf.statement.terminator"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>ebnf.statement.terminator</parameter> parameter determines what
+text is used to terminate each <tag>production</tag>
+in <tag>productionset</tag>.</para>
+
+<para>Some notations end each statement with a period.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/ebnf.table.bgcolor.xml b/applications/content/template/docbook/params/ebnf.table.bgcolor.xml
new file mode 100644
index 0000000..747f140
--- /dev/null
+++ b/applications/content/template/docbook/params/ebnf.table.bgcolor.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="ebnf.table.bgcolor">
+<refmeta>
+<refentrytitle>ebnf.table.bgcolor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.table.bgcolor</refname>
+<refpurpose>Background color for EBNF tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="ebnf.table.bgcolor.frag">
+<xsl:param name="ebnf.table.bgcolor" >#F5DCB3</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the background color for EBNF tables (a pale brown). No
+<tag>bgcolor</tag> attribute is output if
+<parameter>ebnf.table.bgcolor</parameter> is set to the null string. </para>
+
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/ebnf.table.border.xml b/applications/content/template/docbook/params/ebnf.table.border.xml
new file mode 100644
index 0000000..e4e50ae
--- /dev/null
+++ b/applications/content/template/docbook/params/ebnf.table.border.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="ebnf.table.border">
+<refmeta>
+<refentrytitle>ebnf.table.border</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ebnf.table.border</refname>
+<refpurpose>Selects border on EBNF tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="ebnf.table.border.frag"><xsl:param name="ebnf.table.border" select="1"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the border on EBNF tables. If non-zero, the tables have
+borders, otherwise they don't.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/eclipse.autolabel.xml b/applications/content/template/docbook/params/eclipse.autolabel.xml
new file mode 100644
index 0000000..622196e
--- /dev/null
+++ b/applications/content/template/docbook/params/eclipse.autolabel.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="eclipse.autolabel">
+<refmeta>
+<refentrytitle>eclipse.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>eclipse.autolabel</refname>
+<refpurpose>Should tree-like ToC use autonumbering feature?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="eclipse.autolabel.frag">
+<xsl:param name="eclipse.autolabel" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want to include chapter and section numbers into ToC in
+the left panel, set this parameter to 1.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/eclipse.plugin.id.xml b/applications/content/template/docbook/params/eclipse.plugin.id.xml
new file mode 100644
index 0000000..75557e5
--- /dev/null
+++ b/applications/content/template/docbook/params/eclipse.plugin.id.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="eclipse.plugin.id">
+<refmeta>
+<refentrytitle>eclipse.plugin.id</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>eclipse.plugin.id</refname>
+<refpurpose>Eclipse Help plugin id</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="eclipse.plugin.id.frag">
+<xsl:param name="eclipse.plugin.id">com.example.help</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Eclipse Help plugin id. You should change this id to something
+unique for each help.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/eclipse.plugin.name.xml b/applications/content/template/docbook/params/eclipse.plugin.name.xml
new file mode 100644
index 0000000..0df83ec
--- /dev/null
+++ b/applications/content/template/docbook/params/eclipse.plugin.name.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="eclipse.plugin.name">
+<refmeta>
+<refentrytitle>eclipse.plugin.name</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>eclipse.plugin.name</refname>
+<refpurpose>Eclipse Help plugin name</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="eclipse.plugin.name.frag">
+<xsl:param name="eclipse.plugin.name">DocBook Online Help Sample</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Eclipse Help plugin name.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/eclipse.plugin.provider.xml b/applications/content/template/docbook/params/eclipse.plugin.provider.xml
new file mode 100644
index 0000000..03261fe
--- /dev/null
+++ b/applications/content/template/docbook/params/eclipse.plugin.provider.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="eclipse.plugin.provider">
+<refmeta>
+<refentrytitle>eclipse.plugin.provider</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>eclipse.plugin.provider</refname>
+<refpurpose>Eclipse Help plugin provider name</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="eclipse.plugin.provider.frag">
+<xsl:param name="eclipse.plugin.provider">Example provider</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Eclipse Help plugin provider name.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/editedby.enabled.xml b/applications/content/template/docbook/params/editedby.enabled.xml
new file mode 100644
index 0000000..78089f9
--- /dev/null
+++ b/applications/content/template/docbook/params/editedby.enabled.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="editedby.enabled">
+<refmeta>
+<refentrytitle>editedby.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>editedby.enabled</refname>
+<refpurpose>Display “Edited by” heading above editor name?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="editedby.enabled.frag"><xsl:param name="editedby.enabled">1</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a localized <emphasis role="bold">Edited
+by</emphasis> heading is displayed above editor names in output of the
+<tag>editor</tag> element.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/email.delimiters.enabled.xml b/applications/content/template/docbook/params/email.delimiters.enabled.xml
new file mode 100644
index 0000000..b07cd6d
--- /dev/null
+++ b/applications/content/template/docbook/params/email.delimiters.enabled.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="email.delimiters.enabled">
+<refmeta>
+<refentrytitle>email.delimiters.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>email.delimiters.enabled</refname>
+<refpurpose>Generate delimiters around email addresses?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="email.delimiters.enabled.frag">
+<xsl:param name="email.delimiters.enabled" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, delimiters
+
+<footnote><para>For delimiters, the
+stylesheets are currently hard-coded to output angle
+brackets.</para></footnote> 
+
+are generated around e-mail addresses
+(the output of the <tag>email</tag> element).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/email.mailto.enabled.xml b/applications/content/template/docbook/params/email.mailto.enabled.xml
new file mode 100644
index 0000000..e4eb8d1
--- /dev/null
+++ b/applications/content/template/docbook/params/email.mailto.enabled.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="email.mailto.enabled">
+<refmeta>
+<refentrytitle>email.mailto.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>email.mailto.enabled</refname>
+<refpurpose>Generate mailto: links for email addresses?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="email.mailto.enabled.frag">
+<xsl:param name="email.mailto.enabled" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero the generated output for the <tag>email</tag> element
+will be a clickable mailto: link that brings up the default mail client
+on the system.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/emphasis.propagates.style.xml b/applications/content/template/docbook/params/emphasis.propagates.style.xml
new file mode 100644
index 0000000..9ff55f5
--- /dev/null
+++ b/applications/content/template/docbook/params/emphasis.propagates.style.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="emphasis.propagates.style">
+<refmeta>
+<refentrytitle>emphasis.propagates.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>emphasis.propagates.style</refname>
+<refpurpose>Pass emphasis role attribute through to HTML?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="emphasis.propagates.style.frag">
+<xsl:param name="emphasis.propagates.style" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, the <literal>role</literal> attribute of
+<tag>emphasis</tag> elements will be passed through to the HTML as a
+class attribute on a <literal>span</literal> that surrounds the
+emphasis.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/entry.propagates.style.xml b/applications/content/template/docbook/params/entry.propagates.style.xml
new file mode 100644
index 0000000..7f43c66
--- /dev/null
+++ b/applications/content/template/docbook/params/entry.propagates.style.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="entry.propagates.style">
+<refmeta>
+<refentrytitle>entry.propagates.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>entry.propagates.style</refname>
+<refpurpose>Pass entry role attribute through to HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="entry.propagates.style.frag">
+<xsl:param name="entry.propagates.style" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, the role attribute of <tag>entry</tag> elements
+will be passed through to the HTML as a class attribute on the
+<tag>td</tag> or <tag>th</tag> generated for the table
+cell.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/epub.autolabel.xml b/applications/content/template/docbook/params/epub.autolabel.xml
new file mode 100644
index 0000000..8a64555
--- /dev/null
+++ b/applications/content/template/docbook/params/epub.autolabel.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="epub.autolabel">
+<refmeta>
+<refentrytitle>epub.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>epub.autolabel</refname>
+<refpurpose>Should tree-like ToC use autonumbering feature?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="epub.autolabel.frag">
+<xsl:param name="epub.autolabel" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want to include chapter and section numbers into ToC in, 
+set this parameter to 1.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/equation.number.properties.xml b/applications/content/template/docbook/params/equation.number.properties.xml
new file mode 100644
index 0000000..6e05d39
--- /dev/null
+++ b/applications/content/template/docbook/params/equation.number.properties.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="equation.number.properties">
+<refmeta>
+<refentrytitle>equation.number.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>equation.number.properties</refname>
+<refpurpose>Properties that apply to the <tag>fo:table-cell</tag> containing the number
+of an <tag>equation</tag> that does not have a title.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="equation.number.properties.frag"><xsl:attribute-set name="equation.number.properties">
+  <xsl:attribute name="text-align">end</xsl:attribute>
+  <xsl:attribute name="display-align">center</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to the fo:table-cell containing the number
+of an equation when it has no title. The number in an equation with a
+title is formatted along with the title, and this attribute-set does not apply.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/equation.properties.xml b/applications/content/template/docbook/params/equation.properties.xml
new file mode 100644
index 0000000..a88f683
--- /dev/null
+++ b/applications/content/template/docbook/params/equation.properties.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="equation.properties">
+<refmeta>
+<refentrytitle>equation.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>equation.properties</refname>
+<refpurpose>Properties associated with a equation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="equation.properties.frag">
+<xsl:attribute-set name="equation.properties" use-attribute-sets="formal.object.properties"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for equations.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/example.properties.xml b/applications/content/template/docbook/params/example.properties.xml
new file mode 100644
index 0000000..42755ac
--- /dev/null
+++ b/applications/content/template/docbook/params/example.properties.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="example.properties">
+<refmeta>
+<refentrytitle>example.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>example.properties</refname>
+<refpurpose>Properties associated with a example</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="example.properties.frag">
+<xsl:attribute-set name="example.properties" use-attribute-sets="formal.object.properties">
+    <xsl:attribute name="keep-together.within-column">auto</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for examples.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/exsl.node.set.available.xml b/applications/content/template/docbook/params/exsl.node.set.available.xml
new file mode 100644
index 0000000..c5d009e
--- /dev/null
+++ b/applications/content/template/docbook/params/exsl.node.set.available.xml
@@ -0,0 +1,44 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:exsl="http://exslt.org/common"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="exsl.node.set.available">
+<refmeta>
+<refentrytitle>exsl.node.set.available</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>exsl.node.set.available</refname>
+<refpurpose>Is the test function-available('exsl:node-set') true?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="exsl.node.set.available.frag"><xsl:param name="exsl.node.set.available"> 
+  <xsl:choose>
+    <xsl:when exsl:foo="" xmlns:exsl="http://exslt.org/common"
+      test="function-available('exsl:node-set') or
+                       contains(system-property('xsl:vendor'),
+                         'Apache Software Foundation')">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+then the exsl:node-set() function is available to be used in
+the stylesheet.
+If zero, then the function is not available.
+This param automatically detects the presence of
+the function and does not normally need to be set manually.</para>
+
+<para>This param was created to handle a long-standing
+bug in the Xalan processor that fails to detect the
+function even though it is available.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/feedback.href.xml b/applications/content/template/docbook/params/feedback.href.xml
new file mode 100644
index 0000000..bc37daf
--- /dev/null
+++ b/applications/content/template/docbook/params/feedback.href.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="feedback.href">
+<refmeta>
+<refentrytitle>feedback.href</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>feedback.href</refname>
+<refpurpose>HREF (URI) for feedback link</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="feedback.href.frag">
+<xsl:param name="feedback.href"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The <varname>feedback.href</varname> value is used as the value
+for the <tag class="attribute">href</tag> attribute on the feedback
+link. If <varname>feedback.href</varname>
+is empty, no feedback link is generated.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/feedback.link.text.xml b/applications/content/template/docbook/params/feedback.link.text.xml
new file mode 100644
index 0000000..c80feef
--- /dev/null
+++ b/applications/content/template/docbook/params/feedback.link.text.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="feedback.link.text">
+<refmeta>
+<refentrytitle>feedback.link.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>feedback.link.text</refname>
+<refpurpose>The text of the feedback link</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="feedback.link.text.frag">
+<xsl:param name="feedback.link.text">Feedback</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The contents of this variable is used as the text of the feedback
+link if <varname>feedback.href</varname> is not empty. If
+<varname>feedback.href</varname> is empty, no feedback link is
+generated.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/feedback.with.ids.xml b/applications/content/template/docbook/params/feedback.with.ids.xml
new file mode 100644
index 0000000..3edfa26
--- /dev/null
+++ b/applications/content/template/docbook/params/feedback.with.ids.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="feedback.with.ids">
+<refmeta>
+<refentrytitle>feedback.with.ids</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>feedback.with.ids</refname>
+<refpurpose>Toggle use of IDs in feedback</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="feedback.with.ids.frag">
+<xsl:param name="feedback.with.ids" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>feedback.with.ids</varname> is non-zero, the ID of the
+current page will be added to the feedback link. This can be used, for
+example, if the <varname>feedback.href</varname> is a CGI script.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/figure.properties.xml b/applications/content/template/docbook/params/figure.properties.xml
new file mode 100644
index 0000000..e9f6748
--- /dev/null
+++ b/applications/content/template/docbook/params/figure.properties.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="figure.properties">
+<refmeta>
+<refentrytitle>figure.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>figure.properties</refname>
+<refpurpose>Properties associated with a figure</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="figure.properties.frag">
+<xsl:attribute-set name="figure.properties" use-attribute-sets="formal.object.properties"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for figures.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/filename-prefix.xml b/applications/content/template/docbook/params/filename-prefix.xml
new file mode 100644
index 0000000..54c043d
--- /dev/null
+++ b/applications/content/template/docbook/params/filename-prefix.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="filename-prefix">
+<refmeta>
+<refentrytitle>filename-prefix</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>filename-prefix</refname>
+<refpurpose>Prefix added to all filenames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="filename-prefix.frag">
+<xsl:param name="filename-prefix"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>To produce the <quote>text-only</quote> (that is, non-tabular) layout
+of a website simultaneously with the tabular layout, the filenames have to
+be distinguished. That's accomplished by adding the
+<varname>filename-prefix</varname> to the front of each filename.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/firstterm.only.link.xml b/applications/content/template/docbook/params/firstterm.only.link.xml
new file mode 100644
index 0000000..32ea305
--- /dev/null
+++ b/applications/content/template/docbook/params/firstterm.only.link.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="firstterm.only.link">
+<refmeta>
+<refentrytitle>firstterm.only.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>firstterm.only.link</refname>
+<refpurpose>Does automatic glossterm linking only apply to firstterms?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="firstterm.only.link.frag">
+<xsl:param name="firstterm.only.link" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, only <tag>firstterm</tag>s will be automatically linked
+to the glossary. If glossary linking is not enabled, this parameter
+has no effect.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/foil.properties.xml b/applications/content/template/docbook/params/foil.properties.xml
new file mode 100644
index 0000000..11ad146
--- /dev/null
+++ b/applications/content/template/docbook/params/foil.properties.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+  <src:fragment xml:id="foil.properties.frag">
+    <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>
+  </src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies properties that are applied to all foils.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/foil.subtitle.properties.xml b/applications/content/template/docbook/params/foil.subtitle.properties.xml
new file mode 100644
index 0000000..4832fbe
--- /dev/null
+++ b/applications/content/template/docbook/params/foil.subtitle.properties.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+  <src:fragment xml:id="foil.subtitle.properties.frag">
+    <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>
+  </src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies properties that are applied to all foil subtitles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/foil.title.master.xml b/applications/content/template/docbook/params/foil.title.master.xml
new file mode 100644
index 0000000..f5ba07f
--- /dev/null
+++ b/applications/content/template/docbook/params/foil.title.master.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="foil.title.master.frag">
+<xsl:param name="foil.title.master">36</xsl:param>
+<!-- Inconsistant use of point size? -->
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/foil.title.size.xml b/applications/content/template/docbook/params/foil.title.size.xml
new file mode 100644
index 0000000..3163600
--- /dev/null
+++ b/applications/content/template/docbook/params/foil.title.size.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+  <src:fragment xml:id="foil.title.size.frag">
+    <xsl:param name="foil.title.size">
+      <xsl:value-of select="$foil.title.master"/><xsl:text>pt</xsl:text>
+    </xsl:param>
+  </src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/foilgroup.properties.xml b/applications/content/template/docbook/params/foilgroup.properties.xml
new file mode 100644
index 0000000..cd9805a
--- /dev/null
+++ b/applications/content/template/docbook/params/foilgroup.properties.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+  <src:fragment xml:id="foilgroup.properties.frag">
+    <xsl:attribute-set name="foilgroup.properties">
+      <xsl:attribute name="font-family">
+        <xsl:value-of select="$slide.font.family"/>
+      </xsl:attribute>
+    </xsl:attribute-set>
+  </src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies properties that are applied to all foilgroups.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/foilgroup.toc.xml b/applications/content/template/docbook/params/foilgroup.toc.xml
new file mode 100644
index 0000000..31d7cb3
--- /dev/null
+++ b/applications/content/template/docbook/params/foilgroup.toc.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="foilgroup.toc.frag">
+<xsl:param name="foilgroup.toc" select="1"/>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/footer.column.widths.xml b/applications/content/template/docbook/params/footer.column.widths.xml
new file mode 100644
index 0000000..eca2270
--- /dev/null
+++ b/applications/content/template/docbook/params/footer.column.widths.xml
@@ -0,0 +1,80 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="footer.column.widths">
+<refmeta>
+<refentrytitle>footer.column.widths</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.column.widths</refname>
+<refpurpose>Specify relative widths of footer areas</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><src:fragment xml:id="footer.column.widths.frag">
+<xsl:param name="footer.column.widths">1 1 1</xsl:param>
+</src:fragment></refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Page footers in print output use a three column table
+to position text at the left, center, and right side of
+the footer on the page.
+This parameter lets you specify the relative sizes of the
+three columns.  The default value is
+"1 1 1".</para>
+
+<para>The parameter value must be three numbers, separated
+by white space. The first number represents the relative
+width of the inside footer for
+double-sided output.  The second number is the relative
+width of the center footer.  The third number is the
+relative width of the outside footer for
+double-sided output.
+</para>
+<para>For single-sided output, the first number is the
+relative width of left footer for left-to-right
+text direction, or the right footer for right-to-left
+text direction.  
+The third number is the
+relative width of right footer for left-to-right
+text direction, or the left footer for right-to-left
+text direction.</para>
+
+<para>The numbers are used to specify the column widths
+for the table that makes up the footer area.
+In the FO output, this looks like:
+</para>
+
+<programlisting>
+&lt;fo:table-column column-number="1" 
+    column-width="proportional-column-width(1)"/&gt;
+</programlisting>
+
+<para>
+The <literal>proportional-column-width()</literal>
+function computes a column width by dividing its
+argument by the total of the arguments for all the columns, and
+then multiplying the result by the width of the whole table
+(assuming all the column specs use the function).
+Its argument can be any positive integer or floating point number.
+Zero is an acceptable value, although some FO processors
+may warn about it, in which case using a very small number might
+be more satisfactory.
+</para>
+
+<para>For example, the value "1 2 1" means the center
+footer should have twice the width of the other areas.
+A value of "0 0 1" means the entire footer area
+is reserved for the right (or outside) footer text.
+Note that to keep the center area centered on
+the page, the left and right values must be
+the same. A specification like "1 2 3" means the
+center area is no longer centered on the page
+since the right area is three times the width of the left area.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/footer.content.properties.xml b/applications/content/template/docbook/params/footer.content.properties.xml
new file mode 100644
index 0000000..1212cbd
--- /dev/null
+++ b/applications/content/template/docbook/params/footer.content.properties.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="footer.content.properties">
+<refmeta>
+<refentrytitle>footer.content.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.content.properties</refname>
+<refpurpose>Properties of page footer content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="footer.content.properties.frag">
+<xsl:attribute-set name="footer.content.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$body.fontset"/>
+  </xsl:attribute>
+  <xsl:attribute name="margin-left">
+    <xsl:value-of select="$title.margin.left"/>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties of page footer content.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/footer.hr.xml b/applications/content/template/docbook/params/footer.hr.xml
new file mode 100644
index 0000000..d1a5bf8
--- /dev/null
+++ b/applications/content/template/docbook/params/footer.hr.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="footer.hr">
+<refmeta>
+<refentrytitle>footer.hr</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.hr</refname>
+<refpurpose>Toggle &lt;HR&gt; before footer</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="footer.hr.frag">
+<xsl:param name="footer.hr" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, an &lt;HR&gt; is generated at the bottom of each web page,
+before the footer.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/footer.rule.xml b/applications/content/template/docbook/params/footer.rule.xml
new file mode 100644
index 0000000..6b00ade
--- /dev/null
+++ b/applications/content/template/docbook/params/footer.rule.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="footer.rule">
+<refmeta>
+<refentrytitle>footer.rule</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.rule</refname>
+<refpurpose>Rule over footers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="footer.rule.frag">
+<xsl:param name="footer.rule" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a rule will be drawn above the page footers.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/footer.table.height.xml b/applications/content/template/docbook/params/footer.table.height.xml
new file mode 100644
index 0000000..2f6c45e
--- /dev/null
+++ b/applications/content/template/docbook/params/footer.table.height.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="footer.table.height">
+<refmeta>
+<refentrytitle>footer.table.height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.table.height</refname>
+<refpurpose>Specify the minimum height of the table containing the running page footers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><src:fragment xml:id="footer.table.height.frag">
+<xsl:param name="footer.table.height" >14pt</xsl:param>
+</src:fragment></refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Page footers in print output use a three column table
+to position text at the left, center, and right side of
+the footer on the page.
+This parameter lets you specify the minimum height 
+of the single row in the table.  
+Since this specifies only the minimum height,
+the table should automatically grow to fit taller content.
+The default value is "14pt".</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/footer.table.properties.xml b/applications/content/template/docbook/params/footer.table.properties.xml
new file mode 100644
index 0000000..12e67d3
--- /dev/null
+++ b/applications/content/template/docbook/params/footer.table.properties.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="footer.table.properties">
+<refmeta>
+<refentrytitle>footer.table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.table.properties</refname>
+<refpurpose>Apply properties to the footer layout table</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id='footer.table.properties.frag'>
+<xsl:attribute-set name="footer.table.properties">
+  <xsl:attribute name="table-layout">fixed</xsl:attribute>
+  <xsl:attribute name="width">100%</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties applied to the table that lays out the page footer.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/footers.on.blank.pages.xml b/applications/content/template/docbook/params/footers.on.blank.pages.xml
new file mode 100644
index 0000000..2964f78
--- /dev/null
+++ b/applications/content/template/docbook/params/footers.on.blank.pages.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="footers.on.blank.pages">
+<refmeta>
+<refentrytitle>footers.on.blank.pages</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footers.on.blank.pages</refname>
+<refpurpose>Put footers on blank pages?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="footers.on.blank.pages.frag">
+<xsl:param name="footers.on.blank.pages" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, footers will be placed on blank pages.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/footnote.font.size.xml b/applications/content/template/docbook/params/footnote.font.size.xml
new file mode 100644
index 0000000..88d0c0b
--- /dev/null
+++ b/applications/content/template/docbook/params/footnote.font.size.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="footnote.font.size">
+<refmeta>
+<refentrytitle>footnote.font.size</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footnote.font.size</refname>
+<refpurpose>The font size for footnotes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="footnote.font.size.frag"><xsl:param name="footnote.font.size">
+ <xsl:value-of select="$body.font.master * 0.8"/><xsl:text>pt</xsl:text>
+</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The footnote font size is used for...footnotes!
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/footnote.mark.properties.xml b/applications/content/template/docbook/params/footnote.mark.properties.xml
new file mode 100644
index 0000000..2dbc9c1
--- /dev/null
+++ b/applications/content/template/docbook/params/footnote.mark.properties.xml
@@ -0,0 +1,41 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="footnote.mark.properties">
+<refmeta>
+<refentrytitle>footnote.mark.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>footnote.mark.properties</refname>
+<refpurpose>Properties applied to each footnote mark
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="footnote.mark.properties.frag">
+<xsl:attribute-set name="footnote.mark.properties">
+  <xsl:attribute name="font-family"><xsl:value-of select="$body.fontset"/></xsl:attribute>
+  <xsl:attribute name="font-size">75%</xsl:attribute>
+  <xsl:attribute name="font-weight">normal</xsl:attribute>
+  <xsl:attribute name="font-style">normal</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is applied to the footnote mark used
+for each footnote.
+It should contain only inline properties.
+</para>
+
+<para>The property to make the mark a superscript is contained in the
+footnote template itself, because the current version of FOP reports
+an error if baseline-shift is used.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/footnote.number.format.xml b/applications/content/template/docbook/params/footnote.number.format.xml
new file mode 100644
index 0000000..c323720
--- /dev/null
+++ b/applications/content/template/docbook/params/footnote.number.format.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="footnote.number.format">
+<refmeta>
+<refentrytitle>footnote.number.format</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footnote.number.format</refname>
+<refpurpose>Identifies the format used for footnote numbers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="footnote.number.format.frag">
+<xsl:param name="footnote.number.format" >1</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>footnote.number.format</parameter> specifies the format
+to use for footnote numeration (1, i, I, a, or A).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/footnote.number.symbols.xml b/applications/content/template/docbook/params/footnote.number.symbols.xml
new file mode 100644
index 0000000..10ca7d3
--- /dev/null
+++ b/applications/content/template/docbook/params/footnote.number.symbols.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="footnote.number.symbols">
+<refmeta>
+<refentrytitle>footnote.number.symbols</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype"/>
+</refmeta>
+<refnamediv>
+<refname>footnote.number.symbols</refname>
+<refpurpose>Special characters to use as footnote markers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="footnote.number.symbols.frag">
+<xsl:param name="footnote.number.symbols"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>footnote.number.symbols</parameter> is not the empty string,
+footnotes will use the characters it contains as footnote symbols. For example,
+<quote>*&amp;#x2020;&amp;#x2021;&amp;#x25CA;&amp;#x2720;</quote> will identify
+footnotes with <quote>*</quote>, <quote>†</quote>, <quote>‡</quote>,
+<quote>◊</quote>, and <quote>✠</quote>. If there are more footnotes
+than symbols, the stylesheets will fall back to numbered footnotes using
+<parameter>footnote.number.format</parameter>.</para>
+
+<para>The use of symbols for footnotes depends on the ability of your
+processor (or browser) to render the symbols you select. Not all systems are
+capable of displaying the full range of Unicode characters. If the quoted characters
+in the preceding paragraph are not displayed properly, that's a good indicator
+that you may have trouble using those symbols for footnotes.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/footnote.properties.xml b/applications/content/template/docbook/params/footnote.properties.xml
new file mode 100644
index 0000000..f62adee
--- /dev/null
+++ b/applications/content/template/docbook/params/footnote.properties.xml
@@ -0,0 +1,43 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="footnote.properties">
+<refmeta>
+<refentrytitle>footnote.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>  
+<refnamediv>
+<refname>footnote.properties</refname>
+<refpurpose>Properties applied to each footnote body
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="footnote.properties.frag">
+<xsl:attribute-set name="footnote.properties">
+  <xsl:attribute name="font-family"><xsl:value-of select="$body.fontset"/></xsl:attribute>
+  <xsl:attribute name="font-size"><xsl:value-of select="$footnote.font.size"/></xsl:attribute>
+  <xsl:attribute name="font-weight">normal</xsl:attribute>
+  <xsl:attribute name="font-style">normal</xsl:attribute>
+  <xsl:attribute name="text-align"><xsl:value-of select="$alignment"/></xsl:attribute>
+  <xsl:attribute name="start-indent">0pt</xsl:attribute>
+  <xsl:attribute name="text-indent">0pt</xsl:attribute>
+  <xsl:attribute name="hyphenate"><xsl:value-of select="$hyphenate"/></xsl:attribute>
+  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
+  <xsl:attribute name="linefeed-treatment">treat-as-space</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is applied to the footnote-block 
+for each footnote.
+It can be used to set the
+font-size, font-family, and other inheritable properties that will be
+applied to all footnotes.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/footnote.sep.leader.properties.xml b/applications/content/template/docbook/params/footnote.sep.leader.properties.xml
new file mode 100644
index 0000000..27f9489
--- /dev/null
+++ b/applications/content/template/docbook/params/footnote.sep.leader.properties.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="footnote.sep.leader.properties">
+<refmeta>
+<refentrytitle>footnote.sep.leader.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footnote.sep.leader.properties</refname>
+<refpurpose>Properties associated with footnote separators</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="footnote.sep.leader.properties.frag">
+<xsl:attribute-set name="footnote.sep.leader.properties">
+  <xsl:attribute name="color">black</xsl:attribute>
+  <xsl:attribute name="leader-pattern">rule</xsl:attribute>
+  <xsl:attribute name="leader-length">1in</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for the rule line that separates the
+footnotes from the body text.
+These are properties applied to the fo:leader used as
+the separator.
+</para>
+<para>If you want to do more than just set properties on
+the leader element, then you can customize the template
+named <literal>footnote.separator</literal> in 
+<filename>fo/pagesetup.xsl</filename>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/fop.extensions.xml b/applications/content/template/docbook/params/fop.extensions.xml
new file mode 100644
index 0000000..e122368
--- /dev/null
+++ b/applications/content/template/docbook/params/fop.extensions.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="fop.extensions">
+<refmeta>
+<refentrytitle>fop.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>fop.extensions</refname>
+<refpurpose>Enable extensions for FOP version 0.20.5 and earlier</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="fop.extensions.frag"><xsl:param name="fop.extensions" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extensions intended for
+<link xlink:href="http://xml.apache.org/fop/">FOP</link>
+version 0.20.5 and earlier will be used.
+At present, this consists of PDF bookmarks.
+</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported.</para>
+
+<para>If you are using a version of FOP beyond
+version 0.20.5, then use the <parameter>fop1.extensions</parameter> parameter
+instead.
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/fop1.extensions.xml b/applications/content/template/docbook/params/fop1.extensions.xml
new file mode 100644
index 0000000..dcbcf5b
--- /dev/null
+++ b/applications/content/template/docbook/params/fop1.extensions.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="fop1.extensions">
+<refmeta>
+<refentrytitle>fop1.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>fop1.extensions</refname>
+<refpurpose>Enable extensions for FOP version 0.90 and later</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="fop1.extensions.frag"><xsl:param name="fop1.extensions" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extensions for 
+<link xlink:href="http://xml.apache.org/fop/">FOP</link>
+version 0.90 and later will be used.
+</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported.</para>
+
+<para>The original <parameter>fop.extensions</parameter> parameter
+should still be used for FOP version 0.20.5 and earlier.
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/formal.object.properties.xml b/applications/content/template/docbook/params/formal.object.properties.xml
new file mode 100644
index 0000000..f36aeaf
--- /dev/null
+++ b/applications/content/template/docbook/params/formal.object.properties.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="formal.object.properties">
+<refmeta>
+<refentrytitle>formal.object.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.object.properties</refname>
+<refpurpose>Properties associated with a formal object such as a figure, or other component that has a title</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="formal.object.properties.frag">
+<xsl:attribute-set name="formal.object.properties">
+  <xsl:attribute name="space-before.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">2em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">2em</xsl:attribute>
+  <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for formal objects in docbook. Specify the spacing
+before and after the object.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/formal.procedures.xml b/applications/content/template/docbook/params/formal.procedures.xml
new file mode 100644
index 0000000..4f10885
--- /dev/null
+++ b/applications/content/template/docbook/params/formal.procedures.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="formal.procedures">
+<refmeta>
+<refentrytitle>formal.procedures</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.procedures</refname>
+<refpurpose>Selects formal or informal procedures</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="formal.procedures.frag">
+<xsl:param name="formal.procedures" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Formal procedures are numbered and always have a title.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/formal.title.placement.xml b/applications/content/template/docbook/params/formal.title.placement.xml
new file mode 100644
index 0000000..e56f200
--- /dev/null
+++ b/applications/content/template/docbook/params/formal.title.placement.xml
@@ -0,0 +1,41 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="formal.title.placement">
+<refmeta>
+<refentrytitle>formal.title.placement</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">table</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.title.placement</refname>
+<refpurpose>Specifies where formal object titles should occur</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="formal.title.placement.frag">
+<xsl:param name="formal.title.placement">
+figure before
+example before
+equation before
+table before
+procedure before
+task before
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies where formal object titles should occur. For each formal object
+type (<tag>figure</tag>,
+<tag>example</tag>,
+<tag>equation</tag>,
+<tag>table</tag>, and <tag>procedure</tag>)
+you can specify either the keyword
+<quote><literal>before</literal></quote> or
+<quote><literal>after</literal></quote>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/formal.title.properties.xml b/applications/content/template/docbook/params/formal.title.properties.xml
new file mode 100644
index 0000000..898d572
--- /dev/null
+++ b/applications/content/template/docbook/params/formal.title.properties.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="formal.title.properties">
+<refmeta>
+<refentrytitle>formal.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>formal.title.properties</refname>
+<refpurpose>Style the title element of formal object such as a figure.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="formal.title.properties.frag">
+<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">0.4em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">0.6em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">0.8em</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify how the title should be styled. Specify the font size and weight of the title of the formal object.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/funcsynopsis.decoration.xml b/applications/content/template/docbook/params/funcsynopsis.decoration.xml
new file mode 100644
index 0000000..44037c3
--- /dev/null
+++ b/applications/content/template/docbook/params/funcsynopsis.decoration.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="funcsynopsis.decoration">
+<refmeta>
+<refentrytitle>funcsynopsis.decoration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>funcsynopsis.decoration</refname>
+<refpurpose>Decorate elements of a <tag>funcsynopsis</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="funcsynopsis.decoration.frag">
+<xsl:param name="funcsynopsis.decoration" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, elements of the <tag>funcsynopsis</tag> will be
+decorated (e.g. rendered as bold or italic text). The decoration is controlled by
+templates that can be redefined in a customization layer.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/funcsynopsis.style.xml b/applications/content/template/docbook/params/funcsynopsis.style.xml
new file mode 100644
index 0000000..fc3ad85
--- /dev/null
+++ b/applications/content/template/docbook/params/funcsynopsis.style.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="funcsynopsis.style">
+<refmeta>
+<refentrytitle>funcsynopsis.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ansi</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kr</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>funcsynopsis.style</refname>
+<refpurpose>What style of <tag>funcsynopsis</tag> should be generated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="funcsynopsis.style.frag"><xsl:param name="funcsynopsis.style">kr</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>funcsynopsis.style</parameter> is <literal>ansi</literal>,
+ANSI-style function synopses are generated for a
+<tag>funcsynopsis</tag>, otherwise K&amp;R-style
+function synopses are generated.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/function.parens.xml b/applications/content/template/docbook/params/function.parens.xml
new file mode 100644
index 0000000..15d6df0
--- /dev/null
+++ b/applications/content/template/docbook/params/function.parens.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="function.parens">
+<refmeta>
+<refentrytitle>function.parens</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>function.parens</refname>
+<refpurpose>Generate parens after a function?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="function.parens.frag">
+<xsl:param name="function.parens" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the formatting of a <tag>function</tag> element
+will include generated parentheses.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/generate.consistent.ids.xml b/applications/content/template/docbook/params/generate.consistent.ids.xml
new file mode 100644
index 0000000..249cb8c
--- /dev/null
+++ b/applications/content/template/docbook/params/generate.consistent.ids.xml
@@ -0,0 +1,53 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="generate.consistent.ids">
+<refmeta>
+<refentrytitle>generate.consistent.ids</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.consistent.ids</refname>
+<refpurpose>Generate consistent id values if document is unchanged</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="generate.consistent.ids.frag">
+<xsl:param name="generate.consistent.ids" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When the stylesheet assigns an id value to an output element,
+the generate-id() function may be used.  That function may not
+produce consistent values between runs.  Version control
+systems may misidentify the changing id values as changes
+to the document.</para>
+
+<para>If you set this parameter's value to 1, then the
+template named <literal>object.id</literal> will replace
+the use of the function generate-id() with
+<literal>&lt;xsl:number level="multiple" count="*"/&gt;</literal>.
+This counts preceding elements to generate a unique number for
+the id value.</para>
+
+<caution>
+<para>This param does not associate permanent unique id values
+with particular elements.
+The id values are consistent only as long as the document
+structure does not change.
+If the document structure changes, then the counting
+of elements changes, and all id values after
+the first such change may be different, even when there is
+no change to the element itself or its output.
+</para>
+</caution>
+
+<para>The default value of this parameter is zero, so generate-id() is used
+by default.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/generate.css.header.xml b/applications/content/template/docbook/params/generate.css.header.xml
new file mode 100644
index 0000000..05965c1
--- /dev/null
+++ b/applications/content/template/docbook/params/generate.css.header.xml
@@ -0,0 +1,40 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="generate.css.header">
+<refmeta>
+<refentrytitle>generate.css.header</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.css.header</refname>
+<refpurpose>Insert generated CSS styles in HEAD element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="generate.css.header.frag">
+<xsl:param name="generate.css.header" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The stylesheets are capable of generating both default
+and custom CSS stylesheet files.  The parameters 
+<parameter>make.clean.html</parameter>,
+<parameter>docbook.css.source</parameter>, and
+<parameter>custom.css.source</parameter> control that feature.</para>
+
+<para>If you require that CSS styles reside in the HTML 
+<tag>HEAD</tag> element instead of external CSS files,
+then set the <parameter>generate.css.header</parameter>
+parameter to nonzero (it is zero by default).
+Then instead of generating the CSS in external files,
+they are wrapped in <tag>style</tag> elements in
+the <tag>HEAD</tag> element of each HTML output file.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/generate.id.attributes.xml b/applications/content/template/docbook/params/generate.id.attributes.xml
new file mode 100644
index 0000000..6326841
--- /dev/null
+++ b/applications/content/template/docbook/params/generate.id.attributes.xml
@@ -0,0 +1,59 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="generate.id.attributes">
+<refmeta>
+<refentrytitle>generate.id.attributes</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.id.attributes</refname>
+<refpurpose>Generate ID attributes on container elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="generate.id.attributes.frag">
+<xsl:param name="generate.id.attributes" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the HTML stylesheet will generate ID attributes on
+containers. For example, the markup:</para>
+
+<screen>&lt;section id="foo"&gt;&lt;title&gt;Some Title&lt;/title&gt;
+&lt;para&gt;Some para.&lt;/para&gt;
+&lt;/section&gt;</screen>
+
+<para>might produce:</para>
+
+<screen>&lt;div class="section" id="foo"&gt;
+&lt;h2&gt;Some Title&lt;/h2&gt;
+&lt;p&gt;Some para.&lt;/p&gt;
+&lt;/div&gt;</screen>
+
+<para>The alternative is to generate anchors:</para>
+
+<screen>&lt;div class="section"&gt;
+&lt;h2&gt;&lt;a name="foo"&gt;&lt;/a&gt;Some Title&lt;/h2&gt;
+&lt;p&gt;Some para.&lt;/p&gt;
+&lt;/div&gt;</screen>
+
+<para>Because the <tag class="attribute">name</tag> attribute of
+the <tag>a</tag> element and the <tag class="attribute">id</tag>
+attribute of other tags are both of type <quote>ID</quote>, producing both
+generates invalid documents.</para>
+
+<para>As of version 1.50, you can use this switch to control which type of
+identifier is generated. For backwards-compatibility, generating
+<tag>a</tag> anchors is preferred.</para>
+
+<para>Note: at present, this switch is incompletely implemented.
+Disabling ID attributes will suppress them, but enabling ID attributes
+will not suppress the anchors.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/generate.index.xml b/applications/content/template/docbook/params/generate.index.xml
new file mode 100644
index 0000000..8cab350
--- /dev/null
+++ b/applications/content/template/docbook/params/generate.index.xml
@@ -0,0 +1,25 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="generate.index">
+<refmeta>
+<refentrytitle>generate.index</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.index</refname>
+<refpurpose>Do you want an index?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="generate.index.frag"><xsl:param name="generate.index" select="1"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specify if an index should be generated. </para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/generate.legalnotice.link.xml b/applications/content/template/docbook/params/generate.legalnotice.link.xml
new file mode 100644
index 0000000..534e050
--- /dev/null
+++ b/applications/content/template/docbook/params/generate.legalnotice.link.xml
@@ -0,0 +1,72 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="generate.legalnotice.link">
+<refmeta>
+<refentrytitle>generate.legalnotice.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.legalnotice.link</refname>
+<refpurpose>Write legalnotice to separate chunk and generate link?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="generate.legalnotice.link.frag"><xsl:param name="generate.legalnotice.link" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>generate.legalnotice.link</parameter>
+is non-zero, the stylesheet:
+
+<itemizedlist>
+  <listitem>
+    <para>writes the contents of <tag>legalnotice</tag> to a separate
+    HTML file</para>
+  </listitem>
+  <listitem>
+    <para>inserts a hyperlink to the <tag>legalnotice</tag> file</para>
+  </listitem>
+  <listitem>
+    <para>adds (in the HTML <literal>head</literal>) either a single
+    <literal>link</literal> or element or multiple
+    <literal>link</literal> elements (depending on the value of the
+    <parameter>html.head.legalnotice.link.multiple</parameter>
+    parameter), with the value or values derived from the
+    <parameter>html.head.legalnotice.link.types</parameter>
+    parameter</para>
+  </listitem>
+  </itemizedlist>
+
+  Otherwise, if <parameter>generate.legalnotice.link</parameter> is
+  zero, <tag>legalnotice</tag> contents are rendered on the title
+  page.</para>
+
+<para>The name of the separate HTML file is computed as follows:
+
+<orderedlist>
+<listitem>
+  <para>If a filename is given by the <tag class="xmlpi">dbhtml filename</tag> 
+processing instruction, that filename is used.</para>
+</listitem>
+<listitem>
+  <para>If the legalnotice has an <tag class="attribute">id</tag>/<tag class="attribute">xml:id</tag> 
+attribute, and if <parameter>use.id.as.filename</parameter> != 0, the filename 
+is the concatenation of the id value and the value of the <parameter>html.ext</parameter> 
+parameter.</para>
+</listitem>
+<listitem>
+  <para>If the legalnotice does not have an <tag class="attribute">id</tag>/<tag class="attribute">xml:id</tag>
+ attribute, or if <parameter>use.id.as.filename</parameter> = 0, the filename is the concatenation of "ln-", 
+auto-generated id value, and <parameter>html.ext</parameter> value.
+  </para>
+</listitem>
+</orderedlist>
+
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/generate.manifest.xml b/applications/content/template/docbook/params/generate.manifest.xml
new file mode 100644
index 0000000..b561c36
--- /dev/null
+++ b/applications/content/template/docbook/params/generate.manifest.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="generate.manifest">
+  <refmeta>
+    <refentrytitle>generate.manifest</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>generate.manifest</refname>
+    <refpurpose>Generate a manifest file?</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <src:fragment xml:id="generate.manifest.frag"><xsl:param name="generate.manifest" select="0"/></src:fragment>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>If non-zero, a list of HTML files generated by the
+      stylesheet transformation is written to the file named by
+      the <parameter>manifest</parameter> parameter.</para>
+
+  </refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/generate.meta.abstract.xml b/applications/content/template/docbook/params/generate.meta.abstract.xml
new file mode 100644
index 0000000..d3ca138
--- /dev/null
+++ b/applications/content/template/docbook/params/generate.meta.abstract.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="generate.meta.abstract">
+<refmeta>
+<refentrytitle>generate.meta.abstract</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.meta.abstract</refname>
+<refpurpose>Generate HTML <tag>META</tag> element from <tag>abstract</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="generate.meta.abstract.frag">
+<xsl:param name="generate.meta.abstract" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, document abstracts will be reproduced in the HTML
+<literal>head</literal>, with <literal>>meta name="description" content="..."</literal></para>
+
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/generate.revhistory.link.xml b/applications/content/template/docbook/params/generate.revhistory.link.xml
new file mode 100644
index 0000000..bd70cd9
--- /dev/null
+++ b/applications/content/template/docbook/params/generate.revhistory.link.xml
@@ -0,0 +1,50 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="generate.revhistory.link">
+<refmeta>
+<refentrytitle>generate.revhistory.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.revhistory.link</refname>
+<refpurpose>Write revhistory to separate chunk and generate link?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="generate.revhistory.link.frag"><xsl:param name="generate.revhistory.link" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the contents of <tag>revhistory</tag> are written
+to a separate HTML file and a link to the file is
+generated. Otherwise, <tag>revhistory</tag> contents are rendered on
+the title page.</para>
+
+<para>The name of the separate HTML file is computed as follows:
+
+<orderedlist>
+<listitem>
+  <para>If a filename is given by the <tag class="xmlpi">dbhtml filename</tag> processing instruction, 
+that filename is used.</para>
+</listitem>
+<listitem>
+  <para>If the revhistory has an <tag class="attribute">id</tag>/<tag class="attribute">xml:id</tag> 
+attribute, and if <parameter>use.id.as.filename</parameter> != 0, the filename is the concatenation of 
+the id value and the value of the <parameter>html.ext</parameter> parameter.</para>
+</listitem>
+<listitem>
+  <para>If the revhistory does not have an <tag class="attribute">id</tag>/<tag class="attribute">xml:id</tag> 
+attribute, or if <parameter>use.id.as.filename</parameter> = 0, the filename is the concatenation of "rh-", 
+auto-generated id value, and <parameter>html.ext</parameter> value.
+  </para>
+</listitem>
+</orderedlist>
+
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/generate.section.toc.level.xml b/applications/content/template/docbook/params/generate.section.toc.level.xml
new file mode 100644
index 0000000..227735a
--- /dev/null
+++ b/applications/content/template/docbook/params/generate.section.toc.level.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="generate.section.toc.level">
+<refmeta>
+<refentrytitle>generate.section.toc.level</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.section.toc.level</refname>
+<refpurpose>Control depth of TOC generation in sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="generate.section.toc.level.frag">
+<xsl:param name="generate.section.toc.level" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>generate.section.toc.level</parameter> parameter
+controls the depth of <tag>section</tag> in which TOCs will be generated. Note
+that this is related to, but not the same as
+<parameter>toc.section.depth</parameter>, which controls the depth to
+which TOC entries will be generated in a given TOC.</para>
+<para>If, for example, <parameter>generate.section.toc.level</parameter>
+is <literal>3</literal>, TOCs will be generated in first, second, and third
+level sections, but not in fourth level sections.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/generate.toc.xml b/applications/content/template/docbook/params/generate.toc.xml
new file mode 100644
index 0000000..d23c45e
--- /dev/null
+++ b/applications/content/template/docbook/params/generate.toc.xml
@@ -0,0 +1,108 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="generate.toc">
+<refmeta>
+<refentrytitle>generate.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">table</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>generate.toc</refname>
+<refpurpose>Control generation of ToCs and LoTs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="generate.toc.frag">
+<xsl:param condition="html" name="generate.toc">
+appendix  toc,title
+article/appendix  nop
+article   toc,title
+book      toc,title,figure,table,example,equation
+chapter   toc,title
+part      toc,title
+preface   toc,title
+qandadiv  toc
+qandaset  toc
+reference toc,title
+sect1     toc
+sect2     toc
+sect3     toc
+sect4     toc
+sect5     toc
+section   toc
+set       toc,title
+</xsl:param>
+<xsl:param condition="fo" name="generate.toc">
+/appendix toc,title
+article/appendix  nop
+/article  toc,title
+book      toc,title,figure,table,example,equation
+/chapter  toc,title
+part      toc,title
+/preface  toc,title
+reference toc,title
+/sect1    toc
+/sect2    toc
+/sect3    toc
+/sect4    toc
+/sect5    toc
+/section  toc
+set       toc,title
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter has a structured value. It is a table of space-delimited
+path/value pairs. Each path identifies some element in the source document
+using a restricted subset of XPath (only the implicit child axis, no wildcards,
+no predicates). Paths can be either relative or absolute.</para>
+
+<para>When processing a particular element, the stylesheets consult this table to
+determine if a ToC (or LoT(s)) should be generated.</para>
+
+<para>For example, consider the entry:</para>
+
+<screen>book toc,figure</screen>
+
+<para>This indicates that whenever a <tag>book</tag> is formatted, a
+Table Of Contents and a List of Figures should be generated. Similarly,</para>
+
+<screen>/chapter toc</screen>
+
+<para>indicates that whenever a document <emphasis>that has a root
+of</emphasis> <tag>chapter</tag> is formatted, a Table of
+Contents should be generated. The entry <literal>chapter</literal> would match
+all chapters, but <literal>/chapter</literal> matches only <tag>chapter</tag>
+document elements.</para>
+
+<para>Generally, the longest match wins. So, for example, if you want to distinguish
+articles in books from articles in parts, you could use these two entries:</para>
+
+<screen>book/article toc,figure
+part/article toc</screen>
+
+<para>Note that an article in a part can never match a <literal>book/article</literal>,
+so if you want nothing to be generated for articles in parts, you can simply leave
+that rule out.</para>
+
+<para>If you want to leave the rule in, to make it explicit that you're turning
+something off, use the value <quote>nop</quote>. For example, the following
+entry disables ToCs and LoTs for articles:</para>
+
+<screen>article nop</screen>
+
+<para>Do not simply leave the word <quote>article</quote> in the file
+without a matching value. That'd be just begging the silly little
+path/value parser to get confused.</para>
+
+<para>Section ToCs are further controlled by the
+<parameter>generate.section.toc.level</parameter> parameter.
+For a given section level to have a ToC, it must have both an entry in 
+<parameter>generate.toc</parameter> and be within the range enabled by
+<parameter>generate.section.toc.level</parameter>.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/glossary.as.blocks.xml b/applications/content/template/docbook/params/glossary.as.blocks.xml
new file mode 100644
index 0000000..e18ed19
--- /dev/null
+++ b/applications/content/template/docbook/params/glossary.as.blocks.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="glossary.as.blocks">
+<refmeta>
+<refentrytitle>glossary.as.blocks</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossary.as.blocks</refname>
+<refpurpose>Present glossarys using blocks instead of lists?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="glossary.as.blocks.frag">
+<xsl:param name="glossary.as.blocks" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>glossary</tag>s will be formatted as
+blocks.</para>
+
+<para>If you have long <tag>glossterm</tag>s, proper list
+markup in the FO case may produce unattractive lists. By setting this
+parameter, you can force the stylesheets to produce block markup
+instead of proper lists.</para>
+
+<para>You can override this setting with a processing instruction as the
+child of <tag>glossary</tag>: <tag class="xmlpi">dbfo
+glossary-presentation="blocks"</tag> or <tag class="xmlpi">dbfo
+glossary-presentation="list"</tag></para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/glossary.collection.xml b/applications/content/template/docbook/params/glossary.collection.xml
new file mode 100644
index 0000000..9db037c
--- /dev/null
+++ b/applications/content/template/docbook/params/glossary.collection.xml
@@ -0,0 +1,271 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="glossary.collection">
+<refmeta>
+<refentrytitle>glossary.collection</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossary.collection</refname>
+<refpurpose>Name of the glossary collection file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="glossary.collection.frag">
+<xsl:param name="glossary.collection"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Glossaries maintained independently across a set of documents
+are likely to become inconsistent unless considerable effort is
+expended to keep them in sync. It makes much more sense, usually, to
+store all of the glossary entries in a single place and simply
+<quote>extract</quote> the ones you need in each document.</para>
+
+<para>That's the purpose of the
+<parameter>glossary.collection</parameter> parameter. To setup a global
+glossary <quote>database</quote>, follow these steps:</para>
+
+<refsection><info><title>Setting Up the Glossary Database</title></info>
+
+<para>First, create a stand-alone glossary document that contains all of
+the entries that you wish to reference. Make sure that each glossary
+entry has an ID.</para>
+
+<para>Here's an example glossary:</para>
+
+<informalexample>
+<programlisting>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE glossary
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"&gt;
+&lt;glossary&gt;
+&lt;glossaryinfo&gt;
+&lt;editor&gt;&lt;firstname&gt;Eric&lt;/firstname&gt;&lt;surname&gt;Raymond&lt;/surname&gt;&lt;/editor&gt;
+&lt;title&gt;Jargon File 4.2.3 (abridged)&lt;/title&gt;
+&lt;releaseinfo&gt;Just some test data&lt;/releaseinfo&gt;
+&lt;/glossaryinfo&gt;
+
+&lt;glossdiv&gt;&lt;title&gt;0&lt;/title&gt;
+
+&lt;glossentry&gt;
+&lt;glossterm&gt;0&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;Numeric zero, as opposed to the letter `O' (the 15th letter of
+the English alphabet). In their unmodified forms they look a lot
+alike, and various kluges invented to make them visually distinct have
+compounded the confusion. If your zero is center-dotted and letter-O
+is not, or if letter-O looks almost rectangular but zero looks more
+like an American football stood on end (or the reverse), you're
+probably looking at a modern character display (though the dotted zero
+seems to have originated as an option on IBM 3270 controllers). If
+your zero is slashed but letter-O is not, you're probably looking at
+an old-style ASCII graphic set descended from the default typewheel on
+the venerable ASR-33 Teletype (Scandinavians, for whom /O is a letter,
+curse this arrangement). (Interestingly, the slashed zero long
+predates computers; Florian Cajori's monumental "A History of
+Mathematical Notations" notes that it was used in the twelfth and
+thirteenth centuries.) If letter-O has a slash across it and the zero
+does not, your display is tuned for a very old convention used at IBM
+and a few other early mainframe makers (Scandinavians curse &lt;emphasis&gt;this&lt;/emphasis&gt;
+arrangement even more, because it means two of their letters collide).
+Some Burroughs/Unisys equipment displays a zero with a &lt;emphasis&gt;reversed&lt;/emphasis&gt;
+slash. Old CDC computers rendered letter O as an unbroken oval and 0
+as an oval broken at upper right and lower left. And yet another
+convention common on early line printers left zero unornamented but
+added a tail or hook to the letter-O so that it resembled an inverted
+Q or cursive capital letter-O (this was endorsed by a draft ANSI
+standard for how to draw ASCII characters, but the final standard
+changed the distinguisher to a tick-mark in the upper-left corner).
+Are we sufficiently confused yet?&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+
+&lt;glossentry&gt;
+&lt;glossterm&gt;1TBS&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para role="accidence"&gt;
+&lt;phrase role="pronounce"&gt;&lt;/phrase&gt;
+&lt;phrase role="partsofspeach"&gt;n&lt;/phrase&gt;
+&lt;/para&gt;
+&lt;para&gt;The "One True Brace Style"&lt;/para&gt;
+&lt;glossseealso&gt;indent style&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+
+&lt;!-- ... --&gt;
+
+&lt;/glossdiv&gt;
+
+&lt;!-- ... --&gt;
+
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+
+</refsection>
+
+<refsection><info><title>Marking Up Glossary Terms</title></info>
+
+<para>That takes care of the glossary database, now you have to get the entries
+into your document. Unlike bibliography entries, which can be empty, creating
+<quote>placeholder</quote> glossary entries would be very tedious. So instead,
+support for <parameter>glossary.collection</parameter> relies on implicit linking.</para>
+
+<para>In your source document, simply use <tag>firstterm</tag> and
+<tag>glossterm</tag> to identify the terms you wish to have included
+in the glossary. The stylesheets assume that you will either set the
+<tag class="attribute">baseform</tag> attribute correctly, or that the
+content of the element exactly matches a term in your glossary.</para>
+
+<para>If you're using a <parameter>glossary.collection</parameter>, don't
+make explicit links on the terms in your document.</para>
+
+<para>So, in your document, you might write things like this:</para>
+
+<informalexample>
+<programlisting>&lt;para&gt;This is dummy text, without any real meaning.
+The point is simply to reference glossary terms like &lt;glossterm&gt;0&lt;/glossterm&gt;
+and the &lt;firstterm baseform="1TBS"&gt;One True Brace Style (1TBS)&lt;/firstterm&gt;.
+The &lt;glossterm&gt;1TBS&lt;/glossterm&gt;, as you can probably imagine, is a nearly
+religious issue.&lt;/para&gt;</programlisting>
+</informalexample>
+
+<para>If you set the <parameter>firstterm.only.link</parameter> parameter,
+only the terms marked with <tag>firstterm</tag> will be links.
+Otherwise, all the terms will be linked.</para>
+
+</refsection>
+
+<refsection><info><title>Marking Up the Glossary</title></info>
+
+<para>The glossary itself has to be identified for the stylesheets. For lack
+of a better choice, the <tag class="attribute">role</tag> is used.
+To identify the glossary as the target for automatic processing, set
+the role to <quote><literal>auto</literal></quote>. The title of this
+glossary (and any other information from the <tag>glossaryinfo</tag>
+that's rendered by your stylesheet) will be displayed, but the entries will
+come from the database.
+</para>
+
+<para>Unfortunately, the glossary can't be empty, so you must put in
+at least one <tag>glossentry</tag>. The content of this entry
+is irrelevant, it will not be rendered:</para>
+
+<informalexample>
+<programlisting>&lt;glossary role="auto"&gt;
+&lt;glossentry&gt;
+&lt;glossterm&gt;Irrelevant&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;If you can see this, the document was processed incorrectly. Use
+the &lt;parameter&gt;glossary.collection&lt;/parameter&gt; parameter.&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+
+<para>What about glossary divisions? If your glossary database has glossary
+divisions <emphasis>and</emphasis> your automatic glossary contains at least
+one <tag>glossdiv</tag>, the automic glossary will have divisions.
+If the <tag>glossdiv</tag> is missing from either location, no divisions
+will be rendered.</para>
+
+<para>Glossary entries (and divisions, if appropriate) in the glossary will
+occur in precisely the order they occur in your database.</para>
+
+</refsection>
+
+<refsection><info><title>Formatting the Document</title></info>
+
+<para>Finally, when you are ready to format your document, simply set the
+<parameter>glossary.collection</parameter> parameter (in either a
+customization layer or directly through your processor's interface) to
+point to your global glossary.</para>
+
+<para>A relative path in the parameter is interpreted in one
+of two ways:</para>
+<orderedlist numeration="loweralpha">
+  <listitem>
+    <para>If the parameter <literal>glossterm.auto.link</literal>
+    is set to zero, then the path is relative to the file containing
+    the empty <tag>glossary</tag> element in the document.</para>
+  </listitem>
+  <listitem>
+    <para>If the parameter <literal>glossterm.auto.link</literal>
+    is set to non-zero, then the path is relative to the file containing
+    the first inline <tag>glossterm</tag> or
+    <tag>firstterm</tag> in the document to be linked.</para>
+  </listitem>
+</orderedlist>
+<para>Once the collection file is opened by the first instance described
+above, it stays open for the current document
+and the relative path is not reinterpreted again.</para>
+
+<para>The stylesheets will format the glossary in your document as if
+all of the entries implicilty referenced appeared there literally.</para>
+</refsection>
+
+<refsection><info><title>Limitations</title></info>
+
+<para>Glossary cross-references <emphasis>within the glossary</emphasis> are
+not supported. For example, this <emphasis>will not</emphasis> work:</para>
+
+<informalexample>
+<programlisting>&lt;glossentry&gt;
+&lt;glossterm&gt;gloss-1&lt;/glossterm&gt;
+&lt;glossdef&gt;&lt;para&gt;A description that references &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/para&gt;
+&lt;glossseealso&gt;gloss-2&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;</programlisting>
+</informalexample>
+
+<para>If you put glossary cross-references in your glossary that way,
+you'll get the cryptic error: <computeroutput>Warning:
+glossary.collection specified, but there are 0 automatic
+glossaries</computeroutput>.</para>
+
+<para>Instead, you must do two things:</para>
+
+<orderedlist>
+<listitem>
+<para>Markup your glossary using <tag>glossseealso</tag>:</para>
+
+<informalexample>
+<programlisting>&lt;glossentry&gt;
+&lt;glossterm&gt;gloss-1&lt;/glossterm&gt;
+&lt;glossdef&gt;&lt;para&gt;A description that references &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/para&gt;
+&lt;glossseealso&gt;gloss-2&lt;/glossseealso&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;</programlisting>
+</informalexample>
+</listitem>
+
+<listitem>
+<para>Make sure there is at least one <tag>glossterm</tag> reference to
+<glossterm>gloss-2</glossterm> <emphasis>in your document</emphasis>. The
+easiest way to do that is probably within a <tag>remark</tag> in your
+automatic glossary:</para>
+
+<informalexample>
+<programlisting>&lt;glossary role="auto"&gt;
+&lt;remark&gt;Make sure there's a reference to &lt;glossterm&gt;gloss-2&lt;/glossterm&gt;.&lt;/remark&gt;
+&lt;glossentry&gt;
+&lt;glossterm&gt;Irrelevant&lt;/glossterm&gt;
+&lt;glossdef&gt;
+&lt;para&gt;If you can see this, the document was processed incorrectly. Use
+the &lt;parameter&gt;glossary.collection&lt;/parameter&gt; parameter.&lt;/para&gt;
+&lt;/glossdef&gt;
+&lt;/glossentry&gt;
+&lt;/glossary&gt;</programlisting>
+</informalexample>
+</listitem>
+</orderedlist>
+</refsection>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/glossary.sort.xml b/applications/content/template/docbook/params/glossary.sort.xml
new file mode 100644
index 0000000..216130a
--- /dev/null
+++ b/applications/content/template/docbook/params/glossary.sort.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="glossary.sort">
+<refmeta>
+<refentrytitle>glossary.sort</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossary.sort</refname>
+<refpurpose>Sort glossentry elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="glossary.sort.frag">
+<xsl:param name="glossary.sort" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then the glossentry elements within a
+glossary, glossdiv, or glosslist are sorted on the glossterm, using
+the current lang setting.  If zero (the default), then
+glossentry elements are not sorted and are presented
+in document order.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/glossdef.block.properties.xml b/applications/content/template/docbook/params/glossdef.block.properties.xml
new file mode 100644
index 0000000..4fb481f
--- /dev/null
+++ b/applications/content/template/docbook/params/glossdef.block.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="glossdef.block.properties">
+<refmeta>
+<refentrytitle>glossdef.block.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossdef.block.properties</refname>
+<refpurpose>To add properties to the block of a glossary definition.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="glossdef.block.properties.frag"><xsl:attribute-set name="glossdef.block.properties">
+  <xsl:attribute name="margin-{$direction.align.start}">.25in</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+glossary definition in a glossary when
+the <parameter>glossary.as.blocks</parameter> parameter
+is non-zero.
+Use this attribute-set to set the space above and below,
+any font properties,
+and any indent for the glossary definition.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/glossdef.list.properties.xml b/applications/content/template/docbook/params/glossdef.list.properties.xml
new file mode 100644
index 0000000..ba71578
--- /dev/null
+++ b/applications/content/template/docbook/params/glossdef.list.properties.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="glossdef.list.properties">
+<refmeta>
+<refentrytitle>glossdef.list.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossdef.list.properties</refname>
+<refpurpose>To add properties to the glossary definition in a list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="glossdef.list.properties.frag">
+<xsl:attribute-set name="glossdef.list.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+glossary definition in a glossary when
+the <parameter>glossary.as.blocks</parameter> parameter
+is zero.
+Use this attribute-set to set font properties, for example.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/glossentry.list.item.properties.xml b/applications/content/template/docbook/params/glossentry.list.item.properties.xml
new file mode 100644
index 0000000..6830f17
--- /dev/null
+++ b/applications/content/template/docbook/params/glossentry.list.item.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="glossentry.list.item.properties">
+<refmeta>
+<refentrytitle>glossentry.list.item.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossentry.list.item.properties</refname>
+<refpurpose>To add properties to each glossentry in a list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="glossentry.list.item.properties.frag"><xsl:attribute-set name="glossentry.list.item.properties">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the fo:list-item containing a
+glossentry in a glossary when the <parameter>glossary.as.blocks</parameter> parameter
+is zero.
+Use this attribute-set to set
+spacing between entries, for example.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/glossentry.show.acronym.xml b/applications/content/template/docbook/params/glossentry.show.acronym.xml
new file mode 100644
index 0000000..9736438
--- /dev/null
+++ b/applications/content/template/docbook/params/glossentry.show.acronym.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="glossentry.show.acronym">
+<refmeta>
+<refentrytitle>glossentry.show.acronym</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">primary</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossentry.show.acronym</refname>
+<refpurpose>Display <tag>glossentry</tag> acronyms?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="glossentry.show.acronym.frag">
+<xsl:param name="glossentry.show.acronym">no</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A setting of <quote>yes</quote> means they should be displayed;
+<quote>no</quote> means they shouldn't. If <quote>primary</quote> is used,
+then they are shown as the primary text for the entry.</para>
+
+<note>
+<para>This setting controls both <tag>acronym</tag> and
+<tag>abbrev</tag> elements in the <tag>glossentry</tag>.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/glosslist.as.blocks.xml b/applications/content/template/docbook/params/glosslist.as.blocks.xml
new file mode 100644
index 0000000..d720837
--- /dev/null
+++ b/applications/content/template/docbook/params/glosslist.as.blocks.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="glosslist.as.blocks">
+<refmeta>
+<refentrytitle>glosslist.as.blocks</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glosslist.as.blocks</refname>
+<refpurpose>Use blocks for glosslists?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="glosslist.as.blocks.frag">
+<xsl:param name="glosslist.as.blocks" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>See <parameter>glossary.as.blocks</parameter>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/glossterm.auto.link.xml b/applications/content/template/docbook/params/glossterm.auto.link.xml
new file mode 100644
index 0000000..03d9a30
--- /dev/null
+++ b/applications/content/template/docbook/params/glossterm.auto.link.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="glossterm.auto.link">
+<refmeta>
+<refentrytitle>glossterm.auto.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.auto.link</refname>
+<refpurpose>Generate links from glossterm to glossentry automatically?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="glossterm.auto.link.frag">
+<xsl:param name="glossterm.auto.link" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, links from inline <tag>glossterm</tag>s to the corresponding 
+<tag>glossentry</tag> elements in a <tag>glossary</tag> or <tag>glosslist</tag> 
+will be automatically generated. This is useful when your glossterms are consistent 
+and you don't want to add links manually.</para>
+
+<para>The automatic link generation feature is not used on <tag>glossterm</tag> elements
+that have a <tag class="attribute">linkend</tag> attribute.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/glossterm.block.properties.xml b/applications/content/template/docbook/params/glossterm.block.properties.xml
new file mode 100644
index 0000000..84e6a6c
--- /dev/null
+++ b/applications/content/template/docbook/params/glossterm.block.properties.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="glossterm.block.properties">
+<refmeta>
+<refentrytitle>glossterm.block.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.block.properties</refname>
+<refpurpose>To add properties to the block of a glossentry's glossterm.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="glossterm.block.properties.frag"><xsl:attribute-set name="glossterm.block.properties">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+glossary term in a glossary when the <parameter>glossary.as.blocks</parameter> parameter
+is non-zero.
+Use this attribute-set to set the space above and below,
+font properties,
+and any indent for the glossary term.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/glossterm.list.properties.xml b/applications/content/template/docbook/params/glossterm.list.properties.xml
new file mode 100644
index 0000000..abe0d31
--- /dev/null
+++ b/applications/content/template/docbook/params/glossterm.list.properties.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="glossterm.list.properties">
+<refmeta>
+<refentrytitle>glossterm.list.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.list.properties</refname>
+<refpurpose>To add properties to the glossterm in a list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="glossterm.list.properties.frag">
+<xsl:attribute-set name="glossterm.list.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+glossary term in a glossary when the <parameter>glossary.as.blocks</parameter> parameter
+is zero.
+Use this attribute-set to set
+font properties, for example.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/glossterm.separation.xml b/applications/content/template/docbook/params/glossterm.separation.xml
new file mode 100644
index 0000000..d0d2b8d
--- /dev/null
+++ b/applications/content/template/docbook/params/glossterm.separation.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="glossterm.separation">
+<refmeta>
+<refentrytitle>glossterm.separation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.separation</refname>
+<refpurpose>Separation between glossary terms and descriptions in list mode</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="glossterm.separation.frag">
+<xsl:param name="glossterm.separation" >0.25in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the miminum horizontal
+separation between glossary terms and descriptions when
+they are presented side-by-side using lists
+when the <parameter>glossary.as.blocks</parameter>
+is zero.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/glossterm.width.xml b/applications/content/template/docbook/params/glossterm.width.xml
new file mode 100644
index 0000000..0cd3b82
--- /dev/null
+++ b/applications/content/template/docbook/params/glossterm.width.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="glossterm.width">
+<refmeta>
+<refentrytitle>glossterm.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.width</refname>
+<refpurpose>Width of glossterm in list presentation mode</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="glossterm.width.frag">
+<xsl:param name="glossterm.width" >2in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the width reserved for glossary terms when
+a list presentation is used.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/graphic.default.extension.xml b/applications/content/template/docbook/params/graphic.default.extension.xml
new file mode 100644
index 0000000..93f2983
--- /dev/null
+++ b/applications/content/template/docbook/params/graphic.default.extension.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="graphic.default.extension">
+<refmeta>
+<refentrytitle>graphic.default.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphic.default.extension</refname>
+<refpurpose>Default extension for graphic filenames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="graphic.default.extension.frag"><xsl:param name="graphic.default.extension"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If a <tag>graphic</tag> or <tag>mediaobject</tag>
+includes a reference to a filename that does not include an extension,
+and the <tag class="attribute">format</tag> attribute is
+<emphasis>unspecified</emphasis>, the default extension will be used.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/graphical.admonition.properties.xml b/applications/content/template/docbook/params/graphical.admonition.properties.xml
new file mode 100644
index 0000000..ca257d7
--- /dev/null
+++ b/applications/content/template/docbook/params/graphical.admonition.properties.xml
@@ -0,0 +1,42 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="graphical.admonition.properties">
+<refmeta>
+<refentrytitle>graphical.admonition.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphical.admonition.properties</refname>
+<refpurpose>To add properties to the outer block of a graphical admonition.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="graphical.admonition.properties.frag"><xsl:attribute-set name="graphical.admonition.properties">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the outer block containing the
+entire graphical admonition, including its title.
+It is used when the parameter
+<parameter>admon.graphics</parameter> is set to nonzero.
+Use this attribute-set to set the space above and below,
+and any indent for the whole admonition.</para>
+
+<para>In addition to these properties, a graphical admonition
+also applies the <parameter>admonition.title.properties</parameter>
+attribute-set to the title, and applies the
+<parameter>admonition.properties</parameter> attribute-set
+to the rest of the content.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/graphics.dir.xml b/applications/content/template/docbook/params/graphics.dir.xml
new file mode 100644
index 0000000..e8d83ae
--- /dev/null
+++ b/applications/content/template/docbook/params/graphics.dir.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="graphics.dir.frag">
+<xsl:param name="graphics.dir"></xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/graphicsize.extension.xml b/applications/content/template/docbook/params/graphicsize.extension.xml
new file mode 100644
index 0000000..169228a
--- /dev/null
+++ b/applications/content/template/docbook/params/graphicsize.extension.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="graphicsize.extension">
+<refmeta>
+<refentrytitle>graphicsize.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphicsize.extension</refname>
+<refpurpose>Enable the getWidth()/getDepth() extension functions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="graphicsize.extension.frag">
+<xsl:param name="graphicsize.extension" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero (and if <parameter>use.extensions</parameter> is non-zero
+and if you're using a processor that supports extension functions), the
+<function>getWidth</function> and <function>getDepth</function> functions
+will be used to extract image sizes from graphics.</para>
+
+<para>The main supported image formats are GIF, JPEG, and PNG. Somewhat cruder 
+support for EPS and PDF images is also available.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/graphicsize.use.img.src.path.xml b/applications/content/template/docbook/params/graphicsize.use.img.src.path.xml
new file mode 100644
index 0000000..aff5b30
--- /dev/null
+++ b/applications/content/template/docbook/params/graphicsize.use.img.src.path.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="graphicsize.use.img.src.path">
+<refmeta>
+<refentrytitle>graphicsize.use.img.src.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>graphicsize.use.img.src.path</refname>
+<refpurpose>Prepend <parameter>img.src.path</parameter> before
+filenames passed to extension functions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="graphicsize.use.img.src.path.frag">
+<xsl:param name="graphicsize.use.img.src.path" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero <parameter>img.src.path</parameter> parameter will
+be appended before filenames passed to extension functions for
+measuring image dimensions.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/header.column.widths.xml b/applications/content/template/docbook/params/header.column.widths.xml
new file mode 100644
index 0000000..7d85b96
--- /dev/null
+++ b/applications/content/template/docbook/params/header.column.widths.xml
@@ -0,0 +1,80 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="header.column.widths">
+<refmeta>
+<refentrytitle>header.column.widths</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.column.widths</refname>
+<refpurpose>Specify relative widths of header areas</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><src:fragment xml:id="header.column.widths.frag">
+<xsl:param name="header.column.widths">1 1 1</xsl:param>
+</src:fragment></refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Page headers in print output use a three column table
+to position text at the left, center, and right side of
+the header on the page.
+This parameter lets you specify the relative sizes of the
+three columns.  The default value is
+"1 1 1".</para>
+
+<para>The parameter value must be three numbers, separated
+by white space. The first number represents the relative
+width of the inside header for
+double-sided output.  The second number is the relative
+width of the center header.  The third number is the
+relative width of the outside header for
+double-sided output.
+</para>
+<para>For single-sided output, the first number is the
+relative width of left header for left-to-right
+text direction, or the right header for right-to-left
+text direction.  
+The third number is the
+relative width of right header for left-to-right
+text direction, or the left header for right-to-left
+text direction.</para>
+
+<para>The numbers are used to specify the column widths
+for the table that makes up the header area.
+In the FO output, this looks like:
+</para>
+
+<programlisting>
+&lt;fo:table-column column-number="1" 
+    column-width="proportional-column-width(1)"/&gt;
+</programlisting>
+
+<para>
+The <literal>proportional-column-width()</literal>
+function computes a column width by dividing its
+argument by the total of the arguments for all the columns, and
+then multiplying the result by the width of the whole table
+(assuming all the column specs use the function).
+Its argument can be any positive integer or floating point number.
+Zero is an acceptable value, although some FO processors
+may warn about it, in which case using a very small number might
+be more satisfactory.
+</para>
+
+<para>For example, the value "1 2 1" means the center
+header should have twice the width of the other areas.
+A value of "0 0 1" means the entire header area
+is reserved for the right (or outside) header text.
+Note that to keep the center area centered on
+the page, the left and right values must be
+the same. A specification like "1 2 3" means the
+center area is no longer centered on the page
+since the right area is three times the width of the left area.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/header.content.properties.xml b/applications/content/template/docbook/params/header.content.properties.xml
new file mode 100644
index 0000000..2d0291c
--- /dev/null
+++ b/applications/content/template/docbook/params/header.content.properties.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="header.content.properties">
+<refmeta>
+<refentrytitle>header.content.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.content.properties</refname>
+<refpurpose>Properties of page header content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="header.content.properties.frag">
+<xsl:attribute-set name="header.content.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$body.fontset"/>
+  </xsl:attribute>
+  <xsl:attribute name="margin-left">
+    <xsl:value-of select="$title.margin.left"/>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties of page header content.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/header.hr.xml b/applications/content/template/docbook/params/header.hr.xml
new file mode 100644
index 0000000..08d846a
--- /dev/null
+++ b/applications/content/template/docbook/params/header.hr.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="header.hr">
+<refmeta>
+<refentrytitle>header.hr</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.hr</refname>
+<refpurpose>Toggle &lt;HR&gt; after header</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="header.hr.frag">
+<xsl:param name="header.hr" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, an &lt;HR&gt; is generated at the bottom of each web page,
+before the footer.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/header.rule.xml b/applications/content/template/docbook/params/header.rule.xml
new file mode 100644
index 0000000..b4c031e
--- /dev/null
+++ b/applications/content/template/docbook/params/header.rule.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="header.rule">
+<refmeta>
+<refentrytitle>header.rule</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.rule</refname>
+<refpurpose>Rule under headers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="header.rule.frag">
+<xsl:param name="header.rule" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a rule will be drawn below the page headers.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/header.table.height.xml b/applications/content/template/docbook/params/header.table.height.xml
new file mode 100644
index 0000000..69b6f08
--- /dev/null
+++ b/applications/content/template/docbook/params/header.table.height.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="header.table.height">
+<refmeta>
+<refentrytitle>header.table.height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.table.height</refname>
+<refpurpose>Specify the minimum height of the table containing the running page headers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><src:fragment xml:id="header.table.height.frag">
+<xsl:param name="header.table.height">14pt</xsl:param>
+</src:fragment></refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Page headers in print output use a three column table
+to position text at the left, center, and right side of
+the header on the page.
+This parameter lets you specify the minimum height 
+of the single row in the table.  
+Since this specifies only the minimum height,
+the table should automatically grow to fit taller content.
+The default value is "14pt".</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/header.table.properties.xml b/applications/content/template/docbook/params/header.table.properties.xml
new file mode 100644
index 0000000..b5f6052
--- /dev/null
+++ b/applications/content/template/docbook/params/header.table.properties.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.or/g2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="header.table.properties">
+<refmeta>
+<refentrytitle>header.table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.table.properties</refname>
+<refpurpose>Apply properties to the header layout table</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id='header.table.properties.frag'>
+<xsl:attribute-set name="header.table.properties">
+  <xsl:attribute name="table-layout">fixed</xsl:attribute>
+  <xsl:attribute name="width">100%</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties applied to the table that lays out the page header.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/headers.on.blank.pages.xml b/applications/content/template/docbook/params/headers.on.blank.pages.xml
new file mode 100644
index 0000000..1fad48e
--- /dev/null
+++ b/applications/content/template/docbook/params/headers.on.blank.pages.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="headers.on.blank.pages">
+<refmeta>
+<refentrytitle>headers.on.blank.pages</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>headers.on.blank.pages</refname>
+<refpurpose>Put headers on blank pages?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="headers.on.blank.pages.frag">
+<xsl:param name="headers.on.blank.pages" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, headers will be placed on blank pages.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/hidetoc.image.xml b/applications/content/template/docbook/params/hidetoc.image.xml
new file mode 100644
index 0000000..705b61f
--- /dev/null
+++ b/applications/content/template/docbook/params/hidetoc.image.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="hidetoc.image.frag">
+<xsl:param name="hidetoc.image">hidetoc.gif</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/highlight.default.language.xml b/applications/content/template/docbook/params/highlight.default.language.xml
new file mode 100644
index 0000000..0f00103
--- /dev/null
+++ b/applications/content/template/docbook/params/highlight.default.language.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="highlight.default.language">
+<refmeta>
+<refentrytitle>highlight.default.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.default.language</refname>
+<refpurpose>Default language of programlisting</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="highlight.default.language.frag">
+<xsl:param name="highlight.default.language"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This language is used when there is no language attribute on programlisting.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/highlight.source.xml b/applications/content/template/docbook/params/highlight.source.xml
new file mode 100644
index 0000000..c4eb1a8
--- /dev/null
+++ b/applications/content/template/docbook/params/highlight.source.xml
@@ -0,0 +1,82 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="highlight.source">
+<refmeta>
+<refentrytitle>highlight.source</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.source</refname>
+<refpurpose>Should the content of <tag>programlisting</tag>
+be syntactically highlighted?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="highlight.source.frag">
+<xsl:param name="highlight.source" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When this parameter is non-zero, the stylesheets will try to do syntax highlighting of the 
+content of <tag>programlisting</tag> elements. You specify the language for each programlisting 
+by using the <tag class="attribute">language</tag> attribute. The <parameter>highlight.default.language</parameter> 
+parameter can be used to specify the language for programlistings without a <tag class="attribute">language</tag> 
+attribute. Syntax highlighting also works for <tag>screen</tag> and <tag>synopsis</tag> elements.</para>
+
+<para>The actual highlighting work is done by the XSLTHL extension module. This is an external Java library that has to be 
+downloaded separately (see below).</para>
+
+<itemizedlist>
+<para>In order to use this extension, you must</para> 
+
+<listitem><para>add <filename>xslthl-2.x.x.jar</filename> to your Java classpath. The latest version is available
+from <link xlink:href="http://sourceforge.net/projects/xslthl">the XSLT syntax highlighting project</link> 
+at SourceForge.</para>
+</listitem>
+<listitem>
+<para>use a customization layer in which you import one of the following stylesheet modules: 
+<itemizedlist>
+  <listitem>
+    <para><filename>html/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>xhtml/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>xhtml-1_1/highlight.xsl</filename>
+    </para>
+  </listitem>
+<listitem>
+    <para><filename>fo/highlight.xsl</filename>
+    </para>
+</listitem>
+</itemizedlist>
+</para>
+</listitem>
+<listitem><para>let either the <literal>xslthl.config</literal> Java system property or the
+<parameter>highlight.xslthl.config</parameter> parameter point to the configuration file for syntax 
+highlighting (using URL syntax). DocBook XSL comes with a ready-to-use configuration file, 
+<filename>highlighting/xslthl-config.xml</filename>.</para>
+</listitem>
+</itemizedlist>
+
+<para>The extension works with Saxon 6.5.x and Xalan-J. (Saxon 8.5 or later is also supported, but since it is 
+an XSLT 2.0 processor it is not guaranteed to work with DocBook XSL in all circumstances.)</para>
+
+<para>The following is an example of a Saxon 6 command adapted for syntax highlighting, to be used on Windows:</para>
+
+<informalexample>
+<para><command>java -cp c:/Java/saxon.jar;c:/Java/xslthl-2.0.1.jar 
+-Dxslthl.config=file:///c:/docbook-xsl/highlighting/xslthl-config.xml com.icl.saxon.StyleSheet 
+-o test.html test.xml myhtml.xsl</command></para>
+</informalexample>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/highlight.xslthl.config.xml b/applications/content/template/docbook/params/highlight.xslthl.config.xml
new file mode 100644
index 0000000..451937c
--- /dev/null
+++ b/applications/content/template/docbook/params/highlight.xslthl.config.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="highlight.xslthl.config">
+<refmeta>
+<refentrytitle>highlight.xslthl.config</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>highlight.xslthl.config</refname>
+<refpurpose>Location of XSLTHL configuration file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="highlight.xslthl.config.frag">
+<xsl:param name="highlight.xslthl.config"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This location has precedence over the corresponding Java property.</para>
+
+<para>Please note that usually you have to specify location as URL not
+just as a simple path on the local
+filesystem. E.g. <filename>file:///home/user/xslthl/my-xslthl-config.xml</filename>.</para>
+
+
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/home.image.xml b/applications/content/template/docbook/params/home.image.xml
new file mode 100644
index 0000000..22e5455
--- /dev/null
+++ b/applications/content/template/docbook/params/home.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="home.image.frag">
+<xsl:param name="home.image">active/nav-home.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the home navigation icon.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.append.xml b/applications/content/template/docbook/params/html.append.xml
new file mode 100644
index 0000000..461e61b
--- /dev/null
+++ b/applications/content/template/docbook/params/html.append.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.append">
+<refmeta>
+<refentrytitle>html.append</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.append</refname>
+<refpurpose>Specifies content to append to HTML output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.append.frag"><xsl:param name="html.append"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies content to append to the end of HTML files output by
+the <filename>html/docbook.xsl</filename> stylesheet, after the
+closing <code>&lt;html&gt;</code> tag. You probably don’t want to set any
+value for this parameter; but if you do, the only value it should ever
+be set to is a newline character: <code>&amp;#x0a;</code> or
+<code>&amp;#10;</code></para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.base.xml b/applications/content/template/docbook/params/html.base.xml
new file mode 100644
index 0000000..74e7fd9
--- /dev/null
+++ b/applications/content/template/docbook/params/html.base.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.base">
+<refmeta>
+<refentrytitle>html.base</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.base</refname>
+<refpurpose>An HTML base URI</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.base.frag">
+<xsl:param name="html.base"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If html.base is set, it is used for the <tag>base</tag> element
+in the <tag>head</tag> of the html documents.  The parameter specifies
+the base URL for all relative URLs in the document.  This is useful
+for dynamically served html where the base URI needs to be
+shifted.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.cellpadding.xml b/applications/content/template/docbook/params/html.cellpadding.xml
new file mode 100644
index 0000000..7240f0f
--- /dev/null
+++ b/applications/content/template/docbook/params/html.cellpadding.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.cellpadding">
+<refmeta>
+<refentrytitle>html.cellpadding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.cellpadding</refname>
+<refpurpose>Default value for cellpadding in HTML tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.cellpadding.frag">
+<xsl:param name="html.cellpadding"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, this value will be used as the default cellpadding value
+in HTML tables. nn for pixels or nn% for percentage length. E.g. 5 or
+5%</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.cellspacing.xml b/applications/content/template/docbook/params/html.cellspacing.xml
new file mode 100644
index 0000000..5ddfdac
--- /dev/null
+++ b/applications/content/template/docbook/params/html.cellspacing.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.cellspacing">
+<refmeta>
+<refentrytitle>html.cellspacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.cellspacing</refname>
+<refpurpose>Default value for cellspacing in HTML tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.cellspacing.frag">
+<xsl:param name="html.cellspacing"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, this value will be used as the default cellspacing
+value in HTML tables. nn for pixels or nn% for percentage
+length. E.g. 5 or 5%</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.cleanup.xml b/applications/content/template/docbook/params/html.cleanup.xml
new file mode 100644
index 0000000..e4fc0c8
--- /dev/null
+++ b/applications/content/template/docbook/params/html.cleanup.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.cleanup">
+<refmeta>
+<refentrytitle>html.cleanup</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.cleanup</refname>
+<refpurpose>Attempt to clean up the resulting HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.cleanup.frag">
+<xsl:param name="html.cleanup" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, and if the <link xlink:href="http://www.exslt.org/">EXSLT</link>
+extensions are supported by your processor, the resulting HTML will be
+<quote>cleaned up</quote>. This improves the chances that the
+resulting HTML will be valid. It may also improve the formatting of
+some elements.</para>
+
+<para>This parameter is different from <parameter>make.valid.html</parameter>
+because it uses extension functions to manipulate result-tree-fragments.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.ext.xml b/applications/content/template/docbook/params/html.ext.xml
new file mode 100644
index 0000000..8d6fd95
--- /dev/null
+++ b/applications/content/template/docbook/params/html.ext.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.ext">
+<refmeta>
+<refentrytitle>html.ext</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.ext</refname>
+<refpurpose>Identifies the extension of generated HTML files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.ext.frag">
+<xsl:param name="html.ext">.html</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The extension identified by <parameter>html.ext</parameter> will
+be used as the filename extension for chunks created by this
+stylesheet. </para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.extra.head.links.xml b/applications/content/template/docbook/params/html.extra.head.links.xml
new file mode 100644
index 0000000..ddc666f
--- /dev/null
+++ b/applications/content/template/docbook/params/html.extra.head.links.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.extra.head.links">
+<refmeta>
+<refentrytitle>html.extra.head.links</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.extra.head.links</refname>
+<refpurpose>Toggle extra HTML head link information</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.extra.head.links.frag">
+<xsl:param name="html.extra.head.links" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extra <tag>link</tag> elements will be
+generated in the <tag>head</tag> of chunked HTML files. These
+extra links point to chapters, appendixes, sections, etc. as supported
+by the <quote>Site Navigation Bar</quote> in Mozilla 1.0 (as of CR1, at least).
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.head.legalnotice.link.multiple.xml b/applications/content/template/docbook/params/html.head.legalnotice.link.multiple.xml
new file mode 100644
index 0000000..7c0cba1
--- /dev/null
+++ b/applications/content/template/docbook/params/html.head.legalnotice.link.multiple.xml
@@ -0,0 +1,44 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.head.legalnotice.link.multiple">
+<refmeta>
+<refentrytitle>html.head.legalnotice.link.multiple</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.head.legalnotice.link.multiple</refname>
+<refpurpose>Generate multiple link instances in html head for legalnotice?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.head.legalnotice.link.multiple.frag">
+<xsl:param name="html.head.legalnotice.link.multiple" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>html.head.legalnotice.link.multiple</parameter> is
+non-zero and the value of
+<parameter>html.head.legalnotice.link.types</parameter> contains
+multiple link types, then the stylesheet generates (in the
+<literal>head</literal> section of the HTML source) one
+<literal>link</literal> element for each link type specified. For
+example, if the value of
+<parameter>html.head.legalnotice.link.types</parameter> is
+“<literal>copyright license</literal>”:
+
+<screen>  &lt;link rel="copyright" href="ln-id2524073.html" title="Legal Notice"&gt;
+  &lt;link rel="license" href="ln-id2524073.html" title="Legal Notice"&gt;</screen>
+
+ Otherwise, the stylesheet generates generates a single
+ <literal>link</literal> instance; for example:
+
+<screen>  &lt;link rel="copyright license" href="ln-id2524073.html" title="Legal Notice"&gt;</screen>
+ 
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.head.legalnotice.link.types.xml b/applications/content/template/docbook/params/html.head.legalnotice.link.types.xml
new file mode 100644
index 0000000..4ca02ff
--- /dev/null
+++ b/applications/content/template/docbook/params/html.head.legalnotice.link.types.xml
@@ -0,0 +1,75 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.head.legalnotice.link.types">
+<refmeta>
+<refentrytitle>html.head.legalnotice.link.types</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.head.legalnotice.link.types</refname>
+<refpurpose>Specifies link types for legalnotice link in html head</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.head.legalnotice.link.types.frag">
+<xsl:param name="html.head.legalnotice.link.types">copyright</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of
+<parameter>html.head.legalnotice.link.types</parameter> is a
+space-separated list of link types, as described in <link xlink:href="http://www.w3.org/TR/html401/types.html#type-links">Section 6.12
+of the HTML 4.01 specification</link>. If the value of the
+<parameter>generate.legalnotice.link</parameter> parameter is
+non-zero, then the stylesheet generates (in the
+<literal>head</literal> section of the HTML source) either a single
+HTML <literal>link</literal> element or, if the value of the
+<parameter>html.head.legalnotice.link.multiple</parameter> is
+non-zero, one <literal>link</literal> element for each link type
+specified. Each <literal>link</literal> has the following attributes:
+
+<itemizedlist>
+  <listitem>
+    <para>a <tag class="attribute">rel</tag> attribute whose
+    value is derived from the value of
+    <parameter>html.head.legalnotice.link.types</parameter></para>
+  </listitem>
+  <listitem>
+    <para>an <tag class="attribute">href</tag> attribute whose
+    value is set to the URL of the file containing the
+    <tag>legalnotice</tag></para>
+  </listitem>
+  <listitem>
+    <para>a <tag class="attribute">title</tag> attribute whose
+    value is set to the title of the corresponding
+    <tag>legalnotice</tag> (or a title programatically
+    determined by the stylesheet)</para>
+  </listitem>
+</itemizedlist>
+
+For example:
+
+<screen>  &lt;link rel="license" href="ln-id2524073.html" title="Legal Notice"&gt;</screen>
+</para>
+
+<refsection><info><title>About the default value</title></info>
+  
+  <para>In an ideal world, the default value of
+  <parameter>html.head.legalnotice.link.types</parameter> would
+  probably be “<literal>license</literal>”, since the content of the
+  DocBook <tag>legalnotice</tag> is typically license
+  information, not copyright information. However, the default value
+  is “<literal>copyright</literal>” for pragmatic reasons: because
+  that’s among the set of “recognized link types” listed in <link xlink:href="http://www.w3.org/TR/html401/types.html#type-links">Section
+  6.12 of the HTML 4.01 specification</link>, and because certain
+  browsers and browser extensions are preconfigured to recognize that
+  value.</para>
+</refsection>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.longdesc.link.xml b/applications/content/template/docbook/params/html.longdesc.link.xml
new file mode 100644
index 0000000..2497563
--- /dev/null
+++ b/applications/content/template/docbook/params/html.longdesc.link.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.longdesc.link">
+<refmeta>
+<refentrytitle>html.longdesc.link</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.longdesc.link</refname>
+<refpurpose>Should a link to the longdesc be included in the HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.longdesc.link.frag">
+<xsl:param name="html.longdesc.link" select="$html.longdesc"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, links will be created to the
+HTML files created for the
+<literal>longdesc</literal> attribute. It makes no
+sense to enable this option without also enabling the
+<parameter>html.longdesc</parameter> parameter.</para>
+
+<!--
+<para>The <literal>longdesc.link</literal> named template is called
+to construct the link.</para>
+Assumption. That this documentation is for the user, do they need to know
+how it's done?
+
+-->
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.longdesc.xml b/applications/content/template/docbook/params/html.longdesc.xml
new file mode 100644
index 0000000..10f341a
--- /dev/null
+++ b/applications/content/template/docbook/params/html.longdesc.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.longdesc">
+<refmeta>
+<refentrytitle>html.longdesc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.longdesc</refname>
+<refpurpose>Should longdesc URIs be created?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="html.longdesc.frag">
+<xsl:param name="html.longdesc" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, HTML files will be created for the
+<literal>longdesc</literal> attribute. These files
+are created from the <tag>textobject</tag>s in
+<tag>mediaobject</tag>s and
+<tag>inlinemediaobject</tag>.
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.script.type.xml b/applications/content/template/docbook/params/html.script.type.xml
new file mode 100644
index 0000000..bf6eb34
--- /dev/null
+++ b/applications/content/template/docbook/params/html.script.type.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.script.type">
+<refmeta>
+<refentrytitle>html.script.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.script.type</refname>
+<refpurpose>The type of script used in the generated HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.script.type.frag"><xsl:param name="html.script.type">text/javascript</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The type of script to place in the HTML <tag>script</tag> element.
+Specifically, the value of the <tag>script</tag> element's <tag>type</tag>
+attribute.
+The default value is <literal>text/javascript</literal>.
+This param is used only when the stylesheet parameter
+<tag>html.script</tag> is non-blank and specifies the location of a script.</para>
+
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.script.xml b/applications/content/template/docbook/params/html.script.xml
new file mode 100644
index 0000000..60dd9ed
--- /dev/null
+++ b/applications/content/template/docbook/params/html.script.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.script">
+<refmeta>
+<refentrytitle>html.script</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.script</refname>
+<refpurpose>Name of the script(s) to use in the generated HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.script.frag">
+<xsl:param name="html.script" ></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>html.script</parameter> parameter is either
+empty (default), indicating that no <tag>script</tag> element should be
+generated in the html output, or it is a list of one or more
+script locations.</para>
+
+<para>Multiple script locations are space-delimited. If you need to
+reference a script URI that includes a space, encode it with
+<literal>%20</literal>. A separate html <literal>script</literal> element will
+be generated for each script in the order they are listed in the
+parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.stylesheet.type.xml b/applications/content/template/docbook/params/html.stylesheet.type.xml
new file mode 100644
index 0000000..f20b706
--- /dev/null
+++ b/applications/content/template/docbook/params/html.stylesheet.type.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.stylesheet.type">
+<refmeta>
+<refentrytitle>html.stylesheet.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.stylesheet.type</refname>
+<refpurpose>The type of the stylesheet used in the generated HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.stylesheet.type.frag"><xsl:param name="html.stylesheet.type">text/css</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The type of the stylesheet to place in the HTML <tag>link</tag> tag.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/html.stylesheet.xml b/applications/content/template/docbook/params/html.stylesheet.xml
new file mode 100644
index 0000000..3407094
--- /dev/null
+++ b/applications/content/template/docbook/params/html.stylesheet.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="html.stylesheet">
+<refmeta>
+<refentrytitle>html.stylesheet</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>html.stylesheet</refname>
+<refpurpose>Name of the stylesheet(s) to use in the generated HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="html.stylesheet.frag">
+<xsl:param name="html.stylesheet" ></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>html.stylesheet</parameter> parameter is either
+empty, indicating that no stylesheet <tag>link</tag> tag should be
+generated in the html output, or it is a list of one or more
+stylesheet files.</para>
+
+<para>Multiple stylesheets are space-delimited. If you need to
+reference a stylesheet URI that includes a space, encode it with
+<literal>%20</literal>. A separate html <literal>link</literal> element will
+be generated for each stylesheet in the order they are listed in the
+parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.alias.file.xml b/applications/content/template/docbook/params/htmlhelp.alias.file.xml
new file mode 100644
index 0000000..be11b28
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.alias.file.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.alias.file">
+<refmeta>
+<refentrytitle>htmlhelp.alias.file</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.alias.file</refname>
+<refpurpose>Filename of alias file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.alias.file.frag">
+<xsl:param name="htmlhelp.alias.file">alias.h</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the alias file (used for context-sensitive help).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.autolabel.xml b/applications/content/template/docbook/params/htmlhelp.autolabel.xml
new file mode 100644
index 0000000..1426d00
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.autolabel.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.autolabel">
+<refmeta>
+<refentrytitle>htmlhelp.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.autolabel</refname>
+<refpurpose>Should tree-like ToC use autonumbering feature?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.autolabel.frag">
+<xsl:param name="htmlhelp.autolabel" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set this to non-zero to include chapter and section numbers into ToC
+in the left panel.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.back.xml b/applications/content/template/docbook/params/htmlhelp.button.back.xml
new file mode 100644
index 0000000..1fc12bb
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.back.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.back">
+<refmeta>
+<refentrytitle>htmlhelp.button.back</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.back</refname>
+<refpurpose>Should the Back button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.back.frag">
+<xsl:param name="htmlhelp.button.back" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the  Hide/Show button shown on toolbar</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.forward.xml b/applications/content/template/docbook/params/htmlhelp.button.forward.xml
new file mode 100644
index 0000000..f6411bb
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.forward.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.forward">
+<refmeta>
+<refentrytitle>htmlhelp.button.forward</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.forward</refname>
+<refpurpose>Should the Forward button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.forward.frag">
+<xsl:param name="htmlhelp.button.forward" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the  Forward button  on the toolbar.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.hideshow.xml b/applications/content/template/docbook/params/htmlhelp.button.hideshow.xml
new file mode 100644
index 0000000..04f1ff0
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.hideshow.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.hideshow">
+<refmeta>
+<refentrytitle>htmlhelp.button.hideshow</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.hideshow</refname>
+<refpurpose>Should the Hide/Show button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.hideshow.frag">
+<xsl:param name="htmlhelp.button.hideshow" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the  Hide/Show button shown on toolbar</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.home.url.xml b/applications/content/template/docbook/params/htmlhelp.button.home.url.xml
new file mode 100644
index 0000000..3027507
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.home.url.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.home.url">
+<refmeta>
+<refentrytitle>htmlhelp.button.home.url</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.home.url</refname>
+<refpurpose>URL address of page accessible by Home button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.home.url.frag">
+<xsl:param name="htmlhelp.button.home.url"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>URL address of page accessible by Home button.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.home.xml b/applications/content/template/docbook/params/htmlhelp.button.home.xml
new file mode 100644
index 0000000..e4e97fe
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.home.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.home">
+<refmeta>
+<refentrytitle>htmlhelp.button.home</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.home</refname>
+<refpurpose>Should the Home button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.home.frag">
+<xsl:param name="htmlhelp.button.home" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Home button  on the toolbar.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.jump1.title.xml b/applications/content/template/docbook/params/htmlhelp.button.jump1.title.xml
new file mode 100644
index 0000000..aa9da59
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.jump1.title.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.jump1.title">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump1.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump1.title</refname>
+<refpurpose>Title of Jump1 button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.jump1.title.frag">
+<xsl:param name="htmlhelp.button.jump1.title">User1</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Title of Jump1 button.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.jump1.url.xml b/applications/content/template/docbook/params/htmlhelp.button.jump1.url.xml
new file mode 100644
index 0000000..22248c4
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.jump1.url.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.jump1.url">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump1.url</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump1.url</refname>
+<refpurpose>URL address of page accessible by Jump1 button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.jump1.url.frag">
+<xsl:param name="htmlhelp.button.jump1.url"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>URL address of page accessible by Jump1 button.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.jump1.xml b/applications/content/template/docbook/params/htmlhelp.button.jump1.xml
new file mode 100644
index 0000000..f6f8d9c
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.jump1.xml
@@ -0,0 +1,23 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.jump1">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump1</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump1</refname>
+<refpurpose>Should the Jump1 button be shown?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.jump1.frag">
+<xsl:param name="htmlhelp.button.jump1" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+  <para>Set to non-zero to include the <literal>Jump1</literal> button on the toolbar.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.jump2.title.xml b/applications/content/template/docbook/params/htmlhelp.button.jump2.title.xml
new file mode 100644
index 0000000..3b5f124
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.jump2.title.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.jump2.title">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump2.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump2.title</refname>
+<refpurpose>Title of Jump2 button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.jump2.title.frag">
+<xsl:param name="htmlhelp.button.jump2.title">User2</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Title of Jump2 button.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.jump2.url.xml b/applications/content/template/docbook/params/htmlhelp.button.jump2.url.xml
new file mode 100644
index 0000000..dcd2434
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.jump2.url.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.jump2.url">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump2.url</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump2.url</refname>
+<refpurpose>URL address of page accessible by Jump2 button</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.jump2.url.frag">
+<xsl:param name="htmlhelp.button.jump2.url"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>URL address of page accessible by Jump2 button.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.jump2.xml b/applications/content/template/docbook/params/htmlhelp.button.jump2.xml
new file mode 100644
index 0000000..916b1ee
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.jump2.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.jump2">
+<refmeta>
+<refentrytitle>htmlhelp.button.jump2</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.jump2</refname>
+<refpurpose>Should the Jump2 button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.jump2.frag">
+<xsl:param name="htmlhelp.button.jump2" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Jump2 button  on the toolbar.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.locate.xml b/applications/content/template/docbook/params/htmlhelp.button.locate.xml
new file mode 100644
index 0000000..5b55552
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.locate.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.locate">
+<refmeta>
+<refentrytitle>htmlhelp.button.locate</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.locate</refname>
+<refpurpose>Should the Locate button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.locate.frag">
+<xsl:param name="htmlhelp.button.locate" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want Locate button shown on toolbar, turn this
+parameter to 1.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.next.xml b/applications/content/template/docbook/params/htmlhelp.button.next.xml
new file mode 100644
index 0000000..b5352b2
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.next.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.next">
+<refmeta>
+<refentrytitle>htmlhelp.button.next</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.next</refname>
+<refpurpose>Should the Next button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.next.frag">
+<xsl:param name="htmlhelp.button.next" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Next button  on the toolbar.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.options.xml b/applications/content/template/docbook/params/htmlhelp.button.options.xml
new file mode 100644
index 0000000..21bed81
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.options.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.options">
+<refmeta>
+<refentrytitle>htmlhelp.button.options</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.options</refname>
+<refpurpose>Should the Options button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.options.frag">
+<xsl:param name="htmlhelp.button.options" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want Options button shown on toolbar, turn this
+parameter to 1.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.prev.xml b/applications/content/template/docbook/params/htmlhelp.button.prev.xml
new file mode 100644
index 0000000..a6d989b
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.prev.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.prev">
+<refmeta>
+<refentrytitle>htmlhelp.button.prev</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.prev</refname>
+<refpurpose>Should the Prev button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.prev.frag">
+<xsl:param name="htmlhelp.button.prev" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Prev button  on the toolbar.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.print.xml b/applications/content/template/docbook/params/htmlhelp.button.print.xml
new file mode 100644
index 0000000..1c0e816
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.print.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.print">
+<refmeta>
+<refentrytitle>htmlhelp.button.print</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.print</refname>
+<refpurpose>Should the Print button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.print.frag">
+<xsl:param name="htmlhelp.button.print" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Print button  on the toolbar.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.refresh.xml b/applications/content/template/docbook/params/htmlhelp.button.refresh.xml
new file mode 100644
index 0000000..294fcbe
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.refresh.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.refresh">
+<refmeta>
+<refentrytitle>htmlhelp.button.refresh</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.refresh</refname>
+<refpurpose>Should the Refresh button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.refresh.frag">
+<xsl:param name="htmlhelp.button.refresh" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Stop button  on the toolbar.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.stop.xml b/applications/content/template/docbook/params/htmlhelp.button.stop.xml
new file mode 100644
index 0000000..fdbe549
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.stop.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.stop">
+<refmeta>
+<refentrytitle>htmlhelp.button.stop</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.stop</refname>
+<refpurpose>Should the Stop button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.stop.frag">
+<xsl:param name="htmlhelp.button.stop" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want Stop button shown on toolbar, turn this
+parameter to 1.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.button.zoom.xml b/applications/content/template/docbook/params/htmlhelp.button.zoom.xml
new file mode 100644
index 0000000..a25dc40
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.button.zoom.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.button.zoom">
+<refmeta>
+<refentrytitle>htmlhelp.button.zoom</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.button.zoom</refname>
+<refpurpose>Should the Zoom button be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.button.zoom.frag">
+<xsl:param name="htmlhelp.button.zoom" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include the Zoom button  on the toolbar.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.chm.xml b/applications/content/template/docbook/params/htmlhelp.chm.xml
new file mode 100644
index 0000000..51cba30
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.chm.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.chm">
+<refmeta>
+<refentrytitle>htmlhelp.chm</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.chm</refname>
+<refpurpose>Filename of output HTML Help file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.chm.frag">
+<xsl:param name="htmlhelp.chm">htmlhelp.chm</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the  name of resulting CHM file</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.default.topic.xml b/applications/content/template/docbook/params/htmlhelp.default.topic.xml
new file mode 100644
index 0000000..577f440
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.default.topic.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.default.topic">
+<refmeta>
+<refentrytitle>htmlhelp.default.topic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.default.topic</refname>
+<refpurpose>Name of file with default topic</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.default.topic.frag">
+<xsl:param name="htmlhelp.default.topic"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Normally first chunk of document is displayed when you open HTML
+Help file. If you want to display another topic, simply set its
+filename by this parameter.</para>
+
+<para>This is useful especially if you don't generate ToC in front of
+your document and you also hide root element in ToC. E.g.:</para>
+
+<programlisting>&lt;xsl:param name="generate.book.toc" select="0"/&gt;
+&lt;xsl:param name="htmlhelp.hhc.show.root" select="0"/&gt;
+&lt;xsl:param name="htmlhelp.default.topic">pr01.html&lt;/xsl:param>
+</programlisting>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.display.progress.xml b/applications/content/template/docbook/params/htmlhelp.display.progress.xml
new file mode 100644
index 0000000..eab1c96
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.display.progress.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.display.progress">
+<refmeta>
+<refentrytitle>htmlhelp.display.progress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.display.progress</refname>
+<refpurpose>Display compile progress?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.display.progress.frag">
+<xsl:param name="htmlhelp.display.progress" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to to display compile progress
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.encoding.xml b/applications/content/template/docbook/params/htmlhelp.encoding.xml
new file mode 100644
index 0000000..d69392d
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.encoding.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.encoding">
+<refmeta>
+<refentrytitle>htmlhelp.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.encoding</refname>
+<refpurpose>Character encoding to use in files for HTML Help compiler.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.encoding.frag">
+<xsl:param name="htmlhelp.encoding">iso-8859-1</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The HTML Help Compiler is not UTF-8 aware, so you should always use an
+appropriate single-byte encoding here. See also <link xlink:href="HtmlHelp.html#HelpProcOptions" 
+role="tcg">Processing options</link>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.enhanced.decompilation.xml b/applications/content/template/docbook/params/htmlhelp.enhanced.decompilation.xml
new file mode 100644
index 0000000..558e89b
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.enhanced.decompilation.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.enhanced.decompilation">
+<refmeta>
+<refentrytitle>htmlhelp.enhanced.decompilation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.enhanced.decompilation</refname>
+<refpurpose>Allow enhanced decompilation of CHM?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.enhanced.decompilation.frag">
+<xsl:param name="htmlhelp.enhanced.decompilation" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When non-zero this parameter enables enhanced decompilation of CHM.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.enumerate.images.xml b/applications/content/template/docbook/params/htmlhelp.enumerate.images.xml
new file mode 100644
index 0000000..a2aaac8
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.enumerate.images.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.enumerate.images">
+<refmeta>
+<refentrytitle>htmlhelp.enumerate.images</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.enumerate.images</refname>
+<refpurpose>Should the paths to all used images be added to the project file?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.enumerate.images.frag">
+<xsl:param name="htmlhelp.enumerate.images" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero if you insert images into your documents as
+external binary entities or if you are using absolute image paths.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.force.map.and.alias.xml b/applications/content/template/docbook/params/htmlhelp.force.map.and.alias.xml
new file mode 100644
index 0000000..7dca30b
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.force.map.and.alias.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.force.map.and.alias">
+<refmeta>
+<refentrytitle>htmlhelp.force.map.and.alias</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.force.map.and.alias</refname>
+<refpurpose>Should [MAP] and [ALIAS] sections be added to the project file unconditionally?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.force.map.and.alias.frag">
+<xsl:param name="htmlhelp.force.map.and.alias" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+  <para>Set to non-zero if you have your own
+    <literal>alias.h</literal> and <literal>context.h</literal>
+    files and you want to include references to them in the project
+    file.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.hhc.binary.xml b/applications/content/template/docbook/params/htmlhelp.hhc.binary.xml
new file mode 100644
index 0000000..ea978f7
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.hhc.binary.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.hhc.binary">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.binary</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.binary</refname>
+<refpurpose>Generate binary ToC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.hhc.binary.frag">
+<xsl:param name="htmlhelp.hhc.binary" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to generate a binary TOC. You must create a binary TOC
+if you want to add Prev/Next buttons to toolbar (which is default
+behaviour). Files with binary TOC can't be merged.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.hhc.folders.instead.books.xml b/applications/content/template/docbook/params/htmlhelp.hhc.folders.instead.books.xml
new file mode 100644
index 0000000..ca36e5a
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.hhc.folders.instead.books.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.hhc.folders.instead.books">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.folders.instead.books</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.folders.instead.books</refname>
+<refpurpose>Use folder icons in ToC (instead of book icons)?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.hhc.folders.instead.books.frag">
+<xsl:param name="htmlhelp.hhc.folders.instead.books" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero for folder-like icons or zero for book-like icons in the ToC. 
+If you want to use folder-like icons, you must switch off the binary ToC using 
+<parameter>htmlhelp.hhc.binary</parameter>.
+
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.hhc.section.depth.xml b/applications/content/template/docbook/params/htmlhelp.hhc.section.depth.xml
new file mode 100644
index 0000000..35c492a
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.hhc.section.depth.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.hhc.section.depth">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.section.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.section.depth</refname>
+<refpurpose>Depth of TOC for sections in a left pane.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.hhc.section.depth.frag">
+<xsl:param name="htmlhelp.hhc.section.depth">5</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the section depth in the left pane of HTML Help viewer. </para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.hhc.show.root.xml b/applications/content/template/docbook/params/htmlhelp.hhc.show.root.xml
new file mode 100644
index 0000000..0de26b9
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.hhc.show.root.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.hhc.show.root">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.show.root</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.show.root</refname>
+<refpurpose>Should there be an entry for the root element in the ToC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.hhc.show.root.frag">
+<xsl:param name="htmlhelp.hhc.show.root" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If set to zero, there will be no entry for the root element in the 
+ToC. This is useful when you want to provide the user with an expanded
+ToC as a default.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.hhc.width.xml b/applications/content/template/docbook/params/htmlhelp.hhc.width.xml
new file mode 100644
index 0000000..4011399
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.hhc.width.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.hhc.width">
+<refmeta>
+<refentrytitle>htmlhelp.hhc.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc.width</refname>
+<refpurpose>Width of navigation pane</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.hhc.width.frag">
+<xsl:param name="htmlhelp.hhc.width"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the width of the navigation pane (containing TOC and
+other navigation tabs) in pixels.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.hhc.xml b/applications/content/template/docbook/params/htmlhelp.hhc.xml
new file mode 100644
index 0000000..475ef20
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.hhc.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.hhc">
+<refmeta>
+<refentrytitle>htmlhelp.hhc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhc</refname>
+<refpurpose>Filename of TOC file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.hhc.frag">
+<xsl:param name="htmlhelp.hhc">toc.hhc</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the name of the TOC file. The default is <filename>toc.hhc</filename>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.hhk.xml b/applications/content/template/docbook/params/htmlhelp.hhk.xml
new file mode 100644
index 0000000..aee473e
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.hhk.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.hhk">
+<refmeta>
+<refentrytitle>htmlhelp.hhk</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhk</refname>
+<refpurpose>Filename of index file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.hhk.frag">
+<xsl:param name="htmlhelp.hhk">index.hhk</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>set the name of the index file. The default is <filename>index.hhk</filename>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.hhp.tail.xml b/applications/content/template/docbook/params/htmlhelp.hhp.tail.xml
new file mode 100644
index 0000000..c239b9a
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.hhp.tail.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.hhp.tail">
+<refmeta>
+<refentrytitle>htmlhelp.hhp.tail</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhp.tail</refname>
+<refpurpose>Additional content for project file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.hhp.tail.frag">
+<xsl:param name="htmlhelp.hhp.tail"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want to include some additional parameters into project file,
+store appropriate part of project file into this parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.hhp.window.xml b/applications/content/template/docbook/params/htmlhelp.hhp.window.xml
new file mode 100644
index 0000000..6c29eed
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.hhp.window.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.hhp.window">
+<refmeta>
+<refentrytitle>htmlhelp.hhp.window</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhp.window</refname>
+<refpurpose>Name of default window.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.hhp.window.frag">
+<xsl:param name="htmlhelp.hhp.window">Main</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Name of default window. If empty no [WINDOWS] section will be
+added to project file.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.hhp.windows.xml b/applications/content/template/docbook/params/htmlhelp.hhp.windows.xml
new file mode 100644
index 0000000..afd435f
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.hhp.windows.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.hhp.windows">
+<refmeta>
+<refentrytitle>htmlhelp.hhp.windows</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhp.windows</refname>
+<refpurpose>Definition of additional windows</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.hhp.windows.frag">
+<xsl:param name="htmlhelp.hhp.windows"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Content of this parameter is placed at the end of [WINDOWS]
+section of project file. You can use it for defining your own
+addtional windows.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.hhp.xml b/applications/content/template/docbook/params/htmlhelp.hhp.xml
new file mode 100644
index 0000000..74954d7
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.hhp.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.hhp">
+<refmeta>
+<refentrytitle>htmlhelp.hhp</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.hhp</refname>
+<refpurpose>Filename of project file.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.hhp.frag">
+<xsl:param name="htmlhelp.hhp">htmlhelp.hhp</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Change this parameter if you want different name of project
+file than htmlhelp.hhp.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.map.file.xml b/applications/content/template/docbook/params/htmlhelp.map.file.xml
new file mode 100644
index 0000000..b47c565
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.map.file.xml
@@ -0,0 +1,25 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.map.file">
+<refmeta>
+<refentrytitle>htmlhelp.map.file</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.map.file</refname>
+<refpurpose>Filename of map file.</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.map.file.frag">
+<xsl:param name="htmlhelp.map.file">context.h</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Set the name of map file. The default is
+  <filename>context.h</filename>. (used for context-sensitive
+  help).</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.only.xml b/applications/content/template/docbook/params/htmlhelp.only.xml
new file mode 100644
index 0000000..f10dbf5
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.only.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.only">
+<refmeta>
+<refentrytitle>htmlhelp.only</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.only</refname>
+<refpurpose>Should only project files be generated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.only.frag">
+<xsl:param name="htmlhelp.only" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+
+<para>Set to non-zero if you want to play with various HTML Help parameters
+and you don't need to regenerate all HTML files. This setting will not
+process whole document, only project files (hhp, hhc, hhk,...) will be
+generated.</para>
+
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.remember.window.position.xml b/applications/content/template/docbook/params/htmlhelp.remember.window.position.xml
new file mode 100644
index 0000000..3aaea1f
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.remember.window.position.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.remember.window.position">
+<refmeta>
+<refentrytitle>htmlhelp.remember.window.position</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.remember.window.position</refname>
+<refpurpose>Remember help window position?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.remember.window.position.frag">
+<xsl:param name="htmlhelp.remember.window.position" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to remember help window position between starts.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.show.advanced.search.xml b/applications/content/template/docbook/params/htmlhelp.show.advanced.search.xml
new file mode 100644
index 0000000..3aa09a6
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.show.advanced.search.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.show.advanced.search">
+<refmeta>
+<refentrytitle>htmlhelp.show.advanced.search</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.show.advanced.search</refname>
+<refpurpose>Should advanced search features be available?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.show.advanced.search.frag">
+<xsl:param name="htmlhelp.show.advanced.search" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want advanced search features in your help, turn this
+parameter to 1.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.show.favorities.xml b/applications/content/template/docbook/params/htmlhelp.show.favorities.xml
new file mode 100644
index 0000000..925bbb1
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.show.favorities.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.show.favorities">
+<refmeta>
+<refentrytitle>htmlhelp.show.favorities</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.show.favorities</refname>
+<refpurpose>Should the Favorites tab be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.show.favorities.frag">
+<xsl:param name="htmlhelp.show.favorities" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to include a Favorites tab in the navigation pane 
+of the help window.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.show.menu.xml b/applications/content/template/docbook/params/htmlhelp.show.menu.xml
new file mode 100644
index 0000000..b3d6285
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.show.menu.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.show.menu">
+<refmeta>
+<refentrytitle>htmlhelp.show.menu</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.show.menu</refname>
+<refpurpose>Should the menu bar be shown?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.show.menu.frag">
+<xsl:param name="htmlhelp.show.menu" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to have an application menu bar in your HTML Help window.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.show.toolbar.text.xml b/applications/content/template/docbook/params/htmlhelp.show.toolbar.text.xml
new file mode 100644
index 0000000..fc87d9c
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.show.toolbar.text.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.show.toolbar.text">
+<refmeta>
+<refentrytitle>htmlhelp.show.toolbar.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.show.toolbar.text</refname>
+<refpurpose>Show text under toolbar buttons?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.show.toolbar.text.frag">
+<xsl:param name="htmlhelp.show.toolbar.text" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set to non-zero to display texts under toolbar buttons, zero to switch
+off displays.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.title.xml b/applications/content/template/docbook/params/htmlhelp.title.xml
new file mode 100644
index 0000000..f4397ca
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.title.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.title">
+<refmeta>
+<refentrytitle>htmlhelp.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.title</refname>
+<refpurpose>Title of HTML Help</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.title.frag">
+<xsl:param name="htmlhelp.title"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Content of this parameter will be used as a title for generated
+HTML Help. If empty, title will be automatically taken from document.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.use.hhk.xml b/applications/content/template/docbook/params/htmlhelp.use.hhk.xml
new file mode 100644
index 0000000..720c1e2
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.use.hhk.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.use.hhk">
+<refmeta>
+<refentrytitle>htmlhelp.use.hhk</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.use.hhk</refname>
+<refpurpose>Should the index be built using the HHK file?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.use.hhk.frag">
+<xsl:param name="htmlhelp.use.hhk" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the index is created using the HHK file (instead of using <tag role="html">object</tag>
+elements in the HTML files). For more information, see <link 
+role="tcg" xlink:href="HtmlHelp.html#HHGenIndex">Generating an index</link>.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/htmlhelp.window.geometry.xml b/applications/content/template/docbook/params/htmlhelp.window.geometry.xml
new file mode 100644
index 0000000..0ec75f7
--- /dev/null
+++ b/applications/content/template/docbook/params/htmlhelp.window.geometry.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="htmlhelp.window.geometry">
+<refmeta>
+<refentrytitle>htmlhelp.window.geometry</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>htmlhelp.window.geometry</refname>
+<refpurpose>Set initial geometry of help window</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="htmlhelp.window.geometry.frag">
+<xsl:param name="htmlhelp.window.geometry"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies initial position of help
+window. E.g.</para>
+
+<programlisting>&lt;xsl:param name="htmlhelp.window.geometry"&gt;[160,64,992,704]&lt;/xsl:param&gt;</programlisting>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/hyphenate.verbatim.characters.xml b/applications/content/template/docbook/params/hyphenate.verbatim.characters.xml
new file mode 100644
index 0000000..e6cae20
--- /dev/null
+++ b/applications/content/template/docbook/params/hyphenate.verbatim.characters.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="hyphenate.verbatim.characters">
+<refmeta>
+<refentrytitle>hyphenate.verbatim.characters</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>hyphenate.verbatim.characters</refname>
+<refpurpose>List of characters after which a line break can occur in listings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="hyphenate.verbatim.characters.frag">
+<xsl:param name="hyphenate.verbatim.characters"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you enable <parameter>hyphenate.verbatim</parameter> line
+breaks are allowed only on space characters. If this is not enough for
+your document, you can specify list of additional characters after
+which line break is allowed in this parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/hyphenate.verbatim.xml b/applications/content/template/docbook/params/hyphenate.verbatim.xml
new file mode 100644
index 0000000..c66e700
--- /dev/null
+++ b/applications/content/template/docbook/params/hyphenate.verbatim.xml
@@ -0,0 +1,45 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="hyphenate.verbatim">
+<refmeta>
+<refentrytitle>hyphenate.verbatim</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>hyphenate.verbatim</refname>
+<refpurpose>Should verbatim environments be hyphenated on space characters?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="hyphenate.verbatim.frag"><xsl:param name="hyphenate.verbatim" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the lines of program listing are too long to fit into one
+line it is quite common to split them at space and indicite by hook
+arrow that code continues on the next line. You can turn on this
+behaviour for <tag>programlisting</tag>,
+<tag>screen</tag> and <tag>synopsis</tag> elements by
+using this parameter.</para>
+
+<para>Note that you must also enable line wrapping for verbatim environments and
+select appropriate hyphenation character (e.g. hook arrow). This can
+be done using <parameter>monospace.verbatim.properties</parameter>
+attribute set:</para>
+
+<programlisting>&lt;xsl:attribute-set name="monospace.verbatim.properties" 
+                   use-attribute-sets="verbatim.properties monospace.properties"&gt;
+  &lt;xsl:attribute name="wrap-option"&gt;wrap&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="hyphenation-character"&gt;&amp;#x25BA;&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+
+<para>For a list of arrows available in Unicode see <uri xlink:href="http://www.unicode.org/charts/PDF/U2190.pdf">http://www.unicode.org/charts/PDF/U2190.pdf</uri> and <uri xlink:href="http://www.unicode.org/charts/PDF/U2900.pdf">http://www.unicode.org/charts/PDF/U2900.pdf</uri> and make sure that
+selected character is available in the font you are using for verbatim
+environments.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/hyphenate.xml b/applications/content/template/docbook/params/hyphenate.xml
new file mode 100644
index 0000000..aa6e129
--- /dev/null
+++ b/applications/content/template/docbook/params/hyphenate.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="hyphenate">
+<refmeta>
+<refentrytitle>hyphenate</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="list-type">closed</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">true</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">false</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>hyphenate</refname>
+<refpurpose>Specify hyphenation behavior</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="hyphenate.frag"><xsl:param name="hyphenate">true</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, words may be hyphenated. Otherwise, they may not.</para>
+<para>See also <parameter>ulink.hyphenate.chars</parameter> </para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/id.warnings.xml b/applications/content/template/docbook/params/id.warnings.xml
new file mode 100644
index 0000000..7b2716f
--- /dev/null
+++ b/applications/content/template/docbook/params/id.warnings.xml
@@ -0,0 +1,25 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="id.warnings">
+<refmeta>
+<refentrytitle>id.warnings</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>id.warnings</refname>
+<refpurpose>Should warnings be generated for titled elements without IDs?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="id.warnings.frag">
+<xsl:param name="id.warnings" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, the stylesheet will issue a warning for any element
+(other than the root element) which has a <tag>title</tag> but does not have an
+ID.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/ignore.image.scaling.xml b/applications/content/template/docbook/params/ignore.image.scaling.xml
new file mode 100644
index 0000000..c35d178
--- /dev/null
+++ b/applications/content/template/docbook/params/ignore.image.scaling.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="ignore.image.scaling">
+<refmeta>
+<refentrytitle>ignore.image.scaling</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ignore.image.scaling</refname>
+<refpurpose>Tell the stylesheets to ignore the author's image scaling attributes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="ignore.image.scaling.frag">
+<xsl:param name="ignore.image.scaling" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the scaling attributes on graphics and media objects are
+ignored.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/img.src.path.xml b/applications/content/template/docbook/params/img.src.path.xml
new file mode 100644
index 0000000..d295019
--- /dev/null
+++ b/applications/content/template/docbook/params/img.src.path.xml
@@ -0,0 +1,40 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="img.src.path">
+<refmeta>
+<refentrytitle>img.src.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>img.src.path</refname>
+<refpurpose>Path to HTML/FO image files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="img.src.path.frag"><xsl:param name="img.src.path"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Add a path prefix to the value of the <tag class="attribute">fileref</tag> 
+attribute of <tag>graphic</tag>, <tag>inlinegraphic</tag>, and <tag>imagedata</tag> elements. The resulting 
+compound path is used in the output as the value of the <tag class="attribute">src</tag> 
+attribute of <tag class="element">img</tag> (HTML) or <tag class="element">external-graphic</tag> (FO).
+</para>
+
+<para>
+The path given by <literal>img.src.path</literal> could be relative to the directory where the HTML/FO
+files are created, or it could be an absolute URI.
+The default value is empty.
+Be sure to include a trailing slash if needed.
+</para>
+
+<para>This prefix is not applied to any filerefs that start
+with "/" or contain "//:".
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/index.div.title.properties.xml b/applications/content/template/docbook/params/index.div.title.properties.xml
new file mode 100644
index 0000000..edbec2f
--- /dev/null
+++ b/applications/content/template/docbook/params/index.div.title.properties.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="index.div.title.properties">
+<refmeta>
+<refentrytitle>index.div.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.div.title.properties</refname>
+<refpurpose>Properties associated with the letter headings in an
+index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="index.div.title.properties.frag">
+<xsl:attribute-set name="index.div.title.properties">
+  <xsl:attribute name="margin-{$direction.align.start}">0pt</xsl:attribute>
+  <xsl:attribute name="font-size">14.4pt</xsl:attribute>
+  <xsl:attribute name="font-family"><xsl:value-of select="$title.fontset"/></xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="space-before.optimum"><xsl:value-of select="concat($body.font.master,'pt')"/></xsl:attribute>
+  <xsl:attribute name="space-before.minimum"><xsl:value-of select="concat($body.font.master,'pt * 0.8')"/></xsl:attribute>
+  <xsl:attribute name="space-before.maximum"><xsl:value-of select="concat($body.font.master,'pt * 1.2')"/></xsl:attribute>
+  <xsl:attribute name="start-indent">0pt</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is used on the letter headings that separate
+the divisions in an index.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/index.entry.properties.xml b/applications/content/template/docbook/params/index.entry.properties.xml
new file mode 100644
index 0000000..3232358
--- /dev/null
+++ b/applications/content/template/docbook/params/index.entry.properties.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="index.entry.properties">
+<refmeta>
+<refentrytitle>index.entry.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.entry.properties</refname>
+<refpurpose>Properties applied to the formatted entries
+in an index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="index.entry.properties.frag">
+<xsl:attribute-set name="index.entry.properties">
+  <xsl:attribute name="start-indent">0pt</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is applied to the block containing
+the entries in a letter division in an index.  It can be used to set the
+font-size, font-family, and other inheritable properties that will be
+applied to all index entries.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/index.links.to.section.xml b/applications/content/template/docbook/params/index.links.to.section.xml
new file mode 100644
index 0000000..47c0da5
--- /dev/null
+++ b/applications/content/template/docbook/params/index.links.to.section.xml
@@ -0,0 +1,76 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="index.links.to.section">
+<refmeta>
+<refentrytitle>index.links.to.section</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.links.to.section</refname>
+<refpurpose>HTML index entries link to container section title</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="index.links.to.section.frag">
+<xsl:param name="index.links.to.section" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero, then an index entry in an index links
+directly to the location of the
+generated <tag>anchor</tag> that is output
+for the indexterm. If two identical indexterm elements
+exist in the same section, then both entries appear
+in the index with the same title but link to different
+locations.</para>
+
+<para>If non-zero, then an index entry in an index links to the
+section title containing the <tag>indexterm</tag>, rather than
+directly to the <tag>anchor</tag> output for the indexterm.
+Duplicate indexterm entries in the same section are dropped.
+</para>
+
+<para>The default value is 1, so index entries link to
+section titles by default.</para>
+
+<para>In both cases, the link text in an index entry is the
+title of the section containing the indexterm.
+That is because HTML does not have numbered pages.
+It also provides the reader with context information
+for each link.</para>
+
+<para>This parameter lets you choose which style of
+index linking you want. </para>
+
+<itemizedlist>
+<listitem>
+<para>When set to 0, an index entry takes you 
+to the precise location of its corresponding indexterm.
+However, if you have a lot of duplicate
+entries in sections, then you have a lot of duplicate
+titles in the index, which makes it more cluttered.
+The reader may not recognize why duplicate titles
+appear until they follow the links. Also, the links
+may land the reader in the middle of a section where the
+section title is not visible, which may also be
+confusing to the reader.</para>
+</listitem>
+<listitem>
+<para>When set to 1, an index entry link is
+less precise, but duplicate titles in the
+index entries are eliminated. 
+Landing on the section title location may confirm the reader's
+expectation that a link that
+shows a section title will take them to that section title,
+not a location within the section.
+</para>
+</listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/index.method.xml b/applications/content/template/docbook/params/index.method.xml
new file mode 100644
index 0000000..2127956
--- /dev/null
+++ b/applications/content/template/docbook/params/index.method.xml
@@ -0,0 +1,162 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="index.method">
+<refmeta>
+<refentrytitle>index.method</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">basic</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kosek</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kimber</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.method</refname>
+<refpurpose>Select method used to group index entries in an index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="index.method.frag">
+<xsl:param name="index.method">basic</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter lets you select which method to use for sorting and grouping
+ index entries in an index.
+Indexes in Latin-based languages that have accented characters typically
+sort together accented words and unaccented words.
+Thus <quote>Á</quote> (U+00C1 LATIN CAPITAL LETTER A WITH ACUTE) would sort together
+with <quote>A</quote> (U+0041 LATIN CAPITAL LETTER A), so both would appear in the <quote>A</quote>
+section of the index.
+Languages using other alphabets (such as Russian,  which is written in the Cyrillic alphabet)
+and languages using ideographic chararacters (such as Japanese)
+require grouping specific to the languages and alphabets.
+</para>
+
+<para>The default indexing method is limited.
+It can group accented characters in Latin-based languages only.
+It cannot handle non-Latin alphabets or ideographic languages.
+The other indexing methods require extensions of one type or
+another, and do not work with
+all XSLT processors, which is why they are not used by default.</para>
+
+<para>The three choices for indexing method are:</para>
+<variablelist>
+<varlistentry>
+<term><literal>basic</literal></term>
+<listitem>
+<para>
+(default)  Sort and groups words based only on the Latin alphabet.
+Words with accented Latin letters will group and sort with
+their respective primary letter, but
+words in non-Latin alphabets will be
+put in the <quote>Symbols</quote> section of the index.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>kosek</literal></term>
+<listitem>
+<para>
+This method sorts and groups words based on letter groups configured in
+the DocBook locale file for the given language.
+See, for example, the French locale file <filename>common/fr.xml</filename>.
+This method requires that the XSLT processor
+supports the EXSLT extensions (most do).
+It also requires support for using 
+user-defined functions in xsl:key (xsltproc does not).
+</para>
+<para>This method is suitable for any language for which you can
+list all the individual characters that should appear
+in each letter group in an index.
+It is probably not practical to use it for ideographic languages
+such as Chinese that have hundreds or thousands of characters.
+</para>
+
+<para>To use the kosek method, you must:</para>
+
+<orderedlist>
+<listitem>
+<para>Use a processor that supports its extensions, such as
+Saxon 6 or Xalan (xsltproc and Saxon 8 do not).
+</para>
+</listitem>
+<listitem>
+<para>Set the index.method parameter's value to <quote>kosek</quote>.
+</para>
+</listitem>
+<listitem>
+<para>Import the appropriate index extensions stylesheet module
+<filename>fo/autoidx-kosek.xsl</filename> or 
+<filename>html/autoidx-kosek.xsl</filename> into your
+customization.
+</para>
+</listitem>
+</orderedlist>
+
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>kimber</literal></term>
+<listitem>
+<para>
+This method uses extensions to the Saxon processor to implement
+sophisticated indexing processes. It uses its own 
+configuration file, which can include information for any number of
+languages. Each language's configuration can group
+words using one of two processes. In the
+enumerated process similar to that used in the kosek method,
+you indicate the groupings character-by-character.
+In the between-key process, you specify the
+break-points in the sort order that should start a new group.
+The latter configuration is useful for ideographic languages
+such as Chinese, Japanese, and Korean.
+You can also define your own collation algorithms and how you
+want mixed Latin-alphabet words sorted.</para>
+<itemizedlist>
+<listitem>
+<para>For a whitepaper describing the extensions, see:
+<link xlink:href="http://www.innodata-isogen.com/knowledge_center/white_papers/back_of_book_for_xsl_fo.pdf">http://www.innodata-isogen.com/knowledge_center/white_papers/back_of_book_for_xsl_fo.pdf</link>.
+</para>
+</listitem>
+<listitem>
+<para>To download the extension library, see
+<link xlink:href="http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport">http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport</link>.
+</para>
+</listitem>
+</itemizedlist>
+
+<para>To use the kimber method, you must:</para>
+
+<orderedlist>
+<listitem>
+<para>Use Saxon (version 6 or 8) as your XSLT processor.
+</para>
+</listitem>
+<listitem>
+<para>Install and configure the Innodata Isogen library, using
+the documentation that comes with it.
+</para>
+</listitem>
+<listitem>
+<para>Set the index.method parameter's value to <quote>kimber</quote>.
+</para>
+</listitem>
+<listitem>
+<para>Import the appropriate index extensions stylesheet module
+<filename>fo/autoidx-kimber.xsl</filename> or 
+<filename>html/autoidx-kimber.xsl</filename> into your
+customization.
+</para>
+</listitem>
+</orderedlist>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/index.number.separator.xml b/applications/content/template/docbook/params/index.number.separator.xml
new file mode 100644
index 0000000..8f51512
--- /dev/null
+++ b/applications/content/template/docbook/params/index.number.separator.xml
@@ -0,0 +1,54 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="index.number.separator">
+<refmeta>
+<refentrytitle>index.number.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.number.separator</refname>
+<refpurpose>Override for punctuation separating page numbers in index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="index.number.separator.frag">
+<xsl:param name="index.number.separator"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you to override the text to insert between
+page references in a formatted index entry.  Typically 
+that would be a comma and a space.
+</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'number-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+override the gentext with the content of this parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+</para>
+
+<para>In HTML index output, section title references are used instead of
+page number references.  This punctuation appears between
+such section titles in an HTML index.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/index.on.role.xml b/applications/content/template/docbook/params/index.on.role.xml
new file mode 100644
index 0000000..81d65dd
--- /dev/null
+++ b/applications/content/template/docbook/params/index.on.role.xml
@@ -0,0 +1,48 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="index.on.role">
+<refmeta>
+<refentrytitle>index.on.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.on.role</refname>
+<refpurpose>Select indexterms based on <tag class="attribute">role</tag> value</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="index.on.role.frag">
+<xsl:param name="index.on.role" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, 
+then an <tag>index</tag> element that has a
+<tag class="attribute">role</tag> attribute
+value will contain only those <tag>indexterm</tag>
+elements with a matching role value.
+If an <tag>index</tag> has no <tag class="attribute">role</tag>
+attribute or it is blank, then the index will contain
+all <tag>indexterm</tag>s in the current scope.
+</para>
+<para>
+If <literal>index.on.role</literal> is zero, then the
+<tag class="attribute">role</tag> attribute has no effect
+on selecting indexterms for an index.
+</para>
+
+<para>If you are using DocBook version 4.3 or later, you should
+use the <tag class="attribute">type</tag> attribute instead of <tag class="attribute">role</tag>
+on <tag>indexterm</tag> and <tag>index</tag>,
+and set the <parameter>index.on.type</parameter> to a nonzero
+value.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/index.on.type.xml b/applications/content/template/docbook/params/index.on.type.xml
new file mode 100644
index 0000000..a5189c7
--- /dev/null
+++ b/applications/content/template/docbook/params/index.on.type.xml
@@ -0,0 +1,52 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="index.on.type">
+<refmeta>
+<refentrytitle>index.on.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.on.type</refname>
+<refpurpose>Select indexterms based on <tag class="attribute">type</tag>
+attribute value</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="index.on.type.frag">
+<xsl:param name="index.on.type" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, 
+then an <tag>index</tag> element that has a
+<tag class="attribute">type</tag> attribute
+value will contain only those <tag>indexterm</tag>
+elements with a matching <tag class="attribute">type</tag> attribute value.
+If an <tag>index</tag> has no <tag class="attribute">type</tag>
+attribute or it is blank, then the index will contain
+all <tag>indexterm</tag>s in the current scope.
+</para>
+
+<para>
+If <literal>index.on.type</literal> is zero, then the
+<tag class="attribute">type</tag> attribute has no effect
+on selecting indexterms for an index.
+</para>
+
+<para>For those using DocBook version 4.2 or earlier,
+the <tag class="attribute">type</tag> attribute is not available
+for index terms.  However, you can achieve the same
+effect by using the <tag class="attribute">role</tag> attribute
+in the same manner on <tag>indexterm</tag>
+and <tag>index</tag>, and setting the stylesheet parameter 
+<parameter>index.on.role</parameter> to a nonzero value.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/index.page.number.properties.xml b/applications/content/template/docbook/params/index.page.number.properties.xml
new file mode 100644
index 0000000..74d105a
--- /dev/null
+++ b/applications/content/template/docbook/params/index.page.number.properties.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="index.page.number.properties">
+<refmeta>
+<refentrytitle>index.page.number.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.page.number.properties</refname>
+<refpurpose>Properties associated with index page numbers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="index.page.number.properties.frag">
+<xsl:attribute-set name="index.page.number.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties associated with page numbers in indexes. 
+Changing color to indicate the page number is a link is
+one possibility.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/index.prefer.titleabbrev.xml b/applications/content/template/docbook/params/index.prefer.titleabbrev.xml
new file mode 100644
index 0000000..3f010ae
--- /dev/null
+++ b/applications/content/template/docbook/params/index.prefer.titleabbrev.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="index.prefer.titleabbrev">
+<refmeta>
+<refentrytitle>index.prefer.titleabbrev</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.prefer.titleabbrev</refname>
+<refpurpose>Should abbreviated titles be used as back references?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="index.prefer.titleabbrev.frag">
+<xsl:param name="index.prefer.titleabbrev" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, and if a <tag>titleabbrev</tag> is defined, the abbreviated title
+is used as the link text of a back reference in the index.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/index.preferred.page.properties.xml b/applications/content/template/docbook/params/index.preferred.page.properties.xml
new file mode 100644
index 0000000..1b7a26f
--- /dev/null
+++ b/applications/content/template/docbook/params/index.preferred.page.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="index.preferred.page.properties">
+<refmeta>
+<refentrytitle>index.preferred.page.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.preferred.page.properties</refname>
+<refpurpose>Properties used to emphasize page number references for
+significant index terms</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="index.preferred.page.properties.frag">
+<xsl:attribute-set name="index.preferred.page.properties">
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties used to emphasize page number references for
+significant index terms (<tag class="attribute">significance</tag>=<tag class="attvalue">preferred</tag>). Currently works only with
+XEP.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/index.range.separator.xml b/applications/content/template/docbook/params/index.range.separator.xml
new file mode 100644
index 0000000..aff09a9
--- /dev/null
+++ b/applications/content/template/docbook/params/index.range.separator.xml
@@ -0,0 +1,57 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="index.range.separator">
+<refmeta>
+<refentrytitle>index.range.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.range.separator</refname>
+<refpurpose>Override for punctuation separating the two numbers
+in a page range in index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="index.range.separator.frag">
+<xsl:param name="index.range.separator"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you
+to override the text to insert between
+the two numbers of a page range in an index.
+This parameter is only used by those XSL-FO processors
+that support an extension for generating such page ranges
+(such as XEP).</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'range-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+override the gentext with the content of this parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+</para>
+
+<para>In HTML index output, section title references are used instead of
+page number references. So there are no page ranges
+and this parameter has no effect.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/index.term.separator.xml b/applications/content/template/docbook/params/index.term.separator.xml
new file mode 100644
index 0000000..ab2f672
--- /dev/null
+++ b/applications/content/template/docbook/params/index.term.separator.xml
@@ -0,0 +1,54 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="index.term.separator">
+<refmeta>
+<refentrytitle>index.term.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>index.term.separator</refname>
+<refpurpose>Override for punctuation separating an index term 
+from its list of page references in an index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="index.term.separator.frag">
+<xsl:param name="index.term.separator"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter permits you to override
+the text to insert between
+the end of an index term and its list of page references.
+Typically that might be a comma and a space.
+</para>
+
+<para>Because this text may be locale dependent,
+this parameter's value is normally taken from a gentext
+template named 'term-separator' in the
+context 'index' in the stylesheet
+locale file for the language
+of the current document.
+This parameter can be used to override the gentext string,
+and would typically be used on the command line.
+This parameter would apply to all languages.
+</para>
+
+<para>So this text string can be customized in two ways.
+You can reset the default gentext string using
+the <parameter>local.l10n.xml</parameter> parameter, or you can
+fill in the content for this normally empty 
+override parameter.
+The content can be a simple string, or it can be
+something more complex such as a call-template.
+For fo output, it could be an <tag>fo:leader</tag>
+element to provide space of a specific length, or a dot leader.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/informal.object.properties.xml b/applications/content/template/docbook/params/informal.object.properties.xml
new file mode 100644
index 0000000..e89cc11
--- /dev/null
+++ b/applications/content/template/docbook/params/informal.object.properties.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="informal.object.properties">
+<refmeta>
+<refentrytitle>informal.object.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informal.object.properties</refname>
+<refpurpose>Properties associated with an informal (untitled) object, such as an informalfigure</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="informal.object.properties.frag"><xsl:attribute-set name="informal.object.properties">
+  <xsl:attribute name="space-before.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">2em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">2em</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>The styling for informal objects in docbook. Specify the spacing before and after the object.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/informalequation.properties.xml b/applications/content/template/docbook/params/informalequation.properties.xml
new file mode 100644
index 0000000..88a57be
--- /dev/null
+++ b/applications/content/template/docbook/params/informalequation.properties.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="informalequation.properties">
+<refmeta>
+<refentrytitle>informalequation.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informalequation.properties</refname>
+<refpurpose>Properties associated with an informalequation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="informalequation.properties.frag">
+<xsl:attribute-set name="informalequation.properties" use-attribute-sets="informal.object.properties"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for informalequations.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/informalexample.properties.xml b/applications/content/template/docbook/params/informalexample.properties.xml
new file mode 100644
index 0000000..90ffb2c
--- /dev/null
+++ b/applications/content/template/docbook/params/informalexample.properties.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="informalexample.properties">
+<refmeta>
+<refentrytitle>informalexample.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informalexample.properties</refname>
+<refpurpose>Properties associated with an informalexample</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="informalexample.properties.frag">
+<xsl:attribute-set name="informalexample.properties" use-attribute-sets="informal.object.properties"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for informalexamples.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/informalfigure.properties.xml b/applications/content/template/docbook/params/informalfigure.properties.xml
new file mode 100644
index 0000000..c766248
--- /dev/null
+++ b/applications/content/template/docbook/params/informalfigure.properties.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="informalfigure.properties">
+<refmeta>
+<refentrytitle>informalfigure.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informalfigure.properties</refname>
+<refpurpose>Properties associated with an informalfigure</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="informalfigure.properties.frag">
+<xsl:attribute-set name="informalfigure.properties" use-attribute-sets="informal.object.properties"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for informalfigures.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/informaltable.properties.xml b/applications/content/template/docbook/params/informaltable.properties.xml
new file mode 100644
index 0000000..c968883
--- /dev/null
+++ b/applications/content/template/docbook/params/informaltable.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="informaltable.properties">
+<refmeta>
+<refentrytitle>informaltable.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>informaltable.properties</refname>
+<refpurpose>Properties associated with the block surrounding an informaltable</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="informaltable.properties.frag">
+<xsl:attribute-set name="informaltable.properties" use-attribute-sets="informal.object.properties"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Block styling properties for informaltables. This parameter should really
+have been called <literal>informaltable.block.properties</literal> or something
+like that, but we’re leaving it to avoid backwards-compatibility
+problems.</para>
+
+<para>See also <parameter>table.table.properties</parameter>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/inherit.keywords.xml b/applications/content/template/docbook/params/inherit.keywords.xml
new file mode 100644
index 0000000..7939a6a
--- /dev/null
+++ b/applications/content/template/docbook/params/inherit.keywords.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="inherit.keywords">
+<refmeta>
+<refentrytitle>inherit.keywords</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>inherit.keywords</refname>
+<refpurpose>Inherit keywords from ancestor elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="inherit.keywords.frag">
+<xsl:param name="inherit.keywords" select="1"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>inherit.keywords</parameter>
+is non-zero, the keyword <literal>meta</literal> for each HTML
+<literal>head</literal> element will include all of the keywords from
+ancestor elements. Otherwise, only the keywords from the current section
+will be used.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/inner.region.content.properties.xml b/applications/content/template/docbook/params/inner.region.content.properties.xml
new file mode 100644
index 0000000..72d9322
--- /dev/null
+++ b/applications/content/template/docbook/params/inner.region.content.properties.xml
@@ -0,0 +1,48 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="inner.region.content.properties">
+<refmeta>
+<refentrytitle>inner.region.content.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>inner.region.content.properties</refname>
+<refpurpose>Properties of running inner side content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="inner.region.content.properties.frag">
+<xsl:attribute-set name="inner.region.content.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The FO stylesheet supports optional side regions
+similar to the header and footer regions.
+Any attributes declared in this attribute-set 
+are applied to the fo:block in the side region
+on the inner side (binding side) of the page.
+This corresponds to the <literal>start</literal>
+region on odd-numbered pages and the <literal>end</literal>
+region on even-numbered pages.
+For single-sided output, it always corresponds to
+the <literal>start</literal> region.</para>
+
+<para>You can customize the template named 
+<literal>inner.region.content</literal> to specify
+the content of the inner side region.</para>
+
+<para>See also
+<parameter>region.inner.properties</parameter>,
+<parameter>page.margin.inner</parameter>, 
+<parameter>body.margin.inner</parameter>,
+and the corresponding <literal>outer</literal>
+parameters.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/insert.link.page.number.xml b/applications/content/template/docbook/params/insert.link.page.number.xml
new file mode 100644
index 0000000..b26c0f6
--- /dev/null
+++ b/applications/content/template/docbook/params/insert.link.page.number.xml
@@ -0,0 +1,69 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="insert.link.page.number">
+<refmeta>
+<refentrytitle>insert.link.page.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.link.page.number</refname>
+<refpurpose>Turns page numbers in link elements on and off</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="insert.link.page.number.frag">
+<xsl:param name="insert.link.page.number">no</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines if
+cross references using the <tag>link</tag> element in
+printed output will
+include standard page number citations.
+It has three possible values.
+</para>
+<variablelist>
+<varlistentry>
+<term>no</term>
+<listitem><para>No page number references will be generated.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>yes</term>
+<listitem><para>Page number references will be generated
+for all <tag>link</tag> elements.
+The style of page reference may be changed
+if an <tag class="attribute">xrefstyle</tag>
+attribute is used.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>maybe</term>
+<listitem><para>Page number references will not be generated
+for a <tag>link</tag> element unless 
+it has an
+<tag class="attribute">xrefstyle</tag>
+attribute whose value specifies a page reference.
+</para></listitem>
+</varlistentry>
+</variablelist>
+
+<para>Although the <tag>xrefstyle</tag> attribute
+can be used to turn the page reference on or off, it cannot be
+used to control the formatting of the page number as it
+can in <tag>xref</tag>.
+In <tag>link</tag> it will always format with
+the style established by the
+gentext template with <literal>name="page.citation"</literal>
+in the <literal>l:context name="xref"</literal>.
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/insert.olink.page.number.xml b/applications/content/template/docbook/params/insert.olink.page.number.xml
new file mode 100644
index 0000000..dc6da3d
--- /dev/null
+++ b/applications/content/template/docbook/params/insert.olink.page.number.xml
@@ -0,0 +1,83 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="insert.olink.page.number">
+<refmeta>
+<refentrytitle>insert.olink.page.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.olink.page.number</refname>
+<refpurpose>Turns page numbers in olinks on and off</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="insert.olink.page.number.frag">
+<xsl:param name="insert.olink.page.number">no</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines if
+cross references made between documents with
+<tag>olink</tag> will 
+include page number citations.
+In most cases this is only applicable to references in printed output.
+</para>
+<para>The parameter has three possible values.
+</para>
+<variablelist>
+<varlistentry>
+<term>no</term>
+<listitem><para>No page number references will be generated for olinks.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>yes</term>
+<listitem><para>Page number references will be generated
+for all <tag>olink</tag> references.
+The style of page reference may be changed
+if an <tag class="attribute">xrefstyle</tag>
+attribute is used.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>maybe</term>
+<listitem><para>Page number references will not be generated
+for an <tag>olink</tag> element unless 
+it has an
+<tag class="attribute">xrefstyle</tag>
+attribute whose value specifies a page reference.
+</para></listitem>
+</varlistentry>
+</variablelist>
+<para>Olinks that point to targets within the same document
+are treated as <tag>xref</tag>s, and controlled by
+the <parameter>insert.xref.page.number</parameter> parameter.
+</para>
+
+<para>Page number references for olinks to
+external documents can only be inserted if the 
+information exists in the olink database. 
+This means each olink target element 
+(<tag>div</tag> or <tag>obj</tag>)
+must have a <tag class="attribute">page</tag> attribute
+whose value is its page number in the target document.
+The XSL stylesheets are not able to extract that information
+during processing because pages have not yet been created in
+XSLT transformation.  Only the XSL-FO processor knows what
+page each element is placed on.
+Therefore some postprocessing must take place to populate
+page numbers in the olink database.
+</para>
+
+
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/insert.olink.pdf.frag.xml b/applications/content/template/docbook/params/insert.olink.pdf.frag.xml
new file mode 100644
index 0000000..e937060
--- /dev/null
+++ b/applications/content/template/docbook/params/insert.olink.pdf.frag.xml
@@ -0,0 +1,68 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="insert.olink.pdf.frag">
+<refmeta>
+<refentrytitle>insert.olink.pdf.frag</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.olink.pdf.frag</refname>
+<refpurpose>Add fragment identifiers for links into PDF files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="insert.olink.pdf.frag.frag">
+<xsl:param name="insert.olink.pdf.frag" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines whether
+the cross reference URIs to PDF documents made with
+<tag>olink</tag> will 
+include fragment identifiers.
+</para>
+
+<para>When forming a URI to link to a PDF document,
+a fragment identifier (typically a '#' followed by an
+id value) appended to the PDF filename can be used by
+the PDF viewer to open
+the PDF file to a location within the document instead of
+the first page.
+However, not all PDF files have id
+values embedded in them, and not all PDF viewers can
+handle fragment identifiers. 
+</para>
+
+<para>If <parameter>insert.olink.pdf.frag</parameter> is set
+to a non-zero value, then any olink targeting a
+PDF file will have the fragment identifier appended to the URI.
+The URI is formed by concatenating the value of the
+<parameter>olink.base.uri</parameter> parameter, the
+value of the <tag class="attribute">baseuri</tag>
+attribute from the <tag class="element">document</tag>
+element in the olink database with the matching
+<tag class="attribute">targetdoc</tag> value,
+and the value of the <tag class="attribute">href</tag>
+attribute for the targeted element in the olink database.
+The <tag class="attribute">href</tag> attribute
+contains the fragment identifier.
+</para>
+
+<para>If <parameter>insert.olink.pdf.frag</parameter> is set
+to zero (the default value), then 
+the <tag class="attribute">href</tag> attribute
+from the olink database
+is not appended to PDF olinks, so the fragment identifier is left off.
+A PDF olink is any olink for which the
+<tag class="attribute">baseuri</tag> attribute
+from the matching <tag class="element">document</tag>
+element in the olink database ends with '.pdf'.
+Any other olinks will still have the fragment identifier added.
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/insert.xref.page.number.xml b/applications/content/template/docbook/params/insert.xref.page.number.xml
new file mode 100644
index 0000000..8c3aa07
--- /dev/null
+++ b/applications/content/template/docbook/params/insert.xref.page.number.xml
@@ -0,0 +1,60 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="insert.xref.page.number">
+<refmeta>
+<refentrytitle>insert.xref.page.number</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>insert.xref.page.number</refname>
+<refpurpose>Turns page numbers in xrefs on and off</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="insert.xref.page.number.frag">
+<xsl:param name="insert.xref.page.number">no</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter determines if
+cross references (<tag>xref</tag>s) in
+printed output will
+include page number citations.
+It has three possible values.
+</para>
+<variablelist>
+<varlistentry>
+<term>no</term>
+<listitem><para>No page number references will be generated.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>yes</term>
+<listitem><para>Page number references will be generated
+for all <tag>xref</tag> elements.
+The style of page reference may be changed
+if an <tag class="attribute">xrefstyle</tag>
+attribute is used.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>maybe</term>
+<listitem><para>Page number references will not be generated
+for an <tag>xref</tag> element unless 
+it has an
+<tag class="attribute">xrefstyle</tag>
+attribute whose value specifies a page reference.
+</para></listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/itemizedlist.label.properties.xml b/applications/content/template/docbook/params/itemizedlist.label.properties.xml
new file mode 100644
index 0000000..49f8ee6
--- /dev/null
+++ b/applications/content/template/docbook/params/itemizedlist.label.properties.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="itemizedlist.label.properties">
+<refmeta>
+<refentrytitle>itemizedlist.label.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>itemizedlist.label.properties</refname>
+<refpurpose>Properties that apply to each label inside itemized list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="itemizedlist.label.properties.frag"><xsl:attribute-set name="itemizedlist.label.properties">
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each label inside itemized list. E.g.:</para>
+<programlisting>&lt;xsl:attribute-set name="itemizedlist.label.properties"&gt;
+  &lt;xsl:attribute name="text-align"&gt;right&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/itemizedlist.label.width.xml b/applications/content/template/docbook/params/itemizedlist.label.width.xml
new file mode 100644
index 0000000..1d2c88c
--- /dev/null
+++ b/applications/content/template/docbook/params/itemizedlist.label.width.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="itemizedlist.label.width">
+<refmeta>
+<refentrytitle>itemizedlist.label.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+  <refname>itemizedlist.label.width</refname>
+<refpurpose>The default width of the label (bullet) in an itemized list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+  <src:fragment xml:id="itemizedlist.label.width.frag">
+    <xsl:param name="itemizedlist.label.width">1.0em</xsl:param>
+  </src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Specifies the default width of the label (usually a bullet or other
+symbol) in an itemized list. You can override the default value on any
+particular list with the “dbfo” processing instruction using the
+“label-width” pseudoattribute.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/itemizedlist.properties.xml b/applications/content/template/docbook/params/itemizedlist.properties.xml
new file mode 100644
index 0000000..d7c7c1d
--- /dev/null
+++ b/applications/content/template/docbook/params/itemizedlist.properties.xml
@@ -0,0 +1,23 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="itemizedlist.properties">
+<refmeta>
+<refentrytitle>itemizedlist.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>itemizedlist.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by itemizedlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="itemizedlist.properties.frag"><xsl:attribute-set name="itemizedlist.properties" use-attribute-sets="list.block.properties">
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each fo:list-block generated by itemizedlist.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/javahelp.encoding.xml b/applications/content/template/docbook/params/javahelp.encoding.xml
new file mode 100644
index 0000000..ba729c8
--- /dev/null
+++ b/applications/content/template/docbook/params/javahelp.encoding.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+	  xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="javahelp.encoding">
+<refmeta>
+<refentrytitle>javahelp.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>javahelp.encoding</refname>
+<refpurpose>Character encoding to use in control files for JavaHelp.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="javahelp.encoding.frag">
+<xsl:param name="javahelp.encoding">iso-8859-1</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+  
+<para>JavaHelp crashes on some characters when written as character
+references. In that case you can use this parameter to select an appropriate encoding.</para>
+  
+</refsection>
+</refentry>
+
+
+
diff --git a/applications/content/template/docbook/params/keep.relative.image.uris.xml b/applications/content/template/docbook/params/keep.relative.image.uris.xml
new file mode 100644
index 0000000..3a5a098
--- /dev/null
+++ b/applications/content/template/docbook/params/keep.relative.image.uris.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="keep.relative.image.uris">
+<refmeta>
+<refentrytitle>keep.relative.image.uris</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>keep.relative.image.uris</refname>
+<refpurpose>Should image URIs be resolved against xml:base?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="keep.relative.image.uris.frag">
+<xsl:param condition="html" name="keep.relative.image.uris" select="1"/>
+<xsl:param condition="fo" name="keep.relative.image.uris" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, relative URIs (in, for example
+<literal>fileref</literal> attributes) will be used in the generated
+output. Otherwise, the URIs will be made absolute with respect to the
+base URI.</para>
+
+<para>Note that the stylesheets calculate (and use) the absolute form
+for some purposes, this only applies to the resulting output.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/keyboard.nav.xml b/applications/content/template/docbook/params/keyboard.nav.xml
new file mode 100644
index 0000000..49b0c0b
--- /dev/null
+++ b/applications/content/template/docbook/params/keyboard.nav.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="keyboard.nav.frag">
+<xsl:param name="keyboard.nav" select="1"/>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/l10n.gentext.default.language.xml b/applications/content/template/docbook/params/l10n.gentext.default.language.xml
new file mode 100644
index 0000000..ed89e06
--- /dev/null
+++ b/applications/content/template/docbook/params/l10n.gentext.default.language.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" 
+	  xml:id="l10n.gentext.default.language">
+  <refmeta>
+    <refentrytitle>l10n.gentext.default.language</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>l10n.gentext.default.language</refname>
+    <refpurpose>Sets the default language for generated text</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+<src:fragment xml:id="l10n.gentext.default.language.frag">
+<xsl:param name="l10n.gentext.default.language">en</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of the <parameter>l10n.gentext.default.language</parameter>
+parameter is used as the language for generated text if no setting is provided
+in the source document.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/l10n.gentext.language.xml b/applications/content/template/docbook/params/l10n.gentext.language.xml
new file mode 100644
index 0000000..ff941c7
--- /dev/null
+++ b/applications/content/template/docbook/params/l10n.gentext.language.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="l10n.gentext.language">
+<refmeta>
+<refentrytitle>l10n.gentext.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.gentext.language</refname>
+<refpurpose>Sets the gentext language</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="l10n.gentext.language.frag">
+<xsl:param name="l10n.gentext.language"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If this parameter is set to any value other than the empty string, its
+value will be used as the value for the language when generating text. Setting
+<parameter>l10n.gentext.language</parameter> overrides any settings within the
+document being formatted.</para>
+
+<para>It's much more likely that you might want to set the
+<parameter>l10n.gentext.default.language</parameter> parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/l10n.gentext.use.xref.language.xml b/applications/content/template/docbook/params/l10n.gentext.use.xref.language.xml
new file mode 100644
index 0000000..d70017a
--- /dev/null
+++ b/applications/content/template/docbook/params/l10n.gentext.use.xref.language.xml
@@ -0,0 +1,53 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="l10n.gentext.use.xref.language">
+<refmeta>
+<refentrytitle>l10n.gentext.use.xref.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.gentext.use.xref.language</refname>
+<refpurpose>Use the language of target when generating cross-reference text?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="l10n.gentext.use.xref.language.frag">
+<xsl:param name="l10n.gentext.use.xref.language" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the language of the target will be used when
+generating cross reference text. Usually, the <quote>current</quote>
+language is used when generating text (that is, the language of the
+element that contains the cross-reference element). But setting this parameter
+allows the language of the element <emphasis>pointed to</emphasis> to control
+the generated text.</para>
+
+<para>Consider the following example:</para>
+
+<informalexample>
+<programlisting>&lt;para lang="en"&gt;See also &lt;xref linkend="chap3"/&gt;.&lt;/para&gt;
+</programlisting>
+</informalexample>
+
+<para>Suppose that Chapter 3 happens to be written in German.
+If <parameter>l10n.gentext.use.xref.language</parameter> is non-zero, the
+resulting text will be something like this:</para>
+
+<blockquote>
+<para>See also Kapital 3.</para>
+</blockquote>
+
+<para>Where the more traditional rendering would be:</para>
+
+<blockquote>
+<para>See also Chapter 3.</para>
+</blockquote>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/l10n.lang.value.rfc.compliant.xml b/applications/content/template/docbook/params/l10n.lang.value.rfc.compliant.xml
new file mode 100644
index 0000000..e0dbd79
--- /dev/null
+++ b/applications/content/template/docbook/params/l10n.lang.value.rfc.compliant.xml
@@ -0,0 +1,57 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="l10n.lang.value.rfc.compliant">
+<refmeta>
+<refentrytitle>l10n.lang.value.rfc.compliant</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>l10n.lang.value.rfc.compliant</refname>
+<refpurpose>Make value of lang attribute RFC compliant?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="l10n.lang.value.rfc.compliant.frag">
+<xsl:param name="l10n.lang.value.rfc.compliant" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, ensure that the values for all <tag class="attribute">lang</tag> attributes in HTML output are RFC
+compliant<footnote><para>Section 8.1.1, <link xlink:href="http://www.w3.org/TR/REC-html40/struct/dirlang.html#h-8.1.1">Language Codes</link>, in the HTML 4.0 Recommendation states that:
+
+<blockquote><para>[RFC1766] defines and explains the language codes
+that must be used in HTML documents.</para>
+<para>Briefly, language codes consist of a primary code and a possibly
+empty series of subcodes:
+
+<literallayout class="monospaced">language-code = primary-code ( "-" subcode )*</literallayout>
+</para>
+<para>And in RFC 1766, <link xlink:href="http://www.ietf.org/rfc/rfc1766.txt">Tags for the Identification
+of Languages</link>, the EBNF for "language tag" is given as:
+
+<literallayout class="monospaced">Language-Tag = Primary-tag *( "-" Subtag )
+Primary-tag = 1*8ALPHA
+Subtag = 1*8ALPHA</literallayout>
+</para>
+</blockquote>
+</para></footnote>.
+
+by taking any underscore characters in any <tag class="attribute">lang</tag> values found in source documents, and
+replacing them with hyphen characters in output HTML files. For
+example, <literal>zh_CN</literal> in a source document becomes
+<literal>zh-CN</literal> in the HTML output form that source.
+
+<note>
+<para>This parameter does not cause any case change in <tag class="attribute">lang</tag> values, because RFC 1766
+explicitly states that all "language tags" (as it calls them) "are
+to be treated as case insensitive".</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/label.from.part.xml b/applications/content/template/docbook/params/label.from.part.xml
new file mode 100644
index 0000000..5deb960
--- /dev/null
+++ b/applications/content/template/docbook/params/label.from.part.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="label.from.part">
+<refmeta>
+<refentrytitle>label.from.part</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>label.from.part</refname>
+<refpurpose>Renumber components in each part?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="label.from.part.frag">
+<xsl:param name="label.from.part" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>label.from.part</parameter> is non-zero, then
+  numbering of components — <tag>preface</tag>,
+  <tag>chapter</tag>, <tag>appendix</tag>, and
+  <tag>reference</tag> (when <tag>reference</tag> occurs at the
+  component level) — is re-started within each
+  <tag>part</tag>.</para>
+<para>If <parameter>label.from.part</parameter> is zero (the
+  default), numbering of components is <emphasis>not</emphasis>
+  re-started within each <tag>part</tag>; instead, components are
+  numbered sequentially throughout each <tag>book</tag>,
+  regardless of whether or not they occur within <tag>part</tag>
+  instances.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/line-height.xml b/applications/content/template/docbook/params/line-height.xml
new file mode 100644
index 0000000..f0f4b32
--- /dev/null
+++ b/applications/content/template/docbook/params/line-height.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="line-height">
+<refmeta>
+<refentrytitle>line-height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>line-height</refname>
+<refpurpose>Specify the line-height property</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="line-height.frag">
+<xsl:param name="line-height">normal</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the line-height property.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/linenumbering.everyNth.xml b/applications/content/template/docbook/params/linenumbering.everyNth.xml
new file mode 100644
index 0000000..0abdf8e
--- /dev/null
+++ b/applications/content/template/docbook/params/linenumbering.everyNth.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="linenumbering.everyNth">
+<refmeta>
+<refentrytitle>linenumbering.everyNth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.everyNth</refname>
+<refpurpose>Indicate which lines should be numbered</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="linenumbering.everyNth.frag">
+<xsl:param name="linenumbering.everyNth">5</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If line numbering is enabled, everyNth line will be
+numbered. Note that numbering is one based, not zero based.
+</para>
+<para>See also <parameter>linenumbering.extension</parameter>,
+<parameter>linenumbering.separator</parameter>,
+<parameter>linenumbering.width</parameter> and
+<parameter>use.extensions</parameter></para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/linenumbering.extension.xml b/applications/content/template/docbook/params/linenumbering.extension.xml
new file mode 100644
index 0000000..726781a
--- /dev/null
+++ b/applications/content/template/docbook/params/linenumbering.extension.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="linenumbering.extension">
+<refmeta>
+<refentrytitle>linenumbering.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.extension</refname>
+<refpurpose>Enable the line numbering extension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="linenumbering.extension.frag">
+<xsl:param name="linenumbering.extension" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, verbatim environments (<tag>address</tag>, <tag>literallayout</tag>,
+<tag>programlisting</tag>, <tag>screen</tag>, <tag>synopsis</tag>) that specify line numbering will
+have line numbers.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/linenumbering.separator.xml b/applications/content/template/docbook/params/linenumbering.separator.xml
new file mode 100644
index 0000000..8bf7d22
--- /dev/null
+++ b/applications/content/template/docbook/params/linenumbering.separator.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="linenumbering.separator">
+<refmeta>
+<refentrytitle>linenumbering.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.separator</refname>
+<refpurpose>Specify a separator between line numbers and lines</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="linenumbering.separator.frag">
+<xsl:param name="linenumbering.separator"><xsl:text> </xsl:text></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The separator is inserted between line numbers and lines in the
+verbatim environment. The default value is a single white space.
+ Note the interaction with <parameter>linenumbering.width</parameter>
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/linenumbering.width.xml b/applications/content/template/docbook/params/linenumbering.width.xml
new file mode 100644
index 0000000..78515c3
--- /dev/null
+++ b/applications/content/template/docbook/params/linenumbering.width.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="linenumbering.width">
+<refmeta>
+<refentrytitle>linenumbering.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>linenumbering.width</refname>
+<refpurpose>Indicates the width of line numbers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="linenumbering.width.frag">
+<xsl:param name="linenumbering.width">3</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If line numbering is enabled, line numbers will appear right
+justified in a field "width" characters wide.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/link.mailto.url.xml b/applications/content/template/docbook/params/link.mailto.url.xml
new file mode 100644
index 0000000..0715b32
--- /dev/null
+++ b/applications/content/template/docbook/params/link.mailto.url.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="link.mailto.url">
+<refmeta>
+<refentrytitle>link.mailto.url</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>link.mailto.url</refname>
+<refpurpose>Mailto URL for the LINK REL=made HTML HEAD element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="link.mailto.url.frag">
+<xsl:param name="link.mailto.url"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If not the empty string, this address will be used for the
+rel=made <literal>link</literal> element in the html <literal>head</literal>
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/list.block.properties.xml b/applications/content/template/docbook/params/list.block.properties.xml
new file mode 100644
index 0000000..dbf9dfc
--- /dev/null
+++ b/applications/content/template/docbook/params/list.block.properties.xml
@@ -0,0 +1,25 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="list.block.properties">
+<refmeta>
+<refentrytitle>list.block.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>list.block.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="list.block.properties.frag"><xsl:attribute-set name="list.block.properties">
+  <xsl:attribute name="provisional-label-separation">0.2em</xsl:attribute>
+  <xsl:attribute name="provisional-distance-between-starts">1.5em</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each fo:list-block generated by itemizedlist/orderedlist.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/list.block.spacing.xml b/applications/content/template/docbook/params/list.block.spacing.xml
new file mode 100644
index 0000000..377e6f8
--- /dev/null
+++ b/applications/content/template/docbook/params/list.block.spacing.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="list.block.spacing">
+<refmeta>
+<refentrytitle>list.block.spacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>list.block.spacing</refname>
+<refpurpose>What spacing do you want before and after lists?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="list.block.spacing.frag"><xsl:attribute-set name="list.block.spacing">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify the spacing required before and after a list. It is necessary to specify the space after a list block because lists can come inside of paras.  </para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/list.item.spacing.xml b/applications/content/template/docbook/params/list.item.spacing.xml
new file mode 100644
index 0000000..2191652
--- /dev/null
+++ b/applications/content/template/docbook/params/list.item.spacing.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="list.item.spacing">
+<refmeta>
+<refentrytitle>list.item.spacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>list.item.spacing</refname>
+<refpurpose>What space do you want between list items?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="list.item.spacing.frag"><xsl:attribute-set name="list.item.spacing">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify what spacing you want between each list item.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/make.clean.html.xml b/applications/content/template/docbook/params/make.clean.html.xml
new file mode 100644
index 0000000..fbf80d0
--- /dev/null
+++ b/applications/content/template/docbook/params/make.clean.html.xml
@@ -0,0 +1,51 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="make.clean.html">
+<refmeta>
+<refentrytitle>make.clean.html</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.clean.html</refname>
+<refpurpose>Make HTML conform to modern coding standards</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="make.clean.html.frag">
+<xsl:param name="make.clean.html" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>make.clean.html</parameter> is true, the stylesheets take
+extra effort to ensure that the resulting HTML is conforms to
+modern HTML coding standards.  In addition to eliminating
+excessive and noncompliant coding, it moves presentation
+HTML coding to a CSS stylesheet.</para>
+
+<para>The resulting HTML is dependent on
+CSS for formatting, and so the stylesheet is capable of
+generating a supporting CSS file. The <parameter>docbook.css.source</parameter>
+and <parameter>custom.css.source</parameter> parameters control
+how a CSS file is generated.</para>
+
+<para>If you require your CSS to reside in the HTML 
+<tag>head</tag> element, then the <parameter>generate.css.header</parameter>
+can be used to do that.</para>
+
+<para>The <parameter>make.clean.html</parameter> parameter is
+different from <parameter>html.cleanup</parameter>
+because the former changes the resulting markup; it does not use extension functions
+like the latter to manipulate result-tree-fragments,
+and is therefore applicable to any XSLT processor.</para>
+
+<para>If <parameter>make.clean.html</parameter> is set to zero (the default),
+then the stylesheet retains its original 
+<quote>old style</quote>
+HTML formatting features.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/make.graphic.viewport.xml b/applications/content/template/docbook/params/make.graphic.viewport.xml
new file mode 100644
index 0000000..0bad336
--- /dev/null
+++ b/applications/content/template/docbook/params/make.graphic.viewport.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="make.graphic.viewport">
+<refmeta>
+<refentrytitle>make.graphic.viewport</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.graphic.viewport</refname>
+<refpurpose>Use tables in HTML to make viewports for graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="make.graphic.viewport.frag">
+<xsl:param name="make.graphic.viewport" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The HTML <tag>img</tag> element only supports the notion
+of content-area scaling; it doesn't support the distinction between a
+content-area and a viewport-area, so we have to make some compromises.</para>
+
+<para>If <parameter>make.graphic.viewport</parameter> is non-zero, a table
+will be used to frame the image. This creates an effective viewport-area.
+</para>
+
+<para>Tables and alignment don't work together, so this parameter is ignored
+if alignment is specified on an image.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/make.index.markup.xml b/applications/content/template/docbook/params/make.index.markup.xml
new file mode 100644
index 0000000..7942b5a
--- /dev/null
+++ b/applications/content/template/docbook/params/make.index.markup.xml
@@ -0,0 +1,73 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="make.index.markup">
+<refmeta>
+<refentrytitle>make.index.markup</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.index.markup</refname>
+<refpurpose>Generate XML index markup in the index?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="make.index.markup.frag">
+<xsl:param name="make.index.markup" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter enables a very neat trick for getting properly
+merged, collated back-of-the-book indexes. G. Ken Holman suggested
+this trick at Extreme Markup Languages 2002 and I'm indebted to him
+for it.</para>
+
+<para>Jeni Tennison's excellent code in
+<filename>autoidx.xsl</filename> does a great job of merging and
+sorting <tag>indexterm</tag>s in the document and building a
+back-of-the-book index. However, there's one thing that it cannot
+reasonably be expected to do: merge page numbers into ranges. (I would
+not have thought that it could collate and suppress duplicate page
+numbers, but in fact it appears to manage that task somehow.)</para>
+
+<para>Ken's trick is to produce a document in which the index at the
+back of the book is <quote>displayed</quote> in XML. Because the index
+is generated by the FO processor, all of the page numbers have been resolved.
+It's a bit hard to explain, but what it boils down to is that instead of having
+an index at the back of the book that looks like this:</para>
+
+<blockquote>
+<formalpara><info><title>A</title></info>
+<para>ap1, 1, 2, 3</para>
+</formalpara>
+</blockquote>
+
+<para>you get one that looks like this:</para>
+
+<blockquote>
+<programlisting>&lt;indexdiv&gt;A&lt;/indexdiv&gt;
+&lt;indexentry&gt;
+&lt;primaryie&gt;ap1&lt;/primaryie&gt;,
+&lt;phrase role="pageno"&gt;1&lt;/phrase&gt;,
+&lt;phrase role="pageno"&gt;2&lt;/phrase&gt;,
+&lt;phrase role="pageno"&gt;3&lt;/phrase&gt;
+&lt;/indexentry&gt;</programlisting>
+</blockquote>
+
+<para>After building a PDF file with this sort of odd-looking index, you can
+extract the text from the PDF file and the result is a proper index expressed in
+XML.</para>
+
+<para>Now you have data that's amenable to processing and a simple Perl script
+(such as <filename>fo/pdf2index</filename>) can
+merge page ranges and generate a proper index.</para>
+
+<para>Finally, reformat your original document using this literal index instead of
+an automatically generated one and <quote>bingo</quote>!</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/make.single.year.ranges.xml b/applications/content/template/docbook/params/make.single.year.ranges.xml
new file mode 100644
index 0000000..c49ab97
--- /dev/null
+++ b/applications/content/template/docbook/params/make.single.year.ranges.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="make.single.year.ranges">
+<refmeta>
+<refentrytitle>make.single.year.ranges</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.single.year.ranges</refname>
+<refpurpose>Print single-year ranges (e.g., 1998-1999)</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="make.single.year.ranges.frag">
+<xsl:param name="make.single.year.ranges" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, year ranges that span a single year will be printed
+in range notation (1998-1999) instead of discrete notation
+(1998, 1999).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/make.valid.html.xml b/applications/content/template/docbook/params/make.valid.html.xml
new file mode 100644
index 0000000..8618d39
--- /dev/null
+++ b/applications/content/template/docbook/params/make.valid.html.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="make.valid.html">
+<refmeta>
+<refentrytitle>make.valid.html</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.valid.html</refname>
+<refpurpose>Attempt to make sure the HTML output is valid HTML</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="make.valid.html.frag">
+<xsl:param name="make.valid.html" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>make.valid.html</parameter> is true, the stylesheets take
+extra effort to ensure that the resulting HTML is valid. This may mean that some
+<tag>para</tag> tags are translated into HTML <tag>div</tag>s or
+that other substitutions occur.</para>
+
+<para>This parameter is different from <parameter>html.cleanup</parameter>
+because it changes the resulting markup; it does not use extension functions
+to manipulate result-tree-fragments and is therefore applicable to any
+XSLT processor.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/make.year.ranges.xml b/applications/content/template/docbook/params/make.year.ranges.xml
new file mode 100644
index 0000000..b1a2382
--- /dev/null
+++ b/applications/content/template/docbook/params/make.year.ranges.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="make.year.ranges">
+<refmeta>
+<refentrytitle>make.year.ranges</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>make.year.ranges</refname>
+<refpurpose>Collate copyright years into ranges?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="make.year.ranges.frag"><xsl:param name="make.year.ranges" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, multiple copyright <tag>year</tag> elements will be
+collated into ranges.
+This works only if each year number is put into a separate
+year element.  The copyright element permits multiple
+year elements. If a year element contains a dash or
+a comma, then that year element will not be merged into
+any range.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.authors.section.enabled.xml b/applications/content/template/docbook/params/man.authors.section.enabled.xml
new file mode 100644
index 0000000..73cb637
--- /dev/null
+++ b/applications/content/template/docbook/params/man.authors.section.enabled.xml
@@ -0,0 +1,46 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.authors.section.enabled">
+<refmeta>
+<refentrytitle>man.authors.section.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.authors.section.enabled</refname>
+<refpurpose>Display auto-generated AUTHORS section?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="man.authors.section.enabled.frag">
+<xsl:param name="man.authors.section.enabled">1</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>man.authors.section.enabled</parameter> is non-zero
+(the default), then an <literal>AUTHORS</literal> section is
+generated near the end of each man page. The output of the
+<literal>AUTHORS</literal> section is assembled from any
+<tag>author</tag>, <tag>editor</tag>, and <tag>othercredit</tag>
+metadata found in the contents of the child <tag>info</tag> or
+<tag>refentryinfo</tag> (if any) of the <tag>refentry</tag>
+itself, or from any <tag>author</tag>, <tag>editor</tag>, and
+<tag>othercredit</tag> metadata that may appear in <tag>info</tag>
+contents of any ancestors of the <tag>refentry</tag>.</para>
+
+<para>If the value of
+<parameter>man.authors.section.enabled</parameter> is zero, the
+the auto-generated <literal>AUTHORS</literal> section is
+suppressed.</para>
+
+<para>Set the value of
+  <parameter>man.authors.section.enabled</parameter> to zero if
+  you want to have a manually created <literal>AUTHORS</literal>
+  section in your source, and you want it to appear in output
+  instead of the auto-generated <literal>AUTHORS</literal>
+  section.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.base.url.for.relative.links.xml b/applications/content/template/docbook/params/man.base.url.for.relative.links.xml
new file mode 100644
index 0000000..a802ec8
--- /dev/null
+++ b/applications/content/template/docbook/params/man.base.url.for.relative.links.xml
@@ -0,0 +1,76 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.base.url.for.relative.links">
+  <refmeta>
+    <refentrytitle>man.base.url.for.relative.links</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>man.base.url.for.relative.links</refname>
+    <refpurpose>Specifies a base URL for relative links</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <src:fragment xml:id="man.base.url.for.relative.links.frag"><xsl:param name="man.base.url.for.relative.links">[set $man.base.url.for.relative.links]/</xsl:param></src:fragment>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>For any “notesource” listed in the auto-generated
+      “NOTES” section of output man pages (which is generated when
+      the value of the
+      <parameter>man.endnotes.list.enabled</parameter> parameter
+      is non-zero), if the notesource is a link source with a
+      relative URI, the URI is displayed in output with the value
+      of the
+      <parameter>man.base.url.for.relative.links</parameter>
+      parameter prepended to the value of the link URI.</para>
+
+    <note>
+      <para>A link source is an notesource that references an
+        external resource:
+        <itemizedlist>
+          <listitem>
+            <para>a <tag>ulink</tag> element with a <tag
+                class="attribute">url</tag> attribute</para>
+          </listitem>
+          <listitem>
+            <para>any element with an <tag
+                class="attribute">xlink:href</tag> attribute</para>
+          </listitem>
+          <listitem>
+            <para>an <tag>imagedata</tag>, <tag>audiodata</tag>, or
+              <tag>videodata</tag> element</para>
+          </listitem>
+        </itemizedlist>
+      </para>
+    </note>
+
+    <para>If you use relative URIs in link sources in your DocBook
+      <tag>refentry</tag> source, and you leave
+      <parameter>man.base.url.for.relative.links</parameter>
+      unset, the relative links will appear “as is” in the “Notes”
+      section of any man-page output generated from your source.
+      That’s probably not what you want, because such relative
+      links are only usable in the context of HTML output. So, to
+      make the links meaningful and usable in the context of
+      man-page output, set a value for
+      <parameter>man.base.url.for.relative.links</parameter> that
+      points to the online version of HTML output generated from
+      your DocBook <tag>refentry</tag> source. For
+      example:
+      <programlisting
+        >&lt;xsl:param name="man.base.url.for.relative.links"
+        >http://www.kernel.org/pub/software/scm/git/docs/&lt;/xsl:param></programlisting>
+    </para>
+
+  </refsection>
+
+  <refsection><info><title>Related Parameters</title></info>
+    <para><parameter>man.endnotes.list.enabled</parameter></para>
+  </refsection>
+
+</refentry>
diff --git a/applications/content/template/docbook/params/man.break.after.slash.xml b/applications/content/template/docbook/params/man.break.after.slash.xml
new file mode 100644
index 0000000..859edb7
--- /dev/null
+++ b/applications/content/template/docbook/params/man.break.after.slash.xml
@@ -0,0 +1,46 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.break.after.slash">
+<refmeta>
+<refentrytitle>man.break.after.slash</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.break.after.slash</refname>
+<refpurpose>Enable line-breaking after slashes?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.break.after.slash.frag">
+<xsl:param name="man.break.after.slash">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, line-breaking after slashes is enabled. This is
+mainly useful for causing long URLs or pathnames/filenames to be
+broken up or "wrapped" across lines (though it also has the side
+effect of sometimes causing relatively short URLs and pathnames to be
+broken up across lines too).</para>
+
+<para>If zero (the default), line-breaking after slashes is
+disabled. In that case, strings containing slashes (for example, URLs
+or filenames) are not broken across lines, even if they exceed the
+maximum column widith.</para>
+
+<warning>
+  <para>If you set a non-zero value for this parameter, check your
+  man-page output carefuly afterwards, in order to make sure that the
+  setting has not introduced an excessive amount of breaking-up of URLs
+  or pathnames. If your content contains mostly short URLs or
+  pathnames, setting a non-zero value for
+  <parameter>man.break.after.slash</parameter> will probably result in
+  in a significant number of relatively short URLs and pathnames being
+  broken across lines, which is probably not what you want.</para>
+</warning>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.charmap.enabled.xml b/applications/content/template/docbook/params/man.charmap.enabled.xml
new file mode 100644
index 0000000..5522339
--- /dev/null
+++ b/applications/content/template/docbook/params/man.charmap.enabled.xml
@@ -0,0 +1,55 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.charmap.enabled">
+<refmeta>
+<refentrytitle>man.charmap.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.enabled</refname>
+<refpurpose>Apply character map before final output?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.charmap.enabled.frag">
+<xsl:param name="man.charmap.enabled" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the <parameter>man.charmap.enabled</parameter>
+parameter is non-zero, a "character map" is used to substitute certain
+Unicode symbols and special characters with appropriate roff/groff
+equivalents, just before writing each man-page file to the
+filesystem. If instead the value of
+<parameter>man.charmap.enabled</parameter> is zero, Unicode characters
+are passed through "as is".</para>
+
+<refsection><info><title>Details</title></info>
+
+<para>For converting certain Unicode symbols and special characters in
+UTF-8 or UTF-16 encoded XML source to appropriate groff/roff
+equivalents in man-page output, the DocBook XSL Stylesheets
+distribution includes a <link xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">roff character map</link> that is compliant with the <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character
+map</link> format as detailed in the XSLT 2.0 specification. The map
+contains more than 800 character mappings and can be considered the
+standard roff character map for the distribution.</para>
+
+<para>You can use the <parameter>man.charmap.uri</parameter>
+parameter to specify a URI for the location for an alternate roff
+character map to use in place of the standard roff character map
+provided in the distribution.</para>
+
+<para>You can also use a subset of a character map. For details,
+see the <parameter>man.charmap.use.subset</parameter>,
+<parameter>man.charmap.subset.profile</parameter>, and
+<parameter>man.charmap.subset.profile.english</parameter>
+parameters.</para>
+
+</refsection>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.charmap.subset.profile.english.xml b/applications/content/template/docbook/params/man.charmap.subset.profile.english.xml
new file mode 100644
index 0000000..cbc9fb0
--- /dev/null
+++ b/applications/content/template/docbook/params/man.charmap.subset.profile.english.xml
@@ -0,0 +1,80 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.charmap.subset.profile.english">
+<refmeta>
+<refentrytitle>man.charmap.subset.profile.english</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.subset.profile.english</refname>
+<refpurpose>Profile of character map subset</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.charmap.subset.profile.english.frag">
+<xsl:param name="man.charmap.subset.profile.english">
+@*[local-name() = 'block'] = 'Miscellaneous Technical' or
+(@*[local-name() = 'block'] = 'C1 Controls And Latin-1 Supplement (Latin-1 Supplement)' and
+ @*[local-name() = 'class'] = 'symbols')
+or
+(@*[local-name() = 'block'] = 'General Punctuation' and
+ (@*[local-name() = 'class'] = 'spaces' or
+  @*[local-name() = 'class'] = 'dashes' or
+  @*[local-name() = 'class'] = 'quotes' or
+  @*[local-name() = 'class'] = 'bullets'
+ )
+) or
+@*[local-name() = 'name'] = 'HORIZONTAL ELLIPSIS' or
+@*[local-name() = 'name'] = 'WORD JOINER' or
+@*[local-name() = 'name'] = 'SERVICE MARK' or
+@*[local-name() = 'name'] = 'TRADE MARK SIGN' or
+@*[local-name() = 'name'] = 'ZERO WIDTH NO-BREAK SPACE'
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+  <parameter>man.charmap.use.subset</parameter> parameter is
+  non-zero, and your DocBook source is written in English (that
+  is, if its <tag class="attribute">lang</tag> or <tag
+    class="attribute">xml:lang</tag> attribute on the root element
+  in your DocBook source or on the first <tag>refentry</tag>
+  element in your source has the value <literal>en</literal> or if
+  it has no <tag class="attribute">lang</tag> or <tag
+    class="attribute">xml:lang</tag> attribute), then the
+  character-map subset specified by the
+  <parameter>man.charmap.subset.profile.english</parameter>
+  parameter is used instead of the full roff character map.</para>
+
+<para>Otherwise, if the <tag class="attribute">lang</tag> or <tag
+    class="attribute">xml:lang</tag> attribute
+  on the root element in your DocBook source or on the first
+  <tag>refentry</tag> element in your source has a value other
+  than <literal>en</literal>, then the character-map subset
+  specified by the
+  <parameter>man.charmap.subset.profile</parameter> parameter is
+  used instead of
+  <parameter>man.charmap.subset.profile.english</parameter>.</para>
+
+<para>The difference between the two subsets is that
+  <parameter>man.charmap.subset.profile</parameter> provides
+  mappings for characters in Western European languages that are
+  not part of the Roman (English) alphabet (ASCII character set).</para>
+
+<para>The value of <parameter>man.charmap.subset.profile.english</parameter>
+is a string representing an XPath expression that matches attribute
+names and values for <tag
+  namespace="http://docbook.sf.net/xmlns/unichar/1.0"
+  >output-character</tag> elements in the character map.</para>
+
+<para>For other details, see the documentation for the
+<parameter>man.charmap.subset.profile.english</parameter> and
+<parameter>man.charmap.use.subset</parameter> parameters.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.charmap.subset.profile.xml b/applications/content/template/docbook/params/man.charmap.subset.profile.xml
new file mode 100644
index 0000000..913a4e3
--- /dev/null
+++ b/applications/content/template/docbook/params/man.charmap.subset.profile.xml
@@ -0,0 +1,297 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.charmap.subset.profile">
+<refmeta>
+<refentrytitle>man.charmap.subset.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.subset.profile</refname>
+<refpurpose>Profile of character map subset</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.charmap.subset.profile.frag">
+<xsl:param name="man.charmap.subset.profile">
+@*[local-name() = 'block'] = 'Miscellaneous Technical' or
+(@*[local-name() = 'block'] = 'C1 Controls And Latin-1 Supplement (Latin-1 Supplement)' and
+ (@*[local-name() = 'class'] = 'symbols' or
+  @*[local-name() = 'class'] = 'letters')
+) or
+@*[local-name() = 'block'] = 'Latin Extended-A'
+or
+(@*[local-name() = 'block'] = 'General Punctuation' and
+ (@*[local-name() = 'class'] = 'spaces' or
+  @*[local-name() = 'class'] = 'dashes' or
+  @*[local-name() = 'class'] = 'quotes' or
+  @*[local-name() = 'class'] = 'bullets'
+ )
+) or
+@*[local-name() = 'name'] = 'HORIZONTAL ELLIPSIS' or
+@*[local-name() = 'name'] = 'WORD JOINER' or
+@*[local-name() = 'name'] = 'SERVICE MARK' or
+@*[local-name() = 'name'] = 'TRADE MARK SIGN' or
+@*[local-name() = 'name'] = 'ZERO WIDTH NO-BREAK SPACE'
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.charmap.use.subset</parameter> parameter is non-zero,
+and your DocBook source is not written in English (that
+  is, if the <tag class="attribute">lang</tag> or <tag
+    class="attribute">xml:lang</tag> attribute on the root element
+  in your DocBook source or on the first <tag>refentry</tag>
+  element in your source has a value other than
+  <literal>en</literal>), then the character-map subset specified
+  by the <parameter>man.charmap.subset.profile</parameter>
+  parameter is used instead of the full roff character map.</para>
+
+<para>Otherwise, if the <tag class="attribute">lang</tag> or <tag
+    class="attribute">xml:lang</tag> attribute on the root
+  element in your DocBook
+  source or on the first <tag>refentry</tag> element in your source
+  has the value <literal>en</literal> or if it has no <tag
+    class="attribute">lang</tag> or <tag
+    class="attribute">xml:lang</tag> attribute, then the character-map
+  subset specified by the
+  <parameter>man.charmap.subset.profile.english</parameter>
+  parameter is used instead of
+  <parameter>man.charmap.subset.profile</parameter>.</para>
+
+<para>The difference between the two subsets is that
+  <parameter>man.charmap.subset.profile</parameter> provides
+  mappings for characters in Western European languages that are
+  not part of the Roman (English) alphabet (ASCII character set).</para>
+
+<para>The value of <parameter>man.charmap.subset.profile</parameter>
+is a string representing an XPath expression that matches attribute
+names and values for <tag
+  namespace="http://docbook.sf.net/xmlns/unichar/1.0">output-character</tag>
+elements in the character map.</para>
+
+<para>The attributes supported in the <link xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">standard roff character map included in the distribution</link> are:
+<variablelist>
+  <varlistentry>
+    <term>character</term>
+    <listitem>
+      <simpara>a raw Unicode character or numeric Unicode
+      character-entity value (either in decimal or hex); all
+      characters have this attribute</simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>name</term>
+    <listitem>
+      <simpara>a standard full/long ISO/Unicode character name (e.g.,
+      "OHM SIGN"); all characters have this attribute</simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>block</term>
+    <listitem>
+      <simpara>a standard Unicode "block" name (e.g., "General
+      Punctuation"); all characters have this attribute. For the full
+      list of Unicode block names supported in the standard roff
+      character map, see <xref linkend="BlocksAndClasses"/>.</simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>class</term>
+    <listitem>
+      <simpara>a class of characters (e.g., "spaces"). Not all
+      characters have this attribute; currently, it is used only with
+      certain characters within the "C1 Controls And Latin-1
+      Supplement" and "General Punctuation" blocks. For details, see
+      <xref linkend="BlocksAndClasses"/>.</simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>entity</term>
+    <listitem>
+      <simpara>an ISO entity name (e.g., "ohm"); not all characters
+      have this attribute, because not all characters have ISO entity
+      names; for example, of the 800 or so characters in the standard
+      roff character map included in the distribution, only around 300
+      have ISO entity names.
+      </simpara>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>string</term>
+    <listitem>
+      <simpara>a string representing an roff/groff escape-code (with
+      "@esc@" used in place of the backslash), or a simple ASCII
+      string; all characters in the roff character map have this
+      attribute</simpara>
+    </listitem>
+  </varlistentry>
+</variablelist>
+</para>
+<para>The value of <parameter>man.charmap.subset.profile</parameter>
+is evaluated as an XPath expression at run-time to select a portion of
+the roff character map to use. You can tune the subset used by adding
+or removing parts. For example, if you need to use a wide range of
+mathematical operators in a document, and you want to have them
+converted into roff markup properly, you might add the following:
+
+<literallayout class="monospaced">  @*[local-name() = 'block'] ='MathematicalOperators' </literallayout>
+
+That will cause a additional set of around 67 additional "math"
+characters to be converted into roff markup. </para>
+
+<note>
+<para>Depending on which XSLT engine you use, either the EXSLT
+<function>dyn:evaluate</function> extension function (for xsltproc or
+Xalan) or <function>saxon:evaluate</function> extension function (for
+Saxon) are used to dynamically evaluate the value of
+<parameter>man.charmap.subset.profile</parameter> at run-time. If you
+don't use xsltproc, Saxon, Xalan -- or some other XSLT engine that
+supports <function>dyn:evaluate</function> -- you must either set the
+value of the <parameter>man.charmap.use.subset</parameter> parameter
+to zero and process your documents using the full character map
+instead, or set the value of the
+<parameter>man.charmap.enabled</parameter> parameter to zero instead
+(so that character-map processing is disabled completely.</para>
+</note>
+
+<para>An alternative to using
+<parameter>man.charmap.subset.profile</parameter> is to create your
+own custom character map, and set the value of
+<parameter>man.charmap.uri</parameter> to the URI/filename for
+that. If you use a custom character map, you will probably want to
+include in it just the characters you want to use, and so you will
+most likely also want to set the value of
+<parameter>man.charmap.use.subset</parameter> to zero.</para>
+<para>You can create a
+custom character map by making a copy of the <link xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">standard roff character map</link> provided in the distribution, and
+then adding to, changing, and/or deleting from that.</para>
+
+<caution>
+<para>If you author your DocBook XML source in UTF-8 or UTF-16
+encoding and aren't sure what OSes or environments your man-page
+output might end up being viewed on, and not sure what version of
+nroff/groff those environments might have, you should be careful about
+what Unicode symbols and special characters you use in your source and
+what parts you add to the value of
+<parameter>man.charmap.subset.profile</parameter>.</para>
+<para>Many of the escape codes used are specific to groff and using
+them may not provide the expected output on an OS or environment that
+uses nroff instead of groff.</para>
+<para>On the other hand, if you intend for your man-page output to be
+viewed only on modern systems (for example, GNU/Linux systems, FreeBSD
+systems, or Cygwin environments) that have a good, up-to-date groff,
+then you can safely include a wide range of Unicode symbols and
+special characters in your UTF-8 or UTF-16 encoded DocBook XML source
+and add any of the supported Unicode block names to the value of
+<parameter>man.charmap.subset.profile</parameter>.</para>
+</caution>
+
+
+<para>For other details, see the documentation for the
+<parameter>man.charmap.use.subset</parameter> parameter.</para>
+
+<refsection xml:id="BlocksAndClasses"><info><title>Supported Unicode block names and "class" values</title></info>
+  
+
+  <para>Below is the full list of Unicode block names and "class"
+  values supported in the standard roff stylesheet provided in the
+  distribution, along with a description of which codepoints from the
+  Unicode range corresponding to that block name or block/class
+  combination are supported.</para>
+
+  <itemizedlist>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=C1%20Controls%20and%20Latin-1%20Supplement%20(Latin-1%20Supplement)">C1 Controls And Latin-1 Supplement (Latin-1 Supplement)</link> (x00a0 to x00ff)
+      <itemizedlist><info><title>class values</title></info>
+        
+        <listitem>
+          <para>symbols</para>
+        </listitem>
+        <listitem>
+          <para>letters</para>
+        </listitem>
+      </itemizedlist></para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Latin%20Extended-A">Latin Extended-A</link> (x0100 to x017f, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Spacing%20Modifier%20Letters">Spacing Modifier Letters</link> (x02b0 to x02ee, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Greek%20and%20Coptic">Greek and Coptic</link> (x0370 to x03ff, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=General%20Punctuation">General Punctuation</link> (x2000 to x206f, partial)
+      <itemizedlist><info><title>class values</title></info>
+        
+        <listitem>
+          <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;start=8192&amp;end=8203">spaces</link></para>
+        </listitem>
+        <listitem>
+          <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;start=8208&amp;end=8213">dashes</link></para>
+        </listitem>
+        <listitem>
+          <para>quotes</para>
+        </listitem>
+        <listitem>
+          <para>daggers</para>
+        </listitem>
+        <listitem>
+          <para>bullets</para>
+        </listitem>
+        <listitem>
+          <para>leaders</para>
+        </listitem>
+        <listitem>
+          <para>primes</para>
+        </listitem>
+      </itemizedlist>
+      </para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Superscripts%20and%20Subscripts">Superscripts and Subscripts</link> (x2070 to x209f)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Currency%20Symbols">Currency Symbols</link> (x20a0 to x20b1)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Letterlike%20Symbols">Letterlike Symbols</link> (x2100 to x214b)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Number%20Forms">Number Forms</link> (x2150 to x218f)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Arrows">Arrows</link> (x2190 to x21ff, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Mathematical%20Operators">Mathematical Operators</link> (x2200 to x22ff, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Control%20Pictures">Control Pictures</link> (x2400 to x243f)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Enclosed%20Alphanumerics">Enclosed Alphanumerics</link> (x2460 to x24ff)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Geometric%20Shapes">Geometric Shapes</link> (x25a0 to x25f7, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Miscellaneous%20Symbols">Miscellaneous Symbols</link> (x2600 to x26ff, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Dingbats">Dingbats</link> (x2700 to x27be, partial)</para>
+    </listitem>
+    <listitem>
+      <para><link xlink:href="http://zvon.org/other/charSearch/PHP/search.php?searchType=103&amp;id=Alphabetic%20Presentation%20Forms">Alphabetic Presentation Forms</link> (xfb00 to xfb04 only)</para>
+    </listitem>
+  </itemizedlist>
+</refsection>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.charmap.uri.xml b/applications/content/template/docbook/params/man.charmap.uri.xml
new file mode 100644
index 0000000..0c8f574
--- /dev/null
+++ b/applications/content/template/docbook/params/man.charmap.uri.xml
@@ -0,0 +1,42 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.charmap.uri">
+<refmeta>
+<refentrytitle>man.charmap.uri</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.uri</refname>
+<refpurpose>URI for custom roff character map</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.charmap.uri.frag">
+<xsl:param name="man.charmap.uri"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>For converting certain Unicode symbols and special characters in
+UTF-8 or UTF-16 encoded XML source to appropriate groff/roff
+equivalents in man-page output, the DocBook XSL Stylesheets
+distribution includes an <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character
+map</link>. That character map can be considered the standard roff
+character map for the distribution.</para>
+
+<para>If the value of the <parameter>man.charmap.uri</parameter>
+parameter is non-empty, that value is used as the URI for the location
+for an alternate roff character map to use in place of the standard
+roff character map provided in the distribution.</para>
+
+<warning>
+<para>Do not set a value for <parameter>man.charmap.uri</parameter>
+unless you have a custom roff character map that differs from the
+standard one provided in the distribution.</para>
+</warning>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.charmap.use.subset.xml b/applications/content/template/docbook/params/man.charmap.use.subset.xml
new file mode 100644
index 0000000..4403704
--- /dev/null
+++ b/applications/content/template/docbook/params/man.charmap.use.subset.xml
@@ -0,0 +1,80 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.charmap.use.subset">
+<refmeta>
+<refentrytitle>man.charmap.use.subset</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.charmap.use.subset</refname>
+<refpurpose>Use subset of character map instead of full map?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.charmap.use.subset.frag">
+<xsl:param name="man.charmap.use.subset" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.charmap.use.subset</parameter> parameter is non-zero,
+a subset of the roff character map is used instead of the full roff
+character map. The profile of the subset used is determined either
+by the value of the
+<parameter>man.charmap.subset.profile</parameter>
+parameter (if the source is not in English) or the
+<parameter>man.charmap.subset.profile.english</parameter>
+parameter (if the source is in English).</para>
+
+<note>
+  <para>You may want to experiment with setting a non-zero value of
+  <parameter>man.charmap.use.subset</parameter>, so that the full
+  character map is used. Depending on which XSLT engine you run,
+  setting a non-zero value for
+  <parameter>man.charmap.use.subset</parameter> may significantly
+  increase the time needed to process your documents. Or it may
+  not. For example, if you set it and run it with xsltproc, it seems
+  to dramatically increase processing time; on the other hand, if you
+  set it and run it with Saxon, it does not seem to increase
+  processing time nearly as much.</para>
+
+  <para>If processing time is not a important concern and/or you can
+  tolerate the increase in processing time imposed by using the full
+  character map, set <parameter>man.charmap.use.subset</parameter> to
+  zero.</para>
+</note>
+
+<refsection><info><title>Details</title></info>
+
+<para>For converting certain Unicode symbols and special characters in
+UTF-8 or UTF-16 encoded XML source to appropriate groff/roff
+equivalents in man-page output, the DocBook XSL Stylesheets
+distribution includes a <link xlink:href="http://docbook.sourceforge.net/snapshot/xsl/manpages/charmap.groff.xsl">roff character map</link> that is compliant with the <link xlink:href="http://www.w3.org/TR/xslt20/#character-maps">XSLT character
+map</link> format as detailed in the XSLT 2.0 specification. The map
+contains more than 800 character mappings and can be considered the
+standard roff character map for the distribution.</para>
+
+<note>
+<para>You can use the <parameter>man.charmap.uri</parameter>
+parameter to specify a URI for the location for an alternate roff
+character map to use in place of the standard roff character map
+provided in the distribution.</para>
+</note>
+
+<para>Because it is not terrifically efficient to use the standard
+800-character character map in full -- and for most (or all) users,
+never necessary to use it in full -- the DocBook XSL Stylesheets
+support a mechanism for using, within any given character map, a
+subset of character mappings instead of the full set. You can use the
+<parameter>man.charmap.subset.profile</parameter> or
+<parameter>man.charmap.subset.profile.english</parameter>
+parameter to tune the profile of that subset to use.</para>
+
+</refsection>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.copyright.section.enabled.xml b/applications/content/template/docbook/params/man.copyright.section.enabled.xml
new file mode 100644
index 0000000..9e83587
--- /dev/null
+++ b/applications/content/template/docbook/params/man.copyright.section.enabled.xml
@@ -0,0 +1,46 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.copyright.section.enabled">
+<refmeta>
+<refentrytitle>man.copyright.section.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.copyright.section.enabled</refname>
+<refpurpose>Display auto-generated COPYRIGHT section?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="man.copyright.section.enabled.frag">
+<xsl:param name="man.copyright.section.enabled">1</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>man.copyright.section.enabled</parameter> is non-zero
+(the default), then a <literal>COPYRIGHT</literal> section is
+generated near the end of each man page. The output of the
+<literal>COPYRIGHT</literal> section is assembled from any
+<tag>copyright</tag> and <tag>legalnotice</tag> metadata found in
+the contents of the child <tag>info</tag> or
+<tag>refentryinfo</tag> (if any) of the <tag>refentry</tag>
+itself, or from any <tag>copyright</tag> and
+<tag>legalnotice</tag> metadata that may appear in <tag>info</tag>
+contents of any ancestors of the <tag>refentry</tag>.</para>
+
+<para>If the value of
+<parameter>man.copyright.section.enabled</parameter> is zero, the
+the auto-generated <literal>COPYRIGHT</literal> section is
+suppressed.</para>
+
+<para>Set the value of
+  <parameter>man.copyright.section.enabled</parameter> to zero if
+  you want to have a manually created <literal>COPYRIGHT</literal>
+  section in your source, and you want it to appear in output
+  instead of the auto-generated <literal>COPYRIGHT</literal>
+  section.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.endnotes.are.numbered.xml b/applications/content/template/docbook/params/man.endnotes.are.numbered.xml
new file mode 100644
index 0000000..b069ec3
--- /dev/null
+++ b/applications/content/template/docbook/params/man.endnotes.are.numbered.xml
@@ -0,0 +1,106 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.endnotes.are.numbered">
+<refmeta>
+<refentrytitle>man.endnotes.are.numbered</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.endnotes.are.numbered</refname>
+<refpurpose>Number endnotes?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.endnotes.are.numbered.frag">
+<xsl:param name="man.endnotes.are.numbered">1</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.endnotes.are.numbered</parameter> is
+non-zero (the default), then for each non-empty<footnote>
+<para>A “non-empty” notesource is one that looks like
+this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"&gt;manpages&lt;/ulink&gt;</literallayout>
+an “empty” notesource is on that looks like this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"/&gt;</literallayout>
+</para></footnote> “notesource”:
+
+<itemizedlist>
+  <listitem>
+    <para>a number (in square brackets) is displayed inline after the
+    rendered inline contents (if any) of the notesource</para>
+  </listitem>
+  <listitem>
+    <para>the contents of the notesource are included in a
+      numbered list of endnotes that is generated at the end of
+      each man page; the number for each endnote corresponds to
+      the inline number for the notesource with which it is
+      associated</para>
+  </listitem>
+</itemizedlist>
+The default heading for the list of endnotes is
+<literal>NOTES</literal>. To output a different heading, set a value
+for the <parameter>man.endnotes.section.heading</parameter>
+parameter.</para>
+
+<note>
+  <para>The endnotes list is also displayed (but without
+    numbers) if the value of
+    <parameter>man.endnotes.list.enabled</parameter> is
+    non-zero.</para>
+</note>
+
+
+<para>If the value of <parameter>man.endnotes.are.numbered</parameter> is
+zero, numbering of endnotess is suppressed; only inline
+contents (if any) of the notesource are displayed inline.
+<important>
+  <para>If you are thinking about disabling endnote numbering by setting
+  the value of <parameter>man.endnotes.are.numbered</parameter> to zero,
+  before you do so, first take some time to carefully
+  consider the information needs and experiences of your users. The
+  square-bracketed numbers displayed inline after notesources may seem
+  obstrusive and aesthetically unpleasing<footnote><para>As far as notesources that are links, ytou might
+  think it would be better to just display URLs for non-empty
+  links inline, after their content, rather than displaying
+  square-bracketed numbers all over the place. But it's not better. In
+  fact, it's not even practical, because many (most) URLs for links
+  are too long to be displayed inline. They end up overflowing the
+  right margin. You can set a non-zero value for
+  <parameter>man.break.after.slash</parameter> parameter to deal with
+  that, but it could be argued that what you end up with is at least
+  as ugly, and definitely more obstrusive, then having short
+  square-bracketed numbers displayed inline.</para></footnote>,
+
+  but in a text-only output format, the
+  numbered-notesources/endnotes-listing mechanism is the only
+  practical way to handle this kind of content.</para>
+
+  <para>Also, users of “text based” browsers such as
+  <command>lynx</command> will already be accustomed to seeing inline
+  numbers for links. And various "man to html" applications, such as
+  the widely used <command><link xlink:href="http://users.actrix.gen.nz/michael/vhman2html.html">man2html</link></command> (<literal>VH-Man2html</literal>)
+  application, can automatically turn URLs into "real" HTML hyperlinks
+  in output. So leaving <parameter>man.endnotes.are.numbered</parameter>
+  at its default (non-zero) value ensures that no information is
+  lost in your man-page output. It just gets
+  “rearranged”.</para>
+</important>
+</para>
+<para>The handling of empty links is not affected by this
+parameter. Empty links are handled simply by displaying their URLs
+inline. Empty links are never auto-numbered.</para>
+
+<para>If you disable endnotes numbering, you should probably also set
+<parameter>man.font.links</parameter> to an empty value (to
+disable font formatting for links.</para>
+</refsection>
+
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>man.endnotes.list.enabled</parameter>,
+    <parameter>man.font.links</parameter></para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.endnotes.list.enabled.xml b/applications/content/template/docbook/params/man.endnotes.list.enabled.xml
new file mode 100644
index 0000000..89d8188
--- /dev/null
+++ b/applications/content/template/docbook/params/man.endnotes.list.enabled.xml
@@ -0,0 +1,105 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.endnotes.list.enabled">
+<refmeta>
+<refentrytitle>man.endnotes.list.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.endnotes.list.enabled</refname>
+<refpurpose>Display endnotes list at end of man page?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.endnotes.list.enabled.frag">
+<xsl:param name="man.endnotes.list.enabled">1</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.endnotes.list.enabled</parameter> is
+non-zero (the default), then an endnotes list is added to the end of
+the output man page.</para>
+
+<para>If the value of <parameter>man.endnotes.list.enabled</parameter> is
+zero, the list is suppressed — unless link numbering is enabled (that
+is, if <parameter>man.endnotes.are.numbered</parameter> is non-zero), in
+which case, that setting overrides the
+<parameter>man.endnotes.list.enabled</parameter> setting, and the
+endnotes list is still displayed. The reason is that inline
+numbering of notesources associated with endnotes only makes sense
+if a (numbered) list of endnotes is also generated.</para>
+
+<note>
+  <para>Leaving
+  <parameter>man.endnotes.list.enabled</parameter> at its default
+  (non-zero) value ensures that no “out of line” information (such
+  as the URLs for hyperlinks and images) gets lost in your
+  man-page output. It just gets “rearranged”.</para>
+  <para>So if you’re thinking about disabling endnotes listing by
+    setting the value of
+    <parameter>man.endnotes.list.enabled</parameter> to zero:
+    Before you do so, first take some time to carefully consider
+    the information needs and experiences of your users. The “out
+    of line” information has value even if the presentation of it
+    in text output is not as interactive as it may be in other
+    output formats.</para>
+  <para>As far as the specific case of URLs: Even though the URLs
+    displayed in text output may not be “real” (clickable)
+    hyperlinks, many X terminals have convenience features for
+    recognizing URLs and can, for example, present users with
+    an options to open a URL in a browser with the user clicks on
+    the URL is a terminal window. And short of those, users with X
+    terminals can always manually cut and paste the URLs into a web
+    browser.</para>
+  <para>Also, note that various “man to html” tools, such as the
+    widely used <command><link xlink:href="http://users.actrix.gen.nz/michael/vhman2html.html">man2html</link></command> (<literal>VH-Man2html</literal>)
+    application, automatically mark up URLs with <literal>a@href</literal> markup
+  during conversion — resulting in “real” hyperlinks in HTML
+  output from those tools.</para>
+</note>
+
+<para>To “turn off” numbering of endnotes in the
+endnotes list, set <parameter>man.endnotes.are.numbered</parameter>
+to zero. The endnotes list will
+still be displayed; it will just be displayed without the
+numbers<footnote><para>It can still make sense to have
+the list of endnotes displayed even if you have endnotes numbering turned
+off. In that case, your endnotes list basically becomes a “list
+of references” without any association with specific text in
+your document. This is probably the best option if you find the inline
+endnotes numbering obtrusive. Your users will still have access to all the “out of line”
+such as URLs for hyperlinks.</para></footnote>
+</para>
+
+<para>The default heading for the endnotes list is
+<literal>NOTES</literal>. To change that, set a non-empty
+value for the <parameter>man.endnotes.list.heading</parameter>
+parameter.</para>
+
+<para>In the case of notesources that are links: Along with the
+URL for each link, the endnotes list includes the contents of the
+link. The list thus includes only non-empty<footnote>
+
+<para>A “non-empty” link is one that looks like
+this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"&gt;manpages&lt;/ulink&gt;</literallayout>
+an “empty link” is on that looks like this:<literallayout class="monospaced">  &lt;ulink url="http://docbook.sf.net/snapshot/xsl/doc/manpages/"/&gt;</literallayout>
+</para></footnote> links.
+
+Empty links are never included, and never numbered. They are simply
+displayed inline, without any numbering.</para>
+
+<para>In addition, if there are multiple instances of links in a
+<tag>refentry</tag> that have the same URL, the URL is listed only
+once. The contents listed for that link in the endnotes list are
+the contents of the first link which has that URL.</para>
+
+<para>If you disable endnotes listing, you should probably also set
+<parameter>man.links.are.underlined</parameter> to zero (to disable
+link underlining).</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.endnotes.list.heading.xml b/applications/content/template/docbook/params/man.endnotes.list.heading.xml
new file mode 100644
index 0000000..fe6545c
--- /dev/null
+++ b/applications/content/template/docbook/params/man.endnotes.list.heading.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.endnotes.list.heading">
+<refmeta>
+<refentrytitle>man.endnotes.list.heading</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.endnotes.list.heading</refname>
+<refpurpose>Specifies an alternate name for endnotes list</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.endnotes.list.heading.frag">
+<xsl:param name="man.endnotes.list.heading"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.endnotes.are.numbered</parameter> parameter
+and/or the <parameter>man.endnotes.list.enabled</parameter>
+parameter is non-zero (the defaults for both are non-zero), a
+numbered list of endnotes is generated near the end of each man
+page. The default heading for the list of endnotes is the
+equivalent of the English word <literal>NOTES</literal> in
+the current locale. To cause an alternate heading to be displayed,
+set a non-empty value for the
+<parameter>man.endnotes.list.heading</parameter> parameter —
+for example, <literal>REFERENCES</literal>.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.font.funcprototype.xml b/applications/content/template/docbook/params/man.font.funcprototype.xml
new file mode 100644
index 0000000..67b698b
--- /dev/null
+++ b/applications/content/template/docbook/params/man.font.funcprototype.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.font.funcprototype">
+<refmeta>
+<refentrytitle>man.font.funcprototype</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.funcprototype</refname>
+<refpurpose>Specifies font for funcprototype output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.font.funcprototype.frag">
+  <xsl:param name="man.font.funcprototype">BI</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.funcprototype</parameter> parameter
+specifies the font for <tag>funcprototype</tag> output. It
+should be a valid roff font name, such as <literal>BI</literal> or
+<literal>B</literal>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.font.funcsynopsisinfo.xml b/applications/content/template/docbook/params/man.font.funcsynopsisinfo.xml
new file mode 100644
index 0000000..bd7a36f
--- /dev/null
+++ b/applications/content/template/docbook/params/man.font.funcsynopsisinfo.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.font.funcsynopsisinfo">
+<refmeta>
+<refentrytitle>man.font.funcsynopsisinfo</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.funcsynopsisinfo</refname>
+<refpurpose>Specifies font for funcsynopsisinfo output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.font.funcsynopsisinfo.frag">
+  <xsl:param name="man.font.funcsynopsisinfo">B</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.funcsynopsisinfo</parameter> parameter
+specifies the font for <tag>funcsynopsisinfo</tag> output. It
+should be a valid roff font name, such as <literal>B</literal> or
+<literal>I</literal>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.font.links.xml b/applications/content/template/docbook/params/man.font.links.xml
new file mode 100644
index 0000000..0f8a1e0
--- /dev/null
+++ b/applications/content/template/docbook/params/man.font.links.xml
@@ -0,0 +1,64 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.font.links">
+<refmeta>
+<refentrytitle>man.font.links</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.links</refname>
+<refpurpose>Specifies font for links</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.font.links.frag">
+<xsl:param name="man.font.links">B</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.links</parameter> parameter
+specifies the font for output of links (<tag>ulink</tag> instances
+and any instances of any element with an <tag
+  class="attribute">xlink:href</tag> attribute).</para>
+
+<para>The value of <parameter>man.font.links</parameter> must be
+  either <literal>B</literal> or <literal>I</literal>, or empty. If
+the value is empty, no font formatting is applied to links.</para>
+
+<para>If you set <parameter>man.endnotes.are.numbered</parameter> and/or
+<parameter>man.endnotes.list.enabled</parameter> to zero (disabled), then
+you should probably also set an empty value for
+<parameter>man.font.links</parameter>. But if
+<parameter>man.endnotes.are.numbered</parameter> is non-zero (enabled),
+you should probably keep
+<parameter>man.font.links</parameter> set to
+<literal>B</literal> or <literal>I</literal><footnote><para>The
+    main purpose of applying a font format to links in most output
+formats it to indicate that the formatted text is
+“clickable”; given that links rendered in man pages are
+not “real” hyperlinks that users can click on, it might
+seem like there is never a good reason to have font formatting for
+link contents in man output.</para>
+<para>In fact, if you suppress the
+display of inline link references (by setting
+<parameter>man.endnotes.are.numbered</parameter> to zero), there is no
+good reason to apply font formatting to links. However, if
+<parameter>man.endnotes.are.numbered</parameter> is non-zero, having
+font formatting for links (arguably) serves a purpose: It provides
+“context” information about exactly what part of the text
+is being “annotated” by the link. Depending on how you
+mark up your content, that context information may or may not
+have value.</para></footnote>.</para>
+</refsection>
+
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>man.endnotes.list.enabled</parameter>,
+    <parameter>man.endnotes.are.numbered</parameter></para>
+</refsection>
+
+</refentry>
diff --git a/applications/content/template/docbook/params/man.font.table.headings.xml b/applications/content/template/docbook/params/man.font.table.headings.xml
new file mode 100644
index 0000000..5056f2b
--- /dev/null
+++ b/applications/content/template/docbook/params/man.font.table.headings.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.font.table.headings">
+<refmeta>
+<refentrytitle>man.font.table.headings</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.table.headings</refname>
+<refpurpose>Specifies font for table headings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.font.table.headings.frag">
+  <xsl:param name="man.font.table.headings">B</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.table.headings</parameter> parameter
+specifies the font for <tag>table</tag> headings. It should be
+a valid roff font, such as <literal>B</literal> or
+<literal>I</literal>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.font.table.title.xml b/applications/content/template/docbook/params/man.font.table.title.xml
new file mode 100644
index 0000000..a7f2ae9
--- /dev/null
+++ b/applications/content/template/docbook/params/man.font.table.title.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.font.table.title">
+<refmeta>
+<refentrytitle>man.font.table.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.font.table.title</refname>
+<refpurpose>Specifies font for table headings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.font.table.title.frag">
+  <xsl:param name="man.font.table.title">B</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.font.table.title</parameter> parameter
+specifies the font for <tag>table</tag> titles. It should be
+a valid roff font, such as <literal>B</literal> or
+<literal>I</literal>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.funcsynopsis.style.xml b/applications/content/template/docbook/params/man.funcsynopsis.style.xml
new file mode 100644
index 0000000..0597087
--- /dev/null
+++ b/applications/content/template/docbook/params/man.funcsynopsis.style.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.funcsynopsis.style">
+<refmeta>
+<refentrytitle>man.funcsynopsis.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ansi</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">kr</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.funcsynopsis.style</refname>
+<refpurpose>What style of <tag>funcsynopsis</tag> should be generated?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="man.funcsynopsis.style.frag"><xsl:param name="man.funcsynopsis.style">ansi</xsl:param></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If <parameter>man.funcsynopsis.style</parameter> is
+<literal>ansi</literal>, ANSI-style function synopses are
+generated for a <tag>funcsynopsis</tag>, otherwise K&amp;R-style
+function synopses are generated.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.hyphenate.computer.inlines.xml b/applications/content/template/docbook/params/man.hyphenate.computer.inlines.xml
new file mode 100644
index 0000000..3e23ade
--- /dev/null
+++ b/applications/content/template/docbook/params/man.hyphenate.computer.inlines.xml
@@ -0,0 +1,53 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.hyphenate.computer.inlines">
+<refmeta>
+<refentrytitle>man.hyphenate.computer.inlines</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.hyphenate.computer.inlines</refname>
+<refpurpose>Hyphenate computer inlines?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.hyphenate.computer.inlines.frag">
+<xsl:param name="man.hyphenate.computer.inlines">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), hyphenation is suppressed for
+<quote>computer inlines</quote> such as environment variables,
+constants, etc. This parameter current affects output of the following
+elements:
+<simplelist type="inline">
+  <?dbchoice choice="and" ?>
+  <member><tag>classname</tag></member>
+  <member><tag>constant</tag></member>
+  <member><tag>envar</tag></member>
+  <member><tag>errorcode</tag></member>
+  <member><tag>option</tag></member>
+  <member><tag>replaceable</tag></member>
+  <member><tag>userinput</tag></member>
+  <member><tag>type</tag></member>
+  <member><tag>varname</tag></member>
+</simplelist>
+</para>
+
+<note>
+  <para>If hyphenation is already turned off globally (that is, if
+  <parameter>man.hyphenate</parameter> is zero, setting the
+  <parameter>man.hyphenate.computer.inlines</parameter> is not
+  necessary.</para>
+</note>
+
+<para>If <parameter>man.hyphenate.computer.inlines</parameter> is
+non-zero, computer inlines will not be treated specially and will be
+hyphenated like other words when needed.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.hyphenate.filenames.xml b/applications/content/template/docbook/params/man.hyphenate.filenames.xml
new file mode 100644
index 0000000..891d6da
--- /dev/null
+++ b/applications/content/template/docbook/params/man.hyphenate.filenames.xml
@@ -0,0 +1,47 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.hyphenate.filenames">
+<refmeta>
+<refentrytitle>man.hyphenate.filenames</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.hyphenate.filenames</refname>
+<refpurpose>Hyphenate filenames?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.hyphenate.filenames.frag">
+<xsl:param name="man.hyphenate.filenames">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), hyphenation is suppressed for
+<tag>filename</tag> output.</para>
+
+<note>
+  <para>If hyphenation is already turned off globally (that is, if
+  <parameter>man.hyphenate</parameter> is zero, setting
+  <parameter>man.hyphenate.filenames</parameter> is not
+  necessary.</para>
+</note>
+
+<para>If <parameter>man.hyphenate.filenames</parameter> is non-zero,
+filenames will not be treated specially and are subject to hyphenation
+just like other words.</para>
+
+<note>
+  <para>If you are thinking about setting a non-zero value for
+  <parameter>man.hyphenate.filenames</parameter> in order to make long
+  filenames/pathnames break across lines, you'd probably be better off
+  experimenting with setting the
+  <parameter>man.break.after.slash</parameter> parameter first. That
+  will cause long pathnames to be broken after slashes.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.hyphenate.urls.xml b/applications/content/template/docbook/params/man.hyphenate.urls.xml
new file mode 100644
index 0000000..a64dfa7
--- /dev/null
+++ b/applications/content/template/docbook/params/man.hyphenate.urls.xml
@@ -0,0 +1,46 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.hyphenate.urls">
+<refmeta>
+<refentrytitle>man.hyphenate.urls</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.hyphenate.urls</refname>
+<refpurpose>Hyphenate URLs?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.hyphenate.urls.frag">
+<xsl:param name="man.hyphenate.urls">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), hyphenation is suppressed for output of
+the <tag>ulink</tag> <tag class="attribute">url</tag> attribute.</para>
+
+<note>
+  <para>If hyphenation is already turned off globally (that is, if
+  <parameter>man.hyphenate</parameter> is zero, setting
+  <parameter>man.hyphenate.urls</parameter> is not necessary.</para>
+</note>
+
+<para>If <parameter>man.hyphenate.urls</parameter> is non-zero, URLs
+will not be treated specially and are subject to hyphenation just like
+other words.</para>
+
+<note>
+  <para>If you are thinking about setting a non-zero value for
+  <parameter>man.hyphenate.urls</parameter> in order to make long
+  URLs break across lines, you'd probably be better off
+  experimenting with setting the
+  <parameter>man.break.after.slash</parameter> parameter first. That
+  will cause long URLs to be broken after slashes.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.hyphenate.xml b/applications/content/template/docbook/params/man.hyphenate.xml
new file mode 100644
index 0000000..9198bbb
--- /dev/null
+++ b/applications/content/template/docbook/params/man.hyphenate.xml
@@ -0,0 +1,59 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.hyphenate">
+<refmeta>
+<refentrytitle>man.hyphenate</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.hyphenate</refname>
+<refpurpose>Enable hyphenation?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.hyphenate.frag">
+<xsl:param name="man.hyphenate">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, hyphenation is enabled.</para>
+
+<note>
+<para>The default value for this parameter is zero because groff is
+not particularly smart about how it does hyphenation; it can end up
+hyphenating a lot of things that you don't want hyphenated. To
+mitigate that, the default behavior of the stylesheets is to suppress
+hyphenation of computer inlines, filenames, and URLs. (You can
+override the default behavior by setting non-zero values for the
+<parameter>man.hyphenate.urls</parameter>,
+<parameter>man.hyphenate.filenames</parameter>, and
+<parameter>man.hyphenate.computer.inlines</parameter> parameters.) But
+the best way is still to just globally disable hyphenation, as the
+stylesheets do by default.</para>
+
+<para>The only good reason to enabled hyphenation is if you have also
+enabled justification (which is disabled by default). The reason is
+that justified text can look very bad unless you also hyphenate it; to
+quote the <quote>Hypenation</quote> node from the groff info page:
+
+<blockquote>
+  <para><emphasis>Since the odds are not great for finding a set of
+  words, for every output line, which fit nicely on a line without
+  inserting excessive amounts of space between words, 'gtroff'
+  hyphenates words so that it can justify lines without inserting too
+  much space between words.</emphasis></para>
+</blockquote>
+
+So, if you set a non-zero value for the
+<parameter>man.justify</parameter> parameter (to enable
+justification), then you should probably also set a non-zero value for
+<parameter>man.hyphenate</parameter> (to enable hyphenation).</para>
+</note>
+
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.indent.blurbs.xml b/applications/content/template/docbook/params/man.indent.blurbs.xml
new file mode 100644
index 0000000..bf9bb91
--- /dev/null
+++ b/applications/content/template/docbook/params/man.indent.blurbs.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.indent.blurbs">
+<refmeta>
+<refentrytitle>man.indent.blurbs</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.blurbs</refname>
+<refpurpose>Adjust indentation of blurbs?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.indent.blurbs.frag">
+<xsl:param name="man.indent.blurbs" select="1"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.indent.blurbs</parameter> is
+non-zero, the width of the left margin for
+<tag>authorblurb</tag>, <tag>personblurb</tag>, and
+<tag>contrib</tag> output is set to the value of the
+<parameter>man.indent.width</parameter> parameter
+(<literal>3n</literal> by default). If instead the value of
+<parameter>man.indent.blurbs</parameter> is zero, the built-in roff
+default width (<literal>7.2n</literal>) is used.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.indent.lists.xml b/applications/content/template/docbook/params/man.indent.lists.xml
new file mode 100644
index 0000000..a2654d0
--- /dev/null
+++ b/applications/content/template/docbook/params/man.indent.lists.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.indent.lists">
+<refmeta>
+<refentrytitle>man.indent.lists</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.lists</refname>
+<refpurpose>Adjust indentation of lists?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.indent.lists.frag">
+<xsl:param name="man.indent.lists" select="1"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.indent.lists</parameter> is
+non-zero, the width of the left margin for list items in
+<tag>itemizedlist</tag>,
+<tag>orderedlist</tag>,
+<tag>variablelist</tag> output (and output of some other
+lists) is set to the value of the
+<parameter>man.indent.width</parameter> parameter
+(<literal>4n</literal> by default). If instead the value of
+<parameter>man.indent.lists</parameter> is zero, the built-in roff
+default width (<literal>7.2n</literal>) is used.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.indent.refsect.xml b/applications/content/template/docbook/params/man.indent.refsect.xml
new file mode 100644
index 0000000..2865f8c
--- /dev/null
+++ b/applications/content/template/docbook/params/man.indent.refsect.xml
@@ -0,0 +1,70 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.indent.refsect">
+<refmeta>
+<refentrytitle>man.indent.refsect</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.refsect</refname>
+<refpurpose>Adjust indentation of refsect* and refsection?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.indent.refsect.frag">
+<xsl:param name="man.indent.refsect" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.indent.refsect</parameter> is
+non-zero, the width of the left margin for
+<tag>refsect1</tag>, <tag>refsect2</tag> and
+<tag>refsect3</tag> contents and titles (and first-level,
+second-level, and third-level nested
+<tag>refsection</tag>instances) is adjusted by the value of
+the <parameter>man.indent.width</parameter> parameter. With
+<parameter>man.indent.width</parameter> set to its default value of
+<literal>3n</literal>, the main results are that:
+
+<itemizedlist>
+  <listitem>
+    <para>contents of <tag>refsect1</tag> are output with a
+    left margin of three characters instead the roff default of seven
+    or eight characters</para>
+  </listitem>
+  <listitem>
+    <para>contents of <tag>refsect2</tag> are displayed in
+    console output with a left margin of six characters instead the of
+    the roff default of seven characters</para>
+  </listitem>
+  <listitem>
+    <para> the contents of <tag>refsect3</tag> and nested
+    <tag>refsection</tag> instances are adjusted
+    accordingly.</para>
+  </listitem>
+</itemizedlist>
+
+If instead the value of <parameter>man.indent.refsect</parameter> is
+zero, no margin adjustment is done for <literal>refsect*</literal>
+output.</para>
+
+<tip>
+  <para>If your content is primarly comprised of
+  <tag>refsect1</tag> and <tag>refsect2</tag> content
+  (or the <tag>refsection</tag> equivalent) – with few or
+  no <tag>refsect3</tag> or lower nested sections , you may be
+  able to “conserve” space in your output by setting
+  <parameter>man.indent.refsect</parameter> to a non-zero value. Doing
+  so will “squeeze” the left margin in such as way as to provide an
+  additional four characters of “room” per line in
+  <tag>refsect1</tag> output. That extra room may be useful
+  if, for example, you have many verbatim sections with long lines in
+  them.</para>
+</tip>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.indent.verbatims.xml b/applications/content/template/docbook/params/man.indent.verbatims.xml
new file mode 100644
index 0000000..0436c9e
--- /dev/null
+++ b/applications/content/template/docbook/params/man.indent.verbatims.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.indent.verbatims">
+<refmeta>
+<refentrytitle>man.indent.verbatims</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.verbatims</refname>
+<refpurpose>Adjust indentation of verbatims?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.indent.verbatims.frag">
+<xsl:param name="man.indent.verbatims" select="1"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.indent.verbatims</parameter> is
+non-zero, the width of the left margin for output of verbatim
+environments (<tag>programlisting</tag>,
+<tag>screen</tag>, and so on) is set to the value of the
+<parameter>man.indent.width</parameter> parameter
+(<literal>3n</literal> by default). If instead the value of
+<parameter>man.indent.verbatims</parameter> is zero, the built-in roff
+default width (<literal>7.2n</literal>) is used.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.indent.width.xml b/applications/content/template/docbook/params/man.indent.width.xml
new file mode 100644
index 0000000..2d4496d
--- /dev/null
+++ b/applications/content/template/docbook/params/man.indent.width.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.indent.width">
+<refmeta>
+<refentrytitle>man.indent.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.indent.width</refname>
+<refpurpose>Specifies width used for adjusted indents</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.indent.width.frag">
+<xsl:param name="man.indent.width">4</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The <parameter>man.indent.width</parameter> parameter specifies
+the width used for adjusted indents. The value of
+<parameter>man.indent.width</parameter> is used for indenting of
+lists, verbatims, headings, and elsewhere, depending on whether the
+values of certain <literal>man.indent.*</literal> boolean parameters
+are non-zero.</para>
+
+<para>The value of <parameter>man.indent.width</parameter> should
+include a valid roff measurement unit (for example,
+<literal>n</literal> or <literal>u</literal>). The default value of
+<literal>4n</literal> specifies a 4-en width; when viewed on a
+console, that amounts to the width of four characters. For details
+about roff measurment units, see the <literal>Measurements</literal>
+node in the groff info page.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.justify.xml b/applications/content/template/docbook/params/man.justify.xml
new file mode 100644
index 0000000..5495d05
--- /dev/null
+++ b/applications/content/template/docbook/params/man.justify.xml
@@ -0,0 +1,52 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.justify">
+<refmeta>
+<refentrytitle>man.justify</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.justify</refname>
+<refpurpose>Justify text to both right and left margins?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.justify.frag">
+<xsl:param name="man.justify">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, text is justified to both the right and left
+margins (or, in roff terminology, "adjusted and filled" to both the
+right and left margins). If zero (the default), text is adjusted to
+the left margin only -- producing what is traditionally called
+"ragged-right" text.</para>
+
+<note>
+<para>The default value for this parameter is zero because justified
+text looks good only when it is also hyphenated. Without hyphenation,
+excessive amounts of space often end up getting between words, in
+order to "pad" lines out to align on the right margin.</para>
+
+<para>The problem is that groff is not particularly smart about how it
+does hyphenation; it can end up hyphenating a lot of things that you
+don't want hyphenated. So, disabling both justification and
+hyphenation ensures that hyphens won't get inserted where you don't
+want to them, and you don't end up with lines containing excessive
+amounts of space between words.</para>
+
+<para>However, if do you decide to set a non-zero value for the
+<parameter>man.justify</parameter> parameter (to enable
+justification), then you should probably also set a non-zero value for
+<parameter>man.hyphenate</parameter> (to enable hyphenation).</para>
+
+<para>Yes, these default settings run counter to how most existing man
+pages are formatted. But there are some notable exceptions, such as
+the <literal>perl</literal> man pages.</para>
+</note>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.output.base.dir.xml b/applications/content/template/docbook/params/man.output.base.dir.xml
new file mode 100644
index 0000000..25113d0
--- /dev/null
+++ b/applications/content/template/docbook/params/man.output.base.dir.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.output.base.dir">
+<refmeta>
+<refentrytitle>man.output.base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.base.dir</refname>
+<refpurpose>Specifies separate output directory</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.output.base.dir.frag"><xsl:param name="man.output.base.dir">man/</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.output.base.dir</parameter> parameter
+specifies the base directory into which man-page files are output. The
+<parameter>man.output.subdirs.enabled</parameter> parameter controls
+whether the files are output in subdirectories within the base
+directory.</para>
+
+<note>
+  <para>The values of the <parameter>man.output.base.dir</parameter>
+  and <parameter>man.output.subdirs.enabled</parameter> parameters are
+  used only if the value of
+  <parameter>man.output.in.separate.dir</parameter> parameter is
+  non-zero. If the value of the
+  <parameter>man.output.in.separate.dir</parameter> is zero, man-page
+  files are not output in a separate directory.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.output.better.ps.enabled.xml b/applications/content/template/docbook/params/man.output.better.ps.enabled.xml
new file mode 100644
index 0000000..82d15dd
--- /dev/null
+++ b/applications/content/template/docbook/params/man.output.better.ps.enabled.xml
@@ -0,0 +1,61 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.output.better.ps.enabled">
+<refmeta>
+<refentrytitle>man.output.better.ps.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.better.ps.enabled</refname>
+<refpurpose>Enable enhanced print/PostScript output?</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="man.output.better.ps.enabled.frag">
+<xsl:param name="man.output.better.ps.enabled">0</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.output.better.ps.enabled</parameter> parameter is
+non-zero, certain markup is embedded in each generated man page
+such that PostScript output from the <command>man -Tps</command>
+command for that page will include a number of enhancements
+designed to improve the quality of that output.</para>
+
+<para>If <parameter>man.output.better.ps.enabled</parameter> is
+zero (the default), no such markup is embedded in generated man
+pages, and no enhancements are included in the PostScript
+output generated from those man pages by the <command>man
+ -Tps</command> command.</para>
+
+<warning>
+  <para>The enhancements provided by this parameter rely on
+    features that are specific to groff (GNU troff) and that are
+    not part of “classic” AT&amp;T troff or any of its
+    derivatives. Therefore, any man pages you generate with this
+    parameter enabled will be readable only on systems on which
+    the groff (GNU troff) program is installed, such as GNU/Linux
+    systems. The pages <emphasis role="bold">will not not be
+      readable on systems on with the classic troff (AT&amp;T
+      troff) command is installed</emphasis>.</para>
+</warning>
+
+<para>The value of this parameter only affects PostScript output
+  generated from the <command>man</command> command. It has no
+  effect on output generated using the FO backend.</para>
+
+<tip>
+  <para>You can generate PostScript output for any man page by
+    running the following command:</para>
+  <programlisting>  man <replaceable>FOO</replaceable> -Tps > <replaceable>FOO</replaceable>.ps</programlisting>
+  <para>You can then generate PDF output by running the following
+    command:</para>
+  <programlisting>  ps2pdf <replaceable>FOO</replaceable>.ps</programlisting>
+</tip>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.output.encoding.xml b/applications/content/template/docbook/params/man.output.encoding.xml
new file mode 100644
index 0000000..7154bc8
--- /dev/null
+++ b/applications/content/template/docbook/params/man.output.encoding.xml
@@ -0,0 +1,53 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.output.encoding">
+<refmeta>
+<refentrytitle>man.output.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.encoding</refname>
+<refpurpose>Encoding used for man-page output</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.output.encoding.frag">
+<xsl:param name="man.output.encoding">UTF-8</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the encoding to use for files generated
+by the manpages stylesheet. Not all processors support specification
+of this parameter.</para>
+
+<important>
+  <para>If the value of the <parameter>man.charmap.enabled</parameter>
+  parameter is non-zero (the default), keeping the
+  <parameter>man.output.encoding</parameter> parameter at its default
+  value (<literal>UTF-8</literal>) or setting it to
+  <literal>UTF-16</literal> <emphasis role="bold">does not cause your
+  man pages to be output in raw UTF-8 or UTF-16</emphasis> -- because
+  any Unicode characters for which matches are found in the enabled
+  character map will be replaced with roff escape sequences before the
+  final man-page files are generated.</para>
+
+  <para>So if you want to generate "real" UTF-8 man pages, without any
+  character substitution being performed on your content, you need to
+  set <parameter>man.charmap.enabled</parameter> to zero (which will
+  completely disable character-map processing). </para>
+
+  <para>You may also need to set
+  <parameter>man.charmap.enabled</parameter> to zero if you want to
+  output man pages in an encoding other than <literal>UTF-8</literal>
+  or <literal>UTF-16</literal>. Character-map processing is based on
+  Unicode character values and may not work with other output
+  encodings.</para>
+</important>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.output.in.separate.dir.xml b/applications/content/template/docbook/params/man.output.in.separate.dir.xml
new file mode 100644
index 0000000..1492720
--- /dev/null
+++ b/applications/content/template/docbook/params/man.output.in.separate.dir.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.output.in.separate.dir">
+<refmeta>
+<refentrytitle>man.output.in.separate.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.in.separate.dir</refname>
+<refpurpose>Output man-page files in separate output directory?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.output.in.separate.dir.frag">
+<xsl:param name="man.output.in.separate.dir" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <literal>man.output.in.separate.dir</literal>
+parameter is non-zero, man-page files are output in a separate
+directory, specified by the <parameter>man.output.base.dir</parameter>
+parameter; otherwise, if the value of
+<literal>man.output.in.separate.dir</literal> is zero, man-page files
+are not output in a separate directory.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.output.lang.in.name.enabled.xml b/applications/content/template/docbook/params/man.output.lang.in.name.enabled.xml
new file mode 100644
index 0000000..1fed3c0
--- /dev/null
+++ b/applications/content/template/docbook/params/man.output.lang.in.name.enabled.xml
@@ -0,0 +1,50 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.output.lang.in.name.enabled">
+<refmeta>
+<refentrytitle>man.output.lang.in.name.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.lang.in.name.enabled</refname>
+<refpurpose>Include $LANG value in man-page filename/pathname?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.output.lang.in.name.enabled.frag">
+<xsl:param name="man.output.lang.in.name.enabled" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+  <para>The <parameter>man.output.lang.in.name.enabled</parameter>
+  parameter specifies whether a <literal>$lang</literal> value is
+  included in man-page filenames and pathnames.</para>
+
+  <para>If the value of
+  <parameter>man.output.lang.in.name.enabled</parameter> is non-zero,
+  man-page files are output with the <literal>$lang</literal> value
+  included in their filenames or pathnames as follows;
+
+  <itemizedlist>
+    <listitem>
+      <para>if <parameter>man.output.subdirs.enabled</parameter> is
+      non-zero, each file is output to, e.g., a
+      <filename>man/<replaceable>$lang</replaceable>/man8/foo.8</filename>
+      pathname</para>
+    </listitem>
+    <listitem>
+      <para>if <parameter>man.output.subdirs.enabled</parameter> is
+      zero, each file is output with a
+      <literal>foo.<replaceable>$lang</replaceable>.8</literal>
+      filename</para>
+    </listitem>
+  </itemizedlist>
+  </para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.output.manifest.enabled.xml b/applications/content/template/docbook/params/man.output.manifest.enabled.xml
new file mode 100644
index 0000000..5da041c
--- /dev/null
+++ b/applications/content/template/docbook/params/man.output.manifest.enabled.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.output.manifest.enabled">
+  <refmeta>
+    <refentrytitle>man.output.manifest.enabled</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>man.output.manifest.enabled</refname>
+    <refpurpose>Generate a manifest file?</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <src:fragment xml:id="man.output.manifest.enabled.frag"><xsl:param name="man.output.manifest.enabled" select="0"/></src:fragment>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>If non-zero, a list of filenames for man pages generated by
+    the stylesheet transformation is written to the file named by the
+    <parameter>man.output.manifest.filename</parameter> parameter.</para>
+
+  </refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.output.manifest.filename.xml b/applications/content/template/docbook/params/man.output.manifest.filename.xml
new file mode 100644
index 0000000..f514ede
--- /dev/null
+++ b/applications/content/template/docbook/params/man.output.manifest.filename.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.output.manifest.filename">
+  <refmeta>
+    <refentrytitle>man.output.manifest.filename</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>man.output.manifest.filename</refname>
+    <refpurpose>Name of manifest file</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <src:fragment xml:id="man.output.manifest.filename.frag"><xsl:param name="man.output.manifest.filename">MAN.MANIFEST</xsl:param></src:fragment>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>The <parameter>man.output.manifest.filename</parameter> parameter
+    specifies the name of the file to which the manpages manifest file
+    is written (if the value of the
+    <parameter>man.output.manifest.enabled</parameter> parameter is
+    non-zero).</para>
+
+  </refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.output.quietly.xml b/applications/content/template/docbook/params/man.output.quietly.xml
new file mode 100644
index 0000000..acde7f4
--- /dev/null
+++ b/applications/content/template/docbook/params/man.output.quietly.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.output.quietly">
+<refmeta>
+<refentrytitle>man.output.quietly</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.quietly</refname>
+<refpurpose>Suppress filename messages emitted when generating output?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.output.quietly.frag">
+<xsl:param name="man.output.quietly" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), for each man-page file created, a message
+with the name of the file is emitted. If non-zero, the files are
+output "quietly" -- that is, the filename messages are
+suppressed.</para>
+
+<tip>
+  <para>If you are processing a large amount of <tag>refentry</tag>
+  content, you may be able to speed up processing significantly by
+  setting a non-zero value for
+  <parameter>man.output.quietly</parameter>.</para>
+</tip>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.output.subdirs.enabled.xml b/applications/content/template/docbook/params/man.output.subdirs.enabled.xml
new file mode 100644
index 0000000..876b94e
--- /dev/null
+++ b/applications/content/template/docbook/params/man.output.subdirs.enabled.xml
@@ -0,0 +1,40 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.output.subdirs.enabled">
+<refmeta>
+<refentrytitle>man.output.subdirs.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.output.subdirs.enabled</refname>
+<refpurpose>Output man-page files in subdirectories within base output directory?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.output.subdirs.enabled.frag">
+<xsl:param name="man.output.subdirs.enabled" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.output.subdirs.enabled</parameter> parameter
+controls whether man-pages files are output in subdirectories within
+the base directory specified by the directory specified by the
+<parameter>man.output.base.dir</parameter> parameter.</para>
+
+<note>
+  <para>The values of the <parameter>man.output.base.dir</parameter>
+  and <parameter>man.output.subdirs.enabled</parameter> parameters are
+  used only if the value of
+  <parameter>man.output.in.separate.dir</parameter> parameter is
+  non-zero. If the value of the
+  <parameter>man.output.in.separate.dir</parameter> is zero, man-page
+  files are not output in a separate directory.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.segtitle.suppress.xml b/applications/content/template/docbook/params/man.segtitle.suppress.xml
new file mode 100644
index 0000000..e54336d
--- /dev/null
+++ b/applications/content/template/docbook/params/man.segtitle.suppress.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.segtitle.suppress">
+<refmeta>
+<refentrytitle>man.segtitle.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.segtitle.suppress</refname>
+<refpurpose>Suppress display of segtitle contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.segtitle.suppress.frag">
+<xsl:param name="man.segtitle.suppress" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.segtitle.suppress</parameter> is
+non-zero, then display of <tag>segtitle</tag> contents is
+suppressed in output.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.string.subst.map.local.post.xml b/applications/content/template/docbook/params/man.string.subst.map.local.post.xml
new file mode 100644
index 0000000..b12448d
--- /dev/null
+++ b/applications/content/template/docbook/params/man.string.subst.map.local.post.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.string.subst.map.local.post">
+<refmeta>
+<refentrytitle>man.string.subst.map.local.post</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.string.subst.map.local.post</refname>
+<refpurpose>Specifies “local” string substitutions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.string.subst.map.local.post.frag">
+<xsl:param name="man.string.subst.map.local.post"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Use the <parameter>man.string.subst.map.local.post</parameter>
+parameter to specify any “local” string substitutions to perform over
+the entire roff source for each man page <emphasis>after</emphasis>
+performing the string substitutions specified by the <parameter>man.string.subst.map</parameter> parameter.</para>
+
+<para>For details about the format of this parameter, see the
+documentation for the <parameter>man.string.subst.map</parameter>
+parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.string.subst.map.local.pre.xml b/applications/content/template/docbook/params/man.string.subst.map.local.pre.xml
new file mode 100644
index 0000000..6483752
--- /dev/null
+++ b/applications/content/template/docbook/params/man.string.subst.map.local.pre.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.string.subst.map.local.pre">
+<refmeta>
+<refentrytitle>man.string.subst.map.local.pre</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.string.subst.map.local.pre</refname>
+<refpurpose>Specifies “local” string substitutions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.string.subst.map.local.pre.frag">
+  <xsl:param name="man.string.subst.map.local.pre"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Use the <parameter>man.string.subst.map.local.pre</parameter>
+parameter to specify any “local” string substitutions to perform over
+the entire roff source for each man page <emphasis>before</emphasis>
+performing the string substitutions specified by the <parameter>man.string.subst.map</parameter> parameter.</para>
+
+<para>For details about the format of this parameter, see the
+documentation for the <parameter>man.string.subst.map</parameter>
+parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.string.subst.map.xml b/applications/content/template/docbook/params/man.string.subst.map.xml
new file mode 100644
index 0000000..0feed4a
--- /dev/null
+++ b/applications/content/template/docbook/params/man.string.subst.map.xml
@@ -0,0 +1,162 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0"
+          version="5.0" xml:id="man.string.subst.map">
+<refmeta>
+<refentrytitle>man.string.subst.map</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">rtf</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.string.subst.map</refname>
+<refpurpose>Specifies a set of string substitutions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.string.subst.map.frag">
+<xsl:param name="man.string.subst.map">
+
+  <!-- * remove no-break marker at beginning of line (stylesheet artifact) --> 
+  <ss:substitution oldstring="&#x2592;&#x2580;" newstring="&#x2592;"/>
+  <!-- * replace U+2580 no-break marker (stylesheet-added) w/ no-break space -->
+  <ss:substitution oldstring="&#x2580;" newstring="\ "/>
+
+  <!-- ==================================================================== -->
+
+  <!-- * squeeze multiple newlines before a roff request  -->
+  <ss:substitution oldstring="&#10;&#10;." newstring="&#10;."/>
+  <!-- * remove any .sp instances that directly precede a .PP  -->
+  <ss:substitution oldstring=".sp&#10;.PP" newstring=".PP"/>
+  <!-- * remove any .sp instances that directly follow a .PP  -->
+  <ss:substitution oldstring=".sp&#10;.sp" newstring=".sp"/>
+  <!-- * squeeze multiple .sp instances into a single .sp-->
+  <ss:substitution oldstring=".PP&#10;.sp" newstring=".PP"/>
+  <!-- * squeeze multiple newlines after start of no-fill (verbatim) env. -->
+  <ss:substitution oldstring=".nf&#10;&#10;" newstring=".nf&#10;"/>
+  <!-- * squeeze multiple newlines after REstoring margin -->
+  <ss:substitution oldstring=".RE&#10;&#10;" newstring=".RE&#10;"/>
+  <!-- * U+2591 is a marker we add before and after every Parameter in -->
+  <!-- * Funcprototype output -->
+  <ss:substitution oldstring="&#x2591;" newstring=" "/>
+  <!-- * U+2592 is a marker we add for the newline before output of <sbr>; -->
+  <ss:substitution oldstring="&#x2592;" newstring="&#10;"/>
+  <!-- * -->
+  <!-- * Now deal with some other characters that are added by the -->
+  <!-- * stylesheets during processing. -->
+  <!-- * -->
+  <!-- * bullet -->
+  <ss:substitution oldstring="•" newstring="\(bu"/>
+  <!-- * left double quote -->
+  <ss:substitution oldstring="“" newstring="\(lq"/>
+  <!-- * right double quote -->
+  <ss:substitution oldstring="”" newstring="\(rq"/>
+  <!-- * left single quote -->
+  <ss:substitution oldstring="‘" newstring="\(oq"/>
+  <!-- * right single quote -->
+  <ss:substitution oldstring="’" newstring="\(cq"/>
+  <!-- * copyright sign -->
+  <ss:substitution oldstring="©" newstring="\(co"/>
+  <!-- * registered sign -->
+  <ss:substitution oldstring="®" newstring="\(rg"/>
+  <!-- * ...servicemark... -->
+  <!-- * There is no groff equivalent for it. -->
+  <ss:substitution oldstring="&#x2120;" newstring="(SM)"/>
+  <!-- * ...trademark... -->
+  <!-- * We don't do "\(tm" because for console output, -->
+  <!-- * groff just renders that as "tm"; that is: -->
+  <!-- * -->
+  <!-- *   Product&#x2122; -> Producttm -->
+  <!-- * -->
+  <!-- * So we just make it to "(TM)" instead; thus: -->
+  <!-- * -->
+  <!-- *   Product&#x2122; -> Product(TM) -->
+  <ss:substitution oldstring="™" newstring="(TM)"/>
+
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>man.string.subst.map</parameter> parameter
+contains <link linkend="map">a map</link> that specifies a set of
+string substitutions to perform over the entire roff source for each
+man page, either just before generating final man-page output (that
+is, before writing man-page files to disk) or, if the value of the
+<parameter>man.charmap.enabled</parameter> parameter is non-zero,
+before applying the roff character map.</para>
+
+<para>You can use <parameter>man.string.subst.map</parameter> as a
+“lightweight” character map to perform “essential” substitutions --
+that is, substitutions that are <emphasis>always</emphasis> performed,
+even if the value of the <parameter>man.charmap.enabled</parameter>
+parameter is zero. For example, you can use it to replace quotation
+marks or other special characters that are generated by the DocBook
+XSL stylesheets for a particular locale setting (as opposed to those
+characters that are actually in source XML documents), or to replace
+any special characters that may be automatically generated by a
+particular customization of the DocBook XSL stylesheets.</para>
+
+<warning>
+  <para>Do you not change value of the
+  <parameter>man.string.subst.map</parameter> parameter unless you are
+  sure what you are doing. First consider adding your
+  string-substitution mappings to either or both of the following
+  parameters:
+  <variablelist>
+    <varlistentry>
+      <term><parameter>man.string.subst.map.local.pre</parameter></term>
+      <listitem><para>applied before
+      <parameter>man.string.subst.map</parameter></para></listitem>
+    </varlistentry>
+    <varlistentry>
+      <term><parameter>man.string.subst.map.local.post</parameter></term>
+      <listitem><para>applied after
+      <parameter>man.string.subst.map</parameter></para></listitem>
+    </varlistentry>
+  </variablelist>
+  By default, both of those parameters contain no
+  string substitutions. They are intended as a means for you to
+  specify your own local string-substitution mappings.</para>
+
+  <para>If you remove any of default mappings from the value of the
+  <parameter>man.string.subst.map</parameter> parameter, you are
+  likely to end up with broken output. And be very careful about adding
+  anything to it; it’s used for doing string substitution over the
+  entire roff source of each man page – it causes target strings to be
+  replaced in roff requests and escapes, not just in the visible
+  contents of the page.</para>
+
+</warning>
+
+<refsection xml:id="map">
+  <info>
+    <title>Contents of the substitution map</title>
+  </info>
+  <para>The string-substitution map contains one or more
+  <tag>ss:substitution</tag> elements, each of which has two
+  attributes:
+  <variablelist>
+    <varlistentry>
+      <term>oldstring</term>
+      <listitem>
+        <simpara>string to replace</simpara>
+      </listitem>
+    </varlistentry>
+    <varlistentry>
+      <term>newstring</term>
+      <listitem>
+        <simpara>string with which to replace <tag
+        class="attribute">oldstring</tag></simpara>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+  It may also include XML comments (that is, delimited with
+  "<literal>&lt;!--</literal>" and "<literal>--&gt;</literal>").
+  </para>
+</refsection>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.subheading.divider.enabled.xml b/applications/content/template/docbook/params/man.subheading.divider.enabled.xml
new file mode 100644
index 0000000..1156c5f
--- /dev/null
+++ b/applications/content/template/docbook/params/man.subheading.divider.enabled.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.subheading.divider.enabled">
+<refmeta>
+<refentrytitle>man.subheading.divider.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.subheading.divider.enabled</refname>
+<refpurpose>Add divider comment to roff source before/after subheadings?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.subheading.divider.enabled.frag">
+<xsl:param name="man.subheading.divider.enabled">0</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.subheading.divider.enabled</parameter> parameter is
+non-zero, the contents of the
+<parameter>man.subheading.divider</parameter> parameter are used to
+add a "divider" before and after subheadings in the roff
+output. <emphasis role="bold">The divider is not visisble in the
+rendered man page</emphasis>; it is added as a comment, in the source,
+simply for the purpose of increasing reability of the source.</para>
+
+<para>If <parameter>man.subheading.divider.enabled</parameter> is zero
+(the default), the subheading divider is suppressed.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.subheading.divider.xml b/applications/content/template/docbook/params/man.subheading.divider.xml
new file mode 100644
index 0000000..dbd2669
--- /dev/null
+++ b/applications/content/template/docbook/params/man.subheading.divider.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.subheading.divider">
+<refmeta>
+<refentrytitle>man.subheading.divider</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.subheading.divider</refname>
+<refpurpose>Specifies string to use as divider comment before/after subheadings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.subheading.divider.frag">
+<xsl:param name="man.subheading.divider">========================================================================</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of the
+<parameter>man.subheading.divider.enabled</parameter> parameter is
+non-zero, the contents of the
+<parameter>man.subheading.divider</parameter> parameter are used to
+add a "divider" before and after subheadings in the roff
+output. <emphasis role="bold">The divider is not visisble in the
+rendered man page</emphasis>; it is added as a comment, in the source,
+simply for the purpose of increasing reability of the source.</para>
+
+<para>If <parameter>man.subheading.divider.enabled</parameter> is zero
+(the default), the subheading divider is suppressed.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.table.footnotes.divider.xml b/applications/content/template/docbook/params/man.table.footnotes.divider.xml
new file mode 100644
index 0000000..2ad4608
--- /dev/null
+++ b/applications/content/template/docbook/params/man.table.footnotes.divider.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.table.footnotes.divider">
+<refmeta>
+<refentrytitle>man.table.footnotes.divider</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.table.footnotes.divider</refname>
+<refpurpose>Specifies divider string that appears before table footnotes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.table.footnotes.divider.frag">
+<xsl:param name="man.table.footnotes.divider">----</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In each table that contains footenotes, the string specified by
+the <parameter>man.table.footnotes.divider</parameter> parameter is
+output before the list of footnotes for the table.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.th.extra1.suppress.xml b/applications/content/template/docbook/params/man.th.extra1.suppress.xml
new file mode 100644
index 0000000..c0241d2
--- /dev/null
+++ b/applications/content/template/docbook/params/man.th.extra1.suppress.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.th.extra1.suppress">
+<refmeta>
+<refentrytitle>man.th.extra1.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra1.suppress</refname>
+<refpurpose>Suppress extra1 part of header/footer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.th.extra1.suppress.frag">
+<xsl:param name="man.th.extra1.suppress">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.th.extra1.suppress</parameter> is
+non-zero, then the <literal>extra1</literal> part of the
+<literal>.TH</literal> title line header/footer is suppressed.</para>
+
+<para>The content of the <literal>extra1</literal> field is almost
+always displayed in the center footer of the page and is, universally,
+a date.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.th.extra2.max.length.xml b/applications/content/template/docbook/params/man.th.extra2.max.length.xml
new file mode 100644
index 0000000..d3513ec
--- /dev/null
+++ b/applications/content/template/docbook/params/man.th.extra2.max.length.xml
@@ -0,0 +1,43 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.th.extra2.max.length">
+<refmeta>
+<refentrytitle>man.th.extra2.max.length</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra2.max.length</refname>
+<refpurpose>Maximum length of extra2 in header/footer</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.th.extra2.max.length.frag">
+<xsl:param name="man.th.extra2.max.length">30</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximum permitted length of the
+<literal>extra2</literal> part of the man-page part of the
+<literal>.TH</literal> title line header/footer. If the
+<literal>extra2</literal> content exceeds the maxiumum specified, it
+is truncated down to the maximum permitted length.</para>
+
+<para>The content of the <literal>extra2</literal> field is usually
+displayed in the left footer of the page and is typically "source"
+data indicating the software system or product that the item
+documented in the man page belongs to, often in the form
+<replaceable>Name</replaceable> <replaceable>Version</replaceable>;
+for example, "GTK+ 1.2" (from the <literal>gtk-options(7)</literal>
+man page).</para>
+
+<para>The default value for this parameter is reasonable but somewhat
+arbitrary. If you are processing pages with long "source" information,
+you may want to experiment with changing the value in order to achieve
+the correct aesthetic results.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.th.extra2.suppress.xml b/applications/content/template/docbook/params/man.th.extra2.suppress.xml
new file mode 100644
index 0000000..0fcd3ed
--- /dev/null
+++ b/applications/content/template/docbook/params/man.th.extra2.suppress.xml
@@ -0,0 +1,44 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.th.extra2.suppress">
+<refmeta>
+<refentrytitle>man.th.extra2.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra2.suppress</refname>
+<refpurpose>Suppress extra2 part of header/footer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.th.extra2.suppress.frag">
+<xsl:param name="man.th.extra2.suppress">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.th.extra2.suppress</parameter> is
+non-zero, then the <literal>extra2</literal> part of the
+<literal>.TH</literal> title line header/footer is suppressed.</para>
+
+<para>The content of the <literal>extra2</literal> field is usually
+displayed in the left footer of the page and is typically "source"
+data, often in the form
+<replaceable>Name</replaceable> <replaceable>Version</replaceable>;
+for example, "GTK+ 1.2" (from the <literal>gtk-options(7)</literal>
+man page).</para>
+
+<note>
+  <para>You can use the
+  <parameter>refentry.source.name.suppress</parameter> and
+  <parameter>refentry.version.suppress</parameter> parameters to
+  independently suppress the <replaceable>Name</replaceable> and
+  <replaceable>Version</replaceable> parts of the
+  <literal>extra2</literal> field.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.th.extra3.max.length.xml b/applications/content/template/docbook/params/man.th.extra3.max.length.xml
new file mode 100644
index 0000000..77e55e4
--- /dev/null
+++ b/applications/content/template/docbook/params/man.th.extra3.max.length.xml
@@ -0,0 +1,42 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.th.extra3.max.length">
+<refmeta>
+<refentrytitle>man.th.extra3.max.length</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra3.max.length</refname>
+<refpurpose>Maximum length of extra3 in header/footer</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.th.extra3.max.length.frag">
+<xsl:param name="man.th.extra3.max.length">30</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximum permitted length of the
+<literal>extra3</literal> part of the man-page <literal>.TH</literal>
+title line header/footer. If the <literal>extra3</literal> content
+exceeds the maxiumum specified, it is truncated down to the maximum
+permitted length.</para>
+
+<para>The content of the <literal>extra3</literal> field is usually
+displayed in the middle header of the page and is typically a "manual
+name"; for example, "GTK+ User's Manual" (from the
+<literal>gtk-options(7)</literal> man page).</para>
+
+<para>The default value for this parameter is reasonable but somewhat
+arbitrary. If you are processing pages with long "manual names" -- or
+especially if you are processing pages that have both long "title"
+parts (command/function, etc. names) <emphasis>and</emphasis> long
+manual names -- you may want to experiment with changing the value in
+order to achieve the correct aesthetic results.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.th.extra3.suppress.xml b/applications/content/template/docbook/params/man.th.extra3.suppress.xml
new file mode 100644
index 0000000..81d6c0d
--- /dev/null
+++ b/applications/content/template/docbook/params/man.th.extra3.suppress.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.th.extra3.suppress">
+<refmeta>
+<refentrytitle>man.th.extra3.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.extra3.suppress</refname>
+<refpurpose>Suppress extra3 part of header/footer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.th.extra3.suppress.frag">
+<xsl:param name="man.th.extra3.suppress">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>man.th.extra3.suppress</parameter> is
+non-zero, then the <literal>extra3</literal> part of the
+<literal>.TH</literal> title line header/footer is
+suppressed.</para>
+
+<para>The content of the <literal>extra3</literal> field is usually
+displayed in the middle header of the page and is typically a "manual
+name"; for example, "GTK+ User's Manual" (from the
+<literal>gtk-options(7)</literal> man page).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/man.th.title.max.length.xml b/applications/content/template/docbook/params/man.th.title.max.length.xml
new file mode 100644
index 0000000..7fdf0bf
--- /dev/null
+++ b/applications/content/template/docbook/params/man.th.title.max.length.xml
@@ -0,0 +1,63 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="man.th.title.max.length">
+<refmeta>
+<refentrytitle>man.th.title.max.length</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>man.th.title.max.length</refname>
+<refpurpose>Maximum length of title in header/footer</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="man.th.title.max.length.frag">
+<xsl:param name="man.th.title.max.length">20</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximum permitted length of the title part of the
+man-page <literal>.TH</literal> title line header/footer. If the title
+exceeds the maxiumum specified, it is truncated down to the maximum
+permitted length.</para>
+
+<refsection><info><title>Details</title></info>
+  
+
+<para>Every man page generated using the DocBook stylesheets has a
+title line, specified using the <literal>TH</literal> roff
+macro. Within that title line, there is always, at a minimum, a title,
+followed by a section value (representing a man "section" -- usually
+just a number).</para>
+
+<para>The title and section are displayed, together, in the visible
+header of each page. Where in the header they are displayed depends on
+OS the man page is viewed on, and on what version of nroff/groff/man
+is used for viewing the page. But, at a minimum and across all
+systems, the title and section are displayed on the right-hand column
+of the header. On many systems -- those with a modern groff, including
+Linux systems -- they are displayed twice: both in the left and right
+columns of the header.</para>
+
+<para>So if the length of the title exceeds a certain percentage of
+the column width in which the page is viewed, the left and right
+titles can end up overlapping, making them unreadable, or breaking to
+another line, which doesn't look particularly good.</para>
+
+<para>So the stylesheets provide the
+<parameter>man.th.title.max.length</parameter> parameter as a means
+for truncating titles that exceed the maximum length that can be
+viewing properly in a page header.</para>
+
+<para>The default value is reasonable but somewhat arbitrary. If you
+have pages with long titles, you may want to experiment with changing
+the value in order to achieve the correct aesthetic results.</para>
+</refsection>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/manifest.in.base.dir.xml b/applications/content/template/docbook/params/manifest.in.base.dir.xml
new file mode 100644
index 0000000..d002767
--- /dev/null
+++ b/applications/content/template/docbook/params/manifest.in.base.dir.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="manifest.in.base.dir">
+<refmeta>
+<refentrytitle>manifest.in.base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>manifest.in.base.dir</refname>
+<refpurpose>Should the manifest file be written into <parameter>base.dir</parameter>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="manifest.in.base.dir.frag">
+<xsl:param name="manifest.in.base.dir" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the manifest file as well as project files for HTML Help and
+Eclipse Help are written into <parameter>base.dir</parameter> instead
+of the current directory.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/manifest.xml b/applications/content/template/docbook/params/manifest.xml
new file mode 100644
index 0000000..96d092a
--- /dev/null
+++ b/applications/content/template/docbook/params/manifest.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="manifest">
+  <refmeta>
+    <refentrytitle>manifest</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>manifest</refname>
+    <refpurpose>Name of manifest file</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <src:fragment xml:id="manifest.frag">
+    <xsl:param name="manifest" >HTML.manifest</xsl:param>
+    </src:fragment>
+  </refsynopsisdiv>
+
+  <refsection><info><title>Description</title></info>
+
+    <para>The name of the file to which a manifest is written (if the
+      value of the <parameter>generate.manifest</parameter> parameter
+      is non-zero).</para>
+
+  </refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/manual.toc.xml b/applications/content/template/docbook/params/manual.toc.xml
new file mode 100644
index 0000000..7a640c7
--- /dev/null
+++ b/applications/content/template/docbook/params/manual.toc.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="manual.toc">
+<refmeta>
+<refentrytitle>manual.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>manual.toc</refname>
+<refpurpose>An explicit TOC to be used for the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="manual.toc.frag">
+<xsl:param name="manual.toc"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>manual.toc</parameter> identifies an explicit TOC that
+will be used for building the printed TOC.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/margin.note.float.type.xml b/applications/content/template/docbook/params/margin.note.float.type.xml
new file mode 100644
index 0000000..0b34230
--- /dev/null
+++ b/applications/content/template/docbook/params/margin.note.float.type.xml
@@ -0,0 +1,77 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="margin.note.float.type">
+<refmeta>
+<refentrytitle>margin.note.float.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">before</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">left</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">start</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">right</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">end</refmiscinfo>     
+<refmiscinfo class="other" otherclass="value">inside</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outside</refmiscinfo> 
+</refmeta>
+<refnamediv>
+<refname>margin.note.float.type</refname>
+<refpurpose>Select type of float for margin note customizations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="margin.note.float.type.frag">
+<xsl:param name="margin.note.float.type">none</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the type of float for margin notes.
+DocBook does not define a margin note element, so this
+feature must be implemented as a customization of the stylesheet.
+See <parameter>margin.note.properties</parameter> for
+an example.
+</para>
+<itemizedlist>
+<listitem>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>none</literal></quote>, then 
+no float is used.
+</para>
+</listitem>
+<listitem>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>before</literal></quote>, then 
+the float appears at the top of the page.  On some processors,
+that may be the next page rather than the current page.
+</para>
+</listitem>
+<listitem>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>left</literal></quote> or
+<quote><literal>start</literal></quote>, then 
+a left side float is used.
+</para>
+</listitem>
+<listitem>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>right</literal></quote> or
+<quote><literal>end</literal></quote>, then 
+a right side float is used.
+</para>
+</listitem>
+<listitem>
+<para>If your XSL-FO processor supports floats positioned on the
+<quote><literal>inside</literal></quote> or
+<quote><literal>outside</literal></quote>
+of double-sided pages, then you have those two 
+options for side floats as well.
+</para>
+</listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/margin.note.properties.xml b/applications/content/template/docbook/params/margin.note.properties.xml
new file mode 100644
index 0000000..02dc20e
--- /dev/null
+++ b/applications/content/template/docbook/params/margin.note.properties.xml
@@ -0,0 +1,54 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="margin.note.properties">
+<refmeta>
+<refentrytitle>margin.note.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>margin.note.properties</refname>
+<refpurpose>Attribute set for margin.note properties</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="margin.note.properties.frag">
+<xsl:attribute-set name="margin.note.properties">
+  <xsl:attribute name="font-size">90%</xsl:attribute>
+  <xsl:attribute name="text-align">start</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for margin notes.
+By default, margin notes are not implemented for any
+element. A stylesheet customization is needed to make
+use of this attribute-set.</para>
+
+<para>You can use a template named <quote>floater</quote>
+to create the customization.
+That template can create side floats by specifying the
+content and characteristics as template parameters.
+</para>
+
+<para>For example:</para>
+<programlisting>&lt;xsl:template match="para[@role='marginnote']"&gt;
+  &lt;xsl:call-template name="floater"&gt;
+    &lt;xsl:with-param name="position"&gt;
+      &lt;xsl:value-of select="$margin.note.float.type"/&gt;
+    &lt;/xsl:with-param&gt;
+    &lt;xsl:with-param name="width"&gt;
+      &lt;xsl:value-of select="$margin.note.width"/&gt;
+    &lt;/xsl:with-param&gt;
+    &lt;xsl:with-param name="content"&gt;
+      &lt;xsl:apply-imports/&gt;
+    &lt;/xsl:with-param&gt;
+  &lt;/xsl:call-template&gt;
+&lt;/xsl:template&gt;</programlisting>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/margin.note.title.properties.xml b/applications/content/template/docbook/params/margin.note.title.properties.xml
new file mode 100644
index 0000000..84399bb
--- /dev/null
+++ b/applications/content/template/docbook/params/margin.note.title.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="margin.note.title.properties">
+<refmeta>
+<refentrytitle>margin.note.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>margin.note.title.properties</refname>
+<refpurpose>Attribute set for margin note titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="margin.note.title.properties.frag">
+<xsl:attribute-set name="margin.note.title.properties">
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="text-align">start</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for margin note titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/margin.note.width.xml b/applications/content/template/docbook/params/margin.note.width.xml
new file mode 100644
index 0000000..3ee0aa4
--- /dev/null
+++ b/applications/content/template/docbook/params/margin.note.width.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="margin.note.width">
+<refmeta>
+<refentrytitle>margin.note.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>margin.note.width</refname>
+<refpurpose>Set the default width for margin notes</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="margin.note.width.frag">
+<xsl:param name="margin.note.width" >1in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the default width for margin notes when used as a side
+float.  The width determines the degree to which the margin note block
+intrudes into the text area.
+</para>
+<para>If <parameter>margin.note.float.type</parameter> is
+<quote><literal>before</literal></quote> or 
+<quote><literal>none</literal></quote>, then 
+this parameter is ignored.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/marker.section.level.xml b/applications/content/template/docbook/params/marker.section.level.xml
new file mode 100644
index 0000000..70bd4fd
--- /dev/null
+++ b/applications/content/template/docbook/params/marker.section.level.xml
@@ -0,0 +1,50 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="marker.section.level">
+<refmeta>
+<refentrytitle>marker.section.level</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>marker.section.level</refname>
+<refpurpose>Control depth of sections shown in running headers or footers</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="marker.section.level.frag">
+<xsl:param name="marker.section.level" >2</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>marker.section.level</parameter> parameter
+controls the depth of section levels that may be displayed
+in running headers and footers.  For example, if the value
+is 2 (the default), then titles from <tag>sect1</tag> and 
+<tag>sect2</tag> or equivalent <tag>section</tag>
+elements are candidates for use in running headers and
+footers.
+</para>
+<para>Each candidate title is marked in the FO output with a
+<tag>&lt;fo:marker marker-class-name="section.head.marker"&gt;</tag>
+element.
+</para>
+<para>In order for such titles to appear in headers
+or footers, the <literal>header.content</literal>
+or <literal>footer.content</literal> template
+must be customized to retrieve the marker using
+an output element such as:
+</para>
+<programlisting>
+&lt;fo:retrieve-marker retrieve-class-name="section.head.marker"
+                       retrieve-position="first-including-carryover"
+                       retrieve-boundary="page-sequence"/&gt;
+</programlisting>
+
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/menuchoice.menu.separator.xml b/applications/content/template/docbook/params/menuchoice.menu.separator.xml
new file mode 100644
index 0000000..cf142e2
--- /dev/null
+++ b/applications/content/template/docbook/params/menuchoice.menu.separator.xml
@@ -0,0 +1,42 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="menuchoice.menu.separator">
+<refmeta>
+<refentrytitle>menuchoice.menu.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>menuchoice.menu.separator</refname>
+<refpurpose>Separator between items of a <tag>menuchoice</tag>
+with <tag>guimenuitem</tag> or
+<tag>guisubmenu</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="menuchoice.menu.separator.frag">
+<xsl:param name="menuchoice.menu.separator"> → </xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator used to connect items of a <tag>menuchoice</tag> with
+<tag>guimenuitem</tag> or <tag>guisubmenu</tag>. Other elements
+are linked with <parameter>menuchoice.separator</parameter>.
+</para>
+<para>The default value is &amp;#x2192;, which is the
+&amp;rarr; (right arrow) character entity.  
+The current FOP (0.20.5) requires setting the font-family
+explicitly.
+</para>
+<para>The default value also includes spaces around the arrow,
+which will allow a line to break.  Replace the spaces with
+&amp;#xA0; (nonbreaking space) if you don't want those
+spaces to break.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/menuchoice.separator.xml b/applications/content/template/docbook/params/menuchoice.separator.xml
new file mode 100644
index 0000000..3034f25
--- /dev/null
+++ b/applications/content/template/docbook/params/menuchoice.separator.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="menuchoice.separator">
+<refmeta>
+<refentrytitle>menuchoice.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>menuchoice.separator</refname>
+<refpurpose>Separator between items of a <tag>menuchoice</tag>
+other than <tag>guimenuitem</tag> and
+<tag>guisubmenu</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="menuchoice.separator.frag">
+<xsl:param name="menuchoice.separator">+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator used to connect items of a <tag>menuchoice</tag> other
+than <tag>guimenuitem</tag> and <tag>guisubmenu</tag>. The latter
+elements are linked with <parameter>menuchoice.menu.separator</parameter>.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/minus.image.xml b/applications/content/template/docbook/params/minus.image.xml
new file mode 100644
index 0000000..ea86e23
--- /dev/null
+++ b/applications/content/template/docbook/params/minus.image.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="minus.image.frag">
+<xsl:param name="minus.image">toc/open.png</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/monospace.font.family.xml b/applications/content/template/docbook/params/monospace.font.family.xml
new file mode 100644
index 0000000..7e772e9
--- /dev/null
+++ b/applications/content/template/docbook/params/monospace.font.family.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="monospace.font.family">
+<refmeta>
+<refentrytitle>monospace.font.family</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>monospace.font.family</refname>
+<refpurpose>The default font family for monospace environments</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="monospace.font.family.frag">
+<xsl:param name="monospace.font.family">monospace</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The monospace font family is used for verbatim environments
+(program listings, screens, etc.).
+</para>
+<para>If more than one font is required, enter the font names,
+separated by a comma, e.g.</para>
+<literallayout>
+  &lt;xsl:param name="body.font.family">Arial, SimSun, serif&lt;/xsl:param>
+
+</literallayout>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/monospace.properties.xml b/applications/content/template/docbook/params/monospace.properties.xml
new file mode 100644
index 0000000..0a8425b
--- /dev/null
+++ b/applications/content/template/docbook/params/monospace.properties.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="monospace.properties">
+<refmeta>
+<refentrytitle>monospace.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>monospace.properties</refname>
+<refpurpose>Properties of monospaced content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="monospace.properties.frag">
+<xsl:attribute-set name="monospace.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$monospace.font.family"/>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the font name for monospaced output. This property set
+used to set the font-size as well, but that doesn't work very well
+when different fonts are used (as they are in titles and paragraphs,
+for example).</para>
+
+<para>If you want to set the font-size in a customization layer, it's
+probably going to be more appropriate to set font-size-adjust, if your
+formatter supports it.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/monospace.verbatim.font.width.xml b/applications/content/template/docbook/params/monospace.verbatim.font.width.xml
new file mode 100644
index 0000000..88b88dc
--- /dev/null
+++ b/applications/content/template/docbook/params/monospace.verbatim.font.width.xml
@@ -0,0 +1,40 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="monospace.verbatim.font.width">
+<refmeta>
+<refentrytitle>monospace.verbatim.font.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>monospace.verbatim.font.width</refname>
+<refpurpose>Width of a single monospace font character</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="monospace.verbatim.font.width.frag">
+<xsl:param name="monospace.verbatim.font.width">0.60em</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies with em units the width of a single character
+of the monospace font. The default value is <literal>0.6em</literal>.</para>
+
+<para>This parameter is only used when a <tag>screen</tag>
+or <tag>programlisting</tag> element has a 
+<tag class="attribute">width</tag> attribute, which is
+expressed as a plain integer to indicate the maximum character count
+of each line.
+To convert this character count to an actual maximum width
+measurement, the width of the font characters must be provided.
+Different monospace fonts have different character width,
+so this parameter should be adjusted to fit the 
+monospace font being used.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/monospace.verbatim.properties.xml b/applications/content/template/docbook/params/monospace.verbatim.properties.xml
new file mode 100644
index 0000000..3d7ca3d
--- /dev/null
+++ b/applications/content/template/docbook/params/monospace.verbatim.properties.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="monospace.verbatim.properties">
+<refmeta>
+<refentrytitle>monospace.verbatim.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>monospace.verbatim.properties</refname>
+<refpurpose>What font and size do you want for monospaced content?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="monospace.verbatim.properties.frag">
+<xsl:attribute-set name="monospace.verbatim.properties" use-attribute-sets="verbatim.properties monospace.properties">
+  <xsl:attribute name="text-align">start</xsl:attribute>
+  <xsl:attribute name="wrap-option">no-wrap</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify the font name and size you want for monospaced output</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/multiframe.bottom.bgcolor.xml b/applications/content/template/docbook/params/multiframe.bottom.bgcolor.xml
new file mode 100644
index 0000000..f0667d7
--- /dev/null
+++ b/applications/content/template/docbook/params/multiframe.bottom.bgcolor.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="multiframe.bottom.bgcolor.frag">
+<xsl:param name="multiframe.bottom.bgcolor">white</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/multiframe.navigation.height.xml b/applications/content/template/docbook/params/multiframe.navigation.height.xml
new file mode 100644
index 0000000..06dbc1c
--- /dev/null
+++ b/applications/content/template/docbook/params/multiframe.navigation.height.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="multiframe.navigation.height.frag">
+<xsl:param name="multiframe.navigation.height">40</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/multiframe.top.bgcolor.xml b/applications/content/template/docbook/params/multiframe.top.bgcolor.xml
new file mode 100644
index 0000000..4814fc8
--- /dev/null
+++ b/applications/content/template/docbook/params/multiframe.top.bgcolor.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="multiframe.top.bgcolor.frag">
+<xsl:param name="multiframe.top.bgcolor" >white</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/multiframe.xml b/applications/content/template/docbook/params/multiframe.xml
new file mode 100644
index 0000000..b4fbf37
--- /dev/null
+++ b/applications/content/template/docbook/params/multiframe.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="multiframe.frag">
+<xsl:param name="multiframe" select="0"/>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/nav.separator.xml b/applications/content/template/docbook/params/nav.separator.xml
new file mode 100644
index 0000000..e3695f9
--- /dev/null
+++ b/applications/content/template/docbook/params/nav.separator.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="nav.separator.frag">
+<xsl:param name="nav.separator" select="1"/>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/nav.table.summary.xml b/applications/content/template/docbook/params/nav.table.summary.xml
new file mode 100644
index 0000000..1c1559b
--- /dev/null
+++ b/applications/content/template/docbook/params/nav.table.summary.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="nav.table.summary">
+<refmeta>
+<refentrytitle>nav.table.summary</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nav.table.summary</refname>
+<refpurpose>HTML Table summary attribute value for navigation tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="nav.table.summary.frag">
+<xsl:param name="nav.table.summary">Navigation</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The value of this parameter is used as the value of the table
+summary attribute for the navigation table.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/navbgcolor.xml b/applications/content/template/docbook/params/navbgcolor.xml
new file mode 100644
index 0000000..c6fcece
--- /dev/null
+++ b/applications/content/template/docbook/params/navbgcolor.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="navbgcolor">
+<refmeta>
+<refentrytitle>navbgcolor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navbgcolor</refname>
+<refpurpose>The background color of the navigation TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="navbgcolor.frag">
+<xsl:param name="navbgcolor">#4080FF</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The background color of the navigation TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/navbodywidth.xml b/applications/content/template/docbook/params/navbodywidth.xml
new file mode 100644
index 0000000..b93cf82
--- /dev/null
+++ b/applications/content/template/docbook/params/navbodywidth.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="navbodywidth">
+<refmeta>
+<refentrytitle>navbodywidth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navbodywidth</refname>
+<refpurpose>Specifies the width of the navigation table body</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="navbodywidth.frag">
+<xsl:param name="navbodywidth"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The width of the body column.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/navig.graphics.extension.xml b/applications/content/template/docbook/params/navig.graphics.extension.xml
new file mode 100644
index 0000000..416e0c4
--- /dev/null
+++ b/applications/content/template/docbook/params/navig.graphics.extension.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="navig.graphics.extension">
+<refmeta>
+<refentrytitle>navig.graphics.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navig.graphics.extension</refname>
+<refpurpose>Extension for navigational graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="navig.graphics.extension.frag">
+<xsl:param name="navig.graphics.extension">.gif</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the filename extension to use on navigational graphics used
+in the headers and footers of chunked HTML.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/navig.graphics.path.xml b/applications/content/template/docbook/params/navig.graphics.path.xml
new file mode 100644
index 0000000..373208e
--- /dev/null
+++ b/applications/content/template/docbook/params/navig.graphics.path.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="navig.graphics.path">
+<refmeta>
+<refentrytitle>navig.graphics.path</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navig.graphics.path</refname>
+<refpurpose>Path to navigational graphics</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="navig.graphics.path.frag">
+<xsl:param name="navig.graphics.path">images/</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the path, probably relative to the directory where the HTML
+files are created, to the navigational graphics used in the
+headers and footers of chunked HTML.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/navig.graphics.xml b/applications/content/template/docbook/params/navig.graphics.xml
new file mode 100644
index 0000000..03e28b6
--- /dev/null
+++ b/applications/content/template/docbook/params/navig.graphics.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="navig.graphics">
+<refmeta>
+<refentrytitle>navig.graphics</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navig.graphics</refname>
+<refpurpose>Use graphics in navigational headers and footers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="navig.graphics.frag">
+<xsl:param name="navig.graphics" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the navigational headers and footers in chunked
+HTML are presented in an alternate style that uses graphical icons for
+Next, Previous, Up, and Home.  Default graphics are provided in the
+distribution. If zero, text is used instead of graphics.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/navig.showtitles.xml b/applications/content/template/docbook/params/navig.showtitles.xml
new file mode 100644
index 0000000..a4eb3ff
--- /dev/null
+++ b/applications/content/template/docbook/params/navig.showtitles.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="navig.showtitles">
+<refmeta>
+<refentrytitle>navig.showtitles</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navig.showtitles</refname>
+<refpurpose>Display titles in HTML headers and footers?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="navig.showtitles.frag"><xsl:param name="navig.showtitles">1</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+the headers and footers of chunked HTML
+display the titles of the next and previous chunks,
+along with the words 'Next' and 'Previous' (or the
+equivalent graphical icons if navig.graphics is true).
+If false (zero), then only the words 'Next' and 'Previous'
+(or the icons) are displayed.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/navtocwidth.xml b/applications/content/template/docbook/params/navtocwidth.xml
new file mode 100644
index 0000000..0d21ae0
--- /dev/null
+++ b/applications/content/template/docbook/params/navtocwidth.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="navtocwidth">
+<refmeta>
+<refentrytitle>navtocwidth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navtocwidth</refname>
+<refpurpose>Specifies the width of the navigation table TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="navtocwidth.frag">
+<xsl:param name="navtocwidth">220</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The width, in pixels, of the navigation column.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/next.image.xml b/applications/content/template/docbook/params/next.image.xml
new file mode 100644
index 0000000..4dbd60a
--- /dev/null
+++ b/applications/content/template/docbook/params/next.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="next.image.frag">
+<xsl:param name="next.image" >active/nav-next.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the right-pointing navigation arrow.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/no.home.image.xml b/applications/content/template/docbook/params/no.home.image.xml
new file mode 100644
index 0000000..2f4ecd8
--- /dev/null
+++ b/applications/content/template/docbook/params/no.home.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="no.home.image.frag">
+<xsl:param name="no.home.image">inactive/nav-home.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the inactive home navigation icon.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/no.next.image.xml b/applications/content/template/docbook/params/no.next.image.xml
new file mode 100644
index 0000000..966fe26
--- /dev/null
+++ b/applications/content/template/docbook/params/no.next.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="no.next.image.frag">
+<xsl:param name="no.next.image">inactive/nav-next.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the inactive right-pointing navigation arrow.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/no.prev.image.xml b/applications/content/template/docbook/params/no.prev.image.xml
new file mode 100644
index 0000000..7632231
--- /dev/null
+++ b/applications/content/template/docbook/params/no.prev.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="no.prev.image.frag">
+<xsl:param name="no.prev.image" >inactive/nav-prev.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the inactive left-pointing navigation arrow.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/no.toc.image.xml b/applications/content/template/docbook/params/no.toc.image.xml
new file mode 100644
index 0000000..43e9eea
--- /dev/null
+++ b/applications/content/template/docbook/params/no.toc.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="no.toc.image.frag">
+<xsl:param name="no.toc.image">inactive/nav-toc.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the inactive ToC navigation icon.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/no.up.image.xml b/applications/content/template/docbook/params/no.up.image.xml
new file mode 100644
index 0000000..a19a34d
--- /dev/null
+++ b/applications/content/template/docbook/params/no.up.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="no.up.image.frag">
+<xsl:param name="no.up.image" >inactive/nav-up.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the inactive upward-pointing navigation arrow.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/nominal.image.depth.xml b/applications/content/template/docbook/params/nominal.image.depth.xml
new file mode 100644
index 0000000..a4e615f
--- /dev/null
+++ b/applications/content/template/docbook/params/nominal.image.depth.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="nominal.image.depth">
+<refmeta>
+<refentrytitle>nominal.image.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nominal.image.depth</refname>
+<refpurpose>Nominal image depth</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="nominal.image.depth.frag">
+<xsl:param name="nominal.image.depth" select="4 * $pixels.per.inch"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>See <parameter>nominal.image.width</parameter>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/nominal.image.width.xml b/applications/content/template/docbook/params/nominal.image.width.xml
new file mode 100644
index 0000000..bfa989a
--- /dev/null
+++ b/applications/content/template/docbook/params/nominal.image.width.xml
@@ -0,0 +1,43 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="nominal.image.width">
+<refmeta>
+<refentrytitle>nominal.image.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nominal.image.width</refname>
+<refpurpose>The nominal image width</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="nominal.image.width.frag">
+<xsl:param name="nominal.image.width" select="6 * $pixels.per.inch"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Graphic widths expressed as a percentage are problematic. In the
+following discussion, we speak of width and contentwidth, but
+the same issues apply to depth and contentdepth.</para>
+
+<para>A width of 50% means "half of the available space for the image."
+That's fine. But note that in HTML, this is a dynamic property and
+the image size will vary if the browser window is resized.</para>
+
+<para>A contentwidth of 50% means "half of the actual image width".
+But what does that mean if the stylesheets cannot assess the image's
+actual size? Treating this as a width of 50% is one possibility, but
+it produces behavior (dynamic scaling) that seems entirely out of
+character with the meaning.</para>
+
+<para>Instead, the stylesheets define a
+<parameter>nominal.image.width</parameter> and convert percentages to
+actual values based on that nominal size.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/nominal.table.width.xml b/applications/content/template/docbook/params/nominal.table.width.xml
new file mode 100644
index 0000000..f5dcfb9
--- /dev/null
+++ b/applications/content/template/docbook/params/nominal.table.width.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="nominal.table.width">
+<refmeta>
+<refentrytitle>nominal.table.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nominal.table.width</refname>
+<refpurpose>The (absolute) nominal width of tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="nominal.table.width.frag">
+<xsl:param name="nominal.table.width">6in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In order to convert CALS column widths into HTML column widths, it
+is sometimes necessary to have an absolute table width to use for conversion
+of mixed absolute and relative widths. This value must be an absolute
+length (not a percentage).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/nongraphical.admonition.properties.xml b/applications/content/template/docbook/params/nongraphical.admonition.properties.xml
new file mode 100644
index 0000000..ba8a06a
--- /dev/null
+++ b/applications/content/template/docbook/params/nongraphical.admonition.properties.xml
@@ -0,0 +1,41 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="nongraphical.admonition.properties">
+<refmeta>
+<refentrytitle>nongraphical.admonition.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nongraphical.admonition.properties</refname>
+<refpurpose>To add properties to the outer block of a nongraphical admonition.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="nongraphical.admonition.properties.frag"><xsl:attribute-set name="nongraphical.admonition.properties">
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="margin-{$direction.align.start}">0.25in</xsl:attribute>
+  <xsl:attribute name="margin-{$direction.align.end}">0.25in</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the outer block containing the
+entire nongraphical admonition, including its title.
+It is used when the parameter
+<parameter>admon.graphics</parameter> is set to zero.
+Use this attribute-set to set the space above and below,
+and any indent for the whole admonition.</para>
+
+<para>In addition to these properties, a nongraphical admonition
+also applies the <parameter>admonition.title.properties</parameter>
+attribute-set to the title, and the
+<parameter>admonition.properties</parameter> attribute-set
+to the rest of the content.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/normal.para.spacing.xml b/applications/content/template/docbook/params/normal.para.spacing.xml
new file mode 100644
index 0000000..9ad7488
--- /dev/null
+++ b/applications/content/template/docbook/params/normal.para.spacing.xml
@@ -0,0 +1,43 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="normal.para.spacing">
+<refmeta>
+<refentrytitle>normal.para.spacing</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>normal.para.spacing</refname>
+<refpurpose>What space do you want between normal paragraphs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="normal.para.spacing.frag"><xsl:attribute-set name="normal.para.spacing">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify the spacing required between normal paragraphs as well as
+the following block-level elements:
+</para>
+<literallayout>ackno
+acknowledgements
+cmdsynopsis
+glosslist
+sidebar
+simpara
+simplelist
+</literallayout>
+<para>To customize the spacing, you need to reset all three attributes.</para>
+
+<para>To specify properties on just <tag>para</tag> elements without
+affecting these other elements,
+use the
+<link linkend="para.properties">para.properties</link>
+attribute-set. </para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/olink.base.uri.xml b/applications/content/template/docbook/params/olink.base.uri.xml
new file mode 100644
index 0000000..d88dd62
--- /dev/null
+++ b/applications/content/template/docbook/params/olink.base.uri.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="olink.base.uri"> 
+<refmeta> 
+<refentrytitle>olink.base.uri</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>olink.base.uri</refname> 
+<refpurpose>Base URI used in olink hrefs</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <src:fragment xml:id="olink.base.uri.frag">
+<xsl:param name="olink.base.uri"></xsl:param>
+</src:fragment> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When cross reference data is collected for resolving olinks, it
+may be necessary to prepend a base URI to each target's href. This
+parameter lets you set that base URI when cross reference data is
+collected. This feature is needed when you want to link to a document
+that is processed without chunking. The output filename for such a
+document is not known to the XSL stylesheet; the only target
+information consists of fragment identifiers such as
+<literal>#idref</literal>. To enable the resolution of olinks between
+documents, you should pass the name of the HTML output file as the
+value of this parameter. Then the hrefs recorded in the cross
+reference data collection look like
+<literal>outfile.html#idref</literal>, which can be reached as links
+from other documents.</para>
+</refsection> 
+</refentry>
diff --git a/applications/content/template/docbook/params/olink.debug.xml b/applications/content/template/docbook/params/olink.debug.xml
new file mode 100644
index 0000000..e49a176
--- /dev/null
+++ b/applications/content/template/docbook/params/olink.debug.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="olink.debug">
+<refmeta>
+<refentrytitle>olink.debug</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.debug</refname>
+<refpurpose>Turn on debugging messages for olinks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="olink.debug.frag">
+<xsl:param name="olink.debug" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then each olink will generate several
+messages about how it is being resolved during processing.
+This is useful when an olink does not resolve properly
+and the standard error messages are not sufficient to
+find the problem. 
+</para>
+
+<para>You may need to read through the olink XSL templates
+to understand the context for some of the debug messages.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/olink.doctitle.xml b/applications/content/template/docbook/params/olink.doctitle.xml
new file mode 100644
index 0000000..356347d
--- /dev/null
+++ b/applications/content/template/docbook/params/olink.doctitle.xml
@@ -0,0 +1,146 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="olink.doctitle"> 
+<refmeta> 
+<refentrytitle>olink.doctitle</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">no</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">yes</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">maybe</refmiscinfo>
+</refmeta> 
+<refnamediv> 
+<refname>olink.doctitle</refname> 
+<refpurpose>show the document title for external olinks?</refpurpose>
+
+</refnamediv> 
+<refsynopsisdiv> <src:fragment xml:id="olink.doctitle.frag">
+<xsl:param name="olink.doctitle">no</xsl:param> 
+</src:fragment> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When olinks between documents are resolved, the generated text
+may not make it clear that the reference is to another document.
+It is possible for the stylesheets to append the other document's
+title to external olinks. For this to happen, two parameters must
+be set.</para>
+<itemizedlist>
+<listitem>
+<para>This <parameter>olink.doctitle</parameter> parameter
+should be set to either <literal>yes</literal> or <literal>maybe</literal>
+to enable this feature.
+</para>
+</listitem>
+<listitem>
+<para>And you should also set the <parameter>current.docid</parameter>
+parameter to the document id for the  document currently
+being processed for output.
+</para>
+</listitem>
+</itemizedlist>
+
+<para>
+Then if an olink's  <literal>targetdoc</literal> id differs from
+the <literal>current.docid</literal> value, the stylesheet knows
+that it is a reference to another document and can
+append the target document's
+title to the generated olink text. </para> 
+
+<para>The text for the target document's title is copied from the
+olink database from the <tag>ttl</tag> element
+of the top-level <tag>div</tag> for that document.
+If that <tag>ttl</tag> element is missing or empty,
+no title is output.
+</para>
+
+<para>The supported values for <parameter>olink.doctitle</parameter> are:
+</para>
+<variablelist>
+<varlistentry>
+<term><literal>yes</literal></term>
+<listitem>
+<para>
+Always insert the title to the target document if it is not
+the current document.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>no</literal></term>
+<listitem>
+<para>
+Never insert the title to the target document, even if requested
+in an <tag class="attribute">xrefstyle</tag> attribute.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>maybe</literal></term>
+<listitem>
+<para>
+Only insert the title to the target document, if requested
+in an <tag class="attribute">xrefstyle</tag> attribute.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>An <tag class="attribute">xrefstyle</tag> attribute
+may override the global setting for individual olinks.
+The following values are supported in an
+<tag class="attribute">xrefstyle</tag>
+attribute using the <literal>select:</literal> syntax:
+</para>
+
+<variablelist>
+<varlistentry>
+<term><literal>docname</literal></term>
+<listitem>
+<para>
+Insert the target document name for this olink using the
+<literal>docname</literal> gentext template, but only
+if the value of <parameter>olink.doctitle</parameter>
+is not <literal>no</literal>.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>docnamelong</literal></term>
+<listitem>
+<para>
+Insert the target document name for this olink using the
+<literal>docnamelong</literal> gentext template, but only
+if the value of <parameter>olink.doctitle</parameter>
+is not <literal>no</literal>.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><literal>nodocname</literal></term>
+<listitem>
+<para>
+Omit the target document name even if
+the value of <parameter>olink.doctitle</parameter>
+is <literal>yes</literal>.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>Another way of inserting the target document name 
+for a single olink is to employ an
+<tag class="attribute">xrefstyle</tag>
+attribute using the <literal>template:</literal> syntax.
+The <literal>%o</literal> placeholder (the letter o, not zero)
+in such a template
+will be filled in with the target document's title when it is processed.
+This will occur regardless of 
+the value of <parameter>olink.doctitle</parameter>.
+</para>
+<para>Note that prior to version 1.66 of the XSL stylesheets,
+the allowed values for this parameter were 0 and 1.  Those
+values are still supported and mapped to 'no' and 'yes', respectively.
+</para>
+</refsection> 
+</refentry>
diff --git a/applications/content/template/docbook/params/olink.fragid.xml b/applications/content/template/docbook/params/olink.fragid.xml
new file mode 100644
index 0000000..3258038
--- /dev/null
+++ b/applications/content/template/docbook/params/olink.fragid.xml
@@ -0,0 +1,23 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="olink.fragid">
+<refmeta>
+<refentrytitle>olink.fragid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.fragid</refname>
+<refpurpose>Names the fragment identifier portion of an OLink resolver query</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="olink.fragid.frag">
+<xsl:param name="olink.fragid">fragid=</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>The fragment identifier portion of an <tag>olink</tag> target.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/olink.lang.fallback.sequence.xml b/applications/content/template/docbook/params/olink.lang.fallback.sequence.xml
new file mode 100644
index 0000000..7d3d811
--- /dev/null
+++ b/applications/content/template/docbook/params/olink.lang.fallback.sequence.xml
@@ -0,0 +1,83 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="olink.lang.fallback.sequence"> 
+<refmeta> 
+<refentrytitle>olink.lang.fallback.sequence</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>olink.lang.fallback.sequence</refname> 
+<refpurpose>look up translated documents if olink not found?</refpurpose>
+
+</refnamediv> 
+<refsynopsisdiv> <src:fragment xml:id="olink.lang.fallback.sequence.frag">
+<xsl:param name="olink.lang.fallback.sequence"></xsl:param>
+</src:fragment> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+
+<para>This parameter defines a list of lang values
+to search among to resolve olinks.
+</para>
+
+<para>Normally an olink tries to resolve to a document in the same
+language as the olink itself.  The language of an olink
+is determined by its nearest ancestor element with a
+<tag class="attribute">lang</tag> attribute, otherwise the
+value of the <parameter>l10n.gentext.default.lang</parameter>
+parameter.
+</para>
+
+<para>An olink database can contain target data for the same
+document in multiple languages.  Each set of data has the
+same value for the <tag>targetdoc</tag> attribute in
+the <tag>document</tag> element in the database, but with a 
+different <tag>lang</tag> attribute value.
+</para>
+
+<para>When an olink is being resolved, the target is first
+sought in the document with the same language as the olink.
+If no match is found there, then this parameter is consulted
+for additional languages to try.</para>
+
+<para>The <parameter>olink.lang.fallback.sequence</parameter>
+must be a whitespace separated list of lang values to
+try.  The first one with a match in the olink database is used.
+The default value is empty.</para>
+
+<para>For example, a document might be written in German
+and contain an olink with
+<literal>targetdoc="adminguide"</literal>.
+When the document is processed, the processor
+first looks for a target dataset in the
+olink database starting with:</para>
+
+<literallayout><literal>&lt;document targetdoc="adminguide" lang="de"&gt;</literal>.
+</literallayout>
+
+<para>If there is no such element, then the
+<parameter>olink.lang.fallback.sequence</parameter> 
+parameter is consulted.
+If its value is, for example, <quote>fr en</quote>, then the processor next
+looks for <literal>targetdoc="adminguide" lang="fr"</literal>, and
+then for <literal>targetdoc="adminguide" lang="en"</literal>.
+If there is still no match, it looks for
+<literal>targetdoc="adminguide"</literal> with no
+lang attribute.
+</para>
+
+<para>This parameter is useful when a set of documents is only
+partially translated, or is in the process of being translated.  
+If a target of an olink has not yet been translated, then this
+parameter permits the processor to look for the document in
+other languages.  This assumes the reader would rather have
+a link to a document in a different language than to have
+a broken link.
+</para>
+
+</refsection> 
+</refentry>
diff --git a/applications/content/template/docbook/params/olink.outline.ext.xml b/applications/content/template/docbook/params/olink.outline.ext.xml
new file mode 100644
index 0000000..2de2fe2
--- /dev/null
+++ b/applications/content/template/docbook/params/olink.outline.ext.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="olink.outline.ext">
+<refmeta>
+<refentrytitle>olink.outline.ext</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.outline.ext</refname>
+<refpurpose>The extension of OLink outline files</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="olink.outline.ext.frag">
+<xsl:param name="olink.outline.ext">.olink</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The extension to be expected for  OLink outline files</para>
+<para>Bob has this parameter as dead. Please don't use</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/olink.properties.xml b/applications/content/template/docbook/params/olink.properties.xml
new file mode 100644
index 0000000..b76657e
--- /dev/null
+++ b/applications/content/template/docbook/params/olink.properties.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="olink.properties">
+<refmeta>
+<refentrytitle>olink.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.properties</refname>
+<refpurpose>Properties associated with the cross-reference 
+text of an olink.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="olink.properties.frag">
+<xsl:attribute-set name="olink.properties">
+  <xsl:attribute name="show-destination">replace</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This <literal>attribute set</literal> is applied to the
+<literal>fo:basic-link</literal> element of an olink. It is not applied to the
+optional page number or optional title of the external
+document.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/olink.pubid.xml b/applications/content/template/docbook/params/olink.pubid.xml
new file mode 100644
index 0000000..4f0b50c
--- /dev/null
+++ b/applications/content/template/docbook/params/olink.pubid.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="olink.pubid">
+<refmeta>
+<refentrytitle>olink.pubid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.pubid</refname>
+<refpurpose>Names the public identifier portion of an OLink resolver query</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="olink.pubid.frag">
+<xsl:param name="olink.pubid">pubid</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para></para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/olink.resolver.xml b/applications/content/template/docbook/params/olink.resolver.xml
new file mode 100644
index 0000000..fa7d471
--- /dev/null
+++ b/applications/content/template/docbook/params/olink.resolver.xml
@@ -0,0 +1,23 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="olink.resolver">
+<refmeta>
+<refentrytitle>olink.resolver</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.resolver</refname>
+<refpurpose>The root name of the OLink resolver (usually a script)</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="olink.resolver.frag">
+  <xsl:param name="olink.resolver" >/cgi-bin/olink</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>FIXME:</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/olink.sysid.xml b/applications/content/template/docbook/params/olink.sysid.xml
new file mode 100644
index 0000000..6d4542f
--- /dev/null
+++ b/applications/content/template/docbook/params/olink.sysid.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="olink.sysid">
+<refmeta>
+<refentrytitle>olink.sysid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>olink.sysid</refname>
+<refpurpose>Names the system identifier portion of an OLink resolver query</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="olink.sysid.frag">
+<xsl:param name="olink.sysid">sysid</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/orderedlist.label.properties.xml b/applications/content/template/docbook/params/orderedlist.label.properties.xml
new file mode 100644
index 0000000..39b0432
--- /dev/null
+++ b/applications/content/template/docbook/params/orderedlist.label.properties.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="orderedlist.label.properties">
+<refmeta>
+<refentrytitle>orderedlist.label.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>orderedlist.label.properties</refname>
+<refpurpose>Properties that apply to each label inside ordered list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="orderedlist.label.properties.frag"><xsl:attribute-set name="orderedlist.label.properties">
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each label inside ordered list. E.g.:</para>
+<programlisting>&lt;xsl:attribute-set name="orderedlist.label.properties"&gt;
+  &lt;xsl:attribute name="text-align"&gt;right&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/orderedlist.label.width.xml b/applications/content/template/docbook/params/orderedlist.label.width.xml
new file mode 100644
index 0000000..18c8fa8
--- /dev/null
+++ b/applications/content/template/docbook/params/orderedlist.label.width.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="orderedlist.label.width">
+<refmeta>
+<refentrytitle>orderedlist.label.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>orderedlist.label.width</refname>
+<refpurpose>The default width of the label (number) in an ordered list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="orderedlist.label.width.frag">
+<xsl:param name="orderedlist.label.width">1.2em</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Specifies the default width of the label (usually a number or
+sequence of numbers) in an ordered list. You can override the default
+value on any particular list with the “dbfo” processing instruction
+using the “label-width” pseudoattribute.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/orderedlist.properties.xml b/applications/content/template/docbook/params/orderedlist.properties.xml
new file mode 100644
index 0000000..59061cb
--- /dev/null
+++ b/applications/content/template/docbook/params/orderedlist.properties.xml
@@ -0,0 +1,24 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="orderedlist.properties">
+<refmeta>
+<refentrytitle>orderedlist.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>orderedlist.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by orderedlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="orderedlist.properties.frag"><xsl:attribute-set name="orderedlist.properties" use-attribute-sets="list.block.properties">
+  <xsl:attribute name="provisional-distance-between-starts">2em</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Properties that apply to each fo:list-block generated by orderedlist.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/othercredit.like.author.enabled.xml b/applications/content/template/docbook/params/othercredit.like.author.enabled.xml
new file mode 100644
index 0000000..2e789dd
--- /dev/null
+++ b/applications/content/template/docbook/params/othercredit.like.author.enabled.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="othercredit.like.author.enabled">
+<refmeta>
+<refentrytitle>othercredit.like.author.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>othercredit.like.author.enabled</refname>
+<refpurpose>Display othercredit in same style as author?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="othercredit.like.author.enabled.frag"><xsl:param name="othercredit.like.author.enabled">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, output of the
+<tag>othercredit</tag> element on titlepages is displayed in
+the same style as <tag>author</tag> and
+<tag>editor</tag> output. If zero then
+<tag>othercredit</tag> output is displayed using a style
+different than that of <tag>author</tag> and
+<tag>editor</tag>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/outer.region.content.properties.xml b/applications/content/template/docbook/params/outer.region.content.properties.xml
new file mode 100644
index 0000000..43695c6
--- /dev/null
+++ b/applications/content/template/docbook/params/outer.region.content.properties.xml
@@ -0,0 +1,47 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="outer.region.content.properties">
+<refmeta>
+<refentrytitle>outer.region.content.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>outer.region.content.properties</refname>
+<refpurpose>Properties of running outer side content</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="outer.region.content.properties.frag">
+<xsl:attribute-set name="outer.region.content.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The FO stylesheet supports optional side regions
+similar to the header and footer regions.
+Any attributes declared in this attribute-set 
+are applied to the fo:block in the side region
+on the outer side (opposite the binding side) of the page.
+This corresponds to the <literal>start</literal>
+region on odd-numbered pages and the <literal>end</literal>
+region on even-numbered pages.
+For single-sided output, it always corresponds to
+the <literal>start</literal> region.</para>
+
+<para>You can customize the template named 
+<literal>outer.region.content</literal> to specify
+the content of the outer side region.</para>
+
+<para>See also
+<parameter>region.outer.properties</parameter>,
+<parameter>page.margin.outer</parameter>, 
+<parameter>body.margin.outer</parameter>,
+and the corresponding <literal>inner</literal>
+parameters.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/output-root.xml b/applications/content/template/docbook/params/output-root.xml
new file mode 100644
index 0000000..d37b054
--- /dev/null
+++ b/applications/content/template/docbook/params/output-root.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="output-root">
+<refmeta>
+<refentrytitle>output-root</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>output-root</refname>
+<refpurpose>Specifies the root directory of the website</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="output-root.frag">
+<xsl:param name="output-root">.</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>When using the XSLT processor to manage dependencies and construct
+the website, this parameter can be used to indicate the root directory
+where the resulting pages are placed.</para>
+<para>Only applies when XSLT-based chunking is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/output.indent.xml b/applications/content/template/docbook/params/output.indent.xml
new file mode 100644
index 0000000..40406d7
--- /dev/null
+++ b/applications/content/template/docbook/params/output.indent.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="output.indent.frag">
+<xsl:param name="output.indent" >no</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/overlay.js.xml b/applications/content/template/docbook/params/overlay.js.xml
new file mode 100644
index 0000000..162f87a
--- /dev/null
+++ b/applications/content/template/docbook/params/overlay.js.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="overlay.js.frag">
+<xsl:param name="overlay.js">overlay.js</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/overlay.logo.xml b/applications/content/template/docbook/params/overlay.logo.xml
new file mode 100644
index 0000000..e740771
--- /dev/null
+++ b/applications/content/template/docbook/params/overlay.logo.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="overlay.logo.frag">
+<xsl:param name="overlay.logo">http://docbook.sourceforge.net/release/buttons/slides-1.png</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/overlay.xml b/applications/content/template/docbook/params/overlay.xml
new file mode 100644
index 0000000..f955b23
--- /dev/null
+++ b/applications/content/template/docbook/params/overlay.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="overlay.frag">
+<xsl:param name="overlay" select="0"/>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/page.height.portrait.xml b/applications/content/template/docbook/params/page.height.portrait.xml
new file mode 100644
index 0000000..0dee73e
--- /dev/null
+++ b/applications/content/template/docbook/params/page.height.portrait.xml
@@ -0,0 +1,69 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="page.height.portrait">
+<refmeta>
+<refentrytitle>page.height.portrait</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.height.portrait</refname>
+<refpurpose>Specify the physical size of the long edge of the page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="page.height.portrait.frag"><xsl:param name="page.height.portrait">
+  <xsl:choose>
+    <xsl:when test="$paper.type = 'A4landscape'">210mm</xsl:when>
+    <xsl:when test="$paper.type = 'USletter'">11in</xsl:when>
+    <xsl:when test="$paper.type = 'USlandscape'">8.5in</xsl:when>
+    <xsl:when test="$paper.type = '4A0'">2378mm</xsl:when>
+    <xsl:when test="$paper.type = '2A0'">1682mm</xsl:when>
+    <xsl:when test="$paper.type = 'A0'">1189mm</xsl:when>
+    <xsl:when test="$paper.type = 'A1'">841mm</xsl:when>
+    <xsl:when test="$paper.type = 'A2'">594mm</xsl:when>
+    <xsl:when test="$paper.type = 'A3'">420mm</xsl:when>
+    <xsl:when test="$paper.type = 'A4'">297mm</xsl:when>
+    <xsl:when test="$paper.type = 'A5'">210mm</xsl:when>
+    <xsl:when test="$paper.type = 'A6'">148mm</xsl:when>
+    <xsl:when test="$paper.type = 'A7'">105mm</xsl:when>
+    <xsl:when test="$paper.type = 'A8'">74mm</xsl:when>
+    <xsl:when test="$paper.type = 'A9'">52mm</xsl:when>
+    <xsl:when test="$paper.type = 'A10'">37mm</xsl:when>
+    <xsl:when test="$paper.type = 'B0'">1414mm</xsl:when>
+    <xsl:when test="$paper.type = 'B1'">1000mm</xsl:when>
+    <xsl:when test="$paper.type = 'B2'">707mm</xsl:when>
+    <xsl:when test="$paper.type = 'B3'">500mm</xsl:when>
+    <xsl:when test="$paper.type = 'B4'">353mm</xsl:when>
+    <xsl:when test="$paper.type = 'B5'">250mm</xsl:when>
+    <xsl:when test="$paper.type = 'B6'">176mm</xsl:when>
+    <xsl:when test="$paper.type = 'B7'">125mm</xsl:when>
+    <xsl:when test="$paper.type = 'B8'">88mm</xsl:when>
+    <xsl:when test="$paper.type = 'B9'">62mm</xsl:when>
+    <xsl:when test="$paper.type = 'B10'">44mm</xsl:when>
+    <xsl:when test="$paper.type = 'C0'">1297mm</xsl:when>
+    <xsl:when test="$paper.type = 'C1'">917mm</xsl:when>
+    <xsl:when test="$paper.type = 'C2'">648mm</xsl:when>
+    <xsl:when test="$paper.type = 'C3'">458mm</xsl:when>
+    <xsl:when test="$paper.type = 'C4'">324mm</xsl:when>
+    <xsl:when test="$paper.type = 'C5'">229mm</xsl:when>
+    <xsl:when test="$paper.type = 'C6'">162mm</xsl:when>
+    <xsl:when test="$paper.type = 'C7'">114mm</xsl:when>
+    <xsl:when test="$paper.type = 'C8'">81mm</xsl:when>
+    <xsl:when test="$paper.type = 'C9'">57mm</xsl:when>
+    <xsl:when test="$paper.type = 'C10'">40mm</xsl:when>
+    <xsl:otherwise>11in</xsl:otherwise>
+  </xsl:choose>
+</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The portrait page height is the length of the long
+edge of the physical page.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/page.height.xml b/applications/content/template/docbook/params/page.height.xml
new file mode 100644
index 0000000..96e32c0
--- /dev/null
+++ b/applications/content/template/docbook/params/page.height.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="page.height">
+<refmeta>
+<refentrytitle>page.height</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.height</refname>
+<refpurpose>The height of the physical page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="page.height.frag"><xsl:param name="page.height">
+  <xsl:choose>
+    <xsl:when test="$page.orientation = 'portrait'">
+      <xsl:value-of select="$page.height.portrait"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$page.width.portrait"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The page height is generally calculated from the
+<parameter>paper.type</parameter> and
+<parameter>page.orientation</parameter> parameters.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/page.margin.bottom.xml b/applications/content/template/docbook/params/page.margin.bottom.xml
new file mode 100644
index 0000000..e1877f3
--- /dev/null
+++ b/applications/content/template/docbook/params/page.margin.bottom.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="page.margin.bottom">
+<refmeta>
+<refentrytitle>page.margin.bottom</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.margin.bottom</refname>
+<refpurpose>The bottom margin of the page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="page.margin.bottom.frag">
+<xsl:param name="page.margin.bottom">0.5in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The bottom page margin is the distance from the bottom of the region-after
+to the physical bottom of the page.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/page.margin.inner.xml b/applications/content/template/docbook/params/page.margin.inner.xml
new file mode 100644
index 0000000..97782ba
--- /dev/null
+++ b/applications/content/template/docbook/params/page.margin.inner.xml
@@ -0,0 +1,56 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="page.margin.inner">
+<refmeta>
+<refentrytitle>page.margin.inner</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.margin.inner</refname>
+<refpurpose>The inner page margin</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="page.margin.inner.frag"><xsl:param name="page.margin.inner">
+  <xsl:choose>
+    <xsl:when test="$double.sided != 0">1.25in</xsl:when>
+    <xsl:otherwise>1in</xsl:otherwise>
+  </xsl:choose>
+</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The inner page margin is the distance from bound edge of the
+page to the first column of text. </para>
+
+<para>The inner page margin is the distance from bound edge of the
+page to the outer edge of the first column of text.</para>
+
+<para>In left-to-right text direction,
+this is the left margin of recto (front side) pages.
+For single-sided output, it is the left margin
+of all pages.</para>
+
+<para>In right-to-left text direction,
+this is the right margin of recto pages.
+For single-sided output, this is the
+right margin of all pages.</para>
+
+<note>
+<para>Current versions (at least as of version 4.13)
+of the XEP XSL-FO processor do not
+correctly handle these margin settings for documents
+with right-to-left text direction.
+The workaround in that situation is to reverse
+the values for <parameter>page.margin.inner</parameter>
+and <parameter>page.margin.outer</parameter>, until
+this bug is fixed by RenderX.  It does not affect documents
+with left-to-right text direction.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/page.margin.outer.xml b/applications/content/template/docbook/params/page.margin.outer.xml
new file mode 100644
index 0000000..61dfeb8
--- /dev/null
+++ b/applications/content/template/docbook/params/page.margin.outer.xml
@@ -0,0 +1,53 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="page.margin.outer">
+<refmeta>
+<refentrytitle>page.margin.outer</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.margin.outer</refname>
+<refpurpose>The outer page margin</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="page.margin.outer.frag"><xsl:param name="page.margin.outer">
+  <xsl:choose>
+    <xsl:when test="$double.sided != 0">0.75in</xsl:when>
+    <xsl:otherwise>1in</xsl:otherwise>
+  </xsl:choose>
+</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The outer page margin is the distance from non-bound edge of the
+page to the outer edge of the last column of text.</para>
+
+<para>In left-to-right text direction,
+this is the right margin of recto (front side) pages.
+For single-sided output, it is the right margin
+of all pages.</para>
+
+<para>In right-to-left text direction,
+this is the left margin of recto pages.
+For single-sided output, this is the
+left margin of all pages.</para>
+
+<note>
+<para>Current versions (at least as of version 4.13)
+of the XEP XSL-FO processor do not
+correctly handle these margin settings for documents
+with right-to-left text direction.
+The workaround in that situation is to reverse
+the values for <parameter>page.margin.inner</parameter>
+and <parameter>page.margin.outer</parameter>, until
+this bug is fixed by RenderX.  It does not affect documents
+with left-to-right text direction.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/page.margin.top.xml b/applications/content/template/docbook/params/page.margin.top.xml
new file mode 100644
index 0000000..a7e53e8
--- /dev/null
+++ b/applications/content/template/docbook/params/page.margin.top.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="page.margin.top">
+<refmeta>
+<refentrytitle>page.margin.top</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.margin.top</refname>
+<refpurpose>The top margin of the page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="page.margin.top.frag">
+<xsl:param name="page.margin.top">0.5in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The top page margin is the distance from the physical top of the
+page to the top of the region-before.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/page.orientation.xml b/applications/content/template/docbook/params/page.orientation.xml
new file mode 100644
index 0000000..37971c0
--- /dev/null
+++ b/applications/content/template/docbook/params/page.orientation.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="page.orientation">
+<refmeta>
+<refentrytitle>page.orientation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">portrait</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">landscape</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.orientation</refname>
+<refpurpose>Select the page orientation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="page.orientation.frag">
+<xsl:param name="page.orientation">portrait</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para> Select one from portrait or landscape.
+In portrait orientation, the short edge is horizontal; in
+landscape orientation, it is vertical.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/page.width.portrait.xml b/applications/content/template/docbook/params/page.width.portrait.xml
new file mode 100644
index 0000000..8216fc3
--- /dev/null
+++ b/applications/content/template/docbook/params/page.width.portrait.xml
@@ -0,0 +1,67 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="page.width.portrait">
+<refmeta>
+<refentrytitle>page.width.portrait</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.width.portrait</refname>
+<refpurpose>Specify the physical size of the short edge of the page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="page.width.portrait.frag"><xsl:param name="page.width.portrait">
+  <xsl:choose>
+    <xsl:when test="$paper.type = 'USletter'">8.5in</xsl:when>
+    <xsl:when test="$paper.type = '4A0'">1682mm</xsl:when>
+    <xsl:when test="$paper.type = '2A0'">1189mm</xsl:when>
+    <xsl:when test="$paper.type = 'A0'">841mm</xsl:when>
+    <xsl:when test="$paper.type = 'A1'">594mm</xsl:when>
+    <xsl:when test="$paper.type = 'A2'">420mm</xsl:when>
+    <xsl:when test="$paper.type = 'A3'">297mm</xsl:when>
+    <xsl:when test="$paper.type = 'A4'">210mm</xsl:when>
+    <xsl:when test="$paper.type = 'A5'">148mm</xsl:when>
+    <xsl:when test="$paper.type = 'A6'">105mm</xsl:when>
+    <xsl:when test="$paper.type = 'A7'">74mm</xsl:when>
+    <xsl:when test="$paper.type = 'A8'">52mm</xsl:when>
+    <xsl:when test="$paper.type = 'A9'">37mm</xsl:when>
+    <xsl:when test="$paper.type = 'A10'">26mm</xsl:when>
+    <xsl:when test="$paper.type = 'B0'">1000mm</xsl:when>
+    <xsl:when test="$paper.type = 'B1'">707mm</xsl:when>
+    <xsl:when test="$paper.type = 'B2'">500mm</xsl:when>
+    <xsl:when test="$paper.type = 'B3'">353mm</xsl:when>
+    <xsl:when test="$paper.type = 'B4'">250mm</xsl:when>
+    <xsl:when test="$paper.type = 'B5'">176mm</xsl:when>
+    <xsl:when test="$paper.type = 'B6'">125mm</xsl:when>
+    <xsl:when test="$paper.type = 'B7'">88mm</xsl:when>
+    <xsl:when test="$paper.type = 'B8'">62mm</xsl:when>
+    <xsl:when test="$paper.type = 'B9'">44mm</xsl:when>
+    <xsl:when test="$paper.type = 'B10'">31mm</xsl:when>
+    <xsl:when test="$paper.type = 'C0'">917mm</xsl:when>
+    <xsl:when test="$paper.type = 'C1'">648mm</xsl:when>
+    <xsl:when test="$paper.type = 'C2'">458mm</xsl:when>
+    <xsl:when test="$paper.type = 'C3'">324mm</xsl:when>
+    <xsl:when test="$paper.type = 'C4'">229mm</xsl:when>
+    <xsl:when test="$paper.type = 'C5'">162mm</xsl:when>
+    <xsl:when test="$paper.type = 'C6'">114mm</xsl:when>
+    <xsl:when test="$paper.type = 'C7'">81mm</xsl:when>
+    <xsl:when test="$paper.type = 'C8'">57mm</xsl:when>
+    <xsl:when test="$paper.type = 'C9'">40mm</xsl:when>
+    <xsl:when test="$paper.type = 'C10'">28mm</xsl:when>
+    <xsl:otherwise>8.5in</xsl:otherwise>
+  </xsl:choose>
+</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The portrait page width is the length of the short
+edge of the physical page.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/page.width.xml b/applications/content/template/docbook/params/page.width.xml
new file mode 100644
index 0000000..ff16060
--- /dev/null
+++ b/applications/content/template/docbook/params/page.width.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="page.width">
+<refmeta>
+<refentrytitle>page.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>page.width</refname>
+<refpurpose>The width of the physical page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="page.width.frag"><xsl:param name="page.width">
+  <xsl:choose>
+    <xsl:when test="$page.orientation = 'portrait'">
+      <xsl:value-of select="$page.width.portrait"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$page.height.portrait"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The page width is generally calculated from the
+<parameter>paper.type</parameter> and 
+<parameter>page.orientation</parameter> parameters.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/pages.template.xml b/applications/content/template/docbook/params/pages.template.xml
new file mode 100644
index 0000000..fff546c
--- /dev/null
+++ b/applications/content/template/docbook/params/pages.template.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="pages.template">
+<refmeta>
+<refentrytitle>pages.template</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>pages.template</refname>
+<refpurpose>Specify the template Pages document</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="pages.template.frag">
+<xsl:param name="pages.template"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>pages.template</parameter> parameter specifies a Pages (the Apple word processing application) document to use as a template for the generated document.  The template document is used to define the (extensive) headers for the generated document, in particular the paragraph and character styles that are used to format the various elements.  Any content in the template document is ignored.</para>
+
+<para>A template document is used in order to allow maintenance of the paragraph and character styles to be done using Pages itself, rather than these XSL stylesheets.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/paper.type.xml b/applications/content/template/docbook/params/paper.type.xml
new file mode 100644
index 0000000..2656c9c
--- /dev/null
+++ b/applications/content/template/docbook/params/paper.type.xml
@@ -0,0 +1,73 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="paper.type">
+<refmeta>
+<refentrytitle>paper.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="list-type">open</refmiscinfo>
+<refmiscinfo class="other" otherclass="list-type">open</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">USletter<alt>8.5x11in</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">USlandscape<alt>11x8.5in</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">USlegal<alt>8.5inx14in</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">USlegallandscape<alt>14inx8.5in</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">4A0<alt>2378x1682mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">2A0<alt>1682x1189mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A0<alt>1189x841mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A1<alt>841x594mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A2<alt>594x420mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A3<alt>420x297mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A4<alt>297x210mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A5<alt>210x148mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A6<alt>148x105mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A7<alt>105x74mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A8<alt>74x52mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A9<alt>52x37mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A10<alt>37x26mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B0<alt>1414x1000mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B1<alt>1000x707mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B2<alt>707x500mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B3<alt>500x353mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B4<alt>353x250mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B5<alt>250x176mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B6<alt>176x125mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B7<alt>125x88mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B8<alt>88x62mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B9<alt>62x44mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">B10<alt>44x31mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C0<alt>1297x917mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C1<alt>917x648mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C2<alt>648x458mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C3<alt>458x324mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C4<alt>324x229mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C5<alt>229x162mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C6<alt>162x114mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C7<alt>114x81mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C8<alt>81x57mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C9<alt>57x40mm</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">C10<alt>40x28mm</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>paper.type</refname>
+<refpurpose>Select the paper type</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="paper.type.frag">
+<xsl:param name="paper.type">USletter</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The paper type is a convenient way to specify the paper size.
+The list of known paper sizes includes USletter and most of the A,
+B, and C sizes. See <parameter>page.width.portrait</parameter>, for example.
+
+
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/para.propagates.style.xml b/applications/content/template/docbook/params/para.propagates.style.xml
new file mode 100644
index 0000000..0415adf
--- /dev/null
+++ b/applications/content/template/docbook/params/para.propagates.style.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="para.propagates.style">
+<refmeta>
+<refentrytitle>para.propagates.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>para.propagates.style</refname>
+<refpurpose>Pass para role attribute through to HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="para.propagates.style.frag">
+<xsl:param name="para.propagates.style" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, the role attribute of <tag>para</tag> elements
+will be passed through to the HTML as a class attribute on the
+<tag>p</tag> generated for the paragraph.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/para.properties.xml b/applications/content/template/docbook/params/para.properties.xml
new file mode 100644
index 0000000..e36c33a
--- /dev/null
+++ b/applications/content/template/docbook/params/para.properties.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="para.properties">
+<refmeta>
+<refentrytitle>para.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>para.properties</refname>
+<refpurpose>Properties to apply to para elements</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="para.properties.frag"><xsl:attribute-set name="para.properties" use-attribute-sets="normal.para.spacing">
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>Specify properties to apply to the fo:block of a para element,
+such as <literal>text-indent</literal>.
+Although the default attribute-set is empty, it uses the attribute-set
+named <literal>normal.para.spacing</literal> to add vertical space before
+each para. The <literal>para.properties</literal> attribute-set can override those 
+spacing properties for para only.</para>
+<para>See also
+<link linkend="normal.para.spacing">normal.para.spacing</link>.
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/part.autolabel.xml b/applications/content/template/docbook/params/part.autolabel.xml
new file mode 100644
index 0000000..4f1a42c
--- /dev/null
+++ b/applications/content/template/docbook/params/part.autolabel.xml
@@ -0,0 +1,73 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="part.autolabel">
+<refmeta>
+<refentrytitle>part.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>part.autolabel</refname>
+<refpurpose>Specifies the labeling format for Part titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="part.autolabel.frag">
+<xsl:param name="part.autolabel">I</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, then parts will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (upperroman).
+</para>
+
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/passivetex.extensions.xml b/applications/content/template/docbook/params/passivetex.extensions.xml
new file mode 100644
index 0000000..32415ec
--- /dev/null
+++ b/applications/content/template/docbook/params/passivetex.extensions.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="passivetex.extensions">
+<refmeta>
+<refentrytitle>passivetex.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>passivetex.extensions</refname>
+<refpurpose>Enable PassiveTeX extensions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="passivetex.extensions.frag"><xsl:param name="passivetex.extensions" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+<link xlink:href="http://projects.oucs.ox.ac.uk/passivetex/">PassiveTeX</link>
+extensions will be used. At present, this consists of PDF bookmarks
+and sorted index terms.
+</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported</para>
+
+<note>
+  <para>PassiveTeX is incomplete and development has ceased. In most cases, 
+another XSL-FO engine is probably a better choice.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/pgwide.properties.xml b/applications/content/template/docbook/params/pgwide.properties.xml
new file mode 100644
index 0000000..c63b461
--- /dev/null
+++ b/applications/content/template/docbook/params/pgwide.properties.xml
@@ -0,0 +1,52 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="pgwide.properties">
+<refmeta>
+<refentrytitle>pgwide.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>pgwide.properties</refname>
+<refpurpose>Properties to make a figure or table page wide.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="pgwide.properties.frag">
+<xsl:attribute-set name="pgwide.properties">
+  <xsl:attribute name="start-indent">0pt</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is used to set the properties
+that make a figure or table "page wide" in fo output.
+It comes into effect when an attribute <literal>pgwide="1"</literal>
+is used.
+</para>
+
+<para>
+By default, it sets <parameter>start-indent</parameter>
+to <literal>0pt</literal>.
+In a stylesheet that sets the parameter
+<parameter>body.start.indent</parameter>
+to a non-zero value in order to indent body text,
+this attribute set can be used to outdent pgwide
+figures to the start margin.
+</para>
+
+<para>If a document uses a multi-column page layout,
+then this attribute set could try setting <parameter>span</parameter>
+to a value of <literal>all</literal>.  However, this may
+not work with some processors because a span property must be on an
+fo:block that is a direct child of fo:flow.  It may work in
+some processors anyway.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/phrase.propagates.style.xml b/applications/content/template/docbook/params/phrase.propagates.style.xml
new file mode 100644
index 0000000..8c25892
--- /dev/null
+++ b/applications/content/template/docbook/params/phrase.propagates.style.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="phrase.propagates.style">
+<refmeta>
+<refentrytitle>phrase.propagates.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>phrase.propagates.style</refname>
+<refpurpose>Pass phrase role attribute through to HTML?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="phrase.propagates.style.frag">
+<xsl:param name="phrase.propagates.style" select="1"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the role attribute of <tag>phrase</tag> elements
+will be passed through to the HTML as a <literal>class</literal>
+attribute on a <literal>span</literal> that surrounds the
+phrase.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/pixels.per.inch.xml b/applications/content/template/docbook/params/pixels.per.inch.xml
new file mode 100644
index 0000000..86faff5
--- /dev/null
+++ b/applications/content/template/docbook/params/pixels.per.inch.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="pixels.per.inch">
+<refmeta>
+<refentrytitle>pixels.per.inch</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>pixels.per.inch</refname>
+<refpurpose>How many pixels are there per inch?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="pixels.per.inch.frag">
+<xsl:param name="pixels.per.inch">90</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When lengths are converted to pixels, this value is used to
+determine the size of a pixel. The default value is taken from the
+<link xlink:href="http://www.w3.org/TR/2004/WD-xsl11-20041216/">XSL
+Recommendation</link>.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/plus.image.xml b/applications/content/template/docbook/params/plus.image.xml
new file mode 100644
index 0000000..17b3d3c
--- /dev/null
+++ b/applications/content/template/docbook/params/plus.image.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="plus.image.frag">
+<xsl:param name="plus.image">toc/closed.png</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/points.per.em.xml b/applications/content/template/docbook/params/points.per.em.xml
new file mode 100644
index 0000000..76bd22e
--- /dev/null
+++ b/applications/content/template/docbook/params/points.per.em.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="points.per.em">
+<refmeta>
+<refentrytitle>points.per.em</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">number</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>points.per.em</refname>
+<refpurpose>Specify the nominal size of an em-space in points</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="points.per.em.frag">
+<xsl:param name="points.per.em">10</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The fixed value used for calculations based upon the size of a
+character. The assumption made is that ten point font is in use. This
+assumption may not be valid.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/preface.autolabel.xml b/applications/content/template/docbook/params/preface.autolabel.xml
new file mode 100644
index 0000000..f59115a
--- /dev/null
+++ b/applications/content/template/docbook/params/preface.autolabel.xml
@@ -0,0 +1,71 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="preface.autolabel">
+<refmeta>
+<refentrytitle>preface.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>preface.autolabel</refname>
+<refpurpose>Specifices the labeling format for Preface titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="preface.autolabel.frag"><xsl:param name="preface.autolabel" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero then prefaces will be numbered using the parameter
+value as the number format if the value matches one of the following:
+</para>
+
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+<para>Any nonzero value other than the above will generate
+the default number format (arabic).
+</para>
+
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/prefer.internal.olink.xml b/applications/content/template/docbook/params/prefer.internal.olink.xml
new file mode 100644
index 0000000..2599d76
--- /dev/null
+++ b/applications/content/template/docbook/params/prefer.internal.olink.xml
@@ -0,0 +1,78 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="prefer.internal.olink">
+<refmeta>
+<refentrytitle>prefer.internal.olink</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>prefer.internal.olink</refname>
+<refpurpose>Prefer a local olink reference to an external reference</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="prefer.internal.olink.frag">
+<xsl:param name="prefer.internal.olink" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you are re-using XML content modules in multiple documents,
+you may want to redirect some of your olinks.  This parameter
+permits you to redirect an olink to the current document.
+</para>
+
+<para>For example: you are writing documentation for a  product, 
+which includes 3 manuals: a little installation
+booklet (booklet.xml), a user 
+guide (user.xml), and a reference manual (reference.xml).
+All 3 documents begin with the same introduction section (intro.xml) that 
+contains a reference to the customization section (custom.xml) which is 
+included in both user.xml and reference.xml documents.
+</para>
+
+<para>How do you write the link to custom.xml in intro.xml
+so that it is interpreted correctly in all 3 documents?</para>
+<itemizedlist>
+<listitem><para>If you use xref, it will fail in user.xml.</para>
+</listitem>
+<listitem><para>If you use olink (pointing to reference.xml),
+the reference in user.xml  
+will point to the customization section of the reference manual, while it is 
+actually available in user.xml.</para>
+</listitem>
+</itemizedlist>
+
+<para>If you set the <parameter>prefer.internal.olink</parameter>
+parameter to a non-zero value, then the processor will
+first look in the olink database
+for the olink's <tag>targetptr</tag> attribute value
+in document matching the <parameter>current.docid</parameter>
+parameter value.  If it isn't found there, then
+it tries the document in the database
+with the <tag>targetdoc</tag>
+value that matches the olink's <tag>targetdoc</tag>
+attribute.
+</para>
+
+<para>This feature permits an olink reference to resolve to
+the current document if there is an element
+with an id matching the olink's <tag>targetptr</tag>
+value.  The current document's olink data must be
+included in the target database for this to work.</para>
+
+<caution>
+<para>There is a potential for incorrect links if
+the same <tag>id</tag> attribute value is used for different
+content in different documents.
+Some of your olinks may be redirected to the current document
+when they shouldn't be.  It is not possible to control
+individual olink instances.</para>
+</caution>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/preferred.mediaobject.role.xml b/applications/content/template/docbook/params/preferred.mediaobject.role.xml
new file mode 100644
index 0000000..57b0989
--- /dev/null
+++ b/applications/content/template/docbook/params/preferred.mediaobject.role.xml
@@ -0,0 +1,40 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="preferred.mediaobject.role">
+<refmeta>
+<refentrytitle>preferred.mediaobject.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>preferred.mediaobject.role</refname>
+<refpurpose>Select which mediaobject to use based on
+this value of an object's <tag class="attribute">role</tag> attribute.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="preferred.mediaobject.role.frag">
+<xsl:param name="preferred.mediaobject.role"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A mediaobject may contain several objects such as imageobjects.
+If the parameter <parameter>use.role.for.mediaobject</parameter> is
+non-zero, then the <literal>role</literal> attribute on
+<tag>imageobject</tag>s and other objects within a
+<tag>mediaobject</tag> container will be used to select which object
+will be used.  If one of the objects has a role value that matches the
+<parameter>preferred.mediaobject.role</parameter> parameter, then it
+has first priority for selection.  If more than one has such a role
+value, the first one is used.
+</para>
+<para>
+See the <parameter>use.role.for.mediaobject</parameter> parameter
+for the sequence of selection.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/prev.image.xml b/applications/content/template/docbook/params/prev.image.xml
new file mode 100644
index 0000000..b017115
--- /dev/null
+++ b/applications/content/template/docbook/params/prev.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="prev.image.frag">
+<xsl:param name="prev.image">active/nav-prev.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the left-pointing navigation arrow.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/procedure.properties.xml b/applications/content/template/docbook/params/procedure.properties.xml
new file mode 100644
index 0000000..f6cadb0
--- /dev/null
+++ b/applications/content/template/docbook/params/procedure.properties.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="procedure.properties">
+<refmeta>
+<refentrytitle>procedure.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>procedure.properties</refname>
+<refpurpose>Properties associated with a procedure</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="procedure.properties.frag">
+<xsl:attribute-set name="procedure.properties" use-attribute-sets="formal.object.properties">
+  <xsl:attribute name="keep-together.within-column">auto</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for procedures.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/process.empty.source.toc.xml b/applications/content/template/docbook/params/process.empty.source.toc.xml
new file mode 100644
index 0000000..772b456
--- /dev/null
+++ b/applications/content/template/docbook/params/process.empty.source.toc.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="process.empty.source.toc">
+<refmeta>
+<refentrytitle>process.empty.source.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>process.empty.source.toc</refname>
+<refpurpose>Generate automated TOC if <tag>toc</tag> element occurs in a source document?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="process.empty.source.toc.frag"><xsl:param name="process.empty.source.toc" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies that if an empty <tag>toc</tag> element is found in a
+source document, an automated TOC is generated at this point in the
+document.
+<note>
+  <para>Depending on what the value of the
+  <parameter>generate.toc</parameter> parameter is, setting this
+  parameter to <literal>1</literal> could result in generation of
+  duplicate automated TOCs. So the
+  <parameter>process.empty.source.toc</parameter> is primarily useful
+  as an "override": by placing an empty <tag>toc</tag> in your
+  document and setting this parameter to <literal>1</literal>, you can
+  force a TOC to be generated even if <tag>generate.toc</tag>
+  says not to.</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/process.source.toc.xml b/applications/content/template/docbook/params/process.source.toc.xml
new file mode 100644
index 0000000..b91657a
--- /dev/null
+++ b/applications/content/template/docbook/params/process.source.toc.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="process.source.toc">
+<refmeta>
+<refentrytitle>process.source.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>process.source.toc</refname>
+<refpurpose>Process a non-empty <tag>toc</tag> element if it occurs in a source document?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="process.source.toc.frag"><xsl:param name="process.source.toc" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies that the contents of a non-empty "hard-coded"
+<tag>toc</tag> element in a source document are processed to
+generate a TOC in output.
+<note>
+  <para>This parameter has no effect on automated generation of
+  TOCs. An automated TOC may still be generated along with the
+  "hard-coded" TOC. To suppress automated TOC generation, adjust the
+  value of the <parameter>generate.toc</parameter> paramameter.</para>
+
+  <para>The <tag>process.source.toc</tag> parameter also has
+  no effect if the <tag>toc</tag> element is empty; handling
+  for empty <tag>toc</tag> is controlled by the
+  <parameter>process.empty.source.toc</parameter> parameter.</para>
+</note>
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.arch.xml b/applications/content/template/docbook/params/profile.arch.xml
new file mode 100644
index 0000000..afcd34c
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.arch.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.arch">
+<refmeta>
+<refentrytitle>profile.arch</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.arch</refname>
+<refpurpose>Target profile for <tag class="attribute">arch</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.arch.frag">
+<xsl:param name="profile.arch"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.attribute.xml b/applications/content/template/docbook/params/profile.attribute.xml
new file mode 100644
index 0000000..e7dc5d0
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.attribute.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.attribute">
+<refmeta>
+<refentrytitle>profile.attribute</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.attribute</refname>
+<refpurpose>Name of user-specified profiling attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.attribute.frag">
+<xsl:param name="profile.attribute"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter is used in conjuction with
+<parameter>profile.value</parameter>.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.audience.xml b/applications/content/template/docbook/params/profile.audience.xml
new file mode 100644
index 0000000..1c5b1a3
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.audience.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.audience">
+<refmeta>
+<refentrytitle>profile.audience</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.audience</refname>
+<refpurpose>Target profile for <tag class="attribute">audience</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.audience.frag">
+<xsl:param name="profile.audience"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.condition.xml b/applications/content/template/docbook/params/profile.condition.xml
new file mode 100644
index 0000000..8bb01a3
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.condition.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.condition">
+<refmeta>
+<refentrytitle>profile.condition</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.condition</refname>
+<refpurpose>Target profile for <tag class="attribute">condition</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.condition.frag">
+<xsl:param name="profile.condition"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.conformance.xml b/applications/content/template/docbook/params/profile.conformance.xml
new file mode 100644
index 0000000..606af4c
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.conformance.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.conformance">
+<refmeta>
+<refentrytitle>profile.conformance</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.conformance</refname>
+<refpurpose>Target profile for <tag class="attribute">conformance</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.conformance.frag">
+<xsl:param name="profile.conformance"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.lang.xml b/applications/content/template/docbook/params/profile.lang.xml
new file mode 100644
index 0000000..43b9439
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.lang.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.lang">
+<refmeta>
+<refentrytitle>profile.lang</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.lang</refname>
+<refpurpose>Target profile for <tag class="attribute">lang</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.lang.frag">
+<xsl:param name="profile.lang"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.os.xml b/applications/content/template/docbook/params/profile.os.xml
new file mode 100644
index 0000000..ba6f430
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.os.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.os">
+<refmeta>
+<refentrytitle>profile.os</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.os</refname>
+<refpurpose>Target profile for <tag class="attribute">os</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.os.frag">
+<xsl:param name="profile.os"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.revision.xml b/applications/content/template/docbook/params/profile.revision.xml
new file mode 100644
index 0000000..28f668d
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.revision.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.revision">
+<refmeta>
+<refentrytitle>profile.revision</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.revision</refname>
+<refpurpose>Target profile for <tag class="attribute">revision</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.revision.frag">
+<xsl:param name="profile.revision" ></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.revisionflag.xml b/applications/content/template/docbook/params/profile.revisionflag.xml
new file mode 100644
index 0000000..3ab8919
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.revisionflag.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.revisionflag">
+<refmeta>
+<refentrytitle>profile.revisionflag</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.revisionflag</refname>
+<refpurpose>Target profile for <tag class="attribute">revisionflag</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.revisionflag.frag">
+<xsl:param name="profile.revisionflag"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.role.xml b/applications/content/template/docbook/params/profile.role.xml
new file mode 100644
index 0000000..5758e4a
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.role.xml
@@ -0,0 +1,54 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.role">
+<refmeta>
+<refentrytitle>profile.role</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.role</refname>
+<refpurpose>Target profile for <tag class="attribute">role</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.role.frag">
+<xsl:param name="profile.role"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+<warning>
+<para>Note that <tag class="attribute">role</tag> is often
+used for other purposes than profiling. For example it is commonly
+used to get emphasize in bold font:</para>
+
+<programlisting>&lt;emphasis role="bold"&gt;very important&lt;/emphasis&gt;</programlisting>
+
+<para>If you are using <tag class="attribute">role</tag> for
+these purposes do not forget to add values like <literal>bold</literal> to
+value of this parameter. If you forgot you will get document with
+small pieces missing which are very hard to track.</para>
+
+<para>For this reason it is not recommended to use <tag class="attribute">role</tag> attribute for profiling. You should
+rather use profiling specific attributes like <tag class="attribute">userlevel</tag>, <tag class="attribute">os</tag>, <tag class="attribute">arch</tag>, <tag class="attribute">condition</tag>, etc.</para>
+</warning>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.security.xml b/applications/content/template/docbook/params/profile.security.xml
new file mode 100644
index 0000000..8ffca0f
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.security.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.security">
+<refmeta>
+<refentrytitle>profile.security</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.security</refname>
+<refpurpose>Target profile for <tag class="attribute">security</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.security.frag">
+<xsl:param name="profile.security"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.separator.xml b/applications/content/template/docbook/params/profile.separator.xml
new file mode 100644
index 0000000..a4317f5
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.separator.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.separator">
+<refmeta>
+<refentrytitle>profile.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.separator</refname>
+<refpurpose>Separator character for compound profile values</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.separator.frag">
+<xsl:param name="profile.separator">;</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Separator character used for compound profile values. See <parameter>profile.arch</parameter></para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.status.xml b/applications/content/template/docbook/params/profile.status.xml
new file mode 100644
index 0000000..c9fc469
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.status.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.status">
+<refmeta>
+<refentrytitle>profile.status</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.status</refname>
+<refpurpose>Target profile for <tag class="attribute">status</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.status.frag">
+<xsl:param name="profile.status"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.userlevel.xml b/applications/content/template/docbook/params/profile.userlevel.xml
new file mode 100644
index 0000000..39e263b
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.userlevel.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.userlevel">
+<refmeta>
+<refentrytitle>profile.userlevel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.userlevel</refname>
+<refpurpose>Target profile for <tag class="attribute">userlevel</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.userlevel.frag">
+<xsl:param name="profile.userlevel"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.value.xml b/applications/content/template/docbook/params/profile.value.xml
new file mode 100644
index 0000000..85f7190
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.value.xml
@@ -0,0 +1,41 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.value">
+<refmeta>
+<refentrytitle>profile.value</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.value</refname>
+<refpurpose>Target profile for user-specified attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.value.frag">
+<xsl:param name="profile.value"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When you are using this parameter you must also specify name of
+profiling attribute with parameter
+<parameter>profile.attribute</parameter>.</para>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.vendor.xml b/applications/content/template/docbook/params/profile.vendor.xml
new file mode 100644
index 0000000..c0187f0
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.vendor.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.vendor">
+<refmeta>
+<refentrytitle>profile.vendor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.vendor</refname>
+<refpurpose>Target profile for <tag class="attribute">vendor</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.vendor.frag">
+<xsl:param name="profile.vendor"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/profile.wordsize.xml b/applications/content/template/docbook/params/profile.wordsize.xml
new file mode 100644
index 0000000..e30ffc7
--- /dev/null
+++ b/applications/content/template/docbook/params/profile.wordsize.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="profile.wordsize">
+<refmeta>
+<refentrytitle>profile.wordsize</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>profile.wordsize</refname>
+<refpurpose>Target profile for <tag class="attribute">wordsize</tag>
+attribute</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="profile.wordsize.frag">
+<xsl:param name="profile.wordsize"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of this parameter specifies profiles which should be
+included in the output. You can specify multiple profiles by
+separating them by semicolon. You can change separator character by
+<parameter>profile.separator</parameter>
+parameter.</para>
+
+<para>This parameter has effect only when you are using profiling
+stylesheets (<filename>profile-docbook.xsl</filename>,
+<filename>profile-chunk.xsl</filename>, …) instead of normal
+ones (<filename>docbook.xsl</filename>,
+<filename>chunk.xsl</filename>, …).</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/punct.honorific.xml b/applications/content/template/docbook/params/punct.honorific.xml
new file mode 100644
index 0000000..7c8a38e
--- /dev/null
+++ b/applications/content/template/docbook/params/punct.honorific.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="punct.honorific">
+<refmeta>
+<refentrytitle>punct.honorific</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>punct.honorific</refname>
+<refpurpose>Punctuation after an honorific in a personal name.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="punct.honorific.frag">
+<xsl:param name="punct.honorific">.</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies the punctuation that should be added after an
+honorific in a personal name.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/qanda.defaultlabel.xml b/applications/content/template/docbook/params/qanda.defaultlabel.xml
new file mode 100644
index 0000000..0b43f0d
--- /dev/null
+++ b/applications/content/template/docbook/params/qanda.defaultlabel.xml
@@ -0,0 +1,86 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="qanda.defaultlabel">
+<refmeta>
+<refentrytitle>qanda.defaultlabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">number</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">qanda</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.defaultlabel</refname>
+<refpurpose>Sets the default for defaultlabel on QandASet.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="qanda.defaultlabel.frag">
+<xsl:param name="qanda.defaultlabel">number</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If no <literal>defaultlabel</literal> attribute is specified on
+a <tag>qandaset</tag>, this value is used. It is generally one of the legal
+values for the defaultlabel attribute (<literal>none</literal>, 
+<literal>number</literal> or
+<literal>qanda</literal>), or one of the additional stylesheet-specific values
+(<literal>qnumber</literal> or <literal>qnumberanda</literal>).
+The default value is 'number'.
+</para>
+<para>The values are rendered as follows:</para>
+<variablelist>
+<varlistentry><term><literal>qanda</literal></term>
+<listitem>
+<para><tag>question</tag>s are labeled "Q:" and
+<tag>answer</tag>s are labeled "A:". </para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>number</literal></term>
+<listitem>
+<para>The questions are enumerated and the answers
+are not labeled. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>qnumber</literal></term>
+<listitem>
+<para>The questions are labeled "Q:" followed by a number, and answers are not 
+labeled. 
+When sections are numbered, adding a label
+to the number distinguishes the question numbers
+from the section numbers.
+This value is not allowed in the
+<tag class="attribute">defaultlabel</tag> attribute
+of a <tag>qandaset</tag> element.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>qnumberanda</literal></term>
+<listitem>
+<para>The questions are labeled "Q:" followed by a number, and
+the answers are labeled "A:". 
+When sections are numbered, adding a label
+to the number distinguishes the question numbers
+from the section numbers.
+This value is not allowed in the
+<tag class="attribute">defaultlabel</tag> attribute
+of a <tag>qandaset</tag> element.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term><literal>none</literal></term>
+<listitem>
+<para>No distinguishing label precedes Questions or Answers. 
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/qanda.in.toc.xml b/applications/content/template/docbook/params/qanda.in.toc.xml
new file mode 100644
index 0000000..9597b71
--- /dev/null
+++ b/applications/content/template/docbook/params/qanda.in.toc.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="qanda.in.toc">
+<refmeta>
+<refentrytitle>qanda.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.in.toc</refname>
+<refpurpose>Should qandaentry questions appear in 
+the document table of contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="qanda.in.toc.frag"><xsl:param name="qanda.in.toc" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), then the generated table of contents
+for a document will include <tag>qandaset</tag> titles, 
+<tag>qandadiv</tag> titles,
+and <tag>question</tag> elements.  The default value (zero) excludes
+them from the TOC.
+</para>
+<para>This parameter does not affect any tables of contents
+that may be generated inside a qandaset or qandadiv.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/qanda.inherit.numeration.xml b/applications/content/template/docbook/params/qanda.inherit.numeration.xml
new file mode 100644
index 0000000..744c0e8
--- /dev/null
+++ b/applications/content/template/docbook/params/qanda.inherit.numeration.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="qanda.inherit.numeration">
+<refmeta>
+<refentrytitle>qanda.inherit.numeration</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.inherit.numeration</refname>
+<refpurpose>Does enumeration of QandASet components inherit the numeration of parent elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="qanda.inherit.numeration.frag">
+<xsl:param name="qanda.inherit.numeration" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, numbered <tag>qandadiv</tag> elements and
+<tag>question</tag> and <tag>answer</tag> inherit the enumeration of
+the ancestors of the <tag>qandaset</tag>.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/qanda.nested.in.toc.xml b/applications/content/template/docbook/params/qanda.nested.in.toc.xml
new file mode 100644
index 0000000..01bdf5a
--- /dev/null
+++ b/applications/content/template/docbook/params/qanda.nested.in.toc.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="qanda.nested.in.toc">
+<refmeta>
+<refentrytitle>qanda.nested.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.nested.in.toc</refname>
+<refpurpose>Should nested answer/qandaentry instances appear in TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="qanda.nested.in.toc.frag">
+<xsl:param name="qanda.nested.in.toc" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, instances of <tag>qandaentry</tag>
+that are children of <tag>answer</tag> elements are shown in
+the TOC.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/qanda.title.level1.properties.xml b/applications/content/template/docbook/params/qanda.title.level1.properties.xml
new file mode 100644
index 0000000..edaecc9
--- /dev/null
+++ b/applications/content/template/docbook/params/qanda.title.level1.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="qanda.title.level1.properties">
+<refmeta>
+<refentrytitle>qanda.title.level1.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level1.properties</refname>
+<refpurpose>Properties for level-1 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="qanda.title.level1.properties.frag">
+<xsl:attribute-set name="qanda.title.level1.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 2.0736"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-1 qanda set titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/qanda.title.level2.properties.xml b/applications/content/template/docbook/params/qanda.title.level2.properties.xml
new file mode 100644
index 0000000..ca48ca1
--- /dev/null
+++ b/applications/content/template/docbook/params/qanda.title.level2.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="qanda.title.level2.properties">
+<refmeta>
+<refentrytitle>qanda.title.level2.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level2.properties</refname>
+<refpurpose>Properties for level-2 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="qanda.title.level2.properties.frag">
+<xsl:attribute-set name="qanda.title.level2.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 1.728"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-2 qanda set titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/qanda.title.level3.properties.xml b/applications/content/template/docbook/params/qanda.title.level3.properties.xml
new file mode 100644
index 0000000..c9c098e
--- /dev/null
+++ b/applications/content/template/docbook/params/qanda.title.level3.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="qanda.title.level3.properties">
+<refmeta>
+<refentrytitle>qanda.title.level3.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level3.properties</refname>
+<refpurpose>Properties for level-3 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="qanda.title.level3.properties.frag">
+<xsl:attribute-set name="qanda.title.level3.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 1.44"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-3 qanda set titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/qanda.title.level4.properties.xml b/applications/content/template/docbook/params/qanda.title.level4.properties.xml
new file mode 100644
index 0000000..4344e76
--- /dev/null
+++ b/applications/content/template/docbook/params/qanda.title.level4.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="qanda.title.level4.properties">
+<refmeta>
+<refentrytitle>qanda.title.level4.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level4.properties</refname>
+<refpurpose>Properties for level-4 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="qanda.title.level4.properties.frag">
+<xsl:attribute-set name="qanda.title.level4.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 1.2"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-4 qanda set titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/qanda.title.level5.properties.xml b/applications/content/template/docbook/params/qanda.title.level5.properties.xml
new file mode 100644
index 0000000..31b0d20
--- /dev/null
+++ b/applications/content/template/docbook/params/qanda.title.level5.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="qanda.title.level5.properties">
+<refmeta>
+<refentrytitle>qanda.title.level5.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level5.properties</refname>
+<refpurpose>Properties for level-5 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="qanda.title.level5.properties.frag">
+<xsl:attribute-set name="qanda.title.level5.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-5 qanda set titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/qanda.title.level6.properties.xml b/applications/content/template/docbook/params/qanda.title.level6.properties.xml
new file mode 100644
index 0000000..920c7e9
--- /dev/null
+++ b/applications/content/template/docbook/params/qanda.title.level6.properties.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="qanda.title.level6.properties">
+<refmeta>
+<refentrytitle>qanda.title.level6.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.level6.properties</refname>
+<refpurpose>Properties for level-6 qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="qanda.title.level6.properties.frag">
+<xsl:attribute-set name="qanda.title.level6.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-6 qanda set titles.
+This property set is actually
+used for all titles below level 5.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/qanda.title.properties.xml b/applications/content/template/docbook/params/qanda.title.properties.xml
new file mode 100644
index 0000000..24c2037
--- /dev/null
+++ b/applications/content/template/docbook/params/qanda.title.properties.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="qanda.title.properties">
+<refmeta>
+<refentrytitle>qanda.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qanda.title.properties</refname>
+<refpurpose>Properties for qanda set titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="qanda.title.properties.frag">
+<xsl:attribute-set name="qanda.title.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$title.fontset"/>
+  </xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <!-- font size is calculated dynamically by qanda.heading template -->
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1.0em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties common to all qanda set titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/qandadiv.autolabel.xml b/applications/content/template/docbook/params/qandadiv.autolabel.xml
new file mode 100644
index 0000000..596350a
--- /dev/null
+++ b/applications/content/template/docbook/params/qandadiv.autolabel.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="qandadiv.autolabel">
+<refmeta>
+<refentrytitle>qandadiv.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>qandadiv.autolabel</refname>
+<refpurpose>Are divisions in QAndASets enumerated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="qandadiv.autolabel.frag"><xsl:param name="qandadiv.autolabel" select="1"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, unlabeled qandadivs will be enumerated.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/rebuild-all.xml b/applications/content/template/docbook/params/rebuild-all.xml
new file mode 100644
index 0000000..6dcd5e0
--- /dev/null
+++ b/applications/content/template/docbook/params/rebuild-all.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="rebuild-all">
+<refmeta>
+<refentrytitle>rebuild-all</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>rebuild-all</refname>
+<refpurpose>Indicates that all files should be produced</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="rebuild-all.frag">
+<xsl:param name="rebuild-all" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>When using the XSLT processor to manage dependencies and construct
+the website, this parameter can be used to regenerate the whole website,
+updating even pages that don't appear to need to be updated.</para>
+<para>The dependency extension only looks at the source documents. So
+if you change something in the stylesheet, for example, that has a global
+effect, you can use this parameter to force the stylesheet to rebuild the
+whole website.
+</para>
+<para>Only applies when XSLT-based chunking is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refclass.suppress.xml b/applications/content/template/docbook/params/refclass.suppress.xml
new file mode 100644
index 0000000..8f9b52a
--- /dev/null
+++ b/applications/content/template/docbook/params/refclass.suppress.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refclass.suppress">
+<refmeta>
+<refentrytitle>refclass.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refclass.suppress</refname>
+<refpurpose>Suppress display of refclass contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refclass.suppress.frag">
+<xsl:param name="refclass.suppress" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>refclass.suppress</parameter> is
+non-zero, then display of <tag>refclass</tag> contents is
+suppressed in output.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.date.profile.enabled.xml b/applications/content/template/docbook/params/refentry.date.profile.enabled.xml
new file mode 100644
index 0000000..11de660
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.date.profile.enabled.xml
@@ -0,0 +1,46 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.date.profile.enabled">
+<refmeta>
+<refentrytitle>refentry.date.profile.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.date.profile.enabled</refname>
+<refpurpose>Enable refentry "date" profiling?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.date.profile.enabled.frag">
+<xsl:param name="refentry.date.profile.enabled">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.date.profile.enabled</parameter> is non-zero, then
+during <tag>refentry</tag> metadata gathering, the info profile
+specified by the customizable
+<parameter>refentry.date.profile</parameter> parameter is used.</para>
+
+<para>If instead the value of
+<parameter>refentry.date.profile.enabled</parameter> is zero (the
+default), then "hard coded" logic within the DocBook XSL stylesheets
+is used for gathering <tag>refentry</tag> "date" data.</para>
+
+<para>If you find that the default <tag>refentry</tag>
+metadata-gathering behavior is causing incorrect "date" data to show
+up in your output, then consider setting a non-zero value for
+<parameter>refentry.date.profile.enabled</parameter> and adjusting the
+value of <parameter>refentry.date.profile</parameter> to cause correct
+data to be gathered. </para>
+
+<para>Note that the terms "source" and "date" have special meanings in
+this context. For details, see the documentation for the
+<parameter>refentry.date.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.date.profile.xml b/applications/content/template/docbook/params/refentry.date.profile.xml
new file mode 100644
index 0000000..1220ed0
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.date.profile.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.date.profile">
+<refmeta>
+<refentrytitle>refentry.date.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.date.profile</refname>
+<refpurpose>Specifies profile for refentry "date" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.date.profile.frag">
+<xsl:param name="refentry.date.profile">
+  (($info[//date])[last()]/date)[1]|
+  (($info[//pubdate])[last()]/pubdate)[1]
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of <parameter>refentry.date.profile</parameter> is a
+string representing an XPath expression. It is evaluated at run-time
+and used only if <parameter>refentry.date.profile.enabled</parameter>
+is non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering
+logic "hard coded" into the stylesheets is used.</para>
+
+<para> The <literal>man(7)</literal> man page describes this content
+as "the date of the last revision". In man pages, it is the content
+that is usually displayed in the center footer.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.generate.name.xml b/applications/content/template/docbook/params/refentry.generate.name.xml
new file mode 100644
index 0000000..f59e6d5
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.generate.name.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.generate.name">
+<refmeta>
+<refentrytitle>refentry.generate.name</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.generate.name</refname>
+<refpurpose>Output NAME header before <tag>refname</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.generate.name.frag">
+<xsl:param name="refentry.generate.name" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, a "NAME" section title is output before the list
+of <tag>refname</tag>s. This parameter and
+<parameter>refentry.generate.title</parameter> are mutually
+exclusive. This means that if you change this parameter to zero, you
+should set <parameter>refentry.generate.title</parameter> to non-zero unless
+you want get quite strange output.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.generate.title.xml b/applications/content/template/docbook/params/refentry.generate.title.xml
new file mode 100644
index 0000000..8029b20
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.generate.title.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.generate.title">
+<refmeta>
+<refentrytitle>refentry.generate.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.generate.title</refname>
+<refpurpose>Output title before <tag>refname</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.generate.title.frag">
+<xsl:param name="refentry.generate.title" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the reference page title or first name is
+output before the list of <tag>refname</tag>s. This parameter and
+<parameter>refentry.generate.name</parameter> are mutually exclusive.
+This means that if you change this parameter to non-zero, you
+should set <parameter>refentry.generate.name</parameter> to zero unless
+you want get quite strange output.</para>
+
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.manual.fallback.profile.xml b/applications/content/template/docbook/params/refentry.manual.fallback.profile.xml
new file mode 100644
index 0000000..6362785
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.manual.fallback.profile.xml
@@ -0,0 +1,48 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.manual.fallback.profile">
+<refmeta>
+<refentrytitle>refentry.manual.fallback.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.manual.fallback.profile</refname>
+<refpurpose>Specifies profile of "fallback" for refentry "manual" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.manual.fallback.profile.frag">
+<xsl:param name="refentry.manual.fallback.profile">
+refmeta/refmiscinfo[not(@class = 'date')][1]/node()</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of
+<parameter>refentry.manual.fallback.profile</parameter> is a string
+representing an XPath expression. It is evaluated at run-time and
+used only if no "manual" data can be found by other means (that is,
+either using the <tag>refentry</tag> metadata-gathering logic "hard
+coded" in the stylesheets, or the value of
+<parameter>refentry.manual.profile</parameter>, if it is
+enabled).</para>
+
+<important>
+<para>Depending on which XSLT engine you run, either the EXSLT
+<function>dyn:evaluate</function> extension function (for xsltproc or
+Xalan) or <function>saxon:evaluate</function> extension function (for
+Saxon) are used to dynamically evaluate the value of
+<parameter>refentry.manual.fallback.profile</parameter> at
+run-time. If you don't use xsltproc, Saxon, Xalan -- or some other
+XSLT engine that supports <function>dyn:evaluate</function> -- you
+must manually disable fallback processing by setting an empty value
+for the <parameter>refentry.manual.fallback.profile</parameter>
+parameter.</para>
+</important>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.manual.profile.enabled.xml b/applications/content/template/docbook/params/refentry.manual.profile.enabled.xml
new file mode 100644
index 0000000..a3b7b54
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.manual.profile.enabled.xml
@@ -0,0 +1,47 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.manual.profile.enabled">
+<refmeta>
+<refentrytitle>refentry.manual.profile.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.manual.profile.enabled</refname>
+<refpurpose>Enable refentry "manual" profiling?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.manual.profile.enabled.frag">
+<xsl:param name="refentry.manual.profile.enabled">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.manual.profile.enabled</parameter> is
+non-zero, then during <tag>refentry</tag> metadata gathering, the info
+profile specified by the customizable
+<parameter>refentry.manual.profile</parameter> parameter is
+used.</para>
+
+<para>If instead the value of
+<parameter>refentry.manual.profile.enabled</parameter> is zero (the
+default), then "hard coded" logic within the DocBook XSL stylesheets
+is used for gathering <tag>refentry</tag> "manual" data.</para>
+
+<para>If you find that the default <tag>refentry</tag>
+metadata-gathering behavior is causing incorrect "manual" data to show
+up in your output, then consider setting a non-zero value for
+<parameter>refentry.manual.profile.enabled</parameter> and adjusting
+the value of <parameter>refentry.manual.profile</parameter> to cause
+correct data to be gathered. </para>
+
+<para>Note that the term "manual" has a special meanings in this
+context. For details, see the documentation for the
+<parameter>refentry.manual.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.manual.profile.xml b/applications/content/template/docbook/params/refentry.manual.profile.xml
new file mode 100644
index 0000000..214b170
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.manual.profile.xml
@@ -0,0 +1,72 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.manual.profile">
+<refmeta>
+<refentrytitle>refentry.manual.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.manual.profile</refname>
+<refpurpose>Specifies profile for refentry "manual" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.manual.profile.frag">
+<xsl:param name="refentry.manual.profile">
+  (($info[//title])[last()]/title)[1]|
+  ../title/node()
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of <parameter>refentry.manual.profile</parameter> is
+a string representing an XPath expression. It is evaluated at
+run-time and used only if
+<parameter>refentry.manual.profile.enabled</parameter> is
+non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering logic
+"hard coded" into the stylesheets is used.</para>
+
+<para>In man pages, this content is usually displayed in the middle of
+the header of the page. The <literal>man(7)</literal> man page
+describes this as "the title of the manual (e.g., <citetitle>Linux
+Programmer's Manual</citetitle>)". Here are some examples from
+existing man pages:
+<itemizedlist>
+  <listitem>
+    <para><citetitle>dpkg utilities</citetitle>
+    (<command>dpkg-name</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>User Contributed Perl Documentation</citetitle>
+    (<command>GET</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>GNU Development Tools</citetitle>
+    (<command>ld</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>Emperor Norton Utilities</citetitle>
+    (<command>ddate</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>Debian GNU/Linux manual</citetitle>
+    (<command>faked</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>GIMP Manual Pages</citetitle>
+    (<command>gimp</command>)</para>
+  </listitem>
+  <listitem>
+    <para><citetitle>KDOC Documentation System</citetitle>
+    (<command>qt2kdoc</command>)</para>
+  </listitem>
+</itemizedlist>
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.meta.get.quietly.xml b/applications/content/template/docbook/params/refentry.meta.get.quietly.xml
new file mode 100644
index 0000000..0ed29f6
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.meta.get.quietly.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.meta.get.quietly">
+<refmeta>
+<refentrytitle>refentry.meta.get.quietly</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.meta.get.quietly</refname>
+<refpurpose>Suppress notes and warnings when gathering refentry metadata?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.meta.get.quietly.frag">
+<xsl:param name="refentry.meta.get.quietly" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If zero (the default), notes and warnings about “missing” markup
+are generated during gathering of refentry metadata. If non-zero, the
+metadata is gathered “quietly” -- that is, the notes and warnings are
+suppressed.</para>
+
+<tip>
+  <para>If you are processing a large amount of <tag>refentry</tag>
+  content, you may be able to speed up processing significantly by
+  setting a non-zero value for
+  <parameter>refentry.meta.get.quietly</parameter>.</para>
+</tip>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.pagebreak.xml b/applications/content/template/docbook/params/refentry.pagebreak.xml
new file mode 100644
index 0000000..42b8466
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.pagebreak.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.pagebreak">
+<refmeta>
+<refentrytitle>refentry.pagebreak</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.pagebreak</refname>
+<refpurpose>Start each refentry on a new page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.pagebreak.frag"><xsl:param name="refentry.pagebreak" select="1"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero (the default), each <tag>refentry</tag>
+element will start on a new page.  If zero, a page
+break will not be generated between <tag>refentry</tag> elements.
+The exception is when the <tag>refentry</tag> elements are children of
+a <tag>part</tag> element, in which case the page breaks are always
+retained.  That is because a <tag>part</tag> element does not generate
+a page-sequence for its children, so each <tag>refentry</tag> must
+start its own page-sequence.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.separator.xml b/applications/content/template/docbook/params/refentry.separator.xml
new file mode 100644
index 0000000..a7eeb84
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.separator.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.separator">
+<refmeta>
+<refentrytitle>refentry.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.separator</refname>
+<refpurpose>Generate a separator between consecutive RefEntry elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.separator.frag">
+<xsl:param name="refentry.separator" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true, a separator will be generated between consecutive
+reference pages.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.source.fallback.profile.xml b/applications/content/template/docbook/params/refentry.source.fallback.profile.xml
new file mode 100644
index 0000000..1761378
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.source.fallback.profile.xml
@@ -0,0 +1,49 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.source.fallback.profile">
+<refmeta>
+<refentrytitle>refentry.source.fallback.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.source.fallback.profile</refname>
+<refpurpose>Specifies profile of "fallback" for refentry "source" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.source.fallback.profile.frag">
+<xsl:param name="refentry.source.fallback.profile">
+refmeta/refmiscinfo[not(@class = 'date')][1]/node()</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of
+<parameter>refentry.source.fallback.profile</parameter> is a string
+representing an XPath expression. It is evaluated at run-time and used
+only if no "source" data can be found by other means (that is, either
+using the <tag>refentry</tag> metadata-gathering logic "hard coded" in
+the stylesheets, or the value of the
+<parameter>refentry.source.name.profile</parameter> and
+<parameter>refentry.version.profile</parameter> parameters, if those
+are enabled).</para>
+
+<important>
+<para>Depending on which XSLT engine you run, either the EXSLT
+<function>dyn:evaluate</function> extension function (for xsltproc or
+Xalan) or <function>saxon:evaluate</function> extension function (for
+Saxon) are used to dynamically evaluate the value of
+<parameter>refentry.source.fallback.profile</parameter> at
+run-time. If you don't use xsltproc, Saxon, Xalan -- or some other
+XSLT engine that supports <function>dyn:evaluate</function> -- you
+must manually disable fallback processing by setting an empty value
+for the <parameter>refentry.source.fallback.profile</parameter>
+parameter.</para>
+</important>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.source.name.profile.enabled.xml b/applications/content/template/docbook/params/refentry.source.name.profile.enabled.xml
new file mode 100644
index 0000000..f87ec0f
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.source.name.profile.enabled.xml
@@ -0,0 +1,48 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.source.name.profile.enabled">
+<refmeta>
+<refentrytitle>refentry.source.name.profile.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.source.name.profile.enabled</refname>
+<refpurpose>Enable refentry "source name" profiling?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.source.name.profile.enabled.frag">
+<xsl:param name="refentry.source.name.profile.enabled">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.source.name.profile.enabled</parameter> is
+non-zero, then during <tag>refentry</tag> metadata gathering, the info
+profile specified by the customizable
+<parameter>refentry.source.name.profile</parameter> parameter is
+used.</para>
+
+<para>If instead the value of
+<parameter>refentry.source.name.profile.enabled</parameter> is zero (the
+default), then "hard coded" logic within the DocBook XSL stylesheets
+is used for gathering <tag>refentry</tag> "source name" data.</para>
+
+<para>If you find that the default <tag>refentry</tag>
+metadata-gathering behavior is causing incorrect "source name" data to
+show up in your output, then consider setting a non-zero value for
+<parameter>refentry.source.name.profile.enabled</parameter> and
+adjusting the value of
+<parameter>refentry.source.name.profile</parameter> to cause correct
+data to be gathered. </para>
+
+<para>Note that the terms "source" and "source name" have special
+meanings in this context. For details, see the documentation for the
+<parameter>refentry.source.name.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.source.name.profile.xml b/applications/content/template/docbook/params/refentry.source.name.profile.xml
new file mode 100644
index 0000000..c9a1012
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.source.name.profile.xml
@@ -0,0 +1,89 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.source.name.profile">
+<refmeta>
+<refentrytitle>refentry.source.name.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.source.name.profile</refname>
+<refpurpose>Specifies profile for refentry "source name" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.source.name.profile.frag">
+<xsl:param name="refentry.source.name.profile">
+  (($info[//productname])[last()]/productname)[1]|
+  (($info[//corpname])[last()]/corpname)[1]|
+  (($info[//corpcredit])[last()]/corpcredit)[1]|
+  (($info[//corpauthor])[last()]/corpauthor)[1]|
+  (($info[//orgname])[last()]/orgname)[1]|
+  (($info[//publishername])[last()]/publishername)[1]
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of <parameter>refentry.source.name.profile</parameter>
+is a string representing an XPath expression. It is evaluated at
+run-time and used only if
+<parameter>refentry.source.name.profile.enabled</parameter> is
+non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering logic
+"hard coded" into the stylesheets is used.</para>
+
+<para>A "source name" is one part of a (potentially) two-part
+<replaceable>Name</replaceable> <replaceable>Version</replaceable>
+"source" field. In man pages, it is usually displayed in the left
+footer of the page. It typically indicates the software system or
+product that the item documented in the man page belongs to. The
+<literal>man(7)</literal> man page describes it as "the source of
+the command", and provides the following examples:
+<itemizedlist>
+  <listitem>
+    <para>For binaries, use something like: GNU, NET-2, SLS
+    Distribution, MCC Distribution.</para>
+  </listitem>
+  <listitem>
+    <para>For system calls, use the version of the kernel that you
+    are currently looking at: Linux 0.99.11.</para>
+  </listitem>
+  <listitem>
+    <para>For library calls, use the source of the function: GNU, BSD
+    4.3, Linux DLL 4.4.1.</para>
+  </listitem>
+</itemizedlist>
+</para>
+
+<para>In practice, there are many pages that simply have a Version
+number in the "source" field. So, it looks like what we have is a
+two-part field,
+<replaceable>Name</replaceable> <replaceable>Version</replaceable>,
+where:
+<variablelist>
+  <varlistentry>
+    <term>Name</term>
+    <listitem>
+      <para>product name (e.g., BSD) or org. name (e.g., GNU)</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>Version</term>
+    <listitem>
+      <para>version number</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+Each part is optional. If the <replaceable>Name</replaceable> is a
+product name, then the <replaceable>Version</replaceable> is probably
+the version of the product. Or there may be no
+<replaceable>Name</replaceable>, in which case, if there is a
+<replaceable>Version</replaceable>, it is probably the version
+of the item itself, not the product it is part of. Or, if the
+<replaceable>Name</replaceable> is an organization name, then there
+probably will be no <replaceable>Version</replaceable>.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.source.name.suppress.xml b/applications/content/template/docbook/params/refentry.source.name.suppress.xml
new file mode 100644
index 0000000..b29127e
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.source.name.suppress.xml
@@ -0,0 +1,42 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.source.name.suppress">
+<refmeta>
+<refentrytitle>refentry.source.name.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.source.name.suppress</refname>
+<refpurpose>Suppress "name" part of refentry "source" contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.source.name.suppress.frag">
+<xsl:param name="refentry.source.name.suppress">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.source.name.suppress</parameter> is non-zero, then
+during <tag>refentry</tag> metadata gathering, no "source name" data
+is added to the <tag>refentry</tag> "source" contents. Instead (unless
+<parameter>refentry.version.suppress</parameter> is also non-zero),
+only "version" data is added to the "source" contents.</para>
+
+<para>If you find that the <tag>refentry</tag> metadata gathering
+mechanism is causing unwanted "source name" data to show up in your
+output -- for example, in the footer (or possibly header) of a man
+page -- then you might consider setting a non-zero value for
+<parameter>refentry.source.name.suppress</parameter>.</para>
+
+<para>Note that the terms "source", "source name", and "version" have
+special meanings in this context. For details, see the documentation
+for the <parameter>refentry.source.name.profile</parameter>
+parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.title.properties.xml b/applications/content/template/docbook/params/refentry.title.properties.xml
new file mode 100644
index 0000000..5523e5d
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.title.properties.xml
@@ -0,0 +1,59 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.title.properties">
+<refmeta>
+<refentrytitle>refentry.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.title.properties</refname>
+<refpurpose>Title properties for a refentry title</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.title.properties.frag">
+<xsl:attribute-set name="refentry.title.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$title.fontset"/>
+  </xsl:attribute>
+  <xsl:attribute name="font-size">18pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="space-after">1em</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1.0em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.4em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">0.6em</xsl:attribute>
+  <xsl:attribute name="start-indent"><xsl:value-of select="$title.margin.left"/></xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Formatting properties applied to the title generated for the
+<tag>refnamediv</tag> part of output for
+<tag>refentry</tag> when the value of the
+<parameter>refentry.generate.title</parameter> parameter is
+non-zero. The font size is supplied by the appropriate <parameter>section.level<replaceable>X</replaceable>.title.properties</parameter>
+attribute-set, computed from the location of the
+<tag>refentry</tag> in the section hierarchy.</para>
+
+<note>
+  <para>This parameter has no effect on the the title generated for
+  the <tag>refnamediv</tag> part of output for
+  <tag>refentry</tag> when the value of the
+  <parameter>refentry.generate.name</parameter> parameter is
+  non-zero. By default, that title is formatted with the same
+  properties as the titles for all other first-level children of
+  <tag>refentry</tag>.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.version.profile.enabled.xml b/applications/content/template/docbook/params/refentry.version.profile.enabled.xml
new file mode 100644
index 0000000..3b95bbe
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.version.profile.enabled.xml
@@ -0,0 +1,47 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.version.profile.enabled">
+<refmeta>
+<refentrytitle>refentry.version.profile.enabled</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.version.profile.enabled</refname>
+<refpurpose>Enable refentry "version" profiling?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.version.profile.enabled.frag">
+<xsl:param name="refentry.version.profile.enabled">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of
+<parameter>refentry.version.profile.enabled</parameter> is
+non-zero, then during <tag>refentry</tag> metadata gathering, the info
+profile specified by the customizable
+<parameter>refentry.version.profile</parameter> parameter is
+used.</para>
+
+<para>If instead the value of
+<parameter>refentry.version.profile.enabled</parameter> is zero (the
+default), then "hard coded" logic within the DocBook XSL stylesheets
+is used for gathering <tag>refentry</tag> "version" data.</para>
+
+<para>If you find that the default <tag>refentry</tag>
+metadata-gathering behavior is causing incorrect "version" data to show
+up in your output, then consider setting a non-zero value for
+<parameter>refentry.version.profile.enabled</parameter> and adjusting
+the value of <parameter>refentry.version.profile</parameter> to cause
+correct data to be gathered. </para>
+
+<para>Note that the terms "source" and "version" have special
+meanings in this context. For details, see the documentation for the
+<parameter>refentry.version.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.version.profile.xml b/applications/content/template/docbook/params/refentry.version.profile.xml
new file mode 100644
index 0000000..ff85825
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.version.profile.xml
@@ -0,0 +1,41 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.version.profile">
+<refmeta>
+<refentrytitle>refentry.version.profile</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.version.profile</refname>
+<refpurpose>Specifies profile for refentry "version" data</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.version.profile.frag">
+<xsl:param name="refentry.version.profile">
+  (($info[//productnumber])[last()]/productnumber)[1]|
+  (($info[//edition])[last()]/edition)[1]|
+  (($info[//releaseinfo])[last()]/releaseinfo)[1]
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The value of <parameter>refentry.version.profile</parameter> is
+a string representing an XPath expression. It is evaluated at
+run-time and used only if
+<parameter>refentry.version.profile.enabled</parameter> is
+non-zero. Otherwise, the <tag>refentry</tag> metadata-gathering logic
+"hard coded" into the stylesheets is used.</para>
+
+<para>A "source.name" is one part of a (potentially) two-part
+<replaceable>Name</replaceable> <replaceable>Version</replaceable>
+"source" field. For more details, see the documentation for the
+<parameter>refentry.source.name.profile</parameter> parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.version.suppress.xml b/applications/content/template/docbook/params/refentry.version.suppress.xml
new file mode 100644
index 0000000..b701ad8
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.version.suppress.xml
@@ -0,0 +1,43 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.version.suppress">
+<refmeta>
+<refentrytitle>refentry.version.suppress</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.version.suppress</refname>
+<refpurpose>Suppress "version" part of refentry "source" contents?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.version.suppress.frag">
+<xsl:param name="refentry.version.suppress">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the value of <parameter>refentry.version.suppress</parameter>
+is non-zero, then during <tag>refentry</tag> metadata gathering, no
+"version" data is added to the <tag>refentry</tag> "source"
+contents. Instead (unless
+<parameter>refentry.source.name.suppress</parameter> is also
+non-zero), only "source name" data is added to the "source"
+contents.</para>
+
+<para>If you find that the <tag>refentry</tag> metadata gathering
+mechanism is causing unwanted "version" data to show up in your output
+-- for example, in the footer (or possibly header) of a man page --
+then you might consider setting a non-zero value for
+<parameter>refentry.version.suppress</parameter>.</para>
+
+<para>Note that the terms "source", "source name", and "version" have
+special meanings in this context. For details, see the documentation
+for the <parameter>refentry.source.name.profile</parameter>
+parameter.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/refentry.xref.manvolnum.xml b/applications/content/template/docbook/params/refentry.xref.manvolnum.xml
new file mode 100644
index 0000000..56b93b7
--- /dev/null
+++ b/applications/content/template/docbook/params/refentry.xref.manvolnum.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="refentry.xref.manvolnum">
+<refmeta>
+<refentrytitle>refentry.xref.manvolnum</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>refentry.xref.manvolnum</refname>
+<refpurpose>Output <tag>manvolnum</tag> as part of 
+<tag>refentry</tag> cross-reference?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="refentry.xref.manvolnum.frag">
+<xsl:param name="refentry.xref.manvolnum" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>if non-zero, the <tag>manvolnum</tag> is used when cross-referencing
+<tag>refentry</tag>s, either with <tag>xref</tag>
+or <tag>citerefentry</tag>.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/reference.autolabel.xml b/applications/content/template/docbook/params/reference.autolabel.xml
new file mode 100644
index 0000000..1a9dc5b
--- /dev/null
+++ b/applications/content/template/docbook/params/reference.autolabel.xml
@@ -0,0 +1,67 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="reference.autolabel">
+<refmeta>
+<refentrytitle>reference.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>reference.autolabel</refname>
+<refpurpose>Specifies the labeling format for Reference titles</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<src:fragment xml:id="reference.autolabel.frag">
+  <xsl:param name="reference.autolabel">I</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>If non-zero, references will be numbered using the parameter
+  value as the number format if the value matches one of the
+  following:
+</para>
+<variablelist>
+  <varlistentry>
+    <term>1 or arabic</term>
+    <listitem>
+      <para>Arabic numeration (1, 2, 3 ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>A or upperalpha</term>
+    <listitem>
+      <para>Uppercase letter numeration (A, B, C ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>a or loweralpha</term>
+    <listitem>
+      <para>Lowercase letter numeration (a, b, c ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>I or upperroman</term>
+    <listitem>
+      <para>Uppercase roman numeration (I, II, III ...).</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>i or lowerroman</term>
+    <listitem>
+      <para>Lowercase roman letter numeration (i, ii, iii ...).</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+<para>Any non-zero value other than the above will generate
+the default number format (upperroman).
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/region.after.extent.xml b/applications/content/template/docbook/params/region.after.extent.xml
new file mode 100644
index 0000000..b29abba
--- /dev/null
+++ b/applications/content/template/docbook/params/region.after.extent.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="region.after.extent">
+<refmeta>
+<refentrytitle>region.after.extent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.after.extent</refname>
+<refpurpose>Specifies the height of the footer.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="region.after.extent.frag">
+<xsl:param name="region.after.extent">0.4in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The region after extent is the height of the area where footers
+are printed.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/region.before.extent.xml b/applications/content/template/docbook/params/region.before.extent.xml
new file mode 100644
index 0000000..c62cc40
--- /dev/null
+++ b/applications/content/template/docbook/params/region.before.extent.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="region.before.extent">
+<refmeta>
+<refentrytitle>region.before.extent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.before.extent</refname>
+<refpurpose>Specifies the height of the header</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="region.before.extent.frag">
+<xsl:param name="region.before.extent">0.4in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The region before extent is the height of the area where headers
+are printed.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/region.inner.extent.xml b/applications/content/template/docbook/params/region.inner.extent.xml
new file mode 100644
index 0000000..48792a2
--- /dev/null
+++ b/applications/content/template/docbook/params/region.inner.extent.xml
@@ -0,0 +1,51 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="region.inner.extent">
+<refmeta>
+<refentrytitle>region.inner.extent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.inner.extent</refname>
+<refpurpose>Specifies the width of the inner side region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="region.inner.extent.frag">
+<xsl:param name="region.inner.extent">0in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The region inner extent is the width of the optional
+text area next to the inner side (binding side) of the
+body region.  </para>
+
+<para>For double-sided output, this side region 
+is <literal>fo:region-start</literal> on a odd-numbered page,
+and <literal>fo:region-end</literal> on an even-numbered page.</para>
+
+<para>For single-sided output, this side region
+is <literal>fo:region-start</literal> for all pages.</para>
+
+<para>This correspondence applies to all languages,
+both left-to-right and right-to-left writing modes.</para>
+
+<para>The default value of this parameter is zero.  If you enlarge this extent,
+be sure to also enlarge the <parameter>body.margin.inner</parameter>
+parameter to make room for its content, otherwise any text in
+the side region may overlap with the body text.</para>
+
+<para>See also
+<parameter>region.outer.extent</parameter>,
+<parameter>body.margin.inner</parameter>,
+<parameter>body.margin.outer</parameter>,
+<parameter>side.region.precedence</parameter>.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/region.inner.properties.xml b/applications/content/template/docbook/params/region.inner.properties.xml
new file mode 100644
index 0000000..44e8bb4
--- /dev/null
+++ b/applications/content/template/docbook/params/region.inner.properties.xml
@@ -0,0 +1,51 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="region.inner.properties">
+<refmeta>
+<refentrytitle>region.inner.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.inner.properties</refname>
+<refpurpose>Properties of running inner side region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="region.inner.properties.frag">
+<xsl:attribute-set name="region.inner.properties">
+  <xsl:attribute name="border-width">0</xsl:attribute>
+  <xsl:attribute name="padding">0</xsl:attribute>
+  <xsl:attribute name="reference-orientation">90</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The FO stylesheet supports optional side regions
+similar to the header and footer regions.
+Any attributes declared in this attribute-set 
+are applied to the region element in the page master
+on the inner side (binding side) of the page.
+This corresponds to <literal>&lt;fo:regin-start&gt;</literal>
+on odd-numbered pages and <literal>&lt;fo:region-end&gt;</literal>
+on even-numbered pages.
+For single-sided output, it always corresponds to
+<literal>&lt;fo:regin-start&gt;</literal>.</para>
+
+<para>You can customize the template named 
+<literal>inner.region.content</literal> to specify
+the content of the inner side region.</para>
+
+<para>See also
+<parameter>inner.region.content.properties</parameter>,
+<parameter>page.margin.inner</parameter>, 
+<parameter>body.margin.inner</parameter>,
+and the corresponding <literal>outer</literal>
+parameters.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/region.outer.extent.xml b/applications/content/template/docbook/params/region.outer.extent.xml
new file mode 100644
index 0000000..086a3a6
--- /dev/null
+++ b/applications/content/template/docbook/params/region.outer.extent.xml
@@ -0,0 +1,50 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="region.outer.extent">
+<refmeta>
+<refentrytitle>region.outer.extent</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.outer.extent</refname>
+<refpurpose>Specifies the width of the outer side region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="region.outer.extent.frag">
+<xsl:param name="region.outer.extent">0in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The region outer extent is the width of the optional
+text area next to the outer side (opposite the binding side) of the
+body region.  </para>
+
+<para>For double-sided output, this side region 
+is <literal>fo:region-end</literal> on a odd-numbered page,
+and <literal>fo:region-start</literal> on an even-numbered page.</para>
+
+<para>For single-sided output, this side region
+is <literal>fo:region-end</literal> for all pages.</para>
+
+<para>This correspondence applies to all languages,
+both left-to-right and right-to-left writing modes.</para>
+
+<para>The default value of this parameter is zero.  If you enlarge this extent,
+be sure to also enlarge the <parameter>body.margin.outer</parameter>
+parameter to make room for its content, otherwise any text in
+the side region may overlap with the body text.</para>
+
+<para>See also
+<parameter>region.inner.extent</parameter>,
+<parameter>body.margin.inner</parameter>,
+<parameter>body.margin.outer</parameter>,
+<parameter>side.region.precedence</parameter>.
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/region.outer.properties.xml b/applications/content/template/docbook/params/region.outer.properties.xml
new file mode 100644
index 0000000..1ed1c50
--- /dev/null
+++ b/applications/content/template/docbook/params/region.outer.properties.xml
@@ -0,0 +1,51 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="region.outer.properties">
+<refmeta>
+<refentrytitle>region.outer.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>region.outer.properties</refname>
+<refpurpose>Properties of running outer side region</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="region.outer.properties.frag">
+<xsl:attribute-set name="region.outer.properties">
+  <xsl:attribute name="border-width">0</xsl:attribute>
+  <xsl:attribute name="padding">0</xsl:attribute>
+  <xsl:attribute name="reference-orientation">90</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The FO stylesheet supports optional side regions
+similar to the header and footer regions.
+Any attributes declared in this attribute-set 
+are applied to the region element in the page master
+on the outer side (opposite the binding side) of the page.
+This corresponds to <literal>&lt;fo:regin-start&gt;</literal>
+on odd-numbered pages and <literal>&lt;fo:region-end&gt;</literal>
+on even-numbered pages.
+For single-sided output, it always corresponds to
+<literal>&lt;fo:regin-start&gt;</literal>.</para>
+
+<para>You can customize the template named 
+<literal>outer.region.content</literal> to specify
+the content of the outer side region.</para>
+
+<para>See also
+<parameter>outer.region.content.properties</parameter>,
+<parameter>page.margin.outer</parameter>, 
+<parameter>body.margin.outer</parameter>,
+and the corresponding <literal>inner</literal>
+parameters.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/revhistory.table.cell.properties.xml b/applications/content/template/docbook/params/revhistory.table.cell.properties.xml
new file mode 100644
index 0000000..49c4037
--- /dev/null
+++ b/applications/content/template/docbook/params/revhistory.table.cell.properties.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="revhistory.table.cell.properties">
+<refmeta>
+<refentrytitle>revhistory.table.cell.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>revhistory.table.cell.properties</refname>
+<refpurpose>The properties of table cells used for formatting revhistory</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="revhistory.table.cell.properties.frag">
+<xsl:attribute-set name="revhistory.table.cell.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This property set defines appearance of individual cells in revhistory table.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/revhistory.table.properties.xml b/applications/content/template/docbook/params/revhistory.table.properties.xml
new file mode 100644
index 0000000..43116d0
--- /dev/null
+++ b/applications/content/template/docbook/params/revhistory.table.properties.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="revhistory.table.properties">
+<refmeta>
+<refentrytitle>revhistory.table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>revhistory.table.properties</refname>
+<refpurpose>The properties of table used for formatting revhistory</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="revhistory.table.properties.frag">
+<xsl:attribute-set name="revhistory.table.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This property set defines appearance of revhistory table.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/revhistory.title.properties.xml b/applications/content/template/docbook/params/revhistory.title.properties.xml
new file mode 100644
index 0000000..f97d646
--- /dev/null
+++ b/applications/content/template/docbook/params/revhistory.title.properties.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="revhistory.title.properties">
+<refmeta>
+<refentrytitle>revhistory.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>revhistory.title.properties</refname>
+<refpurpose>The properties of revhistory title</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="revhistory.title.properties.frag">
+<xsl:attribute-set name="revhistory.title.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This property set defines appearance of revhistory title.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/root.filename.xml b/applications/content/template/docbook/params/root.filename.xml
new file mode 100644
index 0000000..ae5ca5b
--- /dev/null
+++ b/applications/content/template/docbook/params/root.filename.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="root.filename">
+<refmeta>
+<refentrytitle>root.filename</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>root.filename</refname>
+<refpurpose>Identifies the name of the root HTML file when chunking</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="root.filename.frag">
+<xsl:param name="root.filename">index</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>root.filename</parameter> is the base filename for
+the chunk created for the root of each document processed.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/root.properties.xml b/applications/content/template/docbook/params/root.properties.xml
new file mode 100644
index 0000000..26c9951
--- /dev/null
+++ b/applications/content/template/docbook/params/root.properties.xml
@@ -0,0 +1,46 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="root.properties">
+<refmeta>
+<refentrytitle>root.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>root.properties</refname>
+<refpurpose>The properties of the fo:root element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="root.properties.frag">
+<xsl:attribute-set name="root.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$body.fontset"/>
+  </xsl:attribute>
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.size"/>
+  </xsl:attribute>
+  <xsl:attribute name="text-align">
+    <xsl:value-of select="$alignment"/>
+  </xsl:attribute>
+  <xsl:attribute name="line-height">
+    <xsl:value-of select="$line-height"/>
+  </xsl:attribute>
+  <xsl:attribute name="font-selection-strategy">character-by-character</xsl:attribute>
+  <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
+  <xsl:attribute name="writing-mode">
+    <xsl:value-of select="$direction.mode"/>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This property set is used on the <tag>fo:root</tag> element of
+an FO file. It defines a set of default, global parameters.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/rootid.xml b/applications/content/template/docbook/params/rootid.xml
new file mode 100644
index 0000000..a0715af
--- /dev/null
+++ b/applications/content/template/docbook/params/rootid.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="rootid">
+<refmeta>
+<refentrytitle>rootid</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>rootid</refname>
+<refpurpose>Specify the root element to format</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="rootid.frag">
+<xsl:param name="rootid" ></xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>rootid</parameter> is not empty, it must be the
+value of an ID that occurs in the document being formatted. The entire
+document will be loaded and parsed, but formatting will begin at the
+element identified, rather than at the root. For example, this allows
+you to process only <tag>chapter</tag> 4 of a <tag>book</tag>.</para>
+<para>Because the entire document is available to the processor, automatic
+numbering, cross references, and other dependencies are correctly
+resolved.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/runinhead.default.title.end.punct.xml b/applications/content/template/docbook/params/runinhead.default.title.end.punct.xml
new file mode 100644
index 0000000..d151e8b
--- /dev/null
+++ b/applications/content/template/docbook/params/runinhead.default.title.end.punct.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="runinhead.default.title.end.punct">
+<refmeta>
+<refentrytitle>runinhead.default.title.end.punct</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>runinhead.default.title.end.punct</refname>
+<refpurpose>Default punctuation character on a run-in-head</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="runinhead.default.title.end.punct.frag"><xsl:param name="runinhead.default.title.end.punct">.</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, For a <tag>formalpara</tag>, use the specified
+string as the separator between the title and following text. The period is the default value.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/runinhead.title.end.punct.xml b/applications/content/template/docbook/params/runinhead.title.end.punct.xml
new file mode 100644
index 0000000..025aeed
--- /dev/null
+++ b/applications/content/template/docbook/params/runinhead.title.end.punct.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="runinhead.title.end.punct">
+<refmeta>
+<refentrytitle>runinhead.title.end.punct</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>runinhead.title.end.punct</refname>
+<refpurpose>Characters that count as punctuation on a run-in-head</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="runinhead.title.end.punct.frag">
+<xsl:param name="runinhead.title.end.punct">.!?:</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specify which characters are to be counted as punctuation. These
+characters are checked for a match with the last character of the
+title. If no match is found, the
+<parameter>runinhead.default.title.end.punct</parameter> contents are
+inserted. This is to avoid duplicated punctuation in the output.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/running.foot.properties.xml b/applications/content/template/docbook/params/running.foot.properties.xml
new file mode 100644
index 0000000..ee98592
--- /dev/null
+++ b/applications/content/template/docbook/params/running.foot.properties.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+  <src:fragment xml:id="running.foot.properties.frag">
+    <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>
+  </src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/sans.font.family.xml b/applications/content/template/docbook/params/sans.font.family.xml
new file mode 100644
index 0000000..d569b12
--- /dev/null
+++ b/applications/content/template/docbook/params/sans.font.family.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="sans.font.family">
+<refmeta>
+<refentrytitle>sans.font.family</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sans.font.family</refname>
+<refpurpose>The default sans-serif font family</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="sans.font.family.frag">
+<xsl:param name="sans.font.family" >sans-serif</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The default sans-serif font family. At the present, this isn't
+actually used by the stylesheets.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/saxon.callouts.xml b/applications/content/template/docbook/params/saxon.callouts.xml
new file mode 100644
index 0000000..e08fcdb
--- /dev/null
+++ b/applications/content/template/docbook/params/saxon.callouts.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="saxon.callouts">
+<refmeta>
+<refentrytitle>saxon.callouts</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>saxon.callouts</refname>
+<refpurpose>Enable the callout extension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="saxon.callouts.frag">
+<xsl:param name="saxon.callouts" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The callouts extension processes <tag>areaset</tag>
+elements in <tag>ProgramListingCO</tag> and other text-based
+callout elements.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/saxon.character.representation.xml b/applications/content/template/docbook/params/saxon.character.representation.xml
new file mode 100644
index 0000000..bd8bcac
--- /dev/null
+++ b/applications/content/template/docbook/params/saxon.character.representation.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="saxon.character.representation">
+<refmeta>
+<refentrytitle>saxon.character.representation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>saxon.character.representation</refname>
+<refpurpose>Saxon character representation used in generated HTML pages</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+  <src:fragment xml:id="saxon.character.representation.frag"><xsl:param name="saxon.character.representation" select="'entity;decimal'"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter has effect only when Saxon 6 is used (version 6.4.2 or later). 
+It sets the character representation in files generated by the chunking stylesheets. 
+If you want to suppress entity references for characters with direct representations in 
+<parameter>chunker.output.encoding</parameter>, set the parameter value to <literal>native</literal>. 
+</para>
+
+<para> For more information, see <link 
+role="tcg" xlink:href="OutputEncoding.html#SaxonCharacter">Saxon output character representation</link>.</para>
+
+<note>
+<para>This parameter is documented here, but the declaration is actually
+in the <filename>chunker.xsl</filename> stylesheet module.</para>
+</note>
+
+</refsection>
+
+</refentry>
diff --git a/applications/content/template/docbook/params/saxon.linenumbering.xml b/applications/content/template/docbook/params/saxon.linenumbering.xml
new file mode 100644
index 0000000..451028b
--- /dev/null
+++ b/applications/content/template/docbook/params/saxon.linenumbering.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="saxon.linenumbering">
+<refmeta>
+<refentrytitle>saxon.linenumbering</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>saxon.linenumbering</refname>
+<refpurpose>Enable the line numbering extension</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="saxon.linenumbering.frag">
+<xsl:param name="saxon.linenumbering" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, verbatim environments (elements that have the
+format='linespecific' notation attribute: <tag>address</tag>,
+<tag>literallayout</tag>, <tag>programlisting</tag>,
+<tag>screen</tag>, <tag>synopsis</tag>) that specify line numbering
+will have line numbers.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/saxon.tablecolumns.xml b/applications/content/template/docbook/params/saxon.tablecolumns.xml
new file mode 100644
index 0000000..e9d9674
--- /dev/null
+++ b/applications/content/template/docbook/params/saxon.tablecolumns.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="saxon.tablecolumns">
+<refmeta>
+<refentrytitle>saxon.tablecolumns</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>saxon.tablecolumns</refname>
+<refpurpose>Enable the table columns extension function</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="saxon.tablecolumns.frag">
+<xsl:param name="saxon.tablecolumns" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The table columns extension function adjusts the widths of table
+columns in the HTML result to more accurately reflect the specifications
+in the CALS table.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/script.dir.xml b/applications/content/template/docbook/params/script.dir.xml
new file mode 100644
index 0000000..9cb92af
--- /dev/null
+++ b/applications/content/template/docbook/params/script.dir.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="script.dir.frag">
+<xsl:param name="script.dir"></xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/section.autolabel.max.depth.xml b/applications/content/template/docbook/params/section.autolabel.max.depth.xml
new file mode 100644
index 0000000..e588e00
--- /dev/null
+++ b/applications/content/template/docbook/params/section.autolabel.max.depth.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.autolabel.max.depth">
+<refmeta>
+<refentrytitle>section.autolabel.max.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.autolabel.max.depth</refname>
+<refpurpose>The deepest level of sections that are numbered.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.autolabel.max.depth.frag">
+<xsl:param name="section.autolabel.max.depth">8</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When section numbering is turned on by the
+<parameter>section.autolabel</parameter> parameter, then this
+parameter controls the depth of <tag>section</tag> nesting that is
+numbered.  Sections nested to a level deeper than this value will not
+be numbered.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.autolabel.xml b/applications/content/template/docbook/params/section.autolabel.xml
new file mode 100644
index 0000000..85eede6
--- /dev/null
+++ b/applications/content/template/docbook/params/section.autolabel.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.autolabel">
+<refmeta>
+<refentrytitle>section.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.autolabel</refname>
+<refpurpose>Are sections enumerated?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.autolabel.frag"><xsl:param name="section.autolabel" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If true (non-zero), unlabeled sections will be enumerated.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.container.element.xml b/applications/content/template/docbook/params/section.container.element.xml
new file mode 100644
index 0000000..a6c4059
--- /dev/null
+++ b/applications/content/template/docbook/params/section.container.element.xml
@@ -0,0 +1,62 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.container.element">
+<refmeta>
+<refentrytitle>section.container.element</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">block</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">wrapper</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.container.element</refname>
+<refpurpose>Select XSL-FO element name to contain sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.container.element.frag">
+<xsl:param name="section.container.element">block</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the element name for outer container of
+each section. The choices are <literal>block</literal> (default)
+or <literal>wrapper</literal>.
+The <literal>fo:</literal> namespace prefix is added
+by the stylesheet to form the full element name.
+</para>
+
+<para>This element receives the section <literal>id</literal>
+attribute and the appropriate section level attribute-set.
+</para>
+
+<para>Changing this parameter to <literal>wrapper</literal>
+is only necessary when producing multi-column output
+that contains page-wide spans.  Using <literal>fo:wrapper</literal>
+avoids the nesting of <literal>fo:block</literal>
+elements that prevents spans from working (the standard says
+a span must be on a block that is a direct child of 
+<literal>fo:flow</literal>).
+</para>
+
+<para>If set to <literal>wrapper</literal>, the
+section attribute-sets only support properties
+that are inheritable.  That's because there is no
+block to apply them to.  Properties such as
+font-family are inheritable, but properties such as
+border are not.
+</para>
+
+<para>Only some XSL-FO processors need to use this parameter.
+The Antenna House processor, for example, will handle 
+spans in nested blocks without changing the element name.
+The RenderX XEP product and FOP follow the XSL-FO standard 
+and need to use <literal>wrapper</literal>.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.label.includes.component.label.xml b/applications/content/template/docbook/params/section.label.includes.component.label.xml
new file mode 100644
index 0000000..505d472
--- /dev/null
+++ b/applications/content/template/docbook/params/section.label.includes.component.label.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.label.includes.component.label">
+<refmeta>
+<refentrytitle>section.label.includes.component.label</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.label.includes.component.label</refname>
+<refpurpose>Do section labels include the component label?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.label.includes.component.label.frag"><xsl:param name="section.label.includes.component.label" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, section labels are prefixed with the label of the
+component that contains them.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.level1.properties.xml b/applications/content/template/docbook/params/section.level1.properties.xml
new file mode 100644
index 0000000..4aa70b0
--- /dev/null
+++ b/applications/content/template/docbook/params/section.level1.properties.xml
@@ -0,0 +1,43 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.level1.properties">
+<refmeta>
+<refentrytitle>section.level1.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level1.properties</refname>
+<refpurpose>Properties for level-1 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.level1.properties.frag">
+<xsl:attribute-set name="section.level1.properties" use-attribute-sets="section.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-1 section, and therefore apply to
+the whole section.  This includes <tag>sect1</tag>
+elements and <tag>section</tag> elements at level 1.
+</para>
+
+<para>For example, you could start each level-1 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level1.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.level2.properties.xml b/applications/content/template/docbook/params/section.level2.properties.xml
new file mode 100644
index 0000000..5dd76e9
--- /dev/null
+++ b/applications/content/template/docbook/params/section.level2.properties.xml
@@ -0,0 +1,43 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.level2.properties">
+<refmeta>
+<refentrytitle>section.level2.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level2.properties</refname>
+<refpurpose>Properties for level-2 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.level2.properties.frag">
+<xsl:attribute-set name="section.level2.properties" use-attribute-sets="section.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-2 section, and therefore apply to
+the whole section.  This includes <tag>sect2</tag>
+elements and <tag>section</tag> elements at level 2.
+</para>
+
+<para>For example, you could start each level-2 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level2.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.level3.properties.xml b/applications/content/template/docbook/params/section.level3.properties.xml
new file mode 100644
index 0000000..0bcd696
--- /dev/null
+++ b/applications/content/template/docbook/params/section.level3.properties.xml
@@ -0,0 +1,43 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.level3.properties">
+<refmeta>
+<refentrytitle>section.level3.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level3.properties</refname>
+<refpurpose>Properties for level-3 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.level3.properties.frag">
+<xsl:attribute-set name="section.level3.properties" use-attribute-sets="section.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-3 section, and therefore apply to
+the whole section.  This includes <tag>sect3</tag>
+elements and <tag>section</tag> elements at level 3.
+</para>
+
+<para>For example, you could start each level-3 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level3.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.level4.properties.xml b/applications/content/template/docbook/params/section.level4.properties.xml
new file mode 100644
index 0000000..1408851
--- /dev/null
+++ b/applications/content/template/docbook/params/section.level4.properties.xml
@@ -0,0 +1,43 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.level4.properties">
+<refmeta>
+<refentrytitle>section.level4.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level4.properties</refname>
+<refpurpose>Properties for level-4 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.level4.properties.frag">
+<xsl:attribute-set name="section.level4.properties" use-attribute-sets="section.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-4 section, and therefore apply to
+the whole section.  This includes <tag>sect4</tag>
+elements and <tag>section</tag> elements at level 4.
+</para>
+
+<para>For example, you could start each level-4 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level4.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.level5.properties.xml b/applications/content/template/docbook/params/section.level5.properties.xml
new file mode 100644
index 0000000..9093b94
--- /dev/null
+++ b/applications/content/template/docbook/params/section.level5.properties.xml
@@ -0,0 +1,43 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.level5.properties">
+<refmeta>
+<refentrytitle>section.level5.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level5.properties</refname>
+<refpurpose>Properties for level-5 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.level5.properties.frag">
+<xsl:attribute-set name="section.level5.properties" use-attribute-sets="section.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level-5 section, and therefore apply to
+the whole section.  This includes <tag>sect5</tag>
+elements and <tag>section</tag> elements at level 5.
+</para>
+
+<para>For example, you could start each level-5 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level5.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.level6.properties.xml b/applications/content/template/docbook/params/section.level6.properties.xml
new file mode 100644
index 0000000..dda7937
--- /dev/null
+++ b/applications/content/template/docbook/params/section.level6.properties.xml
@@ -0,0 +1,43 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.level6.properties">
+<refmeta>
+<refentrytitle>section.level6.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.level6.properties</refname>
+<refpurpose>Properties for level-6 sections</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.level6.properties.frag">
+<xsl:attribute-set name="section.level6.properties" use-attribute-sets="section.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of a level 6 or lower section, and therefore apply to
+the whole section.  This includes 
+<tag>section</tag> elements at level 6 and lower.
+</para>
+
+<para>For example, you could start each level-6 section on
+a new page by using:</para>
+<programlisting>&lt;xsl:attribute-set name="section.level6.properties"&gt;
+  &lt;xsl:attribute name="break-before"&gt;page&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+
+<para>This attribute set inherits attributes from the
+general <tag>section.properties</tag> attribute set.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.properties.xml b/applications/content/template/docbook/params/section.properties.xml
new file mode 100644
index 0000000..06acc31
--- /dev/null
+++ b/applications/content/template/docbook/params/section.properties.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.properties">
+<refmeta>
+<refentrytitle>section.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.properties</refname>
+<refpurpose>Properties for all section levels</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.properties.frag">
+<xsl:attribute-set name="section.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties that apply to the containing
+block of all section levels, and therefore apply to
+the whole section.  
+This attribute set is inherited by the
+more specific attribute sets such as
+<tag>section.level1.properties</tag>.
+The default is empty.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.title.level1.properties.xml b/applications/content/template/docbook/params/section.title.level1.properties.xml
new file mode 100644
index 0000000..91c63ed
--- /dev/null
+++ b/applications/content/template/docbook/params/section.title.level1.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.title.level1.properties">
+<refmeta>
+<refentrytitle>section.title.level1.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level1.properties</refname>
+<refpurpose>Properties for level-1 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.title.level1.properties.frag">
+<xsl:attribute-set name="section.title.level1.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 2.0736"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-1 section titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.title.level2.properties.xml b/applications/content/template/docbook/params/section.title.level2.properties.xml
new file mode 100644
index 0000000..a25648a
--- /dev/null
+++ b/applications/content/template/docbook/params/section.title.level2.properties.xml
@@ -0,0 +1,33 @@
+
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.title.level2.properties">
+<refmeta>
+<refentrytitle>section.title.level2.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level2.properties</refname>
+<refpurpose>Properties for level-2 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.title.level2.properties.frag">
+<xsl:attribute-set name="section.title.level2.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 1.728"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-2 section titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.title.level3.properties.xml b/applications/content/template/docbook/params/section.title.level3.properties.xml
new file mode 100644
index 0000000..a009a6e
--- /dev/null
+++ b/applications/content/template/docbook/params/section.title.level3.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.title.level3.properties">
+<refmeta>
+<refentrytitle>section.title.level3.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level3.properties</refname>
+<refpurpose>Properties for level-3 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.title.level3.properties.frag">
+<xsl:attribute-set name="section.title.level3.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 1.44"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-3 section titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.title.level4.properties.xml b/applications/content/template/docbook/params/section.title.level4.properties.xml
new file mode 100644
index 0000000..00d4398
--- /dev/null
+++ b/applications/content/template/docbook/params/section.title.level4.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.title.level4.properties">
+<refmeta>
+<refentrytitle>section.title.level4.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level4.properties</refname>
+<refpurpose>Properties for level-4 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.title.level4.properties.frag">
+<xsl:attribute-set name="section.title.level4.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 1.2"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-4 section titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.title.level5.properties.xml b/applications/content/template/docbook/params/section.title.level5.properties.xml
new file mode 100644
index 0000000..c25b5ef
--- /dev/null
+++ b/applications/content/template/docbook/params/section.title.level5.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.title.level5.properties">
+<refmeta>
+<refentrytitle>section.title.level5.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level5.properties</refname>
+<refpurpose>Properties for level-5 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.title.level5.properties.frag">
+<xsl:attribute-set name="section.title.level5.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-5 section titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.title.level6.properties.xml b/applications/content/template/docbook/params/section.title.level6.properties.xml
new file mode 100644
index 0000000..a2a0feb
--- /dev/null
+++ b/applications/content/template/docbook/params/section.title.level6.properties.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.title.level6.properties">
+<refmeta>
+<refentrytitle>section.title.level6.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.level6.properties</refname>
+<refpurpose>Properties for level-6 section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.title.level6.properties.frag">
+<xsl:attribute-set name="section.title.level6.properties">
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties of level-6 section titles. This property set is actually
+used for all titles below level 5.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/section.title.properties.xml b/applications/content/template/docbook/params/section.title.properties.xml
new file mode 100644
index 0000000..1317da1
--- /dev/null
+++ b/applications/content/template/docbook/params/section.title.properties.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="section.title.properties">
+<refmeta>
+<refentrytitle>section.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>section.title.properties</refname>
+<refpurpose>Properties for section titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="section.title.properties.frag">
+<xsl:attribute-set name="section.title.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$title.fontset"/>
+  </xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <!-- font size is calculated dynamically by section.heading template -->
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1.0em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="text-align">start</xsl:attribute>
+  <xsl:attribute name="start-indent"><xsl:value-of select="$title.margin.left"/></xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The properties common to all section titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/segmentedlist.as.table.xml b/applications/content/template/docbook/params/segmentedlist.as.table.xml
new file mode 100644
index 0000000..fb2c236
--- /dev/null
+++ b/applications/content/template/docbook/params/segmentedlist.as.table.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="segmentedlist.as.table">
+<refmeta>
+<refentrytitle>segmentedlist.as.table</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>segmentedlist.as.table</refname>
+<refpurpose>Format segmented lists as tables?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="segmentedlist.as.table.frag">
+<xsl:param name="segmentedlist.as.table" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>segmentedlist</tag>s will be formatted as
+tables.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/sequential.links.xml b/applications/content/template/docbook/params/sequential.links.xml
new file mode 100644
index 0000000..293827d
--- /dev/null
+++ b/applications/content/template/docbook/params/sequential.links.xml
@@ -0,0 +1,25 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="sequential.links">
+<refmeta>
+<refentrytitle>sequential.links</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sequential.links</refname>
+<refpurpose>Make sequentional links?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="sequential.links.frag">
+<xsl:param name="sequential.links" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>FIXME</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/shade.verbatim.style.xml b/applications/content/template/docbook/params/shade.verbatim.style.xml
new file mode 100644
index 0000000..0907806
--- /dev/null
+++ b/applications/content/template/docbook/params/shade.verbatim.style.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="shade.verbatim.style">
+<refmeta>
+<refentrytitle>shade.verbatim.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>shade.verbatim.style</refname>
+<refpurpose>Properties that specify the style of shaded verbatim listings</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="shade.verbatim.style.frag">
+<xsl:attribute-set condition="html" name="shade.verbatim.style">
+  <xsl:attribute name="border">0</xsl:attribute>
+  <xsl:attribute name="bgcolor">#E0E0E0</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set condition="fo" name="shade.verbatim.style">
+  <xsl:attribute name="background-color">#E0E0E0</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties that specify the style of shaded verbatim listings. The
+parameters specified (the border and background color) are added to
+the styling of the xsl-fo output. A border might be specified as "thin
+black solid" for example. See <link xlink:href="http://www.w3.org/TR/2004/WD-xsl11-20041216/#border">xsl-fo</link></para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/shade.verbatim.xml b/applications/content/template/docbook/params/shade.verbatim.xml
new file mode 100644
index 0000000..82a7216
--- /dev/null
+++ b/applications/content/template/docbook/params/shade.verbatim.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="shade.verbatim">
+<refmeta>
+<refentrytitle>shade.verbatim</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>shade.verbatim</refname>
+<refpurpose>Should verbatim environments be shaded?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="shade.verbatim.frag"><xsl:param name="shade.verbatim" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In the FO stylesheet, if this parameter is non-zero then the
+<property>shade.verbatim.style</property> properties will be applied
+to verbatim environments.</para>
+
+<para>In the HTML stylesheet, this parameter is now deprecated. Use
+CSS instead.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/show.comments.xml b/applications/content/template/docbook/params/show.comments.xml
new file mode 100644
index 0000000..ac7bc24
--- /dev/null
+++ b/applications/content/template/docbook/params/show.comments.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="show.comments">
+<refmeta>
+<refentrytitle>show.comments</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>show.comments</refname>
+<refpurpose>Display <tag>remark</tag> elements?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="show.comments.frag">
+<xsl:param name="show.comments" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, comments will be displayed, otherwise they
+are suppressed.  Comments here refers to the <tag>remark</tag> element
+(which was called <literal>comment</literal> prior to DocBook
+4.0), not XML comments (&lt;-- like this --&gt;) which are
+unavailable.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/show.foil.number.xml b/applications/content/template/docbook/params/show.foil.number.xml
new file mode 100644
index 0000000..627c6a7
--- /dev/null
+++ b/applications/content/template/docbook/params/show.foil.number.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="show.foil.number.frag">
+<xsl:param name="show.foil.number" select="0"/>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/show.revisionflag.xml b/applications/content/template/docbook/params/show.revisionflag.xml
new file mode 100644
index 0000000..c589b01
--- /dev/null
+++ b/applications/content/template/docbook/params/show.revisionflag.xml
@@ -0,0 +1,42 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="show.revisionflag">
+<refmeta>
+<refentrytitle>show.revisionflag</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>show.revisionflag</refname>
+<refpurpose>Enable decoration of elements that have a revisionflag</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="show.revisionflag.frag">
+<xsl:param name="show.revisionflag" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If <parameter>show.revisionflag</parameter> is turned on, then the stylesheets
+may produce additional markup designed to allow a CSS stylesheet to
+highlight elements that have specific revisionflag settings.</para>
+
+<para>The markup inserted will be usually be either a &lt;span&gt; or
+&lt;div&gt; with an appropriate <literal>class</literal>
+attribute. (The value of the class attribute will be the same as the
+value of the revisionflag attribute). In some contexts, for example
+tables, where extra markup would be structurally illegal, the class
+attribute will be added to the appropriate container element.</para>
+
+<para>In general, the stylesheets only test for revisionflag in contexts
+where an importing stylesheet would have to redefine whole templates.
+Most of the revisionflag processing is expected to be done by another
+stylesheet, for example <filename>changebars.xsl</filename>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/showtoc.image.xml b/applications/content/template/docbook/params/showtoc.image.xml
new file mode 100644
index 0000000..7b1fca3
--- /dev/null
+++ b/applications/content/template/docbook/params/showtoc.image.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="showtoc.image.frag">
+<xsl:param name="showtoc.image">showtoc.gif</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/side.float.properties.xml b/applications/content/template/docbook/params/side.float.properties.xml
new file mode 100644
index 0000000..0a6d904
--- /dev/null
+++ b/applications/content/template/docbook/params/side.float.properties.xml
@@ -0,0 +1,50 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="side.float.properties">
+<refmeta>
+<refentrytitle>side.float.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>side.float.properties</refname>
+<refpurpose>Attribute set for side float container properties</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="side.float.properties.frag">
+<xsl:attribute-set name="side.float.properties">
+  <xsl:attribute name="width">2in</xsl:attribute>
+  <xsl:attribute name="padding-start">4pt</xsl:attribute>
+  <xsl:attribute name="padding-end">4pt</xsl:attribute>
+  <xsl:attribute name="padding-top">2pt</xsl:attribute>
+  <xsl:attribute name="padding-bottom">2pt</xsl:attribute>
+  <xsl:attribute name="margin-{$direction.align.start}">0pt</xsl:attribute>
+  <xsl:attribute name="margin-{$direction.align.end}">0pt</xsl:attribute>
+  <xsl:attribute name="text-align">start</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties that are applied to the
+<tag class="element">fo:block-container</tag> inside of
+a side float that is generated by the template named
+<literal>floater</literal>.
+That template generates a side float
+when the <parameter>side.float.type</parameter> is set to one
+of the values for a side float.</para>
+
+<para>If you do only <literal>left</literal> or 
+<literal>start</literal> side floats, you may want to set the
+<literal>padding-start</literal> attribute to zero.
+If you do only <literal>right</literal> or 
+<literal>end</literal> side floats, you may want to set the
+<literal>padding-end</literal> attribute to zero.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/side.region.precedence.xml b/applications/content/template/docbook/params/side.region.precedence.xml
new file mode 100644
index 0000000..e573e43
--- /dev/null
+++ b/applications/content/template/docbook/params/side.region.precedence.xml
@@ -0,0 +1,56 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="side.region.precedence"> 
+<refmeta> 
+<refentrytitle>side.region.precedence</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>side.region.precedence</refname> 
+<refpurpose>Determines side region page layout precedence</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <src:fragment xml:id="side.region.precedence.frag">
+<xsl:param name="side.region.precedence">false</xsl:param>
+</src:fragment> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>If optional side regions on a page
+are established using parameters such as
+<parameter>body.margin.inner</parameter>, 
+<parameter>region.inner.extent</parameter>, etc., then this
+parameter determines what happens at the corners where the
+side regions meet the header and footer regions.</para>
+
+<para>If the value of this parameter is <literal>true</literal>,
+then the side regions have precedence and extend higher
+and lower, while the header and footer regions are narrower
+and fit inside the side regions.</para>
+
+<para>If the value of this parameter is <literal>false</literal>
+(the default value), then the header and footer regions 
+have precedence and extend over and below the side regions.
+Any value other than <literal>true</literal> or
+<literal>false</literal> is taken to be <literal>false</literal>.</para>
+
+<para>If you need to set precedence separately for
+individual regions, then you can set four
+parameters that are normally internal to the stylesheet.
+These four parameters are normally set based
+on the value from <parameter>side.region.precedence</parameter>:</para>
+
+<programlisting>region.before.precedence
+region.after.precedence
+region.start.precedence
+region.end.precedence</programlisting>
+
+<para>See also
+<parameter>region.inner.extent</parameter>,
+<parameter>region.outer.extent</parameter>,
+<parameter>body.margin.inner</parameter>,
+<parameter>body.margin.outer</parameter>.
+</para>
+</refsection> </refentry>
diff --git a/applications/content/template/docbook/params/sidebar.float.type.xml b/applications/content/template/docbook/params/sidebar.float.type.xml
new file mode 100644
index 0000000..8c6a286
--- /dev/null
+++ b/applications/content/template/docbook/params/sidebar.float.type.xml
@@ -0,0 +1,90 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="sidebar.float.type">
+<refmeta>
+<refentrytitle>sidebar.float.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">before</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">left</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">start</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">right</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">end</refmiscinfo>     
+<refmiscinfo class="other" otherclass="value">inside</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outside</refmiscinfo> 
+</refmeta>
+<refnamediv>
+<refname>sidebar.float.type</refname>
+<refpurpose>Select type of float for sidebar elements</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="sidebar.float.type.frag">
+<xsl:param name="sidebar.float.type">none</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Selects the type of float for sidebar elements.
+</para>
+<itemizedlist>
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>none</literal></quote>, then 
+no float is used.
+</para>
+</listitem>
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>before</literal></quote>, then 
+the float appears at the top of the page.  On some processors,
+that may be the next page rather than the current page.
+</para>
+</listitem>
+
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>left</literal></quote>,
+then a left side float is used.
+</para>
+</listitem>
+
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>start</literal></quote>,
+then when the text direction is left-to-right a left side float is used.
+When the text direction is right-to-left, a right side float is used.
+</para>
+</listitem>
+
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>right</literal></quote>,
+then a right side float is used.
+</para>
+</listitem>
+
+<listitem>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>end</literal></quote>,
+then when the text direction is left-to-right a right side float is used.
+When the text direction is right-to-left, a left side float is used.
+</para>
+</listitem>
+
+<listitem>
+<para>If your XSL-FO processor supports floats positioned on the
+<quote><literal>inside</literal></quote> or
+<quote><literal>outside</literal></quote>
+of double-sided pages, then you have those two 
+options for side floats as well.
+</para>
+</listitem>
+</itemizedlist>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/sidebar.float.width.xml b/applications/content/template/docbook/params/sidebar.float.width.xml
new file mode 100644
index 0000000..cb989e4
--- /dev/null
+++ b/applications/content/template/docbook/params/sidebar.float.width.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="sidebar.float.width">
+<refmeta>
+<refentrytitle>sidebar.float.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sidebar.float.width</refname>
+<refpurpose>Set the default width for sidebars</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="sidebar.float.width.frag">
+<xsl:param name="sidebar.float.width">1in</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the default width for sidebars when used as a side float.
+The width determines the degree to which the sidebar block intrudes into
+the text area.
+</para>
+<para>If <parameter>sidebar.float.type</parameter> is
+<quote><literal>before</literal></quote> or 
+<quote><literal>none</literal></quote>, then 
+this parameter is ignored.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/sidebar.properties.xml b/applications/content/template/docbook/params/sidebar.properties.xml
new file mode 100644
index 0000000..fc98ac0
--- /dev/null
+++ b/applications/content/template/docbook/params/sidebar.properties.xml
@@ -0,0 +1,42 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="sidebar.properties">
+<refmeta>
+<refentrytitle>sidebar.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sidebar.properties</refname>
+<refpurpose>Attribute set for sidebar properties</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="sidebar.properties.frag">
+<xsl:attribute-set name="sidebar.properties" use-attribute-sets="formal.object.properties">
+  <xsl:attribute name="border-style">solid</xsl:attribute>
+  <xsl:attribute name="border-width">1pt</xsl:attribute>
+  <xsl:attribute name="border-color">black</xsl:attribute>
+  <xsl:attribute name="background-color">#DDDDDD</xsl:attribute>
+  <xsl:attribute name="padding-start">12pt</xsl:attribute>
+  <xsl:attribute name="padding-end">12pt</xsl:attribute>
+  <xsl:attribute name="padding-top">6pt</xsl:attribute>
+  <xsl:attribute name="padding-bottom">6pt</xsl:attribute>
+  <xsl:attribute name="margin-{$direction.align.start}">0pt</xsl:attribute>
+  <xsl:attribute name="margin-{$direction.align.end}">0pt</xsl:attribute>
+<!--
+  <xsl:attribute name="margin-top">6pt</xsl:attribute>
+  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
+-->
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for sidebars.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/sidebar.title.properties.xml b/applications/content/template/docbook/params/sidebar.title.properties.xml
new file mode 100644
index 0000000..f1b1d51
--- /dev/null
+++ b/applications/content/template/docbook/params/sidebar.title.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="sidebar.title.properties">
+<refmeta>
+<refentrytitle>sidebar.title.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sidebar.title.properties</refname>
+<refpurpose>Attribute set for sidebar titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="sidebar.title.properties.frag">
+<xsl:attribute-set name="sidebar.title.properties">
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="text-align">start</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for sidebars titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/simplesect.in.toc.xml b/applications/content/template/docbook/params/simplesect.in.toc.xml
new file mode 100644
index 0000000..9bc3ab5
--- /dev/null
+++ b/applications/content/template/docbook/params/simplesect.in.toc.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="simplesect.in.toc">
+<refmeta>
+<refentrytitle>simplesect.in.toc</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>simplesect.in.toc</refname>
+<refpurpose>Should <tag>simplesect</tag> elements appear in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="simplesect.in.toc.frag"><xsl:param name="simplesect.in.toc" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>simplesect</tag>s will be included in the TOC.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/slide.font.family.xml b/applications/content/template/docbook/params/slide.font.family.xml
new file mode 100644
index 0000000..e1c7541
--- /dev/null
+++ b/applications/content/template/docbook/params/slide.font.family.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="slide.font.family.frag">
+<xsl:param name="slide.font.family" >Helvetica</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the font family to use for slides bodies.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/slide.title.font.family.xml b/applications/content/template/docbook/params/slide.title.font.family.xml
new file mode 100644
index 0000000..a5a3a88
--- /dev/null
+++ b/applications/content/template/docbook/params/slide.title.font.family.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="slide.title.font.family.frag">
+<xsl:param name="slide.title.font.family">Helvetica</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the font family to use for slides titles.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/slides.js.xml b/applications/content/template/docbook/params/slides.js.xml
new file mode 100644
index 0000000..90fffae
--- /dev/null
+++ b/applications/content/template/docbook/params/slides.js.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="slides.js.frag">
+<xsl:param name="slides.js" >slides.js</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/slides.properties.xml b/applications/content/template/docbook/params/slides.properties.xml
new file mode 100644
index 0000000..daca82c
--- /dev/null
+++ b/applications/content/template/docbook/params/slides.properties.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+  <src:fragment xml:id="slides.properties.frag">
+    <xsl:attribute-set name="slides.properties">
+      <xsl:attribute name="font-family">
+        <xsl:value-of select="$slide.font.family"/>
+      </xsl:attribute>
+    </xsl:attribute-set>
+  </src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies properties that are applied to all slides.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/spacing.paras.xml b/applications/content/template/docbook/params/spacing.paras.xml
new file mode 100644
index 0000000..2f2323a
--- /dev/null
+++ b/applications/content/template/docbook/params/spacing.paras.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="spacing.paras">
+<refmeta>
+<refentrytitle>spacing.paras</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>spacing.paras</refname>
+<refpurpose>Insert additional &lt;p&gt; elements for spacing?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="spacing.paras.frag">
+<xsl:param name="spacing.paras" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When non-zero, additional, empty paragraphs are inserted in
+several contexts (for example, around informal figures), to create a
+more pleasing visual appearance in many browsers.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/speakernote.properties.xml b/applications/content/template/docbook/params/speakernote.properties.xml
new file mode 100644
index 0000000..089115a
--- /dev/null
+++ b/applications/content/template/docbook/params/speakernote.properties.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+  <src:fragment xml:id="speakernote.properties.frag">
+    <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>
+  </src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter specifies properties that are applied to all speakernotes.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/subscript.properties.xml b/applications/content/template/docbook/params/subscript.properties.xml
new file mode 100644
index 0000000..d2c7711
--- /dev/null
+++ b/applications/content/template/docbook/params/subscript.properties.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="subscript.properties">
+<refmeta>
+<refentrytitle>subscript.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>subscript.properties</refname>
+<refpurpose>Properties associated with subscripts</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="subscript.properties.frag">
+<xsl:attribute-set name="subscript.properties">
+  <xsl:attribute name="font-size">75%</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies styling properties for subscripts.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/superscript.properties.xml b/applications/content/template/docbook/params/superscript.properties.xml
new file mode 100644
index 0000000..ecf6af1
--- /dev/null
+++ b/applications/content/template/docbook/params/superscript.properties.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="superscript.properties">
+<refmeta>
+<refentrytitle>superscript.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>superscript.properties</refname>
+<refpurpose>Properties associated with superscripts</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="superscript.properties.frag">
+<xsl:attribute-set name="superscript.properties">
+  <xsl:attribute name="font-size">75%</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies styling properties for superscripts.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/suppress.footer.navigation.xml b/applications/content/template/docbook/params/suppress.footer.navigation.xml
new file mode 100644
index 0000000..430ed97
--- /dev/null
+++ b/applications/content/template/docbook/params/suppress.footer.navigation.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="suppress.footer.navigation">
+<refmeta>
+<refentrytitle>suppress.footer.navigation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>suppress.footer.navigation</refname>
+<refpurpose>Disable footer navigation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="suppress.footer.navigation.frag"><xsl:param name="suppress.footer.navigation">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, footer navigation will be suppressed.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/suppress.header.navigation.xml b/applications/content/template/docbook/params/suppress.header.navigation.xml
new file mode 100644
index 0000000..8fff081
--- /dev/null
+++ b/applications/content/template/docbook/params/suppress.header.navigation.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="suppress.header.navigation">
+<refmeta>
+<refentrytitle>suppress.header.navigation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>suppress.header.navigation</refname>
+<refpurpose>Disable header navigation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="suppress.header.navigation.frag">
+<xsl:param name="suppress.header.navigation" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, header navigation will be suppressed.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/suppress.homepage.title.xml b/applications/content/template/docbook/params/suppress.homepage.title.xml
new file mode 100644
index 0000000..38a3306
--- /dev/null
+++ b/applications/content/template/docbook/params/suppress.homepage.title.xml
@@ -0,0 +1,25 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="suppress.homepage.title">
+<refmeta>
+<refentrytitle>suppress.homepage.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>suppress.homepage.title</refname>
+<refpurpose>Suppress title on homepage?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="suppress.homepage.title.frag">
+<xsl:param name="suppress.homepage.title" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>FIXME:If non-zero, the title on the homepage is suppressed?</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/suppress.navigation.xml b/applications/content/template/docbook/params/suppress.navigation.xml
new file mode 100644
index 0000000..351fc4d
--- /dev/null
+++ b/applications/content/template/docbook/params/suppress.navigation.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="suppress.navigation">
+<refmeta>
+<refentrytitle>suppress.navigation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>suppress.navigation</refname>
+<refpurpose>Disable header and footer navigation</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="suppress.navigation.frag">
+<xsl:param name="suppress.navigation" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+If non-zero, header and footer navigation will be suppressed.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/symbol.font.family.xml b/applications/content/template/docbook/params/symbol.font.family.xml
new file mode 100644
index 0000000..8acc791
--- /dev/null
+++ b/applications/content/template/docbook/params/symbol.font.family.xml
@@ -0,0 +1,45 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="symbol.font.family">
+<refmeta>
+<refentrytitle>symbol.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>symbol.font.family</refname>
+<refpurpose>The font families to be searched for symbols outside
+    of the body font</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="symbol.font.family.frag">
+<xsl:param name="symbol.font.family">Symbol,ZapfDingbats</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A typical body or title font does not contain all
+the character glyphs that DocBook supports.  This parameter
+specifies additional fonts that should be searched for
+special characters not in the normal font.
+These symbol font names are automatically appended
+to the body or title font family name when fonts
+are specified in a 
+<tag class="attribute">font-family</tag>
+property in the FO output.
+</para>
+<para>The symbol font names should be entered as a
+comma-separated list.  The default value is
+<literal>Symbol,ZapfDingbats</literal>.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.borders.with.css.xml b/applications/content/template/docbook/params/table.borders.with.css.xml
new file mode 100644
index 0000000..2640fb9
--- /dev/null
+++ b/applications/content/template/docbook/params/table.borders.with.css.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.borders.with.css">
+<refmeta>
+<refentrytitle>table.borders.with.css</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.borders.with.css</refname>
+<refpurpose>Use CSS to specify table, row, and cell borders?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.borders.with.css.frag">
+<xsl:param name="table.borders.with.css" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, CSS will be used to draw table borders.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.caption.properties.xml b/applications/content/template/docbook/params/table.caption.properties.xml
new file mode 100644
index 0000000..8f028a5
--- /dev/null
+++ b/applications/content/template/docbook/params/table.caption.properties.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.caption.properties">
+<refmeta>
+<refentrytitle>table.caption.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.caption.properties</refname>
+<refpurpose>Properties associated with a table caption</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.caption.properties.frag">
+<xsl:attribute-set name="table.caption.properties">
+  <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for table caption element (not the table title).</para>
+
+<para>See also <parameter>table.properties</parameter>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.cell.border.color.xml b/applications/content/template/docbook/params/table.cell.border.color.xml
new file mode 100644
index 0000000..326e148
--- /dev/null
+++ b/applications/content/template/docbook/params/table.cell.border.color.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.cell.border.color">
+<refmeta>
+<refentrytitle>table.cell.border.color</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.color</refname>
+<refpurpose>Specifies the border color of table cells</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.cell.border.color.frag">
+<xsl:param condition="html" name="table.cell.border.color"></xsl:param>
+<xsl:param condition="fo" name="table.cell.border.color">black</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set the color of table cell borders. If non-zero, the value is used
+for the border coloration. See <link
+xlink:href="http://www.w3.org/TR/CSS21/syndata.html#value-def-color">CSS</link>. A
+<literal>color</literal> is either a keyword or a numerical RGB specification.
+Keywords are aqua, black, blue, fuchsia, gray, green, lime, maroon,
+navy, olive, orange, purple, red, silver, teal, white, and
+yellow.</para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.cell.border.style.xml b/applications/content/template/docbook/params/table.cell.border.style.xml
new file mode 100644
index 0000000..221a29c
--- /dev/null
+++ b/applications/content/template/docbook/params/table.cell.border.style.xml
@@ -0,0 +1,42 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.cell.border.style">
+<refmeta>
+<refentrytitle>table.cell.border.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dotted</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dashed</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">double</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">groove</refmiscinfo>                       
+<refmiscinfo class="other" otherclass="value">ridge</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">inset</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outset</refmiscinfo>          
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.style</refname>
+<refpurpose>Specifies the border style of table cells</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.cell.border.style.frag">
+<xsl:param name="table.cell.border.style">solid</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border style of table cells.</para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.cell.border.thickness.xml b/applications/content/template/docbook/params/table.cell.border.thickness.xml
new file mode 100644
index 0000000..093e38e
--- /dev/null
+++ b/applications/content/template/docbook/params/table.cell.border.thickness.xml
@@ -0,0 +1,35 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.cell.border.thickness">
+<refmeta>
+<refentrytitle>table.cell.border.thickness</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.border.thickness</refname>
+<refpurpose>Specifies the thickness of table cell borders</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.cell.border.thickness.frag">
+<xsl:param name="table.cell.border.thickness">0.5pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, specifies the thickness of borders on table
+cells. The units are points. See <link
+xlink:href="http://www.w3.org/TR/CSS21/box.html#border-width-properties">
+CSS</link></para>
+
+<note>
+  <para>To control properties of cell borders in HTML output, you must also turn on the 
+  <parameter>table.borders.with.css</parameter> parameter.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.cell.padding.xml b/applications/content/template/docbook/params/table.cell.padding.xml
new file mode 100644
index 0000000..25fd653
--- /dev/null
+++ b/applications/content/template/docbook/params/table.cell.padding.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.cell.padding">
+<refmeta>
+<refentrytitle>table.cell.padding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.cell.padding</refname>
+<refpurpose>Specifies the padding of table cells</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.cell.padding.frag">
+<xsl:attribute-set name="table.cell.padding">
+  <xsl:attribute name="padding-start">2pt</xsl:attribute>
+  <xsl:attribute name="padding-end">2pt</xsl:attribute>
+  <xsl:attribute name="padding-top">2pt</xsl:attribute>
+  <xsl:attribute name="padding-bottom">2pt</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the padding of table cells.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.entry.padding.xml b/applications/content/template/docbook/params/table.entry.padding.xml
new file mode 100644
index 0000000..cfd6aa3
--- /dev/null
+++ b/applications/content/template/docbook/params/table.entry.padding.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.entry.padding">
+<refmeta>
+<refentrytitle>table.entry.padding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.entry.padding</refname>
+<refpurpose/>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.entry.padding.frag">
+<xsl:param name="table.entry.padding">2pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME:</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.footnote.number.format.xml b/applications/content/template/docbook/params/table.footnote.number.format.xml
new file mode 100644
index 0000000..ebbd2ea
--- /dev/null
+++ b/applications/content/template/docbook/params/table.footnote.number.format.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.footnote.number.format">
+<refmeta>
+<refentrytitle>table.footnote.number.format</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
+<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.footnote.number.format</refname>
+<refpurpose>Identifies the format used for footnote numbers in tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.footnote.number.format.frag">
+<xsl:param name="table.footnote.number.format">a</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>table.footnote.number.format</parameter> specifies the format
+to use for footnote numeration (1, i, I, a, or A) in tables.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.footnote.number.symbols.xml b/applications/content/template/docbook/params/table.footnote.number.symbols.xml
new file mode 100644
index 0000000..a8d8c23
--- /dev/null
+++ b/applications/content/template/docbook/params/table.footnote.number.symbols.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.footnote.number.symbols">
+<refmeta>
+<refentrytitle>table.footnote.number.symbols</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.footnote.number.symbols</refname>
+<refpurpose>Special characters to use a footnote markers in tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.footnote.number.symbols.frag">
+<xsl:param name="table.footnote.number.symbols"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>table.footnote.number.symbols</parameter> is not the empty string,
+table footnotes will use the characters it contains as footnote symbols. For example,
+<quote>*&amp;#x2020;&amp;#x2021;&amp;#x25CA;&amp;#x2720;</quote> will identify
+footnotes with <quote>*</quote>, <quote>†</quote>, <quote>‡</quote>,
+<quote>◊</quote>, and <quote>✠</quote>. If there are more footnotes
+than symbols, the stylesheets will fall back to numbered footnotes using
+<parameter>table.footnote.number.format</parameter>.</para>
+
+<para>The use of symbols for footnotes depends on the ability of your
+processor (or browser) to render the symbols you select. Not all systems are
+capable of displaying the full range of Unicode characters. If the quoted characters
+in the preceding paragraph are not displayed properly, that's a good indicator
+that you may have trouble using those symbols for footnotes.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.footnote.properties.xml b/applications/content/template/docbook/params/table.footnote.properties.xml
new file mode 100644
index 0000000..94bed80
--- /dev/null
+++ b/applications/content/template/docbook/params/table.footnote.properties.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.footnote.properties">
+<refmeta>
+<refentrytitle>table.footnote.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.footnote.properties</refname>
+<refpurpose>Properties applied to each table footnote body
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.footnote.properties.frag">
+<xsl:attribute-set name="table.footnote.properties">
+  <xsl:attribute name="font-family"><xsl:value-of select="$body.fontset"/></xsl:attribute>
+  <xsl:attribute name="font-size"><xsl:value-of select="$footnote.font.size"/></xsl:attribute>
+  <xsl:attribute name="font-weight">normal</xsl:attribute>
+  <xsl:attribute name="font-style">normal</xsl:attribute>
+  <xsl:attribute name="space-before">2pt</xsl:attribute>
+  <xsl:attribute name="text-align"><xsl:value-of select="$alignment"/></xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is applied to the footnote-block 
+for each table footnote.
+It can be used to set the
+font-size, font-family, and other inheritable properties that will be
+applied to all table footnotes.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.frame.border.color.xml b/applications/content/template/docbook/params/table.frame.border.color.xml
new file mode 100644
index 0000000..070cb6a
--- /dev/null
+++ b/applications/content/template/docbook/params/table.frame.border.color.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.frame.border.color">
+<refmeta>
+<refentrytitle>table.frame.border.color</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.color</refname>
+<refpurpose>Specifies the border color of table frames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.frame.border.color.frag">
+<xsl:param condition="html" name="table.frame.border.color"></xsl:param>
+<xsl:param condition="fo" name="table.frame.border.color">black</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border color of table frames.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.frame.border.style.xml b/applications/content/template/docbook/params/table.frame.border.style.xml
new file mode 100644
index 0000000..881840c
--- /dev/null
+++ b/applications/content/template/docbook/params/table.frame.border.style.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.frame.border.style">
+<refmeta>
+<refentrytitle>table.frame.border.style</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">none</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dotted</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dashed</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">double</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">groove</refmiscinfo>                       
+<refmiscinfo class="other" otherclass="value">ridge</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">inset</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">outset</refmiscinfo>          
+<refmiscinfo class="other" otherclass="value">solid</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.style</refname>
+<refpurpose>Specifies the border style of table frames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.frame.border.style.frag">
+<xsl:param name="table.frame.border.style">solid</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the border style of table frames.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.frame.border.thickness.xml b/applications/content/template/docbook/params/table.frame.border.thickness.xml
new file mode 100644
index 0000000..1eaa04a
--- /dev/null
+++ b/applications/content/template/docbook/params/table.frame.border.thickness.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.frame.border.thickness">
+<refmeta>
+<refentrytitle>table.frame.border.thickness</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.frame.border.thickness</refname>
+<refpurpose>Specifies the thickness of the frame border</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.frame.border.thickness.frag">
+<xsl:param name="table.frame.border.thickness">0.5pt</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the thickness of the border on the table's frame.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.properties.xml b/applications/content/template/docbook/params/table.properties.xml
new file mode 100644
index 0000000..76340c8
--- /dev/null
+++ b/applications/content/template/docbook/params/table.properties.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.properties">
+<refmeta>
+<refentrytitle>table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.properties</refname>
+<refpurpose>Properties associated with the block surrounding a table</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.properties.frag">
+<xsl:attribute-set name="table.properties" use-attribute-sets="formal.object.properties">
+  <xsl:attribute name="keep-together.within-column">auto</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Block styling properties for tables. This parameter should really
+have been called <literal>table.block.properties</literal> or something
+like that, but we’re leaving it to avoid backwards-compatibility
+problems.</para>
+
+<para>See also <parameter>table.table.properties</parameter>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.spacer.image.xml b/applications/content/template/docbook/params/table.spacer.image.xml
new file mode 100644
index 0000000..12e6d5a
--- /dev/null
+++ b/applications/content/template/docbook/params/table.spacer.image.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.spacer.image">
+<refmeta>
+<refentrytitle>table.spacer.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.spacer.image</refname>
+<refpurpose>Invisible pixel for tabular accessibility</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.spacer.image.frag">
+<xsl:param name="table.spacer.image">graphics/spacer.gif</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>This is the 1x1 pixel, transparent pixel used for <link xlink:href="http://diveintoaccessibility.org/day_10_presenting_your_main_content_first.html">the table trick</link> to increase the accessibility of the tabular
+website presentation.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/table.table.properties.xml b/applications/content/template/docbook/params/table.table.properties.xml
new file mode 100644
index 0000000..4ee3422
--- /dev/null
+++ b/applications/content/template/docbook/params/table.table.properties.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="table.table.properties">
+<refmeta>
+<refentrytitle>table.table.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.table.properties</refname>
+<refpurpose>Properties associated with a table</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="table.table.properties.frag">
+<xsl:attribute-set name="table.table.properties">
+  <xsl:attribute name="border-before-width.conditionality">retain</xsl:attribute>
+  <xsl:attribute name="border-collapse">collapse</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The styling for tables. This parameter should really
+have been called <literal>table.properties</literal>, but that parameter
+name was inadvertently established for the block-level properties
+of the table as a whole.
+</para>
+
+<para>See also <parameter>table.properties</parameter>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/tablecolumns.extension.xml b/applications/content/template/docbook/params/tablecolumns.extension.xml
new file mode 100644
index 0000000..2ec817a
--- /dev/null
+++ b/applications/content/template/docbook/params/tablecolumns.extension.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="tablecolumns.extension">
+<refmeta>
+<refentrytitle>tablecolumns.extension</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tablecolumns.extension</refname>
+<refpurpose>Enable the table columns extension function</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="tablecolumns.extension.frag">
+<xsl:param name="tablecolumns.extension" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The table columns extension function adjusts the widths of table
+columns in the HTML result to more accurately reflect the specifications
+in the CALS table.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/target.database.document.xml b/applications/content/template/docbook/params/target.database.document.xml
new file mode 100644
index 0000000..042f017
--- /dev/null
+++ b/applications/content/template/docbook/params/target.database.document.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="target.database.document"> 
+<refmeta> 
+<refentrytitle>target.database.document</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>target.database.document</refname> 
+<refpurpose>Name of master database file for resolving
+olinks</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> 
+<src:fragment xml:id="target.database.document.frag">
+ <xsl:param name="target.database.document">olinkdb.xml</xsl:param>
+</src:fragment> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info>
+ 
+<para>
+To resolve olinks between documents, the stylesheets use a master
+database document that identifies the target datafiles for all the
+documents within the scope of the olinks. This parameter value is the
+URI of the master document to be read during processing to resolve
+olinks.  The default value is <filename>olinkdb.xml</filename>.</para>
+
+<para>The data structure of the file is defined in the
+<filename>targetdatabase.dtd</filename> DTD.  The database file
+provides the high level elements to record the identifiers, locations,
+and relationships of documents. The cross reference data for
+individual documents is generally pulled into the database using
+system entity references or XIncludes. See also
+<parameter>targets.filename</parameter>.  </para> </refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/targets.filename.xml b/applications/content/template/docbook/params/targets.filename.xml
new file mode 100644
index 0000000..de6e29c
--- /dev/null
+++ b/applications/content/template/docbook/params/targets.filename.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="targets.filename"> 
+<refmeta> 
+<refentrytitle>targets.filename</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>targets.filename</refname> 
+<refpurpose>Name of cross reference targets data file</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <src:fragment xml:id="targets.filename.frag">
+<xsl:param name="targets.filename">target.db</xsl:param>
+</src:fragment> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info>
+ 
+<para>
+In order to resolve olinks efficiently, the stylesheets can
+generate an external data file containing information about
+all potential cross reference endpoints in a document.
+This parameter lets you change the name of the generated
+file from the default name <filename>target.db</filename>.
+The name must agree with that used in the target database
+used to resolve olinks during processing.
+See also <parameter>target.database.document</parameter>.
+</para> 
+</refsection> 
+</refentry>
diff --git a/applications/content/template/docbook/params/task.properties.xml b/applications/content/template/docbook/params/task.properties.xml
new file mode 100644
index 0000000..3ded676
--- /dev/null
+++ b/applications/content/template/docbook/params/task.properties.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="task.properties">
+<refmeta>
+<refentrytitle>task.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>task.properties</refname>
+<refpurpose>Properties associated with a task</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="task.properties.frag">
+<xsl:attribute-set name="task.properties" use-attribute-sets="formal.object.properties">
+    <xsl:attribute name="keep-together.within-column">auto</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties to style the entire block containing a task element.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/template.xml b/applications/content/template/docbook/params/template.xml
new file mode 100644
index 0000000..9d35f83
--- /dev/null
+++ b/applications/content/template/docbook/params/template.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="[[NAME]]">
+<refmeta>
+<refentrytitle>[[NAME]]</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype"/>
+</refmeta>
+<refnamediv>
+<refname>[[NAME]]</refname>
+<refpurpose/>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="[[NAME]].frag">
+<xsl:param name="[[NAME]]" select=""/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME:</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/tex.math.delims.xml b/applications/content/template/docbook/params/tex.math.delims.xml
new file mode 100644
index 0000000..3a302f7
--- /dev/null
+++ b/applications/content/template/docbook/params/tex.math.delims.xml
@@ -0,0 +1,47 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="tex.math.delims">
+<refmeta>
+<refentrytitle>tex.math.delims</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tex.math.delims</refname>
+<refpurpose>Should equations output for processing by TeX be
+surrounded by math mode delimiters?</refpurpose>
+</refnamediv> 
+
+<refsynopsisdiv>
+<src:fragment xml:id="tex.math.delims.frag">
+<xsl:param name="tex.math.delims" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>For compatibility with DSSSL based DBTeXMath from Allin Cottrell
+you should set this parameter to 0.</para>
+
+<warning>
+  <para>This feature is useful for print/PDF output only if you
+  use the obsolete and now unsupported PassiveTeX XSL-FO
+  engine.</para>
+</warning>
+
+</refsection>
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>tex.math.in.alt</parameter>,
+    <parameter>passivetex.extensions</parameter></para>
+</refsection>
+
+<refsection><info><title>See Also</title></info>
+  <para>You can also use the <tag
+      class="xmlpi">dbtex delims</tag> processing
+    instruction to control whether delimiters are output.</para>
+</refsection>
+
+
+</refentry>
diff --git a/applications/content/template/docbook/params/tex.math.file.xml b/applications/content/template/docbook/params/tex.math.file.xml
new file mode 100644
index 0000000..fbc6eaa
--- /dev/null
+++ b/applications/content/template/docbook/params/tex.math.file.xml
@@ -0,0 +1,42 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="tex.math.file">
+<refmeta>
+<refentrytitle>tex.math.file</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tex.math.file</refname>
+<refpurpose>Name of temporary file for generating images from equations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="tex.math.file.frag">
+<xsl:param name="tex.math.file">tex-math-equations.tex</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Name of auxiliary file for TeX equations. This file can be
+processed by dvi2bitmap to get bitmap versions of equations for HTML
+output.</para>
+
+</refsection>
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>tex.math.in.alt</parameter>,
+    <parameter>tex.math.delims</parameter>,
+  </para>
+</refsection>
+<refsection><info><title>More information</title></info>
+  <para>For how-to documentation on embedding TeX equations and
+    generating output from them, see
+    <link
+      role="tcg"
+      xlink:href="TexMath.html"
+      >DBTeXMath</link>.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/tex.math.in.alt.xml b/applications/content/template/docbook/params/tex.math.in.alt.xml
new file mode 100644
index 0000000..ed1abb9
--- /dev/null
+++ b/applications/content/template/docbook/params/tex.math.in.alt.xml
@@ -0,0 +1,76 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="tex.math.in.alt">
+<refmeta>
+<refentrytitle>tex.math.in.alt</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo> 
+<refmiscinfo class="other" otherclass="value">plain</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">latex</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>tex.math.in.alt</refname>
+<refpurpose>TeX notation used for equations</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="tex.math.in.alt.frag">
+<xsl:param name="tex.math.in.alt"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If you want type math directly in TeX notation in equations,
+this parameter specifies notation used. Currently are supported two
+values -- <literal>plain</literal> and <literal>latex</literal>. Empty
+value means that you are not using TeX math at all.</para>
+
+<para>Preferred way for including TeX alternative of math is inside of
+<tag>textobject</tag> element. Eg.:</para>
+
+<programlisting>&lt;inlineequation&gt;
+&lt;inlinemediaobject&gt;
+&lt;imageobject&gt;
+&lt;imagedata fileref="eq1.gif"/&gt;
+&lt;/imageobject&gt;
+&lt;textobject&gt;&lt;phrase&gt;E=mc squared&lt;/phrase&gt;&lt;/textobject&gt;
+&lt;textobject role="tex"&gt;&lt;phrase&gt;E=mc^2&lt;/phrase&gt;&lt;/textobject&gt;
+&lt;/inlinemediaobject&gt;
+&lt;/inlineequation&gt;</programlisting>
+
+<para>If you are using <tag>graphic</tag> element, you can
+store TeX inside <tag>alt</tag> element:</para>
+
+<programlisting>&lt;inlineequation&gt;
+&lt;alt role="tex"&gt;a^2+b^2=c^2&lt;/alt&gt;
+&lt;graphic fileref="a2b2c2.gif"/&gt;  
+&lt;/inlineequation&gt;</programlisting>
+
+<para>If you want use this feature, you should process your FO with
+PassiveTeX, which only supports TeX math notation. When calling
+stylsheet, don't forget to specify also
+passivetex.extensions=1.</para>
+
+<para>If you want equations in HTML, just process generated file
+<filename>tex-math-equations.tex</filename> by TeX or LaTeX. Then run
+dvi2bitmap program on result DVI file. You will get images for
+equations in your document.</para>
+
+<warning>
+  <para>This feature is useful for print/PDF output only if you
+    use the obsolete and now unsupported PassiveTeX XSL-FO
+    engine.</para>
+</warning>
+
+</refsection>
+
+<refsection><info><title>Related Parameters</title></info>
+  <para><parameter>tex.math.delims</parameter>,
+    <parameter>passivetex.extensions</parameter>,
+    <parameter>tex.math.file</parameter></para>
+</refsection>
+
+</refentry>
diff --git a/applications/content/template/docbook/params/text.home.xml b/applications/content/template/docbook/params/text.home.xml
new file mode 100644
index 0000000..0bc81dd
--- /dev/null
+++ b/applications/content/template/docbook/params/text.home.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="text.home.frag">
+<xsl:param name="text.home">Home</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME:</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/text.next.xml b/applications/content/template/docbook/params/text.next.xml
new file mode 100644
index 0000000..d89b8e8
--- /dev/null
+++ b/applications/content/template/docbook/params/text.next.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="text.next.frag">
+<xsl:param name="text.next">Next</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME:</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/text.prev.xml b/applications/content/template/docbook/params/text.prev.xml
new file mode 100644
index 0000000..62d28e3
--- /dev/null
+++ b/applications/content/template/docbook/params/text.prev.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="text.prev.frag">
+<xsl:param name="text.prev">Prev</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME:</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/text.toc.xml b/applications/content/template/docbook/params/text.toc.xml
new file mode 100644
index 0000000..083b8e3
--- /dev/null
+++ b/applications/content/template/docbook/params/text.toc.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="text.toc.frag">
+<xsl:param name="text.toc">ToC</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME:</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/text.up.xml b/applications/content/template/docbook/params/text.up.xml
new file mode 100644
index 0000000..f6dca22
--- /dev/null
+++ b/applications/content/template/docbook/params/text.up.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="text.up.frag">
+<xsl:param name="text.up" >Up</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>FIXME:</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/textbgcolor.xml b/applications/content/template/docbook/params/textbgcolor.xml
new file mode 100644
index 0000000..b9aefe6
--- /dev/null
+++ b/applications/content/template/docbook/params/textbgcolor.xml
@@ -0,0 +1,26 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="textbgcolor">
+<refmeta>
+<refentrytitle>textbgcolor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>textbgcolor</refname>
+<refpurpose>The background color of the table body</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="textbgcolor.frag">
+<xsl:param name="textbgcolor">white</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The background color of the table body.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/textdata.default.encoding.xml b/applications/content/template/docbook/params/textdata.default.encoding.xml
new file mode 100644
index 0000000..b6f30a8
--- /dev/null
+++ b/applications/content/template/docbook/params/textdata.default.encoding.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="textdata.default.encoding">
+<refmeta>
+<refentrytitle>textdata.default.encoding</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>textdata.default.encoding</refname>
+<refpurpose>Default encoding of external text files which are included
+using textdata element</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="textdata.default.encoding.frag">
+<xsl:param name="textdata.default.encoding"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the encoding of any external text files included using
+<tag>textdata</tag> element. This value is used only when you do
+not specify encoding by the appropriate attribute <!-- Which is what? -->
+directly on textdata. An empty string is interpreted as the system
+default encoding.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/textinsert.extension.xml b/applications/content/template/docbook/params/textinsert.extension.xml
new file mode 100644
index 0000000..a6f1ea4
--- /dev/null
+++ b/applications/content/template/docbook/params/textinsert.extension.xml
@@ -0,0 +1,62 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+  xmlns:xlink="http://www.w3.org/1999/xlink"
+  xmlns:xi="http://www.w3.org/2001/XInclude"
+  xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  version="5.0" xml:id="textinsert.extension">
+  <refmeta>
+    <refentrytitle>textinsert.extension</refentrytitle>
+    <refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+  </refmeta>
+  <refnamediv>
+    <refname>textinsert.extension</refname>
+    <refpurpose>Enables the textinsert extension element</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <src:fragment xml:id="textinsert.extension.frag">
+  <xsl:param name="textinsert.extension" select="1"/>
+</src:fragment>
+  </refsynopsisdiv>
+  <refsection><info><title>Description</title></info>
+    <para>The textinsert extension element inserts the contents of
+      a file into the result tree (as text).</para>
+    <note>
+      <para>To use the textinsert extension element, you must use
+        either Saxon or Xalan as your XSLT processor (it doesn’t
+        work with xsltproc), along with either the DocBook Saxon
+        extensions or DocBook Xalan extensions (for more
+        information about those extensions, see <link
+          role="tcg" xlink:href="InstallingAProcessor.html#SaxonExtensions"
+          >DocBook Saxon Extensions</link> and <link
+          role="tcg" xlink:href="InstallingAProcessor.html#XalanExtensions"
+          >DocBook Xalan Extensions</link>), and you must set both
+        the <parameter>use.extensions</parameter> and
+        <parameter>textinsert.extension</parameter> parameters to
+        <literal>1</literal>.</para>
+      <para>As an alternative to using the textinsert element,
+        consider using an Xinclude element with the
+        <literal>parse="text"</literal> attribute and value
+        specified, as detailed in <link
+          role="tcg" xlink:href="ExternalCode.html#XIncludeCode"
+          >Using XInclude for text inclusions</link>.</para>
+    </note>
+  </refsection>
+  <refsection><info><title>See Also</title></info>
+    <para>You can also use the <tag
+        class="xmlpi">dbhtml-include href</tag> processing
+      instruction to insert external files — both files containing
+      plain text and files with markup content (including HTML
+      content).</para>
+  </refsection>
+  <refsection><info><title>More information</title></info>
+    <para>For how-to documentation on inserting contents of
+      external code files and other text files into output, see
+      <link
+        role="tcg" xlink:href="ExternalCode.html"
+        >External code files</link>.</para>
+    <para>For guidelines on inserting contents of
+      HTML files into output, see <link
+        role="tcg" xlink:href="InsertExtHtml.html"
+        >Inserting external HTML code</link>.</para>
+  </refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/title.font.family.xml b/applications/content/template/docbook/params/title.font.family.xml
new file mode 100644
index 0000000..f04e616
--- /dev/null
+++ b/applications/content/template/docbook/params/title.font.family.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="title.font.family">
+<refmeta>
+<refentrytitle>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>title.font.family</refname>
+<refpurpose>The default font family for titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="title.font.family.frag">
+<xsl:param name="title.font.family">sans-serif</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The title font family is used for titles (chapter, section, figure,
+etc.)
+</para>
+<para>If more than one font is required, enter the font names,
+separated by a comma, e.g.</para>
+<literallayout>
+  &lt;xsl:param name="body.font.family">Arial, SimSun, serif&lt;/xsl:param>
+
+</literallayout>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/title.margin.left.xml b/applications/content/template/docbook/params/title.margin.left.xml
new file mode 100644
index 0000000..dc50dd1
--- /dev/null
+++ b/applications/content/template/docbook/params/title.margin.left.xml
@@ -0,0 +1,65 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="title.margin.left">
+<refmeta>
+<refentrytitle>title.margin.left</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>title.margin.left</refname>
+<refpurpose>Adjust the left margin for titles</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="title.margin.left.frag">
+<xsl:param name="title.margin.left">
+  <xsl:choose>
+    <xsl:when test="$fop.extensions != 0">-4pc</xsl:when>
+    <xsl:when test="$passivetex.extensions != 0">0pt</xsl:when>
+    <xsl:otherwise>0pt</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This parameter provides
+the means of adjusting the left margin for titles
+when the XSL-FO processor being used is
+an old version of FOP (0.25 and earlier).
+It is only useful when the <parameter>fop.extensions</parameter>
+is nonzero.</para>
+
+<para>The left margin of the body region
+is calculated to include this space,
+and titles are outdented to the left outside
+the body region by this amount,
+effectively leaving titles at the intended left margin
+and the body text indented.
+Currently this method is only used for old FOP because
+it cannot properly use the <parameter>body.start.indent</parameter>
+parameter.
+</para>
+<para>
+The default value when the <parameter>fop.extensions</parameter>
+parameter is nonzero is -4pc, which means the
+body text is indented 4 picas relative to
+the titles.
+The default value when the <parameter>fop.extensions</parameter>
+parameter equals zero is 0pt, and
+the body indent should instead be specified
+using the <parameter>body.start.indent</parameter>
+parameter.
+</para>
+<para>
+If you set the value to zero, be sure to still include
+a unit indicator such as <literal>0pt</literal>, or
+the FO processor will report errors.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/titlefoil.html.xml b/applications/content/template/docbook/params/titlefoil.html.xml
new file mode 100644
index 0000000..5fa2acd
--- /dev/null
+++ b/applications/content/template/docbook/params/titlefoil.html.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="titlefoil.html.frag">
+<xsl:param name="titlefoil.html" select="concat('index', $html.ext)"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the filename used for the slides titlepage.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.bg.color.xml b/applications/content/template/docbook/params/toc.bg.color.xml
new file mode 100644
index 0000000..1389c62
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.bg.color.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="toc.bg.color.frag">
+<xsl:param name="toc.bg.color">#FFFFFF</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the background color used in the ToC frame.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.blank.graphic.xml b/applications/content/template/docbook/params/toc.blank.graphic.xml
new file mode 100644
index 0000000..bb24888
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.blank.graphic.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.blank.graphic">
+<refmeta>
+<refentrytitle>toc.blank.graphic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.blank.graphic</refname>
+<refpurpose>Use graphic for "blanks" in TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.blank.graphic.frag">
+<xsl:param name="toc.blank.graphic" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, "blanks" in the the TOC will be accomplished
+with the graphic identified by <varname>toc.spacer.image</varname>.
+</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.blank.image.xml b/applications/content/template/docbook/params/toc.blank.image.xml
new file mode 100644
index 0000000..82caa2f
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.blank.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.blank.image">
+<refmeta>
+<refentrytitle>toc.blank.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.blank.image</refname>
+<refpurpose>The image for "blanks" in the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.blank.image.frag">
+<xsl:param name="toc.blank.image">graphics/blank.gif</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.blank.graphic</varname> is non-zero, this image
+will be used to for "blanks" in the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.blank.text.xml b/applications/content/template/docbook/params/toc.blank.text.xml
new file mode 100644
index 0000000..d39aec4
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.blank.text.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.blank.text">
+<refmeta>
+<refentrytitle>toc.blank.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.blank.text</refname>
+<refpurpose>The text for "blanks" in the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.blank.text.frag">
+<xsl:param name="toc.blank.text">&#160;&#160;&#160;</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.blank.graphic</varname> is zero, this text string
+will be used for "blanks" in the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.hide.show.xml b/applications/content/template/docbook/params/toc.hide.show.xml
new file mode 100644
index 0000000..1570ec4
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.hide.show.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="toc.hide.show.frag">
+<xsl:param name="toc.hide.show" select="0"/>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/toc.html.xml b/applications/content/template/docbook/params/toc.html.xml
new file mode 100644
index 0000000..62c060c
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.html.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="toc.html.frag">
+<xsl:param name="toc.html" select="concat('toc', $html.ext)"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets the filename used for the table of contents page.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.image.xml b/applications/content/template/docbook/params/toc.image.xml
new file mode 100644
index 0000000..147155c
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="toc.image.frag">
+<xsl:param name="toc.image">active/nav-toc.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the ToC navigation icon.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.indent.width.xml b/applications/content/template/docbook/params/toc.indent.width.xml
new file mode 100644
index 0000000..449e74c
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.indent.width.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.indent.width">
+<refmeta>
+<refentrytitle>toc.indent.width</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">float</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.indent.width</refname>
+<refpurpose>Amount of indentation for TOC entries</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.indent.width.frag">
+<xsl:param name="toc.indent.width">24</xsl:param>
+<!-- inconsistant point specification? -->
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies, in points, the distance by which each level of the
+TOC is indented from its parent.</para>
+
+<para>This value is expressed in points, without
+a unit (in other words, it is a bare number). Using a bare number allows the stylesheet
+to perform calculations that would otherwise have to be performed by the FO processor
+because not all processors support expressions.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.line.properties.xml b/applications/content/template/docbook/params/toc.line.properties.xml
new file mode 100644
index 0000000..0886fa4
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.line.properties.xml
@@ -0,0 +1,44 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.line.properties">
+<refmeta>
+<refentrytitle>toc.line.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.line.properties</refname>
+<refpurpose>Properties for lines in ToCs and LoTs</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.line.properties.frag">
+<xsl:attribute-set name="toc.line.properties">
+  <xsl:attribute name="text-align-last">justify</xsl:attribute>
+  <xsl:attribute name="text-align">start</xsl:attribute>
+  <xsl:attribute name="end-indent"><xsl:value-of select="concat($toc.indent.width, 'pt')"/></xsl:attribute>
+  <xsl:attribute name="last-line-end-indent"><xsl:value-of select="concat('-', $toc.indent.width, 'pt')"/></xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties which are applied to every line in ToC (or LoT). You can
+modify them in order to change appearance of all, or some lines. For
+example, in order to make lines for chapters bold, specify the
+following in your customization layer:</para>
+
+<programlisting>&lt;xsl:attribute-set name="toc.line.properties"&gt;
+  &lt;xsl:attribute name="font-weight"&gt;
+   &lt;xsl:choose>
+    &lt;xsl:when test="self::chapter">bold&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;normal&lt;/xsl:otherwise&gt;
+   &lt;/xsl:choose>
+  &lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;</programlisting>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.list.type.xml b/applications/content/template/docbook/params/toc.list.type.xml
new file mode 100644
index 0000000..31dc465
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.list.type.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.list.type">
+<refmeta>
+<refentrytitle>toc.list.type</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">dl</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ul</refmiscinfo>
+<refmiscinfo class="other" otherclass="value">ol</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.list.type</refname>
+<refpurpose>Type of HTML list element to use for Tables of Contents</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.list.type.frag"><xsl:param name="toc.list.type">dl</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When an automatically generated Table of Contents (or List of Titles)
+is produced, this HTML element will be used to make the list.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.margin.properties.xml b/applications/content/template/docbook/params/toc.margin.properties.xml
new file mode 100644
index 0000000..25963df
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.margin.properties.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.margin.properties">
+<refmeta>
+<refentrytitle>toc.margin.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.margin.properties</refname>
+<refpurpose>Margin properties used on Tables of Contents</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.margin.properties.frag">
+<xsl:attribute-set name="toc.margin.properties">
+  <xsl:attribute name="space-before.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">2em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">2em</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>This attribute set is used on Tables of Contents. These attributes are set
+on the wrapper that surrounds the ToC block, not on each individual lines.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.max.depth.xml b/applications/content/template/docbook/params/toc.max.depth.xml
new file mode 100644
index 0000000..75902b3
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.max.depth.xml
@@ -0,0 +1,25 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.max.depth">
+<refmeta>
+<refentrytitle>toc.max.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.max.depth</refname>
+<refpurpose>How many levels should be created for each TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.max.depth.frag"><xsl:param name="toc.max.depth">8</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the maximal depth of TOC on all levels.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.pointer.graphic.xml b/applications/content/template/docbook/params/toc.pointer.graphic.xml
new file mode 100644
index 0000000..4b2cb74
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.pointer.graphic.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.pointer.graphic">
+<refmeta>
+<refentrytitle>toc.pointer.graphic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.pointer.graphic</refname>
+<refpurpose>Use graphic for TOC pointer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.pointer.graphic.frag">
+<xsl:param name="toc.pointer.graphic" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, the "pointer" in the TOC will be displayed
+with the graphic identified by <varname>toc.pointer.image</varname>.
+</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.pointer.image.xml b/applications/content/template/docbook/params/toc.pointer.image.xml
new file mode 100644
index 0000000..bf06901
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.pointer.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.pointer.image">
+<refmeta>
+<refentrytitle>toc.pointer.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.pointer.image</refname>
+<refpurpose>The image for the "pointer" in the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.pointer.image.frag">
+<xsl:param name="toc.pointer.image">graphics/arrow.gif</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.pointer.graphic</varname> is non-zero, this image
+will be used for the "pointer" in the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.pointer.text.xml b/applications/content/template/docbook/params/toc.pointer.text.xml
new file mode 100644
index 0000000..b094765
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.pointer.text.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.pointer.text">
+<refmeta>
+<refentrytitle>toc.pointer.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.pointer.text</refname>
+<refpurpose>The text for the "pointer" in the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.pointer.text.frag">
+<xsl:param name="toc.pointer.text">&#160;&gt;&#160;</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.pointer.graphic</varname> is zero, this text string
+will be used to display the "pointer" in the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.row.height.xml b/applications/content/template/docbook/params/toc.row.height.xml
new file mode 100644
index 0000000..89bac83
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.row.height.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="toc.row.height.frag">
+<xsl:param name="toc.row.height">22</xsl:param>
+</src:fragment>
+</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>
+<!-- This uses link for cross param linking, unlike most others -->
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.section.depth.xml b/applications/content/template/docbook/params/toc.section.depth.xml
new file mode 100644
index 0000000..db99f9c
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.section.depth.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.section.depth">
+<refmeta>
+<refentrytitle>toc.section.depth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.section.depth</refname>
+<refpurpose>How deep should recursive <tag>section</tag>s appear
+in the TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.section.depth.frag"><xsl:param name="toc.section.depth">2</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the depth to which recursive sections should appear in the
+TOC.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.spacer.graphic.xml b/applications/content/template/docbook/params/toc.spacer.graphic.xml
new file mode 100644
index 0000000..0a5729c
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.spacer.graphic.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.spacer.graphic">
+<refmeta>
+<refentrytitle>toc.spacer.graphic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.spacer.graphic</refname>
+<refpurpose>Use graphic for TOC spacer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.spacer.graphic.frag">
+<xsl:param name="toc.spacer.graphic" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, the indentation in the TOC will be accomplished
+with the graphic identified by <varname>toc.spacer.image</varname>.
+</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.spacer.image.xml b/applications/content/template/docbook/params/toc.spacer.image.xml
new file mode 100644
index 0000000..0d55016
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.spacer.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.spacer.image">
+<refmeta>
+<refentrytitle>toc.spacer.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.spacer.image</refname>
+<refpurpose>The image for spacing the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.spacer.image.frag">
+<xsl:param name="toc.spacer.image">graphics/blank.gif</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.spacer.graphic</varname> is non-zero, this image
+will be used to indent the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.spacer.text.xml b/applications/content/template/docbook/params/toc.spacer.text.xml
new file mode 100644
index 0000000..bfb605f
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.spacer.text.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="toc.spacer.text">
+<refmeta>
+<refentrytitle>toc.spacer.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.spacer.text</refname>
+<refpurpose>The text for spacing the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="toc.spacer.text.frag">
+<xsl:param name="toc.spacer.text">&#160;&#160;&#160;</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.spacer.graphic</varname> is zero, this text string
+will be used to indent the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/toc.width.xml b/applications/content/template/docbook/params/toc.width.xml
new file mode 100644
index 0000000..71a3c03
--- /dev/null
+++ b/applications/content/template/docbook/params/toc.width.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="toc.width.frag">
+<xsl:param name="toc.width" >250</xsl:param>
+<!-- Presumably in pixels? -->
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the width of the ToC frame in pixels.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/ua.js.xml b/applications/content/template/docbook/params/ua.js.xml
new file mode 100644
index 0000000..8242a71
--- /dev/null
+++ b/applications/content/template/docbook/params/ua.js.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="ua.js.frag">
+<xsl:param name="ua.js">ua.js</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/ulink.footnotes.xml b/applications/content/template/docbook/params/ulink.footnotes.xml
new file mode 100644
index 0000000..f17c884
--- /dev/null
+++ b/applications/content/template/docbook/params/ulink.footnotes.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="ulink.footnotes">
+<refmeta>
+<refentrytitle>ulink.footnotes</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.footnotes</refname>
+<refpurpose>Generate footnotes for <tag>ulink</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="ulink.footnotes.frag">
+<xsl:param name="ulink.footnotes" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, and if <parameter>ulink.show</parameter> also is non-zero,
+the URL of each <tag>ulink</tag> will appear as a footnote.</para>
+
+<note><para>DocBook 5 does not have an <tag>ulink</tag> element. When processing 
+DocBoook 5 documents, <parameter>ulink.footnotes</parameter> applies to all inline 
+elements that are marked up with <tag class="attribute">xlink:href</tag> attributes 
+that point to external resources.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/ulink.hyphenate.chars.xml b/applications/content/template/docbook/params/ulink.hyphenate.chars.xml
new file mode 100644
index 0000000..7419e87
--- /dev/null
+++ b/applications/content/template/docbook/params/ulink.hyphenate.chars.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="ulink.hyphenate.chars">
+<refmeta>
+<refentrytitle>ulink.hyphenate.chars</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.hyphenate.chars</refname>
+<refpurpose>List of characters to allow ulink URLs to be automatically
+hyphenated on</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="ulink.hyphenate.chars.frag">
+<xsl:param name="ulink.hyphenate.chars">/</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If the <parameter>ulink.hyphenate</parameter> parameter is not
+empty, then hyphenation of ulinks is turned on, and any character
+contained in this parameter is treated as an allowable hyphenation
+point. This and <parameter>ulink.hyphenate</parameter> work together,
+one is pointless without the other being set to a non-empty value</para>
+
+<para>The default value is <quote>/</quote>, but the parameter could
+be customized to contain other URL characters, as for example:</para>
+<programlisting>
+&lt;xsl:param name="ulink.hyphenate.chars"&gt;:/@&amp;?.#&lt;/xsl:param&gt;
+</programlisting>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/ulink.hyphenate.xml b/applications/content/template/docbook/params/ulink.hyphenate.xml
new file mode 100644
index 0000000..8aa1dfe
--- /dev/null
+++ b/applications/content/template/docbook/params/ulink.hyphenate.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="ulink.hyphenate">
+<refmeta>
+<refentrytitle>ulink.hyphenate</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.hyphenate</refname>
+<refpurpose>Allow URLs to be automatically hyphenated</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="ulink.hyphenate.frag">
+<xsl:param name="ulink.hyphenate"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If not empty, the specified character (or more generally,
+content) is added to URLs after every character included in the string
+in the <parameter>ulink.hyphenate.chars</parameter> parameter (default
+is <quote>/</quote>) to enable hyphenation of ulinks. If the character
+in this parameter is a Unicode soft hyphen (0x00AD) or Unicode
+zero-width space (0x200B), some FO processors will be able to
+reasonably hyphenate long URLs.</para>
+
+<para>Note that this hyphenation process is only applied when the
+ulink element is empty and the url attribute is reused as the link
+text.  It is not applied if the ulink has literal text content. The
+same applies in in DocBook 5, where ulink was replaced with link with
+an xlink:href attribute.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/ulink.show.xml b/applications/content/template/docbook/params/ulink.show.xml
new file mode 100644
index 0000000..6f90d58
--- /dev/null
+++ b/applications/content/template/docbook/params/ulink.show.xml
@@ -0,0 +1,37 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="ulink.show">
+<refmeta>
+<refentrytitle>ulink.show</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.show</refname>
+<refpurpose>Display URLs after <tag>ulink</tag>s?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="ulink.show.frag">
+<xsl:param name="ulink.show" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the URL of each <tag>ulink</tag> will
+appear after the text of the link. If the text of the link and the URL
+are identical, the URL is suppressed. </para>
+
+<para>See also <parameter>ulink.footnotes</parameter>.</para>
+
+<note><para>DocBook 5 does not have an <tag>ulink</tag> element. When processing 
+DocBoook 5 documents, <parameter>ulink.show</parameter> applies to all inline 
+elements that are marked up with <tag class="attribute">xlink:href</tag> attributes 
+that point to external resources.</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/ulink.target.xml b/applications/content/template/docbook/params/ulink.target.xml
new file mode 100644
index 0000000..cf1d42b
--- /dev/null
+++ b/applications/content/template/docbook/params/ulink.target.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="ulink.target">
+<refmeta>
+<refentrytitle>ulink.target</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>ulink.target</refname>
+<refpurpose>The HTML anchor target for ULinks</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="ulink.target.frag">
+<xsl:param name="ulink.target">_top</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>ulink.target</parameter> is non-zero, its value will
+be used for the <literal>target</literal> attribute
+on anchors generated for <tag>ulink</tag>s.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/up.image.xml b/applications/content/template/docbook/params/up.image.xml
new file mode 100644
index 0000000..1c3bfa2
--- /dev/null
+++ b/applications/content/template/docbook/params/up.image.xml
@@ -0,0 +1,27 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="up.image.frag">
+<xsl:param name="up.image">active/nav-up.png</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Specifies the filename of the upward-pointing navigation arrow.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/use.embed.for.svg.xml b/applications/content/template/docbook/params/use.embed.for.svg.xml
new file mode 100644
index 0000000..f7c52cc
--- /dev/null
+++ b/applications/content/template/docbook/params/use.embed.for.svg.xml
@@ -0,0 +1,33 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="use.embed.for.svg">
+<refmeta>
+<refentrytitle>use.embed.for.svg</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.embed.for.svg</refname>
+<refpurpose>Use HTML <tag>embed</tag> for SVG?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="use.embed.for.svg.frag">
+<xsl:param name="use.embed.for.svg" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, an <tag>embed</tag> element will be created for
+SVG figures. An <tag>object</tag> is <emphasis>always</emphasis> created,
+this parameter merely controls whether or not an additional <tag>embed</tag>
+is generated inside the <tag>object</tag>.</para>
+
+<para>On the plus side, this may be more portable among browsers and plug-ins.
+On the minus side, it isn't valid HTML.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/use.extensions.xml b/applications/content/template/docbook/params/use.extensions.xml
new file mode 100644
index 0000000..4dce71b
--- /dev/null
+++ b/applications/content/template/docbook/params/use.extensions.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="use.extensions">
+<refmeta>
+<refentrytitle>use.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.extensions</refname>
+<refpurpose>Enable extensions</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="use.extensions.frag">
+<xsl:param name="use.extensions" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, extensions may be used. Each extension is
+further controlled by its own parameter. But if
+<parameter>use.extensions</parameter> is zero, no extensions will
+be used.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/use.id.as.filename.xml b/applications/content/template/docbook/params/use.id.as.filename.xml
new file mode 100644
index 0000000..e5133e9
--- /dev/null
+++ b/applications/content/template/docbook/params/use.id.as.filename.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="use.id.as.filename">
+<refmeta>
+<refentrytitle>use.id.as.filename</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.id.as.filename</refname>
+<refpurpose>Use ID value of chunk elements as the filename?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="use.id.as.filename.frag">
+<xsl:param name="use.id.as.filename" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If <parameter>use.id.as.filename</parameter>
+is non-zero, the filename of chunk elements that have IDs will be
+derived from the ID value.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/use.id.function.xml b/applications/content/template/docbook/params/use.id.function.xml
new file mode 100644
index 0000000..5f4e6f7
--- /dev/null
+++ b/applications/content/template/docbook/params/use.id.function.xml
@@ -0,0 +1,32 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="use.id.function">
+<refmeta>
+<refentrytitle>use.id.function</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.id.function</refname>
+<refpurpose>Use the XPath id() function to find link targets?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="use.id.function.frag">
+<xsl:param name="use.id.function" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If 1, the stylesheets use the <function>id()</function> function
+to find the targets of cross reference elements. This is more
+efficient, but only works if your XSLT processor implements the
+<function>id()</function> function, naturally.</para>
+<para>THIS PARAMETER IS NOT SUPPORTED. IT IS ALWAYS ASSUMED TO BE 1.
+SEE xref.xsl IF YOU NEED TO TURN IT OFF.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/use.local.olink.style.xml b/applications/content/template/docbook/params/use.local.olink.style.xml
new file mode 100644
index 0000000..eb4f57a
--- /dev/null
+++ b/applications/content/template/docbook/params/use.local.olink.style.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="use.local.olink.style"> 
+<refmeta> 
+<refentrytitle>use.local.olink.style</refentrytitle> 
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo> 
+</refmeta> 
+<refnamediv> 
+<refname>use.local.olink.style</refname> 
+<refpurpose>Process olinks using xref style of current
+document</refpurpose> 
+</refnamediv> 
+<refsynopsisdiv> <src:fragment xml:id="use.local.olink.style.frag">
+<xsl:param name="use.local.olink.style" select="0"/> </src:fragment> 
+</refsynopsisdiv> 
+<refsection><info><title>Description</title></info> 
+ 
+<para>When cross reference data is collected for use by olinks, the data for each potential target includes one field containing a completely assembled cross reference string, as if it were an xref generated in that document. Other fields record the separate title, number, and element name of each target. When an olink is formed to a target from another document, the olink resolves to that preassembled string by default. If the <parameter>use.local.olink.style</parameter> parameter is set to non-zero, then instead the cross
+reference string is formed again from the target title, number, and
+element name, using the stylesheet processing the targeting document.
+Then olinks will match the xref style in the targeting document
+rather than in the target document. If  both documents are processed
+with the same stylesheet, then the results will be the same.</para> 
+</refsection> 
+</refentry>
diff --git a/applications/content/template/docbook/params/use.role.as.xrefstyle.xml b/applications/content/template/docbook/params/use.role.as.xrefstyle.xml
new file mode 100644
index 0000000..56c4470
--- /dev/null
+++ b/applications/content/template/docbook/params/use.role.as.xrefstyle.xml
@@ -0,0 +1,93 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="use.role.as.xrefstyle">
+<refmeta>
+<refentrytitle>use.role.as.xrefstyle</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.role.as.xrefstyle</refname>
+<refpurpose>Use <tag class="attribute">role</tag> attribute for
+<tag class="attribute">xrefstyle</tag> on <tag>xref</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="use.role.as.xrefstyle.frag">
+<xsl:param name="use.role.as.xrefstyle" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In DocBook documents that conform to a schema older than V4.3, this parameter allows 
+<tag class="attribute">role</tag> to serve the purpose of specifying the cross reference style.</para>
+
+<para>If non-zero, the <tag class="attribute">role</tag> attribute on
+<tag>xref</tag> will be used to select the cross reference style.
+In DocBook V4.3, the <tag class="attribute">xrefstyle</tag> attribute was added for this purpose.
+If the <tag class="attribute">xrefstyle</tag> attribute is present, 
+<tag class="attribute">role</tag> will be ignored, regardless of the setting
+of this parameter.</para>
+
+</refsection>
+
+<refsection><info><title>Example</title></info>
+
+<para>The following small stylesheet shows how to configure the
+stylesheets to make use of the cross reference style:</para>
+
+<programlisting>&lt;?xml version="1.0"?&gt;
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0"&gt;
+
+&lt;xsl:import href="../xsl/html/docbook.xsl"/&gt;
+
+&lt;xsl:output method="html"/&gt;
+
+&lt;xsl:param name="local.l10n.xml" select="document('')"/&gt;
+&lt;l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"&gt;
+  &lt;l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="en"&gt;
+   &lt;l:context name="xref"&gt;
+      &lt;l:template name="chapter" style="title" text="Chapter %n, %t"/&gt;
+      &lt;l:template name="chapter" text="Chapter %n"/&gt;
+    &lt;/l:context&gt;
+  &lt;/l:l10n&gt;
+&lt;/l:i18n&gt;
+
+&lt;/xsl:stylesheet&gt;</programlisting>
+
+<para>With this stylesheet, the cross references in the following document:</para>
+
+<programlisting>&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+                  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"&gt;
+&lt;book id="book"&gt;&lt;title&gt;Book&lt;/title&gt;
+
+&lt;preface&gt;
+&lt;title&gt;Preface&lt;/title&gt;
+
+&lt;para&gt;Normal: &lt;xref linkend="ch1"/&gt;.&lt;/para&gt;
+&lt;para&gt;Title: &lt;xref xrefstyle="title" linkend="ch1"/&gt;.&lt;/para&gt;
+
+&lt;/preface&gt;
+
+&lt;chapter id="ch1"&gt;
+&lt;title&gt;First Chapter&lt;/title&gt;
+
+&lt;para&gt;Irrelevant.&lt;/para&gt;
+
+&lt;/chapter&gt;
+&lt;/book&gt;</programlisting>
+
+<para>will appear as:</para>
+
+<informalexample>
+<para>Normal: Chapter 1.</para>
+<para>Title: Chapter 1, <emphasis>First Chapter</emphasis>.</para>
+</informalexample>
+</refsection>
+
+</refentry>
diff --git a/applications/content/template/docbook/params/use.role.for.mediaobject.xml b/applications/content/template/docbook/params/use.role.for.mediaobject.xml
new file mode 100644
index 0000000..9241ace
--- /dev/null
+++ b/applications/content/template/docbook/params/use.role.for.mediaobject.xml
@@ -0,0 +1,56 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="use.role.for.mediaobject">
+<refmeta>
+<refentrytitle>use.role.for.mediaobject</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.role.for.mediaobject</refname>
+<refpurpose>Use <tag class="attribute">role</tag> attribute 
+value for selecting which of several objects within a mediaobject to use.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="use.role.for.mediaobject.frag">
+<xsl:param name="use.role.for.mediaobject" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, the <tag class="attribute">role</tag> attribute on
+<tag>imageobject</tag>s or other objects within a <tag>mediaobject</tag> container will be used to select which object will be
+used.
+</para>
+<para>
+The order of selection when then parameter is non-zero is:
+</para>
+<orderedlist>
+<listitem>
+    <para>If the stylesheet parameter <parameter>preferred.mediaobject.role</parameter> has a value, then the object whose role equals that value is selected.</para>
+</listitem>
+<listitem>
+<para>Else if an object's role attribute has a value of
+<literal>html</literal> for HTML processing or
+<literal>fo</literal> for FO output, then the first
+of such objects is selected.
+</para>
+</listitem>
+<listitem>
+<para>Else the first suitable object is selected.</para>
+</listitem>
+</orderedlist>
+<para>
+If the value of 
+<parameter>use.role.for.mediaobject</parameter>
+is zero, then role attributes are not considered
+and the first suitable object
+with or without a role value is used.
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/use.svg.xml b/applications/content/template/docbook/params/use.svg.xml
new file mode 100644
index 0000000..8f13be0
--- /dev/null
+++ b/applications/content/template/docbook/params/use.svg.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="use.svg">
+<refmeta>
+<refentrytitle>use.svg</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>use.svg</refname>
+<refpurpose>Allow SVG in the result tree?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="use.svg.frag">
+<xsl:param name="use.svg" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, SVG will be considered an acceptable image format. SVG
+is passed through to the result tree, so correct rendering of the resulting
+diagram depends on the formatter (FO processor or web browser) that is used
+to process the output from the stylesheet.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/variablelist.as.blocks.xml b/applications/content/template/docbook/params/variablelist.as.blocks.xml
new file mode 100644
index 0000000..71e1c98
--- /dev/null
+++ b/applications/content/template/docbook/params/variablelist.as.blocks.xml
@@ -0,0 +1,62 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="variablelist.as.blocks">
+<refmeta>
+<refentrytitle>variablelist.as.blocks</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.as.blocks</refname>
+<refpurpose>Format <tag>variablelist</tag>s lists as blocks?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="variablelist.as.blocks.frag">
+<xsl:param name="variablelist.as.blocks" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>variablelist</tag>s will be formatted as
+blocks.</para>
+
+<para>If you have long terms, proper list markup in the FO case may produce
+unattractive lists. By setting this parameter, you can force the stylesheets
+to produce block markup instead of proper lists.</para>
+
+<para>You can override this setting with a processing instruction as the
+child of <tag>variablelist</tag>: <tag class="xmlpi">dbfo
+list-presentation="blocks"</tag> or <tag class="xmlpi">dbfo
+list-presentation="list"</tag>.</para>
+
+<para>When using <literal>list-presentation="list"</literal>,
+you can also control the amount of space used for the <tag>term</tag>s with 
+the <tag class="xmlpi">dbfo term-width=".25in"</tag> processing instruction,
+the <tag class="attribute">termlength</tag> attribute on <tag>variablelist</tag>,
+or allow the stylesheets to attempt to calculate the amount of space to leave based on the 
+number of letters in the longest term.  
+</para>
+
+<programlisting>  &lt;variablelist&gt;
+        &lt;?dbfo list-presentation="list"?&gt;
+        &lt;?dbfo term-width="1.5in"?&gt;
+        &lt;?dbhtml list-presentation="table"?&gt;
+        &lt;?dbhtml term-width="1.5in"?&gt;
+        &lt;varlistentry&gt;
+          &lt;term&gt;list&lt;/term&gt;
+          &lt;listitem&gt;
+                &lt;para&gt;
+                  Formatted as a list even if variablelist.as.blocks is set to 1.
+                &lt;/para&gt;
+          &lt;/listitem&gt;
+        &lt;/varlistentry&gt;
+  &lt;/variablelist&gt;</programlisting>
+
+
+</refsection>
+
+</refentry>
diff --git a/applications/content/template/docbook/params/variablelist.as.table.xml b/applications/content/template/docbook/params/variablelist.as.table.xml
new file mode 100644
index 0000000..113d2f5
--- /dev/null
+++ b/applications/content/template/docbook/params/variablelist.as.table.xml
@@ -0,0 +1,54 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="variablelist.as.table">
+<refmeta>
+<refentrytitle>variablelist.as.table</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.as.table</refname>
+<refpurpose>Format <tag>variablelist</tag>s as tables?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="variablelist.as.table.frag">
+<xsl:param name="variablelist.as.table" select="0"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero, <tag>variablelist</tag>s will be formatted as
+tables. A processing instruction exists to specify a particular width for the 
+column containing the <tag>term</tag>s:   
+<tag class="xmlpi">dbhtml term-width=".25in"</tag></para>
+
+<para>You can override this setting with a processing instruction as the
+child of <tag>variablelist</tag>: <tag class="xmlpi">dbhtml
+list-presentation="table"</tag> or <tag class="xmlpi">dbhtml
+list-presentation="list"</tag>.</para>
+
+<para>This parameter only applies to the HTML transformations. In the
+FO case, proper list markup is robust enough to handle the formatting.
+But see also <parameter>variablelist.as.blocks</parameter>.</para>
+
+<programlisting>  &lt;variablelist&gt;
+        &lt;?dbhtml list-presentation="table"?&gt;
+        &lt;?dbhtml term-width="1.5in"?&gt;
+        &lt;?dbfo list-presentation="list"?&gt;
+        &lt;?dbfo term-width="1in"?&gt;
+        &lt;varlistentry&gt;
+          &lt;term&gt;list&lt;/term&gt;
+          &lt;listitem&gt;
+                &lt;para&gt;
+                  Formatted as a table even if variablelist.as.table is set to 0.
+                &lt;/para&gt;
+          &lt;/listitem&gt;
+        &lt;/varlistentry&gt;
+  &lt;/variablelist&gt;</programlisting>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/variablelist.max.termlength.xml b/applications/content/template/docbook/params/variablelist.max.termlength.xml
new file mode 100644
index 0000000..ff56a87
--- /dev/null
+++ b/applications/content/template/docbook/params/variablelist.max.termlength.xml
@@ -0,0 +1,46 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="variablelist.max.termlength">
+<refmeta>
+<refentrytitle>variablelist.max.termlength</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">number</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.max.termlength</refname>
+<refpurpose>Specifies the longest term in variablelists</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="variablelist.max.termlength.frag">
+<xsl:param name="variablelist.max.termlength">24</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>In variablelists, the <tag>listitem</tag>
+is indented to leave room for the 
+<tag>term</tag> elements. That indent may be computed
+if it is not specified with a <tag class="attribute">termlength</tag>
+attribute on the <tag>variablelist</tag> element.
+</para>
+<para>
+The computation counts characters in the 
+<tag>term</tag> elements in the list
+to find the longest term.  However, some terms are very long
+and would produce extreme indents.  This parameter lets you
+set a maximum character count.  Any terms longer than the maximum
+would line wrap.  The default value is 24.
+</para>
+<para>
+The character counts are converted to physical widths
+by multiplying by 0.50em. There will be some variability
+in how many actual characters fit in the space
+since some characters are wider than others.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/variablelist.term.break.after.xml b/applications/content/template/docbook/params/variablelist.term.break.after.xml
new file mode 100644
index 0000000..8472f5e
--- /dev/null
+++ b/applications/content/template/docbook/params/variablelist.term.break.after.xml
@@ -0,0 +1,39 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="variablelist.term.break.after">
+<refmeta>
+<refentrytitle>variablelist.term.break.after</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.term.break.after</refname>
+<refpurpose>Generate line break after each <tag>term</tag> within a
+multi-term <tag>varlistentry</tag>?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="variablelist.term.break.after.frag">
+<xsl:param name="variablelist.term.break.after">0</xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Set a non-zero value for the
+<parameter>variablelist.term.break.after</parameter> parameter to
+generate a line break between <tag>term</tag>s in a
+multi-term <tag>varlistentry</tag>.</para>
+
+<note>
+<para>If you set a non-zero value for
+<parameter>variablelist.term.break.after</parameter>, you may also
+want to set the value of the
+<parameter>variablelist.term.separator</parameter> parameter to an
+empty string (to suppress rendering of the default comma and space
+after each <tag>term</tag>).</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/variablelist.term.properties.xml b/applications/content/template/docbook/params/variablelist.term.properties.xml
new file mode 100644
index 0000000..4a4835d
--- /dev/null
+++ b/applications/content/template/docbook/params/variablelist.term.properties.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="variablelist.term.properties">
+<refmeta>
+<refentrytitle>variablelist.term.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.term.properties</refname>
+<refpurpose>To add properties to the term elements in a variablelist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="variablelist.term.properties.frag">
+<xsl:attribute-set name="variablelist.term.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>These properties are added to the block containing a
+term in a variablelist.
+Use this attribute-set to set
+font properties or alignment, for example.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/variablelist.term.separator.xml b/applications/content/template/docbook/params/variablelist.term.separator.xml
new file mode 100644
index 0000000..f3df883
--- /dev/null
+++ b/applications/content/template/docbook/params/variablelist.term.separator.xml
@@ -0,0 +1,40 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="variablelist.term.separator">
+<refmeta>
+<refentrytitle>variablelist.term.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>variablelist.term.separator</refname>
+<refpurpose>Text to separate <tag>term</tag>s within a multi-term
+<tag>varlistentry</tag></refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="variablelist.term.separator.frag">
+<xsl:param name="variablelist.term.separator">, </xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>When a <tag>varlistentry</tag> contains multiple <tag>term</tag>
+elements, the string specified in the value of the
+<parameter>variablelist.term.separator</parameter> parameter is placed
+after each <tag>term</tag> except the last.</para>
+
+<note>
+  <para>To generate a line break between multiple <tag>term</tag>s in
+  a <tag>varlistentry</tag>, set a non-zero value for the
+  <parameter>variablelist.term.break.after</parameter> parameter. If
+  you do so, you may also want to set the value of the
+  <parameter>variablelist.term.separator</parameter> parameter to an
+  empty string (to suppress rendering of the default comma and space
+  after each <tag>term</tag>).</para>
+</note>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/verbatim.properties.xml b/applications/content/template/docbook/params/verbatim.properties.xml
new file mode 100644
index 0000000..28a368a
--- /dev/null
+++ b/applications/content/template/docbook/params/verbatim.properties.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="verbatim.properties">
+<refmeta>
+<refentrytitle>verbatim.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>verbatim.properties</refname>
+<refpurpose>Properties associated with verbatim text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="verbatim.properties.frag">
+<xsl:attribute-set name="verbatim.properties">
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">1.2em</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="wrap-option">no-wrap</xsl:attribute>
+  <xsl:attribute name="white-space-collapse">false</xsl:attribute>
+  <xsl:attribute name="white-space-treatment">preserve</xsl:attribute>
+  <xsl:attribute name="linefeed-treatment">preserve</xsl:attribute>
+  <xsl:attribute name="text-align">start</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>This attribute set is used on all verbatim environments.</para>
+</refsection>
+
+</refentry>
diff --git a/applications/content/template/docbook/params/webhelp.autolabel.xml b/applications/content/template/docbook/params/webhelp.autolabel.xml
new file mode 100644
index 0000000..de20701
--- /dev/null
+++ b/applications/content/template/docbook/params/webhelp.autolabel.xml
@@ -0,0 +1,25 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="webhelp.autolabel">
+<refmeta>
+<refentrytitle>webhelp.autolabel</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.autolabel</refname>
+<refpurpose>Should tree-like ToC use autonumbering feature?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="webhelp.autolabel.frag">
+<xsl:param name="webhelp.autolabel">0</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>To include chapter and section numbers the table of contents pane, set this parameter to 1.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/webhelp.base.dir.xml b/applications/content/template/docbook/params/webhelp.base.dir.xml
new file mode 100644
index 0000000..1dcf688
--- /dev/null
+++ b/applications/content/template/docbook/params/webhelp.base.dir.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="webhelp.base.dir">
+<refmeta>
+<refentrytitle>webhelp.base.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.base.dir</refname>
+<refpurpose>The base directory for webhelp output.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="webhelp.base.dir.frag">
+<xsl:param name="webhelp.base.dir">docs</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If specified, the <parameter>webhelp.base.dir</parameter>
+parameter identifies the output directory for webhelp. (If not
+specified, the output directory is system dependent.) By default, this
+parameter is set to <filename>docs</filename>.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/webhelp.common.dir.xml b/applications/content/template/docbook/params/webhelp.common.dir.xml
new file mode 100644
index 0000000..8d5267b
--- /dev/null
+++ b/applications/content/template/docbook/params/webhelp.common.dir.xml
@@ -0,0 +1,25 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="webhelp.common.dir">
+<refmeta>
+<refentrytitle>webhelp.common.dir</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.common.dir</refname>
+<refpurpose>Path to the directory for the common webhelp resources (JavaScript, css, common images, etc).</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="webhelp.common.dir.frag">
+<xsl:param name="webhelp.common.dir">../common/</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>By default, webhelp creates a common directory containing resources such as JavaScript files, css, common images, etc. In some cases you may prefer to store these files in a standard location on your site and point all webhelp documents to that location. You can use this parameter to control the urls written to these common resources. For example, you might set this parameter to <code>/common</code> and create a single common directory at the root of your web server.  </para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/webhelp.default.topic.xml b/applications/content/template/docbook/params/webhelp.default.topic.xml
new file mode 100644
index 0000000..4dca60e
--- /dev/null
+++ b/applications/content/template/docbook/params/webhelp.default.topic.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="webhelp.default.topic">
+<refmeta>
+<refentrytitle>webhelp.default.topic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.default.topic</refname>
+<refpurpose>The name of the file to which the start file in the webhelp base directory redirects</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="webhelp.default.topic.frag">
+<xsl:param name="webhelp.default.topic">index.html</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Currently webhelp creates a base directory and puts the output
+files in a <filename>content</filename> subdirectory. It creates a
+file in the base directory that redirects to a configured file in the
+<filename>content</filename> directory. The
+<parameter>webhelp.default.topic</parameter> parameter lets you
+configure the name of the file that is redirected to.
+<note>
+  <para>This parameter will be removed from a future version of
+  webhelp along with the <filename>content</filename>
+  directory.</para>
+</note>
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/webhelp.include.search.tab.xml b/applications/content/template/docbook/params/webhelp.include.search.tab.xml
new file mode 100644
index 0000000..131f32d
--- /dev/null
+++ b/applications/content/template/docbook/params/webhelp.include.search.tab.xml
@@ -0,0 +1,25 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="webhelp.include.search.tab">
+<refmeta>
+<refentrytitle>webhelp.include.search.tab</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.include.search.tab</refname>
+<refpurpose>Should the webhelp output include a Search tab?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="webhelp.include.search.tab.frag">
+<xsl:param name="webhelp.include.search.tab">true</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Set this parameter to 0 to suppress the search tab from webhelp output.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/webhelp.indexer.language.xml b/applications/content/template/docbook/params/webhelp.indexer.language.xml
new file mode 100644
index 0000000..1bead3c
--- /dev/null
+++ b/applications/content/template/docbook/params/webhelp.indexer.language.xml
@@ -0,0 +1,47 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="webhelp.indexer.language">
+<refmeta>
+<refentrytitle>webhelp.indexer.language</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype"></refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.indexer.language</refname>
+<refpurpose>The language to use for creating the webhelp search index.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="webhelp.indexer.language.frag">
+<xsl:param name="webhelp.indexer.language">en</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>To support stemming in the client-side webhelp stemmer, you must provide the language code. By default, the following languages are supported:
+<itemizedlist>
+  <listitem>
+    <para><code>en</code>: English</para>
+  </listitem>
+  <listitem>
+    <para><code>de</code>: German</para>
+  </listitem>
+  <listitem>
+    <para><code>fr</code>: French</para>
+  </listitem>
+  <listitem>
+    <para><code>zh</code>: Chinese</para>
+  </listitem>
+  <listitem>
+    <para><code>ja</code>: Japanese</para>
+  </listitem>
+  <listitem>
+    <para><code>ko</code>: Korean</para>
+  </listitem>
+</itemizedlist>
+See the webhelp documentation for information on adding support for additional languages.
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/webhelp.start.filename.xml b/applications/content/template/docbook/params/webhelp.start.filename.xml
new file mode 100644
index 0000000..2106de4
--- /dev/null
+++ b/applications/content/template/docbook/params/webhelp.start.filename.xml
@@ -0,0 +1,34 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="webhelp.start.filename">
+<refmeta>
+<refentrytitle>webhelp.start.filename</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.start.filename</refname>
+<refpurpose>The name of the start file in the webhelp base directory.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="webhelp.start.filename.frag">
+<xsl:param name="webhelp.start.filename">index.html</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Currently webhelp creates a base directory and puts the output
+files in a <filename>content</filename> subdirectory. It creates a
+file in the base directory that redirects to a configured file in the
+<filename>content</filename> directory. The <parameter>webhelp.start.filename</parameter> parameter lets you configure the name of the redirect file.
+<note>
+  <para>This parameter will be removed from a future version of
+  webhelp along with the <filename>content</filename>
+  directory.</para>
+</note>
+</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/webhelp.tree.cookie.id.xml b/applications/content/template/docbook/params/webhelp.tree.cookie.id.xml
new file mode 100644
index 0000000..8f790be
--- /dev/null
+++ b/applications/content/template/docbook/params/webhelp.tree.cookie.id.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="webhelp.tree.cookie.id">
+<refmeta>
+<refentrytitle>webhelp.tree.cookie.id</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>webhelp.tree.cookie.id</refname>
+<refpurpose>Controls how the cookie that stores the webhelp toc state is named.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="webhelp.tree.cookie.id.frag">
+<xsl:param name="webhelp.tree.cookie.id" select="concat( 'treeview-', count(//node()) )"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The webhelp output does not use a frameset. Instead, the table of contents is a div on each page. To preserve the state of the table of contents as the user navigates from page to page, webhelp stores the state in a cookie and reads that cookie when you get to the next page. If you've published several webhelp documents on the same domain, it is important that each cookie have a unique id. In lieu of calling on a GUID generator, by default this parameter is just set to the number of nodes in the document on the assumption that it is unlikely that you will have more than one document with the exact number of nodes. A more optimal solution would be for the user to pass in some unique, stable identifier from the build system to use as the webhelp cookie id. For example, if you have safeguards in place to ensure that the xml:id of the root element of each document will be unique on your site, then you could set webhelptree.cookie.id as follows:
+<programlisting><![CDATA[
+  <xsl:param name="webhelp.tree.cookie.id">
+    <xsl:choose>
+      <xsl:when test="/*/@xml:id">
+	<xsl:value-of select="concat('treeview-',/*/@xml:id)"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="concat( 'treeview-', count(//node()) )"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>]]>
+  </programlisting>
+ </para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/wordml.template.xml b/applications/content/template/docbook/params/wordml.template.xml
new file mode 100644
index 0000000..4dae8a8
--- /dev/null
+++ b/applications/content/template/docbook/params/wordml.template.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="wordml.template">
+<refmeta>
+<refentrytitle>wordml.template</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>wordml.template</refname>
+<refpurpose>Specify the template WordML document</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="wordml.template.frag">
+<xsl:param name="wordml.template"></xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>wordml.template</parameter> parameter specifies a WordML document to use as a template for the generated document.  The template document is used to define the (extensive) headers for the generated document, in particular the paragraph and character styles that are used to format the various elements.  Any content in the template document is ignored.</para>
+
+<para>A template document is used in order to allow maintenance of the paragraph and character styles to be done using Word itself, rather than these XSL stylesheets.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/writing.mode.xml b/applications/content/template/docbook/params/writing.mode.xml
new file mode 100644
index 0000000..c695933
--- /dev/null
+++ b/applications/content/template/docbook/params/writing.mode.xml
@@ -0,0 +1,83 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="writing.mode">
+<refmeta>
+<refentrytitle>writing.mode</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>writing.mode</refname>
+<refpurpose>Direction of text flow based on locale</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="writing.mode.frag">
+<xsl:param name="writing.mode">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">writing-mode</xsl:with-param>
+    <xsl:with-param name="lang">
+      <xsl:call-template name="l10n.language">
+        <xsl:with-param name="target" select="/*[1]"/>
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:param>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Sets direction of text flow and text alignment based on locale.
+The value is normally taken from the gentext file for the 
+lang attribute of the document's root element, using the 
+key name 'writing-mode' to look it up in the gentext file.
+But the param can also be
+set on the command line to override that gentext value.
+</para>
+<para>Accepted values are:
+<variablelist>
+  <varlistentry>
+    <term>lr-tb</term>
+    <listitem>
+      <para>Left-to-right text flow in each line, lines stack top to bottom.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>rl-tb</term>
+    <listitem>
+      <para>Right-to-left text flow in each line, lines stack top to bottom.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>tb-rl</term>
+    <listitem>
+      <para>Top-to-bottom text flow in each vertical line, lines stack right to left.
+      Supported by only a few XSL-FO processors. Not supported in HTML output.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>lr</term>
+    <listitem>
+      <para>Shorthand for lr-tb.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>rl</term>
+    <listitem>
+      <para>Shorthand for rl-tb.</para>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>tb</term>
+    <listitem>
+      <para>Shorthand for tb-rl.</para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/xbCollapsibleLists.js.xml b/applications/content/template/docbook/params/xbCollapsibleLists.js.xml
new file mode 100644
index 0000000..b30391f
--- /dev/null
+++ b/applications/content/template/docbook/params/xbCollapsibleLists.js.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="xbCollapsibleLists.js.frag">
+<xsl:param name="xbCollapsibleLists.js">xbCollapsibleLists.js</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/xbDOM.js.xml b/applications/content/template/docbook/params/xbDOM.js.xml
new file mode 100644
index 0000000..a699e9c
--- /dev/null
+++ b/applications/content/template/docbook/params/xbDOM.js.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="xbDOM.js.frag">
+<xsl:param name="xbDOM.js">xbDOM.js</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/xbLibrary.js.xml b/applications/content/template/docbook/params/xbLibrary.js.xml
new file mode 100644
index 0000000..fe2d8fe
--- /dev/null
+++ b/applications/content/template/docbook/params/xbLibrary.js.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="xbLibrary.js.frag">
+<xsl:param name="xbLibrary.js">xbLibrary.js</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/xbStyle.js.xml b/applications/content/template/docbook/params/xbStyle.js.xml
new file mode 100644
index 0000000..b587573
--- /dev/null
+++ b/applications/content/template/docbook/params/xbStyle.js.xml
@@ -0,0 +1,28 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          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>
+<src:fragment xml:id="xbStyle.js.frag">
+<xsl:param name="xbStyle.js">xbStyle.js</xsl:param>
+</src:fragment>
+</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>
diff --git a/applications/content/template/docbook/params/xep.extensions.xml b/applications/content/template/docbook/params/xep.extensions.xml
new file mode 100644
index 0000000..8ac2520
--- /dev/null
+++ b/applications/content/template/docbook/params/xep.extensions.xml
@@ -0,0 +1,31 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="xep.extensions">
+<refmeta>
+<refentrytitle>xep.extensions</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xep.extensions</refname>
+<refpurpose>Enable XEP extensions?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="xep.extensions.frag"><xsl:param name="xep.extensions" select="0"/></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>If non-zero,
+<link xlink:href="http://www.renderx.com/">XEP</link>
+extensions will be used. XEP extensions consists of PDF bookmarks,
+document information and better index processing.
+</para>
+
+<para>This parameter can also affect which graphics file formats
+are supported</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/xep.index.item.properties.xml b/applications/content/template/docbook/params/xep.index.item.properties.xml
new file mode 100644
index 0000000..b1db129
--- /dev/null
+++ b/applications/content/template/docbook/params/xep.index.item.properties.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="xep.index.item.properties">
+<refmeta>
+<refentrytitle>xep.index.item.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xep.index.item.properties</refname>
+<refpurpose>Properties associated with XEP index-items</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="xep.index.item.properties.frag">
+<xsl:attribute-set name="xep.index.item.properties" use-attribute-sets="index.page.number.properties">
+  <xsl:attribute name="merge-subsequent-page-numbers">true</xsl:attribute>
+  <xsl:attribute name="link-back">true</xsl:attribute>
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>Properties associated with XEP index-items, which generate
+page numbers in an index processed by XEP. For more info see
+the XEP documentation section "Indexes" in
+<uri xlink:href="http://www.renderx.com/reference.html#Indexes">http://www.renderx.com/reference.html#Indexes</uri>.</para>
+
+<para>This attribute-set also adds by default any properties from the
+<tag class="attribute">index.page.number.properties</tag>
+attribute-set.</para>
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/xref.label-page.separator.xml b/applications/content/template/docbook/params/xref.label-page.separator.xml
new file mode 100644
index 0000000..355fc4a
--- /dev/null
+++ b/applications/content/template/docbook/params/xref.label-page.separator.xml
@@ -0,0 +1,38 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="xref.label-page.separator">
+<refmeta>
+<refentrytitle>xref.label-page.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.label-page.separator</refname>
+<refpurpose>Punctuation or space separating label from page number in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="xref.label-page.separator.frag"><xsl:param name="xref.label-page.separator"><xsl:text> </xsl:text></xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both label and page
+but no title,
+then the value of this parameter is inserted between
+label and page number in the output.  
+If a title is included, then other separators are used.
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/xref.label-title.separator.xml b/applications/content/template/docbook/params/xref.label-title.separator.xml
new file mode 100644
index 0000000..3d6e222
--- /dev/null
+++ b/applications/content/template/docbook/params/xref.label-title.separator.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="xref.label-title.separator">
+<refmeta>
+<refentrytitle>xref.label-title.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.label-title.separator</refname>
+<refpurpose>Punctuation or space separating label from title in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="xref.label-title.separator.frag"><xsl:param name="xref.label-title.separator">: </xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both label and title,
+then the value of this parameter is inserted between
+label and title in the output.  
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/xref.properties.xml b/applications/content/template/docbook/params/xref.properties.xml
new file mode 100644
index 0000000..6438f6c
--- /dev/null
+++ b/applications/content/template/docbook/params/xref.properties.xml
@@ -0,0 +1,29 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="xref.properties">
+<refmeta>
+<refentrytitle>xref.properties</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.properties</refname>
+<refpurpose>Properties associated with cross-reference text</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="xref.properties.frag">
+<xsl:attribute-set name="xref.properties">
+</xsl:attribute-set>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This attribute set is used to set properties
+on cross reference text.</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/xref.title-page.separator.xml b/applications/content/template/docbook/params/xref.title-page.separator.xml
new file mode 100644
index 0000000..32ef9f1
--- /dev/null
+++ b/applications/content/template/docbook/params/xref.title-page.separator.xml
@@ -0,0 +1,36 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="xref.title-page.separator">
+<refmeta>
+<refentrytitle>xref.title-page.separator</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.title-page.separator</refname>
+<refpurpose>Punctuation or space separating title from page number in xref</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="xref.title-page.separator.frag"><xsl:param name="xref.title-page.separator"><xsl:text> </xsl:text></xsl:param></src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>
+This parameter allows you to control the punctuation of certain
+types of generated cross reference text.
+When cross reference text is generated for an 
+<tag class="element">xref</tag> or 
+<tag class="element">olink</tag> element
+using an <tag class="attribute">xrefstyle</tag> attribute
+that makes use of the <literal>select:</literal> feature,
+and the selected components include both title and page number,
+then the value of this parameter is inserted between
+title and page number in the output.  
+</para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/params/xref.with.number.and.title.xml b/applications/content/template/docbook/params/xref.with.number.and.title.xml
new file mode 100644
index 0000000..06fcc7e
--- /dev/null
+++ b/applications/content/template/docbook/params/xref.with.number.and.title.xml
@@ -0,0 +1,30 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+          version="5.0" xml:id="xref.with.number.and.title">
+<refmeta>
+<refentrytitle>xref.with.number.and.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>xref.with.number.and.title</refname>
+<refpurpose>Use number and title in cross references</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment xml:id="xref.with.number.and.title.frag">
+<xsl:param name="xref.with.number.and.title" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>A cross reference may include the number (for example, the number of
+an example or figure) and the <tag>title</tag> which is a required child of some
+targets. This parameter inserts both the relevant number as well as
+the title into the link. </para>
+
+</refsection>
+</refentry>
diff --git a/applications/content/template/docbook/profiling/profile-mode.xsl b/applications/content/template/docbook/profiling/profile-mode.xsl
new file mode 100644
index 0000000..1c8660b
--- /dev/null
+++ b/applications/content/template/docbook/profiling/profile-mode.xsl
@@ -0,0 +1,245 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:saxon="http://icl.com/saxon"
+                exclude-result-prefixes="saxon"
+                version="1.0">
+
+<!-- Should be base URI for imagedata and so on fixed? -->
+<xsl:param name="profile.baseuri.fixup" select="true()"/>
+
+<!-- Copy all non-element nodes -->
+<xsl:template match="@*|text()|comment()|processing-instruction()" mode="profile">
+  <xsl:copy/>
+</xsl:template>
+
+<!-- Profile elements based on input parameters -->
+<xsl:template match="*" mode="profile">
+
+  <xsl:variable name="arch.content">
+    <xsl:if test="@arch">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.arch"/>
+        <xsl:with-param name="b" select="@arch"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="arch.ok" select="not(@arch) or not($profile.arch) or
+                                       $arch.content != '' or @arch = ''"/>
+
+  <xsl:variable name="audience.content">
+    <xsl:if test="@audience">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.audience"/>
+        <xsl:with-param name="b" select="@audience"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="audience.ok" 
+                        select="not(@audience) or not($profile.audience) or
+                                $audience.content != '' or @audience = ''"/>
+
+  <xsl:variable name="condition.content">
+    <xsl:if test="@condition">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.condition"/>
+        <xsl:with-param name="b" select="@condition"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="condition.ok" select="not(@condition) or not($profile.condition) or
+                                            $condition.content != '' or @condition = ''"/>
+
+  <xsl:variable name="conformance.content">
+    <xsl:if test="@conformance">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.conformance"/>
+        <xsl:with-param name="b" select="@conformance"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="conformance.ok" select="not(@conformance) or not($profile.conformance) or
+                                              $conformance.content != '' or @conformance = ''"/>
+
+  <xsl:variable name="lang.content">
+    <xsl:if test="@lang | @xml:lang">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.lang"/>
+        <xsl:with-param name="b" select="(@lang | @xml:lang)[1]"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="lang.ok" select="not(@lang | @xml:lang) or not($profile.lang) or
+                                       $lang.content != '' or @lang = '' or @xml:lang = ''"/>
+
+  <xsl:variable name="os.content">
+    <xsl:if test="@os">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.os"/>
+        <xsl:with-param name="b" select="@os"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="os.ok" select="not(@os) or not($profile.os) or
+                                     $os.content != '' or @os = ''"/>
+
+  <xsl:variable name="revision.content">
+    <xsl:if test="@revision">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.revision"/>
+        <xsl:with-param name="b" select="@revision"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="revision.ok" select="not(@revision) or not($profile.revision) or
+                                           $revision.content != '' or @revision = ''"/>
+
+  <xsl:variable name="revisionflag.content">
+    <xsl:if test="@revisionflag">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.revisionflag"/>
+        <xsl:with-param name="b" select="@revisionflag"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="revisionflag.ok" select="not(@revisionflag) or not($profile.revisionflag) or
+                                               $revisionflag.content != '' or @revisionflag = ''"/>
+
+  <xsl:variable name="role.content">
+    <xsl:if test="@role">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.role"/>
+        <xsl:with-param name="b" select="@role"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="role.ok" select="not(@role) or not($profile.role) or
+                                       $role.content != '' or @role = ''"/>
+
+  <xsl:variable name="security.content">
+    <xsl:if test="@security">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.security"/>
+        <xsl:with-param name="b" select="@security"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="security.ok" select="not(@security) or not($profile.security) or
+                                           $security.content != '' or @security = ''"/>
+
+  <xsl:variable name="status.content">
+    <xsl:if test="@status">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.status"/>
+        <xsl:with-param name="b" select="@status"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="status.ok" select="not(@status) or not($profile.status) or
+                                           $status.content != '' or @status = ''"/>
+
+  <xsl:variable name="userlevel.content">
+    <xsl:if test="@userlevel">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.userlevel"/>
+        <xsl:with-param name="b" select="@userlevel"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="userlevel.ok" select="not(@userlevel) or not($profile.userlevel) or
+                                            $userlevel.content != '' or @userlevel = ''"/>
+
+  <xsl:variable name="vendor.content">
+    <xsl:if test="@vendor">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.vendor"/>
+        <xsl:with-param name="b" select="@vendor"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="vendor.ok" select="not(@vendor) or not($profile.vendor) or
+                                         $vendor.content != '' or @vendor = ''"/>
+
+  <xsl:variable name="wordsize.content">
+    <xsl:if test="@wordsize">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.wordsize"/>
+        <xsl:with-param name="b" select="@wordsize"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="wordsize.ok" 
+                        select="not(@wordsize) or not($profile.wordsize) or
+                                $wordsize.content != '' or @wordsize = ''"/>
+
+  <xsl:variable name="attribute.content">
+    <xsl:if test="@*[local-name()=$profile.attribute]">
+      <xsl:call-template name="cross.compare">
+        <xsl:with-param name="a" select="$profile.value"/>
+        <xsl:with-param name="b" select="@*[local-name()=$profile.attribute]"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="attribute.ok" 
+                select="not(@*[local-name()=$profile.attribute]) or 
+                        not($profile.value) or $attribute.content != '' or 
+                        @*[local-name()=$profile.attribute] = '' or 
+                        not($profile.attribute)"/>
+
+  <xsl:if test="$arch.ok and 
+                $audience.ok and 
+                $condition.ok and 
+                $conformance.ok and 
+                $lang.ok and 
+                $os.ok and 
+                $revision.ok and 
+                $revisionflag.ok and 
+                $role.ok and 
+                $security.ok and 
+                $status.ok and 
+                $userlevel.ok and 
+                $vendor.ok and 
+                $wordsize.ok and 
+                $attribute.ok">
+    <xsl:copy>
+      <xsl:apply-templates mode="profile" select="@*"/>
+
+      <!-- Entity references must be replaced with filereferences for temporary tree -->
+      <xsl:if test="@entityref and $profile.baseuri.fixup">
+        <xsl:attribute name="fileref">
+          <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+        </xsl:attribute>
+      </xsl:if>
+
+      <!-- xml:base is eventually added to the root element -->
+      <xsl:if test="not(../..) and $profile.baseuri.fixup">
+        <xsl:call-template name="add-xml-base"/>
+      </xsl:if>
+
+      <xsl:apply-templates select="node()" mode="profile"/>
+    </xsl:copy>
+  </xsl:if>
+</xsl:template>
+
+<!-- Returns non-empty string if list in $b contains one ore more values from list $a -->
+<xsl:template name="cross.compare">
+  <xsl:param name="a"/>
+  <xsl:param name="b"/>
+  <xsl:param name="sep" select="$profile.separator"/>
+  <xsl:variable name="head" select="substring-before(concat($a, $sep), $sep)"/>
+  <xsl:variable name="tail" select="substring-after($a, $sep)"/>
+<!-- <xsl:message> -->
+<!-- a="<xsl:value-of select="$a"/>" -->
+<!-- a="<xsl:value-of select="normalize-space($a)"/>" -->
+<!-- head="<xsl:value-of select="$head"/>" -->
+<!-- tail="<xsl:value-of select="$tail"/>" -->
+<!-- </xsl:message> -->
+  <xsl:if test="contains(concat($sep, $b, $sep), concat($sep, $head, $sep)) or normalize-space($a) = '' ">1</xsl:if>
+  <xsl:if test="$tail">
+    <xsl:call-template name="cross.compare">
+      <xsl:with-param name="a" select="$tail"/>
+      <xsl:with-param name="b" select="$b"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/profiling/profile.xsl b/applications/content/template/docbook/profiling/profile.xsl
new file mode 100644
index 0000000..b188fbb
--- /dev/null
+++ b/applications/content/template/docbook/profiling/profile.xsl
@@ -0,0 +1,56 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<!-- Include common profiling stylesheet -->
+<xsl:import href="profile-mode.xsl"/>
+
+<!-- This file must be included, because profile-mode is using templates from it -->
+<xsl:import href="../common/stripns.xsl"/>
+
+<!-- In the two pass processing there is no need for base URI fixup -->
+<xsl:param name="profile.baseuri.fixup" select="false()"/>
+
+<!-- If you need to validate profiled content against DTD, 
+     create customization that will import this stylesheet and
+     will use xsl:output (see example bellow) to output reference 
+     to the desired DTD version. --> 
+<!-- Generate DocBook instance with correct DOCTYPE -->
+<!--
+<xsl:output method="xml" 
+            doctype-public="-//OASIS//DTD DocBook XML V4.5//EN"
+            doctype-system="http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"/>
+-->
+
+<!-- Profiling parameters -->
+<xsl:param name="profile.arch" select="''"/>
+<xsl:param name="profile.audience" select="''"/>
+<xsl:param name="profile.condition" select="''"/>
+<xsl:param name="profile.conformance" select="''"/>
+<xsl:param name="profile.lang" select="''"/>
+<xsl:param name="profile.os" select="''"/>
+<xsl:param name="profile.revision" select="''"/>
+<xsl:param name="profile.revisionflag" select="''"/>
+<xsl:param name="profile.role" select="''"/>
+<xsl:param name="profile.security" select="''"/>
+<xsl:param name="profile.status" select="''"/>
+<xsl:param name="profile.userlevel" select="''"/>
+<xsl:param name="profile.vendor" select="''"/>
+<xsl:param name="profile.wordsize" select="''"/>
+<xsl:param name="profile.attribute" select="''"/>
+<xsl:param name="profile.value" select="''"/>
+<xsl:param name="profile.separator" select="';'"/>
+
+<xsl:param name="exsl.node.set.available"> 
+  <xsl:choose>
+    <xsl:when xmlns:exsl="http://exslt.org/common" exsl:foo="" test="function-available('exsl:node-set') or contains(system-property('xsl:vendor'), 'Apache Software Foundation')">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<!-- Call common profiling mode -->
+<xsl:template match="/">
+  <xsl:apply-templates select="." mode="profile"/>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/profiling/strip-attributes.xsl b/applications/content/template/docbook/profiling/strip-attributes.xsl
new file mode 100644
index 0000000..d6f55fb
--- /dev/null
+++ b/applications/content/template/docbook/profiling/strip-attributes.xsl
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:output method="xml"/>
+
+<xsl:param name="attributes" select="''"/>
+
+<xsl:variable name="strip-attributes"
+              select="concat(' ', normalize-space($attributes), ' ')"/>
+
+<xsl:template match="@*|text()|comment()|processing-instruction()">
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="*">
+  <xsl:copy>
+    <xsl:for-each select="@*">
+      <xsl:if test="not(contains($strip-attributes, concat(' ',name(.),' ')))">
+        <xsl:copy-of select="."/>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:apply-templates select="node()"/>
+  </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/profiling/xsl2profile.xsl b/applications/content/template/docbook/profiling/xsl2profile.xsl
new file mode 100644
index 0000000..b6648aa
--- /dev/null
+++ b/applications/content/template/docbook/profiling/xsl2profile.xsl
@@ -0,0 +1,159 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xslo="http://www.w3.org/1999/XSL/TransformAlias"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                exclude-result-prefixes="fo"
+                version="1.0">
+
+<xsl:include href="../lib/lib.xsl"/>
+
+<xsl:output method="xml" encoding="US-ASCII"/>
+
+<xsl:namespace-alias stylesheet-prefix="xslo" result-prefix="xsl"/>
+
+<xsl:preserve-space elements="*"/>
+
+<xsl:template match="/">
+  <xsl:comment>This file was created automatically by xsl2profile</xsl:comment>
+  <xsl:comment>from the DocBook XSL stylesheets.</xsl:comment>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- Make sure we override some templates and parameters appropriately for XHTML -->
+<xsl:template match="xsl:stylesheet">
+  <xsl:copy>
+    <xsl:attribute name="exslt:dummy" xmlns:exslt="http://exslt.org/common">dummy</xsl:attribute>
+    <xsl:attribute name="ng:dummy" xmlns:ng="http://docbook.org/docbook-ng">dummy</xsl:attribute>
+    <xsl:attribute name="db:dummy" xmlns:db="http://docbook.org/ns/docbook">dummy</xsl:attribute>
+    <xsl:if test="not(@extension-element-prefixes)">
+      <xsl:attribute name="extension-element-prefixes">exslt</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="not(@exclude-result-prefixes)">
+      <xsl:attribute name="exclude-result-prefixes">exslt</xsl:attribute>
+    </xsl:if>
+    <xsl:for-each select="@*">
+      <xsl:choose>
+        <xsl:when test="local-name(.) = 'extension-element-prefixes' or
+                        local-name(.) = 'exclude-result-prefixes'">
+          <xsl:attribute name="{local-name(.)}"><xsl:value-of select="concat(., ' exslt')"/></xsl:attribute>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:attribute name="{local-name(.)}"><xsl:value-of select="."/></xsl:attribute>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="*">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="comment()|processing-instruction()|text()">
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="xsl:template[@match='/']">
+  <xslo:include href="../profiling/profile-mode.xsl"/>
+  <xslo:variable name="profiled-content">
+    <xslo:choose>
+      <xslo:when test="*/self::ng:* or */self::db:*">
+        <xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message>
+        <xslo:variable name="stripped-content">
+          <xslo:apply-templates select="/" mode="stripNS"/>
+        </xslo:variable>
+        <xslo:message>Note: namesp. cut : processing stripped document</xslo:message>
+        <xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/>
+      </xslo:when>
+      <xslo:otherwise>
+        <xslo:apply-templates select="/" mode="profile"/>
+      </xslo:otherwise>
+    </xslo:choose>
+  </xslo:variable>
+  <xslo:variable name="profiled-nodes" select="exslt:node-set($profiled-content)"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="correct"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="xsl:template[@name='hhc-main' or @name='hhp-main' or @name='hhk' or @name='hh-map' or @name='hh-alias' or @name='etoc'] | xsl:variable[@name='raw.help.title']">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="correct"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="*[starts-with(@select, '/')]" mode="correct">
+  <xsl:copy>
+    <xsl:for-each select="@*">
+      <xsl:choose>
+        <xsl:when test="local-name(.) = 'select' and string(.) =  '/'">
+          <xsl:attribute name="{local-name(.)}">$profiled-nodes</xsl:attribute>
+        </xsl:when>
+        <xsl:when test="local-name(.) = 'select' and starts-with(., '/')">
+          <xsl:attribute name="{local-name(.)}">$profiled-nodes<xsl:value-of select="."/></xsl:attribute>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:attribute name="{local-name(.)}"><xsl:value-of select="."/></xsl:attribute>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+    <xsl:apply-templates mode="correct"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match='*[contains(@*, "key(&apos;id&apos;,$rootid)")]' mode="correct" priority="2">
+  <xsl:copy>
+    <xsl:for-each select="@*">
+      <xsl:choose>
+        <xsl:when test='contains(., "key(&apos;id&apos;,$rootid)")'>
+          <xsl:attribute name="{local-name(.)}">
+            <xsl:call-template name="string.subst">
+              <xsl:with-param name="string" select="."/>
+              <xsl:with-param name="target">key('id',$rootid)</xsl:with-param>
+              <xsl:with-param name="replacement">$profiled-nodes//*[@id=$rootid]</xsl:with-param>
+            </xsl:call-template>
+          </xsl:attribute>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:attribute name="{local-name(.)}"><xsl:value-of select="."/></xsl:attribute>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+    <xsl:apply-templates mode="correct"/>
+  </xsl:copy>
+</xsl:template>
+
+<!-- FO stylesheet has apply-templates without select, we must detect it by context -->
+<xsl:template match="fo:root//xsl:apply-templates" mode="correct">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:attribute name="select">$profiled-nodes/node()</xsl:attribute>
+    <xsl:apply-templates mode="correct"/>
+  </xsl:copy>
+</xsl:template>
+
+<!-- DB5 namespace stripping is already done  -->
+<xsl:template match="xsl:when[contains(@test, 'self::db')]" mode="correct">
+  <xsl:copy>
+    <xsl:attribute name="test">false()</xsl:attribute>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="*" mode="correct">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="correct"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="comment()|processing-instruction()|text()" mode="correct">
+  <xsl:copy/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/roundtrip/blocks-spec.xml b/applications/content/template/docbook/roundtrip/blocks-spec.xml
new file mode 100644
index 0000000..d8ab005
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/blocks-spec.xml
@@ -0,0 +1,11 @@
+<group:root xmlns:group='http://www.explain.com.au/grouping'>
+  <bibliography styles='bibliography bibliography-title'>
+    <bibliodiv styles='bibliodiv bibliodiv-title'/>
+  </bibliography>
+  <glossary styles='glossary glossary-title'>
+    <glossdiv styles='glossdiv glossdiv-title'/>
+  </glossary>
+  <qandaset styles='qandaset qandaset-title'>
+    <qandadiv styles='qandadiv qandadiv-title'/>
+  </qandaset>
+</group:root>
diff --git a/applications/content/template/docbook/roundtrip/blocks2dbk.dtd b/applications/content/template/docbook/roundtrip/blocks2dbk.dtd
new file mode 100644
index 0000000..4d1ea04
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/blocks2dbk.dtd
@@ -0,0 +1,76 @@
+  <!ENTITY components-extra ""> <!-- for customisation -->
+  <!ENTITY components "dbk:appendix |
+    dbk:article |
+    dbk:book |
+    dbk:chapter |
+    dbk:part |
+    dbk:preface |
+    dbk:section |
+    dbk:sect1 |
+    dbk:sect2 |
+    dbk:sect3 |
+    dbk:sect4 |
+    dbk:sect5
+    &components-extra;">
+
+  <!ENTITY blocks-extra ""> <!-- for customisation -->
+  <!ENTITY blocks "dbk:bibliography |
+    dbk:bibliodiv |
+    dbk:glossary |
+    dbk:glossdiv |
+    dbk:qandaset |
+    dbk:qandadiv
+    &blocks-extra;">
+
+  <!ENTITY metadata-extra ""> <!-- for customisation -->
+  <!ENTITY metadata-content 'contains(@rnd:style, "-title") or
+			     contains(@rnd:style, "-subtitle") or
+			     @rnd:style = "abstract" or
+			     @rnd:style = "address" or
+			     @rnd:style = "affiliation" or
+			     @rnd:style = "author" or
+			     @rnd:style = "biblioid" or
+			     @rnd:style = "bibliomisc" or
+			     @rnd:style = "bibliosource" or
+			     @rnd:style = "contrib" or
+			     @rnd:style = "date" or
+			     @rnd:style = "edition" or
+			     @rnd:style = "editor" or
+			     @rnd:style = "email" or
+			     @rnd:style = "issuenum" or
+			     @rnd:style = "keyword" or
+			     @rnd:style = "legalnotice" or
+			     @rnd:style = "othercredit" or
+			     @rnd:style = "pagenums" or
+			     @rnd:style = "personblurb" or
+			     @rnd:style = "pubdate" or
+			     @rnd:style = "publisher" or
+			     @rnd:style = "publisher-address" or
+			     @rnd:style = "releaseinfo" or
+			     @rnd:style = "revhistory" or
+			     @rnd:style = "revision" or
+			     @rnd:style = "volumenum"
+			     &metadata-extra;'>
+
+  <!ENTITY author-extra ""> <!-- for customisation -->
+  <!ENTITY author-content '@rnd:style = "personblurb" or
+			   @rnd:style = "address" or
+			   @rnd:style = "affiliation" or
+			   @rnd:style = "contrib" or
+			   @rnd:style = "email"
+			   &author-extra;'>
+
+  <!ENTITY admonition-extra ""> <!-- for customisation -->
+  <!ENTITY admonition '@rnd:style = "caution" or
+    @rnd:style = "important" or
+    @rnd:style = "note" or
+    @rnd:style = "tip" or
+    @rnd:style = "warning"
+    &admonition-extra;'>
+  <!ENTITY admonition-title-extra ""> <!-- for customisation -->
+  <!ENTITY admonition-title '@rnd:style = "caution-title" or
+    @rnd:style = "important-title" or
+    @rnd:style = "note-title" or
+    @rnd:style = "tip-title" or
+    @rnd:style = "warning-title"
+    &admonition-title-extra;'>
diff --git a/applications/content/template/docbook/roundtrip/blocks2dbk.xsl b/applications/content/template/docbook/roundtrip/blocks2dbk.xsl
new file mode 100644
index 0000000..042f797
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/blocks2dbk.xsl
@@ -0,0 +1,1732 @@
+<!DOCTYPE xsl:stylesheet [
+<!-- External DTD defines entities:
+     components :- QNames of component-level elements
+     blocks :- QNames of block-level elements
+     metadata-content :- XPath expression matching metadata styles
+     author-content :- XPath expression matching author styles
+     admonition :- XPath expression matching admonition styles
+     admonition-title :- XPath expression matching admonition title styles
+-->
+<!ENTITY % ext SYSTEM "blocks2dbk.dtd">
+%ext;
+]>
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:dbk='http://docbook.org/ns/docbook'
+  xmlns:rnd='http://docbook.org/ns/docbook/roundtrip'
+  xmlns:xlink='http://www.w3.org/1999/xlink'>
+
+  <!-- $Id$ -->
+  <!-- Stylesheet to convert word processing docs to DocBook -->
+  <!-- This stylesheet processes the output of sections2blocks.xsl -->
+
+  <xsl:output indent="yes" method="xml"
+    cdata-section-elements='dbk:programlisting dbk:literallayout'/>
+
+  <!-- ================================================== -->
+  <!--    Parameters                                      -->
+  <!-- ================================================== -->
+
+  <xsl:param name='docbook5'>0</xsl:param>
+  <xsl:param name="nest.sections">1</xsl:param>
+
+  <xsl:strip-space elements='*'/>
+  <xsl:preserve-space elements='dbk:para dbk:emphasis'/>
+
+  <xsl:template match="&components; |
+                       &blocks;">
+    <xsl:choose>
+      <xsl:when test='self::dbk:article and
+                      count(dbk:book) = 1 and
+                      count(dbk:info|dbk:book) &lt;= 2'>
+        <xsl:apply-templates select='dbk:book'/>
+      </xsl:when>
+      <xsl:when test='self::dbk:article and
+                      *[1][self::dbk:para] and
+                      *[1]/@rnd:style != "article-title" and
+                      contains(*[1]/@rnd:style, "-title")'>
+        <xsl:variable name='element-name'
+          select='substring-before(*[1]/@rnd:style, "-title")'/>
+        <xsl:element name='{$element-name}'
+          namespace='http://docbook.org/ns/docbook'>
+          <dbk:info>
+            <xsl:apply-templates select='*[1]'
+              mode='rnd:metadata'/>
+          </dbk:info>
+          <xsl:apply-templates/>
+        </xsl:element>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy>
+          <xsl:call-template name='rnd:attributes'/>
+
+          <xsl:variable name='metadata'>
+            <xsl:apply-templates select='*[1]'
+              mode='rnd:metadata'/>
+          </xsl:variable>
+          <xsl:if test='$metadata'>
+            <dbk:info>
+              <xsl:copy-of select='$metadata'/>
+            </dbk:info>
+          </xsl:if>
+
+          <xsl:apply-templates/>
+        </xsl:copy>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='dbk:book-component'>
+    <xsl:variable name='element-name'
+      select='substring-before(*[1]/@rnd:style, "-title")'/>
+
+    <xsl:element name='{$element-name}'
+      namespace='http://docbook.org/ns/docbook'>
+      <dbk:info>
+        <xsl:apply-templates select='*[1]'
+          mode='rnd:metadata'/>
+      </dbk:info>
+      <xsl:apply-templates/>
+    </xsl:element>
+  </xsl:template>
+
+  <xsl:template match="dbk:para" name='rnd:para'>
+    <!-- Some elements are normally suppressed,
+         since they are processed in a different context.
+         If this parameter is false then the element will be processed normally.
+      -->
+    <xsl:param name='suppress' select='true()'/>
+
+    <!-- This paragraph may be in a sidebar -->
+    <xsl:variable name='sidebar'
+		  select='preceding-sibling::*[self::dbk:para and @rnd:style = "sidebar-title"][1]'/>
+
+    <!-- This paragraph may be in the textobject of a table or figure -->
+    <xsl:variable name='table'
+		  select='preceding-sibling::dbk:informaltable[1]'/>
+    <xsl:variable name='figure'
+		  select='preceding-sibling::dbk:para[@rnd:style = "informalfigure-imagedata" or (dbk:inlinemediaobject and count(*) = 1 and normalize-space(.) = "")][1]'/>
+    <xsl:variable name='caption'
+		  select='following-sibling::dbk:para[@rnd:style = "caption" or @rnd:style = "Caption"]'/>
+
+    <xsl:choose>
+      <!-- continue style paragraphs are handled in context -->
+      <xsl:when test='$suppress and
+                      @rnd:style = "para-continue"'/>
+
+      <!-- Certain elements gather the following paragraph -->
+      <xsl:when test='$suppress and
+                      preceding-sibling::*[1][self::dbk:para and
+                      @rnd:style = "example-title"]'/>
+
+      <xsl:when test='$suppress and
+		      $sidebar and
+		      not(preceding-sibling::dbk:para[(not(@rnd:style) or @rnd:style = "") and
+		        preceding-sibling::*[preceding-sibling::*[generate-id() = generate-id($sidebar)]]])'/>
+
+      <!-- Separate processing is performed for table/figure titles and captions -->
+      <xsl:when test='$suppress and
+		      @rnd:style = "table-title" and
+		      following-sibling::*[1][self::dbk:informaltable|self::dbk:para[@rnd:style = "informalfigure-imagedata"]|self::dbk:para[dbk:inlinemediaobject and count(*) = 1 and normalize-space() = ""]]'/>
+      <xsl:when test='$suppress and
+		      @rnd:style = "figure-title" and
+		      following-sibling::*[1][self::dbk:para][@rnd:style = "informalfigure-imagedata" or (dbk:inlinemediaobject and count(*) = 1 and normalize-space(.) = "")]'/>
+      <xsl:when test='$suppress and
+		      (@rnd:style = "caption" or @rnd:style = "Caption") and
+		      (preceding-sibling::*[self::dbk:informaltable] or
+		      preceding-sibling::*[self::dbk:para][@rnd:style = "informalfigure-imagedata" or (dbk:inlinemediaobject and count(*) = 1 and normalize-space(.) = "")])'/>
+
+      <xsl:when test='$suppress and
+		      $table and
+		      $caption and
+		      generate-id($caption/preceding-sibling::dbk:informaltable[1]) = generate-id($table)'/>
+      <xsl:when test='$suppress and
+		      $figure and
+		      $caption and
+		      generate-id($caption/preceding-sibling::dbk:para[@rnd:style = "informalfigure-imagedata" or (dbk:inlinemediaobject and count(*) = 1 and normalize-space(.) = "")][1]) = generate-id($figure)'/>
+
+      <xsl:when test='@rnd:style = "imagedata-metadata" or
+                      @rnd:style = "table-metadata"'/>
+
+      <!-- Ignore empty paragraphs -->
+      <xsl:when test='(not(@rnd:style) or
+                      @rnd:style = "") and
+                      normalize-space(.) = "" and
+		      not(*)'/>
+
+      <!-- Image inline or block? -->
+      <xsl:when test='(not(@rnd:style) or
+                      @rnd:style = "") and
+                      normalize-space(.) = "" and
+		      count(*) = 1 and
+		      dbk:inlinemediaobject'>
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test='not(@rnd:style) or
+                      @rnd:style = "" or
+                      @rnd:style = "para-continue"'>
+        <dbk:para>
+          <xsl:call-template name='rnd:attributes'/>
+          <xsl:apply-templates/>
+        </dbk:para>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "xinclude"'
+        xmlns:xi='http://www.w3.org/2001/XInclude'>
+        <xi:include>
+          <xsl:attribute name='href'>
+            <xsl:apply-templates mode='rnd:xinclude'/>
+          </xsl:attribute>
+        </xi:include>
+      </xsl:when>
+
+      <xsl:when test='$suppress and
+                      preceding-sibling::*[1]/self::dbk:para[&admonition-title;]'/>
+      <xsl:when test='&admonition-title;'>
+        <xsl:element name='{substring-before(@rnd:style, "-title")}'
+          namespace='http://docbook.org/ns/docbook'>
+          <xsl:call-template name='rnd:attributes'/>
+          <dbk:title>
+            <xsl:apply-templates/>
+          </dbk:title>
+          <xsl:apply-templates select='following-sibling::*[1]'>
+            <xsl:with-param name='suppress' select='false()'/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select='following-sibling::*[2]'
+            mode='rnd:continue'/>
+        </xsl:element>
+      </xsl:when>
+
+      <xsl:when test='starts-with(@rnd:style, "itemizedlist") or
+                      starts-with(@rnd:style, "orderedlist")'>
+
+        <xsl:variable name='stop.node'
+          select='following-sibling::dbk:para[not(@rnd:style) or
+                  (not(starts-with(@rnd:style, "itemizedlist") or starts-with(@rnd:style, "orderedlist")) and @rnd:style != "para-continue")][1]'/>
+
+        <xsl:choose>
+          <xsl:when test='translate(substring-after(@rnd:style, "list"), "0123456789", "") != "" or
+                          substring-after(@rnd:style, "list") = ""'>
+            <xsl:call-template name='rnd:error'>
+              <xsl:with-param name='code' select='"list-bad-level"'/>
+              <xsl:with-param name='message'>style "<xsl:value-of select='@rnd:style'/>" is not a valid list style</xsl:with-param>
+            </xsl:call-template>
+          </xsl:when>
+
+          <!-- TODO: the previous para-continue may not be associated with a list -->
+
+          <!-- NB. Look back at the previous paragraph. There may be intervening tables or images. -->
+          <xsl:when test='preceding-sibling::dbk:para[1][starts-with(@rnd:style, "itemizedlist") or starts-with(@rnd:style, "orderedlist") or @rnd:style = "para-continue"]'/>
+          <xsl:when test='substring-after(@rnd:style, "list") != 1'>
+            <xsl:call-template name='rnd:error'>
+              <xsl:with-param name='code'>list-wrong-level</xsl:with-param>
+              <xsl:with-param name='message'>list started at the wrong level</xsl:with-param>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:when test='$stop.node'>
+            <xsl:element name='{substring-before(@rnd:style, "1")}'
+              namespace='http://docbook.org/ns/docbook'>
+              <xsl:apply-templates select='.|following-sibling::dbk:para[@rnd:style = current()/@rnd:style][following-sibling::*[generate-id() = generate-id($stop.node)]]'
+                mode='rnd:listitem'/>
+            </xsl:element>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:element name='{substring-before(@rnd:style, "1")}'
+              namespace='http://docbook.org/ns/docbook'>
+              <xsl:apply-templates select='.|following-sibling::dbk:para[@rnd:style = current()/@rnd:style]'
+                mode='rnd:listitem'/>
+            </xsl:element>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "programlisting" and
+                      preceding-sibling::*[1][self::dbk:para and @rnd:style = "programlisting"]'/>
+      <xsl:when test='@rnd:style = "literallayout" and
+                      preceding-sibling::*[1][self::dbk:para and @rnd:style = "literallayout"]'/>
+      <xsl:when test='@rnd:style = "programlisting" or
+                      @rnd:style = "literallayout"'>
+
+        <xsl:variable name='stop.node'
+          select='following-sibling::dbk:para[@rnd:style != current()/@rnd:style][1]'/>
+
+        <xsl:element name='{@rnd:style}'
+          namespace='http://docbook.org/ns/docbook'>
+          <xsl:apply-templates/>
+
+          <xsl:choose>
+            <xsl:when test='$stop.node'>
+              <xsl:apply-templates select='following-sibling::dbk:para[following-sibling::*[generate-id() = generate-id($stop.node)]]'
+                mode='rnd:programlisting'/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select='following-sibling::dbk:para'
+                mode='rnd:programlisting'/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:element>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "example-title"'>
+        <xsl:element name='{substring-before(@rnd:style, "-title")}'
+          namespace='http://docbook.org/ns/docbook'>
+          <xsl:call-template name='rnd:attributes'/>
+          <dbk:title>
+            <xsl:apply-templates/>
+          </dbk:title>
+
+          <xsl:apply-templates select='following-sibling::*[1]'>
+            <xsl:with-param name='suppress' select='false()'/>
+          </xsl:apply-templates>
+        </xsl:element>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "sidebar-title"'>
+        <!-- TODO: next sidebar should stop this sidebar -->
+	<xsl:variable name='stop.node'
+		      select='following-sibling::dbk:para[(not(@rnd:style) or @rnd:style = "") and
+			      normalize-space(.) = ""][1]'/>
+
+	<dbk:sidebar>
+          <xsl:call-template name='rnd:attributes'/>
+	  <dbk:info>
+	    <dbk:title>
+	      <xsl:apply-templates/>
+	    </dbk:title>
+	  </dbk:info>
+
+	  <xsl:choose>
+	    <xsl:when test='$stop.node'>
+	      <xsl:apply-templates select='following-sibling::*[following-sibling::*[generate-id() = generate-id($stop.node)]]'
+				   mode='rnd:sidebar'/>
+	    </xsl:when>
+	    <xsl:otherwise>
+	      <xsl:apply-templates select='following-sibling::*'
+				   mode='rnd:sidebar'/>
+	    </xsl:otherwise>
+	  </xsl:choose>
+	</dbk:sidebar>
+      </xsl:when>
+
+      <xsl:when test='&admonition;'>
+        <xsl:element name='{@rnd:style}'
+          namespace='http://docbook.org/ns/docbook'>
+          <xsl:call-template name='rnd:attributes'/>
+          <dbk:para>
+            <xsl:apply-templates/>
+          </dbk:para>
+          <xsl:apply-templates select='following-sibling::*[1]'
+            mode='rnd:continue'/>
+        </xsl:element>
+      </xsl:when>
+
+      <!-- TODO: make sure this is in a bibliography.
+	   If not, create a bibliolist.
+	-->
+      <xsl:when test='@rnd:style = "bibliomixed"'>
+	<dbk:bibliomixed>
+          <xsl:call-template name='rnd:attributes'/>
+	  <xsl:apply-templates/>
+	</dbk:bibliomixed>
+      </xsl:when>
+      <xsl:when test='@rnd:style = "biblioentry-title"'>
+	<dbk:biblioentry>
+          <xsl:call-template name='rnd:attributes'/>
+          <dbk:title>
+            <xsl:apply-templates/>
+          </dbk:title>
+          <xsl:if test='following-sibling::*[1][&metadata-content;]'>
+            <xsl:apply-templates select='following-sibling::*[1]'
+              mode='rnd:metadata'/>
+          </xsl:if>
+	</dbk:biblioentry>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "blockquote-attribution" and
+                      preceding-sibling::*[1][self::dbk:para][@rnd:style = "blockquote-title" or @rnd:style = "blockquote"]'/>
+      <xsl:when test='@rnd:style = "blockquote-attribution"'>
+        <xsl:call-template name='rnd:error'>
+          <xsl:with-param name='code'>improper-blockquote-attribution</xsl:with-param>
+          <xsl:with-param name='message'>blockquote attribution must follow a blockquote title</xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test='@rnd:style = "blockquote" or
+                      @rnd:style = "blockquote-title"'>
+        <xsl:choose>
+          <xsl:when test='@rnd:style = "blockquote" and
+                          preceding-sibling::*[1][self::dbk:para][starts-with(@rnd:style, "blockquote")]'/>
+          <xsl:otherwise>
+
+            <xsl:variable name='stop.node'
+              select='following-sibling::*[not(@rnd:style = "blockquote" or
+                      @rnd:style = "blockquote-attribution")][1]'/>
+
+            <dbk:blockquote>
+              <xsl:call-template name='rnd:attributes'/>
+	      <xsl:if test='@rnd:style = "blockquote-title"'>
+		<dbk:info>
+		  <dbk:title>
+		    <xsl:apply-templates/>
+		  </dbk:title>
+		</dbk:info>
+	      </xsl:if>
+              <xsl:choose>
+                <xsl:when test='$stop.node'>
+		  <xsl:apply-templates select='following-sibling::*[following-sibling::*[generate-id() = generate-id($stop.node)]][@rnd:style = "blockquote-attribution"]' mode='rnd:blockquote-attribution'/>
+                  <xsl:apply-templates select='self::*[@rnd:style = "blockquote"] |
+					       following-sibling::*[following-sibling::*[generate-id() = generate-id($stop.node)]]'
+                    mode='rnd:blockquote'/>
+                </xsl:when>
+                <xsl:otherwise>
+		  <xsl:apply-templates select='following-sibling::*[@rnd:style = "blockquote-attribution"]' mode='rnd:blockquote-attribution'/>
+                  <xsl:apply-templates select='self::*[@rnd:style = "blockquote"] |
+					       following-sibling::*'
+                    mode='rnd:blockquote'/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </dbk:blockquote>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "bridgehead"'>
+        <xsl:element name='{@rnd:style}'
+          namespace='http://docbook.org/ns/docbook'>
+          <xsl:call-template name='rnd:attributes'/>
+          <xsl:apply-templates/>
+        </xsl:element>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "formalpara-title"'>
+        <dbk:formalpara>
+          <dbk:title>
+            <xsl:call-template name='rnd:attributes'/>
+            <xsl:apply-templates/>
+          </dbk:title>
+          <xsl:choose>
+            <xsl:when test='following-sibling::*[1][self::dbk:para][@rnd:style = "formalpara"]'>
+              <dbk:para>
+                <xsl:call-template name='rnd:attributes'>
+                  <xsl:with-param name='node'
+                    select='following-sibling::*[1]'/>
+                </xsl:call-template>
+                <xsl:apply-templates select='following-sibling::*[1]/node()'/>
+              </dbk:para>
+            </xsl:when>
+          </xsl:choose>
+        </dbk:formalpara>
+      </xsl:when>
+      <xsl:when test='@rnd:style = "formalpara" and
+                      preceding-sibling::*[1][self::dbk:para][@rnd:style = "formalpara-title"]'/>
+      <xsl:when test='@rnd:style = "formalpara"'>
+        <xsl:call-template name='rnd:error'>
+          <xsl:with-param name='code'>formalpara-notitle</xsl:with-param>
+          <xsl:with-param name='message'>formalpara used without a title</xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "informalfigure-imagedata"'>
+        <xsl:variable name='caption.next'
+          select='following-sibling::dbk:para[@rnd:style = "caption" or @rnd:style = "Caption"][1]'/>
+
+        <xsl:variable name='metadata'
+          select='preceding-sibling::*[1][self::dbk:para][@rnd:style = "imagedata-metadata"]'/>
+
+        <xsl:choose>
+          <xsl:when test='preceding-sibling::*[1][self::dbk:para][@rnd:style = "figure-title"] or
+                          ($metadata and preceding-sibling::*[2][self::dbk:para][@rnd:style = "figure-title"])'>
+            <dbk:figure>
+              <xsl:call-template name='rnd:attributes'/>
+              <dbk:info>
+                <dbk:title>
+                  <xsl:choose>
+                    <xsl:when test='$metadata'>
+                      <xsl:apply-templates
+                        select='preceding-sibling::*[2]/node()'/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:apply-templates
+                        select='preceding-sibling::*[1]/node()'/>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </dbk:title>
+              </dbk:info>
+              <dbk:mediaobject>
+                <dbk:imageobject>
+                  <dbk:imagedata>
+                    <xsl:attribute name='fileref'>
+                      <xsl:choose>
+                        <xsl:when test='dbk:inlinemediaobject/dbk:imageobject/dbk:imagedata/@fileref != ""'>
+                          <xsl:value-of select='dbk:inlinemediaobject/dbk:imageobject/dbk:imagedata/@fileref'/>
+                        </xsl:when>
+                        <xsl:otherwise>
+                          <xsl:value-of select='.'/>
+                        </xsl:otherwise>
+                      </xsl:choose>
+                    </xsl:attribute>
+                    <xsl:call-template name='rnd:imagedata-attributes'>
+                      <xsl:with-param name='metadata' select='$metadata'/>
+                    </xsl:call-template>
+                  </dbk:imagedata>
+                </dbk:imageobject>
+              </dbk:mediaobject>
+              <xsl:call-template name='rnd:figure-text-caption'>
+                <xsl:with-param name='caption' select='$caption.next'/>
+              </xsl:call-template>
+            </dbk:figure>
+          </xsl:when>
+          <xsl:when test='preceding-sibling::*[1][self::dbk:para][@rnd:style = "table-title"] or
+                          ($metadata and preceding-sibling::*[2][self::dbk:para][@rnd:style = "table-title"])'>
+            <dbk:table>
+              <xsl:call-template name='rnd:attributes'/>
+              <dbk:info>
+                <dbk:title>
+                  <xsl:choose>
+                    <xsl:when test='$metadata'>
+                      <xsl:apply-templates
+                        select='preceding-sibling::*[2]/node()'/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:apply-templates
+                        select='preceding-sibling::*[1]/node()'/>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </dbk:title>
+              </dbk:info>
+
+              <dbk:mediaobject>
+                <dbk:imageobject>
+                  <dbk:imagedata>
+                    <xsl:attribute name='fileref'>
+                      <xsl:choose>
+                        <xsl:when test='dbk:inlinemediaobject/dbk:imageobject/dbk:imagedata/@fileref != ""'>
+                          <xsl:value-of select='dbk:inlinemediaobject/dbk:imageobject/dbk:imagedata/@fileref'/>
+                        </xsl:when>
+                        <xsl:otherwise>
+                          <xsl:value-of select='.'/>
+                        </xsl:otherwise>
+                      </xsl:choose>
+                    </xsl:attribute>
+                    <xsl:call-template name='rnd:imagedata-attributes'>
+                      <xsl:with-param name='metadata' select='$metadata'/>
+                    </xsl:call-template>
+                  </dbk:imagedata>
+                </dbk:imageobject>
+              </dbk:mediaobject>
+              <xsl:call-template name='rnd:figure-text-caption'>
+                <xsl:with-param name='caption' select='$caption.next'/>
+              </xsl:call-template>
+            </dbk:table>
+          </xsl:when>
+          <xsl:otherwise>
+            <dbk:informalfigure>
+              <xsl:call-template name='rnd:attributes'/>
+              <dbk:mediaobject>
+                <dbk:imageobject>
+                  <dbk:imagedata>
+                    <xsl:attribute name='fileref'>
+                      <xsl:choose>
+                        <xsl:when test='dbk:inlinemediaobject/dbk:imageobject/dbk:imagedata/@fileref != ""'>
+                          <xsl:value-of select='dbk:inlinemediaobject/dbk:imageobject/dbk:imagedata/@fileref'/>
+                        </xsl:when>
+                        <xsl:otherwise>
+                          <xsl:value-of select='.'/>
+                        </xsl:otherwise>
+                      </xsl:choose>
+                    </xsl:attribute>
+                    <xsl:call-template name='rnd:imagedata-attributes'>
+                      <xsl:with-param name='metadata' select='$metadata'/>
+                    </xsl:call-template>
+                  </dbk:imagedata>
+                </dbk:imageobject>
+              </dbk:mediaobject>
+              <xsl:call-template name='rnd:figure-text-caption'>
+                <xsl:with-param name='caption' select='$caption.next'/>
+              </xsl:call-template>
+            </dbk:informalfigure>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:when test='(@rnd:style = "caption" or @rnd:style = "Caption") and
+                      preceding-sibling::*[(self::dbk:para and contains(@rnd:style, "imagedata")) or self::dbk:informaltable]'/>
+      <xsl:when test='@rnd:style = "caption" or @rnd:style = "Caption"'>
+        <xsl:call-template name='rnd:error'>
+          <xsl:with-param name='code'>bad-caption</xsl:with-param>
+          <xsl:with-param name='message'>caption does not follow table or figure</xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+
+      <xsl:when test='(contains(@rnd:style, "-title") or
+                      contains(@rnd:style, "-titleabbrev") or
+                      contains(@rnd:style, "-subtitle")) and
+                      not(starts-with(@rnd:style, "blockquote") or starts-with(@rnd:style, "formal"))'>
+        <!-- TODO: check that no non-metadata elements occur before this paragraph -->
+      </xsl:when>
+
+      <!-- Metadata elements are handled in rnd:metadata mode -->
+      <!-- TODO: check that no non-metadata elements occur before this paragraph -->
+      <xsl:when test='&metadata-content;'/>
+
+      <xsl:otherwise>
+        <xsl:call-template name='rnd:error'>
+          <xsl:with-param name='code'>unknown-style</xsl:with-param>
+          <xsl:with-param name='message'>unknown paragraph style "<xsl:value-of select='@rnd:style'/>" encountered</xsl:with-param>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- Determine if the caption belongs to the current figure.
+       If so, then process the textobject content and the caption.
+    -->
+  <xsl:template name='rnd:figure-text-caption'>
+    <xsl:param name='caption' select='/..'/>
+
+    <xsl:variable name='textobjs'
+      select='following-sibling::*[following-sibling::*[generate-id() = generate-id($caption)]]'/>
+
+    <xsl:choose>
+      <xsl:when test='not($caption)'/> <!-- nothing to do -->
+      <xsl:when test='$textobjs[self::dbk:informaltable |
+                      self::dbk:inlinemediaobject |
+                      self::dbk:para[@rnd:style = "informalfigure-imagedata" or
+                      @rnd:style = "mediaobject-imagedata"]]'/> <!-- caption belongs to something else -->
+      <xsl:otherwise>
+        <xsl:apply-templates select='$textobjs' mode='rnd:textobject'/>
+
+        <xsl:apply-templates select='$caption' mode='rnd:caption'/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='dbk:para' mode='rnd:caption'>
+    <dbk:caption>
+      <xsl:call-template name='rnd:attributes'/>
+      <xsl:apply-templates/>
+    </dbk:caption>
+  </xsl:template>
+
+  <xsl:template name='rnd:imagedata-attributes'>
+    <xsl:param name='metadata' select='""'/>
+
+    <xsl:choose>
+      <xsl:when test='not($metadata)'/>
+      <xsl:when test='contains($metadata, " ")'>
+        <xsl:call-template name='rnd:imagedata-attributes'>
+          <xsl:with-param name='metadata'
+            select='substring-before($metadata, " ")'/>
+        </xsl:call-template>
+        <xsl:call-template name='rnd:imagedata-attributes'>
+          <xsl:with-param name='metadata'
+            select='substring-after($metadata, " ")'/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test='not(contains($metadata, "="))'>
+        <xsl:call-template name='rnd:warning'>
+          <xsl:with-param name='code' select='"imagedata-missing-value"'/>
+          <xsl:with-param name='message'>
+            <xsl:text>imagedata-metadata missing value for attribute "</xsl:text>
+            <xsl:value-of select='$metadata'/>
+            <xsl:text>"</xsl:text>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:variable name='name'
+          select='translate(normalize-space(substring-before($metadata, "=")), "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz")'/>
+        <xsl:variable name='value'
+          select='translate(normalize-space(substring-after($metadata, "=")), "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz")'/>
+
+        <xsl:choose>
+          <xsl:when test='$name = "scalefit"'>
+            <xsl:attribute name='scalefit'>
+              <xsl:choose>
+                <xsl:when test='$value = "1" or
+                                $value = "yes" or
+                                $value = "true"'>1</xsl:when>
+                <xsl:otherwise>0</xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test='$name = "align" or
+                          $name = "contentdepth" or
+                          $name = "contentwidth" or
+                          $name = "depth" or
+                          $name = "scale" or
+                          $name = "valign" or
+                          $name = "width"'>
+            <!-- TODO: check enumerate values-->
+            <xsl:attribute name='{$name}'>
+              <xsl:value-of select='$value'/>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name='rnd:error'>
+              <xsl:with-param name='code' select='"imagedata-unknown-attribute"'/>
+              <xsl:with-param name='message'>
+                <xsl:text>imagedata-metadata unknown attribute "</xsl:text>
+                <xsl:value-of select='$name'/>
+                <xsl:text>"</xsl:text>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='dbk:emphasis'>
+    <xsl:choose>
+      <xsl:when test='not(@rnd:style) and @role = "italic"'>
+	<xsl:copy>
+          <xsl:apply-templates mode='rnd:copy'/>
+	</xsl:copy>
+      </xsl:when>
+      <xsl:when test='not(@rnd:style) or @role'>
+        <xsl:copy>
+          <xsl:call-template name='rnd:attributes'/>
+          <xsl:apply-templates mode='rnd:copy'/>
+        </xsl:copy>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = preceding-sibling::node()[1][self::dbk:emphasis]/@rnd:style'/>
+
+      <xsl:when test='@rnd:style = "emphasis"'>
+        <xsl:copy>
+          <xsl:call-template name='rnd:attributes'/>
+          <xsl:apply-templates mode='rnd:copy'/>
+          <xsl:apply-templates select='following-sibling::node()[1]'
+            mode='rnd:emphasis'/>
+        </xsl:copy>
+      </xsl:when>
+      <xsl:when test='@rnd:style = "emphasis-bold" or
+                      @rnd:style = "emphasis-strong"'>
+        <xsl:copy>
+          <xsl:attribute name='role'>bold</xsl:attribute>
+          <xsl:call-template name='rnd:attributes'/>
+          <xsl:apply-templates mode='rnd:copy'/>
+          <xsl:apply-templates select='following-sibling::node()[1]'
+            mode='rnd:emphasis'/>
+        </xsl:copy>
+      </xsl:when>
+      <xsl:when test='@rnd:style = "emphasis-underline"'>
+        <xsl:copy>
+          <xsl:attribute name='role'>underline</xsl:attribute>
+          <xsl:call-template name='rnd:attributes'/>
+          <xsl:apply-templates mode='rnd:copy'/>
+          <xsl:apply-templates select='following-sibling::node()[1]'
+            mode='rnd:emphasis'/>
+        </xsl:copy>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "citetitle" or
+                      @rnd:style = "literal" or
+                      @rnd:style = "sgmltag"'>
+        <xsl:element name='{@rnd:style}'
+          namespace='http://docbook.org/ns/docbook'>
+          <xsl:call-template name='rnd:attributes'/>
+          <xsl:apply-templates/>
+          <xsl:apply-templates select='following-sibling::node()[1]'
+            mode='rnd:emphasis'/>
+        </xsl:element>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "Hyperlink" and
+		      parent::dbk:link'>
+	<!-- This occurs in a hyperlink; parent should be dbk:link -->
+	<xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test='@rnd:style = "Hyperlink"'>
+        <!-- dbk:link is missing -->
+        <dbk:link xlink:href='{.}'>
+          <xsl:apply-templates/>
+        </dbk:link>
+      </xsl:when>
+
+      <!-- In rare circumstances, Word inserts an empty element that appears to be something like a space in the editor -->
+      <xsl:when test='(@rnd:style = "EndnoteReference" or
+                      @rnd:style = "FootnoteReference") and
+                      . = ""'>
+        <xsl:text> </xsl:text>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <xsl:call-template name='rnd:error'>
+          <xsl:with-param name='code'>unknown-style</xsl:with-param>
+          <xsl:with-param name='message'>unknown character span style "<xsl:value-of select='@rnd:style'/>" encountered</xsl:with-param>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- Coalesce emphasis elements into a single element -->
+  <xsl:template match='dbk:emphasis' mode='rnd:emphasis'>
+    <xsl:choose>
+      <xsl:when test='@rnd:style = preceding-sibling::node()[self::dbk:emphasis]/@rnd:style'>
+        <xsl:apply-templates/>
+        <xsl:apply-templates select='following-sibling::node()[1]'
+          mode='rnd:emphasis'/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:template>
+  <xsl:template match='*|text()' mode='rnd:emphasis'/>
+
+  <xsl:template match='dbk:emphasis' mode='rnd:personname-emphasis'>
+    <xsl:param name='style'/>
+
+    <xsl:choose>
+      <xsl:when test='@rnd:style = $style'>
+        <xsl:apply-templates/>
+        <xsl:apply-templates select='following-sibling::dbk:emphasis[1]'
+          mode='rnd:personname-emphasis'>
+          <xsl:with-param name='style' select='$style'/>
+        </xsl:apply-templates>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:template>
+  <xsl:template match='*|text()' mode='rnd:emphasis'/>
+
+  <xsl:template match='dbk:subscript|dbk:superscript'>
+    <xsl:copy>
+      <xsl:apply-templates select='@*' mode='rnd:copy'/>
+      <xsl:apply-templates/>
+    </xsl:copy>
+  </xsl:template>
+
+  <!-- Images -->
+
+  <xsl:template match='dbk:inlinemediaobject'>
+    <xsl:choose>
+      <xsl:when test='not(preceding-sibling::*|following-sibling::*) and
+		      normalize-space(..) = ""'>
+
+	<xsl:variable name='next.captioned'
+		      select='ancestor::dbk:para/following-sibling::*[self::dbk:informaltable or self::dbk:para[dbk:inlinemediaobject and count(*) = 1 and normalize-space() = ""]][1]'/>
+
+	<xsl:variable name='caption'
+		      select='ancestor::dbk:para/following-sibling::dbk:para[@rnd:style = "caption" or @rnd:style = "Caption"]'/>
+
+	<xsl:variable name='metadata'>
+	  <xsl:apply-templates select='ancestor::dbk:para/following-sibling::*[1]'
+			       mode='rnd:metadata'/>
+	</xsl:variable>
+
+	<dbk:figure>
+	  <xsl:if test='ancestor::dbk:para/preceding-sibling::*[1][self::dbk:para][@rnd:style = "figure-title"] or
+			$metadata'>
+	    <dbk:info>
+	      <xsl:if test='ancestor::dbk:para/preceding-sibling::*[1][self::dbk:para][@rnd:style = "figure-title"]'>
+		<dbk:title>
+		  <xsl:apply-templates select='ancestor::dbk:para/preceding-sibling::*[1]/node()'/>
+		</dbk:title>
+	      </xsl:if>
+	      <xsl:copy-of select='$metadata'/>
+	    </dbk:info>
+	  </xsl:if>
+
+	  <dbk:mediaobject>
+	    <xsl:apply-templates mode='rnd:copy'/>
+	  </dbk:mediaobject>
+
+	  <xsl:choose>
+	    <xsl:when test='not($caption)'/>
+	    <xsl:when test='not($next.captioned)'>
+	      <xsl:apply-templates select='ancestor::dbk:para/following-sibling::*[following-sibling::*[generate-id() = generate-id($caption)]][not(&metadata-content;)]'
+				   mode='rnd:figure'/>
+	      <xsl:apply-templates select='$caption'
+				   mode='rnd:caption'/>
+	    </xsl:when>
+	    <!-- Does caption belong to this image or next.captioned?
+	       - Only if it belongs to this image do we process it here.
+	      -->
+	    <xsl:when test='$next.captioned[preceding-sibling::*[generate-id() = generate-id($caption)]]'>
+	      <xsl:apply-templates select='ancestor::dbk:para/following-sibling::*[following-sibling::*[generate-id() = generate-id($caption)]][not(&metadata-content;)]'
+				   mode='rnd:figure'/>
+	      <xsl:apply-templates select='$caption'
+				   mode='rnd:caption'/>
+	    </xsl:when>
+	    <!-- otherwise caption does not belong to this figure -->
+	  </xsl:choose>
+	</dbk:figure>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:call-template name='rnd:copy'/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='dbk:para[@rnd:style = "caption" or @rnd:style = "Caption"]'
+    mode='rnd:caption'>
+    <dbk:caption>
+      <dbk:para>
+	<xsl:apply-templates/>
+      </dbk:para>
+    </dbk:caption>
+  </xsl:template>
+  <xsl:template match='*' mode='rnd:caption'/>
+
+  <xsl:template match='*' mode='rnd:figure'>
+    <xsl:call-template name='rnd:para'>
+      <xsl:with-param name='suppress' select='false()'/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <!-- Sidebars -->
+
+  <xsl:template match='*' mode='rnd:sidebar'>
+    <xsl:call-template name='rnd:para'>
+      <xsl:with-param name='suppress' select='false()'/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <!-- Lists -->
+
+  <xsl:template match='dbk:para' mode='rnd:listitem'>
+    <dbk:listitem>
+      <dbk:para>
+        <xsl:call-template name='rnd:attributes'/>
+        <xsl:apply-templates/>
+      </dbk:para>
+      <xsl:apply-templates select='following-sibling::*[1]'
+        mode='rnd:continue'/>
+
+      <!-- Handle nested lists -->
+      <xsl:variable name='list-type'
+        select='concat(substring-before(@rnd:style, "list"), "list")'/>
+      <xsl:variable name='list-level'
+        select='substring-after(@rnd:style, $list-type)'/>
+
+      <!-- Assuming only five levels of list nesting.
+         - This is probably better done in a previous stage using grouping.
+        -->
+      <xsl:variable name='stop.node'
+        select='following-sibling::dbk:para[@rnd:style != concat("itemizedlist", $list-level + 1) and
+                @rnd:style != concat("orderedlist", $list-level + 1) and
+                @rnd:style != concat("itemizedlist", $list-level + 2) and
+                @rnd:style != concat("orderedlist", $list-level + 2) and
+                @rnd:style != concat("itemizedlist", $list-level + 3) and
+                @rnd:style != concat("orderedlist", $list-level + 3) and
+                @rnd:style != "para-continue"][1]'/>
+
+      <xsl:variable name='nested'
+        select='following-sibling::dbk:para[@rnd:style = concat("itemizedlist", $list-level + 1) or @rnd:style = concat("orderedlist", $list-level + 1)][1]'/>
+
+      <xsl:choose>
+        <!-- Is there a nested list at all? -->
+        <xsl:when test='following-sibling::*[self::dbk:para and @rnd:style != "para-continue"][1][@rnd:style != concat("itemizedlist", $list-level + 1) and @rnd:style != concat("orderedlist", $list-level + 1)]'/>
+
+        <xsl:when test='following-sibling::dbk:para[@rnd:style = concat("itemizedlist", $list-level + 1) or @rnd:style = concat("orderedlist", $list-level + 1)] and
+                        $stop.node'>
+          <xsl:element name='{concat(substring-before($nested/@rnd:style, "list"), "list")}'
+            namespace='http://docbook.org/ns/docbook'>
+            <xsl:apply-templates select='following-sibling::dbk:para[@rnd:style = concat("itemizedlist", $list-level + 1) or @rnd:style = concat("orderedlist", $list-level + 1)][following-sibling::*[generate-id() = generate-id($stop.node)]]'
+              mode='rnd:listitem'/>
+          </xsl:element>
+        </xsl:when>
+        <xsl:when test='following-sibling::dbk:para[@rnd:style = concat("itemizedlist", $list-level + 1) or @rnd:style = concat("orderedlist", $list-level + 1)]'>
+
+          <xsl:element name='{concat(substring-before($nested/@rnd:style, "list"), "list")}'
+            namespace='http://docbook.org/ns/docbook'>
+            <xsl:apply-templates select='following-sibling::dbk:para[@rnd:style = concat("itemizedlist", $list-level + 1) or @rnd:style = concat("orderedlist", $list-level + 1)]'
+              mode='rnd:listitem'/>
+          </xsl:element>
+        </xsl:when>
+      </xsl:choose>
+    </dbk:listitem>
+  </xsl:template>
+
+  <!-- Blockquotes -->
+
+  <xsl:template match='dbk:para' mode='rnd:blockquote'>
+    <xsl:choose>
+      <xsl:when test='@rnd:style ="blockquote-attribution"'/>
+      <xsl:when test='@rnd:style ="blockquote-title"'/>
+      <xsl:otherwise>
+        <dbk:para>
+          <xsl:apply-templates/>
+        </dbk:para>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+  <xsl:template match='dbk:para' mode='rnd:blockquote-attribution'>
+    <xsl:if test='@rnd:style ="blockquote-attribution"'>
+      <dbk:attribution>
+        <xsl:apply-templates/>
+      </dbk:attribution>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- Metadata -->
+
+  <xsl:template match='dbk:para' mode='rnd:metadata'>
+    <xsl:choose>
+      <xsl:when test='@rnd:style = "biblioentry-title" and
+                      parent::dbk:bibliography|parent::dbk:bibliodiv'/>
+      <xsl:when test='@rnd:style = "biblioentry-title"'>
+        <xsl:call-template name='rnd:error'>
+          <xsl:with-param name='code'>bad-metadata</xsl:with-param>
+          <xsl:with-param name='message'>style "<xsl:value-of select='@rnd:style'/>" must not be metadata for parent "<xsl:value-of select='local-name(..)'/>"</xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "abstract-title" or
+                      @rnd:style = "abstract"'>
+        <xsl:variable name='stop.node'
+          select='following-sibling::dbk:para[@rnd:style != "abstract"][1]'/>
+        <xsl:choose>
+          <xsl:when test='$stop.node'>
+            <dbk:abstract>
+              <xsl:apply-templates select='.|following-sibling::dbk:para[@rnd:style = "abstract"][following-sibling::*[generate-id() = generate-id($stop.node)]]'
+                mode='rnd:abstract'/>
+            </dbk:abstract>
+            <xsl:apply-templates select='$stop.node'
+              mode='rnd:metadata'/>
+          </xsl:when>
+          <xsl:otherwise>
+            <dbk:abstract>
+              <xsl:apply-templates select='.|following-sibling::dbk:para[@rnd:style = "abstract"]' mode='rnd:abstract'/>
+            </dbk:abstract>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "legalnotice"'>
+        <xsl:variable name='stop.node'
+          select='following-sibling::dbk:para[@rnd:style != "legalnotice"][1]'/>
+
+        <xsl:choose>
+          <xsl:when test='$stop.node'>
+            <dbk:legalnotice>
+              <xsl:apply-templates select='.|following-sibling::dbk:para[@rnd:style = "legalnotice"][following-sibling::*[generate-id() = generate-id($stop.node)]]'
+                mode='rnd:legalnotice'/>
+            </dbk:legalnotice>
+            <xsl:apply-templates select='$stop.node'
+              mode='rnd:metadata'/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select='.|following-sibling::dbk:para[@rnd:style = "legalnotice"]'
+              mode='rnd:legalnotice'/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "keyword"'>
+        <xsl:variable name='stop.node'
+          select='following-sibling::*[not(self::dbk:para) or
+                  (self::dbk:para and @rnd:style != "keyword")][1]'/>
+
+        <xsl:choose>
+          <xsl:when test='$stop.node'>
+            <dbk:keywordset>
+              <xsl:call-template name='rnd:keyword'>
+                <xsl:with-param name='nodes'
+                  select='.|following-sibling::dbk:para[@rnd:style = "keyword"][following-sibling::*[generate-id() = generate-id($stop.node)]]'/>
+              </xsl:call-template>
+            </dbk:keywordset>
+            <xsl:apply-templates select='$stop.node'
+              mode='rnd:metadata'/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name='rnd:keyword'>
+              <xsl:with-param name='nodes'
+                select='.|following-sibling::dbk:para[@rnd:style = "keyword"]'/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "author"'>
+        <dbk:author>
+          <xsl:choose>
+            <xsl:when test='dbk:emphasis[@rnd:style = "orgname"]'>
+              <dbk:orgname>
+                <xsl:apply-templates
+                  select='dbk:emphasis[@rnd:style = "orgname"]'
+                  mode='rnd:orgname'/>
+              </dbk:orgname>
+              <xsl:if test='*[not(@rnd:style = "orgname")]'>
+                <xsl:call-template name='rnd:error'>
+                  <xsl:with-param name='code'>bad-author-orgname-combo</xsl:with-param>
+                  <xsl:with-param name='message'>character span "<xsl:value-of select='dbk:emphasis[@rnd:style != "orgname"][1]/@rnd:style'/>" not allowed in an author paragraph combined with orgname</xsl:with-param>
+                </xsl:call-template>
+              </xsl:if>
+            </xsl:when>
+            <xsl:otherwise>
+              <dbk:personname>
+                <!-- TODO: check style of author; mixed content or structured -->
+                <xsl:apply-templates mode='rnd:personname'/>
+              </dbk:personname>
+            </xsl:otherwise>
+          </xsl:choose>
+          <xsl:apply-templates mode='rnd:author-personblurb'/>
+          <xsl:apply-templates select='following-sibling::*[1]'
+            mode='rnd:author'/>
+        </dbk:author>
+        <xsl:call-template name='rnd:resume-metadata'>
+	  <xsl:with-param name='node' select='following-sibling::*[1]'/>
+	</xsl:call-template>
+      </xsl:when>
+      <xsl:when test='@rnd:style = "personblurb" or
+                      @rnd:style = "address" or
+                      @rnd:style = "affiliation" or
+                      @rnd:style = "contrib" or
+                      @rnd:style = "email"'/>
+
+      <xsl:when test='@rnd:style = "releaseinfo" or
+                      @rnd:style = "date" or
+                      @rnd:style = "pubdate" or
+                      @rnd:style = "pagenums" or
+                      @rnd:style = "issuenum" or
+                      @rnd:style = "volumenum" or
+                      @rnd:style = "edition" or
+                      @rnd:style = "editor" or
+                      @rnd:style = "othercredit" or
+                      @rnd:style = "biblioid" or
+                      @rnd:style = "bibliosource" or
+                      @rnd:style = "bibliomisc" or
+                      @rnd:style = "revhistory" or
+                      @rnd:style = "revision"'>
+        <xsl:element name='{@rnd:style}'
+          namespace='http://docbook.org/ns/docbook'>
+          <xsl:apply-templates mode='rnd:metadata'/>
+        </xsl:element>
+        <xsl:apply-templates select='following-sibling::*[1]'
+          mode='rnd:metadata'/>
+      </xsl:when>
+      <xsl:when test='contains(@rnd:style, "-titleabbrev")'>
+        <xsl:variable name='parent'
+          select='substring-before(@rnd:style, "-titleabbrev")'/>
+
+        <xsl:choose>
+          <xsl:when test='$parent = local-name(..)'>
+            <dbk:titleabbrev>
+              <xsl:apply-templates mode='rnd:metadata'/>
+            </dbk:titleabbrev>
+          </xsl:when>
+          <xsl:when test='(parent::dbk:article or parent::dbk:book-component) and
+                          preceding-sibling::dbk:para[@rnd:style = concat($parent, "-title")]'>
+            <dbk:titleabbrev>
+              <xsl:apply-templates mode='rnd:metadata'/>
+            </dbk:titleabbrev>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name='rnd:error'>
+              <xsl:with-param name='code'>bad-titleabbrev</xsl:with-param>
+              <xsl:with-param name='message'>titleabbrev style "<xsl:value-of select='@rnd:style'/>" mismatches parent "<xsl:value-of select='local-name(..)'/>"</xsl:with-param>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+
+        <xsl:apply-templates select='following-sibling::*[1]'
+          mode='rnd:metadata'/>
+      </xsl:when>
+      <xsl:when test='contains(@rnd:style, "-title")'>
+        <xsl:variable name='parent'
+          select='substring-before(@rnd:style, "-title")'/>
+
+        <xsl:choose>
+          <xsl:when test='$parent = "table" or
+                          $parent = "figure"'>
+            <dbk:title>
+              <xsl:apply-templates mode='rnd:metadata'/>
+            </dbk:title>
+          </xsl:when>
+          <xsl:when test='$parent = local-name(..)'>
+            <dbk:title>
+              <xsl:apply-templates mode='rnd:metadata'/>
+            </dbk:title>
+          </xsl:when>
+          <xsl:when test='parent::dbk:book-component'>
+            <dbk:title>
+              <xsl:apply-templates mode='rnd:metadata'/>
+            </dbk:title>
+          </xsl:when>
+          <xsl:when test='parent::dbk:article and
+                          not(../../..)'>
+            <dbk:title>
+              <xsl:apply-templates mode='rnd:metadata'/>
+            </dbk:title>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name='rnd:error'>
+              <xsl:with-param name='code'>bad-title</xsl:with-param>
+              <xsl:with-param name='message'>title style "<xsl:value-of select='@rnd:style'/>" mismatches parent "<xsl:value-of select='local-name(..)'/>"</xsl:with-param>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+
+        <xsl:apply-templates select='following-sibling::*[1]'
+          mode='rnd:metadata'/>
+      </xsl:when>
+
+      <!-- Exception to normal subtitle handling is biblioentry-subtitle -->
+      <xsl:when test='@rnd:style = "biblioentry-subtitle"'>
+        <!-- TODO: check that this is in a biblioentry -->
+        <dbk:subtitle>
+          <xsl:apply-templates mode='rnd:metadata'/>
+        </dbk:subtitle>
+
+        <xsl:apply-templates select='following-sibling::*[1]'
+          mode='rnd:metadata'/>
+      </xsl:when>
+      <xsl:when test='contains(@rnd:style, "-subtitle")'>
+        <xsl:variable name='parent'
+          select='substring-before(@rnd:style, "-subtitle")'/>
+
+        <xsl:choose>
+          <xsl:when test='$parent = local-name(..)'>
+            <dbk:subtitle>
+              <xsl:apply-templates mode='rnd:metadata'/>
+            </dbk:subtitle>
+          </xsl:when>
+          <xsl:when test='(parent::dbk:article or parent::dbk:book-component) and
+                          preceding-sibling::dbk:para[@rnd:style = concat($parent, "-title")]'>
+            <dbk:subtitle>
+              <xsl:apply-templates mode='rnd:metadata'/>
+            </dbk:subtitle>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name='rnd:error'>
+              <xsl:with-param name='code'>bad-subtitle</xsl:with-param>
+              <xsl:with-param name='message'>subtitle style "<xsl:value-of select='@rnd:style'/>" mismatches parent "<xsl:value-of select='local-name(..)'/>"</xsl:with-param>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+
+        <xsl:apply-templates select='following-sibling::*[1]'
+          mode='rnd:metadata'/>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "publisher-address" and
+                      preceding-sibling::*[1][not(self::dbk:para) or not(@rnd:style = "publisher")]'>
+        <xsl:call-template name='rnd:error'>
+          <xsl:with-param name='code'>bad-publisher-address</xsl:with-param>
+          <xsl:with-param name='message'>publisher-address must follow publisher</xsl:with-param>
+        </xsl:call-template>
+        <xsl:apply-templates select='following-sibling::*[1]'
+          mode='rnd:metadata'/>
+      </xsl:when>
+      <xsl:when test='@rnd:style = "publisher-address"'>
+        <xsl:apply-templates select='following-sibling::*[1]'
+          mode='rnd:metadata'/>
+      </xsl:when>
+      <xsl:when test='@rnd:style = "publisher"'>
+        <dbk:publisher>
+          <dbk:publishername>
+            <xsl:apply-templates/>
+          </dbk:publishername>
+          <xsl:if test='following-sibling::*[1][@rnd:style = "publisher-address"]'>
+            <xsl:apply-templates select='following-sibling::*[1]'
+              mode='rnd:publisher'/>
+          </xsl:if>
+        </dbk:publisher>
+
+        <xsl:apply-templates select='following-sibling::*[1]'
+          mode='rnd:metadata'/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template name='rnd:keyword'>
+    <xsl:param name='nodes' select='/..'/>
+
+    <xsl:choose>
+      <xsl:when test='not($nodes)'/>
+      <xsl:otherwise>
+        <xsl:call-template name='rnd:keyword-phrases'>
+          <xsl:with-param name='text' select='$nodes[1]'/>
+        </xsl:call-template>
+        <xsl:call-template name='rnd:keyword'>
+          <xsl:with-param name='nodes' select='$nodes[position() != 1]'/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+  <xsl:template name='rnd:keyword-phrases'>
+    <xsl:param name='text'/>
+
+    <xsl:choose>
+      <xsl:when test='not($text)'/>
+      <xsl:when test='contains($text, ",")'>
+        <dbk:keyword>
+          <xsl:value-of select='normalize-space(substring-before($text, ","))'/>
+        </dbk:keyword>
+        <xsl:call-template name='rnd:keyword-phrases'>
+          <xsl:with-param name='text' select='substring-after($text, ",")'/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <dbk:keyword>
+          <xsl:value-of select='normalize-space($text)'/>
+        </dbk:keyword>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='dbk:emphasis' mode='rnd:metadata'>
+    <xsl:choose>
+      <xsl:when test='not(@rnd:style)'>
+        <xsl:copy>
+          <xsl:apply-templates mode='rnd:metadata'/>
+        </xsl:copy>
+      </xsl:when>
+      <xsl:when test='@rnd:style = "Hyperlink" and
+                      parent::dbk:link'>
+        <xsl:apply-templates mode='rnd:metadata'/>
+      </xsl:when>
+      <xsl:when test='@rnd:style = "Hyperlink"'>
+        <dbk:link xlink:href='{.}'>
+          <xsl:apply-templates mode='rnd:metadata'/>
+        </dbk:link>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name='{@rnd:style}'
+          namespace='http://docbook.org/ns/docbook'>
+          <xsl:apply-templates mode='rnd:metadata'/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+  <xsl:template match='dbk:link' mode='rnd:metadata'>
+    <xsl:copy>
+      <xsl:apply-templates select='@*' mode='rnd:copy'/>
+      <xsl:apply-templates mode='rnd:metadata'/>
+    </xsl:copy>
+  </xsl:template>
+  <xsl:template match='dbk:inlinemediaobject' mode='rnd:metadata'>
+    <xsl:call-template name='rnd:copy'/>
+  </xsl:template>
+  <xsl:template match='*' mode='rnd:metadata'/>
+
+  <xsl:template name='rnd:resume-metadata'>
+    <xsl:param name='node' select='/..'/>
+
+    <xsl:choose>
+      <xsl:when test='$node[self::dbk:para][&author-content;]'>
+	<xsl:call-template name='rnd:resume-metadata'>
+	  <xsl:with-param name='node' select='$node/following-sibling::*[1]'/>
+	</xsl:call-template>
+      </xsl:when>
+      <xsl:when test='$node[self::dbk:para][&metadata-content;]'>
+	<xsl:apply-templates select='$node' mode='rnd:metadata'/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='dbk:para' mode='rnd:abstract'>
+    <xsl:choose>
+      <xsl:when test='@rnd:style = "abstract-title"'>
+        <dbk:title>
+          <xsl:call-template name='rnd:attributes'/>
+          <xsl:apply-templates/>
+        </dbk:title>
+      </xsl:when>
+      <xsl:otherwise>
+        <dbk:para>
+          <xsl:call-template name='rnd:attributes'/>
+          <xsl:apply-templates/>
+        </dbk:para>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='dbk:para' mode='rnd:legalnotice'>
+    <dbk:para>
+      <xsl:call-template name='rnd:attributes'/>
+      <xsl:apply-templates/>
+    </dbk:para>
+  </xsl:template>
+
+  <xsl:template match='dbk:footnote' mode='rnd:personname'/>
+  <xsl:template match='dbk:emphasis' mode='rnd:personname'>
+    <!-- Need to check preceding emphasis for same style,
+         but blocks pretty-prints and all text nodes
+         are preserved in paragraph content.
+      -->
+    <xsl:variable name='previous'
+      select='preceding-sibling::node()[not(self::text()) or (self::text() and normalize-space() != "")]'/>
+    <!--
+    <xsl:comment> this style is <xsl:value-of select='@rnd:style'/>, previous style is <xsl:value-of select='$previous[last()]/@rnd:style'/> # previous <xsl:value-of select='count($previous)'/></xsl:comment>
+-->
+    <xsl:choose>
+      <!-- inlines are coalesced -->
+      <xsl:when test='@rnd:style = $previous[last()][self::dbk:emphasis]/@rnd:style'/>
+      <xsl:when test='@rnd:style = "honorific" or
+                      @rnd:style = "firstname" or
+                      @rnd:style = "lineage" or
+                      @rnd:style = "othername" or
+                      @rnd:style = "surname"'>
+        <xsl:element name='{@rnd:style}'
+          namespace='http://docbook.org/ns/docbook'>
+          <xsl:apply-templates/>
+          <xsl:apply-templates select='following-sibling::dbk:emphasis[1]'
+            mode='rnd:personname-emphasis'>
+            <xsl:with-param name='style' select='@rnd:style'/>
+          </xsl:apply-templates>
+        </xsl:element>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name='rnd:error'>
+          <xsl:with-param name='code'>bad-author-inline</xsl:with-param>
+          <xsl:with-param name='message'>character span "<xsl:value-of select='@rnd:style'/>" not allowed in an author paragraph</xsl:with-param>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='text()' mode='rnd:author-personblurb'/>
+  <xsl:template match='dbk:emphasis' mode='rnd:author-personblurb'/>
+  <xsl:template match='dbk:footnote' mode='rnd:author-personblurb'>
+    <dbk:personblurb>
+      <dbk:para>
+        <xsl:copy>
+          <xsl:apply-templates select='@*' mode='rnd:copy'/>
+          <xsl:apply-templates/>
+        </xsl:copy>
+      </dbk:para>
+    </dbk:personblurb>
+  </xsl:template>
+
+  <xsl:template match='dbk:para' mode='rnd:author'>
+    <xsl:choose>
+      <xsl:when test='@rnd:style = "personblurb" and
+                      preceding-sibling::*[1][self::dbk:para and @rnd:style != "personblurb"]'>
+        <dbk:personblurb>
+          <xsl:apply-templates select='.'
+            mode='rnd:personblurb'/>
+        </dbk:personblurb>
+      </xsl:when>
+      <xsl:when test='@rnd:style = "personblurb"'>
+        <xsl:apply-templates select='following-sibling::*[1]'
+          mode='rnd:author'/>
+      </xsl:when>
+
+      <!-- Web and mail addresses may appear in a simplified form -->
+      <xsl:when test='@rnd:style = "address"'>
+        <xsl:choose>
+          <xsl:when test='dbk:link and
+                          count(dbk:link) = count(*)'>
+            <!-- simplified form -->
+            <dbk:otheraddr>
+              <xsl:apply-templates select='dbk:link'
+                mode='rnd:otheraddr'/>
+            </dbk:otheraddr>
+          </xsl:when>
+          <xsl:otherwise>
+            <dbk:address>
+              <xsl:apply-templates mode='rnd:author'/>
+            </dbk:address>
+            <xsl:apply-templates select='following-sibling::*[1]'
+              mode='rnd:author'/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:when test='@rnd:style = "affiliation"'>
+	<dbk:affiliation>
+	  <xsl:choose>
+	    <xsl:when test='not(*)'>
+              <dbk:jobtitle>
+		<xsl:apply-templates mode='rnd:author'/>
+	      </dbk:jobtitle>
+	    </xsl:when>
+	    <xsl:otherwise>
+              <xsl:apply-templates mode='rnd:author'/>
+	    </xsl:otherwise>
+	  </xsl:choose>
+	</dbk:affiliation>
+	<xsl:apply-templates select='following-sibling::*[1]'
+			     mode='rnd:author'/>
+      </xsl:when>
+      <xsl:when test='@rnd:style = "contrib" or
+                      @rnd:style = "email"'>
+        <xsl:element name='{@rnd:style}'
+          namespace='http://docbook.org/ns/docbook'>
+          <xsl:apply-templates mode='rnd:author'/>
+        </xsl:element>
+        <xsl:apply-templates select='following-sibling::*[1]'
+          mode='rnd:author'/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='dbk:link' mode='rnd:otheraddr'>
+    <xsl:copy>
+      <xsl:apply-templates select='@*' mode='rnd:copy'/>
+      <xsl:apply-templates mode='rnd:otheraddr'/>
+    </xsl:copy>
+  </xsl:template>
+
+  <!-- TODO: not all of these inlines are allowed in all elements that are children of author.
+       Need to further refine validation of inlines.
+    -->
+  <xsl:template match='dbk:emphasis' mode='rnd:author'>
+    <xsl:choose>
+      <xsl:when test='@rnd:style = "city" or
+                      @rnd:style = "country" or
+                      @rnd:style = "email" or
+                      @rnd:style = "fax" or
+                      @rnd:style = "jobtitle" or
+                      @rnd:style = "orgdiv" or
+                      @rnd:style = "orgname" or
+                      @rnd:style = "otheraddr" or
+                      @rnd:style = "phone" or
+                      @rnd:style = "pob" or
+                      @rnd:style = "postcode" or
+                      @rnd:style = "shortaffil" or
+                      @rnd:style = "state" or
+                      @rnd:style = "street"'>
+        <xsl:element name='{@rnd:style}'
+          namespace='http://docbook.org/ns/docbook'>
+          <xsl:apply-templates/>
+        </xsl:element>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name='rnd:error'>
+          <xsl:with-param name='code'>metadata-bad-inline</xsl:with-param>
+          <xsl:with-param name='message'>character span "<xsl:value-of select='@rnd:style'/>" not allowed in author metadata</xsl:with-param>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='dbk:para' mode='rnd:personblurb'>
+    <xsl:if test='@rnd:style = "personblurb"'>
+      <dbk:para>
+        <xsl:apply-templates/>
+      </dbk:para>
+      <xsl:apply-templates select='following-sibling::*[1]'
+        mode='rnd:personblurb'/>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match='dbk:para' mode='rnd:publisher'>
+    <xsl:if test='@rnd:style = "publisher-address"'>
+      <dbk:address>
+        <xsl:apply-templates/>
+      </dbk:address>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match='dbk:para' mode='rnd:programlisting'>
+    <xsl:text>&#xa;</xsl:text>
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <!-- Continuing paragraphs -->
+
+  <xsl:template match='*' mode='rnd:continue'/>
+  <xsl:template match='dbk:para' mode='rnd:continue'>
+    <xsl:if test='@rnd:style = "para-continue"'>
+      <dbk:para>
+        <xsl:call-template name='rnd:attributes'/>
+        <xsl:apply-templates/>
+      </dbk:para>
+      <xsl:apply-templates select='following-sibling::*[1]'
+        mode='rnd:continue'/>
+    </xsl:if>
+  </xsl:template>
+  <xsl:template match='dbk:informaltable' mode='rnd:continue'>
+    <xsl:apply-templates select='.'>
+      <xsl:with-param name='in-list' select='true()'/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select='following-sibling::*[1]'
+      mode='rnd:continue'/>
+  </xsl:template>
+
+  <!-- Tables -->
+
+  <xsl:template match='dbk:informaltable'>
+    <xsl:param name='in-list' select='false()'/>
+
+    <xsl:choose>
+      <xsl:when test='not($in-list) and
+                      preceding-sibling::dbk:para[1][starts-with(@rnd:style, "itemizedlist") or starts-with(@rnd:style, "orderedlist") or @rnd:style = "para-continue"]'/>
+      <xsl:when test='preceding-sibling::*[1][self::dbk:para][@rnd:style ="table-title"]'>
+	<dbk:table>
+	  <xsl:apply-templates select='@*' mode='rnd:copy'/>
+
+	  <dbk:info>
+	    <xsl:apply-templates select='preceding-sibling::dbk:para[1]'
+				 mode='rnd:table-title'/>
+	  </dbk:info>
+
+	  <xsl:call-template name='rnd:table-textobject'/>
+
+	  <xsl:apply-templates/>
+
+	  <xsl:call-template name='rnd:table-caption'/>
+	</dbk:table>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:copy>
+	  <xsl:apply-templates select='@*' mode='rnd:copy'/>
+
+	  <xsl:call-template name='rnd:table-textobject'/>
+
+	  <xsl:apply-templates/>
+
+	  <xsl:call-template name='rnd:table-caption'/>
+	</xsl:copy>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+  <xsl:template match='dbk:tgroup'>
+    <xsl:copy>
+      <xsl:apply-templates select='@*' mode='rnd:copy'/>
+      <xsl:if test='not(@cols)'>
+        <xsl:attribute name='cols'>
+          <xsl:call-template name='dbk:max-columns'>
+            <xsl:with-param name='rows' select='*/dbk:row'/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </xsl:copy>
+  </xsl:template>
+  <xsl:template name='dbk:max-columns'>
+    <xsl:param name='rows' select='/..'/>
+    <xsl:param name='max' select='0'/>
+
+    <!-- This is a tail-recursive algorithm.
+         Could improve this with other algorithm(s),
+         eg. divide-and-conquer.
+      -->
+
+    <xsl:choose>
+      <xsl:when test='not($rows)'>
+        <xsl:value-of select='$max'/>
+      </xsl:when>
+      <xsl:when test='count($rows[1]/dbk:entry) > $max'>
+        <xsl:call-template name='dbk:max-columns'>
+          <xsl:with-param name='rows' select='$rows[position() != 1]'/>
+          <xsl:with-param name='max' select='count($rows[1]/dbk:entry)'/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name='dbk:max-columns'>
+          <xsl:with-param name='rows' select='$rows[position() != 1]'/>
+          <xsl:with-param name='max' select='$max'/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+  <xsl:template match='dbk:tbody|dbk:thead|dbk:tfoot|dbk:row|dbk:colspec'>
+    <xsl:copy>
+      <xsl:apply-templates select='@*' mode='rnd:copy'/>
+      <xsl:apply-templates/>
+    </xsl:copy>
+  </xsl:template>
+  <xsl:template match='dbk:entry'>
+    <dbk:entry>
+      <xsl:apply-templates select='@*' mode='rnd:copy'/>
+      <xsl:apply-templates/>
+    </dbk:entry>
+  </xsl:template>
+
+  <xsl:template match='dbk:para' mode='rnd:table-title'>
+    <dbk:title>
+      <xsl:apply-templates/>
+    </dbk:title>
+  </xsl:template>
+
+  <!-- Find the caption associated with this table -->
+  <xsl:template name='rnd:table-caption'>
+    <xsl:variable name='candidate'
+		  select='following-sibling::dbk:para[@rnd:style = "caption" or @rnd:style = "Caption"][1]'/>
+
+    <xsl:if test='$candidate != "" and
+		  generate-id($candidate/preceding-sibling::dbk:informaltable[1]) = generate-id(.)'>
+      <dbk:caption>
+	<dbk:para>
+	  <xsl:apply-templates select='$candidate/node()'/>
+	</dbk:para>
+      </dbk:caption>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- Find table associated text -->
+  <xsl:template name='rnd:table-textobject'>
+    <xsl:variable name='caption'
+		  select='following-sibling::dbk:para[@rnd:style = "caption" or @rnd:style = "Caption"][1]'/>
+
+    <xsl:if test='generate-id($caption/preceding-sibling::dbk:informaltable[1]) = generate-id(.)'>
+      <xsl:variable name='content'
+		    select='following-sibling::*[following-sibling::*[generate-id($caption) = generate-id()]]'/>
+      <xsl:if test='$content'>
+	<dbk:textobject>
+	  <xsl:apply-templates select='$content' mode='rnd:textobject'/>
+	</dbk:textobject>
+      </xsl:if>
+    </xsl:if>
+  </xsl:template>
+  <xsl:template match='dbk:para' mode='rnd:textobject'>
+    <xsl:call-template name='rnd:para'>
+      <xsl:with-param name='suppress' select='false()'/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <!-- Footnotes -->
+  <xsl:template match='dbk:footnote'>
+    <xsl:copy>
+      <xsl:apply-templates select='@*' mode='rnd:copy'/>
+      <xsl:apply-templates/>
+    </xsl:copy>
+  </xsl:template>
+
+  <!-- utilities -->
+
+  <!-- rnd:attributes reconstitutes an element's attributes -->
+  <xsl:template name='rnd:attributes'>
+    <xsl:param name='node' select='.'/>
+
+    <xsl:apply-templates select='$node/@*[namespace-uri() != "http://docbook.org/ns/docbook/roundtrip"]' mode='rnd:copy'/>
+  </xsl:template>
+
+  <xsl:template match='*' name='rnd:copy' mode='rnd:copy'>
+    <xsl:copy>
+      <xsl:apply-templates select='@*' mode='rnd:copy'/>
+      <xsl:apply-templates mode='rnd:copy'/>
+    </xsl:copy>
+  </xsl:template>
+  <xsl:template match='@*' mode='rnd:copy'>
+    <xsl:copy/>
+  </xsl:template>
+
+  <!-- These templates are invoked whenever an error condition is detected in the conversion of a document.
+    -->
+  <xsl:template name='rnd:error'>
+    <xsl:param name='node' select='.'/>
+    <xsl:param name='code'/>
+    <xsl:param name='message'/>
+
+    <xsl:comment><xsl:value-of select='$message'/></xsl:comment>
+    <xsl:message>ERROR "<xsl:value-of select='$code'/>": <xsl:value-of select='$message'/></xsl:message>
+    <rnd:error>
+      <rnd:code>
+        <xsl:value-of select='$code'/>
+      </rnd:code>
+      <rnd:message>
+        <xsl:value-of select='$message'/>
+      </rnd:message>
+    </rnd:error>
+  </xsl:template>
+  <xsl:template name='rnd:warning'>
+    <xsl:param name='node' select='.'/>
+    <xsl:param name='code'/>
+    <xsl:param name='message'/>
+
+    <xsl:comment><xsl:value-of select='$message'/></xsl:comment>
+    <xsl:message>WARNING "<xsl:value-of select='$code'/>": <xsl:value-of select='$message'/></xsl:message>
+    <rnd:warning>
+      <rnd:code>
+        <xsl:value-of select='$code'/>
+      </rnd:code>
+      <rnd:message>
+        <xsl:value-of select='$message'/>
+      </rnd:message>
+    </rnd:warning>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/roundtrip/dbk2ooo.xsl b/applications/content/template/docbook/roundtrip/dbk2ooo.xsl
new file mode 100644
index 0000000..8f18b78
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/dbk2ooo.xsl
@@ -0,0 +1,178 @@
+<xsl:stylesheet version="1.0"
+  xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
+  xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+  xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+  xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+  xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+  xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+  xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+  xmlns:xlink="http://www.w3.org/1999/xlink"
+  xmlns:dc="http://purl.org/dc/elements/1.1/"
+  xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+  xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+  xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+  xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+  xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+  xmlns:math="http://www.w3.org/1998/Math/MathML"
+  xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+  xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+  xmlns:ooo="http://openoffice.org/2004/office"
+  xmlns:ooow="http://openoffice.org/2004/writer"
+  xmlns:oooc="http://openoffice.org/2004/calc"
+  xmlns:dom="http://www.w3.org/2001/xml-events"
+  xmlns:xforms="http://www.w3.org/2002/xforms"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns:doc='http://docbook.org/ns/docbook'
+  exclude-result-prefixes='doc'>
+
+  <xsl:import href='dbk2wp.xsl'/>
+
+  <xsl:output method="xml" indent='yes'/>
+
+  <!-- ********************************************************************
+       $Id$
+       ********************************************************************
+
+       This file is part of the XSL DocBook Stylesheet distribution.
+       See ../README or http://docbook.sf.net/release/xsl/current/ for
+       copyright and other information.
+
+       ******************************************************************** -->
+
+  <xsl:include href='../VERSION.xsl'/>
+
+  <xsl:template match="/" name='ooo.top'>
+    <xsl:param name='doc' select='/'/>
+
+    <office:document-content
+      office:version='1.0'>
+
+      <office:script/>
+      <office:font-face-decls>
+        <style:font-face style:name="Nimbus Roman No9 L"
+          svg:font-family="'Nimbus Roman No9 L'"
+          style:font-family-generic="roman"
+          style:font-pitch="variable"/>
+        <style:font-face style:name="Nimbus Sans L"
+          svg:font-family="'Nimbus Sans L'"
+          style:font-family-generic="swiss"
+          style:font-pitch="variable"/>
+        <style:font-face style:name="DejaVu LGC Sans"
+          svg:font-family="'DejaVu LGC Sans'"
+          style:font-family-generic="system"
+          style:font-pitch="variable"/>
+      </office:font-face-decls>
+      <office:automatic-styles/>
+
+      <xsl:apply-templates select='$doc/*'
+        mode='doc:toplevel'/>
+    </office:document-content>
+  </xsl:template>
+
+  <xsl:template name='doc:make-body'>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+    <office:body>
+      <office:text>
+        <office-forms form:automatic-focus='false'
+          form:apply-design-mode='false'/>
+        <text:sequence-decls>
+          <text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
+          <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
+          <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
+          <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
+        </text:sequence-decls>
+
+        <xsl:copy-of select='$content'/>
+      </office:text>
+    </office:body>
+  </xsl:template>
+
+  <xsl:template name='doc:make-subsection'>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+    <xsl:copy-of select='$content'/>
+  </xsl:template>
+
+  <xsl:template name='doc:make-paragraph'>
+    <xsl:param name='style' select='"unknown"'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+    <xsl:param name='outline.level' select='0'/>
+    <xsl:param name='attributes.node' select='.'/>
+
+    <text:p text:style-name='{$style}'>
+
+      <xsl:call-template name='attributes'>
+        <xsl:with-param name='node' select='$attributes.node'/>
+      </xsl:call-template>
+
+      <xsl:copy-of select='$content'/>
+    </text:p>
+  </xsl:template>
+
+  <xsl:template name='doc:make-phrase'>
+    <xsl:param name='style' select='"unknown"'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+    <text:span text:style-name='{$style}'>
+      <xsl:copy-of select='$content'/>
+    </text:span>
+  </xsl:template>
+
+  <xsl:template name='doc:make-hyperlink'/>
+  <xsl:template name='doc:make-hyperlink-not-implemented'>
+    <xsl:param name='target'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+    <text:link href='{$target}'>
+    </text:link>
+  </xsl:template>
+
+  <xsl:template name='doc:make-table'/>
+  <xsl:template name='doc:make-table-not-yet-implemented'>
+    <xsl:param name='columns'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+  </xsl:template>
+
+  <xsl:template name='doc:make-table-row'>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+    <xsl:param name='is-header' select='false()'/>
+
+  </xsl:template>
+
+  <xsl:template name='doc:make-table-cell'>
+    <xsl:param name='width' select='0'/>
+    <xsl:param name='hidden' select='false()'/>
+    <xsl:param name='rowspan' select='1'/>
+    <xsl:param name='colspan' select='1'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+  </xsl:template>
+
+  <xsl:template name='doc:make-soft-break'>
+    <text:br/>
+  </xsl:template>
+
+  <xsl:template name='attributes'>
+    <xsl:param name='node' select='.'/>
+
+  </xsl:template>
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/roundtrip/dbk2pages.xsl b/applications/content/template/docbook/roundtrip/dbk2pages.xsl
new file mode 100644
index 0000000..a380e5c
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/dbk2pages.xsl
@@ -0,0 +1,441 @@
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:sfa="http://developer.apple.com/namespaces/sfa"
+  xmlns:sf="http://developer.apple.com/namespaces/sf"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns:sl="http://developer.apple.com/namespaces/sl"
+  xmlns:xi="http://www.w3.org/2001/XInclude"
+  xmlns:doc='http://docbook.org/ns/docbook'
+  xmlns:rnd='http://docbook.org/ns/docbook/roundtrip'
+  exclude-result-prefixes='doc rnd xi'>
+
+  <xsl:import href='dbk2wp.xsl'/>
+
+  <xsl:output method="xml" indent='yes' encoding='ascii'/>
+
+  <!-- ********************************************************************
+       $Id$
+       ********************************************************************
+
+       This file is part of the XSL DocBook Stylesheet distribution.
+       See ../README or http://docbook.sf.net/release/xsl/current/ for
+       copyright and other information.
+
+       ******************************************************************** -->
+
+  <xsl:include href='../VERSION.xsl'/>
+  <xsl:include href='param.xsl'/>
+
+  <xsl:variable name='templatedoc' select='document($pages.template)'/>
+
+  <!-- Find all tables in the document once,
+          as we will be iterating over them in more than one place.
+      -->
+  <xsl:variable name='rnd:pages-tables'
+    select='//doc:table|//doc:informaltable'/>
+
+  <!-- Lookup style identifiers from their user-visible name -->
+  <xsl:variable name='paragraph-styles'
+		select='$templatedoc//sf:paragraphstyle'/>
+  <xsl:variable name='character-styles'
+		select='$templatedoc//sf:characterstyle'/>
+
+  <xsl:template match="/" name='pages.top'>
+    <xsl:param name='doc' select='/'/>
+
+    <xsl:if test='not($pages.template)'>
+      <xsl:message terminate='yes'>Please specify the template document with the "pages.template" parameter</xsl:message>
+    </xsl:if>
+    <xsl:if test='not($templatedoc)'>
+      <xsl:message terminate='yes'>Unable to open template document "<xsl:value-of select='$pages.template'/>"</xsl:message>
+    </xsl:if>
+
+    <sl:document
+      sfa:ID="SLPublicationModel-0"
+      sl:version="72007061400"
+      sl:generator="slingshot"
+      sl:app_build_date="Sep 26 2007, 14:46:11">
+
+      <xsl:apply-templates select='$templatedoc/sl:document/*[not(self::sf:text-storage)]'
+        mode='doc:copy'/>
+
+      <xsl:apply-templates select='$doc/*'
+        mode='doc:toplevel'/>
+
+      <xsl:apply-templates select='$templatedoc/sl:document/sf:text-storage/following-sibling::*'
+        mode='doc:copy'/>
+    </sl:document>
+  </xsl:template>
+
+  <xsl:template match='sf:calc-engine' mode='doc:copy'>
+    <xsl:copy>
+      <xsl:apply-templates select='@*' mode='doc:copy'/>
+
+      <xsl:choose>
+        <xsl:when test='not(sf:calc-engine-entities)'>
+          <xsl:call-template name='rnd:pages-make-calc-engine-entities'/>
+          <xsl:apply-templates mode='doc:copy'/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode='doc:copy'/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:copy>
+  </xsl:template>
+  <xsl:template name='rnd:pages-make-calc-engine-entities'
+    match='sf:calc-engine-entities' mode='doc:copy'>
+    <sf:calc-engine-entities>
+      <xsl:choose>
+        <xsl:when test='self::calc-engine-entities'>
+          <xsl:apply-templates select='@*' mode='doc:copy'/>
+          <xsl:apply-templates mode='doc:copy'/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:attribute name='sfa:ID'>
+            <xsl:text>DocBookRoundtrip-1</xsl:text>
+          </xsl:attribute>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:for-each select='$rnd:pages-tables'>
+        <xsl:variable name='num' select='position()'/>
+
+        <xsl:variable name='num-cells'
+          select='count(doc:tgroup/*/doc:row/doc:entry)'/>
+        <xsl:variable name='num-rows' select='count(doc:tgroup/*/doc:row)'/>
+        <xsl:variable name='num-cols' select='$num-cells div $num-rows'/>
+
+        <sf:tabular-model sfa:ID='SFTTableModel-{$num}' sf:name='Unnamed Table'
+          sfa:id=''
+          sf:num-header-rows='{count(doc:tgroup/doc:thead/doc:row)}' sf:num-footer-rows='{count(doc:tgroup/doc:tfoot/doc:row)}'
+          sf:num-header-columns='0' sf:name-is-visible='false' sf:grouping-enabled='false'>
+          <sf:grid sfa:ID='SFTTableGrid-{$num}'
+            sf:ocnt='{$num-cells}'
+            sf:numcols='{$num-cols}'
+            sf:numrows='{$num-rows}'
+            sf:hiddennumcols='0' sf:hiddennumrows='0'>
+            <sf:columns sf:count='{$num-cols}'>
+              <xsl:apply-templates select='doc:tgroup/doc:colspec'
+                mode='rnd:pages-table-colspec'/>
+            </sf:columns>
+            <sf:vertical-gridline-styles sf:array-size='0'/> <!-- TODO: borders -->
+            <sf:rows sf:count='{$num-rows}'>
+              <xsl:call-template name='rnd:pages-make-table-rowspecs'>
+                <xsl:with-param name='number' select='$num-rows'/>
+              </xsl:call-template>
+            </sf:rows>
+            <sf:horizontal-gridline-styles sf:array-size='0'/> <!-- TODO: borders -->
+            <sf:datasource sfa:ID='SFTConcreteTableDataSource-{$num}'>
+              <xsl:apply-templates select='doc:tgroup/doc:thead/doc:row'
+                mode='rnd:pages-table-data'>
+                <xsl:with-param name='start-row' select='0'/>
+              </xsl:apply-templates>
+              <xsl:apply-templates select='doc:tgroup/doc:tbody/doc:row'
+                mode='rnd:pages-table-data'>
+                <xsl:with-param name='start-row' select='count(doc:tgroup/doc:thead/doc:row)'/>
+              </xsl:apply-templates>
+              <xsl:apply-templates select='doc:tgroup/doc:tfoot/doc:row'
+                mode='rnd:pages-table-data'>
+                <xsl:with-param name='start-row' select='count(doc:tgroup/doc:thead/doc:row) + count(doc:tgroup/doc:tbody/doc:row)'/>
+              </xsl:apply-templates>
+            </sf:datasource>
+            <sf:sort sfa:ID='DocBookPagesTableNSArray-{$num}'>
+              <sf:sort-spec sfa:ID='SFTTableSortSpec-{$num}'
+                sf:sort-col='0' sf:sort-order='true'/>
+            </sf:sort>
+            <sf:filterset sfa:ID='SFTTableFilterSet-{$num}'
+              sf:type='0' sf:enabled='false' sf:spec-count='1'>
+              <sf:filterspec sfa:ID='SFTTableFilterSpec-{$num}'
+                sf:filtercol='0' sf:predicate='1' sf:keyscale='0' sf:key1=''/>
+            </sf:filterset>
+            <sf:cell-comment-mapping sfa:ID='DocBookPagesTableCellCommentNSMutableDictionary-{$num}'/>
+            <sf:error_warning_mapping sfa:ID='DocBookPagesTableErrorWarningNSMutableDictionary-{$num}'/>
+          </sf:grid>
+        </sf:tabular-model>
+      </xsl:for-each>
+    </sf:calc-engine-entities>
+  </xsl:template>
+
+  <xsl:template match='doc:row' mode='rnd:pages-table-data'>
+    <xsl:param name='start-row' select='0'/>
+    <xsl:apply-templates mode='rnd:pages-table-data'>
+      <xsl:with-param name='row'
+        select='$start-row + count(preceding-sibling::doc:row)'/>
+    </xsl:apply-templates>
+  </xsl:template>
+  <xsl:template match='doc:entry' mode='rnd:pages-table-data'>
+    <xsl:param name='row' select='0'/>
+    <sf:text-cell sf:flags='4' sf:col='{count(preceding-sibling::doc:entry)}' sf:row='{$row}'>
+      <sf:cell-style-ref sfa:IDREF='SFTCellStyle-3'/>
+      <sf:content-size sfa:w='60' sfa:h='25'/>
+      <sf:cell-text>
+        <xsl:choose>
+          <xsl:when test='count(.//*) > 2'>
+            <sf:cell-storage>
+              <sf:stylesheet-ref sfa:IDREF="SFSStylesheet-1"/>
+              <sf:text-body>
+                <xsl:apply-templates/>
+              </sf:text-body>
+            </sf:cell-storage>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:attribute name='sfa:string'>
+              <xsl:apply-templates mode='rnd:pages-table-text'/>
+            </xsl:attribute>
+          </xsl:otherwise>
+        </xsl:choose>
+      </sf:cell-text>
+    </sf:text-cell>
+  </xsl:template>
+
+  <xsl:template name='rnd:pages-make-table-rowspecs'>
+    <xsl:param name='number' select='0'/>
+
+    <xsl:choose>
+      <xsl:when test='$number &lt;= 0'/>
+      <xsl:otherwise>
+        <sf:grid-row sf:height='25' sf:fitting-height='25'/>
+        <xsl:call-template name='rnd:pages-make-table-rowspecs'>
+          <xsl:with-param name='number' select='$number - 1'/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='doc:colspec' mode='rnd:pages-table-colspec'>
+    <sf:grid-column sf:width='{@colwidth}' sf:preferred-width='{@colwidth}'
+      sf:fitting-width='{@colwidth}'/>
+  </xsl:template>
+
+  <xsl:template name='doc:make-body'>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+    <sf:text-storage sf:kind='body' sfa:ID='SFWPStorage-7'>
+      <sf:stylesheet-ref sfa:IDREF='SFSStylesheet-1'/>
+
+      <xsl:if test='$rnd:pages-tables'>
+        <sf:attachments>
+          <xsl:for-each select='$rnd:pages-tables'>
+            <xsl:variable name='num' select='position()'/>
+
+            <sf:attachment sfa:ID='SFTTableAttachment-{$num}'
+              sfa:sfclass='' sf:kind='tabular-attachment'>
+              <sf:tabular-info sfa:ID='SFTTableInfo-{$num}'>
+                <sf:geometry sfa:ID='DocBookAffineGeometry-{$num}'
+                  sf:sizesLocked='true'>
+                  <sf:naturalSize sfa:w='480' sfa:h='126'/>
+                  <sf:size sfa:w='480' sfa:h='126'/>
+                  <sf:position sfa:x='0' sfa:y='0'/>
+                </sf:geometry>
+                <sf:style>
+                  <sf:tabular-style-ref sfa:IDREF='SFTTableStyle-0'/>
+                </sf:style>
+                <sf:tabular-model-ref sfa:IDREF='SFTTableModel-{$num}'/>
+              </sf:tabular-info>
+              <sf:position sfa:x='0' sfa:y='0'/>
+            </sf:attachment>
+
+          </xsl:for-each>
+        </sf:attachments>
+      </xsl:if>
+
+      <sf:text-body>
+        <sf:page-start sf:page-index='0'/>
+        <sf:container-hint sf:page-index="0" sf:cindex="0" sf:sindex="0" sf:lindex="0" sf:frame-x="56.692913055419922" sf:frame-y="56.692913055419922" sf:frame-w="481.61416625976562" sf:frame-h="714" sf:anchor-loc="0"/>
+
+        <sf:section sf:name="Chapter 1" sf:style="section-style-0">
+          <sf:layout sf:style="layout-style-20">
+            <xsl:copy-of select='$content'/>
+          </sf:layout>
+        </sf:section>
+      </sf:text-body>
+    </sf:text-storage>
+  </xsl:template>
+
+  <xsl:template name='doc:make-subsection'>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+    <xsl:copy-of select='$content'/>
+  </xsl:template>
+
+  <xsl:template name='doc:make-paragraph'>
+    <xsl:param name='style' select='"unknown"'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+    <xsl:param name='outline.level' select='0'/>
+    <xsl:param name='attributes.node' select='.'/>
+
+    <sf:p>
+      <xsl:if test='$style != ""'>
+	<xsl:attribute name='sf:style'>
+          <xsl:call-template name='doc:lookup-paragraph-style'>
+            <xsl:with-param name='style' select='$style'/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </xsl:if>
+
+      <xsl:call-template name='attributes'>
+        <xsl:with-param name='node' select='$attributes.node'/>
+      </xsl:call-template>
+
+      <xsl:copy-of select='$content'/>
+      <sf:br/>
+    </sf:p>
+  </xsl:template>
+
+  <xsl:template name='doc:make-phrase'>
+    <xsl:param name='style' select='""'/>
+    <xsl:param name='italic' select='0'/>
+    <xsl:param name='bold' select='0'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:phrase'/>
+    </xsl:param>
+
+    <!-- TODO: handle italic and bold parameters -->
+
+    <xsl:choose>
+      <xsl:when test='$style != ""'>
+        <sf:span>
+          <xsl:attribute name='sf:style'>
+            <xsl:call-template name='doc:lookup-character-style'>
+              <xsl:with-param name='style' select='$style'/>
+            </xsl:call-template>
+          </xsl:attribute>
+
+          <xsl:copy-of select='$content'/>
+        </sf:span>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select='$content'/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template name='doc:make-hyperlink'>
+    <xsl:param name='target'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+    <sf:link href='{$target}'>
+      <sf:span>
+        <xsl:attribute name='sf:style'>
+          <xsl:call-template name='doc:lookup-character-style'>
+            <xsl:with-param name='style'>email</xsl:with-param>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:copy-of select='$content'/>
+      </sf:span>
+    </sf:link>
+  </xsl:template>
+
+  <xsl:template name='doc:make-table'>
+    <xsl:param name='columns'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+    <xsl:variable name='this' select='.'/>
+
+    <sf:p>
+      <xsl:attribute name='sf:style'>
+        <xsl:call-template name='doc:lookup-paragraph-style'>
+          <xsl:with-param name='style' select='"para"'/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <sf:attachment-ref sf:kind='tabular-attachment'>
+        <xsl:attribute name='sfa:IDREF'>
+          <xsl:text>SFTTableAttachment-</xsl:text>
+          <xsl:for-each select='$rnd:pages-tables'>
+            <xsl:if test='generate-id() = generate-id($this)'>
+              <xsl:value-of select='position()'/>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </sf:attachment-ref>
+      <sf:br/>
+    </sf:p>
+  </xsl:template>
+
+  <xsl:template name='doc:make-column'>
+    <xsl:param name='width' select='0'/>
+  </xsl:template>
+
+  <xsl:template name='doc:make-table-row'>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+    <xsl:param name='is-header' select='false()'/>
+  </xsl:template>
+
+  <xsl:template name='doc:make-table-cell'>
+    <xsl:param name='width' select='0'/>
+    <xsl:param name='hidden' select='false()'/>
+    <xsl:param name='rowspan' select='1'/>
+    <xsl:param name='colspan' select='1'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+  </xsl:template>
+
+  <xsl:template name='doc:make-soft-break'>
+    <sf:br/>
+  </xsl:template>
+
+  <xsl:template name='attributes'>
+    <xsl:param name='node' select='.'/>
+
+    <xsl:for-each select='$node/@*'>
+      <sf:span>
+	<xsl:attribute name='sf:style'>
+	  <xsl:call-template name='doc:lookup-character-style'>
+	    <xsl:with-param name='style'>attribute-name</xsl:with-param>
+	  </xsl:call-template>
+	</xsl:attribute>
+	<xsl:value-of select='name()'/>
+      </sf:span>
+      <sf:span>
+	<xsl:attribute name='sf:style'>
+	  <xsl:call-template name='doc:lookup-character-style'>
+	    <xsl:with-param name='style'>attribute-value</xsl:with-param>
+	  </xsl:call-template>
+	</xsl:attribute>
+	<xsl:value-of select='.'/>
+      </sf:span>
+    </xsl:for-each>
+  </xsl:template>
+
+  <xsl:template name='doc:lookup-paragraph-style'>
+    <xsl:param name='style'/>
+
+    <xsl:variable name='style.cooked'>
+      <xsl:choose>
+        <xsl:when test='$style = "Normal"'>para</xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select='$style'/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:if test='not($paragraph-styles[@sf:name = $style.cooked])'>
+      <xsl:message>unable to find paragraph style "<xsl:value-of select='$style.cooked'/>"</xsl:message>
+    </xsl:if>
+
+    <xsl:value-of select='$paragraph-styles[@sf:name = $style.cooked]/@sf:ident'/>
+  </xsl:template>
+  <xsl:template name='doc:lookup-character-style'>
+    <xsl:param name='style'/>
+
+    <xsl:if test='not($character-styles[@sf:name = $style])'>
+      <xsl:message>unable to find character style "<xsl:value-of select='$style'/>"</xsl:message>
+    </xsl:if>
+
+    <xsl:value-of select='$character-styles[@sf:name = $style]/@sf:ident'/>
+  </xsl:template>
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/roundtrip/dbk2wordml.xsl b/applications/content/template/docbook/roundtrip/dbk2wordml.xsl
new file mode 100644
index 0000000..d5077f0
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/dbk2wordml.xsl
@@ -0,0 +1,401 @@
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:w='http://schemas.microsoft.com/office/word/2003/wordml'
+  xmlns:v='urn:schemas-microsoft-com:vml'
+  xmlns:w10="urn:schemas-microsoft-com:office:word"
+  xmlns:aml="http://schemas.microsoft.com/aml/2001/core"
+  xmlns:wx='http://schemas.microsoft.com/office/word/2003/auxHint'
+  xmlns:o="urn:schemas-microsoft-com:office:office"
+  xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
+  xmlns:sl='http://schemas.microsoft.com/schemaLibrary/2003/core'
+  xmlns:doc='http://docbook.org/ns/docbook'
+  exclude-result-prefixes='doc'>
+
+  <xsl:import href='dbk2wp.xsl'/>
+
+  <xsl:output method="xml" indent='yes' standalone='yes' encoding='UTF-8'/>
+
+  <!-- ********************************************************************
+       $Id$
+       ********************************************************************
+
+       This file is part of the XSL DocBook Stylesheet distribution.
+       See ../README or http://docbook.sf.net/release/xsl/current/ for
+       copyright and other information.
+
+       ******************************************************************** -->
+
+  <xsl:include href='../VERSION.xsl'/>
+  <xsl:include href='param.xsl'/>
+
+  <xsl:strip-space elements='*'/>
+  <xsl:preserve-space elements='literallayout doc:literallayout
+                                programlisting doc:programlisting'/>
+
+  <xsl:variable name='templatedoc' select='document($wordml.template)'/>
+
+  <xsl:template match="/" name='wordml.top'>
+    <xsl:param name='doc' select='/'/>
+
+    <xsl:if test='not($wordml.template)'>
+      <xsl:message terminate='yes'>Please specify the template document with the "wordml.template" parameter</xsl:message>
+    </xsl:if>
+    <xsl:if test='not($templatedoc)'>
+      <xsl:message terminate='yes'>Unable to open template document "<xsl:value-of select='$wordml.template'/>"</xsl:message>
+    </xsl:if>
+
+    <xsl:processing-instruction name='mso-application'>
+      <xsl:text>progid="Word.Document"</xsl:text>
+    </xsl:processing-instruction>
+    <xsl:text>&#xa;</xsl:text>
+
+    <xsl:variable name='info'
+      select='$doc/book/bookinfo|$doc/article/articleinfo'/>
+    <xsl:variable name='authors' select='$info/author|$info/authorinitials|$info/authorgroup/author|$info/authorgroup/editor'/>
+
+    <w:wordDocument
+      w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no">
+      <xsl:attribute name='xml:space'>preserve</xsl:attribute>
+
+      <o:DocumentProperties>
+        <o:Author>
+          <xsl:choose>
+            <xsl:when test='$authors'>
+              <xsl:apply-templates select='$authors[1]' mode='doc:docprop.author'/>
+            </xsl:when>
+            <xsl:otherwise>Unknown</xsl:otherwise>
+          </xsl:choose>
+        </o:Author>
+        <o:LastAuthor>
+          <xsl:choose>
+            <xsl:when test='$info/revhistory/revision[1]/*[self::author|self::authorinitials]'>
+              <xsl:apply-templates select='$info/revhistory/revision[1]/*[self::author|self::authorinitials]' mode='doc:docprop.author'/>
+            </xsl:when>
+            <xsl:when test='$authors'>
+              <xsl:apply-templates select='$authors[1]' mode='doc:docprop.author'/>
+            </xsl:when>
+            <xsl:otherwise>Unknown</xsl:otherwise>
+          </xsl:choose>
+        </o:LastAuthor>
+        <o:Revision>1</o:Revision>
+        <o:TotalTime></o:TotalTime>
+
+        <!-- dummy values -->
+        <o:Created>2004-01-01T07:07:00Z</o:Created>
+        <o:LastSaved>2004-01-01T08:08:00Z</o:LastSaved>
+
+        <o:Pages>1</o:Pages>
+        <o:Words>1</o:Words>
+        <o:Characters>1</o:Characters>
+
+        <!-- could derive this from author -->
+        <o:Company>DocBook</o:Company>
+
+        <o:Lines>1</o:Lines>
+        <o:Paragraphs>1</o:Paragraphs>
+        <o:CharactersWithSpaces>1</o:CharactersWithSpaces>
+        <o:Version>11.6113</o:Version>
+      </o:DocumentProperties>
+
+      <xsl:apply-templates select='$templatedoc/w:wordDocument/o:CustomDocumentProperties|$templatedoc/w:wordDocument/w:fonts|$templatedoc/w:wordDocument/w:lists|$templatedoc/w:wordDocument/w:styles' mode='doc:copy'/>
+
+      <w:docPr>
+        <w:view w:val="print"/>
+        <w:zoom w:percent="100"/>
+        <w:doNotEmbedSystemFonts/>
+        <w:attachedTemplate w:val=""/>
+        <w:documentProtection w:formatting='on' w:enforcement='on'
+          w:unprotectPassword='CAA7FF77'/>
+        <w:defaultTabStop w:val="720"/>
+        <w:autoHyphenation/>
+        <w:hyphenationZone w:val="357"/>
+        <w:doNotHyphenateCaps/>
+        <w:evenAndOddHeaders/>
+        <w:characterSpacingControl w:val="DontCompress"/>
+        <w:optimizeForBrowser/>
+        <w:validateAgainstSchema/>
+        <w:saveInvalidXML w:val="off"/>
+        <w:ignoreMixedContent w:val="off"/>
+        <w:alwaysShowPlaceholderText w:val="off"/>
+        <w:footnotePr>
+          <w:footnote w:type="separator">
+            <w:p>
+              <w:r>
+                <w:separator/>
+              </w:r>
+            </w:p>
+          </w:footnote>
+          <w:footnote w:type="continuation-separator">
+            <w:p>
+              <w:r>
+                <w:continuationSeparator/>
+              </w:r>
+            </w:p>
+          </w:footnote>
+        </w:footnotePr>
+        <w:endnotePr>
+          <w:endnote w:type="separator">
+            <w:p>
+              <w:r>
+                <w:separator/>
+              </w:r>
+            </w:p>
+          </w:endnote>
+          <w:endnote w:type="continuation-separator">
+            <w:p>
+              <w:r>
+                <w:continuationSeparator/>
+              </w:r>
+            </w:p>
+          </w:endnote>
+        </w:endnotePr>
+        <w:compat>
+          <w:breakWrappedTables/>
+          <w:snapToGridInCell/>
+          <w:wrapTextWithPunct/>
+          <w:useAsianBreakRules/>
+          <w:useWord2002TableStyleRules/>
+        </w:compat>
+        <w:docVars>
+        </w:docVars>
+      </w:docPr>
+
+      <xsl:apply-templates select='$doc/*' mode='doc:toplevel'/>
+
+    </w:wordDocument>
+  </xsl:template>
+
+  <xsl:template name='doc:make-body'>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+    <w:body>
+      <wx:sect>
+        <wx:sub-section>
+          <xsl:copy-of select='$content'/>
+        </wx:sub-section>
+      </wx:sect>
+    </w:body>
+  </xsl:template>
+
+  <xsl:template name='doc:make-subsection'>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+    <wx:sub-section>
+      <xsl:copy-of select='$content'/>
+    </wx:sub-section>
+  </xsl:template>
+
+  <xsl:template name='doc:make-paragraph'>
+    <xsl:param name='style' select='"unknown"'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+    <xsl:param name='outline.level' select='0'/>
+    <xsl:param name='attributes.node' select='.'/>
+
+    <w:p>
+      <xsl:if test='$style != "" or
+		    $outline.level != 0'>
+	<w:pPr>
+	  <xsl:if test='$style != ""'>
+            <w:pStyle w:val='{$style}'/>
+	  </xsl:if>
+
+	  <xsl:if test='$outline.level != 0'>
+            <w:outlineLvl w:val='{$outline.level}'/>
+	  </xsl:if>
+	</w:pPr>
+      </xsl:if>
+
+      <xsl:call-template name='attributes'>
+        <xsl:with-param name='node' select='$attributes.node'/>
+      </xsl:call-template>
+
+      <xsl:copy-of select='$content'/>
+    </w:p>
+  </xsl:template>
+
+  <xsl:template name='doc:make-phrase'>
+    <xsl:param name='style' select='""'/>
+    <xsl:param name='italic' select='0'/>
+    <xsl:param name='bold' select='0'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:phrase'/>
+    </xsl:param>
+
+    <w:r>
+      <xsl:if test='$style != "" or
+                    $bold = 1 or
+                    $italic = 1'>
+	<w:rPr>
+          <xsl:if test='$style != ""'>
+            <w:rStyle w:val='{$style}'/>
+          </xsl:if>
+          <xsl:if test='$italic = 1'>
+            <w:i/>
+          </xsl:if>
+          <xsl:if test='$bold = 1'>
+            <w:b/>
+          </xsl:if>
+	</w:rPr>
+      </xsl:if>
+
+      <w:t>
+        <xsl:copy-of select='$content'/>
+      </w:t>
+    </w:r>
+  </xsl:template>
+
+  <xsl:template name='doc:make-hyperlink'>
+    <xsl:param name='target'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+    <w:hlink w:dest='{$target}'>
+      <xsl:copy-of select='$content'/>
+    </w:hlink>
+  </xsl:template>
+
+  <xsl:template name='doc:make-table'>
+    <xsl:param name='columns'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates select='*[not(self::caption|self::doc:caption|self::textobject|self::doc:textobject)]'
+        mode='doc:body'/>
+    </xsl:param>
+
+    <w:tbl>
+      <w:tblPr>
+        <w:tblW w:w="0" w:type="auto"/>
+        <w:tblInd w:w="108" w:type="dxa"/>
+        <w:tblLayout w:type="Fixed"/>
+      </w:tblPr>
+      <w:tblGrid>
+        <xsl:copy-of select='$columns'/>
+      </w:tblGrid>
+      <xsl:copy-of select='$content'/>
+    </w:tbl>
+  </xsl:template>
+
+  <xsl:template name='doc:make-column'>
+    <xsl:param name='width' select='0'/>
+
+    <w:gridcol w:w='{$width}'/>
+  </xsl:template>
+
+  <xsl:template name='doc:make-table-row'>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+    <xsl:param name='is-header' select='false()'/>
+
+    <w:tr>
+      <w:trPr>
+        <xsl:if test='$is-header'>
+          <w:tblHeader/>
+        </xsl:if>
+      </w:trPr>
+      <xsl:copy-of select='$content'/>
+    </w:tr>
+  </xsl:template>
+
+  <xsl:template name='doc:make-table-cell'>
+    <xsl:param name='width' select='0'/>
+    <xsl:param name='hidden' select='false()'/>
+    <xsl:param name='rowspan' select='1'/>
+    <xsl:param name='colspan' select='1'/>
+    <xsl:param name='content'>
+      <xsl:apply-templates mode='doc:body'/>
+    </xsl:param>
+
+    <w:tc>
+      <xsl:if test='$colspan != 1 or
+                    $width != 0'>
+        <w:tcPr>
+          <xsl:if test='$colspan != 1 or
+                        $width != 0'>
+            <w:tcW w:w='{$width}' w:type='dxa'/>
+          </xsl:if>
+          <xsl:if test='$hidden'>
+            <w:vmerge w:val='{$hidden}'/>
+          </xsl:if>
+          <xsl:if test='$rowspan != 1'>          
+            <w:vmerge w:val='restart'/>
+          </xsl:if>
+          <xsl:if test='$colspan != 1'>
+            <w:gridspan w:val='{$colspan}'/>
+          </xsl:if>
+        </w:tcPr>
+      </xsl:if>
+
+      <xsl:copy-of select='$content'/>
+    </w:tc>
+  </xsl:template>
+
+  <xsl:template name='doc:make-soft-break'>
+    <w:br/>
+  </xsl:template>
+
+  <xsl:template name='attributes'>
+    <xsl:param name='node' select='.'/>
+
+    <xsl:if test='$node/@*'>
+      <aml:annotation aml:id='{count(preceding::*) + 1}' w:type='Word.Comment.Start'/>
+      <w:r>
+        <w:rPr>
+          <w:rStyle w:val='attributes'/>
+        </w:rPr>
+        <w:t>
+          <xsl:text> </xsl:text>
+        </w:t>
+      </w:r>
+      <aml:annotation aml:id='{count(preceding::*) + 1}' w:type='Word.Comment.End'/>
+      <w:r>
+        <w:rPr>
+          <w:rStyle w:val='CommentReference'/>
+        </w:rPr>
+        <aml:annotation aml:id='{count(preceding::*) + 1}' aml:author="DocBook" aml:createdate='2004-12-23T00:01:00' w:type='Word.Comment' w:initials='DBK'>
+          <aml:content>
+            <w:p>
+              <w:pPr>
+                <w:pStyle w:val='CommentText'/>
+              </w:pPr>
+              <w:r>
+                <w:rPr>
+                  <w:rStyle w:val='CommentReference'/>
+                </w:rPr>
+                <w:annotationRef/>
+              </w:r>
+              <xsl:for-each select='$node/@*'>
+                <w:r>
+                  <w:rPr>
+                    <w:rStyle w:val='attribute-name'/>
+                  </w:rPr>
+                  <w:t>
+                    <xsl:value-of select='name()'/>
+                  </w:t>
+                </w:r>
+                <w:r>
+                  <w:t>=</w:t>
+                </w:r>
+                <w:r>
+                  <w:rPr>
+                    <w:rStyle w:val='attribute-value'/>
+                  </w:rPr>
+                  <w:t>
+                    <xsl:value-of select='.'/>
+                  </w:t>
+                </w:r>
+              </xsl:for-each>
+            </w:p>
+          </aml:content>
+        </aml:annotation>
+      </w:r>
+    </xsl:if>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/roundtrip/dbk2wp.xsl b/applications/content/template/docbook/roundtrip/dbk2wp.xsl
new file mode 100644
index 0000000..4c48221
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/dbk2wp.xsl
@@ -0,0 +1,1375 @@
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:doc='http://docbook.org/ns/docbook'
+  exclude-result-prefixes='doc'>
+
+  <!-- ********************************************************************
+       $Id$
+       ********************************************************************
+
+       This file is part of the XSL DocBook Stylesheet distribution.
+       See ../README or http://docbook.sf.net/release/xsl/current/ for
+       copyright and other information.
+
+       ******************************************************************** -->
+
+  <!-- DO NOT USE THIS STYLESHEET!
+
+       This stylesheet is imported by the other dbk2* stylesheets.
+       Use one of those instead.
+
+    -->
+
+  <xsl:include href='../VERSION.xsl'/>
+
+  <!-- doc:docprop.author mode is for creating document metadata -->
+
+  <xsl:template match='author|doc:author|editor|doc:editor' mode='doc:docprop.author'>
+    <xsl:apply-templates select='firstname|doc:firstname |
+                                 personname/firstname|doc:personname/doc:firstname'
+      mode='doc:docprop.author'/>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates select='surname|doc:surname |
+                                 personname/surname|doc:personname/doc:surname'
+      mode='doc:docprop.author'/>
+  </xsl:template>
+
+  <xsl:template match='firstname|doc:firstname |
+                       surname|doc:surname'
+    mode='doc:docprop.author'>
+    <xsl:apply-templates select='.' mode='doc:body'/>
+  </xsl:template>
+
+  <!-- doc:toplevel mode is for processing whole documents -->
+
+  <xsl:template match='*' mode='doc:toplevel'>
+    <xsl:call-template name='doc:make-body'/>
+  </xsl:template>
+
+  <!-- doc:body mode is for processing components of a document -->
+
+  <xsl:template match='book|article|chapter|section|sect1|sect2|sect3|sect4|sect5|simplesect |
+                       doc:book|doc:article|doc:chapter|doc:section|doc:sect1|doc:sect2|doc:sect3|doc:sect4|doc:sect5|doc:simplesect'
+    mode='doc:body'>
+    <xsl:call-template name='doc:make-subsection'/>
+  </xsl:template>
+
+  <xsl:template match='articleinfo |
+		       chapterinfo |
+		       bookinfo |
+                       doc:info |
+                       doc:articleinfo |
+		       doc:chapterinfo |
+		       doc:bookinfo'
+    mode='doc:body'>
+    <xsl:apply-templates select='title|subtitle|titleabbrev |
+                                 doc:title|doc:subtitle|doc:titleabbrev'
+      mode='doc:body'/>
+    <xsl:apply-templates select='author|releaseinfo|abstract |
+                                 doc:author|doc:releaseinfo|doc:abstract'
+      mode='doc:body'/>
+    <!-- current implementation ignores all other metadata -->
+    <xsl:for-each select='*[not(self::title|self::subtitle|self::titleabbrev|self::author|self::releaseinfo|self::abstract |
+                          self::doc:title|self::doc:subtitle|self::doc:titleabbrev|self::doc:author|self::doc:releaseinfo|self::doc:abstract)]'>
+      <xsl:call-template name='doc:nomatch'/>
+    </xsl:for-each>
+  </xsl:template>
+
+  <xsl:template match='title|subtitle|titleabbrev |
+                       doc:title|doc:subtitle|doc:titleabbrev'
+    mode='doc:body'>
+    <xsl:call-template name='doc:make-paragraph'>
+      <xsl:with-param name='style'>
+	<xsl:choose>
+          <xsl:when test='(parent::section|parent::doc:section or
+                          parent::sectioninfo/parent::section|parent::doc:sectioninfo/parent::doc:section) and
+                          count(ancestor::section|ancestor::doc:section) > 5'>
+            <xsl:call-template name='doc:warning'>
+	      <xsl:with-param name='message'>section nested deeper than 5 levels</xsl:with-param>
+	    </xsl:call-template>
+            <xsl:text>sect5-</xsl:text>
+            <xsl:value-of select='local-name()'/>
+          </xsl:when>
+          <xsl:when test='parent::section|parent::doc:section or
+                          parent::sectioninfo/parent::section|parent::doc:sectioninfo/parent::doc:section'>
+            <xsl:text>sect</xsl:text>
+            <xsl:value-of select='count(ancestor::section|ancestor::doc:section)'/>
+            <xsl:text>-</xsl:text>
+            <xsl:value-of select='local-name()'/>
+          </xsl:when>
+          <xsl:when test='contains(local-name(..), "info")'>
+            <xsl:value-of select='local-name(../..)'/>
+            <xsl:text>-</xsl:text>
+            <xsl:value-of select='local-name()'/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select='local-name(..)'/>
+            <xsl:text>-</xsl:text>
+            <xsl:value-of select='local-name()'/>
+          </xsl:otherwise>
+	</xsl:choose>
+      </xsl:with-param>
+      <xsl:with-param name='outline.level'
+		      select='count(ancestor::*) - count(parent::*[contains(local-name(), "info")]) - 1'/>
+      <xsl:with-param name='attributes.node'
+		      select='../parent::*[contains(local-name(current()), "info")] |
+			      parent::*[not(contains(local-name(current()), "info"))]'/>
+      <xsl:with-param name='content'>
+	<xsl:apply-templates mode='doc:body'/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+
+  <doc:template name='metadata' xmlns=''>
+    <title>Metadata</title>
+
+    <para>TODO: Handle all metadata elements, apart from titles.</para>
+  </doc:template>
+  <xsl:template match='*[contains(local-name(), "info")]/*[not(self::title|self::subtitle|self::titleabbrev|self::doc:title|self::doc:subtitle|self::doc:titleabbrev)]'
+		priority='0'
+		mode='doc:body'/>
+
+  <xsl:template match='author|editor|othercredit |
+                       doc:author|doc:editor|doc:othercredit'
+    mode='doc:body'>
+    <xsl:call-template name='doc:make-paragraph'>
+      <xsl:with-param name='style'
+		      select='local-name()'/>
+      <xsl:with-param name='content'>
+	<xsl:apply-templates select='personname|surname|firstname|honorific|lineage|othername|contrib |
+                                     doc:personname|doc:surname|doc:firstname|doc:honorific|doc:lineage|doc:othername|doc:contrib'
+			     mode='doc:body'/>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:apply-templates select='affiliation|address |
+                                 doc:affiliation|doc:address'
+      mode='doc:body'/>
+    <xsl:apply-templates select='authorblurb|personblurb |
+                                 doc:authorblurb|doc:personblurb'
+      mode='doc:body'/>
+  </xsl:template>
+  <xsl:template match='affiliation|doc:affiliation'
+    mode='doc:body'>
+    <xsl:call-template name='doc:make-paragraph'>
+      <xsl:with-param name='style' select='"affiliation"'/>
+      <xsl:with-param name='content'>
+	<xsl:apply-templates mode='doc:body'/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+  <xsl:template match='address[parent::author|parent::editor|parent::othercredit] |
+                       doc:address[parent::doc:author|parent::doc:editor|parent::doc:othercredit]'
+		mode='doc:body'>
+    <xsl:call-template name='doc:make-paragraph'>
+      <xsl:with-param name='style' select='"address"'/>
+      <xsl:with-param name='content'>
+	<xsl:apply-templates mode='doc:body'/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+  <!-- do not attempt to handle recursive structures -->
+  <xsl:template match='address[not(parent::author|parent::editor|parent::othercredit)] |
+                       doc:address[not(parent::doc:author|parent::doc:editor|parent::doc:othercredit)]'
+    mode='doc:body'>
+    <xsl:apply-templates select='node()[not(self::affiliation|self::authorblurb|self::doc:affiliation|self::doc:authorblurb)]'/>
+  </xsl:template>
+  <xsl:template match='abstract|doc:abstract'
+    mode='doc:body'>
+    <xsl:if test='title|doc:title'>
+      <xsl:call-template name='doc:make-paragraph'>
+        <xsl:with-param name='style' select='"abstract-title"'/>
+        <xsl:with-param name='content'>
+          <xsl:apply-templates select='title/node()|doc:title/node()'
+            mode='doc:body'/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:if>
+
+    <xsl:apply-templates select='*[not(self::title|self::doc:title)]'
+      mode='doc:body'>
+      <xsl:with-param name='class'>abstract</xsl:with-param>
+    </xsl:apply-templates>
+  </xsl:template>
+  <!-- TODO -->
+  <xsl:template match='authorblurb|personblurb |
+                       doc:authorblurb|doc:personblurb'
+    mode='doc:body'/>
+
+  <!-- TODO: handle inline markup (eg. emphasis) -->
+  <xsl:template match='surname|firstname|honorific|lineage|othername|contrib|email|shortaffil|jobtitle|orgname|orgdiv|street|pob|postcode|city|state|country|phone|fax|citetitle |
+                       doc:surname|doc:firstname|doc:honorific|doc:lineage|doc:othername|doc:contrib|doc:email|doc:shortaffil|doc:jobtitle|doc:orgname|doc:orgdiv|doc:street|doc:pob|doc:postcode|doc:city|doc:state|doc:country|doc:phone|doc:fax|doc:citetitle'
+    mode='doc:body'>
+    <xsl:if test='preceding-sibling::*'>
+      <xsl:call-template name='doc:make-phrase'>
+	<xsl:with-param name='content'>
+          <xsl:text> </xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:call-template name='doc:handle-linebreaks'>
+      <xsl:with-param name='style' select='local-name()'/>
+      <xsl:with-param name='content' select='node()'/>
+    </xsl:call-template>
+  </xsl:template>
+  <xsl:template match='email|doc:email'
+    mode='doc:body'>
+    <xsl:variable name='address'>
+      <xsl:choose>
+        <xsl:when test='starts-with(., "mailto:")'>
+          <xsl:value-of select='.'/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>mailto:</xsl:text>
+          <xsl:value-of select='.'/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:call-template name='doc:make-hyperlink'>
+      <xsl:with-param name='target' select='$address'/>
+      <xsl:with-param name='content'>
+	<xsl:call-template name='doc:handle-linebreaks'>
+	  <xsl:with-param name='style'>Hyperlink</xsl:with-param>
+	</xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+  <!-- otheraddr often contains ulink -->
+  <xsl:template match='otheraddr|doc:otheraddr'
+    mode='doc:body'>
+    <xsl:choose>
+      <xsl:when test='ulink|doc:ulink'>
+        <xsl:for-each select='ulink|doc:ulink'>
+          <xsl:variable name='prev'
+            select='preceding-sibling::ulink[1] |
+                    preceding-sibling::doc:ulink[1]'/>
+          <xsl:choose>
+            <xsl:when test='$prev'>
+              <xsl:for-each
+                select='preceding-sibling::node()[generate-id(following-sibling::*[self::ulink|self::doc:ulink][1]) = generate-id(current())]'>
+		<xsl:call-template name='doc:handle-linebreaks'>
+		  <xsl:with-param name='style'>otheraddr</xsl:with-param>
+		</xsl:call-template>
+              </xsl:for-each>
+            </xsl:when>
+            <xsl:when test='preceding-sibling::node()'>
+	      <xsl:call-template name='doc:handle-linebreaks'>
+		<xsl:with-param name='style'>otheraddr</xsl:with-param>
+	      </xsl:call-template>
+            </xsl:when>
+          </xsl:choose>
+          <xsl:apply-templates select='.'/>
+        </xsl:for-each>
+        <xsl:if test='*[self::ulink|self::doc:ulink][last()]/following-sibling::node()'>
+	  <xsl:call-template name='doc:handle-linebreaks'>
+	    <xsl:with-param name='content'
+	      select='*[self::ulink|self::doc:ulink][last()]/following-sibling::node()'/>
+	    <xsl:with-param name='style'>otheraddr</xsl:with-param>
+	  </xsl:call-template>
+        </xsl:if>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:call-template name='doc:handle-linebreaks'>
+	  <xsl:with-param name='style'>otheraddr</xsl:with-param>
+	</xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+  <xsl:template match='ulink|doc:ulink'
+    mode='doc:body'>
+    <xsl:call-template name='doc:make-hyperlink'>
+      <xsl:with-param name='target' select='@url'/>
+      <xsl:with-param name='content'>
+	<xsl:call-template name='doc:handle-linebreaks'>
+	  <xsl:with-param name='style'>Hyperlink</xsl:with-param>
+	</xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+
+  <!-- Cannot round-trip this element -->
+  <xsl:template match='personname|doc:personname'
+    mode='doc:body'>
+    <xsl:apply-templates mode='doc:body'/>
+  </xsl:template>
+
+  <xsl:template match='releaseinfo|doc:releaseinfo'
+    mode='doc:body'>
+    <xsl:call-template name='doc:make-paragraph'>
+      <xsl:with-param name='style'
+        select='"releaseinfo"'/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match='para|doc:para'
+    mode='doc:body'>
+    <xsl:param name='class'/>
+
+    <xsl:variable name='block'
+      select='blockquote|calloutlist|classsynopsis|funcsynopsis|figure|glosslist|graphic|informalfigure|informaltable|itemizedlist|literallayout|mediaobject|mediaobjectco|note|caution|warning|important|tip|orderedlist|programlisting|revhistory|segmentedlist|simplelist|table|variablelist |
+              doc:blockquote|doc:calloutlist|doc:classsynopsis|doc:funcsynopsis|doc:figure|doc:glosslist|doc:graphic|doc:informalfigure|doc:informaltable|doc:itemizedlist|doc:literallayout|doc:mediaobject|doc:mediaobjectco|doc:note|doc:caution|doc:warning|doc:important|doc:tip|doc:orderedlist|doc:programlisting|doc:revhistory|doc:segmentedlist|doc:simplelist|doc:table|doc:variablelist'/>
+
+    <xsl:choose>
+      <xsl:when test='$block'>
+	<xsl:call-template name='doc:make-paragraph'>
+	  <xsl:with-param name='style'>
+            <xsl:choose>
+              <xsl:when test='$class != ""'>
+                <xsl:value-of select='$class'/>
+              </xsl:when>
+              <xsl:otherwise>para</xsl:otherwise>
+            </xsl:choose>
+	  </xsl:with-param>
+	  <xsl:with-param name='content'
+			  select='$block[1]/preceding-sibling::node()'/>
+        </xsl:call-template>
+
+        <xsl:for-each select='$block'>
+          <xsl:apply-templates select='.'/>
+
+	  <xsl:call-template name='doc:make-paragraph'>
+	    <xsl:with-param name='style'>
+              <xsl:choose>
+		<xsl:when test='$class != ""'>
+                  <xsl:value-of select='$class'/>
+		</xsl:when>
+		<xsl:otherwise>Normal</xsl:otherwise>
+              </xsl:choose>
+	    </xsl:with-param>
+	    <xsl:with-param name='content'
+			    select='following-sibling::node()[generate-id(preceding-sibling::*[self::blockquote|self::calloutlist|self::figure|self::glosslist|self::graphic|self::informalfigure|self::informaltable|self::itemizedlist|self::literallayout|self::mediaobject|self::mediaobjectco|self::note|self::caution|self::warning|self::important|self::tip|self::orderedlist|self::programlisting|self::revhistory|self::segmentedlist|self::simplelist|self::table|self::variablelist | self::doc:blockquote|self::doc:calloutlist|self::doc:figure|self::doc:glosslist|self::doc:graphic|self::doc:informalfigure|self::doc:informaltable|self::doc:itemizedlist|self::doc:literallayout|self::doc:mediaobject|self::doc:mediaobjectco|self::doc:note|self::doc:caution|self::doc:warning|self::doc:important|self::doc:tip|self::doc:orderedlist|self::doc:programlisting|self::doc:revhistory|self::doc:segmentedlist|self::doc:simplelist|self::doc:table|self::doc:variablelist][1]) = generate-id(current())]'/>
+          </xsl:call-template>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:call-template name='doc:make-paragraph'>
+	  <xsl:with-param name='style'>
+            <xsl:choose>
+	      <xsl:when test='$class != ""'>
+                <xsl:value-of select='$class'/>
+	      </xsl:when>
+	      <xsl:otherwise>Normal</xsl:otherwise>
+            </xsl:choose>
+	  </xsl:with-param>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+  <xsl:template match='simpara|doc:simpara'
+    mode='doc:body'>
+    <xsl:param name='class'/>
+
+    <xsl:call-template name='doc:make-paragraph'>
+      <xsl:with-param name='style'>
+        <xsl:choose>
+	  <xsl:when test='$class != ""'>
+            <xsl:value-of select='concat("sim-", $class)'/>
+	  </xsl:when>
+	  <xsl:otherwise>simpara</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match='emphasis|doc:emphasis'
+    mode='doc:body'>
+    <xsl:call-template name='doc:make-phrase'>
+      <xsl:with-param name='italic'>
+	<xsl:choose>
+	  <xsl:when test='not(@role)'>1</xsl:when>
+	  <xsl:otherwise>0</xsl:otherwise>
+	</xsl:choose>
+      </xsl:with-param>
+      <xsl:with-param name='bold'>
+	<xsl:choose>
+	  <xsl:when test='@role = "bold" or @role = "strong"'>1</xsl:when>
+	  <xsl:otherwise>0</xsl:otherwise>
+	</xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match='informalfigure|doc:informalfigure'
+    mode='doc:body'>
+    <xsl:if test='mediaobject/imageobject/imagedata |
+                  doc:mediaobject/doc:imageobject/doc:imagedata'>
+      <xsl:call-template name='doc:make-paragraph'>
+	<xsl:with-param name='style' select='"informalfigure-imagedata"'/>
+	<xsl:with-param name='content'>
+	  <xsl:call-template name='doc:make-phrase'>
+            <xsl:with-param name='style'/>
+	    <xsl:with-param name='content'>
+	      <xsl:apply-templates select='mediaobject/imageobject/imagedata/@fileref |
+                                           doc:mediaobject/doc:imageobject/doc:imagedata/@fileref'
+				   mode='textonly'/>
+	    </xsl:with-param>
+	  </xsl:call-template>
+	</xsl:with-param>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:apply-templates select='caption|doc:caption'
+      mode='doc:body'/>
+    <xsl:for-each select='*[not(self::mediaobject|self::doc:mediaobject|self::caption|self::doc:caption)]'>
+      <xsl:call-template name='doc:nomatch'/>
+    </xsl:for-each>
+  </xsl:template>
+
+  <xsl:template match='mediaobject|mediaobjectco |
+                       doc:mediaobject|doc:mediaobjectco'
+    mode='doc:body'>
+    <xsl:apply-templates select='objectinfo/title|doc:objectinfo/doc:title'/>
+    <xsl:apply-templates select='objectinfo/subtitle|objectinfo/subtitle |
+                                 doc:objectinfo/doc:subtitle|doc:objectinfo/doc:subtitle'/>
+    <!-- TODO: indicate error for other children of objectinfo -->
+
+    <xsl:apply-templates select='*[not(self::objectinfo|self::doc:objectinfo)]'/>
+  </xsl:template>
+  <xsl:template match='imageobject|imageobjectco|audioobject|videoobject |
+                       doc:imageobject|doc:imageobjectco|doc:audioobject|doc:videoobject'
+    mode='doc:body'>
+    <xsl:apply-templates select='objectinfo/title|doc:objectinfo/doc:title'/>
+    <xsl:apply-templates select='objectinfo/subtitle|doc:objectinfo/doc:subtitle'/>
+    <!-- TODO: indicate error for other children of objectinfo -->
+
+    <xsl:apply-templates select='areaspec|doc:areaspec'/>
+
+    <xsl:choose>
+      <xsl:when test='imagedata|audiodata|videodata |
+                      doc:imagedata|doc:audiodata|doc:videodata'>
+	<xsl:call-template name='doc:make-paragraph'>
+	  <xsl:with-param name='style'
+			  select='concat(local-name(), "-", local-name(imagedata|audiodata|videodata|doc:imagedata|doc:audiodata|doc:videodata))'/>
+	  <xsl:with-param name='content'>
+	    <xsl:call-template name='doc:make-phrase'>
+	      <xsl:with-param name='content'>
+		<xsl:apply-templates select='*/@fileref'
+				     mode='textonly'/>
+	      </xsl:with-param>
+	    </xsl:call-template>
+	  </xsl:with-param>
+	</xsl:call-template>
+      </xsl:when>
+      <xsl:when test='self::imageobjectco/imageobject/imagedata |
+                      self::doc:imageobjectco/doc:imageobject/doc:imagedata'>
+	<xsl:call-template name='doc:make-paragraph'>
+	  <xsl:with-param name='style'
+			  select='concat(local-name(), "-imagedata")'/>
+	  <xsl:with-param name='content'>
+	    <xsl:call-template name='doc:make-phrase'>
+	      <xsl:with-param name='content'>
+		<xsl:apply-templates select='*/@fileref'
+				     mode='textonly'/>
+	      </xsl:with-param>
+	    </xsl:call-template>
+	  </xsl:with-param>
+	</xsl:call-template>
+      </xsl:when>
+    </xsl:choose>
+    <xsl:apply-templates select='calloutlist|doc:calloutlist'/>
+
+    <xsl:for-each select='*[not(self::imageobject |
+			        self::imagedata |
+			        self::audiodata |
+				self::videodata |
+				self::areaspec  |
+				self::calloutlist |
+                                self::doc:imageobject |
+			        self::doc:imagedata |
+			        self::doc:audiodata |
+				self::doc:videodata |
+				self::doc:areaspec  |
+				self::doc:calloutlist)]'>
+      <xsl:call-template name='doc:nomatch'/>
+    </xsl:for-each>
+  </xsl:template>
+  <xsl:template match='textobject|doc:textobject'
+    mode='doc:body'>
+    <xsl:choose>
+      <xsl:when test='objectinfo/title|objectinfo|subtitle |
+                      doc:objectinfo/doc:title|doc:objectinfo|doc:subtitle'>
+	<xsl:apply-templates select='objectinfo/title|doc:objectinfo/doc:title'
+          mode='doc:body'/>
+	<xsl:apply-templates select='objectinfo/subtitle|doc:objectinfo/doc:subtitle'
+          mode='doc:body'/>
+	<!-- TODO: indicate error for other children of objectinfo -->
+      </xsl:when>
+
+      <!-- In a table, the table itself and the caption delimit the textobject -->
+      <xsl:when test='ancestor::table |
+                      ancestor::doc:table |
+                      ancestor::informaltable |
+                      ancestor::doc:informaltable'/>
+
+      <xsl:otherwise>
+	<!-- synthesize a title so that the parent textobject
+	     can be recreated.
+	  -->
+	<xsl:call-template name='doc:make-paragraph'>
+	  <xsl:with-param name='style' select='"textobject-title"'/>
+	  <xsl:with-param name='content'>
+	    <xsl:call-template name='doc:make-phrase'>
+	      <xsl:with-param name='content'>
+		<xsl:text>Text Object </xsl:text>
+		<xsl:number level='any'/>
+	      </xsl:with-param>
+	    </xsl:call-template>
+	  </xsl:with-param>
+	</xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:apply-templates select='*[not(self::objectinfo|self::doc:objectinfo)]'
+      mode='doc:body'/>
+  </xsl:template>
+
+  <xsl:template match='caption|doc:caption'
+    mode='doc:body'>
+    <xsl:choose>
+      <xsl:when test='not(*)'>
+        <xsl:call-template name='doc:make-paragraph'>
+          <xsl:with-param name='style' select='"Caption"'/>
+          <xsl:with-param name='content'>
+            <xsl:apply-templates/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test='not(text()) and
+                      count(*) = count(para|doc:para) and
+                      count(*) = 1'>
+        <xsl:call-template name='doc:make-paragraph'>
+          <xsl:with-param name='style' select='"caption"'/>
+          <xsl:with-param name='content'>
+            <xsl:apply-templates select='*/node()' mode='doc:body'/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test='text()'>
+        <!-- Not valid DocBook -->
+        <xsl:call-template name='doc:nomatch'/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name='doc:make-paragraph'>
+          <xsl:with-param name='style' select='"Caption"'/>
+          <xsl:with-param name='content'>
+            <xsl:apply-templates select='*[self::para|self::doc:para][1]/node()'
+              mode='doc:body'/>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:for-each select='text()|*[not(self::para|self::doc:para)]|*[self::para|self::doc:para][position() != 1]'>
+          <xsl:call-template name='doc:nomatch'/>
+        </xsl:for-each>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='area|areaspec|doc:area|doc:areaspec'
+    mode='doc:body'>
+    <xsl:call-template name='doc:make-paragraph'>
+      <xsl:with-param name='style' select='local-name()'/>
+      <xsl:with-param name='content'/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match='calloutlist|doc:calloutlist'
+    mode='doc:body'>
+    <xsl:apply-templates select='callout|doc:callout'/>
+  </xsl:template>
+
+  <xsl:template match='callout|doc:callout'
+    mode='doc:body'>
+    <xsl:call-template name='doc:make-paragraph'>
+      <xsl:with-param name='style' select='"callout"'/>
+      <xsl:with-param name='content'>
+	<!-- Normally a para would be the first child of a callout -->
+	<xsl:apply-templates select='*[1][self::para|self::doc:para]/node()'
+          mode='list'/>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <!-- This is to catch the case where a listitem's first child is not a paragraph.
+       - We may not be able to represent this properly.
+      -->
+    <xsl:apply-templates select='*[1][not(self::para|self::doc:para)]'
+      mode='list'/>
+
+    <xsl:apply-templates select='*[position() != 1]'
+      mode='list'/>
+  </xsl:template>
+
+  <xsl:template match='table|informaltable |
+                       doc:table|doc:informaltable'
+    mode='doc:body'>
+    <xsl:call-template name='doc:make-table'>
+      <xsl:with-param name='columns'>
+        <xsl:apply-templates select='tgroup/colspec|doc:tgroup/doc:colspec'
+          mode='doc:column'/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:apply-templates select='textobject|doc:textobject'
+      mode='doc:body'/>
+    <xsl:choose>
+      <xsl:when test='caption|doc:caption'>
+        <xsl:apply-templates select='caption|doc:caption'
+          mode='doc:body'/>
+      </xsl:when>
+      <xsl:when test='textobject|doc:textobject'>
+        <!-- Synthesize a caption to delimit the textobject -->
+        <xsl:call-template name='doc:make-paragraph'>
+          <xsl:with-param name='style'>Caption</xsl:with-param>
+          <xsl:with-param name='content'/>
+          <xsl:with-param name='attributes.node' select='/..'/>
+        </xsl:call-template>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='colspec|doc:colspec' mode='doc:column'>
+    <xsl:variable name='width'>
+      <xsl:choose>
+        <xsl:when test='contains(@colwidth, "*")'>
+          <!-- May need to resolve proportional width with other columns -->
+          <xsl:value-of select='substring-before(@colwidth, "*")'/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select='@colwidth'/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:call-template name='doc:make-column'>
+      <xsl:with-param name='width' select='$width'/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match='colspec|doc:colspec' mode='doc:body'/>
+
+  <xsl:template name='doc:repeat'>
+    <xsl:param name='repeats' select='0'/>
+    <xsl:param name='content'/>
+
+    <xsl:if test='$repeats > 0'>
+      <xsl:copy-of select='$content'/>
+      <xsl:call-template name='doc:repeat'>
+        <xsl:with-param name='repeats' select='$repeats - 1'/>
+        <xsl:with-param name='content' select='$content'/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:template>
+  <xsl:template match='tgroup|tbody|thead |
+                       doc:tgroup|doc:tbody|doc:thead'
+    mode='doc:body'>
+    <xsl:apply-templates mode='doc:body'/>
+  </xsl:template>
+  <xsl:template match='row|doc:row' mode='doc:body'>
+    <xsl:call-template name='doc:make-table-row'>
+      <xsl:with-param name='is-header' select='boolean(parent::thead|parent::doc:thead)'/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match='entry|doc:entry' mode='doc:body'>
+
+    <!-- 
+         Position = Sum(i,preceding-sibling[@colspan = ""]) + entry[i].@colspan)
+      -->
+
+    <xsl:variable name='position'>
+      <xsl:call-template name='doc:sum-sibling'>
+        <xsl:with-param name='sum' select='"1"'/>
+        <xsl:with-param name='node' select='.'/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name='limit' select='$position + @colspan'/>
+
+    <xsl:variable name='width.raw'>
+      <xsl:choose>
+        <xsl:when test='@colspan != ""'>
+
+          <!-- Select all the colspec nodes which correspond to the
+               column. That is all the nodes between the current 
+               column number and the column number plus the span.
+            -->
+
+          <xsl:variable name='combinedWidth'>
+            <xsl:call-template name='doc:sum'>
+              <xsl:with-param name='nodes' select='ancestor::*[self::table|self::doc:table|self::informaltable|self::doc:informaltable][1]/*[self::tgroup|self::doc:tgroup]/*[self::colspec|self::doc:colspec][not(position() &lt; $position) and position() &lt; $limit]'/>
+              <xsl:with-param name='sum' select='"0"'/>
+            </xsl:call-template>
+          </xsl:variable>
+          <xsl:value-of select='$combinedWidth'/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select='ancestor::*[self::table|self::doc:table|self::informaltable|self::doc:informaltable][1]/*[self::tgroup|self::doc:tgroup]/*[self::colspec|self::doc:colspec][position() = $position]/@colwidth'/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:call-template name='doc:make-table-cell'>
+      <xsl:with-param name='width'>
+        <xsl:choose>
+          <xsl:when test='contains($width.raw, "*")'>
+
+            <!-- Select all the colspec nodes which correspond to the
+                 column. That is all the nodes between the current 
+                 column number and the column number plus the span.
+              -->
+
+            <xsl:value-of select='substring-before($width.raw, "*")'/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select='$width.raw'/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+
+      <xsl:with-param name='hidden' select='@hidden'/>
+      <xsl:with-param name='rowspan' select='@rowspan'/>
+      <xsl:with-param name='colspan' select='@colspan'/>
+
+      <xsl:with-param name='content'>
+	<xsl:choose>
+          <xsl:when test='not(para|doc:para)'>
+            <!-- TODO: check for any block elements -->
+	    <xsl:call-template name='doc:make-paragraph'>
+              <xsl:with-param name='style'/>
+              <xsl:with-param name='attributes.node' select='/..'/>
+              <xsl:with-param name='content'/>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates mode='doc:body'/>
+          </xsl:otherwise>
+	</xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+
+  <!-- Calculates the position by adding the 
+       count of the preceding siblings where they aren't colspans
+       and adding the colspans of those entries which do.
+    -->
+
+  <xsl:template name='doc:sum-sibling'>    
+    <xsl:param name='sum'/>
+    <xsl:param name='node'/>
+
+    <xsl:variable name='add'>
+      <xsl:choose>
+        <xsl:when test='$node/preceding-sibling::*[self::entry|self::doc:entry]/@colspan != ""'>
+          <xsl:value-of select='$node/preceding-sibling::*[self::entry|self::doc:entry]/@colspan'/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select='"1"'/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:choose>
+      <xsl:when test='count($node/preceding-sibling::*[self::entry|self::doc:entry]) &gt; 0'>
+        <xsl:call-template name='doc:sum-sibling'>
+          <xsl:with-param name='sum' select='$sum + $add'/>
+          <xsl:with-param name='node'
+            select='$node/preceding-sibling::*[self::entry|self::doc:entry][1]'/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select='$sum'/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+  </xsl:template>
+
+  <xsl:template name='doc:sum'>
+    <xsl:param name='sum' select='"0"'/>
+    <xsl:param name='nodes'/>
+
+    <xsl:variable name='tmpSum' select='$sum + $nodes[1]/@colwidth'/>
+
+    <xsl:choose>
+      <xsl:when test='count($nodes) &gt; 1'>
+        <xsl:call-template name='doc:sum'>
+          <xsl:with-param name='nodes' select='$nodes[position() != 1]'/>
+          <xsl:with-param name='sum' select='$tmpSum'/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select='$tmpSum'/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+  </xsl:template>
+
+  <xsl:template match='*[self::para|self::simpara|self::doc:para|self::doc:simpara]/text()[string-length(normalize-space(.)) != 0]'
+    mode='doc:body'>
+    <xsl:call-template name='doc:handle-linebreaks'/>
+  </xsl:template>
+
+  <xsl:template match='text()[not(parent::para|parent::simpara|parent::literallayout|parent::programlisting | parent::doc:para|parent::doc:simpara|parent::doc:literallayout|parent::doc:programlisting)][string-length(normalize-space(.)) != 0]'
+    mode='doc:body'>
+    <xsl:call-template name='doc:handle-linebreaks'/>
+  </xsl:template>
+  <xsl:template match='text()[string-length(normalize-space(.)) = 0]'
+    mode='doc:body'/>
+  <xsl:template match='literallayout/text()|programlisting/text() |
+                       doc:literallayout/text()|doc:programlisting/text()'
+    mode='doc:body'>
+    <xsl:call-template name='doc:handle-linebreaks'/>
+  </xsl:template>
+  <xsl:template name='doc:handle-linebreaks'>
+    <xsl:param name='content' select='.'/>
+    <xsl:param name='style'/>
+
+    <xsl:choose>
+      <xsl:when test='not($content)'/>
+      <xsl:when test='contains($content, "&#xa;")'>
+	<xsl:call-template name='doc:make-phrase'>
+	  <xsl:with-param name='style' select='$style'/>
+	  <xsl:with-param name='content'
+			  select='substring-before($content, "&#xa;")'/>
+        </xsl:call-template>
+
+        <xsl:call-template name='doc:handle-linebreaks-aux'>
+          <xsl:with-param name='content'
+            select='substring-after($content, "&#xa;")'/>
+	  <xsl:with-param name='style' select='$style'/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:call-template name='doc:make-phrase'>
+          <xsl:with-param name='style' select='$style'/>
+	  <xsl:with-param name='content' select='$content'/>
+	</xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- pre-condition: leading linefeed has been stripped -->
+  <xsl:template name='doc:handle-linebreaks-aux'>
+    <xsl:param name='content'/>
+    <xsl:param name='style'/>
+
+    <xsl:choose>
+      <xsl:when test='contains($content, "&#xa;")'>
+        <xsl:call-template name='doc:make-phrase'>
+	  <xsl:with-param name='style' select='$style'/>
+	  <xsl:with-param name='content'>
+	    <xsl:call-template name='doc:make-soft-break'/>
+            <xsl:value-of select='substring-before($content, "&#xa;")'/>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name='doc:handle-linebreaks-aux'>
+          <xsl:with-param name='content'
+			  select='substring-after($content, "&#xa;")'/>
+	  <xsl:with-param name='style' select='$style'/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name='doc:make-phrase'>
+	  <xsl:with-param name='style' select='$style'/>
+	  <xsl:with-param name='content'>
+	    <xsl:call-template name='doc:make-soft-break'/>
+            <xsl:value-of select='$content'/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='authorblurb|formalpara|legalnotice|note|caution|warning|important|tip |
+                       doc:authorblurb|doc:formalpara|doc:legalnotice|doc:note|doc:caution|doc:warning|doc:important|doc:tip'
+    mode='doc:body'>
+    <xsl:apply-templates select='*'>
+      <xsl:with-param name='class'>
+        <xsl:value-of select='local-name()'/>
+      </xsl:with-param>
+    </xsl:apply-templates>
+  </xsl:template>
+
+  <xsl:template match='blockquote|doc:blockquote'
+    mode='doc:body'>
+    <xsl:apply-templates select='blockinfo|title|doc:info|doc:title'
+      mode='doc:body'>
+      <xsl:with-param name='class'>
+        <xsl:value-of select='local-name()'/>
+      </xsl:with-param>
+    </xsl:apply-templates>
+    <xsl:apply-templates select='*[not(self::blockinfo|self::title|self::attribution|self::doc:info|self::doc:title|self::doc:attribution)]'
+      mode='doc:body'>
+      <xsl:with-param name='class' select='"blockquote"'/>
+    </xsl:apply-templates>
+    <xsl:if test='attribution|doc:attribution'>
+      <xsl:call-template name='doc:make-paragraph'>
+	<xsl:with-param name='style' select='"blockquote-attribution"'/>
+	<xsl:with-param name='content'>
+          <xsl:call-template name='doc:make-phrase'>
+            <xsl:with-param name='content'>
+              <xsl:apply-templates select='attribution/node()|doc:attribution/node()'/>
+            </xsl:with-param>
+          </xsl:call-template>
+	</xsl:with-param>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match='literallayout|programlisting|doc:literallayout|doc:programlisting'
+    mode='doc:body'>
+    <xsl:param name='class'/>
+
+    <xsl:call-template name='doc:make-paragraph'>
+      <xsl:with-param name='style' select='local-name()'/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match='bridgehead|doc:bridgehead'
+    mode='doc:body'>
+    <xsl:call-template name='doc:make-paragraph'>
+      <xsl:with-param name='style' select='"bridgehead"'/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match='itemizedlist|orderedlist |
+                       doc:itemizedlist|doc:orderedlist'
+    mode='doc:body'>
+    <xsl:apply-templates select='listitem|doc:listitem'
+      mode='doc:body'/>
+  </xsl:template>
+
+  <xsl:template match='listitem|doc:listitem'
+    mode='doc:body'>
+    <xsl:call-template name='doc:make-paragraph'>
+      <xsl:with-param name='style'
+		      select='concat(local-name(..), 
+			      count(ancestor::itemizedlist|ancestor::orderedlist|ancestor::doc:itemizedlist|ancestor::doc:orderedlist))'/>
+      <xsl:with-param name='is-listitem' select='true()'/>
+
+      <xsl:with-param name='content'>
+	<!-- Normally a para would be the first child of a listitem -->
+	<xsl:apply-templates select='*[1][self::para|self::doc:para]/node()'
+          mode='doc:body'/>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <!-- This is to catch the case where a listitem's first child is not a paragraph.
+       - We may not be able to represent this properly.
+      -->
+    <xsl:apply-templates select='*[1][not(self::para|self::doc:para)]'
+      mode='doc:list-continue'/>
+
+    <xsl:apply-templates select='*[position() != 1]'
+      mode='doc:list-continue'/>
+  </xsl:template>  
+
+  <xsl:template match='para|doc:para' mode='doc:list-continue'>
+    <xsl:apply-templates select='.'
+      mode='doc:body'>
+      <xsl:with-param name='class' select='"para-continue"'/>
+    </xsl:apply-templates>
+  </xsl:template>
+  <!-- non-paragraph elements in a listitem are rolled back into
+       the list item upon conversion.
+       -->
+  <xsl:template match='*' mode='doc:list-continue'>
+    <xsl:apply-templates select='.' mode='doc:body'/>
+  </xsl:template>
+
+  <xsl:template match='variablelist|doc:variablelist'
+    mode='doc:body'>
+    <xsl:apply-templates select='*[not(self::varlistentry|self::doc:varlistentry)]'/>
+
+    <xsl:call-template name='doc:make-table'>
+      <xsl:with-param name='columns'>
+	<xsl:call-template name='doc:make-column'>
+	  <xsl:with-param name='width' select='"1"'/>
+	</xsl:call-template>
+	<xsl:call-template name='doc:make-column'>
+	  <xsl:with-param name='width' select='"3"'/>
+	</xsl:call-template>
+      </xsl:with-param>
+      <xsl:with-param name='rows'>
+	<xsl:apply-templates select='varlistentry|doc:varlistentry'/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+  <xsl:template match='varlistentry|doc:varlistentry'
+    mode='doc:body'>
+    <xsl:call-template name='doc:make-table-row'>
+      <xsl:with-param name='content'>
+	<xsl:call-template name='doc:make-table-cell'>
+	  <xsl:with-param name='content'>
+	    <xsl:call-template name='doc:make-paragraph'>
+	      <xsl:with-param name='style' select='"variablelist-term"'/>
+	      <xsl:with-param name='content'>
+		<xsl:apply-templates select='*[self::term|self::doc:term][1]/node()'
+                  mode='doc:body'/>
+		<xsl:for-each select='*[self::term|self::doc:term][position() != 1]'>
+		  <xsl:call-template name='doc:make-phrase'>
+		    <xsl:with-param name='content'>
+		      <xsl:call-template name='doc:make-soft-break'/>
+		    </xsl:with-param>
+		  </xsl:call-template>
+		  <xsl:apply-templates/>
+		</xsl:for-each>
+              </xsl:with-param>
+	    </xsl:call-template>
+	  </xsl:with-param>
+	</xsl:call-template>
+	<xsl:call-template name='doc:make-table-cell'>
+	  <xsl:with-param name='content'>
+            <xsl:apply-templates select='listitem/node()|doc:listitem/node()'
+              mode='doc:body'/>
+	  </xsl:with-param>
+	</xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:template>
+
+  <!-- These elements are not displayed.
+     - However, they may need to be added (perhaps as hidden text)
+     - for round-tripping.
+    -->
+  <xsl:template match='anchor|areaset|audiodata|audioobject|
+                       beginpage|
+                       constraint|
+                       indexterm|itermset|
+                       keywordset|
+                       msg |
+                       doc:anchor|doc:areaset|doc:audiodata|doc:audioobject|
+                       doc:beginpage|
+                       doc:constraint|
+                       doc:indexterm|doc:itermset|
+                       doc:keywordset|
+                       doc:msg'
+    mode='doc:body'/>
+
+  <xsl:template match='*' name='doc:nomatch'>
+    <xsl:param name='node' select='.'/>
+
+    <xsl:message>
+      <xsl:value-of select='local-name($node)'/>
+      <xsl:if test='namespace-uri($node) != ""'>
+        <xsl:text> [</xsl:text>
+        <xsl:value-of select='namespace-uri($node)'/>
+        <xsl:text>]</xsl:text>
+      </xsl:if>
+      <xsl:text> encountered</xsl:text>
+      <xsl:if test='$node/parent::*'>
+        <xsl:text> in </xsl:text>
+        <xsl:value-of select='local-name($node/parent::*)'/>
+      </xsl:if>
+      <xsl:text>, but no template matches.</xsl:text>
+    </xsl:message>
+
+    <xsl:for-each select='$node'>
+      <xsl:choose>
+        <xsl:when test='self::abstract |
+                        self::ackno |
+                        self::address |
+                        self::answer |
+                        self::appendix |
+                        self::artheader |
+                        self::authorgroup |
+                        self::bibliodiv |
+                        self::biblioentry |
+                        self::bibliography |
+                        self::bibliomixed |
+                        self::bibliomset |
+                        self::biblioset |
+                        self::bridgehead |
+                        self::calloutlist |
+                        self::caption |
+                        self::classsynopsis |
+                        self::colophon |
+                        self::constraintdef |
+                        self::copyright |
+                        self::dedication |
+                        self::epigraph |
+                        self::equation |
+                        self::example |
+                        self::figure |
+                        self::funcsynopsis |
+                        self::glossary |
+                        self::glossdef |
+                        self::glossdiv |
+                        self::glossentry |
+                        self::glosslist |
+                        self::graphic |
+                        self::highlights |
+                        self::imageobject |
+                        self::imageobjectco |
+                        self::index |
+                        self::indexdiv |
+                        self::indexentry |
+                        self::informalequation |
+                        self::informalexample |
+                        self::informalfigure |
+                        self::lot |
+                        self::lotentry |
+                        self::mediaobject |
+                        self::mediaobjectco |
+                        self::member |
+                        self::msgentry |
+                        self::msgset |
+                        self::part |
+                        self::partintro |
+                        self::personblurb |
+                        self::preface |
+                        self::printhistory |
+                        self::procedure |
+                        self::programlisting |
+                        self::programlistingco |
+                        self::publisher |
+                        self::qandadiv |
+                        self::qandaentry |
+                        self::qandaset |
+                        self::question |
+                        self::refdescriptor |
+                        self::refentry |
+                        self::refentrytitle |
+                        self::reference |
+                        self::refmeta |
+                        self::refname |
+                        self::refnamediv |
+                        self::refpurpose |
+                        self::refsect1 |
+                        self::refsect2 |
+                        self::refsect3 |
+                        self::refsection |
+                        self::refsynopsisdiv |
+                        self::screen |
+                        self::screenco |
+                        self::screenshot |
+                        self::seg |
+                        self::seglistitem |
+                        self::segmentedlist |
+                        self::segtitle |
+                        self::set |
+                        self::setindex |
+                        self::sidebar |
+                        self::simplelist |
+                        self::simplemsgentry |
+                        self::step |
+                        self::stepalternatives |
+                        self::subjectset |
+                        self::substeps |
+                        self::task |
+                        self::textobject |
+                        self::toc |
+                        self::videodata |
+                        self::videoobject |
+
+                        self::doc:abstract |
+                        self::doc:ackno |
+                        self::doc:address |
+                        self::doc:answer |
+                        self::doc:appendix |
+                        self::doc:artheader |
+                        self::doc:authorgroup |
+                        self::doc:bibliodiv |
+                        self::doc:biblioentry |
+                        self::doc:bibliography |
+                        self::doc:bibliomixed |
+                        self::doc:bibliomset |
+                        self::doc:biblioset |
+                        self::doc:bridgehead |
+                        self::doc:calloutlist |
+                        self::doc:caption |
+                        self::doc:classsynopsis |
+                        self::doc:colophon |
+                        self::doc:constraintdef |
+                        self::doc:copyright |
+                        self::doc:dedication |
+                        self::doc:epigraph |
+                        self::doc:equation |
+                        self::doc:example |
+                        self::doc:figure |
+                        self::doc:funcsynopsis |
+                        self::doc:glossary |
+                        self::doc:glossdef |
+                        self::doc:glossdiv |
+                        self::doc:glossentry |
+                        self::doc:glosslist |
+                        self::doc:graphic |
+                        self::doc:highlights |
+                        self::doc:imageobject |
+                        self::doc:imageobjectco |
+                        self::doc:index |
+                        self::doc:indexdiv |
+                        self::doc:indexentry |
+                        self::doc:informalequation |
+                        self::doc:informalexample |
+                        self::doc:informalfigure |
+                        self::doc:lot |
+                        self::doc:lotentry |
+                        self::doc:mediaobject |
+                        self::doc:mediaobjectco |
+                        self::doc:member |
+                        self::doc:msgentry |
+                        self::doc:msgset |
+                        self::doc:part |
+                        self::doc:partintro |
+                        self::doc:personblurb |
+                        self::doc:preface |
+                        self::doc:printhistory |
+                        self::doc:procedure |
+                        self::doc:programlisting |
+                        self::doc:programlistingco |
+                        self::doc:publisher |
+                        self::doc:qandadiv |
+                        self::doc:qandaentry |
+                        self::doc:qandaset |
+                        self::doc:question |
+                        self::doc:refdescriptor |
+                        self::doc:refentry |
+                        self::doc:refentrytitle |
+                        self::doc:reference |
+                        self::doc:refmeta |
+                        self::doc:refname |
+                        self::doc:refnamediv |
+                        self::doc:refpurpose |
+                        self::doc:refsect1 |
+                        self::doc:refsect2 |
+                        self::doc:refsect3 |
+                        self::doc:refsection |
+                        self::doc:refsynopsisdiv |
+                        self::doc:screen |
+                        self::doc:screenco |
+                        self::doc:screenshot |
+                        self::doc:seg |
+                        self::doc:seglistitem |
+                        self::doc:segmentedlist |
+                        self::doc:segtitle |
+                        self::doc:set |
+                        self::doc:setindex |
+                        self::doc:sidebar |
+                        self::doc:simplelist |
+                        self::doc:simplemsgentry |
+                        self::doc:step |
+                        self::doc:stepalternatives |
+                        self::doc:subjectset |
+                        self::doc:substeps |
+                        self::doc:task |
+                        self::doc:textobject |
+                        self::doc:toc |
+                        self::doc:videodata |
+                        self::doc:videoobject |
+
+                        self::*[not(starts-with(local-name(), "informal")) and contains(local-name(), "info")]'>
+          <xsl:call-template name='doc:make-paragraph'>
+            <xsl:with-param name='style' select='"blockerror"'/>
+            <xsl:with-param name='content'>
+              <xsl:call-template name='doc:make-phrase'>
+                <xsl:with-param name='content'>
+                  <xsl:value-of select='local-name()'/>
+                  <xsl:if test='namespace-uri() != ""'>
+                    <xsl:text> [</xsl:text>
+                    <xsl:value-of select='namespace-uri()'/>
+                    <xsl:text>]</xsl:text>
+                  </xsl:if>
+                  <xsl:text> encountered</xsl:text>
+                  <xsl:if test='parent::*'>
+                    <xsl:text> in </xsl:text>
+                    <xsl:value-of select='local-name(parent::*)'/>
+                  </xsl:if>
+                  <xsl:text>, but no template matches.</xsl:text>
+                </xsl:with-param>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <!-- Some elements are sometimes blocks, sometimes inline
+             <xsl:when test='self::affiliation |
+                             self::alt |
+                             self::attribution |
+                             self::collab |
+                             self::collabname |
+                             self::confdates |
+                             self::confgroup |
+                             self::confnum |
+                             self::confsponsor |
+                             self::conftitle |
+                             self::contractnum |
+                             self::contractsponsor |
+                             self::contrib |
+                             self::corpauthor |
+                             self::corpcredit |
+                             self::corpname |
+                             self::edition |
+                             self::editor |
+                             self::jobtitle |
+                             self::personname |
+                             self::publishername |
+                             self::remark |
+
+                             self::doc:affiliation |
+                             self::doc:alt |
+                             self::doc:attribution |
+                             self::doc:collab |
+                             self::doc:collabname |
+                             self::doc:confdates |
+                             self::doc:confgroup |
+                             self::doc:confnum |
+                             self::doc:confsponsor |
+                             self::doc:conftitle |
+                             self::doc:contractnum |
+                             self::doc:contractsponsor |
+                             self::doc:contrib |
+                             self::doc:corpauthor |
+                             self::doc:corpcredit |
+                             self::doc:corpname |
+                             self::doc:edition |
+                             self::doc:editor |
+                             self::doc:jobtitle |
+                             self::doc:personname |
+                             self::doc:publishername |
+                             self::doc:remark'>
+
+             </xsl:when>
+             -->
+        <xsl:otherwise>
+          <xsl:call-template name='doc:make-phrase'>
+            <xsl:with-param name='style' select='"inlineerror"'/>
+            <xsl:with-param name='content'>
+              <xsl:value-of select='local-name()'/>
+              <xsl:text> encountered</xsl:text>
+              <xsl:if test='parent::*'>
+                <xsl:text> in </xsl:text>
+                <xsl:value-of select='local-name(parent::*)'/>
+              </xsl:if>
+              <xsl:text>, but no template matches.</xsl:text>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+  </xsl:template>
+
+  <xsl:template match='*' mode='doc:copy'>
+    <xsl:copy>
+      <xsl:apply-templates select='@*' mode='doc:copy'/>
+      <xsl:apply-templates mode='doc:copy'/>
+    </xsl:copy>
+  </xsl:template>
+  <xsl:template match='@*' mode='doc:copy'>
+    <xsl:copy/>
+  </xsl:template>
+
+  <!-- Stubs: the importing stylesheet must override these -->
+
+  <!-- stub template for creating a paragraph -->
+  <xsl:template name='doc:make-paragraph'>
+  </xsl:template>
+  <!-- stub template for creating a phrase -->
+  <xsl:template name='doc:make-phrase'>
+  </xsl:template>
+
+  <!-- stub template for inserting attributes -->
+  <xsl:template name='doc:attributes'/>
+
+  <!-- emit a message -->
+  <xsl:template name='doc:warning'>
+    <xsl:param name='message'/>
+
+    <xsl:message>WARNING: <xsl:value-of select='$message'/></xsl:message>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/roundtrip/normalise-common.xsl b/applications/content/template/docbook/roundtrip/normalise-common.xsl
new file mode 100644
index 0000000..83a16b3
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/normalise-common.xsl
@@ -0,0 +1,39 @@
+<xsl:stylesheet version='1.0'
+  xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
+  xmlns:rnd='http://docbook.org/ns/docbook/roundtrip'
+  xmlns:db='http://docbook.org/ns/docbook'
+  exclude-result-prefixes='db'>
+
+  <!-- ********************************************************************
+       $Id$
+       ********************************************************************
+
+       This file is part of the XSL DocBook Stylesheet distribution.
+       See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+       and other information.
+
+       ******************************************************************** -->
+
+  <!-- rnd:map-paragraph-style and rd:map-character-style
+       allows the application to customise
+       the style names used by overriding this template.
+       The idea is to map custom names back to standard names. -->
+  <xsl:template name='rnd:map-paragraph-style'>
+    <xsl:param name='style'/>
+    <xsl:choose>
+      <xsl:when test='starts-with($style, "Normal")'/>
+
+      <!-- Probably should fold all style names to lower-case -->
+      <xsl:when test='$style = "Caption"'>caption</xsl:when>
+
+      <xsl:otherwise>
+        <xsl:value-of select='$style'/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+  <xsl:template name='rnd:map-character-style'>
+    <xsl:param name='style'/>
+    <xsl:value-of select='$style'/>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/roundtrip/normalise2sections.xsl b/applications/content/template/docbook/roundtrip/normalise2sections.xsl
new file mode 100644
index 0000000..3855a8c
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/normalise2sections.xsl
@@ -0,0 +1,1270 @@
+<?xml version="1.0"?>
+<axsl:stylesheet xmlns:axsl="http://www.w3.org/1999/XSL/Transform" xmlns:dbk="http://docbook.org/ns/docbook" xmlns:rnd="http://docbook.org/ns/docbook/roundtrip" version="1.0">
+<!--====================================-->
+<!--=                                  =-->
+<!--=   DO NOT EDIT THIS STYLESHEET    =-->
+<!--=                                  =-->
+<!--= This stylesheet is generated     =-->
+<!--= by makeSections.xsl and a        =-->
+<!--= mapping specification.           =-->
+<!--=                                  =-->
+<!--= Revision history:                =-->
+<!--=                                  =-->
+<!--= $Id$ =-->
+<!--=                                  =-->
+<!--====================================-->
+  <axsl:output indent="yes"/>
+  <axsl:strip-space elements="*"/>
+  <axsl:preserve-space elements="dbk:para dbk:emphasis"/>
+  <axsl:template match="dbk:article">
+    <axsl:copy>
+      <axsl:for-each select="@*">
+        <axsl:copy/>
+      </axsl:for-each>
+      <axsl:variable name="books" select="dbk:para[@rnd:style = &quot;book&quot; or @rnd:style = &quot;book-title&quot;]"/>
+      <axsl:variable name="toplevel-components" select="dbk:para[@rnd:style = &quot;article&quot; or @rnd:style = &quot;article-title&quot; or @rnd:style = &quot;appendix&quot; or @rnd:style = &quot;appendix-title&quot; or @rnd:style = &quot;chapter&quot; or @rnd:style = &quot;chapter-title&quot; or @rnd:style = &quot;preface&quot; or @rnd:style = &quot;preface-title&quot;]"/>
+      <axsl:choose>
+        <axsl:when test="$books">
+          <axsl:apply-templates select="$books[1]/preceding-sibling::*"/>
+          <axsl:apply-templates select="$books[1]" mode="book">
+            <axsl:with-param name="books" select="$books[position() != 1]"/>
+          </axsl:apply-templates>
+        </axsl:when>
+        <axsl:when test="$toplevel-components">
+          <axsl:apply-templates select="$toplevel-components[1]/preceding-sibling::*"/>
+          <axsl:apply-templates select="$toplevel-components[1]" mode="toplevel-component">
+            <axsl:with-param name="toplevel-components" select="$toplevel-components[position() != 1]"/>
+          </axsl:apply-templates>
+        </axsl:when>
+        <axsl:otherwise>
+          <axsl:apply-templates/>
+        </axsl:otherwise>
+      </axsl:choose>
+    </axsl:copy>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="book">
+    <axsl:param name="books" select="/.."/>
+    <axsl:choose>
+      <axsl:when test="$books and (@rnd:style = &quot;book&quot; or @rnd:style = &quot;book-title&quot;)">
+        <axsl:call-template name="make-book">
+          <axsl:with-param name="books" select="$books"/>
+          <axsl:with-param name="book-components" select="$books[1]/preceding-sibling::dbk:para[@rnd:style = &quot;part&quot; or @rnd:style = &quot;part-title&quot; or @rnd:style = &quot;article&quot; or @rnd:style = &quot;article-title&quot; or @rnd:style = &quot;appendix&quot; or @rnd:style = &quot;appendix-title&quot; or @rnd:style = &quot;chapter&quot; or @rnd:style = &quot;chapter-title&quot; or @rnd:style = &quot;preface&quot; or @rnd:style = &quot;preface-title&quot;]"/>
+        </axsl:call-template>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="make-book">
+          <axsl:with-param name="books" select="$books"/>
+          <axsl:with-param name="book-components" select="following-sibling::dbk:para[@rnd:style = &quot;part&quot; or @rnd:style = &quot;part-title&quot; or @rnd:style = &quot;article&quot; or @rnd:style = &quot;article-title&quot; or @rnd:style = &quot;appendix&quot; or @rnd:style = &quot;appendix-title&quot; or @rnd:style = &quot;chapter&quot; or @rnd:style = &quot;chapter-title&quot; or @rnd:style = &quot;preface&quot; or @rnd:style = &quot;preface-title&quot;]"/>
+        </axsl:call-template>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template name="make-book">
+    <axsl:param name="books" select="/.."/>
+    <axsl:param name="book-components" select="/.."/>
+<!-- mode toplevel-templates -->
+    <book xmlns="http://docbook.org/ns/docbook">
+      <axsl:call-template name="copy"/>
+      <axsl:apply-templates select="following-sibling::*[1]" mode="book-component">
+        <axsl:with-param name="nextbook" select="$books[1]"/>
+        <axsl:with-param name="book-components" select="$book-components"/>
+      </axsl:apply-templates>
+    </book>
+    <axsl:apply-templates select="$books[1]" mode="book">
+      <axsl:with-param name="books" select="$books[position() != 1]"/>
+    </axsl:apply-templates>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="toplevel-component">
+    <axsl:param name="toplevel-components" select="/.."/>
+    <axsl:choose>
+      <axsl:when test="$toplevel-components and (@rnd:style = &quot;article&quot; or @rnd:style = &quot;article-title&quot; or @rnd:style = &quot;appendix&quot; or @rnd:style = &quot;appendix-title&quot; or @rnd:style = &quot;chapter&quot; or @rnd:style = &quot;chapter-title&quot; or @rnd:style = &quot;preface&quot; or @rnd:style = &quot;preface-title&quot;)">
+        <axsl:call-template name="make-toplevel-component">
+          <axsl:with-param name="toplevel-components" select="$toplevel-components"/>
+          <axsl:with-param name="sect1s" select="$toplevel-components[1]/preceding-sibling::dbk:para[@rnd:style = &quot;sect1&quot; or @rnd:style = &quot;sect1-title&quot;]"/>
+        </axsl:call-template>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="make-toplevel-component">
+          <axsl:with-param name="toplevel-components" select="$toplevel-components"/>
+          <axsl:with-param name="sect1s" select="following-sibling::dbk:para[@rnd:style = &quot;sect1&quot; or @rnd:style = &quot;sect1-title&quot;]"/>
+        </axsl:call-template>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template name="make-toplevel-component">
+    <axsl:param name="toplevel-components" select="/.."/>
+    <axsl:param name="sect1s" select="/.."/>
+<!-- mode toplevel-templates: group:level - do not create element -->
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect1">
+      <axsl:with-param name="nexttoplevel-component" select="$toplevel-components[1]"/>
+      <axsl:with-param name="sect1s" select="$sect1s"/>
+    </axsl:apply-templates>
+    <axsl:apply-templates select="$toplevel-components[1]" mode="toplevel-component">
+      <axsl:with-param name="toplevel-components" select="$toplevel-components[position() != 1]"/>
+    </axsl:apply-templates>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="book-component">
+    <axsl:param name="nextbook" select="/.."/>
+    <axsl:param select="/.." name="book-components"/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextbook)"/>
+      <axsl:when test="@rnd:style = &quot;part&quot; or @rnd:style = &quot;part-title&quot; or @rnd:style = &quot;article&quot; or @rnd:style = &quot;article-title&quot; or @rnd:style = &quot;appendix&quot; or @rnd:style = &quot;appendix-title&quot; or @rnd:style = &quot;chapter&quot; or @rnd:style = &quot;chapter-title&quot; or @rnd:style = &quot;preface&quot; or @rnd:style = &quot;preface-title&quot;">
+        <axsl:variable name="nextbook-component" select="following-sibling::dbk:para[@rnd:style = &quot;part&quot; or @rnd:style = &quot;part-title&quot; or @rnd:style = &quot;article&quot; or @rnd:style = &quot;article-title&quot; or @rnd:style = &quot;appendix&quot; or @rnd:style = &quot;appendix-title&quot; or @rnd:style = &quot;chapter&quot; or @rnd:style = &quot;chapter-title&quot; or @rnd:style = &quot;preface&quot; or @rnd:style = &quot;preface-title&quot;][1]"/>
+        <axsl:choose>
+          <axsl:when test="$nextbook-component">
+            <axsl:variable name="sect1s" select="$nextbook-component/preceding-sibling::dbk:para[@rnd:style = &quot;sect1&quot; or @rnd:style = &quot;sect1-title&quot;]"/>
+<!-- mode sections 1 -->
+            <book-component xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect1">
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </book-component>
+            <axsl:if test="count($book-components|$nextbook-component) = count($book-components)">
+              <axsl:apply-templates select="$nextbook-component" mode="book-component">
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:when>
+          <axsl:otherwise>
+            <axsl:variable name="sect1s" select="following-sibling::dbk:para[@rnd:style = &quot;sect1&quot; or @rnd:style = &quot;sect1-title&quot;]"/>
+<!-- mode sections 2 -->
+            <book-component xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect1">
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </book-component>
+            <axsl:if test="count($book-components|$nextbook-component) = count($book-components)">
+              <axsl:apply-templates select="$nextbook-component" mode="book-component">
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:otherwise>
+        </axsl:choose>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="book-component">
+          <axsl:with-param name="nextbook" select="$nextbook"/>
+          <axsl:with-param name="book-components" select="$book-components"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="book-sect1">
+    <axsl:param name="nextbook-component" select="/.."/>
+    <axsl:param name="nextbook" select="/.."/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:param select="/.." name="book-components"/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextbook-component)"/>
+      <axsl:when test="generate-id() = generate-id($nextbook)"/>
+      <axsl:when test="@rnd:style = &quot;sect1&quot; or @rnd:style = &quot;sect1-title&quot;">
+        <axsl:variable name="nextsect1" select="following-sibling::dbk:para[@rnd:style = &quot;sect1&quot; or @rnd:style = &quot;sect1-title&quot;][1]"/>
+        <axsl:choose>
+          <axsl:when test="$nextsect1">
+            <axsl:variable name="sect2s" select="$nextsect1/preceding-sibling::dbk:para[@rnd:style = &quot;sect2&quot; or @rnd:style = &quot;sect2-title&quot;]"/>
+<!-- mode sections 1 -->
+            <sect1 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect2">
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </sect1>
+            <axsl:if test="$nextsect1 and (not($book-components) or count($sect1s|$nextsect1) = count($sect1s))">
+              <axsl:apply-templates select="$nextsect1" mode="book-sect1">
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:when>
+          <axsl:otherwise>
+            <axsl:variable name="sect2s" select="following-sibling::dbk:para[@rnd:style = &quot;sect2&quot; or @rnd:style = &quot;sect2-title&quot;]"/>
+<!-- mode sections 2 -->
+            <sect1 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect2">
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </sect1>
+            <axsl:if test="$nextsect1 and (not($book-components) or count($sect1s|$nextsect1) = count($sect1s))">
+              <axsl:apply-templates select="$nextsect1" mode="book-sect1">
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:otherwise>
+        </axsl:choose>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect1">
+          <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+          <axsl:with-param name="nextbook" select="$nextbook"/>
+          <axsl:with-param name="sect1s" select="$sect1s"/>
+          <axsl:with-param name="book-components" select="$book-components"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="book-sect2">
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nextbook-component" select="/.."/>
+    <axsl:param name="nextbook" select="/.."/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:param select="/.." name="book-components"/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextsect1)"/>
+      <axsl:when test="generate-id() = generate-id($nextbook-component)"/>
+      <axsl:when test="generate-id() = generate-id($nextbook)"/>
+      <axsl:when test="@rnd:style = &quot;sect2&quot; or @rnd:style = &quot;sect2-title&quot;">
+        <axsl:variable name="nextsect2" select="following-sibling::dbk:para[@rnd:style = &quot;sect2&quot; or @rnd:style = &quot;sect2-title&quot;][1]"/>
+        <axsl:choose>
+          <axsl:when test="$nextsect2">
+            <axsl:variable name="sect3s" select="$nextsect2/preceding-sibling::dbk:para[@rnd:style = &quot;sect3&quot; or @rnd:style = &quot;sect3-title&quot;]"/>
+<!-- mode sections 1 -->
+            <sect2 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect3">
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </sect2>
+            <axsl:if test="$nextsect2 and (not($sect1s) or count($sect2s|$nextsect2) = count($sect2s))">
+              <axsl:apply-templates select="$nextsect2" mode="book-sect2">
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:when>
+          <axsl:otherwise>
+            <axsl:variable name="sect3s" select="following-sibling::dbk:para[@rnd:style = &quot;sect3&quot; or @rnd:style = &quot;sect3-title&quot;]"/>
+<!-- mode sections 2 -->
+            <sect2 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect3">
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </sect2>
+            <axsl:if test="$nextsect2 and (not($sect1s) or count($sect2s|$nextsect2) = count($sect2s))">
+              <axsl:apply-templates select="$nextsect2" mode="book-sect2">
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:otherwise>
+        </axsl:choose>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect2">
+          <axsl:with-param name="nextsect1" select="$nextsect1"/>
+          <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+          <axsl:with-param name="nextbook" select="$nextbook"/>
+          <axsl:with-param name="sect2s" select="$sect2s"/>
+          <axsl:with-param name="sect1s" select="$sect1s"/>
+          <axsl:with-param name="book-components" select="$book-components"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="book-sect3">
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nextbook-component" select="/.."/>
+    <axsl:param name="nextbook" select="/.."/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:param select="/.." name="book-components"/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextsect2)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect1)"/>
+      <axsl:when test="generate-id() = generate-id($nextbook-component)"/>
+      <axsl:when test="generate-id() = generate-id($nextbook)"/>
+      <axsl:when test="@rnd:style = &quot;sect3&quot; or @rnd:style = &quot;sect3-title&quot;">
+        <axsl:variable name="nextsect3" select="following-sibling::dbk:para[@rnd:style = &quot;sect3&quot; or @rnd:style = &quot;sect3-title&quot;][1]"/>
+        <axsl:choose>
+          <axsl:when test="$nextsect3">
+            <axsl:variable name="sect4s" select="$nextsect3/preceding-sibling::dbk:para[@rnd:style = &quot;sect4&quot; or @rnd:style = &quot;sect4-title&quot;]"/>
+<!-- mode sections 1 -->
+            <sect3 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect4">
+                <axsl:with-param name="nextsect3" select="$nextsect3"/>
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect4s" select="$sect4s"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </sect3>
+            <axsl:if test="$nextsect3 and (not($sect2s) or count($sect3s|$nextsect3) = count($sect3s))">
+              <axsl:apply-templates select="$nextsect3" mode="book-sect3">
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:when>
+          <axsl:otherwise>
+            <axsl:variable name="sect4s" select="following-sibling::dbk:para[@rnd:style = &quot;sect4&quot; or @rnd:style = &quot;sect4-title&quot;]"/>
+<!-- mode sections 2 -->
+            <sect3 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect4">
+                <axsl:with-param name="nextsect3" select="$nextsect3"/>
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect4s" select="$sect4s"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </sect3>
+            <axsl:if test="$nextsect3 and (not($sect2s) or count($sect3s|$nextsect3) = count($sect3s))">
+              <axsl:apply-templates select="$nextsect3" mode="book-sect3">
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:otherwise>
+        </axsl:choose>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect3">
+          <axsl:with-param name="nextsect2" select="$nextsect2"/>
+          <axsl:with-param name="nextsect1" select="$nextsect1"/>
+          <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+          <axsl:with-param name="nextbook" select="$nextbook"/>
+          <axsl:with-param name="sect3s" select="$sect3s"/>
+          <axsl:with-param name="sect2s" select="$sect2s"/>
+          <axsl:with-param name="sect1s" select="$sect1s"/>
+          <axsl:with-param name="book-components" select="$book-components"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="book-sect4">
+    <axsl:param name="nextsect3" select="/.."/>
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nextbook-component" select="/.."/>
+    <axsl:param name="nextbook" select="/.."/>
+    <axsl:param select="/.." name="sect4s"/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:param select="/.." name="book-components"/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextsect3)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect2)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect1)"/>
+      <axsl:when test="generate-id() = generate-id($nextbook-component)"/>
+      <axsl:when test="generate-id() = generate-id($nextbook)"/>
+      <axsl:when test="@rnd:style = &quot;sect4&quot; or @rnd:style = &quot;sect4-title&quot;">
+        <axsl:variable name="nextsect4" select="following-sibling::dbk:para[@rnd:style = &quot;sect4&quot; or @rnd:style = &quot;sect4-title&quot;][1]"/>
+        <axsl:choose>
+          <axsl:when test="$nextsect4">
+            <axsl:variable name="sect5s" select="$nextsect4/preceding-sibling::dbk:para[@rnd:style = &quot;sect5&quot; or @rnd:style = &quot;sect5-title&quot;]"/>
+<!-- mode sections 1 -->
+            <sect4 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect5">
+                <axsl:with-param name="nextsect4" select="$nextsect4"/>
+                <axsl:with-param name="nextsect3" select="$nextsect3"/>
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect5s" select="$sect5s"/>
+                <axsl:with-param name="sect4s" select="$sect4s"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </sect4>
+            <axsl:if test="$nextsect4 and (not($sect3s) or count($sect4s|$nextsect4) = count($sect4s))">
+              <axsl:apply-templates select="$nextsect4" mode="book-sect4">
+                <axsl:with-param name="nextsect3" select="$nextsect3"/>
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect4s" select="$sect4s"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:when>
+          <axsl:otherwise>
+            <axsl:variable name="sect5s" select="following-sibling::dbk:para[@rnd:style = &quot;sect5&quot; or @rnd:style = &quot;sect5-title&quot;]"/>
+<!-- mode sections 2 -->
+            <sect4 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect5">
+                <axsl:with-param name="nextsect4" select="$nextsect4"/>
+                <axsl:with-param name="nextsect3" select="$nextsect3"/>
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect5s" select="$sect5s"/>
+                <axsl:with-param name="sect4s" select="$sect4s"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </sect4>
+            <axsl:if test="$nextsect4 and (not($sect3s) or count($sect4s|$nextsect4) = count($sect4s))">
+              <axsl:apply-templates select="$nextsect4" mode="book-sect4">
+                <axsl:with-param name="nextsect3" select="$nextsect3"/>
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+                <axsl:with-param name="nextbook" select="$nextbook"/>
+                <axsl:with-param name="sect4s" select="$sect4s"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+                <axsl:with-param name="book-components" select="$book-components"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:otherwise>
+        </axsl:choose>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect4">
+          <axsl:with-param name="nextsect3" select="$nextsect3"/>
+          <axsl:with-param name="nextsect2" select="$nextsect2"/>
+          <axsl:with-param name="nextsect1" select="$nextsect1"/>
+          <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+          <axsl:with-param name="nextbook" select="$nextbook"/>
+          <axsl:with-param name="sect4s" select="$sect4s"/>
+          <axsl:with-param name="sect3s" select="$sect3s"/>
+          <axsl:with-param name="sect2s" select="$sect2s"/>
+          <axsl:with-param name="sect1s" select="$sect1s"/>
+          <axsl:with-param name="book-components" select="$book-components"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="book-sect5">
+    <axsl:param name="nextsect4" select="/.."/>
+    <axsl:param name="nextsect3" select="/.."/>
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nextbook-component" select="/.."/>
+    <axsl:param name="nextbook" select="/.."/>
+    <axsl:param select="/.." name="sect5s"/>
+    <axsl:param select="/.." name="sect4s"/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:param select="/.." name="book-components"/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextsect4)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect3)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect2)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect1)"/>
+      <axsl:when test="generate-id() = generate-id($nextbook-component)"/>
+      <axsl:when test="generate-id() = generate-id($nextbook)"/>
+      <axsl:when test="@rnd:style = &quot;sect5&quot; or @rnd:style = &quot;sect5-title&quot;">
+        <axsl:variable name="nextsect5" select="following-sibling::dbk:para[@rnd:style = &quot;sect5&quot; or @rnd:style = &quot;sect5-title&quot;][1]"/>
+<!-- mode sections 3 -->
+        <sect5 xmlns="http://docbook.org/ns/docbook">
+          <axsl:call-template name="copy"/>
+          <axsl:apply-templates select="following-sibling::*[1]" mode="book-terminal">
+            <axsl:with-param name="nextsect5" select="$nextsect5"/>
+            <axsl:with-param name="nextsect4" select="$nextsect4"/>
+            <axsl:with-param name="nextsect3" select="$nextsect3"/>
+            <axsl:with-param name="nextsect2" select="$nextsect2"/>
+            <axsl:with-param name="nextsect1" select="$nextsect1"/>
+            <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+            <axsl:with-param name="nextbook" select="$nextbook"/>
+            <axsl:with-param name="sect5s" select="$sect5s"/>
+            <axsl:with-param name="sect4s" select="$sect4s"/>
+            <axsl:with-param name="sect3s" select="$sect3s"/>
+            <axsl:with-param name="sect2s" select="$sect2s"/>
+            <axsl:with-param name="sect1s" select="$sect1s"/>
+            <axsl:with-param name="book-components" select="$book-components"/>
+          </axsl:apply-templates>
+        </sect5>
+        <axsl:if test="$nextsect5 and (not($sect4s) or count($sect5s|$nextsect5) = count($sect5s))">
+          <axsl:apply-templates select="$nextsect5" mode="book-sect5">
+            <axsl:with-param name="nextsect4" select="$nextsect4"/>
+            <axsl:with-param name="nextsect3" select="$nextsect3"/>
+            <axsl:with-param name="nextsect2" select="$nextsect2"/>
+            <axsl:with-param name="nextsect1" select="$nextsect1"/>
+            <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+            <axsl:with-param name="nextbook" select="$nextbook"/>
+            <axsl:with-param name="sect5s" select="$sect5s"/>
+            <axsl:with-param name="sect4s" select="$sect4s"/>
+            <axsl:with-param name="sect3s" select="$sect3s"/>
+            <axsl:with-param name="sect2s" select="$sect2s"/>
+            <axsl:with-param name="sect1s" select="$sect1s"/>
+            <axsl:with-param name="book-components" select="$book-components"/>
+          </axsl:apply-templates>
+        </axsl:if>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect5">
+          <axsl:with-param name="nextsect4" select="$nextsect4"/>
+          <axsl:with-param name="nextsect3" select="$nextsect3"/>
+          <axsl:with-param name="nextsect2" select="$nextsect2"/>
+          <axsl:with-param name="nextsect1" select="$nextsect1"/>
+          <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+          <axsl:with-param name="nextbook" select="$nextbook"/>
+          <axsl:with-param name="sect5s" select="$sect5s"/>
+          <axsl:with-param name="sect4s" select="$sect4s"/>
+          <axsl:with-param name="sect3s" select="$sect3s"/>
+          <axsl:with-param name="sect2s" select="$sect2s"/>
+          <axsl:with-param name="sect1s" select="$sect1s"/>
+          <axsl:with-param name="book-components" select="$book-components"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="toplevel-sect1">
+    <axsl:param name="nexttoplevel-component" select="/.."/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nexttoplevel-component)"/>
+      <axsl:when test="@rnd:style = &quot;sect1&quot; or @rnd:style = &quot;sect1-title&quot;">
+        <axsl:variable name="nextsect1" select="following-sibling::dbk:para[@rnd:style = &quot;sect1&quot; or @rnd:style = &quot;sect1-title&quot;][1]"/>
+        <axsl:choose>
+          <axsl:when test="$nextsect1">
+            <axsl:variable name="sect2s" select="$nextsect1/preceding-sibling::dbk:para[@rnd:style = &quot;sect2&quot; or @rnd:style = &quot;sect2-title&quot;]"/>
+<!-- mode sections 1 -->
+            <sect1 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect2">
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </sect1>
+            <axsl:if test="count($sect1s|$nextsect1) = count($sect1s)">
+              <axsl:apply-templates select="$nextsect1" mode="toplevel-sect1">
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:when>
+          <axsl:otherwise>
+            <axsl:variable name="sect2s" select="following-sibling::dbk:para[@rnd:style = &quot;sect2&quot; or @rnd:style = &quot;sect2-title&quot;]"/>
+<!-- mode sections 2 -->
+            <sect1 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect2">
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </sect1>
+            <axsl:if test="count($sect1s|$nextsect1) = count($sect1s)">
+              <axsl:apply-templates select="$nextsect1" mode="toplevel-sect1">
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:otherwise>
+        </axsl:choose>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect1">
+          <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+          <axsl:with-param name="sect1s" select="$sect1s"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="toplevel-sect2">
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nexttoplevel-component" select="/.."/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextsect1)"/>
+      <axsl:when test="generate-id() = generate-id($nexttoplevel-component)"/>
+      <axsl:when test="@rnd:style = &quot;sect2&quot; or @rnd:style = &quot;sect2-title&quot;">
+        <axsl:variable name="nextsect2" select="following-sibling::dbk:para[@rnd:style = &quot;sect2&quot; or @rnd:style = &quot;sect2-title&quot;][1]"/>
+        <axsl:choose>
+          <axsl:when test="$nextsect2">
+            <axsl:variable name="sect3s" select="$nextsect2/preceding-sibling::dbk:para[@rnd:style = &quot;sect3&quot; or @rnd:style = &quot;sect3-title&quot;]"/>
+<!-- mode sections 1 -->
+            <sect2 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect3">
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </sect2>
+            <axsl:if test="$nextsect2 and (not($sect1s) or count($sect2s|$nextsect2) = count($sect2s))">
+              <axsl:apply-templates select="$nextsect2" mode="toplevel-sect2">
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:when>
+          <axsl:otherwise>
+            <axsl:variable name="sect3s" select="following-sibling::dbk:para[@rnd:style = &quot;sect3&quot; or @rnd:style = &quot;sect3-title&quot;]"/>
+<!-- mode sections 2 -->
+            <sect2 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect3">
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </sect2>
+            <axsl:if test="$nextsect2 and (not($sect1s) or count($sect2s|$nextsect2) = count($sect2s))">
+              <axsl:apply-templates select="$nextsect2" mode="toplevel-sect2">
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:otherwise>
+        </axsl:choose>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect2">
+          <axsl:with-param name="nextsect1" select="$nextsect1"/>
+          <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+          <axsl:with-param name="sect2s" select="$sect2s"/>
+          <axsl:with-param name="sect1s" select="$sect1s"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="toplevel-sect3">
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nexttoplevel-component" select="/.."/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextsect2)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect1)"/>
+      <axsl:when test="generate-id() = generate-id($nexttoplevel-component)"/>
+      <axsl:when test="@rnd:style = &quot;sect3&quot; or @rnd:style = &quot;sect3-title&quot;">
+        <axsl:variable name="nextsect3" select="following-sibling::dbk:para[@rnd:style = &quot;sect3&quot; or @rnd:style = &quot;sect3-title&quot;][1]"/>
+        <axsl:choose>
+          <axsl:when test="$nextsect3">
+            <axsl:variable name="sect4s" select="$nextsect3/preceding-sibling::dbk:para[@rnd:style = &quot;sect4&quot; or @rnd:style = &quot;sect4-title&quot;]"/>
+<!-- mode sections 1 -->
+            <sect3 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect4">
+                <axsl:with-param name="nextsect3" select="$nextsect3"/>
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect4s" select="$sect4s"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </sect3>
+            <axsl:if test="$nextsect3 and (not($sect2s) or count($sect3s|$nextsect3) = count($sect3s))">
+              <axsl:apply-templates select="$nextsect3" mode="toplevel-sect3">
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:when>
+          <axsl:otherwise>
+            <axsl:variable name="sect4s" select="following-sibling::dbk:para[@rnd:style = &quot;sect4&quot; or @rnd:style = &quot;sect4-title&quot;]"/>
+<!-- mode sections 2 -->
+            <sect3 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect4">
+                <axsl:with-param name="nextsect3" select="$nextsect3"/>
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect4s" select="$sect4s"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </sect3>
+            <axsl:if test="$nextsect3 and (not($sect2s) or count($sect3s|$nextsect3) = count($sect3s))">
+              <axsl:apply-templates select="$nextsect3" mode="toplevel-sect3">
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:otherwise>
+        </axsl:choose>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect3">
+          <axsl:with-param name="nextsect2" select="$nextsect2"/>
+          <axsl:with-param name="nextsect1" select="$nextsect1"/>
+          <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+          <axsl:with-param name="sect3s" select="$sect3s"/>
+          <axsl:with-param name="sect2s" select="$sect2s"/>
+          <axsl:with-param name="sect1s" select="$sect1s"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="toplevel-sect4">
+    <axsl:param name="nextsect3" select="/.."/>
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nexttoplevel-component" select="/.."/>
+    <axsl:param select="/.." name="sect4s"/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextsect3)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect2)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect1)"/>
+      <axsl:when test="generate-id() = generate-id($nexttoplevel-component)"/>
+      <axsl:when test="@rnd:style = &quot;sect4&quot; or @rnd:style = &quot;sect4-title&quot;">
+        <axsl:variable name="nextsect4" select="following-sibling::dbk:para[@rnd:style = &quot;sect4&quot; or @rnd:style = &quot;sect4-title&quot;][1]"/>
+        <axsl:choose>
+          <axsl:when test="$nextsect4">
+            <axsl:variable name="sect5s" select="$nextsect4/preceding-sibling::dbk:para[@rnd:style = &quot;sect5&quot; or @rnd:style = &quot;sect5-title&quot;]"/>
+<!-- mode sections 1 -->
+            <sect4 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect5">
+                <axsl:with-param name="nextsect4" select="$nextsect4"/>
+                <axsl:with-param name="nextsect3" select="$nextsect3"/>
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect5s" select="$sect5s"/>
+                <axsl:with-param name="sect4s" select="$sect4s"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </sect4>
+            <axsl:if test="$nextsect4 and (not($sect3s) or count($sect4s|$nextsect4) = count($sect4s))">
+              <axsl:apply-templates select="$nextsect4" mode="toplevel-sect4">
+                <axsl:with-param name="nextsect3" select="$nextsect3"/>
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect4s" select="$sect4s"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:when>
+          <axsl:otherwise>
+            <axsl:variable name="sect5s" select="following-sibling::dbk:para[@rnd:style = &quot;sect5&quot; or @rnd:style = &quot;sect5-title&quot;]"/>
+<!-- mode sections 2 -->
+            <sect4 xmlns="http://docbook.org/ns/docbook">
+              <axsl:call-template name="copy"/>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect5">
+                <axsl:with-param name="nextsect4" select="$nextsect4"/>
+                <axsl:with-param name="nextsect3" select="$nextsect3"/>
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect5s" select="$sect5s"/>
+                <axsl:with-param name="sect4s" select="$sect4s"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </sect4>
+            <axsl:if test="$nextsect4 and (not($sect3s) or count($sect4s|$nextsect4) = count($sect4s))">
+              <axsl:apply-templates select="$nextsect4" mode="toplevel-sect4">
+                <axsl:with-param name="nextsect3" select="$nextsect3"/>
+                <axsl:with-param name="nextsect2" select="$nextsect2"/>
+                <axsl:with-param name="nextsect1" select="$nextsect1"/>
+                <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+                <axsl:with-param name="sect4s" select="$sect4s"/>
+                <axsl:with-param name="sect3s" select="$sect3s"/>
+                <axsl:with-param name="sect2s" select="$sect2s"/>
+                <axsl:with-param name="sect1s" select="$sect1s"/>
+              </axsl:apply-templates>
+            </axsl:if>
+          </axsl:otherwise>
+        </axsl:choose>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect4">
+          <axsl:with-param name="nextsect3" select="$nextsect3"/>
+          <axsl:with-param name="nextsect2" select="$nextsect2"/>
+          <axsl:with-param name="nextsect1" select="$nextsect1"/>
+          <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+          <axsl:with-param name="sect4s" select="$sect4s"/>
+          <axsl:with-param name="sect3s" select="$sect3s"/>
+          <axsl:with-param name="sect2s" select="$sect2s"/>
+          <axsl:with-param name="sect1s" select="$sect1s"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="toplevel-sect5">
+    <axsl:param name="nextsect4" select="/.."/>
+    <axsl:param name="nextsect3" select="/.."/>
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nexttoplevel-component" select="/.."/>
+    <axsl:param select="/.." name="sect5s"/>
+    <axsl:param select="/.." name="sect4s"/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextsect4)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect3)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect2)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect1)"/>
+      <axsl:when test="generate-id() = generate-id($nexttoplevel-component)"/>
+      <axsl:when test="@rnd:style = &quot;sect5&quot; or @rnd:style = &quot;sect5-title&quot;">
+        <axsl:variable name="nextsect5" select="following-sibling::dbk:para[@rnd:style = &quot;sect5&quot; or @rnd:style = &quot;sect5-title&quot;][1]"/>
+<!-- mode sections 3 -->
+        <sect5 xmlns="http://docbook.org/ns/docbook">
+          <axsl:call-template name="copy"/>
+          <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-terminal">
+            <axsl:with-param name="nextsect5" select="$nextsect5"/>
+            <axsl:with-param name="nextsect4" select="$nextsect4"/>
+            <axsl:with-param name="nextsect3" select="$nextsect3"/>
+            <axsl:with-param name="nextsect2" select="$nextsect2"/>
+            <axsl:with-param name="nextsect1" select="$nextsect1"/>
+            <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+            <axsl:with-param name="sect5s" select="$sect5s"/>
+            <axsl:with-param name="sect4s" select="$sect4s"/>
+            <axsl:with-param name="sect3s" select="$sect3s"/>
+            <axsl:with-param name="sect2s" select="$sect2s"/>
+            <axsl:with-param name="sect1s" select="$sect1s"/>
+          </axsl:apply-templates>
+        </sect5>
+        <axsl:if test="$nextsect5 and (not($sect4s) or count($sect5s|$nextsect5) = count($sect5s))">
+          <axsl:apply-templates select="$nextsect5" mode="toplevel-sect5">
+            <axsl:with-param name="nextsect4" select="$nextsect4"/>
+            <axsl:with-param name="nextsect3" select="$nextsect3"/>
+            <axsl:with-param name="nextsect2" select="$nextsect2"/>
+            <axsl:with-param name="nextsect1" select="$nextsect1"/>
+            <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+            <axsl:with-param name="sect5s" select="$sect5s"/>
+            <axsl:with-param name="sect4s" select="$sect4s"/>
+            <axsl:with-param name="sect3s" select="$sect3s"/>
+            <axsl:with-param name="sect2s" select="$sect2s"/>
+            <axsl:with-param name="sect1s" select="$sect1s"/>
+          </axsl:apply-templates>
+        </axsl:if>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect5">
+          <axsl:with-param name="nextsect4" select="$nextsect4"/>
+          <axsl:with-param name="nextsect3" select="$nextsect3"/>
+          <axsl:with-param name="nextsect2" select="$nextsect2"/>
+          <axsl:with-param name="nextsect1" select="$nextsect1"/>
+          <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+          <axsl:with-param name="sect5s" select="$sect5s"/>
+          <axsl:with-param name="sect4s" select="$sect4s"/>
+          <axsl:with-param name="sect3s" select="$sect3s"/>
+          <axsl:with-param name="sect2s" select="$sect2s"/>
+          <axsl:with-param name="sect1s" select="$sect1s"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="book-terminal">
+    <axsl:param name="nextsect5" select="/.."/>
+    <axsl:param name="nextsect4" select="/.."/>
+    <axsl:param name="nextsect3" select="/.."/>
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nextbook-component" select="/.."/>
+    <axsl:param name="nextbook" select="/.."/>
+    <axsl:param select="/.." name="sect5s"/>
+    <axsl:param select="/.." name="sect4s"/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:param select="/.." name="book-components"/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextsect5)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect4)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect3)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect2)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect1)"/>
+      <axsl:when test="generate-id() = generate-id($nextbook-component)"/>
+      <axsl:when test="generate-id() = generate-id($nextbook)"/>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="book-terminal">
+          <axsl:with-param name="nextsect5" select="$nextsect5"/>
+          <axsl:with-param name="nextsect4" select="$nextsect4"/>
+          <axsl:with-param name="nextsect3" select="$nextsect3"/>
+          <axsl:with-param name="nextsect2" select="$nextsect2"/>
+          <axsl:with-param name="nextsect1" select="$nextsect1"/>
+          <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+          <axsl:with-param name="nextbook" select="$nextbook"/>
+          <axsl:with-param name="sect5s" select="$sect5s"/>
+          <axsl:with-param name="sect4s" select="$sect4s"/>
+          <axsl:with-param name="sect3s" select="$sect3s"/>
+          <axsl:with-param name="sect2s" select="$sect2s"/>
+          <axsl:with-param name="sect1s" select="$sect1s"/>
+          <axsl:with-param name="book-components" select="$book-components"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="toplevel-terminal">
+    <axsl:param name="nextsect5" select="/.."/>
+    <axsl:param name="nextsect4" select="/.."/>
+    <axsl:param name="nextsect3" select="/.."/>
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nexttoplevel-component" select="/.."/>
+    <axsl:param select="/.." name="sect5s"/>
+    <axsl:param select="/.." name="sect4s"/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextsect5)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect4)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect3)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect2)"/>
+      <axsl:when test="generate-id() = generate-id($nextsect1)"/>
+      <axsl:when test="generate-id() = generate-id($nexttoplevel-component)"/>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-terminal">
+          <axsl:with-param name="nextsect5" select="$nextsect5"/>
+          <axsl:with-param name="nextsect4" select="$nextsect4"/>
+          <axsl:with-param name="nextsect3" select="$nextsect3"/>
+          <axsl:with-param name="nextsect2" select="$nextsect2"/>
+          <axsl:with-param name="nextsect1" select="$nextsect1"/>
+          <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+          <axsl:with-param name="sect5s" select="$sect5s"/>
+          <axsl:with-param name="sect4s" select="$sect4s"/>
+          <axsl:with-param name="sect3s" select="$sect3s"/>
+          <axsl:with-param name="sect2s" select="$sect2s"/>
+          <axsl:with-param name="sect1s" select="$sect1s"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="*">
+    <axsl:call-template name="copy"/>
+  </axsl:template>
+  <axsl:template match="*" mode="book">
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="book"/>
+  </axsl:template>
+  <axsl:template match="*" mode="book-component">
+    <axsl:param name="nextbook" select="/.."/>
+    <axsl:param select="/.." name="book-components"/>
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="book-component">
+      <axsl:with-param name="nextbook" select="$nextbook"/>
+      <axsl:with-param name="book-components" select="$book-components"/>
+    </axsl:apply-templates>
+  </axsl:template>
+  <axsl:template match="*" mode="book-sect1">
+    <axsl:param name="nextbook-component" select="/.."/>
+    <axsl:param name="nextbook" select="/.."/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:param select="/.." name="book-components"/>
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect1">
+      <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+      <axsl:with-param name="nextbook" select="$nextbook"/>
+      <axsl:with-param name="sect1s" select="$sect1s"/>
+      <axsl:with-param name="book-components" select="$book-components"/>
+    </axsl:apply-templates>
+  </axsl:template>
+  <axsl:template match="*" mode="book-sect2">
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nextbook-component" select="/.."/>
+    <axsl:param name="nextbook" select="/.."/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:param select="/.." name="book-components"/>
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect2">
+      <axsl:with-param name="nextsect1" select="$nextsect1"/>
+      <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+      <axsl:with-param name="nextbook" select="$nextbook"/>
+      <axsl:with-param name="sect2s" select="$sect2s"/>
+      <axsl:with-param name="sect1s" select="$sect1s"/>
+      <axsl:with-param name="book-components" select="$book-components"/>
+    </axsl:apply-templates>
+  </axsl:template>
+  <axsl:template match="*" mode="book-sect3">
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nextbook-component" select="/.."/>
+    <axsl:param name="nextbook" select="/.."/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:param select="/.." name="book-components"/>
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect3">
+      <axsl:with-param name="nextsect2" select="$nextsect2"/>
+      <axsl:with-param name="nextsect1" select="$nextsect1"/>
+      <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+      <axsl:with-param name="nextbook" select="$nextbook"/>
+      <axsl:with-param name="sect3s" select="$sect3s"/>
+      <axsl:with-param name="sect2s" select="$sect2s"/>
+      <axsl:with-param name="sect1s" select="$sect1s"/>
+      <axsl:with-param name="book-components" select="$book-components"/>
+    </axsl:apply-templates>
+  </axsl:template>
+  <axsl:template match="*" mode="book-sect4">
+    <axsl:param name="nextsect3" select="/.."/>
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nextbook-component" select="/.."/>
+    <axsl:param name="nextbook" select="/.."/>
+    <axsl:param select="/.." name="sect4s"/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:param select="/.." name="book-components"/>
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect4">
+      <axsl:with-param name="nextsect3" select="$nextsect3"/>
+      <axsl:with-param name="nextsect2" select="$nextsect2"/>
+      <axsl:with-param name="nextsect1" select="$nextsect1"/>
+      <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+      <axsl:with-param name="nextbook" select="$nextbook"/>
+      <axsl:with-param name="sect4s" select="$sect4s"/>
+      <axsl:with-param name="sect3s" select="$sect3s"/>
+      <axsl:with-param name="sect2s" select="$sect2s"/>
+      <axsl:with-param name="sect1s" select="$sect1s"/>
+      <axsl:with-param name="book-components" select="$book-components"/>
+    </axsl:apply-templates>
+  </axsl:template>
+  <axsl:template match="*" mode="book-sect5">
+    <axsl:param name="nextsect4" select="/.."/>
+    <axsl:param name="nextsect3" select="/.."/>
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nextbook-component" select="/.."/>
+    <axsl:param name="nextbook" select="/.."/>
+    <axsl:param select="/.." name="sect5s"/>
+    <axsl:param select="/.." name="sect4s"/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:param select="/.." name="book-components"/>
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="book-sect5">
+      <axsl:with-param name="nextsect4" select="$nextsect4"/>
+      <axsl:with-param name="nextsect3" select="$nextsect3"/>
+      <axsl:with-param name="nextsect2" select="$nextsect2"/>
+      <axsl:with-param name="nextsect1" select="$nextsect1"/>
+      <axsl:with-param name="nextbook-component" select="$nextbook-component"/>
+      <axsl:with-param name="nextbook" select="$nextbook"/>
+      <axsl:with-param name="sect5s" select="$sect5s"/>
+      <axsl:with-param name="sect4s" select="$sect4s"/>
+      <axsl:with-param name="sect3s" select="$sect3s"/>
+      <axsl:with-param name="sect2s" select="$sect2s"/>
+      <axsl:with-param name="sect1s" select="$sect1s"/>
+      <axsl:with-param name="book-components" select="$book-components"/>
+    </axsl:apply-templates>
+  </axsl:template>
+  <axsl:template match="*" mode="toplevel-component">
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-component"/>
+  </axsl:template>
+  <axsl:template match="*" mode="toplevel-sect1">
+    <axsl:param name="nexttoplevel-component" select="/.."/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect1">
+      <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+      <axsl:with-param name="sect1s" select="$sect1s"/>
+    </axsl:apply-templates>
+  </axsl:template>
+  <axsl:template match="*" mode="toplevel-sect2">
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nexttoplevel-component" select="/.."/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect2">
+      <axsl:with-param name="nextsect1" select="$nextsect1"/>
+      <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+      <axsl:with-param name="sect2s" select="$sect2s"/>
+      <axsl:with-param name="sect1s" select="$sect1s"/>
+    </axsl:apply-templates>
+  </axsl:template>
+  <axsl:template match="*" mode="toplevel-sect3">
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nexttoplevel-component" select="/.."/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect3">
+      <axsl:with-param name="nextsect2" select="$nextsect2"/>
+      <axsl:with-param name="nextsect1" select="$nextsect1"/>
+      <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+      <axsl:with-param name="sect3s" select="$sect3s"/>
+      <axsl:with-param name="sect2s" select="$sect2s"/>
+      <axsl:with-param name="sect1s" select="$sect1s"/>
+    </axsl:apply-templates>
+  </axsl:template>
+  <axsl:template match="*" mode="toplevel-sect4">
+    <axsl:param name="nextsect3" select="/.."/>
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nexttoplevel-component" select="/.."/>
+    <axsl:param select="/.." name="sect4s"/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect4">
+      <axsl:with-param name="nextsect3" select="$nextsect3"/>
+      <axsl:with-param name="nextsect2" select="$nextsect2"/>
+      <axsl:with-param name="nextsect1" select="$nextsect1"/>
+      <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+      <axsl:with-param name="sect4s" select="$sect4s"/>
+      <axsl:with-param name="sect3s" select="$sect3s"/>
+      <axsl:with-param name="sect2s" select="$sect2s"/>
+      <axsl:with-param name="sect1s" select="$sect1s"/>
+    </axsl:apply-templates>
+  </axsl:template>
+  <axsl:template match="*" mode="toplevel-sect5">
+    <axsl:param name="nextsect4" select="/.."/>
+    <axsl:param name="nextsect3" select="/.."/>
+    <axsl:param name="nextsect2" select="/.."/>
+    <axsl:param name="nextsect1" select="/.."/>
+    <axsl:param name="nexttoplevel-component" select="/.."/>
+    <axsl:param select="/.." name="sect5s"/>
+    <axsl:param select="/.." name="sect4s"/>
+    <axsl:param select="/.." name="sect3s"/>
+    <axsl:param select="/.." name="sect2s"/>
+    <axsl:param select="/.." name="sect1s"/>
+    <axsl:call-template name="copy"/>
+    <axsl:apply-templates select="following-sibling::*[1]" mode="toplevel-sect5">
+      <axsl:with-param name="nextsect4" select="$nextsect4"/>
+      <axsl:with-param name="nextsect3" select="$nextsect3"/>
+      <axsl:with-param name="nextsect2" select="$nextsect2"/>
+      <axsl:with-param name="nextsect1" select="$nextsect1"/>
+      <axsl:with-param name="nexttoplevel-component" select="$nexttoplevel-component"/>
+      <axsl:with-param name="sect5s" select="$sect5s"/>
+      <axsl:with-param name="sect4s" select="$sect4s"/>
+      <axsl:with-param name="sect3s" select="$sect3s"/>
+      <axsl:with-param name="sect2s" select="$sect2s"/>
+      <axsl:with-param name="sect1s" select="$sect1s"/>
+    </axsl:apply-templates>
+  </axsl:template>
+  <axsl:template name="copy">
+    <axsl:copy>
+      <axsl:for-each select="@*">
+        <axsl:copy/>
+      </axsl:for-each>
+      <axsl:apply-templates/>
+    </axsl:copy>
+  </axsl:template>
+</axsl:stylesheet>
diff --git a/applications/content/template/docbook/roundtrip/pages2normalise.xsl b/applications/content/template/docbook/roundtrip/pages2normalise.xsl
new file mode 100644
index 0000000..e8ea078
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/pages2normalise.xsl
@@ -0,0 +1,351 @@
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+
+  xmlns:sfa="http://developer.apple.com/namespaces/sfa"
+  xmlns:sf="http://developer.apple.com/namespaces/sf"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns:appsl="http://developer.apple.com/namespaces/sl"
+
+  xmlns:dbk='http://docbook.org/ns/docbook'
+  xmlns:rnd='http://docbook.org/ns/docbook/roundtrip'
+  exclude-result-prefixes='sfa sf xsi appsl'>
+
+  <xsl:output method="xml" indent='yes'/>
+
+  <!-- ********************************************************************
+       $Id$
+       ********************************************************************
+
+       This file is part of the XSL DocBook Stylesheet distribution.
+       See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+       and other information.
+
+       ******************************************************************** -->
+
+  <xsl:strip-space elements='*'/>
+  <xsl:preserve-space elements='sf:span'/>
+
+  <xsl:key name='styles'
+	   match='sf:paragraphstyle[not(ancestor::appsl:section-prototypes)] |
+		  sf:characterstyle[not(ancestor::appsl:section-prototypes)] |
+                  sf:table-style'
+	   use='@sf:ident|@sfa:ID'/>
+
+  <xsl:key name='ids'
+    match='*'
+    use='@sfa:ID'/>
+
+  <xsl:template match='appsl:document'>
+    <dbk:article>
+      <!-- TODO: headers and footers -->
+      <xsl:apply-templates select='sf:text-storage'/>
+    </dbk:article>
+  </xsl:template>
+
+  <xsl:template match='sf:p'>
+    <xsl:choose>
+      <xsl:when test='sf:attachment-ref and
+                      count(*) = count(sf:attachment-ref|sf:br|sf:selection-start|sf:selection-end)'>
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:otherwise>
+        <dbk:para>
+          <xsl:variable name='style-name'>
+            <xsl:call-template name='rnd:find-style'/>
+          </xsl:variable>
+          <xsl:if test='$style-name != "" and
+                        $style-name != "para"'>
+            <xsl:attribute name='rnd:style'>
+              <xsl:value-of select='$style-name'/>
+            </xsl:attribute>
+          </xsl:if>
+
+          <xsl:apply-templates/>
+        </dbk:para>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='sf:span'>
+    <xsl:variable name='style-name'
+		  select='key("styles", @sf:style)/self::sf:characterstyle/@sf:name'/>
+
+    <xsl:variable name='char-style'>
+      <xsl:call-template name='rnd:find-style'>
+        <xsl:with-param name='char-style-name' select='$style-name'/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:choose>
+      <xsl:when test='$style-name = "attribute-name"'>
+	<xsl:if test='not(preceding-sibling::node()[not(self::text()) or (self::text() and normalize-space() != "")])'>
+          <xsl:attribute name='{.}'>
+            <xsl:apply-templates select='following-sibling::*[1][self::sf:span]'
+              mode='attribute'/>
+          </xsl:attribute>
+	</xsl:if>
+      </xsl:when>
+      <xsl:when test='$style-name = "attribute-value"'/>
+      <xsl:when test='$style-name = ""'>
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test='$char-style = "superscript" or
+                      $char-style = "subscript"'>
+        <xsl:element name='{$char-style}'
+          namespace='http://docbook.org/ns/docbook'>
+          <xsl:apply-templates/>
+        </xsl:element>
+      </xsl:when>
+      <xsl:otherwise>
+	<dbk:emphasis>
+          <xsl:choose>
+            <xsl:when test='$char-style = "emphasis-bold" or
+                            $char-style = "emphasis-strong"'>
+              <xsl:attribute name='role'>bold</xsl:attribute>
+            </xsl:when>
+            <xsl:when test='$char-style != "" and
+                            $char-style != "emphasis"'>
+              <xsl:attribute name='rnd:style'>
+                <xsl:value-of select='$char-style'/>
+              </xsl:attribute>
+            </xsl:when>
+          </xsl:choose>
+
+	  <xsl:apply-templates/>
+        </dbk:emphasis>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='*' mode='attribute'>
+    <xsl:variable name='style-name'
+		  select='key("styles", @sf:style)/self::sf:characterstyle/@sf:name'/>
+
+    <xsl:if test='$style-name = "attribute-value"'>
+      <xsl:apply-templates/>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match='sf:br'/>
+  <xsl:template match='sf:lnbr|sf:crbr'>
+    <xsl:text>&#xa;</xsl:text>
+  </xsl:template>
+  <xsl:template match='sf:tab'>
+    <xsl:text>        </xsl:text>
+  </xsl:template>
+  <xsl:template match='sf:link'>
+    <dbk:ulink url='{@href}'>
+      <xsl:apply-templates/>
+    </dbk:ulink>
+  </xsl:template>
+
+  <xsl:template match='sf:attachment-ref'>
+    <xsl:if test='@sf:kind = "tabular-attachment"'>
+      <xsl:apply-templates select='key("ids", @sfa:IDREF)'/>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match='sf:attachment[@sf:kind = "tabular-attachment"]'>
+    <xsl:variable name='model'
+      select='key("ids", sf:tabular-info/sf:tabular-model-ref/@sfa:IDREF)'/>
+
+    <xsl:variable name='num-cols' select='$model/sf:grid/@sf:numcols'/>
+    <xsl:variable name='num-rows' select='$model/sf:grid/@sf:numrows'/>
+
+    <xsl:variable name='border.top'
+      select='count($model/sf:grid/sf:horizontal-gridline-styles/*) = 0 or
+              not($model/sf:grid/sf:horizontal-gridline-styles/sf:style-run[@sf:gridline-index = "0"])'/>
+    <xsl:variable name='border.bottom'
+      select='count($model/sf:grid/sf:horizontal-gridline-styles/*) = 0 or
+              not($model/sf:grid/sf:horizontal-gridline-styles/sf:style-run[@sf:gridline-index = $num-rows - 1])'/>
+    <xsl:variable name='border.left'
+      select='count($model/sf:grid/sf:vertical-gridline-styles/*) = 0 or
+              not($model/sf:grid/sf:vertical-gridline-styles/sf:style-run[@sf:gridline-index = "0"])'/>
+    <xsl:variable name='border.right'
+      select='count($model/sf:grid/sf:vertical-gridline-styles/*) = 0 or
+              not($model/sf:grid/sf:vertical-gridline-styles/sf:style-run[@sf:gridline-index = $num-cols])'/>
+
+    <xsl:choose>
+      <xsl:when test='not($num-rows) or $num-rows = ""'>
+        <xsl:message> cannot determine number of rows in table</xsl:message>
+        <xsl:comment> cannot determine number of rows in table </xsl:comment>
+      </xsl:when>
+      <xsl:when test='not($num-cols) or $num-cols = ""'>
+        <xsl:message> cannot determine number of columns in table</xsl:message>
+        <xsl:comment> cannot determine number of columns in table </xsl:comment>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <dbk:informaltable>
+          <xsl:choose>
+            <xsl:when test='$border.top and $border.bottom and
+                            $border.left and $border.right'>
+              <xsl:attribute name='frame'>all</xsl:attribute>
+            </xsl:when>
+            <xsl:when test='$border.top and $border.bottom'>
+              <xsl:attribute name='frame'>topbot</xsl:attribute>
+            </xsl:when>
+            <xsl:when test='$border.left and $border.right'>
+              <xsl:attribute name='frame'>sides</xsl:attribute>
+            </xsl:when>
+            <xsl:when test='$border.top'>
+              <xsl:attribute name='frame'>top</xsl:attribute>
+            </xsl:when>
+            <xsl:when test='$border.bottom'>
+              <xsl:attribute name='frame'>bottom</xsl:attribute>
+            </xsl:when>
+          </xsl:choose>
+          <dbk:tgroup cols='{$num-cols}'>
+            <xsl:apply-templates select='$model/sf:grid/sf:columns/sf:grid-column'
+              mode='rnd:colspec'/>
+            <xsl:if test='$model/@sf:num-header-rows != 0'>
+              <dbk:thead>
+                <xsl:call-template name='rnd:make-table-rows'>
+                  <xsl:with-param name='nodes'
+                    select='$model/sf:grid/sf:datasource/sf:text-cell[@sf:row &lt; $model/@sf:num-header-rows]'/>
+                  <xsl:with-param name='num-rows'
+                    select='$model/@sf:num-header-rows'/>
+                </xsl:call-template>
+              </dbk:thead>
+            </xsl:if>
+            <dbk:tbody>
+              <xsl:call-template name='rnd:make-table-rows'>
+                <xsl:with-param name='nodes'
+                  select='$model/sf:grid/sf:datasource/sf:text-cell[@sf:row >= $model/@sf:num-header-rows and
+                  @sf:row &lt; $num-rows - $model/@sf:num-footer-rows]'/>
+                <xsl:with-param name='num-rows' select='$num-rows - $model/@sf:num-header-rows - $model/@sf:num-footer-rows'/>
+                <xsl:with-param name='row' select='$model/@sf:num-header-rows'/>
+              </xsl:call-template>
+            </dbk:tbody>
+            <xsl:if test='$model/@sf:num-footer-rows != 0'>
+              <dbk:tfoot>
+                <xsl:call-template name='rnd:make-table-rows'>
+                  <xsl:with-param name='nodes'
+                    select='$model/sf:grid/sf:datasource/sf:text-cell[@sf:row &gt;= $num-rows - $model/@sf:num-footer-rows]'/>
+                  <xsl:with-param name='num-rows'
+                    select='$model/@sf:num-footer-rows'/>
+                  <xsl:with-param name='row'
+                    select='$num-rows - $model/@sf:num-footer-rows'/>
+                </xsl:call-template>
+              </dbk:tfoot>
+            </xsl:if>
+          </dbk:tgroup>
+        </dbk:informaltable>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+  <xsl:template match='sf:grid-column' mode='rnd:colspec'>
+    <dbk:colspec colwidth='{@sf:width}'
+      colname='column-{count(preceding-sibling::sf:grid-column) + 1}'/>
+  </xsl:template>
+  <xsl:template name='rnd:make-table-rows'>
+    <xsl:param name='num-rows' select='0'/>
+    <xsl:param name='nodes' select='/..'/>
+    <xsl:param name='row' select='0'/>
+
+    <xsl:choose>
+      <xsl:when test='not($nodes) and $num-rows != 0'>
+        <xsl:message>WARNING: insufficient table cells</xsl:message>
+        <xsl:comment> WARNING: insufficient table cells (num-rows <xsl:value-of select='$num-rows'/>, row <xsl:value-of select='$row'/>) </xsl:comment>
+      </xsl:when>
+      <xsl:when test='$nodes and $num-rows = 0'>
+        <xsl:message>WARNING: excess table cells</xsl:message>
+        <xsl:comment> WARNING: excess table cells (num-rows <xsl:value-of select='$num-rows'/>, row <xsl:value-of select='$row'/>) </xsl:comment>
+      </xsl:when>
+      <xsl:when test='not($nodes)'/>
+      <xsl:when test='$num-rows = 0'/>
+
+      <xsl:otherwise>
+        <dbk:row>
+          <xsl:apply-templates select='$nodes[@sf:row = $row]'/>
+        </dbk:row>
+        <xsl:call-template name='rnd:make-table-rows'>
+          <xsl:with-param name='num-rows'
+            select='$num-rows - 1'/>
+          <xsl:with-param name='row'
+            select='$row + 1'/>
+          <xsl:with-param name='nodes'
+            select='$nodes[@sf:row != $row]'/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+  <xsl:template match='sf:text-cell'>
+    <dbk:entry>
+      <!-- Does this cell have no bottom border? -->
+      <xsl:variable name='horiz'
+        select='ancestor::sf:grid/sf:horizontal-gridline-styles'/>
+      <xsl:if test='not($horiz/*) or
+                    not($horiz/sf:style-run[@sf:gridline-index = current()/@sf:row + 1]/sf:vector-style-ref[@sf:start-index &lt;= current()/@sf:col and @sf:stop-index >= current()/@sf:col])'>
+        <xsl:attribute name='rowsep'>1</xsl:attribute>
+      </xsl:if>
+      <!-- Does this cell have no right border? -->
+      <xsl:variable name='vert'
+        select='ancestor::sf:grid/sf:vertical-gridline-styles'/>
+      <xsl:if test='not($vert/*) or
+                    not($vert/sf:style-run[@sf:gridline-index = current()/@sf:col + 1]/sf:vector-style-ref[@sf:start-index &lt;= current()/@sf:row and @sf:stop-index >= current()/@sf:row])'>
+        <xsl:attribute name='colsep'>1</xsl:attribute>
+      </xsl:if>
+
+      <xsl:choose>
+        <xsl:when test='sf:cell-text/@sfa:string'>
+          <dbk:para>
+            <xsl:apply-templates select='sf:cell-text/@sfa:string'/>
+          </dbk:para>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select='sf:cell-text/sf:cell-storage/sf:text-body/*'/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </dbk:entry>
+  </xsl:template>
+  <xsl:template match='sf:tableAttachmentTable |
+                       sf:tableModelCells'>
+    <xsl:apply-templates/>
+  </xsl:template>
+  <xsl:template match='sf:tableModelPartitionSource |
+                       sf:tableModelStyle-ref |
+                       sf:tableModelVectors |
+                       sf:tableCellArrayCellsByColumn |
+                       sf:tableModelTableID'/>
+
+  <xsl:template match='sf:text-storage |
+                       sf:text-body |
+                       sf:section |
+                       sf:layout'>
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <xsl:template match='sf:stylesheet|sf:stylesheet-ref |
+		       sf:container-hint |
+		       sf:page-start|sf:br |
+		       sf:selection-start|sf:selection-end |
+		       sf:insertion-point |
+		       sf:ghost-text |
+                       sf:attachments'/>
+
+  <xsl:template match='*'>
+    <xsl:message>element "<xsl:value-of select='name()'/>" not handled</xsl:message>
+  </xsl:template>
+
+  <xsl:template name='rnd:find-style'>
+    <xsl:param name='ident' select='@sf:style'/>
+    <xsl:param name='para-style-name'
+	       select='key("styles", $ident)/self::sf:paragraphstyle/@sf:name'/>
+    <xsl:param name='char-style-name'
+	       select='key("styles", $ident)/self::sf:characterstyle/@sf:name'/>
+
+    <xsl:choose>
+      <xsl:when test='$ident = "paragraph-style-default"'/>
+      <xsl:when test='$para-style-name != ""'>
+	<xsl:value-of select='$para-style-name'/>
+      </xsl:when>
+      <xsl:when test='key("styles", $ident)/self::sf:characterstyle/sf:property-map/sf:superscript/sf:number/@sfa:number = "1"'>superscript</xsl:when>
+      <xsl:when test='key("styles", $ident)/self::sf:characterstyle/sf:property-map/sf:subscript/sf:number/@sfa:number = "1"'>subscript</xsl:when>
+      <xsl:when test='$char-style-name != "" or
+		      key("styles", $ident)/self::sf:characterstyle/sf:property-map/*'>
+	<xsl:value-of select='$char-style-name'/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:template>
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/roundtrip/param.xml b/applications/content/template/docbook/roundtrip/param.xml
new file mode 100644
index 0000000..d99bad6
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/param.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="ASCII"?>
+<book version="5.0">
+  <info>
+    <title>Roundtrip Parameter Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+    <author>
+      <personname>
+      <surname>Ball</surname>
+      <firstname>Steve</firstname>
+      </personname>
+    </author>
+    <copyright>
+      <year>2004-2011</year>
+     
+      <holder>Steve Ball</holder>
+    </copyright>
+    <abstract>
+      <para>This is reference documentation for all user-configurable
+      parameters in the DocBook &#8220;Roundtrip&#8221; Stylesheets (for
+      transforming DocBook to WordML, OpenDocument, and Apple Pages,
+      and for converting from those formats back to DocBook).</para>
+    </abstract>
+  </info>
+  <reference xml:id="params">
+  <title>Parameters</title>
+<refentry version="5.0" xml:id="wordml.template">
+<refmeta>
+<refentrytitle>wordml.template</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>wordml.template</refname>
+<refpurpose>Specify the template WordML document</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="wordml.template.frag">
+&lt;xsl:param name="wordml.template"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>wordml.template</parameter> parameter specifies a WordML document to use as a template for the generated document.  The template document is used to define the (extensive) headers for the generated document, in particular the paragraph and character styles that are used to format the various elements.  Any content in the template document is ignored.</para>
+
+<para>A template document is used in order to allow maintenance of the paragraph and character styles to be done using Word itself, rather than these XSL stylesheets.</para>
+
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="pages.template">
+<refmeta>
+<refentrytitle>pages.template</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>pages.template</refname>
+<refpurpose>Specify the template Pages document</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="pages.template.frag">
+&lt;xsl:param name="pages.template"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>The <parameter>pages.template</parameter> parameter specifies a Pages (the Apple word processing application) document to use as a template for the generated document.  The template document is used to define the (extensive) headers for the generated document, in particular the paragraph and character styles that are used to format the various elements.  Any content in the template document is ignored.</para>
+
+<para>A template document is used in order to allow maintenance of the paragraph and character styles to be done using Pages itself, rather than these XSL stylesheets.</para>
+
+</refsection>
+</refentry>
+
+  </reference>
+  <appendix xml:id="stylesheet">
+    <title>The Stylesheet</title>
+    <para>The <filename>param.xsl</filename> stylesheet is just a
+      wrapper around all of these parameters.</para>
+    <programlisting xml:id="top">
+&lt;xsl:stylesheet exclude-result-prefixes="src" version="1.0"&gt;
+
+&lt;!-- This file is generated from param.xweb --&gt;
+
+&lt;!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** --&gt;
+
+&lt;src:fragref linkend="wordml.template.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="pages.template.frag"&gt;&lt;/src:fragref&gt;
+&lt;/xsl:stylesheet&gt;
+    </programlisting>
+  </appendix>
+</book>
diff --git a/applications/content/template/docbook/roundtrip/param.xsl b/applications/content/template/docbook/roundtrip/param.xsl
new file mode 100644
index 0000000..1d29683
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/param.xsl
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- This file is generated from param.xweb -->
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:param name="wordml.template"/>
+<xsl:param name="pages.template"/>
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/roundtrip/sections-spec.xml b/applications/content/template/docbook/roundtrip/sections-spec.xml
new file mode 100644
index 0000000..6c86d52
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/sections-spec.xml
@@ -0,0 +1,38 @@
+<group:root xmlns:group='http://www.explain.com.au/grouping'>
+  <book styles='book book-title'>
+    <group:level>
+      <group:element name='part' styles='part part-title'/>
+      <group:element name='article' styles='article article-title'/>
+      <group:element name='bibliography' styles='bibliography bibliography-title'/>
+      <group:element name='appendix' styles='appendix appendix-title'/>
+      <group:element name='chapter' styles='chapter chapter-title'/>
+      <group:element name='preface' styles='preface preface-title'/>
+
+      <sect1 styles='sect1 sect1-title'>
+	<sect2 styles='sect2 sect2-title'>
+	  <sect3 styles='sect3 sect3-title'>
+            <sect4 styles='sect4 sect4-title'>
+	      <sect5 styles='sect5 sect5-title'/>
+	    </sect4>
+	  </sect3>
+	</sect2>
+      </sect1>
+    </group:level>
+  </book>
+  <group:level>
+    <group:element name='article' styles='article article-title'/>
+    <group:element name='appendix' styles='appendix appendix-title'/>
+    <group:element name='chapter' styles='chapter chapter-title'/>
+    <group:element name='preface' styles='preface preface-title'/>
+
+    <sect1 styles='sect1 sect1-title'>
+      <sect2 styles='sect2 sect2-title'>
+	<sect3 styles='sect3 sect3-title'>
+          <sect4 styles='sect4 sect4-title'>
+	    <sect5 styles='sect5 sect5-title'/>
+	  </sect4>
+	</sect3>
+      </sect2>
+    </sect1>
+  </group:level>
+</group:root>
diff --git a/applications/content/template/docbook/roundtrip/sections2blocks.xsl b/applications/content/template/docbook/roundtrip/sections2blocks.xsl
new file mode 100644
index 0000000..7d9455a
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/sections2blocks.xsl
@@ -0,0 +1,263 @@
+<?xml version="1.0"?>
+<axsl:stylesheet xmlns:axsl="http://www.w3.org/1999/XSL/Transform" xmlns:dbk="http://docbook.org/ns/docbook" xmlns:rnd="http://docbook.org/ns/docbook/roundtrip" version="1.0">
+<!--====================================-->
+<!--=                                  =-->
+<!--=   DO NOT EDIT THIS STYLESHEET    =-->
+<!--=                                  =-->
+<!--= This stylesheet is generated     =-->
+<!--= by makeSubsections.xsl and a     =-->
+<!--= mapping specification.           =-->
+<!--=                                  =-->
+<!--= Revision history:                =-->
+<!--=  1.1 2007-01-10 SRB              =-->
+<!--=   Output DocBook 5.0.            =-->
+<!--=  1.0 2005-11-08 SRB              =-->
+<!--=   Initial version.               =-->
+<!--=                                  =-->
+<!--= $Id$ =-->
+<!--=                                  =-->
+<!--====================================-->
+  <axsl:output indent="yes"/>
+  <axsl:strip-space elements="*"/>
+  <axsl:preserve-space elements="dbk:para dbk:emphasis"/>
+  <axsl:template match="dbk:appendix |&#10;  dbk:article |&#10;  dbk:book |&#10;  dbk:chapter |&#10;  dbk:part |&#10;  dbk:preface |&#10;  dbk:section |&#10;  dbk:sect1 |&#10;  dbk:sect2 |&#10;  dbk:sect3 |&#10;  dbk:sect4 |&#10;  dbk:sect5">
+    <axsl:variable name="subsections" select="dbk:para[@rnd:style = &quot;bibliography&quot; or @rnd:style = &quot;bibliography-title&quot; or @rnd:style = &quot;glossary&quot; or @rnd:style = &quot;glossary-title&quot; or @rnd:style = &quot;qandaset&quot; or @rnd:style = &quot;qandaset-title&quot;]"/>
+    <axsl:copy>
+      <axsl:apply-templates select="@*"/>
+      <axsl:choose>
+        <axsl:when test="$subsections">
+          <axsl:apply-templates select="$subsections[1]/preceding-sibling::node()"/>
+          <axsl:apply-templates select="$subsections[1]" mode="subsections">
+            <axsl:with-param name="subsections" select="$subsections[position() != 1]"/>
+          </axsl:apply-templates>
+        </axsl:when>
+        <axsl:when test="dbk:appendix |&#10;  dbk:article |&#10;  dbk:book |&#10;  dbk:chapter |&#10;  dbk:part |&#10;  dbk:preface |&#10;  dbk:section |&#10;  dbk:sect1 |&#10;  dbk:sect2 |&#10;  dbk:sect3 |&#10;  dbk:sect4 |&#10;  dbk:sect5">
+          <axsl:apply-templates select="*[self::dbk:appendix |&#10;  self::dbk:article |&#10;  self::dbk:book |&#10;  self::dbk:chapter |&#10;  self::dbk:part |&#10;  self::dbk:preface |&#10;  self::dbk:section |&#10;  self::dbk:sect1 |&#10;  self::dbk:sect2 |&#10;  self::dbk:sect3 |&#10;  self::dbk:sect4 |&#10;  self::dbk:sect5][1]/preceding-sibling::node()"/>
+          <axsl:apply-templates select="dbk:appendix |&#10;  dbk:article |&#10;  dbk:book |&#10;  dbk:chapter |&#10;  dbk:part |&#10;  dbk:preface |&#10;  dbk:section |&#10;  dbk:sect1 |&#10;  dbk:sect2 |&#10;  dbk:sect3 |&#10;  dbk:sect4 |&#10;  dbk:sect5"/>
+        </axsl:when>
+        <axsl:otherwise>
+          <axsl:apply-templates/>
+        </axsl:otherwise>
+      </axsl:choose>
+    </axsl:copy>
+    <axsl:choose>
+      <axsl:when test="following-sibling::*[self::dbk:appendix |&#10;  self::dbk:article |&#10;  self::dbk:book |&#10;  self::dbk:chapter |&#10;  self::dbk:part |&#10;  self::dbk:preface |&#10;  self::dbk:section |&#10;  self::dbk:sect1 |&#10;  self::dbk:sect2 |&#10;  self::dbk:sect3 |&#10;  self::dbk:sect4 |&#10;  self::dbk:sect5] | following-sibling::dbk:para[@rnd:style = &quot;bibliography&quot; or @rnd:style = &quot;bibliography-title&quot; or @rnd:style = &quot;glossary&quot; or @rnd:style = &quot;glossary-title&quot; or @rnd:style = &quot;qandaset&quot; or @rnd:style = &quot;qandaset-title&quot;]">
+        <axsl:variable name="nextComponent" select="following-sibling::*[self::dbk:appendix |&#10;  self::dbk:article |&#10;  self::dbk:book |&#10;  self::dbk:chapter |&#10;  self::dbk:part |&#10;  self::dbk:preface |&#10;  self::dbk:section |&#10;  self::dbk:sect1 |&#10;  self::dbk:sect2 |&#10;  self::dbk:sect3 |&#10;  self::dbk:sect4 |&#10;  self::dbk:sect5|self::dbk:para[@rnd:style = &quot;bibliography&quot; or @rnd:style = &quot;bibliography-title&quot; or @rnd:style = &quot;glossary&quot; or @rnd:style = &quot;glossary-title&quot; or @rnd:style = &quot;qandaset&quot; or @rnd:style = &quot;qandaset-title&quot;]][1]"/>
+        <axsl:apply-templates select="following-sibling::*[generate-id(following-sibling::*[self::dbk:appendix |&#10;  self::dbk:article |&#10;  self::dbk:book |&#10;  self::dbk:chapter |&#10;  self::dbk:part |&#10;  self::dbk:preface |&#10;  self::dbk:section |&#10;  self::dbk:sect1 |&#10;  self::dbk:sect2 |&#10;  self::dbk:sect3 |&#10;  self::dbk:sect4 |&#10;  self::dbk:sect5|self::dbk:para[@rnd:style = &quot;bibliography&quot; or @rnd:style = &quot;bibliography-title&quot; or @rnd:style = &quot;glossary&quot; or @rnd:style = &quot;glossary-title&quot; or @rnd:style = &quot;qandaset&quot; or @rnd:style = &quot;qandaset-title&quot;]][1]) = generate-id($nextComponent)]"/>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:apply-templates select="following-sibling::*"/>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="subsections">
+    <axsl:param name="subsections" select="/.."/>
+    <axsl:choose>
+      <axsl:when test="@rnd:style = &quot;bibliography&quot; or @rnd:style = &quot;bibliography-title&quot;">
+        <bibliography xmlns="http://docbook.org/ns/docbook">
+          <axsl:call-template name="copy"/>
+          <axsl:variable name="bibliodivs" select="following-sibling::dbk:para[@rnd:style = &quot;bibliodiv&quot; or @rnd:style = &quot;bibliodiv-title&quot;]"/>
+          <axsl:choose>
+            <axsl:when test="$bibliodivs">
+              <axsl:apply-templates select="following-sibling::*[1]" mode="bibliodivs">
+                <axsl:with-param name="nextSubsection" select="$subsections[1]"/>
+                <axsl:with-param name="bibliodivs" select="$bibliodivs[position() != 1]"/>
+              </axsl:apply-templates>
+            </axsl:when>
+            <axsl:otherwise>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="terminal">
+                <axsl:with-param name="nextSubsection" select="$subsections[1]"/>
+              </axsl:apply-templates>
+            </axsl:otherwise>
+          </axsl:choose>
+        </bibliography>
+      </axsl:when>
+      <axsl:when test="@rnd:style = &quot;glossary&quot; or @rnd:style = &quot;glossary-title&quot;">
+        <glossary xmlns="http://docbook.org/ns/docbook">
+          <axsl:call-template name="copy"/>
+          <axsl:variable name="glossdivs" select="following-sibling::dbk:para[@rnd:style = &quot;glossdiv&quot; or @rnd:style = &quot;glossdiv-title&quot;]"/>
+          <axsl:choose>
+            <axsl:when test="$glossdivs">
+              <axsl:apply-templates select="following-sibling::*[1]" mode="glossdivs">
+                <axsl:with-param name="nextSubsection" select="$subsections[1]"/>
+                <axsl:with-param name="glossdivs" select="$glossdivs[position() != 1]"/>
+              </axsl:apply-templates>
+            </axsl:when>
+            <axsl:otherwise>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="terminal">
+                <axsl:with-param name="nextSubsection" select="$subsections[1]"/>
+              </axsl:apply-templates>
+            </axsl:otherwise>
+          </axsl:choose>
+        </glossary>
+      </axsl:when>
+      <axsl:when test="@rnd:style = &quot;qandaset&quot; or @rnd:style = &quot;qandaset-title&quot;">
+        <qandaset xmlns="http://docbook.org/ns/docbook">
+          <axsl:call-template name="copy"/>
+          <axsl:variable name="qandadivs" select="following-sibling::dbk:para[@rnd:style = &quot;qandadiv&quot; or @rnd:style = &quot;qandadiv-title&quot;]"/>
+          <axsl:choose>
+            <axsl:when test="$qandadivs">
+              <axsl:apply-templates select="following-sibling::*[1]" mode="qandadivs">
+                <axsl:with-param name="nextSubsection" select="$subsections[1]"/>
+                <axsl:with-param name="qandadivs" select="$qandadivs[position() != 1]"/>
+              </axsl:apply-templates>
+            </axsl:when>
+            <axsl:otherwise>
+              <axsl:apply-templates select="following-sibling::*[1]" mode="terminal">
+                <axsl:with-param name="nextSubsection" select="$subsections[1]"/>
+              </axsl:apply-templates>
+            </axsl:otherwise>
+          </axsl:choose>
+        </qandaset>
+      </axsl:when>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="*" mode="subsections">
+    <axsl:param name="subsections" select="/.."/>
+    <axsl:copy>
+      <axsl:apply-templates select="@*"/>
+      <axsl:apply-templates mode="subsections"/>
+    </axsl:copy>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="bibliodivs">
+    <axsl:param name="nextSubsection" select="/.."/>
+    <axsl:param name="bibliodivs" select="/.."/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextSubsection)"/>
+      <axsl:when test="@rnd:style = &quot;bibliodiv&quot; or @rnd:style = &quot;bibliodiv-title&quot;">
+        <bibliodiv xmlns="http://docbook.org/ns/docbook">
+          <axsl:call-template name="copy"/>
+          <axsl:apply-templates select="following-sibling::*[1]" mode="terminal">
+            <axsl:with-param name="nextSubsection" select="$nextSubsection"/>
+            <axsl:with-param name="nextbibliodiv" select="$bibliodivs[1]"/>
+          </axsl:apply-templates>
+        </bibliodiv>
+        <axsl:choose>
+          <axsl:when test="$nextSubsection and         $bibliodivs and         count($nextSubsection/preceding-sibling::* | $bibliodivs[1]) = count($nextSubsection/preceding-sibling::*)">
+            <axsl:apply-templates select="$bibliodivs[1]" mode="bibliodivs">
+              <axsl:with-param name="nextSubsection" select="$nextSubsection"/>
+              <axsl:with-param name="bibliodivs" select="$bibliodivs[position() != 1]"/>
+            </axsl:apply-templates>
+          </axsl:when>
+          <axsl:when test="$bibliodivs">
+            <axsl:apply-templates select="$bibliodivs[1]" mode="bibliodivs">
+              <axsl:with-param name="bibliodivs" select="$bibliodivs[position() != 1]"/>
+            </axsl:apply-templates>
+          </axsl:when>
+        </axsl:choose>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="bibliodivs">
+          <axsl:with-param name="nextSubsection" select="$nextSubsection"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="glossdivs">
+    <axsl:param name="nextSubsection" select="/.."/>
+    <axsl:param name="glossdivs" select="/.."/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextSubsection)"/>
+      <axsl:when test="@rnd:style = &quot;glossdiv&quot; or @rnd:style = &quot;glossdiv-title&quot;">
+        <glossdiv xmlns="http://docbook.org/ns/docbook">
+          <axsl:call-template name="copy"/>
+          <axsl:apply-templates select="following-sibling::*[1]" mode="terminal">
+            <axsl:with-param name="nextSubsection" select="$nextSubsection"/>
+            <axsl:with-param name="nextglossdiv" select="$glossdivs[1]"/>
+          </axsl:apply-templates>
+        </glossdiv>
+        <axsl:choose>
+          <axsl:when test="$nextSubsection and         $glossdivs and         count($nextSubsection/preceding-sibling::* | $glossdivs[1]) = count($nextSubsection/preceding-sibling::*)">
+            <axsl:apply-templates select="$glossdivs[1]" mode="glossdivs">
+              <axsl:with-param name="nextSubsection" select="$nextSubsection"/>
+              <axsl:with-param name="glossdivs" select="$glossdivs[position() != 1]"/>
+            </axsl:apply-templates>
+          </axsl:when>
+          <axsl:when test="$glossdivs">
+            <axsl:apply-templates select="$glossdivs[1]" mode="glossdivs">
+              <axsl:with-param name="glossdivs" select="$glossdivs[position() != 1]"/>
+            </axsl:apply-templates>
+          </axsl:when>
+        </axsl:choose>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="glossdivs">
+          <axsl:with-param name="nextSubsection" select="$nextSubsection"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="dbk:para" mode="qandadivs">
+    <axsl:param name="nextSubsection" select="/.."/>
+    <axsl:param name="qandadivs" select="/.."/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextSubsection)"/>
+      <axsl:when test="@rnd:style = &quot;qandadiv&quot; or @rnd:style = &quot;qandadiv-title&quot;">
+        <qandadiv xmlns="http://docbook.org/ns/docbook">
+          <axsl:call-template name="copy"/>
+          <axsl:apply-templates select="following-sibling::*[1]" mode="terminal">
+            <axsl:with-param name="nextSubsection" select="$nextSubsection"/>
+            <axsl:with-param name="nextqandadiv" select="$qandadivs[1]"/>
+          </axsl:apply-templates>
+        </qandadiv>
+        <axsl:choose>
+          <axsl:when test="$nextSubsection and         $qandadivs and         count($nextSubsection/preceding-sibling::* | $qandadivs[1]) = count($nextSubsection/preceding-sibling::*)">
+            <axsl:apply-templates select="$qandadivs[1]" mode="qandadivs">
+              <axsl:with-param name="nextSubsection" select="$nextSubsection"/>
+              <axsl:with-param name="qandadivs" select="$qandadivs[position() != 1]"/>
+            </axsl:apply-templates>
+          </axsl:when>
+          <axsl:when test="$qandadivs">
+            <axsl:apply-templates select="$qandadivs[1]" mode="qandadivs">
+              <axsl:with-param name="qandadivs" select="$qandadivs[position() != 1]"/>
+            </axsl:apply-templates>
+          </axsl:when>
+        </axsl:choose>
+      </axsl:when>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="qandadivs">
+          <axsl:with-param name="nextSubsection" select="$nextSubsection"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="*" mode="terminal">
+    <axsl:param name="nextSubsection" select="/.."/>
+    <axsl:param name="nextbibliodiv" select="/.."/>
+    <axsl:param name="nextglossdiv" select="/.."/>
+    <axsl:param name="nextqandadiv" select="/.."/>
+    <axsl:choose>
+      <axsl:when test="generate-id() = generate-id($nextSubsection)"/>
+      <axsl:when test="generate-id() = generate-id($nextbibliodiv)"/>
+      <axsl:when test="generate-id() = generate-id($nextglossdiv)"/>
+      <axsl:when test="generate-id() = generate-id($nextqandadiv)"/>
+      <axsl:otherwise>
+        <axsl:call-template name="copy"/>
+        <axsl:apply-templates select="following-sibling::*[1]" mode="terminal">
+          <axsl:with-param name="nextSubsection" select="$nextSubsection"/>
+          <axsl:with-param name="nextbibliodiv" select="$nextbibliodiv"/>
+          <axsl:with-param name="nextglossdiv" select="$nextglossdiv"/>
+          <axsl:with-param name="nextqandadiv" select="$nextqandadiv"/>
+        </axsl:apply-templates>
+      </axsl:otherwise>
+    </axsl:choose>
+  </axsl:template>
+  <axsl:template match="*">
+    <axsl:copy>
+      <axsl:apply-templates select="@*"/>
+      <axsl:apply-templates/>
+    </axsl:copy>
+  </axsl:template>
+  <axsl:template name="copy">
+    <axsl:copy>
+      <axsl:apply-templates select="@*"/>
+      <axsl:apply-templates/>
+    </axsl:copy>
+  </axsl:template>
+  <axsl:template match="@*">
+    <axsl:copy/>
+  </axsl:template>
+</axsl:stylesheet>
diff --git a/applications/content/template/docbook/roundtrip/specifications.xml b/applications/content/template/docbook/roundtrip/specifications.xml
new file mode 100644
index 0000000..85db866
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/specifications.xml
@@ -0,0 +1,1420 @@
+<?xml version="1.0"?>
+<article xmlns="http://docbook.org/ns/docbook">
+  <info>
+    <title>Round-Tripping Specifications</title>
+    <author>
+      <firstname>Bob</firstname>
+      <surname>Stayton</surname>
+      <affiliation>
+        <orgname>Sagehill Enterprises</orgname>
+      </affiliation>
+    </author>
+    <author>
+      <firstname>Steve</firstname>
+      <surname>Ball</surname>
+      <affiliation>
+        <orgname>Explain</orgname>
+      </affiliation>
+    </author>
+    <revhistory>
+      <revision>
+        <revnumber>1.8</revnumber>
+        <date>2008-05-22</date>
+        <authorinitials>SRB</authorinitials>
+        <revremark>Updated for current implementation.</revremark>
+      </revision>
+      <revision>
+        <revnumber>1.7</revnumber>
+        <date>2008-02-22</date>
+        <authorinitials>SRB</authorinitials>
+        <revremark>Added edition.</revremark>
+      </revision>
+      <revision>
+        <revnumber>1.6</revnumber>
+        <date>2007-10-19</date>
+        <authorinitials>SRB</authorinitials>
+        <revremark>Added keyword.</revremark>
+      </revision>
+      <revision>
+        <revnumber>1.5</revnumber>
+        <date>2007-01-05</date>
+        <authorinitials>SRB</authorinitials>
+        <revremark>Reduce emphasis on WordML, add support for OpenOffice.</revremark>
+      </revision>
+      <revision>
+        <revnumber>1.4</revnumber>
+        <date>2005-11-11</date>
+        <authorinitials>SRB</authorinitials>
+        <revremark>Added bibliography.</revremark>
+      </revision>
+      <revision>
+        <revnumber>1.3</revnumber>
+        <date>2005-10-31</date>
+        <authorinitials>SRB</authorinitials>
+        <revremark>Added mediaobjectco, imageobjectco, programlistingco, areaspec, area, calloutlist.</revremark>
+      </revision>
+      <revision>
+        <revnumber>1.2</revnumber>
+        <date>2005-10-13</date>
+        <authorinitials>SRB</authorinitials>
+        <revremark>Version prior to using revhistory.</revremark>
+      </revision>
+    </revhistory>
+  </info>
+  <abstract>
+    <para>This document specifies how DocBook elements are mapped to paragraph and character styles in a word processor.  The specifications are used to write conversions between DocBook XML and word processor XML formats, such as Microsoft's WordProcessingML (WordML), OpenOffice's OpenDocument and Apple's Pages.</para>
+  </abstract>
+  <section>
+    <title>Introduction</title>
+    <para>Microsoft Word 2003 introduced WordProcessingML (WordML), an XML vocabulary for Word documents.  Since then, other popular word processors have become available that use XML as their data representation, namely Apple's Pages and OpenOffice.  By converting Word (or OpenOffice or Pages) to XML, it becomes possible to convert a word processing document to DocBook and vice versa using XSL transformations. Such conversions then enable the following.</para>
+    <itemizedlist>
+      <listitem>
+        <para>DocBook content creators write in their familiar wordprocessing application, rather than learning a new XML editing application.</para>
+      </listitem>
+      <listitem>
+        <para>DocBook XML documents can be styled for output using the typesetting features of the word processor.</para>
+      </listitem>
+    </itemizedlist>
+    <para>Word processors have a simple, flat data model; documents consist of paragraphs (and tables) and paragraphs contain text and character spans.  All word processors allow styles to be associated with paragraphs and spans.</para>
+    <para>This specification describes how DocBook elements map to a set of paragraph and character styles. It defines a specific set of style names for which a Word style template can be created. The style names are also used in XSLT template match patterns for conversion.  Although originally targetted to MS Word, the system has subsequently been extended to use other word processors, notably Apple's Pages and Open Office.</para>
+  </section>
+  <section>
+    <title>Project goals</title>
+    <para>The goal of this project is to enable a word processor, such as, but not limited to, Microsoft Word, to be used with DocBook files.  The specific goals include:</para>
+    <itemizedlist>
+      <listitem>
+        <para>Enable authoring of basic DocBook documents in the word processor.</para>
+      </listitem>
+      <listitem>
+        <para>Enable importing of basic DocBook XML documents into the word processor.</para>
+      </listitem>
+    </itemizedlist>
+    <para>To meet these goals, the project provides a toolkit that can be immediately put to use.  The kit includes:</para>
+    <itemizedlist>
+      <listitem>
+        <para>Templates for Microsoft Word, Apple Pages and Open Office with formatting styles attached to the style names.</para>
+      </listitem>
+      <listitem>
+        <para>XSLT stylesheets that convert a word processing document that is authored with the corresponding template into a DocBook XML file.</para>
+      </listitem>
+      <listitem>
+        <para>XSLT stylesheets that convert a DocBook document into a word processing document that can be opened in a word processor.</para>
+      </listitem>
+    </itemizedlist>
+    <section>
+      <title>Why basic DocBook?</title>
+      <para>This project will never be able to support all DocBook elements and structure. Take, for example, the <tag>address</tag> element. This element can be used both as a block element for metadata. It can also be used as a phrase level element in a block parent, such as the <tag>affiliation</tag> element. To make matters worse, it can itself contain phrase level markup, such as <tag>personname</tag>. No word processor allows character styles to be nested.</para>
+      <para>The project will initially focus on a basic set of commonly used DocBook elements in order to create a useful editing environment that utilises a word processor with DocBook. </para>
+      <para>One problem facing this conversion project is the sheer number of DocBook elements, over 400 in DocBook 5.0. To support DocBook structural models, several of the elements require more than one paragraph or character style. This would lead to very long and unwieldy list of styles in the word processor interface. That would make authoring less efficient and discourage users.</para>
+      <para>Accordingly, this project assumes that authors who need the full set of DocBook elements and structures will use an XML authoring tool that better supports them. This project is focused on authors who wish to write basic DocBook documents using a word processor. Because Microsoft Word is so widespread, it is hoped that this project will help a lot of new DocBook users get started with familiar tools.  They can then graduate to more advanced tools as their needs develop.</para>
+    </section>
+  </section>
+  <section>
+    <title>Project Non-Goals</title>
+    <para>The following goals <emphasis>are not</emphasis> in the scope of this project:</para>
+    <itemizedlist>
+      <listitem>
+        <para>Support of versions of Word that do not feature reading/writing WordML (XML).  That is, all versions prior to Word 11 (Office 2003).</para>
+      </listitem>
+      <listitem>
+        <para>Support of arbitrarily defined styles.  This system may expect certain styles to be defined in a particular fashion (in particular, those defining the title of components and divisions).</para>
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section>
+    <title>Mapping elements to styles</title>
+    <para>Although WordML, OpenDocument and DocBook are all XML, there several challenges when trying to convert between them.</para>
+    <para>The basic problem in mapping paragraph/character styles to DocBook elements is that word processor documents support far less structure than DocBook.  DocBook permits nesting of elements within other elements, providing multiple levels of context for each element.</para>
+    <para>Word's only structural feature is the outlining mode. In Word outlining, certain paragraph styles are assigned outline levels.  When a user applies those styles, they effectively create logical structure in the Word document.  Unfortunately, Word itself attempts to automatically determine which paragraphs are headings, rendering this method is unreliable.</para>
+    <para>Instead of relying on Word's built-in outlining mode, this system uses only the names of paragraph styles to determine document structure.  Certain heuristics are applied to build the DocBook element structure from the (relatively flat) word processing structure.  Titles and other features are used to mark the beginning of a structure and all paragraphs following that are included in that structure until the beginning of the next structure is found. That is, the beginning of one structure marks the end of the previous structure.</para>
+    <para>Problems may arise when a structure should end, but there is no word processor feature that marks the endpoint. To mark the end of a feature an empty paragraph is used.</para>
+    <para>Nesting of block elements is another commonly used feature of DocBook.  It is not possible to use Word's outline mode for blocks if it is being used for components and sections.  So in this specification, nesting of block elements is indicated by adding a number suffix to a style. So a paragraph with style <literal>orderedlist2</literal> is considered to be contained within a preceding paragraph with style <literal>orderedlist1</literal> or <literal>itemizedlist1</literal>. Where appropriate in the word processor, paragraph indent levels are used to visually indicate nesting of blocks.</para>
+    <para>Nesting of inline DocBook elements is particularly difficult to support because word processors do not nest character styles. That means a nested inline would require a separate character style to indicate the parent-child relationship. Given the large number of combinations possible, a prohibitively large number of character styles would have to be created. In this project, nesting of character styles is not supported. Nested inlines being imported from DocBook will be converted to a sequence of single-name character styles, where possible, or rejected.</para>
+    <para>In many cases, DocBook structure can be derived from the flat sequence of paragraphs based on sibling relationships. For example, when a paragraph styled as <literal>para</literal> is followed by a paragraph styled as <literal>itemizedlist1</literal>, the conversion to DocBook will output a <tag>para</tag> element and then start an <tag>itemizedlist</tag> element, with the second paragraph as its first <tag>listitem</tag>. All <literal>itemizedlist1</literal> paragraphs that follow without interruption are inserted into the same <tag>itemizedlist</tag> element.</para>
+    <para>Some combinations of elements cannot be supported (at least not with the techniques as described in this document).  An example is <tag>informalexample</tag> and its permitted content; there is no title to mark the beginning of the element and no marker for the end of the element, also there are too many parent-child combinations to reasonably define style names.</para>
+    <para>The design principles used in this project for selecting paragraph/character style names are as follows:</para>
+    <itemizedlist>
+      <listitem>
+        <para>Where Word (or OpenOffice or Pages), by default, has a style or feature that corresponds directly to a DocBook element then that style or feature will be used (and documented in this document).  For example, the <literal>Normal</literal> paragraph style maps to a DocBook <tag>para</tag> element, and a Word table (<tag>w:tbl</tag>) maps to a DocBook <tag>table</tag><footnote><para>In some cases Word may posess a feature, but it doesn't function in an acceptable manner.  For example, lists.  In these cases the feature is to be avoided, and a workaround provided.</para></footnote>.</para>
+      </listitem>
+      <listitem>
+        <para>Paragraph and character style names will match DocBook element names as much as possible. This will enable authors to learn DocBook element names and help debug problems with conversion.</para>
+      </listitem>
+      <listitem>
+        <para>A style may indicate a parent-child relationship, but the paragraph for such an element may only occur after a paragraph that denotes the beginning of the parent structure.  In this case the element name is used as the style name.  For example, a <tag>personblurb</tag> paragraph may only occur after an <tag>author</tag>, <tag>editor</tag> or <tag>othercontrib</tag> paragraph.  If a paragraph occurs without the appropriate preceding paragraph, then an error is signalled.</para>
+      </listitem>
+      <listitem>
+        <para>Some styles may also indicate a parent-child relationship, but either the parent structure is ambiguous or the paragraph starts the parent structure.  For example, <literal>chapter-title</literal> indicates that the paragraph is a <tag>title</tag> element whose DocBook parent is a <tag>chapter</tag> element.</para>
+      </listitem>
+      <listitem>
+        <para>Some style names are simplified to make them easier to use in the word processor. For example, a paragraph in an orderedlist requires three elements in DocBook: <tag>orderedlist</tag>, <tag>listitem</tag>, and <tag>para</tag>. The paragraph style name in Word is shortened from <literal>orderedlist-listitem-para</literal> to just <literal>orderedlist1</literal> (for a first level list). In the case of lists (see below), the list level is appended, which is why this example becomes <literal>orderedlist1</literal>.</para>
+      </listitem>
+      <listitem>
+        <para>Style names with a number suffix indicate a nesting level, as described above.</para>
+      </listitem>
+      <listitem>
+        <para>Style names with <literal>continue</literal> indicate that the paragraph is part of the preceding element. For example, a <literal>para</literal> paragraph is used for a single paragraph <tag>para</tag> element. This causes any preceding list to be closed. If a list item in the preceding list is to contain more than one paragraph, then the subsequent paragraphs in the word processor documentmust use the <literal>para-continue</literal> style.</para>
+      </listitem>
+      <listitem>
+        <para>Character styles map to elements that are children of the element for the paragraph, hence there is no need to encode parent-child relationships.  For example, a <literal>surname</literal> character style in an <literal>author</literal> paragraph becomes a <tag>surname</tag> child element of the <tag>author</tag> element.</para>
+      </listitem>
+      <listitem>
+        <para>Empty paragraph and character styles are ignored. This can be useful to end structures.</para>
+      </listitem>
+      <listitem>
+        <para>The first paragraph style in the word processor document is used to define the root element of the DocBook document. For example, if the document starts with <literal>book-title</literal>, then the DocBook document will have <tag>book</tag> element as its root element.  All the rest of the document content will be contained in that root element.</para>
+      </listitem>
+    </itemizedlist>
+    <para>Sequential structures are coalesced into a single parent element.  For example, a sequence of <literal>itemizedlist1</literal> paragraphs becomes a single <tag>itemizedlist</tag> element with several <tag>listitem</tag> element children.</para>
+    <table>
+      <title>DocBook to Paragraph/Character Styles</title>
+      <tgroup cols="3">
+        <colspec colnum="1" colname="col1" colwidth="2*"/>
+        <colspec colnum="2" colname="col2" colwidth="2*"/>
+        <colspec colnum="3" colname="col3" colwidth="2*"/>
+        <thead>
+          <row>
+            <entry>
+              <para colname="col1">DocBook element</para>
+            </entry>
+            <entry>
+              <para colname="col2">Style(s)</para>
+            </entry>
+            <entry>
+              <para colname="col3">Comments</para>
+            </entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry namest="col1" nameend="col3">
+              <para>
+                <emphasis role="bold">Components and sections</emphasis>
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para colname="col1">book/info/title</para>
+            </entry>
+            <entry colname="col2">
+              <para>book-title</para>
+            </entry>
+            <entry colname="col3">
+              <para/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <para>book/info/subtitle</para>
+            </entry>
+            <entry colname="col2">
+              <para>book-subtitle</para>
+            </entry>
+            <entry colname="col3">
+              <para/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <para>book/info/titleabbrev</para>
+            </entry>
+            <entry colname="col2">
+              <para>book-titleabbrev</para>
+            </entry>
+            <entry colname="col3">
+              <para/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <para>chapter/info/title</para>
+            </entry>
+            <entry colname="col2">
+              <para>chapter-title</para>
+            </entry>
+            <entry colname="col3">
+              <para>Assigned Word outline level 1.</para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <para>chapter/info/subtitle</para>
+            </entry>
+            <entry colname="col2">
+              <para>chapter-subtitle</para>
+            </entry>
+            <entry colname="col3">
+              <para/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <para>chapter/info/titleabbrev</para>
+            </entry>
+            <entry colname="col2">
+              <para>chapter-titleabbrev</para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <para>appendix/info/title</para>
+            </entry>
+            <entry colname="col2">
+              <para>appendix-title</para>
+            </entry>
+            <entry colname="col3">
+              <para>Assigned Word outline level 1.</para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <para>preface/info/title</para>
+            </entry>
+            <entry colname="col2">
+              <para>preface-title</para>
+            </entry>
+            <entry colname="col3">
+              <para>Assigned Word outline level 1.</para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <para>article/info/title</para>
+            </entry>
+            <entry colname="col2">
+              <para>article-title</para>
+            </entry>
+            <entry colname="col3">
+              <para>Assigned Word outline level 1.</para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <para>article/info/subtitle</para>
+            </entry>
+            <entry colname="col2">
+              <para>article-subtitle</para>
+            </entry>
+            <entry colname="col3">
+              <para/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">article/info/titleabbrev</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">article-titleabbrev</db:para>
+            </entry>
+            <entry colname="col3">
+              <para/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">bibliography/info/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">bibliography-title</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Assigned Word outline level 1.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">bibliography/bibliodiv/info/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">bibliodiv-title</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">biblioentry/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">biblioentry-title</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Metadata elements after the biblioentry-title paragraph become part of the <sgmltag>biblioentry</sgmltag>.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">glossary/info/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">glossary-title</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Assigned Word outline level 1.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">index/info/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">index-title</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Assigned Word outline level 1.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">part/info/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">part-title</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">section</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Unnumbered <tag>section</tag> elements are translated into their equivalent numbered paragraph style. Sections 6 levels and deeper are reported as an error.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect1/info/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect1-title</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Assigned Word outline level 2.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect1/info/subtitle</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect1-subtitle</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect2/info/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect2-title</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Assigned Word outline level 3.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect2/info/subtitle</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect2-subtitle</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect3/info/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect3-title</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Assigned Word outline level 4.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect3/info/subtitle</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect3-subtitle</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect4/info/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect4-title</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Assigned Word outline level 5.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect4/info/subtitle</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect4-subtitle</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect5/info/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect5-title</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Assigned Word outline level 6.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect5/info/subtitle</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">sect5-subtitle</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">simplesect/info/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">simplesect-title</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">simplesect/info/subtitle</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">simplesect-subtitle</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">bridgehead</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">bridgehead</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry namest="col1" nameend="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">
+                <emphasis role="bold">Metadata elements</emphasis>
+              </db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">abstract/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">abstract-title</db:para>
+            </entry>
+            <entry colname="col3"><para/>.</entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">abstract/para</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">abstract</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">affiliation</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">affiliation</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">address</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">address</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">author</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">author</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">date</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">date</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">edition</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">edition</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">legalnotice</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">legalnotice</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">pubdate</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">pubdate</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">publisher/pubishername</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">publisher</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">publisher/address</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">publisher-address</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">revhistory/revision</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">revision</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry namest="col1" nameend="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">
+                <emphasis role="bold">Block-level elements</emphasis>
+              </db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">para</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">para, Normal</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Any Word paragraph with style <literal>Normal</literal> will also be converted to a <tag>para</tag> element.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">formalpara/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">formalpara-title</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">formalpara/para</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">formalpara</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">simpara</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">simpara</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">note/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">note-title</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">note/para</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">note</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Consecutive paragraphs with style <literal>note</literal> after the first note are to be treated as part of the same <tag>note</tag> element.  That is, consecutive notes are coalesced. The note may or may not have a title.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">caution/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">caution-title</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">caution/para</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">caution</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Consecutive cautions are coalesced.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">warning/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">warning-title</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">warning/para</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">warning</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Consecutive warnings are coalesced.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">important/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">important-title</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">important/para</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">important</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Consecutive importants are coalesced.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">tip/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">tip-title</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">tip/para</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">tip</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Consecutive tips are coalesced.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">itemizedlist/listitem/para</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">
+                <literallayout class="monospaced">itemizedlist1
+itemizedlist2
+itemizedlist3
+itemizedlist4</literallayout>
+              </db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">A number suffix indicates a nesting level within other lists.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">orderedlist/listitem/para</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">
+                <literallayout class="monospaced">orderedlist1
+orderedlist2
+orderedlist3
+orderedlist4</literallayout>
+              </db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">listitem/para[position() != 1]</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">para-continue</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">This paragraph is included in the immediately preceding listitem.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">example/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">example-title</db:para>
+            </entry>
+            <entry colname="col3">
+              <para>All content following the title is included in the <tag>example</tag> element. The end of the example content is marked by a <literal>caption</literal> paragraph or an empty paragraph if there is no caption.</para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">figure/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">figure-title</db:para>
+            </entry>
+            <entry colname="col3">
+              <para>All content following the title is included in the <tag>figure</tag> element. Metadata must immediately follow the title. The end of the figure content is marked by a <literal>caption</literal> paragraph or an empty paragraph if there is no caption.</para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">informalfigure/mediaobject/imageobject/imagedata/@fileref</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">informalfigure-imagedata, caption</db:para>
+            </entry>
+            <entry colname="col3">
+              <para>The content of the <literal>imageobject-imagedata</literal> paragraph is taken as the URI for the image. Metadata may immediately follow the paragraph.</para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">mediaobject/imageobject/imagedata/@fileref</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">imageobject-imagedata, caption</db:para>
+            </entry>
+            <entry colname="col3">
+              <para>The content of the <literal>imageobject-imagedata</literal> paragraph is taken as the URI for the image.  May be followed by a <literal>caption</literal> style paragraph. Metadata may immediately follow the paragraph, before the caption, if any.</para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">table</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Word table, caption</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">table/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">table-title, caption</db:para>
+            </entry>
+            <entry colname="col3">
+              <para>Metadata may immediately follow the paragraph.</para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">informaltable</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Word table</db:para>
+            </entry>
+            <entry colname="col3">
+              <para>A table with no title imediately preceding it.</para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">caption</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">caption</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">literallayout</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">literallayout</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Inside a <literal>literallayout</literal> paragraph in Word, lines should be separated by line break (Shift-Enter) rather than paragraph break (Enter).</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">programlisting</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">programlisting</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Inside a <literal>programlisting</literal> paragraph in Word, lines should be separated by line break (Shift-Enter) rather than paragraph break (Enter). Tabs are not supported.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">blockquote/title</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">blockquote-title</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Must immediately precede a <literal>blockquote</literal> paragraph in Word.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">blockquote/para</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">blockquote</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">blockquote/attribution</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">blockquote-attribution</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Must immediately follow a <literal>blockquote</literal> paragraph in Word.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">bibliomisc</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">bibliomisc</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry namest="col1" nameend="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">
+                <emphasis role="bold">Non-DocBook elements</emphasis>
+              </db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">xi:include</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">xinclude</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">The content of the paragraph becomes the value of the <tag>href</tag> attribute.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry namest="col1" nameend="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">
+                <emphasis role="bold">Inline elements</emphasis>
+              </db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">emphasis</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">emphasis</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">emphasis/@role="bold"</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">emphasis-bold</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">emphasis/@role="underline"</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">emphasis-underline</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">footnote</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Word footnote</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">link</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">link</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">In Word, hyperlink properties identify the DocBook linkend.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">releaseinfo</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">releaseinfo</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">surname</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">surname</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Character style.  Must occur in an appropriate parent paragraph, such as <tag>author</tag> or <tag>editor</tag>.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">firstname</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">firstname</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Character style.  Must occur in an appropriate parent paragraph, such as <tag>author</tag> or <tag>editor</tag>.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">orgname</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">orgname</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">keyword</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">keywordset/keyword</db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">Paragraph style.  Consecutive <tag>keyword</tag> elements are merged into a single <tag>keywordset</tag> parent element.  Words (phrases) within a paragraph separated by commas become individual <tag>keyword</tag> elements.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">citetitle</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">citetitle</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">city</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">city</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">contrib</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">contrib</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">country</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">country</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">email</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">email</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">fax</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">fax</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">honorific</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">honorific</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">jobtitle</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">jobtitle</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">lineage</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">lineage</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">orgdiv</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">orgdiv</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">otheraddr</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">otheraddr</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">othername</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">othername</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">phone</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">phone</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">pob</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">pob</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">postcode</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">postcode</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">shortaffil</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">shortaffil</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">state</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">state</db:para>
+            </entry>
+            <entry>
+              <db:para xmlns:db="http://docbook.org/ns/docbook"/>
+            </entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table>
+    <table>
+      <title>Proposed Additions - not yet implemented</title>
+      <tgroup cols="3">
+        <colspec colnum="1" colname="col1" colwidth="2*"/>
+        <colspec colnum="2" colname="col2" colwidth="2*"/>
+        <colspec colnum="3" colname="col3" colwidth="2*"/>
+        <thead>
+          <row>
+            <entry colname="col1">
+              <para>DocBook element</para>
+            </entry>
+            <entry colname="col2">
+              <para>Style(s)</para>
+            </entry>
+            <entry colname="col3">
+              <para>Comments</para>
+            </entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">variablelist/varlistentry/term</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">
+                <literallayout class="monospaced">variablelist1-term
+variablelist2-term
+variablelist3-term
+variablelist4-term</literallayout>
+              </db:para>
+            </entry>
+            <entry colname="col3">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">A <sgmltag class="element">variablelist</sgmltag> in Word should be a sequence of alternating paragraphs styled as <literal>variablelistN-term</literal> and <literal>variablelistN</literal>.</db:para>
+            </entry>
+          </row>
+          <row>
+            <entry colname="col1">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">variablelist/varlistentry/listitem/para</db:para>
+            </entry>
+            <entry colname="col2">
+              <db:para xmlns:db="http://docbook.org/ns/docbook">
+                <literallayout class="monospaced">variablelist1
+variablelist2
+variablelist3
+variablelist4</literallayout>
+              </db:para>
+            </entry>
+            <entry colname="col3">
+              <para>Consecutive paragraphs are coalesced.</para>
+            </entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table>
+    <section>
+      <title>Attributes</title>
+      <para>Attributes are a feature of DocBook XML that have no direct counterpart in Word.</para>
+      <para>XML attributes are encoded in Word comments (annotations).  Some dummy text (just a space, using a character style that includes the hidden property) anchors the comment.  Within the comment text, character types are used to indicate attribute names and values (these must be paired).  This approach keeps the attributes separate to the main body and allows multiple attributes to be encoded.</para>
+      <para>A disadvantage to this approach is that a paragraph may be related to more than one element, but the attributes are associated with only one element (by default the parent).  For example, a section may have an attribute as well as the title child element, but only a single paragraph (with paragraph style <literal>sect1-title</literal>) represents both elements.  Any attribute defined in a comment would be associated with the <tag>sect1</tag> element.</para>
+      <para>Pages does not have annotations, so the character styles <literal>attribute-name</literal> and <literal>attribute-value</literal> are used.</para>
+    </section>
+  </section>
+</article>
diff --git a/applications/content/template/docbook/roundtrip/template-pages.xml b/applications/content/template/docbook/roundtrip/template-pages.xml
new file mode 100644
index 0000000..cc6fc03
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/template-pages.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<sl:document xmlns:sfa="http://developer.apple.com/namespaces/sfa" xmlns:sf="http://developer.apple.com/namespaces/sf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sl="http://developer.apple.com/namespaces/sl" sl:version="72007061400" sfa:ID="SLPublicationModel-0" sl:generator="slingshot" sl:app_build_date="Sep 26 2007, 14:46:11"><sl:version-history><sl:number sfa:number="2004042200" sfa:type="i"/><sl:number sfa:number="2004060800" sfa:type="i"/><sl:number sfa:number="2004061600" sfa:type="i"/><sl:number sfa:number="2004062200" sfa:type="i"/><sl:number sfa:number="2004062900" sfa:type="i"/><sl:number sfa:number="2004072200" sfa:type="i"/><sl:number sfa:number="2004091600" sfa:type="i"/><sl:number sfa:number="2004093000" sfa:type="i"/><sl:number sfa:number="2005140600" sfa:type="i"/><sl:number sfa:number="72007061400" sfa:type="q"/></sl:version-history><sl:publication-info><sl:SFWPCTShowDeletedTextProperty><sl:number sfa:number="1" sfa:type="c"/></sl:SFWPCTShowDeletedTextProperty><sl:SLCreationLocaleProperty><sl:string sfa:string="en_AU"/></sl:SLCreationLocaleProperty><sl:decimalTab><sl:string sfa:string="."/></sl:decimalTab><sl:kSFWPHyperlinksEnabledProperty><sl:number sfa:number="1" sfa:type="c"/></sl:kSFWPHyperlinksEnabledProperty><sl:kSFWPFootnoteNumberingProperty><sl:number sfa:number="0" sfa:type="i"/></sl:kSFWPFootnoteNumberingProperty><sl:SFWPShowInvisiblesProperty><sl:number sfa:number="0" sfa:type="c"/></sl:SFWPShowInvisiblesProperty><sl:kSFWPGhostTextAuthoringEnabledProperty><sl:number sfa:number="0" sfa:type="c"/></sl:kSFWPGhostTextAuthoringEnabledProperty><sl:kSFWPFootnoteKindProperty><sl:number sfa:number="0" sfa:type="i"/></sl:kSFWPFootnoteKindProperty><sl:kSFWPAutoHyphenationProperty><sl:number sfa:number="1" sfa:type="c"/></sl:kSFWPAutoHyphenationProperty><sl:SLCreationDateProperty><sl:date sfa:ID="NSCalendarDate-0" sf:val="2005-04-08T17:18:47+1000"/></sl:SLCreationDateProperty><sl:kSFWPFootnoteGapProperty><sl:number sfa:number="10" sfa:type="i"/></sl:kSFWPFootnoteGapProperty><sl:DefaultHyphenationLanguage><sl:string sfa:string="en"/></sl:DefaultHyphenationLanguage><sl:ShowPageGuides><sl:number sfa:number="0" sfa:type="c"/></sl:ShowPageGuides><sl:kSFWPHasHeadersProperty><sl:number sfa:number="1" sfa:type="c"/></sl:kSFWPHasHeadersProperty><sl:SLSectionAuthoringProperty><sl:number sfa:number="0" sfa:type="c"/></sl:SLSectionAuthoringProperty><sl:SLSaveQuickLookPreviewProperty><sl:number sfa:number="0" sfa:type="c"/></sl:SLSaveQuickLookPreviewProperty><sl:kSFWPFootnoteFormatProperty><sl:number sfa:number="0" sfa:type="i"/></sl:kSFWPFootnoteFormatProperty><sl:kSFWPHyphenationZoneProperty><sl:number sfa:number="18" sfa:type="i"/></sl:kSFWPHyphenationZoneProperty><sl:SLLastModifiedLocaleProperty><sl:string sfa:string="en_AU"/></sl:SLLastModifiedLocaleProperty><sl:SLVisibleLinkedTextBoxConnections><sl:number sfa:number="1" sfa:type="c"/></sl:SLVisibleLinkedTextBoxConnections><sl:SLCopyTemplateAssetsProperty><sl:number sfa:number="0" sfa:type="c"/></sl:SLCopyTemplateAssetsProperty><sl:SFWPCTMarkupVisibleProperty><sl:number sfa:number="1" sfa:type="c"/></sl:SFWPCTMarkupVisibleProperty><sl:SLCopyMoviesProperty><sl:number sfa:number="1" sfa:type="c"/></sl:SLCopyMoviesProperty><sl:SLNumberOfTimesSavedProperty><sl:number sfa:number="47" sfa:type="i"/></sl:SLNumberOfTimesSavedProperty><sl:SLLastModifiedDateProperty><sl:date sfa:ID="NSDate-0" sf:val="2007-12-12T19:45:06+1100"/></sl:SLLastModifiedDateProperty><sl:kSFWPHasFootersProperty><sl:number sfa:number="1" sfa:type="c"/></sl:kSFWPHasFootersProperty><sl:kSFWPHasBodyProperty><sl:number sfa:number="1" sfa:type="c"/></sl:kSFWPHasBodyProperty><sl:kSFWPUseLigaturesProperty><sl:number sfa:number="1" sfa:type="c"/></sl:kSFWPUseLigaturesProperty><sl:SFWPChangeBarsVisibleProperty><sl:number sfa:number="1" sfa:type="c"/></sl:SFWPChangeBarsVisibleProperty><sl:SFWPAnnotationsVisibleProperty><sl:number sfa:number="0" sfa:type="c"/></sl:SFWPAnnotationsVisibleProperty><sl:language><sl:string sfa:string="en"/></sl:language></sl:publication-info><sf:metadata><sf:projects><sf:array sfa:ID="NSArray-0"><sf:string sfa:string=""/></sf:array></sf:projects><sf:authors><sf:array sfa:ID="NSArray-1"><sf:string sfa:string=""/></sf:array></sf:authors><sf:title><sf:string sfa:string=""/></sf:title><sf:copyright><sf:string sfa:string="(c)"/></sf:copyright><sf:keywords><sf:array sfa:ID="NSArray-2"><sf:string sfa:string=""/></sf:array></sf:keywords><sf:comment><sf:string sfa:string=""/></sf:comment></sf:metadata><sl:slprint-info sfa:ID="SLPrintInfo-0" sl:page-width="595" sl:page-height="842" sl:page-scale="1"><sf:page-margins sfa:ID="SFWPMargins-0" sf:top="56.692913055419922" sf:left="56.692913055419922" sf:bottom="70.866142272949219" sf:right="56.692913055419922" sf:header="35.433071136474609" sf:footer="42.519683837890625"/><sl:print-info><sl:NSVerticalPagination><sl:number sfa:number="0" sfa:type="i"/></sl:NSVerticalPagination><sl:NSPrintProtected><sl:number sfa:number="0" sfa:type="c"/></sl:NSPrintProtected><sl:NSHorizontallyCentered><sl:number sfa:number="1" sfa:type="c"/></sl:NSHorizontallyCentered><sl:NSCopies><sl:number sfa:number="1" sfa:type="i"/></sl:NSCopies><sl:NSVerticallyCentered><sl:number sfa:number="1" sfa:type="c"/></sl:NSVerticallyCentered><sl:NSFirstPage><sl:number sfa:number="1" sfa:type="i"/></sl:NSFirstPage><sl:NSScalingFactor><sl:number sfa:number="1" sfa:type="f"/></sl:NSScalingFactor><sl:NSTopMargin><sl:number sfa:number="90" sfa:type="f"/></sl:NSTopMargin><sl:NSJobDisposition><sl:string sfa:string="NSPrintSpoolJob"/></sl:NSJobDisposition><sl:NSMustCollate><sl:number sfa:number="1" sfa:type="c"/></sl:NSMustCollate><sl:NSPrintAllPages><sl:number sfa:number="1" sfa:type="c"/></sl:NSPrintAllPages><sl:NSBottomMargin><sl:number sfa:number="90" sfa:type="f"/></sl:NSBottomMargin><sl:NSLastPage><sl:number sfa:number="2147483647" sfa:type="i"/></sl:NSLastPage><sl:NSOrientation><sl:number sfa:number="0" sfa:type="i"/></sl:NSOrientation><sl:NSPrinter><sl:printer sfa:ID="NSPrinter-0" sl:type="Canon MP530"/></sl:NSPrinter><sl:NSRightMargin><sl:number sfa:number="72" sfa:type="f"/></sl:NSRightMargin><sl:NSPaperName><sl:string sfa:string="A4"/></sl:NSPaperName><sl:NSHorizonalPagination><sl:number sfa:number="2" sfa:type="i"/></sl:NSHorizonalPagination><sl:NSLeftMargin><sl:number sfa:number="72" sfa:type="f"/></sl:NSLeftMargin><sl:NSPaperSize><sl:value><sfa:size sfa:w="595" sfa:h="842"/></sl:value></sl:NSPaperSize></sl:print-info></sl:slprint-info><sl:section-prototypes><sl:prototype sl:name="Text Page"><sf:stylesheet sfa:ID="SFSStylesheet-0"><sf:styles><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-0" sf:name="Sub-heading" sf:ident="paragraph-style-33"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-0" sf:name="None" sf:ident="list-style-default"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-3"><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/><sf:number sfa:number="180" sfa:type="f"/><sf:number sfa:number="216" sfa:type="f"/><sf:number sfa:number="252" sfa:type="f"/><sf:number sfa:number="288" sfa:type="f"/></sf:array></sf:listTextIndents><sf:listLabelGeometries><sf:array sfa:ID="NSArray-4"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-0" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-1" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-2" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-3" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-4" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-5" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-6" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-7" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-8" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-5"><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-6"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-0" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-1" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-2" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-3" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-4" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-5" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-6" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-7" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-8" sf:type="none"/></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle></sf:listStyle><sf:outlineLevel/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle sfa:ID="SLTOCParagraphStyle-0" sfa:sfclass="paragraphstyle" sf:name="TOC Heading 3" sf:ident="toc-paragraph-style-3"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:SLTOCPageNumberStyle><sf:null/></sf:SLTOCPageNumberStyle><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:null/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:dropCap/><sf:underlineWidth/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic><sf:number sfa:number="1" sfa:type="c"/></sf:italic><sf:SLTOCEntryStyle><sf:null/></sf:SLTOCEntryStyle><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs><sf:tabs sfa:ID="SFWPTabs-0"><sf:tabstop sf:pos="481.61416625976562" sf:align="right"/></sf:tabs></sf:tabs><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:SLTOCEnabledStyles><sf:null/></sf:SLTOCEnabledStyles><sf:SLTOCDisabledStyles><sf:null/></sf:SLTOCDisabledStyles><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:SLTOCShowPageNumber/><sf:keepWithNext/><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="28.34646" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="28.34646" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:tocstyle></sf:tocStyle><sf:dropCap/><sf:firstTopicNumber/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-1" sf:name="Body" sf:ident="paragraph-style-32"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-0"/></sf:listStyle><sf:outlineLevel/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:firstTopicNumber/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="6" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-0" sf:name="graphic-line-style-default" sf:ident="graphic-line-style-default"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:reflection><sf:null/></sf:reflection><sf:externalTextWrap><sf:external-text-wrap sfa:ID="SFWPExternalTextWrap-0" sf:wrap-style="tight" sf:floating-wrap-enabled="true" sf:direction="both" sf:attachment-wrap-type="aligned" sf:floating-wrap-type="directional" sf:margin="12" sf:alpha-threshold="0.5"/></sf:externalTextWrap><sf:stroke><sf:stroke sfa:ID="SFRStroke-0" sf:miter-limit="4" sf:width="2" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-0" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:null/></sf:fill><sf:shadow><sf:shadow sfa:ID="SFRShadow-0" sf:is-null="true"/></sf:shadow></sf:property-map></sf:graphic-style><sf:sectionstyle sfa:ID="SFWPSectionStyle-0" sf:name="[Null]" sf:ident="section-style-null"><sf:property-map/></sf:sectionstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-2" sf:name="Heading" sf:ident="paragraph-style-35"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-0"/></sf:listStyle><sf:outlineLevel/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle sfa:ID="SLTOCParagraphStyle-1" sfa:sfclass="paragraphstyle" sf:name="TOC Heading 2" sf:ident="toc-paragraph-style-2"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="3" sfa:type="f"/></sf:spaceAfter><sf:SLTOCPageNumberStyle><sf:null/></sf:SLTOCPageNumberStyle><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:null/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:dropCap/><sf:underlineWidth/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:SLTOCEntryStyle><sf:null/></sf:SLTOCEntryStyle><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs><sf:tabs sfa:ID="SFWPTabs-1"><sf:tabstop sf:pos="481.61416625976562" sf:align="right"/></sf:tabs></sf:tabs><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:SLTOCEnabledStyles><sf:null/></sf:SLTOCEnabledStyles><sf:SLTOCDisabledStyles><sf:null/></sf:SLTOCDisabledStyles><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:SLTOCShowPageNumber/><sf:keepWithNext/><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="14.17323" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="14.17323" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:tocstyle></sf:tocStyle><sf:dropCap/><sf:firstTopicNumber/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-1"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:sectionstyle sfa:ID="SFWPSectionStyle-1" sf:name="Normal" sf:ident="section-style-default"><sf:property-map><sf:sectionLayoutStyle><sf:null/></sf:sectionLayoutStyle><sf:inheritPreviousHF><sf:number sfa:number="1" sfa:type="c"/></sf:inheritPreviousHF><sf:sectionPageNumberStart><sf:number sfa:number="1" sfa:type="i"/></sf:sectionPageNumberStart><sf:pageMasterFirstPageDifferent><sf:number sfa:number="0" sfa:type="c"/></sf:pageMasterFirstPageDifferent><sf:firstPageMaster><sf:pagemaster sfa:ID="SFWPPageMaster-0" sl:header="SFWPDefaultFirstHeaderIdentifier" sl:footer="SFWPDefaultFirstFooterIdentifier"/></sf:firstPageMaster><sf:evenPageMaster><sf:pagemaster sfa:ID="SFWPPageMaster-1" sl:header="SFWPDefaultEvenHeaderIdentifier" sl:footer="SFWPDefaultEvenFooterIdentifier"/></sf:evenPageMaster><sf:startKind><sf:number sfa:number="0" sfa:type="i"/></sf:startKind><sf:pageMasterLeftRightPagesDifferent><sf:number sfa:number="0" sfa:type="c"/></sf:pageMasterLeftRightPagesDifferent><sf:sectionPageNumberKind><sf:number sfa:number="0" sfa:type="i"/></sf:sectionPageNumberKind><sf:oddPageMaster><sf:pagemaster sfa:ID="SFWPPageMaster-2" sl:header="SFWPDefaultOddHeaderIdentifier" sl:footer="SFWPDefaultOddFooterIdentifier"/></sf:oddPageMaster></sf:property-map></sf:sectionstyle><sf:tocstyle sfa:ID="SLTOCParagraphStyle-2" sfa:sfclass="paragraphstyle" sf:name="TOC" sf:ident="toc-paragraph-style-default"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:SLTOCPageNumberStyle><sf:null/></sf:SLTOCPageNumberStyle><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:null/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:SLTOCEntryStyle><sf:null/></sf:SLTOCEntryStyle><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs><sf:tabs sfa:ID="SFWPTabs-2"><sf:tabstop sf:pos="481.61416625976562" sf:align="right"/></sf:tabs></sf:tabs><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:SLTOCEnabledStyles><sf:null/></sf:SLTOCEnabledStyles><sf:SLTOCDisabledStyles><sf:null/></sf:SLTOCDisabledStyles><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:SLTOCShowPageNumber/><sf:keepWithNext/><sf:spaceBefore/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:tocstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-3" sf:name="Free Form" sf:ident="paragraph-style-default"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:null/></sf:listStyle><sf:outlineLevel/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:dropCap/><sf:firstTopicNumber/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC/><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:decimalTab/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-1" sf:name="graphic-textbox-style-default" sf:ident="graphic-textbox-style-default"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:reflection><sf:null/></sf:reflection><sf:externalTextWrap><sf:external-text-wrap sfa:ID="SFWPExternalTextWrap-1" sf:wrap-style="tight" sf:floating-wrap-enabled="true" sf:direction="both" sf:attachment-wrap-type="aligned" sf:floating-wrap-type="directional" sf:margin="12" sf:alpha-threshold="0.5"/></sf:externalTextWrap><sf:stroke><sf:stroke sfa:ID="SFRStroke-1" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-1" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:null/></sf:fill><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:liststyle-ref sfa:IDREF="SFWPListStyle-0"/><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-1"/><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-1"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-4" sf:name="Title" sf:ident="paragraph-style-38"><sf:property-map><sf:fontSize><sf:number sfa:number="28" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-0"/></sf:listStyle><sf:outlineLevel/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-2"/></sf:tocStyle><sf:dropCap/><sf:firstTopicNumber/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-1"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="24" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-5" sf:ident="kSFTErrorWarningParagraphStyleID" sf:parent-ident="paragraph-style-default"><sf:property-map><sf:fontColor/><sf:alignment/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-1" sf:ident="kSFTErrorWarningListStyleID" sf:parent-ident="list-style-default"><sf:property-map/></sf:liststyle></sf:listStyle><sf:keepLinesTogether><sf:number sfa:number="1" sfa:type="c"/></sf:keepLinesTogether><sf:fontName><sf:string sfa:string="LucidaGrande"/></sf:fontName><sf:fontSize><sf:number sfa:number="11" sfa:type="f"/></sf:fontSize></sf:property-map></sf:paragraphstyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-1"/><sf:sectionstyle sfa:ID="SFWPSectionStyle-2" sf:name="Normal 4" sf:ident="section-style-8"><sf:property-map><sf:sectionLayoutStyle><sf:null/></sf:sectionLayoutStyle><sf:inheritPreviousHF><sf:number sfa:number="1" sfa:type="c"/></sf:inheritPreviousHF><sf:sectionPageNumberStart><sf:number sfa:number="1" sfa:type="i"/></sf:sectionPageNumberStart><sf:pageMasterFirstPageDifferent><sf:number sfa:number="0" sfa:type="c"/></sf:pageMasterFirstPageDifferent><sf:firstPageMaster><sf:pagemaster sfa:ID="SFWPPageMaster-3" sl:header="" sl:footer=""/></sf:firstPageMaster><sf:evenPageMaster><sf:pagemaster sfa:ID="SFWPPageMaster-4" sl:header="" sl:footer=""/></sf:evenPageMaster><sf:startKind><sf:number sfa:number="0" sfa:type="i"/></sf:startKind><sf:pageMasterLeftRightPagesDifferent><sf:number sfa:number="0" sfa:type="c"/></sf:pageMasterLeftRightPagesDifferent><sf:sectionPageNumberKind><sf:number sfa:number="0" sfa:type="i"/></sf:sectionPageNumberKind><sf:oddPageMaster><sf:pagemaster sfa:ID="SFWPPageMaster-5" sl:header="" sl:footer=""/></sf:oddPageMaster></sf:property-map></sf:sectionstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-2" sf:name="graphic-shape-style-default" sf:ident="graphic-shape-style-default"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:reflection><sf:null/></sf:reflection><sf:externalTextWrap><sf:external-text-wrap sfa:ID="SFWPExternalTextWrap-2" sf:wrap-style="tight" sf:floating-wrap-enabled="true" sf:direction="both" sf:attachment-wrap-type="aligned" sf:floating-wrap-type="directional" sf:margin="12" sf:alpha-threshold="0.5"/></sf:externalTextWrap><sf:stroke><sf:stroke sfa:ID="SFRStroke-2" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-2" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.41568627953529358" sfa:g="0.66274511814117432" sfa:b="0.39215686917304993" sfa:a="1"/></sf:fill><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:layoutstyle sfa:ID="SFWPLayoutStyle-0" sf:name="Normal" sf:ident="layout-style-default"><sf:property-map><sf:verticalAlignment/><sf:layoutParagraphStyle><sf:null/></sf:layoutParagraphStyle><sf:columns/><sf:padding/><sf:layoutMargins/><sf:followingLayoutStyle><sf:null/></sf:followingLayoutStyle><sf:layoutContinuous/></sf:property-map></sf:layoutstyle><sf:layoutstyle sfa:ID="SFWPLayoutStyle-1" sf:ident="kSFTErrorWarningLayoutStyleID" sf:parent-ident="layout-style-default"><sf:property-map><sf:verticalAlignment><sf:null/></sf:verticalAlignment><sf:padding/><sf:layoutParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-5"/></sf:layoutParagraphStyle></sf:property-map></sf:layoutstyle><sf:layoutstyle sfa:ID="SFWPLayoutStyle-2" sf:ident="graphic-shape-layout-style-default"><sf:property-map><sf:verticalAlignment/><sf:layoutParagraphStyle><sf:null/></sf:layoutParagraphStyle><sf:columns/><sf:padding><sf:padding sfa:ID="SFWPPadding-0" sf:top="4" sf:left="4" sf:bottom="4" sf:right="4"/></sf:padding><sf:layoutMargins/><sf:followingLayoutStyle><sf:null/></sf:followingLayoutStyle><sf:layoutContinuous/></sf:property-map></sf:layoutstyle><sf:layoutstyle sfa:ID="SFWPLayoutStyle-3" sf:ident="graphic-textbox-layout-style-default"><sf:property-map><sf:verticalAlignment/><sf:layoutParagraphStyle><sf:null/></sf:layoutParagraphStyle><sf:columns/><sf:padding><sf:padding sfa:ID="SFWPPadding-1" sf:top="4" sf:left="4" sf:bottom="4" sf:right="4"/></sf:padding><sf:layoutMargins/><sf:followingLayoutStyle><sf:null/></sf:followingLayoutStyle><sf:layoutContinuous/></sf:property-map></sf:layoutstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-3" sf:name="graphic-image-style-default" sf:ident="graphic-image-style-default"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:reflection><sf:null/></sf:reflection><sf:externalTextWrap><sf:external-text-wrap sfa:ID="SFWPExternalTextWrap-3" sf:wrap-style="tight" sf:floating-wrap-enabled="true" sf:direction="both" sf:attachment-wrap-type="aligned" sf:floating-wrap-type="directional" sf:margin="12" sf:alpha-threshold="0.5"/></sf:externalTextWrap><sf:stroke><sf:stroke sfa:ID="SFRStroke-3" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-3" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:null/></sf:fill><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:characterstyle sfa:ID="SFWPCharacterStyle-0" sf:name="None" sf:ident="character-style-null"><sf:property-map/></sf:characterstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-4" sf:ident="kSFTErrorWarningBubbleStyleID"><sf:property-map><sf:stroke><sf:stroke sfa:ID="SFRStroke-4" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75290000438690186" sfa:g="0.75290000438690186" sfa:b="0.75290000438690186" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-4" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:layoutStyle><sf:layoutstyle-ref sfa:IDREF="SFWPLayoutStyle-1"/></sf:layoutStyle><sf:fill><sf:angle-gradient sfa:ID="SFRAngleGradient-0" sf:opacity="1" sf:type="linear" sf:angle="-1.5707963705062866"><sf:stops sfa:ID="NSMutableArray-0"><sf:gradient-stop sfa:ID="SFRGradientStop-0" sf:fraction="0"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.96859997510910034" sfa:g="0.96859997510910034" sfa:b="0.96859997510910034" sfa:a="0.95999997854232788"/></sf:gradient-stop><sf:gradient-stop sfa:ID="SFRGradientStop-1" sf:fraction="1"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.81959998607635498" sfa:g="0.81959998607635498" sfa:b="0.81959998607635498" sfa:a="0.95999997854232788"/></sf:gradient-stop></sf:stops></sf:angle-gradient></sf:fill><sf:reflection><sf:null/></sf:reflection><sf:shadow><sf:shadow sfa:ID="SFRShadow-1" sf:angle="90" sf:offset="2" sf:radius="2" sf:opacity="0.30000001192092896"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/></sf:shadow></sf:shadow></sf:property-map></sf:graphic-style><sf:layoutstyle sfa:ID="SFWPLayoutStyle-4" sf:name="Normal 22" sf:ident="layout-style-20"><sf:property-map><sf:verticalAlignment/><sf:layoutParagraphStyle><sf:null/></sf:layoutParagraphStyle><sf:columns/><sf:padding/><sf:layoutMargins/><sf:followingLayoutStyle><sf:null/></sf:followingLayoutStyle><sf:layoutContinuous/></sf:property-map></sf:layoutstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-5" sf:name="graphic-movie-style-default" sf:ident="graphic-movie-style-default"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:reflection><sf:null/></sf:reflection><sf:externalTextWrap><sf:external-text-wrap sfa:ID="SFWPExternalTextWrap-4" sf:wrap-style="tight" sf:floating-wrap-enabled="true" sf:direction="both" sf:attachment-wrap-type="aligned" sf:floating-wrap-type="directional" sf:margin="12" sf:alpha-threshold="0.5"/></sf:externalTextWrap><sf:stroke><sf:stroke sfa:ID="SFRStroke-5" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-5" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:null/></sf:fill><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-0"/></sf:styles><sf:anon-styles/></sf:stylesheet><sf:headers/><sf:footers/><sf:text-storage sf:kind="body" sfa:ID="SFWPStorage-0"><sf:stylesheet-ref sfa:IDREF="SFSStylesheet-0"/><sf:text-body><sf:section sf:name="Chapter 3" sf:style="section-style-8"><sf:layout sf:style="layout-style-20"><sf:p sf:style="paragraph-style-38"><sf:ghost-text>Lorem ipsum dolor sit amet</sf:ghost-text><sf:br/></sf:p><sf:p sf:style="paragraph-style-35"><sf:ghost-text>Consectetur adipiscing elit</sf:ghost-text><sf:br/></sf:p><sf:p sf:style="paragraph-style-32"><sf:ghost-text>Eset eiusmod tempor incidunt et labore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in reprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse molestaie cillum. Tia non ob ea soluad incommod quae egen ium improb fugiend. Officia deserunt mollit anim id est laborum Et harumd dereud facilis est er expedit distinct. Nam liber te conscient to factor tum poen legum odioque civiuda et tam. Neque pecun modut est neque nonor et imper ned libidig met, consectetur adipiscing elit, sed ut labore et dolore magna aliquam is nostrud exercitation ullam mmodo consequet.</sf:ghost-text><sf:br/></sf:p><sf:p sf:style="paragraph-style-33"><sf:ghost-text>Duis aute in voluptate velit esse</sf:ghost-text><sf:br/></sf:p><sf:p sf:style="paragraph-style-32"><sf:ghost-text>Cillum dolore eu fugiat nulla pariatur. At vver eos et accusam dignissum qui blandit est praesent. Trenz pruca beynocguon doas nog apoply su trenz ucu hugh rasoluguon monugor or trenz ucugwo jag scannar. Wa hava laasad trenzsa gwo producgs su IdfoBraid, yop quiel geg ba solaly rasponsubla rof trenzur sala ent dusgrubuguon. Offoctivo immoriatoly, hawrgasi pwicos asi sirucor. Thas sirutciun applios tyu thuso itoms ghuso pwicos gosi sirucor in mixent gosi sirucor ic mixent ples cak ontisi sowios uf Zerm hawr rwivos. Unte af phen neige pheings atoot Prexs eis phat eit sakem eit vory gast te Plok peish ba useing phen roxas. Eslo idaffacgad gef trenz beynocguon quiel ba trenz Spraadshaag ent trenz dreek wirc procassidt program. Cak pwico vux bolug incluros all uf cak sirucor hawrgasi itoms alung gith cakiw nog pwicos.</sf:ghost-text><sf:br/></sf:p><sf:p sf:style="paragraph-style-33"><sf:ghost-text>Plloaso mako nuto uf cakso dodtos</sf:ghost-text><sf:br/></sf:p><sf:p sf:style="paragraph-style-32"><sf:ghost-text>Koop a cupy uf cak vux noaw yerw phuno. Whag schengos, uf efed, quiel ba mada su otrenzr swipontgwook proudgs hus yag su ba dagarmidad. Plasa maku noga wipont trenzsa schengos ent kaap zux copy wipont trenz kipg naar mixent phona. Cak pwico siructiun ruos nust apoply tyu cak UCU sisulutiun munityuw uw cak UCU-TGU jot scannow. Trens roxas eis ti Plokeing quert loppe eis yop prexs. Piy opher hawers, eit yaggles orn ti sumbloat alohe plok. Su havo loasor cakso tgu pwuructs tyu InfuBwain, ghu gill nug bo suloly sispunsiblo fuw cakiw salo anr ristwibutiun. Hei muk neme eis loppe. Treas em wankeing ont sime ploked peish rof phen sumbloat syug si phat phey gavet peish ta paat ein pheeir sumbloats. Aslu unaffoctor gef cak siructiun gill bo cak spiarshoot anet cak GurGanglo gur pwucossing pwutwam. Ghat dodtos, ig pany, gill bo maro tyu ucakw suftgasi pwuructs hod yot tyubo rotowminor. Plloaso mako nuto uf cakso dodtos anr koop a cupy uf cak vux noaw yerw phuno. Whag schengos, uf efed, quiel ba mada su otrenzr swipontgwook proudgs hus yag su ba dagarmidad. Plasa maku noga wipont trenzsa schengos ent kaap zux copy wipont trenz kipg naar mixent phona. Cak pwico siructiun ruos nust apoply tyu cak UCU sisulutiun munityuw uw cak UCU-TGU jot scannow. Trens roxas eis ti Plokeing quert loppe eis yop prexs. Piy opher hawers, eit yaggles orn ti sumbloat alohe plok. Su havo loasor cakso tgu pwuructs tyu.</sf:ghost-text></sf:p></sf:layout></sf:section></sf:text-body></sf:text-storage><sl:thumbnails sfa:ID="SFRImageBinary-0"><sf:size sfa:w="45" sfa:h="56"/><sf:data sfa:ID="SFEData-0" sf:path="Templates/Blank/Blank.template/thumbs/PageCapThumbV2-1.tiff" sf:displayname="thumbs/PageCapThumbV2-1.tiff" sf:size="10222" sf:sharable="false" sf:resource-type="1" sf:hfs-type="1414088262" sf:checksum="11d714c8" sfa:version="1"/></sl:thumbnails></sl:prototype></sl:section-prototypes><sl:stylesheet sfa:ID="SFSStylesheet-1"><sf:styles><sf:vector-style sfa:ID="SFTVectorStyle-0" sf:ident="tabular-default-header-separator-vector-style-id"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFTStrokeProperty><sf:stroke sfa:ID="SFRStroke-6" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-6" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFTStrokeProperty><sf:SFTBackgroundProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFTBackgroundProperty></sf:property-map></sf:vector-style><sf:vector-style sfa:ID="SFTVectorStyle-1" sf:ident="tabular-default-footer-body-vector-style-id"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFTStrokeProperty><sf:stroke sfa:ID="SFRStroke-7" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-7" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFTStrokeProperty><sf:SFTBackgroundProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFTBackgroundProperty></sf:property-map></sf:vector-style><sf:vector-style sfa:ID="SFTVectorStyle-2" sf:ident="tabular-default-body-vector-style-id"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFTStrokeProperty><sf:stroke sfa:ID="SFRStroke-8" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-8" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFTStrokeProperty><sf:SFTBackgroundProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFTBackgroundProperty></sf:property-map></sf:vector-style><sf:vector-style sfa:ID="SFTVectorStyle-3" sf:ident="tabular-default-header-border-vector-style-id"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFTStrokeProperty><sf:stroke sfa:ID="SFRStroke-9" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-9" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFTStrokeProperty><sf:SFTBackgroundProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFTBackgroundProperty></sf:property-map></sf:vector-style><sf:vector-style sfa:ID="SFTVectorStyle-4" sf:ident="tabular-default-footer-border-vector-style-id"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFTStrokeProperty><sf:stroke-ref sfa:IDREF="SFRStroke-9"/></sf:SFTStrokeProperty><sf:SFTBackgroundProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFTBackgroundProperty></sf:property-map></sf:vector-style><sf:vector-style sfa:ID="SFTVectorStyle-5" sf:ident="tabular-default-header-body-vector-style-id"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFTStrokeProperty><sf:stroke-ref sfa:IDREF="SFRStroke-7"/></sf:SFTStrokeProperty><sf:SFTBackgroundProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFTBackgroundProperty></sf:property-map></sf:vector-style><sf:vector-style sfa:ID="SFTVectorStyle-6" sf:ident="tabular-default-footer-separator-vector-style-id"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFTStrokeProperty><sf:stroke-ref sfa:IDREF="SFRStroke-6"/></sf:SFTStrokeProperty><sf:SFTBackgroundProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFTBackgroundProperty></sf:property-map></sf:vector-style><sf:vector-style sfa:ID="SFTVectorStyle-7" sf:ident="tabular-default-border-vector-style-id"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFTStrokeProperty><sf:stroke-ref sfa:IDREF="SFRStroke-8"/></sf:SFTStrokeProperty><sf:SFTBackgroundProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFTBackgroundProperty></sf:property-map></sf:vector-style><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-6" sf:name="sect2-subtitle" sf:ident="paragraph-style-45"><sf:property-map><sf:fontSize><sf:number sfa:number="15" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-2" sf:name="None" sf:ident="list-style-default"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-7"><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/><sf:number sfa:number="180" sfa:type="f"/><sf:number sfa:number="216" sfa:type="f"/><sf:number sfa:number="252" sfa:type="f"/><sf:number sfa:number="288" sfa:type="f"/></sf:array></sf:listTextIndents><sf:listLabelGeometries><sf:array sfa:ID="NSArray-8"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-9" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-10" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-11" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-12" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-13" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-14" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-15" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-16" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-17" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-9"><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-10"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-9" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-10" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-11" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-12" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-13" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-14" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-15" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-16" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-17" sf:type="none"/></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle sfa:ID="SLTOCParagraphStyle-3" sfa:sfclass="paragraphstyle" sf:name="TOC Heading 2" sf:ident="toc-paragraph-style-2"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="3" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:SLTOCPageNumberStyle><sf:null/></sf:SLTOCPageNumberStyle><sf:keepLinesTogether/><sf:listStyle><sf:null/></sf:listStyle><sf:outlineLevel/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:dropCap/><sf:firstTopicNumber/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:SLTOCEntryStyle><sf:null/></sf:SLTOCEntryStyle><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs><sf:tabs sfa:ID="SFWPTabs-3"><sf:tabstop sf:pos="481.61416625976562" sf:align="right"/></sf:tabs></sf:tabs><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:SLTOCEnabledStyles><sf:null/></sf:SLTOCEnabledStyles><sf:SLTOCDisabledStyles><sf:null/></sf:SLTOCDisabledStyles><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:SLTOCShowPageNumber/><sf:keepWithNext/><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="14.17323" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="14.17323" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:tocstyle></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-7" sf:name="para" sf:ident="paragraph-style-32"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-8" sf:name="formalpara-title" sf:ident="paragraph-style-23"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="28.36418" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:paragraphstyle><sf:tocstyle sfa:ID="SLTOCParagraphStyle-4" sfa:sfclass="paragraphstyle" sf:name="TOC" sf:ident="toc-paragraph-style-default"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:SLTOCPageNumberStyle><sf:null/></sf:SLTOCPageNumberStyle><sf:keepLinesTogether/><sf:listStyle><sf:null/></sf:listStyle><sf:outlineLevel/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:dropCap/><sf:firstTopicNumber/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:SLTOCEntryStyle><sf:null/></sf:SLTOCEntryStyle><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs><sf:tabs sfa:ID="SFWPTabs-4"><sf:tabstop sf:pos="481.61416625976562" sf:align="right"/></sf:tabs></sf:tabs><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:SLTOCEnabledStyles><sf:null/></sf:SLTOCEnabledStyles><sf:SLTOCDisabledStyles><sf:null/></sf:SLTOCDisabledStyles><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:SLTOCShowPageNumber/><sf:keepWithNext/><sf:spaceBefore/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:tocstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-9" sf:name="sect3-subtitle" sf:ident="paragraph-style-47"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-1" sf:name="orgdiv" sf:ident="character-style-19"><sf:property-map><sf:underlineColor><sf:null/></sf:underlineColor><sf:fontColor/><sf:fontSize/><sf:textBackground><sf:null/></sf:textBackground><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold/><sf:fontName/><sf:ligatures/><sf:strikethru/><sf:baselineShift/><sf:tracking/><sf:capitalization/><sf:textShadow/><sf:language><sf:string sfa:string="en"/></sf:language><sf:italic><sf:number sfa:number="1" sfa:type="i"/></sf:italic><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-10" sf:name="itemizedlist2" sf:ident="paragraph-style-95"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-3" sf:parent-ident="list-style-2"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-11"><sf:number sfa:number="9.000001" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/></sf:array></sf:listTextIndents><sf:listLabelGeometries><sf:array sfa:ID="NSArray-12"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-18" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-19" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-20" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-21" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-22" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-23" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-24" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-25" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-26" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-13"><sf:number sfa:number="14.17323" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="54" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="90" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="126" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-14"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-18" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-0" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-19" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-1" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-20" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-2" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-21" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-3" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-22" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-4" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-23" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-5" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-24" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-6" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-25" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-7" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-26" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-8" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-11" sf:name="publisher" sf:ident="paragraph-style-106"><sf:property-map><sf:fontSize><sf:number sfa:number="10" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName><sf:string sfa:string="TimesNewRomanPSMT"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-12" sf:name="blockerror" sf:ident="paragraph-style-10"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="1" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="1" sfa:g="0.40000000596046448" sfa:b="0.40000000596046448" sfa:a="0.20000000298023224"/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="14.18209" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="14.18209" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:paragraphstyle><sf:cell-style sfa:ID="SFTCellStyle-0" sf:ident="tabular-default-footer-row-cell-style-id"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFTCellStylePropertyDateTimeFormat><sf:string sfa:string="d/MM/yy h:mm a"/></sf:SFTCellStylePropertyDateTimeFormat><sf:SFTCellStylePropertyParagraphStyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-13" sf:parent-ident="paragraph-style-32"><sf:property-map><sf:alignment><sf:number sfa:number="2" sfa:type="i"/></sf:alignment><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle></sf:property-map></sf:paragraphstyle></sf:SFTCellStylePropertyParagraphStyle><sf:SFTCellStylePropertyFormatType><sf:number sfa:number="255" sfa:type="i"/></sf:SFTCellStylePropertyFormatType><sf:SFTCellTextWrapProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFTCellTextWrapProperty><sf:SFTCellStylePropertyImplicitFormatType><sf:number sfa:number="255" sfa:type="i"/></sf:SFTCellStylePropertyImplicitFormatType><sf:SFTCellStylePropertyLayoutStyle><sf:layoutstyle sfa:ID="SFWPLayoutStyle-5" sf:parent-ident="layout-style-default"><sf:property-map><sf:followingLayoutStyle><sf:null/></sf:followingLayoutStyle><sf:padding><sf:padding sfa:ID="SFWPPadding-2" sf:top="5" sf:left="5" sf:bottom="5" sf:right="5"/></sf:padding><sf:layoutParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-13"/></sf:layoutParagraphStyle></sf:property-map></sf:layoutstyle></sf:SFTCellStylePropertyLayoutStyle><sf:SFTCellStylePropertyNumberFormat><sf:number-format sfa:ID="SFTNumberFormat-0" sf:format-type="0" sf:format-string="#,##0.###;-#,##0.###" sf:format-decimal-places="2" sf:format-currency-code="AUD" sf:format-negative-style="0" sf:format-show-thousands-separator="true" sf:format-fraction-accuracy="-1" sf:format-use-accounting-style="false"/></sf:SFTCellStylePropertyNumberFormat><sf:fill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.69019609689712524" sfa:g="0.70196080207824707" sfa:b="0.69803923368453979" sfa:a="1"/></sf:fill></sf:property-map></sf:cell-style><sf:characterstyle sfa:ID="SFWPCharacterStyle-2" sf:name="emphasis" sf:ident="character-style-0"><sf:property-map><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:italic><sf:number sfa:number="1" sfa:type="i"/></sf:italic></sf:property-map></sf:characterstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-3" sf:name="emphasis-underline" sf:ident="character-style-16"><sf:property-map><sf:italic/><sf:fontColor/><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline><sf:number sfa:number="1" sfa:type="i"/></sf:underline><sf:bold/><sf:tracking/><sf:ligatures/><sf:fontName/><sf:baselineShift/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-14" sf:name="sect5-title" sf:ident="paragraph-style-50"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-15" sf:name="address" sf:ident="paragraph-style-108"><sf:property-map><sf:fontSize><sf:number sfa:number="11" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName><sf:string sfa:string="CourierNewPSMT"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-16" sf:name="caption" sf:ident="paragraph-style-36"><sf:property-map><sf:fontSize><sf:number sfa:number="11" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName><sf:string sfa:string="Helvetica-Oblique"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic><sf:number sfa:number="1" sfa:type="c"/></sf:italic><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-17" sf:name="itemizedlist1" sf:ident="paragraph-style-29"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-4" sf:name="Bullet" sf:ident="list-style-2"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-15"><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/></sf:array></sf:listTextIndents><sf:listLabelGeometries><sf:array sfa:ID="NSArray-16"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-27" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-28" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-29" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-30" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-31" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-32" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-33" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-34" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-35" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-17"><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="54" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="90" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="126" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-18"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-27" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-9" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-28" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-10" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-29" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-11" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-30" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-12" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-31" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-13" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-32" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-14" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-33" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-15" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-34" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-16" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-35" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-17" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-18" sf:name="important" sf:ident="paragraph-style-25"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-5" sf:parent-ident="list-style-default"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-19"><sf:number sfa:number="28.34646" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/><sf:number sfa:number="180" sfa:type="f"/><sf:number sfa:number="216" sfa:type="f"/><sf:number sfa:number="252" sfa:type="f"/><sf:number sfa:number="288" sfa:type="f"/></sf:array></sf:listTextIndents><sf:labelCharacterStyle1><sf:characterstyle sfa:ID="SFWPCharacterStyle-4" sf:parent-ident="character-style-null"><sf:property-map><sf:fontName/></sf:property-map></sf:characterstyle></sf:labelCharacterStyle1><sf:listLabelGeometries><sf:array sfa:ID="NSArray-20"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-36" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-37" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-38" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-39" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-40" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-41" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-42" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-43" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-44" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-21"><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-22"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-36" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-18" sf:type="bullet" sf:format="!" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-37" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-38" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-39" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-40" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-41" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-42" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-43" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-44" sf:type="none"/></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="1" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-5" sf:name="attributes" sf:ident="character-style-3"><sf:property-map><sf:italic/><sf:fontColor/><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold/><sf:tracking/><sf:ligatures/><sf:fontName><sf:string sfa:string="Courier"/></sf:fontName><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:baselineShift/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-6" sf:name="contrib" sf:ident="character-style-6"><sf:property-map><sf:italic><sf:number sfa:number="1" sfa:type="i"/></sf:italic><sf:fontColor/><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold/><sf:tracking/><sf:ligatures/><sf:fontName/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:baselineShift/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-19" sf:name="formalpara" sf:ident="paragraph-style-22"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-6" sf:ident="kSFTErrorWarningBubbleStyleID"><sf:property-map><sf:stroke><sf:stroke sfa:ID="SFRStroke-10" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75290000438690186" sfa:g="0.75290000438690186" sfa:b="0.75290000438690186" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-10" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:layoutStyle><sf:layoutstyle sfa:ID="SFWPLayoutStyle-6" sf:ident="kSFTErrorWarningLayoutStyleID" sf:parent-ident="layout-style-default"><sf:property-map><sf:verticalAlignment><sf:null/></sf:verticalAlignment><sf:padding/><sf:layoutParagraphStyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-20" sf:ident="kSFTErrorWarningParagraphStyleID" sf:parent-ident="paragraph-style-default"><sf:property-map><sf:fontColor/><sf:alignment/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-6" sf:ident="kSFTErrorWarningListStyleID" sf:parent-ident="list-style-default"><sf:property-map/></sf:liststyle></sf:listStyle><sf:keepLinesTogether><sf:number sfa:number="1" sfa:type="c"/></sf:keepLinesTogether><sf:fontName><sf:string sfa:string="LucidaGrande"/></sf:fontName><sf:fontSize><sf:number sfa:number="11" sfa:type="f"/></sf:fontSize></sf:property-map></sf:paragraphstyle></sf:layoutParagraphStyle></sf:property-map></sf:layoutstyle></sf:layoutStyle><sf:fill><sf:angle-gradient sfa:ID="SFRAngleGradient-1" sf:opacity="1" sf:type="linear" sf:angle="-1.5707963705062866"><sf:stops sfa:ID="NSMutableArray-1"><sf:gradient-stop sfa:ID="SFRGradientStop-2" sf:fraction="0"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.96859997510910034" sfa:g="0.96859997510910034" sfa:b="0.96859997510910034" sfa:a="0.95999997854232788"/></sf:gradient-stop><sf:gradient-stop sfa:ID="SFRGradientStop-3" sf:fraction="1"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.81959998607635498" sfa:g="0.81959998607635498" sfa:b="0.81959998607635498" sfa:a="0.95999997854232788"/></sf:gradient-stop></sf:stops></sf:angle-gradient></sf:fill><sf:reflection><sf:null/></sf:reflection><sf:shadow><sf:shadow sfa:ID="SFRShadow-2" sf:angle="90" sf:offset="2" sf:radius="2" sf:opacity="0.30000001192092896"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/></sf:shadow></sf:shadow></sf:property-map></sf:graphic-style><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-21" sf:name="blockquote-title" sf:ident="paragraph-style-13"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:chart-series-style sfa:ID="SFCSeriesStyle-0" sf:name="Series_0" sf:ident="Series_0" sf:seriesIndex="0"><sf:property-map><sf:SFC2DPieFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.17647059261798859" sfa:g="0" sfa:b="0.22352941334247589" sfa:a="1"/></sf:SFC2DPieFillProperty><sf:SFCBarValueLabelPositionProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCBarValueLabelPositionProperty><sf:SFC3DColumnFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.17647059261798859" sfa:g="0" sfa:b="0.22352941334247589" sfa:a="1"/></sf:SFC3DColumnFillProperty><sf:SFC2DAreaUseSeriesFillForDataPointFillProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFC2DAreaUseSeriesFillForDataPointFillProperty><sf:SFC2DLineUseSeriesFillForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DLineUseSeriesFillForDataPointFillProperty><sf:SFC3DAreaFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.17647059261798859" sfa:g="0" sfa:b="0.22352941334247589" sfa:a="1"/></sf:SFC3DAreaFillProperty><sf:SFCAreaShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCAreaShowValueLabelProperty><sf:SFCLabelShadowProperty><sf:shadow sfa:ID="SFRShadow-3" sf:angle="45" sf:offset="2" sf:radius="2" sf:opacity="0.75"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/></sf:shadow></sf:SFCLabelShadowProperty><sf:SFC2DLineDataPointSymbolProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC2DLineDataPointSymbolProperty><sf:SFC2DPieStrokeProperty><sf:stroke sfa:ID="SFRStroke-11" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-11" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DPieStrokeProperty><sf:SFC2DScatterShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DScatterShadowProperty><sf:SFC2DAreaFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.17647059261798859" sfa:g="0" sfa:b="0.22352941334247589" sfa:a="1"/></sf:SFC2DAreaFillProperty><sf:SFC2DLineDataPointFillProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:SFC2DLineDataPointFillProperty><sf:SFC3DPieFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.17647059261798859" sfa:g="0" sfa:b="0.22352941334247589" sfa:a="1"/></sf:SFC3DPieFillProperty><sf:SFC2DLineStrokeProperty><sf:stroke sfa:ID="SFRStroke-12" sf:miter-limit="4" sf:width="4" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.17647059261798859" sfa:g="0" sfa:b="0.22352941334247589" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-12" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DLineStrokeProperty><sf:SFC2DScatterStrokeProperty><sf:stroke sfa:ID="SFRStroke-13" sf:miter-limit="4" sf:width="4" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.17647059261798859" sfa:g="0" sfa:b="0.22352941334247589" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-13" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DScatterStrokeProperty><sf:SFC3DSeriesShininessProperty><sf:number sfa:number="0.5" sfa:type="f"/></sf:SFC3DSeriesShininessProperty><sf:SFC2DAreaDataPointSymbolProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFC2DAreaDataPointSymbolProperty><sf:SFC2DAreaUseStrokeColorForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DAreaUseStrokeColorForDataPointFillProperty><sf:SFC3DSeriesEmissiveColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:SFC3DSeriesEmissiveColorProperty><sf:SFC3DTextureTilingProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC3DTextureTilingProperty><sf:SFC2DLineShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DLineShadowProperty><sf:SFCPieSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-22" sf:ident="Series_0_SFCPieSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment><sf:number sfa:number="2" sfa:type="i"/></sf:alignment><sf:fontSize><sf:number sfa:number="16" sfa:type="f"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCPieSeriesValueParagraphStyleProperty><sf:SFCStackedBarValueLabelPositionProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCStackedBarValueLabelPositionProperty><sf:SFC2DColumnFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.17647059261798859" sfa:g="0" sfa:b="0.22352941334247589" sfa:a="1"/></sf:SFC2DColumnFillProperty><sf:SFC3DBarFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.17647059261798859" sfa:g="0" sfa:b="0.22352941334247589" sfa:a="1"/></sf:SFC3DBarFillProperty><sf:SFC2DBarStrokeProperty><sf:stroke sfa:ID="SFRStroke-14" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-14" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DBarStrokeProperty><sf:SFCLabelOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFCLabelOpacityProperty><sf:SFC2DPieShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DPieShadowProperty><sf:SFCPieShowValueLabelProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFCPieShowValueLabelProperty><sf:SFCPieShowSeriesNameLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCPieShowSeriesNameLabelProperty><sf:SFCLineSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-23" sf:ident="Series_0_SFCLineSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCLineSeriesValueParagraphStyleProperty><sf:SFC2DOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC2DOpacityProperty><sf:SFCLineValueLabelPositionProperty><sf:number sfa:number="4" sfa:type="i"/></sf:SFCLineValueLabelPositionProperty><sf:SFCPieValueLabelPositionProperty><sf:number sfa:number="13" sfa:type="i"/></sf:SFCPieValueLabelPositionProperty><sf:SFCLineShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCLineShowValueLabelProperty><sf:SFC2DAreaDataPointFillProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:SFC2DAreaDataPointFillProperty><sf:SFCStackedAreaValueLabelPositionProperty><sf:number sfa:number="10" sfa:type="i"/></sf:SFCStackedAreaValueLabelPositionProperty><sf:SFC2DAreaShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DAreaShadowProperty><sf:SFC3DSeriesSpecularColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.89999997615814209" sfa:g="0.89999997615814209" sfa:b="0.89999997615814209" sfa:a="1"/></sf:SFC3DSeriesSpecularColorProperty><sf:SFC2DScatterDataPointSymbolProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC2DScatterDataPointSymbolProperty><sf:SFC2DBarShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DBarShadowProperty><sf:SFCBarSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-24" sf:ident="Series_0_SFCBarSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="i"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCBarSeriesValueParagraphStyleProperty><sf:SFC2DScatterDataPointFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.17647059261798859" sfa:g="0" sfa:b="0.22352941334247589" sfa:a="1"/></sf:SFC2DScatterDataPointFillProperty><sf:SFC2DBarFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.17647059261798859" sfa:g="0" sfa:b="0.22352941334247589" sfa:a="1"/></sf:SFC2DBarFillProperty><sf:SFCBarShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCBarShowValueLabelProperty><sf:SFC2DAreaStrokeProperty><sf:stroke sfa:ID="SFRStroke-15" sf:miter-limit="4" sf:width="2" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-15" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DAreaStrokeProperty><sf:SFCAreaValueLabelPositionProperty><sf:number sfa:number="10" sfa:type="i"/></sf:SFCAreaValueLabelPositionProperty><sf:SFC3DPieShadowProperty><sf:shadow sfa:ID="SFRShadow-4" sf:angle="45" sf:offset="1" sf:radius="6" sf:opacity="0.80000001192092896"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/></sf:shadow></sf:SFC3DPieShadowProperty><sf:SFC3DTextureProperty><sf:string sfa:string=""/></sf:SFC3DTextureProperty><sf:SFCAreaSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-25" sf:ident="Series_0_SFCAreaSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="i"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCAreaSeriesValueParagraphStyleProperty><sf:SFC2DLineUseStrokeColorForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DLineUseStrokeColorForDataPointFillProperty><sf:SFC3DLineFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.17647059261798859" sfa:g="0" sfa:b="0.22352941334247589" sfa:a="1"/></sf:SFC3DLineFillProperty><sf:SFCPieWedgeExplosionProperty><sf:number sfa:number="0" sfa:type="f"/></sf:SFCPieWedgeExplosionProperty></sf:property-map></sf:chart-series-style><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-26" sf:name="biblioentry-title" sf:ident="paragraph-style-104"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic><sf:number sfa:number="1" sfa:type="i"/></sf:italic><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="14.17323" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="28.34646" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-27" sf:name="orderedlist3" sf:ident="paragraph-style-101"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-7" sf:parent-ident="list-style-2"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-23"><sf:number sfa:number="14.17323" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/></sf:array></sf:listTextIndents><sf:listLabelGeometries><sf:array sfa:ID="NSArray-24"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-45" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-46" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-47" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-48" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-49" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-50" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-51" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-52" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-53" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-25"><sf:number sfa:number="28.34646" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="54" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="90" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="126" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-26"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-45" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-19" sf:type="upper-roman" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-46" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-20" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-47" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-21" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-48" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-22" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-49" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-23" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-50" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-24" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-51" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-25" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-52" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-26" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-53" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-27" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-28" sf:name="sect1-subtitle" sf:ident="paragraph-style-43"><sf:property-map><sf:fontSize><sf:number sfa:number="16" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-29" sf:name="literallayout" sf:ident="paragraph-style-74"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName><sf:string sfa:string="Courier"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-7" sf:name="attribute-value" sf:ident="character-style-4"><sf:property-map><sf:italic/><sf:fontColor/><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline><sf:number sfa:number="1" sfa:type="i"/></sf:underline><sf:bold/><sf:tracking/><sf:ligatures/><sf:fontName><sf:string sfa:string="Courier"/></sf:fontName><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:baselineShift/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:tabular-style sfa:ID="SFTTableStyle-0" sf:ident="tabular-default-style-id"><sf:property-map><sf:SFTDefaultColumnCountProperty><sf:number sfa:number="3" sfa:type="i"/></sf:SFTDefaultColumnCountProperty><sf:externalTextWrap><sf:external-text-wrap sfa:ID="SFWPExternalTextWrap-5" sf:wrap-style="regular" sf:floating-wrap-enabled="true" sf:direction="both" sf:attachment-wrap-type="aligned" sf:floating-wrap-type="directional" sf:margin="12" sf:alpha-threshold="0.5"/></sf:externalTextWrap><sf:SFTDefaultHeaderColumnCellStyleProperty><sf:cell-style sfa:ID="SFTCellStyle-1" sf:ident="tabular-default-header-column-cell-style-id"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFTCellStylePropertyDateTimeFormat><sf:string sfa:string="d/MM/yy h:mm a"/></sf:SFTCellStylePropertyDateTimeFormat><sf:SFTCellStylePropertyParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-13"/></sf:SFTCellStylePropertyParagraphStyle><sf:SFTCellStylePropertyFormatType><sf:number sfa:number="255" sfa:type="i"/></sf:SFTCellStylePropertyFormatType><sf:SFTCellTextWrapProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFTCellTextWrapProperty><sf:SFTCellStylePropertyImplicitFormatType><sf:number sfa:number="255" sfa:type="i"/></sf:SFTCellStylePropertyImplicitFormatType><sf:SFTCellStylePropertyLayoutStyle><sf:layoutstyle sfa:ID="SFWPLayoutStyle-7" sf:parent-ident="layout-style-default"><sf:property-map><sf:followingLayoutStyle><sf:null/></sf:followingLayoutStyle><sf:padding><sf:padding-ref sfa:IDREF="SFWPPadding-2"/></sf:padding><sf:layoutParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-13"/></sf:layoutParagraphStyle></sf:property-map></sf:layoutstyle></sf:SFTCellStylePropertyLayoutStyle><sf:SFTCellStylePropertyNumberFormat><sf:number-format sfa:ID="SFTNumberFormat-1" sf:format-type="0" sf:format-string="#,##0.###;-#,##0.###" sf:format-decimal-places="2" sf:format-currency-code="AUD" sf:format-negative-style="0" sf:format-show-thousands-separator="true" sf:format-fraction-accuracy="-1" sf:format-use-accounting-style="false"/></sf:SFTCellStylePropertyNumberFormat><sf:fill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.86274510622024536" sfa:g="0.87058824300765991" sfa:b="0.86666667461395264" sfa:a="1"/></sf:fill></sf:property-map></sf:cell-style></sf:SFTDefaultHeaderColumnCellStyleProperty><sf:SFTDefaultFooterRowCellStyleProperty><sf:cell-style-ref sfa:IDREF="SFTCellStyle-0"/></sf:SFTDefaultFooterRowCellStyleProperty><sf:SFTDefaultHeaderBorderVectorStyleProperty><sf:vector-style-ref sfa:IDREF="SFTVectorStyle-3"/></sf:SFTDefaultHeaderBorderVectorStyleProperty><sf:SFTDefaultBodyVectorStyleProperty><sf:vector-style-ref sfa:IDREF="SFTVectorStyle-2"/></sf:SFTDefaultBodyVectorStyleProperty><sf:SFTDefaultRowCountProperty><sf:number sfa:number="4" sfa:type="i"/></sf:SFTDefaultRowCountProperty><sf:SFTDefaultBorderVectorStyleProperty><sf:vector-style-ref sfa:IDREF="SFTVectorStyle-7"/></sf:SFTDefaultBorderVectorStyleProperty><sf:SFTDefaultFooterSeparatorVectorStyleProperty><sf:vector-style-ref sfa:IDREF="SFTVectorStyle-6"/></sf:SFTDefaultFooterSeparatorVectorStyleProperty><sf:SFTTableBandedRowsProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFTTableBandedRowsProperty><sf:SFTDefaultHeaderBodyVectorStyleProperty><sf:vector-style-ref sfa:IDREF="SFTVectorStyle-5"/></sf:SFTDefaultHeaderBodyVectorStyleProperty><sf:SFTDefaultHeaderSeparatorVectorStyleProperty><sf:vector-style-ref sfa:IDREF="SFTVectorStyle-0"/></sf:SFTDefaultHeaderSeparatorVectorStyleProperty><sf:SFTHeaderRowRepeatsProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFTHeaderRowRepeatsProperty><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFTAutoResizeProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFTAutoResizeProperty><sf:SFTDefaultHeaderRowCellStyleProperty><sf:cell-style sfa:ID="SFTCellStyle-2" sf:ident="tabular-default-header-row-cell-style-id"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFTCellStylePropertyDateTimeFormat><sf:string sfa:string="d/MM/yy h:mm a"/></sf:SFTCellStylePropertyDateTimeFormat><sf:SFTCellStylePropertyParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-13"/></sf:SFTCellStylePropertyParagraphStyle><sf:SFTCellStylePropertyFormatType><sf:number sfa:number="255" sfa:type="i"/></sf:SFTCellStylePropertyFormatType><sf:SFTCellTextWrapProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFTCellTextWrapProperty><sf:SFTCellStylePropertyImplicitFormatType><sf:number sfa:number="255" sfa:type="i"/></sf:SFTCellStylePropertyImplicitFormatType><sf:SFTCellStylePropertyLayoutStyle><sf:layoutstyle sfa:ID="SFWPLayoutStyle-8" sf:parent-ident="layout-style-default"><sf:property-map><sf:followingLayoutStyle><sf:null/></sf:followingLayoutStyle><sf:padding><sf:padding-ref sfa:IDREF="SFWPPadding-2"/></sf:padding><sf:layoutParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-13"/></sf:layoutParagraphStyle></sf:property-map></sf:layoutstyle></sf:SFTCellStylePropertyLayoutStyle><sf:SFTCellStylePropertyNumberFormat><sf:number-format-ref sfa:IDREF="SFTNumberFormat-0"/></sf:SFTCellStylePropertyNumberFormat><sf:fill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.69019609689712524" sfa:g="0.70196080207824707" sfa:b="0.69803923368453979" sfa:a="1"/></sf:fill></sf:property-map></sf:cell-style></sf:SFTDefaultHeaderRowCellStyleProperty><sf:fill><sf:null/></sf:fill><sf:SFTDefaultInlineGeometryProperty><sf:geometry sfa:ID="SFDAffineGeometry-0" sf:sizesLocked="true"><sf:naturalSize sfa:w="467" sfa:h="75"/><sf:size sfa:w="467" sfa:h="75"/><sf:position sfa:x="0" sfa:y="0"/></sf:geometry></sf:SFTDefaultInlineGeometryProperty><sf:SFTHeaderColumnRepeatsProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFTHeaderColumnRepeatsProperty><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow><sf:SFTDefaultBodyCellStyleProperty><sf:cell-style sfa:ID="SFTCellStyle-3" sf:ident="tabular-default-body-cell-style-id"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFTCellStylePropertyDateTimeFormat><sf:string sfa:string="d/MM/yy h:mm a"/></sf:SFTCellStylePropertyDateTimeFormat><sf:SFTCellStylePropertyParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:SFTCellStylePropertyParagraphStyle><sf:SFTCellStylePropertyFormatType><sf:number sfa:number="255" sfa:type="i"/></sf:SFTCellStylePropertyFormatType><sf:SFTCellTextWrapProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFTCellTextWrapProperty><sf:SFTCellStylePropertyImplicitFormatType><sf:number sfa:number="255" sfa:type="i"/></sf:SFTCellStylePropertyImplicitFormatType><sf:SFTCellStylePropertyLayoutStyle><sf:layoutstyle sfa:ID="SFWPLayoutStyle-9" sf:parent-ident="layout-style-default"><sf:property-map><sf:followingLayoutStyle><sf:null/></sf:followingLayoutStyle><sf:padding><sf:padding sfa:ID="SFWPPadding-3" sf:top="5" sf:left="5" sf:bottom="5" sf:right="5"/></sf:padding><sf:layoutParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:layoutParagraphStyle></sf:property-map></sf:layoutstyle></sf:SFTCellStylePropertyLayoutStyle><sf:SFTCellStylePropertyNumberFormat><sf:number-format sfa:ID="SFTNumberFormat-2" sf:format-type="0" sf:format-string="#,##0.###;-#,##0.###" sf:format-decimal-places="2" sf:format-currency-code="AUD" sf:format-negative-style="0" sf:format-show-thousands-separator="true" sf:format-fraction-accuracy="-1" sf:format-use-accounting-style="false"/></sf:SFTCellStylePropertyNumberFormat><sf:fill><sf:null/></sf:fill></sf:property-map></sf:cell-style></sf:SFTDefaultBodyCellStyleProperty><sf:SFTTableBandedCellFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.92156863212585449" sfa:g="0.93333333730697632" sfa:b="0.94117647409439087" sfa:a="1"/></sf:SFTTableBandedCellFillProperty><sf:SFTGroupingRowFillProperty><sf:null/></sf:SFTGroupingRowFillProperty><sf:SFTDefaultFooterBodyVectorStyleProperty><sf:vector-style-ref sfa:IDREF="SFTVectorStyle-1"/></sf:SFTDefaultFooterBodyVectorStyleProperty><sf:SFTDefaultFooterBorderVectorStyleProperty><sf:vector-style-ref sfa:IDREF="SFTVectorStyle-4"/></sf:SFTDefaultFooterBorderVectorStyleProperty><sf:SFTTableBehaviorProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFTTableBehaviorProperty><sf:SFTDefaultHeaderColumnCountProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFTDefaultHeaderColumnCountProperty><sf:SFTDefaultGeometryProperty><sf:geometry sfa:ID="SFDAffineGeometry-1" sf:sizesLocked="true"><sf:naturalSize sfa:w="350" sfa:h="100"/><sf:size sfa:w="350" sfa:h="100"/><sf:position sfa:x="79" sfa:y="171"/></sf:geometry></sf:SFTDefaultGeometryProperty><sf:SFTDefaultHeaderRowCountProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFTDefaultHeaderRowCountProperty></sf:property-map></sf:tabular-style><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-30" sf:name="bibliomisc" sf:ident="paragraph-style-105"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.80000001192092896" sfa:g="1" sfa:b="1" sfa:a="1"/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-31" sf:name="sect1-title" sf:ident="paragraph-style-42"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-32" sf:name="Free Form" sf:ident="paragraph-style-default"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC/><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-33" sf:name="revision" sf:ident="paragraph-style-75"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="1" sfa:g="1" sfa:b="0.80000001192092896" sfa:a="1"/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-34" sf:name="orderedlist2" sf:ident="paragraph-style-100"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-8" sf:parent-ident="list-style-2"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-27"><sf:number sfa:number="14.17323" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/></sf:array></sf:listTextIndents><sf:listLabelGeometries><sf:array sfa:ID="NSArray-28"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-54" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-55" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-56" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-57" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-58" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-59" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-60" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-61" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-62" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-29"><sf:number sfa:number="14.17323" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="54" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="90" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="126" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-30"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-54" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-28" sf:type="lower-alpha" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-55" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-29" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-56" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-30" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-57" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-31" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-58" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-32" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-59" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-33" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-60" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-34" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-61" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-35" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-62" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-36" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-35" sf:name="Header &amp; Footer" sf:ident="paragraph-style-37"><sf:property-map><sf:fontSize><sf:number sfa:number="10" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs><sf:tabs sfa:ID="SFWPTabs-5"><sf:tabstop sf:pos="468" sf:align="right"/></sf:tabs></sf:tabs><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-8" sf:name="shortaffil" sf:ident="character-style-31"><sf:property-map><sf:underlineColor><sf:null/></sf:underlineColor><sf:fontColor/><sf:fontSize/><sf:textBackground><sf:null/></sf:textBackground><sf:atsuFontFeatures/><sf:superscript/><sf:underline><sf:number sfa:number="1" sfa:type="i"/></sf:underline><sf:bold/><sf:fontName/><sf:ligatures/><sf:strikethru/><sf:baselineShift/><sf:tracking/><sf:capitalization/><sf:textShadow/><sf:language><sf:string sfa:string="en"/></sf:language><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-9" sf:name="revnumber" sf:ident="character-style-18"><sf:property-map><sf:italic/><sf:fontSize/><sf:fontColor/><sf:atsuFontFeatures/><sf:superscript/><sf:underline><sf:number sfa:number="1" sfa:type="i"/></sf:underline><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:fontName/><sf:baselineShift/><sf:ligatures/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-36" sf:name="textobject-title" sf:ident="paragraph-style-78"><sf:property-map><sf:fontSize><sf:number sfa:number="13" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-37" sf:name="caution" sf:ident="paragraph-style-16"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-5"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="1" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-38" sf:name="informalfigure-imagedata" sf:ident="paragraph-style-28"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline><sf:number sfa:number="1" sfa:type="i"/></sf:underline><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName><sf:string sfa:string="Courier-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0.20000000298023224" sfa:b="0.60000002384185791" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-10" sf:name="attribute-name" sf:ident="character-style-2"><sf:property-map><sf:italic/><sf:fontSize/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:fontName><sf:string sfa:string="Courier-Bold"/></sf:fontName><sf:baselineShift/><sf:capitalization/><sf:textShadow/><sf:strikethru/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-39" sf:name="index-title" sf:ident="paragraph-style-27"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-11" sf:name="pob" sf:ident="character-style-23"><sf:property-map><sf:underlineColor><sf:null/></sf:underlineColor><sf:fontColor/><sf:fontSize/><sf:textBackground><sf:null/></sf:textBackground><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:fontName/><sf:ligatures/><sf:strikethru/><sf:baselineShift/><sf:tracking/><sf:capitalization/><sf:textShadow/><sf:language><sf:string sfa:string="en"/></sf:language><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-12" sf:name="email" sf:ident="character-style-9"><sf:property-map><sf:italic/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="1" sfa:a="1"/></sf:fontColor><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline><sf:number sfa:number="1" sfa:type="i"/></sf:underline><sf:bold/><sf:tracking/><sf:ligatures/><sf:fontName/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:baselineShift/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-13" sf:name="inlinegraphic" sf:ident="character-style-25"><sf:property-map><sf:italic/><sf:fontSize/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0.20000000298023224" sfa:b="0.60000002384185791" sfa:a="1"/></sf:fontColor><sf:atsuFontFeatures/><sf:superscript/><sf:underline><sf:number sfa:number="1" sfa:type="i"/></sf:underline><sf:bold/><sf:tracking/><sf:ligatures/><sf:fontName><sf:string sfa:string="Monaco"/></sf:fontName><sf:baselineShift/><sf:capitalization/><sf:textShadow/><sf:strikethru/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:chart-series-style sfa:ID="SFCSeriesStyle-1" sf:name="Series_3" sf:ident="Series_3" sf:seriesIndex="3"><sf:property-map><sf:SFC2DPieFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75686275959014893" sfa:g="0.047058824449777603" sfa:b="0.12941177189350128" sfa:a="1"/></sf:SFC2DPieFillProperty><sf:SFCBarValueLabelPositionProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCBarValueLabelPositionProperty><sf:SFC3DColumnFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75686275959014893" sfa:g="0.047058824449777603" sfa:b="0.12941177189350128" sfa:a="1"/></sf:SFC3DColumnFillProperty><sf:SFC2DAreaUseSeriesFillForDataPointFillProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFC2DAreaUseSeriesFillForDataPointFillProperty><sf:SFC2DLineUseSeriesFillForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DLineUseSeriesFillForDataPointFillProperty><sf:SFC3DAreaFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75686275959014893" sfa:g="0.047058824449777603" sfa:b="0.12941177189350128" sfa:a="1"/></sf:SFC3DAreaFillProperty><sf:SFCAreaShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCAreaShowValueLabelProperty><sf:SFCLabelShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-3"/></sf:SFCLabelShadowProperty><sf:SFC2DLineDataPointSymbolProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC2DLineDataPointSymbolProperty><sf:SFC2DPieStrokeProperty><sf:stroke sfa:ID="SFRStroke-16" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-16" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DPieStrokeProperty><sf:SFC2DScatterShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DScatterShadowProperty><sf:SFC2DAreaFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75686275959014893" sfa:g="0.047058824449777603" sfa:b="0.12941177189350128" sfa:a="1"/></sf:SFC2DAreaFillProperty><sf:SFC2DLineDataPointFillProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:SFC2DLineDataPointFillProperty><sf:SFC3DPieFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75686275959014893" sfa:g="0.047058824449777603" sfa:b="0.12941177189350128" sfa:a="1"/></sf:SFC3DPieFillProperty><sf:SFC2DLineStrokeProperty><sf:stroke sfa:ID="SFRStroke-17" sf:miter-limit="4" sf:width="4" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75686275959014893" sfa:g="0.047058824449777603" sfa:b="0.12941177189350128" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-17" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DLineStrokeProperty><sf:SFC2DScatterStrokeProperty><sf:stroke sfa:ID="SFRStroke-18" sf:miter-limit="4" sf:width="4" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75686275959014893" sfa:g="0.047058824449777603" sfa:b="0.12941177189350128" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-18" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DScatterStrokeProperty><sf:SFC3DSeriesShininessProperty><sf:number sfa:number="0.5" sfa:type="f"/></sf:SFC3DSeriesShininessProperty><sf:SFC2DAreaDataPointSymbolProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFC2DAreaDataPointSymbolProperty><sf:SFC2DAreaUseStrokeColorForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DAreaUseStrokeColorForDataPointFillProperty><sf:SFC3DSeriesEmissiveColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:SFC3DSeriesEmissiveColorProperty><sf:SFC3DTextureTilingProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC3DTextureTilingProperty><sf:SFC2DLineShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DLineShadowProperty><sf:SFCPieSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-40" sf:ident="Series_3_SFCPieSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment><sf:number sfa:number="2" sfa:type="i"/></sf:alignment><sf:fontSize><sf:number sfa:number="16" sfa:type="f"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCPieSeriesValueParagraphStyleProperty><sf:SFCStackedBarValueLabelPositionProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCStackedBarValueLabelPositionProperty><sf:SFC2DColumnFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75686275959014893" sfa:g="0.047058824449777603" sfa:b="0.12941177189350128" sfa:a="1"/></sf:SFC2DColumnFillProperty><sf:SFC3DBarFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75686275959014893" sfa:g="0.047058824449777603" sfa:b="0.12941177189350128" sfa:a="1"/></sf:SFC3DBarFillProperty><sf:SFC2DBarStrokeProperty><sf:stroke sfa:ID="SFRStroke-19" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-19" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DBarStrokeProperty><sf:SFCLabelOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFCLabelOpacityProperty><sf:SFC2DPieShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DPieShadowProperty><sf:SFCPieShowValueLabelProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFCPieShowValueLabelProperty><sf:SFCPieShowSeriesNameLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCPieShowSeriesNameLabelProperty><sf:SFCLineSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-41" sf:ident="Series_3_SFCLineSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCLineSeriesValueParagraphStyleProperty><sf:SFC2DOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC2DOpacityProperty><sf:SFCLineValueLabelPositionProperty><sf:number sfa:number="4" sfa:type="i"/></sf:SFCLineValueLabelPositionProperty><sf:SFCPieValueLabelPositionProperty><sf:number sfa:number="13" sfa:type="i"/></sf:SFCPieValueLabelPositionProperty><sf:SFCLineShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCLineShowValueLabelProperty><sf:SFC2DAreaDataPointFillProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:SFC2DAreaDataPointFillProperty><sf:SFCStackedAreaValueLabelPositionProperty><sf:number sfa:number="10" sfa:type="i"/></sf:SFCStackedAreaValueLabelPositionProperty><sf:SFC2DAreaShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DAreaShadowProperty><sf:SFC3DSeriesSpecularColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.89999997615814209" sfa:g="0.89999997615814209" sfa:b="0.89999997615814209" sfa:a="1"/></sf:SFC3DSeriesSpecularColorProperty><sf:SFC2DScatterDataPointSymbolProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC2DScatterDataPointSymbolProperty><sf:SFC2DBarShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DBarShadowProperty><sf:SFCBarSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-42" sf:ident="Series_3_SFCBarSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="i"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCBarSeriesValueParagraphStyleProperty><sf:SFC2DScatterDataPointFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75686275959014893" sfa:g="0.047058824449777603" sfa:b="0.12941177189350128" sfa:a="1"/></sf:SFC2DScatterDataPointFillProperty><sf:SFC2DBarFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75686275959014893" sfa:g="0.047058824449777603" sfa:b="0.12941177189350128" sfa:a="1"/></sf:SFC2DBarFillProperty><sf:SFCBarShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCBarShowValueLabelProperty><sf:SFC2DAreaStrokeProperty><sf:stroke sfa:ID="SFRStroke-20" sf:miter-limit="4" sf:width="2" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern-ref sfa:IDREF="SFRStrokePattern-15"/></sf:stroke></sf:SFC2DAreaStrokeProperty><sf:SFCAreaValueLabelPositionProperty><sf:number sfa:number="10" sfa:type="i"/></sf:SFCAreaValueLabelPositionProperty><sf:SFC3DPieShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-4"/></sf:SFC3DPieShadowProperty><sf:SFC3DTextureProperty><sf:string sfa:string=""/></sf:SFC3DTextureProperty><sf:SFCAreaSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-43" sf:ident="Series_3_SFCAreaSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="i"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCAreaSeriesValueParagraphStyleProperty><sf:SFC2DLineUseStrokeColorForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DLineUseStrokeColorForDataPointFillProperty><sf:SFC3DLineFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.75686275959014893" sfa:g="0.047058824449777603" sfa:b="0.12941177189350128" sfa:a="1"/></sf:SFC3DLineFillProperty><sf:SFCPieWedgeExplosionProperty><sf:number sfa:number="0" sfa:type="f"/></sf:SFCPieWedgeExplosionProperty></sf:property-map></sf:chart-series-style><sf:characterstyle sfa:ID="SFWPCharacterStyle-14" sf:name="citetitle" sf:ident="character-style-28"><sf:property-map><sf:italic><sf:number sfa:number="1" sfa:type="i"/></sf:italic><sf:fontSize/><sf:fontColor/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold/><sf:tracking/><sf:fontName/><sf:baselineShift/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:ligatures/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:chart-series-style sfa:ID="SFCSeriesStyle-2" sf:name="Series_5" sf:ident="Series_5" sf:seriesIndex="5"><sf:property-map><sf:SFC2DPieFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.92941176891326904" sfa:g="0.78823530673980713" sfa:b="0.14901961386203766" sfa:a="1"/></sf:SFC2DPieFillProperty><sf:SFCBarValueLabelPositionProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCBarValueLabelPositionProperty><sf:SFC3DColumnFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.92941176891326904" sfa:g="0.78823530673980713" sfa:b="0.14901961386203766" sfa:a="1"/></sf:SFC3DColumnFillProperty><sf:SFC2DAreaUseSeriesFillForDataPointFillProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFC2DAreaUseSeriesFillForDataPointFillProperty><sf:SFC2DLineUseSeriesFillForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DLineUseSeriesFillForDataPointFillProperty><sf:SFC3DAreaFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.92941176891326904" sfa:g="0.78823530673980713" sfa:b="0.14901961386203766" sfa:a="1"/></sf:SFC3DAreaFillProperty><sf:SFCAreaShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCAreaShowValueLabelProperty><sf:SFCLabelShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-3"/></sf:SFCLabelShadowProperty><sf:SFC2DLineDataPointSymbolProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC2DLineDataPointSymbolProperty><sf:SFC2DPieStrokeProperty><sf:stroke sfa:ID="SFRStroke-21" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-20" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DPieStrokeProperty><sf:SFC2DScatterShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DScatterShadowProperty><sf:SFC2DAreaFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.92941176891326904" sfa:g="0.78823530673980713" sfa:b="0.14901961386203766" sfa:a="1"/></sf:SFC2DAreaFillProperty><sf:SFC2DLineDataPointFillProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:SFC2DLineDataPointFillProperty><sf:SFC3DPieFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.92941176891326904" sfa:g="0.78823530673980713" sfa:b="0.14901961386203766" sfa:a="1"/></sf:SFC3DPieFillProperty><sf:SFC2DLineStrokeProperty><sf:stroke sfa:ID="SFRStroke-22" sf:miter-limit="4" sf:width="4" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.92941176891326904" sfa:g="0.78823530673980713" sfa:b="0.14901961386203766" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-21" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DLineStrokeProperty><sf:SFC2DScatterStrokeProperty><sf:stroke sfa:ID="SFRStroke-23" sf:miter-limit="4" sf:width="4" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.92941176891326904" sfa:g="0.78823530673980713" sfa:b="0.14901961386203766" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-22" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DScatterStrokeProperty><sf:SFC3DSeriesShininessProperty><sf:number sfa:number="0.5" sfa:type="f"/></sf:SFC3DSeriesShininessProperty><sf:SFC2DAreaDataPointSymbolProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFC2DAreaDataPointSymbolProperty><sf:SFC2DAreaUseStrokeColorForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DAreaUseStrokeColorForDataPointFillProperty><sf:SFC3DSeriesEmissiveColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:SFC3DSeriesEmissiveColorProperty><sf:SFC3DTextureTilingProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC3DTextureTilingProperty><sf:SFC2DLineShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DLineShadowProperty><sf:SFCPieSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-44" sf:ident="Series_5_SFCPieSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment><sf:number sfa:number="2" sfa:type="i"/></sf:alignment><sf:fontSize><sf:number sfa:number="16" sfa:type="f"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCPieSeriesValueParagraphStyleProperty><sf:SFCStackedBarValueLabelPositionProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCStackedBarValueLabelPositionProperty><sf:SFC2DColumnFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.92941176891326904" sfa:g="0.78823530673980713" sfa:b="0.14901961386203766" sfa:a="1"/></sf:SFC2DColumnFillProperty><sf:SFC3DBarFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.92941176891326904" sfa:g="0.78823530673980713" sfa:b="0.14901961386203766" sfa:a="1"/></sf:SFC3DBarFillProperty><sf:SFC2DBarStrokeProperty><sf:stroke sfa:ID="SFRStroke-24" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-23" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DBarStrokeProperty><sf:SFCLabelOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFCLabelOpacityProperty><sf:SFC2DPieShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DPieShadowProperty><sf:SFCPieShowValueLabelProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFCPieShowValueLabelProperty><sf:SFCPieShowSeriesNameLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCPieShowSeriesNameLabelProperty><sf:SFCLineSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-45" sf:ident="Series_5_SFCLineSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCLineSeriesValueParagraphStyleProperty><sf:SFC2DOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC2DOpacityProperty><sf:SFCLineValueLabelPositionProperty><sf:number sfa:number="4" sfa:type="i"/></sf:SFCLineValueLabelPositionProperty><sf:SFCPieValueLabelPositionProperty><sf:number sfa:number="13" sfa:type="i"/></sf:SFCPieValueLabelPositionProperty><sf:SFCLineShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCLineShowValueLabelProperty><sf:SFC2DAreaDataPointFillProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:SFC2DAreaDataPointFillProperty><sf:SFCStackedAreaValueLabelPositionProperty><sf:number sfa:number="10" sfa:type="i"/></sf:SFCStackedAreaValueLabelPositionProperty><sf:SFC2DAreaShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DAreaShadowProperty><sf:SFC3DSeriesSpecularColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.89999997615814209" sfa:g="0.89999997615814209" sfa:b="0.89999997615814209" sfa:a="1"/></sf:SFC3DSeriesSpecularColorProperty><sf:SFC2DScatterDataPointSymbolProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC2DScatterDataPointSymbolProperty><sf:SFC2DBarShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DBarShadowProperty><sf:SFCBarSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-46" sf:ident="Series_5_SFCBarSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="i"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCBarSeriesValueParagraphStyleProperty><sf:SFC2DScatterDataPointFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.92941176891326904" sfa:g="0.78823530673980713" sfa:b="0.14901961386203766" sfa:a="1"/></sf:SFC2DScatterDataPointFillProperty><sf:SFC2DBarFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.92941176891326904" sfa:g="0.78823530673980713" sfa:b="0.14901961386203766" sfa:a="1"/></sf:SFC2DBarFillProperty><sf:SFCBarShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCBarShowValueLabelProperty><sf:SFC2DAreaStrokeProperty><sf:stroke sfa:ID="SFRStroke-25" sf:miter-limit="4" sf:width="2" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern-ref sfa:IDREF="SFRStrokePattern-15"/></sf:stroke></sf:SFC2DAreaStrokeProperty><sf:SFCAreaValueLabelPositionProperty><sf:number sfa:number="10" sfa:type="i"/></sf:SFCAreaValueLabelPositionProperty><sf:SFC3DPieShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-4"/></sf:SFC3DPieShadowProperty><sf:SFC3DTextureProperty><sf:string sfa:string=""/></sf:SFC3DTextureProperty><sf:SFCAreaSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-47" sf:ident="Series_5_SFCAreaSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="i"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCAreaSeriesValueParagraphStyleProperty><sf:SFC2DLineUseStrokeColorForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DLineUseStrokeColorForDataPointFillProperty><sf:SFC3DLineFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.92941176891326904" sfa:g="0.78823530673980713" sfa:b="0.14901961386203766" sfa:a="1"/></sf:SFC3DLineFillProperty><sf:SFCPieWedgeExplosionProperty><sf:number sfa:number="0" sfa:type="f"/></sf:SFCPieWedgeExplosionProperty></sf:property-map></sf:chart-series-style><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-48" sf:name="legalnotice" sf:ident="paragraph-style-30"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline><sf:number sfa:number="1" sfa:type="i"/></sf:underline><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.60000002384185791" sfa:g="0.40000000596046448" sfa:b="0.20000000298023224" sfa:a="0.5"/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-49" sf:name="programlisting" sf:ident="paragraph-style-73"><sf:property-map><sf:fontSize><sf:number sfa:number="10" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName><sf:string sfa:string="CourierNewPSMT"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-20"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-50" sf:name="caution-title" sf:ident="paragraph-style-17"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-9" sf:parent-ident="list-style-default"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-31"><sf:number sfa:number="56.69291" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/><sf:number sfa:number="180" sfa:type="f"/><sf:number sfa:number="216" sfa:type="f"/><sf:number sfa:number="252" sfa:type="f"/><sf:number sfa:number="288" sfa:type="f"/></sf:array></sf:listTextIndents><sf:labelCharacterStyle1><sf:characterstyle-ref sfa:IDREF="SFWPCharacterStyle-4"/></sf:labelCharacterStyle1><sf:listLabelGeometries><sf:array sfa:ID="NSArray-32"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-63" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-64" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-65" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-66" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-67" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-68" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-69" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-70" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-71" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-33"><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="0" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-34"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-63" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-37" sf:type="bullet" sf:format="!" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-64" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-65" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-66" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-67" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-68" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-69" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-70" sf:type="none"/><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-71" sf:type="none"/></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="1" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-51" sf:name="author" sf:ident="paragraph-style-8"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-15" sf:name="None" sf:ident="character-style-null"><sf:property-map/></sf:characterstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-16" sf:ident="kSLImportStylesHeadingStyleIdentifier" sf:parent-ident="character-style-null"><sf:property-map><sf:fontName><sf:string sfa:string="LucidaGrande"/></sf:fontName><sf:fontSize><sf:number sfa:number="13" sfa:type="f"/></sf:fontSize><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0.5" sfa:a="1"/></sf:fontColor></sf:property-map></sf:characterstyle><sf:layoutstyle sfa:ID="SFWPLayoutStyle-10" sf:name="Normal 22" sf:ident="layout-style-20"><sf:property-map><sf:verticalAlignment/><sf:layoutParagraphStyle><sf:null/></sf:layoutParagraphStyle><sf:columns/><sf:padding/><sf:layoutMargins/><sf:followingLayoutStyle><sf:null/></sf:followingLayoutStyle><sf:layoutContinuous/></sf:property-map></sf:layoutstyle><sf:cell-style-ref sfa:IDREF="SFTCellStyle-1"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-52" sf:name="itemizedlist3" sf:ident="paragraph-style-96"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-10" sf:parent-ident="list-style-2"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-35"><sf:number sfa:number="9.000002" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/></sf:array></sf:listTextIndents><sf:listLabelGeometries><sf:array sfa:ID="NSArray-36"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-72" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-73" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-74" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-75" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-76" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-77" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-78" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-79" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-80" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-37"><sf:number sfa:number="28.34646" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="54" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="90" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="126" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-38"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-72" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-38" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-73" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-39" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-74" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-40" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-75" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-41" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-76" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-42" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-77" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-43" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-78" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-44" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-79" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-45" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-80" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-46" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-7" sf:name="graphic-line-style-default" sf:ident="graphic-line-style-default"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:reflection><sf:null/></sf:reflection><sf:headLineEnd><sf:null/></sf:headLineEnd><sf:externalTextWrap><sf:external-text-wrap sfa:ID="SFWPExternalTextWrap-6" sf:wrap-style="tight" sf:floating-wrap-enabled="true" sf:direction="both" sf:attachment-wrap-type="aligned" sf:floating-wrap-type="directional" sf:margin="12" sf:alpha-threshold="0.5"/></sf:externalTextWrap><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:stroke><sf:stroke sfa:ID="SFRStroke-26" sf:miter-limit="4" sf:width="2" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-24" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:fill><sf:null/></sf:fill><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow><sf:tailLineEnd><sf:null/></sf:tailLineEnd></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-8" sf:name="graphic-line-style-default 3" sf:ident="graphic-line-style-default-2" sf:parent-ident="graphic-line-style-default"><sf:property-map><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-53" sf:name="warning" sf:ident="paragraph-style-60"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-5"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="1" sfa:g="1" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-54" sf:name="tip" sf:ident="paragraph-style-58"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-5"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-17" sf:name="jobtitle" sf:ident="character-style-13"><sf:property-map><sf:italic/><sf:fontColor/><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:fontName/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:baselineShift/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-55" sf:name="variablelist-titleabbrev" sf:ident="paragraph-style-64"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic><sf:number sfa:number="1" sfa:type="i"/></sf:italic><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent><sf:number sfa:number="14.18209" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:paragraphstyle><sf:chart-series-style sfa:ID="SFCSeriesStyle-3" sf:name="Series_4" sf:ident="Series_4" sf:seriesIndex="4"><sf:property-map><sf:SFC2DPieFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.90196079015731812" sfa:g="0.55686277151107788" sfa:b="0.14117647707462311" sfa:a="1"/></sf:SFC2DPieFillProperty><sf:SFCBarValueLabelPositionProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCBarValueLabelPositionProperty><sf:SFC3DColumnFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.90196079015731812" sfa:g="0.55686277151107788" sfa:b="0.14117647707462311" sfa:a="1"/></sf:SFC3DColumnFillProperty><sf:SFC2DAreaUseSeriesFillForDataPointFillProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFC2DAreaUseSeriesFillForDataPointFillProperty><sf:SFC2DLineUseSeriesFillForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DLineUseSeriesFillForDataPointFillProperty><sf:SFC3DAreaFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.90196079015731812" sfa:g="0.55686277151107788" sfa:b="0.14117647707462311" sfa:a="1"/></sf:SFC3DAreaFillProperty><sf:SFCAreaShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCAreaShowValueLabelProperty><sf:SFCLabelShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-3"/></sf:SFCLabelShadowProperty><sf:SFC2DLineDataPointSymbolProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC2DLineDataPointSymbolProperty><sf:SFC2DPieStrokeProperty><sf:stroke sfa:ID="SFRStroke-27" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-25" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DPieStrokeProperty><sf:SFC2DScatterShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DScatterShadowProperty><sf:SFC2DAreaFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.90196079015731812" sfa:g="0.55686277151107788" sfa:b="0.14117647707462311" sfa:a="1"/></sf:SFC2DAreaFillProperty><sf:SFC2DLineDataPointFillProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:SFC2DLineDataPointFillProperty><sf:SFC3DPieFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.90196079015731812" sfa:g="0.55686277151107788" sfa:b="0.14117647707462311" sfa:a="1"/></sf:SFC3DPieFillProperty><sf:SFC2DLineStrokeProperty><sf:stroke sfa:ID="SFRStroke-28" sf:miter-limit="4" sf:width="4" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.90196079015731812" sfa:g="0.55686277151107788" sfa:b="0.14117647707462311" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-26" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DLineStrokeProperty><sf:SFC2DScatterStrokeProperty><sf:stroke sfa:ID="SFRStroke-29" sf:miter-limit="4" sf:width="4" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.90196079015731812" sfa:g="0.55686277151107788" sfa:b="0.14117647707462311" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-27" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DScatterStrokeProperty><sf:SFC3DSeriesShininessProperty><sf:number sfa:number="0.5" sfa:type="f"/></sf:SFC3DSeriesShininessProperty><sf:SFC2DAreaDataPointSymbolProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFC2DAreaDataPointSymbolProperty><sf:SFC2DAreaUseStrokeColorForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DAreaUseStrokeColorForDataPointFillProperty><sf:SFC3DSeriesEmissiveColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:SFC3DSeriesEmissiveColorProperty><sf:SFC3DTextureTilingProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC3DTextureTilingProperty><sf:SFC2DLineShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DLineShadowProperty><sf:SFCPieSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-56" sf:ident="Series_4_SFCPieSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment><sf:number sfa:number="2" sfa:type="i"/></sf:alignment><sf:fontSize><sf:number sfa:number="16" sfa:type="f"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCPieSeriesValueParagraphStyleProperty><sf:SFCStackedBarValueLabelPositionProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCStackedBarValueLabelPositionProperty><sf:SFC2DColumnFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.90196079015731812" sfa:g="0.55686277151107788" sfa:b="0.14117647707462311" sfa:a="1"/></sf:SFC2DColumnFillProperty><sf:SFC3DBarFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.90196079015731812" sfa:g="0.55686277151107788" sfa:b="0.14117647707462311" sfa:a="1"/></sf:SFC3DBarFillProperty><sf:SFC2DBarStrokeProperty><sf:stroke sfa:ID="SFRStroke-30" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-28" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DBarStrokeProperty><sf:SFCLabelOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFCLabelOpacityProperty><sf:SFC2DPieShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DPieShadowProperty><sf:SFCPieShowValueLabelProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFCPieShowValueLabelProperty><sf:SFCPieShowSeriesNameLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCPieShowSeriesNameLabelProperty><sf:SFCLineSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-57" sf:ident="Series_4_SFCLineSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCLineSeriesValueParagraphStyleProperty><sf:SFC2DOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC2DOpacityProperty><sf:SFCLineValueLabelPositionProperty><sf:number sfa:number="4" sfa:type="i"/></sf:SFCLineValueLabelPositionProperty><sf:SFCPieValueLabelPositionProperty><sf:number sfa:number="13" sfa:type="i"/></sf:SFCPieValueLabelPositionProperty><sf:SFCLineShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCLineShowValueLabelProperty><sf:SFC2DAreaDataPointFillProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:SFC2DAreaDataPointFillProperty><sf:SFCStackedAreaValueLabelPositionProperty><sf:number sfa:number="10" sfa:type="i"/></sf:SFCStackedAreaValueLabelPositionProperty><sf:SFC2DAreaShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DAreaShadowProperty><sf:SFC3DSeriesSpecularColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.89999997615814209" sfa:g="0.89999997615814209" sfa:b="0.89999997615814209" sfa:a="1"/></sf:SFC3DSeriesSpecularColorProperty><sf:SFC2DScatterDataPointSymbolProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC2DScatterDataPointSymbolProperty><sf:SFC2DBarShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DBarShadowProperty><sf:SFCBarSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-58" sf:ident="Series_4_SFCBarSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="i"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCBarSeriesValueParagraphStyleProperty><sf:SFC2DScatterDataPointFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.90196079015731812" sfa:g="0.55686277151107788" sfa:b="0.14117647707462311" sfa:a="1"/></sf:SFC2DScatterDataPointFillProperty><sf:SFC2DBarFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.90196079015731812" sfa:g="0.55686277151107788" sfa:b="0.14117647707462311" sfa:a="1"/></sf:SFC2DBarFillProperty><sf:SFCBarShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCBarShowValueLabelProperty><sf:SFC2DAreaStrokeProperty><sf:stroke sfa:ID="SFRStroke-31" sf:miter-limit="4" sf:width="2" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern-ref sfa:IDREF="SFRStrokePattern-15"/></sf:stroke></sf:SFC2DAreaStrokeProperty><sf:SFCAreaValueLabelPositionProperty><sf:number sfa:number="10" sfa:type="i"/></sf:SFCAreaValueLabelPositionProperty><sf:SFC3DPieShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-4"/></sf:SFC3DPieShadowProperty><sf:SFC3DTextureProperty><sf:string sfa:string=""/></sf:SFC3DTextureProperty><sf:SFCAreaSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-59" sf:ident="Series_4_SFCAreaSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="i"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCAreaSeriesValueParagraphStyleProperty><sf:SFC2DLineUseStrokeColorForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DLineUseStrokeColorForDataPointFillProperty><sf:SFC3DLineFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.90196079015731812" sfa:g="0.55686277151107788" sfa:b="0.14117647707462311" sfa:a="1"/></sf:SFC3DLineFillProperty><sf:SFCPieWedgeExplosionProperty><sf:number sfa:number="0" sfa:type="f"/></sf:SFCPieWedgeExplosionProperty></sf:property-map></sf:chart-series-style><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-60" sf:name="sect5-subtitle" sf:ident="paragraph-style-51"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-18" sf:name="otheraddr" sf:ident="character-style-30"><sf:property-map><sf:italic/><sf:fontSize/><sf:fontColor/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:fontName><sf:string sfa:string="CourierNewPS-BoldMT"/></sf:fontName><sf:baselineShift/><sf:ligatures/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-61" sf:name="tip-title" sf:ident="paragraph-style-59"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-5"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:cell-style-ref sfa:IDREF="SFTCellStyle-3"/><sf:graphic-style sfa:ID="SFDGraphicStyle-9" sf:name="graphic-shape-style-default" sf:ident="graphic-shape-style-default"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:reflection><sf:null/></sf:reflection><sf:externalTextWrap><sf:external-text-wrap sfa:ID="SFWPExternalTextWrap-7" sf:wrap-style="tight" sf:floating-wrap-enabled="true" sf:direction="both" sf:attachment-wrap-type="aligned" sf:floating-wrap-type="directional" sf:margin="12" sf:alpha-threshold="0.5"/></sf:externalTextWrap><sf:stroke><sf:stroke sfa:ID="SFRStroke-32" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-29" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40784314274787903" sfa:g="0.63529413938522339" sfa:b="0.18431372940540314" sfa:a="1"/></sf:fill><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-10" sf:name="graphic-shape-style-default 8" sf:ident="graphic-shape-style-default-7" sf:parent-ident="graphic-shape-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.41568627953529358" sfa:g="0.66274511814117432" sfa:b="0.39215686917304993" sfa:a="1"/></sf:fill></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-11" sf:name="graphic-shape-style-default 3" sf:ident="graphic-shape-style-default-2" sf:parent-ident="graphic-shape-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.41568627953529358" sfa:g="0.66274511814117432" sfa:b="0.39215686917304993" sfa:a="1"/></sf:fill></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-12" sf:name="graphic-shape-style-default 2" sf:ident="graphic-shape-style-default-1" sf:parent-ident="graphic-shape-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:color xsi:type="sfa:device-cmyk-color-type" sfa:c="0" sfa:m="0" sfa:y="0" sfa:k="0.34999999403953552" sfa:a="1"/></sf:fill></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-13" sf:name="graphic-shape-style-default 7" sf:ident="graphic-shape-style-default-6" sf:parent-ident="graphic-shape-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.41568627953529358" sfa:g="0.66274511814117432" sfa:b="0.39215686917304993" sfa:a="1"/></sf:fill></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-14" sf:name="graphic-shape-style-default 4" sf:ident="graphic-shape-style-default-3" sf:parent-ident="graphic-shape-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.41568627953529358" sfa:g="0.66274511814117432" sfa:b="0.39215686917304993" sfa:a="1"/></sf:fill></sf:property-map></sf:graphic-style><sf:characterstyle sfa:ID="SFWPCharacterStyle-19" sf:name="lineage" sf:ident="character-style-14"><sf:property-map><sf:italic/><sf:fontSize/><sf:fontColor/><sf:atsuFontFeatures/><sf:superscript/><sf:underline><sf:number sfa:number="1" sfa:type="i"/></sf:underline><sf:bold/><sf:tracking/><sf:ligatures/><sf:fontName/><sf:baselineShift/><sf:capitalization/><sf:textShadow/><sf:strikethru/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-62" sf:ident="chart-paragraph-style-default"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC/><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:italic/><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:word_underline/><sf:decimalTab/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-41"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-63" sf:ident="Series_1_SFCBarSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="i"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-57"/><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-56"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-64" sf:ident="Series_2_SFCLineSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-65" sf:ident="SFCValueAxisParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-59"/><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-47"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-66" sf:ident="Series_2_SFCBarSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="i"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-45"/><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-24"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-67" sf:ident="Series_1_SFCPieSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment><sf:number sfa:number="2" sfa:type="i"/></sf:alignment><sf:fontSize><sf:number sfa:number="16" sfa:type="f"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-68" sf:ident="SFCValueAxisTitleParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:outlineLevel/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC/><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:italic/><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-69" sf:ident="SFCLegendParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-58"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-70" sf:ident="Series_1_SFCLineSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-71" sf:ident="SFCCategoryAxisTitleParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:outlineLevel/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC/><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:italic/><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-42"/><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-44"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-72" sf:name="orderedlist1" sf:ident="paragraph-style-99"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-11" sf:parent-ident="list-style-2"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-39"><sf:number sfa:number="14.17323" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/></sf:array></sf:listTextIndents><sf:listLabelGeometries><sf:array sfa:ID="NSArray-40"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-81" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-82" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-83" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-84" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-85" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-86" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-87" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-88" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-89" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-41"><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="54" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="90" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="126" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-42"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-81" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-47" sf:type="decimal" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-82" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-48" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-83" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-49" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-84" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-50" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-85" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-51" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-86" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-52" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-87" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-53" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-88" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-54" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-89" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-55" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-23"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-73" sf:name="variablelist-term" sf:ident="paragraph-style-62"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName><sf:string sfa:string="Courier"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:tocstyle sfa:ID="SLTOCParagraphStyle-5" sfa:sfclass="paragraphstyle" sf:name="TOC Heading 3" sf:ident="toc-paragraph-style-3"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:SLTOCPageNumberStyle><sf:null/></sf:SLTOCPageNumberStyle><sf:keepLinesTogether/><sf:listStyle><sf:null/></sf:listStyle><sf:outlineLevel/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:dropCap/><sf:firstTopicNumber/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic><sf:number sfa:number="1" sfa:type="c"/></sf:italic><sf:SLTOCEntryStyle><sf:null/></sf:SLTOCEntryStyle><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs><sf:tabs sfa:ID="SFWPTabs-6"><sf:tabstop sf:pos="481.61416625976562" sf:align="right"/></sf:tabs></sf:tabs><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:SLTOCEnabledStyles><sf:null/></sf:SLTOCEnabledStyles><sf:SLTOCDisabledStyles><sf:null/></sf:SLTOCDisabledStyles><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:SLTOCShowPageNumber/><sf:keepWithNext/><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="28.34646" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="28.34646" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:tocstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-20" sf:name="literal" sf:ident="character-style-24"><sf:property-map><sf:italic/><sf:fontColor/><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold/><sf:tracking/><sf:ligatures/><sf:fontName><sf:string sfa:string="Courier"/></sf:fontName><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:baselineShift/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-21" sf:name="country" sf:ident="character-style-7"><sf:property-map><sf:italic/><sf:fontColor/><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:fontName/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:baselineShift/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:chart-series-style sfa:ID="SFCSeriesStyle-4" sf:name="Series_1" sf:ident="Series_1" sf:seriesIndex="1"><sf:property-map><sf:SFC2DPieFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.16862745583057404" sfa:g="0.4117647111415863" sfa:b="0.56862747669219971" sfa:a="1"/></sf:SFC2DPieFillProperty><sf:SFCBarValueLabelPositionProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCBarValueLabelPositionProperty><sf:SFC3DColumnFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.16862745583057404" sfa:g="0.4117647111415863" sfa:b="0.56862747669219971" sfa:a="1"/></sf:SFC3DColumnFillProperty><sf:SFC2DAreaUseSeriesFillForDataPointFillProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFC2DAreaUseSeriesFillForDataPointFillProperty><sf:SFC2DLineUseSeriesFillForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DLineUseSeriesFillForDataPointFillProperty><sf:SFC3DAreaFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.16862745583057404" sfa:g="0.4117647111415863" sfa:b="0.56862747669219971" sfa:a="1"/></sf:SFC3DAreaFillProperty><sf:SFCAreaShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCAreaShowValueLabelProperty><sf:SFCLabelShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-3"/></sf:SFCLabelShadowProperty><sf:SFC2DLineDataPointSymbolProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC2DLineDataPointSymbolProperty><sf:SFC2DPieStrokeProperty><sf:stroke sfa:ID="SFRStroke-33" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-30" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DPieStrokeProperty><sf:SFC2DScatterShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DScatterShadowProperty><sf:SFC2DAreaFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.16862745583057404" sfa:g="0.4117647111415863" sfa:b="0.56862747669219971" sfa:a="1"/></sf:SFC2DAreaFillProperty><sf:SFC2DLineDataPointFillProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:SFC2DLineDataPointFillProperty><sf:SFC3DPieFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.16862745583057404" sfa:g="0.4117647111415863" sfa:b="0.56862747669219971" sfa:a="1"/></sf:SFC3DPieFillProperty><sf:SFC2DLineStrokeProperty><sf:stroke sfa:ID="SFRStroke-34" sf:miter-limit="4" sf:width="4" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.16862745583057404" sfa:g="0.4117647111415863" sfa:b="0.56862747669219971" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-31" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DLineStrokeProperty><sf:SFC2DScatterStrokeProperty><sf:stroke sfa:ID="SFRStroke-35" sf:miter-limit="4" sf:width="4" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.16862745583057404" sfa:g="0.4117647111415863" sfa:b="0.56862747669219971" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-32" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DScatterStrokeProperty><sf:SFC3DSeriesShininessProperty><sf:number sfa:number="0.5" sfa:type="f"/></sf:SFC3DSeriesShininessProperty><sf:SFC2DAreaDataPointSymbolProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFC2DAreaDataPointSymbolProperty><sf:SFC2DAreaUseStrokeColorForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DAreaUseStrokeColorForDataPointFillProperty><sf:SFC3DSeriesEmissiveColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:SFC3DSeriesEmissiveColorProperty><sf:SFC3DTextureTilingProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC3DTextureTilingProperty><sf:SFC2DLineShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DLineShadowProperty><sf:SFCPieSeriesValueParagraphStyleProperty><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-67"/></sf:SFCPieSeriesValueParagraphStyleProperty><sf:SFCStackedBarValueLabelPositionProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCStackedBarValueLabelPositionProperty><sf:SFC2DColumnFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.16862745583057404" sfa:g="0.4117647111415863" sfa:b="0.56862747669219971" sfa:a="1"/></sf:SFC2DColumnFillProperty><sf:SFC3DBarFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.16862745583057404" sfa:g="0.4117647111415863" sfa:b="0.56862747669219971" sfa:a="1"/></sf:SFC3DBarFillProperty><sf:SFC2DBarStrokeProperty><sf:stroke sfa:ID="SFRStroke-36" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-33" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DBarStrokeProperty><sf:SFCLabelOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFCLabelOpacityProperty><sf:SFC2DPieShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DPieShadowProperty><sf:SFCPieShowValueLabelProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFCPieShowValueLabelProperty><sf:SFCPieShowSeriesNameLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCPieShowSeriesNameLabelProperty><sf:SFCLineSeriesValueParagraphStyleProperty><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-70"/></sf:SFCLineSeriesValueParagraphStyleProperty><sf:SFC2DOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC2DOpacityProperty><sf:SFCLineValueLabelPositionProperty><sf:number sfa:number="4" sfa:type="i"/></sf:SFCLineValueLabelPositionProperty><sf:SFCPieValueLabelPositionProperty><sf:number sfa:number="13" sfa:type="i"/></sf:SFCPieValueLabelPositionProperty><sf:SFCLineShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCLineShowValueLabelProperty><sf:SFC2DAreaDataPointFillProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:SFC2DAreaDataPointFillProperty><sf:SFCStackedAreaValueLabelPositionProperty><sf:number sfa:number="10" sfa:type="i"/></sf:SFCStackedAreaValueLabelPositionProperty><sf:SFC2DAreaShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DAreaShadowProperty><sf:SFC3DSeriesSpecularColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.89999997615814209" sfa:g="0.89999997615814209" sfa:b="0.89999997615814209" sfa:a="1"/></sf:SFC3DSeriesSpecularColorProperty><sf:SFC2DScatterDataPointSymbolProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC2DScatterDataPointSymbolProperty><sf:SFC2DBarShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DBarShadowProperty><sf:SFCBarSeriesValueParagraphStyleProperty><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-63"/></sf:SFCBarSeriesValueParagraphStyleProperty><sf:SFC2DScatterDataPointFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.16862745583057404" sfa:g="0.4117647111415863" sfa:b="0.56862747669219971" sfa:a="1"/></sf:SFC2DScatterDataPointFillProperty><sf:SFC2DBarFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.16862745583057404" sfa:g="0.4117647111415863" sfa:b="0.56862747669219971" sfa:a="1"/></sf:SFC2DBarFillProperty><sf:SFCBarShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCBarShowValueLabelProperty><sf:SFC2DAreaStrokeProperty><sf:stroke sfa:ID="SFRStroke-37" sf:miter-limit="4" sf:width="2" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern-ref sfa:IDREF="SFRStrokePattern-15"/></sf:stroke></sf:SFC2DAreaStrokeProperty><sf:SFCAreaValueLabelPositionProperty><sf:number sfa:number="10" sfa:type="i"/></sf:SFCAreaValueLabelPositionProperty><sf:SFC3DPieShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-4"/></sf:SFC3DPieShadowProperty><sf:SFC3DTextureProperty><sf:string sfa:string=""/></sf:SFC3DTextureProperty><sf:SFCAreaSeriesValueParagraphStyleProperty><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-74" sf:ident="Series_1_SFCAreaSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="i"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:SFCAreaSeriesValueParagraphStyleProperty><sf:SFC2DLineUseStrokeColorForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DLineUseStrokeColorForDataPointFillProperty><sf:SFC3DLineFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.16862745583057404" sfa:g="0.4117647111415863" sfa:b="0.56862747669219971" sfa:a="1"/></sf:SFC3DLineFillProperty><sf:SFCPieWedgeExplosionProperty><sf:number sfa:number="0" sfa:type="f"/></sf:SFCPieWedgeExplosionProperty></sf:property-map></sf:chart-series-style><sf:characterstyle sfa:ID="SFWPCharacterStyle-22" sf:name="ulink" sf:ident="character-style-17"><sf:property-map><sf:italic/><sf:fontSize/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="1" sfa:a="1"/></sf:fontColor><sf:atsuFontFeatures/><sf:superscript/><sf:underline><sf:number sfa:number="1" sfa:type="i"/></sf:underline><sf:bold/><sf:tracking/><sf:fontName/><sf:baselineShift/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:ligatures/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-75" sf:name="figure-title" sf:ident="paragraph-style-67"><sf:property-map><sf:fontSize><sf:number sfa:number="13" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent><sf:number sfa:number="28.34646" sfa:type="f"/></sf:rightIndent><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-76" sf:name="itemizedlist4" sf:ident="paragraph-style-97"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-12" sf:parent-ident="list-style-2"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-43"><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/></sf:array></sf:listTextIndents><sf:listLabelGeometries><sf:array sfa:ID="NSArray-44"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-90" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-91" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-92" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-93" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-94" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-95" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-96" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-97" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-98" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-45"><sf:number sfa:number="42.51968" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="54" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="90" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="126" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-46"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-90" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-56" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-91" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-57" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-92" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-58" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-93" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-59" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-94" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-60" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-95" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-61" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-96" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-62" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-97" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-63" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-98" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-64" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-77" sf:name="keyword" sf:ident="paragraph-style-20"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="1" sfa:g="0.80000001192092896" sfa:b="0.40000000596046448" sfa:a="1"/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-23" sf:name="inlineerror" sf:ident="character-style-12"><sf:property-map><sf:italic/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="1" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold/><sf:tracking/><sf:ligatures/><sf:fontName/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:baselineShift/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-78" sf:name="affiliation" sf:ident="paragraph-style-5"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-79" sf:name="warning-title" sf:ident="paragraph-style-61"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-5"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="1" sfa:g="1" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-24" sf:name="surname" sf:ident="character-style-29"><sf:property-map><sf:italic/><sf:fontSize/><sf:fontColor/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:fontName/><sf:baselineShift/><sf:ligatures/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-80" sf:name="bibliodiv-title" sf:ident="paragraph-style-93"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="14.17323" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="14.17323" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-25" sf:name="sgmltag" sf:ident="character-style-22"><sf:property-map><sf:italic/><sf:fontSize/><sf:fontColor/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:fontName><sf:string sfa:string="Courier-Bold"/></sf:fontName><sf:baselineShift/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:ligatures/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-26" sf:name="honorific" sf:ident="character-style-11"><sf:property-map><sf:italic/><sf:fontColor/><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:fontName/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:baselineShift/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-40"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-81" sf:name="Footnote Text" sf:ident="kSFWPFootnoteTextStyleIdentifier"><sf:property-map><sf:fontSize><sf:number sfa:number="10" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="10" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-82" sf:name="preface-title" sf:ident="paragraph-style-40"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-83" sf:ident="SFCCategoryAxisParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-84" sf:ident="Series_2_SFCPieSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment><sf:number sfa:number="2" sfa:type="i"/></sf:alignment><sf:fontSize><sf:number sfa:number="16" sfa:type="f"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-27" sf:name="fax" sf:ident="character-style-8"><sf:property-map><sf:italic/><sf:fontColor/><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold/><sf:tracking/><sf:ligatures/><sf:fontName><sf:string sfa:string="Courier"/></sf:fontName><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:baselineShift/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-15" sf:name="graphic-image-style-default" sf:ident="graphic-image-style-default"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:reflection><sf:null/></sf:reflection><sf:externalTextWrap><sf:external-text-wrap sfa:ID="SFWPExternalTextWrap-8" sf:wrap-style="tight" sf:floating-wrap-enabled="true" sf:direction="both" sf:attachment-wrap-type="aligned" sf:floating-wrap-type="directional" sf:margin="12" sf:alpha-threshold="0.5"/></sf:externalTextWrap><sf:stroke><sf:stroke sfa:ID="SFRStroke-38" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-34" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:null/></sf:fill><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-16" sf:name="graphic-image-style-default 3" sf:ident="graphic-image-style-default-2" sf:parent-ident="graphic-image-style-default"><sf:property-map><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-85" sf:name="xinclude" sf:ident="paragraph-style-85"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.80000001192092896" sfa:g="0.20000000298023224" sfa:b="0.20000000298023224" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.20000000298023224" sfa:g="0.20000000298023224" sfa:b="0.20000000298023224" sfa:a="1"/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-86" sf:name="bibliography-title" sf:ident="paragraph-style-9"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-87" sf:name="simpara" sf:ident="paragraph-style-55"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-88" sf:name="book-title" sf:ident="paragraph-style-3"><sf:property-map><sf:fontSize><sf:number sfa:number="28" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-4"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="24" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-17" sf:name="graphic-movie-style-default" sf:ident="graphic-movie-style-default"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:reflection><sf:null/></sf:reflection><sf:externalTextWrap><sf:external-text-wrap sfa:ID="SFWPExternalTextWrap-9" sf:wrap-style="tight" sf:floating-wrap-enabled="true" sf:direction="both" sf:attachment-wrap-type="aligned" sf:floating-wrap-type="directional" sf:margin="12" sf:alpha-threshold="0.5"/></sf:externalTextWrap><sf:stroke><sf:stroke sfa:ID="SFRStroke-39" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-35" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:null/></sf:fill><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-18" sf:name="graphic-movie-style-default 2" sf:ident="graphic-movie-style-default-1" sf:parent-ident="graphic-movie-style-default"><sf:property-map><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-43"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-89" sf:name="abstract-title" sf:ident="paragraph-style-88"><sf:property-map><sf:fontSize><sf:number sfa:number="15" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-28" sf:name="firstname" sf:ident="character-style-10"><sf:property-map><sf:italic><sf:number sfa:number="1" sfa:type="i"/></sf:italic><sf:fontColor/><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold/><sf:tracking/><sf:ligatures/><sf:fontName/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:baselineShift/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-90" sf:name="note" sf:ident="paragraph-style-31"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-5"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:sectionstyle sfa:ID="SFWPSectionStyle-3" sf:name="Normal" sf:ident="section-style-default"><sf:property-map><sf:sectionLayoutStyle><sf:null/></sf:sectionLayoutStyle><sf:inheritPreviousHF><sf:number sfa:number="1" sfa:type="c"/></sf:inheritPreviousHF><sf:sectionPageNumberStart><sf:number sfa:number="1" sfa:type="i"/></sf:sectionPageNumberStart><sf:pageMasterFirstPageDifferent><sf:number sfa:number="0" sfa:type="c"/></sf:pageMasterFirstPageDifferent><sf:firstPageMaster><sf:pagemaster sfa:ID="SFWPPageMaster-6" sl:header="SFWPDefaultFirstHeaderIdentifier" sl:footer="SFWPDefaultFirstFooterIdentifier"/></sf:firstPageMaster><sf:evenPageMaster><sf:pagemaster sfa:ID="SFWPPageMaster-7" sl:header="SFWPDefaultEvenHeaderIdentifier" sl:footer="SFWPDefaultEvenFooterIdentifier"/></sf:evenPageMaster><sf:startKind><sf:number sfa:number="0" sfa:type="i"/></sf:startKind><sf:pageMasterLeftRightPagesDifferent><sf:number sfa:number="0" sfa:type="c"/></sf:pageMasterLeftRightPagesDifferent><sf:sectionPageNumberKind><sf:number sfa:number="0" sfa:type="i"/></sf:sectionPageNumberKind><sf:oddPageMaster><sf:pagemaster sfa:ID="SFWPPageMaster-8" sl:header="SFWPDefaultOddHeaderIdentifier" sl:footer="SFWPDefaultOddFooterIdentifier"/></sf:oddPageMaster></sf:property-map></sf:sectionstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-29" sf:name="postcode" sf:ident="character-style-27"><sf:property-map><sf:underlineColor><sf:null/></sf:underlineColor><sf:fontColor/><sf:fontSize/><sf:textBackground><sf:null/></sf:textBackground><sf:atsuFontFeatures/><sf:superscript/><sf:underline><sf:number sfa:number="1" sfa:type="i"/></sf:underline><sf:bold/><sf:fontName/><sf:ligatures/><sf:strikethru/><sf:baselineShift/><sf:tracking/><sf:capitalization/><sf:textShadow/><sf:language><sf:string sfa:string="en"/></sf:language><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-91" sf:name="important-title" sf:ident="paragraph-style-26"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-9"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="1" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-92" sf:name="sect4-title" sf:ident="paragraph-style-48"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-93" sf:ident="SFCChartTitleParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:outlineLevel/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC/><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:italic/><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-94" sf:name="example-title" sf:ident="paragraph-style-66"><sf:property-map><sf:fontSize><sf:number sfa:number="13" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent><sf:number sfa:number="28.34646" sfa:type="f"/></sf:rightIndent><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:paragraphstyle><sf:liststyle sfa:ID="SFWPListStyle-13" sf:name="Legal" sf:ident="list-style-4"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-47"><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="32.4" sfa:type="f"/><sf:number sfa:number="43.2" sfa:type="f"/><sf:number sfa:number="52.56" sfa:type="f"/><sf:number sfa:number="62.64" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="82.79999" sfa:type="f"/><sf:number sfa:number="92.16" sfa:type="f"/><sf:number sfa:number="102.96" sfa:type="f"/></sf:array></sf:listTextIndents><sf:listLabelGeometries><sf:array sfa:ID="NSArray-48"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-99" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-100" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-101" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-102" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-103" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-104" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-105" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-106" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-107" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-49"><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="54" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="90" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="126" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-50"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-99" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-65" sf:type="decimal" sf:format="%P%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-100" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-66" sf:type="decimal" sf:format="%P%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-101" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-67" sf:type="decimal" sf:format="%P%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-102" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-68" sf:type="decimal" sf:format="%P%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-103" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-69" sf:type="decimal" sf:format="%P%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-104" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-70" sf:type="decimal" sf:format="%P%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-105" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-71" sf:type="decimal" sf:format="%P%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-106" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-72" sf:type="decimal" sf:format="%P%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-107" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-73" sf:type="decimal" sf:format="%P%L." sf:first="1"/></sf:list-label-typeinfo></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle><sf:graphic-style sfa:ID="SFDGraphicStyle-19" sf:name="graphic-textbox-style-default" sf:ident="graphic-textbox-style-default"><sf:property-map><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:reflection><sf:null/></sf:reflection><sf:externalTextWrap><sf:external-text-wrap sfa:ID="SFWPExternalTextWrap-10" sf:wrap-style="regular" sf:floating-wrap-enabled="true" sf:direction="both" sf:attachment-wrap-type="aligned" sf:floating-wrap-type="directional" sf:margin="12" sf:alpha-threshold="0.5"/></sf:externalTextWrap><sf:stroke><sf:stroke sfa:ID="SFRStroke-40" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-36" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:null/></sf:fill><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-20" sf:name="graphic-textbox-style-default 4" sf:ident="graphic-textbox-style-default-3" sf:parent-ident="graphic-textbox-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:stroke><sf:stroke sfa:ID="SFRStroke-41" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-37" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:fill><sf:null/></sf:fill></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-21" sf:name="graphic-textbox-style-default 3" sf:ident="graphic-textbox-style-default-2" sf:parent-ident="graphic-textbox-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:stroke><sf:stroke sfa:ID="SFRStroke-42" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-38" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:fill><sf:null/></sf:fill></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-22" sf:name="graphic-textbox-style-default 9" sf:ident="graphic-textbox-style-default-8" sf:parent-ident="graphic-textbox-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-23" sf:name="graphic-textbox-style-default 6" sf:ident="graphic-textbox-style-default-5" sf:parent-ident="graphic-textbox-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:stroke><sf:stroke sfa:ID="SFRStroke-43" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-39" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:fill><sf:null/></sf:fill></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-24" sf:name="graphic-textbox-style-default 5" sf:ident="graphic-textbox-style-default-4" sf:parent-ident="graphic-textbox-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:stroke><sf:stroke sfa:ID="SFRStroke-44" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-40" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:fill><sf:null/></sf:fill></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-25" sf:name="graphic-textbox-style-default 8" sf:ident="graphic-textbox-style-default-7" sf:parent-ident="graphic-textbox-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/><sf:liststyle-ref sfa:IDREF="SFWPListStyle-6"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-95" sf:ident="Series_2_SFCAreaSeriesValueParagraphStyleProperty" sf:parent-ident="chart-paragraph-style-default"><sf:property-map><sf:outline/><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:word_underline/><sf:decimalTab/><sf:word_strikethrough/><sf:keepLinesTogether/><sf:spaceAfter/><sf:alignment/><sf:fontSize><sf:number sfa:number="14" sfa:type="i"/></sf:fontSize><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:dropCap/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops/><sf:tocStyle><sf:null/></sf:tocStyle><sf:firstTopicNumber/><sf:outlineLevel/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:superscript/><sf:hyphenate/><sf:underlineColor><sf:null/></sf:underlineColor><sf:hidden/><sf:showInTOC/><sf:kerning/><sf:pageBreakBefore/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:fontColor><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:capitalization/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-26" sf:name="graphic-line-style-default 2" sf:ident="graphic-line-style-default-1" sf:parent-ident="graphic-line-style-default"><sf:property-map><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:characterstyle sfa:ID="SFWPCharacterStyle-30" sf:name="phone" sf:ident="character-style-21"><sf:property-map><sf:underlineColor><sf:null/></sf:underlineColor><sf:fontColor/><sf:fontSize/><sf:textBackground><sf:null/></sf:textBackground><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold/><sf:fontName><sf:string sfa:string="CourierNewPSMT"/></sf:fontName><sf:ligatures/><sf:strikethru/><sf:baselineShift/><sf:tracking/><sf:capitalization/><sf:textShadow/><sf:language><sf:string sfa:string="en"/></sf:language><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-96" sf:name="glossary-title" sf:ident="paragraph-style-24"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-27" sf:name="graphic-image-style-default 2" sf:ident="graphic-image-style-default-1" sf:parent-ident="graphic-image-style-default"><sf:property-map><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:liststyle sfa:ID="SFWPListStyle-14" sf:name="Numbered List" sf:ident="list-style-1"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-51"><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/></sf:array></sf:listTextIndents><sf:listLabelGeometries><sf:array sfa:ID="NSArray-52"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-108" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-109" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-110" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-111" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-112" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-113" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-114" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-115" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-116" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-53"><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="54" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="90" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="126" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-54"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-108" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-74" sf:type="decimal" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-109" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-75" sf:type="decimal" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-110" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-76" sf:type="decimal" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-111" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-77" sf:type="decimal" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-112" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-78" sf:type="decimal" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-113" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-79" sf:type="decimal" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-114" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-80" sf:type="decimal" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-115" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-81" sf:type="decimal" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-116" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-82" sf:type="decimal" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-46"/><sf:characterstyle sfa:ID="SFWPCharacterStyle-31" sf:name="orgname" sf:ident="character-style-26"><sf:property-map><sf:italic/><sf:fontColor/><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:fontName/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:baselineShift/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-97" sf:name="sect4-subtitle" sf:ident="paragraph-style-49"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-98" sf:name="part-title" sf:ident="paragraph-style-86"><sf:property-map><sf:fontSize><sf:number sfa:number="28" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-4"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="24" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-32" sf:name="othername" sf:ident="character-style-20"><sf:property-map><sf:underlineColor><sf:null/></sf:underlineColor><sf:fontColor/><sf:fontSize/><sf:textBackground><sf:null/></sf:textBackground><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold/><sf:fontName/><sf:ligatures/><sf:strikethru/><sf:baselineShift/><sf:tracking/><sf:capitalization/><sf:textShadow/><sf:language><sf:string sfa:string="en"/></sf:language><sf:italic><sf:number sfa:number="1" sfa:type="i"/></sf:italic><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-28" sf:name="graphic-shape-style-default 6" sf:ident="graphic-shape-style-default-5" sf:parent-ident="graphic-shape-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.41568627953529358" sfa:g="0.66274511814117432" sfa:b="0.39215686917304993" sfa:a="1"/></sf:fill></sf:property-map></sf:graphic-style><sf:sectionstyle sfa:ID="SFWPSectionStyle-4" sf:name="Normal 2" sf:ident="section-style-0"><sf:property-map><sf:sectionLayoutStyle><sf:null/></sf:sectionLayoutStyle><sf:inheritPreviousHF><sf:number sfa:number="1" sfa:type="c"/></sf:inheritPreviousHF><sf:sectionPageNumberStart><sf:number sfa:number="1" sfa:type="i"/></sf:sectionPageNumberStart><sf:pageMasterFirstPageDifferent><sf:number sfa:number="0" sfa:type="c"/></sf:pageMasterFirstPageDifferent><sf:firstPageMaster><sf:pagemaster sfa:ID="SFWPPageMaster-9" sl:header="" sl:footer=""/></sf:firstPageMaster><sf:evenPageMaster><sf:pagemaster sfa:ID="SFWPPageMaster-10" sl:header="" sl:footer=""/></sf:evenPageMaster><sf:startKind><sf:number sfa:number="0" sfa:type="i"/></sf:startKind><sf:pageMasterLeftRightPagesDifferent><sf:number sfa:number="0" sfa:type="c"/></sf:pageMasterLeftRightPagesDifferent><sf:sectionPageNumberKind><sf:number sfa:number="0" sfa:type="i"/></sf:sectionPageNumberKind><sf:oddPageMaster><sf:pagemaster sfa:ID="SFWPPageMaster-11" sl:header="" sl:footer=""/></sf:oddPageMaster></sf:property-map></sf:sectionstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-99" sf:name="publisher-address" sf:ident="paragraph-style-21"><sf:property-map><sf:fontSize><sf:number sfa:number="11" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName><sf:string sfa:string="Palatino-Roman"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-100" sf:name="table-title" sf:ident="paragraph-style-52"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-33" sf:name="city" sf:ident="character-style-5"><sf:property-map><sf:italic/><sf:fontColor/><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:fontName/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:baselineShift/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-101" sf:name="releaseinfo" sf:ident="paragraph-style-41"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="1" sfa:g="0.5" sfa:b="0" sfa:a="0.25"/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-102" sf:name="simplesect-subtitle" sf:ident="paragraph-style-57"><sf:property-map><sf:fontSize><sf:number sfa:number="15" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-103" sf:name="blockquote" sf:ident="paragraph-style-11"><sf:property-map><sf:fontSize><sf:number sfa:number="11" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName><sf:string sfa:string="Helvetica-Oblique"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic><sf:number sfa:number="1" sfa:type="c"/></sf:italic><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:cell-style-ref sfa:IDREF="SFTCellStyle-2"/><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-104" sf:name="article-title" sf:ident="paragraph-style-38"><sf:property-map><sf:fontSize><sf:number sfa:number="28" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-4"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="24" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-105" sf:name="note-title" sf:ident="paragraph-style-34"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-5"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:tocstyle sfa:ID="SLTOCParagraphStyle-6" sfa:sfclass="paragraphstyle" sf:name="TOC Heading 4" sf:ident="toc-paragraph-style-4"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:SLTOCPageNumberStyle><sf:null/></sf:SLTOCPageNumberStyle><sf:keepLinesTogether/><sf:listStyle><sf:null/></sf:listStyle><sf:outlineLevel/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:dropCap/><sf:firstTopicNumber/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:SLTOCEntryStyle><sf:null/></sf:SLTOCEntryStyle><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs><sf:tabs sfa:ID="SFWPTabs-7"><sf:tabstop sf:pos="481.61416625976562" sf:align="right"/></sf:tabs></sf:tabs><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:SLTOCEnabledStyles><sf:null/></sf:SLTOCEnabledStyles><sf:SLTOCDisabledStyles><sf:null/></sf:SLTOCDisabledStyles><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:SLTOCShowPageNumber/><sf:keepWithNext/><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="42.51968" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="42.51968" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:tocstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-34" sf:name="state" sf:ident="character-style-32"><sf:property-map><sf:underlineColor><sf:null/></sf:underlineColor><sf:fontColor/><sf:fontSize/><sf:textBackground><sf:null/></sf:textBackground><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:fontName/><sf:ligatures/><sf:strikethru/><sf:baselineShift/><sf:tracking/><sf:capitalization/><sf:textShadow/><sf:language><sf:string sfa:string="en"/></sf:language><sf:italic/><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-29" sf:name="graphic-shape-style-default 5" sf:ident="graphic-shape-style-default-4" sf:parent-ident="graphic-shape-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.41568627953529358" sfa:g="0.66274511814117432" sfa:b="0.39215686917304993" sfa:a="1"/></sf:fill></sf:property-map></sf:graphic-style><sf:layoutstyle sfa:ID="SFWPLayoutStyle-11" sf:name="Normal" sf:ident="layout-style-default"><sf:property-map><sf:verticalAlignment/><sf:layoutParagraphStyle><sf:null/></sf:layoutParagraphStyle><sf:columns/><sf:padding/><sf:layoutMargins/><sf:followingLayoutStyle><sf:null/></sf:followingLayoutStyle><sf:layoutContinuous/></sf:property-map></sf:layoutstyle><sf:layoutstyle sfa:ID="SFWPLayoutStyle-12" sf:ident="graphic-textbox-layout-style-default" sf:parent-ident="layout-style-default"><sf:property-map><sf:verticalAlignment/><sf:layoutParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-32"/></sf:layoutParagraphStyle><sf:columns/><sf:padding/><sf:layoutMargins/><sf:followingLayoutStyle><sf:null/></sf:followingLayoutStyle><sf:layoutContinuous/></sf:property-map></sf:layoutstyle><sf:layoutstyle-ref sfa:IDREF="SFWPLayoutStyle-6"/><sf:layoutstyle sfa:ID="SFWPLayoutStyle-13" sf:ident="graphic-shape-layout-style-default" sf:parent-ident="layout-style-default"><sf:property-map><sf:verticalAlignment/><sf:layoutParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-32"/></sf:layoutParagraphStyle><sf:columns/><sf:padding><sf:padding sfa:ID="SFWPPadding-4" sf:top="8" sf:left="8" sf:bottom="8" sf:right="8"/></sf:padding><sf:layoutMargins/><sf:followingLayoutStyle><sf:null/></sf:followingLayoutStyle><sf:layoutContinuous/></sf:property-map></sf:layoutstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-35" sf:name="street" sf:ident="character-style-33"><sf:property-map><sf:underlineColor><sf:null/></sf:underlineColor><sf:fontColor/><sf:fontSize/><sf:textBackground><sf:null/></sf:textBackground><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold/><sf:fontName/><sf:ligatures/><sf:strikethru/><sf:baselineShift/><sf:tracking/><sf:capitalization/><sf:textShadow/><sf:language><sf:string sfa:string="en"/></sf:language><sf:italic><sf:number sfa:number="1" sfa:type="i"/></sf:italic><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-106" sf:name="bridgehead" sf:ident="paragraph-style-110"><sf:property-map><sf:fontSize><sf:number sfa:number="16" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-107" sf:name="abstract" sf:ident="paragraph-style-87"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic><sf:number sfa:number="1" sfa:type="i"/></sf:italic><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:characterstyle sfa:ID="SFWPCharacterStyle-36" sf:name="emphasis-bold" sf:ident="character-style-15"><sf:property-map><sf:italic/><sf:fontColor/><sf:fontSize/><sf:atsuFontFeatures/><sf:superscript/><sf:underline/><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:fontName/><sf:baselineShift/><sf:strikethru/><sf:capitalization/><sf:textShadow/><sf:language><sf:string sfa:string="en"/></sf:language><sf:underlineColor><sf:null/></sf:underlineColor><sf:strikethruColor><sf:null/></sf:strikethruColor></sf:property-map></sf:characterstyle><sf:liststyle sfa:ID="SFWPListStyle-15" sf:name="Harvard" sf:ident="list-style-7"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-55"><sf:number sfa:number="23.4" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="23.4" sfa:type="f"/><sf:number sfa:number="23.4" sfa:type="f"/><sf:number sfa:number="17.99999" sfa:type="f"/><sf:number sfa:number="23.39999" sfa:type="f"/><sf:number sfa:number="23.39999" sfa:type="f"/></sf:array></sf:listTextIndents><sf:listLabelGeometries><sf:array sfa:ID="NSArray-56"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-117" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-118" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-119" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-120" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-121" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-122" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-123" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-124" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-125" sf:align="left" sf:scale="1" sf:offset="0" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-57"><sf:number sfa:number="0" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="54" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="95.4" sfa:type="f"/><sf:number sfa:number="118.8" sfa:type="f"/><sf:number sfa:number="136.8" sfa:type="f"/><sf:number sfa:number="160.2" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-58"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-117" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-83" sf:type="upper-roman" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-118" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-84" sf:type="upper-alpha" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-119" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-85" sf:type="decimal" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-120" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-86" sf:type="lower-alpha" sf:format="%L)" sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-121" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-87" sf:type="decimal" sf:format="(%L)" sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-122" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-88" sf:type="lower-alpha" sf:format="(%L)" sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-123" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-89" sf:type="lower-roman" sf:format="%L)" sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-124" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-90" sf:type="decimal" sf:format="(%L)" sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-125" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-91" sf:type="lower-alpha" sf:format="(%L)" sf:first="1"/></sf:list-label-typeinfo></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle><sf:graphic-style sfa:ID="SFDGraphicStyle-30" sf:name="graphic-shape-style-default 9" sf:ident="graphic-shape-style-default-8" sf:parent-ident="graphic-shape-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:fill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.41568627953529358" sfa:g="0.66274511814117432" sfa:b="0.39215686917304993" sfa:a="1"/></sf:fill></sf:property-map></sf:graphic-style><sf:chart-series-style sfa:ID="SFCSeriesStyle-5" sf:name="Series_2" sf:ident="Series_2" sf:seriesIndex="2"><sf:property-map><sf:SFC2DPieFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40784314274787903" sfa:g="0.63529413938522339" sfa:b="0.18431372940540314" sfa:a="1"/></sf:SFC2DPieFillProperty><sf:SFCBarValueLabelPositionProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCBarValueLabelPositionProperty><sf:SFC3DColumnFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40784314274787903" sfa:g="0.63529413938522339" sfa:b="0.18431372940540314" sfa:a="1"/></sf:SFC3DColumnFillProperty><sf:SFC2DAreaUseSeriesFillForDataPointFillProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFC2DAreaUseSeriesFillForDataPointFillProperty><sf:SFC2DLineUseSeriesFillForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DLineUseSeriesFillForDataPointFillProperty><sf:SFC3DAreaFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40784314274787903" sfa:g="0.63529413938522339" sfa:b="0.18431372940540314" sfa:a="1"/></sf:SFC3DAreaFillProperty><sf:SFCAreaShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCAreaShowValueLabelProperty><sf:SFCLabelShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-3"/></sf:SFCLabelShadowProperty><sf:SFC2DLineDataPointSymbolProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC2DLineDataPointSymbolProperty><sf:SFC2DPieStrokeProperty><sf:stroke sfa:ID="SFRStroke-45" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-41" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DPieStrokeProperty><sf:SFC2DScatterShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DScatterShadowProperty><sf:SFC2DAreaFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40784314274787903" sfa:g="0.63529413938522339" sfa:b="0.18431372940540314" sfa:a="1"/></sf:SFC2DAreaFillProperty><sf:SFC2DLineDataPointFillProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:SFC2DLineDataPointFillProperty><sf:SFC3DPieFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40784314274787903" sfa:g="0.63529413938522339" sfa:b="0.18431372940540314" sfa:a="1"/></sf:SFC3DPieFillProperty><sf:SFC2DLineStrokeProperty><sf:stroke sfa:ID="SFRStroke-46" sf:miter-limit="4" sf:width="4" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40784314274787903" sfa:g="0.63529413938522339" sfa:b="0.18431372940540314" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-42" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DLineStrokeProperty><sf:SFC2DScatterStrokeProperty><sf:stroke sfa:ID="SFRStroke-47" sf:miter-limit="4" sf:width="4" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40784314274787903" sfa:g="0.63529413938522339" sfa:b="0.18431372940540314" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-43" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DScatterStrokeProperty><sf:SFC3DSeriesShininessProperty><sf:number sfa:number="0.5" sfa:type="f"/></sf:SFC3DSeriesShininessProperty><sf:SFC2DAreaDataPointSymbolProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFC2DAreaDataPointSymbolProperty><sf:SFC2DAreaUseStrokeColorForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DAreaUseStrokeColorForDataPointFillProperty><sf:SFC3DSeriesEmissiveColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:SFC3DSeriesEmissiveColorProperty><sf:SFC3DTextureTilingProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC3DTextureTilingProperty><sf:SFC2DLineShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DLineShadowProperty><sf:SFCPieSeriesValueParagraphStyleProperty><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-84"/></sf:SFCPieSeriesValueParagraphStyleProperty><sf:SFCStackedBarValueLabelPositionProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCStackedBarValueLabelPositionProperty><sf:SFC2DColumnFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40784314274787903" sfa:g="0.63529413938522339" sfa:b="0.18431372940540314" sfa:a="1"/></sf:SFC2DColumnFillProperty><sf:SFC3DBarFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40784314274787903" sfa:g="0.63529413938522339" sfa:b="0.18431372940540314" sfa:a="1"/></sf:SFC3DBarFillProperty><sf:SFC2DBarStrokeProperty><sf:stroke sfa:ID="SFRStroke-48" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-44" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DBarStrokeProperty><sf:SFCLabelOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFCLabelOpacityProperty><sf:SFC2DPieShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DPieShadowProperty><sf:SFCPieShowValueLabelProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFCPieShowValueLabelProperty><sf:SFCPieShowSeriesNameLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCPieShowSeriesNameLabelProperty><sf:SFCLineSeriesValueParagraphStyleProperty><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-64"/></sf:SFCLineSeriesValueParagraphStyleProperty><sf:SFC2DOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC2DOpacityProperty><sf:SFCLineValueLabelPositionProperty><sf:number sfa:number="4" sfa:type="i"/></sf:SFCLineValueLabelPositionProperty><sf:SFCPieValueLabelPositionProperty><sf:number sfa:number="13" sfa:type="i"/></sf:SFCPieValueLabelPositionProperty><sf:SFCLineShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCLineShowValueLabelProperty><sf:SFC2DAreaDataPointFillProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/></sf:SFC2DAreaDataPointFillProperty><sf:SFCStackedAreaValueLabelPositionProperty><sf:number sfa:number="10" sfa:type="i"/></sf:SFCStackedAreaValueLabelPositionProperty><sf:SFC2DAreaShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DAreaShadowProperty><sf:SFC3DSeriesSpecularColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.89999997615814209" sfa:g="0.89999997615814209" sfa:b="0.89999997615814209" sfa:a="1"/></sf:SFC3DSeriesSpecularColorProperty><sf:SFC2DScatterDataPointSymbolProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC2DScatterDataPointSymbolProperty><sf:SFC2DBarShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DBarShadowProperty><sf:SFCBarSeriesValueParagraphStyleProperty><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-66"/></sf:SFCBarSeriesValueParagraphStyleProperty><sf:SFC2DScatterDataPointFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40784314274787903" sfa:g="0.63529413938522339" sfa:b="0.18431372940540314" sfa:a="1"/></sf:SFC2DScatterDataPointFillProperty><sf:SFC2DBarFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40784314274787903" sfa:g="0.63529413938522339" sfa:b="0.18431372940540314" sfa:a="1"/></sf:SFC2DBarFillProperty><sf:SFCBarShowValueLabelProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCBarShowValueLabelProperty><sf:SFC2DAreaStrokeProperty><sf:stroke sfa:ID="SFRStroke-49" sf:miter-limit="4" sf:width="2" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="1" sfa:a="1"/><sf:pattern-ref sfa:IDREF="SFRStrokePattern-15"/></sf:stroke></sf:SFC2DAreaStrokeProperty><sf:SFCAreaValueLabelPositionProperty><sf:number sfa:number="10" sfa:type="i"/></sf:SFCAreaValueLabelPositionProperty><sf:SFC3DPieShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-4"/></sf:SFC3DPieShadowProperty><sf:SFC3DTextureProperty><sf:string sfa:string=""/></sf:SFC3DTextureProperty><sf:SFCAreaSeriesValueParagraphStyleProperty><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-95"/></sf:SFCAreaSeriesValueParagraphStyleProperty><sf:SFC2DLineUseStrokeColorForDataPointFillProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DLineUseStrokeColorForDataPointFillProperty><sf:SFC3DLineFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40784314274787903" sfa:g="0.63529413938522339" sfa:b="0.18431372940540314" sfa:a="1"/></sf:SFC3DLineFillProperty><sf:SFCPieWedgeExplosionProperty><sf:number sfa:number="0" sfa:type="f"/></sf:SFCPieWedgeExplosionProperty></sf:property-map></sf:chart-series-style><sf:liststyle-ref sfa:IDREF="SFWPListStyle-4"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-108" sf:name="variablelist-title" sf:ident="paragraph-style-63"><sf:property-map><sf:fontSize><sf:number sfa:number="14" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="i"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent><sf:number sfa:number="14.18209" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-109" sf:name="blockquote-attribution" sf:ident="paragraph-style-12"><sf:property-map><sf:fontSize><sf:number sfa:number="10" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline><sf:number sfa:number="1" sfa:type="i"/></sf:underline><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:leftIndent><sf:firstLineIndent><sf:number sfa:number="28.35709" sfa:type="f"/></sf:firstLineIndent></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-110" sf:name="sect2-title" sf:ident="paragraph-style-44"><sf:property-map><sf:fontSize><sf:number sfa:number="16" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-111" sf:name="chapter-title" sf:ident="paragraph-style-35"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-22"/><sf:sectionstyle sfa:ID="SFWPSectionStyle-5" sf:name="[Null]" sf:ident="section-style-null"><sf:property-map/></sf:sectionstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-112" sf:name="appendix-title" sf:ident="paragraph-style-4"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:chart-style sfa:ID="SFCChartStyle-0" sf:ident="chart-style-default"><sf:property-map><sf:SFCValueNumberFormatSeparatorProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFCValueNumberFormatSeparatorProperty><sf:SFCValueAxisPercentageProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCValueAxisPercentageProperty><sf:SFC3DShowReflectionsProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC3DShowReflectionsProperty><sf:SFC2DTopBorderOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC2DTopBorderOpacityProperty><sf:SFCCategoryAxisLabelsDepthProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFCCategoryAxisLabelsDepthProperty><sf:SFCNumberOfDefinedSeriesStylesProperty><sf:number sfa:number="6" sfa:type="i"/></sf:SFCNumberOfDefinedSeriesStylesProperty><sf:Series_1><sf:chart-series-style-ref sfa:IDREF="SFCSeriesStyle-4"/></sf:Series_1><sf:SFC2DValueDirectionGridLineStrokeProperty><sf:stroke sfa:ID="SFRStroke-50" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0.66666668653488159" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-45" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DValueDirectionGridLineStrokeProperty><sf:SFC3DSceneTextureTilingProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC3DSceneTextureTilingProperty><sf:SFC3DLightingPackageProperty><sf:string sfa:string="Default"/></sf:SFC3DLightingPackageProperty><sf:SFC3DWallEmissiveColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:SFC3DWallEmissiveColorProperty><sf:SFCAxisLabelsOrientationProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCAxisLabelsOrientationProperty><sf:SFCPieSeriesStartAngleProperty><sf:number sfa:number="0" sfa:type="f"/></sf:SFCPieSeriesStartAngleProperty><sf:SFC3DFloorEmissiveColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:SFC3DFloorEmissiveColorProperty><sf:SFC3DSceneShowTextureProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC3DSceneShowTextureProperty><sf:SFCInitialNumberOfSeriesProperty><sf:number sfa:number="3" sfa:type="i"/></sf:SFCInitialNumberOfSeriesProperty><sf:SFCValueNumberFormatDecimalPlacesProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCValueNumberFormatDecimalPlacesProperty><sf:SFC2DBottomBorderShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DBottomBorderShadowProperty><sf:SFC3DLineChartScaleProperty><sf:vector3d sfa:ID="SFC3DVector-0" sf:x="1.3999999761581421" sf:y="1.3451770544052124" sf:z="1"/></sf:SFC3DLineChartScaleProperty><sf:SFCCategoryAxisShowMinorTickMarksProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCCategoryAxisShowMinorTickMarksProperty><sf:SFC2DChartBackgroundFillProperty><sf:null/></sf:SFC2DChartBackgroundFillProperty><sf:SFC3DLabelThicknessProperty><sf:number sfa:number="0.125" sfa:type="f"/></sf:SFC3DLabelThicknessProperty><sf:SFC2DChartBackgroundOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC2DChartBackgroundOpacityProperty><sf:SFCCategoryAxisMinorTickStrokeProperty><sf:stroke sfa:ID="SFRStroke-51" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-46" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFCCategoryAxisMinorTickStrokeProperty><sf:SFCCategoryAxisParagraphStyleProperty><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-83"/></sf:SFCCategoryAxisParagraphStyleProperty><sf:shadow><sf:shadow sfa:ID="SFRShadow-5" sf:angle="45" sf:offset="2" sf:radius="4" sf:opacity="0.5"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/></sf:shadow></sf:shadow><sf:SFC3DBarLightingPackageProperty><sf:string sfa:string="Default"/></sf:SFC3DBarLightingPackageProperty><sf:SFCShowCategoryAxisLabelsProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFCShowCategoryAxisLabelsProperty><sf:SFC3DInterSetDepthGapProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC3DInterSetDepthGapProperty><sf:SFC2DAntialiasingModeProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFC2DAntialiasingModeProperty><sf:SFC2DBottomBorderOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC2DBottomBorderOpacityProperty><sf:SFC2DShowRightTicksProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DShowRightTicksProperty><sf:SFC3DShadowCameraYProperty><sf:number sfa:number="0.151952" sfa:type="f"/></sf:SFC3DShadowCameraYProperty><sf:SFC2DShowValueDirectionGridLinesProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFC2DShowValueDirectionGridLinesProperty><sf:SFCValueAxisMinimumValueProperty><sf:null/></sf:SFCValueAxisMinimumValueProperty><sf:SFCLegendStrokeProperty><sf:stroke sfa:ID="SFRStroke-52" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-47" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:SFCLegendStrokeProperty><sf:Series_0><sf:chart-series-style-ref sfa:IDREF="SFCSeriesStyle-0"/></sf:Series_0><sf:SFC2DShowCategoryDirectionGridLinesProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DShowCategoryDirectionGridLinesProperty><sf:SFCShowPieLabelAsPercentageProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFCShowPieLabelAsPercentageProperty><sf:SFCSpecularColorProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0.66666668653488159" sfa:a="1"/></sf:SFCSpecularColorProperty><sf:SFC2DRightBorderStrokeProperty><sf:stroke sfa:ID="SFRStroke-53" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-48" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DRightBorderStrokeProperty><sf:SFCDefaultLegendBoundsProperty><sf:value><sfa:rect sfa:x="72" sfa:y="84" sfa:w="468" sfa:h="15"/></sf:value></sf:SFCDefaultLegendBoundsProperty><sf:SFCShowCategoryAxisTitleProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCShowCategoryAxisTitleProperty><sf:SFC2DRightBorderShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DRightBorderShadowProperty><sf:SFC3DReflectionsLevelProperty><sf:number sfa:number="0.1" sfa:type="f"/></sf:SFC3DReflectionsLevelProperty><sf:SFCChartTitleParagraphStyleProperty><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-93"/></sf:SFCChartTitleParagraphStyleProperty><sf:SFCShowChartTitleProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCShowChartTitleProperty><sf:SFC3DBarShadowProperty><sf:shadow sfa:ID="SFRShadow-6" sf:angle="122" sf:offset="0" sf:radius="10" sf:opacity="0.55000001192092896"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/></sf:shadow></sf:SFC3DBarShadowProperty><sf:SFC3DPieChartScaleProperty><sf:vector3d sfa:ID="SFC3DVector-1" sf:x="1.3999999761581421" sf:y="1.3451770544052124" sf:z="1"/></sf:SFC3DPieChartScaleProperty><sf:SFC3DChartRotationProperty><sf:vector3d sfa:ID="SFC3DVector-2" sf:x="18.5" sf:y="-18.125" sf:z="0"/></sf:SFC3DChartRotationProperty><sf:SFCValueAxisParagraphStyleProperty><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-65"/></sf:SFCValueAxisParagraphStyleProperty><sf:SFCCategoryAxisLabelsOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFCCategoryAxisLabelsOpacityProperty><sf:SFCDefaultChartBoundsProperty><sf:value><sfa:rect sfa:x="72" sfa:y="99" sfa:w="467" sfa:h="255"/></sf:value></sf:SFCDefaultChartBoundsProperty><sf:SFC3DLineShadowProperty><sf:shadow sfa:ID="SFRShadow-7" sf:angle="268" sf:offset="3" sf:radius="4" sf:opacity="0.5"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/></sf:shadow></sf:SFC3DLineShadowProperty><sf:SFCDefaultChartTypeProperty><sf:number sfa:number="2" sfa:type="i"/></sf:SFCDefaultChartTypeProperty><sf:SFC3DBarChartScaleProperty><sf:vector3d sfa:ID="SFC3DVector-3" sf:x="1.3999999761581421" sf:y="1.3451770544052124" sf:z="1"/></sf:SFC3DBarChartScaleProperty><sf:SFC3DAreaChartScaleProperty><sf:vector3d sfa:ID="SFC3DVector-4" sf:x="1.3999999761581421" sf:y="1.3451770544052124" sf:z="1"/></sf:SFC3DAreaChartScaleProperty><sf:SFCShininessProperty><sf:number sfa:number="0.5" sfa:type="f"/></sf:SFCShininessProperty><sf:SFCValueNumberFormatPrefixProperty><sf:string sfa:string="None"/></sf:SFCValueNumberFormatPrefixProperty><sf:SFC3DValueDirectionGridLineOpacityProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC3DValueDirectionGridLineOpacityProperty><sf:SFC2DLeftBorderStrokeProperty><sf:stroke sfa:ID="SFRStroke-54" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-49" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DLeftBorderStrokeProperty><sf:SFCValueAxisMinorTickLengthProperty><sf:number sfa:number="4" sfa:type="i"/></sf:SFCValueAxisMinorTickLengthProperty><sf:SFC3DColumnLightingPackageProperty><sf:string sfa:string="Default"/></sf:SFC3DColumnLightingPackageProperty><sf:SFC3DShadowCameraXProperty><sf:number sfa:number="0.48481" sfa:type="f"/></sf:SFC3DShadowCameraXProperty><sf:SFCValueAxisLabelsOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFCValueAxisLabelsOpacityProperty><sf:SFCInterSetGapProperty><sf:number sfa:number="100" sfa:type="i"/></sf:SFCInterSetGapProperty><sf:SFC2DShowBottomTicksProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFC2DShowBottomTicksProperty><sf:SFC3DWallFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.16219078004360199" sfa:g="0.21128451824188232" sfa:b="0.34699451923370361" sfa:a="1"/></sf:SFC3DWallFillProperty><sf:SFCValueAxisTickMarkLocationProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFCValueAxisTickMarkLocationProperty><sf:SFCValueAxisLabelsPositionProperty><sf:number sfa:number="3" sfa:type="i"/></sf:SFCValueAxisLabelsPositionProperty><sf:SFCValueAxisShowMinorTickMarksProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCValueAxisShowMinorTickMarksProperty><sf:SFC3DShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC3DShadowProperty><sf:SFC3DAreaLightingPackageProperty><sf:string sfa:string="Default"/></sf:SFC3DAreaLightingPackageProperty><sf:SFC2DCategoryDirectionGridLineStrokeProperty><sf:stroke sfa:ID="SFRStroke-55" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0.66666668653488159" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-50" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DCategoryDirectionGridLineStrokeProperty><sf:SFC2DBottomBorderStrokeProperty><sf:stroke sfa:ID="SFRStroke-56" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-51" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DBottomBorderStrokeProperty><sf:SFCValueAxisMajorTickLengthProperty><sf:number sfa:number="6" sfa:type="i"/></sf:SFCValueAxisMajorTickLengthProperty><sf:SFC2DShowTopBorderProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DShowTopBorderProperty><sf:SFCCategoryAxisMinorTickLengthProperty><sf:number sfa:number="4" sfa:type="i"/></sf:SFCCategoryAxisMinorTickLengthProperty><sf:SFCHorizontalAxisNumberFormatSeparatorProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFCHorizontalAxisNumberFormatSeparatorProperty><sf:SFCEmissiveColorProperty><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0.66666668653488159" sfa:a="1"/></sf:SFCEmissiveColorProperty><sf:SFCCategoryAxisMajorTickLengthProperty><sf:number sfa:number="6" sfa:type="i"/></sf:SFCCategoryAxisMajorTickLengthProperty><sf:SFCCategoryAxisLabelsPositionProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFCCategoryAxisLabelsPositionProperty><sf:SFC2DCategoryDirectionGridLineOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC2DCategoryDirectionGridLineOpacityProperty><sf:SFC3DFloorDepthProperty><sf:number sfa:number="2" sfa:type="f"/></sf:SFC3DFloorDepthProperty><sf:SFC3DColumnChartScaleProperty><sf:vector3d sfa:ID="SFC3DVector-5" sf:x="1.3999999761581421" sf:y="1.3451770544052124" sf:z="1"/></sf:SFC3DColumnChartScaleProperty><sf:SFC2DTopBorderStrokeProperty><sf:stroke sfa:ID="SFRStroke-57" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-52" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC2DTopBorderStrokeProperty><sf:SFC3DPieLightingPackageProperty><sf:string sfa:string="Default"/></sf:SFC3DPieLightingPackageProperty><sf:Series_3><sf:chart-series-style-ref sfa:IDREF="SFCSeriesStyle-1"/></sf:Series_3><sf:SFCHorizontalAxisShowMinimumValueProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFCHorizontalAxisShowMinimumValueProperty><sf:SFC2DLeftBorderOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC2DLeftBorderOpacityProperty><sf:SFCValueAxisMaximumValueProperty><sf:null/></sf:SFCValueAxisMaximumValueProperty><sf:Series_5><sf:chart-series-style-ref sfa:IDREF="SFCSeriesStyle-2"/></sf:Series_5><sf:SFC3DCategoryDirectionGridLineStrokeProperty><sf:stroke sfa:ID="SFRStroke-58" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0.66666668653488159" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-53" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFC3DCategoryDirectionGridLineStrokeProperty><sf:SFCValueAxisTitleParagraphStyleProperty><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-68"/></sf:SFCValueAxisTitleParagraphStyleProperty><sf:SFC3DSeriesShininessProperty><sf:number sfa:number="0.5" sfa:type="f"/></sf:SFC3DSeriesShininessProperty><sf:SFCValueNumberFormatSuffixProperty><sf:string sfa:string="None"/></sf:SFCValueNumberFormatSuffixProperty><sf:SFCShowValueAxisTitleProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCShowValueAxisTitleProperty><sf:SFCCategoryAxisShowMajorTickMarksProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCCategoryAxisShowMajorTickMarksProperty><sf:SFC2DTopBorderShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DTopBorderShadowProperty><sf:SFC3DCategoryDirectionGridLineOpacityProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFC3DCategoryDirectionGridLineOpacityProperty><sf:Series_2><sf:chart-series-style-ref sfa:IDREF="SFCSeriesStyle-5"/></sf:Series_2><sf:SFCShowCategoryAxisSeriesLabelsProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCShowCategoryAxisSeriesLabelsProperty><sf:SFCCategoryAxisTickMarkLocationProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFCCategoryAxisTickMarkLocationProperty><sf:SFC3DWallSpecularColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40000000596046448" sfa:g="0.40000000596046448" sfa:b="0.40000000596046448" sfa:a="1"/></sf:SFC3DWallSpecularColorProperty><sf:SFC2DValueDirectionGridLineOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC2DValueDirectionGridLineOpacityProperty><sf:SFC2DShowBottomBorderProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFC2DShowBottomBorderProperty><sf:SFCLegendParagraphStyleProperty><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-69"/></sf:SFCLegendParagraphStyleProperty><sf:SFC3DLineLightingPackageProperty><sf:string sfa:string="Default"/></sf:SFC3DLineLightingPackageProperty><sf:SFC3DBarShapeProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFC3DBarShapeProperty><sf:SFCValueAxisLabelsDepthProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFCValueAxisLabelsDepthProperty><sf:SFC3DFloorSpecularColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40000000596046448" sfa:g="0.40000000596046448" sfa:b="0.40000000596046448" sfa:a="1"/></sf:SFC3DFloorSpecularColorProperty><sf:externalTextWrap><sf:external-text-wrap sfa:ID="SFWPExternalTextWrap-11" sf:wrap-style="tight" sf:floating-wrap-enabled="true" sf:inline-wrap-enabled="true" sf:direction="both" sf:attachment-wrap-type="unaligned" sf:floating-wrap-type="directional" sf:margin="12" sf:alpha-threshold="0.5"/></sf:externalTextWrap><sf:SFCCategoryAxisMajorTickStrokeProperty><sf:stroke sfa:ID="SFRStroke-59" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-54" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFCCategoryAxisMajorTickStrokeProperty><sf:SFC3DValueDirectionGridLineStrokeProperty><sf:stroke-ref sfa:IDREF="SFRStroke-50"/></sf:SFC3DValueDirectionGridLineStrokeProperty><sf:SFC3DAreaShadowProperty><sf:shadow sfa:ID="SFRShadow-8" sf:angle="90" sf:offset="1" sf:radius="4" sf:opacity="0.5"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/></sf:shadow></sf:SFC3DAreaShadowProperty><sf:SFC2DShowRightBorderProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DShowRightBorderProperty><sf:SFCValueAxisShowMajorTickMarksProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCValueAxisShowMajorTickMarksProperty><sf:SFC2DLeftBorderShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DLeftBorderShadowProperty><sf:SFCDepthProperty><sf:number sfa:number="1.381429" sfa:type="f"/></sf:SFCDepthProperty><sf:SFC2DValueDirectionGridLineShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DValueDirectionGridLineShadowProperty><sf:SFCValueAxisLogarithmicProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFCValueAxisLogarithmicProperty><sf:SFCInterBarGapProperty><sf:number sfa:number="0" sfa:type="i"/></sf:SFCInterBarGapProperty><sf:SFC3DWallsShininessProperty><sf:number sfa:number="0.8" sfa:type="f"/></sf:SFC3DWallsShininessProperty><sf:Series_4><sf:chart-series-style-ref sfa:IDREF="SFCSeriesStyle-3"/></sf:Series_4><sf:SFCValueAxisNumberOfStepsProperty><sf:number sfa:number="4" sfa:type="i"/></sf:SFCValueAxisNumberOfStepsProperty><sf:SFC2DShowTopTicksProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DShowTopTicksProperty><sf:SFC3DChartScaleProperty><sf:vector3d sfa:ID="SFC3DVector-6" sf:x="1.3999999761581421" sf:y="1.3451770544052124" sf:z="1"/></sf:SFC3DChartScaleProperty><sf:SFCCategoryAxisTitleParagraphStyleProperty><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-71"/></sf:SFCCategoryAxisTitleParagraphStyleProperty><sf:opacity><sf:number sfa:number="1" sfa:type="f"/></sf:opacity><sf:SFC2DCategoryDirectionGridLineShadowProperty><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:SFC2DCategoryDirectionGridLineShadowProperty><sf:SFCValueAxisMajorTickStrokeProperty><sf:stroke sfa:ID="SFRStroke-60" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-55" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFCValueAxisMajorTickStrokeProperty><sf:SFCValueAxisMinorTickStrokeProperty><sf:stroke sfa:ID="SFRStroke-61" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-56" sf:phase="0" sf:type="solid"><sf:pattern/></sf:pattern></sf:stroke></sf:SFCValueAxisMinorTickStrokeProperty><sf:SFCLegendPositionProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFCLegendPositionProperty><sf:SFC3DSceneBackgroundColorProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.80000001192092896" sfa:g="0.80000001192092896" sfa:b="0.80000001192092896" sfa:a="1"/></sf:SFC3DSceneBackgroundColorProperty><sf:SFCLegendOpacityProperty><sf:number sfa:number="1" sfa:type="i"/></sf:SFCLegendOpacityProperty><sf:SFC3DPieShadowProperty><sf:shadow sfa:ID="SFRShadow-9" sf:angle="122" sf:offset="0" sf:radius="10" sf:opacity="0.55000001192092896"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/></sf:shadow></sf:SFC3DPieShadowProperty><sf:SFC2DRightBorderOpacityProperty><sf:number sfa:number="1" sfa:type="f"/></sf:SFC2DRightBorderOpacityProperty><sf:SFC2DCombineLayersProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DCombineLayersProperty><sf:SFCValueAxisShowMinimumValueProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFCValueAxisShowMinimumValueProperty><sf:SFC3DMaterialPackageProperty><sf:string sfa:string="Default"/></sf:SFC3DMaterialPackageProperty><sf:SFCLegendFillProperty><sf:null/></sf:SFCLegendFillProperty><sf:SFC2DShowLeftTicksProperty><sf:number sfa:number="1" sfa:type="c"/></sf:SFC2DShowLeftTicksProperty><sf:SFC2DShowLeftBorderProperty><sf:number sfa:number="0" sfa:type="c"/></sf:SFC2DShowLeftBorderProperty><sf:SFC3DFloorFillProperty><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.29464888572692871" sfa:g="0.36108782887458801" sfa:b="0.54371583461761475" sfa:a="1"/></sf:SFC3DFloorFillProperty></sf:property-map></sf:chart-style><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-113" sf:name="article-subtitle" sf:ident="paragraph-style-6"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-31" sf:name="graphic-movie-style-default 3" sf:ident="graphic-movie-style-default-2" sf:parent-ident="graphic-movie-style-default"><sf:property-map><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow></sf:property-map></sf:graphic-style><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-114" sf:name="para-continue" sf:ident="paragraph-style-39"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-25"/><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-115" sf:name="chapter-titleabbrev" sf:ident="paragraph-style-19"><sf:property-map><sf:fontSize><sf:number sfa:number="16" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-116" sf:name="sect3-title" sf:ident="paragraph-style-46"><sf:property-map><sf:fontSize><sf:number sfa:number="15" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-117" sf:name="book-subtitle" sf:ident="paragraph-style-14"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-118" sf:name="chapter-subtitle" sf:ident="paragraph-style-18"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-119" sf:name="date" sf:ident="paragraph-style-2"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="12" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.40000000596046448" sfa:g="0.80000001192092896" sfa:b="1" sfa:a="1"/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-32" sf:name="graphic-textbox-style-default 2" sf:ident="graphic-textbox-style-default-1" sf:parent-ident="graphic-textbox-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:stroke><sf:stroke sfa:ID="SFRStroke-62" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-57" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:fill><sf:null/></sf:fill></sf:property-map></sf:graphic-style><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-74"/><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-120" sf:name="book-titleabbrev" sf:ident="paragraph-style-15"><sf:property-map><sf:fontSize><sf:number sfa:number="16" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:tocstyle sfa:ID="SLTOCParagraphStyle-7" sfa:sfclass="paragraphstyle" sf:name="TOC Heading 1" sf:ident="toc-paragraph-style-1"><sf:property-map><sf:fontSize><sf:number sfa:number="18" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter><sf:number sfa:number="3" sfa:type="f"/></sf:spaceAfter><sf:alignment/><sf:SLTOCPageNumberStyle><sf:null/></sf:SLTOCPageNumberStyle><sf:keepLinesTogether/><sf:listStyle><sf:null/></sf:listStyle><sf:outlineLevel/><sf:underline/><sf:underlineWidth/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:dropCap/><sf:firstTopicNumber/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0" sfa:g="0" sfa:b="0" sfa:a="1"/></sf:fontColor><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:SLTOCEntryStyle><sf:null/></sf:SLTOCEntryStyle><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs><sf:tabs sfa:ID="SFWPTabs-8"><sf:tabstop sf:pos="481.61416625976562" sf:align="right"/></sf:tabs></sf:tabs><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:SLTOCEnabledStyles><sf:null/></sf:SLTOCEnabledStyles><sf:SLTOCDisabledStyles><sf:null/></sf:SLTOCDisabledStyles><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:SLTOCShowPageNumber/><sf:keepWithNext/><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:tocstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-121" sf:name="article-titleabbrev" sf:ident="paragraph-style-7"><sf:property-map><sf:fontSize><sf:number sfa:number="16" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-122" sf:name="orderedlist4" sf:ident="paragraph-style-102"><sf:property-map><sf:fontSize/><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle sfa:ID="SFWPListStyle-16" sf:parent-ident="list-style-2"><sf:property-map><sf:listTextIndents><sf:array sfa:ID="NSArray-59"><sf:number sfa:number="14.17323" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/><sf:number sfa:number="9" sfa:type="f"/></sf:array></sf:listTextIndents><sf:listLabelGeometries><sf:array sfa:ID="NSArray-60"><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-126" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-127" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-128" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-129" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-130" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-131" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-132" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-133" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/><sf:list-label-geometry sfa:ID="SFWPListLabelGeometry-134" sf:align="left" sf:scale="1" sf:offset="-1" sf:scale-with-text="true"/></sf:array></sf:listLabelGeometries><sf:listLabelIndents><sf:array sfa:ID="NSArray-61"><sf:number sfa:number="42.51968" sfa:type="f"/><sf:number sfa:number="18" sfa:type="f"/><sf:number sfa:number="36" sfa:type="f"/><sf:number sfa:number="54" sfa:type="f"/><sf:number sfa:number="72" sfa:type="f"/><sf:number sfa:number="90" sfa:type="f"/><sf:number sfa:number="108" sfa:type="f"/><sf:number sfa:number="126" sfa:type="f"/><sf:number sfa:number="144" sfa:type="f"/></sf:array></sf:listLabelIndents><sf:listLabelTypes><sf:array sfa:ID="NSArray-62"><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-126" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-92" sf:type="lower-roman" sf:format="%L." sf:first="1"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-127" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-93" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-128" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-94" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-129" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-95" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-130" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-96" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-131" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-97" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-132" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-98" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-133" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-99" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo><sf:list-label-typeinfo sfa:ID="SFWPListLabelTypeInfo-134" sf:type="text"><sf:text-label sfa:ID="SFWPTextLabelFormat-100" sf:type="bullet" sf:format="&#x2022;" sf:first="0"/></sf:list-label-typeinfo></sf:array></sf:listLabelTypes></sf:property-map></sf:liststyle></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:underlineWidth/><sf:dropCap/><sf:fontName/><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold/><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:null/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore/><sf:keepWithNext/><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle><sf:graphic-style sfa:ID="SFDGraphicStyle-33" sf:name="graphic-shape-style-default 10" sf:ident="graphic-shape-style-default-9" sf:parent-ident="graphic-shape-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:shadow><sf:shadow-ref sfa:IDREF="SFRShadow-0"/></sf:shadow><sf:fill><sf:color xsi:type="sfa:calibrated-rgb-color-type" sfa:r="0.41568627953529358" sfa:g="0.66274511814117432" sfa:b="0.39215686917304993" sfa:a="1"/></sf:fill></sf:property-map></sf:graphic-style><sf:graphic-style sfa:ID="SFDGraphicStyle-34" sf:name="graphic-textbox-style-default 7" sf:ident="graphic-textbox-style-default-6" sf:parent-ident="graphic-textbox-style-default"><sf:property-map><sf:layoutStyle><sf:null/></sf:layoutStyle><sf:stroke><sf:stroke sfa:ID="SFRStroke-63" sf:miter-limit="4" sf:width="1" sf:cap="butt" sf:join="miter"><sf:color xsi:type="sfa:calibrated-white-color-type" sfa:w="0" sfa:a="1"/><sf:pattern sfa:ID="SFRStrokePattern-58" sf:phase="0" sf:type="empty"><sf:pattern/></sf:pattern></sf:stroke></sf:stroke><sf:fill><sf:null/></sf:fill></sf:property-map></sf:graphic-style><sf:paragraphstyle sfa:ID="SFWPParagraphStyle-123" sf:name="simplesect-title" sf:ident="paragraph-style-56"><sf:property-map><sf:fontSize><sf:number sfa:number="16" sfa:type="f"/></sf:fontSize><sf:word_strikethrough/><sf:spaceAfter/><sf:alignment/><sf:keepLinesTogether/><sf:listStyle><sf:liststyle-ref sfa:IDREF="SFWPListStyle-2"/></sf:listStyle><sf:outlineLevel/><sf:firstTopicNumber/><sf:underline/><sf:defaultTabStops><sf:number sfa:number="28.34646" sfa:type="f"/></sf:defaultTabStops><sf:tocStyle><sf:tocstyle-ref sfa:IDREF="SLTOCParagraphStyle-3"/></sf:tocStyle><sf:dropCap/><sf:underlineWidth/><sf:fontName><sf:string sfa:string="Helvetica-Bold"/></sf:fontName><sf:strikethru/><sf:baselineShift/><sf:lineSpacing/><sf:textShadow/><sf:underlineColor><sf:null/></sf:underlineColor><sf:showInTOC><sf:number sfa:number="1" sfa:type="c"/></sf:showInTOC><sf:kerning/><sf:strikethruWidth/><sf:fontColor/><sf:textBackground><sf:null/></sf:textBackground><sf:paragraphRuleWidth/><sf:paragraphStroke><sf:null/></sf:paragraphStroke><sf:bold><sf:number sfa:number="1" sfa:type="c"/></sf:bold><sf:tracking/><sf:ligatures/><sf:language><sf:null/></sf:language><sf:followingParagraphStyle><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-7"/></sf:followingParagraphStyle><sf:outline/><sf:strikethruColor><sf:null/></sf:strikethruColor><sf:italic/><sf:word_underline/><sf:widowControl/><sf:rightIndent/><sf:atsuFontFeatures/><sf:tabs/><sf:superscript/><sf:paragraphBorderType/><sf:hyphenate/><sf:hidden/><sf:pageBreakBefore/><sf:paragraphFill><sf:null/></sf:paragraphFill><sf:spaceBefore><sf:number sfa:number="12" sfa:type="f"/></sf:spaceBefore><sf:keepWithNext><sf:number sfa:number="1" sfa:type="c"/></sf:keepWithNext><sf:outlineColor><sf:null/></sf:outlineColor><sf:paragraphRuleOffset/><sf:capitalization/><sf:leftIndent/><sf:firstLineIndent/></sf:property-map></sf:paragraphstyle></sf:styles><sf:anon-styles><sf:layoutstyle-ref sfa:IDREF="SFWPLayoutStyle-7"/><sf:layoutstyle-ref sfa:IDREF="SFWPLayoutStyle-9"/><sf:liststyle-ref sfa:IDREF="SFWPListStyle-16"/><sf:liststyle-ref sfa:IDREF="SFWPListStyle-9"/><sf:liststyle-ref sfa:IDREF="SFWPListStyle-12"/><sf:liststyle-ref sfa:IDREF="SFWPListStyle-10"/><sf:liststyle-ref sfa:IDREF="SFWPListStyle-3"/><sf:layoutstyle-ref sfa:IDREF="SFWPLayoutStyle-5"/><sf:liststyle-ref sfa:IDREF="SFWPListStyle-7"/><sf:characterstyle-ref sfa:IDREF="SFWPCharacterStyle-4"/><sf:liststyle-ref sfa:IDREF="SFWPListStyle-11"/><sf:liststyle-ref sfa:IDREF="SFWPListStyle-8"/><sf:layoutstyle-ref sfa:IDREF="SFWPLayoutStyle-8"/><sf:paragraphstyle-ref sfa:IDREF="SFWPParagraphStyle-13"/><sf:liststyle-ref sfa:IDREF="SFWPListStyle-5"/></sf:anon-styles></sl:stylesheet><sf:calc-engine sfa:ID="SFTCalculationEngine-0"/><sf:headers><sf:header sf:name="SFWPDefaultEvenHeaderIdentifier"><sf:text-storage sfa:ID="SFWPStorage-1" sf:kind="header"><sf:stylesheet-ref sfa:IDREF="SFSStylesheet-1"/><sf:text-body><sf:p sf:style="paragraph-style-37"/></sf:text-body></sf:text-storage></sf:header><sf:header sf:name="SFWPDefaultOddHeaderIdentifier"><sf:text-storage sfa:ID="SFWPStorage-2" sf:kind="header"><sf:stylesheet-ref sfa:IDREF="SFSStylesheet-1"/><sf:text-body><sf:p sf:style="paragraph-style-37"/></sf:text-body></sf:text-storage></sf:header><sf:header sf:name="SFWPDefaultFirstHeaderIdentifier"><sf:text-storage sfa:ID="SFWPStorage-3" sf:kind="header"><sf:stylesheet-ref sfa:IDREF="SFSStylesheet-1"/><sf:text-body><sf:p sf:style="paragraph-style-37"/></sf:text-body></sf:text-storage></sf:header></sf:headers><sf:footers><sf:footer sf:name="SFWPDefaultEvenFooterIdentifier"><sf:text-storage sfa:ID="SFWPStorage-4" sf:kind="header"><sf:stylesheet-ref sfa:IDREF="SFSStylesheet-1"/><sf:text-body><sf:p sf:style="paragraph-style-37"/></sf:text-body></sf:text-storage></sf:footer><sf:footer sf:name="SFWPDefaultOddFooterIdentifier"><sf:text-storage sfa:ID="SFWPStorage-5" sf:kind="header"><sf:stylesheet-ref sfa:IDREF="SFSStylesheet-1"/><sf:text-body><sf:p sf:style="paragraph-style-37"/></sf:text-body></sf:text-storage></sf:footer><sf:footer sf:name="SFWPDefaultFirstFooterIdentifier"><sf:text-storage sfa:ID="SFWPStorage-6" sf:kind="header"><sf:stylesheet-ref sfa:IDREF="SFSStylesheet-1"/><sf:text-body><sf:p sf:style="paragraph-style-37"/></sf:text-body></sf:text-storage></sf:footer></sf:footers><sf:text-storage sf:kind="body" sfa:ID="SFWPStorage-7"><sf:stylesheet-ref sfa:IDREF="SFSStylesheet-1"/><sf:text-body><sf:page-start sf:page-index="0"/><sf:container-hint sf:page-index="0" sf:cindex="0" sf:sindex="0" sf:lindex="0" sf:frame-x="56.692913055419922" sf:frame-y="57" sf:frame-w="481.61416625976562" sf:frame-h="714" sf:anchor-loc="0"/><sf:section sf:name="Chapter 1" sf:style="section-style-0"><sf:layout sf:style="layout-style-20"><sf:p sf:style="paragraph-style-38">Document Template<sf:br/></sf:p><sf:p sf:style="paragraph-style-32"><sf:br/></sf:p><sf:p sf:style="paragraph-style-32" sf:restart-list="true">Insert content here.</sf:p></sf:layout></sf:section><sf:insertion-point/></sf:text-body></sf:text-storage><sl:window-configs sl:layout-version="5"><sl:window-config sl:frame="31 50 743 828 0 0 1440 878 " sl:show-ruler="true" sl:show-sidebar="true" sl:page-scale="1.25" sl:sidebar-paragraph-pct="0.5" sl:sidebar-character-pct="0.5" sl:sidebar-list-pct="0"><sl:selection><sf:wp-selection sfa:ID="SLSelectionObjectWP-0"><sf:text-storage-ref sfa:IDREF="SFWPStorage-7"/></sf:wp-selection></sl:selection></sl:window-config></sl:window-configs></sl:document>
diff --git a/applications/content/template/docbook/roundtrip/template.dot b/applications/content/template/docbook/roundtrip/template.dot
new file mode 100644
index 0000000..b26ec56
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/template.dot
Binary files differ
diff --git a/applications/content/template/docbook/roundtrip/template.xml b/applications/content/template/docbook/roundtrip/template.xml
new file mode 100644
index 0000000..e36a7df
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/template.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<?mso-application progid="Word.Document"?>
+<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2" xmlns:ns0="http://schemas.openxmlformats.org/markup-compatibility/2006" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve"><w:ignoreElements w:val="http://schemas.microsoft.com/office/word/2003/wordml/sp2"/><o:DocumentProperties><o:Title>This document left intentionally blank</o:Title><o:Author>Steve Ball</o:Author><o:LastAuthor>Steve Ball</o:LastAuthor><o:Revision>15</o:Revision><o:TotalTime>10470</o:TotalTime><o:Created>2007-08-21T22:03:00Z</o:Created><o:LastSaved>2008-10-08T23:57:00Z</o:LastSaved><o:Pages>1</o:Pages><o:Words>7</o:Words><o:Characters>45</o:Characters><o:Company>Explain</o:Company><o:Lines>1</o:Lines><o:Paragraphs>1</o:Paragraphs><o:CharactersWithSpaces>51</o:CharactersWithSpaces><o:Version>11.0000</o:Version></o:DocumentProperties><w:fonts><w:defaultFonts w:ascii="Times New Roman" w:fareast="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman"/><w:font w:name="Wingdings"><w:panose-1 w:val="05000000000000000000"/><w:charset w:val="02"/><w:family w:val="Auto"/><w:pitch w:val="variable"/><w:sig w:usb-0="00000000" w:usb-1="10000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000" w:csb-1="00000000"/></w:font><w:font w:name="Arial Narrow"><w:panose-1 w:val="020B0606020202030204"/><w:charset w:val="00"/><w:family w:val="Swiss"/><w:pitch w:val="variable"/><w:sig w:usb-0="00000287" w:usb-1="00000800" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="0000009F" w:csb-1="00000000"/></w:font><w:font w:name="Lucida Sans Unicode"><w:panose-1 w:val="020B0602030504020204"/><w:charset w:val="00"/><w:family w:val="Swiss"/><w:pitch w:val="variable"/><w:sig w:usb-0="80001AFF" w:usb-1="0000396B" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="0000003F" w:csb-1="00000000"/></w:font><w:font w:name="Palatino"><w:panose-1 w:val="00000000000000000000"/><w:charset w:val="00"/><w:family w:val="Roman"/><w:notTrueType/><w:pitch w:val="variable"/><w:sig w:usb-0="00000003" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="00000001" w:csb-1="00000000"/></w:font><w:font w:name="Monaco"><w:panose-1 w:val="00000000000000000000"/><w:charset w:val="00"/><w:family w:val="Modern"/><w:notTrueType/><w:pitch w:val="fixed"/><w:sig w:usb-0="00000003" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="00000001" w:csb-1="00000000"/></w:font></w:fonts><w:lists><w:listDef w:listDefId="0"><w:lsid w:val="06B32B68"/><w:plt w:val="HybridMultilevel"/><w:tmpl w:val="BA94520E"/><w:lvl w:ilvl="0" w:tplc="43580F94"><w:start w:val="1"/><w:nfc w:val="23"/><w:pStyle w:val="itemizedlist1"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="1" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="2" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="3" w:tplc="04090001" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="4" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3600"/></w:tabs><w:ind w:left="3600" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="5" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="4320"/></w:tabs><w:ind w:left="4320" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="6" w:tplc="04090001" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5040"/></w:tabs><w:ind w:left="5040" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="7" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5760"/></w:tabs><w:ind w:left="5760" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="8" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="6480"/></w:tabs><w:ind w:left="6480" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl></w:listDef><w:listDef w:listDefId="1"><w:lsid w:val="08CF1663"/><w:plt w:val="Multilevel"/><w:tmpl w:val="0409001D"/><w:lvl w:ilvl="0"><w:start w:val="1"/><w:lvlText w:val="%1)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="360"/></w:tabs><w:ind w:left="360" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="1"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1080"/></w:tabs><w:ind w:left="1080" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="3"><w:start w:val="1"/><w:lvlText w:val="(%4)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="(%5)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1800"/></w:tabs><w:ind w:left="1800" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="(%6)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="6"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2520"/></w:tabs><w:ind w:left="2520" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3240"/></w:tabs><w:ind w:left="3240" w:hanging="360"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="2"><w:lsid w:val="10346111"/><w:plt w:val="HybridMultilevel"/><w:tmpl w:val="4A38D8EA"/><w:lvl w:ilvl="0" w:tplc="BD40B0B8"><w:start w:val="1"/><w:nfc w:val="23"/><w:pStyle w:val="itemizedlist3"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="1" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="2" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="3" w:tplc="04090001" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="4" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3600"/></w:tabs><w:ind w:left="3600" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="5" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="4320"/></w:tabs><w:ind w:left="4320" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="6" w:tplc="04090001" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5040"/></w:tabs><w:ind w:left="5040" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="7" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5760"/></w:tabs><w:ind w:left="5760" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="8" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="6480"/></w:tabs><w:ind w:left="6480" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl></w:listDef><w:listDef w:listDefId="3"><w:lsid w:val="121A2880"/><w:plt w:val="Multilevel"/><w:tmpl w:val="0409001D"/><w:lvl w:ilvl="0"><w:start w:val="1"/><w:lvlText w:val="%1)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="360"/></w:tabs><w:ind w:left="360" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="1"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1080"/></w:tabs><w:ind w:left="1080" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="3"><w:start w:val="1"/><w:lvlText w:val="(%4)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="(%5)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1800"/></w:tabs><w:ind w:left="1800" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="(%6)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="6"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2520"/></w:tabs><w:ind w:left="2520" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3240"/></w:tabs><w:ind w:left="3240" w:hanging="360"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="4"><w:lsid w:val="1341553B"/><w:plt w:val="Multilevel"/><w:tmpl w:val="0409001D"/><w:lvl w:ilvl="0"><w:start w:val="1"/><w:lvlText w:val="%1)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="360"/></w:tabs><w:ind w:left="360" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="1"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1080"/></w:tabs><w:ind w:left="1080" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="3"><w:start w:val="1"/><w:lvlText w:val="(%4)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="(%5)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1800"/></w:tabs><w:ind w:left="1800" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="(%6)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="6"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2520"/></w:tabs><w:ind w:left="2520" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3240"/></w:tabs><w:ind w:left="3240" w:hanging="360"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="5"><w:lsid w:val="38E8493E"/><w:plt w:val="HybridMultilevel"/><w:tmpl w:val="17E4C930"/><w:lvl w:ilvl="0" w:tplc="2F90EBE6"><w:start w:val="1"/><w:nfc w:val="23"/><w:pStyle w:val="note"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="1" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="2" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="3" w:tplc="04090001" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="4" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3600"/></w:tabs><w:ind w:left="3600" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="5" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="4320"/></w:tabs><w:ind w:left="4320" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="6" w:tplc="04090001" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5040"/></w:tabs><w:ind w:left="5040" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="7" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5760"/></w:tabs><w:ind w:left="5760" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="8" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="6480"/></w:tabs><w:ind w:left="6480" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl></w:listDef><w:listDef w:listDefId="6"><w:lsid w:val="3FD63D4B"/><w:plt w:val="HybridMultilevel"/><w:tmpl w:val="49AE2440"/><w:lvl w:ilvl="0" w:tplc="0C405940"><w:start w:val="1"/><w:pStyle w:val="orderedlist4"/><w:lvlText w:val="%1)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="1" w:tplc="04090019" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2" w:tplc="0409001B" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3."/><w:lvlJc w:val="right"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="180"/></w:pPr></w:lvl><w:lvl w:ilvl="3" w:tplc="0409000F" w:tentative="on"><w:start w:val="1"/><w:lvlText w:val="%4."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4" w:tplc="04090019" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%5."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3600"/></w:tabs><w:ind w:left="3600" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5" w:tplc="0409001B" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%6."/><w:lvlJc w:val="right"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="4320"/></w:tabs><w:ind w:left="4320" w:hanging="180"/></w:pPr></w:lvl><w:lvl w:ilvl="6" w:tplc="0409000F" w:tentative="on"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5040"/></w:tabs><w:ind w:left="5040" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7" w:tplc="04090019" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5760"/></w:tabs><w:ind w:left="5760" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8" w:tplc="0409001B" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="right"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="6480"/></w:tabs><w:ind w:left="6480" w:hanging="180"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="7"><w:lsid w:val="4576760C"/><w:plt w:val="Multilevel"/><w:tmpl w:val="0409001D"/><w:lvl w:ilvl="0"><w:start w:val="1"/><w:lvlText w:val="%1)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="360"/></w:tabs><w:ind w:left="360" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="1"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1080"/></w:tabs><w:ind w:left="1080" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="3"><w:start w:val="1"/><w:lvlText w:val="(%4)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="(%5)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1800"/></w:tabs><w:ind w:left="1800" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="(%6)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="6"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2520"/></w:tabs><w:ind w:left="2520" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3240"/></w:tabs><w:ind w:left="3240" w:hanging="360"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="8"><w:lsid w:val="4AE86026"/><w:plt w:val="HybridMultilevel"/><w:tmpl w:val="99E0A2DA"/><w:lvl w:ilvl="0" w:tplc="F4F29E32"><w:start w:val="1"/><w:nfc w:val="23"/><w:pStyle w:val="itemizedlist4"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="1" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="2" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="3" w:tplc="04090001" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="4" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3600"/></w:tabs><w:ind w:left="3600" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="5" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="4320"/></w:tabs><w:ind w:left="4320" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="6" w:tplc="04090001" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5040"/></w:tabs><w:ind w:left="5040" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="7" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5760"/></w:tabs><w:ind w:left="5760" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="8" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="6480"/></w:tabs><w:ind w:left="6480" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl></w:listDef><w:listDef w:listDefId="9"><w:lsid w:val="4BD72CD9"/><w:plt w:val="Multilevel"/><w:tmpl w:val="0409001D"/><w:lvl w:ilvl="0"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="360"/></w:tabs><w:ind w:left="360" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/><w:color w:val="auto"/></w:rPr></w:lvl><w:lvl w:ilvl="1"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1080"/></w:tabs><w:ind w:left="1080" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="3"><w:start w:val="1"/><w:lvlText w:val="(%4)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="(%5)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1800"/></w:tabs><w:ind w:left="1800" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="(%6)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="6"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2520"/></w:tabs><w:ind w:left="2520" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3240"/></w:tabs><w:ind w:left="3240" w:hanging="360"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="10"><w:lsid w:val="50B87542"/><w:plt w:val="Multilevel"/><w:tmpl w:val="0409001D"/><w:lvl w:ilvl="0"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="360"/></w:tabs><w:ind w:left="360" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/><w:color w:val="auto"/></w:rPr></w:lvl><w:lvl w:ilvl="1"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1080"/></w:tabs><w:ind w:left="1080" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="3"><w:start w:val="1"/><w:lvlText w:val="(%4)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="(%5)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1800"/></w:tabs><w:ind w:left="1800" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="(%6)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="6"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2520"/></w:tabs><w:ind w:left="2520" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3240"/></w:tabs><w:ind w:left="3240" w:hanging="360"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="11"><w:lsid w:val="5570737B"/><w:plt w:val="Multilevel"/><w:tmpl w:val="0409001D"/><w:lvl w:ilvl="0"><w:start w:val="1"/><w:lvlText w:val="%1)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="360"/></w:tabs><w:ind w:left="360" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="1"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1080"/></w:tabs><w:ind w:left="1080" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="3"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="(%4)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="(%5)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1800"/></w:tabs><w:ind w:left="1800" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="(%6)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="6"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2520"/></w:tabs><w:ind w:left="2520" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3240"/></w:tabs><w:ind w:left="3240" w:hanging="360"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="12"><w:lsid w:val="59A72500"/><w:plt w:val="Multilevel"/><w:tmpl w:val="0409001D"/><w:lvl w:ilvl="0"><w:start w:val="1"/><w:lvlText w:val="%1)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="360"/></w:tabs><w:ind w:left="360" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="1"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1080"/></w:tabs><w:ind w:left="1080" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="3"><w:start w:val="1"/><w:lvlText w:val="(%4)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="(%5)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1800"/></w:tabs><w:ind w:left="1800" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="(%6)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="6"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2520"/></w:tabs><w:ind w:left="2520" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3240"/></w:tabs><w:ind w:left="3240" w:hanging="360"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="13"><w:lsid w:val="5F8E0F88"/><w:plt w:val="Multilevel"/><w:tmpl w:val="0409001D"/><w:lvl w:ilvl="0"><w:start w:val="1"/><w:lvlText w:val="%1)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="360"/></w:tabs><w:ind w:left="360" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="1"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/><w:color w:val="auto"/></w:rPr></w:lvl><w:lvl w:ilvl="2"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1080"/></w:tabs><w:ind w:left="1080" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="3"><w:start w:val="1"/><w:lvlText w:val="(%4)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="(%5)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1800"/></w:tabs><w:ind w:left="1800" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="(%6)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="6"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2520"/></w:tabs><w:ind w:left="2520" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3240"/></w:tabs><w:ind w:left="3240" w:hanging="360"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="14"><w:lsid w:val="63A74F9B"/><w:plt w:val="HybridMultilevel"/><w:tmpl w:val="4BA09C26"/><w:lvl w:ilvl="0" w:tplc="069ABFBE"><w:start w:val="1"/><w:lvlText w:val="%1."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="1" w:tplc="04090019" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2" w:tplc="0409001B" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3."/><w:lvlJc w:val="right"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="180"/></w:pPr></w:lvl><w:lvl w:ilvl="3" w:tplc="0409000F" w:tentative="on"><w:start w:val="1"/><w:lvlText w:val="%4."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4" w:tplc="04090019" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%5."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3600"/></w:tabs><w:ind w:left="3600" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5" w:tplc="0409001B" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%6."/><w:lvlJc w:val="right"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="4320"/></w:tabs><w:ind w:left="4320" w:hanging="180"/></w:pPr></w:lvl><w:lvl w:ilvl="6" w:tplc="0409000F" w:tentative="on"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5040"/></w:tabs><w:ind w:left="5040" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7" w:tplc="04090019" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5760"/></w:tabs><w:ind w:left="5760" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8" w:tplc="0409001B" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="right"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="6480"/></w:tabs><w:ind w:left="6480" w:hanging="180"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="15"><w:lsid w:val="64590623"/><w:plt w:val="HybridMultilevel"/><w:tmpl w:val="FF22825E"/><w:lvl w:ilvl="0" w:tplc="D1DEF1CE"><w:start w:val="1"/><w:nfc w:val="1"/><w:pStyle w:val="orderedlist3"/><w:lvlText w:val="%1."/><w:lvlJc w:val="right"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1800"/></w:tabs><w:ind w:left="1800" w:hanging="180"/></w:pPr></w:lvl><w:lvl w:ilvl="1" w:tplc="04090019" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2520"/></w:tabs><w:ind w:left="2520" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2" w:tplc="0409001B" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3."/><w:lvlJc w:val="right"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3240"/></w:tabs><w:ind w:left="3240" w:hanging="180"/></w:pPr></w:lvl><w:lvl w:ilvl="3" w:tplc="0409000F" w:tentative="on"><w:start w:val="1"/><w:lvlText w:val="%4."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3960"/></w:tabs><w:ind w:left="3960" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4" w:tplc="04090019" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%5."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="4680"/></w:tabs><w:ind w:left="4680" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5" w:tplc="0409001B" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%6."/><w:lvlJc w:val="right"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5400"/></w:tabs><w:ind w:left="5400" w:hanging="180"/></w:pPr></w:lvl><w:lvl w:ilvl="6" w:tplc="0409000F" w:tentative="on"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="6120"/></w:tabs><w:ind w:left="6120" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7" w:tplc="04090019" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="6840"/></w:tabs><w:ind w:left="6840" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8" w:tplc="0409001B" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="right"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="7560"/></w:tabs><w:ind w:left="7560" w:hanging="180"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="16"><w:lsid w:val="69727D75"/><w:plt w:val="Multilevel"/><w:tmpl w:val="0409001D"/><w:lvl w:ilvl="0"><w:start w:val="1"/><w:lvlText w:val="%1)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="360"/></w:tabs><w:ind w:left="360" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="1"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1080"/></w:tabs><w:ind w:left="1080" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="3"><w:start w:val="1"/><w:lvlText w:val="(%4)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="(%5)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1800"/></w:tabs><w:ind w:left="1800" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="(%6)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="6"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2520"/></w:tabs><w:ind w:left="2520" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3240"/></w:tabs><w:ind w:left="3240" w:hanging="360"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="17"><w:lsid w:val="7375110D"/><w:plt w:val="Multilevel"/><w:tmpl w:val="0409001D"/><w:lvl w:ilvl="0"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="360"/></w:tabs><w:ind w:left="360" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/><w:color w:val="auto"/></w:rPr></w:lvl><w:lvl w:ilvl="1"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1080"/></w:tabs><w:ind w:left="1080" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="3"><w:start w:val="1"/><w:lvlText w:val="(%4)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="(%5)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1800"/></w:tabs><w:ind w:left="1800" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="(%6)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="6"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2520"/></w:tabs><w:ind w:left="2520" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3240"/></w:tabs><w:ind w:left="3240" w:hanging="360"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="18"><w:lsid w:val="78DC6A50"/><w:plt w:val="HybridMultilevel"/><w:tmpl w:val="AC00310A"/><w:lvl w:ilvl="0" w:tplc="203E5E88"><w:start w:val="1"/><w:nfc w:val="4"/><w:pStyle w:val="orderedlist2"/><w:lvlText w:val="%1)"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="1" w:tplc="04090019" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%2."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="2" w:tplc="0409001B" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%3."/><w:lvlJc w:val="right"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="180"/></w:pPr></w:lvl><w:lvl w:ilvl="3" w:tplc="0409000F" w:tentative="on"><w:start w:val="1"/><w:lvlText w:val="%4."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="4" w:tplc="04090019" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%5."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3600"/></w:tabs><w:ind w:left="3600" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="5" w:tplc="0409001B" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%6."/><w:lvlJc w:val="right"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="4320"/></w:tabs><w:ind w:left="4320" w:hanging="180"/></w:pPr></w:lvl><w:lvl w:ilvl="6" w:tplc="0409000F" w:tentative="on"><w:start w:val="1"/><w:lvlText w:val="%7."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5040"/></w:tabs><w:ind w:left="5040" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="7" w:tplc="04090019" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="4"/><w:lvlText w:val="%8."/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5760"/></w:tabs><w:ind w:left="5760" w:hanging="360"/></w:pPr></w:lvl><w:lvl w:ilvl="8" w:tplc="0409001B" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="2"/><w:lvlText w:val="%9."/><w:lvlJc w:val="right"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="6480"/></w:tabs><w:ind w:left="6480" w:hanging="180"/></w:pPr></w:lvl></w:listDef><w:listDef w:listDefId="19"><w:lsid w:val="7FE26324"/><w:plt w:val="HybridMultilevel"/><w:tmpl w:val="54606432"/><w:lvl w:ilvl="0" w:tplc="D70A5764"><w:start w:val="1"/><w:nfc w:val="23"/><w:pStyle w:val="itemizedlist2"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="1" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="1440"/></w:tabs><w:ind w:left="1440" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="2" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2160"/></w:tabs><w:ind w:left="2160" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="3" w:tplc="04090001" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="2880"/></w:tabs><w:ind w:left="2880" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="4" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="3600"/></w:tabs><w:ind w:left="3600" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="5" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="4320"/></w:tabs><w:ind w:left="4320" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="6" w:tplc="04090001" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5040"/></w:tabs><w:ind w:left="5040" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Symbol" w:h-ansi="Symbol" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="7" w:tplc="04090003" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val="o"/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="5760"/></w:tabs><w:ind w:left="5760" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New" w:cs="Courier New" w:hint="default"/></w:rPr></w:lvl><w:lvl w:ilvl="8" w:tplc="04090005" w:tentative="on"><w:start w:val="1"/><w:nfc w:val="23"/><w:lvlText w:val=""/><w:lvlJc w:val="left"/><w:pPr><w:tabs><w:tab w:val="list" w:pos="6480"/></w:tabs><w:ind w:left="6480" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="Wingdings" w:h-ansi="Wingdings" w:hint="default"/></w:rPr></w:lvl></w:listDef><w:list w:ilfo="1"><w:ilst w:val="5"/></w:list><w:list w:ilfo="2"><w:ilst w:val="17"/></w:list><w:list w:ilfo="3"><w:ilst w:val="9"/></w:list><w:list w:ilfo="4"><w:ilst w:val="13"/></w:list><w:list w:ilfo="5"><w:ilst w:val="10"/></w:list><w:list w:ilfo="6"><w:ilst w:val="7"/></w:list><w:list w:ilfo="7"><w:ilst w:val="4"/></w:list><w:list w:ilfo="8"><w:ilst w:val="1"/></w:list><w:list w:ilfo="9"><w:ilst w:val="3"/></w:list><w:list w:ilfo="10"><w:ilst w:val="16"/></w:list><w:list w:ilfo="11"><w:ilst w:val="11"/></w:list><w:list w:ilfo="12"><w:ilst w:val="14"/></w:list><w:list w:ilfo="13"><w:ilst w:val="18"/></w:list><w:list w:ilfo="14"><w:ilst w:val="15"/></w:list><w:list w:ilfo="15"><w:ilst w:val="12"/></w:list><w:list w:ilfo="16"><w:ilst w:val="6"/></w:list><w:list w:ilfo="17"><w:ilst w:val="19"/></w:list><w:list w:ilfo="18"><w:ilst w:val="2"/></w:list><w:list w:ilfo="19"><w:ilst w:val="8"/></w:list><w:list w:ilfo="20"><w:ilst w:val="0"/></w:list></w:lists><w:styles><w:versionOfBuiltInStylenames w:val="4"/><w:latentStyles w:defLockedState="on" w:latentStyleCount="156"><w:lsdException w:name="Normal" w:locked="off"/><w:lsdException w:name="footnote text" w:locked="off"/><w:lsdException w:name="annotation text" w:locked="off"/><w:lsdException w:name="footnote reference" w:locked="off"/><w:lsdException w:name="annotation reference" w:locked="off"/><w:lsdException w:name="Default Paragraph Font" w:locked="off"/><w:lsdException w:name="Date" w:locked="off"/><w:lsdException w:name="Hyperlink" w:locked="off"/><w:lsdException w:name="FollowedHyperlink" w:locked="off"/><w:lsdException w:name="Emphasis" w:locked="off"/><w:lsdException w:name="HTML Top of Form" w:locked="off"/><w:lsdException w:name="HTML Bottom of Form" w:locked="off"/><w:lsdException w:name="Normal Table" w:locked="off"/><w:lsdException w:name="annotation subject" w:locked="off"/><w:lsdException w:name="No List" w:locked="off"/></w:latentStyles><w:style w:type="paragraph" w:default="on" w:styleId="Normal"><w:name w:val="Normal"/><w:aliases w:val="para"/><w:rsid w:val="00826D85"/><w:rPr><wx:font wx:val="Times New Roman"/><w:sz w:val="24"/><w:sz-cs w:val="24"/><w:lang w:val="EN-US" w:fareast="EN-US" w:bidi="AR-SA"/></w:rPr></w:style><w:style w:type="character" w:default="on" w:styleId="DefaultParagraphFont"><w:name w:val="Default Paragraph Font"/><w:semiHidden/></w:style><w:style w:type="table" w:default="on" w:styleId="TableNormal"><w:name w:val="Normal Table"/><wx:uiName wx:val="Table Normal"/><w:semiHidden/><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr><w:tblPr><w:tblInd w:w="0" w:type="dxa"/><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPr></w:style><w:style w:type="list" w:default="on" w:styleId="NoList"><w:name w:val="No List"/><w:semiHidden/></w:style><w:style w:type="paragraph" w:styleId="itemizedlist2"><w:name w:val="itemizedlist2"/><w:basedOn w:val="Normal"/><w:rsid w:val="00DF7E4E"/><w:pPr><w:pStyle w:val="itemizedlist2"/><w:listPr><w:ilfo w:val="17"/></w:listPr><w:ind w:left="1080"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="itemizedlist3"><w:name w:val="itemizedlist3"/><w:basedOn w:val="Normal"/><w:rsid w:val="00DF7E4E"/><w:pPr><w:pStyle w:val="itemizedlist3"/><w:listPr><w:ilfo w:val="18"/></w:listPr><w:ind w:left="1800"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="itemizedlist4"><w:name w:val="itemizedlist4"/><w:basedOn w:val="Normal"/><w:rsid w:val="00DF7E4E"/><w:pPr><w:pStyle w:val="itemizedlist4"/><w:listPr><w:ilfo w:val="19"/></w:listPr><w:ind w:left="2520"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="book-title"><w:name w:val="book-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="book-title"/><w:spacing w:before="240" w:after="240"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="36"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="book-subtitle"><w:name w:val="book-subtitle"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="book-subtitle"/><w:spacing w:before="120" w:after="120"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="book-titleabbrev"><w:name w:val="book-titleabbrev"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="book-titleabbrev"/><w:spacing w:before="120" w:after="120"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="article-title"><w:name w:val="article-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="article-title"/><w:spacing w:before="240" w:after="240"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="36"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="article-subtitle"><w:name w:val="article-subtitle"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="article-subtitle"/><w:spacing w:before="120" w:after="120"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="article-titleabbrev"><w:name w:val="article-titleabbrev"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="article-titleabbrev"/><w:spacing w:before="120" w:after="120"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="blockquote"><w:name w:val="blockquote"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="blockquote"/><w:ind w:left="720" w:right="720"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:i/><w:sz w:val="20"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="blockerror"><w:name w:val="blockerror"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="blockerror"/><w:ind w:left="720"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:color w:val="FF0000"/><w:effect w:val="ants-red"/></w:rPr></w:style><w:style w:type="character" w:styleId="inlineerror"><w:name w:val="inlineerror"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:color w:val="FF0000"/><w:effect w:val="ants-red"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="legalnotice"><w:name w:val="legalnotice"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="legalnotice"/><w:pBdr><w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="1" w:color="auto"/><w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="4" w:color="auto"/><w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="1" w:color="auto"/><w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="4" w:color="auto"/></w:pBdr></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:u w:val="single"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="note"><w:name w:val="note"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="note"/><w:listPr><w:ilfo w:val="1"/></w:listPr></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="sect1-title"><w:name w:val="sect1-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="sect1-title"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="36"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="sect1-subtitle"><w:name w:val="sect1-subtitle"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="sect1-subtitle"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="sect2-title"><w:name w:val="sect2-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="sect2-title"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="sect2-subtitle"><w:name w:val="sect2-subtitle"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="sect2-subtitle"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="sect3-title"><w:name w:val="sect3-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="sect3-title"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="sect3-subtitle"><w:name w:val="sect3-subtitle"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="sect3-subtitle"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="sect4-title"><w:name w:val="sect4-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="sect4-title"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="sect4-subtitle"><w:name w:val="sect4-subtitle"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="sect4-subtitle"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="sect5-title"><w:name w:val="sect5-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="sect5-title"/></w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:h-ansi="Arial"/><wx:font wx:val="Arial"/><w:b/><w:sz w:val="22"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="sect5-subtitle"><w:name w:val="sect5-subtitle"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="sect5-subtitle"/></w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:h-ansi="Arial"/><wx:font wx:val="Arial"/><w:sz w:val="20"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="simpara"><w:name w:val="simpara"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="simpara"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="formalpara"><w:name w:val="formalpara"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="formalpara"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="formalpara-title"><w:name w:val="formalpara-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="formalpara-title"/><w:ind w:left="720"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="simplesect-title"><w:name w:val="simplesect-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="simplesect-title"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="simplesect-subtitle"><w:name w:val="simplesect-subtitle"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="simplesect-subtitle"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="blockquote-attribution"><w:name w:val="blockquote-attribution"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="blockquote-attribution"/><w:ind w:left="1440"/></w:pPr><w:rPr><w:rFonts w:ascii="Arial Narrow" w:h-ansi="Arial Narrow"/><wx:font wx:val="Arial Narrow"/><w:sz w:val="16"/><w:u w:val="single"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="blockquote-title"><w:name w:val="blockquote-title"/><w:basedOn w:val="Normal"/><w:next w:val="blockquote"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="blockquote-title"/><w:ind w:left="720"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="note-title"><w:name w:val="note-title"/><w:basedOn w:val="note"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="note-title"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="caution"><w:name w:val="caution"/><w:basedOn w:val="note"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="caution"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:color w:val="FF0000"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="caution-title"><w:name w:val="caution-title"/><w:basedOn w:val="caution"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="caution-title"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="warning"><w:name w:val="warning"/><w:basedOn w:val="note"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="warning"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:color w:val="FFCC00"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="warning-title"><w:name w:val="warning-title"/><w:basedOn w:val="warning"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="warning-title"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="important"><w:name w:val="important"/><w:basedOn w:val="note"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="important"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:color w:val="000080"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="important-title"><w:name w:val="important-title"/><w:basedOn w:val="important"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="important-title"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="chapter-title"><w:name w:val="chapter-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="chapter-title"/><w:spacing w:before="240" w:after="240"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="36"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="chapter-subtitle"><w:name w:val="chapter-subtitle"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="chapter-subtitle"/><w:spacing w:before="120" w:after="120"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="chapter-titleabbrev"><w:name w:val="chapter-titleabbrev"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="chapter-titleabbrev"/><w:spacing w:before="120" w:after="120"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="appendix-title"><w:name w:val="appendix-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="appendix-title"/><w:spacing w:before="240" w:after="240"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="36"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="preface-title"><w:name w:val="preface-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="preface-title"/><w:spacing w:before="240" w:after="240"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="36"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="bibliography-title"><w:name w:val="bibliography-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="bibliography-title"/><w:spacing w:before="240" w:after="240"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="36"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="glossary-title"><w:name w:val="glossary-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="glossary-title"/><w:spacing w:before="240" w:after="240"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="36"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="index-title"><w:name w:val="index-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="index-title"/><w:spacing w:before="240" w:after="240"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="36"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="itemizedlist1"><w:name w:val="itemizedlist1"/><w:basedOn w:val="Normal"/><w:rsid w:val="00227ABF"/><w:pPr><w:pStyle w:val="itemizedlist1"/><w:listPr><w:ilfo w:val="20"/></w:listPr></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="variablelist-term"><w:name w:val="variablelist-term"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="variablelist-term"/></w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:h-ansi="Arial"/><wx:font wx:val="Arial"/><w:sz w:val="20"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="variablelist-title"><w:name w:val="variablelist-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="variablelist-title"/><w:spacing w:before="120" w:after="120"/><w:ind w:left="720"/></w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:h-ansi="Arial"/><wx:font wx:val="Arial"/><w:b/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="variablelist-titleabbrev"><w:name w:val="variablelist-titleabbrev"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="variablelist-titleabbrev"/><w:ind w:left="720"/></w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:h-ansi="Arial"/><wx:font wx:val="Arial"/><w:i/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="tip"><w:name w:val="tip"/><w:basedOn w:val="note"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="tip"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:color w:val="003300"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="tip-title"><w:name w:val="tip-title"/><w:basedOn w:val="tip"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="tip-title"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="para-continue"><w:name w:val="para-continue"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="para-continue"/><w:ind w:left="720"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="releaseinfo"><w:name w:val="releaseinfo"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="releaseinfo"/><w:shd w:val="clear" w:color="auto" w:fill="FFFF99"/></w:pPr><w:rPr><w:rFonts w:ascii="Lucida Sans Unicode" w:h-ansi="Lucida Sans Unicode"/><wx:font wx:val="Lucida Sans Unicode"/><w:sz w:val="18"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="author"><w:name w:val="author"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="author"/><w:ind w:left="720"/></w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:h-ansi="Arial"/><wx:font wx:val="Arial"/><w:sz w:val="20"/></w:rPr></w:style><w:style w:type="character" w:styleId="surname"><w:name w:val="surname"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:b/></w:rPr></w:style><w:style w:type="character" w:styleId="firstname"><w:name w:val="firstname"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:i/></w:rPr></w:style><w:style w:type="character" w:styleId="honorific"><w:name w:val="honorific"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:b/></w:rPr></w:style><w:style w:type="character" w:styleId="lineage"><w:name w:val="lineage"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:u w:val="single"/></w:rPr></w:style><w:style w:type="character" w:styleId="othername"><w:name w:val="othername"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:i/></w:rPr></w:style><w:style w:type="character" w:styleId="shortaffil"><w:name w:val="shortaffil"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:u w:val="single"/></w:rPr></w:style><w:style w:type="character" w:styleId="jobtitle"><w:name w:val="jobtitle"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:b/></w:rPr></w:style><w:style w:type="character" w:styleId="orgname"><w:name w:val="orgname"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:rFonts w:ascii="Arial" w:h-ansi="Arial"/><w:b/></w:rPr></w:style><w:style w:type="character" w:styleId="orgdiv"><w:name w:val="orgdiv"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:rFonts w:ascii="Arial" w:h-ansi="Arial"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="affiliation"><w:name w:val="affiliation"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="affiliation"/><w:ind w:left="1440"/></w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:h-ansi="Arial"/><wx:font wx:val="Arial"/><w:sz w:val="20"/></w:rPr></w:style><w:style w:type="character" w:styleId="contrib"><w:name w:val="contrib"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:i/></w:rPr></w:style><w:style w:type="character" w:styleId="street"><w:name w:val="street"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:rFonts w:ascii="Lucida Sans Unicode" w:h-ansi="Lucida Sans Unicode"/></w:rPr></w:style><w:style w:type="character" w:styleId="pob"><w:name w:val="pob"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:rFonts w:ascii="Lucida Sans Unicode" w:h-ansi="Lucida Sans Unicode"/></w:rPr></w:style><w:style w:type="character" w:styleId="postcode"><w:name w:val="postcode"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:rFonts w:ascii="Lucida Sans Unicode" w:h-ansi="Lucida Sans Unicode"/><w:b/></w:rPr></w:style><w:style w:type="character" w:styleId="city"><w:name w:val="city"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:rFonts w:ascii="Lucida Sans Unicode" w:h-ansi="Lucida Sans Unicode"/><w:b/></w:rPr></w:style><w:style w:type="character" w:styleId="state"><w:name w:val="state"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:rFonts w:ascii="Lucida Sans Unicode" w:h-ansi="Lucida Sans Unicode"/><w:b/></w:rPr></w:style><w:style w:type="character" w:styleId="country"><w:name w:val="country"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:rFonts w:ascii="Lucida Sans Unicode" w:h-ansi="Lucida Sans Unicode"/><w:b/></w:rPr></w:style><w:style w:type="character" w:styleId="phone"><w:name w:val="phone"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New"/></w:rPr></w:style><w:style w:type="character" w:styleId="fax"><w:name w:val="fax"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New"/></w:rPr></w:style><w:style w:type="character" w:styleId="email"><w:name w:val="email"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:rFonts w:ascii="Arial" w:h-ansi="Arial"/><w:color w:val="0000FF"/><w:u w:val="single"/></w:rPr></w:style><w:style w:type="character" w:styleId="otheraddr"><w:name w:val="otheraddr"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:rFonts w:ascii="Lucida Sans Unicode" w:h-ansi="Lucida Sans Unicode"/><w:u w:val="single"/></w:rPr></w:style><w:style w:type="character" w:styleId="ulink"><w:name w:val="ulink"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:color w:val="0000FF"/><w:u w:val="single"/></w:rPr></w:style><w:style w:type="character" w:styleId="attribute-name"><w:name w:val="attribute-name"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:b/></w:rPr></w:style><w:style w:type="character" w:styleId="attribute-value"><w:name w:val="attribute-value"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:u w:val="single"/></w:rPr></w:style><w:style w:type="character" w:styleId="attributes"><w:name w:val="attributes"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:vanish/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="informalfigure-imagedata"><w:name w:val="informalfigure-imagedata"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="informalfigure-imagedata"/><w:spacing w:before="120" w:after="120"/><w:ind w:left="720"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New"/><wx:font wx:val="Courier New"/><w:b/><w:sz w:val="20"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="xinclude"><w:name w:val="xinclude"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="xinclude"/><w:shd w:val="solid" w:color="auto" w:fill="0C0C0C" wx:bgcolor="000000"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:color w:val="FF0000"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="table-title"><w:name w:val="table-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="00283454"/><w:pPr><w:pStyle w:val="table-title"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="part-title"><w:name w:val="part-title"/><w:basedOn w:val="book-title"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="part-title"/><w:shd w:val="clear" w:color="auto" w:fill="CCFFFF"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="abstract"><w:name w:val="abstract"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="abstract"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:i/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="abstract-title"><w:name w:val="abstract-title"/><w:basedOn w:val="sect3-title"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="abstract-title"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Caption"><w:name w:val="caption"/><wx:uiName wx:val="Caption"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="Caption"/><w:jc w:val="center"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:i/><w:sz w:val="18"/></w:rPr></w:style><w:style w:type="character" w:styleId="citetitle"><w:name w:val="citetitle"/><w:basedOn w:val="DefaultParagraphFont"/><w:rsid w:val="000D6E3E"/><w:rPr><w:i/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="bridgehead"><w:name w:val="bridgehead"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="bridgehead"/><w:spacing w:before="120" w:after="120"/><w:ind w:left="720"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="orderedlist1"><w:name w:val="orderedlist1"/><w:basedOn w:val="Normal"/><w:rsid w:val="00DF7E4E"/><w:pPr><w:pStyle w:val="orderedlist1"/><w:tabs><w:tab w:val="list" w:pos="720"/></w:tabs><w:ind w:left="720" w:hanging="360"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="orderedlist2"><w:name w:val="orderedlist2"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="orderedlist2"/><w:listPr><w:ilfo w:val="13"/></w:listPr><w:ind w:left="1080"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="orderedlist3"><w:name w:val="orderedlist3"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="orderedlist3"/><w:listPr><w:ilfo w:val="14"/></w:listPr><w:tabs><w:tab w:val="clear" w:pos="1800"/><w:tab w:val="list" w:pos="1620"/></w:tabs><w:ind w:left="1627" w:hanging="360"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="orderedlist4"><w:name w:val="orderedlist4"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="orderedlist4"/><w:listPr><w:ilfo w:val="16"/></w:listPr><w:ind w:left="1800"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="programlisting"><w:name w:val="programlisting"/><w:basedOn w:val="Normal"/><w:rsid w:val="000D6E3E"/><w:pPr><w:pStyle w:val="programlisting"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New"/><wx:font wx:val="Courier New"/><w:sz w:val="20"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="keyword"><w:name w:val="keyword"/><w:basedOn w:val="Normal"/><w:rsid w:val="00D41859"/><w:pPr><w:pStyle w:val="keyword"/><w:shd w:val="clear" w:color="auto" w:fill="FFFF99"/></w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:h-ansi="Arial"/><wx:font wx:val="Arial"/><w:sz w:val="20"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="address"><w:name w:val="address"/><w:basedOn w:val="Normal"/><w:rsid w:val="00977F06"/><w:pPr><w:pStyle w:val="address"/><w:ind w:left="720"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="biblio-div"><w:name w:val="biblio-div"/><w:basedOn w:val="Normal"/><w:rsid w:val="00977F06"/><w:pPr><w:pStyle w:val="biblio-div"/><w:ind w:left="288"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="biblioentry-title"><w:name w:val="biblioentry-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="00977F06"/><w:pPr><w:pStyle w:val="biblioentry-title"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/><w:sz w:val="22"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="bibliomisc"><w:name w:val="bibliomisc"/><w:basedOn w:val="Normal"/><w:rsid w:val="00977F06"/><w:pPr><w:pStyle w:val="bibliomisc"/><w:shd w:val="clear" w:color="auto" w:fill="00FFFF"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="date"><w:name w:val="date"/><w:basedOn w:val="Normal"/><w:rsid w:val="004D200F"/><w:pPr><w:pStyle w:val="date"/><w:shd w:val="clear" w:color="auto" w:fill="00CCFF"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="example-title"><w:name w:val="example-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="004D200F"/><w:pPr><w:pStyle w:val="example-title"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="figure-title"><w:name w:val="figure-title"/><w:basedOn w:val="Normal"/><w:rsid w:val="004D200F"/><w:pPr><w:pStyle w:val="figure-title"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="literallayout"><w:name w:val="literallayout"/><w:basedOn w:val="Normal"/><w:rsid w:val="004D200F"/><w:pPr><w:pStyle w:val="literallayout"/></w:pPr><w:rPr><w:rFonts w:ascii="Courier New" w:h-ansi="Courier New"/><wx:font wx:val="Courier New"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="publisher"><w:name w:val="publisher"/><w:basedOn w:val="Normal"/><w:rsid w:val="001401DD"/><w:pPr><w:pStyle w:val="publisher"/></w:pPr><w:rPr><w:rFonts w:ascii="Palatino" w:h-ansi="Palatino"/><wx:font wx:val="Palatino"/><w:sz w:val="22"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="publisher-address"><w:name w:val="publisher-address"/><w:basedOn w:val="Normal"/><w:rsid w:val="001401DD"/><w:pPr><w:pStyle w:val="publisher-address"/><w:ind w:left="720"/></w:pPr><w:rPr><w:rFonts w:ascii="Palatino" w:h-ansi="Palatino"/><wx:font wx:val="Palatino"/><w:sz w:val="22"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="revision"><w:name w:val="revision"/><w:basedOn w:val="Normal"/><w:rsid w:val="009F2926"/><w:pPr><w:pStyle w:val="revision"/><w:shd w:val="clear" w:color="auto" w:fill="FFFF99"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:b/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="edition"><w:name w:val="edition"/><w:basedOn w:val="Normal"/><w:rsid w:val="006142F4"/><w:pPr><w:pStyle w:val="edition"/><w:shd w:val="clear" w:color="auto" w:fill="99CCFF"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="pubdate"><w:name w:val="pubdate"/><w:basedOn w:val="Normal"/><w:rsid w:val="007745F4"/><w:pPr><w:pStyle w:val="pubdate"/><w:shd w:val="clear" w:color="auto" w:fill="FFFF99"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="imagedata-metadata"><w:name w:val="imagedata-metadata"/><w:basedOn w:val="Normal"/><w:rsid w:val="00514B6A"/><w:pPr><w:pStyle w:val="imagedata-metadata"/><w:shd w:val="clear" w:color="auto" w:fill="404040"/></w:pPr><w:rPr><w:rFonts w:ascii="Monaco" w:h-ansi="Monaco"/><wx:font wx:val="Monaco"/><w:color w:val="FFFFFF"/><w:sz w:val="20"/></w:rPr></w:style></w:styles><w:shapeDefaults><o:shapedefaults v:ext="edit" spidmax="10242"/><o:shapelayout v:ext="edit"><o:idmap v:ext="edit" data="1"/></o:shapelayout></w:shapeDefaults><w:docPr><w:view w:val="normal"/><w:zoom w:percent="100"/><w:doNotEmbedSystemFonts/><w:proofState w:spelling="clean" w:grammar="clean"/><w:attachedTemplate w:val=""/><w:documentProtection w:formatting="on" w:enforcement="on" w:unprotectPassword="2B3EE9A0"/><w:defaultTabStop w:val="720"/><w:punctuationKerning/><w:characterSpacingControl w:val="DontCompress"/><w:optimizeForBrowser/><w:validateAgainstSchema/><w:saveInvalidXML w:val="off"/><w:ignoreMixedContent w:val="off"/><w:alwaysShowPlaceholderText w:val="off"/><w:compat><w:breakWrappedTables/><w:snapToGridInCell/><w:wrapTextWithPunct/><w:useAsianBreakRules/><w:dontGrowAutofit/></w:compat><wsp:rsids><wsp:rsidRoot wsp:val="00DD244D"/><wsp:rsid wsp:val="001401DD"/><wsp:rsid wsp:val="001B2E2B"/><wsp:rsid wsp:val="001E5D16"/><wsp:rsid wsp:val="00227ABF"/><wsp:rsid wsp:val="00283454"/><wsp:rsid wsp:val="003E1EB8"/><wsp:rsid wsp:val="00467421"/><wsp:rsid wsp:val="004D200F"/><wsp:rsid wsp:val="00514B6A"/><wsp:rsid wsp:val="006142F4"/><wsp:rsid wsp:val="0067760C"/><wsp:rsid wsp:val="006A7249"/><wsp:rsid wsp:val="006D1FD8"/><wsp:rsid wsp:val="006F7817"/><wsp:rsid wsp:val="007745F4"/><wsp:rsid wsp:val="00826D85"/><wsp:rsid wsp:val="009208D2"/><wsp:rsid wsp:val="00977F06"/><wsp:rsid wsp:val="009F2926"/><wsp:rsid wsp:val="00C0771D"/><wsp:rsid wsp:val="00C80712"/><wsp:rsid wsp:val="00C87CDE"/><wsp:rsid wsp:val="00D41859"/><wsp:rsid wsp:val="00DD244D"/><wsp:rsid wsp:val="00DF7E4E"/><wsp:rsid wsp:val="00F34316"/></wsp:rsids></w:docPr><w:body><wx:sect><w:p wsp:rsidR="00DD244D" wsp:rsidRDefault="00F34316"><w:r><w:t>Generic </w:t></w:r><w:proofErr w:type="spellStart"/><w:r><w:t>DocB</w:t></w:r><w:r wsp:rsidR="00514B6A"><w:t>ook</w:t></w:r><w:proofErr w:type="spellEnd"/><w:r wsp:rsidR="00514B6A"><w:t> roundtrip template - 2008-10-09</w:t></w:r><w:r><w:t>-01.</w:t></w:r></w:p><w:sectPr wsp:rsidR="00DD244D" wsp:rsidSect="00DD244D"><w:pgSz w:w="12240" w:h="15840"/><w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="720" w:footer="720" w:gutter="0"/><w:cols w:space="720"/><w:docGrid w:line-pitch="360"/></w:sectPr></wx:sect></w:body></w:wordDocument>
\ No newline at end of file
diff --git a/applications/content/template/docbook/roundtrip/wordml2normalise.xsl b/applications/content/template/docbook/roundtrip/wordml2normalise.xsl
new file mode 100644
index 0000000..901fcc9
--- /dev/null
+++ b/applications/content/template/docbook/roundtrip/wordml2normalise.xsl
@@ -0,0 +1,445 @@
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"
+  xmlns:v="urn:schemas-microsoft-com:vml"
+  xmlns:w10="urn:schemas-microsoft-com:office:word"
+  xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core"
+  xmlns:aml="http://schemas.microsoft.com/aml/2001/core"
+  xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint"
+  xmlns:o="urn:schemas-microsoft-com:office:office"
+  xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
+  xmlns:dbk='http://docbook.org/ns/docbook'
+  xmlns:rnd='http://docbook.org/ns/docbook/roundtrip'
+  xmlns:xlink='http://www.w3.org/1999/xlink'
+  xmlns:exsl='http://exslt.org/common'
+  exclude-result-prefixes='w v w10 sl aml wx o dt'
+  extension-element-prefixes='exsl'>
+
+  <xsl:import href='normalise-common.xsl'/>
+
+  <xsl:output method='xml' indent="yes"/>
+
+  <!-- ********************************************************************
+       $Id$
+       ********************************************************************
+
+       This file is part of the XSL DocBook Stylesheet distribution.
+       See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+       and other information.
+
+       ******************************************************************** -->
+
+  <xsl:strip-space elements='*'/>
+  <xsl:preserve-space elements='w:t'/>
+
+  <xsl:key name='style'
+    match='w:style'
+    use='@w:styleId'/>
+
+  <xsl:template match="w:wordDocument">
+    <dbk:article>
+      <xsl:apply-templates select='w:body'/>
+    </dbk:article>
+  </xsl:template>
+
+  <xsl:template match='wx:borders |
+                       wx:margin-left'/>
+
+  <xsl:template match='w:p'>
+    <xsl:variable name='style'>
+      <xsl:call-template name='rnd:map-paragraph-style'>
+        <xsl:with-param name='style' select='w:pPr/w:pStyle/@w:val'/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test='aml:annotation[@w:type = "Word.Deletion"] and
+                      not(aml:annotation[@w:type != "Word.Deletion"]) and
+                      count(*) = count(aml:annotation|w:pPr)'/>
+
+      <!-- Eliminate paragraphs that have no content.
+           These are section or page breaks.
+        -->
+      <xsl:when test='not(w:r|w:hlink|w:tbl) and
+                      w:pPr/w:sectPr'/>
+
+      <xsl:otherwise>
+        <dbk:para>
+          <xsl:attribute name='rnd:style'>
+            <xsl:value-of select='$style'/>
+          </xsl:attribute>
+          <xsl:if test='w:pPr/w:pStyle/@w:val and
+                        $style != w:pPr/w:pStyle/@w:val'>
+            <xsl:attribute name='rnd:original-style'>
+              <xsl:value-of select='w:pPr/w:pStyle/@w:val'/>
+            </xsl:attribute>
+          </xsl:if>
+
+          <xsl:if test='w:r[1][w:rPr/w:rStyle/@w:val = "attributes"] and
+                        w:r[2][w:rPr/w:rStyle/@w:val = "CommentReference"]'>
+            <xsl:apply-templates select='w:r[2]//w:r[w:rPr/w:rStyle/@w:val = "attribute-name"]'
+              mode='rnd:attributes'/>
+          </xsl:if>
+
+          <xsl:apply-templates/>
+        </dbk:para>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='*' mode='rnd:attributes'>
+    <xsl:attribute name='{w:t}'>
+      <xsl:apply-templates select='following-sibling::w:r[w:rPr/w:rStyle/@w:val = "attribute-value"][1]'
+        mode='rnd:attribute-value'/>
+    </xsl:attribute>
+  </xsl:template>
+
+  <xsl:template match='w:r'>
+    <xsl:param name='do-vert-align' select='true()'/>
+
+    <xsl:variable name='role'>
+      <xsl:choose>
+        <xsl:when test='w:rPr/w:b and
+                        w:rPr/w:i'>
+          <xsl:text>bold-italic</xsl:text>
+        </xsl:when>
+        <xsl:when test='w:rPr/w:b'>
+          <xsl:text>bold</xsl:text>
+        </xsl:when>
+        <xsl:when test='w:rPr/w:i'>
+          <xsl:text>italic</xsl:text>
+        </xsl:when>
+        <xsl:when test='w:rPr/w:u'>
+          <xsl:text>underline</xsl:text>
+        </xsl:when>
+        <!-- TODO: add support for other styles -->
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name='style'>
+      <xsl:if test='w:rPr/w:rStyle'>
+        <xsl:value-of select='w:rPr/w:rStyle/@w:val'/>
+      </xsl:if>
+    </xsl:variable>
+
+    <xsl:choose>
+      <xsl:when test='w:rPr/w:rStyle/@w:val = "attributes"'/>
+      <xsl:when test='w:rPr/w:rStyle/@w:val = "CommentReference"'/>
+      <xsl:when test='w:pict'>
+        <!-- "filename" is where the image data gets extracted to -->
+        <xsl:variable name='filename'>
+          <xsl:call-template name='rnd:image-filename'/>
+        </xsl:variable>
+        <!-- "target" is the URL that will be the target of the imagedata hyperlink.
+             This may or may not be related to the physical filename.
+          -->
+        <xsl:variable name='target'>
+          <xsl:call-template name='rnd:image-target'>
+            <xsl:with-param name='filename' select='$filename'/>
+          </xsl:call-template>
+        </xsl:variable>
+
+        <xsl:call-template name='rnd:handle-image-data'>
+          <xsl:with-param name='filename' select='$filename'/>
+          <xsl:with-param name='data' select='w:pict/w:binData'/>
+        </xsl:call-template>
+
+        <dbk:inlinemediaobject>
+          <dbk:imageobject>
+            <dbk:imagedata fileref='{$target}'>
+              <xsl:if test='w:pict/v:shape/@style'>
+                <xsl:attribute name='width'>
+                  <xsl:value-of select='normalize-space(substring-before(substring-after(w:pict/v:shape/@style, "width:"), ";"))'/>
+                </xsl:attribute>
+                <xsl:attribute name='depth'>
+                  <xsl:value-of select='normalize-space(substring-after(w:pict/v:shape/@style, "height:"))'/>
+                </xsl:attribute>
+              </xsl:if>
+            </dbk:imagedata>
+          </dbk:imageobject>
+        </dbk:inlinemediaobject>
+      </xsl:when>
+      <xsl:when test='$do-vert-align and
+                      w:rPr/w:vertAlign/@w:val = "subscript"'>
+        <dbk:subscript>
+          <xsl:apply-templates select='.'>
+            <xsl:with-param name='do-vert-align' select='false()'/>
+          </xsl:apply-templates>
+        </dbk:subscript>
+      </xsl:when>
+      <xsl:when test='$do-vert-align and
+                      w:rPr/w:vertAlign/@w:val = "superscript"'>
+        <dbk:superscript>
+          <xsl:apply-templates select='.'>
+            <xsl:with-param name='do-vert-align' select='false()'/>
+          </xsl:apply-templates>
+        </dbk:superscript>
+      </xsl:when>
+      <xsl:when test='w:endnoteRef and
+                      parent::w:p/parent::w:endnote and
+                      count(w:rPr|w:endnoteRef) = count(*)'/>
+      <xsl:when test='w:footnoteRef'/> <!-- is a label supplied? -->
+      <xsl:when test='w:footnote|w:endnote'>
+        <dbk:footnote>
+          <xsl:apply-templates select='w:footnote|w:endnote'/>
+        </dbk:footnote>
+      </xsl:when>
+      <xsl:when test='$role != "" or $style != ""'>
+        <dbk:emphasis>
+          <xsl:if test='$role != ""'>
+            <xsl:attribute name='role'>
+              <xsl:value-of select='$role'/>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:if test='$style != ""'>
+            <xsl:attribute name='rnd:style'>
+              <xsl:call-template name='rnd:map-character-style'>
+                <xsl:with-param name='style' select='$style'/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:apply-templates/>
+        </dbk:emphasis>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- An application may wish to override these templates -->
+
+  <!-- rnd:image-filename determines the filename of the physical file
+       to which the image data should be written.
+    -->
+  <xsl:template name='rnd:image-filename'>
+    <xsl:param name='pict' select='w:pict'/>
+
+    <xsl:choose>
+      <xsl:when test='contains($pict/w:binData/@w:name, "wordml://")'>
+        <xsl:value-of select='substring-after($pict/w:binData/@w:name, "wordml://")'/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>image</xsl:text>
+        <xsl:value-of select='count($pict/preceding::w:pict) + 1'/>
+        <xsl:text>.jpg</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- rnd:image-target determines the URL for the image data.
+       This may or may not be related to the physical filename.
+    -->
+  <xsl:template name='rnd:image-target'>
+    <xsl:param name='filename'/>
+    <xsl:param name='pict' select='w:pict'/>
+
+    <xsl:value-of select='$filename'/>
+  </xsl:template>
+
+  <!-- rnd:handle-image-data receives the base64-encoded data and a filename
+       for the physical file to which the data should be written.
+       Since XSLT cannot natively handle binary data, this implementation
+       just writes the undecoded data to the nominated file.
+       A real application would decode the data into a binary representation.
+    -->
+  <xsl:template name='rnd:handle-image-data'>
+    <xsl:param name='filename'/>
+    <xsl:param name='data'/>
+
+    <xsl:if test='element-available("exsl:document")'>
+      <exsl:document href='{$filename}.b64' method='text'>
+        <xsl:value-of select='w:pict/w:binData'/>
+      </exsl:document>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match='w:hlink'>
+    <dbk:link xlink:href='{@w:dest}'>
+      <xsl:apply-templates/>
+    </dbk:link>
+  </xsl:template>
+
+  <!-- Soft returns don't really have an equivalent in DocBook,
+     - except in literal line environments.
+    -->
+  <xsl:template match='w:br'>
+    <xsl:text>&#xa;</xsl:text>
+  </xsl:template>
+
+  <xsl:template match='w:tbl'>
+    <xsl:variable name='tbl.style'
+      select='key("style", w:tblPr/w:tblStyle/@w:val) | .'/>
+
+    <xsl:variable name='border.top'>
+      <xsl:choose>
+        <xsl:when test='$tbl.style/w:tblPr/w:tblBorders/w:top[not(@w:val = "nil" or @w:val = "none")]'>1</xsl:when>
+        <xsl:when test='$tbl.style/w:tblPr/w:tblBorders/w:top[@w:val = "nil" or @w:val = "none"]'>0</xsl:when>
+        <xsl:when test='w:tr[1]/w:tc[w:tcPr/w:tcBorders/w:top[not(@w:val = "nil" or @w:val = "none")]]'>1</xsl:when>
+        <xsl:otherwise>0</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name='border.bottom'>
+      <xsl:choose>
+        <xsl:when test='$tbl.style/w:tblPr/w:tblBorders/w:bottom[not(@w:val = "nil" or @w:val = "none")]'>1</xsl:when>
+        <xsl:when test='$tbl.style/w:tblPr/w:tblBorders/w:bottom[@w:val = "nil" or @w:val = "none"]'>0</xsl:when>
+        <xsl:when test='w:tr[1]/w:tc[w:tcPr/w:tcBorders/w:bottom[not(@w:val = "nil" or @w:val = "none")]]'>1</xsl:when>
+        <xsl:otherwise>0</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name='border.left'>
+      <xsl:choose>
+        <xsl:when test='$tbl.style/w:tblPr/w:tblBorders/w:left[not(@w:val = "nil" or @w:val = "none")]'>1</xsl:when>
+        <xsl:when test='$tbl.style/w:tblPr/w:tblBorders/w:left[@w:val = "nil" or @w:val = "none"]'>0</xsl:when>
+        <xsl:when test='w:tr[1]/w:tc[w:tcPr/w:tcBorders/w:left[not(@w:val = "nil" or @w:val = "none")]]'>1</xsl:when>
+        <xsl:otherwise>0</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name='border.right'>
+      <xsl:choose>
+        <xsl:when test='$tbl.style/w:tblPr/w:tblBorders/w:right[not(@w:val = "nil" or @w:val = "none")]'>1</xsl:when>
+        <xsl:when test='$tbl.style/w:tblPr/w:tblBorders/w:right[@w:val = "nil" or @w:val = "none"]'>0</xsl:when>
+        <xsl:when test='w:tr[1]/w:tc[w:tcPr/w:tcBorders/w:rightt[not(@w:val = "nil" or @w:val = "none")]]'>1</xsl:when>
+        <xsl:otherwise>0</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <dbk:informaltable>
+      <xsl:choose>
+        <xsl:when test='$border.top = "1" and $border.bottom = "1" and
+                        $border.left = "1" and $border.right = "1"'>
+          <xsl:attribute name='frame'>all</xsl:attribute>
+        </xsl:when>
+        <xsl:when test='$border.top = "1" and $border.bottom = "1"'>
+          <xsl:attribute name='frame'>topbot</xsl:attribute>
+        </xsl:when>
+        <xsl:when test='$border.left = "1" and $border.right = "1"'>
+          <xsl:attribute name='frame'>sides</xsl:attribute>
+        </xsl:when>
+        <xsl:when test='$border.top = "1"'>
+          <xsl:attribute name='frame'>top</xsl:attribute>
+        </xsl:when>
+        <xsl:when test='$border.bottom = "1"'>
+          <xsl:attribute name='frame'>bottom</xsl:attribute>
+        </xsl:when>
+      </xsl:choose>
+
+      <!-- TODO: analyse column widths -->
+
+      <dbk:tgroup>
+        <xsl:apply-templates select='w:tblGrid'/>
+        <xsl:choose>
+          <xsl:when test='$tbl.style/w:tblStylePr[@w:type = "firstRow"]/w:trPr/w:tblHeader'>
+            <dbk:thead>
+              <xsl:apply-templates select='w:tr[1]'/>
+            </dbk:thead>
+            <dbk:tbody>
+              <xsl:apply-templates select='w:tr[position() != 1]'/>
+            </dbk:tbody>
+          </xsl:when>
+          <xsl:otherwise>
+            <dbk:tbody>
+              <xsl:apply-templates select='w:tr'/>
+            </dbk:tbody>
+          </xsl:otherwise>
+        </xsl:choose>
+      </dbk:tgroup>
+    </dbk:informaltable>
+  </xsl:template>
+  <xsl:template match='w:tblPr'/>
+  <xsl:template match='w:tblGrid/w:gridCol'>
+    <dbk:colspec colwidth='{@w:w}*'
+      colname='column-{count(preceding-sibling::w:gridCol) + 1}'/>
+  </xsl:template>
+  <xsl:template match='w:tr'>
+    <dbk:row>
+      <xsl:apply-templates/>
+    </dbk:row>
+  </xsl:template>
+  <xsl:template match='w:tc'>
+    <xsl:variable name='tbl.style'
+      select='ancestor::w:tbl[1] |
+              key("style", ancestor::w:tbl[1]/w:tblPr/w:tblStyle/@w:val)'/>
+
+    <dbk:entry>
+      <xsl:if test='$tbl.style/w:tblPr/w:tblBorders/w:insideH[not(@w:val = "nil" or @w:val = "none")] |
+                    w:tcPr/w:tcBorders/w:bottom[not(@w:val = "nil" or @w:val = "none")]'>
+        <xsl:attribute name='rowsep'>1</xsl:attribute>
+      </xsl:if>
+      <xsl:if test='$tbl.style/w:tblPr/w:tblBorders/w:insideV[not(@w:val = "nil" or @w:val = "none")] |
+                    w:tcPr/w:tcBorders/w:right[not(@w:val = "nil" or @w:val = "none")]'>
+        <xsl:attribute name='colsep'>1</xsl:attribute>
+      </xsl:if>
+
+      <xsl:variable name='this.colnum'
+        select='count(preceding-sibling::w:tc) + 1 +
+                sum(preceding-sibling::w:tc/w:tcPr/w:gridSpan/@w:val) -
+                count(preceding-sibling::w:tc/w:tcPr/w:gridSpan[@w:val])'/>
+
+      <xsl:if test='w:tcPr/w:gridSpan[@w:val > 1]'>
+        <xsl:attribute name='namest'>
+          <xsl:text>column-</xsl:text>
+          <xsl:value-of select='$this.colnum'/>
+        </xsl:attribute>
+        <xsl:attribute name='nameend'>
+          <xsl:text>column-</xsl:text>
+          <xsl:value-of select='$this.colnum + w:tcPr/w:gridSpan/@w:val - 1'/>
+        </xsl:attribute>
+      </xsl:if>
+
+      <xsl:if test='w:tcPr/w:vmerge[@w:val = "restart"]'>
+        <xsl:attribute name='morerows'>
+          <xsl:call-template name='rnd:count-rowspan'>
+            <xsl:with-param name='row' select='../following-sibling::w:tr[1]'/>
+            <xsl:with-param name='colnum' select='$this.colnum'/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </xsl:if>
+
+      <xsl:apply-templates/>
+    </dbk:entry>
+  </xsl:template>
+
+  <xsl:template match='w:pStyle |
+                       w:rStyle |
+                       w:proofErr |
+                       w:fldData |
+                       w:instrText'/>
+
+  <xsl:template name='rnd:count-rowspan'>
+    <xsl:param name='row' select='/..'/>
+    <xsl:param name='colnum' select='0'/>
+
+    <xsl:variable name='cell'
+      select='$row/w:tc[count(preceding-sibling::w:tc) + 1 +
+              sum(preceding-sibling::w:tc/w:tcPr/w:gridSpan/@w:val) -
+              count(preceding-sibling::w:tc/w:tcPr/w:gridSpan[@w:val]) = $colnum]'/>
+
+    <xsl:choose>
+      <xsl:when test='not($cell)'>
+        <xsl:text>0</xsl:text>
+      </xsl:when>
+      <xsl:when test='$cell/w:tcPr/w:vmerge[not(@w:val = "restart")]'>
+        <xsl:variable name='remainder'>
+          <xsl:call-template name='rnd:count-rowspan'>
+            <xsl:with-param name='row'
+              select='$row/following-sibling::w:tr[1]'/>
+            <xsl:with-param name='colnum' select='$colnum'/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select='$remainder + 1'/>
+      </xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match='w:hdr|w:ftr'/>
+
+  <xsl:template match='aml:annotation'>
+    <xsl:choose>
+      <xsl:when test='@w:type = "Word.Deletion"'/>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/slides/browser/CTOCWidget.js b/applications/content/template/docbook/slides/browser/CTOCWidget.js
new file mode 100644
index 0000000..3d574b0
--- /dev/null
+++ b/applications/content/template/docbook/slides/browser/CTOCWidget.js
@@ -0,0 +1,169 @@
+/*
+ * CTOCWidget.js
+ * $Revision$ $Date$
+ */
+
+/* ***** 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/applications/content/template/docbook/slides/browser/overlay.js b/applications/content/template/docbook/slides/browser/overlay.js
new file mode 100644
index 0000000..fc010fb
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/browser/slides-default.css b/applications/content/template/docbook/slides/browser/slides-default.css
new file mode 100644
index 0000000..1022d6b
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/browser/slides-frames.css b/applications/content/template/docbook/slides/browser/slides-frames.css
new file mode 100644
index 0000000..698b6a3
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/browser/slides-plain.css b/applications/content/template/docbook/slides/browser/slides-plain.css
new file mode 100644
index 0000000..c22f289
--- /dev/null
+++ b/applications/content/template/docbook/slides/browser/slides-plain.css
@@ -0,0 +1 @@
+@import url('slides.css');
diff --git a/applications/content/template/docbook/slides/browser/slides-table.css b/applications/content/template/docbook/slides/browser/slides-table.css
new file mode 100644
index 0000000..1c195c9
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/browser/slides-w3c.css b/applications/content/template/docbook/slides/browser/slides-w3c.css
new file mode 100644
index 0000000..c22f289
--- /dev/null
+++ b/applications/content/template/docbook/slides/browser/slides-w3c.css
@@ -0,0 +1 @@
+@import url('slides.css');
diff --git a/applications/content/template/docbook/slides/browser/slides.css b/applications/content/template/docbook/slides/browser/slides.css
new file mode 100644
index 0000000..1007478
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/browser/slides.js b/applications/content/template/docbook/slides/browser/slides.js
new file mode 100644
index 0000000..5475767
--- /dev/null
+++ b/applications/content/template/docbook/slides/browser/slides.js
@@ -0,0 +1,120 @@
+// -*- Java -*-
+//
+// $Id$
+//
+// 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/applications/content/template/docbook/slides/browser/ua.js b/applications/content/template/docbook/slides/browser/ua.js
new file mode 100644
index 0000000..4cec485
--- /dev/null
+++ b/applications/content/template/docbook/slides/browser/ua.js
@@ -0,0 +1,135 @@
+/*
+ * ua.js
+ * $Revision$ $Date$
+ */
+
+/* ***** 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/applications/content/template/docbook/slides/browser/xbCollapsibleLists.js b/applications/content/template/docbook/slides/browser/xbCollapsibleLists.js
new file mode 100644
index 0000000..6a4f93c
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/browser/xbDOM.js b/applications/content/template/docbook/slides/browser/xbDOM.js
new file mode 100644
index 0000000..2b7dfab
--- /dev/null
+++ b/applications/content/template/docbook/slides/browser/xbDOM.js
@@ -0,0 +1,374 @@
+/*
+ * xbDOM.js
+ * $Revision$ $Date$
+ */
+
+/* ***** 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/applications/content/template/docbook/slides/browser/xbDebug.js b/applications/content/template/docbook/slides/browser/xbDebug.js
new file mode 100644
index 0000000..61978a9
--- /dev/null
+++ b/applications/content/template/docbook/slides/browser/xbDebug.js
@@ -0,0 +1,311 @@
+/*
+ * xbDebug.js
+ * $Revision$ $Date$
+ */
+
+/* ***** 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/applications/content/template/docbook/slides/browser/xbLibrary.js b/applications/content/template/docbook/slides/browser/xbLibrary.js
new file mode 100644
index 0000000..8c63204
--- /dev/null
+++ b/applications/content/template/docbook/slides/browser/xbLibrary.js
@@ -0,0 +1,80 @@
+/*
+ * xbLibrary.js
+ * $Revision$ $Date$
+ */
+
+/* ***** 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/applications/content/template/docbook/slides/browser/xbStyle-css.js b/applications/content/template/docbook/slides/browser/xbStyle-css.js
new file mode 100644
index 0000000..0ec0d50
--- /dev/null
+++ b/applications/content/template/docbook/slides/browser/xbStyle-css.js
@@ -0,0 +1,791 @@
+/*
+ * xbStyle-css.js
+ * $Revision$ $Date$
+ *
+ */
+
+/* ***** 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/applications/content/template/docbook/slides/browser/xbStyle-nn4.js b/applications/content/template/docbook/slides/browser/xbStyle-nn4.js
new file mode 100644
index 0000000..969ad4b
--- /dev/null
+++ b/applications/content/template/docbook/slides/browser/xbStyle-nn4.js
@@ -0,0 +1,485 @@
+/*
+ * xbStyle-nn4.js
+ * $Revision$ $Date$
+ */
+
+/* ***** 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/applications/content/template/docbook/slides/browser/xbStyle-not-supported.js b/applications/content/template/docbook/slides/browser/xbStyle-not-supported.js
new file mode 100644
index 0000000..6ed161f
--- /dev/null
+++ b/applications/content/template/docbook/slides/browser/xbStyle-not-supported.js
@@ -0,0 +1,77 @@
+/*
+ * xbStyle-not-supported.js
+ * $Revision$ $Date$
+ */
+
+/* ***** 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/applications/content/template/docbook/slides/browser/xbStyle.js b/applications/content/template/docbook/slides/browser/xbStyle.js
new file mode 100644
index 0000000..1bfb125
--- /dev/null
+++ b/applications/content/template/docbook/slides/browser/xbStyle.js
@@ -0,0 +1,295 @@
+/*
+ * xbStyle.js
+ * $Revision$ $Date$
+ */
+
+/* ***** 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/applications/content/template/docbook/slides/fo/param.xml b/applications/content/template/docbook/slides/fo/param.xml
new file mode 100644
index 0000000..8f16212
--- /dev/null
+++ b/applications/content/template/docbook/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$
+</releaseinfo>
+<author>
+  <personname>
+    <surname>Walsh</surname>
+    <firstname>Norman</firstname>
+  </personname>
+</author>
+<copyright>
+  <year>2002-2011</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$
+     ********************************************************************
+
+     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/applications/content/template/docbook/slides/fo/param.xsl b/applications/content/template/docbook/slides/fo/param.xsl
new file mode 100644
index 0000000..2176065
--- /dev/null
+++ b/applications/content/template/docbook/slides/fo/param.xsl
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<!-- This file is generated from param.xweb -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     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/applications/content/template/docbook/slides/fo/plain-titlepage.xml b/applications/content/template/docbook/slides/fo/plain-titlepage.xml
new file mode 100644
index 0000000..d0a92da
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/fo/plain-titlepage.xsl b/applications/content/template/docbook/slides/fo/plain-titlepage.xsl
new file mode 100644
index 0000000..7511129
--- /dev/null
+++ b/applications/content/template/docbook/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">
+  <block>
+    <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)">
+      <block><xsl:copy-of select="$recto.content"/></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)">
+      <block><xsl:copy-of select="$verso.content"/></block>
+    </xsl:if>
+    <xsl:call-template name="slides.titlepage.separator"/>
+  </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">
+<block 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>
+</block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="slides.titlepage.recto.auto.mode">
+<block 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"/>
+</block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="slides.titlepage.recto.auto.mode">
+<block 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"/>
+</block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="slides.titlepage.recto.auto.mode">
+<block xsl:use-attribute-sets="slides.titlepage.recto.style">
+<xsl:apply-templates select="." mode="slides.titlepage.recto.mode"/>
+</block>
+</xsl:template>
+
+<xsl:template match="author" mode="slides.titlepage.recto.auto.mode">
+<block 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"/>
+</block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="slides.titlepage.recto.auto.mode">
+<block 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"/>
+</block>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="slides.titlepage.recto.auto.mode">
+<block 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"/>
+</block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="slides.titlepage.recto.auto.mode">
+<block 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"/>
+</block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="slides.titlepage.recto.auto.mode">
+<block xsl:use-attribute-sets="slides.titlepage.recto.style" font-size="17.28pt" text-align="center">
+<xsl:apply-templates select="." mode="slides.titlepage.recto.mode"/>
+</block>
+</xsl:template>
+
+<xsl:template match="revision" mode="slides.titlepage.recto.auto.mode">
+<block xsl:use-attribute-sets="slides.titlepage.recto.style" text-align="center">
+<xsl:apply-templates select="." mode="slides.titlepage.recto.mode"/>
+</block>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/slides/fo/plain.xsl b/applications/content/template/docbook/slides/fo/plain.xsl
new file mode 100644
index 0000000..6b6c96a
--- /dev/null
+++ b/applications/content/template/docbook/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$
+     ********************************************************************
+
+     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/applications/content/template/docbook/slides/graphics/active/arr-next.png b/applications/content/template/docbook/slides/graphics/active/arr-next.png
new file mode 100644
index 0000000..c8b8674
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/arr-next.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/arr-prev.png b/applications/content/template/docbook/slides/graphics/active/arr-prev.png
new file mode 100644
index 0000000..f94e27e
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/arr-prev.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/but-fforward.png b/applications/content/template/docbook/slides/graphics/active/but-fforward.png
new file mode 100644
index 0000000..5e74c58
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/but-fforward.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/but-info.png b/applications/content/template/docbook/slides/graphics/active/but-info.png
new file mode 100644
index 0000000..b01be98
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/but-info.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/but-next.png b/applications/content/template/docbook/slides/graphics/active/but-next.png
new file mode 100644
index 0000000..04c9b9b
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/but-next.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/but-prev.png b/applications/content/template/docbook/slides/graphics/active/but-prev.png
new file mode 100644
index 0000000..257f5e3
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/but-prev.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/but-rewind.png b/applications/content/template/docbook/slides/graphics/active/but-rewind.png
new file mode 100644
index 0000000..e79b22b
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/but-rewind.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/nav-home.png b/applications/content/template/docbook/slides/graphics/active/nav-home.png
new file mode 100644
index 0000000..95fe6ee
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/nav-home.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/nav-next.png b/applications/content/template/docbook/slides/graphics/active/nav-next.png
new file mode 100644
index 0000000..46aac7d
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/nav-next.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/nav-prev.png b/applications/content/template/docbook/slides/graphics/active/nav-prev.png
new file mode 100644
index 0000000..e744535
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/nav-prev.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/nav-toc.png b/applications/content/template/docbook/slides/graphics/active/nav-toc.png
new file mode 100644
index 0000000..9b1e0ba
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/nav-toc.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/nav-up.png b/applications/content/template/docbook/slides/graphics/active/nav-up.png
new file mode 100644
index 0000000..8ad45eb
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/nav-up.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/w3c-next.png b/applications/content/template/docbook/slides/graphics/active/w3c-next.png
new file mode 100644
index 0000000..0752ca6
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/w3c-next.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/w3c-prev.png b/applications/content/template/docbook/slides/graphics/active/w3c-prev.png
new file mode 100644
index 0000000..44bf96f
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/w3c-prev.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/active/w3c-toc.png b/applications/content/template/docbook/slides/graphics/active/w3c-toc.png
new file mode 100644
index 0000000..bd78803
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/active/w3c-toc.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/arrow.gif b/applications/content/template/docbook/slides/graphics/arrow.gif
new file mode 100644
index 0000000..126f922
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/arrow.gif
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/blank.gif b/applications/content/template/docbook/slides/graphics/blank.gif
new file mode 100644
index 0000000..839cf03
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/blank.gif
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/blank.png b/applications/content/template/docbook/slides/graphics/blank.png
new file mode 100644
index 0000000..8c58c6b
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/blank.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/hidetoc.gif b/applications/content/template/docbook/slides/graphics/hidetoc.gif
new file mode 100644
index 0000000..fb58394
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/hidetoc.gif
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/inactive/but-fforward.png b/applications/content/template/docbook/slides/graphics/inactive/but-fforward.png
new file mode 100644
index 0000000..8ac7f2e
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/inactive/but-fforward.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/inactive/but-info.png b/applications/content/template/docbook/slides/graphics/inactive/but-info.png
new file mode 100644
index 0000000..fdf1f1d
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/inactive/but-info.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/inactive/but-next.png b/applications/content/template/docbook/slides/graphics/inactive/but-next.png
new file mode 100644
index 0000000..fa516b2
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/inactive/but-next.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/inactive/but-prev.png b/applications/content/template/docbook/slides/graphics/inactive/but-prev.png
new file mode 100644
index 0000000..dd74e7a
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/inactive/but-prev.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/inactive/but-rewind.png b/applications/content/template/docbook/slides/graphics/inactive/but-rewind.png
new file mode 100644
index 0000000..e20adfb
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/inactive/but-rewind.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/inactive/nav-home.png b/applications/content/template/docbook/slides/graphics/inactive/nav-home.png
new file mode 100644
index 0000000..734845a
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/inactive/nav-home.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/inactive/nav-next.png b/applications/content/template/docbook/slides/graphics/inactive/nav-next.png
new file mode 100644
index 0000000..1d32d67
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/inactive/nav-next.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/inactive/nav-prev.png b/applications/content/template/docbook/slides/graphics/inactive/nav-prev.png
new file mode 100644
index 0000000..cfca206
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/inactive/nav-prev.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/inactive/nav-toc.png b/applications/content/template/docbook/slides/graphics/inactive/nav-toc.png
new file mode 100644
index 0000000..d63483b
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/inactive/nav-toc.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/inactive/nav-up.png b/applications/content/template/docbook/slides/graphics/inactive/nav-up.png
new file mode 100644
index 0000000..689af7e
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/inactive/nav-up.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/inactive/w3c-next.png b/applications/content/template/docbook/slides/graphics/inactive/w3c-next.png
new file mode 100644
index 0000000..400fa60
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/inactive/w3c-next.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/inactive/w3c-prev.png b/applications/content/template/docbook/slides/graphics/inactive/w3c-prev.png
new file mode 100644
index 0000000..2717d38
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/inactive/w3c-prev.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/inactive/w3c-toc.png b/applications/content/template/docbook/slides/graphics/inactive/w3c-toc.png
new file mode 100644
index 0000000..458539d
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/inactive/w3c-toc.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/plus.gif b/applications/content/template/docbook/slides/graphics/plus.gif
new file mode 100644
index 0000000..3cd2b08
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/plus.gif
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/pointer.png b/applications/content/template/docbook/slides/graphics/pointer.png
new file mode 100644
index 0000000..35d4830
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/pointer.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/showtoc.gif b/applications/content/template/docbook/slides/graphics/showtoc.gif
new file mode 100644
index 0000000..4cbe4a3
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/showtoc.gif
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/toc/bullet.png b/applications/content/template/docbook/slides/graphics/toc/bullet.png
new file mode 100644
index 0000000..3878b5b
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/toc/bullet.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/toc/closed.png b/applications/content/template/docbook/slides/graphics/toc/closed.png
new file mode 100644
index 0000000..b99daf7
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/toc/closed.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/graphics/toc/open.png b/applications/content/template/docbook/slides/graphics/toc/open.png
new file mode 100644
index 0000000..e96afe3
--- /dev/null
+++ b/applications/content/template/docbook/slides/graphics/toc/open.png
Binary files differ
diff --git a/applications/content/template/docbook/slides/html/css.xsl b/applications/content/template/docbook/slides/html/css.xsl
new file mode 100644
index 0000000..1692000
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/html/default.xsl b/applications/content/template/docbook/slides/html/default.xsl
new file mode 100644
index 0000000..00a0d81
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/html/flat.xsl b/applications/content/template/docbook/slides/html/flat.xsl
new file mode 100644
index 0000000..30fbf00
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/html/frames.xsl b/applications/content/template/docbook/slides/html/frames.xsl
new file mode 100644
index 0000000..05633de
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/html/graphics.xsl b/applications/content/template/docbook/slides/html/graphics.xsl
new file mode 100644
index 0000000..b682acd
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/html/jscript.xsl b/applications/content/template/docbook/slides/html/jscript.xsl
new file mode 100644
index 0000000..ae4ef9f
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/html/param.xml b/applications/content/template/docbook/slides/html/param.xml
new file mode 100644
index 0000000..d8bd1fc
--- /dev/null
+++ b/applications/content/template/docbook/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$
+</releaseinfo>
+<author>
+  <personname>
+    <surname>Walsh</surname>
+    <firstname>Norman</firstname>
+  </personname>
+</author>
+<copyright>
+  <year>2002-2011</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$
+     ********************************************************************
+
+     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/applications/content/template/docbook/slides/html/param.xsl b/applications/content/template/docbook/slides/html/param.xsl
new file mode 100644
index 0000000..62db2cb
--- /dev/null
+++ b/applications/content/template/docbook/slides/html/param.xsl
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!-- This file is generated from param.xweb -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     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/applications/content/template/docbook/slides/html/plain.xsl b/applications/content/template/docbook/slides/html/plain.xsl
new file mode 100644
index 0000000..47224da
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/html/slides-common.xsl b/applications/content/template/docbook/slides/html/slides-common.xsl
new file mode 100644
index 0000000..9848586
--- /dev/null
+++ b/applications/content/template/docbook/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"/>
+
+<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/applications/content/template/docbook/slides/html/tables.xsl b/applications/content/template/docbook/slides/html/tables.xsl
new file mode 100644
index 0000000..0462528
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/html/vslides.xsl b/applications/content/template/docbook/slides/html/vslides.xsl
new file mode 100644
index 0000000..f490099
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/html/w3c.xsl b/applications/content/template/docbook/slides/html/w3c.xsl
new file mode 100644
index 0000000..5a5b420
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/htmlhelp/htmlhelp.xsl b/applications/content/template/docbook/slides/htmlhelp/htmlhelp.xsl
new file mode 100644
index 0000000..ad988b3
--- /dev/null
+++ b/applications/content/template/docbook/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$
+     ******************************************************************** 
+
+     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/applications/content/template/docbook/slides/keynote/default.xsl b/applications/content/template/docbook/slides/keynote/default.xsl
new file mode 100644
index 0000000..004a13a
--- /dev/null
+++ b/applications/content/template/docbook/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$</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/applications/content/template/docbook/slides/keynote/xsltsl/cmp.xsl b/applications/content/template/docbook/slides/keynote/xsltsl/cmp.xsl
new file mode 100644
index 0000000..490ddbf
--- /dev/null
+++ b/applications/content/template/docbook/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$
+      </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/applications/content/template/docbook/slides/keynote/xsltsl/date-time.xsl b/applications/content/template/docbook/slides/keynote/xsltsl/date-time.xsl
new file mode 100644
index 0000000..d221928
--- /dev/null
+++ b/applications/content/template/docbook/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$
+      </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/applications/content/template/docbook/slides/keynote/xsltsl/example.xsl b/applications/content/template/docbook/slides/keynote/xsltsl/example.xsl
new file mode 100644
index 0000000..4c7b4ac
--- /dev/null
+++ b/applications/content/template/docbook/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$
+      </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/applications/content/template/docbook/slides/keynote/xsltsl/markup.xsl b/applications/content/template/docbook/slides/keynote/xsltsl/markup.xsl
new file mode 100644
index 0000000..453e7f4
--- /dev/null
+++ b/applications/content/template/docbook/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$
+      </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/applications/content/template/docbook/slides/keynote/xsltsl/math.xsl b/applications/content/template/docbook/slides/keynote/xsltsl/math.xsl
new file mode 100644
index 0000000..c7327a5
--- /dev/null
+++ b/applications/content/template/docbook/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$
+      </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/applications/content/template/docbook/slides/keynote/xsltsl/node.xsl b/applications/content/template/docbook/slides/keynote/xsltsl/node.xsl
new file mode 100644
index 0000000..a15d274
--- /dev/null
+++ b/applications/content/template/docbook/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$
+      </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/applications/content/template/docbook/slides/keynote/xsltsl/stdlib.xsl b/applications/content/template/docbook/slides/keynote/xsltsl/stdlib.xsl
new file mode 100644
index 0000000..e934f10
--- /dev/null
+++ b/applications/content/template/docbook/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$ -->
+
+      <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/applications/content/template/docbook/slides/keynote/xsltsl/string.xsl b/applications/content/template/docbook/slides/keynote/xsltsl/string.xsl
new file mode 100644
index 0000000..c721e1e
--- /dev/null
+++ b/applications/content/template/docbook/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$
+      </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/applications/content/template/docbook/slides/keynote/xsltsl/svg.xsl b/applications/content/template/docbook/slides/keynote/xsltsl/svg.xsl
new file mode 100644
index 0000000..c64bd1d
--- /dev/null
+++ b/applications/content/template/docbook/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$
+      </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/applications/content/template/docbook/slides/keynote/xsltsl/uri.xsl b/applications/content/template/docbook/slides/keynote/xsltsl/uri.xsl
new file mode 100644
index 0000000..a969f06
--- /dev/null
+++ b/applications/content/template/docbook/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$
+      </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/applications/content/template/docbook/slides/svg/default.xsl b/applications/content/template/docbook/slides/svg/default.xsl
new file mode 100644
index 0000000..3ca02a3
--- /dev/null
+++ b/applications/content/template/docbook/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$</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/applications/content/template/docbook/slides/xhtml/css.xsl b/applications/content/template/docbook/slides/xhtml/css.xsl
new file mode 100644
index 0000000..d0b47c6
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/xhtml/default.xsl b/applications/content/template/docbook/slides/xhtml/default.xsl
new file mode 100644
index 0000000..86f2cb3
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/xhtml/flat.xsl b/applications/content/template/docbook/slides/xhtml/flat.xsl
new file mode 100644
index 0000000..e0c57e9
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/xhtml/frames.xsl b/applications/content/template/docbook/slides/xhtml/frames.xsl
new file mode 100644
index 0000000..aea4172
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/xhtml/graphics.xsl b/applications/content/template/docbook/slides/xhtml/graphics.xsl
new file mode 100644
index 0000000..6317a4b
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/xhtml/jscript.xsl b/applications/content/template/docbook/slides/xhtml/jscript.xsl
new file mode 100644
index 0000000..b3047ee
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/xhtml/param.xsl b/applications/content/template/docbook/slides/xhtml/param.xsl
new file mode 100644
index 0000000..5d81728
--- /dev/null
+++ b/applications/content/template/docbook/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$
+     ********************************************************************
+
+     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/applications/content/template/docbook/slides/xhtml/plain.xsl b/applications/content/template/docbook/slides/xhtml/plain.xsl
new file mode 100644
index 0000000..29d43fc
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/xhtml/slides-common.xsl b/applications/content/template/docbook/slides/xhtml/slides-common.xsl
new file mode 100644
index 0000000..9128bc3
--- /dev/null
+++ b/applications/content/template/docbook/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"/>
+
+<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/applications/content/template/docbook/slides/xhtml/tables.xsl b/applications/content/template/docbook/slides/xhtml/tables.xsl
new file mode 100644
index 0000000..7d5ec6b
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/xhtml/vslides.xsl b/applications/content/template/docbook/slides/xhtml/vslides.xsl
new file mode 100644
index 0000000..26e9961
--- /dev/null
+++ b/applications/content/template/docbook/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/applications/content/template/docbook/slides/xhtml/w3c.xsl b/applications/content/template/docbook/slides/xhtml/w3c.xsl
new file mode 100644
index 0000000..d361a33
--- /dev/null
+++ b/applications/content/template/docbook/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>
diff --git a/applications/content/template/docbook/svn-commit.tmp b/applications/content/template/docbook/svn-commit.tmp
new file mode 100644
index 0000000..e56c54f
--- /dev/null
+++ b/applications/content/template/docbook/svn-commit.tmp
@@ -0,0 +1,4 @@
+Restore VERSION to snapshot state.
+--This line, and those below, will be ignored--
+
+M    VERSION
diff --git a/applications/content/template/docbook/template/titlepage.xml b/applications/content/template/docbook/template/titlepage.xml
new file mode 100644
index 0000000..f5e10f5
--- /dev/null
+++ b/applications/content/template/docbook/template/titlepage.xml
@@ -0,0 +1,478 @@
+<?xml version="1.0"?>
+
+<reference xml:id="template"><?dbhtml dir="template"?><?dbhtml filename="index.html"?>
+  
+  
+  <info>
+    <title>Titlepage Template Stylesheet Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro xml:id="intro_partintro">
+    <title>Introduction</title>
+    
+<para>This is technical reference documentation for the
+      “titlepage” templates in the DocBook XSL Stylesheets.</para>
+
+    
+<para>This is not intended to be user documentation.  It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+
+  </partintro>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="templates">
+<refnamediv>
+<refname>t:templates</refname>
+<refpurpose>Construct a stylesheet for the templates provided</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:templates"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The <literal>t:templates</literal> element is the root of a
+set of templates. This template creates an appropriate
+<literal>xsl:stylesheet</literal> for the templates.</para>
+
+
+
+<para>If the <literal>t:templates</literal> element has a
+<literal>base-stylesheet</literal> attribute, an
+<literal>xsl:import</literal> statement is constructed for it.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star">
+<refnamediv>
+<refname>xsl:*</refname>
+<refpurpose>Copy xsl: elements straight through</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="xsl:*"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template simply copies the xsl: elements
+straight through into the result tree.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage">
+<refnamediv>
+<refname>t:titlepage</refname>
+<refpurpose>Create the templates necessary to construct a title page</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:titlepage"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The <literal>t:titlepage</literal> element creates a set of
+templates for processing the titlepage for an element. The
+<quote>root</quote> of this template set is the template named
+<quote><literal>wrapper.titlepage</literal></quote>. That is the
+template that should be called to generate the title page.
+</para>
+
+
+
+<para>The <literal>t:titlepage</literal> element has three attributes:
+
+
+<variablelist>
+<varlistentry><term>element</term>
+<listitem>
+<para>The name of the source document element for which
+these templates apply. In other words, to make a title page for the
+<tag>article</tag> element, set the
+<tag class="attribute">element</tag> attribute to
+<quote><literal>article</literal></quote>. This attribute is required.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>wrapper</term>
+<listitem>
+<para>The entire title page can be wrapped with an element.
+This attribute identifies that element.
+</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>class</term>
+<listitem>
+<para>If the <tag class="attribute">class</tag> attribute
+is set, a <tag class="attribute">class</tag> attribute with this
+value will be added to the wrapper element that surrounds the entire
+title page.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</para>
+
+
+
+<para>Any other attributes are copied through literally to the
+wrapper element.</para>
+
+
+
+<para>The content of a <literal>t:titlepage</literal> is one or
+more <literal>t:titlepage-content</literal>,
+<literal>t:titlepage-separator</literal>, and
+<literal>t:titlepage-before</literal> elements.</para>
+
+
+
+<para>Each of these elements may be provided for the <quote>recto</quote>
+and <quote>verso</quote> sides of the title page.</para>
+
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="attr_star_in_copy.literal.atts">
+<refnamediv>
+<refname>@* (in copy.literal.atts mode)</refname>
+<refpurpose>Copy t:titlepage attributes</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="@*" mode="copy.literal.atts"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template copies all of the <quote>other</quote> attributes
+from a <literal>t:titlepage</literal> element onto the specified
+wrapper.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage-content">
+<refnamediv>
+<refname>t:titlepage-content</refname>
+<refpurpose>Create templates for the content of one side of a title page</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:titlepage-content"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The title page content, that is, the elements from the source
+document that are rendered on the title page, can be controlled independently
+for the recto and verso sides of the title page.</para>
+
+
+
+<para>The <literal>t:titlepage-content</literal> element has two attributes:
+
+
+<variablelist>
+<varlistentry><term>side</term>
+<listitem>
+<para>Identifies the side of the page to which this title
+page content applies. The
+<tag class="attribute">side</tag> attribute is required and
+must be set to either 
+<quote><literal>recto</literal></quote> or
+<quote><literal>verso</literal></quote>. In addition, you must specify
+exactly one <literal>t:titlepage-content</literal> for each side
+within each <literal>t:titlepage</literal>.</para>
+
+</listitem>
+</varlistentry>
+<varlistentry><term>order</term>
+<listitem>
+<para>Indicates how the order of the elements presented on
+the title page is determined. If the
+<tag class="attribute">order</tag> is
+<quote><literal>document</literal></quote>, the elements are presented
+in document order. Otherwise (if the
+<tag class="attribute">order</tag> is
+<quote><literal>stylesheet</literal></quote>), the elements are presented
+in the order that they appear in the template (and consequently in
+the stylesheet).</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</para>
+
+
+
+<para>The content of a <literal>t:titlepage-content</literal> element is
+a list of element names. These names should be unqualified.  They identify
+the elements in the source document that should appear on the title page.
+</para>
+
+
+
+<para>Each element may have a single attribute:
+<tag class="attribute">predicate</tag>. The value of this
+attribute is used as a predicate for the expression that matches
+the element on which it occurs.</para>
+
+
+
+<para>In other words, to put only the first three authors on the
+recto-side of a title
+page, you could specify:
+
+<screen>
+  &lt;t:titlepage-contents side="recto"&gt;
+    &lt;!-- other titlepage elements --&gt;
+    &lt;author predicate="[count(previous-sibling::author)&lt;2]"/&gt;
+    &lt;!-- other titlepage elements --&gt;
+  &lt;/t:titlepage-contents&gt;
+</screen>
+</para>
+
+
+
+<para>Usually, the elements so named are empty. But it is possible to
+make one level of selection within them. Suppose that you want to
+process <literal>authorgroup</literal> elements on the title page, but
+you want to select only proper authors, editors, or corporate authors,
+not collaborators or other credited authors.</para>
+
+
+
+<para>In that case, you can put a <literal>t:or</literal> group inside
+the <literal>authorgroup</literal> element:
+
+<screen>
+  &lt;t:titlepage-contents side="recto"&gt;
+    &lt;!-- other titlepage elements --&gt;
+    &lt;authorgroup&gt;
+      &lt;t:or&gt;
+        &lt;author/&gt;
+        &lt;editor/&gt;
+        &lt;corpauthor/&gt;
+      &lt;/t:or&gt;
+    &lt;/authorgroup&gt;
+    &lt;!-- other titlepage elements --&gt;
+  &lt;/t:titlepage-contents&gt;
+</screen>
+</para>
+
+
+
+<para>This will have the effect of automatically generating a template
+for processing <literal>authorgroup</literal>s in the title page mode,
+selecting only the specified children. If you need more complex processing,
+you'll have to construct the templates by hand.</para>
+
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage-separator">
+<refnamediv>
+<refname>t:titlepage-separator</refname>
+<refpurpose>Create templates for the separator</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:titlepage-separator"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The title page is separated from the content which follows it by
+the markup specified in the <literal>t:titlepage-separator</literal>
+element.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage-before">
+<refnamediv>
+<refname>t:titlepage-before</refname>
+<refpurpose>Create templates for what precedes a title page</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:titlepage-before"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>Each side of the title page is preceded by the markup specified
+in the <literal>t:titlepage-before</literal> element for that
+side.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_copy">
+<refnamediv>
+<refname>* (in copy mode)</refname>
+<refpurpose>Copy elements</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="copy"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template simply copies the elements that it applies to
+straight through into the result tree.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="attr_star_in_copy">
+<refnamediv>
+<refname>@* (in copy mode)</refname>
+<refpurpose>Copy attributes</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="@*" mode="copy"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template simply copies the attributes that it applies to
+straight through into the result tree.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="attr_star_in_document.order">
+<refnamediv>
+<refname>* (in document.order mode)</refname>
+<refpurpose>Create rules to process titlepage elements in document order</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="document.order"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template is called to process all of the children of the
+<literal>t:titlepage-content</literal> element. It creates the hairy
+select expression necessary to process each of those elements in
+the title page.</para>
+
+
+
+<para>Note that this template automatically handles the case where
+some DocBook elements, like title and subtitle, can occur both inside
+the *info elements where metadata is usually stored and outside.
+</para>
+
+
+
+<para>It also automatically calculates the name for the *info container
+and handles elements that have historically had containers with different
+names.</para>
+
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_document.order">
+<refnamediv>
+<refname>* (in document.order mode)</refname>
+<refpurpose>Create rules to process titlepage elements in stylesheet order</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="document.order"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template is called to process all of the children of the
+<literal>t:titlepage-content</literal> element. It creates the set
+of <literal>xsl:apply-templates</literal> elements necessary
+process each of those elements in the title page.</para>
+
+
+
+<para>Note that this template automatically handles the case where
+some DocBook elements, like title and subtitle, can occur both inside
+the *info elements where metadata is usually stored and outside.
+</para>
+
+
+
+<para>It also automatically calculates the name for the *info container
+and handles elements that have historically had containers with different
+names.</para>
+
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_titlepage.specialrules">
+<refnamediv>
+<refname>* (in titlepage.specialrules mode)</refname>
+<refpurpose>Create templates for special rules</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="titlepage.specialrules"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template is called to process all of the descendants of the
+<literal>t:titlepage-content</literal> element that require special
+processing. At present, that's just <literal>t:or</literal> elements.
+</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_titlepage.subrules">
+<refnamediv>
+<refname>* (in titlepage.subrules mode)</refname>
+<refpurpose>Create template for individual special rules</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="*" mode="titlepage.subrules"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template is called to process the children of special
+template elements.
+</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="or">
+<refnamediv>
+<refname>t:or</refname>
+<refpurpose>Process the t:or special rule</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:or"/&gt;&lt;xsl:template match="t:or" mode="titlepage.subrules"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>This template processes t:or.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="or_in_titlepage.subrules">
+<refnamediv>
+<refname>t:or (in titlepage.subrules mode)</refname>
+<refpurpose>Process the t:or special rule in
+titlepage.subrules mode</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template match="t:or" mode="titlepage.subrules"/&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>The titlepage.subrules mode doesn't apply to t:or, so just
+reprocess this node in the normal mode.</para>
+
+</refsect1></refentry>
+
+<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.element-or-list">
+<refnamediv>
+<refname>element-or-list</refname>
+<refpurpose>Construct the "or-list" used in the select attribute for
+special rules.</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>&lt;xsl:template name="element-or-list"&gt;
+&lt;xsl:param name="elements" select="*"/&gt;
+&lt;xsl:param name="element.count" select="count($elements)"/&gt;
+&lt;xsl:param name="count" select="1"/&gt;
+&lt;xsl:param name="orlist"/&gt;
+  ...
+&lt;/xsl:template&gt;</synopsis>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+
+<para>Walk through each of the children of t:or, producing the
+text of the select attribute.</para>
+
+</refsect1></refentry>
+</reference>
+
diff --git a/applications/content/template/docbook/template/titlepage.xsl b/applications/content/template/docbook/template/titlepage.xsl
new file mode 100644
index 0000000..012ff5e
--- /dev/null
+++ b/applications/content/template/docbook/template/titlepage.xsl
@@ -0,0 +1,1304 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
+                xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:exsl="http://exslt.org/common"
+                exclude-result-prefixes="doc t param exsl"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- Namespace for wrapper elements. Please set it for XHTML. -->
+<xsl:param name="ns"/>
+
+<xsl:template match="/">
+  <xsl:text>&#x0a;</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>&#x0a;</xsl:text>
+</xsl:template>
+
+<doc:reference xmlns="" xml:id="template">
+  <?dbhtml dir="template"?>
+  <?dbhtml filename="index.html"?>
+  <info>
+    <title>Titlepage Template Stylesheet Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro xml:id="intro_partintro">
+    <title>Introduction</title>
+    <para>This is technical reference documentation for the
+      “titlepage” templates in the DocBook XSL Stylesheets.</para>
+    <para>This is not intended to be user documentation.  It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+  </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<xsl:preserve-space elements="*"/>
+<xsl:strip-space elements="xsl:* t:*"/>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:templates" xmlns="" id="templates">
+<refpurpose>Construct a stylesheet for the templates provided</refpurpose>
+
+<refdescription>
+<para>The <literal>t:templates</literal> element is the root of a
+set of templates. This template creates an appropriate
+<literal>xsl:stylesheet</literal> for the templates.</para>
+
+<para>If the <literal>t:templates</literal> element has a
+<literal>base-stylesheet</literal> attribute, an
+<literal>xsl:import</literal> statement is constructed for it.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:templates">
+  <xsl:element name="xsl:stylesheet">
+
+    <xsl:for-each select="document('')/xsl:stylesheet/namespace::exsl">
+      <xsl:copy/>
+    </xsl:for-each>
+
+    <xsl:attribute name="version">1.0</xsl:attribute>
+    <xsl:attribute name="exclude-result-prefixes">exsl</xsl:attribute>
+
+    <xsl:text>&#xA;&#xA;</xsl:text>
+    <xsl:comment>
+      <xsl:text> This stylesheet was created by </xsl:text>
+      <xsl:text>template/titlepage.xsl</xsl:text>
+    </xsl:comment>
+
+    <xsl:if test="@t:base-stylesheet">
+      <xsl:text>&#xA;&#xA;</xsl:text>
+      <xsl:element name="xsl:import">
+        <xsl:attribute name="href">
+          <xsl:value-of select="@t:base-stylesheet"/>
+        </xsl:attribute>
+      </xsl:element>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+
+    <xsl:text>&#xA;&#xA;</xsl:text>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="xsl:*" xmlns="" id="star">
+<refpurpose>Copy xsl: elements straight through</refpurpose>
+
+<refdescription>
+<para>This template simply copies the xsl: elements
+straight through into the result tree.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="xsl:*">
+  <xsl:apply-templates select="." mode="copy"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:titlepage" xmlns="" id="titlepage">
+<refpurpose>Create the templates necessary to construct a title page</refpurpose>
+
+<refdescription>
+<para>The <literal>t:titlepage</literal> element creates a set of
+templates for processing the titlepage for an element. The
+<quote>root</quote> of this template set is the template named
+<quote><literal>wrapper.titlepage</literal></quote>. That is the
+template that should be called to generate the title page.
+</para>
+
+<para>The <literal>t:titlepage</literal> element has three attributes:
+
+<variablelist>
+<varlistentry><term>element</term>
+<listitem><para>The name of the source document element for which
+these templates apply. In other words, to make a title page for the
+<tag>article</tag> element, set the
+<tag class="attribute">element</tag> attribute to
+<quote><literal>article</literal></quote>. This attribute is required.
+</para></listitem>
+</varlistentry>
+<varlistentry><term>wrapper</term>
+<listitem><para>The entire title page can be wrapped with an element.
+This attribute identifies that element.
+</para></listitem>
+</varlistentry>
+<varlistentry><term>class</term>
+<listitem><para>If the <tag class="attribute">class</tag> attribute
+is set, a <tag class="attribute">class</tag> attribute with this
+value will be added to the wrapper element that surrounds the entire
+title page.
+</para></listitem>
+</varlistentry>
+</variablelist>
+</para>
+
+<para>Any other attributes are copied through literally to the
+wrapper element.</para>
+
+<para>The content of a <literal>t:titlepage</literal> is one or
+more <literal>t:titlepage-content</literal>,
+<literal>t:titlepage-separator</literal>, and
+<literal>t:titlepage-before</literal> elements.</para>
+
+<para>Each of these elements may be provided for the <quote>recto</quote>
+and <quote>verso</quote> sides of the title page.</para>
+
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:titlepage">
+  <!-- process the children to make the templates for the content,
+       separator, and before elements -->
+  <xsl:apply-templates/>
+
+  <!-- output the title page template -->
+  <xsl:text>&#xA;&#xA;</xsl:text>
+  <xsl:element name="xsl:template">
+    <xsl:attribute name="name">
+      <xsl:value-of select="@t:element"/>
+      <xsl:text>.titlepage</xsl:text>
+    </xsl:attribute>
+    <xsl:text>&#xA;  </xsl:text>
+    <xsl:element name="{@t:wrapper}" namespace="{$ns}">
+      <xsl:apply-templates select="@*" mode="copy.literal.atts"/>
+      <xsl:text>&#xA;    </xsl:text>
+      <xsl:element name="xsl:variable">
+        <xsl:attribute name="name">recto.content</xsl:attribute>
+        <xsl:text>&#xA;      </xsl:text>
+        <xsl:element name="xsl:call-template">
+          <xsl:attribute name="name">
+            <xsl:value-of select="@t:element"/>
+            <xsl:text>.titlepage.before.recto</xsl:text>
+          </xsl:attribute>
+        </xsl:element>
+        <xsl:text>&#xA;      </xsl:text>
+        <xsl:element name="xsl:call-template">
+          <xsl:attribute name="name">
+            <xsl:value-of select="@t:element"/>
+            <xsl:text>.titlepage.recto</xsl:text>
+          </xsl:attribute>
+        </xsl:element>
+        <xsl:text>&#xA;    </xsl:text>
+      </xsl:element>
+      <xsl:text>&#xA;    </xsl:text>
+      <xsl:element name="xsl:variable">
+	<xsl:attribute name="name">recto.elements.count</xsl:attribute>
+	<xsl:text>&#xA;      </xsl:text>
+	<xsl:element name="xsl:choose">
+	  <xsl:text>&#xA;        </xsl:text>
+	  <xsl:element name="xsl:when">
+	    <xsl:attribute name="test">function-available('exsl:node-set')</xsl:attribute>
+	    <xsl:element name="xsl:value-of">
+	      <xsl:attribute name="select">count(exsl:node-set($recto.content)/*)</xsl:attribute>
+	    </xsl:element>
+	  </xsl:element>
+	  <xsl:text>&#xA;        </xsl:text>
+	  <xsl:element name="xsl:when">
+	    <xsl:attribute name="test">contains(system-property('xsl:vendor'), 'Apache Software Foundation')</xsl:attribute>
+	    <xsl:text>&#xA;          </xsl:text>
+	    <xsl:comment>Xalan quirk</xsl:comment>
+	    <xsl:element name="xsl:value-of">
+	      <xsl:attribute name="select">count(exsl:node-set($recto.content)/*)</xsl:attribute>
+	    </xsl:element>
+	  </xsl:element>
+	  <xsl:text>&#xA;        </xsl:text>
+	  <xsl:element name="xsl:otherwise">
+	    <xsl:text>1</xsl:text>
+	  </xsl:element>
+	  <xsl:text>&#xA;      </xsl:text>
+	</xsl:element>
+	<xsl:text>&#xA;    </xsl:text>
+      </xsl:element>
+      <xsl:text>&#xA;    </xsl:text>
+      <xsl:element name="xsl:if">
+        <xsl:attribute name="test">(normalize-space($recto.content) != '') or ($recto.elements.count > 0)</xsl:attribute>
+        <xsl:text>&#xA;      </xsl:text>
+        <xsl:element name="{@t:wrapper}" namespace="{$ns}">
+          <xsl:apply-templates select="t:titlepage-content[@t:side='recto']/@*"
+                               mode="copy.literal.atts"/>
+          <xsl:element name="xsl:copy-of">
+            <xsl:attribute name="select">$recto.content</xsl:attribute>
+          </xsl:element>
+        </xsl:element>
+        <xsl:text>&#xA;    </xsl:text>
+      </xsl:element>
+      <xsl:text>&#xA;    </xsl:text>
+      <xsl:element name="xsl:variable">
+        <xsl:attribute name="name">verso.content</xsl:attribute>
+        <xsl:text>&#xA;      </xsl:text>
+        <xsl:element name="xsl:call-template">
+          <xsl:attribute name="name">
+            <xsl:value-of select="@t:element"/>
+            <xsl:text>.titlepage.before.verso</xsl:text>
+          </xsl:attribute>
+        </xsl:element>
+        <xsl:text>&#xA;      </xsl:text>
+        <xsl:element name="xsl:call-template">
+          <xsl:attribute name="name">
+            <xsl:value-of select="@t:element"/>
+            <xsl:text>.titlepage.verso</xsl:text>
+          </xsl:attribute>
+        </xsl:element>
+        <xsl:text>&#xA;    </xsl:text>
+      </xsl:element>
+      <xsl:text>&#xA;    </xsl:text>
+      <xsl:element name="xsl:variable">
+	<xsl:attribute name="name">verso.elements.count</xsl:attribute>
+	<xsl:text>&#xA;      </xsl:text>
+	<xsl:element name="xsl:choose">
+	  <xsl:text>&#xA;        </xsl:text>
+	  <xsl:element name="xsl:when">
+	    <xsl:attribute name="test">function-available('exsl:node-set')</xsl:attribute>
+	    <xsl:element name="xsl:value-of">
+	      <xsl:attribute name="select">count(exsl:node-set($verso.content)/*)</xsl:attribute>
+	    </xsl:element>
+	  </xsl:element>
+	  <xsl:text>&#xA;        </xsl:text>
+	  <xsl:element name="xsl:when">
+	    <xsl:attribute name="test">contains(system-property('xsl:vendor'), 'Apache Software Foundation')</xsl:attribute>
+	    <xsl:text>&#xA;          </xsl:text>
+	    <xsl:comment>Xalan quirk</xsl:comment>
+	    <xsl:element name="xsl:value-of">
+	      <xsl:attribute name="select">count(exsl:node-set($verso.content)/*)</xsl:attribute>
+	    </xsl:element>
+	  </xsl:element>
+	  <xsl:text>&#xA;        </xsl:text>
+	  <xsl:element name="xsl:otherwise">
+	    <xsl:text>1</xsl:text>
+	  </xsl:element>
+	  <xsl:text>&#xA;      </xsl:text>
+	</xsl:element>
+	<xsl:text>&#xA;    </xsl:text>
+      </xsl:element>
+      <xsl:text>&#xA;    </xsl:text>
+      <xsl:element name="xsl:if">
+        <xsl:attribute name="test">(normalize-space($verso.content) != '') or ($verso.elements.count > 0)</xsl:attribute>
+        <xsl:text>&#xA;      </xsl:text>
+        <xsl:element name="{@t:wrapper}" namespace="{$ns}">
+          <xsl:apply-templates select="t:titlepage-content[@t:side='verso']/@*"
+                               mode="copy.literal.atts"/>
+          <xsl:element name="xsl:copy-of">
+            <xsl:attribute name="select">$verso.content</xsl:attribute>
+          </xsl:element>
+        </xsl:element>
+        <xsl:text>&#xA;    </xsl:text>
+      </xsl:element>
+      <xsl:text>&#xA;    </xsl:text>
+      <xsl:element name="xsl:call-template">
+        <xsl:attribute name="name">
+          <xsl:value-of select="@t:element"/>
+          <xsl:text>.titlepage.separator</xsl:text>
+        </xsl:attribute>
+      </xsl:element>
+      <xsl:text>&#xA;  </xsl:text>
+    </xsl:element>
+    <xsl:text>&#xA;</xsl:text>
+  </xsl:element>
+
+  <!-- If we're not importing a base stylesheet, output a default rule
+       for the recto- and verso-mode elements. (If we are importing a
+       base stylesheet, don't do this since the *-rules in the stylesheet
+       will totally override the rules that would otherwise be imported.)
+       -->
+
+  <xsl:if test="not(../@t:base-stylesheet)">
+    <!-- output a default rule for the recto-modes elements -->
+    <xsl:text>&#xA;&#xA;</xsl:text>
+    <xsl:element name="xsl:template">
+      <xsl:attribute name="match">*</xsl:attribute>
+      <xsl:attribute name="mode">
+        <xsl:value-of select="@t:element"/>
+        <xsl:text>.titlepage.recto.mode</xsl:text>
+      </xsl:attribute>
+      <xsl:text>&#xA;  </xsl:text>
+      <xsl:comment> if an element isn't found in this mode, </xsl:comment>
+      <xsl:text>&#xA;  </xsl:text>
+      <xsl:comment> try the generic titlepage.mode </xsl:comment>
+      <xsl:text>&#xA;  </xsl:text>
+      <xsl:element name="xsl:apply-templates">
+        <xsl:attribute name="select">.</xsl:attribute>
+        <xsl:attribute name="mode">titlepage.mode</xsl:attribute>
+      </xsl:element>
+      <xsl:text>&#xA;</xsl:text>
+    </xsl:element>
+
+    <!-- output a default rule for the verso-modes elements -->
+    <xsl:text>&#xA;&#xA;</xsl:text>
+    <xsl:element name="xsl:template">
+      <xsl:attribute name="match">*</xsl:attribute>
+      <xsl:attribute name="mode">
+        <xsl:value-of select="@t:element"/>
+        <xsl:text>.titlepage.verso.mode</xsl:text>
+      </xsl:attribute>
+      <xsl:text>&#xA;  </xsl:text>
+      <xsl:comment> if an element isn't found in this mode, </xsl:comment>
+      <xsl:text>&#xA;  </xsl:text>
+      <xsl:comment> try the generic titlepage.mode </xsl:comment>
+      <xsl:text>&#xA;  </xsl:text>
+      <xsl:element name="xsl:apply-templates">
+        <xsl:attribute name="select">.</xsl:attribute>
+        <xsl:attribute name="mode">titlepage.mode</xsl:attribute>
+      </xsl:element>
+      <xsl:text>&#xA;</xsl:text>
+    </xsl:element>
+  </xsl:if>
+
+  <!-- output default templates for each of the elements listed in  -->
+  <!-- the titlepage-content. If a template is suppressed or forced -->
+  <!-- to be off, or has already been output, don't output it.      -->
+  <xsl:for-each select="t:titlepage-content/*">
+    <xsl:variable name="thisnode" select="."/>
+    <xsl:if test="(not(@t:suppress-template) or @t:suppress-template='0')
+                  and (not(@t:force) or @t:force='0')
+                  and (not(preceding-sibling::*[name(.)=name($thisnode)]))">
+      <xsl:text>&#xA;&#xA;</xsl:text>
+      <xsl:element name="xsl:template">
+        <xsl:attribute name="match">
+          <xsl:value-of select="name(.)"/>
+        </xsl:attribute>
+        <xsl:attribute name="mode">
+          <xsl:value-of select="../../@t:element"/>
+          <xsl:text>.titlepage.</xsl:text>
+          <xsl:value-of select="../@t:side"/>
+          <xsl:text>.auto.mode</xsl:text>
+        </xsl:attribute>
+        <xsl:text>&#xA;</xsl:text>
+        <xsl:element name="{../../@t:wrapper}" namespace="{$ns}">
+          <xsl:attribute name="xsl:use-attribute-sets">
+            <xsl:value-of select="../../@t:element"/>
+            <xsl:text>.titlepage.</xsl:text>
+            <xsl:value-of select="../@t:side"/>
+            <xsl:text>.style</xsl:text>
+          </xsl:attribute>
+          <xsl:for-each select="@*">
+            <xsl:if test="not(starts-with(namespace-uri(.),
+                                'http://nwalsh.com/docbook/xsl/template/1.0'))">
+              <xsl:attribute name="{name(.)}" namespace="{namespace-uri(.)}">
+                <xsl:value-of select="."/>
+              </xsl:attribute>
+            </xsl:if>
+          </xsl:for-each>
+          <xsl:text>&#xA;</xsl:text>
+
+          <xsl:choose>
+            <xsl:when test="@t:named-template">
+              <xsl:element name="xsl:call-template">
+                <xsl:attribute name="name">
+                  <xsl:value-of select="@t:named-template"/>
+                </xsl:attribute>
+                <xsl:for-each select="@*">
+                  <xsl:if test="namespace-uri(.)='http://nwalsh.com/docbook/xsl/template/1.0/param'">
+                    <xsl:text>&#xA;</xsl:text>
+                    <xsl:element name="xsl:with-param">
+                      <xsl:attribute name="name">
+                        <xsl:value-of select="local-name(.)"/>
+                      </xsl:attribute>
+                      <xsl:attribute name="select">
+                        <xsl:value-of select="."/>
+                      </xsl:attribute>
+                    </xsl:element>
+                  </xsl:if>
+                </xsl:for-each>
+                <xsl:text>&#xA;</xsl:text>
+              </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:element name="xsl:apply-templates">
+                <xsl:attribute name="select">.</xsl:attribute>
+                <xsl:attribute name="mode">
+                  <xsl:value-of select="../../@t:element"/>
+                  <xsl:text>.titlepage.</xsl:text>
+                  <xsl:value-of select="../@t:side"/>
+                  <xsl:text>.mode</xsl:text>
+                </xsl:attribute>
+              </xsl:element>
+            </xsl:otherwise>
+          </xsl:choose>
+
+          <xsl:text>&#xA;</xsl:text>
+        </xsl:element>
+        <xsl:text>&#xA;</xsl:text>
+      </xsl:element>
+    </xsl:if>
+  </xsl:for-each>
+</xsl:template>
+
+<doc:template match="@*" mode="copy.literal.atts" xmlns=""
+              id="attr_star_in_copy.literal.atts">
+<refpurpose>Copy t:titlepage attributes</refpurpose>
+
+<refdescription>
+<para>This template copies all of the <quote>other</quote> attributes
+from a <literal>t:titlepage</literal> element onto the specified
+wrapper.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="@*" mode="copy.literal.atts">
+  <xsl:if test="not(starts-with(namespace-uri(.),
+                                'http://nwalsh.com/docbook/xsl/template/1.0'))">
+    <xsl:attribute name="{name(.)}">
+      <xsl:value-of select="."/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:titlepage-content" id="titlepage-content">
+<refpurpose>Create templates for the content of one side of a title page</refpurpose>
+
+<refdescription>
+<para>The title page content, that is, the elements from the source
+document that are rendered on the title page, can be controlled independently
+for the recto and verso sides of the title page.</para>
+
+<para>The <literal>t:titlepage-content</literal> element has two attributes:
+
+<variablelist>
+<varlistentry><term>side</term>
+<listitem><para>Identifies the side of the page to which this title
+page content applies. The
+<tag class="attribute">side</tag> attribute is required and
+must be set to either 
+<quote><literal>recto</literal></quote> or
+<quote><literal>verso</literal></quote>. In addition, you must specify
+exactly one <literal>t:titlepage-content</literal> for each side
+within each <literal>t:titlepage</literal>.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>order</term>
+<listitem><para>Indicates how the order of the elements presented on
+the title page is determined. If the
+<tag class="attribute">order</tag> is
+<quote><literal>document</literal></quote>, the elements are presented
+in document order. Otherwise (if the
+<tag class="attribute">order</tag> is
+<quote><literal>stylesheet</literal></quote>), the elements are presented
+in the order that they appear in the template (and consequently in
+the stylesheet).</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</para>
+
+<para>The content of a <literal>t:titlepage-content</literal> element is
+a list of element names. These names should be unqualified.  They identify
+the elements in the source document that should appear on the title page.
+</para>
+
+<para>Each element may have a single attribute:
+<tag class="attribute">predicate</tag>. The value of this
+attribute is used as a predicate for the expression that matches
+the element on which it occurs.</para>
+
+<para>In other words, to put only the first three authors on the
+recto-side of a title
+page, you could specify:
+
+<screen><![CDATA[
+  <t:titlepage-contents side="recto">
+    <!-- other titlepage elements -->
+    <author predicate="[count(previous-sibling::author)<2]"/>
+    <!-- other titlepage elements -->
+  </t:titlepage-contents>
+]]></screen>
+</para>
+
+<para>Usually, the elements so named are empty. But it is possible to
+make one level of selection within them. Suppose that you want to
+process <literal>authorgroup</literal> elements on the title page, but
+you want to select only proper authors, editors, or corporate authors,
+not collaborators or other credited authors.</para>
+
+<para>In that case, you can put a <literal>t:or</literal> group inside
+the <literal>authorgroup</literal> element:
+
+<screen><![CDATA[
+  <t:titlepage-contents side="recto">
+    <!-- other titlepage elements -->
+    <authorgroup>
+      <t:or>
+        <author/>
+        <editor/>
+        <corpauthor/>
+      </t:or>
+    </authorgroup>
+    <!-- other titlepage elements -->
+  </t:titlepage-contents>
+]]></screen>
+</para>
+
+<para>This will have the effect of automatically generating a template
+for processing <literal>authorgroup</literal>s in the title page mode,
+selecting only the specified children. If you need more complex processing,
+you'll have to construct the templates by hand.</para>
+
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:titlepage-content">
+  <xsl:variable name="side">
+    <xsl:choose>
+      <xsl:when test="@t:side='recto' or @t:side='verso'">
+        <xsl:value-of select="@t:side"/>
+      </xsl:when>
+      <xsl:when test="@t:side">
+        <xsl:message terminate="yes">
+          <xsl:text>Illegal value specified for @t:side </xsl:text>
+          <xsl:text>on t:titlepage-content: </xsl:text>
+          <xsl:value-of select="@t:side"/>
+        </xsl:message>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:message terminate="yes">
+          <xsl:text>The @t:side attribute is required on </xsl:text>
+          <xsl:text>t:titlepage-content.</xsl:text>
+        </xsl:message>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="mode">
+    <xsl:value-of select="../@t:element"/>
+    <xsl:text>.titlepage.</xsl:text>
+    <xsl:value-of select="$side"/>
+    <xsl:text>.auto.mode</xsl:text>
+  </xsl:variable>
+
+  <xsl:text>&#xA;&#xA;</xsl:text>
+  <xsl:element name="xsl:template">
+    <xsl:attribute name="name">
+      <xsl:value-of select="../@t:element"/>
+      <xsl:text>.titlepage.</xsl:text>
+      <xsl:value-of select="$side"/>
+    </xsl:attribute>
+
+    <xsl:choose>
+      <!-- if document order is selected, make a huge select statement
+           on a single xsl:apply-templates to pick out the right elements
+           for the title page. -->
+      <xsl:when test="@t:order='document'">
+        <xsl:if test="count(child::*)&gt;0">
+          <xsl:element name="xsl:apply-templates">
+            <xsl:attribute name="mode">
+              <xsl:value-of select="$mode"/>
+            </xsl:attribute>
+            <xsl:attribute name="select">
+              <xsl:apply-templates mode="document.order"/>
+            </xsl:attribute>
+          </xsl:element>
+        </xsl:if>
+      </xsl:when>
+
+      <!-- otherwise, select each of the elements in the specified order -->
+      <xsl:otherwise>
+        <xsl:apply-templates mode="stylesheet.order"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>&#xA;</xsl:text>
+  </xsl:element>
+  <xsl:apply-templates mode="titlepage.specialrules"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:titlepage-separator" id="titlepage-separator">
+<refpurpose>Create templates for the separator</refpurpose>
+
+<refdescription>
+<para>The title page is separated from the content which follows it by
+the markup specified in the <literal>t:titlepage-separator</literal>
+element.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:titlepage-separator">
+  <xsl:text>&#xA;&#xA;</xsl:text>
+  <xsl:element name="xsl:template">
+    <xsl:attribute name="name">
+      <xsl:value-of select="../@t:element"/>
+      <xsl:text>.titlepage.separator</xsl:text>
+    </xsl:attribute>
+
+    <xsl:apply-templates mode="copy"/>
+    <xsl:text>&#xA;</xsl:text>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:titlepage-before" id="titlepage-before">
+<refpurpose>Create templates for what precedes a title page</refpurpose>
+
+<refdescription>
+<para>Each side of the title page is preceded by the markup specified
+in the <literal>t:titlepage-before</literal> element for that
+side.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:titlepage-before">
+  <xsl:text>&#xA;&#xA;</xsl:text>
+  <xsl:element name="xsl:template">
+    <xsl:attribute name="name">
+      <xsl:value-of select="../@t:element"/>
+      <xsl:text>.titlepage.before.</xsl:text>
+      <xsl:value-of select="@t:side"/>
+    </xsl:attribute>
+
+    <xsl:apply-templates mode="copy"/>
+    <xsl:text>&#xA;</xsl:text>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="*" mode="copy" xmlns="" id="star_in_copy">
+<refpurpose>Copy elements</refpurpose>
+
+<refdescription>
+<para>This template simply copies the elements that it applies to
+straight through into the result tree.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="*" mode="copy">
+  <xsl:choose>
+    <xsl:when test="(name(.) = local-name(.)) and namespace-uri(.) != ''">
+      <xsl:element name="{name(.)}" namespace="{namespace-uri(.)}">
+	<xsl:apply-templates select="@*" mode="copy"/>
+	<xsl:apply-templates mode="copy"/>
+      </xsl:element>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:element name="{name(.)}">
+	<xsl:apply-templates select="@*" mode="copy"/>
+	<xsl:apply-templates mode="copy"/>
+      </xsl:element>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="@*" mode="copy" xmlns="" id="attr_star_in_copy">
+<refpurpose>Copy attributes</refpurpose>
+
+<refdescription>
+<para>This template simply copies the attributes that it applies to
+straight through into the result tree.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="@*" mode="copy">
+  <xsl:choose>
+    <xsl:when test="(name(.) = local-name(.)) and namespace-uri(.) != ''">
+      <xsl:attribute name="{name(.)}" namespace="{namespace-uri(.)}">
+	<xsl:value-of select="."/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:attribute name="{name(.)}">
+	<xsl:value-of select="."/>
+      </xsl:attribute>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="*" mode="document.order" xmlns="" id="attr_star_in_document.order">
+<refpurpose>Create rules to process titlepage elements in document order</refpurpose>
+
+<refdescription>
+<para>This template is called to process all of the children of the
+<literal>t:titlepage-content</literal> element. It creates the hairy
+select expression necessary to process each of those elements in
+the title page.</para>
+
+<para>Note that this template automatically handles the case where
+some DocBook elements, like title and subtitle, can occur both inside
+the *info elements where metadata is usually stored and outside.
+</para>
+
+<para>It also automatically calculates the name for the *info container
+and handles elements that have historically had containers with different
+names.</para>
+
+</refdescription>
+</doc:template>
+
+<xsl:template match="*" mode="document.order">
+  <xsl:variable name="docinfo">
+    <xsl:value-of select="ancestor::t:titlepage/@t:element"/>
+    <xsl:text>info</xsl:text>
+  </xsl:variable>
+
+  <xsl:variable name="altinfo">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage/@t:element='article'">
+        <xsl:text>artheader</xsl:text>
+      </xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='qandaset'">
+        <xsl:text>blockinfo</xsl:text>
+      </xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='section'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='sect1'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='sect2'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='sect3'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='sect4'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='sect5'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='book'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='set'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='topic'"></xsl:when>
+      <xsl:otherwise>docinfo</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="side">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage-content/@t:side">
+        <xsl:value-of select="ancestor::t:titlepage-content/@t:side"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>recto</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="mode">
+    <xsl:value-of select="ancestor::t:titlepage/@t:element"/>
+    <xsl:text>.titlepage.</xsl:text>
+    <xsl:value-of select="$side"/>
+    <xsl:text>.auto.mode</xsl:text>
+  </xsl:variable>
+
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>|</xsl:text>
+  </xsl:if>
+
+  <xsl:value-of select="$docinfo"/>
+  <xsl:text>/</xsl:text>
+  <xsl:value-of select="name(.)"/>
+  <xsl:if test="@t:predicate">
+    <xsl:value-of select="@t:predicate"/>
+  </xsl:if>
+
+  <xsl:if test="$altinfo != ''">
+    <xsl:text>|</xsl:text>
+    <xsl:value-of select="$altinfo"/>
+    <xsl:text>/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:if test="@t:predicate">
+      <xsl:value-of select="@t:predicate"/>
+    </xsl:if>
+  </xsl:if>
+
+  <!-- info -->
+  <xsl:text>|info</xsl:text>
+  <xsl:text>/</xsl:text>
+  <xsl:value-of select="name(.)"/>
+  <xsl:if test="@t:predicate">
+    <xsl:value-of select="@t:predicate"/>
+  </xsl:if>
+
+  <xsl:if test="local-name(.) = 'title'
+                or local-name(.) = 'subtitle'
+                or local-name(.) = 'titleabbrev'">
+    <xsl:text>|</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:if test="@t:predicate">
+      <xsl:value-of select="@t:predicate"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="*" mode="document.order" xmlns="" id="star_in_document.order">
+<refpurpose>Create rules to process titlepage elements in stylesheet order</refpurpose>
+
+<refdescription>
+<para>This template is called to process all of the children of the
+<literal>t:titlepage-content</literal> element. It creates the set
+of <literal>xsl:apply-templates</literal> elements necessary
+process each of those elements in the title page.</para>
+
+<para>Note that this template automatically handles the case where
+some DocBook elements, like title and subtitle, can occur both inside
+the *info elements where metadata is usually stored and outside.
+</para>
+
+<para>It also automatically calculates the name for the *info container
+and handles elements that have historically had containers with different
+names.</para>
+
+</refdescription>
+</doc:template>
+
+<xsl:template match="*" mode="stylesheet.order">
+  <xsl:variable name="docinfo">
+    <xsl:value-of select="ancestor::t:titlepage/@t:element"/>
+    <xsl:text>info</xsl:text>
+  </xsl:variable>
+
+  <xsl:variable name="altinfo">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage/@t:element='article'">
+        <xsl:text>artheader</xsl:text>
+      </xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='qandaset'">
+        <xsl:text>blockinfo</xsl:text>
+      </xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='section'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='sect1'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='sect2'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='sect3'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='sect4'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='sect5'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='book'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='set'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@t:element='topic'"></xsl:when>
+      <xsl:otherwise>docinfo</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="side">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage-content/@t:side">
+        <xsl:value-of select="ancestor::t:titlepage-content/@t:side"/>
+      </xsl:when>
+      <xsl:otherwise>recto</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="mode">
+    <xsl:value-of select="ancestor::t:titlepage/@t:element"/>
+    <xsl:text>.titlepage.</xsl:text>
+    <xsl:value-of select="$side"/>
+    <xsl:text>.auto.mode</xsl:text>
+  </xsl:variable>
+
+  <xsl:text>&#xA;  </xsl:text>
+
+  <xsl:choose>
+    <xsl:when test="@t:force and @t:force != '0'">
+      <xsl:choose>
+        <xsl:when test="@t:named-template">
+          <xsl:element name="{../../@t:wrapper}" namespace="{$ns}">
+            <xsl:attribute name="xsl:use-attribute-sets">
+              <xsl:value-of select="../../@t:element"/>
+              <xsl:text>.titlepage.</xsl:text>
+              <xsl:value-of select="../@t:side"/>
+              <xsl:text>.style</xsl:text>
+            </xsl:attribute>
+            <xsl:for-each select="@*">
+              <xsl:if test="not(starts-with(namespace-uri(.),
+                                  'http://nwalsh.com/docbook/xsl/template/1.0'))">
+                <xsl:attribute name="{name(.)}" namespace="{namespace-uri(.)}">
+                  <xsl:value-of select="."/>
+                </xsl:attribute>
+              </xsl:if>
+            </xsl:for-each>
+            <xsl:text>&#xA;</xsl:text>
+            <xsl:element name="xsl:call-template">
+              <xsl:attribute name="name">
+                <xsl:value-of select="@t:named-template"/>
+              </xsl:attribute>
+              <xsl:for-each select="@*">
+                <xsl:if test="namespace-uri(.)='http://nwalsh.com/docbook/xsl/template/1.0/param'">
+                  <xsl:text>&#xA;</xsl:text>
+                  <xsl:element name="xsl:with-param">
+                    <xsl:attribute name="name">
+                      <xsl:value-of select="local-name(.)"/>
+                    </xsl:attribute>
+                    <xsl:attribute name="select">
+                      <xsl:value-of select="."/>
+                    </xsl:attribute>
+                  </xsl:element>
+                </xsl:if>
+              </xsl:for-each>
+              <xsl:text>&#xA;</xsl:text>
+            </xsl:element>
+          </xsl:element>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message terminate="yes">
+            <xsl:text>Force can only be used with named-templates.</xsl:text>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+
+      <xsl:choose>
+        <xsl:when test="local-name(.) = 'title'
+                        or local-name(.) = 'subtitle'
+                        or local-name(.) = 'titleabbrev'">
+          <!-- the title, subtitle, and titleabbrev elements are special -->
+          <xsl:element name="xsl:choose">
+            <xsl:text>&#xA;    </xsl:text>
+            <xsl:element name="xsl:when">
+              <xsl:attribute name="test">
+                <xsl:value-of select="$docinfo"/>
+                <xsl:text>/</xsl:text>
+                <xsl:value-of select="name(.)"/>
+              </xsl:attribute>
+              <xsl:text>&#xA;      </xsl:text>
+              <xsl:element name="xsl:apply-templates">
+                <xsl:attribute name="mode">
+                  <xsl:value-of select="$mode"/>
+                </xsl:attribute>
+                <xsl:attribute name="select">
+                  <xsl:value-of select="$docinfo"/>
+                  <xsl:text>/</xsl:text>
+                  <xsl:value-of select="name(.)"/>
+                  <xsl:if test="@t:predicate">
+                    <xsl:value-of select="@t:predicate"/>
+                  </xsl:if>
+                </xsl:attribute>
+              </xsl:element>
+              <xsl:text>&#xA;    </xsl:text>
+            </xsl:element>
+
+            <xsl:if test="$altinfo != ''">
+              <xsl:text>&#xA;    </xsl:text>
+              <xsl:element name="xsl:when">
+                <xsl:attribute name="test">
+                  <xsl:value-of select="$altinfo"/>
+                  <xsl:text>/</xsl:text>
+                  <xsl:value-of select="name(.)"/>
+                </xsl:attribute>
+                <xsl:text>&#xA;      </xsl:text>
+                <xsl:element name="xsl:apply-templates">
+                  <xsl:attribute name="mode">
+                    <xsl:value-of select="$mode"/>
+                  </xsl:attribute>
+                  <xsl:attribute name="select">
+                    <xsl:value-of select="$altinfo"/>
+                    <xsl:text>/</xsl:text>
+                    <xsl:value-of select="name(.)"/>
+                    <xsl:if test="@t:predicate">
+                      <xsl:value-of select="@t:predicate"/>
+                    </xsl:if>
+                  </xsl:attribute>
+                </xsl:element>
+                <xsl:text>&#xA;    </xsl:text>
+              </xsl:element>
+            </xsl:if>
+
+            <!-- info -->
+            <xsl:text>&#xA;    </xsl:text>
+            <xsl:element name="xsl:when">
+              <xsl:attribute name="test">
+                <xsl:value-of select="'info'"/>
+                <xsl:text>/</xsl:text>
+                <xsl:value-of select="name(.)"/>
+              </xsl:attribute>
+              <xsl:text>&#xA;      </xsl:text>
+              <xsl:element name="xsl:apply-templates">
+                <xsl:attribute name="mode">
+                  <xsl:value-of select="$mode"/>
+                </xsl:attribute>
+                <xsl:attribute name="select">
+                  <xsl:value-of select="'info'"/>
+                  <xsl:text>/</xsl:text>
+                  <xsl:value-of select="name(.)"/>
+                  <xsl:if test="@t:predicate">
+                    <xsl:value-of select="@t:predicate"/>
+                  </xsl:if>
+                </xsl:attribute>
+              </xsl:element>
+              <xsl:text>&#xA;    </xsl:text>
+            </xsl:element>
+
+            <xsl:text>&#xA;    </xsl:text>
+            <xsl:element name="xsl:when">
+              <xsl:attribute name="test">
+                <xsl:value-of select="name(.)"/>
+              </xsl:attribute>
+              <xsl:text>&#xA;      </xsl:text>
+              <xsl:element name="xsl:apply-templates">
+                <xsl:attribute name="mode">
+                  <xsl:value-of select="$mode"/>
+                </xsl:attribute>
+                <xsl:attribute name="select">
+                  <xsl:value-of select="name(.)"/>
+                  <xsl:if test="@t:predicate">
+                    <xsl:value-of select="@t:predicate"/>
+                  </xsl:if>
+                </xsl:attribute>
+              </xsl:element>
+              <xsl:text>&#xA;    </xsl:text>
+            </xsl:element>
+            <xsl:text>&#xA;  </xsl:text>
+          </xsl:element>
+          <xsl:text>&#xA;</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+
+          <!-- first take care of the $docinfo version -->
+          <xsl:element name="xsl:apply-templates">
+            <xsl:attribute name="mode">
+              <xsl:value-of select="$mode"/>
+            </xsl:attribute>
+            <xsl:attribute name="select">
+              <xsl:value-of select="$docinfo"/>
+              <xsl:text>/</xsl:text>
+              <xsl:value-of select="name(.)"/>
+              <xsl:if test="@t:predicate">
+                <xsl:value-of select="@t:predicate"/>
+              </xsl:if>
+            </xsl:attribute>
+          </xsl:element>
+
+          <!-- then take care of the $altinfo version -->
+          <xsl:if test="$altinfo != ''">
+            <xsl:text>&#xA;  </xsl:text>
+            <xsl:element name="xsl:apply-templates">
+              <xsl:attribute name="mode">
+                <xsl:value-of select="$mode"/>
+              </xsl:attribute>
+              <xsl:attribute name="select">
+                <xsl:value-of select="$altinfo"/>
+                <xsl:text>/</xsl:text>
+                <xsl:value-of select="name(.)"/>
+                <xsl:if test="@t:predicate">
+                  <xsl:value-of select="@t:predicate"/>
+                </xsl:if>
+              </xsl:attribute>
+            </xsl:element>
+          </xsl:if>
+
+          <!-- info -->
+          <xsl:text>&#xA;  </xsl:text>
+          <xsl:element name="xsl:apply-templates">
+            <xsl:attribute name="mode">
+              <xsl:value-of select="$mode"/>
+            </xsl:attribute>
+            <xsl:attribute name="select">
+              <xsl:value-of select="'info'"/>
+              <xsl:text>/</xsl:text>
+              <xsl:value-of select="name(.)"/>
+              <xsl:if test="@t:predicate">
+                <xsl:value-of select="@t:predicate"/>
+              </xsl:if>
+            </xsl:attribute>
+          </xsl:element>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="*" mode="titlepage.specialrules" xmlns=""
+              id="star_in_titlepage.specialrules">
+<refpurpose>Create templates for special rules</refpurpose>
+
+<refdescription>
+<para>This template is called to process all of the descendants of the
+<literal>t:titlepage-content</literal> element that require special
+processing. At present, that's just <literal>t:or</literal> elements.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="*" mode="titlepage.specialrules">
+  <xsl:variable name="side">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage-content/@t:side">
+        <xsl:value-of select="ancestor::t:titlepage-content/@t:side"/>
+      </xsl:when>
+      <xsl:otherwise>recto</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="mode">
+    <xsl:value-of select="ancestor::t:titlepage/@t:element"/>
+    <xsl:text>.titlepage.</xsl:text>
+    <xsl:value-of select="$side"/>
+    <xsl:text>.auto.mode</xsl:text>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="name(.)='t:or'">
+      <xsl:apply-templates select="*" mode="titlepage.specialrules"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="*"><!-- does this element have children? -->
+      <xsl:text>&#xA;&#xA;</xsl:text>
+        <xsl:element name="xsl:template">
+          <xsl:attribute name="match">
+            <xsl:value-of select="name(.)"/>
+          </xsl:attribute>
+          <xsl:attribute name="mode">
+            <xsl:value-of select="$mode"/>
+          </xsl:attribute>
+          <xsl:apply-templates select="*" mode="titlepage.subrules"/>
+          <xsl:text>&#xA;</xsl:text>
+        </xsl:element>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="*" mode="titlepage.subrules" xmlns=""
+              id="star_in_titlepage.subrules">
+<refpurpose>Create template for individual special rules</refpurpose>
+
+<refdescription>
+<para>This template is called to process the children of special
+template elements.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="*" mode="titlepage.subrules">
+  <xsl:variable name="side">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage-content/@t:side">
+        <xsl:value-of select="ancestor::t:titlepage-content/@t:side"/>
+      </xsl:when>
+      <xsl:otherwise>recto</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="mode">
+    <xsl:value-of select="ancestor::t:titlepage/@t:element"/>
+    <xsl:text>.titlepage.</xsl:text>
+    <xsl:value-of select="$side"/>
+    <xsl:text>.auto.mode</xsl:text>
+  </xsl:variable>
+
+  <xsl:element name="xsl:apply-templates">
+    <xsl:attribute name="select">
+      <xsl:value-of select="name(.)"/>
+    </xsl:attribute>
+    <xsl:attribute name="mode">
+      <xsl:value-of select="$mode"/>
+    </xsl:attribute>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:or" xmlns="" id="or">
+<refpurpose>Process the t:or special rule</refpurpose>
+
+<refdescription>
+<para>This template processes t:or.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:or">
+  <xsl:variable name="side">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage-content/@t:side">
+        <xsl:value-of select="ancestor::t:titlepage-content/@t:side"/>
+      </xsl:when>
+      <xsl:otherwise>recto</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="mode">
+    <xsl:value-of select="ancestor::t:titlepage/@t:element"/>
+    <xsl:text>.titlepage.</xsl:text>
+    <xsl:value-of select="$side"/>
+    <xsl:text>.auto.mode</xsl:text>
+  </xsl:variable>
+
+  <xsl:text>&#xA;  </xsl:text>
+  <xsl:element name="xsl:apply-templates">
+    <xsl:attribute name="select">
+      <xsl:call-template name="element-or-list"/>
+    </xsl:attribute>
+    <xsl:attribute name="mode">
+      <xsl:value-of select="$mode"/>
+    </xsl:attribute>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:or" mode="titlepage.subrules" xmlns=""
+              id="or_in_titlepage.subrules">
+<refpurpose>Process the t:or special rule in
+titlepage.subrules mode</refpurpose>
+
+<refdescription>
+<para>The titlepage.subrules mode doesn't apply to t:or, so just
+reprocess this node in the normal mode.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:or" mode="titlepage.subrules">
+  <xsl:apply-templates select="."/><!-- use normal mode -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template name="element-or-list" xmlns="">
+<refpurpose>Construct the "or-list" used in the select attribute for
+special rules.</refpurpose>
+
+<refdescription>
+<para>Walk through each of the children of t:or, producing the
+text of the select attribute.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="element-or-list">
+  <xsl:param name="elements" select="*"/>
+  <xsl:param name="element.count" select="count($elements)"/>
+  <xsl:param name="count" select="1"/>
+  <xsl:param name="orlist"></xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>$element.count">
+      <xsl:value-of select="$orlist"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="element-or-list">
+        <xsl:with-param name="elements" select="$elements"/>
+        <xsl:with-param name="element.count" select="$element.count"/>
+        <xsl:with-param name="count" select="$count+1"/>
+        <xsl:with-param name="orlist">
+          <xsl:value-of select="$orlist"/>
+          <xsl:if test="not($orlist='')">|</xsl:if>
+          <xsl:value-of select="name($elements[position()=$count])"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/tests/refentry.007.ns.xml b/applications/content/template/docbook/tests/refentry.007.ns.xml
new file mode 100644
index 0000000..bf39d24
--- /dev/null
+++ b/applications/content/template/docbook/tests/refentry.007.ns.xml
@@ -0,0 +1,325 @@
+<book xmlns="http://docbook.org/ns/docbook" version="5.0">
+<info><title>Unit Test: refentry.007</title>
+
+<releaseinfo role="CVS">$Id$</releaseinfo>
+<author><personname><firstname>Norman</firstname><surname>Walsh</surname></personname><affiliation><address><email>ndw@nwalsh.com</email></address></affiliation></author>
+</info>
+<reference><info><title>Reference</title></info>
+
+<refentry>
+  <info>
+    <authorgroup>
+      <author><personname><firstname>Norman</firstname><surname>Walsh</surname></personname><email>ndw@nwalsh.com</email><personblurb>
+          <para>Wrote the original version of this document.</para>
+        </personblurb></author>
+      <editor><personname><firstname>Michael(tm)</firstname><surname>Smith</surname></personname><contrib>Added a bunch of test cases.</contrib><email>smith@sideshowbarker.net</email></editor>
+    </authorgroup>
+    <copyright>
+      <year>2003</year>
+      <holder>Norman Walsh</holder>
+    </copyright>
+    <copyright>
+      <year>2006</year>
+      <holder>Michael(tm) Smith</holder>
+    </copyright>
+    <legalnotice>
+      <para>This file is a product of the DocBook Project.</para>
+    </legalnotice>
+    <legalnotice>
+      <para>Share and share alike.</para>
+    </legalnotice>
+  </info>
+<refnamediv>
+<refname>FirstName</refname>
+<refname>SecondName</refname>
+<refpurpose>Purpose for FirstName</refpurpose>
+</refnamediv>
+
+<refnamediv>
+<refname>ThirdName</refname>
+<refpurpose>Purpose for ThirdName</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+  <?dbfunclist ?>
+  <funcsynopsis>
+    <!-- * Yes, friend, Funcsynopsis is a verbatim -->
+    <funcsynopsisinfo>#include &lt;varargs.h&gt;
+#include &lt;mouteyh.h&gt;
+#include &lt;qlmppzj.h&gt;</funcsynopsisinfo>
+    <funcprototype>
+      <funcdef><type>float</type> <function>rand</function></funcdef>
+      <void/>
+    </funcprototype>
+
+    <funcprototype>
+      <funcdef>int <function>max</function></funcdef>
+      <varargs/>
+    </funcprototype>
+
+    <funcprototype>
+      <funcdef>int <function>idiv</function></funcdef>
+      <paramdef><type>int</type> <parameter>n</parameter></paramdef>
+      <paramdef><type>int</type> <parameter>m</parameter></paramdef>
+    </funcprototype>
+  </funcsynopsis>
+
+  <para>Another.</para>
+
+  <funcsynopsis>
+    <funcprototype>
+      <funcdef>void <function>qsort</function></funcdef>
+      <paramdef>void *<parameter>dataptr</parameter>[]</paramdef>
+      <paramdef>int <parameter>left</parameter></paramdef>
+      <paramdef>int <parameter>right</parameter></paramdef>
+      <paramdef>int (*<parameter>comp</parameter>)
+      <funcparams>void *, void *</funcparams></paramdef>
+    </funcprototype>
+  </funcsynopsis>
+
+  <funcsynopsis>
+    <funcprototype>
+      <funcdef>int <function>foo_frob_something</function></funcdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm1</parameter></paramdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm2</parameter></paramdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm3</parameter></paramdef>
+      <paramdef><type>int</type> (* <parameter>parm4</parameter> )
+      <funcparams>int a, int b, int c</funcparams>
+      </paramdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm5</parameter></paramdef>
+    </funcprototype>
+
+    <funcprototype>
+      <funcdef>int <function>foo_frob_something</function></funcdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm1</parameter></paramdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm2</parameter></paramdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm3</parameter></paramdef>
+      <paramdef><type>int</type> (* <parameter>parm4</parameter> )
+      <funcparams>int a, int b, int c</funcparams>
+      </paramdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm5</parameter></paramdef>
+    </funcprototype>
+  </funcsynopsis>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+
+<para>This is a minimal RefEntry.</para>
+
+<para>The following is a Variablelist with a title.
+<variablelist><info><title>My variablelist</title></info>
+  
+  <varlistentry>
+    <term>varlistentry term 1</term>
+    <listitem><para>some listitem text</para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>varlistentry term 2</term>
+    <listitem><para>some more listitem text</para></listitem>
+  </varlistentry>
+</variablelist>
+</para>
+<refsection><info><title>Subsection</title></info>
+
+<para>This is a minimal RefEntry.</para>
+
+<para>The following is a Variablelist with a title and a nested variablelist
+  <glosslist>
+    
+  <glossentry>
+    <glossterm>glossentry term 1</glossterm>
+    <glossdef><para>some glossdef text</para></glossdef>
+  </glossentry>
+  <glossentry>
+    <glossterm>glossentry term 2</glossterm>
+    <glossdef>
+      <variablelist>
+        <varlistentry>
+          <term>nested variablelist term 1</term>
+          <listitem><para>some variablelist text</para></listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>nested variablelist term 2</term>
+          <listitem><para>some more variablelist text</para></listitem>
+        </varlistentry>
+      </variablelist>
+    </glossdef>
+  </glossentry>
+  </glosslist>
+</para>
+
+<refsection><info><title>Sub-subsection</title></info>
+
+<para>This is a minimal RefEntry.</para>
+</refsection>
+</refsection>
+</refsection>
+
+<refsection><info><title>More Description</title></info>
+
+<para>This is a not-so minimal RefEntry.</para>
+<screen>
+This is a screen [break here]
+that starts with a line of space. [break here]
+And it ends with a line of space.
+</screen>
+
+<para>normal paragraph here</para>
+
+<screen>This is a screen [break here]
+that does not start with a line of space. [break here]
+And does not end with a line of space.</screen>
+
+<para>This is a normal paragraph that contains a screen.
+<screen>This is a screen within a normal paragraph [break here]
+that does not start with a line of space. [break here]
+And does not end with a line of space but is followed
+by a line of space.</screen>
+</para>
+
+<para>This is another  normal paragraph that contains a screen.
+<screen>This is a screen within a normal paragraph [break here]
+that does not start with a line of space. [break here]
+And does not end with a line of space and is not followed
+by a line of space.</screen></para>
+
+<para>This is another  normal paragraph that contains a screen.
+<screen>
+This is a screen within a normal paragraph [break here]
+that starts with a line of space. [break here]
+And ends with a line of space but is not followed by a line of space.
+</screen></para>
+
+<para>This is another  normal paragraph that contains a screen.
+<screen>
+This is a screen within a normal paragraph [break here]
+that starts with a line of space. [break here]
+And ends with a line of space and is followed by a line of space.
+</screen>
+</para>
+
+<para>This is another  normal paragraph that contains a screen.
+<screen>
+
+This is a screen within a normal paragraph [break here]
+that starts with a 2 lines of space. [break here]
+And ends with 3 lines of space and is followed by a line of space.
+
+
+</screen>
+</para>
+
+<para>This paragraph contains an itemizedlist with a title. The title
+is “Mrignkwolmcng”.
+<orderedlist inheritnum="ignore" continuation="restarts"><info><title>Mrignkwolmcng</title></info>
+  
+  <listitem>
+    <para>itemizedlist listitem 1</para>
+  </listitem>
+  <listitem>
+    <para>itemizedlist listitem 2</para>
+  </listitem>
+</orderedlist>
+
+This is some useless text that follows the “Mrignkwolmcng” orderedlist
+in the same para.</para>
+
+<para>The following is a Variablelist with a title and with a nested itemizedlist.
+<variablelist><info><title>My variablelist</title></info>
+  
+  <varlistentry>
+    <term>varlistentry term 1</term>
+    <listitem>
+      <itemizedlist><info><title>nested itemizedlist</title></info>
+        
+        <listitem>
+          <para>itemizedlist listitem 1</para>
+        </listitem>
+        <listitem>
+          <para>itemizedlist listitem 2</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>varlistentry term 2</term>
+    <listitem><para>some more listitem text</para></listitem>
+  </varlistentry>
+</variablelist>
+</para>
+
+<para>The following is a Variablelist with a title and with a
+nested Varlistentry that contains multiple Terms
+<variablelist><info><title>My nested-multi-term-per-varlistentry variablelist</title></info>
+  
+  <varlistentry>
+    <term>Varlistentry term 1</term>
+    <listitem>
+      <variablelist>
+        <varlistentry>
+          <term>  varlistentry term 1.1</term>
+          <term>varlistentry term 1.2  </term>
+          <term>varlistentry         term 1.3</term>
+          <listitem><para>All 'bout terms 1.1, 1.2, and 1.3</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>varlistentry term 2</term>
+    <listitem><para>some more listitem text</para></listitem>
+  </varlistentry>
+</variablelist>
+</para>
+
+<refsection><info><title>Subsection</title></info>
+
+<para>This is a minimal RefEntry.</para>
+</refsection>
+</refsection>
+
+<refsection><info><title>Even More Description</title></info>
+
+<para>This is an even less minimal RefEntry.</para>
+
+<para>This is a paragraph. It contains the following segmentedlist,
+titled “Gibbererish”, with several segtitle elements.
+<segmentedlist>
+  
+  <segtitle>Floober</segtitle>
+  <segtitle>Buugler</segtitle>
+  <segtitle>Sstangooo</segtitle>
+  <segtitle>Borobinda</segtitle>
+  <seglistitem>
+  <seg>Bamalalaboonda Bamalalaboonda Bamalalaboonda Bamalalaboonda Bamalalaboonda Bamalalaboonda</seg>
+  <seg>Mondorotoluafu</seg>
+  <seg>Ganafutralinga</seg>
+  <seg>Patagularamakundra</seg>
+  </seglistitem>
+  <seglistitem>
+  <seg>Cadraracondar</seg>
+  <seg>Hentirotomaambu</seg>
+  <seg>BdomentriolaiaBdomentriolaiaBdomentriolaia</seg>
+  <seg>Candamalaturuanio</seg>
+  </seglistitem>
+</segmentedlist>
+This is some text that follows the segementedlist within the same
+paragraph. The next part of this same paragraph is an
+<tag>important</tag> admonition.
+<important>
+  <para>It is very important that you read this. That’s why it stands
+  out the way that it does.</para>
+</important>
+</para>
+
+<para>This is a para with a footnote
+  <footnote><para>Stuff here <programlisting>This is a program listing
+that's two lines long.</programlisting></para>
+    and stuff after the
+footnote</footnote></para>
+</refsection>
+
+</refentry>
+</reference>
+</book>
diff --git a/applications/content/template/docbook/tests/refentry.007.xml b/applications/content/template/docbook/tests/refentry.007.xml
new file mode 100644
index 0000000..2ed56ac
--- /dev/null
+++ b/applications/content/template/docbook/tests/refentry.007.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+          "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
+<book>
+<bookinfo>
+<title>Unit Test: refentry.007</title>
+<releaseinfo role="CVS">$Id$</releaseinfo>
+<author><firstname>Norman</firstname><surname>Walsh</surname>
+        <affiliation><address><email>ndw@nwalsh.com</email></address></affiliation>
+</author>
+</bookinfo>
+<reference>
+<title>Reference</title>
+<refentry>
+  <refentryinfo>
+    <authorgroup>
+      <author>
+        <firstname>Norman</firstname><surname>Walsh</surname>
+        <email>ndw@nwalsh.com</email>
+        <personblurb>
+          <para>Wrote the original version of this document.</para>
+        </personblurb>
+      </author>
+      <editor>
+        <contrib>Added a bunch of test cases.</contrib>
+        <firstname>Michael(tm)</firstname><surname>Smith</surname>
+        <email>smith@sideshowbarker.net</email>
+      </editor>
+    </authorgroup>
+    <copyright>
+      <year>2003</year>
+      <holder>Norman Walsh</holder>
+    </copyright>
+    <copyright>
+      <year>2006</year>
+      <holder>Michael(tm) Smith</holder>
+    </copyright>
+    <legalnotice>
+      <para>This file is a product of the DocBook Project.</para>
+    </legalnotice>
+    <legalnotice>
+      <para>Share and share alike.</para>
+    </legalnotice>
+  </refentryinfo>
+<refnamediv>
+<refname>FirstName</refname>
+<refname>SecondName</refname>
+<refpurpose>Purpose for FirstName</refpurpose>
+</refnamediv>
+
+<refnamediv>
+<refname>ThirdName</refname>
+<refpurpose>Purpose for ThirdName</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+  <?dbfunclist ?>
+  <funcsynopsis>
+    <!-- * Yes, friend, Funcsynopsis is a verbatim -->
+    <funcsynopsisinfo
+>#include &lt;varargs.h&gt;
+#include &lt;mouteyh.h&gt;
+#include &lt;qlmppzj.h&gt;</funcsynopsisinfo>
+    <funcprototype>
+      <funcdef><type>float</type> <function>rand</function></funcdef>
+      <void/>
+    </funcprototype>
+
+    <funcprototype>
+      <funcdef>int <function>max</function></funcdef>
+      <varargs/>
+    </funcprototype>
+
+    <funcprototype>
+      <funcdef>int <function>idiv</function></funcdef>
+      <paramdef><type>int</type> <parameter>n</parameter></paramdef>
+      <paramdef><type>int</type> <parameter>m</parameter></paramdef>
+    </funcprototype>
+  </funcsynopsis>
+
+  <para>Another.</para>
+
+  <funcsynopsis>
+    <funcprototype>
+      <funcdef>void <function>qsort</function></funcdef>
+      <paramdef>void *<parameter>dataptr</parameter>[]</paramdef>
+      <paramdef>int <parameter>left</parameter></paramdef>
+      <paramdef>int <parameter>right</parameter></paramdef>
+      <paramdef>int (*<parameter>comp</parameter>)
+      <funcparams>void *, void *</funcparams></paramdef>
+    </funcprototype>
+  </funcsynopsis>
+
+  <funcsynopsis>
+    <funcprototype>
+      <funcdef>int <function>foo_frob_something</function></funcdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm1</parameter></paramdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm2</parameter></paramdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm3</parameter></paramdef>
+      <paramdef><type>int</type> (* <parameter>parm4</parameter> )
+      <funcparams>int a, int b, int c</funcparams>
+      </paramdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm5</parameter></paramdef>
+    </funcprototype>
+
+    <funcprototype>
+      <funcdef>int <function>foo_frob_something</function></funcdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm1</parameter></paramdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm2</parameter></paramdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm3</parameter></paramdef>
+      <paramdef><type>int</type> (* <parameter>parm4</parameter> )
+      <funcparams>int a, int b, int c</funcparams>
+      </paramdef>
+      <paramdef>foo_sometype1 <parameter>foo_frob_parm5</parameter></paramdef>
+    </funcprototype>
+  </funcsynopsis>
+</refsynopsisdiv>
+
+<refsect1>
+<title>Description</title>
+<para>This is a minimal RefEntry.</para>
+
+<para>The following is a Variablelist with a title.
+<variablelist>
+  <title>My variablelist</title>
+  <varlistentry>
+    <term>varlistentry term 1</term>
+    <listitem><para>some listitem text</para></listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>varlistentry term 2</term>
+    <listitem><para>some more listitem text</para></listitem>
+  </varlistentry>
+</variablelist>
+</para>
+<refsect2>
+<title>Subsection</title>
+<para>This is a minimal RefEntry.</para>
+
+<para>The following is a Variablelist with a title and a nested variablelist
+  <glosslist>
+    <title>My glosslist</title>
+  <glossentry>
+    <glossterm>glossentry term 1</glossterm>
+    <glossdef><para>some glossdef text</para></glossdef>
+  </glossentry>
+  <glossentry>
+    <glossterm>glossentry term 2</glossterm>
+    <glossdef>
+      <variablelist>
+        <varlistentry>
+          <term>nested variablelist term 1</term>
+          <listitem><para>some variablelist text</para></listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>nested variablelist term 2</term>
+          <listitem><para>some more variablelist text</para></listitem>
+        </varlistentry>
+      </variablelist>
+    </glossdef>
+  </glossentry>
+  </glosslist>
+</para>
+
+<refsect3>
+<title>Sub-subsection</title>
+<para>This is a minimal RefEntry.</para>
+</refsect3>
+</refsect2>
+</refsect1>
+
+<refsect1>
+<title>More Description</title>
+<para>This is a not-so minimal RefEntry.</para>
+<screen>
+This is a screen [break here]
+that starts with a line of space. [break here]
+And it ends with a line of space.
+</screen>
+
+<para>normal paragraph here</para>
+
+<screen>This is a screen [break here]
+that does not start with a line of space. [break here]
+And does not end with a line of space.</screen>
+
+<para>This is a normal paragraph that contains a screen.
+<screen>This is a screen within a normal paragraph [break here]
+that does not start with a line of space. [break here]
+And does not end with a line of space but is followed
+by a line of space.</screen>
+</para>
+
+<para>This is another  normal paragraph that contains a screen.
+<screen>This is a screen within a normal paragraph [break here]
+that does not start with a line of space. [break here]
+And does not end with a line of space and is not followed
+by a line of space.</screen></para>
+
+<para>This is another  normal paragraph that contains a screen.
+<screen>
+This is a screen within a normal paragraph [break here]
+that starts with a line of space. [break here]
+And ends with a line of space but is not followed by a line of space.
+</screen></para>
+
+<para>This is another  normal paragraph that contains a screen.
+<screen>
+This is a screen within a normal paragraph [break here]
+that starts with a line of space. [break here]
+And ends with a line of space and is followed by a line of space.
+</screen>
+</para>
+
+<para>This is another  normal paragraph that contains a screen.
+<screen>
+
+This is a screen within a normal paragraph [break here]
+that starts with a 2 lines of space. [break here]
+And ends with 3 lines of space and is followed by a line of space.
+
+
+</screen>
+</para>
+
+<para>This paragraph contains an itemizedlist with a title. The title
+is “Mrignkwolmcng”.
+<orderedlist>
+  <title>Mrignkwolmcng</title>
+  <listitem>
+    <para>itemizedlist listitem 1</para>
+  </listitem>
+  <listitem>
+    <para>itemizedlist listitem 2</para>
+  </listitem>
+</orderedlist>
+
+This is some useless text that follows the “Mrignkwolmcng” orderedlist
+in the same para.</para>
+
+<para>The following is a Variablelist with a title and with a nested itemizedlist.
+<variablelist>
+  <title>My variablelist</title>
+  <varlistentry>
+    <term>varlistentry term 1</term>
+    <listitem>
+      <itemizedlist>
+        <title>nested itemizedlist</title>
+        <listitem>
+          <para>itemizedlist listitem 1</para>
+        </listitem>
+        <listitem>
+          <para>itemizedlist listitem 2</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>varlistentry term 2</term>
+    <listitem><para>some more listitem text</para></listitem>
+  </varlistentry>
+</variablelist>
+</para>
+
+<para>The following is a Variablelist with a title and with a
+nested Varlistentry that contains multiple Terms
+<variablelist>
+  <title>My nested-multi-term-per-varlistentry variablelist</title>
+  <varlistentry>
+    <term>Varlistentry term 1</term>
+    <listitem>
+      <variablelist>
+        <varlistentry>
+          <term>  varlistentry term 1.1</term>
+          <term>varlistentry term 1.2  </term>
+          <term>varlistentry         term 1.3</term>
+          <listitem><para>All 'bout terms 1.1, 1.2, and 1.3</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </listitem>
+  </varlistentry>
+  <varlistentry>
+    <term>varlistentry term 2</term>
+    <listitem><para>some more listitem text</para></listitem>
+  </varlistentry>
+</variablelist>
+</para>
+
+<refsect2>
+<title>Subsection</title>
+<para>This is a minimal RefEntry.</para>
+</refsect2>
+</refsect1>
+
+<refsect1>
+<title>Even More Description</title>
+<para>This is an even less minimal RefEntry.</para>
+
+<para>This is a paragraph. It contains the following segmentedlist,
+titled “Gibbererish”, with several segtitle elements.
+<segmentedlist>
+  <title>Gibbererish</title>
+  <segtitle>Floober</segtitle>
+  <segtitle>Buugler</segtitle>
+  <segtitle>Sstangooo</segtitle>
+  <segtitle>Borobinda</segtitle>
+  <seglistitem>
+  <seg>Bamalalaboonda Bamalalaboonda Bamalalaboonda Bamalalaboonda Bamalalaboonda Bamalalaboonda</seg>
+  <seg>Mondorotoluafu</seg>
+  <seg>Ganafutralinga</seg>
+  <seg>Patagularamakundra</seg>
+  </seglistitem>
+  <seglistitem>
+  <seg>Cadraracondar</seg>
+  <seg>Hentirotomaambu</seg>
+  <seg>BdomentriolaiaBdomentriolaiaBdomentriolaia</seg>
+  <seg>Candamalaturuanio</seg>
+  </seglistitem>
+</segmentedlist>
+This is some text that follows the segementedlist within the same
+paragraph. The next part of this same paragraph is an
+<sgmltag>important</sgmltag> admonition.
+<important>
+  <para>It is very important that you read this. That’s why it stands
+  out the way that it does.</para>
+</important>
+</para>
+
+<para>This is a para with a footnote
+  <footnote
+    ><para>Stuff here <programlisting>This is a program listing
+that's two lines long.</programlisting></para>
+    and stuff after the
+footnote</footnote></para>
+</refsect1>
+
+</refentry>
+</reference>
+</book>
diff --git a/applications/content/template/docbook/tools/bin/docbook-xsl-update b/applications/content/template/docbook/tools/bin/docbook-xsl-update
new file mode 100644
index 0000000..0d44f56
--- /dev/null
+++ b/applications/content/template/docbook/tools/bin/docbook-xsl-update
@@ -0,0 +1,53 @@
+#!/bin/bash
+# vim: number
+
+# docbook-xsl-update - Update environment to latest docbook-xsl snapshot
+# $Id: docbook-xsl-update 6565 2007-01-29 23:00:16Z xmldoc $
+
+if [ -z $DOCBOOK_MIRROR ]; then
+  myhost=docbook.xml-doc.org:5873;
+else
+  myhost=$DOCBOOK_MIRROR;
+fi
+
+mydir=$(readlink -f $(dirname $0))
+mydocbook_xsl_base=$(readlink -f $(dirname $0)/../..)
+
+if [ ! -f $mydocbook_xsl_base/VERSION ]; then 
+  cat <<- EOF
+$(basename $0): error: not in snapshot directory. Stopping.
+
+The $(basename $0) script must be installed within its original
+location in the tools/bin directory in the docbook-xsl distribution.
+EOF
+  exit 1
+fi
+
+usage="Usage:
+
+  $(basename $0) [-h HOST[:PORT]]
+
+  -h HOST[:PORT]  Specifies the rsync host and port number to use.
+                  If not specified, uses the value of the
+                  \$DOCBOOK_MIRROR environment variable. If that
+                  environment variable is not specified, defaults
+                  to a hard-coded value.
+
+"
+
+while getopts "h:" opt; do
+  case $opt in
+    h  ) myhost=$OPTARG ;;
+    \? ) printf "$usage"
+         printf "$opts_admon"
+         exit 1 ;;
+  esac
+done
+
+shift $(($OPTIND - 1))
+
+if [ -z $myhost ]; then
+  myhost=$DOCBOOK_MIRROR
+fi
+
+rsync -auv rsync://$myhost/xsl $mydocbook_xsl_base
diff --git a/applications/content/template/docbook/tools/make/Makefile.DocBook b/applications/content/template/docbook/tools/make/Makefile.DocBook
new file mode 100644
index 0000000..ebf9fbb
--- /dev/null
+++ b/applications/content/template/docbook/tools/make/Makefile.DocBook
@@ -0,0 +1,698 @@
+# $Source$
+# $Author: xmldoc $
+# $Date: 2008-03-03 09:20:29 +0000 (Mon, 03 Mar 2008) $
+# $Revision: 7787 $
+# vim: number
+#
+# -----------------------------------------------------------------
+#  ** Makefile.DocBook -- generate output from DocBook sources **
+# -----------------------------------------------------------------
+#
+#   This file is part of the DocBook Project XSL Stylesheet
+#   distribution.
+#
+#   See http://docbook.sourceforge.net/release/xsl/current/
+#   for copyright and other information.
+
+# DOCBOOK_OUTPUT_FORMATS is the default set of targets (output
+# formats) that get built when you type "make" without any targets
+# explicitly specified. To generate a different set of output
+# formats, change the value of DOCBOOK_OUTPUT_FORMATS here or set
+# it in your environment; for example:
+#
+#   set DOCBOOK_OUTPUT_FORMATS="html pdf"; export DOCBOOK_OUTPUT_FORMATS
+#
+# Of course by explicitly specifying particular targets when you
+# invoke "make", you can always override generation of the default
+# set of targets; for example:
+#
+#   make html txt
+#
+# That would generate just HTML (unchunked) and plain-text output.
+#
+DOCBOOK_OUTPUT_FORMATS ?= xml man man-pdf chunk txt pdf
+
+# If you want XHTML output instead of HTML, set HTML_OR_XHTML to
+# 'xhtml' or just specify 'xhtml" in DOCBOOK_OUTPUT_FORMATS.
+ifeq ($(findstring xhtml,$(DOCBOOK_OUTPUT_FORMATS)),)
+HTML_OR_XHTML ?= html
+else
+HTML_OR_XHTML ?= xhtml
+endif
+
+# if your source is in asciidoc instead of DocBook, set
+# ASCII_OR_DOCBOOK to "ascii"
+ASCII_OR_DOCBOOK ?= docbook
+
+# -----------------------------------------------------------------
+#                *** TOOLS and other DEPENDENCIES ***
+# -----------------------------------------------------------------
+# we use rmdir(1) to remove dirs we create for chunked HTML output
+RMDIR = rmdir
+# "-p" causes empty parent dirs to be deleted as well
+RMDIR_FLAGS = --ignore-fail-on-non-empty -p
+
+# possible values for PDF_MAKER are:
+#   dblatex|fop|xep|xmlroff|passivetex
+PDF_MAKER = dblatex
+
+# possible values for TXT_MAKER are:
+#   links|lynx|w3m|w3mmee
+TXT_MAKER = links
+TXT_MAKER_FLAGS = -dump
+
+# xsl
+XSLT = xsltproc
+XSLT_FLAGS = --xinclude
+
+# http://dblatex.sourceforge.net/
+DBLATEX = dblatex
+DBLATEX_FLAGS = -b pdftex
+
+FOP = fop
+FOP_FLAGS =
+
+XEP = xep
+XEP_FLAGS =
+
+# http://xmlroff.sourceforge.net/
+XMLROFF = xmlroff
+XMLROFF_FLAGS =
+
+PDFTEX = pdftex
+PDFTEX_FLAGS =
+
+# used by PassiveTeX
+PDFXMLTEX = pdfxmltex
+
+# http://docbook2x.sourceforge.net/
+DB2X_XSLTPROC = db2x_xsltproc
+DB2X_XSLTPROC_FLAGS = 
+DB2X_TEXIXML = db2x_texixml
+DB2X_TEXIXML_FLAGS = 
+
+# we call the man(1) command to generate "foo.N.pdf" and
+# "foo.N.txt" output (see "man-pdf" & "man-txt" targets)
+MAN = man
+MAN_FLAGS =
+
+# The "ps2pdf" command is part of GhostSript (gs) distro.
+# It is just a wrapper script around gs that does this:
+#
+#   gs -dCompatibilityLevel=1.2 -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \
+#     "-sOutputFile=$outfile" -dCompatibilityLevel=1.2 -c .setpdfwrite -f "$infile"
+#
+# Where, for example: $outfile = foo.pdf and $infile = foo.1
+PS2PDF = ps2pdf
+PS2PDF_FLAGS =
+
+# asciidoc is used to generate DocBook XML from asciidoc source
+ASCIIDOC=asciidoc
+ASCIIDOCFLAGS=
+
+# asciidoc source seems to have DOS line endings, so we use
+# DOS2UNIX to be able to grep them correctly
+DOS2UNIX=dos2unix
+DOS2UNIXFLAGS=
+
+# The "col" command is needed for stripping backspaces and
+# underscores from man(1) output to get pure plain-text
+COL = col
+COL_FLAGS =
+
+# The "expand" command is needed for expanding tabs from files
+# generated from "man foo.1 | col -b" output
+# output to get pure plain-text
+EXPAND = expand
+EXPAND_FLAGS =
+
+# value of DOCBOOK_XSL should either be the canonical
+# (docbook.sourceforge.net) URL for the DocBook Project XSL
+# stylesheets OR it can be a local system path
+DOCBOOK_XSL = http://docbook.sourceforge.net/release/xsl/current
+
+# -----------------------------------------------------------------
+#       names of some DIRECTORIES and FILES we need
+# -----------------------------------------------------------------
+# We create a tmp directory once per make invocation; it's needed
+# for holding a temporary copy of the custom DBLaTeX stylesheet
+# (because dblatex currently can't read a stylesheet from stdin)
+TMP ?= /tmp
+TMPNUM := $(shell echo $$$$)
+DOCBOOK_TMP := $(TMP)/docbook-make-$(TMPNUM)
+
+# MAN_MANIFEST_EXT is file extension added to individual manifest
+# files
+MAN_MANIFEST_EXT = manifest_man
+
+# HTML_MANIFEST_EXT is file extension added to HTML manifest files
+HTML_MANIFEST_EXT = manifest_html
+
+# BASEDIR_SUFFIX is a what you need to set if you want a suffix
+# added to the end of each "base.dir" we create while generating
+# chunked HTML output
+#BASEDIR_SUFFIX = -html
+#BASEDIR_SUFFIX = _html
+BASEDIR_SUFFIX = 
+
+# -----------------------------------------------------------------
+#                        assorted OPTIONS
+# -----------------------------------------------------------------
+# HTML_STYLESHEET -> $html.stylesheet stylesheet param
+# http://docbook.sourceforge.net/snapshots/xsl/doc/html/html.stylesheet.html
+HTML_STYLESHEET = style.css
+# HTML_IMAGES -> $admon.graphics.path
+# http://docbook.sourceforge.net/snapshots/xsl/doc/html/admon.graphics.path.html
+HTML_IMAGES = images/
+# HTML_IMAGES_EXT -> $admon.graphics.extension
+# http://docbook.sourceforge.net/snapshots/xsl/doc/html/admon.graphics.extension.html
+HTML_IMAGES_EXT = .png
+
+# use these to set params on the command-line
+# format is, e.g., HTML_PARAMS="--stringparam variablelist.as.table 1..."
+FO_PARAMS =
+HTML_PARAMS =
+MAN_PARAMS =
+
+# DBX_PARAMS is for dblatex(1); format uses "-p":
+# DBX_PARAMS="-p doc.publisher.show 1 -p term.breakline 1...
+DBX_PARAMS=
+
+# What file extension do you use for DocBook source files?
+DOCBOOK_FILE_EXTENSION = .xml
+
+# -----------------------------------------------------------------
+#       make(1) functions for building file lists
+# -----------------------------------------------------------------
+#
+#    the values of the following are used for determing what needs
+#    to be built and/or cleaned up
+
+ifeq ($(ASCII_OR_DOCBOOK),docbook)
+SOURCE_FILES_DBK = $(wildcard *$(DOCBOOK_FILE_EXTENSION))
+else
+SOURCE_FILES_DBK = $(foreach base,$(basename $(wildcard *.txt)),$(base)$(DOCBOOK_FILE_EXTENSION))
+endif
+
+FILES_FO   = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).fo)
+FILES_TXT  = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).out.txt)
+FILES_PDF  = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).pdf)
+FILES_LOG  = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).log)
+FILES_OUT  = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).out)
+FILES_AUX  = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).aux)
+FILES_HTML = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).html)
+FILES_INFO = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).info)
+DIRS_CHUNK = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base)$(BASEDIR_SUFFIX))
+LISTS_HTML = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).$(HTML_MANIFEST_EXT))
+LISTS_MAN  = $(foreach base,$(basename $(SOURCE_FILES_DBK)),$(base).$(MAN_MANIFEST_EXT))
+FILES_CHNK = $(shell for manifest in $(LISTS_HTML); do if [ -f "$$manifest" ]; then cat $$manifest; fi done)
+FILES_MAN  = $(shell for manifest in $(LISTS_MAN);  do if [ -f "$$manifest" ]; then cat $$manifest; fi done)
+FILES_MANP = $(foreach base,$(FILES_MAN),$(base).man.pdf)
+FILES_MANT = $(foreach base,$(FILES_MAN),$(base).out.txt)
+DIRS_MAN   = $(shell for file in $(FILES_MAN); do dirname $$file; done | uniq)
+
+# -----------------------------------------------------------------
+#   ** stylesheet for testing whether a file has a refentry
+# -----------------------------------------------------------------
+REFENTRY_CHECK := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
+                version="1.0" \
+                xmlns:db="http://docbook.org/ns/docbook" \
+                > \
+  <xsl:output method="text"/> \
+  <xsl:template match="/"> \
+    <xsl:if test="//refentry|//db:refentry"> \
+      <xsl:text>true</xsl:text> \
+    </xsl:if> \
+  </xsl:template> \
+</xsl:stylesheet>
+
+# -----------------------------------------------------------------
+#             ** Stylesheet Customization Layers ** 
+# -----------------------------------------------------------------
+#
+# for DBLaTeX
+DBX_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
+                 version="1.0"> \
+  <xsl:param name="co.linkends.show">0</xsl:param> \
+  <xsl:param name="callout.markup.circled">1</xsl:param> \
+  <xsl:param name="callout.linkends.hot">0</xsl:param> \
+  <xsl:param name="doc.publisher.show">1</xsl:param> \
+  <xsl:param name="term.breakline">1</xsl:param> \
+  <xsl:param name="doc.alignment">left</xsl:param> \
+  <xsl:param name="newtbl.use">1</xsl:param> \
+  <xsl:param name="latex.hyperparam"/> \
+  <xsl:param name="latex.style">docbook</xsl:param> \
+  <xsl:param name="latex.biblio.output">all</xsl:param> \
+  <xsl:param name="latex.bibfiles">""</xsl:param> \
+  <xsl:param name="latex.bibwidelabel">WIDELABEL</xsl:param> \
+  <xsl:param name="latex.output.revhistory">0</xsl:param> \
+  <xsl:param name="latex.figure.position">[htbp]</xsl:param> \
+  <xsl:param name="latex.figure.boxed">0</xsl:param> \
+  <xsl:param name="latex.babel.use">1</xsl:param> \
+  <xsl:param name="latex.babel.language"></xsl:param> \
+  <xsl:param name="latex.class.options">twoside</xsl:param> \
+  <xsl:param name="biblioentry.item.separator">, </xsl:param> \
+  <xsl:param name="refentry.xref.manvolnum">1</xsl:param> \
+  <xsl:param name="refsynopsis.title">Synopsis</xsl:param> \
+  <xsl:param name="refnamediv.title"></xsl:param> \
+  <xsl:param name="funcsynopsis.style">ansi</xsl:param> \
+  <xsl:param name="funcsynopsis.decoration">1</xsl:param> \
+  <xsl:param name="function.parens">0</xsl:param> \
+  <xsl:param name="classsynopsis.default.language">java</xsl:param> \
+  <xsl:param name="show.comments">0</xsl:param> \
+</xsl:stylesheet>
+
+# for FO output
+FO_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
+                xmlns:fo="http://www.w3.org/1999/XSL/Format" \
+                version="1.0"> \
+  <xsl:import href="$(DOCBOOK_XSL)/fo/docbook.xsl"/> \
+  <xsl:param name="$(PDF_MAKER).extensions">1</xsl:param> \
+  <xsl:param name="paper.type">A4</xsl:param> \
+  <xsl:param name="draft.watermark.image"></xsl:param> \
+  <xsl:param name="hyphenation">false</xsl:param> \
+  <xsl:param name="hyphenate.verbatim">1</xsl:param> \
+  <xsl:param name="alignment">left</xsl:param> \
+  <xsl:param name="refentry.generate.name">1</xsl:param> \
+  <xsl:param name="refentry.generate.title">0</xsl:param> \
+  <xsl:param name="refentry.pagebreak">1</xsl:param> \
+  <xsl:param name="shade.verbatim">1</xsl:param> \
+  <xsl:param name="variablelist.as.blocks">1</xsl:param> \
+  <xsl:param name="ulink.show">1</xsl:param> \
+  <xsl:param name="ulink.footnotes">1</xsl:param> \
+  <xsl:param name="index.on.type">1</xsl:param> \
+  <xsl:attribute-set name="xref.properties"> \
+    <xsl:attribute name="color">blue</xsl:attribute> \
+  </xsl:attribute-set> \
+  <xsl:attribute-set name="shade.verbatim.style"> \
+    <xsl:attribute name="background-color">\#E0E0E0</xsl:attribute> \
+    <xsl:attribute name="padding-left">4pt</xsl:attribute> \
+    <xsl:attribute name="padding-right">4pt</xsl:attribute> \
+    <xsl:attribute name="padding-top">4pt</xsl:attribute> \
+    <xsl:attribute name="padding-bottom">4pt</xsl:attribute> \
+  </xsl:attribute-set> \
+  <xsl:attribute-set name="section.title.level1.properties"> \
+    <xsl:attribute name="font-size"> \
+      <xsl:value-of select="$$body.font.master * 1.5"></xsl:value-of> \
+      <xsl:text>pt</xsl:text> \
+    </xsl:attribute> \
+  </xsl:attribute-set> \
+  <xsl:attribute-set name="section.title.level2.properties"> \
+    <xsl:attribute name="font-size"> \
+      <xsl:value-of select="$$body.font.master * 1.3"></xsl:value-of> \
+      <xsl:text>pt</xsl:text> \
+    </xsl:attribute> \
+  </xsl:attribute-set> \
+  <xsl:attribute-set name="section.title.level3.properties"> \
+    <xsl:attribute name="font-size"> \
+      <xsl:value-of select="$$body.font.master * 1.1"></xsl:value-of> \
+      <xsl:text>pt</xsl:text> \
+    </xsl:attribute> \
+  </xsl:attribute-set> \
+  <xsl:attribute-set name="section.title.level4.properties"> \
+    <xsl:attribute name="font-size"> \
+      <xsl:value-of select="$$body.font.master"></xsl:value-of> \
+      <xsl:text>pt</xsl:text> \
+    </xsl:attribute> \
+  </xsl:attribute-set> \
+  <xsl:attribute-set name="component.title.properties"> \
+    <xsl:attribute name="font-size"> \
+      <xsl:value-of select="$$body.font.master * 1.5"></xsl:value-of> \
+      <xsl:text>pt</xsl:text> \
+    </xsl:attribute> \
+  </xsl:attribute-set> \
+  <xsl:attribute-set name="monospace.verbatim.properties"> \
+    <xsl:attribute name="wrap-option">wrap</xsl:attribute> \
+    <xsl:attribute name="hyphenation-character">\</xsl:attribute> \
+    <xsl:attribute name="font-size"> \
+      <xsl:value-of select="$$body.font.master * 0.8"></xsl:value-of> \
+      <xsl:text>pt</xsl:text> \
+    </xsl:attribute> \
+  </xsl:attribute-set> \
+</xsl:stylesheet>
+
+# for single-file (X)HTML outpout
+HTML_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
+                version="1.0"> \
+  <xsl:import href="$(DOCBOOK_XSL)/$(HTML_OR_XHTML)/docbook.xsl"/> \
+  <xsl:param name="gentext.custom">local.l10n.xml</xsl:param> \
+  <xsl:param name="local.l10n.xml" select="document($$gentext.custom)"/> \
+  <xsl:param name="refentry.generate.name">1</xsl:param> \
+  <xsl:param name="refentry.generate.title">0</xsl:param> \
+  <xsl:param name="root.filename"></xsl:param> \
+  <xsl:param name="variablelist.as.table">0</xsl:param> \
+  <xsl:param name="html.stylesheet">$(HTML_STYLESHEET)</xsl:param> \
+  <xsl:param name="admon.graphics">0</xsl:param> \
+  <xsl:param name="index.on.type">1</xsl:param> \
+</xsl:stylesheet>
+
+# for chunked (X)HTML output
+CHNK_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
+                version="1.0"> \
+  <xsl:import href="$(DOCBOOK_XSL)/$(HTML_OR_XHTML)/chunk.xsl"/> \
+  <xsl:param name="refentry.generate.name">0</xsl:param> \
+  <xsl:param name="refentry.generate.title">1</xsl:param> \
+  <xsl:param name="variablelist.as.table">0</xsl:param> \
+  <xsl:param name="html.stylesheet">$(HTML_STYLESHEET)</xsl:param> \
+  <xsl:param name="admon.graphics">1</xsl:param> \
+  <xsl:param name="admon.graphics.path">$(HTML_IMAGES)</xsl:param> \
+  <xsl:param name="admon.graphics.extension">$(HTML_IMAGES_EXT)</xsl:param> \
+  <xsl:param name="root.filename"></xsl:param> \
+  <xsl:param name="generate.manifest">1</xsl:param> \
+  <xsl:param name="use.id.as.filename">1</xsl:param> \
+  <xsl:param name="chunker.output.indent">yes</xsl:param> \
+  <xsl:param name="index.on.type">1</xsl:param> \
+</xsl:stylesheet>
+
+# for man-page output
+MAN_CUSTOM := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
+                version="1.0"> \
+  <xsl:import href="$(DOCBOOK_XSL)/manpages/docbook.xsl"/> \
+  <xsl:param name="man.output.manifest.enabled" select="1"/> \
+  <xsl:param name="man.output.in.separate.dir" select="1"/> \
+  <xsl:param name="man.output.base.dir">man/</xsl:param> \
+  <xsl:param name="man.output.subdirs.enabled" select="1"/> \
+</xsl:stylesheet>
+
+# -----------------------------------------------------------------
+#                  ** TARGETS START HERE ** 
+# -----------------------------------------------------------------
+#  prevents make from deleting, e.g. foo.1, after making foo.1.pdf
+#  and foo.1.txt from it.
+.PRECIOUS: %.1 %.2 %.3 %.4 %.5 %.6 %.7 %.8 %.9
+
+docbook: $(DOCBOOK_OUTPUT_FORMATS)
+
+xml: $(SOURCE_FILES_DBK)
+
+man: $(LISTS_MAN)
+
+# we can generate PDFs from man pages
+man-pdf: man
+	$(MAKE) $(FILES_MANP)
+
+# we can generate plain text from man pages
+man-txt: man
+	$(MAKE) $(FILES_MANT)
+
+html: $(FILES_HTML)
+
+chunk: $(LISTS_HTML)
+
+txt: $(FILES_TXT)
+
+pdf: $(FILES_PDF)
+
+info: $(FILES_INFO)
+
+# use the "debug" target to echo variables, etc., to
+# test/troubleshoot changes you make to this makefile
+debug:
+	echo $(wildcard *$(DOCBOOK_FILE_EXTENSION))
+	echo $(ASCII_OR_DOCBOOK)
+	echo $(SOURCE_FILES_DBK)
+
+# -----------------------------------------------------------------
+#     pattern rule to make DocBook refentry from asciidoc source
+# -----------------------------------------------------------------
+%.1$(DOCBOOK_FILE_EXTENSION): %.1.txt
+	$(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $<
+
+%.2$(DOCBOOK_FILE_EXTENSION): %.2.txt
+	$(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $<
+
+%.3$(DOCBOOK_FILE_EXTENSION): %.3.txt
+	$(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $<
+
+%.4$(DOCBOOK_FILE_EXTENSION): %.4.txt
+	$(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $<
+
+%.5$(DOCBOOK_FILE_EXTENSION): %.5.txt
+	$(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $<
+
+%.6$(DOCBOOK_FILE_EXTENSION): %.6.txt
+	$(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $<
+
+%.7$(DOCBOOK_FILE_EXTENSION): %.7.txt
+	$(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $<
+
+%.8$(DOCBOOK_FILE_EXTENSION): %.8.txt
+	$(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $<
+
+%.9$(DOCBOOK_FILE_EXTENSION): %.9.txt
+	$(ASCIIDOC) $(ASCIIDOCFLAGS) -d manpage -b docbook $<
+
+# -----------------------------------------------------------------
+#     pattern rule to make DocBook article from asciidoc source
+# -----------------------------------------------------------------
+%$(DOCBOOK_FILE_EXTENSION): %.txt
+	export LINECOUNT1=$$(cat $< | $(DOS2UNIX) $(DOS2UNIXFLAGS) | egrep "^=+$$" | wc -l); \
+	export LINECOUNT2=$$(cat $< | $(DOS2UNIX) $(DOS2UNIXFLAGS) | egrep "^= $$" | wc -l); \
+	if [[ $$LINECOUNT1 > 1 || $$LINECOUNT2 > 1 ]]; then \
+	$(ASCIIDOC) $(ASCIIDOCFLAGS) -d book -b docbook $<; \
+	else \
+	$(ASCIIDOC) $(ASCIIDOCFLAGS) -b docbook $<; \
+	fi
+
+# -----------------------------------------------------------------
+#     pattern rule for making (X)HTML and plain-text output
+# -----------------------------------------------------------------
+%.html: %$(DOCBOOK_FILE_EXTENSION)
+	@echo '$(HTML_CUSTOM)' | $(XSLT) $(XSLT_FLAGS) $(HTML_PARAMS) - $< > $@
+
+%.out.txt: %.html
+	$(TXT_MAKER) $(TXT_MAKER_FLAGS) ./$< \
+	  | sed "s/^\(\s\+[0-9]\+\. \)file:\/\/.\+$$/\\1(local)/g" \
+	  | egrep -v '^	file:///.+$$' \
+	  > $@
+# if DOCBOOK_OUTPUT_FORMATS does not contain "html", then we need
+# to remove the "intermediate" HTML files we used for generating
+# plain-text output
+ifeq ($(findstring html,$(DOCBOOK_OUTPUT_FORMATS)),)
+	$(RM) $<
+endif
+
+# -----------------------------------------------------------------
+#     pattern rule for making chunked (X)HTML pages
+# -----------------------------------------------------------------
+%.$(HTML_MANIFEST_EXT): %$(DOCBOOK_FILE_EXTENSION)
+	@echo '$(CHNK_CUSTOM)' | $(XSLT) $(XSLT_FLAGS) $(HTML_PARAMS) \
+	--stringparam manifest $@  \
+	--stringparam base.dir $(basename $@)$(BASEDIR_SUFFIX)/  \
+	- $< 
+
+# -----------------------------------------------------------------
+#     pattern rules for making FO and PDF stuff
+# -----------------------------------------------------------------
+%.fo: %$(DOCBOOK_FILE_EXTENSION)
+	@echo '$(FO_CUSTOM)' \
+	  | $(XSLT) $(XSLT_FLAGS) $(FO_PARAMS) - $< > $@
+
+ifeq ($(PDF_MAKER),dblatex)
+%.pdf: %$(DOCBOOK_FILE_EXTENSION)
+	mkdir -p $(DOCBOOK_TMP)
+	echo '$(DBX_CUSTOM)' > $(DOCBOOK_TMP)/dblatex.xsl
+	-$(DBLATEX) $(DBLATEX_FLAGS)\
+	  -p $(DOCBOOK_TMP)/dblatex.xsl \
+	  -o $@ \
+	  $<
+	$(RM) -r $(DOCBOOK_TMP)
+endif
+
+%.pdf: %.fo
+ifeq ($(PDF_MAKER),)
+	$(error No PDF_MAKER specified. Cannot make pdf)
+else
+ifeq ($(PDF_MAKER),xep)
+	$(XEP) $(XEP_FLAGS) $< $@
+else
+ifeq ($(PDF_MAKER),fop)
+	$(FOP) $(FOP_FLAGS) $< $@
+else
+ifeq ($(PDF_MAKER),xmlroff)
+	$(XMLROFF) $(XMLROFF_FLAGS) $< -o $@
+else
+ifeq ($(PDF_MAKER),passivetex)
+	$(PDFTEX) $(PDFTEX_FLAGS) &$(PDFXMLTEX) $<
+	@if [ `egrep Rerun $(basename $@).log | wc -l` -gt 0 ]; then \
+		$(PDFTEX) $(PDFTEX_FLAGS) &$(PDFXMLTEX) $< ; \
+	fi
+	@if [ `egrep Rerun $(basename $@).log | wc -l` -gt 0 ]; then \
+		$(PDFTEX) $(PDFTEX_FLAGS) &$(PDFXMLTEX) $< ; \
+	fi
+	$(RM) $(basename $@).log
+	$(RM) $(basename $@).aux
+	$(RM) $(basename $@).out
+else
+	$(error I do not know how to make a PDF using "$(PDF_MAKER)")
+endif
+endif
+endif
+endif
+endif
+
+# -----------------------------------------------------------------
+#     pattern rules for making TeXinfo stuff
+# -----------------------------------------------------------------
+%.txml: %$(DOCBOOK_FILE_EXTENSION)
+	$(DB2X_XSLTPROC) $(DB2X_XSLTPROC_FLAGS) -s texi -o $@ $<
+
+%.texi: %.txml
+	$(DB2X_TEXIXML) $(DB2X_TEXIXML_FLAGS) $<
+
+# the following is actually a built-in rule, but it's redefined
+# here just for the sake of clarity
+%.info: %.texi
+	$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@
+
+# -----------------------------------------------------------------
+#     pattern rule for making man pages
+# -----------------------------------------------------------------
+%.$(MAN_MANIFEST_EXT): %$(DOCBOOK_FILE_EXTENSION)
+	@if [ "$(strip $(shell echo '$(REFENTRY_CHECK)' | $(XSLT) $(XSLT_FLAGS) - $<))" != "true" ]; then \
+	  touch $@; \
+	else \
+	  echo '$(MAN_CUSTOM)' \
+	  | $(XSLT) $(XSLT_FLAGS) $(MAN_PARAMS) \
+	    --stringparam man.output.manifest.filename $@ \
+	    - $<; \
+	fi
+
+# -----------------------------------------------------------------
+#  pattern rule for enabling direct "make foo.1" to work
+# -----------------------------------------------------------------
+
+%.1 %.2 %.3 %.4 %.5 %.6 %.7: %.xml
+	$(MAKE) $(basename $<).$(MAN_MANIFEST_EXT)
+
+# -----------------------------------------------------------------
+#  pattern rules for making Postscript/PDF output from man pages
+# -----------------------------------------------------------------
+%.1.man.ps: %.1
+	$(MAN) -l $(MAN_FLAGS) -Tps $< > $@
+
+%.2.man.ps: %.2
+	$(MAN) -l $(MAN_FLAGS) -Tps $< > $@
+
+%.3.man.ps: %.3
+	$(MAN) -l $(MAN_FLAGS) -Tps $< > $@
+
+%.4.man.ps: %.4
+	$(MAN) -l $(MAN_FLAGS) -Tps $< > $@
+
+%.5.man.ps: %.5
+	$(MAN) -l $(MAN_FLAGS) -Tps $< > $@
+
+%.6.man.ps: %.6
+	$(MAN) -l $(MAN_FLAGS) -Tps $< > $@
+
+%.7.man.ps: %.7
+	$(MAN) -l $(MAN_FLAGS) -Tps $< > $@
+
+%.8.man.ps: %.8
+	$(MAN) -l $(MAN_FLAGS) -Tps $< > $@
+
+%.9.man.ps: %.9
+	$(MAN) -l $(MAN_FLAGS) -Tps $< > $@
+
+# -----------------------------------------------------------------
+#  pattern rule for converting Postscript to PDF
+# -----------------------------------------------------------------
+%.pdf: %.ps
+	$(PS2PDF) $(PS2PDF_FLAGS) $<
+
+# -----------------------------------------------------------------
+#  pattern rules for making plain-text output from man pages
+# -----------------------------------------------------------------
+%.1.out.txt: %.1
+	$(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
+
+%.2.out.txt: %.2
+	$(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
+
+%.3.out.txt: %.3
+	$(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
+
+%.4.out.txt: %.4
+	$(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
+
+%.5.out.txt: %.5
+	$(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
+
+%.6.out.txt: %.6
+	$(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
+
+%.7.out.txt: %.7
+	$(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
+
+%.8.out.txt: %.8
+	$(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
+
+%.9.out.txt: %.9
+	$(MAN) -l $(MAN_FLAGS) -Tascii $< | $(COL) -b $(COL_FLAGS) | $(EXPAND) $(EXPAND_FLAGS) > $@
+
+# -----------------------------------------------------------------
+#   target(s) for cleaning up the mess
+# -----------------------------------------------------------------
+clean:
+ifneq ($(FILES_TXT),)
+	$(RM) $(FILES_TXT)
+endif
+ifneq ($(FILES_PDF),)
+	$(RM) $(FILES_PDF)
+endif
+ifneq ($(FILES_FO),)
+	$(RM) $(FILES_FO)
+endif
+ifneq ($(FILES_LOG),)
+	$(RM) $(FILES_LOG)
+endif
+ifneq ($(FILES_OUT),)
+	$(RM) $(FILES_OUT)
+endif
+ifneq ($(FILES_AUX),)
+	$(RM) $(FILES_AUX)
+endif
+ifneq ($(FILES_HTML),)
+	$(RM) $(FILES_HTML)
+endif
+ifneq ($(FILES_CHNK),)
+	$(RM) $(FILES_CHNK)
+endif
+ifneq ($(FILES_MAN),)
+	$(RM) $(FILES_MAN)
+endif
+ifneq ($(FILES_MANT),)
+	$(RM) $(FILES_MANT)
+endif
+ifneq ($(FILES_MANP),)
+	$(RM) $(FILES_MANP)
+endif
+ifneq ($(FILES_INFO),)
+	$(RM) $(FILES_INFO)
+endif
+ifneq ($(DIRS_CHUNK),)
+	for dir in $(DIRS_CHUNK); do \
+	  if [ -d "$$dir" ]; then \
+	    $(RMDIR) $(RMDIR_FLAGS) $$dir; \
+	  fi \
+	done
+endif
+ifneq ($(DIRS_MAN),)
+ifneq ($(DIRS_MAN),.)
+	for dir in $(DIRS_MAN); do \
+	  if [ -d "$$dir" ]; then \
+	    $(RMDIR) $(RMDIR_FLAGS) $$dir; \
+	  fi \
+	done
+endif
+endif
+ifneq ($(LISTS_MAN),)
+	$(RM) $(LISTS_MAN)
+endif
+ifneq ($(LISTS_HTML),)
+	$(RM) $(LISTS_HTML)
+endif
+ifneq ($(ASCII_OR_DOCBOOK),docbook)
+	$(RM) -i $(SOURCE_FILES_DBK)
+endif
diff --git a/applications/content/template/docbook/tools/make/Makefile.combine b/applications/content/template/docbook/tools/make/Makefile.combine
new file mode 100644
index 0000000..6a1dcf7
--- /dev/null
+++ b/applications/content/template/docbook/tools/make/Makefile.combine
@@ -0,0 +1,182 @@
+# $Source$
+# $Author: xmldoc $
+# $Date: 2007-03-05 06:28:18 +0000 (Mon, 05 Mar 2007) $
+# $Revision: 6666 $
+# vim: number
+#
+# -----------------------------------------------------------------
+#  ** Makefile.combine -- combine source files **
+# -----------------------------------------------------------------
+#
+#   This file is part of the DocBook Project XSL Stylesheet
+#   distribution.
+#
+#   See http://docbook.sourceforge.net/release/xsl/current/
+#   for copyright and other information.
+#
+# This makefile creates "wrapper" files that combine sets of
+# individual DocBook source files. The purpose of combining the
+# files is to speed up processing time. By default it puts 20
+# files into each wrapper. Use CHUNKSIZE to configure the number
+# of files per wrapper.
+#
+# Currently, this makefile has only a "man" target and is mainly
+# intended to speed up processing of large numbers of individual
+# refentry instances.
+
+# What file extension do you use for DocBook source files?
+DOCBOOK_FILE_EXTENSION = .xml
+SOURCE_FILES_DBK = $(wildcard *$(DOCBOOK_FILE_EXTENSION))
+
+MAKEFILE_DOCBOOK = Makefile.DocBook
+
+XSLTPROC=xsltproc
+XSLTPROC_FLAGS=
+
+SED=sed
+SED_FLAGS=-i
+
+CHUNKSIZE ?= 20
+
+WRAPPER_ELEMENT = reference
+WRAPPER_TITLE=Combined contents
+
+COMBINE_XSL = <?xml version="1.0"?> \
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
+                xmlns:exsl="http://exslt.org/common" \
+                xmlns:xi="http://www.w3.org/2001/XInclude" \
+                exclude-result-prefixes="exsl xi" \
+                extension-element-prefixes="exsl" \
+                version="1.0"> \
+  <xsl:param name="files"/> \
+  <xsl:param name="chunk.size"/> \
+  <xsl:template match="/"> \
+    <xsl:call-template name="make.file"/> \
+  </xsl:template> \
+ \
+  <xsl:template name="make.file"> \
+    <xsl:param name="count" select="1"/> \
+    <xsl:param name="current.files" select="concat(normalize-space($$files), ^^ ^^)"/> \
+    <xsl:param name="more.files" \
+               select="concat(normalize-space(substring-after($$current.files, ^^ ^^)),^^ ^^)"/> \
+    <xsl:param name="file.number" select="1"/> \
+    <xsl:param name="filename" select="concat(^^./build/^^,$$file.number,^^.xml^^)"/> \
+ \
+    <xsl:choose> \
+      <xsl:when test="$$more.files = ^^ ^^"/> \
+      <xsl:when test="$$count mod $$chunk.size = 0"> \
+        <xsl:variable name="fileset" select="concat($$current.files, ^^ ^^, \
+          substring-before($$more.files, ^^ ^^))"/> \
+        <exsl:document href="{$$filename}" \
+                       method="xml" \
+                       encoding="UTF-8" \
+                       indent="yes" \
+                       omit-xml-declaration="yes" \
+                       media-type="" \
+                       standalone="no"> \
+          <$(WRAPPER_ELEMENT)> \
+            <title>$(WRAPPER_TITLE)</title> \
+            <xsl:call-template name="make.xinclude"> \
+              <xsl:with-param name="file"> \
+                <xsl:choose> \
+                  <xsl:when test="contains($$fileset, ^^ ^^)"> \
+                    <xsl:value-of \
+                        select="normalize-space(substring-before($$fileset, ^^ ^^))"/> \
+                  </xsl:when> \
+                  <xsl:otherwise> \
+                    <xsl:value-of select="$$fileset"/> \
+                  </xsl:otherwise> \
+                </xsl:choose> \
+              </xsl:with-param> \
+              <xsl:with-param \
+                  name="remaining.files" \
+                  select="concat(normalize-space(substring-after($$fileset, ^^ ^^)),^^ ^^)"/> \
+            </xsl:call-template> \
+          </$(WRAPPER_ELEMENT)> \
+        </exsl:document> \
+        <xsl:call-template name="make.file"> \
+          <xsl:with-param name="count" select="1"/> \
+          <xsl:with-param name="current.files"  \
+                          select="$$more.files"/> \
+          <xsl:with-param name="file.number" select="number($$file.number) + 1"/> \
+          <xsl:with-param name="filename" select="concat(^^./build/^^,$$file.number,^^.xml^^)"/> \
+        </xsl:call-template> \
+      </xsl:when> \
+      <xsl:otherwise> \
+        <xsl:call-template name="make.file"> \
+          <xsl:with-param name="count" select="$$count + 1"/> \
+          <xsl:with-param name="current.files"> \
+            <xsl:choose> \
+              <xsl:when test="$$count = 1 and $$file.number = 1"> \
+                <xsl:value-of  \
+                    select="concat(substring-before($$current.files, ^^ ^^), \
+                            ^^ ^^, \
+                            substring-before($$more.files, ^^ ^^))"/> \
+              </xsl:when> \
+              <xsl:when test="$$count = 1"> \
+                <xsl:value-of  \
+                    select="substring-before($$more.files, ^^ ^^)"/> \
+              </xsl:when> \
+              <xsl:otherwise> \
+                <xsl:value-of  \
+                    select="concat($$current.files, ^^ ^^, \
+                            substring-before($$more.files, ^^ ^^))"/> \
+              </xsl:otherwise> \
+            </xsl:choose> \
+          </xsl:with-param> \
+          <xsl:with-param name="more.files" \
+                          select="substring-after($$more.files, ^^ ^^)"/> \
+          <xsl:with-param name="file.number" select="$$file.number"/> \
+        </xsl:call-template> \
+      </xsl:otherwise> \
+    </xsl:choose> \
+  </xsl:template> \
+ \
+  <xsl:template name="make.xinclude"> \
+    <xsl:param name="file"/> \
+    <xsl:param name="remaining.files"/> \
+    <xsl:param name="count" select="1"/> \
+    <xsl:if test="not($$file = ^^^^)"> \
+      <xi:include href="../{$$file}"/> \
+      <xsl:call-template name="make.xinclude"> \
+        <xsl:with-param \
+            name="file" \
+            select="substring-before($$remaining.files, ^^ ^^)"/> \
+        <xsl:with-param \
+            name="remaining.files" \
+            select="substring-after($$remaining.files, ^^ ^^)"/> \
+        <xsl:with-param name="count" select="$$count + 1"/> \
+      </xsl:call-template> \
+    </xsl:if> \
+  </xsl:template> \
+ \
+</xsl:stylesheet>
+
+all: man
+
+man: build/man
+
+build/Makefile:
+	if [ ! -d build ]; then mkdir build; fi
+	cp $(MAKEFILE_DOCBOOK) $@
+
+combine.xsl: Makefile
+	@echo '$(COMBINE_XSL)' > $@
+	$(SED) $(SED_FLAGS) "s/\^\^/'/g" $@
+
+build/1.xml: combine.xsl
+	$(XSLTPROC) $(XSLTPROC_FLAGS) \
+	--stringparam files "$(SOURCE_FILES_DBK)" \
+	--stringparam chunk.size $(CHUNKSIZE) \
+	$< $<
+
+build/man: build/Makefile build/1.xml
+	time $(MAKE) -C build man \
+		MAN_PARAMS="--stringparam man.output.quietly 1 \
+		   --stringparam refentry.meta.get.quietly 1 \
+		   --stringparam man.charmap.enabled 0"
+
+debug:
+
+clean:
+	$(RM) -r build
diff --git a/applications/content/template/docbook/tools/make/Makefile.docParam b/applications/content/template/docbook/tools/make/Makefile.docParam
new file mode 100644
index 0000000..aff3a90
--- /dev/null
+++ b/applications/content/template/docbook/tools/make/Makefile.docParam
@@ -0,0 +1,59 @@
+# $Source$
+# $Author: xmldoc $
+# $Date: 2007-03-23 21:57:22 +0000 (Fri, 23 Mar 2007) $
+# $Revision: 6759 $
+# vim: number
+#
+# ------------------------------------------------------------------
+#  ** Makefile.paramDoc - create param.xsl files w/ embedded doc **
+# ------------------------------------------------------------------
+
+PARAMFILES = $(wildcard ../../*/param.xsl)
+PARAMFILESDOCD = $(foreach base,$(basename $(PARAMFILES)),$(base).docd.xsl)
+
+XSLT=xsltproc
+XSLTFLAGS=
+
+COPYDOC := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
+                xmlns:doc="http://docbook.org/ns/docbook" \
+                version="1.0"> \
+  <xsl:template match="*[local-name() = &apos;param&apos;]"> \
+    <xsl:call-template name="copy-xsl-source"/> \
+  </xsl:template> \
+  <xsl:template match="*[local-name() = &apos;attribute-set&apos;]"> \
+    <xsl:call-template name="copy-xsl-source"/> \
+  </xsl:template> \
+  <xsl:template name="copy-xsl-source"> \
+    <xsl:variable \
+        name="source" \
+        select="concat(&apos;../../params/&apos;,@name,&apos;.xml&apos;)"/> \
+    <xsl:apply-templates select="document($$source)/*[local-name() = &apos;refentry&apos;]"/> \
+    <xsl:copy> \
+      <xsl:apply-templates select="@* | node()"/> \
+    </xsl:copy> \
+  </xsl:template> \
+  <xsl:template match="node() | @*"> \
+    <xsl:copy> \
+      <xsl:apply-templates select="@* | node()"/> \
+    </xsl:copy> \
+  </xsl:template> \
+  <xsl:template match="*[local-name() = &apos;refentry&apos;]"> \
+    <xsl:text>&\#x0a;</xsl:text> \
+    <doc:refentry id="{@*[local-name() = &apos;id&apos;]}"> \
+      <xsl:apply-templates/> \
+    </doc:refentry> \
+    <xsl:text>&\#x0a;</xsl:text> \
+  </xsl:template> \
+  <xsl:template match="*[local-name() = &apos;refsynopsisdiv&apos;]"/> \
+</xsl:stylesheet>
+
+all: $(PARAMFILESDOCD)
+
+%.docd.xsl: %.xsl
+	@echo '$(COPYDOC)' | $(XSLT) $(XSLTFLAGS) - $< > $@
+
+debug:
+	@echo $(PARAMFILESDOCD)
+
+clean:
+	$(RM) $(PARAMFILESDOCD)
diff --git a/applications/content/template/docbook/webhelp/LICENSE b/applications/content/template/docbook/webhelp/LICENSE
new file mode 100644
index 0000000..b3a2c94
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/LICENSE
@@ -0,0 +1 @@
+See template/docbook/webhelp/docs/content/index.html
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/WEB-INF/web.xml b/applications/content/template/docbook/webhelp/WEB-INF/web.xml
new file mode 100644
index 0000000..a1f3223
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/WEB-INF/web.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<web-app>
+    <welcome-file-list>
+        <welcome-file>index.jsp</welcome-file>
+        <welcome-file>index.html</welcome-file>
+        <welcome-file>index.htm</welcome-file>
+    </welcome-file-list>
+</web-app>
diff --git a/applications/content/template/docbook/webhelp/build.ofbiz.properties b/applications/content/template/docbook/webhelp/build.ofbiz.properties
new file mode 100644
index 0000000..e9e1ea6
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/build.ofbiz.properties
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# The path (relative to the build.xml file) to your input document.
+# To use your own input document, create a build.xml file of your own
+# and import this build.xml.
+# input-xml=docsrc/readme.xml
+input-xml-accounting=../../../data/helpdata/docbookhelp/accounting_en/accounting.xml
+input-xml-humanres=../../../data/helpdata/docbookhelp/humanres_en/humanres.xml
+input-xml-projectmgr=../../../data/helpdata/docbookhelp/projectmgr_en/projectmgr.xml
+input-xml-manufacturing=../../../data/helpdata/docbookhelp/manufacturing_en/manufacturing.xml
+input-xml-manufacturing_nl=../../../data/helpdata/docbookhelp/manufacturing_nl/manufacturing.xml
+input-xml-manufacturing_de=../../../data/helpdata/docbookhelp/manufacturing_de/manufacturing.xml
+input-xml-catalog=../../../data/helpdata/docbookhelp/catalog_en/catalog.xml
+
+# The directory in which to put the output files. 
+# This directory is created if it does not exist.
+# output-dir=docs
+# output-dir=test-output
+output-dir=../../../webapp/ofbizhelp/
+output-root=../../../webapp/ofbizhelp/web-inf/
+output-dir-accounting=../../../webapp/ofbizhelp/accounting_en
+output-dir-humanres=../../../webapp/ofbizhelp/humanres_en
+output-dir-projectmgr=../../../webapp/ofbizhelp/projectmgr_en
+output-dir-manufacturing=../../../webapp/ofbizhelp/manufacturing_en
+output-dir-manufacturing_nl=../../../webapp/ofbizhelp/manufacturing_nl
+output-dir-manufacturing_de=../../../webapp/ofbizhelp/manufacturing_de
+output-dir-catalog=../../../webapp/ofbizhelp/catalog_en
+
+# If you are using a customization layer that imports ofbiz.xsl, use  
+# this property to point to it. 
+stylesheet-path=${ant.file.dir}/xsl/ofbiz.xsl
+
+# If your document has image directories that need to be copied
+# to the output directory, you can list patterns here. 
+# See the Ant documentation for fileset for documentation
+# on patterns.
+input-images-dirs=images/**,figures/**,graphics/**
+
+# By default, the ant script assumes your images are stored
+# in the same directory as the input-xml. If you store your
+# image directories in another directory, specify it here.
+# and uncomment this line.
+# input-images-basedir=/path/to/image/location
+input-images-basedir-accounting=../../../data/helpdata/docbookhelp/accounting_en_images
+input-images-basedir-humanres=../../../data/helpdata/docbookhelp/humanres_en_images
+input-images-basedir-projectmgr=../../../data/helpdata/docbookhelp/projectmgr_en_images
+input-images-basedir-manufacturing=../../../data/helpdata/docbookhelp/manufacturing_en_images
+input-images-basedir-manufacturing_nl=../../../data/helpdata/docbookhelp/manufacturing_nl_images
+input-images-basedir-manufacturing_de=../../../data/helpdata/docbookhelp/manufacturing_de_images
+input-images-basedir-catalog=../../../data/helpdata/docbookhelp/catalog_en_images
+
+# Modify the follosing so that they point to your local
+# copy of the jars indicated:
+# * Saxon 6.5 jar
+# * Xerces 2: xercesImpl.jar
+# * xml-commons: xml-apis.jar
+# saxon.jar license Mozilla Public License Version 1.0 http://www.mozilla.org/MPL/
+# saxon.jar download http://sourceforge.net/projects/saxon/files/saxon6/6.5.5/
+xslt-processor-classpath=saxon.jar 
+
+# For non-ns version only, this validates the document 
+# against a dtd.
+validate-against-dtd=false
+
+# The extension for files to be indexed (html/htm/xhtml etc.)
+html.extension=html
+
+# Set this to false if you don't need a search tab.
+webhelp.include.search.tab=true
+
+# indexer-language is used to tell the search indexer which language
+# the docbook is written.  This will be used to identify the correct
+# stemmer, and punctuations that differs from language to language.
+# see the documentation for details. en=English, fr=French, de=German,
+# zh=Chinese, ja=Japanese etc.  
+webhelp.indexer.language=en
+
+# Enables/Disables stemming
+# Stemming allows better querying for the search
+enable.stemming=true
+
+#Set the table of contents file. This file will not be indexed.
+#toc.file=dummy.html
+
+#Used for adding branding specific contents to the html files.
+#For example, the url docbook.org, Google Analytics id etc.
+branding=docbook
+brandname=DocBook
+
+# Set admon.graphics to 1 to user graphics for note, tip, etc.
+admon.graphics=1
+suppress.footer.navigation=0
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/build.ofbiz.xml b/applications/content/template/docbook/webhelp/build.ofbiz.xml
new file mode 100644
index 0000000..3da0826
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/build.ofbiz.xml
@@ -0,0 +1,1092 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<project default="help" name="mainbuild">
+
+    <dirname property="ant.file.dir" file="${ant.file.mainbuild}"/>
+    <loadproperties srcFile="${ant.file.dir}/build.ofbiz.properties"/>
+
+    <property name="webhelp.include.search.tab" value="true"/>
+    <property name="extensions.dir" value="${ant.file.dir}/../extensions"/>
+    <property name="ofbiz.dir" value="../../framework/base/lib"/>
+    <!--   <property name="lib.dir" value="lib"/> -->
+
+    <path id="classpath">
+        <pathelement location="${extensions.dir}/webhelpindexer.jar"/>
+        <pathelement location="${extensions.dir}/lucene-analyzers-3.0.0.jar"/>
+        <pathelement location="${extensions.dir}/lucene-core-3.0.0.jar"/>
+        <pathelement location="${extensions.dir}/tagsoup-1.2.1.jar"/>
+    </path>
+
+    <condition property="perform-validation-dtd">
+        <equals arg1="${validate-against-dtd}" arg2="true"/>
+    </condition>
+    <condition property="do-search-indexing">
+        <equals arg1="${webhelp.include.search.tab}" arg2="true"/>
+    </condition>
+  
+    <!-- To do move image paths to build.properties -->
+    <!--   <property name="images.src.dir" value="../../data/helpdata/docbookhelp/images" /> -->
+    <property name="images.dir.web" value="${output-dir}/images" />
+    <property name="images.dir.web.accounting.en" value="${output-dir-accounting}/accounting_en_images" />
+    <property name="images.dir.web.humanres.en" value="${output-dir-humanres}/humanres_en_images" />
+    <property name="images.dir.web.projectmgr.en" value="${output-dir-projectmgr}/projectmgr_en_images" />
+    <property name="images.dir.web.manufacturing.en" value="${output-dir-manufacturing}/manufacturing_en_images" />
+    <property name="images.dir.web.manufacturing_nl.nl" value="${output-dir-manufacturing_nl}/manufacturing_nl_images" />
+    <property name="images.dir.web.manufacturing_de.de" value="${output-dir-manufacturing_de}/manufacturing_de_images" />
+    <property name="images.dir.web.catalog.en" value="${output-dir-catalog}/catalog_en_images" />
+        
+    <!--===================================== OFBiz help targets =====================================-->
+  
+    <!-- webhelp.all: to have the XSLT part of targets to work, at least after the 1st, you need to have an antcall for each --> 
+    <target name="webhelp.all" description="Generate help for all filled components">
+      <antcall>
+          <target name="webhelp.accounting"/>
+      </antcall>
+      <antcall>
+        <target name="webhelp.projectmgr"/>
+      </antcall>
+      <antcall>
+        <target name="webhelp.manufacturing"/>
+      </antcall>
+      <antcall>
+        <target name="webhelp.manufacturing_nl"/>
+      </antcall>
+      <antcall>
+        <target name="webhelp.manufacturing_de"/>
+      </antcall>
+      <antcall>
+        <target name="webhelp.catalog"/>
+      </antcall>
+    </target>
+
+    <target name="webhelp.accounting" depends="chunk.accounting,index.accounting,web-images-accounting" description="Generate help for Accounting Component"/>
+    <target name="webhelp.humanres" depends="chunk.humanres,index.humanres,web-images-humanres" description="Generate help for Humanres Rersource Component"/>
+    <target name="webhelp.projectmgr" depends="chunk.projectmgr,index.projectmgr,web-images-projectmgr" description="Generate help for Project Component"/>
+    <target name="webhelp.manufacturing" depends="chunk.manufacturing,index.manufacturing,web-images-manufacturing" description="Generate help for Manufacturing Component"/>
+    <target name="webhelp.manufacturing_nl" depends="chunk.manufacturing_nl,index.manufacturing_nl,web-images-manufacturing_nl" description="Generate help for Manufacturing Component NL locale"/>
+    <target name="webhelp.manufacturing_de" depends="chunk.manufacturing_de,index.manufacturing_de,web-images-manufacturing_de" description="Generate help for Manufacturing Component DE locale"/>
+    <target name="webhelp.catalog" depends="chunk.catalog,index.catalog,web-images-catalog" description="Generate help for catalog Component"/>
+
+    <target name="chunk.accounting" depends="clean.accounting">
+
+        <mkdir dir="${output-dir-accounting}"/>
+        <tempfile destdir="${output-dir-accounting}" deleteonexit="true" property="xincluded-profiled.xml"/>
+        <tempfile destdir="${output-dir-accounting}" deleteonexit="true" property="dummy.html"/>
+        <xslt
+          in="${input-xml-accounting}"
+            out="${xincluded-profiled.xml}"
+            style="${ant.file.dir}/../profiling/profile.xsl">
+            <sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration"
+                   value="org.apache.xerces.parsers.XIncludeParserConfiguration"/>
+            <param name="profile.arch" expression="${profile.arch}" if="profile.arch"/>
+            <param name="profile.audience" expression="${profile.audience}" if="profile.audience"/>
+            <param name="profile.condition" expression="${profile.condition}" if="profile.condition"/>
+            <param name="profile.conformance" expression="${profile.conformance}" if="profile.conformance"/>
+            <param name="profile.lang" expression="${profile.lang}" if="profile.lang"/>
+            <param name="profile.os" expression="${profile.os}" if="profile.os"/>
+            <param name="profile.revision" expression="${profile.revision}" if="profile.revision"/>
+            <param name="profile.revisionflag" expression="${profile.revisionflag}" if="profile.revisionflag"/>
+            <param name="profile.role" expression="${profile.role}" if="profile.role"/>
+            <param name="profile.security" expression="${profile.security}" if="profile.security"/>
+            <param name="profile.status" expression="${profile.status}" if="profile.status"/>
+            <param name="profile.userlevel" expression="${profile.userlevel}" if="profile.userlevel"/>
+            <param name="profile.vendor" expression="${profile.vendor}" if="profile.vendor"/>
+            <param name="profile.wordsize" expression="${profile.wordsize}" if="profile.wordsize"/>
+            <param name="profile.attribute" expression="${profile.attribute}" if="profile.attribute"/>
+            <param name="profile.value" expression="${profile.value}" if="profile.value"/>
+        </xslt>
+
+        <xslt
+          in="${xincluded-profiled.xml}"
+          out="${dummy.html}"
+          style="${stylesheet-path}"
+          scanincludeddirectories="false"
+          classpath="${xslt-processor-classpath}">
+            <param name="webhelp.include.search.tab" expression="${webhelp.include.search.tab}"
+            if="webhelp.include.search.tab"/>
+            <param name="output_file_name" expression="${output_file_name}"/>
+            <param name="webhelp.base.dir" expression="${output-dir-accounting}" if="output-dir-accounting"/>
+            <param name="webhelp.indexer.language" expression="${webhelp.indexer.language}" if="webhelp.indexer.language"/>
+            <param name="branding" expression="${branding}" if="branding"/>
+            <param name="brandname" expression="${brandname}" if="brandname"/>
+            <param name="admon.graphics" expression="${admon.graphics}" if="admon.graphics"/>
+            <param name="suppress.footer.navigation" expression="${suppress.footer.navigation}" if="suppress.footer.navigation"/>
+        </xslt>
+
+        <!-- Copy common content such as js files of tree, css etc. to template folder. They will be copied to doc folder. They are NOT page specific! -->
+        <copy todir="${output-dir-accounting}">
+            <fileset dir="${ant.file.dir}/template">
+                <include name="**/*"/>
+                <exclude name="**/content/search/**"/>
+            </fileset>
+        </copy>
+        <copy todir="${output-root}">
+            <fileset dir="${ant.file.dir}/WEB-INF"/>
+        </copy>
+        <!-- Very simple-minded copy to handle the source document's images -->
+        <!-- TODO: Look at html help code that produces a manifest file...list of images -->
+        <!--       Customize ofbiz.xsl to produce ant file to copy images actually used? -->
+        <dirname property="input-images-basedir" file="${input-xml}"/>
+        <copy todir="${output-dir}/content" failonerror="false">
+            <fileset dir="${input-images-basedir}" includes="${input-images-dirs}" />
+        </copy>
+    </target>
+
+    <target name="chunk.humanres" depends="clean.humanres">
+
+        <mkdir dir="${output-dir-humanres}"/>
+        <tempfile destdir="${output-dir-humanres}" deleteonexit="true" property="xincluded-profiled.xml"/>
+        <tempfile destdir="${output-dir-humanres}" deleteonexit="true" property="dummy.html"/>
+        <xslt
+          in="${input-xml-humanres}"
+            out="${xincluded-profiled.xml}"
+            style="${ant.file.dir}/../profiling/profile.xsl">
+            <sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration"
+                   value="org.apache.xerces.parsers.XIncludeParserConfiguration"/>
+            <param name="profile.arch" expression="${profile.arch}" if="profile.arch"/>
+            <param name="profile.audience" expression="${profile.audience}" if="profile.audience"/>
+            <param name="profile.condition" expression="${profile.condition}" if="profile.condition"/>
+            <param name="profile.conformance" expression="${profile.conformance}" if="profile.conformance"/>
+            <param name="profile.lang" expression="${profile.lang}" if="profile.lang"/>
+            <param name="profile.os" expression="${profile.os}" if="profile.os"/>
+            <param name="profile.revision" expression="${profile.revision}" if="profile.revision"/>
+            <param name="profile.revisionflag" expression="${profile.revisionflag}" if="profile.revisionflag"/>
+            <param name="profile.role" expression="${profile.role}" if="profile.role"/>
+            <param name="profile.security" expression="${profile.security}" if="profile.security"/>
+            <param name="profile.status" expression="${profile.status}" if="profile.status"/>
+            <param name="profile.userlevel" expression="${profile.userlevel}" if="profile.userlevel"/>
+            <param name="profile.vendor" expression="${profile.vendor}" if="profile.vendor"/>
+            <param name="profile.wordsize" expression="${profile.wordsize}" if="profile.wordsize"/>
+            <param name="profile.attribute" expression="${profile.attribute}" if="profile.attribute"/>
+            <param name="profile.value" expression="${profile.value}" if="profile.value"/>
+        </xslt>
+
+        <xslt
+          in="${xincluded-profiled.xml}"
+          out="${dummy.html}"
+          style="${stylesheet-path}"
+          scanincludeddirectories="false"
+          classpath="${xslt-processor-classpath}">
+            <param name="webhelp.include.search.tab" expression="${webhelp.include.search.tab}"
+            if="webhelp.include.search.tab"/>
+            <param name="output_file_name" expression="${output_file_name}"/>
+            <param name="webhelp.base.dir" expression="${output-dir-humanres}" if="output-dir-humanres"/>
+            <param name="webhelp.indexer.language" expression="${webhelp.indexer.language}" if="webhelp.indexer.language"/>
+            <param name="branding" expression="${branding}" if="branding"/>
+            <param name="brandname" expression="${brandname}" if="brandname"/>
+            <param name="admon.graphics" expression="${admon.graphics}" if="admon.graphics"/>
+            <param name="suppress.footer.navigation" expression="${suppress.footer.navigation}" if="suppress.footer.navigation"/>
+        </xslt>
+
+        <!-- Copy common content such as js files of tree, css etc. to template folder. They will be copied to doc folder. They are NOT page specific! -->
+        <copy todir="${output-dir-humanres}">
+            <fileset dir="${ant.file.dir}/template">
+                <include name="**/*"/>
+                <exclude name="**/content/search/**"/>
+            </fileset>
+        </copy>
+        <copy todir="${output-root}">
+            <fileset dir="${ant.file.dir}/WEB-INF"/>
+        </copy>
+        <!-- Very simple-minded copy to handle the source document's images -->
+        <!-- TODO: Look at html help code that produces a manifest file...list of images -->
+        <!--       Customize ofbiz.xsl to produce ant file to copy images actually used? -->
+        <dirname property="input-images-basedir" file="${input-xml-humanres}"/>
+        <copy todir="${output-dir-humanres}/content" failonerror="false">
+            <fileset dir="${input-images-basedir}" includes="${input-images-dirs}" />
+        </copy>
+    </target>
+    
+    <target name="chunk.projectmgr" depends="clean.projectmgr">
+
+        <mkdir dir="${output-dir-projectmgr}"/>
+        <tempfile destdir="${output-dir-projectmgr}" deleteonexit="true" property="xincluded-profiled.xml"/>
+        <tempfile destdir="${output-dir-projectmgr}" deleteonexit="true" property="dummy.html"/>
+        <xslt
+          in="${input-xml-projectmgr}"
+            out="${xincluded-profiled.xml}"
+            style="${ant.file.dir}/../profiling/profile.xsl">
+            <sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration"
+                   value="org.apache.xerces.parsers.XIncludeParserConfiguration"/>
+            <param name="profile.arch" expression="${profile.arch}" if="profile.arch"/>
+            <param name="profile.audience" expression="${profile.audience}" if="profile.audience"/>
+            <param name="profile.condition" expression="${profile.condition}" if="profile.condition"/>
+            <param name="profile.conformance" expression="${profile.conformance}" if="profile.conformance"/>
+            <param name="profile.lang" expression="${profile.lang}" if="profile.lang"/>
+            <param name="profile.os" expression="${profile.os}" if="profile.os"/>
+            <param name="profile.revision" expression="${profile.revision}" if="profile.revision"/>
+            <param name="profile.revisionflag" expression="${profile.revisionflag}" if="profile.revisionflag"/>
+            <param name="profile.role" expression="${profile.role}" if="profile.role"/>
+            <param name="profile.security" expression="${profile.security}" if="profile.security"/>
+            <param name="profile.status" expression="${profile.status}" if="profile.status"/>
+            <param name="profile.userlevel" expression="${profile.userlevel}" if="profile.userlevel"/>
+            <param name="profile.vendor" expression="${profile.vendor}" if="profile.vendor"/>
+            <param name="profile.wordsize" expression="${profile.wordsize}" if="profile.wordsize"/>
+            <param name="profile.attribute" expression="${profile.attribute}" if="profile.attribute"/>
+            <param name="profile.value" expression="${profile.value}" if="profile.value"/>
+        </xslt>
+
+        <xslt
+          in="${xincluded-profiled.xml}"
+          out="${dummy.html}"
+          style="${stylesheet-path}"
+          scanincludeddirectories="false"
+          classpath="${xslt-processor-classpath}">
+            <param name="webhelp.include.search.tab" expression="${webhelp.include.search.tab}"
+            if="webhelp.include.search.tab"/>
+            <param name="output_file_name" expression="${output_file_name}"/>
+            <param name="webhelp.base.dir" expression="${output-dir-projectmgr}" if="output-dir-projectmgr"/>
+            <param name="webhelp.indexer.language" expression="${webhelp.indexer.language}" if="webhelp.indexer.language"/>
+            <param name="branding" expression="${branding}" if="branding"/>
+            <param name="brandname" expression="${brandname}" if="brandname"/>
+            <param name="admon.graphics" expression="${admon.graphics}" if="admon.graphics"/>
+            <param name="suppress.footer.navigation" expression="${suppress.footer.navigation}" if="suppress.footer.navigation"/>
+        </xslt>
+
+        <!-- Copy common content such as js files of tree, css etc. to template folder. They will be copied to doc folder. They are NOT page specific! -->
+        <copy todir="${output-dir-projectmgr}">
+            <fileset dir="${ant.file.dir}/template">
+                <include name="**/*"/>
+                <exclude name="**/content/search/**"/>
+            </fileset>
+        </copy>
+        <copy todir="${output-root}">
+            <fileset dir="${ant.file.dir}/WEB-INF"/>
+        </copy>
+        <!-- Very simple-minded copy to handle the source document's images -->
+        <!-- TODO: Look at html help code that produces a manifest file...list of images -->
+        <!--       Customize ofbiz.xsl to produce ant file to copy images actually used? -->
+        <dirname property="input-images-basedir" file="${input-xml-projectmgr}"/>
+        <copy todir="${output-dir-projectmgr}/content" failonerror="false">
+            <fileset dir="${input-images-basedir}" includes="${input-images-dirs}" />
+        </copy>
+    </target>   
+    
+
+    
+    <target name="chunk.manufacturing" depends="clean.manufacturing">
+
+            <mkdir dir="${output-dir-manufacturing}"/>
+            <tempfile destdir="${output-dir-manufacturing}" deleteonexit="true" property="xincluded-profiled.xml"/>
+            <tempfile destdir="${output-dir-manufacturing}" deleteonexit="true" property="dummy.html"/>
+            <xslt
+              in="${input-xml-manufacturing}"
+                out="${xincluded-profiled.xml}"
+                style="${ant.file.dir}/../profiling/profile.xsl">
+                <sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration"
+                       value="org.apache.xerces.parsers.XIncludeParserConfiguration"/>
+                <param name="profile.arch" expression="${profile.arch}" if="profile.arch"/>
+                <param name="profile.audience" expression="${profile.audience}" if="profile.audience"/>
+                <param name="profile.condition" expression="${profile.condition}" if="profile.condition"/>
+                <param name="profile.conformance" expression="${profile.conformance}" if="profile.conformance"/>
+                <param name="profile.lang" expression="${profile.lang}" if="profile.lang"/>
+                <param name="profile.os" expression="${profile.os}" if="profile.os"/>
+                <param name="profile.revision" expression="${profile.revision}" if="profile.revision"/>
+                <param name="profile.revisionflag" expression="${profile.revisionflag}" if="profile.revisionflag"/>
+                <param name="profile.role" expression="${profile.role}" if="profile.role"/>
+                <param name="profile.security" expression="${profile.security}" if="profile.security"/>
+                <param name="profile.status" expression="${profile.status}" if="profile.status"/>
+                <param name="profile.userlevel" expression="${profile.userlevel}" if="profile.userlevel"/>
+                <param name="profile.vendor" expression="${profile.vendor}" if="profile.vendor"/>
+                <param name="profile.wordsize" expression="${profile.wordsize}" if="profile.wordsize"/>
+                <param name="profile.attribute" expression="${profile.attribute}" if="profile.attribute"/>
+                <param name="profile.value" expression="${profile.value}" if="profile.value"/>
+            </xslt>
+
+            <xslt
+              in="${xincluded-profiled.xml}"
+              out="${dummy.html}"
+              style="${stylesheet-path}"
+              scanincludeddirectories="false"
+              classpath="${xslt-processor-classpath}">
+                <param name="webhelp.include.search.tab" expression="${webhelp.include.search.tab}"
+                if="webhelp.include.search.tab"/>
+                <param name="output_file_name" expression="${output_file_name}"/>
+                <param name="webhelp.base.dir" expression="${output-dir-manufacturing}" if="output-dir-manufacturing"/>
+                <param name="webhelp.indexer.language" expression="${webhelp.indexer.language}" if="webhelp.indexer.language"/>
+                <param name="branding" expression="${branding}" if="branding"/>
+                <param name="brandname" expression="${brandname}" if="brandname"/>
+                <param name="admon.graphics" expression="${admon.graphics}" if="admon.graphics"/>
+                <param name="suppress.footer.navigation" expression="${suppress.footer.navigation}" if="suppress.footer.navigation"/>
+            </xslt>
+
+            <!-- Copy common content such as js files of tree, css etc. to template folder. They will be copied to doc folder. They are NOT page specific! -->
+            <copy todir="${output-dir-manufacturing}">
+                <fileset dir="${ant.file.dir}/template">
+                    <include name="**/*"/>
+                    <exclude name="**/content/search/**"/>
+                </fileset>
+            </copy>
+            <copy todir="${output-root}">
+                <fileset dir="${ant.file.dir}/WEB-INF"/>
+            </copy>
+            <!-- Very simple-minded copy to handle the source document's images -->
+            <!-- TODO: Look at html help code that produces a manifest file...list of images -->
+            <!--       Customize ofbiz.xsl to produce ant file to copy images actually used? -->
+            <dirname property="input-images-basedir" file="${input-xml-manufacturing}"/>
+            <copy todir="${output-dir-manufacturing}/content" failonerror="false">
+                <fileset dir="${input-images-basedir}" includes="${input-images-dirs}" />
+            </copy>
+        </target>       
+      
+    <target name="chunk.manufacturing_nl" depends="clean.manufacturing_nl">
+
+                <mkdir dir="${output-dir-manufacturing_nl}"/>
+                <tempfile destdir="${output-dir-manufacturing_nl}" deleteonexit="true" property="xincluded-profiled.xml"/>
+                <tempfile destdir="${output-dir-manufacturing_nl}" deleteonexit="true" property="dummy.html"/>
+                <xslt
+                  in="${input-xml-manufacturing_nl}"
+                    out="${xincluded-profiled.xml}"
+                    style="${ant.file.dir}/../profiling/profile.xsl">
+                    <sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration"
+                           value="org.apache.xerces.parsers.XIncludeParserConfiguration"/>
+                    <param name="profile.arch" expression="${profile.arch}" if="profile.arch"/>
+                    <param name="profile.audience" expression="${profile.audience}" if="profile.audience"/>
+                    <param name="profile.condition" expression="${profile.condition}" if="profile.condition"/>
+                    <param name="profile.conformance" expression="${profile.conformance}" if="profile.conformance"/>
+                    <param name="profile.lang" expression="${profile.lang}" if="profile.lang"/>
+                    <param name="profile.os" expression="${profile.os}" if="profile.os"/>
+                    <param name="profile.revision" expression="${profile.revision}" if="profile.revision"/>
+                    <param name="profile.revisionflag" expression="${profile.revisionflag}" if="profile.revisionflag"/>
+                    <param name="profile.role" expression="${profile.role}" if="profile.role"/>
+                    <param name="profile.security" expression="${profile.security}" if="profile.security"/>
+                    <param name="profile.status" expression="${profile.status}" if="profile.status"/>
+                    <param name="profile.userlevel" expression="${profile.userlevel}" if="profile.userlevel"/>
+                    <param name="profile.vendor" expression="${profile.vendor}" if="profile.vendor"/>
+                    <param name="profile.wordsize" expression="${profile.wordsize}" if="profile.wordsize"/>
+                    <param name="profile.attribute" expression="${profile.attribute}" if="profile.attribute"/>
+                    <param name="profile.value" expression="${profile.value}" if="profile.value"/>
+                </xslt>
+
+                <xslt
+                  in="${xincluded-profiled.xml}"
+                  out="${dummy.html}"
+                  style="${stylesheet-path}"
+                  scanincludeddirectories="false"
+                  classpath="${xslt-processor-classpath}">
+                    <param name="webhelp.include.search.tab" expression="${webhelp.include.search.tab}"
+                    if="webhelp.include.search.tab"/>
+                    <param name="output_file_name" expression="${output_file_name}"/>
+                    <param name="webhelp.base.dir" expression="${output-dir-manufacturing_nl}" if="output-dir-manufacturing_nl"/>
+                    <param name="webhelp.indexer.language" expression="${webhelp.indexer.language}" if="webhelp.indexer.language"/>
+                    <param name="branding" expression="${branding}" if="branding"/>
+                    <param name="brandname" expression="${brandname}" if="brandname"/>
+                    <param name="admon.graphics" expression="${admon.graphics}" if="admon.graphics"/>
+                    <param name="suppress.footer.navigation" expression="${suppress.footer.navigation}" if="suppress.footer.navigation"/>
+                </xslt>
+
+                <!-- Copy common content such as js files of tree, css etc. to template folder. They will be copied to doc folder. They are NOT page specific! -->
+                <copy todir="${output-dir-manufacturing_nl}">
+                    <fileset dir="${ant.file.dir}/template">
+                        <include name="**/*"/>
+                        <exclude name="**/content/search/**"/>
+                    </fileset>
+                </copy>
+                <copy todir="${output-root}">
+                    <fileset dir="${ant.file.dir}/WEB-INF"/>
+                </copy>
+                <!-- Very simple-minded copy to handle the source document's images -->
+                <!-- TODO: Look at html help code that produces a manifest file...list of images -->
+                <!--       Customize ofbiz.xsl to produce ant file to copy images actually used? -->
+                <dirname property="input-images-basedir" file="${input-xml-manufacturing_nl}"/>
+                <copy todir="${output-dir-manufacturing_nl}/content" failonerror="false">
+                    <fileset dir="${input-images-basedir}" includes="${input-images-dirs}" />
+                </copy>
+            </target>   
+  
+  
+    <target name="chunk.manufacturing_de" depends="clean.manufacturing_de">
+
+                <mkdir dir="${output-dir-manufacturing_de}"/>
+                <tempfile destdir="${output-dir-manufacturing_de}" deleteonexit="true" property="xincluded-profiled.xml"/>
+                <tempfile destdir="${output-dir-manufacturing_de}" deleteonexit="true" property="dummy.html"/>
+                <xslt
+                  in="${input-xml-manufacturing_de}"
+                    out="${xincluded-profiled.xml}"
+                    style="${ant.file.dir}/../profiling/profile.xsl">
+                    <sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration"
+                           value="org.apache.xerces.parsers.XIncludeParserConfiguration"/>
+                    <param name="profile.arch" expression="${profile.arch}" if="profile.arch"/>
+                    <param name="profile.audience" expression="${profile.audience}" if="profile.audience"/>
+                    <param name="profile.condition" expression="${profile.condition}" if="profile.condition"/>
+                    <param name="profile.conformance" expression="${profile.conformance}" if="profile.conformance"/>
+                    <param name="profile.lang" expression="${profile.lang}" if="profile.lang"/>
+                    <param name="profile.os" expression="${profile.os}" if="profile.os"/>
+                    <param name="profile.revision" expression="${profile.revision}" if="profile.revision"/>
+                    <param name="profile.revisionflag" expression="${profile.revisionflag}" if="profile.revisionflag"/>
+                    <param name="profile.role" expression="${profile.role}" if="profile.role"/>
+                    <param name="profile.security" expression="${profile.security}" if="profile.security"/>
+                    <param name="profile.status" expression="${profile.status}" if="profile.status"/>
+                    <param name="profile.userlevel" expression="${profile.userlevel}" if="profile.userlevel"/>
+                    <param name="profile.vendor" expression="${profile.vendor}" if="profile.vendor"/>
+                    <param name="profile.wordsize" expression="${profile.wordsize}" if="profile.wordsize"/>
+                    <param name="profile.attribute" expression="${profile.attribute}" if="profile.attribute"/>
+                    <param name="profile.value" expression="${profile.value}" if="profile.value"/>
+                </xslt>
+
+                <xslt
+                  in="${xincluded-profiled.xml}"
+                  out="${dummy.html}"
+                  style="${stylesheet-path}"
+                  scanincludeddirectories="false"
+                  classpath="${xslt-processor-classpath}">
+                    <param name="webhelp.include.search.tab" expression="${webhelp.include.search.tab}"
+                    if="webhelp.include.search.tab"/>
+                    <param name="output_file_name" expression="${output_file_name}"/>
+                    <param name="webhelp.base.dir" expression="${output-dir-manufacturing_de}" if="output-dir-manufacturing_de"/>
+                    <param name="webhelp.indexer.language" expression="${webhelp.indexer.language}" if="webhelp.indexer.language"/>
+                    <param name="branding" expression="${branding}" if="branding"/>
+                    <param name="brandname" expression="${brandname}" if="brandname"/>
+                    <param name="admon.graphics" expression="${admon.graphics}" if="admon.graphics"/>
+                    <param name="suppress.footer.navigation" expression="${suppress.footer.navigation}" if="suppress.footer.navigation"/>
+                </xslt>
+
+                <!-- Copy common content such as js files of tree, css etc. to template folder. They will be copied to doc folder. They are NOT page specific! -->
+                <copy todir="${output-dir-manufacturing_de}">
+                    <fileset dir="${ant.file.dir}/template">
+                        <include name="**/*"/>
+                        <exclude name="**/content/search/**"/>
+                    </fileset>
+                </copy>
+                <copy todir="${output-root}">
+                    <fileset dir="${ant.file.dir}/WEB-INF"/>
+                </copy>
+                <!-- Very simple-minded copy to handle the source document's images -->
+                <!-- TODO: Look at html help code that produces a manifest file...list of images -->
+                <!--       Customize ofbiz.xsl to produce ant file to copy images actually used? -->
+                <dirname property="input-images-basedir" file="${input-xml-manufacturing_de}"/>
+                <copy todir="${output-dir-manufacturing_de}/content" failonerror="false">
+                    <fileset dir="${input-images-basedir}" includes="${input-images-dirs}" />
+                </copy>
+            </target>     
+    
+    <target name="chunk.catalog" depends="clean.catalog">
+
+        <mkdir dir="${output-dir-catalog}"/>
+        <tempfile destdir="${output-dir-catalog}" deleteonexit="true" property="xincluded-profiled.xml"/>
+        <tempfile destdir="${output-dir-catalog}" deleteonexit="true" property="dummy.html"/>
+        <xslt
+          in="${input-xml-catalog}"
+            out="${xincluded-profiled.xml}"
+            style="${ant.file.dir}/../profiling/profile.xsl">
+            <sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration"
+                   value="org.apache.xerces.parsers.XIncludeParserConfiguration"/>
+            <param name="profile.arch" expression="${profile.arch}" if="profile.arch"/>
+            <param name="profile.audience" expression="${profile.audience}" if="profile.audience"/>
+            <param name="profile.condition" expression="${profile.condition}" if="profile.condition"/>
+            <param name="profile.conformance" expression="${profile.conformance}" if="profile.conformance"/>
+            <param name="profile.lang" expression="${profile.lang}" if="profile.lang"/>
+            <param name="profile.os" expression="${profile.os}" if="profile.os"/>
+            <param name="profile.revision" expression="${profile.revision}" if="profile.revision"/>
+            <param name="profile.revisionflag" expression="${profile.revisionflag}" if="profile.revisionflag"/>
+            <param name="profile.role" expression="${profile.role}" if="profile.role"/>
+            <param name="profile.security" expression="${profile.security}" if="profile.security"/>
+            <param name="profile.status" expression="${profile.status}" if="profile.status"/>
+            <param name="profile.userlevel" expression="${profile.userlevel}" if="profile.userlevel"/>
+            <param name="profile.vendor" expression="${profile.vendor}" if="profile.vendor"/>
+            <param name="profile.wordsize" expression="${profile.wordsize}" if="profile.wordsize"/>
+            <param name="profile.attribute" expression="${profile.attribute}" if="profile.attribute"/>
+            <param name="profile.value" expression="${profile.value}" if="profile.value"/>
+        </xslt>
+
+        <xslt
+          in="${xincluded-profiled.xml}"
+          out="${dummy.html}"
+          style="${stylesheet-path}"
+          scanincludeddirectories="false"
+          classpath="${xslt-processor-classpath}">
+            <param name="webhelp.include.search.tab" expression="${webhelp.include.search.tab}"
+            if="webhelp.include.search.tab"/>
+            <param name="output_file_name" expression="${output_file_name}"/>
+            <param name="webhelp.base.dir" expression="${output-dir-catalog}" if="output-dir-catalog"/>
+            <param name="webhelp.indexer.language" expression="${webhelp.indexer.language}" if="webhelp.indexer.language"/>
+            <param name="branding" expression="${branding}" if="branding"/>
+            <param name="brandname" expression="${brandname}" if="brandname"/>
+            <param name="admon.graphics" expression="${admon.graphics}" if="admon.graphics"/>
+            <param name="suppress.footer.navigation" expression="${suppress.footer.navigation}" if="suppress.footer.navigation"/>
+        </xslt>
+
+        <!-- Copy common content such as js files of tree, css etc. to template folder. They will be copied to doc folder. They are NOT page specific! -->
+        <copy todir="${output-dir-catalog}">
+            <fileset dir="${ant.file.dir}/template">
+                <include name="**/*"/>
+                <exclude name="**/content/search/**"/>
+            </fileset>
+        </copy>
+        <copy todir="${output-root}">
+            <fileset dir="${ant.file.dir}/WEB-INF"/>
+        </copy>
+        <!-- Very simple-minded copy to handle the source document's images -->
+        <!-- TODO: Look at html help code that produces a manifest file...list of images -->
+        <!--       Customize ofbiz.xsl to produce ant file to copy images actually used? -->
+        <dirname property="input-images-basedir" file="${input-xml-catalog}"/>
+        <copy todir="${output-dir-catalog}/content" failonerror="false">
+            <fileset dir="${input-images-basedir}" includes="${input-images-dirs}" />
+        </copy>
+    </target>   
+
+    <target name="index.accounting" if="do-search-indexing">
+
+        <copy todir="${output-dir-accounting}">
+            <fileset dir="${ant.file.dir}/template">
+                <include name="**/*"/>
+                <exclude name="**/content/search/*.props"/>
+                <exclude name="**/content/search/stemmers/*"/>
+            </fileset>
+        </copy>
+
+        <!-- We separate this out so we only copy the stopwords list and stemmer for the indexer language -->
+        <copy todir="${output-dir-accounting}">
+            <fileset dir="${ant.file.dir}/template">
+                <include name="**/content/search/default.props"/>
+                <include name="**/content/search/punctuation.props"/>
+                <include name="**/content/search/${webhelp.indexer.language}*.props"/>
+                <include name="**/content/search/stemmers/${webhelp.indexer.language}_stemmer.js"/>
+            </fileset>
+        </copy>
+
+        <!--taskdef name="indexertask"
+          classname="com.nexwave.nquindexer.IndexerMain">
+          <classpath refid="classpath"/>
+        </taskdef-->
+
+        <echo>Indexing html files in ${output-dir-accounting}/content</echo>
+
+        <java classname="com.nexwave.nquindexer.IndexerMain" fork="true">
+            <sysproperty key="htmlDir" value="${output-dir-accounting}/content"/>
+            <sysproperty key="indexerLanguage" value="${webhelp.indexer.language}"/>
+            <sysproperty key="htmlExtension" value="${html.extension}"/>
+            <sysproperty key="doStem" value="${enable.stemming}"/>
+            <sysproperty key="tocFile" value="${toc.file}"/>
+
+            <!--TagSoup SAX Parser for parsing even the bad html contents. see 
+              http://sourceforge.net/tracker/?func=detail&aid=3401185&group_id=21935&atid=373750-->
+            <sysproperty key="org.xml.sax.driver" value="org.ccil.cowan.tagsoup.Parser"/>
+            <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.ccil.cowan.tagsoup.jaxp.SAXFactoryImpl"/>
+
+            <!-- Uncomment the following if Xerces is your preference as the SAX XML Parser. Note that the indexing will fail with Xerces
+              if the html files are not XML-conformance -->
+            <!--sysproperty key="org.xml.sax.driver" value="org.apache.xerces.parsers.SAXParser"/>          
+             <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.apache.xerces.jaxp.SAXParserFactoryImpl"/-->
+
+            <!-- Debug the indexer on port 5005 via remote-debug -->
+            <!--jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/-->
+            <classpath>
+                <path refid="classpath"/>
+                <pathelement location="${xercesImpl.jar}"/>
+                <pathelement location="${xml-apis.jar}"/>
+                <!-- <pathelement location="/usr/share/java/xercesImpl.jar"/>       -->
+                <!-- <pathelement location="/usr/share/java/xml-apis.jar"/>        -->
+                <!-- Gentoo Linux friendly default classpath-->
+                <pathelement location="/usr/share/xerces-2/lib/xercesImpl.jar"/>
+                <pathelement location="/usr/share/xml-commons/lib/xml-apis.jar"/>
+            </classpath>
+        </java>
+
+        <delete>
+            <fileset dir="${output-dir-accounting}/content/search" includes="*.props"/>
+        </delete>
+
+    </target>
+
+    <target name="index.humanres" if="do-search-indexing">
+
+        <copy todir="${output-dir-humanres}">
+            <fileset dir="${ant.file.dir}/template">
+                <include name="**/*"/>
+                <exclude name="**/content/search/*.props"/>
+                <exclude name="**/content/search/stemmers/*"/>
+            </fileset>
+        </copy>
+
+        <!-- We separate this out so we only copy the stopwords list and stemmer for the indexer language -->
+        <copy todir="${output-dir-humanres}">
+            <fileset dir="${ant.file.dir}/template">
+                <include name="**/content/search/default.props"/>
+                <include name="**/content/search/punctuation.props"/>
+                <include name="**/content/search/${webhelp.indexer.language}*.props"/>
+                <include name="**/content/search/stemmers/${webhelp.indexer.language}_stemmer.js"/>
+            </fileset>
+        </copy>
+
+        <!--taskdef name="indexertask"
+          classname="com.nexwave.nquindexer.IndexerMain">
+          <classpath refid="classpath"/>
+        </taskdef-->
+
+        <echo>Indexing html files in ${output-dir-humanres}/content</echo>
+
+        <java classname="com.nexwave.nquindexer.IndexerMain" fork="true">
+            <sysproperty key="htmlDir" value="${output-dir-humanres}/content"/>
+            <sysproperty key="indexerLanguage" value="${webhelp.indexer.language}"/>
+            <sysproperty key="htmlExtension" value="${html.extension}"/>
+            <sysproperty key="doStem" value="${enable.stemming}"/>
+            <sysproperty key="tocFile" value="${toc.file}"/>
+
+            <!--TagSoup SAX Parser for parsing even the bad html contents. see 
+              http://sourceforge.net/tracker/?func=detail&aid=3401185&group_id=21935&atid=373750-->
+            <sysproperty key="org.xml.sax.driver" value="org.ccil.cowan.tagsoup.Parser"/>
+            <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.ccil.cowan.tagsoup.jaxp.SAXFactoryImpl"/>
+
+            <!-- Uncomment the following if Xerces is your preference as the SAX XML Parser. Note that the indexing will fail with Xerces
+              if the html files are not XML-conformance -->
+            <!--sysproperty key="org.xml.sax.driver" value="org.apache.xerces.parsers.SAXParser"/>          
+             <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.apache.xerces.jaxp.SAXParserFactoryImpl"/-->
+
+            <!-- Debug the indexer on port 5005 via remote-debug -->
+            <!--jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/-->
+            <classpath>
+                <path refid="classpath"/>
+                <pathelement location="${xercesImpl.jar}"/>
+                <pathelement location="${xml-apis.jar}"/>
+                <!-- <pathelement location="/usr/share/java/xercesImpl.jar"/>       -->
+                <!-- <pathelement location="/usr/share/java/xml-apis.jar"/>        -->
+                <!-- Gentoo Linux friendly default classpath-->
+                <pathelement location="/usr/share/xerces-2/lib/xercesImpl.jar"/>
+                <pathelement location="/usr/share/xml-commons/lib/xml-apis.jar"/>
+            </classpath>
+        </java>
+
+        <delete>
+            <fileset dir="${output-dir-humanres}/content/search" includes="*.props"/>
+        </delete>
+
+    </target>
+    
+    <target name="index.projectmgr" if="do-search-indexing">
+
+            <copy todir="${output-dir-projectmgr}">
+                <fileset dir="${ant.file.dir}/template">
+                    <include name="**/*"/>
+                    <exclude name="**/content/search/*.props"/>
+                    <exclude name="**/content/search/stemmers/*"/>
+                </fileset>
+            </copy>
+
+            <!-- We separate this out so we only copy the stopwords list and stemmer for the indexer language -->
+            <copy todir="${output-dir-projectmgr}">
+                <fileset dir="${ant.file.dir}/template">
+                    <include name="**/content/search/default.props"/>
+                    <include name="**/content/search/punctuation.props"/>
+                    <include name="**/content/search/${webhelp.indexer.language}*.props"/>
+                    <include name="**/content/search/stemmers/${webhelp.indexer.language}_stemmer.js"/>
+                </fileset>
+            </copy>
+
+            <!--taskdef name="indexertask"
+              classname="com.nexwave.nquindexer.IndexerMain">
+              <classpath refid="classpath"/>
+            </taskdef-->
+
+            <echo>Indexing html files in ${output-dir-projectmgr}/content</echo>
+
+            <java classname="com.nexwave.nquindexer.IndexerMain" fork="true">
+                <sysproperty key="htmlDir" value="${output-dir-projectmgr}/content"/>
+                <sysproperty key="indexerLanguage" value="${webhelp.indexer.language}"/>
+                <sysproperty key="htmlExtension" value="${html.extension}"/>
+                <sysproperty key="doStem" value="${enable.stemming}"/>
+                <sysproperty key="tocFile" value="${toc.file}"/>
+
+                <!--TagSoup SAX Parser for parsing even the bad html contents. see 
+                  http://sourceforge.net/tracker/?func=detail&aid=3401185&group_id=21935&atid=373750-->
+                <sysproperty key="org.xml.sax.driver" value="org.ccil.cowan.tagsoup.Parser"/>
+                <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.ccil.cowan.tagsoup.jaxp.SAXFactoryImpl"/>
+
+                <!-- Uncomment the following if Xerces is your preference as the SAX XML Parser. Note that the indexing will fail with Xerces
+                  if the html files are not XML-conformance -->
+                <!--sysproperty key="org.xml.sax.driver" value="org.apache.xerces.parsers.SAXParser"/>          
+                 <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.apache.xerces.jaxp.SAXParserFactoryImpl"/-->
+
+                <!-- Debug the indexer on port 5005 via remote-debug -->
+                <!--jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/-->
+                <classpath>
+                    <path refid="classpath"/>
+                    <pathelement location="${xercesImpl.jar}"/>
+                    <pathelement location="${xml-apis.jar}"/>
+                    <!-- <pathelement location="/usr/share/java/xercesImpl.jar"/>       -->
+                    <!-- <pathelement location="/usr/share/java/xml-apis.jar"/>        -->
+                    <!-- Gentoo Linux friendly default classpath-->
+                    <pathelement location="/usr/share/xerces-2/lib/xercesImpl.jar"/>
+                    <pathelement location="/usr/share/xml-commons/lib/xml-apis.jar"/>
+                </classpath>
+            </java>
+
+            <delete>
+                <fileset dir="${output-dir-projectmgr}/content/search" includes="*.props"/>
+            </delete>
+
+        </target>
+    
+    <target name="index.manufacturing" if="do-search-indexing">
+
+            <copy todir="${output-dir-manufacturing}">
+                <fileset dir="${ant.file.dir}/template">
+                    <include name="**/*"/>
+                    <exclude name="**/content/search/*.props"/>
+                    <exclude name="**/content/search/stemmers/*"/>
+                </fileset>
+            </copy>
+
+            <!-- We separate this out so we only copy the stopwords list and stemmer for the indexer language -->
+            <copy todir="${output-dir-manufacturing}">
+                <fileset dir="${ant.file.dir}/template">
+                    <include name="**/content/search/default.props"/>
+                    <include name="**/content/search/punctuation.props"/>
+                    <include name="**/content/search/${webhelp.indexer.language}*.props"/>
+                    <include name="**/content/search/stemmers/${webhelp.indexer.language}_stemmer.js"/>
+                </fileset>
+            </copy>
+
+            <!--taskdef name="indexertask"
+              classname="com.nexwave.nquindexer.IndexerMain">
+              <classpath refid="classpath"/>
+            </taskdef-->
+
+            <echo>Indexing html files in ${output-dir-manufacturing}/content</echo>
+
+            <java classname="com.nexwave.nquindexer.IndexerMain" fork="true">
+                <sysproperty key="htmlDir" value="${output-dir-manufacturing}/content"/>
+                <sysproperty key="indexerLanguage" value="${webhelp.indexer.language}"/>
+                <sysproperty key="htmlExtension" value="${html.extension}"/>
+                <sysproperty key="doStem" value="${enable.stemming}"/>
+                <sysproperty key="tocFile" value="${toc.file}"/>
+
+                <!--TagSoup SAX Parser for parsing even the bad html contents. see 
+                  http://sourceforge.net/tracker/?func=detail&aid=3401185&group_id=21935&atid=373750-->
+                <sysproperty key="org.xml.sax.driver" value="org.ccil.cowan.tagsoup.Parser"/>
+                <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.ccil.cowan.tagsoup.jaxp.SAXFactoryImpl"/>
+
+                <!-- Uncomment the following if Xerces is your preference as the SAX XML Parser. Note that the indexing will fail with Xerces
+                  if the html files are not XML-conformance -->
+                <!--sysproperty key="org.xml.sax.driver" value="org.apache.xerces.parsers.SAXParser"/>          
+                 <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.apache.xerces.jaxp.SAXParserFactoryImpl"/-->
+
+                <!-- Debug the indexer on port 5005 via remote-debug -->
+                <!--jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/-->
+                <classpath>
+                    <path refid="classpath"/>
+                    <pathelement location="${xercesImpl.jar}"/>
+                    <pathelement location="${xml-apis.jar}"/>
+                    <!-- <pathelement location="/usr/share/java/xercesImpl.jar"/>       -->
+                    <!-- <pathelement location="/usr/share/java/xml-apis.jar"/>        -->
+                    <!-- Gentoo Linux friendly default classpath-->
+                    <pathelement location="/usr/share/xerces-2/lib/xercesImpl.jar"/>
+                    <pathelement location="/usr/share/xml-commons/lib/xml-apis.jar"/>
+                </classpath>
+            </java>
+
+            <delete>
+                <fileset dir="${output-dir-manufacturing}/content/search" includes="*.props"/>
+            </delete>
+
+        </target>   
+    
+    
+    <target name="index.manufacturing_nl" if="do-search-indexing">
+
+            <copy todir="${output-dir-manufacturing_nl}">
+                <fileset dir="${ant.file.dir}/template">
+                    <include name="**/*"/>
+                    <exclude name="**/content/search/*.props"/>
+                    <exclude name="**/content/search/stemmers/*"/>
+                </fileset>
+            </copy>
+
+            <!-- We separate this out so we only copy the stopwords list and stemmer for the indexer language -->
+            <copy todir="${output-dir-manufacturing_nl}">
+                <fileset dir="${ant.file.dir}/template">
+                    <include name="**/content/search/default.props"/>
+                    <include name="**/content/search/punctuation.props"/>
+                    <include name="**/content/search/${webhelp.indexer.language}*.props"/>
+                    <include name="**/content/search/stemmers/${webhelp.indexer.language}_stemmer.js"/>
+                </fileset>
+            </copy>
+
+            <!--taskdef name="indexertask"
+              classname="com.nexwave.nquindexer.IndexerMain">
+              <classpath refid="classpath"/>
+            </taskdef-->
+
+            <echo>Indexing html files in ${output-dir-manufacturing_nl}/content</echo>
+
+            <java classname="com.nexwave.nquindexer.IndexerMain" fork="true">
+                <sysproperty key="htmlDir" value="${output-dir-manufacturing_nl}/content"/>
+                <sysproperty key="indexerLanguage" value="${webhelp.indexer.language}"/>
+                <sysproperty key="htmlExtension" value="${html.extension}"/>
+                <sysproperty key="doStem" value="${enable.stemming}"/>
+                <sysproperty key="tocFile" value="${toc.file}"/>
+
+                <!--TagSoup SAX Parser for parsing even the bad html contents. see 
+                  http://sourceforge.net/tracker/?func=detail&aid=3401185&group_id=21935&atid=373750-->
+                <sysproperty key="org.xml.sax.driver" value="org.ccil.cowan.tagsoup.Parser"/>
+                <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.ccil.cowan.tagsoup.jaxp.SAXFactoryImpl"/>
+
+                <!-- Uncomment the following if Xerces is your preference as the SAX XML Parser. Note that the indexing will fail with Xerces
+                  if the html files are not XML-conformance -->
+                <!--sysproperty key="org.xml.sax.driver" value="org.apache.xerces.parsers.SAXParser"/>          
+                 <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.apache.xerces.jaxp.SAXParserFactoryImpl"/-->
+
+                <!-- Debug the indexer on port 5005 via remote-debug -->
+                <!--jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/-->
+                <classpath>
+                    <path refid="classpath"/>
+                    <pathelement location="${xercesImpl.jar}"/>
+                    <pathelement location="${xml-apis.jar}"/>
+                    <!-- <pathelement location="/usr/share/java/xercesImpl.jar"/>       -->
+                    <!-- <pathelement location="/usr/share/java/xml-apis.jar"/>        -->
+                    <!-- Gentoo Linux friendly default classpath-->
+                    <pathelement location="/usr/share/xerces-2/lib/xercesImpl.jar"/>
+                    <pathelement location="/usr/share/xml-commons/lib/xml-apis.jar"/>
+                </classpath>
+            </java>
+
+            <delete>
+                <fileset dir="${output-dir-manufacturing_nl}/content/search" includes="*.props"/>
+            </delete>
+
+        </target>       
+  
+    <target name="index.manufacturing_de" if="do-search-indexing">
+
+            <copy todir="${output-dir-manufacturing_de}">
+                <fileset dir="${ant.file.dir}/template">
+                    <include name="**/*"/>
+                    <exclude name="**/content/search/*.props"/>
+                    <exclude name="**/content/search/stemmers/*"/>
+                </fileset>
+            </copy>
+
+            <!-- We separate this out so we only copy the stopwords list and stemmer for the indexer language -->
+            <copy todir="${output-dir-manufacturing_de}">
+                <fileset dir="${ant.file.dir}/template">
+                    <include name="**/content/search/default.props"/>
+                    <include name="**/content/search/punctuation.props"/>
+                    <include name="**/content/search/${webhelp.indexer.language}*.props"/>
+                    <include name="**/content/search/stemmers/${webhelp.indexer.language}_stemmer.js"/>
+                </fileset>
+            </copy>
+
+            <!--taskdef name="indexertask"
+              classname="com.nexwave.nquindexer.IndexerMain">
+              <classpath refid="classpath"/>
+            </taskdef-->
+
+            <echo>Indexing html files in ${output-dir-manufacturing_de}/content</echo>
+
+            <java classname="com.nexwave.nquindexer.IndexerMain" fork="true">
+                <sysproperty key="htmlDir" value="${output-dir-manufacturing_de}/content"/>
+                <sysproperty key="indexerLanguage" value="${webhelp.indexer.language}"/>
+                <sysproperty key="htmlExtension" value="${html.extension}"/>
+                <sysproperty key="doStem" value="${enable.stemming}"/>
+                <sysproperty key="tocFile" value="${toc.file}"/>
+
+                <!--TagSoup SAX Parser for parsing even the bad html contents. see 
+                  http://sourceforge.net/tracker/?func=detail&aid=3401185&group_id=21935&atid=373750-->
+                <sysproperty key="org.xml.sax.driver" value="org.ccil.cowan.tagsoup.Parser"/>
+                <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.ccil.cowan.tagsoup.jaxp.SAXFactoryImpl"/>
+
+                <!-- Uncomment the following if Xerces is your preference as the SAX XML Parser. Note that the indexing will fail with Xerces
+                  if the html files are not XML-conformance -->
+                <!--sysproperty key="org.xml.sax.driver" value="org.apache.xerces.parsers.SAXParser"/>          
+                 <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.apache.xerces.jaxp.SAXParserFactoryImpl"/-->
+
+                <!-- Debug the indexer on port 5005 via remote-debug -->
+                <!--jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/-->
+                <classpath>
+                    <path refid="classpath"/>
+                    <pathelement location="${xercesImpl.jar}"/>
+                    <pathelement location="${xml-apis.jar}"/>
+                    <!-- <pathelement location="/usr/share/java/xercesImpl.jar"/>       -->
+                    <!-- <pathelement location="/usr/share/java/xml-apis.jar"/>        -->
+                    <!-- Gentoo Linux friendly default classpath-->
+                    <pathelement location="/usr/share/xerces-2/lib/xercesImpl.jar"/>
+                    <pathelement location="/usr/share/xml-commons/lib/xml-apis.jar"/>
+                </classpath>
+            </java>
+
+            <delete>
+                <fileset dir="${output-dir-manufacturing_de}/content/search" includes="*.props"/>
+            </delete>
+
+        </target>         
+
+    <target name="index.catalog" if="do-search-indexing">
+
+        <copy todir="${output-dir-catalog}">
+            <fileset dir="${ant.file.dir}/template">
+                <include name="**/*"/>
+                <exclude name="**/content/search/*.props"/>
+                <exclude name="**/content/search/stemmers/*"/>
+            </fileset>
+        </copy>
+
+        <!-- We separate this out so we only copy the stopwords list and stemmer for the indexer language -->
+        <copy todir="${output-dir-catalog}">
+            <fileset dir="${ant.file.dir}/template">
+                <include name="**/content/search/default.props"/>
+                <include name="**/content/search/punctuation.props"/>
+                <include name="**/content/search/${webhelp.indexer.language}*.props"/>
+                <include name="**/content/search/stemmers/${webhelp.indexer.language}_stemmer.js"/>
+            </fileset>
+        </copy>
+
+        <!--taskdef name="indexertask"
+          classname="com.nexwave.nquindexer.IndexerMain">
+          <classpath refid="classpath"/>
+        </taskdef-->
+
+        <echo>Indexing html files in ${output-dir-catalog}/content</echo>
+
+        <java classname="com.nexwave.nquindexer.IndexerMain" fork="true">
+            <sysproperty key="htmlDir" value="${output-dir-catalog}/content"/>
+            <sysproperty key="indexerLanguage" value="${webhelp.indexer.language}"/>
+            <sysproperty key="htmlExtension" value="${html.extension}"/>
+            <sysproperty key="doStem" value="${enable.stemming}"/>
+            <sysproperty key="tocFile" value="${toc.file}"/>
+
+            <!--TagSoup SAX Parser for parsing even the bad html contents. see 
+              http://sourceforge.net/tracker/?func=detail&aid=3401185&group_id=21935&atid=373750-->
+            <sysproperty key="org.xml.sax.driver" value="org.ccil.cowan.tagsoup.Parser"/>
+            <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.ccil.cowan.tagsoup.jaxp.SAXFactoryImpl"/>
+
+            <!-- Uncomment the following if Xerces is your preference as the SAX XML Parser. Note that the indexing will fail with Xerces
+              if the html files are not XML-conformance -->
+            <!--sysproperty key="org.xml.sax.driver" value="org.apache.xerces.parsers.SAXParser"/>          
+             <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.apache.xerces.jaxp.SAXParserFactoryImpl"/-->
+
+            <!-- Debug the indexer on port 5005 via remote-debug -->
+            <!--jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/-->
+            <classpath>
+                <path refid="classpath"/>
+                <pathelement location="${xercesImpl.jar}"/>
+                <pathelement location="${xml-apis.jar}"/>
+                <!-- <pathelement location="/usr/share/java/xercesImpl.jar"/>       -->
+                <!-- <pathelement location="/usr/share/java/xml-apis.jar"/>        -->
+                <!-- Gentoo Linux friendly default classpath-->
+                <pathelement location="/usr/share/xerces-2/lib/xercesImpl.jar"/>
+                <pathelement location="/usr/share/xml-commons/lib/xml-apis.jar"/>
+            </classpath>
+        </java>
+
+        <delete>
+            <fileset dir="${output-dir-catalog}/content/search" includes="*.props"/>
+        </delete>
+
+    </target>           
+
+    <target name="web-images-accounting">
+        <delete dir="${images.dir.web.accounting.en}" />
+        <mkdir dir="${images.dir.web.accounting.en}" />
+        <copy todir="${images.dir.web.accounting.en}">
+            <fileset dir="${input-images-basedir-accounting}"/>
+        </copy>
+    </target>
+
+    <target name="web-images-humanres">
+        <delete dir="${images.dir.web.humanres.en}" />
+        <mkdir dir="${images.dir.web.humanres.en}" />
+        <copy todir="${images.dir.web.humanres.en}">
+            <fileset dir="${input-images-basedir-humanres}"/>
+        </copy>
+    </target>
+    
+    <target name="web-images-projectmgr">
+        <delete dir="${images.dir.web.projectmgr.en}" />
+        <mkdir dir="${images.dir.web.projectmgr.en}" />
+        <copy todir="${images.dir.web.projectmgr.en}">
+            <fileset dir="${input-images-basedir-projectmgr}"/>
+        </copy>
+    </target>
+    
+    <target name="web-images-manufacturing">
+        <delete dir="${images.dir.web.manufacturing.en}" />
+        <mkdir dir="${images.dir.web.manufacturing.en}" />
+        <copy todir="${images.dir.web.manufacturing.en}">
+            <fileset dir="${input-images-basedir-manufacturing}"/>
+        </copy>
+    </target>       
+
+    <target name="web-images-manufacturing_nl">
+        <delete dir="${images.dir.web.manufacturing_nl.nl}" />
+        <mkdir dir="${images.dir.web.manufacturing_nl.nl}" />
+        <copy todir="${images.dir.web.manufacturing_nl.nl}">
+            <fileset dir="${input-images-basedir-manufacturing_nl}"/>
+        </copy>
+    </target>   
+  
+    <target name="web-images-manufacturing_de">
+        <delete dir="${images.dir.web.manufacturing_de.de}" />
+        <mkdir dir="${images.dir.web.manufacturing_de.de}" />
+        <copy todir="${images.dir.web.manufacturing_de.de}">
+            <fileset dir="${input-images-basedir-manufacturing_de}"/>
+        </copy>
+    </target>  
+
+    <target name="web-images-catalog">
+        <delete dir="${images.dir.web.catalog.en}" />
+        <mkdir dir="${images.dir.web.catalog.en}" />
+        <copy todir="${images.dir.web.catalog.en}">
+            <fileset dir="${input-images-basedir-catalog}"/>
+        </copy>
+    </target>   
+    
+    <target name="clean">
+        <delete dir="${output-dir}"/>
+    </target>
+
+    <target name="clean.accounting">
+        <delete dir="${output-dir-accounting}"/>
+    </target>
+
+    <target name="clean.humanres">
+        <delete dir="${output-dir-humanres}"/>
+    </target>
+    
+    <target name="clean.projectmgr">
+        <delete dir="${output-dir-projectmgr}"/>
+    </target>   
+    
+    <target name="clean.manufacturing">
+        <delete dir="${output-dir-manufacturing}"/>
+    </target>   
+
+    <target name="clean.manufacturing_nl">
+        <delete dir="${output-dir-manufacturing_nl}"/>
+    </target>  
+  
+    <target name="clean.manufacturing_de">
+        <delete dir="${output-dir-manufacturing_de}"/>
+    </target>   
+
+    <target name="clean.catalog">
+        <delete dir="${output-dir-catalog}"/>
+    </target>
+            
+    <target name="help">
+        <echo>
+Usage:
+    help for this message.
+    webhelp.all               Generates webhelp for all OFBiz Components with webhelp present.
+    webhelp.componentname     Generates webhelp for the OFBiz Component.
+    clean                     Remove all webhelp for all OFBiz Components.
+        </echo>
+    </target>
+
+</project>
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/build.properties b/applications/content/template/docbook/webhelp/build.properties
new file mode 100644
index 0000000..23e0994
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/build.properties
@@ -0,0 +1,67 @@
+
+# The path (relative to the build.xml file) to your input document.
+# To use your own input document, create a build.xml file of your own
+# and import this build.xml.
+input-xml=docsrc/readme.xml
+
+# The directory in which to put the output files. 
+# This directory is created if it does not exist.
+output-dir=docs
+
+# If you are using a customization layer that imports webhelp.xsl, use
+# this property to point to it. 
+stylesheet-path=${ant.file.dir}/xsl/webhelp.xsl
+
+# If your document has image directories that need to be copied
+# to the output directory, you can list patterns here. 
+# See the Ant documentation for fileset for documentation
+# on patterns.
+input-images-dirs=images/**,figures/**,graphics/**
+
+# By default, the ant script assumes your images are stored
+# in the same directory as the input-xml. If you store your
+# image directories in another directory, specify it here.
+# and uncomment this line.
+#input-images-basedir=/path/to/image/location
+
+# Modify the follosing so that they point to your local
+# copy of the jars indicated:
+# * Saxon 6.5 jar
+# * Xerces 2: xercesImpl.jar
+# * xml-commons: xml-apis.jar
+xslt-processor-classpath=/usr/share/java/saxon-6.5.5.jar
+xercesImpl.jar=/usr/share/java/xercesImpl.jar
+xml-apis.jar=/usr/share/java/xml-apis.jar
+
+# For non-ns version only, this validates the document 
+# against a dtd.
+validate-against-dtd=true
+
+# The extension for files to be indexed (html/htm/xhtml etc.)
+html.extension=html
+
+# Set this to false if you don't need a search tab.
+webhelp.include.search.tab=true
+
+# indexer-language is used to tell the search indexer which language
+# the docbook is written.  This will be used to identify the correct
+# stemmer, and punctuations that differs from language to language.
+# see the documentation for details. en=English, fr=French, de=German,
+# zh=Chinese, ja=Japanese etc.  
+webhelp.indexer.language=en
+
+# Enables/Disables stemming
+# Stemming allows better querying for the search
+enable.stemming=true
+
+#Set the table of contents file. This file will not be indexed.
+#toc.file=dummy.html
+
+#Used for adding branding specific contents to the html files.
+#For example, the url docbook.org, Google Analytics id etc.
+branding=docbook
+brandname=DocBook
+
+# Set admon.graphics to 1 to user graphics for note, tip, etc.
+admon.graphics=0
+suppress.footer.navigation=0
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/build.xml b/applications/content/template/docbook/webhelp/build.xml
new file mode 100644
index 0000000..cf3ceab
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/build.xml
@@ -0,0 +1,170 @@
+<project default="help" name="mainbuild">
+
+  <dirname property="ant.file.dir" file="${ant.file.mainbuild}"/>
+  <loadproperties srcFile="${ant.file.dir}/build.properties"/>
+  <property name="webhelp.include.search.tab" value="true"/>
+
+  <property name="extensions.dir" value="${ant.file.dir}/../extensions"/>
+
+    <path id="classpath">
+        <pathelement location="${extensions.dir}/webhelpindexer.jar"/>
+	<pathelement location="${extensions.dir}/lucene-analyzers-3.0.0.jar"/>
+	<pathelement location="${extensions.dir}/lucene-core-3.0.0.jar"/>
+	<pathelement location="${extensions.dir}/tagsoup-1.2.1.jar"/>
+    </path>
+
+  <condition property="perform-validation-dtd">
+	<equals arg1="${validate-against-dtd}" arg2="true"/>
+  </condition>
+  <condition property="do-search-indexing">
+	<equals arg1="${webhelp.include.search.tab}" arg2="true"/>
+  </condition>
+
+  <target name="validate" if="perform-validation-dtd">
+    <xmlvalidate file="${input-xml}" classname="org.apache.xerces.parsers.SAXParser"/>
+  </target>
+
+  <target name="chunk" depends="clean">
+	
+	<mkdir dir="${output-dir}"/>
+	<tempfile destdir="${output-dir}" deleteonexit="true" property="xincluded-profiled.xml"/>
+	<tempfile destdir="${output-dir}" deleteonexit="true" property="dummy.html"/>
+	<xslt
+	  in="${input-xml}"
+	    out="${xincluded-profiled.xml}"
+	    style="${ant.file.dir}/../profiling/profile.xsl">
+	  <sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration"
+		       value="org.apache.xerces.parsers.XIncludeParserConfiguration"/>
+	  <param name="profile.arch" expression="${profile.arch}" if="profile.arch"/>
+	  <param name="profile.audience" expression="${profile.audience}" if="profile.audience"/>
+	  <param name="profile.condition" expression="${profile.condition}" if="profile.condition"/>
+	  <param name="profile.conformance" expression="${profile.conformance}" if="profile.conformance"/>
+	  <param name="profile.lang" expression="${profile.lang}" if="profile.lang"/>
+	  <param name="profile.os" expression="${profile.os}" if="profile.os"/>
+	  <param name="profile.revision" expression="${profile.revision}" if="profile.revision"/>
+	  <param name="profile.revisionflag" expression="${profile.revisionflag}" if="profile.revisionflag"/>
+	  <param name="profile.role" expression="${profile.role}" if="profile.role"/>
+	  <param name="profile.security" expression="${profile.security}" if="profile.security"/>
+	  <param name="profile.status" expression="${profile.status}" if="profile.status"/>
+	  <param name="profile.userlevel" expression="${profile.userlevel}" if="profile.userlevel"/>
+	  <param name="profile.vendor" expression="${profile.vendor}" if="profile.vendor"/>
+	  <param name="profile.wordsize" expression="${profile.wordsize}" if="profile.wordsize"/>
+	  <param name="profile.attribute" expression="${profile.attribute}" if="profile.attribute"/>
+	  <param name="profile.value" expression="${profile.value}" if="profile.value"/>
+	</xslt>
+
+	<xslt
+	  in="${xincluded-profiled.xml}"
+	  out="${dummy.html}"
+	  style="${stylesheet-path}"
+	  scanincludeddirectories="false"
+	  classpath="${xslt-processor-classpath}">
+	  <param name="webhelp.include.search.tab" expression="${webhelp.include.search.tab}"
+		if="webhelp.include.search.tab"/>
+	  <param name="output_file_name" expression="${output_file_name}"/>
+	  <param name="webhelp.base.dir" expression="${output-dir}" if="output-dir"/>
+	  <param name="webhelp.indexer.language" expression="${webhelp.indexer.language}" if="webhelp.indexer.language"/>
+	  <param name="branding" expression="${branding}" if="branding"/>
+	  <param name="brandname" expression="${brandname}" if="brandname"/>
+	  <param name="admon.graphics" expression="${admon.graphics}" if="admon.graphics"/>
+	  <param name="suppress.footer.navigation" expression="${suppress.footer.navigation}" if="suppress.footer.navigation"/>
+	</xslt>
+	
+	<!-- Copy common content such as js files of tree, css etc. to template folder. They will be copied to doc folder. They are NOT page specific! -->
+	<copy todir="${output-dir}">
+	  <fileset dir="${ant.file.dir}/template">
+		<include name="**/*"/>
+		<exclude name="**/content/search/**"/>
+	  </fileset>
+	</copy>
+
+	<!-- Very simple-minded copy to handle the source document's images -->
+	<!-- TODO: Look at html help code that produces a manifest file...list of images -->
+	<!--       Customize webhelp.xsl to produce ant file to copy images actually used? -->
+	<dirname property="input-images-basedir" file="${input-xml}"/>
+	<copy todir="${output-dir}/content" failonerror="false">
+	  <fileset dir="${input-images-basedir}" includes="${input-images-dirs}" />
+	</copy>
+  </target>
+
+  <target name="index" if="do-search-indexing">
+
+	<copy todir="${output-dir}">
+	  <fileset dir="${ant.file.dir}/template">
+		<include name="**/*"/>
+		<exclude name="**/content/search/*.props"/>
+		<exclude name="**/content/search/stemmers/*"/>
+	  </fileset>
+	</copy>
+
+	<!-- We separate this out so we only copy the stopwords list and stemmer for the indexer language -->
+	<copy todir="${output-dir}">
+	  <fileset dir="${ant.file.dir}/template">
+		<include name="**/content/search/default.props"/>
+		<include name="**/content/search/punctuation.props"/>
+		<include name="**/content/search/${webhelp.indexer.language}*.props"/>
+		<include name="**/content/search/stemmers/${webhelp.indexer.language}_stemmer.js"/>
+	  </fileset>
+	</copy>
+
+	<!--taskdef name="indexertask"
+	  classname="com.nexwave.nquindexer.IndexerMain">
+	  <classpath refid="classpath"/>
+	</taskdef-->
+
+	<echo>Indexing html files in ${output-dir}/content</echo>
+
+       <java classname="com.nexwave.nquindexer.IndexerMain" fork="true"> 
+         <sysproperty key="htmlDir" value="${output-dir}/content"/>
+         <sysproperty key="indexerLanguage" value="${webhelp.indexer.language}"/>
+         <sysproperty key="htmlExtension" value="${html.extension}"/>
+         <sysproperty key="doStem" value="${enable.stemming}"/>
+         <sysproperty key="tocFile" value="${toc.file}"/>
+
+	 <!--TagSoup SAX Parser for parsing even the bad html contents. see 
+	      http://sourceforge.net/tracker/?func=detail&aid=3401185&group_id=21935&atid=373750-->
+         <sysproperty key="org.xml.sax.driver" value="org.ccil.cowan.tagsoup.Parser"/>
+         <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.ccil.cowan.tagsoup.jaxp.SAXFactoryImpl"/>
+
+         <!-- Uncomment the following if Xerces is your preference as the SAX XML Parser. Note that the indexing will fail with Xerces
+	      if the html files are not XML-conformance -->
+  	 <!--sysproperty key="org.xml.sax.driver" value="org.apache.xerces.parsers.SAXParser"/>	      
+         <sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.apache.xerces.jaxp.SAXParserFactoryImpl"/-->
+
+         <!-- Debug the indexer on port 5005 via remote-debug -->
+         <!--jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/-->
+         <classpath>
+	    <path refid="classpath"/>
+	    <pathelement location="${xercesImpl.jar}"/>  	
+	    <pathelement location="${xml-apis.jar}"/>  	
+	    <!-- <pathelement location="/usr/share/java/xercesImpl.jar"/>  	 -->
+	    <!-- <pathelement location="/usr/share/java/xml-apis.jar"/>  	  -->
+	    <!-- Gentoo Linux friendly default classpath-->
+	    <pathelement location="/usr/share/xerces-2/lib/xercesImpl.jar"/>  	
+	    <pathelement location="/usr/share/xml-commons/lib/xml-apis.jar"/>  	 
+	  </classpath>
+       </java>	
+ 
+	<delete>
+	  <fileset dir="${output-dir}/content/search" includes="*.props"/>
+	</delete>
+
+  </target>
+
+  <target name="webhelp" depends="validate,chunk,index"/>
+
+
+  <target name="clean">
+	<delete dir="${output-dir}"/>
+  </target>
+
+  <target name="help">
+	<echo>
+Usage:
+webhelp:       Generates the document in webhelp format and indexes the content.
+clean:         Deletes webhelp output directory.
+index:         Indexes the content.
+	</echo>
+  </target>
+
+</project>
diff --git a/applications/content/template/docbook/webhelp/docs/common/browserDetect.js b/applications/content/template/docbook/webhelp/docs/common/browserDetect.js
new file mode 100644
index 0000000..2a7aa08
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/browserDetect.js
@@ -0,0 +1,116 @@
+var BrowserDetect = {
+	init: function () {
+		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
+		this.version = this.searchVersion(navigator.userAgent)
+			|| this.searchVersion(navigator.appVersion)
+			|| "an unknown version";
+		this.OS = this.searchString(this.dataOS) || "an unknown OS";
+	},
+	searchString: function (data) {
+		for (var i=0;i<data.length;i++)	{
+			var dataString = data[i].string;
+			var dataProp = data[i].prop;
+			this.versionSearchString = data[i].versionSearch || data[i].identity;
+			if (dataString) {
+				if (dataString.indexOf(data[i].subString) != -1)
+					return data[i].identity;
+			}
+			else if (dataProp)
+				return data[i].identity;
+		}
+	},
+	searchVersion: function (dataString) {
+		var index = dataString.indexOf(this.versionSearchString);
+		if (index == -1) return;
+		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
+	},
+	dataBrowser: [
+		{
+			string: navigator.userAgent,
+			subString: "Chrome",
+			identity: "Chrome"
+		},
+		{ 	string: navigator.userAgent,
+			subString: "OmniWeb",
+			versionSearch: "OmniWeb/",
+			identity: "OmniWeb"
+		},
+		{
+			string: navigator.vendor,
+			subString: "Apple",
+			identity: "Safari",
+			versionSearch: "Version"
+		},
+		{
+			prop: window.opera,
+			identity: "Opera"
+		},
+		{
+			string: navigator.vendor,
+			subString: "iCab",
+			identity: "iCab"
+		},
+		{
+			string: navigator.vendor,
+			subString: "KDE",
+			identity: "Konqueror"
+		},
+		{
+			string: navigator.userAgent,
+			subString: "Firefox",
+			identity: "Firefox"
+		},
+		{
+			string: navigator.vendor,
+			subString: "Camino",
+			identity: "Camino"
+		},
+		{		// for newer Netscapes (6+)
+			string: navigator.userAgent,
+			subString: "Netscape",
+			identity: "Netscape"
+		},
+		{
+			string: navigator.userAgent,
+			subString: "MSIE",
+			identity: "Explorer",
+			versionSearch: "MSIE"
+		},
+		{
+			string: navigator.userAgent,
+			subString: "Gecko",
+			identity: "Mozilla",
+			versionSearch: "rv"
+		},
+		{ 		// for older Netscapes (4-)
+			string: navigator.userAgent,
+			subString: "Mozilla",
+			identity: "Netscape",
+			versionSearch: "Mozilla"
+		}
+	],
+	dataOS : [
+		{
+			string: navigator.platform,
+			subString: "Win",
+			identity: "Windows"
+		},
+		{
+			string: navigator.platform,
+			subString: "Mac",
+			identity: "Mac"
+		},
+		{
+			   string: navigator.userAgent,
+			   subString: "iPhone",
+			   identity: "iPhone/iPod"
+	    },
+		{
+			string: navigator.platform,
+			subString: "Linux",
+			identity: "Linux"
+		}
+	]
+
+};
+BrowserDetect.init();
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/docs/common/css/ie.css b/applications/content/template/docbook/webhelp/docs/common/css/ie.css
new file mode 100644
index 0000000..4c5f1c2
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/css/ie.css
@@ -0,0 +1,13 @@
+.statustext{
+    filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1)
+            progid:DXImageTransform.Microsoft.BasicImage(opacity=.5);  
+    width: 100%;
+    height: 30px;
+    right: -5px;
+    top:105px;
+    /* left: 280px; */ /* change to -12px; when sidebar is collapsed */
+}
+
+body #content{                      
+    padding-top: 136px;
+}
diff --git a/applications/content/template/docbook/webhelp/docs/common/css/ofbiz_positioning.css b/applications/content/template/docbook/webhelp/docs/common/css/ofbiz_positioning.css
new file mode 100644
index 0000000..0484cf0
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/css/ofbiz_positioning.css
@@ -0,0 +1,388 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+tr th .added { color: #E6E6FA; } 
+tr th .changed {color: #99ff99; }
+div.added tr, div.added    { background-color: #E6E6FA; }
+div.deleted tr, div.deleted  { text-decoration: line-through;
+               background-color: #FF7F7F; }
+div.changed tr, div.changed  { background-color: #99ff99; }
+div.off      {  }
+
+span.added   { background-color: #E6E6FA; }
+span.deleted { text-decoration: line-through;
+               background-color: #FF7F7F; }
+span.changed { background-color: #99ff99; }
+span.off     {  }
+
+
+body { font: 12px Verdana, Geneva, sans-serif; }
+p, ul, ol, li { font: 10pt Verdana, Geneva, sans-serif; }
+h1 { font: 15pt Arial, Helvetica, geneva;
+     color: black!important!;
+}
+h2 { font: normal 12pt Arial, Helvetica, geneva; }
+
+#header {
+    background: url("../images/header-bg.png") scroll top left repeat-x #4d8c83;
+    position: fixed;
+    width: 100%;
+    height: 99px;
+    top: 0;
+    right: 0;
+    bottom: auto;
+    left: 0;
+    border-bottom: 1px solid #bbc4c5;
+    z-index: 2000;
+}
+
+#header h1 {
+    white-space:nowrap;
+    margin-left: 470px;
+    position: fixed;
+    top: 18px;
+    left: -15px;
+    color: #404040 !important;
+}
+
+/*
+#header h1 {
+	margin-top: 2px;
+}
+*/
+
+p.breadcrumbs {
+    margin-top: 30px;
+    margin-left: 310px;
+}
+
+#header img {
+    float: left;
+    margin-left: 20px;
+    margin-top: 12px;
+}
+
+#header p.breadcrumbs a {
+    color: #bbb;
+}
+
+#leftnavigation {
+    overflow: auto;
+    position: fixed;
+    height: auto;
+    top: 95px;
+    bottom: 0;
+    left: 0;
+    width: 280px;
+    z-index: 1500;
+    border-right:2px solid #bbc4c5;
+    padding: 0px;
+    background-color: #ededed!important;
+}
+
+#treeDiv {
+    overflow: auto;
+    position: fixed;
+    height: auto;
+    top: 136px;
+    bottom: 0;
+    left: 0;
+    width: 243px;
+    z-index: 1500;
+    border-right:2px solid #CCCCCC;
+    background-color: #f0f0f0!important;
+}
+
+#searchDiv {
+    overflow: auto;
+    position: fixed;
+    height: auto;
+    top: 138px;
+    bottom: 0;
+    left: 0;
+    width: 243px;
+    z-index: 1500;
+    border-right:2px solid #CCCCCC;
+    background-color: #f0f0f0!important;
+}
+
+#content {
+    position: relative;
+    top: 90px; /* left: 240px;*/
+    right: auto; /*  bottom: 20px;  */
+    margin: 0px 0px 0px 280px;
+    width: auto;
+    height: inherit;
+    padding-left: 5px;
+    padding-right: 30px;
+    color: #000000;
+    /*border-left: 2px solid #cccccc; overflow :scroll;*/
+    z-index: 1000;
+    min-width:200px;
+}
+
+#navheader {
+    position: fixed;
+    background: #DCDCDC;
+    padding-left: 10px;
+    right: 0px;
+    top: 10px;
+    text-align: right;
+}
+
+#content h1, #content h2 { 
+color: #404040 !important; 
+font-size: 170%;
+font-weight: normal;
+}
+.navfooter { bottom: 2%; }
+.highlight { background-color: #c5d3c3; }
+.highlightButton{ font-size: 0; }
+
+/*  Show Hide TOC tree */
+.pointLeft {
+    padding-right: 15px;
+    display: block;
+    cursor: pointer;
+}
+.pointRight {
+    padding-right: 15px;
+    display: block;
+    cursor: pointer;
+}
+
+/* Search results Styling */
+.searchExpression {
+    color: #0050A0;
+    background-color: #EBEFF8;
+    font-size: 12pt;
+}
+.searchresult li a {
+    text-decoration: none;
+    color: #0050A0;
+}
+.searchresult li { color: #0050A0; }
+.shortdesclink { color: gray; font-size: 9pt; }
+.searchText { width: 11em }
+.searchButton {
+    margin-left: 3px;
+    background: #F4F4F4;
+    color: #black;
+    border: #ACCEAF solid 1pt;
+    font-weight: bold;
+    font-size: 10pt
+}
+.searchFieldSet { border: 1px solid #BFBAB0; background-color: #F2EFE9;}
+
+.title, div.toc>p{ font-weight: bold; }	
+
+p.breadcrumbs {
+        display: inline;
+	margin-bottom: 0px;
+	margin-top: 33px;
+}
+
+p.breadcrumbs a {
+	padding-right: 12px;
+	margin-right: 5px;
+	text-decoration: none;
+	color: #575757;
+	text-transform: uppercase;
+	font-size: 10px;
+}
+
+p.breadcrumbs a:first-child {background: url(../images/breadcrumb-arrow-white.png) no-repeat right center;}
+
+p.breadcrumbs a:hover {text-decoration: underline;}
+
+#star ul.star { 
+    LIST-STYLE: none; 
+    MARGIN: 0; 
+    PADDING: 0; 
+    WIDTH: 85px;
+    /* was 100 */ 
+    HEIGHT: 20px;
+    LEFT: 1px; 
+    TOP: -5px; 
+    POSITION: relative; 
+    FLOAT: right; 
+    BACKGROUND: url('../images/starsSmall.png') repeat-x 0 -25px;
+}
+#star li { 
+    PADDING: 0; 
+    MARGIN: 0; 
+    FLOAT: right; 
+    DISPLAY: block; 
+    WIDTH: 85px;
+    /* was 100 */
+    HEIGHT: 20px; 
+    TEXT-DECORATION: none; 
+    text-indent: -9000px; 
+    Z-INDEX: 20; 
+    POSITION: absolute; 
+    PADDING: 0; 
+}
+#star li.curr { 
+    BACKGROUND: url('../images/starsSmall.png') left 25px; 
+    FONT-SIZE: 1px; 
+}
+
+table.navLinks {margin-right: 20px;}
+
+table.navLinks td a {
+	text-decoration: none;
+	text-transform: uppercase;
+	color: black;
+	font-size: 11px;
+}
+
+a.navLinkPrevious {
+	padding-left: 12px;
+	background: url(../images/previous-arrow.png) no-repeat left center;
+}
+
+a.navLinkNext {
+	padding-right: 12px;
+	background: url(../images/next-arrow.png) no-repeat right center;
+}
+
+a#showHideButton {
+	padding-left: 20px;
+	background: url(../images/sidebar.png) no-repeat left center;
+}
+
+	
+.filetree li span a { color: #777; }
+
+#treediv { -webkit-box-shadow: #CCC 0px 1px 2px 0px inset; }
+
+.legal, .legal *{
+ color: #555;
+ text-align: center;
+ padding-bottom: 10px;
+}
+
+.internal { color : #0000CC;}
+
+.writeronly {color : red;}
+
+.remark, .remark .added, .remark .changed, .remark .deleted{ background: yellow;} 
+
+tr th, tr th .internal, tr th .added, tr th .changed {
+	background: #00589E;
+	color: white;
+	font-weight: bold;
+	text-align: left;
+}
+
+.statustext{
+    position:fixed;
+    top:105px;
+    width: 0%;
+    height: 0%;
+    opacity: .3;
+    -webkit-transform: rotate(90deg);
+    -moz-transform: rotate(90deg);
+    -o-transform: rotate(90deg);
+    white-space: nowrap;
+    color: red;
+    font-weight: bold;
+    font-size: 2em;
+    margin-top: 30px;
+}
+
+#toolbar {
+	width: 100%;
+	height: 33px;
+	position: fixed;
+	top: 93px;
+	z-index: 99;
+	left: 280px;
+	color: #333;
+	line-height: 28px;
+	padding-left: 10px;
+}
+
+#toolbar-left {
+	position: relative;
+	left: 0px;
+}
+ 
+body p.breadcrumbs {
+	margin: 0px;
+	padding: 0px;
+	line-height: 28px;
+}
+
+body #content {
+	position: static;
+	margin-top: 126px;
+	top: 0px;
+}
+
+body.sidebar #toolbar{left: 0px;}
+
+body.sidebar #toolbar-left{left: 0px;}
+
+div#toolbar-left img {vertical-align: text-top;}
+
+div.note *, div.caution *, div.important *, div.tip *, div.warning * {
+    background: inherit !important;
+    color: inherit !important;
+    border: inherit  !important;    
+}
+
+#content table thead, #content table th{
+    background: gray;
+    color: white;
+    font-weight: bold;
+}
+
+#content table caption{font-weight: bold;}
+
+#content table td, #content table {border: 1px solid black;}
+
+#content table td, #content table th { padding: 5px;}
+
+#content table {margin-bottom: 20px;}
+
+*[align = 'center']{ text-align: center;}
+
+#content .qandaset>table, #content .qandaset>table td, #content .calloutlist table, #content .calloutlist table td, #content .navfooter table, #content .navfooter table td {
+    border: 0px solid;
+}
+
+@media print {
+
+    body * {
+        visibility: hidden;
+    }
+
+    #content, #content * {
+        visibility: visible;
+    }
+
+   #sidebar, .navfooter {
+       display: none;
+   }
+
+   #content {
+	margin: 0 0 0 0;
+    }
+
+}
diff --git a/applications/content/template/docbook/webhelp/docs/common/css/positioning.css b/applications/content/template/docbook/webhelp/docs/common/css/positioning.css
new file mode 100644
index 0000000..d843f6410
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/css/positioning.css
@@ -0,0 +1,369 @@
+tr th .added { color: #E6E6FA; } 
+tr th .changed {color: #99ff99; }
+div.added tr, div.added    { background-color: #E6E6FA; }
+div.deleted tr, div.deleted  { text-decoration: line-through;
+               background-color: #FF7F7F; }
+div.changed tr, div.changed  { background-color: #99ff99; }
+div.off      {  }
+
+span.added   { background-color: #E6E6FA; }
+span.deleted { text-decoration: line-through;
+               background-color: #FF7F7F; }
+span.changed { background-color: #99ff99; }
+span.off     {  }
+
+
+body { font: 12px Verdana, Geneva, sans-serif; }
+p, ul, ol, li { font: 10pt Verdana, Geneva, sans-serif; }
+h1 { font: 15pt Arial, Helvetica, geneva;
+     color: black!important!;
+}
+h2 { font: normal 12pt Arial, Helvetica, geneva; }
+
+#header {
+    background: url("../images/header-bg.png") scroll top left repeat-x #4d8c83;
+    position: fixed;
+    width: 100%;
+    height: 99px;
+    top: 0;
+    right: 0;
+    bottom: auto;
+    left: 0;
+    border-bottom: 1px solid #bbc4c5;
+    z-index: 2000;
+}
+
+#header h1 {
+    margin-left: 310px;
+    position: fixed;
+    top: 10px;
+    left: -15px;
+    color: #404040 !important;
+}
+
+/*
+#header h1 {
+	margin-top: 2px;
+}
+*/
+
+p.breadcrumbs {
+    margin-top: 30px;
+    margin-left: 310px;
+}
+
+#header img {
+    float: left;
+    margin-left: 20px;
+    margin-top: 12px;
+}
+
+#header p.breadcrumbs a {
+    color: #bbb;
+}
+
+#leftnavigation {
+    overflow: auto;
+    position: fixed;
+    height: auto;
+    top: 95px;
+    bottom: 0;
+    left: 0;
+    width: 280px;
+    z-index: 1500;
+    border-right:2px solid #bbc4c5;
+    padding: 0px;
+    background-color: #ededed!important;
+}
+
+#treeDiv {
+    overflow: auto;
+    position: fixed;
+    height: auto;
+    top: 136px;
+    bottom: 0;
+    left: 0;
+    width: 243px;
+    z-index: 1500;
+    border-right:2px solid #CCCCCC;
+    background-color: #f0f0f0!important;
+}
+
+#searchDiv {
+    overflow: auto;
+    position: fixed;
+    height: auto;
+    top: 138px;
+    bottom: 0;
+    left: 0;
+    width: 243px;
+    z-index: 1500;
+    border-right:2px solid #CCCCCC;
+    background-color: #f0f0f0!important;
+}
+
+#content {
+    position: relative;
+    top: 90px; /* left: 240px;*/
+    right: auto; /*  bottom: 20px;  */
+    margin: 0px 0px 0px 280px;
+    width: auto;
+    height: inherit;
+    padding-left: 5px;
+    padding-right: 30px;
+    color: #000000;
+    /*border-left: 2px solid #cccccc; overflow :scroll;*/
+    z-index: 1000;
+    min-width:200px;
+}
+
+#navheader {
+    position: fixed;
+    background: #DCDCDC;
+    padding-left: 10px;
+    right: 0px;
+    top: 10px;
+    text-align: right;
+}
+
+#content h1, #content h2 { 
+color: #404040 !important; 
+font-size: 170%;
+font-weight: normal;
+}
+.navfooter { bottom: 2%; }
+.highlight { background-color: #c5d3c3; }
+.highlightButton{ font-size: 0; }
+
+/*  Show Hide TOC tree */
+.pointLeft {
+    padding-right: 15px;
+    display: block;
+    cursor: pointer;
+}
+.pointRight {
+    padding-right: 15px;
+    display: block;
+    cursor: pointer;
+}
+
+/* Search results Styling */
+.searchExpression {
+    color: #0050A0;
+    background-color: #EBEFF8;
+    font-size: 12pt;
+}
+.searchresult li a {
+    text-decoration: none;
+    color: #0050A0;
+}
+.searchresult li { color: #0050A0; }
+.shortdesclink { color: gray; font-size: 9pt; }
+.searchText { width: 11em }
+.searchButton {
+    margin-left: 3px;
+    background: #F4F4F4;
+    color: #black;
+    border: #ACCEAF solid 1pt;
+    font-weight: bold;
+    font-size: 10pt
+}
+.searchFieldSet { border: 1px solid #BFBAB0; background-color: #F2EFE9;}
+
+.title, div.toc>p{ font-weight: bold; }	
+
+p.breadcrumbs {
+        display: inline;
+	margin-bottom: 0px;
+	margin-top: 33px;
+}
+
+p.breadcrumbs a {
+	padding-right: 12px;
+	margin-right: 5px;
+	text-decoration: none;
+	color: #575757;
+	text-transform: uppercase;
+	font-size: 10px;
+}
+
+p.breadcrumbs a:first-child {background: url(../images/breadcrumb-arrow-white.png) no-repeat right center;}
+
+p.breadcrumbs a:hover {text-decoration: underline;}
+
+#star ul.star { 
+    LIST-STYLE: none; 
+    MARGIN: 0; 
+    PADDING: 0; 
+    WIDTH: 85px;
+    /* was 100 */ 
+    HEIGHT: 20px;
+    LEFT: 1px; 
+    TOP: -5px; 
+    POSITION: relative; 
+    FLOAT: right; 
+    BACKGROUND: url('../images/starsSmall.png') repeat-x 0 -25px;
+}
+#star li { 
+    PADDING: 0; 
+    MARGIN: 0; 
+    FLOAT: right; 
+    DISPLAY: block; 
+    WIDTH: 85px;
+    /* was 100 */
+    HEIGHT: 20px; 
+    TEXT-DECORATION: none; 
+    text-indent: -9000px; 
+    Z-INDEX: 20; 
+    POSITION: absolute; 
+    PADDING: 0; 
+}
+#star li.curr { 
+    BACKGROUND: url('../images/starsSmall.png') left 25px; 
+    FONT-SIZE: 1px; 
+}
+
+table.navLinks {margin-right: 20px;}
+
+table.navLinks td a {
+	text-decoration: none;
+	text-transform: uppercase;
+	color: black;
+	font-size: 11px;
+}
+
+a.navLinkPrevious {
+	padding-left: 12px;
+	background: url(../images/previous-arrow.png) no-repeat left center;
+}
+
+a.navLinkNext {
+	padding-right: 12px;
+	background: url(../images/next-arrow.png) no-repeat right center;
+}
+
+a#showHideButton {
+	padding-left: 20px;
+	background: url(../images/sidebar.png) no-repeat left center;
+}
+
+	
+.filetree li span a { color: #777; }
+
+#treediv { -webkit-box-shadow: #CCC 0px 1px 2px 0px inset; }
+
+.legal, .legal *{
+ color: #555;
+ text-align: center;
+ padding-bottom: 10px;
+}
+
+.internal { color : #0000CC;}
+
+.writeronly {color : red;}
+
+.remark, .remark .added, .remark .changed, .remark .deleted{ background: yellow;} 
+
+tr th, tr th .internal, tr th .added, tr th .changed {
+	background: #00589E;
+	color: white;
+	font-weight: bold;
+	text-align: left;
+}
+
+.statustext{
+    position:fixed;
+    top:105px;
+    width: 0%;
+    height: 0%;
+    opacity: .3;
+    -webkit-transform: rotate(90deg);
+    -moz-transform: rotate(90deg);
+    -o-transform: rotate(90deg);
+    white-space: nowrap;
+    color: red;
+    font-weight: bold;
+    font-size: 2em;
+    margin-top: 30px;
+}
+
+#toolbar {
+	width: 100%;
+	height: 33px;
+	position: fixed;
+	top: 93px;
+	z-index: 99;
+	left: 280px;
+	color: #333;
+	line-height: 28px;
+	padding-left: 10px;
+}
+
+#toolbar-left {
+	position: relative;
+	left: 0px;
+}
+ 
+body p.breadcrumbs {
+	margin: 0px;
+	padding: 0px;
+	line-height: 28px;
+}
+
+body #content {
+	position: static;
+	margin-top: 126px;
+	top: 0px;
+}
+
+body.sidebar #toolbar{left: 0px;}
+
+body.sidebar #toolbar-left{left: 0px;}
+
+div#toolbar-left img {vertical-align: text-top;}
+
+div.note *, div.caution *, div.important *, div.tip *, div.warning * {
+    background: inherit !important;
+    color: inherit !important;
+    border: inherit  !important;    
+}
+
+#content table thead, #content table th{
+    background: gray;
+    color: white;
+    font-weight: bold;
+}
+
+#content table caption{font-weight: bold;}
+
+#content table td, #content table {border: 1px solid black;}
+
+#content table td, #content table th { padding: 5px;}
+
+#content table {margin-bottom: 20px;}
+
+*[align = 'center']{ text-align: center;}
+
+#content .qandaset>table, #content .qandaset>table td, #content .calloutlist table, #content .calloutlist table td, #content .navfooter table, #content .navfooter table td {
+    border: 0px solid;
+}
+
+@media print {
+
+    body * {
+        visibility: hidden;
+    }
+
+    #content, #content * {
+        visibility: visible;
+    }
+
+   #sidebar, .navfooter {
+       display: none;
+   }
+
+   #content {
+	margin: 0 0 0 0;
+    }
+
+}
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/admon/caution.png b/applications/content/template/docbook/webhelp/docs/common/images/admon/caution.png
new file mode 100644
index 0000000..5b7809c
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/admon/caution.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/admon/important.png b/applications/content/template/docbook/webhelp/docs/common/images/admon/important.png
new file mode 100644
index 0000000..12c90f6
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/admon/important.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/admon/note.png b/applications/content/template/docbook/webhelp/docs/common/images/admon/note.png
new file mode 100644
index 0000000..d0c3c64
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/admon/note.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/admon/tip.png b/applications/content/template/docbook/webhelp/docs/common/images/admon/tip.png
new file mode 100644
index 0000000..5c4aab3
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/admon/tip.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/admon/warning.png b/applications/content/template/docbook/webhelp/docs/common/images/admon/warning.png
new file mode 100644
index 0000000..1c33db8
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/admon/warning.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/1.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/1.png
new file mode 100644
index 0000000..de682c6
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/1.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/10.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/10.png
new file mode 100644
index 0000000..96c6ce4
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/10.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/11.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/11.png
new file mode 100644
index 0000000..4550cb0
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/11.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/12.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/12.png
new file mode 100644
index 0000000..ef0f635
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/12.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/13.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/13.png
new file mode 100644
index 0000000..b4878f1
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/13.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/14.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/14.png
new file mode 100644
index 0000000..a222d7b
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/14.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/15.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/15.png
new file mode 100644
index 0000000..f6a76d5
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/15.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/16.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/16.png
new file mode 100644
index 0000000..c5ef635
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/16.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/17.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/17.png
new file mode 100644
index 0000000..85a2101
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/17.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/18.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/18.png
new file mode 100644
index 0000000..7744d25
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/18.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/19.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/19.png
new file mode 100644
index 0000000..44bacf8
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/19.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/2.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/2.png
new file mode 100644
index 0000000..24ec0f6
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/2.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/20.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/20.png
new file mode 100644
index 0000000..5e100fe
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/20.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/21.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/21.png
new file mode 100644
index 0000000..c87e80a
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/21.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/22.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/22.png
new file mode 100644
index 0000000..20593a4
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/22.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/23.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/23.png
new file mode 100644
index 0000000..3909b9c
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/23.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/24.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/24.png
new file mode 100644
index 0000000..963a9e7
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/24.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/25.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/25.png
new file mode 100644
index 0000000..458a919
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/25.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/26.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/26.png
new file mode 100644
index 0000000..74b2507
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/26.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/27.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/27.png
new file mode 100644
index 0000000..611b8ce
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/27.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/28.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/28.png
new file mode 100644
index 0000000..6aa21af
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/28.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/29.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/29.png
new file mode 100644
index 0000000..6009b52
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/29.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/3.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/3.png
new file mode 100644
index 0000000..01cdff1
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/3.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/30.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/30.png
new file mode 100644
index 0000000..c4dc404
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/30.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/4.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/4.png
new file mode 100644
index 0000000..1e42fb3
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/4.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/5.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/5.png
new file mode 100644
index 0000000..635e7f8
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/5.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/6.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/6.png
new file mode 100644
index 0000000..521aedd
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/6.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/7.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/7.png
new file mode 100644
index 0000000..0d4b876
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/7.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/8.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/8.png
new file mode 100644
index 0000000..50fa94d
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/8.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/callouts/9.png b/applications/content/template/docbook/webhelp/docs/common/images/callouts/9.png
new file mode 100644
index 0000000..7190d5a
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/callouts/9.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/header-bg.gif b/applications/content/template/docbook/webhelp/docs/common/images/header-bg.gif
new file mode 100644
index 0000000..f9efa28
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/header-bg.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/header-bg.png b/applications/content/template/docbook/webhelp/docs/common/images/header-bg.png
new file mode 100644
index 0000000..75202f9
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/header-bg.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/highlight-blue.gif b/applications/content/template/docbook/webhelp/docs/common/images/highlight-blue.gif
new file mode 100644
index 0000000..4fdabde
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/highlight-blue.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/highlight-yellow.gif b/applications/content/template/docbook/webhelp/docs/common/images/highlight-yellow.gif
new file mode 100644
index 0000000..3e847e7
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/highlight-yellow.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/loading.gif b/applications/content/template/docbook/webhelp/docs/common/images/loading.gif
new file mode 100644
index 0000000..085ccae
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/loading.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/logo.png b/applications/content/template/docbook/webhelp/docs/common/images/logo.png
new file mode 100644
index 0000000..b111258
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/logo.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/next-arrow.png b/applications/content/template/docbook/webhelp/docs/common/images/next-arrow.png
new file mode 100644
index 0000000..db595f4
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/next-arrow.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/previous-arrow.png b/applications/content/template/docbook/webhelp/docs/common/images/previous-arrow.png
new file mode 100644
index 0000000..347bc53
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/previous-arrow.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/search-icon.png b/applications/content/template/docbook/webhelp/docs/common/images/search-icon.png
new file mode 100644
index 0000000..715f62d
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/search-icon.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/showHideTreeIcons.png b/applications/content/template/docbook/webhelp/docs/common/images/showHideTreeIcons.png
new file mode 100644
index 0000000..c1ec1f9
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/showHideTreeIcons.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/sidebar.png b/applications/content/template/docbook/webhelp/docs/common/images/sidebar.png
new file mode 100644
index 0000000..5492671
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/sidebar.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/starsSmall.png b/applications/content/template/docbook/webhelp/docs/common/images/starsSmall.png
new file mode 100644
index 0000000..490a27b
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/starsSmall.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/images/toc-icon.png b/applications/content/template/docbook/webhelp/docs/common/images/toc-icon.png
new file mode 100644
index 0000000..40b34bc
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/images/toc-icon.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/jquery-1.4.2.min.js b/applications/content/template/docbook/webhelp/docs/common/jquery/jquery-1.4.2.min.js
new file mode 100644
index 0000000..7c24308
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/jquery-1.4.2.min.js
@@ -0,0 +1,154 @@
+/*!
+ * jQuery JavaScript Library v1.4.2
+ * http://jquery.com/
+ *
+ * Copyright 2010, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2010, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Sat Feb 13 22:33:48 2010 -0500
+ */
+(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
+e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
+j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
+"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
+true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
+Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
+(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
+a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
+"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
+function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
+c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
+L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
+"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
+a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
+d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
+a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
+!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
+true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
+var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
+parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
+false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
+s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
+applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
+else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
+a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
+w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
+cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
+i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
+" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
+this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
+e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
+c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
+a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
+function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
+k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
+C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
+null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
+e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
+f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
+if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
+d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
+"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
+a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
+isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
+{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
+if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
+e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
+"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
+d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
+!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
+toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
+u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
+function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
+if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
+t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
+g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
+for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
+1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
+CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
+relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
+l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
+h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
+CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
+g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
+text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
+setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
+h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
+m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
+"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
+h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
+!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
+h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
+q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
+if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
+(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
+function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
+gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
+c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
+{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
+"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
+d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
+a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
+1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
+a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
+c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
+wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
+prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
+this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
+return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
+""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
+this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
+u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
+1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
+return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
+""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
+c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
+c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
+function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
+Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
+"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
+a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
+a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
+"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
+serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
+function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
+global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
+e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
+"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
+false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
+false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
+c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
+d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
+g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
+1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
+"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
+if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
+this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
+"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
+animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
+j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
+this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
+"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
+c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
+this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
+this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
+e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
+c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
+function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
+this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
+k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
+f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
+a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
+c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
+d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
+f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
+"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
+e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/jquery-ui-1.8.2.custom.min.js b/applications/content/template/docbook/webhelp/docs/common/jquery/jquery-ui-1.8.2.custom.min.js
new file mode 100644
index 0000000..fec53e8
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/jquery-ui-1.8.2.custom.min.js
@@ -0,0 +1,321 @@
+/*!
+ * jQuery UI 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(c){c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.2",plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==
+"hidden")return false;b=b&&b=="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,f,g){return c.ui.isOverAxis(a,d,f)&&c.ui.isOverAxis(b,e,g)},keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,
+NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect",
+"none")},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",
+1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==undefined)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b=="absolute"||b=="relative"||b=="fixed"){b=parseInt(a.css("zIndex"));if(!isNaN(b)&&b!=0)return b}a=a.parent()}}return 0}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");return(/input|select|textarea|button|object/.test(b)?
+!a.disabled:"a"==b||"area"==b?a.href||!isNaN(d):!isNaN(d))&&!c(a)["area"==b?"parents":"closest"](":hidden").length},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}})}})(jQuery);
+;/*!
+ * jQuery UI Widget 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b){var j=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add(this).each(function(){b(this).triggerHandler("remove")});return j.call(b(this),a,c)})};b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend({},c.options);b[e][a].prototype=
+b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.substring(0,1)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==undefined){h=i;return false}}):this.each(function(){var g=
+b.data(this,a);if(g){d&&g.option(d);g._init()}else b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){this.element=b(c).data(this.widgetName,this);this.options=b.extend(true,{},this.options,b.metadata&&b.metadata.get(c)[this.widgetName],a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();
+this._init()},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a,e=this;if(arguments.length===0)return b.extend({},e.options);if(typeof a==="string"){if(c===undefined)return this.options[a];d={};d[a]=c}b.each(d,function(f,
+h){e._setOption(f,h)});return e},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=
+b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
+;/*!
+ * jQuery UI Mouse 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ *	jquery.ui.widget.js
+ */
+(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(a._preventClickEvent){a._preventClickEvent=false;b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&
+this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();
+return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);c.browser.safari||a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&
+this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=a.target==this._mouseDownEvent.target;this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-
+a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
+;/*
+ * jQuery UI Position 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Position
+ */
+(function(c){c.ui=c.ui||{};var m=/left|center|right/,n=/top|center|bottom/,p=c.fn.position,q=c.fn.offset;c.fn.position=function(a){if(!a||!a.of)return p.apply(this,arguments);a=c.extend({},a);var b=c(a.of),d=(a.collision||"flip").split(" "),e=a.offset?a.offset.split(" "):[0,0],g,h,i;if(a.of.nodeType===9){g=b.width();h=b.height();i={top:0,left:0}}else if(a.of.scrollTo&&a.of.document){g=b.width();h=b.height();i={top:b.scrollTop(),left:b.scrollLeft()}}else if(a.of.preventDefault){a.at="left top";g=h=
+0;i={top:a.of.pageY,left:a.of.pageX}}else{g=b.outerWidth();h=b.outerHeight();i=b.offset()}c.each(["my","at"],function(){var f=(a[this]||"").split(" ");if(f.length===1)f=m.test(f[0])?f.concat(["center"]):n.test(f[0])?["center"].concat(f):["center","center"];f[0]=m.test(f[0])?f[0]:"center";f[1]=n.test(f[1])?f[1]:"center";a[this]=f});if(d.length===1)d[1]=d[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(a.at[0]==="right")i.left+=g;else if(a.at[0]==="center")i.left+=
+g/2;if(a.at[1]==="bottom")i.top+=h;else if(a.at[1]==="center")i.top+=h/2;i.left+=e[0];i.top+=e[1];return this.each(function(){var f=c(this),k=f.outerWidth(),l=f.outerHeight(),j=c.extend({},i);if(a.my[0]==="right")j.left-=k;else if(a.my[0]==="center")j.left-=k/2;if(a.my[1]==="bottom")j.top-=l;else if(a.my[1]==="center")j.top-=l/2;j.left=parseInt(j.left);j.top=parseInt(j.top);c.each(["left","top"],function(o,r){c.ui.position[d[o]]&&c.ui.position[d[o]][r](j,{targetWidth:g,targetHeight:h,elemWidth:k,
+elemHeight:l,offset:e,my:a.my,at:a.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(j,{using:a.using}))})};c.ui.position={fit:{left:function(a,b){var d=c(window);b=a.left+b.elemWidth-d.width()-d.scrollLeft();a.left=b>0?a.left-b:Math.max(0,a.left)},top:function(a,b){var d=c(window);b=a.top+b.elemHeight-d.height()-d.scrollTop();a.top=b>0?a.top-b:Math.max(0,a.top)}},flip:{left:function(a,b){if(b.at[0]!=="center"){var d=c(window);d=a.left+b.elemWidth-d.width()-d.scrollLeft();var e=b.my[0]==="left"?
+-b.elemWidth:b.my[0]==="right"?b.elemWidth:0,g=-2*b.offset[0];a.left+=a.left<0?e+b.targetWidth+g:d>0?e-b.targetWidth+g:0}},top:function(a,b){if(b.at[1]!=="center"){var d=c(window);d=a.top+b.elemHeight-d.height()-d.scrollTop();var e=b.my[1]==="top"?-b.elemHeight:b.my[1]==="bottom"?b.elemHeight:0,g=b.at[1]==="top"?b.targetHeight:-b.targetHeight,h=-2*b.offset[1];a.top+=a.top<0?e+b.targetHeight+h:d>0?e+g+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(a,b){if(/static/.test(c.curCSS(a,"position")))a.style.position=
+"relative";var d=c(a),e=d.offset(),g=parseInt(c.curCSS(a,"top",true),10)||0,h=parseInt(c.curCSS(a,"left",true),10)||0;e={top:b.top-e.top+g,left:b.left-e.left+h};"using"in b?b.using.call(a,e):d.css(e)};c.fn.offset=function(a){var b=this[0];if(!b||!b.ownerDocument)return null;if(a)return this.each(function(){c.offset.setOffset(this,a)});return q.call(this)}}})(jQuery);
+;/*
+ * jQuery UI Resizable 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Resizables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(d){d.widget("ui.resizable",d.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");d.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
+_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&d.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(d('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
+top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
+this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!d(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
+nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var e=0;e<c.length;e++){var g=d.trim(c[e]),f=d('<div class="ui-resizable-handle '+("ui-resizable-"+g)+'"></div>');/sw|se|ne|nw/.test(g)&&f.css({zIndex:++a.zIndex});"se"==g&&f.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[g]=".ui-resizable-"+g;this.element.append(f)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
+String)this.handles[i]=d(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=d(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}d(this.handles[i])}};this._renderAxis(this.element);this._handles=d(".ui-resizable-handle",this.element).disableSelection();
+this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();d(this.element).addClass("ui-resizable-autohide").hover(function(){d(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){d(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){d(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};
+if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(d(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),
+e=this.element;this.resizing=true;this.documentScroll={top:d(document).scrollTop(),left:d(document).scrollLeft()};if(e.is(".ui-draggable")||/absolute/.test(e.css("position")))e.css({position:"absolute",top:c.top,left:c.left});d.browser.opera&&/relative/.test(e.css("position"))&&e.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var g=m(this.helper.css("top"));if(a.containment){c+=d(a.containment).scrollLeft()||0;g+=d(a.containment).scrollTop()||0}this.offset=
+this.helper.offset();this.position={left:c,top:g};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:c,top:g};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:
+this.originalSize.width/this.originalSize.height||1;a=d(".ui-resizable-"+this.axis).css("cursor");d("body").css("cursor",a=="auto"?this.axis+"-resize":a);e.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,e=this._change[this.axis];if(!e)return false;c=e.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",
+b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var e=this._proportionallyResizeElements,g=e.length&&/textarea/i.test(e[0].nodeName);e=g&&d.ui.hasScroll(e[0],"left")?0:c.sizeDiff.height;
+g={width:c.size.width-(g?0:c.sizeDiff.width),height:c.size.height-e};e=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var f=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(d.extend(g,{top:f,left:e}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}d("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",
+b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(k(b.left))this.position.left=b.left;if(k(b.top))this.position.top=b.top;if(k(b.height))this.size.height=b.height;if(k(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,e=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(e=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(e=="nw"){b.top=
+a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,e=k(b.width)&&a.maxWidth&&a.maxWidth<b.width,g=k(b.height)&&a.maxHeight&&a.maxHeight<b.height,f=k(b.width)&&a.minWidth&&a.minWidth>b.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(f)b.width=a.minWidth;if(h)b.height=a.minHeight;if(e)b.width=a.maxWidth;if(g)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,
+l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(f&&l)b.left=i-a.minWidth;if(e&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(g&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var e=[c.css("borderTopWidth"),
+c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],g=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=d.map(e,function(f,h){f=parseInt(f,10)||0;h=parseInt(g[h],10)||0;return f+h})}d.browser.msie&&(d(b).is(":hidden")||d(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=
+this.element.offset();if(this._helper){this.helper=this.helper||d('<div style="overflow:hidden;"></div>');var a=d.browser.msie&&d.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+
+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return d.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return d.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return d.extend(this._change.n.apply(this,
+arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return d.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){d.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});d.extend(d.ui.resizable,
+{version:"1.8.2"});d.ui.plugin.add("resizable","alsoResize",{start:function(){var b=d(this).data("resizable").options,a=function(c){d(c).each(function(){d(this).data("resizable-alsoresize",{width:parseInt(d(this).width(),10),height:parseInt(d(this).height(),10),left:parseInt(d(this).css("left"),10),top:parseInt(d(this).css("top"),10)})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else d.each(b.alsoResize,function(c){a(c)});
+else a(b.alsoResize)},resize:function(){var b=d(this).data("resizable"),a=b.options,c=b.originalSize,e=b.originalPosition,g={height:b.size.height-c.height||0,width:b.size.width-c.width||0,top:b.position.top-e.top||0,left:b.position.left-e.left||0},f=function(h,i){d(h).each(function(){var j=d(this),l=d(this).data("resizable-alsoresize"),p={};d.each((i&&i.length?i:["width","height","top","left"])||["width","height","top","left"],function(n,o){if((n=(l[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(/relative/.test(j.css("position"))&&
+d.browser.opera){b._revertToRelativePosition=true;j.css({position:"absolute",top:"auto",left:"auto"})}j.css(p)})};typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?d.each(a.alsoResize,function(h,i){f(h,i)}):f(a.alsoResize)},stop:function(){var b=d(this).data("resizable");if(b._revertToRelativePosition&&d.browser.opera){b._revertToRelativePosition=false;el.css({position:"relative"})}d(this).removeData("resizable-alsoresize-start")}});d.ui.plugin.add("resizable","animate",{stop:function(b){var a=
+d(this).data("resizable"),c=a.options,e=a._proportionallyResizeElements,g=e.length&&/textarea/i.test(e[0].nodeName),f=g&&d.ui.hasScroll(e[0],"left")?0:a.sizeDiff.height;g={width:a.size.width-(g?0:a.sizeDiff.width),height:a.size.height-f};f=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(d.extend(g,h&&f?{top:h,left:f}:{}),{duration:c.animateDuration,easing:c.animateEasing,
+step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};e&&e.length&&d(e[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});d.ui.plugin.add("resizable","containment",{start:function(){var b=d(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof d?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=
+d(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:d(document),left:0,top:0,width:d(document).width(),height:d(document).height()||document.body.parentNode.scrollHeight}}else{var e=d(a),g=[];d(["Top","Right","Left","Bottom"]).each(function(i,j){g[i]=m(e.css("padding"+j))});b.containerOffset=e.offset();b.containerPosition=e.position();b.containerSize={height:e.innerHeight()-g[3],width:e.innerWidth()-g[1]};c=b.containerOffset;
+var f=b.containerSize.height,h=b.containerSize.width;h=d.ui.hasScroll(a,"left")?a.scrollWidth:h;f=d.ui.hasScroll(a)?a.scrollHeight:f;b.parentData={element:a,left:c.left,top:c.top,width:h,height:f}}}},resize:function(b){var a=d(this).data("resizable"),c=a.options,e=a.containerOffset,g=a.position;b=a._aspectRatio||b.shiftKey;var f={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))f=e;if(g.left<(a._helper?e.left:0)){a.size.width+=a._helper?a.position.left-e.left:
+a.position.left-f.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?e.left:0}if(g.top<(a._helper?e.top:0)){a.size.height+=a._helper?a.position.top-e.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?e.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-f.left:a.offset.left-f.left)+a.sizeDiff.width);e=Math.abs((a._helper?a.offset.top-f.top:a.offset.top-
+e.top)+a.sizeDiff.height);g=a.containerElement.get(0)==a.element.parent().get(0);f=/relative|absolute/.test(a.containerElement.css("position"));if(g&&f)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(e+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-e;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=d(this).data("resizable"),a=b.options,c=b.containerOffset,e=b.containerPosition,
+g=b.containerElement,f=d(b.helper),h=f.offset(),i=f.outerWidth()-b.sizeDiff.width;f=f.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(g.css("position"))&&d(this).css({left:h.left-e.left-c.left,width:i,height:f});b._helper&&!a.animate&&/static/.test(g.css("position"))&&d(this).css({left:h.left-e.left-c.left,width:i,height:f})}});d.ui.plugin.add("resizable","ghost",{start:function(){var b=d(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,
+display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=d(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=d(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});d.ui.plugin.add("resizable","grid",{resize:function(){var b=
+d(this).data("resizable"),a=b.options,c=b.size,e=b.originalSize,g=b.originalPosition,f=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-e.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-e.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(f)){b.size.width=e.width+h;b.size.height=e.height+a}else if(/^(ne)$/.test(f)){b.size.width=e.width+h;b.size.height=e.height+a;b.position.top=g.top-a}else{if(/^(sw)$/.test(f)){b.size.width=e.width+h;b.size.height=
+e.height+a}else{b.size.width=e.width+h;b.size.height=e.height+a;b.position.top=g.top-a}b.position.left=g.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
+;
+/*
+ * jQuery UI Selectable 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Selectables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
+selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
+c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");
+b.unselecting=true;f._trigger("unselecting",c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=
+this;this.dragged=true;if(!this.options.disabled){var d=this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");
+a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=
+true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=
+false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.2"})})(jQuery);
+ 
+(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
+selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
+c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");
+b.unselecting=true;f._trigger("unselecting",c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=
+this;this.dragged=true;if(!this.options.disabled){var d=this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");
+a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=
+true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=
+false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.2"})})(jQuery);
+;/*
+ * jQuery UI Autocomplete 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Autocomplete
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *	jquery.ui.position.js
+ */
+(function(e){e.widget("ui.autocomplete",{options:{minLength:1,delay:300},_create:function(){var a=this,c=this.element[0].ownerDocument;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(d){var b=e.ui.keyCode;switch(d.keyCode){case b.PAGE_UP:a._move("previousPage",d);break;case b.PAGE_DOWN:a._move("nextPage",d);break;case b.UP:a._move("previous",d);d.preventDefault();
+break;case b.DOWN:a._move("next",d);d.preventDefault();break;case b.ENTER:case b.NUMPAD_ENTER:a.menu.active&&d.preventDefault();case b.TAB:if(!a.menu.active)return;a.menu.select(d);break;case b.ESCAPE:a.element.val(a.term);a.close(d);break;case b.LEFT:case b.RIGHT:case b.SHIFT:case b.CONTROL:case b.ALT:case b.COMMAND:case b.COMMAND_RIGHT:case b.INSERT:case b.CAPS_LOCK:case b.END:case b.HOME:break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){a.search(null,d)},a.options.delay);
+break}}).bind("focus.autocomplete",function(){a.selectedItem=null;a.previous=a.element.val()}).bind("blur.autocomplete",function(d){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(d);a._change(d)},150)});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=e("<ul></ul>").addClass("ui-autocomplete").appendTo("body",c).mousedown(function(){setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(d,b){b=b.item.data("item.autocomplete");
+false!==a._trigger("focus",null,{item:b})&&/^key/.test(d.originalEvent.type)&&a.element.val(b.value)},selected:function(d,b){b=b.item.data("item.autocomplete");false!==a._trigger("select",d,{item:b})&&a.element.val(b.value);a.close(d);d=a.previous;if(a.element[0]!==c.activeElement){a.element.focus();a.previous=d}a.selectedItem=b},blur:function(){a.menu.element.is(":visible")&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");e.fn.bgiframe&&this.menu.element.bgiframe()},
+destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();e.Widget.prototype.destroy.call(this)},_setOption:function(a){e.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource()},_initSource:function(){var a,c;if(e.isArray(this.options.source)){a=this.options.source;this.source=function(d,b){b(e.ui.autocomplete.filter(a,d.term))}}else if(typeof this.options.source===
+"string"){c=this.options.source;this.source=function(d,b){e.getJSON(c,d,b)}}else this.source=this.options.source},search:function(a,c){a=a!=null?a:this.element.val();if(a.length<this.options.minLength)return this.close(c);clearTimeout(this.closing);if(this._trigger("search")!==false)return this._search(a)},_search:function(a){this.term=this.element.addClass("ui-autocomplete-loading").val();this.source({term:a},this.response)},_response:function(a){if(a.length){a=this._normalize(a);this._suggest(a);
+this._trigger("open")}else this.close();this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this._trigger("close",a);this.menu.element.hide();this.menu.deactivate()}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return e.map(a,function(c){if(typeof c==="string")return{label:c,value:c};return e.extend({label:c.label||
+c.value,value:c.value||c.label},c)})},_suggest:function(a){var c=this.menu.element.empty().zIndex(this.element.zIndex()+1),d;this._renderMenu(c,a);this.menu.deactivate();this.menu.refresh();this.menu.element.show().position({my:"left top",at:"left bottom",of:this.element,collision:"none"});a=c.width("").width();d=this.element.width();c.width(Math.max(a,d))},_renderMenu:function(a,c){var d=this;e.each(c,function(b,f){d._renderItem(a,f)})},_renderItem:function(a,c){return e("<li></li>").data("item.autocomplete",
+c).append("<a>"+c.label+"</a>").appendTo(a)},_move:function(a,c){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](c);else this.search(null,c)},widget:function(){return this.menu.element}});e.extend(e.ui.autocomplete,{escapeRegex:function(a){return a.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")},filter:function(a,c){var d=new RegExp(e.ui.autocomplete.escapeRegex(c),
+"i");return e.grep(a,function(b){return d.test(b.label||b.value||b)})}})})(jQuery);
+(function(e){e.widget("ui.menu",{_create:function(){var a=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(e(c.target).closest(".ui-menu-item a").length){c.preventDefault();a.select(c)}});this.refresh()},refresh:function(){var a=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
+-1).mouseenter(function(c){a.activate(c,e(this).parent())}).mouseleave(function(){a.deactivate()})},activate:function(a,c){this.deactivate();if(this.hasScroll()){var d=c.offset().top-this.element.offset().top,b=this.element.attr("scrollTop"),f=this.element.height();if(d<0)this.element.attr("scrollTop",b+d);else d>f&&this.element.attr("scrollTop",b+d-f+c.height())}this.active=c.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",a,{item:c})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");
+this._trigger("blur");this.active=null}},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prev().length},last:function(){return this.active&&!this.active.next().length},move:function(a,c,d){if(this.active){a=this.active[a+"All"](".ui-menu-item").eq(0);a.length?this.activate(d,a):this.activate(d,this.element.children(c))}else this.activate(d,this.element.children(c))},nextPage:function(a){if(this.hasScroll())if(!this.active||
+this.last())this.activate(a,this.element.children(":first"));else{var c=this.active.offset().top,d=this.element.height(),b=this.element.children("li").filter(function(){var f=e(this).offset().top-c-d+e(this).height();return f<10&&f>-10});b.length||(b=this.element.children(":last"));this.activate(a,b)}else this.activate(a,this.element.children(!this.active||this.last()?":first":":last"))},previousPage:function(a){if(this.hasScroll())if(!this.active||this.first())this.activate(a,this.element.children(":last"));
+else{var c=this.active.offset().top,d=this.element.height();result=this.element.children("li").filter(function(){var b=e(this).offset().top-c+d-e(this).height();return b<10&&b>-10});result.length||(result=this.element.children(":first"));this.activate(a,result)}else this.activate(a,this.element.children(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})})(jQuery);
+;/*
+ * jQuery UI Button 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Button
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ */
+(function(a){var g,i=function(b){a(":ui-button",b.target.form).each(function(){var c=a(this).data("button");setTimeout(function(){c.refresh()},1)})},h=function(b){var c=b.name,d=b.form,e=a([]);if(c)e=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form});return e};a.widget("ui.button",{options:{text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",i);this._determineButtonType();
+this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d=this.type==="checkbox"||this.type==="radio",e="ui-state-hover"+(!d?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",function(){if(!c.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",
+function(){c.disabled||a(this).removeClass(e)}).bind("focus.button",function(){a(this).addClass("ui-state-focus")}).bind("blur.button",function(){a(this).removeClass("ui-state-focus")});d&&this.element.bind("change.button",function(){b.refresh()});if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).toggleClass("ui-state-active");b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",
+function(){if(c.disabled)return false;a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed",true);var f=b.element[0];h(f).not(f).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed",false)});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(c.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",
+function(f){if(c.disabled)return false;if(f.keyCode==a.ui.keyCode.SPACE||f.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(f){f.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",c.disabled)},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?
+"input":"button";if(this.type==="checkbox"||this.type==="radio"){this.buttonElement=this.element.parents().last().find("[for="+this.element.attr("id")+"]");this.element.addClass("ui-helper-hidden-accessible");var b=this.element.is(":checked");b&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",b)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
+this.hasTitle||this.buttonElement.removeAttr("title");a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled")c?this.element.attr("disabled",true):this.element.removeAttr("disabled");this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")h(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
+true):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false)});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false)},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only"),
+c=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary;if(d.primary||d.secondary){b.addClass("ui-button-text-icon"+(e?"s":""));d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>");d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>");if(!this.options.text){b.addClass(e?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon");
+this.hasTitle||b.attr("title",c)}}else b.addClass("ui-button-text-only")}}});a.widget("ui.buttonset",{_create:function(){this.element.addClass("ui-buttonset");this._init()},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()},
+destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery);
+;/*
+ * jQuery UI Dialog 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Dialog
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *  jquery.ui.button.js
+ *	jquery.ui.draggable.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.position.js
+ *	jquery.ui.resizable.js
+ */
+(function(c){c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");var a=this,b=a.options,d=b.title||a.originalTitle||"&#160;",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+
+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),
+h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",
+e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");
+a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==
+b.uiDialog[0])d=Math.max(d,c(this).css("z-index"))});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",
+c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;d.next().length&&d.appendTo("body");a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===
+f[0]&&e.shiftKey){g.focus(1);return false}}});c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();a._trigger("open");a._isOpen=true;return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,
+function(g,f){g=c('<button type="button"></button>').text(g).click(function(){f.apply(b.element[0],arguments)}).appendTo(e);c.fn.button&&g.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");
+b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize,position:f.position,size:f.size}}a=a===undefined?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");
+a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",
+f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0];a=a||c.ui.dialog.prototype.options.position;if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(e,g){if(+b[e]===b[e]){d[e]=b[e];b[e]=
+g}})}else if(typeof a==="object"){if("left"in a){b[0]="left";d[0]=a.left}else if("right"in a){b[0]="right";d[0]=-a.right}if("top"in a){b[1]="top";d[1]=a.top}else if("bottom"in a){b[1]="bottom";d[1]=-a.bottom}}(a=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position({my:b.join(" "),at:b.join(" "),offset:d.join(" "),of:window,collision:"fit",using:function(e){var g=c(this).css(e).offset().top;g<0&&c(this).css("top",e.top-g)}});a||this.uiDialog.hide()},_setOption:function(a,
+b){var d=this,e=d.uiDialog,g=e.is(":data(resizable)"),f=false;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled");break;case "draggable":b?d._makeDraggable():e.draggable("destroy");break;
+case "height":f=true;break;case "maxHeight":g&&e.resizable("option","maxHeight",b);f=true;break;case "maxWidth":g&&e.resizable("option","maxWidth",b);f=true;break;case "minHeight":g&&e.resizable("option","minHeight",b);f=true;break;case "minWidth":g&&e.resizable("option","minWidth",b);f=true;break;case "position":d._position(b);break;case "resizable":g&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",
+d.uiDialogTitlebar).html(""+(b||"&#160;"));break;case "width":f=true;break}c.Widget.prototype._setOption.apply(d,arguments);f&&d._size()},_size:function(){var a=this.options,b;this.element.css({width:"auto",minHeight:0,height:0});b=this.uiDialog.css({height:"auto",width:a.width}).height();this.element.css(a.height==="auto"?{minHeight:Math.max(a.minHeight-b,0),height:"auto"}:{minHeight:0,height:Math.max(a.height-b,0)}).show();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",
+this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.2",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&
+c(document).bind(c.ui.dialog.overlay.events,function(d){return c(d.target).zIndex()>=c.ui.dialog.overlay.maxZ})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&&
+b.bgiframe();this.instances.push(b);return b},destroy:function(a){this.oldInstances.push(this.instances.splice(c.inArray(a,this.instances),1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var b=0;c.each(this.instances,function(){b=Math.max(b,this.css("z-index"))});this.maxZ=b},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight,
+document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,function(){a=a.add(this)});a.css({width:0,
+height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
+;/*
+ * jQuery UI Tabs 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Tabs
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ */
+(function(d){function s(){return++u}function v(){return++w}var u=0,w=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>'},_create:function(){this._tabify(true)},_setOption:function(c,e){if(c=="selected")this.options.collapsible&&
+e==this.options.selected||this.select(e);else{this.options[c]=e;this._tabify()}},_tabId:function(c){return c.title&&c.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+s()},_sanitizeSelector:function(c){return c.replace(/:/g,"\\:")},_cookie:function(){var c=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+v());return d.cookie.apply(null,[c].concat(d.makeArray(arguments)))},_ui:function(c,e){return{tab:c,panel:e,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var c=
+d(this);c.html(c.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function e(g,f){g.css({display:""});!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}this.list=this.element.find("ol,ul").eq(0);this.lis=d("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);var a=this,b=this.options,h=/^#.+/;this.anchors.each(function(g,f){var j=d(f).attr("href"),l=j.split("#")[0],p;if(l&&(l===location.toString().split("#")[0]||
+(p=d("base")[0])&&l===p.href)){j=f.hash;f.href=j}if(h.test(j))a.panels=a.panels.add(a._sanitizeSelector(j));else if(j!="#"){d.data(f,"href.tabs",j);d.data(f,"load.tabs",j.replace(/#.*$/,""));j=a._tabId(f);f.href="#"+j;f=d("#"+j);if(!f.length){f=d(b.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else b.disabled.push(g)});if(c){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
+this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(b.selected===undefined){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){b.selected=g;return false}});if(typeof b.selected!="number"&&b.cookie)b.selected=parseInt(a._cookie(),10);if(typeof b.selected!="number"&&this.lis.filter(".ui-tabs-selected").length)b.selected=
+this.lis.index(this.lis.filter(".ui-tabs-selected"));b.selected=b.selected||(this.lis.length?0:-1)}else if(b.selected===null)b.selected=-1;b.selected=b.selected>=0&&this.anchors[b.selected]||b.selected<0?b.selected:0;b.disabled=d.unique(b.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(b.selected,b.disabled)!=-1&&b.disabled.splice(d.inArray(b.selected,b.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
+if(b.selected>=0&&this.anchors.length){this.panels.eq(b.selected).removeClass("ui-tabs-hide");this.lis.eq(b.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[b.selected],a.panels[b.selected]))});this.load(b.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else b.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));this.element[b.collapsible?"addClass":
+"removeClass"]("ui-tabs-collapsible");b.cookie&&this._cookie(b.selected,b.cookie);c=0;for(var i;i=this.lis[c];c++)d(i)[d.inArray(c,b.disabled)!=-1&&!d(i).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");b.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(b.event!="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+g)};this.lis.bind("mouseover.tabs",
+function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(b.fx)if(d.isArray(b.fx)){m=b.fx[0];o=b.fx[1]}else m=o=b.fx;var q=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",function(){e(f,o);a._trigger("show",
+null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},r=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};this.anchors.bind(b.event+".tabs",
+function(){var g=this,f=d(this).closest("li"),j=a.panels.filter(":not(.ui-tabs-hide)"),l=d(a._sanitizeSelector(this.hash));if(f.hasClass("ui-tabs-selected")&&!b.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}b.selected=a.anchors.index(this);a.abort();if(b.collapsible)if(f.hasClass("ui-tabs-selected")){b.selected=-1;b.cookie&&a._cookie(b.selected,b.cookie);a.element.queue("tabs",function(){r(g,
+j)}).dequeue("tabs");this.blur();return false}else if(!j.length){b.cookie&&a._cookie(b.selected,b.cookie);a.element.queue("tabs",function(){q(g,l)});a.load(a.anchors.index(this));this.blur();return false}b.cookie&&a._cookie(b.selected,b.cookie);if(l.length){j.length&&a.element.queue("tabs",function(){r(g,j)});a.element.queue("tabs",function(){q(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",
+function(){return false})},destroy:function(){var c=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(b,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,
+"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});c.cookie&&this._cookie(null,c.cookie);return this},add:function(c,e,a){if(a===undefined)a=this.anchors.length;var b=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,e));c=!c.indexOf("#")?c.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",
+true);var i=d("#"+c);i.length||(i=d(h.panelTemplate).attr("id",c).data("destroy.tabs",true));i.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);i.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);i.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");i.removeClass("ui-tabs-hide");
+this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(c){var e=this.options,a=this.lis.eq(c).remove(),b=this.panels.eq(c).remove();if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(c+(c+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=c}),function(h){return h>=c?--h:h});this._tabify();this._trigger("remove",
+null,this._ui(a.find("a")[0],b[0]));return this},enable:function(c){var e=this.options;if(d.inArray(c,e.disabled)!=-1){this.lis.eq(c).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=c});this._trigger("enable",null,this._ui(this.anchors[c],this.panels[c]));return this}},disable:function(c){var e=this.options;if(c!=e.selected){this.lis.eq(c).addClass("ui-state-disabled");e.disabled.push(c);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}return this},
+select:function(c){if(typeof c=="string")c=this.anchors.index(this.anchors.filter("[href$="+c+"]"));else if(c===null)c=-1;if(c==-1&&this.options.collapsible)c=this.options.selected;this.anchors.eq(c).trigger(this.options.event+".tabs");return this},load:function(c){var e=this,a=this.options,b=this.anchors.eq(c)[0],h=d.data(b,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(b,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(c).addClass("ui-state-processing");
+if(a.spinner){var i=d("span",b);i.data("label.tabs",i.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){d(e._sanitizeSelector(b.hash)).html(k);e._cleanup();a.cache&&d.data(b,"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[c],e.panels[c]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[c],e.panels[c]));try{a.ajaxOptions.error(k,n,c,b)}catch(m){}}}));e.element.dequeue("tabs");return this}},
+abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(c,e){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.2"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(c,e){var a=this,b=this.options,h=a._rotate||(a._rotate=
+function(i){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=b.selected;a.select(++k<a.anchors.length?k:0)},c);i&&i.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(i){i.clientX&&a.rotate(null)}:function(){t=b.selected;h()});if(c){this.element.bind("tabsshow",h);this.anchors.bind(b.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(b.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
+;/*
+ * jQuery UI Effects 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/
+ */
+jQuery.effects||function(f){function k(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
+16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return l.transparent;return l[f.trim(c).toLowerCase()]}function q(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return k(b)}function m(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
+a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function n(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in r||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function s(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function j(c,a,b,d){if(typeof c=="object"){d=
+a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(f.isFunction(b)){d=b;b=null}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:f.fx.speeds[b]||f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=q(b.elem,a);b.end=k(b.end);b.colorInit=
+true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var l={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,
+183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,
+165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},o=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,d){if(f.isFunction(b)){d=b;b=null}return this.each(function(){var e=f(this),g=e.attr("style")||" ",h=n(m.call(this)),p,t=e.attr("className");f.each(o,function(u,
+i){c[i]&&e[i+"Class"](c[i])});p=n(m.call(this));e.attr("className",t);e.animate(s(h,p),a,b,function(){f.each(o,function(u,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)})})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?
+f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===undefined?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.2",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==
+null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case "top":b=0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();
+var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});
+c.css({position:"relative",top:0,left:0})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=j.apply(this,arguments);a={options:a[1],duration:a[2],callback:a[3]};var b=f.effects[c];return b&&!f.fx.off?b.call(this,a):this},_show:f.fn.show,show:function(c){if(!c||
+typeof c=="number"||f.fx.speeds[c])return this._show.apply(this,arguments);else{var a=j.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(!c||typeof c=="number"||f.fx.speeds[c])return this._hide.apply(this,arguments);else{var a=j.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(!c||typeof c=="number"||f.fx.speeds[c]||typeof c=="boolean"||f.isFunction(c))return this.__toggle.apply(this,
+arguments);else{var a=j.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,
+a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+
+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,
+10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*
+a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,
+a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==undefined)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==undefined)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,
+a,b,d,e,g){if(g==undefined)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,
+d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
+;/*
+ * jQuery UI Effects Fold 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Fold
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","left"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],10)/100*
+f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
+;/*
+ * jQuery Highlight plugin
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ * Copyright (c) 2009 Bartek Szopka http://bartaz.github.com/sandbox.js/jquery.highlight.html
+ * Licensed under MIT license. 
+ */
+jQuery.extend({highlight:function(a,c,b,e){if(a.nodeType===3){if(c=a.data.match(c)){b=document.createElement(b||"span");b.className=e||"highlight";a=a.splitText(c.index);a.splitText(c[0].length);e=a.cloneNode(true);b.appendChild(e);a.parentNode.replaceChild(b,a);return 1}}else if(a.nodeType===1&&a.childNodes&&!/(script|style)/i.test(a.tagName)&&!(a.tagName===b.toUpperCase()&&a.className===e))for(var d=0;d<a.childNodes.length;d++)d+=jQuery.highlight(a.childNodes[d],c,b,e);return 0}});
+jQuery.fn.unhighlight=function(a){var c={className:"highlight",element:"span"};jQuery.extend(c,a);return this.find(c.element+"."+c.className).each(function(){var b=this.parentNode;b.replaceChild(this.firstChild,this);b.normalize()}).end()};
+jQuery.fn.highlight=function(a,c){var b={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(b,c);if(a.constructor===String)a=[a];a=jQuery.grep(a,function(f){return f!=""});if(a.length==0)return this;var e=b.caseSensitive?"":"i",d="("+a.join("|")+")";if(b.wordsOnly)d="\\b"+d+"\\b";var g=RegExp(d,e);return this.each(function(){jQuery.highlight(this,g,b.element,b.className)})};
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/jquery.cookie.js b/applications/content/template/docbook/webhelp/docs/common/jquery/jquery.cookie.js
new file mode 100644
index 0000000..bada7bf
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/jquery.cookie.js
@@ -0,0 +1,93 @@
+/**
+ * Cookie plugin
+ *
+ * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ */
+
+/**
+ * Create a cookie with the given name and value and other optional parameters.
+ *
+ * @example $.cookie('the_cookie', 'the_value');
+ * @desc Set the value of a cookie.
+ * @example $.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery.com', secure: true});
+ * @desc Create a cookie with all available options.
+ * @example $.cookie('the_cookie', 'the_value');
+ * @desc Create a session cookie.
+ * @example $.cookie('the_cookie', null);
+ * @desc Delete a cookie by passing null as value.
+ *
+ * @param String name The name of the cookie.
+ * @param String value The value of the cookie.
+ * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
+ * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
+ *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
+ *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
+ *                             when the the browser exits.
+ * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
+ * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
+ * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
+ *                        require a secure protocol (like HTTPS).
+ * @type undefined
+ *
+ * @name $.cookie
+ * @cat Plugins/Cookie
+ * @author Klaus Hartl/klaus.hartl@stilbuero.de
+ */
+
+/**
+ * Get the value of a cookie with the given name.
+ *
+ * @example $.cookie('the_cookie');
+ * @desc Get the value of a cookie.
+ *
+ * @param String name The name of the cookie.
+ * @return The value of the cookie.
+ * @type String
+ *
+ * @name $.cookie
+ * @cat Plugins/Cookie
+ * @author Klaus Hartl/klaus.hartl@stilbuero.de
+ */
+jQuery.cookie = function(name, value, options) {
+    if (typeof value != 'undefined') { // name and value given, set cookie
+        options = options || {};
+        if (value === null) {
+            value = '';
+            options.expires = -1;
+        }
+        var expires = '';
+        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
+            var date;
+            if (typeof options.expires == 'number') {
+                date = new Date();
+                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
+            } else {
+                date = options.expires;
+            }
+            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
+        }
+        var path = options.path ? '; path=' + options.path : '';
+        var domain = options.domain ? '; domain=' + options.domain : '';
+        var secure = options.secure ? '; secure' : '';
+        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
+
+    } else { // only name given, get cookie
+        var cookieValue = null;
+        if (document.cookie && document.cookie != '') {
+            var cookies = document.cookie.split(';');
+            for (var i = 0; i < cookies.length; i++) {
+                var cookie = jQuery.trim(cookies[i]);
+                // Does this cookie string begin with the name we want?
+                if (cookie.substring(0, name.length + 1) == (name + '=')) {
+                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
+                    break;
+                }
+            }
+        }
+        return cookieValue;
+    }
+};
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-anim_basic_16x16.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-anim_basic_16x16.gif
new file mode 100644
index 0000000..085ccae
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-anim_basic_16x16.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 0000000..5b5dab2
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png
new file mode 100644
index 0000000..47acaad
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png
new file mode 100644
index 0000000..9d149b1
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png
new file mode 100644
index 0000000..0149515
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png
new file mode 100644
index 0000000..4443fdc1
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png
new file mode 100644
index 0000000..81ecc36
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png
new file mode 100644
index 0000000..4f3faf8
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
new file mode 100644
index 0000000..38c3833
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png
new file mode 100644
index 0000000..6f4bd87
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png
new file mode 100644
index 0000000..09d1cdc
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png
new file mode 100644
index 0000000..bd2cf07
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_6da8d5_256x240.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_6da8d5_256x240.png
new file mode 100644
index 0000000..3d6f567
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_6da8d5_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_cd0a0a_256x240.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_cd0a0a_256x240.png
new file mode 100644
index 0000000..2ab019b
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_cd0a0a_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_d8e7f3_256x240.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_d8e7f3_256x240.png
new file mode 100644
index 0000000..ad2dc6f
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_d8e7f3_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png
new file mode 100644
index 0000000..c7c53cb
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css
new file mode 100644
index 0000000..0b17363
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css
@@ -0,0 +1,398 @@
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+*/
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=5px&bgColorHeader=5c9ccc&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=55&borderColorHeader=4297d7&fcHeader=ffffff&iconColorHeader=d8e7f3&bgColorContent=fcfdfd&bgTextureContent=06_inset_hard.png&bgImgOpacityContent=100&borderColorContent=a6c9e2&fcContent=222222&iconColorContent=469bdd&bgColorDefault=dfeffc&bgTextureDefault=02_glass.png&bgImgOpacityDefault=85&borderColorDefault=c5dbec&fcDefault=2e6e9e&iconColorDefault=6da8d5&bgColorHover=d0e5f5&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=79b7e7&fcHover=1d5987&iconColorHover=217bc0&bgColorActive=f5f8f9&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=100&borderColorActive=79b7e7&fcActive=e17009&iconColorActive=f9bd01&bgColorHighlight=fbec88&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=fad42e&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+*/
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; }
+.ui-widget .ui-widget { font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; }
+.ui-widget-content { border: 1px solid #a6c9e2; background: #fcfdfd url(images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x; color: #222222; }
+.ui-widget-content a { color: #222222; }
+.ui-widget-header { border: 1px solid #4297d7; background: #5c9ccc url(images/ui-bg_gloss-wave_55_5c9ccc_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #c5dbec; background: #dfeffc url(images/ui-bg_glass_85_dfeffc_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2e6e9e; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2e6e9e; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #79b7e7; background: #d0e5f5 url(images/ui-bg_glass_75_d0e5f5_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1d5987; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #1d5987; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #79b7e7; background: #f5f8f9 url(images/ui-bg_inset-hard_100_f5f8f9_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #e17009; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #e17009; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fad42e; background: #fbec88 url(images/ui-bg_flat_55_fbec88_40x100.png) 50% 50% repeat-x; color: #363636; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_469bdd_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_469bdd_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_d8e7f3_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_6da8d5_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_217bc0_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_f9bd01_256x240.png); }
+.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; }
+.ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; }
+.ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
+.ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+.ui-corner-top { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; }
+.ui-corner-bottom { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+.ui-corner-right {  -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+.ui-corner-left { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
+.ui-corner-all { -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }
+
+/* Overlays */
+.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Resizable
+----------------------------------*/
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Selectable
+----------------------------------*/
+.ui-selectable-helper { border:1px dotted black }
+/* Autocomplete
+----------------------------------*/
+.ui-autocomplete { position: absolute; cursor: default; }	
+.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/* Menu
+----------------------------------*/
+.ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+}
+.ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/* Button
+----------------------------------*/
+
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
+.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.ui-buttonset { margin-right: 7px; }
+.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+
+
+
+
+
+/* Dialog
+----------------------------------*/
+.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } 
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+/* Tabs
+----------------------------------*/
+.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-hide { display: none !important; }
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/file.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/file.gif
new file mode 100644
index 0000000..bd4f965
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/file.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/folder-closed.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/folder-closed.gif
new file mode 100644
index 0000000..be6b59c
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/folder-closed.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/folder-closed2.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/folder-closed2.gif
new file mode 100644
index 0000000..5411078
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/folder-closed2.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/folder.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/folder.gif
new file mode 100644
index 0000000..be6b59c
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/folder.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/folder2.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/folder2.gif
new file mode 100644
index 0000000..2b31631
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/folder2.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/minus.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/minus.gif
new file mode 100644
index 0000000..47fb7b7
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/minus.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/plus.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/plus.gif
new file mode 100644
index 0000000..6906621
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/plus.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-black-line.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-black-line.gif
new file mode 100644
index 0000000..e549687
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-black-line.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-black.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-black.gif
new file mode 100644
index 0000000..d549b9f
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-black.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-default-line.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-default-line.gif
new file mode 100644
index 0000000..37114d3
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-default-line.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-default.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-default.gif
new file mode 100644
index 0000000..a12ac52
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-default.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-famfamfam-line.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-famfamfam-line.gif
new file mode 100644
index 0000000..6e289ce
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-famfamfam-line.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-famfamfam.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-famfamfam.gif
new file mode 100644
index 0000000..0cb178e
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-famfamfam.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-gray-line.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-gray-line.gif
new file mode 100644
index 0000000..3760044
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-gray-line.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-gray.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-gray.gif
new file mode 100644
index 0000000..cfb8a2f
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-gray.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-red-line.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-red-line.gif
new file mode 100644
index 0000000..df9e749
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-red-line.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-red.gif b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-red.gif
new file mode 100644
index 0000000..3bbb3a1
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/images/treeview-red.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/jquery.treeview.css b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/jquery.treeview.css
new file mode 100644
index 0000000..d7e2c00
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/jquery.treeview.css
@@ -0,0 +1,85 @@
+.treeview, .treeview ul { 
+	padding: 0;
+	margin: 0;
+	list-style: none;
+}
+
+.treeview ul {
+	background-color: white;
+	margin-top: 4px;
+}
+
+.treeview .hitarea {
+	background: url(images/treeview-default.gif) -64px -25px no-repeat;
+	height: 16px;
+	width: 16px;
+	margin-left: -16px;
+	float: left;
+	cursor: pointer;
+}
+/* fix for IE6 */
+* html .hitarea {
+	display: inline;
+	float:none;
+}
+
+.treeview li { 
+	margin: 0;
+	padding: 3px 0 3px 16px;
+}
+
+.treeview a.selected {
+	background-color: #eee;
+}
+
+#treecontrol { margin: 1em 0; display: none; }
+
+.treeview .hover { color: red; cursor: pointer; }
+
+.treeview li { background: url(images/treeview-default-line.gif) 0 0 no-repeat; }
+.treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; }
+
+.treeview .expandable-hitarea { background-position: -80px -3px; }
+
+.treeview li.last { background-position: 0 -1766px }
+.treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url(images/treeview-default.gif); }  
+.treeview li.lastCollapsable { background-position: 0 -111px }
+.treeview li.lastExpandable { background-position: -32px -67px }
+
+.treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0; }
+
+.treeview-red li { background-image: url(images/treeview-red-line.gif); }
+.treeview-red .hitarea, .treeview-red li.lastCollapsable, .treeview-red li.lastExpandable { background-image: url(images/treeview-red.gif); } 
+
+.treeview-black li { background-image: url(images/treeview-black-line.gif); }
+.treeview-black .hitarea, .treeview-black li.lastCollapsable, .treeview-black li.lastExpandable { background-image: url(images/treeview-black.gif); }  
+
+.treeview-gray li { background-image: url(images/treeview-gray-line.gif); }
+.treeview-gray .hitarea, .treeview-gray li.lastCollapsable, .treeview-gray li.lastExpandable { background-image: url(images/treeview-gray.gif); } 
+
+.treeview-famfamfam li { background-image: url(images/treeview-famfamfam-line.gif); }
+.treeview-famfamfam .hitarea, .treeview-famfamfam li.lastCollapsable, .treeview-famfamfam li.lastExpandable { background-image: url(images/treeview-famfamfam.gif); } 
+
+
+.filetree li { padding: 3px 0 2px 16px; }
+.filetree span.folder, .filetree span.file { padding: 1px 0 1px 16px; display: block; }
+.filetree span.folder { background: url(images/folder.gif) 0 0 no-repeat; }
+.filetree li.expandable span.folder { background: url(images/folder-closed.gif) 0 0 no-repeat; }
+.filetree span.file { background: url(images/file.gif) 0 0 no-repeat; }
+
+html, body {height:100%; margin: 0; padding: 0; }
+
+/*
+html>body {
+	font-size: 16px;
+	font-size: 68.75%;
+} Reset Base Font Size */
+  /*
+body {
+	font-family: Verdana, helvetica, arial, sans-serif;
+	font-size: 68.75%;
+	background: #fff;
+	color: #333;
+}   */ 
+
+a img { border: none; }
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/jquery.treeview.min.js b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/jquery.treeview.min.js
new file mode 100644
index 0000000..f9b490d
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/jquery/treeview/jquery.treeview.min.js
@@ -0,0 +1,16 @@
+/*
+ * Treeview 1.4 - jQuery plugin to hide and show branches of a tree
+ * 
+ * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
+ * http://docs.jquery.com/Plugins/Treeview
+ *
+ * Copyright (c) 2007 Jörn Zaefferer
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ *
+ * Revision: $Id$
+ * kasunbg: changed the cookieid name
+ *
+ */;(function($){$.extend($.fn,{swapClass:function(c1,c2){var c1Elements=this.filter('.'+c1);this.filter('.'+c2).removeClass(c2).addClass(c1);c1Elements.removeClass(c1).addClass(c2);return this;},replaceClass:function(c1,c2){return this.filter('.'+c1).removeClass(c1).addClass(c2).end();},hoverClass:function(className){className=className||"hover";return this.hover(function(){$(this).addClass(className);},function(){$(this).removeClass(className);});},heightToggle:function(animated,callback){animated?this.animate({height:"toggle"},animated,callback):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();if(callback)callback.apply(this,arguments);});},heightHide:function(animated,callback){if(animated){this.animate({height:"hide"},animated,callback);}else{this.hide();if(callback)this.each(callback);}},prepareBranches:function(settings){if(!settings.prerendered){this.filter(":last-child:not(ul)").addClass(CLASSES.last);this.filter((settings.collapsed?"":"."+CLASSES.closed)+":not(."+CLASSES.open+")").find(">ul").hide();}return this.filter(":has(>ul)");},applyClasses:function(settings,toggler){this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event){toggler.apply($(this).next());}).add($("a",this)).hoverClass();if(!settings.prerendered){this.filter(":has(>ul:hidden)").addClass(CLASSES.expandable).replaceClass(CLASSES.last,CLASSES.lastExpandable);this.not(":has(>ul:hidden)").addClass(CLASSES.collapsable).replaceClass(CLASSES.last,CLASSES.lastCollapsable);this.prepend("<div class=\""+CLASSES.hitarea+"\"/>").find("div."+CLASSES.hitarea).each(function(){var classes="";$.each($(this).parent().attr("class").split(" "),function(){classes+=this+"-hitarea ";});$(this).addClass(classes);});}this.find("div."+CLASSES.hitarea).click(toggler);},treeview:function(settings){if(typeof(window.treeCookieId) === 'undefined' || window.treeCookieId === ""){treeCookieId = "treeview";} settings=$.extend({cookieId: treeCookieId},settings);if(settings.add){return this.trigger("add",[settings.add]);}if(settings.toggle){var callback=settings.toggle;settings.toggle=function(){return callback.apply($(this).parent()[0],arguments);};}function treeController(tree,control){function handler(filter){return function(){toggler.apply($("div."+CLASSES.hitarea,tree).filter(function(){return filter?$(this).parent("."+filter).length:true;}));return false;};}$("a:eq(0)",control).click(handler(CLASSES.collapsable));$("a:eq(1)",control).click(handler(CLASSES.expandable));$("a:eq(2)",control).click(handler());}function toggler(){$(this).parent().find(">.hitarea").swapClass(CLASSES.collapsableHitarea,CLASSES.expandableHitarea).swapClass(CLASSES.lastCollapsableHitarea,CLASSES.lastExpandableHitarea).end().swapClass(CLASSES.collapsable,CLASSES.expandable).swapClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightToggle(settings.animated,settings.toggle);if(settings.unique){$(this).parent().siblings().find(">.hitarea").replaceClass(CLASSES.collapsableHitarea,CLASSES.expandableHitarea).replaceClass(CLASSES.lastCollapsableHitarea,CLASSES.lastExpandableHitarea).end().replaceClass(CLASSES.collapsable,CLASSES.expandable).replaceClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightHide(settings.animated,settings.toggle);}}function serialize(){function binary(arg){return arg?1:0;}var data=[];branches.each(function(i,e){data[i]=$(e).is(":has(>ul:visible)")?1:0;});$.cookie(settings.cookieId,data.join(""));}function deserialize(){var stored=$.cookie(settings.cookieId);if(stored){var data=stored.split("");branches.each(function(i,e){$(e).find(">ul")[parseInt(data[i])?"show":"hide"]();});}}this.addClass("treeview");var branches=this.find("li").prepareBranches(settings);switch(settings.persist){case"cookie":var toggleCallback=settings.toggle;settings.toggle=function(){serialize();if(toggleCallback){toggleCallback.apply(this,arguments);}};deserialize();break;case"location":var current=this.find("a").filter(function(){return this.href.toLowerCase()==location.href.toLowerCase();});if(current.length){current.addClass("selected").parents("ul, li").add(current.next()).show();}break;}branches.applyClasses(settings,toggler);if(settings.control){treeController(this,settings.control);$(settings.control).show();}return this.bind("add",function(event,branches){$(branches).prev().removeClass(CLASSES.last).removeClass(CLASSES.lastCollapsable).removeClass(CLASSES.lastExpandable).find(">.hitarea").removeClass(CLASSES.lastCollapsableHitarea).removeClass(CLASSES.lastExpandableHitarea);$(branches).find("li").andSelf().prepareBranches(settings).applyClasses(settings,toggler);});}});var CLASSES=$.fn.treeview.classes={open:"open",closed:"closed",expandable:"expandable",expandableHitarea:"expandable-hitarea",lastExpandableHitarea:"lastExpandable-hitarea",collapsable:"collapsable",collapsableHitarea:"collapsable-hitarea",lastCollapsableHitarea:"lastCollapsable-hitarea",lastCollapsable:"lastCollapsable",lastExpandable:"lastExpandable",last:"last",hitarea:"hitarea"};$.fn.Treeview=$.fn.treeview;})(jQuery);
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/docs/common/main.js b/applications/content/template/docbook/webhelp/docs/common/main.js
new file mode 100644
index 0000000..714cdee
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/common/main.js
@@ -0,0 +1,276 @@
+/**
+ * Miscellaneous js functions for WebHelp
+ * Kasun Gajasinghe, http://kasunbg.blogspot.com
+ * David Cramer, http://www.thingbag.net
+ *
+ */
+
+//Turn ON and OFF the animations for Show/Hide Sidebar. Extend this to other anime as well if any.
+var noAnimations=false;
+
+$(document).ready(function() {
+	// When you click on a link to an anchor, scroll down 
+	// 105 px to cope with the fact that the banner
+	// hides the top 95px or so of the page.
+	// This code deals with the problem when 
+	// you click on a link within a page.
+	$('a[href*=#]').click(function() {
+		if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
+		    && location.hostname == this.hostname) {
+		    var $target = $(this.hash);
+		    $target = $target.length && $target
+			|| $('[name=' + this.hash.slice(1) +']');
+		if (!(this.hash == "#searchDiv" || this.hash == "#treeDiv"  || this.hash == "") && $target.length) {
+			var targetOffset = $target.offset().top - 120;
+			$('html,body')
+			    .animate({scrollTop: targetOffset}, 200);
+			return false;
+		    }
+		}
+	    });
+
+    //  $("#showHideHighlight").button(); //add jquery button styling to 'Go' button
+    //Generate tabs in nav-pane with JQuery
+    $(function() {
+        $("#tabs").tabs({
+            cookie: {
+                expires: 2 // store cookie for 2 days.
+            }
+        });
+    });
+
+    //Generate the tree
+    $("#ulTreeDiv").attr("style", "");
+    $("#tree").treeview({
+        collapsed: true,
+        animated: "medium",
+        control: "#sidetreecontrol",
+        persist: "cookie"
+    });
+
+    //after toc fully styled, display it. Until loading, a 'loading' image will be displayed
+    $("#tocLoading").attr("style", "display:none;");
+    //    $("#ulTreeDiv").attr("style","display:block;");
+
+    //.searchButton is the css class applied to 'Go' button 
+    $(function() {
+        $("button", ".searchButton").button();
+
+        $("button", ".searchButton").click(function() {
+            return false;
+        });
+    });
+
+    //'ui-tabs-1' is the cookie name which is used for the persistence of the tabs.(Content/Search tab)
+    if ($.cookie('ui-tabs-1') === '1') {    //search tab is active
+        if ($.cookie('textToSearch') != undefined && $.cookie('textToSearch').length > 0) {
+            document.getElementById('textToSearch').value = $.cookie('textToSearch');
+            Verifie('searchForm');
+            searchHighlight($.cookie('textToSearch'));
+            $("#showHideHighlight").css("display", "block");
+        }
+    }
+
+    syncToc(); //Synchronize the toc tree with the content pane, when loading the page.
+    //$("#doSearch").button(); //add jquery button styling to 'Go' button
+
+    // When you click on a link to an anchor, scroll down 
+    // 105 px to cope with the fact that the banner
+    // hides the top 95px or so of the page.
+    // This code deals with the problem when 
+    // you click on a link from another page. 
+    var hash = window.location.hash;
+    if(hash){ 
+	var targetOffset = $(hash).offset().top - 120;
+	$('html,body').animate({scrollTop: targetOffset}, 200);
+	return false;
+    }
+});
+
+
+/**
+ * If an user moved to another page by clicking on a toc link, and then clicked on #searchDiv,
+ * search should be performed if the cookie textToSearch is not empty.
+ */
+function doSearch() {
+//'ui-tabs-1' is the cookie name which is used for the persistence of the tabs.(Content/Search tab)
+    if ($.cookie('textToSearch') != undefined && $.cookie('textToSearch').length > 0) {
+        document.getElementById('textToSearch').value = $.cookie('textToSearch');
+        Verifie('searchForm');
+    }
+}
+
+/**
+ * Synchronize with the tableOfContents
+ */
+function syncToc() {
+    var a = document.getElementById("webhelp-currentid");
+    if (a != undefined) {
+        //Expanding the child sections of the selected node.
+        var nodeClass = a.getAttribute("class");
+        if (nodeClass != null && !nodeClass.match(/collapsable/)) {
+            a.setAttribute("class", "collapsable");
+            //remove display:none; css style from <ul> block in the selected node.
+            var ulNode = a.getElementsByTagName("ul")[0];
+            if (ulNode != undefined) {
+                if (ulNode.hasAttribute("style")) {
+                    ulNode.setAttribute("style", "display: block; background-color: #D8D8D8 !important;");
+                } else {
+                    var ulStyle = document.createAttribute("style");
+                    ulStyle.nodeValue = "display: block; background-color: #D8D8D8 !important;";
+                    ulNode.setAttributeNode(ulStyle);
+            }   }
+            //adjust tree's + sign to -
+            var divNode = a.getElementsByTagName("div")[0];
+            if (divNode != undefined) {
+                if (divNode.hasAttribute("class")) {
+                    divNode.setAttribute("class", "hitarea collapsable-hitarea");
+                } else {
+                    var divClass = document.createAttribute("class");
+                    divClass.nodeValue = "hitarea collapsable-hitarea";
+                    divNode.setAttributeNode(divClass);
+            }   }
+            //set persistence cookie when a node is auto expanded
+            //     setCookieForExpandedNode("webhelp-currentid");
+        }
+        var b = a.getElementsByTagName("a")[0];
+
+        if (b != undefined) {
+            //Setting the background for selected node.
+            var style = a.getAttribute("style", 2);
+            if (style != null && !style.match(/background-color: Background;/)) {
+                a.setAttribute("style", "background-color: #D8D8D8;  " + style);
+                b.setAttribute("style", "color: black;");
+            } else if (style != null) {
+                a.setAttribute("style", "background-color: #D8D8D8;  " + style);
+                b.setAttribute("style", "color: black;");
+            } else {
+                a.setAttribute("style", "background-color: #D8D8D8;  ");
+                b.setAttribute("style", "color: black;");
+            }
+        }
+
+        //shows the node related to current content.
+        //goes a recursive call from current node to ancestor nodes, displaying all of them.
+        while (a.parentNode && a.parentNode.nodeName) {
+            var parentNode = a.parentNode;
+            var nodeName = parentNode.nodeName;
+
+            if (nodeName.toLowerCase() == "ul") {
+                parentNode.setAttribute("style", "display: block;");
+            } else if (nodeName.toLocaleLowerCase() == "li") {
+                parentNode.setAttribute("class", "collapsable");
+                parentNode.firstChild.setAttribute("class", "hitarea collapsable-hitarea ");
+            }
+            a = parentNode;
+}   }  }
+/*
+ function setCookieForExpandedNode(nodeName) {
+ var tocDiv = document.getElementById("tree"); //get table of contents Div
+ var divs = tocDiv.getElementsByTagName("div");
+ var matchedDivNumber;
+ var i;
+ for (i = 0; i < divs.length; i++) {        //1101001
+ var div = divs[i];
+ var liNode = div.parentNode;
+ }
+//create a new cookie if a treeview does not exist
+ if ($.cookie(treeCookieId) == null || $.cookie(treeCookieId) == "") {
+ var branches = $("#tree").find("li");//.prepareBranches(treesettings);
+ var data = [];
+ branches.each(function(i, e) {
+ data[i] = $(e).is(":has(>ul:visible)") ? 1 : 0;
+ });
+ $.cookie(treeCookieId, data.join(""));
+
+ }
+
+ if (i < divs.length) {
+ var treeviewCookie = $.cookie(treeCookieId);
+ var tvCookie1 = treeviewCookie.substring(0, i);
+ var tvCookie2 = treeviewCookie.substring(i + 1);
+ var newTVCookie = tvCookie1 + "1" + tvCookie2;
+ $.cookie(treeCookieId, newTVCookie);
+ }
+ }       */
+
+/**
+ * Code for Show/Hide TOC
+ *
+ */
+function showHideToc() {
+    var showHideButton = $("#showHideButton");
+    var leftNavigation = $("#sidebar"); //hide the parent div of leftnavigation, ie sidebar
+    var content = $("#content");
+    var animeTime=75
+
+    if (showHideButton != undefined && showHideButton.hasClass("pointLeft")) {
+        //Hide TOC
+        showHideButton.removeClass('pointLeft').addClass('pointRight');
+	
+        if(noAnimations) {
+            leftNavigation.css("display", "none");
+            content.css("margin", "125px 0 0 0");
+        } else {
+            leftNavigation.hide(animeTime);
+            content.animate( { "margin-left": 0 }, animeTime);
+        }
+        showHideButton.attr("title", "Show Sidebar");
+    } else {
+        //Show the TOC
+        showHideButton.removeClass('pointRight').addClass('pointLeft');
+        if(noAnimations) {
+            content.css("margin", "125px 0 0 280px");
+            leftNavigation.css("display", "block");
+        } else {
+            content.animate( { "margin-left": '280px' }, animeTime);
+            leftNavigation.show(animeTime);
+        }
+        showHideButton.attr("title", "Hide Sidebar");
+    }
+}
+
+/**
+ * Code for search highlighting
+ */
+var highlightOn = true;
+function searchHighlight(searchText) {
+    highlightOn = true;
+    if (searchText != undefined) {
+        var wList;
+        var sList = new Array();    //stem list 
+        //Highlight the search terms
+        searchText = searchText.toLowerCase().replace(/<\//g, "_st_").replace(/\$_/g, "_di_").replace(/\.|%2C|%3B|%21|%3A|@|\/|\*/g, " ").replace(/(%20)+/g, " ").replace(/_st_/g, "</").replace(/_di_/g, "%24_")
+        searchText = searchText.replace(/  +/g, " ");
+        searchText = searchText.replace(/ $/, "").replace(/^ /, "");
+
+        wList = searchText.split(" ");
+        $("#content").highlight(wList); //Highlight the search input
+
+        if (typeof stemmer != "undefined") {
+            //Highlight the stems
+            for (var i = 0; i < wList.length; i++) {
+                var stemW = stemmer(wList[i]);
+                sList.push(stemW);
+            }
+        } else {
+            sList = wList;
+        }
+        $("#content").highlight(sList); //Highlight the search input's all stems
+    }
+}
+
+function searchUnhighlight() {
+    highlightOn = false;
+    //unhighlight the search input's all stems
+    $("#content").unhighlight();
+    $("#content").unhighlight();
+}
+
+function toggleHighlight() {
+    if (highlightOn) {
+        searchUnhighlight();
+    } else {
+        searchHighlight($.cookie('textToSearch'));
+    }
+}
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch01.html b/applications/content/template/docbook/webhelp/docs/content/ch01.html
new file mode 100644
index 0000000..3ab56e7
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch01.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>Introduction</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><meta name="description" content="Overview of the package."></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="prev" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="next" href="ch02.html" title="Using the package"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Introduction</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="index.html">Prev</a> 
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch02.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="chapter"><div xmlns="" class="titlepage"><div><div><h1 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="id375622"></a>Introduction</h1></div></div></div>
+<p>A common requirement for technical publications groups is to produce a Web-based help
+      format that includes a table of contents pane, a search feature, and an index similar to what
+      you get from the Microsoft HTML Help (.chm) format or Eclipse help. If the content is help for
+      a Web application that is not exposed to the Internet or requires that the user be logged in,
+      then it is impossible to use services like Google to add search. <a id="id375647" class="indexterm"></a>
+      </p><div class="itemizedlist"><p class="title"><strong>Features</strong></p><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Sophisticated CSS-based page layout</p></li><li class="listitem"><p>Client-side search.<a id="id375673" class="indexterm"></a></p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Provides full content search of the documentation. Shows the search results with
+                links to chunked pages, and a small description.</p></li><li class="listitem"><p>Search results scoring/rating - The results are weighted according to how many
+                times the words in search query appears in it, is it bold or not, is in index terms
+                etc. The score out of 5 is shown by small colored boxes after each
+                search-result.</p></li><li class="listitem"><p>Search results can include brief descriptions of the target.<a id="id375711" class="indexterm"></a></p></li><li class="listitem"><p>Stemming support for English, French, and German. Stemming support can be added
+                for other languages by implementing a stemmer.<a id="id375732" class="indexterm"></a></p></li><li class="listitem"><p>Support for Chinese, Japanese, and Korean languages using code from the Lucene search
+                engine.</p></li><li class="listitem"><p>Search highlighting shows where the searched term appears in the results.
+                  <a id="id375759" class="indexterm"></a></p></li></ul></div></li><li class="listitem"><p>Table of contents (TOC) pane with collapsible toc tree.</p></li><li class="listitem"><p>Auto-synchronization of content pane and TOC.</p></li><li class="listitem"><p>Nicely placed small forward, backward, top links</p></li><li class="listitem"><p>TOC and search pane implemented without the use of a frameset.</p></li><li class="listitem"><p>An Ant script to generate output. You can use this
+            build file by importing it into your own or use it as a
+            model for integrating this output format into your own
+            build system. Alternatively, you can use this Ant script
+            as a template for creating your own build script or you
+            can use the <a class="ulink" href="http://docbkx-tools.sourceforge.net/docbkx-samples/manual.html" target="_top">Docbkx Maven plugin</a>.</p></li></ul></div></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li id="webhelp-currentid"><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch02.html b/applications/content/template/docbook/webhelp/docs/content/ch02.html
new file mode 100644
index 0000000..433184e
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch02.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>Using the package</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="prev" href="ch01.html" title="Introduction"></link><link rel="next" href="ch02s01.html" title="Generating webhelp output"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Using the package</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch01.html">Prev</a> 
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch02s01.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="chapter"><div xmlns="" class="titlepage"><div><div><h1 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="id375821"></a>Using the package</h1></div></div></div>
+<div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ch02s01.html">Generating webhelp output</a></span></dt><dt><span class="section"><a href="ch02s02.html">Using and customizing the output</a></span></dt><dd><dl><dt><span class="section"><a href="ch02s02s01.html">Recommended Apache configurations</a></span></dt></dl></dd><dt><span class="section"><a href="ch02s03.html">Search indexing</a></span></dt><dt><span class="section"><a href="ch02s04.html">Adding support for other (non-CJKV) languages</a></span></dt><dt><span class="section"><a href="ch02s05.html">Adding images</a></span></dt></dl></div><p class="summary">The following sections describe how to
+      install and use the package on Windows. </p></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch02s01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li id="webhelp-currentid"><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch02s01.html b/applications/content/template/docbook/webhelp/docs/content/ch02s01.html
new file mode 100644
index 0000000..281937d
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch02s01.html
@@ -0,0 +1,199 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>Generating webhelp output</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><meta name="description" content="Installation instructions"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="ch02.html" title="Using the package"></link><link rel="prev" href="ch02.html" title="Using the package"></link><link rel="next" href="ch02s02.html" title="Using and customizing the output"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Using the package</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch02.html">Prev</a>
+                                        |
+                                        <a accesskey="u" class="navLinkUp" tabindex="5" href="ch02.html">Up</a>
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch02s02.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="section"><div xmlns="" class="titlepage"><div><div><h2 xmlns="http://www.w3.org/1999/xhtml" class="title" style="clear: both"><a id="id375833"></a>Generating webhelp output</h2></div></div></div>
+<div class="procedure"><a id="id375868"></a><p class="title"><strong>Procedure 1. To install the package on Windows</strong></p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The examples in this procedure assume a Windows installation, but the process is the
+            same in other environments, <span class="foreignphrase"><em class="foreignphrase">mutatis mutandis</em></span>.</p><p>In addition to using the ant
+              <code class="filename">build.xml</code> provided,  you can also
+            use the <a class="ulink" href="http://docbkx-tools.sourceforge.net/docbkx-samples/manual.html" target="_top">Docbkx Maven plugin</a> to generate
+            webhelp.</p></div><ol class="procedure" type="1"><li class="step"><p>If necessary, install <a class="ulink" href="http://www.java.com/en/download/manual.jsp" target="_top">Java
+              1.6</a> or higher.</p><ol type="a" class="substeps"><li class="step"><p>Confirm that Java is installed and in your <code class="envar">PATH</code> by typing the
+                following at a command prompt: </p><pre class="programlisting">java -version</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>To build the indexer, you must have the JDK.</p></div></li></ol></li><li class="step"><p>If necessary, install <a class="ulink" href="http://ant.apache.org/bindownload.cgi" target="_top">Apache
+              Ant</a> 1.8.0 or higher. See <a class="ulink" href="http://ant.apache.org/manual/install.html" target="_top">Ant installation instructions</a>.</p><ol type="a" class="substeps"><li class="step"><p>Unzip the Ant binary distribution to a convenient location on your system. For
+                example: <code class="filename">c:\Program Files</code>.</p></li><li class="step"><p>Set the environment variable <code class="envar">ANT_HOME</code> to the top-level Ant
+                directory. For example: <code class="filename">c:\Program Files\apache-ant-1.8.0</code>. </p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>See <a class="ulink" href="http://support.microsoft.com/kb/310519" target="_top">How To Manage
+                      Environment Variables in Windows XP</a> for information on setting
+                    environment variables.</p></div></li><li class="step"><p>Add the Ant <code class="filename">bin</code> directory to your <code class="envar">PATH</code>. For
+                example: <code class="filename">c:\Program Files\apache-ant-1.8.0\bin</code></p></li><li class="step"><p>Confirm that Ant is installed by typing the following at a command prompt:
+                </p><pre class="programlisting">ant -version</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If you see a message about the file <code class="filename">tools.jar</code> being
+                  missing, you can safely ignore it.</p></div></li></ol></li><li class="step"><p>Download <a class="ulink" href="http://prdownloads.sourceforge.net/saxon/saxon6-5-5.zip" target="_top">Saxon
+              6.5.x</a> and unzip the distribution to a convenient location on your file system.
+            You will use the path to <code class="filename">saxon.jar</code> in <a class="xref" href="ch02s01.html#edit-build-properties" title="Step 4">Step 4</a> below.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The <code class="filename">build.xml</code> has only been tested with Saxon 6.5, though
+                it could be adapted to work with other XSLT processors. However, when you generate
+                output, the Saxon jar must <span class="bold"><strong>not</strong></span> be in your
+                  <code class="envar">CLASSPATH</code>.</p></div></li><li class="step"><a id="edit-build-properties"></a><p>In a text editor, edit the
+              <code class="filename">build.properties</code> file in the
+            webhelp directory and make the changes indicated by the comments.</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>You must set appropriate values for
+                  <code class="code">xslt-processor-classpath</code>,
+                  <code class="code">xercesImpl.jar</code>, and
+                  <code class="code">xml-apis.jar</code>.</p></div><p>See the DocBook <a class="ulink" href="../../../doc/html/webhelp.html" target="_top">reference
+              documentation</a> for detailed information about the
+            available webhelp and other parameters. Note that not all
+            DocBook parameters are passed in to the xsls by the
+              <code class="filename">build.xml</code> by default. You may need
+            to modify the <code class="filename">build.xml</code> to pass in
+            some DocBook
+            parameters.</p><pre class="programlisting">
+# The path (relative to the build.xml file) to your input document.
+# To use your own input document, create a build.xml file of your own
+# and import this build.xml.
+input-xml=docsrc/readme.xml
+
+# The directory in which to put the output files. 
+# This directory is created if it does not exist.
+output-dir=docs
+
+# If you are using a customization layer that imports webhelp.xsl, use
+# this property to point to it. 
+stylesheet-path=${ant.file.dir}/xsl/webhelp.xsl
+
+# If your document has image directories that need to be copied
+# to the output directory, you can list patterns here. 
+# See the Ant documentation for fileset for documentation
+# on patterns.
+#input-images-dirs=images/**,figures/**,graphics/**
+
+# By default, the ant script assumes your images are stored
+# in the same directory as the input-xml. If you store your
+# image directories in another directory, specify it here.
+# and uncomment this line.
+#input-images-basedir=/path/to/image/location
+
+# Modify the follosing so that they point to your local
+# copy of the jars indicated:
+# * Saxon 6.5 jar
+# * Xerces 2: xercesImpl.jar
+# * xml-commons: xml-apis.jar
+xslt-processor-classpath=/usr/share/java/saxon-6.5.5.jar 
+xercesImpl.jar=/usr/share/java/xercesImpl.jar
+xml-apis.jar=/usr/share/java/xml-apis.jar
+
+# For non-ns version only, this validates the document 
+# against a dtd.
+validate-against-dtd=true
+
+# The extension for files to be indexed (html/htm/xhtml etc.)
+html.extension=html
+
+# Set this to false if you don't need a search tab.
+webhelp.include.search.tab=true
+
+# indexer-language is used to tell the search indexer which language
+# the docbook is written.  This will be used to identify the correct
+# stemmer, and punctuations that differs from language to language.
+# see the documentation for details. en=English, fr=French, de=German,
+# zh=Chinese, ja=Japanese etc.  
+webhelp.indexer.language=en
+
+# Enables/Disables stemming
+# Stemming allows better querying for the search
+enable.stemming=true
+
+# Set admon.graphics to 1 to user graphics for note, tip, etc.
+admon.graphics=0
+suppress.footer.navigation=0</pre></li><li class="step"><p>Test the package by running the command <code class="code">ant webhelp
+              -Doutput-dir=test-ouput</code> at the command line in the webhelp directory. It should
+            generate a copy of this documentation in the <code class="filename">doc</code>
+            directory. Type <code class="code">start test-output\index.html</code> to open the output in a
+            browser. Once you have confirmed that the process worked, you can delete the <code class="filename">test-output</code> directory. </p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>The Saxon 6.5 jar should <span class="emphasis"><em>not</em></span> be in your
+                  <code class="envar">CLASSPATH</code> when you generate the webhelp output. If you have any
+                problems, try running ant with an empty <code class="envar">CLASSPATH</code>.</p></div></li><li class="step"><p>To process your own document, simply refer to this package from another
+              <code class="filename">build.xml</code> in arbitrary location on your system:</p><ol type="a" class="substeps"><li class="step"><p>Create a new <code class="filename">build.xml</code> file that defines the name of your
+                source file, the desired output directory, and imports the
+                  <code class="filename">build.xml</code> from this package. For example:
+                </p><pre class="programlisting">&lt;project&gt;
+  &lt;property name="input-xml" value="<em class="replaceable"><code>path-to/yourfile.xml</code></em>"/&gt;
+  &lt;property name="input-images-dirs" value="<em class="replaceable"><code>images/** figures/** graphics/**</code></em>"/&gt;
+  &lt;property name="output-dir" value="<em class="replaceable"><code>path-to/desired-output-dir</code></em>"/&gt;
+  &lt;import file="<em class="replaceable"><code>path-to/docbook-webhelp/</code></em>build.xml"/&gt;
+&lt;/project&gt;</pre></li><li class="step"><p>From the directory containing your newly created <code class="filename">build.xml</code>
+                file, type <code class="code">ant webhelp</code> to build your document.</p></li></ol></li></ol></div></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li id="webhelp-currentid"><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch02s02.html b/applications/content/template/docbook/webhelp/docs/content/ch02s02.html
new file mode 100644
index 0000000..27231c1
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch02s02.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>Using and customizing the output</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="ch02.html" title="Using the package"></link><link rel="prev" href="ch02s01.html" title="Generating webhelp output"></link><link rel="next" href="ch02s02s01.html" title="Recommended Apache configurations"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Using the package</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch02s01.html">Prev</a>
+                                        |
+                                        <a accesskey="u" class="navLinkUp" tabindex="5" href="ch02.html">Up</a>
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch02s02s01.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="section"><div xmlns="" class="titlepage"><div><div><h2 xmlns="http://www.w3.org/1999/xhtml" class="title" style="clear: both"><a id="id376328"></a>Using and customizing the output</h2></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="ch02s02s01.html">Recommended Apache configurations</a></span></dt></dl></div><p>To deep link to a topic inside the help set, simply link directly to the page. This help
+        system uses no frameset, so nothing further is necessary. </p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>See <a class="ulink" href="http://www.sagehill.net/docbookxsl/Chunking.html" target="_top">Chunking into
+              multiple HTML files</a> in Bob Stayton's <a class="ulink" href="http://www.sagehill.net/docbookxsl/index.html" target="_top">DocBook XSL: The Complete
+              Guide</a> for information on controlling output file names and which files are
+            chunked in DocBook.</p></div><p>When you perform a search, the results can include brief summaries. These are populated
+        in one of two ways:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>By adding <code class="sgmltag-element">role="summary"</code> to a <code class="sgmltag-element">para</code> or
+                <code class="sgmltag-element">phrase</code> in the <code class="sgmltag-element">chapter</code> or
+                <code class="sgmltag-element">section</code>.</p></li><li class="listitem"><p>By adding an <code class="sgmltag-element">abstract</code> to the <code class="sgmltag-element">chapterinfo</code> or
+                <code class="sgmltag-element">sectioninfo</code> element.</p></li></ul></div><p>To customize the look and feel of the help, study the following css files:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="filename">docs/common/css/positioning.css</code>: This handles the Positioning
+              of DIVs in appropriate positions. For example, it causes the
+                <code class="code">leftnavigation</code> div to appear on the left, the header on top, and so on.
+              Use this if you need to change the relative positions or need to change the
+              width/height etc.</p></li><li class="listitem"><p><code class="filename">docs/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css</code>:
+              This is the theming part which adds colors and stuff. This is a default theme comes
+              with <a class="ulink" href="http://jqueryui.com/download" target="_top">jqueryui</a> unchanged. You can get
+              any theme based your interest from this. (Themes are on right navigation bar.) Then
+              replace the css theme folder (theme-redmond) with it, and change the xsl to point to
+              the new css.</p></li><li class="listitem"><p><code class="filename">docs/common/jquery/treeview/jquery.treeview.css</code>: This styles
+              the toc Tree. Generally, you don't have to edit this file.</p></li></ul></div></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s01.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s02s01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li id="webhelp-currentid"><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch02s02s01.html b/applications/content/template/docbook/webhelp/docs/content/ch02s02s01.html
new file mode 100644
index 0000000..f4fc2d0
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch02s02s01.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>Recommended Apache configurations</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="ch02s02.html" title="Using and customizing the output"></link><link rel="prev" href="ch02s02.html" title="Using and customizing the output"></link><link rel="next" href="ch02s03.html" title="Search indexing"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Using and customizing the output</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch02s02.html">Prev</a>
+                                        |
+                                        <a accesskey="u" class="navLinkUp" tabindex="5" href="ch02s02.html">Up</a>
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch02s03.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="section"><div xmlns="" class="titlepage"><div><div><h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="id376463"></a>Recommended Apache configurations</h3></div></div></div>
+<p>If you are serving a long document from an Apache web server, we recommend you make
+          the following additions or changes to your <code class="filename">httpd.conf</code> or
+            <code class="filename">.htaccess</code> file. <em><span class="remark">TODO: Explain what each thing
+            does.</span></em></p><pre class="programlisting">AddDefaultCharSet UTF-8 # <a id="AddDefaultCharSet"></a><span><img src="../common/images/callouts/1.png" alt="1" border="0"></img></span>
+  
+      # 480 weeks
+      &lt;FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"&gt; # <a id="CachingSettings"></a><span><img src="../common/images/callouts/2.png" alt="2" border="0"></img></span>
+      Header set Cache-Control "max-age=290304000, public"
+      &lt;/FilesMatch&gt;
+      
+      # 2 DAYS
+      &lt;FilesMatch "\.(xml|txt)$"&gt;
+      Header set Cache-Control "max-age=172800, public, must-revalidate"
+      &lt;/FilesMatch&gt;
+      
+      # 2 HOURS
+      &lt;FilesMatch "\.(html|htm)$"&gt;
+      Header set Cache-Control "max-age=7200, must-revalidate"
+      &lt;/FilesMatch&gt;
+      
+      # compress text, html, javascript, css, xml:
+      AddOutputFilterByType DEFLATE text/plain # <a id="CompressSetting"></a><span><img src="../common/images/callouts/3.png" alt="3" border="0"></img></span>
+      AddOutputFilterByType DEFLATE text/html
+      AddOutputFilterByType DEFLATE text/xml
+      AddOutputFilterByType DEFLATE text/css
+      AddOutputFilterByType DEFLATE application/xml
+      AddOutputFilterByType DEFLATE application/xhtml+xml
+      AddOutputFilterByType DEFLATE application/rss+xml
+      AddOutputFilterByType DEFLATE application/javascript
+      AddOutputFilterByType DEFLATE application/x-javascript
+      
+      # Or, compress certain file types by extension:
+      &lt;Files *.html&gt; 
+      SetOutputFilter DEFLATE
+      &lt;/Files&gt;
+      </pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><p><a href="#AddDefaultCharSet"><span><img src="../common/images/callouts/1.png" alt="1" border="0"></img></span></a> </p></td><td valign="top" align="left"><p>See <a class="ulink" href="http://www.sagehill.net/docbookxsl/SpecialChars.html" target="_top">Odd
+                  characters in HTML output</a> in Bob Stayton's book <em class="citetitle">DocBook XSL:
+                  The Complete Guide</em> for more information about this setting.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a href="#CachingSettings"><span><img src="../common/images/callouts/2.png" alt="2" border="0"></img></span></a> </p></td><td valign="top" align="left"><p>These lines and those that follow cause the browser to cache various resources
+                such as bitmaps and JavaScript files. Note that caching JavaScript files could cause
+                your users to have stale search indexes if you update your document since the search
+                index is stored in JavaScript files.</p></td></tr><tr><td width="5%" valign="top" align="left"><p><a href="#CompressSetting"><span><img src="../common/images/callouts/3.png" alt="3" border="0"></img></span></a> </p></td><td valign="top" align="left"><p>These lines cause the the server to compress html, css, and JavaScript files and
+                the brower to uncompress them to improve download performance.</p></td></tr></table></div></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02s02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li id="webhelp-currentid"><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch02s03.html b/applications/content/template/docbook/webhelp/docs/content/ch02s03.html
new file mode 100644
index 0000000..60f8784
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch02s03.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>Search indexing</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="ch02.html" title="Using the package"></link><link rel="prev" href="ch02s02s01.html" title="Recommended Apache configurations"></link><link rel="next" href="ch02s04.html" title="Adding support for other (non-CJKV) languages"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Using the package</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch02s02s01.html">Prev</a>
+                                        |
+                                        <a accesskey="u" class="navLinkUp" tabindex="5" href="ch02.html">Up</a>
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch02s04.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="section"><div xmlns="" class="titlepage"><div><div><h2 xmlns="http://www.w3.org/1999/xhtml" class="title" style="clear: both"><a id="id376572"></a>Search indexing</h2></div></div></div>
+<p>Run <span class="command"><strong>ant index</strong></span> in the webhelp directory to index the content. Running
+          <span class="command"><strong>ant webhelp</strong></span> will do the indexing as part of the process as well.</p><p>Here's some detailed information about invoking the indexer. The indexing process is
+        pretty smooth, so probably you doesn't need to be concerned with following details. Webhelp
+        Ant script does all the needed bits.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Following should be in the CLASSPATH.</p><p>
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p><code class="filename">webhelpindexer.jar</code>,
+                    <code class="filename">lucene-analyzers-3.0.0.jar</code>,
+                    <code class="filename">lucene-core-3.0.0.jar</code> - These three are available in the
+                  extensions/ directory of docsbook-xsl-1.76.1, and is automatically fetched to the
+                  webhelp's Ant script. Go for a XSL snapshot if you can which contains the latest
+                  version http://docbook.sourceforge.net/snapshot/</p></li><li class="listitem"><p><code class="filename">xercesImpl.jar</code>, <code class="filename"> xml-apis.jar</code> -
+                  These two comes by default with Ant 1.8.0 or prior versions. These are available
+                  under /usr/share/java directory of Linux distributions as well. Else, you may have
+                  to download, and put them to <code class="filename">jre/lib/endorsed</code>.</p></li></ul></div><p>
+          </p></li><li class="listitem"><p>The main class is <code class="classname">com.nexwave.nquindexer.IndexerMain</code> for the
+            version 1.76.1+. It's <code class="classname">com.nexwave.nquindexer.IndexerTask</code> for the
+            versions 1.76.0 and 1.76.1.</p><p>
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Needs two parameters as command-line arguments:</p><p>
+                  </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; "><li class="listitem"><p>The folder where the files to be indexed reside</p></li></ul></div><p>
+                  </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; "><li class="listitem"><p>(Optional) language. defaults to "en". See build.properties for
+                        details</p></li></ul></div><p>
+                </p></li></ul></div><p>
+            </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>We have changed the way we invoke the webhelp indexer from the Ant Task to
+                  <code class="code">indexertask</code> to direct invocation. This seems to have remove the
+                  <code class="envar">CLASSPATH</code> issue some people were having.</p></div><p>
+          </p></li></ul></div><a id="id376733" class="indexterm"></a><a id="id376745" class="indexterm"></a><p class="summary">To build the indexer, you must have installed the JDK version 1.5 or
+        higher and set the <code class="envar">ANT_HOME</code> environment variable. </p><a id="id376768" class="indexterm"></a><a id="id376777" class="indexterm"></a></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s02s01.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li id="webhelp-currentid"><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch02s04.html b/applications/content/template/docbook/webhelp/docs/content/ch02s04.html
new file mode 100644
index 0000000..7f657f6
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch02s04.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>Adding support for other (non-CJKV) languages</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="ch02.html" title="Using the package"></link><link rel="prev" href="ch02s03.html" title="Search indexing"></link><link rel="next" href="ch02s05.html" title="Adding images"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Using the package</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch02s03.html">Prev</a>
+                                        |
+                                        <a accesskey="u" class="navLinkUp" tabindex="5" href="ch02.html">Up</a>
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch02s05.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="section"><div xmlns="" class="titlepage"><div><div><h2 xmlns="http://www.w3.org/1999/xhtml" class="title" style="clear: both"><a id="id376790"></a>Adding support for other (non-CJKV) languages</h2></div></div></div>
+<p>To support stemming for a language, the search mechanism requires a stemmer implemented
+        in both Java and JavaScript. The Java version is used by the indexer and the JavaScript
+        verison is used to stem the user's input on the search form. Currently the search mechanism
+        supports stemming for English and German. In addition, Java stemmers are included for the
+        following languages. Therefore, to support these languages, you only need to implement the
+        stemmer in JavaScript and add it to the template. If you do undertake this task, please
+        consider contributing the JavaScript version back to this project and to <a class="ulink" href="http://snowball.tartarus.org/texts/stemmersoverview.html" target="_top">Martin Porter's
+          project</a>.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Danish</p></li><li class="listitem"><p>Dutch</p></li><li class="listitem"><p>Finnish</p></li><li class="listitem"><p>Hungarian</p></li><li class="listitem"><p>Italian</p></li><li class="listitem"><p>Norwegian</p></li><li class="listitem"><p>Portuguese</p></li><li class="listitem"><p>Romanian</p></li><li class="listitem"><p>Russian</p></li><li class="listitem"><p>Spanish</p></li><li class="listitem"><p>Swedish</p></li><li class="listitem"><p>Turkish</p></li></ul></div><p><a id="id376892" class="indexterm"></a></p></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s05.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li id="webhelp-currentid"><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch02s05.html b/applications/content/template/docbook/webhelp/docs/content/ch02s05.html
new file mode 100644
index 0000000..5469ec3
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch02s05.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>Adding images</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="ch02.html" title="Using the package"></link><link rel="prev" href="ch02s04.html" title="Adding support for other (non-CJKV) languages"></link><link rel="next" href="ch03.html" title="Developer Docs"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Using the package</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch02s04.html">Prev</a>
+                                        |
+                                        <a accesskey="u" class="navLinkUp" tabindex="5" href="ch02.html">Up</a>
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch03.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="section"><div xmlns="" class="titlepage"><div><div><h2 xmlns="http://www.w3.org/1999/xhtml" class="title" style="clear: both"><a id="id376902"></a>Adding images</h2></div></div></div>
+<p>This section shows how to add images to WebHelp. For that, follow the simple procedure given.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Put the images in a subdirectory of your source file directory. For example
+                <code class="filename">docsrc/images</code>.</p></li><li class="listitem"><p>Then refer to those images from your docbook document.</p><p>Following image is from <span class="bold"><strong>webhelp/docsrs/images/sample.jpg</strong></span>. The docbook code is shown
+              below.</p><p>
+              </p><div class="figure"><a id="id376944"></a><p class="title"><strong>Figure 1. Sample Image</strong></p><div class="figure-contents"><div class="mediaobject"><img src="images/sample.jpg" alt="Sample Image"></img></div></div></div><p><br class="figure-break"></br>
+            </p><div class="example"><a id="id376967"></a><p class="title"><strong>Example 1. Example code for adding images. Note down the relative path used</strong></p><div class="example-contents"><pre class="programlisting">&lt;figure&gt;
+  &lt;title&gt;Sample&lt;/title&gt;
+  &lt;mediaobject&gt;
+    &lt;imageobject&gt;
+      &lt;imagedata fileref="<span class="bold"><strong>images/sample.jpg</strong></span>" format="JPG"/&gt;
+    &lt;/imageobject&gt;
+  &lt;/mediaobject&gt;
+&lt;/figure&gt;</pre></div></div><br class="example-break"></br></li><li class="listitem"><p> The <code class="filename">build.properties</code> file controls what directories are copied
+              over from the source tree to the output
+              tree:</p><pre class="programlisting"># If your document has image directories that need to be copied
+# to the output directory, you can list patterns here. 
+# See the Ant documentation for fileset for documentation
+# on patterns.
+input-images-dirs=images/**,figures/**,graphics/**</pre></li></ul></div></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s04.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li id="webhelp-currentid"><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch03.html b/applications/content/template/docbook/webhelp/docs/content/ch03.html
new file mode 100644
index 0000000..1239560
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch03.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>Developer Docs</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="prev" href="ch02s05.html" title="Adding images"></link><link rel="next" href="ch03s01.html" title="Design"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Developer Docs</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch02s05.html">Prev</a> 
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch03s01.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="chapter"><div xmlns="" class="titlepage"><div><div><h1 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="id377011"></a>Developer Docs</h1></div></div></div>
+<div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ch03s01.html">Design</a></span></dt><dt><span class="section"><a href="ch03s02.html">Search</a></span></dt><dd><dl><dt><span class="section"><a href="ch03s02s01.html">New Stemmers</a></span></dt></dl></dd></dl></div><p class="summary">This chapter provides an overview of how webhelp is implemented.</p><p>The table of contents and search panes are implemented as divs and rendered as if they
+      were the left pane in a frameset. As a result, the page must save the state of the table of
+      contents and the search in cookies when you navigate away from a page. When you load a new
+      page, the page reads these cookies and restores the state of the table of contents tree and
+      search. The result is that the help system behaves exactly as if it were a frameset.</p></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s05.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch03s01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li id="webhelp-currentid"><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch03s01.html b/applications/content/template/docbook/webhelp/docs/content/ch03s01.html
new file mode 100644
index 0000000..80bbccb
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch03s01.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="ch03.html" title="Developer Docs"></link><link rel="prev" href="ch03.html" title="Developer Docs"></link><link rel="next" href="ch03s02.html" title="Search"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Developer Docs</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch03.html">Prev</a>
+                                        |
+                                        <a accesskey="u" class="navLinkUp" tabindex="5" href="ch03.html">Up</a>
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch03s02.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="section"><div xmlns="" class="titlepage"><div><div><h2 xmlns="http://www.w3.org/1999/xhtml" class="title" style="clear: both"><a id="id377030"></a>Design</h2></div></div></div>
+<p class="summary">An overview of webhelp page structure.</p><p>DocBook WebHelp page structure is fully built on css-based design abandoning frameset
+        structure. Overall page structure can be divided in to three main sections </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Header: Header is a separate Div which include company logo, navigation
+              button(prev, next etc.), page title and heading of parent topic.</p></li><li class="listitem"><p>Content: This includes the content of the documentation. The processing of this
+              part is done by <a class="ulink" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl" target="_top"> DocBook
+                XSL Chunking customization</a>. Few further css-styling applied from
+                <code class="filename">positioning.css</code>. </p></li><li class="listitem"><p>Left Navigation: This includes the table of contents and search tab. This is
+              customized using <a class="ulink" href="http://jqueryui.com/" target="_top">jquery-ui</a> styling.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Tabbed Navigation: The navigation pane is organized in to two tabs. Contents
+                  tab, and Search tab. Tabbed output is achieved using <a class="ulink" href="http://docs.jquery.com/UI/Tabs" target="_top">JQuery Tabs plugin</a>. </p></li><li class="listitem"><p>Table of Contents (TOC) tree: When building the chunked html from the docbook
+                  file, Table of Contents is generated as an Unordered List (a list made from
+                    <code class="code">&lt;ul&gt; &lt;li&gt;</code> tags). When page loads in the browser, we apply
+                  styling to it to achieve the nice look that you see. Styling for TOC tree is done
+                  by a JQuery UI plugin called <a class="ulink" href="http://bassistance.de/jquery-plugins/jquery-plugin-treeview/" target="_top">
+                    TreeView</a>. We can generate the tree easily by following javascript code:
+                  </p><pre class="programlisting">
+//Generate the tree
+$("#tree").treeview({
+collapsed: true,
+animated: "medium",
+control: "#sidetreecontrol",
+persist: "cookie"
+});
+</pre><p>
+                </p></li><li class="listitem"><p>Search Tab: This includes the search feature.</p></li></ul></div></li></ul></div><p>
+        <a id="id377141" class="indexterm"></a></p></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch03.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch03s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li id="webhelp-currentid"><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch03s02.html b/applications/content/template/docbook/webhelp/docs/content/ch03s02.html
new file mode 100644
index 0000000..387f6a0
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch03s02.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>Search</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="ch03.html" title="Developer Docs"></link><link rel="prev" href="ch03s01.html" title="Design"></link><link rel="next" href="ch03s02s01.html" title="New Stemmers"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Developer Docs</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch03s01.html">Prev</a>
+                                        |
+                                        <a accesskey="u" class="navLinkUp" tabindex="5" href="ch03.html">Up</a>
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch03s02s01.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="section"><div xmlns="" class="titlepage"><div><div><h2 xmlns="http://www.w3.org/1999/xhtml" class="title" style="clear: both"><a id="id377151"></a>Search</h2></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="ch03s02s01.html">New Stemmers</a></span></dt></dl></div><p class="summary">Overview design of Search mechanism.</p><p>The serching is a fully client-side implementation of querying texts for content
+        searching. There's no server involved. So, the search queries by the users are processed by
+        JavaScript inside the browser, and displays the matching results by comparing the query with
+        a simplified 'index' that too resides in JavaScript. Mainly the search mechanism has two
+        parts. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Indexing: First we need to traverse the content in the docs/content folder and
+              index the words in it. This is done by <code class="filename">webhelpindexer.jar</code> in
+                <code class="filename">xsl/extentions/</code> folder. You can invoke it by <code class="code">ant
+                index</code> command from the root of webhelp of directory. The source of
+              webhelpindexer is now moved to it's own location at
+                <code class="filename">trunk/xsl-webhelpindexer/</code>. Checkout the Docbook trunk svn
+              directory to get this source. Then, do your changes and recompile it by simply running
+                <code class="code">ant</code> command. My assumption is that it can be opened by Netbeans IDE by
+              one click. Or if you are using IntelliJ Idea, you can simply create a new project from
+              existing sources. Indexer has extensive support for features such as word scoring,
+              stemming of words, and support for languages English, German, French. For CJK
+              (Chinese, Japanese, Korean) languages, it uses bi-gram tokenizing to break up the
+              words (since CJK languages does not have spaces between words).</p><p> When <code class="code">ant index</code> is run, it generates five output files: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p><code class="filename">htmlFileList.js</code> - This contains an array named
+                      <code class="code">fl</code> which stores details all the files indexed by the indexer.
+                    Further, the doStem in it defines whether stemming should be used. It defaults
+                    to false.</p></li><li class="listitem"><p><code class="filename">htmlFileInfoList.js</code> - This includes some meta data
+                    about the indexed files in an array named <code class="code">fil</code>. It includes details
+                    about file name, file (html) title, a summary of the content.Format would look
+                    like, <code class="code">fil["4"]= "ch03.html@@@Developer Docs@@@This chapter provides an
+                      overview of how webhelp is implemented.";</code>
+                  </p></li><li class="listitem"><p><code class="filename">index-*.js</code> (Three index files) - These three files
+                    actually stores the index of the content. Index is added to an array named
+                      <code class="code">w</code>.</p></li></ul></div></li><li class="listitem"><p> Querying: Query processing happens totally in client side. Following JavaScript
+              files handles them. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p><code class="filename">nwSearchFnt.js</code> - This handles the user query and
+                    returns the search results. It does query word tokenizing, drop unnecessary
+                    punctuations and common words, do stemming if docbook language supports it,
+                    etc.</p></li><li class="listitem"><p><code class="filename">{$indexer-language-code}_stemmer.js</code> - This includes the
+                    stemming library. <code class="filename">nwSearchFnt.js</code> file calls
+                      <code class="code">stemmer</code> method in this file for stemming. ex: <code class="code">var stem =
+                      stemmer(foobar);</code>
+                  </p></li></ul></div><p>
+            </p></li></ul></div><p>
+        <a id="id377392" class="indexterm"></a></p></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s01.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch03.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch03s02s01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li id="webhelp-currentid"><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch03s02s01.html b/applications/content/template/docbook/webhelp/docs/content/ch03s02s01.html
new file mode 100644
index 0000000..4e9cf80
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch03s02s01.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>New Stemmers</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="ch03s02.html" title="Search"></link><link rel="prev" href="ch03s02.html" title="Search"></link><link rel="next" href="ch04.html" title="FAQ"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Search</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch03s02.html">Prev</a>
+                                        |
+                                        <a accesskey="u" class="navLinkUp" tabindex="5" href="ch03s02.html">Up</a>
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch04.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="section"><div xmlns="" class="titlepage"><div><div><h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="id377401"></a>New Stemmers</h3></div></div></div>
+<p class="summary">Adding new Stemmers is very simple.</p><p>Currently, only English, French, and German stemmers are integrated in to WebHelp. But
+          the code is extensible such that you can add new stemmers easily by few steps.</p><p>What you need: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>You'll need two versions of the stemmer; One written in JavaScript, and another
+                in Java. But fortunately, Snowball contains Java stemmers for number of popular
+                languages, and are already included with the package. You can see the full list in
+                  <a class="ulink" href="ch02s04.html" target="_top">Adding support for other (non-CJKV) languages</a>.
+                If your language is listed there, Then you have to find javascript version of the
+                stemmer. Generally, new stemmers are getting added in to <a class="ulink" href="http://snowball.tartarus.org/otherlangs/index.html" target="_top">Snowball Stemmers in
+                  other languages</a> location. If javascript stemmer for your language is
+                available, then download it. Else, you can write a new stemmer in JavaScript using
+                SnowBall algorithm fairly easily. Algorithms are at <a class="ulink" href="http://snowball.tartarus.org/" target="_top">Snowball</a>. </p></li><li class="listitem"><p>Then, name the JS stemmer exactly like this:
+                  <code class="filename">{$language-code}_stemmer.js</code>. For example, for Italian(it),
+                name it as, <code class="filename">it_stemmer.js</code>. Then, copy it to the
+                  <code class="filename">docbook-webhelp/template/content/search/stemmers/</code> folder. (I
+                assumed <code class="filename">docbook-webhelp</code> is the root folder for webhelp.) </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Make sure you changed the <code class="code">webhelp.indexer.language</code> property in
+                      <code class="filename">build.properties</code> to your language. </p></div><p>
+              </p></li><li class="listitem"><p>Now two easy changes needed for the indexer.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Open
+                      <code class="filename">docbook-webhelp/indexer/src/com/nexwave/nquindexer/IndexerTask.java</code>
+                    in a text editor and add your language code to the
+                      <code class="code">supportedLanguages</code> String Array. </p><div class="example"><a id="id377526"></a><p class="title"><strong>Example 2. Add new language to supportedLanguages array</strong></p><div class="example-contents"><p> change the Array from,
+                      </p><pre class="programlisting">
+private String[] supportedLanguages= {"en", "de", "fr", "cn", "ja", "ko"}; 
+    //currently extended support available for
+    // English, German, French and CJK (Chinese, Japanese, Korean) languages only.
+</pre><p>
+                      To,</p><pre class="programlisting">
+private String[] supportedLanguages= {"en", "de", "fr", "cn", "ja", "ko", <span class="emphasis"><em>"it"</em></span>}; 
+  //currently extended support available for
+  // English, German, French, CJK (Chinese, Japanese, Korean), and Italian languages only.
+                    </pre></div></div><br class="example-break"></br></li><li class="listitem"><p> Now, open
+                      <code class="filename">docbook-webhelp/indexer/src/com/nexwave/nquindexer/SaxHTMLIndex.java</code>
+                    and add the following line to the code where it initializes the Stemmer (Search
+                    for <code class="code">SnowballStemmer stemmer;</code>). Then add code to initialize the
+                    stemmer Object in your language. It's self understandable. See the example. The
+                    class names are at:
+                      <code class="filename">docbook-webhelp/indexer/src/com/nexwave/stemmer/snowball/ext/</code>. </p><div class="example"><a id="id377581"></a><p class="title"><strong>Example 3. Initialize correct stemmer based on the
+                        <code class="code">webhelp.indexer.language</code> specified</strong></p><div class="example-contents"><pre class="programlisting">
+      SnowballStemmer stemmer;
+      if(indexerLanguage.equalsIgnoreCase("en")){
+           stemmer = new EnglishStemmer();
+      } else if (indexerLanguage.equalsIgnoreCase("de")){
+          stemmer= new GermanStemmer();
+      } else if (indexerLanguage.equalsIgnoreCase("fr")){
+          stemmer= new FrenchStemmer();
+      }
+<span class="emphasis"><em>else if (indexerLanguage.equalsIgnoreCase("it")){ //If language code is "it" (Italian)
+          stemmer= new italianStemmer();  //Initialize the stemmer to <code class="code">italianStemmer</code> object.
+      } </em></span>      
+      else {
+          stemmer = null;
+      }
+</pre></div></div><br class="example-break"></br></li></ul></div></li></ul></div><p>
+        </p><p>That's all. Now run <code class="code">ant build-indexer</code> to compile and build the java code.
+          Then, run <code class="code">ant webhelp</code> to generate the output from your docbook file. For any
+          questions, contact us or email to the docbook mailing list
+            <code class="email">&lt;<a class="email" href="mailto:docbook-apps@lists.oasis-open.org">docbook-apps@lists.oasis-open.org</a>&gt;</code>.</p><a id="id377631" class="indexterm"></a></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch03s02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li id="webhelp-currentid"><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch04.html b/applications/content/template/docbook/webhelp/docs/content/ch04.html
new file mode 100644
index 0000000..0977f54
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch04.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>FAQ</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><meta name="description" content="Frequently Asked Questions"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="prev" href="ch03s02s01.html" title="New Stemmers"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>FAQ</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch03s02s01.html">Prev</a> </td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="chapter"><div xmlns="" class="titlepage"><div><div><h1 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="id377643"></a>FAQ</h1></div></div></div>
+<div class="qandaset"><a id="id377658"></a><dl><dt>1. <a href="ch04.html#id377660">On what browsers and operating systems WebHelp has tested extensively?</a></dt><dt>2. <a href="ch04.html#id377682">Apart from this demo, where can I find other demos or production deployments of
+            WebHelp?</a></dt><dt>3. <a href="ch04.html#id377705">When building the webhelp output, I'm getting the following error. What's the reason
+            for this?</a></dt><dt>4. <a href="ch04.html#id377741">Does WebHelp Indexer can index HTML transformation as well?</a></dt><dt>5. <a href="ch04.html#id377759">I need more information about webhelp-indexer. Where can I find it?</a></dt></dl><table border="0" style="width: 100%;"><colgroup><col align="left" width="1%"></col><col></col></colgroup><tbody><tr class="question"><td align="left" valign="top"><a id="id377660"></a><a id="id377663"></a><p><strong>1.</strong></p></td><td align="left" valign="top"><p>On what browsers and operating systems WebHelp has tested extensively?</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>We tested it with versions of most browsers including Firefox 3.x+, IE 7+, Chrome,
+            Safari, and iPod/iPhone. The JavaScript codes are mostly jquery plugins, so you’d want
+            to check the jquery support matrix for details.</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id377682"></a><a id="id377684"></a><p><strong>2.</strong></p></td><td align="left" valign="top"><p>Apart from this demo, where can I find other demos or production deployments of
+            WebHelp?</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>There are four production deployments provided in <a class="ulink" href="http://wiki.docbook.org/WebHelp" target="_top">WebHelp wiki</a> currently.</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id377705"></a><a id="id377707"></a><p><strong>3.</strong></p></td><td align="left" valign="top"><p>When building the webhelp output, I'm getting the following error. What's the reason
+            for this?</p><pre class="programlisting">[xslt] : Warning! file:/C:/Users/kasun/docbook-xsl-1.77.0/xhtml/autoidx.xsl:
+            line 596: Attribute 'href' outside of element.
+[xslt] : Warning! file:/C:/Users/kasun/docbook-xsl-1.77.0/xhtml/autoidx.xsl: 
+            line 596: Attribute 'href' outside of element.</pre><p>----</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>This happens if you haven't done the step 3 and 4 of webhelp build guide "Generating
+            webhelp output" in the documentation. Basically, you need to correctly set the following
+            folder
+            paths.</p><pre class="programlisting">xslt-processor-classpath=/usr/share/java/saxon-6.5.5.jar
+xercesImpl.jar=/usr/share/java/xercesImpl.jar
+xml-apis.jar=/usr/share/java/xml-apis.jar</pre></td></tr><tr class="question"><td align="left" valign="top"><a id="id377741"></a><a id="id377743"></a><p><strong>4.</strong></p></td><td align="left" valign="top"><p>Does WebHelp Indexer can index HTML transformation as well?</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>Yes, WebHelp supports HTML transformations as well in addition to XHTML.</p></td></tr><tr class="question"><td align="left" valign="top"><a id="id377759"></a><a id="id377761"></a><p><strong>5.</strong></p></td><td align="left" valign="top"><p>I need more information about webhelp-indexer. Where can I find it?</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>The DocBook Webhelp Indexer is based on the HTMLSearch plugin for DITA. See <a class="ulink" href="http://www.helpml.com:8088/help/index.jsp?topic=/org.sample.help.doc/htmlsearch/DHSC_BestPractices_htmlsearch.html" target="_top">HTMLSearch documentation </a> for more information.</p></td></tr></tbody></table></div><a id="id377784" class="indexterm"></a></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s02s01.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li id="webhelp-currentid"><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch05.html b/applications/content/template/docbook/webhelp/docs/content/ch05.html
new file mode 100644
index 0000000..0ae4fcc
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch05.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>Chapter 5. Test section</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_9183"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="prev" href="ch04.html" title="Chapter 4. FAQ"></link><link rel="next" href="ch05s01.html" title="5.1. Some problematic search words"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1093";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "Your browser is not supported. Use of Mozilla Firefox is recommended.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileList.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="http://docbook.org/"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt="DocBook Documentation"></img></a><h1 align="center">README: Web-based Help from DocBook XML<br></br> </h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch04.html">Prev</a> 
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch05s01.html">Next</a></td></tr></table></div></div><div id="content"><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="id594686"></a>Chapter 5. Test section</h2></div></div></div><div class="toc"><p><strong>Contents</strong></p><dl><dt><span class="section"><a href="ch05s01.html">5.1. Some problematic search words</a></span></dt><dt><span class="section"><a href="ch05s02.html">5.2. Some problematic search words (inflected)</a></span></dt></dl></div></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch05s01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02.html#id593592" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02.html#id594387" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li><li id="webhelp-currentid"><span class="file"><a href="ch05.html" tabindex="1">Test section</a></span><ul><li><span class="file"><a href="ch05s01.html" tabindex="1">Some problematic search words</a></span></li><li><span class="file"><a href="ch05s02.html" tabindex="1">Some problematic search words (inflected)</a></span></li></ul></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="text" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch05s01.html b/applications/content/template/docbook/webhelp/docs/content/ch05s01.html
new file mode 100644
index 0000000..2a7ed33
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch05s01.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>5.1. Some problematic search words</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_9183"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="ch05.html" title="Chapter 5. Test section"></link><link rel="prev" href="ch05.html" title="Chapter 5. Test section"></link><link rel="next" href="ch05s02.html" title="5.2. Some problematic search words (inflected)"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1093";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "Your browser is not supported. Use of Mozilla Firefox is recommended.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileList.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="http://docbook.org/"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt="DocBook Documentation"></img></a><h1 align="center">README: Web-based Help from DocBook XML<br></br>Chapter 5. Test section</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch05.html">Prev</a>
+                                        |
+                                        <a accesskey="u" class="navLinkUp" tabindex="5" href="ch05.html">Up</a>
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch05s02.html">Next</a></td></tr></table></div></div><div id="content"><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id594692"></a>5.1. Some problematic search words</h2></div></div></div><p>buy, say, by, vary, try, sky, nucleus, day, key, currency, currencies, build.xml, foo</p></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch05.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch05.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch05s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02.html#id593592" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02.html#id594387" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li><li><span class="file"><a href="ch05.html" tabindex="1">Test section</a></span><ul><li id="webhelp-currentid"><span class="file"><a href="ch05s01.html" tabindex="1">Some problematic search words</a></span></li><li><span class="file"><a href="ch05s02.html" tabindex="1">Some problematic search words (inflected)</a></span></li></ul></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="text" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/ch05s02.html b/applications/content/template/docbook/webhelp/docs/content/ch05s02.html
new file mode 100644
index 0000000..0dc43c9
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/ch05s02.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>5.2. Some problematic search words (inflected)</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_9183"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="ch05.html" title="Chapter 5. Test section"></link><link rel="prev" href="ch05s01.html" title="5.1. Some problematic search words"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1093";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "Your browser is not supported. Use of Mozilla Firefox is recommended.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileList.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="http://docbook.org/"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt="DocBook Documentation"></img></a><h1 align="center">README: Web-based Help from DocBook XML<br></br>Chapter 5. Test section</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch05s01.html">Prev</a>
+                                        |
+                                        <a accesskey="u" class="navLinkUp" tabindex="5" href="ch05.html">Up</a></td></tr></table></div></div><div id="content"><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id594702"></a>5.2. Some problematic search words (inflected)</h2></div></div></div><p>buys, says, varies, tries, skies, nuclei, days, keys, currencies, build.xml, foo.</p></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch05s01.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch05.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02.html#id593592" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02.html#id594387" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li><li><span class="file"><a href="ch05.html" tabindex="1">Test section</a></span><ul><li><span class="file"><a href="ch05s01.html" tabindex="1">Some problematic search words</a></span></li><li id="webhelp-currentid"><span class="file"><a href="ch05s02.html" tabindex="1">Some problematic search words (inflected)</a></span></li></ul></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="text" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/images/sample.jpg b/applications/content/template/docbook/webhelp/docs/content/images/sample.jpg
new file mode 100644
index 0000000..d8ec5c3
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/images/sample.jpg
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/content/index.html b/applications/content/template/docbook/webhelp/docs/content/index.html
new file mode 100644
index 0000000..952848f
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/index.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+<title>README: Web-based Help from DocBook XML</title><meta name="generator" content="DocBook XSL Stylesheets V1.77.1"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="next" href="ch01.html" title="Introduction"></link><script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "treeview-1055";
+            var language = "en";
+            var w = new Object();
+            //Localization
+            txt_filesfound = 'Results';
+            txt_enter_at_least_1_char = "You must enter at least one character.";
+            txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
+            txt_please_wait = "Please wait. Search in progress...";
+            txt_results_for = "Results for: ";
+        </script><link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="../common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(../common/images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(../common/images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style><script type="text/javascript" src="../common/browserDetect.js"></script><script type="text/javascript" src="../common/jquery/jquery-1.4.2.min.js"></script><script type="text/javascript" src="../common/jquery/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="../common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="../common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><div id="header"><a target="_blank" href="#"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="../common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br> </h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="javascript:showHideToc();" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a></td><td> 
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5" href="ch01.html">Next</a></td></tr></table></div></div><div id="content"><noscript>JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</noscript><div class="book"><div xmlns="" class="titlepage">
+<div>
+<div><h1 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="id275648"></a>README: Web-based Help from DocBook XML</h1></div>
+<div><div xmlns="http://www.w3.org/1999/xhtml" class="author"><h3 class="author"><span class="firstname">David</span> <span class="surname">Cramer</span></h3><code class="email">&lt;<a class="email" href="mailto:david AT thingbag DOT net">david AT thingbag DOT net</a>&gt;</code></div></div>
+<div><div xmlns="http://www.w3.org/1999/xhtml" class="author"><h3 class="author"><span class="firstname">Kasun</span> <span class="surname">Gajasinghe</span></h3><code class="email">&lt;<a class="email" href="mailto:kasunbg AT gmail DOT com">kasunbg AT gmail DOT com</a>&gt;</code></div></div>
+<div><p xmlns="http://www.w3.org/1999/xhtml" class="copyright">Copyright © 2008-2012 Kasun Gajasinghe, David Cramer</p></div>
+<div><div xmlns="http://www.w3.org/1999/xhtml" class="legalnotice"><a id="id375193"></a><p>Permission is hereby granted, free of charge, to any person obtaining a copy of this
+        software and associated documentation files (the <span class="quote">“<span class="quote">Software</span>”</span>), to deal in the
+        Software without restriction, including without limitation the rights to use, copy, modify,
+        merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
+        persons to whom the Software is furnished to do so, subject to the following conditions: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>The above copyright notice and this permission notice shall be included in all
+              copies or substantial portions of the Software.</p></li><li class="listitem"><p>Except as contained in this notice, the names of individuals credited with
+              contribution to this software shall not be used in advertising or otherwise to promote
+              the sale, use or other dealings in this Software without prior written authorization
+              from the individuals in question.</p></li><li class="listitem"><p>Any stylesheet derived from this Software that is publicly distributed will be
+              identified with a different name and the version strings in any derived Software will
+              be changed so that no possibility of confusion between the derived package and this
+              Software will exist.</p></li></ul></div><p><strong>Warranty: </strong>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+          INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+          PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL DAVID CRAMER, KASUN GAJASINGHE, OR ANY
+          OTHER CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+          ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+          SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p><p>This package is maintained by Kasun Gajasinghe, <code class="email">&lt;<a class="email" href="mailto:kasunbg AT gmail DOT com">kasunbg AT gmail DOT com</a>&gt;</code>
+        and David Cramer, <code class="email">&lt;<a class="email" href="mailto:david AT thingbag DOT net">david AT thingbag DOT net</a>&gt;</code>.</p><p>This package also includes the following software written and copyrighted by others:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Files in <code class="filename">template/common/jquery</code> are
+              copyrighted by <a class="ulink" href="http://jquery.com/" target="_top">JQuery</a> under the MIT License.
+              The file <code class="filename">jquery.cookie.js</code> Copyright (c) 2006 Klaus Hartl under
+              the MIT license.</p><a id="id375285" class="indexterm"></a></li><li class="listitem"><p>Some files in the <code class="filename">template/content/search</code>
+              and <code class="filename">indexer</code> directories were originally part of
+              N. Quaine's htmlsearch DITA plugin. The htmlsearch DITA plugin is available from the
+                <a class="ulink" href="http://tech.groups.yahoo.com/group/dita-users/files/Demos/" target="_top">files
+                page</a> of the DITA-users yahoogroup. The htmlsearch plugin was released under
+              a BSD-style license. See <code class="filename">indexer/license.txt</code> for details. <a id="id375327" class="indexterm"></a>
+              <a id="id374881" class="indexterm"></a></p></li><li class="listitem"><p>Stemmers from the <a class="ulink" href="http://snowball.tartarus.org/texts/stemmersoverview.html" target="_top">Snowball
+                project</a> released under a BSD license.</p></li><li class="listitem"><p>Code from the <a class="ulink" href="http://lucene.apache.org/" target="_top">Apache Lucene</a> search
+              engine provides support for tokenizing Chinese, Japanese, and Korean content released
+              under the Apache 2.0 license. </p></li><li class="listitem"><p>Code that provides weighted search results and some
+              other improvements was graciously donated by <a class="ulink" href="http://www.oxygenxml.com" target="_top">SyncRO Soft
+                Ltd.</a>, the publishers of the oXygen XML
+              Editor.</p></li><li class="listitem"><p>Cosmetic improvements provided by <a class="ulink" href="http://docs.openstack.org" target="_top">OpenStack</a>.</p></li></ul></div><p> Webhelp for DocBook was first developed as a <a class="ulink" href="http://code.google.com/soc/" target="_top">Google Summer of Code</a> project. </p></div></div>
+<div><p xmlns="http://www.w3.org/1999/xhtml" class="pubdate">January 2012</p></div>
+</div>
+<hr>
+</div>
+<div class="list-of-figures"><p><strong>List of Figures</strong></p><dl><dt>1. <a href="ch02s05.html#id376944">Sample Image</a></dt></dl></div><div class="list-of-examples"><p><strong>List of Examples</strong></p><dl><dt>1. <a href="ch02s05.html#id376967">Example code for adding images. Note down the relative path used</a></dt><dt>2. <a href="ch03s02s01.html#id377526">Add new language to supportedLanguages array</a></dt><dt>3. <a href="ch03s02s01.html#id377581">Initialize correct stemmer based on the
+                        <code class="code">webhelp.indexer.language</code> specified</a></dt></dl></div></div><script type="text/javascript" src="../common/main.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch01.html">Next</a></td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="../common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><fieldset class="searchFieldSet"><legend>Search</legend><center><input id="textToSearch" name="textToSearch" type="search" class="searchText" tabindex="1"></input> &nbsp; <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></center></fieldset></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
diff --git a/applications/content/template/docbook/webhelp/docs/content/search/htmlFileInfoList.js b/applications/content/template/docbook/webhelp/docs/content/search/htmlFileInfoList.js
new file mode 100644
index 0000000..43430f7
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/search/htmlFileInfoList.js
@@ -0,0 +1,38 @@
+var doStem = true;
+//List of indexed files.
+fl = new Array();
+fl["0"]= "ch04.html";
+fl["1"]= "ch05s01.html";
+fl["2"]= "ch03s02.html";
+fl["3"]= "index.html";
+fl["4"]= "ch02s02s01.html";
+fl["5"]= "ch03s01.html";
+fl["6"]= "ch01.html";
+fl["7"]= "ch02.html";
+fl["8"]= "ch02s01.html";
+fl["9"]= "ch02s03.html";
+fl["10"]= "ch03s02s01.html";
+fl["11"]= "ch05.html";
+fl["12"]= "ch03.html";
+fl["13"]= "ch02s05.html";
+fl["14"]= "ch02s04.html";
+fl["15"]= "ch02s02.html";
+fl["16"]= "ch05s02.html";
+fil = new Array();
+fil["0"]= "ch04.html@@@FAQ@@@Frequently Asked Questions...";
+fil["1"]= "ch05s01.html@@@5.1. Some problematic search words@@@null";
+fil["2"]= "ch03s02.html@@@Search@@@Overview design of Search mechanism...";
+fil["3"]= "index.html@@@README: Web-based Help from DocBook XML@@@null";
+fil["4"]= "ch02s02s01.html@@@@@@null";
+fil["5"]= "ch03s01.html@@@Design@@@An overview of webhelp page structure...";
+fil["6"]= "ch01.html@@@Introduction@@@Overview of the package...";
+fil["7"]= "ch02.html@@@Using the package@@@The following sections describe how to install and use the package on Windows...";
+fil["8"]= "ch02s01.html@@@Generating webhelp output@@@Installation instructions...";
+fil["9"]= "ch02s03.html@@@Search indexing@@@To build the indexer, you must have installed the JDK version 1.5 or higher and set the ANT_HOME environment variable...";
+fil["10"]= "ch03s02s01.html@@@New Stemmers@@@Adding new Stemmers is very simple...";
+fil["11"]= "ch05.html@@@Chapter 5. Test section@@@null";
+fil["12"]= "ch03.html@@@Developer Docs@@@This chapter provides an overview of how webhelp is implemented...";
+fil["13"]= "ch02s05.html@@@Adding images@@@null";
+fil["14"]= "ch02s04.html@@@Adding support for other (non-CJKV) languages@@@null";
+fil["15"]= "ch02s02.html@@@Using and customizing the output@@@null";
+fil["16"]= "ch05s02.html@@@5.2. Some problematic search words (inflected)@@@null";
diff --git a/applications/content/template/docbook/webhelp/docs/content/search/htmlFileList.js b/applications/content/template/docbook/webhelp/docs/content/search/htmlFileList.js
new file mode 100644
index 0000000..5562796
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/search/htmlFileList.js
@@ -0,0 +1,18 @@
+//List of files which are indexed.
+fl = new Array();
+fl["0"]= "ch04.html";
+fl["1"]= "ch05s01.html";
+fl["2"]= "ch03s02.html";
+fl["3"]= "index.html";
+fl["4"]= "ch03s01.html";
+fl["5"]= "ch01.html";
+fl["6"]= "ch02.html";
+fl["7"]= "ch02s01.html";
+fl["8"]= "ch02s03.html";
+fl["9"]= "ch05.html";
+fl["10"]= "ch03.html";
+fl["11"]= "ch02s05.html";
+fl["12"]= "ch02s04.html";
+fl["13"]= "ch02s02.html";
+fl["14"]= "ch05s02.html";
+var doStem = true
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/docs/content/search/index-1.js b/applications/content/template/docbook/webhelp/docs/content/search/index-1.js
new file mode 100644
index 0000000..dea25ac
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/search/index-1.js
@@ -0,0 +1,379 @@
+var indexerLanguage="en";
+//Auto generated index for searching by xsl-webhelpindexer for DocBook Webhelp.# Kasun Gajasinghe, University of Moratuwa
+w["-"]="2*5,6*1,9*2";
+w["-doutput-dir"]="8*1";
+w["-version"]="8*2";
+w["."]="2*5,3*2,4*3,5*5,6*1,8*10,9*3,10*8,13*2,14*1,15*3";
+w[".chm"]="6*1";
+w[".htaccess"]="4*1";
+w[".html"]="4*1";
+w[".js"]="2*2";
+w[".nexwave.nquindexer.indexermain"]="9*1";
+w[".nexwave.nquindexer.indexertask"]="9*1";
+w[".treeview"]="5*1";
+w["0"]="0*2,3*1,8*5,9*6";
+w["1"]="0*6,1*46,3*2,8*8,9*6,11*1,13*10";
+w["1."]="0*6,3*2,8*1,13*2";
+w["1.5"]="9*1";
+w["1.6"]="8*1";
+w["1.76.0"]="9*1";
+w["1.76.1"]="9*2";
+w["1.76.1."]="9*1";
+w["1.77.0"]="0*2";
+w["1.8.0"]="8*3,9*1";
+w["1.8.2.custom.css"]="15*1";
+w["172800"]="4*2";
+w["2"]="0*6,3*2,4*2,8*1,10*5,11*1,15*1,16*46";
+w["2."]="0*6,3*1,10*1";
+w["2.0"]="3*1";
+w["2006"]="3*1";
+w["2008"]="3*1";
+w["2008-2012"]="3*1";
+w["2012"]="3*2";
+w["290304000"]="4*2";
+w["2:"]="8*1";
+w["3"]="0*8,3*1,10*5";
+w["3."]="0*6,3*1,10*1";
+w["3.0.0.jar"]="9*2";
+w["3.x"]="0*1";
+w["4"]="0*7,2*1,8*1";
+w["4."]="0*6";
+w["480"]="4*1";
+w["5"]="0*8,1*46,6*1,8*3,9*1,11*48,16*46";
+w["5."]="0*6,11*2";
+w["5.1."]="1*2,11*1";
+w["5.2."]="11*1,16*2";
+w["596"]="0*2";
+w["596:"]="0*2";
+w["6"]="8*4";
+w["6.5"]="8*3";
+w["6.5.5.jar"]="0*1,8*1";
+w["6.5.x"]="8*1";
+w["7"]="0*1";
+w["7200"]="4*2";
+w["76"]="9*3";
+w["77"]="0*2";
+w["8"]="4*1,8*3,9*1,15*1";
+w[":"]="0*2,10*2,15*3";
+w["_stemmer"]="2*1,10*1";
+w["_stemmer.j"]="2*2,10*2";
+w["abandon"]="5*1";
+w["abov"]="3*1";
+w["abstract"]="15*1";
+w["accord"]="6*1";
+w["achiev"]="5*2";
+w["action"]="3*1";
+w["actual"]="2*1";
+w["ad"]="2*1,3*1,6*1,7*2,10*3,13*51,14*46,15*2";
+w["adapt"]="8*1";
+w["add"]="3*1,6*1,8*1,10*14,13*1,14*1,15*1";
+w["adddefaultcharset"]="4*1";
+w["addit"]="0*1,4*1,8*1,14*1";
+w["addoutputfilterbytyp"]="4*9";
+w["admon"]="8*1";
+w["admon.graph"]="8*2";
+w["advertis"]="3*1";
+w["after"]="6*1";
+w["against"]="8*2";
+w["age"]="4*3";
+w["al"]="10*1";
+w["algorithm"]="10*1";
+w["all"]="0*1,2*2,3*2,4*1,5*1,6*1,7*1,8*2,9*2,10*2,12*1,13*1,14*1,15*1";
+w["all."]="10*1";
+w["allow"]="8*1";
+w["alreadi"]="10*1";
+w["also"]="3*1,8*1";
+w["altern"]="6*1";
+w["analyz"]="9*1";
+w["and"]="0*4,2*6,3*12,4*4,5*3,6*6,7*2,8*9,9*4,10*8,12*5,14*5,15*51";
+w["ani"]="3*6,8*1,10*1,15*1";
+w["anim"]="5*1";
+w["animated:"]="5*1";
+w["anoth"]="8*2,10*1";
+w["ant"]="2*3,6*2,8*15,9*14,10*2,13*1";
+w["ant.file.dir"]="8*2";
+w["ant_hom"]="8*1,9*1";
+w["apach"]="3*2,4*41,7*1,8*3,15*1";
+w["apache-ant-1"]="8*2";
+w["apache-ant-1.8.0"]="8*2";
+w["apart"]="0*2";
+w["apis.jar"]="0*2,8*4,9*1";
+w["appear"]="6*2,15*1";
+w["appli"]="5*2";
+w["applic"]="4*5,6*1";
+w["applica"]="4*1";
+w["appropri"]="8*1,15*1";
+w["apps@lists.oasi"]="10*1";
+w["ar"]="3*1";
+w["arbitrari"]="8*1";
+w["argument"]="9*1";
+w["arguments:"]="9*1";
+w["aris"]="3*1";
+w["array"]="2*3,3*1,10*7";
+w["array."]="10*1";
+w["ask"]="0*1";
+w["associ"]="3*1";
+w["assum"]="8*2,10*1";
+w["assumpt"]="2*1";
+w["attribut"]="0*2";
+w["author"]="3*1";
+w["auto"]="6*1";
+w["auto-synchron"]="6*1";
+w["autoidx"]="0*2";
+w["autoidx.xsl"]="0*2";
+w["autoidx.xsl:"]="0*4";
+w["automat"]="9*1";
+w["avail"]="3*1,8*1,9*2,10*3";
+w["away"]="12*1";
+w["back"]="14*1";
+w["backward"]="6*1";
+w["bar."]="15*1";
+w["base"]="0*1,3*52,5*1,6*2,10*5,15*1";
+w["basedir"]="8*1";
+w["basic"]="0*1";
+w["be"]="8*1";
+w["been"]="8*1";
+w["behav"]="12*1";
+w["below"]="8*1";
+w["below."]="8*1,13*1";
+w["better"]="8*1";
+w["between"]="2*1,3*1";
+w["bi"]="2*1";
+w["bi-gram"]="2*1";
+w["bin"]="8*4";
+w["binari"]="8*1";
+w["bit"]="9*1";
+w["bitmap"]="4*1";
+w["bits."]="9*1";
+w["bob"]="4*1,15*1";
+w["bold"]="6*1";
+w["book"]="4*1";
+w["both"]="14*1";
+w["box"]="6*1";
+w["break"]="2*1";
+w["brief"]="6*1,15*1";
+w["brower"]="4*1";
+w["browser"]="0*4,2*2,3*1,4*2,5*2,6*1,7*1,8*2,9*1,10*1,12*1,13*1,14*1,15*1";
+w["browser."]="0*1,2*1,3*1,4*1,5*1,6*1,7*1,8*2,9*1,10*1,12*1,13*1,14*1,15*1";
+w["bsd"]="3*2";
+w["bsd-style"]="3*1";
+w["build"]="0*3,1*1,5*1,6*3,8*13,9*1,10*3,13*1,16*1";
+w["build-index"]="10*1";
+w["build.properti"]="8*1,9*1,10*1,13*1";
+w["build.xml"]="1*1,8*11,16*1";
+w["build.xml."]="8*1";
+w["built"]="5*1";
+w["but"]="3*1,8*1,10*2";
+w["button"]="5*1";
+w["buy"]="1*1,16*1";
+w["c"]="0*2,3*1,8*3";
+w["c:"]="0*4,8*3";
+w["cach"]="4*5";
+w["cache-control"]="4*3";
+w["call"]="2*1,5*1";
+w["can"]="0*6,2*3,5*2,6*5,8*4,9*1,10*3,13*1,15*2";
+w["caus"]="4*3,15*1";
+w["certain"]="4*1";
+w["ch03"]="2*1";
+w["ch03.html"]="2*1";
+w["chang"]="2*1,3*1,4*1,8*1,9*1,10*3,15*3";
+w["chapter"]="2*1,11*4,12*1,15*1";
+w["chapterinfo"]="15*1";
+w["charact"]="4*1";
+w["charg"]="3*1";
+w["check"]="0*1";
+w["checkout"]="2*1";
+w["chines"]="2*1,3*1,6*1,8*1,10*2";
+w["chm"]="6*1";
+w["chrome"]="0*1";
+w["chunk"]="5*2,6*1,15*2";
+w["cjk"]="2*2,10*2";
+w["cjkv"]="7*1,10*1,14*2";
+w["claim"]="3*1";
+w["class"]="9*1,10*1";
+w["classpath"]="0*1,8*5,9*2";
+w["classpath."]="9*1";
+w["click."]="2*1";
+w["client"]="2*2,6*1";
+w["client-sid"]="2*1,6*1";
+w["cn"]="10*2";
+w["co"]="3*1";
+w["code"]="0*1,2*1,3*4,5*1,6*1,10*9,13*6";
+w["code."]="10*1";
+w["code:"]="5*1";
+w["collaps"]="5*1,6*1";
+w["collapsed:"]="5*1";
+w["color"]="6*1,15*1";
+w["come"]="9*1,15*1";
+w["command"]="2*2,8*4,9*1";
+w["command-lin"]="9*1";
+w["command."]="2*1";
+w["comment"]="8*1";
+w["comments."]="8*1";
+w["common"]="2*1,3*1,6*1,15*7";
+w["commons:"]="8*1";
+w["compani"]="5*1";
+w["compar"]="2*1";
+w["compil"]="10*1";
+w["complet"]="4*3,15*1";
+w["compress"]="4*3";
+w["concern"]="9*1";
+w["condit"]="3*1";
+w["conditions:"]="3*1";
+w["conf"]="4*1";
+w["configur"]="4*40,7*1,15*1";
+w["confirm"]="8*3";
+w["confus"]="3*1";
+w["connect"]="3*1";
+w["consid"]="14*1";
+w["contact"]="10*1";
+w["contain"]="2*1,3*1,8*1,9*1,10*1";
+w["content"]="2*4,3*2,5*6,6*5,7*5,9*1,10*2,11*5,12*8";
+w["content."]="2*1,9*1";
+w["content.format"]="2*1";
+w["content:"]="5*1";
+w["contract"]="3*1";
+w["contribut"]="3*1,14*1";
+w["contributor"]="3*1";
+w["control"]="4*3,5*1,13*1,15*1";
+w["control:"]="5*1";
+w["conveni"]="8*2";
+w["cooki"]="3*1,5*1,12*2";
+w["copi"]="3*3,8*3,10*1,13*2";
+w["copyright"]="3*5";
+w["core"]="9*1";
+w["correct"]="0*1,3*1,8*1,10*5";
+w["cosmet"]="3*1";
+w["could"]="4*1,8*1";
+w["cramer"]="3*4";
+w["creat"]="2*1,6*1,8*4";
+w["credit"]="3*1";
+w["csrc"]="8*2";
+w["css"]="4*5,5*3,6*1,15*8";
+w["css-base"]="5*1,6*1";
+w["css-style"]="5*1";
+w["css."]="15*1";
+w["currenc"]="1*2,16*1";
+w["current"]="0*1,10*3,14*1";
+w["currently."]="0*1";
+w["custom"]="5*2,7*1,8*1,15*48";
+w["d"]="0*1,8*1";
+w["damag"]="3*1";
+w["danish"]="14*1";
+w["data"]="2*1";
+w["david"]="3*6";
+w["day"]="1*1,4*1,16*1";
+w["deal"]="3*3";
+w["deep"]="15*1";
+w["default"]="2*1,8*1,9*2,15*1";
+w["default."]="8*1";
+w["defin"]="2*1,8*1";
+w["deflat"]="4*10";
+w["delet"]="8*1";
+w["demo"]="0*4";
+w["deploy"]="0*3";
+w["deriv"]="3*3";
+w["describ"]="7*1";
+w["descript"]="6*1";
+w["description."]="6*1";
+w["design"]="2*1,5*47,12*1";
+w["desir"]="8*2";
+w["desired-output-dir"]="8*1";
+w["detail"]="0*1,2*2,3*1,8*1,9*2";
+w["details."]="0*1,3*1,8*1,9*1";
+w["develop"]="3*1,12*51";
+w["differ"]="3*1,8*1";
+w["dir"]="8*6,13*1";
+w["direct"]="9*1,15*1";
+w["directori"]="2*2,3*1,8*15,9*3,13*4";
+w["directory."]="2*1,8*4,13*1";
+w["disabl"]="0*1,2*1,3*1,4*1,5*1,6*1,7*1,8*2,9*1,10*1,12*1,13*1,14*1,15*1";
+w["display"]="2*1";
+w["distribut"]="3*2,8*2,9*1";
+w["dita"]="0*1,3*3";
+w["dita-us"]="3*1";
+w["dita."]="0*1";
+w["div"]="5*1,12*1,15*2";
+w["divid"]="5*1";
+w["do"]="2*2,3*1,8*2,9*1,14*1";
+w["doc"]="2*1,8*3,12*51,15*7";
+w["docbkx"]="6*1,8*1";
+w["docbo"]="0*2";
+w["docbook"]="0*2,2*2,3*52,4*3,5*3,8*5,9*1,10*8,13*2,15*2";
+w["docbook-apps@list"]="10*1";
+w["docbook-apps@lists.oasis-open.org"]="10*1";
+w["docbook-webhelp"]="8*1,10*7";
+w["docbook-xsl-1"]="0*1";
+w["docbook-xsl-1.77.0"]="0*2";
+w["docbook."]="15*1";
+w["docbook.sourceforge.net"]="9*2";
+w["docs@@@"]="2*1";
+w["docsbook"]="9*1";
+w["docsbook-xsl-1"]="9*1";
+w["docsbook-xsl-1.76.1"]="9*1";
+w["docsr"]="13*6";
+w["docsrc"]="13*1";
+w["document"]="0*2,3*1,4*2,5*1,6*1,8*10,13*4";
+w["document."]="8*2,13*1";
+w["documentation."]="0*1,5*1,6*1";
+w["doe"]="0*2,2*2,4*1,8*1,9*1";
+w["does."]="4*1";
+w["doesn"]="9*1";
+w["don"]="8*1,15*1";
+w["donat"]="3*1";
+w["done"]="0*1,2*1,5*2";
+w["dostem"]="2*1";
+w["dot"]="3*4";
+w["doutput"]="8*1";
+w["down"]="3*1,13*5";
+w["download"]="4*1,8*1,9*1,10*1";
+w["drop"]="2*1";
+w["dtd"]="8*1";
+w["dtd."]="8*1";
+w["dutch"]="14*1";
+w["e"]="8*1,10*1,12*1";
+w["each"]="4*1,6*1";
+w["easi"]="10*1";
+w["easili"]="5*1,10*2";
+w["easily."]="10*1";
+w["eclips"]="6*1";
+w["edit"]="8*1,15*1";
+w["editor"]="3*1,8*1,10*1";
+w["editor."]="3*1";
+w["efault"]="8*1";
+w["element"]="15*1";
+w["element."]="0*2,15*1";
+w["els"]="9*1,10*7";
+w["email"]="10*1";
+w["empti"]="8*1";
+w["enabl"]="0*1,2*1,3*1,4*1,5*1,6*1,7*1,8*2,9*1,10*1,12*1,13*1,14*1,15*1";
+w["enable.stem"]="8*1";
+w["endors"]="9*1";
+w["engin"]="3*1,6*1";
+w["engine."]="6*1";
+w["english"]="2*1,6*1,8*1,10*3,14*1";
+w["englishstemm"]="10*1";
+w["enjoy"]="0*1,2*1,3*1,4*1,5*1,6*1,7*1,8*1,9*1,10*1,12*1,13*1,14*1,15*1";
+w["environ"]="8*4,9*1";
+w["equalsignorecas"]="10*3";
+w["error"]="0*2";
+w["error."]="0*2";
+w["etc"]="2*1,5*1,6*1,8*1";
+w["etc."]="2*1,5*1,6*1,8*3,15*1";
+w["event"]="3*1";
+w["ex"]="2*1";
+w["ex:"]="2*1";
+w["exact"]="10*1,12*1";
+w["exampl"]="3*6,8*5,10*5,13*13,15*1";
+w["example."]="10*1";
+w["example:"]="8*4";
+w["except"]="3*1";
+w["exist"]="2*1,3*1";
+w["exist."]="3*1,8*1";
+w["explain"]="4*1";
+w["expos"]="6*1";
+w["express"]="3*1";
+w["ext"]="10*2";
+w["extend"]="10*2";
+w["extens"]="0*2,2*1,4*1,8*2,9*1,10*1";
+
diff --git a/applications/content/template/docbook/webhelp/docs/content/search/index-2.js b/applications/content/template/docbook/webhelp/docs/content/search/index-2.js
new file mode 100644
index 0000000..c56f9bf
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/search/index-2.js
@@ -0,0 +1,378 @@
+//Auto generated index for searching by xsl-webhelpindexer for DocBook Webhelp.# Kasun Gajasinghe, University of Moratuwa
+w["extension:"]="4*1";
+w["extent"]="2*1";
+w["f"]="9*1,12*1,14*1";
+w["fair"]="10*1";
+w["fals"]="2*1,8*1";
+w["false."]="2*1";
+w["faq"]="0*51";
+w["featur"]="0*1,2*2,3*1,4*1,5*2,6*7,7*1,8*1,9*1,10*1,12*1,13*1,14*1,15*1";
+w["feature."]="5*1";
+w["feel"]="15*1";
+w["fetch"]="9*1";
+w["few"]="5*1,10*1";
+w["figur"]="3*5,8*3,13*6";
+w["fil"]="2*2";
+w["file"]="0*2,2*10,3*5,4*8,5*1,6*1,8*17,9*1,10*1,13*2,15*4";
+w["file."]="4*1,10*1,15*1";
+w["file:"]="0*4";
+w["fileref"]="13*1";
+w["files."]="4*2,8*1";
+w["files:"]="2*1,15*1";
+w["fileset"]="8*1,13*1";
+w["filesmatch"]="4*6";
+w["find"]="0*4,10*1";
+w["finnish"]="14*1";
+w["firefox"]="0*1";
+w["first"]="2*1,3*1";
+w["fit"]="3*1";
+w["five"]="2*1";
+w["fl"]="2*1";
+w["flv"]="4*2";
+w["folder"]="0*1,2*2,9*1,10*2,15*1";
+w["folder."]="2*1,10*1";
+w["foll"]="0*1";
+w["follos"]="8*1";
+w["follow"]="0*2,2*1,3*2,4*2,5*1,7*1,8*2,9*2,10*1,13*2,14*1,15*1";
+w["foo"]="1*1";
+w["foo."]="16*1";
+w["foobar"]="2*1";
+w["form"]="14*1";
+w["form."]="14*1";
+w["format"]="6*3,13*1";
+w["fortun"]="10*1";
+w["forward"]="6*1";
+w["four"]="0*1";
+w["fr"]="8*1,10*4";
+w["frameset"]="5*1,6*1,12*1,15*1";
+w["frameset."]="6*1,12*2";
+w["free"]="3*1";
+w["french"]="6*1,8*1,10*3";
+w["french."]="2*1";
+w["frenchstemm"]="10*1";
+w["frequent"]="0*1";
+w["full"]="6*1,10*1";
+w["fulli"]="2*1,5*1";
+w["furnish"]="3*1";
+w["further"]="2*1,5*1,15*1";
+w["gajasingh"]="3*4";
+w["general"]="10*1,15*1";
+w["generat"]="0*1,2*1,5*3,6*1,7*1,8*50,10*1";
+w["german"]="2*1,6*1,8*1,10*3";
+w["german."]="6*1,14*1";
+w["germanstemm"]="10*1";
+w["get"]="0*2,2*1,6*1,10*1,15*1";
+w["gif"]="4*2";
+w["given."]="13*1";
+w["gmail"]="3*2";
+w["go"]="9*1";
+w["googl"]="3*1,6*1";
+w["gorithm"]="10*1";
+w["gracious"]="3*1";
+w["gram"]="2*1";
+w["grant"]="3*1";
+w["graphic"]="8*5,13*2";
+w["group"]="6*1";
+w["guid"]="0*1,4*3,15*1";
+w["h"]="8*1";
+w["handl"]="2*2,15*1";
+w["happen"]="0*1,2*1";
+w["hartl"]="3*1";
+w["has"]="0*2,2*2,8*2,13*1";
+w["hat"]="6*1";
+w["have"]="2*1,4*1,8*3,9*5,10*1,15*1";
+w["haven"]="0*1";
+w["having."]="9*1";
+w["head"]="5*1";
+w["header"]="4*3,5*2,15*1";
+w["header:"]="5*1";
+w["height"]="15*1";
+w["help"]="3*51,6*3,9*1,12*1,15*3";
+w["help."]="6*1";
+w["here"]="8*1,9*1,13*1";
+w["here."]="8*2,13*1";
+w["herebi"]="3*1";
+w["higher"]="8*1,9*1";
+w["higher."]="8*2";
+w["highlight"]="6*1";
+w["hour"]="4*1";
+w["howev"]="8*1";
+w["href"]="0*2";
+w["htaccess"]="4*1";
+w["htm"]="4*2,8*1";
+w["html"]="0*3,2*2,4*7,5*1,6*1,8*4,15*1";
+w["htmlfileinfolist"]="2*1";
+w["htmlfileinfolist.j"]="2*1";
+w["htmlfilelist"]="2*1";
+w["htmlfilelist.j"]="2*1";
+w["htmlsearch"]="0*2,3*3";
+w["http"]="9*1";
+w["http:"]="9*2";
+w["httpd"]="4*1";
+w["httpd.conf"]="4*1";
+w["hungarian"]="14*1";
+w["ico"]="4*2";
+w["ide"]="2*1";
+w["idea"]="2*1";
+w["identifi"]="3*1,8*1";
+w["ie"]="0*1";
+w["if"]="0*1,2*2,4*2,6*1,8*9,9*1,10*12,12*2,13*1,15*1";
+w["ignor"]="8*1";
+w["imag"]="3*2,7*1,8*11,13*72";
+w["imagedata"]="13*1";
+w["imageobject"]="13*2";
+w["images."]="3*1,13*5";
+w["implement"]="2*1,6*2,12*2,14*2";
+w["implemented."]="2*1,12*1";
+w["impli"]="3*1";
+w["import"]="6*1,8*84";
+w["imposs"]="6*1";
+w["improv"]="3*2,4*1";
+w["includ"]="0*1,2*3,3*4,5*4,6*2,10*1,14*1,15*1";
+w["index"]="0*5,2*14,3*4,4*2,6*2,7*1,8*5,9*58,10*12,14*1";
+w["index-"]="2*2";
+w["index.html"]="8*2";
+w["indexer-languag"]="8*1";
+w["indexer-language-cod"]="2*2";
+w["indexer."]="0*2,2*1,9*1,10*1";
+w["indexerlanguag"]="10*5";
+w["indexerlanguage.equalsignorecas"]="10*6";
+w["indexermain"]="9*1";
+w["indexertask"]="9*2,10*1";
+w["indexertask.java"]="10*2";
+w["indexing:"]="2*1";
+w["indic"]="8*2";
+w["indicated:"]="8*1";
+w["individu"]="3*2";
+w["inflect"]="11*1,16*46";
+w["inform"]="0*3,4*1,8*2,9*1,15*1";
+w["information."]="0*1";
+w["initi"]="3*1,10*15";
+w["input"]="8*8,13*1,14*1";
+w["input-images-basedir"]="8*1";
+w["input-images-dir"]="8*2,13*1";
+w["input-xml"]="8*3";
+w["input-xml."]="8*1";
+w["insid"]="2*1,15*1";
+w["instal"]="7*1,8*12,9*1";
+w["instruct"]="8*2";
+w["integr"]="6*1,10*1";
+w["intellij"]="2*1";
+w["interest"]="15*1";
+w["internet"]="6*1";
+w["into"]="6*2,15*1";
+w["introduct"]="6*51";
+w["invoc"]="9*1";
+w["invocation."]="9*1";
+w["invok"]="2*1,9*2";
+w["involved."]="2*1";
+w["iphone."]="0*1";
+w["ipod"]="0*1";
+w["ipt"]="14*1";
+w["issu"]="9*1";
+w["it_stemm"]="10*1";
+w["it_stemmer.j"]="10*1";
+w["italian"]="10*5,14*1";
+w["italianstemm"]="10*4";
+w["ja"]="8*4,10*2";
+w["januari"]="3*1";
+w["japan"]="10*1";
+w["japanes"]="2*1,3*1,6*1,8*1,10*1";
+w["jar"]="0*1,2*1,8*9,9*5";
+w["java"]="0*6,8*6,9*1,10*5,14*3";
+w["java."]="10*1";
+w["javascr"]="14*1";
+w["javascrip"]="4*1";
+w["javascript"]="0*3,2*5,3*2,4*8,5*3,6*2,7*2,8*2,9*2,10*6,12*2,13*2,14*5,15*2";
+w["javascript."]="2*1,14*1";
+w["jdk"]="8*1,9*1";
+w["jdk."]="8*1";
+w["jpeg"]="4*2";
+w["jpg"]="4*2,13*11";
+w["jqueri"]="0*2,3*3,5*3,15*7";
+w["jquery-ui"]="5*1";
+w["jquery-ui-1"]="15*1";
+w["jquery-ui-1.8.2.custom.css"]="15*1";
+w["jquery.cookie.j"]="3*1";
+w["jquery.treeview.css"]="15*1";
+w["jqueryui"]="15*1";
+w["jre"]="9*1";
+w["js"]="2*6,3*1,4*2,10*3";
+w["kasun"]="0*6,3*4";
+w["kasunbg"]="3*2";
+w["key"]="1*1,16*1";
+w["kind"]="3*1";
+w["klaus"]="3*1";
+w["ko"]="10*2";
+w["korean"]="2*1,3*1,6*1,10*2";
+w["languag"]="2*5,3*2,6*2,7*1,8*3,9*1,10*20,14*49";
+w["language-cod"]="10*2";
+w["language."]="8*1,9*1,10*2";
+w["languages."]="14*1";
+w["latest"]="9*1";
+w["layer"]="8*1";
+w["layout"]="6*1";
+w["left"]="5*1,12*1,15*1";
+w["leftnavig"]="15*1";
+w["level"]="8*1";
+w["li"]="5*1";
+w["liabil"]="3*1";
+w["liabl"]="3*1";
+w["lib"]="9*1";
+w["librari"]="2*1";
+w["library."]="2*1";
+w["licens"]="3*4";
+w["license."]="3*5";
+w["license.txt"]="3*1";
+w["like"]="2*1,6*1,10*1";
+w["limit"]="3*2";
+w["line"]="0*2,4*2,8*2,9*1,10*1";
+w["line."]="8*1";
+w["link"]="6*2,15*2";
+w["linux"]="9*1";
+w["list"]="3*10,5*2,8*1,10*3,13*1";
+w["ll"]="9*1,10*1";
+w["ll."]="9*1";
+w["load"]="5*1,12*1";
+w["local"]="8*1";
+w["locat"]="2*1,8*5,10*1";
+w["location."]="10*1";
+w["log"]="6*1";
+w["logo"]="5*1";
+w["long"]="4*1";
+w["look"]="2*1,5*1,15*1";
+w["ltd"]="3*1";
+w["ltd."]="3*1";
+w["lucen"]="3*1,6*1,9*2";
+w["lucene-analyzers-3"]="9*1";
+w["lucene-analyzers-3.0.0.jar"]="9*1";
+w["lucene-core-3"]="9*1";
+w["lucene-core-3.0.0.jar"]="9*1";
+w["m"]="0*2";
+w["made"]="5*1";
+w["mail"]="10*1";
+w["main"]="2*1,5*1,9*1";
+w["maintain"]="3*1";
+w["make"]="4*1,8*1,10*1";
+w["manag"]="8*1";
+w["mani"]="6*1";
+w["martin"]="14*1";
+w["match"]="2*1";
+w["matrix"]="0*1";
+w["maven"]="6*1,8*1";
+w["max"]="4*3";
+w["max-ag"]="4*3";
+w["may"]="8*1,9*1";
+w["mechan"]="2*2,14*2";
+w["mechanism."]="2*1";
+w["mediaobject"]="13*2";
+w["medium"]="5*1";
+w["merchant"]="3*1";
+w["merg"]="3*1";
+w["messag"]="8*1";
+w["meta"]="2*1";
+w["method"]="2*1";
+w["microsoft"]="6*1";
+w["miss"]="8*1";
+w["mit"]="3*2";
+w["model"]="6*1";
+w["modifi"]="3*1,8*2";
+w["more"]="0*3,4*1";
+w["most"]="0*2";
+w["move"]="2*1";
+w["multipl"]="15*1";
+w["must"]="4*2,8*3,9*1,12*1";
+w["must-revalid"]="4*2";
+w["mutandi"]="8*3";
+w["mutati"]="8*3";
+w["my"]="2*1";
+w["n"]="3*1";
+w["n."]="3*1";
+w["name"]="2*4,3*2,8*7,10*3,15*1";
+w["navig"]="5*4,12*1,15*1";
+w["navigation:"]="5*2";
+w["ncomment"]="8*1";
+w["necessari"]="8*2";
+w["necessary."]="15*1";
+w["need"]="0*3,2*1,8*3,9*3,10*3,13*1,14*1,15*2";
+w["need:"]="10*1";
+w["net"]="3*2,9*1";
+w["netbean"]="2*1";
+w["new"]="2*2,3*1,8*1,10*56,12*2,15*1";
+w["newli"]="8*1";
+w["next"]="5*1";
+w["nexwav"]="9*2,10*8";
+w["nice"]="5*1,6*1";
+w["no"]="2*1,3*2,15*1";
+w["non"]="7*1,8*1,10*1,14*46";
+w["non-cjkv"]="7*1,10*1,14*46";
+w["non-n"]="8*1";
+w["noninfring"]="3*1";
+w["noninfringement."]="3*1";
+w["norwegian"]="14*1";
+w["not"]="2*1,3*2,6*2,8*10";
+w["note"]="3*1,4*1,8*162,9*40,10*40,13*5";
+w["noth"]="15*1";
+w["notic"]="3*3";
+w["now"]="2*1,10*3";
+w["nquindex"]="9*2,10*6";
+w["ns"]="8*1";
+w["nuclei"]="16*1";
+w["nucleus"]="1*1";
+w["null"]="10*1";
+w["number"]="10*1";
+w["nwsearchfnt"]="2*2";
+w["nwsearchfnt.j"]="2*2";
+w["o"]="2*1,12*1";
+w["oasis-open"]="10*1";
+w["object"]="10*4";
+w["object."]="10*3";
+w["obtain"]="3*1";
+w["odd"]="4*1";
+w["ok"]="0*1";
+w["ok-xsl-1"]="0*1";
+w["ok-xsl-1.77.0"]="0*2";
+w["onc"]="8*1";
+w["one"]="2*1,10*1,15*1";
+w["onli"]="8*2,10*3,14*1";
+w["only."]="10*2";
+w["open"]="2*1,8*1,10*2";
+w["open.org"]="10*1";
+w["openstack"]="3*1";
+w["oper"]="0*2";
+w["option"]="9*1";
+w["org"]="10*1";
+w["organ"]="5*1";
+w["origin"]="3*1";
+w["other"]="0*2,3*6,6*1,7*1,8*3,10*2,14*46";
+w["others:"]="3*1";
+w["otherwis"]="3*2";
+w["ouput"]="8*1";
+w["out"]="3*1,6*1";
+w["output"]="0*3,2*1,4*1,5*1,6*2,7*2,8*57,10*1,13*2,15*47";
+w["output-dir"]="8*2";
+w["output."]="6*1,8*1";
+w["outsid"]="0*2";
+w["over"]="13*1";
+w["overal"]="5*1";
+w["overview"]="2*2,5*1,6*1,12*1";
+w["owe"]="0*1";
+w["own"]="2*1,6*3,8*3";
+w["oxygen"]="3*1";
+w["packag"]="3*3,7*52,8*8,10*1";
+w["package."]="6*1,8*1,10*1";
+w["page"]="3*1,5*5,6*2,12*4,15*1";
+w["page."]="12*1,15*1";
+w["pane"]="5*1,6*4,12*2";
+w["para"]="15*1";
+w["paramet"]="8*3,9*1";
+w["parameters."]="8*2";
+w["parent"]="5*1";
+w["part"]="2*1,3*1,5*1,9*1,15*1";
+w["particul"]="3*1";
+w["parts."]="2*1";
+w["pass"]="8*2";
+w["path"]="0*1,3*1,8*10,13*5";
+w["path-"]="8*4";
+w["paths."]="0*1";
+
diff --git a/applications/content/template/docbook/webhelp/docs/content/search/index-3.js b/applications/content/template/docbook/webhelp/docs/content/search/index-3.js
new file mode 100644
index 0000000..3872f38
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/search/index-3.js
@@ -0,0 +1,376 @@
+//Auto generated index for searching by xsl-webhelpindexer for DocBook Webhelp.# Kasun Gajasinghe, University of Moratuwa
+w["pattern"]="8*1,13*2";
+w["patterns."]="8*1,13*1";
+w["pdf"]="4*2";
+w["peopl"]="9*1";
+w["perform"]="4*1,15*1";
+w["performance."]="4*1";
+w["permiss"]="3*2";
+w["permit"]="3*1";
+w["persist"]="5*1";
+w["persist:"]="5*1";
+w["person"]="3*2";
+w["phrase"]="15*1";
+w["pie"]="3*1";
+w["place"]="6*1";
+w["plain"]="4*1";
+w["pleas"]="0*1,2*1,3*1,4*1,5*1,6*1,7*1,8*1,9*1,10*1,12*1,13*1,14*2,15*1";
+w["plugin"]="0*2,3*2,5*2,6*1,8*1";
+w["plugin."]="3*1";
+w["png"]="4*2";
+w["point"]="8*2,15*1";
+w["popul"]="15*1";
+w["popular"]="10*1";
+w["porter"]="14*1";
+w["portion"]="3*1";
+w["portugues"]="14*1";
+w["posit"]="5*1,15*4";
+w["positioning.css"]="5*1,15*1";
+w["positions."]="15*1";
+w["possibl"]="3*1";
+w["pretti"]="9*1";
+w["prev"]="5*1";
+w["prior"]="3*1,9*1";
+w["privat"]="10*2";
+w["probabl"]="9*1";
+w["problem"]="8*1";
+w["problemat"]="1*46,11*2,16*46";
+w["procedur"]="8*3,13*1";
+w["process"]="2*2,5*1,8*3,9*2";
+w["processor"]="0*1,8*2";
+w["processors."]="8*1";
+w["produc"]="6*1";
+w["product"]="0*3";
+w["program"]="8*6";
+w["project"]="2*1,3*2,8*2,14*2";
+w["project."]="3*1";
+w["promot"]="3*1";
+w["prompt"]="8*2";
+w["prompt:"]="8*2";
+w["properti"]="8*5,10*2,13*1";
+w["provid"]="0*1,2*1,3*4,6*1,8*1,12*1";
+w["public"]="3*1,4*2,6*1";
+w["publish"]="3*2";
+w["punctuat"]="2*1,8*1";
+w["purpos"]="3*1";
+w["put"]="8*1,9*1,13*1";
+w["quain"]="3*1";
+w["queri"]="2*7,6*1,8*1";
+w["querying:"]="2*1";
+w["question"]="0*1,3*1,10*1";
+w["question."]="3*1";
+w["r"]="6*1,8*1";
+w["rate"]="6*1";
+w["read"]="12*1";
+w["readm"]="3*51,8*1";
+w["readme.xml"]="8*1";
+w["readme:"]="3*51";
+w["reason"]="0*2";
+w["recommend"]="4*41,7*1,15*1";
+w["recompil"]="2*1";
+w["redmond"]="15*2";
+w["refer"]="8*2,13*1";
+w["relat"]="3*1,8*1,13*5,15*1";
+w["releas"]="3*3";
+w["remov"]="9*1";
+w["render"]="12*1";
+w["replac"]="15*1";
+w["requir"]="6*2,14*1";
+w["resid"]="2*1,9*1";
+w["resourc"]="4*1";
+w["restor"]="12*1";
+w["restrict"]="3*1";
+w["result"]="2*2,3*1,6*5,12*2,15*1";
+w["result."]="6*1";
+w["results."]="2*1,6*1";
+w["return"]="2*1";
+w["revalid"]="4*2";
+w["right"]="15*1";
+w["role"]="15*1";
+w["romanian"]="14*1";
+w["root"]="2*1,10*1";
+w["rss"]="4*1";
+w["run"]="2*2,8*2,9*2,10*2";
+w["russian"]="14*1";
+w["s"]="0*2,2*2,3*1,4*1,8*1,9*3,10*2,14*2,15*1";
+w["safari"]="0*1";
+w["safe"]="8*1";
+w["sale"]="3*1";
+w["same"]="8*2";
+w["sampl"]="3*1,13*21";
+w["sample.jpg"]="13*10";
+w["save"]="12*1";
+w["saxhtmlindex"]="10*1";
+w["saxhtmlindex.java"]="10*2";
+w["saxon"]="0*1,8*7";
+w["saxon-6"]="0*1";
+w["saxon-6.5.5.jar"]="0*1,8*1";
+w["saxon.jar"]="8*1";
+w["say"]="1*1,16*1";
+w["score"]="2*1,6*2";
+w["script"]="6*3,8*1,9*1";
+w["script."]="9*1";
+w["search"]="1*46,2*51,3*3,4*2,5*4,6*13,7*1,8*3,9*46,10*3,11*2,12*4,14*3,15*1,16*46";
+w["search-result."]="6*1";
+w["search."]="6*2,12*1";
+w["searching."]="2*1";
+w["section"]="5*1,7*1,11*46,13*1,15*1";
+w["sectioninfo"]="15*1";
+w["see"]="0*1,3*1,4*1,8*6,9*1,10*2,13*1,15*1";
+w["see."]="5*1";
+w["seem"]="9*1";
+w["self"]="10*1";
+w["sell"]="3*1";
+w["separ"]="5*1";
+w["serch"]="2*1";
+w["serv"]="4*1";
+w["server"]="2*1,4*2";
+w["servic"]="6*1";
+w["set"]="0*1,4*4,8*5,9*1,15*1";
+w["setoutputfilt"]="4*1";
+w["setting."]="4*1";
+w["shall"]="3*3";
+w["share"]="0*6,8*5,9*1";
+w["should"]="2*1,8*2,9*1";
+w["show"]="6*2,13*1";
+w["shown"]="6*1,13*1";
+w["side"]="2*2,6*1";
+w["side."]="2*1";
+w["sidetreecontrol"]="5*1";
+w["similar"]="6*1";
+w["simpl"]="10*1,13*1";
+w["simple."]="10*1";
+w["simpli"]="2*2,8*1,15*1";
+w["simplifi"]="2*1";
+w["sinc"]="2*1,4*1";
+w["site."]="0*1,2*1,3*1,4*1,5*1,6*1,7*1,8*1,9*1,10*1,12*1,13*1,14*1,15*1";
+w["sky"]="1*1,16*1";
+w["small"]="6*3";
+w["smooth"]="9*1";
+w["snapshot"]="9*4";
+w["snowbal"]="3*1,10*6";
+w["snowballstemm"]="10*2";
+w["so"]="0*1,2*1,3*2,8*1,9*1,15*2";
+w["soft"]="3*1";
+w["softwar"]="3*15";
+w["software."]="3*2";
+w["some"]="1*92,2*1,3*2,8*1,9*2,11*2,16*92";
+w["sophist"]="6*1";
+w["sourc"]="2*2,8*1,13*2";
+w["source."]="2*1";
+w["sourceforg"]="9*1";
+w["sources."]="2*1";
+w["space"]="2*1";
+w["spanish"]="14*1";
+w["specifi"]="3*1,8*1,10*5";
+w["src"]="10*8";
+w["stale"]="4*1";
+w["start"]="8*1";
+w["state"]="12*2";
+w["stayton"]="4*1,15*1";
+w["stem"]="2*6,6*2,8*2,14*3";
+w["stemmer"]="2*3,3*2,8*1,10*74,12*1,14*3";
+w["stemmer."]="6*1,10*1";
+w["stemming."]="2*1";
+w["step"]="0*1,8*1";
+w["steps."]="10*1";
+w["store"]="2*2,4*1,8*2";
+w["string"]="3*1,10*3";
+w["structur"]="5*4";
+w["structure."]="5*2";
+w["studi"]="15*1";
+w["stuff"]="15*1";
+w["stuff."]="15*1";
+w["style"]="3*1,5*4,15*1";
+w["stylesheet"]="3*1,8*1";
+w["stylesheet-path"]="8*1";
+w["styling."]="5*1";
+w["subdirectori"]="13*1";
+w["subject"]="3*1";
+w["sublicens"]="3*1";
+w["substanti"]="3*1";
+w["such"]="2*1,4*1,10*1";
+w["summari"]="2*1,15*2";
+w["summaries."]="15*1";
+w["summer"]="3*1";
+w["support"]="0*2,2*3,3*1,6*3,7*1,10*3,14*49";
+w["supportedlanguag"]="3*1,10*8";
+w["suppress.footer.navig"]="8*1";
+w["sure"]="10*1";
+w["svn"]="2*1";
+w["swedish"]="14*1";
+w["swf"]="4*2";
+w["synchron"]="6*1";
+w["syncro"]="3*1";
+w["system"]="0*2,6*1,8*3,12*1,15*1";
+w["system."]="6*1,8*2";
+w["system:"]="8*1";
+w["t"]="0*2,2*1,4*1,6*1,8*1,9*1,15*1";
+w["tab"]="5*7";
+w["tab."]="5*2,8*1";
+w["tab:"]="5*1";
+w["tabl"]="5*3,6*2,7*5,12*8";
+w["tabs."]="5*1";
+w["tag"]="5*2";
+w["target"]="6*1";
+w["target."]="6*1";
+w["task"]="9*1,14*1";
+w["technic"]="6*1";
+w["tell"]="8*1";
+w["templat"]="3*2,6*1,10*2";
+w["template."]="14*1";
+w["term"]="6*2";
+w["test"]="0*3,8*5,11*92";
+w["test-ouput"]="8*1";
+w["test-output"]="8*3";
+w["text"]="2*1,4*5,8*1,10*1";
+w["them"]="4*1,9*1";
+w["them."]="2*1";
+w["theme"]="15*7";
+w["theme-redmond"]="15*3";
+w["then"]="2*1,6*1,10*6,13*1,15*1";
+w["there"]="0*1,2*1,10*1";
+w["therefor"]="14*1";
+w["these"]="2*1,4*2,9*3,12*1,14*1,15*1";
+w["they"]="8*1,12*1";
+w["thing"]="4*1";
+w["thingbag"]="3*2";
+w["those"]="4*1,13*1";
+w["though"]="8*1";
+w["three"]="2*2,5*1,9*1";
+w["time"]="6*1";
+w["tion"]="4*1";
+w["tip"]="8*41,15*40";
+w["titl"]="2*1,5*1,13*2";
+w["tml"]="8*1";
+w["tml.extens"]="8*1";
+w["toc"]="5*2,6*4,15*1";
+w["toc."]="6*1";
+w["todo"]="4*1";
+w["todo:"]="4*1";
+w["token"]="2*2,3*1";
+w["too"]="2*1";
+w["tool"]="8*1";
+w["tools.jar"]="8*1";
+w["top"]="6*1,8*1,15*1";
+w["top-level"]="8*1";
+w["topic"]="15*1";
+w["topic."]="5*1";
+w["tort"]="3*1";
+w["total"]="2*1";
+w["transform"]="0*3";
+w["travers"]="2*1";
+w["tree"]="5*6,6*1,12*1,13*2,15*1";
+w["tree."]="6*1,15*1";
+w["tree:"]="5*1,13*1";
+w["treeview"]="5*2,15*3";
+w["tri"]="1*1,8*1,16*1";
+w["tru"]="8*1";
+w["true"]="5*1,8*3";
+w["trunk"]="2*3";
+w["turkish"]="14*1";
+w["two"]="2*1,5*1,9*2,10*2,15*1";
+w["txt"]="3*1,4*2";
+w["type"]="4*1,8*4";
+w["u"]="5*1,8*1";
+w["ui"]="5*1,15*1";
+w["ul"]="5*1";
+w["unchang"]="15*1";
+w["unchanged."]="15*1";
+w["uncompress"]="4*1";
+w["under"]="3*5,9*1";
+w["understandable."]="10*1";
+w["undertak"]="14*1";
+w["unnecessari"]="2*1";
+w["unord"]="5*1";
+w["unzip"]="8*2";
+w["up"]="1*1,2*2,4*1,5*1,8*1,9*1,10*1,13*1,14*1,15*1,16*1";
+w["updat"]="4*1";
+w["us"]="10*1";
+w["use"]="2*2,3*5,5*2,6*7,7*53,8*8,10*1,13*5,14*2,15*48";
+w["used."]="2*1";
+w["user"]="0*6,2*2,3*1,4*1,6*1,8*1,14*1";
+w["usr"]="0*6,8*5,9*1";
+w["utf"]="4*1";
+w["utf-8"]="4*1";
+w["va"]="8*3";
+w["valid"]="8*2";
+w["validate-against-dtd"]="8*1";
+w["valu"]="8*4";
+w["var"]="2*1";
+w["vari"]="1*1,16*1";
+w["variabl"]="8*3,9*1";
+w["variable."]="9*1";
+w["variables."]="8*1";
+w["various"]="4*1";
+w["veri"]="10*1";
+w["verison"]="14*1";
+w["version"]="0*1,3*1,8*3,9*4,10*2,14*2";
+w["versions."]="9*1";
+w["w"]="2*1";
+w["wan"]="0*1";
+w["warn"]="0*2";
+w["warranti"]="3*7";
+w["warranty:"]="3*1";
+w["way"]="9*1,15*1";
+w["ways:"]="15*1";
+w["we"]="0*1,2*1,4*1,5*2,9*3";
+w["web"]="3*51,4*1,6*2,9*1";
+w["web-bas"]="3*51,6*1";
+w["webhelp"]="0*15,2*2,3*2,5*2,7*1,8*55,9*8,10*10,12*1,13*7";
+w["webhelp-index"]="0*2";
+w["webhelp-indexer."]="0*2";
+w["webhelp."]="8*1,10*2,13*1";
+w["webhelp.include.search.tab"]="8*1";
+w["webhelp.indexer.languag"]="3*1,8*1,10*2";
+w["webhelp.xsl"]="8*3";
+w["webhelpindex"]="2*3,9*1";
+w["webhelpindexer.jar"]="2*1,9*1";
+w["week"]="4*1";
+w["weight"]="3*1,6*1";
+w["well"]="0*3,9*1";
+w["well."]="9*1";
+w["were"]="3*1,9*1,12*2";
+w["whether"]="2*1,3*1";
+w["which"]="2*1,5*1,8*2,9*1,15*2";
+w["whom"]="3*1";
+w["width"]="15*1";
+w["wiki"]="0*1";
+w["window"]="7*1,8*7";
+w["windows."]="7*1";
+w["without"]="3*4,6*1";
+w["word"]="1*46,2*8,6*1,11*2,16*46";
+w["work"]="8*2";
+w["would"]="2*1";
+w["write"]="10*1";
+w["written"]="3*2,8*1,10*1";
+w["written."]="8*1";
+w["x"]="0*1,4*1,8*1";
+w["x-javascript"]="4*1";
+w["xerc"]="8*1";
+w["xercesimpl"]="8*2,9*1";
+w["xercesimpl.jar"]="0*2,8*4,9*1";
+w["xhtml"]="0*9,4*1,8*1";
+w["xhtml."]="0*1";
+w["xml"]="0*2,1*1,3*52,4*7,8*19,9*1,16*1";
+w["xml-api"]="8*2,9*1";
+w["xml-apis.jar"]="0*2,8*4,9*1";
+w["xml-common"]="8*1";
+w["xml-commons:"]="8*1";
+w["xml."]="8*1";
+w["xml:"]="4*1";
+w["xp"]="8*1";
+w["xsl"]="0*2,2*2,4*3,5*1,8*3,9*2,15*2";
+w["xsl-webhelpindex"]="2*1";
+w["xsl:"]="0*2,4*3,15*1";
+w["xsls"]="8*1";
+w["xslt"]="0*3,8*3";
+w["xslt-processor-classpath"]="0*2,8*2";
+w["yahoogroup"]="3*1";
+w["yahoogroup."]="3*1";
+w["yes"]="0*1";
+w["you"]="0*3,2*3,4*3,5*1,6*5,8*16,9*4,10*7,12*2,13*1,14*2,15*4";
+w["your"]="0*1,2*2,3*1,4*4,5*1,6*3,7*1,8*19,9*1,10*7,12*1,13*4,14*1,15*2";
+w["yourfil"]="8*1";
+w["yourfile.xml"]="8*2";
+
diff --git a/applications/content/template/docbook/webhelp/docs/content/search/l10n.js b/applications/content/template/docbook/webhelp/docs/content/search/l10n.js
new file mode 100644
index 0000000..f25bb8f
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/search/l10n.js
@@ -0,0 +1,5 @@
+
+	      //Resource strings for localization
+	      var localeresource = new Object;
+	      localeresource["search_no_results"]="Your search returned no results.";
+            
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/docs/content/search/nwSearchFnt.js b/applications/content/template/docbook/webhelp/docs/content/search/nwSearchFnt.js
new file mode 100644
index 0000000..dbf19db
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/search/nwSearchFnt.js
@@ -0,0 +1,881 @@
+/*----------------------------------------------------------------------------
+ * JavaScript for webhelp search
+ *----------------------------------------------------------------------------
+ This file is part of the webhelpsearch plugin for DocBook WebHelp
+ Copyright (c) 2007-2008 NexWave Solutions All Rights Reserved.
+ www.nexwave.biz Nadege Quaine
+ http://kasunbg.blogspot.com/ Kasun Gajasinghe
+ */
+
+//string initialization
+var htmlfileList = "htmlFileInfoList.js";
+var htmlfileinfoList = "htmlFileInfoList.js";
+var useCJKTokenizing = false;
+
+var w = new Object();
+var scoring = new Object();
+
+var searchTextField = '';
+var no = 0;
+var noWords = 0;
+var partialSearch = "<font class=\"highlightText\">There is no page containing all the search terms.<br>Partial results:</font>";
+var warningMsg = '<div style="padding: 5px;margin-right:5px;;background-color:#FFFF00;">';
+warningMsg+='<b>Please note that due to security settings, Google Chrome does not highlight';
+warningMsg+=' the search results in the right frame.</b><br>';
+warningMsg+='This happens only when the WebHelp files are loaded from the local file system.<br>';
+warningMsg+='Workarounds:';
+warningMsg+='<ul>';
+warningMsg+='<li>Try using another web browser.</li>';
+warningMsg+='<li>Deploy the WebHelp files on a web server.</li>';
+warningMsg+='</div>';
+txt_filesfound = 'Results';
+txt_enter_at_least_1_char = "You must enter at least one character.";
+txt_enter_more_than_10_words = "Only first 10 words will be processed.";
+txt_browser_not_supported = "Your browser is not supported. Use of Mozilla Firefox is recommended.";
+txt_please_wait = "Please wait. Search in progress...";
+txt_results_for = "Results for: ";
+
+/* This function verify the validity of search input by the user
+  Cette fonction verifie la validite de la recherche entrre par l utilisateur */
+function Verifie(searchForm) {
+
+    // Check browser compatibility
+    if (navigator.userAgent.indexOf("Konquerer") > -1) {
+
+        alert(txt_browser_not_supported);
+        return;
+    }
+
+    searchTextField = trim(document.searchForm.textToSearch.value);
+    searchTextField = searchTextField.replace(/['"]/g,'');
+	var expressionInput = searchTextField;
+    $.cookie('textToSearch', expressionInput);
+
+    if (expressionInput.length < 1) {
+
+        // expression is invalid
+        alert(txt_enter_at_least_1_char);
+        // reactive la fenetre de search (utile car cadres)
+
+        document.searchForm.textToSearch.focus();
+    }
+    else {
+    var splitSpace = searchTextField.split(" ");
+       var splitWords = [];
+        for (var i = 0 ; i < splitSpace.length ; i++) {
+          var splitDot = splitSpace[i].split(".");
+          for (var i1 = 0; i1 < splitDot.length; i1++) {
+               var splitColon = splitDot[i1].split(":");
+            for (var i2 = 0; i2 < splitColon.length; i2++) {
+                var splitDash = splitColon[i2].split("-");
+                 for (var i3 = 0; i3 < splitDash.length; i3++) {
+                     if (splitDash[i3].split("").length > 0) {
+                           splitWords.push(splitDash[i3]);
+                       }
+                 }
+            }
+          }
+       }
+       noWords = splitWords;
+    	if (noWords.length > 9){
+          // Allow to search maximum 10 words
+    		alert(txt_enter_more_than_10_words);
+    		expressionInput = '';
+    		for (var x = 0 ; x < 10 ; x++){
+    			expressionInput = expressionInput + " " + noWords[x]; 
+    		}    		
+    		Effectuer_recherche(expressionInput);
+    		document.searchForm.textToSearch.focus();
+    	} else {
+	        // Effectuer la recherche
+             expressionInput = '';
+          for (var x = 0 ; x < noWords.length ; x++) {
+                 expressionInput = expressionInput + " " + noWords[x]; 
+             }
+	        Effectuer_recherche(expressionInput);
+	        // reactive la fenetre de search (utile car cadres)
+	        document.searchForm.textToSearch.focus();        
+    	}
+    }
+}
+
+var stemQueryMap = new Array();  // A hashtable which maps stems to query words
+
+/* This function parses the search expression, loads the indices and displays the results*/
+function Effectuer_recherche(expressionInput) {
+
+    /* Display a waiting message */
+    //DisplayWaitingMessage();
+
+    /*data initialisation*/
+    var searchFor = "";       // expression en lowercase et sans les caracte    res speciaux
+    //w = new Object();  // hashtable, key=word, value = list of the index of the html files
+    scriptLetterTab = new Scriptfirstchar(); // Array containing the first letter of each word to look for
+    var wordsList = new Array(); // Array with the words to look for
+    var finalWordsList = new Array(); // Array with the words to look for after removing spaces
+    var linkTab = new Array();
+    var fileAndWordList = new Array();
+    var txt_wordsnotfound = "";
+
+
+    // --------------------------------------
+    // Begin Thu's patch 
+    /*nqu: expressionInput, la recherche est lower cased, plus remplacement des char speciaux*/
+    //The original replacement expression is: 
+    //searchFor = expressionInput.toLowerCase().replace(/<\//g, "_st_").replace(/\$_/g, "_di_").replace(/\.|%2C|%3B|%21|%3A|@|\/|\*/g, " ").replace(/(%20)+/g, " ").replace(/_st_/g, "</").replace(/_di_/g, "%24_");
+    //The above expression was error prone because it did not deal with words that have a . as part of the word correctly, for example, document.txt
+    
+    //Do not automatically replace a . with a space
+    searchFor = expressionInput.toLowerCase().replace(/<\//g, "_st_").replace(/\$_/g, "_di_").replace(/%2C|%3B|%21|%3A|@|\/|\*/g, " ").replace(/(%20)+/g, " ").replace(/_st_/g, "</").replace(/_di_/g, "%24_");
+    
+    //If it ends with a period, replace it with a space
+    searchFor = searchFor.replace(/[.]$/,"");
+    // End Thu's Patch
+    // ------------------------------------------
+
+    searchFor = searchFor.replace(/  +/g, " ");
+    searchFor = searchFor.replace(/ $/, "").replace(/^ /, "");
+
+    wordsList = searchFor.split(" ");
+    wordsList.sort();
+
+    //set the tokenizing method
+    useCJKTokenizing = typeof indexerLanguage != "undefined" && (indexerLanguage == "zh" || indexerLanguage == "ja" || indexerLanguage == "ko");
+    //If Lucene CJKTokenizer was used as the indexer, then useCJKTokenizing will be true. Else, do normal tokenizing.
+    // 2-gram tokenizinghappens in CJKTokenizing, 
+    //If doStem then make tokenize with Stemmer
+    var finalArray;
+    if (doStem){
+	    if(useCJKTokenizing){
+	        finalWordsList = cjkTokenize(wordsList);
+          finalArray = finalWordsList;
+	    } else { 
+	        finalWordsList = tokenize(wordsList);
+          finalArray = finalWordsList;
+	    }
+    } else if(useCJKTokenizing){
+          finalWordsList = cjkTokenize(wordsList);
+          finalArray = finalWordsList;
+         } else{
+
+    //load the scripts with the indices: the following lines do not work on the server. To be corrected
+    /*if (IEBrowser) {
+     scriptsarray = loadTheIndexScripts (scriptLetterTab);
+     } */
+
+    /**
+     * Compare with the indexed words (in the w[] array), and push words that are in it to tempTab.
+     */
+    var tempTab = new Array();
+	
+    // ---------------------------------------
+    // Thu's patch
+    //Do not use associative array in for loop, for example:
+    //for(var t in finalWordsList)
+    //it causes errors when finalWordList contains 
+    //stemmed words such as: kei from the stemmed word: key
+    for(var t=0;t<finalWordsList.length;++t){
+        var aWord=finalWordsList[t];
+        //w is a Map like Object, use the current word in finalWordList as the key
+        if(w[aWord] == undefined){
+            txt_wordsnotfound += aWord + " ";
+	        }
+        else{
+            tempTab.push(aWord);
+    		}
+    	}
+    	finalWordsList = tempTab;		
+    //Check all the inputs to see if the root words are in the finalWordsList, if not add them there
+    var inputs = expressionInput.split(' ');
+    // Thu's Patch 
+    // -------------------------------------------
+
+    
+    txt_wordsnotfound = expressionInput;
+	finalWordsList = removeDuplicate(finalWordsList);
+    
+   }
+    if (finalWordsList.length) {
+      //search 'and' and 'or' one time
+      fileAndWordList = SortResults(finalWordsList);
+      
+      if (fileAndWordList == undefined){
+        	var cpt = 0;
+      } else {
+      	  var cpt = fileAndWordList.length;
+		  var maxNumberOfWords = fileAndWordList[0][0].motsnb;
+      }
+	  if (cpt > 0){
+		var searchedWords = noWords.length;
+		var foundedWords  = fileAndWordList[0][0].motslisteDisplay.split(",").length;
+		//console.info("search : " + noWords.length + "   found : " + fileAndWordList[0][0].motslisteDisplay.split(",").length);
+		if (searchedWords != foundedWords){
+			linkTab.push(partialSearch);
+		}
+	  }
+	  
+      
+      for (var i = 0; i < cpt; i++) {
+			
+			var hundredProcent = fileAndWordList[i][0].scoring + 100 * fileAndWordList[i][0].motsnb;
+			var ttScore_first = fileAndWordList[i][0].scoring;
+			var numberOfWords = fileAndWordList[i][0].motsnb;
+			
+            if (fileAndWordList[i] != undefined) {
+                linkTab.push("<p>" + txt_results_for + " " + "<span class=\"searchExpression\">" + fileAndWordList[i][0].motslisteDisplay + "</span>" + "</p>");
+
+                linkTab.push("<ul class='searchresult'>");
+                for (t in fileAndWordList[i]) {
+                    //linkTab.push("<li><a href=\"../"+fl[fileAndWordList[i][t].filenb]+"\">"+fl[fileAndWordList[i][t].filenb]+"</a></li>");
+				                        
+                    var ttInfo = fileAndWordList[i][t].filenb;
+                    // Get scoring
+                    var ttScore = fileAndWordList[i][t].scoring;
+                    var tempInfo = fil[ttInfo];
+				    
+                    var pos1 = tempInfo.indexOf("@@@");
+                    var pos2 = tempInfo.lastIndexOf("@@@");
+                    var tempPath = tempInfo.substring(0, pos1);
+                    var tempTitle = tempInfo.substring(pos1 + 3, pos2);
+                    var tempShortdesc = tempInfo.substring(pos2 + 3, tempInfo.length);
+
+                    
+                    // toc.html will not be displayed on search result
+                    if (tempPath == 'toc.html'){
+                        continue;
+                    }
+                    /*
+                    //file:///home/kasun/docbook/WEBHELP/webhelp-draft-output-format-idea/src/main/resources/web/webhelp/installation.html
+                    var linkString = "<li><a href=" + tempPath + ">" + tempTitle + "</a>";
+                    // var linkString = "<li><a href=\"installation.html\">" + tempTitle + "</a>";
+                    */
+                    var split = fileAndWordList[i][t].motsliste.split(",");
+                    // var splitedValues = expressionInput.split(" ");
+					// var finalArray = split.concat(splitedValues);					
+					
+                    arrayString = 'Array(';
+                    for(var x in finalArray){
+                      if (finalArray[x].length > 2 || useCJKTokenizing){
+                    		arrayString+= "'" + finalArray[x] + "',";
+                    	} 
+                    }
+                    arrayString = arrayString.substring(0,arrayString.length - 1) + ")";
+                    var idLink = 'foundLink' + no;
+                    var linkString = '<li><a id="' + idLink + '" href="' + tempPath + '" class="foundResult">' + tempTitle + '</a>';
+                    var starWidth = (ttScore * 100/ hundredProcent)/(ttScore_first/hundredProcent) * (numberOfWords/maxNumberOfWords);
+                    starWidth = starWidth < 10 ? (starWidth + 5) : starWidth;
+                    // Keep the 5 stars format
+                    if (starWidth > 85){
+						starWidth = 85;
+					}
+					/*
+					var noFullStars = Math.ceil(starWidth/17);
+					var fullStar  = "curr";
+					var emptyStar = "";
+					if (starWidth % 17 == 0){
+						// am stea plina
+						
+					} else {
+						
+					}
+					console.info(noFullStars);
+					*/
+                    // Also check if we have a valid description
+                    if ((tempShortdesc != "null" && tempShortdesc != '...')) {
+                    
+                        linkString += "\n<div class=\"shortdesclink\">" + tempShortdesc + "</div>";
+                    }
+                    linkString += "</li>";
+                    
+                    // Add rating values for scoring at the list of matches	
+					linkString += "<div id=\"rightDiv\">";
+					linkString += "<div id=\"star\">";
+					//linkString += "<div style=\"color: rgb(136, 136, 136);\" id=\"starUser0\" class=\"user\">" 
+					//				+ ((ttScore * 100/ hundredProcent)/(ttScore_first/hundredProcent)) * 1 + "</div>";
+	                linkString += "<ul id=\"star0\" class=\"star\">";
+					linkString += "<li id=\"starCur0\" class=\"curr\" style=\"width: " + starWidth + "px;\"></li>";
+	                linkString += "</ul>";
+	                
+	                linkString += "<br style=\"clear: both;\">";
+	                linkString += "</div>";
+					linkString += "</div>";
+                    //linkString += '<b>Rating: ' + ttScore + '</b>';
+                                           
+                    linkTab.push(linkString);
+                    no++;
+                }
+                linkTab.push("</ul>");
+            }
+        }
+    }
+
+    var results = "";
+    if (linkTab.length > 0) { 
+        /*writeln ("<p>" + txt_results_for + " " + "<span class=\"searchExpression\">"  + cleanwordsList + "</span>" + "<br/>"+"</p>");*/
+        results = "<p>";
+        //write("<ul class='searchresult'>");
+        for (t in linkTab) {
+            results += linkTab[t].toString();
+        }
+        results += "</p>";
+    } else {
+        results = "<p>" + localeresource.search_no_results + " <span class=\"searchExpression\">" + txt_wordsnotfound + "</span>" + "</p>";
+    }
+    
+    
+    // Verify if the browser is Google Chrome and the WebHelp is used on a local machine
+    // If browser is Google Chrome and WebHelp is used on a local machine a warning message will appear
+    // Highlighting will not work in this conditions. There is 2 workarounds
+    if (verifyBrowser()){
+        document.getElementById('searchResults').innerHTML = results;
+    } else {
+        document.getElementById('searchResults').innerHTML = warningMsg + results;
+    }
+    
+}
+
+
+// Verify if the stemmed word is aproximately the same as the searched word
+function verifyWord(word, arr){
+	for (var i = 0 ; i < arr.length ; i++){
+		if (word[0] == arr[i][0] 
+			&& word[1] == arr[i][1] 
+			//&& word[2] == arr[i][2]
+			){
+			return true;
+		}
+	}
+	return false;
+}
+
+// Look for elements that start with searchedValue.
+function wordsStartsWith(searchedValue){
+	var toReturn = '';
+	for (var sv in w){
+		if (searchedValue.length < 3){
+			continue;
+		} else {
+			if (sv.toLowerCase().indexOf(searchedValue.toLowerCase()) == 0){
+				toReturn+=sv + ","; 
+			}
+		}
+	}
+	return toReturn.length > 0 ? toReturn : undefined;
+}
+
+
+function tokenize(wordsList){
+    var stemmedWordsList = new Array(); // Array with the words to look for after removing spaces
+    var cleanwordsList = new Array(); // Array with the words to look for
+    // -------------------------------------------------
+    // Thu's patch
+    for(var j=0;j<wordsList.length;++j){
+        var word = wordsList[j];
+        var originalWord=word;
+        if(typeof stemmer != "undefined" ){
+            var stemmedWord=stemmer(word);
+            if(w[stemmedWord]!=undefined){
+            stemQueryMap[stemmer(word)] = word;
+            }
+            else{
+                stemQueryMap[originalWord]=originalWord;
+            }
+        } else {
+            if(w[word]!=undefined){
+            stemQueryMap[word] = word;
+        }
+            else{
+                stemQueryMap[originalWord]=originalWord;
+            }
+        }
+    } 
+     //stemmedWordsList is the stemmed list of words separated by spaces.
+    for (var t=0;t<wordsList.length;++t) {
+        wordsList[t] = wordsList[t].replace(/(%22)|^-/g, "");
+        if (wordsList[t] != "%20") {
+            scriptLetterTab.add(wordsList[t].charAt(0));
+            cleanwordsList.push(wordsList[t]);
+        }
+    }
+
+    if(typeof stemmer != "undefined" ){
+        //Do the stemming using Porter's stemming algorithm
+        for (var i = 0; i < cleanwordsList.length; i++) {			
+            var stemWord = stemmer(cleanwordsList[i]);			
+            if(w[stemWord]!=undefined){
+            stemmedWordsList.push(stemWord);
+        }
+            else{
+                stemmedWordsList.push(cleanwordsList[i]);               
+            }
+        }
+    // End Thu's patch
+    // -------------------------------------------
+    } else {
+        stemmedWordsList = cleanwordsList;
+    }
+    return stemmedWordsList;
+}
+
+//Invoker of CJKTokenizer class methods.
+function cjkTokenize(wordsList){
+    var allTokens= new Array();
+    var notCJKTokens= new Array();
+    var j=0;
+    for(j=0;j<wordsList.length;j++){
+        var word = wordsList[j];
+        if(getAvgAsciiValue(word) < 127){
+            notCJKTokens.push(word);
+        } else { 
+            var tokenizer = new CJKTokenizer(word);
+            var tokensTmp = tokenizer.getAllTokens();
+            allTokens = allTokens.concat(tokensTmp);
+        }
+    }
+    allTokens = allTokens.concat(tokenize(notCJKTokens));
+    return allTokens;
+}
+
+//A simple way to determine whether the query is in english or not.
+function getAvgAsciiValue(word){
+    var tmp = 0;
+    var num = word.length < 5 ? word.length:5;
+    for(var i=0;i<num;i++){
+        if(i==5) break;
+        tmp += word.charCodeAt(i);
+    }
+    return tmp/num;
+}
+
+//CJKTokenizer
+function CJKTokenizer(input){
+    this.input = input;
+    this.offset=-1;
+    this.tokens = new Array(); 
+    this.incrementToken = incrementToken;
+    this.tokenize = tokenize;
+    this.getAllTokens = getAllTokens;
+    this.unique = unique;
+
+    function incrementToken(){
+		if(this.input.length - 2 <= this.offset){
+		//	console.log("false "+offset);
+			return false;
+		}
+		else {
+			this.offset+=1;
+			return true;
+		}
+	}
+
+	function tokenize(){
+		//document.getElementById("content").innerHTML += x.substring(offset,offset+2)+"<br>";
+		return this.input.substring(this.offset,this.offset+2);
+	}
+
+	function getAllTokens(){
+		while(this.incrementToken()){
+			var tmp = this.tokenize();
+			this.tokens.push(tmp);
+		}
+        return this.unique(this.tokens);
+//		document.getElementById("content").innerHTML += tokens+" ";
+//		document.getElementById("content").innerHTML += "<br>dada"+sortedTokens+" ";
+//		console.log(tokens.length+"dsdsds");
+		/*for(i=0;i<tokens.length;i++){
+			console.log(tokens[i]);
+			var ss = tokens[i] == sortedTokens[i];
+
+//			document.getElementById("content").innerHTML += "<br>dada"+un[i]+"- "+stems[i]+"&nbsp;&nbsp;&nbsp;"+ ss;
+			document.getElementById("content").innerHTML += "<br>"+sortedTokens[i];
+		}*/
+	}
+
+	function unique(a)
+	{
+	   var r = new Array();
+	   o:for(var i = 0, n = a.length; i < n; i++)
+	   {
+	      for(var x = 0, y = r.length; x < y; x++)
+	      {
+		 if(r[x]==a[i]) continue o;
+	      }
+	      r[r.length] = a[i];
+	   }
+	   return r;
+	} 
+}
+
+
+/* Scriptfirstchar: to gather the first letter of index js files to upload */
+function Scriptfirstchar() {
+    this.strLetters = "";
+    this.add = addLettre;
+}
+
+function addLettre(caract) {
+
+    if (this.strLetters == 'undefined') {
+        this.strLetters = caract;
+    } else if (this.strLetters.indexOf(caract) < 0) {
+        this.strLetters += caract;
+    }
+
+    return 0;
+}
+/* end of scriptfirstchar */
+
+/*main loader function*/
+/*tab contains the first letters of each word looked for*/
+function loadTheIndexScripts(tab) {
+
+    //alert (tab.strLetters);
+    var scriptsarray = new Array();
+
+    for (var i = 0; i < tab.strLetters.length; i++) {
+
+        scriptsarray[i] = "..\/search" + "\/" + tab.strLetters.charAt(i) + ".js";
+    }
+    // add the list of html files
+    i++;
+    scriptsarray[i] = "..\/search" + "\/" + htmlfileList;
+
+    //debug
+    for (var t in scriptsarray) {
+        //alert (scriptsarray[t]);
+    }
+
+    tab = new ScriptLoader();
+    for (t in scriptsarray) {
+        tab.add(scriptsarray[t]);
+    }
+    tab.load();
+    //alert ("scripts loaded");
+    return (scriptsarray);
+}
+
+/* ScriptLoader: to load the scripts and wait that it's finished */
+function ScriptLoader() {
+    this.cpt = 0;
+    this.scriptTab = new Array();
+    this.add = addAScriptInTheList;
+    this.load = loadTheScripts;
+    this.onScriptLoaded = onScriptLoadedFunc;
+}
+
+function addAScriptInTheList(scriptPath) {
+    this.scriptTab.push(scriptPath);
+}
+
+function loadTheScripts() {
+    var script;
+    var head;
+
+    head = document.getElementsByTagName('head').item(0);
+
+    //script = document.createElement('script');
+
+    for (var el in this.scriptTab) {
+        //alert (el+this.scriptTab[el]);
+        script = document.createElement('script');
+        script.src = this.scriptTab[el];
+        script.type = 'text/javascript';
+        script.defer = false;
+
+        head.appendChild(script);
+    }
+
+}
+
+function onScriptLoadedFunc(e) {
+    e = e || window.event;
+    var target = e.target || e.srcElement;
+    var isComplete = true;
+    if (typeof target.readyState != undefined) {
+
+        isComplete = (target.readyState == "complete" || target.readyState == "loaded");
+    }
+    if (isComplete) {
+        ScriptLoader.cpt++;
+        if (ScriptLoader.cpt == ScriptLoader.scripts.length) {
+            ScriptLoader.onLoadComplete();
+        }
+    }
+}
+
+/*
+function onLoadComplete() {
+    alert("loaded !!");
+} */
+
+/* End of scriptloader functions */
+ 
+// Array.unique( strict ) - Remove duplicate values
+function unique(tab) {
+    var a = new Array();
+    var i;
+    var l = tab.length;
+
+    if (tab[0] != undefined) {
+        a[0] = tab[0];
+    }
+    else {
+        return -1;
+    }
+
+    for (i = 1; i < l; i++) {
+        if (indexof(a, tab[i], 0) < 0) {
+            a.push(tab[i]);
+        }
+    }
+    return a;
+}
+function indexof(tab, element, begin) {
+    for (var i = begin; i < tab.length; i++) {
+        if (tab[i] == element) {
+            return i;
+        }
+    }
+    return -1;
+
+}
+/* end of Array functions */
+
+
+/*
+ Param: mots= list of words to look for.
+ This function creates an hashtable:
+ - The key is the index of a html file which contains a word to look for.
+ - The value is the list of all words contained in the html file.
+
+ Return value: the hashtable fileAndWordList
+ */
+function SortResults(mots) {
+
+    var fileAndWordList = new Object();
+    if (mots.length == 0 || mots[0].length == 0) {
+        return null;
+    }
+    
+    
+    // In generated js file we add scoring at the end of the word
+    // Example word1*scoringForWord1,word2*scoringForWord2 and so on
+    // Split after * to obtain the right values
+    var scoringArr = Array();
+    for (var t in mots) {
+        // get the list of the indices of the files.
+        var listNumerosDesFicStr = w[mots[t].toString()];
+
+        if (listNumerosDesFicStr != undefined) {
+
+            //alert ("listNumerosDesFicStr "+listNumerosDesFicStr);
+            var tab = listNumerosDesFicStr.split(",");
+            //for each file (file's index):
+            for (var t2 in tab) {
+                var tmp = '';
+                var idx = '';
+                var temp = tab[t2].toString();
+                if (temp.indexOf('*') != -1) {
+                    idx = temp.indexOf('*');
+                    tmp = temp.substring(idx + 3, temp.length);
+                    temp = temp.substring(0, idx);
+                }
+                scoringArr.push(tmp);
+                if (fileAndWordList[temp] == undefined) {
+                    fileAndWordList[temp] = "" + mots[t];
+                } else {
+                    fileAndWordList[temp] += "," + mots[t];
+                }
+                //console.info("fileAndWordList[" + temp + "]=" + fileAndWordList[temp] + " : " + tmp);
+            }
+
+        }
+    }
+    var fileAndWordListValuesOnly = new Array();
+    // sort results according to values
+    var temptab = new Array();
+    finalObj = new Array();
+    for (t in fileAndWordList) {    	
+    	finalObj.push(new newObj(t,fileAndWordList[t]));
+    }
+
+    if ( finalObj.length == 0 ) {   // None of the queried words are not in the index (stemmed or not)
+        return null;
+    }
+    finalObj = removeDerivates(finalObj);
+    for (t in finalObj) {
+        tab = finalObj[t].wordList.split(',');
+        var tempDisplay = new Array();
+        for (var x in tab) {        		
+            if(stemQueryMap[tab[x]] != undefined && doStem){
+                tempDisplay.push(stemQueryMap[tab[x]]); //get the original word from the stem word.                
+            } else {
+                tempDisplay.push(tab[x]); //no stem is available. (probably a CJK language)
+            }
+        }
+        var tempDispString = tempDisplay.join(", ");
+				var index;
+				for (x in fileAndWordList) {
+					if (x === finalObj[t].filesNo) {
+						index = x;
+						break;
+					}
+				}
+				var scoring = findRating(fileAndWordList[index], index);	
+        temptab.push(new resultPerFile(finalObj[t].filesNo, finalObj[t].wordList, tab.length, tempDispString, scoring));
+        fileAndWordListValuesOnly.push(finalObj[t].wordList);        
+    }
+    fileAndWordListValuesOnly = unique(fileAndWordListValuesOnly);
+    fileAndWordListValuesOnly = fileAndWordListValuesOnly.sort(compare_nbMots);
+
+    var listToOutput = new Array();
+    for (var fawlvoIdx in fileAndWordListValuesOnly) {
+        for (t in temptab) {
+            if (temptab[t].motsliste == fileAndWordListValuesOnly[fawlvoIdx]) {
+                if (listToOutput[fawlvoIdx] == undefined) {
+                    listToOutput[fawlvoIdx] = new Array(temptab[t]);
+                } else {
+                    listToOutput[fawlvoIdx].push(temptab[t]);
+                }
+            }
+        }
+    }		
+  // Sort results by scoring, descending on the same group
+	for (var ltoIdx in listToOutput) {
+	    listToOutput[ltoIdx].sort(function(a, b){
+			return b.scoring - a.scoring;
+		});
+	}
+	// If we have groups with same number of words, 
+	// will sort groups by higher scoring of each group
+	for (var i = 0; i < listToOutput.length - 1; i++) {
+		for (var j = i + 1; j < listToOutput.length; j++) {
+			if (listToOutput[i][0].motsnb < listToOutput[j][0].motsnb 
+				|| (listToOutput[i][0].motsnb == listToOutput[j][0].motsnb
+				&& listToOutput[i][0].scoring < listToOutput[j][0].scoring)
+				) {
+				var x = listToOutput[i];
+				listToOutput[i] = listToOutput[j];
+				listToOutput[j] = x;
+			}
+		}
+	}
+
+    return listToOutput;
+}
+
+// Remove derivates words from the list of words
+function removeDerivates(obj){
+	var toResultObject = new Array();	
+	for (i in obj){
+		var filesNo  = obj[i].filesNo;
+		var wordList = obj[i].wordList;
+		var wList = wordList.split(",");		
+		var searchedWords = searchTextField.toLowerCase().split(" ");
+		for (var k = 0 ; k < searchedWords.length ; k++){
+			for (var j = 0 ; j < wList.length ; j++){				
+				if (wList[j].startsWith(searchedWords[k])){
+					wList[j] = searchedWords[k];
+				}
+			}
+		}
+		wList = removeDuplicate(wList);
+		var recreateList = '';
+		for(var x in wList){
+			recreateList+=wList[x] + ",";
+		}
+		recreateList = recreateList.substr(0, recreateList.length - 1);
+		toResultObject.push(new newObj(filesNo, recreateList));
+	}
+	return toResultObject;
+}
+
+function newObj(filesNo, wordList){
+	this.filesNo = filesNo;
+	this.wordList = wordList;
+}
+
+// Add a new parameter. Scoring.
+function resultPerFile(filenb, motsliste, motsnb, motslisteDisplay, scoring, group) {
+	//10 - spring,time - 2 - spring, time - 55 - 3
+    this.filenb = filenb;
+    this.motsliste = motsliste;
+    this.motsnb = motsnb;
+    this.motslisteDisplay= motslisteDisplay;
+    
+    this.scoring = scoring;
+    
+}
+
+
+function findRating(words, nr){
+    var sum = 0;
+    var xx = words.split(',');
+    for (jj = 0 ; jj < xx.length ; jj++){
+        var wrd = w[xx[jj]].split(',');
+        for (var ii = 0 ; ii < wrd.length ; ii++){
+            var wrdno = wrd[ii].split('*');
+            if (wrdno[0] == nr){
+                sum+=parseInt(wrdno[1]);
+            }
+        }
+    }
+    return sum;
+}
+
+function compare_nbMots(s1, s2) {
+    var t1 = s1.split(',');
+    var t2 = s2.split(',');
+    //alert ("s1:"+t1.length + " " +t2.length)
+    if (t1.length == t2.length) {
+        return 0;
+    } else if (t1.length > t2.length) {
+        return 1;
+    } else {
+        return -1;
+    }
+    //return t1.length - t2.length);
+}
+
+// return false if browser is Google Chrome and WebHelp is used on a local machine, not a web server 
+function verifyBrowser(){
+    var returnedValue = true;    
+    var browser = BrowserDetect.browser;
+    var addressBar = window.location.href;
+    if (browser == 'Chrome' && addressBar.indexOf('file://') === 0){
+        returnedValue = false;
+    }
+    
+    return returnedValue;
+}
+
+// Remove duplicate values from an array
+function removeDuplicate(arr) {
+   var r = new Array();
+   o:for(var i = 0, n = arr.length; i < n; i++) {
+      for(var x = 0, y = r.length; x < y; x++) {
+         if(r[x]==arr[i]) continue o;
+      }
+      r[r.length] = arr[i];
+   }
+   return r;
+}
+
+// Create startsWith method
+String.prototype.startsWith = function(str) {
+	return (this.match("^"+str)==str);
+}
+
+function trim(str, chars) {
+	return ltrim(rtrim(str, chars), chars);
+}
+ 
+function ltrim(str, chars) {
+	chars = chars || "\\s";
+	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
+}
+ 
+function rtrim(str, chars) {
+	chars = chars || "\\s";
+	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
+}
diff --git a/applications/content/template/docbook/webhelp/docs/content/search/stemmers/en_stemmer.js b/applications/content/template/docbook/webhelp/docs/content/search/stemmers/en_stemmer.js
new file mode 100644
index 0000000..2117c1b
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/content/search/stemmers/en_stemmer.js
@@ -0,0 +1,234 @@
+// Porter stemmer in Javascript. Few comments, but it's easy to follow against the rules in the original
+// paper, in
+//
+//  Porter, 1980, An algorithm for suffix stripping, Program, Vol. 14,
+//  no. 3, pp 130-137,
+//
+// see also http://www.tartarus.org/~martin/PorterStemmer
+
+// Release 1
+// Derived from (http://tartarus.org/~martin/PorterStemmer/js.txt) - cjm (iizuu) Aug 24, 2009
+
+var stemmer = (function(){
+	var step2list = {
+			"ational" : "ate",
+			"tional" : "tion",
+			"enci" : "ence",
+			"anci" : "ance",
+			"izer" : "ize",
+			"bli" : "ble",
+			"alli" : "al",
+			"entli" : "ent",
+			"eli" : "e",
+			"ousli" : "ous",
+			"ization" : "ize",
+			"ation" : "ate",
+			"ator" : "ate",
+			"alism" : "al",
+			"iveness" : "ive",
+			"fulness" : "ful",
+			"ousness" : "ous",
+			"aliti" : "al",
+			"iviti" : "ive",
+			"biliti" : "ble",
+			"logi" : "log"
+		},
+
+		step3list = {
+			"icate" : "ic",
+			"ative" : "",
+			"alize" : "al",
+			"iciti" : "ic",
+			"ical" : "ic",
+			"ful" : "",
+			"ness" : ""
+		},
+
+		c = "[^aeiou]",          // consonant
+		v = "[aeiouy]",          // vowel
+		C = c + "[^aeiouy]*",    // consonant sequence
+		V = v + "[aeiou]*",      // vowel sequence
+
+		mgr0 = "^(" + C + ")?" + V + C,               // [C]VC... is m>0
+		meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$",  // [C]VC[V] is m=1
+		mgr1 = "^(" + C + ")?" + V + C + V + C,       // [C]VCVC... is m>1
+		s_v = "^(" + C + ")?" + v;                   // vowel in stem
+
+	return function (w) {
+		var 	stem,
+			suffix,
+			firstch,
+			re,
+			re2,
+			re3,
+			re4,
+			origword = w;
+
+		if (w.length < 3) { return w; }
+
+		firstch = w.substr(0,1);
+		if (firstch == "y") {
+			w = firstch.toUpperCase() + w.substr(1);
+		}
+
+		// Step 1a
+		re = /^(.+?)(ss|i)es$/;
+		re2 = /^(.+?)([^s])s$/;
+
+		if (re.test(w)) { w = w.replace(re,"$1$2"); }
+		else if (re2.test(w)) {	w = w.replace(re2,"$1$2"); }
+
+		// Step 1b
+		re = /^(.+?)eed$/;
+		re2 = /^(.+?)(ed|ing)$/;
+		if (re.test(w)) {
+			var fp = re.exec(w);
+			re = new RegExp(mgr0);
+			if (re.test(fp[1])) {
+				re = /.$/;
+				w = w.replace(re,"");
+			}
+		} else if (re2.test(w)) {
+			var fp = re2.exec(w);
+			stem = fp[1];
+			re2 = new RegExp(s_v);
+			if (re2.test(stem)) {
+				w = stem;
+				re2 = /(at|bl|iz)$/;
+				re3 = new RegExp("([^aeiouylsz])\\1$");
+				re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+				if (re2.test(w)) { w = w + "e"; }
+				else if (re3.test(w)) { re = /.$/; w = w.replace(re,""); }
+				else if (re4.test(w)) { w = w + "e"; }
+			}
+		}
+
+		// Step 1c
+	        re = new RegExp("^(.+" + c + ")y$");
+		    if (re.test(w)) {
+			var fp = re.exec(w);
+			stem = fp[1];
+		    w = stem + "i";
+		}
+
+		// Step 2
+		re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
+		if (re.test(w)) {
+			var fp = re.exec(w);
+			stem = fp[1];
+			suffix = fp[2];
+			re = new RegExp(mgr0);
+			if (re.test(stem)) {
+				w = stem + step2list[suffix];
+			}
+		}
+
+		// Step 3
+		re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
+		if (re.test(w)) {
+			var fp = re.exec(w);
+			stem = fp[1];
+			suffix = fp[2];
+			re = new RegExp(mgr0);
+			if (re.test(stem)) {
+				w = stem + step3list[suffix];
+			}
+		}
+
+		// Step 4
+		re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
+		re2 = /^(.+?)(s|t)(ion)$/;
+		if (re.test(w)) {
+			var fp = re.exec(w);
+			stem = fp[1];
+			re = new RegExp(mgr1);
+			if (re.test(stem)) {
+				w = stem;
+			}
+		} else if (re2.test(w)) {
+			var fp = re2.exec(w);
+			stem = fp[1] + fp[2];
+			re2 = new RegExp(mgr1);
+			if (re2.test(stem)) {
+				w = stem;
+			}
+		}
+
+		// Step 5
+		re = /^(.+?)e$/;
+		if (re.test(w)) {
+			var fp = re.exec(w);
+			stem = fp[1];
+			re = new RegExp(mgr1);
+			re2 = new RegExp(meq1);
+			re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+			if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {
+				w = stem;
+			}
+		}
+
+		re = /ll$/;
+		re2 = new RegExp(mgr1);
+		if (re.test(w) && re2.test(w)) {
+			re = /.$/;
+			w = w.replace(re,"");
+		}
+
+		// and turn initial Y back to y
+
+		if (firstch == "y") {
+			w = firstch.toLowerCase() + w.substr(1);
+		}
+
+	    // See http://snowball.tartarus.org/algorithms/english/stemmer.html
+	    // "Exceptional forms in general"
+	    var specialWords = {
+	    	"skis" : "ski",
+	    	"skies" : "sky",
+	    	"dying" : "die",
+	    	"lying" : "lie",
+	    	"tying" : "tie",
+	    	"idly" : "idl",
+	    	"gently" : "gentl",
+	    	"ugly" : "ugli",
+	    	"early": "earli",
+	    	"only": "onli",
+	    	"singly": "singl"
+	    };
+
+	    if(specialWords[origword]){
+	    	w = specialWords[origword];
+	    }
+
+	    if( "sky news howe atlas cosmos bias \
+	    	 andes inning outing canning herring \
+	    	 earring proceed exceed succeed".indexOf(origword) !== -1 ){
+	    	w = origword;
+	    }
+
+	    // Address words overstemmed as gener-
+	    re = /.*generate?s?d?(ing)?$/;
+	    if( re.test(origword) ){
+		w = w + 'at';
+	    }
+	    re = /.*general(ly)?$/;
+	    if( re.test(origword) ){
+		w = w + 'al';
+	    }
+	    re = /.*generic(ally)?$/;
+	    if( re.test(origword) ){
+		w = w + 'ic';
+	    }
+	    re = /.*generous(ly)?$/;
+	    if( re.test(origword) ){
+		w = w + 'ous';
+	    }
+	    // Address words overstemmed as commun-
+	    re = /.*communit(ies)?y?/;
+	    if( re.test(origword) ){
+		w = w + 'iti';
+	    }
+
+	    return w;
+	}
+})();
diff --git a/applications/content/template/docbook/webhelp/docs/favicon.ico b/applications/content/template/docbook/webhelp/docs/favicon.ico
new file mode 100644
index 0000000..76ece8f
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/favicon.ico
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docs/index.html b/applications/content/template/docbook/webhelp/docs/index.html
new file mode 100644
index 0000000..ac84c17
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docs/index.html
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <link rel="shortcut icon" href="favicon.ico" />
+    <meta http-equiv="Refresh" content="1; URL=content/index.html" />
+    <title>README: Web-based Help from DocBook XML </title>
+  </head>
+  <body>
+		      If not automatically redirected, click <a href="content/index.html">content/index.html</a></body>
+</html>
diff --git a/applications/content/template/docbook/webhelp/docsrc/images/sample.jpg b/applications/content/template/docbook/webhelp/docsrc/images/sample.jpg
new file mode 100644
index 0000000..d8ec5c3
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docsrc/images/sample.jpg
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/docsrc/readme.xml b/applications/content/template/docbook/webhelp/docsrc/readme.xml
new file mode 100644
index 0000000..e45ee24
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docsrc/readme.xml
@@ -0,0 +1,1025 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[
+<!ELEMENT xi:include (xi:fallback?) >
+<!ATTLIST xi:include
+    xmlns:xi   CDATA       #FIXED    "http://www.w3.org/2001/XInclude"
+    href       CDATA       #IMPLIED
+    parse      (xml|text)  "xml"
+    xpointer   CDATA       #IMPLIED
+    encoding   CDATA       #IMPLIED 
+    accept     CDATA       #IMPLIED
+    accept-language CDATA  #IMPLIED >
+
+<!ELEMENT xi:fallback ANY>
+<!ATTLIST xi:fallback
+    xmlns:xi   CDATA   #FIXED   "http://www.w3.org/2001/XInclude" >
+
+<!ENTITY % local.chapter.class "| xi:include">
+]>
+<book>
+  <title>README: Web-based Help from DocBook XML</title>
+  <bookinfo>
+    <legalnotice>
+      <para>Permission is hereby granted, free of charge, to any person obtaining a copy of this
+        software and associated documentation files (the <quote>Software</quote>), to deal in the
+        Software without restriction, including without limitation the rights to use, copy, modify,
+        merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
+        persons to whom the Software is furnished to do so, subject to the following conditions: <itemizedlist>
+          <listitem>
+            <para>The above copyright notice and this permission notice shall be included in all
+              copies or substantial portions of the Software.</para>
+          </listitem>
+          <listitem>
+            <para>Except as contained in this notice, the names of individuals credited with
+              contribution to this software shall not be used in advertising or otherwise to promote
+              the sale, use or other dealings in this Software without prior written authorization
+              from the individuals in question.</para>
+          </listitem>
+          <listitem>
+            <para>Any stylesheet derived from this Software that is publicly distributed will be
+              identified with a different name and the version strings in any derived Software will
+              be changed so that no possibility of confusion between the derived package and this
+              Software will exist.</para>
+          </listitem>
+        </itemizedlist></para>
+      <formalpara>
+        <title>Warranty:</title>
+        <para>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+          INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+          PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL DAVID CRAMER, KASUN GAJASINGHE, OR ANY
+          OTHER CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+          ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+          SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</para>
+      </formalpara>
+      <para>This package is maintained by Kasun Gajasinghe, <email>kasunbg AT gmail DOT com</email>
+        and David Cramer, <email>david AT thingbag DOT net</email>.</para>
+      <para>This package also includes the following software written and copyrighted by others:<itemizedlist>
+          <listitem>
+            <para>Files in <filename class="directory">template/common/jquery</filename> are
+              copyrighted by <ulink url="http://jquery.com/">JQuery</ulink> under the MIT License.
+              The file <filename>jquery.cookie.js</filename> Copyright (c) 2006 Klaus Hartl under
+              the MIT license.</para>
+            <indexterm>
+              <primary>jquery</primary>
+            </indexterm>
+          </listitem>
+          <listitem>
+            <para>Some files in the <filename class="directory">template/content/search</filename>
+              and <filename class="directory">indexer</filename> directories were originally part of
+              N. Quaine's htmlsearch DITA plugin. The htmlsearch DITA plugin is available from the
+                <ulink url="http://tech.groups.yahoo.com/group/dita-users/files/Demos/">files
+                page</ulink> of the DITA-users yahoogroup. The htmlsearch plugin was released under
+              a BSD-style license. See <filename>indexer/license.txt</filename> for details. <indexterm>
+                <primary>htmlsearch</primary>
+              </indexterm>
+              <indexterm>
+                <primary>DITA</primary>
+                <secondary>htmlsearch plugin</secondary>
+              </indexterm></para>
+          </listitem>
+          <listitem>
+            <para>Stemmers from the <ulink
+                url="http://snowball.tartarus.org/texts/stemmersoverview.html">Snowball
+                project</ulink> released under a BSD license.</para>
+          </listitem>
+          <listitem>
+            <para>Code from the <ulink url="http://lucene.apache.org/">Apache Lucene</ulink> search
+              engine provides support for tokenizing Chinese, Japanese, and Korean content released
+              under the Apache 2.0 license. </para>
+          </listitem>
+	  <listitem>
+            <para>Code that provides weighted search results and some
+              other improvements was graciously donated by <ulink
+                url="http://www.oxygenxml.com">SyncRO Soft
+                Ltd.</ulink>, the publishers of the oXygen XML
+              Editor.</para>
+          </listitem>
+          <listitem>
+            <para>Cosmetic improvements provided by <ulink
+                url="http://docs.openstack.org"
+              >OpenStack</ulink>.</para>
+          </listitem>
+        </itemizedlist> Webhelp for DocBook was first developed as a <ulink
+          url="http://code.google.com/soc/">Google Summer of Code</ulink> project. </para>
+    </legalnotice>
+    <copyright>
+      <year>2008-2012</year>
+      <holder>Kasun Gajasinghe</holder>
+      <holder>David Cramer</holder>
+    </copyright>
+    <author>
+      <firstname>David</firstname>
+      <surname>Cramer</surname>
+      <email>david AT thingbag DOT net</email>
+    </author>
+    <author>
+      <firstname>Kasun</firstname>
+      <surname>Gajasinghe</surname>
+      <email>kasunbg AT gmail DOT com</email>
+    </author>
+    <pubdate>January 2012</pubdate>
+  </bookinfo>
+  <chapter>
+    <chapterinfo>
+      <abstract>
+        <!-- This becomes the brief description that appears in search results UNLESS there's a para or phrase with role="summary". If there is, then the role="summary" text wins. -->
+        <para>Overview of the package.</para>
+      </abstract>
+    </chapterinfo>
+    <title>Introduction</title>
+    <para>A common requirement for technical publications groups is to produce a Web-based help
+      format that includes a table of contents pane, a search feature, and an index similar to what
+      you get from the Microsoft HTML Help (.chm) format or Eclipse help. If the content is help for
+      a Web application that is not exposed to the Internet or requires that the user be logged in,
+      then it is impossible to use services like Google to add search. <indexterm class="singular">
+        <primary>features</primary>
+      </indexterm>
+      <itemizedlist>
+        <title>Features</title>
+        <listitem>
+          <para>Sophisticated CSS-based page layout</para>
+        </listitem>
+        <listitem>
+          <para>Client-side search.<indexterm class="singular">
+              <primary>search</primary>
+              <secondary>features</secondary>
+            </indexterm></para>
+          <itemizedlist>
+            <listitem>
+              <para>Provides full content search of the documentation. Shows the search results with
+                links to chunked pages, and a small description.</para>
+            </listitem>
+            <listitem>
+              <para>Search results scoring/rating - The results are weighted according to how many
+                times the words in search query appears in it, is it bold or not, is in index terms
+                etc. The score out of 5 is shown by small colored boxes after each
+                search-result.</para>
+            </listitem>
+            <listitem>
+              <para>Search results can include brief descriptions of the target.<indexterm
+                class="singular">
+                <primary>search</primary>
+                <secondary>description</secondary>
+              </indexterm></para>
+            </listitem>         
+            <listitem>
+              <para>Stemming support for English, French, and German. Stemming support can be added
+                for other languages by implementing a stemmer.<indexterm class="singular">
+                  <primary>search</primary>
+                  <secondary>stemming</secondary>
+                </indexterm></para>
+            </listitem>
+            <listitem>
+              <para>Support for Chinese, Japanese, and Korean languages using code from the Lucene search
+                engine.</para>
+            </listitem>
+            <listitem>
+              <para>Search highlighting shows where the searched term appears in the results.
+                  <indexterm class="singular">
+                  <primary>search</primary>
+                  <secondary>highlighting</secondary>
+                </indexterm></para>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+        <listitem>
+          <para>Table of contents (TOC) pane with collapsible toc tree.</para>
+        </listitem>
+        <listitem>
+          <para>Auto-synchronization of content pane and TOC.</para>
+        </listitem>
+        <listitem>
+          <para>Nicely placed small forward, backward, top links</para>
+        </listitem>
+        <listitem>
+          <para>TOC and search pane implemented without the use of a frameset.</para>
+        </listitem>
+        <listitem>
+          <para>An Ant script to generate output. You can use this
+            build file by importing it into your own or use it as a
+            model for integrating this output format into your own
+            build system. Alternatively, you can use this Ant script
+            as a template for creating your own build script or you
+            can use the <ulink
+              url="http://docbkx-tools.sourceforge.net/docbkx-samples/manual.html"
+              >Docbkx Maven plugin</ulink>.</para>
+        </listitem>
+      </itemizedlist></para>
+<!--    <para>Following are possible enhancements that can be applied to webhelp. You are welcome to
+      send us new suggestions, code contributions etc.<itemizedlist>
+        <title>Possible future enhancements</title>
+        <listitem>
+          <para>Adjust css so that there is a visual indication that you have move the focus from the contents to the search tab using the tab key.</para>
+        </listitem>
+        <listitem>
+          <para>Add "Expand all" and "Collapse all" buttons to the table of contents.</para>
+        </listitem>
+        <listitem>
+          <para>Parameterize width of the TOC pane OR make the TOC pane resizeable by the
+            user.</para>
+        </listitem>
+        <listitem>
+          <para>Automate search results summary text:</para>
+          <itemizedlist>
+            <listitem>
+              <para>Automatically use the first non-heading content as the summary in the search
+                results.</para>
+            </listitem>
+          </itemizedlist>
+        </listitem>
+        <listitem>
+          <para>Support boolean operators in search.</para>
+        </listitem>
+        <listitem>
+          <para>Add an index tab populated by a separate JavaScript file. Include a param/property
+            that allows the content creator to disable the index.</para>
+        </listitem>
+        <listitem>
+          <para>Add functionality to the <filename>build.xml</filename> file so that when a property
+            is set, the build generates a pdf version of the document and includes a link to it from
+            the header.</para>
+        </listitem>
+        <listitem>
+          <para>Add <ulink
+              url="http://www.comparenetworks.com/developers/jqueryplugins/jbreadcrumb.html"
+              >breadcrumbs</ulink> so the user will know what topics he's been to.</para>
+        </listitem>
+        <listitem>
+          <para>Consider using more advanced Lucene indexers for Chinese and Japanese than the
+            CJKAnalyzer</para>
+        </listitem>
+        <listitem>
+          <para>And, a lot more (with duplicates) at <ulink
+              url="http://docbook.xmlpress.net/tiki-index.php?page=WebHelpIdeas">WebHelp Ideas Wiki at
+              XMLPress </ulink></para>
+        </listitem>
+      </itemizedlist></para>-->
+  </chapter>
+  <chapter>
+    <title>Using the package</title>
+    <para role="summary">The following sections describe how to
+      install and use the package on Windows. </para>
+    <section>
+      <sectioninfo>
+        <abstract>
+          <para>Installation instructions</para>
+        </abstract>
+      </sectioninfo>
+      <title>Generating webhelp output</title>
+      <procedure>
+        <title>To install the package on Windows</title>
+        <note>
+          <para>The examples in this procedure assume a Windows installation, but the process is the
+            same in other environments, <foreignphrase>mutatis mutandis</foreignphrase>.</para>
+          <para>In addition to using the ant
+              <filename>build.xml</filename> provided,  you can also
+            use the <ulink url="http://docbkx-tools.sourceforge.net/docbkx-samples/manual.html">Docbkx Maven plugin</ulink> to generate
+            webhelp.</para>
+        </note>
+        <step>
+          <para>If necessary, install <ulink url="http://www.java.com/en/download/manual.jsp">Java
+              1.6</ulink> or higher.</para>
+          <substeps>
+            <step>
+              <para>Confirm that Java is installed and in your <envar>PATH</envar> by typing the
+                following at a command prompt: <programlisting>java -version</programlisting></para>
+              <note>
+                <para>To build the indexer, you must have the JDK.</para>
+              </note>
+            </step>
+          </substeps>
+        </step>
+        <step>
+          <para>If necessary, install <ulink url="http://ant.apache.org/bindownload.cgi">Apache
+              Ant</ulink> 1.8.0 or higher. See <ulink
+              url="http://ant.apache.org/manual/install.html">Ant installation instructions</ulink>.</para>
+          <substeps>
+            <step>
+              <para>Unzip the Ant binary distribution to a convenient location on your system. For
+                example: <filename>c:\Program Files</filename>.</para>
+            </step>
+            <step>
+              <para>Set the environment variable <envar>ANT_HOME</envar> to the top-level Ant
+                directory. For example: <filename>c:\Program Files\apache-ant-1.8.0</filename>. <tip>
+                  <para>See <ulink url="http://support.microsoft.com/kb/310519">How To Manage
+                      Environment Variables in Windows XP</ulink> for information on setting
+                    environment variables.</para>
+                </tip></para>
+            </step>
+            <step>
+              <para>Add the Ant <filename>bin</filename> directory to your <envar>PATH</envar>. For
+                example: <filename>c:\Program Files\apache-ant-1.8.0\bin</filename></para>
+            </step>
+            <step>
+              <para>Confirm that Ant is installed by typing the following at a command prompt:
+                <programlisting>ant -version</programlisting></para>
+              <note>
+                <para>If you see a message about the file <filename>tools.jar</filename> being
+                  missing, you can safely ignore it.</para>
+              </note>
+            </step>
+          </substeps>
+        </step>
+        <step>
+          <para>Download <ulink url="http://prdownloads.sourceforge.net/saxon/saxon6-5-5.zip">Saxon
+              6.5.x</ulink> and unzip the distribution to a convenient location on your file system.
+            You will use the path to <filename>saxon.jar</filename> in <xref
+              linkend="edit-build-properties"/> below.<note>
+              <para>The <filename>build.xml</filename> has only been tested with Saxon 6.5, though
+                it could be adapted to work with other XSLT processors. However, when you generate
+                output, the Saxon jar must <emphasis role="bold">not</emphasis> be in your
+                  <envar>CLASSPATH</envar>.</para>
+            </note></para>
+        </step>
+<!--        <step>
+          <para>If you are using Ant 1.8.1 or higher, you may need to add
+              <filename>xercesImpl.jar</filename>, and <filename>xml-apis.jar</filename> to the
+            classpath. See <function>index</function> target in the Ant script to see how it's
+            currently added. <note>
+              <para>The way webhelp indexer is invoked is made easier after the XSL-1.76.1 release. </para>
+            </note></para>
+        </step>-->
+        <step id="edit-build-properties">
+          <para>In a text editor, edit the
+              <filename>build.properties</filename> file in the
+            webhelp directory and make the changes indicated by the comments.<important>
+              <para>You must set appropriate values for
+                  <code>xslt-processor-classpath</code>,
+                  <code>xercesImpl.jar</code>, and
+                  <code>xml-apis.jar</code>.</para>
+            </important>See the DocBook <ulink
+              url="../../../doc/html/webhelp.html">reference
+              documentation</ulink> for detailed information about the
+            available webhelp and other parameters. Note that not all
+            DocBook parameters are passed in to the xsls by the
+              <filename>build.xml</filename> by default. You may need
+            to modify the <filename>build.xml</filename> to pass in
+            some DocBook
+            parameters.<programlisting>
+# The path (relative to the build.xml file) to your input document.
+# To use your own input document, create a build.xml file of your own
+# and import this build.xml.
+input-xml=docsrc/readme.xml
+
+# The directory in which to put the output files. 
+# This directory is created if it does not exist.
+output-dir=docs
+
+# If you are using a customization layer that imports webhelp.xsl, use
+# this property to point to it. 
+stylesheet-path=${ant.file.dir}/xsl/webhelp.xsl
+
+# If your document has image directories that need to be copied
+# to the output directory, you can list patterns here. 
+# See the Ant documentation for fileset for documentation
+# on patterns.
+#input-images-dirs=images/**,figures/**,graphics/**
+
+# By default, the ant script assumes your images are stored
+# in the same directory as the input-xml. If you store your
+# image directories in another directory, specify it here.
+# and uncomment this line.
+#input-images-basedir=/path/to/image/location
+
+# Modify the follosing so that they point to your local
+# copy of the jars indicated:
+# * Saxon 6.5 jar
+# * Xerces 2: xercesImpl.jar
+# * xml-commons: xml-apis.jar
+xslt-processor-classpath=/usr/share/java/saxon-6.5.5.jar 
+xercesImpl.jar=/usr/share/java/xercesImpl.jar
+xml-apis.jar=/usr/share/java/xml-apis.jar
+
+# For non-ns version only, this validates the document 
+# against a dtd.
+validate-against-dtd=true
+
+# The extension for files to be indexed (html/htm/xhtml etc.)
+html.extension=html
+
+# Set this to false if you don't need a search tab.
+webhelp.include.search.tab=true
+
+# indexer-language is used to tell the search indexer which language
+# the docbook is written.  This will be used to identify the correct
+# stemmer, and punctuations that differs from language to language.
+# see the documentation for details. en=English, fr=French, de=German,
+# zh=Chinese, ja=Japanese etc.  
+webhelp.indexer.language=en
+
+# Enables/Disables stemming
+# Stemming allows better querying for the search
+enable.stemming=true
+
+# Set admon.graphics to 1 to user graphics for note, tip, etc.
+admon.graphics=0
+suppress.footer.navigation=0</programlisting></para>
+        </step>
+        <step>
+          <para>Test the package by running the command <code>ant webhelp
+              -Doutput-dir=test-ouput</code> at the command line in the webhelp directory. It should
+            generate a copy of this documentation in the <filename class="directory">doc</filename>
+            directory. Type <code>start test-output\index.html</code> to open the output in a
+            browser. Once you have confirmed that the process worked, you can delete the <filename
+              class="directory">test-output</filename> directory. <important>
+              <para>The Saxon 6.5 jar should <emphasis>not</emphasis> be in your
+                  <envar>CLASSPATH</envar> when you generate the webhelp output. If you have any
+                problems, try running ant with an empty <envar>CLASSPATH</envar>.</para>
+            </important></para>
+        </step>
+        <step>
+          <para>To process your own document, simply refer to this package from another
+              <filename>build.xml</filename> in arbitrary location on your system:</para>
+          <substeps>
+            <step>
+              <para>Create a new <filename>build.xml</filename> file that defines the name of your
+                source file, the desired output directory, and imports the
+                  <filename>build.xml</filename> from this package. For example:
+                <programlisting>&lt;project&gt;
+  &lt;property name="input-xml" value="<replaceable>path-to/yourfile.xml</replaceable>"/&gt;
+  &lt;property name="input-images-dirs" value="<replaceable>images/** figures/** graphics/**</replaceable>"/&gt;
+  &lt;property name="output-dir" value="<replaceable>path-to/desired-output-dir</replaceable>"/&gt;
+  &lt;import file="<replaceable>path-to/docbook-webhelp/</replaceable>build.xml"/&gt;
+&lt;/project&gt;</programlisting></para>
+            </step>
+            <step>
+              <para>From the directory containing your newly created <filename>build.xml</filename>
+                file, type <code>ant webhelp</code> to build your document.</para>
+            </step>
+          </substeps>
+        </step>
+      </procedure>
+    </section>
+    <section>
+      <title>Using and customizing the output</title>
+      <para>To deep link to a topic inside the help set, simply link directly to the page. This help
+        system uses no frameset, so nothing further is necessary. <tip>
+          <para>See <ulink url="http://www.sagehill.net/docbookxsl/Chunking.html">Chunking into
+              multiple HTML files</ulink> in Bob Stayton's <ulink
+              url="http://www.sagehill.net/docbookxsl/index.html">DocBook XSL: The Complete
+              Guide</ulink> for information on controlling output file names and which files are
+            chunked in DocBook.</para>
+        </tip></para>
+      <para>When you perform a search, the results can include brief summaries. These are populated
+        in one of two ways:<itemizedlist>
+          <listitem>
+            <para>By adding <sgmltag>role="summary"</sgmltag> to a <sgmltag>para</sgmltag> or
+                <sgmltag>phrase</sgmltag> in the <sgmltag>chapter</sgmltag> or
+                <sgmltag>section</sgmltag>.</para>
+          </listitem>
+          <listitem>
+            <para>By adding an <sgmltag>abstract</sgmltag> to the <sgmltag>chapterinfo</sgmltag> or
+                <sgmltag>sectioninfo</sgmltag> element.</para>
+          </listitem>
+        </itemizedlist></para>
+      <para>To customize the look and feel of the help, study the following css files:<itemizedlist>
+          <listitem>
+            <para><filename>docs/common/css/positioning.css</filename>: This handles the Positioning
+              of DIVs in appropriate positions. For example, it causes the
+                <code>leftnavigation</code> div to appear on the left, the header on top, and so on.
+              Use this if you need to change the relative positions or need to change the
+              width/height etc.</para>
+          </listitem>
+          <listitem>
+            <para><filename>docs/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css</filename>:
+              This is the theming part which adds colors and stuff. This is a default theme comes
+              with <ulink url="http://jqueryui.com/download">jqueryui</ulink> unchanged. You can get
+              any theme based your interest from this. (Themes are on right navigation bar.) Then
+              replace the css theme folder (theme-redmond) with it, and change the xsl to point to
+              the new css.</para>
+          </listitem>
+          <listitem>
+            <para><filename>docs/common/jquery/treeview/jquery.treeview.css</filename>: This styles
+              the toc Tree. Generally, you don't have to edit this file.</para>
+          </listitem>
+        </itemizedlist></para>
+      <section>
+        <title>Recommended Apache configurations</title>
+        <para>If you are serving a long document from an Apache web server, we recommend you make
+          the following additions or changes to your <filename>httpd.conf</filename> or
+            <filename>.htaccess</filename> file. <remark>TODO: Explain what each thing
+            does.</remark><programlisting>AddDefaultCharSet UTF-8 # <co id="AddDefaultCharSet"/>
+  
+      # 480 weeks
+      &lt;FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"&gt; # <co id="CachingSettings"/>
+      Header set Cache-Control "max-age=290304000, public"
+      &lt;/FilesMatch&gt;
+      
+      # 2 DAYS
+      &lt;FilesMatch "\.(xml|txt)$"&gt;
+      Header set Cache-Control "max-age=172800, public, must-revalidate"
+      &lt;/FilesMatch&gt;
+      
+      # 2 HOURS
+      &lt;FilesMatch "\.(html|htm)$"&gt;
+      Header set Cache-Control "max-age=7200, must-revalidate"
+      &lt;/FilesMatch&gt;
+      
+      # compress text, html, javascript, css, xml:
+      AddOutputFilterByType DEFLATE text/plain # <co id="CompressSetting"/>
+      AddOutputFilterByType DEFLATE text/html
+      AddOutputFilterByType DEFLATE text/xml
+      AddOutputFilterByType DEFLATE text/css
+      AddOutputFilterByType DEFLATE application/xml
+      AddOutputFilterByType DEFLATE application/xhtml+xml
+      AddOutputFilterByType DEFLATE application/rss+xml
+      AddOutputFilterByType DEFLATE application/javascript
+      AddOutputFilterByType DEFLATE application/x-javascript
+      
+      # Or, compress certain file types by extension:
+      &lt;Files *.html&gt; 
+      SetOutputFilter DEFLATE
+      &lt;/Files&gt;
+      </programlisting><calloutlist>
+            <callout arearefs="AddDefaultCharSet">
+              <para>See <ulink url="http://www.sagehill.net/docbookxsl/SpecialChars.html">Odd
+                  characters in HTML output</ulink> in Bob Stayton's book <citetitle>DocBook XSL:
+                  The Complete Guide</citetitle> for more information about this setting.</para>
+            </callout>
+            <callout arearefs="CachingSettings">
+              <para>These lines and those that follow cause the browser to cache various resources
+                such as bitmaps and JavaScript files. Note that caching JavaScript files could cause
+                your users to have stale search indexes if you update your document since the search
+                index is stored in JavaScript files.</para>
+            </callout>
+            <callout arearefs="CompressSetting">
+              <para>These lines cause the the server to compress html, css, and JavaScript files and
+                the brower to uncompress them to improve download performance.</para>
+            </callout>
+          </calloutlist></para>
+      </section>
+    </section>
+    <section>
+      <title>Search indexing</title>
+      <para>Run <command>ant index</command> in the webhelp directory to index the content. Running
+          <command>ant webhelp</command> will do the indexing as part of the process as well.</para>
+      <para>Here's some detailed information about invoking the indexer. The indexing process is
+        pretty smooth, so probably you doesn't need to be concerned with following details. Webhelp
+        Ant script does all the needed bits.</para>
+      <itemizedlist>
+        <listitem>
+          <para>Following should be in the CLASSPATH.</para>
+          <para>
+            <itemizedlist>
+              <listitem>
+                <para><filename>webhelpindexer.jar</filename>,
+                    <filename>lucene-analyzers-3.0.0.jar</filename>,
+                    <filename>lucene-core-3.0.0.jar</filename> - These three are available in the
+                  extensions/ directory of docsbook-xsl-1.76.1, and is automatically fetched to the
+                  webhelp's Ant script. Go for a XSL snapshot if you can which contains the latest
+                  version http://docbook.sourceforge.net/snapshot/</para>
+              </listitem>
+              <listitem>
+                <para><filename>xercesImpl.jar</filename>, <filename> xml-apis.jar</filename> -
+                  These two comes by default with Ant 1.8.0 or prior versions. These are available
+                  under /usr/share/java directory of Linux distributions as well. Else, you may have
+                  to download, and put them to <filename>jre/lib/endorsed</filename>.</para>
+              </listitem>
+            </itemizedlist>
+          </para>
+        </listitem>
+        <listitem>
+          <para>The main class is <classname>com.nexwave.nquindexer.IndexerMain</classname> for the
+            version 1.76.1+. It's <classname>com.nexwave.nquindexer.IndexerTask</classname> for the
+            versions 1.76.0 and 1.76.1.</para>
+          <para>
+            <itemizedlist>
+              <listitem>
+                <para>Needs two parameters as command-line arguments:</para>
+                <para>
+                  <itemizedlist>
+                    <listitem>
+                      <para>The folder where the files to be indexed reside</para>
+                    </listitem>
+                  </itemizedlist>
+                  <itemizedlist>
+                    <listitem>
+                      <para>(Optional) language. defaults to "en". See build.properties for
+                        details</para>
+                    </listitem>
+                  </itemizedlist>
+                </para>
+              </listitem>
+            </itemizedlist>
+            <note>
+              <para>We have changed the way we invoke the webhelp indexer from the Ant Task to
+                  <code>indexertask</code> to direct invocation. This seems to have remove the
+                  <envar>CLASSPATH</envar> issue some people were having.</para>
+            </note>
+          </para>
+        </listitem>
+      </itemizedlist>
+      <indexterm>
+        <primary>search</primary>
+        <secondary>indexing</secondary>
+      </indexterm>
+      <indexterm>
+        <primary>indexer</primary>
+        <secondary>CLASSPATH</secondary>
+      </indexterm>
+      <para role="summary">To build the indexer, you must have installed the JDK version 1.5 or
+        higher and set the <envar>ANT_HOME</envar> environment variable. </para>
+      <indexterm>
+        <primary>ANT_HOME</primary>
+      </indexterm>
+      <indexterm>
+        <primary>indexer</primary>
+        <secondary>building</secondary>
+      </indexterm>
+    </section>
+    <section>
+      <title>Adding support for other (non-CJKV) languages</title>
+      <para>To support stemming for a language, the search mechanism requires a stemmer implemented
+        in both Java and JavaScript. The Java version is used by the indexer and the JavaScript
+        verison is used to stem the user's input on the search form. Currently the search mechanism
+        supports stemming for English and German. In addition, Java stemmers are included for the
+        following languages. Therefore, to support these languages, you only need to implement the
+        stemmer in JavaScript and add it to the template. If you do undertake this task, please
+        consider contributing the JavaScript version back to this project and to <ulink
+          url="http://snowball.tartarus.org/texts/stemmersoverview.html">Martin Porter's
+          project</ulink>.<itemizedlist>
+          <listitem>
+            <para>Danish</para>
+          </listitem>
+          <listitem>
+            <para>Dutch</para>
+          </listitem>
+          <listitem>
+            <para>Finnish</para>
+          </listitem>
+          <listitem>
+            <para>Hungarian</para>
+          </listitem>
+          <listitem>
+            <para>Italian</para>
+          </listitem>
+          <listitem>
+            <para>Norwegian</para>
+          </listitem>
+          <listitem>
+            <para>Portuguese</para>
+          </listitem>
+          <listitem>
+            <para>Romanian</para>
+          </listitem>
+          <listitem>
+            <para>Russian</para>
+          </listitem>
+          <listitem>
+            <para>Spanish</para>
+          </listitem>
+          <listitem>
+            <para>Swedish</para>
+          </listitem>
+          <listitem>
+            <para>Turkish</para>
+          </listitem>
+        </itemizedlist><indexterm>
+          <primary>stemming</primary>
+        </indexterm></para>
+    </section>
+    <section>
+      <title>Adding images</title>
+      <para>This section shows how to add images to WebHelp. For that, follow the simple procedure given.<itemizedlist>
+          <listitem>
+            <para>Put the images in a subdirectory of your source file directory. For example
+                <filename>docsrc/images</filename>.</para>
+          </listitem>
+          <listitem>
+            <para>Then refer to those images from your docbook document.</para>
+            <para>Following image is from <emphasis role="bold"
+                >webhelp/docsrs/images/sample.jpg</emphasis>. The docbook code is shown
+              below.</para>
+            <para>
+              <figure>
+                <title>Sample Image</title>
+                <mediaobject>
+                  <imageobject>
+                    <imagedata fileref="images/sample.jpg" format="JPG"/>
+                  </imageobject>
+                </mediaobject>
+              </figure>
+            </para>
+            <example>
+              <title>Example code for adding images. Note down the relative path used</title>
+              <programlisting>&lt;figure>
+  &lt;title>Sample&lt;/title>
+  &lt;mediaobject>
+    &lt;imageobject>
+      &lt;imagedata fileref="<emphasis role="bold">images/sample.jpg</emphasis>" format="JPG"/>
+    &lt;/imageobject>
+  &lt;/mediaobject>
+&lt;/figure></programlisting>
+            </example>
+          </listitem>
+        <listitem>
+          <para> The <filename>build.properties</filename> file controls what directories are copied
+              over from the source tree to the output
+              tree:<programlisting># If your document has image directories that need to be copied
+# to the output directory, you can list patterns here. 
+# See the Ant documentation for fileset for documentation
+# on patterns.
+input-images-dirs=images/**,figures/**,graphics/**</programlisting></para>
+        </listitem>
+        </itemizedlist></para>
+    </section>
+  </chapter>
+  <chapter>
+    <title>Developer Docs</title>
+    <para role="summary">This chapter provides an overview of how webhelp is implemented.</para>
+    <para>The table of contents and search panes are implemented as divs and rendered as if they
+      were the left pane in a frameset. As a result, the page must save the state of the table of
+      contents and the search in cookies when you navigate away from a page. When you load a new
+      page, the page reads these cookies and restores the state of the table of contents tree and
+      search. The result is that the help system behaves exactly as if it were a frameset.</para>
+    <section>
+      <title>Design</title>
+      <para role="summary">An overview of webhelp page structure.</para>
+      <para>DocBook WebHelp page structure is fully built on css-based design abandoning frameset
+        structure. Overall page structure can be divided in to three main sections <itemizedlist>
+          <listitem>
+            <para>Header: Header is a separate Div which include company logo, navigation
+              button(prev, next etc.), page title and heading of parent topic.</para>
+          </listitem>
+          <listitem>
+            <para>Content: This includes the content of the documentation. The processing of this
+              part is done by <ulink
+                url="http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl"> DocBook
+                XSL Chunking customization</ulink>. Few further css-styling applied from
+                <filename>positioning.css</filename>. </para>
+          </listitem>
+          <listitem>
+            <para>Left Navigation: This includes the table of contents and search tab. This is
+              customized using <ulink url="http://jqueryui.com/">jquery-ui</ulink> styling.</para>
+            <itemizedlist>
+              <listitem>
+                <para>Tabbed Navigation: The navigation pane is organized in to two tabs. Contents
+                  tab, and Search tab. Tabbed output is achieved using <ulink
+                    url="http://docs.jquery.com/UI/Tabs">JQuery Tabs plugin</ulink>. </para>
+              </listitem>
+              <listitem>
+                <para>Table of Contents (TOC) tree: When building the chunked html from the docbook
+                  file, Table of Contents is generated as an Unordered List (a list made from
+                    <code>&lt;ul> &lt;li></code> tags). When page loads in the browser, we apply
+                  styling to it to achieve the nice look that you see. Styling for TOC tree is done
+                  by a JQuery UI plugin called <ulink
+                    url="http://bassistance.de/jquery-plugins/jquery-plugin-treeview/">
+                    TreeView</ulink>. We can generate the tree easily by following javascript code:
+                  <programlisting>
+//Generate the tree
+$("#tree").treeview({
+collapsed: true,
+animated: "medium",
+control: "#sidetreecontrol",
+persist: "cookie"
+});
+</programlisting>
+                </para>
+              </listitem>
+              <listitem>
+                <para>Search Tab: This includes the search feature.</para>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+        </itemizedlist>
+        <indexterm>
+          <primary>design</primary>
+        </indexterm></para>
+    </section>
+    <section>
+      <title>Search</title>
+      <para role="summary">Overview design of Search mechanism.</para>
+      <para>The serching is a fully client-side implementation of querying texts for content
+        searching. There's no server involved. So, the search queries by the users are processed by
+        JavaScript inside the browser, and displays the matching results by comparing the query with
+        a simplified 'index' that too resides in JavaScript. Mainly the search mechanism has two
+        parts. <itemizedlist>
+          <listitem>
+            <para>Indexing: First we need to traverse the content in the docs/content folder and
+              index the words in it. This is done by <filename>webhelpindexer.jar</filename> in
+                <filename>xsl/extentions/</filename> folder. You can invoke it by <code>ant
+                index</code> command from the root of webhelp of directory. The source of
+              webhelpindexer is now moved to it's own location at
+                <filename>trunk/xsl-webhelpindexer/</filename>. Checkout the Docbook trunk svn
+              directory to get this source. Then, do your changes and recompile it by simply running
+                <code>ant</code> command. My assumption is that it can be opened by Netbeans IDE by
+              one click. Or if you are using IntelliJ Idea, you can simply create a new project from
+              existing sources. Indexer has extensive support for features such as word scoring,
+              stemming of words, and support for languages English, German, French. For CJK
+              (Chinese, Japanese, Korean) languages, it uses bi-gram tokenizing to break up the
+              words (since CJK languages does not have spaces between words).</para>
+            <para> When <code>ant index</code> is run, it generates five output files: <itemizedlist>
+                <listitem>
+                  <para><filename>htmlFileList.js</filename> - This contains an array named
+                      <code>fl</code> which stores details all the files indexed by the indexer.
+                    Further, the doStem in it defines whether stemming should be used. It defaults
+                    to false.</para>
+                </listitem>
+                <listitem>
+                  <para><filename>htmlFileInfoList.js</filename> - This includes some meta data
+                    about the indexed files in an array named <code>fil</code>. It includes details
+                    about file name, file (html) title, a summary of the content.Format would look
+                    like, <code>fil["4"]= "ch03.html@@@Developer Docs@@@This chapter provides an
+                      overview of how webhelp is implemented.";</code>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para><filename>index-*.js</filename> (Three index files) - These three files
+                    actually stores the index of the content. Index is added to an array named
+                      <code>w</code>.</para>
+                </listitem>
+              </itemizedlist></para>
+          </listitem>
+          <listitem>
+            <para> Querying: Query processing happens totally in client side. Following JavaScript
+              files handles them. <itemizedlist>
+                <listitem>
+                  <para><filename>nwSearchFnt.js</filename> - This handles the user query and
+                    returns the search results. It does query word tokenizing, drop unnecessary
+                    punctuations and common words, do stemming if docbook language supports it,
+                    etc.</para>
+                </listitem>
+                <listitem>
+                  <para><filename>{$indexer-language-code}_stemmer.js</filename> - This includes the
+                    stemming library. <filename>nwSearchFnt.js</filename> file calls
+                      <code>stemmer</code> method in this file for stemming. ex: <code>var stem =
+                      stemmer(foobar);</code>
+                  </para>
+                </listitem>
+              </itemizedlist>
+            </para>
+          </listitem>
+        </itemizedlist>
+        <indexterm>
+          <primary>search</primary>
+        </indexterm></para>
+      <section>
+        <title>New Stemmers</title>
+        <para role="summary">Adding new Stemmers is very simple.</para>
+        <para>Currently, only English, French, and German stemmers are integrated in to WebHelp. But
+          the code is extensible such that you can add new stemmers easily by few steps.</para>
+        <para>What you need: <itemizedlist>
+            <listitem>
+              <para>You'll need two versions of the stemmer; One written in JavaScript, and another
+                in Java. But fortunately, Snowball contains Java stemmers for number of popular
+                languages, and are already included with the package. You can see the full list in
+                  <ulink url="ch02s04.html">Adding support for other (non-CJKV) languages</ulink>.
+                If your language is listed there, Then you have to find javascript version of the
+                stemmer. Generally, new stemmers are getting added in to <ulink
+                  url="http://snowball.tartarus.org/otherlangs/index.html">Snowball Stemmers in
+                  other languages</ulink> location. If javascript stemmer for your language is
+                available, then download it. Else, you can write a new stemmer in JavaScript using
+                SnowBall algorithm fairly easily. Algorithms are at <ulink
+                  url="http://snowball.tartarus.org/">Snowball</ulink>. </para>
+            </listitem>
+            <listitem>
+              <para>Then, name the JS stemmer exactly like this:
+                  <filename>{$language-code}_stemmer.js</filename>. For example, for Italian(it),
+                name it as, <filename>it_stemmer.js</filename>. Then, copy it to the
+                  <filename>docbook-webhelp/template/content/search/stemmers/</filename> folder. (I
+                assumed <filename>docbook-webhelp</filename> is the root folder for webhelp.) <note>
+                  <para>Make sure you changed the <code>webhelp.indexer.language</code> property in
+                      <filename>build.properties</filename> to your language. </para>
+                </note>
+              </para>
+            </listitem>
+            <listitem>
+              <para>Now two easy changes needed for the indexer.</para>
+              <itemizedlist>
+                <listitem>
+                  <para>Open
+                      <filename>docbook-webhelp/indexer/src/com/nexwave/nquindexer/IndexerTask.java</filename>
+                    in a text editor and add your language code to the
+                      <code>supportedLanguages</code> String Array. </para>
+                  <example>
+                    <title>Add new language to supportedLanguages array</title>
+                    <para> change the Array from,
+                      <programlisting>
+private String[] supportedLanguages= {"en", "de", "fr", "cn", "ja", "ko"}; 
+    //currently extended support available for
+    // English, German, French and CJK (Chinese, Japanese, Korean) languages only.
+</programlisting>
+                      To,</para>
+                    <programlisting>
+private String[] supportedLanguages= {"en", "de", "fr", "cn", "ja", "ko", <emphasis>"it"</emphasis>}; 
+  //currently extended support available for
+  // English, German, French, CJK (Chinese, Japanese, Korean), and Italian languages only.
+                    </programlisting>
+                  </example>
+                </listitem>
+                <listitem>
+                  <para> Now, open
+                      <filename>docbook-webhelp/indexer/src/com/nexwave/nquindexer/SaxHTMLIndex.java</filename>
+                    and add the following line to the code where it initializes the Stemmer (Search
+                    for <code>SnowballStemmer stemmer;</code>). Then add code to initialize the
+                    stemmer Object in your language. It's self understandable. See the example. The
+                    class names are at:
+                      <filename>docbook-webhelp/indexer/src/com/nexwave/stemmer/snowball/ext/</filename>. </para>
+                  <example>
+                    <title>Initialize correct stemmer based on the
+                        <code>webhelp.indexer.language</code> specified</title>
+                    <programlisting>
+      SnowballStemmer stemmer;
+      if(indexerLanguage.equalsIgnoreCase("en")){
+           stemmer = new EnglishStemmer();
+      } else if (indexerLanguage.equalsIgnoreCase("de")){
+          stemmer= new GermanStemmer();
+      } else if (indexerLanguage.equalsIgnoreCase("fr")){
+          stemmer= new FrenchStemmer();
+      }
+<emphasis>else if (indexerLanguage.equalsIgnoreCase("it")){ //If language code is "it" (Italian)
+          stemmer= new italianStemmer();  //Initialize the stemmer to <code>italianStemmer</code> object.
+      } </emphasis>      
+      else {
+          stemmer = null;
+      }
+</programlisting>
+                  </example>
+                </listitem>
+              </itemizedlist>
+            </listitem>
+          </itemizedlist>
+        </para>
+        <para>That's all. Now run <code>ant build-indexer</code> to compile and build the java code.
+          Then, run <code>ant webhelp</code> to generate the output from your docbook file. For any
+          questions, contact us or email to the docbook mailing list
+            <email>docbook-apps@lists.oasis-open.org</email>.</para>
+        <indexterm>
+          <primary>stemmer</primary>
+        </indexterm>
+      </section>
+    </section>
+  </chapter>
+  <chapter>
+    <chapterinfo>
+      <abstract>
+        <para>Frequently Asked Questions</para>
+      </abstract>
+    </chapterinfo>
+    <title>FAQ</title>
+    <qandaset>
+      <qandaentry>
+        <question>
+          <para>On what browsers and operating systems WebHelp has tested extensively?</para>
+        </question>
+        <answer>
+          <para>We tested it with versions of most browsers including Firefox 3.x+, IE 7+, Chrome,
+            Safari, and iPod/iPhone. The JavaScript codes are mostly jquery plugins, so you’d want
+            to check the jquery support matrix for details.</para>
+        </answer>
+      </qandaentry>
+      <qandaentry>
+        <question>
+          <para>Apart from this demo, where can I find other demos or production deployments of
+            WebHelp?</para>
+        </question>
+        <answer>
+          <para>There are four production deployments provided in <ulink
+              url="http://wiki.docbook.org/WebHelp">WebHelp wiki</ulink> currently.</para>
+        </answer>
+      </qandaentry>
+      <qandaentry>
+        <question>
+          <para>When building the webhelp output, I'm getting the following error. What's the reason
+            for this?</para>
+          <programlisting>[xslt] : Warning! file:/C:/Users/kasun/docbook-xsl-1.77.0/xhtml/autoidx.xsl:
+            line 596: Attribute 'href' outside of element.
+[xslt] : Warning! file:/C:/Users/kasun/docbook-xsl-1.77.0/xhtml/autoidx.xsl: 
+            line 596: Attribute 'href' outside of element.</programlisting>
+          <para>----</para>
+        </question>
+        <answer>
+          <para>This happens if you haven't done the step 3 and 4 of webhelp build guide "Generating
+            webhelp output" in the documentation. Basically, you need to correctly set the following
+            folder
+            paths.<programlisting>xslt-processor-classpath=/usr/share/java/saxon-6.5.5.jar
+xercesImpl.jar=/usr/share/java/xercesImpl.jar
+xml-apis.jar=/usr/share/java/xml-apis.jar</programlisting></para>
+        </answer>
+      </qandaentry>
+      <qandaentry>
+        <question>
+          <para>Does WebHelp Indexer can index HTML transformation as well?</para>
+        </question>
+        <answer>
+          <para>Yes, WebHelp supports HTML transformations as well in addition to XHTML.</para>
+        </answer>
+      </qandaentry>
+      <qandaentry>
+        <question>
+          <para>I need more information about webhelp-indexer. Where can I find it?</para>
+        </question>
+        <answer>
+          <para>The DocBook Webhelp Indexer is based on the HTMLSearch plugin for DITA. See <ulink
+              url="http://www.helpml.com:8088/help/index.jsp?topic=/org.sample.help.doc/htmlsearch/DHSC_BestPractices_htmlsearch.html"
+              >HTMLSearch documentation </ulink> for more information.</para>
+        </answer>
+      </qandaentry>
+    </qandaset>
+    <indexterm>
+      <primary>FAQ</primary>
+    </indexterm>
+  </chapter>
+  <!--<xi:include href="xinclude-test.xml"  xmlns:xi="http://www.w3.org/2001/XInclude"/>-->
+</book>
diff --git a/applications/content/template/docbook/webhelp/docsrc/xinclude-test.xml b/applications/content/template/docbook/webhelp/docsrc/xinclude-test.xml
new file mode 100644
index 0000000..77ef4f8
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/docsrc/xinclude-test.xml
@@ -0,0 +1,13 @@
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+  <chapter>
+    <title>Test section</title>
+    <section>
+      <title>Some search words for testing</title>
+      <para>arsenal, arsenic, buy, say, by, vary, try, sky, nucleus, day, key, currency, currencies, build.xml</para>
+    </section>
+    <section>
+      <title>Some search words for testing (inflected)</title>
+      <para>arsenal, arsenic, buys, says, varies, tries, skies, nuclei, days, keys, currencies, build.xml</para>
+    </section>    
+  </chapter>
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/saxon.jar b/applications/content/template/docbook/webhelp/saxon.jar
new file mode 100644
index 0000000..15aa83a
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/saxon.jar
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/browserDetect.js b/applications/content/template/docbook/webhelp/template/common/browserDetect.js
new file mode 100644
index 0000000..2a7aa08
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/browserDetect.js
@@ -0,0 +1,116 @@
+var BrowserDetect = {
+	init: function () {
+		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
+		this.version = this.searchVersion(navigator.userAgent)
+			|| this.searchVersion(navigator.appVersion)
+			|| "an unknown version";
+		this.OS = this.searchString(this.dataOS) || "an unknown OS";
+	},
+	searchString: function (data) {
+		for (var i=0;i<data.length;i++)	{
+			var dataString = data[i].string;
+			var dataProp = data[i].prop;
+			this.versionSearchString = data[i].versionSearch || data[i].identity;
+			if (dataString) {
+				if (dataString.indexOf(data[i].subString) != -1)
+					return data[i].identity;
+			}
+			else if (dataProp)
+				return data[i].identity;
+		}
+	},
+	searchVersion: function (dataString) {
+		var index = dataString.indexOf(this.versionSearchString);
+		if (index == -1) return;
+		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
+	},
+	dataBrowser: [
+		{
+			string: navigator.userAgent,
+			subString: "Chrome",
+			identity: "Chrome"
+		},
+		{ 	string: navigator.userAgent,
+			subString: "OmniWeb",
+			versionSearch: "OmniWeb/",
+			identity: "OmniWeb"
+		},
+		{
+			string: navigator.vendor,
+			subString: "Apple",
+			identity: "Safari",
+			versionSearch: "Version"
+		},
+		{
+			prop: window.opera,
+			identity: "Opera"
+		},
+		{
+			string: navigator.vendor,
+			subString: "iCab",
+			identity: "iCab"
+		},
+		{
+			string: navigator.vendor,
+			subString: "KDE",
+			identity: "Konqueror"
+		},
+		{
+			string: navigator.userAgent,
+			subString: "Firefox",
+			identity: "Firefox"
+		},
+		{
+			string: navigator.vendor,
+			subString: "Camino",
+			identity: "Camino"
+		},
+		{		// for newer Netscapes (6+)
+			string: navigator.userAgent,
+			subString: "Netscape",
+			identity: "Netscape"
+		},
+		{
+			string: navigator.userAgent,
+			subString: "MSIE",
+			identity: "Explorer",
+			versionSearch: "MSIE"
+		},
+		{
+			string: navigator.userAgent,
+			subString: "Gecko",
+			identity: "Mozilla",
+			versionSearch: "rv"
+		},
+		{ 		// for older Netscapes (4-)
+			string: navigator.userAgent,
+			subString: "Mozilla",
+			identity: "Netscape",
+			versionSearch: "Mozilla"
+		}
+	],
+	dataOS : [
+		{
+			string: navigator.platform,
+			subString: "Win",
+			identity: "Windows"
+		},
+		{
+			string: navigator.platform,
+			subString: "Mac",
+			identity: "Mac"
+		},
+		{
+			   string: navigator.userAgent,
+			   subString: "iPhone",
+			   identity: "iPhone/iPod"
+	    },
+		{
+			string: navigator.platform,
+			subString: "Linux",
+			identity: "Linux"
+		}
+	]
+
+};
+BrowserDetect.init();
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/template/common/css/ie.css b/applications/content/template/docbook/webhelp/template/common/css/ie.css
new file mode 100644
index 0000000..4c5f1c2
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/css/ie.css
@@ -0,0 +1,13 @@
+.statustext{
+    filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1)
+            progid:DXImageTransform.Microsoft.BasicImage(opacity=.5);  
+    width: 100%;
+    height: 30px;
+    right: -5px;
+    top:105px;
+    /* left: 280px; */ /* change to -12px; when sidebar is collapsed */
+}
+
+body #content{                      
+    padding-top: 136px;
+}
diff --git a/applications/content/template/docbook/webhelp/template/common/css/ofbiz_positioning.css b/applications/content/template/docbook/webhelp/template/common/css/ofbiz_positioning.css
new file mode 100644
index 0000000..0484cf0
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/css/ofbiz_positioning.css
@@ -0,0 +1,388 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+tr th .added { color: #E6E6FA; } 
+tr th .changed {color: #99ff99; }
+div.added tr, div.added    { background-color: #E6E6FA; }
+div.deleted tr, div.deleted  { text-decoration: line-through;
+               background-color: #FF7F7F; }
+div.changed tr, div.changed  { background-color: #99ff99; }
+div.off      {  }
+
+span.added   { background-color: #E6E6FA; }
+span.deleted { text-decoration: line-through;
+               background-color: #FF7F7F; }
+span.changed { background-color: #99ff99; }
+span.off     {  }
+
+
+body { font: 12px Verdana, Geneva, sans-serif; }
+p, ul, ol, li { font: 10pt Verdana, Geneva, sans-serif; }
+h1 { font: 15pt Arial, Helvetica, geneva;
+     color: black!important!;
+}
+h2 { font: normal 12pt Arial, Helvetica, geneva; }
+
+#header {
+    background: url("../images/header-bg.png") scroll top left repeat-x #4d8c83;
+    position: fixed;
+    width: 100%;
+    height: 99px;
+    top: 0;
+    right: 0;
+    bottom: auto;
+    left: 0;
+    border-bottom: 1px solid #bbc4c5;
+    z-index: 2000;
+}
+
+#header h1 {
+    white-space:nowrap;
+    margin-left: 470px;
+    position: fixed;
+    top: 18px;
+    left: -15px;
+    color: #404040 !important;
+}
+
+/*
+#header h1 {
+	margin-top: 2px;
+}
+*/
+
+p.breadcrumbs {
+    margin-top: 30px;
+    margin-left: 310px;
+}
+
+#header img {
+    float: left;
+    margin-left: 20px;
+    margin-top: 12px;
+}
+
+#header p.breadcrumbs a {
+    color: #bbb;
+}
+
+#leftnavigation {
+    overflow: auto;
+    position: fixed;
+    height: auto;
+    top: 95px;
+    bottom: 0;
+    left: 0;
+    width: 280px;
+    z-index: 1500;
+    border-right:2px solid #bbc4c5;
+    padding: 0px;
+    background-color: #ededed!important;
+}
+
+#treeDiv {
+    overflow: auto;
+    position: fixed;
+    height: auto;
+    top: 136px;
+    bottom: 0;
+    left: 0;
+    width: 243px;
+    z-index: 1500;
+    border-right:2px solid #CCCCCC;
+    background-color: #f0f0f0!important;
+}
+
+#searchDiv {
+    overflow: auto;
+    position: fixed;
+    height: auto;
+    top: 138px;
+    bottom: 0;
+    left: 0;
+    width: 243px;
+    z-index: 1500;
+    border-right:2px solid #CCCCCC;
+    background-color: #f0f0f0!important;
+}
+
+#content {
+    position: relative;
+    top: 90px; /* left: 240px;*/
+    right: auto; /*  bottom: 20px;  */
+    margin: 0px 0px 0px 280px;
+    width: auto;
+    height: inherit;
+    padding-left: 5px;
+    padding-right: 30px;
+    color: #000000;
+    /*border-left: 2px solid #cccccc; overflow :scroll;*/
+    z-index: 1000;
+    min-width:200px;
+}
+
+#navheader {
+    position: fixed;
+    background: #DCDCDC;
+    padding-left: 10px;
+    right: 0px;
+    top: 10px;
+    text-align: right;
+}
+
+#content h1, #content h2 { 
+color: #404040 !important; 
+font-size: 170%;
+font-weight: normal;
+}
+.navfooter { bottom: 2%; }
+.highlight { background-color: #c5d3c3; }
+.highlightButton{ font-size: 0; }
+
+/*  Show Hide TOC tree */
+.pointLeft {
+    padding-right: 15px;
+    display: block;
+    cursor: pointer;
+}
+.pointRight {
+    padding-right: 15px;
+    display: block;
+    cursor: pointer;
+}
+
+/* Search results Styling */
+.searchExpression {
+    color: #0050A0;
+    background-color: #EBEFF8;
+    font-size: 12pt;
+}
+.searchresult li a {
+    text-decoration: none;
+    color: #0050A0;
+}
+.searchresult li { color: #0050A0; }
+.shortdesclink { color: gray; font-size: 9pt; }
+.searchText { width: 11em }
+.searchButton {
+    margin-left: 3px;
+    background: #F4F4F4;
+    color: #black;
+    border: #ACCEAF solid 1pt;
+    font-weight: bold;
+    font-size: 10pt
+}
+.searchFieldSet { border: 1px solid #BFBAB0; background-color: #F2EFE9;}
+
+.title, div.toc>p{ font-weight: bold; }	
+
+p.breadcrumbs {
+        display: inline;
+	margin-bottom: 0px;
+	margin-top: 33px;
+}
+
+p.breadcrumbs a {
+	padding-right: 12px;
+	margin-right: 5px;
+	text-decoration: none;
+	color: #575757;
+	text-transform: uppercase;
+	font-size: 10px;
+}
+
+p.breadcrumbs a:first-child {background: url(../images/breadcrumb-arrow-white.png) no-repeat right center;}
+
+p.breadcrumbs a:hover {text-decoration: underline;}
+
+#star ul.star { 
+    LIST-STYLE: none; 
+    MARGIN: 0; 
+    PADDING: 0; 
+    WIDTH: 85px;
+    /* was 100 */ 
+    HEIGHT: 20px;
+    LEFT: 1px; 
+    TOP: -5px; 
+    POSITION: relative; 
+    FLOAT: right; 
+    BACKGROUND: url('../images/starsSmall.png') repeat-x 0 -25px;
+}
+#star li { 
+    PADDING: 0; 
+    MARGIN: 0; 
+    FLOAT: right; 
+    DISPLAY: block; 
+    WIDTH: 85px;
+    /* was 100 */
+    HEIGHT: 20px; 
+    TEXT-DECORATION: none; 
+    text-indent: -9000px; 
+    Z-INDEX: 20; 
+    POSITION: absolute; 
+    PADDING: 0; 
+}
+#star li.curr { 
+    BACKGROUND: url('../images/starsSmall.png') left 25px; 
+    FONT-SIZE: 1px; 
+}
+
+table.navLinks {margin-right: 20px;}
+
+table.navLinks td a {
+	text-decoration: none;
+	text-transform: uppercase;
+	color: black;
+	font-size: 11px;
+}
+
+a.navLinkPrevious {
+	padding-left: 12px;
+	background: url(../images/previous-arrow.png) no-repeat left center;
+}
+
+a.navLinkNext {
+	padding-right: 12px;
+	background: url(../images/next-arrow.png) no-repeat right center;
+}
+
+a#showHideButton {
+	padding-left: 20px;
+	background: url(../images/sidebar.png) no-repeat left center;
+}
+
+	
+.filetree li span a { color: #777; }
+
+#treediv { -webkit-box-shadow: #CCC 0px 1px 2px 0px inset; }
+
+.legal, .legal *{
+ color: #555;
+ text-align: center;
+ padding-bottom: 10px;
+}
+
+.internal { color : #0000CC;}
+
+.writeronly {color : red;}
+
+.remark, .remark .added, .remark .changed, .remark .deleted{ background: yellow;} 
+
+tr th, tr th .internal, tr th .added, tr th .changed {
+	background: #00589E;
+	color: white;
+	font-weight: bold;
+	text-align: left;
+}
+
+.statustext{
+    position:fixed;
+    top:105px;
+    width: 0%;
+    height: 0%;
+    opacity: .3;
+    -webkit-transform: rotate(90deg);
+    -moz-transform: rotate(90deg);
+    -o-transform: rotate(90deg);
+    white-space: nowrap;
+    color: red;
+    font-weight: bold;
+    font-size: 2em;
+    margin-top: 30px;
+}
+
+#toolbar {
+	width: 100%;
+	height: 33px;
+	position: fixed;
+	top: 93px;
+	z-index: 99;
+	left: 280px;
+	color: #333;
+	line-height: 28px;
+	padding-left: 10px;
+}
+
+#toolbar-left {
+	position: relative;
+	left: 0px;
+}
+ 
+body p.breadcrumbs {
+	margin: 0px;
+	padding: 0px;
+	line-height: 28px;
+}
+
+body #content {
+	position: static;
+	margin-top: 126px;
+	top: 0px;
+}
+
+body.sidebar #toolbar{left: 0px;}
+
+body.sidebar #toolbar-left{left: 0px;}
+
+div#toolbar-left img {vertical-align: text-top;}
+
+div.note *, div.caution *, div.important *, div.tip *, div.warning * {
+    background: inherit !important;
+    color: inherit !important;
+    border: inherit  !important;    
+}
+
+#content table thead, #content table th{
+    background: gray;
+    color: white;
+    font-weight: bold;
+}
+
+#content table caption{font-weight: bold;}
+
+#content table td, #content table {border: 1px solid black;}
+
+#content table td, #content table th { padding: 5px;}
+
+#content table {margin-bottom: 20px;}
+
+*[align = 'center']{ text-align: center;}
+
+#content .qandaset>table, #content .qandaset>table td, #content .calloutlist table, #content .calloutlist table td, #content .navfooter table, #content .navfooter table td {
+    border: 0px solid;
+}
+
+@media print {
+
+    body * {
+        visibility: hidden;
+    }
+
+    #content, #content * {
+        visibility: visible;
+    }
+
+   #sidebar, .navfooter {
+       display: none;
+   }
+
+   #content {
+	margin: 0 0 0 0;
+    }
+
+}
diff --git a/applications/content/template/docbook/webhelp/template/common/css/positioning.css b/applications/content/template/docbook/webhelp/template/common/css/positioning.css
new file mode 100644
index 0000000..d843f6410
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/css/positioning.css
@@ -0,0 +1,369 @@
+tr th .added { color: #E6E6FA; } 
+tr th .changed {color: #99ff99; }
+div.added tr, div.added    { background-color: #E6E6FA; }
+div.deleted tr, div.deleted  { text-decoration: line-through;
+               background-color: #FF7F7F; }
+div.changed tr, div.changed  { background-color: #99ff99; }
+div.off      {  }
+
+span.added   { background-color: #E6E6FA; }
+span.deleted { text-decoration: line-through;
+               background-color: #FF7F7F; }
+span.changed { background-color: #99ff99; }
+span.off     {  }
+
+
+body { font: 12px Verdana, Geneva, sans-serif; }
+p, ul, ol, li { font: 10pt Verdana, Geneva, sans-serif; }
+h1 { font: 15pt Arial, Helvetica, geneva;
+     color: black!important!;
+}
+h2 { font: normal 12pt Arial, Helvetica, geneva; }
+
+#header {
+    background: url("../images/header-bg.png") scroll top left repeat-x #4d8c83;
+    position: fixed;
+    width: 100%;
+    height: 99px;
+    top: 0;
+    right: 0;
+    bottom: auto;
+    left: 0;
+    border-bottom: 1px solid #bbc4c5;
+    z-index: 2000;
+}
+
+#header h1 {
+    margin-left: 310px;
+    position: fixed;
+    top: 10px;
+    left: -15px;
+    color: #404040 !important;
+}
+
+/*
+#header h1 {
+	margin-top: 2px;
+}
+*/
+
+p.breadcrumbs {
+    margin-top: 30px;
+    margin-left: 310px;
+}
+
+#header img {
+    float: left;
+    margin-left: 20px;
+    margin-top: 12px;
+}
+
+#header p.breadcrumbs a {
+    color: #bbb;
+}
+
+#leftnavigation {
+    overflow: auto;
+    position: fixed;
+    height: auto;
+    top: 95px;
+    bottom: 0;
+    left: 0;
+    width: 280px;
+    z-index: 1500;
+    border-right:2px solid #bbc4c5;
+    padding: 0px;
+    background-color: #ededed!important;
+}
+
+#treeDiv {
+    overflow: auto;
+    position: fixed;
+    height: auto;
+    top: 136px;
+    bottom: 0;
+    left: 0;
+    width: 243px;
+    z-index: 1500;
+    border-right:2px solid #CCCCCC;
+    background-color: #f0f0f0!important;
+}
+
+#searchDiv {
+    overflow: auto;
+    position: fixed;
+    height: auto;
+    top: 138px;
+    bottom: 0;
+    left: 0;
+    width: 243px;
+    z-index: 1500;
+    border-right:2px solid #CCCCCC;
+    background-color: #f0f0f0!important;
+}
+
+#content {
+    position: relative;
+    top: 90px; /* left: 240px;*/
+    right: auto; /*  bottom: 20px;  */
+    margin: 0px 0px 0px 280px;
+    width: auto;
+    height: inherit;
+    padding-left: 5px;
+    padding-right: 30px;
+    color: #000000;
+    /*border-left: 2px solid #cccccc; overflow :scroll;*/
+    z-index: 1000;
+    min-width:200px;
+}
+
+#navheader {
+    position: fixed;
+    background: #DCDCDC;
+    padding-left: 10px;
+    right: 0px;
+    top: 10px;
+    text-align: right;
+}
+
+#content h1, #content h2 { 
+color: #404040 !important; 
+font-size: 170%;
+font-weight: normal;
+}
+.navfooter { bottom: 2%; }
+.highlight { background-color: #c5d3c3; }
+.highlightButton{ font-size: 0; }
+
+/*  Show Hide TOC tree */
+.pointLeft {
+    padding-right: 15px;
+    display: block;
+    cursor: pointer;
+}
+.pointRight {
+    padding-right: 15px;
+    display: block;
+    cursor: pointer;
+}
+
+/* Search results Styling */
+.searchExpression {
+    color: #0050A0;
+    background-color: #EBEFF8;
+    font-size: 12pt;
+}
+.searchresult li a {
+    text-decoration: none;
+    color: #0050A0;
+}
+.searchresult li { color: #0050A0; }
+.shortdesclink { color: gray; font-size: 9pt; }
+.searchText { width: 11em }
+.searchButton {
+    margin-left: 3px;
+    background: #F4F4F4;
+    color: #black;
+    border: #ACCEAF solid 1pt;
+    font-weight: bold;
+    font-size: 10pt
+}
+.searchFieldSet { border: 1px solid #BFBAB0; background-color: #F2EFE9;}
+
+.title, div.toc>p{ font-weight: bold; }	
+
+p.breadcrumbs {
+        display: inline;
+	margin-bottom: 0px;
+	margin-top: 33px;
+}
+
+p.breadcrumbs a {
+	padding-right: 12px;
+	margin-right: 5px;
+	text-decoration: none;
+	color: #575757;
+	text-transform: uppercase;
+	font-size: 10px;
+}
+
+p.breadcrumbs a:first-child {background: url(../images/breadcrumb-arrow-white.png) no-repeat right center;}
+
+p.breadcrumbs a:hover {text-decoration: underline;}
+
+#star ul.star { 
+    LIST-STYLE: none; 
+    MARGIN: 0; 
+    PADDING: 0; 
+    WIDTH: 85px;
+    /* was 100 */ 
+    HEIGHT: 20px;
+    LEFT: 1px; 
+    TOP: -5px; 
+    POSITION: relative; 
+    FLOAT: right; 
+    BACKGROUND: url('../images/starsSmall.png') repeat-x 0 -25px;
+}
+#star li { 
+    PADDING: 0; 
+    MARGIN: 0; 
+    FLOAT: right; 
+    DISPLAY: block; 
+    WIDTH: 85px;
+    /* was 100 */
+    HEIGHT: 20px; 
+    TEXT-DECORATION: none; 
+    text-indent: -9000px; 
+    Z-INDEX: 20; 
+    POSITION: absolute; 
+    PADDING: 0; 
+}
+#star li.curr { 
+    BACKGROUND: url('../images/starsSmall.png') left 25px; 
+    FONT-SIZE: 1px; 
+}
+
+table.navLinks {margin-right: 20px;}
+
+table.navLinks td a {
+	text-decoration: none;
+	text-transform: uppercase;
+	color: black;
+	font-size: 11px;
+}
+
+a.navLinkPrevious {
+	padding-left: 12px;
+	background: url(../images/previous-arrow.png) no-repeat left center;
+}
+
+a.navLinkNext {
+	padding-right: 12px;
+	background: url(../images/next-arrow.png) no-repeat right center;
+}
+
+a#showHideButton {
+	padding-left: 20px;
+	background: url(../images/sidebar.png) no-repeat left center;
+}
+
+	
+.filetree li span a { color: #777; }
+
+#treediv { -webkit-box-shadow: #CCC 0px 1px 2px 0px inset; }
+
+.legal, .legal *{
+ color: #555;
+ text-align: center;
+ padding-bottom: 10px;
+}
+
+.internal { color : #0000CC;}
+
+.writeronly {color : red;}
+
+.remark, .remark .added, .remark .changed, .remark .deleted{ background: yellow;} 
+
+tr th, tr th .internal, tr th .added, tr th .changed {
+	background: #00589E;
+	color: white;
+	font-weight: bold;
+	text-align: left;
+}
+
+.statustext{
+    position:fixed;
+    top:105px;
+    width: 0%;
+    height: 0%;
+    opacity: .3;
+    -webkit-transform: rotate(90deg);
+    -moz-transform: rotate(90deg);
+    -o-transform: rotate(90deg);
+    white-space: nowrap;
+    color: red;
+    font-weight: bold;
+    font-size: 2em;
+    margin-top: 30px;
+}
+
+#toolbar {
+	width: 100%;
+	height: 33px;
+	position: fixed;
+	top: 93px;
+	z-index: 99;
+	left: 280px;
+	color: #333;
+	line-height: 28px;
+	padding-left: 10px;
+}
+
+#toolbar-left {
+	position: relative;
+	left: 0px;
+}
+ 
+body p.breadcrumbs {
+	margin: 0px;
+	padding: 0px;
+	line-height: 28px;
+}
+
+body #content {
+	position: static;
+	margin-top: 126px;
+	top: 0px;
+}
+
+body.sidebar #toolbar{left: 0px;}
+
+body.sidebar #toolbar-left{left: 0px;}
+
+div#toolbar-left img {vertical-align: text-top;}
+
+div.note *, div.caution *, div.important *, div.tip *, div.warning * {
+    background: inherit !important;
+    color: inherit !important;
+    border: inherit  !important;    
+}
+
+#content table thead, #content table th{
+    background: gray;
+    color: white;
+    font-weight: bold;
+}
+
+#content table caption{font-weight: bold;}
+
+#content table td, #content table {border: 1px solid black;}
+
+#content table td, #content table th { padding: 5px;}
+
+#content table {margin-bottom: 20px;}
+
+*[align = 'center']{ text-align: center;}
+
+#content .qandaset>table, #content .qandaset>table td, #content .calloutlist table, #content .calloutlist table td, #content .navfooter table, #content .navfooter table td {
+    border: 0px solid;
+}
+
+@media print {
+
+    body * {
+        visibility: hidden;
+    }
+
+    #content, #content * {
+        visibility: visible;
+    }
+
+   #sidebar, .navfooter {
+       display: none;
+   }
+
+   #content {
+	margin: 0 0 0 0;
+    }
+
+}
diff --git a/applications/content/template/docbook/webhelp/template/common/images/admon/caution.png b/applications/content/template/docbook/webhelp/template/common/images/admon/caution.png
new file mode 100644
index 0000000..5b7809c
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/admon/caution.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/admon/important.png b/applications/content/template/docbook/webhelp/template/common/images/admon/important.png
new file mode 100644
index 0000000..12c90f6
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/admon/important.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/admon/note.png b/applications/content/template/docbook/webhelp/template/common/images/admon/note.png
new file mode 100644
index 0000000..d0c3c64
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/admon/note.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/admon/tip.png b/applications/content/template/docbook/webhelp/template/common/images/admon/tip.png
new file mode 100644
index 0000000..5c4aab3
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/admon/tip.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/admon/warning.png b/applications/content/template/docbook/webhelp/template/common/images/admon/warning.png
new file mode 100644
index 0000000..1c33db8
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/admon/warning.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/1.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/1.png
new file mode 100644
index 0000000..de682c6
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/1.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/10.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/10.png
new file mode 100644
index 0000000..96c6ce4
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/10.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/11.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/11.png
new file mode 100644
index 0000000..4550cb0
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/11.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/12.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/12.png
new file mode 100644
index 0000000..ef0f635
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/12.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/13.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/13.png
new file mode 100644
index 0000000..b4878f1
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/13.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/14.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/14.png
new file mode 100644
index 0000000..a222d7b
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/14.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/15.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/15.png
new file mode 100644
index 0000000..f6a76d5
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/15.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/16.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/16.png
new file mode 100644
index 0000000..c5ef635
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/16.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/17.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/17.png
new file mode 100644
index 0000000..85a2101
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/17.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/18.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/18.png
new file mode 100644
index 0000000..7744d25
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/18.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/19.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/19.png
new file mode 100644
index 0000000..44bacf8
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/19.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/2.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/2.png
new file mode 100644
index 0000000..24ec0f6
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/2.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/20.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/20.png
new file mode 100644
index 0000000..5e100fe
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/20.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/21.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/21.png
new file mode 100644
index 0000000..c87e80a
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/21.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/22.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/22.png
new file mode 100644
index 0000000..20593a4
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/22.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/23.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/23.png
new file mode 100644
index 0000000..3909b9c
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/23.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/24.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/24.png
new file mode 100644
index 0000000..963a9e7
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/24.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/25.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/25.png
new file mode 100644
index 0000000..458a919
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/25.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/26.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/26.png
new file mode 100644
index 0000000..74b2507
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/26.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/27.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/27.png
new file mode 100644
index 0000000..611b8ce
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/27.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/28.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/28.png
new file mode 100644
index 0000000..6aa21af
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/28.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/29.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/29.png
new file mode 100644
index 0000000..6009b52
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/29.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/3.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/3.png
new file mode 100644
index 0000000..01cdff1
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/3.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/30.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/30.png
new file mode 100644
index 0000000..c4dc404
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/30.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/4.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/4.png
new file mode 100644
index 0000000..1e42fb3
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/4.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/5.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/5.png
new file mode 100644
index 0000000..635e7f8
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/5.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/6.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/6.png
new file mode 100644
index 0000000..521aedd
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/6.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/7.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/7.png
new file mode 100644
index 0000000..0d4b876
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/7.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/8.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/8.png
new file mode 100644
index 0000000..50fa94d
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/8.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/callouts/9.png b/applications/content/template/docbook/webhelp/template/common/images/callouts/9.png
new file mode 100644
index 0000000..7190d5a
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/callouts/9.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/header-bg.gif b/applications/content/template/docbook/webhelp/template/common/images/header-bg.gif
new file mode 100644
index 0000000..f9efa28
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/header-bg.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/header-bg.png b/applications/content/template/docbook/webhelp/template/common/images/header-bg.png
new file mode 100644
index 0000000..75202f9
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/header-bg.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/highlight-blue.gif b/applications/content/template/docbook/webhelp/template/common/images/highlight-blue.gif
new file mode 100644
index 0000000..4fdabde
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/highlight-blue.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/highlight-yellow.gif b/applications/content/template/docbook/webhelp/template/common/images/highlight-yellow.gif
new file mode 100644
index 0000000..3e847e7
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/highlight-yellow.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/loading.gif b/applications/content/template/docbook/webhelp/template/common/images/loading.gif
new file mode 100644
index 0000000..085ccae
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/loading.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/logo.gif b/applications/content/template/docbook/webhelp/template/common/images/logo.gif
new file mode 100644
index 0000000..bea8875
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/logo.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/logo.png b/applications/content/template/docbook/webhelp/template/common/images/logo.png
new file mode 100644
index 0000000..b111258
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/logo.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/next-arrow.png b/applications/content/template/docbook/webhelp/template/common/images/next-arrow.png
new file mode 100644
index 0000000..db595f4
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/next-arrow.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/previous-arrow.png b/applications/content/template/docbook/webhelp/template/common/images/previous-arrow.png
new file mode 100644
index 0000000..347bc53
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/previous-arrow.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/search-icon.png b/applications/content/template/docbook/webhelp/template/common/images/search-icon.png
new file mode 100644
index 0000000..715f62d
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/search-icon.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/showHideTreeIcons.png b/applications/content/template/docbook/webhelp/template/common/images/showHideTreeIcons.png
new file mode 100644
index 0000000..c1ec1f9
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/showHideTreeIcons.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/sidebar.png b/applications/content/template/docbook/webhelp/template/common/images/sidebar.png
new file mode 100644
index 0000000..5492671
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/sidebar.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/starsSmall.png b/applications/content/template/docbook/webhelp/template/common/images/starsSmall.png
new file mode 100644
index 0000000..490a27b
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/starsSmall.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/images/toc-icon.png b/applications/content/template/docbook/webhelp/template/common/images/toc-icon.png
new file mode 100644
index 0000000..40b34bc
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/images/toc-icon.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/jquery-1.4.2.min.js b/applications/content/template/docbook/webhelp/template/common/jquery/jquery-1.4.2.min.js
new file mode 100644
index 0000000..7c24308
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/jquery-1.4.2.min.js
@@ -0,0 +1,154 @@
+/*!
+ * jQuery JavaScript Library v1.4.2
+ * http://jquery.com/
+ *
+ * Copyright 2010, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2010, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Sat Feb 13 22:33:48 2010 -0500
+ */
+(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
+e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
+j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
+"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
+true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
+Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
+(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
+a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
+"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
+function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
+c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
+L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
+"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
+a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
+d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
+a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
+!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
+true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
+var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
+parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
+false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
+s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
+applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
+else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
+a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
+w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
+cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
+i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
+" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
+this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
+e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
+c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
+a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
+function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
+k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
+C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
+null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
+e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
+f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
+if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
+d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
+"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
+a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
+isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
+{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
+if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
+e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
+"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
+d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
+!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
+toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
+u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
+function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
+if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
+t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
+g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
+for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
+1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
+CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
+relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
+l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
+h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
+CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
+g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
+text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
+setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
+h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
+m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
+"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
+h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
+!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
+h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
+q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
+if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
+(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
+function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
+gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
+c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
+{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
+"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
+d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
+a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
+1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
+a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
+c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
+wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
+prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
+this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
+return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
+""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
+this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
+u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
+1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
+return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
+""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
+c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
+c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
+function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
+Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
+"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
+a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
+a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
+"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
+serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
+function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
+global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
+e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
+"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
+false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
+false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
+c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
+d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
+g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
+1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
+"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
+if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
+this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
+"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
+animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
+j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
+this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
+"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
+c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
+this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
+this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
+e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
+c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
+function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
+this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
+k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
+f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
+a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
+c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
+d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
+f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
+"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
+e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/jquery-ui-1.8.2.custom.min.js b/applications/content/template/docbook/webhelp/template/common/jquery/jquery-ui-1.8.2.custom.min.js
new file mode 100644
index 0000000..fec53e8
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/jquery-ui-1.8.2.custom.min.js
@@ -0,0 +1,321 @@
+/*!
+ * jQuery UI 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(c){c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.2",plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==
+"hidden")return false;b=b&&b=="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,f,g){return c.ui.isOverAxis(a,d,f)&&c.ui.isOverAxis(b,e,g)},keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,
+NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect",
+"none")},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",
+1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==undefined)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b=="absolute"||b=="relative"||b=="fixed"){b=parseInt(a.css("zIndex"));if(!isNaN(b)&&b!=0)return b}a=a.parent()}}return 0}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");return(/input|select|textarea|button|object/.test(b)?
+!a.disabled:"a"==b||"area"==b?a.href||!isNaN(d):!isNaN(d))&&!c(a)["area"==b?"parents":"closest"](":hidden").length},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}})}})(jQuery);
+;/*!
+ * jQuery UI Widget 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b){var j=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add(this).each(function(){b(this).triggerHandler("remove")});return j.call(b(this),a,c)})};b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend({},c.options);b[e][a].prototype=
+b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.substring(0,1)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==undefined){h=i;return false}}):this.each(function(){var g=
+b.data(this,a);if(g){d&&g.option(d);g._init()}else b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){this.element=b(c).data(this.widgetName,this);this.options=b.extend(true,{},this.options,b.metadata&&b.metadata.get(c)[this.widgetName],a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();
+this._init()},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a,e=this;if(arguments.length===0)return b.extend({},e.options);if(typeof a==="string"){if(c===undefined)return this.options[a];d={};d[a]=c}b.each(d,function(f,
+h){e._setOption(f,h)});return e},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=
+b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
+;/*!
+ * jQuery UI Mouse 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ *	jquery.ui.widget.js
+ */
+(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(a._preventClickEvent){a._preventClickEvent=false;b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&
+this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();
+return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);c.browser.safari||a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&
+this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=a.target==this._mouseDownEvent.target;this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-
+a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
+;/*
+ * jQuery UI Position 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Position
+ */
+(function(c){c.ui=c.ui||{};var m=/left|center|right/,n=/top|center|bottom/,p=c.fn.position,q=c.fn.offset;c.fn.position=function(a){if(!a||!a.of)return p.apply(this,arguments);a=c.extend({},a);var b=c(a.of),d=(a.collision||"flip").split(" "),e=a.offset?a.offset.split(" "):[0,0],g,h,i;if(a.of.nodeType===9){g=b.width();h=b.height();i={top:0,left:0}}else if(a.of.scrollTo&&a.of.document){g=b.width();h=b.height();i={top:b.scrollTop(),left:b.scrollLeft()}}else if(a.of.preventDefault){a.at="left top";g=h=
+0;i={top:a.of.pageY,left:a.of.pageX}}else{g=b.outerWidth();h=b.outerHeight();i=b.offset()}c.each(["my","at"],function(){var f=(a[this]||"").split(" ");if(f.length===1)f=m.test(f[0])?f.concat(["center"]):n.test(f[0])?["center"].concat(f):["center","center"];f[0]=m.test(f[0])?f[0]:"center";f[1]=n.test(f[1])?f[1]:"center";a[this]=f});if(d.length===1)d[1]=d[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(a.at[0]==="right")i.left+=g;else if(a.at[0]==="center")i.left+=
+g/2;if(a.at[1]==="bottom")i.top+=h;else if(a.at[1]==="center")i.top+=h/2;i.left+=e[0];i.top+=e[1];return this.each(function(){var f=c(this),k=f.outerWidth(),l=f.outerHeight(),j=c.extend({},i);if(a.my[0]==="right")j.left-=k;else if(a.my[0]==="center")j.left-=k/2;if(a.my[1]==="bottom")j.top-=l;else if(a.my[1]==="center")j.top-=l/2;j.left=parseInt(j.left);j.top=parseInt(j.top);c.each(["left","top"],function(o,r){c.ui.position[d[o]]&&c.ui.position[d[o]][r](j,{targetWidth:g,targetHeight:h,elemWidth:k,
+elemHeight:l,offset:e,my:a.my,at:a.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(j,{using:a.using}))})};c.ui.position={fit:{left:function(a,b){var d=c(window);b=a.left+b.elemWidth-d.width()-d.scrollLeft();a.left=b>0?a.left-b:Math.max(0,a.left)},top:function(a,b){var d=c(window);b=a.top+b.elemHeight-d.height()-d.scrollTop();a.top=b>0?a.top-b:Math.max(0,a.top)}},flip:{left:function(a,b){if(b.at[0]!=="center"){var d=c(window);d=a.left+b.elemWidth-d.width()-d.scrollLeft();var e=b.my[0]==="left"?
+-b.elemWidth:b.my[0]==="right"?b.elemWidth:0,g=-2*b.offset[0];a.left+=a.left<0?e+b.targetWidth+g:d>0?e-b.targetWidth+g:0}},top:function(a,b){if(b.at[1]!=="center"){var d=c(window);d=a.top+b.elemHeight-d.height()-d.scrollTop();var e=b.my[1]==="top"?-b.elemHeight:b.my[1]==="bottom"?b.elemHeight:0,g=b.at[1]==="top"?b.targetHeight:-b.targetHeight,h=-2*b.offset[1];a.top+=a.top<0?e+b.targetHeight+h:d>0?e+g+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(a,b){if(/static/.test(c.curCSS(a,"position")))a.style.position=
+"relative";var d=c(a),e=d.offset(),g=parseInt(c.curCSS(a,"top",true),10)||0,h=parseInt(c.curCSS(a,"left",true),10)||0;e={top:b.top-e.top+g,left:b.left-e.left+h};"using"in b?b.using.call(a,e):d.css(e)};c.fn.offset=function(a){var b=this[0];if(!b||!b.ownerDocument)return null;if(a)return this.each(function(){c.offset.setOffset(this,a)});return q.call(this)}}})(jQuery);
+;/*
+ * jQuery UI Resizable 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Resizables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(d){d.widget("ui.resizable",d.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");d.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
+_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&d.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(d('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
+top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
+this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!d(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
+nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var e=0;e<c.length;e++){var g=d.trim(c[e]),f=d('<div class="ui-resizable-handle '+("ui-resizable-"+g)+'"></div>');/sw|se|ne|nw/.test(g)&&f.css({zIndex:++a.zIndex});"se"==g&&f.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[g]=".ui-resizable-"+g;this.element.append(f)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
+String)this.handles[i]=d(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=d(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}d(this.handles[i])}};this._renderAxis(this.element);this._handles=d(".ui-resizable-handle",this.element).disableSelection();
+this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();d(this.element).addClass("ui-resizable-autohide").hover(function(){d(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){d(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){d(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};
+if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(d(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),
+e=this.element;this.resizing=true;this.documentScroll={top:d(document).scrollTop(),left:d(document).scrollLeft()};if(e.is(".ui-draggable")||/absolute/.test(e.css("position")))e.css({position:"absolute",top:c.top,left:c.left});d.browser.opera&&/relative/.test(e.css("position"))&&e.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var g=m(this.helper.css("top"));if(a.containment){c+=d(a.containment).scrollLeft()||0;g+=d(a.containment).scrollTop()||0}this.offset=
+this.helper.offset();this.position={left:c,top:g};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:c,top:g};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:
+this.originalSize.width/this.originalSize.height||1;a=d(".ui-resizable-"+this.axis).css("cursor");d("body").css("cursor",a=="auto"?this.axis+"-resize":a);e.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,e=this._change[this.axis];if(!e)return false;c=e.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",
+b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var e=this._proportionallyResizeElements,g=e.length&&/textarea/i.test(e[0].nodeName);e=g&&d.ui.hasScroll(e[0],"left")?0:c.sizeDiff.height;
+g={width:c.size.width-(g?0:c.sizeDiff.width),height:c.size.height-e};e=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var f=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(d.extend(g,{top:f,left:e}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}d("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",
+b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(k(b.left))this.position.left=b.left;if(k(b.top))this.position.top=b.top;if(k(b.height))this.size.height=b.height;if(k(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,e=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(e=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(e=="nw"){b.top=
+a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,e=k(b.width)&&a.maxWidth&&a.maxWidth<b.width,g=k(b.height)&&a.maxHeight&&a.maxHeight<b.height,f=k(b.width)&&a.minWidth&&a.minWidth>b.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(f)b.width=a.minWidth;if(h)b.height=a.minHeight;if(e)b.width=a.maxWidth;if(g)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,
+l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(f&&l)b.left=i-a.minWidth;if(e&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(g&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var e=[c.css("borderTopWidth"),
+c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],g=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=d.map(e,function(f,h){f=parseInt(f,10)||0;h=parseInt(g[h],10)||0;return f+h})}d.browser.msie&&(d(b).is(":hidden")||d(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=
+this.element.offset();if(this._helper){this.helper=this.helper||d('<div style="overflow:hidden;"></div>');var a=d.browser.msie&&d.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+
+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return d.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return d.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return d.extend(this._change.n.apply(this,
+arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return d.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){d.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});d.extend(d.ui.resizable,
+{version:"1.8.2"});d.ui.plugin.add("resizable","alsoResize",{start:function(){var b=d(this).data("resizable").options,a=function(c){d(c).each(function(){d(this).data("resizable-alsoresize",{width:parseInt(d(this).width(),10),height:parseInt(d(this).height(),10),left:parseInt(d(this).css("left"),10),top:parseInt(d(this).css("top"),10)})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else d.each(b.alsoResize,function(c){a(c)});
+else a(b.alsoResize)},resize:function(){var b=d(this).data("resizable"),a=b.options,c=b.originalSize,e=b.originalPosition,g={height:b.size.height-c.height||0,width:b.size.width-c.width||0,top:b.position.top-e.top||0,left:b.position.left-e.left||0},f=function(h,i){d(h).each(function(){var j=d(this),l=d(this).data("resizable-alsoresize"),p={};d.each((i&&i.length?i:["width","height","top","left"])||["width","height","top","left"],function(n,o){if((n=(l[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(/relative/.test(j.css("position"))&&
+d.browser.opera){b._revertToRelativePosition=true;j.css({position:"absolute",top:"auto",left:"auto"})}j.css(p)})};typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?d.each(a.alsoResize,function(h,i){f(h,i)}):f(a.alsoResize)},stop:function(){var b=d(this).data("resizable");if(b._revertToRelativePosition&&d.browser.opera){b._revertToRelativePosition=false;el.css({position:"relative"})}d(this).removeData("resizable-alsoresize-start")}});d.ui.plugin.add("resizable","animate",{stop:function(b){var a=
+d(this).data("resizable"),c=a.options,e=a._proportionallyResizeElements,g=e.length&&/textarea/i.test(e[0].nodeName),f=g&&d.ui.hasScroll(e[0],"left")?0:a.sizeDiff.height;g={width:a.size.width-(g?0:a.sizeDiff.width),height:a.size.height-f};f=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(d.extend(g,h&&f?{top:h,left:f}:{}),{duration:c.animateDuration,easing:c.animateEasing,
+step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};e&&e.length&&d(e[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});d.ui.plugin.add("resizable","containment",{start:function(){var b=d(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof d?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=
+d(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:d(document),left:0,top:0,width:d(document).width(),height:d(document).height()||document.body.parentNode.scrollHeight}}else{var e=d(a),g=[];d(["Top","Right","Left","Bottom"]).each(function(i,j){g[i]=m(e.css("padding"+j))});b.containerOffset=e.offset();b.containerPosition=e.position();b.containerSize={height:e.innerHeight()-g[3],width:e.innerWidth()-g[1]};c=b.containerOffset;
+var f=b.containerSize.height,h=b.containerSize.width;h=d.ui.hasScroll(a,"left")?a.scrollWidth:h;f=d.ui.hasScroll(a)?a.scrollHeight:f;b.parentData={element:a,left:c.left,top:c.top,width:h,height:f}}}},resize:function(b){var a=d(this).data("resizable"),c=a.options,e=a.containerOffset,g=a.position;b=a._aspectRatio||b.shiftKey;var f={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))f=e;if(g.left<(a._helper?e.left:0)){a.size.width+=a._helper?a.position.left-e.left:
+a.position.left-f.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?e.left:0}if(g.top<(a._helper?e.top:0)){a.size.height+=a._helper?a.position.top-e.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?e.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-f.left:a.offset.left-f.left)+a.sizeDiff.width);e=Math.abs((a._helper?a.offset.top-f.top:a.offset.top-
+e.top)+a.sizeDiff.height);g=a.containerElement.get(0)==a.element.parent().get(0);f=/relative|absolute/.test(a.containerElement.css("position"));if(g&&f)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(e+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-e;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=d(this).data("resizable"),a=b.options,c=b.containerOffset,e=b.containerPosition,
+g=b.containerElement,f=d(b.helper),h=f.offset(),i=f.outerWidth()-b.sizeDiff.width;f=f.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(g.css("position"))&&d(this).css({left:h.left-e.left-c.left,width:i,height:f});b._helper&&!a.animate&&/static/.test(g.css("position"))&&d(this).css({left:h.left-e.left-c.left,width:i,height:f})}});d.ui.plugin.add("resizable","ghost",{start:function(){var b=d(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,
+display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=d(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=d(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});d.ui.plugin.add("resizable","grid",{resize:function(){var b=
+d(this).data("resizable"),a=b.options,c=b.size,e=b.originalSize,g=b.originalPosition,f=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-e.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-e.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(f)){b.size.width=e.width+h;b.size.height=e.height+a}else if(/^(ne)$/.test(f)){b.size.width=e.width+h;b.size.height=e.height+a;b.position.top=g.top-a}else{if(/^(sw)$/.test(f)){b.size.width=e.width+h;b.size.height=
+e.height+a}else{b.size.width=e.width+h;b.size.height=e.height+a;b.position.top=g.top-a}b.position.left=g.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
+;
+/*
+ * jQuery UI Selectable 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Selectables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
+selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
+c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");
+b.unselecting=true;f._trigger("unselecting",c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=
+this;this.dragged=true;if(!this.options.disabled){var d=this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");
+a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=
+true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=
+false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.2"})})(jQuery);
+ 
+(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
+selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
+c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");
+b.unselecting=true;f._trigger("unselecting",c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=
+this;this.dragged=true;if(!this.options.disabled){var d=this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");
+a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=
+true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=
+false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.2"})})(jQuery);
+;/*
+ * jQuery UI Autocomplete 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Autocomplete
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *	jquery.ui.position.js
+ */
+(function(e){e.widget("ui.autocomplete",{options:{minLength:1,delay:300},_create:function(){var a=this,c=this.element[0].ownerDocument;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(d){var b=e.ui.keyCode;switch(d.keyCode){case b.PAGE_UP:a._move("previousPage",d);break;case b.PAGE_DOWN:a._move("nextPage",d);break;case b.UP:a._move("previous",d);d.preventDefault();
+break;case b.DOWN:a._move("next",d);d.preventDefault();break;case b.ENTER:case b.NUMPAD_ENTER:a.menu.active&&d.preventDefault();case b.TAB:if(!a.menu.active)return;a.menu.select(d);break;case b.ESCAPE:a.element.val(a.term);a.close(d);break;case b.LEFT:case b.RIGHT:case b.SHIFT:case b.CONTROL:case b.ALT:case b.COMMAND:case b.COMMAND_RIGHT:case b.INSERT:case b.CAPS_LOCK:case b.END:case b.HOME:break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){a.search(null,d)},a.options.delay);
+break}}).bind("focus.autocomplete",function(){a.selectedItem=null;a.previous=a.element.val()}).bind("blur.autocomplete",function(d){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(d);a._change(d)},150)});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=e("<ul></ul>").addClass("ui-autocomplete").appendTo("body",c).mousedown(function(){setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(d,b){b=b.item.data("item.autocomplete");
+false!==a._trigger("focus",null,{item:b})&&/^key/.test(d.originalEvent.type)&&a.element.val(b.value)},selected:function(d,b){b=b.item.data("item.autocomplete");false!==a._trigger("select",d,{item:b})&&a.element.val(b.value);a.close(d);d=a.previous;if(a.element[0]!==c.activeElement){a.element.focus();a.previous=d}a.selectedItem=b},blur:function(){a.menu.element.is(":visible")&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");e.fn.bgiframe&&this.menu.element.bgiframe()},
+destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();e.Widget.prototype.destroy.call(this)},_setOption:function(a){e.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource()},_initSource:function(){var a,c;if(e.isArray(this.options.source)){a=this.options.source;this.source=function(d,b){b(e.ui.autocomplete.filter(a,d.term))}}else if(typeof this.options.source===
+"string"){c=this.options.source;this.source=function(d,b){e.getJSON(c,d,b)}}else this.source=this.options.source},search:function(a,c){a=a!=null?a:this.element.val();if(a.length<this.options.minLength)return this.close(c);clearTimeout(this.closing);if(this._trigger("search")!==false)return this._search(a)},_search:function(a){this.term=this.element.addClass("ui-autocomplete-loading").val();this.source({term:a},this.response)},_response:function(a){if(a.length){a=this._normalize(a);this._suggest(a);
+this._trigger("open")}else this.close();this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this._trigger("close",a);this.menu.element.hide();this.menu.deactivate()}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return e.map(a,function(c){if(typeof c==="string")return{label:c,value:c};return e.extend({label:c.label||
+c.value,value:c.value||c.label},c)})},_suggest:function(a){var c=this.menu.element.empty().zIndex(this.element.zIndex()+1),d;this._renderMenu(c,a);this.menu.deactivate();this.menu.refresh();this.menu.element.show().position({my:"left top",at:"left bottom",of:this.element,collision:"none"});a=c.width("").width();d=this.element.width();c.width(Math.max(a,d))},_renderMenu:function(a,c){var d=this;e.each(c,function(b,f){d._renderItem(a,f)})},_renderItem:function(a,c){return e("<li></li>").data("item.autocomplete",
+c).append("<a>"+c.label+"</a>").appendTo(a)},_move:function(a,c){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](c);else this.search(null,c)},widget:function(){return this.menu.element}});e.extend(e.ui.autocomplete,{escapeRegex:function(a){return a.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")},filter:function(a,c){var d=new RegExp(e.ui.autocomplete.escapeRegex(c),
+"i");return e.grep(a,function(b){return d.test(b.label||b.value||b)})}})})(jQuery);
+(function(e){e.widget("ui.menu",{_create:function(){var a=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(e(c.target).closest(".ui-menu-item a").length){c.preventDefault();a.select(c)}});this.refresh()},refresh:function(){var a=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
+-1).mouseenter(function(c){a.activate(c,e(this).parent())}).mouseleave(function(){a.deactivate()})},activate:function(a,c){this.deactivate();if(this.hasScroll()){var d=c.offset().top-this.element.offset().top,b=this.element.attr("scrollTop"),f=this.element.height();if(d<0)this.element.attr("scrollTop",b+d);else d>f&&this.element.attr("scrollTop",b+d-f+c.height())}this.active=c.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",a,{item:c})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");
+this._trigger("blur");this.active=null}},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prev().length},last:function(){return this.active&&!this.active.next().length},move:function(a,c,d){if(this.active){a=this.active[a+"All"](".ui-menu-item").eq(0);a.length?this.activate(d,a):this.activate(d,this.element.children(c))}else this.activate(d,this.element.children(c))},nextPage:function(a){if(this.hasScroll())if(!this.active||
+this.last())this.activate(a,this.element.children(":first"));else{var c=this.active.offset().top,d=this.element.height(),b=this.element.children("li").filter(function(){var f=e(this).offset().top-c-d+e(this).height();return f<10&&f>-10});b.length||(b=this.element.children(":last"));this.activate(a,b)}else this.activate(a,this.element.children(!this.active||this.last()?":first":":last"))},previousPage:function(a){if(this.hasScroll())if(!this.active||this.first())this.activate(a,this.element.children(":last"));
+else{var c=this.active.offset().top,d=this.element.height();result=this.element.children("li").filter(function(){var b=e(this).offset().top-c+d-e(this).height();return b<10&&b>-10});result.length||(result=this.element.children(":first"));this.activate(a,result)}else this.activate(a,this.element.children(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})})(jQuery);
+;/*
+ * jQuery UI Button 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Button
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ */
+(function(a){var g,i=function(b){a(":ui-button",b.target.form).each(function(){var c=a(this).data("button");setTimeout(function(){c.refresh()},1)})},h=function(b){var c=b.name,d=b.form,e=a([]);if(c)e=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form});return e};a.widget("ui.button",{options:{text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",i);this._determineButtonType();
+this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d=this.type==="checkbox"||this.type==="radio",e="ui-state-hover"+(!d?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",function(){if(!c.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",
+function(){c.disabled||a(this).removeClass(e)}).bind("focus.button",function(){a(this).addClass("ui-state-focus")}).bind("blur.button",function(){a(this).removeClass("ui-state-focus")});d&&this.element.bind("change.button",function(){b.refresh()});if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).toggleClass("ui-state-active");b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",
+function(){if(c.disabled)return false;a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed",true);var f=b.element[0];h(f).not(f).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed",false)});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(c.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",
+function(f){if(c.disabled)return false;if(f.keyCode==a.ui.keyCode.SPACE||f.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(f){f.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",c.disabled)},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?
+"input":"button";if(this.type==="checkbox"||this.type==="radio"){this.buttonElement=this.element.parents().last().find("[for="+this.element.attr("id")+"]");this.element.addClass("ui-helper-hidden-accessible");var b=this.element.is(":checked");b&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",b)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
+this.hasTitle||this.buttonElement.removeAttr("title");a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled")c?this.element.attr("disabled",true):this.element.removeAttr("disabled");this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")h(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
+true):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false)});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false)},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only"),
+c=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary;if(d.primary||d.secondary){b.addClass("ui-button-text-icon"+(e?"s":""));d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>");d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>");if(!this.options.text){b.addClass(e?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon");
+this.hasTitle||b.attr("title",c)}}else b.addClass("ui-button-text-only")}}});a.widget("ui.buttonset",{_create:function(){this.element.addClass("ui-buttonset");this._init()},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()},
+destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery);
+;/*
+ * jQuery UI Dialog 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Dialog
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *  jquery.ui.button.js
+ *	jquery.ui.draggable.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.position.js
+ *	jquery.ui.resizable.js
+ */
+(function(c){c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");var a=this,b=a.options,d=b.title||a.originalTitle||"&#160;",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+
+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),
+h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",
+e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");
+a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==
+b.uiDialog[0])d=Math.max(d,c(this).css("z-index"))});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",
+c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;d.next().length&&d.appendTo("body");a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===
+f[0]&&e.shiftKey){g.focus(1);return false}}});c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();a._trigger("open");a._isOpen=true;return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,
+function(g,f){g=c('<button type="button"></button>').text(g).click(function(){f.apply(b.element[0],arguments)}).appendTo(e);c.fn.button&&g.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");
+b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize,position:f.position,size:f.size}}a=a===undefined?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");
+a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",
+f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0];a=a||c.ui.dialog.prototype.options.position;if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(e,g){if(+b[e]===b[e]){d[e]=b[e];b[e]=
+g}})}else if(typeof a==="object"){if("left"in a){b[0]="left";d[0]=a.left}else if("right"in a){b[0]="right";d[0]=-a.right}if("top"in a){b[1]="top";d[1]=a.top}else if("bottom"in a){b[1]="bottom";d[1]=-a.bottom}}(a=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position({my:b.join(" "),at:b.join(" "),offset:d.join(" "),of:window,collision:"fit",using:function(e){var g=c(this).css(e).offset().top;g<0&&c(this).css("top",e.top-g)}});a||this.uiDialog.hide()},_setOption:function(a,
+b){var d=this,e=d.uiDialog,g=e.is(":data(resizable)"),f=false;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled");break;case "draggable":b?d._makeDraggable():e.draggable("destroy");break;
+case "height":f=true;break;case "maxHeight":g&&e.resizable("option","maxHeight",b);f=true;break;case "maxWidth":g&&e.resizable("option","maxWidth",b);f=true;break;case "minHeight":g&&e.resizable("option","minHeight",b);f=true;break;case "minWidth":g&&e.resizable("option","minWidth",b);f=true;break;case "position":d._position(b);break;case "resizable":g&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",
+d.uiDialogTitlebar).html(""+(b||"&#160;"));break;case "width":f=true;break}c.Widget.prototype._setOption.apply(d,arguments);f&&d._size()},_size:function(){var a=this.options,b;this.element.css({width:"auto",minHeight:0,height:0});b=this.uiDialog.css({height:"auto",width:a.width}).height();this.element.css(a.height==="auto"?{minHeight:Math.max(a.minHeight-b,0),height:"auto"}:{minHeight:0,height:Math.max(a.height-b,0)}).show();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",
+this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.2",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&
+c(document).bind(c.ui.dialog.overlay.events,function(d){return c(d.target).zIndex()>=c.ui.dialog.overlay.maxZ})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&&
+b.bgiframe();this.instances.push(b);return b},destroy:function(a){this.oldInstances.push(this.instances.splice(c.inArray(a,this.instances),1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var b=0;c.each(this.instances,function(){b=Math.max(b,this.css("z-index"))});this.maxZ=b},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight,
+document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,function(){a=a.add(this)});a.css({width:0,
+height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
+;/*
+ * jQuery UI Tabs 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Tabs
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ */
+(function(d){function s(){return++u}function v(){return++w}var u=0,w=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>'},_create:function(){this._tabify(true)},_setOption:function(c,e){if(c=="selected")this.options.collapsible&&
+e==this.options.selected||this.select(e);else{this.options[c]=e;this._tabify()}},_tabId:function(c){return c.title&&c.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+s()},_sanitizeSelector:function(c){return c.replace(/:/g,"\\:")},_cookie:function(){var c=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+v());return d.cookie.apply(null,[c].concat(d.makeArray(arguments)))},_ui:function(c,e){return{tab:c,panel:e,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var c=
+d(this);c.html(c.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function e(g,f){g.css({display:""});!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}this.list=this.element.find("ol,ul").eq(0);this.lis=d("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);var a=this,b=this.options,h=/^#.+/;this.anchors.each(function(g,f){var j=d(f).attr("href"),l=j.split("#")[0],p;if(l&&(l===location.toString().split("#")[0]||
+(p=d("base")[0])&&l===p.href)){j=f.hash;f.href=j}if(h.test(j))a.panels=a.panels.add(a._sanitizeSelector(j));else if(j!="#"){d.data(f,"href.tabs",j);d.data(f,"load.tabs",j.replace(/#.*$/,""));j=a._tabId(f);f.href="#"+j;f=d("#"+j);if(!f.length){f=d(b.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else b.disabled.push(g)});if(c){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
+this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(b.selected===undefined){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){b.selected=g;return false}});if(typeof b.selected!="number"&&b.cookie)b.selected=parseInt(a._cookie(),10);if(typeof b.selected!="number"&&this.lis.filter(".ui-tabs-selected").length)b.selected=
+this.lis.index(this.lis.filter(".ui-tabs-selected"));b.selected=b.selected||(this.lis.length?0:-1)}else if(b.selected===null)b.selected=-1;b.selected=b.selected>=0&&this.anchors[b.selected]||b.selected<0?b.selected:0;b.disabled=d.unique(b.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(b.selected,b.disabled)!=-1&&b.disabled.splice(d.inArray(b.selected,b.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
+if(b.selected>=0&&this.anchors.length){this.panels.eq(b.selected).removeClass("ui-tabs-hide");this.lis.eq(b.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[b.selected],a.panels[b.selected]))});this.load(b.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else b.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));this.element[b.collapsible?"addClass":
+"removeClass"]("ui-tabs-collapsible");b.cookie&&this._cookie(b.selected,b.cookie);c=0;for(var i;i=this.lis[c];c++)d(i)[d.inArray(c,b.disabled)!=-1&&!d(i).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");b.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(b.event!="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+g)};this.lis.bind("mouseover.tabs",
+function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(b.fx)if(d.isArray(b.fx)){m=b.fx[0];o=b.fx[1]}else m=o=b.fx;var q=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",function(){e(f,o);a._trigger("show",
+null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},r=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};this.anchors.bind(b.event+".tabs",
+function(){var g=this,f=d(this).closest("li"),j=a.panels.filter(":not(.ui-tabs-hide)"),l=d(a._sanitizeSelector(this.hash));if(f.hasClass("ui-tabs-selected")&&!b.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}b.selected=a.anchors.index(this);a.abort();if(b.collapsible)if(f.hasClass("ui-tabs-selected")){b.selected=-1;b.cookie&&a._cookie(b.selected,b.cookie);a.element.queue("tabs",function(){r(g,
+j)}).dequeue("tabs");this.blur();return false}else if(!j.length){b.cookie&&a._cookie(b.selected,b.cookie);a.element.queue("tabs",function(){q(g,l)});a.load(a.anchors.index(this));this.blur();return false}b.cookie&&a._cookie(b.selected,b.cookie);if(l.length){j.length&&a.element.queue("tabs",function(){r(g,j)});a.element.queue("tabs",function(){q(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",
+function(){return false})},destroy:function(){var c=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(b,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,
+"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});c.cookie&&this._cookie(null,c.cookie);return this},add:function(c,e,a){if(a===undefined)a=this.anchors.length;var b=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,e));c=!c.indexOf("#")?c.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",
+true);var i=d("#"+c);i.length||(i=d(h.panelTemplate).attr("id",c).data("destroy.tabs",true));i.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);i.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);i.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");i.removeClass("ui-tabs-hide");
+this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(c){var e=this.options,a=this.lis.eq(c).remove(),b=this.panels.eq(c).remove();if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(c+(c+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=c}),function(h){return h>=c?--h:h});this._tabify();this._trigger("remove",
+null,this._ui(a.find("a")[0],b[0]));return this},enable:function(c){var e=this.options;if(d.inArray(c,e.disabled)!=-1){this.lis.eq(c).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=c});this._trigger("enable",null,this._ui(this.anchors[c],this.panels[c]));return this}},disable:function(c){var e=this.options;if(c!=e.selected){this.lis.eq(c).addClass("ui-state-disabled");e.disabled.push(c);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}return this},
+select:function(c){if(typeof c=="string")c=this.anchors.index(this.anchors.filter("[href$="+c+"]"));else if(c===null)c=-1;if(c==-1&&this.options.collapsible)c=this.options.selected;this.anchors.eq(c).trigger(this.options.event+".tabs");return this},load:function(c){var e=this,a=this.options,b=this.anchors.eq(c)[0],h=d.data(b,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(b,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(c).addClass("ui-state-processing");
+if(a.spinner){var i=d("span",b);i.data("label.tabs",i.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){d(e._sanitizeSelector(b.hash)).html(k);e._cleanup();a.cache&&d.data(b,"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[c],e.panels[c]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[c],e.panels[c]));try{a.ajaxOptions.error(k,n,c,b)}catch(m){}}}));e.element.dequeue("tabs");return this}},
+abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(c,e){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.2"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(c,e){var a=this,b=this.options,h=a._rotate||(a._rotate=
+function(i){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=b.selected;a.select(++k<a.anchors.length?k:0)},c);i&&i.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(i){i.clientX&&a.rotate(null)}:function(){t=b.selected;h()});if(c){this.element.bind("tabsshow",h);this.anchors.bind(b.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(b.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
+;/*
+ * jQuery UI Effects 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/
+ */
+jQuery.effects||function(f){function k(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
+16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return l.transparent;return l[f.trim(c).toLowerCase()]}function q(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return k(b)}function m(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
+a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function n(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in r||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function s(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function j(c,a,b,d){if(typeof c=="object"){d=
+a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(f.isFunction(b)){d=b;b=null}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:f.fx.speeds[b]||f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=q(b.elem,a);b.end=k(b.end);b.colorInit=
+true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var l={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,
+183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,
+165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},o=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,d){if(f.isFunction(b)){d=b;b=null}return this.each(function(){var e=f(this),g=e.attr("style")||" ",h=n(m.call(this)),p,t=e.attr("className");f.each(o,function(u,
+i){c[i]&&e[i+"Class"](c[i])});p=n(m.call(this));e.attr("className",t);e.animate(s(h,p),a,b,function(){f.each(o,function(u,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)})})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?
+f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===undefined?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.2",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==
+null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case "top":b=0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();
+var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});
+c.css({position:"relative",top:0,left:0})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=j.apply(this,arguments);a={options:a[1],duration:a[2],callback:a[3]};var b=f.effects[c];return b&&!f.fx.off?b.call(this,a):this},_show:f.fn.show,show:function(c){if(!c||
+typeof c=="number"||f.fx.speeds[c])return this._show.apply(this,arguments);else{var a=j.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(!c||typeof c=="number"||f.fx.speeds[c])return this._hide.apply(this,arguments);else{var a=j.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(!c||typeof c=="number"||f.fx.speeds[c]||typeof c=="boolean"||f.isFunction(c))return this.__toggle.apply(this,
+arguments);else{var a=j.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,
+a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+
+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,
+10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*
+a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,
+a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==undefined)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==undefined)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,
+a,b,d,e,g){if(g==undefined)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,
+d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
+;/*
+ * jQuery UI Effects Fold 1.8.2
+ *
+ * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Effects/Fold
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","left"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],10)/100*
+f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
+;/*
+ * jQuery Highlight plugin
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ * Copyright (c) 2009 Bartek Szopka http://bartaz.github.com/sandbox.js/jquery.highlight.html
+ * Licensed under MIT license. 
+ */
+jQuery.extend({highlight:function(a,c,b,e){if(a.nodeType===3){if(c=a.data.match(c)){b=document.createElement(b||"span");b.className=e||"highlight";a=a.splitText(c.index);a.splitText(c[0].length);e=a.cloneNode(true);b.appendChild(e);a.parentNode.replaceChild(b,a);return 1}}else if(a.nodeType===1&&a.childNodes&&!/(script|style)/i.test(a.tagName)&&!(a.tagName===b.toUpperCase()&&a.className===e))for(var d=0;d<a.childNodes.length;d++)d+=jQuery.highlight(a.childNodes[d],c,b,e);return 0}});
+jQuery.fn.unhighlight=function(a){var c={className:"highlight",element:"span"};jQuery.extend(c,a);return this.find(c.element+"."+c.className).each(function(){var b=this.parentNode;b.replaceChild(this.firstChild,this);b.normalize()}).end()};
+jQuery.fn.highlight=function(a,c){var b={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(b,c);if(a.constructor===String)a=[a];a=jQuery.grep(a,function(f){return f!=""});if(a.length==0)return this;var e=b.caseSensitive?"":"i",d="("+a.join("|")+")";if(b.wordsOnly)d="\\b"+d+"\\b";var g=RegExp(d,e);return this.each(function(){jQuery.highlight(this,g,b.element,b.className)})};
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/jquery.cookie.js b/applications/content/template/docbook/webhelp/template/common/jquery/jquery.cookie.js
new file mode 100644
index 0000000..bada7bf
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/jquery.cookie.js
@@ -0,0 +1,93 @@
+/**
+ * Cookie plugin
+ *
+ * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ */
+
+/**
+ * Create a cookie with the given name and value and other optional parameters.
+ *
+ * @example $.cookie('the_cookie', 'the_value');
+ * @desc Set the value of a cookie.
+ * @example $.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery.com', secure: true});
+ * @desc Create a cookie with all available options.
+ * @example $.cookie('the_cookie', 'the_value');
+ * @desc Create a session cookie.
+ * @example $.cookie('the_cookie', null);
+ * @desc Delete a cookie by passing null as value.
+ *
+ * @param String name The name of the cookie.
+ * @param String value The value of the cookie.
+ * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
+ * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
+ *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
+ *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
+ *                             when the the browser exits.
+ * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
+ * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
+ * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
+ *                        require a secure protocol (like HTTPS).
+ * @type undefined
+ *
+ * @name $.cookie
+ * @cat Plugins/Cookie
+ * @author Klaus Hartl/klaus.hartl@stilbuero.de
+ */
+
+/**
+ * Get the value of a cookie with the given name.
+ *
+ * @example $.cookie('the_cookie');
+ * @desc Get the value of a cookie.
+ *
+ * @param String name The name of the cookie.
+ * @return The value of the cookie.
+ * @type String
+ *
+ * @name $.cookie
+ * @cat Plugins/Cookie
+ * @author Klaus Hartl/klaus.hartl@stilbuero.de
+ */
+jQuery.cookie = function(name, value, options) {
+    if (typeof value != 'undefined') { // name and value given, set cookie
+        options = options || {};
+        if (value === null) {
+            value = '';
+            options.expires = -1;
+        }
+        var expires = '';
+        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
+            var date;
+            if (typeof options.expires == 'number') {
+                date = new Date();
+                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
+            } else {
+                date = options.expires;
+            }
+            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
+        }
+        var path = options.path ? '; path=' + options.path : '';
+        var domain = options.domain ? '; domain=' + options.domain : '';
+        var secure = options.secure ? '; secure' : '';
+        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
+
+    } else { // only name given, get cookie
+        var cookieValue = null;
+        if (document.cookie && document.cookie != '') {
+            var cookies = document.cookie.split(';');
+            for (var i = 0; i < cookies.length; i++) {
+                var cookie = jQuery.trim(cookies[i]);
+                // Does this cookie string begin with the name we want?
+                if (cookie.substring(0, name.length + 1) == (name + '=')) {
+                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
+                    break;
+                }
+            }
+        }
+        return cookieValue;
+    }
+};
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-anim_basic_16x16.gif b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-anim_basic_16x16.gif
new file mode 100644
index 0000000..085ccae
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-anim_basic_16x16.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 0000000..5b5dab2
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png
new file mode 100644
index 0000000..47acaad
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png
new file mode 100644
index 0000000..9d149b1
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png
new file mode 100644
index 0000000..0149515
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png
new file mode 100644
index 0000000..4443fdc1
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png
new file mode 100644
index 0000000..81ecc36
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png
new file mode 100644
index 0000000..4f3faf8
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
new file mode 100644
index 0000000..38c3833
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png
new file mode 100644
index 0000000..6f4bd87
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png
new file mode 100644
index 0000000..09d1cdc
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png
new file mode 100644
index 0000000..bd2cf07
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_6da8d5_256x240.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_6da8d5_256x240.png
new file mode 100644
index 0000000..3d6f567
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_6da8d5_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_cd0a0a_256x240.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_cd0a0a_256x240.png
new file mode 100644
index 0000000..2ab019b
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_cd0a0a_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_d8e7f3_256x240.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_d8e7f3_256x240.png
new file mode 100644
index 0000000..ad2dc6f
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_d8e7f3_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png
new file mode 100644
index 0000000..c7c53cb
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css
new file mode 100644
index 0000000..0b17363
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css
@@ -0,0 +1,398 @@
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+*/
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=5px&bgColorHeader=5c9ccc&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=55&borderColorHeader=4297d7&fcHeader=ffffff&iconColorHeader=d8e7f3&bgColorContent=fcfdfd&bgTextureContent=06_inset_hard.png&bgImgOpacityContent=100&borderColorContent=a6c9e2&fcContent=222222&iconColorContent=469bdd&bgColorDefault=dfeffc&bgTextureDefault=02_glass.png&bgImgOpacityDefault=85&borderColorDefault=c5dbec&fcDefault=2e6e9e&iconColorDefault=6da8d5&bgColorHover=d0e5f5&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=79b7e7&fcHover=1d5987&iconColorHover=217bc0&bgColorActive=f5f8f9&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=100&borderColorActive=79b7e7&fcActive=e17009&iconColorActive=f9bd01&bgColorHighlight=fbec88&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=fad42e&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+*/
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; }
+.ui-widget .ui-widget { font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; }
+.ui-widget-content { border: 1px solid #a6c9e2; background: #fcfdfd url(images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x; color: #222222; }
+.ui-widget-content a { color: #222222; }
+.ui-widget-header { border: 1px solid #4297d7; background: #5c9ccc url(images/ui-bg_gloss-wave_55_5c9ccc_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #c5dbec; background: #dfeffc url(images/ui-bg_glass_85_dfeffc_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2e6e9e; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2e6e9e; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #79b7e7; background: #d0e5f5 url(images/ui-bg_glass_75_d0e5f5_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1d5987; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #1d5987; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #79b7e7; background: #f5f8f9 url(images/ui-bg_inset-hard_100_f5f8f9_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #e17009; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #e17009; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fad42e; background: #fbec88 url(images/ui-bg_flat_55_fbec88_40x100.png) 50% 50% repeat-x; color: #363636; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_469bdd_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_469bdd_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_d8e7f3_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_6da8d5_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_217bc0_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_f9bd01_256x240.png); }
+.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; }
+.ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; }
+.ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
+.ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+.ui-corner-top { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; }
+.ui-corner-bottom { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+.ui-corner-right {  -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+.ui-corner-left { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
+.ui-corner-all { -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }
+
+/* Overlays */
+.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Resizable
+----------------------------------*/
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Selectable
+----------------------------------*/
+.ui-selectable-helper { border:1px dotted black }
+/* Autocomplete
+----------------------------------*/
+.ui-autocomplete { position: absolute; cursor: default; }	
+.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/* Menu
+----------------------------------*/
+.ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+}
+.ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/* Button
+----------------------------------*/
+
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
+.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.ui-buttonset { margin-right: 7px; }
+.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+
+
+
+
+
+/* Dialog
+----------------------------------*/
+.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } 
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+/* Tabs
+----------------------------------*/
+.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-hide { display: none !important; }
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/file.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/file.gif
new file mode 100644
index 0000000..bd4f965
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/file.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/folder-closed.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/folder-closed.gif
new file mode 100644
index 0000000..be6b59c
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/folder-closed.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/folder-closed2.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/folder-closed2.gif
new file mode 100644
index 0000000..5411078
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/folder-closed2.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/folder.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/folder.gif
new file mode 100644
index 0000000..be6b59c
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/folder.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/folder2.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/folder2.gif
new file mode 100644
index 0000000..2b31631
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/folder2.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/minus.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/minus.gif
new file mode 100644
index 0000000..47fb7b7
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/minus.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/plus.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/plus.gif
new file mode 100644
index 0000000..6906621
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/plus.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-black-line.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-black-line.gif
new file mode 100644
index 0000000..e549687
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-black-line.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-black.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-black.gif
new file mode 100644
index 0000000..d549b9f
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-black.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-default-line.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-default-line.gif
new file mode 100644
index 0000000..37114d3
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-default-line.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-default.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-default.gif
new file mode 100644
index 0000000..a12ac52
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-default.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-famfamfam-line.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-famfamfam-line.gif
new file mode 100644
index 0000000..6e289ce
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-famfamfam-line.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-famfamfam.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-famfamfam.gif
new file mode 100644
index 0000000..0cb178e
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-famfamfam.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-gray-line.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-gray-line.gif
new file mode 100644
index 0000000..3760044
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-gray-line.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-gray.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-gray.gif
new file mode 100644
index 0000000..cfb8a2f
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-gray.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-red-line.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-red-line.gif
new file mode 100644
index 0000000..df9e749
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-red-line.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-red.gif b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-red.gif
new file mode 100644
index 0000000..3bbb3a1
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/images/treeview-red.gif
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/jquery.treeview.css b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/jquery.treeview.css
new file mode 100644
index 0000000..d7e2c00
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/jquery.treeview.css
@@ -0,0 +1,85 @@
+.treeview, .treeview ul { 
+	padding: 0;
+	margin: 0;
+	list-style: none;
+}
+
+.treeview ul {
+	background-color: white;
+	margin-top: 4px;
+}
+
+.treeview .hitarea {
+	background: url(images/treeview-default.gif) -64px -25px no-repeat;
+	height: 16px;
+	width: 16px;
+	margin-left: -16px;
+	float: left;
+	cursor: pointer;
+}
+/* fix for IE6 */
+* html .hitarea {
+	display: inline;
+	float:none;
+}
+
+.treeview li { 
+	margin: 0;
+	padding: 3px 0 3px 16px;
+}
+
+.treeview a.selected {
+	background-color: #eee;
+}
+
+#treecontrol { margin: 1em 0; display: none; }
+
+.treeview .hover { color: red; cursor: pointer; }
+
+.treeview li { background: url(images/treeview-default-line.gif) 0 0 no-repeat; }
+.treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; }
+
+.treeview .expandable-hitarea { background-position: -80px -3px; }
+
+.treeview li.last { background-position: 0 -1766px }
+.treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url(images/treeview-default.gif); }  
+.treeview li.lastCollapsable { background-position: 0 -111px }
+.treeview li.lastExpandable { background-position: -32px -67px }
+
+.treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0; }
+
+.treeview-red li { background-image: url(images/treeview-red-line.gif); }
+.treeview-red .hitarea, .treeview-red li.lastCollapsable, .treeview-red li.lastExpandable { background-image: url(images/treeview-red.gif); } 
+
+.treeview-black li { background-image: url(images/treeview-black-line.gif); }
+.treeview-black .hitarea, .treeview-black li.lastCollapsable, .treeview-black li.lastExpandable { background-image: url(images/treeview-black.gif); }  
+
+.treeview-gray li { background-image: url(images/treeview-gray-line.gif); }
+.treeview-gray .hitarea, .treeview-gray li.lastCollapsable, .treeview-gray li.lastExpandable { background-image: url(images/treeview-gray.gif); } 
+
+.treeview-famfamfam li { background-image: url(images/treeview-famfamfam-line.gif); }
+.treeview-famfamfam .hitarea, .treeview-famfamfam li.lastCollapsable, .treeview-famfamfam li.lastExpandable { background-image: url(images/treeview-famfamfam.gif); } 
+
+
+.filetree li { padding: 3px 0 2px 16px; }
+.filetree span.folder, .filetree span.file { padding: 1px 0 1px 16px; display: block; }
+.filetree span.folder { background: url(images/folder.gif) 0 0 no-repeat; }
+.filetree li.expandable span.folder { background: url(images/folder-closed.gif) 0 0 no-repeat; }
+.filetree span.file { background: url(images/file.gif) 0 0 no-repeat; }
+
+html, body {height:100%; margin: 0; padding: 0; }
+
+/*
+html>body {
+	font-size: 16px;
+	font-size: 68.75%;
+} Reset Base Font Size */
+  /*
+body {
+	font-family: Verdana, helvetica, arial, sans-serif;
+	font-size: 68.75%;
+	background: #fff;
+	color: #333;
+}   */ 
+
+a img { border: none; }
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/template/common/jquery/treeview/jquery.treeview.min.js b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/jquery.treeview.min.js
new file mode 100644
index 0000000..f9b490d
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/jquery/treeview/jquery.treeview.min.js
@@ -0,0 +1,16 @@
+/*
+ * Treeview 1.4 - jQuery plugin to hide and show branches of a tree
+ * 
+ * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
+ * http://docs.jquery.com/Plugins/Treeview
+ *
+ * Copyright (c) 2007 Jörn Zaefferer
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ *
+ * Revision: $Id$
+ * kasunbg: changed the cookieid name
+ *
+ */;(function($){$.extend($.fn,{swapClass:function(c1,c2){var c1Elements=this.filter('.'+c1);this.filter('.'+c2).removeClass(c2).addClass(c1);c1Elements.removeClass(c1).addClass(c2);return this;},replaceClass:function(c1,c2){return this.filter('.'+c1).removeClass(c1).addClass(c2).end();},hoverClass:function(className){className=className||"hover";return this.hover(function(){$(this).addClass(className);},function(){$(this).removeClass(className);});},heightToggle:function(animated,callback){animated?this.animate({height:"toggle"},animated,callback):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();if(callback)callback.apply(this,arguments);});},heightHide:function(animated,callback){if(animated){this.animate({height:"hide"},animated,callback);}else{this.hide();if(callback)this.each(callback);}},prepareBranches:function(settings){if(!settings.prerendered){this.filter(":last-child:not(ul)").addClass(CLASSES.last);this.filter((settings.collapsed?"":"."+CLASSES.closed)+":not(."+CLASSES.open+")").find(">ul").hide();}return this.filter(":has(>ul)");},applyClasses:function(settings,toggler){this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event){toggler.apply($(this).next());}).add($("a",this)).hoverClass();if(!settings.prerendered){this.filter(":has(>ul:hidden)").addClass(CLASSES.expandable).replaceClass(CLASSES.last,CLASSES.lastExpandable);this.not(":has(>ul:hidden)").addClass(CLASSES.collapsable).replaceClass(CLASSES.last,CLASSES.lastCollapsable);this.prepend("<div class=\""+CLASSES.hitarea+"\"/>").find("div."+CLASSES.hitarea).each(function(){var classes="";$.each($(this).parent().attr("class").split(" "),function(){classes+=this+"-hitarea ";});$(this).addClass(classes);});}this.find("div."+CLASSES.hitarea).click(toggler);},treeview:function(settings){if(typeof(window.treeCookieId) === 'undefined' || window.treeCookieId === ""){treeCookieId = "treeview";} settings=$.extend({cookieId: treeCookieId},settings);if(settings.add){return this.trigger("add",[settings.add]);}if(settings.toggle){var callback=settings.toggle;settings.toggle=function(){return callback.apply($(this).parent()[0],arguments);};}function treeController(tree,control){function handler(filter){return function(){toggler.apply($("div."+CLASSES.hitarea,tree).filter(function(){return filter?$(this).parent("."+filter).length:true;}));return false;};}$("a:eq(0)",control).click(handler(CLASSES.collapsable));$("a:eq(1)",control).click(handler(CLASSES.expandable));$("a:eq(2)",control).click(handler());}function toggler(){$(this).parent().find(">.hitarea").swapClass(CLASSES.collapsableHitarea,CLASSES.expandableHitarea).swapClass(CLASSES.lastCollapsableHitarea,CLASSES.lastExpandableHitarea).end().swapClass(CLASSES.collapsable,CLASSES.expandable).swapClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightToggle(settings.animated,settings.toggle);if(settings.unique){$(this).parent().siblings().find(">.hitarea").replaceClass(CLASSES.collapsableHitarea,CLASSES.expandableHitarea).replaceClass(CLASSES.lastCollapsableHitarea,CLASSES.lastExpandableHitarea).end().replaceClass(CLASSES.collapsable,CLASSES.expandable).replaceClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightHide(settings.animated,settings.toggle);}}function serialize(){function binary(arg){return arg?1:0;}var data=[];branches.each(function(i,e){data[i]=$(e).is(":has(>ul:visible)")?1:0;});$.cookie(settings.cookieId,data.join(""));}function deserialize(){var stored=$.cookie(settings.cookieId);if(stored){var data=stored.split("");branches.each(function(i,e){$(e).find(">ul")[parseInt(data[i])?"show":"hide"]();});}}this.addClass("treeview");var branches=this.find("li").prepareBranches(settings);switch(settings.persist){case"cookie":var toggleCallback=settings.toggle;settings.toggle=function(){serialize();if(toggleCallback){toggleCallback.apply(this,arguments);}};deserialize();break;case"location":var current=this.find("a").filter(function(){return this.href.toLowerCase()==location.href.toLowerCase();});if(current.length){current.addClass("selected").parents("ul, li").add(current.next()).show();}break;}branches.applyClasses(settings,toggler);if(settings.control){treeController(this,settings.control);$(settings.control).show();}return this.bind("add",function(event,branches){$(branches).prev().removeClass(CLASSES.last).removeClass(CLASSES.lastCollapsable).removeClass(CLASSES.lastExpandable).find(">.hitarea").removeClass(CLASSES.lastCollapsableHitarea).removeClass(CLASSES.lastExpandableHitarea);$(branches).find("li").andSelf().prepareBranches(settings).applyClasses(settings,toggler);});}});var CLASSES=$.fn.treeview.classes={open:"open",closed:"closed",expandable:"expandable",expandableHitarea:"expandable-hitarea",lastExpandableHitarea:"lastExpandable-hitarea",collapsable:"collapsable",collapsableHitarea:"collapsable-hitarea",lastCollapsableHitarea:"lastCollapsable-hitarea",lastCollapsable:"lastCollapsable",lastExpandable:"lastExpandable",last:"last",hitarea:"hitarea"};$.fn.Treeview=$.fn.treeview;})(jQuery);
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/template/common/main.js b/applications/content/template/docbook/webhelp/template/common/main.js
new file mode 100644
index 0000000..714cdee
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/common/main.js
@@ -0,0 +1,276 @@
+/**
+ * Miscellaneous js functions for WebHelp
+ * Kasun Gajasinghe, http://kasunbg.blogspot.com
+ * David Cramer, http://www.thingbag.net
+ *
+ */
+
+//Turn ON and OFF the animations for Show/Hide Sidebar. Extend this to other anime as well if any.
+var noAnimations=false;
+
+$(document).ready(function() {
+	// When you click on a link to an anchor, scroll down 
+	// 105 px to cope with the fact that the banner
+	// hides the top 95px or so of the page.
+	// This code deals with the problem when 
+	// you click on a link within a page.
+	$('a[href*=#]').click(function() {
+		if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
+		    && location.hostname == this.hostname) {
+		    var $target = $(this.hash);
+		    $target = $target.length && $target
+			|| $('[name=' + this.hash.slice(1) +']');
+		if (!(this.hash == "#searchDiv" || this.hash == "#treeDiv"  || this.hash == "") && $target.length) {
+			var targetOffset = $target.offset().top - 120;
+			$('html,body')
+			    .animate({scrollTop: targetOffset}, 200);
+			return false;
+		    }
+		}
+	    });
+
+    //  $("#showHideHighlight").button(); //add jquery button styling to 'Go' button
+    //Generate tabs in nav-pane with JQuery
+    $(function() {
+        $("#tabs").tabs({
+            cookie: {
+                expires: 2 // store cookie for 2 days.
+            }
+        });
+    });
+
+    //Generate the tree
+    $("#ulTreeDiv").attr("style", "");
+    $("#tree").treeview({
+        collapsed: true,
+        animated: "medium",
+        control: "#sidetreecontrol",
+        persist: "cookie"
+    });
+
+    //after toc fully styled, display it. Until loading, a 'loading' image will be displayed
+    $("#tocLoading").attr("style", "display:none;");
+    //    $("#ulTreeDiv").attr("style","display:block;");
+
+    //.searchButton is the css class applied to 'Go' button 
+    $(function() {
+        $("button", ".searchButton").button();
+
+        $("button", ".searchButton").click(function() {
+            return false;
+        });
+    });
+
+    //'ui-tabs-1' is the cookie name which is used for the persistence of the tabs.(Content/Search tab)
+    if ($.cookie('ui-tabs-1') === '1') {    //search tab is active
+        if ($.cookie('textToSearch') != undefined && $.cookie('textToSearch').length > 0) {
+            document.getElementById('textToSearch').value = $.cookie('textToSearch');
+            Verifie('searchForm');
+            searchHighlight($.cookie('textToSearch'));
+            $("#showHideHighlight").css("display", "block");
+        }
+    }
+
+    syncToc(); //Synchronize the toc tree with the content pane, when loading the page.
+    //$("#doSearch").button(); //add jquery button styling to 'Go' button
+
+    // When you click on a link to an anchor, scroll down 
+    // 105 px to cope with the fact that the banner
+    // hides the top 95px or so of the page.
+    // This code deals with the problem when 
+    // you click on a link from another page. 
+    var hash = window.location.hash;
+    if(hash){ 
+	var targetOffset = $(hash).offset().top - 120;
+	$('html,body').animate({scrollTop: targetOffset}, 200);
+	return false;
+    }
+});
+
+
+/**
+ * If an user moved to another page by clicking on a toc link, and then clicked on #searchDiv,
+ * search should be performed if the cookie textToSearch is not empty.
+ */
+function doSearch() {
+//'ui-tabs-1' is the cookie name which is used for the persistence of the tabs.(Content/Search tab)
+    if ($.cookie('textToSearch') != undefined && $.cookie('textToSearch').length > 0) {
+        document.getElementById('textToSearch').value = $.cookie('textToSearch');
+        Verifie('searchForm');
+    }
+}
+
+/**
+ * Synchronize with the tableOfContents
+ */
+function syncToc() {
+    var a = document.getElementById("webhelp-currentid");
+    if (a != undefined) {
+        //Expanding the child sections of the selected node.
+        var nodeClass = a.getAttribute("class");
+        if (nodeClass != null && !nodeClass.match(/collapsable/)) {
+            a.setAttribute("class", "collapsable");
+            //remove display:none; css style from <ul> block in the selected node.
+            var ulNode = a.getElementsByTagName("ul")[0];
+            if (ulNode != undefined) {
+                if (ulNode.hasAttribute("style")) {
+                    ulNode.setAttribute("style", "display: block; background-color: #D8D8D8 !important;");
+                } else {
+                    var ulStyle = document.createAttribute("style");
+                    ulStyle.nodeValue = "display: block; background-color: #D8D8D8 !important;";
+                    ulNode.setAttributeNode(ulStyle);
+            }   }
+            //adjust tree's + sign to -
+            var divNode = a.getElementsByTagName("div")[0];
+            if (divNode != undefined) {
+                if (divNode.hasAttribute("class")) {
+                    divNode.setAttribute("class", "hitarea collapsable-hitarea");
+                } else {
+                    var divClass = document.createAttribute("class");
+                    divClass.nodeValue = "hitarea collapsable-hitarea";
+                    divNode.setAttributeNode(divClass);
+            }   }
+            //set persistence cookie when a node is auto expanded
+            //     setCookieForExpandedNode("webhelp-currentid");
+        }
+        var b = a.getElementsByTagName("a")[0];
+
+        if (b != undefined) {
+            //Setting the background for selected node.
+            var style = a.getAttribute("style", 2);
+            if (style != null && !style.match(/background-color: Background;/)) {
+                a.setAttribute("style", "background-color: #D8D8D8;  " + style);
+                b.setAttribute("style", "color: black;");
+            } else if (style != null) {
+                a.setAttribute("style", "background-color: #D8D8D8;  " + style);
+                b.setAttribute("style", "color: black;");
+            } else {
+                a.setAttribute("style", "background-color: #D8D8D8;  ");
+                b.setAttribute("style", "color: black;");
+            }
+        }
+
+        //shows the node related to current content.
+        //goes a recursive call from current node to ancestor nodes, displaying all of them.
+        while (a.parentNode && a.parentNode.nodeName) {
+            var parentNode = a.parentNode;
+            var nodeName = parentNode.nodeName;
+
+            if (nodeName.toLowerCase() == "ul") {
+                parentNode.setAttribute("style", "display: block;");
+            } else if (nodeName.toLocaleLowerCase() == "li") {
+                parentNode.setAttribute("class", "collapsable");
+                parentNode.firstChild.setAttribute("class", "hitarea collapsable-hitarea ");
+            }
+            a = parentNode;
+}   }  }
+/*
+ function setCookieForExpandedNode(nodeName) {
+ var tocDiv = document.getElementById("tree"); //get table of contents Div
+ var divs = tocDiv.getElementsByTagName("div");
+ var matchedDivNumber;
+ var i;
+ for (i = 0; i < divs.length; i++) {        //1101001
+ var div = divs[i];
+ var liNode = div.parentNode;
+ }
+//create a new cookie if a treeview does not exist
+ if ($.cookie(treeCookieId) == null || $.cookie(treeCookieId) == "") {
+ var branches = $("#tree").find("li");//.prepareBranches(treesettings);
+ var data = [];
+ branches.each(function(i, e) {
+ data[i] = $(e).is(":has(>ul:visible)") ? 1 : 0;
+ });
+ $.cookie(treeCookieId, data.join(""));
+
+ }
+
+ if (i < divs.length) {
+ var treeviewCookie = $.cookie(treeCookieId);
+ var tvCookie1 = treeviewCookie.substring(0, i);
+ var tvCookie2 = treeviewCookie.substring(i + 1);
+ var newTVCookie = tvCookie1 + "1" + tvCookie2;
+ $.cookie(treeCookieId, newTVCookie);
+ }
+ }       */
+
+/**
+ * Code for Show/Hide TOC
+ *
+ */
+function showHideToc() {
+    var showHideButton = $("#showHideButton");
+    var leftNavigation = $("#sidebar"); //hide the parent div of leftnavigation, ie sidebar
+    var content = $("#content");
+    var animeTime=75
+
+    if (showHideButton != undefined && showHideButton.hasClass("pointLeft")) {
+        //Hide TOC
+        showHideButton.removeClass('pointLeft').addClass('pointRight');
+	
+        if(noAnimations) {
+            leftNavigation.css("display", "none");
+            content.css("margin", "125px 0 0 0");
+        } else {
+            leftNavigation.hide(animeTime);
+            content.animate( { "margin-left": 0 }, animeTime);
+        }
+        showHideButton.attr("title", "Show Sidebar");
+    } else {
+        //Show the TOC
+        showHideButton.removeClass('pointRight').addClass('pointLeft');
+        if(noAnimations) {
+            content.css("margin", "125px 0 0 280px");
+            leftNavigation.css("display", "block");
+        } else {
+            content.animate( { "margin-left": '280px' }, animeTime);
+            leftNavigation.show(animeTime);
+        }
+        showHideButton.attr("title", "Hide Sidebar");
+    }
+}
+
+/**
+ * Code for search highlighting
+ */
+var highlightOn = true;
+function searchHighlight(searchText) {
+    highlightOn = true;
+    if (searchText != undefined) {
+        var wList;
+        var sList = new Array();    //stem list 
+        //Highlight the search terms
+        searchText = searchText.toLowerCase().replace(/<\//g, "_st_").replace(/\$_/g, "_di_").replace(/\.|%2C|%3B|%21|%3A|@|\/|\*/g, " ").replace(/(%20)+/g, " ").replace(/_st_/g, "</").replace(/_di_/g, "%24_")
+        searchText = searchText.replace(/  +/g, " ");
+        searchText = searchText.replace(/ $/, "").replace(/^ /, "");
+
+        wList = searchText.split(" ");
+        $("#content").highlight(wList); //Highlight the search input
+
+        if (typeof stemmer != "undefined") {
+            //Highlight the stems
+            for (var i = 0; i < wList.length; i++) {
+                var stemW = stemmer(wList[i]);
+                sList.push(stemW);
+            }
+        } else {
+            sList = wList;
+        }
+        $("#content").highlight(sList); //Highlight the search input's all stems
+    }
+}
+
+function searchUnhighlight() {
+    highlightOn = false;
+    //unhighlight the search input's all stems
+    $("#content").unhighlight();
+    $("#content").unhighlight();
+}
+
+function toggleHighlight() {
+    if (highlightOn) {
+        searchUnhighlight();
+    } else {
+        searchHighlight($.cookie('textToSearch'));
+    }
+}
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/template/content/search/default.props b/applications/content/template/docbook/webhelp/template/content/search/default.props
new file mode 100644
index 0000000..22edf43
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/content/search/default.props
@@ -0,0 +1 @@
+DEF01=a
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/template/content/search/en-us.props b/applications/content/template/docbook/webhelp/template/content/search/en-us.props
new file mode 100644
index 0000000..da284ce
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/content/search/en-us.props
@@ -0,0 +1,45 @@
+DEF01=this

+DEF02=is

+DEF03=the

+DEF04=in

+DEF05=i

+DEF06=on

+DEF07=a

+DEF08=about

+DEF09=an

+DEF10=are

+DEF11=as

+DEF12=at

+DEF13=be

+DEF14=by

+DEF15=com

+DEF16=de

+DEF17=en

+DEF18=for

+DEF19=from

+DEF20=how

+DEF21=it

+DEF22=la

+DEF23=of

+DEF24=on

+DEF25=or

+DEF26=that

+DEF27=to

+DEF28=was

+DEF29=what

+DEF30=when

+DEF31=where

+DEF32=who

+DEF33=will

+DEF34=with

+DEF35=und

+DEF36=Next

+DEF37=Prev

+DEF38=Home

+DEF39=Motive

+DEF40=Inc

+DEF41=Copyright

+DEF42=All

+DEF43=rights

+DEF44=reserved

+DEF45=Up
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/template/content/search/es-es.props b/applications/content/template/docbook/webhelp/template/content/search/es-es.props
new file mode 100644
index 0000000..fb73bdc
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/content/search/es-es.props
@@ -0,0 +1,179 @@
+DEF01=un

+DEF02=una

+DEF03=unas

+DEF04=unos

+DEF05=uno

+DEF06=sobre

+DEF07=todo

+DEF08=también

+DEF09=tras

+DEF10=otro

+DEF11=algún

+DEF12=alguno

+DEF13=alguna

+DEF14=algunos

+DEF15=algunas

+DEF16=ser

+DEF17=es

+DEF18=soy

+DEF19=eres

+DEF20=somos

+DEF21=sois

+DEF22=estoy

+DEF23=esta

+DEF24=estamos

+DEF25=estais

+DEF26=estan

+DEF27=como

+DEF28=en

+DEF29=para

+DEF30=atras

+DEF31=porque

+DEF32=por 

+DEF33=estado

+DEF34=estaba

+DEF35=ante

+DEF36=antes

+DEF37=siendo

+DEF38=ambos

+DEF39=pero

+DEF40=por

+DEF41=poder

+DEF42=puede

+DEF43=puedo

+DEF44=podemos

+DEF45=podeis

+DEF46=pueden

+DEF47=fui

+DEF48=fue

+DEF49=fuimos

+DEF50=fueron

+DEF51=hacer

+DEF52=hago

+DEF53=hace

+DEF54=hacemos

+DEF55=haceis

+DEF56=hacen

+DEF57=cada

+DEF58=fin

+DEF59=incluso

+DEF60=primero

+DEF61=desde

+DEF62=conseguir

+DEF63=consigo

+DEF64=consigue

+DEF65=consigues

+DEF66=conseguimos

+DEF67=consiguen

+DEF68=ir

+DEF69=voy

+DEF70=va

+DEF71=vamos

+DEF72=vais

+DEF73=van

+DEF74=vaya

+DEF75=gueno

+DEF76=ha

+DEF77=tener

+DEF78=tengo

+DEF79=tiene

+DEF80=tenemos

+DEF81=teneis

+DEF82=tienen

+DEF83=el

+DEF84=la

+DEF85=lo

+DEF86=las

+DEF87=los

+DEF88=su

+DEF89=aqui

+DEF90=mio

+DEF91=tuyo

+DEF92=ellos

+DEF93=ellas

+DEF94=nos

+DEF95=nosotros

+DEF96=vosotros

+DEF97=vosotras

+DEF98=si

+DEF99=dentro

+DEF100=solo

+DEF101=solamente

+DEF102=saber

+DEF103=sabes

+DEF104=sabe

+DEF105=sabemos

+DEF106=sabeis

+DEF107=saben

+DEF108=ultimo

+DEF109=largo

+DEF110=bastante

+DEF111=haces

+DEF112=muchos

+DEF113=aquellos

+DEF114=aquellas

+DEF115=sus

+DEF116=entonces

+DEF117=tiempo

+DEF118=verdad

+DEF119=verdadero

+DEF120=verdadera

+DEF121=cierto

+DEF122=ciertos

+DEF123=cierta

+DEF124=ciertas

+DEF125=intentar

+DEF126=intento

+DEF127=intenta

+DEF128=intentas

+DEF129=intentamos

+DEF130=intentais

+DEF131=intentan

+DEF132=dos

+DEF133=bajo

+DEF134=arriba

+DEF135=encima

+DEF136=usar

+DEF137=uso

+DEF138=usas

+DEF139=usa

+DEF140=usamos

+DEF141=usais

+DEF142=usan

+DEF143=emplear

+DEF144=empleo

+DEF145=empleas

+DEF146=emplean

+DEF147=ampleamos

+DEF148=empleais

+DEF149=valor

+DEF150=muy

+DEF151=era

+DEF152=eras

+DEF153=eramos

+DEF154=eran

+DEF155=modo

+DEF156=bien

+DEF157=cual

+DEF158=cuando

+DEF159=donde

+DEF160=mientras

+DEF161=quien

+DEF162=con

+DEF163=entre

+DEF164=sin

+DEF165=trabajo

+DEF166=trabajar

+DEF167=trabajas

+DEF168=trabaja

+DEF169=trabajamos

+DEF170=trabajais

+DEF171=trabajan

+DEF172=podria

+DEF173=podrias

+DEF174=podriamos

+DEF175=podrian

+DEF176=podriais

+DEF177=yo

+DEF178=aquel

+DEF179=qué
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/template/content/search/ja-jp.props b/applications/content/template/docbook/webhelp/template/content/search/ja-jp.props
new file mode 100644
index 0000000..2756805
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/content/search/ja-jp.props
@@ -0,0 +1 @@
+J01=\\u306B
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/template/content/search/nwSearchFnt.js b/applications/content/template/docbook/webhelp/template/content/search/nwSearchFnt.js
new file mode 100644
index 0000000..dbf19db
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/content/search/nwSearchFnt.js
@@ -0,0 +1,881 @@
+/*----------------------------------------------------------------------------
+ * JavaScript for webhelp search
+ *----------------------------------------------------------------------------
+ This file is part of the webhelpsearch plugin for DocBook WebHelp
+ Copyright (c) 2007-2008 NexWave Solutions All Rights Reserved.
+ www.nexwave.biz Nadege Quaine
+ http://kasunbg.blogspot.com/ Kasun Gajasinghe
+ */
+
+//string initialization
+var htmlfileList = "htmlFileInfoList.js";
+var htmlfileinfoList = "htmlFileInfoList.js";
+var useCJKTokenizing = false;
+
+var w = new Object();
+var scoring = new Object();
+
+var searchTextField = '';
+var no = 0;
+var noWords = 0;
+var partialSearch = "<font class=\"highlightText\">There is no page containing all the search terms.<br>Partial results:</font>";
+var warningMsg = '<div style="padding: 5px;margin-right:5px;;background-color:#FFFF00;">';
+warningMsg+='<b>Please note that due to security settings, Google Chrome does not highlight';
+warningMsg+=' the search results in the right frame.</b><br>';
+warningMsg+='This happens only when the WebHelp files are loaded from the local file system.<br>';
+warningMsg+='Workarounds:';
+warningMsg+='<ul>';
+warningMsg+='<li>Try using another web browser.</li>';
+warningMsg+='<li>Deploy the WebHelp files on a web server.</li>';
+warningMsg+='</div>';
+txt_filesfound = 'Results';
+txt_enter_at_least_1_char = "You must enter at least one character.";
+txt_enter_more_than_10_words = "Only first 10 words will be processed.";
+txt_browser_not_supported = "Your browser is not supported. Use of Mozilla Firefox is recommended.";
+txt_please_wait = "Please wait. Search in progress...";
+txt_results_for = "Results for: ";
+
+/* This function verify the validity of search input by the user
+  Cette fonction verifie la validite de la recherche entrre par l utilisateur */
+function Verifie(searchForm) {
+
+    // Check browser compatibility
+    if (navigator.userAgent.indexOf("Konquerer") > -1) {
+
+        alert(txt_browser_not_supported);
+        return;
+    }
+
+    searchTextField = trim(document.searchForm.textToSearch.value);
+    searchTextField = searchTextField.replace(/['"]/g,'');
+	var expressionInput = searchTextField;
+    $.cookie('textToSearch', expressionInput);
+
+    if (expressionInput.length < 1) {
+
+        // expression is invalid
+        alert(txt_enter_at_least_1_char);
+        // reactive la fenetre de search (utile car cadres)
+
+        document.searchForm.textToSearch.focus();
+    }
+    else {
+    var splitSpace = searchTextField.split(" ");
+       var splitWords = [];
+        for (var i = 0 ; i < splitSpace.length ; i++) {
+          var splitDot = splitSpace[i].split(".");
+          for (var i1 = 0; i1 < splitDot.length; i1++) {
+               var splitColon = splitDot[i1].split(":");
+            for (var i2 = 0; i2 < splitColon.length; i2++) {
+                var splitDash = splitColon[i2].split("-");
+                 for (var i3 = 0; i3 < splitDash.length; i3++) {
+                     if (splitDash[i3].split("").length > 0) {
+                           splitWords.push(splitDash[i3]);
+                       }
+                 }
+            }
+          }
+       }
+       noWords = splitWords;
+    	if (noWords.length > 9){
+          // Allow to search maximum 10 words
+    		alert(txt_enter_more_than_10_words);
+    		expressionInput = '';
+    		for (var x = 0 ; x < 10 ; x++){
+    			expressionInput = expressionInput + " " + noWords[x]; 
+    		}    		
+    		Effectuer_recherche(expressionInput);
+    		document.searchForm.textToSearch.focus();
+    	} else {
+	        // Effectuer la recherche
+             expressionInput = '';
+          for (var x = 0 ; x < noWords.length ; x++) {
+                 expressionInput = expressionInput + " " + noWords[x]; 
+             }
+	        Effectuer_recherche(expressionInput);
+	        // reactive la fenetre de search (utile car cadres)
+	        document.searchForm.textToSearch.focus();        
+    	}
+    }
+}
+
+var stemQueryMap = new Array();  // A hashtable which maps stems to query words
+
+/* This function parses the search expression, loads the indices and displays the results*/
+function Effectuer_recherche(expressionInput) {
+
+    /* Display a waiting message */
+    //DisplayWaitingMessage();
+
+    /*data initialisation*/
+    var searchFor = "";       // expression en lowercase et sans les caracte    res speciaux
+    //w = new Object();  // hashtable, key=word, value = list of the index of the html files
+    scriptLetterTab = new Scriptfirstchar(); // Array containing the first letter of each word to look for
+    var wordsList = new Array(); // Array with the words to look for
+    var finalWordsList = new Array(); // Array with the words to look for after removing spaces
+    var linkTab = new Array();
+    var fileAndWordList = new Array();
+    var txt_wordsnotfound = "";
+
+
+    // --------------------------------------
+    // Begin Thu's patch 
+    /*nqu: expressionInput, la recherche est lower cased, plus remplacement des char speciaux*/
+    //The original replacement expression is: 
+    //searchFor = expressionInput.toLowerCase().replace(/<\//g, "_st_").replace(/\$_/g, "_di_").replace(/\.|%2C|%3B|%21|%3A|@|\/|\*/g, " ").replace(/(%20)+/g, " ").replace(/_st_/g, "</").replace(/_di_/g, "%24_");
+    //The above expression was error prone because it did not deal with words that have a . as part of the word correctly, for example, document.txt
+    
+    //Do not automatically replace a . with a space
+    searchFor = expressionInput.toLowerCase().replace(/<\//g, "_st_").replace(/\$_/g, "_di_").replace(/%2C|%3B|%21|%3A|@|\/|\*/g, " ").replace(/(%20)+/g, " ").replace(/_st_/g, "</").replace(/_di_/g, "%24_");
+    
+    //If it ends with a period, replace it with a space
+    searchFor = searchFor.replace(/[.]$/,"");
+    // End Thu's Patch
+    // ------------------------------------------
+
+    searchFor = searchFor.replace(/  +/g, " ");
+    searchFor = searchFor.replace(/ $/, "").replace(/^ /, "");
+
+    wordsList = searchFor.split(" ");
+    wordsList.sort();
+
+    //set the tokenizing method
+    useCJKTokenizing = typeof indexerLanguage != "undefined" && (indexerLanguage == "zh" || indexerLanguage == "ja" || indexerLanguage == "ko");
+    //If Lucene CJKTokenizer was used as the indexer, then useCJKTokenizing will be true. Else, do normal tokenizing.
+    // 2-gram tokenizinghappens in CJKTokenizing, 
+    //If doStem then make tokenize with Stemmer
+    var finalArray;
+    if (doStem){
+	    if(useCJKTokenizing){
+	        finalWordsList = cjkTokenize(wordsList);
+          finalArray = finalWordsList;
+	    } else { 
+	        finalWordsList = tokenize(wordsList);
+          finalArray = finalWordsList;
+	    }
+    } else if(useCJKTokenizing){
+          finalWordsList = cjkTokenize(wordsList);
+          finalArray = finalWordsList;
+         } else{
+
+    //load the scripts with the indices: the following lines do not work on the server. To be corrected
+    /*if (IEBrowser) {
+     scriptsarray = loadTheIndexScripts (scriptLetterTab);
+     } */
+
+    /**
+     * Compare with the indexed words (in the w[] array), and push words that are in it to tempTab.
+     */
+    var tempTab = new Array();
+	
+    // ---------------------------------------
+    // Thu's patch
+    //Do not use associative array in for loop, for example:
+    //for(var t in finalWordsList)
+    //it causes errors when finalWordList contains 
+    //stemmed words such as: kei from the stemmed word: key
+    for(var t=0;t<finalWordsList.length;++t){
+        var aWord=finalWordsList[t];
+        //w is a Map like Object, use the current word in finalWordList as the key
+        if(w[aWord] == undefined){
+            txt_wordsnotfound += aWord + " ";
+	        }
+        else{
+            tempTab.push(aWord);
+    		}
+    	}
+    	finalWordsList = tempTab;		
+    //Check all the inputs to see if the root words are in the finalWordsList, if not add them there
+    var inputs = expressionInput.split(' ');
+    // Thu's Patch 
+    // -------------------------------------------
+
+    
+    txt_wordsnotfound = expressionInput;
+	finalWordsList = removeDuplicate(finalWordsList);
+    
+   }
+    if (finalWordsList.length) {
+      //search 'and' and 'or' one time
+      fileAndWordList = SortResults(finalWordsList);
+      
+      if (fileAndWordList == undefined){
+        	var cpt = 0;
+      } else {
+      	  var cpt = fileAndWordList.length;
+		  var maxNumberOfWords = fileAndWordList[0][0].motsnb;
+      }
+	  if (cpt > 0){
+		var searchedWords = noWords.length;
+		var foundedWords  = fileAndWordList[0][0].motslisteDisplay.split(",").length;
+		//console.info("search : " + noWords.length + "   found : " + fileAndWordList[0][0].motslisteDisplay.split(",").length);
+		if (searchedWords != foundedWords){
+			linkTab.push(partialSearch);
+		}
+	  }
+	  
+      
+      for (var i = 0; i < cpt; i++) {
+			
+			var hundredProcent = fileAndWordList[i][0].scoring + 100 * fileAndWordList[i][0].motsnb;
+			var ttScore_first = fileAndWordList[i][0].scoring;
+			var numberOfWords = fileAndWordList[i][0].motsnb;
+			
+            if (fileAndWordList[i] != undefined) {
+                linkTab.push("<p>" + txt_results_for + " " + "<span class=\"searchExpression\">" + fileAndWordList[i][0].motslisteDisplay + "</span>" + "</p>");
+
+                linkTab.push("<ul class='searchresult'>");
+                for (t in fileAndWordList[i]) {
+                    //linkTab.push("<li><a href=\"../"+fl[fileAndWordList[i][t].filenb]+"\">"+fl[fileAndWordList[i][t].filenb]+"</a></li>");
+				                        
+                    var ttInfo = fileAndWordList[i][t].filenb;
+                    // Get scoring
+                    var ttScore = fileAndWordList[i][t].scoring;
+                    var tempInfo = fil[ttInfo];
+				    
+                    var pos1 = tempInfo.indexOf("@@@");
+                    var pos2 = tempInfo.lastIndexOf("@@@");
+                    var tempPath = tempInfo.substring(0, pos1);
+                    var tempTitle = tempInfo.substring(pos1 + 3, pos2);
+                    var tempShortdesc = tempInfo.substring(pos2 + 3, tempInfo.length);
+
+                    
+                    // toc.html will not be displayed on search result
+                    if (tempPath == 'toc.html'){
+                        continue;
+                    }
+                    /*
+                    //file:///home/kasun/docbook/WEBHELP/webhelp-draft-output-format-idea/src/main/resources/web/webhelp/installation.html
+                    var linkString = "<li><a href=" + tempPath + ">" + tempTitle + "</a>";
+                    // var linkString = "<li><a href=\"installation.html\">" + tempTitle + "</a>";
+                    */
+                    var split = fileAndWordList[i][t].motsliste.split(",");
+                    // var splitedValues = expressionInput.split(" ");
+					// var finalArray = split.concat(splitedValues);					
+					
+                    arrayString = 'Array(';
+                    for(var x in finalArray){
+                      if (finalArray[x].length > 2 || useCJKTokenizing){
+                    		arrayString+= "'" + finalArray[x] + "',";
+                    	} 
+                    }
+                    arrayString = arrayString.substring(0,arrayString.length - 1) + ")";
+                    var idLink = 'foundLink' + no;
+                    var linkString = '<li><a id="' + idLink + '" href="' + tempPath + '" class="foundResult">' + tempTitle + '</a>';
+                    var starWidth = (ttScore * 100/ hundredProcent)/(ttScore_first/hundredProcent) * (numberOfWords/maxNumberOfWords);
+                    starWidth = starWidth < 10 ? (starWidth + 5) : starWidth;
+                    // Keep the 5 stars format
+                    if (starWidth > 85){
+						starWidth = 85;
+					}
+					/*
+					var noFullStars = Math.ceil(starWidth/17);
+					var fullStar  = "curr";
+					var emptyStar = "";
+					if (starWidth % 17 == 0){
+						// am stea plina
+						
+					} else {
+						
+					}
+					console.info(noFullStars);
+					*/
+                    // Also check if we have a valid description
+                    if ((tempShortdesc != "null" && tempShortdesc != '...')) {
+                    
+                        linkString += "\n<div class=\"shortdesclink\">" + tempShortdesc + "</div>";
+                    }
+                    linkString += "</li>";
+                    
+                    // Add rating values for scoring at the list of matches	
+					linkString += "<div id=\"rightDiv\">";
+					linkString += "<div id=\"star\">";
+					//linkString += "<div style=\"color: rgb(136, 136, 136);\" id=\"starUser0\" class=\"user\">" 
+					//				+ ((ttScore * 100/ hundredProcent)/(ttScore_first/hundredProcent)) * 1 + "</div>";
+	                linkString += "<ul id=\"star0\" class=\"star\">";
+					linkString += "<li id=\"starCur0\" class=\"curr\" style=\"width: " + starWidth + "px;\"></li>";
+	                linkString += "</ul>";
+	                
+	                linkString += "<br style=\"clear: both;\">";
+	                linkString += "</div>";
+					linkString += "</div>";
+                    //linkString += '<b>Rating: ' + ttScore + '</b>';
+                                           
+                    linkTab.push(linkString);
+                    no++;
+                }
+                linkTab.push("</ul>");
+            }
+        }
+    }
+
+    var results = "";
+    if (linkTab.length > 0) { 
+        /*writeln ("<p>" + txt_results_for + " " + "<span class=\"searchExpression\">"  + cleanwordsList + "</span>" + "<br/>"+"</p>");*/
+        results = "<p>";
+        //write("<ul class='searchresult'>");
+        for (t in linkTab) {
+            results += linkTab[t].toString();
+        }
+        results += "</p>";
+    } else {
+        results = "<p>" + localeresource.search_no_results + " <span class=\"searchExpression\">" + txt_wordsnotfound + "</span>" + "</p>";
+    }
+    
+    
+    // Verify if the browser is Google Chrome and the WebHelp is used on a local machine
+    // If browser is Google Chrome and WebHelp is used on a local machine a warning message will appear
+    // Highlighting will not work in this conditions. There is 2 workarounds
+    if (verifyBrowser()){
+        document.getElementById('searchResults').innerHTML = results;
+    } else {
+        document.getElementById('searchResults').innerHTML = warningMsg + results;
+    }
+    
+}
+
+
+// Verify if the stemmed word is aproximately the same as the searched word
+function verifyWord(word, arr){
+	for (var i = 0 ; i < arr.length ; i++){
+		if (word[0] == arr[i][0] 
+			&& word[1] == arr[i][1] 
+			//&& word[2] == arr[i][2]
+			){
+			return true;
+		}
+	}
+	return false;
+}
+
+// Look for elements that start with searchedValue.
+function wordsStartsWith(searchedValue){
+	var toReturn = '';
+	for (var sv in w){
+		if (searchedValue.length < 3){
+			continue;
+		} else {
+			if (sv.toLowerCase().indexOf(searchedValue.toLowerCase()) == 0){
+				toReturn+=sv + ","; 
+			}
+		}
+	}
+	return toReturn.length > 0 ? toReturn : undefined;
+}
+
+
+function tokenize(wordsList){
+    var stemmedWordsList = new Array(); // Array with the words to look for after removing spaces
+    var cleanwordsList = new Array(); // Array with the words to look for
+    // -------------------------------------------------
+    // Thu's patch
+    for(var j=0;j<wordsList.length;++j){
+        var word = wordsList[j];
+        var originalWord=word;
+        if(typeof stemmer != "undefined" ){
+            var stemmedWord=stemmer(word);
+            if(w[stemmedWord]!=undefined){
+            stemQueryMap[stemmer(word)] = word;
+            }
+            else{
+                stemQueryMap[originalWord]=originalWord;
+            }
+        } else {
+            if(w[word]!=undefined){
+            stemQueryMap[word] = word;
+        }
+            else{
+                stemQueryMap[originalWord]=originalWord;
+            }
+        }
+    } 
+     //stemmedWordsList is the stemmed list of words separated by spaces.
+    for (var t=0;t<wordsList.length;++t) {
+        wordsList[t] = wordsList[t].replace(/(%22)|^-/g, "");
+        if (wordsList[t] != "%20") {
+            scriptLetterTab.add(wordsList[t].charAt(0));
+            cleanwordsList.push(wordsList[t]);
+        }
+    }
+
+    if(typeof stemmer != "undefined" ){
+        //Do the stemming using Porter's stemming algorithm
+        for (var i = 0; i < cleanwordsList.length; i++) {			
+            var stemWord = stemmer(cleanwordsList[i]);			
+            if(w[stemWord]!=undefined){
+            stemmedWordsList.push(stemWord);
+        }
+            else{
+                stemmedWordsList.push(cleanwordsList[i]);               
+            }
+        }
+    // End Thu's patch
+    // -------------------------------------------
+    } else {
+        stemmedWordsList = cleanwordsList;
+    }
+    return stemmedWordsList;
+}
+
+//Invoker of CJKTokenizer class methods.
+function cjkTokenize(wordsList){
+    var allTokens= new Array();
+    var notCJKTokens= new Array();
+    var j=0;
+    for(j=0;j<wordsList.length;j++){
+        var word = wordsList[j];
+        if(getAvgAsciiValue(word) < 127){
+            notCJKTokens.push(word);
+        } else { 
+            var tokenizer = new CJKTokenizer(word);
+            var tokensTmp = tokenizer.getAllTokens();
+            allTokens = allTokens.concat(tokensTmp);
+        }
+    }
+    allTokens = allTokens.concat(tokenize(notCJKTokens));
+    return allTokens;
+}
+
+//A simple way to determine whether the query is in english or not.
+function getAvgAsciiValue(word){
+    var tmp = 0;
+    var num = word.length < 5 ? word.length:5;
+    for(var i=0;i<num;i++){
+        if(i==5) break;
+        tmp += word.charCodeAt(i);
+    }
+    return tmp/num;
+}
+
+//CJKTokenizer
+function CJKTokenizer(input){
+    this.input = input;
+    this.offset=-1;
+    this.tokens = new Array(); 
+    this.incrementToken = incrementToken;
+    this.tokenize = tokenize;
+    this.getAllTokens = getAllTokens;
+    this.unique = unique;
+
+    function incrementToken(){
+		if(this.input.length - 2 <= this.offset){
+		//	console.log("false "+offset);
+			return false;
+		}
+		else {
+			this.offset+=1;
+			return true;
+		}
+	}
+
+	function tokenize(){
+		//document.getElementById("content").innerHTML += x.substring(offset,offset+2)+"<br>";
+		return this.input.substring(this.offset,this.offset+2);
+	}
+
+	function getAllTokens(){
+		while(this.incrementToken()){
+			var tmp = this.tokenize();
+			this.tokens.push(tmp);
+		}
+        return this.unique(this.tokens);
+//		document.getElementById("content").innerHTML += tokens+" ";
+//		document.getElementById("content").innerHTML += "<br>dada"+sortedTokens+" ";
+//		console.log(tokens.length+"dsdsds");
+		/*for(i=0;i<tokens.length;i++){
+			console.log(tokens[i]);
+			var ss = tokens[i] == sortedTokens[i];
+
+//			document.getElementById("content").innerHTML += "<br>dada"+un[i]+"- "+stems[i]+"&nbsp;&nbsp;&nbsp;"+ ss;
+			document.getElementById("content").innerHTML += "<br>"+sortedTokens[i];
+		}*/
+	}
+
+	function unique(a)
+	{
+	   var r = new Array();
+	   o:for(var i = 0, n = a.length; i < n; i++)
+	   {
+	      for(var x = 0, y = r.length; x < y; x++)
+	      {
+		 if(r[x]==a[i]) continue o;
+	      }
+	      r[r.length] = a[i];
+	   }
+	   return r;
+	} 
+}
+
+
+/* Scriptfirstchar: to gather the first letter of index js files to upload */
+function Scriptfirstchar() {
+    this.strLetters = "";
+    this.add = addLettre;
+}
+
+function addLettre(caract) {
+
+    if (this.strLetters == 'undefined') {
+        this.strLetters = caract;
+    } else if (this.strLetters.indexOf(caract) < 0) {
+        this.strLetters += caract;
+    }
+
+    return 0;
+}
+/* end of scriptfirstchar */
+
+/*main loader function*/
+/*tab contains the first letters of each word looked for*/
+function loadTheIndexScripts(tab) {
+
+    //alert (tab.strLetters);
+    var scriptsarray = new Array();
+
+    for (var i = 0; i < tab.strLetters.length; i++) {
+
+        scriptsarray[i] = "..\/search" + "\/" + tab.strLetters.charAt(i) + ".js";
+    }
+    // add the list of html files
+    i++;
+    scriptsarray[i] = "..\/search" + "\/" + htmlfileList;
+
+    //debug
+    for (var t in scriptsarray) {
+        //alert (scriptsarray[t]);
+    }
+
+    tab = new ScriptLoader();
+    for (t in scriptsarray) {
+        tab.add(scriptsarray[t]);
+    }
+    tab.load();
+    //alert ("scripts loaded");
+    return (scriptsarray);
+}
+
+/* ScriptLoader: to load the scripts and wait that it's finished */
+function ScriptLoader() {
+    this.cpt = 0;
+    this.scriptTab = new Array();
+    this.add = addAScriptInTheList;
+    this.load = loadTheScripts;
+    this.onScriptLoaded = onScriptLoadedFunc;
+}
+
+function addAScriptInTheList(scriptPath) {
+    this.scriptTab.push(scriptPath);
+}
+
+function loadTheScripts() {
+    var script;
+    var head;
+
+    head = document.getElementsByTagName('head').item(0);
+
+    //script = document.createElement('script');
+
+    for (var el in this.scriptTab) {
+        //alert (el+this.scriptTab[el]);
+        script = document.createElement('script');
+        script.src = this.scriptTab[el];
+        script.type = 'text/javascript';
+        script.defer = false;
+
+        head.appendChild(script);
+    }
+
+}
+
+function onScriptLoadedFunc(e) {
+    e = e || window.event;
+    var target = e.target || e.srcElement;
+    var isComplete = true;
+    if (typeof target.readyState != undefined) {
+
+        isComplete = (target.readyState == "complete" || target.readyState == "loaded");
+    }
+    if (isComplete) {
+        ScriptLoader.cpt++;
+        if (ScriptLoader.cpt == ScriptLoader.scripts.length) {
+            ScriptLoader.onLoadComplete();
+        }
+    }
+}
+
+/*
+function onLoadComplete() {
+    alert("loaded !!");
+} */
+
+/* End of scriptloader functions */
+ 
+// Array.unique( strict ) - Remove duplicate values
+function unique(tab) {
+    var a = new Array();
+    var i;
+    var l = tab.length;
+
+    if (tab[0] != undefined) {
+        a[0] = tab[0];
+    }
+    else {
+        return -1;
+    }
+
+    for (i = 1; i < l; i++) {
+        if (indexof(a, tab[i], 0) < 0) {
+            a.push(tab[i]);
+        }
+    }
+    return a;
+}
+function indexof(tab, element, begin) {
+    for (var i = begin; i < tab.length; i++) {
+        if (tab[i] == element) {
+            return i;
+        }
+    }
+    return -1;
+
+}
+/* end of Array functions */
+
+
+/*
+ Param: mots= list of words to look for.
+ This function creates an hashtable:
+ - The key is the index of a html file which contains a word to look for.
+ - The value is the list of all words contained in the html file.
+
+ Return value: the hashtable fileAndWordList
+ */
+function SortResults(mots) {
+
+    var fileAndWordList = new Object();
+    if (mots.length == 0 || mots[0].length == 0) {
+        return null;
+    }
+    
+    
+    // In generated js file we add scoring at the end of the word
+    // Example word1*scoringForWord1,word2*scoringForWord2 and so on
+    // Split after * to obtain the right values
+    var scoringArr = Array();
+    for (var t in mots) {
+        // get the list of the indices of the files.
+        var listNumerosDesFicStr = w[mots[t].toString()];
+
+        if (listNumerosDesFicStr != undefined) {
+
+            //alert ("listNumerosDesFicStr "+listNumerosDesFicStr);
+            var tab = listNumerosDesFicStr.split(",");
+            //for each file (file's index):
+            for (var t2 in tab) {
+                var tmp = '';
+                var idx = '';
+                var temp = tab[t2].toString();
+                if (temp.indexOf('*') != -1) {
+                    idx = temp.indexOf('*');
+                    tmp = temp.substring(idx + 3, temp.length);
+                    temp = temp.substring(0, idx);
+                }
+                scoringArr.push(tmp);
+                if (fileAndWordList[temp] == undefined) {
+                    fileAndWordList[temp] = "" + mots[t];
+                } else {
+                    fileAndWordList[temp] += "," + mots[t];
+                }
+                //console.info("fileAndWordList[" + temp + "]=" + fileAndWordList[temp] + " : " + tmp);
+            }
+
+        }
+    }
+    var fileAndWordListValuesOnly = new Array();
+    // sort results according to values
+    var temptab = new Array();
+    finalObj = new Array();
+    for (t in fileAndWordList) {    	
+    	finalObj.push(new newObj(t,fileAndWordList[t]));
+    }
+
+    if ( finalObj.length == 0 ) {   // None of the queried words are not in the index (stemmed or not)
+        return null;
+    }
+    finalObj = removeDerivates(finalObj);
+    for (t in finalObj) {
+        tab = finalObj[t].wordList.split(',');
+        var tempDisplay = new Array();
+        for (var x in tab) {        		
+            if(stemQueryMap[tab[x]] != undefined && doStem){
+                tempDisplay.push(stemQueryMap[tab[x]]); //get the original word from the stem word.                
+            } else {
+                tempDisplay.push(tab[x]); //no stem is available. (probably a CJK language)
+            }
+        }
+        var tempDispString = tempDisplay.join(", ");
+				var index;
+				for (x in fileAndWordList) {
+					if (x === finalObj[t].filesNo) {
+						index = x;
+						break;
+					}
+				}
+				var scoring = findRating(fileAndWordList[index], index);	
+        temptab.push(new resultPerFile(finalObj[t].filesNo, finalObj[t].wordList, tab.length, tempDispString, scoring));
+        fileAndWordListValuesOnly.push(finalObj[t].wordList);        
+    }
+    fileAndWordListValuesOnly = unique(fileAndWordListValuesOnly);
+    fileAndWordListValuesOnly = fileAndWordListValuesOnly.sort(compare_nbMots);
+
+    var listToOutput = new Array();
+    for (var fawlvoIdx in fileAndWordListValuesOnly) {
+        for (t in temptab) {
+            if (temptab[t].motsliste == fileAndWordListValuesOnly[fawlvoIdx]) {
+                if (listToOutput[fawlvoIdx] == undefined) {
+                    listToOutput[fawlvoIdx] = new Array(temptab[t]);
+                } else {
+                    listToOutput[fawlvoIdx].push(temptab[t]);
+                }
+            }
+        }
+    }		
+  // Sort results by scoring, descending on the same group
+	for (var ltoIdx in listToOutput) {
+	    listToOutput[ltoIdx].sort(function(a, b){
+			return b.scoring - a.scoring;
+		});
+	}
+	// If we have groups with same number of words, 
+	// will sort groups by higher scoring of each group
+	for (var i = 0; i < listToOutput.length - 1; i++) {
+		for (var j = i + 1; j < listToOutput.length; j++) {
+			if (listToOutput[i][0].motsnb < listToOutput[j][0].motsnb 
+				|| (listToOutput[i][0].motsnb == listToOutput[j][0].motsnb
+				&& listToOutput[i][0].scoring < listToOutput[j][0].scoring)
+				) {
+				var x = listToOutput[i];
+				listToOutput[i] = listToOutput[j];
+				listToOutput[j] = x;
+			}
+		}
+	}
+
+    return listToOutput;
+}
+
+// Remove derivates words from the list of words
+function removeDerivates(obj){
+	var toResultObject = new Array();	
+	for (i in obj){
+		var filesNo  = obj[i].filesNo;
+		var wordList = obj[i].wordList;
+		var wList = wordList.split(",");		
+		var searchedWords = searchTextField.toLowerCase().split(" ");
+		for (var k = 0 ; k < searchedWords.length ; k++){
+			for (var j = 0 ; j < wList.length ; j++){				
+				if (wList[j].startsWith(searchedWords[k])){
+					wList[j] = searchedWords[k];
+				}
+			}
+		}
+		wList = removeDuplicate(wList);
+		var recreateList = '';
+		for(var x in wList){
+			recreateList+=wList[x] + ",";
+		}
+		recreateList = recreateList.substr(0, recreateList.length - 1);
+		toResultObject.push(new newObj(filesNo, recreateList));
+	}
+	return toResultObject;
+}
+
+function newObj(filesNo, wordList){
+	this.filesNo = filesNo;
+	this.wordList = wordList;
+}
+
+// Add a new parameter. Scoring.
+function resultPerFile(filenb, motsliste, motsnb, motslisteDisplay, scoring, group) {
+	//10 - spring,time - 2 - spring, time - 55 - 3
+    this.filenb = filenb;
+    this.motsliste = motsliste;
+    this.motsnb = motsnb;
+    this.motslisteDisplay= motslisteDisplay;
+    
+    this.scoring = scoring;
+    
+}
+
+
+function findRating(words, nr){
+    var sum = 0;
+    var xx = words.split(',');
+    for (jj = 0 ; jj < xx.length ; jj++){
+        var wrd = w[xx[jj]].split(',');
+        for (var ii = 0 ; ii < wrd.length ; ii++){
+            var wrdno = wrd[ii].split('*');
+            if (wrdno[0] == nr){
+                sum+=parseInt(wrdno[1]);
+            }
+        }
+    }
+    return sum;
+}
+
+function compare_nbMots(s1, s2) {
+    var t1 = s1.split(',');
+    var t2 = s2.split(',');
+    //alert ("s1:"+t1.length + " " +t2.length)
+    if (t1.length == t2.length) {
+        return 0;
+    } else if (t1.length > t2.length) {
+        return 1;
+    } else {
+        return -1;
+    }
+    //return t1.length - t2.length);
+}
+
+// return false if browser is Google Chrome and WebHelp is used on a local machine, not a web server 
+function verifyBrowser(){
+    var returnedValue = true;    
+    var browser = BrowserDetect.browser;
+    var addressBar = window.location.href;
+    if (browser == 'Chrome' && addressBar.indexOf('file://') === 0){
+        returnedValue = false;
+    }
+    
+    return returnedValue;
+}
+
+// Remove duplicate values from an array
+function removeDuplicate(arr) {
+   var r = new Array();
+   o:for(var i = 0, n = arr.length; i < n; i++) {
+      for(var x = 0, y = r.length; x < y; x++) {
+         if(r[x]==arr[i]) continue o;
+      }
+      r[r.length] = arr[i];
+   }
+   return r;
+}
+
+// Create startsWith method
+String.prototype.startsWith = function(str) {
+	return (this.match("^"+str)==str);
+}
+
+function trim(str, chars) {
+	return ltrim(rtrim(str, chars), chars);
+}
+ 
+function ltrim(str, chars) {
+	chars = chars || "\\s";
+	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
+}
+ 
+function rtrim(str, chars) {
+	chars = chars || "\\s";
+	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
+}
diff --git a/applications/content/template/docbook/webhelp/template/content/search/punctuation.props b/applications/content/template/docbook/webhelp/template/content/search/punctuation.props
new file mode 100644
index 0000000..d3e3fcd
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/content/search/punctuation.props
@@ -0,0 +1,31 @@
+Punct01=\\u3002

+Punct02=\\u3003

+Punct03=\\u300C

+Punct04=\\u300D

+Punct05=\\u300E

+Punct06=\\u300F

+Punct07=\\u301D

+Punct08=\\u301E

+Punct09=\\u301F

+Punct10=\\u309B

+Punct11=\\u2018

+Punct12=\\u2019

+Punct13=\\u201A

+Punct14=\\u201C

+Punct15=\\u201D

+Punct16=\\u201E

+Punct17=\\u2032

+Punct18=\\u2033

+Punct19=\\u2035

+Punct20=\\u2039

+Punct21=\\u203A

+Punct22=\\u201E

+Punct23=\\u00BB

+Punct24=\\u00AB

+Punct25=©

+Punct26=’

+Punct27=\\u00A0

+Punct28=\\u2014

+

+

+

diff --git a/applications/content/template/docbook/webhelp/template/content/search/stemmers/de_stemmer.js b/applications/content/template/docbook/webhelp/template/content/search/stemmers/de_stemmer.js
new file mode 100644
index 0000000..7ff3822
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/content/search/stemmers/de_stemmer.js
@@ -0,0 +1,247 @@
+/*
+ * Author: Joder Illi
+ *
+ * Copyright (c) 2010, FormBlitz AG
+ * All rights reserved.
+ * Implementation of the stemming algorithm from http://snowball.tartarus.org/algorithms/german/stemmer.html
+ * Copyright of the algorithm is: Copyright (c) 2001, Dr Martin Porter and can be found at http://snowball.tartarus.org/license.php
+ *
+ * Redistribution and use in source and binary forms, with or without modification, is covered by the standard BSD license.
+ *
+ */
+
+//var stemmer = function Stemmer() {
+    /*
+    German includes the following accented forms,
+    ä   ö   ü
+    and a special letter, ß, equivalent to double s.
+    The following letters are vowels:
+    a   e   i   o   u   y   ä   ö   ü
+    */
+
+    var stemmer = function(word) {
+        /*
+        Put u and y between vowels into upper case
+        */
+        word = word.replace(/([aeiouyäöü])u([aeiouyäöü])/g, '$1U$2');
+        word = word.replace(/([aeiouyäöü])y([aeiouyäöü])/g, '$1Y$2');
+
+        /*
+        and then do the following mappings,
+        (a) replace ß with ss,
+        (a) replace ae with ä,                          Not doing these, have trouble with diphtongs
+        (a) replace oe with ö,                          Not doing these, have trouble with diphtongs
+        (a) replace ue with ü unless preceded by q.     Not doing these, have trouble with diphtongs
+        So in quelle, ue is not mapped to ü because it follows q, and in feuer it is not mapped because the first part of the rule changes it to feUer, so the u is not found.
+        */
+        word = word.replace(/ß/g, 'ss');
+        //word = word.replace(/ae/g, 'ä');
+        //word = word.replace(/oe/g, 'ö');
+        //word = word.replace(/([^q])ue/g, '$1ü');
+
+        /*
+        R1 and R2 are first set up in the standard way (see the note on R1 and R2), but then R1 is adjusted so that the region before it contains at least 3 letters.
+        R1 is the region after the first non-vowel following a vowel, or is the null region at the end of the word if there is no such non-vowel.
+        R2 is the region after the first non-vowel following a vowel in R1, or is the null region at the end of the word if there is no such non-vowel.
+        */
+
+        var r1Index = word.search(/[aeiouyäöü][^aeiouyäöü]/);
+        var r1 = '';
+        if (r1Index != -1) {
+            r1Index += 2;
+            r1 = word.substring(r1Index);
+        }
+
+        var r2Index = -1;
+        var r2 = '';
+
+        if (r1Index != -1) {
+            var r2Index = r1.search(/[aeiouyäöü][^aeiouyäöü]/);
+            if (r2Index != -1) {
+                r2Index += 2;
+                r2 = r1.substring(r2Index);
+                r2Index += r1Index;
+            } else {
+                r2 = '';
+            }
+        }
+
+        if (r1Index != -1 && r1Index < 3) {
+            r1Index = 3;
+            r1 = word.substring(r1Index);
+        }
+
+        /*
+        Define a valid s-ending as one of b, d, f, g, h, k, l, m, n, r or t.
+        Define a valid st-ending as the same list, excluding letter r.
+        */
+
+        /*
+        Do each of steps 1, 2 and 3.
+        */
+
+        /*
+        Step 1:
+        Search for the longest among the following suffixes,
+        (a) em   ern   er
+        (b) e   en   es
+        (c) s (preceded by a valid s-ending)
+        */
+        var a1Index = word.search(/(em|ern|er)$/g);
+        var b1Index = word.search(/(e|en|es)$/g);
+        var c1Index = word.search(/([bdfghklmnrt]s)$/g);
+        if (c1Index != -1) {
+            c1Index++;
+        }
+        var index1 = 10000;
+        var optionUsed1 = '';
+        if (a1Index != -1 && a1Index < index1) {
+            optionUsed1 = 'a';
+            index1 = a1Index;
+        }
+        if (b1Index != -1 && b1Index < index1) {
+            optionUsed1 = 'b';
+            index1 = b1Index;
+        }
+        if (c1Index != -1 && c1Index < index1) {
+            optionUsed1 = 'c';
+            index1 = c1Index;
+        }
+
+        /*
+        and delete if in R1. (Of course the letter of the valid s-ending is not necessarily in R1.) If an ending of group (b) is deleted, and the ending is preceded by niss, delete the final s.
+        (For example, äckern -> äck, ackers -> acker, armes -> arm, bedürfnissen -> bedürfnis)
+        */
+
+        if (index1 != 10000 && r1Index != -1) {
+            if (index1 >= r1Index) {
+                word = word.substring(0, index1);
+                if (optionUsed1 == 'b') {
+                    if (word.search(/niss$/) != -1) {
+                        word = word.substring(0, word.length -1);
+                    }
+                }
+            }
+        }
+        /*
+        Step 2:
+        Search for the longest among the following suffixes,
+        (a) en   er   est
+        (b) st (preceded by a valid st-ending, itself preceded by at least 3 letters)
+        */
+
+        var a2Index = word.search(/(en|er|est)$/g);
+        var b2Index = word.search(/(.{3}[bdfghklmnt]st)$/g);
+        if (b2Index != -1) {
+            b2Index += 4;
+        }
+
+        var index2 = 10000;
+        var optionUsed2 = '';
+        if (a2Index != -1 && a2Index < index2) {
+            optionUsed2 = 'a';
+            index2 = a2Index;
+        }
+        if (b2Index != -1 && b2Index < index2) {
+            optionUsed2 = 'b';
+            index2 = b2Index;
+        }
+
+        /*
+        and delete if in R1.
+        (For example, derbsten -> derbst by step 1, and derbst -> derb by step 2, since b is a valid st-ending, and is preceded by just 3 letters)
+        */
+
+        if (index2 != 10000 && r1Index != -1) {
+            if (index2 >= r1Index) {
+                word = word.substring(0, index2);
+            }
+        }
+
+        /*
+        Step 3: d-suffixes (*)
+        Search for the longest among the following suffixes, and perform the action indicated.
+        end   ung
+            delete if in R2
+            if preceded by ig, delete if in R2 and not preceded by e
+        ig   ik   isch
+            delete if in R2 and not preceded by e
+        lich   heit
+            delete if in R2
+            if preceded by er or en, delete if in R1
+        keit
+            delete if in R2
+            if preceded by lich or ig, delete if in R2
+        */
+
+        var a3Index = word.search(/(end|ung)$/g);
+        var b3Index = word.search(/[^e](ig|ik|isch)$/g);
+        var c3Index = word.search(/(lich|heit)$/g);
+        var d3Index = word.search(/(keit)$/g);
+        if (b3Index != -1) {
+            b3Index ++;
+        }
+
+        var index3 = 10000;
+        var optionUsed3 = '';
+        if (a3Index != -1 && a3Index < index3) {
+            optionUsed3 = 'a';
+            index3 = a3Index;
+        }
+        if (b3Index != -1 && b3Index < index3) {
+            optionUsed3 = 'b';
+            index3 = b3Index;
+        }
+        if (c3Index != -1 && c3Index < index3) {
+            optionUsed3 = 'c';
+            index3 = c3Index;
+        }
+        if (d3Index != -1 && d3Index < index3) {
+            optionUsed3 = 'd';
+            index3 = d3Index;
+        }
+
+        if (index3 != 10000 && r2Index != -1) {
+            if (index3 >= r2Index) {
+                word = word.substring(0, index3);
+                var optionIndex = -1;
+                var optionSubsrt = '';
+                if (optionUsed3 == 'a') {
+                    optionIndex = word.search(/[^e](ig)$/);
+                    if (optionIndex != -1) {
+                        optionIndex++;
+                        if (optionIndex >= r2Index) {
+                            word = word.substring(0, optionIndex);
+                        }
+                    }
+                } else if (optionUsed3 == 'c') {
+                    optionIndex = word.search(/(er|en)$/);
+                    if (optionIndex != -1) {
+                        if (optionIndex >= r1Index) {
+                            word = word.substring(0, optionIndex);
+                        }
+                    }
+                } else if (optionUsed3 == 'd') {
+                    optionIndex = word.search(/(lich|ig)$/);
+                    if (optionIndex != -1) {
+                        if (optionIndex >= r2Index) {
+                            word = word.substring(0, optionIndex);
+                        }
+                    }
+                }
+            }
+        }
+
+        /*
+        Finally,
+        turn U and Y back into lower case, and remove the umlaut accent from a, o and u.
+        */
+        word = word.replace(/U/g, 'u');
+        word = word.replace(/Y/g, 'y');
+        word = word.replace(/ä/g, 'a');
+        word = word.replace(/ö/g, 'o');
+        word = word.replace(/ü/g, 'u');
+
+        return word;
+    };
+//}
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/template/content/search/stemmers/en_stemmer.js b/applications/content/template/docbook/webhelp/template/content/search/stemmers/en_stemmer.js
new file mode 100644
index 0000000..2117c1b
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/content/search/stemmers/en_stemmer.js
@@ -0,0 +1,234 @@
+// Porter stemmer in Javascript. Few comments, but it's easy to follow against the rules in the original
+// paper, in
+//
+//  Porter, 1980, An algorithm for suffix stripping, Program, Vol. 14,
+//  no. 3, pp 130-137,
+//
+// see also http://www.tartarus.org/~martin/PorterStemmer
+
+// Release 1
+// Derived from (http://tartarus.org/~martin/PorterStemmer/js.txt) - cjm (iizuu) Aug 24, 2009
+
+var stemmer = (function(){
+	var step2list = {
+			"ational" : "ate",
+			"tional" : "tion",
+			"enci" : "ence",
+			"anci" : "ance",
+			"izer" : "ize",
+			"bli" : "ble",
+			"alli" : "al",
+			"entli" : "ent",
+			"eli" : "e",
+			"ousli" : "ous",
+			"ization" : "ize",
+			"ation" : "ate",
+			"ator" : "ate",
+			"alism" : "al",
+			"iveness" : "ive",
+			"fulness" : "ful",
+			"ousness" : "ous",
+			"aliti" : "al",
+			"iviti" : "ive",
+			"biliti" : "ble",
+			"logi" : "log"
+		},
+
+		step3list = {
+			"icate" : "ic",
+			"ative" : "",
+			"alize" : "al",
+			"iciti" : "ic",
+			"ical" : "ic",
+			"ful" : "",
+			"ness" : ""
+		},
+
+		c = "[^aeiou]",          // consonant
+		v = "[aeiouy]",          // vowel
+		C = c + "[^aeiouy]*",    // consonant sequence
+		V = v + "[aeiou]*",      // vowel sequence
+
+		mgr0 = "^(" + C + ")?" + V + C,               // [C]VC... is m>0
+		meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$",  // [C]VC[V] is m=1
+		mgr1 = "^(" + C + ")?" + V + C + V + C,       // [C]VCVC... is m>1
+		s_v = "^(" + C + ")?" + v;                   // vowel in stem
+
+	return function (w) {
+		var 	stem,
+			suffix,
+			firstch,
+			re,
+			re2,
+			re3,
+			re4,
+			origword = w;
+
+		if (w.length < 3) { return w; }
+
+		firstch = w.substr(0,1);
+		if (firstch == "y") {
+			w = firstch.toUpperCase() + w.substr(1);
+		}
+
+		// Step 1a
+		re = /^(.+?)(ss|i)es$/;
+		re2 = /^(.+?)([^s])s$/;
+
+		if (re.test(w)) { w = w.replace(re,"$1$2"); }
+		else if (re2.test(w)) {	w = w.replace(re2,"$1$2"); }
+
+		// Step 1b
+		re = /^(.+?)eed$/;
+		re2 = /^(.+?)(ed|ing)$/;
+		if (re.test(w)) {
+			var fp = re.exec(w);
+			re = new RegExp(mgr0);
+			if (re.test(fp[1])) {
+				re = /.$/;
+				w = w.replace(re,"");
+			}
+		} else if (re2.test(w)) {
+			var fp = re2.exec(w);
+			stem = fp[1];
+			re2 = new RegExp(s_v);
+			if (re2.test(stem)) {
+				w = stem;
+				re2 = /(at|bl|iz)$/;
+				re3 = new RegExp("([^aeiouylsz])\\1$");
+				re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+				if (re2.test(w)) { w = w + "e"; }
+				else if (re3.test(w)) { re = /.$/; w = w.replace(re,""); }
+				else if (re4.test(w)) { w = w + "e"; }
+			}
+		}
+
+		// Step 1c
+	        re = new RegExp("^(.+" + c + ")y$");
+		    if (re.test(w)) {
+			var fp = re.exec(w);
+			stem = fp[1];
+		    w = stem + "i";
+		}
+
+		// Step 2
+		re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
+		if (re.test(w)) {
+			var fp = re.exec(w);
+			stem = fp[1];
+			suffix = fp[2];
+			re = new RegExp(mgr0);
+			if (re.test(stem)) {
+				w = stem + step2list[suffix];
+			}
+		}
+
+		// Step 3
+		re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
+		if (re.test(w)) {
+			var fp = re.exec(w);
+			stem = fp[1];
+			suffix = fp[2];
+			re = new RegExp(mgr0);
+			if (re.test(stem)) {
+				w = stem + step3list[suffix];
+			}
+		}
+
+		// Step 4
+		re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
+		re2 = /^(.+?)(s|t)(ion)$/;
+		if (re.test(w)) {
+			var fp = re.exec(w);
+			stem = fp[1];
+			re = new RegExp(mgr1);
+			if (re.test(stem)) {
+				w = stem;
+			}
+		} else if (re2.test(w)) {
+			var fp = re2.exec(w);
+			stem = fp[1] + fp[2];
+			re2 = new RegExp(mgr1);
+			if (re2.test(stem)) {
+				w = stem;
+			}
+		}
+
+		// Step 5
+		re = /^(.+?)e$/;
+		if (re.test(w)) {
+			var fp = re.exec(w);
+			stem = fp[1];
+			re = new RegExp(mgr1);
+			re2 = new RegExp(meq1);
+			re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+			if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {
+				w = stem;
+			}
+		}
+
+		re = /ll$/;
+		re2 = new RegExp(mgr1);
+		if (re.test(w) && re2.test(w)) {
+			re = /.$/;
+			w = w.replace(re,"");
+		}
+
+		// and turn initial Y back to y
+
+		if (firstch == "y") {
+			w = firstch.toLowerCase() + w.substr(1);
+		}
+
+	    // See http://snowball.tartarus.org/algorithms/english/stemmer.html
+	    // "Exceptional forms in general"
+	    var specialWords = {
+	    	"skis" : "ski",
+	    	"skies" : "sky",
+	    	"dying" : "die",
+	    	"lying" : "lie",
+	    	"tying" : "tie",
+	    	"idly" : "idl",
+	    	"gently" : "gentl",
+	    	"ugly" : "ugli",
+	    	"early": "earli",
+	    	"only": "onli",
+	    	"singly": "singl"
+	    };
+
+	    if(specialWords[origword]){
+	    	w = specialWords[origword];
+	    }
+
+	    if( "sky news howe atlas cosmos bias \
+	    	 andes inning outing canning herring \
+	    	 earring proceed exceed succeed".indexOf(origword) !== -1 ){
+	    	w = origword;
+	    }
+
+	    // Address words overstemmed as gener-
+	    re = /.*generate?s?d?(ing)?$/;
+	    if( re.test(origword) ){
+		w = w + 'at';
+	    }
+	    re = /.*general(ly)?$/;
+	    if( re.test(origword) ){
+		w = w + 'al';
+	    }
+	    re = /.*generic(ally)?$/;
+	    if( re.test(origword) ){
+		w = w + 'ic';
+	    }
+	    re = /.*generous(ly)?$/;
+	    if( re.test(origword) ){
+		w = w + 'ous';
+	    }
+	    // Address words overstemmed as commun-
+	    re = /.*communit(ies)?y?/;
+	    if( re.test(origword) ){
+		w = w + 'iti';
+	    }
+
+	    return w;
+	}
+})();
diff --git a/applications/content/template/docbook/webhelp/template/content/search/stemmers/fr_stemmer.js b/applications/content/template/docbook/webhelp/template/content/search/stemmers/fr_stemmer.js
new file mode 100644
index 0000000..34f9743
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/content/search/stemmers/fr_stemmer.js
@@ -0,0 +1,299 @@
+/*
+ * Author: Kasun Gajasinghe
+ * E-Mail: kasunbg AT gmail DOT com
+ * Date: 09.08.2010
+ *
+ * usage: stemmer(word);
+ * ex: var stem = stemmer(foobar);
+ * Implementation of the stemming algorithm from http://snowball.tartarus.org/algorithms/french/stemmer.html
+ *
+ * LICENSE:
+ *
+ * Copyright (c) 2010, Kasun Gajasinghe. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ *    1. Redistributions of source code must retain the above copyright notice,
+ *       this list of conditions and the following disclaimer.
+ *
+ *    2. Redistributions in binary form must reproduce the above copyright notice,
+ *       this list of conditions and the following disclaimer in the documentation
+ *       and/or other materials provided with the distribution.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY KASUN GAJASINGHE ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KASUN GAJASINGHE BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+var stemmer = function(word){
+//    Letters in French include the following accented forms,
+//        â   à   ç   ë   é   ê   è   ï   î   ô   û   ù
+//    The following letters are vowels:
+//        a   e   i   o   u   y   â   à   ë   é   ê   è   ï   î   ô   û   ù
+    
+    word = word.toLowerCase();
+    var oriWord = word;
+    word = word.replace(/qu/g, 'qU');   //have to perform first, as after the operation, capital U is not treated as a vowel
+    word = word.replace(/([aeiouyâàëéêèïîôûù])u([aeiouyâàëéêèïîôûù])/g, '$1U$2');
+    word = word.replace(/([aeiouyâàëéêèïîôûù])i([aeiouyâàëéêèïîôûù])/g, '$1I$2');
+    word = word.replace(/([aeiouyâàëéêèïîôûù])y/g, '$1Y');
+    word = word.replace(/y([aeiouyâàëéêèïîôûù])/g, 'Y$1');
+ 
+    var rv='';
+    var rvIndex = -1;
+    if(word.search(/^(par|col|tap)/) != -1 || word.search(/^[aeiouyâàëéêèïîôûù]{2}/) != -1){
+        rv = word.substring(3);
+        rvIndex = 3;
+    } else {
+        rvIndex = word.substring(1).search(/[aeiouyâàëéêèïîôûù]/);
+        if(rvIndex != -1){
+            rvIndex +=2;   //+2 is to supplement the substring(1) used to find rvIndex
+            rv = word.substring(rvIndex);
+        } else {
+            rvIndex = word.length;
+        }
+    }
+
+//    R1 is the region after the first non-vowel following a vowel, or the end of the word if there is no such non-vowel.
+//    R2 is the region after the first non-vowel following a vowel in R1, or the end of the word if there is no such non-vowel
+    var r1Index = word.search(/[aeiouyâàëéêèïîôûù][^aeiouyâàëéêèïîôûù]/);
+    var r1 = '';
+    if (r1Index != -1) {
+        r1Index += 2;
+        r1 = word.substring(r1Index);
+    } else {
+        r1Index = word.length;        
+    }
+
+    var r2Index = -1;
+    var r2 = '';
+    if (r1Index != -1) {
+        r2Index = r1.search(/[aeiouyâàëéêèïîôûù][^aeiouyâàëéêèïîôûù]/);
+        if (r2Index != -1) {
+            r2Index += 2;
+            r2 = r1.substring(r2Index);
+            r2Index += r1Index;
+        } else {
+            r2 = '';
+            r2Index = word.length;            
+        }
+    }
+    if (r1Index != -1 && r1Index < 3) {
+        r1Index = 3;
+        r1 = word.substring(r1Index);
+    }
+
+    /*
+    Step 1: Standard suffix removal
+    */
+    var a1Index = word.search(/(ance|iqUe|isme|able|iste|eux|ances|iqUes|ismes|ables|istes)$/);
+    var a2Index = word.search(/(atrice|ateur|ation|atrices|ateurs|ations)$/);
+    var a3Index = word.search(/(logie|logies)$/);
+    var a4Index = word.search(/(usion|ution|usions|utions)$/);
+    var a5Index = word.search(/(ence|ences)$/);
+    var a6Index = word.search(/(ement|ements)$/);
+    var a7Index = word.search(/(ité|ités)$/);
+    var a8Index = word.search(/(if|ive|ifs|ives)$/);
+    var a9Index = word.search(/(eaux)$/);
+    var a10Index = word.search(/(aux)$/);
+    var a11Index = word.search(/(euse|euses)$/);
+    var a12Index = word.search(/[^aeiouyâàëéêèïîôûù](issement|issements)$/);
+    var a13Index = word.search(/(amment)$/);
+    var a14Index = word.search(/(emment)$/);
+    var a15Index = word.search(/[aeiouyâàëéêèïîôûù](ment|ments)$/);
+
+    if(a1Index != -1 && a1Index >= r2Index){
+        word = word.substring(0,a1Index);
+    } else if(a2Index != -1 && a2Index >= r2Index){
+        word = word.substring(0,a2Index);
+        var a2Index2 = word.search(/(ic)$/);
+        if(a2Index2 != -1 && a2Index2 >= r2Index){
+            word = word.substring(0, a2Index2);        //if preceded by ic, delete if in R2,
+        } else {                                //else replace by iqU
+            word = word.replace(/(ic)$/,'iqU');
+        }
+    } else if(a3Index != -1 && a3Index >= r2Index){
+        word = word.replace(/(logie|logies)$/,'log');  //replace with log if in R2
+    } else if(a4Index != -1 && a4Index >= r2Index){
+        word = word.replace(/(usion|ution|usions|utions)$/,'u');  //replace with u if in R2
+    } else if(a5Index != -1 && a5Index >= r2Index){
+        word = word.replace(/(ence|ences)$/,'ent');  //replace with ent if in R2
+    } else if(a6Index != -1 && a6Index >= rvIndex){
+        word = word.substring(0,a6Index);
+        if(word.search(/(iv)$/) >= r2Index){
+            word = word.replace(/(iv)$/, '');
+            if(word.search(/(at)$/) >= r2Index){
+                word = word.replace(/(at)$/, '');
+            }
+        } else if(word.search(/(eus)$/) != -1){
+            var a6Index2 = word.search(/(eus)$/);
+            if(a6Index2 >=r2Index){
+                word = word.substring(0, a6Index2);    
+            } else if(a6Index2 >= r1Index){
+                word = word.substring(0,a6Index2)+"eux";
+            }
+        } else if(word.search(/(abl|iqU)$/) >= r2Index){
+            word = word.replace(/(abl|iqU)$/,'');   //if preceded by abl or iqU, delete if in R2,
+        } else if(word.search(/(ièr|Ièr)$/) >= rvIndex){
+            word = word.replace(/(ièr|Ièr)$/,'i');   //if preceded by abl or iqU, delete if in R2,
+        } 
+    } else if(a7Index != -1 && a7Index >= r2Index){
+        word = word.substring(0,a7Index);   //delete if in R2
+        if(word.search(/(abil)$/) != -1){   //if preceded by abil, delete if in R2, else replace by abl, otherwise,
+            var a7Index2 = word.search(/(abil)$/);
+            if(a7Index2 >=r2Index){
+                word = word.substring(0, a7Index2);
+            } else {
+                word = word.substring(0,a7Index2)+"abl";
+            }
+        } else if(word.search(/(ic)$/) != -1){
+            var a7Index3 = word.search(/(ic)$/);
+            if(a7Index3 != -1 && a7Index3 >= r2Index){
+                word = word.substring(0, a7Index3);        //if preceded by ic, delete if in R2,
+            } else {                                //else replace by iqU
+                word = word.replace(/(ic)$/,'iqU');
+            }
+        } else if(word.search(/(iv)$/) != r2Index){
+            word = word.replace(/(iv)$/,'');                        
+        }
+    } else if(a8Index != -1 && a8Index >= r2Index){
+        word = word.substring(0,a8Index);
+        if(word.search(/(at)$/) >= r2Index){
+            word = word.replace(/(at)$/, '');
+            if(word.search(/(ic)$/) >= r2Index){
+                word = word.replace(/(ic)$/, '');
+            } else { word = word.replace(/(ic)$/, 'iqU'); }
+        }
+    } else if(a9Index != -1){ word = word.replace(/(eaux)/,'eau')
+    } else if(a10Index >= r1Index){ word = word.replace(/(aux)/,'al')
+    } else if(a11Index != -1 ){
+        var a11Index2 = word.search(/(euse|euses)$/);
+        if(a11Index2 >=r2Index){
+            word = word.substring(0, a11Index2);
+        } else if(a11Index2 >= r1Index){
+            word = word.substring(0, a11Index2)+"eux";
+        }
+    } else if(a12Index!=-1 && a12Index>=r1Index){
+        word = word.substring(0,a12Index+1);    //+1- amendment to non-vowel
+    } else if(a13Index!=-1 && a13Index>=rvIndex){
+        word = word.replace(/(amment)$/,'ant');
+    } else if(a14Index!=-1 && a14Index>=rvIndex){
+        word = word.replace(/(emment)$/,'ent');
+    } else if(a15Index!=-1 && a15Index>=rvIndex){
+        word = word.substring(0,a15Index+1);
+    }
+
+    /* Step 2a: Verb suffixes beginning i*/
+    var wordStep1 = word;
+    var step2aDone = false;
+    if(oriWord == word.toLowerCase() || oriWord.search(/(amment|emment|ment|ments)$/) != -1){
+        step2aDone = true;
+        var b1Regex = /([^aeiouyâàëéêèïîôûù])(îmes|ît|îtes|i|ie|ies|ir|ira|irai|iraIent|irais|irait|iras|irent|irez|iriez|irions|irons|iront|is|issaIent|issais|issait|issant|issante|issantes|issants|isse|issent|isses|issez|issiez|issions|issons|it)$/i;
+        if(word.search(b1Regex) >= rvIndex){
+            word = word.replace(b1Regex,'$1');
+        }
+    }
+
+    /* Step 2b:  Other verb suffixes*/
+    if (step2aDone && wordStep1 == word) {
+        if (word.search(/(ions)$/) >= r2Index) {
+            word = word.replace(/(ions)$/, '');
+        } else {
+            var b2Regex = /(é|ée|ées|és|èrent|er|era|erai|eraIent|erais|erait|eras|erez|eriez|erions|erons|eront|ez|iez)$/i;
+            if (word.search(b2Regex) >= rvIndex) {
+                word = word.replace(b2Regex, '');
+            } else {
+                var b3Regex = /e(âmes|ât|âtes|a|ai|aIent|ais|ait|ant|ante|antes|ants|as|asse|assent|asses|assiez|assions)$/i;
+                if (word.search(b3Regex) >= rvIndex) {
+                    word = word.replace(b3Regex, '');
+                } else {
+                    var b3Regex2 = /(âmes|ât|âtes|a|ai|aIent|ais|ait|ant|ante|antes|ants|as|asse|assent|asses|assiez|assions)$/i;
+                    if (word.search(b3Regex2) >= rvIndex) {
+                        word = word.replace(b3Regex2, '');
+                    }
+                }
+            }
+        }
+    }
+    
+    if(oriWord != word.toLowerCase()){
+        /* Step 3 */
+        var rep = '';
+        if(word.search(/Y$/) != -1) {
+            word = word.replace(/Y$/, 'i');
+        } else if(word.search(/ç$/) != -1){
+            word = word.replace(/ç$/, 'c');
+        }
+    } else {
+        /* Step 4 */
+        //If the word ends s, not preceded by a, i, o, u, è or s, delete it.
+        if (word.search(/([^aiouès])s$/) >= rvIndex) {
+            word = word.replace(/([^aiouès])s$/, '$1');
+        }
+        var e1Index = word.search(/ion$/);
+        if (e1Index >= r2Index && word.search(/[st]ion$/) >= rvIndex) {
+            word = word.substring(0, e1Index);
+        } else {
+            var e2Index = word.search(/(ier|ière|Ier|Ière)$/);
+            if (e2Index != -1 && e2Index >= rvIndex) {
+                word = word.substring(0, e2Index) + "i";
+            } else {
+                if (word.search(/e$/) >= rvIndex) {
+                    word = word.replace(/e$/, '');   //delete last e
+                } else if (word.search(/guë$/) >= rvIndex) {
+                    word = word.replace(/guë$/, 'gu');
+                }
+            }
+        }
+    }
+    
+    /* Step 5: Undouble */
+    //word = word.replace(/(en|on|et|el|eil)(n|t|l)$/,'$1');
+    word = word.replace(/(en|on)(n)$/,'$1');
+    word = word.replace(/(ett)$/,'et');
+    word = word.replace(/(el|eil)(l)$/,'$1');
+
+    /* Step 6: Un-accent */
+    word = word.replace(/[éè]([^aeiouyâàëéêèïîôûù]+)$/,'e$1');
+    word = word.toLowerCase();
+    return word;
+};
+
+var eqOut = new Array();
+var noteqOut = new Array();
+var eqCount = 0;
+/*
+To test the stemming, create two arrays named "voc" and "COut" which are for vocabualary and the stemmed output.
+Then add the vocabulary strings and output strings. This method will generate the stemmed output for "voc" and will
+compare the output with COut.
+ (I used porter's voc and out files and did a regex to convert them to js objects. regex: /");\nvoc.push("/g . This
+  will add strings to voc array such that output would look like: voc.push("foobar"); ) drop me an email for any help.
+ */
+function testFr(){
+    var start = new Date().getTime(); //execution time
+    eqCount = 0;
+    eqOut = new Array();
+    noteqOut = new Array();
+    for(var k=0;k<voc.length;k++){
+        if(COut[k]==stemmer(voc[k])){
+            eqCount++;
+            eqOut.push("v: "+voc[k]+" c: "+COut[k]);    
+        } else {
+            noteqOut.push(voc[k]+", c: "+COut[k]+" s:"+stemmer(voc[k]));
+        }
+    }
+    var end = new Date().getTime(); //execution time
+    var time = end-start;
+    alert("equal count= "+eqCount+" out of "+voc.length+" words. time= "+time+" ms");
+    //console.log("equal count= "+eqCount+" out of "+voc.length+" words. time= "+time+" ms");
+}
+
+
diff --git a/applications/content/template/docbook/webhelp/template/favicon.ico b/applications/content/template/docbook/webhelp/template/favicon.ico
new file mode 100644
index 0000000..38c0ce3
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/template/favicon.ico
Binary files differ
diff --git a/applications/content/template/docbook/webhelp/xsl/ofbiz-common.xsl b/applications/content/template/docbook/webhelp/xsl/ofbiz-common.xsl
new file mode 100644
index 0000000..fd072f1
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/xsl/ofbiz-common.xsl
@@ -0,0 +1,925 @@
+<!-- 
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<xsl:stylesheet
+        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+        xmlns:exsl="http://exslt.org/common"
+        xmlns:ng="http://docbook.org/docbook-ng" 
+        xmlns:db="http://docbook.org/ns/docbook"
+        version="1.0" xmlns="http://www.w3.org/1999/xhtml"
+    exclude-result-prefixes="exsl ng db">
+
+<!-- ********************************************************************
+     $Id$
+     ******************************************************************** 
+
+     This file is part customization layer on top of the XSL DocBook
+     Stylesheet distribution that generates webhelp output.
+
+     ******************************************************************** -->
+
+    <xsl:param name="chunker.output.method">
+        <xsl:choose>
+            <xsl:when test="contains(system-property('xsl:vendor'), 'SAXON 6')">saxon:xhtml</xsl:when>
+            <xsl:otherwise>html</xsl:otherwise>
+        </xsl:choose>
+    </xsl:param>
+
+<!-- ASL2 inserted in all compiled HTML files -->
+   <xsl:template name="user.preroot">
+      <xsl:comment>
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+      </xsl:comment>
+    </xsl:template>
+
+    <xsl:param name="doc.title">
+      <xsl:call-template name="get.doc.title"/>
+    </xsl:param>
+
+    <!-- Set some reasonable defaults for webhelp output -->
+    <xsl:param name="chunker.output.indent">yes</xsl:param>
+    <xsl:param name="navig.showtitles">0</xsl:param>
+    <xsl:param name="manifest.in.base.dir" select="0"/>
+    <xsl:param name="base.dir" select="concat($webhelp.base.dir,'/content/')"/>
+    <xsl:param name="suppress.navigation">0</xsl:param>
+    <!-- Generate the end-of-the-book index -->
+    <xsl:param name="generate.index" select="1"/>
+    <xsl:param name="inherit.keywords" select="'0'"/>
+    <xsl:param name="para.propagates.style" select="1"/>
+    <xsl:param name="phrase.propagates.style" select="1"/>
+    <xsl:param name="chunk.first.sections" select="1"/>
+    <xsl:param name="chunk.section.depth" select="3"/>
+    <xsl:param name="use.id.as.filename" select="1"/>
+    <xsl:param name="branding">not set</xsl:param>
+    <xsl:param name="brandname"> </xsl:param>
+
+    <xsl:param name="section.autolabel" select="0"/>
+    <xsl:param name="chapter.autolabel" select="0"/>
+    <xsl:param name="appendix.autolabel" select="0"/>
+    <xsl:param name="qandadiv.autolabel" select="0"/>
+    <xsl:param name="reference.autolabel" select="0"/>
+    <xsl:param name="part.autolabel" select="0"/>    
+    <xsl:param name="section.label.includes.component.label" select="1"/>
+
+    <xsl:param name="generate.section.toc.level" select="5"/>
+    <xsl:param name="component.label.includes.part.label" select="1"/>
+    <xsl:param name="suppress.footer.navigation">0</xsl:param>
+    <xsl:param name="callout.graphics.path"><xsl:value-of select="$webhelp.common.dir"/>images/callouts/</xsl:param>
+    <xsl:param name="callouts.extension">1</xsl:param>
+    <xsl:param name="admon.graphics.path"><xsl:value-of select="$webhelp.common.dir"/>images/admon/</xsl:param>
+    <xsl:param name="admon.graphics" select="0"/>
+    <!--xsl:param name="generate.toc">book toc</xsl:param-->
+
+<xsl:param name="generate.toc">
+appendix  toc,title
+article/appendix  nop
+article   toc,title
+book      title,figure,table,example,equation
+chapter   toc,title
+part      toc,title
+preface   toc,title
+qandadiv  toc
+qandaset  toc
+reference toc,title
+sect1     toc
+sect2     toc
+sect3     toc
+sect4     toc
+sect5     toc
+section   toc
+set       toc,title
+</xsl:param>
+
+    <!-- Localizations of webhelp specific words. Your contributions for other languages are appreciated.
+    Currently, only around 10 translations needed. -->
+    <!-- Moved to files under 'gentext/locale/', search for WebHelp -->
+    
+
+  <xsl:template name="system.head.content">
+  <xsl:param name="node" select="."/>
+<xsl:text>
+</xsl:text>
+<!-- 
+This avoids two problems in IE 8. We should someday figure out why this is happening and tweak the JavaScript so this <meta/> tag is not necessary:
+1. When you perform a search and click the Toggle Highlight button, IE 8 adds a line break before the highlighted word.
+2. If you click the show/hide toc button, the tab crashes.
+These problems go away when you add this IE=7 mode meta tag.
+ -->
+    <meta http-equiv="X-UA-Compatible" content="IE=7" />
+<xsl:text>
+</xsl:text>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<xsl:text>
+</xsl:text>
+  </xsl:template>
+
+    <!-- HTML <head> section customizations --> 
+    <xsl:template name="user.head.content">
+        <!--  <xsl:message>
+            webhelp.tree.cookie.id = <xsl:value-of select="$webhelp.tree.cookie.id"/> +++ <xsl:value-of select="count(//node())"/>
+            $webhelp.indexer.language = <xsl:value-of select="$webhelp.indexer.language"/> +++ <xsl:value-of select="count(//node())"/>
+        </xsl:message>-->
+        <script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "<xsl:value-of select="$webhelp.tree.cookie.id"/>";
+            var language = "<xsl:value-of select="$webhelp.indexer.language"/>";
+            var w = new Object();
+            //Localization
+            txt_filesfound = '<xsl:call-template name="gentext.template">
+                <xsl:with-param name="name" select="'txt_filesfound'"/>
+        <xsl:with-param name="context" select="'webhelp'"/>
+                </xsl:call-template>';
+            txt_enter_at_least_1_char = "<xsl:call-template name="gentext.template">
+                <xsl:with-param name="name" select="'txt_enter_at_least_1_char'"/>
+        <xsl:with-param name="context" select="'webhelp'"/>
+                </xsl:call-template>";
+            txt_browser_not_supported = "<xsl:call-template name="gentext.template">
+                <xsl:with-param name="name" select="'txt_browser_not_supported'"/>
+        <xsl:with-param name="context" select="'webhelp'"/>
+                </xsl:call-template>";
+            txt_please_wait = "<xsl:call-template name="gentext.template">
+                <xsl:with-param name="name" select="'txt_please_wait'"/>
+        <xsl:with-param name="context" select="'webhelp'"/>
+                </xsl:call-template>";
+            txt_results_for = "<xsl:call-template name="gentext.template">
+                <xsl:with-param name="name" select="'txt_results_for'"/>
+        <xsl:with-param name="context" select="'webhelp'"/>
+                </xsl:call-template>";
+        </script>
+
+<!-- kasunbg: Order is important between the in-html-file css and the linked css files. Some css declarations in jquery-ui-1.8.2.custom.css are over-ridden. 
+     If that's a concern, just remove the additional css contents inside these default jquery css files. I thought of keeping them intact for easier maintenance! -->
+    <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"/>
+        <link rel="stylesheet" type="text/css" href="{$webhelp.common.dir}css/ofbiz_positioning.css"/>
+        <link rel="stylesheet" type="text/css" href="{$webhelp.common.dir}jquery/theme-redmond/jquery-ui-1.8.2.custom.css"/>
+        <link rel="stylesheet" type="text/css" href="{$webhelp.common.dir}jquery/treeview/jquery.treeview.css"/>
+
+        <style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(<xsl:value-of select="$webhelp.common.dir"/>jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(<xsl:value-of select="$webhelp.common.dir"/>images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(<xsl:value-of select="$webhelp.common.dir"/>images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}       
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none;    
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style>
+
+    <!-- 
+         browserDetect is an Oxygen addition to warn the user if they're using chrome from the file system.
+         This breaks the Oxygen search highlighting.
+    -->
+    <script type="text/javascript" src="{$webhelp.common.dir}browserDetect.js">
+            <xsl:comment> </xsl:comment>
+    </script>
+        <script type="text/javascript" src="{$webhelp.common.dir}jquery/jquery-1.4.2.min.js">
+            <xsl:comment> </xsl:comment>
+        </script>
+        <script type="text/javascript" src="{$webhelp.common.dir}jquery/jquery-ui-1.8.2.custom.min.js">
+            <xsl:comment> </xsl:comment>
+        </script>
+        <script type="text/javascript" src="{$webhelp.common.dir}jquery/jquery.cookie.js">
+            <xsl:comment> </xsl:comment>
+        </script>
+        <script type="text/javascript" src="{$webhelp.common.dir}jquery/treeview/jquery.treeview.min.js">
+            <xsl:comment> </xsl:comment>
+        </script>
+
+    <xsl:if test="$webhelp.include.search.tab = 'true'">
+      <!--Scripts/css stylesheets for Search-->
+      <!-- TODO: Why THREE files? There's absolutely no need for having separate files. 
+        These should have been identified at the optimization phase! --> 
+      <script type="text/javascript" src="search/l10n.js">
+        <xsl:comment></xsl:comment>
+      </script>
+      <script type="text/javascript" src="search/htmlFileInfoList.js">
+          <xsl:comment> </xsl:comment>
+      </script>
+      <script type="text/javascript" src="search/nwSearchFnt.js">
+          <xsl:comment> </xsl:comment>
+      </script>
+
+      <!--
+         NOTE: Stemmer javascript files should be in format <language>_stemmer.js.
+         For example, for English(en), source should be: "search/stemmers/en_stemmer.js"
+         For country codes, see: http://www.uspto.gov/patft/help/helpctry.htm
+      -->
+      <!--<xsl:message><xsl:value-of select="concat('search/stemmers/',$webhelp.indexer.language,'_stemmer.js')"/></xsl:message>-->
+      <script type="text/javascript" src="{concat('search/stemmers/',$webhelp.indexer.language,'_stemmer.js')}">
+          <xsl:comment>//make this scalable to other languages as well.</xsl:comment>
+      </script>
+
+      <!--Index Files:
+          Index is broken in to three equal sized(number of index items) files. This is to help parallel downloading
+          of files to make it faster.
+        TODO: Generate webhelp index for largest docbook document that can be find, and analyze the file sizes.
+        IF the file size is still around ~50KB for a given file, we should consider merging these files together. again.        
+      -->
+      <script type="text/javascript" src="search/index-1.js">
+          <xsl:comment> </xsl:comment>
+      </script>
+      <script type="text/javascript" src="search/index-2.js">
+          <xsl:comment> </xsl:comment>
+      </script>
+      <script type="text/javascript" src="search/index-3.js">
+          <xsl:comment> </xsl:comment>
+      </script>
+      <!--End of index files -->
+    </xsl:if>
+    <xsl:call-template name="user.webhelp.head.content"/>
+    </xsl:template>
+
+    <!-- This is for the USERS. Users who want to customize webhelp may over-ride this template to add content to <head>. -->
+    <xsl:template name="user.webhelp.head.content"/>
+
+    <xsl:template name="user.header.navigation">
+        <xsl:param name="prev"/>
+        <xsl:param name="next"/>
+        <xsl:param name="nav.context"/>
+        <xsl:call-template name="webhelpheader">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+            <xsl:with-param name="nav.context" select="$nav.context"/>
+        </xsl:call-template>
+        <!--xsl:call-template name="webhelptoc"/-->
+
+        <!--testing toc in the content page>
+        <xsl:call-template name="webhelptoctoc"/>
+        <xsl:if test="$webhelp.include.search.tab != 'false'">
+            <xsl:call-template name="search"/>
+        </xsl:if-->
+    </xsl:template>
+
+    <xsl:template name="user.header.content">
+        <xsl:comment> <!-- KEEP this code. --> </xsl:comment>
+    </xsl:template>
+
+    <xsl:template name="user.footer.navigation">
+        <xsl:call-template name="webhelptoc">
+          <xsl:with-param name="currentid" select="generate-id(.)"/>
+         </xsl:call-template>
+    </xsl:template>
+
+  <xsl:template match="/">
+    <xsl:message>language: <xsl:value-of select="$webhelp.indexer.language"/> </xsl:message>
+    <!-- * Get a title for current doc so that we let the user -->
+    <!-- * know what document we are processing at this point. -->
+    <xsl:choose>
+      <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+      toss the namespace and continue.  Use the docbook5 namespaced
+      stylesheets for DocBook5 if you don't want to use this feature.-->
+      <!-- include extra test for Xalan quirk -->
+      <xsl:when test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">
+        <xsl:call-template name="log.message">
+          <xsl:with-param name="level">Note</xsl:with-param>
+          <xsl:with-param name="source" select="$doc.title"/>
+          <xsl:with-param name="context-desc">
+            <xsl:text>namesp. cut</xsl:text>
+          </xsl:with-param>
+          <xsl:with-param name="message">
+            <xsl:text>stripped namespace before processing</xsl:text>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:variable name="nons">
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:variable>
+        <!--
+        <xsl:message>Saving stripped document.</xsl:message>
+        <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="'/tmp/stripped.xml'"/>
+        <xsl:with-param name="method" select="'xml'"/>
+        <xsl:with-param name="content">
+        <xsl:copy-of select="exsl:node-set($nons)"/>
+      </xsl:with-param>
+      </xsl:call-template>
+        -->
+        <xsl:call-template name="log.message">
+          <xsl:with-param name="level">Note</xsl:with-param>
+          <xsl:with-param name="source" select="$doc.title"/>
+          <xsl:with-param name="context-desc">
+            <xsl:text>namesp. cut</xsl:text>
+          </xsl:with-param>
+          <xsl:with-param name="message">
+            <xsl:text>processing stripped document</xsl:text>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:apply-templates select="exsl:node-set($nons)"/>
+      </xsl:when>
+      <!-- Can't process unless namespace removed -->
+      <xsl:when test="*/self::ng:* or */self::db:*">
+        <xsl:message terminate="yes">
+          <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+          <xsl:text> cannot proceed.</xsl:text>
+        </xsl:message>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="$rootid != ''">
+            <xsl:choose>
+              <xsl:when test="count(key('id',$rootid)) = 0">
+                <xsl:message terminate="yes">
+                  <xsl:text>ID '</xsl:text>
+                  <xsl:value-of select="$rootid"/>
+                  <xsl:text>' not found in document.</xsl:text>
+                </xsl:message>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                  <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+                </xsl:if>
+                <xsl:if test="$collect.xref.targets != 'only'">
+                  <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/>
+                  <xsl:if test="$tex.math.in.alt != ''">
+                    <xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/>
+                                  </xsl:if>
+                </xsl:if>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+              <xsl:apply-templates select="/" mode="collect.targets"/>
+            </xsl:if>
+            <xsl:if test="$collect.xref.targets != 'only'">
+              <xsl:apply-templates select="/" mode="process.root"/>
+              <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="/" mode="collect.tex.math"/>
+            </xsl:if>
+          </xsl:if>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+    
+    <xsl:call-template name="index.html"/>
+
+    <xsl:call-template name="l10n.js"/>
+    </xsl:template>
+
+
+    <!-- The WebHelp output structure. similar to main() method.
+    basic format:
+    <html>
+        <head> calls-appropriate-template </head>
+        <body> 
+               some-generic-content
+               <div id="content"> 
+                    All your docbook document content goes here
+                ....
+               </div>
+               some-other-generic-content-at-footer     
+        </body>
+    </html>
+    --> 
+    <xsl:template name="chunk-element-content">
+        <xsl:param name="prev"/>
+        <xsl:param name="next"/>
+        <xsl:param name="nav.context"/>
+        <xsl:param name="content">
+            <xsl:apply-imports/>
+        </xsl:param>
+
+        <xsl:call-template name="user.preroot"/>
+
+        <html>
+            <xsl:call-template name="html.head">
+                <xsl:with-param name="prev" select="$prev"/>
+                <xsl:with-param name="next" select="$next"/>
+            </xsl:call-template>
+
+            <body>
+                <xsl:call-template name="body.attributes"/>
+
+                <xsl:call-template name="user.header.navigation">
+                    <xsl:with-param name="prev" select="$prev"/>
+                    <xsl:with-param name="next" select="$next"/>
+                    <xsl:with-param name="nav.context" select="$nav.context"/>
+                </xsl:call-template>
+
+                <div id="content">
+                     <noscript>
+               <xsl:call-template name="gentext.template">
+             <xsl:with-param name="name" select="'txt_browser_not_supported'"/>
+             <xsl:with-param name="context" select="'webhelp'"/>
+               </xsl:call-template>
+             </noscript>
+                    <xsl:call-template name="user.header.content"/>
+
+                    <xsl:copy-of select="$content"/>
+
+                    <xsl:call-template name="user.footer.content"/>
+
+                    <!-- Redundant since the upper navigation bar always visible -->
+                    <xsl:call-template name="footer.navigation">
+                        <xsl:with-param name="prev" select="$prev"/>
+                        <xsl:with-param name="next" select="$next"/>
+                        <xsl:with-param name="nav.context" select="$nav.context"/>
+                    </xsl:call-template>
+
+            <xsl:call-template name="user.webhelp.content.footer"/>
+                </div>
+
+                <xsl:call-template name="user.footer.navigation"/>
+            </body>
+        </html>
+        <xsl:value-of select="$chunk.append"/>
+    </xsl:template>
+
+    <!-- This is for the USERS. Users who want to customize webhelp may over-ride this template to add content to the footer of the content DIV. 
+     i.e. within <div id="content"> ... </div> -->
+    <xsl:template name="user.webhelp.content.footer"/>
+
+    <!-- The Header with the company logo -->
+    <xsl:template name="webhelpheader">
+        <xsl:param name="prev"/>
+        <xsl:param name="next"/>
+        <xsl:param name="nav.context"/>
+
+        <xsl:variable name="home" select="/*[1]"/>
+        <xsl:variable name="up" select="parent::*"/>
+
+        <div id="header">
+        <xsl:call-template name="webhelpheader.logo"/>
+            <!-- Display the page title and the main heading(parent) of it-->
+            <h1>
+              <xsl:apply-templates select="/*[1]" mode="title.markup"/>
+          <br/>
+                <xsl:choose>
+                    <xsl:when
+            test="count($up) &gt; 0 and generate-id($up) != generate-id($home)">
+              <xsl:apply-templates select="$up" mode="object.title.markup"/>
+            </xsl:when>
+            <xsl:when test="not(generate-id(.) = generate-id(/*))">
+              <xsl:apply-templates select="." mode="object.title.markup"/>
+            </xsl:when>
+                    <xsl:otherwise>&#160;</xsl:otherwise>
+                </xsl:choose>
+        </h1>
+            <!-- Prev and Next links generation-->
+            <div id="navheader">
+          <xsl:call-template name="user.webhelp.navheader.content"/>
+                <xsl:comment>
+                    <!-- KEEP this code. In case of neither prev nor next links are available, this will help to
+                        keep the integrity of the DOM tree-->
+                </xsl:comment>
+                <!--xsl:with-param name="prev" select="$prev"/>
+                <xsl:with-param name="next" select="$next"/>
+                <xsl:with-param name="nav.context" select="$nav.context"/-->
+                <table class="navLinks">
+                    <tr>
+                        <td>
+                            <a id="showHideButton" href="javascript:showHideToc();"
+                                class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a>
+                        </td>
+                        <xsl:if test="count($prev) &gt; 0
+                            or (count($up) &gt; 0
+                            and generate-id($up) != generate-id($home)
+                            and $navig.showtitles != 0)
+                            or count($next) &gt; 0">
+                            <td>
+                                <xsl:if test="count($prev)>0">
+                                    <a accesskey="p" class="navLinkPrevious" tabindex="5">
+                                        <xsl:attribute name="href">
+                                            <xsl:call-template name="href.target">
+                                                <xsl:with-param name="object" select="$prev"/>
+                                            </xsl:call-template>
+                                        </xsl:attribute>
+                                        <xsl:call-template name="navig.content">
+                                            <xsl:with-param name="direction" select="'prev'"/>
+                                        </xsl:call-template>
+                                    </a>
+                                </xsl:if>
+
+                                <!-- "Up" link-->
+                                <xsl:choose>
+                                    <xsl:when test="count($up)&gt;0
+                                              and generate-id($up) != generate-id($home)">
+                                        |
+                                        <a accesskey="u" class="navLinkUp" tabindex="5">
+                                            <xsl:attribute name="href">
+                                                <xsl:call-template name="href.target">
+                                                    <xsl:with-param name="object" select="$up"/>
+                                                </xsl:call-template>
+                                            </xsl:attribute>
+                                            <xsl:call-template name="navig.content">
+                                                <xsl:with-param name="direction" select="'up'"/>
+                                            </xsl:call-template>
+                                        </a>
+                                    </xsl:when>
+                                    <xsl:otherwise>&#160;</xsl:otherwise>
+                                </xsl:choose>
+                                
+                                <xsl:if test="count($next)>0">
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5">
+                                        <xsl:attribute name="href">
+                                            <xsl:call-template name="href.target">
+                                                <xsl:with-param name="object" select="$next"/>
+                                            </xsl:call-template>
+                                        </xsl:attribute>
+                                        <xsl:call-template name="navig.content">
+                                            <xsl:with-param name="direction" select="'next'"/>
+                                        </xsl:call-template>
+                                    </a>
+                                </xsl:if>
+                            </td>
+                        </xsl:if>
+                    </tr>
+                </table>
+            </div>
+        </div>
+    </xsl:template>
+
+    <xsl:template name="webhelpheader.logo">
+    <a target="_blank">
+        <xsl:attribute name="href">
+        <xsl:choose>
+            <xsl:when test="$branding = 'docbook'">http://ofbiz.org/</xsl:when>
+            <xsl:otherwise>#</xsl:otherwise>
+        </xsl:choose>
+        </xsl:attribute>
+    <img style='margin-right: 2px; padding-right: 25px; padding-top: 8px' align="right"
+        src='{$webhelp.common.dir}images/logo.gif' alt="{$brandname} Documentation"/>
+    </a>
+    </xsl:template>
+
+    <xsl:template name="user.webhelp.navheader.content"/>
+
+    <xsl:template name="webhelptoc">
+        <xsl:param name="currentid"/>
+        <xsl:choose>
+            <xsl:when test="$rootid != ''">
+                <xsl:variable name="title">
+                    <xsl:if test="$webhelp.autolabel=1">
+                        <xsl:variable name="label.markup">
+                            <xsl:apply-templates select="key('id',$rootid)" 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="key('id',$rootid)" mode="titleabbrev.markup"/>
+                </xsl:variable>
+                <xsl:variable name="href">
+                    <xsl:choose>
+                        <xsl:when test="$manifest.in.base.dir != 0">
+                            <xsl:call-template name="href.target">
+                                <xsl:with-param name="object" select="key('id',$rootid)"/>
+                            </xsl:call-template>
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <xsl:call-template name="href.target.with.base.dir">
+                                <xsl:with-param name="object" select="key('id',$rootid)"/>
+                            </xsl:call-template>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </xsl:variable>
+            </xsl:when>
+
+            <xsl:otherwise>
+                <xsl:variable name="title">
+                    <xsl:if test="$webhelp.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="titleabbrev.markup"/>
+                </xsl:variable>
+                <xsl:variable name="href">
+                    <xsl:choose>
+                        <xsl:when test="$manifest.in.base.dir != 0">
+                            <xsl:call-template name="href.target">
+                                <xsl:with-param name="object" select="/"/>
+                            </xsl:call-template>
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <xsl:call-template name="href.target.with.base.dir">
+                                <xsl:with-param name="object" select="/"/>
+                            </xsl:call-template>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </xsl:variable>
+
+                <div id="sidebar"> <!--#sidebar id is used for showing and hiding the side bar -->
+                    <div id="leftnavigation" style="padding-top:3px;">
+                        <div id="tabs">
+                            <ul>
+                                <li>
+                                    <a href="#treeDiv" style="outline:0;" tabindex="1">
+                                        <span class="contentsTab">
+                                            <xsl:call-template name="gentext.template">
+                                                <xsl:with-param name="name" select="'TableofContents'"/>
+                        <xsl:with-param name="context" select="'webhelp'"/>
+                                            </xsl:call-template>
+                                        </span>
+                                    </a>
+                                </li>
+                                <xsl:if test="$webhelp.include.search.tab != 'false'">
+                                    <li>
+                                        <a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()">
+                                            <span class="searchTab">
+                                                <xsl:call-template name="gentext.template">
+                                                    <xsl:with-param name="name" select="'Search'"/>
+                            <xsl:with-param name="context" select="'webhelp'"/>
+                                                </xsl:call-template>
+                                            </span>
+                                        </a>
+                                    </li>
+                                </xsl:if>
+                <xsl:call-template name="user.webhelp.tabs.title"/>
+                            </ul>
+                            <div id="treeDiv">
+                                <img src="{$webhelp.common.dir}images/loading.gif" alt="loading table of contents..."
+                                     id="tocLoading" style="display:block;"/>
+                                <div id="ulTreeDiv" style="display:none">
+                                    <ul id="tree" class="filetree">
+                                        <xsl:apply-templates select="/*/*" mode="webhelptoc">
+                                            <xsl:with-param name="currentid" select="$currentid"/>
+                                        </xsl:apply-templates>
+                                    </ul>
+                                </div>
+
+                            </div>
+                            <xsl:if test="$webhelp.include.search.tab != 'false'">
+                                <div id="searchDiv">
+                                    <div id="search">
+                                        <form onsubmit="Verifie(searchForm);return false"
+                                              name="searchForm"
+                                              class="searchForm">
+                                            <fieldset class="searchFieldSet">
+                                                <legend>
+                                                    <xsl:call-template name="gentext.template">
+                                                        <xsl:with-param name="name" select="'Search'"/>
+                            <xsl:with-param name="context" select="'webhelp'"/>
+                                                    </xsl:call-template>
+                                                </legend>
+                                                <center>
+                                                    <input id="textToSearch" name="textToSearch" type="search" 
+                                                           class="searchText" tabindex="1"/>
+                                                    <xsl:text disable-output-escaping="yes"> <![CDATA[&nbsp;]]> </xsl:text>
+                                                    <input onclick="Verifie(searchForm)" type="button"
+                                                           class="searchButton"
+                                                           value="Go" id="doSearch" tabindex="1"/>
+                                                </center>
+                                            </fieldset>
+                                        </form>
+                                    </div>
+                                    <div id="searchResults">
+                                           <center> </center>
+                                    </div>
+                                    <p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p>
+                                </div>
+                            </xsl:if>
+                <xsl:call-template name="user.webhelp.tabs.content"/>
+                        </div>
+                    </div>
+                </div>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+
+    <!-- Hooks for adding customs tabs -->
+    <xsl:template name="user.webhelp.tabs.title"/>
+    <xsl:template name="user.webhelp.tabs.content"/>
+
+    <!-- Generates the webhelp table-of-contents (TOC). -->
+    <xsl:template
+            match="book|part|reference|preface|chapter|bibliography|appendix|article|topic|glossary|section|simplesect|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv|index|setindex"
+            mode="webhelptoc">
+        <xsl:param name="currentid"/>
+        <xsl:variable name="title">
+            <xsl:if test="$webhelp.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="titleabbrev.markup"/>
+        </xsl:variable>
+
+        <xsl:variable name="href">
+            <xsl:choose>
+                <xsl:when test="$manifest.in.base.dir != 0">
+                    <xsl:call-template name="href.target"/>
+                </xsl:when>
+                <xsl:otherwise>
+                    <xsl:call-template name="href.target.with.base.dir"/>
+                </xsl:otherwise>
+            </xsl:choose>
+        </xsl:variable>
+
+        <xsl:variable name="id" select="generate-id(.)"/>
+
+        <xsl:if test="not(self::index) or (self::index and not($generate.index = 0))">
+            <!--li style="white-space: pre; line-height: 0em;"-->
+            <li>
+                <xsl:if test="$id = $currentid">
+                    <xsl:attribute name="id">webhelp-currentid</xsl:attribute>
+                </xsl:if>
+                <span class="file">
+                    <a href="{substring-after($href, $base.dir)}"  tabindex="1">
+                        <xsl:value-of select="$title"/>
+                    </a>
+                </span>
+                <xsl:if test="part|reference|preface|chapter|bibliography|appendix|article|topic|glossary|section|simplesect|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv">
+                    <ul>
+                        <xsl:apply-templates
+                                select="part|reference|preface|chapter|bibliography|appendix|article|topic|glossary|section|simplesect|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv"
+                                mode="webhelptoc">
+                            <xsl:with-param name="currentid" select="$currentid"/>
+                        </xsl:apply-templates>
+                    </ul>
+                </xsl:if>
+            </li>
+        </xsl:if>
+    </xsl:template>
+
+    <xsl:template match="text()" mode="webhelptoc"/>
+
+    <xsl:template name="user.footer.content">
+        <script type="text/javascript" src="{$webhelp.common.dir}main.js">
+            <xsl:comment> </xsl:comment>
+        </script>
+    </xsl:template>
+ 
+    <!-- Generates index.html file at docs/. This is simply a redirection to content/$default.topic --> 
+    <xsl:template name="index.html">
+        <xsl:variable name="default.topic">
+            <xsl:choose>
+                <xsl:when test="$webhelp.default.topic != ''">
+                    <xsl:value-of select="$webhelp.default.topic"/>
+                </xsl:when>
+                <xsl:when test="$htmlhelp.default.topic != ''">
+                    <xsl:value-of select="$htmlhelp.default.topic"/>
+                </xsl:when>
+                <xsl:otherwise>
+                    <xsl:call-template name="make-relative-filename">
+                        <xsl:with-param name="base.dir"/>
+                        <xsl:with-param name="base.name">
+                            <xsl:choose>
+                                <xsl:when test="$rootid != ''">
+                                    <xsl:apply-templates select="key('id',$rootid)" mode="chunk-filename"/>
+                                </xsl:when>
+                                <xsl:otherwise>
+                                    <xsl:apply-templates
+                                            select="*/*[self::preface|self::chapter|self::appendix|self::part][1]"
+                                            mode="chunk-filename"/>
+                                </xsl:otherwise>
+                            </xsl:choose>
+                        </xsl:with-param>
+                    </xsl:call-template>
+                </xsl:otherwise>
+            </xsl:choose>
+        </xsl:variable>
+        <xsl:call-template name="write.chunk">
+            <xsl:with-param name="filename">
+                <!--       <xsl:if test="$manifest.in.base.dir != 0"> -->
+                <!--         <xsl:value-of select="$base.dir"/> -->
+                <!--       </xsl:if> -->
+                <xsl:choose>
+                    <xsl:when test="$webhelp.start.filename">
+                        <xsl:value-of select="concat($webhelp.base.dir,'/',$webhelp.start.filename)"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <xsl:value-of select="'index.html'"/>
+                    </xsl:otherwise>
+                </xsl:choose>
+            </xsl:with-param>
+            <xsl:with-param name="method" select="'xml'"/>
+            <xsl:with-param name="encoding" select="'utf-8'"/>
+            <xsl:with-param name="indent" select="'yes'"/>
+            <xsl:with-param name="content">
+                <html>
+                    <head>
+              <link rel="shortcut icon" href="favicon.ico"/>
+              <meta http-equiv="Refresh" content="1; URL=content/{$default.topic}"/>
+              <title><xsl:value-of select="//title[1]"/>&#160;</title>
+                    </head>
+                    <body>
+              If not automatically redirected, click <a href="content/{$default.topic}">content/<xsl:value-of select="$default.topic"/></a>
+                    </body>
+                </html>
+            </xsl:with-param>
+        </xsl:call-template>
+    </xsl:template>
+
+    <xsl:template name="l10n.js">
+        <xsl:call-template name="write.chunk">
+            <xsl:with-param name="filename">
+          <xsl:value-of select="concat($base.dir,'search/l10n.js')"/>
+            </xsl:with-param>
+            <xsl:with-param name="method" select="'text'"/>
+            <xsl:with-param name="encoding" select="'utf-8'"/>
+            <xsl:with-param name="indent" select="'no'"/>
+            <xsl:with-param name="content">
+          //Resource strings for localization
+          var localeresource = new Object;
+          localeresource["search_no_results"]="<xsl:call-template name="gentext.template">
+                <xsl:with-param name="name" select="'Your_search_returned_no_results'"/>
+        <xsl:with-param name="context" select="'webhelp'"/>
+                </xsl:call-template>";
+            </xsl:with-param>
+        </xsl:call-template>    
+    </xsl:template>
+
+</xsl:stylesheet> 
diff --git a/applications/content/template/docbook/webhelp/xsl/ofbiz.xsl b/applications/content/template/docbook/webhelp/xsl/ofbiz.xsl
new file mode 100644
index 0000000..c46de21
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/xsl/ofbiz.xsl
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!-- 
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+<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$
+     ******************************************************************** 
+
+     This file is part customization layer on top of the XSL DocBook
+     Stylesheet distribution that generates webhelp output.
+
+     ******************************************************************** -->
+
+<xsl:import href="../../xhtml/chunk.xsl"/>
+<xsl:include href="ofbiz-common.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/applications/content/template/docbook/webhelp/xsl/titlepage.templates.xml b/applications/content/template/docbook/webhelp/xsl/titlepage.templates.xml
new file mode 100644
index 0000000..c246429
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/xsl/titlepage.templates.xml
@@ -0,0 +1,738 @@
+<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
+             xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
+             xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="article" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="set" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="book" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="part" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="division.title"
+           param:node="ancestor-or-self::part[1]"/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </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:titlepage t:element="partintro" t:wrapper="div">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </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:titlepage t:element="reference" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="refentry" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+<!-- uncomment this if you want refentry titlepages
+    <title t:force="1"
+           t:named-template="refentry.title"
+           param:node="ancestor-or-self::refentry[1]"/>
+-->
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator/>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+  <t:titlepage t:element="dedication" t:wrapper="div" class="titlepage">
+    <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::dedication[1]"/>
+    <subtitle/>
+    </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:titlepage t:element="acknowledgements" t:wrapper="div" class="titlepage">
+    <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::acknowledgements[1]"/>
+    <subtitle/>
+    </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:titlepage t:element="preface" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </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:titlepage t:element="chapter" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </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:titlepage t:element="topic" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </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:titlepage t:element="appendix" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </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:titlepage t:element="section" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect1" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect2" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect3" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect4" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="sect5" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage t:element="simplesect" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <othercredit/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    
+  </t:titlepage-content>
+
+  <t:titlepage-content t:side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before t:side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before t:side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage t:element="bibliography" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::bibliography[1]"/>
+    <subtitle/>
+  </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:titlepage t:element="glossary" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::glossary[1]"/>
+    <subtitle/>
+  </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:titlepage t:element="index" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::index[1]"/>
+    <subtitle/>
+  </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:titlepage t:element="setindex" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:force="1"
+           t:named-template="component.title"
+           param:node="ancestor-or-self::setindex[1]"/>
+    <subtitle/>
+  </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:titlepage t:element="sidebar" t:wrapper="div" class="titlepage">
+  <t:titlepage-content t:side="recto">
+    <title
+           t:named-template="formal.object.heading"
+           param:object="ancestor-or-self::sidebar[1]"/>
+    <subtitle/>
+  </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/applications/content/template/docbook/webhelp/xsl/titlepage.templates.xsl b/applications/content/template/docbook/webhelp/xsl/titlepage.templates.xsl
new file mode 100644
index 0000000..65309ef
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/xsl/titlepage.templates.xsl
@@ -0,0 +1,3860 @@
+<?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="article.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="articleinfo/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/title"/>
+    </xsl:when>
+    <xsl:when test="artheader/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="articleinfo/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="artheader/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="article.titlepage.before.recto"/>
+      <xsl:call-template name="article.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="article.titlepage.before.verso"/>
+      <xsl:call-template name="article.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="article.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="article.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="article.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="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="set.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="setinfo/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="setinfo/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/othercredit"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="set.titlepage.before.recto"/>
+      <xsl:call-template name="set.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="set.titlepage.before.verso"/>
+      <xsl:call-template name="set.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="set.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="set.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="set.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="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="book.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="bookinfo/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="bookinfo/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/othercredit"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/legalnotice"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revision"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revhistory"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="book.titlepage.before.recto"/>
+      <xsl:call-template name="book.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="book.titlepage.before.verso"/>
+      <xsl:call-template name="book.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="book.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="book.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="book.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="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="part.titlepage.recto">
+  <div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::part[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="partinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="part.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="part.titlepage.before.recto"/>
+      <xsl:call-template name="part.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="part.titlepage.before.verso"/>
+      <xsl:call-template name="part.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="part.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="part.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="part.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="subtitle" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="partintroinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="partintroinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage">
+  <div>
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="partintro.titlepage.before.recto"/>
+      <xsl:call-template name="partintro.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="partintro.titlepage.before.verso"/>
+      <xsl:call-template name="partintro.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="partintro.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.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="partintro.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="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="referenceinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="referenceinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="reference.titlepage.before.recto"/>
+      <xsl:call-template name="reference.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="reference.titlepage.before.verso"/>
+      <xsl:call-template name="reference.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="reference.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.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="reference.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="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.recto">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="refentry.titlepage.before.recto"/>
+      <xsl:call-template name="refentry.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="refentry.titlepage.before.verso"/>
+      <xsl:call-template name="refentry.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="refentry.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="refentry.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="refentry.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 name="dedication.titlepage.recto">
+  <div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="dedicationinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="dedicationinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="dedication.titlepage.before.recto"/>
+      <xsl:call-template name="dedication.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="dedication.titlepage.before.verso"/>
+      <xsl:call-template name="dedication.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="dedication.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.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="dedication.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="subtitle" mode="dedication.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.recto">
+  <div xsl:use-attribute-sets="acknowledgements.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::acknowledgements[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="acknowledgementsinfo/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="acknowledgementsinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="acknowledgements.titlepage.before.recto"/>
+      <xsl:call-template name="acknowledgements.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="acknowledgements.titlepage.before.verso"/>
+      <xsl:call-template name="acknowledgements.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="acknowledgements.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="acknowledgements.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="acknowledgements.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="subtitle" mode="acknowledgements.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="acknowledgements.titlepage.recto.style">
+<xsl:apply-templates select="." mode="acknowledgements.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="preface.titlepage.before.recto"/>
+      <xsl:call-template name="preface.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="preface.titlepage.before.verso"/>
+      <xsl:call-template name="preface.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="preface.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.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="preface.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="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="chapterinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="chapterinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="chapter.titlepage.before.recto"/>
+      <xsl:call-template name="chapter.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="chapter.titlepage.before.verso"/>
+      <xsl:call-template name="chapter.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="chapter.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.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="chapter.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="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="topic.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="topicinfo/title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="topicinfo/subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/corpauthor"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/authorgroup"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/author"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/othercredit"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/releaseinfo"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/copyright"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/legalnotice"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/pubdate"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/revision"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/revhistory"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="topic.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="topic.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="topic.titlepage.before.recto"/>
+      <xsl:call-template name="topic.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="topic.titlepage.before.verso"/>
+      <xsl:call-template name="topic.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="topic.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="topic.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="topic.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="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="appendixinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="appendixinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="appendix.titlepage.before.recto"/>
+      <xsl:call-template name="appendix.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="appendix.titlepage.before.verso"/>
+      <xsl:call-template name="appendix.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="appendix.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.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="appendix.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="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="section.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sectioninfo/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sectioninfo/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/othercredit"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="section.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="section.titlepage.before.recto"/>
+      <xsl:call-template name="section.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="section.titlepage.before.verso"/>
+      <xsl:call-template name="section.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="section.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="section.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="section.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="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect1info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect1info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/othercredit"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect1.titlepage.before.recto"/>
+      <xsl:call-template name="sect1.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect1.titlepage.before.verso"/>
+      <xsl:call-template name="sect1.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect1.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.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="sect1.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="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect2info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect2info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/othercredit"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect2.titlepage.before.recto"/>
+      <xsl:call-template name="sect2.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect2.titlepage.before.verso"/>
+      <xsl:call-template name="sect2.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect2.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.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="sect2.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="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect3info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect3info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/othercredit"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect3.titlepage.before.recto"/>
+      <xsl:call-template name="sect3.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect3.titlepage.before.verso"/>
+      <xsl:call-template name="sect3.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect3.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.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="sect3.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="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect4info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect4info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/othercredit"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect4.titlepage.before.recto"/>
+      <xsl:call-template name="sect4.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect4.titlepage.before.verso"/>
+      <xsl:call-template name="sect4.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect4.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.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="sect4.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="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect5info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect5info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/othercredit"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect5.titlepage.before.recto"/>
+      <xsl:call-template name="sect5.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect5.titlepage.before.verso"/>
+      <xsl:call-template name="sect5.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect5.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.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="sect5.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="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revhistory"/>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="simplesect.titlepage.before.recto"/>
+      <xsl:call-template name="simplesect.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="simplesect.titlepage.before.verso"/>
+      <xsl:call-template name="simplesect.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="simplesect.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.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="simplesect.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="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.recto">
+  <div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::bibliography[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="bibliographyinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="bibliographyinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="bibliography.titlepage.before.recto"/>
+      <xsl:call-template name="bibliography.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="bibliography.titlepage.before.verso"/>
+      <xsl:call-template name="bibliography.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="bibliography.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="bibliography.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="bibliography.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="subtitle" mode="bibliography.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:apply-templates select="." mode="bibliography.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.recto">
+  <div xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::glossary[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="glossaryinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="glossaryinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="glossary.titlepage.before.recto"/>
+      <xsl:call-template name="glossary.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="glossary.titlepage.before.verso"/>
+      <xsl:call-template name="glossary.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="glossary.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="glossary.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="glossary.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="subtitle" mode="glossary.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:apply-templates select="." mode="glossary.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="index.titlepage.recto">
+  <div xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::index[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="indexinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="indexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="index.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="index.titlepage.before.recto"/>
+      <xsl:call-template name="index.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="index.titlepage.before.verso"/>
+      <xsl:call-template name="index.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="index.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="index.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="index.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="subtitle" mode="index.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:apply-templates select="." mode="index.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.recto">
+  <div xsl:use-attribute-sets="setindex.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::setindex[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="setindexinfo/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="setindexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="setindex.titlepage.before.recto"/>
+      <xsl:call-template name="setindex.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="setindex.titlepage.before.verso"/>
+      <xsl:call-template name="setindex.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="setindex.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="setindex.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="setindex.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="subtitle" mode="setindex.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="setindex.titlepage.recto.style">
+<xsl:apply-templates select="." mode="setindex.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sidebarinfo/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sidebarinfo/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sidebar.titlepage.before.recto"/>
+      <xsl:call-template name="sidebar.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sidebar.titlepage.before.verso"/>
+      <xsl:call-template name="sidebar.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sidebar.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sidebar.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="sidebar.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="sidebar.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sidebar.titlepage.recto.style">
+<xsl:call-template name="formal.object.heading">
+<xsl:with-param name="object" select="ancestor-or-self::sidebar[1]"/>
+</xsl:call-template>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sidebar.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sidebar.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sidebar.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/webhelp/xsl/webhelp-common.xsl b/applications/content/template/docbook/webhelp/xsl/webhelp-common.xsl
new file mode 100644
index 0000000..7224f6e
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/xsl/webhelp-common.xsl
@@ -0,0 +1,885 @@
+<xsl:stylesheet
+        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+        xmlns:exsl="http://exslt.org/common"
+        xmlns:ng="http://docbook.org/docbook-ng" 
+        xmlns:db="http://docbook.org/ns/docbook"
+        version="1.0" xmlns="http://www.w3.org/1999/xhtml"
+	exclude-result-prefixes="exsl ng db">
+
+<!-- ********************************************************************
+     $Id$
+     ******************************************************************** 
+
+     This file is part customization layer on top of the XSL DocBook
+     Stylesheet distribution that generates webhelp output.
+
+     ******************************************************************** -->
+
+    <xsl:param name="chunker.output.method">
+        <xsl:choose>
+            <xsl:when test="contains(system-property('xsl:vendor'), 'SAXON 6')">saxon:xhtml</xsl:when>
+            <xsl:otherwise>html</xsl:otherwise>
+        </xsl:choose>
+    </xsl:param>
+
+    <xsl:param name="doc.title">
+      <xsl:call-template name="get.doc.title"/>
+    </xsl:param>
+
+    <!-- Set some reasonable defaults for webhelp output -->
+    <xsl:param name="chunker.output.indent">yes</xsl:param>
+    <xsl:param name="navig.showtitles">0</xsl:param>
+    <xsl:param name="manifest.in.base.dir" select="0"/>
+    <xsl:param name="base.dir" select="concat($webhelp.base.dir,'/content/')"/>
+    <xsl:param name="suppress.navigation">0</xsl:param>
+    <!-- Generate the end-of-the-book index -->
+    <xsl:param name="generate.index" select="1"/>
+    <xsl:param name="inherit.keywords" select="'0'"/>
+    <xsl:param name="para.propagates.style" select="1"/>
+    <xsl:param name="phrase.propagates.style" select="1"/>
+    <xsl:param name="chunk.first.sections" select="1"/>
+    <xsl:param name="chunk.section.depth" select="3"/>
+    <xsl:param name="use.id.as.filename" select="1"/>
+    <xsl:param name="branding">not set</xsl:param>
+    <xsl:param name="brandname"> </xsl:param>
+
+    <xsl:param name="section.autolabel" select="0"/>
+    <xsl:param name="chapter.autolabel" select="0"/>
+    <xsl:param name="appendix.autolabel" select="0"/>
+    <xsl:param name="qandadiv.autolabel" select="0"/>
+    <xsl:param name="reference.autolabel" select="0"/>
+    <xsl:param name="part.autolabel" select="0"/>    
+    <xsl:param name="section.label.includes.component.label" select="1"/>
+
+    <xsl:param name="generate.section.toc.level" select="5"/>
+    <xsl:param name="component.label.includes.part.label" select="1"/>
+    <xsl:param name="suppress.footer.navigation">0</xsl:param>
+    <xsl:param name="callout.graphics.path"><xsl:value-of select="$webhelp.common.dir"/>images/callouts/</xsl:param>
+    <xsl:param name="callouts.extension">1</xsl:param>
+    <xsl:param name="admon.graphics.path"><xsl:value-of select="$webhelp.common.dir"/>images/admon/</xsl:param>
+    <xsl:param name="admon.graphics" select="0"/>
+    <!--xsl:param name="generate.toc">book toc</xsl:param-->
+
+<xsl:param name="generate.toc">
+appendix  toc,title
+article/appendix  nop
+article   toc,title
+book      title,figure,table,example,equation
+chapter   toc,title
+part      toc,title
+preface   toc,title
+qandadiv  toc
+qandaset  toc
+reference toc,title
+sect1     toc
+sect2     toc
+sect3     toc
+sect4     toc
+sect5     toc
+section   toc
+set       toc,title
+</xsl:param>
+
+    <!-- Localizations of webhelp specific words. Your contributions for other languages are appreciated.
+	Currently, only around 10 translations needed. -->
+    <!-- Moved to files under 'gentext/locale/', search for WebHelp -->
+    
+
+  <xsl:template name="system.head.content">
+  <xsl:param name="node" select="."/>
+<xsl:text>
+</xsl:text>
+<!-- 
+This avoids two problems in IE 8. We should someday figure out why this is happening and tweak the JavaScript so this <meta/> tag is not necessary:
+1. When you perform a search and click the Toggle Highlight button, IE 8 adds a line break before the highlighted word.
+2. If you click the show/hide toc button, the tab crashes.
+These problems go away when you add this IE=7 mode meta tag.
+ -->
+	<meta http-equiv="X-UA-Compatible" content="IE=7" />
+<xsl:text>
+</xsl:text>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<xsl:text>
+</xsl:text>
+  </xsl:template>
+
+    <!-- HTML <head> section customizations -->	
+    <xsl:template name="user.head.content">
+        <!--  <xsl:message>
+            webhelp.tree.cookie.id = <xsl:value-of select="$webhelp.tree.cookie.id"/> +++ <xsl:value-of select="count(//node())"/>
+            $webhelp.indexer.language = <xsl:value-of select="$webhelp.indexer.language"/> +++ <xsl:value-of select="count(//node())"/>
+        </xsl:message>-->
+        <script type="text/javascript">
+            //The id for tree cookie
+            var treeCookieId = "<xsl:value-of select="$webhelp.tree.cookie.id"/>";
+            var language = "<xsl:value-of select="$webhelp.indexer.language"/>";
+            var w = new Object();
+            //Localization
+            txt_filesfound = '<xsl:call-template name="gentext.template">
+                <xsl:with-param name="name" select="'txt_filesfound'"/>
+		<xsl:with-param name="context" select="'webhelp'"/>
+                </xsl:call-template>';
+            txt_enter_at_least_1_char = "<xsl:call-template name="gentext.template">
+                <xsl:with-param name="name" select="'txt_enter_at_least_1_char'"/>
+		<xsl:with-param name="context" select="'webhelp'"/>
+                </xsl:call-template>";
+            txt_browser_not_supported = "<xsl:call-template name="gentext.template">
+                <xsl:with-param name="name" select="'txt_browser_not_supported'"/>
+		<xsl:with-param name="context" select="'webhelp'"/>
+                </xsl:call-template>";
+            txt_please_wait = "<xsl:call-template name="gentext.template">
+                <xsl:with-param name="name" select="'txt_please_wait'"/>
+		<xsl:with-param name="context" select="'webhelp'"/>
+                </xsl:call-template>";
+            txt_results_for = "<xsl:call-template name="gentext.template">
+                <xsl:with-param name="name" select="'txt_results_for'"/>
+		<xsl:with-param name="context" select="'webhelp'"/>
+                </xsl:call-template>";
+        </script>
+
+<!-- kasunbg: Order is important between the in-html-file css and the linked css files. Some css declarations in jquery-ui-1.8.2.custom.css are over-ridden. 
+     If that's a concern, just remove the additional css contents inside these default jquery css files. I thought of keeping them intact for easier maintenance! -->
+	<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"/>
+        <link rel="stylesheet" type="text/css" href="{$webhelp.common.dir}css/positioning.css"/>
+        <link rel="stylesheet" type="text/css" href="{$webhelp.common.dir}jquery/theme-redmond/jquery-ui-1.8.2.custom.css"/>
+        <link rel="stylesheet" type="text/css" href="{$webhelp.common.dir}jquery/treeview/jquery.treeview.css"/>
+
+        <style type="text/css">
+noscript{
+      font-weight:bold;
+}
+input {
+    margin-bottom: 5px;
+    margin-top: 2px;
+}
+.folder {
+    display: block;
+    height: 22px;
+    padding-left: 20px;
+    background: transparent url(<xsl:value-of select="$webhelp.common.dir"/>jquery/treeview/images/folder.gif) 0 0px no-repeat;
+}
+span.contentsTab {
+    padding-left: 20px;
+    background: url(<xsl:value-of select="$webhelp.common.dir"/>images/toc-icon.png) no-repeat 0 center;
+}
+span.searchTab {
+    padding-left: 20px;
+    background: url(<xsl:value-of select="$webhelp.common.dir"/>images/search-icon.png) no-repeat 0 center;
+}
+
+/* Overide jquery treeview's defaults for ul. */
+.treeview ul {
+    background-color: transparent;
+    margin-top: 4px;
+}		
+#webhelp-currentid {
+    background-color: #D8D8D8 !important;
+}
+.treeview .hover { color: black; }
+.filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
+
+/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
+.ui-widget-content {
+    border: 0px; 
+    background: none; 
+    color: none;     
+}
+.ui-widget-header {
+    color: #e9e8e9;
+    border-left: 1px solid #e5e5e5;
+    border-right: 1px solid #e5e5e5;
+    border-bottom: 1px solid #bbc4c5;
+    border-top: 4px solid #e5e5e5;
+    border: medium none;
+    background: #F4F4F4; /* old browsers */
+    background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */    
+    font-weight: none;
+}
+.ui-widget-header a { color: none; }
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { 
+border: none; background: none; font-weight: none; color: none; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
+
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { 
+    color: black; text-decoration: none; 	
+    background: #C6C6C6; /* old browsers */
+    background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
+    -webkit-border-radius:15px; -moz-border-radius:10px;
+    border: 1px solid #f1f1f1;
+}    
+.ui-corner-all { border-radius: 0 0 0 0; }
+
+.ui-tabs { padding: .2em;}
+.ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
+.ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
+        </style>
+
+	<!-- 
+	     browserDetect is an Oxygen addition to warn the user if they're using chrome from the file system.
+	     This breaks the Oxygen search highlighting.
+	-->
+	<script type="text/javascript" src="{$webhelp.common.dir}browserDetect.js">
+            <xsl:comment> </xsl:comment>
+	</script>
+        <script type="text/javascript" src="{$webhelp.common.dir}jquery/jquery-1.4.2.min.js">
+            <xsl:comment> </xsl:comment>
+        </script>
+        <script type="text/javascript" src="{$webhelp.common.dir}jquery/jquery-ui-1.8.2.custom.min.js">
+            <xsl:comment> </xsl:comment>
+        </script>
+        <script type="text/javascript" src="{$webhelp.common.dir}jquery/jquery.cookie.js">
+            <xsl:comment> </xsl:comment>
+        </script>
+        <script type="text/javascript" src="{$webhelp.common.dir}jquery/treeview/jquery.treeview.min.js">
+            <xsl:comment> </xsl:comment>
+        </script>
+
+	<xsl:if test="$webhelp.include.search.tab = 'true'">
+	  <!--Scripts/css stylesheets for Search-->
+	  <!-- TODO: Why THREE files? There's absolutely no need for having separate files. 
+		These should have been identified at the optimization phase! --> 
+	  <script type="text/javascript" src="search/l10n.js">
+	    <xsl:comment></xsl:comment>
+	  </script>
+      <script type="text/javascript" src="search/htmlFileInfoList.js">
+	      <xsl:comment> </xsl:comment>
+	  </script>
+	  <script type="text/javascript" src="search/nwSearchFnt.js">
+	      <xsl:comment> </xsl:comment>
+	  </script>
+
+	  <!--
+	     NOTE: Stemmer javascript files should be in format <language>_stemmer.js.
+	     For example, for English(en), source should be: "search/stemmers/en_stemmer.js"
+	     For country codes, see: http://www.uspto.gov/patft/help/helpctry.htm
+	  -->
+	  <!--<xsl:message><xsl:value-of select="concat('search/stemmers/',$webhelp.indexer.language,'_stemmer.js')"/></xsl:message>-->
+	  <script type="text/javascript" src="{concat('search/stemmers/',$webhelp.indexer.language,'_stemmer.js')}">
+	      <xsl:comment>//make this scalable to other languages as well.</xsl:comment>
+	  </script>
+
+	  <!--Index Files:
+	      Index is broken in to three equal sized(number of index items) files. This is to help parallel downloading
+	      of files to make it faster.
+		TODO: Generate webhelp index for largest docbook document that can be find, and analyze the file sizes.
+		IF the file size is still around ~50KB for a given file, we should consider merging these files together. again.     	
+	  -->
+	  <script type="text/javascript" src="search/index-1.js">
+	      <xsl:comment> </xsl:comment>
+	  </script>
+	  <script type="text/javascript" src="search/index-2.js">
+	      <xsl:comment> </xsl:comment>
+	  </script>
+	  <script type="text/javascript" src="search/index-3.js">
+	      <xsl:comment> </xsl:comment>
+	  </script>
+	  <!--End of index files -->
+	</xsl:if>
+	<xsl:call-template name="user.webhelp.head.content"/>
+    </xsl:template>
+
+    <!-- This is for the USERS. Users who want to customize webhelp may over-ride this template to add content to <head>. -->
+    <xsl:template name="user.webhelp.head.content"/>
+
+    <xsl:template name="user.header.navigation">
+        <xsl:param name="prev"/>
+        <xsl:param name="next"/>
+        <xsl:param name="nav.context"/>
+        <xsl:call-template name="webhelpheader">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+            <xsl:with-param name="nav.context" select="$nav.context"/>
+        </xsl:call-template>
+        <!--xsl:call-template name="webhelptoc"/-->
+
+        <!--testing toc in the content page>
+        <xsl:call-template name="webhelptoctoc"/>
+        <xsl:if test="$webhelp.include.search.tab != 'false'">
+            <xsl:call-template name="search"/>
+        </xsl:if-->
+    </xsl:template>
+
+    <xsl:template name="user.header.content">
+        <xsl:comment> <!-- KEEP this code. --> </xsl:comment>
+    </xsl:template>
+
+    <xsl:template name="user.footer.navigation">
+    	<xsl:call-template name="webhelptoc">
+		  <xsl:with-param name="currentid" select="generate-id(.)"/>
+	     </xsl:call-template>
+    </xsl:template>
+
+  <xsl:template match="/">
+	<xsl:message>language: <xsl:value-of select="$webhelp.indexer.language"/> </xsl:message>
+	<!-- * Get a title for current doc so that we let the user -->
+	<!-- * know what document we are processing at this point. -->
+	<xsl:choose>
+	  <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+	  toss the namespace and continue.  Use the docbook5 namespaced
+	  stylesheets for DocBook5 if you don't want to use this feature.-->
+	  <!-- include extra test for Xalan quirk -->
+	  <xsl:when test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">
+		<xsl:call-template name="log.message">
+		  <xsl:with-param name="level">Note</xsl:with-param>
+		  <xsl:with-param name="source" select="$doc.title"/>
+		  <xsl:with-param name="context-desc">
+			<xsl:text>namesp. cut</xsl:text>
+		  </xsl:with-param>
+		  <xsl:with-param name="message">
+			<xsl:text>stripped namespace before processing</xsl:text>
+		  </xsl:with-param>
+		</xsl:call-template>
+		<xsl:variable name="nons">
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:variable>
+		<!--
+		<xsl:message>Saving stripped document.</xsl:message>
+		<xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="'/tmp/stripped.xml'"/>
+        <xsl:with-param name="method" select="'xml'"/>
+        <xsl:with-param name="content">
+		<xsl:copy-of select="exsl:node-set($nons)"/>
+	  </xsl:with-param>
+      </xsl:call-template>
+		-->
+		<xsl:call-template name="log.message">
+		  <xsl:with-param name="level">Note</xsl:with-param>
+		  <xsl:with-param name="source" select="$doc.title"/>
+		  <xsl:with-param name="context-desc">
+			<xsl:text>namesp. cut</xsl:text>
+		  </xsl:with-param>
+		  <xsl:with-param name="message">
+			<xsl:text>processing stripped document</xsl:text>
+		  </xsl:with-param>
+		</xsl:call-template>
+		<xsl:apply-templates select="exsl:node-set($nons)"/>
+	  </xsl:when>
+	  <!-- Can't process unless namespace removed -->
+	  <xsl:when test="*/self::ng:* or */self::db:*">
+		<xsl:message terminate="yes">
+		  <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+		  <xsl:text> cannot proceed.</xsl:text>
+		</xsl:message>
+	  </xsl:when>
+	  <xsl:otherwise>
+		<xsl:choose>
+		  <xsl:when test="$rootid != ''">
+			<xsl:choose>
+			  <xsl:when test="count(key('id',$rootid)) = 0">
+				<xsl:message terminate="yes">
+				  <xsl:text>ID '</xsl:text>
+				  <xsl:value-of select="$rootid"/>
+				  <xsl:text>' not found in document.</xsl:text>
+				</xsl:message>
+			  </xsl:when>
+			  <xsl:otherwise>
+				<xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+				  <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+				</xsl:if>
+				<xsl:if test="$collect.xref.targets != 'only'">
+				  <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/>
+				  <xsl:if test="$tex.math.in.alt != ''">
+					<xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/>
+                                  </xsl:if>
+				</xsl:if>
+			  </xsl:otherwise>
+			</xsl:choose>
+		  </xsl:when>
+		  <xsl:otherwise>
+			<xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+			  <xsl:apply-templates select="/" mode="collect.targets"/>
+			</xsl:if>
+			<xsl:if test="$collect.xref.targets != 'only'">
+			  <xsl:apply-templates select="/" mode="process.root"/>
+			  <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="/" mode="collect.tex.math"/>
+            </xsl:if>
+          </xsl:if>
+		  </xsl:otherwise>
+		</xsl:choose>
+	  </xsl:otherwise>
+	</xsl:choose>
+	
+	<xsl:call-template name="index.html"/>
+
+	<xsl:call-template name="l10n.js"/>
+    </xsl:template>
+
+
+    <!-- The WebHelp output structure. similar to main() method.
+	basic format:
+	<html>
+		<head> calls-appropriate-template </head>
+		<body> 
+   		       some-generic-content
+		       <div id="content"> 
+		       		All your docbook document content goes here
+				....
+		       </div>
+		       some-other-generic-content-at-footer		
+		</body>
+	</html>
+    -->	
+    <xsl:template name="chunk-element-content">
+        <xsl:param name="prev"/>
+        <xsl:param name="next"/>
+        <xsl:param name="nav.context"/>
+        <xsl:param name="content">
+            <xsl:apply-imports/>
+        </xsl:param>
+
+        <xsl:call-template name="user.preroot"/>
+
+        <html>
+            <xsl:call-template name="html.head">
+                <xsl:with-param name="prev" select="$prev"/>
+                <xsl:with-param name="next" select="$next"/>
+            </xsl:call-template>
+
+            <body>
+                <xsl:call-template name="body.attributes"/>
+
+                <xsl:call-template name="user.header.navigation">
+                    <xsl:with-param name="prev" select="$prev"/>
+                    <xsl:with-param name="next" select="$next"/>
+                    <xsl:with-param name="nav.context" select="$nav.context"/>
+                </xsl:call-template>
+
+                <div id="content">
+                     <noscript>
+		       <xsl:call-template name="gentext.template">
+			 <xsl:with-param name="name" select="'txt_browser_not_supported'"/>
+			 <xsl:with-param name="context" select="'webhelp'"/>
+		       </xsl:call-template>
+		     </noscript>
+                    <xsl:call-template name="user.header.content"/>
+
+                    <xsl:copy-of select="$content"/>
+
+                    <xsl:call-template name="user.footer.content"/>
+
+					<!-- Redundant since the upper navigation bar always visible -->
+                    <xsl:call-template name="footer.navigation">
+                        <xsl:with-param name="prev" select="$prev"/>
+                        <xsl:with-param name="next" select="$next"/>
+                        <xsl:with-param name="nav.context" select="$nav.context"/>
+                    </xsl:call-template>
+
+		    <xsl:call-template name="user.webhelp.content.footer"/>
+                </div>
+
+                <xsl:call-template name="user.footer.navigation"/>
+            </body>
+        </html>
+        <xsl:value-of select="$chunk.append"/>
+    </xsl:template>
+
+    <!-- This is for the USERS. Users who want to customize webhelp may over-ride this template to add content to the footer of the content DIV. 
+  	 i.e. within <div id="content"> ... </div> -->
+    <xsl:template name="user.webhelp.content.footer"/>
+
+    <!-- The Header with the company logo -->
+    <xsl:template name="webhelpheader">
+        <xsl:param name="prev"/>
+        <xsl:param name="next"/>
+        <xsl:param name="nav.context"/>
+
+        <xsl:variable name="home" select="/*[1]"/>
+        <xsl:variable name="up" select="parent::*"/>
+
+        <div id="header">
+  	    <xsl:call-template name="webhelpheader.logo"/>
+            <!-- Display the page title and the main heading(parent) of it-->
+            <h1>
+              <xsl:apply-templates select="/*[1]" mode="title.markup"/>
+	      <br/>
+                <xsl:choose>
+                    <xsl:when
+			test="count($up) &gt; 0 and generate-id($up) != generate-id($home)">
+		      <xsl:apply-templates select="$up" mode="object.title.markup"/>
+		    </xsl:when>
+		    <xsl:when test="not(generate-id(.) = generate-id(/*))">
+		      <xsl:apply-templates select="." mode="object.title.markup"/>
+		    </xsl:when>
+                    <xsl:otherwise>&#160;</xsl:otherwise>
+                </xsl:choose>
+	    </h1>
+            <!-- Prev and Next links generation-->
+            <div id="navheader">
+	      <xsl:call-template name="user.webhelp.navheader.content"/>
+                <xsl:comment>
+                    <!-- KEEP this code. In case of neither prev nor next links are available, this will help to
+                        keep the integrity of the DOM tree-->
+                </xsl:comment>
+                <!--xsl:with-param name="prev" select="$prev"/>
+                <xsl:with-param name="next" select="$next"/>
+                <xsl:with-param name="nav.context" select="$nav.context"/-->
+                <table class="navLinks">
+                    <tr>
+                        <td>
+                            <a id="showHideButton" href="javascript:showHideToc();"
+                                class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
+                            </a>
+                        </td>
+                        <xsl:if test="count($prev) &gt; 0
+                            or (count($up) &gt; 0
+                            and generate-id($up) != generate-id($home)
+                            and $navig.showtitles != 0)
+                            or count($next) &gt; 0">
+                            <td>
+                                <xsl:if test="count($prev)>0">
+                                    <a accesskey="p" class="navLinkPrevious" tabindex="5">
+                                        <xsl:attribute name="href">
+                                            <xsl:call-template name="href.target">
+                                                <xsl:with-param name="object" select="$prev"/>
+                                            </xsl:call-template>
+                                        </xsl:attribute>
+                                        <xsl:call-template name="navig.content">
+                                            <xsl:with-param name="direction" select="'prev'"/>
+                                        </xsl:call-template>
+                                    </a>
+                                </xsl:if>
+
+                                <!-- "Up" link-->
+                                <xsl:choose>
+                                    <xsl:when test="count($up)&gt;0
+                                              and generate-id($up) != generate-id($home)">
+                                        |
+                                        <a accesskey="u" class="navLinkUp" tabindex="5">
+                                            <xsl:attribute name="href">
+                                                <xsl:call-template name="href.target">
+                                                    <xsl:with-param name="object" select="$up"/>
+                                                </xsl:call-template>
+                                            </xsl:attribute>
+                                            <xsl:call-template name="navig.content">
+                                                <xsl:with-param name="direction" select="'up'"/>
+                                            </xsl:call-template>
+                                        </a>
+                                    </xsl:when>
+                                    <xsl:otherwise>&#160;</xsl:otherwise>
+                                </xsl:choose>
+                                
+                                <xsl:if test="count($next)>0">
+                                    |
+                                    <a accesskey="n" class="navLinkNext" tabindex="5">
+                                        <xsl:attribute name="href">
+                                            <xsl:call-template name="href.target">
+                                                <xsl:with-param name="object" select="$next"/>
+                                            </xsl:call-template>
+                                        </xsl:attribute>
+                                        <xsl:call-template name="navig.content">
+                                            <xsl:with-param name="direction" select="'next'"/>
+                                        </xsl:call-template>
+                                    </a>
+                                </xsl:if>
+                            </td>
+                        </xsl:if>
+                    </tr>
+                </table>
+            </div>
+        </div>
+    </xsl:template>
+
+    <xsl:template name="webhelpheader.logo">
+	<a target="_blank">
+	    <xsl:attribute name="href">
+		<xsl:choose>
+		    <xsl:when test="$branding = 'docbook'">http://docbook.org/</xsl:when>
+		    <xsl:otherwise>#</xsl:otherwise>
+		</xsl:choose>
+	    </xsl:attribute>
+	<img style='margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px' align="right"
+	    src='{$webhelp.common.dir}images/logo.png' alt="{$brandname} Documentation"/>
+	</a>
+    </xsl:template>
+
+    <xsl:template name="user.webhelp.navheader.content"/>
+
+    <xsl:template name="webhelptoc">
+        <xsl:param name="currentid"/>
+        <xsl:choose>
+            <xsl:when test="$rootid != ''">
+                <xsl:variable name="title">
+                    <xsl:if test="$webhelp.autolabel=1">
+                        <xsl:variable name="label.markup">
+                            <xsl:apply-templates select="key('id',$rootid)" 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="key('id',$rootid)" mode="titleabbrev.markup"/>
+                </xsl:variable>
+                <xsl:variable name="href">
+                    <xsl:choose>
+                        <xsl:when test="$manifest.in.base.dir != 0">
+                            <xsl:call-template name="href.target">
+                                <xsl:with-param name="object" select="key('id',$rootid)"/>
+                            </xsl:call-template>
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <xsl:call-template name="href.target.with.base.dir">
+                                <xsl:with-param name="object" select="key('id',$rootid)"/>
+                            </xsl:call-template>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </xsl:variable>
+            </xsl:when>
+
+            <xsl:otherwise>
+                <xsl:variable name="title">
+                    <xsl:if test="$webhelp.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="titleabbrev.markup"/>
+                </xsl:variable>
+                <xsl:variable name="href">
+                    <xsl:choose>
+                        <xsl:when test="$manifest.in.base.dir != 0">
+                            <xsl:call-template name="href.target">
+                                <xsl:with-param name="object" select="/"/>
+                            </xsl:call-template>
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <xsl:call-template name="href.target.with.base.dir">
+                                <xsl:with-param name="object" select="/"/>
+                            </xsl:call-template>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </xsl:variable>
+
+                <div id="sidebar"> <!--#sidebar id is used for showing and hiding the side bar -->
+                    <div id="leftnavigation" style="padding-top:3px;">
+                        <div id="tabs">
+                            <ul>
+                                <li>
+                                    <a href="#treeDiv" style="outline:0;" tabindex="1">
+                                        <span class="contentsTab">
+                                            <xsl:call-template name="gentext.template">
+                                                <xsl:with-param name="name" select="'TableofContents'"/>
+						<xsl:with-param name="context" select="'webhelp'"/>
+                                            </xsl:call-template>
+                                        </span>
+                                    </a>
+                                </li>
+                                <xsl:if test="$webhelp.include.search.tab != 'false'">
+                                    <li>
+                                        <a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()">
+                                            <span class="searchTab">
+                                                <xsl:call-template name="gentext.template">
+                                                    <xsl:with-param name="name" select="'Search'"/>
+						    <xsl:with-param name="context" select="'webhelp'"/>
+                                                </xsl:call-template>
+                                            </span>
+                                        </a>
+                                    </li>
+                                </xsl:if>
+				<xsl:call-template name="user.webhelp.tabs.title"/>
+                            </ul>
+                            <div id="treeDiv">
+                                <img src="{$webhelp.common.dir}images/loading.gif" alt="loading table of contents..."
+                                     id="tocLoading" style="display:block;"/>
+                                <div id="ulTreeDiv" style="display:none">
+                                    <ul id="tree" class="filetree">
+                                        <xsl:apply-templates select="/*/*" mode="webhelptoc">
+                                            <xsl:with-param name="currentid" select="$currentid"/>
+                                        </xsl:apply-templates>
+                                    </ul>
+                                </div>
+
+                            </div>
+                            <xsl:if test="$webhelp.include.search.tab != 'false'">
+                                <div id="searchDiv">
+                                    <div id="search">
+                                        <form onsubmit="Verifie(searchForm);return false"
+                                              name="searchForm"
+                                              class="searchForm">
+                                            <fieldset class="searchFieldSet">
+                                                <legend>
+                                                    <xsl:call-template name="gentext.template">
+                                                        <xsl:with-param name="name" select="'Search'"/>
+							<xsl:with-param name="context" select="'webhelp'"/>
+                                                    </xsl:call-template>
+                                                </legend>
+                                                <center>
+                                                    <input id="textToSearch" name="textToSearch" type="search" 
+                                                           class="searchText" tabindex="1"/>
+                                                    <xsl:text disable-output-escaping="yes"> <![CDATA[&nbsp;]]> </xsl:text>
+                                                    <input onclick="Verifie(searchForm)" type="button"
+                                                           class="searchButton"
+                                                           value="Go" id="doSearch" tabindex="1"/>
+                                                </center>
+                                            </fieldset>
+                                        </form>
+                                    </div>
+                                    <div id="searchResults">
+                                           <center> </center>
+                                    </div>
+                                    <p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p>
+                                </div>
+                            </xsl:if>
+			    <xsl:call-template name="user.webhelp.tabs.content"/>
+                        </div>
+                    </div>
+                </div>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+
+    <!-- Hooks for adding customs tabs -->
+    <xsl:template name="user.webhelp.tabs.title"/>
+    <xsl:template name="user.webhelp.tabs.content"/>
+
+    <!-- Generates the webhelp table-of-contents (TOC). -->
+    <xsl:template
+            match="book|part|reference|preface|chapter|bibliography|appendix|article|topic|glossary|section|simplesect|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv|index|setindex"
+            mode="webhelptoc">
+        <xsl:param name="currentid"/>
+        <xsl:variable name="title">
+            <xsl:if test="$webhelp.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="titleabbrev.markup"/>
+        </xsl:variable>
+
+        <xsl:variable name="href">
+            <xsl:choose>
+                <xsl:when test="$manifest.in.base.dir != 0">
+                    <xsl:call-template name="href.target"/>
+                </xsl:when>
+                <xsl:otherwise>
+                    <xsl:call-template name="href.target.with.base.dir"/>
+                </xsl:otherwise>
+            </xsl:choose>
+        </xsl:variable>
+
+        <xsl:variable name="id" select="generate-id(.)"/>
+
+        <xsl:if test="not(self::index) or (self::index and not($generate.index = 0))">
+            <!--li style="white-space: pre; line-height: 0em;"-->
+            <li>
+                <xsl:if test="$id = $currentid">
+                    <xsl:attribute name="id">webhelp-currentid</xsl:attribute>
+                </xsl:if>
+                <span class="file">
+                    <a href="{substring-after($href, $base.dir)}"  tabindex="1">
+                        <xsl:value-of select="$title"/>
+                    </a>
+                </span>
+                <xsl:if test="part|reference|preface|chapter|bibliography|appendix|article|topic|glossary|section|simplesect|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv">
+                    <ul>
+                        <xsl:apply-templates
+                                select="part|reference|preface|chapter|bibliography|appendix|article|topic|glossary|section|simplesect|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv"
+                                mode="webhelptoc">
+                            <xsl:with-param name="currentid" select="$currentid"/>
+                        </xsl:apply-templates>
+                    </ul>
+                </xsl:if>
+            </li>
+        </xsl:if>
+    </xsl:template>
+
+    <xsl:template match="text()" mode="webhelptoc"/>
+
+    <xsl:template name="user.footer.content">
+        <script type="text/javascript" src="{$webhelp.common.dir}main.js">
+            <xsl:comment> </xsl:comment>
+        </script>
+    </xsl:template>
+ 
+    <!-- Generates index.html file at docs/. This is simply a redirection to content/$default.topic -->	
+    <xsl:template name="index.html">
+        <xsl:variable name="default.topic">
+            <xsl:choose>
+                <xsl:when test="$webhelp.default.topic != ''">
+                    <xsl:value-of select="$webhelp.default.topic"/>
+                </xsl:when>
+                <xsl:when test="$htmlhelp.default.topic != ''">
+                    <xsl:value-of select="$htmlhelp.default.topic"/>
+                </xsl:when>
+                <xsl:otherwise>
+                    <xsl:call-template name="make-relative-filename">
+                        <xsl:with-param name="base.dir"/>
+                        <xsl:with-param name="base.name">
+                            <xsl:choose>
+                                <xsl:when test="$rootid != ''">
+                                    <xsl:apply-templates select="key('id',$rootid)" mode="chunk-filename"/>
+                                </xsl:when>
+                                <xsl:otherwise>
+                                    <xsl:apply-templates
+                                            select="*/*[self::preface|self::chapter|self::appendix|self::part][1]"
+                                            mode="chunk-filename"/>
+                                </xsl:otherwise>
+                            </xsl:choose>
+                        </xsl:with-param>
+                    </xsl:call-template>
+                </xsl:otherwise>
+            </xsl:choose>
+        </xsl:variable>
+        <xsl:call-template name="write.chunk">
+            <xsl:with-param name="filename">
+                <!--       <xsl:if test="$manifest.in.base.dir != 0"> -->
+                <!--         <xsl:value-of select="$base.dir"/> -->
+                <!--       </xsl:if> -->
+                <xsl:choose>
+                    <xsl:when test="$webhelp.start.filename">
+                        <xsl:value-of select="concat($webhelp.base.dir,'/',$webhelp.start.filename)"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <xsl:value-of select="'index.html'"/>
+                    </xsl:otherwise>
+                </xsl:choose>
+            </xsl:with-param>
+            <xsl:with-param name="method" select="'xml'"/>
+            <xsl:with-param name="encoding" select="'utf-8'"/>
+            <xsl:with-param name="indent" select="'yes'"/>
+            <xsl:with-param name="content">
+                <html>
+                    <head>
+		      <link rel="shortcut icon" href="favicon.ico"/>
+		      <meta http-equiv="Refresh" content="1; URL=content/{$default.topic}"/>
+		      <title><xsl:value-of select="//title[1]"/>&#160;</title>
+                    </head>
+                    <body>
+		      If not automatically redirected, click <a href="content/{$default.topic}">content/<xsl:value-of select="$default.topic"/></a>
+                    </body>
+                </html>
+            </xsl:with-param>
+        </xsl:call-template>
+    </xsl:template>
+
+    <xsl:template name="l10n.js">
+        <xsl:call-template name="write.chunk">
+            <xsl:with-param name="filename">
+	      <xsl:value-of select="concat($base.dir,'search/l10n.js')"/>
+            </xsl:with-param>
+            <xsl:with-param name="method" select="'text'"/>
+            <xsl:with-param name="encoding" select="'utf-8'"/>
+            <xsl:with-param name="indent" select="'no'"/>
+            <xsl:with-param name="content">
+	      //Resource strings for localization
+	      var localeresource = new Object;
+	      localeresource["search_no_results"]="<xsl:call-template name="gentext.template">
+                <xsl:with-param name="name" select="'Your_search_returned_no_results'"/>
+		<xsl:with-param name="context" select="'webhelp'"/>
+                </xsl:call-template>";
+            </xsl:with-param>
+        </xsl:call-template>    
+    </xsl:template>
+
+</xsl:stylesheet> 
+
diff --git a/applications/content/template/docbook/webhelp/xsl/webhelp.xsl b/applications/content/template/docbook/webhelp/xsl/webhelp.xsl
new file mode 100644
index 0000000..6627f53
--- /dev/null
+++ b/applications/content/template/docbook/webhelp/xsl/webhelp.xsl
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<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$
+     ******************************************************************** 
+
+     This file is part customization layer on top of the XSL DocBook
+     Stylesheet distribution that generates webhelp output.
+
+     ******************************************************************** -->
+
+<xsl:import href="../../xhtml/chunk.xsl"/>
+<xsl:include href="webhelp-common.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/autolayout.xsl b/applications/content/template/docbook/website/autolayout.xsl
new file mode 100644
index 0000000..461bfce
--- /dev/null
+++ b/applications/content/template/docbook/website/autolayout.xsl
@@ -0,0 +1,258 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:output method="xml" indent="no"
+            doctype-public="-//Norman Walsh//DTD Website Autolayout V2.5.0//EN"
+            doctype-system="http://docbook.sourceforge.net/release/website/2.5.0/schema/dtd/autolayout.dtd"
+/>
+
+<xsl:strip-space elements="toc tocentry layout copyright"/>
+
+<xsl:template match="layout">
+  <autolayout>
+    <xsl:text>&#10;</xsl:text>
+    <xsl:apply-templates/>
+  </autolayout>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="style|script|headlink|copyright|config">
+  <xsl:apply-templates select="." mode="copy"/>
+</xsl:template>
+
+<xsl:template match="*" mode="copy">
+  <xsl:element name="{name(.)}">
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="copy"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="toc">
+  <xsl:if test="not(@page)">
+    <xsl:message terminate="yes">
+      <xsl:text>All toc entries must have a page attribute.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="page" select="document(@page,.)"/>
+
+  <toc>
+    <xsl:call-template name="tocentry"/>
+  </toc>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="tocentry">
+  <tocentry>
+    <xsl:call-template name="tocentry"/>
+  </tocentry>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="notoc">
+  <notoc>
+    <xsl:call-template name="tocentry"/>
+  </notoc>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template name="tocentry">
+  <xsl:if test="@revisionflag">
+    <xsl:attribute name="revisionflag">
+      <xsl:value-of select="@revisionflag"/>
+    </xsl:attribute>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="@href">
+      <xsl:call-template name="tocentry.href"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="tocentry.page"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="tocentry.href">
+  <xsl:if test="not(@href)">
+    <xsl:message terminate="yes">
+      <xsl:text>All toc entries must have an href attribute.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not(@id)">
+    <xsl:message terminate="yes">
+      <xsl:text>All href toc entries must have an id attribute.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:message>
+    <xsl:text>off site: </xsl:text>
+    <xsl:value-of select="@href"/>
+  </xsl:message>
+
+  <xsl:attribute name="id">
+    <xsl:value-of select="@id"/>
+  </xsl:attribute>
+  <xsl:attribute name="href">
+    <xsl:value-of select="@href"/>
+  </xsl:attribute>
+  <xsl:if test="@tocskip = '1'">
+    <xsl:attribute name="tocskip">
+      <xsl:value-of select="@tocskip"/>
+    </xsl:attribute>
+  </xsl:if>
+
+  <xsl:if test="not(title)">
+    <xsl:message terminate="yes">
+      <xsl:text>Off-site links must provide a title.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:text>&#10;</xsl:text>
+  <xsl:apply-templates select="title|titleabbrev|summary" mode="copy"/>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:apply-templates select="tocentry"/>
+</xsl:template>
+
+<xsl:template name="tocentry.page">
+  <xsl:if test="not(@page)">
+    <xsl:message terminate="yes">
+      <xsl:text>All toc entries must have a page attribute.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="page" select="document(@page,.)"/>
+
+  <xsl:if test="not($page/*[1]/@id)">
+    <xsl:message terminate="yes">
+      <xsl:value-of select="@page"/>
+      <xsl:text>: missing ID.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="id" select="$page/*[1]/@id"/>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="@filename">
+        <xsl:value-of select="@filename"/>
+      </xsl:when>
+      <xsl:when test="/layout/config[@param='default-filename']">
+        <xsl:value-of select="(/layout/config[@param='default-filename'])[1]/@value"/>
+      </xsl:when>
+      <xsl:otherwise>index.html</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="dir">
+    <xsl:apply-templates select="." mode="calculate-dir"/>
+  </xsl:variable>
+
+  <xsl:if test="$filename = ''">
+    <xsl:message terminate="yes">
+      <xsl:value-of select="@page"/>
+      <xsl:text>: missing filename.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:message>
+    <xsl:value-of select="@page"/>
+    <xsl:text>: </xsl:text>
+    <xsl:if test="$dir != ''">
+      <xsl:value-of select="$dir"/>
+    </xsl:if>
+    <xsl:value-of select="$filename"/>
+  </xsl:message>
+
+  <xsl:attribute name="page">
+    <xsl:value-of select="@page"/>
+  </xsl:attribute>
+  <xsl:attribute name="id">
+    <xsl:value-of select="$id"/>
+  </xsl:attribute>
+  <xsl:if test="$dir != ''">
+    <xsl:attribute name="dir">
+      <xsl:value-of select="$dir"/>
+    </xsl:attribute>
+  </xsl:if>
+  <xsl:attribute name="filename">
+    <xsl:value-of select="$filename"/>
+  </xsl:attribute>
+  <xsl:if test="@tocskip = '1'">
+    <xsl:attribute name="tocskip">
+      <xsl:value-of select="@tocskip"/>
+    </xsl:attribute>
+  </xsl:if>
+
+  <xsl:text>&#10;</xsl:text>
+  <xsl:choose>
+    <xsl:when test="title">
+      <xsl:apply-templates select="title" mode="copy"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <title>
+        <xsl:apply-templates select="$page/*[1]/head/title"/>
+      </title>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:text>&#10;</xsl:text>
+
+  <xsl:if test="titleabbrev or $page/*[1]/head/titleabbrev">
+    <xsl:choose>
+      <xsl:when test="titleabbrev">
+        <xsl:apply-templates select="titleabbrev" mode="copy"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <titleabbrev>
+          <xsl:apply-templates select="$page/*[1]/head/titleabbrev"/>
+        </titleabbrev>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+
+  <xsl:if test="summary or $page/*[1]/head/summary">
+    <xsl:choose>
+      <xsl:when test="summary">
+        <xsl:apply-templates select="summary" mode="copy"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <summary>
+          <xsl:apply-templates select="$page/*[1]/head/summary"/>
+        </summary>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+
+  <xsl:apply-templates select="tocentry"/>
+</xsl:template>
+
+<xsl:template match="*" mode="calculate-dir">
+  <xsl:choose>
+    <xsl:when test="starts-with(@dir, '/')">
+      <!-- if the directory on this begins with a "/", we're done... -->
+      <xsl:value-of select="substring-after(@dir, '/')"/>
+      <xsl:text>/</xsl:text>
+    </xsl:when>
+
+    <xsl:when test="parent::*">
+      <!-- if there's a parent, try it -->
+      <xsl:apply-templates select="parent::*" mode="calculate-dir"/>
+      <xsl:if test="@dir">
+        <xsl:value-of select="@dir"/>
+        <xsl:text>/</xsl:text>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:if test="@dir">
+        <xsl:value-of select="@dir"/>
+        <xsl:text>/</xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/chunk-common.xsl b/applications/content/template/docbook/website/chunk-common.xsl
new file mode 100644
index 0000000..d750c05
--- /dev/null
+++ b/applications/content/template/docbook/website/chunk-common.xsl
@@ -0,0 +1,227 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xweb="xalan://com.nwalsh.xalan.Website"
+                xmlns:sweb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Website"
+                exclude-result-prefixes="sweb xweb"
+                version="1.0">
+
+<xsl:output method="html"/>
+
+<xsl:param name="output-root" select="'.'"/>
+<xsl:param name="dry-run" select="'0'"/>
+<xsl:param name="rebuild-all" select="'0'"/>
+
+<xsl:template match="autolayout">
+  <!-- Regenerate olink database? -->
+  <xsl:if test="$collect.xref.targets = 'yes' or
+                $collect.xref.targets = 'only'">
+    <xsl:apply-templates select="." mode="collect.targets"/>
+  </xsl:if>
+
+  <xsl:if test="$collect.xref.targets != 'only'" >
+    <xsl:apply-templates select="toc|notoc" mode="make"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="toc|tocentry|notoc" mode="make">
+  <xsl:call-template name="make.tocentry"/>
+  <xsl:apply-templates select="tocentry" mode="make"/>
+</xsl:template>
+
+<xsl:template name="make.tocentry">
+  <xsl:variable name="srcFile" select="@page"/>
+
+  <xsl:if test="@page and @href">
+    <xsl:message terminate="yes">
+      <xsl:text>Fail: tocentry has both page and href attributes.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="@filename">
+        <xsl:value-of select="@filename"/>
+      </xsl:when>
+      <xsl:otherwise>index.html</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="dir">
+    <xsl:apply-templates select="." mode="calculate-dir"/>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:text>!!</xsl:text>
+    <xsl:value-of select="$dir"/>
+    <xsl:text>!!</xsl:text>
+    <xsl:value-of select="$filename-prefix"/>
+    <xsl:text>!!</xsl:text>
+    <xsl:value-of select="$filename"/>
+  </xsl:message>
+-->
+
+  <xsl:variable name="targetFile">
+    <xsl:value-of select="$dir"/>
+    <xsl:value-of select="$filename-prefix"/>
+    <xsl:value-of select="$filename"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="function-available('sweb:exists')">
+      <xsl:if test="not(@href) and not(sweb:exists($srcFile))">
+        <xsl:message terminate="yes">
+          <xsl:value-of select="$srcFile"/>
+          <xsl:text> does not exist.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="function-available('xweb:exists')">
+      <xsl:if test="not(@href) and not(xweb:exists($srcFile))">
+        <xsl:message terminate="yes">
+          <xsl:value-of select="$srcFile"/>
+          <xsl:text> does not exist.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="no">
+        <xsl:value-of select="$srcFile"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:variable name="output-file">
+    <xsl:choose>
+      <xsl:when test="@href">
+        <xsl:value-of select="@href"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$output-root"/>
+        <xsl:text>/</xsl:text>
+        <xsl:value-of select="$targetFile"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="needsUpdate">
+    <xsl:choose>
+      <xsl:when test="@href">0</xsl:when>
+      <xsl:when test="function-available('sweb:needsUpdate')">
+        <xsl:choose>
+          <xsl:when test="$rebuild-all != 0
+                          or sweb:needsUpdate($autolayout-file, $output-file)
+                          or sweb:needsUpdate($srcFile, $output-file)">
+            <xsl:text>1</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>0</xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:when test="function-available('xweb:needsUpdate')">
+        <xsl:choose>
+          <xsl:when test="$rebuild-all != 0
+                          or xweb:needsUpdate($autolayout-file, $output-file)
+                          or xweb:needsUpdate($srcFile, $output-file)">
+            <xsl:text>1</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>0</xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$needsUpdate != 0">
+      <xsl:message>
+        <xsl:text>Update: </xsl:text>
+        <xsl:value-of select="$output-file"/>
+        <xsl:text>: </xsl:text>
+        <xsl:value-of select="$srcFile"/>
+      </xsl:message>
+
+      <xsl:variable name="webpage" select="document($srcFile,.)"/>
+      <xsl:variable name="content">
+        <xsl:apply-templates select="$webpage/webpage"/>
+      </xsl:variable>
+
+      <xsl:if test="$dry-run = 0">
+        <xsl:call-template name="write.chunk">
+          <xsl:with-param name="filename" select="$output-file"/>
+          <xsl:with-param name="content" select="$content"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>Up-to-date: </xsl:text>
+        <xsl:value-of select="$output-file"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="calculate-dir">
+  <xsl:choose>
+    <xsl:when test="@dir">
+      <!-- if there's a directory, use it -->
+      <xsl:choose>
+        <xsl:when test="starts-with(@dir, '/')">
+          <!-- if the directory on this begins with a "/", we're done... -->
+          <xsl:value-of select="substring-after(@dir, '/')"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="@dir"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="parent::*">
+      <!-- if there's a parent, try it -->
+      <xsl:apply-templates select="parent::*" mode="calculate-dir"/>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <!-- nop -->
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="autolayout" mode="collect.targets">
+  <xsl:choose>
+    <xsl:when test="$website.database.document = ''">
+      <xsl:message>
+        Must specify a $website.database.document parameter when
+        $collect.xref.targets is set to 'yes' or 'only'.
+        The xref targets were not collected.
+      </xsl:message>
+    </xsl:when> 
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$website.database.document">
+          <xsl:call-template name="write.chunk">
+            <xsl:with-param name="filename"
+	                    select="$website.database.document"/>
+            <xsl:with-param name="method" select="'xml'"/>
+            <xsl:with-param name="encoding" select="'utf-8'"/>
+            <xsl:with-param name="omit-xml-declaration" select="'no'"/>
+            <xsl:with-param name="indent" select="'yes'"/>
+            <xsl:with-param name="quiet" select="0"/>
+            <xsl:with-param name="content">
+              <targetset>
+                <xsl:apply-templates select="." mode="olink.mode"/>
+              </targetset>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- Else write to standard output -->
+          <xsl:apply-templates select="." mode="olink.mode"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+ 
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/chunk-tabular.xsl b/applications/content/template/docbook/website/chunk-tabular.xsl
new file mode 100644
index 0000000..cdf97cf
--- /dev/null
+++ b/applications/content/template/docbook/website/chunk-tabular.xsl
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xweb="xalan://com.nwalsh.xalan.Website"
+                xmlns:sweb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Website"
+                exclude-result-prefixes="sweb xweb"
+                version="1.0">
+
+<xsl:import href="tabular.xsl"/>
+<xsl:import href="../html/chunker.xsl"/>
+<xsl:include href="chunk-common.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/chunk-website.xsl b/applications/content/template/docbook/website/chunk-website.xsl
new file mode 100644
index 0000000..a9179a0
--- /dev/null
+++ b/applications/content/template/docbook/website/chunk-website.xsl
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xweb="xalan://com.nwalsh.xalan.Website"
+                xmlns:sweb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Website"
+                exclude-result-prefixes="sweb xweb"
+                version="1.0">
+
+<xsl:import href="website.xsl"/>
+<xsl:import href="../html/chunker.xsl"/>
+<xsl:include href="chunk-common.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/head.xsl b/applications/content/template/docbook/website/head.xsl
new file mode 100644
index 0000000..e3ac308
--- /dev/null
+++ b/applications/content/template/docbook/website/head.xsl
@@ -0,0 +1,316 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:template match="head" mode="head.mode">
+  <xsl:variable name="nodes" select="*"/>
+  <head>
+    <meta name="generator" content="Website XSL Stylesheet V{$VERSION}"/>
+    <xsl:if test="$html.stylesheet != ''">
+      <link rel="stylesheet" href="{$html.stylesheet}" type="text/css">
+	<xsl:if test="$html.stylesheet.type != ''">
+	  <xsl:attribute name="type">
+	    <xsl:value-of select="$html.stylesheet.type"/>
+	  </xsl:attribute>
+	</xsl:if>
+      </link>
+    </xsl:if>
+
+    <xsl:variable name="thisid" select="ancestor-or-self::webpage/@id"/>
+    <xsl:variable name="thisrelpath">
+      <xsl:apply-templates select="$autolayout//*[@id=$thisid]" mode="toc-rel-path"/>
+    </xsl:variable>
+
+    <xsl:variable name="topid">
+      <xsl:call-template name="top.page"/>
+    </xsl:variable>
+
+    <xsl:if test="$topid != ''">
+      <link rel="home">
+        <xsl:attribute name="href">
+          <xsl:call-template name="page.uri">
+            <xsl:with-param name="page" select="$autolayout//*[@id=$topid]"/>
+            <xsl:with-param name="relpath" select="$thisrelpath"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:value-of select="$autolayout//*[@id=$topid]/title"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:variable name="upid">
+      <xsl:call-template name="up.page"/>
+    </xsl:variable>
+
+    <xsl:if test="$upid != ''">
+      <link rel="up">
+        <xsl:attribute name="href">
+          <xsl:call-template name="page.uri">
+            <xsl:with-param name="page" select="$autolayout//*[@id=$upid]"/>
+            <xsl:with-param name="relpath" select="$thisrelpath"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:value-of select="$autolayout//*[@id=$upid]/title"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:variable name="previd">
+      <xsl:call-template name="prev.page"/>
+    </xsl:variable>
+
+    <xsl:if test="$previd != ''">
+      <link rel="previous">
+        <xsl:attribute name="href">
+          <xsl:call-template name="page.uri">
+            <xsl:with-param name="page" select="$autolayout//*[@id=$previd]"/>
+            <xsl:with-param name="relpath" select="$thisrelpath"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:value-of select="$autolayout//*[@id=$previd]/title"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:variable name="nextid">
+      <xsl:call-template name="next.page"/>
+    </xsl:variable>
+
+    <xsl:if test="$nextid != ''">
+      <link rel="next">
+        <xsl:attribute name="href">
+          <xsl:call-template name="page.uri">
+            <xsl:with-param name="page" select="$autolayout//*[@id=$nextid]"/>
+            <xsl:with-param name="relpath" select="$thisrelpath"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:value-of select="$autolayout//*[@id=$nextid]/title"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:variable name="firstid">
+      <xsl:call-template name="first.page"/>
+    </xsl:variable>
+
+    <xsl:if test="$firstid != ''">
+      <link rel="first">
+        <xsl:attribute name="href">
+          <xsl:call-template name="page.uri">
+            <xsl:with-param name="page" select="$autolayout//*[@id=$firstid]"/>
+            <xsl:with-param name="relpath" select="$thisrelpath"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:value-of select="$autolayout//*[@id=$firstid]/title"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:variable name="lastid">
+      <xsl:call-template name="last.page"/>
+    </xsl:variable>
+
+    <xsl:if test="$lastid != ''">
+      <link rel="last">
+        <xsl:attribute name="href">
+          <xsl:call-template name="page.uri">
+            <xsl:with-param name="page" select="$autolayout//*[@id=$lastid]"/>
+            <xsl:with-param name="relpath" select="$thisrelpath"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:value-of select="$autolayout//*[@id=$lastid]/title"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:apply-templates select="$autolayout/autolayout/style
+                                 |$autolayout/autolayout/script
+                                 |$autolayout/autolayout/headlink"
+                         mode="head.mode">
+      <xsl:with-param name="webpage" select="ancestor::webpage"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates mode="head.mode"/>
+    <xsl:call-template name="user.head.content">
+      <xsl:with-param name="node" select="ancestor::webpage"/>
+    </xsl:call-template>
+  </head>
+</xsl:template>
+
+<xsl:template match="title" mode="head.mode">
+  <title><xsl:value-of select="."/></title>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="head.mode">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="subtitle" mode="head.mode">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="summary" mode="head.mode">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="base" mode="head.mode">
+  <base href="{@href}">
+    <xsl:if test="@target">
+      <xsl:attribute name="target">
+        <xsl:value-of select="@target"/>
+      </xsl:attribute>
+    </xsl:if>
+  </base>
+</xsl:template>
+
+<xsl:template match="keywords" mode="head.mode">
+  <meta name="keyword" content="{.}"/>
+  <meta name="keywords" content="{.}"/>
+</xsl:template>
+
+<xsl:template match="copyright" mode="head.mode">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="author" mode="head.mode">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="edition" mode="head.mode">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="meta" mode="head.mode">
+  <xsl:choose>
+    <xsl:when test="@http-equiv">
+      <meta http-equiv="{@http-equiv}" content="{@content}"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <meta name="{@name}" content="{@content}"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="script" mode="head.mode">
+  <script>
+    <xsl:choose>
+      <xsl:when test="@language">
+	<xsl:attribute name="language">
+	  <xsl:value-of select="@language"/>
+	</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:attribute name="language">JavaScript</xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:choose>
+      <xsl:when test="@type">
+	<xsl:attribute name="type">
+	  <xsl:value-of select="@type"/>
+	</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:attribute name="type">text/javascript</xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates/>
+  </script>
+</xsl:template>
+
+<xsl:template match="script[@src]" mode="head.mode" priority="2">
+  <xsl:param name="webpage" select="ancestor::webpage"/>
+  <xsl:variable name="relpath">
+    <xsl:call-template name="root-rel-path">
+      <xsl:with-param name="webpage" select="$webpage"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="language">
+    <xsl:choose>
+      <xsl:when test="@language">
+	<xsl:value-of select="@language"/>
+      </xsl:when>
+      <xsl:otherwise>JavaScript</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:choose>
+      <xsl:when test="@type">
+	<xsl:value-of select="@type"/>
+      </xsl:when>
+      <xsl:otherwise>text/javascript</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <script src="{$relpath}{@src}" language="{$language}" type="{$type}"/>
+</xsl:template>
+
+<xsl:template match="style" mode="head.mode">
+  <style>
+    <xsl:if test="@type">
+      <xsl:attribute name="type">
+	<xsl:value-of select="@type"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+
+  </style>
+</xsl:template>
+
+<xsl:template match="style[@src]" mode="head.mode" priority="2">
+  <xsl:param name="webpage" select="ancestor::webpage"/>
+  <xsl:variable name="relpath">
+    <xsl:call-template name="root-rel-path">
+      <xsl:with-param name="webpage" select="$webpage"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="starts-with(@src, '/')">
+      <link rel="stylesheet" href="{@src}">
+        <xsl:if test="@type">
+          <xsl:attribute name="type">
+            <xsl:value-of select="@type"/>
+          </xsl:attribute>
+        </xsl:if>
+      </link>
+    </xsl:when>
+    <xsl:otherwise>
+      <link rel="stylesheet" href="{$relpath}{@src}">
+        <xsl:if test="@type">
+          <xsl:attribute name="type">
+            <xsl:value-of select="@type"/>
+          </xsl:attribute>
+        </xsl:if>
+      </link>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="headlink" mode="head.mode">
+  <link>
+    <xsl:copy-of select="@*"/>
+  </link>
+</xsl:template>
+
+<xsl:template match="abstract" mode="head.mode">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="revhistory" mode="head.mode">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="rddl:*" mode="head.mode"
+              xmlns:rddl='http://www.rddl.org/'>
+  <!--nop-->
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/makefile-dep.xsl b/applications/content/template/docbook/website/makefile-dep.xsl
new file mode 100644
index 0000000..00f810b
--- /dev/null
+++ b/applications/content/template/docbook/website/makefile-dep.xsl
@@ -0,0 +1,143 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:param name="filename-prefix" select="''"/>
+<xsl:param name="depends-file" select="''"/>
+<xsl:param name="output-root" select="''"/>
+<!-- Additional dependencies for target website -->
+<xsl:param name="add-website-depends" select="''"/>
+<!-- Remove output root dir instead removing each html output file.
+     Useful for removing subdirs and none html files: images, css etc. -->
+<xsl:param name="remove-output-root" select="0"/>
+
+<xsl:output method="text"/>
+
+<xsl:template match="autolayout">
+  <xsl:text>website: </xsl:text>
+  <xsl:value-of select="$add-website-depends"/>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="toc" mode="all"/>
+  <xsl:apply-templates select="notoc" mode="all"/>
+  <xsl:text>&#10;&#10;</xsl:text>
+  <xsl:apply-templates select="toc"/>
+  <xsl:apply-templates select="notoc"/>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:text>distclean: clean
+&#9;-rm -f </xsl:text>
+  <xsl:text>autolayout.xml website.database.xml </xsl:text>
+  <xsl:text>&#32;</xsl:text>
+  <xsl:value-of select="$depends-file"/>
+  <xsl:text>&#10;&#10;</xsl:text>
+  <xsl:text>clean:&#10;</xsl:text>
+  <xsl:choose>
+    <xsl:when test="$remove-output-root and not($output-root='')">
+      <xsl:text>&#9;-rm -rf </xsl:text>
+      <xsl:call-template name="output-root"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>&#9;-rm -f </xsl:text>
+      <xsl:apply-templates select="toc" mode="all"/>
+      <xsl:apply-templates select="notoc" mode="all"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:text>&#10;&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="toc">
+<!--
+  <xsl:apply-templates select="." mode="calculate-dir"/>
+-->
+  <xsl:call-template name="output-root"/>
+  <xsl:value-of select="@dir"/>
+  <xsl:value-of select="$filename-prefix"/>
+  <xsl:value-of select="@filename"/>
+  <xsl:text>: </xsl:text>
+  <xsl:value-of select="@page"/>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:apply-templates select=".//tocentry"/>
+</xsl:template>
+
+<xsl:template match="tocentry|notoc">
+<!--
+  <xsl:apply-templates select="." mode="calculate-dir"/>
+-->
+  <xsl:if test="@filename">
+    <xsl:call-template name="output-root"/>
+    <xsl:value-of select="@dir"/>
+    <xsl:value-of select="$filename-prefix"/>
+    <xsl:value-of select="@filename"/>
+    <xsl:text>: </xsl:text>
+    <xsl:value-of select="@page"/>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="toc" mode="all">
+  <xsl:apply-templates select=".//tocentry" mode="all"/>
+<!--
+  <xsl:apply-templates select="." mode="calculate-dir"/>
+-->
+  <xsl:call-template name="output-root"/>
+  <xsl:value-of select="@dir"/>
+  <xsl:value-of select="$filename-prefix"/>
+  <xsl:value-of select="@filename"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="tocentry|notoc" mode="all">
+<!--
+  <xsl:apply-templates select="." mode="calculate-dir"/>
+-->
+  <xsl:if test="@filename">
+    <xsl:call-template name="output-root"/>
+    <xsl:value-of select="@dir"/>
+    <xsl:value-of select="$filename-prefix"/>
+    <xsl:value-of select="@filename"/>
+    <xsl:text> </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="*" mode="calculate-dir">
+  <xsl:choose>
+    <xsl:when test="starts-with(@dir, '/')">
+      <!-- if the directory on this begins with a "/", we're done... -->
+      <xsl:value-of select="substring-after(@dir, '/')"/>
+<!--
+      <xsl:if test="@dir != '/'">
+        <xsl:text>/</xsl:text>
+      </xsl:if>
+-->
+    </xsl:when>
+
+    <xsl:when test="parent::*">
+      <!-- if there's a parent, try it -->
+      <xsl:apply-templates select="parent::*" mode="calculate-dir"/>
+      <xsl:if test="@dir">
+        <xsl:value-of select="@dir"/>
+<!--
+        <xsl:text>/</xsl:text>
+-->
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:if test="@dir">
+        <xsl:value-of select="@dir"/>
+<!--
+        <xsl:text>/</xsl:text>
+-->
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="output-root">
+  <xsl:if test="$output-root != ''">
+    <xsl:value-of select="$output-root"/>
+    <xsl:text>/</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/olink.xsl b/applications/content/template/docbook/website/olink.xsl
new file mode 100644
index 0000000..6766bdd
--- /dev/null
+++ b/applications/content/template/docbook/website/olink.xsl
@@ -0,0 +1,297 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:param name="website.database.document"
+           select="'website.database.xml'"/>
+
+<xsl:template match="olink">
+  <xsl:choose>
+    <xsl:when test="@targetdoc != '' or @targetptr != ''">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="olink-entity"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="olink-entity">
+  <xsl:variable name="xmlfile"
+                select="document(unparsed-entity-uri(@targetdocent),$autolayout)"/>
+  <xsl:variable name="webpage"
+                select="$xmlfile/webpage"/>
+  <xsl:variable name="tocentry"
+                select="$autolayout//*[$webpage/@id=@id]"/>
+
+  <xsl:variable name="dir">
+    <xsl:choose>
+      <xsl:when test="starts-with($tocentry/@dir, '/')">
+        <xsl:value-of select="substring($tocentry/@dir, 2)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$tocentry/@dir"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+<!-- debug
+  <xsl:message>Olink for <xsl:value-of select="unparsed-entity-uri(@targetdocent)"/></xsl:message>
+  <xsl:message>Page id <xsl:value-of select="$webpage/@id"/></xsl:message>
+-->
+
+  <xsl:choose>
+    <xsl:when test="@type = 'embed'">
+      <xsl:apply-templates select="$xmlfile"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- @type = 'replace' or @type = 'new' -->
+      <a>
+        <xsl:if test="@id">
+          <xsl:attribute name="name">
+            <xsl:value-of select="@id"/>
+          </xsl:attribute>
+        </xsl:if>
+
+<!-- debug
+        <xsl:message>
+          <xsl:text>href: </xsl:text>
+          <xsl:call-template name="root-rel-path"/>
+          <xsl:text>::</xsl:text>
+          <xsl:value-of select="$dir"/>
+          <xsl:text>::</xsl:text>
+          <xsl:value-of select="$filename-prefix"/>
+          <xsl:text>::</xsl:text>
+          <xsl:value-of select="$tocentry/@filename"/>
+          <xsl:text>::</xsl:text>
+          <xsl:if test="@localinfo">
+            <xsl:text>#</xsl:text>
+            <xsl:value-of select="@localinfo"/>
+          </xsl:if>
+        </xsl:message>
+-->
+
+        <xsl:attribute name="href">
+          <xsl:call-template name="root-rel-path"/>
+          <xsl:value-of select="$dir"/>
+          <xsl:value-of select="$filename-prefix"/>
+          <xsl:value-of select="$tocentry/@filename"/>
+          <xsl:if test="@localinfo">
+            <xsl:text>#</xsl:text>
+            <xsl:value-of select="@localinfo"/>
+          </xsl:if>
+        </xsl:attribute>
+
+        <xsl:if test="@type = 'new'">
+          <xsl:attribute name="target">_blank</xsl:attribute>
+        </xsl:if>
+
+        <xsl:choose>
+          <xsl:when test="count(node()) = 0">
+            <xsl:apply-templates select="$webpage/head/title"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </a>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Customize the selection to use both website and offsite databases -->
+<xsl:template name="select.target.database">
+  <xsl:param name="targetdoc.att" select="''"/>
+  <xsl:param name="targetptr.att" select="''"/>
+  <xsl:param name="olink.lang" select="''"/>
+
+  <!-- Is the target in the website database? -->
+  <xsl:variable name="website.olink.key">
+    <xsl:if test="$website.database.document != ''">
+      <xsl:call-template name="select.olink.key">
+        <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+        <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+        <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        <xsl:with-param name="target.database" 
+                        select="document($website.database.document,/)"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <!-- Is the target in the offsite database? -->
+  <xsl:variable name="offsite.olink.key">
+    <xsl:if test="$target.database.document != ''">
+      <xsl:call-template name="select.olink.key">
+        <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+        <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+        <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        <xsl:with-param name="target.database" 
+                        select="document($target.database.document,/)"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$website.olink.key != ''">
+      <xsl:value-of select="$website.database.document"/>
+    </xsl:when>
+    <xsl:when test="$offsite.olink.key != ''">
+      <xsl:value-of select="$target.database.document"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- Return a bogus string and let the olink template deal with it
+      <xsl:text>NOMATCHINANYDATABASEDOCUMENT</xsl:text>
+      -->
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Customize this template to use Website root-relative -->
+<xsl:template name="make.olink.href">
+  <xsl:param name="olink.key" select="''"/>
+  <xsl:param name="target.database"/>
+
+  <xsl:if test="$olink.key != ''">
+
+    <xsl:variable name="targetdoc">
+      <xsl:value-of select="substring-before($olink.key, '/')"/>
+    </xsl:variable>
+  
+    <xsl:variable name="targetptr">
+      <xsl:value-of select="substring-before(substring-after($olink.key, '/'),'/')"/>
+    </xsl:variable>
+  
+    <xsl:variable name="target.href" >
+      <xsl:for-each select="$target.database" >
+        <xsl:value-of select="key('targetptr-key', $olink.key)/@href" />
+      </xsl:for-each>
+    </xsl:variable>
+  
+    <xsl:variable name="target.dir" >
+      <xsl:for-each select="$target.database" >
+        <xsl:value-of select="key('targetdoc-key', $targetdoc)/@dir" />
+      </xsl:for-each>
+    </xsl:variable>
+
+    <xsl:variable name="target.element" >
+      <xsl:for-each select="$target.database" >
+        <xsl:value-of select="key('targetptr-key', $olink.key)/@element" />
+      </xsl:for-each>
+    </xsl:variable>
+
+    <!-- Does the target database use a sitemap? -->
+    <xsl:variable name="use.sitemap">
+      <xsl:choose>
+        <xsl:when test="$target.database//sitemap">1</xsl:when>
+        <xsl:otherwise>0</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+  
+    <!-- Get the baseuri for this targetptr -->
+    <xsl:variable name="baseuri" >
+      <xsl:choose>
+        <!-- Does the database use a sitemap? -->
+        <xsl:when test="$use.sitemap != 0" >
+          <xsl:choose>
+            <!-- Was current.docid parameter set? -->
+            <xsl:when test="$current.docid != ''">
+              <!-- Was it found in the database? -->
+              <xsl:variable name="currentdoc.key" >
+                <xsl:for-each select="$target.database" >
+                  <xsl:value-of select="key('targetdoc-key',
+                                        $current.docid)/@targetdoc" />
+                </xsl:for-each>
+              </xsl:variable>
+              <xsl:choose>
+                <xsl:when test="$currentdoc.key != ''">
+                  <xsl:for-each select="$target.database" >
+                    <xsl:call-template name="targetpath" >
+                      <xsl:with-param name="dirnode" 
+                          select="key('targetdoc-key', $current.docid)/parent::dir"/>
+                      <xsl:with-param name="targetdoc" select="$targetdoc"/>
+                    </xsl:call-template>
+                  </xsl:for-each >
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:message>
+                    <xsl:text>Olink error: cannot compute relative </xsl:text>
+                    <xsl:text>sitemap path because $current.docid '</xsl:text>
+                    <xsl:value-of select="$current.docid"/>
+                    <xsl:text>' not found in target database.</xsl:text>
+                  </xsl:message>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message>
+                <xsl:text>Olink warning: cannot compute relative </xsl:text>
+                <xsl:text>sitemap path without $current.docid parameter</xsl:text>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose> 
+          <!-- In either case, add baseuri from its document entry-->
+          <xsl:variable name="docbaseuri">
+            <xsl:for-each select="$target.database" >
+              <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri" />
+            </xsl:for-each>
+          </xsl:variable>
+          <xsl:if test="$docbaseuri != ''" >
+            <xsl:value-of select="$docbaseuri"/>
+          </xsl:if>
+        </xsl:when>
+        <!-- No database sitemap in use -->
+        <xsl:otherwise>
+          <!-- compute a root-relative path if current page has a @dir -->
+          <xsl:variable name="root-rel">
+            <xsl:call-template name="root-rel-path"/>
+          </xsl:variable>
+          <xsl:if test="$root-rel != ''">
+            <xsl:value-of select="$root-rel"/>
+          </xsl:if>
+          <!-- Add the target's @dir to the path -->
+          <xsl:if test="$target.dir != ''">
+            <xsl:value-of select="$target.dir"/>
+          </xsl:if>
+          <!-- Just use any baseuri from its document entry -->
+          <xsl:variable name="docbaseuri">
+            <xsl:for-each select="$target.database" >
+              <xsl:value-of select="key('targetdoc-key',
+                                        $targetdoc)/@baseuri" />
+            </xsl:for-each>
+          </xsl:variable>
+          <xsl:if test="$docbaseuri != ''" >
+            <xsl:value-of select="$docbaseuri"/>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+    <!-- Form the href information -->
+    <xsl:if test="$baseuri != ''">
+      <xsl:value-of select="$baseuri"/>
+      <xsl:if test="substring($target.href,1,1) != '#'">
+        <!--xsl:text>/</xsl:text-->
+      </xsl:if>
+    </xsl:if>
+    <xsl:choose>
+      <xsl:when test="$target.element = 'webpage' and
+                      $targetdoc = $targetptr">
+        <!-- Don't output #id because not needed -->
+      </xsl:when>
+      <!-- optionally turn off frag for PDF references -->
+      <xsl:when test="not($insert.olink.pdf.frag = 0 and
+            translate(substring($baseuri, string-length($baseuri) - 3),
+                      'PDF', 'pdf') = '.pdf'
+            and starts-with($target.href, '#') )">
+        <xsl:value-of select="$target.href"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$target.href"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/param.xml b/applications/content/template/docbook/website/param.xml
new file mode 100644
index 0000000..a089144
--- /dev/null
+++ b/applications/content/template/docbook/website/param.xml
@@ -0,0 +1,788 @@
+<?xml version="1.0" encoding="ASCII"?>
+<book version="5.0">
+<info>
+<title>Website Parameter Reference</title>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author>
+  <personname>
+    <surname>Walsh</surname>
+    <firstname>Norman</firstname>
+  </personname>
+</author>
+<copyright>
+  <year>2002-2011</year>
+  <holder>Norman Walsh</holder>
+</copyright>
+<abstract>
+  <para>This is reference documentation for all user-configurable
+    parameters in the DocBook XSL Website stylesheet (for
+    generating websites from DocBook XML sources). Note that the
+    Website stylesheet is a customization layer of the DocBook XSL
+    HTML stylesheet.  Therefore, in addition to the
+    Website-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 Website output.</para>
+</abstract>
+</info>
+<reference xml:id="general">
+<title>General Parameters</title>
+<refentry version="5.0" xml:id="autolayout-file">
+<refmeta>
+<refentrytitle>autolayout-file</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>autolayout-file</refname>
+<refpurpose>Identifies the autolayout.xml file</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="autolayout-file.frag">
+&lt;xsl:param name="autolayout-file"&gt;autolayout.xml&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>When the source pages are spread over several directories, this
+parameter can be set (for example, from the command line of a batch-mode
+XSLT processor) to indicate the location of the autolayout.xml file.</para>
+<para>FIXME: for browser-based use, there needs to be a PI for this...
+</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="body.attributes">
+<refmeta>
+<refentrytitle>body.attributes</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>body.attributes</refname>
+<refpurpose>DEPRECATED</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="body.attributes.frag">
+&lt;xsl:attribute-set name="body.attributes"&gt;
+  &lt;xsl:attribute name="bgcolor"&gt;white&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="text"&gt;black&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="link"&gt;#0000FF&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="vlink"&gt;#840084&lt;/xsl:attribute&gt;
+  &lt;xsl:attribute name="alink"&gt;#0000FF&lt;/xsl:attribute&gt;
+&lt;/xsl:attribute-set&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>DEPRECATED</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="currentpage.marker">
+<refmeta>
+<refentrytitle>currentpage.marker</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>currentpage.marker</refname>
+<refpurpose>The text symbol used to mark the current page</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="currentpage.marker.frag">
+&lt;xsl:param name="currentpage.marker"&gt;@&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>Character to use as identifying the current page in </para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="dry-run">
+<refmeta>
+<refentrytitle>dry-run</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>dry-run</refname>
+<refpurpose>Indicates that no files should be produced</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+  <programlisting xml:id="dry-run.frag">
+    &lt;xsl:param name="dry-run" select="0"&gt;&lt;/xsl:param&gt;
+  </programlisting>
+</refsynopsisdiv>
+<refsection><info><title>Description</title></info>
+<para>When using the XSLT processor to manage dependencies and construct
+the website, this parameter can be used to suppress the generation of
+new and updated files. Effectively, this allows you to see what the
+stylesheet would do, without actually making any changes.</para>
+<para>Only applies when XSLT-based chunking is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="feedback.href">
+<refmeta>
+<refentrytitle>feedback.href</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">uri</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>feedback.href</refname>
+<refpurpose>HREF (URI) for feedback link</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="feedback.href.frag">
+&lt;xsl:param name="feedback.href"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The <varname>feedback.href</varname> value is used as the value
+for the <tag class="attribute">href</tag> attribute on the feedback
+link. If <varname>feedback.href</varname>
+is empty, no feedback link is generated.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="feedback.link.text">
+<refmeta>
+<refentrytitle>feedback.link.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>feedback.link.text</refname>
+<refpurpose>The text of the feedback link</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="feedback.link.text.frag">
+&lt;xsl:param name="feedback.link.text"&gt;Feedback&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The contents of this variable is used as the text of the feedback
+link if <varname>feedback.href</varname> is not empty. If
+<varname>feedback.href</varname> is empty, no feedback link is
+generated.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="feedback.with.ids">
+<refmeta>
+<refentrytitle>feedback.with.ids</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>feedback.with.ids</refname>
+<refpurpose>Toggle use of IDs in feedback</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="feedback.with.ids.frag">
+&lt;xsl:param name="feedback.with.ids" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>feedback.with.ids</varname> is non-zero, the ID of the
+current page will be added to the feedback link. This can be used, for
+example, if the <varname>feedback.href</varname> is a CGI script.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="filename-prefix">
+<refmeta>
+<refentrytitle>filename-prefix</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>filename-prefix</refname>
+<refpurpose>Prefix added to all filenames</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="filename-prefix.frag">
+&lt;xsl:param name="filename-prefix"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>To produce the <quote>text-only</quote> (that is, non-tabular) layout
+of a website simultaneously with the tabular layout, the filenames have to
+be distinguished. That's accomplished by adding the
+<varname>filename-prefix</varname> to the front of each filename.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="footer.hr">
+<refmeta>
+<refentrytitle>footer.hr</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>footer.hr</refname>
+<refpurpose>Toggle &lt;HR&gt; before footer</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="footer.hr.frag">
+&lt;xsl:param name="footer.hr" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, an &lt;HR&gt; is generated at the bottom of each web page,
+before the footer.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="header.hr">
+<refmeta>
+<refentrytitle>header.hr</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>header.hr</refname>
+<refpurpose>Toggle &lt;HR&gt; after header</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="header.hr.frag">
+&lt;xsl:param name="header.hr" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, an &lt;HR&gt; is generated at the bottom of each web page,
+before the footer.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="output-root">
+<refmeta>
+<refentrytitle>output-root</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>output-root</refname>
+<refpurpose>Specifies the root directory of the website</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="output-root.frag">
+&lt;xsl:param name="output-root"&gt;.&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>When using the XSLT processor to manage dependencies and construct
+the website, this parameter can be used to indicate the root directory
+where the resulting pages are placed.</para>
+<para>Only applies when XSLT-based chunking is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="rebuild-all">
+<refmeta>
+<refentrytitle>rebuild-all</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>rebuild-all</refname>
+<refpurpose>Indicates that all files should be produced</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="rebuild-all.frag">
+&lt;xsl:param name="rebuild-all" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>When using the XSLT processor to manage dependencies and construct
+the website, this parameter can be used to regenerate the whole website,
+updating even pages that don't appear to need to be updated.</para>
+<para>The dependency extension only looks at the source documents. So
+if you change something in the stylesheet, for example, that has a global
+effect, you can use this parameter to force the stylesheet to rebuild the
+whole website.
+</para>
+<para>Only applies when XSLT-based chunking is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="sequential.links">
+<refmeta>
+<refentrytitle>sequential.links</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>sequential.links</refname>
+<refpurpose>Make sequentional links?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="sequential.links.frag">
+&lt;xsl:param name="sequential.links" select="0"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>FIXME</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="suppress.homepage.title">
+<refmeta>
+<refentrytitle>suppress.homepage.title</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>suppress.homepage.title</refname>
+<refpurpose>Suppress title on homepage?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="suppress.homepage.title.frag">
+&lt;xsl:param name="suppress.homepage.title" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>FIXME:If non-zero, the title on the homepage is suppressed?</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="table.spacer.image">
+<refmeta>
+<refentrytitle>table.spacer.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>table.spacer.image</refname>
+<refpurpose>Invisible pixel for tabular accessibility</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="table.spacer.image.frag">
+&lt;xsl:param name="table.spacer.image"&gt;graphics/spacer.gif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>This is the 1x1 pixel, transparent pixel used for <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://diveintoaccessibility.org/day_10_presenting_your_main_content_first.html">the table trick</link> to increase the accessibility of the tabular
+website presentation.</para>
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="nav">
+<title>Navigation Parameters</title>
+<refentry version="5.0" xml:id="banner.before.navigation">
+<refmeta>
+<refentrytitle>banner.before.navigation</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>banner.before.navigation</refname>
+<refpurpose>Put banner before navigation?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="banner.before.navigation.frag">
+&lt;xsl:param name="banner.before.navigation" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>FIXME</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="navbgcolor">
+<refmeta>
+<refentrytitle>navbgcolor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navbgcolor</refname>
+<refpurpose>The background color of the navigation TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="navbgcolor.frag">
+&lt;xsl:param name="navbgcolor"&gt;#4080FF&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The background color of the navigation TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="navbodywidth">
+<refmeta>
+<refentrytitle>navbodywidth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navbodywidth</refname>
+<refpurpose>Specifies the width of the navigation table body</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="navbodywidth.frag">
+&lt;xsl:param name="navbodywidth"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The width of the body column.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="nav.table.summary">
+<refmeta>
+<refentrytitle>nav.table.summary</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>nav.table.summary</refname>
+<refpurpose>HTML Table summary attribute value for navigation tables</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="nav.table.summary.frag">
+&lt;xsl:param name="nav.table.summary"&gt;Navigation&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The value of this parameter is used as the value of the table
+summary attribute for the navigation table.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="navtocwidth">
+<refmeta>
+<refentrytitle>navtocwidth</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>navtocwidth</refname>
+<refpurpose>Specifies the width of the navigation table TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="navtocwidth.frag">
+&lt;xsl:param name="navtocwidth"&gt;220&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The width, in pixels, of the navigation column.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="textbgcolor">
+<refmeta>
+<refentrytitle>textbgcolor</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">color</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>textbgcolor</refname>
+<refpurpose>The background color of the table body</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="textbgcolor.frag">
+&lt;xsl:param name="textbgcolor"&gt;white&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>The background color of the table body.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+</reference>
+<reference xml:id="toc">
+<title>ToC Parameters</title>
+<refentry version="5.0" xml:id="toc.blank.graphic">
+<refmeta>
+<refentrytitle>toc.blank.graphic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.blank.graphic</refname>
+<refpurpose>Use graphic for "blanks" in TOC?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.blank.graphic.frag">
+&lt;xsl:param name="toc.blank.graphic" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, "blanks" in the the TOC will be accomplished
+with the graphic identified by <varname>toc.spacer.image</varname>.
+</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.blank.image">
+<refmeta>
+<refentrytitle>toc.blank.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.blank.image</refname>
+<refpurpose>The image for "blanks" in the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.blank.image.frag">
+&lt;xsl:param name="toc.blank.image"&gt;graphics/blank.gif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.blank.graphic</varname> is non-zero, this image
+will be used to for "blanks" in the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.blank.text">
+<refmeta>
+<refentrytitle>toc.blank.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.blank.text</refname>
+<refpurpose>The text for "blanks" in the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.blank.text.frag">
+&lt;xsl:param name="toc.blank.text"&gt;&#160;&#160;&#160;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.blank.graphic</varname> is zero, this text string
+will be used for "blanks" in the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.pointer.graphic">
+<refmeta>
+<refentrytitle>toc.pointer.graphic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.pointer.graphic</refname>
+<refpurpose>Use graphic for TOC pointer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.pointer.graphic.frag">
+&lt;xsl:param name="toc.pointer.graphic" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, the "pointer" in the TOC will be displayed
+with the graphic identified by <varname>toc.pointer.image</varname>.
+</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.pointer.image">
+<refmeta>
+<refentrytitle>toc.pointer.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.pointer.image</refname>
+<refpurpose>The image for the "pointer" in the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.pointer.image.frag">
+&lt;xsl:param name="toc.pointer.image"&gt;graphics/arrow.gif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.pointer.graphic</varname> is non-zero, this image
+will be used for the "pointer" in the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.pointer.text">
+<refmeta>
+<refentrytitle>toc.pointer.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.pointer.text</refname>
+<refpurpose>The text for the "pointer" in the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.pointer.text.frag">
+&lt;xsl:param name="toc.pointer.text"&gt;&#160;&gt;&#160;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.pointer.graphic</varname> is zero, this text string
+will be used to display the "pointer" in the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.spacer.graphic">
+<refmeta>
+<refentrytitle>toc.spacer.graphic</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.spacer.graphic</refname>
+<refpurpose>Use graphic for TOC spacer?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.spacer.graphic.frag">
+&lt;xsl:param name="toc.spacer.graphic" select="1"&gt;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If non-zero, the indentation in the TOC will be accomplished
+with the graphic identified by <varname>toc.spacer.image</varname>.
+</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.spacer.image">
+<refmeta>
+<refentrytitle>toc.spacer.image</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">filename</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.spacer.image</refname>
+<refpurpose>The image for spacing the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.spacer.image.frag">
+&lt;xsl:param name="toc.spacer.image"&gt;graphics/blank.gif&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.spacer.graphic</varname> is non-zero, this image
+will be used to indent the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+<refentry version="5.0" xml:id="toc.spacer.text">
+<refmeta>
+<refentrytitle>toc.spacer.text</refentrytitle>
+<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>toc.spacer.text</refname>
+<refpurpose>The text for spacing the TOC</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<programlisting xml:id="toc.spacer.text.frag">
+&lt;xsl:param name="toc.spacer.text"&gt;&#160;&#160;&#160;&lt;/xsl:param&gt;
+</programlisting>
+</refsynopsisdiv>
+
+<refsection><info><title>Description</title></info>
+<para>If <varname>toc.spacer.graphic</varname> is zero, this text string
+will be used to indent the TOC.</para>
+<para>Only applies with the tabular presentation is being used.</para>
+</refsection>
+</refentry>
+
+</reference>
+<appendix xml:id="stylesheet"><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$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheets distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** --&gt;
+
+&lt;src:fragref linkend="autolayout-file.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="header.hr.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="footer.hr.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="feedback.href.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="feedback.with.ids.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="feedback.link.text.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="filename-prefix.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="output-root.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="dry-run.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="rebuild-all.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="nav.table.summary.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="navtocwidth.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="navbodywidth.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="textbgcolor.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="navbgcolor.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.spacer.graphic.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.spacer.text.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.spacer.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.pointer.graphic.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.pointer.text.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.pointer.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.blank.graphic.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.blank.text.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="toc.blank.image.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="suppress.homepage.title.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="body.attributes.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="sequential.links.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="currentpage.marker.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="banner.before.navigation.frag"&gt;&lt;/src:fragref&gt;
+&lt;src:fragref linkend="table.spacer.image.frag"&gt;&lt;/src:fragref&gt;
+
+&lt;/xsl:stylesheet&gt;
+</programlisting>
+
+</appendix>
+</book>
diff --git a/applications/content/template/docbook/website/param.xsl b/applications/content/template/docbook/website/param.xsl
new file mode 100644
index 0000000..877da61
--- /dev/null
+++ b/applications/content/template/docbook/website/param.xsl
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+<!-- This file is generated from param.xweb -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheets distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:param name="autolayout-file">autolayout.xml</xsl:param>
+<xsl:param name="header.hr" select="1"/>
+<xsl:param name="footer.hr" select="1"/>
+<xsl:param name="feedback.href"/>
+<xsl:param name="feedback.with.ids" select="0"/>
+<xsl:param name="feedback.link.text">Feedback</xsl:param>
+<xsl:param name="filename-prefix"/>
+<xsl:param name="output-root">.</xsl:param>
+    <xsl:param name="dry-run" select="0"/>
+  
+<xsl:param name="rebuild-all" select="0"/>
+<xsl:param name="nav.table.summary">Navigation</xsl:param>
+<xsl:param name="navtocwidth">220</xsl:param>
+<xsl:param name="navbodywidth"/>
+<xsl:param name="textbgcolor">white</xsl:param>
+<xsl:param name="navbgcolor">#4080FF</xsl:param>
+<xsl:param name="toc.spacer.graphic" select="1"/>
+<xsl:param name="toc.spacer.text">   </xsl:param>
+<xsl:param name="toc.spacer.image">graphics/blank.gif</xsl:param>
+<xsl:param name="toc.pointer.graphic" select="1"/>
+<xsl:param name="toc.pointer.text"> &gt; </xsl:param>
+<xsl:param name="toc.pointer.image">graphics/arrow.gif</xsl:param>
+<xsl:param name="toc.blank.graphic" select="1"/>
+<xsl:param name="toc.blank.text">   </xsl:param>
+<xsl:param name="toc.blank.image">graphics/blank.gif</xsl:param>
+<xsl:param name="suppress.homepage.title" select="1"/>
+<xsl:attribute-set name="body.attributes">
+  <xsl:attribute name="bgcolor">white</xsl:attribute>
+  <xsl:attribute name="text">black</xsl:attribute>
+  <xsl:attribute name="link">#0000FF</xsl:attribute>
+  <xsl:attribute name="vlink">#840084</xsl:attribute>
+  <xsl:attribute name="alink">#0000FF</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="sequential.links" select="0"/>
+<xsl:param name="currentpage.marker">@</xsl:param>
+<xsl:param name="banner.before.navigation" select="1"/>
+<xsl:param name="table.spacer.image">graphics/spacer.gif</xsl:param>
+
+</xsl:stylesheet>
+
diff --git a/applications/content/template/docbook/website/rss.xsl b/applications/content/template/docbook/website/rss.xsl
new file mode 100644
index 0000000..4f27a24
--- /dev/null
+++ b/applications/content/template/docbook/website/rss.xsl
@@ -0,0 +1,143 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:rss="http://purl.org/rss/1.0/"
+                xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+                xmlns:cvsf="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.CVS"
+                xmlns:cvs="http://nwalsh.com/rdf/cvs#"
+                xmlns:dc="http://purl.org/dc/elements/1.1/"
+                exclude-result-prefixes="rss rdf cvs dc cvsf"
+                version="1.0">
+
+<xsl:output method="html"/>
+
+<xsl:template match="rss">
+  <xsl:variable name="rss" select="document(@feed, .)"/>
+
+  <div class='rss'>
+    <xsl:choose>
+      <xsl:when test="not($rss)">
+        <xsl:message>RSS Failed: <xsl:value-of select="@feed"/></xsl:message>
+        <xsl:text>[RSS Failed: </xsl:text>
+        <xsl:value-of select="@feed"/>
+      </xsl:when>
+      <xsl:when test="$rss/rdf:RDF">
+        <xsl:apply-templates select="$rss/*/rss:channel"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- is there an otherwise case? -->
+        <xsl:apply-templates select="$rss//rss:channel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="rss:channel">
+  <xsl:variable name="image-resource" select="rss:image/@rdf:resource"/>
+  <xsl:variable name="image" select="//rss:image[@rdf:about = $image-resource]"/>
+
+  <xsl:if test="$image">
+    <xsl:choose>
+      <xsl:when test="$image/rss:link">
+        <a href="{$image/rss:link}">
+          <img src="{$image/rss:url}" alt="{$image/rss:title}" align="right" border="0"/>
+        </a>
+      </xsl:when>
+      <xsl:otherwise>
+        <img src="{$image/rss:url}" alt="{$image/rss:title}" align="right"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+
+  <xsl:apply-templates select="rss:title"/>
+  <xsl:apply-templates select="rss:description"/>
+  <xsl:apply-templates select="rss:items"/>
+
+  <xsl:if test="$image">
+    <br clear="right"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="rss:title">
+  <xsl:param name="wrapper" select="'h3'"/>
+
+  <xsl:element name="{$wrapper}">
+    <xsl:choose>
+      <xsl:when test="../rss:link">
+        <a href="{../rss:link[1]}">
+          <xsl:apply-templates/>
+        </a>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="../dc:date|../cvs:date">
+      <xsl:choose>
+        <xsl:when test="../dc:date">
+          <xsl:text> (</xsl:text>
+          <xsl:value-of select="../dc:date[1]"/>
+          <xsl:text>)</xsl:text>
+        </xsl:when>
+        <xsl:when test="function-available('cvsf:localTime')">
+          <xsl:variable name="timeString" select="cvsf:localTime(../cvs:date[1])"/>
+          <xsl:text> (</xsl:text>
+          <xsl:value-of select="substring($timeString, 1, 3)"/>
+          <xsl:text>, </xsl:text>
+          <xsl:value-of select="substring($timeString, 9, 2)"/>
+          <xsl:text> </xsl:text>
+          <xsl:value-of select="substring($timeString, 5, 3)"/>
+          <xsl:text> </xsl:text>
+          <xsl:value-of select="substring($timeString, 25, 4)"/>
+          <xsl:text>)</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="../cvs:date[1]"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="rss:description">
+  <p>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="rss:items">
+  <dl>
+    <xsl:for-each select="rdf:Seq/rdf:li[@rdf:resource and @rdf:resource != '']">
+      <xsl:variable name="resource" select="@rdf:resource"/>
+      <xsl:variable name="item" select="//rss:item[@rdf:about = $resource]"/>
+      <xsl:if test="not($item)">
+        <xsl:message>
+          <xsl:text>RSS Warning: there is no item labelled: </xsl:text>
+          <xsl:value-of select="$resource"/>
+        </xsl:message>
+      </xsl:if>
+      <xsl:if test="count($item) &gt; 1">
+        <xsl:message>
+          <xsl:text>RSS Warning: there is more than one item labelled: </xsl:text>
+          <xsl:value-of select="$resource"/>
+        </xsl:message>
+      </xsl:if>
+      <xsl:apply-templates select="$item"/>
+    </xsl:for-each>
+  </dl>
+</xsl:template>
+
+<xsl:template match="rss:item">
+  <xsl:message>RSS item: <xsl:value-of select="rss:title"/></xsl:message>
+
+  <xsl:apply-templates select="rss:title">
+    <xsl:with-param name="wrapper" select="'dt'"/>
+  </xsl:apply-templates>
+  <xsl:if test="rss:description">
+    <dd>
+      <xsl:apply-templates select="rss:description"/>
+    </dd>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/tabular.xsl b/applications/content/template/docbook/website/tabular.xsl
new file mode 100644
index 0000000..14e597e
--- /dev/null
+++ b/applications/content/template/docbook/website/tabular.xsl
@@ -0,0 +1,213 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:html='http://www.w3.org/1999/xhtml'
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="html doc"
+                version="1.0">
+
+<xsl:import href="website-common.xsl"/>
+<xsl:include href="toc-tabular.xsl"/>
+
+<xsl:output method="html"
+            indent="no"
+            doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+            doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+/>
+
+<xsl:param name="autolayout" select="document($autolayout-file, /*)"/>
+
+<!-- ==================================================================== -->
+
+<!-- Netscape gets badly confused if it sees a CSS style... -->
+<xsl:param name="admon.style" select="''"/>
+<xsl:param name="admon.graphics" select="1"/>
+<xsl:param name="admon.graphics.path">graphics/</xsl:param>
+<xsl:param name="admon.graphics.extension">.gif</xsl:param>
+
+<xsl:attribute-set name="table.properties">
+  <xsl:attribute name="border">0</xsl:attribute>
+  <xsl:attribute name="cellpadding">0</xsl:attribute>
+  <xsl:attribute name="cellspacing">0</xsl:attribute>
+  <xsl:attribute name="width">100%</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="table.navigation.cell.properties">
+  <xsl:attribute name="valign">top</xsl:attribute>
+  <xsl:attribute name="align">left</xsl:attribute>
+  <!-- width is set with $navotocwidth -->
+  <xsl:attribute name="bgcolor">
+    <xsl:choose>
+      <xsl:when test="/webpage/config[@param='navbgcolor']/@value[. != '']">
+        <xsl:value-of select="/webpage/config[@param='navbgcolor']/@value"/>
+      </xsl:when>
+      <xsl:when test="$autolayout/autolayout/config[@param='navbgcolor']/@value[. != '']">
+        <xsl:value-of select="$autolayout/autolayout/config[@param='navbgcolor']/@value"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$navbgcolor"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="table.body.cell.properties">
+  <xsl:attribute name="valign">top</xsl:attribute>
+  <xsl:attribute name="align">left</xsl:attribute>
+  <!-- width is set with $navobodywidth -->
+  <xsl:attribute name="bgcolor">
+    <xsl:value-of select="$textbgcolor"/>
+  </xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:param name="body.columns" select="2"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template name="home.navhead">
+  <xsl:text>Navhead</xsl:text>
+</xsl:template>
+
+<xsl:template name="home.navhead.upperright">
+  <xsl:text>Upper-right</xsl:text>
+</xsl:template>
+
+<xsl:template name="home.navhead.cell">
+  <td width="50%" valign="middle" align="left">
+    <xsl:call-template name="home.navhead"/>
+  </td>
+</xsl:template>
+
+<xsl:template name="home.navhead.upperright.cell">
+  <td width="50%" valign="middle" align="right">
+    <xsl:call-template name="home.navhead.upperright"/>
+  </td>
+</xsl:template>
+
+<xsl:template name="home.navhead.separator">
+  <hr/>
+</xsl:template>
+
+<xsl:template match="webpage">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="relpath">
+    <xsl:call-template name="root-rel-path">
+      <xsl:with-param name="webpage" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="tocentry" select="$autolayout/autolayout//*[$id=@id]"/>
+  <xsl:variable name="toc" select="($tocentry/ancestor-or-self::toc
+                                   |$autolayout/autolayout/toc[1])[last()]"/>
+
+  <html>
+    <xsl:apply-templates select="head" mode="head.mode"/>
+    <xsl:apply-templates select="config" mode="head.mode"/>
+    <body class="tabular">
+      <xsl:call-template name="body.attributes"/>
+
+      <div class="{name(.)}">
+        <a name="{$id}"/>
+
+        <xsl:call-template name="allpages.banner"/>
+
+        <table xsl:use-attribute-sets="table.properties" border="0">
+          <xsl:if test="$nav.table.summary!=''">
+            <xsl:attribute name="summary">
+              <xsl:value-of select="normalize-space($nav.table.summary)"/>
+            </xsl:attribute>
+          </xsl:if>
+          <tr>
+            <td xsl:use-attribute-sets="table.navigation.cell.properties">
+              <img src="{$relpath}{$table.spacer.image}" alt=" " width="1" height="1"/>
+            </td>
+            <xsl:call-template name="hspacer">
+              <xsl:with-param name="vspacer" select="1"/>
+            </xsl:call-template>
+            <td rowspan="2" xsl:use-attribute-sets="table.body.cell.properties">
+              <xsl:if test="$navbodywidth != ''">
+                <xsl:attribute name="width">
+                  <xsl:value-of select="$navbodywidth"/>
+                </xsl:attribute>
+              </xsl:if>
+
+              <xsl:if test="$autolayout/autolayout/toc[1]/@id = $id">
+                <table border="0" summary="home page extra headers"
+                       cellpadding="0" cellspacing="0" width="100%">
+                  <tr>
+                    <xsl:call-template name="home.navhead.cell"/>
+                    <xsl:call-template name="home.navhead.upperright.cell"/>
+                  </tr>
+                </table>
+                <xsl:call-template name="home.navhead.separator"/>
+              </xsl:if>
+
+              <xsl:if test="$autolayout/autolayout/toc[1]/@id != $id
+                            or $suppress.homepage.title = 0">
+                <xsl:apply-templates select="./head/title" mode="title.mode"/>
+              </xsl:if>
+
+              <xsl:apply-templates select="child::node()[not(self::webpage)]"/>
+              <xsl:call-template name="process.footnotes"/>
+              <br/>
+            </td>
+          </tr>
+          <tr>
+            <td xsl:use-attribute-sets="table.navigation.cell.properties">
+              <xsl:if test="$navtocwidth != ''">
+                <xsl:attribute name="width">
+                  <xsl:choose>
+                    <xsl:when test="/webpage/config[@param='navtocwidth']/@value[. != '']">
+                      <xsl:value-of select="/webpage/config[@param='navtocwidth']/@value"/>
+                    </xsl:when>
+                    <xsl:when test="$autolayout/autolayout/config[@param='navtocwidth']/@value[. != '']">
+                      <xsl:value-of select="$autolayout/autolayout/config[@param='navtocwidth']/@value"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:value-of select="$navtocwidth"/>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </xsl:attribute>
+              </xsl:if>
+              <xsl:choose>
+                <xsl:when test="$toc">
+                  <p class="navtoc">
+                    <xsl:apply-templates select="$toc">
+                      <xsl:with-param name="pageid" select="@id"/>
+                    </xsl:apply-templates>
+                  </p>
+                </xsl:when>
+                <xsl:otherwise>&#160;</xsl:otherwise>
+              </xsl:choose>
+            </td>
+            <xsl:call-template name="hspacer"/>
+          </tr>
+          <xsl:call-template name="webpage.table.footer"/>
+        </table>
+
+        <xsl:call-template name="webpage.footer"/>
+      </div>
+
+    </body>
+  </html>
+</xsl:template>
+
+<xsl:template name="hspacer">
+  <xsl:param name="vspacer" select="0"/>
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="config[@param='filename']" mode="head.mode">
+</xsl:template>
+
+<xsl:template match="webtoc">
+  <!-- nop -->
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/toc-tabular.xsl b/applications/content/template/docbook/website/toc-tabular.xsl
new file mode 100644
index 0000000..4809840
--- /dev/null
+++ b/applications/content/template/docbook/website/toc-tabular.xsl
@@ -0,0 +1,480 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:output method="html"/>
+
+<xsl:param name="nav.graphics" select="1"/>
+<xsl:param name="nav.pointer" select="1"/>
+<xsl:param name="nav.revisionflag" select="1"/>
+
+<xsl:param name="toc.spacer.text">&#160;&#160;&#160;</xsl:param>
+<xsl:param name="toc.spacer.image">graphics/blank.gif</xsl:param>
+
+<xsl:param name="nav.icon.path">graphics/navicons/</xsl:param>
+<xsl:param name="nav.icon.extension">.gif</xsl:param>
+
+<!-- styles: folder, folder16, plusminus, triangle, arrow -->
+<xsl:param name="nav.icon.style">triangle</xsl:param>
+
+<xsl:param name="nav.text.spacer">&#160;</xsl:param>
+<xsl:param name="nav.text.current.open">+</xsl:param>
+<xsl:param name="nav.text.current.page">+</xsl:param>
+<xsl:param name="nav.text.other.open">&#160;</xsl:param>
+<xsl:param name="nav.text.other.closed">&#160;</xsl:param>
+<xsl:param name="nav.text.other.page">&#160;</xsl:param>
+<xsl:param name="nav.text.revisionflag.added">New</xsl:param>
+<xsl:param name="nav.text.revisionflag.changed">Changed</xsl:param>
+<xsl:param name="nav.text.revisionflag.deleted"></xsl:param>
+<xsl:param name="nav.text.revisionflag.off"></xsl:param>
+
+<xsl:param name="nav.text.pointer">&lt;-</xsl:param>
+
+<xsl:param name="toc.expand.depth" select="1"/>
+
+<!-- ==================================================================== --> 
+
+<xsl:template match="toc/title|tocentry/title|titleabbrev">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="toc">
+  <xsl:param name="pageid" select="@id"/>
+
+  <xsl:variable name="relpath">
+    <xsl:call-template name="toc-rel-path">
+      <xsl:with-param name="pageid" select="$pageid"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="homebanner"
+                select="/autolayout/config[@param='homebanner-tabular'][1]"/>
+
+  <xsl:variable name="banner"
+                select="/autolayout/config[@param='banner-tabular'][1]"/>
+
+  <xsl:choose>
+    <xsl:when test="$pageid = @id">
+      <img align="left" border="0">
+        <xsl:attribute name="src">
+          <xsl:value-of select="$relpath"/>
+          <xsl:value-of select="$homebanner/@value"/>
+        </xsl:attribute>
+        <xsl:attribute name="alt">
+          <xsl:value-of select="$homebanner/@altval"/>
+        </xsl:attribute>
+      </img>
+      <br clear="all"/>
+      <br/>
+    </xsl:when>
+    <xsl:otherwise>
+      <a href="{$relpath}{@dir}{$filename-prefix}{@filename}">
+        <img align="left" border="0">
+          <xsl:attribute name="src">
+            <xsl:value-of select="$relpath"/>
+            <xsl:value-of select="$banner/@value"/>
+          </xsl:attribute>
+          <xsl:attribute name="alt">
+            <xsl:value-of select="$banner/@altval"/>
+          </xsl:attribute>
+        </img>
+      </a>
+      <br clear="all"/>
+      <br/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:apply-templates select="tocentry">
+    <xsl:with-param name="pageid" select="$pageid"/>
+    <xsl:with-param name="relpath" select="$relpath"/>
+  </xsl:apply-templates>
+  <br/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="tocentry">
+  <xsl:param name="pageid" select="@id"/>
+  <xsl:param name="toclevel" select="count(ancestor::*)"/>
+  <xsl:param name="relpath" select="''"/>
+  <xsl:param name="revisionflag" select="@revisionflag"/>
+
+  <xsl:variable name="page" select="."/>
+  <xsl:variable name="target"
+                select="($page/descendant-or-self::tocentry[not(@tocskip) or @tocskip = '0']
+                       |$page/following::tocentry[@tocskip and @tocskip='0'])[1]"/>
+
+  <xsl:variable name="depth" select="count(ancestor::*)-1"/>
+
+  <xsl:variable name="isdescendant">
+    <xsl:choose>
+      <xsl:when test="ancestor::*[@id=$pageid]">1</xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="hasdescendant">
+    <xsl:choose>
+      <xsl:when test="descendant::tocentry != ''">1</xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="isancestor">
+    <xsl:choose>
+      <xsl:when test="descendant::*[@id=$pageid]">1</xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="use.toc.expand.depth">
+    <xsl:variable name="config-param" select="ancestor::autolayout/config[@param='toc.expand.depth']/@value"/>
+    <xsl:choose>
+      <!-- toc.expand.depth attribute is not in DTD -->
+      <xsl:when test="ancestor::toc/@toc.expand.depth">
+        <xsl:value-of select="ancestor::toc/@toc.expand.depth"/>
+      </xsl:when>
+      <xsl:when test="floor($config-param) > 0">
+        <xsl:value-of select="$config-param"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$toc.expand.depth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="is.open">
+    <xsl:choose>
+      <xsl:when test="$pageid = @id
+                      or $isancestor='1'
+                      or $depth &lt; $use.toc.expand.depth">1</xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- For any entry in the TOC:
+       1. It is the current page
+          a. it is a leaf             current/leaf
+          b. it is an open page       current/open
+       2. It is not the current page
+          a. it is a leaf             other/leaf
+          b. it is an open page       other/open
+          c. it is a closed page      other/closed
+  -->
+
+  <xsl:variable name="preceding-icon">
+    <xsl:value-of select="$relpath"/>
+    <xsl:value-of select="$nav.icon.path"/>
+    <xsl:value-of select="$nav.icon.style"/>
+    <xsl:choose>
+      <xsl:when test="$pageid=@id">
+        <xsl:choose>
+          <xsl:when test="$hasdescendant != 0">
+            <xsl:text>/current/open</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text>/current/leaf</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="$hasdescendant = 0">
+            <xsl:text>/other/leaf</xsl:text>
+          </xsl:when>
+          <xsl:when test="$is.open != 0">
+            <xsl:text>/other/open</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text>/other/closed</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:value-of select="$nav.icon.extension"/>
+  </xsl:variable>
+
+  <xsl:variable name="preceding-text">
+    <xsl:choose>
+      <xsl:when test="$pageid=@id">
+        <xsl:choose>
+          <xsl:when test="$hasdescendant != 0">
+            <xsl:value-of select="$nav.text.current.open"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$nav.text.current.page"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="$isancestor != 0">
+            <xsl:value-of select="$nav.text.other.open"/>
+          </xsl:when>
+          <xsl:when test="$hasdescendant != 0">
+            <xsl:value-of select="$nav.text.other.closed"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$nav.text.other.page"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="following-icon">
+    <xsl:value-of select="$relpath"/>
+    <xsl:value-of select="$nav.icon.path"/>
+    <xsl:value-of select="$nav.icon.style"/>
+    <xsl:text>/current/pointer</xsl:text>
+    <xsl:value-of select="$nav.icon.extension"/>
+  </xsl:variable>
+
+  <xsl:variable name="following-text">
+    <xsl:value-of select="$nav.text.pointer"/>
+  </xsl:variable>
+
+  <xsl:variable name="revisionflag-icon">
+    <xsl:value-of select="$relpath"/>
+    <xsl:value-of select="$nav.icon.path"/>
+    <xsl:value-of select="$nav.icon.style"/>
+    <xsl:text>/</xsl:text>
+    <xsl:value-of select="$revisionflag"/>
+    <xsl:value-of select="$nav.icon.extension"/>
+  </xsl:variable>
+
+  <xsl:variable name="revisionflag-text">
+    <xsl:choose>
+      <xsl:when test="$revisionflag = 'changed'">
+        <xsl:value-of select="$nav.text.revisionflag.changed"/>
+      </xsl:when>
+      <xsl:when test="$revisionflag = 'added'">
+        <xsl:value-of select="$nav.text.revisionflag.added"/>
+      </xsl:when>
+      <xsl:when test="$revisionflag = 'deleted'">
+        <xsl:value-of select="$nav.text.revisionflag.deleted"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$nav.text.revisionflag.off"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <span>
+    <xsl:if test="$toclevel = 2">
+      <xsl:attribute name="class">
+        <xsl:text>toplevel</xsl:text>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$toclevel &gt; 2">
+      <xsl:attribute name="class">
+        <xsl:text>shrink</xsl:text>
+        <xsl:value-of select="$toclevel - 2"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:call-template name="insert.spacers">
+      <xsl:with-param name="count" select="$toclevel - 1"/>
+      <xsl:with-param name="relpath" select="$relpath"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="$nav.graphics != 0">
+        <xsl:call-template name="link.to.page">
+          <xsl:with-param name="href" select="@href"/>
+          <xsl:with-param name="page" select="$target"/>
+          <xsl:with-param name="relpath" select="$relpath"/>
+          <xsl:with-param name="linktext">
+            <img src="{$preceding-icon}" alt="{$preceding-text}" border="0"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$preceding-text"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:choose>
+      <xsl:when test="$pageid = @id">
+        <span class="curpage">
+          <xsl:choose>
+            <xsl:when test="titleabbrev">
+              <xsl:apply-templates select="titleabbrev"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="title"/>
+            </xsl:otherwise>
+          </xsl:choose>
+
+          <xsl:if test="$nav.revisionflag != '0' and $revisionflag">
+            <xsl:value-of select="$nav.text.spacer"/>
+            <xsl:choose>
+              <xsl:when test="$nav.graphics = '1'">
+                <img src="{$revisionflag-icon}" alt="{$revisionflag-text}" align="bottom"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:text>(</xsl:text>
+                <xsl:value-of select="$revisionflag-text"/>
+                <xsl:text>)</xsl:text>
+              </xsl:otherwise>
+            </xsl:choose>
+	  </xsl:if>
+
+          <xsl:if test="$nav.pointer != '0'">
+            <xsl:value-of select="$nav.text.spacer"/>
+            <xsl:choose>
+              <xsl:when test="$nav.graphics = '1'">
+                <img src="{$following-icon}" alt="{$following-text}"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="$following-text"/>
+              </xsl:otherwise>
+            </xsl:choose>
+	  </xsl:if>
+        </span>
+        <br/>
+      </xsl:when>
+      <xsl:otherwise>
+        <span>
+          <xsl:choose>
+            <xsl:when test="$isdescendant='0'">
+              <xsl:choose>
+                <xsl:when test="$isancestor='1'">
+                  <xsl:attribute name="class">ancestor</xsl:attribute>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:attribute name="class">otherpage</xsl:attribute>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:when>
+            <xsl:otherwise>
+              <!-- IS a descendant of curpage -->
+              <xsl:attribute name="class">descendant</xsl:attribute>
+            </xsl:otherwise>
+          </xsl:choose>
+
+          <xsl:call-template name="link.to.page">
+            <xsl:with-param name="href" select="@href"/>
+            <xsl:with-param name="page" select="$target"/>
+            <xsl:with-param name="relpath" select="$relpath"/>
+            <xsl:with-param name="linktext">
+              <xsl:choose>
+                <xsl:when test="titleabbrev">
+                  <xsl:apply-templates select="titleabbrev"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:apply-templates select="title"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+          </xsl:call-template>
+
+          <xsl:if test="$nav.revisionflag != '0' and $revisionflag">
+            <xsl:value-of select="$nav.text.spacer"/>
+            <xsl:choose>
+              <xsl:when test="$nav.graphics = '1'">
+                <img src="{$revisionflag-icon}" alt="{$revisionflag-text}"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:text>(</xsl:text>
+                <xsl:value-of select="$revisionflag-text"/>
+                <xsl:text>)</xsl:text>
+              </xsl:otherwise>
+            </xsl:choose>
+	  </xsl:if>
+
+        </span>
+        <br/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+
+  <xsl:if test="$is.open != 0">
+    <xsl:apply-templates select="tocentry">
+      <xsl:with-param name="pageid" select="$pageid"/>
+      <xsl:with-param name="relpath" select="$relpath"/>
+    </xsl:apply-templates>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="insert.spacers">
+  <xsl:param name="count" select="0"/>
+  <xsl:param name="relpath"/>
+  <xsl:if test="$count>0">
+    <xsl:choose>
+      <xsl:when test="$nav.graphics != 0">
+        <img src="{$relpath}{$toc.spacer.image}" alt="{$toc.spacer.text}"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$toc.spacer.text"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="insert.spacers">
+      <xsl:with-param name="count" select="$count - 1"/>
+      <xsl:with-param name="relpath" select="$relpath"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="toc|tocentry|notoc" mode="toc-rel-path">
+  <xsl:call-template name="toc-rel-path"/>
+</xsl:template>
+
+<xsl:template name="toc-rel-path">
+  <xsl:param name="pageid" select="@id"/>
+  <xsl:variable name="entry" select="$autolayout//*[@id=$pageid]"/>
+  <xsl:variable name="filename" select="concat($entry/@dir,$entry/@filename)"/>
+
+  <xsl:variable name="slash-count">
+    <xsl:call-template name="toc-directory-depth">
+      <xsl:with-param name="filename" select="$filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="depth">
+    <xsl:choose>
+      <xsl:when test="starts-with($filename, '/')">
+        <xsl:value-of select="$slash-count - 1"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$slash-count"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:value-of select="$filename"/>
+    <xsl:text> depth=</xsl:text>
+    <xsl:value-of select="$depth"/>
+  </xsl:message>
+-->
+
+  <xsl:if test="$depth > 0">
+    <xsl:call-template name="copy-string">
+      <xsl:with-param name="string">../</xsl:with-param>
+      <xsl:with-param name="count" select="$depth"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="toc-directory-depth">
+  <xsl:param name="filename"></xsl:param>
+  <xsl:param name="count" select="0"/>
+
+  <xsl:choose>
+    <xsl:when test='contains($filename,"/")'>
+      <xsl:call-template name="toc-directory-depth">
+        <xsl:with-param name="filename"
+                        select="substring-after($filename,'/')"/>
+        <xsl:with-param name="count" select="$count + 1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$count"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/toc.xsl b/applications/content/template/docbook/website/toc.xsl
new file mode 100644
index 0000000..0252ea9
--- /dev/null
+++ b/applications/content/template/docbook/website/toc.xsl
@@ -0,0 +1,286 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:output method="html"/>
+
+<xsl:param name="max.toc.width" select="7"/>
+
+<xsl:template match="toc/title|tocentry/title|titleabbrev">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="toc">
+  <xsl:param name="pageid" select="@id"/>
+
+  <xsl:variable name="relpath">
+    <xsl:call-template name="toc-rel-path">
+      <xsl:with-param name="pageid" select="$pageid"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="homebanner"
+                select="/autolayout/config[@param='homebanner'][1]"/>
+
+  <xsl:variable name="banner"
+                select="/autolayout/config[@param='banner'][1]"/>
+
+  <xsl:variable name="homebannertext"
+                select="/autolayout/config[@param='homebannertext'][1]"/>
+
+  <xsl:variable name="bannertext"
+                select="/autolayout/config[@param='bannertext'][1]"/>
+
+  <xsl:choose>
+    <xsl:when test="$pageid = @id">
+      <xsl:choose>
+        <xsl:when test="$homebanner">
+          <img border="0">
+            <xsl:attribute name="src">
+              <xsl:value-of select="$relpath"/>
+              <xsl:value-of select="$homebanner/@value"/>
+            </xsl:attribute>
+            <xsl:attribute name="alt">
+              <xsl:value-of select="$homebanner/@altval"/>
+            </xsl:attribute>
+          </img>
+          <xsl:value-of select="$currentpage.marker"/>
+        </xsl:when>
+        <xsl:when test="$homebannertext">
+          <xsl:value-of select="$homebannertext/@value"/>
+          <xsl:value-of select="$currentpage.marker"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext.nav.home"/>
+          <xsl:value-of select="$currentpage.marker"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <a href="{$relpath}{@dir}{$filename-prefix}{@filename}">
+        <xsl:choose>
+          <xsl:when test="$banner">
+            <img border="0">
+              <xsl:attribute name="src">
+                <xsl:value-of select="$relpath"/>
+                <xsl:value-of select="$banner/@value"/>
+              </xsl:attribute>
+              <xsl:attribute name="alt">
+                <xsl:value-of select="$banner/@altval"/>
+              </xsl:attribute>
+            </img>
+          </xsl:when>
+          <xsl:when test="$bannertext">
+            <xsl:value-of select="$bannertext/@value"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="gentext.nav.home"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </a>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:text> | </xsl:text>
+
+  <xsl:call-template name="process-children">
+    <xsl:with-param name="pageid" select="$pageid"/>
+    <xsl:with-param name="relpath" select="$relpath"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="tocentry">
+  <xsl:param name="pageid" select="@id"/>
+  <xsl:param name="relpath" select="''"/>
+
+  <xsl:if test="preceding-sibling::tocentry">
+    <xsl:text> | </xsl:text>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$pageid = @id">
+      <xsl:choose>
+        <xsl:when test="titleabbrev">
+          <xsl:apply-templates select="titleabbrev"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="title"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:value-of select="$currentpage.marker"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <a>
+        <xsl:attribute name="href">
+          <xsl:choose>
+            <xsl:when test="@href">
+              <xsl:value-of select="@href"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="$relpath"/>
+              <xsl:value-of select="@dir"/>
+              <xsl:value-of select="$filename-prefix"/>
+              <xsl:value-of select="@filename"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+        <xsl:choose>
+          <xsl:when test="titleabbrev">
+            <xsl:apply-templates select="titleabbrev"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="title"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </a>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="toc|tocentry|notoc" mode="toc-rel-path">
+  <xsl:call-template name="toc-rel-path"/>
+</xsl:template>
+
+<xsl:template name="toc-rel-path">
+  <xsl:param name="pageid" select="@id"/>
+  <xsl:variable name="entry" select="$autolayout//*[@id=$pageid]"/>
+  <xsl:variable name="filename" select="concat($entry/@dir,$entry/@filename)"/>
+
+  <xsl:variable name="depth">
+    <xsl:call-template name="toc-directory-depth">
+      <xsl:with-param name="filename" select="$filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$depth > 0">
+    <xsl:call-template name="copy-string">
+      <xsl:with-param name="string">../</xsl:with-param>
+      <xsl:with-param name="count" select="$depth"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="toc-directory-depth">
+  <xsl:param name="filename"></xsl:param>
+  <xsl:param name="count" select="0"/>
+
+  <xsl:choose>
+    <xsl:when test='contains($filename,"/")'>
+      <xsl:call-template name="toc-directory-depth">
+        <xsl:with-param name="filename"
+                        select="substring-after($filename,'/')"/>
+        <xsl:with-param name="count" select="$count + 1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$count"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process-children">
+  <xsl:param name="pageid" select="@id"/>
+  <xsl:param name="relpath" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="tocentry[descendant-or-self::*[@id=$pageid]]">
+      <xsl:call-template name="process-tocentry-children">
+        <xsl:with-param name="pageid" select="$pageid"/>
+        <xsl:with-param name="relpath" select="$relpath"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-toc-children">
+        <xsl:with-param name="pageid" select="$pageid"/>
+        <xsl:with-param name="relpath" select="$relpath"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process-tocentry-children">
+  <xsl:param name="pageid" select="@id"/>
+  <xsl:param name="relpath" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="count(tocentry) &gt; $max.toc.width">
+      <xsl:variable name="cur"
+                    select="tocentry[descendant-or-self::*[@id=$pageid]]"/>
+
+      <xsl:variable name="half" select="$max.toc.width div 2"/>
+
+      <xsl:variable name="all-nodes"
+                    select="$cur/preceding-sibling::tocentry[position() &lt; $half]
+                            | $cur
+                            | $cur/following-sibling::tocentry"/>
+
+      <xsl:variable name="nodes"
+                    select="$all-nodes[position() &lt; $max.toc.width]"/>
+
+      <xsl:if test="count($cur/preceding-sibling::tocentry) &gt; $half">
+        <xsl:text>...</xsl:text>
+      </xsl:if>
+      <xsl:apply-templates select="$nodes">
+        <xsl:with-param name="pageid" select="$pageid"/>
+        <xsl:with-param name="relpath" select="$relpath"/>
+      </xsl:apply-templates>
+      <xsl:if test="count($all-nodes) &gt; $max.toc.width">
+        <xsl:text> | ...</xsl:text>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="tocentry">
+        <xsl:with-param name="pageid" select="$pageid"/>
+        <xsl:with-param name="relpath" select="$relpath"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <br/>
+
+  <!-- if the current page isn't in this list, keep digging... -->
+  <xsl:if test="not(tocentry[$pageid=@id])">
+    <xsl:for-each select="tocentry">
+      <xsl:if test="descendant::*[@id=$pageid]">
+        <xsl:call-template name="process-children">
+          <xsl:with-param name="pageid" select="$pageid"/>
+          <xsl:with-param name="relpath" select="$relpath"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:for-each>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process-toc-children">
+  <xsl:param name="pageid" select="@id"/>
+  <xsl:param name="relpath" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="count(tocentry) &gt; $max.toc.width">
+      <xsl:variable name="half" select="$max.toc.width div 2"/>
+
+      <xsl:variable name="all-nodes" select="tocentry"/>
+      <xsl:variable name="nodes"
+                    select="$all-nodes[position() &lt; $max.toc.width]"/>
+
+      <xsl:apply-templates select="$nodes">
+        <xsl:with-param name="pageid" select="$pageid"/>
+        <xsl:with-param name="relpath" select="$relpath"/>
+      </xsl:apply-templates>
+
+      <xsl:if test="count($all-nodes) &gt; $max.toc.width">
+        <xsl:text> | ...</xsl:text>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="tocentry">
+        <xsl:with-param name="pageid" select="$pageid"/>
+        <xsl:with-param name="relpath" select="$relpath"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <br/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/website-common.xsl b/applications/content/template/docbook/website/website-common.xsl
new file mode 100644
index 0000000..1b891c9
--- /dev/null
+++ b/applications/content/template/docbook/website/website-common.xsl
@@ -0,0 +1,821 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:html='http://www.w3.org/1999/xhtml'
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc html"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the WebSite distribution.
+     See ../README or http://nwalsh.com/website/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="../html/docbook.xsl"/>
+<xsl:import href="xbel.xsl"/>
+<xsl:include href="../VERSION.xsl"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="head.xsl"/>
+<xsl:include href="rss.xsl"/>
+<xsl:include href="olink.xsl"/>
+
+<xsl:preserve-space elements="*"/>
+<xsl:strip-space elements="website webpage"/>
+
+<xsl:output method="html"
+            indent="no"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="admon.graphic">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="root-rel-path"/>
+  <xsl:value-of select="$admon.graphics.path"/>
+  <xsl:choose>
+    <xsl:when test="name($node)='note'">note</xsl:when>
+    <xsl:when test="name($node)='warning'">warning</xsl:when>
+    <xsl:when test="name($node)='caution'">caution</xsl:when>
+    <xsl:when test="name($node)='tip'">tip</xsl:when>
+    <xsl:when test="name($node)='important'">important</xsl:when>
+    <xsl:otherwise>note</xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$admon.graphics.extension"/>
+</xsl:template>
+
+<doc:template name="admon.graphic">
+<refpurpose>Select appropriate admonition graphic</refpurpose>
+<refdescription>
+<para>Selects the appropriate admonition graphic file and returns the
+fully qualified path to it.</para>
+</refdescription>
+<refparam>
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The source node to use for the purpose of selection. It should
+be one of the admonition elements (<sgmltag>note</sgmltag>,
+<sgmltag>warning</sgmltag>, etc.). The default node is the context
+node.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparam>
+<refreturns>
+<para>The fully qualified path to the admonition graphic. If the
+<varname>node</varname> is not an admonition element, the
+  <quote>note</quote> graphic is returned.</para>
+</refreturns>
+</doc:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="allpages.banner"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="webpage.table.footer"/>
+
+<xsl:template name="webpage.footer">
+  <xsl:variable name="page" select="."/>
+  <xsl:variable name="footers" select="$page/config[@param='footer']
+                                       |$page/config[@param='footlink']
+                                       |$autolayout/autolayout/config[@param='footer']
+                                       |$autolayout/autolayout/config[@param='footlink']"/>
+
+  <xsl:variable name="tocentry" select="$autolayout//*[@id=$page/@id]"/>
+  <xsl:variable name="toc" select="($tocentry/ancestor-or-self::toc[1]
+                                   | $autolayout//toc[1])[last()]"/>
+
+  <xsl:variable name="feedback">
+    <xsl:choose>
+      <xsl:when test="$page/config[@param='feedback.href']">
+        <xsl:value-of select="($page/config[@param='feedback.href'])[1]/@value"/>
+      </xsl:when>
+      <xsl:when test="$autolayout/autolayout/config[@param='feedback.href']">
+        <xsl:value-of select="($autolayout/autolayout/config[@param='feedback.href'])[1]/@value"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$feedback.href"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <div class="navfoot">
+    <xsl:if test="$footer.hr != 0"><hr/></xsl:if>
+    <table width="100%" border="0" summary="Footer navigation">
+      <tr>
+        <td width="33%" align="left">
+          <span class="footdate">
+            <xsl:call-template name="rcsdate.format">
+              <xsl:with-param name="rcsdate"
+                              select="$page/config[@param='rcsdate']/@value"/>
+            </xsl:call-template>
+          </span>
+        </td>
+        <td width="34%" align="center">
+          <xsl:choose>
+            <xsl:when test="not($toc)">
+              <xsl:message>
+                <xsl:text>Cannot determine TOC for </xsl:text>
+                <xsl:value-of select="$page/@id"/>
+              </xsl:message>
+            </xsl:when>
+            <xsl:when test="$toc/@id = $page/@id">
+              <!-- nop; this is the home page -->
+            </xsl:when>
+            <xsl:otherwise>
+              <span class="foothome">
+                <a>
+                  <xsl:attribute name="href">
+                    <xsl:call-template name="homeuri"/>
+                  </xsl:attribute>
+                  <xsl:call-template name="gentext.nav.home"/>
+                </a>
+                <xsl:if test="$footers">
+                  <xsl:text> | </xsl:text>
+                </xsl:if>
+              </span>
+            </xsl:otherwise>
+          </xsl:choose>
+
+          <xsl:apply-templates select="$footers" mode="footer.link.mode"/>
+        </td>
+        <td width="33%" align="right">
+            <xsl:choose>
+              <xsl:when test="$feedback != ''">
+                <span class="footfeed">
+                  <a>
+                    <xsl:choose>
+                      <xsl:when test="$feedback.with.ids != 0">
+                        <xsl:attribute name="href">
+                          <xsl:value-of select="$feedback"/>
+                          <xsl:value-of select="$page/@id"/>
+                        </xsl:attribute>
+                      </xsl:when>
+                      <xsl:otherwise>
+                        <xsl:attribute name="href">
+                          <xsl:value-of select="$feedback"/>
+                        </xsl:attribute>
+                      </xsl:otherwise>
+                    </xsl:choose>
+                    <xsl:value-of select="$feedback.link.text"/>
+                  </a>
+                </span>
+              </xsl:when>
+              <xsl:otherwise>&#160;</xsl:otherwise>
+            </xsl:choose>
+        </td>
+      </tr>
+      <tr>
+        <td colspan="3" align="right">
+          <span class="footcopy">
+            <xsl:choose>
+              <xsl:when test="head/copyright">
+                <xsl:apply-templates select="head/copyright" mode="footer.mode"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:apply-templates mode="footer.mode"
+                                     select="$autolayout/autolayout/copyright"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </span>
+        </td>
+      </tr>
+      <xsl:if test="$sequential.links != 0">
+        <tr>
+          <xsl:variable name="prev">
+            <xsl:call-template name="prev.page"/>
+          </xsl:variable>
+          <xsl:variable name="next">
+            <xsl:call-template name="next.page"/>
+          </xsl:variable>
+          <xsl:variable name="ptoc"
+                        select="$autolayout/autolayout//*[$prev=@id]"/>
+          <xsl:variable name="ntoc"
+                        select="$autolayout/autolayout//*[$next=@id]"/>
+
+          <td align="left" valign="top">
+            <xsl:choose>
+              <xsl:when test="$prev != ''">
+                <xsl:call-template name="link.to.page">
+                  <xsl:with-param name="frompage" select="$tocentry"/>
+                  <xsl:with-param name="page" select="$ptoc"/>
+                  <xsl:with-param name="linktext" select="'Prev'"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:otherwise>&#160;</xsl:otherwise>
+            </xsl:choose>
+          </td>
+          <td>&#160;</td>
+          <td align="right" valign="top">
+            <xsl:choose>
+              <xsl:when test="$next != ''">
+                <xsl:call-template name="link.to.page">
+                  <xsl:with-param name="frompage" select="$tocentry"/>
+                  <xsl:with-param name="page" select="$ntoc"/>
+                  <xsl:with-param name="linktext" select="'Next'"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:otherwise>&#160;</xsl:otherwise>
+            </xsl:choose>
+          </td>
+        </tr>
+      </xsl:if>
+    </table>
+  </div>
+</xsl:template>
+
+<xsl:template name="rcsdate.format">
+  <xsl:param name="rcsdate" select="./config[@param='rcsdate']/@value"/>
+  <xsl:value-of select="$rcsdate"/>
+</xsl:template>
+
+<xsl:template match="config" mode="footer.link.mode">
+  <span class="foothome">
+    <xsl:if test="position() &gt; 1">
+      <xsl:text> | </xsl:text>
+    </xsl:if>
+    <xsl:choose>
+      <xsl:when test="@param='footlink'">
+        <xsl:variable name="id" select="@value"/>
+        <xsl:variable name="tocentry"
+                      select="$autolayout//*[@id=$id]"/>
+        <xsl:if test="count($tocentry) != 1">
+          <xsl:message>
+            <xsl:text>Footlink to </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> does not id a unique page.</xsl:text>
+          </xsl:message>
+        </xsl:if>
+        <xsl:variable name="dir">
+          <xsl:choose>
+            <xsl:when test="starts-with($tocentry/@dir, '/')">
+              <xsl:value-of select="substring($tocentry/@dir, 2)"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="$tocentry/@dir"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+        <a>
+          <xsl:attribute name="href">
+            <xsl:call-template name="root-rel-path"/>
+            <xsl:value-of select="$dir"/>
+            <xsl:value-of select="$filename-prefix"/>
+            <xsl:value-of select="$tocentry/@filename"/>
+          </xsl:attribute>
+          <xsl:value-of select="@altval"/>
+        </a>
+      </xsl:when>
+      <xsl:otherwise>
+        <a href="{@value}">
+          <xsl:value-of select="@altval"/>
+        </a>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="homeuri">
+  <xsl:param name="page" select="ancestor-or-self::webpage"/>
+  <xsl:variable name="id" select="$page/@id"/>
+  <xsl:variable name="tocentry"
+                select="$autolayout//*[@id=$id]"/>
+  <xsl:variable name="toc" select="$tocentry/ancestor::toc"/>
+  <xsl:variable name="first-toc"
+                select="$autolayout/autolayout/toc[1]"/>
+
+  <xsl:call-template name="root-rel-path"/>
+  <xsl:choose>
+    <xsl:when test="$toc">
+      <xsl:choose>
+        <xsl:when test="starts-with($toc/@dir, '/')">
+          <xsl:value-of select="substring($toc/@dir, 2)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$toc/@dir"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:value-of select="$filename-prefix"/>
+      <xsl:value-of select="$toc/@filename"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="starts-with($first-toc/@dir, '/')">
+          <xsl:value-of select="substring($first-toc/@dir, 2)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$first-toc/@dir"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:value-of select="$filename-prefix"/>
+      <xsl:value-of select="$first-toc/@filename"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="copyright" mode="footer.mode">
+  <span class="{name(.)}">
+    <xsl:call-template name="gentext.element.name"/>
+    <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:apply-templates select="year" mode="footer.mode"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="holder" mode="footer.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="year" mode="footer.mode">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="footer.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="footer.mode">
+  <xsl:apply-templates/>
+  <xsl:if test="position() != last()">, </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="config">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="head">
+</xsl:template>
+
+<xsl:template match="head/title" mode="title.mode">
+  <h1><xsl:apply-templates/></h1>
+</xsl:template>
+
+<xsl:template match="head/title">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="directory-depth">
+  <xsl:param name="dir"></xsl:param>
+  <xsl:param name="count" select="0"/>
+
+  <xsl:choose>
+    <xsl:when test='contains($dir,"/")'>
+      <xsl:call-template name="directory-depth">
+        <xsl:with-param name="dir" select="substring-after($dir,'/')"/>
+        <xsl:with-param name="count" select="$count + 1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test='$dir=""'>
+          <xsl:value-of select="$count"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$count + 1"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="root-rel-path">
+  <xsl:param name="webpage" select="ancestor-or-self::webpage"/>
+  <xsl:variable name="tocentry" select="$autolayout//*[$webpage/@id=@id]"/>
+  <xsl:apply-templates select="$tocentry" mode="toc-rel-path"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="footnote" mode="footnote.number">
+  <xsl:choose>
+    <xsl:when test="ancestor::table|ancestor::informaltable">
+      <xsl:number level="any" from="table|informaltable" format="a"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:number level="any" from="webpage" format="1"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.footnotes">
+  <!-- we're only interested in footnotes that occur on this page, not
+       on descendants of this page (which will be similarly processed) -->
+  <xsl:variable name="thispage"
+                select="ancestor-or-self::webpage"/>
+  <xsl:variable name="footnotes"
+                select=".//footnote[ancestor-or-self::webpage=$thispage]"/>
+  <xsl:variable name="table.footnotes"
+                select=".//table//footnote[ancestor-or-self::webpage=$thispage]
+                        |.//informaltable//footnote[ancestor-or-self::webpage
+                                    =$thispage]"/>
+
+  <!-- Only bother to do this if there's at least one non-table footnote -->
+  <xsl:if test="count($footnotes)>count($table.footnotes)">
+    <div class="footnotes">
+      <hr width="100" align="left"/>
+      <xsl:apply-templates select="$footnotes" mode="process.footnote.mode"/>
+    </div>
+  </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:*">
+  <xsl:element name="{local-name(.)}" namespace="">
+    <xsl:apply-templates select="@*" mode="copy"/>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('php')">
+  <xsl:processing-instruction name="php">
+    <xsl:value-of select="."/>
+  </xsl:processing-instruction>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="rddl:*" xmlns:rddl='http://www.rddl.org/'>
+  <xsl:element name="{name(.)}">
+    <xsl:apply-templates select="@*" mode="copy"/>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="section[@rddl]" xmlns:rddl='http://www.rddl.org/'>
+  <xsl:variable name="rddl" select="id(@rddl)"/>
+  <xsl:choose>
+    <xsl:when test="local-name($rddl) != 'resource'">
+      <xsl:message>
+        <xsl:text>Warning: section rddl isn't an rddl:resource: </xsl:text>
+        <xsl:value-of select="@rddl"/>
+      </xsl:message>
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:element name="{name($rddl)}">
+        <xsl:apply-templates select="$rddl/@*" mode="copy"/>
+        <xsl:apply-imports/>
+      </xsl:element>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="page.uri">
+  <xsl:param name="href" select="''"/>
+  <xsl:param name="page" select="ancestor-or-self::tocentry"/>
+  <xsl:param name="relpath">
+    <xsl:call-template name="toc-rel-path">
+      <xsl:with-param name="pageid" select="$page/@id"/>
+    </xsl:call-template>
+  </xsl:param>
+
+<!--
+  <xsl:message><xsl:value-of select="$page/@id"/>: <xsl:value-of select="$relpath"/></xsl:message>
+-->
+
+  <xsl:variable name="dir">
+    <xsl:choose>
+      <xsl:when test="starts-with($page/@dir, '/')">
+        <xsl:value-of select="substring($page/@dir, 2)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$page/@dir"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="html.href">
+    <xsl:choose>
+      <xsl:when test="$href != ''">
+        <xsl:value-of select="$href"/>
+      </xsl:when>
+      <xsl:when test="$page/@href">
+	<xsl:value-of select="$page/@href"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="concat($relpath,$dir,$filename-prefix)"/>
+        <xsl:value-of select="$page/@filename"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:value-of select="$html.href"/>
+</xsl:template>
+
+<xsl:template name="link.to.page">
+  <xsl:param name="href" select="''"/>
+  <xsl:param name="frompage"/>
+  <xsl:param name="page" select="ancestor-or-self::tocentry"/>
+  <xsl:param name="relpath">
+    <xsl:choose>
+      <xsl:when test="$frompage">
+        <xsl:call-template name="toc-rel-path">
+          <xsl:with-param name="pageid" select="$frompage/@id"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="toc-rel-path">
+          <xsl:with-param name="pageid" select="$page/@id"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+  <xsl:param name="linktext" select="'???'"/>
+
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="page.uri">
+        <xsl:with-param name="href" select="$href"/>
+        <xsl:with-param name="page" select="$page"/>
+        <xsl:with-param name="relpath" select="$relpath"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:if test="summary">
+      <xsl:attribute name="title">
+        <xsl:value-of select="normalize-space(string(summary))"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:copy-of select="$linktext"/>
+  </a>
+</xsl:template>
+
+<xsl:template name="next.page">
+  <xsl:param name="page" select="ancestor-or-self::webpage"/>
+  <xsl:variable name="id" select="$page/@id"/>
+  <xsl:variable name="tocentry"
+                select="$autolayout//*[@id=$id]"/>
+  <xsl:variable name="next-following"
+                select="$tocentry/following::tocentry[1]"/>
+  <xsl:variable name="next-child"
+                select="$tocentry/descendant::tocentry[1]"/>
+
+  <xsl:variable name="nextid">
+    <xsl:choose>
+      <xsl:when test="$next-child">
+        <xsl:value-of select="$next-child/@id"/>
+      </xsl:when>
+      <xsl:when test="$next-following">
+        <xsl:value-of select="$next-following/@id"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:value-of select="$nextid"/>
+</xsl:template>
+
+<xsl:template name="prev.page">
+  <xsl:param name="page" select="ancestor-or-self::webpage"/>
+  <xsl:variable name="id" select="$page/@id"/>
+  <xsl:variable name="tocentry"
+                select="$autolayout//*[@id=$id]"/>
+  <xsl:variable name="prev-ancestor"
+                select="($tocentry/ancestor::tocentry
+                        |$tocentry/ancestor::toc)[last()]"/>
+  <xsl:variable name="prev-sibling"
+                select="$tocentry/preceding-sibling::tocentry[1]"/>
+
+  <xsl:variable name="previd">
+    <xsl:choose>
+      <xsl:when test="$prev-sibling">
+        <xsl:value-of select="$prev-sibling/@id"/>
+      </xsl:when>
+      <xsl:when test="$prev-ancestor">
+        <xsl:value-of select="$prev-ancestor/@id"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:value-of select="$previd"/>
+</xsl:template>
+
+<xsl:template name="top.page">
+  <xsl:param name="page" select="ancestor-or-self::webpage"/>
+  <xsl:variable name="id" select="$page/@id"/>
+  <xsl:variable name="tocentry"
+                select="$autolayout//*[@id=$id]"/>
+
+  <xsl:value-of select="$tocentry/ancestor::toc/@id"/>
+</xsl:template>
+
+<xsl:template name="up.page">
+  <xsl:param name="page" select="ancestor-or-self::webpage"/>
+  <xsl:variable name="id" select="$page/@id"/>
+  <xsl:variable name="tocentry"
+                select="$autolayout//*[@id=$id]"/>
+
+  <xsl:choose>
+    <xsl:when test="$tocentry/ancestor::tocentry">
+      <xsl:value-of select="$tocentry/ancestor::tocentry[1]/@id"/>
+    </xsl:when>
+    <xsl:when test="$tocentry/ancestor::toc">
+      <xsl:value-of select="$tocentry/ancestor::toc[1]/@id"/>
+    </xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="first.page">
+  <xsl:param name="page" select="ancestor-or-self::webpage"/>
+  <xsl:variable name="id" select="$page/@id"/>
+  <xsl:variable name="tocentry"
+                select="$autolayout//*[@id=$id]"/>
+
+  <xsl:value-of select="$tocentry/preceding-sibling::tocentry[last()]/@id"/>
+</xsl:template>
+
+<xsl:template name="last.page">
+  <xsl:param name="page" select="ancestor-or-self::webpage"/>
+  <xsl:variable name="id" select="$page/@id"/>
+  <xsl:variable name="tocentry"
+                select="$autolayout//*[@id=$id]"/>
+
+  <xsl:variable name="prev-sibling"
+                select="$tocentry/preceding-sibling::tocentry[1]"/>
+
+  <xsl:value-of select="$tocentry/following-sibling::tocentry[last()]/@id"/>
+</xsl:template>
+
+<xsl:template match="autolayout" mode="collect.targets">
+  <targetset>
+    <xsl:apply-templates mode="olink.mode"/>
+  </targetset>
+</xsl:template>
+
+<xsl:template match="toc|tocentry|notoc" mode="olink.mode">
+    <xsl:text>&#10;</xsl:text>
+    <xsl:call-template name="tocentry"/>
+    <xsl:apply-templates select="tocentry" mode="olink.mode"/>
+</xsl:template>
+
+
+<xsl:template name="tocentry">
+  <xsl:choose>
+    <xsl:when test="@href">
+      <!-- no op -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="not(@page)">
+        <xsl:message terminate="yes">
+          <xsl:text>All toc entries must have a page attribute.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+    
+      <xsl:variable name="page" select="document(@page,.)"/>
+    
+      <xsl:if test="not($page/*[1]/@id)">
+        <xsl:message terminate="yes">
+          <xsl:value-of select="@page"/>
+          <xsl:text>: missing ID.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+    
+      <xsl:variable name="id" select="$page/*[1]/@id"/>
+    
+      <xsl:variable name="filename">
+        <xsl:choose>
+          <xsl:when test="@filename">
+            <xsl:value-of select="$filename-prefix"/>
+            <xsl:value-of select="@filename"/>
+          </xsl:when>
+          <xsl:when test="/layout/config[@param='default-filename']">
+            <xsl:value-of select="$filename-prefix"/>
+            <xsl:value-of select="(/layout/config[@param='default-filename'])[1]/@value"/>
+          </xsl:when>
+          <xsl:otherwise><xsl:value-of select="$filename-prefix"/>index.html</xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+    
+      <xsl:variable name="dir" select="@dir"/>
+    
+      <xsl:if test="$filename = ''">
+        <xsl:message terminate="yes">
+          <xsl:value-of select="@page"/>
+          <xsl:text>: missing filename.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+    
+    <!--
+      <xsl:message>
+        <xsl:value-of select="@page"/>
+        <xsl:text>: </xsl:text>
+        <xsl:if test="$dir != ''">
+          <xsl:value-of select="$dir"/>
+        </xsl:if>
+        <xsl:value-of select="$filename"/>
+      </xsl:message>
+    -->
+    
+      <document>
+        <xsl:attribute name="targetdoc">
+          <xsl:value-of select="$id"/>
+        </xsl:attribute>
+        <xsl:attribute name="baseuri">
+          <xsl:value-of select="$filename"/>
+        </xsl:attribute>
+        <xsl:if test="$dir != ''">
+          <xsl:attribute name="dir">
+            <xsl:value-of select="$dir"/>
+          </xsl:attribute>
+        </xsl:if>
+    
+        <xsl:apply-templates select="$page" mode="olink.mode"/>
+      </document>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="webpage" mode="olink.mode">
+  <xsl:call-template name="div"/>
+</xsl:template>
+
+<xsl:template match="webpage" 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>
+  <!-- FIXME: What about "in Chapter X"? -->
+</xsl:template>
+
+<xsl:template match="webpage" mode="title.markup">
+  <xsl:param name="allow-anchors" select="0"/>
+  <xsl:apply-templates select="head/title"
+                       mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:param name="local.l10n.xml" select="document('')" />
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"> 
+  <l:l10n language="en">
+    <l:context name="title">
+      <l:template name="webpage" text="%t"/>
+    </l:context>
+    <l:context name="xref">
+      <l:template name="webpage" text="%t"/>
+    </l:context>
+  </l:l10n>
+  <l:l10n language="de">
+    <l:context name="title">
+      <l:template name="webpage" text="%t"/>
+    </l:context>
+    <l:context name="xref">
+      <l:template name="webpage" text="%t"/>
+    </l:context>
+  </l:l10n>
+  <l:l10n language="fr">
+    <l:context name="title">
+      <l:template name="webpage" text="%t"/>
+    </l:context>
+    <l:context name="xref">
+      <l:template name="webpage" text="%t"/>
+    </l:context>
+  </l:l10n>
+  <l:l10n language="es">
+    <l:context name="title">
+      <l:template name="webpage" text="%t"/>
+    </l:context>
+    <l:context name="xref">
+      <l:template name="webpage" text="%t"/>
+    </l:context>
+  </l:l10n>
+</l:i18n>
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/website-targets.xsl b/applications/content/template/docbook/website/website-targets.xsl
new file mode 100644
index 0000000..2cd0b25
--- /dev/null
+++ b/applications/content/template/docbook/website/website-targets.xsl
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:import href="tabular.xsl"/>
+
+<xsl:output method="xml" 
+         indent="no" 
+	 encoding="utf-8"
+         doctype-public="-//Norman Walsh//DTD DocBook OLink Summary V2.0//EN"
+         doctype-system="http://docbook.sourceforge.net/release/xsl/current/common/targetdatabase.dtd"/>
+
+
+<!-- Used only when processing autolayout.xml -->
+<xsl:template match="/">
+  <xsl:apply-templates mode="collect.targets"/>
+</xsl:template>
+
+<xsl:template match="*"/>
+
+<xsl:template match="autolayout" mode="collect.targets">
+  <targetset>
+    <xsl:apply-templates mode="olink.mode"/>
+  </targetset>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/website.xsl b/applications/content/template/docbook/website/website.xsl
new file mode 100644
index 0000000..a26cdd8
--- /dev/null
+++ b/applications/content/template/docbook/website/website.xsl
@@ -0,0 +1,132 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:html='http://www.w3.org/1999/xhtml'
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc html"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the WebSite distribution.
+     See ../README or http://nwalsh.com/website/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="website-common.xsl"/>
+<xsl:include href="toc.xsl"/>
+
+<xsl:output method="html"
+            indent="no"/>
+
+<xsl:param name="autolayout" select="document($autolayout-file,/*[1])"/>
+
+<xsl:attribute-set name="body.attributes"/>
+
+<xsl:template name="body.attributes">
+  <!-- Turn off the template from the stock DocBook XSL -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="webpage">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="tocentry" select="$autolayout/autolayout//*[$id=@id]"/>
+  <xsl:variable name="toc" select="$tocentry/ancestor-or-self::toc"/>
+
+  <html>
+    <xsl:apply-templates select="head" mode="head.mode"/>
+    <xsl:apply-templates select="config" mode="head.mode"/>
+    <body class="website">
+      <xsl:call-template name="body.attributes"/>
+
+      <div class="{name(.)}">
+        <a name="{$id}"/>
+
+        <xsl:if test="$banner.before.navigation != 0">
+          <xsl:call-template name="allpages.banner"/>
+        </xsl:if>
+
+        <xsl:if test="$toc">
+          <div class="navhead">
+            <xsl:apply-templates select="$toc">
+              <xsl:with-param name="pageid" select="@id"/>
+            </xsl:apply-templates>
+            <xsl:if test="$header.hr != 0"><hr/></xsl:if>
+          </div>
+        </xsl:if>
+
+        <xsl:if test="$banner.before.navigation = 0">
+          <xsl:call-template name="allpages.banner"/>
+        </xsl:if>
+
+        <xsl:apply-templates select="./head/title" mode="title.mode"/>
+
+        <xsl:apply-templates select="child::node()[not(self::webpage)]"/>
+
+        <xsl:call-template name="process.footnotes"/>
+
+        <xsl:call-template name="webpage.footer"/>
+      </div>
+    </body>
+  </html>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="webtoc">
+  <xsl:variable name="webpage" select="ancestor::webpage"/>
+  <xsl:variable name="relpath">
+    <xsl:call-template name="root-rel-path">
+      <xsl:with-param name="webpage" select="$webpage"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="pageid" select="$webpage/@id"/>
+
+  <xsl:variable name="pages"
+                select="$autolayout//*[$pageid=@id]/tocentry"/>
+
+  <xsl:if test="count($pages) > 0">
+    <ul class="toc">
+      <xsl:for-each select="$pages">
+        <li>
+          <a>
+            <xsl:attribute name="href">
+              <xsl:choose>
+                <xsl:when test="@href">
+                  <xsl:value-of select="@href"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="$relpath"/>
+                  <xsl:value-of select="@dir"/>
+                  <xsl:value-of select="$filename-prefix"/>
+                  <xsl:value-of select="@filename"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+            <xsl:apply-templates select="title"/>
+          </a>
+          <xsl:if test="summary">
+            <xsl:text>--</xsl:text>
+            <xsl:apply-templates select="summary"/>
+          </xsl:if>
+        </li>
+      </xsl:for-each>
+    </ul>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="toc/summary|tocentry/summary|notoc/summary">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/website/xbel.xsl b/applications/content/template/docbook/website/xbel.xsl
new file mode 100644
index 0000000..4d40ffa
--- /dev/null
+++ b/applications/content/template/docbook/website/xbel.xsl
@@ -0,0 +1,114 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:output method="xml"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="xbel">
+  <ul>
+    <xsl:apply-templates/>
+  </ul>
+</xsl:template>
+
+<!-- Only partial support for xbel elements -->
+<xsl:template match="xbel/info|xbel/title|xbel/desc|
+                     xbel/alias|xbel/separator">
+  <!-- No op -->
+</xsl:template>
+
+<xsl:template match="folder">
+  <li>
+    <xsl:apply-templates select="title"/>
+    <ul>
+      <xsl:apply-templates select="folder|bookmark"/>
+    </ul>
+  </li>
+</xsl:template>
+
+<xsl:template match="folder/title">
+    <b><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match="bookmark">
+  <li>
+    <a href="{@href}" target="_top">
+      <xsl:apply-templates select="title"/>
+    </a>
+  </li>
+</xsl:template>
+
+<xsl:template match="bookmark/title">
+    <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="xbel" mode="dynamic">
+  <ul>
+    <xsl:apply-templates mode="dynamic"/>
+  </ul>
+</xsl:template>
+
+<xsl:template match="info" mode="dynamic">
+</xsl:template>
+
+<xsl:template match="folder" mode="dynamic">
+  <li>
+    <xsl:apply-templates select="title" mode="dynamic"/>
+    <ul style="display:none" id="{@id}">
+      <xsl:apply-templates select="folder|bookmark" mode="dynamic"/>
+    </ul>
+  </li>
+</xsl:template>
+
+<xsl:template match="folder/title" mode="dynamic">
+  <b>
+    <span>
+      <xsl:choose>
+	<xsl:when test="../@id">
+	  <xsl:attribute name="onClick">
+	    <xsl:text>toggleList('</xsl:text>
+	    <xsl:value-of select="../@id"/>
+	    <xsl:text>')</xsl:text>
+	  </xsl:attribute>
+	  <xsl:attribute name="class">exlist</xsl:attribute>
+	  <xsl:attribute name="style">color: blue</xsl:attribute>
+	  <xsl:apply-templates mode="dynamic"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:apply-templates mode="dynamic"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </span>
+  </b>
+</xsl:template>
+
+<xsl:template match="bookmark" mode="dynamic">
+  <li>
+    <a href="{@href}" target="_top">
+      <xsl:apply-templates select="title" mode="dynamic"/>
+    </a>
+  </li>
+</xsl:template>
+
+<xsl:template match="bookmark/title" mode="dynamic">
+    <xsl:apply-templates mode="dynamic"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/admon.xsl b/applications/content/template/docbook/xhtml-1_1/admon.xsl
new file mode 100644
index 0000000..52c1573
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/admon.xsl
@@ -0,0 +1,138 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="*" mode="admon.graphic.width">
+  <xsl:param name="node" select="."/>
+  <xsl:text>25</xsl:text>
+</xsl:template>
+
+<xsl:template match="note|important|warning|caution|tip">
+  <xsl:choose>
+    <xsl:when test="$admon.graphics != 0">
+      <xsl:call-template name="graphical.admonition"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="nongraphical.admonition"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="admon.graphic">
+  <xsl:param name="node" select="."/>
+  <xsl:value-of select="$admon.graphics.path"/>
+  <xsl:choose>
+    <xsl:when test="local-name($node)='note'">note</xsl:when>
+    <xsl:when test="local-name($node)='warning'">warning</xsl:when>
+    <xsl:when test="local-name($node)='caution'">caution</xsl:when>
+    <xsl:when test="local-name($node)='tip'">tip</xsl:when>
+    <xsl:when test="local-name($node)='important'">important</xsl:when>
+    <xsl:otherwise>note</xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$admon.graphics.extension"/>
+</xsl:template>
+
+<xsl:template name="graphical.admonition">
+  <xsl:variable name="admon.type">
+    <xsl:choose>
+      <xsl:when test="local-name(.)='note'">Note</xsl:when>
+      <xsl:when test="local-name(.)='warning'">Warning</xsl:when>
+      <xsl:when test="local-name(.)='caution'">Caution</xsl:when>
+      <xsl:when test="local-name(.)='tip'">Tip</xsl:when>
+      <xsl:when test="local-name(.)='important'">Important</xsl:when>
+      <xsl:otherwise>Note</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="alt">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="$admon.type"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="$admon.style != ''">
+      <xsl:attribute name="style">
+        <xsl:value-of select="$admon.style"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <table border="{$table.border.off}">
+      <!-- omit summary attribute in html5 output -->
+      <xsl:if test="$div.element != 'section'">
+        <xsl:attribute name="summary">
+          <xsl:value-of select="$admon.type"/>
+          <xsl:if test="title|info/title">
+            <xsl:text>: </xsl:text>
+            <xsl:value-of select="(title|info/title)[1]"/>
+          </xsl:if>
+        </xsl:attribute>
+      </xsl:if>
+      <tr>
+        <td rowspan="2" align="center" valign="top">
+          
+          <img alt="[{$alt}]">
+            <xsl:attribute name="src">
+              <xsl:call-template name="admon.graphic"/>
+            </xsl:attribute>
+          </img>
+        </td>
+        <th align="{$direction.align.start}">
+          <xsl:call-template name="anchor"/>
+          <xsl:if test="$admon.textlabel != 0 or title or info/title">
+            <xsl:apply-templates select="." mode="object.title.markup"/>
+          </xsl:if>
+        </th>
+      </tr>
+      <tr>
+        <td align="{$direction.align.start}" valign="top">
+          <xsl:apply-templates/>
+        </td>
+      </tr>
+    </table>
+  </div>
+</xsl:template>
+
+<xsl:template name="nongraphical.admonition">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="$admon.style">
+      <xsl:attribute name="style">
+        <xsl:value-of select="$admon.style"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$admon.textlabel != 0 or title or info/title">
+      <h3 class="title">
+        <xsl:call-template name="anchor"/>
+        <xsl:apply-templates select="." mode="object.title.markup"/>
+      </h3>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="note/title"/>
+<xsl:template match="important/title"/>
+<xsl:template match="warning/title"/>
+<xsl:template match="caution/title"/>
+<xsl:template match="tip/title"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/annotations.xsl b/applications/content/template/docbook/xhtml-1_1/annotations.xsl
new file mode 100644
index 0000000..00f2cca
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/annotations.xsl
@@ -0,0 +1,158 @@
+<?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="add.annotation.links">
+  <xsl:param name="scripts" select="normalize-space($annotation.js)"/>
+  <xsl:choose>
+    <xsl:when test="contains($scripts, ' ')">
+      <script type="text/javascript" src="{substring-before($scripts, ' ')}"/>
+      <xsl:call-template name="add.annotation.links">
+        <xsl:with-param name="scripts" select="substring-after($scripts, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <script type="text/javascript" src="{$scripts}"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="annotation"/>
+
+<xsl:template name="apply-annotations">
+  <xsl:if test="$annotation.support != 0">
+  <!-- do any annotations apply to the context node? -->
+  <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
+
+  <xsl:variable name="aids">
+    <xsl:for-each select="//annotation">
+      <xsl:if test="@annotates=$id                     or starts-with(@annotates, concat($id, ' '))                     or contains(@annotates, concat(' ', $id, ' '))                     or substring(@annotates, string-length(@annotates)-3)                        = concat(' ', $id)">
+        <xsl:value-of select="generate-id()"/>
+        <xsl:text> </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:if test="normalize-space(@annotations) != ''">
+      <xsl:call-template name="annotations-pointed-to">
+        <xsl:with-param name="annotations" select="normalize-space(@annotations)"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="$aids != ''">
+    <xsl:call-template name="apply-annotations-by-gid">
+      <xsl:with-param name="gids" select="normalize-space($aids)"/>
+    </xsl:call-template>
+  </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="annotations-pointed-to">
+  <xsl:param name="annotations"/>
+  <xsl:choose>
+    <xsl:when test="contains($annotations, ' ')">
+      <xsl:variable name="a" select="key('id', substring-before($annotations, ' '))"/>
+      <xsl:if test="$a">
+        <xsl:value-of select="generate-id($a)"/>
+        <xsl:text> </xsl:text>
+      </xsl:if>
+      <xsl:call-template name="annotations-pointed-to">
+        <xsl:with-param name="annotations" select="substring-after($annotations, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="a" select="key('id', $annotations)"/>
+      <xsl:if test="$a">
+        <xsl:value-of select="generate-id($a)"/>
+        <xsl:text> </xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="apply-annotations-by-gid">
+  <xsl:param name="gids"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($gids, ' ')">
+      <xsl:variable name="gid" select="substring-before($gids, ' ')"/>
+      <xsl:apply-templates select="key('gid', $gid)" mode="annotation-inline"/>
+      <xsl:call-template name="apply-annotations-by-gid">
+        <xsl:with-param name="gids" select="substring-after($gids, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="key('gid', $gids)" mode="annotation-inline"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="annotation" mode="annotation-inline">
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="title">
+        <xsl:value-of select="title"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>[Annotation #</xsl:text>
+        <xsl:number count="annotation" level="any" format="1"/>
+        <xsl:text>]</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <a id="anch-{generate-id(.)}" href="#annot-{generate-id(.)}" title="{$title}">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:attribute name="onClick">
+      <xsl:text>popup_</xsl:text>
+      <xsl:value-of select="generate-id(.)"/>
+      <xsl:text>.showPopup('anch-</xsl:text>
+      <xsl:value-of select="generate-id(.)"/>
+      <xsl:text>'); return false;</xsl:text>
+    </xsl:attribute>
+    <img src="{$annotation.graphic.open}" alt="{$title}"/>
+  </a>
+</xsl:template>
+
+<xsl:template match="annotation" mode="annotation-popup">
+  <div class="annotation-nocss">
+    <p>
+      <a id="annot-{generate-id(.)}"/>
+      <xsl:text>Annotation #</xsl:text>
+      <xsl:number count="annotation" level="any" format="1"/>
+      <xsl:text>:</xsl:text>
+    </p>
+  </div>
+
+  <div id="popup-{generate-id(.)}" class="annotation-popup">
+    <xsl:if test="string-length(.) &gt; 300">
+      <xsl:attribute name="style">width:400px</xsl:attribute>
+    </xsl:if>
+
+    <xsl:call-template name="annotation-title"/>
+    <div class="annotation-body">
+      <xsl:apply-templates select="*[local-name(.) != 'title']"/>
+    </div>
+    <div class="annotation-close">
+      <a href="#" onclick="popup_{generate-id(.)}.hidePopup();return false;">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <img src="{$annotation.graphic.close}" alt="X"/>
+      </a>
+    </div>
+  </div>
+</xsl:template>
+
+<xsl:template name="annotation-title">
+  <div class="annotation-title">
+    <xsl:choose>
+      <xsl:when test="title">
+        <xsl:apply-templates select="title/node()"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>Annotation</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/autoidx-kimber.xsl b/applications/content/template/docbook/xhtml-1_1/autoidx-kimber.xsl
new file mode 100644
index 0000000..05c1044
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/autoidx-kimber.xsl
@@ -0,0 +1,139 @@
+<?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:k="http://www.isogen.com/functions/com.isogen.saxoni18n.Saxoni18nService" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="k" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "kimber" method contributed by Eliot Kimber of Innodata Isogen.  -->
+<!-- ==================================================================== -->
+<!--   *** THIS MODULE ONLY WORKS WITH SAXON 6 OR SAXON 8 ***             -->
+<!-- ==================================================================== -->
+
+
+<xsl:include href="../common/autoidx-kimber.xsl"/>
+
+<!-- Java sort apparently works only on lang part, not country -->
+<xsl:param name="sort.lang">
+  <xsl:choose>
+    <xsl:when test="contains(concat(/*/@lang, /*/@xml:lang), '-')">
+      <xsl:value-of select="substring-before(concat(/*/@lang, /*/@xml:lang), '-')"/>
+    </xsl:when>
+    <xsl:when test="contains(concat(/*/@lang, /*/@xml:lang), '_')">
+      <xsl:value-of select="substring-before(concat(/*/@lang, /*/@xml:lang), '_')"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="concat(/*/@lang, /*/@xml:lang)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:template name="generate-kimber-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="not(contains($vendor, 'SAXON '))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+      <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not(function-available('k:getIndexGroupKey'))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+      <xsl:text>Innodata Isogen 
+Java extensions for </xsl:text>
+      <xsl:text>internationalized indexes. 
+Install those </xsl:text>
+      <xsl:text>extensions, or use a different index method.
+</xsl:text>
+      <xsl:text>For more information, see:
+</xsl:text>
+      <xsl:text>http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="role">
+    <xsl:if test="$index.on.role != 0">
+      <xsl:value-of select="@role"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:if test="$index.on.type != 0">
+      <xsl:value-of select="@type"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="terms" select="//indexterm[count(.|key('k-group', k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, &quot; &quot;, primary))))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1 and not(@class = 'endofrange')]"/>
+
+  <xsl:variable name="alphabetical" select="$terms[not(starts-with(                 k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, &quot; &quot;, primary))),                 '#NUMERIC'                 ))]"/>
+
+  <xsl:variable name="others" select="$terms[starts-with(                 k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, &quot; &quot;, primary))),                 '#NUMERIC'                 )]"/>
+
+  <div class="index">
+    <xsl:if test="$others">
+      <div class="indexdev">
+        <h3>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'index symbols'"/>
+          </xsl:call-template>
+        </h3>
+        <dl>
+          <xsl:apply-templates select="$others" mode="index-symbol-div">
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort lang="{$sort.lang}" select="k:getIndexGroupSortKey(concat(/*/@lang, /*/@xml:lang),                         k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, &quot; &quot;, primary))))"/>
+          </xsl:apply-templates>
+        </dl>
+      </div>
+    </xsl:if>
+
+    <xsl:apply-templates select="$alphabetical" mode="index-div-kimber">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort lang="{$sort.lang}" select="k:getIndexGroupSortKey(concat(/*/@lang, /*/@xml:lang),                      k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, &quot; &quot;, primary))))"/>
+    </xsl:apply-templates>
+  </div>
+
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-kimber">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))"/>
+
+  <xsl:variable name="label" select="k:getIndexGroupLabel(concat(/*/@lang, /*/@xml:lang), $key)"/>
+
+  <xsl:if test="key('k-group', $label)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]">
+    <div class="indexdiv">
+      <h3>
+        <xsl:value-of select="$label"/>
+      </h3>
+      <dl>
+        <xsl:apply-templates select="key('k-group', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]                             [count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]                             [1])=1]" mode="index-primary">
+          <xsl:sort select="normalize-space(concat(primary/@sortas, &quot; &quot;, primary))" lang="{$sort.lang}"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+        </xsl:apply-templates>
+      </dl>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/autoidx-kosek.xsl b/applications/content/template/docbook/xhtml-1_1/autoidx-kosek.xsl
new file mode 100644
index 0000000..b9a2a1c
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/autoidx-kosek.xsl
@@ -0,0 +1,109 @@
+<?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:i="urn:cz-kosek:functions:index" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:func="http://exslt.org/functions" xmlns:k="http://www.isogen.com/functions/com.isogen.saxoni18n.Saxoni18nService" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" extension-element-prefixes="func exslt" exclude-result-prefixes="func exslt i l k" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "kosek" method contributed by Jirka Kosek. -->
+
+<xsl:include href="../common/autoidx-kosek.xsl"/>
+
+<xsl:template name="generate-kosek-index">
+  <xsl:param name="scope" select="(ancestor::book|/)[last()]"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="contains($vendor, 'libxslt')">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+      <xsl:text>work with the xsltproc XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="contains($vendor, 'Saxonica')">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+      <xsl:text>work with the Saxon 8 XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="$exsl.node.set.available = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the </xsl:text>
+      <xsl:text>exslt:node-set() function. Use a processor that </xsl:text>
+      <xsl:text>has it, or use a different index method.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not(function-available('i:group-index'))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the
+</xsl:text>
+      <xsl:text>index extension functions be imported:
+</xsl:text>
+      <xsl:text>  xsl:import href="common/autoidx-kosek.xsl"</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="role">
+    <xsl:if test="$index.on.role != 0">
+      <xsl:value-of select="@role"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:if test="$index.on.type != 0">
+      <xsl:value-of select="@type"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="terms" select="//indexterm[count(.|key('group-code', i:group-index(normalize-space(concat(primary/@sortas, &quot; &quot;, primary))))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1 and not(@class = 'endofrange')]"/>
+
+  <div class="index">
+    <xsl:apply-templates select="$terms" mode="index-div-kosek">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="i:group-index(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))" data-type="number"/>
+    </xsl:apply-templates>
+  </div>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-kosek">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="i:group-index(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))"/>
+
+  <xsl:variable name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:variable>
+
+  <xsl:if test="key('group-code', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]">
+    <div class="indexdiv">
+      <h3>
+        <xsl:value-of select="i:group-letter($key)"/>
+      </h3>
+      <dl>
+        <xsl:apply-templates select="key('group-code', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])=1]" mode="index-primary">
+          <xsl:sort select="normalize-space(concat(primary/@sortas, &quot; &quot;, primary))" lang="{$lang}"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+        </xsl:apply-templates>
+      </dl>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/autoidx-ng.xsl b/applications/content/template/docbook/xhtml-1_1/autoidx-ng.xsl
new file mode 100644
index 0000000..6e5c042
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/autoidx-ng.xsl
@@ -0,0 +1,21 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheet distribution.
+     See ../README or http://docbook.sf.net/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- You should have this directly in your customization file. -->
+<!-- This file is there only to retain backward compatibility. -->
+<xsl:import href="autoidx-kosek.xsl"/>
+<xsl:param name="index.method">kosek</xsl:param>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/autoidx.xsl b/applications/content/template/docbook/xhtml-1_1/autoidx.xsl
new file mode 100644
index 0000000..7efb4cc
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/autoidx.xsl
@@ -0,0 +1,735 @@
+<?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:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" extension-element-prefixes="exslt" exclude-result-prefixes="exslt" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "basic" method derived from Jeni Tennison's work. -->
+<!-- The "kosek" method contributed by Jirka Kosek. -->
+<!-- The "kimber" method contributed by Eliot Kimber of Innodata Isogen. -->
+
+<xsl:variable name="kimber.imported" select="0"/>
+<xsl:variable name="kosek.imported" select="0"/>
+
+<xsl:key name="letter" match="indexterm" use="translate(substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1),'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+
+<xsl:key name="primary" match="indexterm" use="normalize-space(concat(primary/@sortas, &quot; &quot;, primary))"/>
+
+<xsl:key name="secondary" match="indexterm" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)))"/>
+
+<xsl:key name="tertiary" match="indexterm" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)))"/>
+
+<xsl:key name="endofrange" match="indexterm[@class='endofrange']" use="@startref"/>
+
+<xsl:key name="primary-section" match="indexterm[not(secondary) and not(see)]" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]))"/>
+
+<xsl:key name="secondary-section" match="indexterm[not(tertiary) and not(see)]" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]))"/>
+
+<xsl:key name="tertiary-section" match="indexterm[not(see)]" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)), &quot; &quot;, generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]))"/>
+
+<xsl:key name="see-also" match="indexterm[seealso]" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)), &quot; &quot;, seealso)"/>
+
+<xsl:key name="see" match="indexterm[see]" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)), &quot; &quot;, see)"/>
+
+<xsl:key name="sections" match="*[@id or @xml:id]" use="@id|@xml:id"/>
+
+
+<xsl:template name="generate-index">
+  <xsl:param name="scope" select="(ancestor::book|/)[last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="$index.method = 'kosek'">
+      <xsl:call-template name="generate-kosek-index">
+        <xsl:with-param name="scope" select="$scope"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$index.method = 'kimber'">
+      <xsl:call-template name="generate-kimber-index">
+        <xsl:with-param name="scope" select="$scope"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="generate-basic-index">
+        <xsl:with-param name="scope" select="$scope"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+      
+<xsl:template name="generate-basic-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="role">
+    <xsl:if test="$index.on.role != 0">
+      <xsl:value-of select="@role"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:if test="$index.on.type != 0">
+      <xsl:value-of select="@type"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="terms" select="//indexterm                         [count(.|key('letter',                           translate(substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1),                              'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;',                              'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))                           [count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1                           and not(@class = 'endofrange')]"/>
+
+  <xsl:variable name="alphabetical" select="$terms[contains(concat('Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'),                                         substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1))]"/>
+
+  <xsl:variable name="others" select="$terms[not(contains(concat('Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;',                                                  'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'),                                              substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1)))]"/>
+  <div class="index">
+    <xsl:if test="$others">
+      <xsl:choose>
+        <xsl:when test="normalize-space($type) != '' and                          $others[@type = $type][count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]">
+          <div class="indexdiv">
+            <h3>
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key" select="'index symbols'"/>
+              </xsl:call-template>
+            </h3>
+            <dl>
+              <xsl:apply-templates select="$others[count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-symbol-div">
+                <xsl:with-param name="position" select="position()"/>                                
+                <xsl:with-param name="scope" select="$scope"/>
+                <xsl:with-param name="role" select="$role"/>
+                <xsl:with-param name="type" select="$type"/>
+                <xsl:sort select="translate(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+              </xsl:apply-templates>
+            </dl>
+          </div>
+        </xsl:when>
+        <xsl:when test="normalize-space($type) != ''"> 
+          <!-- Output nothing, as there isn't a match for $other using this $type -->
+        </xsl:when>  
+        <xsl:otherwise>
+          <div class="indexdiv">
+            <h3>
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key" select="'index symbols'"/>
+              </xsl:call-template>
+            </h3>
+            <dl>
+              <xsl:apply-templates select="$others[count(.|key('primary',                                           normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-symbol-div">
+                <xsl:with-param name="position" select="position()"/>                                
+                <xsl:with-param name="scope" select="$scope"/>
+                <xsl:with-param name="role" select="$role"/>
+                <xsl:with-param name="type" select="$type"/>
+                <xsl:sort select="translate(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+              </xsl:apply-templates>
+            </dl>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:apply-templates select="$alphabetical[count(.|key('letter',                                  translate(substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1),                                            'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-div-basic">
+      <xsl:with-param name="position" select="position()"/>
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+    </xsl:apply-templates>
+  </div>
+</xsl:template>
+
+<!-- This template not used if html/autoidx-kosek.xsl is imported -->
+<xsl:template name="generate-kosek-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="contains($vendor, 'libxslt')">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+      <xsl:text>work with the xsltproc XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+
+  <xsl:if test="$exsl.node.set.available = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the </xsl:text>
+      <xsl:text>exslt:node-set() function. Use a processor that </xsl:text>
+      <xsl:text>has it, or use a different index method.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="$kosek.imported = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the
+</xsl:text>
+      <xsl:text>kosek index extensions be imported:
+</xsl:text>
+      <xsl:text>  xsl:import href="html/autoidx-kosek.xsl"</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+</xsl:template>
+
+<!-- This template not used if html/autoidx-kimber.xsl is imported -->
+<xsl:template name="generate-kimber-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="not(contains($vendor, 'SAXON '))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+      <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="$kimber.imported = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the
+</xsl:text>
+      <xsl:text>kimber index extensions be imported:
+</xsl:text>
+      <xsl:text>  xsl:import href="html/autoidx-kimber.xsl"</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-basic">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="translate(substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1),                          'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+
+  <xsl:if test="key('letter', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]                 [count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]">
+    <div class="indexdiv">
+      <xsl:if test="contains(concat('Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'), $key)">
+        <h3>
+          <xsl:value-of select="translate($key, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+        </h3>
+      </xsl:if>
+      <dl>
+        <xsl:apply-templates select="key('letter', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]                                      [count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))                                      [count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])=1]" mode="index-primary">
+          <xsl:with-param name="position" select="position()"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+          <xsl:sort select="translate(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+        </xsl:apply-templates>
+      </dl>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-symbol-div">
+  <xsl:param name="scope" select="/"/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="translate(substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1),                                              'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+
+  <xsl:apply-templates select="key('letter', $key)                                [count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[1]) = 1]" mode="index-primary">
+    <xsl:with-param name="position" select="position()"/>
+    <xsl:with-param name="scope" select="$scope"/>
+    <xsl:with-param name="role" select="$role"/>
+    <xsl:with-param name="type" select="$type"/>
+    <xsl:sort select="translate(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-primary">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="normalize-space(concat(primary/@sortas, &quot; &quot;, primary))"/>
+  <xsl:variable name="refs" select="key('primary', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]"/>
+  <dt>
+    <xsl:for-each select="$refs/primary">
+      <xsl:if test="@id or @xml:id">
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <a id="{(@id|@xml:id)[1]}"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <span>
+              <xsl:call-template name="id.attribute"/>
+            </span>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:value-of select="primary"/>
+    <xsl:choose>
+      <xsl:when test="$index.links.to.section = 1">
+        <xsl:for-each select="$refs[@zone != '' or generate-id() = generate-id(key('primary-section', concat($key, &quot; &quot;, generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:for-each select="$refs[not(see)                                and not(secondary)][count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$refs[not(secondary)]/*[self::see]">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, &quot; &quot;, &quot; &quot;, see))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-see">
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+        <xsl:sort select="translate(see, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+      </xsl:apply-templates>
+    </xsl:if>
+  </dt>
+  <xsl:choose>
+    <xsl:when test="$refs/secondary or $refs[not(secondary)]/*[self::seealso]">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, &quot; &quot;, &quot; &quot;, seealso))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-seealso">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(seealso, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="$refs[secondary and count(.|key('secondary', concat($key, &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary))))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-secondary">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+          </xsl:apply-templates>
+        </dl>
+      </dd>
+    </xsl:when>
+    <!-- HTML5 requires dd for each dt -->
+    <xsl:when test="$div.element = 'section'">
+      <dd/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-secondary">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)))"/>
+  <xsl:variable name="refs" select="key('secondary', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]"/>
+  <dt>
+    <xsl:for-each select="$refs/secondary">
+      <xsl:if test="@id or @xml:id">
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <a id="{(@id|@xml:id)[1]}"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <span>
+              <xsl:call-template name="id.attribute"/>
+            </span>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:value-of select="secondary"/>
+    <xsl:choose>
+      <xsl:when test="$index.links.to.section = 1">
+        <xsl:for-each select="$refs[@zone != '' or generate-id() = generate-id(key('secondary-section', concat($key, &quot; &quot;, generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:for-each select="$refs[not(see)                                  and not(tertiary)][count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$refs[not(tertiary)]/*[self::see]">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, &quot; &quot;, see))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-see">
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+        <xsl:sort select="translate(see, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+      </xsl:apply-templates>
+    </xsl:if>
+  </dt>
+  <xsl:choose>
+    <xsl:when test="$refs/tertiary or $refs[not(tertiary)]/*[self::seealso]">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, &quot; &quot;, seealso))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-seealso">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(seealso, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="$refs[tertiary and count(.|key('tertiary', concat($key, &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary))))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-tertiary">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+          </xsl:apply-templates>
+        </dl>
+      </dd>
+    </xsl:when>
+    <!-- HTML5 requires dd for each dt -->
+    <xsl:when test="$div.element = 'section'">
+      <dd/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-tertiary">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)))"/>
+  <xsl:variable name="refs" select="key('tertiary', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]"/>
+  <dt>
+    <xsl:for-each select="$refs/tertiary">
+      <xsl:if test="@id or @xml:id">
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <a id="{(@id|@xml:id)[1]}"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <span>
+              <xsl:call-template name="id.attribute"/>
+            </span>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:value-of select="tertiary"/>
+    <xsl:choose>
+      <xsl:when test="$index.links.to.section = 1">
+        <xsl:for-each select="$refs[@zone != '' or generate-id() = generate-id(key('tertiary-section', concat($key, &quot; &quot;, generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:for-each select="$refs[not(see)][count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$refs/see">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)), &quot; &quot;, see))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-see">
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+        <xsl:sort select="translate(see, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+      </xsl:apply-templates>
+    </xsl:if>
+  </dt>
+  <xsl:choose>
+    <xsl:when test="$refs/seealso">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)), &quot; &quot;, seealso))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-seealso">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(seealso, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+          </xsl:apply-templates>
+        </dl>
+      </dd>
+    </xsl:when>
+    <!-- HTML5 requires dd for each dt -->
+    <xsl:when test="$div.element = 'section'">
+      <dd/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="reference">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="position"/>
+  <xsl:param name="separator" select="''"/>
+  
+  <xsl:variable name="term.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.term.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="number.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.number.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="range.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.range.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$separator != ''">
+      <xsl:value-of select="$separator"/>
+    </xsl:when>
+    <xsl:when test="$position = 1">
+      <xsl:value-of select="$term.separator"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$number.separator"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="@zone and string(@zone)">
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="normalize-space(@zone)"/>
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <a>
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:variable name="title">
+          <xsl:choose>
+            <xsl:when test="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]/titleabbrev and $index.prefer.titleabbrev != 0">
+              <xsl:apply-templates select="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]" mode="titleabbrev.markup"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]" mode="title.markup"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+
+        <xsl:attribute name="href">
+          <xsl:choose>
+            <xsl:when test="$index.links.to.section = 1">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]"/>
+                <xsl:with-param name="context" select="(//index[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))] | //setindex[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))])[1]"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="."/>
+                <xsl:with-param name="context" select="(//index[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))] | //setindex[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))])[1]"/>
+              </xsl:call-template>
+            </xsl:otherwise>
+          </xsl:choose>
+
+        </xsl:attribute>
+
+        <xsl:value-of select="$title"/> <!-- text only -->
+      </a>
+
+      <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
+      <xsl:if test="key('endofrange', $id)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]">
+        <xsl:apply-templates select="key('endofrange', $id)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][last()]" mode="reference">
+          <xsl:with-param name="position" select="position()"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+          <xsl:with-param name="separator" select="$range.separator"/>
+        </xsl:apply-templates>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="reference">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="zones"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($zones, ' ')">
+      <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
+      <xsl:variable name="target" select="key('sections', $zone)"/>
+
+      <a>
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target[1]"/>
+            <xsl:with-param name="context" select="//index[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+      </a>
+      <xsl:text>, </xsl:text>
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="substring-after($zones, ' ')"/>
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="zone" select="$zones"/>
+      <xsl:variable name="target" select="key('sections', $zone)"/>
+
+      <a>
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target[1]"/>
+            <xsl:with-param name="context" select="//index[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+      </a>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-see">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:text> (</xsl:text>
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'see'"/>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:value-of select="see"/>
+  <xsl:text>)</xsl:text>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-seealso">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:for-each select="seealso">
+    <xsl:sort select="translate(., 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+    <dt>
+    <xsl:text>(</xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'seealso'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="."/>
+    <xsl:text>)</xsl:text>
+    </dt>
+    <xsl:if test="$div.element = 'section'">
+      <dd/>
+    </xsl:if>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="*" mode="index-title-content">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]" mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template name="index.separator">
+  <xsl:param name="key" select="''"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$key = 'index.term.separator'">
+      <xsl:choose>
+        <!-- Use the override if not blank -->
+        <xsl:when test="$index.term.separator != ''">
+          <xsl:copy-of select="$index.term.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="lang" select="$lang"/>
+            <xsl:with-param name="context">index</xsl:with-param>
+            <xsl:with-param name="name">term-separator</xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$key = 'index.number.separator'">
+      <xsl:choose>
+        <!-- Use the override if not blank -->
+        <xsl:when test="$index.number.separator != ''">
+          <xsl:copy-of select="$index.number.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="lang" select="$lang"/>
+            <xsl:with-param name="context">index</xsl:with-param>
+            <xsl:with-param name="name">number-separator</xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$key = 'index.range.separator'">
+      <xsl:choose>
+        <!-- Use the override if not blank -->
+        <xsl:when test="$index.range.separator != ''">
+          <xsl:copy-of select="$index.range.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="lang" select="$lang"/>
+            <xsl:with-param name="context">index</xsl:with-param>
+            <xsl:with-param name="name">range-separator</xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/autotoc.xsl b/applications/content/template/docbook/xhtml-1_1/autotoc.xsl
new file mode 100644
index 0000000..cfae61e
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/autotoc.xsl
@@ -0,0 +1,674 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:variable name="toc.listitem.type">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">dt</xsl:when>
+    <xsl:otherwise>li</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<!-- this is just hack because dl and ul aren't completely isomorphic -->
+<xsl:variable name="toc.dd.type">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">dd</xsl:when>
+    <xsl:otherwise/>
+  </xsl:choose>
+</xsl:variable>
+
+<xsl:template name="make.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+  <xsl:param name="nodes" select="/NOT-AN-ELEMENT"/>
+
+  <xsl:variable name="nodes.plus" select="$nodes | qandaset"/>
+
+  <xsl:variable name="toc.title">
+    <xsl:if test="$toc.title.p">
+      <xsl:choose>
+        <xsl:when test="$make.clean.html != 0">
+          <div class="toc-title">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key">TableofContents</xsl:with-param>
+            </xsl:call-template>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <p>
+            <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>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$manual.toc != ''">
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id"/>
+      </xsl:variable>
+      <xsl:variable name="toc" select="document($manual.toc, .)"/>
+      <xsl:variable name="tocentry" select="$toc//tocentry[@linkend=$id]"/>
+      <xsl:if test="$tocentry and $tocentry/*">
+        <div class="toc">
+          <xsl:copy-of select="$toc.title"/>
+          <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+            <xsl:call-template name="manual-toc">
+              <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
+            </xsl:call-template>
+          </xsl:element>
+        </div>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$qanda.in.toc != 0">
+          <xsl:if test="$nodes.plus">
+            <div class="toc">
+              <xsl:copy-of select="$toc.title"/>
+              <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+                <xsl:apply-templates select="$nodes.plus" mode="toc">
+                  <xsl:with-param name="toc-context" select="$toc-context"/>
+                </xsl:apply-templates>
+              </xsl:element>
+            </div>
+          </xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$nodes">
+            <div class="toc">
+              <xsl:copy-of select="$toc.title"/>
+              <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+                <xsl:apply-templates select="$nodes" mode="toc">
+                  <xsl:with-param name="toc-context" select="$toc-context"/>
+                </xsl:apply-templates>
+              </xsl:element>
+            </div>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="make.lots">
+  <xsl:param name="toc.params" select="''"/>
+  <xsl:param name="toc"/>
+
+  <xsl:if test="contains($toc.params, 'toc')">
+    <xsl:copy-of select="$toc"/>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'figure')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'figure'"/>
+      <xsl:with-param name="nodes" select=".//figure"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'table')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'table'"/>
+      <xsl:with-param name="nodes" select=".//table[not(@tocentry = 0)]"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'example')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'example'"/>
+      <xsl:with-param name="nodes" select=".//example"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'equation')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'equation'"/>
+      <xsl:with-param name="nodes" select=".//equation[title or info/title]"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'procedure')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'procedure'"/>
+      <xsl:with-param name="nodes" select=".//procedure[title]"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="set.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:call-template name="make.toc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+    <xsl:with-param name="nodes" select="book|setindex|set"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="division.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:call-template name="make.toc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+    <xsl:with-param name="nodes" select="part|reference                                          |preface|chapter|appendix                                          |article                                          |topic                                          |bibliography|glossary|index                                          |refentry                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="component.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:call-template name="make.toc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+    <xsl:with-param name="nodes" select="section|sect1                                          |simplesect[$simplesect.in.toc != 0]                                          |topic                                          |refentry                                          |article|bibliography|glossary                                          |appendix|index                                          |bridgehead[not(@renderas)                                                      and $bridgehead.in.toc != 0]                                          |.//bridgehead[@renderas='sect1'                                                         and $bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="component.toc.separator">
+  <!-- Customize to output something between
+       component.toc and first output -->
+</xsl:template>
+
+<xsl:template name="section.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:call-template name="make.toc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+    <xsl:with-param name="nodes" select="section|sect1|sect2|sect3|sect4|sect5|refentry                            |bridgehead[$bridgehead.in.toc != 0]"/>
+
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="section.toc.separator">
+  <!-- Customize to output something between
+       section.toc and first output -->
+</xsl:template>
+<!-- ==================================================================== -->
+
+<xsl:template name="subtoc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="nodes" select="NOT-AN-ELEMENT"/>
+
+  <xsl:variable name="nodes.plus" select="$nodes | qandaset"/>
+
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+      <xsl:choose>
+        <xsl:when test="$qanda.in.toc != 0">
+          <xsl:apply-templates mode="toc" select="$nodes.plus">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="toc" select="$nodes">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="depth">
+    <xsl:choose>
+      <xsl:when test="local-name(.) = 'section'">
+        <xsl:value-of select="count(ancestor::section) + 1"/>
+      </xsl:when>
+      <xsl:when test="local-name(.) = 'sect1'">1</xsl:when>
+      <xsl:when test="local-name(.) = 'sect2'">2</xsl:when>
+      <xsl:when test="local-name(.) = 'sect3'">3</xsl:when>
+      <xsl:when test="local-name(.) = 'sect4'">4</xsl:when>
+      <xsl:when test="local-name(.) = 'sect5'">5</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect1'">1</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect2'">2</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect3'">3</xsl:when>
+      <xsl:when test="local-name(.) = 'topic'">1</xsl:when>
+      <xsl:when test="local-name(.) = 'simplesect'">
+        <!-- sigh... -->
+        <xsl:choose>
+          <xsl:when test="local-name(..) = 'section'">
+            <xsl:value-of select="count(ancestor::section)"/>
+          </xsl:when>
+          <xsl:when test="local-name(..) = 'sect1'">2</xsl:when>
+          <xsl:when test="local-name(..) = 'sect2'">3</xsl:when>
+          <xsl:when test="local-name(..) = 'sect3'">4</xsl:when>
+          <xsl:when test="local-name(..) = 'sect4'">5</xsl:when>
+          <xsl:when test="local-name(..) = 'sect5'">6</xsl:when>
+          <xsl:when test="local-name(..) = 'topic'">2</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect1'">2</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect2'">3</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect3'">4</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}" namespace="http://www.w3.org/1999/xhtml">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="toc.line">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+    <xsl:if test="$toc.listitem.type = 'li' and                   ( (self::set or self::book or self::part) or                          $toc.section.depth &gt; $depth) and                    ( ($qanda.in.toc = 0 and count($nodes)&gt;0) or                     ($qanda.in.toc != 0 and count($nodes.plus)&gt;0) )                   and $toc.max.depth &gt; $depth.from.context">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li' and                   ( (self::set or self::book or self::part) or                          $toc.section.depth &gt; $depth) and                  ( ($qanda.in.toc = 0 and count($nodes)&gt;0) or                   ($qanda.in.toc != 0 and count($nodes.plus)&gt;0) )                 and $toc.max.depth &gt; $depth.from.context">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="toc.line">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="depth" select="1"/>
+  <xsl:param name="depth.from.context" select="8"/>
+
+ <span>
+  <xsl:attribute name="class"><xsl:value-of select="local-name(.)"/></xsl:attribute>
+
+  <!-- * if $autotoc.label.in.hyperlink is zero, then output the label -->
+  <!-- * before the hyperlinked title (as the DSSSL stylesheet does) -->
+  <xsl:if test="$autotoc.label.in.hyperlink = 0">
+    <xsl:variable name="label">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:copy-of select="$label"/>
+    <xsl:if test="$label != ''">
+      <xsl:value-of select="$autotoc.label.separator"/>
+    </xsl:if>
+  </xsl:if>
+
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="context" select="$toc-context"/>
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    
+  <!-- * if $autotoc.label.in.hyperlink is non-zero, then output the label -->
+  <!-- * as part of the hyperlinked title -->
+  <xsl:if test="not($autotoc.label.in.hyperlink = 0)">
+    <xsl:variable name="label">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:copy-of select="$label"/>
+    <xsl:if test="$label != ''">
+      <xsl:value-of select="$autotoc.label.separator"/>
+    </xsl:if>
+  </xsl:if>
+
+    <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+  </a>
+  </span>
+</xsl:template>
+
+<xsl:template match="book" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="part|reference                                          |preface|chapter|appendix                                          |article                                          |topic                                          |bibliography|glossary|index                                          |refentry                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="setindex" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <!-- If the setindex tag is not empty, it should be it in the TOC -->
+  <xsl:if test="* or $generate.index != 0">
+    <xsl:call-template name="subtoc">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="part|reference" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="appendix|chapter|article|topic                                          |index|glossary|bibliography                                          |preface|reference|refentry                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix|article|topic" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="section|sect1                                          |simplesect[$simplesect.in.toc != 0]                                          |topic                                          |refentry                                          |glossary|bibliography|index                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect1" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="sect2                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect2" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="sect3                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect3" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="sect4                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect4" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="sect5                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect5" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="simplesect" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="section|refentry                                          |simplesect[$simplesect.in.toc != 0]                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="topic" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="section|refentry                                          |simplesect[$simplesect.in.toc != 0]                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:if test="$bridgehead.in.toc != 0">
+    <xsl:call-template name="subtoc">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="index" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <!-- If the index tag is not empty, it should be it in the TOC -->
+  <xsl:if test="* or $generate.index != 0">
+    <xsl:call-template name="subtoc">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refentry" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="refmeta" select=".//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select=".//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+  <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/>
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]" mode="titleabbrev.markup"/>
+      </xsl:when>
+      <xsl:when test="$refdesc">
+        <xsl:apply-templates select="$refdesc" mode="titleabbrev.markup"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]" mode="titleabbrev.markup"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml">
+    <span class="refentrytitle">
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:copy-of select="$title"/>
+      </a>
+    </span>
+    <span class="refpurpose">
+      <xsl:if test="$annotate.toc != 0">
+        <!-- * DocBook 5 says inlinemediaobject (among other things) -->
+        <!-- * is allowed in refpurpose; so we need to run -->
+        <!-- * apply-templates on refpurpose here, instead of value-of  -->
+        <xsl:apply-templates select="refnamediv/refpurpose" mode="no.anchor.mode"/>
+      </xsl:if>
+    </span>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="title" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="object" select=".."/>
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </a>
+</xsl:template>
+
+<xsl:template name="manual-toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="tocentry"/>
+
+  <!-- be careful, we don't want to change the current document to the other tree! -->
+
+  <xsl:if test="$tocentry">
+    <xsl:variable name="node" select="key('id', $tocentry/@linkend)"/>
+
+    <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml">
+      <xsl:variable name="label">
+        <xsl:apply-templates select="$node" mode="label.markup"/>
+      </xsl:variable>
+      <xsl:copy-of select="$label"/>
+      <xsl:if test="$label != ''">
+        <xsl:value-of select="$autotoc.label.separator"/>
+      </xsl:if>
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$node"/>
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$node" mode="titleabbrev.markup"/>
+      </a>
+    </xsl:element>
+
+    <xsl:if test="$tocentry/*">
+      <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:call-template name="manual-toc">
+          <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
+        </xsl:call-template>
+      </xsl:element>
+    </xsl:if>
+
+    <xsl:if test="$tocentry/following-sibling::*">
+      <xsl:call-template name="manual-toc">
+        <xsl:with-param name="tocentry" select="$tocentry/following-sibling::*[1]"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="list.of.titles">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="titles" select="'table'"/>
+  <xsl:param name="nodes" select=".//table"/>
+
+  <xsl:if test="$nodes">
+    <div class="list-of-{$titles}s">
+      <xsl:choose>
+        <xsl:when test="$make.clean.html != 0">
+          <div class="toc-title">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key">
+                <xsl:choose>
+                  <xsl:when test="$titles='table'">ListofTables</xsl:when>
+                  <xsl:when test="$titles='figure'">ListofFigures</xsl:when>
+                  <xsl:when test="$titles='equation'">ListofEquations</xsl:when>
+                  <xsl:when test="$titles='example'">ListofExamples</xsl:when>
+                  <xsl:when test="$titles='procedure'">ListofProcedures</xsl:when>
+                  <xsl:otherwise>ListofUnknown</xsl:otherwise>
+                </xsl:choose>
+              </xsl:with-param>
+            </xsl:call-template>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <p>
+            <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key">
+                  <xsl:choose>
+                    <xsl:when test="$titles='table'">ListofTables</xsl:when>
+                    <xsl:when test="$titles='figure'">ListofFigures</xsl:when>
+                    <xsl:when test="$titles='equation'">ListofEquations</xsl:when>
+                    <xsl:when test="$titles='example'">ListofExamples</xsl:when>
+                    <xsl:when test="$titles='procedure'">ListofProcedures</xsl:when>
+                    <xsl:otherwise>ListofUnknown</xsl:otherwise>
+                  </xsl:choose>
+                </xsl:with-param>
+              </xsl:call-template>
+            </strong>
+          </p>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:apply-templates select="$nodes" mode="toc">
+          <xsl:with-param name="toc-context" select="$toc-context"/>
+        </xsl:apply-templates>
+      </xsl:element>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation|procedure" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:variable name="label">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:copy-of select="$label"/>
+    <xsl:if test="$label != ''">
+      <xsl:value-of select="$autotoc.label.separator"/>
+    </xsl:if>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="toc-context" select="$toc-context"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+    </a>
+  </xsl:element>
+</xsl:template>
+
+<!-- Used only if qanda.in.toc parameter is non-zero -->
+<xsl:template match="qandaset" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="qandadiv | qandaentry"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="qandadiv|qandaentry" mode="toc">
+  <xsl:apply-templates select="." mode="qandatoc.mode"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/biblio-iso690.xsl b/applications/content/template/docbook/xhtml-1_1/biblio-iso690.xsl
new file mode 100644
index 0000000..b435b3f
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/biblio-iso690.xsl
@@ -0,0 +1,1300 @@
+<?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">
+
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     The original code for processing bibliography in ISO690 style
+     was provided by Jana Dvorakova <jana4u@seznam.cz>
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- if biblioentry.alt.primary.seps is set to nonzero value then use alternative separators for primary responsibility - $alt.person.two.sep, $alt.person.last.sep, $alt.person.more.sep  -->
+<xsl:param name="biblioentry.alt.primary.seps" select="0"/>
+
+<!-- how many authors will be printed if there is more than three authors - set to number 1 (default value), 2 or 3 -->
+<xsl:param name="biblioentry.primary.count" select="1"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="iso690.makecitation">
+<!-- Types of resources -->
+  <xsl:choose>
+
+    <!-- SYSTEMS OF ELECTRONIC COMMUNICATION : ENTIRE MESSAGE SYSTEM -->
+    <!-- same as Monographs -->
+    <xsl:when test="./@role='messagesystem'">
+      <xsl:call-template name="iso690.monogr"/>
+    </xsl:when>
+
+    <!-- SYSTEMS OF ELECTRONIC COMMUNICATION : ELECTRONIC MESSAGES -->
+    <!-- same as Contributions to Monographs -->
+    <xsl:when test="./@role='message'">
+      <xsl:call-template name="iso690.paper.mon"/>
+    </xsl:when>
+
+    <!-- SERIALS -->
+    <xsl:when test="./@role='serial' or ./biblioid/@class='issn' or ./issn">
+      <xsl:call-template name="iso690.serial"/>
+    </xsl:when>
+
+    <!-- PARTS OF MONOGRAPHS -->
+    <xsl:when test="./@role='part' or (./bibliomisc[@role='secnum']|./bibliomisc[@role='sectitle'])">
+      <xsl:call-template name="iso690.monogr.part"/>
+    </xsl:when>
+
+    <!-- CONTRIBUTIONS TO MONOGRAPHS -->
+    <xsl:when test="./@role='contribution' or (./biblioset/@relation='part' and ./biblioset/@relation='book')">
+      <xsl:call-template name="iso690.paper.mon"/>
+    </xsl:when>
+
+    <!-- ARTICLES, ETC., IN SERIALS -->
+    <xsl:when test="./@role='article' or (./biblioset/@relation='journal' and ./biblioset/@relation='article')">
+      <xsl:call-template name="iso690.article"/>
+    </xsl:when>
+
+    <!-- PATENT DOCUMENTS -->
+    <xsl:when test="./@role='patent' or (./bibliomisc[@role='patenttype'] and ./bibliomisc[@role='patentnum'])">
+      <xsl:call-template name="iso690.patent"/>
+    </xsl:when>
+
+    <!-- MONOGRAPHS -->
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.monogr"/>
+    </xsl:otherwise>
+
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- MONOGRAPHS -->
+<xsl:template name="iso690.monogr">
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility -->
+  <xsl:call-template name="iso690.secondary"/>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition"/>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.pub"/>
+  <!-- Extent -->
+  <xsl:call-template name="iso690.extent"/>
+  <!-- Series -->
+  <xsl:call-template name="iso690.serie"/>
+  <!-- Notes -->
+  <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access -->
+  <xsl:call-template name="iso690.access"/>
+  <!-- Standard number -->
+  <xsl:call-template name="iso690.isbn"/>
+</xsl:template>
+
+<!-- SERIALS -->
+<xsl:template name="iso690.serial">
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Responsibility [nonEL] -->
+  <xsl:if test="not(./bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition">
+    <xsl:with-param name="after" select="./bibliomisc[@role='issuing']"/>
+  </xsl:call-template>
+  <!-- Issue designation (date and/or num) [nonEL] -->
+  <xsl:if test="not(./bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.issuing"/>
+  </xsl:if>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.pub"/>
+  <!-- Series -->
+  <xsl:call-template name="iso690.serie"/>
+  <!-- Notes -->
+  <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access -->
+  <xsl:call-template name="iso690.access"/>
+  <!-- Standard number -->
+  <xsl:call-template name="iso690.issn"/>
+</xsl:template>
+
+<!-- PARTS OF MONOGRAPHS -->
+<xsl:template name="iso690.monogr.part">
+  <!-- Primary responsibility of host document -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title and Type of medium of host document -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility of host document [EL] -->
+  <xsl:if test="./bibliomisc[@role='medium']">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition">
+    <xsl:with-param name="after" select="./volumenum"/>
+  </xsl:call-template>
+  <!-- Numeration of the part [nonEL]-->
+  <xsl:if test="not(./bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.partnr"/>
+  <!-- Subordinate responsibility [nonEL] -->
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.pub"/>
+  <!-- Location within host -->
+  <xsl:call-template name="iso690.part.location"/>
+  <xsl:if test="./bibliomisc[@role='medium']">
+  <!-- Numeration within host document [EL] -->
+  <!-- Notes [EL] -->
+    <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access [EL] -->
+    <xsl:call-template name="iso690.access"/>
+  <!-- Standard number [EL] -->
+    <xsl:call-template name="iso690.isbn"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- CONTRIBUTIONS TO MONOGRAPHS -->
+<xsl:template name="iso690.paper.mon">
+<!-- Contribution -->
+  <xsl:apply-templates mode="iso690.paper.part" select="./biblioset[@relation='part']"/>
+<!-- In -->
+  <xsl:text>In </xsl:text>
+<!-- Host -->
+  <xsl:apply-templates mode="iso690.paper.book" select="./biblioset[@relation='book']"/>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.paper.part">
+<!-- Contribution -->
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title -->
+  <xsl:call-template name="iso690.title">
+    <xsl:with-param name="italic" select="0"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.paper.book">
+<!-- Host -->
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility [EL] -->
+  <xsl:if test="./bibliomisc[@role='medium']">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition"/>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.paper.pub"/>
+  <!-- Numeration within host document [EL] -->
+  <!-- Location within host -->
+  <xsl:call-template name="iso690.location"/>
+  <xsl:if test="./bibliomisc[@role='medium']">
+  <!-- Notes [EL] -->
+    <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access [EL] -->
+    <xsl:call-template name="iso690.access"/>
+  <!-- Standard number [EL] -->
+    <xsl:call-template name="iso690.isbn"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ARTICLES, ETC., IN SERIALS -->
+<xsl:template name="iso690.article">
+<!-- Article -->
+  <xsl:apply-templates mode="iso690.article.art" select="./biblioset[@relation='article']"/>
+<!-- Serial -->
+  <xsl:apply-templates mode="iso690.article.jour" select="./biblioset[@relation='journal']"/>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.article.art">
+<!-- Article -->
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title -->
+  <xsl:call-template name="iso690.title">
+    <xsl:with-param name="italic" select="0"/>
+  </xsl:call-template>
+  <!-- Subordinate responsibility [nonEL] -->
+  <xsl:if test="not(../*/bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.article.jour">
+<!-- Serial -->
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition">
+    <xsl:with-param name="after" select="./pubdate[not(@role='issuing')]|./volumenum|./issuenum|./pagenums"/>
+  </xsl:call-template>
+  <!-- Number designation [EL] -->
+  <!-- Location within host -->
+  <xsl:call-template name="iso690.article.location"/>
+  <xsl:if test="./bibliomisc[@role='medium']">
+  <!-- Notes [EL] -->
+    <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access [EL] -->
+    <xsl:call-template name="iso690.access"/>
+  <!-- Standard number [EL] -->
+    <xsl:call-template name="iso690.issn"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- PATENT DOCUMENTS -->
+<xsl:template name="iso690.patent">
+  <!-- Primary responsibility (applicant) -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title of the invention -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility -->
+  <xsl:call-template name="iso690.secondary"/>
+  <!-- Notes -->
+  <xsl:call-template name="iso690.notice"/>
+  <!-- Identification -->
+  <xsl:call-template name="iso690.pat.ident"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Elements -->
+
+<!-- Primary responsibility -->
+<xsl:template name="iso690.primary">
+  <xsl:param name="primary.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./authorgroup/author|./author">
+      <xsl:call-template name="iso690.author.list">
+        <xsl:with-param name="person.list" select=".//authorgroup/author|.//author"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="./authorgroup/editor|./editor">
+      <xsl:call-template name="iso690.author.list">
+        <xsl:with-param name="person.list" select=".//authorgroup/editor|.//editor"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="./authorgroup/corpauthor|./corpauthor">
+      <xsl:call-template name="iso690.author.list">
+        <xsl:with-param name="person.list" select=".//authorgroup/corpauthor|.//corpauthor"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="(./firstname)and(./surname)">
+        <xsl:call-template name="iso690.author"/>
+        <xsl:call-template name="iso690.endsep">
+          <xsl:with-param name="text" select="string(./firstname[1])"/>
+          <xsl:with-param name="sep" select="$primary.sep"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.author.list">
+  <xsl:param name="person.list" select="author|corpauthor|editor"/>
+  <xsl:param name="person.count" select="count($person.list)"/>
+  <xsl:param name="count" select="1"/>
+  <xsl:param name="group" select="./authorgroup[@role='many']"/>
+  <xsl:param name="many" select="0"/>
+
+  <xsl:param name="primary.many">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.many'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="primary.editor">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.editor'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="primary.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.sep'"/></xsl:call-template>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count &gt; $person.count"/>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$person.count &lt; 4 and not($group)">
+          <xsl:call-template name="iso690.author">
+            <xsl:with-param name="node" select="$person.list[position()=$count]"/>
+          </xsl:call-template>
+          <xsl:choose>
+            <xsl:when test="$person.count = 2 and $count = 1 and $biblioentry.alt.primary.seps != 0">
+              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.two.sep'"/></xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$person.count = 2 and $count = 1">
+              <xsl:call-template name="gentext.template">
+                <xsl:with-param name="context" select="'authorgroup'"/>
+                <xsl:with-param name="name" select="'sep2'"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$person.count &gt; 2 and $count+1 = $person.count and $biblioentry.alt.primary.seps != 0">
+              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.last.sep'"/></xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$person.count &gt; 2 and $count+1 = $person.count">
+              <xsl:call-template name="gentext.template">
+                <xsl:with-param name="context" select="'authorgroup'"/>
+                <xsl:with-param name="name" select="'seplast'"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$count &lt; $person.count and $biblioentry.alt.primary.seps != 0">
+              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.more.sep'"/></xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$count &lt; $person.count">
+              <xsl:call-template name="gentext.template">
+                <xsl:with-param name="context" select="'authorgroup'"/>
+                <xsl:with-param name="name" select="'sep'"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="($count = $person.count)">
+              <xsl:choose>
+                <xsl:when test="$many!=0">
+                  <xsl:if test="name($person.list[position()=$count])='editor'">
+                    <xsl:value-of select="$primary.editor"/>
+                  </xsl:if>
+                  <xsl:value-of select="$primary.many"/>
+                  <xsl:call-template name="iso690.endsep">
+                    <xsl:with-param name="text" select="$primary.many"/>
+                    <xsl:with-param name="sep" select="$primary.sep"/>
+                  </xsl:call-template>
+                </xsl:when>
+                <xsl:when test="name($person.list[position()=$count])='editor'">
+                  <xsl:value-of select="$primary.editor"/>
+                  <xsl:value-of select="$primary.sep"/>
+                </xsl:when>
+                <xsl:when test="name($person.list[position()=$count])='corpauthor'">
+                  <xsl:call-template name="iso690.endsep">
+                    <xsl:with-param name="text" select="string($person.list[position()=$count])"/>
+                    <xsl:with-param name="sep" select="$primary.sep"/>
+                  </xsl:call-template>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:call-template name="iso690.endsep">
+                    <xsl:with-param name="text" select="string($person.list[position()=$count]//firstname[1])"/>
+                    <xsl:with-param name="sep" select="$primary.sep"/>
+                  </xsl:call-template>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:when>
+          </xsl:choose>
+
+          <xsl:call-template name="iso690.author.list">
+            <xsl:with-param name="person.list" select="$person.list"/>
+            <xsl:with-param name="person.count" select="$person.count"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="many" select="$many"/>
+            <xsl:with-param name="group"/>
+          </xsl:call-template>
+        </xsl:when>
+
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="($biblioentry.primary.count&gt;=3) and ($person.count&gt;=3)">
+              <xsl:call-template name="iso690.author.list">
+                <xsl:with-param name="person.list" select="$person.list[1]|$person.list[2]|$person.list[3]"/>
+                <xsl:with-param name="person.count" select="3"/>
+                <xsl:with-param name="count" select="1"/>
+                <xsl:with-param name="many" select="1"/>
+                <xsl:with-param name="group"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="($biblioentry.primary.count&gt;1) and  ($person.count&gt;1)">
+              <xsl:call-template name="iso690.author.list">
+                <xsl:with-param name="person.list" select="$person.list[1]|$person.list[2]"/>
+                <xsl:with-param name="person.count" select="2"/>
+                <xsl:with-param name="count" select="1"/>
+                <xsl:with-param name="many" select="1"/>
+                <xsl:with-param name="group"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="iso690.author.list">
+                <xsl:with-param name="person.list" select="$person.list[1]"/>
+                <xsl:with-param name="person.count" select="1"/>
+                <xsl:with-param name="count" select="1"/>
+                <xsl:with-param name="many" select="1"/>
+                <xsl:with-param name="group"/>
+              </xsl:call-template>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.author">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="lastfirst.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'lastfirst.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="name($node)!='corpauthor'">
+      <span style="text-transform:uppercase">
+        <xsl:apply-templates mode="iso690.mode" select="$node//surname[1]"/>
+      </span>
+      <xsl:if test="$node//surname and $node//firstname">
+        <xsl:value-of select="$lastfirst.sep"/>
+      </xsl:if>
+      <xsl:apply-templates mode="iso690.mode" select="$node//firstname[1]"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <span style="text-transform:uppercase">
+        <xsl:apply-templates mode="iso690.mode" select="$node"/>
+      </span>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="corpauthor|firstname|surname" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Title and Type of medium -->
+<xsl:template name="iso690.title">
+  <xsl:param name="medium" select="./bibliomisc[@role='medium']"/>
+  <xsl:param name="italic" select="1"/>
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'title.sep'"/></xsl:call-template>
+  </xsl:param>
+
+  <xsl:apply-templates mode="iso690.mode" select="./title">
+    <xsl:with-param name="medium" select="$medium"/>
+    <xsl:with-param name="italic" select="$italic"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="title" mode="iso690.mode">
+  <xsl:param name="medium"/>
+  <xsl:param name="italic" select="1"/>
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'title.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="medium1">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'medium1'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="medium2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'medium2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="$italic=1">
+      <xsl:call-template name="iso690.italic.title"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.make.title"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="$medium">
+    <xsl:value-of select="$medium1"/>
+    <xsl:apply-templates mode="iso690.mode" select="$medium"/>
+    <xsl:value-of select="$medium2"/>
+  </xsl:if>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="concat(string(.),string(../subtitle))"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="iso690.italic.title">
+  <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+    <xsl:call-template name="iso690.make.title"/>
+  </em>
+</xsl:template>
+
+<xsl:template name="iso690.make.title">
+  <xsl:param name="submaintitle.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'submaintitle.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:if test="../subtitle|../info/subtitle">
+    <xsl:value-of select="$submaintitle.sep"/>
+    <xsl:apply-templates mode="iso690.mode" select="../subtitle|../info/subtitle"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='medium']" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Subordinate responsibility -->
+<xsl:template name="iso690.secondary">
+  <xsl:param name="secondary.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'secondary.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="secondary.person.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'secondary.person.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:for-each select="./bibliomisc[@role='secondary']">
+    <xsl:apply-templates mode="iso690.mode" select="."/>
+    <xsl:choose>
+      <xsl:when test="position()=count(../bibliomisc[@role='secondary'])">
+        <xsl:call-template name="iso690.endsep">
+          <xsl:with-param name="text" select="string(.)"/>
+          <xsl:with-param name="sep" select="$secondary.sep"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$secondary.person.sep"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='secondary']" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Edition -->
+<xsl:template name="iso690.edition">
+  <xsl:param name="after"/>
+  <xsl:param name="edition.serial.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'edition.serial.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="string($after)!=''">
+      <xsl:apply-templates mode="iso690.mode" select="./edition">
+        <xsl:with-param name="sep" select="$edition.serial.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./edition"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="edition" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'edition.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Issue designation (date and/or num) -->
+<xsl:template name="iso690.issuing">
+  <xsl:param name="issuing.div">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.div'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.range">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.range'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum[2] and ./issuenum[2]">
+      <xsl:call-template name="iso690.issuedate"/>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[1]">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum[1]">
+        <xsl:with-param name="sep" select="$issuing.range"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[2]">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum[2]">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum[2]">
+      <xsl:call-template name="iso690.issuedate"/>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[1]">
+        <xsl:with-param name="sep" select="$issuing.range"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[2]">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum and ./issuenum">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pubdate[@role='issuing']">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./volumenum">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./issuenum">
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.issuedate">
+  <xsl:param name="issuing.div">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.div'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.range">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.range'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./pubdate[@role='issuing'][2]">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing'][1]">
+        <xsl:with-param name="sep" select="$issuing.range"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing'][2]">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="pubdate[@role='issuing']" mode="iso690.mode">
+  <xsl:param name="sep"/>
+  <xsl:variable name="substr" select="substring(string(.),string-length(string(.)))"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.space">
+    <xsl:with-param name="text" select="$substr"/>
+  </xsl:call-template>
+  <xsl:choose>
+    <xsl:when test="$substr='-'">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="' '"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(.)"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Numeration of the part -->
+<xsl:template name="iso690.partnr">
+  <xsl:param name="partnr.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'partnr.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+    <xsl:with-param name="sep" select="$partnr.sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+<xsl:template name="iso690.pub">
+  <xsl:param name="onlydate" select="0"/>
+  <xsl:param name="placesep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'placepubl.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="pubsep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'publyear.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="endsep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'pubinfo.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="(./publisher/publishername|./publishername|./publisher/address/city)and($onlydate=0)and(./pubdate[not(@role='issuing')]|./copyright/year|./date[@role='upd']|./date[@role='upd'])">
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/address/city">
+        <xsl:with-param name="sep" select="$placesep"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/publishername|./publishername">
+        <xsl:with-param name="sep" select="$pubsep"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]|./copyright/year">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:apply-templates>
+      <xsl:if test="not(./pubdate[not(@role='issuing')]|./copyright/year)">
+        <xsl:call-template name="iso690.data">
+          <xsl:with-param name="sep" select="$endsep"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="(./publisher/publishername|./publishername)and(./publisher/address/city)and($onlydate=0)">
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/address/city">
+        <xsl:with-param name="sep" select="$placesep"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/publishername|./publishername">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="($onlydate=1)or(./pubdate[not(@role='issuing')]|./copyright/year)">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]|./copyright/year">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:apply-templates>
+      <xsl:if test="$onlydate=1">
+        <xsl:call-template name="iso690.location">
+          <xsl:with-param name="onlypages" select="1"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="not(./pubdate[not(@role='issuing')]|./copyright/year)">
+      <xsl:call-template name="iso690.data">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.paper.pub">
+  <xsl:param name="spec.pubinfo.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'spec.pubinfo.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./volumnum|./issuenum|./pagenums">
+      <xsl:call-template name="iso690.pub">
+        <xsl:with-param name="endsep" select="$spec.pubinfo.sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.pub"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.data">
+  <xsl:param name="sep"/>
+  <xsl:param name="datecit2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./date[@role='upd']">
+    <xsl:with-param name="sep"/>
+  </xsl:apply-templates>
+  <xsl:apply-templates mode="iso690.mode" select="./date[@role='cit']"/>
+  <xsl:choose>
+    <xsl:when test="./date[@role='cit']">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="$datecit2"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="./date[@role='upd']">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(./date[@role='upd'])"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="publisher/address/city|publishername" mode="iso690.mode">
+  <xsl:param name="sep"/>
+  <xsl:param name="upd" select="0"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="pubdate|copyright/year" mode="iso690.mode">
+  <xsl:param name="sep"/>
+  <xsl:param name="upd" select="1"/>
+  <xsl:param name="datecit2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:variable name="substr" select="substring(string(.),string-length(string(.)))"/>
+  <xsl:if test="name(.)!='pubdate'">
+    <xsl:value-of select="'&#169;'"/><!-- copyright -->
+  </xsl:if>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.space">
+    <xsl:with-param name="text" select="$substr"/>
+  </xsl:call-template>
+  <xsl:if test="$upd!=0">
+    <xsl:choose>
+      <xsl:when test="name(.)='pubdate'">
+        <xsl:apply-templates mode="iso690.mode" select="../date[@role='upd']"/>
+        <xsl:apply-templates mode="iso690.mode" select="../date[@role='cit']"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates mode="iso690.mode" select="../../date[@role='upd']"/>
+        <xsl:apply-templates mode="iso690.mode" select="../../date[@role='cit']"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="../date[@role='cit']|../../date[@role='cit'] and $upd!=0">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="$datecit2"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="../date[@role='upd']|../../date[@role='upd'] and $upd!=0">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(../date[@role='upd'])"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$substr='-'">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="' '"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(.)"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.space">
+  <xsl:param name="text" select="substring(string(.),string-length(string(.)))"/>
+  <xsl:if test="$text='-'">
+    <xsl:value-of select="' '"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- Date of update/revision -->
+<xsl:template match="date[@role='upd']" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'upd.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$sep"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Date of citation -->
+<xsl:template match="date[@role='cit']" mode="iso690.mode">
+  <xsl:param name="datecit1">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit1'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="datecit2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$datecit1"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$datecit2"/>
+</xsl:template>
+
+<!-- Extent -->
+<xsl:template name="iso690.extent">
+  <xsl:param name="extent.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'extent.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./pagenums">
+    <xsl:with-param name="sep" select="$extent.sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Location within host -->
+<xsl:template name="iso690.part.location">
+  <xsl:param name="location.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./pagenums">
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']"/>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='sectitle']"/>
+      <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+    </xsl:when>
+    <xsl:when test="./bibliomisc[@role='sectitle']">
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']"/>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='sectitle']">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.article.location">
+  <xsl:param name="location.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="locs.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="not(./date[@role='upd']|./date[@role='cit'])">
+      <xsl:choose>
+        <xsl:when test="./volumenum|./issuenum|./pagenums">
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="upd" select="0"/>
+            <xsl:with-param name="sep" select="$locs.sep"/>
+          </xsl:apply-templates>
+          <xsl:call-template name="iso690.location"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="sep" select="$location.sep"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="./volumenum|./issuenum|./pagenums">
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="upd" select="0"/>
+            <xsl:with-param name="sep" select="$locs.sep"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="upd" select="0"/>
+            <xsl:with-param name="sep" select="$location.sep"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:choose>
+        <xsl:when test="./issuenum">
+          <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+          <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+            <xsl:with-param name="sep"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+            <xsl:with-param name="sep"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:choose>
+        <xsl:when test="./pagenums">
+          <xsl:call-template name="iso690.data">
+            <xsl:with-param name="sep" select="$locs.sep"/>
+          </xsl:call-template>
+          <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="iso690.data">
+            <xsl:with-param name="sep" select="$location.sep"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.location">
+  <xsl:param name="location.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./volumenum and not(./issuenum) and not(./pagenums)">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./issuenum and not(./pagenums)">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pagenums">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum"/>
+      <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='secnum']|bibliomisc[@role='sectitle']" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="volumenum|issuenum" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Series -->
+<xsl:template name="iso690.serie">
+  <xsl:apply-templates mode="iso690.mode" select=".//bibliomisc[@role='serie']"/>
+</xsl:template>
+
+<!-- Notes -->
+<xsl:template name="iso690.notice">
+  <xsl:apply-templates mode="iso690.mode" select=".//bibliomisc[not(@role)]"/>
+</xsl:template>
+
+<xsl:template match="bibliomisc[not(@role)]|bibliomisc[@role='serie']" mode="iso690.mode">
+  <xsl:param name="notice.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'notice.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$notice.sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Avaibility and access -->
+<xsl:template name="iso690.access">
+  <xsl:for-each select="./biblioid[@class='uri']|./bibliomisc[@role='access']">
+    <xsl:choose>
+      <xsl:when test="position()=1">
+        <xsl:apply-templates mode="iso690.mode" select="."/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates mode="iso690.mode" select=".">
+          <xsl:with-param name="firstacc" select="0"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="biblioid[@class='uri']/ulink|bibliomisc[@role='access']/ulink" mode="iso690.mode">
+  <xsl:param name="link1">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'link1'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="link2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'link2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$link1"/>
+  <xsl:call-template name="ulink"/>
+  <xsl:value-of select="$link2"/>
+</xsl:template>
+
+<xsl:template match="biblioid[@class='uri']|bibliomisc[@role='access']" mode="iso690.mode">
+  <xsl:param name="firstacc" select="1"/>
+  <xsl:param name="access">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="acctoo">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'acctoo'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="onwww">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'onwww'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="oninet">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'oninet'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="access.end">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access.end'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="access.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="$firstacc=1">
+      <xsl:value-of select="$access"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$acctoo"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="(./ulink)and(string(./ulink)=string(.))">
+      <xsl:choose>
+        <xsl:when test="(starts-with(./ulink/@url,'http://')or(starts-with(./ulink/@url,'https://')))">
+          <xsl:value-of select="$onwww"/>
+          <xsl:value-of select="$access.end"/>
+          <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$oninet"/>
+          <xsl:value-of select="$access.end"/>
+          <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="(./ulink)and(string(./ulink)!=string(.))">
+      <xsl:value-of select="text()[1]"/>
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="text()[1]"/>
+        <xsl:with-param name="sep" select="$access.end"/>
+      </xsl:call-template>
+      <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$access.sep"/>
+</xsl:template>
+
+<!-- Standard number - ISBN -->
+<xsl:template name="iso690.isbn">
+  <xsl:choose>
+    <xsl:when test="./biblioid/@class='isbn'">
+      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='isbn']"/>
+    </xsl:when>
+    <xsl:when test="./isbn">
+      <xsl:apply-templates mode="iso690.mode" select="./isbn"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="isbn|biblioid[@class='isbn']" mode="iso690.mode">
+  <xsl:param name="isbn">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'isbn'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="stdnum.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'stdnum.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$isbn"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$stdnum.sep"/>
+</xsl:template>
+
+<!-- Standard number - ISSN -->
+<xsl:template name="iso690.issn">
+  <xsl:choose>
+    <xsl:when test="./biblioid/@class='issn'">
+      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='issn']"/>
+    </xsl:when>
+    <xsl:when test="./issn">
+      <xsl:apply-templates mode="iso690.mode" select="./issn"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="issn|biblioid[@class='issn']" mode="iso690.mode">
+  <xsl:param name="issn">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issn'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="stdnum.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'stdnum.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$issn"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$stdnum.sep"/>
+</xsl:template>
+
+<!-- Identification of patent document -->
+<xsl:template name="iso690.pat.ident">
+  <xsl:param name="patdate.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patdate.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./address/country"/>
+  <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='patenttype']"/>
+  <xsl:choose>
+    <xsl:when test="./biblioid[@class='other' and @otherclass='patentnum']">
+      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='other' and @otherclass='patentnum']"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='patentnum']"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+    <xsl:with-param name="sep" select="$patdate.sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Country or issuing office -->
+<xsl:template match="address/country" mode="iso690.mode">
+  <xsl:param name="patcountry.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patcountry.sep'"/></xsl:call-template>
+  </xsl:param>
+  <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+    <xsl:apply-templates mode="iso690.mode"/>
+  </em>
+  <xsl:value-of select="$patcountry.sep"/>
+</xsl:template>
+
+<!-- Kind of patent document -->
+<xsl:template match="bibliomisc[@role='patenttype']" mode="iso690.mode">
+  <xsl:param name="pattype.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'pattype.sep'"/></xsl:call-template>
+  </xsl:param>
+  <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+    <xsl:apply-templates mode="iso690.mode"/>
+  </em>
+  <xsl:value-of select="$pattype.sep"/>
+</xsl:template>
+
+<!-- Number -->
+<xsl:template match="biblioid[@class='other' and @otherclass='patentnum']|bibliomisc[@role='patentnum']" mode="iso690.mode">
+  <xsl:param name="patnum.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patnum.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$patnum.sep"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Supplementary templates -->
+
+<xsl:template name="iso690.endsep">
+  <xsl:param name="text"/>
+  <xsl:param name="sep" select=". "/>
+  <xsl:choose>
+    <xsl:when test="substring($text,string-length($text))!=substring($sep,1,1)">
+      <xsl:value-of select="$sep"/>
+    </xsl:when>
+    <xsl:when test="substring($text,string-length($text))=' '">
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="' '"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="iso690.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/biblio.xsl b/applications/content/template/docbook/xhtml-1_1/biblio.xsl
new file mode 100644
index 0000000..2387a8e
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/biblio.xsl
@@ -0,0 +1,1369 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliography">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="bibliography.titlepage"/>
+
+    <xsl:apply-templates/>
+
+    <xsl:if test="not(parent::article)">
+      <xsl:call-template name="process.footnotes"/>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="bibliography/bibliographyinfo"/>
+<xsl:template match="bibliography/info"/>
+<xsl:template match="bibliography/title"/>
+<xsl:template match="bibliography/subtitle"/>
+<xsl:template match="bibliography/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliodiv">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="bibliodiv/title">
+  <h3>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliolist">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="blockinfo/title|info/title|title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+    <xsl:apply-templates select="*[not(self::blockinfo)                                    and not(self::info)                                    and not(self::title)                                    and not(self::titleabbrev)                                    and not(self::biblioentry)                                    and not(self::bibliomixed)]"/>
+    <xsl:apply-templates select="biblioentry|bibliomixed"/>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="biblioentry">
+  <xsl:param name="label">
+    <xsl:call-template name="biblioentry.label"/>
+  </xsl:param>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string(.) = ''">
+      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+      <xsl:variable name="entry" select="$bib/bibliography//                                          *[@id=$id or @xml:id=$id][1]"/>
+      <xsl:choose>
+        <xsl:when test="$entry">
+          <xsl:choose>
+            <xsl:when test="$bibliography.numbered != 0">
+              <xsl:apply-templates select="$entry">
+                <xsl:with-param name="label" select="$label"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="$entry"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>No bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </xsl:message>
+          <div>
+            <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="anchor"/>
+            <p>
+              <xsl:copy-of select="$label"/>
+              <xsl:text>Error: no bibliography entry: </xsl:text>
+              <xsl:value-of select="$id"/>
+              <xsl:text> found in </xsl:text>
+              <xsl:value-of select="$bibliography.collection"/>
+            </p>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <p>
+          <xsl:copy-of select="$label"/>
+	  <xsl:choose>
+	    <xsl:when test="$bibliography.style = 'iso690'">
+	      <xsl:call-template name="iso690.makecitation"/>
+	    </xsl:when>
+	    <xsl:otherwise>
+	      <xsl:apply-templates mode="bibliography.mode"/>
+	    </xsl:otherwise>
+	  </xsl:choose>
+        </p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliomixed">
+  <xsl:param name="label">
+    <xsl:call-template name="biblioentry.label"/>
+  </xsl:param>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string(.) = ''">
+      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+      <xsl:variable name="entry" select="$bib/bibliography//                                          *[@id=$id or @xml:id=$id][1]"/>
+      <xsl:choose>
+        <xsl:when test="$entry">
+          <xsl:choose>
+            <xsl:when test="$bibliography.numbered != 0">
+              <xsl:apply-templates select="$entry">
+                <xsl:with-param name="label" select="$label"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="$entry"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>No bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </xsl:message>
+          <div>
+            <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="anchor"/>
+            <p>
+              <xsl:copy-of select="$label"/>
+              <xsl:text>Error: no bibliography entry: </xsl:text>
+              <xsl:value-of select="$id"/>
+              <xsl:text> found in </xsl:text>
+              <xsl:value-of select="$bibliography.collection"/>
+            </p>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <p>
+          <xsl:call-template name="common.html.attributes"/>
+          <xsl:copy-of select="$label"/>
+          <xsl:apply-templates mode="bibliomixed.mode"/>
+        </p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="biblioentry.label">
+  <xsl:param name="node" select="."/>
+
+  <xsl:choose>
+    <xsl:when test="$bibliography.numbered != 0">
+      <xsl:text>[</xsl:text>
+      <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($node/child::*[1]) = 'abbrev'">
+      <xsl:text>[</xsl:text>
+      <xsl:apply-templates select="$node/abbrev[1]"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="$node/@xreflabel">
+      <xsl:text>[</xsl:text>
+      <xsl:value-of select="$node/@xreflabel"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="$node/@id">
+      <xsl:text>[</xsl:text>
+      <xsl:value-of select="$node/@id"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="$node/@xml:id">
+      <xsl:text>[</xsl:text>
+      <xsl:value-of select="$node/@xml:id"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:otherwise><!-- nop --></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliography.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliography.mode">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="address" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artheader|articleinfo|info" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <xsl:when test="orgname">
+        <xsl:apply-templates select="orgname" mode="bibliography.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="person.name"/>
+        <xsl:copy-of select="$biblioentry.item.separator"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="person.name.list"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="biblioset/title|biblioset/citetitle" mode="bibliography.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article' or @pubwork='article'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:apply-templates/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></em>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:copy-of select="$biblioentry.item.separator"/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="citetitle" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <xsl:when test="@pubwork = 'article'">
+        <xsl:call-template name="gentext.startquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.endquote"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inline.italicseq"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="collabname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confdates" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confnum" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confsponsor" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="copyright" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <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:apply-templates select="year" mode="bibliography.mode"/>
+    <xsl:if test="holder">
+      <xsl:call-template name="gentext.space"/>
+      <xsl:apply-templates select="holder" mode="bibliography.mode"/>
+    </xsl:if>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="year" mode="bibliography.mode">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="corpauthor" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="person.name"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliography.mode">
+  <!-- suppressed; how could this be represented? -->
+</xsl:template>
+
+<xsl:template match="seriesinfo" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates mode="bibliography.mode"/></em>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- See FR #1934434 and http://doi.org -->
+<xsl:template match="biblioid[@class='doi']" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <a href="{concat('http://dx.doi.org/', .)}">doi:<xsl:value-of select="."/></a>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliomixed.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliomixed.mode">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="address" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <xsl:when test="orgname">
+        <xsl:apply-templates select="orgname" mode="bibliomixed.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="person.name"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bibliomset" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomset/title|bibliomset/citetitle" mode="bibliomixed.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article' or @pubwork='article'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:apply-templates/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></em>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <xsl:when test="@pubwork = 'article'">
+        <xsl:call-template name="gentext.startquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.endquote"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inline.italicseq"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+
+<xsl:template match="collab" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="copyright" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliomixed.mode">
+  <!-- suppressed; how could this be represented? -->
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<!-- See FR #1934434 and http://doi.org -->
+<xsl:template match="biblioid[@class='doi']" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <a href="{concat('http://dx.doi.org/', .)}">doi:<xsl:value-of select="."/></a>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/block.xsl b/applications/content/template/docbook/xhtml-1_1/block.xsl
new file mode 100644
index 0000000..b60a3d2
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/block.xsl
@@ -0,0 +1,567 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- What should we do about styling blockinfo? -->
+
+<xsl:template match="blockinfo|info">
+  <!-- suppress -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="block.object">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="para">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class">
+      <xsl:if test="@role and $para.propagates.style != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:if>
+    </xsl:with-param>
+    <xsl:with-param name="content">
+      <xsl:if test="position() = 1 and parent::listitem">
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="node" select="parent::listitem"/>
+        </xsl:call-template>
+      </xsl:if>
+
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="paragraph">
+  <xsl:param name="class" select="''"/>
+  <xsl:param name="content"/>
+
+  <xsl:variable name="p">
+    <p>
+      <xsl:call-template name="id.attribute"/>
+      <xsl:choose>
+        <xsl:when test="$class != ''">
+          <xsl:call-template name="common.html.attributes">
+            <xsl:with-param name="class" select="$class"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="common.html.attributes">
+            <xsl:with-param name="class" select="''"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:copy-of select="$content"/>
+    </p>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$html.cleanup != 0">
+      <xsl:call-template name="unwrap.p">
+        <xsl:with-param name="p" select="$p"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$p"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="simpara">
+  <!-- see also listitem/simpara in lists.xsl -->
+  <p>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="locale.html.attributes"/>
+    <xsl:if test="@role and $para.propagates.style != 0">
+      <xsl:apply-templates select="." mode="class.attribute">
+        <xsl:with-param name="class" select="@role"/>
+      </xsl:apply-templates>
+    </xsl:if>
+
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="formalpara">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class">
+      <xsl:if test="@role and $para.propagates.style != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:if>
+    </xsl:with-param>
+    <xsl:with-param name="content">
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Only use title from info -->
+<xsl:template match="formalpara/info">
+  <xsl:apply-templates select="title"/>
+</xsl:template>
+
+<xsl:template match="formalpara/title|formalpara/info/title">
+  <xsl:variable name="titleStr">
+      <xsl:apply-templates/>
+  </xsl:variable>
+  <xsl:variable name="lastChar">
+    <xsl:if test="$titleStr != ''">
+      <xsl:value-of select="substring($titleStr,string-length($titleStr),1)"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <span class="formalpara-title">
+        <xsl:copy-of select="$titleStr"/>
+        <xsl:if test="$lastChar != ''                       and not(contains($runinhead.title.end.punct, $lastChar))">
+          <xsl:value-of select="$runinhead.default.title.end.punct"/>
+        </xsl:if>
+        <xsl:text>&#160;</xsl:text>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+        <xsl:copy-of select="$titleStr"/>
+        <xsl:if test="$lastChar != ''                       and not(contains($runinhead.title.end.punct, $lastChar))">
+          <xsl:value-of select="$runinhead.default.title.end.punct"/>
+        </xsl:if>
+        <xsl:text>&#160;</xsl:text>
+      </strong>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="formalpara/para">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="blockquote">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:choose>
+      <xsl:when test="attribution">
+        <table border="{$table.border.off}" class="blockquote">
+          <xsl:if test="$css.decoration != 0">
+            <xsl:attribute name="style">
+              <xsl:text>width: 100%; cellspacing: 0; cellpadding: 0;</xsl:text>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:if test="$div.element != 'section'">
+            <xsl:attribute name="summary">Block quote</xsl:attribute>
+          </xsl:if>
+          <tr>
+            <td valign="top">&#160;</td>
+            <td valign="top">
+              <xsl:apply-templates select="child::*[local-name(.)!='attribution']"/>
+            </td>
+            <td valign="top">&#160;</td>
+          </tr>
+          <tr>
+            <td valign="top">&#160;</td>
+            <td colspan="2" align="{$direction.align.end}" valign="top">
+              <xsl:text>--</xsl:text>
+              <xsl:apply-templates select="attribution"/>
+            </td>
+          </tr>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <blockquote>
+          <xsl:call-template name="common.html.attributes"/>
+          <xsl:apply-templates/>
+        </blockquote>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="blockquote/title|blockquote/info/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="blockquote-title">
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <div class="blockquote-title">
+        <p>
+          <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+            <xsl:apply-templates/>
+          </strong>
+        </p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Use an em dash per Chicago Manual of Style and https://sourceforge.net/tracker/index.php?func=detail&aid=2793878&group_id=21935&atid=373747 -->
+<xsl:template match="epigraph">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates select="para|simpara|formalpara|literallayout"/>
+    <xsl:if test="attribution">
+      <div class="attribution">
+        <span>&#8212;<xsl:apply-templates select="attribution"/></span>
+      </div>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="attribution">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="abstract|sidebar">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="sidebar.titlepage"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="abstract/title|sidebar/title">
+</xsl:template>
+
+<xsl:template match="sidebar/sidebarinfo|sidebar/info"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="msgset">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgentry">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="simplemsgentry">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msg">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgmain">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgmain/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <span class="msgmain-title">
+        <xsl:apply-templates/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></strong>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgsub">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgsub/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <span class="msgsub-title">
+        <xsl:apply-templates/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></strong>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgrel">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgrel/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <span class="msgrel-title">
+        <xsl:apply-templates/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></strong>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgtext">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msginfo">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msglevel">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="msglevel">
+        <span class="msglevel-title">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgLevel'"/>
+          </xsl:call-template>
+        </span>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgLevel'"/>
+          </xsl:call-template>
+        </strong>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgorig">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="msgorig">
+        <span class="msgorig-title">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgOrig'"/>
+          </xsl:call-template>
+        </span>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgOrig'"/>
+          </xsl:call-template>
+        </strong>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgaud">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="msgaud">
+        <span class="msgaud-title">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgAud'"/>
+          </xsl:call-template>
+        </span>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgAud'"/>
+          </xsl:call-template>
+        </strong>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgexplan">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgexplan/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="msgexplan">
+        <span class="msgexplan-title">
+          <xsl:apply-templates/>
+        </span>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:apply-templates/>
+        </strong>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="revhistory">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <table>
+      <xsl:if test="$css.decoration != 0">
+        <xsl:attribute name="style">
+          <xsl:text>border-style:solid; width:100%;</xsl:text>
+        </xsl:attribute>
+      </xsl:if>
+      <!-- include summary attribute if not HTML5 -->
+      <xsl:if test="$div.element != 'section'">
+        <xsl:attribute name="summary">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key">revhistory</xsl:with-param>
+          </xsl:call-template>
+        </xsl:attribute>
+      </xsl:if>
+      <tr>
+        <th align="{$direction.align.start}" valign="top" colspan="3">
+          <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'RevHistory'"/>
+            </xsl:call-template>
+          </strong>
+        </th>
+      </tr>
+      <xsl:apply-templates/>
+    </table>
+  </div>
+</xsl:template>
+
+<xsl:template match="revhistory/revision">
+  <xsl:variable name="revnumber" select="revnumber"/>
+  <xsl:variable name="revdate" select="date"/>
+  <xsl:variable name="revauthor" select="authorinitials|author"/>
+  <xsl:variable name="revremark" select="revremark|revdescription"/>
+  <tr>
+    <td align="{$direction.align.start}">
+      <xsl:if test="$revnumber">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'Revision'"/>
+        </xsl:call-template>
+        <xsl:call-template name="gentext.space"/>
+        <xsl:apply-templates select="$revnumber"/>
+      </xsl:if>
+    </td>
+    <td align="{$direction.align.start}">
+      <xsl:apply-templates select="$revdate"/>
+    </td>
+    <xsl:choose>
+      <xsl:when test="count($revauthor)=0">
+        <td align="{$direction.align.start}">
+          <xsl:call-template name="dingbat">
+            <xsl:with-param name="dingbat">nbsp</xsl:with-param>
+          </xsl:call-template>
+        </td>
+      </xsl:when>
+      <xsl:otherwise>
+        <td align="{$direction.align.start}">
+          <xsl:for-each select="$revauthor">
+            <xsl:apply-templates select="."/>
+            <xsl:if test="position() != last()">
+              <xsl:text>, </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </td>
+      </xsl:otherwise>
+    </xsl:choose>
+  </tr>
+  <xsl:if test="$revremark">
+    <tr>
+      <td align="{$direction.align.start}" colspan="3">
+        <xsl:apply-templates select="$revremark"/>
+      </td>
+    </tr>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/date">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials">
+  <xsl:text>, </xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials[1]" priority="2">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revremark">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="ackno|acknowledgements[parent::article]">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="highlights">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/callout.xsl b/applications/content/template/docbook/xhtml-1_1/callout.xsl
new file mode 100644
index 0000000..6293166
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/callout.xsl
@@ -0,0 +1,209 @@
+<?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:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim" xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim" xmlns:lxslt="http://xml.apache.org/xslt" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="sverb xverb lxslt" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xverb" functions="insertCallouts"/>
+
+<xsl:template match="programlistingco|screenco">
+  <xsl:variable name="verbatim" select="programlisting|screen"/>
+
+  <xsl:choose>
+    <xsl:when test="$use.extensions != '0'                     and $callouts.extension != '0'">
+      <xsl:variable name="rtf">
+        <xsl:apply-templates select="$verbatim">
+          <xsl:with-param name="suppress-numbers" select="'1'"/>
+        </xsl:apply-templates>
+      </xsl:variable>
+
+      <xsl:variable name="rtf-with-callouts">
+        <xsl:choose>
+          <xsl:when test="function-available('sverb:insertCallouts')">
+            <xsl:copy-of select="sverb:insertCallouts(areaspec,$rtf)"/>
+          </xsl:when>
+          <xsl:when test="function-available('xverb:insertCallouts')">
+            <xsl:copy-of select="xverb:insertCallouts(areaspec,$rtf)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message terminate="yes">
+              <xsl:text>No insertCallouts function is available.</xsl:text>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$verbatim/@linenumbering = 'numbered'                         and $linenumbering.extension != '0'">
+          <div>
+            <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf-with-callouts"/>
+              <xsl:with-param name="pi.context" select="programlisting|screen"/>
+            </xsl:call-template>
+            <xsl:apply-templates select="calloutlist"/>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <div>
+            <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:copy-of select="$rtf-with-callouts"/>
+            <xsl:apply-templates select="calloutlist"/>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="areaspec|areaset|area">
+</xsl:template>
+
+<xsl:template match="areaset" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="area" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="co" name="co">
+  <!-- Support a single linkend in HTML -->
+  <xsl:variable name="targets" select="key('id', @linkends)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:choose>
+    <xsl:when test="$target">
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <!-- force an id attribute here -->
+            <xsl:if test="@id or @xml:id">
+              <xsl:attribute name="id">
+                <xsl:value-of select="(@id|@xml:id)[1]"/>
+              </xsl:attribute>
+            </xsl:if>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="id.attribute"/>
+          </xsl:otherwise>
+        </xsl:choose>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="." mode="callout-bug"/>
+      </a>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$generate.id.attributes != 0">
+        <xsl:if test="@id or @xml:id">
+          <span>
+             <xsl:attribute name="id">
+                <xsl:value-of select="(@id|@xml:id)[1]"/>
+              </xsl:attribute>
+          </span>
+        </xsl:if>
+      </xsl:if>
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates select="." mode="callout-bug"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="coref">
+  <!-- tricky; this relies on the fact that we can process the "co" that's -->
+  <!-- "over there" as if it were "right here" -->
+
+  <xsl:variable name="co" select="key('id', @linkend)"/>
+  <xsl:choose>
+    <xsl:when test="not($co)">
+      <xsl:message>
+        <xsl:text>Error: coref link is broken: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+      </xsl:message>
+    </xsl:when>
+    <xsl:when test="local-name($co) != 'co'">
+      <xsl:message>
+        <xsl:text>Error: coref doesn't point to a co: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="$co"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="co" mode="callout-bug">
+  <xsl:call-template name="callout-bug">
+    <xsl:with-param name="conum">
+      <xsl:number count="co" level="any" from="programlisting|screen|literallayout|synopsis" format="1"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="callout-bug">
+  <xsl:param name="conum" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$callout.graphics != 0                     and $conum &lt;= $callout.graphics.number.limit">
+      <!-- Added span to make valid in XHTML 1 -->
+      <span><img src="{$callout.graphics.path}{$conum}{$callout.graphics.extension}" alt="{$conum}"/></span>
+    </xsl:when>
+    <xsl:when test="$callout.unicode != 0                     and $conum &lt;= $callout.unicode.number.limit">
+      <xsl:choose>
+        <xsl:when test="$callout.unicode.start.character = 10102">
+          <xsl:choose>
+            <xsl:when test="$conum = 1">&#10102;</xsl:when>
+            <xsl:when test="$conum = 2">&#10103;</xsl:when>
+            <xsl:when test="$conum = 3">&#10104;</xsl:when>
+            <xsl:when test="$conum = 4">&#10105;</xsl:when>
+            <xsl:when test="$conum = 5">&#10106;</xsl:when>
+            <xsl:when test="$conum = 6">&#10107;</xsl:when>
+            <xsl:when test="$conum = 7">&#10108;</xsl:when>
+            <xsl:when test="$conum = 8">&#10109;</xsl:when>
+            <xsl:when test="$conum = 9">&#10110;</xsl:when>
+            <xsl:when test="$conum = 10">&#10111;</xsl:when>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>Don't know how to generate Unicode callouts </xsl:text>
+            <xsl:text>when $callout.unicode.start.character is </xsl:text>
+            <xsl:value-of select="$callout.unicode.start.character"/>
+          </xsl:message>
+          <xsl:text>(</xsl:text>
+          <xsl:value-of select="$conum"/>
+          <xsl:text>)</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$conum"/>
+      <xsl:text>)</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/changebars.xsl b/applications/content/template/docbook/xhtml-1_1/changebars.xsl
new file mode 100644
index 0000000..c0d84e5
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/changebars.xsl
@@ -0,0 +1,78 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<xsl:import href="docbook.xsl"/>
+
+<xsl:param name="show.revisionflag" select="'1'"/>
+
+<xsl:template name="system.head.content">
+<xsl:param name="node" select="."/>
+
+<style type="text/css">
+<xsl:text>
+div.added    { background-color: #ffff99; 
+               text-decoration: underline; }
+div.deleted  { text-decoration: line-through;
+               background-color: #FF7F7F; }
+div.changed  { background-color: #99ff99; }
+div.off      {  }
+
+span.added   { background-color: #ffff99; 
+               text-decoration: underline; }
+span.deleted { text-decoration: line-through;
+               background-color: #FF7F7F; }
+span.changed { background-color: #99ff99; }
+span.off     {  }
+</xsl:text>
+</style>
+</xsl:template>
+
+<xsl:template match="*[@revisionflag]">
+  <xsl:call-template name="block.or.inline.revision"/>
+</xsl:template>
+
+<xsl:template name="block.or.inline.revision">
+  <xsl:param name="revisionflag" select="@revisionflag"/>
+  
+  <xsl:choose>
+    <xsl:when test="local-name(.) = 'para'       or local-name(.) = 'formalpara'       or local-name(.) = 'simpara'       or local-name(.) = 'simplesect'       or local-name(.) = 'section'                           or local-name(.) = 'sect1'       or local-name(.) = 'sect2'       or local-name(.) = 'sect3'       or local-name(.) = 'sect4'       or local-name(.) = 'sect5'       or local-name(.) = 'topic'                           or local-name(.) = 'chapter'       or local-name(.) = 'preface'       or local-name(.) = 'itemizedlist'       or local-name(.) = 'orderedlist'       or local-name(.) = 'variablelist'       or local-name(.) = 'varlistentry'       or local-name(.) = 'informaltable'       or local-name(.) = 'informalexample'       or local-name(.) = 'note'       or local-name(.) = 'example'       or local-name(.) = 'mediaobject'       or local-name(.) = 'sidebar'       or local-name(.) = 'glossary'       or local-name(.) = 'glossentry'                           or local-name(.) = 'bibliography'       or local-name(.) = 'index'                           or local-name(.) = 'appendix'">
+      <div class="{$revisionflag}">
+	<xsl:apply-imports/>
+      </div>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'phrase'       or local-name(.) = 'ulink'       or local-name(.) = 'link'       or local-name(.) = 'olink'       or local-name(.) = 'inlinemediaobject'       or local-name(.) = 'filename'       or local-name(.) = 'literal'       or local-name(.) = 'member'       or local-name(.) = 'term'       or local-name(.) = 'guilabel'       or local-name(.) = 'glossterm'       or local-name(.) = 'sgmltag'       or local-name(.) = 'tag'       or local-name(.) = 'quote'       or local-name(.) = 'emphasis'       or local-name(.) = 'command'       or local-name(.) = 'xref'">
+      <span class="{$revisionflag}">
+	<xsl:apply-imports/>
+      </span>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'listitem'                     or local-name(.) = 'entry'                     or local-name(.) = 'title'">
+      <!-- nop; these are handled directly in the stylesheet -->
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Revisionflag on unexpected element: </xsl:text>
+	<xsl:value-of select="local-name(.)"/>
+	<xsl:text> (Assuming block)</xsl:text>
+      </xsl:message>
+      <div class="{$revisionflag}">
+	<xsl:apply-imports/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/chunk-changebars.xsl b/applications/content/template/docbook/xhtml-1_1/chunk-changebars.xsl
new file mode 100644
index 0000000..90adc3d
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/chunk-changebars.xsl
@@ -0,0 +1,96 @@
+<?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:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl cf">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This file is a variant of chunk.xsl, to be used for generating chunked 
+     output with highlighting based on change markup. -->
+
+<xsl:import href="changebars.xsl"/>
+<xsl:import href="chunk-common.xsl"/>
+
+<!-- This customization of "process-chunk-element" is needed in order to make change 
+     highlighting be inherited by chunked children of an element with change markup. -->
+<xsl:template name="process-chunk-element">
+  <xsl:param name="content">
+    <xsl:choose>
+
+      <xsl:when test="ancestor-or-self::*[@revisionflag] and $show.revisionflag != 0">
+	<xsl:variable name="revisionflag" select="ancestor-or-self::*[@revisionflag][1]/@revisionflag"/>
+	<xsl:call-template name="block.or.inline.revision">
+	  <xsl:with-param name="revisionflag" select="$revisionflag"/>
+	</xsl:call-template>
+      </xsl:when>
+
+      <xsl:otherwise>
+	<xsl:apply-imports/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$chunk.fast != 0 and $exsl.node.set.available != 0">
+      <xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/>
+      <xsl:variable name="genid" select="generate-id()"/>
+
+      <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/>
+
+      <xsl:variable name="prevdiv" select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/>
+      <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/>
+
+      <xsl:variable name="nextdiv" select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/>
+      <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and parent::*">
+          <xsl:copy-of select="$content"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="process-chunk">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and not(parent::*)">
+          <xsl:call-template name="chunk-all-sections">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$onechunk != 0">
+          <xsl:copy-of select="$content"/>
+        </xsl:when>
+        <xsl:when test="$chunk.first.sections = 0">
+          <xsl:call-template name="chunk-first-section-with-parent">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="chunk-all-sections">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:include href="chunk-code.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/chunk-code.xsl b/applications/content/template/docbook/xhtml-1_1/chunk-code.xsl
new file mode 100644
index 0000000..6269232
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/chunk-code.xsl
@@ -0,0 +1,658 @@
+<?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:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="exsl cf ng db" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="chunk-filename">
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="fn">
+    <xsl:apply-templates select="." mode="recursive-chunk-filename"/>
+  </xsl:variable>
+
+  <!--
+  <xsl:message>
+    <xsl:value-of select="$ischunk"/>
+    <xsl:text> (</xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text>) </xsl:text>
+    <xsl:value-of select="$fn"/>
+    <xsl:text>, </xsl:text>
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:message>
+  -->
+
+  <!-- 2003-11-25 by ndw:
+       The following test used to read test="$ischunk != 0 and $fn != ''"
+       I've removed the ischunk part of the test so that href.to.uri and
+       href.from.uri will be fully qualified even if the source or target
+       isn't a chunk. I *think* that if $fn != '' then it's appropriate
+       to put the directory on the front, even if the element isn't a
+       chunk. I could be wrong. -->
+
+  <xsl:if test="$fn != ''">
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:if>
+
+  <xsl:value-of select="$chunked.filename.prefix"/>
+
+  <xsl:value-of select="$fn"/>
+  <!-- You can't add the html.ext here because dbhtml filename= may already -->
+  <!-- have added it. It really does have to be handled in the recursive template -->
+</xsl:template>
+
+<xsl:template match="*" mode="recursive-chunk-filename">
+  <xsl:param name="recursive" select="false()"/>
+
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="dbhtml-filename">
+    <xsl:call-template name="pi.dbhtml_filename"/>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="$dbhtml-filename != ''">
+        <xsl:value-of select="$dbhtml-filename"/>
+      </xsl:when>
+      <!-- if this is the root element, use the root.filename -->
+      <xsl:when test="not(parent::*) and $root.filename != ''">
+        <xsl:value-of select="$root.filename"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <!-- Special case -->
+      <xsl:when test="self::legalnotice and not($generate.legalnotice.link = 0)">
+        <xsl:choose>
+          <xsl:when test="(@id or @xml:id) and not($use.id.as.filename = 0)">
+            <!-- * if this legalnotice has an ID, then go ahead and use -->
+            <!-- * just the value of that ID as the basename for the file -->
+            <!-- * (that is, without prepending an "ln-" too it) -->
+            <xsl:value-of select="(@id|@xml:id)[1]"/>
+            <xsl:value-of select="$html.ext"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- * otherwise, if this legalnotice does not have an ID, -->
+            <!-- * then we generate an ID... -->
+            <xsl:variable name="id">
+              <xsl:call-template name="object.id"/>
+            </xsl:variable>
+            <!-- * ...and then we take that generated ID, prepend an -->
+            <!-- * "ln-" to it, and use that as the basename for the file -->
+            <xsl:value-of select="concat('ln-',$id,$html.ext)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <!-- if there's no dbhtml filename, and if we're to use IDs as -->
+      <!-- filenames, then use the ID to generate the filename. -->
+      <xsl:when test="(@id or @xml:id) and $use.id.as.filename != 0">
+        <xsl:value-of select="(@id|@xml:id)[1]"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </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="recursive-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:value-of select="$filename"/>
+    </xsl:when>
+
+    <xsl:when test="self::set">
+      <xsl:value-of select="$root.filename"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::book">
+      <xsl:text>bk</xsl:text>
+      <xsl:number level="any" format="01"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::article">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ar</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::preface">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>pr</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::chapter">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ch</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::appendix">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ap</xsl:text>
+      <xsl:number level="any" format="a" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::part">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>pt</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::reference">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>rn</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::refentry">
+      <xsl:choose>
+        <xsl:when test="parent::reference">
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="/set">
+            <!-- in a set, make sure we inherit the right book info... -->
+            <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+              <xsl:with-param name="recursive" select="true()"/>
+            </xsl:apply-templates>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>re</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::colophon">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>co</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::sect1                     or self::sect2                     or self::sect3                     or self::sect4                     or self::sect5                     or self::section">
+      <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+        <xsl:with-param name="recursive" select="true()"/>
+      </xsl:apply-templates>
+      <xsl:text>s</xsl:text>
+      <xsl:number format="01"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::bibliography">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>bi</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::glossary">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>go</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::index">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>ix</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::setindex">
+      <xsl:text>si</xsl:text>
+      <xsl:number level="any" format="01" from="set"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::topic">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>to</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </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>
+
+<!-- ==================================================================== -->
+
+
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="find.chunks">
+  <xsl:variable name="chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$chunk != 0">
+      <cf:div id="{generate-id()}">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:apply-templates select="*" mode="find.chunks"/>
+      </cf:div>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="*" mode="find.chunks"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Leave legalnotice chunk out of the list for Next and Prev -->
+<xsl:template match="legalnotice" mode="find.chunks"/>
+
+<xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+	 stylesheets for DocBook5 if you don't want to use this feature.-->
+    <xsl:when test="$exsl.node.set.available != 0                      and (*/self::ng:* or */self::db:*)">
+
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+
+      <xsl:apply-templates select="exsl:node-set($no.namespace)"/>
+    </xsl:when>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="*/self::ng:* or */self::db:*">
+      <xsl:message terminate="yes">
+        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+        <xsl:text> cannot proceed.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count(key('id',$rootid)) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/>
+                </xsl:if>
+                <xsl:if test="$generate.manifest != 0">
+                  <xsl:call-template name="generate.manifest">
+                    <xsl:with-param name="node" select="key('id',$rootid)"/>
+                  </xsl:call-template>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="/" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="/" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="/" mode="collect.tex.math"/>
+            </xsl:if>
+            <xsl:if test="$generate.manifest != 0">
+              <xsl:call-template name="generate.manifest">
+                <xsl:with-param name="node" select="/"/>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:apply-templates select="."/>
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |topic                      |reference|refentry                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon">
+  <xsl:choose>
+    <xsl:when test="$onechunk != 0 and parent::*">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not(parent::*)">
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:when>
+    <xsl:when test="$ischunk = 0">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex                      |book/index                      |article/index                      |part/index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. -->
+  <xsl:if test="count(*)&gt;0 or $generate.index != '0'">
+    <xsl:call-template name="process-chunk-element"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- Resolve xml:base attributes -->
+<xsl:template match="@fileref">
+  <!-- need a check for absolute urls -->
+  <xsl:choose>
+    <xsl:when test="contains(., ':')">
+      <!-- it has a uri scheme so it is an absolute uri -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:when test="$keep.relative.image.uris != 0">
+      <!-- leave it alone -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- its a relative uri -->
+      <xsl:call-template name="relative-uri">
+        <xsl:with-param name="destdir">
+          <xsl:call-template name="dbhtml-dir">
+            <xsl:with-param name="context" select=".."/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |topic                      |reference|refentry                      |sect1|sect2|sect3|sect4|sect5                      |section                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon" mode="enumerate-files">
+  <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+  <xsl:if test="$ischunk='1'">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir">
+        <xsl:if test="$manifest.in.base.dir = 0">
+          <xsl:value-of select="$chunk.base.dir"/>
+        </xsl:if>
+      </xsl:with-param>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+  <xsl:apply-templates select="*" mode="enumerate-files"/>
+</xsl:template>
+
+<xsl:template match="book/index|article/index|part/index" mode="enumerate-files">
+  <xsl:if test="$htmlhelp.output != 1">
+    <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+    <xsl:if test="$ischunk='1'">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir">
+          <xsl:if test="$manifest.in.base.dir = 0">
+            <xsl:value-of select="$chunk.base.dir"/>
+          </xsl:if>
+        </xsl:with-param>
+        <xsl:with-param name="base.name">
+          <xsl:apply-templates mode="chunk-filename" select="."/>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>
+</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="*" mode="enumerate-files"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="enumerate-files">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <xsl:if test="$generate.legalnotice.link != 0">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir">
+        <xsl:if test="$manifest.in.base.dir = 0">
+          <xsl:value-of select="$chunk.base.dir"/>
+        </xsl:if>
+      </xsl:with-param>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="mediaobject[imageobject] | inlinemediaobject[imageobject]" mode="enumerate-files">
+  <xsl:variable name="longdesc.uri">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="mediaobject" select="."/>
+
+  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="$mediaobject"/>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="enumerate-files">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/chunk-common.xsl b/applications/content/template/docbook/xhtml-1_1/chunk-common.xsl
new file mode 100644
index 0000000..dfd692c
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/chunk-common.xsl
@@ -0,0 +1,1591 @@
+<?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:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl cf ng db">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:param name="onechunk" select="0"/>
+<xsl:param name="refentry.separator" select="0"/>
+<xsl:param name="chunk.fast" select="0"/>
+
+<xsl:key name="genid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:variable name="chunk.hierarchy">
+  <xsl:if test="$chunk.fast != 0">
+    <xsl:choose>
+      <!-- Are we handling a docbook5 document? -->
+      <xsl:when test="$exsl.node.set.available != 0                       and (*/self::ng:* or */self::db:*)">
+        <xsl:if test="$chunk.quietly = 0">
+          <xsl:message>Computing stripped namespace chunks...</xsl:message>
+        </xsl:if>
+        <xsl:apply-templates mode="find.chunks" select="exsl:node-set($no.namespace)"/>
+      </xsl:when>
+      <xsl:when test="$exsl.node.set.available != 0">
+        <xsl:if test="$chunk.quietly = 0">
+          <xsl:message>Computing chunks...</xsl:message>
+        </xsl:if>
+
+        <xsl:apply-templates select="/*" mode="find.chunks"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:if test="$chunk.quietly = 0">
+          <xsl:message>
+            <xsl:text>Fast chunking requires exsl:node-set(). </xsl:text>
+            <xsl:text>Using "slow" chunking.</xsl:text>
+          </xsl:message>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:variable>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$chunk.fast != 0 and $exsl.node.set.available != 0">
+      <xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/>
+      <xsl:variable name="genid" select="generate-id()"/>
+
+      <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/>
+
+      <xsl:variable name="prevdiv" select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/>
+      <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/>
+
+      <xsl:variable name="nextdiv" select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/>
+      <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and parent::*">
+          <xsl:copy-of select="$content"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="process-chunk">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and not(parent::*)">
+          <xsl:call-template name="chunk-all-sections">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$onechunk != 0">
+          <xsl:copy-of select="$content"/>
+        </xsl:when>
+        <xsl:when test="$chunk.first.sections = 0">
+          <xsl:call-template name="chunk-first-section-with-parent">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="chunk-all-sections">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process-chunk">
+  <xsl:param name="prev" select="."/>
+  <xsl:param name="next" select="."/>
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunkfn">
+    <xsl:if test="$ischunk='1'">
+      <xsl:apply-templates mode="chunk-filename" select="."/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="$ischunk='0'">
+    <xsl:message>
+      <xsl:text>Error </xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:text> is not a chunk!</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+      <xsl:with-param name="base.name" select="$chunkfn"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="chunk-element-content">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:with-param>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-first-section-with-parent">
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <!-- These xpath expressions are really hairy. The trick is to pick sections -->
+  <!-- that are not first children and are not the children of first children -->
+
+  <!-- Break these variables into pieces to work around
+       http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6063 -->
+
+  <xsl:variable name="prev-v1" select="(ancestor::sect1[$chunk.section.depth &gt; 0                              and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect1][1]               |ancestor::sect2[$chunk.section.depth &gt; 1                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect2                                and parent::sect1[preceding-sibling::sect1]][1]               |ancestor::sect3[$chunk.section.depth &gt; 2                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect3                                and parent::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |ancestor::sect4[$chunk.section.depth &gt; 3                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect4                                and parent::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |ancestor::sect5[$chunk.section.depth &gt; 4                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect5                                and parent::sect4[preceding-sibling::sect4]                                and ancestor::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |ancestor::section[$chunk.section.depth &gt; count(ancestor::section)                              and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                 and not(ancestor::section[not(preceding-sibling::section)])][1])[last()]"/>
+
+  <xsl:variable name="prev-v2" select="(preceding::sect1[$chunk.section.depth &gt; 0                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect1][1]               |preceding::sect2[$chunk.section.depth &gt; 1                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect2                                and parent::sect1[preceding-sibling::sect1]][1]               |preceding::sect3[$chunk.section.depth &gt; 2                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect3                                and parent::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |preceding::sect4[$chunk.section.depth &gt; 3                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect4                                and parent::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |preceding::sect5[$chunk.section.depth &gt; 4                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect5                                and parent::sect4[preceding-sibling::sect4]                                and ancestor::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |preceding::section[$chunk.section.depth &gt; count(ancestor::section)                                 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                  and preceding-sibling::section                                  and not(ancestor::section[not(preceding-sibling::section)])][1])[last()]"/>
+
+  <xsl:variable name="prev" select="(preceding::book[1]              |preceding::preface[1]              |preceding::chapter[1]              |preceding::appendix[1]              |preceding::part[1]              |preceding::reference[1]              |preceding::refentry[1]              |preceding::colophon[1]              |preceding::article[1]              |preceding::topic[1]              |preceding::bibliography[parent::article or parent::book or parent::part][1]              |preceding::glossary[parent::article or parent::book or parent::part][1]              |preceding::index[$generate.index != 0]                                [parent::article or parent::book or parent::part][1]              |preceding::setindex[$generate.index != 0][1]              |ancestor::set              |ancestor::book[1]              |ancestor::preface[1]              |ancestor::chapter[1]              |ancestor::appendix[1]              |ancestor::part[1]              |ancestor::reference[1]              |ancestor::article[1]              |ancestor::topic[1]              |$prev-v1              |$prev-v2)[last()]"/>
+
+  <xsl:variable name="next-v1" select="(following::sect1[$chunk.section.depth &gt; 0                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect1][1]               |following::sect2[$chunk.section.depth &gt; 1                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect2                                and parent::sect1[preceding-sibling::sect1]][1]               |following::sect3[$chunk.section.depth &gt; 2                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect3                                and parent::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |following::sect4[$chunk.section.depth &gt; 3                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect4                                and parent::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |following::sect5[$chunk.section.depth &gt; 4                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect5                                and parent::sect4[preceding-sibling::sect4]                                and ancestor::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |following::section[$chunk.section.depth &gt; count(ancestor::section)                                 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                  and preceding-sibling::section                                   and not(ancestor::section[not(preceding-sibling::section)])][1])[1]"/>
+
+  <xsl:variable name="next-v2" select="(descendant::sect1[$chunk.section.depth &gt; 0                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect1][1]               |descendant::sect2[$chunk.section.depth &gt; 1                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect2                                and parent::sect1[preceding-sibling::sect1]][1]               |descendant::sect3[$chunk.section.depth &gt; 2                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect3                                and parent::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |descendant::sect4[$chunk.section.depth &gt; 3                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect4                                and parent::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |descendant::sect5[$chunk.section.depth &gt; 4                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect5                                and parent::sect4[preceding-sibling::sect4]                                and ancestor::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |descendant::section[$chunk.section.depth &gt; count(ancestor::section)                                  and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                  and preceding-sibling::section                                  and not(ancestor::section[not(preceding-sibling::section)])])[1]"/>
+
+  <xsl:variable name="next" select="(following::book[1]              |following::preface[1]              |following::chapter[1]              |following::appendix[1]              |following::part[1]              |following::reference[1]              |following::refentry[1]              |following::colophon[1]              |following::bibliography[parent::article or parent::book or parent::part][1]              |following::glossary[parent::article or parent::book or parent::part][1]              |following::index[$generate.index != 0]                                [parent::article or parent::book or parent::part][1]              |following::article[1]              |following::topic[1]              |following::setindex[$generate.index != 0][1]              |descendant::book[1]              |descendant::preface[1]              |descendant::chapter[1]              |descendant::appendix[1]              |descendant::article[1]              |descendant::topic[1]              |descendant::bibliography[parent::article or parent::book or parent::part][1]              |descendant::glossary[parent::article or parent::book or parent::part][1]              |descendant::index[$generate.index != 0]                                [parent::article or parent::book or parent::part][1]              |descendant::colophon[1]              |descendant::setindex[$generate.index != 0][1]              |descendant::part[1]              |descendant::reference[1]              |descendant::refentry[1]              |$next-v1              |$next-v2)[1]"/>
+
+  <xsl:call-template name="process-chunk">
+    <xsl:with-param name="prev" select="$prev"/>
+    <xsl:with-param name="next" select="$next"/>
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-all-sections">
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:variable name="prev-v1" select="(preceding::sect1[$chunk.section.depth &gt; 0 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |preceding::sect2[$chunk.section.depth &gt; 1 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |preceding::sect3[$chunk.section.depth &gt; 2 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |preceding::sect4[$chunk.section.depth &gt; 3 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |preceding::sect5[$chunk.section.depth &gt; 4 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |preceding::section[$chunk.section.depth &gt; count(ancestor::section) and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1])[last()]"/>
+
+  <xsl:variable name="prev-v2" select="(ancestor::sect1[$chunk.section.depth &gt; 0 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |ancestor::sect2[$chunk.section.depth &gt; 1 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |ancestor::sect3[$chunk.section.depth &gt; 2 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |ancestor::sect4[$chunk.section.depth &gt; 3 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |ancestor::sect5[$chunk.section.depth &gt; 4 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |ancestor::section[$chunk.section.depth &gt; count(ancestor::section) and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1])[last()]"/>
+
+  <xsl:variable name="prev" select="(preceding::book[1]              |preceding::preface[1]              |preceding::chapter[1]              |preceding::appendix[1]              |preceding::part[1]              |preceding::reference[1]              |preceding::refentry[1]              |preceding::colophon[1]              |preceding::article[1]              |preceding::topic[1]              |preceding::bibliography[parent::article or parent::book or parent::part][1]              |preceding::glossary[parent::article or parent::book or parent::part][1]              |preceding::index[$generate.index != 0]                                [parent::article or parent::book or parent::part][1]              |preceding::setindex[$generate.index != 0][1]              |ancestor::set              |ancestor::book[1]              |ancestor::preface[1]              |ancestor::chapter[1]              |ancestor::appendix[1]              |ancestor::part[1]              |ancestor::reference[1]              |ancestor::article[1]              |ancestor::topic[1]              |$prev-v1              |$prev-v2)[last()]"/>
+
+  <xsl:variable name="next-v1" select="(following::sect1[$chunk.section.depth &gt; 0 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |following::sect2[$chunk.section.depth &gt; 1 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |following::sect3[$chunk.section.depth &gt; 2 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |following::sect4[$chunk.section.depth &gt; 3 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |following::sect5[$chunk.section.depth &gt; 4 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |following::section[$chunk.section.depth &gt; count(ancestor::section) and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1])[1]"/>
+
+  <xsl:variable name="next-v2" select="(descendant::sect1[$chunk.section.depth &gt; 0 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |descendant::sect2[$chunk.section.depth &gt; 1 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |descendant::sect3[$chunk.section.depth &gt; 2 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |descendant::sect4[$chunk.section.depth &gt; 3 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |descendant::sect5[$chunk.section.depth &gt; 4 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |descendant::section[$chunk.section.depth                                    &gt; count(ancestor::section) and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1])[1]"/>
+
+  <xsl:variable name="next" select="(following::book[1]              |following::preface[1]              |following::chapter[1]              |following::appendix[1]              |following::part[1]              |following::reference[1]              |following::refentry[1]              |following::colophon[1]              |following::bibliography[parent::article or parent::book or parent::part][1]              |following::glossary[parent::article or parent::book or parent::part][1]              |following::index[$generate.index != 0]                                [parent::article or parent::book][1]              |following::article[1]              |following::topic[1]              |following::setindex[$generate.index != 0][1]              |descendant::book[1]              |descendant::preface[1]              |descendant::chapter[1]              |descendant::appendix[1]              |descendant::article[1]              |descendant::topic[1]              |descendant::bibliography[parent::article or parent::book][1]              |descendant::glossary[parent::article or parent::book or parent::part][1]              |descendant::index[$generate.index != 0]                                [parent::article or parent::book][1]              |descendant::colophon[1]              |descendant::setindex[$generate.index != 0][1]              |descendant::part[1]              |descendant::reference[1]              |descendant::refentry[1]              |$next-v1              |$next-v2)[1]"/>
+
+  <xsl:call-template name="process-chunk">
+    <xsl:with-param name="prev" select="$prev"/>
+    <xsl:with-param name="next" select="$next"/>
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make.lots">
+  <xsl:param name="toc.params" select="''"/>
+  <xsl:param name="toc"/>
+
+  <xsl:variable name="lots">
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:copy-of select="$toc"/>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'figure')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'figure'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'figure'"/>
+                <xsl:with-param name="nodes" select=".//figure"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'figure'"/>
+            <xsl:with-param name="nodes" select=".//figure"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'table')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'table'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'table'"/>
+                <xsl:with-param name="nodes" select=".//table[not(@tocentry = 0)]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'table'"/>
+            <xsl:with-param name="nodes" select=".//table[not(@tocentry = 0)]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'example')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'example'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'example'"/>
+                <xsl:with-param name="nodes" select=".//example"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'example'"/>
+            <xsl:with-param name="nodes" select=".//example"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'equation')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'equation'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'equation'"/>
+                <xsl:with-param name="nodes" select=".//equation[title or info/title]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'equation'"/>
+            <xsl:with-param name="nodes" select=".//equation[title or info/title]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'procedure')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'procedure'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'procedure'"/>
+                <xsl:with-param name="nodes" select=".//procedure[title]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'procedure'"/>
+            <xsl:with-param name="nodes" select=".//procedure[title]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="string($lots) != ''">
+    <xsl:choose>
+      <xsl:when test="$chunk.tocs.and.lots != 0 and not(parent::*)">
+        <xsl:call-template name="write.chunk">
+          <xsl:with-param name="filename">
+            <xsl:call-template name="make-relative-filename">
+              <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+              <xsl:with-param name="base.name">
+                <xsl:call-template name="dbhtml-dir"/>
+                <xsl:value-of select="$chunked.filename.prefix"/>
+                <xsl:apply-templates select="." mode="recursive-chunk-filename">
+                  <xsl:with-param name="recursive" select="true()"/>
+                </xsl:apply-templates>
+                <xsl:text>-toc</xsl:text>
+                <xsl:value-of select="$html.ext"/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="content">
+            <xsl:call-template name="chunk-element-content">
+              <xsl:with-param name="prev" select="/foo"/>
+              <xsl:with-param name="next" select="/foo"/>
+              <xsl:with-param name="nav.context" select="'toc'"/>
+              <xsl:with-param name="content">
+                <xsl:if test="$chunk.tocs.and.lots.has.title != 0">
+                  <h1>
+                    <xsl:apply-templates select="." mode="object.title.markup"/>
+                  </h1>
+                </xsl:if>
+                <xsl:copy-of select="$lots"/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="quiet" select="$chunk.quietly"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$lots"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="make.lot.chunk">
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="lot"/>
+
+  <xsl:if test="string($lot) != ''">
+    <xsl:variable name="filename">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+        <xsl:with-param name="base.name">
+          <xsl:call-template name="dbhtml-dir"/>
+          <xsl:value-of select="$type"/>
+          <xsl:text>-toc</xsl:text>
+          <xsl:value-of select="$html.ext"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="href">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir" select="''"/>
+        <xsl:with-param name="base.name">
+          <xsl:call-template name="dbhtml-dir"/>
+          <xsl:value-of select="$type"/>
+          <xsl:text>-toc</xsl:text>
+          <xsl:value-of select="$html.ext"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="write.chunk">
+      <xsl:with-param name="filename" select="$filename"/>
+      <xsl:with-param name="content">
+        <xsl:call-template name="chunk-element-content">
+          <xsl:with-param name="prev" select="/foo"/>
+          <xsl:with-param name="next" select="/foo"/>
+          <xsl:with-param name="nav.context" select="'toc'"/>
+          <xsl:with-param name="content">
+            <xsl:copy-of select="$lot"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:with-param>
+      <xsl:with-param name="quiet" select="$chunk.quietly"/>
+    </xsl:call-template>
+    <!-- And output a link to this file -->
+    <div>
+      <xsl:attribute name="class">
+        <xsl:text>ListofTitles</xsl:text>
+      </xsl:attribute>
+      <a href="{$href}">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key">
+            <xsl:choose>
+              <xsl:when test="$type='table'">ListofTables</xsl:when>
+              <xsl:when test="$type='figure'">ListofFigures</xsl:when>
+              <xsl:when test="$type='equation'">ListofEquations</xsl:when>
+              <xsl:when test="$type='example'">ListofExamples</xsl:when>
+              <xsl:when test="$type='procedure'">ListofProcedures</xsl:when>
+              <xsl:otherwise>ListofUnknown</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+      </a>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="in.other.chunk">
+  <xsl:param name="chunk" select="."/>
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:text>in.other.chunk: </xsl:text>
+    <xsl:value-of select="name($chunk)"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="name($node)"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$chunk = $node"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$is.chunk"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+    <xsl:when test="$chunk = $node">0</xsl:when>
+    <xsl:when test="$is.chunk = 1">1</xsl:when>
+    <xsl:when test="count($node) = 0">0</xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="in.other.chunk">
+        <xsl:with-param name="chunk" select="$chunk"/>
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="count.footnotes.in.this.chunk">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="footnotes" select="$node//footnote"/>
+  <xsl:param name="count" select="0"/>
+
+<!--
+  <xsl:message>
+    <xsl:text>count.footnotes.in.this.chunk: </xsl:text>
+    <xsl:value-of select="name($node)"/>
+  </xsl:message>
+-->
+
+  <xsl:variable name="in.other.chunk">
+    <xsl:call-template name="in.other.chunk">
+      <xsl:with-param name="chunk" select="$node"/>
+      <xsl:with-param name="node" select="$footnotes[1]"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="count($footnotes) = 0">
+      <xsl:value-of select="$count"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$in.other.chunk != 0">
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes" select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$footnotes[1]/ancestor::table                         |$footnotes[1]/ancestor::informaltable">
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes" select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes" select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count + 1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.footnotes.in.this.chunk">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="footnotes" select="$node//footnote"/>
+
+<!--
+  <xsl:message>process.footnotes.in.this.chunk</xsl:message>
+-->
+
+  <xsl:variable name="in.other.chunk">
+    <xsl:call-template name="in.other.chunk">
+      <xsl:with-param name="chunk" select="$node"/>
+      <xsl:with-param name="node" select="$footnotes[1]"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="count($footnotes) = 0">
+      <!-- nop -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$in.other.chunk != 0">
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes" select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$footnotes[1]/ancestor::table                         |$footnotes[1]/ancestor::informaltable">
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes" select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$footnotes[1]" mode="process.footnote.mode"/>
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes" select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.footnotes">
+  <xsl:variable name="footnotes" select=".//footnote"/>
+  <xsl:variable name="fcount">
+    <xsl:call-template name="count.footnotes.in.this.chunk">
+      <xsl:with-param name="node" select="."/>
+      <xsl:with-param name="footnotes" select="$footnotes"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text> fcount: </xsl:text>
+    <xsl:value-of select="$fcount"/>
+  </xsl:message>
+-->
+
+  <!-- Only bother to do this if there's at least one non-table footnote -->
+  <xsl:if test="$fcount &gt; 0">
+    <div class="footnotes">
+      <xsl:call-template name="footnotes.attributes"/>
+      <br/>
+      <hr/>
+      <xsl:call-template name="process.footnotes.in.this.chunk">
+        <xsl:with-param name="node" select="."/>
+        <xsl:with-param name="footnotes" select="$footnotes"/>
+      </xsl:call-template>
+    </div>
+  </xsl:if>
+
+  <!-- FIXME: When chunking, only the annotations actually used
+              in this chunk should be referenced. I don't think it
+              does any harm to reference them all, but it adds
+              unnecessary bloat to each chunk. -->
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <div class="annotation-list">
+      <div class="annotation-nocss">
+        <p>The following annotations are from this essay. You are seeing
+        them here because your browser doesn&#8217;t support the user-interface
+        techniques used to make them appear as &#8216;popups&#8217; on modern browsers.</p>
+      </div>
+
+      <xsl:apply-templates select="//annotation" mode="annotation-popup"/>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.chunk.footnotes">
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+  <xsl:if test="$is.chunk = 1">
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+  <!-- returns 1 if $node is a chunk -->
+
+  <!-- ==================================================================== -->
+  <!-- What's a chunk?
+
+       The root element
+       appendix
+       article
+       bibliography  in article or part or book
+       book
+       chapter
+       colophon
+       glossary      in article or part or book
+       index         in article or part or book
+       part
+       preface
+       refentry
+       reference
+       sect{1,2,3,4,5}  if position()>1 && depth < chunk.section.depth
+       section          if position()>1 && depth < chunk.section.depth
+       set
+       setindex
+       topic
+                                                                            -->
+  <!-- ==================================================================== -->
+
+<!--
+  <xsl:message>
+    <xsl:text>chunk: </xsl:text>
+    <xsl:value-of select="name($node)"/>
+    <xsl:text>(</xsl:text>
+    <xsl:value-of select="$node/@id"/>
+    <xsl:text>)</xsl:text>
+    <xsl:text> csd: </xsl:text>
+    <xsl:value-of select="$chunk.section.depth"/>
+    <xsl:text> cfs: </xsl:text>
+    <xsl:value-of select="$chunk.first.sections"/>
+    <xsl:text> ps: </xsl:text>
+    <xsl:value-of select="count($node/parent::section)"/>
+    <xsl:text> prs: </xsl:text>
+    <xsl:value-of select="count($node/preceding-sibling::section)"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+	  <xsl:when test="$node/parent::*/processing-instruction('dbhtml')[normalize-space(.) = 'stop-chunking']">0</xsl:when>
+    <xsl:when test="not($node/parent::*)">1</xsl:when>
+
+    <xsl:when test="local-name($node) = 'sect1'                     and $chunk.section.depth &gt;= 1                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect1) &gt; 0)">
+      <xsl:text>1</xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'sect2'                     and $chunk.section.depth &gt;= 2                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect2) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'sect3'                     and $chunk.section.depth &gt;= 3                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect3) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'sect4'                     and $chunk.section.depth &gt;= 4                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect4) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'sect5'                     and $chunk.section.depth &gt;= 5                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect5) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'section'                     and $chunk.section.depth &gt;= count($node/ancestor::section)+1                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::section) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="local-name($node)='preface'">1</xsl:when>
+    <xsl:when test="local-name($node)='chapter'">1</xsl:when>
+    <xsl:when test="local-name($node)='appendix'">1</xsl:when>
+    <xsl:when test="local-name($node)='article'">1</xsl:when>
+    <xsl:when test="local-name($node)='topic'">1</xsl:when>
+    <xsl:when test="local-name($node)='part'">1</xsl:when>
+    <xsl:when test="local-name($node)='reference'">1</xsl:when>
+    <xsl:when test="local-name($node)='refentry'">1</xsl:when>
+    <xsl:when test="local-name($node)='index' and ($generate.index != 0 or count($node/*) &gt; 0)                     and (local-name($node/parent::*) = 'article'                     or local-name($node/parent::*) = 'book'                     or local-name($node/parent::*) = 'part'                     )">1</xsl:when>
+    <xsl:when test="local-name($node)='bibliography'                     and (local-name($node/parent::*) = 'article'                     or local-name($node/parent::*) = 'book'                     or local-name($node/parent::*) = 'part'                     )">1</xsl:when>
+    <xsl:when test="local-name($node)='glossary'                     and (local-name($node/parent::*) = 'article'                     or local-name($node/parent::*) = 'book'                     or local-name($node/parent::*) = 'part'                     )">1</xsl:when>
+    <xsl:when test="local-name($node)='colophon'">1</xsl:when>
+    <xsl:when test="local-name($node)='book'">1</xsl:when>
+    <xsl:when test="local-name($node)='set'">1</xsl:when>
+    <xsl:when test="local-name($node)='setindex'">1</xsl:when>
+    <xsl:when test="local-name($node)='legalnotice'                     and $generate.legalnotice.link != 0">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="href.target.uri">
+  <xsl:param name="object" select="."/>
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:apply-templates mode="chunk-filename" select="$object"/>
+
+  <xsl:if test="$ischunk='0'">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="href.target">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="object" select="."/>
+  <xsl:param name="toc-context" select="."/>
+  <!-- * If $toc-context contains some node other than the current node, -->
+  <!-- * it means we're processing a link in a TOC. In that case, to -->
+  <!-- * ensure the link will work correctly, we need to take a look at -->
+  <!-- * where the file containing the TOC will get written, and where -->
+  <!-- * the file that's being linked to will get written. -->
+  <xsl:variable name="toc-output-dir">
+    <xsl:if test="not($toc-context = .)">
+      <!-- * Get the $toc-context node and all its ancestors, look down -->
+      <!-- * through them to find the last/closest node to the -->
+      <!-- * toc-context node that has a "dbhtml dir" PI, and get the -->
+      <!-- * directory name from that. That's the name of the directory -->
+      <!-- * to which the current toc output file will get written. -->
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="$toc-context/ancestor-or-self::*[processing-instruction('dbhtml')[contains(.,'dir')]][last()]"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="linked-file-output-dir">
+    <xsl:if test="not($toc-context = .)">
+      <!-- * Get the current node and all its ancestors, look down -->
+      <!-- * through them to find the last/closest node to the current -->
+      <!-- * node that has a "dbhtml dir" PI, and get the directory name -->
+      <!-- * from that.  That's the name of the directory to which the -->
+      <!-- * file that's being linked to will get written. -->
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="ancestor-or-self::*[processing-instruction('dbhtml')[contains(.,'dir')]][last()]"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="href.to.uri">
+    <xsl:call-template name="href.target.uri">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href.from.uri">
+    <xsl:choose>
+      <xsl:when test="not($toc-context = .)">
+        <xsl:call-template name="href.target.uri">
+          <xsl:with-param name="object" select="$toc-context"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="href.target.uri">
+          <xsl:with-param name="object" select="$context"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <!-- * <xsl:message>toc-context: <xsl:value-of select="local-name($toc-context)"/></xsl:message> -->
+  <!-- * <xsl:message>node: <xsl:value-of select="local-name(.)"/></xsl:message> -->
+  <!-- * <xsl:message>context: <xsl:value-of select="local-name($context)"/></xsl:message> -->
+  <!-- * <xsl:message>object: <xsl:value-of select="local-name($object)"/></xsl:message> -->
+  <!-- * <xsl:message>toc-output-dir: <xsl:value-of select="$toc-output-dir"/></xsl:message> -->
+  <!-- * <xsl:message>linked-file-output-dir: <xsl:value-of select="$linked-file-output-dir"/></xsl:message> -->
+  <!-- * <xsl:message>href.to.uri: <xsl:value-of select="$href.to.uri"/></xsl:message> -->
+  <!-- * <xsl:message>href.from.uri: <xsl:value-of select="$href.from.uri"/></xsl:message> -->
+  <xsl:variable name="href.to">
+    <xsl:choose>
+      <!-- * 2007-07-19, MikeSmith: Added the following conditional to -->
+      <!-- * deal with a problem case for links in TOCs. It checks to see -->
+      <!-- * if the output dir that a TOC will get written to is -->
+      <!-- * different from the output dir of the file being linked to. -->
+      <!-- * If it is different, we do not call trim.common.uri.paths. -->
+      <!-- *  -->
+      <!-- * Reason why I added that conditional is: I ran into a bug for -->
+      <!-- * this case: -->
+      <!-- *  -->
+      <!-- * 1. we are chunking into separate dirs -->
+      <!-- *  -->
+      <!-- * 2. output for the TOC is written to current dir, but the file -->
+      <!-- *    being linked to is written to some subdir "foo". -->
+      <!-- *  -->
+      <!-- * For that case, links to that file in that TOC did not show -->
+      <!-- * the correct path - they omitted the "foo". -->
+      <!-- *  -->
+      <!-- * The cause of that problem was that the trim.common.uri.paths -->
+      <!-- * template[1] was being called under all conditions. But it's -->
+      <!-- * apparent that we don't want to call trim.common.uri.paths in -->
+      <!-- * the case where a linked file is being written to a different -->
+      <!-- * directory than the TOC that contains the link, because doing -->
+      <!-- * so will cause a necessary (not redundant) directory-name -->
+      <!-- * part of the link to get inadvertently trimmed, resulting in -->
+      <!-- * a broken link to that file. Thus, added the conditional. -->
+      <!-- *  -->
+      <!-- * [1] The purpose of the trim.common.uri.paths template is to -->
+      <!-- * prevent cases where, if we didn't call it, we end up with -->
+      <!-- * unnecessary, redundant directory names getting output; for -->
+      <!-- * example, "foo/foo/refname.html". -->
+      <xsl:when test="not($toc-output-dir = $linked-file-output-dir)">
+        <xsl:value-of select="$href.to.uri"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="trim.common.uri.paths">
+          <xsl:with-param name="uriA" select="$href.to.uri"/>
+          <xsl:with-param name="uriB" select="$href.from.uri"/>
+          <xsl:with-param name="return" select="'A'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="href.from">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$href.to.uri"/>
+      <xsl:with-param name="uriB" select="$href.from.uri"/>
+      <xsl:with-param name="return" select="'B'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="depth">
+    <xsl:call-template name="count.uri.path.depth">
+      <xsl:with-param name="filename" select="$href.from"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:call-template name="copy-string">
+      <xsl:with-param name="string" select="'../'"/>
+      <xsl:with-param name="count" select="$depth"/>
+    </xsl:call-template>
+    <xsl:value-of select="$href.to"/>
+  </xsl:variable>
+  <!--
+  <xsl:message>
+    <xsl:text>In </xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text> (</xsl:text>
+    <xsl:value-of select="$href.from"/>
+    <xsl:text>,</xsl:text>
+    <xsl:value-of select="$depth"/>
+    <xsl:text>) </xsl:text>
+    <xsl:value-of select="name($object)"/>
+    <xsl:text> href=</xsl:text>
+    <xsl:value-of select="$href"/>
+  </xsl:message>
+  -->
+  <xsl:value-of select="$href"/>
+</xsl:template>
+
+<!-- Returns the complete olink href value if found -->
+<!-- Must take into account any dbhtml dir of the chunk containing the olink -->
+<xsl:template name="make.olink.href">
+  <xsl:param name="olink.key" select="''"/>
+  <xsl:param name="target.database"/>
+
+  <xsl:if test="$olink.key != ''">
+    <xsl:variable name="target.href">
+      <xsl:for-each select="$target.database">
+        <xsl:value-of select="key('targetptr-key', $olink.key)[1]/@href"/>
+      </xsl:for-each>
+    </xsl:variable>
+  
+    <!-- an olink starting point may be in a subdirectory, so need
+         the "from" reference point to compute a relative path -->
+
+    <xsl:variable name="from.href">
+      <xsl:call-template name="olink.from.uri">
+        <xsl:with-param name="target.database" select="$target.database"/>
+        <xsl:with-param name="object" select="."/>
+        <xsl:with-param name="object.targetdoc" select="$current.docid"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <!-- If the from.href has directory path, then must "../" upward
+         to document level -->
+    <xsl:variable name="upward.from.path">
+      <xsl:call-template name="upward.path">
+        <xsl:with-param name="path" select="$from.href"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="targetdoc">
+      <xsl:value-of select="substring-before($olink.key, '/')"/>
+    </xsl:variable>
+  
+    <!-- Does the target database use a sitemap? -->
+    <xsl:variable name="use.sitemap">
+      <xsl:choose>
+        <xsl:when test="$target.database//sitemap">1</xsl:when>
+        <xsl:otherwise>0</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+  
+    <!-- Get the baseuri for this targetptr -->
+    <xsl:variable name="baseuri">
+      <xsl:choose>
+        <!-- Does the database use a sitemap? -->
+        <xsl:when test="$use.sitemap != 0">
+          <xsl:choose>
+            <!-- Was current.docid parameter set? -->
+            <xsl:when test="$current.docid != ''">
+              <!-- Was it found in the database? -->
+              <xsl:variable name="currentdoc.key">
+                <xsl:for-each select="$target.database">
+                  <xsl:value-of select="key('targetdoc-key',                                         $current.docid)/@targetdoc"/>
+                </xsl:for-each>
+              </xsl:variable>
+              <xsl:choose>
+                <xsl:when test="$currentdoc.key != ''">
+                  <xsl:for-each select="$target.database">
+                    <xsl:call-template name="targetpath">
+                      <xsl:with-param name="dirnode" select="key('targetdoc-key', $current.docid)/parent::dir"/>
+                      <xsl:with-param name="targetdoc" select="$targetdoc"/>
+                    </xsl:call-template>
+                  </xsl:for-each>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:message>
+                    <xsl:text>Olink error: cannot compute relative </xsl:text>
+                    <xsl:text>sitemap path because $current.docid '</xsl:text>
+                    <xsl:value-of select="$current.docid"/>
+                    <xsl:text>' not found in target database.</xsl:text>
+                  </xsl:message>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message>
+                <xsl:text>Olink warning: cannot compute relative </xsl:text>
+                <xsl:text>sitemap path without $current.docid parameter</xsl:text>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose> 
+          <!-- In either case, add baseuri from its document entry-->
+          <xsl:variable name="docbaseuri">
+            <xsl:for-each select="$target.database">
+              <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri"/>
+            </xsl:for-each>
+          </xsl:variable>
+          <xsl:if test="$docbaseuri != ''">
+            <xsl:value-of select="$docbaseuri"/>
+          </xsl:if>
+        </xsl:when>
+        <!-- No database sitemap in use -->
+        <xsl:otherwise>
+          <!-- Just use any baseuri from its document entry -->
+          <xsl:variable name="docbaseuri">
+            <xsl:for-each select="$target.database">
+              <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri"/>
+            </xsl:for-each>
+          </xsl:variable>
+          <xsl:if test="$docbaseuri != ''">
+            <xsl:value-of select="$docbaseuri"/>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+    <!-- Form the href information -->
+    <xsl:if test="not(contains($baseuri, ':'))">
+      <!-- if not an absolute uri, add upward path from olink chunk -->
+      <xsl:value-of select="$upward.from.path"/>
+    </xsl:if>
+
+    <xsl:if test="$baseuri != ''">
+      <xsl:value-of select="$baseuri"/>
+      <xsl:if test="substring($target.href,1,1) != '#'">
+        <!--xsl:text>/</xsl:text-->
+      </xsl:if>
+    </xsl:if>
+    <!-- optionally turn off frag for PDF references -->
+    <xsl:if test="not($insert.olink.pdf.frag = 0 and           translate(substring($baseuri, string-length($baseuri) - 3),                     'PDF', 'pdf') = '.pdf'           and starts-with($target.href, '#') )">
+      <xsl:value-of select="$target.href"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<!-- Computes "../" to reach top -->
+<xsl:template name="upward.path">
+  <xsl:param name="path" select="''"/>
+  <xsl:choose> 
+    <!-- Don't bother with absolute uris -->
+    <xsl:when test="contains($path, ':')"/>
+    <xsl:when test="starts-with($path, '/')"/>
+    <xsl:when test="contains($path, '/')">
+      <xsl:text>../</xsl:text>
+      <xsl:call-template name="upward.path">
+        <xsl:with-param name="path" select="substring-after($path, '/')"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="html.head">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:variable name="this" select="."/>
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <head>
+    <xsl:call-template name="system.head.content"/>
+    <xsl:call-template name="head.content"/>
+
+    <!-- home link not valid in HTML5 -->
+    <xsl:if test="$home and $div.element != 'section'">
+      <link rel="home">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$home"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$home" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <!-- up link not valid in HTML5 -->
+    <xsl:if test="$up and $div.element != 'section'">
+      <link rel="up">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$up"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$up" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$prev">
+      <link rel="prev">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$prev"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$prev" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$next">
+      <link rel="next">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$next"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$next" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$html.extra.head.links != 0">
+      <xsl:for-each select="//part                             |//reference                             |//preface                             |//chapter                             |//article                             |//refentry                             |//appendix[not(parent::article)]|appendix                             |//glossary[not(parent::article)]|glossary                             |//index[not(parent::article)]|index">
+        <link rel="{local-name(.)}">
+          <xsl:attribute name="href">
+            <xsl:call-template name="href.target">
+              <xsl:with-param name="context" select="$this"/>
+              <xsl:with-param name="object" select="."/>
+            </xsl:call-template>
+          </xsl:attribute>
+          <xsl:attribute name="title">
+            <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+          </xsl:attribute>
+        </link>
+      </xsl:for-each>
+
+      <xsl:for-each select="section|sect1|refsection|refsect1">
+        <link>
+          <xsl:attribute name="rel">
+            <xsl:choose>
+              <xsl:when test="local-name($this) = 'section'                               or local-name($this) = 'refsection'">
+                <xsl:value-of select="'subsection'"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="'section'"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:attribute>
+          <xsl:attribute name="href">
+            <xsl:call-template name="href.target">
+              <xsl:with-param name="context" select="$this"/>
+              <xsl:with-param name="object" select="."/>
+            </xsl:call-template>
+          </xsl:attribute>
+          <xsl:attribute name="title">
+            <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+          </xsl:attribute>
+        </link>
+      </xsl:for-each>
+
+      <xsl:for-each select="sect2|sect3|sect4|sect5|refsect2|refsect3">
+        <link rel="subsection">
+          <xsl:attribute name="href">
+            <xsl:call-template name="href.target">
+              <xsl:with-param name="context" select="$this"/>
+              <xsl:with-param name="object" select="."/>
+            </xsl:call-template>
+          </xsl:attribute>
+          <xsl:attribute name="title">
+            <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+          </xsl:attribute>
+        </link>
+      </xsl:for-each>
+    </xsl:if>
+
+    <!-- * if we have a legalnotice and user wants it output as a -->
+    <!-- * separate page and $html.head.legalnotice.link.types is -->
+    <!-- * non-empty, we generate a link or links for each value in -->
+    <!-- * $html.head.legalnotice.link.types -->
+    <xsl:if test="//legalnotice                   and not($generate.legalnotice.link = 0)                   and not($html.head.legalnotice.link.types = '')">
+      <xsl:call-template name="make.legalnotice.head.links"/>
+    </xsl:if>
+
+    <xsl:call-template name="user.head.content"/>
+  </head>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="header.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <xsl:variable name="row1" select="$navig.showtitles != 0"/>
+  <xsl:variable name="row2" select="count($prev) &gt; 0                                     or (count($up) &gt; 0                                          and generate-id($up) != generate-id($home)                                         and $navig.showtitles != 0)                                     or count($next) &gt; 0"/>
+
+  <xsl:if test="$suppress.navigation = '0' and $suppress.header.navigation = '0'">
+    <div class="navheader">
+      <xsl:if test="$row1 or $row2">
+        <table width="100%" summary="Navigation header">
+          <xsl:if test="$row1">
+            <tr>
+              <th colspan="3" align="center">
+                <xsl:apply-templates select="." mode="object.title.markup"/>
+              </th>
+            </tr>
+          </xsl:if>
+
+          <xsl:if test="$row2">
+            <tr>
+              <td align="{$direction.align.start}">
+                <xsl:if test="count($prev)&gt;0">
+                  <a accesskey="p">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$prev"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                    <xsl:call-template name="navig.content">
+                      <xsl:with-param name="direction" select="'prev'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+                <xsl:text>&#160;</xsl:text>
+              </td>
+              <th width="60%" align="center">
+                <xsl:choose>
+                  <xsl:when test="count($up) &gt; 0                                   and generate-id($up) != generate-id($home)                                   and $navig.showtitles != 0">
+                    <xsl:apply-templates select="$up" mode="object.title.markup"/>
+                  </xsl:when>
+                  <xsl:otherwise>&#160;</xsl:otherwise>
+                </xsl:choose>
+              </th>
+              <td align="{$direction.align.end}">
+                <xsl:text>&#160;</xsl:text>
+                <xsl:if test="count($next)&gt;0">
+                  <a accesskey="n">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$next"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                    <xsl:call-template name="navig.content">
+                      <xsl:with-param name="direction" select="'next'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+              </td>
+            </tr>
+          </xsl:if>
+        </table>
+      </xsl:if>
+      <xsl:if test="$header.rule != 0">
+        <hr/>
+      </xsl:if>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="footer.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <xsl:variable name="row1" select="count($prev) &gt; 0                                     or count($up) &gt; 0                                     or count($next) &gt; 0"/>
+
+  <xsl:variable name="row2" select="($prev and $navig.showtitles != 0)                                     or (generate-id($home) != generate-id(.)                                         or $nav.context = 'toc')                                     or ($chunk.tocs.and.lots != 0                                         and $nav.context != 'toc')                                     or ($next and $navig.showtitles != 0)"/>
+
+  <xsl:if test="$suppress.navigation = '0' and $suppress.footer.navigation = '0'">
+    <div class="navfooter">
+      <xsl:if test="$footer.rule != 0">
+        <hr/>
+      </xsl:if>
+
+      <xsl:if test="$row1 or $row2">
+        <table width="100%" summary="Navigation footer">
+          <xsl:if test="$row1">
+            <tr>
+              <td align="{$direction.align.start}">
+                <xsl:if test="count($prev)&gt;0">
+                  <a accesskey="p">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$prev"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                    <xsl:call-template name="navig.content">
+                      <xsl:with-param name="direction" select="'prev'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+                <xsl:text>&#160;</xsl:text>
+              </td>
+              <td align="center">
+                <xsl:choose>
+                  <xsl:when test="count($up)&gt;0                                   and generate-id($up) != generate-id($home)">
+                    <a accesskey="u">
+                      <xsl:attribute name="href">
+                        <xsl:call-template name="href.target">
+                          <xsl:with-param name="object" select="$up"/>
+                        </xsl:call-template>
+                      </xsl:attribute>
+                      <xsl:call-template name="navig.content">
+                        <xsl:with-param name="direction" select="'up'"/>
+                      </xsl:call-template>
+                    </a>
+                  </xsl:when>
+                  <xsl:otherwise>&#160;</xsl:otherwise>
+                </xsl:choose>
+              </td>
+              <td align="{$direction.align.end}">
+                <xsl:text>&#160;</xsl:text>
+                <xsl:if test="count($next)&gt;0">
+                  <a accesskey="n">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$next"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                    <xsl:call-template name="navig.content">
+                      <xsl:with-param name="direction" select="'next'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+              </td>
+            </tr>
+          </xsl:if>
+
+          <xsl:if test="$row2">
+            <tr>
+              <td align="{$direction.align.start}" valign="top">
+                <xsl:if test="$navig.showtitles != 0">
+                  <xsl:apply-templates select="$prev" mode="object.title.markup"/>
+                </xsl:if>
+                <xsl:text>&#160;</xsl:text>
+              </td>
+              <td align="center">
+                <xsl:choose>
+                  <xsl:when test="$home != . or $nav.context = 'toc'">
+                    <a accesskey="h">
+                      <xsl:attribute name="href">
+                        <xsl:call-template name="href.target">
+                          <xsl:with-param name="object" select="$home"/>
+                        </xsl:call-template>
+                      </xsl:attribute>
+                      <xsl:call-template name="navig.content">
+                        <xsl:with-param name="direction" select="'home'"/>
+                      </xsl:call-template>
+                    </a>
+                    <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+                      <xsl:text>&#160;|&#160;</xsl:text>
+                    </xsl:if>
+                  </xsl:when>
+                  <xsl:otherwise>&#160;</xsl:otherwise>
+                </xsl:choose>
+
+                <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+                  <a accesskey="t">
+                    <xsl:attribute name="href">
+                      <xsl:value-of select="$chunked.filename.prefix"/>
+                      <xsl:apply-templates select="/*[1]" mode="recursive-chunk-filename">
+                        <xsl:with-param name="recursive" select="true()"/>
+                      </xsl:apply-templates>
+                      <xsl:text>-toc</xsl:text>
+                      <xsl:value-of select="$html.ext"/>
+                    </xsl:attribute>
+                    <xsl:call-template name="gentext">
+                      <xsl:with-param name="key" select="'nav-toc'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+              </td>
+              <td align="{$direction.align.end}" valign="top">
+                <xsl:text>&#160;</xsl:text>
+                <xsl:if test="$navig.showtitles != 0">
+                  <xsl:apply-templates select="$next" mode="object.title.markup"/>
+                </xsl:if>
+              </td>
+            </tr>
+          </xsl:if>
+        </table>
+      </xsl:if>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="navig.content">
+    <xsl:param name="direction" select="next"/>
+    <xsl:variable name="navtext">
+        <xsl:choose>
+            <xsl:when test="$direction = 'prev'">
+                <xsl:call-template name="gentext.nav.prev"/>
+            </xsl:when>
+            <xsl:when test="$direction = 'next'">
+                <xsl:call-template name="gentext.nav.next"/>
+            </xsl:when>
+            <xsl:when test="$direction = 'up'">
+                <xsl:call-template name="gentext.nav.up"/>
+            </xsl:when>
+            <xsl:when test="$direction = 'home'">
+                <xsl:call-template name="gentext.nav.home"/>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:text>xxx</xsl:text>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:variable>
+
+    <xsl:choose>
+        <xsl:when test="$navig.graphics != 0">
+            <img>
+                <xsl:attribute name="src">
+                    <xsl:value-of select="$navig.graphics.path"/>
+                    <xsl:value-of select="$direction"/>
+                    <xsl:value-of select="$navig.graphics.extension"/>
+                </xsl:attribute>
+                <xsl:attribute name="alt">
+                    <xsl:value-of select="$navtext"/>
+                </xsl:attribute>
+            </img>
+        </xsl:when>
+        <xsl:otherwise>
+            <xsl:value-of select="$navtext"/>
+        </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * The following template assumes that the first legalnotice -->
+<!-- * instance found in a document applies to the contents of the -->
+<!-- * entire document. It generates an HTML link in each chunk, back -->
+<!-- * to the file containing the contents of the first legalnotice. -->
+<!-- * -->
+<!-- * Actually, it may generate multiple link instances in each chunk, -->
+<!-- * because it walks through the space-separated list of link -->
+<!-- * types specified in the $html.head.legalnotice.link.types param, -->
+<!-- * popping off link types and generating links for them until it -->
+<!-- * depletes the list. -->
+  
+<xsl:template name="make.legalnotice.head.links">
+  <!-- * the following ID is used as part of the legalnotice filename; -->
+  <!-- * we need it in order to construct the filename for use in the -->
+  <!-- * value of the href attribute on the link -->
+
+  <xsl:param name="ln-node" select="(//legalnotice)[1]"/>
+  
+  <xsl:param name="linktype">
+    <xsl:choose>
+      <xsl:when test="contains($html.head.legalnotice.link.types, ' ')">
+        <xsl:value-of select="normalize-space(                     substring-before($html.head.legalnotice.link.types, ' '))"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$html.head.legalnotice.link.types"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+  <xsl:param name="remaining.linktypes" select="concat(               normalize-space(               substring-after($html.head.legalnotice.link.types, ' ')),' ')"/>
+  <xsl:if test="not($linktype = '')">
+
+    <!-- Compute name of legalnotice file (see titlepage.xsl) -->
+    <xsl:variable name="file">
+      <xsl:call-template name="ln.or.rh.filename">
+	<xsl:with-param name="node" select="$ln-node"/>
+      </xsl:call-template>
+    </xsl:variable>
+   
+    <link rel="{$linktype}">
+      <xsl:attribute name="href">
+        <xsl:value-of select="$file"/>
+      </xsl:attribute>
+      <xsl:attribute name="title">
+        <xsl:apply-templates select="(//legalnotice)[1]" mode="object.title.markup.textonly"/>
+      </xsl:attribute>
+    </link>
+    <xsl:call-template name="make.legalnotice.head.links">
+      <!-- * pop the next value off the list of link types -->
+      <xsl:with-param name="linktype" select="substring-before($remaining.linktypes, ' ')"/>
+      <!-- * remove the link type from the list of remaining link types -->
+      <xsl:with-param name="remaining.linktypes" select="substring-after($remaining.linktypes, ' ')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="chunk-element-content">
+  <xsl:param name="prev"/>
+  <xsl:param name="next"/>
+  <xsl:param name="nav.context"/>
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:call-template name="user.preroot"/>
+
+  <html>
+    <xsl:call-template name="root.attributes"/>
+    <xsl:call-template name="html.head">
+      <xsl:with-param name="prev" select="$prev"/>
+      <xsl:with-param name="next" select="$next"/>
+    </xsl:call-template>
+
+    <body>
+      <xsl:call-template name="body.attributes"/>
+
+      <xsl:call-template name="user.header.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="header.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="user.header.content"/>
+
+      <xsl:copy-of select="$content"/>
+
+      <xsl:call-template name="user.footer.content"/>
+
+      <xsl:call-template name="footer.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="user.footer.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$chunk.append"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="generate.manifest">
+  <xsl:param name="node" select="/"/>
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="$manifest"/>
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+      <xsl:apply-templates select="$node" mode="enumerate-files"/>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$chunker.output.encoding"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-dir">
+  <xsl:param name="context" select="."/>
+  <!-- directories are now inherited from previous levels -->
+  <xsl:variable name="ppath">
+    <xsl:if test="$context/parent::*">
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="$context/parent::*"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="path">
+    <xsl:call-template name="pi.dbhtml_dir">
+      <xsl:with-param name="node" select="$context"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$path = ''">
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+        <xsl:if test="substring($ppath, string-length($ppath), 1) != '/'">
+          <xsl:text>/</xsl:text>
+        </xsl:if>
+      </xsl:if>
+      <xsl:value-of select="$path"/>
+      <xsl:text>/</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/chunk.xsl b/applications/content/template/docbook/xhtml-1_1/chunk.xsl
new file mode 100644
index 0000000..31fb785
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/chunk.xsl
@@ -0,0 +1,52 @@
+<?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:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- First import the non-chunking templates that format elements
+     within each chunk file. In a customization, you should
+     create a separate non-chunking customization layer such
+     as mydocbook.xsl that imports the original docbook.xsl and
+     customizes any presentation templates. Then your chunking
+     customization should import mydocbook.xsl instead of
+     docbook.xsl.  -->
+<xsl:import href="docbook.xsl"/>
+
+<!-- chunk-common.xsl contains all the named templates for chunking.
+     In a customization file, you import chunk-common.xsl, then
+     add any customized chunking templates of the same name. 
+     They will have import precedence over the original 
+     chunking templates in chunk-common.xsl. -->
+<xsl:import href="chunk-common.xsl"/>
+
+<!-- The manifest.xsl module is no longer imported because its
+     templates were moved into chunk-common and chunk-code -->
+
+<!-- chunk-code.xsl contains all the chunking templates that use
+     a match attribute.  In a customization it should be referenced
+     using <xsl:include> instead of <xsl:import>, and then add
+     any customized chunking templates with match attributes. But be sure
+     to add a priority="1" to such customized templates to resolve
+     its conflict with the original, since they have the
+     same import precedence.
+     
+     Using xsl:include prevents adding another layer
+     of import precedence, which would cause any
+     customizations that use xsl:apply-imports to wrongly
+     apply the chunking version instead of the original
+     non-chunking version to format an element.  -->
+<xsl:include href="chunk-code.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/chunker.xsl b/applications/content/template/docbook/xhtml-1_1/chunker.xsl
new file mode 100644
index 0000000..61653df
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/chunker.xsl
@@ -0,0 +1,315 @@
+<?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:saxon="http://icl.com/saxon" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:redirect="http://xml.apache.org/xalan/redirect" xmlns:exsl="http://exslt.org/common" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="saxon lxslt redirect exsl doc" extension-element-prefixes="saxon redirect lxslt exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This stylesheet works with XSLT implementations that support -->
+<!-- exsl:document, saxon:output, or Xalan's redirect:write -->
+<!-- Note: Only Saxon 6.4.2 or later is supported. -->
+
+<xsl:param name="chunker.output.method" select="'xml'"/>
+<xsl:param name="chunker.output.encoding" select="'UTF-8'"/>
+<xsl:param name="chunker.output.indent" select="'no'"/>
+<xsl:param name="chunker.output.omit-xml-declaration" select="'no'"/>
+<xsl:param name="chunker.output.standalone" select="'no'"/>
+<xsl:param name="chunker.output.doctype-public" select="'-//W3C//DTD XHTML 1.1//EN'"/>
+<xsl:param name="chunker.output.doctype-system" select="'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'"/>
+<xsl:param name="chunker.output.media-type" select="''"/>
+<xsl:param name="chunker.output.cdata-section-elements" select="''"/>
+
+<!-- Make sure base.dir has a trailing slash now -->
+<xsl:param name="chunk.base.dir">
+  <xsl:choose>
+    <xsl:when test="string-length($base.dir) = 0"/>
+    <!-- make sure to add trailing slash if omitted by user -->
+    <xsl:when test="substring($base.dir, string-length($base.dir), 1) = '/'">
+      <xsl:value-of select="$base.dir"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="concat($base.dir, '/')"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:param name="saxon.character.representation" select="'entity;decimal'"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+  <xsl:param name="base.dir" select="'./'"/>
+  <xsl:param name="base.name" select="''"/>
+
+  <xsl:choose>
+    <!-- put Saxon first to work around a bug in libxslt -->
+    <xsl:when test="element-available('saxon:output')">
+      <!-- Saxon doesn't make the chunks relative -->
+      <xsl:value-of select="concat($chunk.base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:when test="element-available('exsl:document')">
+      <!-- EXSL document does make the chunks relative, I think -->
+      <xsl:choose>
+        <xsl:when test="count(parent::*) = 0">
+          <xsl:value-of select="concat($chunk.base.dir,$base.name)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$base.name"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="element-available('redirect:write')">
+      <!-- Xalan doesn't make the chunks relative -->
+      <xsl:value-of select="concat($chunk.base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>Don't know how to chunk with </xsl:text>
+        <xsl:value-of select="system-property('xsl:vendor')"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="quiet" select="$chunk.quietly"/>
+  <xsl:param name="suppress-context-node-name" select="0"/>
+  <xsl:param name="message-prolog"/>
+  <xsl:param name="message-epilog"/>
+
+  <xsl:param name="method" select="$chunker.output.method"/>
+  <xsl:param name="encoding" select="$chunker.output.encoding"/>
+  <xsl:param name="indent" select="$chunker.output.indent"/>
+  <xsl:param name="omit-xml-declaration" select="$chunker.output.omit-xml-declaration"/>
+  <xsl:param name="standalone" select="$chunker.output.standalone"/>
+  <xsl:param name="doctype-public" select="$chunker.output.doctype-public"/>
+  <xsl:param name="doctype-system" select="$chunker.output.doctype-system"/>
+  <xsl:param name="media-type" select="$chunker.output.media-type"/>
+  <xsl:param name="cdata-section-elements" select="$chunker.output.cdata-section-elements"/>
+
+  <xsl:param name="content"/>
+
+  <xsl:if test="$quiet = 0">
+    <xsl:message>
+      <xsl:if test="not($message-prolog = '')">
+        <xsl:value-of select="$message-prolog"/>
+      </xsl:if>
+      <xsl:text>Writing </xsl:text>
+      <xsl:value-of select="$filename"/>
+      <xsl:if test="name(.) != '' and $suppress-context-node-name = 0">
+        <xsl:text> for </xsl:text>
+        <xsl:value-of select="name(.)"/>
+        <xsl:if test="@id or @xml:id">
+          <xsl:text>(</xsl:text>
+          <xsl:value-of select="(@id|@xml:id)[1]"/>
+          <xsl:text>)</xsl:text>
+        </xsl:if>
+      </xsl:if>
+      <xsl:if test="not($message-epilog = '')">
+        <xsl:value-of select="$message-epilog"/>
+      </xsl:if>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="element-available('exsl:document')">
+      <xsl:choose>
+        <!-- Handle the permutations ... -->
+        <xsl:when test="$media-type != ''">
+          <xsl:choose>
+            <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-public="{$doctype-public}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-public="{$doctype-public}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="element-available('saxon:output')">
+      <xsl:choose>
+        <!-- Handle the permutations ... -->
+        <xsl:when test="$media-type != ''">
+          <xsl:choose>
+            <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-public="{$doctype-public}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-public="{$doctype-public}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="element-available('redirect:write')">
+      <!-- Xalan uses redirect -->
+      <redirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </redirect:write>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="system-property('xsl:vendor')"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk.with.doctype">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="quiet" select="$chunk.quietly"/>
+
+  <xsl:param name="method" select="$chunker.output.method"/>
+  <xsl:param name="encoding" select="$chunker.output.encoding"/>
+  <xsl:param name="indent" select="$chunker.output.indent"/>
+  <xsl:param name="omit-xml-declaration" select="$chunker.output.omit-xml-declaration"/>
+  <xsl:param name="standalone" select="$chunker.output.standalone"/>
+  <xsl:param name="doctype-public" select="$chunker.output.doctype-public"/>
+  <xsl:param name="doctype-system" select="$chunker.output.doctype-system"/>
+  <xsl:param name="media-type" select="$chunker.output.media-type"/>
+  <xsl:param name="cdata-section-elements" select="$chunker.output.cdata-section-elements"/>
+
+  <xsl:param name="content"/>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="quiet" select="$quiet"/>
+    <xsl:with-param name="method" select="$method"/>
+    <xsl:with-param name="encoding" select="$encoding"/>
+    <xsl:with-param name="indent" select="$indent"/>
+    <xsl:with-param name="omit-xml-declaration" select="$omit-xml-declaration"/>
+    <xsl:with-param name="standalone" select="$standalone"/>
+    <xsl:with-param name="doctype-public" select="$doctype-public"/>
+    <xsl:with-param name="doctype-system" select="$doctype-system"/>
+    <xsl:with-param name="media-type" select="$media-type"/>
+    <xsl:with-param name="cdata-section-elements" select="$cdata-section-elements"/>
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="write.text.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="quiet" select="$chunk.quietly"/>
+  <xsl:param name="suppress-context-node-name" select="0"/>
+  <xsl:param name="message-prolog"/>
+  <xsl:param name="message-epilog"/>
+  <xsl:param name="method" select="'text'"/>
+  <xsl:param name="encoding" select="$chunker.output.encoding"/>
+  <xsl:param name="media-type" select="$chunker.output.media-type"/>
+  <xsl:param name="content"/>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="quiet" select="$quiet"/>
+    <xsl:with-param name="suppress-context-node-name" select="$suppress-context-node-name"/>
+    <xsl:with-param name="message-prolog" select="$message-prolog"/>
+    <xsl:with-param name="message-epilog" select="$message-epilog"/>
+    <xsl:with-param name="method" select="$method"/>
+    <xsl:with-param name="encoding" select="$encoding"/>
+    <xsl:with-param name="indent" select="'no'"/>
+    <xsl:with-param name="omit-xml-declaration" select="'no'"/>
+    <xsl:with-param name="standalone" select="'no'"/>
+    <xsl:with-param name="doctype-public"/>
+    <xsl:with-param name="doctype-system"/>
+    <xsl:with-param name="media-type" select="$media-type"/>
+    <xsl:with-param name="cdata-section-elements"/>
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/chunkfast.xsl b/applications/content/template/docbook/xhtml-1_1/chunkfast.xsl
new file mode 100644
index 0000000..8c2d180
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/chunkfast.xsl
@@ -0,0 +1,69 @@
+<?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:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="cf exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="chunk.xsl"/>
+<xsl:param name="chunk.fast" select="1"/>
+
+<xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+  <xsl:choose>
+    <xsl:when test="$chunk.fast != 0 and $exsl.node.set.available != 0">
+      <xsl:variable name="genid" select="generate-id()"/>
+
+      <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/>
+
+      <xsl:variable name="prevdiv" select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/>
+      <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/>
+
+      <xsl:variable name="nextdiv" select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/>
+      <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and parent::*">
+          <xsl:apply-imports/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="process-chunk">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and not(parent::*)">
+          <xsl:call-template name="chunk-all-sections"/>
+        </xsl:when>
+        <xsl:when test="$onechunk != 0">
+          <xsl:apply-imports/>
+        </xsl:when>
+        <xsl:when test="$chunk.first.sections = 0">
+          <xsl:call-template name="chunk-first-section-with-parent"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="chunk-all-sections"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/chunktoc.xsl b/applications/content/template/docbook/xhtml-1_1/chunktoc.xsl
new file mode 100644
index 0000000..488f435
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/chunktoc.xsl
@@ -0,0 +1,538 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="docbook.xsl"/>
+<xsl:import href="chunk-common.xsl"/>
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+  <!-- returns 1 if $node is a chunk -->
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="chunks" select="document($chunk.toc,/)"/>
+
+  <xsl:choose>
+    <xsl:when test="$chunks//tocentry[@linkend=$id]">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="chunk-filename">
+  <!-- returns the filename of a chunk -->
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunks" select="document($chunk.toc,/)"/>
+
+  <xsl:variable name="chunk" select="$chunks//tocentry[@linkend=$id]"/>
+  <xsl:variable name="filename">
+    <xsl:call-template name="pi.dbhtml_filename">
+      <xsl:with-param name="node" select="$chunk"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$chunk">
+      <xsl:value-of select="$filename"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="parent::*" mode="chunk-filename"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunks" select="document($chunk.toc,/)"/>
+
+  <xsl:variable name="chunk" select="$chunks//tocentry[@linkend=$id]"/>
+  <xsl:variable name="prev-id" select="($chunk/preceding::tocentry                          |$chunk/ancestor::tocentry)[last()]/@linkend"/>
+  <xsl:variable name="next-id" select="($chunk/following::tocentry                          |$chunk/child::tocentry)[1]/@linkend"/>
+
+  <xsl:variable name="prev" select="key('id',$prev-id)"/>
+  <xsl:variable name="next" select="key('id',$next-id)"/>
+
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunkfn">
+    <xsl:if test="$ischunk='1'">
+      <xsl:apply-templates mode="chunk-filename" select="."/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+      <xsl:with-param name="base.name" select="$chunkfn"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$ischunk = 0">
+      <xsl:apply-imports/>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="$filename"/>
+        <xsl:with-param name="content">
+          <xsl:call-template name="chunk-element-content">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+          </xsl:call-template>
+        </xsl:with-param>
+        <xsl:with-param name="quiet" select="$chunk.quietly"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book/appendix">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book/glossary">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book/bibliography">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="dedication" mode="dedication">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="preface|chapter">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="part|reference">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="refentry">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="colophon">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="topic">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article/appendix">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article/glossary">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article/bibliography">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$ischunk != 0">
+      <xsl:call-template name="process-chunk"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-imports/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex                      |book/index                      |article/index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. -->
+  <xsl:if test="count(*)&gt;0 or $generate.index != '0'">
+    <xsl:call-template name="process-chunk"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$chunk.toc = ''">
+      <xsl:message terminate="yes">
+        <xsl:text>The chunk.toc file is not set.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+	 stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>stripped namespace before processing</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:variable name="nons">
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:variable>
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates select="exsl:node-set($nons)"/>
+    </xsl:when>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="*/self::ng:* or */self::db:*">
+      <xsl:message terminate="yes">
+        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+        <xsl:text> cannot proceed.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count(key('id',$rootid)) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/>
+                </xsl:if>
+                <xsl:if test="$generate.manifest != 0">
+                  <xsl:call-template name="generate.manifest">
+                    <xsl:with-param name="node" select="key('id',$rootid)"/>
+                  </xsl:call-template>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="/" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="/" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="/" mode="collect.tex.math"/>
+            </xsl:if>
+            <xsl:if test="$generate.manifest != 0">
+              <xsl:call-template name="generate.manifest">
+                <xsl:with-param name="node" select="/"/>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:apply-templates select="."/>
+  <xsl:call-template name="generate.css"/>
+</xsl:template>
+
+<xsl:template name="make.lots">
+  <xsl:param name="toc.params" select="''"/>
+  <xsl:param name="toc"/>
+
+  <xsl:variable name="lots">
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:copy-of select="$toc"/>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'figure')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'figure'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'figure'"/>
+                <xsl:with-param name="nodes" select=".//figure"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'figure'"/>
+            <xsl:with-param name="nodes" select=".//figure"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'table')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'table'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'table'"/>
+                <xsl:with-param name="nodes" select=".//table"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'table'"/>
+            <xsl:with-param name="nodes" select=".//table"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'example')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'example'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'example'"/>
+                <xsl:with-param name="nodes" select=".//example"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'example'"/>
+            <xsl:with-param name="nodes" select=".//example"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'equation')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'equation'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'equation'"/>
+                <xsl:with-param name="nodes" select=".//equation"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'equation'"/>
+            <xsl:with-param name="nodes" select=".//equation"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'procedure')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'procedure'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'procedure'"/>
+                <xsl:with-param name="nodes" select=".//procedure[title]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'procedure'"/>
+            <xsl:with-param name="nodes" select=".//procedure[title]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="string($lots) != ''">
+    <xsl:choose>
+      <xsl:when test="$chunk.tocs.and.lots != 0 and not(parent::*)">
+        <xsl:call-template name="write.chunk">
+          <xsl:with-param name="filename">
+            <xsl:call-template name="make-relative-filename">
+              <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+              <xsl:with-param name="base.name">
+                <xsl:call-template name="dbhtml-dir"/>
+                <xsl:apply-templates select="." mode="recursive-chunk-filename">
+                  <xsl:with-param name="recursive" select="true()"/>
+                </xsl:apply-templates>
+                <xsl:text>-toc</xsl:text>
+                <xsl:value-of select="$html.ext"/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="content">
+            <xsl:call-template name="chunk-element-content">
+              <xsl:with-param name="prev" select="/foo"/>
+              <xsl:with-param name="next" select="/foo"/>
+              <xsl:with-param name="nav.context" select="'toc'"/>
+              <xsl:with-param name="content">
+                <h1>
+                  <xsl:apply-templates select="." mode="object.title.markup"/>
+                </h1>
+                <xsl:copy-of select="$lots"/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="quiet" select="$chunk.quietly"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$lots"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="make.lot.chunk">
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="lot"/>
+
+  <xsl:if test="string($lot) != ''">
+    <xsl:variable name="filename">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+        <xsl:with-param name="base.name">
+          <xsl:call-template name="dbhtml-dir"/>
+          <xsl:value-of select="$type"/>
+          <xsl:text>-toc</xsl:text>
+          <xsl:value-of select="$html.ext"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="href">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir" select="''"/>
+        <xsl:with-param name="base.name">
+          <xsl:call-template name="dbhtml-dir"/>
+          <xsl:value-of select="$type"/>
+          <xsl:text>-toc</xsl:text>
+          <xsl:value-of select="$html.ext"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="write.chunk">
+      <xsl:with-param name="filename" select="$filename"/>
+      <xsl:with-param name="content">
+        <xsl:call-template name="chunk-element-content">
+          <xsl:with-param name="prev" select="/foo"/>
+          <xsl:with-param name="next" select="/foo"/>
+          <xsl:with-param name="nav.context" select="'toc'"/>
+          <xsl:with-param name="content">
+            <xsl:copy-of select="$lot"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:with-param>
+      <xsl:with-param name="quiet" select="$chunk.quietly"/>
+    </xsl:call-template>
+    <!-- And output a link to this file -->
+    <div>
+      <xsl:attribute name="class">
+        <xsl:text>ListofTitles</xsl:text>
+      </xsl:attribute>
+      <a href="{$href}">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key">
+            <xsl:choose>
+              <xsl:when test="$type='table'">ListofTables</xsl:when>
+              <xsl:when test="$type='figure'">ListofFigures</xsl:when>
+              <xsl:when test="$type='equation'">ListofEquations</xsl:when>
+              <xsl:when test="$type='example'">ListofExamples</xsl:when>
+              <xsl:when test="$type='procedure'">ListofProcedures</xsl:when>
+              <xsl:otherwise>ListofUnknown</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+      </a>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/component.xsl b/applications/content/template/docbook/xhtml-1_1/component.xsl
new file mode 100644
index 0000000..f14ac2a
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/component.xsl
@@ -0,0 +1,439 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- Set to 2 for backwards compatibility -->
+<xsl:param name="component.heading.level" select="2"/>
+
+<xsl:template name="component.title">
+  <xsl:param name="node" select="."/>
+
+  <!-- This handles the case where a component (bibliography, for example)
+       occurs inside a section; will we need parameters for this? -->
+
+  <!-- This "level" is a section level.  To compute <h> level, add 1. -->
+  <xsl:variable name="level">
+    <xsl:choose>
+      <!-- chapters and other book children should get <h1> -->
+      <xsl:when test="$node/parent::book">0</xsl:when>
+      <xsl:when test="ancestor::section">
+        <xsl:value-of select="count(ancestor::section)+1"/>
+      </xsl:when>
+      <xsl:when test="ancestor::sect5">6</xsl:when>
+      <xsl:when test="ancestor::sect4">5</xsl:when>
+      <xsl:when test="ancestor::sect3">4</xsl:when>
+      <xsl:when test="ancestor::sect2">3</xsl:when>
+      <xsl:when test="ancestor::sect1">2</xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="h{$level+1}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:attribute name="class">title</xsl:attribute>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select="$node"/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="$node" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="component.subtitle">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="subtitle" select="($node/docinfo/subtitle                         |$node/info/subtitle                         |$node/prefaceinfo/subtitle                         |$node/chapterinfo/subtitle                         |$node/appendixinfo/subtitle                         |$node/articleinfo/subtitle                         |$node/artheader/subtitle                         |$node/subtitle)[1]"/>
+
+  <xsl:if test="$subtitle">
+    <h3 class="subtitle">
+      <xsl:call-template name="id.attribute"/>
+      <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+        <xsl:apply-templates select="$node" mode="object.subtitle.markup"/>
+      </em>
+    </h3>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.separator">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="dedication" mode="dedication">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="dedication.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="dedication/title|dedication/info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::dedication[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="dedication/subtitle|dedication/info/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::dedication[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="dedication"/> <!-- see mode="dedication" -->
+<xsl:template match="dedication/title"/>
+<xsl:template match="dedication/subtitle"/>
+<xsl:template match="dedication/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="acknowledgements" mode="acknowledgements">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="acknowledgements.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="acknowledgements/title|acknowledgements/info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::acknowledgements[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="acknowledgements/subtitle|acknowledgements/info/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::acknowledgements[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="acknowledgements"/> <!-- see mode="acknowledgements" -->
+<xsl:template match="acknowledgements/title"/>
+<xsl:template match="acknowledgements/subtitle"/>
+<xsl:template match="acknowledgements/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="colophon">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="component.title"/>
+    <xsl:call-template name="component.subtitle"/>
+
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="colophon/title"/>
+<xsl:template match="colophon/subtitle"/>
+<xsl:template match="colophon/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="preface">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="preface.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:call-template name="component.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="preface/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::preface[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface/subtitle                      |preface/prefaceinfo/subtitle                      |preface/info/subtitle                      |preface/docinfo/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::preface[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface/docinfo|prefaceinfo"/>
+<xsl:template match="preface/info"/>
+<xsl:template match="preface/title"/>
+<xsl:template match="preface/titleabbrev"/>
+<xsl:template match="preface/subtitle"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="chapter">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="chapter.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:call-template name="component.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="chapter/title|chapter/chapterinfo/title|chapter/info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::chapter[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter/subtitle                      |chapter/chapterinfo/subtitle                      |chapter/info/subtitle                      |chapter/docinfo/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::chapter[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter/docinfo|chapterinfo"/>
+<xsl:template match="chapter/info"/>
+<xsl:template match="chapter/title"/>
+<xsl:template match="chapter/titleabbrev"/>
+<xsl:template match="chapter/subtitle"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="appendix">
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="parent::article and $ischunk = 0">
+        <xsl:call-template name="section.heading">
+          <xsl:with-param name="level" select="1"/>
+          <xsl:with-param name="title">
+            <xsl:apply-templates select="." mode="object.title.markup"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="component.separator"/>
+        <xsl:call-template name="appendix.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:call-template name="component.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+
+    <xsl:if test="not(parent::article) or $ischunk != 0">
+      <xsl:call-template name="process.footnotes"/>
+    </xsl:if>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="appendix/title|appendix/appendixinfo/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::appendix[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="appendix/subtitle                      |appendix/appendixinfo/subtitle                      |appendix/info/subtitle                      |appendix/docinfo/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::appendix[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="appendix/docinfo|appendixinfo"/>
+<xsl:template match="appendix/info"/>
+<xsl:template match="appendix/title"/>
+<xsl:template match="appendix/titleabbrev"/>
+<xsl:template match="appendix/subtitle"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="article">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="article.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.lots">
+      <xsl:with-param name="toc.params" select="$toc.params"/>
+      <xsl:with-param name="toc">
+        <xsl:call-template name="component.toc">
+          <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="article/title|article/articleinfo/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::article[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="article/subtitle                      |article/articleinfo/subtitle                      |article/info/subtitle                      |article/artheader/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::article[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="article/artheader|article/articleinfo"/>
+<xsl:template match="article/info"/>
+<xsl:template match="article/title"/>
+<xsl:template match="article/titleabbrev"/>
+<xsl:template match="article/subtitle"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="topic">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="topic.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:apply-templates/>
+
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="topic/title|topic/info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::topic[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="topic/subtitle                      |topic/info/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::topic[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="topic/info"/>
+<xsl:template match="topic/title"/>
+<xsl:template match="topic/titleabbrev"/>
+<xsl:template match="topic/subtitle"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/division.xsl b/applications/content/template/docbook/xhtml-1_1/division.xsl
new file mode 100644
index 0000000..58fa987
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/division.xsl
@@ -0,0 +1,212 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="xml.language.attribute"/>
+    <xsl:if test="$generate.id.attributes != 0">
+      <xsl:attribute name="id">
+        <xsl:call-template name="object.id"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:call-template name="set.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.lots">
+      <xsl:with-param name="toc.params" select="$toc.params"/>
+      <xsl:with-param name="toc">
+        <xsl:call-template name="set.toc">
+          <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="set/setinfo"/>
+<xsl:template match="set/title"/>
+<xsl:template match="set/titleabbrev"/>
+<xsl:template match="set/subtitle"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="book.titlepage"/>
+
+    <xsl:apply-templates select="dedication" mode="dedication"/>
+    <xsl:apply-templates select="acknowledgements" mode="acknowledgements"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.lots">
+      <xsl:with-param name="toc.params" select="$toc.params"/>
+      <xsl:with-param name="toc">
+        <xsl:call-template name="division.toc">
+          <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="book/bookinfo"/>
+<xsl:template match="book/info"/>
+<xsl:template match="book/title"/>
+<xsl:template match="book/titleabbrev"/>
+<xsl:template match="book/subtitle"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="part">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="part.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:if test="not(partintro) and contains($toc.params, 'toc')">
+      <xsl:call-template name="division.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="part" mode="make.part.toc">
+  <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="reference" mode="make.part.toc">
+  <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="part/docinfo"/>
+<xsl:template match="part/partinfo"/>
+<xsl:template match="part/info"/>
+<xsl:template match="part/title"/>
+<xsl:template match="part/titleabbrev"/>
+<xsl:template match="part/subtitle"/>
+
+<xsl:template match="partintro">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="partintro.titlepage"/>
+    <xsl:apply-templates/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="node" select="parent::*"/>
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:if test="contains($toc.params, 'toc')">
+      <!-- not ancestor::part because partintro appears in reference -->
+      <xsl:apply-templates select="parent::*" mode="make.part.toc"/>
+    </xsl:if>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="partintro/title"/>
+<xsl:template match="partintro/titleabbrev"/>
+<xsl:template match="partintro/subtitle"/>
+
+<xsl:template match="partintro/title" mode="partintro.title.mode">
+  <h2>
+    <xsl:apply-templates/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="partintro/subtitle" mode="partintro.title.mode">
+  <h3>
+    <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></em>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book" mode="division.number">
+  <xsl:number from="set" count="book" format="1."/>
+</xsl:template>
+
+<xsl:template match="part" mode="division.number">
+  <xsl:number from="book" count="part" format="I."/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="division.title">
+  <xsl:param name="node" select="."/>
+
+  <h1>
+    <xsl:attribute name="class">title</xsl:attribute>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select="$node"/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="$node" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </h1>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/docbook.css.xml b/applications/content/template/docbook/xhtml-1_1/docbook.css.xml
new file mode 100644
index 0000000..f1509bf
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/docbook.css.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<style>
+
+/********************************/
+/* start of styles in block.xsl */
+
+.formalpara-title {
+  font-weight: bold;
+}
+
+div.blockquote-title {
+  font-weight: bold;
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msgmain-title {
+  font-weight: bold;
+}
+
+span.msgsub-title {
+  font-weight: bold;
+}
+
+span.msgrel-title {
+  font-weight: bold;
+}
+
+div.msglevel, div.msgorig, div.msgaud {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msglevel-title, span.msgorig-title, span.msgaud-title {
+  font-weight: bold;
+}
+
+div.msgexplan {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msgexplan-title {
+  font-weight: bold;
+}
+
+/* end of styles in block.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in autotoc.xsl */
+
+
+/* end of styles in autotoc.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in formal.xsl */
+
+div.figure-title {
+  font-weight: bold;
+}
+
+div.example-title {
+  font-weight: bold;
+}
+
+div.equation-title {
+  font-weight: bold;
+}
+
+div.table-title {
+  font-weight: bold;
+}
+
+div.sidebar-title {
+  font-weight: bold;
+}
+
+
+/* end of styles in formal.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in verbatim.xsl */
+
+div.programlisting {
+  white-space: pre;
+  font-family: monospace;
+}
+
+div.screen {
+  white-space: pre;
+  font-family: monospace;
+}
+
+div.synopsis {
+  white-space: pre;
+  font-family: monospace;
+}
+
+/* end of styles in verbatim.xsl */
+/********************************/
+
+/* footnote rule */
+hr.footnote-hr {
+  width: 100;
+}
+
+</style>
diff --git a/applications/content/template/docbook/xhtml-1_1/docbook.xsl b/applications/content/template/docbook/xhtml-1_1/docbook.xsl
new file mode 100644
index 0000000..a33789f
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/docbook.xsl
@@ -0,0 +1,492 @@
+<?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:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="db ng exsl exslt" version="1.0">
+
+<xsl:output method="xml" encoding="UTF-8" indent="no" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION.xsl"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/utility.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="../common/targets.xsl"/>
+<xsl:include href="../common/olink.xsl"/>
+<xsl:include href="../common/pi.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="autoidx.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="htmltbl.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="html.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="biblio-iso690.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="task.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="pi.xsl"/>
+<xsl:include href="ebnf.xsl"/>
+<xsl:include href="chunker.xsl"/>
+<xsl:include href="html-rtf.xsl"/>
+<xsl:include href="annotations.xsl"/>
+<xsl:include href="../common/stripns.xsl"/>
+
+<xsl:param name="stylesheet.result.type" select="'xhtml'"/>
+<xsl:param name="htmlhelp.output" select="0"/>
+
+<!-- ==================================================================== -->
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+<xsl:key name="gid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:text>Element </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text> in namespace '</xsl:text>
+    <xsl:value-of select="namespace-uri(.)"/>
+    <xsl:text>' encountered</xsl:text>
+    <xsl:if test="parent::*">
+      <xsl:text> in </xsl:text>
+      <xsl:value-of select="name(parent::*)"/>
+    </xsl:if>
+    <xsl:text>, but no template matches.</xsl:text>
+  </xsl:message>
+
+  <span style="color: red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="text()">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="body.attributes">
+<!-- no apply-templates; make it empty -->
+</xsl:template>
+
+<xsl:template name="head.content">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="title">
+    <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/>
+  </xsl:param>
+
+  <title>
+    <xsl:copy-of select="$title"/>
+  </title>
+
+  <xsl:if test="$html.base != ''">
+    <base href="{$html.base}"/>
+  </xsl:if>
+
+  <!-- Insert links to CSS files or insert literal style elements -->
+  <xsl:call-template name="generate.css"/>
+
+  <xsl:if test="$html.stylesheet != ''">
+    <xsl:call-template name="output.html.stylesheets">
+      <xsl:with-param name="stylesheets" select="normalize-space($html.stylesheet)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$html.script != ''">
+    <xsl:call-template name="output.html.scripts">
+      <xsl:with-param name="scripts" select="normalize-space($html.script)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$link.mailto.url != ''">
+    <link rev="made" href="{$link.mailto.url}"/>
+  </xsl:if>
+
+  <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/>
+
+  <xsl:if test="$generate.meta.abstract != 0">
+    <xsl:variable name="info" select="(articleinfo                                       |bookinfo                                       |prefaceinfo                                       |chapterinfo                                       |appendixinfo                                       |sectioninfo                                       |sect1info                                       |sect2info                                       |sect3info                                       |sect4info                                       |sect5info                                       |referenceinfo                                       |refentryinfo                                       |partinfo                                       |info                                       |docinfo)[1]"/>
+    <xsl:if test="$info and $info/abstract">
+      <meta name="description">
+        <xsl:attribute name="content">
+          <xsl:for-each select="$info/abstract[1]/*">
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:if test="position() &lt; last()">
+              <xsl:text> </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </meta>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:if test="($draft.mode = 'yes' or                 ($draft.mode = 'maybe' and                 ancestor-or-self::*[@status][1]/@status = 'draft'))                 and $draft.watermark.image != ''">
+    <style type="text/css"><xsl:text>
+body { background-image: url('</xsl:text>
+<xsl:value-of select="$draft.watermark.image"/><xsl:text>');
+       background-repeat: no-repeat;
+       background-position: top left;
+       /* The following properties make the watermark "fixed" on the page. */
+       /* I think that's just a bit too distracting for the reader... */
+       /* background-attachment: fixed; */
+       /* background-position: center center; */
+     }</xsl:text>
+    </style>
+  </xsl:if>
+  <xsl:apply-templates select="." mode="head.keywords.content"/>
+</xsl:template>
+
+<xsl:template name="output.html.stylesheets">
+  <xsl:param name="stylesheets" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($stylesheets, ' ')">
+      <xsl:variable name="css.filename" select="substring-before($stylesheets, ' ')"/>
+
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$css.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.stylesheets">
+        <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$stylesheets != ''">
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$stylesheets"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="output.html.scripts">
+  <xsl:param name="scripts" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($scripts, ' ')">
+      <xsl:variable name="script.filename" select="substring-before($scripts, ' ')"/>
+
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$script.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.scripts">
+        <xsl:with-param name="scripts" select="substring-after($scripts, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$scripts != ''">
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$scripts"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="head.keywords.content">
+  <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="artheader/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sectioninfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="info/keywordset" mode="html.header"/>
+
+  <xsl:if test="$inherit.keywords != 0                 and parent::*">
+    <xsl:apply-templates select="parent::*" mode="head.keywords.content"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="system.head.content">
+  <xsl:param name="node" select="."/>
+
+  <!-- FIXME: When chunking, only the annotations actually used
+              in this chunk should be referenced. I don't think it
+              does any harm to reference them all, but it adds
+              unnecessary bloat to each chunk. -->
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <xsl:call-template name="add.annotation.links"/>
+    <script type="text/javascript">
+      <xsl:text>
+// Create PopupWindow objects</xsl:text>
+      <xsl:for-each select="//annotation">
+        <xsl:text>
+var popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text> = new PopupWindow("popup-</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>");
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.offsetY = 15;
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.autoHide();
+</xsl:text>
+      </xsl:for-each>
+    </script>
+
+    <style type="text/css">
+      <xsl:value-of select="$annotation.css"/>
+    </style>
+  </xsl:if>
+
+  <!-- system.head.content is like user.head.content, except that
+       it is called before head.content. This is important because it
+       means, for example, that <style> elements output by system.head.content
+       have a lower CSS precedence than the users stylesheet. -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="user.preroot">
+  <!-- Pre-root output, can be used to output comments and PIs. -->
+  <!-- This must not output any element content! -->
+</xsl:template>
+
+<xsl:template name="user.head.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<!-- To use the same stripped nodeset everywhere, it should
+be created as a global variable here.
+Used by docbook.xsl, chunk-code.xsl and chunkfast.xsl -->
+<xsl:variable name="no.namespace">
+  <xsl:if test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">
+    <xsl:apply-templates select="/*" mode="stripNS"/>
+  </xsl:if>
+</xsl:variable>
+
+<xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>stripped namespace before processing</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <!-- DEBUG: to save stripped document.
+      <xsl:message>Saving stripped document.</xsl:message>
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="'/tmp/stripped.xml'"/>
+        <xsl:with-param name="method" select="'xml'"/>
+        <xsl:with-param name="content">
+          <xsl:copy-of select="exsl:node-set($no.namespace)"/>
+        </xsl:with-param>
+      </xsl:call-template>
+      -->
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates select="exsl:node-set($no.namespace)"/>
+    </xsl:when>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="*/self::ng:* or */self::db:*">
+      <xsl:message terminate="yes">
+        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+        <xsl:text> cannot proceed.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count(key('id',$rootid)) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="/" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="/" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="/" mode="collect.tex.math"/>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="doc" select="self::*"/>
+
+  <xsl:call-template name="user.preroot"/>
+  <xsl:call-template name="root.messages"/>
+
+  <html>
+    <xsl:call-template name="root.attributes"/>
+    <head>
+      <xsl:call-template name="system.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="user.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </head>
+    <body>
+      <xsl:call-template name="body.attributes"/>
+      <xsl:call-template name="user.header.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:apply-templates select="."/>
+      <xsl:call-template name="user.footer.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$html.append"/>
+  
+  <!-- Generate any css files only once, not once per chunk -->
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<xsl:template name="root.attributes">
+  <!-- customize to add attributes to <html> element  -->
+</xsl:template>
+
+<xsl:template name="root.messages">
+  <!-- redefine this any way you'd like to output messages -->
+  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+
+  <!-- The default is that we are not chunking... -->
+  <xsl:text>0</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/ebnf.xsl b/applications/content/template/docbook/xhtml-1_1/ebnf.xsl
new file mode 100644
index 0000000..ab30558
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/ebnf.xsl
@@ -0,0 +1,330 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="doc" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo xmlns="http://www.w3.org/1999/xhtml">
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title xmlns="http://www.w3.org/1999/xhtml">HTML EBNF Reference</title>
+
+<partintro xmlns="http://www.w3.org/1999/xhtml">
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This reference describes the templates and parameters relevant
+to formatting EBNF markup.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productionset">
+  <table width="100%" cellpadding="5">
+    <xsl:if test="$ebnf.table.bgcolor != ''">
+      <xsl:attribute name="style"><xsl:text>background-color: </xsl:text>
+        <xsl:value-of select="$ebnf.table.bgcolor"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$ebnf.table.border != 0">
+      <xsl:attribute name="border">1</xsl:attribute>
+    </xsl:if>
+    <xsl:attribute name="class">
+      <xsl:value-of select="local-name(.)"/>
+    </xsl:attribute>
+    <xsl:attribute name="summary">
+      <xsl:text>EBNF</xsl:text>
+      <xsl:if test="title|info/title">
+        <xsl:text> for </xsl:text>
+        <xsl:value-of select="title|info/title[1]"/>
+      </xsl:if>
+    </xsl:attribute>
+
+    <xsl:if test="title|info/title">
+      <tr>
+        <th align="{$direction.align.start}" valign="top">
+          <xsl:apply-templates select="." mode="class.attribute"/>
+          <xsl:apply-templates select="title|info/title[1]"/>
+        </th>
+      </tr>
+    </xsl:if>
+    <tr>
+      <td>
+        <table border="0" width="99%" cellpadding="0">
+          <xsl:if test="$ebnf.table.bgcolor != ''">
+            <xsl:attribute name="style"><xsl:text>background-color: </xsl:text>
+              <xsl:value-of select="$ebnf.table.bgcolor"/>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:attribute name="class">
+            <xsl:value-of select="local-name(.)"/>
+          </xsl:attribute>
+          <xsl:attribute name="summary">EBNF productions</xsl:attribute>
+          <xsl:apply-templates select="production|productionrecap"/>
+        </table>
+      </td>
+    </tr>
+  </table>
+</xsl:template>
+
+<xsl:template match="productionset/title">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="production">
+  <xsl:param name="recap" select="false()"/>
+  <tr>
+    <td align="{$direction.align.start}" valign="top">
+      <xsl:text>[</xsl:text>
+      <xsl:number count="production" level="any"/>
+      <xsl:text>]</xsl:text>
+    </td>
+    <td align="{$direction.align.end}" valign="top">
+      <xsl:choose>
+        <xsl:when test="$recap">
+          <a>
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="."/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:apply-templates select="lhs"/>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="id.attribute"/>
+          <xsl:call-template name="anchor"/>
+          <xsl:apply-templates select="lhs"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <td valign="top" align="center">
+      <xsl:copy-of select="$ebnf.assignment"/>
+    </td>
+    <td valign="top">
+      <xsl:apply-templates select="rhs"/>
+      <xsl:copy-of select="$ebnf.statement.terminator"/>
+    </td>
+    <td align="{$direction.align.start}" valign="top">
+      <xsl:choose>
+        <xsl:when test="rhs/lineannotation|constraint">
+          <xsl:apply-templates select="rhs/lineannotation" mode="rhslo"/>
+          <xsl:apply-templates select="constraint"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>&#160;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="productionrecap">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:if test="count($targets)=0">
+    <xsl:message>
+      <xsl:text>Error: no ID for productionrecap linkend: </xsl:text>
+      <xsl:value-of select="@linkend"/>
+      <xsl:text>.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="count($targets)&gt;1">
+    <xsl:message>
+      <xsl:text>Warning: multiple "IDs" for productionrecap linkend: </xsl:text>
+      <xsl:value-of select="@linkend"/>
+      <xsl:text>.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:apply-templates select="$target">
+    <xsl:with-param name="recap" select="true()"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="lhs">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="rhs">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::rhs">
+    <xsl:text> |</xsl:text>
+    <br/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="nonterminal">
+  <xsl:variable name="linkend">
+    <xsl:call-template name="xpointer.idref">
+      <xsl:with-param name="xpointer" select="@def"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="$linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="check.idref.targets">
+    <xsl:with-param name="linkend" select="$linkend"/>
+    <xsl:with-param name="element-list">production</xsl:with-param>
+  </xsl:call-template>
+
+  <!-- If you don't provide content, you can't point outside this doc. -->
+  <xsl:choose>
+    <xsl:when test="*|text()"><!--nop--></xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$linkend = ''">
+        <xsl:message>
+          <xsl:text>Non-terminals with no content must point to </xsl:text>
+          <xsl:text>production elements in the current document.</xsl:text>
+        </xsl:message>
+        <xsl:message>
+          <xsl:text>Invalid xpointer for empty nt: </xsl:text>
+          <xsl:value-of select="@def"/>
+        </xsl:message>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:variable name="href">
+    <xsl:choose>
+      <xsl:when test="$linkend != ''">
+        <xsl:variable name="targets" select="key('id',$linkend)"/>
+        <xsl:variable name="target" select="$targets[1]"/>
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select="$target"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@def"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <a href="{$href}">
+    <xsl:choose>
+      <xsl:when test="*|text()">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="$linkend != ''">
+            <xsl:variable name="targets" select="key('id',$linkend)"/>
+            <xsl:variable name="target" select="$targets[1]"/>
+            <xsl:apply-templates select="$target/lhs"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text>???</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </a>
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation" mode="rhslo">
+  <xsl:text>/*&#160;</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>&#160;*/</xsl:text>
+  <br/>
+</xsl:template>
+
+<xsl:template match="constraint">
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="check.idref.targets">
+    <xsl:with-param name="linkend" select="@linkend"/>
+    <xsl:with-param name="element-list">constraintdef</xsl:with-param>
+  </xsl:call-template>
+
+  <xsl:variable name="href">
+    <xsl:variable name="targets" select="key('id',@linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+    <xsl:call-template name="href.target">
+      <xsl:with-param name="object" select="$target"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:text>[&#160;</xsl:text>
+
+  <xsl:choose>
+    <xsl:when test="@role">
+      <xsl:value-of select="@role"/>
+      <xsl:text>: </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="targets" select="key('id',@linkend)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+      <xsl:if test="$target/@role">
+        <xsl:value-of select="$target/@role"/>
+        <xsl:text>: </xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <a href="{$href}">
+    <xsl:variable name="targets" select="key('id',@linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+    <xsl:apply-templates select="$target" mode="title.markup"/>
+  </a>
+  <xsl:text>&#160;]</xsl:text>
+  <xsl:if test="following-sibling::constraint">
+    <br/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="constraintdef">
+  <div>
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="constraintdef/title">
+  <p><strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></strong></p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/footnote.xsl b/applications/content/template/docbook/xhtml-1_1/footnote.xsl
new file mode 100644
index 0000000..50c1b27
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/footnote.xsl
@@ -0,0 +1,324 @@
+<?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:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="exsl" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- This template generates just the footnote marker inline.
+The footnote text is handled in name="process.footnote".
+The footnote marker gets an id of @id, while the
+footnote text gets an id of #ftn.@id. They cross link to each other. -->
+<xsl:template match="footnote">
+  <xsl:variable name="href">
+    <xsl:text>#ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <a href="{$href}">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <sup>
+      <xsl:apply-templates select="." mode="class.attribute"/>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:text>[</xsl:text>
+      <xsl:apply-templates select="." mode="footnote.number"/>
+      <xsl:text>]</xsl:text>
+    </sup>
+  </a>
+</xsl:template>
+
+<xsl:template match="footnoteref">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="footnote" select="$targets[1]"/>
+
+  <xsl:if test="not(local-name($footnote) = 'footnote')">
+   <xsl:message terminate="yes">
+ERROR: A footnoteref element has a linkend that points to an element that is not a footnote. 
+Typically this happens when an id attribute is accidentally applied to the child of a footnote element. 
+target element: <xsl:value-of select="local-name($footnote)"/>
+linkend/id: <xsl:value-of select="@linkend"/>
+   </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="target.href">
+    <xsl:call-template name="href.target">
+      <xsl:with-param name="object" select="$footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="href">
+    <xsl:value-of select="substring-before($target.href, '#')"/>
+    <xsl:text>#ftn.</xsl:text>
+    <xsl:value-of select="substring-after($target.href, '#')"/>
+  </xsl:variable>
+
+  <a href="{$href}">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="id.attribute"/>
+    <sup>
+      <xsl:apply-templates select="." mode="class.attribute"/>
+      <xsl:text>[</xsl:text>
+      <xsl:apply-templates select="$footnote" mode="footnote.number"/>
+      <xsl:text>]</xsl:text>
+    </sup>
+  </a>
+</xsl:template>
+
+<xsl:template match="footnote" mode="footnote.number">
+  <xsl:choose>
+    <xsl:when test="string-length(@label) != 0">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="ancestor::table or ancestor::informaltable">
+      <xsl:variable name="tfnum">
+        <xsl:number level="any" from="table|informaltable" format="1"/>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="string-length($table.footnote.number.symbols) &gt;= $tfnum">
+          <xsl:value-of select="substring($table.footnote.number.symbols, $tfnum, 1)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number level="any" from="table | informaltable" format="{$table.footnote.number.format}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="pfoot" select="preceding::footnote[not(@label)]"/>
+      <xsl:variable name="ptfoot" select="preceding::table//footnote |                                           preceding::informaltable//footnote"/>
+      <xsl:variable name="fnum" select="count($pfoot) - count($ptfoot) + 1"/>
+
+      <xsl:choose>
+        <xsl:when test="string-length($footnote.number.symbols) &gt;= $fnum">
+          <xsl:value-of select="substring($footnote.number.symbols, $fnum, 1)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number value="$fnum" format="{$footnote.number.format}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="footnote/para[1]|footnote/simpara[1]" priority="2">
+  <!-- this only works if the first thing in a footnote is a para, -->
+  <!-- which is ok, because it usually is. -->
+  <xsl:variable name="href">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class">
+      <xsl:if test="@role and $para.propagates.style != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:if>
+    </xsl:with-param>
+    <xsl:with-param name="content">
+      <a href="{$href}">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <sup>
+          <xsl:apply-templates select="." mode="class.attribute"/>
+          <xsl:text>[</xsl:text>
+          <xsl:apply-templates select="ancestor::footnote" mode="footnote.number"/>
+          <xsl:text>] </xsl:text>
+        </sup>
+      </a>
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="footnote.body.number">
+  <xsl:variable name="name">
+    <xsl:text>ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="footnote.mark">
+    <a href="{$href}">
+      <xsl:apply-templates select="." mode="class.attribute"/>
+      <xsl:choose>
+        <xsl:when test="$generate.id.attributes = 0">
+          <xsl:if test="@id or @xml:id">
+            <xsl:attribute name="id">
+              <xsl:value-of select="@id|@xml:id"/>
+            </xsl:attribute>
+          </xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="id.attribute"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <sup>
+        <xsl:text>[</xsl:text>
+        <xsl:apply-templates select="ancestor::footnote" mode="footnote.number"/>
+        <xsl:text>] </xsl:text>
+      </sup>
+    </a>
+  </xsl:variable>
+
+  <xsl:variable name="html">
+    <xsl:apply-templates select="."/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:variable name="html-nodes" select="exsl:node-set($html)"/>
+      <xsl:choose>
+        <xsl:when test="$html-nodes//p">
+          <xsl:apply-templates select="$html-nodes" mode="insert.html.p">
+            <xsl:with-param name="mark" select="$footnote.mark"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$html-nodes" mode="insert.html.text">
+            <xsl:with-param name="mark" select="$footnote.mark"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$html"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!--
+<xsl:template name="count-element-from">
+  <xsl:param name="from" select=".."/>
+  <xsl:param name="to" select="."/>
+  <xsl:param name="count" select="0"/>
+  <xsl:param name="list" select="$from/following::*[local-name(.)=local-name($to)]
+                                 |$from/descendant-or-self::*[local-name(.)=local-name($to)]"/>
+
+  <xsl:choose>
+    <xsl:when test="not($list)">
+      <xsl:text>-1</xsl:text>
+    </xsl:when>
+    <xsl:when test="$list[1] = $to">
+      <xsl:value-of select="$count + 1"/>
+    </xsl:when>
+    <xsl:otherwise>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+-->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.footnotes">
+  <xsl:variable name="footnotes" select=".//footnote"/>
+  <xsl:variable name="table.footnotes" select=".//table//footnote | .//informaltable//footnote"/>
+
+  <!-- Only bother to do this if there's at least one non-table footnote -->
+  <xsl:if test="count($footnotes)&gt;count($table.footnotes)">
+    <div class="footnotes">
+      <xsl:call-template name="footnotes.attributes"/>
+      <br/>
+      <hr/>
+      <xsl:apply-templates select="$footnotes" mode="process.footnote.mode"/>
+    </div>
+  </xsl:if>
+
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <div class="annotation-list">
+      <div class="annotation-nocss">
+	<p>The following annotations are from this essay. You are seeing
+	them here because your browser doesn&#8217;t support the user-interface
+	techniques used to make them appear as &#8216;popups&#8217; on modern browsers.</p>
+      </div>
+
+      <xsl:apply-templates select="//annotation" mode="annotation-popup"/>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="footnotes.attributes">
+  <!-- customizable for footnotes attributes -->
+</xsl:template>
+
+<xsl:template name="process.chunk.footnotes">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="footnote" name="process.footnote" mode="process.footnote.mode">
+  <xsl:variable name="id">
+    <xsl:text>ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="local-name(*[1]) = 'para' or local-name(*[1]) = 'simpara'">
+      <div id="{$id}">
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+
+    <xsl:when test="$html.cleanup != 0 and                      $exsl.node.set.available != 0">
+      <div id="{$id}">
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:apply-templates select="*[1]" mode="footnote.body.number"/>
+        <xsl:apply-templates select="*[position() &gt; 1]"/>
+      </div>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>Warning: footnote number may not be generated </xsl:text>
+        <xsl:text>correctly; </xsl:text>
+        <xsl:value-of select="local-name(*[1])"/>
+        <xsl:text> unexpected as first child of footnote.</xsl:text>
+      </xsl:message>
+      <div id="{$id}">
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="table//footnote | informaltable//footnote" mode="process.footnote.mode">
+</xsl:template>
+
+<xsl:template match="footnote" mode="table.footnote.mode">
+  <xsl:call-template name="process.footnote"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/formal.xsl b/applications/content/template/docbook/xhtml-1_1/formal.xsl
new file mode 100644
index 0000000..061e413
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/formal.xsl
@@ -0,0 +1,490 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:param name="formal.object.break.after">1</xsl:param>
+
+<xsl:template name="formal.object">
+  <xsl:param name="placement" select="'before'"/>
+  <xsl:param name="class">
+    <xsl:apply-templates select="." mode="class.value"/>
+  </xsl:param>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:variable name="content">
+    <div class="{$class}">
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    
+      <xsl:choose>
+        <xsl:when test="$placement = 'before'">
+          <xsl:call-template name="formal.object.heading"/>
+          <div class="{$class}-contents">
+            <xsl:apply-templates/>
+          </div>
+          <!-- HACK: This doesn't belong inside formal.object; it 
+               should be done by the table template, but I want 
+               the link to be inside the DIV, so... -->
+          <xsl:if test="local-name(.) = 'table'">
+            <xsl:call-template name="table.longdesc"/>
+          </xsl:if>
+    
+          <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+          <div class="{$class}-contents"><xsl:apply-templates/></div>
+          <!-- HACK: This doesn't belong inside formal.object; it 
+               should be done by the table template, but I want 
+               the link to be inside the DIV, so... -->
+          <xsl:if test="local-name(.) = 'table'">
+            <xsl:call-template name="table.longdesc"/>
+          </xsl:if>
+    
+          <xsl:call-template name="formal.object.heading"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </div>
+    <xsl:if test="not($formal.object.break.after = '0')">
+      <br class="{$class}-break"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="floatstyle">
+    <xsl:call-template name="floatstyle"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$floatstyle != ''">
+      <xsl:call-template name="floater">
+        <xsl:with-param name="class"><xsl:value-of select="$class"/>-float</xsl:with-param>
+        <xsl:with-param name="floatstyle" select="$floatstyle"/>
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="formal.object.heading">
+  <xsl:param name="object" select="."/>
+  <xsl:param name="title">
+    <xsl:apply-templates select="$object" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </xsl:param>
+
+
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <xsl:variable name="html.class" select="concat(local-name($object),'-title')"/>
+      <div class="{$html.class}">
+        <xsl:copy-of select="$title"/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p class="title">
+        <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:copy-of select="$title"/>
+        </strong>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="informal.object">
+  <xsl:param name="class">
+    <xsl:apply-templates select="." mode="class.value"/>
+  </xsl:param>
+
+  <xsl:variable name="content">
+    <div class="{$class}">
+      <xsl:call-template name="id.attribute"/>
+      <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+  
+      <!-- HACK: This doesn't belong inside formal.object; it 
+           should be done by the table template, but I want 
+           the link to be inside the DIV, so... -->
+      <xsl:if test="local-name(.) = 'informaltable'">
+        <xsl:call-template name="table.longdesc"/>
+      </xsl:if>
+  
+      <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+    </div>
+  </xsl:variable>
+
+  <xsl:variable name="floatstyle">
+    <xsl:call-template name="floatstyle"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$floatstyle != ''">
+      <xsl:call-template name="floater">
+        <xsl:with-param name="class"><xsl:value-of select="$class"/>-float</xsl:with-param>
+        <xsl:with-param name="floatstyle" select="$floatstyle"/>
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="semiformal.object">
+  <xsl:param name="placement" select="'before'"/>
+  <xsl:param name="class" select="local-name(.)"/>
+
+  <xsl:choose>
+    <xsl:when test="title or info/title">
+      <xsl:call-template name="formal.object">
+        <xsl:with-param name="placement" select="$placement"/>
+        <xsl:with-param name="class" select="$class"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="informal.object">
+        <xsl:with-param name="class" select="$class"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure">
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="formal.object">
+    <xsl:with-param name="placement" select="$placement"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="table">
+  <xsl:choose>
+    <xsl:when test="tgroup|mediaobject|graphic">
+      <xsl:call-template name="calsTable"/>
+    </xsl:when>
+    <xsl:when test="caption">
+      <xsl:call-template name="htmlTable.with.caption"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- do not use xsl:copy because of XHTML's needs -->
+      <xsl:element name="table" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+        <xsl:attribute name="id">
+          <xsl:call-template name="object.id"/>
+        </xsl:attribute>
+        <xsl:call-template name="htmlTable"/>
+      </xsl:element>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Handle html markup table like formal.object -->
+<xsl:template name="htmlTable.with.caption">
+  <xsl:param name="class">
+    <xsl:apply-templates select="." mode="class.value"/>
+  </xsl:param>
+
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:variable name="content">
+    <div class="{$class}">
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    
+      <xsl:choose>
+        <xsl:when test="$placement = 'before'">
+
+          <xsl:call-template name="formal.object.heading"/>
+
+          <div class="{$class}-contents">
+            <xsl:apply-templates select="." mode="htmlTable"/>
+          </div>
+
+          <xsl:call-template name="table.longdesc"/>
+    
+          <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+
+          <div class="{$class}-contents">
+            <xsl:apply-templates select="." mode="htmlTable"/>
+          </div>
+
+          <xsl:call-template name="table.longdesc"/>
+    
+          <xsl:call-template name="formal.object.heading"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </div>
+    <xsl:if test="not($formal.object.break.after = '0')">
+      <br class="{$class}-break"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="floatstyle">
+    <xsl:call-template name="floatstyle"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$floatstyle != ''">
+      <xsl:call-template name="floater">
+        <xsl:with-param name="class"><xsl:value-of select="$class"/>-float</xsl:with-param>
+        <xsl:with-param name="floatstyle" select="$floatstyle"/>
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="calsTable">
+  <xsl:if test="tgroup/tbody/tr                 |tgroup/thead/tr                 |tgroup/tfoot/tr">
+    <xsl:message terminate="yes">Broken table: tr descendent of CALS Table.</xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="formal.object">
+    <xsl:with-param name="placement" select="$placement"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="table|informaltable" mode="class.value">
+  <xsl:choose>
+    <xsl:when test="@tabstyle">
+      <xsl:value-of select="@tabstyle"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="local-name(.)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="htmlTable">
+  <xsl:if test="tgroup/tbody/row                 |tgroup/thead/row                 |tgroup/tfoot/row">
+    <xsl:message terminate="yes">Broken table: row descendent of HTML table.</xsl:message>
+  </xsl:if>
+
+  <xsl:apply-templates mode="htmlTable"/>
+
+  <xsl:if test=".//footnote|../title//footnote">
+    <tbody class="footnotes">
+      <tr>
+        <td colspan="50">
+          <xsl:apply-templates select=".//footnote|../title//footnote" mode="table.footnote.mode"/>
+        </td>
+      </tr>
+    </tbody>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="example">
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                      concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="formal.object">
+    <xsl:with-param name="placement" select="$placement"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="equation">
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                       concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="formal.object">
+    <xsl:with-param name="placement" select="$placement"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="figure/title"/>
+<xsl:template match="figure/titleabbrev"/>
+<xsl:template match="table/title"/>
+<xsl:template match="table/titleabbrev"/>
+<xsl:template match="table/textobject"/>
+<xsl:template match="example/title"/>
+<xsl:template match="example/titleabbrev"/>
+<xsl:template match="equation/title"/>
+<xsl:template match="equation/titleabbrev"/>
+
+<xsl:template match="informalfigure">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informalexample">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informaltable">
+  <xsl:choose>
+    <xsl:when test="tgroup|mediaobject|graphic">
+      <xsl:call-template name="informal.object"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:element name="table" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+        <xsl:attribute name="id">
+          <xsl:call-template name="object.id"/>
+        </xsl:attribute>
+        <xsl:call-template name="htmlTable"/>
+      </xsl:element>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="informaltable/textobject"/>
+
+<xsl:template name="table.longdesc">
+  <!-- HACK: This doesn't belong inside formal.objectt; it should be done by -->
+  <!-- the table template, but I want the link to be inside the DIV, so... -->
+  <xsl:variable name="longdesc.uri">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="irrelevant">
+    <!-- write.longdesc returns the filename ... -->
+    <xsl:call-template name="write.longdesc">
+      <xsl:with-param name="mediaobject" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$html.longdesc != 0 and $html.longdesc.link != 0                 and textobject[not(phrase)]">
+    <xsl:call-template name="longdesc.link">
+      <xsl:with-param name="longdesc.uri" select="$longdesc.uri"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="informalequation">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template name="floatstyle">
+  <xsl:if test="(@float and @float != '0') or @floatstyle != ''">
+    <xsl:choose>
+      <xsl:when test="@floatstyle != ''">
+        <xsl:value-of select="@floatstyle"/>
+      </xsl:when>
+      <xsl:when test="@float = '1'">
+        <xsl:value-of select="$default.float.class"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@float"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="floater">
+  <xsl:param name="content"/>
+  <xsl:param name="class" select="'float'"/>
+  <xsl:param name="floatstyle" select="'left'"/>
+
+  <div class="{$class}">
+    <xsl:if test="$floatstyle = 'left' or $floatstyle = 'right'">
+      <xsl:attribute name="style">
+        <xsl:text>float: </xsl:text>
+        <xsl:value-of select="$floatstyle"/>
+        <xsl:text>;</xsl:text>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:copy-of select="$content"/>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/glossary.xsl b/applications/content/template/docbook/xhtml-1_1/glossary.xsl
new file mode 100644
index 0000000..89b8e7a
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/glossary.xsl
@@ -0,0 +1,593 @@
+<?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:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xlink" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossary">
+  
+<xsl:variable name="language">
+  <xsl:call-template name="l10n.language"/>
+</xsl:variable>
+
+<xsl:variable name="lowercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:variable name="uppercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="glossary.titlepage"/>
+
+    <xsl:choose>
+      <xsl:when test="glossdiv">
+        <xsl:apply-templates select="(glossdiv[1]/preceding-sibling::*)"/>
+      </xsl:when>
+      <xsl:when test="glossentry">
+        <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:choose>
+      <xsl:when test="glossdiv">
+        <xsl:apply-templates select="glossdiv"/>
+      </xsl:when>
+      <xsl:when test="glossentry">
+        <dl>
+          <xsl:choose>
+            <xsl:when test="$glossary.sort != 0">
+              <xsl:apply-templates select="glossentry">
+				<xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="glossentry"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </dl>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- empty glossary -->
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="not(parent::article)">
+      <xsl:call-template name="process.footnotes"/>
+    </xsl:if>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="glossary/glossaryinfo"/>
+<xsl:template match="glossary/info"/>
+<xsl:template match="glossary/title"/>
+<xsl:template match="glossary/subtitle"/>
+<xsl:template match="glossary/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glosslist">
+  
+<xsl:variable name="language">
+  <xsl:call-template name="l10n.language"/>
+</xsl:variable>
+
+<xsl:variable name="lowercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:variable name="uppercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="blockinfo/title|info/title|title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+    <dl>
+      <xsl:choose>
+        <xsl:when test="$glossary.sort != 0">
+          <xsl:apply-templates select="glossentry">
+				<xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="glossentry"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </dl>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossdiv">
+  
+<xsl:variable name="language">
+  <xsl:call-template name="l10n.language"/>
+</xsl:variable>
+
+<xsl:variable name="lowercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:variable name="uppercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+
+    <dl>
+      <xsl:choose>
+        <xsl:when test="$glossary.sort != 0">
+          <xsl:apply-templates select="glossentry">
+            <xsl:sort lang="{$language}" select="translate(glossterm, $lowercase,                                          $uppercase)"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="glossentry"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </dl>
+  </div>
+</xsl:template>
+
+<xsl:template match="glossdiv/title">
+  <h3>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!--
+GlossEntry ::=
+  GlossTerm, Acronym?, Abbrev?,
+  (IndexTerm)*,
+  RevHistory?,
+  (GlossSee | GlossDef+)
+-->
+
+<xsl:template match="glossentry">
+  <xsl:choose>
+    <xsl:when test="$glossentry.show.acronym = 'primary'">
+      <dt>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+
+        <xsl:choose>
+          <xsl:when test="acronym|abbrev">
+            <xsl:apply-templates select="acronym|abbrev"/>
+            <xsl:text> (</xsl:text>
+            <xsl:apply-templates select="glossterm"/>
+            <xsl:text>)</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="glossterm"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </dt>
+    </xsl:when>
+    <xsl:when test="$glossentry.show.acronym = 'yes'">
+      <dt>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+
+        <xsl:apply-templates select="glossterm"/>
+
+        <xsl:if test="acronym|abbrev">
+          <xsl:text> (</xsl:text>
+          <xsl:apply-templates select="acronym|abbrev"/>
+          <xsl:text>)</xsl:text>
+        </xsl:if>
+      </dt>
+    </xsl:when>
+    <xsl:otherwise>
+      <dt>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+
+        <xsl:apply-templates select="glossterm"/>
+      </dt>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:apply-templates select="indexterm|revhistory|glosssee|glossdef"/>
+</xsl:template>
+
+<xsl:template match="glossentry/glossterm">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::glossterm">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/acronym">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/abbrev">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/revhistory">
+</xsl:template>
+
+<xsl:template match="glossentry/glosssee">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="key('id', $otherterm)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="xlink" select="@xlink:href"/>
+
+  <dd>
+    <p>
+      <xsl:variable name="template">
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'glossary'"/>
+          <xsl:with-param name="name" select="'see'"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="title">
+        <xsl:choose>
+          <xsl:when test="$target">
+            <a>
+              <xsl:apply-templates select="." mode="common.html.attributes"/>
+              <xsl:call-template name="id.attribute"/>
+              <xsl:attribute name="href">
+                <xsl:call-template name="href.target">
+                  <xsl:with-param name="object" select="$target"/>
+                </xsl:call-template>
+              </xsl:attribute>
+              <xsl:apply-templates select="$target" mode="xref-to"/>
+            </a>
+          </xsl:when>
+          <xsl:when test="$xlink">
+            <xsl:call-template name="simple.xlink">
+              <xsl:with-param name="content">
+                <xsl:apply-templates/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:when test="$otherterm != '' and not($target)">
+            <xsl:message>
+              <xsl:text>Warning: glosssee @otherterm reference not found: </xsl:text>
+              <xsl:value-of select="$otherterm"/>
+            </xsl:message>
+            <xsl:apply-templates/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="template" select="$template"/>
+        <xsl:with-param name="title" select="$title"/>
+      </xsl:call-template>
+    </p>
+  </dd>
+</xsl:template>
+
+<xsl:template match="glossentry/glossdef">
+  <dd>
+    <xsl:apply-templates select="*[local-name(.) != 'glossseealso']"/>
+    <xsl:if test="glossseealso">
+      <p>
+        <xsl:variable name="template">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'glossary'"/>
+            <xsl:with-param name="name" select="'seealso'"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:variable name="title">
+          <xsl:apply-templates select="glossseealso"/>
+        </xsl:variable>
+        <xsl:call-template name="substitute-markup">
+          <xsl:with-param name="template" select="$template"/>
+          <xsl:with-param name="title" select="$title"/>
+        </xsl:call-template>
+      </p>
+    </xsl:if>
+  </dd>
+</xsl:template>
+
+<xsl:template match="glossseealso">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="key('id', $otherterm)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="xlink" select="@xlink:href"/>
+
+  <xsl:choose>
+    <xsl:when test="$target">
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target" mode="xref-to"/>
+      </a>
+    </xsl:when>
+    <xsl:when test="$xlink">
+      <xsl:call-template name="simple.xlink">
+        <xsl:with-param name="content">
+          <xsl:apply-templates/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$otherterm != '' and not($target)">
+      <xsl:message>
+        <xsl:text>Warning: glossseealso @otherterm reference not found: </xsl:text>
+        <xsl:value-of select="$otherterm"/>
+      </xsl:message>
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="position() = last()"/>
+    <xsl:otherwise>
+		<xsl:call-template name="gentext.template">
+		  <xsl:with-param name="context" select="'glossary'"/>
+		  <xsl:with-param name="name" select="'seealso-separator'"/>
+		</xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- Glossary collection -->
+
+<xsl:template match="glossary[@role='auto']" priority="2">
+  
+<xsl:variable name="language">
+  <xsl:call-template name="l10n.language"/>
+</xsl:variable>
+
+<xsl:variable name="lowercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:variable name="uppercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+  <xsl:variable name="terms" select="//glossterm[not(parent::glossdef)]|//firstterm"/>
+  <xsl:variable name="collection" select="document($glossary.collection, .)"/>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:if test="$glossary.collection = ''">
+    <xsl:message>
+      <xsl:text>Warning: processing automatic glossary </xsl:text>
+      <xsl:text>without a glossary.collection file.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not($collection) and $glossary.collection != ''">
+    <xsl:message>
+      <xsl:text>Warning: processing automatic glossary but unable to </xsl:text>
+      <xsl:text>open glossary.collection file '</xsl:text>
+      <xsl:value-of select="$glossary.collection"/>
+      <xsl:text>'</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="glossary.titlepage"/>
+
+    <xsl:choose>
+      <xsl:when test="glossdiv and $collection//glossdiv">
+        <xsl:for-each select="$collection//glossdiv">
+          <!-- first see if there are any in this div -->
+          <xsl:variable name="exist.test">
+            <xsl:for-each select="glossentry">
+              <xsl:variable name="cterm" select="glossterm"/>
+              <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                <xsl:value-of select="glossterm"/>
+              </xsl:if>
+            </xsl:for-each>
+          </xsl:variable>
+
+          <xsl:if test="$exist.test != ''">
+            <xsl:apply-templates select="." mode="auto-glossary">
+              <xsl:with-param name="terms" select="$terms"/>
+            </xsl:apply-templates>
+          </xsl:if>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <dl>
+          <xsl:choose>
+            <xsl:when test="$glossary.sort != 0">
+              <xsl:for-each select="$collection//glossentry">
+				<xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))"/>
+                <xsl:variable name="cterm" select="glossterm"/>
+                <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                  <xsl:apply-templates select="." mode="auto-glossary"/>
+                </xsl:if>
+              </xsl:for-each>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:for-each select="$collection//glossentry">
+                <xsl:variable name="cterm" select="glossterm"/>
+                <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                  <xsl:apply-templates select="." mode="auto-glossary"/>
+                </xsl:if>
+              </xsl:for-each>
+            </xsl:otherwise>
+          </xsl:choose>
+        </dl>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="not(parent::article)">
+      <xsl:call-template name="process.footnotes"/>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="auto-glossary">
+  <!-- pop back out to the default mode for most elements -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="glossdiv" mode="auto-glossary">
+  <xsl:param name="terms" select="."/>
+
+  
+<xsl:variable name="language">
+  <xsl:call-template name="l10n.language"/>
+</xsl:variable>
+
+<xsl:variable name="lowercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:variable name="uppercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+
+    <dl>
+      <xsl:choose>
+        <xsl:when test="$glossary.sort != 0">
+          <xsl:for-each select="glossentry">
+				<xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))"/>
+            <xsl:variable name="cterm" select="glossterm"/>
+            <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+              <xsl:apply-templates select="." mode="auto-glossary"/>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:for-each select="glossentry">
+            <xsl:variable name="cterm" select="glossterm"/>
+            <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+              <xsl:apply-templates select="." mode="auto-glossary"/>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:otherwise>
+      </xsl:choose>
+    </dl>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/graphics.xsl b/applications/content/template/docbook/xhtml-1_1/graphics.xsl
new file mode 100644
index 0000000..577e540
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/graphics.xsl
@@ -0,0 +1,1474 @@
+<?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:xlink="http://www.w3.org/1999/xlink" xmlns:stext="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.TextFactory" xmlns:simg="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.ImageIntrinsics" xmlns:ximg="xalan://com.nwalsh.xalan.ImageIntrinsics" xmlns:xtext="xalan://com.nwalsh.xalan.Text" xmlns:lxslt="http://xml.apache.org/xslt" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xlink stext xtext lxslt simg ximg" extension-element-prefixes="stext xtext" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     Contributors:
+     Colin Paul Adams, <colin@colina.demon.co.uk>
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xtext" elements="insertfile"/>
+<lxslt:component prefix="ximg" functions="new getWidth getDepth"/>
+
+<!-- ==================================================================== -->
+<!-- Graphic format tests for the HTML backend -->
+
+<xsl:template name="is.graphic.format">
+  <xsl:param name="format"/>
+  <xsl:if test="$format = 'SVG'                 or $format = 'PNG'                 or $format = 'JPG'                 or $format = 'JPEG'                 or $format = 'linespecific'                 or $format = 'GIF'                 or $format = 'GIF87a'                 or $format = 'GIF89a'                 or $format = 'BMP'">1</xsl:if>
+</xsl:template>
+
+<xsl:template name="is.graphic.extension">
+  <xsl:param name="ext"/>
+  <xsl:variable name="lcext" select="translate($ext,                                        'ABCDEFGHIJKLMNOPQRSTUVWXYZ',                                        'abcdefghijklmnopqrstuvwxyz')"/>
+  <xsl:if test="$lcext = 'svg'              or $lcext = 'png'              or $lcext = 'jpeg'              or $lcext = 'jpg'              or $lcext = 'avi'              or $lcext = 'mpg'              or $lcext = 'mp4'              or $lcext = 'mpeg'              or $lcext = 'qt'              or $lcext = 'gif'              or $lcext = 'acc'              or $lcext = 'mp1'              or $lcext = 'mp2'              or $lcext = 'mp3'              or $lcext = 'mp4'              or $lcext = 'm4v'              or $lcext = 'm4a'              or $lcext = 'wav'              or $lcext = 'ogv'              or $lcext = 'ogg'              or $lcext = 'webm'              or $lcext = 'bmp'">1</xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="screenshot">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="screeninfo">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.image">
+  <!-- When this template is called, the current node should be  -->
+  <!-- a graphic, inlinegraphic, imagedata, or videodata. All    -->
+  <!-- those elements have the same set of attributes, so we can -->
+  <!-- handle them all in one place.                             -->
+  <xsl:param name="tag" select="'img'"/>
+  <xsl:param name="alt"/>
+  <xsl:param name="longdesc"/>
+
+  <!-- The HTML img element only supports the notion of content-area
+       scaling; it doesn't support the distinction between a
+       content-area and a viewport-area, so we have to make some
+       compromises.
+
+       1. If only the content-area is specified, everything is fine.
+          (If you ask for a three inch image, that's what you'll get.)
+
+       2. If only the viewport-area is provided:
+          - If scalefit=1, treat it as both the content-area and
+            the viewport-area. (If you ask for an image in a five inch
+            area, we'll make the image five inches to fill that area.)
+          - If scalefit=0, ignore the viewport-area specification.
+
+          Note: this is not quite the right semantic and has the additional
+          problem that it can result in anamorphic scaling, which scalefit
+          should never cause.
+
+       3. If both the content-area and the viewport-area is specified
+          on a graphic element, ignore the viewport-area.
+          (If you ask for a three inch image in a five inch area, we'll assume
+           it's better to give you a three inch image in an unspecified area
+           than a five inch image in a five inch area.
+
+       Relative units also cause problems. As a general rule, the stylesheets
+       are operating too early and too loosely coupled with the rendering engine
+       to know things like the current font size or the actual dimensions of
+       an image. Therefore:
+
+       1. We use a fixed size for pixels, $pixels.per.inch
+
+       2. We use a fixed size for "em"s, $points.per.em
+
+       Percentages are problematic. In the following discussion, we speak
+       of width and contentwidth, but the same issues apply to depth and
+       contentdepth
+
+       1. A width of 50% means "half of the available space for the image."
+          That's fine. But note that in HTML, this is a dynamic property and
+          the image size will vary if the browser window is resized.
+
+       2. A contentwidth of 50% means "half of the actual image width". But
+          the stylesheets have no way to assess the image's actual size. Treating
+          this as a width of 50% is one possibility, but it produces behavior
+          (dynamic scaling) that seems entirely out of character with the
+          meaning.
+
+          Instead, the stylesheets define a $nominal.image.width
+          and convert percentages to actual values based on that nominal size.
+
+       Scale can be problematic. Scale applies to the contentwidth, so
+       a scale of 50 when a contentwidth is not specified is analagous to a
+       width of 50%. (If a contentwidth is specified, the scaling factor can
+       be applied to that value and no problem exists.)
+
+       If scale is specified but contentwidth is not supplied, the
+       nominal.image.width is used to calculate a base size
+       for scaling.
+
+       Warning: as a consequence of these decisions, unless the aspect ratio
+       of your image happens to be exactly the same as (nominal width / nominal height),
+       specifying contentwidth="50%" and contentdepth="50%" is NOT going to
+       scale the way you expect (or really, the way it should).
+
+       Don't do that. In fact, a percentage value is not recommended for content
+       size at all. Use scale instead.
+
+       Finally, align and valign are troublesome. Horizontal alignment is now
+       supported by wrapping the image in a <div align="{@align}"> (in block
+       contexts!). I can't think of anything (practical) to do about vertical
+       alignment.
+  -->
+
+  <xsl:variable name="width-units">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"/>
+      <xsl:when test="@width">
+        <xsl:call-template name="length-units">
+          <xsl:with-param name="length" select="@width"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="not(@depth) and $default.image.width != ''">
+        <xsl:call-template name="length-units">
+          <xsl:with-param name="length" select="$default.image.width"/>
+        </xsl:call-template>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="width">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"/>
+      <xsl:when test="@width">
+        <xsl:choose>
+          <xsl:when test="$width-units = '%'">
+            <xsl:value-of select="@width"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="length-spec">
+              <xsl:with-param name="length" select="@width"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:when test="not(@depth) and $default.image.width != ''">
+        <xsl:value-of select="$default.image.width"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scalefit">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
+      <xsl:when test="@contentwidth or @contentdepth">0</xsl:when>
+      <xsl:when test="@scale">0</xsl:when>
+      <xsl:when test="@scalefit"><xsl:value-of select="@scalefit"/></xsl:when>
+      <xsl:when test="$width != '' or @depth">1</xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scale">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0">1.0</xsl:when>
+      <xsl:when test="@contentwidth or @contentdepth">1.0</xsl:when>
+      <xsl:when test="@scale">
+        <xsl:value-of select="@scale div 100.0"/>
+      </xsl:when>
+      <xsl:otherwise>1.0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="local-name(.) = 'graphic'                       or local-name(.) = 'inlinegraphic'">
+        <!-- handle legacy graphic and inlinegraphic by new template --> 
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- imagedata, videodata, audiodata -->
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="output_filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="$filename"/>
+      </xsl:when>
+      <!--
+        Moved test for $keep.relative.image.uris to template below:
+            <xsl:template match="@fileref">
+      -->
+      <xsl:otherwise>
+        <xsl:value-of select="$filename"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="img.src.path.pi">
+    <xsl:call-template name="pi.dbhtml_img.src.path">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="filename.for.graphicsize">
+    <xsl:choose>
+      <xsl:when test="$img.src.path.pi != ''">
+        <xsl:value-of select="concat($img.src.path.pi, $filename)"/>
+      </xsl:when>
+      <xsl:when test="$img.src.path != '' and                       $graphicsize.use.img.src.path != 0 and                       $tag = 'img' and                       not(starts-with($filename, '/')) and                       not(contains($filename, '://'))">
+        <xsl:value-of select="concat($img.src.path, $filename)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$filename"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="realintrinsicwidth">
+    <!-- This funny compound test works around a bug in XSLTC -->
+    <xsl:choose>
+      <xsl:when test="$use.extensions != 0 and $graphicsize.extension != 0                       and not(@format='SVG')">
+        <xsl:choose>
+          <xsl:when test="function-available('simg:getWidth')">
+            <xsl:value-of select="simg:getWidth(simg:new($filename.for.graphicsize),                                                 $nominal.image.width)"/>
+          </xsl:when>
+          <xsl:when test="function-available('ximg:getWidth')">
+            <xsl:value-of select="ximg:getWidth(ximg:new($filename.for.graphicsize),                                                 $nominal.image.width)"/>
+          </xsl:when>
+          <xsl:otherwise>
+           <xsl:value-of select="0"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="0"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="intrinsicwidth">
+    <xsl:choose>
+      <xsl:when test="$realintrinsicwidth = 0">
+       <xsl:value-of select="$nominal.image.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:value-of select="$realintrinsicwidth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="intrinsicdepth">
+    <!-- This funny compound test works around a bug in XSLTC -->
+    <xsl:choose>
+      <xsl:when test="$use.extensions != 0 and $graphicsize.extension != 0                       and not(@format='SVG')">
+        <xsl:choose>
+          <xsl:when test="function-available('simg:getDepth')">
+            <xsl:value-of select="simg:getDepth(simg:new($filename.for.graphicsize),                                                 $nominal.image.depth)"/>
+          </xsl:when>
+          <xsl:when test="function-available('ximg:getDepth')">
+            <xsl:value-of select="ximg:getDepth(ximg:new($filename.for.graphicsize),                                                 $nominal.image.depth)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$nominal.image.depth"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$nominal.image.depth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="contentwidth">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"/>
+      <xsl:when test="@contentwidth">
+        <xsl:variable name="units">
+          <xsl:call-template name="length-units">
+            <xsl:with-param name="length" select="@contentwidth"/>
+          </xsl:call-template>
+        </xsl:variable>
+
+        <xsl:choose>
+          <xsl:when test="$units = '%'">
+            <xsl:variable name="cmagnitude">
+              <xsl:call-template name="length-magnitude">
+                <xsl:with-param name="length" select="@contentwidth"/>
+              </xsl:call-template>
+            </xsl:variable>
+            <xsl:value-of select="$intrinsicwidth * $cmagnitude div 100.0"/>
+            <xsl:text>px</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="length-spec">
+              <xsl:with-param name="length" select="@contentwidth"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$intrinsicwidth"/>
+        <xsl:text>px</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scaled.contentwidth">
+    <xsl:if test="$contentwidth != ''">
+      <xsl:variable name="cwidth.in.points">
+        <xsl:call-template name="length-in-points">
+          <xsl:with-param name="length" select="$contentwidth"/>
+          <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+          <xsl:with-param name="em.size" select="$points.per.em"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$cwidth.in.points div 72.0 * $pixels.per.inch * $scale"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="html.width">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"/>
+      <xsl:when test="$width-units = '%'">
+        <xsl:value-of select="$width"/>
+      </xsl:when>
+      <xsl:when test="$width != ''">
+        <xsl:variable name="width.in.points">
+          <xsl:call-template name="length-in-points">
+            <xsl:with-param name="length" select="$width"/>
+            <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+            <xsl:with-param name="em.size" select="$points.per.em"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="round($width.in.points div 72.0 * $pixels.per.inch)"/>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="contentdepth">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"/>
+      <xsl:when test="@contentdepth">
+        <xsl:variable name="units">
+          <xsl:call-template name="length-units">
+            <xsl:with-param name="length" select="@contentdepth"/>
+          </xsl:call-template>
+        </xsl:variable>
+
+        <xsl:choose>
+          <xsl:when test="$units = '%'">
+            <xsl:variable name="cmagnitude">
+              <xsl:call-template name="length-magnitude">
+                <xsl:with-param name="length" select="@contentdepth"/>
+              </xsl:call-template>
+            </xsl:variable>
+            <xsl:value-of select="$intrinsicdepth * $cmagnitude div 100.0"/>
+            <xsl:text>px</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="length-spec">
+              <xsl:with-param name="length" select="@contentdepth"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$intrinsicdepth"/>
+        <xsl:text>px</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scaled.contentdepth">
+    <xsl:if test="$contentdepth != ''">
+      <xsl:variable name="cdepth.in.points">
+        <xsl:call-template name="length-in-points">
+          <xsl:with-param name="length" select="$contentdepth"/>
+          <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+          <xsl:with-param name="em.size" select="$points.per.em"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$cdepth.in.points div 72.0 * $pixels.per.inch * $scale"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="depth-units">
+    <xsl:if test="@depth">
+      <xsl:call-template name="length-units">
+        <xsl:with-param name="length" select="@depth"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="depth">
+    <xsl:if test="@depth">
+      <xsl:choose>
+        <xsl:when test="$depth-units = '%'">
+          <xsl:value-of select="@depth"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="length-spec">
+            <xsl:with-param name="length" select="@depth"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="html.depth">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"/>
+      <xsl:when test="$depth-units = '%'">
+        <xsl:value-of select="$depth"/>
+      </xsl:when>
+      <xsl:when test="@depth and @depth != ''">
+        <xsl:variable name="depth.in.points">
+          <xsl:call-template name="length-in-points">
+            <xsl:with-param name="length" select="$depth"/>
+            <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+            <xsl:with-param name="em.size" select="$points.per.em"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="round($depth.in.points div 72.0 * $pixels.per.inch)"/>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="viewport">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
+      <xsl:when test="local-name(.) = 'inlinegraphic'                       or ancestor::inlinemediaobject                       or ancestor::inlineequation">0</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$make.graphic.viewport"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+<!--
+  <xsl:message>=====================================
+scale: <xsl:value-of select="$scale"/>, <xsl:value-of select="$scalefit"/>
+@contentwidth <xsl:value-of select="@contentwidth"/>
+$contentwidth <xsl:value-of select="$contentwidth"/>
+scaled.contentwidth: <xsl:value-of select="$scaled.contentwidth"/>
+@width: <xsl:value-of select="@width"/>
+width: <xsl:value-of select="$width"/>
+html.width: <xsl:value-of select="$html.width"/>
+@contentdepth <xsl:value-of select="@contentdepth"/>
+$contentdepth <xsl:value-of select="$contentdepth"/>
+scaled.contentdepth: <xsl:value-of select="$scaled.contentdepth"/>
+@depth: <xsl:value-of select="@depth"/>
+depth: <xsl:value-of select="$depth"/>
+html.depth: <xsl:value-of select="$html.depth"/>
+align: <xsl:value-of select="@align"/>
+valign: <xsl:value-of select="@valign"/></xsl:message>
+-->
+
+  <xsl:variable name="scaled" select="@width|@depth|@contentwidth|@contentdepth                         |@scale|@scalefit"/>
+
+  <xsl:variable name="img">
+    <xsl:choose>
+      <xsl:when test="@format = 'SVG'">
+        <object type="image/svg+xml">
+	  <xsl:attribute name="data">
+	    <xsl:choose>
+	      <xsl:when test="$img.src.path != '' and                            $tag = 'img' and       not(starts-with($output_filename, '/')) and       not(contains($output_filename, '://'))">
+		<xsl:value-of select="$img.src.path"/>
+	      </xsl:when>
+           </xsl:choose>
+	   <xsl:value-of select="$output_filename"/>
+	  </xsl:attribute>
+	  <xsl:call-template name="process.image.attributes">
+            <!--xsl:with-param name="alt" select="$alt"/ there's no alt here-->
+            <xsl:with-param name="html.depth" select="$html.depth"/>
+            <xsl:with-param name="html.width" select="$html.width"/>
+            <xsl:with-param name="longdesc" select="$longdesc"/>
+            <xsl:with-param name="scale" select="$scale"/>
+            <xsl:with-param name="scalefit" select="$scalefit"/>
+            <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
+            <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
+            <xsl:with-param name="viewport" select="$viewport"/>
+          </xsl:call-template>
+          <xsl:if test="@align">
+            <xsl:attribute name="style"><xsl:text>text-align: </xsl:text>
+                <xsl:choose>
+                  <xsl:when test="@align = 'center'">middle</xsl:when>
+                  <xsl:otherwise>
+                    <xsl:value-of select="@align"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:if test="$use.embed.for.svg != 0">
+	    <embed type="image/svg+xml">
+	      <xsl:attribute name="src">
+		<xsl:choose>
+                  <xsl:when test="$img.src.path != '' and       $tag = 'img' and       not(starts-with($output_filename, '/')) and       not(contains($output_filename, '://'))">
+		    <xsl:value-of select="$img.src.path"/>
+                  </xsl:when>
+		</xsl:choose>
+		<xsl:value-of select="$output_filename"/>
+              </xsl:attribute>
+              <xsl:call-template name="process.image.attributes">
+                <!--xsl:with-param name="alt" select="$alt"/ there's no alt here -->
+                <xsl:with-param name="html.depth" select="$html.depth"/>
+                <xsl:with-param name="html.width" select="$html.width"/>
+                <xsl:with-param name="longdesc" select="$longdesc"/>
+                <xsl:with-param name="scale" select="$scale"/>
+                <xsl:with-param name="scalefit" select="$scalefit"/>
+                <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
+                <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
+                <xsl:with-param name="viewport" select="$viewport"/>
+              </xsl:call-template>
+            </embed>
+          </xsl:if>
+        </object>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$tag}" namespace="http://www.w3.org/1999/xhtml">
+         <xsl:if test="$tag = 'img' and ../../self::imageobjectco">
+           <xsl:variable name="mapname">
+             <xsl:call-template name="object.id">
+               <xsl:with-param name="object" select="../../areaspec"/>
+             </xsl:call-template>
+           </xsl:variable>
+           <xsl:choose>
+             <xsl:when test="$scaled">
+              <!-- It might be possible to handle some scaling; needs -->
+              <!-- more investigation -->
+              <xsl:message>
+                <xsl:text>Warning: imagemaps not supported </xsl:text>
+                <xsl:text>on scaled images</xsl:text>
+              </xsl:message>
+             </xsl:when>
+             <xsl:otherwise>
+              <xsl:attribute name="border">0</xsl:attribute>
+              <xsl:attribute name="usemap">
+                <xsl:value-of select="concat('#', $mapname)"/>
+              </xsl:attribute>
+             </xsl:otherwise>
+           </xsl:choose>
+         </xsl:if>
+
+          <xsl:attribute name="src">
+           <xsl:choose>
+             <xsl:when test="$img.src.path != '' and                            $tag = 'img' and                              not(starts-with($output_filename, '/')) and                            not(contains($output_filename, '://'))">
+               <xsl:value-of select="$img.src.path"/>
+             </xsl:when>
+           </xsl:choose>
+            <xsl:value-of select="$output_filename"/>
+          </xsl:attribute>
+
+          <xsl:if test="@align">
+            <xsl:attribute name="style"><xsl:text>text-align: </xsl:text>
+              <xsl:choose>
+                <xsl:when test="@align = 'center'">middle</xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="@align"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+          </xsl:if>
+
+          <xsl:call-template name="process.image.attributes">
+            <xsl:with-param name="alt">
+              <xsl:choose>
+                <xsl:when test="$alt != ''">
+                  <xsl:copy-of select="$alt"/>
+                </xsl:when>
+                <xsl:when test="ancestor::figure">
+                  <xsl:value-of select="normalize-space(ancestor::figure/title)"/>
+                </xsl:when>
+              </xsl:choose>
+            </xsl:with-param>
+            <xsl:with-param name="html.depth" select="$html.depth"/>
+            <xsl:with-param name="html.width" select="$html.width"/>
+            <xsl:with-param name="longdesc" select="$longdesc"/>
+            <xsl:with-param name="scale" select="$scale"/>
+            <xsl:with-param name="scalefit" select="$scalefit"/>
+            <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
+            <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
+            <xsl:with-param name="viewport" select="$viewport"/>
+          </xsl:call-template>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="bgcolor">
+    <xsl:call-template name="pi.dbhtml_background-color">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="use.viewport" select="0"/>
+
+  <xsl:choose>
+    <xsl:when test="$use.viewport">
+      <table border="{$table.border.off}">
+        <xsl:if test="$div.element != 'section'">
+          <xsl:attribute name="summary">manufactured viewport for HTML img</xsl:attribute>
+        </xsl:if>
+        <xsl:if test="$css.decoration != ''">
+          <xsl:attribute name="style">cellpadding: 0; cellspacing: 0;</xsl:attribute>
+        </xsl:if>
+        <xsl:if test="$html.width != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="$html.width"/>
+          </xsl:attribute>
+        </xsl:if>
+        <tr>
+          <xsl:if test="$html.depth != '' and $depth-units != '%'">
+            <!-- don't do this for percentages because browsers get confused -->
+            <xsl:choose>
+              <xsl:when test="$css.decoration != 0">
+                <xsl:attribute name="style">
+                  <xsl:text>height: </xsl:text>
+                  <xsl:value-of select="$html.depth"/>
+                  <xsl:text>px</xsl:text>
+                </xsl:attribute>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:attribute name="height">
+                  <xsl:value-of select="$html.depth"/>
+                </xsl:attribute>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:if>
+          <td>
+            <xsl:if test="$bgcolor != ''">
+              <xsl:choose>
+                <xsl:when test="$css.decoration != 0">
+                  <xsl:attribute name="style">
+                    <xsl:text>background-color: </xsl:text>
+                    <xsl:value-of select="$bgcolor"/>
+                  </xsl:attribute>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:attribute name="style"><xsl:text>background-color: </xsl:text>
+                    <xsl:value-of select="$bgcolor"/>
+                  </xsl:attribute>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:if>
+            <xsl:if test="@align">
+              <xsl:attribute name="style"><xsl:text>text-align: </xsl:text>
+                <xsl:value-of select="@align"/>
+              </xsl:attribute>
+            </xsl:if>
+            <xsl:if test="@valign">
+              <xsl:attribute name="valign">
+                <xsl:value-of select="@valign"/>
+              </xsl:attribute>
+            </xsl:if>
+            <xsl:copy-of select="$img"/>
+          </td>
+        </tr>
+      </table>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$img"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:if test="$tag = 'img' and ../../self::imageobjectco and not($scaled)">
+    <xsl:variable name="mapname">
+      <xsl:call-template name="object.id">
+        <xsl:with-param name="object" select="../../areaspec"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <map name="{$mapname}">
+      <xsl:for-each select="../../areaspec//area">
+        <xsl:variable name="units">
+          <xsl:choose>
+            <xsl:when test="@units = 'other' and @otherunits">
+              <xsl:value-of select="@otherunits"/>
+            </xsl:when>
+            <xsl:when test="@units">
+              <xsl:value-of select="@units"/>
+            </xsl:when>
+            <!-- areaspec|areaset/area -->
+            <xsl:when test="../@units = 'other' and ../@otherunits">
+              <xsl:value-of select="../@otherunits"/>
+            </xsl:when>
+            <xsl:when test="../@units">
+              <xsl:value-of select="../@units"/>
+            </xsl:when>
+            <!-- areaspec/areaset/area -->
+            <xsl:when test="../../@units = 'other' and ../../@otherunits">
+              <xsl:value-of select="../@otherunits"/>
+            </xsl:when>
+            <xsl:when test="../../@units">
+              <xsl:value-of select="../../@units"/>
+            </xsl:when>
+            <xsl:otherwise>calspair</xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+ 
+        <xsl:choose>
+          <xsl:when test="$units = 'calspair' or                           $units = 'imagemap'">
+            <xsl:variable name="coords" select="normalize-space(@coords)"/>
+
+            <area shape="rect">
+              <xsl:variable name="linkends">
+                <xsl:choose>
+                  <xsl:when test="@linkends">
+                    <xsl:value-of select="normalize-space(@linkends)"/>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:value-of select="normalize-space(../@linkends)"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:variable>
+ 
+              <xsl:variable name="href">
+                <xsl:choose>
+                  <xsl:when test="@xlink:href">
+                    <xsl:value-of select="@xlink:href"/>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:value-of select="../@xlink:href"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:variable>
+ 
+              <xsl:choose>
+                <xsl:when test="$linkends != ''">
+                  <xsl:variable name="linkend">
+                    <xsl:choose>
+                      <xsl:when test="contains($linkends, ' ')">
+                        <xsl:value-of select="substring-before($linkends, ' ')"/>
+                      </xsl:when>
+                      <xsl:otherwise>
+                        <xsl:value-of select="$linkends"/>
+                      </xsl:otherwise>
+                    </xsl:choose>
+                  </xsl:variable>
+                  
+                  <xsl:variable name="target" select="key('id', $linkend)[1]"/>
+                 
+                  <xsl:if test="$target">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$target"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                  </xsl:if>
+                </xsl:when>
+                <xsl:when test="$href != ''">
+                  <xsl:attribute name="href">
+                    <xsl:value-of select="$href"/>
+                  </xsl:attribute>
+                </xsl:when>
+              </xsl:choose>
+ 
+              <xsl:if test="alt">
+                <xsl:attribute name="alt">
+                  <xsl:value-of select="alt[1]"/>
+                </xsl:attribute>
+              </xsl:if>
+ 
+              <xsl:attribute name="coords">
+                <xsl:choose>
+                  <xsl:when test="$units = 'calspair'">
+
+                    <xsl:variable name="p1" select="substring-before($coords, ' ')"/>
+                    <xsl:variable name="p2" select="substring-after($coords, ' ')"/>
+         
+                    <xsl:variable name="x1" select="substring-before($p1,',')"/>
+                    <xsl:variable name="y1" select="substring-after($p1,',')"/>
+                    <xsl:variable name="x2" select="substring-before($p2,',')"/>
+                    <xsl:variable name="y2" select="substring-after($p2,',')"/>
+         
+                    <xsl:variable name="x1p" select="$x1 div 100.0"/>
+                    <xsl:variable name="y1p" select="$y1 div 100.0"/>
+                    <xsl:variable name="x2p" select="$x2 div 100.0"/>
+                    <xsl:variable name="y2p" select="$y2 div 100.0"/>
+         
+         <!--
+                    <xsl:message>
+                      <xsl:text>units: </xsl:text>
+                      <xsl:value-of select="$units"/>
+                      <xsl:text> </xsl:text>
+                      <xsl:value-of select="$x1p"/><xsl:text>, </xsl:text>
+                      <xsl:value-of select="$y1p"/><xsl:text>, </xsl:text>
+                      <xsl:value-of select="$x2p"/><xsl:text>, </xsl:text>
+                      <xsl:value-of select="$y2p"/><xsl:text>, </xsl:text>
+                    </xsl:message>
+         
+                    <xsl:message>
+                      <xsl:text>      </xsl:text>
+                      <xsl:value-of select="$intrinsicwidth"/>
+                      <xsl:text>, </xsl:text>
+                      <xsl:value-of select="$intrinsicdepth"/>
+                    </xsl:message>
+         
+                    <xsl:message>
+                      <xsl:text>      </xsl:text>
+                      <xsl:value-of select="$units"/>
+                      <xsl:text> </xsl:text>
+                      <xsl:value-of 
+                            select="round($x1p * $intrinsicwidth div 100.0)"/>
+                      <xsl:text>,</xsl:text>
+                      <xsl:value-of select="round($intrinsicdepth
+                                       - ($y2p * $intrinsicdepth div 100.0))"/>
+                      <xsl:text>,</xsl:text>
+                      <xsl:value-of select="round($x2p * 
+                                            $intrinsicwidth div 100.0)"/>
+                      <xsl:text>,</xsl:text>
+                      <xsl:value-of select="round($intrinsicdepth
+                                       - ($y1p * $intrinsicdepth div 100.0))"/>
+                    </xsl:message>
+         -->
+                    <xsl:value-of select="round($x1p * $intrinsicwidth div 100.0)"/>
+                    <xsl:text>,</xsl:text>
+                    <xsl:value-of select="round($intrinsicdepth                                         - ($y2p * $intrinsicdepth div 100.0))"/>
+                    <xsl:text>,</xsl:text>
+                    <xsl:value-of select="round($x2p * $intrinsicwidth div 100.0)"/>
+                    <xsl:text>,</xsl:text>
+                    <xsl:value-of select="round($intrinsicdepth                                       - ($y1p * $intrinsicdepth div 100.0))"/>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:copy-of select="$coords"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:attribute>
+            </area>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message>
+              <xsl:text>Warning: only calspair or </xsl:text>
+              <xsl:text>otherunits='imagemap' supported </xsl:text>
+              <xsl:text>in imageobjectco</xsl:text>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:for-each>
+    </map>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.image.attributes">
+  <xsl:param name="alt"/>
+  <xsl:param name="html.width"/>
+  <xsl:param name="html.depth"/>
+  <xsl:param name="longdesc"/>
+  <xsl:param name="scale"/>
+  <xsl:param name="scalefit"/>
+  <xsl:param name="scaled.contentdepth"/>
+  <xsl:param name="scaled.contentwidth"/>
+  <xsl:param name="viewport"/>
+
+  <xsl:choose>
+    <xsl:when test="@contentwidth or @contentdepth">
+      <!-- ignore @width/@depth, @scale, and @scalefit if specified -->
+      <xsl:if test="@contentwidth and $scaled.contentwidth != ''">
+        <xsl:attribute name="width">
+          <xsl:value-of select="$scaled.contentwidth"/>
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:if test="@contentdepth and $scaled.contentdepth != ''">
+        <xsl:attribute name="height">
+          <xsl:value-of select="$scaled.contentdepth"/>
+        </xsl:attribute>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="number($scale) != 1.0">
+      <!-- scaling is always uniform, so we only have to specify one dimension -->
+      <!-- ignore @scalefit if specified -->
+      <xsl:attribute name="width">
+        <xsl:value-of select="$scaled.contentwidth"/>
+      </xsl:attribute>
+    </xsl:when>
+
+    <xsl:when test="$scalefit != 0">
+      <xsl:choose>
+        <xsl:when test="contains($html.width, '%')">
+          <xsl:choose>
+            <xsl:when test="$viewport != 0">
+              <!-- The *viewport* will be scaled, so use 100% here! -->
+              <xsl:attribute name="width">
+                <xsl:value-of select="'100%'"/>
+              </xsl:attribute>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:attribute name="width">
+                <xsl:value-of select="$html.width"/>
+              </xsl:attribute>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+
+        <xsl:when test="contains($html.depth, '%')">
+          <!-- HTML doesn't deal with this case very well...do nothing -->
+        </xsl:when>
+
+        <xsl:when test="$scaled.contentwidth != '' and $html.width != ''                         and $scaled.contentdepth != '' and $html.depth != ''">
+          <!-- scalefit should not be anamorphic; figure out which direction -->
+          <!-- has the limiting scale factor and scale in that direction -->
+          <xsl:choose>
+            <xsl:when test="$html.width div $scaled.contentwidth &gt;                             $html.depth div $scaled.contentdepth">
+              <xsl:attribute name="height">
+                <xsl:value-of select="$html.depth"/>
+              </xsl:attribute>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:attribute name="width">
+                <xsl:value-of select="$html.width"/>
+              </xsl:attribute>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+
+        <xsl:when test="$scaled.contentwidth != '' and $html.width != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="$html.width"/>
+          </xsl:attribute>
+        </xsl:when>
+
+        <xsl:when test="$scaled.contentdepth != '' and $html.depth != ''">
+          <xsl:attribute name="height">
+            <xsl:value-of select="$html.depth"/>
+          </xsl:attribute>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:if test="$alt != ''">
+    <xsl:attribute name="alt">
+      <xsl:value-of select="normalize-space($alt)"/>
+    </xsl:attribute>
+  </xsl:if>
+
+  <!-- Turn off longdesc attribute since not supported by browsers
+  <xsl:if test="$longdesc != ''">
+    <xsl:attribute name="longdesc">
+      <xsl:value-of select="$longdesc"/>
+    </xsl:attribute>
+  </xsl:if>
+  -->
+
+  <xsl:if test="@align and $viewport = 0">
+    <xsl:attribute name="style"><xsl:text>text-align: </xsl:text>
+      <xsl:choose>
+        <xsl:when test="@align = 'center'">middle</xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="@align"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="graphic">
+  <xsl:choose>
+    <xsl:when test="parent::inlineequation">
+      <span>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:call-template name="anchor"/>
+        <xsl:call-template name="process.image"/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="@align">
+          <xsl:attribute name="style"><xsl:text>text-align: </xsl:text>
+            <xsl:value-of select="@align"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:call-template name="anchor"/>
+        <xsl:call-template name="process.image"/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="inlinegraphic">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="@fileref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:choose>
+    <xsl:when test="@format='linespecific'">
+      <xsl:choose>
+        <xsl:when test="$use.extensions != '0'                         and $textinsert.extension != '0'">
+          <xsl:choose>
+            <xsl:when test="element-available('stext:insertfile')">
+              <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/>
+            </xsl:when>
+            <xsl:when test="element-available('xtext:insertfile')">
+              <xtext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message terminate="yes">
+                <xsl:text>No insertfile extension available.</xsl:text>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+	  <xsl:message terminate="yes">
+	    <xsl:text>Cannot insert </xsl:text><xsl:value-of select="$filename"/>
+	    <xsl:text>. Check use.extensions and textinsert.extension parameters.</xsl:text> 
+	  </xsl:message>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process.image"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="mediaobject|mediaobjectco">
+
+  <xsl:variable name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject                      |textobject"/>
+
+  <xsl:variable name="object.index">
+    <xsl:call-template name="select.mediaobject.index">
+      <xsl:with-param name="olist" select="$olist"/>
+      <xsl:with-param name="count" select="1"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="object" select="$olist[position() = $object.index]"/>
+
+  <xsl:variable name="align">
+    <xsl:value-of select="$object/descendant::imagedata[@align][1]/@align"/>
+  </xsl:variable>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:if test="$align != '' ">
+      <xsl:attribute name="style"><xsl:text>text-align: </xsl:text>
+        <xsl:value-of select="$align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:apply-templates select="$object"/>
+    <xsl:apply-templates select="caption"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="inlinemediaobject">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="select.mediaobject"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="programlisting/inlinemediaobject                      |screen/inlinemediaobject" priority="2">
+  <!-- the additional span causes problems in some cases -->
+  <xsl:call-template name="select.mediaobject"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="imageobjectco">
+  <xsl:call-template name="anchor"/>
+  <xsl:choose>
+    <!-- select one imageobject? -->
+    <xsl:when test="$use.role.for.mediaobject != 0 and                     count(imageobject) &gt; 1 and                     imageobject[@role]">
+      <xsl:variable name="olist" select="imageobject"/>
+    
+      <xsl:variable name="object.index">
+        <xsl:call-template name="select.mediaobject.index">
+          <xsl:with-param name="olist" select="$olist"/>
+          <xsl:with-param name="count" select="1"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:variable name="object" select="$olist[position() = $object.index]"/>
+    
+      <xsl:apply-templates select="$object"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- otherwise process them all -->
+      <xsl:apply-templates select="imageobject"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:apply-templates select="calloutlist"/>
+
+</xsl:template>
+
+<xsl:template match="imageobject">
+  <xsl:apply-templates select="imagedata"/>
+</xsl:template>
+
+<xsl:template match="imagedata">
+  <xsl:variable name="filename">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <!-- Handle MathML and SVG markup in imagedata -->
+    <xsl:when xmlns:mml="http://www.w3.org/1998/Math/MathML" test="mml:*">
+      <xsl:apply-templates/>
+    </xsl:when>
+    
+    <xsl:when xmlns:svg="http://www.w3.org/2000/svg" test="svg:*">
+      <xsl:apply-templates/>
+    </xsl:when>
+
+    <xsl:when test="@format='linespecific'">
+      <xsl:choose>
+        <xsl:when test="$use.extensions != '0'                         and $textinsert.extension != '0'">
+          <xsl:choose>
+            <xsl:when test="element-available('stext:insertfile')">
+              <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/>
+            </xsl:when>
+            <xsl:when test="element-available('xtext:insertfile')">
+              <xtext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message terminate="yes">
+                <xsl:text>No insertfile extension available.</xsl:text>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" href="{$filename}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="longdesc.uri">
+        <xsl:call-template name="longdesc.uri">
+          <xsl:with-param name="mediaobject" select="ancestor::imageobject/parent::*"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="phrases" select="ancestor::mediaobject/textobject[phrase]                             |ancestor::inlinemediaobject/textobject[phrase]                             |ancestor::mediaobjectco/textobject[phrase]"/>
+
+      <xsl:call-template name="process.image">
+        <xsl:with-param name="alt">
+          <xsl:apply-templates select="$phrases[not(@role) or @role!='tex'][1]"/>
+        </xsl:with-param>
+        <xsl:with-param name="longdesc">
+          <xsl:call-template name="write.longdesc">
+            <xsl:with-param name="mediaobject" select="ancestor::imageobject/parent::*"/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+
+      <xsl:if test="$html.longdesc != 0 and $html.longdesc.link != 0                     and ancestor::imageobject/parent::*/textobject[not(phrase)]">
+        <xsl:call-template name="longdesc.link">
+          <xsl:with-param name="longdesc.uri" select="$longdesc.uri"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="longdesc.uri">
+  <xsl:param name="mediaobject" select="."/>
+  <xsl:if test="$html.longdesc">
+    <xsl:if test="$mediaobject/textobject[not(phrase)]">
+      <xsl:variable name="dbhtml.dir">
+        <xsl:call-template name="dbhtml-dir"/>
+      </xsl:variable>
+      <xsl:variable name="filename">
+        <xsl:call-template name="make-relative-filename">
+          <xsl:with-param name="base.dir">
+            <xsl:choose>
+              <xsl:when test="$dbhtml.dir != ''">
+                <xsl:value-of select="$dbhtml.dir"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="$chunk.base.dir"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+          <xsl:with-param name="base.name">
+            <xsl:choose>
+              <xsl:when test="                 $mediaobject/@*[local-name() = 'id']                 and not($use.id.as.filename = 0)">
+                <!-- * if this mediaobject has an ID, then we use the -->
+                <!-- * value of that ID as basename for the "longdesc" -->
+                <!-- * file (that is, without prepending an "ld-" too it) -->
+                <xsl:value-of select="$mediaobject/@*[local-name() = 'id']"/>
+                <xsl:value-of select="$html.ext"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <!-- * otherwise, if this mediaobject does not have an -->
+                <!-- * ID, then we generate an ID... -->
+                <xsl:variable name="image-id">
+                  <xsl:call-template name="object.id">
+                    <xsl:with-param name="object" select="$mediaobject"/>
+                  </xsl:call-template>
+                </xsl:variable>
+                <!-- * ...and then we take that generated ID, prepend an -->
+                <!-- * "ld-" to it, and use that as the basename for the file -->
+                <xsl:value-of select="concat('ld-',$image-id,$html.ext)"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:value-of select="$filename"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="write.longdesc">
+  <xsl:param name="mediaobject" select="."/>
+  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
+    <xsl:variable name="filename">
+      <xsl:call-template name="longdesc.uri">
+        <xsl:with-param name="mediaobject" select="$mediaobject"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:value-of select="$filename"/>
+
+    <xsl:call-template name="write.chunk">
+      <xsl:with-param name="filename" select="$filename"/>
+      <xsl:with-param name="quiet" select="$chunk.quietly"/>
+      <xsl:with-param name="content">
+      <xsl:call-template name="user.preroot"/>
+        <html>
+          <head>
+            <xsl:call-template name="system.head.content"/>
+            <xsl:call-template name="head.content">
+              <xsl:with-param name="title" select="'Long Description'"/>
+            </xsl:call-template>
+            <xsl:call-template name="user.head.content"/>
+          </head>
+          <body>
+            <xsl:call-template name="body.attributes"/>
+            <xsl:for-each select="$mediaobject/textobject[not(phrase)]">
+              <xsl:apply-templates select="./*"/>
+            </xsl:for-each>
+          </body>
+        </html>
+        <xsl:value-of select="$chunk.append"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="longdesc.link">
+  <xsl:param name="longdesc.uri" select="''"/>
+
+  <xsl:variable name="this.uri">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+      <xsl:with-param name="base.name">
+        <xsl:call-template name="href.target.uri"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="href.to">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$longdesc.uri"/>
+      <xsl:with-param name="uriB" select="$this.uri"/>
+      <xsl:with-param name="return" select="'A'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <div class="longdesc-link" align="{$direction.align.end}">
+    <br clear="all"/>
+    <span class="longdesc-link">
+      <xsl:text>[</xsl:text>
+      <a href="{$href.to}" target="longdesc">D</a>
+      <xsl:text>]</xsl:text>
+    </span>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="videoobject">
+  <xsl:apply-templates select="videodata"/>
+</xsl:template>
+
+<xsl:template match="videodata">
+  <xsl:call-template name="process.image">
+    <xsl:with-param name="tag" select="'embed'"/>
+    <xsl:with-param name="alt">
+      <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="audioobject">
+  <xsl:apply-templates select="audiodata"/>
+</xsl:template>
+
+<xsl:template match="audiodata">
+  <xsl:call-template name="process.image">
+    <xsl:with-param name="tag" select="'embed'"/>
+    <xsl:with-param name="alt">
+      <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="textobject">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="textdata">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="@fileref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="encoding">
+    <xsl:choose>
+      <xsl:when test="@encoding">
+        <xsl:value-of select="@encoding"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$textdata.default.encoding"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$use.extensions != '0'                     and $textinsert.extension != '0'">
+      <xsl:choose>
+        <xsl:when test="element-available('stext:insertfile')">
+          <stext:insertfile href="{$filename}" encoding="{$encoding}"/>
+        </xsl:when>
+        <xsl:when test="element-available('xtext:insertfile')">
+          <xtext:insertfile href="{$filename}"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message terminate="yes">
+            <xsl:text>No insertfile extension available.</xsl:text>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+	<xsl:text>Cannot insert </xsl:text><xsl:value-of select="$filename"/>
+	<xsl:text>. Check use.extensions and textinsert.extension parameters.</xsl:text> 
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="caption">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="@align = 'right' or @align = 'left' or @align='center'">
+      <xsl:attribute name="style"><xsl:text>text-align: </xsl:text><xsl:value-of select="@align"/></xsl:attribute>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- "Support" for SVG -->
+
+<xsl:template xmlns:svg="http://www.w3.org/2000/svg" match="svg:*">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+
+<!-- The following works sometimes, but needs to take into account
+             1. When there is no /*/@xml:base
+             2. When the chunks are going somewhere else
+<xsl:variable name="relpath">
+  <xsl:call-template name="relative-uri">
+    <xsl:with-param name="filename" select="@fileref"/>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:choose>
+  <xsl:when test="/*/@xml:base
+                  and starts-with($relpath,/*/@xml:base)">
+    <xsl:value-of select="substring-after($relpath,/*/@xml:base)"/>
+  </xsl:when>
+  <xsl:otherwise>
+    <xsl:value-of select="@fileref"/>
+  </xsl:otherwise>
+</xsl:choose>
+<xsl:value-of select="@fileref"/>
+      </xsl:when>
+-->
+<!-- Resolve xml:base attributes -->
+<xsl:template match="@fileref">
+  <!-- need a check for absolute urls -->
+  <xsl:choose>
+    <xsl:when test="contains(., ':')">
+      <!-- it has a uri scheme so it is an absolute uri -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:when test="$keep.relative.image.uris != 0">
+      <!-- leave it alone -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- its a relative uri that needs xml:base processing -->
+      <xsl:call-template name="relative-uri">
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/highlight.xsl b/applications/content/template/docbook/xhtml-1_1/highlight.xsl
new file mode 100644
index 0000000..8c64600
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/highlight.xsl
@@ -0,0 +1,88 @@
+<?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:xslthl="http://xslthl.sf.net" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xslthl" version="1.0">
+  <!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     and other information.
+
+     ******************************************************************** -->
+  <xsl:import href="../highlighting/common.xsl"/>
+  <xsl:template match="xslthl:keyword" mode="xslthl">
+    <strong class="hl-keyword">
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:string" mode="xslthl">
+    <strong class="hl-string">
+      <em style="color:red">
+        <xsl:apply-templates mode="xslthl"/>
+      </em>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:comment" mode="xslthl">
+    <em class="hl-comment" style="color: silver">
+      <xsl:apply-templates mode="xslthl"/>
+    </em>
+  </xsl:template>
+  <xsl:template match="xslthl:directive" mode="xslthl">
+    <span class="hl-directive" style="color: maroon">
+      <xsl:apply-templates mode="xslthl"/>
+    </span>
+  </xsl:template>
+  <xsl:template match="xslthl:tag" mode="xslthl">
+    <strong class="hl-tag" style="color: #000096">
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:attribute" mode="xslthl">
+    <span class="hl-attribute" style="color: #F5844C">
+      <xsl:apply-templates mode="xslthl"/>
+    </span>
+  </xsl:template>
+  <xsl:template match="xslthl:value" mode="xslthl">
+    <span class="hl-value" style="color: #993300">
+      <xsl:apply-templates mode="xslthl"/>
+    </span>
+  </xsl:template>
+  <xsl:template match="xslthl:html" mode="xslthl">
+    <strong>
+      <em style="color: red">
+        <xsl:apply-templates mode="xslthl"/>
+      </em>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:xslt" mode="xslthl">
+    <strong style="color: #0066FF">
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+  <!-- Not emitted since XSLTHL 2.0 -->
+  <xsl:template match="xslthl:section" mode="xslthl">
+    <strong>
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:number" mode="xslthl">
+    <span class="hl-number">
+      <xsl:apply-templates mode="xslthl"/>
+    </span>
+  </xsl:template>
+  <xsl:template match="xslthl:annotation" mode="xslthl">
+    <em>
+      <span class="hl-annotation" style="color: gray">
+        <xsl:apply-templates mode="xslthl"/>
+      </span>
+    </em>
+  </xsl:template>
+  <!-- Not sure which element will be in final XSLTHL 2.0 -->
+  <xsl:template match="xslthl:doccomment|xslthl:doctype" mode="xslthl">
+    <strong class="hl-tag" style="color: blue">
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/html-rtf.xsl b/applications/content/template/docbook/xhtml-1_1/html-rtf.xsl
new file mode 100644
index 0000000..a3e2fa8
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/html-rtf.xsl
@@ -0,0 +1,321 @@
+<?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:exsl="http://exslt.org/common" xmlns:set="http://exslt.org/sets" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="exsl set" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This module contains templates that match against HTML nodes. It is used
+     to post-process result tree fragments for some sorts of cleanup.
+     These templates can only ever be fired by a processor that supports
+     exslt:node-set(). -->
+
+<!-- ==================================================================== -->
+
+<!-- insert.html.p mode templates insert a particular RTF at the beginning
+     of the first paragraph in the primary RTF. -->
+
+<xsl:template match="/" mode="insert.html.p">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:apply-templates mode="insert.html.p">
+    <xsl:with-param name="mark" select="$mark"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.html.p">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="insert.html.p">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml" match="html:p|p" mode="insert.html.p">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:if test="not(preceding::p|preceding::html:p)">
+      <xsl:copy-of select="$mark"/>
+    </xsl:if>
+    <xsl:apply-templates mode="insert.html.p">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="insert.html.p">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- insert.html.text mode templates insert a particular RTF at the beginning
+     of the first text-node in the primary RTF. -->
+
+<xsl:template match="/" mode="insert.html.text">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:apply-templates mode="insert.html.text">
+    <xsl:with-param name="mark" select="$mark"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.html.text">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="insert.html.text">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="insert.html.text">
+  <xsl:param name="mark" select="'?'"/>
+
+  <xsl:if test="not(preceding::text())">
+    <xsl:copy-of select="$mark"/>
+  </xsl:if>
+
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="processing-instruction()|comment()" mode="insert.html.text">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- unwrap.p mode templates remove blocks from HTML p elements (and
+     other places where blocks aren't allowed) -->
+
+<xsl:template name="unwrap.p">
+  <xsl:param name="p"/>
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0                     and function-available('set:leading')                     and function-available('set:trailing')">
+      <xsl:apply-templates select="exsl:node-set($p)" mode="unwrap.p"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$p"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml" match="html:p|p" mode="unwrap.p">
+  <!-- xmlns:html is necessary for the xhtml stylesheet case -->
+  <xsl:variable name="blocks" select="address|blockquote|div|hr|h1|h2|h3|h4|h5|h6                         |layer|p|pre|table|dl|menu|ol|ul|form                         |html:address|html:blockquote|html:div|html:hr                         |html:h1|html:h2|html:h3|html:h4|html:h5|html:h6                         |html:layer|html:p|html:pre|html:table|html:dl                         |html:menu|html:ol|html:ul|html:form"/>
+  <xsl:choose>
+    <xsl:when test="$blocks">
+      <xsl:call-template name="unwrap.p.nodes">
+        <xsl:with-param name="wrap" select="."/>
+        <xsl:with-param name="first" select="1"/>
+        <xsl:with-param name="nodes" select="node()"/>
+        <xsl:with-param name="blocks" select="$blocks"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy>
+        <xsl:copy-of select="@*"/>
+        <xsl:apply-templates mode="unwrap.p"/>
+      </xsl:copy>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="unwrap.p">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="unwrap.p"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="unwrap.p">
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template name="unwrap.p.nodes">
+  <xsl:param name="wrap" select="."/>
+  <xsl:param name="first" select="0"/>
+  <xsl:param name="nodes"/>
+  <xsl:param name="blocks"/>
+  <xsl:variable name="block" select="$blocks[1]"/>
+
+  <!-- This template should never get called if these functions aren't available -->
+  <!-- but this test is still necessary so that processors don't choke on the -->
+  <!-- function calls if they don't support the set: functions -->
+  <xsl:if test="function-available('set:leading')                 and function-available('set:trailing')">
+    <xsl:choose>
+      <xsl:when test="$blocks">
+        <xsl:variable name="leading" select="set:leading($nodes,$block)"/>
+        <xsl:variable name="trailing" select="set:trailing($nodes,$block)"/>
+
+        <xsl:if test="(($wrap/@id or $wrap/@xml:id)                          and $first = 1) or $leading">
+          <xsl:element name="{local-name($wrap)}" namespace="http://www.w3.org/1999/xhtml">
+            <xsl:for-each select="$wrap/@*">
+              <xsl:if test="$first != 0 or local-name(.) != 'id'">
+                <xsl:copy/>
+              </xsl:if>
+            </xsl:for-each>
+            <xsl:apply-templates select="$leading" mode="unwrap.p"/>
+          </xsl:element>
+        </xsl:if>
+
+        <xsl:apply-templates select="$block" mode="unwrap.p"/>
+
+        <xsl:if test="$trailing">
+          <xsl:call-template name="unwrap.p.nodes">
+            <xsl:with-param name="wrap" select="$wrap"/>
+            <xsl:with-param name="nodes" select="$trailing"/>
+            <xsl:with-param name="blocks" select="$blocks[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <xsl:if test="(($wrap/@id or $wrap/@xml:id) and $first = 1) or $nodes">
+          <xsl:element name="{local-name($wrap)}" namespace="http://www.w3.org/1999/xhtml">
+            <xsl:for-each select="$wrap/@*">
+              <xsl:if test="$first != 0 or local-name(.) != 'id'">
+                <xsl:copy/>
+              </xsl:if>
+            </xsl:for-each>
+            <xsl:apply-templates select="$nodes" mode="unwrap.p"/>
+          </xsl:element>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- make.verbatim.mode replaces spaces and newlines -->
+
+<xsl:template match="/" mode="make.verbatim.mode">
+  <xsl:apply-templates mode="make.verbatim.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="make.verbatim.mode">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="make.verbatim.mode"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="processing-instruction()|comment()" mode="make.verbatim.mode">
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="text()" mode="make.verbatim.mode">
+  <xsl:variable name="text" select="translate(., ' ', '&#160;')"/>
+
+  <xsl:choose>
+    <xsl:when test="not(contains($text, '&#10;'))">
+      <xsl:value-of select="$text"/>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:variable name="len" select="string-length($text)"/>
+
+      <xsl:choose>
+        <xsl:when test="$len = 1">
+          <br/><xsl:text>
+</xsl:text>
+        </xsl:when>
+
+        <xsl:otherwise>
+          <xsl:variable name="half" select="$len div 2"/>
+          <xsl:call-template name="make-verbatim-recursive">
+            <xsl:with-param name="text" select="substring($text, 1, $half)"/>
+          </xsl:call-template>
+          <xsl:call-template name="make-verbatim-recursive">
+            <xsl:with-param name="text" select="substring($text, ($half + 1), $len)"/>
+          </xsl:call-template>
+    	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="make-verbatim-recursive">
+  <xsl:param name="text" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="not(contains($text, '&#10;'))">
+      <xsl:value-of select="$text"/>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:variable name="len" select="string-length($text)"/>
+
+      <xsl:choose>
+        <xsl:when test="$len = 1">
+          <br/><xsl:text>
+</xsl:text>
+        </xsl:when>
+
+        <xsl:otherwise>
+    	  <xsl:variable name="half" select="$len div 2"/>
+          <xsl:call-template name="make-verbatim-recursive">
+    	    <xsl:with-param name="text" select="substring($text, 1, $half)"/>
+    	  </xsl:call-template>
+    	  <xsl:call-template name="make-verbatim-recursive">
+    	    <xsl:with-param name="text" select="substring($text, ($half + 1), $len)"/>
+    	  </xsl:call-template>
+    	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- remove.empty.div mode templates remove empty blocks -->
+
+<xsl:template name="remove.empty.div">
+  <xsl:param name="div"/>
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:apply-templates select="exsl:node-set($div)" mode="remove.empty.div"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$div"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml" match="html:p|p|html:div|div" mode="remove.empty.div">
+  <xsl:if test="node()">
+    <xsl:copy>
+      <xsl:copy-of select="@*"/>
+      <xsl:apply-templates mode="remove.empty.div"/>
+    </xsl:copy>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="*" mode="remove.empty.div">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="remove.empty.div"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="remove.empty.div">
+  <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/html.xsl b/applications/content/template/docbook/xhtml-1_1/html.xsl
new file mode 100644
index 0000000..6c2426a
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/html.xsl
@@ -0,0 +1,684 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- These variables set the align attribute value for HTML output based on
+     the writing-mode specified in the gentext file for the document's lang. -->
+
+<xsl:variable name="direction.align.start">
+  <xsl:choose>
+    <xsl:when test="starts-with($writing.mode, 'lr')">left</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'rl')">right</xsl:when>
+    <xsl:otherwise>left</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<xsl:variable name="direction.align.end">
+  <xsl:choose>
+    <xsl:when test="starts-with($writing.mode, 'lr')">right</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'rl')">left</xsl:when>
+    <xsl:otherwise>right</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<xsl:variable name="direction.mode">
+  <xsl:choose>
+    <xsl:when test="starts-with($writing.mode, 'lr')">ltr</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'rl')">rtl</xsl:when>
+    <xsl:otherwise>ltr</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<!-- Support switching to <section> for HTML5 stylesheet -->
+<!-- This is an internal variable that does not need to be set by a user -->
+<xsl:variable name="div.element">div</xsl:variable>
+<!-- Support turning off table  border with border="" for HTML5 -->
+<xsl:variable name="table.border.off">0</xsl:variable>
+
+<!-- The generate.html.title template is currently used for generating HTML -->
+<!-- "title" attributes for some inline elements only, but not for any -->
+<!-- block elements. It is called in eleven places in the inline.xsl -->
+<!-- file. But it's called by all the inline.* templates (e.g., -->
+<!-- inline.boldseq), which in turn are called by other (element) -->
+<!-- templates, so it results, currently, in supporting generation of the -->
+<!-- HTML "title" attribute for a total of about 92 elements. -->
+<!-- You can use mode="html.title.attribute" to get a title for -->
+<!-- an element specified by a param, including targets of cross references. -->
+<xsl:template name="generate.html.title">
+  <xsl:apply-templates select="." mode="html.title.attribute"/>
+</xsl:template>
+
+<xsl:template match="acronym|abbrev" mode="html.title.attribute">
+  <xsl:if test="alt">
+    <xsl:attribute name="title">
+      <xsl:value-of select="normalize-space(alt)"/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<!-- Generate a title attribute for the context node -->
+<!-- This may be the target of an xref -->
+<xsl:template match="*" mode="html.title.attribute">
+  <xsl:variable name="is.title">
+    <xsl:call-template name="gentext.template.exists">
+      <xsl:with-param name="context" select="'title'"/>
+      <xsl:with-param name="name" select="local-name(.)"/>
+      <xsl:with-param name="lang">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="is.title-numbered">
+    <xsl:call-template name="gentext.template.exists">
+      <xsl:with-param name="context" select="'title-numbered'"/>
+      <xsl:with-param name="name" select="local-name(.)"/>
+      <xsl:with-param name="lang">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="is.title-unnumbered">
+    <xsl:call-template name="gentext.template.exists">
+      <xsl:with-param name="context" select="'title-unnumbered'"/>
+      <xsl:with-param name="name" select="local-name(.)"/>
+      <xsl:with-param name="lang">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="has.title.markup">
+    <xsl:apply-templates select="." mode="title.markup">
+      <xsl:with-param name="verbose" select="0"/>
+    </xsl:apply-templates>
+  </xsl:variable>
+
+  <xsl:variable name="gentext.title">
+    <xsl:if test="$has.title.markup != '???TITLE???' and                   ($is.title != 0 or                   $is.title-numbered != 0 or                   $is.title-unnumbered != 0)">
+      <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string-length($gentext.title) != 0">
+      <xsl:attribute name="title">
+        <xsl:value-of select="$gentext.title"/>
+      </xsl:attribute>
+    </xsl:when>
+    <!-- Fall back to alt if available -->
+    <xsl:when test="alt">
+      <xsl:attribute name="title">
+        <xsl:value-of select="normalize-space(alt)"/>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="html.title.attribute">
+  <xsl:apply-templates select="question" mode="html.title.attribute"/>
+</xsl:template>
+
+<xsl:template match="question" mode="html.title.attribute">
+  <xsl:variable name="label.text">
+    <xsl:apply-templates select="." mode="qanda.label"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string-length($label.text) != 0">
+      <xsl:attribute name="title">
+        <xsl:value-of select="$label.text"/>
+      </xsl:attribute>
+    </xsl:when>
+    <!-- Fall back to alt if available -->
+    <xsl:when test="alt">
+      <xsl:attribute name="title">
+        <xsl:value-of select="normalize-space(alt)"/>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="dir">
+  <xsl:param name="inherit" select="0"/>
+
+  <xsl:variable name="dir">
+    <xsl:choose>
+      <xsl:when test="@dir">
+        <xsl:value-of select="@dir"/>
+      </xsl:when>
+      <xsl:when test="$inherit != 0">
+        <xsl:value-of select="ancestor::*/@dir[1]"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="$dir != ''">
+    <xsl:attribute name="dir">
+      <xsl:value-of select="$dir"/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="anchor">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="conditional" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$generate.id.attributes != 0">
+      <!-- No named anchors output when this param is set -->
+    </xsl:when>
+    <xsl:when test="$conditional = 0 or $node/@id or $node/@xml:id">
+      <a>
+        <xsl:attribute name="id">
+          <xsl:call-template name="object.id">
+            <xsl:with-param name="object" select="$node"/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </a>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="id.attribute">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="conditional" select="1"/>
+  <xsl:choose>
+    <xsl:when test="$generate.id.attributes = 0">
+      <!-- No id attributes when this param is zero -->
+    </xsl:when>
+    <xsl:when test="$conditional = 0 or $node/@id or $node/@xml:id">
+      <xsl:attribute name="id">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$node"/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="href.target.uri">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="href.target">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="href.target.with.base.dir">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="object" select="."/>
+  <xsl:if test="$manifest.in.base.dir = 0">
+    <xsl:value-of select="$chunk.base.dir"/>
+  </xsl:if>
+  <xsl:call-template name="href.target">
+    <xsl:with-param name="context" select="$context"/>
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="dingbat">
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:call-template name="dingbat.characters">
+    <xsl:with-param name="dingbat" select="$dingbat"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="dingbat.characters">
+  <!-- now that I'm using the real serializer, all that dingbat malarky -->
+  <!-- isn't necessary anymore... -->
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:choose>
+    <xsl:when test="$dingbat='bullet'">&#8226;</xsl:when>
+    <xsl:when test="$dingbat='copyright'">&#169;</xsl:when>
+    <xsl:when test="$dingbat='trademark'">&#8482;</xsl:when>
+    <xsl:when test="$dingbat='trade'">&#8482;</xsl:when>
+    <xsl:when test="$dingbat='registered'">&#174;</xsl:when>
+    <xsl:when test="$dingbat='service'">(SM)</xsl:when>
+    <xsl:when test="$dingbat='nbsp'">&#160;</xsl:when>
+    <xsl:when test="$dingbat='ldquo'">&#8220;</xsl:when>
+    <xsl:when test="$dingbat='rdquo'">&#8221;</xsl:when>
+    <xsl:when test="$dingbat='lsquo'">&#8216;</xsl:when>
+    <xsl:when test="$dingbat='rsquo'">&#8217;</xsl:when>
+    <xsl:when test="$dingbat='em-dash'">&#8212;</xsl:when>
+    <xsl:when test="$dingbat='mdash'">&#8212;</xsl:when>
+    <xsl:when test="$dingbat='en-dash'">&#8211;</xsl:when>
+    <xsl:when test="$dingbat='ndash'">&#8211;</xsl:when>
+    <xsl:otherwise>
+      <xsl:text>&#8226;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="id.warning">
+  <xsl:if test="$id.warnings != 0 and not(@id) and not(@xml:id) and parent::*">
+    <xsl:variable name="title">
+      <xsl:choose>
+        <xsl:when test="title">
+          <xsl:value-of select="title[1]"/>
+        </xsl:when>
+        <xsl:when test="substring(local-name(*[1]),                                   string-length(local-name(*[1])-3) = 'info')                         and *[1]/title">
+          <xsl:value-of select="*[1]/title[1]"/>
+        </xsl:when>
+        <xsl:when test="refmeta/refentrytitle">
+          <xsl:value-of select="refmeta/refentrytitle"/>
+        </xsl:when>
+        <xsl:when test="refnamediv/refname">
+          <xsl:value-of select="refnamediv/refname[1]"/>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:message>
+      <xsl:text>ID recommended on </xsl:text>
+      <xsl:value-of select="local-name(.)"/>
+      <xsl:if test="$title != ''">
+        <xsl:text>: </xsl:text>
+        <xsl:choose>
+          <xsl:when test="string-length($title) &gt; 40">
+            <xsl:value-of select="substring($title,1,40)"/>
+            <xsl:text>...</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$title"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:message>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.class.attribute">
+  <xsl:param name="class" select="local-name(.)"/>
+  <xsl:apply-templates select="." mode="class.attribute">
+    <xsl:with-param name="class" select="$class"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="class.attribute">
+  <xsl:param name="class" select="local-name(.)"/>
+  <!-- permit customization of class attributes -->
+  <!-- Use element name by default -->
+  <xsl:variable name="class.value">
+    <xsl:apply-templates select="." mode="class.value">
+      <xsl:with-param name="class" select="$class"/>
+    </xsl:apply-templates>
+  </xsl:variable>
+
+  <xsl:if test="string-length(normalize-space($class.value)) != 0">
+    <xsl:attribute name="class">
+      <xsl:value-of select="$class.value"/>
+    </xsl:attribute>
+  </xsl:if> 
+</xsl:template>
+
+<xsl:template match="*" mode="class.value">
+  <xsl:param name="class" select="local-name(.)"/>
+  <!-- permit customization of class value only -->
+  <!-- Use element name by default -->
+  <xsl:value-of select="$class"/>
+</xsl:template>
+
+<!-- Apply common attributes such as class, lang, dir -->
+<xsl:template name="common.html.attributes">
+  <xsl:param name="inherit" select="0"/>
+  <xsl:param name="class" select="local-name(.)"/>
+  <xsl:apply-templates select="." mode="common.html.attributes">
+    <xsl:with-param name="class" select="$class"/>
+    <xsl:with-param name="inherit" select="$inherit"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="common.html.attributes">
+  <xsl:param name="class" select="local-name(.)"/>
+  <xsl:param name="inherit" select="0"/>
+  <xsl:call-template name="generate.html.lang"/>
+  <xsl:call-template name="dir">
+    <xsl:with-param name="inherit" select="$inherit"/>
+  </xsl:call-template>
+  <xsl:apply-templates select="." mode="class.attribute">
+    <xsl:with-param name="class" select="$class"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Apply common attributes not including class -->
+<xsl:template name="locale.html.attributes">
+  <xsl:apply-templates select="." mode="locale.html.attributes"/>
+</xsl:template>
+
+<xsl:template match="*" mode="locale.html.attributes">
+  <xsl:call-template name="generate.html.lang"/>
+  <xsl:call-template name="dir"/>
+</xsl:template>
+
+<!-- Pass through any lang attributes -->
+<xsl:template name="generate.html.lang">
+  <xsl:apply-templates select="." mode="html.lang.attribute"/>
+</xsl:template>
+
+<xsl:template match="*" mode="html.lang.attribute">
+  <!-- match the attribute name to the output type -->
+  <xsl:choose>
+    <xsl:when test="@lang and $stylesheet.result.type = 'html'">
+      <xsl:attribute name="lang">
+        <xsl:value-of select="@lang"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="@lang and $stylesheet.result.type = 'xhtml'">
+      <xsl:attribute name="xml:lang">
+        <xsl:value-of select="@lang"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="@xml:lang and $stylesheet.result.type = 'html'">
+      <xsl:attribute name="lang">
+        <xsl:value-of select="@xml:lang"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="@xml:lang and $stylesheet.result.type = 'xhtml'">
+      <xsl:attribute name="xml:lang">
+        <xsl:value-of select="@xml:lang"/>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Insert link to css or insert literal CSS in head element -->
+<xsl:template name="generate.css">
+  <xsl:choose>
+    <xsl:when test="$generate.css.header = 0">
+      <xsl:call-template name="generate.css.links"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="generate.css.headers"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.css.headers">
+  <xsl:call-template name="generate.default.css.header"/>
+  <xsl:call-template name="generate.custom.css.header"/>
+</xsl:template>
+
+<xsl:template name="generate.default.css.header">
+  <xsl:if test="$make.clean.html != 0 and                  $docbook.css.source != ''">
+    <!-- Select default file relative to stylesheet -->
+    <xsl:variable name="css.node" select="document($docbook.css.source)/*[1]"/>
+
+    <xsl:call-template name="output.css.header">
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.custom.css.header">
+  <xsl:if test="$custom.css.source != ''">
+    <!-- Select custom file relative to document -->
+    <xsl:variable name="css.node" select="document($custom.css.source,.)/*[1]"/>
+
+    <xsl:call-template name="output.css.header">
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="output.css.header">
+  <xsl:param name="css.node"/> 
+
+  <xsl:choose>
+    <xsl:when test="count($css.node) = 0">
+    </xsl:when>
+    <xsl:otherwise>
+      <style type="text/css">
+        <xsl:copy-of select="$css.node/text()"/>
+      </style>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="generate.css.links">
+  <xsl:call-template name="generate.default.css.link"/>
+  <xsl:call-template name="generate.custom.css.link"/>
+</xsl:template>
+
+<xsl:template name="generate.default.css.link">
+  <xsl:if test="$make.clean.html != 0 and                  $docbook.css.link != 0 and                 $docbook.css.source != ''">
+    <xsl:variable name="filename">
+      <xsl:call-template name="css.output.filename">
+        <xsl:with-param name="src" select="$docbook.css.source"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.css.link">
+      <xsl:with-param name="css.filename" select="$filename"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.custom.css.link">
+  <xsl:if test="$custom.css.source != ''">
+    <xsl:variable name="filename">
+      <xsl:call-template name="css.output.filename">
+        <xsl:with-param name="src" select="$custom.css.source"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.css.link">
+      <xsl:with-param name="css.filename" select="$filename"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- a CSS link reference must take into account the relative
+     path to a CSS file when chunked HTML is output to more than one directory -->
+<xsl:template name="make.css.link">
+  <xsl:param name="css.filename" select="''"/>
+
+  <xsl:variable name="href">
+    <xsl:call-template name="relative.path.link">
+      <xsl:with-param name="target.pathname" select="$css.filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="string-length($css.filename) != 0">
+    <link rel="stylesheet" type="text/css" href="{$href}"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- And the same applies to script links -->
+<xsl:template name="make.script.link">
+  <xsl:param name="script.filename" select="''"/>
+
+  <xsl:variable name="src">
+    <xsl:call-template name="relative.path.link">
+      <xsl:with-param name="target.pathname" select="$script.filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="string-length($script.filename) != 0">
+    <script>
+      <xsl:attribute name="src">
+        <xsl:value-of select="$src"/>
+      </xsl:attribute>
+      <xsl:attribute name="type">
+        <xsl:value-of select="$html.script.type"/>
+      </xsl:attribute>
+      <xsl:call-template name="other.script.attributes">
+        <xsl:with-param name="script.filename" select="$script.filename"/>
+      </xsl:call-template>
+    </script>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="other.script.attributes">
+  <xsl:param name="script.filename"/>
+  <!-- Placeholder template to allow customization to 
+       insert additional script element attributes if needed -->
+</xsl:template>
+
+<xsl:template name="relative.path.link">
+  <xsl:param name="target.pathname"/>
+  
+  <xsl:variable name="href.to.uri" select="$target.pathname"/>
+
+  <xsl:variable name="href.from.uri">
+    <xsl:call-template name="href.target.uri">
+      <xsl:with-param name="object" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="href.to">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$href.to.uri"/>
+      <xsl:with-param name="uriB" select="$href.from.uri"/>
+      <xsl:with-param name="return" select="'A'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="href.from">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$href.to.uri"/>
+      <xsl:with-param name="uriB" select="$href.from.uri"/>
+      <xsl:with-param name="return" select="'B'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="depth">
+    <xsl:call-template name="count.uri.path.depth">
+      <xsl:with-param name="filename" select="$href.from"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:call-template name="copy-string">
+      <xsl:with-param name="string" select="'../'"/>
+      <xsl:with-param name="count" select="$depth"/>
+    </xsl:call-template>
+    <xsl:value-of select="$href.to"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$href"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="generate.css.files">
+  <xsl:call-template name="generate.default.css.file"/>
+  <xsl:call-template name="generate.custom.css.file"/>
+</xsl:template>
+
+<xsl:template name="generate.default.css.file">
+  <xsl:if test="$make.clean.html != 0 and                  $generate.css.header = 0 and                 $docbook.css.source != ''">
+    <!-- Select default file relative to stylesheet -->
+    <xsl:variable name="css.node" select="document($docbook.css.source)/*[1]"/>
+
+    <xsl:call-template name="generate.css.file">
+      <xsl:with-param name="src" select="$docbook.css.source"/>
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.custom.css.file">
+  <xsl:if test="$custom.css.source != '' and                 $generate.css.header = 0">
+    <!-- Select custom file relative to document -->
+    <xsl:variable name="css.node" select="document($custom.css.source,.)/*[1]"/>
+
+    <xsl:call-template name="generate.css.file">
+      <xsl:with-param name="src" select="$custom.css.source"/>
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.css.file">
+  <xsl:param name="css.node"/> 
+  <xsl:param name="src" select="''"/> 
+
+  <xsl:variable name="css.text" select="$css.node/text()"/>
+
+  <xsl:choose>
+    <xsl:when test="count($css.node) = 0">
+      <xsl:message>
+        <xsl:text>ERROR: no root element for CSS source file'</xsl:text>
+        <xsl:value-of select="$src"/>
+        <xsl:text>'.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="filename">
+        <xsl:call-template name="css.output.pathname">
+          <xsl:with-param name="src" select="$src"/>
+          <xsl:with-param name="content" select="$css.node"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:call-template name="write.text.chunk">
+        <xsl:with-param name="filename" select="$filename"/>
+        <xsl:with-param name="content" select="$css.text"/>
+      </xsl:call-template>
+
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="css.output.filename">
+  <xsl:param name="content"/>
+  <xsl:param name="src" select="''"/>
+  
+  <xsl:variable name="candidate">
+    <xsl:choose>
+      <xsl:when test="string-length($src) = 0">
+        <xsl:message>
+          <xsl:text>ERROR: missing CSS input filename.</xsl:text>
+        </xsl:message>
+      </xsl:when>
+      <xsl:when test="substring($src,string-length($src)-3) = '.xml'">
+        <xsl:value-of select="substring($src, 1, string-length($src) - 4)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$src"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:value-of select="$candidate"/>
+</xsl:template>
+
+<xsl:template name="css.output.pathname">
+  <xsl:param name="content"/>
+  <xsl:param name="src" select="''"/>
+
+  <xsl:variable name="file">
+    <xsl:call-template name="css.output.filename">
+      <xsl:with-param name="content" select="$content"/>
+      <xsl:with-param name="src" select="$src"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="path" select="concat($chunk.base.dir, $file)"/>
+  <xsl:value-of select="$path"/>
+  
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/htmltbl.xsl b/applications/content/template/docbook/xhtml-1_1/htmltbl.xsl
new file mode 100644
index 0000000..3662fb1
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/htmltbl.xsl
@@ -0,0 +1,103 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="table" mode="htmlTable">
+  <xsl:element name="table" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+    <xsl:attribute name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:attribute>
+    <xsl:call-template name="htmlTable"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="colgroup" mode="htmlTable">
+  <xsl:element name="{local-name()}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+    <xsl:apply-templates mode="htmlTable"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="col" mode="htmlTable">
+  <xsl:element name="{local-name()}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+  </xsl:element>
+</xsl:template>
+
+<!-- Handled by formal.object.title template -->
+<xsl:template match="caption" mode="htmlTable"/>
+
+<xsl:template match="tbody|thead|tfoot|tr" mode="htmlTable">
+  <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+    <xsl:apply-templates mode="htmlTable"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="th|td" mode="htmlTable">
+  <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+    <xsl:apply-templates/> <!-- *not* mode=htmlTable -->
+  </xsl:element>
+</xsl:template>
+
+<!-- don't copy through DocBook-specific attributes on HTML table markup -->
+<!-- default behavior is to not copy through because there are more
+     DocBook attributes than HTML attributes -->
+<xsl:template mode="htmlTableAtt" match="@*"/>
+
+<!-- copy these through -->
+<xsl:template mode="htmlTableAtt" match="@abbr                    | @align                    | @axis                    | @bgcolor                    | @border                    | @cellpadding                    | @cellspacing                    | @char                    | @charoff                    | @class                    | @dir                    | @frame                    | @headers                    | @height                    | @lang                    | @nowrap                    | @onclick                    | @ondblclick                    | @onkeydown                    | @onkeypress                    | @onkeyup                    | @onmousedown                    | @onmousemove                    | @onmouseout                    | @onmouseover                    | @onmouseup                    | @rules                    | @style                    | @summary                    | @title                    | @valign                    | @valign                    | @width                    | @xml:lang">
+  <xsl:copy-of select="."/>
+</xsl:template>
+
+<xsl:template match="@span|@rowspan|@colspan" mode="htmlTableAtt">
+  <!-- No need to copy through the DTD's default value "1" of the attribute -->
+  <xsl:if test="number(.) != 1">
+    <xsl:attribute name="{local-name(.)}">
+      <xsl:value-of select="."/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<!-- map floatstyle to HTML float values -->
+<xsl:template match="@floatstyle" mode="htmlTableAtt">
+  <xsl:attribute name="style">
+    <xsl:text>float: </xsl:text>
+    <xsl:choose>
+      <xsl:when test="contains(., 'left')">left</xsl:when>
+      <xsl:when test="contains(., 'right')">right</xsl:when>
+      <xsl:when test="contains(., 'start')">
+        <xsl:value-of select="$direction.align.start"/>
+      </xsl:when>
+      <xsl:when test="contains(., 'end')">
+        <xsl:value-of select="$direction.align.end"/>
+      </xsl:when>
+      <xsl:when test="contains(., 'inside')">
+        <xsl:value-of select="$direction.align.start"/>
+      </xsl:when>
+      <xsl:when test="contains(., 'outside')">
+        <xsl:value-of select="$direction.align.end"/>
+      </xsl:when>
+      <xsl:when test="contains(., 'before')">none</xsl:when>
+      <xsl:when test="contains(., 'none')">none</xsl:when>
+    </xsl:choose>
+    <xsl:text>;</xsl:text>
+  </xsl:attribute>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/index.xsl b/applications/content/template/docbook/xhtml-1_1/index.xsl
new file mode 100644
index 0000000..76cc6f8
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/index.xsl
@@ -0,0 +1,255 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. Unless generate.index -->
+  <!-- is non-zero, in which case, this is where the automatically -->
+  <!-- generated index should go. -->
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:if test="count(*)&gt;0 or $generate.index != '0'">
+    <div>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="index.titlepage"/>
+      <xsl:choose>
+	<xsl:when test="indexdiv">
+	  <xsl:apply-templates/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:apply-templates select="*[not(self::indexentry)]"/>
+	  <!-- Because it's actually valid for Index to have neither any -->
+	  <!-- Indexdivs nor any Indexentries, we need to check and make -->
+	  <!-- sure that at least one Indexentry exists, and generate a -->
+	  <!-- wrapper dl if there is at least one; otherwise, do nothing. -->
+	  <xsl:if test="indexentry">
+	    <!-- The indexentry template assumes a parent dl wrapper has -->
+	    <!-- been generated; for Indexes that have Indexdivs, the dl -->
+	    <!-- wrapper is generated by the indexdiv template; however, -->
+	    <!-- for Indexes that lack Indexdivs, if we don't generate a -->
+	    <!-- dl here, HTML output will not be valid. -->
+	    <dl>
+	      <xsl:apply-templates select="indexentry"/>
+	    </dl>
+	  </xsl:if>
+	</xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+        <xsl:call-template name="generate-index">
+          <xsl:with-param name="scope" select="(ancestor::book|/)[last()]"/>
+        </xsl:call-template>
+      </xsl:if>
+
+      <xsl:if test="not(parent::article)">
+        <xsl:call-template name="process.footnotes"/>
+      </xsl:if>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="setindex">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. Unless generate.index -->
+  <!-- is non-zero, in which case, this is where the automatically -->
+  <!-- generated index should go. -->
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:if test="count(*)&gt;0 or $generate.index != '0'">
+    <div>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="setindex.titlepage"/>
+      <xsl:apply-templates/>
+
+      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+        <xsl:call-template name="generate-index">
+          <xsl:with-param name="scope" select="/"/>
+        </xsl:call-template>
+      </xsl:if>
+
+      <xsl:if test="not(parent::article)">
+        <xsl:call-template name="process.footnotes"/>
+      </xsl:if>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="index/indexinfo"/>
+<xsl:template match="index/info"/>
+<xsl:template match="index/title"/>
+<xsl:template match="index/subtitle"/>
+<xsl:template match="index/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexdiv">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates select="*[not(self::indexentry)]"/>
+    <dl>
+      <xsl:apply-templates select="indexentry"/>
+    </dl>
+  </div>
+</xsl:template>
+
+<xsl:template match="indexdiv/title">
+  <h3>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexterm">
+  <!-- this one must have a name, even if it doesn't have an ID -->
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <a id="{$id}" class="indexterm"/>
+</xsl:template>
+
+<xsl:template match="primary|secondary|tertiary|see|seealso">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexentry">
+  <xsl:apply-templates select="primaryie"/>
+</xsl:template>
+
+<xsl:template match="primaryie">
+  <dt>
+    <xsl:apply-templates/>
+  </dt>
+  <dd>
+    <xsl:apply-templates select="following-sibling::seeie                                    [not(preceding-sibling::secondaryie)]" mode="indexentry"/>
+    <xsl:apply-templates select="following-sibling::seealsoie                                    [not(preceding-sibling::secondaryie)]" mode="indexentry"/>
+    <xsl:apply-templates select="following-sibling::secondaryie" mode="indexentry"/>
+  </dd>
+</xsl:template>
+
+<!-- Handled in mode to convert flat list to structured output -->
+<xsl:template match="secondaryie">
+</xsl:template>
+<xsl:template match="tertiaryie">
+</xsl:template>
+<xsl:template match="seeie|seealsoie">
+</xsl:template>
+
+<xsl:template match="secondaryie" mode="indexentry">
+  <dl>
+    <dt>
+      <xsl:apply-templates/>
+    </dt>
+    <dd>
+      <!-- select following see* elements up to next secondaryie or tertiary or end -->
+      <xsl:variable name="after.this" select="following-sibling::*"/>
+      <xsl:variable name="next.entry" select="(following-sibling::secondaryie|following-sibling::tertiaryie)[1]"/>
+      <xsl:variable name="before.entry" select="$next.entry/preceding-sibling::*"/>
+      <xsl:variable name="see.intersection" select="$after.this[count(.|$before.entry) = count($before.entry)]                                 [self::seeie or self::seealsoie]"/>
+      <xsl:choose>
+        <xsl:when test="count($see.intersection) != 0">
+          <xsl:apply-templates select="$see.intersection" mode="indexentry"/>
+        </xsl:when>
+        <xsl:when test="count($next.entry) = 0">
+          <xsl:apply-templates select="following-sibling::seeie" mode="indexentry"/>
+          <xsl:apply-templates select="following-sibling::seealsoie" mode="indexentry"/>
+        </xsl:when>
+      </xsl:choose>
+
+      <!-- now process any tertiaryie before the next secondaryie -->
+      <xsl:variable name="before.next.secondary" select="following-sibling::secondaryie[1]/preceding-sibling::*"/>
+      <xsl:variable name="tertiary.intersection" select="$after.this[count(.|$before.next.secondary) =                                   count($before.next.secondary)]                                 [not(self::seeie) and not(self::seealsoie)]"/>
+      <xsl:choose>
+        <xsl:when test="count($tertiary.intersection) != 0">
+          <xsl:apply-templates select="$tertiary.intersection" mode="indexentry"/>
+        </xsl:when>
+        <xsl:when test="not(following-sibling::secondaryie)">
+          <xsl:apply-templates select="following-sibling::tertiaryie" mode="indexentry"/>
+        </xsl:when>
+      </xsl:choose>
+    </dd>
+  </dl>
+</xsl:template>
+
+<xsl:template match="tertiaryie" mode="indexentry">
+  <dl>
+    <dt>
+      <xsl:apply-templates/>
+    </dt>
+    <dd>
+      <!-- select following see* elements up to next secondaryie or tertiary or end -->
+      <xsl:variable name="after.this" select="following-sibling::*"/>
+      <xsl:variable name="next.entry" select="(following-sibling::secondaryie|following-sibling::tertiaryie)[1]"/>
+      <xsl:variable name="before.entry" select="$next.entry/preceding-sibling::*"/>
+      <xsl:variable name="see.intersection" select="$after.this[count(.|$before.entry) = count($before.entry)]                                 [self::seeie or self::seealsoie]"/>
+      <xsl:choose>
+        <xsl:when test="count($see.intersection) != 0">
+          <xsl:apply-templates select="$see.intersection" mode="indexentry"/>
+        </xsl:when>
+        <xsl:when test="count($next.entry) = 0">
+          <xsl:apply-templates select="following-sibling::seeie" mode="indexentry"/>
+          <xsl:apply-templates select="following-sibling::seealsoie" mode="indexentry"/>
+        </xsl:when>
+      </xsl:choose>
+    </dd>
+  </dl>
+</xsl:template>
+
+<xsl:template match="seeie" mode="indexentry">
+  <dt>
+    <xsl:text>(</xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'see'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </dt>
+</xsl:template>
+
+<xsl:template match="seealsoie" mode="indexentry">
+  <div>
+    <xsl:text>(</xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'seealso'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/info.xsl b/applications/content/template/docbook/xhtml-1_1/info.xsl
new file mode 100644
index 0000000..de79e83
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/info.xsl
@@ -0,0 +1,46 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- These templates define the "default behavior" for info
+     elements.  Even if you don't process the *info wrappers,
+     some of these elements are needed because the elements are
+     processed from named templates that are called with modes.
+     Since modes aren't sticky, these rules apply. 
+     (TODO: clarify this comment) -->
+
+<!-- ==================================================================== -->
+<!-- called from named templates in a given mode -->
+
+<xsl:template match="corpauthor">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="jobtitle">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/inline.xsl b/applications/content/template/docbook/xhtml-1_1/inline.xsl
new file mode 100644
index 0000000..f40ea5a
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/inline.xsl
@@ -0,0 +1,1479 @@
+<?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:xlink="http://www.w3.org/1999/xlink" xmlns:suwl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.UnwrapLinks" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xlink suwl" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:key name="glossentries" match="glossentry" use="normalize-space(glossterm)"/>
+<xsl:key name="glossentries" match="glossentry" use="normalize-space(glossterm/@baseform)"/>
+
+<xsl:template name="simple.xlink">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <xsl:param name="linkend" select="$node/@linkend"/>
+  <xsl:param name="xhref" select="$node/@xlink:href"/>
+
+  <!-- Support for @xlink:show -->
+  <xsl:variable name="target.show">
+    <xsl:choose>
+      <xsl:when test="$node/@xlink:show = 'new'">_blank</xsl:when>
+      <xsl:when test="$node/@xlink:show = 'replace'">_top</xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="link">
+    <xsl:choose>
+      <xsl:when test="$xhref and                        (not($node/@xlink:type) or                             $node/@xlink:type='simple')">
+
+        <!-- Is it a local idref or a uri? -->
+        <xsl:variable name="is.idref">
+          <xsl:choose>
+            <!-- if the href starts with # and does not contain an "(" -->
+            <!-- or if the href starts with #xpointer(id(, it's just an ID -->
+            <xsl:when test="starts-with($xhref,'#')                             and (not(contains($xhref,'('))                             or starts-with($xhref,                                        '#xpointer(id('))">1</xsl:when>
+            <xsl:otherwise>0</xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+
+        <!-- Is it an olink ? -->
+        <xsl:variable name="is.olink">
+          <xsl:choose>
+            <!-- If xlink:role="http://docbook.org/xlink/role/olink" -->
+            <!-- and if the href contains # -->
+            <xsl:when test="contains($xhref,'#') and                  @xlink:role = $xolink.role">1</xsl:when>
+            <xsl:otherwise>0</xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+
+        <xsl:choose>
+          <xsl:when test="$is.olink = 1">
+            <xsl:call-template name="olink">
+              <xsl:with-param name="content" select="$content"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$is.idref = 1">
+
+            <xsl:variable name="idref">
+              <xsl:call-template name="xpointer.idref">
+                <xsl:with-param name="xpointer" select="$xhref"/>
+              </xsl:call-template>
+            </xsl:variable>
+
+            <xsl:variable name="targets" select="key('id',$idref)"/>
+            <xsl:variable name="target" select="$targets[1]"/>
+
+            <xsl:call-template name="check.id.unique">
+              <xsl:with-param name="linkend" select="$idref"/>
+            </xsl:call-template>
+
+            <xsl:choose>
+              <xsl:when test="count($target) = 0">
+                <xsl:message>
+                  <xsl:text>XLink to nonexistent id: </xsl:text>
+                  <xsl:value-of select="$idref"/>
+                </xsl:message>
+                <xsl:copy-of select="$content"/>
+              </xsl:when>
+
+              <xsl:otherwise>
+                <a>
+                  <xsl:apply-templates select="." mode="common.html.attributes"/>
+                  <xsl:call-template name="id.attribute"/>
+
+                  <xsl:attribute name="href">
+                    <xsl:call-template name="href.target">
+                      <xsl:with-param name="object" select="$target"/>
+                    </xsl:call-template>
+                  </xsl:attribute>
+
+                  <xsl:choose>
+                    <xsl:when test="$node/@xlink:title">
+                      <xsl:attribute name="title">
+                        <xsl:value-of select="$node/@xlink:title"/>
+                      </xsl:attribute>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:apply-templates select="$target" mode="html.title.attribute"/>
+                    </xsl:otherwise>
+                  </xsl:choose>
+
+                  <xsl:if test="$target.show !=''">
+                    <xsl:attribute name="target">
+                      <xsl:value-of select="$target.show"/>
+                    </xsl:attribute>
+                  </xsl:if>
+
+                  <xsl:copy-of select="$content"/>
+
+                </a>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+
+          <!-- otherwise it's a URI -->
+          <xsl:otherwise>
+            <a>
+              <xsl:apply-templates select="." mode="common.html.attributes"/>
+              <xsl:call-template name="id.attribute"/>
+              <xsl:attribute name="href">
+                <xsl:value-of select="$xhref"/>
+              </xsl:attribute>
+              <xsl:if test="$node/@xlink:title">
+                <xsl:attribute name="title">
+                  <xsl:value-of select="$node/@xlink:title"/>
+                </xsl:attribute>
+              </xsl:if>
+
+              <!-- For URIs, use @xlink:show if defined, otherwise use ulink.target -->
+              <xsl:choose>
+                <xsl:when test="$target.show !=''">
+                  <xsl:attribute name="target">
+                    <xsl:value-of select="$target.show"/>
+                  </xsl:attribute>
+                </xsl:when>
+                <xsl:when test="$ulink.target !=''">
+                  <xsl:attribute name="target">
+                    <xsl:value-of select="$ulink.target"/>
+                  </xsl:attribute>
+                </xsl:when>
+              </xsl:choose>
+              
+              <xsl:copy-of select="$content"/>
+            </a>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:when test="$linkend">
+        <xsl:variable name="targets" select="key('id',$linkend)"/>
+        <xsl:variable name="target" select="$targets[1]"/>
+
+        <xsl:call-template name="check.id.unique">
+          <xsl:with-param name="linkend" select="$linkend"/>
+        </xsl:call-template>
+
+        <a>
+          <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:call-template name="id.attribute"/>
+          <xsl:attribute name="href">
+            <xsl:call-template name="href.target">
+              <xsl:with-param name="object" select="$target"/>
+            </xsl:call-template>
+          </xsl:attribute>
+
+          <xsl:apply-templates select="$target" mode="html.title.attribute"/>
+
+          <xsl:copy-of select="$content"/>
+          
+        </a>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$content"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="function-available('suwl:unwrapLinks')">
+      <xsl:copy-of select="suwl:unwrapLinks($link)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$link"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.charseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <!-- * if you want output from the inline.charseq template wrapped in -->
+  <!-- * something other than a Span, call the template with some value -->
+  <!-- * for the 'wrapper-name' param -->
+  <xsl:param name="wrapper-name">span</xsl:param>
+  <xsl:element name="{$wrapper-name}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:attribute name="class">
+      <xsl:value-of select="local-name(.)"/>
+    </xsl:attribute>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="dir"/>
+    <xsl:call-template name="generate.html.title"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="inline.monoseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </code>
+</xsl:template>
+
+<xsl:template name="inline.boldseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+
+    <!-- don't put <strong> inside figure, example, or table titles -->
+    <xsl:choose>
+      <xsl:when test="local-name(..) = 'title'                       and (local-name(../..) = 'figure'                       or local-name(../..) = 'example'                       or local-name(../..) = 'table')">
+        <xsl:copy-of select="$content"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <strong>
+          <xsl:copy-of select="$content"/>
+        </strong>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="apply-annotations"/>
+  </span>
+</xsl:template>
+
+<xsl:template name="inline.italicseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <em>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </em>
+</xsl:template>
+
+<xsl:template name="inline.boldmonoseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <!-- don't put <strong> inside figure, example, or table titles -->
+  <!-- or other titles that may already be represented with <strong>'s. -->
+  <xsl:choose>
+    <xsl:when test="local-name(..) = 'title'                     and (local-name(../..) = 'figure'                          or local-name(../..) = 'example'                          or local-name(../..) = 'table'                          or local-name(../..) = 'formalpara')">
+      <code>
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:copy-of select="$content"/>
+        <xsl:call-template name="apply-annotations"/>
+      </code>
+    </xsl:when>
+    <xsl:otherwise>
+      <strong>
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <code>
+          <xsl:call-template name="generate.html.title"/>
+          <xsl:call-template name="dir"/>
+          <xsl:copy-of select="$content"/>
+        </code>
+        <xsl:call-template name="apply-annotations"/>
+      </strong>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.italicmonoseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <em>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <code>
+      <xsl:call-template name="generate.html.title"/>
+      <xsl:call-template name="dir"/>
+      <xsl:copy-of select="$content"/>
+      <xsl:call-template name="apply-annotations"/>
+    </code>
+  </em>
+</xsl:template>
+
+<xsl:template name="inline.superscriptseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <sup>
+    <xsl:call-template name="generate.html.title"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="dir"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </sup>
+</xsl:template>
+
+<xsl:template name="inline.subscriptseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <sub>
+    <xsl:call-template name="generate.html.title"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="dir"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </sub>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- some special cases -->
+
+<xsl:template match="author">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="editor">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorinitials">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="accel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="action">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="application">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="classname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="exceptionname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="interfacename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="methodname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="command">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="computeroutput">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="constant">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="database">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="date">
+  <!-- should this support locale-specific formatting? how? -->
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorcode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortype">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortext">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="envar">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="filename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="function">
+  <xsl:choose>
+    <xsl:when test="$function.parens != '0'                     and (parameter or function or replaceable)">
+      <xsl:variable name="nodes" select="text()|*"/>
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:call-template name="simple.xlink">
+            <xsl:with-param name="content">
+              <xsl:apply-templates select="$nodes[1]"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>(</xsl:text>
+      <xsl:apply-templates select="$nodes[position()&gt;1]"/>
+      <xsl:text>)</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+     <xsl:call-template name="inline.monoseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="function/parameter" priority="2">
+  <xsl:call-template name="inline.italicmonoseq"/>
+  <xsl:if test="following-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="function/replaceable" priority="2">
+  <xsl:call-template name="inline.italicmonoseq"/>
+  <xsl:if test="following-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="guibutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guiicon">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guilabel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenuitem">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guisubmenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="hardware">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interface">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interfacedefinition">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keycap">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="keycode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keysym">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="literal">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="code">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="medialabel">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="shortcut">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="mousebutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="option">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="package">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="parameter">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="property">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="prompt">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="replaceable" priority="1">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="returnvalue">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="structfield">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="structname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="symbol">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="systemitem">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="token">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="type">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="userinput">
+  <xsl:call-template name="inline.boldmonoseq"/>
+</xsl:template>
+
+<xsl:template match="abbrev">
+  <xsl:call-template name="inline.charseq">
+    <xsl:with-param name="wrapper-name">abbr</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="acronym">
+  <xsl:call-template name="inline.charseq">
+    <xsl:with-param name="wrapper-name">acronym</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="citerefentry">
+  <xsl:choose>
+    <xsl:when test="$citerefentry.link != '0'">
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="generate.citerefentry.link"/>
+        </xsl:attribute>
+        <xsl:call-template name="inline.charseq"/>
+      </a>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.charseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.citerefentry.link">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template name="x.generate.citerefentry.link">
+  <xsl:text>http://example.com/cgi-bin/man.cgi?</xsl:text>
+  <xsl:value-of select="refentrytitle"/>
+  <xsl:text>(</xsl:text>
+  <xsl:value-of select="manvolnum"/>
+  <xsl:text>)</xsl:text>
+</xsl:template>
+
+<xsl:template match="citetitle">
+  <xsl:choose>
+    <xsl:when test="@pubwork = 'article'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.italicseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="emphasis">
+  <span>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <!-- We don't want empty @class values, so do not propagate empty @roles -->
+      <xsl:when test="@role  and                       normalize-space(@role) != '' and                       $emphasis.propagates.style != 0">
+        <xsl:apply-templates select="." mode="common.html.attributes">
+          <xsl:with-param name="class" select="@role"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:choose>
+          <xsl:when test="@role = 'bold' or @role='strong'">
+            <!-- backwards compatibility: make bold into b elements, but -->
+            <!-- don't put bold inside figure, example, or table titles -->
+            <xsl:choose>
+              <xsl:when test="local-name(..) = 'title'                               and (local-name(../..) = 'figure'                               or local-name(../..) = 'example'                               or local-name(../..) = 'table')">
+                <xsl:apply-templates/>
+              </xsl:when>
+              <xsl:otherwise>
+                <strong><xsl:apply-templates/></strong>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+          <xsl:when test="@role and $emphasis.propagates.style != 0">
+            <xsl:apply-templates/>
+          </xsl:when>
+          <xsl:otherwise>
+            <em><xsl:apply-templates/></em>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </span>
+</xsl:template>
+
+<xsl:template match="foreignphrase">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="inline.italicseq"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="markup">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phrase">
+  <span>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="locale.html.attributes"/>
+    <!-- We don't want empty @class values, so do not propagate empty @roles -->
+    <xsl:choose>
+      <xsl:when test="@role and                       normalize-space(@role) != '' and                      $phrase.propagates.style != 0">
+        <xsl:apply-templates select="." mode="class.attribute">
+          <xsl:with-param name="class" select="@role"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="." mode="class.attribute"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="dir"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="quote">
+  <xsl:variable name="depth">
+    <xsl:call-template name="dot.count">
+      <xsl:with-param name="string">
+        <xsl:number level="multiple"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:choose>
+      <xsl:when test="$depth mod 2 = 0">
+        <xsl:call-template name="gentext.startquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.endquote"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="gentext.nestedstartquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.nestedendquote"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="wordasword">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="lineannotation">
+  <em>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="inline.charseq"/>
+  </em>
+</xsl:template>
+
+<xsl:template match="superscript">
+  <xsl:call-template name="inline.superscriptseq"/>
+</xsl:template>
+
+<xsl:template match="subscript">
+  <xsl:call-template name="inline.subscriptseq"/>
+</xsl:template>
+
+<xsl:template match="trademark">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:choose>
+    <xsl:when test="@class = 'copyright'                     or @class = 'registered'">
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat" select="@class"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="@class = 'service'">
+      <sup>SM</sup>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat" select="'trademark'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="firstterm">
+  <xsl:call-template name="glossterm">
+    <xsl:with-param name="firstterm" select="1"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="glossterm" name="glossterm">
+  <xsl:param name="firstterm" select="0"/>
+
+  <!-- To avoid extra <a name=""> anchor from inline.italicseq -->
+  <xsl:variable name="content">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="($firstterm.only.link = 0 or $firstterm = 1) and @linkend">
+      <xsl:variable name="targets" select="key('id',@linkend)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+
+      <xsl:call-template name="check.id.unique">
+        <xsl:with-param name="linkend" select="@linkend"/>
+      </xsl:call-template>
+
+      <xsl:choose>
+        <xsl:when test="$target">
+          <a>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:if test="@id or @xml:id">
+              <xsl:attribute name="id">
+                <xsl:value-of select="(@id|@xml:id)[1]"/>
+              </xsl:attribute>
+            </xsl:if>
+
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="$target"/>
+              </xsl:call-template>
+            </xsl:attribute>
+
+            <xsl:call-template name="inline.italicseq">
+              <xsl:with-param name="content" select="$content"/>
+            </xsl:call-template>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="inline.italicseq">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="not(@linkend)                     and ($firstterm.only.link = 0 or $firstterm = 1)                     and ($glossterm.auto.link != 0)                     and $glossary.collection != ''">
+      <xsl:variable name="term">
+        <xsl:choose>
+          <xsl:when test="@baseform"><xsl:value-of select="@baseform"/></xsl:when>
+          <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="cterm" select="(document($glossary.collection,.)//glossentry[glossterm=$term])[1]"/>
+
+      <!-- HACK HACK HACK! But it works... -->
+      <!-- You'd need to do more work if you wanted to chunk on glossdiv, though -->
+
+      <xsl:variable name="glossary" select="//glossary[@role='auto']"/>
+
+      <xsl:if test="count($glossary) != 1">
+        <xsl:message>
+          <xsl:text>Warning: glossary.collection specified, but there are </xsl:text>
+          <xsl:value-of select="count($glossary)"/>
+          <xsl:text> automatic glossaries</xsl:text>
+        </xsl:message>
+      </xsl:if>
+
+      <xsl:variable name="glosschunk">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select="$glossary"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="chunkbase">
+        <xsl:choose>
+          <xsl:when test="contains($glosschunk, '#')">
+            <xsl:value-of select="substring-before($glosschunk, '#')"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$glosschunk"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="not($cterm)">
+          <xsl:message>
+            <xsl:text>There's no entry for </xsl:text>
+            <xsl:value-of select="$term"/>
+            <xsl:text> in </xsl:text>
+            <xsl:value-of select="$glossary.collection"/>
+          </xsl:message>
+          <xsl:call-template name="inline.italicseq"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:variable name="id">
+            <xsl:call-template name="object.id">
+              <xsl:with-param name="object" select="$cterm"/>
+            </xsl:call-template>
+          </xsl:variable>
+          <a href="{$chunkbase}#{$id}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="inline.italicseq">
+              <xsl:with-param name="content" select="$content"/>
+            </xsl:call-template>
+          </a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="not(@linkend)                     and ($firstterm.only.link = 0 or $firstterm = 1)                     and $glossterm.auto.link != 0">
+      <xsl:variable name="term">
+        <xsl:choose>
+          <xsl:when test="@baseform">
+            <xsl:value-of select="normalize-space(@baseform)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="normalize-space(.)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+      <xsl:variable name="targets" select="key('glossentries', $term)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+
+      <xsl:choose>
+        <xsl:when test="count($targets)=0">
+          <xsl:message>
+            <xsl:text>Error: no glossentry for glossterm: </xsl:text>
+            <xsl:value-of select="."/>
+            <xsl:text>.</xsl:text>
+          </xsl:message>
+          <xsl:call-template name="inline.italicseq"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <a>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:if test="@id or @xml:id">
+              <xsl:attribute name="id">
+                <xsl:value-of select="(@id|@xml:id)[1]"/>
+              </xsl:attribute>
+            </xsl:if>
+
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="$target"/>
+              </xsl:call-template>
+            </xsl:attribute>
+
+            <xsl:call-template name="inline.italicseq">
+              <xsl:with-param name="content" select="$content"/>
+            </xsl:call-template>
+          </a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="inline.italicseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="termdef">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="gentext.template">
+      <xsl:with-param name="context" select="'termdef'"/>
+      <xsl:with-param name="name" select="'prefix'"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+    <xsl:call-template name="gentext.template">
+      <xsl:with-param name="context" select="'termdef'"/>
+      <xsl:with-param name="name" select="'suffix'"/>
+    </xsl:call-template>
+  </span>
+</xsl:template>
+
+<xsl:template match="sgmltag|tag">
+  <xsl:call-template name="format.sgmltag"/>
+</xsl:template>
+
+<xsl:template name="format.sgmltag">
+  <xsl:param name="class">
+    <xsl:choose>
+      <xsl:when test="@class">
+        <xsl:value-of select="@class"/>
+      </xsl:when>
+      <xsl:otherwise>element</xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="$class='attribute'">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test="$class='attvalue'">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test="$class='element'">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test="$class='endtag'">
+        <xsl:text>&lt;/</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='genentity'">
+        <xsl:text>&amp;</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='numcharref'">
+        <xsl:text>&amp;#</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='paramentity'">
+        <xsl:text>%</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='pi'">
+        <xsl:text>&lt;?</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='xmlpi'">
+        <xsl:text>&lt;?</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>?&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='starttag'">
+        <xsl:text>&lt;</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='emptytag'">
+        <xsl:text>&lt;</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>/&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='sgmlcomment' or $class='comment'">
+        <xsl:text>&lt;!--</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>--&gt;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes">
+      <xsl:with-param name="class" select="concat('sgmltag-', $class)"/>
+    </xsl:apply-templates>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content" select="$content"/>
+    </xsl:call-template>
+  </code>
+</xsl:template>
+
+<xsl:template match="email">
+  <xsl:call-template name="inline.monoseq">
+    <xsl:with-param name="content">
+      <xsl:if test="not($email.delimiters.enabled = 0)">
+        <xsl:text>&lt;</xsl:text>
+      </xsl:if>
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:attribute name="href">
+          <xsl:text>mailto:</xsl:text>
+          <xsl:value-of select="."/>
+        </xsl:attribute>
+        <xsl:apply-templates/>
+      </a>
+      <xsl:if test="not($email.delimiters.enabled = 0)">
+        <xsl:text>&gt;</xsl:text>
+      </xsl:if>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="keycombo">
+  <xsl:variable name="action" select="@action"/>
+  <xsl:variable name="joinchar">
+    <xsl:choose>
+      <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when>
+      <xsl:when test="$action='simul'">+</xsl:when>
+      <xsl:when test="$action='press'">-</xsl:when>
+      <xsl:when test="$action='click'">-</xsl:when>
+      <xsl:when test="$action='double-click'">-</xsl:when>
+      <xsl:when test="$action='other'"/>
+      <xsl:otherwise>+</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:for-each select="*">
+    <xsl:if test="position()&gt;1"><xsl:value-of select="$joinchar"/></xsl:if>
+    <xsl:apply-templates select="."/>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="uri">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="menuchoice">
+  <xsl:variable name="shortcut" select="./shortcut"/>
+  <xsl:call-template name="process.menuchoice"/>
+  <xsl:if test="$shortcut">
+    <xsl:text> (</xsl:text>
+    <xsl:apply-templates select="$shortcut"/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.menuchoice">
+  <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count&gt;count($nodelist)"/>
+    <xsl:when test="$count=1">
+      <xsl:apply-templates select="$nodelist[$count=position()]"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="node" select="$nodelist[$count=position()]"/>
+      <xsl:choose>
+        <xsl:when test="local-name($node)='guimenuitem'                         or local-name($node)='guisubmenu'">
+          <xsl:value-of select="$menuchoice.menu.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$menuchoice.separator"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:apply-templates select="$node"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="optional">
+  <xsl:value-of select="$arg.choice.opt.open.str"/>
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:value-of select="$arg.choice.opt.close.str"/>
+</xsl:template>
+
+<xsl:template match="citation">
+  <!-- todo: integrate with bibliography collection -->
+  <xsl:variable name="targets" select="(//biblioentry | //bibliomixed)[abbrev = string(current())]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <!-- try automatic linking based on match to abbrev -->
+    <xsl:when test="$target and not(xref) and not(link)">
+
+      <xsl:text>[</xsl:text>
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:choose>
+          <xsl:when test="$bibliography.numbered != 0">
+            <xsl:call-template name="id.attribute"/>
+            <xsl:apply-templates select="$target" mode="citation"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="inline.charseq"/>
+          </xsl:otherwise>
+        </xsl:choose>
+
+      </a>
+      <xsl:text>]</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>[</xsl:text>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:text>]</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="citebiblioid">
+  <xsl:variable name="targets" select="//*[biblioid = string(current())]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <!-- try automatic linking based on match to parent of biblioid -->
+    <xsl:when test="$target and not(xref) and not(link)">
+
+      <xsl:text>[</xsl:text>
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:call-template name="inline.charseq"/>
+
+      </a>
+      <xsl:text>]</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>[</xsl:text>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:text>]</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="citation">
+  <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="comment[parent::answer|parent::appendix|parent::article|parent::bibliodiv|                                 parent::bibliography|parent::blockquote|parent::caution|parent::chapter|                                 parent::glossary|parent::glossdiv|parent::important|parent::index|                                 parent::indexdiv|parent::listitem|parent::note|parent::orderedlist|                                 parent::partintro|parent::preface|parent::procedure|parent::qandadiv|                                 parent::qandaset|parent::question|parent::refentry|parent::refnamediv|                                 parent::refsect1|parent::refsect2|parent::refsect3|parent::refsection|                                 parent::refsynopsisdiv|parent::sect1|parent::sect2|parent::sect3|parent::sect4|                                 parent::sect5|parent::section|parent::setindex|parent::sidebar|                                 parent::simplesect|parent::taskprerequisites|parent::taskrelated|                                 parent::tasksummary|parent::warning|parent::topic]|remark[parent::answer|parent::appendix|parent::article|parent::bibliodiv|                                 parent::bibliography|parent::blockquote|parent::caution|parent::chapter|                                 parent::glossary|parent::glossdiv|parent::important|parent::index|                                 parent::indexdiv|parent::listitem|parent::note|parent::orderedlist|                                 parent::partintro|parent::preface|parent::procedure|parent::qandadiv|                                 parent::qandaset|parent::question|parent::refentry|parent::refnamediv|                                 parent::refsect1|parent::refsect2|parent::refsect3|parent::refsection|                                 parent::refsynopsisdiv|parent::sect1|parent::sect2|parent::sect3|parent::sect4|                                 parent::sect5|parent::section|parent::setindex|parent::sidebar|                                 parent::simplesect|parent::taskprerequisites|parent::taskrelated|                                 parent::tasksummary|parent::warning|parent::topic]">
+  <xsl:if test="$show.comments != 0">
+    <p class="remark"><em><xsl:call-template name="inline.charseq"/></em></p>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="comment|remark">
+  <xsl:if test="$show.comments != 0">
+    <em><xsl:call-template name="inline.charseq"/></em>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productname">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:if test="@class">
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat" select="@class"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="productnumber">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="pob|street|city|state|postcode|country|otheraddr">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phone|fax">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- in Addresses, for example -->
+<xsl:template match="honorific|firstname|surname|lineage|othername">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="person">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates select="personname"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="personname">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="org">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgdiv">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="affiliation">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="beginpage">
+  <!-- does nothing; this *is not* markup to force a page break. -->
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/keywords.xsl b/applications/content/template/docbook/xhtml-1_1/keywords.xsl
new file mode 100644
index 0000000..f8cf64c
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/keywords.xsl
@@ -0,0 +1,36 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="keywordset"/>
+<xsl:template match="subjectset"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="keywordset" mode="html.header">
+  <meta name="keywords">
+    <xsl:attribute name="content">
+      <xsl:apply-templates select="keyword" mode="html.header"/>
+    </xsl:attribute>
+  </meta>
+</xsl:template>
+
+<xsl:template match="keyword" mode="html.header">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::keyword">, </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/lists.xsl b/applications/content/template/docbook/xhtml-1_1/lists.xsl
new file mode 100644
index 0000000..18f0804
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/lists.xsl
@@ -0,0 +1,1199 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="itemizedlist">
+  <!-- Handle spacing="compact" as multiple class attribute instead
+       of the deprecated HTML compact attribute -->
+  <xsl:variable name="default.class">
+    <xsl:value-of select="local-name()"/>
+    <xsl:if test="@spacing = 'compact'">
+      <xsl:text> compact</xsl:text>
+    </xsl:if>
+  </xsl:variable>
+  
+  <xsl:variable name="style.value">
+    <xsl:variable name="type">
+      <xsl:call-template name="list.itemsymbol"/>
+    </xsl:variable>
+
+    <xsl:text>list-style-type: </xsl:text>
+    <xsl:value-of select="$type"/>
+    <xsl:text>; </xsl:text>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="title|info/title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <!-- Preserve order of PIs and comments -->
+    <xsl:apply-templates select="*[not(self::listitem                   or self::title                   or self::titleabbrev)]                 |comment()[not(preceding-sibling::listitem)]                 |processing-instruction()[not(preceding-sibling::listitem)]"/>
+
+    <ul>
+      <xsl:call-template name="generate.class.attribute">
+        <xsl:with-param name="class" select="$default.class"/>
+      </xsl:call-template>
+      <xsl:choose>
+        <xsl:when test="$css.decoration != 0">
+          <xsl:attribute name="style">
+            <xsl:value-of select="$style.value"/>
+          </xsl:attribute>
+        </xsl:when>
+        <xsl:when test="$make.clean.html != 0">
+          <!-- styled by separate css only -->
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- use the old @type attribute -->
+          
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:apply-templates select="listitem                     |comment()[preceding-sibling::listitem]                     |processing-instruction()[preceding-sibling::listitem]"/>
+    </ul>
+  </div>
+</xsl:template>
+
+<xsl:template match="itemizedlist/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="itemizedlist/listitem">
+  <xsl:variable name="mark" select="../@mark"/>
+  <xsl:variable name="override" select="@override"/>
+
+  <xsl:variable name="usemark">
+    <xsl:choose>
+      <xsl:when test="$override != ''">
+        <xsl:value-of select="$override"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$mark"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="cssmark">
+    <xsl:choose>
+      <xsl:when test="$usemark = 'opencircle'">circle</xsl:when>
+      <xsl:when test="$usemark = 'bullet'">disc</xsl:when>
+      <xsl:when test="$usemark = 'box'">square</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$usemark"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <li>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="$css.decoration = '1' and $cssmark != ''">
+      <xsl:attribute name="style">
+        <xsl:text>list-style-type: </xsl:text>
+        <xsl:value-of select="$cssmark"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <!-- we can't just drop the anchor in since some browsers (Opera)
+         get confused about line breaks if we do. So if the first child
+         is a para, assume the para will put in the anchor. Otherwise,
+         put the anchor in anyway. -->
+    <xsl:if test="local-name(child::*[1]) != 'para'">
+      <xsl:call-template name="anchor"/>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+        <div class="{@revisionflag}">
+          <xsl:apply-templates/>
+        </div>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </li>
+</xsl:template>
+
+<xsl:template match="orderedlist">
+  <!-- Handle spacing="compact" as multiple class attribute instead
+       of the deprecated HTML compact attribute -->
+  <xsl:variable name="default.class">
+    <xsl:value-of select="local-name()"/>
+    <xsl:if test="@spacing = 'compact'">
+      <xsl:text> compact</xsl:text>
+    </xsl:if>
+  </xsl:variable>
+  
+  <xsl:variable name="start">
+    <xsl:call-template name="orderedlist-starting-number"/>
+  </xsl:variable>
+
+  <xsl:variable name="numeration">
+    <xsl:call-template name="list.numeration"/>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:choose>
+      <xsl:when test="$numeration='arabic'">1</xsl:when>
+      <xsl:when test="$numeration='loweralpha'">a</xsl:when>
+      <xsl:when test="$numeration='lowerroman'">i</xsl:when>
+      <xsl:when test="$numeration='upperalpha'">A</xsl:when>
+      <xsl:when test="$numeration='upperroman'">I</xsl:when>
+      <!-- What!? This should never happen -->
+      <xsl:otherwise>
+        <xsl:message>
+          <xsl:text>Unexpected numeration: </xsl:text>
+          <xsl:value-of select="$numeration"/>
+        </xsl:message>
+        <xsl:value-of select="1"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:if test="title|info/title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <!-- Preserve order of PIs and comments -->
+    <xsl:apply-templates select="*[not(self::listitem                   or self::title                   or self::titleabbrev)]                 |comment()[not(preceding-sibling::listitem)]                 |processing-instruction()[not(preceding-sibling::listitem)]"/>
+
+    <xsl:choose>
+      <xsl:when test="@inheritnum='inherit' and ancestor::listitem[parent::orderedlist]">
+        <table border="{$table.border.off}">
+          <xsl:call-template name="generate.class.attribute">
+            <xsl:with-param name="class" select="$default.class"/>
+          </xsl:call-template>
+          <colgroup>
+            <col align="{$direction.align.start}" valign="top"/>
+            <col/>
+          </colgroup>
+          <tbody>
+            <xsl:apply-templates mode="orderedlist-table" select="listitem                         |comment()[preceding-sibling::listitem]                         |processing-instruction()[preceding-sibling::listitem]"/>
+          </tbody>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <ol>
+          <xsl:call-template name="generate.class.attribute">
+            <xsl:with-param name="class" select="$default.class"/>
+          </xsl:call-template>
+          <xsl:if test="$start != '1'"><xsl:message><xsl:text>Strict XHTML does not allow setting @start attribute for lists! </xsl:text></xsl:message></xsl:if>
+          <xsl:if test="$numeration != ''">
+            
+          </xsl:if>
+          <xsl:apply-templates select="listitem                         |comment()[preceding-sibling::listitem]                         |processing-instruction()[preceding-sibling::listitem]"/>
+        </ol>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="orderedlist/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem">
+  <li>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="@override"><xsl:message><xsl:text>@override attribute cannot be set in strict XHTML output for listitem: </xsl:text><xsl:value-of select="@override"/></xsl:message></xsl:if>
+
+    <!-- we can't just drop the anchor in since some browsers (Opera)
+         get confused about line breaks if we do. So if the first child
+         is a para, assume the para will put in the anchor. Otherwise,
+         put the anchor in anyway. -->
+    <xsl:if test="local-name(child::*[1]) != 'para'">
+      <xsl:call-template name="anchor"/>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+        <div class="{@revisionflag}">
+          <xsl:apply-templates/>
+        </div>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </li>
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem" mode="orderedlist-table">
+  <tr>
+    <td>
+      <xsl:apply-templates select="." mode="item-number"/>
+    </td>
+    <td>
+      <xsl:if test="local-name(child::*[1]) != 'para'">
+        <xsl:call-template name="id.attribute"/>
+        <xsl:call-template name="anchor"/>
+      </xsl:if>
+
+      <xsl:choose>
+        <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+          <div class="{@revisionflag}">
+            <xsl:apply-templates/>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="variablelist">
+  <xsl:variable name="pi-presentation">
+    <xsl:call-template name="pi.dbhtml_list-presentation"/>
+  </xsl:variable>
+  <!-- Handle spacing="compact" as multiple class attribute instead
+       of the deprecated HTML compact attribute -->
+  <xsl:variable name="default.class">
+    <xsl:value-of select="local-name()"/>
+    <xsl:if test="@spacing = 'compact'">
+      <xsl:text> compact</xsl:text>
+    </xsl:if>
+  </xsl:variable>
+  
+
+  <xsl:variable name="presentation">
+    <xsl:choose>
+      <xsl:when test="$pi-presentation != ''">
+        <xsl:value-of select="$pi-presentation"/>
+      </xsl:when>
+      <xsl:when test="$variablelist.as.table != 0">
+        <xsl:value-of select="'table'"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="'list'"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="list-width">
+    <xsl:call-template name="pi.dbhtml_list-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="term-width">
+    <xsl:call-template name="pi.dbhtml_term-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="table-summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="title|info/title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$presentation = 'table'">
+        <!-- Preserve order of PIs and comments -->
+        <xsl:apply-templates select="*[not(self::varlistentry                     or self::title                     or self::titleabbrev)]                   |comment()[not(preceding-sibling::varlistentry)]                   |processing-instruction()[not(preceding-sibling::varlistentry)]"/>
+        <table border="{$table.border.off}">
+          <xsl:call-template name="generate.class.attribute">
+            <xsl:with-param name="class" select="$default.class"/>
+          </xsl:call-template>
+          <xsl:if test="$list-width != ''">
+            <xsl:attribute name="width">
+              <xsl:value-of select="$list-width"/>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:if test="$table-summary != ''">
+            <xsl:attribute name="summary">
+              <xsl:value-of select="$table-summary"/>
+            </xsl:attribute>
+          </xsl:if>
+          <colgroup>
+            <col align="{$direction.align.start}" valign="top">
+              <xsl:if test="$term-width != ''">
+                <xsl:attribute name="width">
+                  <xsl:value-of select="$term-width"/>
+                </xsl:attribute>
+              </xsl:if>
+            </col>
+            <col/>
+          </colgroup>
+          <tbody>
+            <xsl:apply-templates mode="varlist-table" select="varlistentry                       |comment()[preceding-sibling::varlistentry]                       |processing-instruction()[preceding-sibling::varlistentry]"/>
+          </tbody>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- Preserve order of PIs and comments -->
+        <xsl:apply-templates select="*[not(self::varlistentry                     or self::title                     or self::titleabbrev)]                   |comment()[not(preceding-sibling::varlistentry)]                   |processing-instruction()[not(preceding-sibling::varlistentry)]"/>
+        <dl>
+          <xsl:call-template name="generate.class.attribute">
+            <xsl:with-param name="class" select="$default.class"/>
+          </xsl:call-template>
+          <xsl:apply-templates select="varlistentry                       |comment()[preceding-sibling::varlistentry]                       |processing-instruction()[preceding-sibling::varlistentry]"/>
+        </dl>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="variablelist/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="itemizedlist/titleabbrev|orderedlist/titleabbrev">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="variablelist/titleabbrev">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="listitem" mode="xref">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="listitem/simpara" priority="2">
+  <!-- If a listitem contains only a single simpara, don't output
+       the <p> wrapper; this has the effect of creating an li
+       with simple text content. -->
+  <xsl:choose>
+    <xsl:when test="not(preceding-sibling::*)                     and not (following-sibling::*)">
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:choose>
+          <xsl:when test="@role and $para.propagates.style != 0">
+            <xsl:call-template name="common.html.attributes">
+              <xsl:with-param name="class" select="@role"/>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="common.html.attributes"/>
+          </xsl:otherwise>
+        </xsl:choose>
+
+        <xsl:call-template name="anchor"/>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varlistentry">
+  <dt>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates select="term"/>
+  </dt>
+  <dd>
+    <xsl:apply-templates select="listitem"/>
+  </dd>
+</xsl:template>
+
+<xsl:template match="varlistentry" mode="varlist-table">
+  <xsl:variable name="presentation">
+    <xsl:call-template name="pi.dbhtml_term-presentation">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="separator">
+    <xsl:call-template name="pi.dbhtml_term-separator">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <tr>
+    <xsl:call-template name="tr.attributes">
+      <xsl:with-param name="rownum">
+        <xsl:number from="variablelist" count="varlistentry"/>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <td>
+      <xsl:call-template name="id.attribute"/>
+      <p>
+      <xsl:call-template name="anchor"/>
+      <xsl:choose>
+        <xsl:when test="$presentation = 'bold'">
+          <strong>
+            <xsl:apply-templates select="term"/>
+            <xsl:value-of select="$separator"/>
+          </strong>
+        </xsl:when>
+        <xsl:when test="$presentation = 'italic'">
+          <em>
+            <xsl:apply-templates select="term"/>
+            <xsl:value-of select="$separator"/>
+          </em>
+        </xsl:when>
+        <xsl:when test="$presentation = 'bold-italic'">
+          <strong>
+            <em>
+              <xsl:apply-templates select="term"/>
+              <xsl:value-of select="$separator"/>
+            </em>
+          </strong>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="term"/>
+          <xsl:value-of select="$separator"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      </p>
+    </td>
+    <td>
+      <xsl:apply-templates select="listitem"/>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="varlistentry/term">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:choose>
+      <xsl:when test="position() = last()"/> <!-- do nothing -->
+      <xsl:otherwise>
+        <!-- * if we have multiple terms in the same varlistentry, generate -->
+        <!-- * a separator (", " by default) and/or an additional line -->
+        <!-- * break after each one except the last -->
+        <xsl:value-of select="$variablelist.term.separator"/>
+        <xsl:if test="not($variablelist.term.break.after = '0')">
+          <br/>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+<xsl:template match="varlistentry/listitem">
+  <!-- we can't just drop the anchor in since some browsers (Opera)
+       get confused about line breaks if we do. So if the first child
+       is a para, assume the para will put in the anchor. Otherwise,
+       put the anchor in anyway. -->
+  <xsl:if test="local-name(child::*[1]) != 'para'">
+    <xsl:call-template name="anchor"/>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+      <div class="{@revisionflag}">
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="simplelist">
+  <!-- with no type specified, the default is 'vert' -->
+  <xsl:call-template name="anchor"/>
+  <table border="{$table.border.off}">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Simple list</xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='inline']">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <!-- if dbchoice PI exists, use that to determine the choice separator -->
+    <!-- (that is, equivalent of "and" or "or" in current locale), or literal -->
+    <!-- value of "choice" otherwise -->
+    <xsl:variable name="localized-choice-separator">
+      <xsl:choose>
+        <xsl:when test="processing-instruction('dbchoice')">
+          <xsl:call-template name="select.choice.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- empty -->
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+    <xsl:for-each select="member">
+      <xsl:call-template name="simple.xlink">
+        <xsl:with-param name="content">
+          <xsl:apply-templates/>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:choose>
+        <xsl:when test="position() = last()"/> <!-- do nothing -->
+        <xsl:otherwise>
+          <xsl:text>, </xsl:text>
+          <xsl:if test="position() = last() - 1">
+            <xsl:if test="$localized-choice-separator != ''">
+              <xsl:value-of select="$localized-choice-separator"/>
+              <xsl:text> </xsl:text>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+  </span>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='horiz']">
+  <xsl:call-template name="anchor"/>
+  <table border="{$table.border.off}">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Simple list</xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="simplelist.horiz">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='vert']">
+  <xsl:call-template name="anchor"/>
+  <table border="{$table.border.off}">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Simple list</xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+
+  <xsl:if test="$cell &lt;= count($members)">
+    <tr>
+      <xsl:call-template name="tr.attributes">
+        <xsl:with-param name="row" select="$members[1]"/>
+        <xsl:with-param name="rownum" select="(($cell - 1) div $cols) + 1"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="simplelist.horiz.row">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="cell" select="$cell"/>
+        <xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+   </tr>
+    <xsl:call-template name="simplelist.horiz">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell + $cols"/>
+      <xsl:with-param name="members" select="$members"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <td>
+      <xsl:choose>
+        <xsl:when test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>&#160;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <xsl:call-template name="simplelist.horiz.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="rows" select="floor((count($members)+$cols - 1) div $cols)"/>
+
+  <xsl:if test="$cell &lt;= $rows">
+    <tr>
+      <xsl:call-template name="tr.attributes">
+        <xsl:with-param name="row" select="$members[1]"/>
+        <xsl:with-param name="rownum" select="$cell"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="simplelist.vert.row">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="rows" select="$rows"/>
+        <xsl:with-param name="cell" select="$cell"/>
+        <xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+    </tr>
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="rows" select="$rows"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="rows">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <td>
+      <xsl:choose>
+        <xsl:when test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>&#160;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <xsl:call-template name="simplelist.vert.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="rows" select="$rows"/>
+      <xsl:with-param name="cell" select="$cell+$rows"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="member">
+  <xsl:call-template name="anchor"/>
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="content">
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="procedure">
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Preserve order of PIs and comments -->
+  <xsl:variable name="preamble" select="*[not(self::step                   or self::title                   or self::titleabbrev)]                 |comment()[not(preceding-sibling::step)]                 |processing-instruction()[not(preceding-sibling::step)]"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional">
+        <xsl:choose>
+          <xsl:when test="title">0</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional">
+        <xsl:choose>
+          <xsl:when test="title">0</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:if test="(title or info/title) and $placement = 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="$preamble"/>
+
+    <xsl:choose>
+      <xsl:when test="count(step) = 1">
+        <ul>
+          <xsl:call-template name="generate.class.attribute"/>
+          <xsl:apply-templates select="step                     |comment()[preceding-sibling::step]                     |processing-instruction()[preceding-sibling::step]"/>
+        </ul>
+      </xsl:when>
+      <xsl:otherwise>
+        <ol>
+          <xsl:call-template name="generate.class.attribute"/>
+          
+          <xsl:apply-templates select="step                     |comment()[preceding-sibling::step]                     |processing-instruction()[preceding-sibling::step]"/>
+        </ol>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="(title or info/title) and $placement != 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="procedure/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="substeps"><xsl:variable name="numeration"><xsl:call-template name="procedure.step.numeration"/></xsl:variable><xsl:variable name="cssstyle"><xsl:choose><xsl:when test="$numeration = '1'">decimal</xsl:when><xsl:when test="$numeration = 'a'">lower-alpha</xsl:when><xsl:when test="$numeration = 'i'">lower-roman</xsl:when><xsl:when test="$numeration = 'A'">upper-alpha</xsl:when><xsl:when test="$numeration = 'I'">upper-roman</xsl:when><xsl:otherwise><xsl:message>Warning: unknown procedure.step.numeration value: <xsl:value-of select="$numeration"/></xsl:message></xsl:otherwise></xsl:choose></xsl:variable><xsl:call-template name="anchor"/><ol><xsl:attribute name="style"><xsl:text>list-style-type: </xsl:text><xsl:value-of select="$cssstyle"/></xsl:attribute><xsl:apply-templates/></ol></xsl:template>
+
+<xsl:template match="step">
+  <li>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </li>
+</xsl:template>
+
+<xsl:template match="stepalternatives">
+  <xsl:call-template name="anchor"/>
+  <ul>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </ul>
+</xsl:template>
+
+<xsl:template match="step/title">
+  <p>
+    <xsl:call-template name="common.html.attributes"/>
+    <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+      <xsl:apply-templates/>
+    </strong>
+  </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="segmentedlist">
+  <xsl:variable name="presentation">
+    <xsl:call-template name="pi.dbhtml_list-presentation"/>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:choose>
+      <xsl:when test="$presentation = 'table'">
+        <xsl:apply-templates select="." mode="seglist-table"/>
+      </xsl:when>
+      <xsl:when test="$presentation = 'list'">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test="$segmentedlist.as.table != 0">
+        <xsl:apply-templates select="." mode="seglist-table"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="segmentedlist/title">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <strong>
+      <span>
+        <xsl:call-template name="generate.class.attribute"/>
+        <xsl:apply-templates/>
+      </span>
+    </strong>
+  </div>
+</xsl:template>
+
+<xsl:template match="segtitle">
+</xsl:template>
+
+<xsl:template match="segtitle" mode="segtitle-in-seg">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seglistitem">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="seg">
+  <xsl:variable name="segnum" select="count(preceding-sibling::seg)+1"/>
+  <xsl:variable name="seglist" select="ancestor::segmentedlist"/>
+  <xsl:variable name="segtitles" select="$seglist/segtitle"/>
+
+  <!--
+     Note: segtitle is only going to be the right thing in a well formed
+     SegmentedList.  If there are too many Segs or too few SegTitles,
+     you'll get something odd...maybe an error
+  -->
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <strong>
+      <span class="segtitle">
+        <xsl:apply-templates select="$segtitles[$segnum=position()]" mode="segtitle-in-seg"/>
+        <xsl:text>: </xsl:text>
+      </span>
+    </strong>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="segmentedlist" mode="seglist-table">
+  <xsl:variable name="table-summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <xsl:variable name="list-width">
+    <xsl:call-template name="pi.dbhtml_list-width"/>
+  </xsl:variable>
+
+  <xsl:apply-templates select="title"/>
+
+  <table border="{$table.border.off}">
+    <xsl:if test="$list-width != ''">
+      <xsl:attribute name="width">
+        <xsl:value-of select="$list-width"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$table-summary != '' and $div.element != 'section'">
+      <xsl:attribute name="summary">
+        <xsl:value-of select="$table-summary"/>
+      </xsl:attribute>
+    </xsl:if>
+    <thead>
+      <tr class="segtitle">
+        <xsl:call-template name="tr.attributes">
+          <xsl:with-param name="row" select="segtitle[1]"/>
+          <xsl:with-param name="rownum" select="1"/>
+        </xsl:call-template>
+        <xsl:apply-templates select="segtitle" mode="seglist-table"/>
+      </tr>
+    </thead>
+    <tbody>
+      <xsl:apply-templates select="seglistitem" mode="seglist-table"/>
+    </tbody>
+  </table>
+</xsl:template>
+
+<xsl:template match="segtitle" mode="seglist-table">
+  <th><xsl:apply-templates/></th>
+</xsl:template>
+
+<xsl:template match="seglistitem" mode="seglist-table">
+  <xsl:variable name="seglinum">
+    <xsl:number from="segmentedlist" count="seglistitem"/>
+  </xsl:variable>
+
+  <tr>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="tr.attributes">
+      <xsl:with-param name="rownum" select="$seglinum + 1"/>
+    </xsl:call-template>
+    <xsl:apply-templates mode="seglist-table"/>
+  </tr>
+</xsl:template>
+
+<xsl:template match="seg" mode="seglist-table">
+  <td>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </td>
+</xsl:template>
+
+<xsl:template match="seg[1]" mode="seglist-table">
+  <td>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select="ancestor::seglistitem"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </td>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="calloutlist">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="title|info/title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <!-- Preserve order of PIs and comments -->
+    <xsl:apply-templates select="*[not(self::callout or self::title or self::titleabbrev)]                    |comment()[not(preceding-sibling::callout)]                    |processing-instruction()[not(preceding-sibling::callout)]"/>
+
+    <xsl:choose>
+      <xsl:when test="$callout.list.table != 0">
+        <table border="{$table.border.off}">
+          <xsl:if test="$div.element != 'section'">
+            <xsl:attribute name="summary">Callout list</xsl:attribute>
+          </xsl:if>
+          <xsl:apply-templates select="callout                                 |comment()[preceding-sibling::callout]                                 |processing-instruction()[preceding-sibling::callout]"/>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <dl>
+          <xsl:apply-templates select="." mode="class.attribute"/>
+          <xsl:apply-templates select="callout                                 |comment()[preceding-sibling::callout]                                 |processing-instruction()[preceding-sibling::callout]"/>
+        </dl>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="calloutlist/title">
+</xsl:template>
+
+<xsl:template match="callout">
+  <xsl:choose>
+    <xsl:when test="$callout.list.table != 0">
+      <tr>
+        <xsl:call-template name="tr.attributes">
+          <xsl:with-param name="rownum">
+            <xsl:number from="calloutlist" count="callout"/>
+          </xsl:with-param>
+        </xsl:call-template>
+
+        <td valign="top" align="{$direction.align.start}">
+          <xsl:call-template name="id.attribute"/>
+          <p>
+            <xsl:call-template name="anchor"/>
+            <xsl:call-template name="callout.arearefs">
+              <xsl:with-param name="arearefs" select="@arearefs"/>
+            </xsl:call-template>
+          </p>
+        </td>
+        <td valign="top" align="{$direction.align.start}">
+          <xsl:apply-templates/>
+        </td>
+      </tr>
+    </xsl:when>
+    <xsl:otherwise>
+      <dt>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:call-template name="anchor"/>
+        <xsl:call-template name="callout.arearefs">
+          <xsl:with-param name="arearefs" select="@arearefs"/>
+        </xsl:call-template>
+      </dt>
+      <dd><xsl:apply-templates/></dd>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="callout/simpara" priority="2">
+  <!-- If a callout contains only a single simpara, don't output
+       the <p> wrapper; this has the effect of creating an li
+       with simple text content. -->
+  <xsl:choose>
+    <xsl:when test="not(preceding-sibling::*)                     and not (following-sibling::*)">
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="@role and $para.propagates.style != 0">
+          <xsl:choose>
+            <xsl:when test="@role and $para.propagates.style != 0">
+              <xsl:call-template name="common.html.attributes">
+                <xsl:with-param name="class" select="@role"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="common.html.attributes"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:if>
+
+        <xsl:call-template name="anchor"/>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="callout.arearefs">
+  <xsl:param name="arearefs"/>
+  <xsl:if test="$arearefs!=''">
+    <xsl:choose>
+      <xsl:when test="substring-before($arearefs,' ')=''">
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef" select="$arearefs"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef" select="substring-before($arearefs,' ')"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="callout.arearefs">
+      <xsl:with-param name="arearefs" select="substring-after($arearefs,' ')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="callout.arearef">
+  <xsl:param name="arearef"/>
+  <xsl:variable name="targets" select="key('id',$arearef)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="$arearef"/>
+  </xsl:call-template>
+
+  <xsl:choose>
+    <xsl:when test="count($target)=0">
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($target)='co'">
+      <a>
+        <xsl:attribute name="href">
+          <xsl:text>#</xsl:text>
+          <xsl:value-of select="$arearef"/>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target" mode="callout-bug"/>
+      </a>
+      <xsl:text> </xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($target)='areaset'">
+      <xsl:call-template name="callout-bug">
+        <xsl:with-param name="conum">
+          <xsl:apply-templates select="$target" mode="conumber"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($target)='area'">
+      <xsl:choose>
+        <xsl:when test="$target/parent::areaset">
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target/parent::areaset" mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target" mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>???</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="orderedlist-starting-number">
+  <xsl:param name="list" select="."/>
+  <xsl:variable name="pi-start">
+    <xsl:call-template name="pi.dbhtml_start">
+      <xsl:with-param name="node" select="$list"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:call-template name="output-orderedlist-starting-number">
+    <xsl:with-param name="list" select="$list"/>
+    <xsl:with-param name="pi-start" select="$pi-start"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/maketoc.xsl b/applications/content/template/docbook/xhtml-1_1/maketoc.xsl
new file mode 100644
index 0000000..0c5d90b
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/maketoc.xsl
@@ -0,0 +1,91 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="docbook.xsl"/>
+<xsl:import href="chunk.xsl"/>
+
+<xsl:output method="xml" indent="no" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>
+
+<xsl:param name="toc.list.type" select="'tocentry'"/>
+
+<!-- refentry in autotoc.xsl does not use subtoc, so must
+     handle it explicitly here. -->
+<xsl:template match="refentry" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+
+<xsl:template name="subtoc">
+  <xsl:param name="nodes" select="NOT-AN-ELEMENT"/>
+  <xsl:variable name="filename">
+    <xsl:apply-templates select="." mode="chunk-filename"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:if test="$chunk != 0">
+    <xsl:call-template name="indent-spaces"/>
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:variable>
+    <tocentry linkend="{$id}">
+      <xsl:processing-instruction name="dbhtml">
+        <xsl:text>filename="</xsl:text>
+        <xsl:value-of select="$filename"/>
+        <xsl:text>"</xsl:text>
+      </xsl:processing-instruction>
+      <xsl:text>
+</xsl:text>
+      <xsl:apply-templates mode="toc" select="$nodes"/>
+      <xsl:call-template name="indent-spaces"/>
+    </tocentry>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="indent-spaces">
+  <xsl:param name="node" select="."/>
+  <xsl:text>  </xsl:text>
+  <xsl:if test="$node/parent::*">
+    <xsl:call-template name="indent-spaces">
+      <xsl:with-param name="node" select="$node/parent::*"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/" priority="-1">
+  <xsl:text>
+</xsl:text>
+  <toc role="chunk-toc">
+    <xsl:text>
+</xsl:text>
+    <xsl:apply-templates select="/" mode="toc"/>
+  </toc>
+  <xsl:text>
+</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/manifest.xsl b/applications/content/template/docbook/xhtml-1_1/manifest.xsl
new file mode 100644
index 0000000..40023b3
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/manifest.xsl
@@ -0,0 +1,22 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- OBSOLETE. The templates from this file were moved to                 -->
+<!-- chunk-common.xsl and chunk-code.xsl.                                 -->
+<!-- ==================================================================== -->
+
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/math.xsl b/applications/content/template/docbook/xhtml-1_1/math.xsl
new file mode 100644
index 0000000..4af9fcd
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/math.xsl
@@ -0,0 +1,285 @@
+<?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:mml="http://www.w3.org/1998/Math/MathML" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="mml" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="inlineequation">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="alt">
+</xsl:template>
+
+<xsl:template match="mathphrase">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- "Support" for MathML -->
+
+<xsl:template match="mml:*">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+<!-- Support for TeX math in alt -->
+
+<xsl:template match="*" mode="collect.tex.math">
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename" select="$tex.math.file"/>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+      <xsl:choose>
+        <xsl:when test="$tex.math.in.alt = 'plain'">
+          <xsl:call-template name="tex.math.plain.head"/>
+          <xsl:apply-templates select="." mode="collect.tex.math.plain"/>
+          <xsl:call-template name="tex.math.plain.tail"/>
+        </xsl:when>
+        <xsl:when test="$tex.math.in.alt = 'latex'">
+          <xsl:call-template name="tex.math.latex.head"/>
+          <xsl:apply-templates select="." mode="collect.tex.math.latex"/>
+          <xsl:call-template name="tex.math.latex.tail"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            Unsupported TeX math notation: 
+            <xsl:value-of select="$tex.math.in.alt"/>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$chunker.output.encoding"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- PlainTeX -->
+
+<xsl:template name="tex.math.plain.head">
+  <xsl:text>\nopagenumbers 
+</xsl:text>
+</xsl:template>
+
+<xsl:template name="tex.math.plain.tail">
+  <xsl:text>\bye 
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="inlineequation" mode="collect.tex.math.plain">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="graphic">
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="graphic"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.filename">
+          <xsl:with-param name="olist" select="inlinemediaobject/*"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="output.delims">
+    <xsl:call-template name="tex.math.output.delims"/>
+  </xsl:variable>
+  <xsl:variable name="tex" select="alt[@role='tex'] | inlinemediaobject/textobject[@role='tex']"/>
+  <xsl:if test="$tex">
+    <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:text>} 
+</xsl:text>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$</xsl:text>
+    </xsl:if>
+    <xsl:value-of select="$tex"/>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$ 
+</xsl:text>
+    </xsl:if>
+    <xsl:text>\vfill\eject 
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="equation|informalequation" mode="collect.tex.math.plain">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="graphic">
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="graphic"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.filename">
+          <xsl:with-param name="olist" select="mediaobject/*"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="output.delims">
+    <xsl:call-template name="tex.math.output.delims"/>
+  </xsl:variable>
+  <xsl:variable name="tex" select="alt[@role='tex'] | mediaobject/textobject[@role='tex']"/>
+  <xsl:if test="$tex">
+    <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:text>} 
+</xsl:text>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$$</xsl:text>
+    </xsl:if>
+    <xsl:value-of select="$tex"/>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$$ 
+</xsl:text>
+    </xsl:if>
+    <xsl:text>\vfill\eject 
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="collect.tex.math.plain"/>
+
+<!-- LaTeX -->
+
+<xsl:template name="tex.math.latex.head">
+  <xsl:text>\documentclass{article} 
+</xsl:text>
+  <xsl:text>\pagestyle{empty} 
+</xsl:text>
+  <xsl:text>\begin{document} 
+</xsl:text>
+</xsl:template>
+
+<xsl:template name="tex.math.latex.tail">
+  <xsl:text>\end{document} 
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="inlineequation" mode="collect.tex.math.latex">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="graphic">
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="graphic"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.filename">
+          <xsl:with-param name="olist" select="inlinemediaobject/*"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="output.delims">
+    <xsl:call-template name="tex.math.output.delims"/>
+  </xsl:variable>
+  <xsl:variable name="tex" select="alt[@role='tex'] | inlinemediaobject/textobject[@role='tex']"/>
+  <xsl:if test="$tex">
+    <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:text>} 
+</xsl:text>
+    <xsl:if test="$output.delims != 0">  
+      <xsl:text>$</xsl:text>
+    </xsl:if>
+    <xsl:value-of select="$tex"/>
+    <xsl:if test="$output.delims != 0">  
+      <xsl:text>$ 
+</xsl:text>
+    </xsl:if>
+    <xsl:text>\newpage 
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="equation|informalequation" mode="collect.tex.math.latex">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="graphic">
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="graphic"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.filename">
+          <xsl:with-param name="olist" select="mediaobject/*"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="output.delims">
+    <xsl:call-template name="tex.math.output.delims"/>
+  </xsl:variable>
+  <xsl:variable name="tex" select="alt[@role='tex'] | mediaobject/textobject[@role='tex']"/>
+  <xsl:if test="$tex">
+    <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:text>} 
+</xsl:text>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$$</xsl:text>
+    </xsl:if>
+    <xsl:value-of select="$tex"/>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$$ 
+</xsl:text>
+    </xsl:if>
+    <xsl:text>\newpage 
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="collect.tex.math.latex"/>
+
+<!-- Extracting image filename from mediaobject and graphic elements -->
+
+<xsl:template name="select.mediaobject.filename">
+  <xsl:param name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject|textobject"/>
+
+  <xsl:variable name="mediaobject.index">
+    <xsl:call-template name="select.mediaobject.index">
+      <xsl:with-param name="olist" select="$olist"/>
+      <xsl:with-param name="count" select="1"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$mediaobject.index != ''">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select="$olist[position() = $mediaobject.index]"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="tex.math.output.delims">
+  <xsl:variable name="pi.delims">
+    <xsl:call-template name="pi.dbtex_delims">
+      <xsl:with-param name="node" select="descendant-or-self::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="result">
+    <xsl:choose>
+      <xsl:when test="$pi.delims = 'no'">0</xsl:when>
+      <xsl:when test="$pi.delims = '' and $tex.math.delims = 0">0</xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:value-of select="$result"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/oldchunker.xsl b/applications/content/template/docbook/xhtml-1_1/oldchunker.xsl
new file mode 100644
index 0000000..5f7c42a
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/oldchunker.xsl
@@ -0,0 +1,176 @@
+<?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:saxon="http://icl.com/saxon" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:redirect="http://xml.apache.org/xalan/redirect" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.1" exclude-result-prefixes="doc" extension-element-prefixes="saxon redirect lxslt">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This stylesheet works with Saxon and Xalan; for XT use xtchunker.xsl -->
+
+<!-- ==================================================================== -->
+
+<xsl:param name="default.encoding" select="'ISO-8859-1'" doc:type="string"/>
+
+<doc:param xmlns="" name="default.encoding">
+<refpurpose xmlns="http://www.w3.org/1999/xhtml">Encoding used in generated HTML pages</refpurpose>
+<refdescription xmlns="http://www.w3.org/1999/xhtml">
+<para>This encoding is used in files generated by chunking stylesheet. Currently
+only Saxon is able to change output encoding.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="saxon.character.representation" select="'entity;decimal'" doc:type="string"/>
+
+<doc:param xmlns="" name="saxon.character.representation">
+<refpurpose xmlns="http://www.w3.org/1999/xhtml">Saxon character representation used in generated HTML pages</refpurpose>
+<refdescription xmlns="http://www.w3.org/1999/xhtml">
+<para>This character representation is used in files generated by chunking stylesheet. If
+you want to suppress entity references for characters with direct representation 
+in default.encoding, set this parameter to value <literal>native</literal>. 
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+  <xsl:param name="base.dir" select="'./'"/>
+  <xsl:param name="base.name" select="''"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>Chunking isn't supported with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="$default.encoding"/>
+  <xsl:param name="indent" select="'no'"/>
+  <xsl:param name="content" select="''"/>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:if test="name(.) != ''">
+      <xsl:text> for </xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:if test="@id">
+        <xsl:text>(</xsl:text>
+        <xsl:value-of select="@id"/>
+        <xsl:text>)</xsl:text>
+      </xsl:if>
+    </xsl:if>
+  </xsl:message>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON 6.2')">
+      <!-- Saxon 6.2.x uses xsl:document -->
+      <xsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </xsl:document>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon uses saxon:output -->
+      <saxon:output file="{$filename}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </saxon:output>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan uses redirect -->
+      <redirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </redirect:write>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk.with.doctype">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="$default.encoding"/>
+  <xsl:param name="indent" select="'no'"/>
+  <xsl:param name="doctype-public" select="''"/>
+  <xsl:param name="doctype-system" select="''"/>
+  <xsl:param name="content" select="''"/>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:if test="name(.) != ''">
+      <xsl:text> for </xsl:text>
+      <xsl:value-of select="name(.)"/>
+    </xsl:if>
+  </xsl:message>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON 6.2')">
+      <!-- Saxon 6.2.x uses xsl:document -->
+      <xsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </xsl:document>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon uses saxon:output -->
+      <saxon:output file="{$filename}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </saxon:output>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan uses redirect -->
+      <redirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </redirect:write>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/onechunk.xsl b/applications/content/template/docbook/xhtml-1_1/onechunk.xsl
new file mode 100644
index 0000000..2b05307
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/onechunk.xsl
@@ -0,0 +1,36 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="chunk.xsl"/>
+
+<!-- Ok, using the onechunk parameter makes this all work again. -->
+<!-- It does have the disadvantage that it only works for documents that have -->
+<!-- a root element that is considered a chunk by the chunk.xsl stylesheet. -->
+<!-- Ideally, onechunk would let anything be a chunk. But not today. -->
+
+<xsl:param name="onechunk" select="1"/>
+<xsl:param name="suppress.navigation">1</xsl:param>
+
+<xsl:template name="href.target.uri">
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/param.xsl b/applications/content/template/docbook/xhtml-1_1/param.xsl
new file mode 100644
index 0000000..82da7d9
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/param.xsl
@@ -0,0 +1,448 @@
+<?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$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:param name="abstract.notitle.enabled" select="0"/>
+<xsl:param name="admon.graphics.extension">.png</xsl:param>
+<xsl:param name="admon.graphics" select="0"/>
+<xsl:param name="admon.graphics.path">images/</xsl:param>
+<xsl:param name="admon.style">
+  <xsl:value-of select="concat('margin-', $direction.align.start,            ': 0.5in; margin-', $direction.align.end, ': 0.5in;')"/>
+</xsl:param>
+<xsl:param name="admon.textlabel" select="1"/>
+<xsl:param name="annotate.toc" select="1"/>
+<xsl:param name="annotation.css">
+/* ======================================================================
+   Annotations
+*/
+
+div.annotation-list  { visibility: hidden;
+                     }
+
+div.annotation-nocss { position: absolute;
+                       visibility: hidden;
+                     }
+
+div.annotation-popup { position: absolute;
+                       z-index: 4;
+                       visibility: hidden;
+                       padding: 0px;
+                       margin: 2px;
+                       border-style: solid;
+                       border-width: 1px;
+                       width: 200px;
+		       background-color: white;
+                     }
+
+div.annotation-title { padding: 1px;
+                       font-weight: bold;
+                       border-bottom-style: solid;
+                       border-bottom-width: 1px;
+		       color: white;
+		       background-color: black;
+                     }
+
+div.annotation-body  { padding: 2px;
+                     }
+
+div.annotation-body p { margin-top: 0px;
+                        padding-top: 0px;
+                      }
+
+div.annotation-close { position: absolute;
+                       top: 2px;
+                       right: 2px;
+                     }
+</xsl:param>
+<xsl:param name="annotation.graphic.close">
+http://docbook.sourceforge.net/release/images/annot-close.png</xsl:param>
+<xsl:param name="annotation.graphic.open">http://docbook.sourceforge.net/release/images/annot-open.png</xsl:param>
+
+<xsl:param name="annotation.js">
+<xsl:text>http://docbook.sourceforge.net/release/script/AnchorPosition.js http://docbook.sourceforge.net/release/script/PopupWindow.js</xsl:text></xsl:param>
+
+<xsl:param name="annotation.support" select="0"/>
+<xsl:param name="appendix.autolabel">A</xsl:param>
+<xsl:param name="author.othername.in.middle" select="1"/>
+<xsl:param name="autotoc.label.in.hyperlink" select="1"/>
+<xsl:param name="autotoc.label.separator">. </xsl:param>
+<xsl:param name="base.dir"/>
+<xsl:param name="biblioentry.item.separator">. </xsl:param>
+<xsl:param name="bibliography.collection">http://docbook.sourceforge.net/release/bibliography/bibliography.xml</xsl:param>
+
+<xsl:param name="bibliography.numbered" select="0"/>
+<xsl:param name="bibliography.style">normal</xsl:param>
+<xsl:param name="blurb.on.titlepage.enabled" select="0"/>
+<xsl:param name="bridgehead.in.toc" select="0"/>
+<xsl:param name="callout.defaultcolumn">60</xsl:param>
+<xsl:param name="callout.graphics.extension">.png</xsl:param>
+
+<xsl:param name="callout.graphics" select="1"/>
+<xsl:param name="callout.graphics.number.limit">15</xsl:param>
+
+<xsl:param name="callout.graphics.path">images/callouts/</xsl:param>
+<xsl:param name="callout.list.table" select="1"/>
+<xsl:param name="callout.unicode" select="0"/>
+<xsl:param name="callout.unicode.number.limit">10</xsl:param>
+<xsl:param name="callout.unicode.start.character">10102</xsl:param>
+<xsl:param name="callouts.extension" select="1"/>
+<xsl:param name="chapter.autolabel" select="1"/>
+<xsl:param name="chunk.append"/>
+<xsl:param name="chunk.first.sections" select="0"/>
+<xsl:param name="chunk.quietly" select="0"/>
+<xsl:param name="chunk.section.depth" select="1"/>
+<xsl:param name="chunk.separate.lots" select="0"/>
+<xsl:param name="chunk.toc"/>
+<xsl:param name="chunk.tocs.and.lots" select="0"/>
+<xsl:param name="chunk.tocs.and.lots.has.title" select="1"/>
+<xsl:param name="chunked.filename.prefix"/>
+<xsl:param name="citerefentry.link" select="0"/>
+<xsl:param name="collect.xref.targets">no</xsl:param>
+<xsl:param name="component.label.includes.part.label" select="0"/>
+<xsl:param name="contrib.inline.enabled">1</xsl:param>
+<xsl:param name="css.decoration" select="0"/>
+<xsl:param name="current.docid"/>
+<xsl:param name="custom.css.source"/>
+<xsl:param name="default.float.class">
+  <xsl:choose>
+    <xsl:when test="contains($stylesheet.result.type,'html')">left</xsl:when>
+    <xsl:otherwise>before</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="default.image.width"/>
+<xsl:param name="default.table.frame">all</xsl:param>
+<xsl:param name="default.table.width"/>
+<xsl:param name="docbook.css.link" select="1"/>
+<xsl:param name="docbook.css.source">docbook.css.xml</xsl:param>
+<xsl:param name="draft.mode">no</xsl:param>
+<xsl:param name="draft.watermark.image">images/draft.png</xsl:param>
+<xsl:param name="ebnf.assignment">
+<code>::=</code>
+</xsl:param>
+
+<xsl:param name="ebnf.statement.terminator"/>
+
+<xsl:param name="ebnf.table.bgcolor">#F5DCB3</xsl:param>
+<xsl:param name="ebnf.table.border" select="1"/>
+<xsl:param name="eclipse.autolabel" select="0"/>
+<xsl:param name="eclipse.plugin.id">com.example.help</xsl:param>
+<xsl:param name="eclipse.plugin.name">DocBook Online Help Sample</xsl:param>
+<xsl:param name="eclipse.plugin.provider">Example provider</xsl:param>
+<xsl:param name="editedby.enabled">1</xsl:param>
+<xsl:param name="email.delimiters.enabled" select="1"/>
+<xsl:param name="emphasis.propagates.style" select="1"/>
+<xsl:param name="entry.propagates.style" select="1"/>
+<xsl:param name="exsl.node.set.available"> 
+  <xsl:choose>
+    <xsl:when xmlns:exsl="http://exslt.org/common" exsl:foo="" test="function-available('exsl:node-set') or                        contains(system-property('xsl:vendor'),                          'Apache Software Foundation')">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="firstterm.only.link" select="0"/>
+<xsl:param name="footer.rule" select="1"/>
+<xsl:param name="footnote.number.format">1</xsl:param>
+<xsl:param name="footnote.number.symbols"/>
+<xsl:param name="formal.procedures" select="1"/>
+<xsl:param name="formal.title.placement">
+figure before
+example before
+equation before
+table before
+procedure before
+task before
+</xsl:param>
+<xsl:param name="funcsynopsis.decoration" select="1"/>
+<xsl:param name="funcsynopsis.style">kr</xsl:param>
+<xsl:param name="function.parens" select="0"/>
+<xsl:param name="generate.consistent.ids" select="0"/>
+<xsl:param name="generate.css.header" select="0"/>
+<xsl:param name="generate.id.attributes" select="0"/>
+<xsl:param name="generate.index" select="1"/>
+<xsl:param name="generate.legalnotice.link" select="0"/>
+<xsl:param name="generate.manifest" select="0"/>
+<xsl:param name="generate.meta.abstract" select="1"/>
+<xsl:param name="generate.revhistory.link" select="0"/>
+<xsl:param name="generate.section.toc.level" select="0"/>
+<xsl:param name="generate.toc">
+appendix  toc,title
+article/appendix  nop
+article   toc,title
+book      toc,title,figure,table,example,equation
+chapter   toc,title
+part      toc,title
+preface   toc,title
+qandadiv  toc
+qandaset  toc
+reference toc,title
+sect1     toc
+sect2     toc
+sect3     toc
+sect4     toc
+sect5     toc
+section   toc
+set       toc,title
+</xsl:param>
+
+<xsl:param name="glossary.collection"/>
+<xsl:param name="glossary.sort" select="0"/>
+<xsl:param name="glossentry.show.acronym">no</xsl:param>
+<xsl:param name="glossterm.auto.link" select="0"/>
+<xsl:param name="graphic.default.extension"/>
+<xsl:param name="graphicsize.extension" select="1"/>
+<xsl:param name="graphicsize.use.img.src.path" select="0"/>
+<xsl:param name="header.rule" select="1"/>
+<xsl:param name="highlight.default.language"/>
+<xsl:param name="highlight.source" select="0"/>
+<xsl:param name="highlight.xslthl.config"/>
+<xsl:param name="html.append"/>
+<xsl:param name="html.base"/>
+<xsl:param name="html.cellpadding"/>
+<xsl:param name="html.cellspacing"/>
+<xsl:param name="html.cleanup" select="1"/>
+<xsl:param name="html.ext">.html</xsl:param>
+<xsl:param name="html.extra.head.links" select="0"/>
+<xsl:param name="html.head.legalnotice.link.multiple" select="1"/>
+<xsl:param name="html.head.legalnotice.link.types">copyright</xsl:param>
+<xsl:param name="html.longdesc" select="0"/>
+<xsl:param name="html.longdesc.link" select="$html.longdesc"/>
+<xsl:param name="html.script"/>
+<xsl:param name="html.script.type">text/javascript</xsl:param>
+<xsl:param name="html.stylesheet"/>
+<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+<xsl:param name="htmlhelp.alias.file">alias.h</xsl:param>
+<xsl:param name="htmlhelp.autolabel" select="0"/>
+<xsl:param name="htmlhelp.button.back" select="1"/>
+<xsl:param name="htmlhelp.button.forward" select="0"/>
+<xsl:param name="htmlhelp.button.hideshow" select="1"/>
+<xsl:param name="htmlhelp.button.home" select="0"/>
+<xsl:param name="htmlhelp.button.home.url"/>
+<xsl:param name="htmlhelp.button.jump1" select="0"/>
+<xsl:param name="htmlhelp.button.jump1.title">User1</xsl:param>
+<xsl:param name="htmlhelp.button.jump1.url"/>
+<xsl:param name="htmlhelp.button.jump2" select="0"/>
+<xsl:param name="htmlhelp.button.jump2.title">User2</xsl:param>
+<xsl:param name="htmlhelp.button.jump2.url"/>
+<xsl:param name="htmlhelp.button.locate" select="0"/>
+<xsl:param name="htmlhelp.button.next" select="1"/>
+<xsl:param name="htmlhelp.button.options" select="1"/>
+<xsl:param name="htmlhelp.button.prev" select="1"/>
+<xsl:param name="htmlhelp.button.print" select="1"/>
+<xsl:param name="htmlhelp.button.refresh" select="0"/>
+<xsl:param name="htmlhelp.button.stop" select="0"/>
+<xsl:param name="htmlhelp.button.zoom" select="0"/>
+<xsl:param name="htmlhelp.chm">htmlhelp.chm</xsl:param>
+<xsl:param name="htmlhelp.default.topic"/>
+<xsl:param name="htmlhelp.display.progress" select="1"/>
+<xsl:param name="htmlhelp.encoding">iso-8859-1</xsl:param>
+<xsl:param name="htmlhelp.enhanced.decompilation" select="0"/>
+<xsl:param name="htmlhelp.enumerate.images" select="0"/>
+<xsl:param name="htmlhelp.force.map.and.alias" select="0"/>
+<xsl:param name="htmlhelp.hhc.binary" select="1"/>
+<xsl:param name="htmlhelp.hhc.folders.instead.books" select="1"/>
+<xsl:param name="htmlhelp.hhc">toc.hhc</xsl:param>
+<xsl:param name="htmlhelp.hhc.section.depth">5</xsl:param>
+<xsl:param name="htmlhelp.hhc.show.root" select="1"/>
+<xsl:param name="htmlhelp.hhc.width"/>
+<xsl:param name="htmlhelp.hhk">index.hhk</xsl:param>
+<xsl:param name="htmlhelp.hhp">htmlhelp.hhp</xsl:param>
+<xsl:param name="htmlhelp.hhp.tail"/>
+<xsl:param name="htmlhelp.hhp.window">Main</xsl:param>
+<xsl:param name="htmlhelp.hhp.windows"/>
+<xsl:param name="htmlhelp.map.file">context.h</xsl:param>
+<xsl:param name="htmlhelp.only" select="0"/>
+<xsl:param name="htmlhelp.remember.window.position" select="0"/>
+<xsl:param name="htmlhelp.show.advanced.search" select="0"/>
+<xsl:param name="htmlhelp.show.favorities" select="0"/>
+<xsl:param name="htmlhelp.show.menu" select="0"/>
+<xsl:param name="htmlhelp.show.toolbar.text" select="1"/>
+<xsl:param name="htmlhelp.title"/>
+<xsl:param name="htmlhelp.use.hhk" select="0"/>
+<xsl:param name="htmlhelp.window.geometry"/>
+<xsl:param name="id.warnings" select="0"/>
+<xsl:param name="ignore.image.scaling" select="0"/>
+<xsl:param name="img.src.path"/>
+<xsl:param name="index.links.to.section" select="1"/>
+<xsl:param name="index.method">basic</xsl:param>
+<xsl:param name="index.number.separator"/>
+<xsl:param name="index.on.role" select="0"/>
+<xsl:param name="index.on.type" select="0"/>
+<xsl:param name="index.prefer.titleabbrev" select="0"/>
+<xsl:param name="index.range.separator"/>
+<xsl:param name="index.term.separator"/>
+<xsl:param name="inherit.keywords" select="1"/>
+<xsl:param name="insert.olink.page.number">no</xsl:param>
+<xsl:param name="insert.olink.pdf.frag" select="0"/>
+<xsl:param name="insert.xref.page.number">no</xsl:param>
+<xsl:param name="javahelp.encoding">iso-8859-1</xsl:param>
+<xsl:param name="keep.relative.image.uris" select="1"/>
+
+<xsl:param name="l10n.gentext.default.language">en</xsl:param>
+<xsl:param name="l10n.gentext.language"/>
+<xsl:param name="l10n.gentext.use.xref.language" select="0"/>
+<xsl:param name="l10n.lang.value.rfc.compliant" select="1"/>
+<xsl:param name="label.from.part" select="0"/>
+<xsl:param name="linenumbering.everyNth">5</xsl:param>
+<xsl:param name="linenumbering.extension" select="1"/>
+<xsl:param name="linenumbering.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="linenumbering.width">3</xsl:param>
+<xsl:param name="link.mailto.url"/>
+<xsl:param name="make.clean.html" select="0"/>
+<xsl:param name="make.graphic.viewport" select="1"/>
+<xsl:param name="make.single.year.ranges" select="0"/>
+<xsl:param name="make.valid.html" select="1"/>
+<xsl:param name="make.year.ranges" select="0"/>
+    <xsl:param name="manifest">HTML.manifest</xsl:param>
+    
+<xsl:param name="manifest.in.base.dir" select="0"/>
+<xsl:param name="manual.toc"/>
+<xsl:param name="menuchoice.menu.separator"> &#8594; </xsl:param>
+<xsl:param name="menuchoice.separator">+</xsl:param>
+<xsl:param name="navig.graphics.extension">.gif</xsl:param>
+<xsl:param name="navig.graphics" select="0"/>
+<xsl:param name="navig.graphics.path">images/</xsl:param>
+<xsl:param name="navig.showtitles">1</xsl:param>
+<xsl:param name="nominal.image.depth" select="4 * $pixels.per.inch"/>
+<xsl:param name="nominal.image.width" select="6 * $pixels.per.inch"/>
+<xsl:param name="nominal.table.width">6in</xsl:param>
+<xsl:param name="olink.base.uri"/>
+<xsl:param name="olink.debug" select="0"/>
+<xsl:param name="olink.doctitle">no</xsl:param> 
+<xsl:param name="olink.fragid">fragid=</xsl:param>
+<xsl:param name="olink.lang.fallback.sequence"/>
+<xsl:param name="olink.outline.ext">.olink</xsl:param>
+<xsl:attribute-set name="olink.properties">
+  <xsl:attribute name="show-destination">replace</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="olink.pubid">pubid</xsl:param>
+  <xsl:param name="olink.resolver">/cgi-bin/olink</xsl:param>
+<xsl:param name="olink.sysid">sysid</xsl:param>
+<xsl:param name="othercredit.like.author.enabled">0</xsl:param>
+<xsl:param name="para.propagates.style" select="1"/>
+<xsl:param name="part.autolabel">I</xsl:param>
+<xsl:param name="phrase.propagates.style" select="1"/>
+<xsl:param name="pixels.per.inch">90</xsl:param>
+<xsl:param name="points.per.em">10</xsl:param>
+<xsl:param name="preface.autolabel" select="0"/>
+<xsl:param name="prefer.internal.olink" select="0"/>
+<xsl:param name="preferred.mediaobject.role"/>
+<xsl:param name="process.empty.source.toc" select="0"/>
+<xsl:param name="process.source.toc" select="0"/>
+<xsl:param name="profile.arch"/>
+<xsl:param name="profile.attribute"/>
+<xsl:param name="profile.audience"/>
+<xsl:param name="profile.condition"/>
+<xsl:param name="profile.conformance"/>
+<xsl:param name="profile.lang"/>
+<xsl:param name="profile.os"/>
+<xsl:param name="profile.revision"/>
+<xsl:param name="profile.revisionflag"/>
+<xsl:param name="profile.role"/>
+<xsl:param name="profile.security"/>
+<xsl:param name="profile.separator">;</xsl:param>
+<xsl:param name="profile.status"/>
+<xsl:param name="profile.userlevel"/>
+<xsl:param name="profile.value"/>
+<xsl:param name="profile.vendor"/>
+<xsl:param name="profile.wordsize"/>
+<xsl:param name="punct.honorific">.</xsl:param>
+<xsl:param name="qanda.defaultlabel">number</xsl:param>
+<xsl:param name="qanda.in.toc" select="0"/>
+<xsl:param name="qanda.inherit.numeration" select="1"/>
+<xsl:param name="qanda.nested.in.toc" select="0"/>
+<xsl:param name="qandadiv.autolabel" select="1"/>
+<xsl:param name="refclass.suppress" select="0"/>
+<xsl:param name="refentry.generate.name" select="1"/>
+<xsl:param name="refentry.generate.title" select="0"/>
+<xsl:param name="refentry.separator" select="1"/>
+<xsl:param name="refentry.xref.manvolnum" select="1"/>
+  <xsl:param name="reference.autolabel">I</xsl:param>
+<xsl:param name="root.filename">index</xsl:param>
+<xsl:param name="rootid"/>
+<xsl:param name="runinhead.default.title.end.punct">.</xsl:param>
+<xsl:param name="runinhead.title.end.punct">.!?:</xsl:param>
+<xsl:param name="section.autolabel" select="0"/>
+<xsl:param name="section.autolabel.max.depth">8</xsl:param>
+<xsl:param name="section.label.includes.component.label" select="0"/>
+<xsl:param name="segmentedlist.as.table" select="0"/>
+<xsl:param name="shade.verbatim" select="0"/>
+<xsl:attribute-set name="shade.verbatim.style">
+  <xsl:attribute name="border">0</xsl:attribute>
+  <xsl:attribute name="style"><xsl:text>background-color: </xsl:text>#E0E0E0</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:param name="show.comments" select="1"/>
+<xsl:param name="show.revisionflag" select="0"/>
+<xsl:param name="simplesect.in.toc" select="0"/>
+<xsl:param name="spacing.paras" select="0"/>
+<xsl:param name="suppress.footer.navigation">0</xsl:param>
+<xsl:param name="suppress.header.navigation" select="0"/>
+<xsl:param name="suppress.navigation" select="0"/>
+<xsl:param name="table.borders.with.css" select="0"/>
+<xsl:param name="table.cell.border.color"/>
+
+<xsl:param name="table.cell.border.style">solid</xsl:param>
+<xsl:param name="table.cell.border.thickness">0.5pt</xsl:param>
+<xsl:param name="table.footnote.number.format">a</xsl:param>
+<xsl:param name="table.footnote.number.symbols"/>
+<xsl:param name="table.frame.border.color"/>
+
+<xsl:param name="table.frame.border.style">solid</xsl:param>
+<xsl:param name="table.frame.border.thickness">0.5pt</xsl:param>
+<xsl:param name="tablecolumns.extension" select="1"/>
+ <xsl:param name="target.database.document">olinkdb.xml</xsl:param>
+<xsl:param name="targets.filename">target.db</xsl:param>
+<xsl:param name="tex.math.delims" select="1"/>
+<xsl:param name="tex.math.file">tex-math-equations.tex</xsl:param>
+<xsl:param name="tex.math.in.alt"/>
+<xsl:param name="textdata.default.encoding"/>
+  <xsl:param name="textinsert.extension" select="1"/>
+<xsl:param name="toc.list.type">dl</xsl:param>
+<xsl:param name="toc.max.depth">8</xsl:param>
+<xsl:param name="toc.section.depth">2</xsl:param>
+<xsl:param name="ulink.target"/>
+<xsl:param name="use.embed.for.svg" select="0"/>
+<xsl:param name="use.extensions" select="0"/>
+<xsl:param name="use.id.as.filename" select="0"/>
+<xsl:param name="use.local.olink.style" select="0"/> 
+<xsl:param name="use.role.as.xrefstyle" select="1"/>
+<xsl:param name="use.role.for.mediaobject" select="1"/>
+<xsl:param name="use.svg" select="1"/>
+<xsl:param name="variablelist.as.table" select="0"/>
+<xsl:param name="variablelist.term.break.after">0</xsl:param>
+<xsl:param name="variablelist.term.separator">, </xsl:param>
+<xsl:param name="webhelp.autolabel">0</xsl:param>
+<xsl:param name="webhelp.base.dir">docs</xsl:param>
+<xsl:param name="webhelp.common.dir">../common/</xsl:param>
+<xsl:param name="webhelp.default.topic">index.html</xsl:param>
+<xsl:param name="webhelp.include.search.tab">true</xsl:param>
+<xsl:param name="webhelp.indexer.language">en</xsl:param>
+<xsl:param name="webhelp.start.filename">index.html</xsl:param>
+<xsl:param name="webhelp.tree.cookie.id" select="concat( 'treeview-', count(//node()) )"/>
+<xsl:param name="writing.mode">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">writing-mode</xsl:with-param>
+    <xsl:with-param name="lang">
+      <xsl:call-template name="l10n.language">
+        <xsl:with-param name="target" select="/*[1]"/>
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:param>
+<xsl:param name="xref.label-page.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="xref.label-title.separator">: </xsl:param>
+<xsl:param name="xref.title-page.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="xref.with.number.and.title" select="1"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/pi.xsl b/applications/content/template/docbook/xhtml-1_1/pi.xsl
new file mode 100644
index 0000000..1aad1d3
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/pi.xsl
@@ -0,0 +1,1236 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="doc" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns=""><info xmlns="http://www.w3.org/1999/xhtml"><title>HTML Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro xmlns="http://www.w3.org/1999/xhtml" xml:id="partintro">
+    <title>Introduction</title>
+    <para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the DocBook
+      XSL stylesheets for HTML output.
+      <note>
+        <para>You add these PIs at particular points in a document to
+          cause specific &#8220;exceptions&#8221; to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it&#8217;s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+      </note>
+    </para>
+  </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<doc:pi xmlns="" name="dbhtml_background-color">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets background color for an image</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml background-color</tag> PI before or
+      after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
+      <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
+      sibling to the element, to set a background color for the
+      image.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml background-color="<replaceable>color</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
+        <listitem>
+          <para>An HTML color value</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="BGcolor.html">Background color</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_background-color">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'background-color'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_bgcolor">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets background color on a CALS table row or table cell</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml bgcolor</tag> PI as child of a CALS table row
+      or cell to set a background color for that table row or cell.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
+        <listitem>
+          <para>An HTML color value</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="BGtableColor.html#CellBGColor">Cell background color</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_bgcolor">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'bgcolor'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_cellpadding">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies cellpadding in CALS table or qandaset output</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml cellpadding</tag> PI as a child of a
+      CALS <tag>table</tag> or <tag>qandaset</tag> to specify the value
+      for the HTML <literal>cellpadding</literal> attribute in the
+      output HTML table.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml cellpadding="<replaceable>number</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>cellpadding="<replaceable>number</replaceable>"</term>
+        <listitem>
+          <para>Specifies the cellpadding</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>html.cellpadding</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="CellSpacing.html">Cell spacing and cell padding</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_cellpadding">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'cellpadding'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_cellspacing">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies cellspacing in CALS table or qandaset output</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml cellspacing</tag> PI as a child of a
+      CALS <tag>table</tag> or <tag>qandaset</tag> to specify the value
+      for the HTML <literal>cellspacing</literal> attribute in the
+      output HTML table.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml cellspacing="<replaceable>number</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>cellspacing="<replaceable>number</replaceable>"</term>
+        <listitem>
+          <para>Specifies the cellspacing</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>html.cellspacing</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="CellSpacing.html">Cell spacing and cell padding</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+    </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_cellspacing">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'cellspacing'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_class">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Set value of the class attribute for a CALS table row</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml class</tag> PI as a child of a
+      <tag>row</tag> to specify a <literal>class</literal>
+      attribute and value in the HTML output for that row.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml class="<replaceable>name</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>class="<replaceable>name</replaceable>"</term>
+        <listitem>
+          <para>Specifies the class name</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="CSSTableCells.html">Table styles in HTML output</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_class">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'class'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi xmlns="" name="dbhtml_dir">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies a directory name in which to write files</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>When chunking output, use the <tag class="xmlpi">dbhtml dir</tag> PI
+      as a child of a chunk source to cause the output of that
+      chunk to be written to the specified directory; also, use it
+      as a child of a <tag>mediaobject</tag> to specify a
+      directory into which any long-description files for that
+      <tag>mediaobject</tag> will be written.</para>
+
+<para>The output directory specification is inherited by all
+chunks of the descendants of the element.  If descendants need
+to go to a different directory, then add another 
+<tag class="xmlpi">dbhtml dir</tag> processing
+instruction as a child of the source element
+for that chunk, and specify the path relative to the
+ancestor path.</para>
+
+<para>For example, to put most chunk files into 
+<filename class="directory">shared</filename>
+but one chapter into 
+<filename class="directory">exception</filename>
+at the same level, use:</para>
+
+<programlisting>&lt;book&gt;
+  &lt;?dbhtml dir="shared"?&gt;
+  ...
+  &lt;chapter&gt;
+    &lt;?dbhtml dir="../exception"?&gt;
+  &lt;/chapter&gt;
+&lt;/book&gt;
+</programlisting>
+
+
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml dir="<replaceable>path</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>dir="<replaceable>path</replaceable>"</term>
+        <listitem>
+          <para>Specifies the pathname for the directory</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>base.dir</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Chunking.html#dbhtmlDirPI">dbhtml dir processing instruction</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_dir">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'dir'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_filename">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies a filename for a chunk</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+<para>When chunking output, use the <tag class="xmlpi">dbhtml filename</tag>
+      PI as a child of a chunk source to specify a filename for
+      the output file for that chunk. Include the filename suffix.</para>
+
+<para>You cannot include a directory path in the filename value,
+or your links may not work.  Add a 
+<tag class="xmlpi">dbhtml dir</tag> processing instruction
+to specify the output directory. You can also combine the two
+specifications in one processing instruction: 
+<tag class="xmlpi">dbhtml dir="mydir" filename="myfile.html"</tag>.</para>
+
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml filename="<replaceable>filename</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>filename="<replaceable>path</replaceable>"</term>
+        <listitem>
+          <para>Specifies the filename for the file</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>use.id.as.filename</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Chunking.html#DbhtmlFilenames">dbhtml filenames</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_filename">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'filename'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_funcsynopsis-style">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies presentation style for a funcsynopsis</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml funcsynopsis-style</tag> PI as a child of
+      a <tag>funcsynopsis</tag> or anywhere within a funcsynopsis
+      to control the presentation style for output of all
+      <tag>funcprototype</tag> instances within that funcsynopsis.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml funcsynopsis-style="kr"|"ansi"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>funcsynopsis-style="kr"</term>
+        <listitem>
+          <para>Displays <tag>funcprototype</tag> output in K&amp;R style</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>funcsynopsis-style="ansi"</term>
+        <listitem>
+          <para>Displays <tag>funcprototype</tag> output in ANSI style</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>funcsynopsis.style</parameter></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_funcsynopsis-style">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'funcsynopsis-style'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_img.src.path">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies a path to the location of an image file</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml img.src.path</tag> PI before or
+      after an image (<tag>graphic</tag>,
+      <tag>inlinegraphic</tag>, <tag>imagedata</tag>, or
+      <tag>videodata</tag> element) as a sibling to the element,
+      to specify a path to the location of the image; in HTML
+      output, the value specified for the
+      <code>img.src.path</code> attribute is prepended to the
+      filename.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml img.src.path="<replaceable>path</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>img.src.path="<replaceable>path</replaceable>"</term>
+        <listitem>
+          <para>Specifies the pathname to prepend to the name of the image file</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>img.src.path</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="GraphicsLocations.html#UsingFileref">Using fileref</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_img.src.path">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'img.src.path'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_label-width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the label width for a qandaset</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml label-width</tag> PI as a child of a
+      <tag>qandaset</tag> to specify the width of labels.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml label-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the label width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_label-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'label-width'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi xmlns="" name="dbhtml_linenumbering.everyNth">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies interval for line numbers in verbatims</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml linenumbering.everyNth</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the interval at which lines are numbered.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
+        <listitem>
+          <para>Specifies numbering interval; a number is output
+            before every <replaceable>N</replaceable>th line</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>linenumbering.everyNth</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.everyNth">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_linenumbering.separator">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies separator text for line numbers in verbatims</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml linenumbering.separator</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the separator text output between the line numbers and content.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>linenumbering.separator</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.separator">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_linenumbering.width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies width for line numbers in verbatims</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml linenumbering.width</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the width set aside for line numbers.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the width (inluding units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>linenumbering.width</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_list-presentation">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies presentation style for a variablelist or
+    segmentedlist</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml list-presentation</tag> PI as a child of
+      a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
+      control the presentation style for the list (to cause it, for
+      example, to be displayed as a table).</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml list-presentation="list"|"table"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>list-presentation="list"</term>
+        <listitem>
+          <para>Displays the list as a list</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="table"</term>
+        <listitem>
+          <para>Displays the list as a table</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <itemizedlist>
+      <listitem>
+        <para><parameter>variablelist.as.table</parameter></para>
+      </listitem>
+      <listitem>
+        <para><parameter>segmentedlist.as.table</parameter></para>
+      </listitem>
+    </itemizedlist>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_list-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'list-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_list-width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the width of a variablelist or simplelist</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml list-width</tag> PI as a child of a
+      <tag>variablelist</tag> or a <tag>simplelist</tag> presented
+      as a table, to specify the output width.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml list-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the output width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_list-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'list-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_row-height">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the height for a CALS table row</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml row-height</tag> PI as a child of a
+      <tag>row</tag> to specify the height of the row.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml row-height="<replaceable>height</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>row-height="<replaceable>height</replaceable>"</term>
+        <listitem>
+          <para>Specifies the row height (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="RowHeight.html">Row height</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_row-height">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'row-height'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi xmlns="" name="dbhtml_start">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">(obsolete) Sets the starting number on an ordered list</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para><emphasis>This PI is obsolete</emphasis>. The intent of
+      this PI was to provide a means for setting a specific starting
+      number for an ordered list. Instead of this PI, set a value
+      for the <literal>override</literal> attribute on the first
+      <tag>listitem</tag> in the list; that will have the same
+      effect as what this PI was intended for.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml start="<replaceable>character</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>start="<replaceable>character</replaceable>"</term>
+        <listitem>
+          <para>Specifies the character to use as the starting
+            number; use 0-9, a-z, A-Z, or lowercase or uppercase
+            Roman numerals</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Orderedlists.html#ListStartNum">List starting number</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_start">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'start'"/>
+  </xsl:call-template>
+</xsl:template>
+
+  <doc:pi xmlns="" name="dbhtml_stop-chunking">
+	<refpurpose xmlns="http://www.w3.org/1999/xhtml">Do not chunk any descendants of this element.</refpurpose>
+	<refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>When generating chunked HTML output, adding this PI as the child of an element that contains elements that would normally be generated on separate pages if generating chunked output causes chunking to stop at this point. No descendants of the current element will be split into new HTML pages:
+<programlisting>&lt;section&gt;
+&lt;title&gt;Configuring pencil&lt;/title&gt;
+&lt;?dbhtml stop-chunking?&gt;
+
+...
+
+&lt;/section&gt;</programlisting>
+</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml stop-chunking</tag></synopsis>
+  </refsynopsisdiv>	
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Chunking.html">Chunking into multiple HTML files</link></para>
+  </refsee>
+  </doc:pi>
+  <!-- The code that handles the stop-chunking pi is in chunk-common.xsl -->
+
+<doc:pi xmlns="" name="dbhtml_table-summary">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies summary for CALS table, variablelist, segmentedlist, or qandaset output</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml table-summary</tag> PI as a child of
+      a CALS <tag>table</tag>, <tag>variablelist</tag>,
+      <tag>segmentedlist</tag>, or <tag>qandaset</tag> to specify
+      the text for the HTML <literal>summary</literal> attribute
+      in the output HTML table.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml table-summary="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>table-summary="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the summary text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link>,
+      <link role="tcg" xlink:href="TableSummary.html">Table summary text</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_table-summary">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'table-summary'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_table-width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the width for a CALS table</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml table-width</tag> PI as a child of a
+      CALS <tag>table</tag> to specify the width of the table in
+      output.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml table-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the table width (including units or as a percentage)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>default.table.width</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Tables.html#TableWidth">Table width</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_table-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'table-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_term-presentation">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets character formatting for terms in a variablelist</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml term-presentation</tag> PI as a child
+      of a <tag>variablelist</tag> to set character formatting for
+      the <tag>term</tag> output of the list.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml term-presentation="bold"|"italic"|"bold-italic"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>term-presentation="<replaceable>bold</replaceable>"</term>
+        <listitem>
+          <para>Specifies that terms are displayed in bold</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>term-presentation="<replaceable>italic</replaceable>"</term>
+        <listitem>
+          <para>Specifies that terms are displayed in italic</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>term-presentation="<replaceable>bold-italic</replaceable>"</term>
+        <listitem>
+          <para>Specifies that terms are displayed in bold-italic</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'term-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_term-separator">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies separator text among terms in a varlistentry</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml term-separator</tag> PI as a child
+      of a <tag>variablelist</tag> to specify the separator text
+      among <tag>term</tag> instances.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml term-separator="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>term-separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>variablelist.term.separator</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-separator">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'term-separator'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_term-width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the term width for a variablelist</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml term-width</tag> PI as a child of a
+      <tag>variablelist</tag> to specify the width for
+      <tag>term</tag> output.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml term-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the term width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'term-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_toc">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies whether a TOC should be generated for a qandaset</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml toc</tag> PI as a child of a
+      <tag>qandaset</tag> to specify whether a table of contents
+      (TOC) is generated for the <tag>qandaset</tag>.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml toc="0"|"1"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>toc="0"</term>
+        <listitem>
+          <para>If zero, no TOC is generated</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>toc="1"</term>
+        <listitem>
+          <para>If <code>1</code> (or any non-zero value),
+            a TOC is generated</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="QandAtoc.html">Q and A list of questions</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_toc">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'toc'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbcmdlist">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Generates a hyperlinked list of commands</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbcmdlist</tag> PI as the child of any
+      element (for example, <tag>refsynopsisdiv</tag>) containing multiple
+      <tag>cmdsynopsis</tag> instances; a hyperlinked navigational
+      &#8220;command list&#8221; will be generated at the top of output for that
+      element, enabling users to quickly jump
+      to each command synopsis.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbcmdlist</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <para>[No parameters]</para>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbcmdlist">
+  <xsl:variable name="cmdsynopses" select="..//cmdsynopsis"/>
+  <xsl:if test="count($cmdsynopses)&lt;1">
+    <xsl:message><xsl:text>No cmdsynopsis elements matched dbcmdlist PI, perhaps it's nested too deep?</xsl:text>
+    </xsl:message>
+  </xsl:if>
+  <dl>
+    <xsl:call-template name="process.cmdsynopsis.list">
+      <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+    </xsl:call-template>
+  </dl>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbfunclist">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Generates a hyperlinked list of functions</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbfunclist</tag> PI as the child of any
+      element (for example, <tag>refsynopsisdiv</tag>) containing multiple
+      <tag>funcsynopsis</tag> instances; a hyperlinked
+      navigational &#8220;function list&#8221; will be generated at the top of
+      output for that element, enabling users to quickly
+      jump to to each function synopsis.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbfunclist</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <para>[No parameters]</para>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfunclist">
+  <xsl:variable name="funcsynopses" select="..//funcsynopsis"/>
+  <xsl:if test="count($funcsynopses)&lt;1">
+    <xsl:message><xsl:text>No funcsynopsis elements matched dbfunclist PI, perhaps it's nested too deep?</xsl:text>
+    </xsl:message>
+  </xsl:if>
+  <dl>
+    <xsl:call-template name="process.funcsynopsis.list">
+      <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+    </xsl:call-template>
+  </dl>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml-include_href">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Copies an external well-formed HTML/XML file into current doc</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml-include href</tag> PI anywhere in a
+      document to cause the contents of the file referenced by the
+      <code>href</code> pseudo-attribute to be copied/inserted &#8220;as
+      is&#8221; into your HTML output at the point in document order
+      where the PI occurs in the source.</para>
+    <note>
+      <para>The referenced file may contain plain text (as long as
+        it is &#8220;wrapped&#8221; in an <tag>html</tag> element &#8212; see the
+        note below) or markup in any arbitrary vocabulary,
+        including HTML &#8212; but it must conform to XML
+        well-formedness constraints (because the feature in XSLT
+        1.0 for opening external files, the
+        <function>document()</function> function, can only handle
+        files that meet XML well-formedness constraints).</para>
+      <para>Among other things, XML well-formedness constraints
+        require a document to have <emphasis>a single root
+          element</emphasis>. So if the content you want to
+        include is plain text or is markup that does
+        <emphasis>not</emphasis> have a single root element,
+        <emphasis role="strong">wrap the content in an
+          <tag>html</tag> element</emphasis>. The stylesheets will
+        strip out that surrounding <tag>html</tag> &#8220;wrapper&#8221; when
+        they find it, leaving just the content you want to
+        insert.</para>
+    </note>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml-include href="<replaceable>URI</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>href="<replaceable>URI</replaceable>"</term>
+        <listitem>
+          <para>Specifies the URI for the file to include; the URI
+            can be, for example, a remote <literal>http:</literal>
+            URI, or a local filesystem <literal>file:</literal>
+            URI</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>textinsert.extension</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="InsertExtHtml.html">Inserting external HTML code</link>,
+      <link role="tcg" xlink:href="ExternalCode.html">External code files</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml-include">
+  <xsl:param name="href">
+    <xsl:call-template name="dbhtml-attribute">
+      <xsl:with-param name="pis" select="."/>
+      <xsl:with-param name="attribute">href</xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="$href != ''">
+      <xsl:variable name="content" select="document($href,/)"/>
+      <xsl:choose>
+        <xsl:when test="$content/*">
+          <xsl:choose>
+            <xsl:when test="$content/*[1][self::html]">
+              <!-- include just the children of html wrapper -->
+              <xsl:copy-of select="$content/*[1]/node()"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:copy-of select="$content"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>ERROR: dbhtml-include processing instruction </xsl:text>
+            <xsl:text>href has no content.</xsl:text>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>ERROR: dbhtml-include processing instruction has </xsl:text>
+        <xsl:text>missing or empty href value.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- There are two templates matching this PI in htmlhelp-common.xsl -->
+<doc:pi xmlns="" name="dbhh">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets topic name and topic id for context-sensitive HTML Help</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhh</tag> PI as a child of components
+      that should be used as targets for context-sensitive help requests.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhh topicname="<replaceable>name</replaceable>" topicid="<replaceable>id</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>topicname="<replaceable>name</replaceable>"</term>
+        <listitem>
+          <para>Specifies a unique string constant that identifies a help topic</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>topicid="<replaceable>id</replaceable>"</term>
+        <listitem>
+          <para>Specifies a unique integer value for the <literal>topicname</literal> string</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="HtmlHelp.html#HHContextHelp">Context-sensitive help</link></para>
+  </refsee>
+</doc:pi>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-attribute">
+  <!-- * dbhtml-attribute is an interal utility template for retrieving -->
+  <!-- * pseudo-attributes/parameters from PIs -->
+  <xsl:param name="pis" select="processing-instruction('dbhtml')"/>
+  <xsl:param name="attribute">filename</xsl:param>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$pis"/>
+    <xsl:with-param name="attribute" select="$attribute"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction()">
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbcmdlist')">
+  <xsl:call-template name="pi.dbcmdlist"/>
+</xsl:template>
+<xsl:template name="process.cmdsynopsis.list">
+  <xsl:param name="cmdsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count&gt;count($cmdsynopses)"/>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$cmdsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:text>#</xsl:text>
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+             <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.cmdsynopsis.list">
+          <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbfunclist')">
+  <xsl:call-template name="pi.dbfunclist"/>
+</xsl:template>
+<xsl:template name="process.funcsynopsis.list">
+  <xsl:param name="funcsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count&gt;count($funcsynopses)"/>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$funcsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:text>#</xsl:text>
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+              <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+                <xsl:with-param name="target" select="$cmdsyn"/>
+              </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.funcsynopsis.list">
+          <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbhtml-include')">
+  <xsl:call-template name="pi.dbhtml-include"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-dir">
+  <xsl:param name="context" select="."/>
+  <!-- directories are now inherited from previous levels -->
+  <xsl:variable name="ppath">
+    <xsl:if test="$context/parent::*">
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="$context/parent::*"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="path">
+    <xsl:call-template name="pi.dbhtml_dir">
+      <xsl:with-param name="node" select="$context"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$path = ''">
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+        <xsl:if test="substring($ppath, string-length($ppath), 1) != '/'">
+          <xsl:text>/</xsl:text>
+        </xsl:if>
+      </xsl:if>
+      <xsl:value-of select="$path"/>
+      <xsl:text>/</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/profile-chunk-code.xsl b/applications/content/template/docbook/xhtml-1_1/profile-chunk-code.xsl
new file mode 100644
index 0000000..2b56a93
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/profile-chunk-code.xsl
@@ -0,0 +1,641 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="exsl cf ng db exslt" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="chunk-filename">
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="fn">
+    <xsl:apply-templates select="." mode="recursive-chunk-filename"/>
+  </xsl:variable>
+
+  <!--
+  <xsl:message>
+    <xsl:value-of select="$ischunk"/>
+    <xsl:text> (</xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text>) </xsl:text>
+    <xsl:value-of select="$fn"/>
+    <xsl:text>, </xsl:text>
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:message>
+  -->
+
+  <!-- 2003-11-25 by ndw:
+       The following test used to read test="$ischunk != 0 and $fn != ''"
+       I've removed the ischunk part of the test so that href.to.uri and
+       href.from.uri will be fully qualified even if the source or target
+       isn't a chunk. I *think* that if $fn != '' then it's appropriate
+       to put the directory on the front, even if the element isn't a
+       chunk. I could be wrong. -->
+
+  <xsl:if test="$fn != ''">
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:if>
+
+  <xsl:value-of select="$chunked.filename.prefix"/>
+
+  <xsl:value-of select="$fn"/>
+  <!-- You can't add the html.ext here because dbhtml filename= may already -->
+  <!-- have added it. It really does have to be handled in the recursive template -->
+</xsl:template>
+
+<xsl:template match="*" mode="recursive-chunk-filename">
+  <xsl:param name="recursive" select="false()"/>
+
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="dbhtml-filename">
+    <xsl:call-template name="pi.dbhtml_filename"/>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="$dbhtml-filename != ''">
+        <xsl:value-of select="$dbhtml-filename"/>
+      </xsl:when>
+      <!-- if this is the root element, use the root.filename -->
+      <xsl:when test="not(parent::*) and $root.filename != ''">
+        <xsl:value-of select="$root.filename"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <!-- Special case -->
+      <xsl:when test="self::legalnotice and not($generate.legalnotice.link = 0)">
+        <xsl:choose>
+          <xsl:when test="(@id or @xml:id) and not($use.id.as.filename = 0)">
+            <!-- * if this legalnotice has an ID, then go ahead and use -->
+            <!-- * just the value of that ID as the basename for the file -->
+            <!-- * (that is, without prepending an "ln-" too it) -->
+            <xsl:value-of select="(@id|@xml:id)[1]"/>
+            <xsl:value-of select="$html.ext"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- * otherwise, if this legalnotice does not have an ID, -->
+            <!-- * then we generate an ID... -->
+            <xsl:variable name="id">
+              <xsl:call-template name="object.id"/>
+            </xsl:variable>
+            <!-- * ...and then we take that generated ID, prepend an -->
+            <!-- * "ln-" to it, and use that as the basename for the file -->
+            <xsl:value-of select="concat('ln-',$id,$html.ext)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <!-- if there's no dbhtml filename, and if we're to use IDs as -->
+      <!-- filenames, then use the ID to generate the filename. -->
+      <xsl:when test="(@id or @xml:id) and $use.id.as.filename != 0">
+        <xsl:value-of select="(@id|@xml:id)[1]"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </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="recursive-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:value-of select="$filename"/>
+    </xsl:when>
+
+    <xsl:when test="self::set">
+      <xsl:value-of select="$root.filename"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::book">
+      <xsl:text>bk</xsl:text>
+      <xsl:number level="any" format="01"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::article">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ar</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::preface">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>pr</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::chapter">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ch</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::appendix">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ap</xsl:text>
+      <xsl:number level="any" format="a" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::part">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>pt</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::reference">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>rn</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::refentry">
+      <xsl:choose>
+        <xsl:when test="parent::reference">
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="/set">
+            <!-- in a set, make sure we inherit the right book info... -->
+            <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+              <xsl:with-param name="recursive" select="true()"/>
+            </xsl:apply-templates>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>re</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::colophon">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>co</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::sect1                     or self::sect2                     or self::sect3                     or self::sect4                     or self::sect5                     or self::section">
+      <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+        <xsl:with-param name="recursive" select="true()"/>
+      </xsl:apply-templates>
+      <xsl:text>s</xsl:text>
+      <xsl:number format="01"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::bibliography">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>bi</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::glossary">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>go</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::index">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>ix</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::setindex">
+      <xsl:text>si</xsl:text>
+      <xsl:number level="any" format="01" from="set"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::topic">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>to</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </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>
+
+<!-- ==================================================================== -->
+
+
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="find.chunks">
+  <xsl:variable name="chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$chunk != 0">
+      <cf:div id="{generate-id()}">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:apply-templates select="*" mode="find.chunks"/>
+      </cf:div>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="*" mode="find.chunks"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Leave legalnotice chunk out of the list for Next and Prev -->
+<xsl:template match="legalnotice" mode="find.chunks"/>
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+	 stylesheets for DocBook5 if you don't want to use this feature.-->
+    <xsl:when test="false()"/>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="false()"/>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="collect.tex.math"/>
+                </xsl:if>
+                <xsl:if test="$generate.manifest != 0">
+                  <xsl:call-template name="generate.manifest">
+                    <xsl:with-param name="node" select="key('id',$rootid)"/>
+                  </xsl:call-template>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="$profiled-nodes" mode="collect.tex.math"/>
+            </xsl:if>
+            <xsl:if test="$generate.manifest != 0">
+              <xsl:call-template name="generate.manifest">
+                <xsl:with-param name="node" select="$profiled-nodes"/>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:apply-templates select="."/>
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |topic                      |reference|refentry                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon">
+  <xsl:choose>
+    <xsl:when test="$onechunk != 0 and parent::*">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not(parent::*)">
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:when>
+    <xsl:when test="$ischunk = 0">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex                      |book/index                      |article/index                      |part/index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. -->
+  <xsl:if test="count(*)&gt;0 or $generate.index != '0'">
+    <xsl:call-template name="process-chunk-element"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- Resolve xml:base attributes -->
+<xsl:template match="@fileref">
+  <!-- need a check for absolute urls -->
+  <xsl:choose>
+    <xsl:when test="contains(., ':')">
+      <!-- it has a uri scheme so it is an absolute uri -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:when test="$keep.relative.image.uris != 0">
+      <!-- leave it alone -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- its a relative uri -->
+      <xsl:call-template name="relative-uri">
+        <xsl:with-param name="destdir">
+          <xsl:call-template name="dbhtml-dir">
+            <xsl:with-param name="context" select=".."/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |topic                      |reference|refentry                      |sect1|sect2|sect3|sect4|sect5                      |section                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon" mode="enumerate-files">
+  <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+  <xsl:if test="$ischunk='1'">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir">
+        <xsl:if test="$manifest.in.base.dir = 0">
+          <xsl:value-of select="$chunk.base.dir"/>
+        </xsl:if>
+      </xsl:with-param>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+  <xsl:apply-templates select="*" mode="enumerate-files"/>
+</xsl:template>
+
+<xsl:template match="book/index|article/index|part/index" mode="enumerate-files">
+  <xsl:if test="$htmlhelp.output != 1">
+    <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+    <xsl:if test="$ischunk='1'">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir">
+          <xsl:if test="$manifest.in.base.dir = 0">
+            <xsl:value-of select="$chunk.base.dir"/>
+          </xsl:if>
+        </xsl:with-param>
+        <xsl:with-param name="base.name">
+          <xsl:apply-templates mode="chunk-filename" select="."/>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>
+</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="*" mode="enumerate-files"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="enumerate-files">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <xsl:if test="$generate.legalnotice.link != 0">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir">
+        <xsl:if test="$manifest.in.base.dir = 0">
+          <xsl:value-of select="$chunk.base.dir"/>
+        </xsl:if>
+      </xsl:with-param>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="mediaobject[imageobject] | inlinemediaobject[imageobject]" mode="enumerate-files">
+  <xsl:variable name="longdesc.uri">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="mediaobject" select="."/>
+
+  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="$mediaobject"/>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="enumerate-files">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/profile-chunk.xsl b/applications/content/template/docbook/xhtml-1_1/profile-chunk.xsl
new file mode 100644
index 0000000..96d8033
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/profile-chunk.xsl
@@ -0,0 +1,52 @@
+<?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:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- First import the non-chunking templates that format elements
+     within each chunk file. In a customization, you should
+     create a separate non-chunking customization layer such
+     as mydocbook.xsl that imports the original docbook.xsl and
+     customizes any presentation templates. Then your chunking
+     customization should import mydocbook.xsl instead of
+     docbook.xsl.  -->
+<xsl:import href="docbook.xsl"/>
+
+<!-- chunk-common.xsl contains all the named templates for chunking.
+     In a customization file, you import chunk-common.xsl, then
+     add any customized chunking templates of the same name. 
+     They will have import precedence over the original 
+     chunking templates in chunk-common.xsl. -->
+<xsl:import href="chunk-common.xsl"/>
+
+<!-- The manifest.xsl module is no longer imported because its
+     templates were moved into chunk-common and chunk-code -->
+
+<!-- chunk-code.xsl contains all the chunking templates that use
+     a match attribute.  In a customization it should be referenced
+     using <xsl:include> instead of <xsl:import>, and then add
+     any customized chunking templates with match attributes. But be sure
+     to add a priority="1" to such customized templates to resolve
+     its conflict with the original, since they have the
+     same import precedence.
+     
+     Using xsl:include prevents adding another layer
+     of import precedence, which would cause any
+     customizations that use xsl:apply-imports to wrongly
+     apply the chunking version instead of the original
+     non-chunking version to format an element.  -->
+<xsl:include href="profile-chunk-code.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/profile-docbook.xsl b/applications/content/template/docbook/xhtml-1_1/profile-docbook.xsl
new file mode 100644
index 0000000..693c78f
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/profile-docbook.xsl
@@ -0,0 +1,457 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="db ng exsl exslt exslt" version="1.0">
+
+<xsl:output method="xml" encoding="UTF-8" indent="no" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION.xsl"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/utility.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="../common/targets.xsl"/>
+<xsl:include href="../common/olink.xsl"/>
+<xsl:include href="../common/pi.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="autoidx.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="htmltbl.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="html.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="biblio-iso690.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="task.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="pi.xsl"/>
+<xsl:include href="ebnf.xsl"/>
+<xsl:include href="chunker.xsl"/>
+<xsl:include href="html-rtf.xsl"/>
+<xsl:include href="annotations.xsl"/>
+<xsl:include href="../common/stripns.xsl"/>
+
+<xsl:param name="stylesheet.result.type" select="'xhtml'"/>
+<xsl:param name="htmlhelp.output" select="0"/>
+
+<!-- ==================================================================== -->
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+<xsl:key name="gid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:text>Element </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text> in namespace '</xsl:text>
+    <xsl:value-of select="namespace-uri(.)"/>
+    <xsl:text>' encountered</xsl:text>
+    <xsl:if test="parent::*">
+      <xsl:text> in </xsl:text>
+      <xsl:value-of select="name(parent::*)"/>
+    </xsl:if>
+    <xsl:text>, but no template matches.</xsl:text>
+  </xsl:message>
+
+  <span style="color: red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="text()">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="body.attributes">
+<!-- no apply-templates; make it empty -->
+</xsl:template>
+
+<xsl:template name="head.content">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="title">
+    <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/>
+  </xsl:param>
+
+  <title>
+    <xsl:copy-of select="$title"/>
+  </title>
+
+  <xsl:if test="$html.base != ''">
+    <base href="{$html.base}"/>
+  </xsl:if>
+
+  <!-- Insert links to CSS files or insert literal style elements -->
+  <xsl:call-template name="generate.css"/>
+
+  <xsl:if test="$html.stylesheet != ''">
+    <xsl:call-template name="output.html.stylesheets">
+      <xsl:with-param name="stylesheets" select="normalize-space($html.stylesheet)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$html.script != ''">
+    <xsl:call-template name="output.html.scripts">
+      <xsl:with-param name="scripts" select="normalize-space($html.script)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$link.mailto.url != ''">
+    <link rev="made" href="{$link.mailto.url}"/>
+  </xsl:if>
+
+  <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/>
+
+  <xsl:if test="$generate.meta.abstract != 0">
+    <xsl:variable name="info" select="(articleinfo                                       |bookinfo                                       |prefaceinfo                                       |chapterinfo                                       |appendixinfo                                       |sectioninfo                                       |sect1info                                       |sect2info                                       |sect3info                                       |sect4info                                       |sect5info                                       |referenceinfo                                       |refentryinfo                                       |partinfo                                       |info                                       |docinfo)[1]"/>
+    <xsl:if test="$info and $info/abstract">
+      <meta name="description">
+        <xsl:attribute name="content">
+          <xsl:for-each select="$info/abstract[1]/*">
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:if test="position() &lt; last()">
+              <xsl:text> </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </meta>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:if test="($draft.mode = 'yes' or                 ($draft.mode = 'maybe' and                 ancestor-or-self::*[@status][1]/@status = 'draft'))                 and $draft.watermark.image != ''">
+    <style type="text/css"><xsl:text>
+body { background-image: url('</xsl:text>
+<xsl:value-of select="$draft.watermark.image"/><xsl:text>');
+       background-repeat: no-repeat;
+       background-position: top left;
+       /* The following properties make the watermark "fixed" on the page. */
+       /* I think that's just a bit too distracting for the reader... */
+       /* background-attachment: fixed; */
+       /* background-position: center center; */
+     }</xsl:text>
+    </style>
+  </xsl:if>
+  <xsl:apply-templates select="." mode="head.keywords.content"/>
+</xsl:template>
+
+<xsl:template name="output.html.stylesheets">
+  <xsl:param name="stylesheets" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($stylesheets, ' ')">
+      <xsl:variable name="css.filename" select="substring-before($stylesheets, ' ')"/>
+
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$css.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.stylesheets">
+        <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$stylesheets != ''">
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$stylesheets"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="output.html.scripts">
+  <xsl:param name="scripts" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($scripts, ' ')">
+      <xsl:variable name="script.filename" select="substring-before($scripts, ' ')"/>
+
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$script.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.scripts">
+        <xsl:with-param name="scripts" select="substring-after($scripts, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$scripts != ''">
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$scripts"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="head.keywords.content">
+  <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="artheader/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sectioninfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="info/keywordset" mode="html.header"/>
+
+  <xsl:if test="$inherit.keywords != 0                 and parent::*">
+    <xsl:apply-templates select="parent::*" mode="head.keywords.content"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="system.head.content">
+  <xsl:param name="node" select="."/>
+
+  <!-- FIXME: When chunking, only the annotations actually used
+              in this chunk should be referenced. I don't think it
+              does any harm to reference them all, but it adds
+              unnecessary bloat to each chunk. -->
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <xsl:call-template name="add.annotation.links"/>
+    <script type="text/javascript">
+      <xsl:text>
+// Create PopupWindow objects</xsl:text>
+      <xsl:for-each select="//annotation">
+        <xsl:text>
+var popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text> = new PopupWindow("popup-</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>");
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.offsetY = 15;
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.autoHide();
+</xsl:text>
+      </xsl:for-each>
+    </script>
+
+    <style type="text/css">
+      <xsl:value-of select="$annotation.css"/>
+    </style>
+  </xsl:if>
+
+  <!-- system.head.content is like user.head.content, except that
+       it is called before head.content. This is important because it
+       means, for example, that <style> elements output by system.head.content
+       have a lower CSS precedence than the users stylesheet. -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="user.preroot">
+  <!-- Pre-root output, can be used to output comments and PIs. -->
+  <!-- This must not output any element content! -->
+</xsl:template>
+
+<xsl:template name="user.head.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<!-- To use the same stripped nodeset everywhere, it should
+be created as a global variable here.
+Used by docbook.xsl, chunk-code.xsl and chunkfast.xsl -->
+<xsl:variable name="no.namespace">
+  <xsl:if test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">
+    <xsl:apply-templates select="/*" mode="stripNS"/>
+  </xsl:if>
+</xsl:variable>
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="false()"/>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="false()"/>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="collect.tex.math"/>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="$profiled-nodes" mode="collect.tex.math"/>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="doc" select="self::*"/>
+
+  <xsl:call-template name="user.preroot"/>
+  <xsl:call-template name="root.messages"/>
+
+  <html>
+    <xsl:call-template name="root.attributes"/>
+    <head>
+      <xsl:call-template name="system.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="user.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </head>
+    <body>
+      <xsl:call-template name="body.attributes"/>
+      <xsl:call-template name="user.header.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:apply-templates select="."/>
+      <xsl:call-template name="user.footer.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$html.append"/>
+  
+  <!-- Generate any css files only once, not once per chunk -->
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<xsl:template name="root.attributes">
+  <!-- customize to add attributes to <html> element  -->
+</xsl:template>
+
+<xsl:template name="root.messages">
+  <!-- redefine this any way you'd like to output messages -->
+  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+
+  <!-- The default is that we are not chunking... -->
+  <xsl:text>0</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/profile-onechunk.xsl b/applications/content/template/docbook/xhtml-1_1/profile-onechunk.xsl
new file mode 100644
index 0000000..b550b77
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/profile-onechunk.xsl
@@ -0,0 +1,36 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="profile-chunk.xsl"/>
+
+<!-- Ok, using the onechunk parameter makes this all work again. -->
+<!-- It does have the disadvantage that it only works for documents that have -->
+<!-- a root element that is considered a chunk by the chunk.xsl stylesheet. -->
+<!-- Ideally, onechunk would let anything be a chunk. But not today. -->
+
+<xsl:param name="onechunk" select="1"/>
+<xsl:param name="suppress.navigation">1</xsl:param>
+
+<xsl:template name="href.target.uri">
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/qandaset.xsl b/applications/content/template/docbook/xhtml-1_1/qandaset.xsl
new file mode 100644
index 0000000..92e559e
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/qandaset.xsl
@@ -0,0 +1,439 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="doc" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="qandaset">
+  <xsl:variable name="title" select="(blockinfo/title|info/title|title)[1]"/>
+  <xsl:variable name="preamble" select="*[local-name(.) != 'title'                                           and local-name(.) != 'titleabbrev'                                           and local-name(.) != 'qandadiv'                                           and local-name(.) != 'qandaentry']"/>
+  <xsl:variable name="toc">
+    <xsl:call-template name="pi.dbhtml_toc"/>
+  </xsl:variable>
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="$title"/>
+    <xsl:if test="not($title)">
+      <!-- andhor is output on title if there is one -->
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:if test="((contains($toc.params, 'toc') and $toc != '0') or $toc = '1')                   and not(ancestor::answer and not($qanda.nested.in.toc=0))">
+      <xsl:call-template name="process.qanda.toc"/>
+    </xsl:if>
+    <xsl:apply-templates select="$preamble"/>
+    <xsl:call-template name="process.qandaset"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="qandaset/blockinfo/title|                      qandaset/info/title|                      qandaset/title">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qanda.section.level"/>
+  </xsl:variable>
+  <xsl:element name="h{string(number($qalevel)+1)}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandaset/blockinfo|qandaset/info">
+  <!-- what should this template really do? -->
+  <xsl:apply-templates select="legalnotice" mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="qandadiv">
+  <xsl:variable name="preamble" select="*[local-name(.) != 'title'                                           and local-name(.) != 'titleabbrev'                                           and local-name(.) != 'qandadiv'                                           and local-name(.) != 'qandaentry']"/>
+
+  <xsl:if test="blockinfo/title|info/title|title">
+    <tr class="qandadiv">
+      <td align="{$direction.align.start}" valign="top" colspan="2">
+        <xsl:apply-templates select="(blockinfo/title|info/title|title)[1]"/>
+      </td>
+    </tr>
+  </xsl:if>
+
+  <xsl:variable name="toc">
+    <xsl:call-template name="pi.dbhtml_toc"/>
+  </xsl:variable>
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="(contains($toc.params, 'toc') and $toc != '0') or $toc = '1'">
+    <tr class="toc">
+      <td align="{$direction.align.start}" valign="top" colspan="2">
+        <xsl:call-template name="process.qanda.toc"/>
+      </td>
+    </tr>
+  </xsl:if>
+  <xsl:if test="$preamble">
+    <tr class="toc">
+      <td align="{$direction.align.start}" valign="top" colspan="2">
+        <xsl:apply-templates select="$preamble"/>
+      </td>
+    </tr>
+  </xsl:if>
+  <xsl:apply-templates select="qandadiv|qandaentry"/>
+</xsl:template>
+
+<xsl:template match="qandadiv/blockinfo/title|                      qandadiv/info/title|                      qandadiv/title">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qandadiv.section.level"/>
+  </xsl:variable>
+
+  <xsl:element name="h{string(number($qalevel)+1)}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="parent::qandadiv" mode="label.markup"/>
+    <xsl:if test="$qandadiv.autolabel != 0">
+      <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+      <xsl:text> </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandaentry">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="question">
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+
+  <tr>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <!-- capture the id of the  quandaentry -->
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <td align="{$direction.align.start}" valign="top">
+      <!-- and the id of the question too -->
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="node" select=".."/>
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+
+      <xsl:variable name="label.content">
+        <xsl:apply-templates select="." mode="qanda.label"/>
+      </xsl:variable>
+
+      <xsl:if test="string-length($label.content) &gt; 0">
+        <p><strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:copy-of select="$label.content"/>
+        </strong></p>
+      </xsl:if>
+    </td>
+    <td align="{$direction.align.start}" valign="top">
+      <xsl:choose>
+        <xsl:when test="$deflabel = 'none' and not(label)">
+          <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates select="*[local-name(.) != 'label']"/></strong>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="*[local-name(.) != 'label']"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="*" mode="qanda.defaultlabel">
+  <xsl:choose>
+    <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+      <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]                             /@defaultlabel"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$qanda.defaultlabel"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question" mode="qanda.label">
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+  <xsl:apply-templates select="." mode="label.markup"/>
+  <xsl:if test="contains($deflabel, 'number') and not(label)">
+    <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="answer">
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+
+  <tr>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <td align="{$direction.align.start}" valign="top">
+      <xsl:call-template name="anchor"/>
+      <xsl:variable name="answer.label">
+        <xsl:apply-templates select="." mode="label.markup"/>
+      </xsl:variable>
+      <xsl:if test="string-length($answer.label) &gt; 0">
+        <p><strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:copy-of select="$answer.label"/>
+        </strong></p>
+      </xsl:if>
+    </td>
+    <td align="{$direction.align.start}" valign="top">
+      <xsl:apply-templates select="*[local-name(.) != 'label'         and local-name(.) != 'qandaentry']"/>
+      <!-- * handle nested answer/qandaentry instances -->
+      <!-- * (bug 1509043 from Daniel Leidert) -->
+      <xsl:if test="descendant::question">
+        <xsl:call-template name="process.qandaset"/>
+      </xsl:if>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="answer" mode="qanda.label">
+  <xsl:apply-templates select="." mode="label.markup"/>
+</xsl:template>
+
+<xsl:template match="label">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.qanda.toc">
+  <!-- * if user wants nested qandaset and qandaentry in main Qandaset TOC, -->
+  <!-- * then don't also include the nested stuff in the sub TOCs -->
+  <dl>
+    <xsl:apply-templates select="qandadiv" mode="qandatoc.mode"/>
+    <xsl:apply-templates select="qandaset|qandaentry" mode="qandatoc.mode"/>
+  </dl>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="qandatoc.mode">
+  <dt><xsl:apply-templates select="title" mode="qandatoc.mode"/></dt>
+  <dd><xsl:call-template name="process.qanda.toc"/></dd>
+</xsl:template>
+
+<xsl:template match="qandadiv/blockinfo/title|                      qandadiv/info/title|                      qandadiv/title" mode="qandatoc.mode">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qandadiv.section.level"/>
+  </xsl:variable>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="parent::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="div.label">
+    <xsl:apply-templates select="parent::qandadiv" mode="label.markup"/>
+  </xsl:variable>
+  <xsl:if test="string-length($div.label) != 0">
+    <xsl:copy-of select="$div.label"/>
+    <xsl:value-of select="$autotoc.label.separator"/>
+  </xsl:if>
+  <xsl:text> </xsl:text>
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="object" select="parent::*"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </a>
+</xsl:template>
+
+<xsl:template match="qandaset" mode="qandatoc.mode">
+  <xsl:for-each select="qandaentry">
+    <xsl:apply-templates select="." mode="qandatoc.mode"/>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="qandatoc.mode">
+  <xsl:apply-templates select="question" mode="qandatoc.mode"/>
+</xsl:template>
+
+<xsl:template match="question" mode="qandatoc.mode">
+  <xsl:variable name="firstch">
+    <!-- Use a titleabbrev or title if available -->
+    <xsl:choose>
+      <xsl:when test="../blockinfo/titleabbrev">
+        <xsl:apply-templates select="../blockinfo/titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../blockinfo/title">
+        <xsl:apply-templates select="../blockinfo/title[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../info/titleabbrev">
+        <xsl:apply-templates select="../info/titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../titleabbrev">
+        <xsl:apply-templates select="../titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../info/title">
+        <xsl:apply-templates select="../info/title[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../title">
+        <xsl:apply-templates select="../title[1]/node()"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="(*[local-name(.)!='label'])[1]/node()"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="deflabel">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+        <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]                               /@defaultlabel"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$qanda.defaultlabel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <dt>
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:if test="contains($deflabel,'number') and not(label)">
+      <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+    </xsl:if>
+    <xsl:text> </xsl:text>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:value-of select="$firstch"/>
+    </a>
+  </dt>
+  <!-- * include nested qandaset/qandaentry in TOC if user wants it -->
+  <xsl:if test="not($qanda.nested.in.toc = 0)">
+    <xsl:apply-templates select="following-sibling::answer" mode="qandatoc.mode"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="answer" mode="qandatoc.mode">
+  <xsl:if test="descendant::question">
+    <dd>
+      <xsl:call-template name="process.qanda.toc"/>
+    </dd>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.qandaset">
+
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+
+  <xsl:variable name="label-width">
+    <xsl:call-template name="pi.dbhtml_label-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="table-summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellpadding">
+    <xsl:call-template name="pi.dbhtml_cellpadding"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellspacing">
+    <xsl:call-template name="pi.dbhtml_cellspacing"/>
+  </xsl:variable>
+
+  <table border="{$table.border.off}">
+    <xsl:if test="$css.decoration != 0">
+      <xsl:attribute name="style">width: 100%;</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$table-summary != ''">
+      <xsl:attribute name="summary">
+        <xsl:value-of select="$table-summary"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$cellpadding != ''">
+      <xsl:attribute name="cellpadding">
+        <xsl:value-of select="$cellpadding"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$cellspacing != ''">
+      <xsl:attribute name="cellspacing">
+        <xsl:value-of select="$cellspacing"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <colgroup>
+      <col align="{$direction.align.start}">
+        <xsl:attribute name="width">
+          <xsl:choose>
+            <xsl:when test="$label-width != ''">
+              <xsl:value-of select="$label-width"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:text>1%</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+      </col>
+      <col/>
+    </colgroup>
+    <tbody>
+      <xsl:apply-templates select="qandaentry|qandadiv"/>
+    </tbody>
+  </table>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="no.wrapper.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/refentry.xsl b/applications/content/template/docbook/xhtml-1_1/refentry.xsl
new file mode 100644
index 0000000..e4c87d07
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/refentry.xsl
@@ -0,0 +1,305 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="reference">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="reference.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="not(partintro) and contains($toc.params, 'toc')">
+      <xsl:call-template name="division.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="reference" mode="division.number">
+  <xsl:number from="book" count="reference" format="I."/>
+</xsl:template>
+
+<xsl:template match="reference/docinfo"/>
+<xsl:template match="reference/referenceinfo"/>
+<xsl:template match="reference/title"/>
+<xsl:template match="reference/subtitle"/>
+<xsl:template match="reference/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="refentry.title">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="refmeta" select="$node//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select="$node//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+  <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/>
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]" mode="title"/>
+      </xsl:when>
+      <xsl:when test="$refdesc">
+	<xsl:apply-templates select="$refdesc[1]" mode="title"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]" mode="title"/>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </xsl:variable>
+
+  <h1 class="title">
+    <xsl:copy-of select="$title"/>
+  </h1>
+</xsl:template>
+
+<xsl:template match="refentry">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:if test="$refentry.separator != 0 and preceding-sibling::refentry">
+      <div class="refentry.separator">
+        <hr/>
+      </div>
+    </xsl:if>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="refentry.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="refentry/docinfo|refentry/refentryinfo"/>
+<xsl:template match="refentry/info"/>
+
+<xsl:template match="refentrytitle|refname|refdescriptor" mode="title">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refmeta">
+</xsl:template>
+
+<xsl:template match="manvolnum">
+  <xsl:if test="$refentry.xref.manvolnum != 0">
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refmiscinfo">
+</xsl:template>
+
+<xsl:template match="refentrytitle">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="refnamediv">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:choose>
+      <xsl:when test="preceding-sibling::refnamediv">
+	<!-- no title on secondary refnamedivs! -->
+      </xsl:when>
+      <xsl:when test="$refentry.generate.name != 0">
+        <h2>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'RefName'"/>
+          </xsl:call-template>
+        </h2>
+      </xsl:when>
+      <xsl:when test="$refentry.generate.title != 0">
+        <h2>
+          <xsl:choose>
+            <xsl:when test="../refmeta/refentrytitle">
+              <xsl:apply-templates select="../refmeta/refentrytitle"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="refname[1]"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </h2>
+      </xsl:when>
+    </xsl:choose>
+
+    <p>
+      <xsl:apply-templates/>
+    </p>
+  </div>
+</xsl:template>
+
+<xsl:template match="refname">
+  <xsl:if test="not(preceding-sibling::refdescriptor)">
+    <xsl:apply-templates/>
+    <xsl:if test="following-sibling::refname">
+      <xsl:text>, </xsl:text>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refpurpose">
+  <xsl:if test="node()">
+    <xsl:text> </xsl:text>
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat">em-dash</xsl:with-param>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refdescriptor">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refclass">
+  <xsl:if test="$refclass.suppress = 0">
+  <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+    <xsl:if test="@role">
+      <xsl:value-of select="@role"/>
+      <xsl:text>: </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </strong>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <h2>
+      <xsl:choose>
+        <xsl:when test="refsynopsisdiv/title|title">
+          <xsl:apply-templates select="(refsynopsisdiv/title|title)[1]" mode="titlepage.mode"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'RefSynopsisDiv'"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </h2>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="refsynopsisdivinfo"/>
+
+<xsl:template match="refsynopsisdiv/title">
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv/title" mode="titlepage.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refsection|refsect1|refsect2|refsect3">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <!-- pick up info title -->
+    <xsl:apply-templates select="(title|info/title)[1]"/>
+    <xsl:apply-templates select="node()[not(self::title) and not(self::info)]"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="refsection/title|refsection/info/title">
+  <!-- the ID is output in the block.object call for refsect1 -->
+  <xsl:variable name="level" select="count(ancestor-or-self::refsection)"/>
+  <xsl:variable name="refsynopsisdiv">
+    <xsl:text>0</xsl:text>
+    <xsl:if test="ancestor::refsynopsisdiv">1</xsl:if>
+  </xsl:variable>
+  <xsl:variable name="hlevel">
+    <xsl:choose>
+      <xsl:when test="$level+$refsynopsisdiv &gt; 5">6</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$level+1+$refsynopsisdiv"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:element name="h{$hlevel}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="refsect1/title|refsect1/info/title">
+  <!-- the ID is output in the block.object call for refsect1 -->
+  <h2>
+    <xsl:apply-templates/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="refsect2/title|refsect2/info/title">
+  <!-- the ID is output in the block.object call for refsect2 -->
+  <h3>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<xsl:template match="refsect3/title|refsect3/info/title">
+  <!-- the ID is output in the block.object call for refsect3 -->
+  <h4>
+    <xsl:apply-templates/>
+  </h4>
+</xsl:template>
+
+<xsl:template match="refsectioninfo|refsection/info"/>
+<xsl:template match="refsect1info|refsect1/info"/>
+<xsl:template match="refsect2info|refsect2/info"/>
+<xsl:template match="refsect3info|refsect3/info"/>
+
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/sections.xsl b/applications/content/template/docbook/xhtml-1_1/sections.xsl
new file mode 100644
index 0000000..c1ffb95
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/sections.xsl
@@ -0,0 +1,562 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="section">
+  <xsl:variable name="depth" select="count(ancestor::section)+1"/>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="section.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')                   and $depth &lt;= $generate.section.toc.level">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="section.title">
+  <!-- the context node should be the title of a section when called -->
+  <xsl:variable name="section" select="(ancestor::section                                         |ancestor::simplesect                                         |ancestor::sect1                                         |ancestor::sect2                                         |ancestor::sect3                                         |ancestor::sect4                                         |ancestor::sect5)[last()]"/>
+
+  <xsl:variable name="renderas">
+    <xsl:choose>
+      <xsl:when test="$section/@renderas = 'sect1'">1</xsl:when>
+      <xsl:when test="$section/@renderas = 'sect2'">2</xsl:when>
+      <xsl:when test="$section/@renderas = 'sect3'">3</xsl:when>
+      <xsl:when test="$section/@renderas = 'sect4'">4</xsl:when>
+      <xsl:when test="$section/@renderas = 'sect5'">5</xsl:when>
+      <xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="level">
+    <xsl:choose>
+      <xsl:when test="$renderas != ''">
+        <xsl:value-of select="$renderas"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="section.level">
+          <xsl:with-param name="node" select="$section"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="section.heading">
+    <xsl:with-param name="section" select="$section"/>
+    <xsl:with-param name="level" select="$level"/>
+    <xsl:with-param name="title">
+      <xsl:apply-templates select="$section" mode="object.title.markup">
+        <xsl:with-param name="allow-anchors" select="1"/>
+      </xsl:apply-templates>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section/title                     |section/info/title                     |sectioninfo/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect1">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect2'">
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect3'">
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect4'">
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect5'">
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level &gt;= 1">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect1/title                     |sect1/info/title                     |sect1info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect2">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect3'">
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect4'">
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect5'">
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level &gt;= 2">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect2/title                     |sect2/info/title                     |sect2info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect3">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect2'">
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect4'">
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect5'">
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level &gt;= 3">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect3/title                     |sect3/info/title                     |sect3info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect4">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect2'">
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect3'">
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect5'">
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level &gt;= 4">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect4/title                     |sect4/info/title                     |sect4info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect5">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect2'">
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect3'">
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect4'">
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level &gt;= 5">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect5/title                     |sect5/info/title                     |sect5info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="simplesect">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="simplesect.titlepage"/>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="simplesect/title|simplesect/info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="section/title"/>
+<xsl:template match="section/titleabbrev"/>
+<xsl:template match="section/subtitle"/>
+<xsl:template match="sectioninfo"/>
+<xsl:template match="section/info"/>
+
+<xsl:template match="sect1/title"/>
+<xsl:template match="sect1/titleabbrev"/>
+<xsl:template match="sect1/subtitle"/>
+<xsl:template match="sect1info"/>
+<xsl:template match="sect1/info"/>
+
+<xsl:template match="sect2/title"/>
+<xsl:template match="sect2/subtitle"/>
+<xsl:template match="sect2/titleabbrev"/>
+<xsl:template match="sect2info"/>
+<xsl:template match="sect2/info"/>
+
+<xsl:template match="sect3/title"/>
+<xsl:template match="sect3/subtitle"/>
+<xsl:template match="sect3/titleabbrev"/>
+<xsl:template match="sect3info"/>
+<xsl:template match="sect3/info"/>
+
+<xsl:template match="sect4/title"/>
+<xsl:template match="sect4/subtitle"/>
+<xsl:template match="sect4/titleabbrev"/>
+<xsl:template match="sect4info"/>
+<xsl:template match="sect4/info"/>
+
+<xsl:template match="sect5/title"/>
+<xsl:template match="sect5/subtitle"/>
+<xsl:template match="sect5/titleabbrev"/>
+<xsl:template match="sect5info"/>
+<xsl:template match="sect5/info"/>
+
+<xsl:template match="simplesect/title"/>
+<xsl:template match="simplesect/subtitle"/>
+<xsl:template match="simplesect/titleabbrev"/>
+<xsl:template match="simplesect/info"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="section.heading">
+  <xsl:param name="section" select="."/>
+  <xsl:param name="level" select="1"/>
+  <xsl:param name="allow-anchors" select="1"/>
+  <xsl:param name="title"/>
+  <xsl:param name="class" select="'title'"/>
+
+  <xsl:variable name="id">
+    <xsl:choose>
+      <!-- Make sure the subtitle doesn't get the same id as the title -->
+      <xsl:when test="self::subtitle">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="."/>
+        </xsl:call-template>
+      </xsl:when>
+      <!-- if title is in an *info wrapper, get the grandparent -->
+      <xsl:when test="contains(local-name(..), 'info')">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="../.."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- HTML H level is one higher than section level -->
+  <xsl:variable name="hlevel">
+    <xsl:choose>
+      <!-- highest valid HTML H level is H6; so anything nested deeper
+           than 5 levels down just becomes H6 -->
+      <xsl:when test="$level &gt; 5">6</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$level + 1"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:element name="h{$hlevel}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:attribute name="class"><xsl:value-of select="$class"/></xsl:attribute>
+    <xsl:if test="$css.decoration != '0'">
+      <xsl:if test="$hlevel&lt;3">
+        <xsl:attribute name="style">clear: both</xsl:attribute>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="$allow-anchors != 0">
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="node" select="$section"/>
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:copy-of select="$title"/>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bridgehead">
+  <xsl:variable name="container" select="(ancestor::appendix                         |ancestor::article                         |ancestor::bibliography                         |ancestor::chapter                         |ancestor::glossary                         |ancestor::glossdiv                         |ancestor::index                         |ancestor::partintro                         |ancestor::preface                         |ancestor::refsect1                         |ancestor::refsect2                         |ancestor::refsect3                         |ancestor::sect1                         |ancestor::sect2                         |ancestor::sect3                         |ancestor::sect4                         |ancestor::sect5                         |ancestor::section                         |ancestor::setindex                         |ancestor::simplesect)[last()]"/>
+
+  <xsl:variable name="clevel">
+    <xsl:choose>
+      <xsl:when test="local-name($container) = 'appendix'                       or local-name($container) = 'chapter'                       or local-name($container) = 'article'                       or local-name($container) = 'bibliography'                       or local-name($container) = 'glossary'                       or local-name($container) = 'index'                       or local-name($container) = 'partintro'                       or local-name($container) = 'preface'                       or local-name($container) = 'setindex'">1</xsl:when>
+      <xsl:when test="local-name($container) = 'glossdiv'">
+        <xsl:value-of select="count(ancestor::glossdiv)+1"/>
+      </xsl:when>
+      <xsl:when test="local-name($container) = 'sect1'                       or local-name($container) = 'sect2'                       or local-name($container) = 'sect3'                       or local-name($container) = 'sect4'                       or local-name($container) = 'sect5'                       or local-name($container) = 'refsect1'                       or local-name($container) = 'refsect2'                       or local-name($container) = 'refsect3'                       or local-name($container) = 'section'                       or local-name($container) = 'simplesect'">
+        <xsl:variable name="slevel">
+          <xsl:call-template name="section.level">
+            <xsl:with-param name="node" select="$container"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="$slevel + 1"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- HTML H level is one higher than section level -->
+  <xsl:variable name="hlevel">
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">2</xsl:when>
+      <xsl:when test="@renderas = 'sect2'">3</xsl:when>
+      <xsl:when test="@renderas = 'sect3'">4</xsl:when>
+      <xsl:when test="@renderas = 'sect4'">5</xsl:when>
+      <xsl:when test="@renderas = 'sect5'">6</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$clevel + 1"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="h{$hlevel}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="section/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="simplesect/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect1/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect2/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect3/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect4/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect5/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template name="section.subtitle">
+  <!-- the context node should be the subtitle of a section when called -->
+  <xsl:variable name="section" select="(ancestor::section                                         |ancestor::simplesect                                         |ancestor::sect1                                         |ancestor::sect2                                         |ancestor::sect3                                         |ancestor::sect4                                         |ancestor::sect5)[last()]"/>
+
+  <xsl:variable name="level">
+    <xsl:call-template name="section.level">
+      <xsl:with-param name="node" select="$section"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="section.heading">
+    <xsl:with-param name="section" select=".."/>
+    <xsl:with-param name="allow-anchors" select="0"/>
+    <!-- subtitle heading level one higher than section level -->
+    <xsl:with-param name="level" select="$level + 1"/>
+    <xsl:with-param name="class" select="'subtitle'"/>
+    <xsl:with-param name="title">
+      <xsl:apply-templates select="$section" mode="object.subtitle.markup">
+        <xsl:with-param name="allow-anchors" select="0"/>
+      </xsl:apply-templates>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/synop.xsl b/applications/content/template/docbook/xhtml-1_1/synop.xsl
new file mode 100644
index 0000000..be3b8b7
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/synop.xsl
@@ -0,0 +1,1614 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- synopsis is in verbatim -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="cmdsynopsis">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <p>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:if test="..//processing-instruction('dbcmdlist')">
+        <!-- * Placing a dbcmdlist PI as a child of a particular element -->
+        <!-- * creates a hyperlinked list of all cmdsynopsis instances -->
+        <!-- * that are descendants of that element; so for any -->
+        <!-- * cmdsynopsis that is a descendant of an element containing -->
+        <!-- * a dbcmdlist PI, we need to output an a@id instance so that -->
+        <!-- * we will have something to link to -->
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </p>
+  </div>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command">
+  <br/>
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command[1]" priority="2">
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="group|arg" name="group-or-arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:variable name="sepchar">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*/@sepchar">
+        <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text> </xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="preceding-sibling::*">
+    <xsl:value-of select="$sepchar"/>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.open.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.open.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates/>
+  <xsl:choose>
+    <xsl:when test="$rep='repeat'">
+      <xsl:value-of select="$arg.rep.repeat.str"/>
+    </xsl:when>
+    <xsl:when test="$rep='norepeat'">
+      <xsl:value-of select="$arg.rep.norepeat.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.rep.def.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.close.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.close.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="group/arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:if test="preceding-sibling::*">
+    <xsl:value-of select="$arg.or.sep"/>
+  </xsl:if>
+  <xsl:call-template name="group-or-arg"/>
+</xsl:template>
+
+<xsl:template match="sbr">
+  <br/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="synopfragmentref">
+  <xsl:variable name="target" select="key('id',@linkend)"/>
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="$target" mode="synopfragment.number"/>
+  </xsl:variable>
+  <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+    <a href="#{@linkend}">
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$snum"/>
+      <xsl:text>)</xsl:text>
+    </a>
+    <xsl:text>&#160;</xsl:text>
+    <xsl:apply-templates/>
+  </em>
+</xsl:template>
+
+<xsl:template match="synopfragment" mode="synopfragment.number">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="synopfragment">
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="." mode="synopfragment.number"/>
+  </xsl:variable>
+  <!-- You can't introduce another <p> here, because you're 
+       already in a <p> from cmdsynopsis-->
+  <span>
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:variable>
+    <a id="{$id}">
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$snum"/>
+      <xsl:text>)</xsl:text>
+    </a>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<xsl:template match="funcsynopsis">
+  <xsl:if test="..//processing-instruction('dbfunclist')">
+    <!-- * Placing a dbfunclist PI as a child of a particular element -->
+    <!-- * creates a hyperlinked list of all funcsynopsis instances that -->
+    <!-- * are descendants of that element; so for any funcsynopsis that is -->
+    <!-- * a descendant of an element containing a dbfunclist PI, we need -->
+    <!-- * to output an a@id instance so that we will have something to -->
+    <!-- * link to -->
+    <span>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </span>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+  </xsl:if>
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsisinfo">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </pre>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype -->
+<!--
+
+funcprototype ::= (funcdef,
+                   (void|varargs|paramdef+))
+
+funcdef       ::= (#PCDATA|type|replaceable|function)*
+
+paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
+-->
+
+<xsl:template match="funcprototype">
+  <xsl:variable name="html-style">
+    <xsl:call-template name="pi.dbhtml_funcsynopsis-style">
+      <xsl:with-param name="node" select="ancestor::funcsynopsis/descendant-or-self::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="style">
+    <xsl:choose>
+      <xsl:when test="$html-style != ''">
+        <xsl:value-of select="$html-style"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$funcsynopsis.style"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+<!-- * 2008-02-17. the code no longer relies on the funcsynopsis.tabular.threshold -->
+<!-- * param at all (the stuff below has been commented out since mid -->
+<!-- * 2006), so I completely removed the funcsynopsis.tabular.threshold param -->
+<!-- * .. MikeSmith -->
+<!--
+  <xsl:variable name="tabular-p"
+                select="$funcsynopsis.tabular.threshold &gt; 0
+                        and string-length(.) &gt; $funcsynopsis.tabular.threshold"/>
+-->
+
+  <xsl:variable name="tabular-p" select="true()"/>
+
+  <xsl:choose>
+    <xsl:when test="$style = 'kr' and $tabular-p">
+      <xsl:apply-templates select="." mode="kr-tabular"/>
+    </xsl:when>
+    <xsl:when test="$style = 'kr'">
+      <xsl:apply-templates select="." mode="kr-nontabular"/>
+    </xsl:when>
+    <xsl:when test="$style = 'ansi' and $tabular-p">
+      <xsl:apply-templates select="." mode="ansi-tabular"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="." mode="ansi-nontabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: kr, non-tabular -->
+
+<xsl:template match="funcprototype" mode="kr-nontabular">
+  <p>
+    <xsl:apply-templates mode="kr-nontabular"/>
+    <xsl:if test="paramdef">
+      <br/>
+      <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/>
+    </xsl:if>
+  </p>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="kr-nontabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="kr-nontabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="kr-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">fsfunc<xsl:apply-templates mode="kr-nontabular"/></strong>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="kr-nontabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="kr-nontabular">
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="kr-nontabular">
+  <xsl:text>...</xsl:text>
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-nontabular">
+  <xsl:apply-templates select="parameter" mode="kr-nontabular"/>
+  <xsl:choose>
+    <xsl:when test="following-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>)</code>
+      <xsl:text>;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-nontabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-nontabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-funcsynopsis-mode">
+  <xsl:if test="preceding-sibling::paramdef"><br/></xsl:if>
+  <code>
+    <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+  </code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-funcsynopsis-mode">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="kr-funcsynopsis-mode">
+  <code>(</code>
+  <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+  <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: kr, tabular -->
+
+<xsl:template match="funcprototype" mode="kr-tabular">
+  <table border="{$table.border.off}" class="funcprototype-table">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Function synopsis</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$css.decoration != 0">
+      <xsl:attribute name="style">cellspacing: 0; cellpadding: 0;</xsl:attribute>
+    </xsl:if>
+    <tr>
+      <td>
+        <xsl:apply-templates select="funcdef" mode="kr-tabular"/>
+      </td>
+      <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="kr-tabular"/>
+    </tr>
+    <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
+      <tr>
+        <td>&#160;</td>
+        <xsl:apply-templates select="." mode="kr-tabular"/>
+      </tr>
+    </xsl:for-each>
+  </table>
+  <xsl:if test="paramdef">
+    <div class="paramdef-list">
+      <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/>
+    </div>
+  </xsl:if>
+  <div class="funcprototype-spacer">&#160;</div> <!-- hACk: blank div for vertical spacing -->
+</xsl:template>
+
+<xsl:template match="funcdef" mode="kr-tabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="kr-tabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="kr-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">fsfunc<xsl:apply-templates mode="kr-nontabular"/></strong>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="kr-tabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="kr-tabular">
+  <td>
+    <code>)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="varargs" mode="kr-tabular">
+  <td>
+    <xsl:text>...</xsl:text>
+    <code>)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-tabular">
+  <td>
+    <xsl:apply-templates select="parameter" mode="kr-tabular"/>
+    <xsl:choose>
+      <xsl:when test="following-sibling::*">
+	<xsl:text>, </xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+	<code>)</code>
+	<xsl:text>;</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-tabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-tabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-tabular-funcsynopsis-mode">
+  <xsl:variable name="type">
+    <xsl:choose>
+      <xsl:when test="type">
+	<xsl:apply-templates select="type" mode="kr-tabular-funcsynopsis-mode"/>
+      </xsl:when>
+      <xsl:when test="normalize-space(parameter/preceding-sibling::node()[not(self::parameter)]) != ''">
+	<xsl:copy-of select="parameter/preceding-sibling::node()[not(self::parameter)]"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <tr>
+    <xsl:choose>
+      <xsl:when test="$type != '' and funcparams">
+        <td>
+	  <code>
+	    <xsl:copy-of select="$type"/>
+	  </code>
+          <xsl:text>&#160;</xsl:text>
+        </td>
+        <td>
+	  <code>
+	    <xsl:choose>
+	      <xsl:when test="type">
+		<xsl:apply-templates select="type/following-sibling::*" mode="kr-tabular-funcsynopsis-mode"/>
+	      </xsl:when>
+	      <xsl:otherwise>
+		<xsl:apply-templates select="*" mode="kr-tabular-funcsynopsis-mode"/>
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </code>
+        </td>
+      </xsl:when>
+
+      <xsl:when test="funcparams">
+        <td colspan="2">
+	  <code>
+	    <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+	  </code>
+        </td>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <td>
+	  <code>
+	    <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/>
+	  </code>
+          <xsl:text>&#160;</xsl:text>
+        </td>
+        <td>
+	  <code>
+	    <xsl:apply-templates select="parameter" mode="kr-tabular"/>
+	    <xsl:apply-templates select="parameter/following-sibling::*[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/>
+	    <xsl:text>;</xsl:text>
+	  </code>
+        </td>
+      </xsl:otherwise>
+    </xsl:choose>
+  </tr>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-tabular-funcsynopsis-mode">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="kr-tabular-funcsynopsis-mode">
+  <code>(</code>
+  <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: ansi, non-tabular -->
+
+<xsl:template match="funcprototype" mode="ansi-nontabular">
+  <p>
+    <xsl:apply-templates mode="ansi-nontabular"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="ansi-nontabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="ansi-nontabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="ansi-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">fsfunc<xsl:apply-templates mode="ansi-nontabular"/></strong>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="ansi-nontabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="ansi-nontabular">
+  <code>void)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="ansi-nontabular">
+  <xsl:text>...</xsl:text>
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="ansi-nontabular">
+  <xsl:apply-templates mode="ansi-nontabular"/>
+  <xsl:choose>
+    <xsl:when test="following-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>)</code>
+      <xsl:text>;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="ansi-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="ansi-nontabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="ansi-nontabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="ansi-nontabular">
+  <code>(</code>
+  <xsl:apply-templates mode="ansi-nontabular"/>
+  <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: ansi, tabular -->
+
+<xsl:template match="funcprototype" mode="ansi-tabular">
+  <table border="{$table.border.off}" class="funcprototype-table">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Function synopsis</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$css.decoration != 0">
+      <xsl:attribute name="style">cellspacing: 0; cellpadding: 0;</xsl:attribute>
+    </xsl:if>
+    <tr>
+      <td>
+        <xsl:apply-templates select="funcdef" mode="ansi-tabular"/>
+      </td>
+      <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="ansi-tabular"/>
+    </tr>
+    <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
+      <tr>
+        <td>&#160;</td>
+        <xsl:apply-templates select="." mode="ansi-tabular"/>
+      </tr>
+    </xsl:for-each>
+  </table>
+  <div class="funcprototype-spacer">&#160;</div> <!-- hACk: blank div for vertical spacing -->
+</xsl:template>
+
+<xsl:template match="funcdef" mode="ansi-tabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="ansi-tabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="ansi-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">fsfunc<xsl:apply-templates mode="ansi-nontabular"/></strong>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="kr-tabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="ansi-tabular">
+  <td>
+    <code>void)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="varargs" mode="ansi-tabular">
+  <td>
+    <xsl:text>...</xsl:text>
+    <code>)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="ansi-tabular">
+      <td>
+        <xsl:apply-templates mode="ansi-tabular"/>
+        <xsl:choose>
+          <xsl:when test="following-sibling::*">
+            <xsl:text>, </xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <code>)</code>
+            <xsl:text>;</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </td>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="ansi-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="ansi-tabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="ansi-tabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="ansi-tabular">
+  <code>(</code>
+  <xsl:apply-templates/>
+  <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:variable name="default-classsynopsis-language">java</xsl:variable>
+
+<xsl:template match="classsynopsis                      |fieldsynopsis                      |methodsynopsis                      |constructorsynopsis                      |destructorsynopsis">
+  <xsl:param name="language">
+    <xsl:choose>
+      <xsl:when test="@language">
+	<xsl:value-of select="@language"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="$default-classsynopsis-language"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$language='java' or $language='Java'">
+      <xsl:apply-templates select="." mode="java"/>
+    </xsl:when>
+    <xsl:when test="$language='perl' or $language='Perl'">
+      <xsl:apply-templates select="." mode="perl"/>
+    </xsl:when>
+    <xsl:when test="$language='idl' or $language='IDL'">
+      <xsl:apply-templates select="." mode="idl"/>
+    </xsl:when>
+    <xsl:when test="$language='cpp' or $language='c++' or $language='C++'">
+      <xsl:apply-templates select="." mode="cpp"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Unrecognized language on </xsl:text>
+        <xsl:value-of select="local-name(.)"/>
+        <xsl:text>: </xsl:text>
+	<xsl:value-of select="$language"/>
+      </xsl:message>
+      <xsl:apply-templates select=".">
+	<xsl:with-param name="language" select="$default-classsynopsis-language"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="synop-break">
+  <xsl:if test="parent::classsynopsis                 or (following-sibling::fieldsynopsis                     |following-sibling::methodsynopsis                     |following-sibling::constructorsynopsis                     |following-sibling::destructorsynopsis)">
+    <br/>
+  </xsl:if>
+</xsl:template>
+
+
+<!-- ===== Java ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="java">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates select="ooclass[1]" mode="java"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text> extends</xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="java"/>
+      <xsl:if test="oointerface|ooexception">
+        <br/>
+	<xsl:text>&#160;&#160;&#160;&#160;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text>implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="java"/>
+      <xsl:if test="ooexception">
+        <br/>
+	<xsl:text>&#160;&#160;&#160;&#160;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text>throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="java"/>
+    </xsl:if>
+    <xsl:text>&#160;{</xsl:text>
+    <br/>
+    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="java"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="java">
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="java">
+  <xsl:choose>
+    <xsl:when test="preceding-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text> </xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&#160;</xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="java">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>=&#160;</xsl:text>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="java">
+  <xsl:param name="indent">0</xsl:param>
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>,</xsl:text>
+    <br/>
+    <xsl:if test="$indent &gt; 0">
+      <xsl:call-template name="copy-string">
+	<xsl:with-param name="string">&#160;</xsl:with-param>
+	<xsl:with-param name="count" select="$indent + 1"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="java" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="decl">
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$start-modifiers" mode="java"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="java"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="java"/>
+  </xsl:variable>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$decl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="java">
+      <xsl:with-param name="indent" select="string-length($decl)"/>
+    </xsl:apply-templates>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <br/>
+      <xsl:text>&#160;&#160;&#160;&#160;throws&#160;</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="java"/>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="java"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== C++ ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="cpp">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="cpp"/>
+      <xsl:if test="oointerface|ooexception">
+        <br/>
+	<xsl:text>&#160;&#160;&#160;&#160;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="cpp"/>
+      <xsl:if test="ooexception">
+        <br/>
+	<xsl:text>&#160;&#160;&#160;&#160;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="cpp"/>
+    </xsl:if>
+    <xsl:text>&#160;{</xsl:text>
+    <br/>
+    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="cpp"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="cpp">
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="cpp">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&#160;</xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="cpp">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>=&#160;</xsl:text>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="cpp">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="cpp" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$start-modifiers" mode="cpp"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="cpp"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="cpp"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="cpp"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <br/>
+      <xsl:text>&#160;&#160;&#160;&#160;throws&#160;</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="cpp"/>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="cpp"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== IDL ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="idl">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>interface </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="idl"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="idl"/>
+      <xsl:if test="oointerface|ooexception">
+        <br/>
+	<xsl:text>&#160;&#160;&#160;&#160;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="idl"/>
+      <xsl:if test="ooexception">
+        <br/>
+	<xsl:text>&#160;&#160;&#160;&#160;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="idl"/>
+    </xsl:if>
+    <xsl:text>&#160;{</xsl:text>
+    <br/>
+    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="idl"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="idl">
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="idl">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&#160;</xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="idl">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>=&#160;</xsl:text>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="idl">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="idl" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$start-modifiers" mode="idl"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="idl"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="idl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="idl"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <br/>
+      <xsl:text>&#160;&#160;&#160;&#160;raises(</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="idl"/>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="idl"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== Perl ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="perl">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>package </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="perl"/>
+    <xsl:text>;</xsl:text>
+    <br/>
+
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>@ISA = (</xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="perl"/>
+      <xsl:text>);</xsl:text>
+      <br/>
+    </xsl:if>
+
+    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="perl"/>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="perl">
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="perl">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&#160;</xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="perl">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>=&#160;</xsl:text>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="perl">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="perl" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>sub </xsl:text>
+
+    <xsl:apply-templates select="methodname" mode="perl"/>
+    <xsl:text> { ... };</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- Used when not occurring as a child of classsynopsis -->
+<xsl:template match="ooclass|oointerface|ooexception">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * DocBook 5 allows linking elements (link, olink, and xref) -->
+<!-- * within the OO *synopsis elements (classsynopsis, fieldsynopsis, -->
+<!-- * methodsynopsis, constructorsynopsis, destructorsynopsis) and -->
+<!-- * their children. So we need to have mode="java|cpp|idl|perl" -->
+<!-- * per-mode matches for those linking elements in order for them -->
+<!-- * to be processed as expected. -->
+
+<xsl:template match="link|olink|xref" mode="java">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="cpp">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="idl">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="perl">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="ansi-nontabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="ansi-tabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="kr-nontabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="kr-tabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/table.xsl b/applications/content/template/docbook/xhtml-1_1/table.xsl
new file mode 100644
index 0000000..e546144
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/table.xsl
@@ -0,0 +1,1177 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns:stbl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Table" xmlns:xtbl="xalan://com.nwalsh.xalan.Table" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:ptbl="http://nwalsh.com/xslt/ext/xsltproc/python/Table" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="doc stbl xtbl lxslt ptbl" version="1.0">
+
+<xsl:include href="../common/table.xsl"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xtbl" functions="adjustColumnWidths"/>
+
+<xsl:template name="empty.table.cell">
+  <xsl:param name="colnum" select="0"/>
+
+  <xsl:variable name="rowsep">
+    <xsl:choose>
+      <!-- If this is the last row, rowsep never applies. -->
+      <xsl:when test="not(ancestor-or-self::row[1]/following-sibling::row                           or ancestor-or-self::thead/following-sibling::tbody                           or ancestor-or-self::tbody/preceding-sibling::tfoot)">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="NOT-AN-ELEMENT-NAME"/>
+          <xsl:with-param name="row" select="ancestor-or-self::row[1]"/>
+          <xsl:with-param name="colnum" select="$colnum"/>
+          <xsl:with-param name="attribute" select="'rowsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="colsep">
+    <xsl:choose>
+      <!-- If this is the last column, colsep never applies. -->
+      <xsl:when test="number($colnum) &gt;= ancestor::tgroup/@cols">0</xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="NOT-AN-ELEMENT-NAME"/>
+          <xsl:with-param name="row" select="ancestor-or-self::row[1]"/>
+          <xsl:with-param name="colnum" select="$colnum"/>
+          <xsl:with-param name="attribute" select="'colsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <td class="auto-generated">
+    <xsl:if test="$table.borders.with.css != 0">
+      <xsl:attribute name="style">
+        <xsl:if test="$colsep &gt; 0">
+          <xsl:call-template name="border">
+            <xsl:with-param name="side" select="'right'"/>
+          </xsl:call-template>
+        </xsl:if>
+        <xsl:if test="$rowsep &gt; 0">
+          <xsl:call-template name="border">
+            <xsl:with-param name="side" select="'bottom'"/>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:text>&#160;</xsl:text>
+  </td>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="border">
+  <xsl:param name="side" select="'left'"/>
+  <xsl:param name="padding" select="0"/>
+  <xsl:param name="style" select="$table.cell.border.style"/>
+  <xsl:param name="color" select="$table.cell.border.color"/>
+  <xsl:param name="thickness" select="$table.cell.border.thickness"/>
+
+  <!-- Note: Some browsers (mozilla) require at least a width and style. -->
+
+  <xsl:choose>
+    <xsl:when test="($thickness != ''                      and $style != ''                      and $color != '')                     or ($thickness != ''                         and $style != '')                     or ($thickness != '')">
+      <!-- use the compound property if we can: -->
+      <!-- it saves space and probably works more reliably -->
+      <xsl:text>border-</xsl:text>
+      <xsl:value-of select="$side"/>
+      <xsl:text>: </xsl:text>
+      <xsl:value-of select="$thickness"/>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$style"/>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$color"/>
+      <xsl:text>; </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- we need to specify the styles individually -->
+      <xsl:if test="$thickness != ''">
+        <xsl:text>border-</xsl:text>
+        <xsl:value-of select="$side"/>
+        <xsl:text>-width: </xsl:text>
+        <xsl:value-of select="$thickness"/>
+        <xsl:text>; </xsl:text>
+      </xsl:if>
+
+      <xsl:if test="$style != ''">
+        <xsl:text>border-</xsl:text>
+        <xsl:value-of select="$side"/>
+        <xsl:text>-style: </xsl:text>
+        <xsl:value-of select="$style"/>
+        <xsl:text>; </xsl:text>
+      </xsl:if>
+
+      <xsl:if test="$color != ''">
+        <xsl:text>border-</xsl:text>
+        <xsl:value-of select="$side"/>
+        <xsl:text>-color: </xsl:text>
+        <xsl:value-of select="$color"/>
+        <xsl:text>; </xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="tgroup" name="tgroup">
+  <xsl:if test="not(@cols) or @cols = '' or string(number(@cols)) = 'NaN'">
+    <xsl:message terminate="yes">
+      <xsl:text>Error: CALS tables must specify the number of columns.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellspacing">
+    <xsl:call-template name="pi.dbhtml_cellspacing"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellpadding">
+    <xsl:call-template name="pi.dbhtml_cellpadding"/>
+  </xsl:variable>
+
+  <table>
+    <xsl:choose>
+      <!-- If there's a textobject/phrase for the table summary, use it -->
+      <xsl:when test="../textobject/phrase">
+        <xsl:attribute name="summary">
+          <xsl:value-of select="../textobject/phrase"/>
+        </xsl:attribute>
+      </xsl:when>
+
+      <!-- If there's a <?dbhtml table-summary="foo"?> PI, use it for
+           the HTML table summary attribute -->
+      <xsl:when test="$summary != ''">
+        <xsl:attribute name="summary">
+          <xsl:value-of select="$summary"/>
+        </xsl:attribute>
+      </xsl:when>
+
+      <!-- Otherwise, if there's a title, use that -->
+      <xsl:when test="../title">
+        <xsl:attribute name="summary">
+          <!-- This screws up on inline markup and footnotes, oh well... -->
+          <xsl:value-of select="string(../title)"/>
+        </xsl:attribute>
+      </xsl:when>
+
+      <!-- Otherwise, forget the whole idea -->
+      <xsl:otherwise><!-- nevermind --></xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$cellspacing != '' or $html.cellspacing != ''">
+      <xsl:attribute name="cellspacing">
+        <xsl:choose>
+          <xsl:when test="$cellspacing != ''">
+            <xsl:value-of select="$cellspacing"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$html.cellspacing"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$cellpadding != '' or $html.cellpadding != ''">
+      <xsl:attribute name="cellpadding">
+        <xsl:choose>
+          <xsl:when test="$cellpadding != ''">
+            <xsl:value-of select="$cellpadding"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$html.cellpadding"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="../@pgwide=1 or local-name(.) = 'entrytbl'">
+      <xsl:attribute name="width">100%</xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$table.borders.with.css != 0">
+        <xsl:choose>
+          <xsl:when test="../@frame='all' or (not(../@frame) and $default.table.frame='all')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'top'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'bottom'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'left'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'right'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='topbot' or (not(../@frame) and $default.table.frame='topbot')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'top'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'bottom'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='top' or (not(../@frame) and $default.table.frame='top')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'top'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='bottom' or (not(../@frame) and $default.table.frame='bottom')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'bottom'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='sides' or (not(../@frame) and $default.table.frame='sides')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'left'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'right'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='none'">
+            <xsl:attribute name="style">
+              <xsl:text>border: none;</xsl:text>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+            </xsl:attribute>
+          </xsl:otherwise>
+        </xsl:choose>
+
+      </xsl:when>
+      <xsl:when test="../@frame='none' or (not(../@frame) and $default.table.frame='none') or local-name(.) = 'entrytbl'">
+        <xsl:attribute name="border">0</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:attribute name="border">1</xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="colgroup">
+      <colgroup>
+        <xsl:call-template name="generate.colgroup">
+          <xsl:with-param name="cols" select="@cols"/>
+        </xsl:call-template>
+      </colgroup>
+    </xsl:variable>
+
+    <xsl:variable name="explicit.table.width">
+      <xsl:call-template name="pi.dbhtml_table-width">
+        <xsl:with-param name="node" select=".."/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="table.width">
+      <xsl:choose>
+        <xsl:when test="$explicit.table.width != ''">
+          <xsl:value-of select="$explicit.table.width"/>
+        </xsl:when>
+        <xsl:when test="$default.table.width = ''">
+          <xsl:text>100%</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$default.table.width"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:if test="$default.table.width != ''                   or $explicit.table.width != ''">
+      <xsl:attribute name="width">
+        <xsl:choose>
+          <xsl:when test="contains($table.width, '%')">
+            <xsl:value-of select="$table.width"/>
+          </xsl:when>
+          <xsl:when test="$use.extensions != 0                           and $tablecolumns.extension != 0">
+            <xsl:choose>
+              <xsl:when test="function-available('stbl:convertLength')">
+                <xsl:value-of select="stbl:convertLength($table.width)"/>
+              </xsl:when>
+              <xsl:when test="function-available('xtbl:convertLength')">
+                <xsl:value-of select="xtbl:convertLength($table.width)"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:message terminate="yes">
+                  <xsl:text>No convertLength function available.</xsl:text>
+                </xsl:message>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$table.width"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$use.extensions != 0                       and $tablecolumns.extension != 0">
+        <xsl:choose>
+          <xsl:when test="function-available('stbl:adjustColumnWidths')">
+            <xsl:copy-of select="stbl:adjustColumnWidths($colgroup)"/>
+          </xsl:when>
+          <xsl:when test="function-available('xtbl:adjustColumnWidths')">
+            <xsl:copy-of select="xtbl:adjustColumnWidths($colgroup)"/>
+          </xsl:when>
+          <xsl:when test="function-available('ptbl:adjustColumnWidths')">
+            <xsl:copy-of select="ptbl:adjustColumnWidths($colgroup)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message terminate="yes">
+              <xsl:text>No adjustColumnWidths function available.</xsl:text>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$colgroup"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:apply-templates select="thead"/>
+    <xsl:apply-templates select="tfoot"/>
+    <xsl:apply-templates select="tbody"/>
+
+    <xsl:if test=".//footnote|../title//footnote">
+      <tbody class="footnotes">
+        <tr>
+          <td colspan="{@cols}">
+            <xsl:apply-templates select=".//footnote|../title//footnote" mode="table.footnote.mode"/>
+          </td>
+        </tr>
+      </tbody>
+    </xsl:if>
+  </table>
+</xsl:template>
+
+<xsl:template match="tgroup/processing-instruction('dbhtml')">
+  <xsl:variable name="summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <!-- Suppress the table-summary PI -->
+  <xsl:if test="$summary = ''">
+    <xsl:processing-instruction name="dbhtml">
+      <xsl:value-of select="."/>
+    </xsl:processing-instruction>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="colspec"/>
+
+<xsl:template match="spanspec"/>
+
+<xsl:template match="thead|tfoot">
+  <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:if test="@align">
+      <xsl:attribute name="style"><xsl:text>text-align: </xsl:text>
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <!-- recurse on rows only if @morerows is present -->
+      <xsl:when test="row/entry/@morerows|row/entrytbl/@morerows">
+        <xsl:apply-templates select="row[1]">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'recurse'"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="row">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'loop'"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="tbody">
+  <tbody>
+    <xsl:if test="@align">
+      <xsl:attribute name="style"><xsl:text>text-align: </xsl:text>
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="row/entry/@morerows|row/entrytbl/@morerows">
+        <xsl:apply-templates select="row[1]">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'recurse'"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="row">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'loop'"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+
+  </tbody>
+</xsl:template>
+
+<xsl:template match="row">
+  <xsl:param name="spans"/>
+  <xsl:param name="browserows"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($spans, '0')">
+      <xsl:call-template name="normal-row">
+        <xsl:with-param name="spans" select="$spans"/>
+        <xsl:with-param name="browserows" select="$browserows"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <!--
+      <xsl:message>
+        <xsl:text>Ignoring row: </xsl:text>
+        <xsl:value-of select="$spans"/>
+        <xsl:text> = </xsl:text>
+        <xsl:call-template name="consume-row">
+          <xsl:with-param name="spans" select="$spans"/>
+        </xsl:call-template>
+      </xsl:message>
+      -->
+
+      <xsl:if test="normalize-space(.//text()) != ''">
+        <xsl:message>Warning: overlapped row contains content!</xsl:message>
+      </xsl:if>
+
+      <tr><xsl:comment> This row intentionally left blank </xsl:comment></tr>
+
+      <xsl:if test="$browserows = 'recurse'">
+        <xsl:apply-templates select="following-sibling::row[1]">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="consume-row">
+              <xsl:with-param name="spans" select="$spans"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="$browserows"/>
+        </xsl:apply-templates>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="normal-row">
+  <xsl:param name="spans"/>
+  <xsl:param name="browserows"/>
+
+  <xsl:variable name="row-height">
+    <xsl:if test="processing-instruction('dbhtml')">
+      <xsl:call-template name="pi.dbhtml_row-height"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="bgcolor">
+    <xsl:if test="processing-instruction('dbhtml')">
+      <xsl:call-template name="pi.dbhtml_bgcolor"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="class">
+    <xsl:if test="processing-instruction('dbhtml')">
+      <xsl:call-template name="pi.dbhtml_class"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <tr>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="tr.attributes">
+      <xsl:with-param name="rownum">
+        <xsl:number from="tgroup" count="row"/>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:if test="$row-height != ''">
+      <xsl:attribute name="height">
+        <xsl:value-of select="$row-height"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$bgcolor != ''">
+      <xsl:attribute name="style"><xsl:text>background-color: </xsl:text>
+        <xsl:value-of select="$bgcolor"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$class != ''">
+      <xsl:attribute name="class">
+        <xsl:value-of select="$class"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$table.borders.with.css != 0">
+      <xsl:if test="@rowsep = 1 and following-sibling::row">
+        <xsl:attribute name="style">
+          <xsl:call-template name="border">
+            <xsl:with-param name="side" select="'bottom'"/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </xsl:if>
+    </xsl:if>
+
+    <xsl:if test="@align">
+      <xsl:attribute name="style"><xsl:text>text-align: </xsl:text>
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="(entry|entrytbl)[1]">
+      <xsl:with-param name="spans" select="$spans"/>
+    </xsl:apply-templates>
+  </tr>
+
+  <xsl:if test="$browserows = 'recurse'">
+    <xsl:if test="following-sibling::row">
+      <xsl:variable name="nextspans">
+        <xsl:apply-templates select="(entry|entrytbl)[1]" mode="span">
+          <xsl:with-param name="spans" select="$spans"/>
+        </xsl:apply-templates>
+      </xsl:variable>
+  
+      <xsl:apply-templates select="following-sibling::row[1]">
+        <xsl:with-param name="spans" select="$nextspans"/>
+        <xsl:with-param name="browserows" select="$browserows"/>
+      </xsl:apply-templates>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="entry|entrytbl" name="entry">
+  <xsl:param name="col">
+    <xsl:choose>
+      <xsl:when test="@revisionflag">
+        <xsl:number from="row"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:param name="spans"/>
+
+  <xsl:variable name="cellgi">
+    <xsl:choose>
+      <xsl:when test="ancestor::thead">th</xsl:when>
+      <xsl:when test="ancestor::tfoot">th</xsl:when>
+      <xsl:when test="ancestor::tbody and                        (ancestor::table[@rowheader = 'firstcol'] or                       ancestor::informaltable[@rowheader = 'firstcol']) and                       ancestor-or-self::entry[1][count(preceding-sibling::entry) = 0]">
+        <xsl:text>th</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>td</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="empty.cell" select="count(node()) = 0"/>
+
+  <xsl:variable name="named.colnum">
+    <xsl:call-template name="entry.colnum"/>
+  </xsl:variable>
+
+  <xsl:variable name="entry.colnum">
+    <xsl:choose>
+      <xsl:when test="$named.colnum &gt; 0">
+        <xsl:value-of select="$named.colnum"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$col"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="entry.colspan">
+    <xsl:choose>
+      <xsl:when test="@spanname or @namest">
+        <xsl:call-template name="calculate.colspan"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="following.spans">
+    <xsl:call-template name="calculate.following.spans">
+      <xsl:with-param name="colspan" select="$entry.colspan"/>
+      <xsl:with-param name="spans" select="$spans"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="rowsep">
+    <xsl:choose>
+      <!-- If this is the last row, rowsep never applies. -->
+      <xsl:when test="ancestor::entrytbl                       and not (ancestor-or-self::row[1]/following-sibling::row)                       and not (ancestor::thead)">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <xsl:when test="not(ancestor-or-self::row[1]/following-sibling::row                           or ancestor-or-self::thead/following-sibling::tbody                           or ancestor-or-self::tbody/preceding-sibling::tfoot)">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <xsl:when test="@morerows and not(@morerows &lt;                   count(ancestor-or-self::row[1]/following-sibling::row))">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="."/>
+          <xsl:with-param name="colnum" select="$entry.colnum"/>
+          <xsl:with-param name="attribute" select="'rowsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="colsep">
+    <xsl:choose>
+      <!-- If this is the last column, colsep never applies. -->
+      <xsl:when test="$following.spans = ''">0</xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="."/>
+          <xsl:with-param name="colnum" select="$entry.colnum"/>
+          <xsl:with-param name="attribute" select="'colsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="valign">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'valign'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="align">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'align'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="char">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'char'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="charoff">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'charoff'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$spans != '' and not(starts-with($spans,'0:'))">
+      <xsl:call-template name="entry">
+        <xsl:with-param name="col" select="$col+1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="number($entry.colnum) &gt; $col">
+      <xsl:call-template name="empty.table.cell"/>
+      <xsl:call-template name="entry">
+        <xsl:with-param name="col" select="$col+1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:variable name="bgcolor">
+        <xsl:if test="processing-instruction('dbhtml')">
+          <xsl:call-template name="pi.dbhtml_bgcolor"/>
+        </xsl:if>
+      </xsl:variable>
+
+      <xsl:element name="{$cellgi}" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="$bgcolor != ''">
+          <xsl:attribute name="style"><xsl:text>background-color: </xsl:text>
+            <xsl:value-of select="$bgcolor"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:call-template name="locale.html.attributes"/>
+        <xsl:choose>
+          <xsl:when test="$entry.propagates.style != 0 and @role">
+            <xsl:apply-templates select="." mode="class.attribute">
+              <xsl:with-param name="class" select="@role"/>
+            </xsl:apply-templates>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="." mode="class.attribute">
+              <xsl:with-param name="class" select="''"/>
+            </xsl:apply-templates>
+          </xsl:otherwise>
+        </xsl:choose>
+
+        <xsl:if test="$show.revisionflag and @revisionflag">
+          <xsl:attribute name="class">
+            <xsl:value-of select="@revisionflag"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$table.borders.with.css != 0">
+          <xsl:attribute name="style">
+            <xsl:if test="$colsep &gt; 0">
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'right'"/>
+              </xsl:call-template>
+            </xsl:if>
+            <xsl:if test="$rowsep &gt; 0">
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'bottom'"/>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="@morerows &gt; 0">
+          <xsl:attribute name="rowspan">
+            <xsl:value-of select="1+@morerows"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$entry.colspan &gt; 1">
+          <xsl:attribute name="colspan">
+            <xsl:value-of select="$entry.colspan"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$align != ''">
+          <xsl:attribute name="style"><xsl:text>text-align: </xsl:text>
+            <xsl:value-of select="$align"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$valign != ''">
+          <xsl:attribute name="valign">
+            <xsl:value-of select="$valign"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$char != ''">
+          <xsl:attribute name="char">
+            <xsl:value-of select="$char"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$charoff != ''">
+          <xsl:attribute name="charoff">
+            <xsl:value-of select="$charoff"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="not(preceding-sibling::*) and                      (ancestor::row[1]/@id or ancestor::row[1]/@xml:id)">
+          <xsl:call-template name="anchor">
+            <xsl:with-param name="node" select="ancestor::row[1]"/>
+          </xsl:call-template>
+        </xsl:if>
+
+        <xsl:call-template name="anchor"/>
+
+        <xsl:choose>
+          <xsl:when test="$empty.cell">
+            <xsl:text>&#160;</xsl:text>
+          </xsl:when>
+          <xsl:when test="self::entrytbl">
+            <xsl:call-template name="tgroup"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:element>
+
+      <xsl:choose>
+        <xsl:when test="following-sibling::entry|following-sibling::entrytbl">
+          <xsl:apply-templates select="(following-sibling::entry                                        |following-sibling::entrytbl)[1]">
+            <xsl:with-param name="col" select="$col+$entry.colspan"/>
+            <xsl:with-param name="spans" select="$following.spans"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="finaltd">
+            <xsl:with-param name="spans" select="$following.spans"/>
+            <xsl:with-param name="col" select="$col+$entry.colspan"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="entry|entrytbl" name="sentry" mode="span">
+  <xsl:param name="col" select="1"/>
+  <xsl:param name="spans"/>
+
+  <xsl:variable name="entry.colnum">
+    <xsl:call-template name="entry.colnum"/>
+  </xsl:variable>
+
+  <xsl:variable name="entry.colspan">
+    <xsl:choose>
+      <xsl:when test="@spanname or @namest">
+        <xsl:call-template name="calculate.colspan"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="following.spans">
+    <xsl:call-template name="calculate.following.spans">
+      <xsl:with-param name="colspan" select="$entry.colspan"/>
+      <xsl:with-param name="spans" select="$spans"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$spans != '' and not(starts-with($spans,'0:'))">
+      <xsl:value-of select="substring-before($spans,':')-1"/>
+      <xsl:text>:</xsl:text>
+      <xsl:call-template name="sentry">
+        <xsl:with-param name="col" select="$col+1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="number($entry.colnum) &gt; $col">
+      <xsl:text>0:</xsl:text>
+      <xsl:call-template name="sentry">
+        <xsl:with-param name="col" select="$col + 1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="copy-string">
+        <xsl:with-param name="count" select="$entry.colspan"/>
+        <xsl:with-param name="string">
+          <xsl:choose>
+            <xsl:when test="@morerows">
+              <xsl:value-of select="@morerows"/>
+            </xsl:when>
+            <xsl:otherwise>0</xsl:otherwise>
+          </xsl:choose>
+          <xsl:text>:</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+
+      <xsl:choose>
+        <xsl:when test="following-sibling::entry|following-sibling::entrytbl">
+          <xsl:apply-templates select="(following-sibling::entry                                         |following-sibling::entrytbl)[1]" mode="span">
+            <xsl:with-param name="col" select="$col+$entry.colspan"/>
+            <xsl:with-param name="spans" select="$following.spans"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="sfinaltd">
+            <xsl:with-param name="spans" select="$following.spans"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.colgroup">
+  <xsl:param name="cols" select="1"/>
+  <xsl:param name="count" select="1"/>
+  <xsl:choose>
+    <xsl:when test="$count &gt; $cols"/>
+    <xsl:otherwise>
+      <xsl:call-template name="generate.col">
+        <xsl:with-param name="countcol" select="$count"/>
+      </xsl:call-template>
+      <xsl:call-template name="generate.colgroup">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.col">
+  <xsl:param name="countcol">1</xsl:param>
+  <xsl:param name="colspecs" select="./colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:param name="colnum">1</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count&gt;count($colspecs)">
+      <col/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+      <xsl:variable name="colspec.colnum">
+        <xsl:choose>
+          <xsl:when test="$colspec/@colnum">
+            <xsl:value-of select="$colspec/@colnum"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$colnum"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$colspec.colnum=$countcol">
+          <col>
+            <xsl:choose>
+              <xsl:when test="$colspec/@colwidth                             and $use.extensions != 0                             and $tablecolumns.extension != 0">
+                <xsl:attribute name="width">
+                  <xsl:choose>
+                    <xsl:when test="normalize-space($colspec/@colwidth) = '*'">
+                      <xsl:value-of select="'1*'"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:value-of select="$colspec/@colwidth"/>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </xsl:attribute>
+              </xsl:when>
+              <!-- pass through to HTML if no * in colspecs -->
+              <xsl:when test="$colspec/@colwidth and                              not($colspec/parent::*/colspec/@colwidth[contains(.,'*')])">
+                <xsl:attribute name="width">
+                  <xsl:choose>
+                    <xsl:when test="normalize-space($colspec/@colwidth) = '*'">
+                      <xsl:value-of select="'1*'"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:value-of select="$colspec/@colwidth"/>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </xsl:attribute>
+              </xsl:when>
+            </xsl:choose>
+
+            <xsl:choose>
+              <xsl:when test="$colspec/@align">
+                <xsl:attribute name="style"><xsl:text>text-align: </xsl:text>
+                  <xsl:value-of select="$colspec/@align"/>
+                </xsl:attribute>
+              </xsl:when>
+              <!-- Suggested by Pavel ZAMPACH <zampach@nemcb.cz> -->
+              <xsl:when test="$colspecs/ancestor::tgroup/@align">
+                <xsl:attribute name="style"><xsl:text>text-align: </xsl:text>
+                  <xsl:value-of select="$colspecs/ancestor::tgroup/@align"/>
+                </xsl:attribute>
+              </xsl:when>
+            </xsl:choose>
+
+            <xsl:if test="$colspec/@char">
+              <xsl:attribute name="char">
+                <xsl:value-of select="$colspec/@char"/>
+              </xsl:attribute>
+            </xsl:if>
+            
+            <xsl:if test="$colspec/@charoff">
+              <xsl:attribute name="charoff">
+                <xsl:value-of select="$colspec/@charoff"/>
+              </xsl:attribute>
+            </xsl:if>
+
+            <xsl:if test="$colspec/@colname">
+              <xsl:attribute name="class">
+                <xsl:value-of select="$colspec/@colname"/>
+              </xsl:attribute>
+            </xsl:if>
+          </col>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="generate.col">
+            <xsl:with-param name="countcol" select="$countcol"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="colnum">
+              <xsl:choose>
+                <xsl:when test="$colspec/@colnum">
+                  <xsl:value-of select="$colspec/@colnum + 1"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="$colnum + 1"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+           </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="colspec.colwidth">
+  <!-- when this macro is called, the current context must be an entry -->
+  <xsl:param name="colname"/>
+  <!-- .. = row, ../.. = thead|tbody, ../../.. = tgroup -->
+  <xsl:param name="colspecs" select="../../../../tgroup/colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:choose>
+    <xsl:when test="$count&gt;count($colspecs)"/>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+      <xsl:choose>
+        <xsl:when test="$colspec/@colname=$colname">
+          <xsl:value-of select="$colspec/@colwidth"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="colspec.colwidth">
+            <xsl:with-param name="colname" select="$colname"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="tr.attributes">
+  <xsl:param name="row" select="."/>
+  <xsl:param name="rownum" select="0"/>
+
+  <!-- by default, do nothing. But you might want to say:
+
+  <xsl:if test="$rownum mod 2 = 0">
+    <xsl:attribute name="class">oddrow</xsl:attribute>
+  </xsl:if>
+
+  -->
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/task.xsl b/applications/content/template/docbook/xhtml-1_1/task.xsl
new file mode 100644
index 0000000..5a7c23e
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/task.xsl
@@ -0,0 +1,74 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="task">
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="preamble" select="*[not(self::title                               or self::titleabbrev)]"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:if test="(title or info/title) and $placement = 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="$preamble"/>
+
+    <xsl:if test="(title or info/title) and $placement != 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="task/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="tasksummary">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="tasksummary/title"/>
+
+<xsl:template match="taskprerequisites">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="taskprerequisites/title"/>
+
+<xsl:template match="taskrelated">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="taskrelated/title"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/titlepage.templates.xsl b/applications/content/template/docbook/xhtml-1_1/titlepage.templates.xsl
new file mode 100644
index 0000000..a2a3cbb
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/titlepage.templates.xsl
@@ -0,0 +1,4004 @@
+<?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:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl">
+
+<!-- This stylesheet was created by template/titlepage.xsl-->
+
+<xsl:template name="article.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="articleinfo/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/title"/>
+    </xsl:when>
+    <xsl:when test="artheader/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="articleinfo/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="artheader/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/abstract"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/abstract"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="article.titlepage.before.recto"/>
+      <xsl:call-template name="article.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="article.titlepage.before.verso"/>
+      <xsl:call-template name="article.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="article.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="article.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="article.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="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="set.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="setinfo/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="setinfo/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/othercredit"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/abstract"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="set.titlepage.before.recto"/>
+      <xsl:call-template name="set.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="set.titlepage.before.verso"/>
+      <xsl:call-template name="set.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="set.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="set.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="set.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="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="book.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="bookinfo/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="bookinfo/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/othercredit"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/legalnotice"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revision"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revhistory"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/abstract"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="book.titlepage.before.recto"/>
+      <xsl:call-template name="book.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="book.titlepage.before.verso"/>
+      <xsl:call-template name="book.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="book.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="book.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="book.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="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="part.titlepage.recto">
+  <div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::part[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="partinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/abstract"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="part.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="part.titlepage.before.recto"/>
+      <xsl:call-template name="part.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="part.titlepage.before.verso"/>
+      <xsl:call-template name="part.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="part.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="part.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="part.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="subtitle" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="partintroinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="partintroinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/abstract"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage">
+  <div>
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="partintro.titlepage.before.recto"/>
+      <xsl:call-template name="partintro.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="partintro.titlepage.before.verso"/>
+      <xsl:call-template name="partintro.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="partintro.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.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="partintro.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="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="referenceinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="referenceinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/abstract"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="reference.titlepage.before.recto"/>
+      <xsl:call-template name="reference.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="reference.titlepage.before.verso"/>
+      <xsl:call-template name="reference.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="reference.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.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="reference.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="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.recto">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="refentry.titlepage.before.recto"/>
+      <xsl:call-template name="refentry.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="refentry.titlepage.before.verso"/>
+      <xsl:call-template name="refentry.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="refentry.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="refentry.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="refentry.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 name="dedication.titlepage.recto">
+  <div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="dedicationinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="dedicationinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="dedication.titlepage.before.recto"/>
+      <xsl:call-template name="dedication.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="dedication.titlepage.before.verso"/>
+      <xsl:call-template name="dedication.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="dedication.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.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="dedication.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="subtitle" mode="dedication.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.recto">
+  <div xsl:use-attribute-sets="acknowledgements.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::acknowledgements[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="acknowledgementsinfo/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="acknowledgementsinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="acknowledgements.titlepage.before.recto"/>
+      <xsl:call-template name="acknowledgements.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="acknowledgements.titlepage.before.verso"/>
+      <xsl:call-template name="acknowledgements.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="acknowledgements.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="acknowledgements.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="acknowledgements.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="subtitle" mode="acknowledgements.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="acknowledgements.titlepage.recto.style">
+<xsl:apply-templates select="." mode="acknowledgements.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/abstract"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="preface.titlepage.before.recto"/>
+      <xsl:call-template name="preface.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="preface.titlepage.before.verso"/>
+      <xsl:call-template name="preface.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="preface.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.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="preface.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="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="chapterinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="chapterinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/abstract"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="chapter.titlepage.before.recto"/>
+      <xsl:call-template name="chapter.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="chapter.titlepage.before.verso"/>
+      <xsl:call-template name="chapter.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="chapter.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.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="chapter.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="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="topic.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="topicinfo/title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="topicinfo/subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/corpauthor"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/authorgroup"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/author"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/othercredit"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/releaseinfo"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/copyright"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/legalnotice"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/pubdate"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/revision"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/revhistory"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/abstract"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="topic.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="topic.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="topic.titlepage.before.recto"/>
+      <xsl:call-template name="topic.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="topic.titlepage.before.verso"/>
+      <xsl:call-template name="topic.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="topic.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="topic.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="topic.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="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="appendixinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="appendixinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/abstract"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="appendix.titlepage.before.recto"/>
+      <xsl:call-template name="appendix.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="appendix.titlepage.before.verso"/>
+      <xsl:call-template name="appendix.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="appendix.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.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="appendix.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="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="section.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sectioninfo/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sectioninfo/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/othercredit"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/abstract"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="section.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="section.titlepage.before.recto"/>
+      <xsl:call-template name="section.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="section.titlepage.before.verso"/>
+      <xsl:call-template name="section.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="section.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="section.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="section.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="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect1info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect1info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/othercredit"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/abstract"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect1.titlepage.before.recto"/>
+      <xsl:call-template name="sect1.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect1.titlepage.before.verso"/>
+      <xsl:call-template name="sect1.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect1.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.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="sect1.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="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect2info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect2info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/othercredit"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/abstract"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect2.titlepage.before.recto"/>
+      <xsl:call-template name="sect2.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect2.titlepage.before.verso"/>
+      <xsl:call-template name="sect2.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect2.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.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="sect2.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="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect3info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect3info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/othercredit"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/abstract"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect3.titlepage.before.recto"/>
+      <xsl:call-template name="sect3.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect3.titlepage.before.verso"/>
+      <xsl:call-template name="sect3.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect3.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.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="sect3.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="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect4info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect4info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/othercredit"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/abstract"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect4.titlepage.before.recto"/>
+      <xsl:call-template name="sect4.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect4.titlepage.before.verso"/>
+      <xsl:call-template name="sect4.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect4.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.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="sect4.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="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect5info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect5info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/othercredit"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/abstract"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect5.titlepage.before.recto"/>
+      <xsl:call-template name="sect5.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect5.titlepage.before.verso"/>
+      <xsl:call-template name="sect5.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect5.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.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="sect5.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="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/abstract"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="simplesect.titlepage.before.recto"/>
+      <xsl:call-template name="simplesect.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="simplesect.titlepage.before.verso"/>
+      <xsl:call-template name="simplesect.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="simplesect.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.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="simplesect.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="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.recto">
+  <div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::bibliography[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="bibliographyinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="bibliographyinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="bibliography.titlepage.before.recto"/>
+      <xsl:call-template name="bibliography.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="bibliography.titlepage.before.verso"/>
+      <xsl:call-template name="bibliography.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="bibliography.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="bibliography.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="bibliography.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="subtitle" mode="bibliography.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:apply-templates select="." mode="bibliography.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.recto">
+  <div xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::glossary[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="glossaryinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="glossaryinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="glossary.titlepage.before.recto"/>
+      <xsl:call-template name="glossary.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="glossary.titlepage.before.verso"/>
+      <xsl:call-template name="glossary.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="glossary.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="glossary.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="glossary.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="subtitle" mode="glossary.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:apply-templates select="." mode="glossary.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="index.titlepage.recto">
+  <div xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::index[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="indexinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="indexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="index.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="index.titlepage.before.recto"/>
+      <xsl:call-template name="index.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="index.titlepage.before.verso"/>
+      <xsl:call-template name="index.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="index.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="index.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="index.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="subtitle" mode="index.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:apply-templates select="." mode="index.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.recto">
+  <div xsl:use-attribute-sets="setindex.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::setindex[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="setindexinfo/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="setindexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="setindex.titlepage.before.recto"/>
+      <xsl:call-template name="setindex.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="setindex.titlepage.before.verso"/>
+      <xsl:call-template name="setindex.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="setindex.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="setindex.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="setindex.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="subtitle" mode="setindex.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="setindex.titlepage.recto.style">
+<xsl:apply-templates select="." mode="setindex.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sidebarinfo/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sidebarinfo/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sidebar.titlepage.before.recto"/>
+      <xsl:call-template name="sidebar.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sidebar.titlepage.before.verso"/>
+      <xsl:call-template name="sidebar.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sidebar.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sidebar.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="sidebar.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="sidebar.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sidebar.titlepage.recto.style">
+<xsl:call-template name="formal.object.heading">
+<xsl:with-param name="object" select="ancestor-or-self::sidebar[1]"/>
+</xsl:call-template>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sidebar.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sidebar.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sidebar.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/titlepage.xsl b/applications/content/template/docbook/xhtml-1_1/titlepage.xsl
new file mode 100644
index 0000000..175347c
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/titlepage.xsl
@@ -0,0 +1,1106 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:attribute-set name="book.titlepage.recto.style"/>
+<xsl:attribute-set name="book.titlepage.verso.style"/>
+
+<xsl:attribute-set name="article.titlepage.recto.style"/>
+<xsl:attribute-set name="article.titlepage.verso.style"/>
+
+<xsl:attribute-set name="set.titlepage.recto.style"/>
+<xsl:attribute-set name="set.titlepage.verso.style"/>
+
+<xsl:attribute-set name="part.titlepage.recto.style"/>
+<xsl:attribute-set name="part.titlepage.verso.style"/>
+
+<xsl:attribute-set name="partintro.titlepage.recto.style"/>
+<xsl:attribute-set name="partintro.titlepage.verso.style"/>
+
+<xsl:attribute-set name="reference.titlepage.recto.style"/>
+<xsl:attribute-set name="reference.titlepage.verso.style"/>
+
+<xsl:attribute-set name="refentry.titlepage.recto.style"/>
+<xsl:attribute-set name="refentry.titlepage.verso.style"/>
+
+<xsl:attribute-set name="dedication.titlepage.recto.style"/>
+<xsl:attribute-set name="dedication.titlepage.verso.style"/>
+
+<xsl:attribute-set name="acknowledgements.titlepage.recto.style"/>
+<xsl:attribute-set name="acknowledgements.titlepage.verso.style"/>
+
+<xsl:attribute-set name="preface.titlepage.recto.style"/>
+<xsl:attribute-set name="preface.titlepage.verso.style"/>
+
+<xsl:attribute-set name="chapter.titlepage.recto.style"/>
+<xsl:attribute-set name="chapter.titlepage.verso.style"/>
+
+<xsl:attribute-set name="appendix.titlepage.recto.style"/>
+<xsl:attribute-set name="appendix.titlepage.verso.style"/>
+
+<xsl:attribute-set name="bibliography.titlepage.recto.style"/>
+<xsl:attribute-set name="bibliography.titlepage.verso.style"/>
+
+<xsl:attribute-set name="glossary.titlepage.recto.style"/>
+<xsl:attribute-set name="glossary.titlepage.verso.style"/>
+
+<xsl:attribute-set name="index.titlepage.recto.style"/>
+<xsl:attribute-set name="index.titlepage.verso.style"/>
+
+<xsl:attribute-set name="setindex.titlepage.recto.style"/>
+<xsl:attribute-set name="setindex.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sidebar.titlepage.recto.style"/>
+<xsl:attribute-set name="sidebar.titlepage.verso.style"/>
+
+<xsl:attribute-set name="topic.titlepage.recto.style"/>
+<xsl:attribute-set name="topic.titlepage.verso.style"/>
+
+<xsl:attribute-set name="section.titlepage.recto.style"/>
+<xsl:attribute-set name="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect1.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect1.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect2.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect2.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect3.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect3.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect4.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect4.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect5.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect5.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="simplesect.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="simplesect.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/>
+<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="titlepage.mode">
+  <!-- if an element isn't found in this mode, try the default mode -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="abbrev" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="abstract" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="$abstract.notitle.enabled = 0">
+      <xsl:call-template name="formal.object.heading">
+        <xsl:with-param name="title">
+          <xsl:apply-templates select="." mode="title.markup"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="abstract/title" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="address" mode="titlepage.mode">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'                     and @linenumbering = 'numbered'                     and $use.extensions != '0'                     and $linenumbering.extension != '0'">
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="paragraph">
+          <xsl:with-param name="content">
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf"/>
+            </xsl:call-template>
+          </xsl:with-param>
+        </xsl:call-template>
+      </div>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="paragraph">
+          <xsl:with-param name="content">
+            <xsl:call-template name="make-verbatim">
+              <xsl:with-param name="rtf" select="$rtf"/>
+            </xsl:call-template>
+          </xsl:with-param>
+        </xsl:call-template>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author|editor" mode="titlepage.mode">
+  <xsl:call-template name="credits.div"/>
+</xsl:template>
+
+<xsl:template name="credits.div">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="self::editor[position()=1] and not($editedby.enabled = 0)">
+      <h4 class="editedby"><xsl:call-template name="gentext.edited.by"/></h4>
+    </xsl:if>
+    <h3>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:choose>
+        <xsl:when test="orgname">
+          <xsl:apply-templates/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="person.name"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </h3>
+    <xsl:if test="not($contrib.inline.enabled = 0)">
+      <xsl:apply-templates mode="titlepage.mode" select="contrib"/>
+    </xsl:if>
+    <xsl:apply-templates mode="titlepage.mode" select="affiliation"/>
+    <xsl:apply-templates mode="titlepage.mode" select="email"/>
+    <xsl:if test="not($blurb.on.titlepage.enabled = 0)">
+      <xsl:choose>
+        <xsl:when test="$contrib.inline.enabled = 0">
+          <xsl:apply-templates mode="titlepage.mode" select="contrib|authorblurb|personblurb"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="titlepage.mode" select="authorblurb|personblurb"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::refentryinfo">
+      <h2>Authors</h2>
+    </xsl:if>
+      
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="collab" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="collabname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="confdates" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confsponsor" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confnum" mode="titlepage.mode">
+  <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="contractnum" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="titlepage.mode">
+  <xsl:choose>
+    <xsl:when test="not($contrib.inline.enabled = 0)">
+      <span>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:apply-templates mode="titlepage.mode"/>
+      </span><xsl:text>&#160;</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <p><xsl:apply-templates mode="titlepage.mode"/></p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="copyright" mode="titlepage.mode">
+
+  <xsl:if test="generate-id() = generate-id(//refentryinfo/copyright[1])       and ($stylesheet.result.type = 'html' or $stylesheet.result.type = 'xhtml')">
+    <h2>Copyright</h2>
+  </xsl:if>
+
+  <p>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <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"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="year" mode="titlepage.mode">
+  <xsl:choose>
+    <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+      <span class="{@revisionflag}">
+        <xsl:apply-templates mode="titlepage.mode"/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="holder" mode="titlepage.mode">
+  <xsl:choose>
+    <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+      <span class="{@revisionflag}">
+        <xsl:apply-templates mode="titlepage.mode"/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="position() &lt; last()">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="titlepage.mode">
+  <h3>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </h3>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="titlepage.mode">
+  <p>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'Edition'"/>
+    </xsl:call-template>
+  </p>
+</xsl:template>
+
+<xsl:template match="email" mode="titlepage.mode">
+  <!-- use the normal e-mail handling code -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="firstname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="graphic" mode="titlepage.mode">
+  <!-- use the normal graphic handling code -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="honorific" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="biblioid" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="itermset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="keywordset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="titlepage.mode">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$generate.legalnotice.link != 0">
+      
+      <!-- Compute name of legalnotice file -->
+      <xsl:variable name="file">
+	<xsl:call-template name="ln.or.rh.filename"/>
+      </xsl:variable>
+
+      <xsl:variable name="filename">
+        <xsl:call-template name="make-relative-filename">
+          <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+	  <xsl:with-param name="base.name" select="$file"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="title">
+        <xsl:apply-templates select="." mode="title.markup"/>
+      </xsl:variable>
+
+      <a href="{$file}">
+        <xsl:copy-of select="$title"/>
+      </a>
+
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="$filename"/>
+        <xsl:with-param name="quiet" select="$chunk.quietly"/>
+        <xsl:with-param name="content">
+        <xsl:call-template name="user.preroot"/>
+          <html>
+            <head>
+              <xsl:call-template name="system.head.content"/>
+              <xsl:call-template name="head.content"/>
+              <xsl:call-template name="user.head.content"/>
+            </head>
+            <body>
+              <xsl:call-template name="body.attributes"/>
+              <div>
+                <xsl:apply-templates select="." mode="common.html.attributes"/>
+                <xsl:call-template name="id.attribute">
+                  <xsl:with-param name="conditional" select="0"/>
+                </xsl:call-template>
+                <xsl:apply-templates mode="titlepage.mode"/>
+              </div>
+            </body>
+          </html>
+          <xsl:value-of select="$chunk.append"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <xsl:apply-templates mode="titlepage.mode"/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="legalnotice/title" mode="titlepage.mode">
+  <p class="legalnotice-title"><strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></strong></p>
+</xsl:template>
+
+<xsl:template match="lineage" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modespec" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="titlepage.mode">
+  <xsl:if test="preceding-sibling::*[1][self::orgname]">
+    <xsl:text> </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.mode">
+<xsl:choose>
+  <xsl:when test="not($othercredit.like.author.enabled = 0)">
+  <xsl:variable name="contrib" select="string(contrib)"/>
+  <xsl:choose>
+    <xsl:when test="contrib">
+      <xsl:if test="not(preceding-sibling::othercredit[string(contrib)=$contrib])">
+        <xsl:call-template name="paragraph">
+          <xsl:with-param name="class" select="local-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:apply-templates select="following-sibling::othercredit[string(contrib)=$contrib]" mode="titlepage.othercredits"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="paragraph">
+        <xsl:with-param name="class" select="local-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:when>
+  <xsl:otherwise>
+    <xsl:call-template name="credits.div"/>
+  </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.othercredits">
+  <xsl:text>, </xsl:text>
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="othername" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="productname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="titlepage.mode">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class" select="local-name(.)"/>
+    <xsl:with-param name="content">
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="publisher" mode="titlepage.mode">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class" select="local-name(.)"/>
+    <xsl:with-param name="content">
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="publishername" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="titlepage.mode">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class" select="local-name(.)"/>
+    <xsl:with-param name="content">
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="titlepage.mode">
+  <xsl:variable name="numcols">
+    <xsl:choose>
+      <xsl:when test=".//authorinitials|.//author">3</xsl:when>
+      <xsl:otherwise>2</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:variable name="title">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key">RevHistory</xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="contents">
+    <div>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:call-template name="id.attribute"/>
+      <table>
+        <xsl:if test="$css.decoration != 0">
+          <xsl:attribute name="style">
+            <xsl:text>border-style:solid; width:100%;</xsl:text>
+          </xsl:attribute>
+        </xsl:if>
+        <!-- include summary attribute if not HTML5 -->
+        <xsl:if test="$div.element != 'section'">
+          <xsl:attribute name="summary">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key">revhistory</xsl:with-param>
+            </xsl:call-template>
+          </xsl:attribute>
+        </xsl:if>
+        <tr>
+          <th align="{$direction.align.start}" valign="top" colspan="{$numcols}">
+            <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key" select="'RevHistory'"/>
+              </xsl:call-template>
+            </strong>
+          </th>
+        </tr>
+        <xsl:apply-templates mode="titlepage.mode">
+          <xsl:with-param name="numcols" select="$numcols"/>
+        </xsl:apply-templates>
+      </table>
+    </div>
+  </xsl:variable>
+  
+  <xsl:choose>
+    <xsl:when test="$generate.revhistory.link != 0">
+      
+      <!-- Compute name of revhistory file -->
+      <xsl:variable name="file">
+	<xsl:call-template name="ln.or.rh.filename">
+	  <xsl:with-param name="is.ln" select="false()"/>
+	</xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="filename">
+        <xsl:call-template name="make-relative-filename">
+          <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+          <xsl:with-param name="base.name" select="$file"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <a href="{$file}">
+        <xsl:copy-of select="$title"/>
+      </a>
+
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="$filename"/>
+        <xsl:with-param name="quiet" select="$chunk.quietly"/>
+        <xsl:with-param name="content">
+        <xsl:call-template name="user.preroot"/>
+          <html>
+            <head>
+              <xsl:call-template name="system.head.content"/>
+              <xsl:call-template name="head.content">
+                <xsl:with-param name="title">
+                    <xsl:value-of select="$title"/>
+                    <xsl:if test="../../title">
+                        <xsl:value-of select="concat(' (', ../../title, ')')"/>
+                    </xsl:if>
+                </xsl:with-param>
+              </xsl:call-template>
+              <xsl:call-template name="user.head.content"/>
+            </head>
+            <body>
+              <xsl:call-template name="body.attributes"/>
+              <xsl:copy-of select="$contents"/>
+            </body>
+          </html>
+          <xsl:text>
+</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$contents"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="revhistory/revision" mode="titlepage.mode">
+  <xsl:param name="numcols" select="'3'"/>
+  <xsl:variable name="revnumber" select="revnumber"/>
+  <xsl:variable name="revdate" select="date"/>
+  <xsl:variable name="revauthor" select="authorinitials|author"/>
+  <xsl:variable name="revremark" select="revremark|revdescription"/>
+  <tr>
+    <td align="{$direction.align.start}">
+      <xsl:if test="$revnumber">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'Revision'"/>
+        </xsl:call-template>
+        <xsl:call-template name="gentext.space"/>
+        <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/>
+      </xsl:if>
+    </td>
+    <td align="{$direction.align.start}">
+      <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/>
+    </td>
+    <xsl:choose>
+      <xsl:when test="$revauthor">
+        <td align="{$direction.align.start}">
+          <xsl:for-each select="$revauthor">
+            <xsl:apply-templates select="." mode="titlepage.mode"/>
+            <xsl:if test="position() != last()">
+	      <xsl:text>, </xsl:text>
+	    </xsl:if>
+	  </xsl:for-each>
+        </td>
+      </xsl:when>
+      <xsl:when test="$numcols &gt; 2">
+        <td>&#160;</td>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </tr>
+  <xsl:if test="$revremark">
+    <tr>
+      <td align="{$direction.align.start}" colspan="{$numcols}">
+        <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/>
+      </td>
+    </tr>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/date" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/author" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revremark" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subjectset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="subtitle" mode="titlepage.mode">
+  <h2>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="surname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="titlepage.mode">
+  <xsl:variable name="id">
+    <xsl:choose>
+      <!-- if title is in an *info wrapper, get the grandparent -->
+      <xsl:when test="contains(local-name(..), 'info')">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="../.."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <h1>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:choose>
+      <xsl:when test="$generate.id.attributes = 0">
+        <a id="{$id}"/>
+      </xsl:when>
+      <xsl:otherwise>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:choose>
+      <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+	<span class="{@revisionflag}">
+	  <xsl:apply-templates mode="titlepage.mode"/>
+	</span>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:apply-templates mode="titlepage.mode"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </h1>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="titlepage.mode">
+  <!-- nop; title abbreviations don't belong on the title page! -->
+</xsl:template>
+
+<xsl:template match="volumenum" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<!-- This template computes the filename for legalnotice and revhistory chunks -->
+<xsl:template name="ln.or.rh.filename">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="is.ln" select="true()"/>
+
+  <xsl:variable name="dbhtml-filename">
+    <xsl:call-template name="pi.dbhtml_filename">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+ 
+  <xsl:choose>
+    <!--  1. If there is a dbhtml_filename PI, use that -->
+    <xsl:when test="$dbhtml-filename != ''">
+      <xsl:value-of select="$dbhtml-filename"/>
+    </xsl:when>
+    <xsl:when test="($node/@id or $node/@xml:id) and not($use.id.as.filename = 0)">
+      <!-- * 2. If this legalnotice/revhistory has an ID, then go ahead and use -->
+      <!-- * just the value of that ID as the basename for the file -->
+      <!-- * (that is, without prepending an "ln-" or "rh-" to it) -->
+      <xsl:value-of select="($node/@id|$node/@xml:id)[1]"/>
+      <xsl:value-of select="$html.ext"/>
+    </xsl:when>
+    <xsl:when test="not ($node/@id or $node/@xml:id) or $use.id.as.filename = 0">
+      <!-- * 3. Otherwise, if this legalnotice/revhistory does not have an ID, or -->
+      <!-- * if $use.id.as.filename = 0 -->
+      <!-- * then we generate an ID... -->
+      <xsl:variable name="id">
+	<xsl:value-of select="generate-id($node)"/>
+      </xsl:variable>
+      <!-- * ...and then we take that generated ID, prepend a -->
+      <!-- * prefix to it, and use that as the basename for the file -->
+      <xsl:choose>
+	<xsl:when test="$is.ln">
+	  <xsl:value-of select="concat('ln-',$id,$html.ext)"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:value-of select="concat('rh-',$id,$html.ext)"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+    
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/toc.xsl b/applications/content/template/docbook/xhtml-1_1/toc.xsl
new file mode 100644
index 0000000..21921fc
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/toc.xsl
@@ -0,0 +1,332 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set/toc | book/toc | part/toc">
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="parent::*"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Do not output the toc element if one is already generated
+       by the use of $generate.toc parameter, or if
+       generating a source toc is turned off -->
+  <xsl:if test="not(contains($toc.params, 'toc')) and                 ($process.source.toc != 0 or $process.empty.source.toc != 0)">
+    <xsl:variable name="content">
+      <xsl:choose>
+        <xsl:when test="* and $process.source.toc != 0">
+          <xsl:apply-templates/>
+        </xsl:when>
+        <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
+          <!-- trick to switch context node to parent element -->
+          <xsl:for-each select="parent::*">
+            <xsl:choose>
+              <xsl:when test="self::set">
+                <xsl:call-template name="set.toc">
+                  <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="self::book">
+                <xsl:call-template name="division.toc">
+                  <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="self::part">
+                <xsl:call-template name="division.toc">
+                  <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+                </xsl:call-template>
+              </xsl:when>
+            </xsl:choose>
+          </xsl:for-each>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:if test="string-length(normalize-space($content)) != 0">
+      <xsl:copy-of select="$content"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+  
+<xsl:template match="chapter/toc | appendix/toc | preface/toc | article/toc">
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="parent::*"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Do not output the toc element if one is already generated
+       by the use of $generate.toc parameter, or if
+       generating a source toc is turned off -->
+  <xsl:if test="not(contains($toc.params, 'toc')) and                 ($process.source.toc != 0 or $process.empty.source.toc != 0)">
+    <xsl:choose>
+      <xsl:when test="* and $process.source.toc != 0">
+        <div>
+          <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:call-template name="id.attribute"/>
+          <xsl:apply-templates select="title"/> 
+          <dl>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:apply-templates select="*[not(self::title)]"/> 
+          </dl>
+        </div>
+        <xsl:call-template name="component.toc.separator"/>
+      </xsl:when>
+      <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
+        <!-- trick to switch context node to section element -->
+        <xsl:for-each select="parent::*">
+          <xsl:call-template name="component.toc">
+            <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+          </xsl:call-template>
+        </xsl:for-each>
+        <xsl:call-template name="component.toc.separator"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="section/toc                     |sect1/toc                     |sect2/toc                     |sect3/toc                     |sect4/toc                     |sect5/toc">
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="parent::*"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Do not output the toc element if one is already generated
+       by the use of $generate.toc parameter, or if
+       generating a source toc is turned off -->
+  <xsl:if test="not(contains($toc.params, 'toc')) and                 ($process.source.toc != 0 or $process.empty.source.toc != 0)">
+    <xsl:choose>
+      <xsl:when test="* and $process.source.toc != 0">
+        <div>
+          <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:call-template name="id.attribute"/>
+          <xsl:apply-templates select="title"/> 
+          <dl>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:apply-templates select="*[not(self::title)]"/> 
+          </dl>
+        </div>
+        <xsl:call-template name="section.toc.separator"/>
+      </xsl:when>
+      <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
+        <!-- trick to switch context node to section element -->
+        <xsl:for-each select="parent::*">
+          <xsl:call-template name="section.toc">
+            <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+          </xsl:call-template>
+        </xsl:for-each>
+        <xsl:call-template name="section.toc.separator"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="tocpart|tocchap                      |toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+  <xsl:variable name="sub-toc">
+    <xsl:if test="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+      <xsl:choose>
+        <xsl:when test="$toc.list.type = 'dl'">
+          <dd>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+              <xsl:apply-templates select="." mode="common.html.attributes"/>
+              <xsl:apply-templates select="tocchap|toclevel1|toclevel2|                                            toclevel3|toclevel4|toclevel5"/>
+            </xsl:element>
+          </dd>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:apply-templates select="tocchap|toclevel1|toclevel2|                                          toclevel3|toclevel4|toclevel5"/>
+          </xsl:element>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:apply-templates select="tocentry[position() != last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">
+      <dt>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:apply-templates select="tocentry[position() = last()]"/>
+      </dt>
+      <xsl:copy-of select="$sub-toc"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <li>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:apply-templates select="tocentry[position() = last()]"/>
+        <xsl:copy-of select="$sub-toc"/>
+      </li>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tocentry|tocdiv|lotentry|tocfront|tocback">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">
+      <dt>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="tocentry-content"/>
+      </dt>
+    </xsl:when>
+    <xsl:otherwise>
+      <li>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="tocentry-content"/>
+      </li>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tocentry[position() = last()]" priority="2">
+  <xsl:call-template name="tocentry-content"/>
+</xsl:template>
+
+<xsl:template name="tocentry-content">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <xsl:when test="@linkend">
+      <xsl:call-template name="check.id.unique">
+        <xsl:with-param name="linkend" select="@linkend"/>
+      </xsl:call-template>
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates/>
+      </a>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="toc/title">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="toc/subtitle">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="toc/titleabbrev">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- A lot element must have content, because there is no attribute
+     to select what kind of list should be generated -->
+<xsl:template match="book/lot | part/lot">
+  <!-- Don't generate a page sequence unless there is content -->
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="* and $process.source.toc != 0">
+        <div>
+          <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:apply-templates/>
+        </div>
+      </xsl:when>
+      <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
+        <xsl:call-template name="process.empty.lot"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="string-length(normalize-space($content)) != 0">
+    <xsl:copy-of select="$content"/>
+  </xsl:if>
+</xsl:template>
+  
+<xsl:template match="chapter/lot | appendix/lot | preface/lot | article/lot">
+  <xsl:choose>
+    <xsl:when test="* and $process.source.toc != 0">
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:apply-templates/>
+      </div>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:when>
+    <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
+      <xsl:call-template name="process.empty.lot"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="section/lot                     |sect1/lot                     |sect2/lot                     |sect3/lot                     |sect4/lot                     |sect5/lot">
+  <xsl:choose>
+    <xsl:when test="* and $process.source.toc != 0">
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:apply-templates/>
+      </div>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:when>
+    <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
+      <xsl:call-template name="process.empty.lot"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.empty.lot">
+  <!-- An empty lot element does not provide any information to indicate
+       what should be included in it.  You can customize this
+       template to generate a lot based on @role or something -->
+  <xsl:message>
+    <xsl:text>Warning: don't know what to generate for </xsl:text>
+    <xsl:text>lot that has no children.</xsl:text>
+  </xsl:message>
+</xsl:template>
+
+<xsl:template match="lot/title">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="lot/subtitle">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="lot/titleabbrev">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/verbatim.xsl b/applications/content/template/docbook/xhtml-1_1/verbatim.xsl
new file mode 100644
index 0000000..4eb1b80
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/verbatim.xsl
@@ -0,0 +1,388 @@
+<?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:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim" xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="sverb xverb lxslt exsl" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- XSLTHL highlighting is turned off by default. See highlighting/README
+     for instructions on how to turn on XSLTHL -->
+<xsl:template name="apply-highlighting">
+    <xsl:apply-templates/>
+</xsl:template>
+
+<lxslt:component prefix="xverb" functions="numberLines"/>
+
+<xsl:template match="programlisting|screen|synopsis">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:variable name="div.element">pre</xsl:variable>
+
+  <xsl:if test="$shade.verbatim != 0">
+    <xsl:message>
+      <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text>
+      <xsl:text>Use CSS instead,</xsl:text>
+    </xsl:message>
+    <xsl:message>
+      <xsl:text>for example: pre.</xsl:text>
+      <xsl:value-of select="local-name(.)"/>
+      <xsl:text> { background-color: #E0E0E0; }</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'                     and @linenumbering = 'numbered'                     and $use.extensions != '0'                     and $linenumbering.extension != '0'">
+      <xsl:variable name="rtf">
+        <xsl:choose>
+          <xsl:when test="$highlight.source != 0">
+            <xsl:call-template name="apply-highlighting"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+      <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="@width != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="@width"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:call-template name="number.rtf.lines">
+          <xsl:with-param name="rtf" select="$rtf"/>
+        </xsl:call-template>
+      </xsl:element>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="@width != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="@width"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:choose>
+          <xsl:when test="$highlight.source != 0">
+            <xsl:call-template name="apply-highlighting"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:element>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="literallayout">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:if test="$shade.verbatim != 0 and @class='monospaced'">
+    <xsl:message>
+      <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text>
+      <xsl:text>Use CSS instead,</xsl:text>
+    </xsl:message>
+    <xsl:message>
+      <xsl:text>for example: pre.</xsl:text>
+      <xsl:value-of select="local-name(.)"/>
+      <xsl:text> { background-color: #E0E0E0; }</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'                     and @linenumbering = 'numbered'                     and $use.extensions != '0'                     and $linenumbering.extension != '0'">
+      <xsl:choose>
+        <xsl:when test="@class='monospaced'">
+          <pre>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf"/>
+            </xsl:call-template>
+          </pre>
+        </xsl:when>
+        <xsl:otherwise>
+          <div>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <p>
+              <xsl:call-template name="number.rtf.lines">
+                <xsl:with-param name="rtf" select="$rtf"/>
+              </xsl:call-template>
+            </p>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="@class='monospaced'">
+          <pre>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:copy-of select="$rtf"/>
+          </pre>
+        </xsl:when>
+        <xsl:otherwise>
+          <div>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <p>
+              <xsl:call-template name="make-verbatim">
+                <xsl:with-param name="rtf" select="$rtf"/>
+              </xsl:call-template>
+            </p>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="address">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'                     and @linenumbering = 'numbered'                     and $use.extensions != '0'                     and $linenumbering.extension != '0'">
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <p>
+          <xsl:call-template name="number.rtf.lines">
+            <xsl:with-param name="rtf" select="$rtf"/>
+          </xsl:call-template>
+        </p>
+      </div>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <p>
+          <xsl:call-template name="make-verbatim">
+            <xsl:with-param name="rtf" select="$rtf"/>
+          </xsl:call-template>
+        </p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="number.rtf.lines">
+  <xsl:param name="rtf" select="''"/>
+  <xsl:param name="pi.context" select="."/>
+
+  <!-- Save the global values -->
+  <xsl:variable name="global.linenumbering.everyNth" select="$linenumbering.everyNth"/>
+
+  <xsl:variable name="global.linenumbering.separator" select="$linenumbering.separator"/>
+
+  <xsl:variable name="global.linenumbering.width" select="$linenumbering.width"/>
+
+  <!-- Extract the <?dbhtml linenumbering.*?> PI values -->
+  <xsl:variable name="pi.linenumbering.everyNth">
+    <xsl:call-template name="pi.dbhtml_linenumbering.everyNth">
+      <xsl:with-param name="node" select="$pi.context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="pi.linenumbering.separator">
+    <xsl:call-template name="pi.dbhtml_linenumbering.separator">
+      <xsl:with-param name="node" select="$pi.context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="pi.linenumbering.width">
+    <xsl:call-template name="pi.dbhtml_linenumbering.width">
+      <xsl:with-param name="node" select="$pi.context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Construct the 'in-context' values -->
+  <xsl:variable name="linenumbering.everyNth">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.everyNth != ''">
+        <xsl:value-of select="$pi.linenumbering.everyNth"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.everyNth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.separator">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.separator != ''">
+        <xsl:value-of select="$pi.linenumbering.separator"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.separator"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.width">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.width != ''">
+        <xsl:value-of select="$pi.linenumbering.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.startinglinenumber">
+    <xsl:choose>
+      <xsl:when test="$pi.context/@startinglinenumber">
+        <xsl:value-of select="$pi.context/@startinglinenumber"/>
+      </xsl:when>
+      <xsl:when test="$pi.context/@continuation='continues'">
+        <xsl:variable name="lastLine">
+          <xsl:choose>
+            <xsl:when test="$pi.context/self::programlisting">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings" select="preceding::programlisting[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::screen">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings" select="preceding::screen[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::literallayout">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings" select="preceding::literallayout[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::address">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings" select="preceding::address[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::synopsis">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings" select="preceding::synopsis[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message>
+                <xsl:text>Unexpected verbatim environment: </xsl:text>
+                <xsl:value-of select="local-name($pi.context)"/>
+              </xsl:message>
+              <xsl:value-of select="0"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+
+        <xsl:value-of select="$lastLine + 1"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="function-available('sverb:numberLines')">
+      <xsl:copy-of select="sverb:numberLines($rtf)"/>
+    </xsl:when>
+    <xsl:when test="function-available('xverb:numberLines')">
+      <xsl:copy-of select="xverb:numberLines($rtf)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>No numberLines function available.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="make-verbatim">
+  <xsl:param name="rtf"/>
+
+  <!-- I want to make this RTF verbatim. There are two possibilities: either
+       I have access to the exsl:node-set extension function and I can "do it right"
+       or I have to rely on CSS. -->
+
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:apply-templates select="exsl:node-set($rtf)" mode="make.verbatim.mode"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <span style="white-space: pre;">
+        <xsl:copy-of select="$rtf"/>
+      </span>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ======================================================================== -->
+
+<xsl:template name="lastLineNumber">
+  <xsl:param name="listings"/>
+  <xsl:param name="number" select="0"/>
+
+  <xsl:variable name="lines">
+    <xsl:call-template name="countLines">
+      <xsl:with-param name="listing" select="string($listings[1])"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not($listings)">
+      <xsl:value-of select="$number"/>
+    </xsl:when>
+    <xsl:when test="$listings[1]/@startinglinenumber">
+      <xsl:value-of select="$number + $listings[1]/@startinglinenumber + $lines - 1"/>
+    </xsl:when>
+    <xsl:when test="$listings[1]/@continuation='continues'">
+      <xsl:call-template name="lastLineNumber">
+        <xsl:with-param name="listings" select="listings[position() &gt; 1]"/>
+        <xsl:with-param name="number" select="$number + $lines"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$lines"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="countLines">
+  <xsl:param name="listing"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($listing, '&#10;')">
+      <xsl:call-template name="countLines">
+        <xsl:with-param name="listing" select="substring-after($listing, '&#10;')"/>
+        <xsl:with-param name="count" select="$count + 1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$count"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml-1_1/xref.xsl b/applications/content/template/docbook/xhtml-1_1/xref.xsl
new file mode 100644
index 0000000..642a33c
--- /dev/null
+++ b/applications/content/template/docbook/xhtml-1_1/xref.xsl
@@ -0,0 +1,1340 @@
+<?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:suwl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.UnwrapLinks" xmlns:exsl="http://exslt.org/common" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="suwl exsl xlink" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- Use internal variable for olink xlink role for consistency -->
+<xsl:variable name="xolink.role">http://docbook.org/xlink/role/olink</xsl:variable>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="anchor">
+  <xsl:choose>
+    <xsl:when test="$generate.id.attributes = 0">
+      <xsl:call-template name="anchor"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <span>
+        <xsl:call-template name="id.attribute"/>
+      </span>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="xref" name="xref">
+  <xsl:param name="xhref" select="@xlink:href"/>
+  <!-- is the @xlink:href a local idref link? -->
+  <xsl:param name="xlink.idref">
+    <xsl:if test="starts-with($xhref,'#')                   and (not(contains($xhref,'('))                   or starts-with($xhref, '#xpointer(id('))">
+      <xsl:call-template name="xpointer.idref">
+        <xsl:with-param name="xpointer" select="$xhref"/>
+      </xsl:call-template>
+   </xsl:if>
+  </xsl:param>
+  <xsl:param name="xlink.targets" select="key('id',$xlink.idref)"/>
+  <xsl:param name="linkend.targets" select="key('id',@linkend)"/>
+  <xsl:param name="target" select="($xlink.targets | $linkend.targets)[1]"/>
+
+  <xsl:variable name="xrefstyle">
+    <xsl:choose>
+      <xsl:when test="@role and not(@xrefstyle)                        and $use.role.as.xrefstyle != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@xrefstyle"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:variable name="content">
+    <xsl:choose>
+  
+      <xsl:when test="@endterm">
+        <xsl:variable name="etargets" select="key('id',@endterm)"/>
+        <xsl:variable name="etarget" select="$etargets[1]"/>
+        <xsl:choose>
+          <xsl:when test="count($etarget) = 0">
+            <xsl:message>
+              <xsl:value-of select="count($etargets)"/>
+              <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+              <xsl:value-of select="@endterm"/>
+            </xsl:message>
+            <xsl:text>???</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="$etarget" mode="endterm"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+  
+      <xsl:when test="$target/@xreflabel">
+        <xsl:call-template name="xref.xreflabel">
+          <xsl:with-param name="target" select="$target"/>
+        </xsl:call-template>
+      </xsl:when>
+  
+      <xsl:when test="$target">
+        <xsl:if test="not(parent::citation)">
+          <xsl:apply-templates select="$target" mode="xref-to-prefix"/>
+        </xsl:if>
+  
+        <xsl:apply-templates select="$target" mode="xref-to">
+          <xsl:with-param name="referrer" select="."/>
+          <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        </xsl:apply-templates>
+  
+        <xsl:if test="not(parent::citation)">
+          <xsl:apply-templates select="$target" mode="xref-to-suffix"/>
+        </xsl:if>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <xsl:message>
+          <xsl:text>ERROR: xref linking to </xsl:text>
+          <xsl:value-of select="@linkend|@xlink:href"/>
+          <xsl:text> has no generated link text.</xsl:text>
+        </xsl:message>
+        <xsl:text>???</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- biblioref handled largely like an xref -->
+<!-- To be done: add support for begin, end, and units attributes -->
+<xsl:template match="biblioref">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:choose>
+    <xsl:when test="count($target) = 0">
+      <xsl:message>
+        <xsl:text>XRef to nonexistent id: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+      </xsl:message>
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+
+    <xsl:when test="@endterm">
+      <xsl:variable name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select="$target"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="etargets" select="key('id',@endterm)"/>
+      <xsl:variable name="etarget" select="$etargets[1]"/>
+      <xsl:choose>
+        <xsl:when test="count($etarget) = 0">
+          <xsl:message>
+            <xsl:value-of select="count($etargets)"/>
+            <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+            <xsl:value-of select="@endterm"/>
+          </xsl:message>
+          <a href="{$href}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:text>???</xsl:text>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <a href="{$href}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:apply-templates select="$etarget" mode="endterm"/>
+          </a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="$target/@xreflabel">
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:call-template name="xref.xreflabel">
+          <xsl:with-param name="target" select="$target"/>
+        </xsl:call-template>
+      </a>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:variable name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select="$target"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:if test="not(parent::citation)">
+        <xsl:apply-templates select="$target" mode="xref-to-prefix"/>
+      </xsl:if>
+
+      <a href="{$href}">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:if test="$target/title or $target/info/title">
+          <xsl:attribute name="title">
+            <xsl:apply-templates select="$target" mode="xref-title"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:apply-templates select="$target" mode="xref-to">
+          <xsl:with-param name="referrer" select="."/>
+          <xsl:with-param name="xrefstyle">
+            <xsl:choose>
+              <xsl:when test="@role and not(@xrefstyle) and $use.role.as.xrefstyle != 0">
+                <xsl:value-of select="@role"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="@xrefstyle"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:apply-templates>
+      </a>
+
+      <xsl:if test="not(parent::citation)">
+        <xsl:apply-templates select="$target" mode="xref-to-suffix"/>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="endterm">
+  <!-- Process the children of the endterm element -->
+  <xsl:variable name="endterm">
+    <xsl:apply-templates select="child::node()" mode="no.anchor.mode"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:apply-templates select="exsl:node-set($endterm)" mode="remove-ids"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$endterm"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="remove-ids">
+  <xsl:choose>
+    <!-- handle html or xhtml -->
+    <xsl:when test="local-name(.) = 'a'                     and (namespace-uri(.) = ''                          or namespace-uri(.) = 'http://www.w3.org/1999/xhtml')">
+      <xsl:choose>
+        <xsl:when test="(@name and count(@*) = 1)                         or (@id and count(@*) = 1)                         or (@xml:id and count(@*) = 1)                         or (@xml:id and @name and count(@*) = 2)                         or (@id and @name and count(@*) = 2)">
+          <xsl:message>suppress anchor</xsl:message>
+          <!-- suppress the whole thing -->
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:copy>
+            <xsl:for-each select="@*">
+              <xsl:choose>
+                <xsl:when test="local-name(.) != 'name' and local-name(.) != 'id'">
+                  <xsl:copy/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:message>removing <xsl:value-of select="local-name(.)"/></xsl:message>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:for-each>
+          </xsl:copy>
+          <xsl:apply-templates mode="remove-ids"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy>
+        <xsl:for-each select="@*">
+          <xsl:choose>
+            <xsl:when test="local-name(.) != 'id'">
+              <xsl:copy/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message>removing <xsl:value-of select="local-name(.)"/></xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:for-each>
+        <xsl:apply-templates mode="remove-ids"/>
+      </xsl:copy>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="xref-to-prefix"/>
+<xsl:template match="*" mode="xref-to-suffix"/>
+
+<xsl:template match="*" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:if test="$verbose">
+    <xsl:message>
+      <xsl:text>Don't know what gentext to create for xref to: "</xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:text>", ("</xsl:text>
+      <xsl:value-of select="(@id|@xml:id)[1]"/>
+      <xsl:text>")</xsl:text>
+    </xsl:message>
+  </xsl:if>
+  <xsl:text>???</xsl:text>
+</xsl:template>
+
+<xsl:template match="title" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <!-- if you xref to a title, xref to the parent... -->
+  <xsl:choose>
+    <!-- FIXME: how reliable is this? -->
+    <xsl:when test="contains(local-name(parent::*), 'info')">
+      <xsl:apply-templates select="parent::*[2]" mode="xref-to">
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="parent::*" mode="xref-to">
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="abstract|authorblurb|personblurb|bibliodiv|bibliomset                      |biblioset|blockquote|calloutlist|caution|colophon                      |constraintdef|formalpara|glossdiv|important|indexdiv                      |itemizedlist|legalnotice|lot|msg|msgexplan|msgmain                      |msgrel|msgset|msgsub|note|orderedlist|partintro                      |productionset|qandadiv|refsynopsisdiv|segmentedlist                      |set|setindex|sidebar|tip|toc|variablelist|warning" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <!-- catch-all for things with (possibly optional) titles -->
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="author|editor|othercredit|personname" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="person.name.list"/>
+</xsl:template>
+
+<xsl:template match="figure|example|table|equation" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="procedure" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="task" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-to">
+  <xsl:apply-templates select="(.//command)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-to">
+  <xsl:apply-templates select="(.//function)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="dedication|acknowledgements|preface|chapter|appendix|article" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to-prefix">
+  <xsl:text>[</xsl:text>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to-suffix">
+  <xsl:text>]</xsl:text>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <!-- handles both biblioentry and bibliomixed -->
+  <xsl:choose>
+    <xsl:when test="string(.) = ''">
+      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+      <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
+      <xsl:variable name="entry" select="$bib/bibliography/                                     *[@id=$id or @xml:id=$id][1]"/>
+      <xsl:choose>
+        <xsl:when test="$entry">
+          <xsl:choose>
+            <xsl:when test="$bibliography.numbered != 0">
+              <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/>
+            </xsl:when>
+            <xsl:when test="local-name($entry/*[1]) = 'abbrev'">
+              <xsl:apply-templates select="$entry/*[1]" mode="no.anchor.mode"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="(@id|@xml:id)[1]"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>No bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </xsl:message>
+          <xsl:value-of select="(@id|@xml:id)[1]"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$bibliography.numbered != 0">
+          <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/>
+        </xsl:when>
+        <xsl:when test="local-name(*[1]) = 'abbrev'">
+          <xsl:apply-templates select="*[1]" mode="no.anchor.mode"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="(@id|@xml:id)[1]"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossary" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="glossentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:choose>
+    <xsl:when test="$glossentry.show.acronym = 'primary'">
+      <xsl:choose>
+        <xsl:when test="acronym|abbrev">
+          <xsl:apply-templates select="(acronym|abbrev)[1]" mode="no.anchor.mode"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="glossterm[1]" mode="xref-to">
+            <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+            <xsl:with-param name="referrer" select="$referrer"/>
+            <xsl:with-param name="verbose" select="$verbose"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="glossterm[1]" mode="xref-to">
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossterm|firstterm" mode="xref-to">
+  <xsl:apply-templates mode="no.anchor.mode"/>
+</xsl:template>
+
+<xsl:template match="index" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="listitem" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="section|simplesect                      |sect1|sect2|sect3|sect4|sect5                      |refsect1|refsect2|refsect3|refsection" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+  <!-- FIXME: What about "in Chapter X"? -->
+</xsl:template>
+
+<xsl:template match="topic" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+  <!-- FIXME: What about "in Chapter X"? -->
+</xsl:template>
+
+<xsl:template match="qandaset" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="question[1]" mode="xref-to">
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="question|answer" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="string-length(label) != 0">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <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:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="part|reference" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:choose>
+    <xsl:when test="refmeta/refentrytitle">
+      <xsl:apply-templates select="refmeta/refentrytitle" mode="no.anchor.mode"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="refnamediv/refname[1]" mode="no.anchor.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates select="refmeta/manvolnum" mode="no.anchor.mode"/>
+</xsl:template>
+
+<xsl:template match="refnamediv" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="refname[1]" mode="xref-to">
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refname" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates mode="xref-to"/>
+</xsl:template>
+
+<xsl:template match="step" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Step'"/>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="." mode="number"/>
+</xsl:template>
+
+<xsl:template match="varlistentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="term[1]" mode="xref-to">
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="primary|secondary|tertiary" mode="xref-to">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="xref-to">
+  <xsl:value-of select="primary"/>
+</xsl:template>
+
+<xsl:template match="varlistentry/term" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:apply-templates mode="no.anchor.mode"/>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:apply-templates select="." mode="callout-bug"/>
+</xsl:template>
+
+<xsl:template match="area|areaset" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="callout-bug">
+    <xsl:with-param name="conum">
+      <xsl:apply-templates select="." mode="conumber"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="book" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- These are elements for which no link text exists, so an xref to one
+     uses the xrefstyle attribute if specified, or if not it falls back
+     to the container element's link text -->
+<xsl:template match="para|phrase|simpara|anchor|quote" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:variable name="context" select="(ancestor::simplesect                                        |ancestor::section                                        |ancestor::sect1                                        |ancestor::sect2                                        |ancestor::sect3                                        |ancestor::sect4                                        |ancestor::sect5                                        |ancestor::topic                                        |ancestor::refsection                                        |ancestor::refsect1                                        |ancestor::refsect2                                        |ancestor::refsect3                                        |ancestor::chapter                                        |ancestor::appendix                                        |ancestor::preface                                        |ancestor::partintro                                        |ancestor::dedication                                        |ancestor::acknowledgements                                        |ancestor::colophon                                        |ancestor::bibliography                                        |ancestor::index                                        |ancestor::glossary                                        |ancestor::glossentry                                        |ancestor::listitem                                        |ancestor::varlistentry)[last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="$xrefstyle != ''">
+      <xsl:apply-templates select="." mode="object.xref.markup">
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="$context" mode="xref-to">
+        <xsl:with-param name="purpose" select="'xref'"/>
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="object.title.markup"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="author" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:call-template name="person.name"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:call-template name="person.name.list"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="(.//command)[1]" mode="xref"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="(.//function)[1]" mode="xref"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-title">
+  <!-- handles both biblioentry and bibliomixed -->
+  <xsl:variable name="title">
+    <xsl:text>[</xsl:text>
+    <xsl:choose>
+      <xsl:when test="local-name(*[1]) = 'abbrev'">
+        <xsl:apply-templates select="*[1]" mode="no.anchor.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="(@id|@xml:id)[1]"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>]</xsl:text>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="step" mode="xref-title">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Step'"/>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="." mode="number"/>
+</xsl:template>
+
+<xsl:template match="step[not(./title)]" mode="title.markup">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Step'"/>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="." mode="number"/>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="callout-bug"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="link" name="link">
+  <xsl:param name="linkend" select="@linkend"/>
+  <xsl:param name="a.target"/>
+  <xsl:param name="xhref" select="@xlink:href"/>
+
+  <xsl:variable name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:choose>
+      <xsl:when test="count(child::node()) &gt; 0">
+        <!-- If it has content, use it -->
+        <xsl:apply-templates mode="no.anchor.mode"/>
+      </xsl:when>
+      <!-- else look for an endterm -->
+      <xsl:when test="@endterm">
+        <xsl:variable name="etargets" select="key('id',@endterm)"/>
+        <xsl:variable name="etarget" select="$etargets[1]"/>
+        <xsl:choose>
+          <xsl:when test="count($etarget) = 0">
+            <xsl:message>
+              <xsl:value-of select="count($etargets)"/>
+              <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+              <xsl:value-of select="@endterm"/>
+            </xsl:message>
+            <xsl:text>???</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+              <xsl:apply-templates select="$etarget" mode="endterm"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <!-- Use the xlink:href if no other text -->
+      <xsl:when test="@xlink:href">
+        <xsl:value-of select="@xlink:href"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:message>
+          <xsl:text>Link element has no content and no Endterm. </xsl:text>
+          <xsl:text>Nothing to show in the link to </xsl:text>
+          <xsl:value-of select="(@xlink:href|@linkend)[1]"/>
+        </xsl:message>
+        <xsl:text>???</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="node" select="."/>
+    <xsl:with-param name="linkend" select="$linkend"/>
+    <xsl:with-param name="content" select="$content"/>
+    <xsl:with-param name="a.target" select="$a.target"/>
+    <xsl:with-param name="xhref" select="$xhref"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="ulink" name="ulink">
+  <xsl:param name="url" select="@url"/>
+  <xsl:variable name="link">
+    <a>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:if test="@id or @xml:id">
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <xsl:attribute name="id">
+              <xsl:value-of select="(@id|@xml:id)[1]"/>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:attribute name="id">
+              <xsl:value-of select="(@id|@xml:id)[1]"/>
+            </xsl:attribute>
+          </xsl:otherwise>
+        </xsl:choose>
+      </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 mode="no.anchor.mode"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </a>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="function-available('suwl:unwrapLinks')">
+      <xsl:copy-of select="suwl:unwrapLinks($link)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$link"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="olink" name="olink">
+  <!-- olink content may be passed in from xlink olink -->
+  <xsl:param name="content" select="NOTANELEMENT"/>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:variable name="localinfo" select="@localinfo"/>
+
+  <xsl:choose>
+    <!-- olinks resolved by stylesheet and target database -->
+    <xsl:when test="@targetdoc or @targetptr or                     (@xlink:role=$xolink.role and                      contains(@xlink:href, '#') )">
+
+      <xsl:variable name="targetdoc.att">
+        <xsl:choose>
+          <xsl:when test="@targetdoc != ''">
+            <xsl:value-of select="@targetdoc"/>
+          </xsl:when>
+          <xsl:when test="@xlink:role=$xolink.role and                        contains(@xlink:href, '#')">
+            <xsl:value-of select="substring-before(@xlink:href, '#')"/>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="targetptr.att">
+        <xsl:choose>
+          <xsl:when test="@targetptr != ''">
+            <xsl:value-of select="@targetptr"/>
+          </xsl:when>
+          <xsl:when test="@xlink:role=$xolink.role and                        contains(@xlink:href, '#')">
+            <xsl:value-of select="substring-after(@xlink:href, '#')"/>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="olink.lang">
+        <xsl:call-template name="l10n.language">
+          <xsl:with-param name="xref-context" select="true()"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:variable name="target.database.filename">
+        <xsl:call-template name="select.target.database">
+          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+          <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:variable name="target.database" select="document($target.database.filename,/)"/>
+    
+      <xsl:if test="$olink.debug != 0">
+        <xsl:message>
+          <xsl:text>Olink debug: root element of target.database '</xsl:text>
+          <xsl:value-of select="$target.database.filename"/>
+          <xsl:text>' is '</xsl:text>
+          <xsl:value-of select="local-name($target.database/*[1])"/>
+          <xsl:text>'.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+    
+      <xsl:variable name="olink.key">
+        <xsl:call-template name="select.olink.key">
+          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+          <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:if test="string-length($olink.key) = 0">
+        <xsl:message>
+          <xsl:text>Error: unresolved olink: </xsl:text>
+          <xsl:text>targetdoc/targetptr = '</xsl:text>
+          <xsl:value-of select="$targetdoc.att"/>
+          <xsl:text>/</xsl:text>
+          <xsl:value-of select="$targetptr.att"/>
+          <xsl:text>'.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+
+      <xsl:variable name="href">
+        <xsl:call-template name="make.olink.href">
+          <xsl:with-param name="olink.key" select="$olink.key"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="hottext">
+        <xsl:choose>
+          <xsl:when test="string-length($content) != 0">
+            <xsl:copy-of select="$content"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="olink.hottext">
+              <xsl:with-param name="olink.key" select="$olink.key"/>
+              <xsl:with-param name="olink.lang" select="$olink.lang"/>
+              <xsl:with-param name="target.database" select="$target.database"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="olink.docname.citation">
+        <xsl:call-template name="olink.document.citation">
+          <xsl:with-param name="olink.key" select="$olink.key"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="olink.page.citation">
+        <xsl:call-template name="olink.page.citation">
+          <xsl:with-param name="olink.key" select="$olink.key"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$href != ''">
+          <a href="{$href}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:copy-of select="$hottext"/>
+          </a>
+          <xsl:copy-of select="$olink.page.citation"/>
+          <xsl:copy-of select="$olink.docname.citation"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <span class="olink">
+            <xsl:call-template name="id.attribute"/>
+            <xsl:copy-of select="$hottext"/>
+          </span>
+          <xsl:copy-of select="$olink.page.citation"/>
+          <xsl:copy-of select="$olink.docname.citation"/>
+        </xsl:otherwise>
+      </xsl:choose>
+
+    </xsl:when>
+
+    <!-- Or use old olink mechanism -->
+    <xsl:otherwise>
+      <xsl:variable name="href">
+        <xsl:choose>
+          <xsl:when test="@linkmode">
+            <!-- use the linkmode to get the base URI, use localinfo as fragid -->
+            <xsl:variable name="modespec" select="key('id',@linkmode)"/>
+            <xsl:if test="count($modespec) != 1                           or local-name($modespec) != 'modespec'">
+              <xsl:message>Warning: olink linkmode pointer is wrong.</xsl:message>
+            </xsl:if>
+            <xsl:value-of select="$modespec"/>
+            <xsl:if test="@localinfo">
+              <xsl:text>#</xsl:text>
+              <xsl:value-of select="@localinfo"/>
+            </xsl:if>
+          </xsl:when>
+          <xsl:when test="@type = 'href'">
+            <xsl:call-template name="olink.outline">
+              <xsl:with-param name="outline.base.uri" select="unparsed-entity-uri(@targetdocent)"/>
+              <xsl:with-param name="localinfo" select="@localinfo"/>
+              <xsl:with-param name="return" select="'href'"/>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$olink.resolver"/>
+            <xsl:text>?</xsl:text>
+            <xsl:value-of select="$olink.sysid"/>
+            <xsl:value-of select="unparsed-entity-uri(@targetdocent)"/>
+            <!-- XSL gives no access to the public identifier (grumble...) -->
+            <xsl:if test="@localinfo">
+              <xsl:text>&amp;</xsl:text>
+              <xsl:value-of select="$olink.fragid"/>
+              <xsl:value-of select="@localinfo"/>
+            </xsl:if>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+    
+      <xsl:choose>
+        <xsl:when test="$href != ''">
+          <a href="{$href}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="olink.hottext"/>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="olink.hottext"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="pagenumber.markup">
+  <!-- no-op in HTML -->
+</xsl:template>
+
+
+<xsl:template name="olink.outline">
+  <xsl:param name="outline.base.uri"/>
+  <xsl:param name="localinfo"/>
+  <xsl:param name="return" select="href"/>
+
+  <xsl:variable name="outline-file" select="concat($outline.base.uri,                                $olink.outline.ext)"/>
+
+  <xsl:variable name="outline" select="document($outline-file,.)/div"/>
+
+  <xsl:variable name="node-href">
+    <xsl:choose>
+      <xsl:when test="$localinfo != ''">
+        <xsl:variable name="node" select="$outline//                                    *[@id=$localinfo or @xml:id=$localinfo]"/>
+        <xsl:value-of select="$node/@href"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$outline/@href"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="node-xref">
+    <xsl:choose>
+      <xsl:when test="$localinfo != ''">
+        <xsl:variable name="node" select="$outline//                                *[@id=$localinfo or @xml:id=$localinfo]"/>
+        <xsl:copy-of select="$node/xref"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$outline/xref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$return = 'href'">
+      <xsl:value-of select="$node-href"/>
+    </xsl:when>
+    <xsl:when test="$return = 'xref'">
+      <xsl:value-of select="$node-xref"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$node-xref"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="xref.xreflabel">
+  <!-- called to process an xreflabel...you might use this to make  -->
+  <!-- xreflabels come out in the right font for different targets, -->
+  <!-- for example. -->
+  <xsl:param name="target" select="."/>
+  <xsl:value-of select="$target/@xreflabel"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="title" mode="xref">
+  <xsl:apply-templates mode="no.anchor.mode"/>
+</xsl:template>
+
+<xsl:template match="command" mode="xref">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="function" mode="xref">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="insert.title.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="title"/>
+
+  <xsl:choose>
+    <!-- FIXME: what about the case where titleabbrev is inside the info? -->
+    <xsl:when test="$purpose = 'xref' and titleabbrev">
+      <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$title"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="chapter|appendix" mode="insert.title.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="title"/>
+
+  <xsl:choose>
+    <xsl:when test="$purpose = 'xref'">
+      <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+        <xsl:copy-of select="$title"/>
+      </em>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$title"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.subtitle.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="subtitle"/>
+
+  <xsl:copy-of select="$subtitle"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.label.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="label"/>
+
+  <xsl:copy-of select="$label"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.pagenumber.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="pagenumber"/>
+
+  <xsl:copy-of select="$pagenumber"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.direction.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="direction"/>
+
+  <xsl:copy-of select="$direction"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.olink.docname.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="docname"/>
+
+  <span class="olinkdocname">
+    <xsl:copy-of select="$docname"/>
+  </span>
+
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/admon.xsl b/applications/content/template/docbook/xhtml/admon.xsl
new file mode 100644
index 0000000..5f3f85d
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/admon.xsl
@@ -0,0 +1,140 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="*" mode="admon.graphic.width">
+  <xsl:param name="node" select="."/>
+  <xsl:text>25</xsl:text>
+</xsl:template>
+
+<xsl:template match="note|important|warning|caution|tip">
+  <xsl:choose>
+    <xsl:when test="$admon.graphics != 0">
+      <xsl:call-template name="graphical.admonition"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="nongraphical.admonition"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="admon.graphic">
+  <xsl:param name="node" select="."/>
+  <xsl:value-of select="$admon.graphics.path"/>
+  <xsl:choose>
+    <xsl:when test="local-name($node)='note'">note</xsl:when>
+    <xsl:when test="local-name($node)='warning'">warning</xsl:when>
+    <xsl:when test="local-name($node)='caution'">caution</xsl:when>
+    <xsl:when test="local-name($node)='tip'">tip</xsl:when>
+    <xsl:when test="local-name($node)='important'">important</xsl:when>
+    <xsl:otherwise>note</xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$admon.graphics.extension"/>
+</xsl:template>
+
+<xsl:template name="graphical.admonition">
+  <xsl:variable name="admon.type">
+    <xsl:choose>
+      <xsl:when test="local-name(.)='note'">Note</xsl:when>
+      <xsl:when test="local-name(.)='warning'">Warning</xsl:when>
+      <xsl:when test="local-name(.)='caution'">Caution</xsl:when>
+      <xsl:when test="local-name(.)='tip'">Tip</xsl:when>
+      <xsl:when test="local-name(.)='important'">Important</xsl:when>
+      <xsl:otherwise>Note</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="alt">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="$admon.type"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="$admon.style != ''">
+      <xsl:attribute name="style">
+        <xsl:value-of select="$admon.style"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <table border="{$table.border.off}">
+      <!-- omit summary attribute in html5 output -->
+      <xsl:if test="$div.element != 'section'">
+        <xsl:attribute name="summary">
+          <xsl:value-of select="$admon.type"/>
+          <xsl:if test="title|info/title">
+            <xsl:text>: </xsl:text>
+            <xsl:value-of select="(title|info/title)[1]"/>
+          </xsl:if>
+        </xsl:attribute>
+      </xsl:if>
+      <tr>
+        <td rowspan="2" align="center" valign="top">
+          <xsl:attribute name="width">
+            <xsl:apply-templates select="." mode="admon.graphic.width"/>
+          </xsl:attribute>
+          <img alt="[{$alt}]">
+            <xsl:attribute name="src">
+              <xsl:call-template name="admon.graphic"/>
+            </xsl:attribute>
+          </img>
+        </td>
+        <th align="{$direction.align.start}">
+          <xsl:call-template name="anchor"/>
+          <xsl:if test="$admon.textlabel != 0 or title or info/title">
+            <xsl:apply-templates select="." mode="object.title.markup"/>
+          </xsl:if>
+        </th>
+      </tr>
+      <tr>
+        <td align="{$direction.align.start}" valign="top">
+          <xsl:apply-templates/>
+        </td>
+      </tr>
+    </table>
+  </div>
+</xsl:template>
+
+<xsl:template name="nongraphical.admonition">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="$admon.style">
+      <xsl:attribute name="style">
+        <xsl:value-of select="$admon.style"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$admon.textlabel != 0 or title or info/title">
+      <h3 class="title">
+        <xsl:call-template name="anchor"/>
+        <xsl:apply-templates select="." mode="object.title.markup"/>
+      </h3>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="note/title"/>
+<xsl:template match="important/title"/>
+<xsl:template match="warning/title"/>
+<xsl:template match="caution/title"/>
+<xsl:template match="tip/title"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/annotations.xsl b/applications/content/template/docbook/xhtml/annotations.xsl
new file mode 100644
index 0000000..3e137e8
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/annotations.xsl
@@ -0,0 +1,158 @@
+<?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="add.annotation.links">
+  <xsl:param name="scripts" select="normalize-space($annotation.js)"/>
+  <xsl:choose>
+    <xsl:when test="contains($scripts, ' ')">
+      <script type="text/javascript" src="{substring-before($scripts, ' ')}"/>
+      <xsl:call-template name="add.annotation.links">
+        <xsl:with-param name="scripts" select="substring-after($scripts, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <script type="text/javascript" src="{$scripts}"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="annotation"/>
+
+<xsl:template name="apply-annotations">
+  <xsl:if test="$annotation.support != 0">
+  <!-- do any annotations apply to the context node? -->
+  <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
+
+  <xsl:variable name="aids">
+    <xsl:for-each select="//annotation">
+      <xsl:if test="@annotates=$id                     or starts-with(@annotates, concat($id, ' '))                     or contains(@annotates, concat(' ', $id, ' '))                     or substring(@annotates, string-length(@annotates)-3)                        = concat(' ', $id)">
+        <xsl:value-of select="generate-id()"/>
+        <xsl:text> </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:if test="normalize-space(@annotations) != ''">
+      <xsl:call-template name="annotations-pointed-to">
+        <xsl:with-param name="annotations" select="normalize-space(@annotations)"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="$aids != ''">
+    <xsl:call-template name="apply-annotations-by-gid">
+      <xsl:with-param name="gids" select="normalize-space($aids)"/>
+    </xsl:call-template>
+  </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="annotations-pointed-to">
+  <xsl:param name="annotations"/>
+  <xsl:choose>
+    <xsl:when test="contains($annotations, ' ')">
+      <xsl:variable name="a" select="key('id', substring-before($annotations, ' '))"/>
+      <xsl:if test="$a">
+        <xsl:value-of select="generate-id($a)"/>
+        <xsl:text> </xsl:text>
+      </xsl:if>
+      <xsl:call-template name="annotations-pointed-to">
+        <xsl:with-param name="annotations" select="substring-after($annotations, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="a" select="key('id', $annotations)"/>
+      <xsl:if test="$a">
+        <xsl:value-of select="generate-id($a)"/>
+        <xsl:text> </xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="apply-annotations-by-gid">
+  <xsl:param name="gids"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($gids, ' ')">
+      <xsl:variable name="gid" select="substring-before($gids, ' ')"/>
+      <xsl:apply-templates select="key('gid', $gid)" mode="annotation-inline"/>
+      <xsl:call-template name="apply-annotations-by-gid">
+        <xsl:with-param name="gids" select="substring-after($gids, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="key('gid', $gids)" mode="annotation-inline"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="annotation" mode="annotation-inline">
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="title">
+        <xsl:value-of select="title"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>[Annotation #</xsl:text>
+        <xsl:number count="annotation" level="any" format="1"/>
+        <xsl:text>]</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <a id="anch-{generate-id(.)}" href="#annot-{generate-id(.)}" title="{$title}">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:attribute name="onClick">
+      <xsl:text>popup_</xsl:text>
+      <xsl:value-of select="generate-id(.)"/>
+      <xsl:text>.showPopup('anch-</xsl:text>
+      <xsl:value-of select="generate-id(.)"/>
+      <xsl:text>'); return false;</xsl:text>
+    </xsl:attribute>
+    <img src="{$annotation.graphic.open}" border="0" alt="{$title}"/>
+  </a>
+</xsl:template>
+
+<xsl:template match="annotation" mode="annotation-popup">
+  <div class="annotation-nocss">
+    <p>
+      <a id="annot-{generate-id(.)}"/>
+      <xsl:text>Annotation #</xsl:text>
+      <xsl:number count="annotation" level="any" format="1"/>
+      <xsl:text>:</xsl:text>
+    </p>
+  </div>
+
+  <div id="popup-{generate-id(.)}" class="annotation-popup">
+    <xsl:if test="string-length(.) &gt; 300">
+      <xsl:attribute name="style">width:400px</xsl:attribute>
+    </xsl:if>
+
+    <xsl:call-template name="annotation-title"/>
+    <div class="annotation-body">
+      <xsl:apply-templates select="*[local-name(.) != 'title']"/>
+    </div>
+    <div class="annotation-close">
+      <a href="#" onclick="popup_{generate-id(.)}.hidePopup();return false;">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <img src="{$annotation.graphic.close}" alt="X" border="0"/>
+      </a>
+    </div>
+  </div>
+</xsl:template>
+
+<xsl:template name="annotation-title">
+  <div class="annotation-title">
+    <xsl:choose>
+      <xsl:when test="title">
+        <xsl:apply-templates select="title/node()"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>Annotation</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/autoidx-kimber.xsl b/applications/content/template/docbook/xhtml/autoidx-kimber.xsl
new file mode 100644
index 0000000..05c1044
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/autoidx-kimber.xsl
@@ -0,0 +1,139 @@
+<?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:k="http://www.isogen.com/functions/com.isogen.saxoni18n.Saxoni18nService" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="k" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "kimber" method contributed by Eliot Kimber of Innodata Isogen.  -->
+<!-- ==================================================================== -->
+<!--   *** THIS MODULE ONLY WORKS WITH SAXON 6 OR SAXON 8 ***             -->
+<!-- ==================================================================== -->
+
+
+<xsl:include href="../common/autoidx-kimber.xsl"/>
+
+<!-- Java sort apparently works only on lang part, not country -->
+<xsl:param name="sort.lang">
+  <xsl:choose>
+    <xsl:when test="contains(concat(/*/@lang, /*/@xml:lang), '-')">
+      <xsl:value-of select="substring-before(concat(/*/@lang, /*/@xml:lang), '-')"/>
+    </xsl:when>
+    <xsl:when test="contains(concat(/*/@lang, /*/@xml:lang), '_')">
+      <xsl:value-of select="substring-before(concat(/*/@lang, /*/@xml:lang), '_')"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="concat(/*/@lang, /*/@xml:lang)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:template name="generate-kimber-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="not(contains($vendor, 'SAXON '))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+      <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not(function-available('k:getIndexGroupKey'))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+      <xsl:text>Innodata Isogen 
+Java extensions for </xsl:text>
+      <xsl:text>internationalized indexes. 
+Install those </xsl:text>
+      <xsl:text>extensions, or use a different index method.
+</xsl:text>
+      <xsl:text>For more information, see:
+</xsl:text>
+      <xsl:text>http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="role">
+    <xsl:if test="$index.on.role != 0">
+      <xsl:value-of select="@role"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:if test="$index.on.type != 0">
+      <xsl:value-of select="@type"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="terms" select="//indexterm[count(.|key('k-group', k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, &quot; &quot;, primary))))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1 and not(@class = 'endofrange')]"/>
+
+  <xsl:variable name="alphabetical" select="$terms[not(starts-with(                 k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, &quot; &quot;, primary))),                 '#NUMERIC'                 ))]"/>
+
+  <xsl:variable name="others" select="$terms[starts-with(                 k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, &quot; &quot;, primary))),                 '#NUMERIC'                 )]"/>
+
+  <div class="index">
+    <xsl:if test="$others">
+      <div class="indexdev">
+        <h3>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'index symbols'"/>
+          </xsl:call-template>
+        </h3>
+        <dl>
+          <xsl:apply-templates select="$others" mode="index-symbol-div">
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort lang="{$sort.lang}" select="k:getIndexGroupSortKey(concat(/*/@lang, /*/@xml:lang),                         k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, &quot; &quot;, primary))))"/>
+          </xsl:apply-templates>
+        </dl>
+      </div>
+    </xsl:if>
+
+    <xsl:apply-templates select="$alphabetical" mode="index-div-kimber">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort lang="{$sort.lang}" select="k:getIndexGroupSortKey(concat(/*/@lang, /*/@xml:lang),                      k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, &quot; &quot;, primary))))"/>
+    </xsl:apply-templates>
+  </div>
+
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-kimber">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))"/>
+
+  <xsl:variable name="label" select="k:getIndexGroupLabel(concat(/*/@lang, /*/@xml:lang), $key)"/>
+
+  <xsl:if test="key('k-group', $label)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]">
+    <div class="indexdiv">
+      <h3>
+        <xsl:value-of select="$label"/>
+      </h3>
+      <dl>
+        <xsl:apply-templates select="key('k-group', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]                             [count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]                             [1])=1]" mode="index-primary">
+          <xsl:sort select="normalize-space(concat(primary/@sortas, &quot; &quot;, primary))" lang="{$sort.lang}"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+        </xsl:apply-templates>
+      </dl>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/autoidx-kosek.xsl b/applications/content/template/docbook/xhtml/autoidx-kosek.xsl
new file mode 100644
index 0000000..b9a2a1c
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/autoidx-kosek.xsl
@@ -0,0 +1,109 @@
+<?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:i="urn:cz-kosek:functions:index" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:func="http://exslt.org/functions" xmlns:k="http://www.isogen.com/functions/com.isogen.saxoni18n.Saxoni18nService" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" extension-element-prefixes="func exslt" exclude-result-prefixes="func exslt i l k" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "kosek" method contributed by Jirka Kosek. -->
+
+<xsl:include href="../common/autoidx-kosek.xsl"/>
+
+<xsl:template name="generate-kosek-index">
+  <xsl:param name="scope" select="(ancestor::book|/)[last()]"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="contains($vendor, 'libxslt')">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+      <xsl:text>work with the xsltproc XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="contains($vendor, 'Saxonica')">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+      <xsl:text>work with the Saxon 8 XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="$exsl.node.set.available = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the </xsl:text>
+      <xsl:text>exslt:node-set() function. Use a processor that </xsl:text>
+      <xsl:text>has it, or use a different index method.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not(function-available('i:group-index'))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the
+</xsl:text>
+      <xsl:text>index extension functions be imported:
+</xsl:text>
+      <xsl:text>  xsl:import href="common/autoidx-kosek.xsl"</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="role">
+    <xsl:if test="$index.on.role != 0">
+      <xsl:value-of select="@role"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:if test="$index.on.type != 0">
+      <xsl:value-of select="@type"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="terms" select="//indexterm[count(.|key('group-code', i:group-index(normalize-space(concat(primary/@sortas, &quot; &quot;, primary))))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1 and not(@class = 'endofrange')]"/>
+
+  <div class="index">
+    <xsl:apply-templates select="$terms" mode="index-div-kosek">
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="i:group-index(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))" data-type="number"/>
+    </xsl:apply-templates>
+  </div>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-kosek">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="i:group-index(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))"/>
+
+  <xsl:variable name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:variable>
+
+  <xsl:if test="key('group-code', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]">
+    <div class="indexdiv">
+      <h3>
+        <xsl:value-of select="i:group-letter($key)"/>
+      </h3>
+      <dl>
+        <xsl:apply-templates select="key('group-code', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])=1]" mode="index-primary">
+          <xsl:sort select="normalize-space(concat(primary/@sortas, &quot; &quot;, primary))" lang="{$lang}"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+        </xsl:apply-templates>
+      </dl>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/autoidx-ng.xsl b/applications/content/template/docbook/xhtml/autoidx-ng.xsl
new file mode 100644
index 0000000..6e5c042
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/autoidx-ng.xsl
@@ -0,0 +1,21 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the DocBook XSL Stylesheet distribution.
+     See ../README or http://docbook.sf.net/ for copyright
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- You should have this directly in your customization file. -->
+<!-- This file is there only to retain backward compatibility. -->
+<xsl:import href="autoidx-kosek.xsl"/>
+<xsl:param name="index.method">kosek</xsl:param>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/autoidx.xsl b/applications/content/template/docbook/xhtml/autoidx.xsl
new file mode 100644
index 0000000..7efb4cc
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/autoidx.xsl
@@ -0,0 +1,735 @@
+<?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:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" extension-element-prefixes="exslt" exclude-result-prefixes="exslt" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- The "basic" method derived from Jeni Tennison's work. -->
+<!-- The "kosek" method contributed by Jirka Kosek. -->
+<!-- The "kimber" method contributed by Eliot Kimber of Innodata Isogen. -->
+
+<xsl:variable name="kimber.imported" select="0"/>
+<xsl:variable name="kosek.imported" select="0"/>
+
+<xsl:key name="letter" match="indexterm" use="translate(substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1),'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+
+<xsl:key name="primary" match="indexterm" use="normalize-space(concat(primary/@sortas, &quot; &quot;, primary))"/>
+
+<xsl:key name="secondary" match="indexterm" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)))"/>
+
+<xsl:key name="tertiary" match="indexterm" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)))"/>
+
+<xsl:key name="endofrange" match="indexterm[@class='endofrange']" use="@startref"/>
+
+<xsl:key name="primary-section" match="indexterm[not(secondary) and not(see)]" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]))"/>
+
+<xsl:key name="secondary-section" match="indexterm[not(tertiary) and not(see)]" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]))"/>
+
+<xsl:key name="tertiary-section" match="indexterm[not(see)]" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)), &quot; &quot;, generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]))"/>
+
+<xsl:key name="see-also" match="indexterm[seealso]" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)), &quot; &quot;, seealso)"/>
+
+<xsl:key name="see" match="indexterm[see]" use="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)), &quot; &quot;, see)"/>
+
+<xsl:key name="sections" match="*[@id or @xml:id]" use="@id|@xml:id"/>
+
+
+<xsl:template name="generate-index">
+  <xsl:param name="scope" select="(ancestor::book|/)[last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="$index.method = 'kosek'">
+      <xsl:call-template name="generate-kosek-index">
+        <xsl:with-param name="scope" select="$scope"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$index.method = 'kimber'">
+      <xsl:call-template name="generate-kimber-index">
+        <xsl:with-param name="scope" select="$scope"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="generate-basic-index">
+        <xsl:with-param name="scope" select="$scope"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+      
+<xsl:template name="generate-basic-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="role">
+    <xsl:if test="$index.on.role != 0">
+      <xsl:value-of select="@role"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:if test="$index.on.type != 0">
+      <xsl:value-of select="@type"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="terms" select="//indexterm                         [count(.|key('letter',                           translate(substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1),                              'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;',                              'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))                           [count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1                           and not(@class = 'endofrange')]"/>
+
+  <xsl:variable name="alphabetical" select="$terms[contains(concat('Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'),                                         substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1))]"/>
+
+  <xsl:variable name="others" select="$terms[not(contains(concat('Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;',                                                  'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'),                                              substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1)))]"/>
+  <div class="index">
+    <xsl:if test="$others">
+      <xsl:choose>
+        <xsl:when test="normalize-space($type) != '' and                          $others[@type = $type][count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]">
+          <div class="indexdiv">
+            <h3>
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key" select="'index symbols'"/>
+              </xsl:call-template>
+            </h3>
+            <dl>
+              <xsl:apply-templates select="$others[count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-symbol-div">
+                <xsl:with-param name="position" select="position()"/>                                
+                <xsl:with-param name="scope" select="$scope"/>
+                <xsl:with-param name="role" select="$role"/>
+                <xsl:with-param name="type" select="$type"/>
+                <xsl:sort select="translate(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+              </xsl:apply-templates>
+            </dl>
+          </div>
+        </xsl:when>
+        <xsl:when test="normalize-space($type) != ''"> 
+          <!-- Output nothing, as there isn't a match for $other using this $type -->
+        </xsl:when>  
+        <xsl:otherwise>
+          <div class="indexdiv">
+            <h3>
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key" select="'index symbols'"/>
+              </xsl:call-template>
+            </h3>
+            <dl>
+              <xsl:apply-templates select="$others[count(.|key('primary',                                           normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-symbol-div">
+                <xsl:with-param name="position" select="position()"/>                                
+                <xsl:with-param name="scope" select="$scope"/>
+                <xsl:with-param name="role" select="$role"/>
+                <xsl:with-param name="type" select="$type"/>
+                <xsl:sort select="translate(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+              </xsl:apply-templates>
+            </dl>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:apply-templates select="$alphabetical[count(.|key('letter',                                  translate(substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1),                                            'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-div-basic">
+      <xsl:with-param name="position" select="position()"/>
+      <xsl:with-param name="scope" select="$scope"/>
+      <xsl:with-param name="role" select="$role"/>
+      <xsl:with-param name="type" select="$type"/>
+      <xsl:sort select="translate(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+    </xsl:apply-templates>
+  </div>
+</xsl:template>
+
+<!-- This template not used if html/autoidx-kosek.xsl is imported -->
+<xsl:template name="generate-kosek-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="contains($vendor, 'libxslt')">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text>
+      <xsl:text>work with the xsltproc XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+
+  <xsl:if test="$exsl.node.set.available = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the </xsl:text>
+      <xsl:text>exslt:node-set() function. Use a processor that </xsl:text>
+      <xsl:text>has it, or use a different index method.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="$kosek.imported = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kosek' index method requires the
+</xsl:text>
+      <xsl:text>kosek index extensions be imported:
+</xsl:text>
+      <xsl:text>  xsl:import href="html/autoidx-kosek.xsl"</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+</xsl:template>
+
+<!-- This template not used if html/autoidx-kimber.xsl is imported -->
+<xsl:template name="generate-kimber-index">
+  <xsl:param name="scope" select="NOTANODE"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:if test="not(contains($vendor, 'SAXON '))">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text>
+      <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="$kimber.imported = 0">
+    <xsl:message terminate="yes">
+      <xsl:text>ERROR: the 'kimber' index method requires the
+</xsl:text>
+      <xsl:text>kimber index extensions be imported:
+</xsl:text>
+      <xsl:text>  xsl:import href="html/autoidx-kimber.xsl"</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div-basic">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="translate(substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1),                          'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+
+  <xsl:if test="key('letter', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]                 [count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]">
+    <div class="indexdiv">
+      <xsl:if test="contains(concat('Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'), $key)">
+        <h3>
+          <xsl:value-of select="translate($key, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+        </h3>
+      </xsl:if>
+      <dl>
+        <xsl:apply-templates select="key('letter', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]                                      [count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))                                      [count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])=1]" mode="index-primary">
+          <xsl:with-param name="position" select="position()"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+          <xsl:sort select="translate(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+        </xsl:apply-templates>
+      </dl>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-symbol-div">
+  <xsl:param name="scope" select="/"/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="translate(substring(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 1, 1),                                              'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+
+  <xsl:apply-templates select="key('letter', $key)                                [count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][count(.|key('primary', normalize-space(concat(primary/@sortas, &quot; &quot;, primary)))[1]) = 1]" mode="index-primary">
+    <xsl:with-param name="position" select="position()"/>
+    <xsl:with-param name="scope" select="$scope"/>
+    <xsl:with-param name="role" select="$role"/>
+    <xsl:with-param name="type" select="$type"/>
+    <xsl:sort select="translate(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-primary">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="normalize-space(concat(primary/@sortas, &quot; &quot;, primary))"/>
+  <xsl:variable name="refs" select="key('primary', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]"/>
+  <dt>
+    <xsl:for-each select="$refs/primary">
+      <xsl:if test="@id or @xml:id">
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <a id="{(@id|@xml:id)[1]}"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <span>
+              <xsl:call-template name="id.attribute"/>
+            </span>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:value-of select="primary"/>
+    <xsl:choose>
+      <xsl:when test="$index.links.to.section = 1">
+        <xsl:for-each select="$refs[@zone != '' or generate-id() = generate-id(key('primary-section', concat($key, &quot; &quot;, generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:for-each select="$refs[not(see)                                and not(secondary)][count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$refs[not(secondary)]/*[self::see]">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, &quot; &quot;, &quot; &quot;, see))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-see">
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+        <xsl:sort select="translate(see, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+      </xsl:apply-templates>
+    </xsl:if>
+  </dt>
+  <xsl:choose>
+    <xsl:when test="$refs/secondary or $refs[not(secondary)]/*[self::seealso]">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, &quot; &quot;, &quot; &quot;, seealso))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-seealso">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(seealso, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="$refs[secondary and count(.|key('secondary', concat($key, &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary))))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-secondary">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+          </xsl:apply-templates>
+        </dl>
+      </dd>
+    </xsl:when>
+    <!-- HTML5 requires dd for each dt -->
+    <xsl:when test="$div.element = 'section'">
+      <dd/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-secondary">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)))"/>
+  <xsl:variable name="refs" select="key('secondary', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]"/>
+  <dt>
+    <xsl:for-each select="$refs/secondary">
+      <xsl:if test="@id or @xml:id">
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <a id="{(@id|@xml:id)[1]}"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <span>
+              <xsl:call-template name="id.attribute"/>
+            </span>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:value-of select="secondary"/>
+    <xsl:choose>
+      <xsl:when test="$index.links.to.section = 1">
+        <xsl:for-each select="$refs[@zone != '' or generate-id() = generate-id(key('secondary-section', concat($key, &quot; &quot;, generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:for-each select="$refs[not(see)                                  and not(tertiary)][count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$refs[not(tertiary)]/*[self::see]">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, &quot; &quot;, see))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-see">
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+        <xsl:sort select="translate(see, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+      </xsl:apply-templates>
+    </xsl:if>
+  </dt>
+  <xsl:choose>
+    <xsl:when test="$refs/tertiary or $refs[not(tertiary)]/*[self::seealso]">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, &quot; &quot;, seealso))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-seealso">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(seealso, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="$refs[tertiary and count(.|key('tertiary', concat($key, &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary))))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-tertiary">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+          </xsl:apply-templates>
+        </dl>
+      </dd>
+    </xsl:when>
+    <!-- HTML5 requires dd for each dt -->
+    <xsl:when test="$div.element = 'section'">
+      <dd/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-tertiary">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:variable name="key" select="concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)))"/>
+  <xsl:variable name="refs" select="key('tertiary', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]"/>
+  <dt>
+    <xsl:for-each select="$refs/tertiary">
+      <xsl:if test="@id or @xml:id">
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <a id="{(@id|@xml:id)[1]}"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <span>
+              <xsl:call-template name="id.attribute"/>
+            </span>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:value-of select="tertiary"/>
+    <xsl:choose>
+      <xsl:when test="$index.links.to.section = 1">
+        <xsl:for-each select="$refs[@zone != '' or generate-id() = generate-id(key('tertiary-section', concat($key, &quot; &quot;, generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:for-each select="$refs[not(see)][count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]">
+          <xsl:apply-templates select="." mode="reference">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$refs/see">
+      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)), &quot; &quot;, see))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-see">
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+        <xsl:sort select="translate(see, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+      </xsl:apply-templates>
+    </xsl:if>
+  </dt>
+  <xsl:choose>
+    <xsl:when test="$refs/seealso">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(normalize-space(concat(primary/@sortas, &quot; &quot;, primary)), &quot; &quot;, normalize-space(concat(secondary/@sortas, &quot; &quot;, secondary)), &quot; &quot;, normalize-space(concat(tertiary/@sortas, &quot; &quot;, tertiary)), &quot; &quot;, seealso))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-seealso">
+            <xsl:with-param name="position" select="position()"/>
+            <xsl:with-param name="scope" select="$scope"/>
+            <xsl:with-param name="role" select="$role"/>
+            <xsl:with-param name="type" select="$type"/>
+            <xsl:sort select="translate(seealso, 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+          </xsl:apply-templates>
+        </dl>
+      </dd>
+    </xsl:when>
+    <!-- HTML5 requires dd for each dt -->
+    <xsl:when test="$div.element = 'section'">
+      <dd/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="reference">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="position"/>
+  <xsl:param name="separator" select="''"/>
+  
+  <xsl:variable name="term.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.term.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="number.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.number.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="range.separator">
+    <xsl:call-template name="index.separator">
+      <xsl:with-param name="key" select="'index.range.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$separator != ''">
+      <xsl:value-of select="$separator"/>
+    </xsl:when>
+    <xsl:when test="$position = 1">
+      <xsl:value-of select="$term.separator"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$number.separator"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="@zone and string(@zone)">
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="normalize-space(@zone)"/>
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <a>
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:variable name="title">
+          <xsl:choose>
+            <xsl:when test="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]/titleabbrev and $index.prefer.titleabbrev != 0">
+              <xsl:apply-templates select="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]" mode="titleabbrev.markup"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]" mode="title.markup"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+
+        <xsl:attribute name="href">
+          <xsl:choose>
+            <xsl:when test="$index.links.to.section = 1">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]"/>
+                <xsl:with-param name="context" select="(//index[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))] | //setindex[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))])[1]"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="."/>
+                <xsl:with-param name="context" select="(//index[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))] | //setindex[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))])[1]"/>
+              </xsl:call-template>
+            </xsl:otherwise>
+          </xsl:choose>
+
+        </xsl:attribute>
+
+        <xsl:value-of select="$title"/> <!-- text only -->
+      </a>
+
+      <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
+      <xsl:if test="key('endofrange', $id)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]">
+        <xsl:apply-templates select="key('endofrange', $id)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][last()]" mode="reference">
+          <xsl:with-param name="position" select="position()"/>
+          <xsl:with-param name="scope" select="$scope"/>
+          <xsl:with-param name="role" select="$role"/>
+          <xsl:with-param name="type" select="$type"/>
+          <xsl:with-param name="separator" select="$range.separator"/>
+        </xsl:apply-templates>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="reference">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="zones"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($zones, ' ')">
+      <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
+      <xsl:variable name="target" select="key('sections', $zone)"/>
+
+      <a>
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target[1]"/>
+            <xsl:with-param name="context" select="//index[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+      </a>
+      <xsl:text>, </xsl:text>
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="substring-after($zones, ' ')"/>
+        <xsl:with-param name="position" select="position()"/>
+        <xsl:with-param name="scope" select="$scope"/>
+        <xsl:with-param name="role" select="$role"/>
+        <xsl:with-param name="type" select="$type"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="zone" select="$zones"/>
+      <xsl:variable name="target" select="key('sections', $zone)"/>
+
+      <a>
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target[1]"/>
+            <xsl:with-param name="context" select="//index[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+      </a>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-see">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:text> (</xsl:text>
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'see'"/>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:value-of select="see"/>
+  <xsl:text>)</xsl:text>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-seealso">
+  <xsl:param name="scope" select="."/>
+  <xsl:param name="role" select="''"/>
+  <xsl:param name="type" select="''"/>
+
+  <xsl:for-each select="seealso">
+    <xsl:sort select="translate(., 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/>
+    <dt>
+    <xsl:text>(</xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'seealso'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="."/>
+    <xsl:text>)</xsl:text>
+    </dt>
+    <xsl:if test="$div.element = 'section'">
+      <dd/>
+    </xsl:if>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="*" mode="index-title-content">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage|ancestor-or-self::topic)[last()]" mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template name="index.separator">
+  <xsl:param name="key" select="''"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$key = 'index.term.separator'">
+      <xsl:choose>
+        <!-- Use the override if not blank -->
+        <xsl:when test="$index.term.separator != ''">
+          <xsl:copy-of select="$index.term.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="lang" select="$lang"/>
+            <xsl:with-param name="context">index</xsl:with-param>
+            <xsl:with-param name="name">term-separator</xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$key = 'index.number.separator'">
+      <xsl:choose>
+        <!-- Use the override if not blank -->
+        <xsl:when test="$index.number.separator != ''">
+          <xsl:copy-of select="$index.number.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="lang" select="$lang"/>
+            <xsl:with-param name="context">index</xsl:with-param>
+            <xsl:with-param name="name">number-separator</xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="$key = 'index.range.separator'">
+      <xsl:choose>
+        <!-- Use the override if not blank -->
+        <xsl:when test="$index.range.separator != ''">
+          <xsl:copy-of select="$index.range.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="lang" select="$lang"/>
+            <xsl:with-param name="context">index</xsl:with-param>
+            <xsl:with-param name="name">range-separator</xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/autotoc.xsl b/applications/content/template/docbook/xhtml/autotoc.xsl
new file mode 100644
index 0000000..cfae61e
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/autotoc.xsl
@@ -0,0 +1,674 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:variable name="toc.listitem.type">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">dt</xsl:when>
+    <xsl:otherwise>li</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<!-- this is just hack because dl and ul aren't completely isomorphic -->
+<xsl:variable name="toc.dd.type">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">dd</xsl:when>
+    <xsl:otherwise/>
+  </xsl:choose>
+</xsl:variable>
+
+<xsl:template name="make.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+  <xsl:param name="nodes" select="/NOT-AN-ELEMENT"/>
+
+  <xsl:variable name="nodes.plus" select="$nodes | qandaset"/>
+
+  <xsl:variable name="toc.title">
+    <xsl:if test="$toc.title.p">
+      <xsl:choose>
+        <xsl:when test="$make.clean.html != 0">
+          <div class="toc-title">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key">TableofContents</xsl:with-param>
+            </xsl:call-template>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <p>
+            <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>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$manual.toc != ''">
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id"/>
+      </xsl:variable>
+      <xsl:variable name="toc" select="document($manual.toc, .)"/>
+      <xsl:variable name="tocentry" select="$toc//tocentry[@linkend=$id]"/>
+      <xsl:if test="$tocentry and $tocentry/*">
+        <div class="toc">
+          <xsl:copy-of select="$toc.title"/>
+          <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+            <xsl:call-template name="manual-toc">
+              <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
+            </xsl:call-template>
+          </xsl:element>
+        </div>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$qanda.in.toc != 0">
+          <xsl:if test="$nodes.plus">
+            <div class="toc">
+              <xsl:copy-of select="$toc.title"/>
+              <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+                <xsl:apply-templates select="$nodes.plus" mode="toc">
+                  <xsl:with-param name="toc-context" select="$toc-context"/>
+                </xsl:apply-templates>
+              </xsl:element>
+            </div>
+          </xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$nodes">
+            <div class="toc">
+              <xsl:copy-of select="$toc.title"/>
+              <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+                <xsl:apply-templates select="$nodes" mode="toc">
+                  <xsl:with-param name="toc-context" select="$toc-context"/>
+                </xsl:apply-templates>
+              </xsl:element>
+            </div>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="make.lots">
+  <xsl:param name="toc.params" select="''"/>
+  <xsl:param name="toc"/>
+
+  <xsl:if test="contains($toc.params, 'toc')">
+    <xsl:copy-of select="$toc"/>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'figure')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'figure'"/>
+      <xsl:with-param name="nodes" select=".//figure"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'table')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'table'"/>
+      <xsl:with-param name="nodes" select=".//table[not(@tocentry = 0)]"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'example')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'example'"/>
+      <xsl:with-param name="nodes" select=".//example"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'equation')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'equation'"/>
+      <xsl:with-param name="nodes" select=".//equation[title or info/title]"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="contains($toc.params, 'procedure')">
+    <xsl:call-template name="list.of.titles">
+      <xsl:with-param name="titles" select="'procedure'"/>
+      <xsl:with-param name="nodes" select=".//procedure[title]"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="set.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:call-template name="make.toc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+    <xsl:with-param name="nodes" select="book|setindex|set"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="division.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:call-template name="make.toc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+    <xsl:with-param name="nodes" select="part|reference                                          |preface|chapter|appendix                                          |article                                          |topic                                          |bibliography|glossary|index                                          |refentry                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="component.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:call-template name="make.toc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+    <xsl:with-param name="nodes" select="section|sect1                                          |simplesect[$simplesect.in.toc != 0]                                          |topic                                          |refentry                                          |article|bibliography|glossary                                          |appendix|index                                          |bridgehead[not(@renderas)                                                      and $bridgehead.in.toc != 0]                                          |.//bridgehead[@renderas='sect1'                                                         and $bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="component.toc.separator">
+  <!-- Customize to output something between
+       component.toc and first output -->
+</xsl:template>
+
+<xsl:template name="section.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+
+  <xsl:call-template name="make.toc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+    <xsl:with-param name="nodes" select="section|sect1|sect2|sect3|sect4|sect5|refentry                            |bridgehead[$bridgehead.in.toc != 0]"/>
+
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="section.toc.separator">
+  <!-- Customize to output something between
+       section.toc and first output -->
+</xsl:template>
+<!-- ==================================================================== -->
+
+<xsl:template name="subtoc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="nodes" select="NOT-AN-ELEMENT"/>
+
+  <xsl:variable name="nodes.plus" select="$nodes | qandaset"/>
+
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+      <xsl:choose>
+        <xsl:when test="$qanda.in.toc != 0">
+          <xsl:apply-templates mode="toc" select="$nodes.plus">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="toc" select="$nodes">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="depth">
+    <xsl:choose>
+      <xsl:when test="local-name(.) = 'section'">
+        <xsl:value-of select="count(ancestor::section) + 1"/>
+      </xsl:when>
+      <xsl:when test="local-name(.) = 'sect1'">1</xsl:when>
+      <xsl:when test="local-name(.) = 'sect2'">2</xsl:when>
+      <xsl:when test="local-name(.) = 'sect3'">3</xsl:when>
+      <xsl:when test="local-name(.) = 'sect4'">4</xsl:when>
+      <xsl:when test="local-name(.) = 'sect5'">5</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect1'">1</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect2'">2</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect3'">3</xsl:when>
+      <xsl:when test="local-name(.) = 'topic'">1</xsl:when>
+      <xsl:when test="local-name(.) = 'simplesect'">
+        <!-- sigh... -->
+        <xsl:choose>
+          <xsl:when test="local-name(..) = 'section'">
+            <xsl:value-of select="count(ancestor::section)"/>
+          </xsl:when>
+          <xsl:when test="local-name(..) = 'sect1'">2</xsl:when>
+          <xsl:when test="local-name(..) = 'sect2'">3</xsl:when>
+          <xsl:when test="local-name(..) = 'sect3'">4</xsl:when>
+          <xsl:when test="local-name(..) = 'sect4'">5</xsl:when>
+          <xsl:when test="local-name(..) = 'sect5'">6</xsl:when>
+          <xsl:when test="local-name(..) = 'topic'">2</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect1'">2</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect2'">3</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect3'">4</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}" namespace="http://www.w3.org/1999/xhtml">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="toc.line">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+    <xsl:if test="$toc.listitem.type = 'li' and                   ( (self::set or self::book or self::part) or                          $toc.section.depth &gt; $depth) and                    ( ($qanda.in.toc = 0 and count($nodes)&gt;0) or                     ($qanda.in.toc != 0 and count($nodes.plus)&gt;0) )                   and $toc.max.depth &gt; $depth.from.context">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li' and                   ( (self::set or self::book or self::part) or                          $toc.section.depth &gt; $depth) and                  ( ($qanda.in.toc = 0 and count($nodes)&gt;0) or                   ($qanda.in.toc != 0 and count($nodes.plus)&gt;0) )                 and $toc.max.depth &gt; $depth.from.context">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="toc.line">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="depth" select="1"/>
+  <xsl:param name="depth.from.context" select="8"/>
+
+ <span>
+  <xsl:attribute name="class"><xsl:value-of select="local-name(.)"/></xsl:attribute>
+
+  <!-- * if $autotoc.label.in.hyperlink is zero, then output the label -->
+  <!-- * before the hyperlinked title (as the DSSSL stylesheet does) -->
+  <xsl:if test="$autotoc.label.in.hyperlink = 0">
+    <xsl:variable name="label">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:copy-of select="$label"/>
+    <xsl:if test="$label != ''">
+      <xsl:value-of select="$autotoc.label.separator"/>
+    </xsl:if>
+  </xsl:if>
+
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="context" select="$toc-context"/>
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    
+  <!-- * if $autotoc.label.in.hyperlink is non-zero, then output the label -->
+  <!-- * as part of the hyperlinked title -->
+  <xsl:if test="not($autotoc.label.in.hyperlink = 0)">
+    <xsl:variable name="label">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:copy-of select="$label"/>
+    <xsl:if test="$label != ''">
+      <xsl:value-of select="$autotoc.label.separator"/>
+    </xsl:if>
+  </xsl:if>
+
+    <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+  </a>
+  </span>
+</xsl:template>
+
+<xsl:template match="book" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="part|reference                                          |preface|chapter|appendix                                          |article                                          |topic                                          |bibliography|glossary|index                                          |refentry                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="setindex" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <!-- If the setindex tag is not empty, it should be it in the TOC -->
+  <xsl:if test="* or $generate.index != 0">
+    <xsl:call-template name="subtoc">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="part|reference" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="appendix|chapter|article|topic                                          |index|glossary|bibliography                                          |preface|reference|refentry                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix|article|topic" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="section|sect1                                          |simplesect[$simplesect.in.toc != 0]                                          |topic                                          |refentry                                          |glossary|bibliography|index                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect1" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="sect2                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect2" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="sect3                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect3" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="sect4                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect4" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="sect5                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect5" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="simplesect" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="section|refentry                                          |simplesect[$simplesect.in.toc != 0]                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="topic" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="section|refentry                                          |simplesect[$simplesect.in.toc != 0]                                          |bridgehead[$bridgehead.in.toc != 0]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:if test="$bridgehead.in.toc != 0">
+    <xsl:call-template name="subtoc">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="index" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <!-- If the index tag is not empty, it should be it in the TOC -->
+  <xsl:if test="* or $generate.index != 0">
+    <xsl:call-template name="subtoc">
+      <xsl:with-param name="toc-context" select="$toc-context"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refentry" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:variable name="refmeta" select=".//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select=".//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+  <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/>
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]" mode="titleabbrev.markup"/>
+      </xsl:when>
+      <xsl:when test="$refdesc">
+        <xsl:apply-templates select="$refdesc" mode="titleabbrev.markup"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]" mode="titleabbrev.markup"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml">
+    <span class="refentrytitle">
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:copy-of select="$title"/>
+      </a>
+    </span>
+    <span class="refpurpose">
+      <xsl:if test="$annotate.toc != 0">
+        <!-- * DocBook 5 says inlinemediaobject (among other things) -->
+        <!-- * is allowed in refpurpose; so we need to run -->
+        <!-- * apply-templates on refpurpose here, instead of value-of  -->
+        <xsl:apply-templates select="refnamediv/refpurpose" mode="no.anchor.mode"/>
+      </xsl:if>
+    </span>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="title" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="object" select=".."/>
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </a>
+</xsl:template>
+
+<xsl:template name="manual-toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="tocentry"/>
+
+  <!-- be careful, we don't want to change the current document to the other tree! -->
+
+  <xsl:if test="$tocentry">
+    <xsl:variable name="node" select="key('id', $tocentry/@linkend)"/>
+
+    <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml">
+      <xsl:variable name="label">
+        <xsl:apply-templates select="$node" mode="label.markup"/>
+      </xsl:variable>
+      <xsl:copy-of select="$label"/>
+      <xsl:if test="$label != ''">
+        <xsl:value-of select="$autotoc.label.separator"/>
+      </xsl:if>
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$node"/>
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$node" mode="titleabbrev.markup"/>
+      </a>
+    </xsl:element>
+
+    <xsl:if test="$tocentry/*">
+      <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:call-template name="manual-toc">
+          <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
+        </xsl:call-template>
+      </xsl:element>
+    </xsl:if>
+
+    <xsl:if test="$tocentry/following-sibling::*">
+      <xsl:call-template name="manual-toc">
+        <xsl:with-param name="tocentry" select="$tocentry/following-sibling::*[1]"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="list.of.titles">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="titles" select="'table'"/>
+  <xsl:param name="nodes" select=".//table"/>
+
+  <xsl:if test="$nodes">
+    <div class="list-of-{$titles}s">
+      <xsl:choose>
+        <xsl:when test="$make.clean.html != 0">
+          <div class="toc-title">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key">
+                <xsl:choose>
+                  <xsl:when test="$titles='table'">ListofTables</xsl:when>
+                  <xsl:when test="$titles='figure'">ListofFigures</xsl:when>
+                  <xsl:when test="$titles='equation'">ListofEquations</xsl:when>
+                  <xsl:when test="$titles='example'">ListofExamples</xsl:when>
+                  <xsl:when test="$titles='procedure'">ListofProcedures</xsl:when>
+                  <xsl:otherwise>ListofUnknown</xsl:otherwise>
+                </xsl:choose>
+              </xsl:with-param>
+            </xsl:call-template>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <p>
+            <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key">
+                  <xsl:choose>
+                    <xsl:when test="$titles='table'">ListofTables</xsl:when>
+                    <xsl:when test="$titles='figure'">ListofFigures</xsl:when>
+                    <xsl:when test="$titles='equation'">ListofEquations</xsl:when>
+                    <xsl:when test="$titles='example'">ListofExamples</xsl:when>
+                    <xsl:when test="$titles='procedure'">ListofProcedures</xsl:when>
+                    <xsl:otherwise>ListofUnknown</xsl:otherwise>
+                  </xsl:choose>
+                </xsl:with-param>
+              </xsl:call-template>
+            </strong>
+          </p>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:apply-templates select="$nodes" mode="toc">
+          <xsl:with-param name="toc-context" select="$toc-context"/>
+        </xsl:apply-templates>
+      </xsl:element>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation|procedure" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:variable name="label">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:copy-of select="$label"/>
+    <xsl:if test="$label != ''">
+      <xsl:value-of select="$autotoc.label.separator"/>
+    </xsl:if>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="toc-context" select="$toc-context"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+    </a>
+  </xsl:element>
+</xsl:template>
+
+<!-- Used only if qanda.in.toc parameter is non-zero -->
+<xsl:template match="qandaset" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+    <xsl:with-param name="nodes" select="qandadiv | qandaentry"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="qandadiv|qandaentry" mode="toc">
+  <xsl:apply-templates select="." mode="qandatoc.mode"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/biblio-iso690.xsl b/applications/content/template/docbook/xhtml/biblio-iso690.xsl
new file mode 100644
index 0000000..b435b3f
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/biblio-iso690.xsl
@@ -0,0 +1,1300 @@
+<?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">
+
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     The original code for processing bibliography in ISO690 style
+     was provided by Jana Dvorakova <jana4u@seznam.cz>
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- if biblioentry.alt.primary.seps is set to nonzero value then use alternative separators for primary responsibility - $alt.person.two.sep, $alt.person.last.sep, $alt.person.more.sep  -->
+<xsl:param name="biblioentry.alt.primary.seps" select="0"/>
+
+<!-- how many authors will be printed if there is more than three authors - set to number 1 (default value), 2 or 3 -->
+<xsl:param name="biblioentry.primary.count" select="1"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="iso690.makecitation">
+<!-- Types of resources -->
+  <xsl:choose>
+
+    <!-- SYSTEMS OF ELECTRONIC COMMUNICATION : ENTIRE MESSAGE SYSTEM -->
+    <!-- same as Monographs -->
+    <xsl:when test="./@role='messagesystem'">
+      <xsl:call-template name="iso690.monogr"/>
+    </xsl:when>
+
+    <!-- SYSTEMS OF ELECTRONIC COMMUNICATION : ELECTRONIC MESSAGES -->
+    <!-- same as Contributions to Monographs -->
+    <xsl:when test="./@role='message'">
+      <xsl:call-template name="iso690.paper.mon"/>
+    </xsl:when>
+
+    <!-- SERIALS -->
+    <xsl:when test="./@role='serial' or ./biblioid/@class='issn' or ./issn">
+      <xsl:call-template name="iso690.serial"/>
+    </xsl:when>
+
+    <!-- PARTS OF MONOGRAPHS -->
+    <xsl:when test="./@role='part' or (./bibliomisc[@role='secnum']|./bibliomisc[@role='sectitle'])">
+      <xsl:call-template name="iso690.monogr.part"/>
+    </xsl:when>
+
+    <!-- CONTRIBUTIONS TO MONOGRAPHS -->
+    <xsl:when test="./@role='contribution' or (./biblioset/@relation='part' and ./biblioset/@relation='book')">
+      <xsl:call-template name="iso690.paper.mon"/>
+    </xsl:when>
+
+    <!-- ARTICLES, ETC., IN SERIALS -->
+    <xsl:when test="./@role='article' or (./biblioset/@relation='journal' and ./biblioset/@relation='article')">
+      <xsl:call-template name="iso690.article"/>
+    </xsl:when>
+
+    <!-- PATENT DOCUMENTS -->
+    <xsl:when test="./@role='patent' or (./bibliomisc[@role='patenttype'] and ./bibliomisc[@role='patentnum'])">
+      <xsl:call-template name="iso690.patent"/>
+    </xsl:when>
+
+    <!-- MONOGRAPHS -->
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.monogr"/>
+    </xsl:otherwise>
+
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- MONOGRAPHS -->
+<xsl:template name="iso690.monogr">
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility -->
+  <xsl:call-template name="iso690.secondary"/>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition"/>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.pub"/>
+  <!-- Extent -->
+  <xsl:call-template name="iso690.extent"/>
+  <!-- Series -->
+  <xsl:call-template name="iso690.serie"/>
+  <!-- Notes -->
+  <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access -->
+  <xsl:call-template name="iso690.access"/>
+  <!-- Standard number -->
+  <xsl:call-template name="iso690.isbn"/>
+</xsl:template>
+
+<!-- SERIALS -->
+<xsl:template name="iso690.serial">
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Responsibility [nonEL] -->
+  <xsl:if test="not(./bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition">
+    <xsl:with-param name="after" select="./bibliomisc[@role='issuing']"/>
+  </xsl:call-template>
+  <!-- Issue designation (date and/or num) [nonEL] -->
+  <xsl:if test="not(./bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.issuing"/>
+  </xsl:if>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.pub"/>
+  <!-- Series -->
+  <xsl:call-template name="iso690.serie"/>
+  <!-- Notes -->
+  <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access -->
+  <xsl:call-template name="iso690.access"/>
+  <!-- Standard number -->
+  <xsl:call-template name="iso690.issn"/>
+</xsl:template>
+
+<!-- PARTS OF MONOGRAPHS -->
+<xsl:template name="iso690.monogr.part">
+  <!-- Primary responsibility of host document -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title and Type of medium of host document -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility of host document [EL] -->
+  <xsl:if test="./bibliomisc[@role='medium']">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition">
+    <xsl:with-param name="after" select="./volumenum"/>
+  </xsl:call-template>
+  <!-- Numeration of the part [nonEL]-->
+  <xsl:if test="not(./bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.partnr"/>
+  <!-- Subordinate responsibility [nonEL] -->
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.pub"/>
+  <!-- Location within host -->
+  <xsl:call-template name="iso690.part.location"/>
+  <xsl:if test="./bibliomisc[@role='medium']">
+  <!-- Numeration within host document [EL] -->
+  <!-- Notes [EL] -->
+    <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access [EL] -->
+    <xsl:call-template name="iso690.access"/>
+  <!-- Standard number [EL] -->
+    <xsl:call-template name="iso690.isbn"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- CONTRIBUTIONS TO MONOGRAPHS -->
+<xsl:template name="iso690.paper.mon">
+<!-- Contribution -->
+  <xsl:apply-templates mode="iso690.paper.part" select="./biblioset[@relation='part']"/>
+<!-- In -->
+  <xsl:text>In </xsl:text>
+<!-- Host -->
+  <xsl:apply-templates mode="iso690.paper.book" select="./biblioset[@relation='book']"/>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.paper.part">
+<!-- Contribution -->
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title -->
+  <xsl:call-template name="iso690.title">
+    <xsl:with-param name="italic" select="0"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.paper.book">
+<!-- Host -->
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility [EL] -->
+  <xsl:if test="./bibliomisc[@role='medium']">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition"/>
+  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+  <xsl:call-template name="iso690.paper.pub"/>
+  <!-- Numeration within host document [EL] -->
+  <!-- Location within host -->
+  <xsl:call-template name="iso690.location"/>
+  <xsl:if test="./bibliomisc[@role='medium']">
+  <!-- Notes [EL] -->
+    <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access [EL] -->
+    <xsl:call-template name="iso690.access"/>
+  <!-- Standard number [EL] -->
+    <xsl:call-template name="iso690.isbn"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ARTICLES, ETC., IN SERIALS -->
+<xsl:template name="iso690.article">
+<!-- Article -->
+  <xsl:apply-templates mode="iso690.article.art" select="./biblioset[@relation='article']"/>
+<!-- Serial -->
+  <xsl:apply-templates mode="iso690.article.jour" select="./biblioset[@relation='journal']"/>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.article.art">
+<!-- Article -->
+  <!-- Primary responsibility -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title -->
+  <xsl:call-template name="iso690.title">
+    <xsl:with-param name="italic" select="0"/>
+  </xsl:call-template>
+  <!-- Subordinate responsibility [nonEL] -->
+  <xsl:if test="not(../*/bibliomisc[@role='medium'])">
+    <xsl:call-template name="iso690.secondary"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="biblioset" mode="iso690.article.jour">
+<!-- Serial -->
+  <!-- Title and Type of medium -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Edition -->
+  <xsl:call-template name="iso690.edition">
+    <xsl:with-param name="after" select="./pubdate[not(@role='issuing')]|./volumenum|./issuenum|./pagenums"/>
+  </xsl:call-template>
+  <!-- Number designation [EL] -->
+  <!-- Location within host -->
+  <xsl:call-template name="iso690.article.location"/>
+  <xsl:if test="./bibliomisc[@role='medium']">
+  <!-- Notes [EL] -->
+    <xsl:call-template name="iso690.notice"/>
+  <!-- Avaibility and access [EL] -->
+    <xsl:call-template name="iso690.access"/>
+  <!-- Standard number [EL] -->
+    <xsl:call-template name="iso690.issn"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- PATENT DOCUMENTS -->
+<xsl:template name="iso690.patent">
+  <!-- Primary responsibility (applicant) -->
+  <xsl:call-template name="iso690.primary"/>
+  <!-- Title of the invention -->
+  <xsl:call-template name="iso690.title"/>
+  <!-- Subordinate responsibility -->
+  <xsl:call-template name="iso690.secondary"/>
+  <!-- Notes -->
+  <xsl:call-template name="iso690.notice"/>
+  <!-- Identification -->
+  <xsl:call-template name="iso690.pat.ident"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Elements -->
+
+<!-- Primary responsibility -->
+<xsl:template name="iso690.primary">
+  <xsl:param name="primary.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./authorgroup/author|./author">
+      <xsl:call-template name="iso690.author.list">
+        <xsl:with-param name="person.list" select=".//authorgroup/author|.//author"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="./authorgroup/editor|./editor">
+      <xsl:call-template name="iso690.author.list">
+        <xsl:with-param name="person.list" select=".//authorgroup/editor|.//editor"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="./authorgroup/corpauthor|./corpauthor">
+      <xsl:call-template name="iso690.author.list">
+        <xsl:with-param name="person.list" select=".//authorgroup/corpauthor|.//corpauthor"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="(./firstname)and(./surname)">
+        <xsl:call-template name="iso690.author"/>
+        <xsl:call-template name="iso690.endsep">
+          <xsl:with-param name="text" select="string(./firstname[1])"/>
+          <xsl:with-param name="sep" select="$primary.sep"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.author.list">
+  <xsl:param name="person.list" select="author|corpauthor|editor"/>
+  <xsl:param name="person.count" select="count($person.list)"/>
+  <xsl:param name="count" select="1"/>
+  <xsl:param name="group" select="./authorgroup[@role='many']"/>
+  <xsl:param name="many" select="0"/>
+
+  <xsl:param name="primary.many">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.many'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="primary.editor">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.editor'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="primary.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.sep'"/></xsl:call-template>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count &gt; $person.count"/>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$person.count &lt; 4 and not($group)">
+          <xsl:call-template name="iso690.author">
+            <xsl:with-param name="node" select="$person.list[position()=$count]"/>
+          </xsl:call-template>
+          <xsl:choose>
+            <xsl:when test="$person.count = 2 and $count = 1 and $biblioentry.alt.primary.seps != 0">
+              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.two.sep'"/></xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$person.count = 2 and $count = 1">
+              <xsl:call-template name="gentext.template">
+                <xsl:with-param name="context" select="'authorgroup'"/>
+                <xsl:with-param name="name" select="'sep2'"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$person.count &gt; 2 and $count+1 = $person.count and $biblioentry.alt.primary.seps != 0">
+              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.last.sep'"/></xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$person.count &gt; 2 and $count+1 = $person.count">
+              <xsl:call-template name="gentext.template">
+                <xsl:with-param name="context" select="'authorgroup'"/>
+                <xsl:with-param name="name" select="'seplast'"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$count &lt; $person.count and $biblioentry.alt.primary.seps != 0">
+              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.more.sep'"/></xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$count &lt; $person.count">
+              <xsl:call-template name="gentext.template">
+                <xsl:with-param name="context" select="'authorgroup'"/>
+                <xsl:with-param name="name" select="'sep'"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="($count = $person.count)">
+              <xsl:choose>
+                <xsl:when test="$many!=0">
+                  <xsl:if test="name($person.list[position()=$count])='editor'">
+                    <xsl:value-of select="$primary.editor"/>
+                  </xsl:if>
+                  <xsl:value-of select="$primary.many"/>
+                  <xsl:call-template name="iso690.endsep">
+                    <xsl:with-param name="text" select="$primary.many"/>
+                    <xsl:with-param name="sep" select="$primary.sep"/>
+                  </xsl:call-template>
+                </xsl:when>
+                <xsl:when test="name($person.list[position()=$count])='editor'">
+                  <xsl:value-of select="$primary.editor"/>
+                  <xsl:value-of select="$primary.sep"/>
+                </xsl:when>
+                <xsl:when test="name($person.list[position()=$count])='corpauthor'">
+                  <xsl:call-template name="iso690.endsep">
+                    <xsl:with-param name="text" select="string($person.list[position()=$count])"/>
+                    <xsl:with-param name="sep" select="$primary.sep"/>
+                  </xsl:call-template>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:call-template name="iso690.endsep">
+                    <xsl:with-param name="text" select="string($person.list[position()=$count]//firstname[1])"/>
+                    <xsl:with-param name="sep" select="$primary.sep"/>
+                  </xsl:call-template>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:when>
+          </xsl:choose>
+
+          <xsl:call-template name="iso690.author.list">
+            <xsl:with-param name="person.list" select="$person.list"/>
+            <xsl:with-param name="person.count" select="$person.count"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="many" select="$many"/>
+            <xsl:with-param name="group"/>
+          </xsl:call-template>
+        </xsl:when>
+
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="($biblioentry.primary.count&gt;=3) and ($person.count&gt;=3)">
+              <xsl:call-template name="iso690.author.list">
+                <xsl:with-param name="person.list" select="$person.list[1]|$person.list[2]|$person.list[3]"/>
+                <xsl:with-param name="person.count" select="3"/>
+                <xsl:with-param name="count" select="1"/>
+                <xsl:with-param name="many" select="1"/>
+                <xsl:with-param name="group"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="($biblioentry.primary.count&gt;1) and  ($person.count&gt;1)">
+              <xsl:call-template name="iso690.author.list">
+                <xsl:with-param name="person.list" select="$person.list[1]|$person.list[2]"/>
+                <xsl:with-param name="person.count" select="2"/>
+                <xsl:with-param name="count" select="1"/>
+                <xsl:with-param name="many" select="1"/>
+                <xsl:with-param name="group"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="iso690.author.list">
+                <xsl:with-param name="person.list" select="$person.list[1]"/>
+                <xsl:with-param name="person.count" select="1"/>
+                <xsl:with-param name="count" select="1"/>
+                <xsl:with-param name="many" select="1"/>
+                <xsl:with-param name="group"/>
+              </xsl:call-template>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.author">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="lastfirst.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'lastfirst.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="name($node)!='corpauthor'">
+      <span style="text-transform:uppercase">
+        <xsl:apply-templates mode="iso690.mode" select="$node//surname[1]"/>
+      </span>
+      <xsl:if test="$node//surname and $node//firstname">
+        <xsl:value-of select="$lastfirst.sep"/>
+      </xsl:if>
+      <xsl:apply-templates mode="iso690.mode" select="$node//firstname[1]"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <span style="text-transform:uppercase">
+        <xsl:apply-templates mode="iso690.mode" select="$node"/>
+      </span>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="corpauthor|firstname|surname" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Title and Type of medium -->
+<xsl:template name="iso690.title">
+  <xsl:param name="medium" select="./bibliomisc[@role='medium']"/>
+  <xsl:param name="italic" select="1"/>
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'title.sep'"/></xsl:call-template>
+  </xsl:param>
+
+  <xsl:apply-templates mode="iso690.mode" select="./title">
+    <xsl:with-param name="medium" select="$medium"/>
+    <xsl:with-param name="italic" select="$italic"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="title" mode="iso690.mode">
+  <xsl:param name="medium"/>
+  <xsl:param name="italic" select="1"/>
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'title.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="medium1">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'medium1'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="medium2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'medium2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="$italic=1">
+      <xsl:call-template name="iso690.italic.title"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.make.title"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="$medium">
+    <xsl:value-of select="$medium1"/>
+    <xsl:apply-templates mode="iso690.mode" select="$medium"/>
+    <xsl:value-of select="$medium2"/>
+  </xsl:if>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="concat(string(.),string(../subtitle))"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="iso690.italic.title">
+  <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+    <xsl:call-template name="iso690.make.title"/>
+  </em>
+</xsl:template>
+
+<xsl:template name="iso690.make.title">
+  <xsl:param name="submaintitle.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'submaintitle.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:if test="../subtitle|../info/subtitle">
+    <xsl:value-of select="$submaintitle.sep"/>
+    <xsl:apply-templates mode="iso690.mode" select="../subtitle|../info/subtitle"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='medium']" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Subordinate responsibility -->
+<xsl:template name="iso690.secondary">
+  <xsl:param name="secondary.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'secondary.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="secondary.person.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'secondary.person.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:for-each select="./bibliomisc[@role='secondary']">
+    <xsl:apply-templates mode="iso690.mode" select="."/>
+    <xsl:choose>
+      <xsl:when test="position()=count(../bibliomisc[@role='secondary'])">
+        <xsl:call-template name="iso690.endsep">
+          <xsl:with-param name="text" select="string(.)"/>
+          <xsl:with-param name="sep" select="$secondary.sep"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$secondary.person.sep"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='secondary']" mode="iso690.mode">
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Edition -->
+<xsl:template name="iso690.edition">
+  <xsl:param name="after"/>
+  <xsl:param name="edition.serial.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'edition.serial.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="string($after)!=''">
+      <xsl:apply-templates mode="iso690.mode" select="./edition">
+        <xsl:with-param name="sep" select="$edition.serial.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./edition"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="edition" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'edition.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Issue designation (date and/or num) -->
+<xsl:template name="iso690.issuing">
+  <xsl:param name="issuing.div">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.div'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.range">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.range'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum[2] and ./issuenum[2]">
+      <xsl:call-template name="iso690.issuedate"/>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[1]">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum[1]">
+        <xsl:with-param name="sep" select="$issuing.range"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[2]">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum[2]">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum[2]">
+      <xsl:call-template name="iso690.issuedate"/>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[1]">
+        <xsl:with-param name="sep" select="$issuing.range"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum[2]">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum and ./issuenum">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pubdate[@role='issuing']">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./volumenum">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./issuenum">
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+        <xsl:with-param name="sep" select="$issuing.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.issuedate">
+  <xsl:param name="issuing.div">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.div'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.range">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.range'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="issuing.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./pubdate[@role='issuing'][2]">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing'][1]">
+        <xsl:with-param name="sep" select="$issuing.range"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing'][2]">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']">
+        <xsl:with-param name="sep" select="$issuing.div"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="pubdate[@role='issuing']" mode="iso690.mode">
+  <xsl:param name="sep"/>
+  <xsl:variable name="substr" select="substring(string(.),string-length(string(.)))"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.space">
+    <xsl:with-param name="text" select="$substr"/>
+  </xsl:call-template>
+  <xsl:choose>
+    <xsl:when test="$substr='-'">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="' '"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(.)"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Numeration of the part -->
+<xsl:template name="iso690.partnr">
+  <xsl:param name="partnr.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'partnr.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+    <xsl:with-param name="sep" select="$partnr.sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation -->
+<xsl:template name="iso690.pub">
+  <xsl:param name="onlydate" select="0"/>
+  <xsl:param name="placesep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'placepubl.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="pubsep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'publyear.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="endsep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'pubinfo.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="(./publisher/publishername|./publishername|./publisher/address/city)and($onlydate=0)and(./pubdate[not(@role='issuing')]|./copyright/year|./date[@role='upd']|./date[@role='upd'])">
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/address/city">
+        <xsl:with-param name="sep" select="$placesep"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/publishername|./publishername">
+        <xsl:with-param name="sep" select="$pubsep"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]|./copyright/year">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:apply-templates>
+      <xsl:if test="not(./pubdate[not(@role='issuing')]|./copyright/year)">
+        <xsl:call-template name="iso690.data">
+          <xsl:with-param name="sep" select="$endsep"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="(./publisher/publishername|./publishername)and(./publisher/address/city)and($onlydate=0)">
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/address/city">
+        <xsl:with-param name="sep" select="$placesep"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates mode="iso690.mode" select="./publisher/publishername|./publishername">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="($onlydate=1)or(./pubdate[not(@role='issuing')]|./copyright/year)">
+      <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]|./copyright/year">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:apply-templates>
+      <xsl:if test="$onlydate=1">
+        <xsl:call-template name="iso690.location">
+          <xsl:with-param name="onlypages" select="1"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="not(./pubdate[not(@role='issuing')]|./copyright/year)">
+      <xsl:call-template name="iso690.data">
+        <xsl:with-param name="sep" select="$endsep"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.paper.pub">
+  <xsl:param name="spec.pubinfo.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'spec.pubinfo.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./volumnum|./issuenum|./pagenums">
+      <xsl:call-template name="iso690.pub">
+        <xsl:with-param name="endsep" select="$spec.pubinfo.sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.pub"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.data">
+  <xsl:param name="sep"/>
+  <xsl:param name="datecit2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./date[@role='upd']">
+    <xsl:with-param name="sep"/>
+  </xsl:apply-templates>
+  <xsl:apply-templates mode="iso690.mode" select="./date[@role='cit']"/>
+  <xsl:choose>
+    <xsl:when test="./date[@role='cit']">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="$datecit2"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="./date[@role='upd']">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(./date[@role='upd'])"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="publisher/address/city|publishername" mode="iso690.mode">
+  <xsl:param name="sep"/>
+  <xsl:param name="upd" select="0"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="pubdate|copyright/year" mode="iso690.mode">
+  <xsl:param name="sep"/>
+  <xsl:param name="upd" select="1"/>
+  <xsl:param name="datecit2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:variable name="substr" select="substring(string(.),string-length(string(.)))"/>
+  <xsl:if test="name(.)!='pubdate'">
+    <xsl:value-of select="'&#169;'"/><!-- copyright -->
+  </xsl:if>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.space">
+    <xsl:with-param name="text" select="$substr"/>
+  </xsl:call-template>
+  <xsl:if test="$upd!=0">
+    <xsl:choose>
+      <xsl:when test="name(.)='pubdate'">
+        <xsl:apply-templates mode="iso690.mode" select="../date[@role='upd']"/>
+        <xsl:apply-templates mode="iso690.mode" select="../date[@role='cit']"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates mode="iso690.mode" select="../../date[@role='upd']"/>
+        <xsl:apply-templates mode="iso690.mode" select="../../date[@role='cit']"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="../date[@role='cit']|../../date[@role='cit'] and $upd!=0">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="$datecit2"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="../date[@role='upd']|../../date[@role='upd'] and $upd!=0">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(../date[@role='upd'])"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$substr='-'">
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="' '"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="string(.)"/>
+        <xsl:with-param name="sep" select="$sep"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.space">
+  <xsl:param name="text" select="substring(string(.),string-length(string(.)))"/>
+  <xsl:if test="$text='-'">
+    <xsl:value-of select="' '"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- Date of update/revision -->
+<xsl:template match="date[@role='upd']" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'upd.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$sep"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+</xsl:template>
+
+<!-- Date of citation -->
+<xsl:template match="date[@role='cit']" mode="iso690.mode">
+  <xsl:param name="datecit1">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit1'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="datecit2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$datecit1"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$datecit2"/>
+</xsl:template>
+
+<!-- Extent -->
+<xsl:template name="iso690.extent">
+  <xsl:param name="extent.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'extent.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./pagenums">
+    <xsl:with-param name="sep" select="$extent.sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Location within host -->
+<xsl:template name="iso690.part.location">
+  <xsl:param name="location.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./pagenums">
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']"/>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='sectitle']"/>
+      <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+    </xsl:when>
+    <xsl:when test="./bibliomisc[@role='sectitle']">
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']"/>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='sectitle']">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.article.location">
+  <xsl:param name="location.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="locs.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="not(./date[@role='upd']|./date[@role='cit'])">
+      <xsl:choose>
+        <xsl:when test="./volumenum|./issuenum|./pagenums">
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="upd" select="0"/>
+            <xsl:with-param name="sep" select="$locs.sep"/>
+          </xsl:apply-templates>
+          <xsl:call-template name="iso690.location"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="sep" select="$location.sep"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="./volumenum|./issuenum|./pagenums">
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="upd" select="0"/>
+            <xsl:with-param name="sep" select="$locs.sep"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+            <xsl:with-param name="upd" select="0"/>
+            <xsl:with-param name="sep" select="$location.sep"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:choose>
+        <xsl:when test="./issuenum">
+          <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+          <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+            <xsl:with-param name="sep"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+            <xsl:with-param name="sep"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:choose>
+        <xsl:when test="./pagenums">
+          <xsl:call-template name="iso690.data">
+            <xsl:with-param name="sep" select="$locs.sep"/>
+          </xsl:call-template>
+          <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="iso690.data">
+            <xsl:with-param name="sep" select="$location.sep"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="iso690.location">
+  <xsl:param name="location.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="./volumenum and not(./issuenum) and not(./pagenums)">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./issuenum and not(./pagenums)">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum">
+        <xsl:with-param name="sep" select="$location.sep"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="./pagenums">
+      <xsl:apply-templates mode="iso690.mode" select="./volumenum"/>
+      <xsl:apply-templates mode="iso690.mode" select="./issuenum"/>
+      <xsl:apply-templates mode="iso690.mode" select="./pagenums"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliomisc[@role='secnum']|bibliomisc[@role='sectitle']" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="volumenum|issuenum" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="iso690.mode">
+  <xsl:param name="sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Series -->
+<xsl:template name="iso690.serie">
+  <xsl:apply-templates mode="iso690.mode" select=".//bibliomisc[@role='serie']"/>
+</xsl:template>
+
+<!-- Notes -->
+<xsl:template name="iso690.notice">
+  <xsl:apply-templates mode="iso690.mode" select=".//bibliomisc[not(@role)]"/>
+</xsl:template>
+
+<xsl:template match="bibliomisc[not(@role)]|bibliomisc[@role='serie']" mode="iso690.mode">
+  <xsl:param name="notice.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'notice.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:call-template name="iso690.endsep">
+    <xsl:with-param name="text" select="string(.)"/>
+    <xsl:with-param name="sep" select="$notice.sep"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Avaibility and access -->
+<xsl:template name="iso690.access">
+  <xsl:for-each select="./biblioid[@class='uri']|./bibliomisc[@role='access']">
+    <xsl:choose>
+      <xsl:when test="position()=1">
+        <xsl:apply-templates mode="iso690.mode" select="."/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates mode="iso690.mode" select=".">
+          <xsl:with-param name="firstacc" select="0"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="biblioid[@class='uri']/ulink|bibliomisc[@role='access']/ulink" mode="iso690.mode">
+  <xsl:param name="link1">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'link1'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="link2">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'link2'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$link1"/>
+  <xsl:call-template name="ulink"/>
+  <xsl:value-of select="$link2"/>
+</xsl:template>
+
+<xsl:template match="biblioid[@class='uri']|bibliomisc[@role='access']" mode="iso690.mode">
+  <xsl:param name="firstacc" select="1"/>
+  <xsl:param name="access">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="acctoo">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'acctoo'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="onwww">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'onwww'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="oninet">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'oninet'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="access.end">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access.end'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="access.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="$firstacc=1">
+      <xsl:value-of select="$access"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$acctoo"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="(./ulink)and(string(./ulink)=string(.))">
+      <xsl:choose>
+        <xsl:when test="(starts-with(./ulink/@url,'http://')or(starts-with(./ulink/@url,'https://')))">
+          <xsl:value-of select="$onwww"/>
+          <xsl:value-of select="$access.end"/>
+          <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$oninet"/>
+          <xsl:value-of select="$access.end"/>
+          <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="(./ulink)and(string(./ulink)!=string(.))">
+      <xsl:value-of select="text()[1]"/>
+      <xsl:call-template name="iso690.endsep">
+        <xsl:with-param name="text" select="text()[1]"/>
+        <xsl:with-param name="sep" select="$access.end"/>
+      </xsl:call-template>
+      <xsl:apply-templates mode="iso690.mode" select="./ulink"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$access.sep"/>
+</xsl:template>
+
+<!-- Standard number - ISBN -->
+<xsl:template name="iso690.isbn">
+  <xsl:choose>
+    <xsl:when test="./biblioid/@class='isbn'">
+      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='isbn']"/>
+    </xsl:when>
+    <xsl:when test="./isbn">
+      <xsl:apply-templates mode="iso690.mode" select="./isbn"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="isbn|biblioid[@class='isbn']" mode="iso690.mode">
+  <xsl:param name="isbn">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'isbn'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="stdnum.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'stdnum.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$isbn"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$stdnum.sep"/>
+</xsl:template>
+
+<!-- Standard number - ISSN -->
+<xsl:template name="iso690.issn">
+  <xsl:choose>
+    <xsl:when test="./biblioid/@class='issn'">
+      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='issn']"/>
+    </xsl:when>
+    <xsl:when test="./issn">
+      <xsl:apply-templates mode="iso690.mode" select="./issn"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="issn|biblioid[@class='issn']" mode="iso690.mode">
+  <xsl:param name="issn">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issn'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:param name="stdnum.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'stdnum.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:value-of select="$issn"/>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$stdnum.sep"/>
+</xsl:template>
+
+<!-- Identification of patent document -->
+<xsl:template name="iso690.pat.ident">
+  <xsl:param name="patdate.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patdate.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode" select="./address/country"/>
+  <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='patenttype']"/>
+  <xsl:choose>
+    <xsl:when test="./biblioid[@class='other' and @otherclass='patentnum']">
+      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='other' and @otherclass='patentnum']"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='patentnum']"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]">
+    <xsl:with-param name="sep" select="$patdate.sep"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Country or issuing office -->
+<xsl:template match="address/country" mode="iso690.mode">
+  <xsl:param name="patcountry.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patcountry.sep'"/></xsl:call-template>
+  </xsl:param>
+  <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+    <xsl:apply-templates mode="iso690.mode"/>
+  </em>
+  <xsl:value-of select="$patcountry.sep"/>
+</xsl:template>
+
+<!-- Kind of patent document -->
+<xsl:template match="bibliomisc[@role='patenttype']" mode="iso690.mode">
+  <xsl:param name="pattype.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'pattype.sep'"/></xsl:call-template>
+  </xsl:param>
+  <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+    <xsl:apply-templates mode="iso690.mode"/>
+  </em>
+  <xsl:value-of select="$pattype.sep"/>
+</xsl:template>
+
+<!-- Number -->
+<xsl:template match="biblioid[@class='other' and @otherclass='patentnum']|bibliomisc[@role='patentnum']" mode="iso690.mode">
+  <xsl:param name="patnum.sep">
+    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patnum.sep'"/></xsl:call-template>
+  </xsl:param>
+  <xsl:apply-templates mode="iso690.mode"/>
+  <xsl:value-of select="$patnum.sep"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Supplementary templates -->
+
+<xsl:template name="iso690.endsep">
+  <xsl:param name="text"/>
+  <xsl:param name="sep" select=". "/>
+  <xsl:choose>
+    <xsl:when test="substring($text,string-length($text))!=substring($sep,1,1)">
+      <xsl:value-of select="$sep"/>
+    </xsl:when>
+    <xsl:when test="substring($text,string-length($text))=' '">
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="' '"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="iso690.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/biblio.xsl b/applications/content/template/docbook/xhtml/biblio.xsl
new file mode 100644
index 0000000..2387a8e
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/biblio.xsl
@@ -0,0 +1,1369 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliography">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="bibliography.titlepage"/>
+
+    <xsl:apply-templates/>
+
+    <xsl:if test="not(parent::article)">
+      <xsl:call-template name="process.footnotes"/>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="bibliography/bibliographyinfo"/>
+<xsl:template match="bibliography/info"/>
+<xsl:template match="bibliography/title"/>
+<xsl:template match="bibliography/subtitle"/>
+<xsl:template match="bibliography/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliodiv">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="bibliodiv/title">
+  <h3>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliolist">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="blockinfo/title|info/title|title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+    <xsl:apply-templates select="*[not(self::blockinfo)                                    and not(self::info)                                    and not(self::title)                                    and not(self::titleabbrev)                                    and not(self::biblioentry)                                    and not(self::bibliomixed)]"/>
+    <xsl:apply-templates select="biblioentry|bibliomixed"/>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="biblioentry">
+  <xsl:param name="label">
+    <xsl:call-template name="biblioentry.label"/>
+  </xsl:param>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string(.) = ''">
+      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+      <xsl:variable name="entry" select="$bib/bibliography//                                          *[@id=$id or @xml:id=$id][1]"/>
+      <xsl:choose>
+        <xsl:when test="$entry">
+          <xsl:choose>
+            <xsl:when test="$bibliography.numbered != 0">
+              <xsl:apply-templates select="$entry">
+                <xsl:with-param name="label" select="$label"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="$entry"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>No bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </xsl:message>
+          <div>
+            <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="anchor"/>
+            <p>
+              <xsl:copy-of select="$label"/>
+              <xsl:text>Error: no bibliography entry: </xsl:text>
+              <xsl:value-of select="$id"/>
+              <xsl:text> found in </xsl:text>
+              <xsl:value-of select="$bibliography.collection"/>
+            </p>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <p>
+          <xsl:copy-of select="$label"/>
+	  <xsl:choose>
+	    <xsl:when test="$bibliography.style = 'iso690'">
+	      <xsl:call-template name="iso690.makecitation"/>
+	    </xsl:when>
+	    <xsl:otherwise>
+	      <xsl:apply-templates mode="bibliography.mode"/>
+	    </xsl:otherwise>
+	  </xsl:choose>
+        </p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliomixed">
+  <xsl:param name="label">
+    <xsl:call-template name="biblioentry.label"/>
+  </xsl:param>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string(.) = ''">
+      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+      <xsl:variable name="entry" select="$bib/bibliography//                                          *[@id=$id or @xml:id=$id][1]"/>
+      <xsl:choose>
+        <xsl:when test="$entry">
+          <xsl:choose>
+            <xsl:when test="$bibliography.numbered != 0">
+              <xsl:apply-templates select="$entry">
+                <xsl:with-param name="label" select="$label"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="$entry"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>No bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </xsl:message>
+          <div>
+            <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="anchor"/>
+            <p>
+              <xsl:copy-of select="$label"/>
+              <xsl:text>Error: no bibliography entry: </xsl:text>
+              <xsl:value-of select="$id"/>
+              <xsl:text> found in </xsl:text>
+              <xsl:value-of select="$bibliography.collection"/>
+            </p>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <p>
+          <xsl:call-template name="common.html.attributes"/>
+          <xsl:copy-of select="$label"/>
+          <xsl:apply-templates mode="bibliomixed.mode"/>
+        </p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="biblioentry.label">
+  <xsl:param name="node" select="."/>
+
+  <xsl:choose>
+    <xsl:when test="$bibliography.numbered != 0">
+      <xsl:text>[</xsl:text>
+      <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($node/child::*[1]) = 'abbrev'">
+      <xsl:text>[</xsl:text>
+      <xsl:apply-templates select="$node/abbrev[1]"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="$node/@xreflabel">
+      <xsl:text>[</xsl:text>
+      <xsl:value-of select="$node/@xreflabel"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="$node/@id">
+      <xsl:text>[</xsl:text>
+      <xsl:value-of select="$node/@id"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:when test="$node/@xml:id">
+      <xsl:text>[</xsl:text>
+      <xsl:value-of select="$node/@xml:id"/>
+      <xsl:text>] </xsl:text>
+    </xsl:when>
+    <xsl:otherwise><!-- nop --></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliography.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliography.mode">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="address" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artheader|articleinfo|info" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <xsl:when test="orgname">
+        <xsl:apply-templates select="orgname" mode="bibliography.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="person.name"/>
+        <xsl:copy-of select="$biblioentry.item.separator"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="person.name.list"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="biblioset/title|biblioset/citetitle" mode="bibliography.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article' or @pubwork='article'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:apply-templates/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></em>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:copy-of select="$biblioentry.item.separator"/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="citetitle" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <xsl:when test="@pubwork = 'article'">
+        <xsl:call-template name="gentext.startquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.endquote"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inline.italicseq"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="collabname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confdates" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confnum" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confsponsor" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="copyright" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <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:apply-templates select="year" mode="bibliography.mode"/>
+    <xsl:if test="holder">
+      <xsl:call-template name="gentext.space"/>
+      <xsl:apply-templates select="holder" mode="bibliography.mode"/>
+    </xsl:if>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="year" mode="bibliography.mode">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="corpauthor" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="person.name"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliography.mode">
+  <!-- suppressed; how could this be represented? -->
+</xsl:template>
+
+<xsl:template match="seriesinfo" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates mode="bibliography.mode"/></em>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:copy-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- See FR #1934434 and http://doi.org -->
+<xsl:template match="biblioid[@class='doi']" mode="bibliography.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <a href="{concat('http://dx.doi.org/', .)}">doi:<xsl:value-of select="."/></a>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliomixed.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliomixed.mode">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="address" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <xsl:when test="orgname">
+        <xsl:apply-templates select="orgname" mode="bibliomixed.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="person.name"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bibliomset" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomset/title|bibliomset/citetitle" mode="bibliomixed.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article' or @pubwork='article'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:apply-templates/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></em>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <xsl:when test="@pubwork = 'article'">
+        <xsl:call-template name="gentext.startquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.endquote"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inline.italicseq"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+
+<xsl:template match="collab" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="copyright" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliomixed.mode">
+  <!-- suppressed; how could this be represented? -->
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<!-- See FR #1934434 and http://doi.org -->
+<xsl:template match="biblioid[@class='doi']" mode="bibliomixed.mode">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <a href="{concat('http://dx.doi.org/', .)}">doi:<xsl:value-of select="."/></a>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/block.xsl b/applications/content/template/docbook/xhtml/block.xsl
new file mode 100644
index 0000000..aa764d0
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/block.xsl
@@ -0,0 +1,567 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- What should we do about styling blockinfo? -->
+
+<xsl:template match="blockinfo|info">
+  <!-- suppress -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="block.object">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="para">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class">
+      <xsl:if test="@role and $para.propagates.style != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:if>
+    </xsl:with-param>
+    <xsl:with-param name="content">
+      <xsl:if test="position() = 1 and parent::listitem">
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="node" select="parent::listitem"/>
+        </xsl:call-template>
+      </xsl:if>
+
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="paragraph">
+  <xsl:param name="class" select="''"/>
+  <xsl:param name="content"/>
+
+  <xsl:variable name="p">
+    <p>
+      <xsl:call-template name="id.attribute"/>
+      <xsl:choose>
+        <xsl:when test="$class != ''">
+          <xsl:call-template name="common.html.attributes">
+            <xsl:with-param name="class" select="$class"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="common.html.attributes">
+            <xsl:with-param name="class" select="''"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:copy-of select="$content"/>
+    </p>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$html.cleanup != 0">
+      <xsl:call-template name="unwrap.p">
+        <xsl:with-param name="p" select="$p"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$p"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="simpara">
+  <!-- see also listitem/simpara in lists.xsl -->
+  <p>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="locale.html.attributes"/>
+    <xsl:if test="@role and $para.propagates.style != 0">
+      <xsl:apply-templates select="." mode="class.attribute">
+        <xsl:with-param name="class" select="@role"/>
+      </xsl:apply-templates>
+    </xsl:if>
+
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="formalpara">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class">
+      <xsl:if test="@role and $para.propagates.style != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:if>
+    </xsl:with-param>
+    <xsl:with-param name="content">
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Only use title from info -->
+<xsl:template match="formalpara/info">
+  <xsl:apply-templates select="title"/>
+</xsl:template>
+
+<xsl:template match="formalpara/title|formalpara/info/title">
+  <xsl:variable name="titleStr">
+      <xsl:apply-templates/>
+  </xsl:variable>
+  <xsl:variable name="lastChar">
+    <xsl:if test="$titleStr != ''">
+      <xsl:value-of select="substring($titleStr,string-length($titleStr),1)"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <span class="formalpara-title">
+        <xsl:copy-of select="$titleStr"/>
+        <xsl:if test="$lastChar != ''                       and not(contains($runinhead.title.end.punct, $lastChar))">
+          <xsl:value-of select="$runinhead.default.title.end.punct"/>
+        </xsl:if>
+        <xsl:text>&#160;</xsl:text>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+        <xsl:copy-of select="$titleStr"/>
+        <xsl:if test="$lastChar != ''                       and not(contains($runinhead.title.end.punct, $lastChar))">
+          <xsl:value-of select="$runinhead.default.title.end.punct"/>
+        </xsl:if>
+        <xsl:text>&#160;</xsl:text>
+      </strong>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="formalpara/para">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="blockquote">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:choose>
+      <xsl:when test="attribution">
+        <table border="{$table.border.off}" class="blockquote">
+          <xsl:if test="$css.decoration != 0">
+            <xsl:attribute name="style">
+              <xsl:text>width: 100%; cellspacing: 0; cellpadding: 0;</xsl:text>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:if test="$div.element != 'section'">
+            <xsl:attribute name="summary">Block quote</xsl:attribute>
+          </xsl:if>
+          <tr>
+            <td width="10%" valign="top">&#160;</td>
+            <td width="80%" valign="top">
+              <xsl:apply-templates select="child::*[local-name(.)!='attribution']"/>
+            </td>
+            <td width="10%" valign="top">&#160;</td>
+          </tr>
+          <tr>
+            <td width="10%" valign="top">&#160;</td>
+            <td colspan="2" align="{$direction.align.end}" valign="top">
+              <xsl:text>--</xsl:text>
+              <xsl:apply-templates select="attribution"/>
+            </td>
+          </tr>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <blockquote>
+          <xsl:call-template name="common.html.attributes"/>
+          <xsl:apply-templates/>
+        </blockquote>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="blockquote/title|blockquote/info/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="blockquote-title">
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <div class="blockquote-title">
+        <p>
+          <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+            <xsl:apply-templates/>
+          </strong>
+        </p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Use an em dash per Chicago Manual of Style and https://sourceforge.net/tracker/index.php?func=detail&aid=2793878&group_id=21935&atid=373747 -->
+<xsl:template match="epigraph">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates select="para|simpara|formalpara|literallayout"/>
+    <xsl:if test="attribution">
+      <div class="attribution">
+        <span>&#8212;<xsl:apply-templates select="attribution"/></span>
+      </div>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="attribution">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="abstract|sidebar">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="sidebar.titlepage"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="abstract/title|sidebar/title">
+</xsl:template>
+
+<xsl:template match="sidebar/sidebarinfo|sidebar/info"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="msgset">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgentry">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="simplemsgentry">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msg">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgmain">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgmain/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <span class="msgmain-title">
+        <xsl:apply-templates/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></strong>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgsub">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgsub/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <span class="msgsub-title">
+        <xsl:apply-templates/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></strong>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgrel">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgrel/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <span class="msgrel-title">
+        <xsl:apply-templates/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></strong>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgtext">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msginfo">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msglevel">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="msglevel">
+        <span class="msglevel-title">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgLevel'"/>
+          </xsl:call-template>
+        </span>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgLevel'"/>
+          </xsl:call-template>
+        </strong>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgorig">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="msgorig">
+        <span class="msgorig-title">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgOrig'"/>
+          </xsl:call-template>
+        </span>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgOrig'"/>
+          </xsl:call-template>
+        </strong>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgaud">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="msgaud">
+        <span class="msgaud-title">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgAud'"/>
+          </xsl:call-template>
+        </span>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'msgset'"/>
+            <xsl:with-param name="name" select="'MsgAud'"/>
+          </xsl:call-template>
+        </strong>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="msgexplan">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgexplan/title">
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <div class="msgexplan">
+        <span class="msgexplan-title">
+          <xsl:apply-templates/>
+        </span>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:apply-templates/>
+        </strong>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="revhistory">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <table>
+      <xsl:if test="$css.decoration != 0">
+        <xsl:attribute name="style">
+          <xsl:text>border-style:solid; width:100%;</xsl:text>
+        </xsl:attribute>
+      </xsl:if>
+      <!-- include summary attribute if not HTML5 -->
+      <xsl:if test="$div.element != 'section'">
+        <xsl:attribute name="summary">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key">revhistory</xsl:with-param>
+          </xsl:call-template>
+        </xsl:attribute>
+      </xsl:if>
+      <tr>
+        <th align="{$direction.align.start}" valign="top" colspan="3">
+          <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'RevHistory'"/>
+            </xsl:call-template>
+          </strong>
+        </th>
+      </tr>
+      <xsl:apply-templates/>
+    </table>
+  </div>
+</xsl:template>
+
+<xsl:template match="revhistory/revision">
+  <xsl:variable name="revnumber" select="revnumber"/>
+  <xsl:variable name="revdate" select="date"/>
+  <xsl:variable name="revauthor" select="authorinitials|author"/>
+  <xsl:variable name="revremark" select="revremark|revdescription"/>
+  <tr>
+    <td align="{$direction.align.start}">
+      <xsl:if test="$revnumber">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'Revision'"/>
+        </xsl:call-template>
+        <xsl:call-template name="gentext.space"/>
+        <xsl:apply-templates select="$revnumber"/>
+      </xsl:if>
+    </td>
+    <td align="{$direction.align.start}">
+      <xsl:apply-templates select="$revdate"/>
+    </td>
+    <xsl:choose>
+      <xsl:when test="count($revauthor)=0">
+        <td align="{$direction.align.start}">
+          <xsl:call-template name="dingbat">
+            <xsl:with-param name="dingbat">nbsp</xsl:with-param>
+          </xsl:call-template>
+        </td>
+      </xsl:when>
+      <xsl:otherwise>
+        <td align="{$direction.align.start}">
+          <xsl:for-each select="$revauthor">
+            <xsl:apply-templates select="."/>
+            <xsl:if test="position() != last()">
+              <xsl:text>, </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </td>
+      </xsl:otherwise>
+    </xsl:choose>
+  </tr>
+  <xsl:if test="$revremark">
+    <tr>
+      <td align="{$direction.align.start}" colspan="3">
+        <xsl:apply-templates select="$revremark"/>
+      </td>
+    </tr>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/date">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials">
+  <xsl:text>, </xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials[1]" priority="2">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revremark">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="ackno|acknowledgements[parent::article]">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="highlights">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/callout.xsl b/applications/content/template/docbook/xhtml/callout.xsl
new file mode 100644
index 0000000..9216ffb
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/callout.xsl
@@ -0,0 +1,209 @@
+<?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:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim" xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim" xmlns:lxslt="http://xml.apache.org/xslt" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="sverb xverb lxslt" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xverb" functions="insertCallouts"/>
+
+<xsl:template match="programlistingco|screenco">
+  <xsl:variable name="verbatim" select="programlisting|screen"/>
+
+  <xsl:choose>
+    <xsl:when test="$use.extensions != '0'                     and $callouts.extension != '0'">
+      <xsl:variable name="rtf">
+        <xsl:apply-templates select="$verbatim">
+          <xsl:with-param name="suppress-numbers" select="'1'"/>
+        </xsl:apply-templates>
+      </xsl:variable>
+
+      <xsl:variable name="rtf-with-callouts">
+        <xsl:choose>
+          <xsl:when test="function-available('sverb:insertCallouts')">
+            <xsl:copy-of select="sverb:insertCallouts(areaspec,$rtf)"/>
+          </xsl:when>
+          <xsl:when test="function-available('xverb:insertCallouts')">
+            <xsl:copy-of select="xverb:insertCallouts(areaspec,$rtf)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message terminate="yes">
+              <xsl:text>No insertCallouts function is available.</xsl:text>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$verbatim/@linenumbering = 'numbered'                         and $linenumbering.extension != '0'">
+          <div>
+            <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf-with-callouts"/>
+              <xsl:with-param name="pi.context" select="programlisting|screen"/>
+            </xsl:call-template>
+            <xsl:apply-templates select="calloutlist"/>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <div>
+            <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:copy-of select="$rtf-with-callouts"/>
+            <xsl:apply-templates select="calloutlist"/>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="areaspec|areaset|area">
+</xsl:template>
+
+<xsl:template match="areaset" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="area" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="co" name="co">
+  <!-- Support a single linkend in HTML -->
+  <xsl:variable name="targets" select="key('id', @linkends)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:choose>
+    <xsl:when test="$target">
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <!-- force an id attribute here -->
+            <xsl:if test="@id or @xml:id">
+              <xsl:attribute name="id">
+                <xsl:value-of select="(@id|@xml:id)[1]"/>
+              </xsl:attribute>
+            </xsl:if>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="id.attribute"/>
+          </xsl:otherwise>
+        </xsl:choose>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="." mode="callout-bug"/>
+      </a>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$generate.id.attributes != 0">
+        <xsl:if test="@id or @xml:id">
+          <span>
+             <xsl:attribute name="id">
+                <xsl:value-of select="(@id|@xml:id)[1]"/>
+              </xsl:attribute>
+          </span>
+        </xsl:if>
+      </xsl:if>
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates select="." mode="callout-bug"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="coref">
+  <!-- tricky; this relies on the fact that we can process the "co" that's -->
+  <!-- "over there" as if it were "right here" -->
+
+  <xsl:variable name="co" select="key('id', @linkend)"/>
+  <xsl:choose>
+    <xsl:when test="not($co)">
+      <xsl:message>
+        <xsl:text>Error: coref link is broken: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+      </xsl:message>
+    </xsl:when>
+    <xsl:when test="local-name($co) != 'co'">
+      <xsl:message>
+        <xsl:text>Error: coref doesn't point to a co: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="$co"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="co" mode="callout-bug">
+  <xsl:call-template name="callout-bug">
+    <xsl:with-param name="conum">
+      <xsl:number count="co" level="any" from="programlisting|screen|literallayout|synopsis" format="1"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="callout-bug">
+  <xsl:param name="conum" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$callout.graphics != 0                     and $conum &lt;= $callout.graphics.number.limit">
+      <!-- Added span to make valid in XHTML 1 -->
+      <span><img src="{$callout.graphics.path}{$conum}{$callout.graphics.extension}" alt="{$conum}" border="0"/></span>
+    </xsl:when>
+    <xsl:when test="$callout.unicode != 0                     and $conum &lt;= $callout.unicode.number.limit">
+      <xsl:choose>
+        <xsl:when test="$callout.unicode.start.character = 10102">
+          <xsl:choose>
+            <xsl:when test="$conum = 1">&#10102;</xsl:when>
+            <xsl:when test="$conum = 2">&#10103;</xsl:when>
+            <xsl:when test="$conum = 3">&#10104;</xsl:when>
+            <xsl:when test="$conum = 4">&#10105;</xsl:when>
+            <xsl:when test="$conum = 5">&#10106;</xsl:when>
+            <xsl:when test="$conum = 6">&#10107;</xsl:when>
+            <xsl:when test="$conum = 7">&#10108;</xsl:when>
+            <xsl:when test="$conum = 8">&#10109;</xsl:when>
+            <xsl:when test="$conum = 9">&#10110;</xsl:when>
+            <xsl:when test="$conum = 10">&#10111;</xsl:when>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>Don't know how to generate Unicode callouts </xsl:text>
+            <xsl:text>when $callout.unicode.start.character is </xsl:text>
+            <xsl:value-of select="$callout.unicode.start.character"/>
+          </xsl:message>
+          <xsl:text>(</xsl:text>
+          <xsl:value-of select="$conum"/>
+          <xsl:text>)</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$conum"/>
+      <xsl:text>)</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/changebars.xsl b/applications/content/template/docbook/xhtml/changebars.xsl
new file mode 100644
index 0000000..c0d84e5
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/changebars.xsl
@@ -0,0 +1,78 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<xsl:import href="docbook.xsl"/>
+
+<xsl:param name="show.revisionflag" select="'1'"/>
+
+<xsl:template name="system.head.content">
+<xsl:param name="node" select="."/>
+
+<style type="text/css">
+<xsl:text>
+div.added    { background-color: #ffff99; 
+               text-decoration: underline; }
+div.deleted  { text-decoration: line-through;
+               background-color: #FF7F7F; }
+div.changed  { background-color: #99ff99; }
+div.off      {  }
+
+span.added   { background-color: #ffff99; 
+               text-decoration: underline; }
+span.deleted { text-decoration: line-through;
+               background-color: #FF7F7F; }
+span.changed { background-color: #99ff99; }
+span.off     {  }
+</xsl:text>
+</style>
+</xsl:template>
+
+<xsl:template match="*[@revisionflag]">
+  <xsl:call-template name="block.or.inline.revision"/>
+</xsl:template>
+
+<xsl:template name="block.or.inline.revision">
+  <xsl:param name="revisionflag" select="@revisionflag"/>
+  
+  <xsl:choose>
+    <xsl:when test="local-name(.) = 'para'       or local-name(.) = 'formalpara'       or local-name(.) = 'simpara'       or local-name(.) = 'simplesect'       or local-name(.) = 'section'                           or local-name(.) = 'sect1'       or local-name(.) = 'sect2'       or local-name(.) = 'sect3'       or local-name(.) = 'sect4'       or local-name(.) = 'sect5'       or local-name(.) = 'topic'                           or local-name(.) = 'chapter'       or local-name(.) = 'preface'       or local-name(.) = 'itemizedlist'       or local-name(.) = 'orderedlist'       or local-name(.) = 'variablelist'       or local-name(.) = 'varlistentry'       or local-name(.) = 'informaltable'       or local-name(.) = 'informalexample'       or local-name(.) = 'note'       or local-name(.) = 'example'       or local-name(.) = 'mediaobject'       or local-name(.) = 'sidebar'       or local-name(.) = 'glossary'       or local-name(.) = 'glossentry'                           or local-name(.) = 'bibliography'       or local-name(.) = 'index'                           or local-name(.) = 'appendix'">
+      <div class="{$revisionflag}">
+	<xsl:apply-imports/>
+      </div>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'phrase'       or local-name(.) = 'ulink'       or local-name(.) = 'link'       or local-name(.) = 'olink'       or local-name(.) = 'inlinemediaobject'       or local-name(.) = 'filename'       or local-name(.) = 'literal'       or local-name(.) = 'member'       or local-name(.) = 'term'       or local-name(.) = 'guilabel'       or local-name(.) = 'glossterm'       or local-name(.) = 'sgmltag'       or local-name(.) = 'tag'       or local-name(.) = 'quote'       or local-name(.) = 'emphasis'       or local-name(.) = 'command'       or local-name(.) = 'xref'">
+      <span class="{$revisionflag}">
+	<xsl:apply-imports/>
+      </span>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'listitem'                     or local-name(.) = 'entry'                     or local-name(.) = 'title'">
+      <!-- nop; these are handled directly in the stylesheet -->
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Revisionflag on unexpected element: </xsl:text>
+	<xsl:value-of select="local-name(.)"/>
+	<xsl:text> (Assuming block)</xsl:text>
+      </xsl:message>
+      <div class="{$revisionflag}">
+	<xsl:apply-imports/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/chunk-changebars.xsl b/applications/content/template/docbook/xhtml/chunk-changebars.xsl
new file mode 100644
index 0000000..90adc3d
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/chunk-changebars.xsl
@@ -0,0 +1,96 @@
+<?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:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl cf">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This file is a variant of chunk.xsl, to be used for generating chunked 
+     output with highlighting based on change markup. -->
+
+<xsl:import href="changebars.xsl"/>
+<xsl:import href="chunk-common.xsl"/>
+
+<!-- This customization of "process-chunk-element" is needed in order to make change 
+     highlighting be inherited by chunked children of an element with change markup. -->
+<xsl:template name="process-chunk-element">
+  <xsl:param name="content">
+    <xsl:choose>
+
+      <xsl:when test="ancestor-or-self::*[@revisionflag] and $show.revisionflag != 0">
+	<xsl:variable name="revisionflag" select="ancestor-or-self::*[@revisionflag][1]/@revisionflag"/>
+	<xsl:call-template name="block.or.inline.revision">
+	  <xsl:with-param name="revisionflag" select="$revisionflag"/>
+	</xsl:call-template>
+      </xsl:when>
+
+      <xsl:otherwise>
+	<xsl:apply-imports/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$chunk.fast != 0 and $exsl.node.set.available != 0">
+      <xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/>
+      <xsl:variable name="genid" select="generate-id()"/>
+
+      <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/>
+
+      <xsl:variable name="prevdiv" select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/>
+      <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/>
+
+      <xsl:variable name="nextdiv" select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/>
+      <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and parent::*">
+          <xsl:copy-of select="$content"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="process-chunk">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and not(parent::*)">
+          <xsl:call-template name="chunk-all-sections">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$onechunk != 0">
+          <xsl:copy-of select="$content"/>
+        </xsl:when>
+        <xsl:when test="$chunk.first.sections = 0">
+          <xsl:call-template name="chunk-first-section-with-parent">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="chunk-all-sections">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:include href="chunk-code.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/chunk-code.xsl b/applications/content/template/docbook/xhtml/chunk-code.xsl
new file mode 100644
index 0000000..6269232
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/chunk-code.xsl
@@ -0,0 +1,658 @@
+<?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:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="exsl cf ng db" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="chunk-filename">
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="fn">
+    <xsl:apply-templates select="." mode="recursive-chunk-filename"/>
+  </xsl:variable>
+
+  <!--
+  <xsl:message>
+    <xsl:value-of select="$ischunk"/>
+    <xsl:text> (</xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text>) </xsl:text>
+    <xsl:value-of select="$fn"/>
+    <xsl:text>, </xsl:text>
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:message>
+  -->
+
+  <!-- 2003-11-25 by ndw:
+       The following test used to read test="$ischunk != 0 and $fn != ''"
+       I've removed the ischunk part of the test so that href.to.uri and
+       href.from.uri will be fully qualified even if the source or target
+       isn't a chunk. I *think* that if $fn != '' then it's appropriate
+       to put the directory on the front, even if the element isn't a
+       chunk. I could be wrong. -->
+
+  <xsl:if test="$fn != ''">
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:if>
+
+  <xsl:value-of select="$chunked.filename.prefix"/>
+
+  <xsl:value-of select="$fn"/>
+  <!-- You can't add the html.ext here because dbhtml filename= may already -->
+  <!-- have added it. It really does have to be handled in the recursive template -->
+</xsl:template>
+
+<xsl:template match="*" mode="recursive-chunk-filename">
+  <xsl:param name="recursive" select="false()"/>
+
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="dbhtml-filename">
+    <xsl:call-template name="pi.dbhtml_filename"/>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="$dbhtml-filename != ''">
+        <xsl:value-of select="$dbhtml-filename"/>
+      </xsl:when>
+      <!-- if this is the root element, use the root.filename -->
+      <xsl:when test="not(parent::*) and $root.filename != ''">
+        <xsl:value-of select="$root.filename"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <!-- Special case -->
+      <xsl:when test="self::legalnotice and not($generate.legalnotice.link = 0)">
+        <xsl:choose>
+          <xsl:when test="(@id or @xml:id) and not($use.id.as.filename = 0)">
+            <!-- * if this legalnotice has an ID, then go ahead and use -->
+            <!-- * just the value of that ID as the basename for the file -->
+            <!-- * (that is, without prepending an "ln-" too it) -->
+            <xsl:value-of select="(@id|@xml:id)[1]"/>
+            <xsl:value-of select="$html.ext"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- * otherwise, if this legalnotice does not have an ID, -->
+            <!-- * then we generate an ID... -->
+            <xsl:variable name="id">
+              <xsl:call-template name="object.id"/>
+            </xsl:variable>
+            <!-- * ...and then we take that generated ID, prepend an -->
+            <!-- * "ln-" to it, and use that as the basename for the file -->
+            <xsl:value-of select="concat('ln-',$id,$html.ext)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <!-- if there's no dbhtml filename, and if we're to use IDs as -->
+      <!-- filenames, then use the ID to generate the filename. -->
+      <xsl:when test="(@id or @xml:id) and $use.id.as.filename != 0">
+        <xsl:value-of select="(@id|@xml:id)[1]"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </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="recursive-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:value-of select="$filename"/>
+    </xsl:when>
+
+    <xsl:when test="self::set">
+      <xsl:value-of select="$root.filename"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::book">
+      <xsl:text>bk</xsl:text>
+      <xsl:number level="any" format="01"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::article">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ar</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::preface">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>pr</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::chapter">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ch</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::appendix">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ap</xsl:text>
+      <xsl:number level="any" format="a" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::part">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>pt</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::reference">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>rn</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::refentry">
+      <xsl:choose>
+        <xsl:when test="parent::reference">
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="/set">
+            <!-- in a set, make sure we inherit the right book info... -->
+            <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+              <xsl:with-param name="recursive" select="true()"/>
+            </xsl:apply-templates>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>re</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::colophon">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>co</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::sect1                     or self::sect2                     or self::sect3                     or self::sect4                     or self::sect5                     or self::section">
+      <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+        <xsl:with-param name="recursive" select="true()"/>
+      </xsl:apply-templates>
+      <xsl:text>s</xsl:text>
+      <xsl:number format="01"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::bibliography">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>bi</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::glossary">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>go</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::index">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>ix</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::setindex">
+      <xsl:text>si</xsl:text>
+      <xsl:number level="any" format="01" from="set"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::topic">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>to</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </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>
+
+<!-- ==================================================================== -->
+
+
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="find.chunks">
+  <xsl:variable name="chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$chunk != 0">
+      <cf:div id="{generate-id()}">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:apply-templates select="*" mode="find.chunks"/>
+      </cf:div>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="*" mode="find.chunks"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Leave legalnotice chunk out of the list for Next and Prev -->
+<xsl:template match="legalnotice" mode="find.chunks"/>
+
+<xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+	 stylesheets for DocBook5 if you don't want to use this feature.-->
+    <xsl:when test="$exsl.node.set.available != 0                      and (*/self::ng:* or */self::db:*)">
+
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+
+      <xsl:apply-templates select="exsl:node-set($no.namespace)"/>
+    </xsl:when>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="*/self::ng:* or */self::db:*">
+      <xsl:message terminate="yes">
+        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+        <xsl:text> cannot proceed.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count(key('id',$rootid)) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/>
+                </xsl:if>
+                <xsl:if test="$generate.manifest != 0">
+                  <xsl:call-template name="generate.manifest">
+                    <xsl:with-param name="node" select="key('id',$rootid)"/>
+                  </xsl:call-template>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="/" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="/" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="/" mode="collect.tex.math"/>
+            </xsl:if>
+            <xsl:if test="$generate.manifest != 0">
+              <xsl:call-template name="generate.manifest">
+                <xsl:with-param name="node" select="/"/>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:apply-templates select="."/>
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |topic                      |reference|refentry                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon">
+  <xsl:choose>
+    <xsl:when test="$onechunk != 0 and parent::*">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not(parent::*)">
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:when>
+    <xsl:when test="$ischunk = 0">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex                      |book/index                      |article/index                      |part/index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. -->
+  <xsl:if test="count(*)&gt;0 or $generate.index != '0'">
+    <xsl:call-template name="process-chunk-element"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- Resolve xml:base attributes -->
+<xsl:template match="@fileref">
+  <!-- need a check for absolute urls -->
+  <xsl:choose>
+    <xsl:when test="contains(., ':')">
+      <!-- it has a uri scheme so it is an absolute uri -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:when test="$keep.relative.image.uris != 0">
+      <!-- leave it alone -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- its a relative uri -->
+      <xsl:call-template name="relative-uri">
+        <xsl:with-param name="destdir">
+          <xsl:call-template name="dbhtml-dir">
+            <xsl:with-param name="context" select=".."/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |topic                      |reference|refentry                      |sect1|sect2|sect3|sect4|sect5                      |section                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon" mode="enumerate-files">
+  <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+  <xsl:if test="$ischunk='1'">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir">
+        <xsl:if test="$manifest.in.base.dir = 0">
+          <xsl:value-of select="$chunk.base.dir"/>
+        </xsl:if>
+      </xsl:with-param>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+  <xsl:apply-templates select="*" mode="enumerate-files"/>
+</xsl:template>
+
+<xsl:template match="book/index|article/index|part/index" mode="enumerate-files">
+  <xsl:if test="$htmlhelp.output != 1">
+    <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+    <xsl:if test="$ischunk='1'">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir">
+          <xsl:if test="$manifest.in.base.dir = 0">
+            <xsl:value-of select="$chunk.base.dir"/>
+          </xsl:if>
+        </xsl:with-param>
+        <xsl:with-param name="base.name">
+          <xsl:apply-templates mode="chunk-filename" select="."/>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>
+</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="*" mode="enumerate-files"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="enumerate-files">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <xsl:if test="$generate.legalnotice.link != 0">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir">
+        <xsl:if test="$manifest.in.base.dir = 0">
+          <xsl:value-of select="$chunk.base.dir"/>
+        </xsl:if>
+      </xsl:with-param>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="mediaobject[imageobject] | inlinemediaobject[imageobject]" mode="enumerate-files">
+  <xsl:variable name="longdesc.uri">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="mediaobject" select="."/>
+
+  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="$mediaobject"/>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="enumerate-files">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/chunk-common.xsl b/applications/content/template/docbook/xhtml/chunk-common.xsl
new file mode 100644
index 0000000..6bdf9a5
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/chunk-common.xsl
@@ -0,0 +1,1606 @@
+<?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:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl cf ng db">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:param name="onechunk" select="0"/>
+<xsl:param name="refentry.separator" select="0"/>
+<xsl:param name="chunk.fast" select="0"/>
+
+<xsl:key name="genid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:variable name="chunk.hierarchy">
+  <xsl:if test="$chunk.fast != 0">
+    <xsl:choose>
+      <!-- Are we handling a docbook5 document? -->
+      <xsl:when test="$exsl.node.set.available != 0                       and (*/self::ng:* or */self::db:*)">
+        <xsl:if test="$chunk.quietly = 0">
+          <xsl:message>Computing stripped namespace chunks...</xsl:message>
+        </xsl:if>
+        <xsl:apply-templates mode="find.chunks" select="exsl:node-set($no.namespace)"/>
+      </xsl:when>
+      <xsl:when test="$exsl.node.set.available != 0">
+        <xsl:if test="$chunk.quietly = 0">
+          <xsl:message>Computing chunks...</xsl:message>
+        </xsl:if>
+
+        <xsl:apply-templates select="/*" mode="find.chunks"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:if test="$chunk.quietly = 0">
+          <xsl:message>
+            <xsl:text>Fast chunking requires exsl:node-set(). </xsl:text>
+            <xsl:text>Using "slow" chunking.</xsl:text>
+          </xsl:message>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:variable>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$chunk.fast != 0 and $exsl.node.set.available != 0">
+      <xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/>
+      <xsl:variable name="genid" select="generate-id()"/>
+
+      <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/>
+
+      <xsl:variable name="prevdiv" select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/>
+      <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/>
+
+      <xsl:variable name="nextdiv" select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/>
+      <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and parent::*">
+          <xsl:copy-of select="$content"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="process-chunk">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and not(parent::*)">
+          <xsl:call-template name="chunk-all-sections">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$onechunk != 0">
+          <xsl:copy-of select="$content"/>
+        </xsl:when>
+        <xsl:when test="$chunk.first.sections = 0">
+          <xsl:call-template name="chunk-first-section-with-parent">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="chunk-all-sections">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process-chunk">
+  <xsl:param name="prev" select="."/>
+  <xsl:param name="next" select="."/>
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunkfn">
+    <xsl:if test="$ischunk='1'">
+      <xsl:apply-templates mode="chunk-filename" select="."/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="$ischunk='0'">
+    <xsl:message>
+      <xsl:text>Error </xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:text> is not a chunk!</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+      <xsl:with-param name="base.name" select="$chunkfn"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="chunk-element-content">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:with-param>
+    <xsl:with-param name="quiet" select="$chunk.quietly"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-first-section-with-parent">
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <!-- These xpath expressions are really hairy. The trick is to pick sections -->
+  <!-- that are not first children and are not the children of first children -->
+
+  <!-- Break these variables into pieces to work around
+       http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6063 -->
+
+  <xsl:variable name="prev-v1" select="(ancestor::sect1[$chunk.section.depth &gt; 0                              and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect1][1]               |ancestor::sect2[$chunk.section.depth &gt; 1                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect2                                and parent::sect1[preceding-sibling::sect1]][1]               |ancestor::sect3[$chunk.section.depth &gt; 2                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect3                                and parent::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |ancestor::sect4[$chunk.section.depth &gt; 3                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect4                                and parent::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |ancestor::sect5[$chunk.section.depth &gt; 4                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect5                                and parent::sect4[preceding-sibling::sect4]                                and ancestor::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |ancestor::section[$chunk.section.depth &gt; count(ancestor::section)                              and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                 and not(ancestor::section[not(preceding-sibling::section)])][1])[last()]"/>
+
+  <xsl:variable name="prev-v2" select="(preceding::sect1[$chunk.section.depth &gt; 0                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect1][1]               |preceding::sect2[$chunk.section.depth &gt; 1                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect2                                and parent::sect1[preceding-sibling::sect1]][1]               |preceding::sect3[$chunk.section.depth &gt; 2                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect3                                and parent::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |preceding::sect4[$chunk.section.depth &gt; 3                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect4                                and parent::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |preceding::sect5[$chunk.section.depth &gt; 4                                and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect5                                and parent::sect4[preceding-sibling::sect4]                                and ancestor::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |preceding::section[$chunk.section.depth &gt; count(ancestor::section)                                 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                  and preceding-sibling::section                                  and not(ancestor::section[not(preceding-sibling::section)])][1])[last()]"/>
+
+  <xsl:variable name="prev" select="(preceding::book[1]              |preceding::preface[1]              |preceding::chapter[1]              |preceding::appendix[1]              |preceding::part[1]              |preceding::reference[1]              |preceding::refentry[1]              |preceding::colophon[1]              |preceding::article[1]              |preceding::topic[1]              |preceding::bibliography[parent::article or parent::book or parent::part][1]              |preceding::glossary[parent::article or parent::book or parent::part][1]              |preceding::index[$generate.index != 0]                                [parent::article or parent::book or parent::part][1]              |preceding::setindex[$generate.index != 0][1]              |ancestor::set              |ancestor::book[1]              |ancestor::preface[1]              |ancestor::chapter[1]              |ancestor::appendix[1]              |ancestor::part[1]              |ancestor::reference[1]              |ancestor::article[1]              |ancestor::topic[1]              |$prev-v1              |$prev-v2)[last()]"/>
+
+  <xsl:variable name="next-v1" select="(following::sect1[$chunk.section.depth &gt; 0                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect1][1]               |following::sect2[$chunk.section.depth &gt; 1                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect2                                and parent::sect1[preceding-sibling::sect1]][1]               |following::sect3[$chunk.section.depth &gt; 2                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect3                                and parent::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |following::sect4[$chunk.section.depth &gt; 3                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect4                                and parent::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |following::sect5[$chunk.section.depth &gt; 4                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect5                                and parent::sect4[preceding-sibling::sect4]                                and ancestor::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |following::section[$chunk.section.depth &gt; count(ancestor::section)                                 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                  and preceding-sibling::section                                   and not(ancestor::section[not(preceding-sibling::section)])][1])[1]"/>
+
+  <xsl:variable name="next-v2" select="(descendant::sect1[$chunk.section.depth &gt; 0                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect1][1]               |descendant::sect2[$chunk.section.depth &gt; 1                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect2                                and parent::sect1[preceding-sibling::sect1]][1]               |descendant::sect3[$chunk.section.depth &gt; 2                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect3                                and parent::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |descendant::sect4[$chunk.section.depth &gt; 3                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect4                                and parent::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |descendant::sect5[$chunk.section.depth &gt; 4                             and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                and preceding-sibling::sect5                                and parent::sect4[preceding-sibling::sect4]                                and ancestor::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |descendant::section[$chunk.section.depth &gt; count(ancestor::section)                                  and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])                                  and preceding-sibling::section                                  and not(ancestor::section[not(preceding-sibling::section)])])[1]"/>
+
+  <xsl:variable name="next" select="(following::book[1]              |following::preface[1]              |following::chapter[1]              |following::appendix[1]              |following::part[1]              |following::reference[1]              |following::refentry[1]              |following::colophon[1]              |following::bibliography[parent::article or parent::book or parent::part][1]              |following::glossary[parent::article or parent::book or parent::part][1]              |following::index[$generate.index != 0]                                [parent::article or parent::book or parent::part][1]              |following::article[1]              |following::topic[1]              |following::setindex[$generate.index != 0][1]              |descendant::book[1]              |descendant::preface[1]              |descendant::chapter[1]              |descendant::appendix[1]              |descendant::article[1]              |descendant::topic[1]              |descendant::bibliography[parent::article or parent::book or parent::part][1]              |descendant::glossary[parent::article or parent::book or parent::part][1]              |descendant::index[$generate.index != 0]                                [parent::article or parent::book or parent::part][1]              |descendant::colophon[1]              |descendant::setindex[$generate.index != 0][1]              |descendant::part[1]              |descendant::reference[1]              |descendant::refentry[1]              |$next-v1              |$next-v2)[1]"/>
+
+  <xsl:call-template name="process-chunk">
+    <xsl:with-param name="prev" select="$prev"/>
+    <xsl:with-param name="next" select="$next"/>
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-all-sections">
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:variable name="prev-v1" select="(preceding::sect1[$chunk.section.depth &gt; 0 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |preceding::sect2[$chunk.section.depth &gt; 1 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |preceding::sect3[$chunk.section.depth &gt; 2 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |preceding::sect4[$chunk.section.depth &gt; 3 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |preceding::sect5[$chunk.section.depth &gt; 4 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |preceding::section[$chunk.section.depth &gt; count(ancestor::section) and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1])[last()]"/>
+
+  <xsl:variable name="prev-v2" select="(ancestor::sect1[$chunk.section.depth &gt; 0 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |ancestor::sect2[$chunk.section.depth &gt; 1 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |ancestor::sect3[$chunk.section.depth &gt; 2 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |ancestor::sect4[$chunk.section.depth &gt; 3 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |ancestor::sect5[$chunk.section.depth &gt; 4 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |ancestor::section[$chunk.section.depth &gt; count(ancestor::section) and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1])[last()]"/>
+
+  <xsl:variable name="prev" select="(preceding::book[1]              |preceding::preface[1]              |preceding::chapter[1]              |preceding::appendix[1]              |preceding::part[1]              |preceding::reference[1]              |preceding::refentry[1]              |preceding::colophon[1]              |preceding::article[1]              |preceding::topic[1]              |preceding::bibliography[parent::article or parent::book or parent::part][1]              |preceding::glossary[parent::article or parent::book or parent::part][1]              |preceding::index[$generate.index != 0]                                [parent::article or parent::book or parent::part][1]              |preceding::setindex[$generate.index != 0][1]              |ancestor::set              |ancestor::book[1]              |ancestor::preface[1]              |ancestor::chapter[1]              |ancestor::appendix[1]              |ancestor::part[1]              |ancestor::reference[1]              |ancestor::article[1]              |ancestor::topic[1]              |$prev-v1              |$prev-v2)[last()]"/>
+
+  <xsl:variable name="next-v1" select="(following::sect1[$chunk.section.depth &gt; 0 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |following::sect2[$chunk.section.depth &gt; 1 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |following::sect3[$chunk.section.depth &gt; 2 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |following::sect4[$chunk.section.depth &gt; 3 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |following::sect5[$chunk.section.depth &gt; 4 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |following::section[$chunk.section.depth &gt; count(ancestor::section) and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1])[1]"/>
+
+  <xsl:variable name="next-v2" select="(descendant::sect1[$chunk.section.depth &gt; 0 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |descendant::sect2[$chunk.section.depth &gt; 1 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |descendant::sect3[$chunk.section.depth &gt; 2 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |descendant::sect4[$chunk.section.depth &gt; 3 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |descendant::sect5[$chunk.section.depth &gt; 4 and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1]              |descendant::section[$chunk.section.depth                                    &gt; count(ancestor::section) and not(ancestor::*/processing-instruction('dbhtml')[normalize-space(.) ='stop-chunking'])][1])[1]"/>
+
+  <xsl:variable name="next" select="(following::book[1]              |following::preface[1]              |following::chapter[1]              |following::appendix[1]              |following::part[1]              |following::reference[1]              |following::refentry[1]              |following::colophon[1]              |following::bibliography[parent::article or parent::book or parent::part][1]              |following::glossary[parent::article or parent::book or parent::part][1]              |following::index[$generate.index != 0]                                [parent::article or parent::book][1]              |following::article[1]              |following::topic[1]              |following::setindex[$generate.index != 0][1]              |descendant::book[1]              |descendant::preface[1]              |descendant::chapter[1]              |descendant::appendix[1]              |descendant::article[1]              |descendant::topic[1]              |descendant::bibliography[parent::article or parent::book][1]              |descendant::glossary[parent::article or parent::book or parent::part][1]              |descendant::index[$generate.index != 0]                                [parent::article or parent::book][1]              |descendant::colophon[1]              |descendant::setindex[$generate.index != 0][1]              |descendant::part[1]              |descendant::reference[1]              |descendant::refentry[1]              |$next-v1              |$next-v2)[1]"/>
+
+  <xsl:call-template name="process-chunk">
+    <xsl:with-param name="prev" select="$prev"/>
+    <xsl:with-param name="next" select="$next"/>
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make.lots">
+  <xsl:param name="toc.params" select="''"/>
+  <xsl:param name="toc"/>
+
+  <xsl:variable name="lots">
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:copy-of select="$toc"/>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'figure')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'figure'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'figure'"/>
+                <xsl:with-param name="nodes" select=".//figure"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'figure'"/>
+            <xsl:with-param name="nodes" select=".//figure"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'table')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'table'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'table'"/>
+                <xsl:with-param name="nodes" select=".//table[not(@tocentry = 0)]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'table'"/>
+            <xsl:with-param name="nodes" select=".//table[not(@tocentry = 0)]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'example')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'example'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'example'"/>
+                <xsl:with-param name="nodes" select=".//example"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'example'"/>
+            <xsl:with-param name="nodes" select=".//example"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'equation')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'equation'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'equation'"/>
+                <xsl:with-param name="nodes" select=".//equation[title or info/title]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'equation'"/>
+            <xsl:with-param name="nodes" select=".//equation[title or info/title]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'procedure')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'procedure'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'procedure'"/>
+                <xsl:with-param name="nodes" select=".//procedure[title]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'procedure'"/>
+            <xsl:with-param name="nodes" select=".//procedure[title]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="string($lots) != ''">
+    <xsl:choose>
+      <xsl:when test="$chunk.tocs.and.lots != 0 and not(parent::*)">
+        <xsl:call-template name="write.chunk">
+          <xsl:with-param name="filename">
+            <xsl:call-template name="make-relative-filename">
+              <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+              <xsl:with-param name="base.name">
+                <xsl:call-template name="dbhtml-dir"/>
+                <xsl:value-of select="$chunked.filename.prefix"/>
+                <xsl:apply-templates select="." mode="recursive-chunk-filename">
+                  <xsl:with-param name="recursive" select="true()"/>
+                </xsl:apply-templates>
+                <xsl:text>-toc</xsl:text>
+                <xsl:value-of select="$html.ext"/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="content">
+            <xsl:call-template name="chunk-element-content">
+              <xsl:with-param name="prev" select="/foo"/>
+              <xsl:with-param name="next" select="/foo"/>
+              <xsl:with-param name="nav.context" select="'toc'"/>
+              <xsl:with-param name="content">
+                <xsl:if test="$chunk.tocs.and.lots.has.title != 0">
+                  <h1>
+                    <xsl:apply-templates select="." mode="object.title.markup"/>
+                  </h1>
+                </xsl:if>
+                <xsl:copy-of select="$lots"/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="quiet" select="$chunk.quietly"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$lots"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="make.lot.chunk">
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="lot"/>
+
+  <xsl:if test="string($lot) != ''">
+    <xsl:variable name="filename">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+        <xsl:with-param name="base.name">
+          <xsl:call-template name="dbhtml-dir"/>
+          <xsl:value-of select="$type"/>
+          <xsl:text>-toc</xsl:text>
+          <xsl:value-of select="$html.ext"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="href">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir" select="''"/>
+        <xsl:with-param name="base.name">
+          <xsl:call-template name="dbhtml-dir"/>
+          <xsl:value-of select="$type"/>
+          <xsl:text>-toc</xsl:text>
+          <xsl:value-of select="$html.ext"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="write.chunk">
+      <xsl:with-param name="filename" select="$filename"/>
+      <xsl:with-param name="content">
+        <xsl:call-template name="chunk-element-content">
+          <xsl:with-param name="prev" select="/foo"/>
+          <xsl:with-param name="next" select="/foo"/>
+          <xsl:with-param name="nav.context" select="'toc'"/>
+          <xsl:with-param name="content">
+            <xsl:copy-of select="$lot"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:with-param>
+      <xsl:with-param name="quiet" select="$chunk.quietly"/>
+    </xsl:call-template>
+    <!-- And output a link to this file -->
+    <div>
+      <xsl:attribute name="class">
+        <xsl:text>ListofTitles</xsl:text>
+      </xsl:attribute>
+      <a href="{$href}">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key">
+            <xsl:choose>
+              <xsl:when test="$type='table'">ListofTables</xsl:when>
+              <xsl:when test="$type='figure'">ListofFigures</xsl:when>
+              <xsl:when test="$type='equation'">ListofEquations</xsl:when>
+              <xsl:when test="$type='example'">ListofExamples</xsl:when>
+              <xsl:when test="$type='procedure'">ListofProcedures</xsl:when>
+              <xsl:otherwise>ListofUnknown</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+      </a>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="in.other.chunk">
+  <xsl:param name="chunk" select="."/>
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:text>in.other.chunk: </xsl:text>
+    <xsl:value-of select="name($chunk)"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="name($node)"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$chunk = $node"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$is.chunk"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+    <xsl:when test="$chunk = $node">0</xsl:when>
+    <xsl:when test="$is.chunk = 1">1</xsl:when>
+    <xsl:when test="count($node) = 0">0</xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="in.other.chunk">
+        <xsl:with-param name="chunk" select="$chunk"/>
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="count.footnotes.in.this.chunk">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="footnotes" select="$node//footnote"/>
+  <xsl:param name="count" select="0"/>
+
+<!--
+  <xsl:message>
+    <xsl:text>count.footnotes.in.this.chunk: </xsl:text>
+    <xsl:value-of select="name($node)"/>
+  </xsl:message>
+-->
+
+  <xsl:variable name="in.other.chunk">
+    <xsl:call-template name="in.other.chunk">
+      <xsl:with-param name="chunk" select="$node"/>
+      <xsl:with-param name="node" select="$footnotes[1]"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="count($footnotes) = 0">
+      <xsl:value-of select="$count"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$in.other.chunk != 0">
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes" select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$footnotes[1]/ancestor::table                         |$footnotes[1]/ancestor::informaltable">
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes" select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes" select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count + 1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.footnotes.in.this.chunk">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="footnotes" select="$node//footnote"/>
+
+<!--
+  <xsl:message>process.footnotes.in.this.chunk</xsl:message>
+-->
+
+  <xsl:variable name="in.other.chunk">
+    <xsl:call-template name="in.other.chunk">
+      <xsl:with-param name="chunk" select="$node"/>
+      <xsl:with-param name="node" select="$footnotes[1]"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="count($footnotes) = 0">
+      <!-- nop -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$in.other.chunk != 0">
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes" select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$footnotes[1]/ancestor::table                         |$footnotes[1]/ancestor::informaltable">
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes" select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$footnotes[1]" mode="process.footnote.mode"/>
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes" select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.footnotes">
+  <xsl:variable name="footnotes" select=".//footnote"/>
+  <xsl:variable name="fcount">
+    <xsl:call-template name="count.footnotes.in.this.chunk">
+      <xsl:with-param name="node" select="."/>
+      <xsl:with-param name="footnotes" select="$footnotes"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text> fcount: </xsl:text>
+    <xsl:value-of select="$fcount"/>
+  </xsl:message>
+-->
+
+  <!-- Only bother to do this if there's at least one non-table footnote -->
+  <xsl:if test="$fcount &gt; 0">
+    <div class="footnotes">
+      <xsl:call-template name="footnotes.attributes"/>
+      <br/>
+      <hr>
+        <xsl:choose>
+          <xsl:when test="$make.clean.html != 0">
+            <xsl:attribute name="class">footnote-hr</xsl:attribute>
+          </xsl:when>
+          <xsl:when test="$css.decoration != 0">
+            <xsl:attribute name="style">
+              <xsl:value-of select="concat('width:100; align:',                                             $direction.align.start,                                             ';')"/>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:attribute name="width">100</xsl:attribute>
+            <xsl:attribute name="align"><xsl:value-of select="$direction.align.start"/></xsl:attribute>
+          </xsl:otherwise>
+        </xsl:choose>
+      </hr>
+      <xsl:call-template name="process.footnotes.in.this.chunk">
+        <xsl:with-param name="node" select="."/>
+        <xsl:with-param name="footnotes" select="$footnotes"/>
+      </xsl:call-template>
+    </div>
+  </xsl:if>
+
+  <!-- FIXME: When chunking, only the annotations actually used
+              in this chunk should be referenced. I don't think it
+              does any harm to reference them all, but it adds
+              unnecessary bloat to each chunk. -->
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <div class="annotation-list">
+      <div class="annotation-nocss">
+        <p>The following annotations are from this essay. You are seeing
+        them here because your browser doesn&#8217;t support the user-interface
+        techniques used to make them appear as &#8216;popups&#8217; on modern browsers.</p>
+      </div>
+
+      <xsl:apply-templates select="//annotation" mode="annotation-popup"/>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.chunk.footnotes">
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+  <xsl:if test="$is.chunk = 1">
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+  <!-- returns 1 if $node is a chunk -->
+
+  <!-- ==================================================================== -->
+  <!-- What's a chunk?
+
+       The root element
+       appendix
+       article
+       bibliography  in article or part or book
+       book
+       chapter
+       colophon
+       glossary      in article or part or book
+       index         in article or part or book
+       part
+       preface
+       refentry
+       reference
+       sect{1,2,3,4,5}  if position()>1 && depth < chunk.section.depth
+       section          if position()>1 && depth < chunk.section.depth
+       set
+       setindex
+       topic
+                                                                            -->
+  <!-- ==================================================================== -->
+
+<!--
+  <xsl:message>
+    <xsl:text>chunk: </xsl:text>
+    <xsl:value-of select="name($node)"/>
+    <xsl:text>(</xsl:text>
+    <xsl:value-of select="$node/@id"/>
+    <xsl:text>)</xsl:text>
+    <xsl:text> csd: </xsl:text>
+    <xsl:value-of select="$chunk.section.depth"/>
+    <xsl:text> cfs: </xsl:text>
+    <xsl:value-of select="$chunk.first.sections"/>
+    <xsl:text> ps: </xsl:text>
+    <xsl:value-of select="count($node/parent::section)"/>
+    <xsl:text> prs: </xsl:text>
+    <xsl:value-of select="count($node/preceding-sibling::section)"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+	  <xsl:when test="$node/parent::*/processing-instruction('dbhtml')[normalize-space(.) = 'stop-chunking']">0</xsl:when>
+    <xsl:when test="not($node/parent::*)">1</xsl:when>
+
+    <xsl:when test="local-name($node) = 'sect1'                     and $chunk.section.depth &gt;= 1                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect1) &gt; 0)">
+      <xsl:text>1</xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'sect2'                     and $chunk.section.depth &gt;= 2                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect2) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'sect3'                     and $chunk.section.depth &gt;= 3                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect3) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'sect4'                     and $chunk.section.depth &gt;= 4                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect4) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'sect5'                     and $chunk.section.depth &gt;= 5                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect5) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($node) = 'section'                     and $chunk.section.depth &gt;= count($node/ancestor::section)+1                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::section) &gt; 0)">
+      <xsl:call-template name="chunk">
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="local-name($node)='preface'">1</xsl:when>
+    <xsl:when test="local-name($node)='chapter'">1</xsl:when>
+    <xsl:when test="local-name($node)='appendix'">1</xsl:when>
+    <xsl:when test="local-name($node)='article'">1</xsl:when>
+    <xsl:when test="local-name($node)='topic'">1</xsl:when>
+    <xsl:when test="local-name($node)='part'">1</xsl:when>
+    <xsl:when test="local-name($node)='reference'">1</xsl:when>
+    <xsl:when test="local-name($node)='refentry'">1</xsl:when>
+    <xsl:when test="local-name($node)='index' and ($generate.index != 0 or count($node/*) &gt; 0)                     and (local-name($node/parent::*) = 'article'                     or local-name($node/parent::*) = 'book'                     or local-name($node/parent::*) = 'part'                     )">1</xsl:when>
+    <xsl:when test="local-name($node)='bibliography'                     and (local-name($node/parent::*) = 'article'                     or local-name($node/parent::*) = 'book'                     or local-name($node/parent::*) = 'part'                     )">1</xsl:when>
+    <xsl:when test="local-name($node)='glossary'                     and (local-name($node/parent::*) = 'article'                     or local-name($node/parent::*) = 'book'                     or local-name($node/parent::*) = 'part'                     )">1</xsl:when>
+    <xsl:when test="local-name($node)='colophon'">1</xsl:when>
+    <xsl:when test="local-name($node)='book'">1</xsl:when>
+    <xsl:when test="local-name($node)='set'">1</xsl:when>
+    <xsl:when test="local-name($node)='setindex'">1</xsl:when>
+    <xsl:when test="local-name($node)='legalnotice'                     and $generate.legalnotice.link != 0">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="href.target.uri">
+  <xsl:param name="object" select="."/>
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:apply-templates mode="chunk-filename" select="$object"/>
+
+  <xsl:if test="$ischunk='0'">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="href.target">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="object" select="."/>
+  <xsl:param name="toc-context" select="."/>
+  <!-- * If $toc-context contains some node other than the current node, -->
+  <!-- * it means we're processing a link in a TOC. In that case, to -->
+  <!-- * ensure the link will work correctly, we need to take a look at -->
+  <!-- * where the file containing the TOC will get written, and where -->
+  <!-- * the file that's being linked to will get written. -->
+  <xsl:variable name="toc-output-dir">
+    <xsl:if test="not($toc-context = .)">
+      <!-- * Get the $toc-context node and all its ancestors, look down -->
+      <!-- * through them to find the last/closest node to the -->
+      <!-- * toc-context node that has a "dbhtml dir" PI, and get the -->
+      <!-- * directory name from that. That's the name of the directory -->
+      <!-- * to which the current toc output file will get written. -->
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="$toc-context/ancestor-or-self::*[processing-instruction('dbhtml')[contains(.,'dir')]][last()]"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="linked-file-output-dir">
+    <xsl:if test="not($toc-context = .)">
+      <!-- * Get the current node and all its ancestors, look down -->
+      <!-- * through them to find the last/closest node to the current -->
+      <!-- * node that has a "dbhtml dir" PI, and get the directory name -->
+      <!-- * from that.  That's the name of the directory to which the -->
+      <!-- * file that's being linked to will get written. -->
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="ancestor-or-self::*[processing-instruction('dbhtml')[contains(.,'dir')]][last()]"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="href.to.uri">
+    <xsl:call-template name="href.target.uri">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href.from.uri">
+    <xsl:choose>
+      <xsl:when test="not($toc-context = .)">
+        <xsl:call-template name="href.target.uri">
+          <xsl:with-param name="object" select="$toc-context"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="href.target.uri">
+          <xsl:with-param name="object" select="$context"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <!-- * <xsl:message>toc-context: <xsl:value-of select="local-name($toc-context)"/></xsl:message> -->
+  <!-- * <xsl:message>node: <xsl:value-of select="local-name(.)"/></xsl:message> -->
+  <!-- * <xsl:message>context: <xsl:value-of select="local-name($context)"/></xsl:message> -->
+  <!-- * <xsl:message>object: <xsl:value-of select="local-name($object)"/></xsl:message> -->
+  <!-- * <xsl:message>toc-output-dir: <xsl:value-of select="$toc-output-dir"/></xsl:message> -->
+  <!-- * <xsl:message>linked-file-output-dir: <xsl:value-of select="$linked-file-output-dir"/></xsl:message> -->
+  <!-- * <xsl:message>href.to.uri: <xsl:value-of select="$href.to.uri"/></xsl:message> -->
+  <!-- * <xsl:message>href.from.uri: <xsl:value-of select="$href.from.uri"/></xsl:message> -->
+  <xsl:variable name="href.to">
+    <xsl:choose>
+      <!-- * 2007-07-19, MikeSmith: Added the following conditional to -->
+      <!-- * deal with a problem case for links in TOCs. It checks to see -->
+      <!-- * if the output dir that a TOC will get written to is -->
+      <!-- * different from the output dir of the file being linked to. -->
+      <!-- * If it is different, we do not call trim.common.uri.paths. -->
+      <!-- *  -->
+      <!-- * Reason why I added that conditional is: I ran into a bug for -->
+      <!-- * this case: -->
+      <!-- *  -->
+      <!-- * 1. we are chunking into separate dirs -->
+      <!-- *  -->
+      <!-- * 2. output for the TOC is written to current dir, but the file -->
+      <!-- *    being linked to is written to some subdir "foo". -->
+      <!-- *  -->
+      <!-- * For that case, links to that file in that TOC did not show -->
+      <!-- * the correct path - they omitted the "foo". -->
+      <!-- *  -->
+      <!-- * The cause of that problem was that the trim.common.uri.paths -->
+      <!-- * template[1] was being called under all conditions. But it's -->
+      <!-- * apparent that we don't want to call trim.common.uri.paths in -->
+      <!-- * the case where a linked file is being written to a different -->
+      <!-- * directory than the TOC that contains the link, because doing -->
+      <!-- * so will cause a necessary (not redundant) directory-name -->
+      <!-- * part of the link to get inadvertently trimmed, resulting in -->
+      <!-- * a broken link to that file. Thus, added the conditional. -->
+      <!-- *  -->
+      <!-- * [1] The purpose of the trim.common.uri.paths template is to -->
+      <!-- * prevent cases where, if we didn't call it, we end up with -->
+      <!-- * unnecessary, redundant directory names getting output; for -->
+      <!-- * example, "foo/foo/refname.html". -->
+      <xsl:when test="not($toc-output-dir = $linked-file-output-dir)">
+        <xsl:value-of select="$href.to.uri"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="trim.common.uri.paths">
+          <xsl:with-param name="uriA" select="$href.to.uri"/>
+          <xsl:with-param name="uriB" select="$href.from.uri"/>
+          <xsl:with-param name="return" select="'A'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="href.from">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$href.to.uri"/>
+      <xsl:with-param name="uriB" select="$href.from.uri"/>
+      <xsl:with-param name="return" select="'B'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="depth">
+    <xsl:call-template name="count.uri.path.depth">
+      <xsl:with-param name="filename" select="$href.from"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:call-template name="copy-string">
+      <xsl:with-param name="string" select="'../'"/>
+      <xsl:with-param name="count" select="$depth"/>
+    </xsl:call-template>
+    <xsl:value-of select="$href.to"/>
+  </xsl:variable>
+  <!--
+  <xsl:message>
+    <xsl:text>In </xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text> (</xsl:text>
+    <xsl:value-of select="$href.from"/>
+    <xsl:text>,</xsl:text>
+    <xsl:value-of select="$depth"/>
+    <xsl:text>) </xsl:text>
+    <xsl:value-of select="name($object)"/>
+    <xsl:text> href=</xsl:text>
+    <xsl:value-of select="$href"/>
+  </xsl:message>
+  -->
+  <xsl:value-of select="$href"/>
+</xsl:template>
+
+<!-- Returns the complete olink href value if found -->
+<!-- Must take into account any dbhtml dir of the chunk containing the olink -->
+<xsl:template name="make.olink.href">
+  <xsl:param name="olink.key" select="''"/>
+  <xsl:param name="target.database"/>
+
+  <xsl:if test="$olink.key != ''">
+    <xsl:variable name="target.href">
+      <xsl:for-each select="$target.database">
+        <xsl:value-of select="key('targetptr-key', $olink.key)[1]/@href"/>
+      </xsl:for-each>
+    </xsl:variable>
+  
+    <!-- an olink starting point may be in a subdirectory, so need
+         the "from" reference point to compute a relative path -->
+
+    <xsl:variable name="from.href">
+      <xsl:call-template name="olink.from.uri">
+        <xsl:with-param name="target.database" select="$target.database"/>
+        <xsl:with-param name="object" select="."/>
+        <xsl:with-param name="object.targetdoc" select="$current.docid"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <!-- If the from.href has directory path, then must "../" upward
+         to document level -->
+    <xsl:variable name="upward.from.path">
+      <xsl:call-template name="upward.path">
+        <xsl:with-param name="path" select="$from.href"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="targetdoc">
+      <xsl:value-of select="substring-before($olink.key, '/')"/>
+    </xsl:variable>
+  
+    <!-- Does the target database use a sitemap? -->
+    <xsl:variable name="use.sitemap">
+      <xsl:choose>
+        <xsl:when test="$target.database//sitemap">1</xsl:when>
+        <xsl:otherwise>0</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+  
+    <!-- Get the baseuri for this targetptr -->
+    <xsl:variable name="baseuri">
+      <xsl:choose>
+        <!-- Does the database use a sitemap? -->
+        <xsl:when test="$use.sitemap != 0">
+          <xsl:choose>
+            <!-- Was current.docid parameter set? -->
+            <xsl:when test="$current.docid != ''">
+              <!-- Was it found in the database? -->
+              <xsl:variable name="currentdoc.key">
+                <xsl:for-each select="$target.database">
+                  <xsl:value-of select="key('targetdoc-key',                                         $current.docid)/@targetdoc"/>
+                </xsl:for-each>
+              </xsl:variable>
+              <xsl:choose>
+                <xsl:when test="$currentdoc.key != ''">
+                  <xsl:for-each select="$target.database">
+                    <xsl:call-template name="targetpath">
+                      <xsl:with-param name="dirnode" select="key('targetdoc-key', $current.docid)/parent::dir"/>
+                      <xsl:with-param name="targetdoc" select="$targetdoc"/>
+                    </xsl:call-template>
+                  </xsl:for-each>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:message>
+                    <xsl:text>Olink error: cannot compute relative </xsl:text>
+                    <xsl:text>sitemap path because $current.docid '</xsl:text>
+                    <xsl:value-of select="$current.docid"/>
+                    <xsl:text>' not found in target database.</xsl:text>
+                  </xsl:message>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message>
+                <xsl:text>Olink warning: cannot compute relative </xsl:text>
+                <xsl:text>sitemap path without $current.docid parameter</xsl:text>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose> 
+          <!-- In either case, add baseuri from its document entry-->
+          <xsl:variable name="docbaseuri">
+            <xsl:for-each select="$target.database">
+              <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri"/>
+            </xsl:for-each>
+          </xsl:variable>
+          <xsl:if test="$docbaseuri != ''">
+            <xsl:value-of select="$docbaseuri"/>
+          </xsl:if>
+        </xsl:when>
+        <!-- No database sitemap in use -->
+        <xsl:otherwise>
+          <!-- Just use any baseuri from its document entry -->
+          <xsl:variable name="docbaseuri">
+            <xsl:for-each select="$target.database">
+              <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri"/>
+            </xsl:for-each>
+          </xsl:variable>
+          <xsl:if test="$docbaseuri != ''">
+            <xsl:value-of select="$docbaseuri"/>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+    <!-- Form the href information -->
+    <xsl:if test="not(contains($baseuri, ':'))">
+      <!-- if not an absolute uri, add upward path from olink chunk -->
+      <xsl:value-of select="$upward.from.path"/>
+    </xsl:if>
+
+    <xsl:if test="$baseuri != ''">
+      <xsl:value-of select="$baseuri"/>
+      <xsl:if test="substring($target.href,1,1) != '#'">
+        <!--xsl:text>/</xsl:text-->
+      </xsl:if>
+    </xsl:if>
+    <!-- optionally turn off frag for PDF references -->
+    <xsl:if test="not($insert.olink.pdf.frag = 0 and           translate(substring($baseuri, string-length($baseuri) - 3),                     'PDF', 'pdf') = '.pdf'           and starts-with($target.href, '#') )">
+      <xsl:value-of select="$target.href"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<!-- Computes "../" to reach top -->
+<xsl:template name="upward.path">
+  <xsl:param name="path" select="''"/>
+  <xsl:choose> 
+    <!-- Don't bother with absolute uris -->
+    <xsl:when test="contains($path, ':')"/>
+    <xsl:when test="starts-with($path, '/')"/>
+    <xsl:when test="contains($path, '/')">
+      <xsl:text>../</xsl:text>
+      <xsl:call-template name="upward.path">
+        <xsl:with-param name="path" select="substring-after($path, '/')"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="html.head">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:variable name="this" select="."/>
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <head>
+    <xsl:call-template name="system.head.content"/>
+    <xsl:call-template name="head.content"/>
+
+    <!-- home link not valid in HTML5 -->
+    <xsl:if test="$home and $div.element != 'section'">
+      <link rel="home">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$home"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$home" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <!-- up link not valid in HTML5 -->
+    <xsl:if test="$up and $div.element != 'section'">
+      <link rel="up">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$up"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$up" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$prev">
+      <link rel="prev">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$prev"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$prev" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$next">
+      <link rel="next">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$next"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$next" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$html.extra.head.links != 0">
+      <xsl:for-each select="//part                             |//reference                             |//preface                             |//chapter                             |//article                             |//refentry                             |//appendix[not(parent::article)]|appendix                             |//glossary[not(parent::article)]|glossary                             |//index[not(parent::article)]|index">
+        <link rel="{local-name(.)}">
+          <xsl:attribute name="href">
+            <xsl:call-template name="href.target">
+              <xsl:with-param name="context" select="$this"/>
+              <xsl:with-param name="object" select="."/>
+            </xsl:call-template>
+          </xsl:attribute>
+          <xsl:attribute name="title">
+            <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+          </xsl:attribute>
+        </link>
+      </xsl:for-each>
+
+      <xsl:for-each select="section|sect1|refsection|refsect1">
+        <link>
+          <xsl:attribute name="rel">
+            <xsl:choose>
+              <xsl:when test="local-name($this) = 'section'                               or local-name($this) = 'refsection'">
+                <xsl:value-of select="'subsection'"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="'section'"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:attribute>
+          <xsl:attribute name="href">
+            <xsl:call-template name="href.target">
+              <xsl:with-param name="context" select="$this"/>
+              <xsl:with-param name="object" select="."/>
+            </xsl:call-template>
+          </xsl:attribute>
+          <xsl:attribute name="title">
+            <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+          </xsl:attribute>
+        </link>
+      </xsl:for-each>
+
+      <xsl:for-each select="sect2|sect3|sect4|sect5|refsect2|refsect3">
+        <link rel="subsection">
+          <xsl:attribute name="href">
+            <xsl:call-template name="href.target">
+              <xsl:with-param name="context" select="$this"/>
+              <xsl:with-param name="object" select="."/>
+            </xsl:call-template>
+          </xsl:attribute>
+          <xsl:attribute name="title">
+            <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+          </xsl:attribute>
+        </link>
+      </xsl:for-each>
+    </xsl:if>
+
+    <!-- * if we have a legalnotice and user wants it output as a -->
+    <!-- * separate page and $html.head.legalnotice.link.types is -->
+    <!-- * non-empty, we generate a link or links for each value in -->
+    <!-- * $html.head.legalnotice.link.types -->
+    <xsl:if test="//legalnotice                   and not($generate.legalnotice.link = 0)                   and not($html.head.legalnotice.link.types = '')">
+      <xsl:call-template name="make.legalnotice.head.links"/>
+    </xsl:if>
+
+    <xsl:call-template name="user.head.content"/>
+  </head>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="header.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <xsl:variable name="row1" select="$navig.showtitles != 0"/>
+  <xsl:variable name="row2" select="count($prev) &gt; 0                                     or (count($up) &gt; 0                                          and generate-id($up) != generate-id($home)                                         and $navig.showtitles != 0)                                     or count($next) &gt; 0"/>
+
+  <xsl:if test="$suppress.navigation = '0' and $suppress.header.navigation = '0'">
+    <div class="navheader">
+      <xsl:if test="$row1 or $row2">
+        <table width="100%" summary="Navigation header">
+          <xsl:if test="$row1">
+            <tr>
+              <th colspan="3" align="center">
+                <xsl:apply-templates select="." mode="object.title.markup"/>
+              </th>
+            </tr>
+          </xsl:if>
+
+          <xsl:if test="$row2">
+            <tr>
+              <td width="20%" align="{$direction.align.start}">
+                <xsl:if test="count($prev)&gt;0">
+                  <a accesskey="p">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$prev"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                    <xsl:call-template name="navig.content">
+                      <xsl:with-param name="direction" select="'prev'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+                <xsl:text>&#160;</xsl:text>
+              </td>
+              <th width="60%" align="center">
+                <xsl:choose>
+                  <xsl:when test="count($up) &gt; 0                                   and generate-id($up) != generate-id($home)                                   and $navig.showtitles != 0">
+                    <xsl:apply-templates select="$up" mode="object.title.markup"/>
+                  </xsl:when>
+                  <xsl:otherwise>&#160;</xsl:otherwise>
+                </xsl:choose>
+              </th>
+              <td width="20%" align="{$direction.align.end}">
+                <xsl:text>&#160;</xsl:text>
+                <xsl:if test="count($next)&gt;0">
+                  <a accesskey="n">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$next"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                    <xsl:call-template name="navig.content">
+                      <xsl:with-param name="direction" select="'next'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+              </td>
+            </tr>
+          </xsl:if>
+        </table>
+      </xsl:if>
+      <xsl:if test="$header.rule != 0">
+        <hr/>
+      </xsl:if>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="footer.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <xsl:variable name="row1" select="count($prev) &gt; 0                                     or count($up) &gt; 0                                     or count($next) &gt; 0"/>
+
+  <xsl:variable name="row2" select="($prev and $navig.showtitles != 0)                                     or (generate-id($home) != generate-id(.)                                         or $nav.context = 'toc')                                     or ($chunk.tocs.and.lots != 0                                         and $nav.context != 'toc')                                     or ($next and $navig.showtitles != 0)"/>
+
+  <xsl:if test="$suppress.navigation = '0' and $suppress.footer.navigation = '0'">
+    <div class="navfooter">
+      <xsl:if test="$footer.rule != 0">
+        <hr/>
+      </xsl:if>
+
+      <xsl:if test="$row1 or $row2">
+        <table width="100%" summary="Navigation footer">
+          <xsl:if test="$row1">
+            <tr>
+              <td width="40%" align="{$direction.align.start}">
+                <xsl:if test="count($prev)&gt;0">
+                  <a accesskey="p">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$prev"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                    <xsl:call-template name="navig.content">
+                      <xsl:with-param name="direction" select="'prev'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+                <xsl:text>&#160;</xsl:text>
+              </td>
+              <td width="20%" align="center">
+                <xsl:choose>
+                  <xsl:when test="count($up)&gt;0                                   and generate-id($up) != generate-id($home)">
+                    <a accesskey="u">
+                      <xsl:attribute name="href">
+                        <xsl:call-template name="href.target">
+                          <xsl:with-param name="object" select="$up"/>
+                        </xsl:call-template>
+                      </xsl:attribute>
+                      <xsl:call-template name="navig.content">
+                        <xsl:with-param name="direction" select="'up'"/>
+                      </xsl:call-template>
+                    </a>
+                  </xsl:when>
+                  <xsl:otherwise>&#160;</xsl:otherwise>
+                </xsl:choose>
+              </td>
+              <td width="40%" align="{$direction.align.end}">
+                <xsl:text>&#160;</xsl:text>
+                <xsl:if test="count($next)&gt;0">
+                  <a accesskey="n">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$next"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                    <xsl:call-template name="navig.content">
+                      <xsl:with-param name="direction" select="'next'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+              </td>
+            </tr>
+          </xsl:if>
+
+          <xsl:if test="$row2">
+            <tr>
+              <td width="40%" align="{$direction.align.start}" valign="top">
+                <xsl:if test="$navig.showtitles != 0">
+                  <xsl:apply-templates select="$prev" mode="object.title.markup"/>
+                </xsl:if>
+                <xsl:text>&#160;</xsl:text>
+              </td>
+              <td width="20%" align="center">
+                <xsl:choose>
+                  <xsl:when test="$home != . or $nav.context = 'toc'">
+                    <a accesskey="h">
+                      <xsl:attribute name="href">
+                        <xsl:call-template name="href.target">
+                          <xsl:with-param name="object" select="$home"/>
+                        </xsl:call-template>
+                      </xsl:attribute>
+                      <xsl:call-template name="navig.content">
+                        <xsl:with-param name="direction" select="'home'"/>
+                      </xsl:call-template>
+                    </a>
+                    <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+                      <xsl:text>&#160;|&#160;</xsl:text>
+                    </xsl:if>
+                  </xsl:when>
+                  <xsl:otherwise>&#160;</xsl:otherwise>
+                </xsl:choose>
+
+                <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+                  <a accesskey="t">
+                    <xsl:attribute name="href">
+                      <xsl:value-of select="$chunked.filename.prefix"/>
+                      <xsl:apply-templates select="/*[1]" mode="recursive-chunk-filename">
+                        <xsl:with-param name="recursive" select="true()"/>
+                      </xsl:apply-templates>
+                      <xsl:text>-toc</xsl:text>
+                      <xsl:value-of select="$html.ext"/>
+                    </xsl:attribute>
+                    <xsl:call-template name="gentext">
+                      <xsl:with-param name="key" select="'nav-toc'"/>
+                    </xsl:call-template>
+                  </a>
+                </xsl:if>
+              </td>
+              <td width="40%" align="{$direction.align.end}" valign="top">
+                <xsl:text>&#160;</xsl:text>
+                <xsl:if test="$navig.showtitles != 0">
+                  <xsl:apply-templates select="$next" mode="object.title.markup"/>
+                </xsl:if>
+              </td>
+            </tr>
+          </xsl:if>
+        </table>
+      </xsl:if>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="navig.content">
+    <xsl:param name="direction" select="next"/>
+    <xsl:variable name="navtext">
+        <xsl:choose>
+            <xsl:when test="$direction = 'prev'">
+                <xsl:call-template name="gentext.nav.prev"/>
+            </xsl:when>
+            <xsl:when test="$direction = 'next'">
+                <xsl:call-template name="gentext.nav.next"/>
+            </xsl:when>
+            <xsl:when test="$direction = 'up'">
+                <xsl:call-template name="gentext.nav.up"/>
+            </xsl:when>
+            <xsl:when test="$direction = 'home'">
+                <xsl:call-template name="gentext.nav.home"/>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:text>xxx</xsl:text>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:variable>
+
+    <xsl:choose>
+        <xsl:when test="$navig.graphics != 0">
+            <img>
+                <xsl:attribute name="src">
+                    <xsl:value-of select="$navig.graphics.path"/>
+                    <xsl:value-of select="$direction"/>
+                    <xsl:value-of select="$navig.graphics.extension"/>
+                </xsl:attribute>
+                <xsl:attribute name="alt">
+                    <xsl:value-of select="$navtext"/>
+                </xsl:attribute>
+            </img>
+        </xsl:when>
+        <xsl:otherwise>
+            <xsl:value-of select="$navtext"/>
+        </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * The following template assumes that the first legalnotice -->
+<!-- * instance found in a document applies to the contents of the -->
+<!-- * entire document. It generates an HTML link in each chunk, back -->
+<!-- * to the file containing the contents of the first legalnotice. -->
+<!-- * -->
+<!-- * Actually, it may generate multiple link instances in each chunk, -->
+<!-- * because it walks through the space-separated list of link -->
+<!-- * types specified in the $html.head.legalnotice.link.types param, -->
+<!-- * popping off link types and generating links for them until it -->
+<!-- * depletes the list. -->
+  
+<xsl:template name="make.legalnotice.head.links">
+  <!-- * the following ID is used as part of the legalnotice filename; -->
+  <!-- * we need it in order to construct the filename for use in the -->
+  <!-- * value of the href attribute on the link -->
+
+  <xsl:param name="ln-node" select="(//legalnotice)[1]"/>
+  
+  <xsl:param name="linktype">
+    <xsl:choose>
+      <xsl:when test="contains($html.head.legalnotice.link.types, ' ')">
+        <xsl:value-of select="normalize-space(                     substring-before($html.head.legalnotice.link.types, ' '))"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$html.head.legalnotice.link.types"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+  <xsl:param name="remaining.linktypes" select="concat(               normalize-space(               substring-after($html.head.legalnotice.link.types, ' ')),' ')"/>
+  <xsl:if test="not($linktype = '')">
+
+    <!-- Compute name of legalnotice file (see titlepage.xsl) -->
+    <xsl:variable name="file">
+      <xsl:call-template name="ln.or.rh.filename">
+	<xsl:with-param name="node" select="$ln-node"/>
+      </xsl:call-template>
+    </xsl:variable>
+   
+    <link rel="{$linktype}">
+      <xsl:attribute name="href">
+        <xsl:value-of select="$file"/>
+      </xsl:attribute>
+      <xsl:attribute name="title">
+        <xsl:apply-templates select="(//legalnotice)[1]" mode="object.title.markup.textonly"/>
+      </xsl:attribute>
+    </link>
+    <xsl:call-template name="make.legalnotice.head.links">
+      <!-- * pop the next value off the list of link types -->
+      <xsl:with-param name="linktype" select="substring-before($remaining.linktypes, ' ')"/>
+      <!-- * remove the link type from the list of remaining link types -->
+      <xsl:with-param name="remaining.linktypes" select="substring-after($remaining.linktypes, ' ')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="chunk-element-content">
+  <xsl:param name="prev"/>
+  <xsl:param name="next"/>
+  <xsl:param name="nav.context"/>
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:call-template name="user.preroot"/>
+
+  <html>
+    <xsl:call-template name="root.attributes"/>
+    <xsl:call-template name="html.head">
+      <xsl:with-param name="prev" select="$prev"/>
+      <xsl:with-param name="next" select="$next"/>
+    </xsl:call-template>
+
+    <body>
+      <xsl:call-template name="body.attributes"/>
+
+      <xsl:call-template name="user.header.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="header.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="user.header.content"/>
+
+      <xsl:copy-of select="$content"/>
+
+      <xsl:call-template name="user.footer.content"/>
+
+      <xsl:call-template name="footer.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="user.footer.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$chunk.append"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="generate.manifest">
+  <xsl:param name="node" select="/"/>
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename">
+      <xsl:if test="$manifest.in.base.dir != 0">
+        <xsl:value-of select="$chunk.base.dir"/>
+      </xsl:if>
+      <xsl:value-of select="$manifest"/>
+    </xsl:with-param>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+      <xsl:apply-templates select="$node" mode="enumerate-files"/>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$chunker.output.encoding"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-dir">
+  <xsl:param name="context" select="."/>
+  <!-- directories are now inherited from previous levels -->
+  <xsl:variable name="ppath">
+    <xsl:if test="$context/parent::*">
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="$context/parent::*"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="path">
+    <xsl:call-template name="pi.dbhtml_dir">
+      <xsl:with-param name="node" select="$context"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$path = ''">
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+        <xsl:if test="substring($ppath, string-length($ppath), 1) != '/'">
+          <xsl:text>/</xsl:text>
+        </xsl:if>
+      </xsl:if>
+      <xsl:value-of select="$path"/>
+      <xsl:text>/</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/chunk.xsl b/applications/content/template/docbook/xhtml/chunk.xsl
new file mode 100644
index 0000000..31fb785
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/chunk.xsl
@@ -0,0 +1,52 @@
+<?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:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- First import the non-chunking templates that format elements
+     within each chunk file. In a customization, you should
+     create a separate non-chunking customization layer such
+     as mydocbook.xsl that imports the original docbook.xsl and
+     customizes any presentation templates. Then your chunking
+     customization should import mydocbook.xsl instead of
+     docbook.xsl.  -->
+<xsl:import href="docbook.xsl"/>
+
+<!-- chunk-common.xsl contains all the named templates for chunking.
+     In a customization file, you import chunk-common.xsl, then
+     add any customized chunking templates of the same name. 
+     They will have import precedence over the original 
+     chunking templates in chunk-common.xsl. -->
+<xsl:import href="chunk-common.xsl"/>
+
+<!-- The manifest.xsl module is no longer imported because its
+     templates were moved into chunk-common and chunk-code -->
+
+<!-- chunk-code.xsl contains all the chunking templates that use
+     a match attribute.  In a customization it should be referenced
+     using <xsl:include> instead of <xsl:import>, and then add
+     any customized chunking templates with match attributes. But be sure
+     to add a priority="1" to such customized templates to resolve
+     its conflict with the original, since they have the
+     same import precedence.
+     
+     Using xsl:include prevents adding another layer
+     of import precedence, which would cause any
+     customizations that use xsl:apply-imports to wrongly
+     apply the chunking version instead of the original
+     non-chunking version to format an element.  -->
+<xsl:include href="chunk-code.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/chunker.xsl b/applications/content/template/docbook/xhtml/chunker.xsl
new file mode 100644
index 0000000..730717a
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/chunker.xsl
@@ -0,0 +1,315 @@
+<?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:saxon="http://icl.com/saxon" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:redirect="http://xml.apache.org/xalan/redirect" xmlns:exsl="http://exslt.org/common" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="saxon lxslt redirect exsl doc" extension-element-prefixes="saxon redirect lxslt exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This stylesheet works with XSLT implementations that support -->
+<!-- exsl:document, saxon:output, or Xalan's redirect:write -->
+<!-- Note: Only Saxon 6.4.2 or later is supported. -->
+
+<xsl:param name="chunker.output.method" select="'xml'"/>
+<xsl:param name="chunker.output.encoding" select="'UTF-8'"/>
+<xsl:param name="chunker.output.indent" select="'no'"/>
+<xsl:param name="chunker.output.omit-xml-declaration" select="'no'"/>
+<xsl:param name="chunker.output.standalone" select="'no'"/>
+<xsl:param name="chunker.output.doctype-public" select="'-//W3C//DTD XHTML 1.0 Transitional//EN'"/>
+<xsl:param name="chunker.output.doctype-system" select="'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'"/>
+<xsl:param name="chunker.output.media-type" select="''"/>
+<xsl:param name="chunker.output.cdata-section-elements" select="''"/>
+
+<!-- Make sure base.dir has a trailing slash now -->
+<xsl:param name="chunk.base.dir">
+  <xsl:choose>
+    <xsl:when test="string-length($base.dir) = 0"/>
+    <!-- make sure to add trailing slash if omitted by user -->
+    <xsl:when test="substring($base.dir, string-length($base.dir), 1) = '/'">
+      <xsl:value-of select="$base.dir"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="concat($base.dir, '/')"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<xsl:param name="saxon.character.representation" select="'entity;decimal'"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+  <xsl:param name="base.dir" select="'./'"/>
+  <xsl:param name="base.name" select="''"/>
+
+  <xsl:choose>
+    <!-- put Saxon first to work around a bug in libxslt -->
+    <xsl:when test="element-available('saxon:output')">
+      <!-- Saxon doesn't make the chunks relative -->
+      <xsl:value-of select="concat($chunk.base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:when test="element-available('exsl:document')">
+      <!-- EXSL document does make the chunks relative, I think -->
+      <xsl:choose>
+        <xsl:when test="count(parent::*) = 0">
+          <xsl:value-of select="concat($chunk.base.dir,$base.name)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$base.name"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="element-available('redirect:write')">
+      <!-- Xalan doesn't make the chunks relative -->
+      <xsl:value-of select="concat($chunk.base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>Don't know how to chunk with </xsl:text>
+        <xsl:value-of select="system-property('xsl:vendor')"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="quiet" select="$chunk.quietly"/>
+  <xsl:param name="suppress-context-node-name" select="0"/>
+  <xsl:param name="message-prolog"/>
+  <xsl:param name="message-epilog"/>
+
+  <xsl:param name="method" select="$chunker.output.method"/>
+  <xsl:param name="encoding" select="$chunker.output.encoding"/>
+  <xsl:param name="indent" select="$chunker.output.indent"/>
+  <xsl:param name="omit-xml-declaration" select="$chunker.output.omit-xml-declaration"/>
+  <xsl:param name="standalone" select="$chunker.output.standalone"/>
+  <xsl:param name="doctype-public" select="$chunker.output.doctype-public"/>
+  <xsl:param name="doctype-system" select="$chunker.output.doctype-system"/>
+  <xsl:param name="media-type" select="$chunker.output.media-type"/>
+  <xsl:param name="cdata-section-elements" select="$chunker.output.cdata-section-elements"/>
+
+  <xsl:param name="content"/>
+
+  <xsl:if test="$quiet = 0">
+    <xsl:message>
+      <xsl:if test="not($message-prolog = '')">
+        <xsl:value-of select="$message-prolog"/>
+      </xsl:if>
+      <xsl:text>Writing </xsl:text>
+      <xsl:value-of select="$filename"/>
+      <xsl:if test="name(.) != '' and $suppress-context-node-name = 0">
+        <xsl:text> for </xsl:text>
+        <xsl:value-of select="name(.)"/>
+        <xsl:if test="@id or @xml:id">
+          <xsl:text>(</xsl:text>
+          <xsl:value-of select="(@id|@xml:id)[1]"/>
+          <xsl:text>)</xsl:text>
+        </xsl:if>
+      </xsl:if>
+      <xsl:if test="not($message-epilog = '')">
+        <xsl:value-of select="$message-epilog"/>
+      </xsl:if>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="element-available('exsl:document')">
+      <xsl:choose>
+        <!-- Handle the permutations ... -->
+        <xsl:when test="$media-type != ''">
+          <xsl:choose>
+            <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-public="{$doctype-public}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-public="{$doctype-public}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:when>
+            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </exsl:document>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="element-available('saxon:output')">
+      <xsl:choose>
+        <!-- Handle the permutations ... -->
+        <xsl:when test="$media-type != ''">
+          <xsl:choose>
+            <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-public="{$doctype-public}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="$doctype-public != '' and $doctype-system != ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:when test="$doctype-public != '' and $doctype-system = ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-public="{$doctype-public}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:when test="$doctype-public = '' and $doctype-system != ''">
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-system="{$doctype-system}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:when>
+            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> -->
+              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" standalone="{$standalone}">
+                <xsl:copy-of select="$content"/>
+              </saxon:output>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="element-available('redirect:write')">
+      <!-- Xalan uses redirect -->
+      <redirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </redirect:write>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="system-property('xsl:vendor')"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk.with.doctype">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="quiet" select="$chunk.quietly"/>
+
+  <xsl:param name="method" select="$chunker.output.method"/>
+  <xsl:param name="encoding" select="$chunker.output.encoding"/>
+  <xsl:param name="indent" select="$chunker.output.indent"/>
+  <xsl:param name="omit-xml-declaration" select="$chunker.output.omit-xml-declaration"/>
+  <xsl:param name="standalone" select="$chunker.output.standalone"/>
+  <xsl:param name="doctype-public" select="$chunker.output.doctype-public"/>
+  <xsl:param name="doctype-system" select="$chunker.output.doctype-system"/>
+  <xsl:param name="media-type" select="$chunker.output.media-type"/>
+  <xsl:param name="cdata-section-elements" select="$chunker.output.cdata-section-elements"/>
+
+  <xsl:param name="content"/>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="quiet" select="$quiet"/>
+    <xsl:with-param name="method" select="$method"/>
+    <xsl:with-param name="encoding" select="$encoding"/>
+    <xsl:with-param name="indent" select="$indent"/>
+    <xsl:with-param name="omit-xml-declaration" select="$omit-xml-declaration"/>
+    <xsl:with-param name="standalone" select="$standalone"/>
+    <xsl:with-param name="doctype-public" select="$doctype-public"/>
+    <xsl:with-param name="doctype-system" select="$doctype-system"/>
+    <xsl:with-param name="media-type" select="$media-type"/>
+    <xsl:with-param name="cdata-section-elements" select="$cdata-section-elements"/>
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="write.text.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="quiet" select="$chunk.quietly"/>
+  <xsl:param name="suppress-context-node-name" select="0"/>
+  <xsl:param name="message-prolog"/>
+  <xsl:param name="message-epilog"/>
+  <xsl:param name="method" select="'text'"/>
+  <xsl:param name="encoding" select="$chunker.output.encoding"/>
+  <xsl:param name="media-type" select="$chunker.output.media-type"/>
+  <xsl:param name="content"/>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="quiet" select="$quiet"/>
+    <xsl:with-param name="suppress-context-node-name" select="$suppress-context-node-name"/>
+    <xsl:with-param name="message-prolog" select="$message-prolog"/>
+    <xsl:with-param name="message-epilog" select="$message-epilog"/>
+    <xsl:with-param name="method" select="$method"/>
+    <xsl:with-param name="encoding" select="$encoding"/>
+    <xsl:with-param name="indent" select="'no'"/>
+    <xsl:with-param name="omit-xml-declaration" select="'no'"/>
+    <xsl:with-param name="standalone" select="'no'"/>
+    <xsl:with-param name="doctype-public"/>
+    <xsl:with-param name="doctype-system"/>
+    <xsl:with-param name="media-type" select="$media-type"/>
+    <xsl:with-param name="cdata-section-elements"/>
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/chunkfast.xsl b/applications/content/template/docbook/xhtml/chunkfast.xsl
new file mode 100644
index 0000000..8c2d180
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/chunkfast.xsl
@@ -0,0 +1,69 @@
+<?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:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="cf exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="chunk.xsl"/>
+<xsl:param name="chunk.fast" select="1"/>
+
+<xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+  <xsl:choose>
+    <xsl:when test="$chunk.fast != 0 and $exsl.node.set.available != 0">
+      <xsl:variable name="genid" select="generate-id()"/>
+
+      <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/>
+
+      <xsl:variable name="prevdiv" select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/>
+      <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/>
+
+      <xsl:variable name="nextdiv" select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/>
+      <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and parent::*">
+          <xsl:apply-imports/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="process-chunk">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and not(parent::*)">
+          <xsl:call-template name="chunk-all-sections"/>
+        </xsl:when>
+        <xsl:when test="$onechunk != 0">
+          <xsl:apply-imports/>
+        </xsl:when>
+        <xsl:when test="$chunk.first.sections = 0">
+          <xsl:call-template name="chunk-first-section-with-parent"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="chunk-all-sections"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/chunktoc.xsl b/applications/content/template/docbook/xhtml/chunktoc.xsl
new file mode 100644
index 0000000..488f435
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/chunktoc.xsl
@@ -0,0 +1,538 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="docbook.xsl"/>
+<xsl:import href="chunk-common.xsl"/>
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+  <!-- returns 1 if $node is a chunk -->
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="chunks" select="document($chunk.toc,/)"/>
+
+  <xsl:choose>
+    <xsl:when test="$chunks//tocentry[@linkend=$id]">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="chunk-filename">
+  <!-- returns the filename of a chunk -->
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunks" select="document($chunk.toc,/)"/>
+
+  <xsl:variable name="chunk" select="$chunks//tocentry[@linkend=$id]"/>
+  <xsl:variable name="filename">
+    <xsl:call-template name="pi.dbhtml_filename">
+      <xsl:with-param name="node" select="$chunk"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$chunk">
+      <xsl:value-of select="$filename"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="parent::*" mode="chunk-filename"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunks" select="document($chunk.toc,/)"/>
+
+  <xsl:variable name="chunk" select="$chunks//tocentry[@linkend=$id]"/>
+  <xsl:variable name="prev-id" select="($chunk/preceding::tocentry                          |$chunk/ancestor::tocentry)[last()]/@linkend"/>
+  <xsl:variable name="next-id" select="($chunk/following::tocentry                          |$chunk/child::tocentry)[1]/@linkend"/>
+
+  <xsl:variable name="prev" select="key('id',$prev-id)"/>
+  <xsl:variable name="next" select="key('id',$next-id)"/>
+
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunkfn">
+    <xsl:if test="$ischunk='1'">
+      <xsl:apply-templates mode="chunk-filename" select="."/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+      <xsl:with-param name="base.name" select="$chunkfn"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$ischunk = 0">
+      <xsl:apply-imports/>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="$filename"/>
+        <xsl:with-param name="content">
+          <xsl:call-template name="chunk-element-content">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+          </xsl:call-template>
+        </xsl:with-param>
+        <xsl:with-param name="quiet" select="$chunk.quietly"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book/appendix">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book/glossary">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="book/bibliography">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="dedication" mode="dedication">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="preface|chapter">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="part|reference">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="refentry">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="colophon">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="topic">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article/appendix">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article/glossary">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="article/bibliography">
+  <xsl:call-template name="process-chunk"/>
+</xsl:template>
+
+<xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$ischunk != 0">
+      <xsl:call-template name="process-chunk"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-imports/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex                      |book/index                      |article/index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. -->
+  <xsl:if test="count(*)&gt;0 or $generate.index != '0'">
+    <xsl:call-template name="process-chunk"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$chunk.toc = ''">
+      <xsl:message terminate="yes">
+        <xsl:text>The chunk.toc file is not set.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+	 stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>stripped namespace before processing</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:variable name="nons">
+        <xsl:apply-templates mode="stripNS"/>
+      </xsl:variable>
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates select="exsl:node-set($nons)"/>
+    </xsl:when>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="*/self::ng:* or */self::db:*">
+      <xsl:message terminate="yes">
+        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+        <xsl:text> cannot proceed.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count(key('id',$rootid)) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/>
+                </xsl:if>
+                <xsl:if test="$generate.manifest != 0">
+                  <xsl:call-template name="generate.manifest">
+                    <xsl:with-param name="node" select="key('id',$rootid)"/>
+                  </xsl:call-template>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="/" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="/" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="/" mode="collect.tex.math"/>
+            </xsl:if>
+            <xsl:if test="$generate.manifest != 0">
+              <xsl:call-template name="generate.manifest">
+                <xsl:with-param name="node" select="/"/>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:apply-templates select="."/>
+  <xsl:call-template name="generate.css"/>
+</xsl:template>
+
+<xsl:template name="make.lots">
+  <xsl:param name="toc.params" select="''"/>
+  <xsl:param name="toc"/>
+
+  <xsl:variable name="lots">
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:copy-of select="$toc"/>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'figure')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'figure'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'figure'"/>
+                <xsl:with-param name="nodes" select=".//figure"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'figure'"/>
+            <xsl:with-param name="nodes" select=".//figure"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'table')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'table'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'table'"/>
+                <xsl:with-param name="nodes" select=".//table"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'table'"/>
+            <xsl:with-param name="nodes" select=".//table"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'example')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'example'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'example'"/>
+                <xsl:with-param name="nodes" select=".//example"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'example'"/>
+            <xsl:with-param name="nodes" select=".//example"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'equation')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'equation'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'equation'"/>
+                <xsl:with-param name="nodes" select=".//equation"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'equation'"/>
+            <xsl:with-param name="nodes" select=".//equation"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+
+    <xsl:if test="contains($toc.params, 'procedure')">
+      <xsl:choose>
+        <xsl:when test="$chunk.separate.lots != '0'">
+          <xsl:call-template name="make.lot.chunk">
+            <xsl:with-param name="type" select="'procedure'"/>
+            <xsl:with-param name="lot">
+              <xsl:call-template name="list.of.titles">
+                <xsl:with-param name="titles" select="'procedure'"/>
+                <xsl:with-param name="nodes" select=".//procedure[title]"/>
+              </xsl:call-template>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.titles">
+            <xsl:with-param name="titles" select="'procedure'"/>
+            <xsl:with-param name="nodes" select=".//procedure[title]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="string($lots) != ''">
+    <xsl:choose>
+      <xsl:when test="$chunk.tocs.and.lots != 0 and not(parent::*)">
+        <xsl:call-template name="write.chunk">
+          <xsl:with-param name="filename">
+            <xsl:call-template name="make-relative-filename">
+              <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+              <xsl:with-param name="base.name">
+                <xsl:call-template name="dbhtml-dir"/>
+                <xsl:apply-templates select="." mode="recursive-chunk-filename">
+                  <xsl:with-param name="recursive" select="true()"/>
+                </xsl:apply-templates>
+                <xsl:text>-toc</xsl:text>
+                <xsl:value-of select="$html.ext"/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="content">
+            <xsl:call-template name="chunk-element-content">
+              <xsl:with-param name="prev" select="/foo"/>
+              <xsl:with-param name="next" select="/foo"/>
+              <xsl:with-param name="nav.context" select="'toc'"/>
+              <xsl:with-param name="content">
+                <h1>
+                  <xsl:apply-templates select="." mode="object.title.markup"/>
+                </h1>
+                <xsl:copy-of select="$lots"/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="quiet" select="$chunk.quietly"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$lots"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="make.lot.chunk">
+  <xsl:param name="type" select="''"/>
+  <xsl:param name="lot"/>
+
+  <xsl:if test="string($lot) != ''">
+    <xsl:variable name="filename">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+        <xsl:with-param name="base.name">
+          <xsl:call-template name="dbhtml-dir"/>
+          <xsl:value-of select="$type"/>
+          <xsl:text>-toc</xsl:text>
+          <xsl:value-of select="$html.ext"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="href">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir" select="''"/>
+        <xsl:with-param name="base.name">
+          <xsl:call-template name="dbhtml-dir"/>
+          <xsl:value-of select="$type"/>
+          <xsl:text>-toc</xsl:text>
+          <xsl:value-of select="$html.ext"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="write.chunk">
+      <xsl:with-param name="filename" select="$filename"/>
+      <xsl:with-param name="content">
+        <xsl:call-template name="chunk-element-content">
+          <xsl:with-param name="prev" select="/foo"/>
+          <xsl:with-param name="next" select="/foo"/>
+          <xsl:with-param name="nav.context" select="'toc'"/>
+          <xsl:with-param name="content">
+            <xsl:copy-of select="$lot"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:with-param>
+      <xsl:with-param name="quiet" select="$chunk.quietly"/>
+    </xsl:call-template>
+    <!-- And output a link to this file -->
+    <div>
+      <xsl:attribute name="class">
+        <xsl:text>ListofTitles</xsl:text>
+      </xsl:attribute>
+      <a href="{$href}">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key">
+            <xsl:choose>
+              <xsl:when test="$type='table'">ListofTables</xsl:when>
+              <xsl:when test="$type='figure'">ListofFigures</xsl:when>
+              <xsl:when test="$type='equation'">ListofEquations</xsl:when>
+              <xsl:when test="$type='example'">ListofExamples</xsl:when>
+              <xsl:when test="$type='procedure'">ListofProcedures</xsl:when>
+              <xsl:otherwise>ListofUnknown</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+      </a>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/component.xsl b/applications/content/template/docbook/xhtml/component.xsl
new file mode 100644
index 0000000..f14ac2a
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/component.xsl
@@ -0,0 +1,439 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- Set to 2 for backwards compatibility -->
+<xsl:param name="component.heading.level" select="2"/>
+
+<xsl:template name="component.title">
+  <xsl:param name="node" select="."/>
+
+  <!-- This handles the case where a component (bibliography, for example)
+       occurs inside a section; will we need parameters for this? -->
+
+  <!-- This "level" is a section level.  To compute <h> level, add 1. -->
+  <xsl:variable name="level">
+    <xsl:choose>
+      <!-- chapters and other book children should get <h1> -->
+      <xsl:when test="$node/parent::book">0</xsl:when>
+      <xsl:when test="ancestor::section">
+        <xsl:value-of select="count(ancestor::section)+1"/>
+      </xsl:when>
+      <xsl:when test="ancestor::sect5">6</xsl:when>
+      <xsl:when test="ancestor::sect4">5</xsl:when>
+      <xsl:when test="ancestor::sect3">4</xsl:when>
+      <xsl:when test="ancestor::sect2">3</xsl:when>
+      <xsl:when test="ancestor::sect1">2</xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="h{$level+1}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:attribute name="class">title</xsl:attribute>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select="$node"/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="$node" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="component.subtitle">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="subtitle" select="($node/docinfo/subtitle                         |$node/info/subtitle                         |$node/prefaceinfo/subtitle                         |$node/chapterinfo/subtitle                         |$node/appendixinfo/subtitle                         |$node/articleinfo/subtitle                         |$node/artheader/subtitle                         |$node/subtitle)[1]"/>
+
+  <xsl:if test="$subtitle">
+    <h3 class="subtitle">
+      <xsl:call-template name="id.attribute"/>
+      <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+        <xsl:apply-templates select="$node" mode="object.subtitle.markup"/>
+      </em>
+    </h3>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.separator">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="dedication" mode="dedication">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="dedication.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="dedication/title|dedication/info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::dedication[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="dedication/subtitle|dedication/info/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::dedication[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="dedication"/> <!-- see mode="dedication" -->
+<xsl:template match="dedication/title"/>
+<xsl:template match="dedication/subtitle"/>
+<xsl:template match="dedication/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="acknowledgements" mode="acknowledgements">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="acknowledgements.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="acknowledgements/title|acknowledgements/info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::acknowledgements[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="acknowledgements/subtitle|acknowledgements/info/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::acknowledgements[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="acknowledgements"/> <!-- see mode="acknowledgements" -->
+<xsl:template match="acknowledgements/title"/>
+<xsl:template match="acknowledgements/subtitle"/>
+<xsl:template match="acknowledgements/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="colophon">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="component.title"/>
+    <xsl:call-template name="component.subtitle"/>
+
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="colophon/title"/>
+<xsl:template match="colophon/subtitle"/>
+<xsl:template match="colophon/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="preface">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="preface.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:call-template name="component.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="preface/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::preface[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface/subtitle                      |preface/prefaceinfo/subtitle                      |preface/info/subtitle                      |preface/docinfo/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::preface[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface/docinfo|prefaceinfo"/>
+<xsl:template match="preface/info"/>
+<xsl:template match="preface/title"/>
+<xsl:template match="preface/titleabbrev"/>
+<xsl:template match="preface/subtitle"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="chapter">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="chapter.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:call-template name="component.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="chapter/title|chapter/chapterinfo/title|chapter/info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::chapter[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter/subtitle                      |chapter/chapterinfo/subtitle                      |chapter/info/subtitle                      |chapter/docinfo/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::chapter[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter/docinfo|chapterinfo"/>
+<xsl:template match="chapter/info"/>
+<xsl:template match="chapter/title"/>
+<xsl:template match="chapter/titleabbrev"/>
+<xsl:template match="chapter/subtitle"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="appendix">
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="parent::article and $ischunk = 0">
+        <xsl:call-template name="section.heading">
+          <xsl:with-param name="level" select="1"/>
+          <xsl:with-param name="title">
+            <xsl:apply-templates select="." mode="object.title.markup"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="component.separator"/>
+        <xsl:call-template name="appendix.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:call-template name="component.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+
+    <xsl:if test="not(parent::article) or $ischunk != 0">
+      <xsl:call-template name="process.footnotes"/>
+    </xsl:if>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="appendix/title|appendix/appendixinfo/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::appendix[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="appendix/subtitle                      |appendix/appendixinfo/subtitle                      |appendix/info/subtitle                      |appendix/docinfo/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::appendix[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="appendix/docinfo|appendixinfo"/>
+<xsl:template match="appendix/info"/>
+<xsl:template match="appendix/title"/>
+<xsl:template match="appendix/titleabbrev"/>
+<xsl:template match="appendix/subtitle"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="article">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="article.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.lots">
+      <xsl:with-param name="toc.params" select="$toc.params"/>
+      <xsl:with-param name="toc">
+        <xsl:call-template name="component.toc">
+          <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="article/title|article/articleinfo/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::article[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="article/subtitle                      |article/articleinfo/subtitle                      |article/info/subtitle                      |article/artheader/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::article[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="article/artheader|article/articleinfo"/>
+<xsl:template match="article/info"/>
+<xsl:template match="article/title"/>
+<xsl:template match="article/titleabbrev"/>
+<xsl:template match="article/subtitle"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="topic">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="topic.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:apply-templates/>
+
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="topic/title|topic/info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::topic[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="topic/subtitle                      |topic/info/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::topic[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="topic/info"/>
+<xsl:template match="topic/title"/>
+<xsl:template match="topic/titleabbrev"/>
+<xsl:template match="topic/subtitle"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/division.xsl b/applications/content/template/docbook/xhtml/division.xsl
new file mode 100644
index 0000000..3d69b9c
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/division.xsl
@@ -0,0 +1,212 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="language.attribute"/>
+    <xsl:if test="$generate.id.attributes != 0">
+      <xsl:attribute name="id">
+        <xsl:call-template name="object.id"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:call-template name="set.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.lots">
+      <xsl:with-param name="toc.params" select="$toc.params"/>
+      <xsl:with-param name="toc">
+        <xsl:call-template name="set.toc">
+          <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="set/setinfo"/>
+<xsl:template match="set/title"/>
+<xsl:template match="set/titleabbrev"/>
+<xsl:template match="set/subtitle"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="book.titlepage"/>
+
+    <xsl:apply-templates select="dedication" mode="dedication"/>
+    <xsl:apply-templates select="acknowledgements" mode="acknowledgements"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.lots">
+      <xsl:with-param name="toc.params" select="$toc.params"/>
+      <xsl:with-param name="toc">
+        <xsl:call-template name="division.toc">
+          <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+        </xsl:call-template>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="book/bookinfo"/>
+<xsl:template match="book/info"/>
+<xsl:template match="book/title"/>
+<xsl:template match="book/titleabbrev"/>
+<xsl:template match="book/subtitle"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="part">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="part.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:if test="not(partintro) and contains($toc.params, 'toc')">
+      <xsl:call-template name="division.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="part" mode="make.part.toc">
+  <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="reference" mode="make.part.toc">
+  <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="part/docinfo"/>
+<xsl:template match="part/partinfo"/>
+<xsl:template match="part/info"/>
+<xsl:template match="part/title"/>
+<xsl:template match="part/titleabbrev"/>
+<xsl:template match="part/subtitle"/>
+
+<xsl:template match="partintro">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="partintro.titlepage"/>
+    <xsl:apply-templates/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="node" select="parent::*"/>
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:if test="contains($toc.params, 'toc')">
+      <!-- not ancestor::part because partintro appears in reference -->
+      <xsl:apply-templates select="parent::*" mode="make.part.toc"/>
+    </xsl:if>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="partintro/title"/>
+<xsl:template match="partintro/titleabbrev"/>
+<xsl:template match="partintro/subtitle"/>
+
+<xsl:template match="partintro/title" mode="partintro.title.mode">
+  <h2>
+    <xsl:apply-templates/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="partintro/subtitle" mode="partintro.title.mode">
+  <h3>
+    <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></em>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book" mode="division.number">
+  <xsl:number from="set" count="book" format="1."/>
+</xsl:template>
+
+<xsl:template match="part" mode="division.number">
+  <xsl:number from="book" count="part" format="I."/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="division.title">
+  <xsl:param name="node" select="."/>
+
+  <h1>
+    <xsl:attribute name="class">title</xsl:attribute>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select="$node"/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="$node" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </h1>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/docbook.css.xml b/applications/content/template/docbook/xhtml/docbook.css.xml
new file mode 100644
index 0000000..f1509bf
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/docbook.css.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<style>
+
+/********************************/
+/* start of styles in block.xsl */
+
+.formalpara-title {
+  font-weight: bold;
+}
+
+div.blockquote-title {
+  font-weight: bold;
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msgmain-title {
+  font-weight: bold;
+}
+
+span.msgsub-title {
+  font-weight: bold;
+}
+
+span.msgrel-title {
+  font-weight: bold;
+}
+
+div.msglevel, div.msgorig, div.msgaud {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msglevel-title, span.msgorig-title, span.msgaud-title {
+  font-weight: bold;
+}
+
+div.msgexplan {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msgexplan-title {
+  font-weight: bold;
+}
+
+/* end of styles in block.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in autotoc.xsl */
+
+
+/* end of styles in autotoc.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in formal.xsl */
+
+div.figure-title {
+  font-weight: bold;
+}
+
+div.example-title {
+  font-weight: bold;
+}
+
+div.equation-title {
+  font-weight: bold;
+}
+
+div.table-title {
+  font-weight: bold;
+}
+
+div.sidebar-title {
+  font-weight: bold;
+}
+
+
+/* end of styles in formal.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in verbatim.xsl */
+
+div.programlisting {
+  white-space: pre;
+  font-family: monospace;
+}
+
+div.screen {
+  white-space: pre;
+  font-family: monospace;
+}
+
+div.synopsis {
+  white-space: pre;
+  font-family: monospace;
+}
+
+/* end of styles in verbatim.xsl */
+/********************************/
+
+/* footnote rule */
+hr.footnote-hr {
+  width: 100;
+}
+
+</style>
diff --git a/applications/content/template/docbook/xhtml/docbook.xsl b/applications/content/template/docbook/xhtml/docbook.xsl
new file mode 100644
index 0000000..d762726
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/docbook.xsl
@@ -0,0 +1,492 @@
+<?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:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="db ng exsl exslt" version="1.0">
+
+<xsl:output method="xml" encoding="UTF-8" indent="no" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION.xsl"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/utility.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="../common/targets.xsl"/>
+<xsl:include href="../common/olink.xsl"/>
+<xsl:include href="../common/pi.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="autoidx.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="htmltbl.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="html.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="biblio-iso690.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="task.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="pi.xsl"/>
+<xsl:include href="ebnf.xsl"/>
+<xsl:include href="chunker.xsl"/>
+<xsl:include href="html-rtf.xsl"/>
+<xsl:include href="annotations.xsl"/>
+<xsl:include href="../common/stripns.xsl"/>
+
+<xsl:param name="stylesheet.result.type" select="'xhtml'"/>
+<xsl:param name="htmlhelp.output" select="0"/>
+
+<!-- ==================================================================== -->
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+<xsl:key name="gid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:text>Element </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text> in namespace '</xsl:text>
+    <xsl:value-of select="namespace-uri(.)"/>
+    <xsl:text>' encountered</xsl:text>
+    <xsl:if test="parent::*">
+      <xsl:text> in </xsl:text>
+      <xsl:value-of select="name(parent::*)"/>
+    </xsl:if>
+    <xsl:text>, but no template matches.</xsl:text>
+  </xsl:message>
+
+  <span style="color: red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="text()">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="body.attributes"><xslo:if xmlns:xslo="http://www.w3.org/1999/XSL/Transform" test="starts-with($writing.mode, 'rl')"><xslo:attribute name="dir">rtl</xslo:attribute></xslo:if>
+<!-- no apply-templates; make it empty except for dir for rtl-->
+</xsl:template>
+
+<xsl:template name="head.content">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="title">
+    <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/>
+  </xsl:param>
+
+  <title>
+    <xsl:copy-of select="$title"/>
+  </title>
+
+  <xsl:if test="$html.base != ''">
+    <base href="{$html.base}"/>
+  </xsl:if>
+
+  <!-- Insert links to CSS files or insert literal style elements -->
+  <xsl:call-template name="generate.css"/>
+
+  <xsl:if test="$html.stylesheet != ''">
+    <xsl:call-template name="output.html.stylesheets">
+      <xsl:with-param name="stylesheets" select="normalize-space($html.stylesheet)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$html.script != ''">
+    <xsl:call-template name="output.html.scripts">
+      <xsl:with-param name="scripts" select="normalize-space($html.script)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$link.mailto.url != ''">
+    <link rev="made" href="{$link.mailto.url}"/>
+  </xsl:if>
+
+  <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/>
+
+  <xsl:if test="$generate.meta.abstract != 0">
+    <xsl:variable name="info" select="(articleinfo                                       |bookinfo                                       |prefaceinfo                                       |chapterinfo                                       |appendixinfo                                       |sectioninfo                                       |sect1info                                       |sect2info                                       |sect3info                                       |sect4info                                       |sect5info                                       |referenceinfo                                       |refentryinfo                                       |partinfo                                       |info                                       |docinfo)[1]"/>
+    <xsl:if test="$info and $info/abstract">
+      <meta name="description">
+        <xsl:attribute name="content">
+          <xsl:for-each select="$info/abstract[1]/*">
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:if test="position() &lt; last()">
+              <xsl:text> </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </meta>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:if test="($draft.mode = 'yes' or                 ($draft.mode = 'maybe' and                 ancestor-or-self::*[@status][1]/@status = 'draft'))                 and $draft.watermark.image != ''">
+    <style type="text/css"><xsl:text>
+body { background-image: url('</xsl:text>
+<xsl:value-of select="$draft.watermark.image"/><xsl:text>');
+       background-repeat: no-repeat;
+       background-position: top left;
+       /* The following properties make the watermark "fixed" on the page. */
+       /* I think that's just a bit too distracting for the reader... */
+       /* background-attachment: fixed; */
+       /* background-position: center center; */
+     }</xsl:text>
+    </style>
+  </xsl:if>
+  <xsl:apply-templates select="." mode="head.keywords.content"/>
+</xsl:template>
+
+<xsl:template name="output.html.stylesheets">
+  <xsl:param name="stylesheets" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($stylesheets, ' ')">
+      <xsl:variable name="css.filename" select="substring-before($stylesheets, ' ')"/>
+
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$css.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.stylesheets">
+        <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$stylesheets != ''">
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$stylesheets"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="output.html.scripts">
+  <xsl:param name="scripts" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($scripts, ' ')">
+      <xsl:variable name="script.filename" select="substring-before($scripts, ' ')"/>
+
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$script.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.scripts">
+        <xsl:with-param name="scripts" select="substring-after($scripts, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$scripts != ''">
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$scripts"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="head.keywords.content">
+  <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="artheader/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sectioninfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="info/keywordset" mode="html.header"/>
+
+  <xsl:if test="$inherit.keywords != 0                 and parent::*">
+    <xsl:apply-templates select="parent::*" mode="head.keywords.content"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="system.head.content">
+  <xsl:param name="node" select="."/>
+
+  <!-- FIXME: When chunking, only the annotations actually used
+              in this chunk should be referenced. I don't think it
+              does any harm to reference them all, but it adds
+              unnecessary bloat to each chunk. -->
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <xsl:call-template name="add.annotation.links"/>
+    <script type="text/javascript">
+      <xsl:text>
+// Create PopupWindow objects</xsl:text>
+      <xsl:for-each select="//annotation">
+        <xsl:text>
+var popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text> = new PopupWindow("popup-</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>");
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.offsetY = 15;
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.autoHide();
+</xsl:text>
+      </xsl:for-each>
+    </script>
+
+    <style type="text/css">
+      <xsl:value-of select="$annotation.css"/>
+    </style>
+  </xsl:if>
+
+  <!-- system.head.content is like user.head.content, except that
+       it is called before head.content. This is important because it
+       means, for example, that <style> elements output by system.head.content
+       have a lower CSS precedence than the users stylesheet. -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="user.preroot">
+  <!-- Pre-root output, can be used to output comments and PIs. -->
+  <!-- This must not output any element content! -->
+</xsl:template>
+
+<xsl:template name="user.head.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<!-- To use the same stripped nodeset everywhere, it should
+be created as a global variable here.
+Used by docbook.xsl, chunk-code.xsl and chunkfast.xsl -->
+<xsl:variable name="no.namespace">
+  <xsl:if test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">
+    <xsl:apply-templates select="/*" mode="stripNS"/>
+  </xsl:if>
+</xsl:variable>
+
+<xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>stripped namespace before processing</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <!-- DEBUG: to save stripped document.
+      <xsl:message>Saving stripped document.</xsl:message>
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="'/tmp/stripped.xml'"/>
+        <xsl:with-param name="method" select="'xml'"/>
+        <xsl:with-param name="content">
+          <xsl:copy-of select="exsl:node-set($no.namespace)"/>
+        </xsl:with-param>
+      </xsl:call-template>
+      -->
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates select="exsl:node-set($no.namespace)"/>
+    </xsl:when>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="*/self::ng:* or */self::db:*">
+      <xsl:message terminate="yes">
+        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+        <xsl:text> cannot proceed.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count(key('id',$rootid)) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="/" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="/" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="/" mode="collect.tex.math"/>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="doc" select="self::*"/>
+
+  <xsl:call-template name="user.preroot"/>
+  <xsl:call-template name="root.messages"/>
+
+  <html>
+    <xsl:call-template name="root.attributes"/>
+    <head>
+      <xsl:call-template name="system.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="user.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </head>
+    <body>
+      <xsl:call-template name="body.attributes"/>
+      <xsl:call-template name="user.header.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:apply-templates select="."/>
+      <xsl:call-template name="user.footer.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$html.append"/>
+  
+  <!-- Generate any css files only once, not once per chunk -->
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<xsl:template name="root.attributes">
+  <!-- customize to add attributes to <html> element  -->
+</xsl:template>
+
+<xsl:template name="root.messages">
+  <!-- redefine this any way you'd like to output messages -->
+  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+
+  <!-- The default is that we are not chunking... -->
+  <xsl:text>0</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/ebnf.xsl b/applications/content/template/docbook/xhtml/ebnf.xsl
new file mode 100644
index 0000000..ed8f650
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/ebnf.xsl
@@ -0,0 +1,330 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="doc" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo xmlns="http://www.w3.org/1999/xhtml">
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title xmlns="http://www.w3.org/1999/xhtml">HTML EBNF Reference</title>
+
+<partintro xmlns="http://www.w3.org/1999/xhtml">
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This reference describes the templates and parameters relevant
+to formatting EBNF markup.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productionset">
+  <table width="100%" cellpadding="5">
+    <xsl:if test="$ebnf.table.bgcolor != ''">
+      <xsl:attribute name="bgcolor">
+        <xsl:value-of select="$ebnf.table.bgcolor"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$ebnf.table.border != 0">
+      <xsl:attribute name="border">1</xsl:attribute>
+    </xsl:if>
+    <xsl:attribute name="class">
+      <xsl:value-of select="local-name(.)"/>
+    </xsl:attribute>
+    <xsl:attribute name="summary">
+      <xsl:text>EBNF</xsl:text>
+      <xsl:if test="title|info/title">
+        <xsl:text> for </xsl:text>
+        <xsl:value-of select="title|info/title[1]"/>
+      </xsl:if>
+    </xsl:attribute>
+
+    <xsl:if test="title|info/title">
+      <tr>
+        <th align="{$direction.align.start}" valign="top">
+          <xsl:apply-templates select="." mode="class.attribute"/>
+          <xsl:apply-templates select="title|info/title[1]"/>
+        </th>
+      </tr>
+    </xsl:if>
+    <tr>
+      <td>
+        <table border="0" width="99%" cellpadding="0">
+          <xsl:if test="$ebnf.table.bgcolor != ''">
+            <xsl:attribute name="bgcolor">
+              <xsl:value-of select="$ebnf.table.bgcolor"/>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:attribute name="class">
+            <xsl:value-of select="local-name(.)"/>
+          </xsl:attribute>
+          <xsl:attribute name="summary">EBNF productions</xsl:attribute>
+          <xsl:apply-templates select="production|productionrecap"/>
+        </table>
+      </td>
+    </tr>
+  </table>
+</xsl:template>
+
+<xsl:template match="productionset/title">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="production">
+  <xsl:param name="recap" select="false()"/>
+  <tr>
+    <td align="{$direction.align.start}" valign="top" width="3%">
+      <xsl:text>[</xsl:text>
+      <xsl:number count="production" level="any"/>
+      <xsl:text>]</xsl:text>
+    </td>
+    <td align="{$direction.align.end}" valign="top" width="10%">
+      <xsl:choose>
+        <xsl:when test="$recap">
+          <a>
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="."/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:apply-templates select="lhs"/>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="id.attribute"/>
+          <xsl:call-template name="anchor"/>
+          <xsl:apply-templates select="lhs"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <td valign="top" width="5%" align="center">
+      <xsl:copy-of select="$ebnf.assignment"/>
+    </td>
+    <td valign="top" width="52%">
+      <xsl:apply-templates select="rhs"/>
+      <xsl:copy-of select="$ebnf.statement.terminator"/>
+    </td>
+    <td align="{$direction.align.start}" valign="top" width="30%">
+      <xsl:choose>
+        <xsl:when test="rhs/lineannotation|constraint">
+          <xsl:apply-templates select="rhs/lineannotation" mode="rhslo"/>
+          <xsl:apply-templates select="constraint"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>&#160;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="productionrecap">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:if test="count($targets)=0">
+    <xsl:message>
+      <xsl:text>Error: no ID for productionrecap linkend: </xsl:text>
+      <xsl:value-of select="@linkend"/>
+      <xsl:text>.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="count($targets)&gt;1">
+    <xsl:message>
+      <xsl:text>Warning: multiple "IDs" for productionrecap linkend: </xsl:text>
+      <xsl:value-of select="@linkend"/>
+      <xsl:text>.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:apply-templates select="$target">
+    <xsl:with-param name="recap" select="true()"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="lhs">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="rhs">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::rhs">
+    <xsl:text> |</xsl:text>
+    <br/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="nonterminal">
+  <xsl:variable name="linkend">
+    <xsl:call-template name="xpointer.idref">
+      <xsl:with-param name="xpointer" select="@def"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="$linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="check.idref.targets">
+    <xsl:with-param name="linkend" select="$linkend"/>
+    <xsl:with-param name="element-list">production</xsl:with-param>
+  </xsl:call-template>
+
+  <!-- If you don't provide content, you can't point outside this doc. -->
+  <xsl:choose>
+    <xsl:when test="*|text()"><!--nop--></xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$linkend = ''">
+        <xsl:message>
+          <xsl:text>Non-terminals with no content must point to </xsl:text>
+          <xsl:text>production elements in the current document.</xsl:text>
+        </xsl:message>
+        <xsl:message>
+          <xsl:text>Invalid xpointer for empty nt: </xsl:text>
+          <xsl:value-of select="@def"/>
+        </xsl:message>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:variable name="href">
+    <xsl:choose>
+      <xsl:when test="$linkend != ''">
+        <xsl:variable name="targets" select="key('id',$linkend)"/>
+        <xsl:variable name="target" select="$targets[1]"/>
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select="$target"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@def"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <a href="{$href}">
+    <xsl:choose>
+      <xsl:when test="*|text()">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="$linkend != ''">
+            <xsl:variable name="targets" select="key('id',$linkend)"/>
+            <xsl:variable name="target" select="$targets[1]"/>
+            <xsl:apply-templates select="$target/lhs"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text>???</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </a>
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation" mode="rhslo">
+  <xsl:text>/*&#160;</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>&#160;*/</xsl:text>
+  <br/>
+</xsl:template>
+
+<xsl:template match="constraint">
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="check.idref.targets">
+    <xsl:with-param name="linkend" select="@linkend"/>
+    <xsl:with-param name="element-list">constraintdef</xsl:with-param>
+  </xsl:call-template>
+
+  <xsl:variable name="href">
+    <xsl:variable name="targets" select="key('id',@linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+    <xsl:call-template name="href.target">
+      <xsl:with-param name="object" select="$target"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:text>[&#160;</xsl:text>
+
+  <xsl:choose>
+    <xsl:when test="@role">
+      <xsl:value-of select="@role"/>
+      <xsl:text>: </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="targets" select="key('id',@linkend)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+      <xsl:if test="$target/@role">
+        <xsl:value-of select="$target/@role"/>
+        <xsl:text>: </xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <a href="{$href}">
+    <xsl:variable name="targets" select="key('id',@linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+    <xsl:apply-templates select="$target" mode="title.markup"/>
+  </a>
+  <xsl:text>&#160;]</xsl:text>
+  <xsl:if test="following-sibling::constraint">
+    <br/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="constraintdef">
+  <div>
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="constraintdef/title">
+  <p><strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></strong></p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/footnote.xsl b/applications/content/template/docbook/xhtml/footnote.xsl
new file mode 100644
index 0000000..b6d3e8b
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/footnote.xsl
@@ -0,0 +1,339 @@
+<?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:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="exsl" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- This template generates just the footnote marker inline.
+The footnote text is handled in name="process.footnote".
+The footnote marker gets an id of @id, while the
+footnote text gets an id of #ftn.@id. They cross link to each other. -->
+<xsl:template match="footnote">
+  <xsl:variable name="href">
+    <xsl:text>#ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <a href="{$href}">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <sup>
+      <xsl:apply-templates select="." mode="class.attribute"/>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:text>[</xsl:text>
+      <xsl:apply-templates select="." mode="footnote.number"/>
+      <xsl:text>]</xsl:text>
+    </sup>
+  </a>
+</xsl:template>
+
+<xsl:template match="footnoteref">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="footnote" select="$targets[1]"/>
+
+  <xsl:if test="not(local-name($footnote) = 'footnote')">
+   <xsl:message terminate="yes">
+ERROR: A footnoteref element has a linkend that points to an element that is not a footnote. 
+Typically this happens when an id attribute is accidentally applied to the child of a footnote element. 
+target element: <xsl:value-of select="local-name($footnote)"/>
+linkend/id: <xsl:value-of select="@linkend"/>
+   </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="target.href">
+    <xsl:call-template name="href.target">
+      <xsl:with-param name="object" select="$footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="href">
+    <xsl:value-of select="substring-before($target.href, '#')"/>
+    <xsl:text>#ftn.</xsl:text>
+    <xsl:value-of select="substring-after($target.href, '#')"/>
+  </xsl:variable>
+
+  <a href="{$href}">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="id.attribute"/>
+    <sup>
+      <xsl:apply-templates select="." mode="class.attribute"/>
+      <xsl:text>[</xsl:text>
+      <xsl:apply-templates select="$footnote" mode="footnote.number"/>
+      <xsl:text>]</xsl:text>
+    </sup>
+  </a>
+</xsl:template>
+
+<xsl:template match="footnote" mode="footnote.number">
+  <xsl:choose>
+    <xsl:when test="string-length(@label) != 0">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="ancestor::table or ancestor::informaltable">
+      <xsl:variable name="tfnum">
+        <xsl:number level="any" from="table|informaltable" format="1"/>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="string-length($table.footnote.number.symbols) &gt;= $tfnum">
+          <xsl:value-of select="substring($table.footnote.number.symbols, $tfnum, 1)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number level="any" from="table | informaltable" format="{$table.footnote.number.format}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="pfoot" select="preceding::footnote[not(@label)]"/>
+      <xsl:variable name="ptfoot" select="preceding::table//footnote |                                           preceding::informaltable//footnote"/>
+      <xsl:variable name="fnum" select="count($pfoot) - count($ptfoot) + 1"/>
+
+      <xsl:choose>
+        <xsl:when test="string-length($footnote.number.symbols) &gt;= $fnum">
+          <xsl:value-of select="substring($footnote.number.symbols, $fnum, 1)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number value="$fnum" format="{$footnote.number.format}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="footnote/para[1]|footnote/simpara[1]" priority="2">
+  <!-- this only works if the first thing in a footnote is a para, -->
+  <!-- which is ok, because it usually is. -->
+  <xsl:variable name="href">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class">
+      <xsl:if test="@role and $para.propagates.style != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:if>
+    </xsl:with-param>
+    <xsl:with-param name="content">
+      <a href="{$href}">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <sup>
+          <xsl:apply-templates select="." mode="class.attribute"/>
+          <xsl:text>[</xsl:text>
+          <xsl:apply-templates select="ancestor::footnote" mode="footnote.number"/>
+          <xsl:text>] </xsl:text>
+        </sup>
+      </a>
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="footnote.body.number">
+  <xsl:variable name="name">
+    <xsl:text>ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="footnote.mark">
+    <a href="{$href}">
+      <xsl:apply-templates select="." mode="class.attribute"/>
+      <xsl:choose>
+        <xsl:when test="$generate.id.attributes = 0">
+          <xsl:if test="@id or @xml:id">
+            <xsl:attribute name="id">
+              <xsl:value-of select="@id|@xml:id"/>
+            </xsl:attribute>
+          </xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="id.attribute"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <sup>
+        <xsl:text>[</xsl:text>
+        <xsl:apply-templates select="ancestor::footnote" mode="footnote.number"/>
+        <xsl:text>] </xsl:text>
+      </sup>
+    </a>
+  </xsl:variable>
+
+  <xsl:variable name="html">
+    <xsl:apply-templates select="."/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:variable name="html-nodes" select="exsl:node-set($html)"/>
+      <xsl:choose>
+        <xsl:when test="$html-nodes//p">
+          <xsl:apply-templates select="$html-nodes" mode="insert.html.p">
+            <xsl:with-param name="mark" select="$footnote.mark"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$html-nodes" mode="insert.html.text">
+            <xsl:with-param name="mark" select="$footnote.mark"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$html"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!--
+<xsl:template name="count-element-from">
+  <xsl:param name="from" select=".."/>
+  <xsl:param name="to" select="."/>
+  <xsl:param name="count" select="0"/>
+  <xsl:param name="list" select="$from/following::*[local-name(.)=local-name($to)]
+                                 |$from/descendant-or-self::*[local-name(.)=local-name($to)]"/>
+
+  <xsl:choose>
+    <xsl:when test="not($list)">
+      <xsl:text>-1</xsl:text>
+    </xsl:when>
+    <xsl:when test="$list[1] = $to">
+      <xsl:value-of select="$count + 1"/>
+    </xsl:when>
+    <xsl:otherwise>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+-->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.footnotes">
+  <xsl:variable name="footnotes" select=".//footnote"/>
+  <xsl:variable name="table.footnotes" select=".//table//footnote | .//informaltable//footnote"/>
+
+  <!-- Only bother to do this if there's at least one non-table footnote -->
+  <xsl:if test="count($footnotes)&gt;count($table.footnotes)">
+    <div class="footnotes">
+      <xsl:call-template name="footnotes.attributes"/>
+      <br/>
+      <hr>
+        <xsl:choose>
+          <xsl:when test="$make.clean.html != 0">
+            <xsl:attribute name="class">footnote-hr</xsl:attribute>
+          </xsl:when>
+          <xsl:when test="$css.decoration != 0">
+            <xsl:attribute name="style">
+              <xsl:value-of select="concat('width:100; align:',                                             $direction.align.start,                                             ';')"/>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:attribute name="width">100</xsl:attribute>
+            <xsl:attribute name="align"><xsl:value-of select="$direction.align.start"/></xsl:attribute>
+          </xsl:otherwise>
+        </xsl:choose>
+      </hr>
+      <xsl:apply-templates select="$footnotes" mode="process.footnote.mode"/>
+    </div>
+  </xsl:if>
+
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <div class="annotation-list">
+      <div class="annotation-nocss">
+	<p>The following annotations are from this essay. You are seeing
+	them here because your browser doesn&#8217;t support the user-interface
+	techniques used to make them appear as &#8216;popups&#8217; on modern browsers.</p>
+      </div>
+
+      <xsl:apply-templates select="//annotation" mode="annotation-popup"/>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="footnotes.attributes">
+  <!-- customizable for footnotes attributes -->
+</xsl:template>
+
+<xsl:template name="process.chunk.footnotes">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="footnote" name="process.footnote" mode="process.footnote.mode">
+  <xsl:variable name="id">
+    <xsl:text>ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="local-name(*[1]) = 'para' or local-name(*[1]) = 'simpara'">
+      <div id="{$id}">
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+
+    <xsl:when test="$html.cleanup != 0 and                      $exsl.node.set.available != 0">
+      <div id="{$id}">
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:apply-templates select="*[1]" mode="footnote.body.number"/>
+        <xsl:apply-templates select="*[position() &gt; 1]"/>
+      </div>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>Warning: footnote number may not be generated </xsl:text>
+        <xsl:text>correctly; </xsl:text>
+        <xsl:value-of select="local-name(*[1])"/>
+        <xsl:text> unexpected as first child of footnote.</xsl:text>
+      </xsl:message>
+      <div id="{$id}">
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:apply-templates/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="table//footnote | informaltable//footnote" mode="process.footnote.mode">
+</xsl:template>
+
+<xsl:template match="footnote" mode="table.footnote.mode">
+  <xsl:call-template name="process.footnote"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/formal.xsl b/applications/content/template/docbook/xhtml/formal.xsl
new file mode 100644
index 0000000..061e413
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/formal.xsl
@@ -0,0 +1,490 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:param name="formal.object.break.after">1</xsl:param>
+
+<xsl:template name="formal.object">
+  <xsl:param name="placement" select="'before'"/>
+  <xsl:param name="class">
+    <xsl:apply-templates select="." mode="class.value"/>
+  </xsl:param>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:variable name="content">
+    <div class="{$class}">
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    
+      <xsl:choose>
+        <xsl:when test="$placement = 'before'">
+          <xsl:call-template name="formal.object.heading"/>
+          <div class="{$class}-contents">
+            <xsl:apply-templates/>
+          </div>
+          <!-- HACK: This doesn't belong inside formal.object; it 
+               should be done by the table template, but I want 
+               the link to be inside the DIV, so... -->
+          <xsl:if test="local-name(.) = 'table'">
+            <xsl:call-template name="table.longdesc"/>
+          </xsl:if>
+    
+          <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+          <div class="{$class}-contents"><xsl:apply-templates/></div>
+          <!-- HACK: This doesn't belong inside formal.object; it 
+               should be done by the table template, but I want 
+               the link to be inside the DIV, so... -->
+          <xsl:if test="local-name(.) = 'table'">
+            <xsl:call-template name="table.longdesc"/>
+          </xsl:if>
+    
+          <xsl:call-template name="formal.object.heading"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </div>
+    <xsl:if test="not($formal.object.break.after = '0')">
+      <br class="{$class}-break"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="floatstyle">
+    <xsl:call-template name="floatstyle"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$floatstyle != ''">
+      <xsl:call-template name="floater">
+        <xsl:with-param name="class"><xsl:value-of select="$class"/>-float</xsl:with-param>
+        <xsl:with-param name="floatstyle" select="$floatstyle"/>
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="formal.object.heading">
+  <xsl:param name="object" select="."/>
+  <xsl:param name="title">
+    <xsl:apply-templates select="$object" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </xsl:param>
+
+
+  <xsl:choose>
+    <xsl:when test="$make.clean.html != 0">
+      <xsl:variable name="html.class" select="concat(local-name($object),'-title')"/>
+      <div class="{$html.class}">
+        <xsl:copy-of select="$title"/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <p class="title">
+        <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:copy-of select="$title"/>
+        </strong>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="informal.object">
+  <xsl:param name="class">
+    <xsl:apply-templates select="." mode="class.value"/>
+  </xsl:param>
+
+  <xsl:variable name="content">
+    <div class="{$class}">
+      <xsl:call-template name="id.attribute"/>
+      <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+  
+      <!-- HACK: This doesn't belong inside formal.object; it 
+           should be done by the table template, but I want 
+           the link to be inside the DIV, so... -->
+      <xsl:if test="local-name(.) = 'informaltable'">
+        <xsl:call-template name="table.longdesc"/>
+      </xsl:if>
+  
+      <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+    </div>
+  </xsl:variable>
+
+  <xsl:variable name="floatstyle">
+    <xsl:call-template name="floatstyle"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$floatstyle != ''">
+      <xsl:call-template name="floater">
+        <xsl:with-param name="class"><xsl:value-of select="$class"/>-float</xsl:with-param>
+        <xsl:with-param name="floatstyle" select="$floatstyle"/>
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="semiformal.object">
+  <xsl:param name="placement" select="'before'"/>
+  <xsl:param name="class" select="local-name(.)"/>
+
+  <xsl:choose>
+    <xsl:when test="title or info/title">
+      <xsl:call-template name="formal.object">
+        <xsl:with-param name="placement" select="$placement"/>
+        <xsl:with-param name="class" select="$class"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="informal.object">
+        <xsl:with-param name="class" select="$class"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure">
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="formal.object">
+    <xsl:with-param name="placement" select="$placement"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="table">
+  <xsl:choose>
+    <xsl:when test="tgroup|mediaobject|graphic">
+      <xsl:call-template name="calsTable"/>
+    </xsl:when>
+    <xsl:when test="caption">
+      <xsl:call-template name="htmlTable.with.caption"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- do not use xsl:copy because of XHTML's needs -->
+      <xsl:element name="table" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+        <xsl:attribute name="id">
+          <xsl:call-template name="object.id"/>
+        </xsl:attribute>
+        <xsl:call-template name="htmlTable"/>
+      </xsl:element>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Handle html markup table like formal.object -->
+<xsl:template name="htmlTable.with.caption">
+  <xsl:param name="class">
+    <xsl:apply-templates select="." mode="class.value"/>
+  </xsl:param>
+
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:variable name="content">
+    <div class="{$class}">
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    
+      <xsl:choose>
+        <xsl:when test="$placement = 'before'">
+
+          <xsl:call-template name="formal.object.heading"/>
+
+          <div class="{$class}-contents">
+            <xsl:apply-templates select="." mode="htmlTable"/>
+          </div>
+
+          <xsl:call-template name="table.longdesc"/>
+    
+          <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+
+          <div class="{$class}-contents">
+            <xsl:apply-templates select="." mode="htmlTable"/>
+          </div>
+
+          <xsl:call-template name="table.longdesc"/>
+    
+          <xsl:call-template name="formal.object.heading"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </div>
+    <xsl:if test="not($formal.object.break.after = '0')">
+      <br class="{$class}-break"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="floatstyle">
+    <xsl:call-template name="floatstyle"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$floatstyle != ''">
+      <xsl:call-template name="floater">
+        <xsl:with-param name="class"><xsl:value-of select="$class"/>-float</xsl:with-param>
+        <xsl:with-param name="floatstyle" select="$floatstyle"/>
+        <xsl:with-param name="content" select="$content"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$content"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="calsTable">
+  <xsl:if test="tgroup/tbody/tr                 |tgroup/thead/tr                 |tgroup/tfoot/tr">
+    <xsl:message terminate="yes">Broken table: tr descendent of CALS Table.</xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="formal.object">
+    <xsl:with-param name="placement" select="$placement"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="table|informaltable" mode="class.value">
+  <xsl:choose>
+    <xsl:when test="@tabstyle">
+      <xsl:value-of select="@tabstyle"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="local-name(.)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="htmlTable">
+  <xsl:if test="tgroup/tbody/row                 |tgroup/thead/row                 |tgroup/tfoot/row">
+    <xsl:message terminate="yes">Broken table: row descendent of HTML table.</xsl:message>
+  </xsl:if>
+
+  <xsl:apply-templates mode="htmlTable"/>
+
+  <xsl:if test=".//footnote|../title//footnote">
+    <tbody class="footnotes">
+      <tr>
+        <td colspan="50">
+          <xsl:apply-templates select=".//footnote|../title//footnote" mode="table.footnote.mode"/>
+        </td>
+      </tr>
+    </tbody>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="example">
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                      concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="formal.object">
+    <xsl:with-param name="placement" select="$placement"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="equation">
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                       concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="formal.object">
+    <xsl:with-param name="placement" select="$placement"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="figure/title"/>
+<xsl:template match="figure/titleabbrev"/>
+<xsl:template match="table/title"/>
+<xsl:template match="table/titleabbrev"/>
+<xsl:template match="table/textobject"/>
+<xsl:template match="example/title"/>
+<xsl:template match="example/titleabbrev"/>
+<xsl:template match="equation/title"/>
+<xsl:template match="equation/titleabbrev"/>
+
+<xsl:template match="informalfigure">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informalexample">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informaltable">
+  <xsl:choose>
+    <xsl:when test="tgroup|mediaobject|graphic">
+      <xsl:call-template name="informal.object"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:element name="table" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+        <xsl:attribute name="id">
+          <xsl:call-template name="object.id"/>
+        </xsl:attribute>
+        <xsl:call-template name="htmlTable"/>
+      </xsl:element>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="informaltable/textobject"/>
+
+<xsl:template name="table.longdesc">
+  <!-- HACK: This doesn't belong inside formal.objectt; it should be done by -->
+  <!-- the table template, but I want the link to be inside the DIV, so... -->
+  <xsl:variable name="longdesc.uri">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="irrelevant">
+    <!-- write.longdesc returns the filename ... -->
+    <xsl:call-template name="write.longdesc">
+      <xsl:with-param name="mediaobject" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$html.longdesc != 0 and $html.longdesc.link != 0                 and textobject[not(phrase)]">
+    <xsl:call-template name="longdesc.link">
+      <xsl:with-param name="longdesc.uri" select="$longdesc.uri"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="informalequation">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template name="floatstyle">
+  <xsl:if test="(@float and @float != '0') or @floatstyle != ''">
+    <xsl:choose>
+      <xsl:when test="@floatstyle != ''">
+        <xsl:value-of select="@floatstyle"/>
+      </xsl:when>
+      <xsl:when test="@float = '1'">
+        <xsl:value-of select="$default.float.class"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@float"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="floater">
+  <xsl:param name="content"/>
+  <xsl:param name="class" select="'float'"/>
+  <xsl:param name="floatstyle" select="'left'"/>
+
+  <div class="{$class}">
+    <xsl:if test="$floatstyle = 'left' or $floatstyle = 'right'">
+      <xsl:attribute name="style">
+        <xsl:text>float: </xsl:text>
+        <xsl:value-of select="$floatstyle"/>
+        <xsl:text>;</xsl:text>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:copy-of select="$content"/>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/glossary.xsl b/applications/content/template/docbook/xhtml/glossary.xsl
new file mode 100644
index 0000000..89b8e7a
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/glossary.xsl
@@ -0,0 +1,593 @@
+<?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:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xlink" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossary">
+  
+<xsl:variable name="language">
+  <xsl:call-template name="l10n.language"/>
+</xsl:variable>
+
+<xsl:variable name="lowercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:variable name="uppercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="glossary.titlepage"/>
+
+    <xsl:choose>
+      <xsl:when test="glossdiv">
+        <xsl:apply-templates select="(glossdiv[1]/preceding-sibling::*)"/>
+      </xsl:when>
+      <xsl:when test="glossentry">
+        <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:choose>
+      <xsl:when test="glossdiv">
+        <xsl:apply-templates select="glossdiv"/>
+      </xsl:when>
+      <xsl:when test="glossentry">
+        <dl>
+          <xsl:choose>
+            <xsl:when test="$glossary.sort != 0">
+              <xsl:apply-templates select="glossentry">
+				<xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))"/>
+              </xsl:apply-templates>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="glossentry"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </dl>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- empty glossary -->
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="not(parent::article)">
+      <xsl:call-template name="process.footnotes"/>
+    </xsl:if>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="glossary/glossaryinfo"/>
+<xsl:template match="glossary/info"/>
+<xsl:template match="glossary/title"/>
+<xsl:template match="glossary/subtitle"/>
+<xsl:template match="glossary/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glosslist">
+  
+<xsl:variable name="language">
+  <xsl:call-template name="l10n.language"/>
+</xsl:variable>
+
+<xsl:variable name="lowercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:variable name="uppercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="blockinfo/title|info/title|title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+    <dl>
+      <xsl:choose>
+        <xsl:when test="$glossary.sort != 0">
+          <xsl:apply-templates select="glossentry">
+				<xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="glossentry"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </dl>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossdiv">
+  
+<xsl:variable name="language">
+  <xsl:call-template name="l10n.language"/>
+</xsl:variable>
+
+<xsl:variable name="lowercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:variable name="uppercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+
+    <dl>
+      <xsl:choose>
+        <xsl:when test="$glossary.sort != 0">
+          <xsl:apply-templates select="glossentry">
+            <xsl:sort lang="{$language}" select="translate(glossterm, $lowercase,                                          $uppercase)"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="glossentry"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </dl>
+  </div>
+</xsl:template>
+
+<xsl:template match="glossdiv/title">
+  <h3>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!--
+GlossEntry ::=
+  GlossTerm, Acronym?, Abbrev?,
+  (IndexTerm)*,
+  RevHistory?,
+  (GlossSee | GlossDef+)
+-->
+
+<xsl:template match="glossentry">
+  <xsl:choose>
+    <xsl:when test="$glossentry.show.acronym = 'primary'">
+      <dt>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+
+        <xsl:choose>
+          <xsl:when test="acronym|abbrev">
+            <xsl:apply-templates select="acronym|abbrev"/>
+            <xsl:text> (</xsl:text>
+            <xsl:apply-templates select="glossterm"/>
+            <xsl:text>)</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="glossterm"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </dt>
+    </xsl:when>
+    <xsl:when test="$glossentry.show.acronym = 'yes'">
+      <dt>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+
+        <xsl:apply-templates select="glossterm"/>
+
+        <xsl:if test="acronym|abbrev">
+          <xsl:text> (</xsl:text>
+          <xsl:apply-templates select="acronym|abbrev"/>
+          <xsl:text>)</xsl:text>
+        </xsl:if>
+      </dt>
+    </xsl:when>
+    <xsl:otherwise>
+      <dt>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+
+        <xsl:apply-templates select="glossterm"/>
+      </dt>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:apply-templates select="indexterm|revhistory|glosssee|glossdef"/>
+</xsl:template>
+
+<xsl:template match="glossentry/glossterm">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::glossterm">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/acronym">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/abbrev">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
+</xsl:template>
+
+<xsl:template match="glossentry/revhistory">
+</xsl:template>
+
+<xsl:template match="glossentry/glosssee">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="key('id', $otherterm)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="xlink" select="@xlink:href"/>
+
+  <dd>
+    <p>
+      <xsl:variable name="template">
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'glossary'"/>
+          <xsl:with-param name="name" select="'see'"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="title">
+        <xsl:choose>
+          <xsl:when test="$target">
+            <a>
+              <xsl:apply-templates select="." mode="common.html.attributes"/>
+              <xsl:call-template name="id.attribute"/>
+              <xsl:attribute name="href">
+                <xsl:call-template name="href.target">
+                  <xsl:with-param name="object" select="$target"/>
+                </xsl:call-template>
+              </xsl:attribute>
+              <xsl:apply-templates select="$target" mode="xref-to"/>
+            </a>
+          </xsl:when>
+          <xsl:when test="$xlink">
+            <xsl:call-template name="simple.xlink">
+              <xsl:with-param name="content">
+                <xsl:apply-templates/>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:when test="$otherterm != '' and not($target)">
+            <xsl:message>
+              <xsl:text>Warning: glosssee @otherterm reference not found: </xsl:text>
+              <xsl:value-of select="$otherterm"/>
+            </xsl:message>
+            <xsl:apply-templates/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="template" select="$template"/>
+        <xsl:with-param name="title" select="$title"/>
+      </xsl:call-template>
+    </p>
+  </dd>
+</xsl:template>
+
+<xsl:template match="glossentry/glossdef">
+  <dd>
+    <xsl:apply-templates select="*[local-name(.) != 'glossseealso']"/>
+    <xsl:if test="glossseealso">
+      <p>
+        <xsl:variable name="template">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'glossary'"/>
+            <xsl:with-param name="name" select="'seealso'"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:variable name="title">
+          <xsl:apply-templates select="glossseealso"/>
+        </xsl:variable>
+        <xsl:call-template name="substitute-markup">
+          <xsl:with-param name="template" select="$template"/>
+          <xsl:with-param name="title" select="$title"/>
+        </xsl:call-template>
+      </p>
+    </xsl:if>
+  </dd>
+</xsl:template>
+
+<xsl:template match="glossseealso">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="key('id', $otherterm)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="xlink" select="@xlink:href"/>
+
+  <xsl:choose>
+    <xsl:when test="$target">
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target" mode="xref-to"/>
+      </a>
+    </xsl:when>
+    <xsl:when test="$xlink">
+      <xsl:call-template name="simple.xlink">
+        <xsl:with-param name="content">
+          <xsl:apply-templates/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$otherterm != '' and not($target)">
+      <xsl:message>
+        <xsl:text>Warning: glossseealso @otherterm reference not found: </xsl:text>
+        <xsl:value-of select="$otherterm"/>
+      </xsl:message>
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="position() = last()"/>
+    <xsl:otherwise>
+		<xsl:call-template name="gentext.template">
+		  <xsl:with-param name="context" select="'glossary'"/>
+		  <xsl:with-param name="name" select="'seealso-separator'"/>
+		</xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- Glossary collection -->
+
+<xsl:template match="glossary[@role='auto']" priority="2">
+  
+<xsl:variable name="language">
+  <xsl:call-template name="l10n.language"/>
+</xsl:variable>
+
+<xsl:variable name="lowercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:variable name="uppercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+  <xsl:variable name="terms" select="//glossterm[not(parent::glossdef)]|//firstterm"/>
+  <xsl:variable name="collection" select="document($glossary.collection, .)"/>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:if test="$glossary.collection = ''">
+    <xsl:message>
+      <xsl:text>Warning: processing automatic glossary </xsl:text>
+      <xsl:text>without a glossary.collection file.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:if test="not($collection) and $glossary.collection != ''">
+    <xsl:message>
+      <xsl:text>Warning: processing automatic glossary but unable to </xsl:text>
+      <xsl:text>open glossary.collection file '</xsl:text>
+      <xsl:value-of select="$glossary.collection"/>
+      <xsl:text>'</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="glossary.titlepage"/>
+
+    <xsl:choose>
+      <xsl:when test="glossdiv and $collection//glossdiv">
+        <xsl:for-each select="$collection//glossdiv">
+          <!-- first see if there are any in this div -->
+          <xsl:variable name="exist.test">
+            <xsl:for-each select="glossentry">
+              <xsl:variable name="cterm" select="glossterm"/>
+              <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                <xsl:value-of select="glossterm"/>
+              </xsl:if>
+            </xsl:for-each>
+          </xsl:variable>
+
+          <xsl:if test="$exist.test != ''">
+            <xsl:apply-templates select="." mode="auto-glossary">
+              <xsl:with-param name="terms" select="$terms"/>
+            </xsl:apply-templates>
+          </xsl:if>
+        </xsl:for-each>
+      </xsl:when>
+      <xsl:otherwise>
+        <dl>
+          <xsl:choose>
+            <xsl:when test="$glossary.sort != 0">
+              <xsl:for-each select="$collection//glossentry">
+				<xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))"/>
+                <xsl:variable name="cterm" select="glossterm"/>
+                <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                  <xsl:apply-templates select="." mode="auto-glossary"/>
+                </xsl:if>
+              </xsl:for-each>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:for-each select="$collection//glossentry">
+                <xsl:variable name="cterm" select="glossterm"/>
+                <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+                  <xsl:apply-templates select="." mode="auto-glossary"/>
+                </xsl:if>
+              </xsl:for-each>
+            </xsl:otherwise>
+          </xsl:choose>
+        </dl>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="not(parent::article)">
+      <xsl:call-template name="process.footnotes"/>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="auto-glossary">
+  <!-- pop back out to the default mode for most elements -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="glossdiv" mode="auto-glossary">
+  <xsl:param name="terms" select="."/>
+
+  
+<xsl:variable name="language">
+  <xsl:call-template name="l10n.language"/>
+</xsl:variable>
+
+<xsl:variable name="lowercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:variable name="uppercase">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
+  </xsl:call-template>
+</xsl:variable>
+
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+
+    <dl>
+      <xsl:choose>
+        <xsl:when test="$glossary.sort != 0">
+          <xsl:for-each select="glossentry">
+				<xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), 'Aa&#192;&#224;&#193;&#225;&#194;&#226;&#195;&#227;&#196;&#228;&#197;&#229;&#256;&#257;&#258;&#259;&#260;&#261;&#461;&#462;&#478;&#479;&#480;&#481;&#506;&#507;&#512;&#513;&#514;&#515;&#550;&#551;&#7680;&#7681;&#7834;&#7840;&#7841;&#7842;&#7843;&#7844;&#7845;&#7846;&#7847;&#7848;&#7849;&#7850;&#7851;&#7852;&#7853;&#7854;&#7855;&#7856;&#7857;&#7858;&#7859;&#7860;&#7861;&#7862;&#7863;Bb&#384;&#385;&#595;&#386;&#387;&#7682;&#7683;&#7684;&#7685;&#7686;&#7687;Cc&#199;&#231;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#391;&#392;&#597;&#7688;&#7689;Dd&#270;&#271;&#272;&#273;&#394;&#599;&#395;&#396;&#453;&#498;&#545;&#598;&#7690;&#7691;&#7692;&#7693;&#7694;&#7695;&#7696;&#7697;&#7698;&#7699;Ee&#200;&#232;&#201;&#233;&#202;&#234;&#203;&#235;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#516;&#517;&#518;&#519;&#552;&#553;&#7700;&#7701;&#7702;&#7703;&#7704;&#7705;&#7706;&#7707;&#7708;&#7709;&#7864;&#7865;&#7866;&#7867;&#7868;&#7869;&#7870;&#7871;&#7872;&#7873;&#7874;&#7875;&#7876;&#7877;&#7878;&#7879;Ff&#401;&#402;&#7710;&#7711;Gg&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#403;&#608;&#484;&#485;&#486;&#487;&#500;&#501;&#7712;&#7713;Hh&#292;&#293;&#294;&#295;&#542;&#543;&#614;&#7714;&#7715;&#7716;&#7717;&#7718;&#7719;&#7720;&#7721;&#7722;&#7723;&#7830;Ii&#204;&#236;&#205;&#237;&#206;&#238;&#207;&#239;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#407;&#616;&#463;&#464;&#520;&#521;&#522;&#523;&#7724;&#7725;&#7726;&#7727;&#7880;&#7881;&#7882;&#7883;Jj&#308;&#309;&#496;&#669;Kk&#310;&#311;&#408;&#409;&#488;&#489;&#7728;&#7729;&#7730;&#7731;&#7732;&#7733;Ll&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#410;&#456;&#564;&#619;&#620;&#621;&#7734;&#7735;&#7736;&#7737;&#7738;&#7739;&#7740;&#7741;Mm&#625;&#7742;&#7743;&#7744;&#7745;&#7746;&#7747;Nn&#209;&#241;&#323;&#324;&#325;&#326;&#327;&#328;&#413;&#626;&#414;&#544;&#459;&#504;&#505;&#565;&#627;&#7748;&#7749;&#7750;&#7751;&#7752;&#7753;&#7754;&#7755;Oo&#210;&#242;&#211;&#243;&#212;&#244;&#213;&#245;&#214;&#246;&#216;&#248;&#332;&#333;&#334;&#335;&#336;&#337;&#415;&#416;&#417;&#465;&#466;&#490;&#491;&#492;&#493;&#510;&#511;&#524;&#525;&#526;&#527;&#554;&#555;&#556;&#557;&#558;&#559;&#560;&#561;&#7756;&#7757;&#7758;&#7759;&#7760;&#7761;&#7762;&#7763;&#7884;&#7885;&#7886;&#7887;&#7888;&#7889;&#7890;&#7891;&#7892;&#7893;&#7894;&#7895;&#7896;&#7897;&#7898;&#7899;&#7900;&#7901;&#7902;&#7903;&#7904;&#7905;&#7906;&#7907;Pp&#420;&#421;&#7764;&#7765;&#7766;&#7767;Qq&#672;Rr&#340;&#341;&#342;&#343;&#344;&#345;&#528;&#529;&#530;&#531;&#636;&#637;&#638;&#7768;&#7769;&#7770;&#7771;&#7772;&#7773;&#7774;&#7775;Ss&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#536;&#537;&#642;&#7776;&#7777;&#7778;&#7779;&#7780;&#7781;&#7782;&#7783;&#7784;&#7785;Tt&#354;&#355;&#356;&#357;&#358;&#359;&#427;&#428;&#429;&#430;&#648;&#538;&#539;&#566;&#7786;&#7787;&#7788;&#7789;&#7790;&#7791;&#7792;&#7793;&#7831;Uu&#217;&#249;&#218;&#250;&#219;&#251;&#220;&#252;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#431;&#432;&#467;&#468;&#469;&#470;&#471;&#472;&#473;&#474;&#475;&#476;&#532;&#533;&#534;&#535;&#7794;&#7795;&#7796;&#7797;&#7798;&#7799;&#7800;&#7801;&#7802;&#7803;&#7908;&#7909;&#7910;&#7911;&#7912;&#7913;&#7914;&#7915;&#7916;&#7917;&#7918;&#7919;&#7920;&#7921;Vv&#434;&#651;&#7804;&#7805;&#7806;&#7807;Ww&#372;&#373;&#7808;&#7809;&#7810;&#7811;&#7812;&#7813;&#7814;&#7815;&#7816;&#7817;&#7832;Xx&#7818;&#7819;&#7820;&#7821;Yy&#221;&#253;&#255;&#376;&#374;&#375;&#435;&#436;&#562;&#563;&#7822;&#7823;&#7833;&#7922;&#7923;&#7924;&#7925;&#7926;&#7927;&#7928;&#7929;Zz&#377;&#378;&#379;&#380;&#381;&#382;&#437;&#438;&#548;&#549;&#656;&#657;&#7824;&#7825;&#7826;&#7827;&#7828;&#7829;&#7829;', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))"/>
+            <xsl:variable name="cterm" select="glossterm"/>
+            <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+              <xsl:apply-templates select="." mode="auto-glossary"/>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:for-each select="glossentry">
+            <xsl:variable name="cterm" select="glossterm"/>
+            <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
+              <xsl:apply-templates select="." mode="auto-glossary"/>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:otherwise>
+      </xsl:choose>
+    </dl>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/graphics.xsl b/applications/content/template/docbook/xhtml/graphics.xsl
new file mode 100644
index 0000000..7ca1aa7
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/graphics.xsl
@@ -0,0 +1,1474 @@
+<?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:xlink="http://www.w3.org/1999/xlink" xmlns:stext="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.TextFactory" xmlns:simg="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.ImageIntrinsics" xmlns:ximg="xalan://com.nwalsh.xalan.ImageIntrinsics" xmlns:xtext="xalan://com.nwalsh.xalan.Text" xmlns:lxslt="http://xml.apache.org/xslt" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xlink stext xtext lxslt simg ximg" extension-element-prefixes="stext xtext" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     Contributors:
+     Colin Paul Adams, <colin@colina.demon.co.uk>
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xtext" elements="insertfile"/>
+<lxslt:component prefix="ximg" functions="new getWidth getDepth"/>
+
+<!-- ==================================================================== -->
+<!-- Graphic format tests for the HTML backend -->
+
+<xsl:template name="is.graphic.format">
+  <xsl:param name="format"/>
+  <xsl:if test="$format = 'SVG'                 or $format = 'PNG'                 or $format = 'JPG'                 or $format = 'JPEG'                 or $format = 'linespecific'                 or $format = 'GIF'                 or $format = 'GIF87a'                 or $format = 'GIF89a'                 or $format = 'BMP'">1</xsl:if>
+</xsl:template>
+
+<xsl:template name="is.graphic.extension">
+  <xsl:param name="ext"/>
+  <xsl:variable name="lcext" select="translate($ext,                                        'ABCDEFGHIJKLMNOPQRSTUVWXYZ',                                        'abcdefghijklmnopqrstuvwxyz')"/>
+  <xsl:if test="$lcext = 'svg'              or $lcext = 'png'              or $lcext = 'jpeg'              or $lcext = 'jpg'              or $lcext = 'avi'              or $lcext = 'mpg'              or $lcext = 'mp4'              or $lcext = 'mpeg'              or $lcext = 'qt'              or $lcext = 'gif'              or $lcext = 'acc'              or $lcext = 'mp1'              or $lcext = 'mp2'              or $lcext = 'mp3'              or $lcext = 'mp4'              or $lcext = 'm4v'              or $lcext = 'm4a'              or $lcext = 'wav'              or $lcext = 'ogv'              or $lcext = 'ogg'              or $lcext = 'webm'              or $lcext = 'bmp'">1</xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="screenshot">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="screeninfo">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.image">
+  <!-- When this template is called, the current node should be  -->
+  <!-- a graphic, inlinegraphic, imagedata, or videodata. All    -->
+  <!-- those elements have the same set of attributes, so we can -->
+  <!-- handle them all in one place.                             -->
+  <xsl:param name="tag" select="'img'"/>
+  <xsl:param name="alt"/>
+  <xsl:param name="longdesc"/>
+
+  <!-- The HTML img element only supports the notion of content-area
+       scaling; it doesn't support the distinction between a
+       content-area and a viewport-area, so we have to make some
+       compromises.
+
+       1. If only the content-area is specified, everything is fine.
+          (If you ask for a three inch image, that's what you'll get.)
+
+       2. If only the viewport-area is provided:
+          - If scalefit=1, treat it as both the content-area and
+            the viewport-area. (If you ask for an image in a five inch
+            area, we'll make the image five inches to fill that area.)
+          - If scalefit=0, ignore the viewport-area specification.
+
+          Note: this is not quite the right semantic and has the additional
+          problem that it can result in anamorphic scaling, which scalefit
+          should never cause.
+
+       3. If both the content-area and the viewport-area is specified
+          on a graphic element, ignore the viewport-area.
+          (If you ask for a three inch image in a five inch area, we'll assume
+           it's better to give you a three inch image in an unspecified area
+           than a five inch image in a five inch area.
+
+       Relative units also cause problems. As a general rule, the stylesheets
+       are operating too early and too loosely coupled with the rendering engine
+       to know things like the current font size or the actual dimensions of
+       an image. Therefore:
+
+       1. We use a fixed size for pixels, $pixels.per.inch
+
+       2. We use a fixed size for "em"s, $points.per.em
+
+       Percentages are problematic. In the following discussion, we speak
+       of width and contentwidth, but the same issues apply to depth and
+       contentdepth
+
+       1. A width of 50% means "half of the available space for the image."
+          That's fine. But note that in HTML, this is a dynamic property and
+          the image size will vary if the browser window is resized.
+
+       2. A contentwidth of 50% means "half of the actual image width". But
+          the stylesheets have no way to assess the image's actual size. Treating
+          this as a width of 50% is one possibility, but it produces behavior
+          (dynamic scaling) that seems entirely out of character with the
+          meaning.
+
+          Instead, the stylesheets define a $nominal.image.width
+          and convert percentages to actual values based on that nominal size.
+
+       Scale can be problematic. Scale applies to the contentwidth, so
+       a scale of 50 when a contentwidth is not specified is analagous to a
+       width of 50%. (If a contentwidth is specified, the scaling factor can
+       be applied to that value and no problem exists.)
+
+       If scale is specified but contentwidth is not supplied, the
+       nominal.image.width is used to calculate a base size
+       for scaling.
+
+       Warning: as a consequence of these decisions, unless the aspect ratio
+       of your image happens to be exactly the same as (nominal width / nominal height),
+       specifying contentwidth="50%" and contentdepth="50%" is NOT going to
+       scale the way you expect (or really, the way it should).
+
+       Don't do that. In fact, a percentage value is not recommended for content
+       size at all. Use scale instead.
+
+       Finally, align and valign are troublesome. Horizontal alignment is now
+       supported by wrapping the image in a <div align="{@align}"> (in block
+       contexts!). I can't think of anything (practical) to do about vertical
+       alignment.
+  -->
+
+  <xsl:variable name="width-units">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"/>
+      <xsl:when test="@width">
+        <xsl:call-template name="length-units">
+          <xsl:with-param name="length" select="@width"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="not(@depth) and $default.image.width != ''">
+        <xsl:call-template name="length-units">
+          <xsl:with-param name="length" select="$default.image.width"/>
+        </xsl:call-template>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="width">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"/>
+      <xsl:when test="@width">
+        <xsl:choose>
+          <xsl:when test="$width-units = '%'">
+            <xsl:value-of select="@width"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="length-spec">
+              <xsl:with-param name="length" select="@width"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:when test="not(@depth) and $default.image.width != ''">
+        <xsl:value-of select="$default.image.width"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scalefit">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
+      <xsl:when test="@contentwidth or @contentdepth">0</xsl:when>
+      <xsl:when test="@scale">0</xsl:when>
+      <xsl:when test="@scalefit"><xsl:value-of select="@scalefit"/></xsl:when>
+      <xsl:when test="$width != '' or @depth">1</xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scale">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0">1.0</xsl:when>
+      <xsl:when test="@contentwidth or @contentdepth">1.0</xsl:when>
+      <xsl:when test="@scale">
+        <xsl:value-of select="@scale div 100.0"/>
+      </xsl:when>
+      <xsl:otherwise>1.0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="local-name(.) = 'graphic'                       or local-name(.) = 'inlinegraphic'">
+        <!-- handle legacy graphic and inlinegraphic by new template --> 
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- imagedata, videodata, audiodata -->
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="output_filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="$filename"/>
+      </xsl:when>
+      <!--
+        Moved test for $keep.relative.image.uris to template below:
+            <xsl:template match="@fileref">
+      -->
+      <xsl:otherwise>
+        <xsl:value-of select="$filename"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="img.src.path.pi">
+    <xsl:call-template name="pi.dbhtml_img.src.path">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="filename.for.graphicsize">
+    <xsl:choose>
+      <xsl:when test="$img.src.path.pi != ''">
+        <xsl:value-of select="concat($img.src.path.pi, $filename)"/>
+      </xsl:when>
+      <xsl:when test="$img.src.path != '' and                       $graphicsize.use.img.src.path != 0 and                       $tag = 'img' and                       not(starts-with($filename, '/')) and                       not(contains($filename, '://'))">
+        <xsl:value-of select="concat($img.src.path, $filename)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$filename"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="realintrinsicwidth">
+    <!-- This funny compound test works around a bug in XSLTC -->
+    <xsl:choose>
+      <xsl:when test="$use.extensions != 0 and $graphicsize.extension != 0                       and not(@format='SVG')">
+        <xsl:choose>
+          <xsl:when test="function-available('simg:getWidth')">
+            <xsl:value-of select="simg:getWidth(simg:new($filename.for.graphicsize),                                                 $nominal.image.width)"/>
+          </xsl:when>
+          <xsl:when test="function-available('ximg:getWidth')">
+            <xsl:value-of select="ximg:getWidth(ximg:new($filename.for.graphicsize),                                                 $nominal.image.width)"/>
+          </xsl:when>
+          <xsl:otherwise>
+           <xsl:value-of select="0"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="0"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="intrinsicwidth">
+    <xsl:choose>
+      <xsl:when test="$realintrinsicwidth = 0">
+       <xsl:value-of select="$nominal.image.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:value-of select="$realintrinsicwidth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="intrinsicdepth">
+    <!-- This funny compound test works around a bug in XSLTC -->
+    <xsl:choose>
+      <xsl:when test="$use.extensions != 0 and $graphicsize.extension != 0                       and not(@format='SVG')">
+        <xsl:choose>
+          <xsl:when test="function-available('simg:getDepth')">
+            <xsl:value-of select="simg:getDepth(simg:new($filename.for.graphicsize),                                                 $nominal.image.depth)"/>
+          </xsl:when>
+          <xsl:when test="function-available('ximg:getDepth')">
+            <xsl:value-of select="ximg:getDepth(ximg:new($filename.for.graphicsize),                                                 $nominal.image.depth)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$nominal.image.depth"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$nominal.image.depth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="contentwidth">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"/>
+      <xsl:when test="@contentwidth">
+        <xsl:variable name="units">
+          <xsl:call-template name="length-units">
+            <xsl:with-param name="length" select="@contentwidth"/>
+          </xsl:call-template>
+        </xsl:variable>
+
+        <xsl:choose>
+          <xsl:when test="$units = '%'">
+            <xsl:variable name="cmagnitude">
+              <xsl:call-template name="length-magnitude">
+                <xsl:with-param name="length" select="@contentwidth"/>
+              </xsl:call-template>
+            </xsl:variable>
+            <xsl:value-of select="$intrinsicwidth * $cmagnitude div 100.0"/>
+            <xsl:text>px</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="length-spec">
+              <xsl:with-param name="length" select="@contentwidth"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$intrinsicwidth"/>
+        <xsl:text>px</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scaled.contentwidth">
+    <xsl:if test="$contentwidth != ''">
+      <xsl:variable name="cwidth.in.points">
+        <xsl:call-template name="length-in-points">
+          <xsl:with-param name="length" select="$contentwidth"/>
+          <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+          <xsl:with-param name="em.size" select="$points.per.em"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$cwidth.in.points div 72.0 * $pixels.per.inch * $scale"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="html.width">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"/>
+      <xsl:when test="$width-units = '%'">
+        <xsl:value-of select="$width"/>
+      </xsl:when>
+      <xsl:when test="$width != ''">
+        <xsl:variable name="width.in.points">
+          <xsl:call-template name="length-in-points">
+            <xsl:with-param name="length" select="$width"/>
+            <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+            <xsl:with-param name="em.size" select="$points.per.em"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="round($width.in.points div 72.0 * $pixels.per.inch)"/>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="contentdepth">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"/>
+      <xsl:when test="@contentdepth">
+        <xsl:variable name="units">
+          <xsl:call-template name="length-units">
+            <xsl:with-param name="length" select="@contentdepth"/>
+          </xsl:call-template>
+        </xsl:variable>
+
+        <xsl:choose>
+          <xsl:when test="$units = '%'">
+            <xsl:variable name="cmagnitude">
+              <xsl:call-template name="length-magnitude">
+                <xsl:with-param name="length" select="@contentdepth"/>
+              </xsl:call-template>
+            </xsl:variable>
+            <xsl:value-of select="$intrinsicdepth * $cmagnitude div 100.0"/>
+            <xsl:text>px</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="length-spec">
+              <xsl:with-param name="length" select="@contentdepth"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$intrinsicdepth"/>
+        <xsl:text>px</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scaled.contentdepth">
+    <xsl:if test="$contentdepth != ''">
+      <xsl:variable name="cdepth.in.points">
+        <xsl:call-template name="length-in-points">
+          <xsl:with-param name="length" select="$contentdepth"/>
+          <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+          <xsl:with-param name="em.size" select="$points.per.em"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$cdepth.in.points div 72.0 * $pixels.per.inch * $scale"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="depth-units">
+    <xsl:if test="@depth">
+      <xsl:call-template name="length-units">
+        <xsl:with-param name="length" select="@depth"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="depth">
+    <xsl:if test="@depth">
+      <xsl:choose>
+        <xsl:when test="$depth-units = '%'">
+          <xsl:value-of select="@depth"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="length-spec">
+            <xsl:with-param name="length" select="@depth"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="html.depth">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0"/>
+      <xsl:when test="$depth-units = '%'">
+        <xsl:value-of select="$depth"/>
+      </xsl:when>
+      <xsl:when test="@depth and @depth != ''">
+        <xsl:variable name="depth.in.points">
+          <xsl:call-template name="length-in-points">
+            <xsl:with-param name="length" select="$depth"/>
+            <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
+            <xsl:with-param name="em.size" select="$points.per.em"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="round($depth.in.points div 72.0 * $pixels.per.inch)"/>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="viewport">
+    <xsl:choose>
+      <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
+      <xsl:when test="local-name(.) = 'inlinegraphic'                       or ancestor::inlinemediaobject                       or ancestor::inlineequation">0</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$make.graphic.viewport"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+<!--
+  <xsl:message>=====================================
+scale: <xsl:value-of select="$scale"/>, <xsl:value-of select="$scalefit"/>
+@contentwidth <xsl:value-of select="@contentwidth"/>
+$contentwidth <xsl:value-of select="$contentwidth"/>
+scaled.contentwidth: <xsl:value-of select="$scaled.contentwidth"/>
+@width: <xsl:value-of select="@width"/>
+width: <xsl:value-of select="$width"/>
+html.width: <xsl:value-of select="$html.width"/>
+@contentdepth <xsl:value-of select="@contentdepth"/>
+$contentdepth <xsl:value-of select="$contentdepth"/>
+scaled.contentdepth: <xsl:value-of select="$scaled.contentdepth"/>
+@depth: <xsl:value-of select="@depth"/>
+depth: <xsl:value-of select="$depth"/>
+html.depth: <xsl:value-of select="$html.depth"/>
+align: <xsl:value-of select="@align"/>
+valign: <xsl:value-of select="@valign"/></xsl:message>
+-->
+
+  <xsl:variable name="scaled" select="@width|@depth|@contentwidth|@contentdepth                         |@scale|@scalefit"/>
+
+  <xsl:variable name="img">
+    <xsl:choose>
+      <xsl:when test="@format = 'SVG'">
+        <object type="image/svg+xml">
+	  <xsl:attribute name="data">
+	    <xsl:choose>
+	      <xsl:when test="$img.src.path != '' and                            $tag = 'img' and       not(starts-with($output_filename, '/')) and       not(contains($output_filename, '://'))">
+		<xsl:value-of select="$img.src.path"/>
+	      </xsl:when>
+           </xsl:choose>
+	   <xsl:value-of select="$output_filename"/>
+	  </xsl:attribute>
+	  <xsl:call-template name="process.image.attributes">
+            <!--xsl:with-param name="alt" select="$alt"/ there's no alt here-->
+            <xsl:with-param name="html.depth" select="$html.depth"/>
+            <xsl:with-param name="html.width" select="$html.width"/>
+            <xsl:with-param name="longdesc" select="$longdesc"/>
+            <xsl:with-param name="scale" select="$scale"/>
+            <xsl:with-param name="scalefit" select="$scalefit"/>
+            <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
+            <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
+            <xsl:with-param name="viewport" select="$viewport"/>
+          </xsl:call-template>
+          <xsl:if test="@align">
+            <xsl:attribute name="align">
+                <xsl:choose>
+                  <xsl:when test="@align = 'center'">middle</xsl:when>
+                  <xsl:otherwise>
+                    <xsl:value-of select="@align"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:if test="$use.embed.for.svg != 0">
+	    <embed type="image/svg+xml">
+	      <xsl:attribute name="src">
+		<xsl:choose>
+                  <xsl:when test="$img.src.path != '' and       $tag = 'img' and       not(starts-with($output_filename, '/')) and       not(contains($output_filename, '://'))">
+		    <xsl:value-of select="$img.src.path"/>
+                  </xsl:when>
+		</xsl:choose>
+		<xsl:value-of select="$output_filename"/>
+              </xsl:attribute>
+              <xsl:call-template name="process.image.attributes">
+                <!--xsl:with-param name="alt" select="$alt"/ there's no alt here -->
+                <xsl:with-param name="html.depth" select="$html.depth"/>
+                <xsl:with-param name="html.width" select="$html.width"/>
+                <xsl:with-param name="longdesc" select="$longdesc"/>
+                <xsl:with-param name="scale" select="$scale"/>
+                <xsl:with-param name="scalefit" select="$scalefit"/>
+                <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
+                <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
+                <xsl:with-param name="viewport" select="$viewport"/>
+              </xsl:call-template>
+            </embed>
+          </xsl:if>
+        </object>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$tag}" namespace="http://www.w3.org/1999/xhtml">
+         <xsl:if test="$tag = 'img' and ../../self::imageobjectco">
+           <xsl:variable name="mapname">
+             <xsl:call-template name="object.id">
+               <xsl:with-param name="object" select="../../areaspec"/>
+             </xsl:call-template>
+           </xsl:variable>
+           <xsl:choose>
+             <xsl:when test="$scaled">
+              <!-- It might be possible to handle some scaling; needs -->
+              <!-- more investigation -->
+              <xsl:message>
+                <xsl:text>Warning: imagemaps not supported </xsl:text>
+                <xsl:text>on scaled images</xsl:text>
+              </xsl:message>
+             </xsl:when>
+             <xsl:otherwise>
+              <xsl:attribute name="border">0</xsl:attribute>
+              <xsl:attribute name="usemap">
+                <xsl:value-of select="concat('#', $mapname)"/>
+              </xsl:attribute>
+             </xsl:otherwise>
+           </xsl:choose>
+         </xsl:if>
+
+          <xsl:attribute name="src">
+           <xsl:choose>
+             <xsl:when test="$img.src.path != '' and                            $tag = 'img' and                              not(starts-with($output_filename, '/')) and                            not(contains($output_filename, '://'))">
+               <xsl:value-of select="$img.src.path"/>
+             </xsl:when>
+           </xsl:choose>
+            <xsl:value-of select="$output_filename"/>
+          </xsl:attribute>
+
+          <xsl:if test="@align">
+            <xsl:attribute name="align">
+              <xsl:choose>
+                <xsl:when test="@align = 'center'">middle</xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="@align"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:attribute>
+          </xsl:if>
+
+          <xsl:call-template name="process.image.attributes">
+            <xsl:with-param name="alt">
+              <xsl:choose>
+                <xsl:when test="$alt != ''">
+                  <xsl:copy-of select="$alt"/>
+                </xsl:when>
+                <xsl:when test="ancestor::figure">
+                  <xsl:value-of select="normalize-space(ancestor::figure/title)"/>
+                </xsl:when>
+              </xsl:choose>
+            </xsl:with-param>
+            <xsl:with-param name="html.depth" select="$html.depth"/>
+            <xsl:with-param name="html.width" select="$html.width"/>
+            <xsl:with-param name="longdesc" select="$longdesc"/>
+            <xsl:with-param name="scale" select="$scale"/>
+            <xsl:with-param name="scalefit" select="$scalefit"/>
+            <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
+            <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
+            <xsl:with-param name="viewport" select="$viewport"/>
+          </xsl:call-template>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="bgcolor">
+    <xsl:call-template name="pi.dbhtml_background-color">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="use.viewport" select="$viewport != 0                         and ($html.width != ''                              or ($html.depth != '' and $depth-units != '%')                              or $bgcolor != ''                              or @valign)"/>
+
+  <xsl:choose>
+    <xsl:when test="$use.viewport">
+      <table border="{$table.border.off}">
+        <xsl:if test="$div.element != 'section'">
+          <xsl:attribute name="summary">manufactured viewport for HTML img</xsl:attribute>
+        </xsl:if>
+        <xsl:if test="$css.decoration != ''">
+          <xsl:attribute name="style">cellpadding: 0; cellspacing: 0;</xsl:attribute>
+        </xsl:if>
+        <xsl:if test="$html.width != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="$html.width"/>
+          </xsl:attribute>
+        </xsl:if>
+        <tr>
+          <xsl:if test="$html.depth != '' and $depth-units != '%'">
+            <!-- don't do this for percentages because browsers get confused -->
+            <xsl:choose>
+              <xsl:when test="$css.decoration != 0">
+                <xsl:attribute name="style">
+                  <xsl:text>height: </xsl:text>
+                  <xsl:value-of select="$html.depth"/>
+                  <xsl:text>px</xsl:text>
+                </xsl:attribute>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:attribute name="height">
+                  <xsl:value-of select="$html.depth"/>
+                </xsl:attribute>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:if>
+          <td>
+            <xsl:if test="$bgcolor != ''">
+              <xsl:choose>
+                <xsl:when test="$css.decoration != 0">
+                  <xsl:attribute name="style">
+                    <xsl:text>background-color: </xsl:text>
+                    <xsl:value-of select="$bgcolor"/>
+                  </xsl:attribute>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:attribute name="bgcolor">
+                    <xsl:value-of select="$bgcolor"/>
+                  </xsl:attribute>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:if>
+            <xsl:if test="@align">
+              <xsl:attribute name="align">
+                <xsl:value-of select="@align"/>
+              </xsl:attribute>
+            </xsl:if>
+            <xsl:if test="@valign">
+              <xsl:attribute name="valign">
+                <xsl:value-of select="@valign"/>
+              </xsl:attribute>
+            </xsl:if>
+            <xsl:copy-of select="$img"/>
+          </td>
+        </tr>
+      </table>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$img"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:if test="$tag = 'img' and ../../self::imageobjectco and not($scaled)">
+    <xsl:variable name="mapname">
+      <xsl:call-template name="object.id">
+        <xsl:with-param name="object" select="../../areaspec"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <map name="{$mapname}">
+      <xsl:for-each select="../../areaspec//area">
+        <xsl:variable name="units">
+          <xsl:choose>
+            <xsl:when test="@units = 'other' and @otherunits">
+              <xsl:value-of select="@otherunits"/>
+            </xsl:when>
+            <xsl:when test="@units">
+              <xsl:value-of select="@units"/>
+            </xsl:when>
+            <!-- areaspec|areaset/area -->
+            <xsl:when test="../@units = 'other' and ../@otherunits">
+              <xsl:value-of select="../@otherunits"/>
+            </xsl:when>
+            <xsl:when test="../@units">
+              <xsl:value-of select="../@units"/>
+            </xsl:when>
+            <!-- areaspec/areaset/area -->
+            <xsl:when test="../../@units = 'other' and ../../@otherunits">
+              <xsl:value-of select="../@otherunits"/>
+            </xsl:when>
+            <xsl:when test="../../@units">
+              <xsl:value-of select="../../@units"/>
+            </xsl:when>
+            <xsl:otherwise>calspair</xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+ 
+        <xsl:choose>
+          <xsl:when test="$units = 'calspair' or                           $units = 'imagemap'">
+            <xsl:variable name="coords" select="normalize-space(@coords)"/>
+
+            <area shape="rect">
+              <xsl:variable name="linkends">
+                <xsl:choose>
+                  <xsl:when test="@linkends">
+                    <xsl:value-of select="normalize-space(@linkends)"/>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:value-of select="normalize-space(../@linkends)"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:variable>
+ 
+              <xsl:variable name="href">
+                <xsl:choose>
+                  <xsl:when test="@xlink:href">
+                    <xsl:value-of select="@xlink:href"/>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:value-of select="../@xlink:href"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:variable>
+ 
+              <xsl:choose>
+                <xsl:when test="$linkends != ''">
+                  <xsl:variable name="linkend">
+                    <xsl:choose>
+                      <xsl:when test="contains($linkends, ' ')">
+                        <xsl:value-of select="substring-before($linkends, ' ')"/>
+                      </xsl:when>
+                      <xsl:otherwise>
+                        <xsl:value-of select="$linkends"/>
+                      </xsl:otherwise>
+                    </xsl:choose>
+                  </xsl:variable>
+                  
+                  <xsl:variable name="target" select="key('id', $linkend)[1]"/>
+                 
+                  <xsl:if test="$target">
+                    <xsl:attribute name="href">
+                      <xsl:call-template name="href.target">
+                        <xsl:with-param name="object" select="$target"/>
+                      </xsl:call-template>
+                    </xsl:attribute>
+                  </xsl:if>
+                </xsl:when>
+                <xsl:when test="$href != ''">
+                  <xsl:attribute name="href">
+                    <xsl:value-of select="$href"/>
+                  </xsl:attribute>
+                </xsl:when>
+              </xsl:choose>
+ 
+              <xsl:if test="alt">
+                <xsl:attribute name="alt">
+                  <xsl:value-of select="alt[1]"/>
+                </xsl:attribute>
+              </xsl:if>
+ 
+              <xsl:attribute name="coords">
+                <xsl:choose>
+                  <xsl:when test="$units = 'calspair'">
+
+                    <xsl:variable name="p1" select="substring-before($coords, ' ')"/>
+                    <xsl:variable name="p2" select="substring-after($coords, ' ')"/>
+         
+                    <xsl:variable name="x1" select="substring-before($p1,',')"/>
+                    <xsl:variable name="y1" select="substring-after($p1,',')"/>
+                    <xsl:variable name="x2" select="substring-before($p2,',')"/>
+                    <xsl:variable name="y2" select="substring-after($p2,',')"/>
+         
+                    <xsl:variable name="x1p" select="$x1 div 100.0"/>
+                    <xsl:variable name="y1p" select="$y1 div 100.0"/>
+                    <xsl:variable name="x2p" select="$x2 div 100.0"/>
+                    <xsl:variable name="y2p" select="$y2 div 100.0"/>
+         
+         <!--
+                    <xsl:message>
+                      <xsl:text>units: </xsl:text>
+                      <xsl:value-of select="$units"/>
+                      <xsl:text> </xsl:text>
+                      <xsl:value-of select="$x1p"/><xsl:text>, </xsl:text>
+                      <xsl:value-of select="$y1p"/><xsl:text>, </xsl:text>
+                      <xsl:value-of select="$x2p"/><xsl:text>, </xsl:text>
+                      <xsl:value-of select="$y2p"/><xsl:text>, </xsl:text>
+                    </xsl:message>
+         
+                    <xsl:message>
+                      <xsl:text>      </xsl:text>
+                      <xsl:value-of select="$intrinsicwidth"/>
+                      <xsl:text>, </xsl:text>
+                      <xsl:value-of select="$intrinsicdepth"/>
+                    </xsl:message>
+         
+                    <xsl:message>
+                      <xsl:text>      </xsl:text>
+                      <xsl:value-of select="$units"/>
+                      <xsl:text> </xsl:text>
+                      <xsl:value-of 
+                            select="round($x1p * $intrinsicwidth div 100.0)"/>
+                      <xsl:text>,</xsl:text>
+                      <xsl:value-of select="round($intrinsicdepth
+                                       - ($y2p * $intrinsicdepth div 100.0))"/>
+                      <xsl:text>,</xsl:text>
+                      <xsl:value-of select="round($x2p * 
+                                            $intrinsicwidth div 100.0)"/>
+                      <xsl:text>,</xsl:text>
+                      <xsl:value-of select="round($intrinsicdepth
+                                       - ($y1p * $intrinsicdepth div 100.0))"/>
+                    </xsl:message>
+         -->
+                    <xsl:value-of select="round($x1p * $intrinsicwidth div 100.0)"/>
+                    <xsl:text>,</xsl:text>
+                    <xsl:value-of select="round($intrinsicdepth                                         - ($y2p * $intrinsicdepth div 100.0))"/>
+                    <xsl:text>,</xsl:text>
+                    <xsl:value-of select="round($x2p * $intrinsicwidth div 100.0)"/>
+                    <xsl:text>,</xsl:text>
+                    <xsl:value-of select="round($intrinsicdepth                                       - ($y1p * $intrinsicdepth div 100.0))"/>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:copy-of select="$coords"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:attribute>
+            </area>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message>
+              <xsl:text>Warning: only calspair or </xsl:text>
+              <xsl:text>otherunits='imagemap' supported </xsl:text>
+              <xsl:text>in imageobjectco</xsl:text>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:for-each>
+    </map>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.image.attributes">
+  <xsl:param name="alt"/>
+  <xsl:param name="html.width"/>
+  <xsl:param name="html.depth"/>
+  <xsl:param name="longdesc"/>
+  <xsl:param name="scale"/>
+  <xsl:param name="scalefit"/>
+  <xsl:param name="scaled.contentdepth"/>
+  <xsl:param name="scaled.contentwidth"/>
+  <xsl:param name="viewport"/>
+
+  <xsl:choose>
+    <xsl:when test="@contentwidth or @contentdepth">
+      <!-- ignore @width/@depth, @scale, and @scalefit if specified -->
+      <xsl:if test="@contentwidth and $scaled.contentwidth != ''">
+        <xsl:attribute name="width">
+          <xsl:value-of select="$scaled.contentwidth"/>
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:if test="@contentdepth and $scaled.contentdepth != ''">
+        <xsl:attribute name="height">
+          <xsl:value-of select="$scaled.contentdepth"/>
+        </xsl:attribute>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="number($scale) != 1.0">
+      <!-- scaling is always uniform, so we only have to specify one dimension -->
+      <!-- ignore @scalefit if specified -->
+      <xsl:attribute name="width">
+        <xsl:value-of select="$scaled.contentwidth"/>
+      </xsl:attribute>
+    </xsl:when>
+
+    <xsl:when test="$scalefit != 0">
+      <xsl:choose>
+        <xsl:when test="contains($html.width, '%')">
+          <xsl:choose>
+            <xsl:when test="$viewport != 0">
+              <!-- The *viewport* will be scaled, so use 100% here! -->
+              <xsl:attribute name="width">
+                <xsl:value-of select="'100%'"/>
+              </xsl:attribute>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:attribute name="width">
+                <xsl:value-of select="$html.width"/>
+              </xsl:attribute>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+
+        <xsl:when test="contains($html.depth, '%')">
+          <!-- HTML doesn't deal with this case very well...do nothing -->
+        </xsl:when>
+
+        <xsl:when test="$scaled.contentwidth != '' and $html.width != ''                         and $scaled.contentdepth != '' and $html.depth != ''">
+          <!-- scalefit should not be anamorphic; figure out which direction -->
+          <!-- has the limiting scale factor and scale in that direction -->
+          <xsl:choose>
+            <xsl:when test="$html.width div $scaled.contentwidth &gt;                             $html.depth div $scaled.contentdepth">
+              <xsl:attribute name="height">
+                <xsl:value-of select="$html.depth"/>
+              </xsl:attribute>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:attribute name="width">
+                <xsl:value-of select="$html.width"/>
+              </xsl:attribute>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+
+        <xsl:when test="$scaled.contentwidth != '' and $html.width != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="$html.width"/>
+          </xsl:attribute>
+        </xsl:when>
+
+        <xsl:when test="$scaled.contentdepth != '' and $html.depth != ''">
+          <xsl:attribute name="height">
+            <xsl:value-of select="$html.depth"/>
+          </xsl:attribute>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:if test="$alt != ''">
+    <xsl:attribute name="alt">
+      <xsl:value-of select="normalize-space($alt)"/>
+    </xsl:attribute>
+  </xsl:if>
+
+  <!-- Turn off longdesc attribute since not supported by browsers
+  <xsl:if test="$longdesc != ''">
+    <xsl:attribute name="longdesc">
+      <xsl:value-of select="$longdesc"/>
+    </xsl:attribute>
+  </xsl:if>
+  -->
+
+  <xsl:if test="@align and $viewport = 0">
+    <xsl:attribute name="align">
+      <xsl:choose>
+        <xsl:when test="@align = 'center'">middle</xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="@align"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="graphic">
+  <xsl:choose>
+    <xsl:when test="parent::inlineequation">
+      <span>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:call-template name="anchor"/>
+        <xsl:call-template name="process.image"/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="@align">
+          <xsl:attribute name="align">
+            <xsl:value-of select="@align"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:call-template name="anchor"/>
+        <xsl:call-template name="process.image"/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="inlinegraphic">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="@fileref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:choose>
+    <xsl:when test="@format='linespecific'">
+      <xsl:choose>
+        <xsl:when test="$use.extensions != '0'                         and $textinsert.extension != '0'">
+          <xsl:choose>
+            <xsl:when test="element-available('stext:insertfile')">
+              <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/>
+            </xsl:when>
+            <xsl:when test="element-available('xtext:insertfile')">
+              <xtext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message terminate="yes">
+                <xsl:text>No insertfile extension available.</xsl:text>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+	  <xsl:message terminate="yes">
+	    <xsl:text>Cannot insert </xsl:text><xsl:value-of select="$filename"/>
+	    <xsl:text>. Check use.extensions and textinsert.extension parameters.</xsl:text> 
+	  </xsl:message>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process.image"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="mediaobject|mediaobjectco">
+
+  <xsl:variable name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject                      |textobject"/>
+
+  <xsl:variable name="object.index">
+    <xsl:call-template name="select.mediaobject.index">
+      <xsl:with-param name="olist" select="$olist"/>
+      <xsl:with-param name="count" select="1"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="object" select="$olist[position() = $object.index]"/>
+
+  <xsl:variable name="align">
+    <xsl:value-of select="$object/descendant::imagedata[@align][1]/@align"/>
+  </xsl:variable>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:if test="$align != '' ">
+      <xsl:attribute name="align">
+        <xsl:value-of select="$align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:apply-templates select="$object"/>
+    <xsl:apply-templates select="caption"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="inlinemediaobject">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="select.mediaobject"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="programlisting/inlinemediaobject                      |screen/inlinemediaobject" priority="2">
+  <!-- the additional span causes problems in some cases -->
+  <xsl:call-template name="select.mediaobject"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="imageobjectco">
+  <xsl:call-template name="anchor"/>
+  <xsl:choose>
+    <!-- select one imageobject? -->
+    <xsl:when test="$use.role.for.mediaobject != 0 and                     count(imageobject) &gt; 1 and                     imageobject[@role]">
+      <xsl:variable name="olist" select="imageobject"/>
+    
+      <xsl:variable name="object.index">
+        <xsl:call-template name="select.mediaobject.index">
+          <xsl:with-param name="olist" select="$olist"/>
+          <xsl:with-param name="count" select="1"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:variable name="object" select="$olist[position() = $object.index]"/>
+    
+      <xsl:apply-templates select="$object"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- otherwise process them all -->
+      <xsl:apply-templates select="imageobject"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:apply-templates select="calloutlist"/>
+
+</xsl:template>
+
+<xsl:template match="imageobject">
+  <xsl:apply-templates select="imagedata"/>
+</xsl:template>
+
+<xsl:template match="imagedata">
+  <xsl:variable name="filename">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <!-- Handle MathML and SVG markup in imagedata -->
+    <xsl:when xmlns:mml="http://www.w3.org/1998/Math/MathML" test="mml:*">
+      <xsl:apply-templates/>
+    </xsl:when>
+    
+    <xsl:when xmlns:svg="http://www.w3.org/2000/svg" test="svg:*">
+      <xsl:apply-templates/>
+    </xsl:when>
+
+    <xsl:when test="@format='linespecific'">
+      <xsl:choose>
+        <xsl:when test="$use.extensions != '0'                         and $textinsert.extension != '0'">
+          <xsl:choose>
+            <xsl:when test="element-available('stext:insertfile')">
+              <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/>
+            </xsl:when>
+            <xsl:when test="element-available('xtext:insertfile')">
+              <xtext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message terminate="yes">
+                <xsl:text>No insertfile extension available.</xsl:text>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" href="{$filename}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="longdesc.uri">
+        <xsl:call-template name="longdesc.uri">
+          <xsl:with-param name="mediaobject" select="ancestor::imageobject/parent::*"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="phrases" select="ancestor::mediaobject/textobject[phrase]                             |ancestor::inlinemediaobject/textobject[phrase]                             |ancestor::mediaobjectco/textobject[phrase]"/>
+
+      <xsl:call-template name="process.image">
+        <xsl:with-param name="alt">
+          <xsl:apply-templates select="$phrases[not(@role) or @role!='tex'][1]"/>
+        </xsl:with-param>
+        <xsl:with-param name="longdesc">
+          <xsl:call-template name="write.longdesc">
+            <xsl:with-param name="mediaobject" select="ancestor::imageobject/parent::*"/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+
+      <xsl:if test="$html.longdesc != 0 and $html.longdesc.link != 0                     and ancestor::imageobject/parent::*/textobject[not(phrase)]">
+        <xsl:call-template name="longdesc.link">
+          <xsl:with-param name="longdesc.uri" select="$longdesc.uri"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="longdesc.uri">
+  <xsl:param name="mediaobject" select="."/>
+  <xsl:if test="$html.longdesc">
+    <xsl:if test="$mediaobject/textobject[not(phrase)]">
+      <xsl:variable name="dbhtml.dir">
+        <xsl:call-template name="dbhtml-dir"/>
+      </xsl:variable>
+      <xsl:variable name="filename">
+        <xsl:call-template name="make-relative-filename">
+          <xsl:with-param name="base.dir">
+            <xsl:choose>
+              <xsl:when test="$dbhtml.dir != ''">
+                <xsl:value-of select="$dbhtml.dir"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="$chunk.base.dir"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+          <xsl:with-param name="base.name">
+            <xsl:choose>
+              <xsl:when test="                 $mediaobject/@*[local-name() = 'id']                 and not($use.id.as.filename = 0)">
+                <!-- * if this mediaobject has an ID, then we use the -->
+                <!-- * value of that ID as basename for the "longdesc" -->
+                <!-- * file (that is, without prepending an "ld-" too it) -->
+                <xsl:value-of select="$mediaobject/@*[local-name() = 'id']"/>
+                <xsl:value-of select="$html.ext"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <!-- * otherwise, if this mediaobject does not have an -->
+                <!-- * ID, then we generate an ID... -->
+                <xsl:variable name="image-id">
+                  <xsl:call-template name="object.id">
+                    <xsl:with-param name="object" select="$mediaobject"/>
+                  </xsl:call-template>
+                </xsl:variable>
+                <!-- * ...and then we take that generated ID, prepend an -->
+                <!-- * "ld-" to it, and use that as the basename for the file -->
+                <xsl:value-of select="concat('ld-',$image-id,$html.ext)"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:value-of select="$filename"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="write.longdesc">
+  <xsl:param name="mediaobject" select="."/>
+  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
+    <xsl:variable name="filename">
+      <xsl:call-template name="longdesc.uri">
+        <xsl:with-param name="mediaobject" select="$mediaobject"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:value-of select="$filename"/>
+
+    <xsl:call-template name="write.chunk">
+      <xsl:with-param name="filename" select="$filename"/>
+      <xsl:with-param name="quiet" select="$chunk.quietly"/>
+      <xsl:with-param name="content">
+      <xsl:call-template name="user.preroot"/>
+        <html>
+          <head>
+            <xsl:call-template name="system.head.content"/>
+            <xsl:call-template name="head.content">
+              <xsl:with-param name="title" select="'Long Description'"/>
+            </xsl:call-template>
+            <xsl:call-template name="user.head.content"/>
+          </head>
+          <body>
+            <xsl:call-template name="body.attributes"/>
+            <xsl:for-each select="$mediaobject/textobject[not(phrase)]">
+              <xsl:apply-templates select="./*"/>
+            </xsl:for-each>
+          </body>
+        </html>
+        <xsl:value-of select="$chunk.append"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="longdesc.link">
+  <xsl:param name="longdesc.uri" select="''"/>
+
+  <xsl:variable name="this.uri">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+      <xsl:with-param name="base.name">
+        <xsl:call-template name="href.target.uri"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="href.to">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$longdesc.uri"/>
+      <xsl:with-param name="uriB" select="$this.uri"/>
+      <xsl:with-param name="return" select="'A'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <div class="longdesc-link" align="{$direction.align.end}">
+    <br clear="all"/>
+    <span class="longdesc-link">
+      <xsl:text>[</xsl:text>
+      <a href="{$href.to}" target="longdesc">D</a>
+      <xsl:text>]</xsl:text>
+    </span>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="videoobject">
+  <xsl:apply-templates select="videodata"/>
+</xsl:template>
+
+<xsl:template match="videodata">
+  <xsl:call-template name="process.image">
+    <xsl:with-param name="tag" select="'embed'"/>
+    <xsl:with-param name="alt">
+      <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="audioobject">
+  <xsl:apply-templates select="audiodata"/>
+</xsl:template>
+
+<xsl:template match="audiodata">
+  <xsl:call-template name="process.image">
+    <xsl:with-param name="tag" select="'embed'"/>
+    <xsl:with-param name="alt">
+      <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="textobject">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="textdata">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="@fileref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="encoding">
+    <xsl:choose>
+      <xsl:when test="@encoding">
+        <xsl:value-of select="@encoding"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$textdata.default.encoding"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$use.extensions != '0'                     and $textinsert.extension != '0'">
+      <xsl:choose>
+        <xsl:when test="element-available('stext:insertfile')">
+          <stext:insertfile href="{$filename}" encoding="{$encoding}"/>
+        </xsl:when>
+        <xsl:when test="element-available('xtext:insertfile')">
+          <xtext:insertfile href="{$filename}"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message terminate="yes">
+            <xsl:text>No insertfile extension available.</xsl:text>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+	<xsl:text>Cannot insert </xsl:text><xsl:value-of select="$filename"/>
+	<xsl:text>. Check use.extensions and textinsert.extension parameters.</xsl:text> 
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="caption">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="@align = 'right' or @align = 'left' or @align='center'">
+      <xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- "Support" for SVG -->
+
+<xsl:template xmlns:svg="http://www.w3.org/2000/svg" match="svg:*">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+
+<!-- The following works sometimes, but needs to take into account
+             1. When there is no /*/@xml:base
+             2. When the chunks are going somewhere else
+<xsl:variable name="relpath">
+  <xsl:call-template name="relative-uri">
+    <xsl:with-param name="filename" select="@fileref"/>
+  </xsl:call-template>
+</xsl:variable>
+
+<xsl:choose>
+  <xsl:when test="/*/@xml:base
+                  and starts-with($relpath,/*/@xml:base)">
+    <xsl:value-of select="substring-after($relpath,/*/@xml:base)"/>
+  </xsl:when>
+  <xsl:otherwise>
+    <xsl:value-of select="@fileref"/>
+  </xsl:otherwise>
+</xsl:choose>
+<xsl:value-of select="@fileref"/>
+      </xsl:when>
+-->
+<!-- Resolve xml:base attributes -->
+<xsl:template match="@fileref">
+  <!-- need a check for absolute urls -->
+  <xsl:choose>
+    <xsl:when test="contains(., ':')">
+      <!-- it has a uri scheme so it is an absolute uri -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:when test="$keep.relative.image.uris != 0">
+      <!-- leave it alone -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- its a relative uri that needs xml:base processing -->
+      <xsl:call-template name="relative-uri">
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/highlight.xsl b/applications/content/template/docbook/xhtml/highlight.xsl
new file mode 100644
index 0000000..8c64600
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/highlight.xsl
@@ -0,0 +1,88 @@
+<?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:xslthl="http://xslthl.sf.net" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xslthl" version="1.0">
+  <!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     and other information.
+
+     ******************************************************************** -->
+  <xsl:import href="../highlighting/common.xsl"/>
+  <xsl:template match="xslthl:keyword" mode="xslthl">
+    <strong class="hl-keyword">
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:string" mode="xslthl">
+    <strong class="hl-string">
+      <em style="color:red">
+        <xsl:apply-templates mode="xslthl"/>
+      </em>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:comment" mode="xslthl">
+    <em class="hl-comment" style="color: silver">
+      <xsl:apply-templates mode="xslthl"/>
+    </em>
+  </xsl:template>
+  <xsl:template match="xslthl:directive" mode="xslthl">
+    <span class="hl-directive" style="color: maroon">
+      <xsl:apply-templates mode="xslthl"/>
+    </span>
+  </xsl:template>
+  <xsl:template match="xslthl:tag" mode="xslthl">
+    <strong class="hl-tag" style="color: #000096">
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:attribute" mode="xslthl">
+    <span class="hl-attribute" style="color: #F5844C">
+      <xsl:apply-templates mode="xslthl"/>
+    </span>
+  </xsl:template>
+  <xsl:template match="xslthl:value" mode="xslthl">
+    <span class="hl-value" style="color: #993300">
+      <xsl:apply-templates mode="xslthl"/>
+    </span>
+  </xsl:template>
+  <xsl:template match="xslthl:html" mode="xslthl">
+    <strong>
+      <em style="color: red">
+        <xsl:apply-templates mode="xslthl"/>
+      </em>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:xslt" mode="xslthl">
+    <strong style="color: #0066FF">
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+  <!-- Not emitted since XSLTHL 2.0 -->
+  <xsl:template match="xslthl:section" mode="xslthl">
+    <strong>
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+  <xsl:template match="xslthl:number" mode="xslthl">
+    <span class="hl-number">
+      <xsl:apply-templates mode="xslthl"/>
+    </span>
+  </xsl:template>
+  <xsl:template match="xslthl:annotation" mode="xslthl">
+    <em>
+      <span class="hl-annotation" style="color: gray">
+        <xsl:apply-templates mode="xslthl"/>
+      </span>
+    </em>
+  </xsl:template>
+  <!-- Not sure which element will be in final XSLTHL 2.0 -->
+  <xsl:template match="xslthl:doccomment|xslthl:doctype" mode="xslthl">
+    <strong class="hl-tag" style="color: blue">
+      <xsl:apply-templates mode="xslthl"/>
+    </strong>
+  </xsl:template>
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/html-rtf.xsl b/applications/content/template/docbook/xhtml/html-rtf.xsl
new file mode 100644
index 0000000..a3e2fa8
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/html-rtf.xsl
@@ -0,0 +1,321 @@
+<?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:exsl="http://exslt.org/common" xmlns:set="http://exslt.org/sets" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="exsl set" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This module contains templates that match against HTML nodes. It is used
+     to post-process result tree fragments for some sorts of cleanup.
+     These templates can only ever be fired by a processor that supports
+     exslt:node-set(). -->
+
+<!-- ==================================================================== -->
+
+<!-- insert.html.p mode templates insert a particular RTF at the beginning
+     of the first paragraph in the primary RTF. -->
+
+<xsl:template match="/" mode="insert.html.p">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:apply-templates mode="insert.html.p">
+    <xsl:with-param name="mark" select="$mark"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.html.p">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="insert.html.p">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml" match="html:p|p" mode="insert.html.p">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:if test="not(preceding::p|preceding::html:p)">
+      <xsl:copy-of select="$mark"/>
+    </xsl:if>
+    <xsl:apply-templates mode="insert.html.p">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="insert.html.p">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- insert.html.text mode templates insert a particular RTF at the beginning
+     of the first text-node in the primary RTF. -->
+
+<xsl:template match="/" mode="insert.html.text">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:apply-templates mode="insert.html.text">
+    <xsl:with-param name="mark" select="$mark"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.html.text">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="insert.html.text">
+      <xsl:with-param name="mark" select="$mark"/>
+    </xsl:apply-templates>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="insert.html.text">
+  <xsl:param name="mark" select="'?'"/>
+
+  <xsl:if test="not(preceding::text())">
+    <xsl:copy-of select="$mark"/>
+  </xsl:if>
+
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="processing-instruction()|comment()" mode="insert.html.text">
+  <xsl:param name="mark" select="'?'"/>
+  <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- unwrap.p mode templates remove blocks from HTML p elements (and
+     other places where blocks aren't allowed) -->
+
+<xsl:template name="unwrap.p">
+  <xsl:param name="p"/>
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0                     and function-available('set:leading')                     and function-available('set:trailing')">
+      <xsl:apply-templates select="exsl:node-set($p)" mode="unwrap.p"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$p"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml" match="html:p|p" mode="unwrap.p">
+  <!-- xmlns:html is necessary for the xhtml stylesheet case -->
+  <xsl:variable name="blocks" select="address|blockquote|div|hr|h1|h2|h3|h4|h5|h6                         |layer|p|pre|table|dl|menu|ol|ul|form                         |html:address|html:blockquote|html:div|html:hr                         |html:h1|html:h2|html:h3|html:h4|html:h5|html:h6                         |html:layer|html:p|html:pre|html:table|html:dl                         |html:menu|html:ol|html:ul|html:form"/>
+  <xsl:choose>
+    <xsl:when test="$blocks">
+      <xsl:call-template name="unwrap.p.nodes">
+        <xsl:with-param name="wrap" select="."/>
+        <xsl:with-param name="first" select="1"/>
+        <xsl:with-param name="nodes" select="node()"/>
+        <xsl:with-param name="blocks" select="$blocks"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy>
+        <xsl:copy-of select="@*"/>
+        <xsl:apply-templates mode="unwrap.p"/>
+      </xsl:copy>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="unwrap.p">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="unwrap.p"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="unwrap.p">
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template name="unwrap.p.nodes">
+  <xsl:param name="wrap" select="."/>
+  <xsl:param name="first" select="0"/>
+  <xsl:param name="nodes"/>
+  <xsl:param name="blocks"/>
+  <xsl:variable name="block" select="$blocks[1]"/>
+
+  <!-- This template should never get called if these functions aren't available -->
+  <!-- but this test is still necessary so that processors don't choke on the -->
+  <!-- function calls if they don't support the set: functions -->
+  <xsl:if test="function-available('set:leading')                 and function-available('set:trailing')">
+    <xsl:choose>
+      <xsl:when test="$blocks">
+        <xsl:variable name="leading" select="set:leading($nodes,$block)"/>
+        <xsl:variable name="trailing" select="set:trailing($nodes,$block)"/>
+
+        <xsl:if test="(($wrap/@id or $wrap/@xml:id)                          and $first = 1) or $leading">
+          <xsl:element name="{local-name($wrap)}" namespace="http://www.w3.org/1999/xhtml">
+            <xsl:for-each select="$wrap/@*">
+              <xsl:if test="$first != 0 or local-name(.) != 'id'">
+                <xsl:copy/>
+              </xsl:if>
+            </xsl:for-each>
+            <xsl:apply-templates select="$leading" mode="unwrap.p"/>
+          </xsl:element>
+        </xsl:if>
+
+        <xsl:apply-templates select="$block" mode="unwrap.p"/>
+
+        <xsl:if test="$trailing">
+          <xsl:call-template name="unwrap.p.nodes">
+            <xsl:with-param name="wrap" select="$wrap"/>
+            <xsl:with-param name="nodes" select="$trailing"/>
+            <xsl:with-param name="blocks" select="$blocks[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <xsl:if test="(($wrap/@id or $wrap/@xml:id) and $first = 1) or $nodes">
+          <xsl:element name="{local-name($wrap)}" namespace="http://www.w3.org/1999/xhtml">
+            <xsl:for-each select="$wrap/@*">
+              <xsl:if test="$first != 0 or local-name(.) != 'id'">
+                <xsl:copy/>
+              </xsl:if>
+            </xsl:for-each>
+            <xsl:apply-templates select="$nodes" mode="unwrap.p"/>
+          </xsl:element>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- make.verbatim.mode replaces spaces and newlines -->
+
+<xsl:template match="/" mode="make.verbatim.mode">
+  <xsl:apply-templates mode="make.verbatim.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="make.verbatim.mode">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="make.verbatim.mode"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="processing-instruction()|comment()" mode="make.verbatim.mode">
+  <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="text()" mode="make.verbatim.mode">
+  <xsl:variable name="text" select="translate(., ' ', '&#160;')"/>
+
+  <xsl:choose>
+    <xsl:when test="not(contains($text, '&#10;'))">
+      <xsl:value-of select="$text"/>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:variable name="len" select="string-length($text)"/>
+
+      <xsl:choose>
+        <xsl:when test="$len = 1">
+          <br/><xsl:text>
+</xsl:text>
+        </xsl:when>
+
+        <xsl:otherwise>
+          <xsl:variable name="half" select="$len div 2"/>
+          <xsl:call-template name="make-verbatim-recursive">
+            <xsl:with-param name="text" select="substring($text, 1, $half)"/>
+          </xsl:call-template>
+          <xsl:call-template name="make-verbatim-recursive">
+            <xsl:with-param name="text" select="substring($text, ($half + 1), $len)"/>
+          </xsl:call-template>
+    	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="make-verbatim-recursive">
+  <xsl:param name="text" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="not(contains($text, '&#10;'))">
+      <xsl:value-of select="$text"/>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:variable name="len" select="string-length($text)"/>
+
+      <xsl:choose>
+        <xsl:when test="$len = 1">
+          <br/><xsl:text>
+</xsl:text>
+        </xsl:when>
+
+        <xsl:otherwise>
+    	  <xsl:variable name="half" select="$len div 2"/>
+          <xsl:call-template name="make-verbatim-recursive">
+    	    <xsl:with-param name="text" select="substring($text, 1, $half)"/>
+    	  </xsl:call-template>
+    	  <xsl:call-template name="make-verbatim-recursive">
+    	    <xsl:with-param name="text" select="substring($text, ($half + 1), $len)"/>
+    	  </xsl:call-template>
+    	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- remove.empty.div mode templates remove empty blocks -->
+
+<xsl:template name="remove.empty.div">
+  <xsl:param name="div"/>
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:apply-templates select="exsl:node-set($div)" mode="remove.empty.div"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$div"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template xmlns:html="http://www.w3.org/1999/xhtml" match="html:p|p|html:div|div" mode="remove.empty.div">
+  <xsl:if test="node()">
+    <xsl:copy>
+      <xsl:copy-of select="@*"/>
+      <xsl:apply-templates mode="remove.empty.div"/>
+    </xsl:copy>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="*" mode="remove.empty.div">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="remove.empty.div"/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="text()|processing-instruction()|comment()" mode="remove.empty.div">
+  <xsl:copy/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/html.xsl b/applications/content/template/docbook/xhtml/html.xsl
new file mode 100644
index 0000000..6c2426a
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/html.xsl
@@ -0,0 +1,684 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- These variables set the align attribute value for HTML output based on
+     the writing-mode specified in the gentext file for the document's lang. -->
+
+<xsl:variable name="direction.align.start">
+  <xsl:choose>
+    <xsl:when test="starts-with($writing.mode, 'lr')">left</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'rl')">right</xsl:when>
+    <xsl:otherwise>left</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<xsl:variable name="direction.align.end">
+  <xsl:choose>
+    <xsl:when test="starts-with($writing.mode, 'lr')">right</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'rl')">left</xsl:when>
+    <xsl:otherwise>right</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<xsl:variable name="direction.mode">
+  <xsl:choose>
+    <xsl:when test="starts-with($writing.mode, 'lr')">ltr</xsl:when>
+    <xsl:when test="starts-with($writing.mode, 'rl')">rtl</xsl:when>
+    <xsl:otherwise>ltr</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<!-- Support switching to <section> for HTML5 stylesheet -->
+<!-- This is an internal variable that does not need to be set by a user -->
+<xsl:variable name="div.element">div</xsl:variable>
+<!-- Support turning off table  border with border="" for HTML5 -->
+<xsl:variable name="table.border.off">0</xsl:variable>
+
+<!-- The generate.html.title template is currently used for generating HTML -->
+<!-- "title" attributes for some inline elements only, but not for any -->
+<!-- block elements. It is called in eleven places in the inline.xsl -->
+<!-- file. But it's called by all the inline.* templates (e.g., -->
+<!-- inline.boldseq), which in turn are called by other (element) -->
+<!-- templates, so it results, currently, in supporting generation of the -->
+<!-- HTML "title" attribute for a total of about 92 elements. -->
+<!-- You can use mode="html.title.attribute" to get a title for -->
+<!-- an element specified by a param, including targets of cross references. -->
+<xsl:template name="generate.html.title">
+  <xsl:apply-templates select="." mode="html.title.attribute"/>
+</xsl:template>
+
+<xsl:template match="acronym|abbrev" mode="html.title.attribute">
+  <xsl:if test="alt">
+    <xsl:attribute name="title">
+      <xsl:value-of select="normalize-space(alt)"/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<!-- Generate a title attribute for the context node -->
+<!-- This may be the target of an xref -->
+<xsl:template match="*" mode="html.title.attribute">
+  <xsl:variable name="is.title">
+    <xsl:call-template name="gentext.template.exists">
+      <xsl:with-param name="context" select="'title'"/>
+      <xsl:with-param name="name" select="local-name(.)"/>
+      <xsl:with-param name="lang">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="is.title-numbered">
+    <xsl:call-template name="gentext.template.exists">
+      <xsl:with-param name="context" select="'title-numbered'"/>
+      <xsl:with-param name="name" select="local-name(.)"/>
+      <xsl:with-param name="lang">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="is.title-unnumbered">
+    <xsl:call-template name="gentext.template.exists">
+      <xsl:with-param name="context" select="'title-unnumbered'"/>
+      <xsl:with-param name="name" select="local-name(.)"/>
+      <xsl:with-param name="lang">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="has.title.markup">
+    <xsl:apply-templates select="." mode="title.markup">
+      <xsl:with-param name="verbose" select="0"/>
+    </xsl:apply-templates>
+  </xsl:variable>
+
+  <xsl:variable name="gentext.title">
+    <xsl:if test="$has.title.markup != '???TITLE???' and                   ($is.title != 0 or                   $is.title-numbered != 0 or                   $is.title-unnumbered != 0)">
+      <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string-length($gentext.title) != 0">
+      <xsl:attribute name="title">
+        <xsl:value-of select="$gentext.title"/>
+      </xsl:attribute>
+    </xsl:when>
+    <!-- Fall back to alt if available -->
+    <xsl:when test="alt">
+      <xsl:attribute name="title">
+        <xsl:value-of select="normalize-space(alt)"/>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="html.title.attribute">
+  <xsl:apply-templates select="question" mode="html.title.attribute"/>
+</xsl:template>
+
+<xsl:template match="question" mode="html.title.attribute">
+  <xsl:variable name="label.text">
+    <xsl:apply-templates select="." mode="qanda.label"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="string-length($label.text) != 0">
+      <xsl:attribute name="title">
+        <xsl:value-of select="$label.text"/>
+      </xsl:attribute>
+    </xsl:when>
+    <!-- Fall back to alt if available -->
+    <xsl:when test="alt">
+      <xsl:attribute name="title">
+        <xsl:value-of select="normalize-space(alt)"/>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="dir">
+  <xsl:param name="inherit" select="0"/>
+
+  <xsl:variable name="dir">
+    <xsl:choose>
+      <xsl:when test="@dir">
+        <xsl:value-of select="@dir"/>
+      </xsl:when>
+      <xsl:when test="$inherit != 0">
+        <xsl:value-of select="ancestor::*/@dir[1]"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="$dir != ''">
+    <xsl:attribute name="dir">
+      <xsl:value-of select="$dir"/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="anchor">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="conditional" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$generate.id.attributes != 0">
+      <!-- No named anchors output when this param is set -->
+    </xsl:when>
+    <xsl:when test="$conditional = 0 or $node/@id or $node/@xml:id">
+      <a>
+        <xsl:attribute name="id">
+          <xsl:call-template name="object.id">
+            <xsl:with-param name="object" select="$node"/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </a>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="id.attribute">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="conditional" select="1"/>
+  <xsl:choose>
+    <xsl:when test="$generate.id.attributes = 0">
+      <!-- No id attributes when this param is zero -->
+    </xsl:when>
+    <xsl:when test="$conditional = 0 or $node/@id or $node/@xml:id">
+      <xsl:attribute name="id">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$node"/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="href.target.uri">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="href.target">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="href.target.with.base.dir">
+  <xsl:param name="context" select="."/>
+  <xsl:param name="object" select="."/>
+  <xsl:if test="$manifest.in.base.dir = 0">
+    <xsl:value-of select="$chunk.base.dir"/>
+  </xsl:if>
+  <xsl:call-template name="href.target">
+    <xsl:with-param name="context" select="$context"/>
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="dingbat">
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:call-template name="dingbat.characters">
+    <xsl:with-param name="dingbat" select="$dingbat"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="dingbat.characters">
+  <!-- now that I'm using the real serializer, all that dingbat malarky -->
+  <!-- isn't necessary anymore... -->
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:choose>
+    <xsl:when test="$dingbat='bullet'">&#8226;</xsl:when>
+    <xsl:when test="$dingbat='copyright'">&#169;</xsl:when>
+    <xsl:when test="$dingbat='trademark'">&#8482;</xsl:when>
+    <xsl:when test="$dingbat='trade'">&#8482;</xsl:when>
+    <xsl:when test="$dingbat='registered'">&#174;</xsl:when>
+    <xsl:when test="$dingbat='service'">(SM)</xsl:when>
+    <xsl:when test="$dingbat='nbsp'">&#160;</xsl:when>
+    <xsl:when test="$dingbat='ldquo'">&#8220;</xsl:when>
+    <xsl:when test="$dingbat='rdquo'">&#8221;</xsl:when>
+    <xsl:when test="$dingbat='lsquo'">&#8216;</xsl:when>
+    <xsl:when test="$dingbat='rsquo'">&#8217;</xsl:when>
+    <xsl:when test="$dingbat='em-dash'">&#8212;</xsl:when>
+    <xsl:when test="$dingbat='mdash'">&#8212;</xsl:when>
+    <xsl:when test="$dingbat='en-dash'">&#8211;</xsl:when>
+    <xsl:when test="$dingbat='ndash'">&#8211;</xsl:when>
+    <xsl:otherwise>
+      <xsl:text>&#8226;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="id.warning">
+  <xsl:if test="$id.warnings != 0 and not(@id) and not(@xml:id) and parent::*">
+    <xsl:variable name="title">
+      <xsl:choose>
+        <xsl:when test="title">
+          <xsl:value-of select="title[1]"/>
+        </xsl:when>
+        <xsl:when test="substring(local-name(*[1]),                                   string-length(local-name(*[1])-3) = 'info')                         and *[1]/title">
+          <xsl:value-of select="*[1]/title[1]"/>
+        </xsl:when>
+        <xsl:when test="refmeta/refentrytitle">
+          <xsl:value-of select="refmeta/refentrytitle"/>
+        </xsl:when>
+        <xsl:when test="refnamediv/refname">
+          <xsl:value-of select="refnamediv/refname[1]"/>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:message>
+      <xsl:text>ID recommended on </xsl:text>
+      <xsl:value-of select="local-name(.)"/>
+      <xsl:if test="$title != ''">
+        <xsl:text>: </xsl:text>
+        <xsl:choose>
+          <xsl:when test="string-length($title) &gt; 40">
+            <xsl:value-of select="substring($title,1,40)"/>
+            <xsl:text>...</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$title"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:message>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.class.attribute">
+  <xsl:param name="class" select="local-name(.)"/>
+  <xsl:apply-templates select="." mode="class.attribute">
+    <xsl:with-param name="class" select="$class"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="class.attribute">
+  <xsl:param name="class" select="local-name(.)"/>
+  <!-- permit customization of class attributes -->
+  <!-- Use element name by default -->
+  <xsl:variable name="class.value">
+    <xsl:apply-templates select="." mode="class.value">
+      <xsl:with-param name="class" select="$class"/>
+    </xsl:apply-templates>
+  </xsl:variable>
+
+  <xsl:if test="string-length(normalize-space($class.value)) != 0">
+    <xsl:attribute name="class">
+      <xsl:value-of select="$class.value"/>
+    </xsl:attribute>
+  </xsl:if> 
+</xsl:template>
+
+<xsl:template match="*" mode="class.value">
+  <xsl:param name="class" select="local-name(.)"/>
+  <!-- permit customization of class value only -->
+  <!-- Use element name by default -->
+  <xsl:value-of select="$class"/>
+</xsl:template>
+
+<!-- Apply common attributes such as class, lang, dir -->
+<xsl:template name="common.html.attributes">
+  <xsl:param name="inherit" select="0"/>
+  <xsl:param name="class" select="local-name(.)"/>
+  <xsl:apply-templates select="." mode="common.html.attributes">
+    <xsl:with-param name="class" select="$class"/>
+    <xsl:with-param name="inherit" select="$inherit"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*" mode="common.html.attributes">
+  <xsl:param name="class" select="local-name(.)"/>
+  <xsl:param name="inherit" select="0"/>
+  <xsl:call-template name="generate.html.lang"/>
+  <xsl:call-template name="dir">
+    <xsl:with-param name="inherit" select="$inherit"/>
+  </xsl:call-template>
+  <xsl:apply-templates select="." mode="class.attribute">
+    <xsl:with-param name="class" select="$class"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- Apply common attributes not including class -->
+<xsl:template name="locale.html.attributes">
+  <xsl:apply-templates select="." mode="locale.html.attributes"/>
+</xsl:template>
+
+<xsl:template match="*" mode="locale.html.attributes">
+  <xsl:call-template name="generate.html.lang"/>
+  <xsl:call-template name="dir"/>
+</xsl:template>
+
+<!-- Pass through any lang attributes -->
+<xsl:template name="generate.html.lang">
+  <xsl:apply-templates select="." mode="html.lang.attribute"/>
+</xsl:template>
+
+<xsl:template match="*" mode="html.lang.attribute">
+  <!-- match the attribute name to the output type -->
+  <xsl:choose>
+    <xsl:when test="@lang and $stylesheet.result.type = 'html'">
+      <xsl:attribute name="lang">
+        <xsl:value-of select="@lang"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="@lang and $stylesheet.result.type = 'xhtml'">
+      <xsl:attribute name="xml:lang">
+        <xsl:value-of select="@lang"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="@xml:lang and $stylesheet.result.type = 'html'">
+      <xsl:attribute name="lang">
+        <xsl:value-of select="@xml:lang"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:when test="@xml:lang and $stylesheet.result.type = 'xhtml'">
+      <xsl:attribute name="xml:lang">
+        <xsl:value-of select="@xml:lang"/>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Insert link to css or insert literal CSS in head element -->
+<xsl:template name="generate.css">
+  <xsl:choose>
+    <xsl:when test="$generate.css.header = 0">
+      <xsl:call-template name="generate.css.links"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="generate.css.headers"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.css.headers">
+  <xsl:call-template name="generate.default.css.header"/>
+  <xsl:call-template name="generate.custom.css.header"/>
+</xsl:template>
+
+<xsl:template name="generate.default.css.header">
+  <xsl:if test="$make.clean.html != 0 and                  $docbook.css.source != ''">
+    <!-- Select default file relative to stylesheet -->
+    <xsl:variable name="css.node" select="document($docbook.css.source)/*[1]"/>
+
+    <xsl:call-template name="output.css.header">
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.custom.css.header">
+  <xsl:if test="$custom.css.source != ''">
+    <!-- Select custom file relative to document -->
+    <xsl:variable name="css.node" select="document($custom.css.source,.)/*[1]"/>
+
+    <xsl:call-template name="output.css.header">
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="output.css.header">
+  <xsl:param name="css.node"/> 
+
+  <xsl:choose>
+    <xsl:when test="count($css.node) = 0">
+    </xsl:when>
+    <xsl:otherwise>
+      <style type="text/css">
+        <xsl:copy-of select="$css.node/text()"/>
+      </style>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="generate.css.links">
+  <xsl:call-template name="generate.default.css.link"/>
+  <xsl:call-template name="generate.custom.css.link"/>
+</xsl:template>
+
+<xsl:template name="generate.default.css.link">
+  <xsl:if test="$make.clean.html != 0 and                  $docbook.css.link != 0 and                 $docbook.css.source != ''">
+    <xsl:variable name="filename">
+      <xsl:call-template name="css.output.filename">
+        <xsl:with-param name="src" select="$docbook.css.source"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.css.link">
+      <xsl:with-param name="css.filename" select="$filename"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.custom.css.link">
+  <xsl:if test="$custom.css.source != ''">
+    <xsl:variable name="filename">
+      <xsl:call-template name="css.output.filename">
+        <xsl:with-param name="src" select="$custom.css.source"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:call-template name="make.css.link">
+      <xsl:with-param name="css.filename" select="$filename"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- a CSS link reference must take into account the relative
+     path to a CSS file when chunked HTML is output to more than one directory -->
+<xsl:template name="make.css.link">
+  <xsl:param name="css.filename" select="''"/>
+
+  <xsl:variable name="href">
+    <xsl:call-template name="relative.path.link">
+      <xsl:with-param name="target.pathname" select="$css.filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="string-length($css.filename) != 0">
+    <link rel="stylesheet" type="text/css" href="{$href}"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- And the same applies to script links -->
+<xsl:template name="make.script.link">
+  <xsl:param name="script.filename" select="''"/>
+
+  <xsl:variable name="src">
+    <xsl:call-template name="relative.path.link">
+      <xsl:with-param name="target.pathname" select="$script.filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="string-length($script.filename) != 0">
+    <script>
+      <xsl:attribute name="src">
+        <xsl:value-of select="$src"/>
+      </xsl:attribute>
+      <xsl:attribute name="type">
+        <xsl:value-of select="$html.script.type"/>
+      </xsl:attribute>
+      <xsl:call-template name="other.script.attributes">
+        <xsl:with-param name="script.filename" select="$script.filename"/>
+      </xsl:call-template>
+    </script>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="other.script.attributes">
+  <xsl:param name="script.filename"/>
+  <!-- Placeholder template to allow customization to 
+       insert additional script element attributes if needed -->
+</xsl:template>
+
+<xsl:template name="relative.path.link">
+  <xsl:param name="target.pathname"/>
+  
+  <xsl:variable name="href.to.uri" select="$target.pathname"/>
+
+  <xsl:variable name="href.from.uri">
+    <xsl:call-template name="href.target.uri">
+      <xsl:with-param name="object" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="href.to">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$href.to.uri"/>
+      <xsl:with-param name="uriB" select="$href.from.uri"/>
+      <xsl:with-param name="return" select="'A'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="href.from">
+    <xsl:call-template name="trim.common.uri.paths">
+      <xsl:with-param name="uriA" select="$href.to.uri"/>
+      <xsl:with-param name="uriB" select="$href.from.uri"/>
+      <xsl:with-param name="return" select="'B'"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="depth">
+    <xsl:call-template name="count.uri.path.depth">
+      <xsl:with-param name="filename" select="$href.from"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:call-template name="copy-string">
+      <xsl:with-param name="string" select="'../'"/>
+      <xsl:with-param name="count" select="$depth"/>
+    </xsl:call-template>
+    <xsl:value-of select="$href.to"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$href"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="generate.css.files">
+  <xsl:call-template name="generate.default.css.file"/>
+  <xsl:call-template name="generate.custom.css.file"/>
+</xsl:template>
+
+<xsl:template name="generate.default.css.file">
+  <xsl:if test="$make.clean.html != 0 and                  $generate.css.header = 0 and                 $docbook.css.source != ''">
+    <!-- Select default file relative to stylesheet -->
+    <xsl:variable name="css.node" select="document($docbook.css.source)/*[1]"/>
+
+    <xsl:call-template name="generate.css.file">
+      <xsl:with-param name="src" select="$docbook.css.source"/>
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.custom.css.file">
+  <xsl:if test="$custom.css.source != '' and                 $generate.css.header = 0">
+    <!-- Select custom file relative to document -->
+    <xsl:variable name="css.node" select="document($custom.css.source,.)/*[1]"/>
+
+    <xsl:call-template name="generate.css.file">
+      <xsl:with-param name="src" select="$custom.css.source"/>
+      <xsl:with-param name="css.node" select="$css.node"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="generate.css.file">
+  <xsl:param name="css.node"/> 
+  <xsl:param name="src" select="''"/> 
+
+  <xsl:variable name="css.text" select="$css.node/text()"/>
+
+  <xsl:choose>
+    <xsl:when test="count($css.node) = 0">
+      <xsl:message>
+        <xsl:text>ERROR: no root element for CSS source file'</xsl:text>
+        <xsl:value-of select="$src"/>
+        <xsl:text>'.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="filename">
+        <xsl:call-template name="css.output.pathname">
+          <xsl:with-param name="src" select="$src"/>
+          <xsl:with-param name="content" select="$css.node"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:call-template name="write.text.chunk">
+        <xsl:with-param name="filename" select="$filename"/>
+        <xsl:with-param name="content" select="$css.text"/>
+      </xsl:call-template>
+
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="css.output.filename">
+  <xsl:param name="content"/>
+  <xsl:param name="src" select="''"/>
+  
+  <xsl:variable name="candidate">
+    <xsl:choose>
+      <xsl:when test="string-length($src) = 0">
+        <xsl:message>
+          <xsl:text>ERROR: missing CSS input filename.</xsl:text>
+        </xsl:message>
+      </xsl:when>
+      <xsl:when test="substring($src,string-length($src)-3) = '.xml'">
+        <xsl:value-of select="substring($src, 1, string-length($src) - 4)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$src"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:value-of select="$candidate"/>
+</xsl:template>
+
+<xsl:template name="css.output.pathname">
+  <xsl:param name="content"/>
+  <xsl:param name="src" select="''"/>
+
+  <xsl:variable name="file">
+    <xsl:call-template name="css.output.filename">
+      <xsl:with-param name="content" select="$content"/>
+      <xsl:with-param name="src" select="$src"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="path" select="concat($chunk.base.dir, $file)"/>
+  <xsl:value-of select="$path"/>
+  
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/htmltbl.xsl b/applications/content/template/docbook/xhtml/htmltbl.xsl
new file mode 100644
index 0000000..3662fb1
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/htmltbl.xsl
@@ -0,0 +1,103 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="table" mode="htmlTable">
+  <xsl:element name="table" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+    <xsl:attribute name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:attribute>
+    <xsl:call-template name="htmlTable"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="colgroup" mode="htmlTable">
+  <xsl:element name="{local-name()}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+    <xsl:apply-templates mode="htmlTable"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="col" mode="htmlTable">
+  <xsl:element name="{local-name()}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+  </xsl:element>
+</xsl:template>
+
+<!-- Handled by formal.object.title template -->
+<xsl:template match="caption" mode="htmlTable"/>
+
+<xsl:template match="tbody|thead|tfoot|tr" mode="htmlTable">
+  <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+    <xsl:apply-templates mode="htmlTable"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="th|td" mode="htmlTable">
+  <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="@*" mode="htmlTableAtt"/>
+    <xsl:apply-templates/> <!-- *not* mode=htmlTable -->
+  </xsl:element>
+</xsl:template>
+
+<!-- don't copy through DocBook-specific attributes on HTML table markup -->
+<!-- default behavior is to not copy through because there are more
+     DocBook attributes than HTML attributes -->
+<xsl:template mode="htmlTableAtt" match="@*"/>
+
+<!-- copy these through -->
+<xsl:template mode="htmlTableAtt" match="@abbr                    | @align                    | @axis                    | @bgcolor                    | @border                    | @cellpadding                    | @cellspacing                    | @char                    | @charoff                    | @class                    | @dir                    | @frame                    | @headers                    | @height                    | @lang                    | @nowrap                    | @onclick                    | @ondblclick                    | @onkeydown                    | @onkeypress                    | @onkeyup                    | @onmousedown                    | @onmousemove                    | @onmouseout                    | @onmouseover                    | @onmouseup                    | @rules                    | @style                    | @summary                    | @title                    | @valign                    | @valign                    | @width                    | @xml:lang">
+  <xsl:copy-of select="."/>
+</xsl:template>
+
+<xsl:template match="@span|@rowspan|@colspan" mode="htmlTableAtt">
+  <!-- No need to copy through the DTD's default value "1" of the attribute -->
+  <xsl:if test="number(.) != 1">
+    <xsl:attribute name="{local-name(.)}">
+      <xsl:value-of select="."/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<!-- map floatstyle to HTML float values -->
+<xsl:template match="@floatstyle" mode="htmlTableAtt">
+  <xsl:attribute name="style">
+    <xsl:text>float: </xsl:text>
+    <xsl:choose>
+      <xsl:when test="contains(., 'left')">left</xsl:when>
+      <xsl:when test="contains(., 'right')">right</xsl:when>
+      <xsl:when test="contains(., 'start')">
+        <xsl:value-of select="$direction.align.start"/>
+      </xsl:when>
+      <xsl:when test="contains(., 'end')">
+        <xsl:value-of select="$direction.align.end"/>
+      </xsl:when>
+      <xsl:when test="contains(., 'inside')">
+        <xsl:value-of select="$direction.align.start"/>
+      </xsl:when>
+      <xsl:when test="contains(., 'outside')">
+        <xsl:value-of select="$direction.align.end"/>
+      </xsl:when>
+      <xsl:when test="contains(., 'before')">none</xsl:when>
+      <xsl:when test="contains(., 'none')">none</xsl:when>
+    </xsl:choose>
+    <xsl:text>;</xsl:text>
+  </xsl:attribute>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/index.xsl b/applications/content/template/docbook/xhtml/index.xsl
new file mode 100644
index 0000000..76cc6f8
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/index.xsl
@@ -0,0 +1,255 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. Unless generate.index -->
+  <!-- is non-zero, in which case, this is where the automatically -->
+  <!-- generated index should go. -->
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:if test="count(*)&gt;0 or $generate.index != '0'">
+    <div>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="index.titlepage"/>
+      <xsl:choose>
+	<xsl:when test="indexdiv">
+	  <xsl:apply-templates/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:apply-templates select="*[not(self::indexentry)]"/>
+	  <!-- Because it's actually valid for Index to have neither any -->
+	  <!-- Indexdivs nor any Indexentries, we need to check and make -->
+	  <!-- sure that at least one Indexentry exists, and generate a -->
+	  <!-- wrapper dl if there is at least one; otherwise, do nothing. -->
+	  <xsl:if test="indexentry">
+	    <!-- The indexentry template assumes a parent dl wrapper has -->
+	    <!-- been generated; for Indexes that have Indexdivs, the dl -->
+	    <!-- wrapper is generated by the indexdiv template; however, -->
+	    <!-- for Indexes that lack Indexdivs, if we don't generate a -->
+	    <!-- dl here, HTML output will not be valid. -->
+	    <dl>
+	      <xsl:apply-templates select="indexentry"/>
+	    </dl>
+	  </xsl:if>
+	</xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+        <xsl:call-template name="generate-index">
+          <xsl:with-param name="scope" select="(ancestor::book|/)[last()]"/>
+        </xsl:call-template>
+      </xsl:if>
+
+      <xsl:if test="not(parent::article)">
+        <xsl:call-template name="process.footnotes"/>
+      </xsl:if>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="setindex">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. Unless generate.index -->
+  <!-- is non-zero, in which case, this is where the automatically -->
+  <!-- generated index should go. -->
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:if test="count(*)&gt;0 or $generate.index != '0'">
+    <div>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="setindex.titlepage"/>
+      <xsl:apply-templates/>
+
+      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+        <xsl:call-template name="generate-index">
+          <xsl:with-param name="scope" select="/"/>
+        </xsl:call-template>
+      </xsl:if>
+
+      <xsl:if test="not(parent::article)">
+        <xsl:call-template name="process.footnotes"/>
+      </xsl:if>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="index/indexinfo"/>
+<xsl:template match="index/info"/>
+<xsl:template match="index/title"/>
+<xsl:template match="index/subtitle"/>
+<xsl:template match="index/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexdiv">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates select="*[not(self::indexentry)]"/>
+    <dl>
+      <xsl:apply-templates select="indexentry"/>
+    </dl>
+  </div>
+</xsl:template>
+
+<xsl:template match="indexdiv/title">
+  <h3>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexterm">
+  <!-- this one must have a name, even if it doesn't have an ID -->
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <a id="{$id}" class="indexterm"/>
+</xsl:template>
+
+<xsl:template match="primary|secondary|tertiary|see|seealso">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexentry">
+  <xsl:apply-templates select="primaryie"/>
+</xsl:template>
+
+<xsl:template match="primaryie">
+  <dt>
+    <xsl:apply-templates/>
+  </dt>
+  <dd>
+    <xsl:apply-templates select="following-sibling::seeie                                    [not(preceding-sibling::secondaryie)]" mode="indexentry"/>
+    <xsl:apply-templates select="following-sibling::seealsoie                                    [not(preceding-sibling::secondaryie)]" mode="indexentry"/>
+    <xsl:apply-templates select="following-sibling::secondaryie" mode="indexentry"/>
+  </dd>
+</xsl:template>
+
+<!-- Handled in mode to convert flat list to structured output -->
+<xsl:template match="secondaryie">
+</xsl:template>
+<xsl:template match="tertiaryie">
+</xsl:template>
+<xsl:template match="seeie|seealsoie">
+</xsl:template>
+
+<xsl:template match="secondaryie" mode="indexentry">
+  <dl>
+    <dt>
+      <xsl:apply-templates/>
+    </dt>
+    <dd>
+      <!-- select following see* elements up to next secondaryie or tertiary or end -->
+      <xsl:variable name="after.this" select="following-sibling::*"/>
+      <xsl:variable name="next.entry" select="(following-sibling::secondaryie|following-sibling::tertiaryie)[1]"/>
+      <xsl:variable name="before.entry" select="$next.entry/preceding-sibling::*"/>
+      <xsl:variable name="see.intersection" select="$after.this[count(.|$before.entry) = count($before.entry)]                                 [self::seeie or self::seealsoie]"/>
+      <xsl:choose>
+        <xsl:when test="count($see.intersection) != 0">
+          <xsl:apply-templates select="$see.intersection" mode="indexentry"/>
+        </xsl:when>
+        <xsl:when test="count($next.entry) = 0">
+          <xsl:apply-templates select="following-sibling::seeie" mode="indexentry"/>
+          <xsl:apply-templates select="following-sibling::seealsoie" mode="indexentry"/>
+        </xsl:when>
+      </xsl:choose>
+
+      <!-- now process any tertiaryie before the next secondaryie -->
+      <xsl:variable name="before.next.secondary" select="following-sibling::secondaryie[1]/preceding-sibling::*"/>
+      <xsl:variable name="tertiary.intersection" select="$after.this[count(.|$before.next.secondary) =                                   count($before.next.secondary)]                                 [not(self::seeie) and not(self::seealsoie)]"/>
+      <xsl:choose>
+        <xsl:when test="count($tertiary.intersection) != 0">
+          <xsl:apply-templates select="$tertiary.intersection" mode="indexentry"/>
+        </xsl:when>
+        <xsl:when test="not(following-sibling::secondaryie)">
+          <xsl:apply-templates select="following-sibling::tertiaryie" mode="indexentry"/>
+        </xsl:when>
+      </xsl:choose>
+    </dd>
+  </dl>
+</xsl:template>
+
+<xsl:template match="tertiaryie" mode="indexentry">
+  <dl>
+    <dt>
+      <xsl:apply-templates/>
+    </dt>
+    <dd>
+      <!-- select following see* elements up to next secondaryie or tertiary or end -->
+      <xsl:variable name="after.this" select="following-sibling::*"/>
+      <xsl:variable name="next.entry" select="(following-sibling::secondaryie|following-sibling::tertiaryie)[1]"/>
+      <xsl:variable name="before.entry" select="$next.entry/preceding-sibling::*"/>
+      <xsl:variable name="see.intersection" select="$after.this[count(.|$before.entry) = count($before.entry)]                                 [self::seeie or self::seealsoie]"/>
+      <xsl:choose>
+        <xsl:when test="count($see.intersection) != 0">
+          <xsl:apply-templates select="$see.intersection" mode="indexentry"/>
+        </xsl:when>
+        <xsl:when test="count($next.entry) = 0">
+          <xsl:apply-templates select="following-sibling::seeie" mode="indexentry"/>
+          <xsl:apply-templates select="following-sibling::seealsoie" mode="indexentry"/>
+        </xsl:when>
+      </xsl:choose>
+    </dd>
+  </dl>
+</xsl:template>
+
+<xsl:template match="seeie" mode="indexentry">
+  <dt>
+    <xsl:text>(</xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'see'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </dt>
+</xsl:template>
+
+<xsl:template match="seealsoie" mode="indexentry">
+  <div>
+    <xsl:text>(</xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'seealso'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/info.xsl b/applications/content/template/docbook/xhtml/info.xsl
new file mode 100644
index 0000000..de79e83
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/info.xsl
@@ -0,0 +1,46 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- These templates define the "default behavior" for info
+     elements.  Even if you don't process the *info wrappers,
+     some of these elements are needed because the elements are
+     processed from named templates that are called with modes.
+     Since modes aren't sticky, these rules apply. 
+     (TODO: clarify this comment) -->
+
+<!-- ==================================================================== -->
+<!-- called from named templates in a given mode -->
+
+<xsl:template match="corpauthor">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="jobtitle">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/inline.xsl b/applications/content/template/docbook/xhtml/inline.xsl
new file mode 100644
index 0000000..f40ea5a
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/inline.xsl
@@ -0,0 +1,1479 @@
+<?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:xlink="http://www.w3.org/1999/xlink" xmlns:suwl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.UnwrapLinks" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xlink suwl" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:key name="glossentries" match="glossentry" use="normalize-space(glossterm)"/>
+<xsl:key name="glossentries" match="glossentry" use="normalize-space(glossterm/@baseform)"/>
+
+<xsl:template name="simple.xlink">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <xsl:param name="linkend" select="$node/@linkend"/>
+  <xsl:param name="xhref" select="$node/@xlink:href"/>
+
+  <!-- Support for @xlink:show -->
+  <xsl:variable name="target.show">
+    <xsl:choose>
+      <xsl:when test="$node/@xlink:show = 'new'">_blank</xsl:when>
+      <xsl:when test="$node/@xlink:show = 'replace'">_top</xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="link">
+    <xsl:choose>
+      <xsl:when test="$xhref and                        (not($node/@xlink:type) or                             $node/@xlink:type='simple')">
+
+        <!-- Is it a local idref or a uri? -->
+        <xsl:variable name="is.idref">
+          <xsl:choose>
+            <!-- if the href starts with # and does not contain an "(" -->
+            <!-- or if the href starts with #xpointer(id(, it's just an ID -->
+            <xsl:when test="starts-with($xhref,'#')                             and (not(contains($xhref,'('))                             or starts-with($xhref,                                        '#xpointer(id('))">1</xsl:when>
+            <xsl:otherwise>0</xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+
+        <!-- Is it an olink ? -->
+        <xsl:variable name="is.olink">
+          <xsl:choose>
+            <!-- If xlink:role="http://docbook.org/xlink/role/olink" -->
+            <!-- and if the href contains # -->
+            <xsl:when test="contains($xhref,'#') and                  @xlink:role = $xolink.role">1</xsl:when>
+            <xsl:otherwise>0</xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+
+        <xsl:choose>
+          <xsl:when test="$is.olink = 1">
+            <xsl:call-template name="olink">
+              <xsl:with-param name="content" select="$content"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$is.idref = 1">
+
+            <xsl:variable name="idref">
+              <xsl:call-template name="xpointer.idref">
+                <xsl:with-param name="xpointer" select="$xhref"/>
+              </xsl:call-template>
+            </xsl:variable>
+
+            <xsl:variable name="targets" select="key('id',$idref)"/>
+            <xsl:variable name="target" select="$targets[1]"/>
+
+            <xsl:call-template name="check.id.unique">
+              <xsl:with-param name="linkend" select="$idref"/>
+            </xsl:call-template>
+
+            <xsl:choose>
+              <xsl:when test="count($target) = 0">
+                <xsl:message>
+                  <xsl:text>XLink to nonexistent id: </xsl:text>
+                  <xsl:value-of select="$idref"/>
+                </xsl:message>
+                <xsl:copy-of select="$content"/>
+              </xsl:when>
+
+              <xsl:otherwise>
+                <a>
+                  <xsl:apply-templates select="." mode="common.html.attributes"/>
+                  <xsl:call-template name="id.attribute"/>
+
+                  <xsl:attribute name="href">
+                    <xsl:call-template name="href.target">
+                      <xsl:with-param name="object" select="$target"/>
+                    </xsl:call-template>
+                  </xsl:attribute>
+
+                  <xsl:choose>
+                    <xsl:when test="$node/@xlink:title">
+                      <xsl:attribute name="title">
+                        <xsl:value-of select="$node/@xlink:title"/>
+                      </xsl:attribute>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:apply-templates select="$target" mode="html.title.attribute"/>
+                    </xsl:otherwise>
+                  </xsl:choose>
+
+                  <xsl:if test="$target.show !=''">
+                    <xsl:attribute name="target">
+                      <xsl:value-of select="$target.show"/>
+                    </xsl:attribute>
+                  </xsl:if>
+
+                  <xsl:copy-of select="$content"/>
+
+                </a>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+
+          <!-- otherwise it's a URI -->
+          <xsl:otherwise>
+            <a>
+              <xsl:apply-templates select="." mode="common.html.attributes"/>
+              <xsl:call-template name="id.attribute"/>
+              <xsl:attribute name="href">
+                <xsl:value-of select="$xhref"/>
+              </xsl:attribute>
+              <xsl:if test="$node/@xlink:title">
+                <xsl:attribute name="title">
+                  <xsl:value-of select="$node/@xlink:title"/>
+                </xsl:attribute>
+              </xsl:if>
+
+              <!-- For URIs, use @xlink:show if defined, otherwise use ulink.target -->
+              <xsl:choose>
+                <xsl:when test="$target.show !=''">
+                  <xsl:attribute name="target">
+                    <xsl:value-of select="$target.show"/>
+                  </xsl:attribute>
+                </xsl:when>
+                <xsl:when test="$ulink.target !=''">
+                  <xsl:attribute name="target">
+                    <xsl:value-of select="$ulink.target"/>
+                  </xsl:attribute>
+                </xsl:when>
+              </xsl:choose>
+              
+              <xsl:copy-of select="$content"/>
+            </a>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:when test="$linkend">
+        <xsl:variable name="targets" select="key('id',$linkend)"/>
+        <xsl:variable name="target" select="$targets[1]"/>
+
+        <xsl:call-template name="check.id.unique">
+          <xsl:with-param name="linkend" select="$linkend"/>
+        </xsl:call-template>
+
+        <a>
+          <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:call-template name="id.attribute"/>
+          <xsl:attribute name="href">
+            <xsl:call-template name="href.target">
+              <xsl:with-param name="object" select="$target"/>
+            </xsl:call-template>
+          </xsl:attribute>
+
+          <xsl:apply-templates select="$target" mode="html.title.attribute"/>
+
+          <xsl:copy-of select="$content"/>
+          
+        </a>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$content"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="function-available('suwl:unwrapLinks')">
+      <xsl:copy-of select="suwl:unwrapLinks($link)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$link"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.charseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <!-- * if you want output from the inline.charseq template wrapped in -->
+  <!-- * something other than a Span, call the template with some value -->
+  <!-- * for the 'wrapper-name' param -->
+  <xsl:param name="wrapper-name">span</xsl:param>
+  <xsl:element name="{$wrapper-name}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:attribute name="class">
+      <xsl:value-of select="local-name(.)"/>
+    </xsl:attribute>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="dir"/>
+    <xsl:call-template name="generate.html.title"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="inline.monoseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </code>
+</xsl:template>
+
+<xsl:template name="inline.boldseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+
+    <!-- don't put <strong> inside figure, example, or table titles -->
+    <xsl:choose>
+      <xsl:when test="local-name(..) = 'title'                       and (local-name(../..) = 'figure'                       or local-name(../..) = 'example'                       or local-name(../..) = 'table')">
+        <xsl:copy-of select="$content"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <strong>
+          <xsl:copy-of select="$content"/>
+        </strong>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="apply-annotations"/>
+  </span>
+</xsl:template>
+
+<xsl:template name="inline.italicseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <em>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </em>
+</xsl:template>
+
+<xsl:template name="inline.boldmonoseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <!-- don't put <strong> inside figure, example, or table titles -->
+  <!-- or other titles that may already be represented with <strong>'s. -->
+  <xsl:choose>
+    <xsl:when test="local-name(..) = 'title'                     and (local-name(../..) = 'figure'                          or local-name(../..) = 'example'                          or local-name(../..) = 'table'                          or local-name(../..) = 'formalpara')">
+      <code>
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:copy-of select="$content"/>
+        <xsl:call-template name="apply-annotations"/>
+      </code>
+    </xsl:when>
+    <xsl:otherwise>
+      <strong>
+        <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <code>
+          <xsl:call-template name="generate.html.title"/>
+          <xsl:call-template name="dir"/>
+          <xsl:copy-of select="$content"/>
+        </code>
+        <xsl:call-template name="apply-annotations"/>
+      </strong>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.italicmonoseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <em>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <code>
+      <xsl:call-template name="generate.html.title"/>
+      <xsl:call-template name="dir"/>
+      <xsl:copy-of select="$content"/>
+      <xsl:call-template name="apply-annotations"/>
+    </code>
+  </em>
+</xsl:template>
+
+<xsl:template name="inline.superscriptseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <sup>
+    <xsl:call-template name="generate.html.title"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="dir"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </sup>
+</xsl:template>
+
+<xsl:template name="inline.subscriptseq">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <sub>
+    <xsl:call-template name="generate.html.title"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="dir"/>
+    <xsl:copy-of select="$content"/>
+    <xsl:call-template name="apply-annotations"/>
+  </sub>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- some special cases -->
+
+<xsl:template match="author">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="editor">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorinitials">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="accel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="action">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="application">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="classname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="exceptionname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="interfacename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="methodname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="command">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="computeroutput">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="constant">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="database">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="date">
+  <!-- should this support locale-specific formatting? how? -->
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorcode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortype">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortext">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="envar">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="filename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="function">
+  <xsl:choose>
+    <xsl:when test="$function.parens != '0'                     and (parameter or function or replaceable)">
+      <xsl:variable name="nodes" select="text()|*"/>
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:call-template name="simple.xlink">
+            <xsl:with-param name="content">
+              <xsl:apply-templates select="$nodes[1]"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>(</xsl:text>
+      <xsl:apply-templates select="$nodes[position()&gt;1]"/>
+      <xsl:text>)</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+     <xsl:call-template name="inline.monoseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="function/parameter" priority="2">
+  <xsl:call-template name="inline.italicmonoseq"/>
+  <xsl:if test="following-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="function/replaceable" priority="2">
+  <xsl:call-template name="inline.italicmonoseq"/>
+  <xsl:if test="following-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="guibutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guiicon">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guilabel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenuitem">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guisubmenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="hardware">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interface">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interfacedefinition">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keycap">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="keycode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keysym">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="literal">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="code">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="medialabel">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="shortcut">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="mousebutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="option">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="package">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="parameter">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="property">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="prompt">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="replaceable" priority="1">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="returnvalue">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="structfield">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="structname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="symbol">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="systemitem">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="token">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="type">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="userinput">
+  <xsl:call-template name="inline.boldmonoseq"/>
+</xsl:template>
+
+<xsl:template match="abbrev">
+  <xsl:call-template name="inline.charseq">
+    <xsl:with-param name="wrapper-name">abbr</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="acronym">
+  <xsl:call-template name="inline.charseq">
+    <xsl:with-param name="wrapper-name">acronym</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="citerefentry">
+  <xsl:choose>
+    <xsl:when test="$citerefentry.link != '0'">
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="generate.citerefentry.link"/>
+        </xsl:attribute>
+        <xsl:call-template name="inline.charseq"/>
+      </a>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.charseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.citerefentry.link">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template name="x.generate.citerefentry.link">
+  <xsl:text>http://example.com/cgi-bin/man.cgi?</xsl:text>
+  <xsl:value-of select="refentrytitle"/>
+  <xsl:text>(</xsl:text>
+  <xsl:value-of select="manvolnum"/>
+  <xsl:text>)</xsl:text>
+</xsl:template>
+
+<xsl:template match="citetitle">
+  <xsl:choose>
+    <xsl:when test="@pubwork = 'article'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.italicseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="emphasis">
+  <span>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:choose>
+      <!-- We don't want empty @class values, so do not propagate empty @roles -->
+      <xsl:when test="@role  and                       normalize-space(@role) != '' and                       $emphasis.propagates.style != 0">
+        <xsl:apply-templates select="." mode="common.html.attributes">
+          <xsl:with-param name="class" select="@role"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:choose>
+          <xsl:when test="@role = 'bold' or @role='strong'">
+            <!-- backwards compatibility: make bold into b elements, but -->
+            <!-- don't put bold inside figure, example, or table titles -->
+            <xsl:choose>
+              <xsl:when test="local-name(..) = 'title'                               and (local-name(../..) = 'figure'                               or local-name(../..) = 'example'                               or local-name(../..) = 'table')">
+                <xsl:apply-templates/>
+              </xsl:when>
+              <xsl:otherwise>
+                <strong><xsl:apply-templates/></strong>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+          <xsl:when test="@role and $emphasis.propagates.style != 0">
+            <xsl:apply-templates/>
+          </xsl:when>
+          <xsl:otherwise>
+            <em><xsl:apply-templates/></em>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </span>
+</xsl:template>
+
+<xsl:template match="foreignphrase">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="inline.italicseq"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="markup">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phrase">
+  <span>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="locale.html.attributes"/>
+    <!-- We don't want empty @class values, so do not propagate empty @roles -->
+    <xsl:choose>
+      <xsl:when test="@role and                       normalize-space(@role) != '' and                      $phrase.propagates.style != 0">
+        <xsl:apply-templates select="." mode="class.attribute">
+          <xsl:with-param name="class" select="@role"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="." mode="class.attribute"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="dir"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="quote">
+  <xsl:variable name="depth">
+    <xsl:call-template name="dot.count">
+      <xsl:with-param name="string">
+        <xsl:number level="multiple"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:choose>
+      <xsl:when test="$depth mod 2 = 0">
+        <xsl:call-template name="gentext.startquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.endquote"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="gentext.nestedstartquote"/>
+        <xsl:call-template name="inline.charseq"/>
+        <xsl:call-template name="gentext.nestedendquote"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="wordasword">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="lineannotation">
+  <em>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="inline.charseq"/>
+  </em>
+</xsl:template>
+
+<xsl:template match="superscript">
+  <xsl:call-template name="inline.superscriptseq"/>
+</xsl:template>
+
+<xsl:template match="subscript">
+  <xsl:call-template name="inline.subscriptseq"/>
+</xsl:template>
+
+<xsl:template match="trademark">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:choose>
+    <xsl:when test="@class = 'copyright'                     or @class = 'registered'">
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat" select="@class"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="@class = 'service'">
+      <sup>SM</sup>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat" select="'trademark'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="firstterm">
+  <xsl:call-template name="glossterm">
+    <xsl:with-param name="firstterm" select="1"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="glossterm" name="glossterm">
+  <xsl:param name="firstterm" select="0"/>
+
+  <!-- To avoid extra <a name=""> anchor from inline.italicseq -->
+  <xsl:variable name="content">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="($firstterm.only.link = 0 or $firstterm = 1) and @linkend">
+      <xsl:variable name="targets" select="key('id',@linkend)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+
+      <xsl:call-template name="check.id.unique">
+        <xsl:with-param name="linkend" select="@linkend"/>
+      </xsl:call-template>
+
+      <xsl:choose>
+        <xsl:when test="$target">
+          <a>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:if test="@id or @xml:id">
+              <xsl:attribute name="id">
+                <xsl:value-of select="(@id|@xml:id)[1]"/>
+              </xsl:attribute>
+            </xsl:if>
+
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="$target"/>
+              </xsl:call-template>
+            </xsl:attribute>
+
+            <xsl:call-template name="inline.italicseq">
+              <xsl:with-param name="content" select="$content"/>
+            </xsl:call-template>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="inline.italicseq">
+            <xsl:with-param name="content" select="$content"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="not(@linkend)                     and ($firstterm.only.link = 0 or $firstterm = 1)                     and ($glossterm.auto.link != 0)                     and $glossary.collection != ''">
+      <xsl:variable name="term">
+        <xsl:choose>
+          <xsl:when test="@baseform"><xsl:value-of select="@baseform"/></xsl:when>
+          <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="cterm" select="(document($glossary.collection,.)//glossentry[glossterm=$term])[1]"/>
+
+      <!-- HACK HACK HACK! But it works... -->
+      <!-- You'd need to do more work if you wanted to chunk on glossdiv, though -->
+
+      <xsl:variable name="glossary" select="//glossary[@role='auto']"/>
+
+      <xsl:if test="count($glossary) != 1">
+        <xsl:message>
+          <xsl:text>Warning: glossary.collection specified, but there are </xsl:text>
+          <xsl:value-of select="count($glossary)"/>
+          <xsl:text> automatic glossaries</xsl:text>
+        </xsl:message>
+      </xsl:if>
+
+      <xsl:variable name="glosschunk">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select="$glossary"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="chunkbase">
+        <xsl:choose>
+          <xsl:when test="contains($glosschunk, '#')">
+            <xsl:value-of select="substring-before($glosschunk, '#')"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$glosschunk"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="not($cterm)">
+          <xsl:message>
+            <xsl:text>There's no entry for </xsl:text>
+            <xsl:value-of select="$term"/>
+            <xsl:text> in </xsl:text>
+            <xsl:value-of select="$glossary.collection"/>
+          </xsl:message>
+          <xsl:call-template name="inline.italicseq"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:variable name="id">
+            <xsl:call-template name="object.id">
+              <xsl:with-param name="object" select="$cterm"/>
+            </xsl:call-template>
+          </xsl:variable>
+          <a href="{$chunkbase}#{$id}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="inline.italicseq">
+              <xsl:with-param name="content" select="$content"/>
+            </xsl:call-template>
+          </a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="not(@linkend)                     and ($firstterm.only.link = 0 or $firstterm = 1)                     and $glossterm.auto.link != 0">
+      <xsl:variable name="term">
+        <xsl:choose>
+          <xsl:when test="@baseform">
+            <xsl:value-of select="normalize-space(@baseform)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="normalize-space(.)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+      <xsl:variable name="targets" select="key('glossentries', $term)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+
+      <xsl:choose>
+        <xsl:when test="count($targets)=0">
+          <xsl:message>
+            <xsl:text>Error: no glossentry for glossterm: </xsl:text>
+            <xsl:value-of select="."/>
+            <xsl:text>.</xsl:text>
+          </xsl:message>
+          <xsl:call-template name="inline.italicseq"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <a>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:if test="@id or @xml:id">
+              <xsl:attribute name="id">
+                <xsl:value-of select="(@id|@xml:id)[1]"/>
+              </xsl:attribute>
+            </xsl:if>
+
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="$target"/>
+              </xsl:call-template>
+            </xsl:attribute>
+
+            <xsl:call-template name="inline.italicseq">
+              <xsl:with-param name="content" select="$content"/>
+            </xsl:call-template>
+          </a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="inline.italicseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="termdef">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="gentext.template">
+      <xsl:with-param name="context" select="'termdef'"/>
+      <xsl:with-param name="name" select="'prefix'"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+    <xsl:call-template name="gentext.template">
+      <xsl:with-param name="context" select="'termdef'"/>
+      <xsl:with-param name="name" select="'suffix'"/>
+    </xsl:call-template>
+  </span>
+</xsl:template>
+
+<xsl:template match="sgmltag|tag">
+  <xsl:call-template name="format.sgmltag"/>
+</xsl:template>
+
+<xsl:template name="format.sgmltag">
+  <xsl:param name="class">
+    <xsl:choose>
+      <xsl:when test="@class">
+        <xsl:value-of select="@class"/>
+      </xsl:when>
+      <xsl:otherwise>element</xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="$class='attribute'">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test="$class='attvalue'">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test="$class='element'">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test="$class='endtag'">
+        <xsl:text>&lt;/</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='genentity'">
+        <xsl:text>&amp;</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='numcharref'">
+        <xsl:text>&amp;#</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='paramentity'">
+        <xsl:text>%</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='pi'">
+        <xsl:text>&lt;?</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='xmlpi'">
+        <xsl:text>&lt;?</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>?&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='starttag'">
+        <xsl:text>&lt;</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='emptytag'">
+        <xsl:text>&lt;</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>/&gt;</xsl:text>
+      </xsl:when>
+      <xsl:when test="$class='sgmlcomment' or $class='comment'">
+        <xsl:text>&lt;!--</xsl:text>
+        <xsl:apply-templates/>
+        <xsl:text>--&gt;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes">
+      <xsl:with-param name="class" select="concat('sgmltag-', $class)"/>
+    </xsl:apply-templates>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content" select="$content"/>
+    </xsl:call-template>
+  </code>
+</xsl:template>
+
+<xsl:template match="email">
+  <xsl:call-template name="inline.monoseq">
+    <xsl:with-param name="content">
+      <xsl:if test="not($email.delimiters.enabled = 0)">
+        <xsl:text>&lt;</xsl:text>
+      </xsl:if>
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:attribute name="href">
+          <xsl:text>mailto:</xsl:text>
+          <xsl:value-of select="."/>
+        </xsl:attribute>
+        <xsl:apply-templates/>
+      </a>
+      <xsl:if test="not($email.delimiters.enabled = 0)">
+        <xsl:text>&gt;</xsl:text>
+      </xsl:if>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="keycombo">
+  <xsl:variable name="action" select="@action"/>
+  <xsl:variable name="joinchar">
+    <xsl:choose>
+      <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when>
+      <xsl:when test="$action='simul'">+</xsl:when>
+      <xsl:when test="$action='press'">-</xsl:when>
+      <xsl:when test="$action='click'">-</xsl:when>
+      <xsl:when test="$action='double-click'">-</xsl:when>
+      <xsl:when test="$action='other'"/>
+      <xsl:otherwise>+</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:for-each select="*">
+    <xsl:if test="position()&gt;1"><xsl:value-of select="$joinchar"/></xsl:if>
+    <xsl:apply-templates select="."/>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="uri">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="menuchoice">
+  <xsl:variable name="shortcut" select="./shortcut"/>
+  <xsl:call-template name="process.menuchoice"/>
+  <xsl:if test="$shortcut">
+    <xsl:text> (</xsl:text>
+    <xsl:apply-templates select="$shortcut"/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.menuchoice">
+  <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count&gt;count($nodelist)"/>
+    <xsl:when test="$count=1">
+      <xsl:apply-templates select="$nodelist[$count=position()]"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="node" select="$nodelist[$count=position()]"/>
+      <xsl:choose>
+        <xsl:when test="local-name($node)='guimenuitem'                         or local-name($node)='guisubmenu'">
+          <xsl:value-of select="$menuchoice.menu.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$menuchoice.separator"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:apply-templates select="$node"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="optional">
+  <xsl:value-of select="$arg.choice.opt.open.str"/>
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:value-of select="$arg.choice.opt.close.str"/>
+</xsl:template>
+
+<xsl:template match="citation">
+  <!-- todo: integrate with bibliography collection -->
+  <xsl:variable name="targets" select="(//biblioentry | //bibliomixed)[abbrev = string(current())]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <!-- try automatic linking based on match to abbrev -->
+    <xsl:when test="$target and not(xref) and not(link)">
+
+      <xsl:text>[</xsl:text>
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:choose>
+          <xsl:when test="$bibliography.numbered != 0">
+            <xsl:call-template name="id.attribute"/>
+            <xsl:apply-templates select="$target" mode="citation"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="inline.charseq"/>
+          </xsl:otherwise>
+        </xsl:choose>
+
+      </a>
+      <xsl:text>]</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>[</xsl:text>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:text>]</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="citebiblioid">
+  <xsl:variable name="targets" select="//*[biblioid = string(current())]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <!-- try automatic linking based on match to parent of biblioid -->
+    <xsl:when test="$target and not(xref) and not(link)">
+
+      <xsl:text>[</xsl:text>
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:call-template name="inline.charseq"/>
+
+      </a>
+      <xsl:text>]</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>[</xsl:text>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:text>]</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="citation">
+  <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="comment[parent::answer|parent::appendix|parent::article|parent::bibliodiv|                                 parent::bibliography|parent::blockquote|parent::caution|parent::chapter|                                 parent::glossary|parent::glossdiv|parent::important|parent::index|                                 parent::indexdiv|parent::listitem|parent::note|parent::orderedlist|                                 parent::partintro|parent::preface|parent::procedure|parent::qandadiv|                                 parent::qandaset|parent::question|parent::refentry|parent::refnamediv|                                 parent::refsect1|parent::refsect2|parent::refsect3|parent::refsection|                                 parent::refsynopsisdiv|parent::sect1|parent::sect2|parent::sect3|parent::sect4|                                 parent::sect5|parent::section|parent::setindex|parent::sidebar|                                 parent::simplesect|parent::taskprerequisites|parent::taskrelated|                                 parent::tasksummary|parent::warning|parent::topic]|remark[parent::answer|parent::appendix|parent::article|parent::bibliodiv|                                 parent::bibliography|parent::blockquote|parent::caution|parent::chapter|                                 parent::glossary|parent::glossdiv|parent::important|parent::index|                                 parent::indexdiv|parent::listitem|parent::note|parent::orderedlist|                                 parent::partintro|parent::preface|parent::procedure|parent::qandadiv|                                 parent::qandaset|parent::question|parent::refentry|parent::refnamediv|                                 parent::refsect1|parent::refsect2|parent::refsect3|parent::refsection|                                 parent::refsynopsisdiv|parent::sect1|parent::sect2|parent::sect3|parent::sect4|                                 parent::sect5|parent::section|parent::setindex|parent::sidebar|                                 parent::simplesect|parent::taskprerequisites|parent::taskrelated|                                 parent::tasksummary|parent::warning|parent::topic]">
+  <xsl:if test="$show.comments != 0">
+    <p class="remark"><em><xsl:call-template name="inline.charseq"/></em></p>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="comment|remark">
+  <xsl:if test="$show.comments != 0">
+    <em><xsl:call-template name="inline.charseq"/></em>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productname">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:if test="@class">
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat" select="@class"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="productnumber">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="pob|street|city|state|postcode|country|otheraddr">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phone|fax">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- in Addresses, for example -->
+<xsl:template match="honorific|firstname|surname|lineage|othername">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="person">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates select="personname"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="personname">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="org">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgdiv">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="affiliation">
+  <xsl:param name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:call-template name="person.name"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apply-annotations"/>
+  </xsl:param>
+
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$content"/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="beginpage">
+  <!-- does nothing; this *is not* markup to force a page break. -->
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/keywords.xsl b/applications/content/template/docbook/xhtml/keywords.xsl
new file mode 100644
index 0000000..f8cf64c
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/keywords.xsl
@@ -0,0 +1,36 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="keywordset"/>
+<xsl:template match="subjectset"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="keywordset" mode="html.header">
+  <meta name="keywords">
+    <xsl:attribute name="content">
+      <xsl:apply-templates select="keyword" mode="html.header"/>
+    </xsl:attribute>
+  </meta>
+</xsl:template>
+
+<xsl:template match="keyword" mode="html.header">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::keyword">, </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/lists.xsl b/applications/content/template/docbook/xhtml/lists.xsl
new file mode 100644
index 0000000..45e6fc6
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/lists.xsl
@@ -0,0 +1,1225 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="itemizedlist">
+  <!-- Handle spacing="compact" as multiple class attribute instead
+       of the deprecated HTML compact attribute -->
+  <xsl:variable name="default.class">
+    <xsl:value-of select="local-name()"/>
+    <xsl:if test="@spacing = 'compact'">
+      <xsl:text> compact</xsl:text>
+    </xsl:if>
+  </xsl:variable>
+  
+  <xsl:variable name="style.value">
+    <xsl:variable name="type">
+      <xsl:call-template name="list.itemsymbol"/>
+    </xsl:variable>
+
+    <xsl:text>list-style-type: </xsl:text>
+    <xsl:value-of select="$type"/>
+    <xsl:text>; </xsl:text>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="title|info/title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <!-- Preserve order of PIs and comments -->
+    <xsl:apply-templates select="*[not(self::listitem                   or self::title                   or self::titleabbrev)]                 |comment()[not(preceding-sibling::listitem)]                 |processing-instruction()[not(preceding-sibling::listitem)]"/>
+
+    <ul>
+      <xsl:call-template name="generate.class.attribute">
+        <xsl:with-param name="class" select="$default.class"/>
+      </xsl:call-template>
+      <xsl:choose>
+        <xsl:when test="$css.decoration != 0">
+          <xsl:attribute name="style">
+            <xsl:value-of select="$style.value"/>
+          </xsl:attribute>
+        </xsl:when>
+        <xsl:when test="$make.clean.html != 0">
+          <!-- styled by separate css only -->
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- use the old @type attribute -->
+          <xsl:attribute name="type">
+            <xsl:call-template name="list.itemsymbol"/>
+          </xsl:attribute>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:apply-templates select="listitem                     |comment()[preceding-sibling::listitem]                     |processing-instruction()[preceding-sibling::listitem]"/>
+    </ul>
+  </div>
+</xsl:template>
+
+<xsl:template match="itemizedlist/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="itemizedlist/listitem">
+  <xsl:variable name="mark" select="../@mark"/>
+  <xsl:variable name="override" select="@override"/>
+
+  <xsl:variable name="usemark">
+    <xsl:choose>
+      <xsl:when test="$override != ''">
+        <xsl:value-of select="$override"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$mark"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="cssmark">
+    <xsl:choose>
+      <xsl:when test="$usemark = 'opencircle'">circle</xsl:when>
+      <xsl:when test="$usemark = 'bullet'">disc</xsl:when>
+      <xsl:when test="$usemark = 'box'">square</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$usemark"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <li>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="$css.decoration = '1' and $cssmark != ''">
+      <xsl:attribute name="style">
+        <xsl:text>list-style-type: </xsl:text>
+        <xsl:value-of select="$cssmark"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <!-- we can't just drop the anchor in since some browsers (Opera)
+         get confused about line breaks if we do. So if the first child
+         is a para, assume the para will put in the anchor. Otherwise,
+         put the anchor in anyway. -->
+    <xsl:if test="local-name(child::*[1]) != 'para'">
+      <xsl:call-template name="anchor"/>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+        <div class="{@revisionflag}">
+          <xsl:apply-templates/>
+        </div>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </li>
+</xsl:template>
+
+<xsl:template match="orderedlist">
+  <!-- Handle spacing="compact" as multiple class attribute instead
+       of the deprecated HTML compact attribute -->
+  <xsl:variable name="default.class">
+    <xsl:value-of select="local-name()"/>
+    <xsl:if test="@spacing = 'compact'">
+      <xsl:text> compact</xsl:text>
+    </xsl:if>
+  </xsl:variable>
+  
+  <xsl:variable name="start">
+    <xsl:call-template name="orderedlist-starting-number"/>
+  </xsl:variable>
+
+  <xsl:variable name="numeration">
+    <xsl:call-template name="list.numeration"/>
+  </xsl:variable>
+
+  <xsl:variable name="type">
+    <xsl:choose>
+      <xsl:when test="$numeration='arabic'">1</xsl:when>
+      <xsl:when test="$numeration='loweralpha'">a</xsl:when>
+      <xsl:when test="$numeration='lowerroman'">i</xsl:when>
+      <xsl:when test="$numeration='upperalpha'">A</xsl:when>
+      <xsl:when test="$numeration='upperroman'">I</xsl:when>
+      <!-- What!? This should never happen -->
+      <xsl:otherwise>
+        <xsl:message>
+          <xsl:text>Unexpected numeration: </xsl:text>
+          <xsl:value-of select="$numeration"/>
+        </xsl:message>
+        <xsl:value-of select="1"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:if test="title|info/title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <!-- Preserve order of PIs and comments -->
+    <xsl:apply-templates select="*[not(self::listitem                   or self::title                   or self::titleabbrev)]                 |comment()[not(preceding-sibling::listitem)]                 |processing-instruction()[not(preceding-sibling::listitem)]"/>
+
+    <xsl:choose>
+      <xsl:when test="@inheritnum='inherit' and ancestor::listitem[parent::orderedlist]">
+        <table border="{$table.border.off}">
+          <xsl:call-template name="generate.class.attribute">
+            <xsl:with-param name="class" select="$default.class"/>
+          </xsl:call-template>
+          <colgroup>
+            <col align="{$direction.align.start}" valign="top"/>
+            <col/>
+          </colgroup>
+          <tbody>
+            <xsl:apply-templates mode="orderedlist-table" select="listitem                         |comment()[preceding-sibling::listitem]                         |processing-instruction()[preceding-sibling::listitem]"/>
+          </tbody>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <ol>
+          <xsl:call-template name="generate.class.attribute">
+            <xsl:with-param name="class" select="$default.class"/>
+          </xsl:call-template>
+          <xsl:if test="$start != '1'">
+            <xsl:attribute name="start">
+              <xsl:value-of select="$start"/>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:if test="$numeration != ''">
+            <xsl:attribute name="type">
+              <xsl:value-of select="$type"/>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:apply-templates select="listitem                         |comment()[preceding-sibling::listitem]                         |processing-instruction()[preceding-sibling::listitem]"/>
+        </ol>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="orderedlist/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem">
+  <li>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="@override">
+      <xsl:attribute name="value">
+        <xsl:value-of select="@override"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <!-- we can't just drop the anchor in since some browsers (Opera)
+         get confused about line breaks if we do. So if the first child
+         is a para, assume the para will put in the anchor. Otherwise,
+         put the anchor in anyway. -->
+    <xsl:if test="local-name(child::*[1]) != 'para'">
+      <xsl:call-template name="anchor"/>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+        <div class="{@revisionflag}">
+          <xsl:apply-templates/>
+        </div>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </li>
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem" mode="orderedlist-table">
+  <tr>
+    <td>
+      <xsl:apply-templates select="." mode="item-number"/>
+    </td>
+    <td>
+      <xsl:if test="local-name(child::*[1]) != 'para'">
+        <xsl:call-template name="id.attribute"/>
+        <xsl:call-template name="anchor"/>
+      </xsl:if>
+
+      <xsl:choose>
+        <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+          <div class="{@revisionflag}">
+            <xsl:apply-templates/>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="variablelist">
+  <xsl:variable name="pi-presentation">
+    <xsl:call-template name="pi.dbhtml_list-presentation"/>
+  </xsl:variable>
+  <!-- Handle spacing="compact" as multiple class attribute instead
+       of the deprecated HTML compact attribute -->
+  <xsl:variable name="default.class">
+    <xsl:value-of select="local-name()"/>
+    <xsl:if test="@spacing = 'compact'">
+      <xsl:text> compact</xsl:text>
+    </xsl:if>
+  </xsl:variable>
+  
+
+  <xsl:variable name="presentation">
+    <xsl:choose>
+      <xsl:when test="$pi-presentation != ''">
+        <xsl:value-of select="$pi-presentation"/>
+      </xsl:when>
+      <xsl:when test="$variablelist.as.table != 0">
+        <xsl:value-of select="'table'"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="'list'"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="list-width">
+    <xsl:call-template name="pi.dbhtml_list-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="term-width">
+    <xsl:call-template name="pi.dbhtml_term-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="table-summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="title|info/title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$presentation = 'table'">
+        <!-- Preserve order of PIs and comments -->
+        <xsl:apply-templates select="*[not(self::varlistentry                     or self::title                     or self::titleabbrev)]                   |comment()[not(preceding-sibling::varlistentry)]                   |processing-instruction()[not(preceding-sibling::varlistentry)]"/>
+        <table border="{$table.border.off}">
+          <xsl:call-template name="generate.class.attribute">
+            <xsl:with-param name="class" select="$default.class"/>
+          </xsl:call-template>
+          <xsl:if test="$list-width != ''">
+            <xsl:attribute name="width">
+              <xsl:value-of select="$list-width"/>
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:if test="$table-summary != ''">
+            <xsl:attribute name="summary">
+              <xsl:value-of select="$table-summary"/>
+            </xsl:attribute>
+          </xsl:if>
+          <colgroup>
+            <col align="{$direction.align.start}" valign="top">
+              <xsl:if test="$term-width != ''">
+                <xsl:attribute name="width">
+                  <xsl:value-of select="$term-width"/>
+                </xsl:attribute>
+              </xsl:if>
+            </col>
+            <col/>
+          </colgroup>
+          <tbody>
+            <xsl:apply-templates mode="varlist-table" select="varlistentry                       |comment()[preceding-sibling::varlistentry]                       |processing-instruction()[preceding-sibling::varlistentry]"/>
+          </tbody>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- Preserve order of PIs and comments -->
+        <xsl:apply-templates select="*[not(self::varlistentry                     or self::title                     or self::titleabbrev)]                   |comment()[not(preceding-sibling::varlistentry)]                   |processing-instruction()[not(preceding-sibling::varlistentry)]"/>
+        <dl>
+          <xsl:call-template name="generate.class.attribute">
+            <xsl:with-param name="class" select="$default.class"/>
+          </xsl:call-template>
+          <xsl:apply-templates select="varlistentry                       |comment()[preceding-sibling::varlistentry]                       |processing-instruction()[preceding-sibling::varlistentry]"/>
+        </dl>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="variablelist/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="itemizedlist/titleabbrev|orderedlist/titleabbrev">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="variablelist/titleabbrev">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="listitem" mode="xref">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="listitem/simpara" priority="2">
+  <!-- If a listitem contains only a single simpara, don't output
+       the <p> wrapper; this has the effect of creating an li
+       with simple text content. -->
+  <xsl:choose>
+    <xsl:when test="not(preceding-sibling::*)                     and not (following-sibling::*)">
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:choose>
+          <xsl:when test="@role and $para.propagates.style != 0">
+            <xsl:call-template name="common.html.attributes">
+              <xsl:with-param name="class" select="@role"/>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="common.html.attributes"/>
+          </xsl:otherwise>
+        </xsl:choose>
+
+        <xsl:call-template name="anchor"/>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varlistentry">
+  <dt>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates select="term"/>
+  </dt>
+  <dd>
+    <xsl:apply-templates select="listitem"/>
+  </dd>
+</xsl:template>
+
+<xsl:template match="varlistentry" mode="varlist-table">
+  <xsl:variable name="presentation">
+    <xsl:call-template name="pi.dbhtml_term-presentation">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="separator">
+    <xsl:call-template name="pi.dbhtml_term-separator">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <tr>
+    <xsl:call-template name="tr.attributes">
+      <xsl:with-param name="rownum">
+        <xsl:number from="variablelist" count="varlistentry"/>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <td>
+      <xsl:call-template name="id.attribute"/>
+      <p>
+      <xsl:call-template name="anchor"/>
+      <xsl:choose>
+        <xsl:when test="$presentation = 'bold'">
+          <strong>
+            <xsl:apply-templates select="term"/>
+            <xsl:value-of select="$separator"/>
+          </strong>
+        </xsl:when>
+        <xsl:when test="$presentation = 'italic'">
+          <em>
+            <xsl:apply-templates select="term"/>
+            <xsl:value-of select="$separator"/>
+          </em>
+        </xsl:when>
+        <xsl:when test="$presentation = 'bold-italic'">
+          <strong>
+            <em>
+              <xsl:apply-templates select="term"/>
+              <xsl:value-of select="$separator"/>
+            </em>
+          </strong>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="term"/>
+          <xsl:value-of select="$separator"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      </p>
+    </td>
+    <td>
+      <xsl:apply-templates select="listitem"/>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="varlistentry/term">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:call-template name="simple.xlink">
+      <xsl:with-param name="content">
+        <xsl:apply-templates/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:choose>
+      <xsl:when test="position() = last()"/> <!-- do nothing -->
+      <xsl:otherwise>
+        <!-- * if we have multiple terms in the same varlistentry, generate -->
+        <!-- * a separator (", " by default) and/or an additional line -->
+        <!-- * break after each one except the last -->
+        <xsl:value-of select="$variablelist.term.separator"/>
+        <xsl:if test="not($variablelist.term.break.after = '0')">
+          <br/>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+  </span>
+</xsl:template>
+
+<xsl:template match="varlistentry/listitem">
+  <!-- we can't just drop the anchor in since some browsers (Opera)
+       get confused about line breaks if we do. So if the first child
+       is a para, assume the para will put in the anchor. Otherwise,
+       put the anchor in anyway. -->
+  <xsl:if test="local-name(child::*[1]) != 'para'">
+    <xsl:call-template name="anchor"/>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+      <div class="{@revisionflag}">
+        <xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="simplelist">
+  <!-- with no type specified, the default is 'vert' -->
+  <xsl:call-template name="anchor"/>
+  <table border="{$table.border.off}">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Simple list</xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='inline']">
+  <span>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <!-- if dbchoice PI exists, use that to determine the choice separator -->
+    <!-- (that is, equivalent of "and" or "or" in current locale), or literal -->
+    <!-- value of "choice" otherwise -->
+    <xsl:variable name="localized-choice-separator">
+      <xsl:choose>
+        <xsl:when test="processing-instruction('dbchoice')">
+          <xsl:call-template name="select.choice.separator"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <!-- empty -->
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+  
+    <xsl:for-each select="member">
+      <xsl:call-template name="simple.xlink">
+        <xsl:with-param name="content">
+          <xsl:apply-templates/>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:choose>
+        <xsl:when test="position() = last()"/> <!-- do nothing -->
+        <xsl:otherwise>
+          <xsl:text>, </xsl:text>
+          <xsl:if test="position() = last() - 1">
+            <xsl:if test="$localized-choice-separator != ''">
+              <xsl:value-of select="$localized-choice-separator"/>
+              <xsl:text> </xsl:text>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+  </span>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='horiz']">
+  <xsl:call-template name="anchor"/>
+  <table border="{$table.border.off}">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Simple list</xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="simplelist.horiz">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='vert']">
+  <xsl:call-template name="anchor"/>
+  <table border="{$table.border.off}">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Simple list</xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+
+  <xsl:if test="$cell &lt;= count($members)">
+    <tr>
+      <xsl:call-template name="tr.attributes">
+        <xsl:with-param name="row" select="$members[1]"/>
+        <xsl:with-param name="rownum" select="(($cell - 1) div $cols) + 1"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="simplelist.horiz.row">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="cell" select="$cell"/>
+        <xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+   </tr>
+    <xsl:call-template name="simplelist.horiz">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell + $cols"/>
+      <xsl:with-param name="members" select="$members"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <td>
+      <xsl:choose>
+        <xsl:when test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>&#160;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <xsl:call-template name="simplelist.horiz.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="rows" select="floor((count($members)+$cols - 1) div $cols)"/>
+
+  <xsl:if test="$cell &lt;= $rows">
+    <tr>
+      <xsl:call-template name="tr.attributes">
+        <xsl:with-param name="row" select="$members[1]"/>
+        <xsl:with-param name="rownum" select="$cell"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="simplelist.vert.row">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="rows" select="$rows"/>
+        <xsl:with-param name="cell" select="$cell"/>
+        <xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+    </tr>
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="rows" select="$rows"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="rows">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <td>
+      <xsl:choose>
+        <xsl:when test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>&#160;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <xsl:call-template name="simplelist.vert.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="rows" select="$rows"/>
+      <xsl:with-param name="cell" select="$cell+$rows"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="member">
+  <xsl:call-template name="anchor"/>
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="content">
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="procedure">
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Preserve order of PIs and comments -->
+  <xsl:variable name="preamble" select="*[not(self::step                   or self::title                   or self::titleabbrev)]                 |comment()[not(preceding-sibling::step)]                 |processing-instruction()[not(preceding-sibling::step)]"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional">
+        <xsl:choose>
+          <xsl:when test="title">0</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional">
+        <xsl:choose>
+          <xsl:when test="title">0</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:if test="(title or info/title) and $placement = 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="$preamble"/>
+
+    <xsl:choose>
+      <xsl:when test="count(step) = 1">
+        <ul>
+          <xsl:call-template name="generate.class.attribute"/>
+          <xsl:apply-templates select="step                     |comment()[preceding-sibling::step]                     |processing-instruction()[preceding-sibling::step]"/>
+        </ul>
+      </xsl:when>
+      <xsl:otherwise>
+        <ol>
+          <xsl:call-template name="generate.class.attribute"/>
+          <xsl:attribute name="type">
+            <xsl:value-of select="substring($procedure.step.numeration.formats,1,1)"/>
+          </xsl:attribute>
+          <xsl:apply-templates select="step                     |comment()[preceding-sibling::step]                     |processing-instruction()[preceding-sibling::step]"/>
+        </ol>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="(title or info/title) and $placement != 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="procedure/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="substeps">
+  <xsl:variable name="numeration">
+    <xsl:call-template name="procedure.step.numeration"/>
+  </xsl:variable>
+
+  <xsl:call-template name="anchor"/>
+
+  <ol type="{$numeration}">
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </ol>
+</xsl:template>
+
+<xsl:template match="step">
+  <li>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </li>
+</xsl:template>
+
+<xsl:template match="stepalternatives">
+  <xsl:call-template name="anchor"/>
+  <ul>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </ul>
+</xsl:template>
+
+<xsl:template match="step/title">
+  <p>
+    <xsl:call-template name="common.html.attributes"/>
+    <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+      <xsl:apply-templates/>
+    </strong>
+  </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="segmentedlist">
+  <xsl:variable name="presentation">
+    <xsl:call-template name="pi.dbhtml_list-presentation"/>
+  </xsl:variable>
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:choose>
+      <xsl:when test="$presentation = 'table'">
+        <xsl:apply-templates select="." mode="seglist-table"/>
+      </xsl:when>
+      <xsl:when test="$presentation = 'list'">
+        <xsl:apply-templates/>
+      </xsl:when>
+      <xsl:when test="$segmentedlist.as.table != 0">
+        <xsl:apply-templates select="." mode="seglist-table"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="segmentedlist/title">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <strong>
+      <span>
+        <xsl:call-template name="generate.class.attribute"/>
+        <xsl:apply-templates/>
+      </span>
+    </strong>
+  </div>
+</xsl:template>
+
+<xsl:template match="segtitle">
+</xsl:template>
+
+<xsl:template match="segtitle" mode="segtitle-in-seg">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seglistitem">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="seg">
+  <xsl:variable name="segnum" select="count(preceding-sibling::seg)+1"/>
+  <xsl:variable name="seglist" select="ancestor::segmentedlist"/>
+  <xsl:variable name="segtitles" select="$seglist/segtitle"/>
+
+  <!--
+     Note: segtitle is only going to be the right thing in a well formed
+     SegmentedList.  If there are too many Segs or too few SegTitles,
+     you'll get something odd...maybe an error
+  -->
+
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <strong>
+      <span class="segtitle">
+        <xsl:apply-templates select="$segtitles[$segnum=position()]" mode="segtitle-in-seg"/>
+        <xsl:text>: </xsl:text>
+      </span>
+    </strong>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="segmentedlist" mode="seglist-table">
+  <xsl:variable name="table-summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <xsl:variable name="list-width">
+    <xsl:call-template name="pi.dbhtml_list-width"/>
+  </xsl:variable>
+
+  <xsl:apply-templates select="title"/>
+
+  <table border="{$table.border.off}">
+    <xsl:if test="$list-width != ''">
+      <xsl:attribute name="width">
+        <xsl:value-of select="$list-width"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$table-summary != '' and $div.element != 'section'">
+      <xsl:attribute name="summary">
+        <xsl:value-of select="$table-summary"/>
+      </xsl:attribute>
+    </xsl:if>
+    <thead>
+      <tr class="segtitle">
+        <xsl:call-template name="tr.attributes">
+          <xsl:with-param name="row" select="segtitle[1]"/>
+          <xsl:with-param name="rownum" select="1"/>
+        </xsl:call-template>
+        <xsl:apply-templates select="segtitle" mode="seglist-table"/>
+      </tr>
+    </thead>
+    <tbody>
+      <xsl:apply-templates select="seglistitem" mode="seglist-table"/>
+    </tbody>
+  </table>
+</xsl:template>
+
+<xsl:template match="segtitle" mode="seglist-table">
+  <th><xsl:apply-templates/></th>
+</xsl:template>
+
+<xsl:template match="seglistitem" mode="seglist-table">
+  <xsl:variable name="seglinum">
+    <xsl:number from="segmentedlist" count="seglistitem"/>
+  </xsl:variable>
+
+  <tr>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="tr.attributes">
+      <xsl:with-param name="rownum" select="$seglinum + 1"/>
+    </xsl:call-template>
+    <xsl:apply-templates mode="seglist-table"/>
+  </tr>
+</xsl:template>
+
+<xsl:template match="seg" mode="seglist-table">
+  <td>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </td>
+</xsl:template>
+
+<xsl:template match="seg[1]" mode="seglist-table">
+  <td>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select="ancestor::seglistitem"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </td>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="calloutlist">
+  <div>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="title|info/title">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <!-- Preserve order of PIs and comments -->
+    <xsl:apply-templates select="*[not(self::callout or self::title or self::titleabbrev)]                    |comment()[not(preceding-sibling::callout)]                    |processing-instruction()[not(preceding-sibling::callout)]"/>
+
+    <xsl:choose>
+      <xsl:when test="$callout.list.table != 0">
+        <table border="{$table.border.off}">
+          <xsl:if test="$div.element != 'section'">
+            <xsl:attribute name="summary">Callout list</xsl:attribute>
+          </xsl:if>
+          <xsl:apply-templates select="callout                                 |comment()[preceding-sibling::callout]                                 |processing-instruction()[preceding-sibling::callout]"/>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <dl>
+          <xsl:apply-templates select="." mode="class.attribute"/>
+          <xsl:apply-templates select="callout                                 |comment()[preceding-sibling::callout]                                 |processing-instruction()[preceding-sibling::callout]"/>
+        </dl>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="calloutlist/title">
+</xsl:template>
+
+<xsl:template match="callout">
+  <xsl:choose>
+    <xsl:when test="$callout.list.table != 0">
+      <tr>
+        <xsl:call-template name="tr.attributes">
+          <xsl:with-param name="rownum">
+            <xsl:number from="calloutlist" count="callout"/>
+          </xsl:with-param>
+        </xsl:call-template>
+
+        <td width="5%" valign="top" align="{$direction.align.start}">
+          <xsl:call-template name="id.attribute"/>
+          <p>
+            <xsl:call-template name="anchor"/>
+            <xsl:call-template name="callout.arearefs">
+              <xsl:with-param name="arearefs" select="@arearefs"/>
+            </xsl:call-template>
+          </p>
+        </td>
+        <td valign="top" align="{$direction.align.start}">
+          <xsl:apply-templates/>
+        </td>
+      </tr>
+    </xsl:when>
+    <xsl:otherwise>
+      <dt>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:call-template name="anchor"/>
+        <xsl:call-template name="callout.arearefs">
+          <xsl:with-param name="arearefs" select="@arearefs"/>
+        </xsl:call-template>
+      </dt>
+      <dd><xsl:apply-templates/></dd>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="callout/simpara" priority="2">
+  <!-- If a callout contains only a single simpara, don't output
+       the <p> wrapper; this has the effect of creating an li
+       with simple text content. -->
+  <xsl:choose>
+    <xsl:when test="not(preceding-sibling::*)                     and not (following-sibling::*)">
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <p>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="@role and $para.propagates.style != 0">
+          <xsl:choose>
+            <xsl:when test="@role and $para.propagates.style != 0">
+              <xsl:call-template name="common.html.attributes">
+                <xsl:with-param name="class" select="@role"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="common.html.attributes"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:if>
+
+        <xsl:call-template name="anchor"/>
+        <xsl:apply-templates/>
+      </p>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="callout.arearefs">
+  <xsl:param name="arearefs"/>
+  <xsl:if test="$arearefs!=''">
+    <xsl:choose>
+      <xsl:when test="substring-before($arearefs,' ')=''">
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef" select="$arearefs"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef" select="substring-before($arearefs,' ')"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="callout.arearefs">
+      <xsl:with-param name="arearefs" select="substring-after($arearefs,' ')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="callout.arearef">
+  <xsl:param name="arearef"/>
+  <xsl:variable name="targets" select="key('id',$arearef)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="$arearef"/>
+  </xsl:call-template>
+
+  <xsl:choose>
+    <xsl:when test="count($target)=0">
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($target)='co'">
+      <a>
+        <xsl:attribute name="href">
+          <xsl:text>#</xsl:text>
+          <xsl:value-of select="$arearef"/>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target" mode="callout-bug"/>
+      </a>
+      <xsl:text> </xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($target)='areaset'">
+      <xsl:call-template name="callout-bug">
+        <xsl:with-param name="conum">
+          <xsl:apply-templates select="$target" mode="conumber"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($target)='area'">
+      <xsl:choose>
+        <xsl:when test="$target/parent::areaset">
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target/parent::areaset" mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target" mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>???</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="orderedlist-starting-number">
+  <xsl:param name="list" select="."/>
+  <xsl:variable name="pi-start">
+    <xsl:call-template name="pi.dbhtml_start">
+      <xsl:with-param name="node" select="$list"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:call-template name="output-orderedlist-starting-number">
+    <xsl:with-param name="list" select="$list"/>
+    <xsl:with-param name="pi-start" select="$pi-start"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/maketoc.xsl b/applications/content/template/docbook/xhtml/maketoc.xsl
new file mode 100644
index 0000000..ef1f27c
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/maketoc.xsl
@@ -0,0 +1,91 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="docbook.xsl"/>
+<xsl:import href="chunk.xsl"/>
+
+<xsl:output method="xml" indent="no" 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="toc.list.type" select="'tocentry'"/>
+
+<!-- refentry in autotoc.xsl does not use subtoc, so must
+     handle it explicitly here. -->
+<xsl:template match="refentry" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <xsl:call-template name="subtoc">
+    <xsl:with-param name="toc-context" select="$toc-context"/>
+  </xsl:call-template>
+</xsl:template>
+
+
+<xsl:template name="subtoc">
+  <xsl:param name="nodes" select="NOT-AN-ELEMENT"/>
+  <xsl:variable name="filename">
+    <xsl:apply-templates select="." mode="chunk-filename"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:if test="$chunk != 0">
+    <xsl:call-template name="indent-spaces"/>
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:variable>
+    <tocentry linkend="{$id}">
+      <xsl:processing-instruction name="dbhtml">
+        <xsl:text>filename="</xsl:text>
+        <xsl:value-of select="$filename"/>
+        <xsl:text>"</xsl:text>
+      </xsl:processing-instruction>
+      <xsl:text>
+</xsl:text>
+      <xsl:apply-templates mode="toc" select="$nodes"/>
+      <xsl:call-template name="indent-spaces"/>
+    </tocentry>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="indent-spaces">
+  <xsl:param name="node" select="."/>
+  <xsl:text>  </xsl:text>
+  <xsl:if test="$node/parent::*">
+    <xsl:call-template name="indent-spaces">
+      <xsl:with-param name="node" select="$node/parent::*"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/" priority="-1">
+  <xsl:text>
+</xsl:text>
+  <toc role="chunk-toc">
+    <xsl:text>
+</xsl:text>
+    <xsl:apply-templates select="/" mode="toc"/>
+  </toc>
+  <xsl:text>
+</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/manifest.xsl b/applications/content/template/docbook/xhtml/manifest.xsl
new file mode 100644
index 0000000..40023b3
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/manifest.xsl
@@ -0,0 +1,22 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- OBSOLETE. The templates from this file were moved to                 -->
+<!-- chunk-common.xsl and chunk-code.xsl.                                 -->
+<!-- ==================================================================== -->
+
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/math.xsl b/applications/content/template/docbook/xhtml/math.xsl
new file mode 100644
index 0000000..4af9fcd
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/math.xsl
@@ -0,0 +1,285 @@
+<?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:mml="http://www.w3.org/1998/Math/MathML" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="mml" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="inlineequation">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="alt">
+</xsl:template>
+
+<xsl:template match="mathphrase">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- "Support" for MathML -->
+
+<xsl:template match="mml:*">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+<!-- Support for TeX math in alt -->
+
+<xsl:template match="*" mode="collect.tex.math">
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename" select="$tex.math.file"/>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+      <xsl:choose>
+        <xsl:when test="$tex.math.in.alt = 'plain'">
+          <xsl:call-template name="tex.math.plain.head"/>
+          <xsl:apply-templates select="." mode="collect.tex.math.plain"/>
+          <xsl:call-template name="tex.math.plain.tail"/>
+        </xsl:when>
+        <xsl:when test="$tex.math.in.alt = 'latex'">
+          <xsl:call-template name="tex.math.latex.head"/>
+          <xsl:apply-templates select="." mode="collect.tex.math.latex"/>
+          <xsl:call-template name="tex.math.latex.tail"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            Unsupported TeX math notation: 
+            <xsl:value-of select="$tex.math.in.alt"/>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$chunker.output.encoding"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- PlainTeX -->
+
+<xsl:template name="tex.math.plain.head">
+  <xsl:text>\nopagenumbers 
+</xsl:text>
+</xsl:template>
+
+<xsl:template name="tex.math.plain.tail">
+  <xsl:text>\bye 
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="inlineequation" mode="collect.tex.math.plain">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="graphic">
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="graphic"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.filename">
+          <xsl:with-param name="olist" select="inlinemediaobject/*"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="output.delims">
+    <xsl:call-template name="tex.math.output.delims"/>
+  </xsl:variable>
+  <xsl:variable name="tex" select="alt[@role='tex'] | inlinemediaobject/textobject[@role='tex']"/>
+  <xsl:if test="$tex">
+    <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:text>} 
+</xsl:text>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$</xsl:text>
+    </xsl:if>
+    <xsl:value-of select="$tex"/>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$ 
+</xsl:text>
+    </xsl:if>
+    <xsl:text>\vfill\eject 
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="equation|informalequation" mode="collect.tex.math.plain">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="graphic">
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="graphic"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.filename">
+          <xsl:with-param name="olist" select="mediaobject/*"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="output.delims">
+    <xsl:call-template name="tex.math.output.delims"/>
+  </xsl:variable>
+  <xsl:variable name="tex" select="alt[@role='tex'] | mediaobject/textobject[@role='tex']"/>
+  <xsl:if test="$tex">
+    <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:text>} 
+</xsl:text>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$$</xsl:text>
+    </xsl:if>
+    <xsl:value-of select="$tex"/>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$$ 
+</xsl:text>
+    </xsl:if>
+    <xsl:text>\vfill\eject 
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="collect.tex.math.plain"/>
+
+<!-- LaTeX -->
+
+<xsl:template name="tex.math.latex.head">
+  <xsl:text>\documentclass{article} 
+</xsl:text>
+  <xsl:text>\pagestyle{empty} 
+</xsl:text>
+  <xsl:text>\begin{document} 
+</xsl:text>
+</xsl:template>
+
+<xsl:template name="tex.math.latex.tail">
+  <xsl:text>\end{document} 
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="inlineequation" mode="collect.tex.math.latex">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="graphic">
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="graphic"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.filename">
+          <xsl:with-param name="olist" select="inlinemediaobject/*"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="output.delims">
+    <xsl:call-template name="tex.math.output.delims"/>
+  </xsl:variable>
+  <xsl:variable name="tex" select="alt[@role='tex'] | inlinemediaobject/textobject[@role='tex']"/>
+  <xsl:if test="$tex">
+    <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:text>} 
+</xsl:text>
+    <xsl:if test="$output.delims != 0">  
+      <xsl:text>$</xsl:text>
+    </xsl:if>
+    <xsl:value-of select="$tex"/>
+    <xsl:if test="$output.delims != 0">  
+      <xsl:text>$ 
+</xsl:text>
+    </xsl:if>
+    <xsl:text>\newpage 
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="equation|informalequation" mode="collect.tex.math.latex">
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="graphic">
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select="graphic"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject.filename">
+          <xsl:with-param name="olist" select="mediaobject/*"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="output.delims">
+    <xsl:call-template name="tex.math.output.delims"/>
+  </xsl:variable>
+  <xsl:variable name="tex" select="alt[@role='tex'] | mediaobject/textobject[@role='tex']"/>
+  <xsl:if test="$tex">
+    <xsl:text>\special{dvi2bitmap outputfile </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:text>} 
+</xsl:text>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$$</xsl:text>
+    </xsl:if>
+    <xsl:value-of select="$tex"/>
+    <xsl:if test="$output.delims != 0">
+      <xsl:text>$$ 
+</xsl:text>
+    </xsl:if>
+    <xsl:text>\newpage 
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="collect.tex.math.latex"/>
+
+<!-- Extracting image filename from mediaobject and graphic elements -->
+
+<xsl:template name="select.mediaobject.filename">
+  <xsl:param name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject|textobject"/>
+
+  <xsl:variable name="mediaobject.index">
+    <xsl:call-template name="select.mediaobject.index">
+      <xsl:with-param name="olist" select="$olist"/>
+      <xsl:with-param name="count" select="1"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$mediaobject.index != ''">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select="$olist[position() = $mediaobject.index]"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="tex.math.output.delims">
+  <xsl:variable name="pi.delims">
+    <xsl:call-template name="pi.dbtex_delims">
+      <xsl:with-param name="node" select="descendant-or-self::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="result">
+    <xsl:choose>
+      <xsl:when test="$pi.delims = 'no'">0</xsl:when>
+      <xsl:when test="$pi.delims = '' and $tex.math.delims = 0">0</xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:value-of select="$result"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/oldchunker.xsl b/applications/content/template/docbook/xhtml/oldchunker.xsl
new file mode 100644
index 0000000..5f7c42a
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/oldchunker.xsl
@@ -0,0 +1,176 @@
+<?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:saxon="http://icl.com/saxon" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:redirect="http://xml.apache.org/xalan/redirect" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.1" exclude-result-prefixes="doc" extension-element-prefixes="saxon redirect lxslt">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- This stylesheet works with Saxon and Xalan; for XT use xtchunker.xsl -->
+
+<!-- ==================================================================== -->
+
+<xsl:param name="default.encoding" select="'ISO-8859-1'" doc:type="string"/>
+
+<doc:param xmlns="" name="default.encoding">
+<refpurpose xmlns="http://www.w3.org/1999/xhtml">Encoding used in generated HTML pages</refpurpose>
+<refdescription xmlns="http://www.w3.org/1999/xhtml">
+<para>This encoding is used in files generated by chunking stylesheet. Currently
+only Saxon is able to change output encoding.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="saxon.character.representation" select="'entity;decimal'" doc:type="string"/>
+
+<doc:param xmlns="" name="saxon.character.representation">
+<refpurpose xmlns="http://www.w3.org/1999/xhtml">Saxon character representation used in generated HTML pages</refpurpose>
+<refdescription xmlns="http://www.w3.org/1999/xhtml">
+<para>This character representation is used in files generated by chunking stylesheet. If
+you want to suppress entity references for characters with direct representation 
+in default.encoding, set this parameter to value <literal>native</literal>. 
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+  <xsl:param name="base.dir" select="'./'"/>
+  <xsl:param name="base.name" select="''"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>Chunking isn't supported with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="$default.encoding"/>
+  <xsl:param name="indent" select="'no'"/>
+  <xsl:param name="content" select="''"/>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:if test="name(.) != ''">
+      <xsl:text> for </xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:if test="@id">
+        <xsl:text>(</xsl:text>
+        <xsl:value-of select="@id"/>
+        <xsl:text>)</xsl:text>
+      </xsl:if>
+    </xsl:if>
+  </xsl:message>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON 6.2')">
+      <!-- Saxon 6.2.x uses xsl:document -->
+      <xsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </xsl:document>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon uses saxon:output -->
+      <saxon:output file="{$filename}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </saxon:output>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan uses redirect -->
+      <redirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </redirect:write>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk.with.doctype">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="$default.encoding"/>
+  <xsl:param name="indent" select="'no'"/>
+  <xsl:param name="doctype-public" select="''"/>
+  <xsl:param name="doctype-system" select="''"/>
+  <xsl:param name="content" select="''"/>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:if test="name(.) != ''">
+      <xsl:text> for </xsl:text>
+      <xsl:value-of select="name(.)"/>
+    </xsl:if>
+  </xsl:message>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON 6.2')">
+      <!-- Saxon 6.2.x uses xsl:document -->
+      <xsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </xsl:document>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon uses saxon:output -->
+      <saxon:output file="{$filename}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </saxon:output>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan uses redirect -->
+      <redirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </redirect:write>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/onechunk.xsl b/applications/content/template/docbook/xhtml/onechunk.xsl
new file mode 100644
index 0000000..2b05307
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/onechunk.xsl
@@ -0,0 +1,36 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="chunk.xsl"/>
+
+<!-- Ok, using the onechunk parameter makes this all work again. -->
+<!-- It does have the disadvantage that it only works for documents that have -->
+<!-- a root element that is considered a chunk by the chunk.xsl stylesheet. -->
+<!-- Ideally, onechunk would let anything be a chunk. But not today. -->
+
+<xsl:param name="onechunk" select="1"/>
+<xsl:param name="suppress.navigation">1</xsl:param>
+
+<xsl:template name="href.target.uri">
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/param.xsl b/applications/content/template/docbook/xhtml/param.xsl
new file mode 100644
index 0000000..14c015a
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/param.xsl
@@ -0,0 +1,448 @@
+<?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$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<xsl:param name="abstract.notitle.enabled" select="0"/>
+<xsl:param name="admon.graphics.extension">.png</xsl:param>
+<xsl:param name="admon.graphics" select="0"/>
+<xsl:param name="admon.graphics.path">images/</xsl:param>
+<xsl:param name="admon.style">
+  <xsl:value-of select="concat('margin-', $direction.align.start,            ': 0.5in; margin-', $direction.align.end, ': 0.5in;')"/>
+</xsl:param>
+<xsl:param name="admon.textlabel" select="1"/>
+<xsl:param name="annotate.toc" select="1"/>
+<xsl:param name="annotation.css">
+/* ======================================================================
+   Annotations
+*/
+
+div.annotation-list  { visibility: hidden;
+                     }
+
+div.annotation-nocss { position: absolute;
+                       visibility: hidden;
+                     }
+
+div.annotation-popup { position: absolute;
+                       z-index: 4;
+                       visibility: hidden;
+                       padding: 0px;
+                       margin: 2px;
+                       border-style: solid;
+                       border-width: 1px;
+                       width: 200px;
+		       background-color: white;
+                     }
+
+div.annotation-title { padding: 1px;
+                       font-weight: bold;
+                       border-bottom-style: solid;
+                       border-bottom-width: 1px;
+		       color: white;
+		       background-color: black;
+                     }
+
+div.annotation-body  { padding: 2px;
+                     }
+
+div.annotation-body p { margin-top: 0px;
+                        padding-top: 0px;
+                      }
+
+div.annotation-close { position: absolute;
+                       top: 2px;
+                       right: 2px;
+                     }
+</xsl:param>
+<xsl:param name="annotation.graphic.close">
+http://docbook.sourceforge.net/release/images/annot-close.png</xsl:param>
+<xsl:param name="annotation.graphic.open">http://docbook.sourceforge.net/release/images/annot-open.png</xsl:param>
+
+<xsl:param name="annotation.js">
+<xsl:text>http://docbook.sourceforge.net/release/script/AnchorPosition.js http://docbook.sourceforge.net/release/script/PopupWindow.js</xsl:text></xsl:param>
+
+<xsl:param name="annotation.support" select="0"/>
+<xsl:param name="appendix.autolabel">A</xsl:param>
+<xsl:param name="author.othername.in.middle" select="1"/>
+<xsl:param name="autotoc.label.in.hyperlink" select="1"/>
+<xsl:param name="autotoc.label.separator">. </xsl:param>
+<xsl:param name="base.dir"/>
+<xsl:param name="biblioentry.item.separator">. </xsl:param>
+<xsl:param name="bibliography.collection">http://docbook.sourceforge.net/release/bibliography/bibliography.xml</xsl:param>
+
+<xsl:param name="bibliography.numbered" select="0"/>
+<xsl:param name="bibliography.style">normal</xsl:param>
+<xsl:param name="blurb.on.titlepage.enabled" select="0"/>
+<xsl:param name="bridgehead.in.toc" select="0"/>
+<xsl:param name="callout.defaultcolumn">60</xsl:param>
+<xsl:param name="callout.graphics.extension">.png</xsl:param>
+
+<xsl:param name="callout.graphics" select="1"/>
+<xsl:param name="callout.graphics.number.limit">15</xsl:param>
+
+<xsl:param name="callout.graphics.path">images/callouts/</xsl:param>
+<xsl:param name="callout.list.table" select="1"/>
+<xsl:param name="callout.unicode" select="0"/>
+<xsl:param name="callout.unicode.number.limit">10</xsl:param>
+<xsl:param name="callout.unicode.start.character">10102</xsl:param>
+<xsl:param name="callouts.extension" select="1"/>
+<xsl:param name="chapter.autolabel" select="1"/>
+<xsl:param name="chunk.append"/>
+<xsl:param name="chunk.first.sections" select="0"/>
+<xsl:param name="chunk.quietly" select="0"/>
+<xsl:param name="chunk.section.depth" select="1"/>
+<xsl:param name="chunk.separate.lots" select="0"/>
+<xsl:param name="chunk.toc"/>
+<xsl:param name="chunk.tocs.and.lots" select="0"/>
+<xsl:param name="chunk.tocs.and.lots.has.title" select="1"/>
+<xsl:param name="chunked.filename.prefix"/>
+<xsl:param name="citerefentry.link" select="0"/>
+<xsl:param name="collect.xref.targets">no</xsl:param>
+<xsl:param name="component.label.includes.part.label" select="0"/>
+<xsl:param name="contrib.inline.enabled">1</xsl:param>
+<xsl:param name="css.decoration" select="1"/>
+<xsl:param name="current.docid"/>
+<xsl:param name="custom.css.source"/>
+<xsl:param name="default.float.class">
+  <xsl:choose>
+    <xsl:when test="contains($stylesheet.result.type,'html')">left</xsl:when>
+    <xsl:otherwise>before</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="default.image.width"/>
+<xsl:param name="default.table.frame">all</xsl:param>
+<xsl:param name="default.table.width"/>
+<xsl:param name="docbook.css.link" select="1"/>
+<xsl:param name="docbook.css.source">docbook.css.xml</xsl:param>
+<xsl:param name="draft.mode">no</xsl:param>
+<xsl:param name="draft.watermark.image">images/draft.png</xsl:param>
+<xsl:param name="ebnf.assignment">
+<code>::=</code>
+</xsl:param>
+
+<xsl:param name="ebnf.statement.terminator"/>
+
+<xsl:param name="ebnf.table.bgcolor">#F5DCB3</xsl:param>
+<xsl:param name="ebnf.table.border" select="1"/>
+<xsl:param name="eclipse.autolabel" select="0"/>
+<xsl:param name="eclipse.plugin.id">com.example.help</xsl:param>
+<xsl:param name="eclipse.plugin.name">DocBook Online Help Sample</xsl:param>
+<xsl:param name="eclipse.plugin.provider">Example provider</xsl:param>
+<xsl:param name="editedby.enabled">1</xsl:param>
+<xsl:param name="email.delimiters.enabled" select="1"/>
+<xsl:param name="emphasis.propagates.style" select="1"/>
+<xsl:param name="entry.propagates.style" select="1"/>
+<xsl:param name="exsl.node.set.available"> 
+  <xsl:choose>
+    <xsl:when xmlns:exsl="http://exslt.org/common" exsl:foo="" test="function-available('exsl:node-set') or                        contains(system-property('xsl:vendor'),                          'Apache Software Foundation')">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+<xsl:param name="firstterm.only.link" select="0"/>
+<xsl:param name="footer.rule" select="1"/>
+<xsl:param name="footnote.number.format">1</xsl:param>
+<xsl:param name="footnote.number.symbols"/>
+<xsl:param name="formal.procedures" select="1"/>
+<xsl:param name="formal.title.placement">
+figure before
+example before
+equation before
+table before
+procedure before
+task before
+</xsl:param>
+<xsl:param name="funcsynopsis.decoration" select="1"/>
+<xsl:param name="funcsynopsis.style">kr</xsl:param>
+<xsl:param name="function.parens" select="0"/>
+<xsl:param name="generate.consistent.ids" select="0"/>
+<xsl:param name="generate.css.header" select="0"/>
+<xsl:param name="generate.id.attributes" select="0"/>
+<xsl:param name="generate.index" select="1"/>
+<xsl:param name="generate.legalnotice.link" select="0"/>
+<xsl:param name="generate.manifest" select="0"/>
+<xsl:param name="generate.meta.abstract" select="1"/>
+<xsl:param name="generate.revhistory.link" select="0"/>
+<xsl:param name="generate.section.toc.level" select="0"/>
+<xsl:param name="generate.toc">
+appendix  toc,title
+article/appendix  nop
+article   toc,title
+book      toc,title,figure,table,example,equation
+chapter   toc,title
+part      toc,title
+preface   toc,title
+qandadiv  toc
+qandaset  toc
+reference toc,title
+sect1     toc
+sect2     toc
+sect3     toc
+sect4     toc
+sect5     toc
+section   toc
+set       toc,title
+</xsl:param>
+
+<xsl:param name="glossary.collection"/>
+<xsl:param name="glossary.sort" select="0"/>
+<xsl:param name="glossentry.show.acronym">no</xsl:param>
+<xsl:param name="glossterm.auto.link" select="0"/>
+<xsl:param name="graphic.default.extension"/>
+<xsl:param name="graphicsize.extension" select="1"/>
+<xsl:param name="graphicsize.use.img.src.path" select="0"/>
+<xsl:param name="header.rule" select="1"/>
+<xsl:param name="highlight.default.language"/>
+<xsl:param name="highlight.source" select="0"/>
+<xsl:param name="highlight.xslthl.config"/>
+<xsl:param name="html.append"/>
+<xsl:param name="html.base"/>
+<xsl:param name="html.cellpadding"/>
+<xsl:param name="html.cellspacing"/>
+<xsl:param name="html.cleanup" select="1"/>
+<xsl:param name="html.ext">.html</xsl:param>
+<xsl:param name="html.extra.head.links" select="0"/>
+<xsl:param name="html.head.legalnotice.link.multiple" select="1"/>
+<xsl:param name="html.head.legalnotice.link.types">copyright</xsl:param>
+<xsl:param name="html.longdesc" select="1"/>
+<xsl:param name="html.longdesc.link" select="$html.longdesc"/>
+<xsl:param name="html.script"/>
+<xsl:param name="html.script.type">text/javascript</xsl:param>
+<xsl:param name="html.stylesheet"/>
+<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+<xsl:param name="htmlhelp.alias.file">alias.h</xsl:param>
+<xsl:param name="htmlhelp.autolabel" select="0"/>
+<xsl:param name="htmlhelp.button.back" select="1"/>
+<xsl:param name="htmlhelp.button.forward" select="0"/>
+<xsl:param name="htmlhelp.button.hideshow" select="1"/>
+<xsl:param name="htmlhelp.button.home" select="0"/>
+<xsl:param name="htmlhelp.button.home.url"/>
+<xsl:param name="htmlhelp.button.jump1" select="0"/>
+<xsl:param name="htmlhelp.button.jump1.title">User1</xsl:param>
+<xsl:param name="htmlhelp.button.jump1.url"/>
+<xsl:param name="htmlhelp.button.jump2" select="0"/>
+<xsl:param name="htmlhelp.button.jump2.title">User2</xsl:param>
+<xsl:param name="htmlhelp.button.jump2.url"/>
+<xsl:param name="htmlhelp.button.locate" select="0"/>
+<xsl:param name="htmlhelp.button.next" select="1"/>
+<xsl:param name="htmlhelp.button.options" select="1"/>
+<xsl:param name="htmlhelp.button.prev" select="1"/>
+<xsl:param name="htmlhelp.button.print" select="1"/>
+<xsl:param name="htmlhelp.button.refresh" select="0"/>
+<xsl:param name="htmlhelp.button.stop" select="0"/>
+<xsl:param name="htmlhelp.button.zoom" select="0"/>
+<xsl:param name="htmlhelp.chm">htmlhelp.chm</xsl:param>
+<xsl:param name="htmlhelp.default.topic"/>
+<xsl:param name="htmlhelp.display.progress" select="1"/>
+<xsl:param name="htmlhelp.encoding">iso-8859-1</xsl:param>
+<xsl:param name="htmlhelp.enhanced.decompilation" select="0"/>
+<xsl:param name="htmlhelp.enumerate.images" select="0"/>
+<xsl:param name="htmlhelp.force.map.and.alias" select="0"/>
+<xsl:param name="htmlhelp.hhc.binary" select="1"/>
+<xsl:param name="htmlhelp.hhc.folders.instead.books" select="1"/>
+<xsl:param name="htmlhelp.hhc">toc.hhc</xsl:param>
+<xsl:param name="htmlhelp.hhc.section.depth">5</xsl:param>
+<xsl:param name="htmlhelp.hhc.show.root" select="1"/>
+<xsl:param name="htmlhelp.hhc.width"/>
+<xsl:param name="htmlhelp.hhk">index.hhk</xsl:param>
+<xsl:param name="htmlhelp.hhp">htmlhelp.hhp</xsl:param>
+<xsl:param name="htmlhelp.hhp.tail"/>
+<xsl:param name="htmlhelp.hhp.window">Main</xsl:param>
+<xsl:param name="htmlhelp.hhp.windows"/>
+<xsl:param name="htmlhelp.map.file">context.h</xsl:param>
+<xsl:param name="htmlhelp.only" select="0"/>
+<xsl:param name="htmlhelp.remember.window.position" select="0"/>
+<xsl:param name="htmlhelp.show.advanced.search" select="0"/>
+<xsl:param name="htmlhelp.show.favorities" select="0"/>
+<xsl:param name="htmlhelp.show.menu" select="0"/>
+<xsl:param name="htmlhelp.show.toolbar.text" select="1"/>
+<xsl:param name="htmlhelp.title"/>
+<xsl:param name="htmlhelp.use.hhk" select="0"/>
+<xsl:param name="htmlhelp.window.geometry"/>
+<xsl:param name="id.warnings" select="0"/>
+<xsl:param name="ignore.image.scaling" select="0"/>
+<xsl:param name="img.src.path"/>
+<xsl:param name="index.links.to.section" select="1"/>
+<xsl:param name="index.method">basic</xsl:param>
+<xsl:param name="index.number.separator"/>
+<xsl:param name="index.on.role" select="0"/>
+<xsl:param name="index.on.type" select="0"/>
+<xsl:param name="index.prefer.titleabbrev" select="0"/>
+<xsl:param name="index.range.separator"/>
+<xsl:param name="index.term.separator"/>
+<xsl:param name="inherit.keywords" select="1"/>
+<xsl:param name="insert.olink.page.number">no</xsl:param>
+<xsl:param name="insert.olink.pdf.frag" select="0"/>
+<xsl:param name="insert.xref.page.number">no</xsl:param>
+<xsl:param name="javahelp.encoding">iso-8859-1</xsl:param>
+<xsl:param name="keep.relative.image.uris" select="1"/>
+
+<xsl:param name="l10n.gentext.default.language">en</xsl:param>
+<xsl:param name="l10n.gentext.language"/>
+<xsl:param name="l10n.gentext.use.xref.language" select="0"/>
+<xsl:param name="l10n.lang.value.rfc.compliant" select="1"/>
+<xsl:param name="label.from.part" select="0"/>
+<xsl:param name="linenumbering.everyNth">5</xsl:param>
+<xsl:param name="linenumbering.extension" select="1"/>
+<xsl:param name="linenumbering.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="linenumbering.width">3</xsl:param>
+<xsl:param name="link.mailto.url"/>
+<xsl:param name="make.clean.html" select="0"/>
+<xsl:param name="make.graphic.viewport" select="1"/>
+<xsl:param name="make.single.year.ranges" select="0"/>
+<xsl:param name="make.valid.html" select="1"/>
+<xsl:param name="make.year.ranges" select="0"/>
+    <xsl:param name="manifest">HTML.manifest</xsl:param>
+    
+<xsl:param name="manifest.in.base.dir" select="0"/>
+<xsl:param name="manual.toc"/>
+<xsl:param name="menuchoice.menu.separator"> &#8594; </xsl:param>
+<xsl:param name="menuchoice.separator">+</xsl:param>
+<xsl:param name="navig.graphics.extension">.gif</xsl:param>
+<xsl:param name="navig.graphics" select="0"/>
+<xsl:param name="navig.graphics.path">images/</xsl:param>
+<xsl:param name="navig.showtitles">1</xsl:param>
+<xsl:param name="nominal.image.depth" select="4 * $pixels.per.inch"/>
+<xsl:param name="nominal.image.width" select="6 * $pixels.per.inch"/>
+<xsl:param name="nominal.table.width">6in</xsl:param>
+<xsl:param name="olink.base.uri"/>
+<xsl:param name="olink.debug" select="0"/>
+<xsl:param name="olink.doctitle">no</xsl:param> 
+<xsl:param name="olink.fragid">fragid=</xsl:param>
+<xsl:param name="olink.lang.fallback.sequence"/>
+<xsl:param name="olink.outline.ext">.olink</xsl:param>
+<xsl:attribute-set name="olink.properties">
+  <xsl:attribute name="show-destination">replace</xsl:attribute>
+</xsl:attribute-set>
+<xsl:param name="olink.pubid">pubid</xsl:param>
+  <xsl:param name="olink.resolver">/cgi-bin/olink</xsl:param>
+<xsl:param name="olink.sysid">sysid</xsl:param>
+<xsl:param name="othercredit.like.author.enabled">0</xsl:param>
+<xsl:param name="para.propagates.style" select="1"/>
+<xsl:param name="part.autolabel">I</xsl:param>
+<xsl:param name="phrase.propagates.style" select="1"/>
+<xsl:param name="pixels.per.inch">90</xsl:param>
+<xsl:param name="points.per.em">10</xsl:param>
+<xsl:param name="preface.autolabel" select="0"/>
+<xsl:param name="prefer.internal.olink" select="0"/>
+<xsl:param name="preferred.mediaobject.role"/>
+<xsl:param name="process.empty.source.toc" select="0"/>
+<xsl:param name="process.source.toc" select="0"/>
+<xsl:param name="profile.arch"/>
+<xsl:param name="profile.attribute"/>
+<xsl:param name="profile.audience"/>
+<xsl:param name="profile.condition"/>
+<xsl:param name="profile.conformance"/>
+<xsl:param name="profile.lang"/>
+<xsl:param name="profile.os"/>
+<xsl:param name="profile.revision"/>
+<xsl:param name="profile.revisionflag"/>
+<xsl:param name="profile.role"/>
+<xsl:param name="profile.security"/>
+<xsl:param name="profile.separator">;</xsl:param>
+<xsl:param name="profile.status"/>
+<xsl:param name="profile.userlevel"/>
+<xsl:param name="profile.value"/>
+<xsl:param name="profile.vendor"/>
+<xsl:param name="profile.wordsize"/>
+<xsl:param name="punct.honorific">.</xsl:param>
+<xsl:param name="qanda.defaultlabel">number</xsl:param>
+<xsl:param name="qanda.in.toc" select="0"/>
+<xsl:param name="qanda.inherit.numeration" select="1"/>
+<xsl:param name="qanda.nested.in.toc" select="0"/>
+<xsl:param name="qandadiv.autolabel" select="1"/>
+<xsl:param name="refclass.suppress" select="0"/>
+<xsl:param name="refentry.generate.name" select="1"/>
+<xsl:param name="refentry.generate.title" select="0"/>
+<xsl:param name="refentry.separator" select="1"/>
+<xsl:param name="refentry.xref.manvolnum" select="1"/>
+  <xsl:param name="reference.autolabel">I</xsl:param>
+<xsl:param name="root.filename">index</xsl:param>
+<xsl:param name="rootid"/>
+<xsl:param name="runinhead.default.title.end.punct">.</xsl:param>
+<xsl:param name="runinhead.title.end.punct">.!?:</xsl:param>
+<xsl:param name="section.autolabel" select="0"/>
+<xsl:param name="section.autolabel.max.depth">8</xsl:param>
+<xsl:param name="section.label.includes.component.label" select="0"/>
+<xsl:param name="segmentedlist.as.table" select="0"/>
+<xsl:param name="shade.verbatim" select="0"/>
+<xsl:attribute-set name="shade.verbatim.style">
+  <xsl:attribute name="border">0</xsl:attribute>
+  <xsl:attribute name="bgcolor">#E0E0E0</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:param name="show.comments" select="1"/>
+<xsl:param name="show.revisionflag" select="0"/>
+<xsl:param name="simplesect.in.toc" select="0"/>
+<xsl:param name="spacing.paras" select="0"/>
+<xsl:param name="suppress.footer.navigation">0</xsl:param>
+<xsl:param name="suppress.header.navigation" select="0"/>
+<xsl:param name="suppress.navigation" select="0"/>
+<xsl:param name="table.borders.with.css" select="0"/>
+<xsl:param name="table.cell.border.color"/>
+
+<xsl:param name="table.cell.border.style">solid</xsl:param>
+<xsl:param name="table.cell.border.thickness">0.5pt</xsl:param>
+<xsl:param name="table.footnote.number.format">a</xsl:param>
+<xsl:param name="table.footnote.number.symbols"/>
+<xsl:param name="table.frame.border.color"/>
+
+<xsl:param name="table.frame.border.style">solid</xsl:param>
+<xsl:param name="table.frame.border.thickness">0.5pt</xsl:param>
+<xsl:param name="tablecolumns.extension" select="1"/>
+ <xsl:param name="target.database.document">olinkdb.xml</xsl:param>
+<xsl:param name="targets.filename">target.db</xsl:param>
+<xsl:param name="tex.math.delims" select="1"/>
+<xsl:param name="tex.math.file">tex-math-equations.tex</xsl:param>
+<xsl:param name="tex.math.in.alt"/>
+<xsl:param name="textdata.default.encoding"/>
+  <xsl:param name="textinsert.extension" select="1"/>
+<xsl:param name="toc.list.type">dl</xsl:param>
+<xsl:param name="toc.max.depth">8</xsl:param>
+<xsl:param name="toc.section.depth">2</xsl:param>
+<xsl:param name="ulink.target">_top</xsl:param>
+<xsl:param name="use.embed.for.svg" select="0"/>
+<xsl:param name="use.extensions" select="0"/>
+<xsl:param name="use.id.as.filename" select="0"/>
+<xsl:param name="use.local.olink.style" select="0"/> 
+<xsl:param name="use.role.as.xrefstyle" select="1"/>
+<xsl:param name="use.role.for.mediaobject" select="1"/>
+<xsl:param name="use.svg" select="1"/>
+<xsl:param name="variablelist.as.table" select="0"/>
+<xsl:param name="variablelist.term.break.after">0</xsl:param>
+<xsl:param name="variablelist.term.separator">, </xsl:param>
+<xsl:param name="webhelp.autolabel">0</xsl:param>
+<xsl:param name="webhelp.base.dir">docs</xsl:param>
+<xsl:param name="webhelp.common.dir">../common/</xsl:param>
+<xsl:param name="webhelp.default.topic">index.html</xsl:param>
+<xsl:param name="webhelp.include.search.tab">true</xsl:param>
+<xsl:param name="webhelp.indexer.language">en</xsl:param>
+<xsl:param name="webhelp.start.filename">index.html</xsl:param>
+<xsl:param name="webhelp.tree.cookie.id" select="concat( 'treeview-', count(//node()) )"/>
+<xsl:param name="writing.mode">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key">writing-mode</xsl:with-param>
+    <xsl:with-param name="lang">
+      <xsl:call-template name="l10n.language">
+        <xsl:with-param name="target" select="/*[1]"/>
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:param>
+<xsl:param name="xref.label-page.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="xref.label-title.separator">: </xsl:param>
+<xsl:param name="xref.title-page.separator"><xsl:text> </xsl:text></xsl:param>
+<xsl:param name="xref.with.number.and.title" select="1"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/pi.xsl b/applications/content/template/docbook/xhtml/pi.xsl
new file mode 100644
index 0000000..1aad1d3
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/pi.xsl
@@ -0,0 +1,1236 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="doc" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns=""><info xmlns="http://www.w3.org/1999/xhtml"><title>HTML Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro xmlns="http://www.w3.org/1999/xhtml" xml:id="partintro">
+    <title>Introduction</title>
+    <para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the DocBook
+      XSL stylesheets for HTML output.
+      <note>
+        <para>You add these PIs at particular points in a document to
+          cause specific &#8220;exceptions&#8221; to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it&#8217;s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+      </note>
+    </para>
+  </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<doc:pi xmlns="" name="dbhtml_background-color">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets background color for an image</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml background-color</tag> PI before or
+      after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
+      <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
+      sibling to the element, to set a background color for the
+      image.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml background-color="<replaceable>color</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
+        <listitem>
+          <para>An HTML color value</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="BGcolor.html">Background color</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_background-color">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'background-color'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_bgcolor">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets background color on a CALS table row or table cell</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml bgcolor</tag> PI as child of a CALS table row
+      or cell to set a background color for that table row or cell.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
+        <listitem>
+          <para>An HTML color value</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="BGtableColor.html#CellBGColor">Cell background color</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_bgcolor">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'bgcolor'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_cellpadding">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies cellpadding in CALS table or qandaset output</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml cellpadding</tag> PI as a child of a
+      CALS <tag>table</tag> or <tag>qandaset</tag> to specify the value
+      for the HTML <literal>cellpadding</literal> attribute in the
+      output HTML table.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml cellpadding="<replaceable>number</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>cellpadding="<replaceable>number</replaceable>"</term>
+        <listitem>
+          <para>Specifies the cellpadding</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>html.cellpadding</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="CellSpacing.html">Cell spacing and cell padding</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_cellpadding">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'cellpadding'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_cellspacing">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies cellspacing in CALS table or qandaset output</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml cellspacing</tag> PI as a child of a
+      CALS <tag>table</tag> or <tag>qandaset</tag> to specify the value
+      for the HTML <literal>cellspacing</literal> attribute in the
+      output HTML table.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml cellspacing="<replaceable>number</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>cellspacing="<replaceable>number</replaceable>"</term>
+        <listitem>
+          <para>Specifies the cellspacing</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>html.cellspacing</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="CellSpacing.html">Cell spacing and cell padding</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+    </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_cellspacing">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'cellspacing'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_class">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Set value of the class attribute for a CALS table row</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml class</tag> PI as a child of a
+      <tag>row</tag> to specify a <literal>class</literal>
+      attribute and value in the HTML output for that row.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml class="<replaceable>name</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>class="<replaceable>name</replaceable>"</term>
+        <listitem>
+          <para>Specifies the class name</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="CSSTableCells.html">Table styles in HTML output</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_class">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'class'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi xmlns="" name="dbhtml_dir">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies a directory name in which to write files</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>When chunking output, use the <tag class="xmlpi">dbhtml dir</tag> PI
+      as a child of a chunk source to cause the output of that
+      chunk to be written to the specified directory; also, use it
+      as a child of a <tag>mediaobject</tag> to specify a
+      directory into which any long-description files for that
+      <tag>mediaobject</tag> will be written.</para>
+
+<para>The output directory specification is inherited by all
+chunks of the descendants of the element.  If descendants need
+to go to a different directory, then add another 
+<tag class="xmlpi">dbhtml dir</tag> processing
+instruction as a child of the source element
+for that chunk, and specify the path relative to the
+ancestor path.</para>
+
+<para>For example, to put most chunk files into 
+<filename class="directory">shared</filename>
+but one chapter into 
+<filename class="directory">exception</filename>
+at the same level, use:</para>
+
+<programlisting>&lt;book&gt;
+  &lt;?dbhtml dir="shared"?&gt;
+  ...
+  &lt;chapter&gt;
+    &lt;?dbhtml dir="../exception"?&gt;
+  &lt;/chapter&gt;
+&lt;/book&gt;
+</programlisting>
+
+
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml dir="<replaceable>path</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>dir="<replaceable>path</replaceable>"</term>
+        <listitem>
+          <para>Specifies the pathname for the directory</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>base.dir</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Chunking.html#dbhtmlDirPI">dbhtml dir processing instruction</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_dir">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'dir'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_filename">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies a filename for a chunk</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+<para>When chunking output, use the <tag class="xmlpi">dbhtml filename</tag>
+      PI as a child of a chunk source to specify a filename for
+      the output file for that chunk. Include the filename suffix.</para>
+
+<para>You cannot include a directory path in the filename value,
+or your links may not work.  Add a 
+<tag class="xmlpi">dbhtml dir</tag> processing instruction
+to specify the output directory. You can also combine the two
+specifications in one processing instruction: 
+<tag class="xmlpi">dbhtml dir="mydir" filename="myfile.html"</tag>.</para>
+
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml filename="<replaceable>filename</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>filename="<replaceable>path</replaceable>"</term>
+        <listitem>
+          <para>Specifies the filename for the file</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>use.id.as.filename</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Chunking.html#DbhtmlFilenames">dbhtml filenames</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_filename">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'filename'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_funcsynopsis-style">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies presentation style for a funcsynopsis</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml funcsynopsis-style</tag> PI as a child of
+      a <tag>funcsynopsis</tag> or anywhere within a funcsynopsis
+      to control the presentation style for output of all
+      <tag>funcprototype</tag> instances within that funcsynopsis.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml funcsynopsis-style="kr"|"ansi"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>funcsynopsis-style="kr"</term>
+        <listitem>
+          <para>Displays <tag>funcprototype</tag> output in K&amp;R style</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>funcsynopsis-style="ansi"</term>
+        <listitem>
+          <para>Displays <tag>funcprototype</tag> output in ANSI style</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>funcsynopsis.style</parameter></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_funcsynopsis-style">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'funcsynopsis-style'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_img.src.path">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies a path to the location of an image file</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml img.src.path</tag> PI before or
+      after an image (<tag>graphic</tag>,
+      <tag>inlinegraphic</tag>, <tag>imagedata</tag>, or
+      <tag>videodata</tag> element) as a sibling to the element,
+      to specify a path to the location of the image; in HTML
+      output, the value specified for the
+      <code>img.src.path</code> attribute is prepended to the
+      filename.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml img.src.path="<replaceable>path</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>img.src.path="<replaceable>path</replaceable>"</term>
+        <listitem>
+          <para>Specifies the pathname to prepend to the name of the image file</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>img.src.path</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="GraphicsLocations.html#UsingFileref">Using fileref</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_img.src.path">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'img.src.path'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_label-width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the label width for a qandaset</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml label-width</tag> PI as a child of a
+      <tag>qandaset</tag> to specify the width of labels.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml label-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the label width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_label-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'label-width'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi xmlns="" name="dbhtml_linenumbering.everyNth">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies interval for line numbers in verbatims</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml linenumbering.everyNth</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the interval at which lines are numbered.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
+        <listitem>
+          <para>Specifies numbering interval; a number is output
+            before every <replaceable>N</replaceable>th line</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>linenumbering.everyNth</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.everyNth">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_linenumbering.separator">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies separator text for line numbers in verbatims</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml linenumbering.separator</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the separator text output between the line numbers and content.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>linenumbering.separator</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.separator">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_linenumbering.width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies width for line numbers in verbatims</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml linenumbering.width</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the width set aside for line numbers.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the width (inluding units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>linenumbering.width</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_list-presentation">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies presentation style for a variablelist or
+    segmentedlist</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml list-presentation</tag> PI as a child of
+      a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
+      control the presentation style for the list (to cause it, for
+      example, to be displayed as a table).</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml list-presentation="list"|"table"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>list-presentation="list"</term>
+        <listitem>
+          <para>Displays the list as a list</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="table"</term>
+        <listitem>
+          <para>Displays the list as a table</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <itemizedlist>
+      <listitem>
+        <para><parameter>variablelist.as.table</parameter></para>
+      </listitem>
+      <listitem>
+        <para><parameter>segmentedlist.as.table</parameter></para>
+      </listitem>
+    </itemizedlist>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_list-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'list-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_list-width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the width of a variablelist or simplelist</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml list-width</tag> PI as a child of a
+      <tag>variablelist</tag> or a <tag>simplelist</tag> presented
+      as a table, to specify the output width.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml list-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the output width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_list-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'list-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_row-height">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the height for a CALS table row</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml row-height</tag> PI as a child of a
+      <tag>row</tag> to specify the height of the row.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml row-height="<replaceable>height</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>row-height="<replaceable>height</replaceable>"</term>
+        <listitem>
+          <para>Specifies the row height (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="RowHeight.html">Row height</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_row-height">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'row-height'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi xmlns="" name="dbhtml_start">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">(obsolete) Sets the starting number on an ordered list</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para><emphasis>This PI is obsolete</emphasis>. The intent of
+      this PI was to provide a means for setting a specific starting
+      number for an ordered list. Instead of this PI, set a value
+      for the <literal>override</literal> attribute on the first
+      <tag>listitem</tag> in the list; that will have the same
+      effect as what this PI was intended for.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml start="<replaceable>character</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>start="<replaceable>character</replaceable>"</term>
+        <listitem>
+          <para>Specifies the character to use as the starting
+            number; use 0-9, a-z, A-Z, or lowercase or uppercase
+            Roman numerals</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Orderedlists.html#ListStartNum">List starting number</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_start">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'start'"/>
+  </xsl:call-template>
+</xsl:template>
+
+  <doc:pi xmlns="" name="dbhtml_stop-chunking">
+	<refpurpose xmlns="http://www.w3.org/1999/xhtml">Do not chunk any descendants of this element.</refpurpose>
+	<refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>When generating chunked HTML output, adding this PI as the child of an element that contains elements that would normally be generated on separate pages if generating chunked output causes chunking to stop at this point. No descendants of the current element will be split into new HTML pages:
+<programlisting>&lt;section&gt;
+&lt;title&gt;Configuring pencil&lt;/title&gt;
+&lt;?dbhtml stop-chunking?&gt;
+
+...
+
+&lt;/section&gt;</programlisting>
+</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml stop-chunking</tag></synopsis>
+  </refsynopsisdiv>	
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Chunking.html">Chunking into multiple HTML files</link></para>
+  </refsee>
+  </doc:pi>
+  <!-- The code that handles the stop-chunking pi is in chunk-common.xsl -->
+
+<doc:pi xmlns="" name="dbhtml_table-summary">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies summary for CALS table, variablelist, segmentedlist, or qandaset output</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml table-summary</tag> PI as a child of
+      a CALS <tag>table</tag>, <tag>variablelist</tag>,
+      <tag>segmentedlist</tag>, or <tag>qandaset</tag> to specify
+      the text for the HTML <literal>summary</literal> attribute
+      in the output HTML table.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml table-summary="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>table-summary="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the summary text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link>,
+      <link role="tcg" xlink:href="TableSummary.html">Table summary text</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_table-summary">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'table-summary'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_table-width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the width for a CALS table</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml table-width</tag> PI as a child of a
+      CALS <tag>table</tag> to specify the width of the table in
+      output.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml table-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the table width (including units or as a percentage)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>default.table.width</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Tables.html#TableWidth">Table width</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_table-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'table-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_term-presentation">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets character formatting for terms in a variablelist</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml term-presentation</tag> PI as a child
+      of a <tag>variablelist</tag> to set character formatting for
+      the <tag>term</tag> output of the list.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml term-presentation="bold"|"italic"|"bold-italic"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>term-presentation="<replaceable>bold</replaceable>"</term>
+        <listitem>
+          <para>Specifies that terms are displayed in bold</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>term-presentation="<replaceable>italic</replaceable>"</term>
+        <listitem>
+          <para>Specifies that terms are displayed in italic</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>term-presentation="<replaceable>bold-italic</replaceable>"</term>
+        <listitem>
+          <para>Specifies that terms are displayed in bold-italic</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'term-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_term-separator">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies separator text among terms in a varlistentry</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml term-separator</tag> PI as a child
+      of a <tag>variablelist</tag> to specify the separator text
+      among <tag>term</tag> instances.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml term-separator="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>term-separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>variablelist.term.separator</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-separator">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'term-separator'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_term-width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the term width for a variablelist</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml term-width</tag> PI as a child of a
+      <tag>variablelist</tag> to specify the width for
+      <tag>term</tag> output.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml term-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the term width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'term-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_toc">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies whether a TOC should be generated for a qandaset</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml toc</tag> PI as a child of a
+      <tag>qandaset</tag> to specify whether a table of contents
+      (TOC) is generated for the <tag>qandaset</tag>.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml toc="0"|"1"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>toc="0"</term>
+        <listitem>
+          <para>If zero, no TOC is generated</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>toc="1"</term>
+        <listitem>
+          <para>If <code>1</code> (or any non-zero value),
+            a TOC is generated</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="QandAtoc.html">Q and A list of questions</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_toc">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'toc'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbcmdlist">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Generates a hyperlinked list of commands</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbcmdlist</tag> PI as the child of any
+      element (for example, <tag>refsynopsisdiv</tag>) containing multiple
+      <tag>cmdsynopsis</tag> instances; a hyperlinked navigational
+      &#8220;command list&#8221; will be generated at the top of output for that
+      element, enabling users to quickly jump
+      to each command synopsis.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbcmdlist</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <para>[No parameters]</para>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbcmdlist">
+  <xsl:variable name="cmdsynopses" select="..//cmdsynopsis"/>
+  <xsl:if test="count($cmdsynopses)&lt;1">
+    <xsl:message><xsl:text>No cmdsynopsis elements matched dbcmdlist PI, perhaps it's nested too deep?</xsl:text>
+    </xsl:message>
+  </xsl:if>
+  <dl>
+    <xsl:call-template name="process.cmdsynopsis.list">
+      <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+    </xsl:call-template>
+  </dl>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbfunclist">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Generates a hyperlinked list of functions</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbfunclist</tag> PI as the child of any
+      element (for example, <tag>refsynopsisdiv</tag>) containing multiple
+      <tag>funcsynopsis</tag> instances; a hyperlinked
+      navigational &#8220;function list&#8221; will be generated at the top of
+      output for that element, enabling users to quickly
+      jump to to each function synopsis.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbfunclist</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <para>[No parameters]</para>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfunclist">
+  <xsl:variable name="funcsynopses" select="..//funcsynopsis"/>
+  <xsl:if test="count($funcsynopses)&lt;1">
+    <xsl:message><xsl:text>No funcsynopsis elements matched dbfunclist PI, perhaps it's nested too deep?</xsl:text>
+    </xsl:message>
+  </xsl:if>
+  <dl>
+    <xsl:call-template name="process.funcsynopsis.list">
+      <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+    </xsl:call-template>
+  </dl>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml-include_href">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Copies an external well-formed HTML/XML file into current doc</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhtml-include href</tag> PI anywhere in a
+      document to cause the contents of the file referenced by the
+      <code>href</code> pseudo-attribute to be copied/inserted &#8220;as
+      is&#8221; into your HTML output at the point in document order
+      where the PI occurs in the source.</para>
+    <note>
+      <para>The referenced file may contain plain text (as long as
+        it is &#8220;wrapped&#8221; in an <tag>html</tag> element &#8212; see the
+        note below) or markup in any arbitrary vocabulary,
+        including HTML &#8212; but it must conform to XML
+        well-formedness constraints (because the feature in XSLT
+        1.0 for opening external files, the
+        <function>document()</function> function, can only handle
+        files that meet XML well-formedness constraints).</para>
+      <para>Among other things, XML well-formedness constraints
+        require a document to have <emphasis>a single root
+          element</emphasis>. So if the content you want to
+        include is plain text or is markup that does
+        <emphasis>not</emphasis> have a single root element,
+        <emphasis role="strong">wrap the content in an
+          <tag>html</tag> element</emphasis>. The stylesheets will
+        strip out that surrounding <tag>html</tag> &#8220;wrapper&#8221; when
+        they find it, leaving just the content you want to
+        insert.</para>
+    </note>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml-include href="<replaceable>URI</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>href="<replaceable>URI</replaceable>"</term>
+        <listitem>
+          <para>Specifies the URI for the file to include; the URI
+            can be, for example, a remote <literal>http:</literal>
+            URI, or a local filesystem <literal>file:</literal>
+            URI</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>textinsert.extension</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="InsertExtHtml.html">Inserting external HTML code</link>,
+      <link role="tcg" xlink:href="ExternalCode.html">External code files</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml-include">
+  <xsl:param name="href">
+    <xsl:call-template name="dbhtml-attribute">
+      <xsl:with-param name="pis" select="."/>
+      <xsl:with-param name="attribute">href</xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+  <xsl:choose>
+    <xsl:when test="$href != ''">
+      <xsl:variable name="content" select="document($href,/)"/>
+      <xsl:choose>
+        <xsl:when test="$content/*">
+          <xsl:choose>
+            <xsl:when test="$content/*[1][self::html]">
+              <!-- include just the children of html wrapper -->
+              <xsl:copy-of select="$content/*[1]/node()"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:copy-of select="$content"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>ERROR: dbhtml-include processing instruction </xsl:text>
+            <xsl:text>href has no content.</xsl:text>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>ERROR: dbhtml-include processing instruction has </xsl:text>
+        <xsl:text>missing or empty href value.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- There are two templates matching this PI in htmlhelp-common.xsl -->
+<doc:pi xmlns="" name="dbhh">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets topic name and topic id for context-sensitive HTML Help</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag class="xmlpi">dbhh</tag> PI as a child of components
+      that should be used as targets for context-sensitive help requests.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhh topicname="<replaceable>name</replaceable>" topicid="<replaceable>id</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>topicname="<replaceable>name</replaceable>"</term>
+        <listitem>
+          <para>Specifies a unique string constant that identifies a help topic</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>topicid="<replaceable>id</replaceable>"</term>
+        <listitem>
+          <para>Specifies a unique integer value for the <literal>topicname</literal> string</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="HtmlHelp.html#HHContextHelp">Context-sensitive help</link></para>
+  </refsee>
+</doc:pi>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-attribute">
+  <!-- * dbhtml-attribute is an interal utility template for retrieving -->
+  <!-- * pseudo-attributes/parameters from PIs -->
+  <xsl:param name="pis" select="processing-instruction('dbhtml')"/>
+  <xsl:param name="attribute">filename</xsl:param>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$pis"/>
+    <xsl:with-param name="attribute" select="$attribute"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction()">
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbcmdlist')">
+  <xsl:call-template name="pi.dbcmdlist"/>
+</xsl:template>
+<xsl:template name="process.cmdsynopsis.list">
+  <xsl:param name="cmdsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count&gt;count($cmdsynopses)"/>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$cmdsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:text>#</xsl:text>
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+             <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.cmdsynopsis.list">
+          <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbfunclist')">
+  <xsl:call-template name="pi.dbfunclist"/>
+</xsl:template>
+<xsl:template name="process.funcsynopsis.list">
+  <xsl:param name="funcsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count&gt;count($funcsynopses)"/>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$funcsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:text>#</xsl:text>
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+              <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+                <xsl:with-param name="target" select="$cmdsyn"/>
+              </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.funcsynopsis.list">
+          <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbhtml-include')">
+  <xsl:call-template name="pi.dbhtml-include"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-dir">
+  <xsl:param name="context" select="."/>
+  <!-- directories are now inherited from previous levels -->
+  <xsl:variable name="ppath">
+    <xsl:if test="$context/parent::*">
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="$context/parent::*"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="path">
+    <xsl:call-template name="pi.dbhtml_dir">
+      <xsl:with-param name="node" select="$context"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$path = ''">
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+        <xsl:if test="substring($ppath, string-length($ppath), 1) != '/'">
+          <xsl:text>/</xsl:text>
+        </xsl:if>
+      </xsl:if>
+      <xsl:value-of select="$path"/>
+      <xsl:text>/</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/profile-chunk-code.xsl b/applications/content/template/docbook/xhtml/profile-chunk-code.xsl
new file mode 100644
index 0000000..2b56a93
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/profile-chunk-code.xsl
@@ -0,0 +1,641 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="exsl cf ng db exslt" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="chunk-filename">
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="fn">
+    <xsl:apply-templates select="." mode="recursive-chunk-filename"/>
+  </xsl:variable>
+
+  <!--
+  <xsl:message>
+    <xsl:value-of select="$ischunk"/>
+    <xsl:text> (</xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text>) </xsl:text>
+    <xsl:value-of select="$fn"/>
+    <xsl:text>, </xsl:text>
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:message>
+  -->
+
+  <!-- 2003-11-25 by ndw:
+       The following test used to read test="$ischunk != 0 and $fn != ''"
+       I've removed the ischunk part of the test so that href.to.uri and
+       href.from.uri will be fully qualified even if the source or target
+       isn't a chunk. I *think* that if $fn != '' then it's appropriate
+       to put the directory on the front, even if the element isn't a
+       chunk. I could be wrong. -->
+
+  <xsl:if test="$fn != ''">
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:if>
+
+  <xsl:value-of select="$chunked.filename.prefix"/>
+
+  <xsl:value-of select="$fn"/>
+  <!-- You can't add the html.ext here because dbhtml filename= may already -->
+  <!-- have added it. It really does have to be handled in the recursive template -->
+</xsl:template>
+
+<xsl:template match="*" mode="recursive-chunk-filename">
+  <xsl:param name="recursive" select="false()"/>
+
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="dbhtml-filename">
+    <xsl:call-template name="pi.dbhtml_filename"/>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="$dbhtml-filename != ''">
+        <xsl:value-of select="$dbhtml-filename"/>
+      </xsl:when>
+      <!-- if this is the root element, use the root.filename -->
+      <xsl:when test="not(parent::*) and $root.filename != ''">
+        <xsl:value-of select="$root.filename"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <!-- Special case -->
+      <xsl:when test="self::legalnotice and not($generate.legalnotice.link = 0)">
+        <xsl:choose>
+          <xsl:when test="(@id or @xml:id) and not($use.id.as.filename = 0)">
+            <!-- * if this legalnotice has an ID, then go ahead and use -->
+            <!-- * just the value of that ID as the basename for the file -->
+            <!-- * (that is, without prepending an "ln-" too it) -->
+            <xsl:value-of select="(@id|@xml:id)[1]"/>
+            <xsl:value-of select="$html.ext"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <!-- * otherwise, if this legalnotice does not have an ID, -->
+            <!-- * then we generate an ID... -->
+            <xsl:variable name="id">
+              <xsl:call-template name="object.id"/>
+            </xsl:variable>
+            <!-- * ...and then we take that generated ID, prepend an -->
+            <!-- * "ln-" to it, and use that as the basename for the file -->
+            <xsl:value-of select="concat('ln-',$id,$html.ext)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <!-- if there's no dbhtml filename, and if we're to use IDs as -->
+      <!-- filenames, then use the ID to generate the filename. -->
+      <xsl:when test="(@id or @xml:id) and $use.id.as.filename != 0">
+        <xsl:value-of select="(@id|@xml:id)[1]"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </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="recursive-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:value-of select="$filename"/>
+    </xsl:when>
+
+    <xsl:when test="self::set">
+      <xsl:value-of select="$root.filename"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::book">
+      <xsl:text>bk</xsl:text>
+      <xsl:number level="any" format="01"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::article">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ar</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::preface">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>pr</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::chapter">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ch</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::appendix">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+
+      <xsl:text>ap</xsl:text>
+      <xsl:number level="any" format="a" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::part">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>pt</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::reference">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>rn</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::refentry">
+      <xsl:choose>
+        <xsl:when test="parent::reference">
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="/set">
+            <!-- in a set, make sure we inherit the right book info... -->
+            <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+              <xsl:with-param name="recursive" select="true()"/>
+            </xsl:apply-templates>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>re</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::colophon">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>co</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::sect1                     or self::sect2                     or self::sect3                     or self::sect4                     or self::sect5                     or self::section">
+      <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+        <xsl:with-param name="recursive" select="true()"/>
+      </xsl:apply-templates>
+      <xsl:text>s</xsl:text>
+      <xsl:number format="01"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::bibliography">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>bi</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::glossary">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>go</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::index">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>ix</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::setindex">
+      <xsl:text>si</xsl:text>
+      <xsl:number level="any" format="01" from="set"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="self::topic">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:text>to</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </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>
+
+<!-- ==================================================================== -->
+
+
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+
+<xsl:template match="*" mode="find.chunks">
+  <xsl:variable name="chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$chunk != 0">
+      <cf:div id="{generate-id()}">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:apply-templates select="*" mode="find.chunks"/>
+      </cf:div>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="*" mode="find.chunks"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Leave legalnotice chunk out of the list for Next and Prev -->
+<xsl:template match="legalnotice" mode="find.chunks"/>
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+	 stylesheets for DocBook5 if you don't want to use this feature.-->
+    <xsl:when test="false()"/>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="false()"/>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="collect.tex.math"/>
+                </xsl:if>
+                <xsl:if test="$generate.manifest != 0">
+                  <xsl:call-template name="generate.manifest">
+                    <xsl:with-param name="node" select="key('id',$rootid)"/>
+                  </xsl:call-template>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="$profiled-nodes" mode="collect.tex.math"/>
+            </xsl:if>
+            <xsl:if test="$generate.manifest != 0">
+              <xsl:call-template name="generate.manifest">
+                <xsl:with-param name="node" select="$profiled-nodes"/>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:apply-templates select="."/>
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |topic                      |reference|refentry                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon">
+  <xsl:choose>
+    <xsl:when test="$onechunk != 0 and parent::*">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not(parent::*)">
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:when>
+    <xsl:when test="$ischunk = 0">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex                      |book/index                      |article/index                      |part/index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. -->
+  <xsl:if test="count(*)&gt;0 or $generate.index != '0'">
+    <xsl:call-template name="process-chunk-element"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- Resolve xml:base attributes -->
+<xsl:template match="@fileref">
+  <!-- need a check for absolute urls -->
+  <xsl:choose>
+    <xsl:when test="contains(., ':')">
+      <!-- it has a uri scheme so it is an absolute uri -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:when test="$keep.relative.image.uris != 0">
+      <!-- leave it alone -->
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- its a relative uri -->
+      <xsl:call-template name="relative-uri">
+        <xsl:with-param name="destdir">
+          <xsl:call-template name="dbhtml-dir">
+            <xsl:with-param name="context" select=".."/>
+          </xsl:call-template>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |topic                      |reference|refentry                      |sect1|sect2|sect3|sect4|sect5                      |section                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon" mode="enumerate-files">
+  <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+  <xsl:if test="$ischunk='1'">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir">
+        <xsl:if test="$manifest.in.base.dir = 0">
+          <xsl:value-of select="$chunk.base.dir"/>
+        </xsl:if>
+      </xsl:with-param>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+  <xsl:apply-templates select="*" mode="enumerate-files"/>
+</xsl:template>
+
+<xsl:template match="book/index|article/index|part/index" mode="enumerate-files">
+  <xsl:if test="$htmlhelp.output != 1">
+    <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+    <xsl:if test="$ischunk='1'">
+      <xsl:call-template name="make-relative-filename">
+        <xsl:with-param name="base.dir">
+          <xsl:if test="$manifest.in.base.dir = 0">
+            <xsl:value-of select="$chunk.base.dir"/>
+          </xsl:if>
+        </xsl:with-param>
+        <xsl:with-param name="base.name">
+          <xsl:apply-templates mode="chunk-filename" select="."/>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>
+</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="*" mode="enumerate-files"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="enumerate-files">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <xsl:if test="$generate.legalnotice.link != 0">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir">
+        <xsl:if test="$manifest.in.base.dir = 0">
+          <xsl:value-of select="$chunk.base.dir"/>
+        </xsl:if>
+      </xsl:with-param>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="mediaobject[imageobject] | inlinemediaobject[imageobject]" mode="enumerate-files">
+  <xsl:variable name="longdesc.uri">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="mediaobject" select="."/>
+
+  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
+    <xsl:call-template name="longdesc.uri">
+      <xsl:with-param name="mediaobject" select="$mediaobject"/>
+    </xsl:call-template>
+    <xsl:text>
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="enumerate-files">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/profile-chunk.xsl b/applications/content/template/docbook/xhtml/profile-chunk.xsl
new file mode 100644
index 0000000..96d8033
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/profile-chunk.xsl
@@ -0,0 +1,52 @@
+<?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:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- First import the non-chunking templates that format elements
+     within each chunk file. In a customization, you should
+     create a separate non-chunking customization layer such
+     as mydocbook.xsl that imports the original docbook.xsl and
+     customizes any presentation templates. Then your chunking
+     customization should import mydocbook.xsl instead of
+     docbook.xsl.  -->
+<xsl:import href="docbook.xsl"/>
+
+<!-- chunk-common.xsl contains all the named templates for chunking.
+     In a customization file, you import chunk-common.xsl, then
+     add any customized chunking templates of the same name. 
+     They will have import precedence over the original 
+     chunking templates in chunk-common.xsl. -->
+<xsl:import href="chunk-common.xsl"/>
+
+<!-- The manifest.xsl module is no longer imported because its
+     templates were moved into chunk-common and chunk-code -->
+
+<!-- chunk-code.xsl contains all the chunking templates that use
+     a match attribute.  In a customization it should be referenced
+     using <xsl:include> instead of <xsl:import>, and then add
+     any customized chunking templates with match attributes. But be sure
+     to add a priority="1" to such customized templates to resolve
+     its conflict with the original, since they have the
+     same import precedence.
+     
+     Using xsl:include prevents adding another layer
+     of import precedence, which would cause any
+     customizations that use xsl:apply-imports to wrongly
+     apply the chunking version instead of the original
+     non-chunking version to format an element.  -->
+<xsl:include href="profile-chunk-code.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/profile-docbook.xsl b/applications/content/template/docbook/xhtml/profile-docbook.xsl
new file mode 100644
index 0000000..2bccac0
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/profile-docbook.xsl
@@ -0,0 +1,457 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="db ng exsl exslt exslt" version="1.0">
+
+<xsl:output method="xml" encoding="UTF-8" indent="no" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION.xsl"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/utility.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="../common/targets.xsl"/>
+<xsl:include href="../common/olink.xsl"/>
+<xsl:include href="../common/pi.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="autoidx.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="htmltbl.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="html.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="biblio-iso690.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="task.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="pi.xsl"/>
+<xsl:include href="ebnf.xsl"/>
+<xsl:include href="chunker.xsl"/>
+<xsl:include href="html-rtf.xsl"/>
+<xsl:include href="annotations.xsl"/>
+<xsl:include href="../common/stripns.xsl"/>
+
+<xsl:param name="stylesheet.result.type" select="'xhtml'"/>
+<xsl:param name="htmlhelp.output" select="0"/>
+
+<!-- ==================================================================== -->
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+<xsl:key name="gid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:text>Element </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text> in namespace '</xsl:text>
+    <xsl:value-of select="namespace-uri(.)"/>
+    <xsl:text>' encountered</xsl:text>
+    <xsl:if test="parent::*">
+      <xsl:text> in </xsl:text>
+      <xsl:value-of select="name(parent::*)"/>
+    </xsl:if>
+    <xsl:text>, but no template matches.</xsl:text>
+  </xsl:message>
+
+  <span style="color: red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="text()">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="body.attributes"><xslo:if xmlns:xslo="http://www.w3.org/1999/XSL/Transform" test="starts-with($writing.mode, 'rl')"><xslo:attribute name="dir">rtl</xslo:attribute></xslo:if>
+<!-- no apply-templates; make it empty except for dir for rtl-->
+</xsl:template>
+
+<xsl:template name="head.content">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="title">
+    <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/>
+  </xsl:param>
+
+  <title>
+    <xsl:copy-of select="$title"/>
+  </title>
+
+  <xsl:if test="$html.base != ''">
+    <base href="{$html.base}"/>
+  </xsl:if>
+
+  <!-- Insert links to CSS files or insert literal style elements -->
+  <xsl:call-template name="generate.css"/>
+
+  <xsl:if test="$html.stylesheet != ''">
+    <xsl:call-template name="output.html.stylesheets">
+      <xsl:with-param name="stylesheets" select="normalize-space($html.stylesheet)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$html.script != ''">
+    <xsl:call-template name="output.html.scripts">
+      <xsl:with-param name="scripts" select="normalize-space($html.script)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$link.mailto.url != ''">
+    <link rev="made" href="{$link.mailto.url}"/>
+  </xsl:if>
+
+  <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/>
+
+  <xsl:if test="$generate.meta.abstract != 0">
+    <xsl:variable name="info" select="(articleinfo                                       |bookinfo                                       |prefaceinfo                                       |chapterinfo                                       |appendixinfo                                       |sectioninfo                                       |sect1info                                       |sect2info                                       |sect3info                                       |sect4info                                       |sect5info                                       |referenceinfo                                       |refentryinfo                                       |partinfo                                       |info                                       |docinfo)[1]"/>
+    <xsl:if test="$info and $info/abstract">
+      <meta name="description">
+        <xsl:attribute name="content">
+          <xsl:for-each select="$info/abstract[1]/*">
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:if test="position() &lt; last()">
+              <xsl:text> </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </meta>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:if test="($draft.mode = 'yes' or                 ($draft.mode = 'maybe' and                 ancestor-or-self::*[@status][1]/@status = 'draft'))                 and $draft.watermark.image != ''">
+    <style type="text/css"><xsl:text>
+body { background-image: url('</xsl:text>
+<xsl:value-of select="$draft.watermark.image"/><xsl:text>');
+       background-repeat: no-repeat;
+       background-position: top left;
+       /* The following properties make the watermark "fixed" on the page. */
+       /* I think that's just a bit too distracting for the reader... */
+       /* background-attachment: fixed; */
+       /* background-position: center center; */
+     }</xsl:text>
+    </style>
+  </xsl:if>
+  <xsl:apply-templates select="." mode="head.keywords.content"/>
+</xsl:template>
+
+<xsl:template name="output.html.stylesheets">
+  <xsl:param name="stylesheets" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($stylesheets, ' ')">
+      <xsl:variable name="css.filename" select="substring-before($stylesheets, ' ')"/>
+
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$css.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.stylesheets">
+        <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$stylesheets != ''">
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$stylesheets"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="output.html.scripts">
+  <xsl:param name="scripts" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($scripts, ' ')">
+      <xsl:variable name="script.filename" select="substring-before($scripts, ' ')"/>
+
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$script.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.scripts">
+        <xsl:with-param name="scripts" select="substring-after($scripts, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$scripts != ''">
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$scripts"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="head.keywords.content">
+  <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="artheader/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sectioninfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="info/keywordset" mode="html.header"/>
+
+  <xsl:if test="$inherit.keywords != 0                 and parent::*">
+    <xsl:apply-templates select="parent::*" mode="head.keywords.content"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="system.head.content">
+  <xsl:param name="node" select="."/>
+
+  <!-- FIXME: When chunking, only the annotations actually used
+              in this chunk should be referenced. I don't think it
+              does any harm to reference them all, but it adds
+              unnecessary bloat to each chunk. -->
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <xsl:call-template name="add.annotation.links"/>
+    <script type="text/javascript">
+      <xsl:text>
+// Create PopupWindow objects</xsl:text>
+      <xsl:for-each select="//annotation">
+        <xsl:text>
+var popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text> = new PopupWindow("popup-</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>");
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.offsetY = 15;
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.autoHide();
+</xsl:text>
+      </xsl:for-each>
+    </script>
+
+    <style type="text/css">
+      <xsl:value-of select="$annotation.css"/>
+    </style>
+  </xsl:if>
+
+  <!-- system.head.content is like user.head.content, except that
+       it is called before head.content. This is important because it
+       means, for example, that <style> elements output by system.head.content
+       have a lower CSS precedence than the users stylesheet. -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="user.preroot">
+  <!-- Pre-root output, can be used to output comments and PIs. -->
+  <!-- This must not output any element content! -->
+</xsl:template>
+
+<xsl:template name="user.head.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<!-- To use the same stripped nodeset everywhere, it should
+be created as a global variable here.
+Used by docbook.xsl, chunk-code.xsl and chunkfast.xsl -->
+<xsl:variable name="no.namespace">
+  <xsl:if test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">
+    <xsl:apply-templates select="/*" mode="stripNS"/>
+  </xsl:if>
+</xsl:variable>
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="false()"/>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="false()"/>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="collect.tex.math"/>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="$profiled-nodes" mode="collect.tex.math"/>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="doc" select="self::*"/>
+
+  <xsl:call-template name="user.preroot"/>
+  <xsl:call-template name="root.messages"/>
+
+  <html>
+    <xsl:call-template name="root.attributes"/>
+    <head>
+      <xsl:call-template name="system.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="user.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </head>
+    <body>
+      <xsl:call-template name="body.attributes"/>
+      <xsl:call-template name="user.header.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:apply-templates select="."/>
+      <xsl:call-template name="user.footer.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$html.append"/>
+  
+  <!-- Generate any css files only once, not once per chunk -->
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<xsl:template name="root.attributes">
+  <!-- customize to add attributes to <html> element  -->
+</xsl:template>
+
+<xsl:template name="root.messages">
+  <!-- redefine this any way you'd like to output messages -->
+  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+
+  <!-- The default is that we are not chunking... -->
+  <xsl:text>0</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/profile-onechunk.xsl b/applications/content/template/docbook/xhtml/profile-onechunk.xsl
new file mode 100644
index 0000000..b550b77
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/profile-onechunk.xsl
@@ -0,0 +1,36 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="profile-chunk.xsl"/>
+
+<!-- Ok, using the onechunk parameter makes this all work again. -->
+<!-- It does have the disadvantage that it only works for documents that have -->
+<!-- a root element that is considered a chunk by the chunk.xsl stylesheet. -->
+<!-- Ideally, onechunk would let anything be a chunk. But not today. -->
+
+<xsl:param name="onechunk" select="1"/>
+<xsl:param name="suppress.navigation">1</xsl:param>
+
+<xsl:template name="href.target.uri">
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/qandaset.xsl b/applications/content/template/docbook/xhtml/qandaset.xsl
new file mode 100644
index 0000000..92e559e
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/qandaset.xsl
@@ -0,0 +1,439 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="doc" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="qandaset">
+  <xsl:variable name="title" select="(blockinfo/title|info/title|title)[1]"/>
+  <xsl:variable name="preamble" select="*[local-name(.) != 'title'                                           and local-name(.) != 'titleabbrev'                                           and local-name(.) != 'qandadiv'                                           and local-name(.) != 'qandaentry']"/>
+  <xsl:variable name="toc">
+    <xsl:call-template name="pi.dbhtml_toc"/>
+  </xsl:variable>
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="$title"/>
+    <xsl:if test="not($title)">
+      <!-- andhor is output on title if there is one -->
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:if test="((contains($toc.params, 'toc') and $toc != '0') or $toc = '1')                   and not(ancestor::answer and not($qanda.nested.in.toc=0))">
+      <xsl:call-template name="process.qanda.toc"/>
+    </xsl:if>
+    <xsl:apply-templates select="$preamble"/>
+    <xsl:call-template name="process.qandaset"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="qandaset/blockinfo/title|                      qandaset/info/title|                      qandaset/title">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qanda.section.level"/>
+  </xsl:variable>
+  <xsl:element name="h{string(number($qalevel)+1)}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandaset/blockinfo|qandaset/info">
+  <!-- what should this template really do? -->
+  <xsl:apply-templates select="legalnotice" mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="qandadiv">
+  <xsl:variable name="preamble" select="*[local-name(.) != 'title'                                           and local-name(.) != 'titleabbrev'                                           and local-name(.) != 'qandadiv'                                           and local-name(.) != 'qandaentry']"/>
+
+  <xsl:if test="blockinfo/title|info/title|title">
+    <tr class="qandadiv">
+      <td align="{$direction.align.start}" valign="top" colspan="2">
+        <xsl:apply-templates select="(blockinfo/title|info/title|title)[1]"/>
+      </td>
+    </tr>
+  </xsl:if>
+
+  <xsl:variable name="toc">
+    <xsl:call-template name="pi.dbhtml_toc"/>
+  </xsl:variable>
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="(contains($toc.params, 'toc') and $toc != '0') or $toc = '1'">
+    <tr class="toc">
+      <td align="{$direction.align.start}" valign="top" colspan="2">
+        <xsl:call-template name="process.qanda.toc"/>
+      </td>
+    </tr>
+  </xsl:if>
+  <xsl:if test="$preamble">
+    <tr class="toc">
+      <td align="{$direction.align.start}" valign="top" colspan="2">
+        <xsl:apply-templates select="$preamble"/>
+      </td>
+    </tr>
+  </xsl:if>
+  <xsl:apply-templates select="qandadiv|qandaentry"/>
+</xsl:template>
+
+<xsl:template match="qandadiv/blockinfo/title|                      qandadiv/info/title|                      qandadiv/title">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qandadiv.section.level"/>
+  </xsl:variable>
+
+  <xsl:element name="h{string(number($qalevel)+1)}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="parent::qandadiv" mode="label.markup"/>
+    <xsl:if test="$qandadiv.autolabel != 0">
+      <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+      <xsl:text> </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandaentry">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="question">
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+
+  <tr>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <!-- capture the id of the  quandaentry -->
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <td align="{$direction.align.start}" valign="top">
+      <!-- and the id of the question too -->
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="node" select=".."/>
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+
+      <xsl:variable name="label.content">
+        <xsl:apply-templates select="." mode="qanda.label"/>
+      </xsl:variable>
+
+      <xsl:if test="string-length($label.content) &gt; 0">
+        <p><strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:copy-of select="$label.content"/>
+        </strong></p>
+      </xsl:if>
+    </td>
+    <td align="{$direction.align.start}" valign="top">
+      <xsl:choose>
+        <xsl:when test="$deflabel = 'none' and not(label)">
+          <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates select="*[local-name(.) != 'label']"/></strong>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="*[local-name(.) != 'label']"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="*" mode="qanda.defaultlabel">
+  <xsl:choose>
+    <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+      <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]                             /@defaultlabel"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$qanda.defaultlabel"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question" mode="qanda.label">
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+  <xsl:apply-templates select="." mode="label.markup"/>
+  <xsl:if test="contains($deflabel, 'number') and not(label)">
+    <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="answer">
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+
+  <tr>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <td align="{$direction.align.start}" valign="top">
+      <xsl:call-template name="anchor"/>
+      <xsl:variable name="answer.label">
+        <xsl:apply-templates select="." mode="label.markup"/>
+      </xsl:variable>
+      <xsl:if test="string-length($answer.label) &gt; 0">
+        <p><strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+          <xsl:copy-of select="$answer.label"/>
+        </strong></p>
+      </xsl:if>
+    </td>
+    <td align="{$direction.align.start}" valign="top">
+      <xsl:apply-templates select="*[local-name(.) != 'label'         and local-name(.) != 'qandaentry']"/>
+      <!-- * handle nested answer/qandaentry instances -->
+      <!-- * (bug 1509043 from Daniel Leidert) -->
+      <xsl:if test="descendant::question">
+        <xsl:call-template name="process.qandaset"/>
+      </xsl:if>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="answer" mode="qanda.label">
+  <xsl:apply-templates select="." mode="label.markup"/>
+</xsl:template>
+
+<xsl:template match="label">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.qanda.toc">
+  <!-- * if user wants nested qandaset and qandaentry in main Qandaset TOC, -->
+  <!-- * then don't also include the nested stuff in the sub TOCs -->
+  <dl>
+    <xsl:apply-templates select="qandadiv" mode="qandatoc.mode"/>
+    <xsl:apply-templates select="qandaset|qandaentry" mode="qandatoc.mode"/>
+  </dl>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="qandatoc.mode">
+  <dt><xsl:apply-templates select="title" mode="qandatoc.mode"/></dt>
+  <dd><xsl:call-template name="process.qanda.toc"/></dd>
+</xsl:template>
+
+<xsl:template match="qandadiv/blockinfo/title|                      qandadiv/info/title|                      qandadiv/title" mode="qandatoc.mode">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qandadiv.section.level"/>
+  </xsl:variable>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="parent::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="div.label">
+    <xsl:apply-templates select="parent::qandadiv" mode="label.markup"/>
+  </xsl:variable>
+  <xsl:if test="string-length($div.label) != 0">
+    <xsl:copy-of select="$div.label"/>
+    <xsl:value-of select="$autotoc.label.separator"/>
+  </xsl:if>
+  <xsl:text> </xsl:text>
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="object" select="parent::*"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </a>
+</xsl:template>
+
+<xsl:template match="qandaset" mode="qandatoc.mode">
+  <xsl:for-each select="qandaentry">
+    <xsl:apply-templates select="." mode="qandatoc.mode"/>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="qandatoc.mode">
+  <xsl:apply-templates select="question" mode="qandatoc.mode"/>
+</xsl:template>
+
+<xsl:template match="question" mode="qandatoc.mode">
+  <xsl:variable name="firstch">
+    <!-- Use a titleabbrev or title if available -->
+    <xsl:choose>
+      <xsl:when test="../blockinfo/titleabbrev">
+        <xsl:apply-templates select="../blockinfo/titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../blockinfo/title">
+        <xsl:apply-templates select="../blockinfo/title[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../info/titleabbrev">
+        <xsl:apply-templates select="../info/titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../titleabbrev">
+        <xsl:apply-templates select="../titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../info/title">
+        <xsl:apply-templates select="../info/title[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../title">
+        <xsl:apply-templates select="../title[1]/node()"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="(*[local-name(.)!='label'])[1]/node()"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="deflabel">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+        <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]                               /@defaultlabel"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$qanda.defaultlabel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <dt>
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:if test="contains($deflabel,'number') and not(label)">
+      <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+    </xsl:if>
+    <xsl:text> </xsl:text>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:value-of select="$firstch"/>
+    </a>
+  </dt>
+  <!-- * include nested qandaset/qandaentry in TOC if user wants it -->
+  <xsl:if test="not($qanda.nested.in.toc = 0)">
+    <xsl:apply-templates select="following-sibling::answer" mode="qandatoc.mode"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="answer" mode="qandatoc.mode">
+  <xsl:if test="descendant::question">
+    <dd>
+      <xsl:call-template name="process.qanda.toc"/>
+    </dd>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.qandaset">
+
+  <xsl:variable name="deflabel">
+    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
+  </xsl:variable>
+
+  <xsl:variable name="label-width">
+    <xsl:call-template name="pi.dbhtml_label-width"/>
+  </xsl:variable>
+
+  <xsl:variable name="table-summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellpadding">
+    <xsl:call-template name="pi.dbhtml_cellpadding"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellspacing">
+    <xsl:call-template name="pi.dbhtml_cellspacing"/>
+  </xsl:variable>
+
+  <table border="{$table.border.off}">
+    <xsl:if test="$css.decoration != 0">
+      <xsl:attribute name="style">width: 100%;</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$table-summary != ''">
+      <xsl:attribute name="summary">
+        <xsl:value-of select="$table-summary"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$cellpadding != ''">
+      <xsl:attribute name="cellpadding">
+        <xsl:value-of select="$cellpadding"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$cellspacing != ''">
+      <xsl:attribute name="cellspacing">
+        <xsl:value-of select="$cellspacing"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <colgroup>
+      <col align="{$direction.align.start}">
+        <xsl:attribute name="width">
+          <xsl:choose>
+            <xsl:when test="$label-width != ''">
+              <xsl:value-of select="$label-width"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:text>1%</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+      </col>
+      <col/>
+    </colgroup>
+    <tbody>
+      <xsl:apply-templates select="qandaentry|qandadiv"/>
+    </tbody>
+  </table>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="no.wrapper.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/refentry.xsl b/applications/content/template/docbook/xhtml/refentry.xsl
new file mode 100644
index 0000000..e4c87d07
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/refentry.xsl
@@ -0,0 +1,305 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="reference">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="reference.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="not(partintro) and contains($toc.params, 'toc')">
+      <xsl:call-template name="division.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="reference" mode="division.number">
+  <xsl:number from="book" count="reference" format="I."/>
+</xsl:template>
+
+<xsl:template match="reference/docinfo"/>
+<xsl:template match="reference/referenceinfo"/>
+<xsl:template match="reference/title"/>
+<xsl:template match="reference/subtitle"/>
+<xsl:template match="reference/titleabbrev"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="refentry.title">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="refmeta" select="$node//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select="$node//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+  <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/>
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]" mode="title"/>
+      </xsl:when>
+      <xsl:when test="$refdesc">
+	<xsl:apply-templates select="$refdesc[1]" mode="title"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]" mode="title"/>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </xsl:variable>
+
+  <h1 class="title">
+    <xsl:copy-of select="$title"/>
+  </h1>
+</xsl:template>
+
+<xsl:template match="refentry">
+  <xsl:call-template name="id.warning"/>
+
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:if test="$refentry.separator != 0 and preceding-sibling::refentry">
+      <div class="refentry.separator">
+        <hr/>
+      </div>
+    </xsl:if>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="refentry.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="refentry/docinfo|refentry/refentryinfo"/>
+<xsl:template match="refentry/info"/>
+
+<xsl:template match="refentrytitle|refname|refdescriptor" mode="title">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refmeta">
+</xsl:template>
+
+<xsl:template match="manvolnum">
+  <xsl:if test="$refentry.xref.manvolnum != 0">
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refmiscinfo">
+</xsl:template>
+
+<xsl:template match="refentrytitle">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="refnamediv">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:choose>
+      <xsl:when test="preceding-sibling::refnamediv">
+	<!-- no title on secondary refnamedivs! -->
+      </xsl:when>
+      <xsl:when test="$refentry.generate.name != 0">
+        <h2>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'RefName'"/>
+          </xsl:call-template>
+        </h2>
+      </xsl:when>
+      <xsl:when test="$refentry.generate.title != 0">
+        <h2>
+          <xsl:choose>
+            <xsl:when test="../refmeta/refentrytitle">
+              <xsl:apply-templates select="../refmeta/refentrytitle"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:apply-templates select="refname[1]"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </h2>
+      </xsl:when>
+    </xsl:choose>
+
+    <p>
+      <xsl:apply-templates/>
+    </p>
+  </div>
+</xsl:template>
+
+<xsl:template match="refname">
+  <xsl:if test="not(preceding-sibling::refdescriptor)">
+    <xsl:apply-templates/>
+    <xsl:if test="following-sibling::refname">
+      <xsl:text>, </xsl:text>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refpurpose">
+  <xsl:if test="node()">
+    <xsl:text> </xsl:text>
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat">em-dash</xsl:with-param>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refdescriptor">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refclass">
+  <xsl:if test="$refclass.suppress = 0">
+  <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+    <xsl:if test="@role">
+      <xsl:value-of select="@role"/>
+      <xsl:text>: </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </strong>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <h2>
+      <xsl:choose>
+        <xsl:when test="refsynopsisdiv/title|title">
+          <xsl:apply-templates select="(refsynopsisdiv/title|title)[1]" mode="titlepage.mode"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'RefSynopsisDiv'"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </h2>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="refsynopsisdivinfo"/>
+
+<xsl:template match="refsynopsisdiv/title">
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv/title" mode="titlepage.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refsection|refsect1|refsect2|refsect3">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <!-- pick up info title -->
+    <xsl:apply-templates select="(title|info/title)[1]"/>
+    <xsl:apply-templates select="node()[not(self::title) and not(self::info)]"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="refsection/title|refsection/info/title">
+  <!-- the ID is output in the block.object call for refsect1 -->
+  <xsl:variable name="level" select="count(ancestor-or-self::refsection)"/>
+  <xsl:variable name="refsynopsisdiv">
+    <xsl:text>0</xsl:text>
+    <xsl:if test="ancestor::refsynopsisdiv">1</xsl:if>
+  </xsl:variable>
+  <xsl:variable name="hlevel">
+    <xsl:choose>
+      <xsl:when test="$level+$refsynopsisdiv &gt; 5">6</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$level+1+$refsynopsisdiv"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:element name="h{$hlevel}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="refsect1/title|refsect1/info/title">
+  <!-- the ID is output in the block.object call for refsect1 -->
+  <h2>
+    <xsl:apply-templates/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="refsect2/title|refsect2/info/title">
+  <!-- the ID is output in the block.object call for refsect2 -->
+  <h3>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<xsl:template match="refsect3/title|refsect3/info/title">
+  <!-- the ID is output in the block.object call for refsect3 -->
+  <h4>
+    <xsl:apply-templates/>
+  </h4>
+</xsl:template>
+
+<xsl:template match="refsectioninfo|refsection/info"/>
+<xsl:template match="refsect1info|refsect1/info"/>
+<xsl:template match="refsect2info|refsect2/info"/>
+<xsl:template match="refsect3info|refsect3/info"/>
+
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/sections.xsl b/applications/content/template/docbook/xhtml/sections.xsl
new file mode 100644
index 0000000..c1ffb95
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/sections.xsl
@@ -0,0 +1,562 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="section">
+  <xsl:variable name="depth" select="count(ancestor::section)+1"/>
+
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="section.titlepage"/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')                   and $depth &lt;= $generate.section.toc.level">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="section.title">
+  <!-- the context node should be the title of a section when called -->
+  <xsl:variable name="section" select="(ancestor::section                                         |ancestor::simplesect                                         |ancestor::sect1                                         |ancestor::sect2                                         |ancestor::sect3                                         |ancestor::sect4                                         |ancestor::sect5)[last()]"/>
+
+  <xsl:variable name="renderas">
+    <xsl:choose>
+      <xsl:when test="$section/@renderas = 'sect1'">1</xsl:when>
+      <xsl:when test="$section/@renderas = 'sect2'">2</xsl:when>
+      <xsl:when test="$section/@renderas = 'sect3'">3</xsl:when>
+      <xsl:when test="$section/@renderas = 'sect4'">4</xsl:when>
+      <xsl:when test="$section/@renderas = 'sect5'">5</xsl:when>
+      <xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="level">
+    <xsl:choose>
+      <xsl:when test="$renderas != ''">
+        <xsl:value-of select="$renderas"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="section.level">
+          <xsl:with-param name="node" select="$section"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="section.heading">
+    <xsl:with-param name="section" select="$section"/>
+    <xsl:with-param name="level" select="$level"/>
+    <xsl:with-param name="title">
+      <xsl:apply-templates select="$section" mode="object.title.markup">
+        <xsl:with-param name="allow-anchors" select="1"/>
+      </xsl:apply-templates>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section/title                     |section/info/title                     |sectioninfo/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect1">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect2'">
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect3'">
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect4'">
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect5'">
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level &gt;= 1">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect1/title                     |sect1/info/title                     |sect1info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect2">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect3'">
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect4'">
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect5'">
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level &gt;= 2">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect2/title                     |sect2/info/title                     |sect2info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect3">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect2'">
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect4'">
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect5'">
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level &gt;= 3">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect3/title                     |sect3/info/title                     |sect3info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect4">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect2'">
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect3'">
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect5'">
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level &gt;= 4">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect4/title                     |sect4/info/title                     |sect4info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect5">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">
+        <xsl:call-template name="sect1.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect2'">
+        <xsl:call-template name="sect2.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect3'">
+        <xsl:call-template name="sect3.titlepage"/>
+      </xsl:when>
+      <xsl:when test="@renderas = 'sect4'">
+        <xsl:call-template name="sect4.titlepage"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="sect5.titlepage"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level &gt;= 5">
+      <xsl:call-template name="section.toc">
+        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+      </xsl:call-template>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect5/title                     |sect5/info/title                     |sect5info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="simplesect">
+  <xsl:call-template name="id.warning"/>
+
+  <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+
+    <xsl:call-template name="simplesect.titlepage"/>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="simplesect/title|simplesect/info/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="section/title"/>
+<xsl:template match="section/titleabbrev"/>
+<xsl:template match="section/subtitle"/>
+<xsl:template match="sectioninfo"/>
+<xsl:template match="section/info"/>
+
+<xsl:template match="sect1/title"/>
+<xsl:template match="sect1/titleabbrev"/>
+<xsl:template match="sect1/subtitle"/>
+<xsl:template match="sect1info"/>
+<xsl:template match="sect1/info"/>
+
+<xsl:template match="sect2/title"/>
+<xsl:template match="sect2/subtitle"/>
+<xsl:template match="sect2/titleabbrev"/>
+<xsl:template match="sect2info"/>
+<xsl:template match="sect2/info"/>
+
+<xsl:template match="sect3/title"/>
+<xsl:template match="sect3/subtitle"/>
+<xsl:template match="sect3/titleabbrev"/>
+<xsl:template match="sect3info"/>
+<xsl:template match="sect3/info"/>
+
+<xsl:template match="sect4/title"/>
+<xsl:template match="sect4/subtitle"/>
+<xsl:template match="sect4/titleabbrev"/>
+<xsl:template match="sect4info"/>
+<xsl:template match="sect4/info"/>
+
+<xsl:template match="sect5/title"/>
+<xsl:template match="sect5/subtitle"/>
+<xsl:template match="sect5/titleabbrev"/>
+<xsl:template match="sect5info"/>
+<xsl:template match="sect5/info"/>
+
+<xsl:template match="simplesect/title"/>
+<xsl:template match="simplesect/subtitle"/>
+<xsl:template match="simplesect/titleabbrev"/>
+<xsl:template match="simplesect/info"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="section.heading">
+  <xsl:param name="section" select="."/>
+  <xsl:param name="level" select="1"/>
+  <xsl:param name="allow-anchors" select="1"/>
+  <xsl:param name="title"/>
+  <xsl:param name="class" select="'title'"/>
+
+  <xsl:variable name="id">
+    <xsl:choose>
+      <!-- Make sure the subtitle doesn't get the same id as the title -->
+      <xsl:when test="self::subtitle">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="."/>
+        </xsl:call-template>
+      </xsl:when>
+      <!-- if title is in an *info wrapper, get the grandparent -->
+      <xsl:when test="contains(local-name(..), 'info')">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="../.."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- HTML H level is one higher than section level -->
+  <xsl:variable name="hlevel">
+    <xsl:choose>
+      <!-- highest valid HTML H level is H6; so anything nested deeper
+           than 5 levels down just becomes H6 -->
+      <xsl:when test="$level &gt; 5">6</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$level + 1"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:element name="h{$hlevel}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:attribute name="class"><xsl:value-of select="$class"/></xsl:attribute>
+    <xsl:if test="$css.decoration != '0'">
+      <xsl:if test="$hlevel&lt;3">
+        <xsl:attribute name="style">clear: both</xsl:attribute>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="$allow-anchors != 0">
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="node" select="$section"/>
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:copy-of select="$title"/>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bridgehead">
+  <xsl:variable name="container" select="(ancestor::appendix                         |ancestor::article                         |ancestor::bibliography                         |ancestor::chapter                         |ancestor::glossary                         |ancestor::glossdiv                         |ancestor::index                         |ancestor::partintro                         |ancestor::preface                         |ancestor::refsect1                         |ancestor::refsect2                         |ancestor::refsect3                         |ancestor::sect1                         |ancestor::sect2                         |ancestor::sect3                         |ancestor::sect4                         |ancestor::sect5                         |ancestor::section                         |ancestor::setindex                         |ancestor::simplesect)[last()]"/>
+
+  <xsl:variable name="clevel">
+    <xsl:choose>
+      <xsl:when test="local-name($container) = 'appendix'                       or local-name($container) = 'chapter'                       or local-name($container) = 'article'                       or local-name($container) = 'bibliography'                       or local-name($container) = 'glossary'                       or local-name($container) = 'index'                       or local-name($container) = 'partintro'                       or local-name($container) = 'preface'                       or local-name($container) = 'setindex'">1</xsl:when>
+      <xsl:when test="local-name($container) = 'glossdiv'">
+        <xsl:value-of select="count(ancestor::glossdiv)+1"/>
+      </xsl:when>
+      <xsl:when test="local-name($container) = 'sect1'                       or local-name($container) = 'sect2'                       or local-name($container) = 'sect3'                       or local-name($container) = 'sect4'                       or local-name($container) = 'sect5'                       or local-name($container) = 'refsect1'                       or local-name($container) = 'refsect2'                       or local-name($container) = 'refsect3'                       or local-name($container) = 'section'                       or local-name($container) = 'simplesect'">
+        <xsl:variable name="slevel">
+          <xsl:call-template name="section.level">
+            <xsl:with-param name="node" select="$container"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="$slevel + 1"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- HTML H level is one higher than section level -->
+  <xsl:variable name="hlevel">
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">2</xsl:when>
+      <xsl:when test="@renderas = 'sect2'">3</xsl:when>
+      <xsl:when test="@renderas = 'sect3'">4</xsl:when>
+      <xsl:when test="@renderas = 'sect4'">5</xsl:when>
+      <xsl:when test="@renderas = 'sect5'">6</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$clevel + 1"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="h{$hlevel}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="section/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="simplesect/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect1/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect2/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect3/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect4/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template match="sect5/subtitle" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="section.subtitle"/>
+</xsl:template>
+
+<xsl:template name="section.subtitle">
+  <!-- the context node should be the subtitle of a section when called -->
+  <xsl:variable name="section" select="(ancestor::section                                         |ancestor::simplesect                                         |ancestor::sect1                                         |ancestor::sect2                                         |ancestor::sect3                                         |ancestor::sect4                                         |ancestor::sect5)[last()]"/>
+
+  <xsl:variable name="level">
+    <xsl:call-template name="section.level">
+      <xsl:with-param name="node" select="$section"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="section.heading">
+    <xsl:with-param name="section" select=".."/>
+    <xsl:with-param name="allow-anchors" select="0"/>
+    <!-- subtitle heading level one higher than section level -->
+    <xsl:with-param name="level" select="$level + 1"/>
+    <xsl:with-param name="class" select="'subtitle'"/>
+    <xsl:with-param name="title">
+      <xsl:apply-templates select="$section" mode="object.subtitle.markup">
+        <xsl:with-param name="allow-anchors" select="0"/>
+      </xsl:apply-templates>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/synop.xsl b/applications/content/template/docbook/xhtml/synop.xsl
new file mode 100644
index 0000000..1acbead
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/synop.xsl
@@ -0,0 +1,1614 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- synopsis is in verbatim -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="cmdsynopsis">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <p>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:if test="..//processing-instruction('dbcmdlist')">
+        <!-- * Placing a dbcmdlist PI as a child of a particular element -->
+        <!-- * creates a hyperlinked list of all cmdsynopsis instances -->
+        <!-- * that are descendants of that element; so for any -->
+        <!-- * cmdsynopsis that is a descendant of an element containing -->
+        <!-- * a dbcmdlist PI, we need to output an a@id instance so that -->
+        <!-- * we will have something to link to -->
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </p>
+  </div>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command">
+  <br/>
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command[1]" priority="2">
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="group|arg" name="group-or-arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:variable name="sepchar">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*/@sepchar">
+        <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text> </xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="preceding-sibling::*">
+    <xsl:value-of select="$sepchar"/>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.open.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.open.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates/>
+  <xsl:choose>
+    <xsl:when test="$rep='repeat'">
+      <xsl:value-of select="$arg.rep.repeat.str"/>
+    </xsl:when>
+    <xsl:when test="$rep='norepeat'">
+      <xsl:value-of select="$arg.rep.norepeat.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.rep.def.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.close.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.close.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="group/arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:if test="preceding-sibling::*">
+    <xsl:value-of select="$arg.or.sep"/>
+  </xsl:if>
+  <xsl:call-template name="group-or-arg"/>
+</xsl:template>
+
+<xsl:template match="sbr">
+  <br/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="synopfragmentref">
+  <xsl:variable name="target" select="key('id',@linkend)"/>
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="$target" mode="synopfragment.number"/>
+  </xsl:variable>
+  <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+    <a href="#{@linkend}">
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$snum"/>
+      <xsl:text>)</xsl:text>
+    </a>
+    <xsl:text>&#160;</xsl:text>
+    <xsl:apply-templates/>
+  </em>
+</xsl:template>
+
+<xsl:template match="synopfragment" mode="synopfragment.number">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="synopfragment">
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="." mode="synopfragment.number"/>
+  </xsl:variable>
+  <!-- You can't introduce another <p> here, because you're 
+       already in a <p> from cmdsynopsis-->
+  <span>
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:variable>
+    <a id="{$id}">
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$snum"/>
+      <xsl:text>)</xsl:text>
+    </a>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<xsl:template match="funcsynopsis">
+  <xsl:if test="..//processing-instruction('dbfunclist')">
+    <!-- * Placing a dbfunclist PI as a child of a particular element -->
+    <!-- * creates a hyperlinked list of all funcsynopsis instances that -->
+    <!-- * are descendants of that element; so for any funcsynopsis that is -->
+    <!-- * a descendant of an element containing a dbfunclist PI, we need -->
+    <!-- * to output an a@id instance so that we will have something to -->
+    <!-- * link to -->
+    <span>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </span>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+  </xsl:if>
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsisinfo">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates/>
+  </pre>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype -->
+<!--
+
+funcprototype ::= (funcdef,
+                   (void|varargs|paramdef+))
+
+funcdef       ::= (#PCDATA|type|replaceable|function)*
+
+paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
+-->
+
+<xsl:template match="funcprototype">
+  <xsl:variable name="html-style">
+    <xsl:call-template name="pi.dbhtml_funcsynopsis-style">
+      <xsl:with-param name="node" select="ancestor::funcsynopsis/descendant-or-self::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="style">
+    <xsl:choose>
+      <xsl:when test="$html-style != ''">
+        <xsl:value-of select="$html-style"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$funcsynopsis.style"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+<!-- * 2008-02-17. the code no longer relies on the funcsynopsis.tabular.threshold -->
+<!-- * param at all (the stuff below has been commented out since mid -->
+<!-- * 2006), so I completely removed the funcsynopsis.tabular.threshold param -->
+<!-- * .. MikeSmith -->
+<!--
+  <xsl:variable name="tabular-p"
+                select="$funcsynopsis.tabular.threshold &gt; 0
+                        and string-length(.) &gt; $funcsynopsis.tabular.threshold"/>
+-->
+
+  <xsl:variable name="tabular-p" select="true()"/>
+
+  <xsl:choose>
+    <xsl:when test="$style = 'kr' and $tabular-p">
+      <xsl:apply-templates select="." mode="kr-tabular"/>
+    </xsl:when>
+    <xsl:when test="$style = 'kr'">
+      <xsl:apply-templates select="." mode="kr-nontabular"/>
+    </xsl:when>
+    <xsl:when test="$style = 'ansi' and $tabular-p">
+      <xsl:apply-templates select="." mode="ansi-tabular"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="." mode="ansi-nontabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: kr, non-tabular -->
+
+<xsl:template match="funcprototype" mode="kr-nontabular">
+  <p>
+    <xsl:apply-templates mode="kr-nontabular"/>
+    <xsl:if test="paramdef">
+      <br/>
+      <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/>
+    </xsl:if>
+  </p>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="kr-nontabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="kr-nontabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="kr-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform" class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></strong>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="kr-nontabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="kr-nontabular">
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="kr-nontabular">
+  <xsl:text>...</xsl:text>
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-nontabular">
+  <xsl:apply-templates select="parameter" mode="kr-nontabular"/>
+  <xsl:choose>
+    <xsl:when test="following-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>)</code>
+      <xsl:text>;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-nontabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-nontabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-funcsynopsis-mode">
+  <xsl:if test="preceding-sibling::paramdef"><br/></xsl:if>
+  <code>
+    <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+  </code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-funcsynopsis-mode">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="kr-funcsynopsis-mode">
+  <code>(</code>
+  <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
+  <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: kr, tabular -->
+
+<xsl:template match="funcprototype" mode="kr-tabular">
+  <table border="{$table.border.off}" class="funcprototype-table">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Function synopsis</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$css.decoration != 0">
+      <xsl:attribute name="style">cellspacing: 0; cellpadding: 0;</xsl:attribute>
+    </xsl:if>
+    <tr>
+      <td>
+        <xsl:apply-templates select="funcdef" mode="kr-tabular"/>
+      </td>
+      <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="kr-tabular"/>
+    </tr>
+    <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
+      <tr>
+        <td>&#160;</td>
+        <xsl:apply-templates select="." mode="kr-tabular"/>
+      </tr>
+    </xsl:for-each>
+  </table>
+  <xsl:if test="paramdef">
+    <div class="paramdef-list">
+      <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/>
+    </div>
+  </xsl:if>
+  <div class="funcprototype-spacer">&#160;</div> <!-- hACk: blank div for vertical spacing -->
+</xsl:template>
+
+<xsl:template match="funcdef" mode="kr-tabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="kr-tabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="kr-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform" class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></strong>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="kr-tabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="kr-tabular">
+  <td>
+    <code>)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="varargs" mode="kr-tabular">
+  <td>
+    <xsl:text>...</xsl:text>
+    <code>)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-tabular">
+  <td>
+    <xsl:apply-templates select="parameter" mode="kr-tabular"/>
+    <xsl:choose>
+      <xsl:when test="following-sibling::*">
+	<xsl:text>, </xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+	<code>)</code>
+	<xsl:text>;</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-tabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-tabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-tabular-funcsynopsis-mode">
+  <xsl:variable name="type">
+    <xsl:choose>
+      <xsl:when test="type">
+	<xsl:apply-templates select="type" mode="kr-tabular-funcsynopsis-mode"/>
+      </xsl:when>
+      <xsl:when test="normalize-space(parameter/preceding-sibling::node()[not(self::parameter)]) != ''">
+	<xsl:copy-of select="parameter/preceding-sibling::node()[not(self::parameter)]"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <tr>
+    <xsl:choose>
+      <xsl:when test="$type != '' and funcparams">
+        <td>
+	  <code>
+	    <xsl:copy-of select="$type"/>
+	  </code>
+          <xsl:text>&#160;</xsl:text>
+        </td>
+        <td>
+	  <code>
+	    <xsl:choose>
+	      <xsl:when test="type">
+		<xsl:apply-templates select="type/following-sibling::*" mode="kr-tabular-funcsynopsis-mode"/>
+	      </xsl:when>
+	      <xsl:otherwise>
+		<xsl:apply-templates select="*" mode="kr-tabular-funcsynopsis-mode"/>
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </code>
+        </td>
+      </xsl:when>
+
+      <xsl:when test="funcparams">
+        <td colspan="2">
+	  <code>
+	    <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+	  </code>
+        </td>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <td>
+	  <code>
+	    <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/>
+	  </code>
+          <xsl:text>&#160;</xsl:text>
+        </td>
+        <td>
+	  <code>
+	    <xsl:apply-templates select="parameter" mode="kr-tabular"/>
+	    <xsl:apply-templates select="parameter/following-sibling::*[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/>
+	    <xsl:text>;</xsl:text>
+	  </code>
+        </td>
+      </xsl:otherwise>
+    </xsl:choose>
+  </tr>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="kr-tabular-funcsynopsis-mode">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="kr-tabular-funcsynopsis-mode">
+  <code>(</code>
+  <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: ansi, non-tabular -->
+
+<xsl:template match="funcprototype" mode="ansi-nontabular">
+  <p>
+    <xsl:apply-templates mode="ansi-nontabular"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="funcdef" mode="ansi-nontabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="ansi-nontabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="ansi-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform" class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></strong>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="ansi-nontabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="ansi-nontabular">
+  <code>void)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="varargs" mode="ansi-nontabular">
+  <xsl:text>...</xsl:text>
+  <code>)</code>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="ansi-nontabular">
+  <xsl:apply-templates mode="ansi-nontabular"/>
+  <xsl:choose>
+    <xsl:when test="following-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>)</code>
+      <xsl:text>;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="ansi-nontabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="ansi-nontabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="ansi-nontabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="ansi-nontabular">
+  <code>(</code>
+  <xsl:apply-templates mode="ansi-nontabular"/>
+  <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- funcprototype: ansi, tabular -->
+
+<xsl:template match="funcprototype" mode="ansi-tabular">
+  <table border="{$table.border.off}" class="funcprototype-table">
+    <xsl:if test="$div.element != 'section'">
+      <xsl:attribute name="summary">Function synopsis</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$css.decoration != 0">
+      <xsl:attribute name="style">cellspacing: 0; cellpadding: 0;</xsl:attribute>
+    </xsl:if>
+    <tr>
+      <td>
+        <xsl:apply-templates select="funcdef" mode="ansi-tabular"/>
+      </td>
+      <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="ansi-tabular"/>
+    </tr>
+    <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
+      <tr>
+        <td>&#160;</td>
+        <xsl:apply-templates select="." mode="ansi-tabular"/>
+      </tr>
+    </xsl:for-each>
+  </table>
+  <div class="funcprototype-spacer">&#160;</div> <!-- hACk: blank div for vertical spacing -->
+</xsl:template>
+
+<xsl:template match="funcdef" mode="ansi-tabular">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="ansi-tabular"/>
+    <xsl:text>(</xsl:text>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function" mode="ansi-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform" class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></strong>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="kr-tabular"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void" mode="ansi-tabular">
+  <td>
+    <code>void)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="varargs" mode="ansi-tabular">
+  <td>
+    <xsl:text>...</xsl:text>
+    <code>)</code>
+    <xsl:text>;</xsl:text>
+  </td>
+  <td>&#160;</td>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="ansi-tabular">
+      <td>
+        <xsl:apply-templates mode="ansi-tabular"/>
+        <xsl:choose>
+          <xsl:when test="following-sibling::*">
+            <xsl:text>, </xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <code>)</code>
+            <xsl:text>;</xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </td>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter" mode="ansi-tabular">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates mode="ansi-tabular"/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <code>
+	<xsl:apply-templates mode="ansi-tabular"/>
+      </code>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="funcparams" mode="ansi-tabular">
+  <code>(</code>
+  <xsl:apply-templates/>
+  <code>)</code>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:variable name="default-classsynopsis-language">java</xsl:variable>
+
+<xsl:template match="classsynopsis                      |fieldsynopsis                      |methodsynopsis                      |constructorsynopsis                      |destructorsynopsis">
+  <xsl:param name="language">
+    <xsl:choose>
+      <xsl:when test="@language">
+	<xsl:value-of select="@language"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="$default-classsynopsis-language"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$language='java' or $language='Java'">
+      <xsl:apply-templates select="." mode="java"/>
+    </xsl:when>
+    <xsl:when test="$language='perl' or $language='Perl'">
+      <xsl:apply-templates select="." mode="perl"/>
+    </xsl:when>
+    <xsl:when test="$language='idl' or $language='IDL'">
+      <xsl:apply-templates select="." mode="idl"/>
+    </xsl:when>
+    <xsl:when test="$language='cpp' or $language='c++' or $language='C++'">
+      <xsl:apply-templates select="." mode="cpp"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Unrecognized language on </xsl:text>
+        <xsl:value-of select="local-name(.)"/>
+        <xsl:text>: </xsl:text>
+	<xsl:value-of select="$language"/>
+      </xsl:message>
+      <xsl:apply-templates select=".">
+	<xsl:with-param name="language" select="$default-classsynopsis-language"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="synop-break">
+  <xsl:if test="parent::classsynopsis                 or (following-sibling::fieldsynopsis                     |following-sibling::methodsynopsis                     |following-sibling::constructorsynopsis                     |following-sibling::destructorsynopsis)">
+    <br/>
+  </xsl:if>
+</xsl:template>
+
+
+<!-- ===== Java ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="java">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates select="ooclass[1]" mode="java"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text> extends</xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="java"/>
+      <xsl:if test="oointerface|ooexception">
+        <br/>
+	<xsl:text>&#160;&#160;&#160;&#160;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text>implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="java"/>
+      <xsl:if test="ooexception">
+        <br/>
+	<xsl:text>&#160;&#160;&#160;&#160;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text>throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="java"/>
+    </xsl:if>
+    <xsl:text>&#160;{</xsl:text>
+    <br/>
+    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="java"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="java">
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="java">
+  <xsl:choose>
+    <xsl:when test="preceding-sibling::*">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text> </xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&#160;</xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="java">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="java">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>=&#160;</xsl:text>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="java">
+  <xsl:param name="indent">0</xsl:param>
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>,</xsl:text>
+    <br/>
+    <xsl:if test="$indent &gt; 0">
+      <xsl:call-template name="copy-string">
+	<xsl:with-param name="string">&#160;</xsl:with-param>
+	<xsl:with-param name="count" select="$indent + 1"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="java">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="java" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="decl">
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$start-modifiers" mode="java"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="java"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="java"/>
+  </xsl:variable>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:copy-of select="$decl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="java">
+      <xsl:with-param name="indent" select="string-length($decl)"/>
+    </xsl:apply-templates>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <br/>
+      <xsl:text>&#160;&#160;&#160;&#160;throws&#160;</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="java"/>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="java"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== C++ ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="cpp">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="cpp"/>
+      <xsl:if test="oointerface|ooexception">
+        <br/>
+	<xsl:text>&#160;&#160;&#160;&#160;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="cpp"/>
+      <xsl:if test="ooexception">
+        <br/>
+	<xsl:text>&#160;&#160;&#160;&#160;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="cpp"/>
+    </xsl:if>
+    <xsl:text>&#160;{</xsl:text>
+    <br/>
+    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="cpp"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="cpp">
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="cpp">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&#160;</xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="cpp">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="cpp">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>=&#160;</xsl:text>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="cpp">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="cpp">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="cpp" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$start-modifiers" mode="cpp"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="cpp"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="cpp"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="cpp"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <br/>
+      <xsl:text>&#160;&#160;&#160;&#160;throws&#160;</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="cpp"/>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="cpp"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== IDL ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="idl">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>interface </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="idl"/>
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="idl"/>
+      <xsl:if test="oointerface|ooexception">
+        <br/>
+	<xsl:text>&#160;&#160;&#160;&#160;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="idl"/>
+      <xsl:if test="ooexception">
+        <br/>
+	<xsl:text>&#160;&#160;&#160;&#160;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="idl"/>
+    </xsl:if>
+    <xsl:text>&#160;{</xsl:text>
+    <br/>
+    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="idl"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="idl">
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="idl">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&#160;</xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="idl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="idl">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>=&#160;</xsl:text>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="idl">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="idl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="idl" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="$start-modifiers" mode="idl"/>
+
+    <!-- type -->
+    <xsl:if test="local-name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="idl"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="idl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="idl"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <br/>
+      <xsl:text>&#160;&#160;&#160;&#160;raises(</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="idl"/>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="idl"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- ===== Perl ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="perl">
+  <pre>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>package </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="perl"/>
+    <xsl:text>;</xsl:text>
+    <br/>
+
+    <xsl:if test="ooclass[preceding-sibling::*]">
+      <xsl:text>@ISA = (</xsl:text>
+      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="perl"/>
+      <xsl:text>);</xsl:text>
+      <br/>
+    </xsl:if>
+
+    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="perl"/>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="perl">
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="perl">
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier|package" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&#160;</xsl:text>
+    </xsl:if>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="perl">
+  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="perl">
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::classsynopsis">
+      <xsl:text>&#160;&#160;</xsl:text>
+    </xsl:if>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>;</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<xsl:template match="type" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>=&#160;</xsl:text>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>void&#160;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="perl">
+  <xsl:if test="preceding-sibling::methodparam">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="perl">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="perl" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
+  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
+
+  <code>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:text>sub </xsl:text>
+
+    <xsl:apply-templates select="methodname" mode="perl"/>
+    <xsl:text> { ... };</xsl:text>
+  </code>
+  <xsl:call-template name="synop-break"/>
+</xsl:template>
+
+<!-- Used when not occurring as a child of classsynopsis -->
+<xsl:template match="ooclass|oointerface|ooexception">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- * DocBook 5 allows linking elements (link, olink, and xref) -->
+<!-- * within the OO *synopsis elements (classsynopsis, fieldsynopsis, -->
+<!-- * methodsynopsis, constructorsynopsis, destructorsynopsis) and -->
+<!-- * their children. So we need to have mode="java|cpp|idl|perl" -->
+<!-- * per-mode matches for those linking elements in order for them -->
+<!-- * to be processed as expected. -->
+
+<xsl:template match="link|olink|xref" mode="java">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="cpp">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="idl">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="perl">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="ansi-nontabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="ansi-tabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="kr-nontabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="link|olink|xref" mode="kr-tabular">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/table.xsl b/applications/content/template/docbook/xhtml/table.xsl
new file mode 100644
index 0000000..e90bdf7
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/table.xsl
@@ -0,0 +1,1177 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns:stbl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Table" xmlns:xtbl="xalan://com.nwalsh.xalan.Table" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:ptbl="http://nwalsh.com/xslt/ext/xsltproc/python/Table" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="doc stbl xtbl lxslt ptbl" version="1.0">
+
+<xsl:include href="../common/table.xsl"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xtbl" functions="adjustColumnWidths"/>
+
+<xsl:template name="empty.table.cell">
+  <xsl:param name="colnum" select="0"/>
+
+  <xsl:variable name="rowsep">
+    <xsl:choose>
+      <!-- If this is the last row, rowsep never applies. -->
+      <xsl:when test="not(ancestor-or-self::row[1]/following-sibling::row                           or ancestor-or-self::thead/following-sibling::tbody                           or ancestor-or-self::tbody/preceding-sibling::tfoot)">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="NOT-AN-ELEMENT-NAME"/>
+          <xsl:with-param name="row" select="ancestor-or-self::row[1]"/>
+          <xsl:with-param name="colnum" select="$colnum"/>
+          <xsl:with-param name="attribute" select="'rowsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="colsep">
+    <xsl:choose>
+      <!-- If this is the last column, colsep never applies. -->
+      <xsl:when test="number($colnum) &gt;= ancestor::tgroup/@cols">0</xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="NOT-AN-ELEMENT-NAME"/>
+          <xsl:with-param name="row" select="ancestor-or-self::row[1]"/>
+          <xsl:with-param name="colnum" select="$colnum"/>
+          <xsl:with-param name="attribute" select="'colsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <td class="auto-generated">
+    <xsl:if test="$table.borders.with.css != 0">
+      <xsl:attribute name="style">
+        <xsl:if test="$colsep &gt; 0">
+          <xsl:call-template name="border">
+            <xsl:with-param name="side" select="'right'"/>
+          </xsl:call-template>
+        </xsl:if>
+        <xsl:if test="$rowsep &gt; 0">
+          <xsl:call-template name="border">
+            <xsl:with-param name="side" select="'bottom'"/>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:text>&#160;</xsl:text>
+  </td>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="border">
+  <xsl:param name="side" select="'left'"/>
+  <xsl:param name="padding" select="0"/>
+  <xsl:param name="style" select="$table.cell.border.style"/>
+  <xsl:param name="color" select="$table.cell.border.color"/>
+  <xsl:param name="thickness" select="$table.cell.border.thickness"/>
+
+  <!-- Note: Some browsers (mozilla) require at least a width and style. -->
+
+  <xsl:choose>
+    <xsl:when test="($thickness != ''                      and $style != ''                      and $color != '')                     or ($thickness != ''                         and $style != '')                     or ($thickness != '')">
+      <!-- use the compound property if we can: -->
+      <!-- it saves space and probably works more reliably -->
+      <xsl:text>border-</xsl:text>
+      <xsl:value-of select="$side"/>
+      <xsl:text>: </xsl:text>
+      <xsl:value-of select="$thickness"/>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$style"/>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$color"/>
+      <xsl:text>; </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- we need to specify the styles individually -->
+      <xsl:if test="$thickness != ''">
+        <xsl:text>border-</xsl:text>
+        <xsl:value-of select="$side"/>
+        <xsl:text>-width: </xsl:text>
+        <xsl:value-of select="$thickness"/>
+        <xsl:text>; </xsl:text>
+      </xsl:if>
+
+      <xsl:if test="$style != ''">
+        <xsl:text>border-</xsl:text>
+        <xsl:value-of select="$side"/>
+        <xsl:text>-style: </xsl:text>
+        <xsl:value-of select="$style"/>
+        <xsl:text>; </xsl:text>
+      </xsl:if>
+
+      <xsl:if test="$color != ''">
+        <xsl:text>border-</xsl:text>
+        <xsl:value-of select="$side"/>
+        <xsl:text>-color: </xsl:text>
+        <xsl:value-of select="$color"/>
+        <xsl:text>; </xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="tgroup" name="tgroup">
+  <xsl:if test="not(@cols) or @cols = '' or string(number(@cols)) = 'NaN'">
+    <xsl:message terminate="yes">
+      <xsl:text>Error: CALS tables must specify the number of columns.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellspacing">
+    <xsl:call-template name="pi.dbhtml_cellspacing"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellpadding">
+    <xsl:call-template name="pi.dbhtml_cellpadding"/>
+  </xsl:variable>
+
+  <table>
+    <xsl:choose>
+      <!-- If there's a textobject/phrase for the table summary, use it -->
+      <xsl:when test="../textobject/phrase">
+        <xsl:attribute name="summary">
+          <xsl:value-of select="../textobject/phrase"/>
+        </xsl:attribute>
+      </xsl:when>
+
+      <!-- If there's a <?dbhtml table-summary="foo"?> PI, use it for
+           the HTML table summary attribute -->
+      <xsl:when test="$summary != ''">
+        <xsl:attribute name="summary">
+          <xsl:value-of select="$summary"/>
+        </xsl:attribute>
+      </xsl:when>
+
+      <!-- Otherwise, if there's a title, use that -->
+      <xsl:when test="../title">
+        <xsl:attribute name="summary">
+          <!-- This screws up on inline markup and footnotes, oh well... -->
+          <xsl:value-of select="string(../title)"/>
+        </xsl:attribute>
+      </xsl:when>
+
+      <!-- Otherwise, forget the whole idea -->
+      <xsl:otherwise><!-- nevermind --></xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="$cellspacing != '' or $html.cellspacing != ''">
+      <xsl:attribute name="cellspacing">
+        <xsl:choose>
+          <xsl:when test="$cellspacing != ''">
+            <xsl:value-of select="$cellspacing"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$html.cellspacing"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$cellpadding != '' or $html.cellpadding != ''">
+      <xsl:attribute name="cellpadding">
+        <xsl:choose>
+          <xsl:when test="$cellpadding != ''">
+            <xsl:value-of select="$cellpadding"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$html.cellpadding"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="../@pgwide=1 or local-name(.) = 'entrytbl'">
+      <xsl:attribute name="width">100%</xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$table.borders.with.css != 0">
+        <xsl:choose>
+          <xsl:when test="../@frame='all' or (not(../@frame) and $default.table.frame='all')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'top'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'bottom'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'left'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'right'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='topbot' or (not(../@frame) and $default.table.frame='topbot')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'top'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'bottom'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='top' or (not(../@frame) and $default.table.frame='top')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'top'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='bottom' or (not(../@frame) and $default.table.frame='bottom')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'bottom'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='sides' or (not(../@frame) and $default.table.frame='sides')">
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'left'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'right'"/>
+                <xsl:with-param name="style" select="$table.frame.border.style"/>
+                <xsl:with-param name="color" select="$table.frame.border.color"/>
+                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+              </xsl:call-template>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:when test="../@frame='none'">
+            <xsl:attribute name="style">
+              <xsl:text>border: none;</xsl:text>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:attribute name="style">
+              <xsl:text>border-collapse: collapse;</xsl:text>
+            </xsl:attribute>
+          </xsl:otherwise>
+        </xsl:choose>
+
+      </xsl:when>
+      <xsl:when test="../@frame='none' or (not(../@frame) and $default.table.frame='none') or local-name(.) = 'entrytbl'">
+        <xsl:attribute name="border">0</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:attribute name="border">1</xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="colgroup">
+      <colgroup>
+        <xsl:call-template name="generate.colgroup">
+          <xsl:with-param name="cols" select="@cols"/>
+        </xsl:call-template>
+      </colgroup>
+    </xsl:variable>
+
+    <xsl:variable name="explicit.table.width">
+      <xsl:call-template name="pi.dbhtml_table-width">
+        <xsl:with-param name="node" select=".."/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="table.width">
+      <xsl:choose>
+        <xsl:when test="$explicit.table.width != ''">
+          <xsl:value-of select="$explicit.table.width"/>
+        </xsl:when>
+        <xsl:when test="$default.table.width = ''">
+          <xsl:text>100%</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$default.table.width"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:if test="$default.table.width != ''                   or $explicit.table.width != ''">
+      <xsl:attribute name="width">
+        <xsl:choose>
+          <xsl:when test="contains($table.width, '%')">
+            <xsl:value-of select="$table.width"/>
+          </xsl:when>
+          <xsl:when test="$use.extensions != 0                           and $tablecolumns.extension != 0">
+            <xsl:choose>
+              <xsl:when test="function-available('stbl:convertLength')">
+                <xsl:value-of select="stbl:convertLength($table.width)"/>
+              </xsl:when>
+              <xsl:when test="function-available('xtbl:convertLength')">
+                <xsl:value-of select="xtbl:convertLength($table.width)"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:message terminate="yes">
+                  <xsl:text>No convertLength function available.</xsl:text>
+                </xsl:message>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$table.width"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$use.extensions != 0                       and $tablecolumns.extension != 0">
+        <xsl:choose>
+          <xsl:when test="function-available('stbl:adjustColumnWidths')">
+            <xsl:copy-of select="stbl:adjustColumnWidths($colgroup)"/>
+          </xsl:when>
+          <xsl:when test="function-available('xtbl:adjustColumnWidths')">
+            <xsl:copy-of select="xtbl:adjustColumnWidths($colgroup)"/>
+          </xsl:when>
+          <xsl:when test="function-available('ptbl:adjustColumnWidths')">
+            <xsl:copy-of select="ptbl:adjustColumnWidths($colgroup)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message terminate="yes">
+              <xsl:text>No adjustColumnWidths function available.</xsl:text>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$colgroup"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:apply-templates select="thead"/>
+    <xsl:apply-templates select="tfoot"/>
+    <xsl:apply-templates select="tbody"/>
+
+    <xsl:if test=".//footnote|../title//footnote">
+      <tbody class="footnotes">
+        <tr>
+          <td colspan="{@cols}">
+            <xsl:apply-templates select=".//footnote|../title//footnote" mode="table.footnote.mode"/>
+          </td>
+        </tr>
+      </tbody>
+    </xsl:if>
+  </table>
+</xsl:template>
+
+<xsl:template match="tgroup/processing-instruction('dbhtml')">
+  <xsl:variable name="summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <!-- Suppress the table-summary PI -->
+  <xsl:if test="$summary = ''">
+    <xsl:processing-instruction name="dbhtml">
+      <xsl:value-of select="."/>
+    </xsl:processing-instruction>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="colspec"/>
+
+<xsl:template match="spanspec"/>
+
+<xsl:template match="thead|tfoot">
+  <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml">
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <!-- recurse on rows only if @morerows is present -->
+      <xsl:when test="row/entry/@morerows|row/entrytbl/@morerows">
+        <xsl:apply-templates select="row[1]">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'recurse'"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="row">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'loop'"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="tbody">
+  <tbody>
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="row/entry/@morerows|row/entrytbl/@morerows">
+        <xsl:apply-templates select="row[1]">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'recurse'"/>
+        </xsl:apply-templates>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="row">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="blank.spans">
+              <xsl:with-param name="cols" select="../@cols"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="'loop'"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+
+  </tbody>
+</xsl:template>
+
+<xsl:template match="row">
+  <xsl:param name="spans"/>
+  <xsl:param name="browserows"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($spans, '0')">
+      <xsl:call-template name="normal-row">
+        <xsl:with-param name="spans" select="$spans"/>
+        <xsl:with-param name="browserows" select="$browserows"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <!--
+      <xsl:message>
+        <xsl:text>Ignoring row: </xsl:text>
+        <xsl:value-of select="$spans"/>
+        <xsl:text> = </xsl:text>
+        <xsl:call-template name="consume-row">
+          <xsl:with-param name="spans" select="$spans"/>
+        </xsl:call-template>
+      </xsl:message>
+      -->
+
+      <xsl:if test="normalize-space(.//text()) != ''">
+        <xsl:message>Warning: overlapped row contains content!</xsl:message>
+      </xsl:if>
+
+      <tr><xsl:comment> This row intentionally left blank </xsl:comment></tr>
+
+      <xsl:if test="$browserows = 'recurse'">
+        <xsl:apply-templates select="following-sibling::row[1]">
+          <xsl:with-param name="spans">
+            <xsl:call-template name="consume-row">
+              <xsl:with-param name="spans" select="$spans"/>
+            </xsl:call-template>
+          </xsl:with-param>
+          <xsl:with-param name="browserows" select="$browserows"/>
+        </xsl:apply-templates>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="normal-row">
+  <xsl:param name="spans"/>
+  <xsl:param name="browserows"/>
+
+  <xsl:variable name="row-height">
+    <xsl:if test="processing-instruction('dbhtml')">
+      <xsl:call-template name="pi.dbhtml_row-height"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="bgcolor">
+    <xsl:if test="processing-instruction('dbhtml')">
+      <xsl:call-template name="pi.dbhtml_bgcolor"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="class">
+    <xsl:if test="processing-instruction('dbhtml')">
+      <xsl:call-template name="pi.dbhtml_class"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <tr>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="tr.attributes">
+      <xsl:with-param name="rownum">
+        <xsl:number from="tgroup" count="row"/>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:if test="$row-height != ''">
+      <xsl:attribute name="height">
+        <xsl:value-of select="$row-height"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$bgcolor != ''">
+      <xsl:attribute name="bgcolor">
+        <xsl:value-of select="$bgcolor"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$class != ''">
+      <xsl:attribute name="class">
+        <xsl:value-of select="$class"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$table.borders.with.css != 0">
+      <xsl:if test="@rowsep = 1 and following-sibling::row">
+        <xsl:attribute name="style">
+          <xsl:call-template name="border">
+            <xsl:with-param name="side" select="'bottom'"/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </xsl:if>
+    </xsl:if>
+
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="(entry|entrytbl)[1]">
+      <xsl:with-param name="spans" select="$spans"/>
+    </xsl:apply-templates>
+  </tr>
+
+  <xsl:if test="$browserows = 'recurse'">
+    <xsl:if test="following-sibling::row">
+      <xsl:variable name="nextspans">
+        <xsl:apply-templates select="(entry|entrytbl)[1]" mode="span">
+          <xsl:with-param name="spans" select="$spans"/>
+        </xsl:apply-templates>
+      </xsl:variable>
+  
+      <xsl:apply-templates select="following-sibling::row[1]">
+        <xsl:with-param name="spans" select="$nextspans"/>
+        <xsl:with-param name="browserows" select="$browserows"/>
+      </xsl:apply-templates>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="entry|entrytbl" name="entry">
+  <xsl:param name="col">
+    <xsl:choose>
+      <xsl:when test="@revisionflag">
+        <xsl:number from="row"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:param name="spans"/>
+
+  <xsl:variable name="cellgi">
+    <xsl:choose>
+      <xsl:when test="ancestor::thead">th</xsl:when>
+      <xsl:when test="ancestor::tfoot">th</xsl:when>
+      <xsl:when test="ancestor::tbody and                        (ancestor::table[@rowheader = 'firstcol'] or                       ancestor::informaltable[@rowheader = 'firstcol']) and                       ancestor-or-self::entry[1][count(preceding-sibling::entry) = 0]">
+        <xsl:text>th</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>td</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="empty.cell" select="count(node()) = 0"/>
+
+  <xsl:variable name="named.colnum">
+    <xsl:call-template name="entry.colnum"/>
+  </xsl:variable>
+
+  <xsl:variable name="entry.colnum">
+    <xsl:choose>
+      <xsl:when test="$named.colnum &gt; 0">
+        <xsl:value-of select="$named.colnum"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$col"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="entry.colspan">
+    <xsl:choose>
+      <xsl:when test="@spanname or @namest">
+        <xsl:call-template name="calculate.colspan"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="following.spans">
+    <xsl:call-template name="calculate.following.spans">
+      <xsl:with-param name="colspan" select="$entry.colspan"/>
+      <xsl:with-param name="spans" select="$spans"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="rowsep">
+    <xsl:choose>
+      <!-- If this is the last row, rowsep never applies. -->
+      <xsl:when test="ancestor::entrytbl                       and not (ancestor-or-self::row[1]/following-sibling::row)                       and not (ancestor::thead)">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <xsl:when test="not(ancestor-or-self::row[1]/following-sibling::row                           or ancestor-or-self::thead/following-sibling::tbody                           or ancestor-or-self::tbody/preceding-sibling::tfoot)">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <xsl:when test="@morerows and not(@morerows &lt;                   count(ancestor-or-self::row[1]/following-sibling::row))">
+        <xsl:value-of select="0"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="."/>
+          <xsl:with-param name="colnum" select="$entry.colnum"/>
+          <xsl:with-param name="attribute" select="'rowsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="colsep">
+    <xsl:choose>
+      <!-- If this is the last column, colsep never applies. -->
+      <xsl:when test="$following.spans = ''">0</xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="inherited.table.attribute">
+          <xsl:with-param name="entry" select="."/>
+          <xsl:with-param name="colnum" select="$entry.colnum"/>
+          <xsl:with-param name="attribute" select="'colsep'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="valign">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'valign'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="align">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'align'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="char">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'char'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="charoff">
+    <xsl:call-template name="inherited.table.attribute">
+      <xsl:with-param name="entry" select="."/>
+      <xsl:with-param name="colnum" select="$entry.colnum"/>
+      <xsl:with-param name="attribute" select="'charoff'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$spans != '' and not(starts-with($spans,'0:'))">
+      <xsl:call-template name="entry">
+        <xsl:with-param name="col" select="$col+1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="number($entry.colnum) &gt; $col">
+      <xsl:call-template name="empty.table.cell"/>
+      <xsl:call-template name="entry">
+        <xsl:with-param name="col" select="$col+1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:variable name="bgcolor">
+        <xsl:if test="processing-instruction('dbhtml')">
+          <xsl:call-template name="pi.dbhtml_bgcolor"/>
+        </xsl:if>
+      </xsl:variable>
+
+      <xsl:element name="{$cellgi}" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="$bgcolor != ''">
+          <xsl:attribute name="bgcolor">
+            <xsl:value-of select="$bgcolor"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:call-template name="locale.html.attributes"/>
+        <xsl:choose>
+          <xsl:when test="$entry.propagates.style != 0 and @role">
+            <xsl:apply-templates select="." mode="class.attribute">
+              <xsl:with-param name="class" select="@role"/>
+            </xsl:apply-templates>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="." mode="class.attribute">
+              <xsl:with-param name="class" select="''"/>
+            </xsl:apply-templates>
+          </xsl:otherwise>
+        </xsl:choose>
+
+        <xsl:if test="$show.revisionflag and @revisionflag">
+          <xsl:attribute name="class">
+            <xsl:value-of select="@revisionflag"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$table.borders.with.css != 0">
+          <xsl:attribute name="style">
+            <xsl:if test="$colsep &gt; 0">
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'right'"/>
+              </xsl:call-template>
+            </xsl:if>
+            <xsl:if test="$rowsep &gt; 0">
+              <xsl:call-template name="border">
+                <xsl:with-param name="side" select="'bottom'"/>
+              </xsl:call-template>
+            </xsl:if>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="@morerows &gt; 0">
+          <xsl:attribute name="rowspan">
+            <xsl:value-of select="1+@morerows"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$entry.colspan &gt; 1">
+          <xsl:attribute name="colspan">
+            <xsl:value-of select="$entry.colspan"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$align != ''">
+          <xsl:attribute name="align">
+            <xsl:value-of select="$align"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$valign != ''">
+          <xsl:attribute name="valign">
+            <xsl:value-of select="$valign"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$char != ''">
+          <xsl:attribute name="char">
+            <xsl:value-of select="$char"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="$charoff != ''">
+          <xsl:attribute name="charoff">
+            <xsl:value-of select="$charoff"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:if test="not(preceding-sibling::*) and                      (ancestor::row[1]/@id or ancestor::row[1]/@xml:id)">
+          <xsl:call-template name="anchor">
+            <xsl:with-param name="node" select="ancestor::row[1]"/>
+          </xsl:call-template>
+        </xsl:if>
+
+        <xsl:call-template name="anchor"/>
+
+        <xsl:choose>
+          <xsl:when test="$empty.cell">
+            <xsl:text>&#160;</xsl:text>
+          </xsl:when>
+          <xsl:when test="self::entrytbl">
+            <xsl:call-template name="tgroup"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:element>
+
+      <xsl:choose>
+        <xsl:when test="following-sibling::entry|following-sibling::entrytbl">
+          <xsl:apply-templates select="(following-sibling::entry                                        |following-sibling::entrytbl)[1]">
+            <xsl:with-param name="col" select="$col+$entry.colspan"/>
+            <xsl:with-param name="spans" select="$following.spans"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="finaltd">
+            <xsl:with-param name="spans" select="$following.spans"/>
+            <xsl:with-param name="col" select="$col+$entry.colspan"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="entry|entrytbl" name="sentry" mode="span">
+  <xsl:param name="col" select="1"/>
+  <xsl:param name="spans"/>
+
+  <xsl:variable name="entry.colnum">
+    <xsl:call-template name="entry.colnum"/>
+  </xsl:variable>
+
+  <xsl:variable name="entry.colspan">
+    <xsl:choose>
+      <xsl:when test="@spanname or @namest">
+        <xsl:call-template name="calculate.colspan"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="following.spans">
+    <xsl:call-template name="calculate.following.spans">
+      <xsl:with-param name="colspan" select="$entry.colspan"/>
+      <xsl:with-param name="spans" select="$spans"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$spans != '' and not(starts-with($spans,'0:'))">
+      <xsl:value-of select="substring-before($spans,':')-1"/>
+      <xsl:text>:</xsl:text>
+      <xsl:call-template name="sentry">
+        <xsl:with-param name="col" select="$col+1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="number($entry.colnum) &gt; $col">
+      <xsl:text>0:</xsl:text>
+      <xsl:call-template name="sentry">
+        <xsl:with-param name="col" select="$col + 1"/>
+        <xsl:with-param name="spans" select="substring-after($spans,':')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:call-template name="copy-string">
+        <xsl:with-param name="count" select="$entry.colspan"/>
+        <xsl:with-param name="string">
+          <xsl:choose>
+            <xsl:when test="@morerows">
+              <xsl:value-of select="@morerows"/>
+            </xsl:when>
+            <xsl:otherwise>0</xsl:otherwise>
+          </xsl:choose>
+          <xsl:text>:</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+
+      <xsl:choose>
+        <xsl:when test="following-sibling::entry|following-sibling::entrytbl">
+          <xsl:apply-templates select="(following-sibling::entry                                         |following-sibling::entrytbl)[1]" mode="span">
+            <xsl:with-param name="col" select="$col+$entry.colspan"/>
+            <xsl:with-param name="spans" select="$following.spans"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="sfinaltd">
+            <xsl:with-param name="spans" select="$following.spans"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.colgroup">
+  <xsl:param name="cols" select="1"/>
+  <xsl:param name="count" select="1"/>
+  <xsl:choose>
+    <xsl:when test="$count &gt; $cols"/>
+    <xsl:otherwise>
+      <xsl:call-template name="generate.col">
+        <xsl:with-param name="countcol" select="$count"/>
+      </xsl:call-template>
+      <xsl:call-template name="generate.colgroup">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.col">
+  <xsl:param name="countcol">1</xsl:param>
+  <xsl:param name="colspecs" select="./colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:param name="colnum">1</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count&gt;count($colspecs)">
+      <col/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+      <xsl:variable name="colspec.colnum">
+        <xsl:choose>
+          <xsl:when test="$colspec/@colnum">
+            <xsl:value-of select="$colspec/@colnum"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$colnum"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$colspec.colnum=$countcol">
+          <col>
+            <xsl:choose>
+              <xsl:when test="$colspec/@colwidth                             and $use.extensions != 0                             and $tablecolumns.extension != 0">
+                <xsl:attribute name="width">
+                  <xsl:choose>
+                    <xsl:when test="normalize-space($colspec/@colwidth) = '*'">
+                      <xsl:value-of select="'1*'"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:value-of select="$colspec/@colwidth"/>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </xsl:attribute>
+              </xsl:when>
+              <!-- pass through to HTML if no * in colspecs -->
+              <xsl:when test="$colspec/@colwidth and                              not($colspec/parent::*/colspec/@colwidth[contains(.,'*')])">
+                <xsl:attribute name="width">
+                  <xsl:choose>
+                    <xsl:when test="normalize-space($colspec/@colwidth) = '*'">
+                      <xsl:value-of select="'1*'"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <xsl:value-of select="$colspec/@colwidth"/>
+                    </xsl:otherwise>
+                  </xsl:choose>
+                </xsl:attribute>
+              </xsl:when>
+            </xsl:choose>
+
+            <xsl:choose>
+              <xsl:when test="$colspec/@align">
+                <xsl:attribute name="align">
+                  <xsl:value-of select="$colspec/@align"/>
+                </xsl:attribute>
+              </xsl:when>
+              <!-- Suggested by Pavel ZAMPACH <zampach@nemcb.cz> -->
+              <xsl:when test="$colspecs/ancestor::tgroup/@align">
+                <xsl:attribute name="align">
+                  <xsl:value-of select="$colspecs/ancestor::tgroup/@align"/>
+                </xsl:attribute>
+              </xsl:when>
+            </xsl:choose>
+
+            <xsl:if test="$colspec/@char">
+              <xsl:attribute name="char">
+                <xsl:value-of select="$colspec/@char"/>
+              </xsl:attribute>
+            </xsl:if>
+            
+            <xsl:if test="$colspec/@charoff">
+              <xsl:attribute name="charoff">
+                <xsl:value-of select="$colspec/@charoff"/>
+              </xsl:attribute>
+            </xsl:if>
+
+            <xsl:if test="$colspec/@colname">
+              <xsl:attribute name="class">
+                <xsl:value-of select="$colspec/@colname"/>
+              </xsl:attribute>
+            </xsl:if>
+          </col>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="generate.col">
+            <xsl:with-param name="countcol" select="$countcol"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="colnum">
+              <xsl:choose>
+                <xsl:when test="$colspec/@colnum">
+                  <xsl:value-of select="$colspec/@colnum + 1"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="$colnum + 1"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+           </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="colspec.colwidth">
+  <!-- when this macro is called, the current context must be an entry -->
+  <xsl:param name="colname"/>
+  <!-- .. = row, ../.. = thead|tbody, ../../.. = tgroup -->
+  <xsl:param name="colspecs" select="../../../../tgroup/colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:choose>
+    <xsl:when test="$count&gt;count($colspecs)"/>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+      <xsl:choose>
+        <xsl:when test="$colspec/@colname=$colname">
+          <xsl:value-of select="$colspec/@colwidth"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="colspec.colwidth">
+            <xsl:with-param name="colname" select="$colname"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="tr.attributes">
+  <xsl:param name="row" select="."/>
+  <xsl:param name="rownum" select="0"/>
+
+  <!-- by default, do nothing. But you might want to say:
+
+  <xsl:if test="$rownum mod 2 = 0">
+    <xsl:attribute name="class">oddrow</xsl:attribute>
+  </xsl:if>
+
+  -->
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/task.xsl b/applications/content/template/docbook/xhtml/task.xsl
new file mode 100644
index 0000000..5a7c23e
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/task.xsl
@@ -0,0 +1,74 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="task">
+  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/>
+
+  <xsl:variable name="placement">
+    <xsl:choose>
+      <xsl:when test="contains($param.placement, ' ')">
+        <xsl:value-of select="substring-before($param.placement, ' ')"/>
+      </xsl:when>
+      <xsl:when test="$param.placement = ''">before</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$param.placement"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="preamble" select="*[not(self::title                               or self::titleabbrev)]"/>
+
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+
+    <xsl:if test="(title or info/title) and $placement = 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="$preamble"/>
+
+    <xsl:if test="(title or info/title) and $placement != 'before'">
+      <xsl:call-template name="formal.object.heading"/>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="task/title">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="tasksummary">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="tasksummary/title"/>
+
+<xsl:template match="taskprerequisites">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="taskprerequisites/title"/>
+
+<xsl:template match="taskrelated">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="taskrelated/title"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/titlepage.templates.xsl b/applications/content/template/docbook/xhtml/titlepage.templates.xsl
new file mode 100644
index 0000000..a2a3cbb
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/titlepage.templates.xsl
@@ -0,0 +1,4004 @@
+<?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:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl">
+
+<!-- This stylesheet was created by template/titlepage.xsl-->
+
+<xsl:template name="article.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="articleinfo/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/title"/>
+    </xsl:when>
+    <xsl:when test="artheader/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="articleinfo/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="artheader/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/abstract"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/abstract"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="article.titlepage.before.recto"/>
+      <xsl:call-template name="article.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="article.titlepage.before.verso"/>
+      <xsl:call-template name="article.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="article.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="article.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="article.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="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="set.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="setinfo/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="setinfo/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/othercredit"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/abstract"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="set.titlepage.before.recto"/>
+      <xsl:call-template name="set.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="set.titlepage.before.verso"/>
+      <xsl:call-template name="set.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="set.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="set.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="set.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="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="book.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="bookinfo/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="bookinfo/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/othercredit"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/legalnotice"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revision"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revhistory"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/abstract"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="book.titlepage.before.recto"/>
+      <xsl:call-template name="book.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="book.titlepage.before.verso"/>
+      <xsl:call-template name="book.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="book.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="book.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="book.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="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="part.titlepage.recto">
+  <div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::part[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="partinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/abstract"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="part.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="part.titlepage.before.recto"/>
+      <xsl:call-template name="part.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="part.titlepage.before.verso"/>
+      <xsl:call-template name="part.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="part.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="part.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="part.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="subtitle" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="partintroinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="partintroinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/abstract"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage">
+  <div>
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="partintro.titlepage.before.recto"/>
+      <xsl:call-template name="partintro.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="partintro.titlepage.before.verso"/>
+      <xsl:call-template name="partintro.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="partintro.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.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="partintro.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="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="referenceinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="referenceinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/abstract"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="reference.titlepage.before.recto"/>
+      <xsl:call-template name="reference.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="reference.titlepage.before.verso"/>
+      <xsl:call-template name="reference.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="reference.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.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="reference.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="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.recto">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="refentry.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="refentry.titlepage.before.recto"/>
+      <xsl:call-template name="refentry.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="refentry.titlepage.before.verso"/>
+      <xsl:call-template name="refentry.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="refentry.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="refentry.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="refentry.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 name="dedication.titlepage.recto">
+  <div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="dedicationinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="dedicationinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="dedication.titlepage.before.recto"/>
+      <xsl:call-template name="dedication.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="dedication.titlepage.before.verso"/>
+      <xsl:call-template name="dedication.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="dedication.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.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="dedication.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="subtitle" mode="dedication.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.recto">
+  <div xsl:use-attribute-sets="acknowledgements.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::acknowledgements[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="acknowledgementsinfo/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="acknowledgementsinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="acknowledgements.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="acknowledgements.titlepage.before.recto"/>
+      <xsl:call-template name="acknowledgements.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="acknowledgements.titlepage.before.verso"/>
+      <xsl:call-template name="acknowledgements.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="acknowledgements.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="acknowledgements.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="acknowledgements.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="subtitle" mode="acknowledgements.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="acknowledgements.titlepage.recto.style">
+<xsl:apply-templates select="." mode="acknowledgements.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/abstract"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="preface.titlepage.before.recto"/>
+      <xsl:call-template name="preface.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="preface.titlepage.before.verso"/>
+      <xsl:call-template name="preface.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="preface.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.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="preface.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="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="chapterinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="chapterinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/abstract"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="chapter.titlepage.before.recto"/>
+      <xsl:call-template name="chapter.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="chapter.titlepage.before.verso"/>
+      <xsl:call-template name="chapter.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="chapter.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.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="chapter.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="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="topic.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="topicinfo/title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="topicinfo/subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/corpauthor"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/authorgroup"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/author"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/othercredit"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/releaseinfo"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/copyright"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/legalnotice"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/pubdate"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/revision"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/revhistory"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="topicinfo/abstract"/>
+  <xsl:apply-templates mode="topic.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="topic.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="topic.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="topic.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="topic.titlepage.before.recto"/>
+      <xsl:call-template name="topic.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="topic.titlepage.before.verso"/>
+      <xsl:call-template name="topic.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="topic.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="topic.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="topic.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="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="topic.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="topic.titlepage.recto.style">
+<xsl:apply-templates select="." mode="topic.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="appendixinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="appendixinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/abstract"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="appendix.titlepage.before.recto"/>
+      <xsl:call-template name="appendix.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="appendix.titlepage.before.verso"/>
+      <xsl:call-template name="appendix.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="appendix.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.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="appendix.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="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="section.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sectioninfo/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sectioninfo/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/othercredit"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/abstract"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="section.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="section.titlepage.before.recto"/>
+      <xsl:call-template name="section.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="section.titlepage.before.verso"/>
+      <xsl:call-template name="section.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="section.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="section.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="section.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="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect1info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect1info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/othercredit"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/abstract"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect1.titlepage.before.recto"/>
+      <xsl:call-template name="sect1.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect1.titlepage.before.verso"/>
+      <xsl:call-template name="sect1.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect1.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.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="sect1.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="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect2info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect2info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/othercredit"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/abstract"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect2.titlepage.before.recto"/>
+      <xsl:call-template name="sect2.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect2.titlepage.before.verso"/>
+      <xsl:call-template name="sect2.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect2.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.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="sect2.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="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect3info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect3info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/othercredit"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/abstract"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect3.titlepage.before.recto"/>
+      <xsl:call-template name="sect3.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect3.titlepage.before.verso"/>
+      <xsl:call-template name="sect3.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect3.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.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="sect3.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="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect4info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect4info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/othercredit"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/abstract"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect4.titlepage.before.recto"/>
+      <xsl:call-template name="sect4.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect4.titlepage.before.verso"/>
+      <xsl:call-template name="sect4.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect4.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.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="sect4.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="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect5info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect5info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/othercredit"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/abstract"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sect5.titlepage.before.recto"/>
+      <xsl:call-template name="sect5.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sect5.titlepage.before.verso"/>
+      <xsl:call-template name="sect5.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sect5.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.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="sect5.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="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/othercredit"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/abstract"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/abstract"/>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="simplesect.titlepage.before.recto"/>
+      <xsl:call-template name="simplesect.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="simplesect.titlepage.before.verso"/>
+      <xsl:call-template name="simplesect.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="simplesect.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.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="simplesect.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="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.recto">
+  <div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::bibliography[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="bibliographyinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="bibliographyinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="bibliography.titlepage.before.recto"/>
+      <xsl:call-template name="bibliography.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="bibliography.titlepage.before.verso"/>
+      <xsl:call-template name="bibliography.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="bibliography.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="bibliography.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="bibliography.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="subtitle" mode="bibliography.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:apply-templates select="." mode="bibliography.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.recto">
+  <div xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::glossary[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="glossaryinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="glossaryinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="glossary.titlepage.before.recto"/>
+      <xsl:call-template name="glossary.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="glossary.titlepage.before.verso"/>
+      <xsl:call-template name="glossary.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="glossary.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="glossary.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="glossary.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="subtitle" mode="glossary.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:apply-templates select="." mode="glossary.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="index.titlepage.recto">
+  <div xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::index[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="indexinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="indexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="index.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="index.titlepage.before.recto"/>
+      <xsl:call-template name="index.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="index.titlepage.before.verso"/>
+      <xsl:call-template name="index.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="index.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="index.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="index.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="subtitle" mode="index.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:apply-templates select="." mode="index.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.recto">
+  <div xsl:use-attribute-sets="setindex.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::setindex[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="setindexinfo/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="setindexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="setindex.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="setindex.titlepage.before.recto"/>
+      <xsl:call-template name="setindex.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="setindex.titlepage.before.verso"/>
+      <xsl:call-template name="setindex.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="setindex.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="setindex.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="setindex.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="subtitle" mode="setindex.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="setindex.titlepage.recto.style">
+<xsl:apply-templates select="." mode="setindex.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sidebarinfo/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="info/title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sidebarinfo/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="info/subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sidebar.titlepage">
+  <div class="titlepage">
+    <xsl:variable name="recto.content">
+      <xsl:call-template name="sidebar.titlepage.before.recto"/>
+      <xsl:call-template name="sidebar.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)">
+      <div><xsl:copy-of select="$recto.content"/></div>
+    </xsl:if>
+    <xsl:variable name="verso.content">
+      <xsl:call-template name="sidebar.titlepage.before.verso"/>
+      <xsl:call-template name="sidebar.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)">
+      <div><xsl:copy-of select="$verso.content"/></div>
+    </xsl:if>
+    <xsl:call-template name="sidebar.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sidebar.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="sidebar.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="sidebar.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sidebar.titlepage.recto.style">
+<xsl:call-template name="formal.object.heading">
+<xsl:with-param name="object" select="ancestor-or-self::sidebar[1]"/>
+</xsl:call-template>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sidebar.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sidebar.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sidebar.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/titlepage.xsl b/applications/content/template/docbook/xhtml/titlepage.xsl
new file mode 100644
index 0000000..175347c
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/titlepage.xsl
@@ -0,0 +1,1106 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:attribute-set name="book.titlepage.recto.style"/>
+<xsl:attribute-set name="book.titlepage.verso.style"/>
+
+<xsl:attribute-set name="article.titlepage.recto.style"/>
+<xsl:attribute-set name="article.titlepage.verso.style"/>
+
+<xsl:attribute-set name="set.titlepage.recto.style"/>
+<xsl:attribute-set name="set.titlepage.verso.style"/>
+
+<xsl:attribute-set name="part.titlepage.recto.style"/>
+<xsl:attribute-set name="part.titlepage.verso.style"/>
+
+<xsl:attribute-set name="partintro.titlepage.recto.style"/>
+<xsl:attribute-set name="partintro.titlepage.verso.style"/>
+
+<xsl:attribute-set name="reference.titlepage.recto.style"/>
+<xsl:attribute-set name="reference.titlepage.verso.style"/>
+
+<xsl:attribute-set name="refentry.titlepage.recto.style"/>
+<xsl:attribute-set name="refentry.titlepage.verso.style"/>
+
+<xsl:attribute-set name="dedication.titlepage.recto.style"/>
+<xsl:attribute-set name="dedication.titlepage.verso.style"/>
+
+<xsl:attribute-set name="acknowledgements.titlepage.recto.style"/>
+<xsl:attribute-set name="acknowledgements.titlepage.verso.style"/>
+
+<xsl:attribute-set name="preface.titlepage.recto.style"/>
+<xsl:attribute-set name="preface.titlepage.verso.style"/>
+
+<xsl:attribute-set name="chapter.titlepage.recto.style"/>
+<xsl:attribute-set name="chapter.titlepage.verso.style"/>
+
+<xsl:attribute-set name="appendix.titlepage.recto.style"/>
+<xsl:attribute-set name="appendix.titlepage.verso.style"/>
+
+<xsl:attribute-set name="bibliography.titlepage.recto.style"/>
+<xsl:attribute-set name="bibliography.titlepage.verso.style"/>
+
+<xsl:attribute-set name="glossary.titlepage.recto.style"/>
+<xsl:attribute-set name="glossary.titlepage.verso.style"/>
+
+<xsl:attribute-set name="index.titlepage.recto.style"/>
+<xsl:attribute-set name="index.titlepage.verso.style"/>
+
+<xsl:attribute-set name="setindex.titlepage.recto.style"/>
+<xsl:attribute-set name="setindex.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sidebar.titlepage.recto.style"/>
+<xsl:attribute-set name="sidebar.titlepage.verso.style"/>
+
+<xsl:attribute-set name="topic.titlepage.recto.style"/>
+<xsl:attribute-set name="topic.titlepage.verso.style"/>
+
+<xsl:attribute-set name="section.titlepage.recto.style"/>
+<xsl:attribute-set name="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect1.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect1.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect2.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect2.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect3.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect3.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect4.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect4.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect5.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect5.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="simplesect.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="simplesect.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/>
+<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="titlepage.mode">
+  <!-- if an element isn't found in this mode, try the default mode -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="abbrev" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="abstract" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:if test="$abstract.notitle.enabled = 0">
+      <xsl:call-template name="formal.object.heading">
+        <xsl:with-param name="title">
+          <xsl:apply-templates select="." mode="title.markup"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="abstract/title" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="address" mode="titlepage.mode">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'                     and @linenumbering = 'numbered'                     and $use.extensions != '0'                     and $linenumbering.extension != '0'">
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="paragraph">
+          <xsl:with-param name="content">
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf"/>
+            </xsl:call-template>
+          </xsl:with-param>
+        </xsl:call-template>
+      </div>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="paragraph">
+          <xsl:with-param name="content">
+            <xsl:call-template name="make-verbatim">
+              <xsl:with-param name="rtf" select="$rtf"/>
+            </xsl:call-template>
+          </xsl:with-param>
+        </xsl:call-template>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author|editor" mode="titlepage.mode">
+  <xsl:call-template name="credits.div"/>
+</xsl:template>
+
+<xsl:template name="credits.div">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="self::editor[position()=1] and not($editedby.enabled = 0)">
+      <h4 class="editedby"><xsl:call-template name="gentext.edited.by"/></h4>
+    </xsl:if>
+    <h3>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:choose>
+        <xsl:when test="orgname">
+          <xsl:apply-templates/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="person.name"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </h3>
+    <xsl:if test="not($contrib.inline.enabled = 0)">
+      <xsl:apply-templates mode="titlepage.mode" select="contrib"/>
+    </xsl:if>
+    <xsl:apply-templates mode="titlepage.mode" select="affiliation"/>
+    <xsl:apply-templates mode="titlepage.mode" select="email"/>
+    <xsl:if test="not($blurb.on.titlepage.enabled = 0)">
+      <xsl:choose>
+        <xsl:when test="$contrib.inline.enabled = 0">
+          <xsl:apply-templates mode="titlepage.mode" select="contrib|authorblurb|personblurb"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="titlepage.mode" select="authorblurb|personblurb"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template match="authorblurb|personblurb" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:if test="parent::refentryinfo">
+      <h2>Authors</h2>
+    </xsl:if>
+      
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="collab" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="collabname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="confdates" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confsponsor" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confnum" mode="titlepage.mode">
+  <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="contractnum" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="titlepage.mode">
+  <xsl:choose>
+    <xsl:when test="not($contrib.inline.enabled = 0)">
+      <span>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:apply-templates mode="titlepage.mode"/>
+      </span><xsl:text>&#160;</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <p><xsl:apply-templates mode="titlepage.mode"/></p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="copyright" mode="titlepage.mode">
+
+  <xsl:if test="generate-id() = generate-id(//refentryinfo/copyright[1])       and ($stylesheet.result.type = 'html' or $stylesheet.result.type = 'xhtml')">
+    <h2>Copyright</h2>
+  </xsl:if>
+
+  <p>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <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"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="year" mode="titlepage.mode">
+  <xsl:choose>
+    <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+      <span class="{@revisionflag}">
+        <xsl:apply-templates mode="titlepage.mode"/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="holder" mode="titlepage.mode">
+  <xsl:choose>
+    <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+      <span class="{@revisionflag}">
+        <xsl:apply-templates mode="titlepage.mode"/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="position() &lt; last()">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="titlepage.mode">
+  <h3>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </h3>
+</xsl:template>
+
+<xsl:template match="corpcredit" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="titlepage.mode">
+  <p>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'Edition'"/>
+    </xsl:call-template>
+  </p>
+</xsl:template>
+
+<xsl:template match="email" mode="titlepage.mode">
+  <!-- use the normal e-mail handling code -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="firstname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="graphic" mode="titlepage.mode">
+  <!-- use the normal graphic handling code -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="honorific" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="biblioid" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="itermset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="keywordset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="titlepage.mode">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$generate.legalnotice.link != 0">
+      
+      <!-- Compute name of legalnotice file -->
+      <xsl:variable name="file">
+	<xsl:call-template name="ln.or.rh.filename"/>
+      </xsl:variable>
+
+      <xsl:variable name="filename">
+        <xsl:call-template name="make-relative-filename">
+          <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+	  <xsl:with-param name="base.name" select="$file"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="title">
+        <xsl:apply-templates select="." mode="title.markup"/>
+      </xsl:variable>
+
+      <a href="{$file}">
+        <xsl:copy-of select="$title"/>
+      </a>
+
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="$filename"/>
+        <xsl:with-param name="quiet" select="$chunk.quietly"/>
+        <xsl:with-param name="content">
+        <xsl:call-template name="user.preroot"/>
+          <html>
+            <head>
+              <xsl:call-template name="system.head.content"/>
+              <xsl:call-template name="head.content"/>
+              <xsl:call-template name="user.head.content"/>
+            </head>
+            <body>
+              <xsl:call-template name="body.attributes"/>
+              <div>
+                <xsl:apply-templates select="." mode="common.html.attributes"/>
+                <xsl:call-template name="id.attribute">
+                  <xsl:with-param name="conditional" select="0"/>
+                </xsl:call-template>
+                <xsl:apply-templates mode="titlepage.mode"/>
+              </div>
+            </body>
+          </html>
+          <xsl:value-of select="$chunk.append"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <xsl:apply-templates mode="titlepage.mode"/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="legalnotice/title" mode="titlepage.mode">
+  <p class="legalnotice-title"><strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></strong></p>
+</xsl:template>
+
+<xsl:template match="lineage" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modespec" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="titlepage.mode">
+  <xsl:if test="preceding-sibling::*[1][self::orgname]">
+    <xsl:text> </xsl:text>
+  </xsl:if>
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.mode">
+<xsl:choose>
+  <xsl:when test="not($othercredit.like.author.enabled = 0)">
+  <xsl:variable name="contrib" select="string(contrib)"/>
+  <xsl:choose>
+    <xsl:when test="contrib">
+      <xsl:if test="not(preceding-sibling::othercredit[string(contrib)=$contrib])">
+        <xsl:call-template name="paragraph">
+          <xsl:with-param name="class" select="local-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:apply-templates select="following-sibling::othercredit[string(contrib)=$contrib]" mode="titlepage.othercredits"/>
+          </xsl:with-param>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="paragraph">
+        <xsl:with-param name="class" select="local-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:when>
+  <xsl:otherwise>
+    <xsl:call-template name="credits.div"/>
+  </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.othercredits">
+  <xsl:text>, </xsl:text>
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="othername" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="titlepage.mode">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="productname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="titlepage.mode">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class" select="local-name(.)"/>
+    <xsl:with-param name="content">
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="publisher" mode="titlepage.mode">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class" select="local-name(.)"/>
+    <xsl:with-param name="content">
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="publishername" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="titlepage.mode">
+  <xsl:call-template name="paragraph">
+    <xsl:with-param name="class" select="local-name(.)"/>
+    <xsl:with-param name="content">
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="titlepage.mode">
+  <xsl:variable name="numcols">
+    <xsl:choose>
+      <xsl:when test=".//authorinitials|.//author">3</xsl:when>
+      <xsl:otherwise>2</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:variable name="title">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key">RevHistory</xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="contents">
+    <div>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:call-template name="id.attribute"/>
+      <table>
+        <xsl:if test="$css.decoration != 0">
+          <xsl:attribute name="style">
+            <xsl:text>border-style:solid; width:100%;</xsl:text>
+          </xsl:attribute>
+        </xsl:if>
+        <!-- include summary attribute if not HTML5 -->
+        <xsl:if test="$div.element != 'section'">
+          <xsl:attribute name="summary">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key">revhistory</xsl:with-param>
+            </xsl:call-template>
+          </xsl:attribute>
+        </xsl:if>
+        <tr>
+          <th align="{$direction.align.start}" valign="top" colspan="{$numcols}">
+            <strong xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="key" select="'RevHistory'"/>
+              </xsl:call-template>
+            </strong>
+          </th>
+        </tr>
+        <xsl:apply-templates mode="titlepage.mode">
+          <xsl:with-param name="numcols" select="$numcols"/>
+        </xsl:apply-templates>
+      </table>
+    </div>
+  </xsl:variable>
+  
+  <xsl:choose>
+    <xsl:when test="$generate.revhistory.link != 0">
+      
+      <!-- Compute name of revhistory file -->
+      <xsl:variable name="file">
+	<xsl:call-template name="ln.or.rh.filename">
+	  <xsl:with-param name="is.ln" select="false()"/>
+	</xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="filename">
+        <xsl:call-template name="make-relative-filename">
+          <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
+          <xsl:with-param name="base.name" select="$file"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <a href="{$file}">
+        <xsl:copy-of select="$title"/>
+      </a>
+
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="$filename"/>
+        <xsl:with-param name="quiet" select="$chunk.quietly"/>
+        <xsl:with-param name="content">
+        <xsl:call-template name="user.preroot"/>
+          <html>
+            <head>
+              <xsl:call-template name="system.head.content"/>
+              <xsl:call-template name="head.content">
+                <xsl:with-param name="title">
+                    <xsl:value-of select="$title"/>
+                    <xsl:if test="../../title">
+                        <xsl:value-of select="concat(' (', ../../title, ')')"/>
+                    </xsl:if>
+                </xsl:with-param>
+              </xsl:call-template>
+              <xsl:call-template name="user.head.content"/>
+            </head>
+            <body>
+              <xsl:call-template name="body.attributes"/>
+              <xsl:copy-of select="$contents"/>
+            </body>
+          </html>
+          <xsl:text>
+</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$contents"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="revhistory/revision" mode="titlepage.mode">
+  <xsl:param name="numcols" select="'3'"/>
+  <xsl:variable name="revnumber" select="revnumber"/>
+  <xsl:variable name="revdate" select="date"/>
+  <xsl:variable name="revauthor" select="authorinitials|author"/>
+  <xsl:variable name="revremark" select="revremark|revdescription"/>
+  <tr>
+    <td align="{$direction.align.start}">
+      <xsl:if test="$revnumber">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'Revision'"/>
+        </xsl:call-template>
+        <xsl:call-template name="gentext.space"/>
+        <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/>
+      </xsl:if>
+    </td>
+    <td align="{$direction.align.start}">
+      <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/>
+    </td>
+    <xsl:choose>
+      <xsl:when test="$revauthor">
+        <td align="{$direction.align.start}">
+          <xsl:for-each select="$revauthor">
+            <xsl:apply-templates select="." mode="titlepage.mode"/>
+            <xsl:if test="position() != last()">
+	      <xsl:text>, </xsl:text>
+	    </xsl:if>
+	  </xsl:for-each>
+        </td>
+      </xsl:when>
+      <xsl:when test="$numcols &gt; 2">
+        <td>&#160;</td>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </tr>
+  <xsl:if test="$revremark">
+    <tr>
+      <td align="{$direction.align.start}" colspan="{$numcols}">
+        <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/>
+      </td>
+    </tr>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/date" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/author" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revremark" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subjectset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="subtitle" mode="titlepage.mode">
+  <h2>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="surname" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="titlepage.mode">
+  <xsl:variable name="id">
+    <xsl:choose>
+      <!-- if title is in an *info wrapper, get the grandparent -->
+      <xsl:when test="contains(local-name(..), 'info')">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="../.."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <h1>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:choose>
+      <xsl:when test="$generate.id.attributes = 0">
+        <a id="{$id}"/>
+      </xsl:when>
+      <xsl:otherwise>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:choose>
+      <xsl:when test="$show.revisionflag != 0 and @revisionflag">
+	<span class="{@revisionflag}">
+	  <xsl:apply-templates mode="titlepage.mode"/>
+	</span>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:apply-templates mode="titlepage.mode"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </h1>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="titlepage.mode">
+  <!-- nop; title abbreviations don't belong on the title page! -->
+</xsl:template>
+
+<xsl:template match="volumenum" mode="titlepage.mode">
+  <span>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<!-- This template computes the filename for legalnotice and revhistory chunks -->
+<xsl:template name="ln.or.rh.filename">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="is.ln" select="true()"/>
+
+  <xsl:variable name="dbhtml-filename">
+    <xsl:call-template name="pi.dbhtml_filename">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+ 
+  <xsl:choose>
+    <!--  1. If there is a dbhtml_filename PI, use that -->
+    <xsl:when test="$dbhtml-filename != ''">
+      <xsl:value-of select="$dbhtml-filename"/>
+    </xsl:when>
+    <xsl:when test="($node/@id or $node/@xml:id) and not($use.id.as.filename = 0)">
+      <!-- * 2. If this legalnotice/revhistory has an ID, then go ahead and use -->
+      <!-- * just the value of that ID as the basename for the file -->
+      <!-- * (that is, without prepending an "ln-" or "rh-" to it) -->
+      <xsl:value-of select="($node/@id|$node/@xml:id)[1]"/>
+      <xsl:value-of select="$html.ext"/>
+    </xsl:when>
+    <xsl:when test="not ($node/@id or $node/@xml:id) or $use.id.as.filename = 0">
+      <!-- * 3. Otherwise, if this legalnotice/revhistory does not have an ID, or -->
+      <!-- * if $use.id.as.filename = 0 -->
+      <!-- * then we generate an ID... -->
+      <xsl:variable name="id">
+	<xsl:value-of select="generate-id($node)"/>
+      </xsl:variable>
+      <!-- * ...and then we take that generated ID, prepend a -->
+      <!-- * prefix to it, and use that as the basename for the file -->
+      <xsl:choose>
+	<xsl:when test="$is.ln">
+	  <xsl:value-of select="concat('ln-',$id,$html.ext)"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:value-of select="concat('rh-',$id,$html.ext)"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+    
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/toc.xsl b/applications/content/template/docbook/xhtml/toc.xsl
new file mode 100644
index 0000000..21921fc
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/toc.xsl
@@ -0,0 +1,332 @@
+<?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">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set/toc | book/toc | part/toc">
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="parent::*"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Do not output the toc element if one is already generated
+       by the use of $generate.toc parameter, or if
+       generating a source toc is turned off -->
+  <xsl:if test="not(contains($toc.params, 'toc')) and                 ($process.source.toc != 0 or $process.empty.source.toc != 0)">
+    <xsl:variable name="content">
+      <xsl:choose>
+        <xsl:when test="* and $process.source.toc != 0">
+          <xsl:apply-templates/>
+        </xsl:when>
+        <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
+          <!-- trick to switch context node to parent element -->
+          <xsl:for-each select="parent::*">
+            <xsl:choose>
+              <xsl:when test="self::set">
+                <xsl:call-template name="set.toc">
+                  <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="self::book">
+                <xsl:call-template name="division.toc">
+                  <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="self::part">
+                <xsl:call-template name="division.toc">
+                  <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+                </xsl:call-template>
+              </xsl:when>
+            </xsl:choose>
+          </xsl:for-each>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:if test="string-length(normalize-space($content)) != 0">
+      <xsl:copy-of select="$content"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+  
+<xsl:template match="chapter/toc | appendix/toc | preface/toc | article/toc">
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="parent::*"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Do not output the toc element if one is already generated
+       by the use of $generate.toc parameter, or if
+       generating a source toc is turned off -->
+  <xsl:if test="not(contains($toc.params, 'toc')) and                 ($process.source.toc != 0 or $process.empty.source.toc != 0)">
+    <xsl:choose>
+      <xsl:when test="* and $process.source.toc != 0">
+        <div>
+          <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:call-template name="id.attribute"/>
+          <xsl:apply-templates select="title"/> 
+          <dl>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:apply-templates select="*[not(self::title)]"/> 
+          </dl>
+        </div>
+        <xsl:call-template name="component.toc.separator"/>
+      </xsl:when>
+      <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
+        <!-- trick to switch context node to section element -->
+        <xsl:for-each select="parent::*">
+          <xsl:call-template name="component.toc">
+            <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+          </xsl:call-template>
+        </xsl:for-each>
+        <xsl:call-template name="component.toc.separator"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="section/toc                     |sect1/toc                     |sect2/toc                     |sect3/toc                     |sect4/toc                     |sect5/toc">
+
+  <xsl:variable name="toc.params">
+    <xsl:call-template name="find.path.params">
+      <xsl:with-param name="node" select="parent::*"/>
+      <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Do not output the toc element if one is already generated
+       by the use of $generate.toc parameter, or if
+       generating a source toc is turned off -->
+  <xsl:if test="not(contains($toc.params, 'toc')) and                 ($process.source.toc != 0 or $process.empty.source.toc != 0)">
+    <xsl:choose>
+      <xsl:when test="* and $process.source.toc != 0">
+        <div>
+          <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:call-template name="id.attribute"/>
+          <xsl:apply-templates select="title"/> 
+          <dl>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:apply-templates select="*[not(self::title)]"/> 
+          </dl>
+        </div>
+        <xsl:call-template name="section.toc.separator"/>
+      </xsl:when>
+      <xsl:when test="count(*) = 0 and $process.empty.source.toc != 0">
+        <!-- trick to switch context node to section element -->
+        <xsl:for-each select="parent::*">
+          <xsl:call-template name="section.toc">
+            <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/>
+          </xsl:call-template>
+        </xsl:for-each>
+        <xsl:call-template name="section.toc.separator"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="tocpart|tocchap                      |toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+  <xsl:variable name="sub-toc">
+    <xsl:if test="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+      <xsl:choose>
+        <xsl:when test="$toc.list.type = 'dl'">
+          <dd>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+              <xsl:apply-templates select="." mode="common.html.attributes"/>
+              <xsl:apply-templates select="tocchap|toclevel1|toclevel2|                                            toclevel3|toclevel4|toclevel5"/>
+            </xsl:element>
+          </dd>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:apply-templates select="tocchap|toclevel1|toclevel2|                                          toclevel3|toclevel4|toclevel5"/>
+          </xsl:element>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:apply-templates select="tocentry[position() != last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">
+      <dt>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:apply-templates select="tocentry[position() = last()]"/>
+      </dt>
+      <xsl:copy-of select="$sub-toc"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <li>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:apply-templates select="tocentry[position() = last()]"/>
+        <xsl:copy-of select="$sub-toc"/>
+      </li>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tocentry|tocdiv|lotentry|tocfront|tocback">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">
+      <dt>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="tocentry-content"/>
+      </dt>
+    </xsl:when>
+    <xsl:otherwise>
+      <li>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="tocentry-content"/>
+      </li>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tocentry[position() = last()]" priority="2">
+  <xsl:call-template name="tocentry-content"/>
+</xsl:template>
+
+<xsl:template name="tocentry-content">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <xsl:when test="@linkend">
+      <xsl:call-template name="check.id.unique">
+        <xsl:with-param name="linkend" select="@linkend"/>
+      </xsl:call-template>
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates/>
+      </a>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="toc/title">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="toc/subtitle">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="toc/titleabbrev">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- A lot element must have content, because there is no attribute
+     to select what kind of list should be generated -->
+<xsl:template match="book/lot | part/lot">
+  <!-- Don't generate a page sequence unless there is content -->
+  <xsl:variable name="content">
+    <xsl:choose>
+      <xsl:when test="* and $process.source.toc != 0">
+        <div>
+          <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:apply-templates/>
+        </div>
+      </xsl:when>
+      <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
+        <xsl:call-template name="process.empty.lot"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="string-length(normalize-space($content)) != 0">
+    <xsl:copy-of select="$content"/>
+  </xsl:if>
+</xsl:template>
+  
+<xsl:template match="chapter/lot | appendix/lot | preface/lot | article/lot">
+  <xsl:choose>
+    <xsl:when test="* and $process.source.toc != 0">
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:apply-templates/>
+      </div>
+      <xsl:call-template name="component.toc.separator"/>
+    </xsl:when>
+    <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
+      <xsl:call-template name="process.empty.lot"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="section/lot                     |sect1/lot                     |sect2/lot                     |sect3/lot                     |sect4/lot                     |sect5/lot">
+  <xsl:choose>
+    <xsl:when test="* and $process.source.toc != 0">
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:apply-templates/>
+      </div>
+      <xsl:call-template name="section.toc.separator"/>
+    </xsl:when>
+    <xsl:when test="not(child::*) and $process.empty.source.toc != 0">
+      <xsl:call-template name="process.empty.lot"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.empty.lot">
+  <!-- An empty lot element does not provide any information to indicate
+       what should be included in it.  You can customize this
+       template to generate a lot based on @role or something -->
+  <xsl:message>
+    <xsl:text>Warning: don't know what to generate for </xsl:text>
+    <xsl:text>lot that has no children.</xsl:text>
+  </xsl:message>
+</xsl:template>
+
+<xsl:template match="lot/title">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="lot/subtitle">
+  <div>
+    <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="lot/titleabbrev">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/verbatim.xsl b/applications/content/template/docbook/xhtml/verbatim.xsl
new file mode 100644
index 0000000..4eb1b80
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/verbatim.xsl
@@ -0,0 +1,388 @@
+<?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:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim" xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="sverb xverb lxslt exsl" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- XSLTHL highlighting is turned off by default. See highlighting/README
+     for instructions on how to turn on XSLTHL -->
+<xsl:template name="apply-highlighting">
+    <xsl:apply-templates/>
+</xsl:template>
+
+<lxslt:component prefix="xverb" functions="numberLines"/>
+
+<xsl:template match="programlisting|screen|synopsis">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:variable name="div.element">pre</xsl:variable>
+
+  <xsl:if test="$shade.verbatim != 0">
+    <xsl:message>
+      <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text>
+      <xsl:text>Use CSS instead,</xsl:text>
+    </xsl:message>
+    <xsl:message>
+      <xsl:text>for example: pre.</xsl:text>
+      <xsl:value-of select="local-name(.)"/>
+      <xsl:text> { background-color: #E0E0E0; }</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'                     and @linenumbering = 'numbered'                     and $use.extensions != '0'                     and $linenumbering.extension != '0'">
+      <xsl:variable name="rtf">
+        <xsl:choose>
+          <xsl:when test="$highlight.source != 0">
+            <xsl:call-template name="apply-highlighting"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+      <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="@width != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="@width"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:call-template name="number.rtf.lines">
+          <xsl:with-param name="rtf" select="$rtf"/>
+        </xsl:call-template>
+      </xsl:element>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:if test="@width != ''">
+          <xsl:attribute name="width">
+            <xsl:value-of select="@width"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:choose>
+          <xsl:when test="$highlight.source != 0">
+            <xsl:call-template name="apply-highlighting"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:element>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="literallayout">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:if test="$shade.verbatim != 0 and @class='monospaced'">
+    <xsl:message>
+      <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text>
+      <xsl:text>Use CSS instead,</xsl:text>
+    </xsl:message>
+    <xsl:message>
+      <xsl:text>for example: pre.</xsl:text>
+      <xsl:value-of select="local-name(.)"/>
+      <xsl:text> { background-color: #E0E0E0; }</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'                     and @linenumbering = 'numbered'                     and $use.extensions != '0'                     and $linenumbering.extension != '0'">
+      <xsl:choose>
+        <xsl:when test="@class='monospaced'">
+          <pre>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf"/>
+            </xsl:call-template>
+          </pre>
+        </xsl:when>
+        <xsl:otherwise>
+          <div>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <p>
+              <xsl:call-template name="number.rtf.lines">
+                <xsl:with-param name="rtf" select="$rtf"/>
+              </xsl:call-template>
+            </p>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="@class='monospaced'">
+          <pre>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:copy-of select="$rtf"/>
+          </pre>
+        </xsl:when>
+        <xsl:otherwise>
+          <div>
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <p>
+              <xsl:call-template name="make-verbatim">
+                <xsl:with-param name="rtf" select="$rtf"/>
+              </xsl:call-template>
+            </p>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="address">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'                     and @linenumbering = 'numbered'                     and $use.extensions != '0'                     and $linenumbering.extension != '0'">
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <p>
+          <xsl:call-template name="number.rtf.lines">
+            <xsl:with-param name="rtf" select="$rtf"/>
+          </xsl:call-template>
+        </p>
+      </div>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <div>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
+        <p>
+          <xsl:call-template name="make-verbatim">
+            <xsl:with-param name="rtf" select="$rtf"/>
+          </xsl:call-template>
+        </p>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="number.rtf.lines">
+  <xsl:param name="rtf" select="''"/>
+  <xsl:param name="pi.context" select="."/>
+
+  <!-- Save the global values -->
+  <xsl:variable name="global.linenumbering.everyNth" select="$linenumbering.everyNth"/>
+
+  <xsl:variable name="global.linenumbering.separator" select="$linenumbering.separator"/>
+
+  <xsl:variable name="global.linenumbering.width" select="$linenumbering.width"/>
+
+  <!-- Extract the <?dbhtml linenumbering.*?> PI values -->
+  <xsl:variable name="pi.linenumbering.everyNth">
+    <xsl:call-template name="pi.dbhtml_linenumbering.everyNth">
+      <xsl:with-param name="node" select="$pi.context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="pi.linenumbering.separator">
+    <xsl:call-template name="pi.dbhtml_linenumbering.separator">
+      <xsl:with-param name="node" select="$pi.context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="pi.linenumbering.width">
+    <xsl:call-template name="pi.dbhtml_linenumbering.width">
+      <xsl:with-param name="node" select="$pi.context"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Construct the 'in-context' values -->
+  <xsl:variable name="linenumbering.everyNth">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.everyNth != ''">
+        <xsl:value-of select="$pi.linenumbering.everyNth"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.everyNth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.separator">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.separator != ''">
+        <xsl:value-of select="$pi.linenumbering.separator"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.separator"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.width">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.width != ''">
+        <xsl:value-of select="$pi.linenumbering.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.startinglinenumber">
+    <xsl:choose>
+      <xsl:when test="$pi.context/@startinglinenumber">
+        <xsl:value-of select="$pi.context/@startinglinenumber"/>
+      </xsl:when>
+      <xsl:when test="$pi.context/@continuation='continues'">
+        <xsl:variable name="lastLine">
+          <xsl:choose>
+            <xsl:when test="$pi.context/self::programlisting">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings" select="preceding::programlisting[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::screen">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings" select="preceding::screen[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::literallayout">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings" select="preceding::literallayout[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::address">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings" select="preceding::address[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:when test="$pi.context/self::synopsis">
+              <xsl:call-template name="lastLineNumber">
+                <xsl:with-param name="listings" select="preceding::synopsis[@linenumbering='numbered']"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message>
+                <xsl:text>Unexpected verbatim environment: </xsl:text>
+                <xsl:value-of select="local-name($pi.context)"/>
+              </xsl:message>
+              <xsl:value-of select="0"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+
+        <xsl:value-of select="$lastLine + 1"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="function-available('sverb:numberLines')">
+      <xsl:copy-of select="sverb:numberLines($rtf)"/>
+    </xsl:when>
+    <xsl:when test="function-available('xverb:numberLines')">
+      <xsl:copy-of select="xverb:numberLines($rtf)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>No numberLines function available.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="make-verbatim">
+  <xsl:param name="rtf"/>
+
+  <!-- I want to make this RTF verbatim. There are two possibilities: either
+       I have access to the exsl:node-set extension function and I can "do it right"
+       or I have to rely on CSS. -->
+
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:apply-templates select="exsl:node-set($rtf)" mode="make.verbatim.mode"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <span style="white-space: pre;">
+        <xsl:copy-of select="$rtf"/>
+      </span>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ======================================================================== -->
+
+<xsl:template name="lastLineNumber">
+  <xsl:param name="listings"/>
+  <xsl:param name="number" select="0"/>
+
+  <xsl:variable name="lines">
+    <xsl:call-template name="countLines">
+      <xsl:with-param name="listing" select="string($listings[1])"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not($listings)">
+      <xsl:value-of select="$number"/>
+    </xsl:when>
+    <xsl:when test="$listings[1]/@startinglinenumber">
+      <xsl:value-of select="$number + $listings[1]/@startinglinenumber + $lines - 1"/>
+    </xsl:when>
+    <xsl:when test="$listings[1]/@continuation='continues'">
+      <xsl:call-template name="lastLineNumber">
+        <xsl:with-param name="listings" select="listings[position() &gt; 1]"/>
+        <xsl:with-param name="number" select="$number + $lines"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$lines"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="countLines">
+  <xsl:param name="listing"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($listing, '&#10;')">
+      <xsl:call-template name="countLines">
+        <xsl:with-param name="listing" select="substring-after($listing, '&#10;')"/>
+        <xsl:with-param name="count" select="$count + 1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$count"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml/xref.xsl b/applications/content/template/docbook/xhtml/xref.xsl
new file mode 100644
index 0000000..642a33c
--- /dev/null
+++ b/applications/content/template/docbook/xhtml/xref.xsl
@@ -0,0 +1,1340 @@
+<?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:suwl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.UnwrapLinks" xmlns:exsl="http://exslt.org/common" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="suwl exsl xlink" version="1.0">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- Use internal variable for olink xlink role for consistency -->
+<xsl:variable name="xolink.role">http://docbook.org/xlink/role/olink</xsl:variable>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="anchor">
+  <xsl:choose>
+    <xsl:when test="$generate.id.attributes = 0">
+      <xsl:call-template name="anchor"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <span>
+        <xsl:call-template name="id.attribute"/>
+      </span>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="xref" name="xref">
+  <xsl:param name="xhref" select="@xlink:href"/>
+  <!-- is the @xlink:href a local idref link? -->
+  <xsl:param name="xlink.idref">
+    <xsl:if test="starts-with($xhref,'#')                   and (not(contains($xhref,'('))                   or starts-with($xhref, '#xpointer(id('))">
+      <xsl:call-template name="xpointer.idref">
+        <xsl:with-param name="xpointer" select="$xhref"/>
+      </xsl:call-template>
+   </xsl:if>
+  </xsl:param>
+  <xsl:param name="xlink.targets" select="key('id',$xlink.idref)"/>
+  <xsl:param name="linkend.targets" select="key('id',@linkend)"/>
+  <xsl:param name="target" select="($xlink.targets | $linkend.targets)[1]"/>
+
+  <xsl:variable name="xrefstyle">
+    <xsl:choose>
+      <xsl:when test="@role and not(@xrefstyle)                        and $use.role.as.xrefstyle != 0">
+        <xsl:value-of select="@role"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@xrefstyle"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:variable name="content">
+    <xsl:choose>
+  
+      <xsl:when test="@endterm">
+        <xsl:variable name="etargets" select="key('id',@endterm)"/>
+        <xsl:variable name="etarget" select="$etargets[1]"/>
+        <xsl:choose>
+          <xsl:when test="count($etarget) = 0">
+            <xsl:message>
+              <xsl:value-of select="count($etargets)"/>
+              <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+              <xsl:value-of select="@endterm"/>
+            </xsl:message>
+            <xsl:text>???</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="$etarget" mode="endterm"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+  
+      <xsl:when test="$target/@xreflabel">
+        <xsl:call-template name="xref.xreflabel">
+          <xsl:with-param name="target" select="$target"/>
+        </xsl:call-template>
+      </xsl:when>
+  
+      <xsl:when test="$target">
+        <xsl:if test="not(parent::citation)">
+          <xsl:apply-templates select="$target" mode="xref-to-prefix"/>
+        </xsl:if>
+  
+        <xsl:apply-templates select="$target" mode="xref-to">
+          <xsl:with-param name="referrer" select="."/>
+          <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        </xsl:apply-templates>
+  
+        <xsl:if test="not(parent::citation)">
+          <xsl:apply-templates select="$target" mode="xref-to-suffix"/>
+        </xsl:if>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <xsl:message>
+          <xsl:text>ERROR: xref linking to </xsl:text>
+          <xsl:value-of select="@linkend|@xlink:href"/>
+          <xsl:text> has no generated link text.</xsl:text>
+        </xsl:message>
+        <xsl:text>???</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- biblioref handled largely like an xref -->
+<!-- To be done: add support for begin, end, and units attributes -->
+<xsl:template match="biblioref">
+  <xsl:variable name="targets" select="key('id',@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:choose>
+    <xsl:when test="count($target) = 0">
+      <xsl:message>
+        <xsl:text>XRef to nonexistent id: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+      </xsl:message>
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+
+    <xsl:when test="@endterm">
+      <xsl:variable name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select="$target"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="etargets" select="key('id',@endterm)"/>
+      <xsl:variable name="etarget" select="$etargets[1]"/>
+      <xsl:choose>
+        <xsl:when test="count($etarget) = 0">
+          <xsl:message>
+            <xsl:value-of select="count($etargets)"/>
+            <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+            <xsl:value-of select="@endterm"/>
+          </xsl:message>
+          <a href="{$href}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:text>???</xsl:text>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <a href="{$href}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:apply-templates select="$etarget" mode="endterm"/>
+          </a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="$target/@xreflabel">
+      <a>
+        <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:call-template name="xref.xreflabel">
+          <xsl:with-param name="target" select="$target"/>
+        </xsl:call-template>
+      </a>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:variable name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select="$target"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:if test="not(parent::citation)">
+        <xsl:apply-templates select="$target" mode="xref-to-prefix"/>
+      </xsl:if>
+
+      <a href="{$href}">
+        <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:if test="$target/title or $target/info/title">
+          <xsl:attribute name="title">
+            <xsl:apply-templates select="$target" mode="xref-title"/>
+          </xsl:attribute>
+        </xsl:if>
+        <xsl:apply-templates select="$target" mode="xref-to">
+          <xsl:with-param name="referrer" select="."/>
+          <xsl:with-param name="xrefstyle">
+            <xsl:choose>
+              <xsl:when test="@role and not(@xrefstyle) and $use.role.as.xrefstyle != 0">
+                <xsl:value-of select="@role"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="@xrefstyle"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:apply-templates>
+      </a>
+
+      <xsl:if test="not(parent::citation)">
+        <xsl:apply-templates select="$target" mode="xref-to-suffix"/>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="endterm">
+  <!-- Process the children of the endterm element -->
+  <xsl:variable name="endterm">
+    <xsl:apply-templates select="child::node()" mode="no.anchor.mode"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$exsl.node.set.available != 0">
+      <xsl:apply-templates select="exsl:node-set($endterm)" mode="remove-ids"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$endterm"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="remove-ids">
+  <xsl:choose>
+    <!-- handle html or xhtml -->
+    <xsl:when test="local-name(.) = 'a'                     and (namespace-uri(.) = ''                          or namespace-uri(.) = 'http://www.w3.org/1999/xhtml')">
+      <xsl:choose>
+        <xsl:when test="(@name and count(@*) = 1)                         or (@id and count(@*) = 1)                         or (@xml:id and count(@*) = 1)                         or (@xml:id and @name and count(@*) = 2)                         or (@id and @name and count(@*) = 2)">
+          <xsl:message>suppress anchor</xsl:message>
+          <!-- suppress the whole thing -->
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:copy>
+            <xsl:for-each select="@*">
+              <xsl:choose>
+                <xsl:when test="local-name(.) != 'name' and local-name(.) != 'id'">
+                  <xsl:copy/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:message>removing <xsl:value-of select="local-name(.)"/></xsl:message>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:for-each>
+          </xsl:copy>
+          <xsl:apply-templates mode="remove-ids"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy>
+        <xsl:for-each select="@*">
+          <xsl:choose>
+            <xsl:when test="local-name(.) != 'id'">
+              <xsl:copy/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message>removing <xsl:value-of select="local-name(.)"/></xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:for-each>
+        <xsl:apply-templates mode="remove-ids"/>
+      </xsl:copy>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="xref-to-prefix"/>
+<xsl:template match="*" mode="xref-to-suffix"/>
+
+<xsl:template match="*" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:if test="$verbose">
+    <xsl:message>
+      <xsl:text>Don't know what gentext to create for xref to: "</xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:text>", ("</xsl:text>
+      <xsl:value-of select="(@id|@xml:id)[1]"/>
+      <xsl:text>")</xsl:text>
+    </xsl:message>
+  </xsl:if>
+  <xsl:text>???</xsl:text>
+</xsl:template>
+
+<xsl:template match="title" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <!-- if you xref to a title, xref to the parent... -->
+  <xsl:choose>
+    <!-- FIXME: how reliable is this? -->
+    <xsl:when test="contains(local-name(parent::*), 'info')">
+      <xsl:apply-templates select="parent::*[2]" mode="xref-to">
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="parent::*" mode="xref-to">
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="abstract|authorblurb|personblurb|bibliodiv|bibliomset                      |biblioset|blockquote|calloutlist|caution|colophon                      |constraintdef|formalpara|glossdiv|important|indexdiv                      |itemizedlist|legalnotice|lot|msg|msgexplan|msgmain                      |msgrel|msgset|msgsub|note|orderedlist|partintro                      |productionset|qandadiv|refsynopsisdiv|segmentedlist                      |set|setindex|sidebar|tip|toc|variablelist|warning" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <!-- catch-all for things with (possibly optional) titles -->
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="author|editor|othercredit|personname" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="person.name.list"/>
+</xsl:template>
+
+<xsl:template match="figure|example|table|equation" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="procedure" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="task" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-to">
+  <xsl:apply-templates select="(.//command)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-to">
+  <xsl:apply-templates select="(.//function)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="dedication|acknowledgements|preface|chapter|appendix|article" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to-prefix">
+  <xsl:text>[</xsl:text>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to-suffix">
+  <xsl:text>]</xsl:text>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <!-- handles both biblioentry and bibliomixed -->
+  <xsl:choose>
+    <xsl:when test="string(.) = ''">
+      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
+      <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
+      <xsl:variable name="entry" select="$bib/bibliography/                                     *[@id=$id or @xml:id=$id][1]"/>
+      <xsl:choose>
+        <xsl:when test="$entry">
+          <xsl:choose>
+            <xsl:when test="$bibliography.numbered != 0">
+              <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/>
+            </xsl:when>
+            <xsl:when test="local-name($entry/*[1]) = 'abbrev'">
+              <xsl:apply-templates select="$entry/*[1]" mode="no.anchor.mode"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="(@id|@xml:id)[1]"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>No bibliography entry: </xsl:text>
+            <xsl:value-of select="$id"/>
+            <xsl:text> found in </xsl:text>
+            <xsl:value-of select="$bibliography.collection"/>
+          </xsl:message>
+          <xsl:value-of select="(@id|@xml:id)[1]"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$bibliography.numbered != 0">
+          <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/>
+        </xsl:when>
+        <xsl:when test="local-name(*[1]) = 'abbrev'">
+          <xsl:apply-templates select="*[1]" mode="no.anchor.mode"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="(@id|@xml:id)[1]"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossary" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="glossentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+  <xsl:choose>
+    <xsl:when test="$glossentry.show.acronym = 'primary'">
+      <xsl:choose>
+        <xsl:when test="acronym|abbrev">
+          <xsl:apply-templates select="(acronym|abbrev)[1]" mode="no.anchor.mode"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="glossterm[1]" mode="xref-to">
+            <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+            <xsl:with-param name="referrer" select="$referrer"/>
+            <xsl:with-param name="verbose" select="$verbose"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="glossterm[1]" mode="xref-to">
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossterm|firstterm" mode="xref-to">
+  <xsl:apply-templates mode="no.anchor.mode"/>
+</xsl:template>
+
+<xsl:template match="index" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="listitem" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="section|simplesect                      |sect1|sect2|sect3|sect4|sect5                      |refsect1|refsect2|refsect3|refsection" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+  <!-- FIXME: What about "in Chapter X"? -->
+</xsl:template>
+
+<xsl:template match="topic" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+  <!-- FIXME: What about "in Chapter X"? -->
+</xsl:template>
+
+<xsl:template match="qandaset" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="question[1]" mode="xref-to">
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="question|answer" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="string-length(label) != 0">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <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:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="part|reference" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:choose>
+    <xsl:when test="refmeta/refentrytitle">
+      <xsl:apply-templates select="refmeta/refentrytitle" mode="no.anchor.mode"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="refnamediv/refname[1]" mode="no.anchor.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates select="refmeta/manvolnum" mode="no.anchor.mode"/>
+</xsl:template>
+
+<xsl:template match="refnamediv" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="refname[1]" mode="xref-to">
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refname" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates mode="xref-to"/>
+</xsl:template>
+
+<xsl:template match="step" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Step'"/>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="." mode="number"/>
+</xsl:template>
+
+<xsl:template match="varlistentry" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:apply-templates select="term[1]" mode="xref-to">
+    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+    <xsl:with-param name="referrer" select="$referrer"/>
+    <xsl:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="primary|secondary|tertiary" mode="xref-to">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="xref-to">
+  <xsl:value-of select="primary"/>
+</xsl:template>
+
+<xsl:template match="varlistentry/term" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:apply-templates mode="no.anchor.mode"/>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:apply-templates select="." mode="callout-bug"/>
+</xsl:template>
+
+<xsl:template match="area|areaset" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="callout-bug">
+    <xsl:with-param name="conum">
+      <xsl:apply-templates select="." mode="conumber"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="book" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <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:with-param name="verbose" select="$verbose"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- These are elements for which no link text exists, so an xref to one
+     uses the xrefstyle attribute if specified, or if not it falls back
+     to the container element's link text -->
+<xsl:template match="para|phrase|simpara|anchor|quote" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="verbose" select="1"/>
+
+  <xsl:variable name="context" select="(ancestor::simplesect                                        |ancestor::section                                        |ancestor::sect1                                        |ancestor::sect2                                        |ancestor::sect3                                        |ancestor::sect4                                        |ancestor::sect5                                        |ancestor::topic                                        |ancestor::refsection                                        |ancestor::refsect1                                        |ancestor::refsect2                                        |ancestor::refsect3                                        |ancestor::chapter                                        |ancestor::appendix                                        |ancestor::preface                                        |ancestor::partintro                                        |ancestor::dedication                                        |ancestor::acknowledgements                                        |ancestor::colophon                                        |ancestor::bibliography                                        |ancestor::index                                        |ancestor::glossary                                        |ancestor::glossentry                                        |ancestor::listitem                                        |ancestor::varlistentry)[last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="$xrefstyle != ''">
+      <xsl:apply-templates select="." mode="object.xref.markup">
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="$context" mode="xref-to">
+        <xsl:with-param name="purpose" select="'xref'"/>
+        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
+        <xsl:with-param name="referrer" select="$referrer"/>
+        <xsl:with-param name="verbose" select="$verbose"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="object.title.markup"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="author" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:call-template name="person.name"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:call-template name="person.name.list"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="(.//command)[1]" mode="xref"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="(.//function)[1]" mode="xref"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-title">
+  <!-- handles both biblioentry and bibliomixed -->
+  <xsl:variable name="title">
+    <xsl:text>[</xsl:text>
+    <xsl:choose>
+      <xsl:when test="local-name(*[1]) = 'abbrev'">
+        <xsl:apply-templates select="*[1]" mode="no.anchor.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="(@id|@xml:id)[1]"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>]</xsl:text>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="step" mode="xref-title">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Step'"/>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="." mode="number"/>
+</xsl:template>
+
+<xsl:template match="step[not(./title)]" mode="title.markup">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Step'"/>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="." mode="number"/>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="callout-bug"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="link" name="link">
+  <xsl:param name="linkend" select="@linkend"/>
+  <xsl:param name="a.target"/>
+  <xsl:param name="xhref" select="@xlink:href"/>
+
+  <xsl:variable name="content">
+    <xsl:call-template name="anchor"/>
+    <xsl:choose>
+      <xsl:when test="count(child::node()) &gt; 0">
+        <!-- If it has content, use it -->
+        <xsl:apply-templates mode="no.anchor.mode"/>
+      </xsl:when>
+      <!-- else look for an endterm -->
+      <xsl:when test="@endterm">
+        <xsl:variable name="etargets" select="key('id',@endterm)"/>
+        <xsl:variable name="etarget" select="$etargets[1]"/>
+        <xsl:choose>
+          <xsl:when test="count($etarget) = 0">
+            <xsl:message>
+              <xsl:value-of select="count($etargets)"/>
+              <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+              <xsl:value-of select="@endterm"/>
+            </xsl:message>
+            <xsl:text>???</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+              <xsl:apply-templates select="$etarget" mode="endterm"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <!-- Use the xlink:href if no other text -->
+      <xsl:when test="@xlink:href">
+        <xsl:value-of select="@xlink:href"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:message>
+          <xsl:text>Link element has no content and no Endterm. </xsl:text>
+          <xsl:text>Nothing to show in the link to </xsl:text>
+          <xsl:value-of select="(@xlink:href|@linkend)[1]"/>
+        </xsl:message>
+        <xsl:text>???</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="simple.xlink">
+    <xsl:with-param name="node" select="."/>
+    <xsl:with-param name="linkend" select="$linkend"/>
+    <xsl:with-param name="content" select="$content"/>
+    <xsl:with-param name="a.target" select="$a.target"/>
+    <xsl:with-param name="xhref" select="$xhref"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template match="ulink" name="ulink">
+  <xsl:param name="url" select="@url"/>
+  <xsl:variable name="link">
+    <a>
+      <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:if test="@id or @xml:id">
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <xsl:attribute name="id">
+              <xsl:value-of select="(@id|@xml:id)[1]"/>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:attribute name="id">
+              <xsl:value-of select="(@id|@xml:id)[1]"/>
+            </xsl:attribute>
+          </xsl:otherwise>
+        </xsl:choose>
+      </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 mode="no.anchor.mode"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </a>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="function-available('suwl:unwrapLinks')">
+      <xsl:copy-of select="suwl:unwrapLinks($link)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$link"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="olink" name="olink">
+  <!-- olink content may be passed in from xlink olink -->
+  <xsl:param name="content" select="NOTANELEMENT"/>
+
+  <xsl:call-template name="anchor"/>
+
+  <xsl:variable name="localinfo" select="@localinfo"/>
+
+  <xsl:choose>
+    <!-- olinks resolved by stylesheet and target database -->
+    <xsl:when test="@targetdoc or @targetptr or                     (@xlink:role=$xolink.role and                      contains(@xlink:href, '#') )">
+
+      <xsl:variable name="targetdoc.att">
+        <xsl:choose>
+          <xsl:when test="@targetdoc != ''">
+            <xsl:value-of select="@targetdoc"/>
+          </xsl:when>
+          <xsl:when test="@xlink:role=$xolink.role and                        contains(@xlink:href, '#')">
+            <xsl:value-of select="substring-before(@xlink:href, '#')"/>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="targetptr.att">
+        <xsl:choose>
+          <xsl:when test="@targetptr != ''">
+            <xsl:value-of select="@targetptr"/>
+          </xsl:when>
+          <xsl:when test="@xlink:role=$xolink.role and                        contains(@xlink:href, '#')">
+            <xsl:value-of select="substring-after(@xlink:href, '#')"/>
+          </xsl:when>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="olink.lang">
+        <xsl:call-template name="l10n.language">
+          <xsl:with-param name="xref-context" select="true()"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:variable name="target.database.filename">
+        <xsl:call-template name="select.target.database">
+          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+          <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:variable name="target.database" select="document($target.database.filename,/)"/>
+    
+      <xsl:if test="$olink.debug != 0">
+        <xsl:message>
+          <xsl:text>Olink debug: root element of target.database '</xsl:text>
+          <xsl:value-of select="$target.database.filename"/>
+          <xsl:text>' is '</xsl:text>
+          <xsl:value-of select="local-name($target.database/*[1])"/>
+          <xsl:text>'.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+    
+      <xsl:variable name="olink.key">
+        <xsl:call-template name="select.olink.key">
+          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
+          <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+        </xsl:call-template>
+      </xsl:variable>
+    
+      <xsl:if test="string-length($olink.key) = 0">
+        <xsl:message>
+          <xsl:text>Error: unresolved olink: </xsl:text>
+          <xsl:text>targetdoc/targetptr = '</xsl:text>
+          <xsl:value-of select="$targetdoc.att"/>
+          <xsl:text>/</xsl:text>
+          <xsl:value-of select="$targetptr.att"/>
+          <xsl:text>'.</xsl:text>
+        </xsl:message>
+      </xsl:if>
+
+      <xsl:variable name="href">
+        <xsl:call-template name="make.olink.href">
+          <xsl:with-param name="olink.key" select="$olink.key"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="hottext">
+        <xsl:choose>
+          <xsl:when test="string-length($content) != 0">
+            <xsl:copy-of select="$content"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="olink.hottext">
+              <xsl:with-param name="olink.key" select="$olink.key"/>
+              <xsl:with-param name="olink.lang" select="$olink.lang"/>
+              <xsl:with-param name="target.database" select="$target.database"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="olink.docname.citation">
+        <xsl:call-template name="olink.document.citation">
+          <xsl:with-param name="olink.key" select="$olink.key"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:variable name="olink.page.citation">
+        <xsl:call-template name="olink.page.citation">
+          <xsl:with-param name="olink.key" select="$olink.key"/>
+          <xsl:with-param name="target.database" select="$target.database"/>
+          <xsl:with-param name="olink.lang" select="$olink.lang"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$href != ''">
+          <a href="{$href}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:copy-of select="$hottext"/>
+          </a>
+          <xsl:copy-of select="$olink.page.citation"/>
+          <xsl:copy-of select="$olink.docname.citation"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <span class="olink">
+            <xsl:call-template name="id.attribute"/>
+            <xsl:copy-of select="$hottext"/>
+          </span>
+          <xsl:copy-of select="$olink.page.citation"/>
+          <xsl:copy-of select="$olink.docname.citation"/>
+        </xsl:otherwise>
+      </xsl:choose>
+
+    </xsl:when>
+
+    <!-- Or use old olink mechanism -->
+    <xsl:otherwise>
+      <xsl:variable name="href">
+        <xsl:choose>
+          <xsl:when test="@linkmode">
+            <!-- use the linkmode to get the base URI, use localinfo as fragid -->
+            <xsl:variable name="modespec" select="key('id',@linkmode)"/>
+            <xsl:if test="count($modespec) != 1                           or local-name($modespec) != 'modespec'">
+              <xsl:message>Warning: olink linkmode pointer is wrong.</xsl:message>
+            </xsl:if>
+            <xsl:value-of select="$modespec"/>
+            <xsl:if test="@localinfo">
+              <xsl:text>#</xsl:text>
+              <xsl:value-of select="@localinfo"/>
+            </xsl:if>
+          </xsl:when>
+          <xsl:when test="@type = 'href'">
+            <xsl:call-template name="olink.outline">
+              <xsl:with-param name="outline.base.uri" select="unparsed-entity-uri(@targetdocent)"/>
+              <xsl:with-param name="localinfo" select="@localinfo"/>
+              <xsl:with-param name="return" select="'href'"/>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$olink.resolver"/>
+            <xsl:text>?</xsl:text>
+            <xsl:value-of select="$olink.sysid"/>
+            <xsl:value-of select="unparsed-entity-uri(@targetdocent)"/>
+            <!-- XSL gives no access to the public identifier (grumble...) -->
+            <xsl:if test="@localinfo">
+              <xsl:text>&amp;</xsl:text>
+              <xsl:value-of select="$olink.fragid"/>
+              <xsl:value-of select="@localinfo"/>
+            </xsl:if>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+    
+      <xsl:choose>
+        <xsl:when test="$href != ''">
+          <a href="{$href}">
+            <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
+            <xsl:call-template name="olink.hottext"/>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="olink.hottext"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="pagenumber.markup">
+  <!-- no-op in HTML -->
+</xsl:template>
+
+
+<xsl:template name="olink.outline">
+  <xsl:param name="outline.base.uri"/>
+  <xsl:param name="localinfo"/>
+  <xsl:param name="return" select="href"/>
+
+  <xsl:variable name="outline-file" select="concat($outline.base.uri,                                $olink.outline.ext)"/>
+
+  <xsl:variable name="outline" select="document($outline-file,.)/div"/>
+
+  <xsl:variable name="node-href">
+    <xsl:choose>
+      <xsl:when test="$localinfo != ''">
+        <xsl:variable name="node" select="$outline//                                    *[@id=$localinfo or @xml:id=$localinfo]"/>
+        <xsl:value-of select="$node/@href"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$outline/@href"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="node-xref">
+    <xsl:choose>
+      <xsl:when test="$localinfo != ''">
+        <xsl:variable name="node" select="$outline//                                *[@id=$localinfo or @xml:id=$localinfo]"/>
+        <xsl:copy-of select="$node/xref"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$outline/xref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$return = 'href'">
+      <xsl:value-of select="$node-href"/>
+    </xsl:when>
+    <xsl:when test="$return = 'xref'">
+      <xsl:value-of select="$node-xref"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$node-xref"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="xref.xreflabel">
+  <!-- called to process an xreflabel...you might use this to make  -->
+  <!-- xreflabels come out in the right font for different targets, -->
+  <!-- for example. -->
+  <xsl:param name="target" select="."/>
+  <xsl:value-of select="$target/@xreflabel"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="title" mode="xref">
+  <xsl:apply-templates mode="no.anchor.mode"/>
+</xsl:template>
+
+<xsl:template match="command" mode="xref">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="function" mode="xref">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="insert.title.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="title"/>
+
+  <xsl:choose>
+    <!-- FIXME: what about the case where titleabbrev is inside the info? -->
+    <xsl:when test="$purpose = 'xref' and titleabbrev">
+      <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$title"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="chapter|appendix" mode="insert.title.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="title"/>
+
+  <xsl:choose>
+    <xsl:when test="$purpose = 'xref'">
+      <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform">
+        <xsl:copy-of select="$title"/>
+      </em>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$title"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.subtitle.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="subtitle"/>
+
+  <xsl:copy-of select="$subtitle"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.label.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="label"/>
+
+  <xsl:copy-of select="$label"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.pagenumber.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="pagenumber"/>
+
+  <xsl:copy-of select="$pagenumber"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.direction.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="direction"/>
+
+  <xsl:copy-of select="$direction"/>
+</xsl:template>
+
+<xsl:template match="*" mode="insert.olink.docname.markup">
+  <xsl:param name="purpose"/>
+  <xsl:param name="xrefstyle"/>
+  <xsl:param name="docname"/>
+
+  <span class="olinkdocname">
+    <xsl:copy-of select="$docname"/>
+  </span>
+
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml5/README b/applications/content/template/docbook/xhtml5/README
new file mode 100644
index 0000000..c0db6b7
--- /dev/null
+++ b/applications/content/template/docbook/xhtml5/README
@@ -0,0 +1,61 @@
+DocBook stylesheets for HTML5 output 
+=============================================
+
+This directory contains XSL stylesheets
+for generating HTML5 output from DocBook content.
+For information on HTML5, see:
+
+http://dev.w3.org/html5/spec/Overview.html
+
+Note that there is no schema available for HTML5, by design.
+
+The output of these stylesheets is the XML serialization of
+HTML5.  There is no provision for generating the HTML
+serialization of HTML5 with these stylesheets.
+
+These HTML5 stylesheets are also used by the EPUB3
+stylesheets included in this distribution.
+
+These stylesheets are customizations of the
+existing stylesheets in the "xhtml/" directory.
+Using a customization layer enables the HTML5
+stylesheets to inherit all the features of the
+XHTML stylesheets while making the minimum changes
+for them to produce valid HTML5.
+
+If you are processing DocBook 5 document, you should use
+the namespaced version of the stylesheets, with "-ns-"
+in the directory name.
+
+
+Usage
+-----------
+You should be able to apply any of these stylesheet files
+to a DocBook document as with any other DocBook stylesheet:
+
+xhtml5/docbook.xsl         - Single file output.
+xhtml5/chunk.xsl           - Chunked output.
+xhtml5/profile-docbook.xsl - Profiled single file output.
+xhtml5/profile-chunk.xsl   - Profiled chunk output.
+xhtml5/chunkfast.xsl       - Chunked output with precomputed chunks.
+
+Do not attempt to directly use the following two stylesheet files:
+
+xhtml-docbook.xsl
+xhtml-profile-docbook.xsl
+
+Those are copies of the corresponding files in the
+xhtml/ directory, modified to remove the doctype
+declarations in the xsl:output elements.  They were also
+modified to import from the original xhtml/ directory.
+They will produce xhtml output, not HTML5 output.
+They are imported by the xhtml5 stylesheet files.
+
+Testing
+--------------
+
+The HTML5 output of these stylesheets should pass the
+W3C online validator, available here:
+
+http://validator.w3.org/
+
diff --git a/applications/content/template/docbook/xhtml5/chunk.xsl b/applications/content/template/docbook/xhtml5/chunk.xsl
new file mode 100644
index 0000000..e4a5965
--- /dev/null
+++ b/applications/content/template/docbook/xhtml5/chunk.xsl
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+  xmlns:exsl="http://exslt.org/common"
+  xmlns="http://www.w3.org/1999/xhtml"
+  exclude-result-prefixes="exsl"
+  version="1.0">
+
+<!-- $Id$ -->
+
+<!-- This is the main driver stylesheet file.  It imports or
+includes all the components that it needs. -->
+
+<!-- Import the module that customizes docbook elements -->
+<!-- Put any customizations of element content in this module. -->
+<xsl:import href="docbook.xsl"/>
+
+<xsl:import href="../xhtml/chunk-common.xsl"/>
+
+<xsl:include href="../xhtml/chunk-code.xsl"/>
+
+<!-- The following module has templates that override the stock
+     xhtml templates for HTML5 output.  
+     It contains match templates with priority="1" attributes,
+     and named templates.  These override any templates that
+     handle chunking behavior -->
+<xsl:include href="html5-chunk-mods.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml5/chunkfast.xsl b/applications/content/template/docbook/xhtml5/chunkfast.xsl
new file mode 100644
index 0000000..8c2d180
--- /dev/null
+++ b/applications/content/template/docbook/xhtml5/chunkfast.xsl
@@ -0,0 +1,69 @@
+<?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:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="cf exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="chunk.xsl"/>
+<xsl:param name="chunk.fast" select="1"/>
+
+<xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+  <xsl:choose>
+    <xsl:when test="$chunk.fast != 0 and $exsl.node.set.available != 0">
+      <xsl:variable name="genid" select="generate-id()"/>
+
+      <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/>
+
+      <xsl:variable name="prevdiv" select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/>
+      <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/>
+
+      <xsl:variable name="nextdiv" select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/>
+      <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/>
+
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and parent::*">
+          <xsl:apply-imports/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="process-chunk">
+            <xsl:with-param name="prev" select="$prev"/>
+            <xsl:with-param name="next" select="$next"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$onechunk != 0 and not(parent::*)">
+          <xsl:call-template name="chunk-all-sections"/>
+        </xsl:when>
+        <xsl:when test="$onechunk != 0">
+          <xsl:apply-imports/>
+        </xsl:when>
+        <xsl:when test="$chunk.first.sections = 0">
+          <xsl:call-template name="chunk-first-section-with-parent"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="chunk-all-sections"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml5/docbook.css.xml b/applications/content/template/docbook/xhtml5/docbook.css.xml
new file mode 100644
index 0000000..9587979
--- /dev/null
+++ b/applications/content/template/docbook/xhtml5/docbook.css.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<style>
+
+/********************************/
+/* start of styles in block.xsl */
+
+.formalpara-title {
+  font-weight: bold;
+}
+
+div.blockquote-title {
+  font-weight: bold;
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msgmain-title {
+  font-weight: bold;
+}
+
+span.msgsub-title {
+  font-weight: bold;
+}
+
+span.msgrel-title {
+  font-weight: bold;
+}
+
+div.msglevel, div.msgorig, div.msgaud {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msglevel-title, span.msgorig-title, span.msgaud-title {
+  font-weight: bold;
+}
+
+div.msgexplan {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+span.msgexplan-title {
+  font-weight: bold;
+}
+
+/* end of styles in block.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in autotoc.xsl */
+
+
+/* end of styles in autotoc.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in formal.xsl */
+
+div.figure-title {
+  font-weight: bold;
+}
+
+div.example-title {
+  font-weight: bold;
+}
+
+div.equation-title {
+  font-weight: bold;
+}
+
+div.table-title {
+  font-weight: bold;
+}
+
+div.sidebar-title {
+  font-weight: bold;
+}
+
+
+/* end of styles in formal.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in verbatim.xsl */
+
+div.programlisting {
+  white-space: pre;
+  font-family: monospace;
+}
+
+div.screen {
+  white-space: pre;
+  font-family: monospace;
+}
+
+div.synopsis {
+  white-space: pre;
+  font-family: monospace;
+}
+
+/* end of styles in verbatim.xsl */
+/********************************/
+</style>
diff --git a/applications/content/template/docbook/xhtml5/docbook.xsl b/applications/content/template/docbook/xhtml5/docbook.xsl
new file mode 100644
index 0000000..5a9d0c2
--- /dev/null
+++ b/applications/content/template/docbook/xhtml5/docbook.xsl
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE xsl:stylesheet [
+]>
+<xsl:stylesheet 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+  xmlns:exsl="http://exslt.org/common"
+  xmlns="http://www.w3.org/1999/xhtml"
+  xmlns:stbl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Table"
+  xmlns:xtbl="xalan://com.nwalsh.xalan.Table"
+  xmlns:lxslt="http://xml.apache.org/xslt"
+  xmlns:ptbl="http://nwalsh.com/xslt/ext/xsltproc/python/Table"
+  exclude-result-prefixes="exsl stbl xtbl lxslt ptbl"
+  version="1.0">
+
+<!-- $Id$ -->
+<xsl:import href="xhtml-docbook.xsl"/>
+<xsl:include href="html5-element-mods.xsl"/>
+
+<xsl:output method="xml" encoding="UTF-8" />
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml5/html5-chunk-mods.xsl b/applications/content/template/docbook/xhtml5/html5-chunk-mods.xsl
new file mode 100644
index 0000000..f3c9d37
--- /dev/null
+++ b/applications/content/template/docbook/xhtml5/html5-chunk-mods.xsl
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+  xmlns:exsl="http://exslt.org/common"
+  xmlns="http://www.w3.org/1999/xhtml"
+  exclude-result-prefixes="exsl"
+  version="1.0">
+
+<!-- $Id$ -->
+
+<!-- call HTML5  header and footer templates for navigation -->
+<xsl:template name="chunk-element-content">
+  <xsl:param name="prev"/>
+  <xsl:param name="next"/>
+  <xsl:param name="nav.context"/>
+  <xsl:param name="content">
+    <xsl:apply-imports/>
+  </xsl:param>
+
+  <xsl:call-template name="user.preroot"/>
+
+  <html>
+    <xsl:call-template name="root.attributes"/>
+    <xsl:call-template name="html.head">
+      <xsl:with-param name="prev" select="$prev"/>
+      <xsl:with-param name="next" select="$next"/>
+    </xsl:call-template>
+
+    <body>
+      <xsl:call-template name="body.attributes"/>
+
+      <xsl:call-template name="html5.header.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="user.header.content"/>
+
+      <xsl:copy-of select="$content"/>
+
+      <xsl:call-template name="user.footer.content"/>
+
+      <xsl:call-template name="html5.footer.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+
+    </body>
+  </html>
+  <xsl:value-of select="$chunk.append"/>
+</xsl:template>
+
+<!-- Add HTML5 <header>  wrapper, and convert some attributes to styles -->
+<xsl:template name="html5.header.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+
+  <xsl:variable name="content">
+    <header>
+      <xsl:call-template name="user.header.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="header.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+    </header>
+  </xsl:variable>
+
+  <!-- And fix up any style atts -->
+  <xsl:call-template name="convert.styles">
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Add HTML5 <footer>  wrapper, and convert some attributes to styles -->
+<xsl:template name="html5.footer.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+
+  <xsl:variable name="content">
+    <footer>
+      <xsl:call-template name="user.footer.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="footer.navigation">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+        <xsl:with-param name="nav.context" select="$nav.context"/>
+      </xsl:call-template>
+    </footer>
+  </xsl:variable>
+
+  <!-- And fix up any style atts -->
+  <xsl:call-template name="convert.styles">
+    <xsl:with-param name="content" select="$content"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml5/html5-element-mods.xsl b/applications/content/template/docbook/xhtml5/html5-element-mods.xsl
new file mode 100644
index 0000000..45865cd
--- /dev/null
+++ b/applications/content/template/docbook/xhtml5/html5-element-mods.xsl
@@ -0,0 +1,773 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY % common.entities SYSTEM "../common/entities.ent">
+%common.entities;
+]>
+<xsl:stylesheet 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+  xmlns:exsl="http://exslt.org/common"
+  xmlns="http://www.w3.org/1999/xhtml"
+  xmlns:stbl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Table"
+  xmlns:xtbl="xalan://com.nwalsh.xalan.Table"
+  xmlns:lxslt="http://xml.apache.org/xslt"
+  xmlns:ptbl="http://nwalsh.com/xslt/ext/xsltproc/python/Table"
+  exclude-result-prefixes="exsl stbl xtbl lxslt ptbl"
+  version="1.0">
+
+<!-- $Id$ -->
+
+<!--==============================================================-->
+<!--  DocBook XSL Parameter settings                              -->
+<!--==============================================================-->
+<!-- Set these to blank so can output special HTML5 empty DOCTYPE -->
+<xsl:param name="chunker.output.doctype-system" select="''"/>
+<xsl:param name="chunker.output.doctype-public" select="''"/>
+
+<xsl:param name="table.borders.with.css" select="1"/>
+<xsl:param name="html.ext">.xhtml</xsl:param>
+<xsl:param name="toc.list.type">ul</xsl:param>
+<xsl:param name="css.decoration" select="1"/>
+<xsl:param name="make.clean.html" select="1"/>
+<xsl:param name="generate.id.attributes" select="1"/>
+<xsl:variable name="div.element">section</xsl:variable>
+
+<!--==============================================================-->
+<!--  Customized templates                                        -->
+<!--==============================================================-->
+
+<!-- HTML5: needs special doctype -->
+<xsl:template name="user.preroot">
+  <xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html&gt;</xsl:text>
+</xsl:template>
+
+<!-- HTML5: Replace HTML acronum with abbr for HTML 5 -->
+<xsl:template match="acronym">
+  <xsl:call-template name="inline.charseq">
+    <xsl:with-param name="wrapper-name">abbr</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- HTML5: replace border="0" with border="" -->
+<!-- HTML5: No @summary allowed -->
+<!-- HTML5: replace many table atts with CSS styles -->
+<xsl:template match="tgroup" name="tgroup">
+  <xsl:if test="not(@cols) or @cols = '' or string(number(@cols)) = 'NaN'">
+    <xsl:message terminate="yes">
+      <xsl:text>Error: CALS tables must specify the number of columns.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="summary">
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellspacing">
+    <xsl:call-template name="pi.dbhtml_cellspacing"/>
+  </xsl:variable>
+
+  <xsl:variable name="cellpadding">
+    <xsl:call-template name="pi.dbhtml_cellpadding"/>
+  </xsl:variable>
+
+  <!-- First generate colgroup with attributes -->
+  <xsl:variable name="colgroup.with.attributes">
+    <colgroup>
+      <xsl:call-template name="generate.colgroup">
+        <xsl:with-param name="cols" select="@cols"/>
+      </xsl:call-template>
+    </colgroup>
+  </xsl:variable>
+
+  <!-- then modify colgroup attributes with extension -->
+  <xsl:variable name="colgroup.with.extension">
+    <xsl:choose>
+      <xsl:when test="$use.extensions != 0
+                      and $tablecolumns.extension != 0">
+        <xsl:choose>
+          <xsl:when test="function-available('stbl:adjustColumnWidths')">
+            <xsl:copy-of select="stbl:adjustColumnWidths($colgroup.with.attributes)"/>
+          </xsl:when>
+          <xsl:when test="function-available('xtbl:adjustColumnWidths')">
+            <xsl:copy-of select="xtbl:adjustColumnWidths($colgroup.with.attributes)"/>
+          </xsl:when>
+          <xsl:when test="function-available('ptbl:adjustColumnWidths')">
+            <xsl:copy-of select="ptbl:adjustColumnWidths($colgroup.with.attributes)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message terminate="yes">
+              <xsl:text>No adjustColumnWidths function available.</xsl:text>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$colgroup.with.attributes"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Now convert to @style -->
+  <xsl:variable name="colgroup">
+    <xsl:call-template name="colgroup.with.style">
+      <xsl:with-param name="colgroup" select="$colgroup.with.extension"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="explicit.table.width">
+    <xsl:call-template name="pi.dbhtml_table-width">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="table.width.candidate">
+    <xsl:choose>
+      <xsl:when test="$explicit.table.width != ''">
+        <xsl:value-of select="$explicit.table.width"/>
+      </xsl:when>
+      <xsl:when test="$default.table.width = ''">
+        <xsl:text>100%</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$default.table.width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+
+  <xsl:variable name="table.width">
+    <xsl:if test="$default.table.width != ''
+                  or $explicit.table.width != ''">
+      <xsl:choose>
+        <xsl:when test="contains($table.width.candidate, '%')">
+          <xsl:value-of select="$table.width.candidate"/>
+        </xsl:when>
+        <xsl:when test="$use.extensions != 0
+                        and $tablecolumns.extension != 0">
+          <xsl:choose>
+            <xsl:when test="function-available('stbl:convertLength')">
+              <xsl:value-of select="stbl:convertLength($table.width.candidate)"/>
+            </xsl:when>
+            <xsl:when test="function-available('xtbl:convertLength')">
+              <xsl:value-of select="xtbl:convertLength($table.width.candidate)"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message terminate="yes">
+                <xsl:text>No convertLength function available.</xsl:text>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$table.width.candidate"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <!-- assemble a table @style -->
+  <xsl:variable name="table.style">
+
+    <xsl:if test="$cellspacing != '' or $html.cellspacing != ''">
+      <xsl:text>cellspacing: </xsl:text>
+      <xsl:choose>
+        <xsl:when test="$cellspacing != ''">
+          <xsl:value-of select="$cellspacing"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$html.cellspacing"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:text>; </xsl:text>
+    </xsl:if>
+
+    <xsl:if test="$cellpadding != '' or $html.cellpadding != ''">
+      <xsl:text>cellpadding: </xsl:text>
+      <xsl:choose>
+        <xsl:when test="$cellpadding != ''">
+          <xsl:value-of select="$cellpadding"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$html.cellpadding"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:text>; </xsl:text>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="string-length($table.width) != 0">
+        <xsl:text>width: </xsl:text>
+        <xsl:value-of select="$table.width"/>
+        <xsl:text>; </xsl:text>
+      </xsl:when>
+      <xsl:when test="../@pgwide=1 or local-name(.) = 'entrytbl'">
+        <xsl:text>width: 100%; </xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:choose>
+      <xsl:when test="../@frame='all' or (not(../@frame) and $default.table.frame='all')">
+        <xsl:text>border-collapse: collapse; </xsl:text>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'top'"/>
+          <xsl:with-param name="style" select="$table.frame.border.style"/>
+          <xsl:with-param name="color" select="$table.frame.border.color"/>
+          <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+        </xsl:call-template>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'bottom'"/>
+          <xsl:with-param name="style" select="$table.frame.border.style"/>
+          <xsl:with-param name="color" select="$table.frame.border.color"/>
+          <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+        </xsl:call-template>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'left'"/>
+          <xsl:with-param name="style" select="$table.frame.border.style"/>
+          <xsl:with-param name="color" select="$table.frame.border.color"/>
+          <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+        </xsl:call-template>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'right'"/>
+          <xsl:with-param name="style" select="$table.frame.border.style"/>
+          <xsl:with-param name="color" select="$table.frame.border.color"/>
+          <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="../@frame='topbot' or (not(../@frame) and $default.table.frame='topbot')">
+        <xsl:text>border-collapse: collapse;</xsl:text>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'top'"/>
+          <xsl:with-param name="style" select="$table.frame.border.style"/>
+          <xsl:with-param name="color" select="$table.frame.border.color"/>
+          <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+        </xsl:call-template>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'bottom'"/>
+          <xsl:with-param name="style" select="$table.frame.border.style"/>
+          <xsl:with-param name="color" select="$table.frame.border.color"/>
+          <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="../@frame='top' or (not(../@frame) and $default.table.frame='top')">
+        <xsl:text>border-collapse: collapse;</xsl:text>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'top'"/>
+          <xsl:with-param name="style" select="$table.frame.border.style"/>
+          <xsl:with-param name="color" select="$table.frame.border.color"/>
+          <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="../@frame='bottom' or (not(../@frame) and $default.table.frame='bottom')">
+        <xsl:text>border-collapse: collapse;</xsl:text>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'bottom'"/>
+          <xsl:with-param name="style" select="$table.frame.border.style"/>
+          <xsl:with-param name="color" select="$table.frame.border.color"/>
+          <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="../@frame='sides' or (not(../@frame) and $default.table.frame='sides')">
+        <xsl:text>border-collapse: collapse;</xsl:text>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'left'"/>
+          <xsl:with-param name="style" select="$table.frame.border.style"/>
+          <xsl:with-param name="color" select="$table.frame.border.color"/>
+          <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+        </xsl:call-template>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'right'"/>
+          <xsl:with-param name="style" select="$table.frame.border.style"/>
+          <xsl:with-param name="color" select="$table.frame.border.color"/>
+          <xsl:with-param name="thickness" select="$table.frame.border.thickness"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="../@frame='none'">
+        <xsl:text>border: none;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>border-collapse: collapse;</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <table>
+    <!-- HTML5: no table summary allowed -->
+    <xsl:if test="string-length($table.style) != 0">
+      <xsl:attribute name="style">
+        <xsl:value-of select="$table.style"/>
+      </xsl:attribute>
+    </xsl:if>
+
+
+    <xsl:copy-of select="$colgroup"/>
+
+    <xsl:apply-templates select="thead"/>
+    <xsl:apply-templates select="tfoot"/>
+    <xsl:apply-templates select="tbody"/>
+
+    <xsl:if test=".//footnote|../title//footnote">
+      <tbody class="footnotes">
+        <tr>
+          <td colspan="{@cols}">
+            <xsl:apply-templates select=".//footnote|../title//footnote" mode="table.footnote.mode"/>
+          </td>
+        </tr>
+      </tbody>
+    </xsl:if>
+  </table>
+</xsl:template>
+
+<!-- HTML5: convert col attributes to col CSS styles -->
+<xsl:template name="colgroup.with.style">
+  <xsl:param name="colgroup"/>
+
+  <xsl:variable name="colgroup.nodeset" select="exsl:node-set($colgroup)"/>
+  <xsl:apply-templates select="$colgroup.nodeset" mode="convert.to.style"/>
+</xsl:template>
+
+<xsl:template match="colgroup" mode="convert.to.style">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="convert.to.style"/>
+  </xsl:copy>
+</xsl:template>
+
+<!-- HTML5: converts obsolete HTML attributes to CSS styles -->
+<xsl:template match="*" mode="convert.to.style">
+
+  <xsl:variable name="style.from.atts">
+    <xsl:for-each select="@*">
+
+      <xsl:choose>
+        <xsl:when test="local-name() = 'width'">
+          <xsl:text>width: </xsl:text>
+          <xsl:value-of select="."/>
+          <xsl:text>; </xsl:text>
+        </xsl:when>
+
+        <xsl:when test="local-name() = 'align'">
+          <xsl:text>text-align: </xsl:text>
+          <xsl:value-of select="."/>
+          <xsl:text>; </xsl:text>
+        </xsl:when>
+
+        <xsl:when test="local-name() = 'valign'">
+          <xsl:text>vertical-align: </xsl:text>
+          <xsl:value-of select="."/>
+          <xsl:text>; </xsl:text>
+        </xsl:when>
+
+        <xsl:when test="local-name() = 'border'">
+          <xsl:text>border: </xsl:text>
+          <xsl:value-of select="."/>
+          <xsl:text>; </xsl:text>
+        </xsl:when>
+
+        <xsl:when test="local-name() = 'cellspacing'">
+          <xsl:text>border-spacing: </xsl:text>
+          <xsl:value-of select="."/>
+          <xsl:text>; </xsl:text>
+        </xsl:when>
+
+        <xsl:when test="local-name() = 'cellpadding'">
+          <xsl:text>padding: </xsl:text>
+          <xsl:value-of select="."/>
+          <xsl:text>; </xsl:text>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:for-each>
+  </xsl:variable>
+
+  <!-- merge existing styles with these new styles -->
+  <xsl:variable name="style">
+    <xsl:value-of select="concat($style.from.atts, @style)"/>
+  </xsl:variable>
+
+  <!-- HTML5: reserved for element name conversion if needed -->
+  <xsl:variable name="element.name">
+    <xsl:value-of select="local-name(.)"/>
+  </xsl:variable>
+
+  <xsl:element name="{$element.name}">
+    <xsl:if test="string-length($style) != 0">
+      <xsl:attribute name="style">
+        <xsl:value-of select="$style"/>
+      </xsl:attribute>
+    </xsl:if>
+    <!-- Also skip disallowed summary attributes -->
+    <xsl:copy-of select="@*[local-name(.) != 'width' and
+                            local-name(.) != 'summary' and
+                            local-name(.) != 'border' and
+                            local-name(.) != 'cellspacing' and
+                            local-name(.) != 'cellpadding' and
+                            local-name(.) != 'style' and
+                            local-name(.) != 'align' and
+                            local-name(.) != 'valign']"/>
+    <xsl:apply-templates mode="convert.to.style"/>
+  </xsl:element>
+</xsl:template>
+
+<!-- HTML5: convert some attributes to CSS style attribute -->
+<xsl:template match="entry|entrytbl">
+  <xsl:param name="col">
+    <xsl:choose>
+      <xsl:when test="@revisionflag">
+        <xsl:number from="row"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:param name="spans"/>
+
+  
+  <!-- Process with stock template -->
+  <xsl:variable name="cell">
+    <xsl:call-template name="entry">
+      <xsl:with-param name="col" select="$col"/>
+      <xsl:with-param name="spans" select="$spans"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="cell.nodes" select="exsl:node-set($cell)"/>
+
+  <xsl:apply-templates select="$cell.nodes" mode="convert.to.style"/>
+
+</xsl:template>
+
+<xsl:template match="mediaobject|inlinemediaobject">
+  <xsl:call-template name="convert.styles"/>
+</xsl:template>
+
+<xsl:template match="qandaset">
+  <xsl:call-template name="convert.styles"/>
+</xsl:template>
+
+<xsl:template match="calloutlist|revhistory|footnote|figure|co">
+  <xsl:call-template name="convert.styles"/>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="titlepage.mode">
+  <xsl:call-template name="convert.styles"/>
+</xsl:template>
+
+<xsl:template match="variablelist">
+  <xsl:call-template name="convert.styles"/>
+</xsl:template>
+
+<xsl:template match="orderedlist[@inheritnum = 'inherit']">
+  <xsl:call-template name="convert.styles"/>
+</xsl:template>
+
+<xsl:template match="simplelist">
+  <xsl:call-template name="convert.styles"/>
+</xsl:template>
+
+<xsl:template match="blockquote">
+  <xsl:call-template name="convert.styles"/>
+</xsl:template>
+
+<xsl:template match="note|important|warning|caution|tip">
+  <xsl:call-template name="convert.styles"/>
+</xsl:template>
+
+<xsl:template match="funcprototype" mode="ansi-tabular">
+  <xsl:call-template name="convert.styles"/>
+</xsl:template>
+
+<xsl:template match="funcprototype" mode="kr-tabular">
+  <xsl:call-template name="convert.styles"/>
+</xsl:template>
+
+<xsl:template name="convert.styles">
+  <xsl:param name="content">
+   <xsl:apply-imports/>
+  </xsl:param>
+  <xsl:variable name="nodes" select="exsl:node-set($content)"/>
+
+  <xsl:apply-templates mode="convert.to.style" select="$nodes"/>
+</xsl:template>
+
+<!-- HTML5: link rel="home" is not permitted -->
+<!-- Add support for attributes on <html> element  -->
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="doc" select="self::*"/>
+
+  <xsl:call-template name="user.preroot"/>
+  <xsl:call-template name="root.messages"/>
+
+  <html>
+    <xsl:call-template name="root.attributes"/>
+    <head>
+      <xsl:call-template name="system.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="user.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </head>
+    <body>
+      <xsl:call-template name="body.attributes"/>
+      <xsl:call-template name="user.header.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:apply-templates select="."/>
+      <xsl:call-template name="user.footer.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$html.append"/>
+  
+  <!-- Generate any css files only once, not once per chunk -->
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<xsl:template name="root.attributes">
+</xsl:template>
+
+<!-- HTML5: uses <ul> instead of <dl> for TOC -->
+<xsl:template match="question" mode="qandatoc.mode">
+  <xsl:variable name="firstch">
+    <!-- Use a titleabbrev or title if available -->
+    <xsl:choose>
+      <xsl:when test="../blockinfo/titleabbrev">
+        <xsl:apply-templates select="../blockinfo/titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../blockinfo/title">
+        <xsl:apply-templates select="../blockinfo/title[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../info/titleabbrev">
+        <xsl:apply-templates select="../info/titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../titleabbrev">
+        <xsl:apply-templates select="../titleabbrev[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../info/title">
+        <xsl:apply-templates select="../info/title[1]/node()"/>
+      </xsl:when>
+      <xsl:when test="../title">
+        <xsl:apply-templates select="../title[1]/node()"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="(*[local-name(.)!='label'])[1]/node()"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="deflabel">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+        <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]
+                              /@defaultlabel"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$qanda.defaultlabel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <li>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="label.markup"/>
+      <xsl:if test="contains($deflabel,'number') and not(label)">
+        <xsl:apply-templates select="." mode="intralabel.punctuation"/>
+      </xsl:if>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="$firstch"/>
+    </a>
+    <!-- * include nested qandaset/qandaentry in TOC if user wants it -->
+
+    <xsl:if test="not($qanda.nested.in.toc = 0)">
+      <xsl:apply-templates select="following-sibling::answer" mode="qandatoc.mode"/>
+    </xsl:if>
+  </li>
+</xsl:template>
+
+<xsl:template match="answer" mode="qandatoc.mode">
+  <xsl:if test="descendant::question">
+    <xsl:call-template name="process.qanda.toc"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- html5 uses <ul> instead of <dl> for toc -->
+<xsl:template name="process.qanda.toc">
+  <ul>
+    <xsl:apply-templates select="qandadiv" mode="qandatoc.mode"/>
+    <xsl:apply-templates select="qandaset|qandaentry" mode="qandatoc.mode"/>
+  </ul>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="qandatoc.mode">
+  <!--
+  <dt><xsl:apply-templates select="title" mode="qandatoc.mode"/></dt>
+  <dd><xsl:call-template name="process.qanda.toc"/></dd>
+  -->
+  <li>
+    <xsl:apply-templates select="title" mode="qandatoc.mode"/>
+    <xsl:call-template name="process.qanda.toc"/>
+  </li>
+</xsl:template>
+
+<xsl:template match="audiodata">
+  <xsl:variable name="filename">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <audio>
+    <xsl:call-template name="common.html.attributes"/>
+
+    <xsl:attribute name="src">
+      <xsl:value-of select="$filename"/>
+    </xsl:attribute>
+
+    <xsl:apply-templates select="@*"/>
+    <xsl:apply-templates select="../multimediaparam"/>
+
+    <!-- add any fallback content -->
+    <xsl:call-template name="audio.fallback"/>
+  </audio>
+</xsl:template>
+
+<!-- generate <video> element for html5 -->
+<xsl:template match="videodata">
+  <xsl:variable name="filename">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <video>
+    <xsl:call-template name="common.html.attributes"/>
+
+    <xsl:attribute name="src">
+      <xsl:value-of select="$filename"/>
+    </xsl:attribute>
+
+    <xsl:call-template name="video.poster"/>
+
+    <xsl:apply-templates select="@*[local-name() != 'fileref']"/>
+    <xsl:apply-templates select="../multimediaparam"/>
+    
+    <!-- add any fallback content -->
+    <xsl:call-template name="video.fallback"/>
+  </video>
+</xsl:template>
+
+<!-- use only an imageobject with @role = 'poster' -->
+<xsl:template name="video.poster">
+  <xsl:variable name="imageobject" select="../../imageobject[@role = 'poster'][1]"/>
+  <xsl:if test="$imageobject">
+    <xsl:attribute name="poster">
+      <xsl:value-of select="$imageobject/imagedata/@fileref"/>
+    </xsl:attribute> 
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="videodata/@fileref">
+  <!-- already handled by videodata template -->
+</xsl:template>
+
+<xsl:template match="audiodata/@fileref">
+  <!-- already handled by audiodata template -->
+</xsl:template>
+
+<xsl:template match="videodata/@contentwidth">
+  <xsl:attribute name="width">
+    <xsl:value-of select="."/>
+  </xsl:attribute>
+</xsl:template>
+
+<xsl:template match="videodata/@contentdepth">
+  <xsl:attribute name="height">
+    <xsl:value-of select="."/>
+  </xsl:attribute>
+</xsl:template>
+
+<xsl:template match="videodata/@depth">
+  <xsl:attribute name="height">
+    <xsl:value-of select="."/>
+  </xsl:attribute>
+</xsl:template>
+
+<!-- pass through these attributes -->
+<xsl:template match="videodata/@autoplay |
+                     videodata/@controls |
+                     audiodata/@autoplay |
+                     audiodata/@controls">
+  <xsl:copy-of select="."/>
+</xsl:template>
+
+<xsl:template match="videodata/@*" priority="-1">
+  <!-- Do nothing with the rest of the attributes -->
+</xsl:template>
+
+<xsl:template match="audiodata/@*" priority="-1">
+  <!-- Do nothing with the rest of the attributes -->
+</xsl:template>
+
+<xsl:template match="multimediaparam">
+  <xsl:call-template name="process.multimediaparam">
+    <xsl:with-param name="object" select=".."/>
+    <xsl:with-param name="param.name" select="@name"/>
+    <xsl:with-param name="param.value" select="@value"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Determines the best value of a media attribute from the
+  attributes and multimediaparam elements -->
+<xsl:template name="process.multimediaparam">
+  <xsl:param name="object" select="NOTANELEMENT"/>
+  <xsl:param name="param.name"/>
+  <xsl:param name="param.value"/>
+
+  <xsl:choose>
+    <xsl:when test="$object/*/@*[local-name(.) = $param.name]">
+      <!-- explicit attribute with that name takes precedence -->
+      <xsl:attribute name="{$param.name}">
+        <xsl:value-of select="$object/*/@*[local-name(.) = $param.name]"/>
+      </xsl:attribute>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:attribute name="{$param.name}">
+        <xsl:value-of select="$param.value"/>
+      </xsl:attribute>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="video.fallback">
+  <xsl:param name="videodata" select="."/>
+  <xsl:variable name="textobject" select="$videodata/../../textobject"/>
+
+  <xsl:apply-templates select="$textobject" mode="fallback"/>
+</xsl:template>
+
+<xsl:template name="audio.fallback">
+  <xsl:param name="audiodata" select="."/>
+  <xsl:variable name="textobject" select="$audiodata/../../textobject"/>
+
+  <xsl:apply-templates select="$textobject" mode="fallback"/>
+</xsl:template>
+
+<xsl:template match="textobject" mode="fallback">
+  <div>
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:apply-templates/>
+  </div> 
+</xsl:template>
+
+<!-- HTML5: no body attributes -->
+<xsl:template name="body.attributes"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml5/onechunk.xsl b/applications/content/template/docbook/xhtml5/onechunk.xsl
new file mode 100644
index 0000000..2b05307
--- /dev/null
+++ b/applications/content/template/docbook/xhtml5/onechunk.xsl
@@ -0,0 +1,36 @@
+<?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:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="chunk.xsl"/>
+
+<!-- Ok, using the onechunk parameter makes this all work again. -->
+<!-- It does have the disadvantage that it only works for documents that have -->
+<!-- a root element that is considered a chunk by the chunk.xsl stylesheet. -->
+<!-- Ideally, onechunk would let anything be a chunk. But not today. -->
+
+<xsl:param name="onechunk" select="1"/>
+<xsl:param name="suppress.navigation">1</xsl:param>
+
+<xsl:template name="href.target.uri">
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml5/profile-chunk.xsl b/applications/content/template/docbook/xhtml5/profile-chunk.xsl
new file mode 100644
index 0000000..4820ffb
--- /dev/null
+++ b/applications/content/template/docbook/xhtml5/profile-chunk.xsl
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl">
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- First import the non-chunking templates that format elements
+     within each chunk file. In a customization, you should
+     create a separate non-chunking customization layer such
+     as mydocbook.xsl that imports the original docbook.xsl and
+     customizes any presentation templates. Then your chunking
+     customization should import mydocbook.xsl instead of
+     docbook.xsl.  -->
+<xsl:import href="docbook.xsl"/>
+
+<!-- chunk-common.xsl contains all the named templates for chunking.
+     In a customization file, you import chunk-common.xsl, then
+     add any customized chunking templates of the same name. 
+     They will have import precedence over the original 
+     chunking templates in chunk-common.xsl. -->
+<xsl:import href="../xhtml/chunk-common.xsl"/>
+
+<!-- The manifest.xsl module is no longer imported because its
+     templates were moved into chunk-common and chunk-code -->
+
+<!-- chunk-code.xsl contains all the chunking templates that use
+     a match attribute.  In a customization it should be referenced
+     using <xsl:include> instead of <xsl:import>, and then add
+     any customized chunking templates with match attributes. But be sure
+     to add a priority="1" to such customized templates to resolve
+     its conflict with the original, since they have the
+     same import precedence.
+     
+     Using xsl:include prevents adding another layer
+     of import precedence, which would cause any
+     customizations that use xsl:apply-imports to wrongly
+     apply the chunking version instead of the original
+     non-chunking version to format an element.  -->
+<xsl:include href="../xhtml/profile-chunk-code.xsl"/>
+
+<xsl:include href="html5-chunk-mods.xsl"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml5/profile-docbook.xsl b/applications/content/template/docbook/xhtml5/profile-docbook.xsl
new file mode 100644
index 0000000..7493ef8
--- /dev/null
+++ b/applications/content/template/docbook/xhtml5/profile-docbook.xsl
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="db ng exsl exslt exslt" version="1.0">
+
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:import href="xhtml-profile-docbook.xsl"/>
+
+<xsl:include href="html5-element-mods.xsl"/>
+
+<xsl:output method="xml" encoding="UTF-8" indent="no"/>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml5/xhtml-docbook.xsl b/applications/content/template/docbook/xhtml5/xhtml-docbook.xsl
new file mode 100644
index 0000000..b704693
--- /dev/null
+++ b/applications/content/template/docbook/xhtml5/xhtml-docbook.xsl
@@ -0,0 +1,495 @@
+<?xml version="1.0"?>
+
+<!--This file was created automatically by xhtml2xhtml5.xsl from the xhtml stylesheet.-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="db ng exsl exslt" version="1.0">
+
+<!--Same as xhtml but with doctypes removed from xsl:output -->
+<!--and including from ../xhtml directory -->
+<xslo:output xmlns:xslo="http://www.w3.org/1999/XSL/Transform" method="xml" encoding="UTF-8" indent="no"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION.xsl"/>
+<xsl:include href="../xhtml/param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/utility.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="../common/targets.xsl"/>
+<xsl:include href="../common/olink.xsl"/>
+<xsl:include href="../common/pi.xsl"/>
+<xsl:include href="../xhtml/autotoc.xsl"/>
+<xsl:include href="../xhtml/autoidx.xsl"/>
+<xsl:include href="../xhtml/lists.xsl"/>
+<xsl:include href="../xhtml/callout.xsl"/>
+<xsl:include href="../xhtml/verbatim.xsl"/>
+<xsl:include href="../xhtml/graphics.xsl"/>
+<xsl:include href="../xhtml/xref.xsl"/>
+<xsl:include href="../xhtml/formal.xsl"/>
+<xsl:include href="../xhtml/table.xsl"/>
+<xsl:include href="../xhtml/htmltbl.xsl"/>
+<xsl:include href="../xhtml/sections.xsl"/>
+<xsl:include href="../xhtml/inline.xsl"/>
+<xsl:include href="../xhtml/footnote.xsl"/>
+<xsl:include href="../xhtml/html.xsl"/>
+<xsl:include href="../xhtml/info.xsl"/>
+<xsl:include href="../xhtml/keywords.xsl"/>
+<xsl:include href="../xhtml/division.xsl"/>
+<xsl:include href="../xhtml/toc.xsl"/>
+<xsl:include href="../xhtml/index.xsl"/>
+<xsl:include href="../xhtml/refentry.xsl"/>
+<xsl:include href="../xhtml/math.xsl"/>
+<xsl:include href="../xhtml/admon.xsl"/>
+<xsl:include href="../xhtml/component.xsl"/>
+<xsl:include href="../xhtml/biblio.xsl"/>
+<xsl:include href="../xhtml/biblio-iso690.xsl"/>
+<xsl:include href="../xhtml/glossary.xsl"/>
+<xsl:include href="../xhtml/block.xsl"/>
+<xsl:include href="../xhtml/task.xsl"/>
+<xsl:include href="../xhtml/qandaset.xsl"/>
+<xsl:include href="../xhtml/synop.xsl"/>
+<xsl:include href="../xhtml/titlepage.xsl"/>
+<xsl:include href="../xhtml/titlepage.templates.xsl"/>
+<xsl:include href="../xhtml/pi.xsl"/>
+<xsl:include href="../xhtml/ebnf.xsl"/>
+<xsl:include href="../xhtml/chunker.xsl"/>
+<xsl:include href="../xhtml/html-rtf.xsl"/>
+<xsl:include href="../xhtml/annotations.xsl"/>
+<xsl:include href="../common/stripns.xsl"/>
+
+<xsl:param name="stylesheet.result.type" select="'xhtml'"/>
+<xsl:param name="htmlhelp.output" select="0"/>
+
+<!-- ==================================================================== -->
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+<xsl:key name="gid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:text>Element </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text> in namespace '</xsl:text>
+    <xsl:value-of select="namespace-uri(.)"/>
+    <xsl:text>' encountered</xsl:text>
+    <xsl:if test="parent::*">
+      <xsl:text> in </xsl:text>
+      <xsl:value-of select="name(parent::*)"/>
+    </xsl:if>
+    <xsl:text>, but no template matches.</xsl:text>
+  </xsl:message>
+
+  <span style="color: red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="text()">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="body.attributes"><xslo:if xmlns:xslo="http://www.w3.org/1999/XSL/Transform" test="starts-with($writing.mode, 'rl')"><xslo:attribute name="dir">rtl</xslo:attribute></xslo:if>
+<!-- no apply-templates; make it empty except for dir for rtl-->
+</xsl:template>
+
+<xsl:template name="head.content">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="title">
+    <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/>
+  </xsl:param>
+
+  <title>
+    <xsl:copy-of select="$title"/>
+  </title>
+
+  <xsl:if test="$html.base != ''">
+    <base href="{$html.base}"/>
+  </xsl:if>
+
+  <!-- Insert links to CSS files or insert literal style elements -->
+  <xsl:call-template name="generate.css"/>
+
+  <xsl:if test="$html.stylesheet != ''">
+    <xsl:call-template name="output.html.stylesheets">
+      <xsl:with-param name="stylesheets" select="normalize-space($html.stylesheet)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$html.script != ''">
+    <xsl:call-template name="output.html.scripts">
+      <xsl:with-param name="scripts" select="normalize-space($html.script)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$link.mailto.url != ''">
+    <link rev="made" href="{$link.mailto.url}"/>
+  </xsl:if>
+
+  <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/>
+
+  <xsl:if test="$generate.meta.abstract != 0">
+    <xsl:variable name="info" select="(articleinfo                                       |bookinfo                                       |prefaceinfo                                       |chapterinfo                                       |appendixinfo                                       |sectioninfo                                       |sect1info                                       |sect2info                                       |sect3info                                       |sect4info                                       |sect5info                                       |referenceinfo                                       |refentryinfo                                       |partinfo                                       |info                                       |docinfo)[1]"/>
+    <xsl:if test="$info and $info/abstract">
+      <meta name="description">
+        <xsl:attribute name="content">
+          <xsl:for-each select="$info/abstract[1]/*">
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:if test="position() &lt; last()">
+              <xsl:text> </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </meta>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:if test="($draft.mode = 'yes' or                 ($draft.mode = 'maybe' and                 ancestor-or-self::*[@status][1]/@status = 'draft'))                 and $draft.watermark.image != ''">
+    <style type="text/css"><xsl:text>
+body { background-image: url('</xsl:text>
+<xsl:value-of select="$draft.watermark.image"/><xsl:text>');
+       background-repeat: no-repeat;
+       background-position: top left;
+       /* The following properties make the watermark "fixed" on the page. */
+       /* I think that's just a bit too distracting for the reader... */
+       /* background-attachment: fixed; */
+       /* background-position: center center; */
+     }</xsl:text>
+    </style>
+  </xsl:if>
+  <xsl:apply-templates select="." mode="head.keywords.content"/>
+</xsl:template>
+
+<xsl:template name="output.html.stylesheets">
+  <xsl:param name="stylesheets" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($stylesheets, ' ')">
+      <xsl:variable name="css.filename" select="substring-before($stylesheets, ' ')"/>
+
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$css.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.stylesheets">
+        <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$stylesheets != ''">
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$stylesheets"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="output.html.scripts">
+  <xsl:param name="scripts" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($scripts, ' ')">
+      <xsl:variable name="script.filename" select="substring-before($scripts, ' ')"/>
+
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$script.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.scripts">
+        <xsl:with-param name="scripts" select="substring-after($scripts, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$scripts != ''">
+      <xsl:call-template name="make.script.link">
+        <xsl:with-param name="script.filename" select="$scripts"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="head.keywords.content">
+  <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="artheader/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sectioninfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="info/keywordset" mode="html.header"/>
+
+  <xsl:if test="$inherit.keywords != 0                 and parent::*">
+    <xsl:apply-templates select="parent::*" mode="head.keywords.content"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="system.head.content">
+  <xsl:param name="node" select="."/>
+
+  <!-- FIXME: When chunking, only the annotations actually used
+              in this chunk should be referenced. I don't think it
+              does any harm to reference them all, but it adds
+              unnecessary bloat to each chunk. -->
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <xsl:call-template name="add.annotation.links"/>
+    <script type="text/javascript">
+      <xsl:text>
+// Create PopupWindow objects</xsl:text>
+      <xsl:for-each select="//annotation">
+        <xsl:text>
+var popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text> = new PopupWindow("popup-</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>");
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.offsetY = 15;
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.autoHide();
+</xsl:text>
+      </xsl:for-each>
+    </script>
+
+    <style type="text/css">
+      <xsl:value-of select="$annotation.css"/>
+    </style>
+  </xsl:if>
+
+  <!-- system.head.content is like user.head.content, except that
+       it is called before head.content. This is important because it
+       means, for example, that <style> elements output by system.head.content
+       have a lower CSS precedence than the users stylesheet. -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="user.preroot">
+  <!-- Pre-root output, can be used to output comments and PIs. -->
+  <!-- This must not output any element content! -->
+</xsl:template>
+
+<xsl:template name="user.head.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.navigation">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:param name="nav.context"/>
+</xsl:template>
+
+<!-- To use the same stripped nodeset everywhere, it should
+be created as a global variable here.
+Used by docbook.xsl, chunk-code.xsl and chunkfast.xsl -->
+<xsl:variable name="no.namespace">
+  <xsl:if test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">
+    <xsl:apply-templates select="/*" mode="stripNS"/>
+  </xsl:if>
+</xsl:variable>
+
+<xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>stripped namespace before processing</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <!-- DEBUG: to save stripped document.
+      <xsl:message>Saving stripped document.</xsl:message>
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="'/tmp/stripped.xml'"/>
+        <xsl:with-param name="method" select="'xml'"/>
+        <xsl:with-param name="content">
+          <xsl:copy-of select="exsl:node-set($no.namespace)"/>
+        </xsl:with-param>
+      </xsl:call-template>
+      -->
+      <xsl:call-template name="log.message">
+        <xsl:with-param name="level">Note</xsl:with-param>
+        <xsl:with-param name="source" select="$doc.title"/>
+        <xsl:with-param name="context-desc">
+          <xsl:text>namesp. cut</xsl:text>
+        </xsl:with-param>
+        <xsl:with-param name="message">
+          <xsl:text>processing stripped document</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates select="exsl:node-set($no.namespace)"/>
+    </xsl:when>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="*/self::ng:* or */self::db:*">
+      <xsl:message terminate="yes">
+        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+        <xsl:text> cannot proceed.</xsl:text>
+      </xsl:message>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count(key('id',$rootid)) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="/" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="/" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="/" mode="collect.tex.math"/>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="doc" select="self::*"/>
+
+  <xsl:call-template name="user.preroot"/>
+  <xsl:call-template name="root.messages"/>
+
+  <html>
+    <xsl:call-template name="root.attributes"/>
+    <head>
+      <xsl:call-template name="system.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="user.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </head>
+    <body>
+      <xsl:call-template name="body.attributes"/>
+      <xsl:call-template name="user.header.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:apply-templates select="."/>
+      <xsl:call-template name="user.footer.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$html.append"/>
+  
+  <!-- Generate any css files only once, not once per chunk -->
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<xsl:template name="root.attributes">
+  <!-- customize to add attributes to <html> element  -->
+</xsl:template>
+
+<xsl:template name="root.messages">
+  <!-- redefine this any way you'd like to output messages -->
+  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+
+  <!-- The default is that we are not chunking... -->
+  <xsl:text>0</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml5/xhtml-profile-docbook.xsl b/applications/content/template/docbook/xhtml5/xhtml-profile-docbook.xsl
new file mode 100644
index 0000000..a3ea6c1
--- /dev/null
+++ b/applications/content/template/docbook/xhtml5/xhtml-profile-docbook.xsl
@@ -0,0 +1,408 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--This file was created automatically by html2xhtml-->
+<!--from the HTML stylesheets.-->
+<!--This file was created automatically by xsl2profile-->
+<!--from the DocBook XSL stylesheets.-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="db ng exsl exslt exslt" version="1.0">
+
+<xsl:output method="xml" encoding="UTF-8" indent="no"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://docbook.sf.net/release/xsl/current/ for
+     copyright and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION.xsl"/>
+<xsl:include href="../xhtml/param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/utility.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="../common/targets.xsl"/>
+<xsl:include href="../common/olink.xsl"/>
+<xsl:include href="../common/pi.xsl"/>
+<xsl:include href="../xhtml/autotoc.xsl"/>
+<xsl:include href="../xhtml/autoidx.xsl"/>
+<xsl:include href="../xhtml/lists.xsl"/>
+<xsl:include href="../xhtml/callout.xsl"/>
+<xsl:include href="../xhtml/verbatim.xsl"/>
+<xsl:include href="../xhtml/graphics.xsl"/>
+<xsl:include href="../xhtml/xref.xsl"/>
+<xsl:include href="../xhtml/formal.xsl"/>
+<xsl:include href="../xhtml/table.xsl"/>
+<xsl:include href="../xhtml/htmltbl.xsl"/>
+<xsl:include href="../xhtml/sections.xsl"/>
+<xsl:include href="../xhtml/inline.xsl"/>
+<xsl:include href="../xhtml/footnote.xsl"/>
+<xsl:include href="../xhtml/html.xsl"/>
+<xsl:include href="../xhtml/info.xsl"/>
+<xsl:include href="../xhtml/keywords.xsl"/>
+<xsl:include href="../xhtml/division.xsl"/>
+<xsl:include href="../xhtml/toc.xsl"/>
+<xsl:include href="../xhtml/index.xsl"/>
+<xsl:include href="../xhtml/refentry.xsl"/>
+<xsl:include href="../xhtml/math.xsl"/>
+<xsl:include href="../xhtml/admon.xsl"/>
+<xsl:include href="../xhtml/component.xsl"/>
+<xsl:include href="../xhtml/biblio.xsl"/>
+<xsl:include href="../xhtml/biblio-iso690.xsl"/>
+<xsl:include href="../xhtml/glossary.xsl"/>
+<xsl:include href="../xhtml/block.xsl"/>
+<xsl:include href="../xhtml/task.xsl"/>
+<xsl:include href="../xhtml/qandaset.xsl"/>
+<xsl:include href="../xhtml/synop.xsl"/>
+<xsl:include href="../xhtml/titlepage.xsl"/>
+<xsl:include href="../xhtml/titlepage.templates.xsl"/>
+<xsl:include href="../xhtml/pi.xsl"/>
+<xsl:include href="../xhtml/ebnf.xsl"/>
+<xsl:include href="../xhtml/chunker.xsl"/>
+<xsl:include href="../xhtml/html-rtf.xsl"/>
+<xsl:include href="../xhtml/annotations.xsl"/>
+<xsl:include href="../common/stripns.xsl"/>
+
+<xsl:param name="stylesheet.result.type" select="'xhtml'"/>
+<xsl:param name="htmlhelp.output" select="0"/>
+
+<!-- ==================================================================== -->
+
+<xsl:key name="id" match="*" use="@id|@xml:id"/>
+<xsl:key name="gid" match="*" use="generate-id()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:text>Element </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text> in namespace '</xsl:text>
+    <xsl:value-of select="namespace-uri(.)"/>
+    <xsl:text>' encountered</xsl:text>
+    <xsl:if test="parent::*">
+      <xsl:text> in </xsl:text>
+      <xsl:value-of select="name(parent::*)"/>
+    </xsl:if>
+    <xsl:text>, but no template matches.</xsl:text>
+  </xsl:message>
+
+  <span style="color: red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="text()">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="body.attributes"><xslo:if xmlns:xslo="http://www.w3.org/1999/XSL/Transform" test="starts-with($writing.mode, 'rl')"><xslo:attribute name="dir">rtl</xslo:attribute></xslo:if>
+<!-- no apply-templates; make it empty except for dir for rtl-->
+</xsl:template>
+
+<xsl:template name="head.content">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="title">
+    <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/>
+  </xsl:param>
+
+  <title>
+    <xsl:copy-of select="$title"/>
+  </title>
+
+  <xsl:if test="$html.base != ''">
+    <base href="{$html.base}"/>
+  </xsl:if>
+
+  <!-- Insert links to CSS files or insert literal style elements -->
+  <xsl:call-template name="generate.css"/>
+
+  <xsl:if test="$html.stylesheet != ''">
+    <xsl:call-template name="output.html.stylesheets">
+      <xsl:with-param name="stylesheets" select="normalize-space($html.stylesheet)"/>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:if test="$link.mailto.url != ''">
+    <link rev="made" href="{$link.mailto.url}"/>
+  </xsl:if>
+
+  <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/>
+
+  <xsl:if test="$generate.meta.abstract != 0">
+    <xsl:variable name="info" select="(articleinfo                                       |bookinfo                                       |prefaceinfo                                       |chapterinfo                                       |appendixinfo                                       |sectioninfo                                       |sect1info                                       |sect2info                                       |sect3info                                       |sect4info                                       |sect5info                                       |referenceinfo                                       |refentryinfo                                       |partinfo                                       |info                                       |docinfo)[1]"/>
+    <xsl:if test="$info and $info/abstract">
+      <meta name="description">
+        <xsl:attribute name="content">
+          <xsl:for-each select="$info/abstract[1]/*">
+            <xsl:value-of select="normalize-space(.)"/>
+            <xsl:if test="position() &lt; last()">
+              <xsl:text> </xsl:text>
+            </xsl:if>
+          </xsl:for-each>
+        </xsl:attribute>
+      </meta>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:if test="($draft.mode = 'yes' or                 ($draft.mode = 'maybe' and                 ancestor-or-self::*[@status][1]/@status = 'draft'))                 and $draft.watermark.image != ''">
+    <style type="text/css"><xsl:text>
+body { background-image: url('</xsl:text>
+<xsl:value-of select="$draft.watermark.image"/><xsl:text>');
+       background-repeat: no-repeat;
+       background-position: top left;
+       /* The following properties make the watermark "fixed" on the page. */
+       /* I think that's just a bit too distracting for the reader... */
+       /* background-attachment: fixed; */
+       /* background-position: center center; */
+     }</xsl:text>
+    </style>
+  </xsl:if>
+  <xsl:apply-templates select="." mode="head.keywords.content"/>
+</xsl:template>
+
+<xsl:template name="output.html.stylesheets">
+  <xsl:param name="stylesheets" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($stylesheets, ' ')">
+      <xsl:variable name="css.filename" select="substring-before($stylesheets, ' ')"/>
+
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$css.filename"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="output.html.stylesheets">
+        <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$stylesheets != ''">
+      <xsl:call-template name="make.css.link">
+        <xsl:with-param name="css.filename" select="$stylesheets"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="head.keywords.content">
+  <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="artheader/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sectioninfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="info/keywordset" mode="html.header"/>
+
+  <xsl:if test="$inherit.keywords != 0                 and parent::*">
+    <xsl:apply-templates select="parent::*" mode="head.keywords.content"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="system.head.content">
+  <xsl:param name="node" select="."/>
+
+  <!-- FIXME: When chunking, only the annotations actually used
+              in this chunk should be referenced. I don't think it
+              does any harm to reference them all, but it adds
+              unnecessary bloat to each chunk. -->
+  <xsl:if test="$annotation.support != 0 and //annotation">
+    <xsl:call-template name="add.annotation.links"/>
+    <script type="text/javascript">
+      <xsl:text>
+// Create PopupWindow objects</xsl:text>
+      <xsl:for-each select="//annotation">
+        <xsl:text>
+var popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text> = new PopupWindow("popup-</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>");
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.offsetY = 15;
+</xsl:text>
+        <xsl:text>popup_</xsl:text>
+        <xsl:value-of select="generate-id(.)"/>
+        <xsl:text>.autoHide();
+</xsl:text>
+      </xsl:for-each>
+    </script>
+
+    <style type="text/css">
+      <xsl:value-of select="$annotation.css"/>
+    </style>
+  </xsl:if>
+
+  <!-- system.head.content is like user.head.content, except that
+       it is called before head.content. This is important because it
+       means, for example, that <style> elements output by system.head.content
+       have a lower CSS precedence than the users stylesheet. -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="user.preroot">
+  <!-- Pre-root output, can be used to output comments and PIs. -->
+  <!-- This must not output any element content! -->
+</xsl:template>
+
+<xsl:template name="user.head.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.navigation">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.navigation">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/">
+  <!-- * Get a title for current doc so that we let the user -->
+  <!-- * know what document we are processing at this point. -->
+  <xsl:variable name="doc.title">
+    <xsl:call-template name="get.doc.title"/>
+  </xsl:variable>
+  <xsl:choose>
+    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+         toss the namespace and continue.  Use the docbook5 namespaced
+         stylesheets for DocBook5 if you don't want to use this feature.-->
+    <!-- include extra test for Xalan quirk -->
+    <xsl:when test="false()"/>
+    <!-- Can't process unless namespace removed -->
+    <xsl:when test="false()"/>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$rootid != ''">
+          <xsl:choose>
+            <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0">
+              <xsl:message terminate="yes">
+                <xsl:text>ID '</xsl:text>
+                <xsl:value-of select="$rootid"/>
+                <xsl:text>' not found in document.</xsl:text>
+              </xsl:message>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'">
+                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/>
+              </xsl:if>
+              <xsl:if test="$collect.xref.targets != 'only'">
+                <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/>
+                <xsl:if test="$tex.math.in.alt != ''">
+                  <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="collect.tex.math"/>
+                </xsl:if>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/>
+          </xsl:if>
+          <xsl:if test="$collect.xref.targets != 'only'">
+            <xsl:apply-templates select="$profiled-nodes" mode="process.root"/>
+            <xsl:if test="$tex.math.in.alt != ''">
+              <xsl:apply-templates select="$profiled-nodes" mode="collect.tex.math"/>
+            </xsl:if>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="doc" select="self::*"/>
+
+  <xsl:call-template name="user.preroot"/>
+  <xsl:call-template name="root.messages"/>
+
+  <html>
+    <head>
+      <xsl:call-template name="system.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:call-template name="user.head.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </head>
+    <body>
+      <xsl:call-template name="body.attributes"/>
+      <xsl:call-template name="user.header.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+      <xsl:apply-templates select="."/>
+      <xsl:call-template name="user.footer.content">
+        <xsl:with-param name="node" select="$doc"/>
+      </xsl:call-template>
+    </body>
+  </html>
+  <xsl:value-of select="$html.append"/>
+  
+  <!-- Generate any css files only once, not once per chunk -->
+  <xsl:call-template name="generate.css.files"/>
+</xsl:template>
+
+<xsl:template name="root.messages">
+  <!-- redefine this any way you'd like to output messages -->
+  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+
+  <!-- The default is that we are not chunking... -->
+  <xsl:text>0</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/applications/content/template/docbook/xhtml5/xhtml2xhtml5.xsl b/applications/content/template/docbook/xhtml5/xhtml2xhtml5.xsl
new file mode 100644
index 0000000..05fe68d
--- /dev/null
+++ b/applications/content/template/docbook/xhtml5/xhtml2xhtml5.xsl
@@ -0,0 +1,49 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xslo="http://www.w3.org/1999/XSL/TransformAlias"
+                version="1.0">
+
+<xsl:output indent="no" method="xml"/>
+
+<xsl:namespace-alias stylesheet-prefix="xslo" result-prefix="xsl"/>
+
+<xsl:template match="node()|@*">
+    <xsl:copy>
+      <xsl:apply-templates select="@*"/>
+      <xsl:apply-templates/>
+   </xsl:copy>
+</xsl:template>
+
+<xsl:template match="xsl:output">
+  <xsl:comment>Same as xhtml but with doctypes removed from xsl:output </xsl:comment>
+  <xsl:text>&#10;</xsl:text>
+  <xsl:comment>and including from ../xhtml directory </xsl:comment>
+  <xsl:text>&#10;</xsl:text>
+  <xslo:output method="xml" encoding="UTF-8" indent="no"/>
+</xsl:template>
+
+<xsl:template match="xsl:include/@href">
+  <xsl:choose>
+    <xsl:when test="starts-with(., '../')">
+      <xsl:copy-of select="."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:attribute name="href">
+        <xsl:value-of select="concat('../xhtml/', .)"/>
+      </xsl:attribute>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="comment()
+             [starts-with(string(.), 'This file was created automatically')]">
+  <xsl:text>&#10;</xsl:text>
+  <xsl:comment>This file was created automatically by xhtml2xhtml5.xsl from the xhtml stylesheet.</xsl:comment>
+  <xsl:text>&#10;</xsl:text>
+</xsl:template>
+
+<xsl:template match="comment()
+             [starts-with(string(.), 'from the HTML stylesheets')]"/>
+
+<xsl:include href="../common/subtitles.xsl"/>
+</xsl:stylesheet>
+
diff --git a/build.xml b/build.xml
index 55dbca5..42541e6 100644
--- a/build.xml
+++ b/build.xml
@@ -1324,6 +1324,24 @@
             </classpath>
         </java>
     </target>
+  
+    <!-- ================================================================== -->
+    <!-- webhelp helpers                                                    -->
+    <!-- ================================================================== -->
+  
+    <target name="webhelp"
+          description="Create all webhelp">
+        <subant target="webhelp.all">
+            <filelist dir="." files=" applications/content/template/docbook/webhelp/build.ofbiz.xml"/>
+        </subant>
+    </target>  
+    
+    <target name="clean-webhelp"
+          description="Clean all webhelp">
+        <subant target="clean">
+          <filelist dir="." files=" applications/content/template/docbook/webhelp/build.ofbiz.xml"/>
+        </subant>
+    </target>
 
     <!-- ================================================================== -->
     <!-- Old tasks.                                                         -->
diff --git a/framework/appserver/README b/framework/appserver/README
new file mode 100644
index 0000000..0b435dd
--- /dev/null
+++ b/framework/appserver/README
@@ -0,0 +1,8 @@
+For Websphere community edition or Geronimo refer to the Guidelines in the OFBiz documentation : http://docs.ofbiz.org/x/Ah
+Else to generate configuration files from the templates in a sub-directory of the templates directory just run something like (from the ofbiz.home directory):
+
+java -jar ofbiz.jar -setup test
+
+All template files in the given sub-directory, in case "test", will be processed and put in a corresponding sub-directory of ${ofbiz.home}/setup.
+
+
diff --git a/framework/appserver/build.xml b/framework/appserver/build.xml
new file mode 100644
index 0000000..72230c2
--- /dev/null
+++ b/framework/appserver/build.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project name="OFBiz - AppServers" default="jar" basedir=".">
+    <import file="../../common.xml"/>
+
+    <!-- ================================================================== -->
+    <!-- Initialization of all property settings                            -->
+    <!-- ================================================================== -->
+
+    <property name="desc" value="AppServers Component"/>
+    <property name="name" value="ofbiz-appsvrs"/>
+    <property name="ofbiz.home.dir" value="../.."/>
+
+    <path id="local.class.path">
+        <fileset dir="../base/lib" includes="*.jar"/>
+        <fileset dir="../start/build/lib" includes="*.jar"/>
+        <fileset dir="../base/build/lib" includes="*.jar"/>
+        <fileset dir="../webapp/lib" includes="*.jar"/>
+        <fileset dir="../webapp/build/lib" includes="*.jar"/>
+    </path>
+</project>
diff --git a/framework/appserver/config/appserver.properties b/framework/appserver/config/appserver.properties
new file mode 100644
index 0000000..3f274dd
--- /dev/null
+++ b/framework/appserver/config/appserver.properties
@@ -0,0 +1,56 @@
+#####################################################################
+# Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#####################################################################
+
+####
+# OFBiz Setup properties File
+####
+
+######## Default WASCE/Geronimo Settings. Refer to the Guidelines in the OFBiz documentation : http://cwiki.apache.org/confluence/x/IYBr ########
+### Path to geronimo home (in other words, application server location).
+# You may also use a GERONIMO_HOME env var, in such case let commented out here
+### Linux
+#geronimoHome=/home/jacques/IBM/WebSphere/AppServerCommunityEdition
+#geronimoHome=/home/jacques/Apache Software Foundation/geronimo-tomcat6-jee5-2.0.3
+### Windows
+#*** Note that under Windows you must use / here in place of \ (or put \\)
+#*** Beware for geronimo-2.0.3 snapshot, under Windows some files have a path longer than 256 chars. Hence I put it directly under c:
+#*** Beware also if you use RMI you can't have spaces in path
+#geronimoHome=C:/wasce
+#geronimoHome=C:/geronimo-tomcat6-jee5-2.0.3
+
+### user login
+user=system
+# password
+password=manager
+
+### Server is offline or not. Should be offline the 1st time you deploy since you need to copy after lines from META-INF/REAME hence by default true
+offline=false
+
+### Pause in deployment script ?
+pauseInGeronimoScript=false
+
+### Undeploy/Deploy (useful when offline) or Redeploy (implies that the server is running)
+redeploy=false
+
+### The number (instancesNumber) given here is in origin 0. Hence 0 means one instance.
+# In other word you give the n-1 number of instances (n being the number of instances).
+# For instance 2 means 3 instances deployed. # This to allow the default instance which is not numbered
+instancesNumber=0
+
+### host
+#host=192.168.2.7
+#geronimoHostHome=C/Program Files/IBM/WebSphere/AppServerCommunityEdition
+
+### port
+#port=31099
diff --git a/framework/appserver/config/ofbiz-containers.xml b/framework/appserver/config/ofbiz-containers.xml
new file mode 100644
index 0000000..32c2209
--- /dev/null
+++ b/framework/appserver/config/ofbiz-containers.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<ofbiz-containers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-containers.xsd">
+    <container name="component-container" class="org.ofbiz.base.container.ComponentContainer"/>
+    <container name="generate-container" class="org.ofbiz.appservers.GenerateContainer"/>
+</ofbiz-containers>
diff --git a/framework/appserver/ofbiz-component.xml b/framework/appserver/ofbiz-component.xml
new file mode 100644
index 0000000..6c61ab0
--- /dev/null
+++ b/framework/appserver/ofbiz-component.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<ofbiz-component name="appservers"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-component.xsd">
+    <resource-loader name="main" type="component"/>
+    <classpath type="jar" location="build/lib/*"/>
+    <classpath type="dir" location="config"/>
+</ofbiz-component>
diff --git a/framework/appserver/src/org/ofbiz/appservers/GenerateContainer.java b/framework/appserver/src/org/ofbiz/appservers/GenerateContainer.java
new file mode 100644
index 0000000..6b9eaec
--- /dev/null
+++ b/framework/appserver/src/org/ofbiz/appservers/GenerateContainer.java
@@ -0,0 +1,523 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *******************************************************************************/
+
+package org.ofbiz.appservers;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.Writer;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import javolution.util.FastList;
+import javolution.util.FastMap;
+
+import org.ofbiz.base.component.ComponentConfig;
+import org.ofbiz.base.container.Container;
+import org.ofbiz.base.container.ContainerException;
+import org.ofbiz.base.start.Classpath;
+import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilProperties;
+import org.ofbiz.base.util.UtilURL;
+import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.base.util.template.FreeMarkerWorker;
+import org.w3c.dom.Document;
+
+/**
+ * GenerateContainer - Generates Configuration Files For Application Servers
+ * ** This container requires StartInfoLoader to be loaded at startup.
+ * ** This container requires the ComponentContainer to be loaded first.
+ *
+ */
+public class GenerateContainer implements Container {
+
+    public static final String module = GenerateContainer.class.getName();
+    public static final String source = "/framework/appserver/templates/";
+    public static String target = "/setup/";
+
+    protected String configFile = null;
+    protected String ofbizHome = null;
+    protected String args[] = null;
+
+    private boolean isGeronimo = false;
+    private String geronimoHome = null;
+    private String name;
+
+    @Override
+    public void init(String[] args, String name, String configFile) {
+        this.name = name;
+        ofbizHome = System.getProperty("ofbiz.home");
+        this.configFile = configFile;
+        this.args = args;
+        isGeronimo = args[0].toLowerCase().contains("geronimo") || args[0].toLowerCase().contains("wasce");
+        if (isGeronimo) {
+            target="/META-INF/";
+            geronimoHome = System.getenv("GERONIMO_HOME");
+            if (geronimoHome == null) {
+                geronimoHome = UtilProperties.getPropertyValue("appserver", "geronimoHome", null);
+            }
+        }
+    }
+
+    /**
+     * @see org.ofbiz.base.container.Container#start()
+     */
+    public boolean start() throws ContainerException {
+        generateFiles();
+        return true;
+    }
+
+    /**
+     * Stop the container
+     *
+     * @throws org.ofbiz.base.container.ContainerException
+     *
+     */
+    public void stop() throws ContainerException {
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    private void generateFiles() throws ContainerException {
+        if (isGeronimo) {
+            if (geronimoHome == null) {
+                Debug.logFatal("*** 'GERONIMO_HOME' was not found in your environment. Please set the location of Geronimo into a GERONIMO_HOME env var or as a geronimoHome property in appserver.properties file.", module);
+                throw new ContainerException("Error in Geronimo deployment, please check the log");
+            }
+        }
+        File files[] = getTemplates();
+        Map<String, Object> dataMap = buildDataMap();
+
+        String user = UtilProperties.getPropertyValue("appserver", "user", "system");
+        String password = UtilProperties.getPropertyValue("appserver", "password", "manager");
+
+        boolean offline = UtilProperties.propertyValueEqualsIgnoreCase("appserver", "offline", "true");
+        boolean redeploy = UtilProperties.propertyValueEqualsIgnoreCase("appserver", "redeploy", "true");
+
+        String geronimoHostHome = UtilProperties.getPropertyValue("appserver", "geronimoHostHome", null);
+        String host = UtilProperties.getPropertyValue("appserver", "host", "");
+        String port = UtilProperties.getPropertyValue("appserver", "port", "");
+        boolean pauseInGeronimoScript = UtilProperties.propertyValueEqualsIgnoreCase("appserver", "pauseInGeronimoScript", "true");
+
+        int instancesNumber = (int) UtilProperties.getPropertyNumber("appserver", "instancesNumber");
+        String instanceNumber = "";
+
+        if (isGeronimo) {
+            File geronimoHomeDir = new File (geronimoHome);
+            if (!(geronimoHomeDir.isDirectory())) {
+                Debug.logFatal("*** " + geronimoHome + " does not exist or is not a directoy. Please set the location of Geronimo into a GERONIMO_HOME env var or as a geronimoHome property in appserver.properties file.", module);
+                throw new ContainerException("Error in Geronimo deployment, please check the log");
+            }
+
+            if (UtilValidate.isNotEmpty(host) && UtilValidate.isNotEmpty(geronimoHostHome)) {
+                geronimoHomeDir = new File ("//" + host + "/" + geronimoHostHome);
+                if (!(geronimoHomeDir.isDirectory())) {
+                    Debug.logFatal("*** " + geronimoHostHome + " does not exist or is not a directoy. Please set the location of Geronimo on host as a geronimoHostHome property in appserver.properties file.", module);
+                    throw new ContainerException("Error in Geronimo deployment, please check the log");
+                }
+            } else {
+                geronimoHostHome = geronimoHome;
+            }
+
+            if (redeploy && offline) {
+                Debug.logFatal("*** You can't use redeploy with a server offline.", module);
+                    throw new ContainerException("Error in Geronimo deployment, please check the log");
+                }
+
+            for(int inst = 0; inst <= instancesNumber; inst++) {
+                instanceNumber = (inst == 0 ? "" : inst).toString();
+                GenerateGeronimoDeployment geronimoDeployment = new GenerateGeronimoDeployment();
+                List<String> classpathJars = geronimoDeployment.generate(args[0], geronimoHostHome, instanceNumber);
+                if (classpathJars == null) {
+                    throw new ContainerException("Error in Geronimo deployment, please check the log");
+                }
+                dataMap.put("classpathJars", classpathJars);
+                dataMap.put("pathSeparatorChar", File.pathSeparatorChar);
+                dataMap.put("instanceNumber", instanceNumber);
+                //                if (UtilValidate.isNotEmpty(instanceNumber)) {
+                //                    List webApps = (List) dataMap.get("webApps");
+                //                    for (Object webAppObject: webApps) {
+                //                        WebappInfo webAppInfo = (ComponentConfig.WebappInfo) webAppObject;
+                //                        String webAppLocation = webAppInfo.getLocation();
+                //                        String webXmlLocation = webAppLocation + "/WEB-INF/web.xml";
+                //                        if (isFileExistsAndCanWrite(webXmlLocation)) {
+                //                            DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
+                //                            DocumentBuilder docBuilder = null;
+                //                            try {
+                //                                docBuilder = docFactory.newDocumentBuilder();
+                //                            } catch (ParserConfigurationException e) {
+                //                                throw new ContainerException(e);
+                //                            }
+                //                            Document doc = null;
+                //                            try {
+                //                                doc = docBuilder.parse(webXmlLocation);
+                //                            } catch (SAXException e) {
+                //                                throw new ContainerException(e);
+                //                            } catch (IOException e) {
+                //                                throw new ContainerException(e);
+                //                            }
+                //                            Node webApp = doc.getFirstChild();
+                //                            Node contextParam = doc.createElement("context-param");
+                //                            NamedNodeMap contextParamAttributes = contextParam.getAttributes();
+                //
+                //                            Attr paramName = doc.createAttribute("param-name");
+                //                            paramName.setValue("instanceNumber");
+                //                            contextParamAttributes.setNamedItem(paramName);
+                //
+                //                            Attr paramValue = doc.createAttribute("param-value");
+                //                            paramValue.setValue(instanceNumber);
+                //                            contextParamAttributes.setNamedItem(paramValue);
+                //        //                    Node nodeToAppend = doc.importNode(contextParam, true); this should not be needed
+                //        //                    webApp.appendChild(nodeToAppend);
+                //
+                //        //                    webApp.appendChild(contextParam); this is the line needed but commented for now
+                //
+                //                            Transformer transformer;
+                //                            try {
+                //                                transformer = TransformerFactory.newInstance().newTransformer();
+                //                            } catch (TransformerConfigurationException e) {
+                //                                throw new ContainerException(e);
+                //                            } catch (TransformerFactoryConfigurationError e) {
+                //                                throw new ContainerException(e);
+                //                            }
+                //                            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+                //
+                //                            StreamResult result = new StreamResult(new StringWriter());
+                //                            DOMSource source = new DOMSource(doc);
+                //                            try {
+                //                                transformer.transform(source, result);
+                //                            } catch (TransformerException e) {
+                //                                throw new ContainerException(e);
+                //                            }
+                //                            String xmlString = result.getWriter().toString();
+                //                            System.out.println(xmlString); //TODO write to file using writeToXmlFile
+                //                            break; // Only the 1st web.xml file need to be modified
+                //                        } else {
+                //                            Debug.logInfo("Unable to change the deployment descriptor : " + webXmlLocation + ". Maybe it does not exist, or is in read only mode ?", module);
+                //                        }
+                //                    }
+                //                }
+
+                //Debug.logInfo("Using Data : " + dataMap, module);
+                for (int i = 0; i < files.length; i++) {
+                    if (!(files[i].isDirectory() || files[i].isHidden() || files[i].getName().equalsIgnoreCase("geronimo-web.xml"))) {
+                        parseTemplate(files[i], dataMap);
+                    }
+                }
+
+                String ofbizName = "ofbiz" + instanceNumber;
+                String separator = File.separator;
+                File workingDir = new File(geronimoHome + separator + "bin");
+                ProcessBuilder processBuilder = null;
+                Process process = null;
+                String command = null;
+                String commandCommonPart = null;
+                if ("\\".equals(separator)) {   //Windows
+                    commandCommonPart = "deploy --user " + user +  " --password " +  password;
+                } else {                        // Linux
+                    commandCommonPart = workingDir + "/deploy.sh --user " + user +  " --password " +  password;
+                }
+                if (UtilValidate.isNotEmpty(host)) {
+                    commandCommonPart += " --host " + host + (UtilValidate.isNotEmpty(port) ? " --port " + port : "");
+                }
+
+                if (!redeploy) {
+                if ("\\".equals(separator)) { //Windows
+                    if (offline) {
+                        command = commandCommonPart + " --offline undeploy " + ofbizName;
+                    } else {
+                        command = commandCommonPart + " undeploy " + ofbizName;
+                    }
+                        processBuilder = new ProcessBuilder("cmd.exe", "/c", command);
+                } else {                        // Linux
+                    if (offline) {
+                        command = commandCommonPart + " --offline undeploy " + ofbizName;
+                    } else {
+                        command = commandCommonPart + " undeploy " + ofbizName;
+                    }
+                        processBuilder = new ProcessBuilder("sh", "-c", command);
+                }
+
+                if (pauseInGeronimoScript) {
+                        Map<String, String> env = processBuilder.environment();
+                    env.put("GERONIMO_BATCH_PAUSE", "on");
+                }
+                    processBuilder.directory(workingDir);
+
+                try {
+                    System.out.println("Currently undeploying " + ofbizName + ", using : <<" + command + ">>, please wait ...");
+                        processBuilder.redirectErrorStream(true);
+                        process = processBuilder.start();
+                        java.io.InputStream is = process.getInputStream();
+                    byte[] buf = new byte[2024];
+                    int readLen = 0;
+                    while ((readLen = is.read(buf,0,buf.length)) != -1) {
+                        if ("\\".equals(separator)) {   //Windows
+                            System.out.print(new String(buf,0,readLen));
+                        } else {
+                            System.out.println(new String(buf,0,readLen));
+                        }
+                    }
+                    is.close();
+                        process.waitFor();
+    //                    System.out.println(process.waitFor());
+    //                    System.out.println("exit value" + process.exitValue());
+                    Debug.logInfo(ofbizName + " undeployment ended" , module);
+                } catch (IOException e) {
+                    throw new ContainerException(e);
+                } catch (InterruptedException e) {
+                    throw new ContainerException(e);
+                    } finally {
+                        process.destroy();
+                    }
+                }
+
+                if (redeploy) {
+                    if ("\\".equals(separator)) { //Windows
+                        command = commandCommonPart + " redeploy " + ofbizHome;
+                        processBuilder = new ProcessBuilder("cmd.exe", "/c", command);
+                    } else {                      // Linux
+                        command = commandCommonPart + " redeploy " + ofbizHome;
+                        processBuilder = new ProcessBuilder("sh", "-c", command);
+                }
+
+                } else {
+                if ("\\".equals(separator)) { //Windows
+                    if (offline) {
+                            command = commandCommonPart + " --offline deploy --inPlace " + ofbizHome;
+                    } else {
+                            command = commandCommonPart + " deploy --inPlace " + ofbizHome;
+                    }
+                        processBuilder = new ProcessBuilder("cmd.exe", "/c", command);
+                } else {                      // Linux
+                    if (offline) {
+                            command = commandCommonPart + " --offline deploy --inPlace " + ofbizHome;
+                    } else {
+                            command = commandCommonPart + " deploy --inPlace " + ofbizHome;
+                        }
+                        processBuilder = new ProcessBuilder("sh", "-c", command);
+                    }
+                }
+
+                if (pauseInGeronimoScript) {
+                    Map<String, String> env = processBuilder.environment();
+                    env.put("GERONIMO_BATCH_PAUSE", "on");
+                }
+                processBuilder.directory(workingDir);
+
+                try {
+                    System.out.println("Currently deploying " + ofbizName + ", using : <<" + command + ">>, please wait ...");
+                    processBuilder.redirectErrorStream(true);
+                    process = processBuilder.start();
+                    java.io.InputStream is = process.getInputStream();
+                    byte[] buf = new byte[2024];
+                    int readLen = 0;
+                    while ((readLen = is.read(buf,0,buf.length)) != -1) {
+                        if ("\\".equals(separator)) {   //Windows
+                            System.out.print(new String(buf,0,readLen));
+                        } else {
+                            System.out.println(new String(buf,0,readLen));
+                        }
+                    }
+                    is.close();
+                    process.waitFor();
+//                    System.out.println(process.waitFor());
+//                    System.out.println("exit value" + process.exitValue());
+                    Debug.logInfo(ofbizName + " deployment ended" , module);
+                } catch (IOException e) {
+                    throw new ContainerException(e);
+                } catch (InterruptedException e) {
+                    throw new ContainerException(e);
+                } finally {
+                    process.destroy();
+                }
+            }
+        } else {
+            //Debug.logInfo("Using Data : " + dataMap, module);
+            for (int i = 0; i < files.length; i++) {
+                if (!files[i].isDirectory() && !files[i].isHidden()) {
+                    parseTemplate(files[i], dataMap);
+                }
+            }
+        }
+    }
+
+    private File[] getTemplates() throws ContainerException {
+        if (args == null) {
+            throw new ContainerException("Invalid application server type argument passed");
+        }
+
+        String templateLocation = args[0];
+        if (templateLocation == null) {
+            throw new ContainerException("Unable to locate Application Server template directory");
+        }
+
+        File parentDir = new File(ofbizHome + source + templateLocation);
+        if (!parentDir.exists() || !parentDir.isDirectory()) {
+            throw new ContainerException("Template location - " + templateLocation + " does not exist!");
+        }
+
+        return parentDir.listFiles();
+    }
+
+    private Map<String, Object> buildDataMap() throws ContainerException {
+        Map<String, Object> dataMap = FastMap.newInstance();
+        List<?> c[] = getClasspath();
+        dataMap.put("targetDirectory", getTargetDirectory());
+        dataMap.put("pathSeparatorChar", File.pathSeparatorChar);
+        dataMap.put("classpath", System.getProperty("java.class.path"));
+        dataMap.put("classpathJars", c[0]);
+        dataMap.put("classpathDirs", c[1]);
+        dataMap.put("env", System.getProperties());
+        dataMap.put("webApps", ComponentConfig.getAllWebappResourceInfos());
+        dataMap.put("ofbizHome", System.getProperty("ofbiz.home"));
+        return dataMap;
+    }
+
+    private List<?>[] getClasspath() {
+        Classpath classPath = new Classpath(System.getProperty("java.class.path"));
+        List<File> elements = classPath.getElements();
+        List<String> jar = FastList.newInstance();
+        List<String> dir = FastList.newInstance();
+
+        for (File f: elements) {
+            if (f.exists()) {
+                if (f.isDirectory()) {
+                    String path = f.getAbsolutePath();
+                    dir.add(path.replace('\\','/'));
+                } else {
+                    String path = f.getAbsolutePath();
+                    jar.add(path.replace('\\','/'));
+                }
+            }
+        }
+        List<?>[] lists = { jar, dir };
+        return lists;
+    }
+
+    private String getTargetDirectory() throws ContainerException {
+        // create the target file/directory
+        String targetDirectoryName = args.length > 1 ? args[1] : null;
+        if (targetDirectoryName == null) {
+            targetDirectoryName = target;
+        }
+        String targetDirectory = null;
+        if (!isGeronimo) {
+            targetDirectory = ofbizHome + targetDirectoryName + args[0];
+        } else {
+            targetDirectory = ofbizHome + targetDirectoryName;
+        }
+        File targetDir = new File(targetDirectory);
+        if (!targetDir.exists()) {
+            boolean created = targetDir.mkdirs();
+            if (!created) {
+                throw new ContainerException("Unable to create target directory - " + targetDirectory);
+            }
+        }
+
+        if (!targetDirectory.endsWith("/")) {
+            targetDirectory = targetDirectory + "/";
+        }
+
+        return targetDirectory;
+    }
+
+    private void parseTemplate(File templateFile, Map<String, Object> dataMap) throws ContainerException {
+        Debug.logInfo("Parsing template : " + templateFile.getAbsolutePath(), module);
+        Reader reader = null;
+        try {
+            reader = new InputStreamReader(new FileInputStream(templateFile));
+        } catch (FileNotFoundException e) {
+            throw new ContainerException(e);
+        } finally {
+            if (reader != null) {
+                try {
+                    reader.close();
+                } catch (IOException e) {
+                    throw new ContainerException(e);
+                }
+            }
+        }
+
+        // create the target file/directory
+        String targetDirectory = getTargetDirectory();
+
+        // write the template to the target directory
+        Writer writer = null;
+        try {
+            writer = new FileWriter(targetDirectory + templateFile.getName());
+            try {
+                FreeMarkerWorker.renderTemplate(UtilURL.fromFilename(templateFile.getAbsolutePath()).toExternalForm(), dataMap, writer);
+            } catch (Exception e) {
+                throw new ContainerException(e);
+            }
+        } catch (IOException e) {
+            throw new ContainerException(e);
+        } finally {
+            try {
+                if (writer != null) {
+                    writer.flush();
+                    writer.close();
+                }
+            } catch (IOException e) {
+                throw new ContainerException(e);
+            }
+        }
+
+    }
+
+    // This method writes a DOM document to a file
+    public static void writeToXmlFile(Document doc, String filename) {
+        try {
+            // Prepare the DOM document for writing
+            Source source = new DOMSource(doc);
+
+            // Prepare the output file
+            File file = new File(filename);
+            Result result = new StreamResult(file);
+
+            // Write the DOM document to the file
+            Transformer xformer = TransformerFactory.newInstance().newTransformer();
+            xformer.transform(source, result);
+        } catch (TransformerConfigurationException e) {
+        } catch (TransformerException e) {
+        }
+    }
+
+    public boolean isFileExistsAndCanWrite(String fileName) {
+        File f = new File(fileName);
+        return f.exists() && f.canWrite();
+    }
+}
diff --git a/framework/appserver/src/org/ofbiz/appservers/GenerateGeronimoDeployment.java b/framework/appserver/src/org/ofbiz/appservers/GenerateGeronimoDeployment.java
new file mode 100644
index 0000000..4cc792a
--- /dev/null
+++ b/framework/appserver/src/org/ofbiz/appservers/GenerateGeronimoDeployment.java
@@ -0,0 +1,198 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *******************************************************************************/
+
+package org.ofbiz.appservers;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.Writer;
+import java.nio.channels.FileChannel;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.ofbiz.base.component.ComponentConfig;
+import org.ofbiz.base.start.Classpath;
+import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.StringUtil;
+import org.ofbiz.base.util.UtilURL;
+import org.ofbiz.base.util.template.FreeMarkerWorker;
+
+/**
+ * GenerateGeronimoRepository - Generate needed jars in Geronimo (or WASCE) repository
+ *
+ */
+public class GenerateGeronimoDeployment {
+
+    public static final String module = GenerateGeronimoDeployment.class.getName();
+    public static final String source = "/framework/appserver/templates/";
+
+    protected  String geronimoRepository = null;
+
+    public List<String> generate(String geronimoVersion, String geronimoHome, String instanceNumber) {
+        geronimoRepository = geronimoHome + "/repository";
+        Debug.logInfo("The WASCE or Geronimo Repository is " + geronimoRepository, module);
+        Classpath classPath = new Classpath(System.getProperty("java.class.path"));
+        List<File> elements = classPath.getElements();
+        List<String> jar_version = new ArrayList<String>();
+        String jarPath = null;
+        String jarName = null;
+        String newJarName = null;
+        String jarNameSimple = null;
+        String jarVersion = "1.0";
+        int lastDash = -1;
+
+        for (File f: elements) {
+            if (f.exists()) {
+                if (f.isFile()) {
+                    jarPath = f.getAbsolutePath();
+                    jarName = f.getName();
+                    String jarNameWithoutExt = (String) jarName.subSequence(0, jarName.length()-4);
+                    lastDash = jarNameWithoutExt.lastIndexOf("-");
+                    if (lastDash > -1) {
+                        // get string between last dash and extension = version ?
+                        jarVersion = jarNameWithoutExt.substring(lastDash+1, jarNameWithoutExt.length());
+                        // get string before last dash
+                        jarNameSimple = jarNameWithoutExt.substring(0, lastDash);
+                        // Remove all but digits and "." and if length > 0 then it's already versioned
+                        boolean alreadyVersioned = 0 < StringUtil.removeRegex(jarVersion, "[^.0123456789]").length();
+                        if (! alreadyVersioned) {
+                            jarVersion = "1.0"; // by default put 1.0 version
+                            jarNameSimple = jarNameWithoutExt;
+                            newJarName = jarNameWithoutExt + "-" + jarVersion + ".jar";
+                        } else {
+                            newJarName = jarName;
+                        }
+                    } else {
+                        jarVersion = "1.0"; // by default put 1.0 version
+                        jarNameSimple = jarNameWithoutExt;
+                        newJarName = jarNameWithoutExt + "-" + jarVersion + ".jar";
+                    }
+
+                    jar_version.add(jarNameSimple + "#" + jarVersion);
+
+                    String targetDirectory = geronimoRepository + "/org/ofbiz/" + jarNameSimple + "/" + jarVersion;
+                    File targetDir = new File(targetDirectory);
+                    if (!targetDir.exists()) {
+                        boolean created = targetDir.mkdirs();
+                        if (!created) {
+                            Debug.logFatal("Unable to create target directory - " + targetDirectory, module);
+                            return null;
+                        }
+                    }
+
+                    if (!targetDirectory.endsWith("/")) {
+                        targetDirectory = targetDirectory + "/";
+                    }
+                    String newCompleteJarName= targetDirectory + newJarName;
+
+                    // copy the jar to the target directory
+                    try {
+                        // Create channel on the source
+                        FileChannel srcChannel = new FileInputStream(jarPath).getChannel();
+
+                        // Create channel on the destination
+                        FileChannel dstChannel = new FileOutputStream(newCompleteJarName).getChannel();
+
+                        // Copy file contents from source to destination
+                        dstChannel.transferFrom(srcChannel, 0, srcChannel.size());
+                        Debug.logInfo("Created jar file : " + newJarName + " in WASCE or Geronimo repository", module);
+
+                        // Close the channels
+                        srcChannel.close();
+                        dstChannel.close();
+                    } catch (IOException e) {
+                        Debug.logFatal("Unable to create jar file - " + newJarName + " in WASCE or Geronimo repository (certainly already exists)", module);
+                        return null;
+                    }
+                }
+            }
+        }
+        List<ComponentConfig.WebappInfo> webApps  = ComponentConfig.getAllWebappResourceInfos();
+        File geronimoWebXml = new File(System.getProperty("ofbiz.home") + "/framework/appserver/templates/" + geronimoVersion + "/geronimo-web.xml");
+        for (ComponentConfig.WebappInfo webApp: webApps) {
+            if (null != webApp) {
+                parseTemplate(geronimoWebXml, webApp);
+            }
+        }
+        return jar_version;
+    }
+
+    private void parseTemplate(File templateFile, ComponentConfig.WebappInfo webApp) {
+        Debug.logInfo("Parsing template : " + templateFile.getAbsolutePath() + " for web app " + webApp.getName(), module);
+
+        Map<String, Object> dataMap= new HashMap<String, Object>();
+        dataMap.put("webApp", webApp);
+        String webAppGeronimoWebXmlFileName = webApp.getLocation() + "/WEB-INF/geronimo-web.xml";
+        String webAppGeronimoWebInfDirName = webApp.getLocation() + "/WEB-INF";
+        File webAppGeronimoWebInfDir = new File(webAppGeronimoWebInfDirName);
+
+        if (!(webAppGeronimoWebInfDir.exists() && webAppGeronimoWebInfDir.isDirectory())) {
+            Debug.logFatal("Unable to create - " + webAppGeronimoWebXmlFileName, module);
+            Debug.logFatal("The directory "+ webAppGeronimoWebInfDirName + " does not exist", module);
+            return;
+        }
+
+        Reader reader = null;
+        try {
+            reader = new InputStreamReader(new FileInputStream(templateFile));
+        } catch (FileNotFoundException e) {
+            Debug.logFatal("Unable to create - " + webAppGeronimoWebXmlFileName, module);
+            return;
+        } finally {
+            if (reader != null) {
+                try {
+                    reader.close();
+                } catch (IOException e) {
+                    Debug.logError("Trouble closing - " + webAppGeronimoWebXmlFileName, module);
+                }
+            }
+        }
+
+        // write the template to the target directory
+        Writer writer = null;
+        try {
+            writer = new FileWriter(webAppGeronimoWebXmlFileName);
+        } catch (IOException e) {
+            Debug.logFatal("Unable to create - " + webAppGeronimoWebXmlFileName, module);
+            return;
+        }
+        try {
+            FreeMarkerWorker.renderTemplate(UtilURL.fromFilename(templateFile.getAbsolutePath()).toExternalForm(), dataMap, writer);
+        } catch (Exception e) {
+            Debug.logFatal("Unable to create - " + webAppGeronimoWebXmlFileName, module);
+            return;
+        }
+
+        try {
+            writer.flush();
+            writer.close();
+        } catch (IOException e) {
+            Debug.logFatal("Unable to create - " + webAppGeronimoWebXmlFileName, module);
+            return;
+        }
+    }
+}
diff --git a/framework/appserver/templates/glassfish21/README b/framework/appserver/templates/glassfish21/README
new file mode 100644
index 0000000..92f03b3
--- /dev/null
+++ b/framework/appserver/templates/glassfish21/README
@@ -0,0 +1,87 @@
+###############################################################################

+# Licensed to the Apache Software Foundation (ASF) under one

+# or more contributor license agreements.  See the NOTICE file

+# distributed with this work for additional information

+# regarding copyright ownership.  The ASF licenses this file

+# to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0

+#

+# Unless required by applicable law or agreed to in writing,

+# software distributed under the License is distributed on an

+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+# KIND, either express or implied.  See the License for the

+# specific language governing permissions and limitations

+# under the License.

+###############################################################################

+

+This directory contains templates for Glassfish Server v2.1 deployment

+======================================================================

+

+README                  - this file.

+run.sh                  - loads seed and demo data into JavaDB that comes with

+                          Glassfish server and then deploys OFBiz.

+deploy.sh               - automatic deployment script. Builds WARs and the

+                          ofbiz.ear and deploys onto glassfish.

+domain.xml_patch        - updated to record the ofbiz home.

+entityengine.xml_patch  - updated to use bundled JavaDB datasources.

+url.properties          - updated to set the HTTPS port to 8181 (default port).

+application.xml         - EAR metadata.

+

+

+

+HOW-TO (this needs to be posted on the OFBiz documentation site)

+======

+

+1. Setup

+    a. Create a folder somewhere on the disk with ~800MB free memory. 

+       This becomes the work area. Referred as <work-folder> hence forth.

+    b. Download Glassfish Server v2.1 and install. (Download it from [1])

+    c. Download OFBiz source (if you have not done already). (Either 

+       download the build from http://build.ofbiz.org or checkout from SVN. 

+       Refer [2])

+    d. Build OFBiz sources (in case of svn checkout) using 'ant' command. 

+       This will create 'ofbiz.jar' file.

+    e. Generate container templates for Glassfish v2.1 server.

+         i. Goto the OFBiz source folder (referred as OFBIZ_HOME).

+        ii. Use the command 'java -jar ofbiz.jar -setup glassfish21' to 

+            generate the templates. For more information refer [3]. 

+            This will create a new folder called 'setup' inside OFBIZ_HOME 

+            and copy the generated templates under the folder 

+            'setup/glassfish21'.

+

+

+if (you are using JavaDB && want seed and demo data loaded) {

+    Copy OFBIZ_HOME/setup/glassfish21/run.sh to <work-folder>;

+    run run.sh script now!; 

+    // (without quotes) './run.sh <glassfish_home> <glassfish-domain-path>'

+} else {

+ read ahead;

+}

+

+

+2. Install and start the database server if its not done already.

+3. Create / update entityengine.xml to include your database server details. 

+   Refer [4]. If you want to use JavaDB with default settings, you can use entityengine.xml_patch

+   readily available under 'OFBIZ_HOME/setup/glassfish21'.

+4. Load seed and demo data (optional, but highly recommended) by using

+   './ant run-install' command under OFBIZ_HOME. Refer [5].

+5. Copy OFBIZ_HOME/setup/glassfish21/deploy.sh to <work-folder>.

+6. Run deploy.sh.

+   (without quotes) './deploy.sh <glassfish-home> <glassfish-domain-path>'.

+7. Check domain.xml for XML validation errors. This is to make sure the patching of domain.xml in previous step was done neatly.

+8. Start/restart glassfish server if its not already running.

+9. If you have opted for loading demo data, goto

+   http://localhost:8080/ecommerce and http://localhost:8080/webtools to 

+   verify the installation.

+

+References :

+

+[1] : https://glassfish.dev.java.net/downloads/v2.1-b60e.html

+[2] : http://cwiki.apache.org/confluence/confluence/display/OFBADMIN/Demo+and+Test+Setup+Guide (Building from SVN)

+[3] : OFBIZ_HOME/framework/appserver/README

+[4] : http://cwiki.apache.org/confluence/display/OFBTECH/Apache+OFBiz+Technical+Production+Setup+Guide (2.c. Database Setup)

+[5] : http://cwiki.apache.org/confluence/display/OFBTECH/Apache+OFBiz+Technical+Production+Setup+Guide (2.d. Seed Data Loading)

+

diff --git a/framework/appserver/templates/glassfish21/application.xml b/framework/appserver/templates/glassfish21/application.xml
new file mode 100644
index 0000000..d7f1dcf
--- /dev/null
+++ b/framework/appserver/templates/glassfish21/application.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+Licensed to the Apache Software Foundation (ASF) under one

+or more contributor license agreements.  See the NOTICE file

+distributed with this work for additional information

+regarding copyright ownership.  The ASF licenses this file

+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0

+

+Unless required by applicable law or agreed to in writing,

+software distributed under the License is distributed on an

+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+KIND, either express or implied.  See the License for the

+specific language governing permissions and limitations

+under the License.

+-->

+<application xmlns="http://java.sun.com/xml/ns/javaee"

+               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+               xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd"

+               version="5">

+

+    <description>Open For Business - Deployment</description>

+    <display-name>OFBiz</display-name>

+

+<#list webApps as webapp>

+    <module>

+        <web>

+            <web-uri>${webapp.getName()}.war</web-uri>

+            <context-root>${webapp.getContextRoot()}</context-root>

+        </web>

+    </module>

+</#list>

+    

+</application>

diff --git a/framework/appserver/templates/glassfish21/deploy.sh b/framework/appserver/templates/glassfish21/deploy.sh
new file mode 100644
index 0000000..4efb459
--- /dev/null
+++ b/framework/appserver/templates/glassfish21/deploy.sh
@@ -0,0 +1,145 @@
+#!/bin/sh

+

+###############################################################################

+# Licensed to the Apache Software Foundation (ASF) under one

+# or more contributor license agreements.  See the NOTICE file

+# distributed with this work for additional information

+# regarding copyright ownership.  The ASF licenses this file

+# to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0

+#

+# Unless required by applicable law or agreed to in writing,

+# software distributed under the License is distributed on an

+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+# KIND, either express or implied.  See the License for the

+# specific language governing permissions and limitations

+# under the License.

+###############################################################################

+

+

+#################################

+# Glassfish Deployment          #

+#                               #

+# Run with Glassfish Home and   #

+# domain directory path         #

+#################################

+

+# Check args.

+

+if [ $# -ne 2 ]; then

+  echo "Input required .."

+  echo "Syntax: $0 <glassfish-home> <glassfish-domain-directory-path>"

+  exit 1

+fi

+

+# Clean up ..

+

+if [ -f "./META-INF/application.xml" ]; then

+  rm -rf META-INF

+  echo "removed META-INF"

+fi

+if [ -f "./lib/ofbiz-base.jar" ]; then

+  rm -rf lib

+  echo "removed libs"

+  rm *.war

+  echo "removed wars"

+  rm ofbiz.ear

+  echo "removed ear"

+fi

+

+GLASSFISH_HOME=$1

+DOMAIN_HOME=$2

+

+# setup JavaDB drivers.

+if [ ! -f "${ofbizHome}/framework/entity/lib/jdbc/derbyclient.jar" ]; then

+    cp $GLASSFISH_HOME/javadb/lib/derbyclient.jar ${ofbizHome}/framework/entity/lib/jdbc/derbyclient.jar

+fi

+

+# setup log4j.xml (copy to domain1/config folder)

+if [ ! -f "$DOMAIN_HOME/config/log4j.xml" ]; then

+    cp ${ofbizHome}/framework/base/config/log4j.xml $DOMAIN_HOME/config

+fi

+

+# setup the OFBIZ_HOME by updating domain.xml

+if [ ! -f "$DOMAIN_HOME/config/domain.xml_bak" ]; then

+  cp $DOMAIN_HOME/config/domain.xml $DOMAIN_HOME/config/domain.xml_bak

+  patch  $DOMAIN_HOME/config/domain.xml ${targetDirectory}/domain.xml.patch

+  if [ $? ne 0] ; then

+    echo "Patching domain.xml failed.."

+    exit 1;

+  fi

+  echo "patched domain.xml"

+fi

+

+# setup entityengine.xml

+if [ -f "${ofbizHome}/framework/entity/config/entityengine.xml" ]; then

+    cp ${ofbizHome}/framework/entity/config/entityengine.xml ${ofbizHome}/framework/entity/config/entityengine.xml_bak

+    patch  framework/entity/config/entityengine.xml ${targetDirectory}/entityengine.xml.patch

+    if [ $? ne 0] ; then

+      echo "Patching entityengine.xml failed.."

+      exit 1;

+    fi

+    echo "patched entityengine.xml"

+fi

+

+# setup url.properties (SSL port)

+if [ -f "${ofbizHome}/framework/webapp/config/url.properties" ]; then

+    mv ${ofbizHome}/framework/webapp/config/url.properties ${ofbizHome}/framework/webapp/config/url.properties_bak

+    cp ${targetDirectory}/url.properties ${ofbizHome}/framework/webapp/config/url.properties

+    echo "Copied url.properties"

+fi

+

+# copy all lib files

+mkdir lib

+<#list classpathJars as jar>

+<#if (!jar.contains("j2eespec") && !jar.contains("catalina") && !jar.contains("mx4j") && !jar.contains("derby-") && !jar.contains("commons-el") && !jar.contains("avalon-framework") && !jar.contains("mail-1.4.jar"))>

+cp ${jar} ./lib

+</#if>

+</#list>

+echo "installed ofbiz libraries"

+

+<#list classpathDirs as dir>

+<#if (dir != ofbizHome)>

+<#assign jarname = dir.substring(ofbizHome.length()+1)/>

+<#assign jarname = jarname.replaceAll("/", ".")/>

+jar cvf ./lib/${jarname}.jar -C ${dir} .

+</#if>

+</#list>

+echo "\n\n"

+echo "packaged and installed ofbiz configuration directories"

+

+# WAR the web applications

+<#list webApps as webapp>

+jar -cvf ${webapp.getName()}.war -C ${webapp.getLocation()} .

+</#list>

+echo "WARred webapp directories"

+

+# create the application meta data

+mkdir META-INF

+cp ${targetDirectory}/application.xml ./META-INF

+echo "installed application.xml"

+

+# build EAR

+jar -cvf ofbiz.ear *

+

+# copy the EAR to autodeploy dir

+cp ofbiz.ear $DOMAIN_HOME/autodeploy/ofbiz.ear

+echo "Copied EAR to autodeploy"

+

+# revert entityengine.xml

+if [ -f "${ofbizHome}/framework/entity/config/entityengine.xml_bak" ]; then

+    mv ${ofbizHome}/framework/entity/config/entityengine.xml_bak ${ofbizHome}/framework/entity/config/entityengine.xml

+    echo "restored entityengine.xml"

+fi

+

+# revert url.properties

+if [ -f "${ofbizHome}/framework/webapp/config/url.properties_bak" ]; then

+    mv ${ofbizHome}/framework/webapp/config/url.properties_bak ${ofbizHome}/framework/webapp/config/url.properties

+    echo "restored url.properties"

+fi

+

+

+echo "\n"

diff --git a/framework/appserver/templates/glassfish21/entityengine.xml.patch b/framework/appserver/templates/glassfish21/entityengine.xml.patch
new file mode 100644
index 0000000..cb0fab6
--- /dev/null
+++ b/framework/appserver/templates/glassfish21/entityengine.xml.patch
@@ -0,0 +1,79 @@
+###############################################################################

+# Licensed to the Apache Software Foundation (ASF) under one

+# or more contributor license agreements.  See the NOTICE file

+# distributed with this work for additional information

+# regarding copyright ownership.  The ASF licenses this file

+# to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0

+#

+# Unless required by applicable law or agreed to in writing,

+# software distributed under the License is distributed on an

+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+# KIND, either express or implied.  See the License for the

+# specific language governing permissions and limitations

+# under the License.

+###############################################################################

+53,54c53,54

+<         <group-map group-name="org.ofbiz" datasource-name="localderby"/>

+<         <group-map group-name="org.ofbiz.olap" datasource-name="localderbyolap"/>

+---

+>         <group-map group-name="org.ofbiz" datasource-name="derby"/>

+>         <group-map group-name="org.ofbiz.olap" datasource-name="derbyolap"/>

+55a56,57

+> 

+> 

+123a126,176

+> 

+>     <datasource name="derby"

+>             helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"

+>             schema-name="ofbiz"

+>             field-type-name="derby"

+>             check-on-start="true"

+>             add-missing-on-start="true"

+>             use-pk-constraint-names="false"

+>             use-indices-unique="false"

+>             alias-view-columns="false">

+>         <read-data reader-name="seed"/>

+>         <read-data reader-name="seed-initial"/>

+>         <read-data reader-name="demo"/>

+>         <read-data reader-name="ext"/>

+>         <inline-jdbc

+>                 jdbc-driver="org.apache.derby.jdbc.ClientDriver"

+>                 jdbc-uri="jdbc:derby://localhost:1527/ofbiz;create=true"

+>                 jdbc-username="ofbiz"

+>                 jdbc-password="ofbiz"

+>                 isolation-level="ReadCommitted"

+>                 pool-minsize="2"

+>                 pool-maxsize="250"/>

+>         <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/DerbyDataSource" isolation-level="ReadCommitted"/> -->

+>     </datasource>

+> 

+> 

+>     <datasource name="derbyolap"

+>             helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"

+>             schema-name="ofbiz"

+>             field-type-name="derby"

+>             check-on-start="true"

+>             add-missing-on-start="true"

+>             use-pk-constraint-names="false"

+>             use-indices-unique="false"

+>             alias-view-columns="false">

+>         <read-data reader-name="seed"/>

+>         <read-data reader-name="seed-initial"/>

+>         <read-data reader-name="demo"/>

+>         <read-data reader-name="ext"/>

+>         <inline-jdbc

+>                 jdbc-driver="org.apache.derby.jdbc.ClientDriver"

+>                 jdbc-uri="jdbc:derby://localhost:1527/ofbiz;create=true"

+>                 jdbc-username="ofbiz"

+>                 jdbc-password="ofbiz"

+>                 isolation-level="ReadCommitted"

+>                 pool-minsize="2"

+>                 pool-maxsize="250"/>

+>         <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/DerbyDataSource" isolation-level="ReadCommitted"/> -->

+>     </datasource>

+> 

+> 

diff --git a/framework/appserver/templates/glassfish21/run.sh b/framework/appserver/templates/glassfish21/run.sh
new file mode 100644
index 0000000..4a80f82
--- /dev/null
+++ b/framework/appserver/templates/glassfish21/run.sh
@@ -0,0 +1,80 @@
+#!/bin/sh 

+

+###############################################################################

+# Licensed to the Apache Software Foundation (ASF) under one

+# or more contributor license agreements.  See the NOTICE file

+# distributed with this work for additional information

+# regarding copyright ownership.  The ASF licenses this file

+# to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0

+#

+# Unless required by applicable law or agreed to in writing,

+# software distributed under the License is distributed on an

+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+# KIND, either express or implied.  See the License for the

+# specific language governing permissions and limitations

+# under the License.

+###############################################################################

+

+# Check args.

+

+if [ $# -ne 2 ]; then

+  echo "Input required ..."

+  echo "Syntax: $0 <glassfish-home> <glassfish-domain-directory-path>"

+  exit 1

+fi

+

+GLASSFISH_HOME=$1

+DOMAIN_HOME=$2

+WORK_DIR=$PWD

+

+# Setup JavaDB JDBC driver.

+cd ../ 

+cp $GLASSFISH_HOME/javadb/lib/derbyclient.jar ${ofbizHome}/framework/entity/lib/jdbc/derbyclient.jar

+echo "Installed JDBC driver for JavaDB"

+

+# Generate seed and demo data.

+cd ${ofbizHome}

+cp framework/entity/config/entityengine.xml framework/entity/config/entityengine.xml_orig

+patch framework/entity/config/entityengine.xml ${targetDirectory}/entityengine.xml.patch 

+if [ $? ne 0] ; then

+ echo "Patching entityengine.xml failed.."

+ exit 1;

+fi

+

+ # Start JavaDB server.

+ cd $GLASSFISH_HOME

+ export DERBY_HOME=$PWD/javadb

+ export DERBY_OPTS=-Dderby.system.home=$PWD/domains/domain1/config

+ sh javadb/bin/startNetworkServer &

+echo "Started JavaDB server"

+

+ # Load the seed and demo data.

+ cd ${ofbizHome} 

+ ./ant run-install

+echo "Loaded seed and demo data"

+

+ # Restore entityengine.xml

+ mv framework/entity/config/entityengine.xml_orig framework/entity/config/entityengine.xml

+

+

+# Setup work area (where the WARs and EAR to be built.

+cp ${targetDirectory}/deploy.sh $WORK_DIR  

+

+# Run the deployment script.

+echo "Running the deployment script"

+cd $WORK_DIR  

+chmod +x deploy.sh  

+./deploy.sh $GLASSFISH_HOME $DOMAIN_HOME > run.log  

+

+

+# Finally start glassfish server.

+#echo "Starting glassfish server .."

+#cd $GLASSFISH_HOME

+#bin/asadmin start-domain &

+

+cd ..

+echo "done"

diff --git a/framework/appserver/templates/glassfish21/url.properties b/framework/appserver/templates/glassfish21/url.properties
new file mode 100644
index 0000000..eeeee73
--- /dev/null
+++ b/framework/appserver/templates/glassfish21/url.properties
@@ -0,0 +1,45 @@
+###############################################################################

+# Licensed to the Apache Software Foundation (ASF) under one

+# or more contributor license agreements.  See the NOTICE file

+# distributed with this work for additional information

+# regarding copyright ownership.  The ASF licenses this file

+# to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0

+#

+# Unless required by applicable law or agreed to in writing,

+# software distributed under the License is distributed on an

+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+# KIND, either express or implied.  See the License for the

+# specific language governing permissions and limitations

+# under the License.

+###############################################################################

+####

+# OFBiz Global URL Settings - WebSite specific settings found in WebSite entity

+####

+

+# HTTPS Port (Secure port)

+port.https.enabled=Y

+port.https=8181

+force.https.host=

+

+# HTTP Port (Not Secure port)

+port.http=8080

+force.http.host=

+

+# Static Content URLs to make it easy to move the serving load for static content to other machines

+# -- thse are for general content such as images, js & css files, or non-dynamic HTML files

+content.url.prefix.secure=

+content.url.prefix.standard=

+

+# Here you can set the domain string to use for new cookies

+cookie.domain=

+

+# Exclude jsessionid for User-Agents (separated by comma's)

+link.remove_lsessionid.user_agent_list = googlebot,yahoo,msnbot

+

+# Should HTTP parameters sent to services require encryption?

+# This is generally advised for more secure webapps as it makes it more difficult to spoof requests (XSRF) that change data. 

+service.http.parameters.require.encrypted=Y

diff --git a/framework/appserver/templates/jboss422/application.xml b/framework/appserver/templates/jboss422/application.xml
new file mode 100644
index 0000000..57b0822
--- /dev/null
+++ b/framework/appserver/templates/jboss422/application.xml
@@ -0,0 +1,18 @@
+<application xmlns="http://java.sun.com/xml/ns/javaee"
+               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+               xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd"
+               version="5">
+
+    <description>Open For Business - Deployment</description>
+    <display-name>OFBiz</display-name>
+
+    <#list webApps as webapp>
+
+    <module>
+        <web>
+            <web-uri>${webapp.getContextRoot()}.war</web-uri>
+            <context-root>${webapp.getContextRoot()}</context-root>
+        </web>
+    </module>
+    </#list>
+</application>
diff --git a/framework/appserver/templates/jboss422/build.xml b/framework/appserver/templates/jboss422/build.xml
new file mode 100644
index 0000000..b7f66ef
--- /dev/null
+++ b/framework/appserver/templates/jboss422/build.xml
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  -->
+
+<!-- ======================================================================
+     OFBiz -> JBoss 4.2.2 Installer
+     ====================================================================== -->
+
+<project name="OfBiz JBoss" default="generate">
+    <description>
+        Create the ear file to run OfBiz in Jboss
+    </description>
+
+    <property name="DERBY_VERSION" value="10.4.2.0"/>
+    <property name="ofbizHome" location="${ofbizHome}/"/>
+
+
+    <!-- =================================
+    target: generate
+    ================================= -->
+    <target name="generate" depends="installDerby" description="--> Create the ear file to run OfBiz in Jboss"/>
+
+    <!-- - - - - - - - - - - - - - - - - -
+    target: clean
+    - - - - - - - - - - - - - - - - - -->
+    <target name="clean">
+        <delete failonerror="false">
+            <fileset dir="./META-INF/">
+                <include name="**/**"/>
+            </fileset>
+        </delete>
+        <delete failonerror="false">
+            <fileset dir=".">
+                <include name="lib/** *.war"/>
+            </fileset>
+        </delete>
+
+    </target>
+
+    <!-- - - - - - - - - - - - - - - - - -
+    target: installDerby
+    - - - - - - - - - - - - - - - - - -->
+    <target name="installDerby" depends="clean">
+        <!-- install derby -->
+        <copy file="${r"${ofbizHome}"}/framework/entity/lib/jdbc/derby-${r"${DERBY_VERSION}"}.jar" todir="../../lib/"/>
+
+        <!-- install derby plugin -->
+        <copy file="../../../../docs/examples/varia/derby-plugin.jar" todir="../../lib/"/>
+
+        <!-- install derby datasource -->
+        <copy todir=".">
+            <fileset dir="${r"${ofbizHome}"}/framework/appserver/templates/jboss422/patches/">
+                <include name="derby*.xml"/>
+            </fileset>
+        </copy>
+
+        <!-- move entityengine.xml, log4j.xml and jndi.properties -->
+        <move file="${r"${ofbizHome}"}/framework/entity/config/entityengine.xml" tofile="${r"${ofbizHome}"}/framework/entity/config/entityengine.xml.jbak"/>
+        <move file="${r"${ofbizHome}"}/framework/entity/config/entityengine-jboss422.xml" tofile="${r"${ofbizHome}"}/framework/entity/config/entityengine.xml"/>
+        <move file="${r"${ofbizHome}"}/framework/base/config/log4j.xml" tofile="${r"${ofbizHome}"}/framework/base/config/_log4j.xml.bak"/>
+        <move file="${r"${ofbizHome}"}/framework/base/config/jndi.properties" tofile="${r"${ofbizHome}"}/framework/base/config/_jndi.properties.bak"/>
+
+        <!-- copy all lib files -->
+        <mkdir dir="lib"/>
+        <copy todir="./lib" flatten="true">
+            <fileset dir="${r"${ofbizHome}"}">
+                <#list classpathJars as jar>
+                  <#assign fullJarName = jar?j_string />
+                  <#assign jarname = (fullJarName?substring(ofbizHome?length +1))?j_string/>
+                  <include name="${jarname}"/>
+                </#list>
+                <exclude name="**/*j2eespec*.jar"/>
+                <exclude name="**/*geronimo*.jar"/>
+                <exclude name="**/*catalina*.jar"/>
+                <exclude name="**/*tomcat*.jar"/>
+                <exclude name="**/*mx4j*.jar"/>
+                <exclude name="**/*derby-*.jar"/>
+                <exclude name="**/*commons-logging*.jar"/>
+                <exclude name="**/*commons-collections*.jar "/>
+                <exclude name="**/*commons-codec*.jar"/>
+                <exclude name="**/*commons-el*.jar"/>
+                <exclude name="**/*avalon-framework*.jar"/>
+                <exclude name="**/*bsh*.jar"/>
+                <exclude name="**/*bsf*.jar"/>
+                <exclude name="**/*antlr*.jar"/>
+                <exclude name="**/*mail*.jar"/>
+                <exclude name="**/*xerces*.jar"/>
+                <exclude name="**/*xalan*.jar"/>
+            </fileset>
+        </copy>
+
+        <#list classpathDirs as dir>
+            <#if (dir != ofbizHome)>
+                <#assign dirname = dir?substring((ofbizHome?j_string)?length +1) />
+                <#assign dirname = dirname?replace("/", ".", "r")/>
+                <jar destfile="./lib/${dirname}.jar">
+                    <fileset dir="${dir}">
+                        <include name="**/**"/>
+                    </fileset>
+                </jar>
+            </#if>
+        </#list>
+
+        <!-- link the web applications -->
+        <#list webApps as webapp>
+            <copy todir=".${webapp.getContextRoot()}.war">
+                <fileset dir="${webapp.getLocation()}"/>
+            </copy>
+        </#list>
+
+        <!--  create the application meta data -->
+        <mkdir dir="META-INF"/>
+        <copy file="${targetDirectory}/application.xml" todir="./META-INF"></copy>
+
+        <copy file="${r"${ofbizHome}"}/framework/base/lib/scripting/bsh-2.0b4.jar" tofile="../../lib/bsh.jar"/>
+
+        <!-- revert entityengine.xml log4j.xml and jndi.properties -->
+        <move file="${r"${ofbizHome}"}/framework/entity/config/entityengine.xml" tofile="${r"${ofbizHome}"}/framework/entity/config/entityengine-jboss422.xml"/>
+        <move file="${r"${ofbizHome}"}/framework/entity/config/entityengine.xml.jbak" tofile="${r"${ofbizHome}"}/framework/entity/config/entityengine.xml"/>
+
+        <move file="${r"${ofbizHome}"}/framework/base/config/_log4j.xml.bak" tofile="${r"${ofbizHome}"}/framework/base/config/log4j.xml"/>
+        <move file="${r"${ofbizHome}"}/framework/base/config/_jndi.properties.bak" tofile="${r"${ofbizHome}"}/framework/base/config/jndi.properties"/>
+
+        <!-- setup the OFBIZ_HOME by updating run.conf -->
+        <move file="../../../../bin/run.conf" tofile="../../../../bin/run.conf.obak"/>
+        <copy file="${r"${ofbizHome}"}/setup/jboss422/run.conf" tofile="../../../../bin/run.conf"/>
+    </target>
+</project>
diff --git a/framework/appserver/templates/jboss422/deploy.sh b/framework/appserver/templates/jboss422/deploy.sh
new file mode 100755
index 0000000..5774df3
--- /dev/null
+++ b/framework/appserver/templates/jboss422/deploy.sh
@@ -0,0 +1,120 @@
+#!/bin/sh
+
+#################################
+# JBoss Deployment              #
+#                               #
+# Copy to ofbiz.ear directory   #
+# in the JBoss deploy directory #
+#                               #
+#################################
+DERBY_VERSION="10.4.1.3"
+
+if [ -f "./META-INF/application.xml" ]; then
+  rm -rf META-INF
+  echo "removed META-INF"
+fi
+if [ -f "./lib/ofbiz-base.jar" ]; then
+  rm -rf lib
+  echo "removed libs"
+  rm *.war
+  echo "removed wars"
+fi
+
+# install derby
+if [ ! -f "../../lib/derby-$DERBY_VERSION.jar" ]; then
+  cp "${ofbizHome}/framework/entity/lib/jdbc/derby-$DERBY_VERSION.jar" ../../lib/
+  echo "installed derby-$DERBY_VERSION"
+fi
+
+# install derby plugin
+if [ ! -f "../../lib/derby-plugin.jar" ]; then
+  cp ../../../../docs/examples/varia/derby-plugin.jar ../../lib/
+  echo "installed derby-plugin.jar"
+fi
+
+# install derby datasource
+if [ ! -f "../derby-ds.xml" ]; then
+  cp ${ofbizHome}/framework/appserver/templates/jboss422/patches/derby*.xml ..
+  echo "derby datasource configuration installed"
+fi
+
+# configure the jboss entity engine (patch) configuration
+if [ ! -f "${ofbizHome}/framework/entity/config/entityengine-jboss422.xml" ]; then
+  patch -i ${ofbizHome}/framework/appserver/templates/jboss422/patches/jboss-ee-cfg.patch -o ${ofbizHome}/framework/entity/config/entityengine-jboss422.xml ${ofbizHome}/framework/entity/config/entityengine.xml
+  echo "created entityengine-jboss.xml"
+fi
+
+# move entityengine.xml, log4j.xml and jndi.properties
+if [ -f "${ofbizHome}/framework/entity/config/entityengine-jboss422.xml" ]; then
+  mv ${ofbizHome}/framework/entity/config/entityengine.xml ${ofbizHome}/framework/entity/config/entityengine.xml.jbak
+  mv ${ofbizHome}/framework/entity/config/entityengine-jboss422.xml ${ofbizHome}/framework/entity/config/entityengine.xml
+  echo "moved entityengine.xml"
+fi
+if [ -f "${ofbizHome}/framework/base/config/log4j.xml" ]; then
+  mv ${ofbizHome}/framework/base/config/log4j.xml ${ofbizHome}/framework/base/config/_log4j.xml.bak
+  echo "moved ${ofbizHome}/framework/base/config/log4j.xml"
+fi
+if [ -f "${ofbizHome}/framework/base/config/jndi.properties" ]; then
+  mv ${ofbizHome}/framework/base/config/jndi.properties ${ofbizHome}/framework/base/config/_jndi.properties.bak
+  echo "moved ${ofbizHome}/framework/base/config/jndi.properties"
+fi
+
+# copy all lib files
+mkdir lib
+<#list classpathJars as jar>
+<#if (!jar.contains("j2eespec") && !jar.contains("geronimo") && !jar.contains("catalina") && !jar.contains("mx4j") && !jar.contains("derby-") && !jar.contains("commons-logging") &&!jar.contains("commons-collections") &&!jar.contains("commons-codec") && !jar.contains("commons-el") && !jar.contains("avalon-framework") && !jar.contains("bsh") && !jar.contains("bsf") && !jar.contains("antlr") && !jar.contains("mail-1.4.jar"))>
+cp ${jar} ./lib
+</#if>
+</#list>
+echo "installed ofbiz libraries"
+
+<#list classpathDirs as dir>
+<#if (dir != ofbizHome)>
+<#assign jarname = dir.substring(ofbizHome.length()+1)/>
+<#assign jarname = jarname.replaceAll("/", ".")/>
+jar cvf ./lib/${jarname}.jar -C ${dir} .
+</#if>
+</#list>
+echo "\n\n"
+echo "packaged and installed ofbiz configuration directories"
+
+# link the web applications
+<#list webApps as webapp>
+ln -s ${webapp.getLocation()} .${webapp.getContextRoot()}.war
+</#list>
+echo "linked webapp directories"
+
+# create the application meta data
+mkdir META-INF
+cp ${targetDirectory}/application.xml ./META-INF
+echo "installed application.xml"
+
+# replace jboss bsh.jar with the ofbiz version
+if [ -f "../../lib/bsh.jar" ]; then
+  cp ${ofbizHome}/framework/base/lib/scripting/bsh-2.0b4.jar ../../lib/bsh.jar
+  echo "updated bsh.jar"
+fi
+
+# revert entityengine.xml log4j.xml and jndi.properties
+if [ -f "${ofbizHome}/framework/entity/config/entityengine.xml.jbak" ]; then
+  mv ${ofbizHome}/framework/entity/config/entityengine.xml ${ofbizHome}/framework/entity/config/entityengine-jboss422.xml
+  mv ${ofbizHome}/framework/entity/config/entityengine.xml.jbak ${ofbizHome}/framework/entity/config/entityengine.xml
+  echo "fixed entityengine.xml"
+fi
+if [ -f "${ofbizHome}/framework/base/config/_log4j.xml.bak" ]; then
+  mv ${ofbizHome}/framework/base/config/_log4j.xml.bak ${ofbizHome}/framework/base/config/log4j.xml
+  echo "fixed ${ofbizHome}/framework/base/config/log4j.xml"
+fi
+if [ -f "${ofbizHome}/framework/base/config/_jndi.properties.bak" ]; then
+  mv ${ofbizHome}/framework/base/config/_jndi.properties.bak ${ofbizHome}/framework/base/config/jndi.properties
+  echo "fixed ${ofbizHome}/framework/base/config/jndi.properties"
+fi
+
+# setup the OFBIZ_HOME by updating run.conf
+if [ ! -f "../../../../bin/run.conf.obak" ]; then
+  mv ../../../../bin/run.conf ../../../../bin/run.conf.obak
+  cp ${ofbizHome}/setup/jboss422/run.conf ../../../../bin/run.conf
+  echo "modifed bin/run.conf (with backup)"
+fi
+
+echo "\n"
diff --git a/framework/appserver/templates/jboss422/patches/derby-ds.xml b/framework/appserver/templates/jboss422/patches/derby-ds.xml
new file mode 100644
index 0000000..d38a9cb
--- /dev/null
+++ b/framework/appserver/templates/jboss422/patches/derby-ds.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  -->
+
+<!-- The Derby embedded database JCA connection factory config
+$Id: derby-ds.xml,v 1.1.4.1 2004/11/03 13:28:39 loubyansky Exp $ -->
+
+
+<datasources>
+   <local-tx-datasource>
+
+      <!-- The jndi name of the DataSource, it is prefixed with java:/ -->
+      <!-- Datasources are not available outside the virtual machine -->
+      <jndi-name>OFBizDS</jndi-name>
+
+      <!-- for in-process persistent db, saved when jboss stops. The
+      org.jboss.jdbc.DerbyDatabase mbean is necessary for properly db shutdown -->
+      <connection-url>jdbc:derby:${jboss.server.data.dir}${/}derby${/}ofbiz;create=true</connection-url>
+
+      <!-- The driver class -->
+      <driver-class>org.apache.derby.jdbc.EmbeddedDriver</driver-class>
+
+      <!-- The login and password -->
+      <user-name>sa</user-name>
+      <password></password>
+
+      <!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use -->
+      <min-pool-size>2</min-pool-size>
+
+      <!-- The maximum connections in a pool/sub-pool -->
+      <max-pool-size>5</max-pool-size>
+
+      <!-- The time before an unused connection is destroyed -->
+      <idle-timeout-minutes>15</idle-timeout-minutes>
+
+      <!-- Whether to check all statements are closed when the connection is returned to the pool,
+           this is a debugging feature that should be turned off in production -->
+      <track-statements/>
+
+      <!-- This mbean can be used when using in process persistent derby -->
+      <depends>jboss:service=OFBiz</depends>
+   </local-tx-datasource>
+
+   <mbean code="org.jboss.jdbc.DerbyDatabase" name="jboss:service=OFBiz"/>
+</datasources>
diff --git a/framework/appserver/templates/jboss422/patches/derby-ol-ds.xml b/framework/appserver/templates/jboss422/patches/derby-ol-ds.xml
new file mode 100644
index 0000000..38b5c9d
--- /dev/null
+++ b/framework/appserver/templates/jboss422/patches/derby-ol-ds.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  -->
+
+<!-- The Derby embedded database JCA connection factory config
+$Id: derby-ds.xml,v 1.1.4.1 2004/11/03 13:28:39 loubyansky Exp $ -->
+
+
+<datasources>
+   <local-tx-datasource>
+
+      <!-- The jndi name of the DataSource, it is prefixed with java:/ -->
+      <!-- Datasources are not available outside the virtual machine -->
+      <jndi-name>OFBizOlapDS</jndi-name>
+
+      <!-- for in-process persistent db, saved when jboss stops. The
+      org.jboss.jdbc.DerbyDatabase mbean is necessary for properly db shutdown -->
+      <connection-url>jdbc:derby:${jboss.server.data.dir}${/}derby${/}ofbizolap;create=true</connection-url>
+
+      <!-- The driver class -->
+      <driver-class>org.apache.derby.jdbc.EmbeddedDriver</driver-class>
+
+      <!-- The login and password -->
+      <user-name>sa</user-name>
+      <password></password>
+
+      <!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use -->
+      <min-pool-size>2</min-pool-size>
+
+      <!-- The maximum connections in a pool/sub-pool -->
+      <max-pool-size>5</max-pool-size>
+
+      <!-- The time before an unused connection is destroyed -->
+      <idle-timeout-minutes>15</idle-timeout-minutes>
+
+      <!-- Whether to check all statements are closed when the connection is returned to the pool,
+           this is a debugging feature that should be turned off in production -->
+      <track-statements/>
+
+      <!-- This mbean can be used when using in process persistent derby -->
+      <depends>jboss:service=OFBizOlap</depends>
+   </local-tx-datasource>
+
+   <mbean code="org.jboss.jdbc.DerbyDatabase" name="jboss:service=OFBizOlap"/>
+</datasources>
diff --git a/framework/appserver/templates/jboss422/patches/jboss-ee-cfg.patch b/framework/appserver/templates/jboss422/patches/jboss-ee-cfg.patch
new file mode 100644
index 0000000..eacddbb
--- /dev/null
+++ b/framework/appserver/templates/jboss422/patches/jboss-ee-cfg.patch
@@ -0,0 +1,78 @@
+Index: framework/entity/config/entityengine.xml
+===================================================================
+--- framework/entity/config/entityengine.xml	(revision 661518)
++++ framework/entity/config/entityengine.xml	(working copy)
+@@ -28,15 +28,15 @@
+
+     <!-- the transaction factory class to use, one is needed for each way of getting JTA interfaces -->
+     <!-- Use this one for Geronimo -->
+-    <transaction-factory class="org.ofbiz.geronimo.GeronimoTransactionFactory"/>
++    <!--<transaction-factory class="org.ofbiz.geronimo.GeronimoTransactionFactory"/>-->
+
+     <!-- Use this one for getting the JTA objects from JNDI -->
+-    <!-- NOTE: to use the JndiFactory you must specify the necessary JNDI properties
++    <!-- NOTE: to use the JndiFactory you must specify the necessary JNDI properties -->
+     <transaction-factory class="org.ofbiz.entity.transaction.JNDIFactory">
+         <user-transaction-jndi jndi-server-name="default" jndi-name="java:comp/UserTransaction"/>
+-        <transaction-manager-jndi jndi-server-name="default" jndi-name="java:comp/UserTransaction"/>
++        <transaction-manager-jndi jndi-server-name="default" jndi-name="java:/TransactionManager"/>
+     </transaction-factory>
+-    -->
++
+     <!--
+     	It is common to use UserTransaction for the TransactionManager, but if that doesn't work, try this: <transaction-manager-jndi jndi-server-name="default" jndi-name="java:comp/TransactionManager"/>
+         Common UserTransaction locations:
+@@ -160,6 +160,7 @@
+         <read-data reader-name="seed-initial"/>
+         <read-data reader-name="demo"/>
+         <read-data reader-name="ext"/>
++        <!--
+         <inline-jdbc
+                 jdbc-driver="org.apache.derby.jdbc.EmbeddedDriver"
+                 jdbc-uri="jdbc:derby:ofbiz;create=true"
+@@ -168,7 +169,8 @@
+                 isolation-level="ReadCommitted"
+                 pool-minsize="2"
+                 pool-maxsize="250"/>
+-        <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/DerbyDataSource" isolation-level="ReadCommitted"/> -->
++        -->
++        <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/OFBizDS" isolation-level="ReadCommitted"/>
+     </datasource>
+     <datasource name="localderbyodbc"
+         helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
+@@ -179,6 +181,7 @@
+         use-pk-constraint-names="false"
+         use-indices-unique="false"
+         alias-view-columns="false">
++        <!--
+         <inline-jdbc
+             jdbc-driver="org.apache.derby.jdbc.EmbeddedDriver"
+             jdbc-uri="jdbc:derby:ofbizodbc;create=true"
+@@ -187,7 +190,8 @@
+             isolation-level="ReadCommitted"
+             pool-minsize="2"
+             pool-maxsize="250"/>
+-        <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/DerbyDataSource" isolation-level="ReadCommitted"/> -->
++        -->
++        <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/OFBizOdbcDS" isolation-level="ReadCommitted"/>
+     </datasource>
+     <datasource name="localderbyolap"
+             helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
+@@ -202,6 +206,7 @@
+         <read-data reader-name="seed-initial"/>
+         <read-data reader-name="demo"/>
+         <read-data reader-name="ext"/>
++        <!--
+         <inline-jdbc
+                 jdbc-driver="org.apache.derby.jdbc.EmbeddedDriver"
+                 jdbc-uri="jdbc:derby:ofbizolap;create=true"
+@@ -210,7 +215,8 @@
+                 isolation-level="ReadCommitted"
+                 pool-minsize="2"
+                 pool-maxsize="250"/>
+-        <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/DerbyDataSource" isolation-level="ReadCommitted"/> -->
++        -->
++        <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/OFBizOlapDS" isolation-level="ReadCommitted"/>
+     </datasource>
+
+     <datasource name="localcloudscape"
diff --git a/framework/appserver/templates/jboss422/run.conf b/framework/appserver/templates/jboss422/run.conf
new file mode 100644
index 0000000..45f634a
--- /dev/null
+++ b/framework/appserver/templates/jboss422/run.conf
@@ -0,0 +1,51 @@
+## -*- shell-script -*- ######################################################
+##                                                                          ##
+##  JBoss Bootstrap Script Configuration                                    ##
+##                                                                          ##
+##############################################################################
+
+### $Id: run.conf 62747 2007-05-02 17:43:36Z dimitris@jboss.org $
+
+#
+# This file is optional; it may be removed if not needed.
+#
+
+#
+# Specify the maximum file descriptor limit, use "max" or "maximum" to use
+# the default, as queried by the system.
+#
+# Defaults to "maximum"
+#
+#MAX_FD="maximum"
+
+#
+# Specify the profiler configuration file to load.
+#
+# Default is to not load profiler configuration file.
+#
+#PROFILER=""
+
+#
+# Specify the location of the Java home directory.  If set then $JAVA will
+# be defined to $JAVA_HOME/bin/java, else $JAVA will be "java".
+#
+#JAVA_HOME="/opt/java/jdk"
+
+#
+# Specify the exact Java VM executable to use.
+#
+#JAVA=""
+
+#
+# Specify options to pass to the Java VM.
+#
+if [ "x$JAVA_OPTS" = "x" ]; then
+   #JAVA_OPTS="-Xmx1024M -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
+   JAVA_OPTS="-Xmx512M -XX:PermSize=512M -Dofbiz.home=${ofbizHome}"
+fi
+
+# Sample JPDA settings for remote socket debuging
+#JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
+
+# Sample JPDA settings for shared memory debugging
+#JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_shmem,server=y,suspend=n,address=jboss"
diff --git a/framework/appserver/templates/orion202/README b/framework/appserver/templates/orion202/README
new file mode 100644
index 0000000..a7ed147
--- /dev/null
+++ b/framework/appserver/templates/orion202/README
@@ -0,0 +1,36 @@
+
+Orion Application Server 2.0.2 Setup
+2004-04-01 - Andy Zeneski
+
+To use Orion 2.0.2 with OFBiz 3.0 follow the following steps:
+
+(all steps assume Orion is already installed and working)
+
+1) generate the configuration files (auto-creates classpath and webapp settings)
+
+- From the OFBiz root directory:
+java -jar ofbiz.jar -start framework/appservers/configure orion202
+
+2) Copy the newly created configuration files to orion config directory
+
+- From the Orion config directory (assuming ofbiz root is ../../ofbiz)
+cp ../../ofbiz/setup/orion202/*.xml .
+
+3) Configure OFBiz for running inside Orion
+
+- Comment out or remove base/config/jndi.properties so you use the one provided w/ Orion
+- Edit entityengine.xml to use JNDI for the datasource, this should match the JNDI name
+  specified in orion data-source.xml
+
+4) Run Orion
+
+- From Orion root directory
+java -Dofbiz.home=../../ofbiz -jar orion.jar
+
+The filter will load the components on the first hit, I have not yet figured out
+how to get Orion to auto-load filters.
+
+*** Note this is an example configuration and SSL is not enabled by default.
+If you would like to contribute the SSL configuration please post it to the
+dev mailing list and we wil include the templates. Until then, you will also
+need to disable SSL in framework/webapp/config/url.properties
diff --git a/framework/appserver/templates/orion202/ofbiz-application.xml b/framework/appserver/templates/orion202/ofbiz-application.xml
new file mode 100644
index 0000000..821806e
--- /dev/null
+++ b/framework/appserver/templates/orion202/ofbiz-application.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<!DOCTYPE orion-application PUBLIC "-//Evermind//DTD J2EE Application runtime 1.2//EN" "http://www.orionserver.com/dtds/orion-application.dtd">
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<!-- The global application config that is the parent of all the other
+    applications in this server. -->
+<orion-application>
+    <web-module id="ofbizDefault" path="${env.get("ofbiz.home")}/website"/>
+
+    <#list webApps as webapp>
+    <web-module id="${webapp.getName()}" path="${webapp.getLocation()}"/>
+    </#list>
+    <persistence path="../persistence"/>
+
+    <!-- Path to the libraries that are installed on this server.
+         These will accesible for the servlets, EJBs etc -->
+    <library path="../lib"/>
+    <#list classpathJars as jar>
+    <library path="${jar}"/>
+    </#list>
+    <#list classpathDirs as dir>
+    <library path="${dir}"/>
+    </#list>
+
+    <principals path="./principals.xml"/>
+
+    <log>
+        <file path="../log/ofbiz-application.log"/>
+    </log>
+
+    <data-sources path="data-sources.xml"/>
+
+    <namespace-access>
+        <read-access>
+            <namespace-resource root="">
+                <security-role-mapping>
+                    <group name="administrators"/>
+                </security-role-mapping>
+            </namespace-resource>
+        </read-access>
+        <write-access>
+            <namespace-resource root="">
+                <security-role-mapping>
+                    <group name="administrators"/>
+                </security-role-mapping>
+            </namespace-resource>
+        </write-access>
+    </namespace-access>
+</orion-application>
diff --git a/framework/appserver/templates/orion202/ofbiz-http-site.xml b/framework/appserver/templates/orion202/ofbiz-http-site.xml
new file mode 100644
index 0000000..3df8085
--- /dev/null
+++ b/framework/appserver/templates/orion202/ofbiz-http-site.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!DOCTYPE web-site PUBLIC "Orion Web-site" "http://www.orionserver.com/dtds/web-site.dtd">
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+<web-site host="[ALL]" port="8080" display-name="OFBiz HTTP WebSite">
+    <!-- The default web-app for this site, bound to the root -->
+    <default-web-app application="ofbiz" name="ofbizDefault"/>
+
+    <#list webApps as webapp>
+    <web-app load-on-startup="true" application="ofbiz" shared="true" name="${webapp.getName()}" root="${webapp.getContextRoot()}"/>
+    </#list>
+
+    <!-- Access Log, where requests are logged to -->
+    <access-log path="../log/ofbiz-http-access.log"/>
+</web-site>
diff --git a/framework/appserver/templates/orion202/server.xml b/framework/appserver/templates/orion202/server.xml
new file mode 100644
index 0000000..a37b732
--- /dev/null
+++ b/framework/appserver/templates/orion202/server.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!DOCTYPE application-server PUBLIC "Orion Application Server Config" "http://www.orionserver.com/dtds/application-server.dtd">
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<application-server
+    application-directory="../applications"
+    deployment-directory="../application-deployments"
+    >
+    <rmi-config path="./rmi.xml"/>
+    <!-- JMS-server config link, uncomment to activate the JMS service -->
+    <!-- <jms-config path="./jms.xml"/> -->
+    <log>
+        <file path="../log/server.log"/>
+    </log>
+
+    <global-application name="default" path="application.xml"/>
+    <global-application name="ofbiz" path="ofbiz-application.xml"/>
+
+    <global-web-app-config path="global-web-application.xml"/>
+    <web-site path="./default-web-site.xml"/>
+    <web-site path="./ofbiz-http-site.xml"/>
+
+    <!-- Compiler, activate this to specify an alternative compiler such
+        as jikes for EJB/JSP compiling. -->
+    <!-- <compiler executable="jikes" classpath="/myjdkdir/jre/lib/rt.jar"/> -->
+</application-server>
diff --git a/framework/appserver/templates/test/test1 b/framework/appserver/templates/test/test1
new file mode 100644
index 0000000..f695dd9
--- /dev/null
+++ b/framework/appserver/templates/test/test1
@@ -0,0 +1,26 @@
+<#--

+Licensed to the Apache Software Foundation (ASF) under one

+or more contributor license agreements.  See the NOTICE file

+distributed with this work for additional information

+regarding copyright ownership.  The ASF licenses this file

+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0

+

+Unless required by applicable law or agreed to in writing,

+software distributed under the License is distributed on an

+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+KIND, either express or implied.  See the License for the

+specific language governing permissions and limitations

+under the License.

+-->

+

+ofbiz.home = ${env.get("ofbiz.home")}

+

+Classpath - JARS

+======================================================================

+<#list classpathJars as jar>

+${jar}

+</#list>

diff --git a/framework/appserver/templates/test/test2 b/framework/appserver/templates/test/test2
new file mode 100644
index 0000000..04d0835
--- /dev/null
+++ b/framework/appserver/templates/test/test2
@@ -0,0 +1,26 @@
+<#--

+Licensed to the Apache Software Foundation (ASF) under one

+or more contributor license agreements.  See the NOTICE file

+distributed with this work for additional information

+regarding copyright ownership.  The ASF licenses this file

+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0

+

+Unless required by applicable law or agreed to in writing,

+software distributed under the License is distributed on an

+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+KIND, either express or implied.  See the License for the

+specific language governing permissions and limitations

+under the License.

+-->

+

+Web Applications

+======================================================================

+

+<#list webApps as webapp>

+${webapp.getName()} : ${webapp.getContextRoot()} - ${webapp.getLocation()?if_exists}

+</#list>

+

diff --git a/framework/appserver/templates/test/test3 b/framework/appserver/templates/test/test3
new file mode 100644
index 0000000..15a9226
--- /dev/null
+++ b/framework/appserver/templates/test/test3
@@ -0,0 +1,25 @@
+<#--

+Licensed to the Apache Software Foundation (ASF) under one

+or more contributor license agreements.  See the NOTICE file

+distributed with this work for additional information

+regarding copyright ownership.  The ASF licenses this file

+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0

+

+Unless required by applicable law or agreed to in writing,

+software distributed under the License is distributed on an

+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+KIND, either express or implied.  See the License for the

+specific language governing permissions and limitations

+under the License.

+-->

+

+Classpath - DIRS

+======================================================================

+

+<#list classpathDirs as dir>

+${dir}

+</#list>

diff --git a/framework/appserver/templates/tomcat55/catalina.bat b/framework/appserver/templates/tomcat55/catalina.bat
new file mode 100644
index 0000000..4896d67
--- /dev/null
+++ b/framework/appserver/templates/tomcat55/catalina.bat
@@ -0,0 +1,249 @@
+@echo off

+rem Licensed to the Apache Software Foundation (ASF) under one or more

+rem contributor license agreements.  See the NOTICE file distributed with

+rem this work for additional information regarding copyright ownership.

+rem The ASF licenses this file to You under the Apache License, Version 2.0

+rem (the "License"); you may not use this file except in compliance with

+rem the License.  You may obtain a copy of the License at

+rem

+rem     http://www.apache.org/licenses/LICENSE-2.0

+rem

+rem Unless required by applicable law or agreed to in writing, software

+rem distributed under the License is distributed on an "AS IS" BASIS,

+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+rem See the License for the specific language governing permissions and

+rem limitations under the License.

+

+if "%OS%" == "Windows_NT" setlocal

+rem ---------------------------------------------------------------------------

+rem Start/Stop Script for the CATALINA Server

+rem

+rem Environment Variable Prequisites

+rem

+rem   CATALINA_HOME   May point at your Catalina "build" directory.

+rem

+rem   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions

+rem                   of a Catalina installation.  If not present, resolves to

+rem                   the same directory that CATALINA_HOME points to.

+rem

+rem   CATALINA_OPTS   (Optional) Java runtime options used when the "start",

+rem                   or "run" command is executed.

+rem

+rem   CATALINA_TMPDIR (Optional) Directory path location of temporary directory

+rem                   the JVM should use (java.io.tmpdir).  Defaults to

+rem                   %CATALINA_BASE%\temp.

+rem

+rem   JAVA_HOME       Must point at your Java Development Kit installation.

+rem                   Required to run the with the "debug" argument.

+rem

+rem   JRE_HOME        Must point at your Java Runtime installation.

+rem                   Defaults to JAVA_HOME if empty.

+rem

+rem   JAVA_OPTS       (Optional) Java runtime options used when the "start",

+rem                   "stop", or "run" command is executed.

+

+rem BEGIN OfBiz settings

+set JAVA_OPTS="%JAVA_OPTS% -Dofbiz.home=${ofbizHome}"

+rem END OfBiz settings

+

+rem   JSSE_HOME       (Optional) May point at your Java Secure Sockets Extension

+rem                   (JSSE) installation, whose JAR files will be added to the

+rem                   system class path used to start Tomcat.

+rem

+rem   JPDA_TRANSPORT  (Optional) JPDA transport used when the "jpda start"

+rem                   command is executed. The default is "dt_shmem".

+rem

+rem   JPDA_ADDRESS    (Optional) Java runtime options used when the "jpda start"

+rem                   command is executed. The default is "jdbconn".

+rem

+rem   JPDA_SUSPEND    (Optional) Java runtime options used when the "jpda start"

+rem                   command is executed. Specifies whether JVM should suspend

+rem                   execution immediately after startup. Default is "n".

+rem

+rem   JPDA_OPTS       (Optional) Java runtime options used when the "jpda start"

+rem                   command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,

+rem                   and JPDA_SUSPEND are ignored. Thus, all required jpda

+rem                   options MUST be specified. The default is:

+rem

+rem                   -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,

+rem                       address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%

+rem

+rem $Id: catalina.bat 609438 2008-01-06 22:14:28Z markt $

+rem ---------------------------------------------------------------------------

+

+rem Guess CATALINA_HOME if not defined

+set CURRENT_DIR=%cd%

+if not "%CATALINA_HOME%" == "" goto gotHome

+set CATALINA_HOME=%CURRENT_DIR%

+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome

+cd ..

+set CATALINA_HOME=%cd%

+cd %CURRENT_DIR%

+:gotHome

+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome

+echo The CATALINA_HOME environment variable is not defined correctly

+echo This environment variable is needed to run this program

+goto end

+:okHome

+

+rem Get standard environment variables

+if "%CATALINA_BASE%" == "" goto gotSetenvHome

+if exist "%CATALINA_BASE%\bin\setenv.bat" call "%CATALINA_BASE%\bin\setenv.bat"

+goto gotSetenvBase

+:gotSetenvHome

+if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"

+:gotSetenvBase

+

+rem Get standard Java environment variables

+if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath

+echo Cannot find %CATALINA_HOME%\bin\setclasspath.bat

+echo This file is needed to run this program

+goto end

+:okSetclasspath

+set BASEDIR=%CATALINA_HOME%

+call "%CATALINA_HOME%\bin\setclasspath.bat" %1

+if errorlevel 1 goto end

+

+rem Add on extra jar files to CLASSPATH

+if "%JSSE_HOME%" == "" goto noJsse

+set CLASSPATH=%CLASSPATH%;%JSSE_HOME%\lib\jcert.jar;%JSSE_HOME%\lib\jnet.jar;%JSSE_HOME%\lib\jsse.jar

+:noJsse

+set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jar

+

+if not "%CATALINA_BASE%" == "" goto gotBase

+set CATALINA_BASE=%CATALINA_HOME%

+:gotBase

+

+if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir

+set CATALINA_TMPDIR=%CATALINA_BASE%\temp

+:gotTmpdir

+

+if not exist "%CATALINA_HOME%\bin\tomcat-juli.jar" goto noJuli

+set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"

+:noJuli

+

+rem ----- Execute The Requested Command ---------------------------------------

+

+echo Using CATALINA_BASE:   %CATALINA_BASE%

+echo Using CATALINA_HOME:   %CATALINA_HOME%

+echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%

+if ""%1"" == ""debug"" goto use_jdk

+echo Using JRE_HOME:        %JRE_HOME%

+goto java_dir_displayed

+:use_jdk

+echo Using JAVA_HOME:       %JAVA_HOME%

+:java_dir_displayed

+

+set _EXECJAVA=%_RUNJAVA%

+set MAINCLASS=org.apache.catalina.startup.Bootstrap

+set ACTION=start

+set SECURITY_POLICY_FILE=

+set DEBUG_OPTS=

+set JPDA=

+

+if not ""%1"" == ""jpda"" goto noJpda

+set JPDA=jpda

+if not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport

+set JPDA_TRANSPORT=dt_shmem

+:gotJpdaTransport

+if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress

+set JPDA_ADDRESS=jdbconn

+:gotJpdaAddress

+if not "%JPDA_SUSPEND%" == "" goto gotJpdaSuspend

+set JPDA_SUSPEND=n

+:gotJpdaSuspend

+if not "%JPDA_OPTS%" == "" goto gotJpdaOpts

+set JPDA_OPTS=-Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%

+:gotJpdaOpts

+shift

+:noJpda

+

+if ""%1"" == ""debug"" goto doDebug

+if ""%1"" == ""run"" goto doRun

+if ""%1"" == ""start"" goto doStart

+if ""%1"" == ""stop"" goto doStop

+if ""%1"" == ""version"" goto doVersion

+

+echo Usage:  catalina ( commands ... )

+echo commands:

+echo   debug             Start Catalina in a debugger

+echo   debug -security   Debug Catalina with a security manager

+echo   jpda start        Start Catalina under JPDA debugger

+echo   run               Start Catalina in the current window

+echo   run -security     Start in the current window with security manager

+echo   start             Start Catalina in a separate window

+echo   start -security   Start in a separate window with security manager

+echo   stop              Stop Catalina

+echo   version           What version of tomcat are you running?

+goto end

+

+:doDebug

+shift

+set _EXECJAVA=%_RUNJDB%

+set DEBUG_OPTS=-sourcepath "%CATALINA_HOME%\..\..\jakarta-tomcat-catalina\catalina\src\share"

+if not ""%1"" == ""-security"" goto execCmd

+shift

+echo Using Security Manager

+set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy

+goto execCmd

+

+:doRun

+shift

+if not ""%1"" == ""-security"" goto execCmd

+shift

+echo Using Security Manager

+set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy

+goto execCmd

+

+:doStart

+shift

+if not "%OS%" == "Windows_NT" goto noTitle

+set _EXECJAVA=start "Tomcat" %_RUNJAVA%

+goto gotTitle

+:noTitle

+set _EXECJAVA=start %_RUNJAVA%

+:gotTitle

+if not ""%1"" == ""-security"" goto execCmd

+shift

+echo Using Security Manager

+set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy

+goto execCmd

+

+:doStop

+shift

+set ACTION=stop

+set CATALINA_OPTS=

+goto execCmd

+

+:doVersion

+%_EXECJAVA% -classpath "%CATALINA_HOME%\server\lib\catalina.jar" org.apache.catalina.util.ServerInfo

+goto end

+

+

+:execCmd

+rem Get remaining unshifted command line arguments and save them in the

+set CMD_LINE_ARGS=

+:setArgs

+if ""%1""=="""" goto doneSetArgs

+set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1

+shift

+goto setArgs

+:doneSetArgs

+

+rem Execute Java with the applicable properties

+if not "%JPDA%" == "" goto doJpda

+if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity

+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

+goto end

+:doSecurity

+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

+goto end

+:doJpda

+if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda

+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

+goto end

+:doSecurityJpda

+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

+goto end

+

+:end

diff --git a/framework/appserver/templates/tomcat55/catalina.properties b/framework/appserver/templates/tomcat55/catalina.properties
new file mode 100644
index 0000000..59a1d46
--- /dev/null
+++ b/framework/appserver/templates/tomcat55/catalina.properties
@@ -0,0 +1,84 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (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.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# List of comma-separated packages that start with or equal this string
+# will cause a security exception to be thrown when
+# passed to checkPackageAccess unless the
+# corresponding RuntimePermission ("accessClassInPackage."+package) has
+# been granted.
+package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans.
+#
+# List of comma-separated packages that start with or equal this string
+# will cause a security exception to be thrown when
+# passed to checkPackageDefinition unless the
+# corresponding RuntimePermission ("defineClassInPackage."+package) has
+# been granted.
+#
+# by default, no packages are restricted for definition, and none of
+# the class loaders supplied with the JDK call checkPackageDefinition.
+#
+package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
+
+#
+#
+# List of comma-separated paths defining the contents of the "common"
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
+# If left as blank,the JVM system loader will be used as Catalina's "common"
+# loader.
+# Examples:
+#     "foo": Add this folder as a class repository
+#     "foo/*.jar": Add all the JARs of the specified folder as class
+#                  repositories
+#     "foo/bar.jar": Add bar.jar as a class repository
+common.loader=${r"${catalina.home}"}/common/classes,${r"${catalina.home}"}/common/i18n/*.jar,${r"${catalina.home}"}/common/endorsed/*.jar,${r"${catalina.home}"}/common/lib/*.jar
+
+#
+# List of comma-separated paths defining the contents of the "server"
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
+# If left as blank, the "common" loader will be used as Catalina's "server"
+# loader.
+# Examples:
+#     "foo": Add this folder as a class repository
+#     "foo/*.jar": Add all the JARs of the specified folder as class
+#                  repositories
+#     "foo/bar.jar": Add bar.jar as a class repository
+server.loader=${r"${catalina.home}"}/server/classes,${r"${catalina.home}"}/server/lib/*.jar
+
+#
+# List of comma-separated paths defining the contents of the "shared"
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_BASE path or absolute. If left as blank,
+# the "common" loader will be used as Catalina's "shared" loader.
+# Examples:
+#     "foo": Add this folder as a class repository
+#     "foo/*.jar": Add all the JARs of the specified folder as class
+#                  repositories
+#     "foo/bar.jar": Add bar.jar as a class repository
+# Please note that for individual jar files, e.g. bar.jar, you need the URL form
+# starting with file:.
+ofbiz.home=${ofbizHome}
+shared.loader=${r"${catalina.base}"}/shared/classes,${r"${catalina.base}"}/shared/lib/*.jar,\
+file://${r"${ofbiz.home}"}/ofbiz.jar,\
+<#list classpathDirs as dir>${dir},\<#if dir_has_next>${"\n"}</#if></#list>
+<#list classpathJars as jar>file://${jar}<#if jar_has_next>,\</#if>${"\n"}</#list>
+#
+# String cache configuration.
+tomcat.util.buf.StringCache.byte.enabled=true
+#tomcat.util.buf.StringCache.char.enabled=true
+#tomcat.util.buf.StringCache.trainThreshold=500000
+#tomcat.util.buf.StringCache.cacheSize=5000
diff --git a/framework/appserver/templates/tomcat55/catalina.sh b/framework/appserver/templates/tomcat55/catalina.sh
new file mode 100755
index 0000000..839a2ee
--- /dev/null
+++ b/framework/appserver/templates/tomcat55/catalina.sh
@@ -0,0 +1,360 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (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.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# -----------------------------------------------------------------------------
+# Start/Stop Script for the CATALINA Server
+#
+# Environment Variable Prequisites
+#
+#   CATALINA_HOME   May point at your Catalina "build" directory.
+#
+#   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions
+#                   of a Catalina installation.  If not present, resolves to
+#                   the same directory that CATALINA_HOME points to.
+#
+#   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
+#                   or "run" command is executed.
+#
+#   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
+#                   the JVM should use (java.io.tmpdir).  Defaults to
+#                   $CATALINA_BASE/temp.
+#
+#   JAVA_HOME       Must point at your Java Development Kit installation.
+#                   Required to run the with the "debug" or "javac" argument.
+#
+#   JRE_HOME        Must point at your Java Development Kit installation.
+#                   Defaults to JAVA_HOME if empty.
+#
+#   JAVA_OPTS       (Optional) Java runtime options used when the "start",
+#                   "stop", or "run" command is executed.
+
+# BEGIN OfBiz settings
+JAVA_OPTS="$JAVA_OPTS -Dofbiz.home=${ofbizHome}"
+# END OfBiz settings
+
+#   JPDA_TRANSPORT  (Optional) JPDA transport used when the "jpda start"
+#                   command is executed. The default is "dt_socket".
+#
+#   JPDA_ADDRESS    (Optional) Java runtime options used when the "jpda start"
+#                   command is executed. The default is 8000.
+#
+#   JPDA_SUSPEND    (Optional) Java runtime options used when the "jpda start"
+#                   command is executed. Specifies whether JVM should suspend
+#                   execution immediately after startup. Default is "n".
+#
+#   JPDA_OPTS       (Optional) Java runtime options used when the "jpda start"
+#                   command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,
+#                   and JPDA_SUSPEND are ignored. Thus, all required jpda
+#                   options MUST be specified. The default is:
+#
+#                   -Xdebug -Xrunjdwp:transport=$JPDA_TRANSPORT,
+#                       address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND
+#
+#   JSSE_HOME       (Optional) May point at your Java Secure Sockets Extension
+#                   (JSSE) installation, whose JAR files will be added to the
+#                   system class path used to start Tomcat.
+#
+#   CATALINA_PID    (Optional) Path of the file which should contains the pid
+#                   of catalina startup java process, when start (fork) is used
+#
+# $Id: catalina.sh 609438 2008-01-06 22:14:28Z markt $
+# -----------------------------------------------------------------------------
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false
+os400=false
+darwin=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+OS400*) os400=true;;
+Darwin*) darwin=true;;
+esac
+
+# resolve links - $0 may be a softlink
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+  ls=`ls -ld "$PRG"`
+  link=`expr "$ls" : '.*-> \(.*\)$'`
+  if expr "$link" : '/.*' > /dev/null; then
+    PRG="$link"
+  else
+    PRG=`dirname "$PRG"`/"$link"
+  fi
+done
+
+# Get standard environment variables
+PRGDIR=`dirname "$PRG"`
+
+# Only set CATALINA_HOME if not already set
+[ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." ; pwd`
+
+if [ -r "$CATALINA_BASE"/bin/setenv.sh ]; then
+  . "$CATALINA_BASE"/bin/setenv.sh
+elif [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then
+  . "$CATALINA_HOME"/bin/setenv.sh
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin; then
+  [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$JRE_HOME" ] && JRE_HOME=`cygpath --unix "$JRE_HOME"`
+  [ -n "$CATALINA_HOME" ] && CATALINA_HOME=`cygpath --unix "$CATALINA_HOME"`
+  [ -n "$CATALINA_BASE" ] && CATALINA_BASE=`cygpath --unix "$CATALINA_BASE"`
+  [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+  [ -n "$JSSE_HOME" ] && JSSE_HOME=`cygpath --absolute --unix "$JSSE_HOME"`
+fi
+
+# For OS400
+if $os400; then
+  # Set job priority to standard for interactive (interactive - 6) by using
+  # the interactive priority - 6, the helper threads that respond to requests
+  # will be running at the same priority as interactive jobs.
+  COMMAND='chgjob job('$JOBNAME') runpty(6)'
+  system $COMMAND
+
+  # Enable multi threading
+  export QIBM_MULTI_THREADED=Y
+fi
+
+# Get standard Java environment variables
+if $os400; then
+  # -r will Only work on the os400 if the files are:
+  # 1. owned by the user
+  # 2. owned by the PRIMARY group of the user
+  # this will not work if the user belongs in secondary groups
+  BASEDIR="$CATALINA_HOME"
+  . "$CATALINA_HOME"/bin/setclasspath.sh
+else
+  if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then
+    BASEDIR="$CATALINA_HOME"
+    . "$CATALINA_HOME"/bin/setclasspath.sh
+  else
+    echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh"
+    echo "This file is needed to run this program"
+    exit 1
+  fi
+fi
+
+# Add on extra jar files to CLASSPATH
+if [ -n "$JSSE_HOME" ]; then
+  CLASSPATH="$CLASSPATH":"$JSSE_HOME"/lib/jcert.jar:"$JSSE_HOME"/lib/jnet.jar:"$JSSE_HOME"/lib/jsse.jar
+fi
+CLASSPATH="$CLASSPATH":"$CATALINA_HOME"/bin/bootstrap.jar:"$CATALINA_HOME"/bin/commons-logging-api.jar
+
+if [ -z "$CATALINA_BASE" ] ; then
+  CATALINA_BASE="$CATALINA_HOME"
+fi
+
+if [ -z "$CATALINA_TMPDIR" ] ; then
+  # Define the java.io.tmpdir to use for Catalina
+  CATALINA_TMPDIR="$CATALINA_BASE"/temp
+fi
+
+# Bugzilla 37848: When no TTY is available, don't output to console
+have_tty=0
+if [ "`tty`" != "not a tty" ]; then
+    have_tty=1
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
+  JRE_HOME=`cygpath --absolute --windows "$JRE_HOME"`
+  CATALINA_HOME=`cygpath --absolute --windows "$CATALINA_HOME"`
+  CATALINA_BASE=`cygpath --absolute --windows "$CATALINA_BASE"`
+  CATALINA_TMPDIR=`cygpath --absolute --windows "$CATALINA_TMPDIR"`
+  CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$JSSE_HOME" ] && JSSE_HOME=`cygpath --absolute --windows "$JSSE_HOME"`
+  JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
+fi
+
+# Set juli LogManager if it is present
+if [ -r "$CATALINA_HOME"/bin/tomcat-juli.jar ]; then
+  JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" "-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties"
+fi
+
+# ----- Execute The Requested Command -----------------------------------------
+
+# Bugzilla 37848: only output this if we have a TTY
+if [ $have_tty -eq 1 ]; then
+  echo "Using CATALINA_BASE:   $CATALINA_BASE"
+  echo "Using CATALINA_HOME:   $CATALINA_HOME"
+  echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
+  if [ "$1" = "debug" -o "$1" = "javac" ] ; then
+    echo "Using JAVA_HOME:       $JAVA_HOME"
+  else
+    echo "Using JRE_HOME:       $JRE_HOME"
+  fi
+fi
+
+if [ "$1" = "jpda" ] ; then
+  if [ -z "$JPDA_TRANSPORT" ]; then
+    JPDA_TRANSPORT="dt_socket"
+  fi
+  if [ -z "$JPDA_ADDRESS" ]; then
+    JPDA_ADDRESS="8000"
+  fi
+  if [ -z "$JPDA_SUSPEND" ]; then
+    JPDA_SUSPEND="n"
+  fi
+  if [ -z "$JPDA_OPTS" ]; then
+    JPDA_OPTS="-Xdebug -Xrunjdwp:transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
+  fi
+  CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
+  shift
+fi
+
+if [ "$1" = "debug" ] ; then
+  if $os400; then
+    echo "Debug command not available on OS400"
+    exit 1
+  else
+    shift
+    if [ "$1" = "-security" ] ; then
+      echo "Using Security Manager"
+      shift
+      exec "$_RUNJDB" $JAVA_OPTS $CATALINA_OPTS \
+        -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+        -sourcepath "$CATALINA_HOME"/../../jakarta-tomcat-catalina/catalina/src/share \
+        -Djava.security.manager \
+        -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
+        -Dcatalina.base="$CATALINA_BASE" \
+        -Dcatalina.home="$CATALINA_HOME" \
+        -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+        org.apache.catalina.startup.Bootstrap "$@" start
+    else
+      exec "$_RUNJDB" $JAVA_OPTS $CATALINA_OPTS \
+        -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+        -sourcepath "$CATALINA_HOME"/../../jakarta-tomcat-catalina/catalina/src/share \
+        -Dcatalina.base="$CATALINA_BASE" \
+        -Dcatalina.home="$CATALINA_HOME" \
+        -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+        org.apache.catalina.startup.Bootstrap "$@" start
+    fi
+  fi
+
+elif [ "$1" = "run" ]; then
+
+  shift
+  if [ "$1" = "-security" ] ; then
+    echo "Using Security Manager"
+    shift
+    exec "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
+      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+      -Djava.security.manager \
+      -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
+      -Dcatalina.base="$CATALINA_BASE" \
+      -Dcatalina.home="$CATALINA_HOME" \
+      -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+      org.apache.catalina.startup.Bootstrap "$@" start
+  else
+    exec "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
+      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+      -Dcatalina.base="$CATALINA_BASE" \
+      -Dcatalina.home="$CATALINA_HOME" \
+      -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+      org.apache.catalina.startup.Bootstrap "$@" start
+  fi
+
+elif [ "$1" = "start" ] ; then
+
+  shift
+  touch "$CATALINA_BASE"/logs/catalina.out
+  if [ "$1" = "-security" ] ; then
+    echo "Using Security Manager"
+    shift
+    "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
+      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+      -Djava.security.manager \
+      -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
+      -Dcatalina.base="$CATALINA_BASE" \
+      -Dcatalina.home="$CATALINA_HOME" \
+      -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+      org.apache.catalina.startup.Bootstrap "$@" start \
+      >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
+
+      if [ ! -z "$CATALINA_PID" ]; then
+        echo $! > $CATALINA_PID
+      fi
+  else
+    "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
+      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+      -Dcatalina.base="$CATALINA_BASE" \
+      -Dcatalina.home="$CATALINA_HOME" \
+      -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+      org.apache.catalina.startup.Bootstrap "$@" start \
+      >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
+
+      if [ ! -z "$CATALINA_PID" ]; then
+        echo $! > $CATALINA_PID
+      fi
+  fi
+
+elif [ "$1" = "stop" ] ; then
+
+  shift
+  FORCE=0
+  if [ "$1" = "-force" ]; then
+    shift
+    FORCE=1
+  fi
+
+  "$_RUNJAVA" $JAVA_OPTS \
+    -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+    -Dcatalina.base="$CATALINA_BASE" \
+    -Dcatalina.home="$CATALINA_HOME" \
+    -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+    org.apache.catalina.startup.Bootstrap "$@" stop
+
+  if [ $FORCE -eq 1 ]; then
+    if [ ! -z "$CATALINA_PID" ]; then
+       echo "Killing: `cat $CATALINA_PID`"
+       kill -9 `cat $CATALINA_PID`
+    else
+       echo "Kill failed: \$CATALINA_PID not set"
+    fi
+  fi
+
+elif [ "$1" = "version" ] ; then
+
+    "$_RUNJAVA"   \
+      -classpath "$CATALINA_HOME/server/lib/catalina.jar" \
+      org.apache.catalina.util.ServerInfo
+
+else
+
+  echo "Usage: catalina.sh ( commands ... )"
+  echo "commands:"
+  if $os400; then
+    echo "  debug             Start Catalina in a debugger (not available on OS400)"
+    echo "  debug -security   Debug Catalina with a security manager (not available on OS400)"
+  else
+    echo "  debug             Start Catalina in a debugger"
+    echo "  debug -security   Debug Catalina with a security manager"
+  fi
+  echo "  jpda start        Start Catalina under JPDA debugger"
+  echo "  run               Start Catalina in the current window"
+  echo "  run -security     Start in the current window with security manager"
+  echo "  start             Start Catalina in a separate window"
+  echo "  start -security   Start in a separate window with security manager"
+  echo "  stop              Stop Catalina"
+  echo "  stop -force       Stop Catalina (followed by kill -KILL)"
+  echo "  version           What version of tomcat are you running?"
+  exit 1
+
+fi
diff --git a/framework/appserver/templates/tomcat55/server.xml b/framework/appserver/templates/tomcat55/server.xml
new file mode 100644
index 0000000..7d58627
--- /dev/null
+++ b/framework/appserver/templates/tomcat55/server.xml
@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (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.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!-- Example Server Configuration File -->
+<!-- Note that component elements are nested corresponding to their
+     parent-child relationships with each other -->
+
+<!-- A "Server" is a singleton element that represents the entire JVM,
+     which may contain one or more "Service" instances.  The Server
+     listens for a shutdown command on the indicated port.
+
+     Note:  A "Server" is not itself a "Container", so you may not
+     define subcomponents such as "Valves" or "Loggers" at this level.
+ -->
+
+<Server port="8005" shutdown="SHUTDOWN">
+
+  <!-- Comment these entries out to disable JMX MBeans support used for the
+       administration web application -->
+  <Listener className="org.apache.catalina.core.AprLifecycleListener"/>
+  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
+  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
+  <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
+
+  <!-- Global JNDI resources -->
+  <GlobalNamingResources>
+
+    <!-- Test entry for demonstration purposes -->
+    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
+
+    <!-- Editable user database that can also be used by
+         UserDatabaseRealm to authenticate users -->
+    <Resource name="UserDatabase" auth="Container"
+              type="org.apache.catalina.UserDatabase"
+       description="User database that can be updated and saved"
+           factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
+          pathname="conf/tomcat-users.xml"/>
+
+  </GlobalNamingResources>
+
+  <!-- A "Service" is a collection of one or more "Connectors" that share
+       a single "Container" (and therefore the web applications visible
+       within that Container).  Normally, that Container is an "Engine",
+       but this is not required.
+
+       Note:  A "Service" is not itself a "Container", so you may not
+       define subcomponents such as "Valves" or "Loggers" at this level.
+   -->
+
+  <!-- Define the Tomcat Stand-Alone Service -->
+  <Service name="Catalina">
+
+    <!-- A "Connector" represents an endpoint by which requests are received
+         and responses are returned.  Each Connector passes requests on to the
+         associated "Container" (normally an Engine) for processing.
+
+         By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
+         You can also enable an SSL HTTP/1.1 Connector on port 8443 by
+         following the instructions below and uncommenting the second Connector
+         entry.  SSL support requires the following steps (see the SSL Config
+         HOWTO in the Tomcat 5 documentation bundle for more detailed
+         instructions):
+         * If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
+           later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
+         * Execute:
+             %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
+             $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA  (Unix)
+           with a password value of "changeit" for both the certificate and
+           the keystore itself.
+
+         By default, DNS lookups are enabled when a web application calls
+         request.getRemoteHost().  This can have an adverse impact on
+         performance, so you can disable it by setting the
+         "enableLookups" attribute to "false".  When DNS lookups are disabled,
+         request.getRemoteHost() will return the String version of the
+         IP address of the remote client.
+    -->
+
+    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
+    <Connector port="8080" maxHttpHeaderSize="8192"
+               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
+               enableLookups="false" redirectPort="8443" acceptCount="100"
+               connectionTimeout="20000" disableUploadTimeout="true"/>
+    <!-- Note : To disable connection timeouts, set connectionTimeout value
+     to 0 -->
+
+    <!-- Note : To use gzip compression you could set the following properties :
+
+               compression="on"
+               compressionMinSize="2048"
+               noCompressionUserAgents="gozilla, traviata"
+               compressableMimeType="text/html,text/xml"
+    -->
+
+    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
+    <Connector port="8443" maxHttpHeaderSize="8192"
+               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
+               enableLookups="false" disableUploadTimeout="true"
+               acceptCount="100" scheme="https" secure="true"
+               clientAuth="false" sslProtocol="TLS"
+               keystoreFile="${ofbizHome}/framework/base/config/ofbizssl.jks"
+               keystorePass="changeit"/>
+
+    <!-- Define an AJP 1.3 Connector on port 8009 -->
+    <Connector port="8009"
+               enableLookups="false" redirectPort="8443" protocol="AJP/1.3"/>
+
+    <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
+    <!-- See proxy documentation for more information about using this. -->
+    <!--
+    <Connector port="8082"
+               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
+               enableLookups="false" acceptCount="100" connectionTimeout="20000"
+               proxyPort="80" disableUploadTimeout="true"/>
+    -->
+
+    <!-- An Engine represents the entry point (within Catalina) that processes
+         every request.  The Engine implementation for Tomcat stand alone
+         analyzes the HTTP headers included with the request, and passes them
+         on to the appropriate Host (virtual host). -->
+
+    <!-- You should set jvmRoute to support load-balancing via AJP ie :
+    <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
+    -->
+
+    <!-- Define the top level container in our container hierarchy -->
+    <Engine name="Catalina" defaultHost="localhost">
+
+      <!-- The request dumper valve dumps useful debugging information about
+           the request headers and cookies that were received, and the response
+           headers and cookies that were sent, for all requests received by
+           this instance of Tomcat.  If you care only about requests to a
+           particular virtual host, or a particular application, nest this
+           element inside the corresponding <Host> or <Context> entry instead.
+
+           For a similar mechanism that is portable to all Servlet 2.4
+           containers, check out the "RequestDumperFilter" Filter in the
+           example application (the source for this filter may be found in
+           "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
+
+           Note that this Valve uses the platform's default character encoding.
+           This may cause problems for developers in another encoding, e.g.
+           UTF-8.  Use the RequestDumperFilter instead.
+
+           Also note that enabling this Valve will write a ton of stuff to your
+           logs.  They are likely to grow quite large.  This extensive log writing
+           will definitely slow down your server.
+
+           Request dumping is disabled by default.  Uncomment the following
+           element to enable it. -->
+      <!--
+      <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
+      -->
+
+      <!-- Because this Realm is here, an instance will be shared globally -->
+
+      <!-- This Realm uses the UserDatabase configured in the global JNDI
+           resources under the key "UserDatabase".  Any edits
+           that are performed against this UserDatabase are immediately
+           available for use by the Realm.  -->
+      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
+             resourceName="UserDatabase"/>
+
+      <!-- Comment out the old realm but leave here for now in case we
+           need to go back quickly -->
+      <!--
+      <Realm className="org.apache.catalina.realm.MemoryRealm"/>
+      -->
+
+      <!-- Replace the above Realm with one of the following to get a Realm
+           stored in a database and accessed via JDBC -->
+
+      <!--
+      <Realm  className="org.apache.catalina.realm.JDBCRealm"
+             driverName="org.gjt.mm.mysql.Driver"
+          connectionURL="jdbc:mysql://localhost/authority"
+         connectionName="test" connectionPassword="test"
+              userTable="users" userNameCol="user_name" userCredCol="user_pass"
+          userRoleTable="user_roles" roleNameCol="role_name"/>
+      -->
+
+      <!--
+      <Realm  className="org.apache.catalina.realm.JDBCRealm"
+             driverName="oracle.jdbc.driver.OracleDriver"
+          connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
+         connectionName="scott" connectionPassword="tiger"
+              userTable="users" userNameCol="user_name" userCredCol="user_pass"
+          userRoleTable="user_roles" roleNameCol="role_name"/>
+      -->
+
+      <!--
+      <Realm  className="org.apache.catalina.realm.JDBCRealm"
+             driverName="sun.jdbc.odbc.JdbcOdbcDriver"
+          connectionURL="jdbc:odbc:CATALINA"
+              userTable="users" userNameCol="user_name" userCredCol="user_pass"
+          userRoleTable="user_roles" roleNameCol="role_name"/>
+      -->
+
+      <!-- Define the default virtual host
+           Note: XML Schema validation will not work with Xerces 2.2.
+       -->
+      <Host name="localhost" appBase="webapps"
+       unpackWARs="true" autoDeploy="true"
+       xmlValidation="false" xmlNamespaceAware="false">
+
+        <!-- Defines a cluster for this node,
+             By defining this element, means that every manager will be changed.
+             So when running a cluster, only make sure that you have webapps in there
+             that need to be clustered and remove the other ones.
+             A cluster has the following parameters:
+
+             className = the fully qualified name of the cluster class
+
+             clusterName = a descriptive name for your cluster, can be anything
+
+             mcastAddr = the multicast address, has to be the same for all the nodes
+
+             mcastPort = the multicast port, has to be the same for all the nodes
+
+             mcastBindAddress = bind the multicast socket to a specific address
+
+             mcastTTL = the multicast TTL if you want to limit your broadcast
+
+             mcastSoTimeout = the multicast readtimeout
+
+             mcastFrequency = the number of milliseconds in between sending a "I'm alive" heartbeat
+
+             mcastDropTime = the number a milliseconds before a node is considered "dead" if no heartbeat is received
+
+             tcpThreadCount = the number of threads to handle incoming replication requests, optimal would be the same amount of threads as nodes
+
+             tcpListenAddress = the listen address (bind address) for TCP cluster request on this host,
+                                in case of multiple ethernet cards.
+                                auto means that address becomes
+                                InetAddress.getLocalHost().getHostAddress()
+
+             tcpListenPort = the tcp listen port
+
+             tcpSelectorTimeout = the timeout (ms) for the Selector.select() method in case the OS
+                                  has a wakup bug in java.nio. Set to 0 for no timeout
+
+             printToScreen = true means that managers will also print to std.out
+
+             expireSessionsOnShutdown = true means that
+
+             useDirtyFlag = true means that we only replicate a session after setAttribute,removeAttribute has been called.
+                            false means to replicate the session after each request.
+                            false means that replication would work for the following piece of code: (only for SimpleTcpReplicationManager)
+                            <%
+                            HashMap map = (HashMap)session.getAttribute("map");
+                            map.put("key","value");
+                            %>
+             replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'.
+                               * Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication.
+                               * Synchronous means that the thread that executes the request, is also the
+                               thread the replicates the data to the other nodes, and will not return until all
+                               nodes have received the information.
+                               * Asynchronous means that there is a specific 'sender' thread for each cluster node,
+                               so the request thread will queue the replication request into a "smart" queue,
+                               and then return to the client.
+                               The "smart" queue is a queue where when a session is added to the queue, and the same session
+                               already exists in the queue from a previous request, that session will be replaced
+                               in the queue instead of replicating two requests. This almost never happens, unless there is a
+                               large network delay.
+        -->
+        <!--
+            When configuring for clustering, you also add in a valve to catch all the requests
+            coming in, at the end of the request, the session may or may not be replicated.
+            A session is replicated if and only if all the conditions are met:
+            1. useDirtyFlag is true or setAttribute or removeAttribute has been called AND
+            2. a session exists (has been created)
+            3. the request is not trapped by the "filter" attribute
+
+            The filter attribute is to filter out requests that could not modify the session,
+            hence we don't replicate the session after the end of this request.
+            The filter is negative, ie, anything you put in the filter, you mean to filter out,
+            ie, no replication will be done on requests that match one of the filters.
+            The filter attribute is delimited by ;, so you can't escape out ; even if you wanted to.
+
+            filter=".*\.gif;.*\.js;" means that we will not replicate the session after requests with the URI
+            ending with .gif and .js are intercepted.
+
+            The deployer element can be used to deploy apps cluster wide.
+            Currently the deployment only deploys/undeploys to working members in the cluster
+            so no WARs are copied upons startup of a broken node.
+            The deployer watches a directory (watchDir) for WAR files when watchEnabled="true"
+            When a new war file is added the war gets deployed to the local instance,
+            and then deployed to the other instances in the cluster.
+            When a war file is deleted from the watchDir the war is undeployed locally
+            and cluster wide
+        -->
+
+        <!--
+        <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
+                 managerClassName="org.apache.catalina.cluster.session.DeltaManager"
+                 expireSessionsOnShutdown="false"
+                 useDirtyFlag="true"
+                 notifyListenersOnReplication="true">
+
+            <Membership
+                className="org.apache.catalina.cluster.mcast.McastService"
+                mcastAddr="228.0.0.4"
+                mcastPort="45564"
+                mcastFrequency="500"
+                mcastDropTime="3000"/>
+
+            <Receiver
+                className="org.apache.catalina.cluster.tcp.ReplicationListener"
+                tcpListenAddress="auto"
+                tcpListenPort="4001"
+                tcpSelectorTimeout="100"
+                tcpThreadCount="6"/>
+
+            <Sender
+                className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
+                replicationMode="pooled"
+                ackTimeout="15000"
+                waitForAck="true"/>
+
+            <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
+                   filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
+
+            <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
+                      tempDir="/tmp/war-temp/"
+                      deployDir="/tmp/war-deploy/"
+                      watchDir="/tmp/war-listen/"
+                      watchEnabled="false"/>
+
+            <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
+        </Cluster>
+        -->
+
+
+
+        <!-- Normally, users must authenticate themselves to each web app
+             individually.  Uncomment the following entry if you would like
+             a user to be authenticated the first time they encounter a
+             resource protected by a security constraint, and then have that
+             user identity maintained across *all* web applications contained
+             in this virtual host. -->
+        <!--
+        <Valve className="org.apache.catalina.authenticator.SingleSignOn"/>
+        -->
+
+        <!-- Access log processes all requests for this virtual host.  By
+             default, log files are created in the "logs" directory relative to
+             $CATALINA_HOME.  If you wish, you can specify a different
+             directory with the "directory" attribute.  Specify either a relative
+             (to $CATALINA_HOME) or absolute path to the desired directory.
+        -->
+        <!--
+        <Valve className="org.apache.catalina.valves.AccessLogValve"
+                 directory="logs"  prefix="localhost_access_log." suffix=".txt"
+                 pattern="common" resolveHosts="false"/>
+        -->
+
+        <!-- Access log processes all requests for this virtual host.  By
+             default, log files are created in the "logs" directory relative to
+             $CATALINA_HOME.  If you wish, you can specify a different
+             directory with the "directory" attribute.  Specify either a relative
+             (to $CATALINA_HOME) or absolute path to the desired directory.
+             This access log implementation is optimized for maximum performance,
+             but is hardcoded to support only the "common" and "combined" patterns.
+        -->
+        <!--
+        <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
+                 directory="logs"  prefix="localhost_access_log." suffix=".txt"
+                 pattern="common" resolveHosts="false"/>
+        -->
+
+    <!-- BEGIN OFBiz settings -->
+<#list webApps as webapp>
+    <#-- Remove last directory segment from path -->
+    <#if webapp.getLocation().lastIndexOf("/") != -1>
+        <#assign lastSlash = webapp.getLocation().lastIndexOf("/")>
+    </#if>
+    <#if (webapp.getLocation().lastIndexOf("\\") > lastSlash)>
+        <#assign lastSlash = webapp.getLocation().lastIndexOf("\\")>
+    </#if>
+<Context path="${webapp.getContextRoot()}" docBase="${webapp.getLocation().substring(0,lastSlash)}${webapp.getContextRoot()}"
+         privileged="false" antiResourceLocking="true" antiJARLocking="true">
+</Context>
+</#list>
+    <!-- END OFBiz settings -->
+
+      </Host>
+
+    </Engine>
+
+  </Service>
+
+</Server>
diff --git a/framework/appserver/templates/tomcat6/catalina.bat b/framework/appserver/templates/tomcat6/catalina.bat
new file mode 100644
index 0000000..cbcae3b
--- /dev/null
+++ b/framework/appserver/templates/tomcat6/catalina.bat
@@ -0,0 +1,249 @@
+@echo off

+rem Licensed to the Apache Software Foundation (ASF) under one or more

+rem contributor license agreements.  See the NOTICE file distributed with

+rem this work for additional information regarding copyright ownership.

+rem The ASF licenses this file to You under the Apache License, Version 2.0

+rem (the "License"); you may not use this file except in compliance with

+rem the License.  You may obtain a copy of the License at

+rem

+rem     http://www.apache.org/licenses/LICENSE-2.0

+rem

+rem Unless required by applicable law or agreed to in writing, software

+rem distributed under the License is distributed on an "AS IS" BASIS,

+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+rem See the License for the specific language governing permissions and

+rem limitations under the License.

+

+if "%OS%" == "Windows_NT" setlocal

+rem ---------------------------------------------------------------------------

+rem Start/Stop Script for the CATALINA Server

+rem

+rem Environment Variable Prequisites

+rem

+rem   CATALINA_HOME   May point at your Catalina "build" directory.

+rem

+rem   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions

+rem                   of a Catalina installation.  If not present, resolves to

+rem                   the same directory that CATALINA_HOME points to.

+rem

+rem   CATALINA_OPTS   (Optional) Java runtime options used when the "start",

+rem                   or "run" command is executed.

+rem

+rem   CATALINA_TMPDIR (Optional) Directory path location of temporary directory

+rem                   the JVM should use (java.io.tmpdir).  Defaults to

+rem                   %CATALINA_BASE%\temp.

+rem

+rem   JAVA_HOME       Must point at your Java Development Kit installation.

+rem                   Required to run the with the "debug" argument.

+rem

+rem   JRE_HOME        Must point at your Java Runtime installation.

+rem                   Defaults to JAVA_HOME if empty.

+rem

+rem   JAVA_OPTS       (Optional) Java runtime options used when the "start",

+rem                   "stop", or "run" command is executed.

+

+rem BEGIN OfBiz settings

+set JAVA_OPTS="%JAVA_OPTS% -Dofbiz.home=${ofbizHome}"

+rem END OfBiz settings

+

+rem   JSSE_HOME       (Optional) May point at your Java Secure Sockets Extension

+rem                   (JSSE) installation, whose JAR files will be added to the

+rem                   system class path used to start Tomcat.

+rem

+rem   JPDA_TRANSPORT  (Optional) JPDA transport used when the "jpda start"

+rem                   command is executed. The default is "dt_shmem".

+rem

+rem   JPDA_ADDRESS    (Optional) Java runtime options used when the "jpda start"

+rem                   command is executed. The default is "jdbconn".

+rem

+rem   JPDA_SUSPEND    (Optional) Java runtime options used when the "jpda start"

+rem                   command is executed. Specifies whether JVM should suspend

+rem                   execution immediately after startup. Default is "n".

+rem

+rem   JPDA_OPTS       (Optional) Java runtime options used when the "jpda start"

+rem                   command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,

+rem                   and JPDA_SUSPEND are ignored. Thus, all required jpda

+rem                   options MUST be specified. The default is:

+rem

+rem                   -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,

+rem                       address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%

+rem

+rem $Id: catalina.bat 615987 2008-01-28 18:48:10Z rjung $

+rem ---------------------------------------------------------------------------

+

+rem Guess CATALINA_HOME if not defined

+set CURRENT_DIR=%cd%

+if not "%CATALINA_HOME%" == "" goto gotHome

+set CATALINA_HOME=%CURRENT_DIR%

+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome

+cd ..

+set CATALINA_HOME=%cd%

+cd %CURRENT_DIR%

+:gotHome

+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome

+echo The CATALINA_HOME environment variable is not defined correctly

+echo This environment variable is needed to run this program

+goto end

+:okHome

+

+rem Get standard environment variables

+if "%CATALINA_BASE%" == "" goto gotSetenvHome

+if exist "%CATALINA_BASE%\bin\setenv.bat" call "%CATALINA_BASE%\bin\setenv.bat"

+goto gotSetenvBase

+:gotSetenvHome

+if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"

+:gotSetenvBase

+

+rem Get standard Java environment variables

+if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath

+echo Cannot find %CATALINA_HOME%\bin\setclasspath.bat

+echo This file is needed to run this program

+goto end

+:okSetclasspath

+set BASEDIR=%CATALINA_HOME%

+call "%CATALINA_HOME%\bin\setclasspath.bat" %1

+if errorlevel 1 goto end

+

+rem Add on extra jar files to CLASSPATH

+if "%JSSE_HOME%" == "" goto noJsse

+set CLASSPATH=%CLASSPATH%;%JSSE_HOME%\lib\jcert.jar;%JSSE_HOME%\lib\jnet.jar;%JSSE_HOME%\lib\jsse.jar

+:noJsse

+set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jar

+

+if not "%CATALINA_BASE%" == "" goto gotBase

+set CATALINA_BASE=%CATALINA_HOME%

+:gotBase

+

+if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir

+set CATALINA_TMPDIR=%CATALINA_BASE%\temp

+:gotTmpdir

+

+if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuli

+set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"

+:noJuli

+

+rem ----- Execute The Requested Command ---------------------------------------

+

+echo Using CATALINA_BASE:   %CATALINA_BASE%

+echo Using CATALINA_HOME:   %CATALINA_HOME%

+echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%

+if ""%1"" == ""debug"" goto use_jdk

+echo Using JRE_HOME:        %JRE_HOME%

+goto java_dir_displayed

+:use_jdk

+echo Using JAVA_HOME:       %JAVA_HOME%

+:java_dir_displayed

+

+set _EXECJAVA=%_RUNJAVA%

+set MAINCLASS=org.apache.catalina.startup.Bootstrap

+set ACTION=start

+set SECURITY_POLICY_FILE=

+set DEBUG_OPTS=

+set JPDA=

+

+if not ""%1"" == ""jpda"" goto noJpda

+set JPDA=jpda

+if not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport

+set JPDA_TRANSPORT=dt_shmem

+:gotJpdaTransport

+if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress

+set JPDA_ADDRESS=jdbconn

+:gotJpdaAddress

+if not "%JPDA_SUSPEND%" == "" goto gotJpdaSuspend

+set JPDA_SUSPEND=n

+:gotJpdaSuspend

+if not "%JPDA_OPTS%" == "" goto gotJpdaOpts

+set JPDA_OPTS=-Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%

+:gotJpdaOpts

+shift

+:noJpda

+

+if ""%1"" == ""debug"" goto doDebug

+if ""%1"" == ""run"" goto doRun

+if ""%1"" == ""start"" goto doStart

+if ""%1"" == ""stop"" goto doStop

+if ""%1"" == ""version"" goto doVersion

+

+echo Usage:  catalina ( commands ... )

+echo commands:

+echo   debug             Start Catalina in a debugger

+echo   debug -security   Debug Catalina with a security manager

+echo   jpda start        Start Catalina under JPDA debugger

+echo   run               Start Catalina in the current window

+echo   run -security     Start in the current window with security manager

+echo   start             Start Catalina in a separate window

+echo   start -security   Start in a separate window with security manager

+echo   stop              Stop Catalina

+echo   version           What version of tomcat are you running?

+goto end

+

+:doDebug

+shift

+set _EXECJAVA=%_RUNJDB%

+set DEBUG_OPTS=-sourcepath "%CATALINA_HOME%\..\..\java"

+if not ""%1"" == ""-security"" goto execCmd

+shift

+echo Using Security Manager

+set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy

+goto execCmd

+

+:doRun

+shift

+if not ""%1"" == ""-security"" goto execCmd

+shift

+echo Using Security Manager

+set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy

+goto execCmd

+

+:doStart

+shift

+if not "%OS%" == "Windows_NT" goto noTitle

+set _EXECJAVA=start "Tomcat" %_RUNJAVA%

+goto gotTitle

+:noTitle

+set _EXECJAVA=start %_RUNJAVA%

+:gotTitle

+if not ""%1"" == ""-security"" goto execCmd

+shift

+echo Using Security Manager

+set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy

+goto execCmd

+

+:doStop

+shift

+set ACTION=stop

+set CATALINA_OPTS=

+goto execCmd

+

+:doVersion

+%_EXECJAVA% -classpath "%CATALINA_HOME%\lib\catalina.jar" org.apache.catalina.util.ServerInfo

+goto end

+

+

+:execCmd

+rem Get remaining unshifted command line arguments and save them in the

+set CMD_LINE_ARGS=

+:setArgs

+if ""%1""=="""" goto doneSetArgs

+set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1

+shift

+goto setArgs

+:doneSetArgs

+

+rem Execute Java with the applicable properties

+if not "%JPDA%" == "" goto doJpda

+if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity

+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

+goto end

+:doSecurity

+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

+goto end

+:doJpda

+if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda

+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

+goto end

+:doSecurityJpda

+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

+goto end

+

+:end

diff --git a/framework/appserver/templates/tomcat6/catalina.properties b/framework/appserver/templates/tomcat6/catalina.properties
new file mode 100644
index 0000000..e368d9a
--- /dev/null
+++ b/framework/appserver/templates/tomcat6/catalina.properties
@@ -0,0 +1,84 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (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.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# List of comma-separated packages that start with or equal this string
+# will cause a security exception to be thrown when
+# passed to checkPackageAccess unless the
+# corresponding RuntimePermission ("accessClassInPackage."+package) has
+# been granted.
+package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans.
+#
+# List of comma-separated packages that start with or equal this string
+# will cause a security exception to be thrown when
+# passed to checkPackageDefinition unless the
+# corresponding RuntimePermission ("defineClassInPackage."+package) has
+# been granted.
+#
+# by default, no packages are restricted for definition, and none of
+# the class loaders supplied with the JDK call checkPackageDefinition.
+#
+package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
+
+#
+#
+# List of comma-separated paths defining the contents of the "common"
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
+# If left as blank,the JVM system loader will be used as Catalina's "common"
+# loader.
+# Examples:
+#     "foo": Add this folder as a class repository
+#     "foo/*.jar": Add all the JARs of the specified folder as class
+#                  repositories
+#     "foo/bar.jar": Add bar.jar as a class repository
+common.loader=${r"${catalina.home}"}/lib,${r"${catalina.home}"}/lib/*.jar
+
+#
+# List of comma-separated paths defining the contents of the "server"
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
+# If left as blank, the "common" loader will be used as Catalina's "server"
+# loader.
+# Examples:
+#     "foo": Add this folder as a class repository
+#     "foo/*.jar": Add all the JARs of the specified folder as class
+#                  repositories
+#     "foo/bar.jar": Add bar.jar as a class repository
+server.loader=
+
+#
+# List of comma-separated paths defining the contents of the "shared"
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_BASE path or absolute. If left as blank,
+# the "common" loader will be used as Catalina's "shared" loader.
+# Examples:
+#     "foo": Add this folder as a class repository
+#     "foo/*.jar": Add all the JARs of the specified folder as class
+#                  repositories
+#     "foo/bar.jar": Add bar.jar as a class repository
+# Please note that for single jars, e.g. bar.jar, you need the URL form
+# starting with file:.
+ofbiz.home=${ofbizHome}
+shared.loader=file://${r"${ofbiz.home}"}/ofbiz.jar,\
+<#list classpathDirs as dir>${dir},\<#if dir_has_next>${"\n"}</#if></#list>
+<#list classpathJars as jar>file://${jar}<#if jar_has_next>,\</#if>${"\n"}</#list>
+
+#
+# String cache configuration.
+tomcat.util.buf.StringCache.byte.enabled=true
+#tomcat.util.buf.StringCache.char.enabled=true
+#tomcat.util.buf.StringCache.trainThreshold=500000
+#tomcat.util.buf.StringCache.cacheSize=5000
diff --git a/framework/appserver/templates/tomcat6/catalina.sh b/framework/appserver/templates/tomcat6/catalina.sh
new file mode 100755
index 0000000..f68e9d0
--- /dev/null
+++ b/framework/appserver/templates/tomcat6/catalina.sh
@@ -0,0 +1,360 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (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.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# -----------------------------------------------------------------------------
+# Start/Stop Script for the CATALINA Server
+#
+# Environment Variable Prequisites
+#
+#   CATALINA_HOME   May point at your Catalina "build" directory.
+#
+#   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions
+#                   of a Catalina installation.  If not present, resolves to
+#                   the same directory that CATALINA_HOME points to.
+#
+#   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
+#                   or "run" command is executed.
+#
+#   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
+#                   the JVM should use (java.io.tmpdir).  Defaults to
+#                   $CATALINA_BASE/temp.
+#
+#   JAVA_HOME       Must point at your Java Development Kit installation.
+#                   Required to run the with the "debug" or "javac" argument.
+#
+#   JRE_HOME        Must point at your Java Development Kit installation.
+#                   Defaults to JAVA_HOME if empty.
+#
+#   JAVA_OPTS       (Optional) Java runtime options used when the "start",
+#                   "stop", or "run" command is executed.
+
+# BEGIN OfBiz settings
+JAVA_OPTS="$JAVA_OPTS -Dofbiz.home=${ofbizHome}"
+# END OfBiz settings
+
+#   JPDA_TRANSPORT  (Optional) JPDA transport used when the "jpda start"
+#                   command is executed. The default is "dt_socket".
+#
+#   JPDA_ADDRESS    (Optional) Java runtime options used when the "jpda start"
+#                   command is executed. The default is 8000.
+#
+#   JPDA_SUSPEND    (Optional) Java runtime options used when the "jpda start"
+#                   command is executed. Specifies whether JVM should suspend
+#                   execution immediately after startup. Default is "n".
+#
+#   JPDA_OPTS       (Optional) Java runtime options used when the "jpda start"
+#                   command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,
+#                   and JPDA_SUSPEND are ignored. Thus, all required jpda
+#                   options MUST be specified. The default is:
+#
+#                   -Xdebug -Xrunjdwp:transport=$JPDA_TRANSPORT,
+#                       address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND
+#
+#   JSSE_HOME       (Optional) May point at your Java Secure Sockets Extension
+#                   (JSSE) installation, whose JAR files will be added to the
+#                   system class path used to start Tomcat.
+#
+#   CATALINA_PID    (Optional) Path of the file which should contains the pid
+#                   of catalina startup java process, when start (fork) is used
+#
+# $Id: catalina.sh 600664 2007-12-03 20:24:19Z jim $
+# -----------------------------------------------------------------------------
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false
+os400=false
+darwin=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+OS400*) os400=true;;
+Darwin*) darwin=true;;
+esac
+
+# resolve links - $0 may be a softlink
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+  ls=`ls -ld "$PRG"`
+  link=`expr "$ls" : '.*-> \(.*\)$'`
+  if expr "$link" : '/.*' > /dev/null; then
+    PRG="$link"
+  else
+    PRG=`dirname "$PRG"`/"$link"
+  fi
+done
+
+# Get standard environment variables
+PRGDIR=`dirname "$PRG"`
+
+# Only set CATALINA_HOME if not already set
+[ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." ; pwd`
+
+if [ -r "$CATALINA_BASE"/bin/setenv.sh ]; then
+  . "$CATALINA_BASE"/bin/setenv.sh
+elif [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then
+  . "$CATALINA_HOME"/bin/setenv.sh
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin; then
+  [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$JRE_HOME" ] && JRE_HOME=`cygpath --unix "$JRE_HOME"`
+  [ -n "$CATALINA_HOME" ] && CATALINA_HOME=`cygpath --unix "$CATALINA_HOME"`
+  [ -n "$CATALINA_BASE" ] && CATALINA_BASE=`cygpath --unix "$CATALINA_BASE"`
+  [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+  [ -n "$JSSE_HOME" ] && JSSE_HOME=`cygpath --absolute --unix "$JSSE_HOME"`
+fi
+
+# For OS400
+if $os400; then
+  # Set job priority to standard for interactive (interactive - 6) by using
+  # the interactive priority - 6, the helper threads that respond to requests
+  # will be running at the same priority as interactive jobs.
+  COMMAND='chgjob job('$JOBNAME') runpty(6)'
+  system $COMMAND
+
+  # Enable multi threading
+  export QIBM_MULTI_THREADED=Y
+fi
+
+# Get standard Java environment variables
+if $os400; then
+  # -r will Only work on the os400 if the files are:
+  # 1. owned by the user
+  # 2. owned by the PRIMARY group of the user
+  # this will not work if the user belongs in secondary groups
+  BASEDIR="$CATALINA_HOME"
+  . "$CATALINA_HOME"/bin/setclasspath.sh
+else
+  if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then
+    BASEDIR="$CATALINA_HOME"
+    . "$CATALINA_HOME"/bin/setclasspath.sh
+  else
+    echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh"
+    echo "This file is needed to run this program"
+    exit 1
+  fi
+fi
+
+# Add on extra jar files to CLASSPATH
+if [ -n "$JSSE_HOME" ]; then
+  CLASSPATH="$CLASSPATH":"$JSSE_HOME"/lib/jcert.jar:"$JSSE_HOME"/lib/jnet.jar:"$JSSE_HOME"/lib/jsse.jar
+fi
+CLASSPATH="$CLASSPATH":"$CATALINA_HOME"/bin/bootstrap.jar
+
+if [ -z "$CATALINA_BASE" ] ; then
+  CATALINA_BASE="$CATALINA_HOME"
+fi
+
+if [ -z "$CATALINA_TMPDIR" ] ; then
+  # Define the java.io.tmpdir to use for Catalina
+  CATALINA_TMPDIR="$CATALINA_BASE"/temp
+fi
+
+# Bugzilla 37848: When no TTY is available, don't output to console
+have_tty=0
+if [ "`tty`" != "not a tty" ]; then
+    have_tty=1
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
+  JRE_HOME=`cygpath --absolute --windows "$JRE_HOME"`
+  CATALINA_HOME=`cygpath --absolute --windows "$CATALINA_HOME"`
+  CATALINA_BASE=`cygpath --absolute --windows "$CATALINA_BASE"`
+  CATALINA_TMPDIR=`cygpath --absolute --windows "$CATALINA_TMPDIR"`
+  CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$JSSE_HOME" ] && JSSE_HOME=`cygpath --absolute --windows "$JSSE_HOME"`
+  JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
+fi
+
+# Set juli LogManager if it is present
+if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then
+  JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" "-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties"
+fi
+
+# ----- Execute The Requested Command -----------------------------------------
+
+# Bugzilla 37848: only output this if we have a TTY
+if [ $have_tty -eq 1 ]; then
+  echo "Using CATALINA_BASE:   $CATALINA_BASE"
+  echo "Using CATALINA_HOME:   $CATALINA_HOME"
+  echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
+  if [ "$1" = "debug" -o "$1" = "javac" ] ; then
+    echo "Using JAVA_HOME:       $JAVA_HOME"
+  else
+    echo "Using JRE_HOME:       $JRE_HOME"
+  fi
+fi
+
+if [ "$1" = "jpda" ] ; then
+  if [ -z "$JPDA_TRANSPORT" ]; then
+    JPDA_TRANSPORT="dt_socket"
+  fi
+  if [ -z "$JPDA_ADDRESS" ]; then
+    JPDA_ADDRESS="8000"
+  fi
+  if [ -z "$JPDA_SUSPEND" ]; then
+    JPDA_SUSPEND="n"
+  fi
+  if [ -z "$JPDA_OPTS" ]; then
+    JPDA_OPTS="-Xdebug -Xrunjdwp:transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
+  fi
+  CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
+  shift
+fi
+
+if [ "$1" = "debug" ] ; then
+  if $os400; then
+    echo "Debug command not available on OS400"
+    exit 1
+  else
+    shift
+    if [ "$1" = "-security" ] ; then
+      echo "Using Security Manager"
+      shift
+      exec "$_RUNJDB" $JAVA_OPTS $CATALINA_OPTS \
+        -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+        -sourcepath "$CATALINA_HOME"/../../java \
+        -Djava.security.manager \
+        -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
+        -Dcatalina.base="$CATALINA_BASE" \
+        -Dcatalina.home="$CATALINA_HOME" \
+        -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+        org.apache.catalina.startup.Bootstrap "$@" start
+    else
+      exec "$_RUNJDB" $JAVA_OPTS $CATALINA_OPTS \
+        -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+        -sourcepath "$CATALINA_HOME"/../../java \
+        -Dcatalina.base="$CATALINA_BASE" \
+        -Dcatalina.home="$CATALINA_HOME" \
+        -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+        org.apache.catalina.startup.Bootstrap "$@" start
+    fi
+  fi
+
+elif [ "$1" = "run" ]; then
+
+  shift
+  if [ "$1" = "-security" ] ; then
+    echo "Using Security Manager"
+    shift
+    exec "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
+      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+      -Djava.security.manager \
+      -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
+      -Dcatalina.base="$CATALINA_BASE" \
+      -Dcatalina.home="$CATALINA_HOME" \
+      -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+      org.apache.catalina.startup.Bootstrap "$@" start
+  else
+    exec "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
+      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+      -Dcatalina.base="$CATALINA_BASE" \
+      -Dcatalina.home="$CATALINA_HOME" \
+      -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+      org.apache.catalina.startup.Bootstrap "$@" start
+  fi
+
+elif [ "$1" = "start" ] ; then
+
+  shift
+  touch "$CATALINA_BASE"/logs/catalina.out
+  if [ "$1" = "-security" ] ; then
+    echo "Using Security Manager"
+    shift
+    "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
+      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+      -Djava.security.manager \
+      -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
+      -Dcatalina.base="$CATALINA_BASE" \
+      -Dcatalina.home="$CATALINA_HOME" \
+      -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+      org.apache.catalina.startup.Bootstrap "$@" start \
+      >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
+
+      if [ ! -z "$CATALINA_PID" ]; then
+        echo $! > $CATALINA_PID
+      fi
+  else
+    "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
+      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+      -Dcatalina.base="$CATALINA_BASE" \
+      -Dcatalina.home="$CATALINA_HOME" \
+      -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+      org.apache.catalina.startup.Bootstrap "$@" start \
+      >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
+
+      if [ ! -z "$CATALINA_PID" ]; then
+        echo $! > $CATALINA_PID
+      fi
+  fi
+
+elif [ "$1" = "stop" ] ; then
+
+  shift
+  FORCE=0
+  if [ "$1" = "-force" ]; then
+    shift
+    FORCE=1
+  fi
+
+  "$_RUNJAVA" $JAVA_OPTS \
+    -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+    -Dcatalina.base="$CATALINA_BASE" \
+    -Dcatalina.home="$CATALINA_HOME" \
+    -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+    org.apache.catalina.startup.Bootstrap "$@" stop
+
+  if [ $FORCE -eq 1 ]; then
+    if [ ! -z "$CATALINA_PID" ]; then
+       echo "Killing: `cat $CATALINA_PID`"
+       kill -9 `cat $CATALINA_PID`
+    else
+       echo "Kill failed: \$CATALINA_PID not set"
+    fi
+  fi
+
+elif [ "$1" = "version" ] ; then
+
+    "$_RUNJAVA"   \
+      -classpath "$CATALINA_HOME/lib/catalina.jar" \
+      org.apache.catalina.util.ServerInfo
+
+else
+
+  echo "Usage: catalina.sh ( commands ... )"
+  echo "commands:"
+  if $os400; then
+    echo "  debug             Start Catalina in a debugger (not available on OS400)"
+    echo "  debug -security   Debug Catalina with a security manager (not available on OS400)"
+  else
+    echo "  debug             Start Catalina in a debugger"
+    echo "  debug -security   Debug Catalina with a security manager"
+  fi
+  echo "  jpda start        Start Catalina under JPDA debugger"
+  echo "  run               Start Catalina in the current window"
+  echo "  run -security     Start in the current window with security manager"
+  echo "  start             Start Catalina in a separate window"
+  echo "  start -security   Start in a separate window with security manager"
+  echo "  stop              Stop Catalina"
+  echo "  stop -force       Stop Catalina (followed by kill -KILL)"
+  echo "  version           What version of tomcat are you running?"
+  exit 1
+
+fi
diff --git a/framework/appserver/templates/tomcat6/server.xml b/framework/appserver/templates/tomcat6/server.xml
new file mode 100644
index 0000000..a54f668
--- /dev/null
+++ b/framework/appserver/templates/tomcat6/server.xml
@@ -0,0 +1,161 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (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.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!-- Note:  A "Server" is not itself a "Container", so you may not
+     define subcomponents such as "Valves" at this level.
+     Documentation at /docs/config/server.html
+ -->
+<Server port="8005" shutdown="SHUTDOWN">
+
+  <!--APR library loader. Documentation at /docs/apr.html -->
+  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
+  <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
+  <Listener className="org.apache.catalina.core.JasperListener"/>
+  <!-- JMX Support for the Tomcat server. Documentation at /docs/non-existent.html -->
+  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
+  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
+
+  <!-- Global JNDI resources
+       Documentation at /docs/jndi-resources-howto.html
+  -->
+  <GlobalNamingResources>
+    <!-- Editable user database that can also be used by
+         UserDatabaseRealm to authenticate users
+    -->
+    <Resource name="UserDatabase" auth="Container"
+              type="org.apache.catalina.UserDatabase"
+              description="User database that can be updated and saved"
+              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
+              pathname="conf/tomcat-users.xml"/>
+  </GlobalNamingResources>
+
+  <!-- A "Service" is a collection of one or more "Connectors" that share
+       a single "Container" Note:  A "Service" is not itself a "Container",
+       so you may not define subcomponents such as "Valves" at this level.
+       Documentation at /docs/config/service.html
+   -->
+  <Service name="Catalina">
+
+    <!--The connectors can use a shared executor, you can define one or more named thread pools-->
+    <!--
+    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
+        maxThreads="150" minSpareThreads="4"/>
+    -->
+
+
+    <!-- A "Connector" represents an endpoint by which requests are received
+         and responses are returned. Documentation at :
+         Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
+         Java AJP  Connector: /docs/config/ajp.html
+         APR (HTTP/AJP) Connector: /docs/apr.html
+         Define a non-SSL HTTP/1.1 Connector on port 8080
+    -->
+    <Connector port="8080" protocol="HTTP/1.1"
+               connectionTimeout="20000"
+               redirectPort="8443"/>
+    <!-- A "Connector" using the shared thread pool-->
+    <!--
+    <Connector executor="tomcatThreadPool"
+               port="8080" protocol="HTTP/1.1"
+               connectionTimeout="20000"
+               redirectPort="8443"/>
+    -->
+    <!-- Define a SSL HTTP/1.1 Connector on port 8443
+         This connector uses the JSSE configuration, when using APR, the
+         connector should be using the OpenSSL style configuration
+         described in the APR documentation -->
+    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
+               maxThreads="150" scheme="https" secure="true"
+               clientAuth="false" sslProtocol="TLS"
+               keystoreFile="${ofbizHome}/framework/base/config/ofbizssl.jks"
+               keystorePass="changeit"/>
+
+    <!-- Define an AJP 1.3 Connector on port 8009 -->
+    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
+
+
+    <!-- An Engine represents the entry point (within Catalina) that processes
+         every request.  The Engine implementation for Tomcat stand alone
+         analyzes the HTTP headers included with the request, and passes them
+         on to the appropriate Host (virtual host).
+         Documentation at /docs/config/engine.html -->
+
+    <!-- You should set jvmRoute to support load-balancing via AJP ie :
+    <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
+    -->
+    <Engine name="Catalina" defaultHost="localhost">
+
+      <!--For clustering, please take a look at documentation at:
+          /docs/cluster-howto.html  (simple how to)
+          /docs/config/cluster.html (reference documentation) -->
+      <!--
+      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
+      -->
+
+      <!-- The request dumper valve dumps useful debugging information about
+           the request and response data received and sent by Tomcat.
+           Documentation at: /docs/config/valve.html -->
+      <!--
+      <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
+      -->
+
+      <!-- This Realm uses the UserDatabase configured in the global JNDI
+           resources under the key "UserDatabase".  Any edits
+           that are performed against this UserDatabase are immediately
+           available for use by the Realm.  -->
+      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
+             resourceName="UserDatabase"/>
+
+      <!-- Define the default virtual host
+           Note: XML Schema validation will not work with Xerces 2.2.
+       -->
+      <Host name="localhost"  appBase="webapps"
+            unpackWARs="true" autoDeploy="true"
+            xmlValidation="false" xmlNamespaceAware="false">
+
+        <!-- SingleSignOn valve, share authentication between web applications
+             Documentation at: /docs/config/valve.html -->
+        <!--
+        <Valve className="org.apache.catalina.authenticator.SingleSignOn"/>
+        -->
+
+        <!-- Access log processes all example.
+             Documentation at: /docs/config/valve.html -->
+        <!--
+        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
+               prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
+        -->
+
+    <!-- BEGIN OFBiz settings -->
+<#list webApps as webapp>
+    <#-- Remove last directory segment from path -->
+    <#if webapp.getLocation().lastIndexOf("/") != -1>
+        <#assign lastSlash = webapp.getLocation().lastIndexOf("/")>
+    </#if>
+    <#if (webapp.getLocation().lastIndexOf("\\") > lastSlash)>
+        <#assign lastSlash = webapp.getLocation().lastIndexOf("\\")>
+    </#if>
+<Context path="${webapp.getContextRoot()}" docBase="${webapp.getLocation().substring(0,lastSlash)}${webapp.getContextRoot()}"
+         privileged="false" antiResourceLocking="true" antiJARLocking="true">
+</Context>
+</#list>
+    <!-- END OFBiz settings -->
+
+      </Host>
+    </Engine>
+  </Service>
+</Server>
diff --git a/framework/appserver/templates/wasce2/README b/framework/appserver/templates/wasce2/README
new file mode 100644
index 0000000..f47931d
--- /dev/null
+++ b/framework/appserver/templates/wasce2/README
@@ -0,0 +1,113 @@
+<#--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+Websphere Application Server Community Edition (WASCE) 2 or Geronimo 2.0.3 Setup - 2008-04-08 - Jacques Le Roux
+Refer to the Guidelines in the OFBiz documentation : http://docs.ofbiz.org/x/Ah
+To use OFBiz with WASCE 2 or Geronimo 2.0.3 follow the following steps (all steps assume WASCE 2 or Geronimo 2.0.3  is already installed and working)
+
+=======================================================================================================================================================
+    In function of your OS, copy in the geronimo script (.sh or .bat), the 2 lines below in (at the top)
+      of the doneSetArgs section (Windows)
+      or the <<elif [ "$1" = "run" ]>> block (Linux)
+
+    For the ofbiz.home value:
+    On Windows dont' worry about the /or \ in , they work both.
+    On Linux depending on your distribution you might need to put inside quotes around the ofbizHome value, then don't forget to escape them
+    For instance on Ubuntu 6.06 LTS inside quotes are needed, but don't put them for Suze 10...
+
+    Note :
+    If you prefer on WASCE you may use the setven scvript to set your env value. Notably if you want to separate things and have more var to set
+    Then copy the 2 lines below in the setJavaOpts section (Windows) or somewhere in the setEnv script you will find in GERONIMO_HOME/bin (Linux)
+    This script does not exist in Geronimo but is anticipated and taken into account.
+    If you need it, you may concatenate pre-existing JAVA_OPTS, same for CLASSPATH. But it's not needed for OFBiz alone.
+=======================================================================================================================================================
+
+<#assign classpath = ""/>
+<#list classpathDirs as dir>
+    <#assign classpath = classpath + dir + pathSeparatorChar/>
+</#list>
+<#assign classpath = classpath?substring(0, classpath?length - 1)/>
+
+Windows
+-------
+set JAVA_OPTS=-Dofbiz.home="${ofbizHome}" -Xms256M -Xmx512M -XX:MaxPermSize=128M -Duser.language=en
+set CLASSPATH=${classpath}
+
+Linux
+-----
+Add this 2 lines after the
+    elif [ "$1" = "run" ]; then
+line
+  JAVA_OPTS="-Dofbiz.home="${ofbizHome}" -Xms256M -Xmx512M -XX:MaxPermSize=128M -Duser.language=en"
+  CLASSPATH="${classpath}"
+
+
+=======================================================================================================================================================
+    Change also this line of the geronimo script in the doneSetArgs section (Windows) or in the <<elif [ "$1" = "run" ]>> block (Linux)
+=======================================================================================================================================================
+Windows
+-------
+Replace the line
+    %_EXECJAVA% %JAVA_OPTS% %GERONIMO_OPTS% %JAVA_AGENT_OPTS% -Djava.ext.dirs="%GERONIMO_BASE%\lib\ext;%JRE_HOME%\lib\ext" -Djava.endorsed.dirs="%GERONIMO_BASE%\lib\endorsed;%JRE_HOME%\lib\endorsed" -Dorg.apache.geronimo.base.dir="%GERONIMO_BASE%" -Djava.io.tmpdir="%GERONIMO_TMPDIR%" -jar %_JARFILE% %_LONG_OPT% %CMD_LINE_ARGS%
+by
+    %_EXECJAVA% %JAVA_OPTS% %GERONIMO_OPTS% %JAVA_AGENT_OPTS% -Djava.ext.dirs="%GERONIMO_BASE%\lib\ext;%JRE_HOME%\lib\ext" -Djava.endorsed.dirs="%GERONIMO_BASE%\lib\endorsed;%JRE_HOME%\lib\endorsed" -Dorg.apache.geronimo.base.dir="%GERONIMO_BASE%" -Djava.io.tmpdir="%GERONIMO_TMPDIR%" -cp .;%_JARFILE%;%CLASSPATH% %_LONG_OPT% %CMD_LINE_ARGS% %MAINCLASS%
+
+Linux
+-----
+Replace the line
+    -jar "$GERONIMO_HOME"/bin/server.jar $LONG_OPT "$@"
+by
+    -classpath ".":"$GERONIMO_HOME"/bin/server.jar:"$CLASSPATH" org.apache.geronimo.cli.daemon.DaemonCLI $LONG_OPT "$@"
+
+
+=======================================================================================================================================================
+    If you want to use RMI (RMIDispatcher) you will need to put the following lines in the limited-containers.xml file (set the values as you want)
+        <property name="bound-host" value="127.0.0.1"/>
+        <property name="bound-port" value="1099"/>
+
+    You will need also to change the value of use-initial-context to false and to put the complete path for ssl-keystore.
+
+    Finally you will have to set a security manager using the option -Djava.security.manager and
+    pass a client policy to the application server using the -Djava.security.policy=client.policy parameter,
+    simply put it at the end of JAVA_OPTS above.
+    Indeed to load the RMIDispatcher under the application server it needs a RMI Security Manager.
+    For my test I used a very simple client.policy file with all permissions that I put in the bin directory of the application server.
+    Its content is :
+        grant{
+        permission java.security.AllPermission;
+        };
+
+    To work cleanly on Windows you will also have to add the option -DXorg.apache.geronimo.JarFileClassLoader=false
+    see https://issues.apache.org/jira/browse/GERONIMO-4037 for more.
+
+    Debug stuff : -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
+    You may got this issue when shutting down : ERROR: transport error 202: bind failed: Address already in use ["transport.c",L41]
+    But you can neglect and force stopping
+
+    *** Also beware, you can't have spaces in the path where the application server is installed ***
+    And last but not least you may appreciate http://cwiki.apache.org/confluence/display/OFBIZ/FAQ+-+Tips+-+Tricks+-+Cookbook+-+HowTo#FAQ-Tips-Tricks-Cookbook-HowTo-HowtouseRMIwithoutSSL
+=======================================================================================================================================================
+
+Derby
+-----
+If you are using the embedded Derby database you should consider this.
+OFBiz creates 2 folders for the Derby Database under the runtime directory: ofbiz and ofbizolap, these contain all the setup data for OFBiz.
+If you run Geronimo, under your Geronimo bin directory you will see the 2 same directories.
+But those will not contain any data as you are not running OFBiz with the necessary parameters (you are running Geronimo, not OFBiz).
+Simply replace the 2 directories: ofbiz & ofbizolap in your Geronimo bin directory by the 2 directories from your OFBiz runtime directory.
diff --git a/framework/appserver/templates/wasce2/application.xml b/framework/appserver/templates/wasce2/application.xml
new file mode 100644
index 0000000..fde643a
--- /dev/null
+++ b/framework/appserver/templates/wasce2/application.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<!-- This generates an application.xml file used in an exploded EAR structure (no WAR files).
+  The file is copied in the META-INF directory in this EAR structure ready to deploy using the inPlace deployer tool option
+  Eventually irrelevant generated modules and dependencies should be removed (but it should not hurt if not done)
+  The indentation is specifically done for the rendered file
+-->
+<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns="http://java.sun.com/xml/ns/javaee"
+  xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd"
+  id="Application_ID"
+  version="5">
+
+  <description>The Apache OFBiz Project  this is instance ${instanceNumber}</description>
+  <display-name>OFBiz instance ${instanceNumber}</display-name>
+
+  <#list webApps as webapp>
+    <#assign location = webapp.getLocation()?if_exists/>
+    <#assign origin = webapp.getLocation()?if_exists/>
+      <#if location.contains("/framework/") && (location.contains("/webtools/") || location.contains("/images/"))>
+        <#assign location = location.substring(location.lastIndexOf("framework"))/>
+      </#if>
+    <#if location.contains("/applications/")>
+        <#assign location = location.substring(location.lastIndexOf("applications"))/>
+      </#if>
+    <#if location.contains("/specialpurpose/")>
+        <#assign location = location.substring(location.lastIndexOf("specialpurpose"))/>
+      </#if>
+      <#if location.contains("/hot-deploy/")>
+        <#assign location = location.substring(location.lastIndexOf("hot-deploy"))/>
+      </#if>
+    <#if location != origin>
+  <module id="${webapp.getName()}${instanceNumber}">
+    <web>
+      <web-uri>${location}/</web-uri>
+      <context-root>${webapp.getContextRoot()}${instanceNumber}</context-root>
+    </web>
+  </module>
+    </#if>
+  </#list>
+</application>
diff --git a/framework/appserver/templates/wasce2/geronimo-application.xml b/framework/appserver/templates/wasce2/geronimo-application.xml
new file mode 100644
index 0000000..742d621
--- /dev/null
+++ b/framework/appserver/templates/wasce2/geronimo-application.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<!-- This generates a geronimo-application.xml file used in an exploded EAR structure (no WAR files).
+    The file is copied in the META-INF directory in this EAR structure ready to deploy using the inPlace deployer tool option
+    Eventually irrelevant generated modules and dependencies should be removed (but it should not hurt if not done)
+    The indentation is specifically done for the rendered file
+-->
+<application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-2.0"
+    xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2"
+    xmlns:security="http://geronimo.apache.org/xml/ns/security-1.2">
+    <dep:environment>
+        <dep:moduleId>
+            <dep:groupId>org.ofbiz</dep:groupId>
+            <dep:artifactId>ofbiz${instanceNumber}</dep:artifactId>
+            <dep:version>1.0</dep:version>
+            <dep:type>ear</dep:type>
+        </dep:moduleId>
+
+        <dep:dependencies>
+          <#list classpathJars as jar_version>
+            <#assign jar = jar_version.substring(0,jar_version.indexOf("#"))/>
+              <#assign version = jar_version.substring(jar_version.indexOf("#") + 1)/>
+            <dependency>
+                <dep:groupId>org.ofbiz</dep:groupId>
+                <dep:artifactId>${jar}</dep:artifactId>
+                <dep:version>${version}</dep:version>
+                <dep:type>jar</dep:type>
+            </dependency>
+          </#list>
+        </dep:dependencies>
+        <dep:hidden-classes/>
+        <dep:non-overridable-classes/>
+    </dep:environment>
+
+    <#list webApps as webapp>
+        <#assign location = webapp.getLocation()?if_exists/>
+        <#assign origin = webapp.getLocation()?if_exists/>
+        <#if location.contains("/framework/") && (location.contains("/webtools/") || location.contains("/images/"))>
+                <#assign location = location.substring(location.lastIndexOf("framework"))/>
+        </#if>
+        <#if location.contains("/applications/")>
+            <#assign location = location.substring(location.lastIndexOf("applications"))/>
+        </#if>
+        <#if location.contains("/specialpurpose/") && !location.contains("/pos/")>
+            <#assign location = location.substring(location.lastIndexOf("specialpurpose"))/>
+        </#if>
+        <#if location.contains("/hot-deploy/")>
+            <#assign location = location.substring(location.lastIndexOf("hot-deploy"))/>
+        </#if>
+        <#if location != origin>
+    <module>
+        <web>${location}/</web>
+        <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.2">
+            <context-root>${webapp.getContextRoot()}${instanceNumber}</context-root>
+        </web-app>
+    </module>
+        </#if>
+    </#list>
+
+</application>
diff --git a/framework/appserver/templates/wasce2/geronimo-web.xml b/framework/appserver/templates/wasce2/geronimo-web.xml
new file mode 100644
index 0000000..004cd69
--- /dev/null
+++ b/framework/appserver/templates/wasce2/geronimo-web.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<!-- This generates geronimo-web.xml files in each concerned webbapp, in an exploded EAR structure (no WAR files). -->
+<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0"
+    xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2"
+    xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.2"
+    xmlns:security="http://geronimo.apache.org/xml/ns/security-1.2">
+
+    <dep:environment>
+        <dep:moduleId>
+            <dep:groupId>org.ofbiz.${webApp.getName()}</dep:groupId>
+            <dep:artifactId>${webApp.getName()}</dep:artifactId>
+            <dep:version>1.0</dep:version>
+            <dep:type>war</dep:type>
+        </dep:moduleId>
+        <dep:dependencies/>
+        <dep:hidden-classes/>
+        <dep:non-overridable-classes/>
+    </dep:environment>
+
+    <context-root>${webApp.getContextRoot()}</context-root>
+
+</web-app>
diff --git a/framework/appserver/templates/weblogic81/README b/framework/appserver/templates/weblogic81/README
new file mode 100644
index 0000000..aa382db
--- /dev/null
+++ b/framework/appserver/templates/weblogic81/README
@@ -0,0 +1,19 @@
+
+These configuration templates are for Weblogic 8.1 SP2, which was the latest version at the time of writing.
+
+For ease of use these three files are meant to be used in the "examples" domain that comes with Weblogic.
+
+The main reason for this is that it is difficult to configure Weblogic security settings for a new domain and this way it is easy to get started fast.
+
+To use just put OFBiz somewhere on your system and once it is in place generate the Weblogic configuration files from the templates, as described in the ofbiz/framework/appservers/README file. Copy those files into the $WL_HOME/samples/domains/examples directory.
+
+Before running there are some things that come by default in OFBiz that conflict with Weblogic. These are things to do before running:
+
+1. Remove the jndi.properties file from ofbiz/base/config so that the Weblogic defaults will be used
+2. Comment out or re-configure the RMIDispatcher container in the limited-containers.xml file in ofbiz/base/config
+
+Now, just run the startOFBizServer.cmd or startOFBizServer.sh scripts that were generated above and copied into the examples domain directory.
+
+Enjoy!
+
+
diff --git a/framework/appserver/templates/weblogic81/config.xml b/framework/appserver/templates/weblogic81/config.xml
new file mode 100644
index 0000000..ed5d6fe
--- /dev/null
+++ b/framework/appserver/templates/weblogic81/config.xml
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<Domain ConfigurationVersion="8.1.2.0" Name="examples">
+    <Server COMEnabled="true" ConsoleInputEnabled="false"
+        JavaCompiler="javac" ListenAddress="" ListenPort="7001"
+        Name="examplesServer" ServerVersion="8.1.2.0" SocketReaderTimeoutMaxMillis="10">
+        <SSL Enabled="true" IdentityAndTrustLocations="KeyStores"
+            ListenPort="7002" Name="examplesServer"/>
+    </Server>
+
+    <Application Deployed="true" Name="mainWebApp"
+        Path="C:\bea\weblogic81\samples\server\examples\build" TwoPhase="true">
+        <WebAppComponent Name="mainWebApp" Targets="examplesServer" URI="mainWebApp"/>
+    </Application>
+    <Application Deployed="true" Name="examplesWebApp"
+        Path="C:\bea\weblogic81\samples\server\examples\build" TwoPhase="true">
+        <WebAppComponent Name="examplesWebApp" Targets="examplesServer" URI="examplesWebApp"/>
+    </Application>
+    <StartupClass ClassName="examples.cluster.rmi.HelloClusterImpl"
+        FailureIsFatal="false" Name="hello_cluster"/>
+    <StartupClass ClassName="examples.startup.StartBrowser"
+        FailureIsFatal="false" Name="StartBrowser"
+        Notes="On Windows, this class automatically starts a browser after the server has finished booting." Targets="examplesServer"/>
+    <StartupClass ClassName="examples.rmi.hello.HelloImpl"
+        FailureIsFatal="false" Name="hello"/>
+    <StartupClass ClassName="examples.rmi.multihello.HelloImpl"
+        FailureIsFatal="false" Name="multihello"/>
+    <StartupClass
+        Arguments="connectionFactory=weblogic.examples.jms.TopicConnectionFactory,topic=weblogic.examples.jms.exampleTopic"
+        ClassName="examples.jms.startup.ServerReceive"
+        FailureIsFatal="false" Name="serverReceive"/>
+    <StartupClass
+        Arguments="connectionFactory=weblogic.examples.jms.TopicConnectionFactory,topic=weblogic.examples.jms.exampleTopic"
+        ClassName="examples.jms.startup.PoolReceive"
+        FailureIsFatal="false" Name="poolReceive"/>
+    <JMSConnectionFactory
+        JNDIName="weblogic.examples.jms.QueueConnectionFactory"
+        Name="exampleQueue" Targets="examplesServer"/>
+    <JMSConnectionFactory
+        JNDIName="weblogic.examples.jms.TopicConnectionFactory"
+        Name="exampleTopic" Targets="examplesServer"/>
+    <JMSConnectionFactory JNDIName="jms.connection.traderFactory"
+        Name="exampleTrader" Targets="examplesServer"/>
+    <JMSJDBCStore ConnectionPool="demoPool" Name="exampleJDBCStore" PrefixName="examples"/>
+    <JMSServer Name="examplesJMSServer" Store="exampleJDBCStore" Targets="examplesServer">
+        <JMSQueue JNDIName="weblogic.examples.jms.exampleQueue" Name="exampleQueue"/>
+        <JMSQueue JNDIName="weblogic.examples.jms.exampleQueueReceive" Name="exampleQueueReceive"/>
+        <JMSQueue JNDIName="weblogic.examples.jms.exampleQueueSend" Name="exampleQueueSend"/>
+        <JMSTopic JNDIName="weblogic.examples.jms.exampleTopic" Name="exampleTopic"/>
+        <JMSTopic JNDIName="quotes" Name="quotes"/>
+    </JMSServer>
+    <JDBCConnectionPool CapacityIncrement="2"
+        DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="4"
+        LoginDelaySeconds="1" MaxCapacity="10" Name="oraclePool"
+        Password="{3DES}aioYCP/l27g=" Properties="user=SCOTT"
+        RefreshMinutes="10" ShrinkPeriodMinutes="15"
+        ShrinkingEnabled="true" TestConnectionsOnRelease="false"
+        TestConnectionsOnReserve="false" TestTableName="dual" URL="jdbc:oracle:thin:@server:port:sid"/>
+    <JDBCConnectionPool CapacityIncrement="1"
+        DriverName="com.pointbase.xa.xaDataSource" InitialCapacity="2"
+        MaxCapacity="10" Name="demoXAPool"
+        Password="{3DES}29v4cTle6wsdsjHHe3l0AA=="
+        Properties="user=examples;DatabaseName=jdbc:pointbase:server://localhost/demo"
+        RefreshMinutes="0" ShrinkPeriodMinutes="15"
+        ShrinkingEnabled="true" Targets="examplesServer"
+        TestConnectionsOnRelease="false"
+        TestConnectionsOnReserve="false" TestTableName="SYSTABLES" URL="jdbc:pointbase:server://localhost/demo"/>
+    <JDBCConnectionPool CapacityIncrement="1"
+        DriverName="com.pointbase.jdbc.jdbcUniversalDriver"
+        InitialCapacity="1" MaxCapacity="10" Name="demoPool"
+        Password="{3DES}29v4cTle6wsdsjHHe3l0AA=="
+        Properties="user=examples" RefreshMinutes="0"
+        ShrinkPeriodMinutes="15" ShrinkingEnabled="true"
+        Targets="examplesServer" TestConnectionsOnRelease="false"
+        TestConnectionsOnReserve="false" TestTableName="SYSTABLES" URL="jdbc:pointbase:server://localhost/demo"/>
+    <JDBCTxDataSource EnableTwoPhaseCommit="true"
+        JNDIName="examples-dataSource-oracleXAPool"
+        Name="examples-dataSource-oracleXAPool" PoolName="oraclePool"/>
+    <JDBCTxDataSource EnableTwoPhaseCommit="true"
+        JNDIName="examples-dataSource-demoPool"
+        Name="examples-dataSource-demoPool" PoolName="demoPool" Targets="examplesServer"/>
+    <JDBCTxDataSource EnableTwoPhaseCommit="false"
+        JNDIName="examples-dataSource-demoXAPool"
+        Name="examples-dataSource-demoXAPool" PoolName="demoXAPool" Targets="examplesServer"/>
+
+    <JTA AbandonTimeoutSeconds="86400"
+        BeforeCompletionIterationLimit="100" ForgetHeuristics="false"
+        MaxTransactions="10000" MaxUniqueNameStatistics="1000"
+        Name="examples" TimeoutSeconds="100"/>
+    <Security Name="examples"
+        PasswordPolicy="wl_default_password_policy"
+        Realm="wl_default_realm" RealmSetup="true"/>
+    <EmbeddedLDAP
+        Credential="{3DES}GRR8WNEewgLkiUuYq3U8O9D1CBZ+KHfTIsDc1KH8OUo=" Name="examples"/>
+    <SecurityConfiguration
+        Credential="{3DES}8awKNTzSHpKbfdq0pSsIIUi8zgNWEWZ2FPqhpZYybeuOt5mVd3zYkiHeVLIYINH8RroM0oiREkhtKX+YbjTsv5Wim4ytFOP2"
+        Name="examples" RealmBootStrapVersion="1"/>
+    <Realm FileRealm="wl_default_file_realm" Name="wl_default_realm"/>
+    <FileRealm Name="wl_default_file_realm"/>
+    <PasswordPolicy Name="wl_default_password_policy"/>
+
+    <Application Name="_appsdir_ejb20_basic_statelessSession_ear"
+        Path="C:\bea\weblogic81\samples\domains\examples\applications\ejb20_basic_statelessSession.ear"
+        StagedTargets="examplesServer" StagingMode="stage" TwoPhase="true">
+        <EJBComponent Name="ejb20_basic_statelessSession.jar"
+            Targets="examplesServer" URI="ejb20_basic_statelessSession.jar"/>
+    </Application>
+    <Application Name="_appsdir_ejb20_message_ear"
+        Path="C:\bea\weblogic81\samples\domains\examples\applications\ejb20_message.ear"
+        StagedTargets="examplesServer" StagingMode="stage" TwoPhase="true">
+        <EJBComponent Name="ejb20_message.jar" Targets="examplesServer" URI="ejb20_message.jar"/>
+    </Application>
+    <Application Name="_appsdir_ejb20_basic_statefulSession_ear"
+        Path="C:\bea\weblogic81\samples\domains\examples\applications\ejb20_basic_statefulSession.ear"
+        StagedTargets="examplesServer" StagingMode="stage" TwoPhase="true">
+        <EJBComponent Name="ejb20_basic_statefulSession.jar"
+            Targets="examplesServer" URI="ejb20_basic_statefulSession.jar"/>
+    </Application>
+    <Application Name="_appsdir_ejb20_basic_containerManaged_ear"
+        Path="C:\bea\weblogic81\samples\domains\examples\applications\ejb20_basic_containerManaged.ear"
+        StagedTargets="examplesServer" StagingMode="stage" TwoPhase="true">
+        <EJBComponent Name="ejb20_basic_containerManaged.jar"
+            Targets="examplesServer" URI="ejb20_basic_containerManaged.jar"/>
+    </Application>
+    <Application Name="_appsdir_webservices_trader_ear"
+        Path="C:\bea\weblogic81\samples\domains\examples\applications\webservices_trader.ear"
+        StagedTargets="examplesServer" StagingMode="stage" TwoPhase="true">
+        <WebServiceComponent Name="webservice" Targets="examplesServer" URI="trader_service.war"/>
+        <EJBComponent Name="trader.jar" Targets="examplesServer" URI="trader.jar"/>
+    </Application>
+    <Application Name="_appsdir_jta_ejb_jmsjdbc_jar"
+        Path="C:\bea\weblogic81\samples\domains\examples\applications"
+        StagedTargets="examplesServer" StagingMode="stage" TwoPhase="true">
+        <EJBComponent Name="jta_ejb_jmsjdbc" Targets="examplesServer" URI="jta_ejb_jmsjdbc.jar"/>
+    </Application>
+    <Application Name="_appsdir_ejb20_basic_beanManaged_ear"
+        Path="C:\bea\weblogic81\samples\domains\examples\applications\ejb20_basic_beanManaged.ear"
+        StagedTargets="examplesServer" StagingMode="stage" TwoPhase="true">
+        <EJBComponent Name="ejb20_basic_beanManaged.jar"
+            Targets="examplesServer" URI="ejb20_basic_beanManaged.jar"/>
+    </Application>
+    <Application Name="_appsdir_jms_messageformat_jar"
+        Path="C:\bea\weblogic81\samples\domains\examples\applications"
+        StagedTargets="examplesServer" StagingMode="stage" TwoPhase="true">
+        <EJBComponent Name="jms_messageformat" Targets="examplesServer" URI="jms_messageformat.jar"/>
+    </Application>
+
+    <!-- BEGIN OFBiz settings -->
+<#list webApps as webapp>
+    <#-- Remove last directory segment from path, Weblogic is expecting the parent directory -->
+    <#if webapp.getLocation().lastIndexOf("/") != -1>
+        <#assign lastSlash = webapp.getLocation().lastIndexOf("/")>
+    </#if>
+    <#if (webapp.getLocation().lastIndexOf("\\") > lastSlash)>
+        <#assign lastSlash = webapp.getLocation().lastIndexOf("\\")>
+    </#if>
+    <Application Deployed="true" Name="${webapp.getName()}" Path="${webapp.getLocation().substring(0,lastSlash)}" TwoPhase="true">
+        <WebAppComponent Name="${webapp.getName()}" Targets="examplesServer" URI="${webapp.getContextRoot()}"/>
+    </Application>
+</#list>
+
+    <JDBCConnectionPool CapacityIncrement="1"
+        DriverName="org.hsqldb.jdbcDriver"
+        InitialCapacity="2" MaxCapacity="20" Name="localhsql"
+        Password=""
+        Properties="user=sa" RefreshMinutes="0"
+        ShrinkPeriodMinutes="15" ShrinkingEnabled="true"
+        Targets="examplesServer" TestConnectionsOnRelease="false"
+        TestConnectionsOnReserve="false" URL="jdbc:hsqldb:data/ofbiz"/> <!--  TestTableName="SYSTABLES" -->
+    <JDBCTxDataSource EnableTwoPhaseCommit="true"
+        JNDIName="localhsqlDataSource"
+        Name="localhsqlDataSource" PoolName="localhsql"/>
+</Domain>
diff --git a/framework/appserver/templates/weblogic81/startOFBizServer.cmd b/framework/appserver/templates/weblogic81/startOFBizServer.cmd
new file mode 100644
index 0000000..d5dab25
--- /dev/null
+++ b/framework/appserver/templates/weblogic81/startOFBizServer.cmd
@@ -0,0 +1,126 @@
+@rem ################################################################

+@rem Licensed to the Apache Software Foundation (ASF) under one

+@rem or more contributor license agreements.  See the NOTICE file

+@rem distributed with this work for additional information

+@rem regarding copyright ownership.  The ASF licenses this file

+@rem to you under the Apache License, Version 2.0 (the

+@rem "License"); you may not use this file except in compliance

+@rem with the License.  You may obtain a copy of the License at

+@rem

+@rem http://www.apache.org/licenses/LICENSE-2.0

+@rem

+@rem Unless required by applicable law or agreed to in writing,

+@rem software distributed under the License is distributed on an

+@rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+@rem KIND, either express or implied.  See the License for the

+@rem specific language governing permissions and limitations

+@rem under the License.

+@rem ###################################################################

+@rem This script is used to start WebLogic Server.

+@rem

+@rem To create your own start script for your domain, you can initialize the

+@rem environment by calling %WL_HOME%/common/bin/commEnv.cmd.

+@rem

+@rem commEnv.cmd initializes following variables:

+@rem WL_HOME        - The root directory of your WebLogic installation.

+@rem JAVA_HOME      - Location of the version of Java used to start WebLogic

+@rem                  Server.

+@rem JAVA_VENDOR    - Vendor of the JVM (i.e. BEA, HP, IBM, Sun, etc.)

+@rem PATH           - JDK and WebLogic directories are added to system path.

+@rem WEBLOGIC_CLASSPATH

+@rem                - Classpath needed to start WebLogic Server.

+@rem JAVA_VM        - The java arg specifying the VM to run.  (i.e.

+@rem                  -server, -hotspot, etc.)

+@rem MEM_ARGS       - The variable to override the standard memory arguments

+@rem                  passed to java.

+@rem POINTBASE_HOME - Point Base home directory.

+@rem POINTBASE_CLASSPATH

+@rem                - Classpath needed to start PointBase.

+@rem Other variables used in this script include:

+@rem SERVER_NAME    - Name of the weblogic server.

+@rem ADMIN_URL      - If this variable is set, the server started will be a

+@rem                  managed server, and will look to the url specified (i.e.

+@rem                  http://localhost:7001) as the admin server.

+@rem WLS_USER       - cleartext user for server startup.

+@rem WLS_PW         - cleartext password for server startup.

+@rem PRODUCTION_MODE - Set to true for production mode servers, false for

+@rem                  development mode.

+@rem JAVA_OPTIONS   - Java command-line options for running the server. (These

+@rem                  will be tagged on to the end of the JAVA_VM and

+@rem                  MEM_ARGS)

+@rem

+@rem If you want to start the examples server using the JRockit JVM, edit

+@rem %WL_HOME%/common/bin/commEnv.cmd to specify the correct values for

+@rem JAVA_HOME and JAVA_VENDOR.

+@rem

+@rem For additional information, refer to the WebLogic Server Administration

+@rem Guide (http://e-docs.bea.com/wls/docs81/adminguide/startstop.html).

+@rem *************************************************************************

+

+echo off

+SETLOCAL

+

+set WL_HOME=C:\bea\weblogic81

+@rem Set Production Mode.  When this is set to true, the server starts up in

+@rem production mode.  When set to false, the server starts up in development

+@rem mode.  If it is not set, it will default to false.

+set PRODUCTION_MODE=

+

+@rem Set JAVA_VENDOR to java virtual machine you want to run on server side.

+set JAVA_VENDOR=Sun

+

+@rem Set JAVA_HOME to java virtual machine you want to run on server side.

+set JAVA_HOME=C:\bea\jdk141_05

+

+call "%WL_HOME%\common\bin\commEnv.cmd"

+

+@rem Set SERVER_NAME to the name of the server you wish to start up.

+set SERVER_NAME=examplesServer

+

+

+@rem Set JAVA_OPTIONS to the java flags you want to pass to the vm. i.e.:

+@rem set JAVA_OPTIONS=-Dweblogic.attribute=value -Djava.attribute=value

+set JAVA_OPTIONS=

+

+@rem Set MEM_ARGS to the memory args you want to pass to java.  For instance:

+@rem if "%JAVA_VENDOR%"=="BEA" set MEM_ARGS=-Xms32m -Xmx200m

+

+@rem *************************************************************************

+@rem PointBase and examples domain specific configuration

+set SAMPLES_HOME=C:\bea\weblogic81\samples

+set EXAMPLES_CONFIG=%SAMPLES_HOME%\domains\examples

+

+set EXAMPLES_HOME=%SAMPLES_HOME%\server\examples

+set EXAMPLES_BUILD=%EXAMPLES_HOME%\build

+

+set APPLICATIONS=%EXAMPLES_CONFIG%\applications

+set CLIENT_CLASSES=%EXAMPLES_BUILD%\clientclasses

+set SERVER_CLASSES=%EXAMPLES_BUILD%\serverclasses

+set COMMON_CLASSES=%EXAMPLES_BUILD%\common

+set EX_WEBAPP_CLASSES=%EXAMPLES_BUILD%\examplesWebApp\WEB-INF\classes

+

+@rem Add PointBase classes to the classpath, so we can start the examples

+@rem database.  Also add the examples directories specified above to the

+@rem classpath to be picked up by WebLogic Server.

+set CLASSPATH=C:\bea\weblogic81\server\lib\webservices.jar;%POINTBASE_CLASSPATH%;%CLIENT_CLASSES%;%SERVER_CLASSES%;%COMMON_CLASSES%;%CLIENT_CLASSES%\utils_common.jar

+

+@rem Start PointBase 4.4.

+start "PointBase" cmd /c ""%JAVA_HOME%\bin\java" com.pointbase.net.netServer /port:9092 /d:3 /pointbase.ini="pointbase.ini"" > "pointbase.log" 2>&1

+@rem *************************************************************************

+

+@rem Call WebLogic Server

+

+set CLASSPATH=%WEBLOGIC_CLASSPATH%;%CLASSPATH%

+

+@rem -=-=-=-=-=-=-=-=- Start OFBiz Classpath Here -=-=-=-=-=-=-=-=-

+<#list classpathDirs as dir>

+set CLASSPATH=%CLASSPATH%;${dir}

+</#list>

+<#list classpathJars as jar>

+set CLASSPATH=%CLASSPATH%;${jar}

+</#list>

+@rem -=-=-=-=-=-=-=-=- End OFBiz Classpath Here -=-=-=-=-=-=-=-=-

+

+"%JAVA_HOME%\bin\java" %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" -Dofbiz.home="${env.get("ofbiz.home")}" weblogic.Server

+

+ENDLOCAL

diff --git a/framework/appserver/templates/weblogic81/startOFBizServer.sh b/framework/appserver/templates/weblogic81/startOFBizServer.sh
new file mode 100755
index 0000000..8b5ff96
--- /dev/null
+++ b/framework/appserver/templates/weblogic81/startOFBizServer.sh
@@ -0,0 +1,167 @@
+#!/bin/sh
+#####################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ****************************************************************************
+# This script is used to start WebLogic Server.
+#
+# To create your own start script for your domain, you can initialize the
+# environment by calling $WL_HOME/common/bin/commEnv.sh. It sets following
+# variables:
+# WL_HOME        - The root directory of your WebLogic installation.
+# JAVA_HOME      - Location of the version of Java used to start WebLogic
+#                  Server.
+# JAVA_VENDOR    - Vendor of the JVM (i.e. BEA, HP, IBM, Sun, etc.)
+# PATH           - JDK and WebLogic directories are added to system path.
+# WEBLOGIC_CLASSPATH
+#                - Classpath needed to start WebLogic Server.
+# LD_LIBRARY_PATH, LIBPATH and SHLIB_PATH
+#                - Directories to locate native libraries.
+# JAVA_VM        - The java arg specifying the VM to run.  (i.e.
+#                  -server, -hotspot, etc.)
+# MEM_ARGS       - The variable to override the standard memory arguments
+#                  passed to java.
+# CLASSPATHSEP   - CLASSPATH deliminter.
+# PATHSEP        - Path deliminter.
+# POINTBASE_HOME - Point Base home directory.
+# POINTBASE_CLASSPATH
+#                - Classpath needed to start PointBase.
+#
+# Other variables used in this script include:
+# SERVER_NAME    - Name of the weblogic server.
+# ADMIN_URL      - If this variable is set, the server started will be a
+#                  managed server, and will look to the url specified (i.e.
+#                  http://localhost:7001) as the admin server.
+# WLS_USER       - cleartext user for server startup.
+# WLS_PW         - cleartext password for server startup.
+# PRODUCTION_MODE      - Set to true for production mode servers, false for
+#                  development mode.
+# JAVA_OPTIONS   - Java command-line options for running the server. (These
+#                  will be tagged on to the end of the JAVA_VM and MEM_ARGS)
+#
+# If you want to start the examples server using the JRockit JVM, edit
+# $WL_HOME/common/bin/commEnv.sh to specify the correct values for
+# JAVA_HOME and JAVA_VENDOR.
+#
+# For additional information, refer to the WebLogic Server Administration
+# Guide (http://e-docs.bea.com/wls/docs81/adminguide/startstop.html).
+# ****************************************************************************
+
+# set up WL_HOME, the root directory of your WebLogic installation
+WL_HOME="C:/bea/weblogic81"
+
+# set up common environment
+# Set Production Mode.  When this is set to true, the server starts up in
+# production mode.  When set to false, the server starts up in development
+# mode.  If it is not set, it will default to false.
+PRODUCTION_MODE=""
+
+# Set JAVA_VENDOR to java virtual machine you want to run on server side.
+JAVA_VENDOR="Sun"
+
+# Set JAVA_HOME to java virtual machine you want to run on server side.
+JAVA_HOME="C:/bea/jdk141_05"
+
+. "$WL_HOME/common/bin/commEnv.sh"
+
+# Set SERVER_NAME to the name of the server you wish to start up.
+SERVER_NAME=examplesServer
+
+# Set JAVA_VM to java virtual machine you want to run on server side.
+# JAVA_VM=""
+
+# Set JAVA_OPTIONS to the java flags you want to pass to the vm.  If there
+# are more than one, include quotes around them.  For instance:
+# JAVA_OPTIONS="-Dweblogic.attribute=value -Djava.attribute=value"
+JAVA_OPTIONS=""
+
+
+# ****************************************************************************
+# PointBase and examples domain specific configuration
+# Start PointBase 4.4.  PointBase will be killed when the server is shutdown.
+unset POINTBASE_PID
+
+
+SAMPLES_HOME="C:/bea/weblogic81/samples"
+EXAMPLES_CONFIG="$SAMPLES_HOME/domains/examples"
+
+EXAMPLES_HOME="$SAMPLES_HOME/server/examples"
+EXAMPLES_BUILD="$EXAMPLES_HOME/build"
+
+APPLICATIONS="$EXAMPLES_CONFIG/applications"
+CLIENT_CLASSES="$EXAMPLES_BUILD/clientclasses"
+SERVER_CLASSES="$EXAMPLES_BUILD/serverclasses"
+COMMON_CLASSES="$EXAMPLES_BUILD/common"
+EX_WEBAPP_CLASSES="$EXAMPLES_BUILD/examplesWebApp/WEB-INF/classes"
+
+<#noparse>
+CLASSPATH="${WL_HOME}/server/lib/webservices.jar${CLASSPATHSEP}${POINTBASE_CLASSPATH}${CLASSPATHSEP}${CLIENT_CLASSES}${CLASSPATHSEP}${SERVER_CLASSES}${CLASSPATHSEP}${COMMON_CLASSES}${CLASSPATHSEP}${CLIENT_CLASSES}/utils_common.jar"
+export CLASSPATH
+
+"$JAVA_HOME/bin/java" ${JAVA_OPTIONS} com.pointbase.net.netServer /port:9092 /d:3 /noconsole /pointbase.ini="pointbase.ini" > "pointbase.log" 2>&1 &
+POINTBASE_PID=${!}
+</#noparse>
+
+# trap SIGINT, this function is defined in commEnv.sh
+trapSIGINT
+
+echo
+echo "POINTBASE DATABASE HAS BEEN STARTED, IT'S PID IS $POINTBASE_PID!"
+echo
+#****************************************************************************
+
+
+# Reset number of open file descriptors in the current process
+# This function is defined in commEnv.sh
+resetFd
+
+# Start WebLogic server
+CLASSPATH="$WEBLOGIC_CLASSPATH$CLASSPATHSEP$CLASSPATH"
+
+# -=-=-=-=-=-=-=-=- Start OFBiz Classpath Here -=-=-=-=-=-=-=-=-
+<#list classpathDirs as dir>
+CLASSPATH="$CLASSPATH$CLASSPATHSEP${dir}"
+</#list>
+<#list classpathJars as jar>
+CLASSPATH="$CLASSPATH$CLASSPATHSEP${jar}"
+</#list>
+# -=-=-=-=-=-=-=-=- End OFBiz Classpath Here -=-=-=-=-=-=-=-=-
+
+echo CLASSPATH="$CLASSPATH"
+echo
+echo PATH="$PATH"
+echo
+echo "***************************************************"
+echo "*  To start WebLogic Server, use a username and   *"
+echo "*  password assigned to an admin-level user.  For *"
+echo "*  server administration, use the WebLogic Server *"
+echo "*  console at http://<hostname>:<port>/console    *"
+echo "***************************************************"
+
+
+"$JAVA_HOME/bin/java" $JAVA_VM $MEM_ARGS $JAVA_OPTIONS         \
+  -Dweblogic.Name=$SERVER_NAME                                 \
+  -Dweblogic.ProductionModeEnabled=$PRODUCTION_MODE            \
+  -Djava.security.policy="$WL_HOME/server/lib/weblogic.policy" \
+  -Dofbiz.home="${env.get("ofbiz.home")}"                      \
+   weblogic.Server
+
+
+if [ "$POINTBASE_PID" != "" ]; then
+  kill -9 $POINTBASE_PID
+  unset POINTBASE_PID
+fi
diff --git a/framework/images/webapp/images/fieldlookup.js b/framework/images/webapp/images/fieldlookup.js
index f81ae8b..9aeb73a 100644
--- a/framework/images/webapp/images/fieldlookup.js
+++ b/framework/images/webapp/images/fieldlookup.js
@@ -40,7 +40,156 @@
 	showErrorAlert(CommonErrorMessage2, str_message);
 }
 
-function lookup_popup1(view_name, form_name, viewWidth, viewheight) {
+/*******************************************************************************
+ * Lookup Context Sensitive Help for Webhelp 
+ ******************************************************************************/
+function lookup_help(serverroot, viewName, webapp, locale, viewWidth, viewHeight) {
+
+	var locale = "_" + locale.substring(0,2)	
+	var hasLocale = hasHelpForLocale(webapp, locale);
+	
+	if (hasLocale==false){
+		alert("Help is not available for this language. Opening Help in English");
+		locale = "_en"
+	    }	
+
+//	Check for available screens when all screens are not supported
+	if (webapp=="accounting"){
+	isAccounting = isAccountingHelpScreen(viewName);	
+	if (isAccounting==false){
+		alert("Help is not available for this screen. Opening Main Help Screen");
+		viewName="ACCOUNTING_main"
+	    }
+    }
+	
+	if (webapp=="projectmgr"){
+		isProjectmgr = isProjectmgrHelpScreen(viewName);	
+		if (isProjectmgr==false){
+			alert("Help is not available for this screen. Opening Main Help Screen");
+			viewName="projectmgr_main "
+	        }
+	}	
+	
+	if (webapp=="catalog"){
+		isCatalog = isCatalogHelpScreen(viewName);	
+		if (isCatalog==false){
+			alert("Help is not available for this screen. Opening Main Help Screen");
+			viewName="catalog_main"
+	        }	
+	}	
+	
+	var serverRoot=serverroot.slice(serverroot.lastIndexOf("//"),serverroot.lastIndexOf(":"));
+    var url = "http:" + serverRoot + ":8080/ofbizhelp/" + webapp + locale + "/content/" + viewName + ".html";
+    var windowName = "helpWindow";	
+    var resizable = "resizable=yes";
+    var menubar = "menubar=yes";
+    var toolbar = "toolbar=yes";	
+    var scrollbars = "scrollbars=yes"
+    window.open(url, windowName, 'resizable,menubar,toolbar,scrollbars,width=750,height=750,left=0,top=0');
+	  //event.preventDefault();
+	  //helpWindow.focus();	
+	
+}
+
+function isAccountingHelpScreen(viewName){
+	var accountingHelpScreens = [
+        "accounting_main",
+		"accounting_findInvoices",
+		"accounting_findPayments",
+		"accounting_FindPaymentGroup",
+		"accounting_FindGatewayResponses",
+		"accounting_FindPaymentGatewayConfig",
+		"accounting_FindBillingAccount",
+		"accounting_FinAccountMain",
+		"accounting_FindTaxAuthority",
+		"accounting_FindAgreement",
+		"accounting_ListFixedAssets",
+		"accounting_FindGlobalGlAccount",
+		"accounting_ListCompanies"
+		];
+	
+	var result=false;
+    jQuery.each(accountingHelpScreens, function() { 
+        if (viewName==this){    	    
+        	result=true;}     		
+    });
+    return result;
+}
+
+function isProjectmgrHelpScreen(viewName){
+	var projectmgrHelpScreens = [
+        "projectmgr_EditProject_main",
+		"projectmgr_EditSkillTypes",
+		"projectmgr_FindProject",
+		"projectmgr_FindResource",
+		"projectmgr_FindTask",
+		"projectmgr_FindTimeSheet",
+		"projectmgr_main",
+		"projectmgr_MyTasks",
+		"projectmgr_MyTimesheet",
+		"projectmgr_projectView",
+		"projectmgr_RequestList",
+		"projectmgr_EditProject"
+		];
+	
+	var result=false;
+    jQuery.each(projectmgrHelpScreens, function() { 
+        if (viewName==this){    	    
+        	result=true;}     		
+    });
+    return result;
+}
+
+function isCatalogHelpScreen(viewName){
+	var catalogHelpScreens = [
+        "catalog_main",
+		"catalog_FindCatalog",
+		"catalog_FindCategory",
+		"catalog_FindProduct",
+		"catalog_EditFeatureCategories",
+		"catalog_FindProductPromo",
+		"catalog_FindPriceRules",
+		"catalog_FindProductStore",
+		"catalog_ListParentProductStoreGroup",
+		"catalog_EditKeywordThesaurus",
+		"catalog_FindReviews",
+		"catalog_FindProductConfigItems",
+		"catalog_FindSubscription",
+		"catalog_ListShipmentMethodTypes",
+		"catalog_Imagemanagement"
+		];
+	
+	var result=false;
+    jQuery.each(catalogHelpScreens, function() { 
+        if (viewName==this){    	    
+        	result=true;}     		
+    });
+    return result;
+}
+
+function hasHelpForLocale(webapp, locale){	
+	var webappLocale = webapp + locale
+	var helpLocals = [
+        "accounting_en",
+	    "humanres_en",
+	    "projectmgr_en",
+	    "manufacturing_en",
+	    "manufacturing_nl",
+	    "manufacturing_de",
+	    "catalog_en"
+    ];
+	                     	
+    var result=false;
+	    jQuery.each(helpLocals, function() { 
+	        if (webappLocale==this){    	    
+	        result=true;}     		
+	        });
+    return result;
+}
+//End context sensitive help
+
+
+function lookup_popup1(view_name, form_name, viewWidth, viewheight) {	
 	var obj_lookupwindow = window.open(getViewNameWithSeparator(view_name) + 'formName=' + form_name + '&presentation=' + this.presentation
 			+ '&id=' + this.id, '_blank', 'width=' + viewWidth + ',height=' + viewheight + ',scrollbars=yes,status=no,resizable=yes,top='
 			+ my + ',left=' + mx + ',dependent=yes,alwaysRaised=yes');
@@ -684,7 +833,7 @@
  ******************************************************************************/
 var re_id = new RegExp('id=(\\d+)');
 var num_id = (re_id.exec(String(window.location)) ? new Number(RegExp.$1) : 0);
-var obj_caller = (window.opener && window.opener.lookups? window.opener.lookups[num_id]: null);
+var obj_caller = (window.opener ? window.opener.lookups[num_id] : null);
 if (obj_caller == null && window.opener != null) {
 	obj_caller = window.opener;
 } else if (obj_caller == null && window.opener == null) {
diff --git a/specialpurpose/birt/ofbiz-component.xml b/specialpurpose/birt/ofbiz-component.xml
index d9c00c0..4d7ac12 100644
--- a/specialpurpose/birt/ofbiz-component.xml
+++ b/specialpurpose/birt/ofbiz-component.xml
@@ -35,6 +35,7 @@
             location="webapp/accounting"
             base-permission="OFBTOOLS,ACCOUNTING"
             mount-point="/accounting"/>
+   <!-- use when reports need to be injected into applications Note: this will break context help for those applications.
     <webapp name="facility"
             title="Facility"
             description="FacilityComponentDescription"
diff --git a/specialpurpose/scrum/webapp/scrum/WEB-INF/controller.xml b/specialpurpose/scrum/webapp/scrum/WEB-INF/controller.xml
index fb08f41..9ed9545 100644
--- a/specialpurpose/scrum/webapp/scrum/WEB-INF/controller.xml
+++ b/specialpurpose/scrum/webapp/scrum/WEB-INF/controller.xml
@@ -133,6 +133,7 @@
     </request-map>
     <request-map uri="sprintBacklogListTarget">
         <security auth="true" https="true"/>
+        <event type=""/>
         <response name="success" type="view-last"></response>
     </request-map>
     <request-map uri="UpdateHours">
diff --git a/themes/bizznesstime/includes/header.ftl b/themes/bizznesstime/includes/header.ftl
index 83c0cda..ce1d414 100644
--- a/themes/bizznesstime/includes/header.ftl
+++ b/themes/bizznesstime/includes/header.ftl
@@ -143,12 +143,17 @@
               ${uiLabelMap.CommonWelcome}
             </#if>
             </span>
-            <span><a href="<@ofbizUrl>logout</@ofbizUrl>">${uiLabelMap.CommonLogout}</a></span>
-            
-            <#--if webSiteId?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists-->
-            <#if parameters.componentName?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists>
-              <#include "component://common/webcommon/includes/helplink.ftl" />
-              <span><a href="javascript:lookup_popup1('showHelp?helpTopic=${helpTopic}&amp;portalPageId=${parameters.portalPageId?if_exists}','help' ,500,500);">${uiLabelMap.CommonHelp}</a></span>
+            <span><a href="<@ofbizUrl>logout</@ofbizUrl>">${uiLabelMap.CommonLogout}</a></span>                        
+            <#if parameters.componentName?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists>                                    
+            <#if parameters._WEBAPP_NAME_!="accounting" && parameters._WEBAPP_NAME_!="humanres" && parameters._WEBAPP_NAME_!="projectmgr" && parameters._WEBAPP_NAME_!="manufacturing" && parameters._WEBAPP_NAME_!="catalog">
+              <span><a <#if pageAvail?has_content>class="alert"</#if> href="javascript:lookup_popup1('showHelp?helpTopic=${helpTopic}&amp;portalPageId=${parameters.portalPageId?if_exists}','help' ,500,500);">${uiLabelMap.CommonHelp}</a></span> 
+            <#else>
+              <#if parameters.portalPageId?has_content>
+                <span><a class="help-link <#if pageAvail?has_content>alert</#if>" href="javascript:lookup_help('${parameters._SERVER_ROOT_URL_}','${parameters._WEBAPP_NAME_}_${requestAttributes._CURRENT_VIEW_}_${parameters.portalPageId}','${parameters._WEBAPP_NAME_}' , '${locale}',250,250);">${uiLabelMap.CommonHelp}</a></span>
+              <#else>
+                <span><a class="help-link <#if pageAvail?has_content>alert</#if>" href="javascript:lookup_help('${parameters._SERVER_ROOT_URL_}','${parameters._WEBAPP_NAME_}_${requestAttributes._CURRENT_VIEW_}','${parameters._WEBAPP_NAME_}' , '${locale}',250,250);">${uiLabelMap.CommonHelp}</a></span>
+            </#if>
+            </#if>                        
            </#if>
            <#if layoutSettings.middleTopMessage1?has_content && layoutSettings.middleTopMessage1 != " ">
              <span id="last-system-msg">
diff --git a/themes/bluelight/includes/header.ftl b/themes/bluelight/includes/header.ftl
index 26f03f3..0dbb7ee 100644
--- a/themes/bluelight/includes/header.ftl
+++ b/themes/bluelight/includes/header.ftl
@@ -177,9 +177,16 @@
               <li><a href="<@ofbizUrl>${checkLoginUrl}</@ofbizUrl>">${uiLabelMap.CommonLogin}</a></li>
             </#if>
             <#--if webSiteId?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists-->
-            <#if parameters.componentName?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists>
-              <#include "component://common/webcommon/includes/helplink.ftl" />
-              <li><a class="help-link <#if pageAvail?has_content> alert</#if>" href="javascript:lookup_popup1('showHelp?helpTopic=${helpTopic}&amp;portalPageId=${parameters.portalPageId?if_exists}','help' ,500,500);" title="${uiLabelMap.CommonHelp}"></a></li>
+            <#if parameters.componentName?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists>                                        
+              <#if parameters._WEBAPP_NAME_!="accounting" && parameters._WEBAPP_NAME_!="humanres" && parameters._WEBAPP_NAME_!="projectmgr" && parameters._WEBAPP_NAME_!="manufacturing" && parameters._WEBAPP_NAME_!="catalog"> 
+              <li><a class="help-link <#if pageAvail?has_content> alert</#if>" href="javascript:lookup_popup1('showHelp?helpTopic=${helpTopic}&amp;portalPageId=${parameters.portalPageId?if_exists}','help' ,500,500);" title="${uiLabelMap.CommonHelp}"></a></li>        
+            <#else>              
+              <#if parameters.portalPageId?has_content>
+                <li><a class="help-link <#if pageAvail?has_content>alert</#if>" href="javascript:lookup_help('${parameters._SERVER_ROOT_URL_}','${parameters._WEBAPP_NAME_}_${requestAttributes._CURRENT_VIEW_}_${parameters.portalPageId}','${parameters._WEBAPP_NAME_}' , '${locale}',250,250);" title="${uiLabelMap.CommonHelp}"></a></li>
+            <#else>
+                <li><a class="help-link <#if pageAvail?has_content>alert</#if>" href="javascript:lookup_help('${parameters._SERVER_ROOT_URL_}','${parameters._WEBAPP_NAME_}_${requestAttributes._CURRENT_VIEW_}','${parameters._WEBAPP_NAME_}' , '${locale}',250,250);" title="${uiLabelMap.CommonHelp}"></a></li>
+            </#if>
+            </#if>
             </#if>
             <#if userLogin?exists>
               <#if (userPreferences.COMPACT_HEADER)?default("N") == "Y">
diff --git a/themes/droppingcrumbs/includes/header.ftl b/themes/droppingcrumbs/includes/header.ftl
index 95c35a6..23a424d 100644
--- a/themes/droppingcrumbs/includes/header.ftl
+++ b/themes/droppingcrumbs/includes/header.ftl
@@ -170,9 +170,16 @@
               <li><a href="<@ofbizUrl>${checkLoginUrl}</@ofbizUrl>">${uiLabelMap.CommonLogin}</a></li>
             </#if>
             <#--if webSiteId?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists-->
-            <#if parameters.componentName?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists>
-              <#include "component://common/webcommon/includes/helplink.ftl" />
-              <li><a class="help-link <#if pageAvail?has_content> alert</#if>" href="javascript:lookup_popup1('showHelp?helpTopic=${helpTopic}&amp;portalPageId=${parameters.portalPageId?if_exists}','help' ,500,500);" title="${uiLabelMap.CommonHelp}"></a></li>
+            <#if parameters.componentName?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists>                                  
+            <#if parameters._WEBAPP_NAME_!="accounting" && parameters._WEBAPP_NAME_!="humanres" && parameters._WEBAPP_NAME_!="projectmgr" && parameters._WEBAPP_NAME_!="manufacturing" && parameters._WEBAPP_NAME_!="catalog"> 
+              <li><a class="help-link <#if pageAvail?has_content> alert</#if>" href="javascript:lookup_popup1('showHelp?helpTopic=${helpTopic}&amp;portalPageId=${parameters.portalPageId?if_exists}','help' ,500,500);" title="${uiLabelMap.CommonHelp}"></a></li>        
+            <#else>              
+              <#if parameters.portalPageId?has_content>
+                <li><a class="help-link <#if pageAvail?has_content>alert</#if>" href="javascript:lookup_help('${parameters._SERVER_ROOT_URL_}','${parameters._WEBAPP_NAME_}_${requestAttributes._CURRENT_VIEW_}_${parameters.portalPageId}','${parameters._WEBAPP_NAME_}' , '${locale}',250,250);" title="${uiLabelMap.CommonHelp}"></a></li>
+              <#else>
+                <li><a class="help-link <#if pageAvail?has_content>alert</#if>" href="javascript:lookup_help('${parameters._SERVER_ROOT_URL_}','${parameters._WEBAPP_NAME_}_${requestAttributes._CURRENT_VIEW_}','${parameters._WEBAPP_NAME_}' , '${locale}',250,250);" title="${uiLabelMap.CommonHelp}"></a></li>
+            </#if>
+            </#if>
             </#if>
             <#if userLogin?exists>
               <#if (userPreferences.COMPACT_HEADER)?default("N") == "Y">
diff --git a/themes/flatgrey/includes/header.ftl b/themes/flatgrey/includes/header.ftl
index 8d18c6f..3e5016c 100644
--- a/themes/flatgrey/includes/header.ftl
+++ b/themes/flatgrey/includes/header.ftl
@@ -146,11 +146,17 @@
             <li><a href="<@ofbizUrl>logout</@ofbizUrl>">${uiLabelMap.CommonLogout}</a></li>
           <#else/>
             <li>${uiLabelMap.CommonWelcome}! <a href="<@ofbizUrl>${checkLoginUrl}</@ofbizUrl>">${uiLabelMap.CommonLogin}</a></li>
+          </#if>          
+          <#if parameters.componentName?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists>                        
+        <#if parameters._WEBAPP_NAME_!="accounting" && parameters._WEBAPP_NAME_!="humanres" && parameters._WEBAPP_NAME_!="projectmgr" && parameters._WEBAPP_NAME_!="manufacturing" && parameters._WEBAPP_NAME_!="catalog"> 
+          <li><a <#if pageAvail?has_content>class="alert"</#if> href="javascript:lookup_popup1('showHelp?helpTopic=${helpTopic}&amp;portalPageId=${parameters.portalPageId?if_exists}','help' ,500,500);">${uiLabelMap.CommonHelp}</a></li>        
+        <#else>
+          <#if parameters.portalPageId?has_content>
+            <li><a class="help-link <#if pageAvail?has_content>alert</#if>" href="javascript:lookup_help('${parameters._SERVER_ROOT_URL_}','${parameters._WEBAPP_NAME_}_${requestAttributes._CURRENT_VIEW_}_${parameters.portalPageId}','${parameters._WEBAPP_NAME_}' , '${locale}',250,250);">${uiLabelMap.CommonHelp}</a></li>
+          <#else>
+            <li><a class="help-link <#if pageAvail?has_content>alert</#if>" href="javascript:lookup_help('${parameters._SERVER_ROOT_URL_}','${parameters._WEBAPP_NAME_}_${requestAttributes._CURRENT_VIEW_}','${parameters._WEBAPP_NAME_}' , '${locale}',250,250);">${uiLabelMap.CommonHelp}</a></li>
           </#if>
-          <#---if webSiteId?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists-->
-          <#if parameters.componentName?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists>
-            <#include "component://common/webcommon/includes/helplink.ftl" />
-            <li><a <#if pageAvail?has_content>class="alert"</#if> href="javascript:lookup_popup1('showHelp?helpTopic=${helpTopic}&amp;portalPageId=${parameters.portalPageId?if_exists}','help' ,500,500);">${uiLabelMap.CommonHelp}</a></li>
+        </#if>
           </#if>
           </ul>
       </li>
diff --git a/themes/flatgrey/webapp/flatgrey/javascript-min.css b/themes/flatgrey/webapp/flatgrey/javascript-min.css
new file mode 100644
index 0000000..d342238
--- /dev/null
+++ b/themes/flatgrey/webapp/flatgrey/javascript-min.css
@@ -0,0 +1 @@
+#wait-spinner{z-index:50000;position:absolute}#wait-spinner-image{height:45px;width:45px;background-repeat:no-repeat;background-image:url(images/spinner.gif)}.wait-spinner div{padding-top:4px}div.autocomplete{position:absolute;width:auto!important;background-color:#f8f8f8;border:1px solid #999;margin:0;padding:0}div.autocomplete ul{list-style-type:none;margin:0;padding:0}div.autocomplete ul li.selected{background-color:#ffb}div.autocomplete ul li{list-style-type:none;display:block;float:none;margin:0;padding:2px;cursor:pointer}.indicator img{background:url(images/ajax-loader.gif) no-repeat 0 0;display:block;margin:3px 10px 0 24px;width:16px;height:16px;border:0}.screenlet-title-bar .indicator img{float:right;margin:0 3px;width:16px;height:16px;display:inline}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{zoom:1}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;zoom:1}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto;zoom:1}.ui-autocomplete{position:absolute;cursor:default}* html .ui-autocomplete{width:1px}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:1.4}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:0;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:0}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:0;background:0;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;z-index:100;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:0;border-bottom:0;border-right:0}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}span.ui-spinner{background:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:0}.ui-tooltip{padding:8px;position:absolute;z-index:9999;-o-box-shadow:0 0 5px #aaa;-moz-box-shadow:0 0 5px #aaa;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}* html .ui-tooltip{background-image:none}body .ui-tooltip{border-width:2px}.ui-widget{font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-size:1em}.ui-widget-content{border:1px solid #ccc;background:#fcfdfd url(images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #5d819d;background:#5d819d url(images/main-nav.gif) top left repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #c5dbec;background:#dfeffc url(images/ui-bg_glass_85_dfeffc_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#2e6e9e}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#2e6e9e;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #79b7e7;background:#d0e5f5 url(images/ui-bg_glass_75_d0e5f5_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#1d5987}.ui-state-hover a,.ui-state-hover a:hover{color:#1d5987;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #79b7e7;background:#f5f8f9 url(images/ui-bg_inset-hard_100_f5f8f9_1x100.png) 50% 50% repeat-x;font-weight:bold;color:#e17009}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#e17009;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fad42e;background:#fbec88 url(images/ui-bg_flat_55_fbec88_40x100.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_469bdd_256x240.png)}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_469bdd_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_d8e7f3_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_6da8d5_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_217bc0_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_f9bd01_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;-khtml-border-top-left-radius:5px;border-top-left-radius:5px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;-khtml-border-top-right-radius:5px;border-top-right-radius:5px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;-khtml-border-bottom-left-radius:5px;border-bottom-left-radius:5px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;-khtml-border-bottom-right-radius:5px;border-bottom-right-radius:5px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.view-calendar button{background:url(images/cal.gif) no-repeat!important;display:inline-block;border:0;vertical-align:middle;margin:2px 2px 2px 2px;height:18px;width:18px}.ui-timepicker-div .ui-widget-header{margin-bottom:8px}.ui-timepicker-div dl{text-align:left}.ui-timepicker-div dl dt{height:25px;margin-bottom:-25px}.ui-timepicker-div dl dd{margin:0 10px 10px 65px}.ui-timepicker-div td{font-size:90%}.ui-tpicker-grid-label{background:0;border:0;margin:0;padding:0}
\ No newline at end of file
diff --git a/themes/flatgrey/webapp/flatgrey/js/application-min.js b/themes/flatgrey/webapp/flatgrey/js/application-min.js
new file mode 100644
index 0000000..4f1f772
--- /dev/null
+++ b/themes/flatgrey/webapp/flatgrey/js/application-min.js
@@ -0,0 +1 @@
+var j=1;(function(a){a.fn.columns=function(b){var c={colNumber:2,direction:"vertical"};this.each(function(){var o=a(this);var h=a.extend(c,b);var g=a(this).children("li").size();var n=Math.ceil(g/h.colNumber);var e=a(this).attr("class");for(i=1;i<=h.colNumber;i++){if(i==1){a(this).addClass("listCol1").wrap('<div class="listContainer'+j+'"></div>')}else{if(a(this).is("ul")){a(this).parents(".listContainer"+j).append('<ul class="listCol'+i+'"></ul>')}else{a(this).parents(".listContainer"+j).append('<ol class="listCol'+i+'"></ol>')}}a(".listContainer"+j+" > ul,.listContainer"+j+" > ol").addClass(e)}var m=0;var f=1;var d=0;if(h.direction=="vertical"){a(this).children("li").each(function(){m=m+1;if(m>n*(h.colNumber-1)){a(this).parents(".listContainer"+j).find(".listCol"+h.colNumber).append(this)}else{if(m<=(n*f)){a(this).parents(".listContainer"+j).find(".listCol"+f).append(this)}else{a(this).parents(".listContainer"+j).find(".listCol"+(f+1)).append(this);f=f+1}}});a(".listContainer"+j).find("ol,ul").each(function(){if(a(this).children().size()==0){a(this).remove()}})}else{a(this).children("li").each(function(){d=d+1;if(d<=h.colNumber){a(this).parents(".listContainer"+j).find(".listCol"+d).append(this)}else{d=1;a(this).parents(".listContainer"+j).find(".listCol"+d).append(this)}})}a(".listContainer"+j).find("ol:last,ul:last").addClass("last");j=j+1})}})(jQuery);jQuery(document).ready(function(){FORMALIZE.go()});var FORMALIZE=(function(b,e,f,a){var h="placeholder" in f.createElement("input");var k="autofocus" in f.createElement("input");var g="webkitAppearance" in f.createElement("select").style;var d=!!(b.browser.msie&&parseInt(b.browser.version,10)===6);var c=!!(b.browser.msie&&parseInt(b.browser.version,10)===7);return{go:function(){for(var l in FORMALIZE.init){FORMALIZE.init[l]()}},init:{detect_webkit:function(){if(!g){return}b("html").addClass("is_webkit")},full_input_size:function(){if(!c||!b("textarea, input.input_full").length){return}b("textarea, input.input_full").wrap('<span class="input_full_wrap"></span>')},ie6_skin_inputs:function(){if(!d||!b("input, select, textarea").length){return}var l=/button|submit|reset/;var m=/date|datetime|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/;b("input").each(function(){var n=b(this);if(this.getAttribute("type").match(l)){n.addClass("ie6_button");if(this.disabled){n.addClass("ie6_button_disabled")}}else{if(this.getAttribute("type").match(m)){n.addClass("ie6_input");if(this.disabled){n.addClass("ie6_input_disabled")}}}});b("textarea, select").each(function(){if(this.disabled){b(this).addClass("ie6_input_disabled")}})},placeholder:function(){if(h||!b(":input[placeholder]").length){return}b(":input[placeholder]").each(function(){var m=b(this);var n=m.attr("placeholder");function l(){if(!m.val()||m.val()===n){m.val(n).addClass("placeholder_text")}}l();m.focus(function(){if(m.val()===n){m.val("").removeClass("placeholder_text")}}).blur(function(){l()});m.closest("form").submit(function(){if(m.val()===n){m.val("")}}).bind("reset",function(){setTimeout(l,50)})})},autofocus:function(){if(k||!b(":input[autofocus]").length){return}b(":input[autofocus]:visible:first").select()}}}})(jQuery,this,this.document);
\ No newline at end of file
diff --git a/themes/flatgrey/webapp/flatgrey/maincss-min.css b/themes/flatgrey/webapp/flatgrey/maincss-min.css
new file mode 100644
index 0000000..94f71a2
--- /dev/null
+++ b/themes/flatgrey/webapp/flatgrey/maincss-min.css
@@ -0,0 +1 @@
+html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{border:0;margin:0;outline:0;padding:0;font-size:100%;background:transparent;vertical-align:baseline}blockquote,body,div,dl,dt,dd,fieldset,form,h1,h2,h3,h4,h5,h6,img,input,li,ol,p,select,span,td,textarea,th,ul{border-style:none;margin:0;padding:0}a,address,body,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;text-decoration:none}body,caption,th{text-align:left}ol,ul{list-style:none}ol.numbers{list-style:decimal;padding-left:20px}ul.dots{list-style:circle;padding-left:20px}a,a:visited{color:#333;font-weight:bold}a:hover,a:active{text-decoration:underline}.disabled{color:#336;text-decoration:none}body,textarea,input,select{font-family:Verdana,Arial,Helvetica,sans-serif}html{background-image:url(images/tile.gif)}body{font-size:62.5%;position:relative;color:#000;min-width:780px;margin:0;width:expression(document.body.clientWidth < 782? "780px":"auto")}hr{background-color:#ccc;color:#ccc;border-bottom:#fafafa .1em solid;border-right:#fafafa .2em solid;border-left:#d9d9d9 .2em solid;border-top:#d9d9d9 .1em solid;margin:.5em 0 .5em 0}h1,.h1{font-size:1.6em;font-weight:bold}h2,.h2{font-size:1.3em;font-weight:bold}h3,.h3{font-size:1.1em;font-weight:bold}table{font-size:1em}table input{border:#999 solid .1em}textarea{background-color:#fff;border:#999 solid .1em;font-size:1.1em}th,th a{color:#000;font-weight:bold}.clear{clear:both;height:0;visibility:hidden}.no-clear .clear{clear:none}.alert{color:#f00}.content-messages p{margin:.5em 0 .5em 0}.hidden{height:0;visibility:hidden}.label{font-weight:bold;height:1.2em;padding-right:1.1em;text-align:right;white-space:nowrap;width:1%;vertical-align:middle}.required,input.required{background-color:#ffd}.tooltip{color:#557996;font-style:italic;margin:.4em}.visible{height:auto;visibility:visible}.align-float{float:right}.align-text{text-align:right}.align-top{vertical-align:top}.centered{text-align:center}.page-title{color:#557996;margin-bottom:.5em;font-size:1.6em;font-weight:bold}#masthead{background:#47637c url(images/masthead.gif) top left repeat-x;color:#ccc;font-size:1em;font-weight:normal;min-height:26px;height:auto;overflow:auto}#masthead ul li{float:left;padding:.5em .8em .5em 0}#masthead ul li a{color:#ccc;font-weight:normal}.last-system-msg{color:#fff;font-size:.9em;padding-left:10px}.preference-area{float:right!important}#masthead ul .logo-area{padding:.1em .8em}#masthead ul .org-logo-area{padding:.1em .8em}#masthead ul .org-logo-area img{width:auto;height:22px}#masthead ul a:focus{text-decoration:underline}#footer{background:#333;border-top:.1em inset #000;padding:.5em 0 .5em .5em}#footer a{color:#ccc;font-weight:normal}#footer ul{float:left;display:inline}#footer ul li{border-left:.1em solid #444;border-right:.1em solid #222;float:left;display:inline;color:#ccc;font-weight:normal;padding:.5em}#footer ul .first{border-left:none}#footer ul .last{border-right:0}#footer ul li a{color:#ccc;font-weight:normal}#footer p{clear:left;color:#ccc;font-weight:normal;padding:.5em}#footer a:focus{text-decoration:underline}#main-navigation{clear:both;background:#436783 url(images/main-nav.gif) top left repeat-x;color:#fff;font-size:1em;height:5.2em;overflow:auto;border-bottom:.2em solid #47637c;padding:.5em 0 .1em 0}#main-navigation ul li{float:left;display:inline;height:4.85em;padding:0 1em 0 .5em;border-left:.1em solid #5c809c;border-right:.1em solid #3e5a71}#main-navigation ul .disabled{color:#d4d0c8}#main-navigation ul .first{border-left:none}#main-navigation ul .last{border-right:0}#main-navigation ul a{color:#fff;display:block;padding:0 .6em 0 .6em;font-size:.9em;font-weight:normal;text-transform:uppercase}#main-navigation ul a:hover,#main-navigation ul .selected{color:#f9924b;text-decoration:none}#main-navigation ul a:focus{text-decoration:underline}#app-navigation{background:url(images/gray-texture.jpg) top left;border-top:.1em solid #3e5a71;border-bottom:.1em solid #fff;height:1%;margin:0;padding:.5em}#app-navigation h1,#app-navigation h2,#app-navigation h3{color:#959595;margin:.4em 0 .4em 0;text-transform:uppercase;text-shadow:1px 1px 0 #fff}#app-navigation ul{display:inline}#app-navigation ul li ul li{background-color:#fff;border-top:.1em solid #ccc;border-right:.1em solid #ddd;border-bottom:.1em solid #ddd;border-left:.1em solid #ccc;padding:.5em;float:left;display:inline;margin:.1em .3em .1em 0}#app-navigation ul .disabled{color:#d4d0c8}#app-navigation ul a{color:#444;display:block;font-weight:normal;padding:.1em .3em .1em .3em}#app-navigation ul .selected,#app-navigation ul .selected{background-color:#f5f5f5;border:.1em solid;border-color:#aaa #f9f9f9 #f9f9f9 #aaa;color:#fff}#app-navigation ul .selected a{color:#111;padding:.1em .3em 0 .3em}#app-navigation ul a:hover{text-decoration:none;color:#111}#app-navigation ul a:focus{text-decoration:underline}.screenlet{background-color:#fff;border-right:.1em solid #ccc;border-bottom:.2em solid #ccc;border-left:.1em solid #ccc;height:auto!important;height:1%;margin-bottom:1em;overflow:auto}.screenlet-body{background-color:#fff;height:auto!important;height:1%;padding:.4em}.screenlet-body div{margin:.8em .1em}.lists.screenlet{margin-left:25%;margin-right:25%;margin-top:1em}.lists.screenlet .basic-table tr td{text-align:center}.lists.screenlet .basic-table tr td a{display:block}.no-padding{padding:0;border:0}.no-padding .h1,.no-padding .h2,.no-padding .h3,.no-paddingr h1,.no-padding h2,.no-padding h3{padding:.7em}.screenlet-title-bar{background:url(images/bhead.gif) top left repeat-x;color:#fff;height:1%;min-height:1.5em;padding:.8em .2em}.screenlet-title-bar .h1,.screenlet-title-bar .h2,.screenlet-title-bar .h3,.screenlet-title-bar h1,.screenlet-title-bar h2,.screenlet-title-bar h3{background:0;color:#333;text-shadow:1px 1px 0 #fff}.screenlet-title-bar ul{display:inline}.screenlet-title-bar ul li{background:0;border-left:.1em solid #dedede;color:#222;float:right;font-size:1em;font-weight:bold;padding:.1em .5em .2em .5em}.screenlet-title-bar ul .h1,.screenlet-title-bar ul .h2,.screenlet-title-bar ul .h3{border-left:none;float:left}.screenlet-title-bar h1,.screenlet-title-bar .h1{font-size:1.6em}.screenlet-title-bar h2,.screenlet-title-bar .h2{font-size:1.3em}.screenlet-title-bar h3,.screenlet-title-bar .h3{font-size:1.1em}.screenlet-title-bar .h3 a{color:#222;display:inline}.screenlet-title-bar ul a{color:#222;display:block}.screenlet-title-bar ul a:visited{color:#222}.screenlet-title-bar ul a:hover{color:#fff;text-decoration:none}.screenlet-title-bar ul .disabled{color:#ccc}.screenlet-title-bar ul .collapsed,.screenlet-title-bar ul .collapsed:hover{background:url(/images/expand.gif) no-repeat center center;min-height:1.1em;min-width:1.1em}.screenlet-title-bar ul .expanded,.screenlet-title-bar ul .expanded:hover{background:url(/images/collapse.gif) no-repeat center center;min-height:1.1em;min-width:1.1em}.screenlet-title-bar ul .collapsed a,.screenlet-title-bar ul .expanded a{cursor:default}.login-screenlet{min-width:25em;width:25%}.login-screenlet .screenlet-title-bar{text-align:center}.basic-nav{padding-left:1em}.basic-nav ul a{color:#333;font-size:1.1em}.basic-nav ul .selected,.basic-nav ul .selected a{color:#00f}.basic-nav ul a:hover{color:#00f}.basic-nav ul .disabled,.basic-nav ul .disabled a{color:#d4d0c8}.button-bar{margin-bottom:1.0em;width:100%}.button-bar ul{display:inline}.button-bar ul li ul li{float:left;font-weight:bold}.button-bar ul .opposed{float:right}.button-bar ul a{display:block}.button-bar .opposed,.button-bar .opposed li,.button-bar ul .opposed{float:right}.button-style-1{display:table}.button-style-1 ul li ul li{margin-right:.5em;margin-bottom:.5em}.button-style-2{display:table}.button-style-2 ul li ul li{margin-right:.5em;margin-bottom:.5em}.button-style-2{display:table}.tool-bar{padding:.2em}.tool-bar ul li{padding:.1em}.tab-bar{display:table;margin:.5em .5em 0 .5em}.tab-bar ul li ul li{margin-right:.5em;margin-bottom:.5em;background:#fff;border-top:.1em solid #ccc;border-right:.2em solid #ccc;border-bottom:.2em solid #ccc;border-left:.1em solid #ccc;padding:.5em;white-space:nowrap}.tab-bar ul a,.tab-bar ul a:visited{color:#666}.tab-bar ul a:hover,.tab-bar ul .selected,.tab-bar ul .selected a,.tab-bar ul .selected a:hover{color:#333;text-decoration:none}.tab-bar ul a:focus{text-decoration:underline}.tab-bar ul .disabled{color:#ccc}.basic-table{background-color:#fff;color:#000;margin-bottom:1em;width:100%}form table,form .basic-table,.screenlet-body .basic-table{background:transparent;margin-bottom:0}.basic-table tr td{padding:.8em .1em;vertical-align:middle}.basic-table tr .align-bottom{vertical-align:bottom}.basic-table tr .align-top{vertical-align:top}.basic-table tr .label,.basic-table tr .group-label{font-weight:bold;text-align:right;padding-right:1.5em;white-space:nowrap;width:1%}.basic-table tr .group-label{font-size:1.2em;padding:2em 1.5em 0 0}.basic-table tr th,.basic-table .header-row{font-weight:bold;text-align:left}.basic-table .header-row td{border-bottom:.1em solid #000}.basic-table .header-row td a{color:#000}.basic-table .alternate-row{background-color:#eee}.basic-table .selected{background:#fffccf}.basic-table .alternate-rowSelected{background:#fff55f}.basic-table .Validate{background:#a0d5f7}.basic-table .alternate-rowValidate{background:#72a8f2}.basic-table .Warn{background:#f55c5c}.basic-table .alternate-rowWarn{background:#fc7455}.basic-table tr .button-col{vertical-align:top;padding:.3em}.basic-table tr .button-col a,.basic-table tr .button-col button,.basic-table tr .button-col input[type="reset"],.basic-table tr .button-col input[type="submit"],.basic-table tr .button-col input[type="button"]{-webkit-appearance:none;-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em;background:#ddd url(images/button.png) repeat-x;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(1,#ddd));background:-moz-linear-gradient(top center,#fff 0,#ddd 100%);border:.1em solid;border-color:#ddd #bbb #999;cursor:pointer;color:#333;display:inline-block;font-size:.9em;font-weight:bold;outline:0;overflow:visible;padding:.1em .5em .2em .5em;text-decoration:none;text-shadow:#fff 0 1px 1px;width:auto;*padding-top:.2em;*padding-bottom:0}.basic-table .collapsed{visibility:collapse}.basic-table .header-row-2 th,.basic-table .header-row-2 td{background-color:#999;border-bottom:0;border-left:.1em solid #aaa;border-right:.1em solid #888;color:#fff;font-weight:bold}.basic-table .header-row-2 th .sort-order-asc,.basic-table .header-row-2 td .sort-order-asc{background:url(/images/arrow-gr-up.png) no-repeat right;padding-right:20px}.basic-table .header-row-2 th .sort-order-desc,.basic-table .header-row-2 td .sort-order-desc{background:url(/images/arrow-gr-dw.png) no-repeat right;padding-right:20px}.basic-table .header-row-2 th .sort-order,.basic-table .header-row-2 td .sort-order{background:url(/images/arrow-gr.png) no-repeat right;padding-left:.5em;padding-right:20px;color:#fff}.hover-bar tr:hover{background-color:#ccc;cursor:default}.hover-bar .header-row-1:hover,.hover-bar tr th:hover{background-color:#fff;color:#000}.dark-grid{border-right:.1em solid #000;border-top:.1em solid #000}.dark-grid td,.dark-grid .header-row-2 th,.dark-grid .header-row-2 td{border-bottom:.1em solid #000;border-left:.1em solid #000}.light-grid{border-right:.1em solid #ccc;border-top:.1em solid #ccc}.light-grid td,.light-grid .header-row td{border-bottom:.1em solid #ccc;border-left:.1em solid #ccc}.calendar{border-right:.1em solid #ccc}.calendar tr td{border-bottom:.1em solid #ccc;border-left:.1em solid #ccc;vertical-align:top;padding:.5em}.calendar .header-row td{background-color:#47637c;border-bottom:.1em solid #ccc;border-left:.1em solid #ccc;color:#fff;height:auto;text-align:center}.calendar tr td .add-new{float:right}.calendar tr td .h1{color:#333;float:left}.calendar .current-period{background-color:#ffc}.calendar .active-period{background-color:#eee}.basic-tree ul{padding-left:1em}.basic-tree li{padding-left:1em;white-space:nowrap}.basic-tree li .expanded{background:url(/images/collapse.gif) no-repeat left center;padding-right:1em}.basic-tree li .collapsed{background:url(/images/expand.gif) no-repeat left center;padding-right:1em}.basic-tree li .leafnode{background:url(/images/expand-collapse-placeholder.gif) no-repeat left center;padding-right:1em}.basic-tree li .treeitem{border-style:none;color:#333;font-size:1em}.basic-tree li a:hover{color:#00f}.basic-form{margin-bottom:1em}.basic-form table{width:100%}.basic-form table .header-row:hover{color:#000}.basic-form table tr td{padding:.1em}.basic-form table tr .label,.basic-form table tr .group-label{font-weight:bold;text-align:right;padding-right:1.5em;width:1%}.basic-form table tr .group-label{font-size:1.2em;padding:2em 1.5em 0 0}.basic-form table tr th,.basic-form table .header-row{font-weight:bold;text-align:left}.basic-form table .header-row:hover,.basic-form table tr th:hover{color:#000}.basic-form table .header-row td{border-bottom:.1em solid #999}.basic-form table tr td .disabled{color:#336;text-decoration:none}.form-widget table tr .label,.form-widget-table tr .label{width:20%}.form-widget table,.form-widget-table{width:auto}.form-widget-table{margin-bottom:1em}.nav-pager{background-color:#333;color:#fff;font-weight:bold;line-height:3.5em;height:3.5em;margin:.5em 0 .5em 0}.nav-pager ul{display:inline}.nav-pager ul li{border-right:solid #222 .1em;border-left:solid #444 .1em;float:left;vertical-align:center}.nav-pager ul li a{display:block}.nav-pager ul a{color:#fff;padding:0 1em 0 1em;text-decoration:none}.nav-pager ul a:hover{background-color:#999}.nav-pager ul .nav-pagesize,.nav-pager ul .nav-page-select,.nav-pager ul .nav-displaying{padding:0 1em 0 1em}.nav-pager ul .nav-first-disabled,.nav-pager ul .nav-previous-disabled,.nav-pager ul .nav-next-disabled,.nav-pager ul .nav-last-disabled{color:#d4d0c8;padding:0 1em 0 1em}.nav-pager ul .nav-displaying{border-right:0}.field-lookup a{background:url(/images/fieldlookup.gif) no-repeat 0 0;display:inline-block;vertical-align:top;margin-top:.3em;width:16px;height:16px}.fieldgroup-title-bar{border-top:.1em solid #dadada;font-size:1em;font-weight:bold;padding:.1em .5em .2em .5em}.fieldgroup-title-bar ul .collapsed,.fieldgroup-title-bar ul .collapsed:hover{background:url(/images/expand.gif) no-repeat left center;min-height:1.1em;min-width:1.1em}.fieldgroup-title-bar ul .expanded,.fieldgroup-title-bar ul .expanded:hover{background:url(/images/collapse.gif) no-repeat left center;min-height:1.1em;min-width:1.1em}.fieldgroup-title-bar a{cursor:pointer;text-decoration:none;padding-left:10px;color:#000}.portlet-config{background-color:#d4d0c8;border:.2em solid #d4d0c8;margin-bottom:.5em}.portlet-config-title-bar .title{color:#555;font-size:1.2em;float:left}.portlet-config-title-bar ul{display:inline}.portlet-config-title-bar ul li{float:right;font-size:1em;font-weight:bold;padding:.1em .5em .2em .5em}.portlet-config-title-bar ul li.move-up{background:url(/images/arrow-single-up-green.png) no-repeat center center}.portlet-config-title-bar ul li.move-down{background:url(/images/arrow-single-down-green.png) no-repeat center center}.portlet-config-title-bar ul li.move-left{background:url(/images/arrow-single-left-green.png) no-repeat center center}.portlet-config-title-bar ul li.move-right{background:url(/images/arrow-single-right-green.png) no-repeat center center}.portlet-config-title-bar ul li.move-top{background:url(/images/arrow-end-up-green.png) no-repeat center center}.portlet-config-title-bar ul li.move-bottom{background:url(/images/arrow-end-down-green.png) no-repeat center center}.portlet-config-title-bar ul li.remove{background:url(/images/mini-trash.png) no-repeat center center}.portlet-config-title-bar ul li.edit{background:url(/images/mini-edit.png) no-repeat center center}#manage-portal-toolbar{background-color:#d4d0c8;margin-bottom:.5em}#manage-portal-toolbar ul li{float:left;padding:.1em .5em .2em .5em}#manage-portal-toolbar #config-on-off,#manage-portal-toolbar #manage-portal-page,#manage-portal-toolbar #add-column{float:right}#manage-portal-toolbar #portal-page-name{font-size:1.5em;font-weight:bold}.manage-portal-column-toolbar #add-portlet,.manage-portal-column-toolbar #delete-column,.manage-portal-column-toolbar #column-width{float:right}.quickaddall{float:right;padding-bottom:1em;padding-top:1em}.quickaddtable{display:inline-block;clear:both}.quickaddtable span{display:inline;float:left;border-right:.1em solid #999;border-top:.1em solid #999;margin:0;padding:.3em}.quickaddtable p{clear:left;height:100%!important;height:1em}.quickaddtable span.pid{width:10%}.quickaddtable span.name{width:50%;text-align:left}.quickaddtable span.listPrice{width:10%}.quickaddtable span.totalPrice{width:10%}.quickaddtable span.qty{width:10%}.input_tiny{width:50px}.input_small{width:100px}.input_medium{width:150px}.input_large{width:200px}.input_xlarge{width:250px}.input_xxlarge{width:300px}.input_full{width:100%}.input_full_wrap{display:block;padding-right:8px}::-moz-focus-inner{border:0}input[type="search"]::-webkit-search-decoration{display:none}input,button,select,textarea{margin:0;vertical-align:middle}a.buttontext,a.buttontextbig,.smallSubmit,.smallSubmit:hover,.mediumSubmit,.largeSubmit,.loginButton,.button-style-1 a,.button-style-1 ul a,.button-style-2 ul a,.button-style-2 a,.button,button,input[type="reset"],input[type="submit"],input[type="button"]{-webkit-appearance:none;-moz-border-radius:1.1em;-webkit-border-radius:1.1em;border-radius:1.1em;background:#ddd url(images/button.png) repeat-x;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(1,#ddd));background:-moz-linear-gradient(top center,#fff 0,#ddd 100%);border:.1em solid;border-color:#ddd #bbb #999;cursor:pointer;color:#333;display:inline-block;font-size:1em;font-weight:bold;outline:0;overflow:visible;padding:.4em 1em .4em;text-decoration:none;text-shadow:#fff 0 1px 1px;width:auto;*padding-top:.2em;*padding-bottom:0}button{*padding-top:.1em;*padding-bottom:.1em}a.disabled,button[disabled],input[type="reset"][disabled],input[type="submit"][disabled],input[type="button"][disabled]{color:#888;border-color:#ddd #ddd #ccc}textarea,select,input[type="date"],input[type="datetime"],input[type="datetime-local"],input[type="email"],input[type="month"],input[type="number"],input[type="password"],input[type="search"],input[type="tel"],input[type="text"],input[type="time"],input[type="url"],input[type="week"]{-webkit-appearance:none;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:.1em solid;border-color:#848484 #c1c1c1 #e1e1e1;color:#000;outline:0;padding:.2em .3em;height:1.8em;*padding-top:.2em;*padding-bottom:.1em;*height:auto}input.placeholder_text,textarea.placeholder_text{color:#888}::-webkit-input-placeholder{color:#888}textarea[disabled],select[disabled],input[type="date"][disabled],input[type="datetime"][disabled],input[type="datetime-local"][disabled],input[type="email"][disabled],input[type="month"][disabled],input[type="number"][disabled],input[type="password"][disabled],input[type="search"][disabled],input[type="tel"][disabled],input[type="text"][disabled],input[type="time"][disabled],input[type="url"][disabled],input[type="week"][disabled]{background-color:#eee;color:#888}.button-style-1 a:focus,.button-style-1 ul a:focus,.button-style-2 ul a:focus,.button-style-2 a:focus,.smallSubmit:focus,button:focus,button:active,input:focus,input:active,select:focus,select:active,textarea:focus,textarea:active{-moz-box-shadow:#5c809c 0 0 5px;-webkit-box-shadow:#5c809c 0 0 5px;box-shadow:#5c809c 0 0 5px;z-index:1}.is_webkit select{background-image:url(images/select_arrow.gif);background-repeat:no-repeat;background-position:right center;padding-right:20px}textarea,select[multiple]{height:auto}select[multiple],.is_webkit select[multiple]{background-image:none;padding:0}textarea{overflow:auto;resize:vertical;width:100%}optgroup{color:#000;font-style:normal;font-weight:normal}.ie6_button,* html button{background:#ddd url(images/button.png) repeat-x;border:.1em solid;border-color:#ddd #bbb #999;cursor:pointer;color:#333;font:bold 1.2em Arial,sans-serif;padding:.2em 1em 0;overflow:visible;width:auto}* html button{padding-top:.1em;padding-bottom:.1em}.ie6_input,* html textarea,* html select{background:#fff;border:.1em solid;border-color:#848484 #c1c1c1 #e1e1e1;color:#000;padding:.2em .3em .1em;font-size:1.3em;font-family:Arial,sans-serif;vertical-align:top}* html select{margin-top:.1em}.placeholder_text,.ie6_input_disabled,.ie6_button_disabled{color:#888}.ie6_input_disabled{background:#eee}.browsecategorylist{margin-left:1em}.browsecategorytext{color:#333;font-weight:bold;padding-left:10px;background:url(/images/bg_bullet_full_2.gif) no-repeat 0 .5em}A.browsecategorybutton{color:#333}.browsecategorybuttondisabled{color:#333;font-weight:bold}.eventMessage,.errorMessage{background-color:#ffe;border:solid #000 .1em;font-size:1.1em;font-weight:bold;margin:1em;padding:1em}.eventMessage{color:#333}.errorMessage{color:#f00}.basePrice{color:#000}.normalPrice{color:#008000}.salePrice{color:#f00}.product-prevnext{text-align:right}.productsummary-container{border-top:#999 solid .1em;margin-top:.5em;margin-bottom:.5em}.productsummary{border-bottom:#999 solid .1em;min-height:6em;overflow:visible;padding:.5em;position:relative}.productsummary .smallimage{float:left;margin:0 .5em .5em 0}.productsummary .smallimage img{border:#CCC solid .1em;height:5em}.productsummary .productbuy{float:right;margin:.5em;text-align:right;width:13em}.productsummary .productinfo{text-align:left}#productdetail #long-description{border-top:#999 solid .1em;margin-top:1em;padding-top:.5em}#productdetail #reviews{border-top:#999 solid .1em;margin-top:1em;padding-top:.5em}#productdetail #associated-products{border-top:#999 solid .1em;margin-top:1em;padding-top:.5em}.treeWrapper{background-color:#fff;border-top:.1em solid #000;border-left:.1em solid #000;color:#000;font-size:1.6em;font-weight:normal;margin-left:1.2em;margin-top:.2em;text-decoration:none}.DEBUG{color:#808080}.WARN{color:#00f;font-weight:bold}.INFO{color:#008000}.ERROR{border:.2em solid #f00;color:#f00;font-weight:bold}#column-container{margin:auto;padding:1em;position:relative}#column-container h1,#column-container .h1,#column-container h2,#column-container .h2{margin-bottom:.5em}#column-container h1,#column-container .h1{color:#557996}#column-container .left{float:left;width:22em;margin-right:1em}#column-container .left-larger{float:left;width:25em;margin-right:1em}.lefthalf{float:left;height:1%;left:0;margin:0 1% 1% 0;width:49%}.righthalf{float:right;height:1%;margin:0 0 1% 1%;right:0;width:49%}#column-container .right{float:right;margin-left:1em;width:22em}#column-container .leftonly{margin-left:23em;width:auto}#column-container .leftonly-larger{margin-left:26em;width:auto}#column-container .rightonly{margin-right:23em;width:auto}#column-container .center{margin-left:23em;margin-right:23em;width:auto}#column-container .nocolumns{width:auto}.apptitle{background-color:#333;color:#fff;display:block;font-size:1.3em;font-weight:bold;line-height:2em;width:100%}.boxhead{color:#fff;font-size:1.1em;font-weight:bold}.boxlink{float:right}DIV.boxtop{background-color:#333;border-color:#999;border-style:solid;margin:0 auto 0 auto;padding:.1em .4em .1em .4em;text-align:center}DIV.boxhead-left{border:0;color:#fff;float:left;font-size:1.1em;font-weight:bold;width:auto}DIV.boxhead-fill{border:0;color:#fff;font-size:1.1em;font-weight:bold;text-align:center;width:0}DIV.boxhead-right{border:0;color:#fff;float:right;font-size:1.1em;font-weight:bold;width:auto}A.boxheadbutton{color:#fff;font-size:1.1em}A.boxheadbutton:hover{color:#f00;text-decoration:none}.boxoutside{background-color:#fff;border:.1em solid #999}.boxtop{background-color:#333;border:0 solid #999;padding:.1em .4em .1em .4em}.boxbottom{background-color:#fff;border:0 solid #999;padding:.4em}.webToolList h3{margin:.75em 0 .09em 0;text-transform:uppercase}A.linktext{color:#333}A.linktext:hover{color:#f00}.buttontextdisabled{color:#333}.submenutextinfo{border-right:.1em solid #5886c6;color:#fff;font-size:.9em;font-weight:bold;padding-left:.5em;padding-right:.5em}.submenutext,A.submenutext,A.submenutext:visited{border-right:.1em solid #5886c6;color:#ff0;font-size:.9em;font-weight:bold;padding-left:.2em;padding-right:.5em}A.submenutext:hover{color:#ff0}.submenutextdisabled,A.submenutextdisabled{border-right:.1em solid #5886c6;color:#ccc;font-size:.9em;font-weight:bold;padding-left:.2em;padding-right:.5em}A.submenutextdisabled:hover{color:#ff0}.submenutextinforight{color:#fff;font-size:.9em;font-weight:bold;padding-left:.2em}.submenutextright,A.submenutextright{color:#ff0;font-size:.9em;font-weight:bold;padding-left:.2em}A.submenutextright:hover{color:#ff0}.submenutextrightdisabled,A.submenutextrightdisabled{color:#ccc;font-size:.9em;font-weight:bold;padding-left:.2em}A.submenutextrightdisabled:hover{color:#ff0}A.lightbuttontext{border:0;color:#222}A.lightbuttontext:hover{color:#ccc}A.lightbuttontextsmall{border:0;color:#222;font-size:.8em}A.lightbuttontextsmall:hover{color:#ccc}.lightbuttontextdisabled{color:#ccc;font-weight:bold}DIV.row{background-color:#b4b0aa;margin:0 auto 0 auto;text-align:center}DIV.col{border:0;float:left;width:auto}DIV.col-fill{background-color:#b4b0aa;border:0;color:#333;font-weight:bold;text-align:center;width:0}DIV.col-right{border:0;float:right;width:auto}.leftclear{clear:left;height:1%}DIV.endcolumns{clear:both}DIV.simple-right-small{float:right;width:2em;text-align:right}DIV.simple-right-half{float:right;width:50%;text-align:right}.left-border{float:left;margin-right:1em;width:22em;border-right:.5em dotted #ccc;background-color:#eee;height:100%}DIV.widget-container{margin-bottom:2em}DIV.column-left-wide{background-color:#ccc;border:#000 solid .2em;float:left;overflow:auto;width:30em}img.cssImgXLarge{max-width:200px;max-height:150px}img.cssImgLarge{max-width:100px;max-height:75px}img.cssImgStandard{max-width:70px;max-height:52px}img.cssImgSmall{max-width:50px;max-height:37px}.ui-autocomplete{max-height:250px;overflow-y:auto;overflow-x:hidden;padding-right:20px}* html .ui-autocomplete{height:250px}.jstree-default .jstree-leaf>ins{background-position:-36px 0;vertical-align:top}html>/**/body .jstree-default a{white-space:normal!important;height:auto}* html .jstree-default a{white-space:normal;height:auto}*+html .jstree-default a{white-space:normal;height:auto}
\ No newline at end of file
diff --git a/themes/flatgrey/webapp/flatgrey/mainrtl-min.css b/themes/flatgrey/webapp/flatgrey/mainrtl-min.css
new file mode 100644
index 0000000..1e2d49d
--- /dev/null
+++ b/themes/flatgrey/webapp/flatgrey/mainrtl-min.css
@@ -0,0 +1 @@
+body,caption,th{text-align:right}.boxlink{float:left}DIV.boxhead-left{float:right}DIV.boxhead-right{float:left}.submenutextinfo{border-right:0;border-left:.1em solid #5886c6}.submenutext,A.submenutext,A.submenutext:visited,.submenutextdisabled,A.submenutextdisabled{border-right:0;border-left:.1em solid #5886c6;padding-left:.5em;padding-right:.2em}.submenutextinforight,.submenutextright,A.submenutextright,.submenutextrightdisabled,A.submenutextrightdisabled{padding-left:none;padding-right:.2em}.product-prevnext{text-align:left}.productsummary .smallimage{float:right;margin:0 0 .5em .5em}.productsummary .productbuy{float:left;text-align:left}.productsummary .productinfo{text-align:right}.treeWrapper{border-left:none;border-right:.1em solid #000;margin-left:0;margin-right:1.2em;text-align:right}.lefthalf{float:right;left:auto;right:0;margin:0 0 1% 1%}.righthalf{float:left;margin:0 1% 1% 0;right:auto;left:0}.leftclear{clear:right}.treewrapper{margin-left:0;margin-right:1em}DIV.col{float:right}DIV.col-right{float:left}DIV.simple-right-small,DIV.simple-right-half{float:left;text-align:left}#column-container .left{float:right;margin-right:0;margin-left:1em}.left-border{float:right;margin-right:0;margin-left:1em;border-right:0;border-left:.5px dotted #ccc}#column-container .right{float:left;margin-left:0;margin-right:1em}#column-container .leftonly{margin-left:0;margin-right:23em}#column-container .rightonly{margin-right:0;margin-left:23em}DIV.column-left-wide{float:right}.label{padding-right:0;padding-left:1.1em;text-align:left}.align-float{float:left}.align-text{text-align:left}#masthead ul li{float:right}#masthead ul .opposed,#masthead ul .control-area{float:left;text-align:left}#footer{padding:.5em .5em .5em 0}#footer ul{float:right}#footer ul li{float:right}#footer ul .first{border-right:0;border-left:.1em solid #444}#footer ul .last{border-left:none;border-right:.1em solid #222}#footer p{clear:right}#main-navigation ul li{float:right;padding:0 .5em 0 1em}#main-navigation ul .first{border-right:0;border-left:.1em solid #5c809c}#main-navigation ul .last{border-left:none;border-right:.1em solid #3e5a71}#app-navigation ul li ul li{float:right;margin:.1em 0 .1em .3em}.screenlet-title-bar ul li{border-left:none;border-right:.1em solid #dedede;float:left}.screenlet-title-bar ul .h1,.screenlet-title-bar ul .h2,.screenlet-title-bar ul .h3{border-right:0;float:right}.login-screenlet{margin-left:0;margin-right:38%}.basic-nav{padding-left:0;padding-right:1em}.button-bar ul li{float:right}.button-bar ul .opposed{float:left}.tab-bar ul li ul li{margin-right:0;margin-left:.5em}.basic-table tr .label,.basic-table tr .group-label{text-align:left;padding-right:0;padding-left:1.5em}.basic-table tr .group-label{padding:2em 0 0 1.5em}.basic-table tr th,.basic-table .header-row{text-align:right}.basic-table tr .button-col a{float:right}.basic-tree ul,.basic-tree li{padding-left:0;padding-right:1em}.basic-tree li .expanded{background:url(/images/collapse.gif) no-repeat right center;padding-right:0;padding-left:1em}.basic-tree li .collapsed{background:url(/images/expand.gif) no-repeat right center;padding-right:0;padding-left:1em}.basic-form table tr .label,.basic-form table tr .group-label{text-align:left;padding-right:0;padding-left:1.5em}.basic-form table tr .group-label{font-size:1.2em;padding:2em 0 0 1.5em}.basic-form table tr th,.basic-form table .header-row{text-align:right}.nav-pager ul li{float:right}.nav-pager ul .nav-displaying{border-left:none;border-right:solid #222 .1em}.ui-autocomplete{max-height:250px;overflow-y:auto;overflow-x:hidden;padding-right:20px}* html .ui-autocomplete{height:250px}
\ No newline at end of file
diff --git a/themes/tomahawk/includes/appbarClose.ftl b/themes/tomahawk/includes/appbarClose.ftl
index fe84fed..8fbda4e 100644
--- a/themes/tomahawk/includes/appbarClose.ftl
+++ b/themes/tomahawk/includes/appbarClose.ftl
@@ -71,12 +71,32 @@
         </li>
       </#if>
     </#if>
-    <#if userLogin?exists>
-      <#--if webSiteId?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists-->
-      <#if parameters.componentName?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists>
-        <#include "component://common/webcommon/includes/helplink.ftl" />
-        <li><a class="help-link <#if pageAvail?has_content> alert</#if>" href="javascript:lookup_popup1('showHelp?helpTopic=${helpTopic}&amp;portalPageId=${parameters.portalPageId?if_exists}','help' ,500,500);" title="${uiLabelMap.CommonHelp}"></a></li>
+    <#if userLogin?exists>         
+      <!-- ******************* -->
+      <!-- Start Display webhelp screen names -->       
+      <!-- OFBiz webhelp content authors can use the following lines to expose unique screen identifiers for naming help id's and image files -->
+      <#--    
+      <#if parameters.portalPageId?has_content>
+        <li class="org">${parameters._WEBAPP_NAME_}_${requestAttributes._CURRENT_VIEW_}_${parameters.portalPageId} |</li>
+      <#else>
+        <li class="org">${parameters._WEBAPP_NAME_}_${requestAttributes._CURRENT_VIEW_} |</li>
       </#if>
+       -->        
+      <#if parameters.componentName?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists>        
+        <#if parameters._WEBAPP_NAME_!="accounting" && parameters._WEBAPP_NAME_!="humanres" && parameters._WEBAPP_NAME_!="projectmgr" && parameters._WEBAPP_NAME_!="manufacturing" && parameters._WEBAPP_NAME_!="catalog">
+          <li><a class="help-link <#if pageAvail?has_content> alert</#if>" href="javascript:lookup_popup1('showHelp?helpTopic=${helpTopic}&amp;portalPageId=${parameters.portalPageId?if_exists}','help' ,500,500);" title="${uiLabelMap.CommonHelp}"></a></li>        
+        <#else>
+          <#if parameters.portalPageId?has_content>
+            <li><a class="help-link <#if pageAvail?has_content>alert</#if>" href="javascript:lookup_help('${parameters._SERVER_ROOT_URL_}','${parameters._WEBAPP_NAME_}_${requestAttributes._CURRENT_VIEW_}_${parameters.portalPageId}','${parameters._WEBAPP_NAME_}' , '${locale}',250,250);" title="${uiLabelMap.CommonHelp}"></a></li>
+          <#else>
+            <li><a class="help-link <#if pageAvail?has_content>alert</#if>" href="javascript:lookup_help('${parameters._SERVER_ROOT_URL_}','${parameters._WEBAPP_NAME_}_${requestAttributes._CURRENT_VIEW_}','${parameters._WEBAPP_NAME_}' , '${locale}',250,250);" title="${uiLabelMap.CommonHelp}"></a></li>
+          </#if>
+        </#if>
+      </#if>
+
+      <!-- End  Display webhelp screen names -->
+      <!-- ******************* -->
+      
       <li><a href="<@ofbizUrl>logout</@ofbizUrl>">${uiLabelMap.CommonLogout}</a></li>
       <li><a href="<@ofbizUrl>ListVisualThemes</@ofbizUrl>">${uiLabelMap.CommonVisualThemes}</a></li>
     <#else>